Browse Source

换热站大屏数据修改

develop
fuguobin 12 months ago
parent
commit
de2cd87727
  1. 7
      src/store/modules/date.js
  2. 10
      src/store/modules/user.ts
  3. 4
      src/types/components.d.ts
  4. 5
      src/views/dashboard/index.vue
  5. 22
      src/views/data-visual/components/header.vue
  6. 12
      src/views/data-visual/components/hxPress.vue
  7. 12
      src/views/data-visual/components/hxTemp.vue
  8. 8
      src/views/data-visual/components/priTemp.vue
  9. 59
      src/views/data-visual/components/table.vue

7
src/store/modules/date.js

@ -5,9 +5,12 @@ const useCounter = defineStore('date', {
* 存储全局状态
*/
state: () => ({
deptIdStr:'',
deptIdStr: '',
dateStr: '',
orgStr:''
orgStr: {
title: '',
uuid: ''
}
}),
/**

10
src/store/modules/user.ts

@ -8,7 +8,7 @@ import { store } from '@/store';
import { LoginData } from '@/api/auth/types';
import { UserInfo } from '@/api/user/types';
import { useStorage,useSessionStorage } from '@vueuse/core';
import { useStorage, useSessionStorage } from '@vueuse/core';
export const useUserStore = defineStore('user', () => {
// state
@ -57,10 +57,10 @@ export const useUserStore = defineStore('user', () => {
roles.value = data.roles;
perms.value = data.permissions;
userInfo.value = user;
if(data.webVersion===null){
webVersion.value=''
}else{
webVersion.value=JSON.stringify(data.webVersion)
if (data.webVersion === null) {
webVersion.value = '';
} else {
webVersion.value = JSON.stringify(data.webVersion);
}
// useStorage('userInfo', user);
resolve(data);

4
src/types/components.d.ts

@ -9,12 +9,15 @@ declare module '@vue/runtime-core' {
export interface GlobalComponents {
Breadcrumb: typeof import('./../components/Breadcrumb/index.vue')['default']
Button: typeof import('./../components/Widgets/button.vue')['default']
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
ElButton: typeof import('element-plus/es')['ElButton']
ElCard: typeof import('element-plus/es')['ElCard']
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
ElCol: typeof import('element-plus/es')['ElCol']
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
ElDialog: typeof import('element-plus/es')['ElDialog']
ElDivider: typeof import('element-plus/es')['ElDivider']
ElDropdown: typeof import('element-plus/es')['ElDropdown']
ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
@ -30,6 +33,7 @@ declare module '@vue/runtime-core' {
ElRow: typeof import('element-plus/es')['ElRow']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
ElSelect: typeof import('element-plus/es')['ElSelect']
ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
ElSwitch: typeof import('element-plus/es')['ElSwitch']
ElTable: typeof import('element-plus/es')['ElTable']
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']

5
src/views/dashboard/index.vue

@ -171,8 +171,7 @@ const timePeriod = computed(() => {
onMounted(() => {
getWeatherData();
const webVersion = sessionStorage.getItem('webVersion');
debugger
if (webVersion != '') {
if (webVersion != '' && webVersion != null) {
const version = JSON.parse(webVersion);
notice.value = ElNotification({
title: '更新日志',
@ -193,7 +192,7 @@ function noticeCloce(id: any) {
};
userVersionRelation(params).then((res: any) => {
if (res.code === 200) {
console.log('更新日志关闭!')
console.log('更新日志关闭!');
}
});
}

22
src/views/data-visual/components/header.vue

@ -14,10 +14,10 @@
<svg-icon class="logoIcon" icon-class="BIlogo" />
</div>
<div class="line"></div>
<div class="text">智能生产调度系统 - 大唐管井锅炉房</div>
<div class="text">智能生产调度系统 - {{ deviceTitle }}锅炉房</div>
</div>
<div class="home">
<div class="homeBtn">
<div class="homeBtn" @click="returnBack">
<div class="homeIcon">
<svg viewBox="0 0 20 20.215051651000977">
<path
@ -33,7 +33,7 @@
</div>
</div>
<div class="menuInfo">
<div class="return">
<div class="return" @click="returnBack">
<svg class="returnIcon" viewBox="0 0 20 20">
<path
d="M16.6667,2.5C17.1269,2.5,17.5,2.873096,17.5,3.333333C17.5,3.333333,17.5,9.16667,17.5,9.16667C17.5,10.27173,17.061,11.33158,16.279600000000002,12.11292C15.4983,12.8943,14.4384,13.3333,13.3333,13.3333C13.3333,13.3333,5.34518,13.3333,5.34518,13.3333C5.34518,13.3333,8.08926,16.0774,8.08926,16.0774C8.41469,16.4028,8.41469,16.930500000000002,8.08926,17.2559C7.76382,17.5813,7.23618,17.5813,6.91074,17.2559C6.91074,17.2559,2.744077,13.0892,2.744077,13.0892C2.4186408,12.7638,2.4186408,12.23617,2.744077,11.91075C2.744077,11.91075,6.91074,7.74407,6.91074,7.74407C7.23618,7.41864,7.76382,7.41864,8.08926,7.74407C8.41469,8.06952,8.41469,8.59715,8.08926,8.92259C8.08926,8.92259,5.34518,11.66667,5.34518,11.66667C5.34518,11.66667,13.3333,11.66667,13.3333,11.66667C13.9963,11.66667,14.6322,11.40325,15.1011,10.93442C15.5699,10.465589999999999,15.8333,9.82971,15.8333,9.16667C15.8333,9.16667,15.8333,3.333333,15.8333,3.333333C15.8333,2.873096,16.206400000000002,2.5,16.6667,2.5C16.6667,2.5,16.6667,2.5,16.6667,2.5Z"
@ -57,17 +57,20 @@
</div>
</template>
<script lang="ts" setup>
import { useRoute, useRouter } from 'vue-router';
import { useDateFormat, useNow } from '@vueuse/core';
import { getWeather } from '@/api/user/index';
import { getDeptList } from '@/api/dataVisual/index';
import useCounter from '@/store/modules/date';
import calendar from '@/utils/lunar';
const route = useRoute();
const router = useRouter();
const counterStore = useCounter();
const currentTime = useDateFormat(useNow(), 'YYYY-MM-DD HH:mm:ss');
const weatherData = ref({ city: '', weather: '', temperature: '', weatherImg: '' });
const timer = ref();
const isCurrentRoute = ref(true);
const deptData = ref();
const deviceTitle = ref();
const handleNodeClick = (node: any) => {
if (!node.children || node.children.length === 0) {
console.log(node);
@ -85,6 +88,17 @@ onMounted(() => {
getDeptData();
});
watchEffect(() => {
const dataStr = counterStore.orgStr;
if (dataStr.title != '') {
deviceTitle.value = dataStr.title;
}
});
function returnBack() {
//
router.replace('/dashboard');
}
function getWeatherData() {
//
getWeather().then((res: any) => {

12
src/views/data-visual/components/hxPress.vue

@ -1057,8 +1057,8 @@ onMounted(() => {
});
watchEffect(() => {
const dataStr = counterStore.orgStr;
if (dataStr != '') {
deviceUuid.value = dataStr;
if (dataStr.uuid != '') {
deviceUuid.value = dataStr.uuid;
getDeviceInfo();
}
});
@ -1072,7 +1072,7 @@ function getDeviceInfo() {
mainInfoList.value = res.data.mainInfos;
if (res.data.additionalInfo != null) {
currentEndTime.value = res.data.additionalInfo.endTime;
// debounceClick();
debounceClick();
}
init(res.data);
}
@ -1196,6 +1196,12 @@ function init(data: any) {
chart.setOption(options);
console.log('结束时间:', useDateFormat(new Date(), 'YYYY-MM-DD HH:mm:ss').value);
}
onUnmounted(() => {
//setTimeout
if (timer.value !== null || timer.value !== undefined) {
clearTimeout(timer.value);
}
});
</script>
<style lang="scss" scoped>
.hxPressInfo {

12
src/views/data-visual/components/hxTemp.vue

@ -551,8 +551,8 @@ onMounted(() => {
});
watchEffect(() => {
const dataStr = counterStore.orgStr;
if (dataStr != '') {
deviceUuid.value = dataStr;
if (dataStr.uuid != '') {
deviceUuid.value = dataStr.uuid;
getDeviceInfo();
}
});
@ -566,7 +566,7 @@ function getDeviceInfo() {
mainInfoList.value = res.data.mainInfos;
if (res.data.additionalInfo != null) {
currentEndTime.value = res.data.additionalInfo.endTime;
// debounceClick();
debounceClick();
}
init(res.data);
}
@ -690,6 +690,12 @@ function init(data: any) {
chart.setOption(options);
console.log('结束时间:', useDateFormat(new Date(), 'YYYY-MM-DD HH:mm:ss').value);
}
onUnmounted(() => {
//setTimeout
if (timer.value !== null || timer.value !== undefined) {
clearTimeout(timer.value);
}
});
</script>
<style lang="scss" scoped>
.hxTempInfo {

8
src/views/data-visual/components/priTemp.vue

@ -94,11 +94,11 @@ const options = {
],
series: [
{
type: 'bar',
type: 'line',
seriesLayoutBy: 'row',
tooltip: {
valueFormatter: function (value: any) {
return value + ' ';
return value + ' °C';
}
}
},
@ -121,11 +121,11 @@ const options = {
}
},
{
type: 'line',
type: 'bar',
seriesLayoutBy: 'row',
tooltip: {
valueFormatter: function (value: any) {
return value + ' °C';
return value + ' ';
}
}
}

59
src/views/data-visual/components/table.vue

@ -55,22 +55,12 @@
</div>
</template>
<script lang="ts" setup>
import {
VxeGridProps,
VxeGridInstance,
VxeTableEvents,
VxeColumnPropTypes,
VXETable,
VxeFormInstance,
VxeFormPropTypes,
VxeFormEvents,
VxeTablePropTypes,
VxePagerEvents
} from 'vxe-table';
import { VxeTableEvents, VxeColumnPropTypes, VxePagerEvents } from 'vxe-table';
import { getTableHeader } from '@/api/table/list';
import { getTableData } from '@/api/dataVisual/index';
import { TableVo } from '@/api/table/types';
import { tableStore } from '@/store/modules/table';
import { debounce } from '@/utils/index';
import useStorage from '@/utils/useStorage';
import useCounter from '@/store/modules/date';
const counterStore = useCounter();
@ -81,6 +71,8 @@ const tableColumn = ref([]);
const tableData = ref<TableVo[]>();
const deptId = ref('208');
const tableBorder = ref(false);
const timer = ref();
const isCurrentRoute = ref(true);
const tablePage = reactive({
total: 0,
currentPage: 1,
@ -162,23 +154,53 @@ function tableDatas() {
// tableData.value=oldData
tableData.value = res.rows;
if (res.rows.length != 0) {
counterStore.orgStore(res.rows[0].deviceuuid.uuid);
counterStore.orgStore(res.rows[0].deviceuuid);
} else {
counterStore.orgStore('0');
counterStore.orgStore({
title: '',
uuid: ''
});
}
tableStoreCounter.tableDataAction(res.rows);
tablePage.total = res.total;
// gridOptions.data = res.data;
loadingShow.value = false;
tableDataClick();
console.log('接口结束:', useDateFormat(new Date(), 'YYYY-MM-DD HH:mm:ss').value);
}
});
}
const tableDataClick = debounce(() => {
tableDataPolling();
}, 10000);
function tableDataPolling() {
//
const params = {
pageNum: tablePage.currentPage,
pageSize: tablePage.pageSize,
orgCode: deptId.value
};
getTableData(params).then((res: any) => {
if (res.code === 200) {
if (isCurrentRoute.value) {
timer.value = setTimeout(async () => {
await (timer.value && clearTimeout(timer.value));
await tableDataPolling();
}, 10000);
}
tableData.value = res.rows;
tableStoreCounter.tableDataAction(res.rows);
tablePage.total = res.total;
}
});
}
const cellDBLClickEvent: VxeTableEvents.CellDblclick<TableVo> = ({ row, column }) => {
//
console.log('cellData--', row, column);
counterStore.orgStore(row.deviceuuid.uuid);
counterStore.orgStore(row.deviceuuid);
};
const formatRole: VxeColumnPropTypes.Formatter<HeaderVo> = ({ cellValue }) => {
//
@ -190,6 +212,13 @@ const formatRole: VxeColumnPropTypes.Formatter<HeaderVo> = ({ cellValue }) => {
console.log('渲染完成:', useDateFormat(new Date(), 'YYYY-MM-DD HH:mm:ss').value);
return cellData;
};
onUnmounted(() => {
//setTimeout
if (timer.value !== null || timer.value !== undefined) {
clearTimeout(timer.value);
}
});
</script>
<style lang="scss" scoped>
.tableInfo {

Loading…
Cancel
Save