whj 11 ay önce
ebeveyn
işleme
f946ff8787

+ 1 - 0
src/router/generator-platform-routers.js

@@ -329,6 +329,7 @@ const constantRouterComponents = {
   // 备件盘点
   'StoreCheckPlan': () => import('@/views/store/storecheckplan/StoreCheckPlan'),
   'StoreCheckJob': () => import('@/views/store/storecheckjob/StoreCheckJob'),
+  'StoreCheckJobRecord': () => import('@/views/store/storecheckjob/StoreCheckJobRecord'),
 
   // 设备盘点
   'SbStoreCheckPlan': () => import('@/views/sb/storecheckplan/StoreCheckPlan'),

+ 13 - 5
src/views/sb/guige/SbGuige.vue

@@ -20,9 +20,9 @@
       </div>
 
       <div class="table-operator" style="margin-bottom: 8px;">
-        <a-button v-if="$auth('sb-guiges-add')" type="primary" icon="plus" @click="$refs.baseModal.base()">{{ $t('m.common.add') }}</a-button>
-        <a-button style="margin-left: 8px" v-if="$auth('sb-guiges-export')" type="primary" icon="download" @click="doExport">{{ $t('m.common.export') }}</a-button>
-        <a-dropdown v-action:edit v-if="selectedRowKeys.length > 0 && $auth('sb-guiges-del')">
+        <a-button type="primary" icon="plus" @click="handleAdd">{{ $t('m.common.add') }}</a-button>
+        <a-button style="margin-left: 8px" type="primary" icon="download" @click="doExport">{{ $t('m.common.export') }}</a-button>
+        <a-dropdown v-action:edit v-if="selectedRowKeys.length > 0 ">
           <a-menu slot="overlay">
             <a-popconfirm :title="$t('m.common.deleteConfirmTips')" @confirm="batchDelete()">
               <a-menu-item key="1"><a-icon type="delete" /><a>{{ $t('m.common.delete') }}</a></a-menu-item>
@@ -50,8 +50,11 @@
             <a-divider type="vertical" />
             <a @click="handleEdit(record)"> {{ $t('m.common.edit') }}</a>
             <a-divider type="vertical" />
-            <a-popconfirm v-if="$auth('s' +
-             'b-guiges-del')" :title="$t('m.common.deleteConfirmTips')" @confirm="batchDelete(record.id)">
+            <a-popconfirm
+              v-if="$auth('s' +
+                'b-guiges-del')"
+              :title="$t('m.common.deleteConfirmTips')"
+              @confirm="batchDelete(record.id)">
               <a>{{ $t('m.common.delete') }}</a>
             </a-popconfirm>
           </template>
@@ -214,6 +217,11 @@ export default {
         modal.base(res.data)
       })
     },
+    handleAdd () {
+      this.visible = false
+      const modal = this.$refs.baseModal
+      modal.base()
+    },
     handleView (record) {
       this.visible = false
       fetchSbGuige({ id: record.id }).then(res => {

+ 1 - 3
src/views/sb/guige/modules/BaseForm.vue

@@ -135,9 +135,7 @@ export default {
       this.visible = false
       this.confirmLoading = false
       this.form.resetFields()
-      if (this.BaseTool.Object.isNotBlank(values)) {
-        this.$emit('ok', values)
-      }
+      this.$emit('ok', values)
     }
 
   }

+ 112 - 84
src/views/sqarepartmanage/sparepartinfo/SparePartInfo.vue

@@ -12,100 +12,127 @@
         />
       </a-col>-->
       <a-col :span="24">
+        <a-drawer
+          title="备件筛选"
+          placement="top"
+          :closable="false"
+          :visible="showFilter"
+          :height="330"
+          @close="showFilter=false"
+        >
+          <div class="table-page-search-wrapper">
+            <a-form layout="inline">
+              <a-row :gutter="48">
+                <a-col :md="6" :sm="24">
+                  <a-form-item label="关键字">
+                    <a-input v-model.trim="queryParam.keyword" placeholder="请输入名称/编码"/>
+                  </a-form-item>
+                </a-col>
+                <a-col :md="6" :sm="24">
+                  <a-form-item label="类型">
+                    <a-tree-select
+                      style="width: 100%"
+                      :dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
+                      :treeData="spareTypeTreeData"
+                      :treeNodeFilterProp="'title'"
+                      :showSearch="true"
+                      v-model="queryParam.typeId"
+                      placeholder="请选择"
+                    >
+                    </a-tree-select>
+                  </a-form-item>
+                </a-col>
+                <a-col :md="6" :sm="24">
+                  <a-form-item label="规格型号">
+                    <a-input v-model="queryParam.ggxh" placeholder="模糊查询"/>
+                  </a-form-item>
+                </a-col>
+                <a-col :md="6" :sm="24">
+                  <a-form-item label="原厂编号">
+                    <a-input v-model="queryParam.initNo" placeholder="模糊查询"/>
+                  </a-form-item>
+                </a-col>
+                <a-col :md="6" :sm="24">
+                  <a-form-item label="生产商">
+                    <a-input v-model="queryParam.producerName" placeholder="名称模糊查询"/>
+                  </a-form-item>
+                </a-col>
+                <a-col :md="6" :sm="24">
+                  <a-form-item label="供应商">
+                    <a-input v-model="queryParam.supplierName" placeholder="名称模糊查询"/>
+                  </a-form-item>
+                </a-col>
+                <a-col :md="6" :sm="24">
+                  <a-form-item label="等级">
+                    <a-select v-model="queryParam.level" placeholder="请选择">
+                      <a-select-option
+                        v-for="(label,value) in levelMap"
+                        :key="value"
+                        :label="label"
+                        :value="parseInt(value)">{{ label }}
+                      </a-select-option>
+                    </a-select>
+                  </a-form-item>
+                </a-col>
+                <a-col :md="6" :sm="24">
+                  <a-form-item label="用途">
+                    <a-select v-model="queryParam.yt" placeholder="请选择">
+                      <a-select-option
+                        v-for="(label,value) in ytMap"
+                        :key="value"
+                        :label="label"
+                        :value="parseInt(value)">{{ label }}
+                      </a-select-option>
+                    </a-select>
+                  </a-form-item>
+                </a-col>
+                <a-col :md="6" :sm="24">
+                  <a-form-item label="是否专用">
+                    <a-select v-model="queryParam.isSpecial" placeholder="请选择">
+                      <a-select-option
+                        v-for="(label,value) in specialMap"
+                        :key="value"
+                        :label="label"
+                        :value="parseInt(value)">{{ label }}
+                      </a-select-option>
+                    </a-select>
+                  </a-form-item>
+                </a-col>
+                <a-col :md="6" :sm="24">
+                  <a-form-item label="关联设备">
+                    <a-input v-model="queryParam.model" placeholder="新号/旧号/名称/规格"/>
+                  </a-form-item>
+                </a-col>
+                <a-col :md="6 || 24" :sm="24">
+                  <span class="table-page-search-submitButtons">
+                    <a-button type="primary" @click="handleOk">查询</a-button>
+                    <a-button style="margin-left: 8px" @click="resetSearchForm">重置</a-button>
+                    <a-button style="margin-left: 8px" @click="searchTypeNull">空类型</a-button>
+                  </span>
+                </a-col>
+              </a-row>
+            </a-form>
+          </div>
+        </a-drawer>
         <div class="table-page-search-wrapper">
           <a-form layout="inline">
             <a-row :gutter="48">
-              <a-col :md="8" :sm="24">
-                <a-form-item label="关键字">
-                  <a-input v-model.trim="queryParam.keyword" placeholder="请输入名称/编码"/>
-                </a-form-item>
-              </a-col>
-              <a-col :md="8" :sm="24">
-                <a-form-item label="类型">
-                  <a-tree-select
-                    style="width: 100%"
-                    :dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
-                    :treeData="spareTypeTreeData"
-                    :treeNodeFilterProp="'title'"
-                    :showSearch="true"
-                    v-model="queryParam.typeId"
-                    placeholder="请选择"
-                  >
-                  </a-tree-select>
-                </a-form-item>
-              </a-col>
-              <a-col :md="8" :sm="24">
-                <a-form-item label="规格型号">
-                  <a-input v-model="queryParam.ggxh" placeholder="模糊查询"/>
-                </a-form-item>
-              </a-col>
-              <a-col :md="8" :sm="24">
-                <a-form-item label="原厂编号">
-                  <a-input v-model="queryParam.initNo" placeholder="模糊查询"/>
-                </a-form-item>
-              </a-col>
-              <a-col :md="8" :sm="24">
-                <a-form-item label="生产商">
-                  <a-input v-model="queryParam.producerName" placeholder="名称模糊查询"/>
-                </a-form-item>
-              </a-col>
-              <a-col :md="8" :sm="24">
-                <a-form-item label="供应商">
-                  <a-input v-model="queryParam.supplierName" placeholder="名称模糊查询"/>
-                </a-form-item>
-              </a-col>
-              <a-col :md="8" :sm="24">
-                <a-form-item label="等级">
-                  <a-select v-model="queryParam.level" placeholder="请选择">
-                    <a-select-option
-                      v-for="(label,value) in levelMap"
-                      :key="value"
-                      :label="label"
-                      :value="parseInt(value)">{{ label }}
-                    </a-select-option>
-                  </a-select>
-                </a-form-item>
-              </a-col>
-              <a-col :md="6" :sm="24">
-                <a-form-item label="用途">
-                  <a-select v-model="queryParam.yt" placeholder="请选择">
-                    <a-select-option
-                      v-for="(label,value) in ytMap"
-                      :key="value"
-                      :label="label"
-                      :value="parseInt(value)">{{ label }}
-                    </a-select-option>
-                  </a-select>
-                </a-form-item>
-              </a-col>
-              <a-col :md="6" :sm="24">
-                <a-form-item label="是否专用">
-                  <a-select v-model="queryParam.isSpecial" placeholder="请选择">
-                    <a-select-option
-                      v-for="(label,value) in specialMap"
-                      :key="value"
-                      :label="label"
-                      :value="parseInt(value)">{{ label }}
-                    </a-select-option>
-                  </a-select>
-                </a-form-item>
-              </a-col>
               <a-col :md="6" :sm="24">
-                <a-form-item label="关联设备">
-                  <a-input v-model="queryParam.model" placeholder="新号/旧号/名称/规格"/>
+                <a-form-item label="关键字">
+                  <a-input v-model.trim="queryParam.keyword" placeholder="请输入名称/编码" />
                 </a-form-item>
               </a-col>
               <a-col :md="6 || 24" :sm="24">
-                <span class="table-page-search-submitButtons">
-                  <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
-                  <a-button style="margin-left: 8px" @click="resetSearchForm">重置</a-button>
-                  <a-button style="margin-left: 8px" @click="searchTypeNull">空类型</a-button>
-                </span>
+                <a-space>
+                  <a-button type="primary" @click="handleOk">查询</a-button>
+                  <a-button type="primary" @click="showFilter=true">筛选</a-button>
+                  <a-button @click="searchTypeNull">空类型</a-button>
+                  <a-button @click="resetSearchForm">重置</a-button>
+                </a-space>
               </a-col>
             </a-row>
           </a-form>
         </div>
-
         <div class="table-operator" style="margin-bottom: 8px;">
           <a-button v-if="$auth('sqarepartmanage-spare-part-info-add')" type="primary" icon="plus" @click="handleAdd">新增</a-button>
           <a-button style="margin-left: 8px" v-if="$auth('sqarepartmanage-spare-part-info-export')" type="primary" icon="download" @click="doExport">导出</a-button>
@@ -167,7 +194,7 @@
     <inStoreList ref="inStoreListModal"/>
     <outStoreList ref="outStoreListModal"/>
     <spare-part-used-select-modal ref="sparePartUsedSelectModal"/>
-    <purchase-spare-num-select-modal ref='spareNumSelectModal' @selected='handleNumSelected' />
+    <purchase-spare-num-select-modal ref="spareNumSelectModal" @selected="handleNumSelected" />
     <spare-part-info-select-modal-for-adjust :type="'radio'" ref="spareSelectModal" @selected="handleSpareSelected"/>
     <import-form-add ref="importModal" @ok="handleOk"/>
     <import-form-update ref="importModalForUpdate" @ok="handleOk"/>
@@ -224,6 +251,7 @@ export default {
   data () {
     return {
       // 查询参数
+      showFilter: false,
       queryParam: {
       },
       confirmLoading: false,

+ 3 - 9
src/views/store/purchaseform/PurchaseStoreForm.vue

@@ -3,22 +3,16 @@
     <div v-show="visible">
       <div class="table-page-search-wrapper" @keyup.enter="handleEnter">
         <a-form layout="inline">
-          <a-row :gutter="48" v-show="advanced">
+          <a-row :gutter="48" >
             <a-col :md="6" :sm="24">
               <a-form-item label="关键字">
                 <a-input v-model="queryParam.keyword" placeholder="请输入名称/类型名称" />
               </a-form-item>
             </a-col>
-          </a-row>
-          <a-row :gutter="48">
-            <a-col :md="24 || 24" :sm="24" style="text-align: right">
+            <a-col :md="6 || 24" :sm="24" >
               <span class="table-page-search-submitButtons">
                 <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
                 <a-button style="margin-left: 8px" @click="resetSearchForm">重置</a-button>
-                <a @click="()=>{ this.advanced = !this.advanced}" style="margin-left: 8px">
-                  {{ advanced ? '收起' : '展开' }}
-                  <a-icon :type="advanced ? 'up' : 'down'" />
-                </a>
               </span>
             </a-col>
           </a-row>
@@ -28,7 +22,7 @@
       <div class="table-operator" style="margin-bottom: 8px;">
         <a-row>
           <a-col :md="16">
-            <a-button v-if="$auth('purchase-store-forms-add')" type="primary" icon="plus" @click="handleAdd()">新增</a-button>
+            <a-button type="primary" icon="plus" @click="handleAdd()">新增</a-button>
             <a-button
               style="margin-left: 8px"
               v-if="$auth('purchase-store-forms-export')"

+ 2 - 2
src/views/store/sparestore/SpareStoreTotal.vue

@@ -33,7 +33,7 @@
     </div>
 
     <div class="table-operator" style="margin-bottom: 8px;">
-      <!--<a-button v-if="$auth('store-spare-stores-add')" type="primary" icon="plus" @click="$refs.baseModal.base()">新增</a-button>-->
+      <a-button type="primary" icon="plus" @click="$refs.baseModal.base()">新增</a-button>
       <a-button style="margin-left: 8px" v-if="$auth('store-spare-stores-export')" type="primary" icon="download" @click="doExport">导出</a-button>
     </div>
 
@@ -53,7 +53,7 @@
           <a-divider type="vertical" />
           <a v-if="record.warnStatus != 2" @click="handleUpdateStatus(record, 2)">询价中</a>
           <a-divider type="vertical" />
-          <a v-if="record.warnStatus != 3"@click="handleUpdateStatus(record, 3)">采购中</a>
+          <a v-if="record.warnStatus != 3" @click="handleUpdateStatus(record, 3)">采购中</a>
           <a-divider type="vertical" />
           <a v-if="record.warnStatus != 0" @click="handleUpdateStatus(record, 0)">正常</a>
         </template>

+ 58 - 50
src/views/store/storecheckjob/StoreCheckJob.vue

@@ -3,17 +3,17 @@
     <div class="table-page-search-wrapper">
       <a-form layout="inline">
         <a-row :gutter="48">
-          <a-col :md="8" :sm="24">
+          <a-col :md="6" :sm="24">
             <a-form-item label="计划名称">
               <a-input v-model="queryParam.planName" placeholder="请输入计划名称" />
             </a-form-item>
           </a-col>
-          <a-col :md="8" :sm="24">
+          <a-col :md="6" :sm="24">
             <a-form-item label="负责人">
               <a-input v-model.trim="queryParam.keyword" placeholder="请输入负责人" />
             </a-form-item>
           </a-col>
-          <a-col :md="8" :sm="24">
+          <a-col :md="6" :sm="24">
             <a-form-item label="任务状态">
               <a-select v-model="queryParam.status" placeholder="请选择">
                 <a-select-option v-for="(label,value) in statusMap" :key="value" :label="label" :value="parseInt(value)">{{ label }}
@@ -21,7 +21,7 @@
               </a-select>
             </a-form-item>
           </a-col>
-          <a-col :md="8 || 24" :sm="24">
+          <a-col :md="6 || 24" :sm="24">
             <span class="table-page-search-submitButtons">
               <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
               <a-button style="margin-left: 8px" @click="resetSearchForm">重置</a-button>
@@ -46,7 +46,15 @@
       </a-dropdown>
     </div>-->
 
-    <s-table ref="table" size="default" rowKey="id" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto">
+    <s-table
+      ref="table"
+      size="default"
+      rowKey="id"
+      :columns="columns"
+      :data="loadData"
+      :alert="options.alert"
+      :rowSelection="options.rowSelection"
+      showPagination="auto">
       <span slot="action" slot-scope="record">
         <template>
           <a @click="handleView(record)">查看</a>
@@ -82,7 +90,7 @@ export default {
     STable,
     Ellipsis,
     BaseForm,
-    Detail,
+    Detail
   },
   props: {
     /**
@@ -90,20 +98,20 @@ export default {
      */
     checkType: {
       type: Number,
-      default: 1,
+      default: 1
     },
     filter: {
       type: Number,
-      default: -1,
-    },
+      default: -1
+    }
   },
-  data() {
+  data () {
     this.names = ['负责', '巡检']
     return {
       // 查询参数
       queryParam: {
         type: this.checkType,
-        filter: this.filter,
+        filter: this.filter
       },
       // 表头
       columns: [
@@ -114,27 +122,27 @@ export default {
             return `${
               (this.$refs.table.localPagination.current - 1) * this.$refs.table.localPagination.pageSize + index + 1
             }`
-          },
+          }
         },
         {
           title: '计划名称',
-          dataIndex: 'planName',
+          dataIndex: 'planName'
         },
         {
           title: '仓库名称',
-          dataIndex: 'storeName',
+          dataIndex: 'storeName'
         },
         {
           title: '备件名称',
-          dataIndex: 'spareName',
+          dataIndex: 'spareName'
         },
         {
           title: '待盘数量',
-          dataIndex: 'checkNum',
+          dataIndex: 'checkNum'
         },
         {
           title: '实际数量',
-          dataIndex: 'realNum',
+          dataIndex: 'realNum'
         },
         {
           title: '盘盈盘亏',
@@ -149,36 +157,36 @@ export default {
             if (text === 2) {
               return '盘盈'
             }
-          },
+          }
         },
         {
           title: '说明',
-          dataIndex: 'remark',
+          dataIndex: 'remark'
         },
         {
           title: '处理结果',
-          dataIndex: 'feedback',
+          dataIndex: 'feedback'
         },
         {
           title: '开始时间',
-          dataIndex: 'startTime',
+          dataIndex: 'startTime'
         },
         {
           title: '结束时间',
-          dataIndex: 'endTime',
+          dataIndex: 'endTime'
         },
         {
           title: '任务状态',
           dataIndex: 'status',
-          scopedSlots: { customRender: 'status' },
+          scopedSlots: { customRender: 'status' }
         },
         {
           title: '操作',
           key: 'action',
           width: '200px',
           align: 'center',
-          scopedSlots: { customRender: 'action' },
-        },
+          scopedSlots: { customRender: 'action' }
+        }
       ],
       // 下拉框map
       statusMap: {},
@@ -188,7 +196,7 @@ export default {
         parameter = {
           ...parameter,
           ...this.queryParam,
-          dataScope: {},
+          dataScope: {}
         }
         return getCheckJobPage(Object.assign(parameter, this.queryParam)).then((res) => {
           return res.data
@@ -202,31 +210,31 @@ export default {
           show: true,
           clear: () => {
             this.selectedRowKeys = []
-          },
+          }
         },
         rowSelection: {
           selectedRowKeys: this.selectedRowKeys,
-          onChange: this.onSelectChange,
-        },
+          onChange: this.onSelectChange
+        }
       },
-      optionAlertShow: false,
+      optionAlertShow: false
     }
   },
-  created() {
+  created () {
     // 下拉框map
     this.statusMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.STORE_CHECK_JOB_STATUS)
     this.sbStatusMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.YES_NO)
     this.tableOption()
   },
   methods: {
-    tableOption() {
+    tableOption () {
       if (!this.optionAlertShow) {
         this.options = {
           alert: {
             show: true,
             clear: () => {
               this.selectedRowKeys = []
-            },
+            }
           },
           rowSelection: {
             selectedRowKeys: this.selectedRowKeys,
@@ -234,21 +242,21 @@ export default {
             getCheckboxProps: (record) => ({
               props: {
                 disabled: false,
-                name: record.id,
-              },
-            }),
-          },
+                name: record.id
+              }
+            })
+          }
         }
         this.optionAlertShow = true
       } else {
         this.options = {
           alert: false,
-          rowSelection: null,
+          rowSelection: null
         }
         this.optionAlertShow = false
       }
     },
-    batchDelete(id) {
+    batchDelete (id) {
       let ids = []
       if (this.BaseTool.String.isBlank(id)) {
         const length = this.selectedRows.length
@@ -266,46 +274,46 @@ export default {
         this.$refs.table.clearSelected()
       })
     },
-    handleEdit(record) {
+    handleEdit (record) {
       const modal = this.$refs.baseModal
       modal.base(record)
     },
-    handleFinish(record) {
+    handleFinish (record) {
       fetchCheckJob({ id: record.id }).then((res) => {
         const modal = this.$refs.baseModal
         modal.base(res.data)
       })
     },
-    handleExecute(record) {
+    handleExecute (record) {
       executeJob({ id: record.id }).then((res) => {
         this.handleOk()
       })
     },
-    handleView(record) {
+    handleView (record) {
       fetchCheckJob({ id: record.id }).then((res) => {
         const modal = this.$refs.detailModal
         modal.base(res.data)
       })
     },
-    handleOk() {
+    handleOk () {
       this.$refs.table.refresh()
     },
-    onSelectChange(selectedRowKeys, selectedRows) {
+    onSelectChange (selectedRowKeys, selectedRows) {
       this.selectedRowKeys = selectedRowKeys
       this.selectedRows = selectedRows
     },
-    resetSearchForm() {
+    resetSearchForm () {
       this.queryParam = {}
       this.$refs.table.refresh(true)
     },
-    doExport() {
+    doExport () {
       const parameter = {
-        ...this.queryParam,
+        ...this.queryParam
       }
       exportCheckJob(parameter).then((file) => {
         this.BaseTool.UPLOAD.downLoadExportExcel(file)
       })
-    },
-  },
+    }
+  }
 }
 </script>

+ 315 - 0
src/views/store/storecheckjob/StoreCheckJobRecord.vue

@@ -0,0 +1,315 @@
+<template>
+  <a-card :bordered="false">
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline">
+        <a-row :gutter="48">
+          <a-col :md="6" :sm="24">
+            <a-form-item label="计划名称">
+              <a-input v-model="queryParam.planName" placeholder="请输入计划名称" />
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="负责人">
+              <a-input v-model.trim="queryParam.keyword" placeholder="请输入负责人" />
+            </a-form-item>
+          </a-col>
+          <a-col :md="6" :sm="24">
+            <a-form-item label="任务状态">
+              <a-select v-model="queryParam.status" placeholder="请选择">
+                <a-select-option v-for="(label,value) in statusMap" :key="value" :label="label" :value="parseInt(value)">{{ label }}
+                </a-select-option>
+              </a-select>
+            </a-form-item>
+          </a-col>
+          <a-col :md="6 || 24" :sm="24">
+            <span class="table-page-search-submitButtons">
+              <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
+              <a-button style="margin-left: 8px" @click="resetSearchForm">重置</a-button>
+            </span>
+          </a-col>
+        </a-row>
+      </a-form>
+    </div>
+
+    <!-- <div class="table-operator" style="margin-bottom: 8px;">
+           <a-button v-if="$auth('check-jobs-add')" type="primary" icon="plus" @click="$refs.baseModal.base()">新增</a-button>
+      <a-button style="margin-left: 8px" v-if="($auth('check-spot-jobs-export') || $auth('check-polling-jobs-export'))" type="primary" icon="download" @click="doExport">导出</a-button>
+      <a-dropdown v-action:edit v-if="selectedRowKeys.length > 0 && ($auth('check-spot-jobs-finish') || $auth('check-polling-jobs-finish'))">
+        <a-menu slot="overlay">
+          <a-popconfirm title="是否要删除所选数据?" @confirm="batchDelete()">
+            <a-menu-item key="1"><a-icon type="delete" /><a>删除</a></a-menu-item>
+          </a-popconfirm>
+        </a-menu>
+        <a-button style="margin-left: 8px">
+          批量操作 <a-icon type="down" />
+        </a-button>
+      </a-dropdown>
+    </div>-->
+
+    <s-table
+      ref="table"
+      size="default"
+      rowKey="id"
+      :columns="columns"
+      :data="loadData"
+      :alert="options.alert"
+      :rowSelection="options.rowSelection"
+      showPagination="auto">
+      <span slot="action" slot-scope="record">
+        <template>
+          <a @click="handleView(record)">查看</a>
+          <template v-if="record.status === DictCache.VALUE.CHECK_JOB_STATUS.NOT_EXECUTE">
+            <a-divider type="vertical" />
+            <a @click="handleFinish(record)">完成</a>
+
+          </template>
+        </template>
+      </span>
+      <span slot="status" slot-scope="text">
+        <badge :status="DictCache.COLOR.JOB_STATUS[text]" :text="statusMap[text]" />
+      </span>
+    </s-table>
+    <base-form :check-type="checkType" ref="baseModal" @ok="handleOk" />
+    <detail :check-type="checkType" ref="detailModal" />
+  </a-card>
+</template>
+
+<script>
+import { STable, Ellipsis } from '@/components'
+import BaseForm from './modules/BaseForm'
+import Detail from './modules/Detail'
+import { getCheckJobPage, deleteCheckJobs, fetchCheckJob, exportCheckJob, executeJob } from '@/api/store/storecheckjob'
+
+export default {
+  name: 'CheckJobList',
+  components: {
+    STable,
+    Ellipsis,
+    BaseForm,
+    Detail
+  },
+  props: {
+    /**
+     * 检查类型: 1-负责 2-巡检
+     */
+    checkType: {
+      type: Number,
+      default: 1
+    },
+    filter: {
+      type: Number,
+      default: -1
+    }
+  },
+  data () {
+    this.names = ['负责', '巡检']
+    return {
+      // 查询参数
+      queryParam: {
+        type: this.checkType,
+        filter: this.filter
+      },
+      // 表头
+      columns: [
+        {
+          title: '序号',
+          dataIndex: 'index',
+          customRender: (text, record, index) => {
+            return `${
+              (this.$refs.table.localPagination.current - 1) * this.$refs.table.localPagination.pageSize + index + 1
+            }`
+          }
+        },
+        {
+          title: '计划名称',
+          dataIndex: 'planName'
+        },
+        {
+          title: '仓库名称',
+          dataIndex: 'storeName'
+        },
+        {
+          title: '备件名称',
+          dataIndex: 'spareName'
+        },
+        {
+          title: '待盘数量',
+          dataIndex: 'checkNum'
+        },
+        {
+          title: '实际数量',
+          dataIndex: 'realNum'
+        },
+        {
+          title: '盘盈盘亏',
+          dataIndex: 'profit',
+          customRender: (text) => {
+            if (text === 0) {
+              return '正常'
+            }
+            if (text === 1) {
+              return '盘亏'
+            }
+            if (text === 2) {
+              return '盘盈'
+            }
+          }
+        },
+        {
+          title: '说明',
+          dataIndex: 'remark'
+        },
+        {
+          title: '处理结果',
+          dataIndex: 'feedback'
+        },
+        {
+          title: '开始时间',
+          dataIndex: 'startTime'
+        },
+        {
+          title: '结束时间',
+          dataIndex: 'endTime'
+        },
+        {
+          title: '任务状态',
+          dataIndex: 'status',
+          scopedSlots: { customRender: 'status' }
+        },
+        {
+          title: '操作',
+          key: 'action',
+          width: '200px',
+          align: 'center',
+          scopedSlots: { customRender: 'action' }
+        }
+      ],
+      // 下拉框map
+      statusMap: {},
+      sbStatusMap: {},
+      // 加载数据方法 必须为 Promise 对象
+      loadData: (parameter) => {
+        parameter = {
+          ...parameter,
+          ...this.queryParam,
+          dataScope: {}
+        }
+        return getCheckJobPage(Object.assign(parameter, this.queryParam)).then((res) => {
+          return res.data
+        })
+      },
+      selectedRowKeys: [],
+      selectedRows: [],
+
+      options: {
+        alert: {
+          show: true,
+          clear: () => {
+            this.selectedRowKeys = []
+          }
+        },
+        rowSelection: {
+          selectedRowKeys: this.selectedRowKeys,
+          onChange: this.onSelectChange
+        }
+      },
+      optionAlertShow: false
+    }
+  },
+  created () {
+    // 下拉框map
+    this.statusMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.STORE_CHECK_JOB_STATUS)
+    this.sbStatusMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.YES_NO)
+    this.tableOption()
+  },
+  methods: {
+    tableOption () {
+      if (!this.optionAlertShow) {
+        this.options = {
+          alert: {
+            show: true,
+            clear: () => {
+              this.selectedRowKeys = []
+            }
+          },
+          rowSelection: {
+            selectedRowKeys: this.selectedRowKeys,
+            onChange: this.onSelectChange,
+            getCheckboxProps: (record) => ({
+              props: {
+                disabled: false,
+                name: record.id
+              }
+            })
+          }
+        }
+        this.optionAlertShow = true
+      } else {
+        this.options = {
+          alert: false,
+          rowSelection: null
+        }
+        this.optionAlertShow = false
+      }
+    },
+    batchDelete (id) {
+      let ids = []
+      if (this.BaseTool.String.isBlank(id)) {
+        const length = this.selectedRows.length
+        if (length === 0) {
+          this.$message.info('请选择要删除的记录')
+          return
+        }
+        ids = this.selectedRows.map((item) => item.id)
+      } else {
+        ids = [id]
+      }
+      deleteCheckJobs(ids).then((res) => {
+        this.$message.info('删除成功')
+        this.handleOk()
+        this.$refs.table.clearSelected()
+      })
+    },
+    handleEdit (record) {
+      const modal = this.$refs.baseModal
+      modal.base(record)
+    },
+    handleFinish (record) {
+      fetchCheckJob({ id: record.id }).then((res) => {
+        const modal = this.$refs.baseModal
+        modal.base(res.data)
+      })
+    },
+    handleExecute (record) {
+      executeJob({ id: record.id }).then((res) => {
+        this.handleOk()
+      })
+    },
+    handleView (record) {
+      fetchCheckJob({ id: record.id }).then((res) => {
+        const modal = this.$refs.detailModal
+        modal.base(res.data)
+      })
+    },
+    handleOk () {
+      this.$refs.table.refresh()
+    },
+    onSelectChange (selectedRowKeys, selectedRows) {
+      this.selectedRowKeys = selectedRowKeys
+      this.selectedRows = selectedRows
+    },
+    resetSearchForm () {
+      this.queryParam = {}
+      this.$refs.table.refresh(true)
+    },
+    doExport () {
+      const parameter = {
+        ...this.queryParam
+      }
+      exportCheckJob(parameter).then((file) => {
+        this.BaseTool.UPLOAD.downLoadExportExcel(file)
+      })
+    }
+  }
+}
+</script>

+ 9 - 9
src/views/store/storecheckplan/StoreCheckPlan.vue

@@ -4,17 +4,17 @@
       <div class="table-page-search-wrapper">
         <a-form layout="inline">
           <a-row :gutter="48">
-            <a-col :md="8" :sm="24">
+            <a-col :md="6" :sm="24">
               <a-form-item label="计划编号">
                 <a-input v-model="queryParam.no" placeholder="请输入名称/类型名称"/>
               </a-form-item>
             </a-col>
-            <a-col :md="8" :sm="24">
+            <a-col :md="6" :sm="24">
               <a-form-item label="计划名称">
                 <a-input v-model="queryParam.name" placeholder="请输入名称/类型名称"/>
               </a-form-item>
             </a-col>
-            <a-col :md="8" :sm="24">
+            <a-col :md="6" :sm="24">
               <a-form-item label="仓库">
                 <a-tree-select
                   style="width: 100%"
@@ -28,7 +28,7 @@
                 </a-tree-select>
               </a-form-item>
             </a-col>
-            <a-col :md="8 || 24" :sm="24">
+            <a-col :md="6 || 24" :sm="24">
               <span class="table-page-search-submitButtons">
                 <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
                 <a-button style="margin-left: 8px" @click="resetSearchForm">重置</a-button>
@@ -81,10 +81,10 @@
             :text="enableMap[text]" />
         </span>
         <span slot="status" slot-scope="text">
-        <badge
-          :status="DictCache.COLOR.JOB_STATUS[text]"
-          :text="statusMap[text]" />
-      </span>
+          <badge
+            :status="DictCache.COLOR.JOB_STATUS[text]"
+            :text="statusMap[text]" />
+        </span>
       </s-table>
     </div>
     <base-form :check-type="checkType" ref="baseModal" @ok="handleOk"/>
@@ -97,7 +97,7 @@
 import { STable, Ellipsis } from '@/components'
 import BaseForm from './modules/BaseForm'
 import Detail from './modules/Detail'
-import { getCheckPlanPage,excuteCheckPlan, deleteCheckPlans, fetchCheckPlan, exportCheckPlan } from '@/api/store/storecheckplan'
+import { getCheckPlanPage, excuteCheckPlan, deleteCheckPlans, fetchCheckPlan, exportCheckPlan } from '@/api/store/storecheckplan'
 import { fetchStoreTree } from '@/api/store/store'
 import StoreCheckJobTable2 from '@/views/store/storecheckjob/modules/StoreCheckJobTable2'