From eecb531137599c1a0bde3c40fc549cd3b2cd5bed Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期三, 22 一月 2025 09:18:45 +0800 Subject: [PATCH] 1 --- admin/src/views/workorder/components/OperaYwWorkorderWindow.vue | 137 ++++++++++++++++++++++++++++++++++++--------- 1 files changed, 108 insertions(+), 29 deletions(-) diff --git a/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue b/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue index c97fbf4..f3c7e3a 100644 --- a/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue +++ b/admin/src/views/workorder/components/OperaYwWorkorderWindow.vue @@ -3,32 +3,48 @@ @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 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> +<!-- <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" :props="{ @@ -63,8 +79,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 +86,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 +101,9 @@ // 琛ㄥ崟鏁版嵁 form: { id: null, + + rooms: [], + editDate: '', floor: '', title: '', @@ -102,7 +119,7 @@ userId: '', submitDate: '', cateId: '', - areaType: '0', + areaType: 0, code: '', dealStatus: '', dispatchUserId: '', @@ -113,6 +130,8 @@ dealInfo: '', dealType: '' }, + houseList: [], + houseList1: [], loadingInstance: null, // 楠岃瘉瑙勫垯 rules, @@ -140,7 +159,8 @@ this.visible = true this.getProject() this.getCate() - // 鏂板缓 + this.getHouseTree() + // 鏂板缓 if (target == null) { this.form = { id: null, @@ -159,7 +179,7 @@ userId: '', submitDate: '', cateId: '', - areaType: '0', + areaType: 0, code: '', dealStatus: '', dispatchUserId: '', @@ -185,6 +205,65 @@ this.form[key] = target[key] } }) + }, + changeType(e) { + this.form.rooms = [] + this.form.projectId = '' + this.form.buildingId = '' + this.form.levelList = '' + 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 @@ -347,4 +426,4 @@ } } } -</style> \ No newline at end of file +</style> -- Gitblit v1.9.3