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