diff --git a/src/api/cs-device-boot/csLedger.ts b/src/api/cs-device-boot/csLedger.ts
index 1bdfc88..fee1f35 100644
--- a/src/api/cs-device-boot/csLedger.ts
+++ b/src/api/cs-device-boot/csLedger.ts
@@ -15,6 +15,13 @@ export function getLineTree() {
method: 'POST'
})
}
+// 监测点列表治理
+export function objTree() {
+ return createAxios({
+ url: '/cs-device-boot/csLedger/objTree',
+ method: 'POST'
+ })
+}
//云设备录入树
diff --git a/src/api/cs-harmonic-boot/mxgraph.ts b/src/api/cs-harmonic-boot/mxgraph.ts
index ff8526b..cbe63b9 100644
--- a/src/api/cs-harmonic-boot/mxgraph.ts
+++ b/src/api/cs-harmonic-boot/mxgraph.ts
@@ -1,50 +1,67 @@
-import createAxios from '@/utils/request'
-
-//新增组态项目
-export function add(data: any) {
- return createAxios({
- url: '/cs-harmonic-boot/csconfiguration/add',
- method: 'post',
- data
- })
-}
-//组态项目分页查询
-export function coFqueryPage(data: any) {
- return createAxios({
- url: '/cs-harmonic-boot/csconfiguration/queryPage',
- method: 'post',
- data
- })
-}
-//修改组态项目
-export function audit(data: any) {
- return createAxios({
- url: '/cs-harmonic-boot/csconfiguration/audit',
- method: 'post',
- data
- })
-}
-//组态页面分页查询
-export function queryPageData(data: any) {
- return createAxios({
- url: '/cs-harmonic-boot/cspage/queryPage',
- method: 'post',
- data
- })
-}
-//查询工程列表
-export function deviceTree(data: any) {
- return createAxios({
- url: '/cs-device-boot/csLedger/deviceTree',
- method: 'post',
- data
- })
-}
-
-//三层设备树(项目层根节点为治理设备和便携式设备组态)
-export function getztProjectTree() {
- return createAxios({
- url: '/cs-device-boot/csLedger/getztProjectTree',
- method: 'post',
- })
-}
+import createAxios from '@/utils/request'
+
+//新增组态项目
+export function add(data: any) {
+ return createAxios({
+ url: '/cs-harmonic-boot/csconfiguration/add',
+ method: 'post',
+ data
+ })
+}
+//组态项目分页查询
+export function coFqueryPage(data: any) {
+ return createAxios({
+ url: '/cs-harmonic-boot/csconfiguration/queryPage',
+ method: 'post',
+ data
+ })
+}
+//修改组态项目
+export function audit(data: any) {
+ return createAxios({
+ url: '/cs-harmonic-boot/csconfiguration/audit',
+ method: 'post',
+ data
+ })
+}
+//组态页面分页查询
+export function queryPageData(data: any) {
+ return createAxios({
+ url: '/cs-harmonic-boot/cspage/queryPage',
+ method: 'post',
+ data
+ })
+}
+//查询工程列表
+export function deviceTree(data: any) {
+ return createAxios({
+ url: '/cs-device-boot/csLedger/deviceTree',
+ method: 'post',
+ data
+ })
+}
+
+//三层设备树(项目层根节点为治理设备和便携式设备组态)
+export function getztProjectTree() {
+ return createAxios({
+ url: '/cs-device-boot/csLedger/getztProjectTree',
+ method: 'post',
+ })
+}
+
+//根据用户id获取组件信息
+export function getByUserId(data: any) {
+ return createAxios({
+ url: '/cs-harmonic-boot/cspage/getByUserId',
+ method: 'post',
+ params: data
+ })
+}
+//c保存组态界面与用户的关系
+export function savePageIdWithUser(data: any) {
+ return createAxios({
+ url: '/cs-harmonic-boot/cspage/savePageIdWithUser',
+ method: 'post',
+ params: data
+ })
+}
diff --git a/src/api/system-boot/csstatisticalset.ts b/src/api/system-boot/csstatisticalset.ts
index 7ddae60..0034220 100644
--- a/src/api/system-boot/csstatisticalset.ts
+++ b/src/api/system-boot/csstatisticalset.ts
@@ -54,6 +54,14 @@ export const activatePage = (params: any) => {
params
})
}
+// 全局的驾驶舱页面
+export const scopePage = (params: any) => {
+ return createAxios({
+ url: '/system-boot/dashboard/scopePage',
+ method: 'post',
+ params
+ })
+}
// 查询激活的驾驶舱页面
export const queryActivatePage = () => {
return createAxios({
diff --git a/src/components/cockpit/crossingTime/index.vue b/src/components/cockpit/crossingTime/index.vue
new file mode 100644
index 0000000..a780e3f
--- /dev/null
+++ b/src/components/cockpit/crossingTime/index.vue
@@ -0,0 +1,308 @@
+
+
+
+
+
diff --git a/src/components/cockpit/governanceReport/index.vue b/src/components/cockpit/governanceReport/index.vue
index bee6ce1..c60a89a 100644
--- a/src/components/cockpit/governanceReport/index.vue
+++ b/src/components/cockpit/governanceReport/index.vue
@@ -15,7 +15,7 @@
- 导出excel
+ 导出
@@ -72,7 +72,7 @@ const initListByIds = () => {
const templateListData = () => {
getTemplateList({}).then(res => {
- templateList.value = res.data
+ templateList.value = res.data.filter(item => item.name === '稳态治理报表')
if (!tableStore.table.params.tempId && templateList.value?.length > 0) {
tableStore.table.params.tempId = templateList.value[0].id
}
@@ -156,6 +156,8 @@ const setTime = () => {
if (Array.isArray(time)) {
tableStore.table.params.searchBeginTime = time[0]
tableStore.table.params.searchEndTime = time[1]
+ tableStore.table.params.startTime = time[0]
+ tableStore.table.params.endTime = time[1]
TableHeaderRef.value?.setInterval(time[2] - 0)
TableHeaderRef.value?.setTimeInterval([time[0], time[1]])
} else {
diff --git a/src/components/cockpit/indicatorCrossingTime/index.vue b/src/components/cockpit/indicatorCrossingTime/index.vue
new file mode 100644
index 0000000..c9dc431
--- /dev/null
+++ b/src/components/cockpit/indicatorCrossingTime/index.vue
@@ -0,0 +1,463 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/cockpit/indicatorDistribution/index.vue b/src/components/cockpit/indicatorDistribution/index.vue
index 3ecadf6..70e1c15 100644
--- a/src/components/cockpit/indicatorDistribution/index.vue
+++ b/src/components/cockpit/indicatorDistribution/index.vue
@@ -21,17 +21,17 @@
:options="echartList"
:style="{
width: prop.width,
- height: `calc(${prop.height} / 2 - ${headerHeight / 2}px + ${fullscreen ? 0 : 28}px )`
+ height: `calc(${prop.height} - ${headerHeight}px + ${fullscreen ? 0 : 56}px)`
}"
/>
-
+ /> -->
@@ -220,7 +220,7 @@ const initProbabilityData = () => {
grid3D: {
viewControl: {
projection: 'perspective',
- distance: 250,
+ distance: 260,
rotateSensitivity: 10,
zoomSensitivity: 2
},
@@ -394,7 +394,7 @@ const tableStore: any = new TableStore({
echartList1.value = {
title: {
- text: '越限时间概率分布'
+ text: '指标越限时间概率分布'
},
tooltip: {
trigger: 'axis'
diff --git a/src/components/cockpit/sensitiveLoad/index.vue b/src/components/cockpit/sensitiveLoad/index.vue
index 5a13926..f00c1c2 100644
--- a/src/components/cockpit/sensitiveLoad/index.vue
+++ b/src/components/cockpit/sensitiveLoad/index.vue
@@ -39,7 +39,7 @@ const headerHeight = ref(57)
const TableHeaderRef = ref()
const dictData = useDictData()
-const sensitiveUserType = dictData.getBasicData('Sensitive_User_Type')
+const sensitiveUserType = dictData.getBasicData('Interference_Source')
const selectChange = (showSelect: any, height: any, datePickerValue?: any) => {
headerHeight.value = height
diff --git a/src/components/cockpit/transientDistribution/index.vue b/src/components/cockpit/transientDistribution/index.vue
index 666bd7a..cce32f9 100644
--- a/src/components/cockpit/transientDistribution/index.vue
+++ b/src/components/cockpit/transientDistribution/index.vue
@@ -1,23 +1,30 @@
+
+
diff --git a/src/components/tree/cloudDevice.vue b/src/components/tree/cloudDevice.vue
index 8205d75..b72be39 100644
--- a/src/components/tree/cloudDevice.vue
+++ b/src/components/tree/cloudDevice.vue
@@ -14,7 +14,7 @@
:class="menuCollapse ? 'unfold' : ''" size='18' class='fold ml10 menu-collapse'
style='cursor: pointer' v-if='props.canExpand' /> -->
-
@@ -32,7 +32,6 @@
diff --git a/src/components/tree/govern/deviceTree.vue b/src/components/tree/govern/deviceTree.vue
index a1b0aac..5660ff5 100644
--- a/src/components/tree/govern/deviceTree.vue
+++ b/src/components/tree/govern/deviceTree.vue
@@ -5,6 +5,7 @@
:default-checked-keys="defaultCheckedKeys"
:show-checkbox="props.showCheckbox"
:data="tree"
+ :height="props.height"
@changeDeviceType="changeDeviceType"
/>
@@ -21,10 +22,12 @@ const props = withDefaults(
defineProps<{
showCheckbox?: boolean
defaultCheckedKeys?: any
+ height?: number
}>(),
{
showCheckbox: false,
- defaultCheckedKeys: []
+ defaultCheckedKeys: [],
+ height:0
}
)
const emit = defineEmits(['init', 'checkChange', 'deviceTypeChange'])
@@ -124,6 +127,8 @@ getDeviceTree().then(res => {
})
return
} else if (arr3.length > 0) {
+ console.log('🚀 ~ arr3:', arr3)
+
treRef.value.treeRef3.setCurrentKey(arr3[0].id)
// 注册父组件事件
emit('init', {
diff --git a/src/components/tree/govern/pointTree.vue b/src/components/tree/govern/pointTree.vue
index 6ef2929..3b14cf4 100644
--- a/src/components/tree/govern/pointTree.vue
+++ b/src/components/tree/govern/pointTree.vue
@@ -102,7 +102,7 @@ const info = () => {
setTimeout(() => {
if (arr1.length > 0) {
//初始化选中
- treRef.value.treeRef1.setCurrentKey(arr1[0].id)
+ treRef.value?.treeRef1.setCurrentKey(arr1[0].id)
// 注册父组件事件
emit('init', {
level: 2,
@@ -111,7 +111,7 @@ const info = () => {
return
} else if (arr2.length > 0) {
//初始化选中
- treRef.value.treeRef2.setCurrentKey(arr2[0].id)
+ treRef.value?.treeRef2.setCurrentKey(arr2[0].id)
// 注册父组件事件
emit('init', {
level: 2,
@@ -119,7 +119,8 @@ const info = () => {
})
return
} else if (arr3.length > 0) {
- treRef.value.treeRef3.setCurrentKey(arr3[0].id)
+
+ treRef.value?.treeRef3?.setCurrentKey(arr3[0].id)
emit('init', {
level: 2,
...arr3[0]
@@ -137,7 +138,7 @@ const changePointType = (val: any, obj: any) => {
emit('pointTypeChange', val, obj)
}
if (props.template) {
- getTemplateByDept({ id: dictData.state.area[0].id })
+ getTemplateByDept({ id: dictData.state.area[0]?.id })
.then((res: any) => {
emit('Policy', res.data)
info()
diff --git a/src/components/tree/govern/pointTreeWx.vue b/src/components/tree/govern/pointTreeWx.vue
index 9f8d506..d43db98 100644
--- a/src/components/tree/govern/pointTreeWx.vue
+++ b/src/components/tree/govern/pointTreeWx.vue
@@ -157,7 +157,7 @@ const clickNode = (e: anyObj) => {
}
if (props.template) {
- getTemplateByDept({ id: dictData.state.area[0].id })
+ getTemplateByDept({ id: dictData.state.area[0]?.id })
.then((res: any) => {
emit('Policy', res.data)
getTreeList()
diff --git a/src/components/tree/govern/selectTree.vue b/src/components/tree/govern/selectTree.vue
index d1f1bdb..e2a99f9 100644
--- a/src/components/tree/govern/selectTree.vue
+++ b/src/components/tree/govern/selectTree.vue
@@ -87,7 +87,7 @@ const handleCheckedNodesChange = (nodes: any[]) => {
if (props.template) {
- getTemplateByDept({ id: dictData.state.area[0].id })
+ getTemplateByDept({ id: dictData.state.area[0]?.id })
.then((res: any) => {
emit('Policy', res.data)
info()
diff --git a/src/components/tree/index.vue b/src/components/tree/index.vue
index a619948..ad962c3 100644
--- a/src/components/tree/index.vue
+++ b/src/components/tree/index.vue
@@ -28,7 +28,7 @@
style='cursor: pointer' v-if='props.canExpand' /> -->
-
diff --git a/src/components/tree/point.vue b/src/components/tree/point.vue
index 4460b63..64afc26 100644
--- a/src/components/tree/point.vue
+++ b/src/components/tree/point.vue
@@ -1,9 +1,16 @@
-
+
@@ -11,13 +18,23 @@
-
+ v-if="props.canExpand && route.path != '/admin/govern/reportCore/statistics/index'"
+ />
-
+
+
@@ -26,14 +43,25 @@
+ :style="{ height: bxsDeviceData.length != 0 ? 'calc(100vh - 380px)' : 'calc(100vh - 278px)' }"
+ ref="treeRef1"
+ :props="defaultProps"
+ highlight-current
+ :filter-node-method="filterNode"
+ node-key="id"
+ v-bind="$attrs"
+ :data="zlDevList"
+ style="overflow: auto"
+ :default-expand-all="false"
+ >
-
+
{{ node.label }}
@@ -41,14 +69,25 @@
+ :style="{ height: zlDeviceData.length != 0 ? 'calc(100vh - 340px)' : 'calc(100vh - 238px)' }"
+ ref="treeRef2"
+ :props="defaultProps"
+ highlight-current
+ :default-expand-all="false"
+ :filter-node-method="filterNode"
+ node-key="id"
+ :data="bxsDeviceData"
+ v-bind="$attrs"
+ style="overflow: auto"
+ >
-
+
{{ node.label }}
@@ -56,14 +95,25 @@
+ :style="{ height: zlDeviceData.length != 0 ? 'calc(100vh - 340px)' : 'calc(100vh - 238px)' }"
+ ref="treeRef3"
+ :props="defaultProps"
+ highlight-current
+ :default-expand-all="false"
+ :filter-node-method="filterNode"
+ node-key="id"
+ :data="yqfDeviceData"
+ v-bind="$attrs"
+ style="overflow: auto"
+ >
-
+
{{ node.label }}
@@ -118,27 +168,25 @@ watch(
() => props.data,
(val, oldVal) => {
if (val && val.length != 0) {
-
val.map((item: any) => {
if (item.name == '治理设备') {
zlDeviceData.value = []
item.children.map((vv: any) => {
zlDeviceData.value.push(vv)
})
- zlDevList.value = JSON.parse(JSON.stringify(zlDeviceData.value))
+ zlDevList.value = JSON.parse(JSON.stringify(zlDeviceData.value))
} else if (item.name == '便携式设备') {
bxsDeviceData.value = []
item.children.map((vv: any) => {
bxsDeviceData.value.push(vv)
})
- }else if (item.name == '在线设备') {
+ } else if (item.name == '在线设备') {
yqfDeviceData.value = []
item.children.map((vv: any) => {
yqfDeviceData.value.push(vv)
})
}
})
-
}
},
{
@@ -157,12 +205,10 @@ watch(filterText, val => {
}
})
watch(process, val => {
-
- if (val == '') {
+ if (val == '' || val == undefined) {
zlDevList.value = JSON.parse(JSON.stringify(zlDeviceData.value))
} else {
zlDevList.value = filterProcess(JSON.parse(JSON.stringify(zlDeviceData.value)))
-
}
setTimeout(() => {
@@ -170,9 +216,8 @@ watch(process, val => {
}, 0)
})
-
-
const changeDevice = (val: any) => {
+ console.log('🚀 ~ changeDevice ~ val:', val)
let arr1: any = []
//zlDeviceData
@@ -263,8 +308,7 @@ function filterProcess(nodes: any) {
// 1. 如果有满足条件的子节点则保留
// 2. 如果本身 process 值匹配则保留
// 3. 如果是叶子节点也保留(监测点通常没有子节点)
- if (children.length > 0 || node.process == process.value ||
- (!node.children || node.children.length === 0)) {
+ if (children.length > 0 || node.process == process.value || !node.children || node.children.length === 0) {
return {
...node,
children: children
@@ -276,7 +320,6 @@ function filterProcess(nodes: any) {
.filter(Boolean) // 移除null节点
}
-
// function filterProcess(nodes: any) {
// if (process.value == '') {
// return nodes
@@ -332,11 +375,9 @@ const treeRef1 = ref>()
const treeRef2 = ref>()
//在线
const treeRef3 = ref>()
-defineExpose({ treeRef1, treeRef2 })
+defineExpose({ treeRef1, treeRef2, treeRef3 })
onMounted(() => {
-
setTimeout(() => {
-
if (zlDeviceData.value.length != 0) {
zlDevList.value = filterProcess(JSON.parse(JSON.stringify(zlDeviceData.value)))
activeName.value = '0'
@@ -344,8 +385,11 @@ onMounted(() => {
if (zlDeviceData.value.length === 0 && bxsDeviceData.value.length != 0) {
activeName.value = '1'
}
+ if (zlDeviceData.value.length === 0 && bxsDeviceData.value.length === 0) {
+ activeName.value = '2'
+ }
if (!zlDeviceData.value && !bxsDeviceData.value) {
- activeName.value = ''
+ activeName.value = '2'
}
nextTick(() => {
changeDevice(activeName.value)
diff --git a/src/styles/vxeTable.css b/src/styles/vxeTable.css
new file mode 100644
index 0000000..cec52cd
--- /dev/null
+++ b/src/styles/vxeTable.css
@@ -0,0 +1,58 @@
+.vxe-header--row {
+ background: var(--vxe-table-header-background-color);
+ color: var(--vxe-table-header-font-color);
+}
+
+.is--checked.vxe-checkbox,
+.is--checked.vxe-checkbox .vxe-checkbox--icon,
+.is--checked.vxe-custom--checkbox-option,
+.is--checked.vxe-custom--checkbox-option .vxe-checkbox--icon,
+.is--checked.vxe-export--panel-column-option,
+.is--checked.vxe-export--panel-column-option .vxe-checkbox--icon,
+.is--checked.vxe-table--filter-option,
+.is--checked.vxe-table--filter-option .vxe-checkbox--icon,
+.is--indeterminate.vxe-checkbox,
+.is--indeterminate.vxe-checkbox .vxe-checkbox--icon,
+.is--indeterminate.vxe-custom--checkbox-option,
+.is--indeterminate.vxe-custom--checkbox-option .vxe-checkbox--icon,
+.is--indeterminate.vxe-export--panel-column-option,
+.is--indeterminate.vxe-export--panel-column-option .vxe-checkbox--icon,
+.is--indeterminate.vxe-table--filter-option,
+.is--indeterminate.vxe-table--filter-option .vxe-checkbox--icon,
+.vxe-table--render-default .is--checked.vxe-cell--checkbox,
+.vxe-table--render-default .is--checked.vxe-cell--checkbox .vxe-checkbox--icon,
+.vxe-table--render-default .is--indeterminate.vxe-cell--checkbox,
+.vxe-table--render-default .is--indeterminate.vxe-cell--checkbox .vxe-checkbox--icon,
+.vxe-table--render-default .is--checked.vxe-cell--radio .vxe-radio--icon {
+ color: var(--el-color-primary-light-3);
+}
+
+.vxe-checkbox:not(.is--disabled):hover .vxe-checkbox--icon,
+.vxe-custom--checkbox-option:not(.is--disabled):hover .vxe-checkbox--icon,
+.vxe-export--panel-column-option:not(.is--disabled):hover .vxe-checkbox--icon,
+.vxe-table--filter-option:not(.is--disabled):hover .vxe-checkbox--icon,
+.vxe-table--render-default .vxe-cell--checkbox:not(.is--disabled):hover .vxe-checkbox--icon,
+.vxe-radio:not(.is--disabled):hover .vxe-radio--icon,
+.vxe-custom--radio-option:not(.is--disabled):hover .vxe-radio--icon,
+.vxe-export--panel-column-option:not(.is--disabled):hover .vxe-radio--icon,
+.vxe-table--filter-option:not(.is--disabled):hover .vxe-radio--icon,
+.vxe-table--render-default .vxe-cell--radio:not(.is--disabled):hover .vxe-radio--icon {
+ color: var(--el-color-primary-light-5);
+}
+
+.vxe-table--render-default .vxe-body--row.row--current,
+.vxe-table--render-default .vxe-body--row.row--current:hover {
+ background-color: var(--el-color-primary-light-8);
+}
+
+.vxe-table--tooltip-wrapper {
+ z-index: 10000 !important;
+}
+
+.is--disabled {
+ background-color: var(--vxe-input-disabled-color);
+}
+
+.vxe-modal--wrapper {
+ z-index: 5000 !important;
+}
diff --git a/src/styles/vxeTable.min.css b/src/styles/vxeTable.min.css
new file mode 100644
index 0000000..25e7f47
--- /dev/null
+++ b/src/styles/vxeTable.min.css
@@ -0,0 +1 @@
+.vxe-header--row{background:var(--vxe-table-header-background-color);color:var(--vxe-table-header-font-color)}.is--checked.vxe-checkbox,.is--checked.vxe-checkbox .vxe-checkbox--icon,.is--checked.vxe-custom--checkbox-option,.is--checked.vxe-custom--checkbox-option .vxe-checkbox--icon,.is--checked.vxe-export--panel-column-option,.is--checked.vxe-export--panel-column-option .vxe-checkbox--icon,.is--checked.vxe-table--filter-option,.is--checked.vxe-table--filter-option .vxe-checkbox--icon,.is--indeterminate.vxe-checkbox,.is--indeterminate.vxe-checkbox .vxe-checkbox--icon,.is--indeterminate.vxe-custom--checkbox-option,.is--indeterminate.vxe-custom--checkbox-option .vxe-checkbox--icon,.is--indeterminate.vxe-export--panel-column-option,.is--indeterminate.vxe-export--panel-column-option .vxe-checkbox--icon,.is--indeterminate.vxe-table--filter-option,.is--indeterminate.vxe-table--filter-option .vxe-checkbox--icon,.vxe-table--render-default .is--checked.vxe-cell--checkbox,.vxe-table--render-default .is--checked.vxe-cell--checkbox .vxe-checkbox--icon,.vxe-table--render-default .is--indeterminate.vxe-cell--checkbox,.vxe-table--render-default .is--indeterminate.vxe-cell--checkbox .vxe-checkbox--icon,.vxe-table--render-default .is--checked.vxe-cell--radio .vxe-radio--icon{color:var(--el-color-primary-light-3)}.vxe-checkbox:not(.is--disabled):hover .vxe-checkbox--icon,.vxe-custom--checkbox-option:not(.is--disabled):hover .vxe-checkbox--icon,.vxe-export--panel-column-option:not(.is--disabled):hover .vxe-checkbox--icon,.vxe-table--filter-option:not(.is--disabled):hover .vxe-checkbox--icon,.vxe-table--render-default .vxe-cell--checkbox:not(.is--disabled):hover .vxe-checkbox--icon,.vxe-radio:not(.is--disabled):hover .vxe-radio--icon,.vxe-custom--radio-option:not(.is--disabled):hover .vxe-radio--icon,.vxe-export--panel-column-option:not(.is--disabled):hover .vxe-radio--icon,.vxe-table--filter-option:not(.is--disabled):hover .vxe-radio--icon,.vxe-table--render-default .vxe-cell--radio:not(.is--disabled):hover .vxe-radio--icon{color:var(--el-color-primary-light-5)}.vxe-table--render-default .vxe-body--row.row--current,.vxe-table--render-default .vxe-body--row.row--current:hover{background-color:var(--el-color-primary-light-8)}.vxe-table--tooltip-wrapper{z-index:10000 !important}.is--disabled{background-color:var(--vxe-input-disabled-color)}.vxe-modal--wrapper{z-index:5000 !important}
diff --git a/src/styles/vxeTable.scss b/src/styles/vxeTable.scss
index 36c6917..2038e84 100644
--- a/src/styles/vxeTable.scss
+++ b/src/styles/vxeTable.scss
@@ -1,84 +1,87 @@
-// .vxe-table--body-wrapper,
-// .boxbx {
-// &::-webkit-scrollbar {
-// width: 10px;
-// height: 10px;
-// }
-// &::-webkit-scrollbar-thumb {
-// border-radius: 5px;
-// height: 3px;
-// background-color: var(--el-color-primary) !important;
-// border-radius: 30px !important;
-// }
-// }
-
-// .vxe-table--body-wrapper::-webkit-scrollbar-thumb {
-// border-radius: 5px;
-// height: 3px;
-// background-color: var(--el-color-primary) !important;
-// border-radius: 30px !important;
-// }
-
-.vxe-header--row {
- background: var(--vxe-table-header-background-color);
- color: var(--vxe-table-header-font-color);
-}
-
-.is--checked.vxe-checkbox,
-.is--checked.vxe-checkbox .vxe-checkbox--icon,
-.is--checked.vxe-custom--checkbox-option,
-.is--checked.vxe-custom--checkbox-option .vxe-checkbox--icon,
-.is--checked.vxe-export--panel-column-option,
-.is--checked.vxe-export--panel-column-option .vxe-checkbox--icon,
-.is--checked.vxe-table--filter-option,
-.is--checked.vxe-table--filter-option .vxe-checkbox--icon,
-.is--indeterminate.vxe-checkbox,
-.is--indeterminate.vxe-checkbox .vxe-checkbox--icon,
-.is--indeterminate.vxe-custom--checkbox-option,
-.is--indeterminate.vxe-custom--checkbox-option .vxe-checkbox--icon,
-.is--indeterminate.vxe-export--panel-column-option,
-.is--indeterminate.vxe-export--panel-column-option .vxe-checkbox--icon,
-.is--indeterminate.vxe-table--filter-option,
-.is--indeterminate.vxe-table--filter-option .vxe-checkbox--icon,
-.vxe-table--render-default .is--checked.vxe-cell--checkbox,
-.vxe-table--render-default .is--checked.vxe-cell--checkbox .vxe-checkbox--icon,
-.vxe-table--render-default .is--indeterminate.vxe-cell--checkbox,
-.vxe-table--render-default .is--indeterminate.vxe-cell--checkbox .vxe-checkbox--icon,
-.vxe-table--render-default .is--checked.vxe-cell--radio .vxe-radio--icon {
- color: var(--el-color-primary-light-3);
-}
-
-.vxe-checkbox:not(.is--disabled):hover .vxe-checkbox--icon,
-.vxe-custom--checkbox-option:not(.is--disabled):hover .vxe-checkbox--icon,
-.vxe-export--panel-column-option:not(.is--disabled):hover .vxe-checkbox--icon,
-.vxe-table--filter-option:not(.is--disabled):hover .vxe-checkbox--icon,
-.vxe-table--render-default .vxe-cell--checkbox:not(.is--disabled):hover .vxe-checkbox--icon,
-.vxe-radio:not(.is--disabled):hover .vxe-radio--icon,
-.vxe-custom--radio-option:not(.is--disabled):hover .vxe-radio--icon,
-.vxe-export--panel-column-option:not(.is--disabled):hover .vxe-radio--icon,
-.vxe-table--filter-option:not(.is--disabled):hover .vxe-radio--icon,
-.vxe-table--render-default .vxe-cell--radio:not(.is--disabled):hover .vxe-radio--icon {
- color: var(--el-color-primary-light-5);
-}
-
-// .vxe-table--render-default .is--disabled.vxe-cell--checkbox .vxe-checkbox--icon{
-// color: #fff0;
-// }
-.vxe-table--tooltip-wrapper {
- z-index: 10000 !important;
-}
-.is--disabled {
- background-color: var(--vxe-input-disabled-color);
-}
-
-.vxe-modal--wrapper {
- z-index: 5000 !important;
-}
-.vxe-table--body .vxe-body--row:nth-child(even) {
- background-color: #f9f9f9;
- // background-color: var(--el-color-primary-light-9);
-}
-
-.vxe-table--body .vxe-body--row:nth-child(odd) {
- background-color: #ffffff;
-}
+// .vxe-table--body-wrapper,
+// .boxbx {
+// &::-webkit-scrollbar {
+// width: 10px;
+// height: 10px;
+// }
+// &::-webkit-scrollbar-thumb {
+// border-radius: 5px;
+// height: 3px;
+// background-color: var(--el-color-primary) !important;
+// border-radius: 30px !important;
+// }
+// }
+
+// .vxe-table--body-wrapper::-webkit-scrollbar-thumb {
+// border-radius: 5px;
+// height: 3px;
+// background-color: var(--el-color-primary) !important;
+// border-radius: 30px !important;
+// }
+
+.vxe-header--row {
+ background: var(--vxe-table-header-background-color);
+ color: var(--vxe-table-header-font-color);
+}
+
+.is--checked.vxe-checkbox,
+.is--checked.vxe-checkbox .vxe-checkbox--icon,
+.is--checked.vxe-custom--checkbox-option,
+.is--checked.vxe-custom--checkbox-option .vxe-checkbox--icon,
+.is--checked.vxe-export--panel-column-option,
+.is--checked.vxe-export--panel-column-option .vxe-checkbox--icon,
+.is--checked.vxe-table--filter-option,
+.is--checked.vxe-table--filter-option .vxe-checkbox--icon,
+.is--indeterminate.vxe-checkbox,
+.is--indeterminate.vxe-checkbox .vxe-checkbox--icon,
+.is--indeterminate.vxe-custom--checkbox-option,
+.is--indeterminate.vxe-custom--checkbox-option .vxe-checkbox--icon,
+.is--indeterminate.vxe-export--panel-column-option,
+.is--indeterminate.vxe-export--panel-column-option .vxe-checkbox--icon,
+.is--indeterminate.vxe-table--filter-option,
+.is--indeterminate.vxe-table--filter-option .vxe-checkbox--icon,
+.vxe-table--render-default .is--checked.vxe-cell--checkbox,
+.vxe-table--render-default .is--checked.vxe-cell--checkbox .vxe-checkbox--icon,
+.vxe-table--render-default .is--indeterminate.vxe-cell--checkbox,
+.vxe-table--render-default .is--indeterminate.vxe-cell--checkbox .vxe-checkbox--icon,
+.vxe-table--render-default .is--checked.vxe-cell--radio .vxe-radio--icon {
+ color: var(--el-color-primary-light-3);
+}
+
+.vxe-checkbox:not(.is--disabled):hover .vxe-checkbox--icon,
+.vxe-custom--checkbox-option:not(.is--disabled):hover .vxe-checkbox--icon,
+.vxe-export--panel-column-option:not(.is--disabled):hover .vxe-checkbox--icon,
+.vxe-table--filter-option:not(.is--disabled):hover .vxe-checkbox--icon,
+.vxe-table--render-default .vxe-cell--checkbox:not(.is--disabled):hover .vxe-checkbox--icon,
+.vxe-radio:not(.is--disabled):hover .vxe-radio--icon,
+.vxe-custom--radio-option:not(.is--disabled):hover .vxe-radio--icon,
+.vxe-export--panel-column-option:not(.is--disabled):hover .vxe-radio--icon,
+.vxe-table--filter-option:not(.is--disabled):hover .vxe-radio--icon,
+.vxe-table--render-default .vxe-cell--radio:not(.is--disabled):hover .vxe-radio--icon {
+ color: var(--el-color-primary-light-5);
+}
+.vxe-table--render-default .vxe-body--row.row--current,
+.vxe-table--render-default .vxe-body--row.row--current:hover {
+ background-color: var(--el-color-primary-light-8);
+}
+// .vxe-table--render-default .is--disabled.vxe-cell--checkbox .vxe-checkbox--icon{
+// color: #fff0;
+// }
+.vxe-table--tooltip-wrapper {
+ z-index: 10000 !important;
+}
+.is--disabled {
+ background-color: var(--vxe-input-disabled-color);
+}
+
+.vxe-modal--wrapper {
+ z-index: 5000 !important;
+}
+// .vxe-table--body .vxe-body--row:nth-child(even) {
+// background-color: #f9f9f9;
+// // background-color: var(--el-color-primary-light-9);
+// }
+
+// .vxe-table--body .vxe-body--row:nth-child(odd) {
+// background-color: #ffffff;
+// }
diff --git a/src/utils/request.ts b/src/utils/request.ts
index cd54457..a796349 100644
--- a/src/utils/request.ts
+++ b/src/utils/request.ts
@@ -68,7 +68,12 @@ function createAxios>(
config.url == '/harmonic-boot/grid/getAssessOverview' ||
config.url == '/harmonic-boot/gridDiagram/getGridDiagramAreaData' ||
config.url == '/cs-device-boot/csline/list' ||
- config.url == '/cs-harmonic-boot/pqSensitiveUser/getListByIds'
+ config.url == '/cs-harmonic-boot/pqSensitiveUser/getListByIds'||
+ config.url == '/cs-harmonic-boot/csevent/getEventCoords'||
+ config.url == '/cs-harmonic-boot/limitRateDetailD/limitTimeProbabilityData'||
+ config.url == '/cs-harmonic-boot/limitRateDetailD/limitProbabilityData'||
+ config.url == '/system-boot/dictTree/queryByCode'||
+ config.url == '/system-boot/dictTree/query'
)
)
removePending(config)
@@ -174,6 +179,8 @@ function createAxios>(
setTimeout(() => {
ElMessage.error(response.data.message || '未知错误')
}, 6000)
+ }else if (response.config.url == '/cs-harmonic-boot/cspage/getByUserId') {
+
} else {
ElMessage.error(response.data.message || '未知错误')
}
diff --git a/src/views/auth/role/index.vue b/src/views/auth/role/index.vue
index aab5dc2..743cd94 100644
--- a/src/views/auth/role/index.vue
+++ b/src/views/auth/role/index.vue
@@ -5,7 +5,7 @@
角色列表
新增
-
+
@@ -26,7 +26,7 @@ import { ref, onMounted, provide } from 'vue'
import TableStore from '@/utils/tableStore'
import Table from '@/components/table/index.vue'
import TableHeader from '@/components/table/header/index.vue'
-import Tree from '@/components/tree/index.vue'
+import Tree from '@/components/tree/allocation.vue'
import { functionTree } from '@/api/user-boot/function'
import { getFunctionsByRoleIndex, updateRoleMenu } from '@/api/user-boot/roleFuction'
import { mainHeight } from '@/utils/layout'
@@ -43,6 +43,7 @@ const height = mainHeight(20).height
const treeRef = ref()
const menuTree = ref([])
const popupRef = ref()
+const tableRef = ref()
const checkStrictly = ref(true)
const menuListId = ref('')
const tableStore = new TableStore({
@@ -104,7 +105,13 @@ const tableStore = new TableStore({
}
]
}
- ]
+ ],
+ loadCallback: () => {
+ tableRef.value.getRef().setCurrentRow(tableStore.table.data[0])
+ currentChange({
+ row: tableStore.table.data[0]
+ })
+ }
})
tableStore.table.params.searchValue = ''
@@ -139,21 +146,22 @@ const currentChange = (data: any) => {
const timeout = ref()
const checkChange = (data: any) => {
- if (checkStrictly.value) {
- checkStrictly.value = false
- return
- }
- if (timeout.value) {
- clearTimeout(timeout.value)
- }
- timeout.value = setTimeout(() => {
- updateRoleMenu({
- id: menuListId.value,
- idList: treeRef.value.treeRef.getCheckedNodes(false, true).map((node: any) => node.id)
- }).then(() => {
+ // if (checkStrictly.value) {
+ // checkStrictly.value = false
+ // return
+ // }
+
+ updateRoleMenu({
+ id: menuListId.value,
+ idList: treeRef.value.treeRef.getCheckedNodes(false, true).map((node: any) => node.id)
+ })
+ .then(() => {
ElMessage.success('操作成功!')
+ treeRef.value.loading = false
+ })
+ .catch(() => {
+ treeRef.value.loading = false
})
- }, 1000)
}
onMounted(() => {
tableStore.index()
diff --git a/src/views/govern/alarm/Device.vue b/src/views/govern/alarm/Device.vue
index fc109bf..be508c0 100644
--- a/src/views/govern/alarm/Device.vue
+++ b/src/views/govern/alarm/Device.vue
@@ -83,14 +83,14 @@ const tableStore = new TableStore({
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
- { title: '设备名称', field: 'equipmentName', align: 'center' },
- { title: '工程名称', field: 'engineeringName', align: 'center' },
- { title: '项目名称', field: 'projectName', align: 'center' },
- { title: '发生时刻', field: 'startTime', align: 'center', width: 180, sortable: true },
+ { title: '设备名称', field: 'equipmentName', align: 'center',minWidth: 100 },
+ { title: '工程名称', field: 'engineeringName', align: 'center',minWidth: 100 },
+ { title: '项目名称', field: 'projectName', align: 'center',minWidth: 100 },
+ { title: '发生时刻', field: 'startTime', align: 'center', minWidth: 180, sortable: true },
{
title: '模块信息',
field: 'moduleNo',
- align: 'center',
+ align: 'center',minWidth: 100 ,
formatter: (row: any) => {
return row.cellValue ? row.cellValue : '/'
}
@@ -107,7 +107,7 @@ const tableStore = new TableStore({
},
{
title: '事件描述',
- minWidth: 220,
+ minWidth: 250,
field: 'showName'
},
{
diff --git a/src/views/govern/alarm/Front.vue b/src/views/govern/alarm/Front.vue
index 8fb99a6..576200f 100644
--- a/src/views/govern/alarm/Front.vue
+++ b/src/views/govern/alarm/Front.vue
@@ -35,10 +35,10 @@ const tableStore = new TableStore({
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
- { title: '前置服务器名称', field: 'lineId', align: 'center' },
- { title: '前置服务器ip', field: 'wavePath', align: 'center' },
- { title: '进程号', field: 'clDid', align: 'center' },
- { title: '发生时刻', field: 'startTime', align: 'center', minWidth: 80, sortable: true },
+ { title: '前置服务器名称', field: 'lineId', align: 'center' ,minWidth: 120 },
+ { title: '前置服务器ip', field: 'wavePath', align: 'center' ,minWidth: 100 },
+ { title: '进程号', field: 'clDid', align: 'center',minWidth: 60 },
+ { title: '发生时刻', field: 'startTime', align: 'center', minWidth: 180, sortable: true },
{
title: '事件描述',
@@ -48,7 +48,8 @@ const tableStore = new TableStore({
{
title: '告警代码',
field: 'code',
- align: 'center',
+ align: 'center',minWidth: 100 ,
+
formatter: (row: any) => {
return row.cellValue ? '\u200B' + row.cellValue : '/'
diff --git a/src/views/govern/alarm/Transient.vue b/src/views/govern/alarm/Transient.vue
index abff634..7d53603 100644
--- a/src/views/govern/alarm/Transient.vue
+++ b/src/views/govern/alarm/Transient.vue
@@ -128,15 +128,15 @@ const tableStore = new TableStore({
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
- { title: '设备名称', field: 'equipmentName', align: 'center' },
- { title: '工程名称', field: 'engineeringName', align: 'center' },
- { title: '项目名称', field: 'projectName', align: 'center' },
- { title: '发生时刻', field: 'startTime', align: 'center', width: '240',sortable: true },
- { title: '监测点名称', field: 'lineName', align: 'center' },
- { title: '事件描述', field: 'showName', align: 'center' },
- { title: '事件发生位置', field: 'evtParamPosition', align: 'center' },
- { title: '相别', field: 'evtParamPhase', align: 'center' },
- { title: '持续时间(s)', field: 'evtParamTm', align: 'center',sortable: true },
+ { title: '设备名称', field: 'equipmentName', minWidth: 120,align: 'center' },
+ { title: '工程名称', field: 'engineeringName', minWidth: 120,align: 'center' },
+ { title: '项目名称', field: 'projectName', minWidth: 120,align: 'center' },
+ { title: '发生时刻', field: 'startTime', align: 'center', minWidth: 180,sortable: true },
+ { title: '监测点名称', field: 'lineName', minWidth: 120,align: 'center' },
+ { title: '事件描述', field: 'showName', minWidth: 120,align: 'center' },
+ { title: '事件发生位置', field: 'evtParamPosition',minWidth: 150, align: 'center' },
+ { title: '相别', field: 'evtParamPhase',minWidth: 80, align: 'center' },
+ { title: '持续时间(s)', field: 'evtParamTm',minWidth: 80, align: 'center',sortable: true },
{ title: '暂降(聚升)幅值(%)', minWidth: 100, field: 'evtParamVVaDepth', align: 'center',sortable: true },
{
@@ -166,7 +166,7 @@ const tableStore = new TableStore({
boxoList.value = row
boxoList.value.featureAmplitude =
row.evtParamVVaDepth != '-' ? row.evtParamVVaDepth - 0 : null
- boxoList.value.systemType = 'WX'
+ boxoList.value.systemType = 'ZL'
wp.value = res.data
}
loading.value = false
diff --git a/src/views/govern/device/control/index.vue b/src/views/govern/device/control/index.vue
index ace73cf..942e19f 100644
--- a/src/views/govern/device/control/index.vue
+++ b/src/views/govern/device/control/index.vue
@@ -77,7 +77,6 @@
-->
-
-
+
{{ item.name }}
@@ -157,7 +156,7 @@
-->
@@ -733,14 +732,14 @@ const handleHarmonicSpectrum = async () => {
// getRealDataMqttMsg()
await getBasicRealData(lineId.value).then((res: any) => {
if (res.code == 'A0000') {
- ElMessage.success('装置应答成功')
+ ElMessage.success('装置应答成功')
// mqttMessage.value = {}
realDataTimer.value = window.setInterval(() => {
if (!dataSet.value.includes('_realtimedata')) return
getBasicRealData(lineId.value).then((res: any) => {
- console.log(res, '获取基础实时数据')
+ console.log(res, '获取基础实时数据')
})
}, 30000)
}
@@ -838,8 +837,8 @@ const devData: any = ref({})
const lineId: any = ref('')
const dataLevel: any = ref('')
const dataSource = ref([])
-const nodeClick = async (e: anyObj) => {
- console.log("🚀 ~ nodeClick ~ e:", e)
+const engineeringName = ref('')
+const nodeClick = async (e: anyObj, node: any) => {
if (e == undefined || e.level == 2) {
return (loading.value = false)
}
@@ -855,6 +854,8 @@ const nodeClick = async (e: anyObj) => {
//选中设备名称后,点击标签页也能查询数据,要求点击设备名称后,点击标签页默认查询第一个监测点数据
if (e.level == 3 || e.level == 2) {
+ engineeringName.value = node?.parent.parent.data.name
+
await queryDictType({
lineId: e?.id,
conType: e.conType
@@ -985,44 +986,42 @@ const getRealDataMqttMsg = async () => {
JSON.parse(JSON.stringify(JSON.parse(new TextDecoder().decode(message))))
)
let obj = JSON.parse(JSON.stringify(JSON.parse(new TextDecoder().decode(message))))
-
+
if (lineId.value != obj.lineId || adminInfo.userIndex != obj.userId) return
//处理mqtt数据 1转2除 2转1乘
//如果消息返回值是二次值,下拉框是二次值只需要单位换算 除以1000
//如果消息返回值是一次值,下拉框是一次值只需要单位换算 除以1000
if (obj.dataLevel == formInline.dataLevel) {
-
obj = {
...obj,
// 电压有效值
- vRmsA: obj.vRmsA ,
- vRmsB: obj.vRmsB ,
- vRmsC: obj.vRmsC ,
+ vRmsA: obj.vRmsA,
+ vRmsB: obj.vRmsB,
+ vRmsC: obj.vRmsC,
//基波电压幅值
- v1A: obj.v1A ,
- v1B: obj.v1B ,
- v1C: obj.v1C ,
+ v1A: obj.v1A,
+ v1B: obj.v1B,
+ v1C: obj.v1C,
//有功功率
- pA: obj.pA ,
- pB: obj.pB ,
- pC: obj.pC ,
- pTot: obj.pTot ,
+ pA: obj.pA,
+ pB: obj.pB,
+ pC: obj.pC,
+ pTot: obj.pTot,
//无功功率
- qA: obj.qA ,
- qB: obj.qB ,
- qC: obj.qC ,
- qTot: obj.qTot ,
+ qA: obj.qA,
+ qB: obj.qB,
+ qC: obj.qC,
+ qTot: obj.qTot,
//视在功率
- sA: obj.sA ,
- sB: obj.sB ,
- sC: obj.sC ,
- sTot: obj.sTot
+ sA: obj.sA,
+ sB: obj.sB,
+ sC: obj.sC,
+ sTot: obj.sTot
}
}
//如果消息返回值是二次值,下拉框是一次值需要单位换算 除以1000 并且乘以pt ct
if (obj.dataLevel == 'Secondary' && formInline.dataLevel == 'Primary') {
-
obj = {
...obj,
// 电压有效值
@@ -1103,9 +1102,11 @@ const getRealDataMqttMsg = async () => {
}
if (obj.hasOwnProperty('pA') && obj.hasOwnProperty('pB')) {
mqttMessage.value = obj
-
+
//更新实时数据主页面值
- realTimeFlag.value && realTimeRef.value && realTimeRef.value.setRealData(mqttMessage.value,formInline.dataLevel)
+ realTimeFlag.value &&
+ realTimeRef.value &&
+ realTimeRef.value.setRealData(mqttMessage.value, formInline.dataLevel)
tableLoading.value = false
//更新实时趋势折线图数据
if (sonTab.value == 2) {
@@ -1229,6 +1230,7 @@ const handleClick = async (tab?: any) => {
let obj = {
devId: deviceId.value, //e.id
lineId: lineId.value, //e.pid
+ engineeringName: engineeringName.value, //e.name
type: 3,
list: [
{
@@ -1423,9 +1425,7 @@ const echoName = (value: any, arr: any[]) => {
return value ? arr.find(item => item.value == value)?.label : '/'
}
-onMounted(() => {
-
-})
+onMounted(() => {})
onBeforeUnmount(() => {
clearInterval(realDataTimer.value)
clearInterval(trendTimer.value)
diff --git a/src/views/govern/device/control/moduleData.vue b/src/views/govern/device/control/moduleData.vue
index 254a3d5..592f5e1 100644
--- a/src/views/govern/device/control/moduleData.vue
+++ b/src/views/govern/device/control/moduleData.vue
@@ -1,676 +1,676 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/govern/device/control/tabs/components/realtrend.vue b/src/views/govern/device/control/tabs/components/realtrend.vue
index 2f662de..2ae9f8c 100644
--- a/src/views/govern/device/control/tabs/components/realtrend.vue
+++ b/src/views/govern/device/control/tabs/components/realtrend.vue
@@ -1,509 +1,509 @@
-
-
-
-
-
-
-
-
-
-
-
-
次数(次)
-
{{ item.groupName }}{{ item.unit ? '(' + item.unit + ')' : '' }}
-
-
-
-
-
- {{ Number(String(key).replace('data', ' ')) - 0.5 }}
-
-
- {{ String(key).replace('data', ' ') }}
-
-
-
- {{ value }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
次数(次)
+
{{ item.groupName }}{{ item.unit ? '(' + item.unit + ')' : '' }}
+
+
+
+
+
+ {{ Number(String(key).replace('data', ' ')) - 0.5 }}
+
+
+ {{ String(key).replace('data', ' ') }}
+
+
+
+ {{ value }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/govern/device/control/tabs/event.vue b/src/views/govern/device/control/tabs/event.vue
index 28aab0f..a7da678 100644
--- a/src/views/govern/device/control/tabs/event.vue
+++ b/src/views/govern/device/control/tabs/event.vue
@@ -2,8 +2,13 @@
+
diff --git a/src/views/govern/device/planData/components/transient.vue b/src/views/govern/device/planData/components/transient.vue
index 557bcfa..87e1350 100644
--- a/src/views/govern/device/planData/components/transient.vue
+++ b/src/views/govern/device/planData/components/transient.vue
@@ -1,191 +1,191 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/src/views/govern/device/tourist/index.vue b/src/views/govern/device/tourist/index.vue
index a7298cc..5619e5f 100644
--- a/src/views/govern/device/tourist/index.vue
+++ b/src/views/govern/device/tourist/index.vue
@@ -1,95 +1,96 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/src/views/govern/manage/basic/version.vue b/src/views/govern/manage/basic/version.vue
index ecf77b2..ffa3120 100644
--- a/src/views/govern/manage/basic/version.vue
+++ b/src/views/govern/manage/basic/version.vue
@@ -1,165 +1,165 @@
-
-
-
-
-
-
-
-
-
-
-
- 新增版本
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+ 新增版本
+
+
+
+
+
+
+
diff --git a/src/views/govern/monitorRecall/eventRecall.vue b/src/views/govern/monitorRecall/eventRecall.vue
index 4ac7599..296279e 100644
--- a/src/views/govern/monitorRecall/eventRecall.vue
+++ b/src/views/govern/monitorRecall/eventRecall.vue
@@ -6,7 +6,7 @@
波形补召
-
+
@@ -16,17 +16,16 @@ import TableStore from '@/utils/tableStore'
import Table from '@/components/table/index.vue'
import TableHeader from '@/components/table/header/index.vue'
import { Setting } from '@element-plus/icons-vue'
-import {eventRecall,fileRecall,logRecall} from '@/api/cs-device-boot/recall'
+import { eventRecall, fileRecall, logRecall } from '@/api/cs-device-boot/recall'
import { ElMessage } from 'element-plus'
import { el } from 'element-plus/es/locale'
-
const props = defineProps({
checkedNodes: {
type: Array,
default: () => []
}
-});
+})
const tableStore: any = new TableStore({
url: '/cs-device-boot/csTerminalReply/bzLogs',
@@ -34,14 +33,16 @@ const tableStore: any = new TableStore({
method: 'POST',
column: [
{
- title: '序号', width: 80, formatter: (row: any) => {
+ title: '序号',
+ width: 80,
+ formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
- {
+ {
field: 'engineeringName',
title: '项目名称',
-
+ width: 120,
formatter: row => {
return row.cellValue ? row.cellValue : '/'
}
@@ -49,23 +50,23 @@ const tableStore: any = new TableStore({
{
field: 'projectName',
title: '工程名称',
-
+ width: 120,
formatter: row => {
return row.cellValue ? row.cellValue : '/'
}
},
- {
+ {
field: 'deviceName',
title: '设备名称',
-
+ width: 120,
formatter: row => {
return row.cellValue ? row.cellValue : '/'
}
},
- {
+ {
field: 'lineName',
title: '监测点名称',
-
+ width: 120,
formatter: row => {
return row.cellValue ? row.cellValue : '/'
}
@@ -73,23 +74,23 @@ const tableStore: any = new TableStore({
{
field: 'logTime',
title: '补召时间',
-
+ width: 160,
formatter: row => {
return row.cellValue ? row.cellValue : '/'
}
},
- {
+ {
field: 'log',
title: '类型',
-
+ width: 80,
formatter: row => {
return row.cellValue ? row.cellValue : '/'
}
},
- {
+ {
field: 'status',
title: '状态',
-
+ width: 80,
formatter: row => {
return row.cellValue ? row.cellValue : '/'
}
@@ -97,25 +98,22 @@ const tableStore: any = new TableStore({
{
field: 'result',
title: '结果',
-
+
formatter: row => {
return row.cellValue ? row.cellValue : '/'
}
- },
-
+ }
],
beforeSearchFun: () => {
if (!nodeClick.value || nodeClick.value.level !== 3) {
ElMessage.warning('请先选中监测点')
- return // 阻止查询
+ return // 阻止查询
}
if (nodeClick.value) {
tableStore.table.params.searchValue = nodeClick.value.id
}
},
- loadCallback: () => {
-
- }
+ loadCallback: () => {}
})
provide('tableStore', tableStore)
@@ -127,19 +125,18 @@ const handleTreeNodeClick = (node: any) => {
if (tableStore && tableStore.index) {
// 判断当前节点是否为监测点层级
if (node) {
- if (node.level !== 3) {
+ if (node.level !== 3) {
ElMessage.warning('请先选中监测点')
return
}
- }else {
- ElMessage.warning('请先选中监测点')
- return
+ } else {
+ ElMessage.warning('请先选中监测点')
+ return
}
tableStore.index()
}
}
-
const recall1 = async () => {
if (!props.checkedNodes || props.checkedNodes.length === 0) {
ElMessage.warning('请先勾选监测点')
@@ -163,13 +160,12 @@ const recall2 = async () => {
await fileRecall({
startTime: tableStore.table.params.startTime,
endTime: tableStore.table.params.endTime,
- lineList: props.checkedNodes.map((node: any) => node.id)
+ lineList: props.checkedNodes.map((node: any) => node.id)
}).then((res: any) => {
ElMessage.success('补召波形成功')
})
}
-
// 暴露方法给父组件调用
defineExpose({
handleTreeNodeClick
@@ -194,4 +190,4 @@ defineExpose({
.view :deep(.el-table) {
height: calc(100% - 56px);
}
-
\ No newline at end of file
+
diff --git a/src/views/govern/mxgraph/graphList/components/popup.vue b/src/views/govern/mxgraph/graphList/components/popup.vue
index b45c421..7c50e52 100644
--- a/src/views/govern/mxgraph/graphList/components/popup.vue
+++ b/src/views/govern/mxgraph/graphList/components/popup.vue
@@ -1,214 +1,229 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/govern/mxgraph/graphList/index.vue b/src/views/govern/mxgraph/graphList/index.vue
index d335e6f..c69051c 100644
--- a/src/views/govern/mxgraph/graphList/index.vue
+++ b/src/views/govern/mxgraph/graphList/index.vue
@@ -28,7 +28,7 @@
{{ item.name }}
-
+
-
-
+
- 设计
-
-
+
+ 设计
+
+
-
-
- 删除
-
+
+ 删除
+
+
item.includes('operation_manager')|| item.includes('root'))
const tableRef = ref()
const popupRef = ref()
let DOMIN = window.location.origin
@@ -120,8 +138,12 @@ const tableStore = new TableStore({
})
provide('tableStore', tableStore)
tableStore.table.params.searchValue = ''
+tableStore.table.params.currentUserId = adminInfo.id
+// let aa=['operation_manager',]
+tableStore.table.params.roleCode = adminInfo.roleCode.join(',')
onMounted(() => {
tableStore.table.ref = tableRef.value
+ getBindId()
tableStore.index()
tableStore.table.loading = false
})
@@ -131,6 +153,31 @@ const onSubmitadd = () => {
title: '新增项目'
})
}
+const bindId = ref('')
+const activate = (e: any) => {
+ ElMessageBox.confirm('是否绑定?', '提示', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning'
+ })
+ .then(() => {
+ savePageIdWithUser({ pageId: e.id, userId: adminInfo.id }).then(res => {
+ if (res.code == 'A0000') {
+ ElMessage({
+ type: 'success',
+ message: '操作成功'
+ })
+ bindId.value = e.id
+ }
+ })
+ })
+ .catch(() => {})
+}
+const getBindId = () => {
+ getByUserId({ userId: adminInfo.id }).then(res => {
+ bindId.value = res.data.pageId
+ })
+}
const querdata = (e: any) => {}
const editd = (e: any) => {
popupRef.value.open({
@@ -142,7 +189,7 @@ const editd = (e: any) => {
const Aclick = (e: any) => {
//window.open(window.location.origin + `/zutai/?id=${e.id}&&name=${e.name}&&preview=false&&graphicDisplay=zl`)
window.open(
- window.location.origin +
+ window.location.origin +
`/zutai/?id=${e.id}&&name=${e.name}&&preview=false&&graphicDisplay=${VITE_FLAG ? 'ypt' : 'zl'}`
)
}
@@ -179,7 +226,10 @@ const deleted = (e: any) => {
const imgData = (e: any) => {
window.open(
- window.location.origin + `/zutai/?id=${e.id}&&name=${e.name}&&preview=true&&graphicDisplay=${VITE_FLAG ? 'ypt' : 'zl'}#/preview_ZL`
+ window.location.origin +
+ `/zutai/?id=${e.id}&&name=${e.name}&&preview=true&&graphicDisplay=${VITE_FLAG ? 'ypt' : 'zl'}#/preview_${
+ VITE_FLAG ? 'YPT' : 'ZL'
+ }`
)
// window.open('http://192.168.1.128:4001' + `/zutai/?id=${e.id}&&name=${e.name}&&preview=true&&graphicDisplay=zl#/preview_ZL`)
}
diff --git a/src/views/govern/reportCore/lineReport/index.vue b/src/views/govern/reportCore/lineReport/index.vue
index 8cbc82e..951fb45 100644
--- a/src/views/govern/reportCore/lineReport/index.vue
+++ b/src/views/govern/reportCore/lineReport/index.vue
@@ -219,6 +219,13 @@ const exportEvent = () => {
formd.value.searchEndTime = TableHeaderRef.value.datePickerRef.timeValue[1]
formd.value.flag = TableHeaderRef.value.datePickerRef.interval
ElMessage('生成报告中,请稍等!')
+ const now = new Date()
+ const year = now.getFullYear() // 4位年份
+ const month = now.getMonth() + 1 // 月份0-11,需+1
+ const day = now.getDate() // 日期1-31
+
+ // 格式化YYYY - MM - DD(补零)
+ const formattedDate = `${year}${String(month).padStart(2, '0')}${String(day).padStart(2, '0')}`
getLineExport(formd.value).then((res: any) => {
let blob = new Blob([res], {
type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=UTF-8'
@@ -227,7 +234,7 @@ const exportEvent = () => {
const url = window.URL.createObjectURL(blob)
const link = document.createElement('a') // 创建a标签
link.href = url
- link.download = '监测点报告' // 设置下载的文件名
+ link.download = dotList.value.name+formattedDate // 设置下载的文件名
document.body.appendChild(link)
link.click() //执行下载
document.body.removeChild(link)
diff --git a/src/views/govern/reportCore/report/index.vue b/src/views/govern/reportCore/report/index.vue
index 7b101c4..d8814fe 100644
--- a/src/views/govern/reportCore/report/index.vue
+++ b/src/views/govern/reportCore/report/index.vue
@@ -1,8 +1,7 @@
-
+
-
{
}
// 生成
const exportEvent = () => {
- console.log("🚀 ~ exportEvent ~ dotList.value:", dotList.value)
+ console.log('🚀 ~ exportEvent ~ dotList.value:', dotList.value)
if (dotList.value?.level != 4) {
return ElMessage.warning('请选择监测点进行报告生成!')
}
@@ -148,6 +148,13 @@ const exportEvent = () => {
})
} else {
ElMessage('生成报告中...')
+ const now = new Date()
+ const year = now.getFullYear() // 4位年份
+ const month = now.getMonth() + 1 // 月份0-11,需+1
+ const day = now.getDate() // 日期1-31
+
+ // 格式化YYYY - MM - DD(补零)
+ const formattedDate = `${year}${String(month).padStart(2, '0')}${String(day).padStart(2, '0')}`
exportModel(form).then((res: any) => {
let blob = new Blob([res], {
type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=UTF-8'
@@ -156,7 +163,7 @@ const exportEvent = () => {
const url = window.URL.createObjectURL(blob)
const link = document.createElement('a') // 创建a标签
link.href = url
- link.download = dotList.value.name // 设置下载的文件名
+ link.download = dotList.value.name + formattedDate // 设置下载的文件名
document.body.appendChild(link)
link.click() //执行下载
document.body.removeChild(link)
diff --git a/src/views/govern/reportCore/statistics/index.vue b/src/views/govern/reportCore/statistics/index.vue
index d5e855c..6f9a250 100644
--- a/src/views/govern/reportCore/statistics/index.vue
+++ b/src/views/govern/reportCore/statistics/index.vue
@@ -1,147 +1,147 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 导出excel
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 导出
+
+
+
+
+
+
+
+
+
diff --git a/src/views/govern/reportCore/statisticsWx/index.vue b/src/views/govern/reportCore/statisticsWx/index.vue
index 4025566..30a0726 100644
--- a/src/views/govern/reportCore/statisticsWx/index.vue
+++ b/src/views/govern/reportCore/statisticsWx/index.vue
@@ -20,7 +20,7 @@
- 导出excel
+ 导出
@@ -45,6 +45,7 @@ import { exportExcel } from '@/views/system/reportForms/export.js'
import 'splitpanes/dist/splitpanes.css'
import DatePicker from '@/components/form/datePicker/time.vue'
import { Splitpanes, Pane } from 'splitpanes'
+const name = ref('')
// import data from './123.json'
defineOptions({
name: 'govern/reportCore/statisticsWx/index'
@@ -73,6 +74,7 @@ const tableStore = new TableStore({
delete tableStore.table.params.timeFlag
},
loadCallback: () => {
+ name.value = dotList.value.name
tableStore.table.data.forEach((item: any) => {
item.data1 ? (item.data = JSON.parse(item.data1)) : ''
item.celldata.forEach((k: any) => {
@@ -140,7 +142,14 @@ const handleNodeClick = (data: any, node: any) => {
}
const exportEvent = () => {
- exportExcel(luckysheet.getAllSheets(), '统计报表下载')
+ const now = new Date()
+ const year = now.getFullYear() // 4位年份
+ const month = now.getMonth() + 1 // 月份0-11,需+1
+ const day = now.getDate() // 日期1-31
+
+ // 格式化YYYY - MM - DD(补零)
+ const formattedDate = `${year}${String(month).padStart(2, '0')}${String(day).padStart(2, '0')}`
+ exportExcel(luckysheet.getAllSheets(), name.value + formattedDate)
}
diff --git a/src/views/govern/reportForms/look.vue b/src/views/govern/reportForms/look.vue
index a0d61e1..a35db9a 100644
--- a/src/views/govern/reportForms/look.vue
+++ b/src/views/govern/reportForms/look.vue
@@ -11,7 +11,7 @@
>
导入excel
- 导出excel
+ 导出
返回
diff --git a/src/views/govern/reportForms/luckysheet.vue b/src/views/govern/reportForms/luckysheet.vue
index 212aec1..1234559 100644
--- a/src/views/govern/reportForms/luckysheet.vue
+++ b/src/views/govern/reportForms/luckysheet.vue
@@ -11,7 +11,7 @@
>
导入excel
- 导出excel
+ 导出
保存
返回
diff --git a/src/views/govern/sensitiveLoadMange/detail.vue b/src/views/govern/sensitiveLoadMange/detail.vue
index fc3b8f7..07c2248 100644
--- a/src/views/govern/sensitiveLoadMange/detail.vue
+++ b/src/views/govern/sensitiveLoadMange/detail.vue
@@ -48,7 +48,7 @@ import { useDictData } from '@/stores/dictData'
const TypeOptions = ref()
const dictData = useDictData()
-const DataTypeSelect = dictData.getBasicData('Sensitive_User_Type')
+const DataTypeSelect = dictData.getBasicData('Interference_Source')
const tableStore = inject('tableStore') as TableStore
diff --git a/src/views/govern/sensitiveLoadMange/index.vue b/src/views/govern/sensitiveLoadMange/index.vue
index 05225f0..1d05b48 100644
--- a/src/views/govern/sensitiveLoadMange/index.vue
+++ b/src/views/govern/sensitiveLoadMange/index.vue
@@ -26,7 +26,7 @@ defineOptions({
const detail = ref()
const dictData = useDictData()
-const interferenceType = dictData.getBasicData('Sensitive_User_Type')
+const interferenceType = dictData.getBasicData('Interference_Source')
const tableStore: any = new TableStore({
url: '/cs-harmonic-boot/pqSensitiveUser/getList',
diff --git a/src/views/govern/setting/statisticalType/add.vue b/src/views/govern/setting/statisticalType/add.vue
index 4620c50..c72db7a 100644
--- a/src/views/govern/setting/statisticalType/add.vue
+++ b/src/views/govern/setting/statisticalType/add.vue
@@ -1,107 +1,108 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/govern/setting/statisticalType/index.vue b/src/views/govern/setting/statisticalType/index.vue
index 142a0e1..a161cea 100644
--- a/src/views/govern/setting/statisticalType/index.vue
+++ b/src/views/govern/setting/statisticalType/index.vue
@@ -1,154 +1,155 @@
-
-
-
-
- 新增
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
diff --git a/src/views/pqs/cockpit/homePage/components/routingConfig.vue b/src/views/pqs/cockpit/homePage/components/routingConfig.vue
index d5592e5..4657ae2 100644
--- a/src/views/pqs/cockpit/homePage/components/routingConfig.vue
+++ b/src/views/pqs/cockpit/homePage/components/routingConfig.vue
@@ -1,10 +1,10 @@
-
+
新增
-
+
+
+
+
+
+
- 编辑
+
+ 编辑
+
- 删除
+
+ 删除
+
@@ -49,18 +68,20 @@
import { ref, reactive } from 'vue'
import { useRouter } from 'vue-router'
import { defaultAttribute } from '@/components/table/defaultAttribute'
-import { getDashboardPageByUserId, deleteDashboard, activatePage } from '@/api/system-boot/csstatisticalset'
+import { getDashboardPageByUserId, deleteDashboard, activatePage, scopePage } from '@/api/system-boot/csstatisticalset'
import { useAdminInfo } from '@/stores/adminInfo'
import { ElMessage, ElMessageBox } from 'element-plus'
import { useNavTabs } from '@/stores/navTabs'
import { getMenu } from '@/utils/router'
const { push } = useRouter()
+
const dialogVisible = ref(false)
const route = useRouter()
const navTabs = useNavTabs()
const adminInfo = useAdminInfo()
const pageList: any = ref([])
+const hasAdmin = adminInfo.roleCode.some(item => item.includes('operation_manager') || item.includes('root'))
const open = () => {
dialogVisible.value = true
@@ -68,7 +89,10 @@ const open = () => {
}
const init = () => {
getDashboardPageByUserId({ id: adminInfo.id, state: false }).then(res => {
- pageList.value = res.data
+ pageList.value = res.data.filter(item => {
+ item.scope = item.userId == '0' ? 1 : 0
+ return item
+ })
})
}
// 新增
@@ -93,7 +117,7 @@ const beforeChange = (row: any): Promise
=> {
type: 'warning'
})
.then(() => {
- activatePage({ id: row.id, state: row.state == 0 ? 1 : 0 }).then( async(res: any) => {
+ activatePage({ id: row.id, state: row.state == 0 ? 1 : 0 }).then(async (res: any) => {
if (res.code == 'A0000') {
ElMessage({
type: 'success',
@@ -102,19 +126,45 @@ const beforeChange = (row: any): Promise => {
}
init()
resolve(true)
- await getMenu()
- await setTimeout(() => {
- navTabs.refresh()
+ await getMenu()
+ await setTimeout(() => {
+ navTabs.refresh()
}, 1000)
-
})
})
- .catch(() => {
- ElMessage({
- type: 'info',
- message: '已取消删除'
+ .catch(() => {})
+ })
+}
+// 全局
+const beforeChange1 = (row: any): Promise => {
+ return new Promise(resolve => {
+ // setTimeout(() => {
+ // loading1.value = false
+ // ElMessage.success('Switch success')
+ // return resolve(true)
+ // }, 1000)
+ ElMessageBox.confirm('此操作将页面配置成全局, 是否继续?', '提示', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning'
+ })
+ .then(() => {
+ scopePage({ id: row.id, userId: row.scope == 0 ? '0' : adminInfo.id }).then(async (res: any) => {
+ if (res.code == 'A0000') {
+ ElMessage({
+ type: 'success',
+ message: '操作成功!'
+ })
+ }
+ init()
+ resolve(true)
+ await getMenu()
+ await setTimeout(() => {
+ navTabs.refresh()
+ }, 1000)
})
})
+ .catch(() => {})
})
}
// 删除
diff --git a/src/views/pqs/cockpit/homePage/index.vue b/src/views/pqs/cockpit/homePage/index.vue
index c0f5ec8..e92e67f 100644
--- a/src/views/pqs/cockpit/homePage/index.vue
+++ b/src/views/pqs/cockpit/homePage/index.vue
@@ -12,7 +12,9 @@
- 编辑
+
+ 编辑
+
-
+
+
+
item.includes('operation_manager') || item.includes('root'))
defineOptions({
// name: 'dashboard/index'
})
@@ -109,6 +120,7 @@ interface LayoutItem {
}
const zoom = ref(1)
const RoutingConfigRef = ref()
+const userId = ref('')
const key = ref(0)
const img = new URL(`@/assets/img/amplify.png`, import.meta.url).href
const img1 = new URL(`@/assets/img/reduce.png`, import.meta.url).href
@@ -219,6 +231,7 @@ const seRowHeight = (value: any) => {
const fetchLayoutData = async () => {
try {
const { data } = await queryByPagePath({ pagePath: router.currentRoute.value.name })
+ userId.value = data.userId
dataList.value = data
const parsedLayout = JSON.parse(data.containerConfig || '[]') as LayoutItem[]
// 处理布局数据
diff --git a/src/views/pqs/cockpit/realTimeData/bind.vue b/src/views/pqs/cockpit/realTimeData/bind.vue
new file mode 100644
index 0000000..610d316
--- /dev/null
+++ b/src/views/pqs/cockpit/realTimeData/bind.vue
@@ -0,0 +1,146 @@
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+ 绑定
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/pqs/cockpit/realTimeData/index.vue b/src/views/pqs/cockpit/realTimeData/index.vue
index ab4da7a..34484bb 100644
--- a/src/views/pqs/cockpit/realTimeData/index.vue
+++ b/src/views/pqs/cockpit/realTimeData/index.vue
@@ -12,6 +12,8 @@
style="position: relative"
>
+
@@ -28,13 +31,15 @@
:icon="show ? 'el-icon-ArrowDownBold' : 'el-icon-ArrowUpBold'"
@click="show = !show"
style="width: 100%"
+ v-if="bindId"
>
事件列表
+
绑定
-
+
@@ -46,6 +51,8 @@
+
+
+
diff --git a/src/views/system/reportForms/look.vue b/src/views/system/reportForms/look.vue
index bbeefac..2e40ff2 100644
--- a/src/views/system/reportForms/look.vue
+++ b/src/views/system/reportForms/look.vue
@@ -11,7 +11,7 @@
>
导入excel
- 导出excel
+ 导出
返回
diff --git a/src/views/system/reportForms/luckysheet.vue b/src/views/system/reportForms/luckysheet.vue
index 31b2441..526f947 100644
--- a/src/views/system/reportForms/luckysheet.vue
+++ b/src/views/system/reportForms/luckysheet.vue
@@ -11,7 +11,7 @@
>
导入excel
- 导出excel
+ 导出
保存
返回
diff --git a/src/views/user/login.vue b/src/views/user/login.vue
index 7b76007..7c154c0 100644
--- a/src/views/user/login.vue
+++ b/src/views/user/login.vue
@@ -12,8 +12,14 @@
-
+
@@ -21,8 +27,14 @@
-
+
@@ -30,8 +42,13 @@
-
+
登录
@@ -105,7 +122,17 @@ onMounted(() => {
timer = window.setTimeout(() => {
pageBubble.init()
}, 0)
+ fetchMqttUrl()
})
+let buildUrl = 'ws://192.168.1.103:8083/mqtt' //27
+const fetchMqttUrl = async () => {
+ const response = await fetch('/')
+ const mqttUrl = response.headers.get('X-Mqtt-Url')
+ const zutai = response.headers.get('X-Mqttzutai-Url')
+
+ window.localStorage.setItem('MQTTURL', mqttUrl || buildUrl)
+ window.localStorage.setItem('MQTTZUTAI', zutai || '')
+}
onBeforeUnmount(() => {
clearTimeout(timer)
diff --git a/src/views/user/popupUpdatePwd.vue b/src/views/user/popupUpdatePwd.vue
index 4f54b18..974d8a2 100644
--- a/src/views/user/popupUpdatePwd.vue
+++ b/src/views/user/popupUpdatePwd.vue
@@ -1,93 +1,93 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+