From c5109dd484be07f6c49a3c4c4df7ae79b89f4fb0 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 06 六月 2025 19:18:57 +0800
Subject: [PATCH] 开发更新
---
admin/src/views/workorder/components/handleProblem.vue | 210 ++++++++++++++++++++++++++++++++++------------------
1 files changed, 136 insertions(+), 74 deletions(-)
diff --git a/admin/src/views/workorder/components/handleProblem.vue b/admin/src/views/workorder/components/handleProblem.vue
index 6d9faa1..838ab1f 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">
@@ -93,17 +104,17 @@
:file-list="form.workOrderFileList"
accept=".png,.jpg,.jpeg,.PNG,.JPG"
:on-success="getFile"
- :data="{ folder: 'YW_PROBLEM' }"
+ :data="{ folder: 'YW_WORKORDER' }"
list-type="picture-card">
<i class="el-icon-plus"></i>
</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