From 3f24fbc89959ec4aa9f3308e1af453e43d504ac5 Mon Sep 17 00:00:00 2001
From: charles <981744753@qq.com>
Date: 星期三, 10 七月 2024 20:04:16 +0800
Subject: [PATCH] feat:完成车间管理部分的重构

---
 src/views/productManage/silkRegisterForm/addPage.vue                 |   26 +
 vue.config.js                                                        |    8 
 src/main.js                                                          |    5 
 src/views/systemSetting/silkStandardSetting/index.vue                |   11 
 package.json                                                         |    1 
 src/views/systemSetting/workshopManage/components/workshopDialog.vue |  461 ++++++++++++++++++++++++++++++++++++++
 src/router/index.js                                                  |    2 
 src/views/systemSetting/workshopManage/index.vue                     |  190 +++++++++++----
 8 files changed, 629 insertions(+), 75 deletions(-)

diff --git a/package.json b/package.json
index 6c8db69..bcc1182 100644
--- a/package.json
+++ b/package.json
@@ -16,6 +16,7 @@
     "faker": "^5.5.3",
     "js-cookie": "^3.0.5",
     "lodash": "^4.17.21",
+    "moment": "^2.30.1",
     "vue": "^2.6.14",
     "vue-router": "^3.5.1",
     "vuex": "^3.6.2"
diff --git a/src/main.js b/src/main.js
index 2b0bb22..a58a5bc 100644
--- a/src/main.js
+++ b/src/main.js
@@ -7,8 +7,9 @@
 import "@/assets/style/index.scss"
 import "@/components"
 import "@/common/untils/dialog"
-
-Vue.use(ElementUI)
+import moment from 'moment';
+Vue.use(ElementUI);
+Vue.prototype.$moment=moment;
 // 淇敼榛樿鐐瑰嚮閬僵灞備负涓嶅叧闂�
 ElementUI.MessageBox.setDefaults({
   closeOnClickModal: false
diff --git a/src/router/index.js b/src/router/index.js
index 5972b9c..85feafc 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -111,7 +111,7 @@
 // 瀵煎嚭璺敱 鍦� main.js 閲屼娇鐢�
 const createRouter = () =>
   new Router({
-    mode: "history",
+    mode: "hash",
     // base: window.getServerJson.context,
     scrollBehavior: () => ({ y: 0 }),
     routes: constantRoutes
diff --git a/src/views/productManage/silkRegisterForm/addPage.vue b/src/views/productManage/silkRegisterForm/addPage.vue
index c270edb..17c5680 100644
--- a/src/views/productManage/silkRegisterForm/addPage.vue
+++ b/src/views/productManage/silkRegisterForm/addPage.vue
@@ -434,11 +434,13 @@
 } from "@/api/productManage/silkRegisterForm.js";
 import {
   getCheckDetails,
-  saveCheck,
+  saveCheck
 } from "@/api/productManage/silkInspectForm.js";
 import pageMixin from "@/components/makepager/pager/mixin/pageMixin";
 import CommonFormTableView from "@/components/makepager/CommonFormTableView";
 import { getWorkshopManageGroup } from "@/api/productManage/productRegisterForm.js";
+import moment from 'moment';
+let  idValue=moment(new Date()).format('YYYYMMDDHHmmss');
 export default {
   name: "silkRegisterAddPage",
   props: {},
@@ -446,7 +448,6 @@
   components: {
     CommonFormTableView,
   },
-  computed: {},
   data() {
     return {
       title:'',
@@ -459,7 +460,9 @@
       workshopGroupList: [], //缁勫埆
       deliveryTypeList: [],
       specList: [], //瑙勬牸
-      form: {},
+      form: {
+          number:idValue
+      },
       rules: {
         number: [
           { required: true, message: "璇峰~鍐�", trigger: ["change", "blur"] },
@@ -497,7 +500,8 @@
       },
       pickerOptions: {
         disabledDate(time) {
-          return time.getTime() < new Date().getTime() - 86400000;
+          //return time.getTime() < new Date().getTime() - 86400000;
+            return false;
         },
       },
       tableTwoList: {
@@ -585,8 +589,8 @@
     async getDetailsData(id) {
       if (this.activeName == "first") {
         this.form = {
-          number: "",
-          finishDate: "",
+          number: idValue,
+          finishDate:this.$moment(new Date()).format('YYYY-MM-DD'),
           market: "",
           workshopObj: "",
           spec: "",
@@ -595,7 +599,7 @@
           circle: "",
           totalCircle: "",
           position: "",
-        };
+        }
         if (this.registerId) {
          await getRegisterDetails({ id: id ? id : this.registerId }).then(
             (response) => {
@@ -625,12 +629,12 @@
         }
       } else {
         this.form = {
-          number: "",
+          number: idValue,
           workshopObj: "",
           workshopGroup: "",
           circle: "",
           spec: "",
-          finishDate: "",
+          finishDate: this.$moment(new Date()).format('YYYY-MM-DD'),
           averageFineness: "",
           measureFineness: "",
           deviation: "",
@@ -866,8 +870,8 @@
     cancelClickOne() {
       if (this.activeName == "first") {
         this.form = {
-          number: "",
-          finishDate: "",
+          number: idValue,
+          finishDate:this.$moment(new Date()).format('YYYY-MM-DD'),
           market: "",
           workshopObj: "",
           spec: "",
diff --git a/src/views/systemSetting/silkStandardSetting/index.vue b/src/views/systemSetting/silkStandardSetting/index.vue
index 9d315e1..6ff2501 100644
--- a/src/views/systemSetting/silkStandardSetting/index.vue
+++ b/src/views/systemSetting/silkStandardSetting/index.vue
@@ -220,8 +220,15 @@
     },
     // 鍒犻櫎
     clearupProject(data, index) {
-      this.tableData.splice(index, 1)
-      this.silkTableList.tableData=this.tableData
+        this.$confirm('纭畾瑕佸垹闄ゅ悧, 鏄惁缁х画?', '鎻愮ず', {
+            confirmButtonText: '纭畾',
+            cancelButtonText: '鍙栨秷',
+            type: 'warning'
+        }).then(() => {
+            this.tableData.splice(index, 1)
+            this.silkTableList.tableData=this.tableData
+        }).catch(() => {
+        });
     },
     // 淇濆瓨缂栬緫鎸夐挳鍒囨崲
     editSaveClick() {
diff --git a/src/views/systemSetting/workshopManage/components/workshopDialog.vue b/src/views/systemSetting/workshopManage/components/workshopDialog.vue
new file mode 100644
index 0000000..efe317d
--- /dev/null
+++ b/src/views/systemSetting/workshopManage/components/workshopDialog.vue
@@ -0,0 +1,461 @@
+<template>
+    <el-dialog
+            :visible.sync="editConfig.visible"
+            :before-close="handleClose"
+    >
+        <!-- 澶� -->
+        <div slot="title" class="dialog-header">
+            <span>{{editConfig.title}}杞﹂棿绠$悊</span>
+        </div>
+        <div class="dialog-view">
+            <el-form
+                    ref="workshopForm"
+                    :model="editConfig.infomitton"
+                    :rules="rules"
+                    label-position="right"
+                    label-width="100px"
+                    size="mini"
+            >
+                <div>
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item prop="workshop"  label="杞﹂棿:" style="width: 100%;">
+                                <el-select
+                                        :disabled="editConfig.OperationType===3"
+                                        v-model="editConfig.infomitton.workshop"
+                                        value-key="workshopName" placeholder="璇烽�夋嫨杞﹂棿"
+                                        @change="selWorkshop"
+                                >
+                                    <el-option
+                                            v-for="item in workshopList"
+                                            :key="item.ID"
+                                            :label="item.name"
+                                            :value="{workshopNumber:item.number,workshopName:item.name}">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="缁勫埆:" style="width: 100%;"
+                                          prop="groupNumber"  >
+                                <el-input
+                                        type="number"
+                                        :disabled="editConfig.OperationType===3"
+                                        v-model.number="editConfig.infomitton.groupNumber"
+                                        :rows="4"
+                                        style="resize: none !important;"
+                                        placeholder="璇疯緭鍏ョ粍鍒�"
+                                        @change="changeGroupNumber"
+                                ></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="寮�濮嬭溅鍙�:" style="width: 100%;" prop="startCarNumber" >
+                                <el-input
+                                        type="number"
+                                        :disabled="editConfig.OperationType===3"
+                                        v-model.number="editConfig.infomitton.startCarNumber"
+                                        :rows="4"
+                                        style="resize: none !important;"
+                                        placeholder="璇疯緭鍏ュ紑濮嬭溅鍙�"
+                                        @change="changeStartCarNumber"
+                                >
+                                </el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="缁撴潫杞﹀彿:" style="width: 100%;"  prop="endCarNumber" >
+                                <el-input
+                                        type="number"
+                                        :disabled="editConfig.OperationType===3"
+                                        v-model.number="editConfig.infomitton.endCarNumber"
+                                        :rows="4"
+                                        style="resize: none !important;"
+                                        placeholder="璇疯緭鍏ョ粨鏉熻溅鍙�"
+                                >
+                                </el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="鏍囧織绫诲瀷:" style="width: 100%;" >
+                                <el-select
+                                        @change="changeCarFlag"
+                                        :disabled="editConfig.OperationType===3" v-model.number="editConfig.infomitton.carFlag" placeholder="璇烽�夋嫨鏍囧織绫诲瀷">
+                                    <el-option
+                                            v-for="item in carFlagList"
+                                            :key="item.value"
+                                            :label="item.name"
+                                            :value="item.value">
+                                    </el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="24">
+                            <el-form-item label="澶囨敞:" style="width: 100%;" >
+                                <el-input
+                                        :disabled="this.editConfig.OperationType===3"
+                                        v-model="editConfig.infomitton.notes"
+                                        type="textarea"
+                                        :rows="4"
+                                        style="resize: none !important;"
+                                        placeholder=""
+                                >
+                                </el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                </div>
+            </el-form>
+        </div>
+        <div class="dialog-footer">
+            <div class="bottom-tabs">
+                <div class="tab-pane" style="background:#2a78fb;color: #fff">
+                    缁勫埆鏄庣粏鍒楄〃
+                </div>
+            </div>
+            <div class="list-view">
+                <TableCommonView :table-list="tableList"
+                                 @selTableCol="selTableCol">
+                    <template slot="tableButton">
+                        <el-table-column label="寮�濮嬭溅鍙�" width="120" align="center">
+                            <template slot-scope="scope">
+                                {{scope.row.startCarNumber?scope.row.startCarNumber:'--'}}
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="寮�濮嬫爣璁�" width="120" align="center" v-if="editConfig.infomitton.carFlag===1">
+                            <template slot-scope="scope">
+                                {{scope.row.startCarHalf===1?'宸﹀崐杞�':'鍙冲崐杞�'}}
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="缁撴潫杞﹀彿" width="120" align="center">
+                            <template slot-scope="scope">
+                                <el-input type="number" :disabled="scope.row.noEdit" placeholder="璇疯緭鍏�" v-model.number="scope.row.endCarNumber" size="small" v-if="editConfig.OperationType!==3"></el-input>
+                                <span v-else>{{scope.row.endCarNumber}}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="缁撴潫鏍囪" v-if="editConfig.infomitton.carFlag===1" width="120" align="center">
+                            <template slot-scope="scope">
+                                <el-select size="small" :disabled="scope.row.noEdit" v-model="scope.row.endCarHalf" v-if="editConfig.OperationType!==3">
+                                    <el-option label="宸﹀崐杞�" :value="1">宸﹀崐杞�</el-option>
+                                    <el-option label="鍙冲崐杞�" :value="2">鍙冲崐杞�</el-option>
+                                </el-select>
+                                <span v-else>{{scope.row.endCarNumber}}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="澶囨敞" width="100" align="center">
+                            <template slot-scope="scope">
+                                <el-input  placeholder="璇疯緭鍏�" v-model="scope.row.notes" size="small" v-if="editConfig.OperationType!==3"></el-input>
+                                <span v-else>{{scope.row.notes}}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column
+                                label="鎿嶄綔"
+                                width="60"
+                                align="center"
+                                v-if="editConfig.OperationType!==3"
+                        >
+                            <template slot-scope="scope">
+                                <el-button
+                                        type="text"
+                                        size="small"
+                                        @click.stop="handleDelClick(scope, '鎿嶄綔')">鍒犻櫎</el-button>
+                            </template>
+                        </el-table-column>
+                    </template>
+                </TableCommonView>
+            </div>
+            <div style="line-height: 50px" v-if="editConfig.OperationType!==3">
+                <el-button type="primary" size="small" @click="addItem">鏂板</el-button>
+                <el-button type="primary" size="small" @click="clearItem">娓呯┖</el-button>
+            </div>
+        </div>
+        <div slot="footer" class="dialog-footer">
+            <el-button
+                    type="primary"
+                    size="small"
+                    @click="saveClick"
+                    :disabled="editConfig.OperationType===3">淇濆瓨</el-button>
+            <el-button size="small" @click="handleClose">鍙栨秷</el-button>
+        </div>
+    </el-dialog>
+</template>
+
+<script>
+    import {getDict,saveWorkshopManage} from "@/api/systemSetting/workshopManage";
+    export default {
+        name: "workshopDialog",
+        props:{
+            editConfig:{
+                type:Object,
+                default:()=>({
+                    visible: false,//寮规鏄惁鍙
+                    title: "鏂板缓",
+                    OperationType:1,//1 鏂板缓   2 淇敼   3 鏌ョ湅
+                    infomitton: {
+                        details:[]//鍒楄〃鏁版嵁
+                    },//琛ㄥ崟鏁版嵁  + 鏄庣粏鍒楄〃鏁版嵁
+                })
+            }
+        },
+        data(){
+            return {
+                tableList:{},
+                showCol: ["寮�濮嬫爣璁�","杞﹂棿", "缁勫埆", "寮�濮嬭溅鍙�","寮�濮嬫爣璁�", "缁撴潫杞﹀彿", "缁撴潫鏍囪","鏍囧織绫诲瀷", "澶囨敞"],
+                tableColumn: [
+                    { label: "杞﹂棿", prop: "workshopName" },
+                    { label: "缁勫埆", prop: "groupNumber" },
+                    { label: "鏍囧織绫诲瀷", prop: "carFlag" ,isCallMethod:true,getCallMethod:(value)=>{return value===0?'鍏ㄨ溅':'鍗婅溅'}},
+                    /*{ label: "寮�濮嬭溅鍙�", prop: "startCarNumber" },*/
+                    /*{ label: "缁撴潫杞﹀彿", prop: "endCarNumber" },*/
+                    /*{ label: "澶囨敞", prop: "notes", },*/
+                ],
+                workshopList:[],
+                carFlagList:[
+                    {
+                        name:'鍏ㄨ溅',
+                        value:0
+                    },
+                    {
+                        name:'鍗婅溅',
+                        value:1
+                    }
+                ],// 鏍囧織绫诲瀷鍒楄〃
+                rules:{
+                    workshop: [
+                        { required: true, message: '璇烽�夋嫨杞﹂棿', trigger: 'change' }
+                    ],
+                    groupNumber: [
+                        { required: true, message: '璇峰~鍐欑粍鍒�', trigger: 'blur' }
+                    ],
+                    startCarNumber: [
+                        { required: true, message: '璇峰~鍐�', trigger: 'blur' }
+                    ],
+                    endCarNumber: [
+                        { required: true, message: '璇峰~鍐�', trigger: 'blur' }
+                    ],
+                },
+                itemModel:{//鏂板妯℃澘
+                    startCarHalf:1,
+                    endCarHalf:2,
+                    workshopName:'',
+                    groupNumber:'',
+                    startCarNumber:'',
+                    endCarNumber:'',
+                    carFlag:1,
+                    notes:''
+                }
+            }
+        },
+        created(){
+          this.initData();
+        },
+        methods:{
+            initBottomTableList(list){
+                this.tableList.tableInfomation=JSON.parse(JSON.stringify(list));
+            },
+            clearData(){
+                this.tableList.tableInfomation=[{...this.itemModel}];
+                this.$refs['workshopForm'].resetFields();
+                this.editConfig.visible=false;
+            },
+            doChangeData(val,fieldName){
+                this.tableList.tableInfomation.forEach((item,index)=>{
+                    if(fieldName==='workshop'){
+                        item.workshopName=val.workshopName;
+                        item.workshopNumber=val.workshopNumber;
+                    }else if(fieldName==='startCarNumber'){
+                        if(index===0){
+                            item.startCarNumber=val;
+                        }
+                    }else{
+                        item[fieldName]=val;
+                    }
+                });
+            },
+            //閫夋嫨杞﹂棿
+            selWorkshop(val){
+                this.doChangeData(val,'workshop');
+            },
+            //鏀瑰彉缁勫埆
+            changeGroupNumber(val){
+                this.doChangeData(val,'groupNumber');
+            },
+            changeStartCarNumber(val){
+                this.doChangeData(val,'startCarNumber');
+            },
+            changeCarFlag(val){
+                this.doChangeData(val,'carFlag');
+            },
+            //鍏抽棴妯℃�佹
+            handleClose(){
+                this.clearData();
+            },
+            //淇濆瓨
+            saveClick(){
+                this.$refs['workshopForm'].validate(async (vail)=>{
+                    if(vail){
+                        const lastObj=this.tableList.tableInfomation[this.tableList.tableInfomation.length-1];
+                        if(!lastObj.endCarNumber){
+                            this.$message.error('鏄庣粏缁撴潫杞﹀彿涓嶈兘涓虹┖');
+                            return ;
+                        }else if(lastObj.endCarNumber<lastObj.startCarNumber){
+                            this.$message.error(`鏄庣粏缁撴潫杞﹀彿${lastObj.endCarNumber},涓嶈兘灏忎簬鏄庣粏璧峰杞﹀彿${lastObj.startCarNumber}`);
+                            return;
+                        }else if(lastObj.endCarNumber>this.editConfig.infomitton.endCarNumber){
+                            this.$message.error(`鏄庣粏缁撴潫杞﹀彿${lastObj.endCarNumber},涓嶈兘澶т簬杞﹂棿鎬荤殑缁撴潫杞﹀彿${this.editConfig.infomitton.endCarNumber}`);
+                            return;
+                        }
+                        //鎵ц淇濆瓨鎿嶄綔
+                       const params={
+                           ...this.editConfig.infomitton,
+                           ...this.editConfig.infomitton.workshop,
+                           details:[...this.tableList.tableInfomation].map(item=>{
+                               item.startCarNumber=parseInt(item.startCarNumber);
+                               item.groupNumber=parseInt(item.groupNumber);
+                               return item;
+                           })
+                       };
+                       delete params.workshop;
+                       const {code}=await saveWorkshopManage(params);
+                       if(code===200){
+                           this.$message.success(`${this.editConfig.OperationType===1?'娣诲姞':'淇敼'}鎴愬姛`);
+                           window.setTimeout(()=>{
+                               this.clearData();
+                               this.$emit('refresh');
+                           },500);
+                       }else{
+                           this.$message.error(`${this.editConfig.OperationType===1?'娣诲姞':'淇敼'}澶辫触`);
+                       }
+                    }else{
+                        this.$message.error('璇峰厛灏嗚〃鍗曞~鍐欏畬鏁�');
+                    }
+                });
+            },
+            //鏂板鏄庣粏
+            addItem(){
+                this.$refs['workshopForm'].validate((vail)=>{
+                   if(vail){
+                       const obj={...this.itemModel};
+                       if(this.editConfig.infomitton.workshop){
+                           obj.workshopName=this.editConfig.infomitton.workshop.workshopName;
+                           obj.workshopNumber=this.editConfig.infomitton.workshop.workshopNumber;
+                       }
+                       if(this.editConfig.infomitton.groupNumber){
+                           obj.groupNumber=this.editConfig.infomitton.groupNumber;
+                       }
+                       //鍒ゆ柇涓婁竴涓厓绱犵殑缁撴潫杞﹀彿
+                       const lastObj=this.tableList.tableInfomation[this.tableList.tableInfomation.length-1];
+                       if(!lastObj.endCarNumber){
+                           this.$message.error('鏄庣粏缁撴潫杞﹀彿涓嶈兘涓虹┖');
+                           return ;
+                       }else if(lastObj.endCarNumber<lastObj.startCarNumber){
+                           this.$message.error(`鏄庣粏缁撴潫杞﹀彿${lastObj.endCarNumber},涓嶈兘灏忎簬鏄庣粏璧峰杞﹀彿${lastObj.startCarNumber}`);
+                           return;
+                       }else if(lastObj.endCarNumber>this.editConfig.infomitton.endCarNumber){
+                           this.$message.error(`鏄庣粏缁撴潫杞﹀彿${lastObj.endCarNumber},涓嶈兘澶т簬杞﹂棿鎬荤殑缁撴潫杞﹀彿${this.editConfig.infomitton.endCarNumber}`);
+                           return;
+                       }
+                       if(lastObj.endCarHalf===1){//宸﹀崐杞�
+                           obj.startCarNumber=lastObj.endCarNumber
+                           obj.startCarHalf=2;//鍙冲崐杞�
+                       }else{
+                           obj.startCarNumber=lastObj.endCarNumber+1;
+                           obj.startCarHalf=1;//宸﹀崐杞�
+                       }
+                       lastObj.noEdit=true;
+                       this.$set(this.tableList.tableInfomation,this.tableList.tableInfomation.length-1,{...lastObj});
+                       obj.carFlag=this.editConfig.infomitton.carFlag;
+                       this.tableList.tableInfomation.push(obj);
+                   }else{
+                       this.$message.error('璇峰厛灏嗚〃鍗曞~鍐欏畬鏁�');
+                   }
+                });
+
+            },
+            setTable() {
+                this.tableList = {
+                    maxHeight:320,
+                    selectIndex: true,
+                    tableInfomation: [{...this.itemModel}],
+                    allcol: [],
+                    showcol: this.showCol,
+                    tableColumn: this.setColumnVisible(this.showCol, this.tableColumn)
+                }
+                this.setTableList(this.tableList)
+            },
+            selTableCol(val){
+                this.showcol = val;
+                this.tableList.tableColumn = this.setColumnVisible(val, this.tableColumn)
+            },
+            setTableList(tableList) {
+                tableList.allcol = tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label)
+            },
+            setColumnVisible(showCol, tableColumn) {
+                return tableColumn.map((ele) => {
+                    return {
+                        ...ele,
+                        isShowColumn: showCol.includes(ele.label)
+                    }
+                })
+            },
+            initData(){
+                this.setTable();
+                this.getDictData();
+            },
+            async getDictData(){
+                await getDict({dictType:1}).then((res)=>{
+                    if(res&&res.code===200){
+                        this.workshopList=res.data
+                    }
+                })
+            },
+            // 鍒犻櫎鏄庣粏
+            handleDelClick(scope){
+                if(this.tableList.tableInfomation.length>1){
+                    let index=scope.$index;
+                    this.tableList.tableInfomation.splice(index,1);
+                    const lastObj=this.tableList.tableInfomation[index-1];
+                    lastObj.noEdit=false;
+                    this.$set(this.tableList.tableInfomation,index-1,{...lastObj})
+                }else{
+                    this.$message.error('缁勫埆鑷冲皯鏈変竴鏉℃槑缁�');
+                }
+            },
+            // 娓呯┖鏄庣粏锛屼絾鏄繚鐣欑涓�鏉℃槑缁�
+            clearItem(){
+                if(this.tableList.tableInfomation.length>1){
+                    this.tableList.tableInfomation.splice(1,this.tableList.tableInfomation.length-1);
+                    const lastObj=this.tableList.tableInfomation[0];
+                    lastObj.noEdit=false;
+                    this.$set(this.tableList.tableInfomation,scope.$index-1,{...lastObj})
+                }else{
+                    this.$message.error('缁勫埆鑷冲皯鏈変竴鏉℃槑缁�');
+                }
+            }
+        }
+    }
+</script>
+
+<style scoped lang="scss">
+    .dialog-view{
+        width: 96%;
+    }
+    .dialog-footer{
+        .bottom-tabs {
+            height: 40px;
+            line-height: 40px;
+            background: white;
+            display: flex;
+            .tab-pane {
+                width: 100px;
+                margin-right: 20px;
+                font-size: 12px !important;
+                text-align: center;
+                cursor: pointer;
+                background: #2a78fb;
+                border-top-left-radius: 20px;
+                border-top-right-radius: 20px;
+            }
+        }
+    }
+</style>
\ No newline at end of file
diff --git a/src/views/systemSetting/workshopManage/index.vue b/src/views/systemSetting/workshopManage/index.vue
index 5d500cf..5869863 100644
--- a/src/views/systemSetting/workshopManage/index.vue
+++ b/src/views/systemSetting/workshopManage/index.vue
@@ -12,7 +12,9 @@
     </div>
     <div class="body-card">
       <div class="list-view">
-        <TableCommonView :table-list="tableList" @selTableCol="selTableCol" @handleShow="handleShow"
+        <TableCommonView :table-list="tableList"
+                         :selectClassRow="selectRow"
+                         @selTableCol="selTableCol"
           @tableRowClick="tableRowClick">
           <template slot="tableButton">
             <el-table-column label="鎿嶄綔" width="180">
@@ -20,7 +22,6 @@
                 <el-button @click.stop="handleClick(scope.row, '鏌ョ湅')" type="text" size="small">鏌ョ湅</el-button>
                 <el-button @click.stop="handleClick(scope.row, '淇敼')" type="text" size="small">淇敼</el-button>
                 <el-button @click.stop="handleClick(scope.row, '鍒犻櫎')" type="text" size="small">鍒犻櫎</el-button>
-
               </template>
             </el-table-column>
           </template>
@@ -30,8 +31,40 @@
         <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
       </div>
     </div>
-    <AddWorkshop ref="bomTypeDialog" @handleConfirmSave="handleConfirmSave" :workList="workList" title="娣诲姞鑺傜偣绫诲瀷" />
-    <AddDataDictionaries :editDiaConfig="editConfig" />
+    <div class="body-card1">
+      <div class="bottom-tabs">
+        <div
+                class="tab-pane"
+                @click="getTab(0)"
+                :style="{
+              background: TabsIndex == 0 ? '#2a78fb' : '#F1F3F8',
+              color: TabsIndex == 0 ? '#fff' : '#666'
+            }"
+        >
+          缁勫埆鍒楄〃
+        </div>
+        <!--<div
+                class="tab-pane"
+                @click="getTab(1)"
+                :style="{background: TabsIndex == 1 ? '#2a78fb' : '#F1F3F8',color: TabsIndex == 1 ? '#fff' : '#666'}"
+        >
+          鍗曟嵁杩芥函
+        </div>-->
+      </div>
+      <div class="list-view">
+        <TableCommonView :table-list="bottomTableList"
+                         @selTableCol="selTableCol">
+          <template slot="tableButton">
+          </template>
+        </TableCommonView>
+      </div>
+      <div class="btn-pager">
+        <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
+      </div>
+    </div>
+    <!--<AddWorkshop ref="bomTypeDialog" @handleConfirmSave="handleConfirmSave" :workList="workList" title="娣诲姞鑺傜偣绫诲瀷" />
+    <AddDataDictionaries :editDiaConfig="editConfig" />-->
+    <WorkshopDialog ref="workshopDialogRef" :edit-config="editConfig" @refresh="refresh"></WorkshopDialog>
   </div>
 </template>
 
@@ -41,23 +74,29 @@
 import TableCommonView from '@/components/makepager/TableCommonView.vue'
 import AddWorkshop from '@/views/systemSetting/workshopManage/components/addWorkshop.vue'
 import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
+import WorkshopDialog from '@/views/systemSetting/workshopManage/components/workshopDialog.vue'
 export default {
   name: "workshopManage",
   props: {},
-  components: { TableCommonView, AddWorkshop, AddDataDictionaries },
+  components: { TableCommonView, AddWorkshop, AddDataDictionaries,WorkshopDialog },
   mixins: [pageMixin],
-  computed: {},
+  computed: {
+
+  },
   data() {
     return {
+      selectRow:{},
+      TabsIndex:0,
+      bottomTableList:{},
       tableList: {},
-      showCol: ["杞﹂棿", "缁勫埆", "寮�濮嬭溅鍙�", "缁撴潫杞﹀彿", "鍗婅溅鏍囧織", "澶囨敞"],
+      showCol: ["杞﹂棿", "缁勫埆", "寮�濮嬭溅鍙�", "缁撴潫杞﹀彿", "鏍囧織绫诲瀷", "澶囨敞"],
       tableColumn: [
         // { label: "杞﹂棿", prop: "workshopNumber",iconRight:"el-icon-setting"},
         { label: "杞﹂棿", prop: "workshopName", },
         { label: "缁勫埆", prop: "groupNumber", },
         { label: "寮�濮嬭溅鍙�", prop: "startCarNumber" },
         { label: "缁撴潫杞﹀彿", prop: "endCarNumber" },
-        { label: "鍗婅溅鏍囧織", prop: "carFlag", isCallMethod: true, getCallMethod: this.getStatusCarFlag },
+        { label: "鏍囧織绫诲瀷", prop: "carFlag", isCallMethod: true, getCallMethod: this.getStatusCarFlag },
         { label: "澶囨敞", prop: "notes", },
       ],
       // 绫诲瀷
@@ -79,16 +118,22 @@
     this.getData()
   },
   methods: {
+      refresh(){
+        this.getData();
+      },
     setTable() {
+        const obj={
+            selectIndex: true,
+            tableInfomation: [],
+            allcol: [],
+            showcol: this.showCol,
+            tableColumn: this.setColumnVisible(this.showCol, this.tableColumn)
+        };
       // top 鏄庣粏鍗曞垪琛�
-      this.tableList = {
-        selectIndex: true,
-        tableInfomation: [],
-        allcol: [],
-        showcol: this.showCol,
-        tableColumn: this.setColumnVisible(this.showCol, this.tableColumn)
-      }
-      this.setTableList(this.tableList)
+      this.tableList = {...obj};
+      this.bottomTableList={...obj};
+      this.setTableList(this.tableList);
+      this.setTableList(this.bottomTableList);
     },
     setColumnVisible(showCol, tableColumn) {
       return tableColumn.map((ele) => {
@@ -100,7 +145,7 @@
     },
     setTableList(tableList) {
       tableList.allcol = tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label)
-      this.searchOptions = []
+      this.searchOptions = [];
       for (let i = 0; i < tableList.tableColumn.length; i++) {
         const label = tableList.tableColumn[i].label
         const value = tableList.tableColumn[i].prop
@@ -113,7 +158,8 @@
     },
     // 琛ㄦ牸琛岀偣鍑�
     tableRowClick(row) {
-      console.log(row, "row")
+        this.selectRow={...row};
+        this.bottomTableList.tableInfomation=row.details||[];
     },
     // 鎼滅储
     onFilterSearch(searchText) {
@@ -123,8 +169,12 @@
     },
     // 鏂板
     addBtnClick() {
-      this.editConfig.infomitton = {}
-      this.editConfig.dialogTitle = "鏂板"
+      this.editConfig.infomitton = {
+          carFlag:1,
+          workshop:{}
+      };
+      this.editConfig.OperationType=1;
+      this.editConfig.title = "鏂板";
       this.editConfig.visible = true
     },
     // 淇濆瓨
@@ -133,10 +183,10 @@
     },
     // 鍒锋柊
     refreshClick() {
-      this.getDataParams.keyWord = ""
-      this.pagerOptions.currPage = 1
-      this.pagerOptions.pageSize = 15
-      this.$refs.searchRef.searchInput = ""
+      this.getDataParams.keyWord = "";
+      this.pagerOptions.currPage = 1;
+      this.pagerOptions.pageSize = 15;
+      this.$refs.searchRef.searchInput = "";
       this.getData()
     },
     // 鎵撳嵃
@@ -144,58 +194,65 @@
     // 鍒犻櫎
     delBtnClick() { },
     // 缁勫埆
-    handleShow() {
+ /*   handleShow() {
       this.$refs.bomTypeDialog.editDialogVisible = true;
-    },
+    },*/
     handleGetBomKindDictList() {
       // postGetBomKindDictList().then((res) => {
       //   this.workList = res.data;
       // });
     },
     handleConfirmSave(data) {
-      console.log(data)
-      // postSaveBomKindDict({ data: data }).then((res) => {
-      //   if (res.code == 200) {
-      //     this.$message({
-      //       message: "鎿嶄綔鎴愬姛锛�",
-      //       type: "success",
-      //     });
-      //     this.$refs.bomTypeDialog.editDialogVisible = false;
-      //     this.handleGetBomKindDictList();
-      //   }
-      // });
+      console.log(data);
     },
     // 杞﹂棿鍒楄〃
     async getData() {
       await getWorkshopManageList({
         keyWord: this.getDataParams.keyWord,
         page: this.pagerOptions.currPage,
-        pageSize: this.pagerOptions.pageSize
+        pageSize: this.pagerOptions.pageSize,
+        type:1
       }).then((res) => {
         this.tableList.tableInfomation = res.data
         this.pagerOptions.totalCount = res.total
-      })
+        if(res.data.length>0){
+            this.bottomTableList.tableInfomation=res.data[0].details||[];
+        }
+      });
     },
     getStatusCarFlag(val) {
-      if (val) {
-        return val == 1 ? '宸﹀崐杞�' : val == 2 ? '鍙冲崐杞�' : val == 3 ? '鍏ㄨ溅缁撴潫' : '--'
-      } else {
-        return "--";
-      }
+     if(val===0){
+         return '鍏ㄨ溅'
+     }else{
+         return '鍗婅溅'
+     }
     },
     handleClick(row, type) {
       if (type !== "鍒犻櫎") {
         this.editConfig.infomitton = {
           ...row,
           workshop:{
-            number:row.workshopNumber,
-            name:row.workshopName
+            workshopNumber:row.workshopNumber,
+            workshopName:row.workshopName
           }
-        }
+        };
         this.editConfig.infomitton.workshopId = row.ID
         this.editConfig.infomitton.workshopNumber = Number(this.editConfig.infomitton.workshopNumber)
-        this.editConfig.dialogTitle = type
-        this.editConfig.visible = true
+        this.editConfig.title = type;
+        if(type==='淇敼'){
+            this.editConfig.OperationType=2
+        }else{
+            this.editConfig.OperationType=3
+        }
+        this.editConfig.visible = true;
+        (row.details||[]).forEach((item,index)=>{
+            if(index<row.details.length-1){
+                item.noEdit=true;
+            }else{
+                item.noEdit=false;
+            }
+        });
+        this.$refs['workshopDialogRef'].initBottomTableList(row.details||[]);
       } else if (type === "鍒犻櫎") {
         this.$confirm(`纭鍒犻櫎鍚�?`, '鎻愮ず', {
           confirmButtonText: '纭畾',
@@ -235,19 +292,15 @@
     border-radius: 4px;
     background-color: #fff;
   }
-
-  .body-card {
+  .body-card,.body-card1 {
     margin: 0 30px;
     background-color: #fff;
     padding: 10px 15px;
-    height: calc(100% - 180px);
     border-radius: 4px;
-
     .edit-save {
       display: flex;
       align-items: center;
       margin-bottom: 10px;
-
       .edit-save-icon {
         font-size: 24px;
         color: #5582f3;
@@ -261,6 +314,34 @@
       }
     }
   }
+  .body-card{
+    height: calc(100% - 440px);
+  }
+  .body-card1{
+    margin-top: -50px;
+      height: calc(100% - 500px);
+      .bottom-tabs {
+        height: 40px;
+        line-height: 40px;
+        background: white;
+        display: flex;
+        .tab-pane {
+          width: 100px;
+          margin-right: 20px;
+          font-size: 14px !important;
+          text-align: center;
+          cursor: pointer;
+          background: #2a78fb;
+          border-top-left-radius: 20px;
+          border-top-right-radius: 20px;
+      }
+    }
+      padding-bottom: 100px;
+    .btn-pager{
+      position: relative;
+      top: -5px;
+    }
+  }
 }
 
 .list-view {
@@ -271,7 +352,6 @@
 .btn-pager {
   display: flex;
   margin-top: 10px;
-
   .page {
     margin-left: auto;
   }
diff --git a/vue.config.js b/vue.config.js
index 8475b1c..8800196 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -1,11 +1,11 @@
 const path = require("path")
 // 鍩虹璺緞 娉ㄦ剰鍙戝竷涔嬪墠瑕佸厛淇敼杩欓噷
-const publicPath = "/"
+const publicPath = "./"
 function resolve(dir) {
   return path.join(__dirname, dir)
 }
-
-const serverPath='http://192.168.0.101:8008';
+const ipNum=59;
+const serverPath='http://192.168.0.86:8008';
 // 璁剧疆涓嶅弬涓庢瀯寤虹殑搴�
 const externals = {};
 module.exports = {
@@ -62,4 +62,4 @@
       }
     }
   }
-}
+};

--
Gitblit v1.8.0