|  |  | 
 |  |  |     <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> | 
 |  |  |     <div class="mt20"> | 
 |  |  |       <el-button type="primary" @click="$refs.newMaterial.open('新建物料')">添加</el-button> | 
 |  |  |       <el-button>导出</el-button> | 
 |  |  |       <el-button>导入</el-button> | 
 |  |  |       <el-button @click="exportExcel">导出</el-button> | 
 |  |  |       <el-popover | 
 |  |  |         placement="right" | 
 |  |  |         trigger="click"> | 
 |  |  |         <div style="display: flex; align-items: center; justify-content: center;"> | 
 |  |  |           <el-button type="primary" @click="$refs.uploadFile.click()">导入模板</el-button> | 
 |  |  |           <el-button type="text" @click="exportTemplate">点击下载模版.EXCEL</el-button> | 
 |  |  |         </div> | 
 |  |  |         <el-button style="margin-left: 10px;" slot="reference">导入</el-button> | 
 |  |  |       </el-popover> | 
 |  |  |     </div> | 
 |  |  |     <el-table v-loading="loading" :data="list" stripe> | 
 |  |  |       <el-table-column prop="platformName" label="资产编码" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="platformGroupName" label="资产名称" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="carCodeFront" label="条码" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="carCodeBack" label="品牌" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="param1" label="规格型号" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="param2" label="单位" min-width="70" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="param2" label="安全库存(下限)" min-width="120" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="param2" label="安全库存(上限)" min-width="120" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="param2" label="状态" min-width="80" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="code" label="物料编码" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="name" label="物料名称" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="qrcode" label="条码" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="brand" label="品牌" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="attr" label="规格型号" min-width="100" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="unitName" label="单位" min-width="70" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="minStock" label="安全库存(下限)" min-width="120" show-overflow-tooltip /> | 
 |  |  |       <el-table-column prop="maxStock" label="安全库存(上限)" min-width="120" show-overflow-tooltip /> | 
 |  |  |       <el-table-column label="状态" min-width="80"> | 
 |  |  |         <template v-slot="{ row }"> | 
 |  |  |           <el-switch | 
 |  |  |             v-model="row.status" | 
 |  |  |             active-color="#13ce66" | 
 |  |  |             inactive-color="#ff4949" | 
 |  |  |             @change="changeStatus($event, row)" | 
 |  |  |             :active-value="0" | 
 |  |  |             :inactive-value="1"> | 
 |  |  |           </el-switch> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column prop="workTime" label="操作" min-width="100" show-overflow-tooltip> | 
 |  |  |         <template v-slot="{ row }"> | 
 |  |  |           <span class="primaryColor pointer">编辑</span> | 
 |  |  |           <span class="red pointer">删除</span> | 
 |  |  |           <el-button type="text" @click="$refs.newMaterial.open('编辑物料', {...row, cateArr: [row.parentCateId, row.cateId] })">编辑</el-button> | 
 |  |  |           <el-button type="text" @click="dele(row.id)">删除</el-button> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |     </el-table> | 
 |  |  | 
 |  |  |       <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> | 
 |  |  |     </div> | 
 |  |  |     <newMaterial ref="newMaterial" @success="getList" /> | 
 |  |  |     <input type="file" ref="uploadFile" @change="importTemplate" accept=".xlsx" style="position: fixed; top: -100px;" /> | 
 |  |  |   </div> | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | 
 |  |  | import dayjs from 'dayjs' | 
 |  |  | import duration from 'dayjs/plugin/duration' | 
 |  |  | dayjs.extend(duration) | 
 |  |  | import { platformLogPage, getPlatformGroupList } from '@/api' | 
 |  |  | import { fetchList, updateStatus, deleteById, exportExcel, importMaterialBatch } from '@/api/ywMaterial' | 
 |  |  | export default { | 
 |  |  |   components: { | 
 |  |  |     Pagination, | 
 |  |  | 
 |  |  |       queryFormConfig: { | 
 |  |  |         formItems: [ | 
 |  |  |           { | 
 |  |  |             filed: 'carCodeFront', | 
 |  |  |             filed: 'code', | 
 |  |  |             type: 'input', | 
 |  |  |             label: '资产信息', | 
 |  |  |             placeholder: '请输入资产名称/编码' | 
 |  |  |             label: '名称/编码', | 
 |  |  |             placeholder: '请输入名称/编码' | 
 |  |  |           }, | 
 |  |  |           { | 
 |  |  |             filed: 'carCodeFront', | 
 |  |  |             filed: 'attr', | 
 |  |  |             type: 'input', | 
 |  |  |             label: '规格型号', | 
 |  |  |           }, | 
 |  |  |           { | 
 |  |  |             filed: 'platformGroupId', | 
 |  |  |             type: 'select', | 
 |  |  |             label: '所属项目', | 
 |  |  |             options: [] | 
 |  |  |           } | 
 |  |  |         ], | 
 |  |  |         online: true | 
 |  |  |         ] | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |   created() { | 
 |  |  |     // this.getList() | 
 |  |  |     // this.getGroupList() | 
 |  |  |     this.getList() | 
 |  |  |   }, | 
 |  |  |   methods: { | 
 |  |  |     handleSub() { | 
 |  |  |       this.$refs.ruleForm.validate((valid) => { | 
 |  |  |         if (valid) { | 
 |  |  |           alert('submit!') | 
 |  |  |         } | 
 |  |  |       }) | 
 |  |  |     // 导出模板 | 
 |  |  |     exportTemplate () { | 
 |  |  |       window.open('/template/material.xlsx') | 
 |  |  |     }, | 
 |  |  |     handleEx() { }, | 
 |  |  |     getGroupList() { | 
 |  |  |       getPlatformGroupList({ queryData: 0, queryType: 0 }).then(res => { | 
 |  |  |         this.queryFormConfig.formItems[1].options = res.map(i => { | 
 |  |  |           return { | 
 |  |  |             value: i.id, | 
 |  |  |             label: i.name | 
 |  |  |           } | 
 |  |  |     // 导入模板 | 
 |  |  |     importTemplate(e) { | 
 |  |  |       const FormDate = new FormData() | 
 |  |  |       FormDate.append('file', e.target.files[0]) | 
 |  |  |       importMaterialBatch(FormDate) | 
 |  |  |         .then(res => { | 
 |  |  |           this.getList() | 
 |  |  |         }) | 
 |  |  |         // this.queryFormConfig.formItems[1].options.unshift({ value: '', label: '全部月台组' }) | 
 |  |  |       }) | 
 |  |  |         .finally(() => { | 
 |  |  |           this.$refs.uploadFile.value = null | 
 |  |  |         }) | 
 |  |  |     }, | 
 |  |  |     exportExcel () { | 
 |  |  |       this.$dialog.exportConfirm('确认导出吗?') | 
 |  |  |         .then(() => { | 
 |  |  |           exportExcel({ | 
 |  |  |             page: this.pagination.page, | 
 |  |  |             capacity: 1000000, | 
 |  |  |             model: this.filters | 
 |  |  |           }) | 
 |  |  |             .then(response => { | 
 |  |  |               this.download(response) | 
 |  |  |             }) | 
 |  |  |             .catch(e => { | 
 |  |  |               this.$tip.apiFailed(e) | 
 |  |  |             }) | 
 |  |  |         }) | 
 |  |  |         .catch(() => {}) | 
 |  |  |     }, | 
 |  |  |     getList(page) { | 
 |  |  |       const { pagination, filters } = this | 
 |  |  |       this.loading = true | 
 |  |  |       platformLogPage({ | 
 |  |  |       fetchList({ | 
 |  |  |         model: { | 
 |  |  |           ...filters, | 
 |  |  |           queryStatus: '6,7,8', | 
 |  |  |           beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null, | 
 |  |  |           beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null, | 
 |  |  |           ...filters | 
 |  |  |         }, | 
 |  |  |         sorts: [{ direction: 'DESC', property: 'param1' }], | 
 |  |  |         capacity: pagination.pageSize, | 
 |  |  |         page: page || pagination.page, | 
 |  |  |       }).then(res => { | 
 |  |  |         this.loading = false | 
 |  |  |         this.list = res.records || [] | 
 |  |  |         this.list.forEach(item => { | 
 |  |  |           item.inTypeTemp = item.inType == 0 ? '整托盘' : '件烟' | 
 |  |  |           item.taskOrigin = 'WMS获取' | 
 |  |  |           item.workTime = dayjs.duration(item.param3, 'seconds').format('H时m分s秒') | 
 |  |  |         }) | 
 |  |  |         this.pagination.total = res.total || 0 | 
 |  |  |       }, () => { | 
 |  |  |         this.loading = false | 
 |  |  |       }) | 
 |  |  |     }, | 
 |  |  |     dele(id) { | 
 |  |  |       this.$confirm('是否确认删除该物料?', '提示', { | 
 |  |  |         confirmButtonText: '确定', | 
 |  |  |         cancelButtonText: '取消', | 
 |  |  |         type: 'warning' | 
 |  |  |       }).then(() => { | 
 |  |  |         deleteById(id) | 
 |  |  |           .then(res => { | 
 |  |  |             this.getList() | 
 |  |  |           }) | 
 |  |  |       }).catch(() => { | 
 |  |  |        | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     changeStatus(e, row) { | 
 |  |  |       updateStatus({ id: row.id, status: e }) | 
 |  |  |         .then(res => { | 
 |  |  |           this.getList() | 
 |  |  |         }) | 
 |  |  |     }, | 
 |  |  |     clear() { | 
 |  |  |       this.filters = {} | 
 |  |  | 
 |  |  |     }, | 
 |  |  |     handleSizeChange(capacity) { | 
 |  |  |       this.pagination.pageSize = capacity | 
 |  |  |       this.getList() | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } |