干扰源常态化管理页面
This commit is contained in:
@@ -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
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -27,3 +27,6 @@ export const getUserReportById = (id: any) => {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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: '', //基准短路容量(MVA)1
|
||||
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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user