修改海南测试问题
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
:options='options'
|
:options='options'
|
||||||
:props='isMultiple?baseMultipleCascader:baseCascader'
|
:props='isMultiple?baseMultipleCascader:baseCascader'
|
||||||
@change='change'
|
@change='change'
|
||||||
clearable
|
|
||||||
collapse-tags
|
collapse-tags
|
||||||
collapse-tags-tooltip
|
collapse-tags-tooltip
|
||||||
/>
|
/>
|
||||||
@@ -14,76 +14,19 @@
|
|||||||
|
|
||||||
<script setup lang='ts'>
|
<script setup lang='ts'>
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
|
import { useDictData } from '@/stores/dictData'
|
||||||
|
const dictData = useDictData()
|
||||||
const areaCascader = ref()
|
const areaCascader = ref()
|
||||||
let areaValue = ref()
|
let areaValue = ref()
|
||||||
const change = (e: any) => {
|
const change = (e: any) => {
|
||||||
areaValue = areaCascader.value.getCheckedNodes()
|
areaValue = areaCascader.value.getCheckedNodes()
|
||||||
}
|
}
|
||||||
|
|
||||||
const options = [
|
const options = dictData.state.area
|
||||||
{
|
|
||||||
value: '海口市',
|
|
||||||
label: '海口市',
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
value: '秀英区',
|
|
||||||
label: '秀英区',
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
value: '秀英区',
|
|
||||||
label: '秀英区',
|
|
||||||
children: []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: '龙华区',
|
|
||||||
label: '龙华区',
|
|
||||||
children: []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: '琼山区',
|
|
||||||
label: '琼山区',
|
|
||||||
children: []
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: '龙华区',
|
|
||||||
label: '龙华区',
|
|
||||||
children: []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: '琼山区',
|
|
||||||
label: '琼山区',
|
|
||||||
children: []
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: '三亚市',
|
|
||||||
label: '三亚市',
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
value: '海棠区',
|
|
||||||
label: '海棠区',
|
|
||||||
children: []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: '吉阳区',
|
|
||||||
label: '吉阳区',
|
|
||||||
children: []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: '天涯区',
|
|
||||||
label: '天涯区',
|
|
||||||
children: []
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
// 区域联级下拉框配置,多选
|
// 区域联级下拉框配置,多选
|
||||||
const baseMultipleCascader = {
|
const baseMultipleCascader = {
|
||||||
|
label: 'name',
|
||||||
|
value: 'name',
|
||||||
expandTrigger: 'hover' as const,
|
expandTrigger: 'hover' as const,
|
||||||
multiple: true
|
multiple: true
|
||||||
}
|
}
|
||||||
@@ -91,6 +34,8 @@ const baseMultipleCascader = {
|
|||||||
|
|
||||||
// 区域联级下拉框配置,单选
|
// 区域联级下拉框配置,单选
|
||||||
const baseCascader = {
|
const baseCascader = {
|
||||||
|
label: 'name',
|
||||||
|
value: 'name',
|
||||||
expandTrigger: 'hover' as const
|
expandTrigger: 'hover' as const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ onMounted(() => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const toolbarConfig = {
|
const toolbarConfig = {
|
||||||
excludeKeys: ['fullScreen', 'emotion']
|
excludeKeys: ['fullScreen', 'emotion','insertFormula']
|
||||||
}
|
}
|
||||||
let sever = '/api/system-boot/file/upload'
|
let sever = '/api/system-boot/file/upload'
|
||||||
// 本地加api
|
// 本地加api
|
||||||
@@ -56,7 +56,12 @@ const editorConfig = {
|
|||||||
insertFn(res.data.url.split('?')[0], 'image', res.data.url.split('?')[0])
|
insertFn(res.data.url.split('?')[0], 'image', res.data.url.split('?')[0])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
hoverbarKeys: {
|
||||||
|
formula: {
|
||||||
|
menuKeys: ['editFormula'], // “编辑公式”菜单
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// 组件销毁时,也及时销毁编辑器
|
// 组件销毁时,也及时销毁编辑器
|
||||||
|
|||||||
@@ -212,3 +212,4 @@
|
|||||||
.el-drawer__header {
|
.el-drawer__header {
|
||||||
margin-bottom: 0 !important;
|
margin-bottom: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -70,3 +70,7 @@
|
|||||||
.is--disabled {
|
.is--disabled {
|
||||||
background-color: var(--vxe-input-disabled-color);
|
background-color: var(--vxe-input-disabled-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.vxe-modal--wrapper {
|
||||||
|
z-index: 5000 !important;
|
||||||
|
}
|
||||||
@@ -3,22 +3,12 @@
|
|||||||
<template #select>
|
<template #select>
|
||||||
<el-form-item label="监督类型">
|
<el-form-item label="监督类型">
|
||||||
<el-select v-model="tableStore.table.params.supvType" clearable placeholder="请选择流程状态">
|
<el-select v-model="tableStore.table.params.supvType" clearable placeholder="请选择流程状态">
|
||||||
<el-option
|
<el-option v-for="item in supvTypeOptionList" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
||||||
v-for="item in supvTypeOptionList"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id"
|
|
||||||
></el-option>
|
|
||||||
</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.status" clearable placeholder="请选择流程状态">
|
<el-select v-model="tableStore.table.params.status" clearable placeholder="请选择流程状态">
|
||||||
<el-option
|
<el-option v-for="item in statusSelect" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
||||||
v-for="item in statusSelect"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id"
|
|
||||||
></el-option>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
@@ -27,32 +17,32 @@
|
|||||||
<el-button icon="el-icon-Delete" type="primary" @click="deleteEven">删除</el-button>
|
<el-button icon="el-icon-Delete" type="primary" @click="deleteEven">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</TableHeader>
|
</TableHeader>
|
||||||
<Table ref="tableRef" :checkbox-config="checkboxConfig"/>
|
<Table ref="tableRef" :checkbox-config="checkboxConfig" />
|
||||||
<!-- 新增 -->
|
<!-- 新增 -->
|
||||||
<planAdd ref="planAddRef" @onsubmit="tableStore.index()" :openType="openType"/>
|
<planAdd ref="planAddRef" @onsubmit="tableStore.index()" :openType="openType" />
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import {useAdminInfo} from '@/stores/adminInfo'
|
import { useAdminInfo } from '@/stores/adminInfo'
|
||||||
//获取登陆用户姓名和部门
|
//获取登陆用户姓名和部门
|
||||||
const adminInfo = useAdminInfo()
|
const adminInfo = useAdminInfo()
|
||||||
import {ref, onMounted, provide, watch, nextTick} from 'vue'
|
import { ref, onMounted, provide, watch, 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 {ElMessage, ElMessageBox} from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
import {cancel, getById} from '@/api/process-boot/generalTest'
|
import { cancel, getById } from '@/api/process-boot/generalTest'
|
||||||
import planAdd from './planAdd.vue'
|
import planAdd from './planAdd.vue'
|
||||||
import {useRouter} from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
import {queryPlan, removeSurvey} from '@/api/process-boot/generalTest'
|
import { queryPlan, removeSurvey } from '@/api/process-boot/generalTest'
|
||||||
import {getUserByRoleType} from '@/api/user-boot/user'
|
import { getUserByRoleType } from '@/api/user-boot/user'
|
||||||
import {useDictData} from '@/stores/dictData'
|
import { useDictData } from '@/stores/dictData'
|
||||||
import {deleteSurveyPlan} from '@/api/supervision-boot/delete/index'
|
import { deleteSurveyPlan } from '@/api/supervision-boot/delete/index'
|
||||||
import {getUserReportById} from "@/api/supervision-boot/interfere";
|
import { getUserReportById } from "@/api/supervision-boot/interfere";
|
||||||
|
|
||||||
const dictData = useDictData()
|
const dictData = useDictData()
|
||||||
const supvTypeOptionList = dictData.getBasicData('supv_type')
|
const supvTypeOptionList = dictData.getBasicData('supv_type')
|
||||||
const statusSelect = dictData.statusSelect()
|
const statusSelect = dictData.statusSelect()
|
||||||
const {push, options, currentRoute} = useRouter()
|
const { push, options, currentRoute } = useRouter()
|
||||||
const dialogVisible = ref(false)
|
const dialogVisible = ref(false)
|
||||||
const tableRef = ref()
|
const tableRef = ref()
|
||||||
const planAddRef = ref()
|
const planAddRef = ref()
|
||||||
@@ -109,8 +99,8 @@ const tableStore = new TableStore({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
{field: 'planStartTime', minWidth: 130, title: '计划开始时间'},
|
{ field: 'planStartTime', minWidth: 130, title: '计划开始时间' },
|
||||||
{field: 'planEndTime', minWidth: 130, title: '计划结束时间'},
|
{ field: 'planEndTime', minWidth: 130, title: '计划结束时间' },
|
||||||
{
|
{
|
||||||
field: 'status',
|
field: 'status',
|
||||||
title: '流程状态',
|
title: '流程状态',
|
||||||
@@ -221,7 +211,7 @@ const add = () => {
|
|||||||
}
|
}
|
||||||
// 禁止点击
|
// 禁止点击
|
||||||
const checkboxConfig = reactive({
|
const checkboxConfig = reactive({
|
||||||
checkMethod: ({row}) => {
|
checkMethod: ({ row }) => {
|
||||||
return adminInfo.roleCode.includes('delete_info')
|
return adminInfo.roleCode.includes('delete_info')
|
||||||
? true
|
? true
|
||||||
: row.createBy == adminInfo.$state.id && row.status == 0
|
: row.createBy == adminInfo.$state.id && row.status == 0
|
||||||
@@ -234,6 +224,13 @@ const deleteEven = () => {
|
|||||||
message: '请选择要删除的数据'
|
message: '请选择要删除的数据'
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
deleteSurveyPlan(tableStore.table.selection.map(item => item.id)).then(res => {
|
deleteSurveyPlan(tableStore.table.selection.map(item => item.id)).then(res => {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -241,6 +238,9 @@ const deleteEven = () => {
|
|||||||
})
|
})
|
||||||
tableStore.index()
|
tableStore.index()
|
||||||
})
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const exportFn = () => {
|
const exportFn = () => {
|
||||||
@@ -264,7 +264,7 @@ const exportFn = () => {
|
|||||||
/**取消流程操作*/
|
/**取消流程操作*/
|
||||||
const cancelLeave = async (row: any) => {
|
const cancelLeave = async (row: any) => {
|
||||||
// 二次确认
|
// 二次确认
|
||||||
const {value} = await ElMessageBox.prompt('请输入取消原因', '取消流程', {
|
const { value } = await ElMessageBox.prompt('请输入取消原因', '取消流程', {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
inputType: 'textarea',
|
inputType: 'textarea',
|
||||||
@@ -320,7 +320,7 @@ watch(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
const props = defineProps({id: {type: String, default: 'null'}})
|
const props = defineProps({ id: { type: String, default: 'null' } })
|
||||||
watch(() => props.id, async (newValue, oldValue) => {
|
watch(() => props.id, async (newValue, oldValue) => {
|
||||||
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
|
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
|
||||||
const fullId = newValue.split('@')[0]
|
const fullId = newValue.split('@')[0]
|
||||||
@@ -330,7 +330,7 @@ watch(() => props.id, async (newValue, oldValue) => {
|
|||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
planAddRef.value.open('重新发起计划', fullId, false)
|
planAddRef.value.open('重新发起计划', fullId, false)
|
||||||
})
|
})
|
||||||
}, {immediate: true})
|
}, { immediate: true })
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss"></style>
|
<style scoped lang="scss"></style>
|
||||||
|
|||||||
@@ -34,7 +34,8 @@ const layout = mainHeight(63) as any
|
|||||||
watch(() => route.query.t, async (newValue, oldValue) => {
|
watch(() => route.query.t, async (newValue, oldValue) => {
|
||||||
if (route.fullPath.includes('supervision/harmonicmanagement')) {
|
if (route.fullPath.includes('supervision/harmonicmanagement')) {
|
||||||
let type = (route.query.type as string) || 'null'
|
let type = (route.query.type as string) || 'null'
|
||||||
if (type == 'null' || type == '1') {
|
if (type == 'null') { }
|
||||||
|
else if (type == '1') {
|
||||||
activeName.value = '1'
|
activeName.value = '1'
|
||||||
} else {
|
} else {
|
||||||
activeName.value = '2'
|
activeName.value = '2'
|
||||||
|
|||||||
@@ -2,21 +2,21 @@
|
|||||||
<div class='default-main'>
|
<div class='default-main'>
|
||||||
<el-tabs v-model='activeName' type='border-card'>
|
<el-tabs v-model='activeName' type='border-card'>
|
||||||
<el-tab-pane label='未建档用户档案录入管理' name='1'>
|
<el-tab-pane label='未建档用户档案录入管理' name='1'>
|
||||||
<undocumented ref='Undocumented' :id='id' v-if="activeName == '1'"/>
|
<undocumented ref='Undocumented' :id='id' v-if="activeName == '1'" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label='常态化干扰源用户管理' name='3'>
|
<el-tab-pane label='常态化干扰源用户管理' name='3'>
|
||||||
<interferenceUserTable ref='InterferenceUserTable' :id='id' :businessKey="key" v-if="activeName == '3'"/>
|
<interferenceUserTable ref='InterferenceUserTable' :id='id' :businessKey="key" v-if="activeName == '3'" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang='ts'>
|
<script setup lang='ts'>
|
||||||
import {nextTick, ref, provide} from 'vue'
|
import { nextTick, ref, provide } from 'vue'
|
||||||
import {mainHeight} from '@/utils/layout'
|
import { mainHeight } from '@/utils/layout'
|
||||||
import undocumented from './components/undocumented/index.vue'
|
import undocumented from './components/undocumented/index.vue'
|
||||||
import interferenceUserTable from './components/normalizationManager/interferenceUserTable.vue'
|
import interferenceUserTable from './components/normalizationManager/interferenceUserTable.vue'
|
||||||
import {useRoute} from 'vue-router'
|
import { useRoute } from 'vue-router'
|
||||||
|
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const Undocumented = ref()
|
const Undocumented = ref()
|
||||||
@@ -32,7 +32,8 @@ const key = ref('')
|
|||||||
watch(() => route.query.t, async (newValue, oldValue) => {
|
watch(() => route.query.t, async (newValue, oldValue) => {
|
||||||
if (route.fullPath.includes('supervision/interferencemanagement')) {
|
if (route.fullPath.includes('supervision/interferencemanagement')) {
|
||||||
let type = (route.query.type as string) || 'null'
|
let type = (route.query.type as string) || 'null'
|
||||||
if (type == 'null' || type == '1') {
|
if (type == 'null') { }
|
||||||
|
else if (type == '1') {
|
||||||
activeName.value = '1'
|
activeName.value = '1'
|
||||||
} else {
|
} else {
|
||||||
activeName.value = '3'
|
activeName.value = '3'
|
||||||
@@ -41,7 +42,7 @@ watch(() => route.query.t, async (newValue, oldValue) => {
|
|||||||
id.value = id.value + '@' + route.query.t
|
id.value = id.value + '@' + route.query.t
|
||||||
key.value = (route.query.key as string) || 'null'
|
key.value = (route.query.key as string) || 'null'
|
||||||
}
|
}
|
||||||
}, {deep: true, immediate: true})
|
}, { deep: true, immediate: true })
|
||||||
|
|
||||||
|
|
||||||
const layout = mainHeight(63) as any
|
const layout = mainHeight(63) as any
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import { ref } from 'vue'
|
|||||||
import { mainHeight } from '@/utils/layout'
|
import { mainHeight } from '@/utils/layout'
|
||||||
import terminal from './terminal.vue'
|
import terminal from './terminal.vue'
|
||||||
import monitor from './monitor.vue'
|
import monitor from './monitor.vue'
|
||||||
import {useRoute} from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
|
|
||||||
defineOptions({
|
defineOptions({
|
||||||
name: 'supervision/retire'
|
name: 'supervision/retire'
|
||||||
@@ -30,7 +30,8 @@ const layout = mainHeight(63) as any
|
|||||||
watch(() => route.query.t, async (newValue, oldValue) => {
|
watch(() => route.query.t, async (newValue, oldValue) => {
|
||||||
if (route.fullPath.includes('supervision/retire')) {
|
if (route.fullPath.includes('supervision/retire')) {
|
||||||
let type = (route.query.type as string) || 'null'
|
let type = (route.query.type as string) || 'null'
|
||||||
if (type == 'null' || type == '0') {
|
if (type == 'null') { }
|
||||||
|
else if (type == '0') {
|
||||||
activeName.value = '0'
|
activeName.value = '0'
|
||||||
} else {
|
} else {
|
||||||
activeName.value = '1'
|
activeName.value = '1'
|
||||||
@@ -38,7 +39,7 @@ watch(() => route.query.t, async (newValue, oldValue) => {
|
|||||||
id.value = (route.query.id as string) || 'null'
|
id.value = (route.query.id as string) || 'null'
|
||||||
id.value = id.value + '@' + route.query.t
|
id.value = id.value + '@' + route.query.t
|
||||||
}
|
}
|
||||||
}, {deep: true, immediate: true})
|
}, { deep: true, immediate: true })
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang='scss' scoped>
|
<style lang='scss' scoped>
|
||||||
|
|||||||
@@ -5,20 +5,13 @@
|
|||||||
<template #select>
|
<template #select>
|
||||||
<el-form-item label="流程状态">
|
<el-form-item label="流程状态">
|
||||||
<el-select v-model="tableStore.table.params.status" clearable placeholder="请选择流程状态">
|
<el-select v-model="tableStore.table.params.status" clearable placeholder="请选择流程状态">
|
||||||
<el-option
|
<el-option v-for="item in statusSelect" :key="item.id" :label="item.name"
|
||||||
v-for="item in statusSelect"
|
:value="item.id"></el-option>
|
||||||
:key="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id"
|
|
||||||
></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.searchValue" placeholder="输入变电站、监测点"
|
||||||
v-model="tableStore.table.params.searchValue"
|
clearable></el-input>
|
||||||
placeholder="输入变电站、监测点"
|
|
||||||
clearable
|
|
||||||
></el-input>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
<template #operation>
|
<template #operation>
|
||||||
@@ -42,7 +35,7 @@ import { useRouter } from 'vue-router'
|
|||||||
import MonitorQuitPopup from '@/views/pqs/supervise/retire/monitorQuitPopup.vue'
|
import MonitorQuitPopup from '@/views/pqs/supervise/retire/monitorQuitPopup.vue'
|
||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage } from 'element-plus'
|
||||||
import { ElMessageBox } from 'element-plus/es'
|
import { ElMessageBox } from 'element-plus/es'
|
||||||
import {cancelQuitRunningDevice, getRunningDeviceById} from '@/api/supervision-boot/device/quitRunningDev'
|
import { cancelQuitRunningDevice, getRunningDeviceById } from '@/api/supervision-boot/device/quitRunningDev'
|
||||||
import { deleteQuitRunningDevice } from '@/api/supervision-boot/delete/index'
|
import { deleteQuitRunningDevice } from '@/api/supervision-boot/delete/index'
|
||||||
import { useDictData } from '@/stores/dictData'
|
import { useDictData } from '@/stores/dictData'
|
||||||
const dictData = useDictData()
|
const dictData = useDictData()
|
||||||
@@ -253,6 +246,12 @@ const deleteEven = () => {
|
|||||||
message: '请选择要删除的数据'
|
message: '请选择要删除的数据'
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
deleteQuitRunningDevice(tableStore.table.selection.map(item => item.id)).then(res => {
|
deleteQuitRunningDevice(tableStore.table.selection.map(item => item.id)).then(res => {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -260,6 +259,10 @@ const deleteEven = () => {
|
|||||||
})
|
})
|
||||||
tableStore.index()
|
tableStore.index()
|
||||||
})
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/** 流程实例详情 */
|
/** 流程实例详情 */
|
||||||
@@ -312,7 +315,7 @@ watch(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
const props = defineProps({id: {type: String, default: 'null'}})
|
const props = defineProps({ id: { type: String, default: 'null' } })
|
||||||
watch(() => props.id, async (newValue, oldValue) => {
|
watch(() => props.id, async (newValue, oldValue) => {
|
||||||
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
|
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
|
||||||
const fullId = newValue.split('@')[0]
|
const fullId = newValue.split('@')[0]
|
||||||
@@ -324,5 +327,5 @@ watch(() => props.id, async (newValue, oldValue) => {
|
|||||||
deviceQuitPopup.value.open('重新发起', res.data)
|
deviceQuitPopup.value.open('重新发起', res.data)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}, {immediate: true})
|
}, { immediate: true })
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -249,6 +249,12 @@ const deleteEven = () => {
|
|||||||
message: '请选择要删除的数据'
|
message: '请选择要删除的数据'
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
deleteQuitRunningDevice(tableStore.table.selection.map(item => item.id)).then(res => {
|
deleteQuitRunningDevice(tableStore.table.selection.map(item => item.id)).then(res => {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -256,6 +262,8 @@ const deleteEven = () => {
|
|||||||
})
|
})
|
||||||
tableStore.index()
|
tableStore.index()
|
||||||
})
|
})
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/** 流程实例详情 */
|
/** 流程实例详情 */
|
||||||
|
|||||||
@@ -3,12 +3,8 @@
|
|||||||
<template #select>
|
<template #select>
|
||||||
<el-form-item label="流程状态">
|
<el-form-item label="流程状态">
|
||||||
<el-select v-model="tableStore.table.params.status" clearable placeholder="请选择流程状态">
|
<el-select v-model="tableStore.table.params.status" clearable placeholder="请选择流程状态">
|
||||||
<el-option
|
<el-option v-for="item in statusSelect" :key="item.id" :label="item.name"
|
||||||
v-for="item in statusSelect"
|
:value="item.id"></el-option>
|
||||||
:key="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id"
|
|
||||||
></el-option>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
@@ -27,14 +23,14 @@
|
|||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import {ref, onMounted, provide, nextTick, watch} from 'vue'
|
import { ref, onMounted, provide, nextTick, watch } 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 { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
import FeedbackPopup from '@/views/pqs/supervise/technology/feedbackPopup.vue'
|
import FeedbackPopup from '@/views/pqs/supervise/technology/feedbackPopup.vue'
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
import {cancelFeedback, getById} from '@/api/supervision-boot/leaflet'
|
import { cancelFeedback, getById } from '@/api/supervision-boot/leaflet'
|
||||||
import { useAdminInfo } from '@/stores/adminInfo'
|
import { useAdminInfo } from '@/stores/adminInfo'
|
||||||
import { useDictData } from '@/stores/dictData'
|
import { useDictData } from '@/stores/dictData'
|
||||||
import { getFileNameAndFilePath } from '@/api/system-boot/file'
|
import { getFileNameAndFilePath } from '@/api/system-boot/file'
|
||||||
@@ -399,6 +395,12 @@ const deleteEven = () => {
|
|||||||
message: '请选择要删除的数据'
|
message: '请选择要删除的数据'
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
deleteWarningLeaflet(tableStore.table.selection.map(item => item.id)).then(res => {
|
deleteWarningLeaflet(tableStore.table.selection.map(item => item.id)).then(res => {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -406,6 +408,10 @@ const deleteEven = () => {
|
|||||||
})
|
})
|
||||||
tableStore.index()
|
tableStore.index()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**取消流程操作*/
|
/**取消流程操作*/
|
||||||
@@ -448,17 +454,19 @@ const handleAudit = (instanceId: any, historyInstanceId: any) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const props = defineProps(['id','businessKey'])
|
const props = defineProps(['id', 'businessKey'])
|
||||||
watch(() => props.id, async (newValue, oldValue) => {
|
watch(() => props.id, async (newValue, oldValue) => {
|
||||||
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
|
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
|
||||||
const fullId = newValue.split('@')[0]
|
let fullId = newValue.split('@')[0]
|
||||||
let nowTime = Date.now()
|
let nowTime = Date.now()
|
||||||
const routeTime = Number(newValue.split('@')[1])
|
const routeTime = Number(newValue.split('@')[1])
|
||||||
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT) return // 路由时间超过500ms,则不执行
|
|
||||||
|
|
||||||
|
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT || fullId == 'null') return // 路由时间超过500ms,则不执行
|
||||||
await getById(fullId).then(res => {
|
await getById(fullId).then(res => {
|
||||||
if (res && res.code == 'A0000') {
|
if (res && res.code == 'A0000') {
|
||||||
if (res && res.code == 'A0000') {
|
if (res && res.code == 'A0000') {
|
||||||
if(props.businessKey == '3'){
|
if (props.businessKey == '3') {
|
||||||
feedbackPopup.value.open(
|
feedbackPopup.value.open(
|
||||||
'填报告警反馈单',
|
'填报告警反馈单',
|
||||||
res.data.id,
|
res.data.id,
|
||||||
@@ -468,7 +476,7 @@ watch(() => props.id, async (newValue, oldValue) => {
|
|||||||
res.data.supervisionReport,
|
res.data.supervisionReport,
|
||||||
res.data.reformAdvice
|
res.data.reformAdvice
|
||||||
)
|
)
|
||||||
}else{
|
} else {
|
||||||
feedbackPopup.value.open(
|
feedbackPopup.value.open(
|
||||||
'重新填报告警反馈单',
|
'重新填报告警反馈单',
|
||||||
res.data.id,
|
res.data.id,
|
||||||
@@ -486,7 +494,7 @@ watch(() => props.id, async (newValue, oldValue) => {
|
|||||||
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}, {immediate: true})
|
}, { immediate: true })
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss"></style>
|
<style scoped lang="scss"></style>
|
||||||
|
|||||||
@@ -281,6 +281,13 @@ const deleteEven = () => {
|
|||||||
message: '请选择要删除的数据'
|
message: '请选择要删除的数据'
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
deleteWarningLeaflet(tableStore.table.selection.map(item => item.id)).then(res => {
|
deleteWarningLeaflet(tableStore.table.selection.map(item => item.id)).then(res => {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -288,6 +295,9 @@ const deleteEven = () => {
|
|||||||
})
|
})
|
||||||
tableStore.index()
|
tableStore.index()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**取消流程操作*/
|
/**取消流程操作*/
|
||||||
@@ -325,10 +335,10 @@ const handleAudit = (instanceId: any, historyInstanceId: any) => {
|
|||||||
const props = defineProps(['id','businessKey'])
|
const props = defineProps(['id','businessKey'])
|
||||||
watch(() => props.id, async (newValue, oldValue) => {
|
watch(() => props.id, async (newValue, oldValue) => {
|
||||||
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
|
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
|
||||||
const fullId = newValue.split('@')[0]
|
let fullId = newValue.split('@')[0]
|
||||||
let nowTime = Date.now()
|
let nowTime = Date.now()
|
||||||
const routeTime = Number(newValue.split('@')[1])
|
const routeTime = Number(newValue.split('@')[1])
|
||||||
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT) return // 路由时间超过500ms,则不执行
|
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT || fullId == 'null') return // 路由时间超过500ms,则不执行
|
||||||
await getById(fullId).then(res => {
|
await getById(fullId).then(res => {
|
||||||
if (res && res.code == 'A0000') {
|
if (res && res.code == 'A0000') {
|
||||||
if(props.businessKey == '3'){
|
if(props.businessKey == '3'){
|
||||||
|
|||||||
@@ -3,22 +3,12 @@
|
|||||||
<el-scrollbar>
|
<el-scrollbar>
|
||||||
<el-form :inline="false" :model="form" label-width="120px" :rules="rules" ref="formRef">
|
<el-form :inline="false" :model="form" label-width="120px" :rules="rules" ref="formRef">
|
||||||
<el-form-item label="问题详情:">
|
<el-form-item label="问题详情:">
|
||||||
<el-input
|
<el-input v-model="form.issueDetail" disabled autocomplete="off" type="textarea"
|
||||||
v-model="form.issueDetail"
|
:autosize="{ minRows: 2, maxRows: 6 }" readonly />
|
||||||
autocomplete="off"
|
|
||||||
type="textarea"
|
|
||||||
:autosize="{ minRows: 2, maxRows: 6 }"
|
|
||||||
readonly
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="整改意见:">
|
<el-form-item label="整改意见:">
|
||||||
<el-input
|
<el-input v-model="form.reformAdvice" autocomplete="off" disabled type="textarea"
|
||||||
v-model="form.reformAdvice"
|
:autosize="{ minRows: 2, maxRows: 6 }" readonly />
|
||||||
autocomplete="off"
|
|
||||||
type="textarea"
|
|
||||||
:autosize="{ minRows: 2, maxRows: 6 }"
|
|
||||||
readonly
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="技术监督报告:" v-if="showFile1">
|
<el-form-item label="技术监督报告:" v-if="showFile1">
|
||||||
@@ -38,26 +28,12 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="采取的措施:" prop="takeStep">
|
<el-form-item label="采取的措施:" prop="takeStep">
|
||||||
<el-input
|
<el-input v-model="form.takeStep" autocomplete="off" placeholder="请输入采取的措施" type="textarea" />
|
||||||
v-model="form.takeStep"
|
|
||||||
autocomplete="off"
|
|
||||||
placeholder="请输入采取的措施"
|
|
||||||
type="textarea"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="反馈报告:" class="uploadFile" prop="reportPath">
|
<el-form-item label="反馈报告:" class="uploadFile" prop="reportPath">
|
||||||
<el-upload
|
<el-upload v-model:file-list="form.reportPath" ref="uploadRef" action="" :accept="acceptType"
|
||||||
v-model:file-list="form.reportPath"
|
:limit="1" :on-exceed="handleExceed" :on-change="choose" :auto-upload="false"
|
||||||
ref="uploadRef"
|
:on-progress="uploadFileName('reportPath')" :on-remove="removeFile">
|
||||||
action=""
|
|
||||||
:accept="acceptType"
|
|
||||||
:limit="1"
|
|
||||||
:on-exceed="handleExceed"
|
|
||||||
:on-change="choose"
|
|
||||||
:auto-upload="false"
|
|
||||||
:on-progress="uploadFileName('reportPath')"
|
|
||||||
:on-remove="removeFile"
|
|
||||||
>
|
|
||||||
<template #trigger>
|
<template #trigger>
|
||||||
<el-button type="primary">上传文件</el-button>
|
<el-button type="primary">上传文件</el-button>
|
||||||
</template>
|
</template>
|
||||||
@@ -70,8 +46,8 @@
|
|||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
<el-button @click="close">取消</el-button>
|
<el-button @click="close">取消</el-button>
|
||||||
<!-- <el-button type="primary" @click="submit">确认</el-button> -->
|
<!-- <el-button type="primary" @click="submit">确认</el-button> -->
|
||||||
<el-button type="primary" @click="submit(true)" :loading="loading" >保存</el-button>
|
<el-button type="primary" @click="submit(true)" :loading="loading">保存</el-button>
|
||||||
<el-button type="primary" @click="submit(false)" :loading="loading" >提交审批</el-button>
|
<el-button type="primary" @click="submit(false)" :loading="loading">提交审批</el-button>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@@ -160,8 +136,8 @@ const open = async (
|
|||||||
}
|
}
|
||||||
form.value.id = id
|
form.value.id = id
|
||||||
form.value.status = status
|
form.value.status = status
|
||||||
form.value.issueDetail = issueDetail
|
form.value.issueDetail = issueDetail || ''
|
||||||
form.value.reformAdvice = reformAdvice
|
form.value.reformAdvice = reformAdvice || ''
|
||||||
reportFilePath.value = reportPath
|
reportFilePath.value = reportPath
|
||||||
//判断附件是否存在,如果存在则回显出让用户可以点击下载
|
//判断附件是否存在,如果存在则回显出让用户可以点击下载
|
||||||
if (problemPath) {
|
if (problemPath) {
|
||||||
@@ -207,7 +183,7 @@ const close = () => {
|
|||||||
/**
|
/**
|
||||||
* 提交用户表单数据
|
* 提交用户表单数据
|
||||||
*/
|
*/
|
||||||
const submit =async (flag: boolean) => {
|
const submit = async (flag: boolean) => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
if (flag) {
|
if (flag) {
|
||||||
let subForm = JSON.parse(JSON.stringify(form.value))
|
let subForm = JSON.parse(JSON.stringify(form.value))
|
||||||
@@ -292,6 +268,7 @@ const uploadFileName = val => {
|
|||||||
.el-select {
|
.el-select {
|
||||||
min-width: 180px;
|
min-width: 180px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.elView {
|
.elView {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
|
|||||||
@@ -27,13 +27,14 @@ defineOptions({
|
|||||||
name: 'supervision/supervision/manage'
|
name: 'supervision/supervision/manage'
|
||||||
})
|
})
|
||||||
|
|
||||||
const activeName: any = ref(null)
|
const activeName: any = ref('3')
|
||||||
|
|
||||||
|
|
||||||
watch(() => route.query.t, async (newValue, oldValue) => {
|
watch(() => route.query.t, async (newValue, oldValue) => {
|
||||||
if (route.fullPath.includes('supervision/supervision/manage')) {
|
if (route.fullPath.includes('supervision/supervision/manage')) {
|
||||||
let type = (route.query.type as string) || 'null'
|
let type = (route.query.type as string) || 'null'
|
||||||
if (type == 'null' || type == '0' || type == '3') {
|
if (type == 'null') { }
|
||||||
|
else if (type == '0' || type == '3') {
|
||||||
activeName.value = '3'
|
activeName.value = '3'
|
||||||
} else {
|
} else {
|
||||||
activeName.value = '4'
|
activeName.value = '4'
|
||||||
@@ -42,7 +43,7 @@ watch(() => route.query.t, async (newValue, oldValue) => {
|
|||||||
key.value = (route.query.key as string) || 'null'
|
key.value = (route.query.key as string) || 'null'
|
||||||
id.value = id.value + '@' + route.query.t
|
id.value = id.value + '@' + route.query.t
|
||||||
}
|
}
|
||||||
}, {deep: true, immediate: true})
|
}, { deep: true, immediate: true })
|
||||||
|
|
||||||
|
|
||||||
const layout = mainHeight(63) as any
|
const layout = mainHeight(63) as any
|
||||||
|
|||||||
@@ -109,6 +109,8 @@ const tableStore = new TableStore({
|
|||||||
name: '电网拓扑',
|
name: '电网拓扑',
|
||||||
code: 'Power_Network'
|
code: 'Power_Network'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tableStore.table.params.runFlag = []
|
||||||
if(tableStore.table.params.runF!=null){
|
if(tableStore.table.params.runF!=null){
|
||||||
tableStore.table.params.runFlag = [tableStore.table.params.runF]
|
tableStore.table.params.runFlag = [tableStore.table.params.runF]
|
||||||
}
|
}
|
||||||
@@ -121,7 +123,7 @@ tableStore.table.params.runF=null
|
|||||||
tableStore.table.params.runFlag=[]
|
tableStore.table.params.runFlag=[]
|
||||||
tableStore.table.params.searchValue=''
|
tableStore.table.params.searchValue=''
|
||||||
|
|
||||||
const runFlagList = [{id:0,name:'运行'},{id:1,name:'检修'},{id:2,name:'停运'},{id:3,name:'调试'},{id:4,name:'退运'}]
|
const runFlagList = [{id:0,name:'投运'},{id:1,name:'检修'},{id:2,name:'停运'},{id:3,name:'调试'},{id:4,name:'退运'}]
|
||||||
|
|
||||||
|
|
||||||
provide('tableStore', tableStore)
|
provide('tableStore', tableStore)
|
||||||
|
|||||||
@@ -254,6 +254,14 @@ const deleteEven = () => {
|
|||||||
message: '请选择要删除的数据'
|
message: '请选择要删除的数据'
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
|
||||||
deleteUserReport(tableStore.table.selection.map(item => item.id)).then(res => {
|
deleteUserReport(tableStore.table.selection.map(item => item.id)).then(res => {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -261,6 +269,8 @@ const deleteEven = () => {
|
|||||||
})
|
})
|
||||||
tableStore.index()
|
tableStore.index()
|
||||||
})
|
})
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**取消流程操作*/
|
/**取消流程操作*/
|
||||||
|
|||||||
@@ -205,6 +205,13 @@ const deleteEven = () => {
|
|||||||
message: '请选择要删除的数据'
|
message: '请选择要删除的数据'
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
|
||||||
deleteUserReport(tableStore.table.selection.map(item => item.id)).then(res => {
|
deleteUserReport(tableStore.table.selection.map(item => item.id)).then(res => {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -212,6 +219,8 @@ const deleteEven = () => {
|
|||||||
})
|
})
|
||||||
tableStore.index()
|
tableStore.index()
|
||||||
})
|
})
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class='default-main'>
|
<div class='default-main'>
|
||||||
<el-tabs v-model='activeName' type='border-card'>
|
<el-tabs v-model='activeName' type='border-card'>
|
||||||
<el-tab-pane label='干扰源用户台账' name='1' >
|
<el-tab-pane label='干扰源用户台账' name='1'>
|
||||||
<interferenceUserTable :id='id' v-if="activeName == '1'" />
|
<interferenceUserTable :id='id' v-if="activeName == '1'" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label='敏感及重要用户台账' name='2' >
|
<el-tab-pane label='敏感及重要用户台账' name='2'>
|
||||||
<sensitiveUserTable v-if="activeName == '2'" />
|
<sensitiveUserTable v-if="activeName == '2'" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label='变电站台账' name='3' >
|
<el-tab-pane label='变电站台账' name='3'>
|
||||||
<substationLedger v-if="activeName == '3'" />
|
<substationLedger v-if="activeName == '3'" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label='终端台账' name='4'>
|
<el-tab-pane label='终端台账' name='4'>
|
||||||
@@ -41,13 +41,14 @@ const activeName = ref('1')
|
|||||||
watch(() => route.query.t, async (newValue, oldValue) => {
|
watch(() => route.query.t, async (newValue, oldValue) => {
|
||||||
if (route.fullPath.includes('Supervision/Terminaldetection')) {
|
if (route.fullPath.includes('Supervision/Terminaldetection')) {
|
||||||
let type = (route.query.type as string) || 'null'
|
let type = (route.query.type as string) || 'null'
|
||||||
if (type == '1') {
|
if (type == 'null') { }
|
||||||
|
else if (type == '1') {
|
||||||
activeName.value = '1'
|
activeName.value = '1'
|
||||||
}
|
}
|
||||||
id.value = (route.query.id as string) || 'null'
|
id.value = (route.query.id as string) || 'null'
|
||||||
id.value = id.value + '@' + route.query.t
|
id.value = id.value + '@' + route.query.t
|
||||||
}
|
}
|
||||||
}, {deep: true, immediate: true})
|
}, { deep: true, immediate: true })
|
||||||
|
|
||||||
const layout = mainHeight(63) as any
|
const layout = mainHeight(63) as any
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -265,6 +265,14 @@ const deleteEven = () => {
|
|||||||
message: '请选择要删除的数据'
|
message: '请选择要删除的数据'
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
|
||||||
deleteTempLineDebugReport(tableStore.table.selection.map(item => item.id)).then(res => {
|
deleteTempLineDebugReport(tableStore.table.selection.map(item => item.id)).then(res => {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -272,6 +280,8 @@ const deleteEven = () => {
|
|||||||
})
|
})
|
||||||
tableStore.index()
|
tableStore.index()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
|||||||
@@ -3,20 +3,13 @@
|
|||||||
<TableHeader area datePicker nextFlag theCurrentTime ref="TableHeaderRef">
|
<TableHeader area datePicker nextFlag theCurrentTime ref="TableHeaderRef">
|
||||||
<template #select>
|
<template #select>
|
||||||
<el-form-item label="搜索">
|
<el-form-item label="搜索">
|
||||||
<el-input
|
<el-input v-model="tableStore.table.params.searchValue" placeholder="输入变电站、终端、监测点名称"
|
||||||
v-model="tableStore.table.params.searchValue"
|
clearable></el-input>
|
||||||
placeholder="输入变电站、终端、监测点名称"
|
|
||||||
clearable
|
|
||||||
></el-input>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="流程状态">
|
<el-form-item label="流程状态">
|
||||||
<el-select v-model="tableStore.table.params.status" clearable placeholder="请选择流程状态">
|
<el-select v-model="tableStore.table.params.status" clearable placeholder="请选择流程状态">
|
||||||
<el-option
|
<el-option v-for="item in statusSelect" :key="item.id" :label="item.name"
|
||||||
v-for="item in statusSelect"
|
:value="item.id"></el-option>
|
||||||
:key="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id"
|
|
||||||
></el-option>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
@@ -43,9 +36,9 @@ import addForm from './addForm.vue'
|
|||||||
import { useAdminInfo } from '@/stores/adminInfo'
|
import { useAdminInfo } from '@/stores/adminInfo'
|
||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage } from 'element-plus'
|
||||||
import { ElMessageBox } from 'element-plus/es'
|
import { ElMessageBox } from 'element-plus/es'
|
||||||
import {cancelMointorPointFormData, getTempLineDetailsById} from '@/api/supervision-boot/monitorpoint/index'
|
import { cancelMointorPointFormData, getTempLineDetailsById } from '@/api/supervision-boot/monitorpoint/index'
|
||||||
import { deleteTempLineReport } from '@/api/supervision-boot/delete/index'
|
import { deleteTempLineReport } from '@/api/supervision-boot/delete/index'
|
||||||
import {getTerminalDetailsById} from "@/api/supervision-boot/terminal";
|
import { getTerminalDetailsById } from "@/api/supervision-boot/terminal";
|
||||||
//获取登陆用户姓名和部门
|
//获取登陆用户姓名和部门
|
||||||
const adminInfo = useAdminInfo()
|
const adminInfo = useAdminInfo()
|
||||||
const dictData = useDictData()
|
const dictData = useDictData()
|
||||||
@@ -240,6 +233,14 @@ const deleteEven = () => {
|
|||||||
message: '请选择要删除的数据'
|
message: '请选择要删除的数据'
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
|
||||||
deleteTempLineReport(tableStore.table.selection.map(item => item.id)).then(res => {
|
deleteTempLineReport(tableStore.table.selection.map(item => item.id)).then(res => {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -247,6 +248,8 @@ const deleteEven = () => {
|
|||||||
})
|
})
|
||||||
tableStore.index()
|
tableStore.index()
|
||||||
})
|
})
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -294,14 +297,14 @@ const handleAudit = (instanceId: any, historyInstanceId: any) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const props = defineProps({id: {type: String, default: 'null'}})
|
const props = defineProps({ id: { type: String, default: 'null' } })
|
||||||
watch(() => props.id, async (newValue, oldValue) => {
|
watch(() => props.id, async (newValue, oldValue) => {
|
||||||
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
|
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
|
||||||
const fullId = newValue.split('@')[0]
|
const fullId = newValue.split('@')[0]
|
||||||
let nowTime = Date.now()
|
let nowTime = Date.now()
|
||||||
const routeTime = Number(newValue.split('@')[1])
|
const routeTime = Number(newValue.split('@')[1])
|
||||||
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT) return // 路由时间超过500ms,则不执行
|
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT) return // 路由时间超过500ms,则不执行
|
||||||
await getTempLineDetailsById({id:fullId}).then(res => {
|
await getTempLineDetailsById({ id: fullId }).then(res => {
|
||||||
if (res && res.code == 'A0000') {
|
if (res && res.code == 'A0000') {
|
||||||
addForms.value.open({
|
addForms.value.open({
|
||||||
title: '重新发起',
|
title: '重新发起',
|
||||||
@@ -309,7 +312,7 @@ watch(() => props.id, async (newValue, oldValue) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}, {immediate: true})
|
}, { immediate: true })
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
|||||||
@@ -15,7 +15,8 @@
|
|||||||
<template #operation>
|
<template #operation>
|
||||||
<el-button icon="el-icon-Plus" type="primary" @click="addFormModel">新增</el-button>
|
<el-button icon="el-icon-Plus" type="primary" @click="addFormModel">新增</el-button>
|
||||||
<el-button icon="el-icon-Delete" type="primary" @click="deleteEven">删除</el-button>
|
<el-button icon="el-icon-Delete" type="primary" @click="deleteEven">删除</el-button>
|
||||||
<el-button icon="el-icon-Download" type="primary" @click="exportExcelTemplate" :loading="loading">模版下载</el-button>
|
<el-button icon="el-icon-Download" type="primary" @click="exportExcelTemplate"
|
||||||
|
:loading="loading">模版下载</el-button>
|
||||||
<el-button icon="el-icon-Upload" type="primary" @click="importUserData">批量导入</el-button>
|
<el-button icon="el-icon-Upload" type="primary" @click="importUserData">批量导入</el-button>
|
||||||
</template>
|
</template>
|
||||||
</TableHeader>
|
</TableHeader>
|
||||||
@@ -268,6 +269,12 @@ const deleteEven = () => {
|
|||||||
message: '请选择要删除的数据'
|
message: '请选择要删除的数据'
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
deleteDevReport(tableStore.table.selection.map(item => item.id)).then(res => {
|
deleteDevReport(tableStore.table.selection.map(item => item.id)).then(res => {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -275,6 +282,11 @@ const deleteEven = () => {
|
|||||||
})
|
})
|
||||||
tableStore.index()
|
tableStore.index()
|
||||||
})
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,29 +2,29 @@
|
|||||||
<div class="default-main">
|
<div class="default-main">
|
||||||
<el-tabs v-model="activeName" type="border-card">
|
<el-tabs v-model="activeName" type="border-card">
|
||||||
<el-tab-pane label="终端入网检测" name="1">
|
<el-tab-pane label="终端入网检测" name="1">
|
||||||
<terminal :id="id" v-if="activeName == '1'"/>
|
<terminal :id="id" v-if="activeName == '1'" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="监测点台账录入" name="2">
|
<el-tab-pane label="监测点台账录入" name="2">
|
||||||
<monitorpoint :id="id" v-if="activeName == '2'"/>
|
<monitorpoint :id="id" v-if="activeName == '2'" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="监测点联调列表" name="3">
|
<el-tab-pane label="监测点联调列表" name="3">
|
||||||
<jointDebugList :id="id" v-if="activeName == '3'"/>
|
<jointDebugList :id="id" v-if="activeName == '3'" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="终端周期检测" name="4">
|
<el-tab-pane label="终端周期检测" name="4">
|
||||||
<cycleDetection :id="id" :businessKey='key' v-if="activeName == '4'"/>
|
<cycleDetection :id="id" :businessKey='key' v-if="activeName == '4'" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import {ref} from 'vue'
|
import { ref } from 'vue'
|
||||||
import {mainHeight} from '@/utils/layout'
|
import { mainHeight } from '@/utils/layout'
|
||||||
import terminal from './components/terminainal/index.vue'
|
import terminal from './components/terminainal/index.vue'
|
||||||
import monitorpoint from './components/monitorpoint/index.vue'
|
import monitorpoint from './components/monitorpoint/index.vue'
|
||||||
import jointDebugList from './components/jointDebugList/index.vue'
|
import jointDebugList from './components/jointDebugList/index.vue'
|
||||||
import cycleDetection from './components/cycleDetection/index.vue'
|
import cycleDetection from './components/cycleDetection/index.vue'
|
||||||
import {useRoute} from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
|
|
||||||
defineOptions({
|
defineOptions({
|
||||||
name: 'terminalNetwotk'
|
name: 'terminalNetwotk'
|
||||||
@@ -38,7 +38,8 @@ const key = ref('')
|
|||||||
watch(() => route.query.t, async (newValue, oldValue) => {
|
watch(() => route.query.t, async (newValue, oldValue) => {
|
||||||
if (route.fullPath.includes('terminalNetwotk')) {
|
if (route.fullPath.includes('terminalNetwotk')) {
|
||||||
let type = (route.query.type as string) || 'null'
|
let type = (route.query.type as string) || 'null'
|
||||||
if (type == 'null' || type == '1') {
|
if (type == 'null') { }
|
||||||
|
else if (type == '1') {
|
||||||
activeName.value = '1'
|
activeName.value = '1'
|
||||||
} else if (type == '2') {
|
} else if (type == '2') {
|
||||||
activeName.value = '2'
|
activeName.value = '2'
|
||||||
@@ -51,7 +52,7 @@ watch(() => route.query.t, async (newValue, oldValue) => {
|
|||||||
key.value = (route.query.key as string) || 'null'
|
key.value = (route.query.key as string) || 'null'
|
||||||
id.value = id.value + '@' + route.query.t
|
id.value = id.value + '@' + route.query.t
|
||||||
}
|
}
|
||||||
}, {deep: true, immediate: true})
|
}, { deep: true, immediate: true })
|
||||||
|
|
||||||
|
|
||||||
const layout = mainHeight(63) as any
|
const layout = mainHeight(63) as any
|
||||||
|
|||||||
@@ -5,12 +5,8 @@
|
|||||||
<template #select>
|
<template #select>
|
||||||
<el-form-item label="流程状态">
|
<el-form-item label="流程状态">
|
||||||
<el-select v-model="tableStore.table.params.status" clearable placeholder="请选择流程状态">
|
<el-select v-model="tableStore.table.params.status" clearable placeholder="请选择流程状态">
|
||||||
<el-option
|
<el-option v-for="item in statusSelect" :key="item.id" :label="item.name"
|
||||||
v-for="item in statusSelect"
|
:value="item.id"></el-option>
|
||||||
:key="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id"
|
|
||||||
></el-option>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
@@ -51,7 +47,7 @@ import { ref, onMounted, provide, reactive } 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 {useRoute, useRouter} from 'vue-router'
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
import { useDictData } from '@/stores/dictData'
|
import { useDictData } from '@/stores/dictData'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
import { addRunTest, update, cancel } from '@/api/supervision-boot/lineRunTest'
|
import { addRunTest, update, cancel } from '@/api/supervision-boot/lineRunTest'
|
||||||
@@ -265,6 +261,12 @@ const deleteEven = () => {
|
|||||||
message: '请选择要删除的数据'
|
message: '请选择要删除的数据'
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
let createBy = tableStore.table.selection.map(item => item.createBy)
|
let createBy = tableStore.table.selection.map(item => item.createBy)
|
||||||
let status = tableStore.table.selection.map(item => item.status)
|
let status = tableStore.table.selection.map(item => item.status)
|
||||||
if (adminInfo.roleCode.includes('delete_info')) {
|
if (adminInfo.roleCode.includes('delete_info')) {
|
||||||
@@ -277,6 +279,9 @@ const deleteEven = () => {
|
|||||||
message: '只能删除自己填报的数据!!!'
|
message: '只能删除自己填报的数据!!!'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -410,7 +415,7 @@ watch(() => route.query.t, async (newValue, oldValue) => {
|
|||||||
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT) return // 路由时间超过500ms,则不执行
|
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT) return // 路由时间超过500ms,则不执行
|
||||||
if (route.fullPath.includes('/testRun')) {
|
if (route.fullPath.includes('/testRun')) {
|
||||||
let id = (route.query.id as string) || 'null'
|
let id = (route.query.id as string) || 'null'
|
||||||
if(id != 'null'){
|
if (id != 'null') {
|
||||||
monitorIds = []
|
monitorIds = []
|
||||||
monitorIds.push(id)
|
monitorIds.push(id)
|
||||||
const start = new Date()
|
const start = new Date()
|
||||||
@@ -440,7 +445,7 @@ watch(() => route.query.t, async (newValue, oldValue) => {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, {deep: true, immediate: true})
|
}, { deep: true, immediate: true })
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss"></style>
|
<style scoped lang="scss"></style>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<span>事件关联编号为:{{ AssociationNumber }}</span>
|
<span>事件关联编号为:{{ AssociationNumber }}</span>
|
||||||
<div>
|
<div>
|
||||||
<el-button icon="el-icon-Download" type="primary" @click="positioningexport">导出</el-button>
|
<el-button icon="el-icon-Download" type="primary" @click="positioningexport">导出</el-button>
|
||||||
<el-button icon="el-icon-Download" type="primary" @click="bxcontrast">波形对比</el-button>
|
<!-- <el-button icon="el-icon-Download" type="primary" @click="bxcontrast">波形对比</el-button> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<vxe-table
|
<vxe-table
|
||||||
|
|||||||
@@ -17,31 +17,17 @@
|
|||||||
<span>事件关联编号为:{{ AssociationNumber }}</span>
|
<span>事件关联编号为:{{ AssociationNumber }}</span>
|
||||||
<el-button icon="el-icon-Download" type="primary" @click="positioningexport">导出</el-button>
|
<el-button icon="el-icon-Download" type="primary" @click="positioningexport">导出</el-button>
|
||||||
</div>
|
</div>
|
||||||
<vxe-table
|
<vxe-table height="400" ref="positioningtableRef" auto-resize :data="AnalysisData"
|
||||||
height="500"
|
v-bind="defaultAttribute">
|
||||||
ref="positioningtableRef"
|
|
||||||
auto-resize
|
|
||||||
:data="AnalysisData"
|
|
||||||
v-bind="defaultAttribute"
|
|
||||||
>
|
|
||||||
<vxe-table-column title="序号" width="70" type="seq" align="center">
|
<vxe-table-column title="序号" width="70" type="seq" align="center">
|
||||||
<template v-slot="row">
|
<template v-slot="row">
|
||||||
<span>{{ (form.pageNum - 1) * form.pageSize + row.rowIndex + 1 }}</span>
|
<span>{{ (form.pageNum - 1) * form.pageSize + row.rowIndex + 1 }}</span>
|
||||||
</template>
|
</template>
|
||||||
</vxe-table-column>
|
</vxe-table-column>
|
||||||
<vxe-table-column
|
<vxe-table-column field="startTime" title="发生时间" align="center"
|
||||||
field="startTime"
|
:show-overflow="true"></vxe-table-column>
|
||||||
title="发生时间"
|
|
||||||
align="center"
|
|
||||||
:show-overflow="true"
|
|
||||||
></vxe-table-column>
|
|
||||||
<vxe-table-column field="gdName" title="供电公司" align="center"></vxe-table-column>
|
<vxe-table-column field="gdName" title="供电公司" align="center"></vxe-table-column>
|
||||||
<vxe-table-column
|
<vxe-table-column field="subName" :show-overflow="true" title="变电站" align="center"></vxe-table-column>
|
||||||
field="subName"
|
|
||||||
:show-overflow="true"
|
|
||||||
title="变电站"
|
|
||||||
align="center"
|
|
||||||
></vxe-table-column>
|
|
||||||
<vxe-table-column field="lineName" title="监测点" align="center"></vxe-table-column>
|
<vxe-table-column field="lineName" title="监测点" align="center"></vxe-table-column>
|
||||||
<vxe-table-column field="voltageId" title="电压等级(kV)" align="center"></vxe-table-column>
|
<vxe-table-column field="voltageId" title="电压等级(kV)" align="center"></vxe-table-column>
|
||||||
<vxe-table-column field="featureAmplitude" title="暂降幅值(%)" align="center" width="140">
|
<vxe-table-column field="featureAmplitude" title="暂降幅值(%)" align="center" width="140">
|
||||||
@@ -50,32 +36,14 @@
|
|||||||
</template>
|
</template>
|
||||||
</vxe-table-column>
|
</vxe-table-column>
|
||||||
<vxe-table-column field="duration" title="持续时间(s)" align="center" width="120"></vxe-table-column>
|
<vxe-table-column field="duration" title="持续时间(s)" align="center" width="120"></vxe-table-column>
|
||||||
<vxe-table-column
|
<vxe-table-column field="advanceType" title="暂降类型" align="center" width="120"
|
||||||
field="advanceType"
|
:formatter="formFilter"></vxe-table-column>
|
||||||
title="暂降类型"
|
<vxe-table-column field="advanceReason" title="暂降原因" align="center" width="120"
|
||||||
align="center"
|
:formatter="formFilter"></vxe-table-column>
|
||||||
width="120"
|
|
||||||
:formatter="formFilter"
|
|
||||||
></vxe-table-column>
|
|
||||||
<vxe-table-column
|
|
||||||
field="advanceReason"
|
|
||||||
title="暂降原因"
|
|
||||||
align="center"
|
|
||||||
width="120"
|
|
||||||
:formatter="formFilter"
|
|
||||||
></vxe-table-column>
|
|
||||||
</vxe-table>
|
</vxe-table>
|
||||||
<el-pagination
|
<el-pagination class="mt10" :currentPage="form.pageNum" :page-size="form.pageSize"
|
||||||
class="mt10"
|
:page-sizes="[10, 20, 50, 100]" background :layout="'sizes,total, ->, prev, pager, next, jumper'"
|
||||||
:currentPage="form.pageNum"
|
:total="total" @size-change="onTableSizeChange" @current-change="onTableCurrentChange"></el-pagination>
|
||||||
:page-size="form.pageSize"
|
|
||||||
:page-sizes="[10, 20, 50, 100]"
|
|
||||||
background
|
|
||||||
:layout="'sizes,total, ->, prev, pager, next, jumper'"
|
|
||||||
:total="total"
|
|
||||||
@size-change="onTableSizeChange"
|
|
||||||
@current-change="onTableCurrentChange"
|
|
||||||
></el-pagination>
|
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!-- 暂降源定位 -->
|
<!-- 暂降源定位 -->
|
||||||
</div>
|
</div>
|
||||||
@@ -142,19 +110,19 @@ const tableStore = new TableStore({
|
|||||||
source()
|
source()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
name: 'edit',
|
// name: 'edit',
|
||||||
title: '范围查看',
|
// title: '范围查看',
|
||||||
type: 'primary',
|
// type: 'primary',
|
||||||
|
|
||||||
icon: 'el-icon-Plus',
|
// icon: 'el-icon-Plus',
|
||||||
render: 'basicButton'
|
// render: 'basicButton'
|
||||||
}
|
// }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
loadCallback: () => {}
|
loadCallback: () => { }
|
||||||
})
|
})
|
||||||
tableStore.table.params.searchValue = ''
|
tableStore.table.params.searchValue = ''
|
||||||
provide('tableStore', tableStore)
|
provide('tableStore', tableStore)
|
||||||
@@ -169,7 +137,7 @@ onMounted(() => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// 启动关联分析
|
// 启动关联分析
|
||||||
const firing = () => {}
|
const firing = () => { }
|
||||||
// 暂降源定位
|
// 暂降源定位
|
||||||
const source = () => {
|
const source = () => {
|
||||||
queryEventDetailByAssId(form.value).then(res => {
|
queryEventDetailByAssId(form.value).then(res => {
|
||||||
@@ -243,7 +211,8 @@ const positioningexport = () => {
|
|||||||
sheetName: 'Sheet1',
|
sheetName: 'Sheet1',
|
||||||
type: 'xlsx', //导出文件类型 xlsx 和 csv
|
type: 'xlsx', //导出文件类型 xlsx 和 csv
|
||||||
useStyle: true,
|
useStyle: true,
|
||||||
data: dialogAnalysis.value, // 数据源 // 过滤那个字段导出
|
download: false,
|
||||||
|
data: AnalysisData.value, // 数据源 // 过滤那个字段导出
|
||||||
columnFilterMethod: function (column, $columnIndex) {
|
columnFilterMethod: function (column, $columnIndex) {
|
||||||
return !(column.$columnIndex === 0)
|
return !(column.$columnIndex === 0)
|
||||||
}
|
}
|
||||||
@@ -256,4 +225,6 @@ const positioningexport = () => {
|
|||||||
min-width: 128px;
|
min-width: 128px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
class="cn-operate-dialog"
|
class="cn-operate-dialog"
|
||||||
v-model="incomingDialogVisible"
|
v-model="incomingDialogVisible"
|
||||||
:title="title"
|
:title="title"
|
||||||
style="width: 415px; height: 300px"
|
style="width: 415px;"
|
||||||
>
|
>
|
||||||
<el-scrollbar>
|
<el-scrollbar>
|
||||||
<el-form :inline="false" :model="form" label-width="120px" :rules="rules" ref="formRef">
|
<el-form :inline="false" :model="form" label-width="120px" :rules="rules" ref="formRef">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<!--终端详情页面,包含终端基础信息、元器件列表信息-->
|
<!--终端详情页面,包含终端基础信息、元器件列表信息-->
|
||||||
<template>
|
<template>
|
||||||
<el-dialog draggable class="cn-operate-dialog" v-model="machineDetailVisible" :title="title" style="width: 900px">
|
<el-dialog draggable class="cn-operate-dialog" v-model="machineDetailVisible" :title="title" style="width: 1000px">
|
||||||
<el-scrollbar>
|
<el-scrollbar>
|
||||||
<el-form :inline="false" :model="form" label-width="120px" ref="formRef">
|
<el-form :inline="false" :model="form" label-width="120px" ref="formRef">
|
||||||
<el-form-item label="终端名称">
|
<el-form-item label="终端名称">
|
||||||
|
|||||||
@@ -30,9 +30,9 @@ const tableStore = new TableStore({
|
|||||||
publicHeight: 300,
|
publicHeight: 300,
|
||||||
showPage: false,
|
showPage: false,
|
||||||
column: [
|
column: [
|
||||||
{ title: '元器件名称', width: 110, field: 'name' },
|
{ title: '元器件名称', minWidth: 110, field: 'name' },
|
||||||
{
|
{
|
||||||
title: '灵敏度', width: 80, field: 'sensitivity',
|
title: '灵敏度', minWidth: 80, field: 'sensitivity',
|
||||||
formatter: (row: any) => {
|
formatter: (row: any) => {
|
||||||
let temp
|
let temp
|
||||||
switch (row.sensitivity) {
|
switch (row.sensitivity) {
|
||||||
@@ -52,7 +52,7 @@ const tableStore = new TableStore({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '耐受能力', width: 90, field: 'standardFlag',
|
title: '耐受能力', minWidth: 90, field: 'standardFlag',
|
||||||
formatter: (row: any) => {
|
formatter: (row: any) => {
|
||||||
return row.standardFlag == 0 ? '否' : '是'
|
return row.standardFlag == 0 ? '否' : '是'
|
||||||
}
|
}
|
||||||
@@ -60,15 +60,15 @@ const tableStore = new TableStore({
|
|||||||
{
|
{
|
||||||
title: '上限曲线',
|
title: '上限曲线',
|
||||||
children: [
|
children: [
|
||||||
{ title: '持续时间(ms)', width: '110', field: 'vtcTimeUpper' },
|
{ title: '持续时间(ms)', minWidth: '110', field: 'vtcTimeUpper' },
|
||||||
{ title: '暂降幅值(p.u.)', width: '110', field: 'vtcAmpUpper' }
|
{ title: '暂降幅值(p.u.)', minWidth: '110', field: 'vtcAmpUpper' }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '下限曲线',
|
title: '下限曲线',
|
||||||
children: [
|
children: [
|
||||||
{ title: '持续时间(ms)', width: '110', field: 'vtcTimeLower' },
|
{ title: '持续时间(ms)', minWidth: '110', field: 'vtcTimeLower' },
|
||||||
{ title: '暂降幅值(p.u.)', width: '110', field: 'vtcAmpLower' }
|
{ title: '暂降幅值(p.u.)', minWidth: '110', field: 'vtcAmpLower' }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
<el-form :inline="false" :model="form" label-width="120px" :rules="rules" ref="formRef">
|
<el-form :inline="false" :model="form" label-width="120px" :rules="rules" ref="formRef">
|
||||||
<el-tabs tab-position="left" style="height: 100%" :before-leave="checkUserId" v-model="tab">
|
<el-tabs tab-position="left" style="height: 100%" :before-leave="checkUserId" v-model="tab">
|
||||||
<el-tab-pane label="基本信息" name="user">
|
<el-tab-pane label="基本信息" name="user">
|
||||||
<el-form-item label="用户名" prop="userName">
|
<el-form-item label="用户名" prop="userName" >
|
||||||
<el-input v-model="form.userName" />
|
<el-input v-model="form.userName" placeholder="请输入用户名" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
@@ -18,21 +18,21 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="所属行业" prop="industry">
|
<el-form-item label="所属行业" prop="industry">
|
||||||
<el-input v-model="form.industry" />
|
<el-input v-model="form.industry" placeholder="请输入所属行业" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-form-item label="所在地区" prop="addr">
|
<el-form-item label="所在地区" prop="addr">
|
||||||
<area-cascard v-model="form.addr" @change="reValueAddr" ref="areaRef" />
|
<area-cascard v-model="form.addr" @change="reValueAddr" ref="areaRef" placeholder="请选择所在地区" clearable/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="详细地址">
|
<el-form-item label="详细地址">
|
||||||
<el-input v-model="form.addrDetail" />
|
<el-input v-model="form.addrDetail" placeholder="请输入详细地址" clearable/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="联系方式">
|
<el-form-item label="联系方式">
|
||||||
<el-input v-model="form.concact" />
|
<el-input v-model="form.concact" placeholder="请输入联系方式" clearable/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="用户描述">
|
<el-form-item label="用户描述">
|
||||||
<el-input v-model="form.remark" :rows="2" type="textarea" placeholder="请输入描述" />
|
<el-input v-model="form.remark" :rows="2" type="textarea" placeholder="请输入描述" clearable/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="企业照片">
|
<el-form-item label="企业照片">
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -30,8 +30,8 @@ const { query } = useRoute()
|
|||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
governTotalContent.value.style.height = mainHeight().height
|
governTotalContent.value.style.height = mainHeight().height
|
||||||
schemeContent.value.style.height = mainHeight(45).height
|
schemeContent.value.style.height = mainHeight(65).height
|
||||||
schemeContent.value.style.maxheight = mainHeight(45).height
|
schemeContent.value.style.maxheight = mainHeight(65).height
|
||||||
schemeContent.value.style.overflowY = 'scroll'
|
schemeContent.value.style.overflowY = 'scroll'
|
||||||
schemeContent.value.style.overflowX = 'hidden'
|
schemeContent.value.style.overflowX = 'hidden'
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -61,12 +61,12 @@ const tableStore = new TableStore({
|
|||||||
method: 'POST',
|
method: 'POST',
|
||||||
column: [
|
column: [
|
||||||
{ title: '序号', type: 'seq', width: 80 },
|
{ title: '序号', type: 'seq', width: 80 },
|
||||||
{ title: '用户', field: 'userName', width: 160 },
|
{ title: '用户', field: 'userName', minWidth: 160 },
|
||||||
{ title: '生产线名称', field: 'productLineName', width: 160 },
|
{ title: '生产线名称', field: 'productLineName', minWidth: 160 },
|
||||||
{ title: '期望回报(年)', field: 'payBackPeriod', width: 150 },
|
{ title: '期望回报(年)', field: 'payBackPeriod', minWidth: 150 },
|
||||||
{ title: '数据时间范围', field: 'timeScope', width: 170 },
|
{ title: '数据时间范围', field: 'timeScope', minWidth: 170 },
|
||||||
{
|
{
|
||||||
title: '治理容量(kW)', field: 'governPower', width: 150, type: 'html',
|
title: '治理容量(kW)', field: 'governPower', minWidth: 150, type: 'html',
|
||||||
formatter: (obj: any) => {
|
formatter: (obj: any) => {
|
||||||
const val = obj.row.governPower
|
const val = obj.row.governPower
|
||||||
const id = obj.row.productLineId
|
const id = obj.row.productLineId
|
||||||
@@ -77,7 +77,7 @@ const tableStore = new TableStore({
|
|||||||
title: '最佳方案',
|
title: '最佳方案',
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
title: '方案名称', width: '110', field: 'schemeType',
|
title: '方案名称', minWidth: '110', field: 'schemeType',
|
||||||
formatter: (obj: any) => {
|
formatter: (obj: any) => {
|
||||||
let temp
|
let temp
|
||||||
switch (obj.row.schemeType) {
|
switch (obj.row.schemeType) {
|
||||||
@@ -97,13 +97,13 @@ const tableStore = new TableStore({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '初期投资(万元)', width: '150', field: 'initialInvest',
|
title: '初期投资(万元)', minWidth: '150', field: 'initialInvest',
|
||||||
formatter: (obj: any) => {
|
formatter: (obj: any) => {
|
||||||
return Number(obj.row.schemeEquipment) + Number(obj.row.schemeMaintain)
|
return (Number(obj.row.schemeEquipment) + Number(obj.row.schemeMaintain)).toFixed(2)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ title: '投资回收期(年)', width: '150', field: 'payBackYear' },
|
{ title: '投资回收期(年)', minWidth: '150', field: 'payBackYear' },
|
||||||
{ title: '治理效果(万元/年)', width: '150', field: 'governEffect' }
|
{ title: '治理效果(万元/年)', minWidth: '150', field: 'governEffect' }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -149,11 +149,11 @@ const tableStore = new TableStore({
|
|||||||
if (tableStore.table.params.addr) {
|
if (tableStore.table.params.addr) {
|
||||||
tableStore.table.params.addrStrOption = tableStore.table.params.addr.map(tempArray => tempArray.join('/'))
|
tableStore.table.params.addrStrOption = tableStore.table.params.addr.map(tempArray => tempArray.join('/'))
|
||||||
}
|
}
|
||||||
for (let key in tableStore.table.params) {
|
// for (let key in tableStore.table.params) {
|
||||||
if (tableStore.table.params[key] === '') {
|
// if (tableStore.table.params[key] === '') {
|
||||||
delete tableStore.table.params[key]
|
// delete tableStore.table.params[key]
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -45,7 +45,9 @@ const tableStore = new TableStore({
|
|||||||
url: '/user-boot/function/getButtonById',
|
url: '/user-boot/function/getButtonById',
|
||||||
publicHeight: 60,
|
publicHeight: 60,
|
||||||
column: [
|
column: [
|
||||||
{ title: '普通接口/接口名称', field: 'name' },
|
{ title: '普通接口/接口名称', field: 'name', formatter: row => {
|
||||||
|
return row.cellValue == 1 ? '普通接口' : '公用接口'
|
||||||
|
} },
|
||||||
{ title: '接口类型', field: 'type' },
|
{ title: '接口类型', field: 'type' },
|
||||||
{ title: 'URL接口路径', field: 'path' },
|
{ title: 'URL接口路径', field: 'path' },
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user