| | |
| | | /* |
| | | * @Date: 2025-06-12 22:38:05 |
| | | * @LastEditors: gaoshp |
| | | * @LastEditTime: 2025-07-08 21:08:24 |
| | | * @LastEditTime: 2025-08-17 19:29:16 |
| | | * @FilePath: /mdmweb/src/api/flowmgr/backImport.js |
| | | */ |
| | | import request from '@/axios'; |
| | | export const getList = (current, size, params) => { |
| | | return request({ |
| | | url: '', |
| | | url: '/blade-mdm/program/dncsendback/dnc-back-page', |
| | | method: 'get', |
| | | params: { |
| | | ...params, |
| | |
| | | size, |
| | | }, |
| | | }) |
| | | }; |
| | | }; |
| | |
| | | <!-- |
| | | * @Date: 2025-08-10 14:14:58 |
| | | * @LastEditors: gaoshp |
| | | * @LastEditTime: 2025-08-18 18:47:02 |
| | | * @FilePath: /mdmweb/src/views/flowmgr/backImport.vue |
| | | --> |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :addBtn="false" :option="option" :table-loading="loading" :data="data" ref="crud" |
| | | @selection-change="selectionChange"> |
| | | <template #menu-left> |
| | | <div style="display: flex;"> |
| | | <el-button type="primary" size="default" icon="el-icon-circle-plus" @click="importData">导å
¥</el-button> |
| | | <el-button type="primary" size="default" icon="el-icon-circle-plus" plain @click="handleWarehouse" |
| | | style="margin-left: 12px;">å
¥åº</el-button> |
| | | </div> |
| | | </template> |
| | | <template #menu="scope"> |
| | | <el-button type="primary" text size="default" @click.stop="fileView(scope.row, scope.index)">æ¥çæä»¶</el-button> |
| | | </template> |
| | | </avue-crud> |
| | | <el-dialog title="å·¥æ§ç½æä»¶å¯¼å
¥" append-to-body v-model="excelBox" width="555px"> |
| | | <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter" :upload-error="uploadError"> |
| | | <!-- <template #excelTemplate> |
| | | <el-button type="primary" @click="handleTemplate"> |
| | | ç¹å»ä¸è½½<i class="el-icon-download el-icon--right"></i> |
| | | </el-button> |
| | | </template> --> |
| | | </avue-form> |
| | | </el-dialog> |
| | | <el-dialog title="æä»¶åç§°" append-to-body v-model="fileViewModel"> |
| | | <el-table :data="tableData" border @row-click="showContent" max-height="200" highlight-current-row> |
| | | <el-table-column type="index" label="#" width="40" align="center"/> |
| | | <el-table-column prop="name" label="ç¨åºåç§°"></el-table-column> |
| | | </el-table> |
| | | <h4>ç¨åºå
容</h4> |
| | | <div v-html="appContent" class="app-content"></div> |
| | | </el-dialog> |
| | | </basic-container> |
| | | <basic-container> |
| | | <el-tabs |
| | | v-model="activeName" |
| | | type="card" |
| | | class="demo-tabs" |
| | | > |
| | | <el-tab-pane label="导å
¥" name="todo"> |
| | | <backImport1 v-if="activeName==='todo'"></backImport1> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="åä¼ è®°å½" name="done"> |
| | | <backImport2 v-if="activeName==='done'"> </backImport2> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getList, |
| | | } from '@/api/system/user'; |
| | | import backImport1 from './backImport1.vue'; |
| | | import backImport2 from './backImport2.vue'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | appContent: '',//ç¨åºå
容 |
| | | tableData: [], |
| | | fileViewModel: false, |
| | | selection: [], |
| | | excelBox: false, |
| | | loading: false, |
| | | option: { |
| | | addBtn: false, |
| | | editBtn: false, |
| | | delBtn: false, |
| | | labelWidth: 120, |
| | | emptyBtn: false, |
| | | searchSpan: 8, |
| | | menu: true, |
| | | selection: true, |
| | | column: [ |
| | | { |
| | | label: 'ç¨åºç¼å·', |
| | | prop: 'programNo' |
| | | }, |
| | | { |
| | | label: 'ç¨åºå
å', |
| | | prop: 'programName', |
| | | }, |
| | | { |
| | | label: 'æä»¶å°è¾¾æ¶é´', |
| | | prop: 'fileBackTime', |
| | | }, |
| | | { |
| | | label: 'æä»¶æ°æ®åºç¼å·', |
| | | prop: 'id', |
| | | }, |
| | | ], |
| | | }, |
| | | data: [], |
| | | excelForm: {}, |
| | | excelOption: { |
| | | submitBtn: false, |
| | | emptyBtn: false, |
| | | column: [ |
| | | { |
| | | label: 'æä»¶å¯¼å
¥', |
| | | prop: 'excelFile', |
| | | type: 'upload', |
| | | drag: true, |
| | | loadText: 'DNCæä»¶å¯¼å
¥ï¼è¯·ç¨ç', |
| | | span: 24, |
| | | propsHttp: { |
| | | res: 'data', |
| | | }, |
| | | tip: '', |
| | | action: '/blade-mdm/program/dncsendback/upload', |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | | showContent(row, column, event) { |
| | | console.log(row,111) |
| | | axios({ |
| | | url: '/blade-mdm/program/dncsendback/back-file-content', |
| | | method: 'get', |
| | | params: {entryName: row.entryName} |
| | | }).then( |
| | | res => { |
| | | console.log(res) |
| | | if(res.data.code === 200) { |
| | | this.appContent = res.data.data; |
| | | } else { |
| | | this.appContent = 'ç¨åºå
容å 载失败' |
| | | } |
| | | }); |
| | | components: { |
| | | backImport1, |
| | | backImport2 |
| | | }, |
| | | fileView(row) { |
| | | this.tableData = row.files; |
| | | this.fileViewModel = true; |
| | | data() { |
| | | return { |
| | | activeName: 'todo', |
| | | }; |
| | | }, |
| | | selectionChange(selection) { |
| | | this.selection = selection; |
| | | methods: { |
| | | handleTabClick(tab, event) { |
| | | console.log(tab, event); |
| | | }, |
| | | }, |
| | | importData() { |
| | | this.excelBox = true; |
| | | }, |
| | | uploadAfter(res, done, loading, column) { |
| | | console.log(res, done, loading, column, 2233) |
| | | this.excelBox = false; |
| | | this.data = res || [] |
| | | done(); |
| | | }, |
| | | uploadError(error, column) { |
| | | |
| | | }, |
| | | handleWarehouse() { |
| | | if (this.selection.length == 0) { |
| | | return this.$message.error("è¯·éæ©æ°æ®") |
| | | } |
| | | let selection = []; |
| | | this.selection.forEach(item => { |
| | | selection.push(item.id); |
| | | }) |
| | | this.loading = true; |
| | | var obj = { |
| | | ids: selection.join(","), |
| | | } |
| | | axios({ |
| | | url: '/blade-mdm/program/dncsendback/accept', |
| | | method: 'post', |
| | | params: obj, |
| | | }).then( |
| | | res => { |
| | | console.log(res); |
| | | if (res.data.code === 200) { |
| | | this.$message.success("æä½æå"); |
| | | this.loading = false; |
| | | this.data = [] |
| | | } else { |
| | | this.$message.error(res.data.msg || "æä½å¤±è´¥"); |
| | | this.loading = false; |
| | | } |
| | | |
| | | } |
| | | ).finally(() => { |
| | | this.loading = false; |
| | | }); |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | .app-content { |
| | | background-color: #fffee1; |
| | | padding: 10px 30px; |
| | | min-height: 100px; |
| | | overflow: auto; |
| | | max-height: 400px; |
| | | white-space: pre-wrap; |
| | | } |
| | | </style> |
| | | </script> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :addBtn="false" :option="option" :table-loading="loading" :data="data" ref="crud" |
| | | @selection-change="selectionChange"> |
| | | <template #menu-left> |
| | | <div style="display: flex;"> |
| | | <el-button type="primary" size="default" icon="el-icon-circle-plus" @click="importData">导å
¥</el-button> |
| | | <el-button type="primary" size="default" icon="el-icon-circle-plus" plain @click="handleWarehouse" |
| | | style="margin-left: 12px;">å
¥åº</el-button> |
| | | </div> |
| | | </template> |
| | | <template #menu="scope"> |
| | | <el-button type="primary" text size="default" @click.stop="fileView(scope.row, scope.index)">æ¥çæä»¶</el-button> |
| | | </template> |
| | | </avue-crud> |
| | | <el-dialog title="å·¥æ§ç½æä»¶å¯¼å
¥" append-to-body v-model="excelBox" width="555px"> |
| | | <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter" :upload-error="uploadError"> |
| | | <!-- <template #excelTemplate> |
| | | <el-button type="primary" @click="handleTemplate"> |
| | | ç¹å»ä¸è½½<i class="el-icon-download el-icon--right"></i> |
| | | </el-button> |
| | | </template> --> |
| | | </avue-form> |
| | | </el-dialog> |
| | | <el-dialog title="æä»¶åç§°" append-to-body v-model="fileViewModel"> |
| | | <el-table :data="tableData" border @row-click="showContent" max-height="200" highlight-current-row> |
| | | <el-table-column type="index" label="#" width="40" align="center"/> |
| | | <el-table-column prop="name" label="ç¨åºåç§°"></el-table-column> |
| | | </el-table> |
| | | <h4>ç¨åºå
容</h4> |
| | | <div v-html="appContent" class="app-content"></div> |
| | | </el-dialog> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getList, |
| | | } from '@/api/system/user'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | appContent: '',//ç¨åºå
容 |
| | | tableData: [], |
| | | fileViewModel: false, |
| | | selection: [], |
| | | excelBox: false, |
| | | loading: false, |
| | | option: { |
| | | addBtn: false, |
| | | editBtn: false, |
| | | delBtn: false, |
| | | labelWidth: 120, |
| | | emptyBtn: false, |
| | | searchSpan: 8, |
| | | menu: true, |
| | | selection: true, |
| | | column: [ |
| | | { |
| | | label: 'ç¨åºç¼å·', |
| | | prop: 'programNo' |
| | | }, |
| | | { |
| | | label: 'ç¨åºåç§°', |
| | | prop: 'programName', |
| | | }, |
| | | { |
| | | label: 'æä»¶å°è¾¾æ¶é´', |
| | | prop: 'fileBackTime', |
| | | }, |
| | | { |
| | | label: 'æä»¶æ°æ®åºç¼å·', |
| | | prop: 'id', |
| | | }, |
| | | ], |
| | | }, |
| | | data: [], |
| | | excelForm: {}, |
| | | excelOption: { |
| | | submitBtn: false, |
| | | emptyBtn: false, |
| | | column: [ |
| | | { |
| | | label: 'æä»¶å¯¼å
¥', |
| | | prop: 'excelFile', |
| | | type: 'upload', |
| | | drag: true, |
| | | loadText: 'DNCæä»¶å¯¼å
¥ï¼è¯·ç¨ç', |
| | | span: 24, |
| | | propsHttp: { |
| | | res: 'data', |
| | | }, |
| | | tip: '', |
| | | action: '/blade-mdm/program/dncsendback/upload', |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | | showContent(row, column, event) { |
| | | console.log(row,111) |
| | | axios({ |
| | | url: '/blade-mdm/program/dncsendback/back-file-content', |
| | | method: 'get', |
| | | params: {entryName: row.entryName} |
| | | }).then( |
| | | res => { |
| | | console.log(res) |
| | | if(res.data.code === 200) { |
| | | this.appContent = res.data.data; |
| | | } else { |
| | | this.appContent = 'ç¨åºå
容å 载失败' |
| | | } |
| | | }); |
| | | }, |
| | | fileView(row) { |
| | | this.tableData = row.files; |
| | | this.fileViewModel = true; |
| | | }, |
| | | selectionChange(selection) { |
| | | this.selection = selection; |
| | | }, |
| | | importData() { |
| | | this.excelBox = true; |
| | | }, |
| | | uploadAfter(res, done, loading, column) { |
| | | console.log(res, done, loading, column, 2233) |
| | | this.excelBox = false; |
| | | this.data = res || [] |
| | | done(); |
| | | }, |
| | | uploadError(error, column) { |
| | | |
| | | }, |
| | | handleWarehouse() { |
| | | if (this.selection.length == 0) { |
| | | return this.$message.error("è¯·éæ©æ°æ®") |
| | | } |
| | | let selection = []; |
| | | this.selection.forEach(item => { |
| | | selection.push(item.id); |
| | | }) |
| | | this.loading = true; |
| | | var obj = { |
| | | ids: selection.join(","), |
| | | } |
| | | axios({ |
| | | url: '/blade-mdm/program/dncsendback/accept', |
| | | method: 'post', |
| | | params: obj, |
| | | }).then( |
| | | res => { |
| | | console.log(res); |
| | | if (res.data.code === 200) { |
| | | this.$message.success("æä½æå"); |
| | | this.loading = false; |
| | | this.data = [] |
| | | } else { |
| | | this.$message.error(res.data.msg || "æä½å¤±è´¥"); |
| | | this.loading = false; |
| | | } |
| | | |
| | | } |
| | | ).finally(() => { |
| | | this.loading = false; |
| | | }); |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | .app-content { |
| | | background-color: #fffee1; |
| | | padding: 10px 30px; |
| | | min-height: 100px; |
| | | overflow: auto; |
| | | max-height: 400px; |
| | | white-space: pre-wrap; |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :addBtn="false" :option="option" :table-loading="loading" :data="data" ref="crud" @current-change="currentChange" |
| | | @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad" |
| | | > |
| | | <template #menu-left> |
| | | <!-- <div style="display: flex;"> |
| | | <el-button type="primary" size="default" icon="el-icon-circle-plus" @click="importData">导å
¥</el-button> |
| | | <el-button type="primary" size="default" icon="el-icon-circle-plus" plain @click="handleWarehouse" |
| | | style="margin-left: 12px;">å
¥åº</el-button> |
| | | </div> --> |
| | | </template> |
| | | <template #menu="scope"> |
| | | <!-- <el-button type="primary" text size="default" @click.stop="fileView(scope.row, scope.index)">æ¥çæä»¶</el-button> --> |
| | | </template> |
| | | </avue-crud> |
| | | <el-dialog title="æä»¶åç§°" append-to-body v-model="fileViewModel"> |
| | | <el-table :data="tableData" border @row-click="showContent" max-height="200" highlight-current-row> |
| | | <el-table-column type="index" label="#" width="40" align="center"/> |
| | | <el-table-column prop="name" label="ç¨åºåç§°"></el-table-column> |
| | | </el-table> |
| | | <h4>ç¨åºå
容</h4> |
| | | <div v-html="appContent" class="app-content"></div> |
| | | </el-dialog> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getList, |
| | | } from '@/api/flowmgr/backImport'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | appContent: '',//ç¨åºå
容 |
| | | tableData: [], |
| | | fileViewModel: false, |
| | | selection: [], |
| | | excelBox: false, |
| | | loading: false, |
| | | option: { |
| | | addBtn: false, |
| | | editBtn: false, |
| | | delBtn: false, |
| | | labelWidth: 120, |
| | | emptyBtn: false, |
| | | searchSpan: 8, |
| | | menu: true, |
| | | // selection: true, |
| | | column: [ |
| | | { |
| | | label: 'ç¨åºç¼å·', |
| | | prop: 'code' |
| | | }, |
| | | { |
| | | label: 'æºåºç¼å·', |
| | | prop: 'machineCode', |
| | | }, |
| | | { |
| | | label: 'æä»¶åç§°', |
| | | prop: 'name', |
| | | }, |
| | | ], |
| | | }, |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | }, |
| | | form: {}, |
| | | query: {}, |
| | | data: [], |
| | | excelForm: {}, |
| | | excelOption: { |
| | | submitBtn: false, |
| | | emptyBtn: false, |
| | | column: [ |
| | | { |
| | | label: 'æä»¶å¯¼å
¥', |
| | | prop: 'excelFile', |
| | | type: 'upload', |
| | | drag: true, |
| | | loadText: 'DNCæä»¶å¯¼å
¥ï¼è¯·ç¨ç', |
| | | span: 24, |
| | | propsHttp: { |
| | | res: 'data', |
| | | }, |
| | | tip: '', |
| | | action: '/blade-mdm/program/dncsendback/upload', |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | | 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 data = { |
| | | ...this.query, |
| | | createTimeBegin: params.createTimeBegin, |
| | | createTimeEnd: params.createTimeEnd, |
| | | keyword: params.keyword || '', |
| | | myProcessName: params.myProcessName || '' |
| | | }; |
| | | this.loading = true; |
| | | getList(page.currentPage, page.pageSize, Object.assign(data, params)).then(res => { |
| | | const data = res.data.data |
| | | this.page.total = data.total; |
| | | this.data = data.records.map(v=> { |
| | | return { |
| | | ...v, |
| | | id: v.processInstanceId, |
| | | } |
| | | }); |
| | | this.loading = false; |
| | | }, () => { |
| | | this.data = []; |
| | | this.loading = false; |
| | | }).catch(err => { |
| | | this.data = []; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | showContent(row, column, event) { |
| | | console.log(row,111) |
| | | axios({ |
| | | url: '/blade-mdm/program/dncsendback/back-file-content', |
| | | method: 'get', |
| | | params: {entryName: row.entryName} |
| | | }).then( |
| | | res => { |
| | | console.log(res) |
| | | if(res.data.code === 200) { |
| | | this.appContent = res.data.data; |
| | | } else { |
| | | this.appContent = 'ç¨åºå
容å 载失败' |
| | | } |
| | | }); |
| | | }, |
| | | fileView(row) { |
| | | this.tableData = row.files; |
| | | this.fileViewModel = true; |
| | | }, |
| | | selectionChange(selection) { |
| | | this.selection = selection; |
| | | }, |
| | | importData() { |
| | | this.excelBox = true; |
| | | }, |
| | | uploadAfter(res, done, loading, column) { |
| | | console.log(res, done, loading, column, 2233) |
| | | this.excelBox = false; |
| | | this.data = res || [] |
| | | done(); |
| | | }, |
| | | uploadError(error, column) { |
| | | |
| | | }, |
| | | handleWarehouse() { |
| | | if (this.selection.length == 0) { |
| | | return this.$message.error("è¯·éæ©æ°æ®") |
| | | } |
| | | let selection = []; |
| | | this.selection.forEach(item => { |
| | | selection.push(item.id); |
| | | }) |
| | | this.loading = true; |
| | | var obj = { |
| | | ids: selection.join(","), |
| | | } |
| | | axios({ |
| | | url: '/blade-mdm/program/dncsendback/accept', |
| | | method: 'post', |
| | | params: obj, |
| | | }).then( |
| | | res => { |
| | | console.log(res); |
| | | if (res.data.code === 200) { |
| | | this.$message.success("æä½æå"); |
| | | this.loading = false; |
| | | this.data = [] |
| | | } else { |
| | | this.$message.error(res.data.msg || "æä½å¤±è´¥"); |
| | | this.loading = false; |
| | | } |
| | | |
| | | } |
| | | ).finally(() => { |
| | | this.loading = false; |
| | | }); |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | .app-content { |
| | | background-color: #fffee1; |
| | | padding: 10px 30px; |
| | | min-height: 100px; |
| | | overflow: auto; |
| | | max-height: 400px; |
| | | white-space: pre-wrap; |
| | | } |
| | | </style> |