From a2299a6d4a6f99e9c11132138f5d3e9ec68f03ea Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 06 六月 2025 19:19:34 +0800 Subject: [PATCH] 开发更新 --- admin/src/views/workorder/components/OperaYwWorkorderWindow.vue | 133 +++++++++++++++++++++++++++++++++---------- 1 files changed, 101 insertions(+), 32 deletions(-) diff --git a/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue b/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue index 4f8ce99..02f6cad 100644 --- a/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue +++ b/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue @@ -3,31 +3,24 @@ @confirm="confirm"> <el-form :model="form" ref="form" :rules="rules"> <el-form-item label="浣嶇疆绫诲瀷" prop="areaType"> - <el-select v-model="form.areaType"> - <el-option label="瀹ゅ唴缁翠慨" value="0"></el-option> - <el-option label="鍏叡缁翠慨" value="1"></el-option> + <el-select v-model="form.areaType" @change="changeType"> + <el-option label="瀹ゅ唴缁翠慨" :value="0"></el-option> + <el-option label="鍏叡缁翠慨" :value="1"></el-option> </el-select> </el-form-item> - <el-form-item label="閫夋嫨椤圭洰" prop="projectId"> - <el-select v-model="form.projectId" clearable filterable @change="getBuild"> - <el-option v-for="item in projectList" :label="item.name" :value="item.id" /> - </el-select> - </el-form-item> - <el-form-item label="閫夋嫨妤煎畤" prop="buildingId"> - <el-select v-model="form.buildingId" clearable filterable @change="changeBuild"> - <el-option v-for="item in buildList" :label="item.name" :value="item.id" /> - </el-select> - </el-form-item> - - <el-form-item v-if="form.areaType == 1" label="閫夋嫨妤煎眰" prop="floorId"> - <el-select v-model="form.floorId"> - <el-option v-for="item in levelList" clearable filterable :label="item.name" :value="item.id" /> - </el-select> - </el-form-item> - <el-form-item v-if="form.areaType == 0" label="閫夋嫨鎴块棿" prop="roomId"> - <el-select v-model="form.roomId" clearable filterable> - <el-option v-for="item in roomList" :label="item.roomNum" :value="item.id" /> - </el-select> + <el-form-item label="鎶ヤ慨鍖哄煙" prop="rooms"> + <el-cascader + v-model="form.rooms" + :disabled="![0,1].includes(form.areaType)" + ref="cascader" + @change="getHouseVal" + placeholder="璇烽�夋嫨鎶ヤ慨鍖哄煙" + :options="form.areaType === 0 ? houseList : houseList1" + :props="{ + label: 'name', + value: 'id', + children: 'projectDataVOList' + }" /> </el-form-item> <el-form-item label="宸ュ崟鍒嗙被" prop="cateId"> <el-cascader v-model="form.areaIds" @change="changeSel" placeholder="璇烽�夋嫨鍒嗙被" clearable :options="cateList" @@ -63,8 +56,6 @@ <el-input type="textarea" :rows="4" v-model="form.content" placeholder="璇疯緭鍏�" :maxlength="300" v-trim /> </el-form-item> </el-form> - <!-- --> - </GlobalWindow> </template> @@ -72,7 +63,7 @@ import BaseOpera from '@/components/base/BaseOpera' import GlobalWindow from '@/components/common/GlobalWindow' import { Loading, Message } from 'element-ui' -import { getProjectList } from '@/api/project/ywProject' +import { getProjectList, tree } from '@/api/project/ywProject' import { getBuildList } from '@/api/project/ywBuilding' import { getRoomList } from '@/api/project/ywRoom' import { getFloorList } from '@/api/project/yeFloor' @@ -87,6 +78,9 @@ // 琛ㄥ崟鏁版嵁 form: { id: null, + + rooms: [], + editDate: '', floor: '', title: '', @@ -102,7 +96,7 @@ userId: '', submitDate: '', cateId: '', - areaType: '0', + areaType: 0, code: '', dealStatus: '', dispatchUserId: '', @@ -113,6 +107,8 @@ dealInfo: '', dealType: '' }, + houseList: [], + houseList1: [], loadingInstance: null, // 楠岃瘉瑙勫垯 rules, @@ -137,11 +133,13 @@ methods: { open(title, target) { this.title = title + this.fileList = [] this.visible = true - this.getProject() this.getCate() + this.getHouseTree() // 鏂板缓 if (target == null) { + this.getProject() this.form = { id: null, editDate: '', @@ -159,7 +157,7 @@ userId: '', submitDate: '', cateId: '', - areaType: '0', + areaType: 0, code: '', dealStatus: '', dispatchUserId: '', @@ -179,12 +177,75 @@ }) return } + getProjectList({}).then(res => { + this.projectList = res || [] + }) // 缂栬緫 this.$nextTick(() => { + // this.$refs.form.resetFields() for (const key in this.form) { this.form[key] = target[key] } }) + }, + changeType(e) { + this.form.rooms = [] + this.form.projectId = '' + this.form.buildingId = '' + this.form.floorId = '' + this.form.roomId = '' + }, + getHouseVal(e) { + if (this.form.areaType === 0) { + this.form.projectId = e[0] + this.form.buildingId = e[1] + this.form.floorId = e[2] + this.form.roomId = e[3] + } else { + this.form.projectId = e[0] + this.form.buildingId = e[1] + this.form.floorId = e[2] + } + }, + getHouseTree() { + tree({}).then(res => { + let arr1 = JSON.parse(JSON.stringify(res)) + let arr2 = JSON.parse(JSON.stringify(res)) + this.addParamToArray(arr1) + this.addParamToArray1(arr2) + this.houseList = arr1 + this.houseList1 = arr2 + }) + }, + addParamToArray(arr) { + for (let i = 0; i < arr.length; i++) { + const currentItem = arr[i].projectDataVOList + if (currentItem && currentItem.length >= 0) { + currentItem.forEach(item => { + if (item.lv === 3) { + delete item.projectDataVOList + } + }) + } + if (currentItem && currentItem.length > 0) { + this.addParamToArray(currentItem) + } + } + }, + addParamToArray1(arr) { + for (let i = 0; i < arr.length; i++) { + const currentItem = arr[i].projectDataVOList + if (currentItem && currentItem.length >= 0) { + currentItem.forEach(item => { + if (item.lv === 2) { + delete item.projectDataVOList + } + }) + } + if (currentItem && currentItem.length > 0) { + this.addParamToArray1(currentItem) + } + } }, close() { this.visible = false @@ -192,7 +253,11 @@ }, getProject() { getProjectList({}).then(res => { - this.projectList = res + this.projectList = res || [] + if(this.projectList.length > 0){ + this.$set(this.form, 'projectId', this.projectList[0].id) + this.getBuild(this.projectList[0].id) + } }) }, getBuild(projectId) { @@ -200,7 +265,11 @@ this.$set(this.form, 'floorId', '') this.$set(this.form, 'roomId', '') getBuildList({ projectId }).then(res => { - this.buildList = res + this.buildList = res || [] + // if(projectId && this.buildList.length > 0){ + // this.$set(this.form, 'buildingId', this.buildList[0].id) + // this.changeBuild(this.buildList[0].id) + // } }) }, changeBuild(e) { @@ -339,4 +408,4 @@ } } } -</style> \ No newline at end of file +</style> -- Gitblit v1.9.3