From 0867327d337ea6e30d1363a776e276d7a32e1db8 Mon Sep 17 00:00:00 2001 From: gaoshp <291585735@qq.com> Date: 星期日, 20 七月 2025 20:49:43 +0800 Subject: [PATCH] 流程查询 --- src/views/tasks/dncreturnfiles.vue | 262 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 262 insertions(+), 0 deletions(-) diff --git a/src/views/tasks/dncreturnfiles.vue b/src/views/tasks/dncreturnfiles.vue new file mode 100644 index 0000000..183d3ea --- /dev/null +++ b/src/views/tasks/dncreturnfiles.vue @@ -0,0 +1,262 @@ +<!-- + * @Date: 2025-06-18 09:17:09 + * @LastEditors: gaoshp + * @LastEditTime: 2025-07-20 20:29:18 + * @FilePath: /mdmweb/src/views/tasks/dncreturnfiles.vue +--> +<template> + <basic-container> + <avue-crud :option="option" :table-loading="loading" :data="data" v-model:page="page" v-model="form" ref="crud" + @search-change="searchChange" @search-reset="searchReset" @current-change="currentChange" + @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad" + @selection-change="selectionChange"> + <template #menu-left> + <el-button type="primary" plain @click="exportWebSite">瀵煎嚭鍥炰紶娑夊瘑缃�</el-button> + <el-button type="primary" plain @click="reassign">鎸傝浇杞﹀簥绋嬪簭搴�</el-button> + <el-button type="primary" plain @click="exportExcel">瀵煎嚭鍒癊XCEL</el-button> + </template> + <template #menu="scope"> + <el-button type="primary" text size="default" @click.stop="handleAction(scope.row, scope.index, 1)">鎺ュ彈 + </el-button> + <el-button type="danger" text size="default" @click.stop="handleAction(scope.row, scope.index, 0)">鎷掔粷 + </el-button> + </template> + </avue-crud> + </basic-container> +</template> + +<script> +import { getList, reject, accept } from '@/api/tasks/dncreturnfiles.js'; +import { exportBlob } from '@/api/common'; +import { getToken } from '@/utils/auth'; +import NProgress from 'nprogress'; +import { downloadXls } from '@/utils/util'; +import 'nprogress/nprogress.css'; +export default { + name: 'MachineReturnFileOp', + data() { + return { + page: { + pageSize: 10, + currentPage: 1, + total: 0, + }, + form: {}, + query: {}, + loading: true, + data: [], + option: { + addBtn: false, + editBtn: false, + delBtn: false, + columnBtn: false, + tip: false, + // simplePage: true, + searchShow: true, + searchMenuSpan: 6, + dialogWidth: '60%', + // tree: true, + border: true, + index: true, + selection: true, + viewBtn: false, + menuWidth: 200, + // menu: false, + dialogClickModal: false, + column: [ + { + label: '纭鏃堕棿', + prop: 'confirmTime', + type: 'datetime', + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + search: true, + searchRange: true, + searchSpan: 8, + hide: true, + }, + + { + label: '绋嬪簭缂栧彿', + prop: 'code', + }, + { + label: '鍥炰紶鏈哄簥', + prop: 'machineCode', + }, + + { + label: '鏂囦欢鍚嶇О', + prop: 'name' + }, + { + label: '鏂囦欢鍥哄寲鐘舵��', + prop: 'isCured', + formatter: (val, value, label) => { + return `${val == 0 ? '鏈浐鍖�' : "宸插浐鍖�"}`; + }, + }, + { + label: '鏂囦欢鍒拌揪鏃堕棿', + prop: 'arrivedTime', + type: 'datetime', + format: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + } + ], + selectedList: [], + } + } + }, + methods: { + handleAction(row, index, flag) { + // 澶勭悊鎺ュ彈鎴栨嫆缁濇搷浣� + let ids = [row.id].toString(); + if (flag) { + accept({ ids }).then(() => { + this.$message.success(`鎿嶄綔鎴愬姛: ${row.name}`); + this.$refs.crud.toggleSelection(); + this.onLoad(this.page); + }).catch(() => { + this.$message.error(`鎿嶄綔澶辫触: ${row.name}`); + this.$refs.crud.refreshChange(); + }); + } else { + this.$confirm('纭畾鎷掔粷?', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + }) + .then(() => { + reject({ ids }).then(() => { + this.$message.success(`鎿嶄綔鎴愬姛: ${row.name}`); + }).catch(() => { + this.$message.error(`鎿嶄綔澶辫触: ${row.name}`); + this.$refs.crud.toggleSelection(); + this.onLoad(this.page); + }); + }) + + } + }, + selectionChange(list) { + this.selectedList = list; + }, + exportWebSite() { + if (this.selectedList.length === 0) { + this.$message.warning('璇峰厛閫夋嫨闇�瑕佸鍑虹殑鏁版嵁'); + return; + } + this.$confirm('鏄惁瀵煎嚭?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + }).then(() => { + NProgress.start(); + exportBlob( + `/blade-mdm/machineback/filehandle/export-to-inner`, + { + ids: this.selectedList.map(item => item.id).join(','), + } + ).then(res => { + downloadXls(res.data, `瀵煎嚭鍥炰紶娑夊瘑缃�${this.$dayjs().format('YYYY-MM-DD HH:mm:ss')}.xlsx`); + NProgress.done(); + }); + }); + }, + exportExcel() { + if (this.selectedList.length === 0) { + this.$message.warning('璇峰厛閫夋嫨闇�瑕佸鍑虹殑鏁版嵁'); + return; + } + this.$confirm('鏄惁瀵煎嚭?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + }).then(() => { + NProgress.start(); + exportBlob( + `/blade-mdm/machineback/filehandle/export-excel?${this.website.tokenHeader}=${getToken()}` + ).then(res => { + downloadXls(res.data, `瀵煎嚭鏈哄簥鍥炰紶绋嬪簭${this.$dayjs().format('YYYY-MM-DD HH:mm:ss')}.xlsx`); + NProgress.done(); + }); + }); + }, + searchChange(params, done) { + let data = {} + this.query = params; + this.page.currentPage = 1; + console.log('searchChange', params); + params.confirmTimeBegin = params?.confirmTime?.[0] || ''; + params.confirmTimeEnd = params?.confirmTime?.[1] || ''; + console.log(params); + // data = { + // createTimeBegin: dayjs(params.createTimeBegin).isValid() ? dayjs(params.createTimeBegin).format('YYYY-MM-DD') : '', + // createTimeEnd: dayjs(params.createTimeEnd).isValid() ? dayjs(params.createTimeEnd).format('YYYY-MM-DD') : '', + // keyword: params.keyword || '' + // } + data = { + confirmTimeBegin: params.confirmTimeBegin, + confirmTimeEnd: params.confirmTimeEnd, + } + this.query = data + this.onLoad(this.page, data); + done(); + }, + searchReset() { + let data = {} + this.query = params; + this.page.currentPage = 1; + data = { + createTimeBegin: params.createTimeBegin, + createTimeEnd: params.createTimeEnd, + keyword: params.keyword || '' + } + this.onLoad(this.page, data); + done(); + }, + currentChange(currentPage) { + this.page.currentPage = currentPage; + // this.onLoad(); + }, + sizeChange(pageSize) { + this.page.pageSize = pageSize; + }, + refreshChange() { + this.onLoad(this.page, this.query); + }, + /** * 椤甸潰鍔犺浇鏃惰幏鍙栨暟鎹� + */ + onLoad(page, params = {}) { + console.log('onLoad', page, params); + const query = { + ...this.query, + // category: params.category ? flowCategory(params.category) : null, + mode: this.mode, + }; + try { + delete query.confirmTime; // 鍒犻櫎涓嶅繀瑕佺殑鏌ヨ鏉′欢 + } catch (error) { + console.error('鏃ユ湡鏍煎紡鍖栭敊璇�', error); + } + + this.loading = true; + getList(page.currentPage, page.pageSize, Object.assign(query, params)).then(res => { + const data = res.data.data; + this.page.total = data.total; + this.data = data.records; + this.loading = false; + }, () => { + this.data = []; + this.loading = false; + }).catch(err => { + this.data = []; + this.loading = false; + }); + } + } +}; +</script> + +<style lang="scss" scoped></style> \ No newline at end of file -- Gitblit v1.9.3