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/handleProblem.vue | 208 +++++++++++++++++++++++++++++++++------------------ 1 files changed, 135 insertions(+), 73 deletions(-) diff --git a/admin/src/views/workorder/components/handleProblem.vue b/admin/src/views/workorder/components/handleProblem.vue index 6d9faa1..6560bc3 100644 --- a/admin/src/views/workorder/components/handleProblem.vue +++ b/admin/src/views/workorder/components/handleProblem.vue @@ -43,30 +43,36 @@ </div> </div> <el-form :model="form" :rules="rules" ref="form" label-width="100px" class="demo-ruleForm"> - <el-form-item label="澶勭悊鏂瑰紡" prop="dealType"> - <el-radio-group v-model="form.dealType"> - <el-radio :label="0">杞伐鍗�</el-radio> - <el-radio :label="1">鍏抽棴闂</el-radio> + <el-form-item label="澶勭悊鏂瑰紡" prop="dealStatus"> + <el-radio-group v-model="form.dealStatus"> + <el-radio :label="1">杞伐鍗�</el-radio> + <el-radio :label="2">鍏抽棴闂</el-radio> </el-radio-group> </el-form-item> - <template> - <div style="display: flex; align-items: center;" v-if="form.dealType === 0"> + <template v-if="form.dealStatus === 1"> + <div style="width: 100%; display: flex; align-items: center;"> <el-form-item label="浣嶇疆绫诲瀷" prop="workOrderAreaType"> - <el-select v-model="form.workOrderAreaType" placeholder="璇烽�夋嫨浣嶇疆绫诲瀷"> + <el-select v-model="form.workOrderAreaType" @change="changeType" placeholder="璇烽�夋嫨浣嶇疆绫诲瀷"> <el-option label="瀹ゅ唴缁翠慨" :value="0"></el-option> <el-option label="鍏叡鍖哄煙" :value="1"></el-option> </el-select> </el-form-item> <el-form-item label="鎶ヤ慨鍖哄煙" prop="rooms"> - <el-cascader v-model="form.rooms" ref="cascader" @change="getHouseVal" placeholder="璇烽�夋嫨鎶ヤ慨鍖哄煙" :options="houseList" - :props="{ - label: 'name', - value: 'id', - children: 'projectDataVOList' - }"></el-cascader> + <el-cascader + v-model="form.rooms" + :disabled="![0,1].includes(form.workOrderAreaType)" + ref="cascader" + @change="getHouseVal" + placeholder="璇烽�夋嫨鎶ヤ慨鍖哄煙" + :options="form.workOrderAreaType === 0 ? houseList : houseList1" + :props="{ + label: 'name', + value: 'id', + children: 'projectDataVOList' + }" /> </el-form-item> </div> - <div style="display: flex; align-items: center;"> + <div style="width: 100%; display: flex; align-items: center;"> <el-form-item label="宸ュ崟鍒嗙被" prop="workOrderCateId"> <el-cascader v-model="form.workOrderCateId" @change="changeSel" placeholder="璇烽�夋嫨鍒嗙被" clearable :options="cateList" :props="{ @@ -75,8 +81,13 @@ children: 'childCategoryList' }"></el-cascader> </el-form-item> - <el-form-item label="涓婇棬鏃堕棿" prop="workOrderGetDate"> - <el-date-picker v-model="form.workOrderGetDate" type="date" value-format="yyyy-MM-dd" placeholder="閫夋嫨涓婇棬鏃堕棿"></el-date-picker> + <el-form-item label="涓婇棬鏃堕棿" prop="workOrderGetDate" v-if="form.workOrderAreaType === 0"> + <el-date-picker + v-model="form.workOrderGetDate" + type="datetime" + value-format="yyyy-MM-dd HH:mm:ss" + placeholder="閫夋嫨涓婇棬鏃堕棿"> + </el-date-picker> </el-form-item> </div> <el-form-item label="鎻忚堪" prop="dealInfo"> @@ -99,11 +110,11 @@ </el-upload> </el-form-item> </template> - - <el-form-item label="鍏抽棴璇存槑" v-if="form.dealType === 1"> + <el-form-item label="鍏抽棴璇存槑" prop="dealInfo" v-if="form.dealStatus === 2"> <el-input type="textarea" :rows="5" + maxlength="300" placeholder="璇疯緭鍏ュ叧闂棶棰�" v-model="form.dealInfo"> </el-input> @@ -118,6 +129,7 @@ import GlobalWindow from '@/components/common/GlobalWindow' import { fetchList as getCateList } from '@/api/business/category.js' import { tree } from '@/api/project/ywProject' + import { editProblem } from '@/api/ywProblem' export default { name: "handleProblem", extends: BaseOpera, @@ -128,7 +140,7 @@ cateList: [], base: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/uploadBatch', form: { - dealType: 0, + dealStatus: 1, workOrderAreaType: '', workOrderCateId: '', workOrderGetDate: '', @@ -142,8 +154,9 @@ workOrderRoomId: '' }, houseList: [], + houseList1: [], rules: { - dealType: [ + dealStatus: [ { required: true, message: '璇烽�夋嫨', trigger: 'blur' } ], workOrderAreaType: [ @@ -161,11 +174,6 @@ } } }, - created() { - this.config({ - api: '/ywProblem' - }) - }, methods: { open (title, target) { this.title = title @@ -175,13 +183,32 @@ this.visible = true }, getHouseVal(e) { - this.form.workOrderFloorId = e[2] - this.form.workOrderRoomId = e[3] + if (this.form.workOrderAreaType === 0) { + this.form.workOrderProjectId = e[0] + this.form.workOrderBuildId = e[1] + this.form.workOrderFloorId = e[2] + this.form.workOrderRoomId = e[3] + } else { + this.form.workOrderProjectId = e[0] + this.form.workOrderBuildId = e[1] + this.form.workOrderFloorId = e[2] + } + }, + changeType(e) { + this.form.rooms = [] + this.form.workOrderProjectId = '' + this.form.workOrderBuildId = '' + this.form.workOrderFloorId = '' + this.form.workOrderRoomId = '' }, getHouseTree() { tree({}).then(res => { - this.addParamToArray(res) - this.houseList = 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) { @@ -196,6 +223,21 @@ } 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) } } }, @@ -219,6 +261,26 @@ this.cateList = res.records || [] }) }, + confirm() { + this.$refs.form.validate((valid) => { + if (!valid) { + return + } + this.isWorking = true + editProblem({ + ...this.form, + id: this.info.id + }) + .then(() => { + this.visible = false + this.$tip.apiSuccess('鎿嶄綔鎴愬姛') + this.$emit('success') + }) + .finally(() => { + this.isWorking = false + }) + }) + } } } </script> @@ -229,6 +291,50 @@ width: 100%; display: flex; flex-direction: column; + + .wt_content { + width: 100%; + display: flex; + align-items: center; + flex-wrap: wrap; + + .wt_content_row { + font-size: 14px; + color: rgb(51, 51, 51); + display: flex; + align-items: self-start; + + .wt_content_row_label { + flex-shrink: 0; + font-size: 14px; + color: rgb(51, 51, 51); + } + + .wt_content_row_list { + flex: 1; + display: flex; + align-items: center; + + .wt_content_row_list_img { + width: 106px; + height: 93px; + display: flex; + align-items: center; + justify-content: center; + overflow-x: hidden; + margin-right: 15px; + + &:last-child { + margin: 0 !important; + } + + img { + width: 100%; + } + } + } + } + } .wt_head { width: 100%; @@ -251,50 +357,6 @@ color: $primary-color; display: flex; align-items: center; - } - } - - .wt_content { - width: 100%; - display: flex; - align-items: center; - flex-wrap: wrap; - - .wt_content_row { - font-size: 14px; - color: rgb(51, 51, 51); - display: flex; - align-items: self-start; - - .wt_content_row_label { - flex-shrink: 0; - font-size: 14px; - color: rgb(51, 51, 51); - } - - .wt_content_row_list { - flex: 1; - display: flex; - align-items: center; - - .wt_content_row_list_img { - width: 106px; - height: 93px; - display: flex; - align-items: center; - justify-content: center; - overflow-x: hidden; - margin-right: 15px; - - &:last-child { - margin: 0 !important; - } - - img { - width: 100%; - } - } - } } } } -- Gitblit v1.9.3