From 7d960355fd82a106ae8e15f6f83d4324145e7b24 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期五, 10 十一月 2023 09:51:46 +0800
Subject: [PATCH] modified: src/views/common/param-mergeTemplate.vue modified: src/views/technology/routing/routing-form.vue
---
src/views/basic/post/post-form.vue | 110 ++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 89 insertions(+), 21 deletions(-)
diff --git a/src/views/basic/post/post-form.vue b/src/views/basic/post/post-form.vue
index 4ce7d29..36b2294 100644
--- a/src/views/basic/post/post-form.vue
+++ b/src/views/basic/post/post-form.vue
@@ -3,17 +3,17 @@
<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="company">
- <el-select style="width: 100%;" v-model="dataForm.company" placeholder="璇烽�夋嫨">
- <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
+ <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="factory">
- <el-select style="width: 100%;" v-model="dataForm.factory" placeholder="璇烽�夋嫨">
- <el-option v-for="item in optionsfactory" :key="item.value" :label="item.label" :value="item.value">
+ <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>
@@ -21,9 +21,9 @@
</el-row>
<el-row>
<el-col :span="12">
- <el-form-item label="閮ㄩ棬" prop="division">
- <el-select style="width: 100%;" v-model="dataForm.division" placeholder="璇烽�夋嫨">
- <el-option v-for="item in optionsdepartment" :key="item.value" :label="item.label" :value="item.value">
+ <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>
@@ -55,21 +55,29 @@
</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:[],
+ optionsfactory: [],
optionsdepartment: [],
dataForm: {
id: 0,
- company: null,
- factory: null,
- division: null,
+ companyId: null,
+ companyName: null,
+ factoryId: null,
+ factoryName: null,
+ divisionId: null,
+ divisionName: null,
postNo: '',
postName: '',
remark: ''
@@ -81,13 +89,13 @@
postNo: [
{ required: true, message: '宀椾綅缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }
],
- company: [
+ companyId: [
{ required: true, message: '鍏徃鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' }
],
- factory: [
+ factoryId: [
{ required: true, message: '宸ュ巶鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' }
- ],
- division: [
+ ],
+ divisionId: [
{ required: true, message: '閮ㄩ棬鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' }
]
},
@@ -95,9 +103,36 @@
}
},
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
@@ -106,6 +141,8 @@
if (this.dataForm.id) {
getObj(this.dataForm.id).then((response) => {
this.dataForm = response.data.data
+ this.changeCompany()
+ this.changeFactory()
})
}
})
@@ -134,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