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/project/components/OperaYwRoomWindow.vue | 172 ++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 115 insertions(+), 57 deletions(-) diff --git a/admin/src/views/project/components/OperaYwRoomWindow.vue b/admin/src/views/project/components/OperaYwRoomWindow.vue index 5fab7dc..1ed0a57 100644 --- a/admin/src/views/project/components/OperaYwRoomWindow.vue +++ b/admin/src/views/project/components/OperaYwRoomWindow.vue @@ -1,67 +1,39 @@ <template> - <GlobalWindow - :title="title" - :visible.sync="visible" - :confirm-working="isWorking" - @confirm="confirm" - > + <GlobalWindow width="720px" :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> <el-form :model="form" ref="form" :rules="rules"> - <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator"> - <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/> + <el-form-item label="鎵�灞為」鐩�" prop="projectId"> + <el-select v-model="form.projectId" @change="changeProject" placeholder="璇烽�夋嫨椤圭洰" clearable> + <el-option v-for="item in projectList" :key="item.id" :label="item.name" :value="item.id"></el-option> + </el-select> </el-form-item> - <el-form-item label="鍒涘缓鏃堕棿" prop="createDate"> - <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker> + <el-form-item label="鎵�灞炴ゼ瀹�" prop="buildingId"> + <el-select v-model="form.buildingId" @change="changeBuild" placeholder="璇烽�夋嫨妤煎畤" clearable> + <el-option v-for="item in buildList" :key="item.id" :label="item.name" :value="item.id"></el-option> + </el-select> </el-form-item> - <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor"> - <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/> - </el-form-item> - <el-form-item label="鏇存柊鏃堕棿" prop="editDate"> - <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker> - </el-form-item> - <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted"> - <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/> - </el-form-item> - <el-form-item label="鍚嶇О" prop="name"> - <el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�" v-trim/> - </el-form-item> - <el-form-item label="澶囨敞" prop="remark"> - <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/> - </el-form-item> - <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status"> - <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" v-trim/> - </el-form-item> - <el-form-item label="鎺掑簭鐮�" prop="sortnum"> - <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/> - </el-form-item> - <el-form-item label="鍥炬爣" prop="imgurl"> - <el-input v-model="form.imgurl" placeholder="璇疯緭鍏ュ浘鏍�" v-trim/> - </el-form-item> - <el-form-item label="鎴块棿缂栧彿" prop="code"> - <el-input v-model="form.code" placeholder="璇疯緭鍏ユ埧闂寸紪鍙�" v-trim/> + <el-form-item label="妤煎眰" prop="floor"> + <el-select v-model="form.floor" placeholder="璇烽�夋嫨妤煎眰" clearable> + <el-option v-for="item in floorList" :key="item.id" :label="item.name" :value="item.id"></el-option> + </el-select> </el-form-item> <el-form-item label="鎴垮彿" prop="roomNum"> - <el-input v-model="form.roomNum" placeholder="璇疯緭鍏ユ埧鍙�" v-trim/> + <el-input v-model="form.roomNum" placeholder="璇疯緭鍏ユ埧鍙�" v-trim /> </el-form-item> - <el-form-item label="鏄惁鎷涘晢 0鍚� 1鏄�" prop="isInvestment"> - <el-input v-model="form.isInvestment" placeholder="璇疯緭鍏ユ槸鍚︽嫑鍟� 0鍚� 1鏄�" v-trim/> + <el-form-item label="鎴块棿缂栧彿" prop="code"> + <el-input v-model="form.code" placeholder="璇疯緭鍏ユ埧闂寸紪鍙�" v-trim /> </el-form-item> - <el-form-item label="寤虹瓚闈㈢Н锛堝钩鏂圭背锛�" prop="area"> - <el-input v-model="form.area" placeholder="璇疯緭鍏ュ缓绛戦潰绉紙骞虫柟绫筹級" v-trim/> + <el-form-item label="鏄惁鎷涘晢" prop="isInvestment"> + <el-switch v-model="form.isInvestment" :active-value="1" :inactive-value="0"> + </el-switch> </el-form-item> - <el-form-item label="璁¤垂闈㈢Н锛堝钩鏂圭背锛�" prop="feeArea"> - <el-input v-model="form.feeArea" placeholder="璇疯緭鍏ヨ璐归潰绉紙骞虫柟绫筹級" v-trim/> + <el-form-item label="寤虹瓚闈㈢Н(m虏)" prop="area"> + <el-input v-model="form.area" placeholder="璇疯緭鍏ュ缓绛戦潰绉�(m虏)" v-trim /> </el-form-item> - <el-form-item label="璁$闈㈢Н锛堝钩鏂圭背锛�" prop="rentArea"> - <el-input v-model="form.rentArea" placeholder="璇疯緭鍏ヨ绉熼潰绉紙骞虫柟绫筹級" v-trim/> + <el-form-item label="璁$闈㈢Н(m虏)" prop="rentArea"> + <el-input v-model="form.rentArea" placeholder="璇疯緭鍏ヨ绉熼潰绉�(m虏)" v-trim /> </el-form-item> - <el-form-item label="妤煎眰鏁�" prop="floor"> - <el-input v-model="form.floor" placeholder="璇疯緭鍏ユゼ灞傛暟" v-trim/> - </el-form-item> - <el-form-item label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_project)" prop="projectId"> - <el-input v-model="form.projectId" placeholder="璇疯緭鍏ユ墍灞為」鐩紪鐮侊紙鍏宠仈yw_project)" v-trim/> - </el-form-item> - <el-form-item label="鎵�灞為」鐩紪鐮侊紙鍏宠仈yw_building)" prop="buildingId"> - <el-input v-model="form.buildingId" placeholder="璇疯緭鍏ユ墍灞為」鐩紪鐮侊紙鍏宠仈yw_building)" v-trim/> + <el-form-item label="璁¤垂闈㈢Н(m虏)" prop="feeArea"> + <el-input v-model="form.feeArea" placeholder="璇疯緭鍏ヨ璐归潰绉�(m虏)" v-trim /> </el-form-item> </el-form> </GlobalWindow> @@ -70,11 +42,15 @@ <script> import BaseOpera from '@/components/base/BaseOpera' import GlobalWindow from '@/components/common/GlobalWindow' +import { getProjectList } from '@/api/project/ywProject' +import { getBuildList } from '@/api/project/ywBuilding' +import { getFloorList } from '@/api/project/yeFloor' +import { detailById } from '@/api/project/ywRoom' export default { name: 'OperaYwRoomWindow', extends: BaseOpera, components: { GlobalWindow }, - data () { + data() { return { // 琛ㄥ崟鏁版嵁 form: { @@ -91,7 +67,7 @@ imgurl: '', code: '', roomNum: '', - isInvestment: '', + isInvestment: 0, area: '', feeArea: '', rentArea: '', @@ -101,14 +77,96 @@ }, // 楠岃瘉瑙勫垯 rules: { - } + projectId: [{ required: true, message: '璇烽�夋嫨椤圭洰鍚嶇О' }], + buildingId: [{ required: true, message: '璇烽�夋嫨椤圭洰鍚嶇О' }], + floor: [{ required: true, message: '璇烽�夋嫨妤煎眰' }], + roomNum: [{ required: true, message: '璇疯緭鍏ユ埧鍙�' }], + isInvestment: [{ required: true, message: '鏄惁鎷涘晢' }], + area: [{ required: true, message: '璇疯緭鍏ュ缓绛戦潰绉�' }], + rentArea: [{ required: true, message: '璇疯緭鍏ヨ绉熼潰绉�' }], + }, + projectList: [], + buildList: [], + floorList: [], } }, - created () { + created() { this.config({ api: '/project/ywRoom', 'field.id': 'id' }) + }, + methods: { + open(title, target, type) { + this.title = title + this.visible = true + this.getProject() + this.buildList = [] + this.floorList = [] + // 鏂板缓缁勭粐 + if (target == null) { + this.$nextTick(() => { + this.$refs.form.resetFields() + this.form[this.configData['field.id']] = null + this.form.type = type + }) + return + } + // 缂栬緫 + this.$nextTick(() => { + this.getDetail(target.id) + }) + }, + confirm() { + if (!this.form.feeArea) { + this.form.feeArea = this.form.rentArea + } + if (this.form.id == null || this.form.id === '') { + this.__confirmCreate() + return + } + this.__confirmEdit() + }, + getDetail(id) { + detailById(id).then(res => { + this.form = res || {} + if (res.projectId) { + getBuildList({ projectId: res.projectId }).then(res => { + this.buildList = res || [] + }) + } + if (res.buildingId) { + getFloorList({ buildingId: res.buildingId }).then(res => { + this.floorList = res || [] + }) + } + }) + }, + getProject() { + getProjectList({}).then(res => { + this.projectList = res || [] + if (this.projectList.length > 0) { + this.$set(this.form, 'projectId', this.projectList[0].id) + this.changeProject(this.projectList[0].id) + } + }) + + }, + changeProject(e) { + this.form.buildingId = '' + getBuildList({ projectId: e }).then(res => { + this.buildList = res || [] + // if(this.buildList.length > 0){ + // this.form.buildingId = this.buildList[0].id + // } + }) + }, + changeBuild(e) { + this.form.floor = '' + getFloorList({ buildingId: e }).then(res => { + this.floorList = res || [] + }) + }, } } </script> -- Gitblit v1.9.3