From 729b698b17d7468acbc6c495746a72c9150fdaeb Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 09 九月 2025 11:49:47 +0800
Subject: [PATCH] 按钮改名下传

---
 src/views/basesetting/produceplan.vue |  427 ++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 355 insertions(+), 72 deletions(-)

diff --git a/src/views/basesetting/produceplan.vue b/src/views/basesetting/produceplan.vue
index e6dd4b9..a287433 100644
--- a/src/views/basesetting/produceplan.vue
+++ b/src/views/basesetting/produceplan.vue
@@ -1,37 +1,129 @@
 <!--
  * @Date: 2025-06-17 11:44:52
  * @LastEditors: gaoshp
- * @LastEditTime: 2025-07-08 20:06:11
+ * @LastEditTime: 2025-09-05 17:57:29
  * @FilePath: /mdmweb/src/views/basesetting/produceplan.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" @row-del="rowDel"
-            @row-save="save"
-            @row-update="rowUpdate">
-            <template #menu-left>
-                <el-button type="primary" plain @click="importAction">瀵煎叆
-                </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>
-            </template> -->
-        </avue-crud>
+        <el-tabs v-model="activeName" type="card" class="demo-tabs" @tab-click="tabsClick">
+            <el-tab-pane label="浜哄憳鑱岃矗琛�" name="zhuzhi">
+                <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" @row-del="rowDel"
+                    @row-save="save"
+                    @row-update="rowUpdate">
+                    
+                    <template #menu-left>
+                        <el-button type="primary" plain @click="importAction">瀵煎叆
+                        </el-button>
+                        <el-button type="primary" plain @click="downTemplateAction">涓嬭浇瀵煎叆妯℃澘
+                        </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>
+                    </template> -->
+                </avue-crud>
+            </el-tab-pane>
+            <el-tab-pane label="鍕ゅ摬鍒嗗伐琛�" name="qinzhe">
+                
+                <avue-crud :option="optionQz" :table-loading="loadingQz" :data="dataQz" v-model:page="pageQz"
+                    @search-change="searchChangeQz" @search-reset="searchResetQz" @current-change="currentChangeQz"
+                    @size-change="sizeChangeQz" @refresh-change="refreshChangeQz" @on-load="onLoadQz" @row-del="rowDelQz" @row-update="rowUpdateQz">
+
+                    <template #menu-left>
+                        <el-button type="primary" plain @click="importActionQz">瀵煎叆
+                        </el-button>
+                        <el-button type="primary" plain @click="downTemplateActionQz">涓嬭浇瀵煎叆妯℃澘
+                        </el-button>
+                    </template>
+                </avue-crud>
+            </el-tab-pane>
+        </el-tabs>
+        <el-dialog title="" append-to-body v-model="excelBox" width="555px">
+            <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter">
+                <!--
+                <template #excelTemplate>
+                    <el-button type="primary" @click="handleTemplate">
+                        纭畾
+                    </el-button>
+                </template>
+                -->
+            </avue-form>
+        </el-dialog>
+        <el-dialog title="" append-to-body v-model="excelBoxQz" width="555px">
+            <avue-form :option="excelOptionQz" v-model="excelForm" :upload-after="uploadAfterQz">
+                
+            </avue-form>
+        </el-dialog>
     </basic-container>
 </template>
 
 <script>
 import { getList, remove,save,update } from '@/api/basesetting/produceplan';
+import { getListQz, removeQz,saveQz,updateQz } from '@/api/basesetting/qinzhefgb';
 import { mapGetters } from 'vuex';
+import { exportBlob } from '@/api/common';
+import { getToken } from '@/utils/auth';
+import NProgress from 'nprogress';
+import { downloadXls } from '@/utils/util';
 export default {
     name: 'ProducePlan',
     data() {
         return {
+            getApproveList: [],
+            activeName: "zhuzhi",
             // Define your data properties here
+            excelOption: {
+                submitBtn: false,
+                emptyBtn: false,
+                column: [
+                    {
+                        label: '鏂囦欢瀵煎叆',
+                        prop: 'file',
+                        type: 'upload',
+                        drag: true,
+                        loadText: '瀵煎叆涓紝璇风◢鍚�',
+                        span: 24,
+                        propsHttp: {
+                            res: 'data',
+                        },
+                        data: {
+                        },
+                        tip: '',
+                        action: '/blade-mdm/producedivision/import-division',
+                    },
+                ],
+            },
+            excelOptionQz: {
+                submitBtn: false,
+                emptyBtn: false,
+                column: [
+                    {
+                        label: '鏂囦欢瀵煎叆',
+                        prop: 'file',
+                        type: 'upload',
+                        drag: true,
+                        loadText: '瀵煎叆涓紝璇风◢鍚�',
+                        span: 24,
+                        propsHttp: {
+                            res: 'data',
+                        },
+                        data: {
+                        },
+                        tip: '',
+                        action: '/blade-mdm/producedivision/import-qinzhe',
+                    },
+                ],
+            },
+            excelForm: {
+                fileType: 'program',
+                excelFile: [],
+            },
+            excelBox: false,
+            excelBoxQz: false,
             option: {
                 // Define your Avue CRUD options here
                 addBtn: true,
@@ -39,29 +131,15 @@
                 delBtn: true,
                 columnBtn: false,
                 tip: false,
-                // simplePage: true,
                 searchShow: true,
                 searchMenuSpan: 6,
-                // tree: true,
+                searchEnter:true,
                 border: true,
                 index: true,
-                // selection: true,
-                // viewBtn: true,
                 menuWidth: 320,
                 dialogWidth: 500,
                 dialogClickModal: false,
                 column: [
-                    // {
-                    //     label: '绋嬪簭鍚嶇О',
-                    //     prop: 'programName',
-                    //     type: 'input',
-                    //     search: false,
-                    //     searchRange: true,
-                    //     searchSpan: 8,
-                    //     hide: true,
-                    //     span: 24,
-                    //     rules: [{ required: true, message: '璇疯緭鍏ョ▼搴忓悕绉�', trigger: 'blur' }],
-                    // },
                     {
                         label: '浜哄憳鍚嶇О',
                         prop: 'name',
@@ -72,40 +150,17 @@
                         hide: true,
                         display: false,
                     },
-                    // {
-                    //     label: '搴忓彿',
-                    //     prop: 'index',
-                    //     type: 'index',
-                    // },
-					{
-                        label: '鍥惧彿',
-                        prop: 'drawingNo',
-                        type: 'input',
-                        display: true,
-                        span: 24,
-                        rules: [{ required: true, message: '璇疯緭鍏ュ浘鍙�', trigger: 'blur' }],
-                    },
-                    {
-                        label: '涓撲笟缁勯暱',
-                        prop: 'teamLeaderId',
-                        type: 'select',
-                        span: 24,
-                        display: true,
-                        dicUrl: `/blade-mdm/flow/flow-user-list?deptId=0`,
-                        props: {
-                            label: 'name',
-                            value: 'id',
-                        },
-                        rules: [{ required: true, message: '璇疯緭鍏ヤ笓涓氱粍闀�', trigger: 'blur' }],
-                    },
+                    
                     {
                         label: '缂栧埗锛堝伐鑹哄憳)',
                         label: '缂栧埗',
                         prop: 'programmerId',
                         type: 'select',
                         display: true,
+                        filterable:true,
                         span: 24,
-                        dicUrl: `/blade-mdm/flow/flow-user-list?deptId=0`,
+                        // dicUrl: `/blade-mdm/flow/flow-user-list?deptId=0`,
+                        dicData: [],
                         props: {
                             label: 'name',
                             value: 'id',
@@ -118,8 +173,10 @@
                         prop: 'checkerId',
                         type: 'select',
                         display: true,
+                        filterable:true,
                         span: 24,
-                        dicUrl: `/blade-mdm/flow/flow-user-list?deptId=0`,
+                        // dicUrl: `/blade-mdm/flow/flow-user-list?deptId=0`,
+                        dicData: [],
                         props: {
                             label: 'name',
                             value: 'id',
@@ -127,13 +184,30 @@
                         rules: [{ required: true, message: '璇疯緭鍏ユ牎瀵癸紙宸ヨ壓鍛�)', trigger: 'blur' }],
                     },
                     {
+                        label: '涓撲笟缁勯暱',
+                        prop: 'teamLeaderId',
+                        type: 'select',
+                        span: 24,
+                        display: true,
+                        filterable:true,
+                        // dicUrl: `/blade-mdm/flow/flow-user-list?deptId=0`,
+                        dicData: [],
+                        props: {
+                            label: 'name',
+                            value: 'id',
+                        },
+                        rules: [{ required: true, message: '璇疯緭鍏ヤ笓涓氱粍闀�', trigger: 'blur' }],
+                    },
+                    {
                         label: '瀹℃牳(楂樺笀)',
                         label: '瀹℃牳',
                         prop: 'seniorId',
                         type: 'select',
+                        filterable:true,
                         display: true,
                         span: 24,
-                        dicUrl: `/blade-mdm/flow/flow-user-list?deptId=0`,
+                        // dicUrl: `/blade-mdm/flow/flow-user-list?deptId=0`,
+                        dicData: [],
                         props: {
                             label: 'name',
                             value: 'id',
@@ -154,10 +228,94 @@
             },
             form: {}, // This will hold the form data
             query: {}, // This will hold the search query
+
+            //鍕ゅ摬椤甸潰鏁版嵁
+            dataQz:[],
+            loadingQz:false,
+            pageQz: {
+                pageSize: 10,
+                currentPage: 1,
+                total: 0,
+            },
+            queryQz: {},
+            optionQz: {
+                addBtn: false,
+                editBtn: true,
+                delBtn: true,
+                columnBtn: false,
+                tip: false,
+                searchShow: true,
+                searchMenuSpan: 6,
+                searchEnter:true,
+                border: true,
+                index: true,
+                menuWidth: 320,
+                dialogWidth: 500,
+                dialogClickModal: false,
+                column: [
+                    {
+                        label: '浜у搧鍨嬪彿',
+                        prop: 'cph',
+                        type: 'input',
+                        display: true,
+                        span: 24,
+                    },
+                    {
+                        label: '闆剁粍浠跺彿',
+                        prop: 'ljh',
+                        type: 'input',
+                        search: true,
+                        display: true,
+                        disabled:true,
+                        span: 24,
+                    },
+                    {
+                        label: '涓荤宸ヨ壓',
+                        prop: 'zggy',
+                        type: 'input',
+                        search: true,
+                        display: true,
+                        span: 24
+                    },
+                    {
+                        label: '鏁版嵁鏉ユ簮',
+                        prop: 'source',
+                        type: 'input',
+                        search: false,
+                        display: false,
+                        span: 24,
+						render: ({ row}) => {
+                            console.log('val',row)
+                            if(row.source == 'MDM'){
+                                return "MDM"
+                            }else{
+                                return "鍕ゅ摬"
+                            }
+                        }
+                    }
+                ],
+            },
         };
     },
     methods: {
+        getApprovers () {
+            axios({
+            url: '/blade-mdm/flow/flow-user-list?deptId=0',
+            method: 'get',
+            params: {}
+          }).then(
+            res => {
+                this.option.column[1].dicData = res.data.data;
+                this.option.column[2].dicData = res.data.data;
+                this.option.column[3].dicData = res.data.data;
+                this.option.column[4].dicData = res.data.data;
+            });
+        },
         // Define your methods here
+        tabsClick(tab,event) {
+            //console.log('tab',tab)
+            this.onLoad(this.page, this.query);
+        },
         searchChange(params, done) {
             this.query = params;
             this.page.currentPage = 1;
@@ -195,7 +353,54 @@
         },
         importAction() {
             // Logic for importing data
-            this.$message.success('瀵煎叆鍔熻兘灏氭湭瀹炵幇');
+            // this.$message.success('瀵煎叆鍔熻兘灏氭湭瀹炵幇');
+            this.excelBox = true;
+        },
+        importActionQz() {
+            // Logic for importing data
+            // this.$message.success('瀵煎叆鍔熻兘灏氭湭瀹炵幇');
+            this.excelBoxQz = true;
+        },
+        uploadAfter(res, done, loading, column) {
+            //window.console.log(column);
+            //console.log('res',res)
+            if(res.success>0){
+                //鏈夋垚鍔熺殑锛屽叧闂璇濇
+                this.excelBox = false;
+                this.$message.success(res.message);
+                this.onLoad(this.page);
+                //done();
+            }else{
+                //0鎴愬姛鐨勶紝浠呮彁绀�
+                this.$message.success(res.message);
+            }
+            
+        },
+        uploadAfterQz(res, done, loading, column) {
+            //window.console.log(column);
+           this.$message.success('瀵煎叆瀹屾垚');
+           this.excelBoxQz = false;
+            
+            this.onLoadQz(this.pageQz);
+            
+        },
+		downTemplateAction() {
+            NProgress.start();
+            exportBlob(
+                `/blade-mdm/producedivision/download-template`
+            ).then(res => {
+                downloadXls(res.data, `涓诲埗鍒嗗伐琛ㄥ鍏ユā鐗�.xlsx`);
+                NProgress.done();
+            });
+        },
+        downTemplateActionQz() {
+            NProgress.start();
+            exportBlob(
+                `/blade-mdm/producedivision/download-template-qz`
+            ).then(res => {
+                downloadXls(res.data, `鍕ゅ摬鍒嗗伐琛ㄥ鍏ユā鐗�.xlsx`);
+                NProgress.done();
+            });
         },
         rowDel(row) {
             this.$confirm('纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?', {
@@ -208,6 +413,23 @@
                 })
                 .then(() => {
                     this.onLoad(this.page);
+                    this.$message({
+                        type: 'success',
+                        message: '鎿嶄綔鎴愬姛!',
+                    });
+                });
+        },
+        rowDelQz(row) {
+            this.$confirm('纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?', {
+                confirmButtonText: '纭畾',
+                cancelButtonText: '鍙栨秷',
+                type: 'warning',
+            })
+                .then(() => {
+                    return removeQz({ljhs: [row.ljh].toString()});
+                })
+                .then(() => {
+                    this.onLoadQz(this.pageQz);
                     this.$message({
                         type: 'success',
                         message: '鎿嶄綔鎴愬姛!',
@@ -228,30 +450,91 @@
                     },
                     error => {
                       window.console.log(error);
-                      loading();
+                      //loading();
+                      loadingZq();
+                    }
+                  );
+        },
+        rowUpdateQz (row, index, done, loading) {
+            console.log('rowUpdateQz', row);
+            
+            updateQz(row).then(
+                    () => {
+                      this.onLoadQz(this.pageQz);
+                      this.$message({
+                        type: 'success',
+                        message: '鎿嶄綔鎴愬姛!',
+                      });
+                      done();
+                    },
+                    error => {
+                      window.console.log(error);
+                      //loading();
+                      loadingZq();
                     }
                   );
         },
         save (row, done, loading) {
             console.log('save', row);
             save(row).then(
-                () => {
-                this.onLoad(this.page);
-                this.$message({
-                    type: 'success',
-                    message: '鎿嶄綔鎴愬姛!',
-                });
-                done();
+                (res) => {
+					if(res.data.code !== 200) {
+						this.$message.error(res.data.msg);
+                        loading()
+						//done();//鍏抽棴绐楀彛
+						return;
+					}
+					this.onLoad(this.page);
+					this.$message({
+						type: 'success',
+						message: '鎿嶄綔鎴愬姛!',
+					});
+					done();
                 },
                 error => {
-                loading();
-                window.console.log(error);
+					
+					loading();
+					window.console.log(error);
                 }
             );
-        }
+        },
+        sizeChangeQz() {
+            this.pageQz.pageSize = pageSize;
+        },
+        searchChangeQz(params, done) {
+            this.queryQz = params;
+            this.pageQz.currentPage = 1;
+            this.onLoadQz(this.pageQz, params);
+            done();
+        },
+        searchResetQz() {
+            this.queryQz = {};
+            this.onLoadQz(this.pageQz);
+        },
+        currentChangeQz() {
+            this.pageQz.currentPage = currentPage;
+        },
+        onLoadQz(page, params = {}) {
+            const query = {
+                ...this.queryQz,
+                // category: params.category ? flowCategory(params.category) : null,
+                mode: this.mode,
+            };
+            this.loadingQz = true;
+            getListQz(page.currentPage, page.pageSize, Object.assign(params, query)).then(res => {
+                const data = res.data.data;
+                this.pageQz.total = data.total;
+                this.dataQz = data.records;
+                this.loadingQz = false;
+            });
+        },
+        refreshChangeQz() {
+            this.onLoadQz(this.pageQz, this.queryQz);
+        },
     },
     mounted() {
         // Code to run when the component is mounted
+        this.getApprovers()
     },
 }
 </script>

--
Gitblit v1.9.3