干扰源常态化管理页面

This commit is contained in:
cdf
2024-05-21 08:48:39 +08:00
parent bd3dac3b89
commit 01cd8e2fb8
8 changed files with 717 additions and 176 deletions

View File

@@ -14,3 +14,21 @@ export const submitFormData = (data: any) => {
data: data
})
}
export const submitGoNet = (data: any) => {
return createAxios({
url: '/supervision-boot/userReportNormal/addUserReportNormal',
method: 'POST',
data: data
})
}
export const userReportGoNetById = (data: any) => {
return createAxios({
url: '/supervision-boot/userReportNormal/userReportGoNetById',
method: 'get',
params: data
})
}

View File

@@ -27,3 +27,6 @@ export const getUserReportById = (id: any) => {
}

View File

@@ -0,0 +1,506 @@
<template>
<el-dialog
v-model='dialogFormVisible'
title='入网评估报告'
width='70%'
:append-to-body='true'
:before-close='close'
:close-on-click-modal='false'
draggable
>
<!-- 用户档案录入 新建1 -->
<el-form
:model='form'
class='“form-two”'
:validate-on-rule-change='false'
:scroll-to-error='true'
ref='ruleFormRef'
label-width='120px'
>
<el-divider content-position="left">干扰源用户基本信息</el-divider>
<el-row style='margin-top: 25px'>
<el-col :span='12'>
<el-form-item label='用户性质:' prop='userType'>
<el-select v-model='form.userType' placeholder='请选择用户性质' :disabled="openType == 'detail'">
<el-option
v-for='(item, index) in userTypeList'
:label='item.label'
:value='item.value'
:key='index'
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-form-item label='所属地市:' prop='city'>
<el-select
v-model='form.city'
clearable
placeholder='请选择所属地市'
:disabled="openType == 'detail'"
>
<el-option
v-for='item in areaOptionList'
:key='item.id'
:label='item.name'
:value='item.name'
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-form-item label='归口管理部门:' prop='responsibleDepartment'>
<el-input
v-model='form.responsibleDepartment'
autocomplete='off'
placeholder='请输入归口管理部门'
:disabled="openType == 'detail'"
/>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-form-item label='工程名称:' prop='projectName'>
<el-input
v-model='form.projectName'
autocomplete='off'
placeholder='请输入工程名称'
:disabled="openType == 'detail'"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-form-item label='用户状态:' prop='userStatus'>
<el-select
v-model='form.userStatus'
placeholder='请选择用户状态'
:disabled="openType == 'detail'"
>
<el-option
v-for='(item, index) in userStateList'
:label='item.label'
:value='item.value'
:disabled="item.label != '可研'"
:key='index'
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-form-item label='变电站:' prop='substation'>
<el-input
v-model='form.substation'
autocomplete='off'
placeholder='请输入变电站'
:disabled="openType == 'detail'"
/>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="form.userType == '0' || form.userType == '1'">
<el-col :span='12'>
<el-form-item label='电压等级:' prop='voltageLevel'>
<el-select
v-model='form.voltageLevel'
placeholder='请选择电压等级'
node-key='id'
:disabled="openType == 'detail'"
>
<el-option
v-for='(item, index) in voltageLevelList'
:label='item.name'
:value='item.id'
:key='index'
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-form-item label='预测评估单位:' prop='evaluationDept'>
<el-select
v-model='form.evaluationDept'
placeholder='请选择预测评估单位'
:disabled="openType == 'detail'"
>
<el-option
v-for='(item, index) in evaluationDeptList'
:label='item.name'
:value='item.name'
:key='index'
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-form-item label='是否需要治理:' prop='needGovernance'>
<el-radio-group v-model='form.needGovernance' :disabled="openType == 'detail'">
<el-radio :value='1'></el-radio>
<el-radio :value='0'></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-form-item
label='是否开展背景测试:'
prop='backgroundTestPerformed'
class='label_over_warp'
>
<el-radio-group v-model='form.backgroundTestPerformed' :disabled="openType == 'detail'">
<el-radio :value='1'></el-radio>
<el-radio :value='0'></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-divider content-position="left">入网评估报告</el-divider>
<el-row style='margin-top: 25px'>
<el-col :span='12'>
<el-form-item label='填报人:' prop='reporter'>
<el-input
v-model='form.reporter'
autocomplete='off'
:disabled='true'
place-holder='请输入填报人'
/>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-form-item label='填报日期:' prop='reportDate'>
<el-date-picker
:disabled='true'
style='width: 100%'
v-model='form.reportDate'
type='date'
placeholder='请选择填报日期'
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-form-item label='填报部门:' prop='orgId'>
<el-input v-model='form.orgId' :disabled='true' autocomplete='off' />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12' class='required_position'>
<span class='required_icon'>*</span>
<el-form-item label='预测评估报告:' prop='goToNetReport'>
<el-upload
v-model:file-list='form.goToNetReport'
ref='uploadRef'
action=''
accept='.doc,.docx,.xlsx,.xls,.pdf'
:limit='1'
:on-exceed='handleExceed'
:on-change='choose'
:auto-upload='false'
>
<template #trigger>
<el-button type='primary'>上传文件</el-button>
</template>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<div class='dialog-footer'>
<el-button @click='close()'>取消</el-button>
<el-button type='primary' @click='confirmForm()'>确定</el-button>
</div>
</template>
</el-dialog>
</template>
<script lang='ts' setup>
import { ref, onMounted, reactive, defineExpose, defineProps, defineEmits, watch, onUnmounted } from 'vue'
// import { upload, insertTerminal, updateTerminal } from '@/api/process-boot/terminal'
import type { UploadInstance, UploadProps, UploadRawFile } from 'element-plus'
import { genFileId, ElMessage } from 'element-plus'
import { useDictData } from '@/stores/dictData'
import type { ComponentSize, FormInstance, FormRules } from 'element-plus'
import { useAdminInfo } from '@/stores/adminInfo'
import { getDictTreeById, queryByAllCode } from '@/api/system-boot/dictTree'
import { uploadFile } from '@/api/system-boot/file'
import { submitFormData, submitGoNet, userReportGoNetById } from '@/api/supervision-boot/interfere/index'
import { getUserReportById } from '@/api/supervision-boot/userReport/form'
const props = defineProps({
openType: {
type: String,
default: 'create'
},
id: {
type: String
}
})
const emits = defineEmits(['onSubmit'])
const dictData = useDictData()
const dialogFormVisible = ref(false)
const form: any = ref({})
const ruleFormRef: any = ref(null)
//字典获取所属地市
const areaOptionList = dictData.getBasicData('jibei_area')
//字典获取敏感电能质量指标
const energyQualityIndexList = dictData.getBasicData('Indicator_Type')
//字典获取行业类型
const industryList = dictData.getBasicData('industry_type_jb')
//字典电压等级
const voltageLevelList = dictData.getBasicData('Dev_Voltage_Stand')
//字典评估类型
const evaluationTypeList = dictData.getBasicData('Evaluation_Type')
//字典预测评估单位
const evaluationDeptList = dictData.getBasicData('evaluation_dept')
//用户性质数组
const userTypeList = reactive([
{
label: '新建电网工程',
value: 0
},
{
label: '扩建电网工程',
value: 1
},
{
label: '新建非线性负荷用户',
value: 2
},
{
label: '扩建非线性负荷用户',
value: 3
},
{
label: '新建新能源发电站',
value: 4
},
{
label: '扩建新能源发电站',
value: 5
},
{
label: '敏感及重要用户',
value: 6
}
])
//用户状态数组
const userStateList = reactive([
{
label: '可研',
value: 0
},
{
label: '建设',
value: 1
},
{
label: '运行',
value: 2
},
{
label: '退运',
value: 3
}
])
//获取非线性设备类型树形下拉
const defaultProps = {
children: 'children',
label: 'name',
key: 'id'
}
const nonlinearDeviceTypeList: any = ref('')
//获取登陆用户姓名和部门
const adminInfo = useAdminInfo()
const resetForm = () => {
form.value = {
reporter: '', //填报人 1
reportDate: new Date(), //填报日期 1
orgId: '', //填报部门 1
expectedProductionDate: '', //工程预期投产日期 1
userType: 0, //用户性质 1
city: areaOptionList[0].name, //所属地市 1
responsibleDepartment: '', //归口管理部门 1
userStatus: userStateList[0].value, //用户状态 1
projectName: '', //工程名称 1
substation: '', //变电站 1
voltageLevel: voltageLevelList[0].id, //电压等级 1
evaluationDept: evaluationDeptList[0].name, //预测评估单位 1
evaluationConclusion: '', //预测评估结论 1
backgroundTestPerformed: 0, //是否开展背景测试 1
feasibilityReport: [], // 可研报告告地址 1
preliminaryDesignDescription: [], //项目初步设计说明书告地址 1
predictionEvaluationReport: [], //预测评估报告地址 1
predictionEvaluationReviewOpinions: [], //预测评估评审意见报告地址 1
additionalAttachments: [], //其他附件告地址 1
state: '', //数据状态
pccPoint: '', //PCC点 1
evaluationType: evaluationTypeList[0].id, //评估类型 1
evaluationChekDept: '', //预测评估审单位 1
substationMainWiringDiagram: [], //用户接入变电站主接线示意图地址 1
powerQualityReport: [], //背景电能质量测试报告 1
minShortCircuitCapacity: '', //系统最小短路容量MVA 1
userAgreementCapacity: '', //用户用电协议容量MVA 1
needGovernance: 0, //是否需要治理 1
agreementCapacity: '', //用户协议容量 1
nonlinearDeviceType: '', //非线性设备类型 1
nonlinearLoadType: '', //非线性负荷类型 1
pccEquipmentCapacity: '', // PCC供电设备容量MVA 1
baseShortCircuitCapacity: '', //基准短路容量MVA1
industry: industryList[0].id, //行业 1
deviceName: '', //敏感装置名称 1
powerSupplyCount: 0, //供电电源数量 1
energyQualityIndex: energyQualityIndexList[0].id, //敏感电能质量指标 1
antiInterferenceTest: 0, //是否开展抗扰度测试 1
sensitiveDevices: [], //主要敏感设备清单 1
antiInterferenceReport: [] //抗扰度测试报告 1
}
form.value.reporter = adminInfo.$state.name
form.value.orgId = adminInfo.$state.deptName
}
//初始化数据
resetForm()
const detailLoading = ref(false) // 表单的加载中
const getInfo = async () => {
detailLoading.value = true
try {
await getUserReportById(props.id).then(res => {
form.value = res.data
form.value.reporter = adminInfo.$state.name
form.value.orgId = adminInfo.$state.deptName
form.value.reportDate = new Date()
})
} finally {
detailLoading.value = false
}
}
const treeRef = ref()
const open = () => {
dialogFormVisible.value = true
}
const close = () => {
//重置表单内容
dialogFormVisible.value = false
resetForm()
}
onMounted(() => {
getInfo()
})
// 上传报告
const uploadRef = ref()
const handleExceed: UploadProps['onExceed'] = files => {
uploadRef.value!.clearFiles()
const file = files[0] as UploadRawFile
file.uid = genFileId()
uploadRef.value!.handleStart(file)
}
// 可研报告数组
const goToNetReport = ref('')
const choose = (e: any) => {
uploadFile(e.raw, '/supervision/').then(res => {
//可研报告
goToNetReport.value = res.data.name
})
}
//提交
const confirmForm = () => {
let data = {
type: 0,
userReportId: props.id,
reportUrl: goToNetReport.value
}
submitGoNet(data).then(res => {
close()
})
}
defineExpose({ open })
</script>
<style lang='scss' scoped>
/* 调整标签的换行行为 */
.label_over_warp::v-deep .el-form-item__label {
white-space: pre-line !important;
line-height: 16px !important;
}
.el-form-item {
padding: 0 20px;
height: auto !important;
}
::v-deep .el-form-item__label {
justify-content: flex-start !important;
}
.form-label-left-align {
text-align: left;
}
::v-deep .el-input__wrapper {
// border: 2px solid red;
}
::v-deep .el-input-number .el-input__inner {
text-align: left;
}
::v-deep .el-tree__empty-text {
width: 200px !important;
margin-left: 150px !important;
top: 20% !important;
left: 50% !important;
}
::v-deep .required_position {
position: relative;
.required_icon {
position: absolute;
// left: 20px;
margin-top: 8px;
color: #f56c6c;
margin-left: 20px;
}
.required_text {
// padding-left: 20px;
}
.el-form-item__label {
margin-left: 10px;
}
}
:deep(.el-upload-list__item-file-name) {
width: 250px;
text-align: left;
}
</style>

View File

@@ -1,15 +1,8 @@
<template>
<div class='default-main'>
<el-divider style='' content-position="left">干扰源用户信息</el-divider>
<el-descriptions :column='2' border>
<el-descriptions-item label='填报人'>
{{ detailData.reporter }}
</el-descriptions-item>
<el-descriptions-item label='填报日期'>
{{ formatDate(detailData.reportDate, 'YYYY-MM-DD') }}
</el-descriptions-item>
<el-descriptions-item label='填报部门'>
{{ detailData.orgName }}
</el-descriptions-item>
<el-descriptions-item label='工程预期投产日期'>
{{ formatDate(detailData.expectedProductionDate, 'YYYY-MM-DD') }}
</el-descriptions-item>
@@ -187,111 +180,106 @@
})?.name
}}
</el-descriptions-item>
<!-- <el-descriptions-item label='可研报告'>
<span v-if='detailData.userType == 0 || detailData.userType == 1'>
<el-icon><Link /></el-icon>
<a :href='proviteData.feasibilityReport.url'>{{ proviteData.feasibilityReport.name }}</a>
</span>
<span
v-if='
detailData.userType == 2 ||
detailData.userType == 3 ||
detailData.userType == 4 ||
detailData.userType == 5
'
>
<el-icon><Link /></el-icon>
<a :href='proviteData.feasibilityReport.url'>{{ proviteData.feasibilityReport.name }}</a>
</span>
<span v-if='detailData.userType == 6'>
<el-icon><Link /></el-icon>
<a :href='proviteData.feasibilityReport.url'>{{ proviteData.feasibilityReport.name }}</a>
</span>
</el-descriptions-item>
<el-descriptions-item label='项目初步设计说明书'>
<el-icon>
<Link />
</el-icon>
<a :href='proviteData?.preliminaryDesignDescription.url'>
{{ proviteData?.preliminaryDesignDescription.name }}
</a>
</el-descriptions-item>
<el-descriptions-item label='预测评估报告'>
<el-icon>
<Link />
</el-icon>
<a :href='proviteData?.predictionEvaluationReport.url'>
{{ proviteData?.predictionEvaluationReport.name }}
</a>
</el-descriptions-item>
<el-descriptions-item label='预测评估评审意见报告'>
<el-icon>
<Link />
</el-icon>
<a :href='proviteData?.predictionEvaluationReviewOpinions.url'>
{{ proviteData?.predictionEvaluationReviewOpinions.name }}
</a>
</el-descriptions-item>
<el-descriptions-item
label='用户接入变电站主接线示意图'
v-if='detailData.userType != 0 && detailData.userType != 1'
>
<el-icon>
<Link />
</el-icon>
<a :href='proviteData?.substationMainWiringDiagram.url'>
{{ proviteData?.substationMainWiringDiagram.name }}
</a>
</el-descriptions-item>
<el-descriptions-item label='主要敏感设备清单' v-if='detailData.userType == 6'>
<el-icon>
<Link />
</el-icon>
<a :href='proviteData?.sensitiveDevices.url'>{{ proviteData?.sensitiveDevices.name }}</a>
</el-descriptions-item>
<el-descriptions-item label='抗扰度测试报告' v-if='detailData.userType == 6'>
<el-icon>
<Link />
</el-icon>
<a :href='proviteData?.antiInterferenceReport.url'>{{ proviteData?.antiInterferenceReport.name }}</a>
</el-descriptions-item>
<el-descriptions-item label='背景电能质量测试报告' v-if='detailData.userType == 6'>
<el-icon>
<Link />
</el-icon>
<a :href='proviteData?.powerQualityReport.url'>{{ proviteData?.powerQualityReport.name }}</a>
</el-descriptions-item>
<el-descriptions-item label='其他附件'>
<el-icon>
<Link />
</el-icon>
<a :href='proviteData?.additionalAttachments.url'>{{ proviteData?.additionalAttachments.name }}</a>
</el-descriptions-item>-->
</el-descriptions>
<el-descriptions :column='2' border>
<el-descriptions-item label='入网预测评估报告'>
<el-upload
ref="uploadRef"
class="upload-demo"
:auto-upload="false">
<template #trigger>
<el-button type="primary">选择附件</el-button>
</template>
<!-- <template #tip>-->
<!-- <div class="el-upload__tip">-->
<!-- jpg/png files with a size less than 500kb-->
<!-- </div>-->
<!-- </template>-->
</el-upload>
<el-descriptions-item label='可研报告'>
<span v-if='detailData.userType == 0 || detailData.userType == 1'>
<el-icon><Link /></el-icon>
<a :href='proviteData.feasibilityReport.url'>{{ proviteData.feasibilityReport.name }}</a>
</span>
<span
v-if='
detailData.userType == 2 ||
detailData.userType == 3 ||
detailData.userType == 4 ||
detailData.userType == 5
'
>
<el-icon><Link /></el-icon>
<a :href='proviteData.feasibilityReport.url'>{{ proviteData.feasibilityReport.name }}</a>
</span>
<span v-if='detailData.userType == 6'>
<el-icon><Link /></el-icon>
<a :href='proviteData.feasibilityReport.url'>{{ proviteData.feasibilityReport.name }}</a>
</span>
</el-descriptions-item>
<el-descriptions-item label='项目初步设计说明书'>
<el-icon>
<Link />
</el-icon>
<a :href='proviteData?.preliminaryDesignDescription.url'>
{{ proviteData?.preliminaryDesignDescription.name }}
</a>
</el-descriptions-item>
<el-descriptions-item label='预测评估报告'>
<el-icon>
<Link />
</el-icon>
<a :href='proviteData?.predictionEvaluationReport.url'>
{{ proviteData?.predictionEvaluationReport.name }}
</a>
</el-descriptions-item>
<el-descriptions-item label='预测评估评审意见报告'>
<el-icon>
<Link />
</el-icon>
<a :href='proviteData?.predictionEvaluationReviewOpinions.url'>
{{ proviteData?.predictionEvaluationReviewOpinions.name }}
</a>
</el-descriptions-item>
<el-descriptions-item
label='用户接入变电站主接线示意图'
v-if='detailData.userType != 0 && detailData.userType != 1'
>
<el-icon>
<Link />
</el-icon>
<a :href='proviteData?.substationMainWiringDiagram.url'>
{{ proviteData?.substationMainWiringDiagram.name }}
</a>
</el-descriptions-item>
<el-descriptions-item label='主要敏感设备清单' v-if='detailData.userType == 6'>
<el-icon>
<Link />
</el-icon>
<a :href='proviteData?.sensitiveDevices.url'>{{ proviteData?.sensitiveDevices.name }}</a>
</el-descriptions-item>
<el-descriptions-item label='抗扰度测试报告' v-if='detailData.userType == 6'>
<el-icon>
<Link />
</el-icon>
<a :href='proviteData?.antiInterferenceReport.url'>{{ proviteData?.antiInterferenceReport.name }}</a>
</el-descriptions-item>
<el-descriptions-item label='背景电能质量测试报告' v-if='detailData.userType == 6'>
<el-icon>
<Link />
</el-icon>
<a :href='proviteData?.powerQualityReport.url'>{{ proviteData?.powerQualityReport.name }}</a>
</el-descriptions-item>
<el-descriptions-item label='其他附件'>
<el-icon>
<Link />
</el-icon>
<a :href='proviteData?.additionalAttachments.url'>{{ proviteData?.additionalAttachments.name }}</a>
</el-descriptions-item>
</el-descriptions>
<el-divider content-position="left">入网评估方案申请</el-divider>
<el-descriptions :column='2' border>
<el-descriptions-item label='填报人'>
{{ detailData.reporter }}
</el-descriptions-item>
<el-descriptions-item label='填报日期'>
{{ formatDate(detailData.reportDate, 'YYYY-MM-DD') }}
</el-descriptions-item>
<el-descriptions-item label='填报部门'>
{{ detailData.orgName }}
</el-descriptions-item>
<el-descriptions-item label='入网方案报告'>
<span>
<el-icon><Link /></el-icon>
<a :href='proviteData.feasibilityReport.url'>{{ proviteData.feasibilityReport.name }}</a>
</span>
</el-descriptions-item>
</el-descriptions>
</div>
</template>
<script lang='ts' setup>
@@ -303,8 +291,8 @@ import { getUserReportById } from '@/api/supervision-boot/userReport/form'
import { getDictTreeById } from '@/api/system-boot/dictTree'
import { useDictData } from '@/stores/dictData'
import { getFileNameAndFilePath } from '@/api/system-boot/file'
import type { UploadInstance } from 'element-plus'
import { Link } from '@element-plus/icons-vue'
import { userReportGoNetById } from '@/api/supervision-boot/interfere'
defineOptions({ name: 'BpmUserReportDetail' })
@@ -383,9 +371,11 @@ const evaluationDeptList = dictData.getBasicData('evaluation_dept')
const getInfo = async () => {
detailLoading.value = true
try {
await getUserReportById(props.id || queryId).then(res => {
detailData.value = res.data
getProviteData()
userReportGoNetById({id:props.id}).then(r => {
getUserReportById(r.data.userReportId).then(res => {
detailData.value = res.data
getProviteData()
})
})
} finally {
detailLoading.value = false
@@ -538,16 +528,6 @@ const getFileNamePath = async (val: any, pathName: any) => {
}
defineExpose({ open: getInfo }) // 提供 open 方法,用于打开弹窗
const uploadRef = ref<UploadInstance>()
const submitUpload = () => {
uploadRef.value!.submit()
}
/** 初始化 **/
onMounted(() => {
getInfo()
@@ -564,4 +544,5 @@ onMounted(() => {
position: absolute !important;
top: 20px !important;
}
</style>

View File

@@ -23,11 +23,9 @@
<Table ref='tableRef' />
</div>
<Dialog title='干扰源用户详细信息' v-model='dialogVisible' width='85%'>
<el-dialog title='干扰源用户详细信息' v-model='dialogVisible' width='85%'>
<BpmUserReportDetail :id='interId' style='max-height: 600px'></BpmUserReportDetail>
</Dialog>
</el-dialog>
</template>
@@ -40,7 +38,6 @@ import TableStore from '@/utils/tableStore'
import Table from '@/components/table/index.vue'
import TableHeader from '@/components/table/header/index.vue'
import { useDictData } from '@/stores/dictData'
import Dialog from '@/components/Dialog/src/Dialog.vue'
import BpmUserReportDetail from '../../components/undocumented/detail.vue'
@@ -86,7 +83,8 @@ const tableStore = new TableStore({
}
},
{ field: 'substation', title: '变电站', minWidth: 100 },
{ title: '详细信息',
{
title: '详细信息',
minWidth: 100,
render: 'buttons',
buttons: [
@@ -99,7 +97,7 @@ const tableStore = new TableStore({
click: row => {
open(row.id)
}
},
}
]
},
@@ -116,7 +114,7 @@ const tableStore = new TableStore({
icon: 'el-icon-EditPen',
render: 'basicButton',
click: row => {
toFangAn(row.id,1)
toFangAn(row.id, 0)
}
},
{
@@ -126,7 +124,7 @@ const tableStore = new TableStore({
icon: 'el-icon-EditPen',
render: 'basicButton',
click: row => {
toFangAn(row.id,2)
toFangAn(row.id, 1)
}
}
@@ -158,27 +156,18 @@ const open = async (id: string) => {
}
/** 方案审查 */
const toFangAn = (id: any,type:Number) => {
if(type == 1){
push({
name: 'ProgramReview',
query: {
id: id
}
})
}else{
push({
name: 'projectTreat',
query: {
id: id
}
})
}
const toFangAn = (id: any, typeNo: number) => {
push({
name: 'ProgramReview',
query: {
id: id,
type: typeNo
}
})
}
/**获取用户性质*/
const getUserTypeName = (userType: any) => {
if (userType === 0) {

View File

@@ -17,46 +17,40 @@
</el-form-item>
</template>
<template #operation>
<el-button icon='' type='primary' @click='goNet()'>新增入网设计方案审查</el-button>
<el-button icon='' type='primary' @click='toGoNet()'>{{ titleButton }}</el-button>
<el-button style='margin-left: 50px' :icon='Back' @click='go(-1)'>返回</el-button>
</template>
</TableHeader>
<Table ref='tableRef' />
<addForm v-if='dialogVisible' ref='addForms' :id='bussId' openType = 'detail'></addForm>
</div>
<!-- <el-dialog title='干扰源用户入网方案审查' v-model='dialogVisible' width='70%'>
<BpmUserReportDetail :id='interId' style='max-height: 600px'></BpmUserReportDetail>
</el-dialog>-->
</template>
<script setup lang='ts'>
defineOptions({
name: 'ProgramReview'
})
import { ref, onMounted, provide, nextTick } from 'vue'
import TableStore from '@/utils/tableStore'
import Table from '@/components/table/index.vue'
import TableHeader from '@/components/table/header/index.vue'
import { useDictData } from '@/stores/dictData'
import addForm from './addForm.vue'
import { useRouter } from 'vue-router'
import { Back } from '@element-plus/icons-vue'
import BpmUserReportDetail from '@/views/pqs/supervise/interfere/components/normalizationManager/detail.vue'
const {go} = useRouter()
const { go,currentRoute,push } = useRouter()
const dictData = useDictData()
const areaOptionList = dictData.getBasicData('jibei_area')
const TableHeaderRef = ref()
const tableStore = new TableStore({
url: '/supervision-boot/userReport/getInterferenceUserPage',
url: '/supervision-boot/userReportNormal/userReportGoNetPage',
method: 'POST',
column: [
@@ -92,39 +86,89 @@ const tableStore = new TableStore({
}
},
{ field: 'substation', title: '变电站', minWidth: 100 },
{
field: 'status',
title: '审核状态',
minWidth: 100,
render: 'tag',
custom: {
1: 'primary',
2: 'success',
3: 'danger',
4: 'warning'
},
replaceValue: {
1: '审批中',
2: '审批通过',
3: '审批不通过',
4: '已取消'
}
},
{ field: 'createTime', title: '创建时间', minWidth: 100 },
{
title: '操作',
minWidth: 180,
fixed: 'right',
render: 'buttons',
buttons: [
{
name: 'productSetting',
title: '流程详情',
type: 'primary',
icon: 'el-icon-EditPen',
render: 'basicButton',
click: row => {
handleAudit(row.processInstanceId)
}
}
]
}
],
beforeSearchFun: () => {
tableStore.table.params.city = tableStore.table.params.deptIndex
tableStore.table.params.userReportId = bussId.value
tableStore.table.params.type = bussType.value
}
})
const dialogVisible = ref(false)
const bussId = ref()
bussId.value =currentRoute.value.query.id
const bussType = ref()
bussType.value =Number(currentRoute.value.query.type)
const titleButton = ref()
if(bussType.value === 0){
titleButton.value='入网评估方案'
}else{
titleButton.value='治理工程'
}
provide('tableStore', tableStore)
onMounted(() => {
//interId.value = currentRoute.value.query.id
tableStore.index()
})
/** 方案审查 */
const goNet = () => {
dialogVisible.value = true
/** 处理审批按钮 */
const handleAudit = (instanceId: any) => {
push({
name: 'BpmProcessInstanceDetail',
query: {
id: instanceId
}
})
}
const addForms = ref()
const toGoNet=() => {
dialogVisible.value = true
setTimeout(() => {
addForms.value.open()
}, 0);
}
/**获取用户性质*/
const getUserTypeName = (userType: any) => {

View File

@@ -44,7 +44,6 @@ const { go } = useRouter()
const dictData = useDictData()
const areaOptionList = dictData.getBasicData('jibei_area')
const { push } = useRouter()
const TableHeaderRef = ref()
const tableStore = new TableStore({
url: '/supervision-boot/userReport/getInterferenceUserPage',

View File

@@ -320,6 +320,7 @@ const getProcessInstance = async () => {
fApi.value?.disabled(true)
})
} else {
// 注意data.processDefinition.formCustomViewPath 是组件的全路径,例如说:/crm/contract/detail/index.vue
BusinessFormComponent.value = registerComponent(data.processDefinition.formCustomViewPath)
}