From d8ac6057eaad648687699e25a575f3b7b8c1b102 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 17 十一月 2023 18:52:19 +0800
Subject: [PATCH] 	modified:   src/views/plan/customerorder/schedule-table.vue

---
 src/views/basic/post/post-form.vue |  145 ++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 121 insertions(+), 24 deletions(-)

diff --git a/src/views/basic/post/post-form.vue b/src/views/basic/post/post-form.vue
index 846d0be..36b2294 100644
--- a/src/views/basic/post/post-form.vue
+++ b/src/views/basic/post/post-form.vue
@@ -1,29 +1,45 @@
 <template>
-  <el-dialog
-    :title="!dataForm.id ? '鏂板' : '淇敼'"
-    :close-on-click-modal="false"
-    :visible.sync="visible"
-  >
-    <el-form
-      :model="dataForm"
-      :rules="dataRule"
-      ref="dataForm"
-      label-width="120px"
-      class="l-mes"
-    >
+  <el-dialog :title="!dataForm.id ? '鏂板' : '淇敼'" :close-on-click-modal="false" :visible.sync="visible">
+    <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="120px" class="l-mes">
       <el-row>
+        <el-col :span="12">
+          <el-form-item label="鍏徃" prop="companyId">
+            <el-select @change="changeCompany" style="width: 100%;" v-model="dataForm.companyId" placeholder="璇烽�夋嫨">
+              <el-option v-for="item in options" :key="item.id" :label="item.companyName" :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="宸ュ巶" prop="factoryId">
+            <el-select @change="changeFactory" style="width: 100%;" v-model="dataForm.factoryId" placeholder="璇烽�夋嫨">
+              <el-option v-for="item in optionsfactory" :key="item.id" :label="item.factoryName" :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="12">
+          <el-form-item label="閮ㄩ棬" prop="divisionId">
+            <el-select @change="changeDivision" style="width: 100%;" v-model="dataForm.divisionId" placeholder="璇烽�夋嫨">
+              <el-option v-for="item in optionsdepartment" :key="item.id" :label="item.divisionName" :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
         <el-col :span="12">
           <el-form-item label="宀椾綅缂栧彿" prop="postNo">
             <el-input v-model="dataForm.postNo" placeholder=""></el-input>
           </el-form-item>
         </el-col>
+      </el-row>
+      <el-row>
         <el-col :span="12">
           <el-form-item label="宀椾綅鍚嶇О" prop="postName">
             <el-input v-model="dataForm.postName" placeholder=""></el-input>
           </el-form-item>
         </el-col>
-      </el-row>
-      <el-row>
         <el-col :span="12">
           <el-form-item label="澶囨敞" prop="remark">
             <el-input v-model="dataForm.remark" placeholder=""></el-input>
@@ -33,26 +49,35 @@
     </el-form>
     <span slot="footer" class="dialog-footer">
       <el-button @click="visible = false">鍙栨秷</el-button>
-      <el-button
-        type="primary"
-        :disabled="isSubmit"
-        v-thinclick="`dataFormSubmit`"
-        >纭畾</el-button
-      >
+      <el-button type="primary" :disabled="isSubmit" v-thinclick="`dataFormSubmit`">纭畾</el-button>
     </span>
   </el-dialog>
 </template>
 
 <script>
-import { getObj, addObj, putObj } from '@/api/basic/post'
-
+import { getObj, addObj, putObj, getDivisionByFactoryId } from '@/api/basic/post'
+import {
+  loadStaff,
+  dataFormTransfer,
+  loadFactoryListByCompany
+} from '@/api/basic/division'
+import { loadCompany } from '@/api/basic/factory'
 export default {
   data() {
     return {
       ruleOptions: [],
       visible: false,
+      options: [],
+      optionsfactory: [],
+      optionsdepartment: [],
       dataForm: {
         id: 0,
+        companyId: null,
+        companyName: null,
+        factoryId: null,
+        factoryName: null,
+        divisionId: null,
+        divisionName: null,
         postNo: '',
         postName: '',
         remark: ''
@@ -60,15 +85,54 @@
       dataRule: {
         postName: [
           { required: true, message: '宀椾綅鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' }
+        ],
+        postNo: [
+          { required: true, message: '宀椾綅缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }
+        ],
+        companyId: [
+          { required: true, message: '鍏徃鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' }
+        ],
+        factoryId: [
+          { required: true, message: '宸ュ巶鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' }
+        ],
+        divisionId: [
+          { required: true, message: '閮ㄩ棬鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' }
         ]
       },
       isSubmit: false
     }
   },
   mounted() {
-    this.initTestRuleSelect()
+    // this.initTestRuleSelect()
+    this.initCompanySelect()
   },
   methods: {
+    changeDivision(){
+      this.dataForm.divisionName = this.optionsdepartment.filter(item => {
+        return item.id == this.dataForm.divisionId
+      })[0].divisionName;
+    },
+    changeCompany() {
+      loadFactoryListByCompany(this.dataForm.companyId).then((res) => {
+        this.optionsfactory = res.data.data
+      })
+      this.dataForm.companyName = this.options.filter(item => {
+        return item.id == this.dataForm.companyId
+      })[0].companyName;
+    },
+    changeFactory() {
+      getDivisionByFactoryId(this.dataForm.companyId, this.dataForm.factoryId).then((res) => {
+        this.optionsdepartment=res.data.data
+      })
+      this.dataForm.factoryName = this.optionsfactory.filter(item => {
+        return item.id == this.dataForm.factoryId
+      })[0].factoryName;
+    },
+    initCompanySelect() {
+      loadCompany().then((res) => {
+        this.options = res.data
+      })
+    },
     init(id) {
       this.dataForm.id = id || 0
       this.visible = true
@@ -77,6 +141,8 @@
         if (this.dataForm.id) {
           getObj(this.dataForm.id).then((response) => {
             this.dataForm = response.data.data
+            this.changeCompany()
+            this.changeFactory()
           })
         }
       })
@@ -105,7 +171,38 @@
           this.isSubmit = false
         }
       })
-    }
+    },
+  },
+  watch: {
+    'dataForm.companyId': {
+      handler(newValue, oldValue) {
+        if (newValue != ''&&oldValue!=''&&oldValue!=undefined&&newValue!=undefined) {
+          console.log(newValue);
+          console.log(oldValue);
+            if(oldValue!=newValue){
+              this.dataForm.factoryId=null
+              this.dataForm.divisionId=null
+              this.optionsdepartment=[]
+            }
+        }
+      },
+      immediate: true,
+      deep: true
+    },
+    'dataForm.factoryId': {
+      handler(newValue, oldValue) {
+        if (newValue != ''&&oldValue!=''&&oldValue!=undefined&&newValue!=undefined) {
+          console.log(newValue);
+          console.log(oldValue);
+            if(oldValue!=newValue){
+              this.dataForm.divisionId=null
+              this.optionsdepartment=[]
+            }
+        }
+      },
+      immediate: true,
+      deep: true
+    },
   }
 }
 </script>

--
Gitblit v1.9.3