From a2299a6d4a6f99e9c11132138f5d3e9ec68f03ea Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 06 六月 2025 19:19:34 +0800 Subject: [PATCH] 开发更新 --- admin/src/views/stock/assetList.vue | 155 +++++++++++++++++++++++++++++++++------------------ 1 files changed, 100 insertions(+), 55 deletions(-) diff --git a/admin/src/views/stock/assetList.vue b/admin/src/views/stock/assetList.vue index ace748c..7e4042c 100644 --- a/admin/src/views/stock/assetList.vue +++ b/admin/src/views/stock/assetList.vue @@ -2,42 +2,67 @@ <div class="main_app"> <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> <div class="mt20"> - <el-button type="primary" @click="handleEx()" v-permissions="['business:ywpatrolline:create']">鏂板</el-button> + <el-button type="primary" @click="$refs.newMaterial.open('鏂板缓鐗╂枡')">娣诲姞</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> <div class="mt20"> <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> <script> import Pagination from '@/components/common/Pagination' import QueryForm from '@/components/common/QueryForm' +import newMaterial from './components/newMaterial' 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, - QueryForm + QueryForm, + newMaterial }, data() { return { @@ -53,77 +78,97 @@ 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) { + if (page) { + this.pagination.page = 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鏃秏鍒唖绉�') - }) 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 = {} this.pagination.pageSize = 10 -- Gitblit v1.9.3