ll
liukangdong
2024-12-02 798dcfbbc3ab2a81d1e873b25e00bf5e4ed03aa7
admin/src/views/project/components/OperaYwRoomWindow.vue
@@ -1,5 +1,5 @@
<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="projectId">
        <el-select v-model="form.projectId" @change="changeProject" placeholder="请选择项目" clearable>
@@ -7,12 +7,14 @@
        </el-select>
      </el-form-item>
      <el-form-item label="所属楼宇" prop="buildingId">
        <el-select v-model="form.buildingId" placeholder="请选择楼宇" clearable>
        <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="floor">
        <el-input v-model="form.floor" placeholder="请输入楼层" v-trim />
        <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 />
@@ -42,6 +44,8 @@
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,
@@ -83,6 +87,7 @@
      },
      projectList: [],
      buildList: [],
      floorList: [],
    }
  },
  created() {
@@ -92,6 +97,39 @@
    })
  },
  methods: {
    open(title, target, type) {
      this.title = title
      this.visible = true
      this.getProject()
      // 新建组织
      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)
      })
    },
    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 || []
@@ -100,10 +138,16 @@
    },
    changeProject(e) {
      this.form.buildingId = ''
      getBuildList({id: e}).then(res => {
      getBuildList({ projectId: e }).then(res => {
        this.buildList = res || []
      })
    },
    changeBuild(e) {
      this.form.floor = ''
      getFloorList({ buildingId: e }).then(res => {
        this.floorList = res || []
      })
    },
  }
}
</script>