Bladeren bron

feat: 条码核验模块

zh 2 jaren geleden
bovenliggende
commit
3cd897d298

+ 19 - 0
src/api/barcodeVerification.js

@@ -0,0 +1,19 @@
+import request from '@/utils/request'
+
+// 条码获取列表
+export function getCodeList(params) {
+  return request({
+    url: '/externalCode/equipment/list',
+    method: 'get',
+    params
+  })
+}
+
+// 批量条码核验记录List
+export function getList(params) {
+  return request({
+    url: '/externalCode/equipment/listBatch',
+    method: 'get',
+    params
+  })
+}

+ 7 - 1
src/filters/index.js

@@ -1,4 +1,4 @@
-import { COMMON_SELECT } from '@/utils/select_data'
+import { COMMON_SELECT,COMMON_SELECT2 } from '@/utils/select_data'
 import { getDictList } from '@/api/common'
 
 /**
@@ -136,3 +136,9 @@ export function ORDER_CURRENT_STATUS_FILTER(value) {
   let obj = COMMON_SELECT.ORDER_CURRENT_STATUS.find(o => o.value === value)
   return obj ? obj.label : ''
 }
+
+export function CODE_CHECK_STATUS_FILTER(value) {
+  if(value === null || value === '') return ''
+  let obj = COMMON_SELECT2.CODE_CHECK_STATUS.find(o => o.value == value);
+  return obj ? obj.label : '';
+}

+ 240 - 0
src/utils/common_select.js

@@ -0,0 +1,240 @@
+/**
+ * 管理下拉框选项
+ */
+
+
+// 审核状态
+export const EXAMINE_STATUS = [
+  { label: '待审核', value: 'WAIT' },
+  { label: '审核通过', value: 'OK' },
+  { label: '审核失败', value: 'FAIL' }
+]
+
+// 结算状态
+export const SETTLE_STATUS = [
+  { label: '未结算', value: 'wjs' },
+  { label: '部分结算', value: 'bfjs' },
+  { label: '全部结算', value: 'yjs' }
+]
+
+// 结算状态
+export const SETTLE2_STATUS = [
+  { label: '总部未结算', value: 0 },
+  { label: '总部已结算', value: 1 }
+]
+
+// 结算状态
+export const SETTLE3_STATUS = [
+  { label: '待导入开票数据', value: 'DKP' },
+  { label: '待结算', value: 'WAIT' },
+  { label: '成功', value: 'OK' },
+  { label: '失败', value: 'FAIL' },
+]
+
+// 扣单类型
+export const DEDUCT_TYPE = [
+  { label: '扣一次', value: 'ONE' },
+  { label: '每月扣', value: 'MONTH' },
+]
+
+// 执行状态
+export const FINISHED_STATUS = [
+  { label: '已执行', value: true },
+  { label: '未执行', value: false },
+]
+
+// 大类列表
+export const MAIN_LIST = [
+  { label: '家用空调', value: 101 },
+  { label: '商用空调', value: 102 },
+  { label: '家用空气能热水器', value: 103 },
+  { label: '生活电器', value: 104 },
+  { label: '晶弘冰箱', value: 106 },
+  { label: '壁挂炉', value: 109 },
+]
+
+// 大类列表
+export const MAIN2_LIST = [
+  { label: '家用空调', value: 101 },
+  { label: '空气能热水器', value: 103 },
+  { label: '生活电器', value: 104 },
+  { label: '晶弘冰箱', value: 106 },
+]
+
+// 大类列表
+export const MAIN3_LIST = [
+  { label: '家用空调', value: 101 },
+  { label: '空气能热水器', value: 103 },
+  { label: '生活电器', value: 104 },
+  { label: '晶弘冰箱', value: 106 },
+  { label: '清洗', value: 0 },
+]
+
+// 导入状态
+export const IMPORT_STATUS = [
+  { label: '已导入', value: 'ydr' },
+  { label: '未导入', value: 'wdr' },
+]
+
+// 导入状态
+export const IMPORT2_STATUS = [
+  { label: '已导入', value: 1 },
+  { label: '未导入', value: 0 },
+]
+
+// 确定状态
+export const CONFIRM_STATUS = [
+  { label: '已确定', value: 'yqd' },
+  { label: '未确定', value: 'wqd' },
+  { label: '部分确定', value: 'bfqd' }
+]
+
+// 确定状态
+export const CONFIRM2_STATUS = [
+  { label: '未处理', value: 0 },
+  { label: '已同意', value: 1 },
+  { label: '不同意', value: 2 },
+]
+
+// 确定状态
+export const CONFIRM3_STATUS = [
+  { label: '未完成', value: 1 },
+  { label: '部分完成', value: 2 },
+  { label: '已完成', value: 3 },
+]
+
+// 评价列表
+export const EVALUATE_LIST = [
+  { label: '未评价', value: 0 },
+  { label: '差评', value: 1 },
+  { label: '中评', value: 2 },
+  { label: '好评', value: 3 },
+]
+
+// 工单类型
+export const ORDER_TYPE = [
+  { label: '安装单', value: 'INSTALL' },
+  { label: '维修单', value: 'REPAIR' },
+]
+
+// 工单类型
+export const ORDER2_TYPE = [
+  { label: '安装', value: 1 },
+  { label: '维修', value: 2 },
+]
+
+// 师傅类型
+export const WORKER_TYPE = [
+  { label: '主要人员', value: 'MASTER' },
+  { label: '辅助人员', value: 'SLAVE' },
+]
+
+// 支付状态
+export const PAY_STATUS = [
+  { label: '未支付', value: 1 },
+  { label: '支付中', value: 2 },
+  { label: '已支付', value: 3 },
+]
+
+// 发放状态
+export const GRANT_STATUS = [
+  { label: '待中心审核', value: 'WAIT' },
+  { label: '已发放', value: 'OK' },
+  { label: '审核失败', value: 'FAIL' }
+]
+
+// 奖惩类型
+export const REWARD_PUNISHMENT_TYPE = [
+  { label: '奖励', value: 'REWARD' },
+  { label: '惩罚', value: 'PUNISHMENT' },
+]
+
+// 安装类型
+export const INSTALL_TYPE = [
+  { label: '一体机', value: 'all' },
+  { label: '内机', value: 'inside' },
+  { label: '外机', value: 'out' },
+  { label: '一拖二', value: 'insideTwo' },
+  { label: '一内一外', value: 'insideAndOut' },
+]
+
+// 服务人员等级列表
+export const WORKER_GRADE_LIST = [
+  { label: '基础服务人员', value: '0' },
+  { label: 'A级服务人员', value: 'A' },
+  { label: 'B级服务人员', value: 'B' },
+  { label: 'C级服务人员', value: 'C' },
+  { label: 'D级服务人员', value: 'D' },
+  { label: 'E级服务人员', value: 'E' },
+]
+
+// 审核状态
+export const EXAMINE2_STATUS = [
+  { label: '待网点审核', value: 0 },
+  { label: '待中心审核', value: 1 },
+  { label: '审核成功', value: 2 },
+  { label: '审核失败', value: 3 },
+  { label: '中心添加', value: 4 },
+]
+
+// 默认状态
+export const DEFAULT_STATUS = [
+  { label: '正常', value: true },
+  { label: '禁用', value: false },
+]
+
+// 配置状态
+export const CONFIGURE_STATUS = [
+  { label: '已配置', value: 1 },
+  { label: '未配置', value: 0 },
+]
+
+// 销售类型
+export const SALES_TYPE = [
+  { label: '零售机', value: 1 },
+  { label: '工程机', value: 2 },
+]
+
+// 分中心
+export const CENTER_LIST = [
+  { label: '广州', value: 'S9219801' },
+  { label: '佛山', value: 'S9219807' },
+]
+
+// 设备条码核验状态
+export const CODE_CHECK_STATUS = [
+  { label: '广佛设备', value: 1 },
+  { label: '非广佛设备', value: 2 },
+]
+
+export const COMMON_SELECT_DATA = {
+  EXAMINE_STATUS,
+  SETTLE_STATUS,
+  SETTLE2_STATUS,
+  SETTLE3_STATUS,
+  DEDUCT_TYPE,
+  FINISHED_STATUS,
+  MAIN_LIST,
+  MAIN2_LIST,
+  MAIN3_LIST,
+  IMPORT_STATUS,
+  IMPORT2_STATUS,
+  CONFIRM_STATUS,
+  CONFIRM2_STATUS,
+  CONFIRM3_STATUS,
+  EVALUATE_LIST,
+  ORDER_TYPE,
+  ORDER2_TYPE,
+  WORKER_TYPE,
+  PAY_STATUS,
+  GRANT_STATUS,
+  REWARD_PUNISHMENT_TYPE,
+  INSTALL_TYPE,
+  WORKER_GRADE_LIST,
+  EXAMINE2_STATUS,
+  DEFAULT_STATUS,
+  CONFIGURE_STATUS,
+  SALES_TYPE,
+  CENTER_LIST,
+  CODE_CHECK_STATUS
+}

+ 7 - 0
src/utils/select_data.js

@@ -1,3 +1,5 @@
+import * as COMMON_SELECT_DATA from './common_select'
+
 /**
  * 管理下拉框选项
  */
@@ -16,3 +18,8 @@ export const ORDER_CURRENT_STATUS = [
 export const COMMON_SELECT = {
   ORDER_CURRENT_STATUS
 }
+
+
+export const COMMON_SELECT2 = {
+...COMMON_SELECT_DATA
+}

+ 275 - 0
src/views/barcodeVerification/batchEquipment.vue

@@ -0,0 +1,275 @@
+<template>
+  <div class="app-container">
+    <!-- 筛选条件 -->
+    <div>
+      <el-form ref="searchForm" :model="searchForm" label-width="100px" size="mini" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="批次号:" prop="batch">
+              <el-input v-model="searchForm.batch" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="外机条码:" prop="barCode">
+              <el-input v-model="searchForm.barCode" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+
+          <el-col :xs="24" :sm="12" :lg="12">
+            <el-form-item label="核验日期:" prop="time">
+              <el-date-picker
+                @change="changeTime"
+                v-model="searchForm.time"
+                    type="datetimerange"
+                    :default-time="['00:00:00','23:59:59']"
+                    range-separator="至"
+                    style="width: 100%"
+                    value-format="yyyy-MM-dd HH:mm:ss"
+                    start-placeholder="开始日期"
+                    end-placeholder="结束日期"
+              ></el-date-picker>
+            </el-form-item>
+          </el-col>
+
+          <el-col :xs="24" :sm="24" :lg="24">
+            <el-form-item label="" class="fr">
+              <el-button size="mini" @click="emptyFn">清空</el-button>
+              <el-button size="mini" type="primary" @click="searchFn">搜索</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <!-- 按钮 -->
+    <div class="btn-group clearfix">
+      <div class="fl">
+        <!-- <el-button type="primary" size="mini">导入</el-button> -->
+        <el-upload
+          style="display: inline-block; margin-right: 10px"
+          class="import-btn"
+          action=""
+          :http-request="handleImport"
+          :file-list="importFileList"
+          :show-file-list="false"
+        >
+          <el-button type="primary" size="mini">导入</el-button>
+        </el-upload>
+        <el-button type="danger" size="mini" @click="downloadFn">下载模板</el-button>
+        <el-button type="primary" size="mini" @click="exportFn">导出</el-button>
+      </div>
+    </div>
+    <br />
+    <div class="table">
+      <el-table
+        v-loading="listLoading"
+        :data="dataList"
+        element-loading-text="Loading"
+        border
+        fit
+        highlight-current-row
+        stripe
+      >
+        <el-table-column
+          align="center"
+          label="条形码"
+          prop="barCode"
+          min-width="140"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="产品名称"
+          prop="productName"
+          min-width="220"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column align="center" label="出库采集时间" prop="deliveryTime" min-width="160"></el-table-column>
+        <el-table-column align="center" label="设备仓库" prop="warehouse" min-width="100"></el-table-column>
+        <el-table-column
+          align="center"
+          label="收货地址"
+          prop="address"
+          min-width="220"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column align="center" label="发货日期" prop="consignerTime" min-width="160"></el-table-column>
+        <el-table-column
+          align="center"
+          label="订单号"
+          prop="orderNumber"
+          min-width="140"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column align="center" label="最新核验状态" prop="verificationStatus" min-width="120">
+          <template slot-scope="scope">
+            {{ scope.row.verificationStatus | CODE_CHECK_STATUS_FILTER }}
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="最新核验时间" prop="verificationTime" min-width="160"></el-table-column>
+        <el-table-column align="center" label="核验人员" prop="workerNumber" min-width="160" show-overflow-tooltip>
+          <template slot-scope="scope"> {{ scope.row.workerName }}({{ scope.row.workerNumber }}) </template>
+        </el-table-column>
+        <el-table-column align="center" label="核验人员手机号" prop="workerPhone" min-width="130"></el-table-column>
+        <el-table-column
+          align="center"
+          label="所属网点名称"
+          prop="websitName"
+          min-width="160"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          align="center"
+          label="所属网点编号"
+          prop="websitNumber"
+          min-width="120"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column align="center" label="上传人" prop="createByNumber" min-width="160" show-overflow-tooltip>
+          <template slot-scope="scope"> {{ scope.row.createBy }}({{ scope.row.createByNumber }}) </template>
+        </el-table-column>
+        <el-table-column align="center" label="上传时间" prop="createTime" min-width="160"></el-table-column>
+        <el-table-column align="center" label="批次" prop="batch" min-width="160"></el-table-column>
+      </el-table>
+    </div>
+
+    <div class="pagination clearfix">
+      <div class="fr">
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 50]"
+          :page-size="10"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="listTotal"
+        >
+        </el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { downloadFiles, handleImport } from '@/utils/util'
+import { getList } from '@/api/barcodeVerification'
+export default {
+  data() {
+    return {
+      searchForm: {
+        barCode: '',
+        batch: '',
+        startTime: '',
+        endTime: '',
+        time: []
+      },
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: [], // 列表数据
+      importFileList: [],
+      listLoading: false // 列表加载loading
+    }
+  },
+  created() {
+    this.getDataList()
+  },
+  methods: {
+    changeTime(val) {
+      if (val) {
+        this.searchForm.startTime = val[0]
+        this.searchForm.endTime = val[1]
+      } else {
+        this.searchForm.startTime = ''
+        this.searchForm.endTime = ''
+      }
+    },
+    //下载模板
+    downloadFn() {
+      downloadFiles('externalCode/equipment/downloadBatch')
+    },
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val
+      this.currentPage = 1
+      this.getDataList()
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val
+      this.getDataList()
+    },
+    //清除
+    async emptyFn() {
+      this.searchForm = {
+        barCode: '',
+        batch: '',
+        startTime: '',
+        endTime: '',
+        time: []
+      }
+    },
+    //搜索
+    searchFn() {
+      if (this.searchForm.time.length === 0) {
+        this.$message.error('请选择核验日期')
+        return
+      } else {
+        this.currentPage = 1
+        this.getDataList()
+      }
+    },
+    //导出
+    exportFn() {
+      if (this.searchForm.time.length === 0) {
+        this.$message.error('请选择导出的时间')
+        return
+      }
+      let params = {
+        pageNo: 1,
+        pageSize: -1,
+        barCode: this.searchForm.barCode,
+        batch: this.searchForm.batch,
+        endTime: this.searchForm.endTime,
+        startTime: this.searchForm.startTime
+      }
+
+      downloadFiles('externalCode/equipment/exportBatch', params)
+    },
+    // 导入
+    async handleImport(param) {
+      this.listLoading = true
+      const file = param.file
+      const formData = new FormData()
+      formData.append('file', file)
+      let result = await handleImport('externalCode/equipment/importBatch', formData)
+      this.importFileList = []
+      if (result.code == 1) {
+        this.$message.success('导入成功')
+        this.searchForm.batch = result.data
+        this.getDataList()
+      } else {
+        this.$message.error(result.message)
+      }
+      this.listLoading = false
+    },
+    //获取列表数据
+    async getDataList() {
+      let params = {
+        pageNo: this.currentPage,
+        pageSize: this.pageSize,
+        barCode: this.searchForm.barCode,
+        batch: this.searchForm.batch,
+        startTime: this.searchForm.startTime,
+        endTime: this.searchForm.endTime
+      }
+      let res = await getList(params)
+      this.dataList = res.data.records
+      this.listTotal = res.data.total
+    }
+  }
+}
+</script>
+
+<style></style>

+ 462 - 0
src/views/barcodeVerification/code_list.vue

@@ -0,0 +1,462 @@
+<template>
+  <div class="app-container">
+    <!-- 筛选条件 -->
+    <div class="screen-container">
+      <div class="top clearfix">
+        <div class="title fl">条件筛选</div>
+        <div class="fr">
+          <el-button size="small" type="primary" @click="isOpen = !isOpen"
+            >{{ isOpen ? '收起' : '展开'
+            }}<i class="el-icon--right" :class="isOpen ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"></i
+          ></el-button>
+          <el-button size="small" @click="resetScreenForm">清空</el-button>
+          <el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
+        </div>
+      </div>
+      <el-form ref="screenForm" :model="screenForm" label-width="70px" size="small" label-position="left">
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="条形码" prop="code">
+              <el-input v-model="screenForm.code" placeholder="请输入条形码"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="订单号" prop="orderNo">
+              <el-input v-model="screenForm.orderNo" placeholder="请输入订单号"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="销售公司" prop="salesCompany">
+              <el-input v-model="screenForm.salesCompany" placeholder="请输入销售公司"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="收货地址" prop="address">
+              <el-input v-model="screenForm.address" placeholder="请输入收货地址"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6" v-if="isOpen">
+            <el-form-item label="扫描时间" prop="scanDate">
+              <el-date-picker
+                v-model="screenForm.scanDate"
+                type="daterange"
+                range-separator="至"
+                style="width: 100%"
+                ref="scanDate"
+                value-format="yyyy-MM-dd"
+                :picker-options="pickerOptions"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+              >
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6" v-if="isOpen">
+            <el-form-item label="产品名称" prop="goodsName">
+              <el-input v-model="screenForm.goodsName" placeholder="请输入产品名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6" v-if="isOpen">
+            <el-form-item label="设备仓库" prop="warehouse">
+              <el-input v-model="screenForm.warehouse" placeholder="请输入设备仓库"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6" v-if="isOpen">
+            <el-form-item label="网点信息" prop="website">
+              <el-input v-model="screenForm.website" placeholder="请输入网点信息"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6" v-if="isOpen">
+            <el-form-item label="服务人员" prop="worker">
+              <el-input v-model="screenForm.worker" placeholder="请输入服务人员"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6" v-if="isOpen">
+            <el-form-item label="核验时间" prop="checkDate">
+              <el-date-picker
+                v-model="screenForm.checkDate"
+                type="daterange"
+                range-separator="至"
+                style="width: 100%"
+                value-format="yyyy-MM-dd"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+              >
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+
+    <div class="mymain-container">
+      <div class="btn-group clearfix">
+        <div class="fr">
+          <el-button size="small" type="primary" @click="handleExport" v-if="checkBtnRole('export')"
+            >导出数据</el-button
+          >
+        </div>
+      </div>
+
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column
+            align="center"
+            label="条形码"
+            prop="barCode"
+            min-width="140"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="产品名称"
+            prop="productName"
+            min-width="220"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column align="center" label="出库采集时间" prop="deliveryTime" min-width="160"></el-table-column>
+          <el-table-column align="center" label="设备仓库" prop="warehouse" min-width="100"></el-table-column>
+          <el-table-column
+            align="center"
+            label="收货地址"
+            prop="address"
+            min-width="220"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column align="center" label="发货日期" prop="consignerTime" min-width="160"></el-table-column>
+          <el-table-column
+            align="center"
+            label="订单号"
+            prop="orderNumber"
+            min-width="140"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column align="center" label="最新核验状态" prop="verificationStatus" min-width="120">
+            <template slot-scope="scope">
+              {{ scope.row.verificationStatus | CODE_CHECK_STATUS_FILTER }}
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            label="最新核验时间"
+            prop="verificationTime"
+            min-width="160"
+          ></el-table-column>
+          <el-table-column align="center" label="核验人员" prop="workerNumber" min-width="160" show-overflow-tooltip>
+            <template slot-scope="scope"> {{ scope.row.workerName }}({{ scope.row.workerNumber }}) </template>
+          </el-table-column>
+          <el-table-column align="center" label="核验人员手机号" prop="workerPhone" min-width="130"></el-table-column>
+          <el-table-column
+            align="center"
+            label="所属网点名称"
+            prop="websitName"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="所属网点编号"
+            prop="websitNumber"
+            min-width="120"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column align="center" label="上传人" prop="createByNumber" min-width="160" show-overflow-tooltip>
+            <template slot-scope="scope"> {{ scope.row.createBy }}({{ scope.row.createByNumber }}) </template>
+          </el-table-column>
+          <el-table-column align="center" label="上传时间" prop="createTime" min-width="160"></el-table-column>
+        </el-table>
+      </div>
+
+      <div class="pagination clearfix">
+        <div class="fr">
+          <el-pagination
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal"
+          >
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { getCodeList } from '@/api/barcodeVerification'
+import { downloadFiles, handleImport } from '@/utils/util'
+
+export default {
+  data() {
+    return {
+      isOpen: false, // 是否展开条件筛选
+      dataList: null, // 列表数据
+      listLoading: false, // 列表加载loading
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      screenForm: {
+        // 筛选表单数据
+        code: '',
+        orderNo: '',
+        salesCompany: '',
+        address: '',
+        scanDate: [],
+        goodsName: '',
+        warehouse: '',
+        website: '',
+        worker: '',
+        checkDate: []
+      },
+      pickerOptions: {
+        onPick: ({ maxDate, minDate }) => {
+          this.selectDate = minDate.getTime()
+          if (maxDate) {
+            this.selectDate = ''
+          }
+        },
+        disabledDate: time => {
+          if (this.selectDate !== '') {
+            const one = 30 * 24 * 3600 * 1000
+            const minTime = this.selectDate - one
+            const maxTime = this.selectDate + one
+            return time.getTime() < minTime || time.getTime() > maxTime
+          }
+        }
+      },
+      importLoading_wh: false, // 导入加载loading
+      importFileList_wh: [], // 导入列表
+      importLoading_ss: false, // 导入加载loading
+      importFileList_ss: [], // 导入列表
+      importLoading_ls: false, // 导入加载loading
+      importFileList_ls: [], // 导入列表
+      importLoading_tm: false, // 导入加载loading
+      importFileList_tm: [], // 导入列表
+      importLoading_lb: false, // 导入加载loading
+      importFileList_lb: [] // 导入列表
+    }
+  },
+  computed: {
+    userInfo() {
+      return JSON.parse(localStorage.getItem('settlement_user'))
+    }
+  },
+  created() {
+    // this.getCodeList();
+  },
+  methods: {
+    // 查询按钮权限
+    checkBtnRole(value) {
+      return true
+      let btnRole = this.$route.meta.roles
+      if (!btnRole) {
+        return true
+      }
+      let index = btnRole.indexOf(value)
+      return index >= 0 ? true : false
+    },
+
+    // 获取列表
+    getCodeList() {
+      this.listLoading = true
+      let params = {
+        pageNo: this.currentPage,
+        pageSize: this.pageSize,
+        barCode: this.screenForm.code,
+        orderNumber: this.screenForm.orderNo,
+        salesCompany: this.screenForm.salesCompany,
+        address: this.screenForm.address,
+        startTime:
+          this.screenForm.scanDate && this.screenForm.scanDate.length ? this.screenForm.scanDate[0] + ' 00:00:00' : '',
+        endTime:
+          this.screenForm.scanDate && this.screenForm.scanDate.length ? this.screenForm.scanDate[1] + ' 23:59:59' : '',
+        productName: this.screenForm.goodsName,
+        warehouse: this.screenForm.warehouse,
+        websitNumber: this.screenForm.website,
+        workerName: this.screenForm.worker,
+        verificationStartTime:
+          this.screenForm.checkDate && this.screenForm.checkDate.length
+            ? this.screenForm.checkDate[0] + ' 00:00:00'
+            : '',
+        verificationEndTime:
+          this.screenForm.checkDate && this.screenForm.checkDate.length
+            ? this.screenForm.checkDate[1] + ' 23:59:59'
+            : ''
+      }
+      getCodeList(params).then(res => {
+        this.dataList = res.data.records
+        this.listTotal = res.data.total
+        this.listLoading = false
+      })
+    },
+
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val
+      this.currentPage = 1
+      this.getCodeList()
+    },
+
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val
+      this.getCodeList()
+    },
+
+    // 提交筛选表单
+    submitScreenForm() {
+      this.currentPage = 1
+      this.getCodeList()
+    },
+
+    // 重置筛选表单
+    resetScreenForm() {
+      this.$refs.screenForm.resetFields()
+      this.currentPage = 1
+      this.getCodeList()
+    },
+
+    // 导出
+    handleExport() {
+      if (!this.screenForm.scanDate || this.screenForm.scanDate.length < 1) {
+        this.isOpen = true
+        return this.$errorMsg('请选择扫描时间')
+      }
+      let screenData = {
+        barCode: this.screenForm.code,
+        orderNumber: this.screenForm.orderNo,
+        salesCompany: this.screenForm.salesCompany,
+        address: this.screenForm.address,
+        startTime:
+          this.screenForm.scanDate && this.screenForm.scanDate.length ? this.screenForm.scanDate[0] + ' 00:00:00' : '',
+        endTime:
+          this.screenForm.scanDate && this.screenForm.scanDate.length ? this.screenForm.scanDate[1] + ' 23:59:59' : '',
+        productName: this.screenForm.goodsName,
+        warehouse: this.screenForm.warehouse,
+        websitNumber: this.screenForm.website,
+        workerName: this.screenForm.worker,
+        verificationStartTime:
+          this.screenForm.checkDate && this.screenForm.checkDate.length
+            ? this.screenForm.checkDate[0] + ' 00:00:00'
+            : '',
+        verificationEndTime:
+          this.screenForm.checkDate && this.screenForm.checkDate.length
+            ? this.screenForm.checkDate[1] + ' 23:59:59'
+            : ''
+      }
+      downloadFiles('externalCode/equipment/export', screenData)
+    },
+
+    // 导入
+    async handleImport_wh(param) {
+      this.importLoading_wh = true
+      const file = param.file
+      const formData = new FormData()
+      formData.append('file', file)
+      let result = await handleImport('java/code/equipmentCode/importWanHao', formData)
+      this.importLoading_wh = false
+      this.importFileList_wh = []
+      this.$importMsg(result)
+      if (result.code == 1) {
+        this.getCodeList()
+      }
+    },
+
+    // 导入
+    async handleImport_ss(param) {
+      this.importLoading_ss = true
+      const file = param.file
+      const formData = new FormData()
+      formData.append('file', file)
+      let result = await handleImport('java/code/equipmentCode/importSanShui', formData)
+      this.importLoading_ss = false
+      this.importFileList_ss = []
+      this.$importMsg(result)
+      if (result.code == 1) {
+        this.getCodeList()
+      }
+    },
+
+    // 导入
+    async handleImport_ls(param) {
+      this.importLoading_ls = true
+      const file = param.file
+      const formData = new FormData()
+      formData.append('file', file)
+      let result = await handleImport('java/code/equipmentCode/import', formData)
+      this.importLoading_ls = false
+      this.importFileList_ls = []
+      this.$importMsg(result)
+      if (result.code == 1) {
+        this.getCodeList()
+      }
+    },
+
+    // 导入
+    async handleImport_tm(param) {
+      this.importLoading_tm = true
+      const file = param.file
+      const formData = new FormData()
+      formData.append('file', file)
+      let result = await handleImport('java/code/equipmentCode/importTianMao', formData)
+      this.importLoading_tm = false
+      this.importFileList_tm = []
+      this.$importMsg(result)
+      if (result.code == 1) {
+        this.getCodeList()
+      }
+    },
+
+    // 导入
+    async handleImport_lb(param) {
+      this.importLoading_lb = true
+      const file = param.file
+      const formData = new FormData()
+      formData.append('file', file)
+      let result = await handleImport('java/code/equipmentCode/importLuBao', formData)
+      this.importLoading_lb = false
+      this.importFileList_lb = []
+      this.$importMsg(result)
+      if (result.code == 1) {
+        this.getCodeList()
+      }
+    },
+
+    // 下载导入模版
+    handleDownload_wh() {
+      downloadFiles('java/code/equipmentCode/wanhaoDownload')
+    },
+
+    // 下载导入模版
+    handleDownload_ss() {
+      downloadFiles('java/code/equipmentCode/sanshuiDownload')
+    },
+
+    // 下载导入模版
+    handleDownload_ls() {
+      downloadFiles('java/code/equipmentCode/longshangDownload')
+    },
+
+    // 下载导入模版
+    handleDownload_tm() {
+      downloadFiles('java/code/equipmentCode/tianMaoDownload')
+    },
+
+    // 下载导入模版
+    handleDownload_lb() {
+      downloadFiles('java/code/equipmentCode/luBaoDownload')
+    }
+  }
+}
+</script>