Преглед изворни кода

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

vera_min пре 2 година
родитељ
комит
94975b056a

+ 0 - 0
src/assets/login-box-bg.svg → public/imgs/login-box-bg.svg


+ 0 - 0
src/assets/logo-mini.svg → public/imgs/logo-mini.svg


+ 0 - 0
src/assets/logo.png → public/imgs/logo.png


+ 1 - 1
src/layout/logo/index.vue

@@ -12,7 +12,7 @@
 import { computed, defineComponent } from 'vue';
 import { useStore } from '/@/store/index';
 
-import logoMini from '/@/assets/logo-mini.svg';
+import logoMini from '/imgs/logo-mini.svg';
 
 export default defineComponent({
 	name: 'layoutLogo',

+ 0 - 1
src/views/heating/energyAnalysis/analysisReport/index.vue

@@ -271,7 +271,6 @@ const initLineChart = () => {
     { name: '一网供水温度', type: 'line', symbolSize: 6, symbol: 'circle', smooth: true, data: state.inTemperature1 },
     { name: '二网供水温度', type: 'line', symbolSize: 6, symbol: 'circle', smooth: true, data: state.inTemperature2 },
     { name: '一网回水温度', type: 'line', symbolSize: 6, symbol: 'circle', smooth: true, data: state.outTemperature1 },
-    { name: '二网回水温度', type: 'line', symbolSize: 6, symbol: 'circle', smooth: true, data: state.outTemperature2 }
   ], [
     { name: '一网供水压力', type: 'line', symbolSize: 6, symbol: 'circle', smooth: true, data: state.inPressure1 },
     { name: '二网供水压力', type: 'line', symbolSize: 6, symbol: 'circle', smooth: true, data: state.inPressure2 },

+ 62 - 5
src/views/heating/energyAnalysis/heatStationWaterAnalysis/index.vue

@@ -18,6 +18,26 @@
           </div>
         </div>
         <div class="right-panel">
+          <el-form :model="state.tableData.param" ref="queryRef" :inline="true" label-width="68px">
+            <el-form-item label="时间范围" prop="dateRange">
+              <el-date-picker v-model="state.tableData.param.dateRange" size="default" style="width: 240px" value-format="YYYY-MM-DD" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item>
+              <el-button size="default" type="primary" @click="queryLineChart">
+                <el-icon>
+                  <ele-Search />
+                </el-icon>
+                查询
+              </el-button>
+              <!-- <el-button size="default" @click="resetQuery(queryRef)">
+                <el-icon>
+                  <ele-Refresh />
+                </el-icon>
+                重置
+              </el-button> -->
+            </el-form-item>
+          </el-form>
           <div class="title">供回水对比图</div>
           <div style="height: 300px" v-loading="state.tableData.loading" ref="barChartRef"></div>
           <div class="title mt-2">失水量曲线</div>
@@ -51,7 +71,13 @@ import { useSearch } from '/@/hooks/useCommon';
 // import { export_json_to_excel } from '/@/utils/xlsx';
 import downloadFile from '/@/utils/download';
 
-const { params, tableData, getList, loading } = useSearch<any[]>(api.getEnergyHuanluWaterLossLineChartPage, 'list', { loopCode: '' });
+const { params, tableData, getList, loading } = useSearch<any[]>(api.getEnergyHuanluWaterLossLineChartPage, 'list', {
+  loopCode: '',
+  dateRange: [
+    formatDate(new Date(), 'YYYY-mm-dd'),
+    formatDate(new Date(), 'YYYY-mm-dd')
+  ]
+});
 
 let nodeName = ''
 
@@ -86,7 +112,13 @@ const state = reactive({
   lineChartSeries: [],
   tableData: {
     data: [],
-    loading: false
+    loading: false,
+    param: {
+      dateRange: [
+        formatDate(new Date(), 'YYYY-mm-dd'),
+        formatDate(new Date(), 'YYYY-mm-dd')
+      ]
+    }
   }
 });
 
@@ -96,6 +128,9 @@ const curNode = ref('')
 watch(filterText, (val) => {
   treeRef.value!.filter(val)
 })
+watch(() => state.tableData.param.dateRange, (val) => {
+  params.dateRange = val
+})
 const filterNode = (value: string, data: any) => {
   if (!value) return true
   return data.name.includes(value)
@@ -153,7 +188,7 @@ const queryTree = () => {
 const queryLineChart = () => {
   getList()
   state.tableData.loading = true
-  api.getEnergyWaterLossLineChart({ loopCode: curNode.value })
+  api.getEnergyWaterLossLineChart({ loopCode: curNode.value, dateRange: state.tableData.param.dateRange })
     // api.getEnergyWaterLossLineChart({ loopCode: 'D00107-1' })
     .then((res: any) => {
       // console.log(res);
@@ -166,8 +201,8 @@ const queryLineChart = () => {
       state.barChartSeries2 = []
 
       data.forEach((item: any) => {
-        state.lineChartXAixs.push(formatDate(new Date(item.datetime), 'HH:MM'));
-        state.barChartXAxis.push(formatDate(new Date(item.datetime), 'HH:MM'));
+        state.lineChartXAixs.push(formatDate(new Date(item.datetime), 'mm-dd HH:MM'));
+        state.barChartXAxis.push(formatDate(new Date(item.datetime), 'mm-dd HH:MM'));
         state.lineChartSeries.push(item.waterLoss);
         state.barChartSeries1.push(item.supplyWater);
         state.barChartSeries2.push(item.returnWater);
@@ -210,6 +245,17 @@ const initBarChart = () => {
         type: 'value'
       }
     ],
+    dataZoom: [
+      {
+        type: 'inside',
+        start: 0,
+        end: 30
+      },
+      {
+        start: 0,
+        end: 30
+      }
+    ],
     series: [
       {
         name: '供水流量',
@@ -256,6 +302,17 @@ const initLineChart = () => {
         splitLine: { show: true, lineStyle: { type: 'dashed', color: '#f5f5f5' } },
       },
     ],
+    dataZoom: [
+      {
+        type: 'inside',
+        start: 0,
+        end: 30
+      },
+      {
+        start: 0,
+        end: 30
+      }
+    ],
     series: [
       {
         name: '失水量',

Разлика између датотеке није приказан због своје велике величине
+ 634 - 604
src/views/heating/home/index.vue


+ 21 - 6
src/views/heating/monitor/loopSupervision/heatStationDetail.vue

@@ -16,6 +16,13 @@
               <span>{{ v.contentTitle2 }}</span>
               <span>{{ v.val2 }} {{unitMap[v.title + ':' + v.contentTitle2]? unitMap[v.title + ':' + v.contentTitle2]: unitMap[v.contentTitle2]}}</span>
             </p>
+            <p style="height:30px">
+              <template v-if="v.contentTitle3">
+                <span>{{ v.contentTitle3  || ' '}}</span>
+                <span>{{ v.val3 || ' ' }}
+                  {{ unitMap[v.title + ':' + v.contentTitle3] ? unitMap[v.title + ':' + v.contentTitle3] : unitMap[v.contentTitle3] }}</span>
+              </template>
+            </p>
           </div>
         </div>
       </el-col>
@@ -90,12 +97,15 @@ export default defineComponent({
           icon: map,
           iconDark: map1,
           title: '供热面积',
-          contentTitle1: '供热面积',
+          contentTitle1: '联网面积',
           val1: '0',
           unit1: '㎡',
-          contentTitle2: '面积',
+          contentTitle2: '实供面积',
           val2: '0',
           unit2: '㎡',
+          contentTitle3: '供热率',
+          val3: '',
+          unit3: '',
         },
         {
           icon: fire,
@@ -107,6 +117,9 @@ export default defineComponent({
           contentTitle2: '总单耗',
           val2: '0',
           unit2: 'GJ/㎡',
+          contentTitle3: '供热功率',
+          val3: '-',
+          unit3: 'W',
         },
         {
           icon: ele,
@@ -154,8 +167,9 @@ export default defineComponent({
         code: route.query.code
       }).then((res: any) => {
         let data = res
-        state.dataOne[0].val1 = data.heatingArea //供暖面积
-        state.dataOne[0].val2 = data.forRealArea //实供面积
+        state.dataOne[0].val1 = data.forRealArea
+        state.dataOne[0].val2 = data.heatingArea
+        state.dataOne[0].val3 = data.heatRate
         state.dataOne[1].val1 = data.unitConsumptionTotal //总热耗
         state.dataOne[1].val2 = data.unitConsumption //热单耗
         state.dataOne[2].val1 = data.elctricConsumptionTotal //总电量
@@ -377,8 +391,9 @@ $homeNavLengh: 8;
 			}
 		}
 
-		p:nth-child(2) {
-			margin-top: 26px;
+		p:nth-child(2),
+		p:nth-child(3) {
+			margin-top: 5px;
 		}
 	}
 

+ 14 - 19
src/views/heating/monitor/loopSupervision/index.vue

@@ -45,6 +45,7 @@
       <el-table :data="tableData.data" style="width: 100%" @selection-change="handleSelectionChange" v-loading="tableData.loading">
         <el-table-column type="index" width="55" label="序号" align="center" />
         <!-- <el-table-column label="日期" v-col="'key'" prop="key" min-width="120" :show-overflow-tooltip="true" /> -->
+        <el-table-column label="换热站" min-width="120" v-col="'stationName'" prop="stationName" :show-overflow-tooltip="true"></el-table-column>
         <el-table-column :label="tableData.param.types === 'station' ? '换热站' : '环路名称'" v-col="'name'" prop="name" :show-overflow-tooltip="true">
           <template #default="{ row }">
             <el-button type="text" @click="goPage(row)">
@@ -52,24 +53,17 @@
             </el-button>
           </template>
         </el-table-column>
-        <el-table-column :label="tableData.param.types === 'station' ? '换热站编号' : '环路编号'" v-col="'number'" prop="code" min-width="120" :show-overflow-tooltip="true">
-          <template #default="{ row }">
-            {{ row.code }}
-          </template>
-        </el-table-column>
-        <el-table-column label="换热站" v-col="'stationName'" prop="stationName" :show-overflow-tooltip="true"></el-table-column>
-        <el-table-column label="换热站编号" min-width="100" v-col="'stationCode'" prop="stationCode" :show-overflow-tooltip="true"></el-table-column>
-        <el-table-column label="一网供水压力" prop="inPressure1" min-width="120" :show-overflow-tooltip="true" />
-        <el-table-column label="二网供水压力" prop="inPressure2" min-width="120" :show-overflow-tooltip="true" />
-        <el-table-column label="一网供水温度" prop="inTemperature1" min-width="120" :show-overflow-tooltip="true" />
-        <el-table-column label="二网供水温度" prop="inTemperature2" min-width="120" :show-overflow-tooltip="true" />
-        <el-table-column label="一网回水压力" prop="outPressure1" min-width="120" :show-overflow-tooltip="true" />
-        <el-table-column label="二网回水压力" prop="outPressure2" min-width="120" :show-overflow-tooltip="true" />
-        <el-table-column label="一网回水温度" prop="outTemperature1" min-width="120" :show-overflow-tooltip="true" />
-        <el-table-column label="二网回水温度" prop="outTemperature2" min-width="120" :show-overflow-tooltip="true" />
-        <el-table-column label="供水流量" prop="supplyWaterFlow" min-width="120" :show-overflow-tooltip="true" />
-        <el-table-column label="回水流量" prop="returnWaterFlow" min-width="120" :show-overflow-tooltip="true" />
-        <el-table-column label="二网供水流量" prop="secondWaterSupply" min-width="120" :show-overflow-tooltip="true" />
+        <!-- 
+4.默认30条数据每页 -->
+        <el-table-column label="一网供水温度" prop="inTemperature1" min-width="110" :show-overflow-tooltip="true" />
+        <el-table-column label="二网供水温度" prop="inTemperature2" min-width="110" :show-overflow-tooltip="true" />
+        <el-table-column label="一网回水温度" prop="outTemperature1" min-width="110" :show-overflow-tooltip="true" />
+        <el-table-column label="供水流量" prop="supplyWaterFlow" min-width="100" :show-overflow-tooltip="true" />
+        <el-table-column label="回水流量" prop="returnWaterFlow" min-width="100" :show-overflow-tooltip="true" />
+        <el-table-column label="一网供水压力" prop="inPressure1" min-width="110" :show-overflow-tooltip="true" />
+        <el-table-column label="二网供水压力" prop="inPressure2" min-width="110" :show-overflow-tooltip="true" />
+        <el-table-column label="一网回水压力" prop="outPressure1" min-width="110" :show-overflow-tooltip="true" />
+        <el-table-column label="二网回水压力" prop="outPressure2" min-width="110" :show-overflow-tooltip="true" />
 
         <!-- <el-table-column prop="status" label="状态" width="100" align="center">
           <template #default="scope">
@@ -104,7 +98,7 @@ export default defineComponent({
         loading: false,
         param: {
           pageNum: 1,
-          pageSize: 10,
+          pageSize: 30,
           types: 'loop', // 类型 station 换热站 loop环路
           stationName: '',
           name: '',
@@ -119,6 +113,7 @@ export default defineComponent({
     };
     const typeList = () => {
       state.tableData.loading = true;
+      state.tableData.data = [];
       api.getLoopRegulation(state.tableData.param).then((res: any) => {
         state.tableData.data = res.Data;
         state.tableData.total = res.Total;

+ 22 - 7
src/views/heating/monitor/loopSupervision/loopDetail.vue

@@ -16,6 +16,13 @@
               <span>{{ v.contentTitle2 }}</span>
               <span>{{ v.val2 }} {{unitMap[v.title + ':' + v.contentTitle2]? unitMap[v.title + ':' + v.contentTitle2]: unitMap[v.contentTitle2]}}</span>
             </p>
+            <p style="height:30px">
+              <template v-if="v.contentTitle3">
+                <span>{{ v.contentTitle3  || ' '}}</span>
+                <span>{{ v.val3 || ' ' }}
+                  {{ unitMap[v.title + ':' + v.contentTitle3] ? unitMap[v.title + ':' + v.contentTitle3] : unitMap[v.contentTitle3] }}</span>
+              </template>
+            </p>
           </div>
         </div>
       </el-col>
@@ -33,6 +40,7 @@
                   <el-tab-pane label="温度" :name="0"></el-tab-pane>
                   <el-tab-pane label="压力" :name="1"></el-tab-pane>
                   <el-tab-pane label="流量" :name="2"></el-tab-pane>
+                  <el-tab-pane label="失水量" :name="3"></el-tab-pane>
                 </el-tabs>
                 <el-button type="text" @click="goDetail()">更多 &gt;</el-button>
               </div>
@@ -102,12 +110,15 @@ export default defineComponent({
           icon: map,
           iconDark: map1,
           title: '供热面积',
-          contentTitle1: '供热面积',
+          contentTitle1: '联网面积',
           val1: '0',
           unit1: '㎡',
-          contentTitle2: '面积',
+          contentTitle2: '实供面积',
           val2: '0',
           unit2: '㎡',
+          contentTitle3: '供热率',
+          val3: '',
+          unit3: '',
         },
         {
           icon: fire,
@@ -119,6 +130,9 @@ export default defineComponent({
           contentTitle2: '总单耗',
           val2: '0',
           unit2: 'GJ/㎡',
+          contentTitle3: '供热功率',
+          val3: '-',
+          unit3: 'W',
         },
         {
           icon: ele,
@@ -175,8 +189,9 @@ export default defineComponent({
         code: route.query.code
       }).then((res: any) => {
         let data = res
-        state.dataOne[0].val1 = data.heatingArea //供暖面积
-        state.dataOne[0].val2 = data.forRealArea //实供面积
+        state.dataOne[0].val1 = data.forRealArea
+        state.dataOne[0].val2 = data.heatingArea
+        state.dataOne[0].val3 = data.heatRate
         state.dataOne[1].val1 = data.unitConsumptionTotal //总热耗
         state.dataOne[1].val2 = data.unitConsumption //热单耗
         state.dataOne[2].val1 = data.elctricConsumptionTotal //总电量
@@ -431,9 +446,9 @@ $homeNavLengh: 8;
 				font-size: 22px;
 			}
 		}
-
-		p:nth-child(2) {
-			margin-top: 26px;
+		p:nth-child(2),
+		p:nth-child(3) {
+			margin-top: 5px;
 		}
 	}
 

+ 9 - 3
src/views/login/index.vue

@@ -11,8 +11,12 @@
 			style="--el-switch-on-color: #fff; --el-switch-off-color: #151515"
 		></el-switch>
 		<div class="part left">
-			<div class="flex logo"><img class="logoimg" src="/@/assets/logo.png" />{{ sysinfo.systemName }}</div>
-			<img class="img" src="/@/assets/login-box-bg.svg" />
+			<div class="flex logo">
+				<img v-if="sysinfo.systemLogo" class="logoimg" :src="sysinfo.systemLogo" />
+				<img v-else class="logoimg" src="/imgs/logo.png" />
+				{{ sysinfo.systemName }}</div>
+			<img class="img" v-if="sysinfo.systemLoginPIC" :src="sysinfo.systemLoginPIC" />
+			<img class="img" v-else src="/imgs/login-box-bg.svg" />
 			<span class="text" v-if="sysinfo.buildTime">{{ sysinfo.buildVersion }} </span>
 			<span class="text" v-if="sysinfo.buildTime">{{ dayjs(sysinfo.buildTime).format('YYYY-MM-DD HH:mm:ss') }}</span>
 		</div>
@@ -29,7 +33,7 @@
 import { toRefs, reactive, computed, defineComponent } from 'vue';
 import Account from '/@/views/login/component/account.vue';
 import { useStore } from '/@/store/index';
-import logoMini from '/@/assets/logo.png';
+import logoMini from '/imgs/logo.png';
 import { Sunny, Moon } from '@element-plus/icons-vue';
 import dayjs from 'dayjs';
 
@@ -56,6 +60,8 @@ export default defineComponent({
 				systemName: '',
 				buildTime: '',
 				systemCopyright: '',
+				systemLogo: '',
+				systemLoginPIC: '',
 			},
 			amisjson: {
 				type: 'page',

+ 14 - 2
src/views/system/datahub/modeling/component/edit.vue

@@ -9,7 +9,11 @@
 					<el-input v-model="ruleForm.name" placeholder="请输入模型名称" />
 				</el-form-item>
 
-
+				<el-form-item label="模型类型" prop="type">
+					<el-select v-model="ruleForm.type"  placeholder="请选择模型类型" class="w100" >
+						<el-option v-for="item in datahub_model_type" :key="item.value" :label="item.label" :value="item.value" />
+					</el-select>
+				</el-form-item>
 
 				<!-- <el-form-item label="更新时间" prop="interval">
 					<el-input v-model="ruleForm.interval" placeholder="请输入更新时间" class="w-35" />
@@ -69,7 +73,7 @@
 </template>
 
 <script lang="ts">
-import { reactive, toRefs, defineComponent, ref, unref } from 'vue';
+import { reactive, toRefs, defineComponent, ref, unref,getCurrentInstance } from 'vue';
 import api from '/@/api/datahub';
 import { ElMessage } from 'element-plus';
 import vue3cron from '/@/components/vue3cron/vue3cron.vue';
@@ -80,6 +84,7 @@ interface RuleFormState {
 	interval: string;
 	key: string;
 	desc: string;
+	type: string;
 }
 interface DicState {
 	isShowDialog: boolean;
@@ -93,6 +98,9 @@ export default defineComponent({
 
 	setup(prop, { emit }) {
 		const formRef = ref<HTMLElement | null>(null);
+			const { proxy } = getCurrentInstance() as any;
+
+		const { datahub_model_type } = proxy.useDict('datahub_model_type');
 		const state = reactive<DicState>({
 			isShowDialog: false,
 			zidianData:[],
@@ -123,10 +131,12 @@ export default defineComponent({
 				key: '',
 				busiTypes:[],
 				desc: '',
+				type: '',
 			},
 			rules: {
 				key: [{ required: true, message: '模型标识不能为空', trigger: 'blur' }],
 				name: [{ required: true, message: '模型名称不能为空', trigger: 'blur' }],
+				type: [{ required: true, message: '模型类型不能为空', trigger: 'blur' }],
 				interval: [{ required: true, message: '请输入更新时间', trigger: 'blur' }],
 			},
 		});
@@ -160,6 +170,7 @@ export default defineComponent({
 				key: '',
 				busiTypes:[],
 				desc: '',
+				type: '',
 			};
 		};
 
@@ -221,6 +232,7 @@ export default defineComponent({
 			onCancel,
 			onSubmit,
 			formRef,
+			datahub_model_type,
 			...toRefs(state),
 		};
 	},

+ 17 - 4
src/views/system/datahub/modeling/index.vue

@@ -3,12 +3,17 @@
     <el-card shadow="hover">
       <div class="system-user-search mb15">
         <el-form :model="tableData.param" ref="queryRef" :inline="true">
-          <el-form-item label="模型标识" prop="key">
+          <!-- <el-form-item label="模型标识" prop="key">
             <el-input v-model="tableData.param.key" placeholder="请输入模型标识" clearable size="default" style="width: 240px" @keyup.enter.native="typeList" />
-          </el-form-item>
+          </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.native="typeList" />
           </el-form-item>
+          <el-form-item label="模型类型" prop="type">
+            <el-select v-model="tableData.param.type"  placeholder="请选择模型类型" class="w100" >
+						<el-option v-for="item in datahub_model_type" :key="item.value" :label="item.label" :value="item.value" />
+					</el-select>
+          </el-form-item>
           <el-form-item>
             <el-button size="default" type="primary" class="ml10" @click="typeList">
               <el-icon>
@@ -40,8 +45,10 @@
       <el-table :data="tableData.data" style="width: 100%" @selection-change="handleSelectionChange" v-loading="tableData.loading">
         <el-table-column type="selection" width="55" align="center" />
         <el-table-column label="ID" align="center" prop="id" width="80" v-col="'id'" />
-       <el-table-column label="模型标识" prop="key" :show-overflow-tooltip="true" v-col="'key'"/>
+       <!-- <el-table-column label="模型标识" prop="key" :show-overflow-tooltip="true" v-col="'key'"/> -->
         <el-table-column label="模型名称" prop="name" :show-overflow-tooltip="true" v-col="'name'" />
+        <el-table-column label="类型" prop="typeName" :show-overflow-tooltip="true" v-col="'typeName'" />
+
         <el-table-column label="描述" prop="desc" :show-overflow-tooltip="true" v-col="'desc'" />
         <el-table-column prop="status" label="状态" width="100" align="center" v-col="'status'">
           <template #default="scope">
@@ -72,7 +79,7 @@
 </template>
 
 <script lang="ts">
-import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue';
+import { toRefs, reactive, onMounted, ref, defineComponent,getCurrentInstance } from 'vue';
 import { ElMessageBox, ElMessage, FormInstance } from 'element-plus';
 import EditDic from './component/edit.vue';
 import Detail from './component/detail.vue';
@@ -97,6 +104,7 @@ interface TableDataState {
       pageSize: number;
       name: string;
       key: string;
+      type: string;
     };
   };
 }
@@ -109,6 +117,9 @@ export default defineComponent({
     const editDicRef = ref();
     const detailRef = ref();
     const queryRef = ref();
+    const { proxy } = getCurrentInstance() as any;
+
+const { datahub_model_type } = proxy.useDict('datahub_model_type');
     const state = reactive<TableDataState>({
       tableData: {
         data: [],
@@ -119,6 +130,7 @@ export default defineComponent({
           pageSize: 10,
           name: '',
           key: '',
+          type: '',
         },
       },
     });
@@ -211,6 +223,7 @@ export default defineComponent({
       detailRef,
       queryRef,
       onOpenRecord,
+      datahub_model_type,
       onOpenAdd,
       onOpenEdit,
       onRowDel,

Неке датотеке нису приказане због велике количине промена