微调
This commit is contained in:
@@ -32,3 +32,12 @@ export function getDevTypeList() {
|
|||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export const getDeviceTypeList = (params: any) => {
|
||||||
|
return createAxios({
|
||||||
|
url: '/device-boot/devType/pageDevTypeList',
|
||||||
|
method: 'POST',
|
||||||
|
data: params
|
||||||
|
})
|
||||||
|
}
|
||||||
42
src/api/system-boot/MonitoringPoint.ts
Normal file
42
src/api/system-boot/MonitoringPoint.ts
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
import request from "@/utils/request";
|
||||||
|
|
||||||
|
//查询所有模板
|
||||||
|
export function getList(data: any) {
|
||||||
|
return request({
|
||||||
|
url: "/system-boot/EventTemplate/getList",
|
||||||
|
method: "post",
|
||||||
|
data,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//字典树
|
||||||
|
export function getDictTree(data: any) {
|
||||||
|
return request({
|
||||||
|
url: "/system-boot/reportDict/DictTree",
|
||||||
|
method: "post",
|
||||||
|
params:data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//新增模板
|
||||||
|
export function addData(data: any) {
|
||||||
|
return request({
|
||||||
|
url: "/system-boot/EventTemplate/add",
|
||||||
|
method: "post",
|
||||||
|
data,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//修改模板
|
||||||
|
export function updateData(data: any) {
|
||||||
|
return request({
|
||||||
|
url: "/system-boot/EventTemplate/update",
|
||||||
|
method: "post",
|
||||||
|
data,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//删除模板
|
||||||
|
export function deleteData(data: any) {
|
||||||
|
return request({
|
||||||
|
url: "/system-boot/EventTemplate/delete",
|
||||||
|
method: "post",
|
||||||
|
data,
|
||||||
|
});
|
||||||
|
}
|
||||||
43
src/api/system-boot/ReportTemplate.ts
Normal file
43
src/api/system-boot/ReportTemplate.ts
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
//获取字典树数据
|
||||||
|
export function getDictTree(data) {
|
||||||
|
return request({
|
||||||
|
url: "/system-boot/reportDict/DictTree",
|
||||||
|
method: "post",
|
||||||
|
params:data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//查询字典列表
|
||||||
|
export function getReportDictList(data: any) {
|
||||||
|
return request({
|
||||||
|
url: "/system-boot/reportDict/getReportDictList",
|
||||||
|
method: "post",
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//新增字典表
|
||||||
|
export function addDict(data: any) {
|
||||||
|
return request({
|
||||||
|
url: "/system-boot/reportDict/addDict",
|
||||||
|
method: "post",
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//更新字典表
|
||||||
|
export function updateDict(data: any) {
|
||||||
|
return request({
|
||||||
|
url: "/system-boot/reportDict/updateDict",
|
||||||
|
method: "put",
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//删除字典表
|
||||||
|
export function deleteDict(data: any) {
|
||||||
|
return request({
|
||||||
|
url: "/system-boot/reportDict/deleteDict",
|
||||||
|
method: "delete",
|
||||||
|
params:data
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -129,6 +129,7 @@ export default class TableStore {
|
|||||||
* @param data 携带数据
|
* @param data 携带数据
|
||||||
*/
|
*/
|
||||||
onTableAction = (event: string, data: anyObj) => {
|
onTableAction = (event: string, data: anyObj) => {
|
||||||
|
|
||||||
const actionFun = new Map([
|
const actionFun = new Map([
|
||||||
[
|
[
|
||||||
'search',
|
'search',
|
||||||
@@ -201,9 +202,10 @@ export default class TableStore {
|
|||||||
[
|
[
|
||||||
'export',
|
'export',
|
||||||
() => {
|
() => {
|
||||||
|
|
||||||
this.table.exportLoading = true
|
this.table.exportLoading = true
|
||||||
// this.index()
|
// this.index()
|
||||||
//console.log('export')
|
|
||||||
let params = { ...this.table.params, pageNum: 1, pageSize: this.table.total }
|
let params = { ...this.table.params, pageNum: 1, pageSize: this.table.total }
|
||||||
createAxios(
|
createAxios(
|
||||||
Object.assign(
|
Object.assign(
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<TableHeader>
|
<TableHeader>
|
||||||
<template #select>
|
<template #select>
|
||||||
<el-form-item label="终端型号">
|
<el-form-item label="终端型号">
|
||||||
<el-select v-model="tableStore.table.params.teriminal" clearable placeholder="请选择终端型号">
|
<el-select v-model="tableStore.table.params.devType" clearable placeholder="请选择终端型号">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in teriminaloption"
|
v-for="item in teriminaloption"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="终端状态">
|
<el-form-item label="终端状态">
|
||||||
<el-select v-model="tableStore.table.params.teriminalstatus" clearable placeholder="请选择终端状态">
|
<el-select v-model="tableStore.table.params.runFlag" clearable placeholder="请选择终端状态">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in teriminalstatusoption"
|
v-for="item in teriminalstatusoption"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="通讯状态">
|
<el-form-item label="通讯状态">
|
||||||
<el-select v-model="tableStore.table.params.state" clearable placeholder="请选择通讯状态">
|
<el-select v-model="tableStore.table.params.comFlag" clearable placeholder="请选择通讯状态">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in stateoption"
|
v-for="item in stateoption"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
></el-option>
|
></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<el-form-item label="筛选数据">
|
<!-- <el-form-item label="筛选数据">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="tableStore.table.params.filterName"
|
v-model="tableStore.table.params.filterName"
|
||||||
@keyup="searchEvent"
|
@keyup="searchEvent"
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
show-word-limit
|
show-word-limit
|
||||||
placeholder="输入关键字筛选"
|
placeholder="输入关键字筛选"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
</template>
|
</template>
|
||||||
<!-- <template #operation>
|
<!-- <template #operation>
|
||||||
<el-button icon="el-icon-Download" @click="add">导出</el-button>
|
<el-button icon="el-icon-Download" @click="add">导出</el-button>
|
||||||
@@ -252,9 +252,9 @@ const tableStore = new TableStore({
|
|||||||
}, 0)
|
}, 0)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
tableStore.table.params.teriminal = ''
|
tableStore.table.params.devType = ''
|
||||||
tableStore.table.params.teriminalstatus = ''
|
tableStore.table.params.runFlag = ''
|
||||||
tableStore.table.params.state = ''
|
tableStore.table.params.comFlag = ''
|
||||||
tableStore.table.params.program = ''
|
tableStore.table.params.program = ''
|
||||||
tableStore.table.params.searchEvent = ''
|
tableStore.table.params.searchEvent = ''
|
||||||
tableStore.table.params.filterName = ''
|
tableStore.table.params.filterName = ''
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
<el-form-item label="用户名称" prop="assessName">
|
<el-form-item label="用户名称" prop="assessName">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.assessName"
|
v-model="form.assessName"
|
||||||
placeholder="用户名称"
|
placeholder="请输入用户名称"
|
||||||
clearable
|
clearable
|
||||||
show-word-limit
|
show-word-limit
|
||||||
maxlength="32"
|
maxlength="32"
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="变电站电压等级" prop="powerstationScale">
|
<el-form-item label="变电站电压等级" prop="powerstationScale">
|
||||||
<el-select v-model="form.powerstationScale" disabled clearable placeholder="请选择变电站">
|
<el-select v-model="form.powerstationScale" disabled clearable placeholder="请选择变电站电压等级">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in voltageleveloption"
|
v-for="item in voltageleveloption"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
@@ -147,7 +147,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="母线电压等级" prop="busScale">
|
<el-form-item label="母线电压等级" prop="busScale">
|
||||||
<el-select v-model="form.busScale" disabled clearable placeholder="请选择母线">
|
<el-select v-model="form.busScale" disabled clearable placeholder="请选择母线电压等级">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in voltageleveloption"
|
v-for="item in voltageleveloption"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
@@ -189,7 +189,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="导线类型" prop="linetypeId">
|
<el-form-item label="导线类型" prop="linetypeId">
|
||||||
<el-select v-model="form.linetypeId" clearable placeholder="请选择变电站">
|
<el-select v-model="form.linetypeId" clearable placeholder="请选择导线类型">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in linetypeList"
|
v-for="item in linetypeList"
|
||||||
:key="item.linetypeId"
|
:key="item.linetypeId"
|
||||||
@@ -404,7 +404,7 @@ const info = async (id?: string) => {
|
|||||||
const getUserList = async (e?: any) => {
|
const getUserList = async (e?: any) => {
|
||||||
selectUserAssessMentList({ orgId: form.value.deptId, secondAssessmentId: form.value.assessId || '' }).then(res => {
|
selectUserAssessMentList({ orgId: form.value.deptId, secondAssessmentId: form.value.assessId || '' }).then(res => {
|
||||||
userList.value = res.data
|
userList.value = res.data
|
||||||
console.log('🚀 ~ getUserList ~ e:', e)
|
|
||||||
if (e) {
|
if (e) {
|
||||||
assessMentId.value = res.data.filter(item => item.secondAssessmentId == form.value.assessId)[0]?.id || ''
|
assessMentId.value = res.data.filter(item => item.secondAssessmentId == form.value.assessId)[0]?.id || ''
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -220,6 +220,23 @@ const tableStore = new TableStore({
|
|||||||
|
|
||||||
beforeSearchFun: () => {
|
beforeSearchFun: () => {
|
||||||
tableStore.table.params.orgNo = tableStore.table.params.deptIndex
|
tableStore.table.params.orgNo = tableStore.table.params.deptIndex
|
||||||
|
},
|
||||||
|
exportProcessingData: () => {
|
||||||
|
tableStore.table.allData = tableStore.table.allData.filter(item => {
|
||||||
|
item.userStatus =
|
||||||
|
item.userStatus == 0 ? '可研' : item.userStatus == 1 ? '建设' : item.userStatus == 2 ? '运行' : '退运'
|
||||||
|
item.status =
|
||||||
|
item.status == 0
|
||||||
|
? '待提交审批'
|
||||||
|
: item.status == 1
|
||||||
|
? '审批中'
|
||||||
|
: item.status == 2
|
||||||
|
? '审批通过'
|
||||||
|
: item.status == 3
|
||||||
|
? '审批不通过'
|
||||||
|
: '已取消'
|
||||||
|
return item
|
||||||
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
tableStore.table.params.city = ''
|
tableStore.table.params.city = ''
|
||||||
|
|||||||
@@ -169,6 +169,14 @@ const tableStore = new TableStore({
|
|||||||
|
|
||||||
beforeSearchFun: () => {
|
beforeSearchFun: () => {
|
||||||
tableStore.table.params.orgNo = tableStore.table.params.deptIndex
|
tableStore.table.params.orgNo = tableStore.table.params.deptIndex
|
||||||
|
},
|
||||||
|
exportProcessingData: () => {
|
||||||
|
tableStore.table.allData = tableStore.table.allData.filter(item => {
|
||||||
|
item.userStatus =
|
||||||
|
item.userStatus == 0 ? '可研' : item.userStatus == 1 ? '建设' : item.userStatus == 2 ? '运行' : '退运'
|
||||||
|
|
||||||
|
return item
|
||||||
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
tableStore.table.params.city = ''
|
tableStore.table.params.city = ''
|
||||||
|
|||||||
@@ -357,6 +357,7 @@ import {
|
|||||||
import { getAllDeptList } from '@/api/common'
|
import { getAllDeptList } from '@/api/common'
|
||||||
import { getTerminalDetailsById } from '@/api/supervision-boot/terminal/index'
|
import { getTerminalDetailsById } from '@/api/supervision-boot/terminal/index'
|
||||||
import { nodeAllList } from '@/api/device-boot/Business'
|
import { nodeAllList } from '@/api/device-boot/Business'
|
||||||
|
import { getDeviceTypeList } from '@/api/device-boot/modelManage'
|
||||||
const emits = defineEmits(['onSubmit'])
|
const emits = defineEmits(['onSubmit'])
|
||||||
const dictData = useDictData()
|
const dictData = useDictData()
|
||||||
const dialogFormVisible = ref(false)
|
const dialogFormVisible = ref(false)
|
||||||
@@ -377,7 +378,8 @@ const neutralPointWiringMethodList = dictData.getBasicData('Neutral_Point')
|
|||||||
//字典获取厂家
|
//字典获取厂家
|
||||||
const manufacturerList = dictData.getBasicData('Dev_Manufacturers')
|
const manufacturerList = dictData.getBasicData('Dev_Manufacturers')
|
||||||
//字典获取终端型号
|
//字典获取终端型号
|
||||||
const terminalTypeList = dictData.getBasicData('Dev_Type')
|
//const terminalTypeList = dictData.getBasicData('Dev_Type')
|
||||||
|
const terminalTypeList = ref([])
|
||||||
//字典获取数据类型
|
//字典获取数据类型
|
||||||
const dataTypeList = [
|
const dataTypeList = [
|
||||||
{
|
{
|
||||||
@@ -432,7 +434,7 @@ const terminalModelList = [
|
|||||||
const substationList: any = ref([])
|
const substationList: any = ref([])
|
||||||
//字典获取通讯类型
|
//字典获取通讯类型
|
||||||
const frontTypeList = dictData.getBasicData('Front_Type', ['CLD', '61850'])
|
const frontTypeList = dictData.getBasicData('Front_Type', ['CLD', '61850'])
|
||||||
console.log("🚀 ~ frontTypeList:", frontTypeList)
|
//console.log("🚀 ~ frontTypeList:", frontTypeList)
|
||||||
//定义通讯状态下拉框数据
|
//定义通讯状态下拉框数据
|
||||||
const communicationStatusList = [
|
const communicationStatusList = [
|
||||||
{
|
{
|
||||||
@@ -539,6 +541,7 @@ const getPowerCompanyList = async (flag: any) => {
|
|||||||
getAllDeptList().then(res => {
|
getAllDeptList().then(res => {
|
||||||
powerCompanyList.value = res.data[0].children[0].children
|
powerCompanyList.value = res.data[0].children[0].children
|
||||||
if (flag) {
|
if (flag) {
|
||||||
|
|
||||||
getSubstationVoltageLevel({
|
getSubstationVoltageLevel({
|
||||||
orgIds: [
|
orgIds: [
|
||||||
powerCompanyList.value.find(
|
powerCompanyList.value.find(
|
||||||
@@ -1168,12 +1171,26 @@ const disabledDate = time => {
|
|||||||
const importType = ref(null)
|
const importType = ref(null)
|
||||||
const resendId = ref('')
|
const resendId = ref('')
|
||||||
const open = async (row: any) => {
|
const open = async (row: any) => {
|
||||||
console.log('🚀 ~ open ~ row:', row.row)
|
|
||||||
let flag = row.row ? true : false
|
let flag = row.row ? true : false
|
||||||
importType.value = null
|
importType.value = null
|
||||||
if (!flag) await getPowerCompanyList(false)
|
if (!flag) await getPowerCompanyList(false)
|
||||||
title.value = row.title
|
title.value = row.title
|
||||||
dialogFormVisible.value = true
|
dialogFormVisible.value = true
|
||||||
|
|
||||||
|
const params = {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 100,
|
||||||
|
searchState: '',
|
||||||
|
searchValue: ''
|
||||||
|
}
|
||||||
|
await getDeviceTypeList(params).then((res: any) => {
|
||||||
|
terminalTypeList.value = res.data.records.map((item: any) => ({
|
||||||
|
id: item.id,
|
||||||
|
name: item.name
|
||||||
|
}))
|
||||||
|
})
|
||||||
|
|
||||||
if (row.row) {
|
if (row.row) {
|
||||||
resendId.value = row.row.id
|
resendId.value = row.row.id
|
||||||
importType.value = row.row.importType
|
importType.value = row.row.importType
|
||||||
|
|||||||
@@ -0,0 +1,235 @@
|
|||||||
|
<template>
|
||||||
|
|
||||||
|
<div class="dictiontary-list-detail child-router">
|
||||||
|
<!-- 主体区域:左侧树 + 右侧表格 -->
|
||||||
|
<el-row :gutter="20" class="main-content">
|
||||||
|
<!-- 左侧树 -->
|
||||||
|
<el-col :span="6">
|
||||||
|
<div class="tree-container">
|
||||||
|
<el-tree
|
||||||
|
@node-click="clickNode"
|
||||||
|
:expand-on-click-node="false"
|
||||||
|
:highlight-current="true"
|
||||||
|
:data="TreeData"
|
||||||
|
node-key="id"
|
||||||
|
:default-expanded-keys="treeExpandData"
|
||||||
|
:props="defaultProps"
|
||||||
|
ref="tree"
|
||||||
|
></el-tree>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<!-- 右侧表格 -->
|
||||||
|
<el-col :span="18">
|
||||||
|
<TableHeader>
|
||||||
|
<template #select>
|
||||||
|
<el-form-item label="">
|
||||||
|
<el-page-header @back="$emit('close')">
|
||||||
|
<template #content>
|
||||||
|
<span class="text-large font-600 mr-3">报告字典管理</span>
|
||||||
|
</template>
|
||||||
|
</el-page-header>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="过滤筛选">
|
||||||
|
<el-input
|
||||||
|
style="width: 240px"
|
||||||
|
v-model="tableStore.table.params.searchValue"
|
||||||
|
clearable
|
||||||
|
placeholder="请输入筛选数据"
|
||||||
|
maxlength="32"
|
||||||
|
show-word-limit
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</template>
|
||||||
|
<template #operation>
|
||||||
|
<el-button :icon="Plus" type="primary" @click="addTemplate">新增配置项</el-button>
|
||||||
|
</template>
|
||||||
|
</TableHeader>
|
||||||
|
<Table ref="tableRef" />
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 新增 -->
|
||||||
|
<el-dialog
|
||||||
|
:title="dialogTitle"
|
||||||
|
v-model="dialogVisible"
|
||||||
|
width="30%"
|
||||||
|
@close="closeDialog"
|
||||||
|
>
|
||||||
|
<el-form ref="formRef" :rules="rules" :model="form" label-width="80px">
|
||||||
|
<el-form-item label="父节点:" prop="pid">
|
||||||
|
<el-select v-model="form.pid" style="width: 100%" placeholder="请选择父节点" clearable>
|
||||||
|
<el-option
|
||||||
|
v-for="item in secondLevelNode"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.reportDescribe"
|
||||||
|
:value="item.id"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="名称:" prop="name" class="top">
|
||||||
|
<el-input v-model.trim="form.name" placeholder="请输入名称"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="描述:" prop="reportDescribe" class="top">
|
||||||
|
<el-input type="textarea" placeholder="请输入描述" v-model.trim="form.reportDescribe"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<el-button @click="closeDialog">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="addFn">确 定</el-button>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { Plus } from '@element-plus/icons-vue'
|
||||||
|
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 { ElMessage } from 'element-plus'
|
||||||
|
import {
|
||||||
|
getDictTree,
|
||||||
|
getReportDictList,
|
||||||
|
addDict,
|
||||||
|
updateDict,
|
||||||
|
deleteDict
|
||||||
|
} from '@/api/system-boot/ReportTemplate'
|
||||||
|
|
||||||
|
// 弹出框是否可见
|
||||||
|
const dialogVisible = ref<boolean>(false)
|
||||||
|
const dialogTitle = ref('新增配置项')
|
||||||
|
const formRef = ref()
|
||||||
|
const props = defineProps({
|
||||||
|
type: {
|
||||||
|
type: Number,
|
||||||
|
default: undefined
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const formData = reactive({
|
||||||
|
searchValue: '',
|
||||||
|
id: '0',
|
||||||
|
type: props.type
|
||||||
|
})
|
||||||
|
|
||||||
|
const form = reactive({
|
||||||
|
name: '',
|
||||||
|
reportDescribe: '',
|
||||||
|
pid: '',
|
||||||
|
sort: 0,
|
||||||
|
type: props.type
|
||||||
|
})
|
||||||
|
|
||||||
|
const rules = {
|
||||||
|
name: [{ required: true, message: '名称不能为空', trigger: 'blur' }],
|
||||||
|
reportDescribe: [{ required: true, message: '描述不能为空', trigger: 'blur' }],
|
||||||
|
pid: [{ required: true, message: '请选择父节点', trigger: 'change' }]
|
||||||
|
}
|
||||||
|
|
||||||
|
const tableStore = new TableStore({
|
||||||
|
url: '/system-boot/reportDict/getReportDictList',
|
||||||
|
method: 'POST',
|
||||||
|
column: [
|
||||||
|
{ title: '配置项名称', field: 'name' },
|
||||||
|
{ title: '配置项描述', field: 'reportDescribe' },
|
||||||
|
{ title: '上级节点', field: 'pidName' },
|
||||||
|
{
|
||||||
|
title: '操作',fixed: 'right',
|
||||||
|
width: '180',
|
||||||
|
render: 'buttons',
|
||||||
|
|
||||||
|
buttons: [
|
||||||
|
{
|
||||||
|
title: '编辑',
|
||||||
|
type: 'primary',
|
||||||
|
icon: 'el-icon-EditPen',
|
||||||
|
render: 'basicButton',
|
||||||
|
click: row => {
|
||||||
|
popupEditRef.value.open('编辑', {
|
||||||
|
...row,
|
||||||
|
openDescribe: props.detail.openDescribe,
|
||||||
|
openLevel: props.detail.openLevel,
|
||||||
|
typeName: props.detail.name + row.name,
|
||||||
|
typeId: props.detail.id
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '删除',
|
||||||
|
type: 'danger',
|
||||||
|
icon: 'el-icon-Delete',
|
||||||
|
render: 'confirmButton',
|
||||||
|
popconfirm: {
|
||||||
|
confirmButtonText: '确认',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
confirmButtonType: 'danger',
|
||||||
|
title: '确定删除该字典类型吗?'
|
||||||
|
},
|
||||||
|
click: row => {
|
||||||
|
deleteDict([row.id]).then(() => {
|
||||||
|
ElMessage.success('删除成功')
|
||||||
|
tableStore.index()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
loadCallback: () => {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
provide('tableStore', tableStore)
|
||||||
|
const addTemplate = () => {
|
||||||
|
dialogTitle.value = '新增配置项'
|
||||||
|
dialogVisible.value = true
|
||||||
|
Object.assign(form, {
|
||||||
|
name: '',
|
||||||
|
reportDescribe: '',
|
||||||
|
pid: '',
|
||||||
|
sort: 0,
|
||||||
|
type: props.type
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const addFn = () => {
|
||||||
|
formRef.value.validate(async (valid: boolean) => {
|
||||||
|
if (valid) {
|
||||||
|
try {
|
||||||
|
await addDict(form)
|
||||||
|
ElMessage.success('新增成功')
|
||||||
|
dialogVisible.value = false
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
ElMessage.error('新增失败')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const closeDialog = () => {
|
||||||
|
dialogVisible.value = false
|
||||||
|
formRef.value?.resetFields()
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
tableStore.index()
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.back {
|
||||||
|
position: absolute;
|
||||||
|
top: 15px;
|
||||||
|
right: 15px;
|
||||||
|
font-size: 29px;
|
||||||
|
color: #409eff;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -1,22 +1,76 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="default-main">
|
<div class="default-main">
|
||||||
|
|
||||||
<TableHeader ref="TableHeaderRef">
|
<TableHeader ref="TableHeaderRef">
|
||||||
<template v-slot:select>
|
<template v-slot:select>
|
||||||
<el-form-item label="模板类型">
|
<el-form-item label="模板类型">
|
||||||
|
|
||||||
<el-select v-model="tableStore.table.params.type" placeholder="Select" size="large">
|
<el-select v-model="tableStore.table.params.type" placeholder="Select" size="large">
|
||||||
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
<template #operation>
|
<template #operation>
|
||||||
<el-button icon="el-icon-Memo" type="primary" @click="add">报告字典管理</el-button>
|
<el-button icon="el-icon-Memo" type="primary" @click="openReportDictionary">报告字典管理</el-button>
|
||||||
<el-button icon="el-icon-Plus" type="primary" @click="add">新增模版</el-button>
|
<el-button icon="el-icon-Plus" type="primary" @click="add">新增模版</el-button>
|
||||||
</template>
|
</template>
|
||||||
</TableHeader>
|
</TableHeader>
|
||||||
<Table ref="tableRef" />
|
<Table ref="tableRef" />
|
||||||
|
|
||||||
|
<Administration
|
||||||
|
:type="tableStore.table.params.type"
|
||||||
|
v-if="showDictionary"
|
||||||
|
@close="closeReportDictionary"
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
<el-dialog
|
||||||
|
:title="title"
|
||||||
|
v-model="dialogVisible"
|
||||||
|
v-if="dialogVisible"
|
||||||
|
width="40%"
|
||||||
|
>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="11">
|
||||||
|
<div class="grid-content">
|
||||||
|
<el-tree
|
||||||
|
:data="data"
|
||||||
|
show-checkbox
|
||||||
|
node-key="id"
|
||||||
|
:props="defaultProps"
|
||||||
|
:default-checked-keys="treeCheckedData"
|
||||||
|
:default-expanded-keys="treeExpandData"
|
||||||
|
@check-change="handleCheckChange"
|
||||||
|
ref="tree"
|
||||||
|
>
|
||||||
|
</el-tree>
|
||||||
|
</div
|
||||||
|
>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="13">
|
||||||
|
<el-form ref="formRef" :rules="rules" :model="form" label-width="60px">
|
||||||
|
<el-form-item label="名称:" prop="name">
|
||||||
|
<el-input
|
||||||
|
v-model.trim="form.name"
|
||||||
|
placeholder="请输入名称"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="描述:" prop="code" class="top">
|
||||||
|
<el-input
|
||||||
|
type="textarea"
|
||||||
|
:rows="2"
|
||||||
|
placeholder="请输入描述"
|
||||||
|
v-model.trim="form.code"
|
||||||
|
>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item> </el-form
|
||||||
|
>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<template #footer>
|
||||||
|
<el-button @click="closeDialog">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="addDetermine">确定</el-button>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
@@ -24,19 +78,65 @@ import { ref, onMounted, provide, nextTick } from 'vue'
|
|||||||
import TableStore from '@/utils/tableStore'
|
import TableStore from '@/utils/tableStore'
|
||||||
import Table from '@/components/table/index.vue'
|
import Table from '@/components/table/index.vue'
|
||||||
import TableHeader from '@/components/table/header/index.vue'
|
import TableHeader from '@/components/table/header/index.vue'
|
||||||
import { delTemplate } from '@/api/harmonic-boot/luckyexcel'
|
import { addData,updateData,deleteData,getList,getDictTree } from '@/api/system-boot/MonitoringPoint'
|
||||||
import { useDictData } from '@/stores/dictData'
|
|
||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage } from 'element-plus'
|
||||||
|
import Administration from '@/views/system/ReportConfiguration/components/Administration.vue'
|
||||||
|
|
||||||
defineOptions({
|
defineOptions({
|
||||||
name: 'BusinessAdministrator/ReportTemplate/ReportConfiguration'
|
name: 'BusinessAdministrator/ReportTemplate/ReportConfiguration'
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const showDictionary = ref(false)
|
||||||
|
const formRef = ref(null)
|
||||||
|
const tree = ref(null)
|
||||||
|
// 弹出框标题
|
||||||
|
const title = ref<string>('新增模板')
|
||||||
|
|
||||||
|
// 弹出框是否可见
|
||||||
|
const dialogVisible = ref<boolean>(false)
|
||||||
|
// 是否为编辑模式
|
||||||
|
const isEdit = ref<boolean>(false)
|
||||||
|
// 表单数据
|
||||||
|
const form = ref({
|
||||||
|
id: '',
|
||||||
|
name: '',
|
||||||
|
code: '',
|
||||||
|
type: 0,
|
||||||
|
})
|
||||||
|
|
||||||
|
// 表单验证规则
|
||||||
|
const rules = {
|
||||||
|
name: [
|
||||||
|
{ required: true, message: '请输入名称', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
code: [
|
||||||
|
{ required: true, message: '请输入描述', trigger: 'blur' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 树形控件相关数据(假设)
|
||||||
|
const data = ref([]) // 树形数据源
|
||||||
|
const defaultProps = {
|
||||||
|
children: 'children',
|
||||||
|
label: 'label'
|
||||||
|
}
|
||||||
|
const treeCheckedData = ref([]) // 默认选中的节点
|
||||||
|
const treeExpandData = ref([]) // 默认展开的节点
|
||||||
|
|
||||||
const options = ([
|
const options = ([
|
||||||
{ value: '0', label: '监测点报告' },
|
{ value: '0', label: '监测点报告' },
|
||||||
{ value: '1', label: '区域报告' },
|
{ value: '1', label: '区域报告' },
|
||||||
|
|
||||||
])
|
])
|
||||||
|
|
||||||
|
const openReportDictionary = () => {
|
||||||
|
console.log('点击了报告字典管理按钮')
|
||||||
|
showDictionary.value = true
|
||||||
|
console.log('showDictionary 当前值:', showDictionary.value)
|
||||||
|
}
|
||||||
|
|
||||||
|
const closeReportDictionary = () => {
|
||||||
|
showDictionary.value = false
|
||||||
|
}
|
||||||
|
|
||||||
const tableStore: any = new TableStore({
|
const tableStore: any = new TableStore({
|
||||||
url: '/system-boot/EventTemplate/getList',
|
url: '/system-boot/EventTemplate/getList',
|
||||||
@@ -58,7 +158,16 @@ const tableStore: any = new TableStore({
|
|||||||
icon: 'el-icon-Plus',
|
icon: 'el-icon-Plus',
|
||||||
render: 'basicButton',
|
render: 'basicButton',
|
||||||
click: row => {
|
click: row => {
|
||||||
|
isEdit.value = true
|
||||||
|
title.value = '编辑模板'
|
||||||
|
dialogVisible.value = true
|
||||||
|
// 回显表单数据
|
||||||
|
form.value = {
|
||||||
|
id: row.id,
|
||||||
|
name: row.name,
|
||||||
|
code: row.code,
|
||||||
|
type: row.type
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -75,7 +184,8 @@ const tableStore: any = new TableStore({
|
|||||||
title: '确定删除?'
|
title: '确定删除?'
|
||||||
},
|
},
|
||||||
click: row => {
|
click: row => {
|
||||||
delTemplate({ tempId: row.id, deptId: row.deptId }).then(res => {
|
let data = [row.id];
|
||||||
|
deleteData(data).then(res => {
|
||||||
ElMessage.success('删除成功')
|
ElMessage.success('删除成功')
|
||||||
tableStore.index()
|
tableStore.index()
|
||||||
})
|
})
|
||||||
@@ -93,8 +203,51 @@ tableStore.table.params.type = '0'
|
|||||||
provide('tableStore', tableStore)
|
provide('tableStore', tableStore)
|
||||||
|
|
||||||
const add = () => {
|
const add = () => {
|
||||||
|
isEdit.value = true
|
||||||
|
title.value = '新增模板'
|
||||||
|
dialogVisible.value = true
|
||||||
|
// 初始化表单数据
|
||||||
|
form.value = {
|
||||||
|
id: '',
|
||||||
|
name: '',
|
||||||
|
code: '',
|
||||||
|
type: tableStore.table.params.type
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const addDetermine = () => {
|
||||||
|
if (formRef.value) {
|
||||||
|
formRef.value.validate((valid: boolean) => {
|
||||||
|
if (valid) {
|
||||||
|
if (isEdit.value) {
|
||||||
|
// 编辑逻辑
|
||||||
|
updateData(form.value).then(res => {
|
||||||
|
ElMessage.success('编辑模板成功')
|
||||||
|
closeDialog()
|
||||||
|
tableStore.index()
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
// 新增逻辑
|
||||||
|
addData(form.value).then(res => {
|
||||||
|
ElMessage.success('新增模板成功')
|
||||||
|
closeDialog()
|
||||||
|
tableStore.index()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const closeDialog = () => {
|
||||||
|
dialogVisible.value = false
|
||||||
|
// 重置表单
|
||||||
|
if (formRef.value) {
|
||||||
|
formRef.value.resetFields()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
tableStore.index()
|
tableStore.index()
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user