diff --git a/package.json b/package.json
index cfc5aa43..0360164d 100644
--- a/package.json
+++ b/package.json
@@ -12,11 +12,12 @@
},
"dependencies": {
"@ant-design/colors": "^7.0.2",
- "@dataview/datav-vue3": "0.0.0-test.1672506674342",
+
"@element-plus/icons-vue": "^2.3.1",
"@form-create/designer": "^3.1.3",
"@form-create/element-ui": "^3.1.24",
"@fortawesome/fontawesome-free": "^6.5.1",
+ "@kjgl77/datav-vue3": "^1.7.4",
"@vue-office/docx": "^1.6.2",
"@vue-office/excel": "^1.7.8",
"@vue-office/pdf": "^2.0.2",
diff --git a/src/api/supervision-boot/userReport/form.ts b/src/api/supervision-boot/userReport/form.ts
index e756e1af..8c4a402e 100644
--- a/src/api/supervision-boot/userReport/form.ts
+++ b/src/api/supervision-boot/userReport/form.ts
@@ -67,6 +67,16 @@ export const downloadSensitiveReportTemplate = () => {
responseType: 'blob'
})
}
+/**
+ * 下载技术监督模版
+ */
+export const downloadPlanTemplate = () => {
+ return createAxios({
+ url: '/supervision-boot/surveyPlan/downloadPlanTemplate',
+ method: 'GET',
+ responseType: 'blob'
+ })
+}
/**
* 导入敏感及重要用户数据
@@ -90,6 +100,17 @@ export const importSensitiveReportData = (data: any) => {
responseType: 'blob'
})
}
+/**
+ * 批量导入技术监督数据
+ */
+export const importPlanData = (data: any) => {
+ return createAxios({
+ url: '/supervision-boot/surveyPlan/importPlanData',
+ method: 'POST',
+ data: data,
+ responseType: 'blob'
+ })
+}
/**
* 批量导入终端台账入网
diff --git a/src/components/table/header/index.vue b/src/components/table/header/index.vue
index 015f948f..43383444 100644
--- a/src/components/table/header/index.vue
+++ b/src/components/table/header/index.vue
@@ -63,7 +63,7 @@ interface Props {
showSearch?: boolean
nextFlag?: boolean //控制时间是否可以往后推
theCurrentTime?: boolean //控制时间前3天展示上个月时间
- showReset?: boolean //控制时间前3天展示上个月时间
+ showReset?: boolean //是否显示重置按钮
showExport?: boolean //导出控制
showTimeAll?: boolean //控制时间是否显示
diff --git a/src/components/table/index.vue b/src/components/table/index.vue
index 40a350ca..367d69f8 100644
--- a/src/components/table/index.vue
+++ b/src/components/table/index.vue
@@ -117,13 +117,13 @@ watch(
if (tableStore.table.allFlag) {
tableRef.value?.exportData({
- filename: document.querySelectorAll('.ba-nav-tab.active')[0].textContent || '', // 文件名字
+ filename:tableStore.table.filename|| document.querySelectorAll('.ba-nav-tab.active')[0].textContent || '', // 文件名字
sheetName: 'Sheet1',
type: 'xlsx', //导出文件类型 xlsx 和 csv
useStyle: true,
data: tableStore.table.allData, // 数据源 // 过滤那个字段导出
columnFilterMethod: function (column: any) {
-
+
return !(column.column.title === undefined || column.column.title === '序号' || column.column.title === '操作')
}
})
diff --git a/src/components/tree/pqs/Terminal.vue b/src/components/tree/pqs/Terminal.vue
index e92753fe..58770609 100644
--- a/src/components/tree/pqs/Terminal.vue
+++ b/src/components/tree/pqs/Terminal.vue
@@ -24,24 +24,31 @@ const info = (id: any) => {
if (VITE_FLAG) {
res.data.forEach((item: any) => {
item.icon = 'el-icon-Menu'
+ item.plevel = item.level
item.level = 0
item.children.forEach((item2: any) => {
item2.icon = 'el-icon-HomeFilled'
+
+ item2.plevel = item2.level
item2.level = 100
expanded.value.push(item2.id)
item2.children.forEach((item3: any) => {
item3.icon = 'el-icon-CollectionTag'
+ item3.plevel = item3.level
item3.level = 200
item3.children.forEach((item4: any) => {
item4.icon = 'el-icon-Flag'
+ item4.plevel = item4.level
item4.level = 300
// arr.push(item4)
item4.children.forEach((item5: any) => {
item5.icon = 'el-icon-OfficeBuilding'
+ item5.plevel = item5.level
item5.level = 300
// item5.id = item4.id
item5.children.forEach((item6: any) => {
item6.icon = 'el-icon-HelpFilled'
+ item6.plevel = 4
if (item6.name == '电网侧' && item6.children.length == 0) {
item6.level = 400
} else {
@@ -49,15 +56,19 @@ const info = (id: any) => {
}
item6.children.forEach((item7: any) => {
item7.icon = 'el-icon-Film'
+ item7.plevel = item7.level
item7.level = 400
item7.children.forEach((item8: any) => {
item8.icon = 'el-icon-Collection'
+ item8.plevel = item8.level
item8.level = 500
item8.children.forEach((item9: any) => {
item9.icon = 'el-icon-Share'
+ item9.plevel = item9.level
item9.level = 600
item9.children.forEach((item10: any) => {
item10.icon = 'el-icon-Location'
+ item10.plevel = item10.level
item10.level = 700
})
})
@@ -90,7 +101,7 @@ const info = (id: any) => {
item4.children.forEach((item5: any) => {
item5.icon = 'el-icon-OfficeBuilding'
item5.plevel = item5.level
- item5.level = (item5.level == 7 ? 4 : item5.level+1) * 100
+ item5.level = (item5.level == 7 ? 4 : item5.level + 1) * 100
item5.children.forEach((item6: any) => {
item6.icon = 'el-icon-Film'
item6.plevel = item6.level
diff --git a/src/utils/echartMethod.ts b/src/utils/echartMethod.ts
index 17843d69..a3d4bbae 100644
--- a/src/utils/echartMethod.ts
+++ b/src/utils/echartMethod.ts
@@ -3,9 +3,50 @@ const dataProcessing = (arr: any[]) => {
.filter(item => typeof item === 'number' || (typeof item === 'string' && !isNaN(parseFloat(item))))
.map(item => (typeof item === 'number' ? item : parseFloat(item)))
}
+const calculateValue = (o:number,value: number, num: number, isMin: boolean) => {
+ if (value === 0) {
+ return 0
+ }else if(value>0&& Math.abs(value)<1 && isMin==true){
+ return 0
+ }else if(value>-1&& value<0 && isMin==false){
+ return 0
+ }
+ let base
+ if (Math.abs(o) >= 100) {
+ base = 100
+ } else if (Math.abs(o) >= 10) {
+ base = 10
+ } else if (Math.abs(o) >= 1) {
+ base = 1
+ } else {
+ base = 0.1
+ }
+ let calculatedValue
+ if (isMin) {
+ if (value < 0) {
+ calculatedValue = value + num * value
+ } else {
+ calculatedValue = value - num * value
+ }
+ } else {
+ if (value < 0) {
+ calculatedValue = value - num * value
+ } else {
+ calculatedValue = value + num * value
+ }
+ }
+ if (base === 0.1) {
+ return parseFloat(calculatedValue.toFixed(1))
+ } else if (isMin) {
+ return Math.floor(calculatedValue / base) * base
+ } else {
+ return Math.ceil(calculatedValue / base) * base
+ }
+}
// 处理y轴最大最小值
export const yMethod = (arr: any) => {
+ let num = 0.2
let numList = dataProcessing(arr)
let maxValue = 0
let minValue = 0
@@ -13,32 +54,76 @@ export const yMethod = (arr: any) => {
let min = 0
maxValue = Math.max(...numList)
minValue = Math.min(...numList)
- if (maxValue > 1000 || minValue < -1000) {
- max = Math.ceil(maxValue / 100) * 100
- if (minValue == 0) {
- min = 0
- } else {
- min = Math.floor(minValue / 100) * 100
- }
- } else if (maxValue < 60 && minValue > 40) {
- max = 60
- min = 40
- } else if (maxValue == minValue && maxValue < 10 && minValue > 0) {
- max = Math.ceil(maxValue / 10) * 10
- min = Math.floor(minValue / 10) * 10
- } else if (maxValue == minValue && maxValue != 0 && minValue != 0) {
- max = Math.ceil(maxValue / 10 + 1) * 10
- min = Math.floor(minValue / 10 - 1) * 10
- } else {
- max = Math.ceil(maxValue / 10) * 10
- min = Math.floor(minValue / 10) * 10
- }
+ const o=maxValue-minValue
+ min = calculateValue( o,minValue, num, true)
+ max = calculateValue(o,maxValue, num, false)
+ // if (-100 >= minValue) {
+ // min = Math.floor((minValue + num * minValue) / 100) * 100
+ // } else if (-10 >= minValue && minValue > -100) {
+ // min = Math.floor((minValue + num * minValue) / 10) * 10
+ // } else if (-1 >= minValue && minValue > -10) {
+ // min = Math.floor(minValue + num * minValue)
+ // } else if (0 > minValue && minValue > -1) {
+ // min = parseFloat((minValue + num * minValue).toFixed(1))
+ // } else if (minValue == 0) {
+ // min = 0
+ // } else if (0 < minValue && minValue < 1) {
+ // min = parseFloat((minValue - num * minValue).toFixed(1))
+ // } else if (1 <= minValue && minValue < 10) {
+ // min = Math.floor(minValue - num * minValue)
+ // } else if (10 <= minValue && minValue < 100) {
+ // min = Math.floor((minValue - num * minValue) / 10) * 10
+ // } else if (100 <= minValue) {
+ // min = Math.floor((minValue - num * minValue) / 100) * 100
+ // }
+
+ // if (-100 >= maxValue) {
+ // max = Math.ceil((maxValue - num * maxValue) / 100) * 100
+ // } else if (-10 >= maxValue && maxValue > -100) {
+ // max = Math.ceil((maxValue - num * maxValue) / 10) * 10
+ // } else if (-1 >= maxValue && maxValue > -10) {
+ // max = Math.ceil(maxValue - num * maxValue)
+ // } else if (0 > maxValue && maxValue > -1) {
+ // max = parseFloat((maxValue - num * maxValue).toFixed(1))
+ // } else if (maxValue == 0) {
+ // max = 0
+ // } else if (0 < maxValue && maxValue < 1) {
+ // max = parseFloat((maxValue + num * maxValue).toFixed(1))
+ // } else if (1 <= maxValue && maxValue < 10) {
+ // max = Math.ceil(maxValue + num * maxValue)
+ // } else if (10 <= maxValue && maxValue < 100) {
+ // max = Math.ceil((maxValue + num * maxValue) / 10) * 10
+ // } else if (100 <= maxValue) {
+ // max = Math.ceil((maxValue + num * maxValue) / 100) * 100
+ // }
+
+ // if (maxValue > 1000 || minValue < -1000) {
+ // max = Math.ceil(maxValue / 100) * 100
+ // if (minValue == 0) {
+ // min = 0
+ // } else {
+ // min = Math.floor(minValue / 100) * 100
+ // }
+ // } else if (maxValue < 60 && minValue > 40) {
+ // max = 60
+ // min = 40
+ // } else if (maxValue == minValue && maxValue < 10 && minValue > 0) {
+ // max = Math.ceil(maxValue / 10) * 10
+ // min = Math.floor(minValue / 10) * 10
+ // } else if (maxValue == minValue && maxValue != 0 && minValue != 0) {
+ // max = Math.ceil(maxValue / 10 + 1) * 10
+ // min = Math.floor(minValue / 10 - 1) * 10
+ // } else {
+ // max = Math.ceil(maxValue / 10) * 10
+ // min = Math.floor(minValue / 10) * 10
+ // }
+
+ // if (maxValue > 0 && maxValue < 1) {
+ // max = 1
+ // } else if (max == 0 && minValue > -1 && minValue < 0) {
+ // min = -1
+ // }
- if (maxValue > 0 && maxValue < 1) {
- max = 1
- } else if (max == 0 && minValue > -1 && minValue < 0) {
- min = -1
- }
return [min, max]
}
diff --git a/src/utils/tableStore.ts b/src/utils/tableStore.ts
index 129b7f42..f525f1d6 100644
--- a/src/utils/tableStore.ts
+++ b/src/utils/tableStore.ts
@@ -8,6 +8,7 @@ import { filtration } from './tableMethod'
interface TableStoreParams {
url: string // 请求地址
pk?: string
+ filename?: any // 导出文件名
column: TableColumn[]
params?: anyObj
method?: Method // 请求方式
@@ -18,12 +19,14 @@ interface TableStoreParams {
publicHeight?: number //计算高度
resetCallback?: () => void // 重置
loadCallback?: () => void // 接口调用后的回调
+ exportProcessingData?:() => void //导出处理数据
beforeSearchFun?: () => void // 接口调用前的回调
}
export default class TableStore {
public url
public pk
+ public filename: any = null
public method: Method
public initData: any = null
public isWebPaging = false
@@ -42,9 +45,11 @@ export default class TableStore {
pageNum: 1,
pageSize: 20
},
+ filename:null,
loading: true,
column: [],
loadCallback: null,
+ exportProcessingData: null,
resetCallback: null,
beforeSearchFun: null,
height: '',
@@ -57,12 +62,14 @@ export default class TableStore {
this.paramsPOST = options.paramsPOST || false
this.isWebPaging = options.isWebPaging || false
this.method = options.method || 'GET'
+ this.table.filename = options.filename || null
this.table.column = options.column
this.showPage = options.showPage !== false
this.table.publicHeight = options.publicHeight || 0
this.table.resetCallback = options.resetCallback || null
this.table.loadCallback = options.loadCallback || null
+ this.table.exportProcessingData = options.exportProcessingData || null
this.table.beforeSearchFun = options.beforeSearchFun || null
Object.assign(this.table.params, options.params)
this.table.height = mainHeight(20 + (this.showPage ? 58 : 0) + this.table.publicHeight).height as string
@@ -206,6 +213,7 @@ export default class TableStore {
)
).then(res => {
this.table.allData = filtration(res.data.records || res.data)
+ this.table.exportProcessingData && this.table.exportProcessingData()
this.table.allFlag = data.showAllFlag || true
})
}
diff --git a/src/views/pqs/business/terminal/deviceter/index.vue b/src/views/pqs/business/terminal/deviceter/index.vue
index 10462406..dcc13058 100644
--- a/src/views/pqs/business/terminal/deviceter/index.vue
+++ b/src/views/pqs/business/terminal/deviceter/index.vue
@@ -1318,7 +1318,7 @@
@@ -1347,7 +1347,7 @@
diff --git a/src/views/pqs/runManage/cleaning/index.vue b/src/views/pqs/runManage/cleaning/index.vue
index b3c63ad6..80c6332f 100644
--- a/src/views/pqs/runManage/cleaning/index.vue
+++ b/src/views/pqs/runManage/cleaning/index.vue
@@ -1,9 +1,8 @@
diff --git a/src/views/pqs/runManage/runEvaluate/index.vue b/src/views/pqs/runManage/runEvaluate/index.vue
index 4e77ecef..14aab261 100644
--- a/src/views/pqs/runManage/runEvaluate/index.vue
+++ b/src/views/pqs/runManage/runEvaluate/index.vue
@@ -19,116 +19,104 @@
-
+
+
+ {{ leftVisible ? '隐藏' : '显示' }}
+
+
-
-
-
-
- 终端统计
-
-
-
- 终端运行评价
-
-
- 最近一周终端评价趋势
-
-
-
-
-
- 区域终端运行评价
-
-
- 终端运行评价详情
-
-
-
+
diff --git a/src/views/pqs/supervise/electricalEnergy/components1/complaints.vue b/src/views/pqs/supervise/electricalEnergy/components1/complaints.vue
index 29e8de93..7ca62f26 100644
--- a/src/views/pqs/supervise/electricalEnergy/components1/complaints.vue
+++ b/src/views/pqs/supervise/electricalEnergy/components1/complaints.vue
@@ -2,7 +2,7 @@
-
+
@@ -52,6 +52,7 @@ const tableStore = new TableStore({
url: '/supervision-boot/SupervisionUserComplaint/list',
publicHeight: 65,
method: 'POST',
+ filename:'用户投诉',
column: [
{
title: '序号',
@@ -199,16 +200,14 @@ const tableStore = new TableStore({
beforeSearchFun: () => {
tableStore.table.params.currentPage = tableStore.table.params.pageNum
},
- loadCallback: () => {
- // tableStore.table.data = [
- // {
- // userName: '东润开阳堡光伏电站用户',
- // userId: '8115771123274',
- // complaintContent: '终端频繁重启',
- // complaintTime: '2024-05-16'
- // }
- // ]
- }
+ exportProcessingData: () => {
+ tableStore.table.allData = tableStore.table.allData.filter(item => {
+ item.dealState =item.dealState==0?'未解决':item.dealState==1?'已解决':'/'
+ item.detectionFlag=item.detectionFlag==0?'否':item.detectionFlag==1?'是':'/'
+
+ return item
+ })
+ }
})
provide('tableStore', tableStore)
diff --git a/src/views/pqs/supervise/electricalEnergy/components1/form/alarmList.vue b/src/views/pqs/supervise/electricalEnergy/components1/form/alarmList.vue
index dfb73cae..1d704ae1 100644
--- a/src/views/pqs/supervise/electricalEnergy/components1/form/alarmList.vue
+++ b/src/views/pqs/supervise/electricalEnergy/components1/form/alarmList.vue
@@ -102,7 +102,7 @@ const rules = {
}
const formRef = ref()
const submit = () => {
-
+ console.log('🚀 ~ open ~ form.value:', form.value)
formRef.value.validate(valid => {
if (valid) {
loading.value = true
diff --git a/src/views/pqs/supervise/electricalEnergy/components1/online.vue b/src/views/pqs/supervise/electricalEnergy/components1/online.vue
index ad4f15f4..4cd91f11 100644
--- a/src/views/pqs/supervise/electricalEnergy/components1/online.vue
+++ b/src/views/pqs/supervise/electricalEnergy/components1/online.vue
@@ -1,7 +1,7 @@
-
+
@@ -62,10 +62,10 @@
-->
-
+
发起预警单
-
+
发起告警单
@@ -112,6 +112,7 @@ const tableStore = new TableStore({
url: '/supervision-boot/onlineMonitor/list',
publicHeight: 65,
method: 'POST',
+ filename:'在线监测',
// isWebPaging:true,
column: [
{title: '', type: 'checkbox', width: 40},
@@ -328,7 +329,7 @@ tableStore.table.params.dataType = '1'
tableStore.table.params.deptId = dictData.state.area[0].id
provide('tableStore', tableStore)
onMounted(() => {
- TableHeaderRef.value.setDatePicker([{label: '月', value: 3}])
+ // TableHeaderRef.value.setDatePicker([{label: '月', value: 3}])
tableStore.index()
setTimeout(() => {
diff --git a/src/views/pqs/supervise/electricalEnergy/components1/testQuestions.vue b/src/views/pqs/supervise/electricalEnergy/components1/testQuestions.vue
index 42737470..71c6d431 100644
--- a/src/views/pqs/supervise/electricalEnergy/components1/testQuestions.vue
+++ b/src/views/pqs/supervise/electricalEnergy/components1/testQuestions.vue
@@ -1,6 +1,6 @@
-
+
{
tableStore.table.params.currentPage = tableStore.table.params.pageNum
- }
+ },
+ exportProcessingData: () => {
+ tableStore.table.allData = tableStore.table.allData.filter(item => {
+ item.dealState = item.dealState == 0 ? '未解决' : item.dealState == 1 ? '已解决' : '/'
+
+ return item
+ })
+ }
})
tableStore.table.params.dealState = ''
tableStore.table.params.searchValue = ''
diff --git a/src/views/pqs/supervise/electricalEnergy/components1/testRun.vue b/src/views/pqs/supervise/electricalEnergy/components1/testRun.vue
index 8f0a8119..b48ecbeb 100644
--- a/src/views/pqs/supervise/electricalEnergy/components1/testRun.vue
+++ b/src/views/pqs/supervise/electricalEnergy/components1/testRun.vue
@@ -1,7 +1,7 @@
-
+
@@ -54,6 +54,7 @@ const tableStore = new TableStore({
url: '/supervision-boot/lineRunTestProblem/pageProblem',
method: 'POST',
publicHeight: 65,
+ filename:'试运行评估问题',
column: [
{
title: '序号', width: 80, formatter: (row: any) => {
@@ -233,7 +234,14 @@ const tableStore = new TableStore({
tableStore.table.params.orgNo = tableStore.table.params.deptIndex
tableStore.table.params.statveList = [2]
// tableStore.table.params.relationUserName = tableStore.table.params.userName
- }
+ },
+ exportProcessingData: () => {
+ tableStore.table.allData = tableStore.table.allData.filter(item => {
+ item.dealState =item.dealState == 0 ? '未解决' :item.dealState == 1 ? '已解决' : '/'
+ item.testRunState = item.testRunState == 0 ? '待试运行' : item.testRunState == 1 ? '试运行中' : item.testRunState == 2 ? '试运行成功' : item.testRunState == 3 ? '试运行失败' : '待试运行'
+ return item
+ })
+ }
})
tableStore.table.params.status = ''
tableStore.table.params.dealState = ''
diff --git a/src/views/pqs/supervise/harmonicSurvey/components/planAdd.vue b/src/views/pqs/supervise/harmonicSurvey/components/planAdd.vue
index 5e4b9066..ce532b10 100644
--- a/src/views/pqs/supervise/harmonicSurvey/components/planAdd.vue
+++ b/src/views/pqs/supervise/harmonicSurvey/components/planAdd.vue
@@ -64,7 +64,7 @@
-
+
+ 保存
提交审批
@@ -213,12 +213,12 @@ const treeData = ref()
const loadData = () => {
initDetpStataionTree({ orgId: dictData.state.area[0].id }).then(res => {
treeList.value = res.data
- // initDetpStataionTree({ orgId: '02d1b4e1680413eb72f3fa63d46c496c' }).then(res => {
- // treeListCgy.value = res.data
- setTimeout(() => {
- changeArea()
- }, 10)
- // })
+ initDetpStataionTree({ orgId: 'a3069759b0b6072c99cf9a7af6c162e9' }).then(res => {
+ treeListCgy.value = res.data
+ setTimeout(() => {
+ changeArea()
+ }, 10)
+ })
})
}
@@ -242,7 +242,7 @@ const submitFn = async (flag: boolean) => {
}
addForm.saveOrCheckflag = '1'
- await addSurveyPlan(addForm).then(res => {
+ await addSurveyPlan(addForm).then(res => {
cancelFn()
ElMessage.success('保存成功!')
emit('onsubmit')
@@ -263,7 +263,7 @@ const submitFn = async (flag: boolean) => {
emit('onsubmit')
}).catch(() => { loading.value = false})
} else {
- await updateSurveyPlan(addForm).then(res => {
+ await updateSurveyPlan(addForm).then(res => {
cancelFn()
ElMessage.success('重新发起成功!')
emit('onsubmit')
@@ -283,30 +283,14 @@ const changeArea = () => {
treeList.value.forEach((item: any) => {
if (item.id == form.value.deptId) {
list.push(item)
-
- } else {
- if (item.children.filter((v: any) => v.id == form.value.deptId).length == 0) {
- item.children.forEach((v: any) => {
- list.push(v.children.filter((K: any) => K.id == form.value.deptId)[0])
- })
- // list.push(item.children.filter((v: any) => {
- // return (v.children.filter((k: any) => {
- // if( k.id == form.value.deptId){
- // return k
- // }
- // }))
- // }))
- console.log("🚀 ~ list.push ~ list:", list)
-
-
- } else {
- list.push(item.children.filter((v: any) => v.id == form.value.deptId)[0])
+ if (item.id != treeListCgy.value[0].id && item.name != '冀北电力有限公司' && item.name != '超高压') {
+ list.push(...treeListCgy.value)
+ }
+ } else {
+ list.push(item.children.filter((v: any) => v.id == form.value.deptId)[0])
+ if (form.value.deptId != treeListCgy.value[0].id) {
+ list.push(...treeListCgy.value)
}
-
-
- // if (form.value.deptId != treeListCgy.value[0].id) {
- // list.push(...treeListCgy.value)
- // }
}
})
treeData.value = list
diff --git a/src/views/pqs/supervise/harmonicSurvey/components/planManage.vue b/src/views/pqs/supervise/harmonicSurvey/components/planManage.vue
index 02a169dd..7cac284f 100644
--- a/src/views/pqs/supervise/harmonicSurvey/components/planManage.vue
+++ b/src/views/pqs/supervise/harmonicSurvey/components/planManage.vue
@@ -1,25 +1,39 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 新增计划
- 删除
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 新增计划
+ 删除
+ 模板下载
+ 批量导入
+
+
+
+
+
+
+
diff --git a/src/views/pqs/supervise/harmonicSurvey/components/sensitiveUserPopup.vue b/src/views/pqs/supervise/harmonicSurvey/components/sensitiveUserPopup.vue
new file mode 100644
index 00000000..9f41b377
--- /dev/null
+++ b/src/views/pqs/supervise/harmonicSurvey/components/sensitiveUserPopup.vue
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+ 选择数据文件
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/pqs/supervise/harmonicSurvey/components/testManage.vue b/src/views/pqs/supervise/harmonicSurvey/components/testManage.vue
index 137945cb..9f701921 100644
--- a/src/views/pqs/supervise/harmonicSurvey/components/testManage.vue
+++ b/src/views/pqs/supervise/harmonicSurvey/components/testManage.vue
@@ -1,28 +1,36 @@
-
+
-
-
-
+
+
+
-
-
-
+
+
+
- 删除
+ 删除
-
+
-
+
-
-
+
diff --git a/src/views/pqs/supervise/interfere/components/normalizationManager/interferenceUserTable.vue b/src/views/pqs/supervise/interfere/components/normalizationManager/interferenceUserTable.vue
index d7e71c1d..ce10f901 100644
--- a/src/views/pqs/supervise/interfere/components/normalizationManager/interferenceUserTable.vue
+++ b/src/views/pqs/supervise/interfere/components/normalizationManager/interferenceUserTable.vue
@@ -1,14 +1,18 @@
-
+
-
+
-
+
@@ -16,39 +20,51 @@
-
+
-
+
-
-
+
diff --git a/src/views/pqs/supervise/interfere/components/normalizationManager/normalization/detail.vue b/src/views/pqs/supervise/interfere/components/normalizationManager/normalization/detail.vue
index 47957f35..8bdbef74 100644
--- a/src/views/pqs/supervise/interfere/components/normalizationManager/normalization/detail.vue
+++ b/src/views/pqs/supervise/interfere/components/normalizationManager/normalization/detail.vue
@@ -57,8 +57,8 @@
{{ detailData.evaluationConclusion }}
-
+
{{ detailData1.reporter }}
-
+
{{ formatDate(detailData1.reportDate, 'YYYY-MM-DD') }}
-
+
{{ detailData1.orgName }}
-
+
{{ formatDate(detailData1.expectedProductionDate, 'YYYY-MM-DD') }}
-
+
{{
userTypeList.find(item => {
return item.value == detailData1.userType
})?.label
}}
-
+
{{ detailData1.city }}
-
+
{{ detailData1.responsibleDepartment }}
-
+
{{
userStateList.find(item => {
return item.value == detailData1.userStatus
})?.label
}}
-
+
{{ detailData1.substation }}
-
+
{{ detailData1.projectName }}
-
+
{{
voltageLevelList.find(item => {
return item.id == detailData1.voltageLevel
})?.name
}}
-
+
{{ proviteData1.nonlinearDeviceType ? proviteData1.nonlinearDeviceType : '-' }}
-
+
{{ detailData1.evaluationDept }}
-
+
{{ detailData1.evaluationConclusion }}
+ " :label-class-name="changeTheField?.nonlinearLoadType ? 'my-content' : ''"
+ :class-name="changeTheField?.nonlinearLoadType ? 'my-content' : ''">
{{ proviteData1.nonlinearLoadType }}
-
+
{{ proviteData1.needGovernance == 0 ? '否' : '是' }}
@@ -365,7 +387,9 @@
{{ proviteData1.needGovernance == 0 ? '否' : '是' }}
-
+
{{ proviteData1.backgroundTestPerformed == 0 ? '否' : '是' }}
@@ -381,12 +405,16 @@
{{ proviteData1.backgroundTestPerformed == 0 ? '否' : '是' }}
-
+
{{ proviteData1.antiInterferenceTest == 0 ? '否' : '是' }}
-
+
{{ proviteData1.agreementCapacity }}
+ " :label-class-name="changeTheField?.pccEquipmentCapacity ? 'my-content' : ''"
+ :class-name="changeTheField?.pccEquipmentCapacity ? 'my-content' : ''">
{{ proviteData1.pccEquipmentCapacity }}
+ " :label-class-name="changeTheField?.baseShortCircuitCapacity ? 'my-content' : ''"
+ :class-name="changeTheField?.baseShortCircuitCapacity ? 'my-content' : ''">
{{ proviteData1.baseShortCircuitCapacity }}
+ " :label-class-name="changeTheField?.minShortCircuitCapacity ? 'my-content' : ''"
+ :class-name="changeTheField?.minShortCircuitCapacity ? 'my-content' : ''">
{{ proviteData1?.minShortCircuitCapacity }}
+ " :label-class-name="changeTheField?.userAgreementCapacity ? 'my-content' : ''"
+ :class-name="changeTheField?.userAgreementCapacity ? 'my-content' : ''">
{{ proviteData1?.userAgreementCapacity }}
-
+
{{ proviteData1?.pccPoint }}
-
+
{{
evaluationTypeList.find(item => {
return item.id == proviteData1?.evaluationType
})?.name
}}
-
+
{{ proviteData1?.evaluationChekDept }}
-
+
{{
industryList.find(item => {
return item.id == proviteData1.industry
})?.name
}}
-
+
{{ proviteData1.deviceName }}
-
+
{{
powerSupplyInfoOptionList.find(item => {
return item.id == proviteData1.powerSupplyInfo
})?.name
}}
-
+
{{ proviteData1.powerSupply }}
-
+
{{
loadLevelOptionList.find(item => {
return item.id == proviteData1.loadLevel
})?.name
}}
-
+
{{
energyQualityIndexList.find(item => {
return item.id == proviteData1.energyQualityIndex
})?.name
}}
-
-
+
+
@@ -493,7 +547,9 @@
{{ proviteData1.feasibilityReport?.name }}
-
+
@@ -502,7 +558,9 @@
-
+
@@ -511,7 +569,9 @@
{{ proviteData1?.preliminaryDesignDescription?.name }}
-
+
@@ -519,7 +579,9 @@
{{ proviteData1?.predictionEvaluationReport?.name }}
-
+
@@ -527,7 +589,9 @@
{{ proviteData1?.predictionEvaluationReviewOpinions?.name }}
-
+
@@ -535,7 +599,9 @@
{{ proviteData1?.substationMainWiringDiagram?.name }}
-
+
@@ -543,7 +609,9 @@
{{ proviteData1?.sensitiveDevices?.name }}
-
+
@@ -551,7 +619,9 @@
{{ proviteData1?.antiInterferenceReport?.name }}
-
+
@@ -560,7 +630,9 @@
+ v-if="proviteData1?.additionalAttachments && proviteData1?.additionalAttachments?.url"
+ :label-class-name="changeTheField?.additionalAttachments ? 'my-content' : ''"
+ :class-name="changeTheField?.additionalAttachments ? 'my-content' : ''">
@@ -652,6 +724,7 @@ const userStateList = reactive([
value: '3'
}
])
+
const dictData = useDictData()
//字典获取所在地市
const areaOptionList = dictData.getBasicData('jibei_area')
@@ -667,23 +740,80 @@ const evaluationTypeList = dictData.getBasicData('Evaluation_Type')
const evaluationDeptList = dictData.getBasicData('evaluation_dept')
const loadLevelOptionList = dictData.getBasicData('load_level')
const powerSupplyInfoOptionList = dictData.getBasicData('supply_condition')
+const changeTheField: any = ref({})
/** 获得数据 */
const getInfo = async () => {
detailLoading.value = true
+ let obj1: any = {}
+ let obj2: any = {}
try {
await getUserReportUpdateById(props.id || queryId).then(res => {
- detailData1.value = res.data.userReportMessageJson
+ obj1 = JSON.parse(JSON.stringify(res.data.userReportMessageJson))
+ detailData1.value = JSON.parse(JSON.stringify(res.data.userReportMessageJson))
getProviteData1()
})
await getUserReportById(props.id || queryId).then(res => {
- detailData.value = res.data
+ obj2 = JSON.parse(JSON.stringify(res.data))
+ detailData.value = JSON.parse(JSON.stringify(res.data))
getProviteData()
})
} finally {
detailLoading.value = false
+
+ changeTheField.value = compareObjects({
+ ...obj1, ...obj1.userReportProjectPO, ...obj1.userReportSensitivePO, ...obj1.userReportSubstationPO
+
+ }, { ...obj2, ...obj2.userReportProjectPO, ...obj2.userReportSensitivePO, ...obj2.userReportSubstationPO })
+
}
}
+const compareObjects = (obj1: any, obj2: any) => {
+
+ const differences: any = {};
+
+ for (const key in obj1) {
+ if (obj1.hasOwnProperty(key)) {
+ if (obj1[key] !== obj2[key]) {
+ differences[key] = { obj1: obj1[key], obj2: obj2[key] };
+ }
+ }
+ }
+
+ for (const key in obj2) {
+ if (obj2.hasOwnProperty(key) && !obj1.hasOwnProperty(key)) {
+ differences[key] = { obj1: undefined, obj2: obj2[key] };
+ }
+ }
+
+ return differences;
+}
+// const compareObjects = (obj1: any, obj2: any) => {
+// const differences: any = {};
+
+// function findDifferences(o1, o2, path = '') {
+// for (const key in o1) {
+// if (o1.hasOwnProperty(key)) {
+// const newPath = path ? `${path}.${key}` : key;
+// if (typeof o1[key] === 'object' && o1[key] !== null && typeof o2[key] === 'object' && o2[key] !== null) {
+// findDifferences(o1[key], o2[key], newPath);
+// } else if (o1[key] !== o2[key]) {
+// differences[newPath] = { obj1: o1[key], obj2: o2[key] };
+// }
+// }
+// }
+
+// for (const key in o2) {
+// if (o2.hasOwnProperty(key) && !o1.hasOwnProperty(key)) {
+// const newPath = path ? `${path}.${key}` : key;
+// differences[newPath] = { obj1: undefined, obj2: o2[key] };
+// }
+// }
+// }
+
+// findDifferences(obj1, obj2);
+// return differences;
+// }
const proviteData = ref()
const proviteData1 = ref()
@@ -1001,3 +1131,8 @@ onMounted(() => {
margin-right: 10px;
}
+
diff --git a/src/views/pqs/supervise/interfere/components/normalizationManager/programReview.vue b/src/views/pqs/supervise/interfere/components/normalizationManager/programReview.vue
index d345ccef..71085784 100644
--- a/src/views/pqs/supervise/interfere/components/normalizationManager/programReview.vue
+++ b/src/views/pqs/supervise/interfere/components/normalizationManager/programReview.vue
@@ -16,26 +16,37 @@
-
+
{{ titleButton }}
返回
- -->
+ -->
-
+
-
+
@@ -44,20 +55,20 @@ defineOptions({
name: 'ProgramReview'
})
-import { ref, onMounted, provide, nextTick, onUnmounted } from 'vue'
+import {ref, onMounted, provide, nextTick, onUnmounted} from 'vue'
import TableStore from '@/utils/tableStore'
import Table from '@/components/table/index.vue'
-import { cancel, userReportGoNetById } from '@/api/supervision-boot/interfere/index'
-import { useDictData } from '@/stores/dictData'
+import {cancel, userReportGoNetById} from '@/api/supervision-boot/interfere/index'
+import {useDictData} from '@/stores/dictData'
import addForm from './addForm.vue'
-import { useRouter, useRoute } from 'vue-router'
-import { Back } from '@element-plus/icons-vue'
-import { useAdminInfo } from '@/stores/adminInfo'
+import {useRouter, useRoute} from 'vue-router'
+import {Back} from '@element-plus/icons-vue'
+import {useAdminInfo} from '@/stores/adminInfo'
-const { go, currentRoute, push } = useRouter()
-const { query } = useRoute() // 查询参数
-import { ElMessage } from 'element-plus'
-import { ElMessageBox } from 'element-plus/es'
+const {go, currentRoute, push} = useRouter()
+const {query} = useRoute() // 查询参数
+import {ElMessage} from 'element-plus'
+import {ElMessageBox} from 'element-plus/es'
const needGovernance = query.needGovernance as unknown as string // 从 URL 传递过来的 是否需要治理
const dictData = useDictData()
@@ -66,28 +77,26 @@ const adminInfo = useAdminInfo()
const jb_pl = ref(false)
const jb_dky = ref(false)
jb_pl.value =
- adminInfo.$state.roleCode.filter(item => {
- return item == 'jb_pl'
- }).length != 0
- ? true
- : false
+ adminInfo.$state.roleCode.filter(item => {
+ return item == 'jb_pl'
+ }).length != 0
+ ? true
+ : false
jb_dky.value =
- adminInfo.$state.roleCode.filter(item => {
- return item == 'jb_dky'
- }).length != 0
- ? true
- : false
+ adminInfo.$state.roleCode.filter(item => {
+ return item == 'jb_dky'
+ }).length != 0
+ ? true
+ : false
const tableStore = new TableStore({
url: '/supervision-boot/userReportNormal/userReportGoNetPage',
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: 'projectName', title: '用户名称', minWidth: 170 },
+ }},
+ {field: 'projectName', title: '用户名称', minWidth: 170},
{
field: 'userType',
title: '用户性质',
@@ -97,8 +106,8 @@ const tableStore = new TableStore({
return getUserTypeName(userType)
}
},
- { field: 'city', title: '所在地市', minWidth: 80 },
- { field: 'responsibleDepartment', title: '归口管理部门', minWidth: 130 },
+ {field: 'city', title: '所在地市', minWidth: 80},
+ {field: 'responsibleDepartment', title: '归口管理部门', minWidth: 130},
{
field: 'userStatus',
title: '用户状态',
@@ -117,7 +126,7 @@ const tableStore = new TableStore({
3: '退运'
}
},
- { field: 'substation', title: '厂站名称', minWidth: 100 },
+ {field: 'substation', title: '厂站名称', minWidth: 100},
{
field: 'status',
title: '流程状态',
@@ -146,7 +155,7 @@ const tableStore = new TableStore({
return dictData.state.userList.filter(item => item.id == row.cellValue)[0]?.name
}
},
- { field: 'createTime', title: '创建时间', minWidth: 100 },
+ {field: 'createTime', title: '创建时间', minWidth: 100},
{
title: '操作',
minWidth: 180,
@@ -254,7 +263,7 @@ onMounted(async () => {
document.addEventListener('visibilitychange', handleVisibilityChange)
if (query.fangAnId) {
//根据id查询待编辑的数据
- await userReportGoNetById({ id: query.fangAnId }).then(res => {
+ await userReportGoNetById({id: query.fangAnId}).then(res => {
if (res && res.code == 'A0000') {
dialogVisible.value = true
titleButton1.value = '重新发起'
@@ -274,7 +283,7 @@ onUnmounted(() => {
/**取消流程操作*/
const cancelLeave = async (row: any) => {
// 二次确认
- const { value } = await ElMessageBox.prompt('请输入取消原因', '取消流程', {
+ const {value} = await ElMessageBox.prompt('请输入取消原因', '取消流程', {
confirmButtonText: '确定',
cancelButtonText: '取消',
inputType: 'textarea',
diff --git a/src/views/pqs/supervise/interfere/components/undocumented/addForm.vue b/src/views/pqs/supervise/interfere/components/undocumented/addForm.vue
index 8dea5f84..f931c79d 100644
--- a/src/views/pqs/supervise/interfere/components/undocumented/addForm.vue
+++ b/src/views/pqs/supervise/interfere/components/undocumented/addForm.vue
@@ -1,307 +1,303 @@
-
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" autocomplete="off" placeholder="请输入用户协议容量">
MVA
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
- 是
- 否
+
+
+ 是
+ 否
-
-
- 是
- 否
+
+
+ 是
+ 否
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" placeholder="请输入基准短路容量">
MVA
-
-
+
+.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" autocomplete="off" placeholder="请选择系统最小短路容量">
MVA
-
-
+
+.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" placeholder="请输入PCC供电设备容量">
MVA
-
-
+
+.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" placeholder="请输入用户用电协议容量">
MVA
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+ prop="nonlinearLoadType">
+
-
-
- 是
- 否
+
+
+ 是
+ 否
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
- 上传文件
+ 上传文件
-
-
+
- 上传文件
+ 上传文件
-
-
+
- 上传文件
+ 上传文件
-
-
+
- 上传文件
+ 上传文件
-
-
+
- 上传文件
+ 上传文件
-
-
+
- 上传文件
+ 上传文件
-
-
+
- 上传文件
+ 上传文件
-
-
+
- 上传文件
+ 上传文件
-
-
+
- 上传文件
+ 上传文件
-
+
-