Explorar o código

供热区 住户

picasso %!s(int64=3) %!d(string=hai) anos
pai
achega
8f8dc32408

+ 2 - 14
src/views/heatingDistrict/heatingDistrictManage/children/floor/index.vue

@@ -32,21 +32,9 @@
         </el-form>
       </div>
       <el-table :data="tableData.data" v-loading="tableData.loading" style="width: 100%" >
-        <!-- <el-table-column type="selection" width="55" align="center" /> -->
         <el-table-column label="ID" align="center" prop="id" width="60" />
-	    	<el-table-column label="楼宇名称" prop="name" min-width="100" />
-	    	<el-table-column label="楼号" prop="number" min-width="100" />
-	    	<!-- <el-table-column label="单元数" prop="name" /> -->
-        <el-table-column label="小区名称" prop="" min-width="100">
-          <template #default="{ row }">
-            {{ row.ZhgyPlotInfo ? row.ZhgyPlotInfo.name : '-' }}
-          </template>
-        </el-table-column>
-        <el-table-column label="区域名称" prop="" min-width="100">
-          <template #default="{ row }">
-            {{ row.SysOrganization ? row.SysOrganization.name : '-' }}
-          </template>
-        </el-table-column>
+	    	<el-table-column label="楼宇名称" prop="name" />
+	    	<el-table-column label="楼号" prop="number" />
 	    	<el-table-column label="更新时间" prop="createdAt" width="180" />
 				<el-table-column prop="status" label="启用状态" width="120" align="center">
 					<template #default="scope">

+ 1 - 1
src/views/heatingDistrict/heatingDistrictManage/children/regional/index.vue

@@ -55,7 +55,7 @@
         <!-- <el-table-column type="selection" width="55" align="center" /> -->
         <el-table-column label="ID" align="center" prop="id" width="60" />
         <el-table-column label="小区名称" prop="name" min-width="100" />
-        <el-table-column label="组织名称" prop="" min-width="100">
+        <el-table-column label="区域名称" prop="" min-width="100">
 					<template #default="{ row }">
 						{{ row.SysOrganization.name }}
 					</template>

+ 8 - 115
src/views/heatingDistrict/heatingDistrictManage/children/resident/component/edit.vue

@@ -2,66 +2,6 @@
 	<div class="system-edit-dic-container">
 		<el-dialog :title="(ruleForm.id !== 0 ? '修改' : '添加') + '住户'" v-model="dialogVisible" width="550px">
 			<el-form :model="ruleForm" ref="formRef" :rules="rules" size="default" label-width="110px">
-				<el-form-item label="所属组织" prop="organizationId">
-					<el-tree-select
-						v-model="ruleForm.organizationId"
-						:data="orgList"
-						:props="{
-							label: 'name',
-							children: 'children'
-						}"
-						node-key="id"
-						:clearable="true"
-						check-strictly
-						style="width: 100%;"
-						:render-after-expand="true"
-					/>
-				</el-form-item>
-				<el-form-item label="所属换热站" prop="">
-					<el-tree-select
-						v-model="ruleForm.heatStaId"
-						:data="heatList"
-						:props="{
-							label: 'name',
-							children: 'children'
-						}"
-						node-key="id"
-						:clearable="true"
-						check-strictly
-						style="width: 100%;"
-						:render-after-expand="true"
-					/>
-				</el-form-item>
-				<el-form-item label="小区名称" prop="plotId">
-					<el-select v-model="ruleForm.plotId" @change="onPlotChange" placeholder="选择小区名称" filterable clearable size="default" style="width: 100%">
-						<el-option
-							v-for="item in plotList"
-							:key="item.id"
-							:label="item.name"
-							:value="item.id">
-						</el-option>
-					</el-select>
-				</el-form-item>
-				<el-form-item label="楼宇名称" prop="floorId">
-					<el-select v-model="ruleForm.floorId" @change="onFloorChange" placeholder="选择楼宇名称" filterable clearable size="default" style="width: 100%">
-						<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="unitId">
-					<el-select v-model="ruleForm.unitId" placeholder="选择单元名称" filterable clearable size="default" style="width: 100%">
-						<el-option
-							v-for="item in unitList"
-							:key="item.id"
-							:label="item.name"
-							:value="item.id">
-						</el-option>
-					</el-select>
-				</el-form-item>
 				<el-form-item label="住户姓名" prop="name">
 					<el-input v-model="ruleForm.name" placeholder="请输入住户姓名" />
 				</el-form-item>
@@ -133,27 +73,22 @@ export default defineComponent({
 			},
 			rules: {
 				name: [{ required: true, message: '住户名称不能为空', trigger: ['blur', 'change'] }],
-				organizationId: [{ required: true, message: '所属组织不能为空', trigger: ['blur', 'change'] }],
-				plotId: [{ required: true, message: '小区名称不能为空', trigger: ['blur', 'change'] }],
-				floorId: [{ required: true, message: '楼宇名称不能为空', trigger: ['blur', 'change'] }],
-				unitId: [{ required: true, message: '单元名称不能为空', trigger: ['blur', 'change'] }],
-				heatStaId: [{ required: true, message: '所属换热站不能为空', trigger: ['blur', 'change'] }],
 				floorLevel: [{ required: true, message: '楼层不能为空', trigger: ['blur', 'change'] }],
 				roomNumber: [{ required: true, message: '房间号不能为空', trigger: ['blur', 'change'] }],
 				phone: [{ required: true, message: '手机号码不能为空', trigger: ['blur', 'change'] }],
 				forRealArea: [{ required: true, message: '实供面积不能为空', trigger: ['blur', 'change'] }],
 				buildingArea: [{ required: true, message: '建筑面积不能为空', trigger: ['blur', 'change'] }],
-			},
-			orgList: [],
-			plotList: [],
-			floorList: [],
-			unitList: [],
-			heatList: []
+			}
 		})
 		// 打开弹窗
-		const openDialog = (row: RuleFormState | null) => {
+		const openDialog = (row: any, params: any) => {
 			resetForm()
-			queryTree()
+			if (params) {
+				state.ruleForm = {
+					...state.ruleForm,
+					...params
+				}
+			}
 			if (row) {
 				(state.ruleForm as any).id = row.id
 				getDetail()
@@ -187,16 +122,6 @@ export default defineComponent({
 		const onCancel = () => {
 			closeDialog()
 		}
-		const queryTree = () => {
-			heatApi.heatStation.getList({
-					name: '',
-					code: '',
-					status: -1
-				})
-				.then((res: any) => {
-					state.heatList = res || [];
-				});
-		};
 		const getDetail = () => {
 			api.resident.detail(state.ruleForm.id)
 				.then((res: any) => {
@@ -206,36 +131,6 @@ export default defineComponent({
 					}
 				})
 		}
-		// 获取楼宇
-		const getFloorList = () => {
-			api.floor.allList({ plotId: state.ruleForm.plotId })
-				.then((res: any) => {
-					state.floorList = res.Info || []
-				})
-		}
-		// 获取单元
-		const getUnitList = () => {
-			api.unit.getListByFloorId({ floorId: state.ruleForm.floorId })
-				.then((res: any) => {
-					(state.unitList as any) = res ? [res] : []
-				})
-		}
-		const onPlotChange = () => { 
-			state.floorList = []
-			state.unitList = []
-			state.ruleForm.floorId = ''
-			state.ruleForm.unitId = ''
-			if (state.ruleForm.plotId) {
-				getFloorList()
-			}
-		}
-		const onFloorChange = () => {
-			state.unitList = []
-			state.ruleForm.unitId = ''
-			if (state.ruleForm.floorId) {
-				getUnitList()
-			}
-		}
 		// 新增
 		const onSubmit = () => {
 			const formWrap = unref(formRef) as any
@@ -269,8 +164,6 @@ export default defineComponent({
 			onCancel,
 			onSubmit,
 			formRef,
-			onPlotChange,
-			onFloorChange,
 			...toRefs(state)
 		}
 	}

+ 31 - 157
src/views/heatingDistrict/heatingDistrictManage/children/resident/index.vue

@@ -1,55 +1,8 @@
 <template>
   <div class="system-dic-container">
-    <el-card shadow="hover">
+    <div>
       <div class="system-user-search mb15">
         <el-form :model="tableData.param" ref="queryRef" :inline="true" label-width="68px">
-          <el-form-item label="所属组织" prop="organizationId">
-						<el-tree-select
-							v-model="tableData.param.organizationId"
-							:data="orgList"
-							:props="{
-								label: 'name',
-								children: 'children'
-							}"
-							placeholder="请选择"
-							node-key="id"
-							:clearable="true"
-							check-strictly
-							style="width: 100%;"
-							:render-after-expand="true"
-							size="default"
-						/>
-          </el-form-item>
-          <el-form-item label="小区名称" prop="plotId">
-            <el-select v-model="tableData.param.plotId" @change="onPlotChange" placeholder="选择小区名称" filterable clearable size="default">
-							<el-option
-								v-for="item in plotList"
-								:key="item.id"
-								:label="item.name"
-								:value="item.id">
-							</el-option>
-						</el-select>
-          </el-form-item>
-          <el-form-item label="楼宇名称" prop="floorId">
-            <el-select v-model="tableData.param.floorId" @change="onFloorChange" placeholder="选择楼宇名称" filterable clearable size="default">
-							<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="unitId">
-            <el-select v-model="tableData.param.unitId" placeholder="选择单元名称" filterable clearable size="default">
-							<el-option
-								v-for="item in unitList"
-								:key="item.id"
-								:label="item.name"
-								:value="item.id">
-							</el-option>
-						</el-select>
-          </el-form-item>
           <el-form-item label="住户名称" prop="name">
             <el-input v-model="tableData.param.name" placeholder="请输入住户名称" clearable size="default" style="width: 240px" @keyup.enter="queryList" />
           </el-form-item>
@@ -72,49 +25,17 @@
               </el-icon>
               新增
             </el-button>
-            <!-- <el-button size="default" type="danger" class="ml10" @click="onRowDel(null)">
-              <el-icon>
-                <ele-Delete />
-              </el-icon>
-              删除
-            </el-button> -->
           </el-form-item>
         </el-form>
       </div>
       <el-table :data="tableData.data" v-loading="tableData.loading" style="width: 100%" >
-        <!-- <el-table-column type="selection" width="55" align="center" /> -->
         <el-table-column label="ID" align="center" prop="id" width="60" />
-        <el-table-column label="组织名称" prop="" min-width="100">
-          <template #default="{ row }">
-            {{ row.organizationInfo.name }}
-          </template>
-        </el-table-column>
-        <el-table-column label="小区名称" prop="" min-width="100">
-          <template #default="{ row }">
-            {{ row.plotInfo.name }}
-          </template>
-        </el-table-column>
-        <el-table-column label="楼宇名称" prop="" min-width="100">
-          <template #default="{ row }">
-            {{ row.floorInfo.name }}
-          </template>
-        </el-table-column>
-	    	<el-table-column label="单元名称" prop="name" min-width="100">
-          <template #default="{ row }">
-            {{ row.unitInfo.name }}
-          </template>
-        </el-table-column>
-	    	<el-table-column label="单元号" prop="number" min-width="100">
-          <template #default="{ row }">
-            {{ row.unitInfo.number }}
-          </template>
-        </el-table-column>
-	    	<el-table-column label="住户姓名" prop="name" min-width="100" />
 	    	<el-table-column label="楼层" prop="floorLevel" min-width="100" />
 	    	<el-table-column label="房间号" prop="roomNumber" min-width="100" />
-	    	<el-table-column label="电话号码" prop="phone" min-width="100" />
 	    	<el-table-column label="建筑面积" prop="buildingArea" min-width="100" />
 	    	<el-table-column label="实供面积" prop="forRealArea" min-width="100" />
+	    	<el-table-column label="住户姓名" prop="name" min-width="100" />
+	    	<el-table-column label="电话号码" prop="phone" min-width="100" />
 	    	<el-table-column label="更新时间" prop="createdAt" width="180"/>
 				<el-table-column prop="status" label="启用状态" width="120" align="center">
 					<template #default="scope">
@@ -130,14 +51,14 @@
         </el-table-column>
       </el-table>
       <pagination v-show="tableData.total>0" :total="tableData.total" v-model:page="tableData.param.pageNum" v-model:limit="tableData.param.pageSize" @pagination="queryList" />
-    </el-card>
+    </div>
     <EditDic ref="editDicRef" @queryList="queryList" />
     <Detail ref="detailRef"  />
   </div>
 </template>
 
 <script lang="ts">
-import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue';
+import { toRefs, reactive, onMounted, ref, defineComponent, watch } from 'vue';
 import { ElMessageBox, ElMessage, FormInstance } from 'element-plus';
 import EditDic from './component/edit.vue';
 import Detail from './component/detail.vue';
@@ -147,7 +68,21 @@ import systemApi from '/@/api/system';
 export default defineComponent({
 	name: 'loop',
 	components: { EditDic,Detail },
-	setup() {
+	props: {
+		organizationId: {
+			default: ''
+		},
+		plotId: {
+			default: ''
+		},
+		floorId: {
+			default: ''
+		},
+		unitId: {
+			default: ''
+		}
+	},
+	setup(prop) {
 		const addDicRef = ref();
 		const editDicRef = ref();
 		const detailRef=ref();
@@ -170,45 +105,6 @@ export default defineComponent({
 				},
 			},
 		});
-		// 组织
-		const orgList = ref([])
-		// 小区
-		const plotList = ref([])
-		// 楼宇
-		const floorList = ref([])
-		// 单元
-		const unitList = ref([])
-		// 初始化表格数据
-		const initTableData = () => {
-			queryList();
-		};
-		// 获取组织
-		const getOrgList = () => {
-			systemApi.org.getList({ name: '', status: -1 }).then((res: any) => {
-				orgList.value = res;
-			});
-		}
-		// 获取区域
-		const getPlotList = () => {
-			api.regionalManage.allList({})
-				.then((res: any) => {
-					plotList.value = res.Info || []
-				})
-		}
-		// 获取楼宇
-		const getFloorList = () => {
-			api.floor.allList({})
-				.then((res: any) => {
-					floorList.value = res.Info || []
-				})
-		}
-		// 获取单元
-		const getUnitList = () => {
-			api.unit.getListByFloorId({ floorId: state.tableData.param.floorId })
-				.then((res: any) => {
-					(unitList.value as any) = res ? [res] : []
-				})
-		}
 		const queryList = () => {
 			state.tableData.loading = true
 			api.resident.getList(state.tableData.param).then((res: any) => {
@@ -218,31 +114,22 @@ export default defineComponent({
 				state.tableData.loading = false
 			});
 		};
-		const onPlotChange = () => { 
-			floorList.value = []
-			unitList.value = []
-			state.tableData.param.floorId = ''
-			state.tableData.param.unitId = ''
-			if (state.tableData.param.plotId) {
-				getFloorList()
-			}
-		}
-		const onFloorChange = () => {
-			unitList.value = []
-			state.tableData.param.unitId = ''
-			if (state.tableData.param.floorId) {
-				getUnitList()
-			}
-		}
+		
+		watch(() => prop.unitId, () => {
+			state.tableData.param.organizationId = prop.organizationId
+			state.tableData.param.unitId = prop.unitId
+			queryList()
+		}, {
+			deep: true,
+			immediate: true
+		})
 		//查看详情
 		const onOpenDetail=(row: any)=>{
 			detailRef.value.openDialog(row);
 		}
 		// 打开新增修改弹窗
 		const onOpenDialog = (row: any) => {
-			editDicRef.value.orgList = orgList.value
-			editDicRef.value.plotList = plotList.value
-			editDicRef.value.openDialog(row);
+			editDicRef.value.openDialog(row, { organizationId: prop.organizationId, floorId: prop.floorId });
 		};
 		
 		// 状态修改
@@ -279,14 +166,7 @@ export default defineComponent({
 				})
 				.catch(() => {});
 		};
-		// 页面加载时
-		onMounted(() => {
-			initTableData();
-			getOrgList();
-			getPlotList()
-			// getFloorList()
-			// getUnitList()
-		});
+
 		/** 重置按钮操作 */
 		const resetQuery = (formEl: FormInstance | undefined) => {
 			if (!formEl) return;
@@ -304,12 +184,6 @@ export default defineComponent({
 			onRowDel,
 			queryList,
 			resetQuery,
-			orgList,
-			plotList,
-			floorList,
-			unitList,
-			onPlotChange,
-			onFloorChange,
 			handleStatusChange,
 			...toRefs(state),
 		};

+ 2 - 7
src/views/heatingDistrict/heatingDistrictManage/children/unit/index.vue

@@ -32,14 +32,9 @@
         </el-form>
       </div>
       <el-table :data="tableData.data" v-loading="tableData.loading" style="width: 100%" >
-        <!-- <el-table-column type="selection" width="55" align="center" /> -->
         <el-table-column label="ID" align="center" prop="id" width="60" />
-        <el-table-column label="区域名称" prop="organizationInfo.name" min-width="100" />
-        <el-table-column label="小区名称" prop="plotInfo.name" min-width="100" />
-        <el-table-column label="楼宇名称" prop="floorInfo.name" min-width="100" />
-        <el-table-column label="楼号" prop="floorInfo.number" min-width="100" />
-	    	<el-table-column label="单元名称" prop="name" min-width="100" />
-	    	<el-table-column label="单元号" prop="number" min-width="100" />
+	    	<el-table-column label="单元名称" prop="name" />
+	    	<el-table-column label="单元号" prop="number" />
 	    	<el-table-column label="更新时间" prop="updatedAt" width="180" />
 				<el-table-column prop="status" label="启用状态" width="120" align="center">
 					<template #default="scope">

+ 1 - 1
src/views/heatingDistrict/heatingDistrictManage/index.vue

@@ -27,7 +27,7 @@
 			<!-- 单元 -->
 			<Unit v-else-if="curNode.orgType === 'floor'" :organizationId="curNode.organizationId" :floorId="curNode.id"/>
 			<!-- 住户 -->
-			<Resident v-else-if="curNode.orgType === 'unit'" :organizationId="curNode.organizationId" :plotId="curNode.id"/>
+			<Resident v-else-if="curNode.orgType === 'unit'" :organizationId="curNode.organizationId" :unitId="curNode.id"/>
 		</div>
   </div>
 </template>