From b14bf62abb3480d95beee8314fcb08c0d893813b Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 22 九月 2025 14:18:19 +0800
Subject: [PATCH] 文件下发,回传文件处理的查看下载
---
src/views/tasks/machinereturnfileop.vue | 239 +++++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 174 insertions(+), 65 deletions(-)
diff --git a/src/views/tasks/machinereturnfileop.vue b/src/views/tasks/machinereturnfileop.vue
index 4dadcf5..ea61970 100644
--- a/src/views/tasks/machinereturnfileop.vue
+++ b/src/views/tasks/machinereturnfileop.vue
@@ -1,30 +1,38 @@
<!--
* @Date: 2025-06-18 09:17:09
* @LastEditors: gaoshp
- * @LastEditTime: 2025-06-20 09:03:42
+ * @LastEditTime: 2025-08-13 21:23:34
* @FilePath: /mdmweb/src/views/tasks/machinereturnfileop.vue
-->
<template>
<basic-container>
- <avue-crud :option="option" :table-loading="loading" :data="data" v-model:page="page" v-model="form" ref="crud"
+ <avue-crud :option="option" :search="query" :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">
+ @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad" @selection-change="selectionChange">
<template #menu-left>
- <el-button type="primary" plain @click="reassign">瀵煎嚭鍥炰紶娑夊瘑缃�</el-button>
- <el-button type="primary" plain @click="reassign">鎸傝浇杞﹀簥绋嬪簭搴�</el-button>
- <el-button type="primary" plain @click="reassign">瀵煎嚭鍒癊XCEL</el-button>
+ <el-button type="primary" :disabled="this.selectedList.length==0" plain @click="exportWebSite">瀵煎嚭鍥炰紶娑夊瘑缃�</el-button>
+ <!--<el-button type="primary" plain @click="reassign">鎸傝浇杞﹀簥绋嬪簭搴�</el-button>-->
+ <el-button type="primary" :disabled="this.selectedList.length==0" plain @click="exportExcel">瀵煎嚭鍒癊XCEL</el-button>
</template>
<template #menu="scope">
- <el-button type="primary" text size="default" v-if="permission.flow_model_update"
- @click.stop="handleAction(scope.row, scope.index)">瀹℃壒
- </el-button>
+ <el-button type="primary" text size="default" @click.stop="showContent(scope.row)">鏌ョ湅</el-button>
+ <el-button type="primary" text size="default" @click.stop="download(scope.row, scope.index)">涓嬭浇</el-button>
</template>
</avue-crud>
+
+ <el-dialog title="绋嬪簭鍐呭" append-to-body v-model="fileViewModel">
+ <div v-html="appContent" class="app-content"></div>
+ </el-dialog>
</basic-container>
</template>
<script>
import { getList } from '@/api/tasks/machinereturnfileop.js';
+import { exportBlob } from '@/api/common';
+import { getToken } from '@/utils/auth';
+import NProgress from 'nprogress';
+import { downloadXls,downloadFile } from '@/utils/util';
+import 'nprogress/nprogress.css';
export default {
name: 'MachineReturnFileOp',
data() {
@@ -35,96 +43,197 @@
total: 0,
},
form: {},
- query: {},
+ query: {status:1},
loading: true,
data: [],
+ fileViewModel:false,
+ appContent:'',
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: true,
- menuWidth: 100,
+ menuWidth: 110,
+ menu: true,
dialogClickModal: false,
column: [
+
+ {
+ label: '鏂囦欢鍚嶇О',
+ prop: 'name',
+ search:true,
+ searchSpan:4
+ },
{
+ label: '瀵煎嚭鐘舵��',
+ prop: 'status',
+ search:true,
+ type:'select',
+ searchSpan:4,
+ dicData:[
+ {
+ label: '鏈鍑�',
+ value:1
+ },
+ {
+ label: '宸插鍑�',
+ value:2
+ }
+ ]
+ },
+ {
+ label: '鍥炰紶鏈哄簥',
+ prop: 'machineCode',
+ },
+ {
+ label: '绋嬪簭鐘舵��',
+ prop: 'programStatus',
+ render: ({ row,value }) => {
+ var txt = '鏈煡';
+ switch(row.programStatus){
+ case 1:
+ txt = '璇曞垏';
+ break;
+ case 2:
+ txt = '鍥哄寲';
+ break;
+ case 3:
+ txt = '鍋忕';
+ break;
+ default:
+ txt = '鏈煡';
+ }
+ return txt;
+ }
+ },
+ {
+ label: '鏂囦欢鍒拌揪鏃堕棿',
+ prop: 'fileCreateTime',
+ type: 'datetime',
+ format: 'YYYY-MM-DD HH:mm:ss',
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ },
+ {
label: '纭鏃堕棿',
- prop: '',
+ prop: 'createTime',
type: 'datetime',
format: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'YYYY-MM-DD HH:mm:ss',
search: true,
searchRange: true,
- searchSpan: 8,
- hide: true,
+ searchSpan: 10,
+ hide: false,
},
-
- {
- label: '绋嬪簭缂栧彿',
- prop: 'processDefinitionName',
- },
- {
- label: '鍥炰紶鏈哄簥',
- prop: 'processDefinitionName',
- },
-
- {
- label: '鏂囦欢鍚嶇О',
- prop: '',
- formatter: (val, value, label) => {
- return `${val?.variables?.machineCode}`;
- },
- },
- {
- label: '鏂囦欢鍥哄寲鐘舵��',
- prop: 'startUserName',
- },
- {
- label: '鏂囦欢鍒拌揪鏃堕棿',
- prop: 'processCreateTime',
+ {
+ label: '瀵煎嚭鏃堕棿',
+ prop: 'exportTime',
type: 'datetime',
format: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'YYYY-MM-DD HH:mm:ss',
- },
- {
- label: '鏂囦欢鏁版嵁搴撶紪鍙�',
- prop: 'createTime',
- },
+ }
],
- }
+ },
+ selectedList: [],
}
},
methods: {
- reassign() {
-
+ showContent(row) {
+ this.fileViewModel = true;
+ this.appContent = '';
+ axios({
+ url: '/blade-mdm/ossfile/file-content',
+ method: 'get',
+ params: {ossFileName: row.ossName}
+ }).then(
+ res => {
+ console.log(res)
+ if(res.data.code === 200) {
+ this.appContent = res.data.data;
+ } else {
+ this.appContent = '绋嬪簭鍐呭鍔犺浇澶辫触'
+ }
+ });
+ },
+ download(row){
+ exportBlob(
+ `/blade-mdm/machinefile/filehandle/download-by-id?id=${row.id}&${this.website.tokenHeader}=${getToken()}`,
+
+ ).then(res => {
+
+ let name = res.headers['content-disposition'].split('filename=')[1]
+ //console.log(res.headers['content-disposition'].split('filename=')[1]);
+ name = decodeURI(name)
+ downloadFile(res.data, `${name}`);
+ NProgress.done();
+ });
+ },
+ 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/machinefile/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')}.zip`);
+ this.onLoad(this.page, {});
+ NProgress.done();
+ });
+ });
+ },
+ exportExcel() {
+ if (this.selectedList.length === 0) {
+ this.$message.warning('璇峰厛閫夋嫨闇�瑕佸鍑虹殑鏁版嵁');
+ return;
+ }
+ this.$confirm('鏄惁瀵煎嚭?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning',
+ }).then(() => {
+ NProgress.start();
+ exportBlob(
+ `/blade-mdm/machinefile/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.createTimeBegin = params?.processCreateTime?.[0] || '';
- params.createTimeEnd = params?.processCreateTime?.[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 || ''
- // }
+ params.confirmTimeBegin = params?.determineTime?.[0] || '';
+ params.confirmTimeEnd = params?.determineTime?.[1] || '';
+
data = {
- createTimeBegin: params.createTimeBegin,
- createTimeEnd: params.createTimeEnd,
- keyword: params.keyword || ''
+ confirmTimeBegin: params.confirmTimeBegin,
+ confirmTimeEnd: params.confirmTimeEnd,
+ name: params.name,
+ status: this.query.status,
}
+ this.query = data
this.onLoad(this.page, data);
done();
},
@@ -133,8 +242,8 @@
this.query = params;
this.page.currentPage = 1;
data = {
- createTimeBegin: params.createTimeBegin,
- createTimeEnd: params.createTimeEnd,
+ createTimeBegin: params.confirmTimeBegin,
+ createTimeEnd: params.confirmTimeEnd,
keyword: params.keyword || ''
}
this.onLoad(this.page, data);
@@ -153,13 +262,13 @@
/** * 椤甸潰鍔犺浇鏃惰幏鍙栨暟鎹�
*/
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.processCreateTime; // 鍒犻櫎涓嶅繀瑕佺殑鏌ヨ鏉′欢
+ delete query.confirmTime; // 鍒犻櫎涓嶅繀瑕佺殑鏌ヨ鏉′欢
} catch (error) {
console.error('鏃ユ湡鏍煎紡鍖栭敊璇�', error);
}
@@ -170,7 +279,7 @@
this.page.total = data.total;
this.data = data.records;
this.loading = false;
- },() => {
+ }, () => {
this.data = [];
this.loading = false;
}).catch(err => {
--
Gitblit v1.9.3