Jelajahi Sumber

Merge branch 'master' of http://git.mydig.net/Sagoo-Cloud/sagoo-admin-ui

vera_min 3 tahun lalu
induk
melakukan
c54d2a55f0

+ 5 - 4
src/utils/request.ts

@@ -30,8 +30,9 @@ service.interceptors.response.use(
 		// 对响应数据做点什么
 		const res = response.data;
 		const code = response.data.code
-		if (code === 401) {
-			ElMessageBox.alert('登录状态已过期,请重新登录', '提示', { confirmButtonText: '确定' })
+		if (code === 401 || code === 51) {
+			ElMessageBox.alert('登录状态已过期,请重新登录', '提示',
+				{ confirmButtonText: '确定', showCancelButton: false, closeOnHashChange: false, closeOnPressEscape: false, closeOnClickModal: false, showClose: false })
 				.then(() => {
 					Session.clear(); // 清除浏览器全部临时缓存
 					window.location.href = '/'; // 去登录页
@@ -51,7 +52,7 @@ service.interceptors.response.use(
 				}
 			}
 			if (res.data?.Data) {
-				return res.data.Data 
+				return res.data.Data
 			}
 			if (res.data?.Data === undefined) {
 				return res.data
@@ -97,7 +98,7 @@ export function put(url: string, data?: any): any {
 		data
 	})
 }
-export function del(url: string, data?: any): any{
+export function del(url: string, data?: any): any {
 	return service({
 		url,
 		method: "delete",

+ 30 - 23
src/views/datahub/source/component/editNode.vue

@@ -316,39 +316,46 @@ export default defineComponent({
 				str = str.substr(0, str.length - 1);
 				state.ruleForm.value=str;
 				state.dialogVisible = false;
-				//console.log(getOrgIdArr(state.jsonData,str));
+				var con={
+					...
+					state.jsonData
+				}
+				var jsonstr=getOrgIdArr([],str,con);
+				state.ruleForm.value=jsonstr.join('.');
+			
 			}
 			
 		};
 
-		const getOrgIdArr=(obj, child, parent)=>{
+		const getOrgIdArr=(parents, childNode, treeData)=>{
 			
-			for (var key in obj) { 
-				console.log(key);
-				if (child === key) {
-					return parent; 
-				} else { 
-					return getOrgIdArr(obj[key], child, obj);
-				}
-			} 
+			if (treeData instanceof Object) {
+			
+				for (var key in treeData) {
+					
+						// 父节点查询条件
+						if (key === childNode) {
+							// 如果找到结果,保存当前节点
+							parents.push(key)
+							// 用当前节点再去原数据查找当前节点的父节点
+							//getOrgIdArr(parents, childNode,treeData[key])
+							break
+						} else {
+							if (treeData[key] instanceof Object) {
+							//	没找到,遍历该节点的子节点
+								parents.push(key)
+								getOrgIdArr(parents, childNode, treeData[key])
+								break
+							}
+						}
+					}
+			}
+				return parents
 
 		};
 
-		const findKey=(obj, key)=>{
-			var queue = Object.keys(obj).map(k => ({item: obj[k], parent: obj, key: k}))
-                while(queue.length > 0) {
-                    var top = queue.shift()
-                    if (top.key === key) {
-                        return top.parent
-                    }
-                    if (typeof top.item === 'object') {
-                        queue.push(...Object.keys(top.item).map(k => ({item: top.item[k], parent: top.item, key: k})))
-                    }
-                }
-		}
 
 		return {
-			findKey,
 			onKeyclick,
 			getOrgIdArr,
 			addRule,

+ 268 - 0
src/views/energyAnalysis/heatStationWaterAnalysis/index.vue

@@ -0,0 +1,268 @@
+<template>
+  <div class="system-dic-container">
+    <el-card shadow="hover">
+      <div class="system-user-search mb15">
+        <el-form :model="searchParams" ref="queryRef" :inline="true" label-width="120px">
+          <el-form-item label="环路名称" prop="plotId">
+            <el-select v-model="searchParams.plotId" placeholder="选择环路名称" filterable clearable size="default">
+							<el-option
+								v-for="item in []"
+								:key="item.id"
+								:label="item.name"
+								:value="item.id">
+							</el-option>
+						</el-select>
+          </el-form-item>
+					<el-form-item label="所属换热站" prop="heatStaId">
+						<el-tree-select
+							v-model="searchParams.heatStaId"
+							:data="state.heatList"
+							:props="{
+								label: 'name',
+								children: 'children'
+							}"
+							node-key="id"
+							:clearable="true"
+							check-strictly
+							size="default"
+							style="width: 100%;"
+							placeholder="请选择"
+							:render-after-expand="true"
+						/>
+					</el-form-item>
+          <el-form-item label="负责人" prop="plotId">
+            <el-select v-model="searchParams.plotId" placeholder="选择负责人" filterable clearable size="default">
+							<el-option
+								v-for="item in []"
+								:key="item.id"
+								:label="item.name"
+								:value="item.id">
+							</el-option>
+						</el-select>
+          </el-form-item>
+          <el-form-item label="时间间隔(秒)" prop="plotId">
+            <el-input-number v-model="searchParams.xx"></el-input-number>
+          </el-form-item>
+          <el-form-item label="流量限值" prop="plotId">
+            <el-input-number v-model="searchParams.xx"></el-input-number>
+          </el-form-item>
+          <el-form-item>
+            <el-button size="default" type="primary" class="ml10" @click="queryList">
+              <el-icon>
+                <ele-Search />
+              </el-icon>
+              查询
+            </el-button>
+            <el-button size="default" @click="resetQuery(queryRef)">
+              <el-icon>
+                <ele-Refresh />
+              </el-icon>
+              重置
+            </el-button>
+            <el-button size="default" type="success" class="ml10" @click="onOpenDialog()">
+              <el-icon>
+                <ele-FolderAdd />
+              </el-icon>
+              导入
+            </el-button>
+          </el-form-item>
+        </el-form>
+      </div>
+
+			<div style="height: 300px" ref="barChartRef"></div>
+			<div style="height: 300px" ref="lineChartRef"></div>
+    </el-card>
+  </div>
+</template>
+
+<script lang="ts" setup>
+import { toRefs, reactive, onMounted, ref, watch, nextTick } from 'vue';
+import { ElMessageBox, ElMessage, FormInstance } from 'element-plus';
+import * as echarts from 'echarts';
+import { useStore } from '/@/store/index';
+import api from '/@/api/heatingDistrict';
+import heatApi from '/@/api/heatStation';
+
+let global: any = {
+	barChart: null,
+	lineChart: null,
+	dispose: [null, '', undefined],
+};
+
+const queryRef = ref();
+const barChartRef = ref();
+const lineChartRef = ref();
+const searchParams = ref({
+
+})
+const store = useStore();
+const state = reactive({
+	myCharts: [],
+	charts: {
+		theme: '',
+		bgColor: '',
+		color: '#303133',
+	},
+	
+	heatList: []
+});
+
+const queryTree = () => {
+	heatApi.heatStation.getList({
+			name: '',
+			code: '',
+			status: -1
+		})
+		.then((res: any) => {
+			state.heatList = res || [];
+		});
+};
+// 页面加载时
+onMounted(() => {
+	queryTree()
+});
+/** 重置按钮操作 */
+const resetQuery = (formEl: FormInstance | undefined) => {
+	if (!formEl) return;
+	formEl.resetFields();
+	// queryList();
+};
+
+
+// 初始化图表
+const initBarChart = () => {
+	if (!global.dispose.some((b: any) => b === global.barChart)) global.barChart.dispose();
+	global.barChart = <any>echarts.init(barChartRef.value, state.charts.theme);
+	const option =  {
+		tooltip: {
+			trigger: 'axis',
+			axisPointer: {
+				type: 'shadow'
+			}
+		},
+		legend: {},
+		grid: {
+			left: '3%',
+			right: '4%',
+			bottom: '3%',
+			containLabel: true
+		},
+		xAxis: [
+			{
+				type: 'category',
+				data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+			}
+		],
+		yAxis: [
+			{
+				type: 'value'
+			}
+		],
+		series: [
+			{
+				name: '供水流量',
+				type: 'bar',
+				emphasis: {
+					focus: 'series'
+				},
+				data: [320, 332, 301, 334, 390, 330, 320]
+			},
+			{
+				name: '回水流量',
+				type: 'bar',
+				stack: 'Ad',
+				emphasis: {
+					focus: 'series'
+				},
+				data: [120, 132, 101, 134, 90, 230, 210]
+			}
+		]
+	};
+	(<any>global.barChart).setOption(option);
+	(<any>state.myCharts).push(global.barChart);
+}
+// 初始化图标
+const initLineChart = () => {
+	if (!global.dispose.some((b: any) => b === global.lineChart)) global.lineChart.dispose();
+	global.lineChart = <any>echarts.init(lineChartRef.value, state.charts.theme);
+	const option = {
+		backgroundColor: state.charts.bgColor,
+		grid: { top: 70, right: 20, bottom: 30, left: 30 },
+		tooltip: { trigger: 'axis' },
+		legend: { data: ['一网回水压力', '一网供水压力'] },
+		xAxis: {
+			data: ['环路1', '环路2', '环路3', '环路4', '环路5'],
+		},
+		yAxis: [
+			{
+				type: 'value',
+				name: '条数',
+				splitLine: { show: true, lineStyle: { type: 'dashed', color: '#f5f5f5' } },
+			},
+		],
+		series: [
+			{
+				name: '一网回水压力',
+				type: 'line',
+				symbolSize: 6,
+				symbol: 'circle',
+				smooth: true,
+				data: [41.1, 30.4, 65.1, 53.3, 53.3],
+				lineStyle: { color: '#fe9a8b' },
+				itemStyle: { color: '#fe9a8b', borderColor: '#fe9a8b' }
+			},
+			{
+				name: '一网供水压力',
+				type: 'line',
+				symbolSize: 6,
+				symbol: 'circle',
+				smooth: true,
+				data: [24.1, 7.2, 15.5, 42.4, 42.4],
+				lineStyle: { color: '#9E87FF' },
+				itemStyle: { color: '#9E87FF', borderColor: '#9E87FF' }
+			}
+		]
+	};
+	(<any>global.lineChart).setOption(option);
+	(<any>state.myCharts).push(global.lineChart);
+}
+
+// 批量设置 echarts resize
+const initEchartsResizeFun = () => {
+	nextTick(() => {
+		for (let i = 0; i < state.myCharts.length; i++) {
+			setTimeout(() => {
+				(<any>state.myCharts[i]).resize();
+			}, i * 1000);
+		}
+	});
+};
+// 批量设置 echarts resize
+const initEchartsResize = () => {
+	window.addEventListener('resize', initEchartsResizeFun);
+};
+// 页面加载时
+onMounted(() => {
+	initEchartsResize();
+});
+
+// 监听 vuex 中是否开启深色主题
+watch(
+	() => store.state.themeConfig.themeConfig.isIsDark,
+	(isIsDark) => {
+		nextTick(() => {
+			state.charts.theme = isIsDark ? 'dark' : '';
+			state.charts.bgColor = isIsDark ? 'transparent' : '';
+			state.charts.color = isIsDark ? '#dadada' : '#303133';
+			setTimeout(() => {
+				initBarChart();
+				initLineChart();
+			}, 500)
+		});
+	},
+	{
+		deep: true,
+		immediate: true,
+	}
+);
+</script>

+ 249 - 0
src/views/energyAnalysis/loopEnergyCostPerformanceAppraisal/index.vue

@@ -0,0 +1,249 @@
+<template>
+  <div class="system-dic-container">
+    <el-card shadow="hover">
+      <div class="system-user-search mb15">
+        <el-form :model="searchParams" ref="queryRef" :inline="true" label-width="120px">
+          <el-form-item label="环路名称" prop="plotId">
+            <el-select v-model="searchParams.plotId" placeholder="选择环路名称" filterable clearable size="default">
+							<el-option
+								v-for="item in []"
+								:key="item.id"
+								:label="item.name"
+								:value="item.id">
+							</el-option>
+						</el-select>
+          </el-form-item>
+          <el-form-item label="负责人" prop="plotId">
+            <el-select v-model="searchParams.plotId" placeholder="选择负责人" filterable clearable size="default">
+							<el-option
+								v-for="item in []"
+								:key="item.id"
+								:label="item.name"
+								:value="item.id">
+							</el-option>
+						</el-select>
+          </el-form-item>
+          <el-form-item>
+            <el-button size="default" type="primary" class="ml10" @click="queryList">
+              <el-icon>
+                <ele-Search />
+              </el-icon>
+              查询
+            </el-button>
+            <el-button size="default" @click="resetQuery(queryRef)">
+              <el-icon>
+                <ele-Refresh />
+              </el-icon>
+              重置
+            </el-button>
+            <el-button size="default" type="success" class="ml10" @click="onOpenDialog()">
+              <el-icon>
+                <ele-FolderAdd />
+              </el-icon>
+              导入
+            </el-button>
+          </el-form-item>
+        </el-form>
+      </div>
+			<div class="title">环路数据统计</div>
+      <el-table :data="[]" style="width: 100%" >
+        <el-table-column type="index" label="序号" align="center" width="60" />
+	    	<el-table-column label="环路名称" prop="name" />
+	    	<el-table-column label="区域负责人" prop="number" />
+	    	<el-table-column label="总热耗" prop="number" />
+	    	<el-table-column label="热单耗" prop="number" />
+	    	<el-table-column label="总耗电" prop="number" />
+	    	<el-table-column label="电单耗" prop="number" />
+	    	<el-table-column label="总耗水" prop="number" />
+	    	<el-table-column label="水单耗" prop="number" />
+      </el-table>
+			<div class="title mt20">能耗红榜</div>
+			<div class="chart-grid">
+				<div style="height: 250px" ref="redChartOneRef"></div>
+				<div style="height: 250px" ref="redChartTwoRef"></div>
+				<div style="height: 250px" ref="redChartThreeRef"></div>
+			</div>
+			<div class="title mt20">能耗黑榜</div>
+			<div class="chart-grid">
+				<div style="height: 250px" ref="blackChartOneRef"></div>
+				<div style="height: 250px" ref="blackChartTwoRef"></div>
+				<div style="height: 250px" ref="blackChartThreeRef"></div>
+			</div>
+    </el-card>
+  </div>
+</template>
+
+<script lang="ts" setup>
+import { toRefs, reactive, onMounted, ref, watch, nextTick } from 'vue';
+import { ElMessageBox, ElMessage, FormInstance } from 'element-plus';
+import * as echarts from 'echarts';
+import { useStore } from '/@/store/index';
+import api from '/@/api/heatingDistrict';
+import heatApi from '/@/api/heatStation';
+
+let global: any = {
+	redChartOneRef: null,
+	redChartTwoRef: null,
+	redChartThreeRef: null,
+	blackChartOneRef: null,
+	blackChartTwoRef: null,
+	blackChartThreeRef: null,
+	dispose: [null, '', undefined],
+};
+
+const queryRef = ref();
+const redChartOneRef = ref();
+const redChartTwoRef = ref();
+const redChartThreeRef = ref();
+const blackChartOneRef = ref();
+const blackChartTwoRef = ref();
+const blackChartThreeRef = ref();
+const searchParams = ref({
+
+})
+const store = useStore();
+const state = reactive({
+	myCharts: [],
+	charts: {
+		theme: '',
+		bgColor: '',
+		color: '#303133',
+	},
+	
+	heatList: []
+});
+
+const queryTree = () => {
+	heatApi.heatStation.getList({
+			name: '',
+			code: '',
+			status: -1
+		})
+		.then((res: any) => {
+			state.heatList = res || [];
+		});
+};
+// 页面加载时
+onMounted(() => {
+	queryTree()
+});
+/** 重置按钮操作 */
+const resetQuery = (formEl: FormInstance | undefined) => {
+	if (!formEl) return;
+	formEl.resetFields();
+	// queryList();
+};
+
+let chartArr = [
+	{ globalKey: 'redChartOneRef', refKey: redChartOneRef },
+	{ globalKey: 'redChartTwoRef', refKey: redChartTwoRef },
+	{ globalKey: 'redChartThreeRef', refKey: redChartThreeRef },
+	{ globalKey: 'blackChartOneRef', refKey: blackChartOneRef },
+	{ globalKey: 'blackChartTwoRef', refKey: blackChartTwoRef },
+	{ globalKey: 'blackChartThreeRef', refKey: blackChartThreeRef }
+]
+
+const initChart = () => {
+	chartArr.forEach((item) => {
+		initBarChart(item.globalKey, item.refKey)
+	})
+}
+
+// 初始化图表
+const initBarChart = (gk: string, refKey: any) => {
+	if (!global.dispose.some((b: any) => b === global[gk])) global[gk].dispose();
+	global[gk] = <any>echarts.init(refKey.value, state.charts.theme);
+	const option = {
+		tooltip: {
+			trigger: 'axis',
+			axisPointer: {
+				type: 'shadow'
+			}
+		},
+		legend: {},
+		grid: {
+			left: '3%',
+			right: '4%',
+			bottom: '3%',
+			containLabel: true
+		},
+		xAxis: [
+			{
+				type: 'category',
+				data: ['换热站1', '换热站2', '换热站3', '换热站4', '换热站5', '换热站6', '换热站7']
+			}
+		],
+		yAxis: [
+			{
+				type: 'value'
+			}
+		],
+		series: [
+			{
+				name: '供水流量',
+				type: 'bar',
+				emphasis: {
+					focus: 'series'
+				},
+				data: [320, 332, 301, 334, 390, 330, 320]
+			}
+		]
+	};
+	(<any>global[gk]).setOption(option);
+	(<any>state.myCharts).push(global[gk]);
+}
+
+// 批量设置 echarts resize
+const initEchartsResizeFun = () => {
+	nextTick(() => {
+		for (let i = 0; i < state.myCharts.length; i++) {
+			setTimeout(() => {
+				(<any>state.myCharts[i]).resize();
+			}, i * 1000);
+		}
+	});
+};
+// 批量设置 echarts resize
+const initEchartsResize = () => {
+	window.addEventListener('resize', initEchartsResizeFun);
+};
+// 页面加载时
+onMounted(() => {
+	initEchartsResize();
+});
+
+// 监听 vuex 中是否开启深色主题
+watch(
+	() => store.state.themeConfig.themeConfig.isIsDark,
+	(isIsDark) => {
+		nextTick(() => {
+			state.charts.theme = isIsDark ? 'dark' : '';
+			state.charts.bgColor = isIsDark ? 'transparent' : '';
+			state.charts.color = isIsDark ? '#dadada' : '#303133';
+			setTimeout(() => {
+				initChart();
+			}, 500)
+		});
+	},
+	{
+		deep: true,
+		immediate: true,
+	}
+);
+</script>
+
+
+<style lang="scss" scoped>
+.title {
+	font-size: 16px;
+	font-weight: bold;
+}
+.chart-grid {
+	display: grid;
+	grid-template-columns: repeat(3, 1fr);
+	grid-column-gap: 10px;
+}
+.mt20 {
+	margin-top: 20px;
+}
+</style>

+ 24 - 14
src/views/heatStation/heatStation/component/edit.vue

@@ -30,6 +30,16 @@
 					<el-radio v-model="ruleForm.status" :label="1">在线</el-radio>
 					<el-radio v-model="ruleForm.status" :label="0">不在线</el-radio>
 				</el-form-item>
+				<el-form-item label="数据模型" prop="dataTemplateIds">
+					<el-select v-model="ruleForm.dataTemplateIds" multiple clearable style="width: 100%;" placeholder="请选择">
+						<el-option
+							v-for="item in dataHubList"
+							:key="item.id"
+							:label="item.name"
+							:value="item.id">
+						</el-option>
+					</el-select>
+				</el-form-item>
         <el-form-item label="地图展示" prop="decade">
 					<div>
 						<span>经度:{{ ruleForm.lnt ? `${ruleForm.lnt},` : '' }}</span>
@@ -54,8 +64,8 @@
 <script lang="ts">
 import { reactive, toRefs, defineComponent, ref, unref, nextTick, onMounted } from 'vue';
 import api from '/@/api/heatStation';
+import datahubApi from '/@/api/datahub';
 import { ElMessage } from 'element-plus';
-import { Console } from 'console';
 interface RuleFormState {
 	id: number;
 	parentId: number | string;
@@ -94,11 +104,13 @@ export default defineComponent({
 				status: [{ required: true, message: '状态不能为空', trigger: 'blur' }]
 			},
 			treeData: [],
+			dataHubList: [],
 			mapLocal: null as any
 		})
 		// 打开弹窗
 		const openDialog = (row: any, tree: any) => {
 			resetForm()
+			queryDataHubList()
 			state.treeData = tree
 
 			if (row) {
@@ -109,22 +121,20 @@ export default defineComponent({
 			}
 			nextTick(() => {
 				initMap()
-				// let BMap = (window as any).BMap
-				// if (BMap) {
-				// 	let geolocation = new BMap.Geolocation();//返回用户当前的位置
-				// 	geolocation.getCurrentPosition(function(r: any) {
-				// 		console.log(r)
-						
-				// 		initMap(r.longitude, r.latitude)
-				// 		// state.center.lat = r.latitude
-				// 		// state.center.lng = r.longitude
-				// 		// latitude: 22.322230460245
-				// 		// longitude: 114.1808934593
-				// 	});
-				// }
 			}) 
 			state.dialogVisible = true
 		}
+		
+		const queryDataHubList = () => {
+			datahubApi.template.getList({
+				pageNum: 1,
+				pageSize: 50,
+				name: '',
+				key: '',
+			}).then((res: any) => {
+				state.dataHubList = res.list || [];
+			});
+		};
 		const resetForm = () => {
 			state.ruleForm = {
 				id: 0,

+ 23 - 0
src/views/heatStation/loop/component/edit.vue

@@ -71,6 +71,16 @@
 					<el-radio v-model="ruleForm.status" :label="1">在线</el-radio>
 					<el-radio v-model="ruleForm.status" :label="0">不在线</el-radio>
 				</el-form-item>
+				<el-form-item label="数据模型" prop="dataTemplateIds">
+					<el-select v-model="ruleForm.dataTemplateIds" multiple clearable style="width: 100%;" placeholder="请选择">
+						<el-option
+							v-for="item in dataHubList"
+							:key="item.id"
+							:label="item.name"
+							:value="item.id">
+						</el-option>
+					</el-select>
+				</el-form-item>
         <el-form-item label="编辑路线信息" prop="">
 					<div class="mb10">
 						<el-button type="primary" @click="onAddPoint">添加途经点</el-button>
@@ -103,6 +113,7 @@
 <script lang="ts">
 import { reactive, toRefs, defineComponent, ref, unref, nextTick } from 'vue';
 import api from '/@/api/heatStation';
+import datahubApi from '/@/api/datahub';
 import { ElMessage } from 'element-plus';
 interface Point {
 	sort?: number;
@@ -163,11 +174,13 @@ export default defineComponent({
 			mapLocal: null as any, // 地图搜索
 			pointList: [] as any,
 			pointIndex: -1,
+			dataHubList: []
 		})
 		// 打开弹窗
 		const openDialog = (row: RuleFormState | null) => {
 			resetForm()
 			queryTree()
+			queryDataHubList()
 			nextTick(() => {
 				initMap()
 			})
@@ -214,6 +227,16 @@ export default defineComponent({
 					state.treeData = res || [];
 				});
 		};
+		const queryDataHubList = () => {
+			datahubApi.template.getList({
+				pageNum: 1,
+				pageSize: 50,
+				name: '',
+				key: '',
+			}).then((res: any) => {
+				state.dataHubList = res.list || [];
+			});
+		};
 		const getDetail = () => {
 			api.loop.detail(state.ruleForm.id)
 				.then((res: any) => {

+ 6 - 6
src/views/heatingDistrict/floorManage/index.vue

@@ -64,27 +64,27 @@
       <el-table :data="tableData.data" 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" />
-	    	<el-table-column label="楼号" prop="number" />
+	    	<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="">
+        <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="">
+        <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="createdAt" />
+	    	<el-table-column label="更新时间" prop="createdAt" width="180" />
 				<el-table-column prop="status" label="启用状态" width="120" align="center">
 					<template #default="scope">
 						<el-switch v-model="scope.row.status" inline-prompt :active-value="1" :inactive-value="0" active-text="启" inactive-text="禁" @change="handleStatusChange(scope.row)">
 						</el-switch>
 					</template>
 				</el-table-column>
-        <el-table-column label="操作" width="200" align="center">
+        <el-table-column label="操作" width="200" align="center" fixed="right">
           <template #default="scope">
             <el-button size="small" text type="warning" @click="onOpenDialog(scope.row)">修改</el-button>
             <el-button size="small" text type="danger" @click="onRowDel(scope.row)">删除</el-button>

+ 4 - 4
src/views/heatingDistrict/regionalManage/index.vue

@@ -54,20 +54,20 @@
       <el-table :data="tableData.data" 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" />
-        <el-table-column label="组织名称" prop="">
+        <el-table-column label="小区名称" prop="name" min-width="100" />
+        <el-table-column label="组织名称" prop="" min-width="100">
 					<template #default="{ row }">
 						{{ row.SysOrganization.name }}
 					</template>
 				</el-table-column>
-	    	<el-table-column label="更新时间" prop="createdAt" />
+	    	<el-table-column label="更新时间" prop="createdAt" width="180" />
 				<el-table-column prop="status" label="启用状态" width="120" align="center">
 					<template #default="scope">
 						<el-switch v-model="scope.row.status" inline-prompt :active-value="1" :inactive-value="0" active-text="启" inactive-text="禁" @change="handleStatusChange(scope.row)">
 						</el-switch>
 					</template>
 				</el-table-column>
-        <el-table-column label="操作" width="200" align="center">
+        <el-table-column label="操作" width="200" align="center" fixed="right">
           <template #default="scope">
             <el-button size="small" text type="warning" @click="onOpenEditDic(scope.row)">修改</el-button>
             <el-button size="small" text type="danger" @click="onRowDel(scope.row)">删除</el-button>

+ 13 - 13
src/views/heatingDistrict/residentManage/index.vue

@@ -84,45 +84,45 @@
       <el-table :data="tableData.data" 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="">
+        <el-table-column label="组织名称" prop="" min-width="100">
           <template #default="{ row }">
             {{ row.organizationInfo.name }}
           </template>
         </el-table-column>
-        <el-table-column label="小区名称" prop="">
+        <el-table-column label="小区名称" prop="" min-width="100">
           <template #default="{ row }">
             {{ row.plotInfo.name }}
           </template>
         </el-table-column>
-        <el-table-column label="楼宇名称" prop="">
+        <el-table-column label="楼宇名称" prop="" min-width="100">
           <template #default="{ row }">
             {{ row.floorInfo.name }}
           </template>
         </el-table-column>
-	    	<el-table-column label="单元名称" prop="name">
+	    	<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">
+	    	<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" />
-	    	<el-table-column label="楼层" prop="floorLevel" />
-	    	<el-table-column label="房间号" prop="roomNumber" />
-	    	<el-table-column label="电话号码" prop="phone" />
-	    	<el-table-column label="建筑面积" prop="buildingArea" />
-	    	<el-table-column label="实供面积" prop="forRealArea" />
-	    	<el-table-column label="更新时间" prop="createdAt" />
+	    	<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="createdAt" width="180"/>
 				<el-table-column prop="status" label="启用状态" width="120" align="center">
 					<template #default="scope">
 						<el-switch v-model="scope.row.status" inline-prompt :active-value="1" :inactive-value="0" active-text="启" inactive-text="禁" @change="handleStatusChange(scope.row)">
 						</el-switch>
 					</template>
 				</el-table-column>
-        <el-table-column label="操作" width="200" align="center">
+        <el-table-column label="操作" width="200" align="center" fixed="right">
           <template #default="scope">
             <el-button size="small" text type="warning" @click="onOpenDialog(scope.row)">修改</el-button>
             <el-button size="small" text type="danger" @click="onRowDel(scope.row)">删除</el-button>

+ 7 - 7
src/views/heatingDistrict/unitManage/index.vue

@@ -74,19 +74,19 @@
       <el-table :data="tableData.data" 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" />
-        <el-table-column label="小区名称" prop="plotInfo.name" />
-        <el-table-column label="楼宇名称" prop="floorInfo.name" />
-	    	<el-table-column label="单元名称" prop="name" />
-	    	<el-table-column label="单元号" prop="number" />
-	    	<el-table-column label="更新时间" prop="updatedAt" />
+        <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="name" min-width="100" />
+	    	<el-table-column label="单元号" prop="number" min-width="100" />
+	    	<el-table-column label="更新时间" prop="updatedAt" width="180" />
 				<el-table-column prop="status" label="启用状态" width="120" align="center">
 					<template #default="scope">
 						<el-switch v-model="scope.row.status" inline-prompt :active-value="1" :inactive-value="0" active-text="启" inactive-text="禁" @change="handleStatusChange(scope.row)">
 						</el-switch>
 					</template>
 				</el-table-column>
-        <el-table-column label="操作" width="200" align="center">
+        <el-table-column label="操作" width="200" align="center" fixed="right">
           <template #default="scope">
             <el-button size="small" text type="warning" @click="onOpenDialog(scope.row)">修改</el-button>
             <el-button size="small" text type="danger" @click="onRowDel(scope.row)">删除</el-button>