| | |
| | | <!-- |
| | | * @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"> |
| | | <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"> |
| | | <keep-alive> |
| | | <backImport1 v-if="activeName==='todo'"></backImport1> |
| | | </keep-alive> |
| | | </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> |