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