修改海南测试问题

This commit is contained in:
GGJ
2024-10-30 09:29:39 +08:00
parent 1aa7e4263b
commit 1df2b26b04
32 changed files with 469 additions and 478 deletions

View File

@@ -3,22 +3,12 @@
<template #select>
<el-form-item label="监督类型">
<el-select v-model="tableStore.table.params.supvType" clearable placeholder="请选择流程状态">
<el-option
v-for="item in supvTypeOptionList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-option v-for="item in supvTypeOptionList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="流程状态">
<el-select v-model="tableStore.table.params.status" clearable placeholder="请选择流程状态">
<el-option
v-for="item in statusSelect"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-option v-for="item in statusSelect" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
</template>
@@ -27,32 +17,32 @@
<el-button icon="el-icon-Delete" type="primary" @click="deleteEven">删除</el-button>
</template>
</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>
<script setup lang="ts">
import {useAdminInfo} from '@/stores/adminInfo'
import { useAdminInfo } from '@/stores/adminInfo'
//获取登陆用户姓名和部门
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 Table from '@/components/table/index.vue'
import TableHeader from '@/components/table/header/index.vue'
import {ElMessage, ElMessageBox} from 'element-plus'
import {cancel, getById} from '@/api/process-boot/generalTest'
import { ElMessage, ElMessageBox } from 'element-plus'
import { cancel, getById } from '@/api/process-boot/generalTest'
import planAdd from './planAdd.vue'
import {useRouter} from 'vue-router'
import {queryPlan, removeSurvey} from '@/api/process-boot/generalTest'
import {getUserByRoleType} from '@/api/user-boot/user'
import {useDictData} from '@/stores/dictData'
import {deleteSurveyPlan} from '@/api/supervision-boot/delete/index'
import {getUserReportById} from "@/api/supervision-boot/interfere";
import { useRouter } from 'vue-router'
import { queryPlan, removeSurvey } from '@/api/process-boot/generalTest'
import { getUserByRoleType } from '@/api/user-boot/user'
import { useDictData } from '@/stores/dictData'
import { deleteSurveyPlan } from '@/api/supervision-boot/delete/index'
import { getUserReportById } from "@/api/supervision-boot/interfere";
const dictData = useDictData()
const supvTypeOptionList = dictData.getBasicData('supv_type')
const statusSelect = dictData.statusSelect()
const {push, options, currentRoute} = useRouter()
const { push, options, currentRoute } = useRouter()
const dialogVisible = ref(false)
const tableRef = ref()
const planAddRef = ref()
@@ -109,8 +99,8 @@ const tableStore = new TableStore({
}
},
{field: 'planStartTime', minWidth: 130, title: '计划开始时间'},
{field: 'planEndTime', minWidth: 130, title: '计划结束时间'},
{ field: 'planStartTime', minWidth: 130, title: '计划开始时间' },
{ field: 'planEndTime', minWidth: 130, title: '计划结束时间' },
{
field: 'status',
title: '流程状态',
@@ -221,10 +211,10 @@ const add = () => {
}
// 禁止点击
const checkboxConfig = reactive({
checkMethod: ({row}) => {
checkMethod: ({ row }) => {
return adminInfo.roleCode.includes('delete_info')
? true
: row.createBy == adminInfo.$state.id && row.status == 0
? true
: row.createBy == adminInfo.$state.id && row.status == 0
}
})
const deleteEven = () => {
@@ -234,13 +224,23 @@ const deleteEven = () => {
message: '请选择要删除的数据'
})
} else {
deleteSurveyPlan(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
})
tableStore.index()
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
deleteSurveyPlan(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
})
tableStore.index()
})
})
}
}
const exportFn = () => {
@@ -264,7 +264,7 @@ const exportFn = () => {
/**取消流程操作*/
const cancelLeave = async (row: any) => {
// 二次确认
const {value} = await ElMessageBox.prompt('请输入取消原因', '取消流程', {
const { value } = await ElMessageBox.prompt('请输入取消原因', '取消流程', {
confirmButtonText: '确定',
cancelButtonText: '取消',
inputType: 'textarea',
@@ -307,20 +307,20 @@ onMounted(() => {
})
})
watch(
() => currentRoute.value.path,
() => {
if (flag.value && options.history.state.forward?.split('/')[1] == 'bpm') {
tableStore.index()
flag.value = false
}
},
{
deep: true
() => currentRoute.value.path,
() => {
if (flag.value && options.history.state.forward?.split('/')[1] == 'bpm') {
tableStore.index()
flag.value = false
}
},
{
deep: true
}
)
const props = defineProps({id: {type: String, default: 'null'}})
const props = defineProps({ id: { type: String, default: 'null' } })
watch(() => props.id, async (newValue, oldValue) => {
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
const fullId = newValue.split('@')[0]
@@ -330,7 +330,7 @@ watch(() => props.id, async (newValue, oldValue) => {
nextTick(() => {
planAddRef.value.open('重新发起计划', fullId, false)
})
}, {immediate: true})
}, { immediate: true })
</script>
<style scoped lang="scss"></style>

View File

@@ -34,7 +34,8 @@ const layout = mainHeight(63) as any
watch(() => route.query.t, async (newValue, oldValue) => {
if (route.fullPath.includes('supervision/harmonicmanagement')) {
let type = (route.query.type as string) || 'null'
if (type == 'null' || type == '1') {
if (type == 'null') { }
else if (type == '1') {
activeName.value = '1'
} else {
activeName.value = '2'

View File

@@ -2,21 +2,21 @@
<div class='default-main'>
<el-tabs v-model='activeName' type='border-card'>
<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 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-tabs>
</div>
</template>
<script setup lang='ts'>
import {nextTick, ref, provide} from 'vue'
import {mainHeight} from '@/utils/layout'
import { nextTick, ref, provide } from 'vue'
import { mainHeight } from '@/utils/layout'
import undocumented from './components/undocumented/index.vue'
import interferenceUserTable from './components/normalizationManager/interferenceUserTable.vue'
import {useRoute} from 'vue-router'
import { useRoute } from 'vue-router'
const route = useRoute()
const Undocumented = ref()
@@ -32,7 +32,8 @@ const key = ref('')
watch(() => route.query.t, async (newValue, oldValue) => {
if (route.fullPath.includes('supervision/interferencemanagement')) {
let type = (route.query.type as string) || 'null'
if (type == 'null' || type == '1') {
if (type == 'null') { }
else if (type == '1') {
activeName.value = '1'
} else {
activeName.value = '3'
@@ -41,7 +42,7 @@ watch(() => route.query.t, async (newValue, oldValue) => {
id.value = id.value + '@' + route.query.t
key.value = (route.query.key as string) || 'null'
}
}, {deep: true, immediate: true})
}, { deep: true, immediate: true })
const layout = mainHeight(63) as any

View File

@@ -2,10 +2,10 @@
<div class='default-main'>
<el-tabs v-model='activeName' type='border-card'>
<el-tab-pane label='终端状态管理' name='0'>
<terminal :id="id" v-if="activeName == '0'" />
<terminal :id="id" v-if="activeName == '0'" />
</el-tab-pane>
<el-tab-pane label='监测点状态管理' name='1'>
<monitor :id="id" v-if="activeName == '1'" />
<monitor :id="id" v-if="activeName == '1'" />
</el-tab-pane>
</el-tabs>
</div>
@@ -16,7 +16,7 @@ import { ref } from 'vue'
import { mainHeight } from '@/utils/layout'
import terminal from './terminal.vue'
import monitor from './monitor.vue'
import {useRoute} from "vue-router";
import { useRoute } from "vue-router";
defineOptions({
name: 'supervision/retire'
@@ -30,7 +30,8 @@ const layout = mainHeight(63) as any
watch(() => route.query.t, async (newValue, oldValue) => {
if (route.fullPath.includes('supervision/retire')) {
let type = (route.query.type as string) || 'null'
if (type == 'null' || type == '0') {
if (type == 'null') { }
else if (type == '0') {
activeName.value = '0'
} else {
activeName.value = '1'
@@ -38,7 +39,7 @@ watch(() => route.query.t, async (newValue, oldValue) => {
id.value = (route.query.id as string) || 'null'
id.value = id.value + '@' + route.query.t
}
}, {deep: true, immediate: true})
}, { deep: true, immediate: true })
</script>
<style lang='scss' scoped>

View File

@@ -5,20 +5,13 @@
<template #select>
<el-form-item label="流程状态">
<el-select v-model="tableStore.table.params.status" clearable placeholder="请选择流程状态">
<el-option
v-for="item in statusSelect"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-option v-for="item in statusSelect" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="搜索">
<el-input
v-model="tableStore.table.params.searchValue"
placeholder="输入变电站、监测点"
clearable
></el-input>
<el-input v-model="tableStore.table.params.searchValue" placeholder="输入变电站、监测点"
clearable></el-input>
</el-form-item>
</template>
<template #operation>
@@ -42,7 +35,7 @@ import { useRouter } from 'vue-router'
import MonitorQuitPopup from '@/views/pqs/supervise/retire/monitorQuitPopup.vue'
import { ElMessage } from 'element-plus'
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 { useDictData } from '@/stores/dictData'
const dictData = useDictData()
@@ -62,7 +55,7 @@ const tableStore = new TableStore({
method: 'POST',
publicHeight: 65,
column: [
{
{
width: '60',
type: 'checkbox'
},
@@ -253,13 +246,23 @@ const deleteEven = () => {
message: '请选择要删除的数据'
})
} else {
deleteQuitRunningDevice(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
})
tableStore.index()
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
deleteQuitRunningDevice(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
})
tableStore.index()
})
})
}
}
/** 流程实例详情 */
@@ -312,17 +315,17 @@ watch(
}
)
const props = defineProps({id: {type: String, default: 'null'}})
const props = defineProps({ id: { type: String, default: 'null' } })
watch(() => props.id, async (newValue, oldValue) => {
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
const fullId = newValue.split('@')[0]
let nowTime = Date.now()
const routeTime = Number(newValue.split('@')[1])
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT) return // 路由时间超过500ms则不执行
await getRunningDeviceById(fullId).then(res => {
if (res && res.code == 'A0000') {
deviceQuitPopup.value.open('重新发起', res.data)
}
})
}, {immediate: true})
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
const fullId = newValue.split('@')[0]
let nowTime = Date.now()
const routeTime = Number(newValue.split('@')[1])
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT) return // 路由时间超过500ms则不执行
await getRunningDeviceById(fullId).then(res => {
if (res && res.code == 'A0000') {
deviceQuitPopup.value.open('重新发起', res.data)
}
})
}, { immediate: true })
</script>

View File

@@ -249,13 +249,21 @@ const deleteEven = () => {
message: '请选择要删除的数据'
})
} else {
deleteQuitRunningDevice(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
deleteQuitRunningDevice(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
})
tableStore.index()
})
})
}
}
/** 流程实例详情 */

View File

@@ -3,12 +3,8 @@
<template #select>
<el-form-item label="流程状态">
<el-select v-model="tableStore.table.params.status" clearable placeholder="请选择流程状态">
<el-option
v-for="item in statusSelect"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-option v-for="item in statusSelect" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
</template>
@@ -27,14 +23,14 @@
</el-dialog>
</template>
<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 Table from '@/components/table/index.vue'
import TableHeader from '@/components/table/header/index.vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import FeedbackPopup from '@/views/pqs/supervise/technology/feedbackPopup.vue'
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 { useDictData } from '@/stores/dictData'
import { getFileNameAndFilePath } from '@/api/system-boot/file'
@@ -399,13 +395,23 @@ const deleteEven = () => {
message: '请选择要删除的数据'
})
} else {
deleteWarningLeaflet(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
})
tableStore.index()
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
deleteWarningLeaflet(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
})
tableStore.index()
})
})
}
}
/**取消流程操作*/
@@ -448,45 +454,47 @@ const handleAudit = (instanceId: any, historyInstanceId: any) => {
})
}
const props = defineProps(['id','businessKey'])
const props = defineProps(['id', 'businessKey'])
watch(() => props.id, async (newValue, oldValue) => {
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
const fullId = newValue.split('@')[0]
let nowTime = Date.now()
const routeTime = Number(newValue.split('@')[1])
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT) return // 路由时间超过500ms则不执行
await getById(fullId).then(res => {
if (res && res.code == 'A0000') {
if (res && res.code == 'A0000') {
if(props.businessKey == '3'){
feedbackPopup.value.open(
'填报告警反馈单',
res.data.id,
res.data.status,
res.data.issueDetail,
res.data.problemPath,
res.data.supervisionReport,
res.data.reformAdvice
)
}else{
feedbackPopup.value.open(
'重新填报告警反馈单',
res.data.id,
res.data.status,
res.data.issueDetail,
res.data.problemPath,
res.data.supervisionReport,
res.data.reformAdvice,
res.data.takeStep,
res.data.reportPath,
res.data.reformAdvice
)
}
}
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
let fullId = newValue.split('@')[0]
let nowTime = Date.now()
const routeTime = Number(newValue.split('@')[1])
}
})
}, {immediate: true})
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT || fullId == 'null') return // 路由时间超过500ms则不执行
await getById(fullId).then(res => {
if (res && res.code == 'A0000') {
if (res && res.code == 'A0000') {
if (props.businessKey == '3') {
feedbackPopup.value.open(
'填报告警反馈单',
res.data.id,
res.data.status,
res.data.issueDetail,
res.data.problemPath,
res.data.supervisionReport,
res.data.reformAdvice
)
} else {
feedbackPopup.value.open(
'重新填报告警反馈单',
res.data.id,
res.data.status,
res.data.issueDetail,
res.data.problemPath,
res.data.supervisionReport,
res.data.reformAdvice,
res.data.takeStep,
res.data.reportPath,
res.data.reformAdvice
)
}
}
}
})
}, { immediate: true })
</script>
<style scoped lang="scss"></style>

View File

@@ -281,13 +281,23 @@ const deleteEven = () => {
message: '请选择要删除的数据'
})
} else {
deleteWarningLeaflet(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
deleteWarningLeaflet(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
})
tableStore.index()
})
tableStore.index()
})
}
}
/**取消流程操作*/
@@ -325,10 +335,10 @@ const handleAudit = (instanceId: any, historyInstanceId: any) => {
const props = defineProps(['id','businessKey'])
watch(() => props.id, async (newValue, oldValue) => {
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
const fullId = newValue.split('@')[0]
let fullId = newValue.split('@')[0]
let nowTime = Date.now()
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 => {
if (res && res.code == 'A0000') {
if(props.businessKey == '3'){

View File

@@ -3,22 +3,12 @@
<el-scrollbar>
<el-form :inline="false" :model="form" label-width="120px" :rules="rules" ref="formRef">
<el-form-item label="问题详情:">
<el-input
v-model="form.issueDetail"
autocomplete="off"
type="textarea"
:autosize="{ minRows: 2, maxRows: 6 }"
readonly
/>
<el-input v-model="form.issueDetail" disabled autocomplete="off" type="textarea"
:autosize="{ minRows: 2, maxRows: 6 }" readonly />
</el-form-item>
<el-form-item label="整改意见:">
<el-input
v-model="form.reformAdvice"
autocomplete="off"
type="textarea"
:autosize="{ minRows: 2, maxRows: 6 }"
readonly
/>
<el-input v-model="form.reformAdvice" autocomplete="off" disabled type="textarea"
:autosize="{ minRows: 2, maxRows: 6 }" readonly />
</el-form-item>
<el-form-item label="技术监督报告:" v-if="showFile1">
@@ -38,26 +28,12 @@
</el-form-item>
<el-form-item label="采取的措施:" prop="takeStep">
<el-input
v-model="form.takeStep"
autocomplete="off"
placeholder="请输入采取的措施"
type="textarea"
/>
<el-input v-model="form.takeStep" autocomplete="off" placeholder="请输入采取的措施" type="textarea" />
</el-form-item>
<el-form-item label="反馈报告:" class="uploadFile" prop="reportPath">
<el-upload
v-model:file-list="form.reportPath"
ref="uploadRef"
action=""
:accept="acceptType"
:limit="1"
:on-exceed="handleExceed"
:on-change="choose"
:auto-upload="false"
:on-progress="uploadFileName('reportPath')"
:on-remove="removeFile"
>
<el-upload v-model:file-list="form.reportPath" ref="uploadRef" action="" :accept="acceptType"
:limit="1" :on-exceed="handleExceed" :on-change="choose" :auto-upload="false"
:on-progress="uploadFileName('reportPath')" :on-remove="removeFile">
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
@@ -70,8 +46,8 @@
<span class="dialog-footer">
<el-button @click="close">取消</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(false)" :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>
</span>
</template>
</el-dialog>
@@ -160,8 +136,8 @@ const open = async (
}
form.value.id = id
form.value.status = status
form.value.issueDetail = issueDetail
form.value.reformAdvice = reformAdvice
form.value.issueDetail = issueDetail || ''
form.value.reformAdvice = reformAdvice || ''
reportFilePath.value = reportPath
//判断附件是否存在,如果存在则回显出让用户可以点击下载
if (problemPath) {
@@ -207,7 +183,7 @@ const close = () => {
/**
* 提交用户表单数据
*/
const submit =async (flag: boolean) => {
const submit = async (flag: boolean) => {
loading.value = true
if (flag) {
let subForm = JSON.parse(JSON.stringify(form.value))
@@ -292,6 +268,7 @@ const uploadFileName = val => {
.el-select {
min-width: 180px;
}
.elView {
cursor: pointer;
margin-right: 10px;

View File

@@ -27,13 +27,14 @@ defineOptions({
name: 'supervision/supervision/manage'
})
const activeName: any = ref(null)
const activeName: any = ref('3')
watch(() => route.query.t, async (newValue, oldValue) => {
if (route.fullPath.includes('supervision/supervision/manage')) {
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'
} else {
activeName.value = '4'
@@ -42,7 +43,7 @@ watch(() => route.query.t, async (newValue, oldValue) => {
key.value = (route.query.key as string) || 'null'
id.value = id.value + '@' + route.query.t
}
}, {deep: true, immediate: true})
}, { deep: true, immediate: true })
const layout = mainHeight(63) as any

View File

@@ -109,6 +109,8 @@ const tableStore = new TableStore({
name: '电网拓扑',
code: 'Power_Network'
}
tableStore.table.params.runFlag = []
if(tableStore.table.params.runF!=null){
tableStore.table.params.runFlag = [tableStore.table.params.runF]
}
@@ -121,7 +123,7 @@ tableStore.table.params.runF=null
tableStore.table.params.runFlag=[]
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)

View File

@@ -254,13 +254,23 @@ const deleteEven = () => {
message: '请选择要删除的数据'
})
} else {
deleteUserReport(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
deleteUserReport(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
})
tableStore.index()
})
tableStore.index()
})
}
}
/**取消流程操作*/

View File

@@ -205,13 +205,22 @@ const deleteEven = () => {
message: '请选择要删除的数据'
})
} else {
deleteUserReport(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
deleteUserReport(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
})
tableStore.index()
})
tableStore.index()
})
}
}

View File

@@ -1,20 +1,20 @@
<template>
<div class='default-main'>
<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'" />
</el-tab-pane>
<el-tab-pane label='敏感及重要用户台账' name='2' >
<el-tab-pane label='敏感及重要用户台账' name='2'>
<sensitiveUserTable v-if="activeName == '2'" />
</el-tab-pane>
<el-tab-pane label='变电站台账' name='3' >
<el-tab-pane label='变电站台账' name='3'>
<substationLedger v-if="activeName == '3'" />
</el-tab-pane>
<el-tab-pane label='终端台账' name='4'>
<deviceLedgerTable v-if="activeName == '4'" />
<deviceLedgerTable v-if="activeName == '4'" />
</el-tab-pane>
<el-tab-pane label='监测点台账' name='5'>
<monitorLedgerTable v-if="activeName == '5'" />
<monitorLedgerTable v-if="activeName == '5'" />
</el-tab-pane>
</el-tabs>
</div>
@@ -39,15 +39,16 @@ const activeName = ref('1')
watch(() => route.query.t, async (newValue, oldValue) => {
if (route.fullPath.includes('Supervision/Terminaldetection')) {
let type = (route.query.type as string) || 'null'
if (type == '1') {
activeName.value = '1'
if (route.fullPath.includes('Supervision/Terminaldetection')) {
let type = (route.query.type as string) || 'null'
if (type == 'null') { }
else if (type == '1') {
activeName.value = '1'
}
id.value = (route.query.id as string) || 'null'
id.value = id.value + '@' + route.query.t
}
id.value = (route.query.id as string) || 'null'
id.value = id.value + '@' + route.query.t
}
}, {deep: true, immediate: true})
}, { deep: true, immediate: true })
const layout = mainHeight(63) as any
</script>

View File

@@ -265,12 +265,22 @@ const deleteEven = () => {
message: '请选择要删除的数据'
})
} else {
deleteTempLineDebugReport(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
})
tableStore.index()
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
deleteTempLineDebugReport(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
})
tableStore.index()
})
})
}
}

View File

@@ -3,20 +3,13 @@
<TableHeader area datePicker nextFlag theCurrentTime ref="TableHeaderRef">
<template #select>
<el-form-item label="搜索">
<el-input
v-model="tableStore.table.params.searchValue"
placeholder="输入变电站、终端、监测点名称"
clearable
></el-input>
<el-input v-model="tableStore.table.params.searchValue" placeholder="输入变电站、终端、监测点名称"
clearable></el-input>
</el-form-item>
<el-form-item label="流程状态">
<el-select v-model="tableStore.table.params.status" clearable placeholder="请选择流程状态">
<el-option
v-for="item in statusSelect"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-option v-for="item in statusSelect" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
</template>
@@ -43,9 +36,9 @@ import addForm from './addForm.vue'
import { useAdminInfo } from '@/stores/adminInfo'
import { ElMessage } from 'element-plus'
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 {getTerminalDetailsById} from "@/api/supervision-boot/terminal";
import { getTerminalDetailsById } from "@/api/supervision-boot/terminal";
//获取登陆用户姓名和部门
const adminInfo = useAdminInfo()
const dictData = useDictData()
@@ -240,13 +233,23 @@ const deleteEven = () => {
message: '请选择要删除的数据'
})
} else {
deleteTempLineReport(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
})
tableStore.index()
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
deleteTempLineReport(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
})
tableStore.index()
})
})
}
}
@@ -294,22 +297,22 @@ 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) => {
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
const fullId = newValue.split('@')[0]
let nowTime = Date.now()
const routeTime = Number(newValue.split('@')[1])
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT) return // 路由时间超过500ms则不执行
await getTempLineDetailsById({id:fullId}).then(res => {
if (res && res.code == 'A0000') {
addForms.value.open({
title: '重新发起',
row: res.data
})
}
})
}, {immediate: true})
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
const fullId = newValue.split('@')[0]
let nowTime = Date.now()
const routeTime = Number(newValue.split('@')[1])
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT) return // 路由时间超过500ms则不执行
await getTempLineDetailsById({ id: fullId }).then(res => {
if (res && res.code == 'A0000') {
addForms.value.open({
title: '重新发起',
row: res.data
})
}
})
}, { immediate: true })
</script>
<style scoped lang="scss">

View File

@@ -15,7 +15,8 @@
<template #operation>
<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-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>
</template>
</TableHeader>
@@ -268,13 +269,24 @@ const deleteEven = () => {
message: '请选择要删除的数据'
})
} else {
deleteDevReport(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
})
tableStore.index()
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
deleteDevReport(tableStore.table.selection.map(item => item.id)).then(res => {
ElMessage({
type: 'success',
message: '删除成功!'
})
tableStore.index()
})
})
}
}

View File

@@ -2,29 +2,29 @@
<div class="default-main">
<el-tabs v-model="activeName" type="border-card">
<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 label="监测点台账录入" name="2">
<monitorpoint :id="id" v-if="activeName == '2'"/>
<monitorpoint :id="id" v-if="activeName == '2'" />
</el-tab-pane>
<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 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-tabs>
</div>
</template>
<script setup lang="ts">
import {ref} from 'vue'
import {mainHeight} from '@/utils/layout'
import { ref } from 'vue'
import { mainHeight } from '@/utils/layout'
import terminal from './components/terminainal/index.vue'
import monitorpoint from './components/monitorpoint/index.vue'
import jointDebugList from './components/jointDebugList/index.vue'
import cycleDetection from './components/cycleDetection/index.vue'
import {useRoute} from "vue-router";
import { useRoute } from "vue-router";
defineOptions({
name: 'terminalNetwotk'
@@ -38,7 +38,8 @@ const key = ref('')
watch(() => route.query.t, async (newValue, oldValue) => {
if (route.fullPath.includes('terminalNetwotk')) {
let type = (route.query.type as string) || 'null'
if (type == 'null' || type == '1') {
if (type == 'null') { }
else if (type == '1') {
activeName.value = '1'
} else if (type == '2') {
activeName.value = '2'
@@ -51,7 +52,7 @@ watch(() => route.query.t, async (newValue, oldValue) => {
key.value = (route.query.key as string) || 'null'
id.value = id.value + '@' + route.query.t
}
}, {deep: true, immediate: true})
}, { deep: true, immediate: true })
const layout = mainHeight(63) as any

View File

@@ -5,12 +5,8 @@
<template #select>
<el-form-item label="流程状态">
<el-select v-model="tableStore.table.params.status" clearable placeholder="请选择流程状态">
<el-option
v-for="item in statusSelect"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-option v-for="item in statusSelect" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
</template>
@@ -51,7 +47,7 @@ import { ref, onMounted, provide, reactive } from 'vue'
import TableStore from '@/utils/tableStore'
import Table from '@/components/table/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 { ElMessage, ElMessageBox } from 'element-plus'
import { addRunTest, update, cancel } from '@/api/supervision-boot/lineRunTest'
@@ -265,18 +261,27 @@ const deleteEven = () => {
message: '请选择要删除的数据'
})
} else {
let createBy = tableStore.table.selection.map(item => item.createBy)
let status = tableStore.table.selection.map(item => item.status)
if (adminInfo.roleCode.includes('delete_info')) {
deleteList()
} else if (createBy.includes(adminInfo.$state.id) && status.includes(0)) {
deleteList()
} else {
ElMessage({
type: 'warning',
message: '只能删除自己填报的数据!!!'
ElMessageBox.confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
let createBy = tableStore.table.selection.map(item => item.createBy)
let status = tableStore.table.selection.map(item => item.status)
if (adminInfo.roleCode.includes('delete_info')) {
deleteList()
} else if (createBy.includes(adminInfo.$state.id) && status.includes(0)) {
deleteList()
} else {
ElMessage({
type: 'warning',
message: '只能删除自己填报的数据!!!'
})
}
})
}
}
}
@@ -405,42 +410,42 @@ const runTestSubmit = (type: number) => {
const route = useRoute()
watch(() => route.query.t, async (newValue, oldValue) => {
let nowTime = Date.now()
let routeTime = route.query.t as number || 1
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT) return // 路由时间超过500ms则不执行
if (route.fullPath.includes('/testRun')) {
let id = (route.query.id as string) || 'null'
if(id != 'null'){
monitorIds = []
monitorIds.push(id)
const start = new Date()
start.setDate(start.getDate() + 1)
start.setHours(0, 0, 0)
const end = new Date()
end.setDate(end.getDate() + 3)
end.setHours(23, 59, 59)
const startString = formatDate(start, 'YYYY-MM-DD') // 转换为 YYYY-MM-DD 格式
const endString = formatDate(end, 'YYYY-MM-DD')
const data = {
startTime: startString,
endTime: endString,
lineIds: monitorIds,
operateType: 1,
id
}
update(data).then((res: any) => {
if (res.code === 'A0000') {
ElMessage({
message: '发起试运行成功',
type: 'success'
})
tableStore.index()
}
})
let nowTime = Date.now()
let routeTime = route.query.t as number || 1
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT) return // 路由时间超过500ms则不执行
if (route.fullPath.includes('/testRun')) {
let id = (route.query.id as string) || 'null'
if (id != 'null') {
monitorIds = []
monitorIds.push(id)
const start = new Date()
start.setDate(start.getDate() + 1)
start.setHours(0, 0, 0)
const end = new Date()
end.setDate(end.getDate() + 3)
end.setHours(23, 59, 59)
const startString = formatDate(start, 'YYYY-MM-DD') // 转换为 YYYY-MM-DD 格式
const endString = formatDate(end, 'YYYY-MM-DD')
const data = {
startTime: startString,
endTime: endString,
lineIds: monitorIds,
operateType: 1,
id
}
update(data).then((res: any) => {
if (res.code === 'A0000') {
ElMessage({
message: '发起试运行成功',
type: 'success'
})
tableStore.index()
}
})
}
}
}
}, {deep: true, immediate: true})
}, { deep: true, immediate: true })
</script>
<style scoped lang="scss"></style>