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 | 188 +++++++++++++++++++++++++++++++++++----------- 1 files changed, 142 insertions(+), 46 deletions(-) diff --git a/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue b/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue index 8542213..02f6cad 100644 --- a/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue +++ b/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue @@ -1,35 +1,29 @@ <template> - <GlobalWindow width="800px" :title="title" :visible.sync="visible" @close="close" :confirm-working="isWorking" @confirm="confirm"> + <GlobalWindow width="800px" :title="title" :visible.sync="visible" @close="close" :confirm-working="isWorking" + @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 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="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> - <el-form-item label="鍒嗙被" prop="cateId"> - <el-cascader v-model="form.areaIds" @change="changeSel" placeholder="璇烽�夋嫨宸℃鍖哄煙" clearable :options="cateList" + <el-form-item label="宸ュ崟鍒嗙被" prop="cateId"> + <el-cascader v-model="form.areaIds" @change="changeSel" placeholder="璇烽�夋嫨鍒嗙被" clearable :options="cateList" :props="{ label: 'name', value: 'id', @@ -62,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> @@ -71,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' @@ -86,12 +78,11 @@ // 琛ㄥ崟鏁版嵁 form: { id: null, - creator: '', - createDate: '', - editor: '', + + rooms: [], + editDate: '', floor: '', - isdeleted: '', title: '', remark: '', status: '', @@ -103,10 +94,9 @@ floorId: '', roomId: '', userId: '', - phone: '', submitDate: '', cateId: '', - areaType: '0', + areaType: 0, code: '', dealStatus: '', dispatchUserId: '', @@ -117,6 +107,8 @@ dealInfo: '', dealType: '' }, + houseList: [], + houseList1: [], loadingInstance: null, // 楠岃瘉瑙勫垯 rules, @@ -141,23 +133,119 @@ 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: '', + floor: '', + title: '', + remark: '', + status: '', + sortnum: '', + content: '', + getDate: '', + projectId: '', + buildingId: '', + floorId: '', + roomId: '', + userId: '', + submitDate: '', + cateId: '', + areaType: 0, + code: '', + dealStatus: '', + dispatchUserId: '', + dispatchDate: '', + dispatchInfo: '', + dealUserId: '', + dealDate: '', + dealInfo: '', + dealType: '' + } this.$nextTick(() => { + this.buildList = [] + this.roomList = [] + this.levelList = [] this.$refs.form.resetFields() this.form[this.configData['field.id']] = null }) 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 @@ -165,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) { @@ -173,22 +265,26 @@ 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) { this.$set(this.form, 'floorId', '') this.$set(this.form, 'roomId', '') - if(this.form.areaType == 1){ + if (this.form.areaType == 1) { this.getLevel(e) - }else{ + } else { this.getRoom(e) } - - + + }, getLevel(buildingId) { - getFloorList({ buildingId}).then(res => { + getFloorList({ buildingId }).then(res => { this.levelList = res }) }, @@ -199,9 +295,9 @@ }) }, changeSel(e) { - if(e && e.length == 2){ + if (e && e.length == 2) { this.$set(this.form, 'cateId', e[1]) - }else{ + } else { this.$set(this.form, 'cateId', '') } }, @@ -312,4 +408,4 @@ } } } -</style> \ No newline at end of file +</style> -- Gitblit v1.9.3