干扰源接入问题修改

This commit is contained in:
zhujiyan
2024-05-28 11:01:50 +08:00
parent 72b729c55b
commit a5a7361eca
7 changed files with 574 additions and 557 deletions

View File

@@ -109,14 +109,14 @@ body,
}
//修改上传文件filelist位置
.uploadFile {
::v-deep .el-form-item__content {
.el-form-item__content {
line-height: 20px !important;
div {
display: flex !important;
align-items: center !important;
}
.el-upload-list__item-name {
width: 130px !important;
width: 120px !important;
}
.el-upload-list--text {
margin: 0px 20px 0 !important;

View File

@@ -1,242 +1,185 @@
<template>
<el-dialog
v-model='dialogFormVisible'
:title=titleButton
width='70%'
:append-to-body='true'
:before-close='close'
:close-on-click-modal='false'
v-model="dialogFormVisible"
:title="titleButton"
width="65%"
: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'
:model="form"
:validate-on-rule-change="false"
:scroll-to-error="true"
ref="ruleFormRef"
label-width="auto"
class="form-two"
>
<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-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'
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-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'
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-form-item label="归口管理部门:" prop="responsibleDepartment">
<el-input
v-model='form.responsibleDepartment'
autocomplete='off'
placeholder='请输入归口管理部门'
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-form-item label="工程名称:" prop="projectName">
<el-input
v-model='form.projectName'
autocomplete='off'
placeholder='请输入工程名称'
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-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'
v-for="(item, index) in userStateList"
:label="item.label"
:value="item.value"
:disabled="item.label != '可研'"
:key='index'
:key="index"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-form-item label='变电站:' prop='substation'>
<el-form-item label="变电站:" prop="substation">
<el-input
v-model='form.substation'
autocomplete='off'
placeholder='请输入变电站'
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-form-item v-if="form.userType == '0' || form.userType == '1'" label="电压等级:" prop="voltageLevel">
<el-select
v-model='form.voltageLevel'
placeholder='请选择电压等级'
node-key='id'
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'
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'
v-if="form.userType == '0' || form.userType == '1'"
label="预测评估单位:"
prop="evaluationDept"
>
<el-radio-group v-model='form.backgroundTestPerformed' :disabled="openType == 'detail'">
<el-radio :value='1'></el-radio>
<el-radio :value='0'></el-radio>
<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-form-item v-if="form.userReportSubstationPO" label="是否需要治理:" prop="needGovernance">
<el-radio-group v-model="form.userReportSubstationPO.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-row>
<el-divider content-position="left">{{bussType == 0?'入网设计方案审查报告':'治理工程验收报告'}}</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
v-if="form.userReportSubstationPO"
label="是否开展背景测试:"
prop="backgroundTestPerformed"
>
<el-radio-group
v-model="form.userReportSubstationPO.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-col :span='12'>
<el-form-item label='填报日期:' prop='reportDate'>
<el-divider content-position="left">
{{ bussType == 0 ? '入网设计方案审查报告' : '治理工程验收报告' }}
</el-divider>
<el-form-item label="填报人:" prop="reporter">
<el-input v-model="form.reporter" autocomplete="off" :disabled="true" place-holder="请输入填报人" />
</el-form-item>
<el-form-item label="填报日期:" prop="reportDate">
<el-date-picker
:disabled='true'
style='width: 100%'
v-model='form.reportDate'
type='date'
placeholder='请选择填报日期'
: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 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="bussType == 0?'入网设计方案审查报告':'治理工程验收报告'" prop='goToNetReport'>
<el-form-item
class="uploadFile"
:label="bussType == 0 ? '入网设计方案审查报告:' : '治理工程验收报告:'"
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'
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>
<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 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 type { UploadInstance, UploadProps, UploadRawFile } from 'element-plus'
<script lang="ts" setup>
import { ref, reactive, defineExpose, defineProps, defineEmits } from 'vue'
import type { 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 { submitGoNet } from '@/api/supervision-boot/interfere/index'
import { getUserReportById } from '@/api/supervision-boot/userReport/form'
const props = defineProps({
@@ -262,14 +205,8 @@ 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')
@@ -323,57 +260,24 @@ const userStateList = reactive([
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
reporter: '', //填报人
reportDate: new Date(), //填报日期
orgId: '', //填报部门
goToNetReport:[],//报告
userType: 0, //用户性质
city: areaOptionList[0].name, //所属地市
responsibleDepartment: '', //归口管理部门
projectName: '', //工程名称
userStatus: userStateList[0].value, //用户状态
substation: '', //变电站
backgroundTestPerformed: 0, //是否开展背景测试
antiInterferenceTest: 0, //是否开展抗扰度测试
voltageLevel: voltageLevelList[0].id, //电压等级
evaluationDept: evaluationDeptList[0].name, //预测评估单位
}
form.value.reporter = adminInfo.$state.name
form.value.orgId = adminInfo.$state.deptName
@@ -398,11 +302,11 @@ const getInfo = async () => {
const treeRef = ref()
const open = () => {
dialogFormVisible.value = true
resetForm()
getInfo()
}
const close = () => {
@@ -411,9 +315,7 @@ const close = () => {
dialogFormVisible.value = false
}
onMounted(() => {
getInfo()
})
// 上传报告
@@ -425,12 +327,12 @@ const handleExceed: UploadProps['onExceed'] = files => {
uploadRef.value!.handleStart(file)
}
// 可研报告数组
// 治理工程验收报告数组
const goToNetReport = ref('')
const choose = (e: any) => {
uploadFile(e.raw, '/supervision/').then(res => {
//可研报告
//治理工程验收报告
goToNetReport.value = res.data.name
})
}
@@ -443,9 +345,7 @@ const confirmForm = () => {
message: '请上传报告',
type: 'warning'
})
return;
}
let data = {
type: props.bussType,
userReportId: props.id,
@@ -453,76 +353,14 @@ const confirmForm = () => {
}
submitGoNet(data).then((res:any) => {
if(res.code==='A0000'){
return ElMessage({
ElMessage({
message: '新建流程成功',
type: 'success'
})
emits("onSubmit")
close()
getInfo()
}
})
}
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

@@ -0,0 +1,45 @@
<template>
<div class="details_item">
<div class="left_title">
<slot name="label"></slot>
</div>
<div class="right_content">
<slot name="content"></slot>
</div>
</div>
</template>
<script lang="ts" setup>
import { ref, onMounted } from 'vue'
onMounted(() => {
console.log()
})
</script>
<style lang="less" scoped>
.details_item {
width: 50%;
height: 40px;
display: flex;
.left_title {
width: 54%;
height: 100%;
background: #f5f7fa;
line-height: 18px;
text-align: left;
padding: 8px 11px;
font-weight: bold;
border: 1px solid #eceef5;
border-right: 0;
color: #606266;
box-sizing: border-box;
}
.right_content {
flex: 1;
background: #fff;
line-height: 18px;
padding: 8px 11px;
box-sizing: border-box;
border: 1px solid #eceef5;
box-sizing: border-box;
}
}
</style>

View File

@@ -1,57 +1,89 @@
<template>
<div>
<el-divider style="" content-position="left">干扰源用户信息</el-divider>
<el-descriptions :column="2" border>
<el-descriptions-item label="工程预期投产日期">
{{ formatDate(detailData.expectedProductionDate, 'YYYY-MM-DD') }}
</el-descriptions-item>
<el-descriptions-item label="用户性质">
<div class="details">
<el-divider content-position="left">干扰源用户信息</el-divider>
<details_item>
<template #label>工程预期投产日期</template>
<template #content>{{ formatDate(detailData.expectedProductionDate, 'YYYY-MM-DD') }}</template>
</details_item>
<details_item>
<template #label>用户性质</template>
<template #content>
{{
userTypeList.find(item => {
return item.value == detailData.userType
})?.label
}}
</el-descriptions-item>
<el-descriptions-item label="所属地市">
</template>
</details_item>
<details_item>
<template #label>所属地市</template>
<template #content>
{{ detailData.city }}
</el-descriptions-item>
<el-descriptions-item label="归口管理部门">
</template>
</details_item>
<details_item>
<template #label>归口管理部门</template>
<template #content>
{{ detailData.responsibleDepartment }}
</el-descriptions-item>
<el-descriptions-item label="用户状态">
</template>
</details_item>
<details_item>
<template #label>用户状态</template>
<template #content>
{{
userStateList.find(item => {
return item.value == detailData.userStatus
})?.label
}}
</el-descriptions-item>
<el-descriptions-item label="变电站">
</template>
</details_item>
<details_item>
<template #label>变电站</template>
<template #content>
{{ detailData.substation }}
</el-descriptions-item>
<el-descriptions-item label="工程名">
</template>
</details_item>
<details_item>
<template #label>工程名</template>
<template #content>
{{ detailData.projectName }}
</el-descriptions-item>
<el-descriptions-item label="用户协议容量" v-if="detailData.userType == 0 || detailData.userType == 1">
</template>
</details_item>
<details_item v-if="detailData.userType == 0 || detailData.userType == 1">
<template #label>用户协议容量</template>
<template #content>
{{ proviteData.agreementCapacity }}
</el-descriptions-item>
<el-descriptions-item label="电压等级">
</template>
</details_item>
<details_item>
<template #label>电压等级</template>
<template #content>
{{
voltageLevelList.find(item => {
return item.id == detailData.voltageLevel
})?.name
}}
</el-descriptions-item>
<el-descriptions-item label="非线性设备类型" v-if="detailData.userType == 0 || detailData.userType == 1">
</template>
</details_item>
<details_item v-if="detailData.userType == 0 || detailData.userType == 1">
<template #label>非线性设备类型</template>
<template #content>
{{ proviteData.nonlinearDeviceType ? proviteData.nonlinearDeviceType : '-' }}
</el-descriptions-item>
<el-descriptions-item label="预测评估单位">
</template>
</details_item>
<details_item>
<template #label>预测评估单位</template>
<template #content>
{{ detailData.evaluationDept }}
</el-descriptions-item>
<el-descriptions-item label="预测评估结论">
</template>
</details_item>
<details_item>
<template #label>预测评估结论</template>
<template #content>
{{ detailData.evaluationConclusion }}
</el-descriptions-item>
<el-descriptions-item
label="非线性负荷类型"
</template>
</details_item>
<details_item
v-if="
detailData.userType == '2' ||
detailData.userType == '3' ||
@@ -59,9 +91,14 @@
detailData.userType == '5'
"
>
<template #label>非线性负荷类型</template>
<template #content>
{{ proviteData.nonlinearLoadType }}
</el-descriptions-item>
<el-descriptions-item label="是否需要治理">
</template>
</details_item>
<details_item>
<template #label>是否需要治理</template>
<template #content>
<span v-if="detailData.userType == 0 || detailData.userType == 1">
{{ proviteData.needGovernance == 0 ? '否' : '是' }}
</span>
@@ -76,8 +113,11 @@
{{ proviteData.needGovernance == 0 ? '否' : '是' }}
</span>
<span v-if="detailData.userType == 6">{{ proviteData.needGovernance == 0 ? '否' : '是' }}</span>
</el-descriptions-item>
<el-descriptions-item label="是否开展背景测试">
</template>
</details_item>
<details_item>
<template #label>是否开展背景测试</template>
<template #content>
<span v-if="detailData.userType == 0 || detailData.userType == 1">
{{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }}
</span>
@@ -94,18 +134,21 @@
<span v-if="detailData.userType == 6">
{{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }}
</span>
</el-descriptions-item>
<el-descriptions-item label="是否开展抗扰度测试" v-if="detailData.userType == 6">
<span>
</template>
</details_item>
<details_item v-if="detailData.userType == 6">
<template #label>是否开展抗扰度测试</template>
<template #content>
{{ proviteData.antiInterferenceTest == 0 ? '否' : '是' }}
</span>
</el-descriptions-item>
<el-descriptions-item label="PCC点" v-if="detailData.userType != 0 && detailData.userType != 1">
</template>
</details_item>
<details_item v-if="detailData.userType != 0 && detailData.userType != 1">
<template #label>PCC点</template>
<template #content>
{{ proviteData?.pccPoint }}
</el-descriptions-item>
<el-descriptions-item
label="PCC供电设备容量"
</template>
</details_item>
<details_item
v-if="
detailData.userType == '2' ||
detailData.userType == '3' ||
@@ -113,10 +156,12 @@
detailData.userType == '5'
"
>
<template #label>PCC供电设备容量</template>
<template #content>
{{ proviteData.pccEquipmentCapacity }}
</el-descriptions-item>
<el-descriptions-item
label="基准短路容量"
</template>
</details_item>
<details_item
v-if="
detailData.userType == '2' ||
detailData.userType == '3' ||
@@ -124,21 +169,28 @@
detailData.userType == '5'
"
>
<template #label>基准短路容量</template>
<template #content>
{{ proviteData.baseShortCircuitCapacity }}
</el-descriptions-item>
{{ proviteData }}
<el-descriptions-item label="评估类型" v-if="detailData.userType != 0 && detailData.userType != 1">
</template>
</details_item>
<details_item v-if="detailData.userType != 0 && detailData.userType != 1">
<template #label>评估类型</template>
<template #content>
{{
evaluationTypeList.find(item => {
return item.id == proviteData?.evaluationType
})?.name
}}
</el-descriptions-item>
<el-descriptions-item label="预测评估评审单位" v-if="detailData.userType != 0 && detailData.userType != 1">
</template>
</details_item>
<details_item v-if="detailData.userType != 0 && detailData.userType != 1">
<template #label>预测评估评审单位</template>
<template #content>
{{ proviteData?.evaluationChekDept }}
</el-descriptions-item>
<el-descriptions-item
label="系统最小短路容量"
</template>
</details_item>
<details_item
v-if="
detailData.userType == '2' ||
detailData.userType == '3' ||
@@ -146,10 +198,12 @@
detailData.userType == '5'
"
>
<template #label>系统最小短路容量</template>
<template #content>
{{ proviteData?.minShortCircuitCapacity }}
</el-descriptions-item>
<el-descriptions-item
label="用户用电协议容量"
</template>
</details_item>
<details_item
v-if="
detailData.userType == '2' ||
detailData.userType == '3' ||
@@ -157,29 +211,46 @@
detailData.userType == '5'
"
>
<template #label>用户用电协议容量</template>
<template #content>
{{ proviteData?.userAgreementCapacity }}
</el-descriptions-item>
<el-descriptions-item label="行业" v-if="detailData.userType == 6">
</template>
</details_item>
<details_item v-if="detailData.userType == 6">
<template #label>行业</template>
<template #content>
{{
industryList.find(item => {
return item.id == proviteData.industry
})?.name
}}
</el-descriptions-item>
<el-descriptions-item label="敏感装置名称" v-if="detailData.userType == 6">
</template>
</details_item>
<details_item v-if="detailData.userType == 6">
<template #label>敏感装置名称</template>
<template #content>
{{ proviteData.deviceName }}
</el-descriptions-item>
<el-descriptions-item label="供电电源数量" v-if="detailData.userType == 6">
</template>
</details_item>
<details_item v-if="detailData.userType == 6">
<template #label>供电电源数量</template>
<template #content>
{{ proviteData.powerSupplyCount }}
</el-descriptions-item>
<el-descriptions-item label="敏感电能质量指标" v-if="detailData.userType == 6">
</template>
</details_item>
<details_item v-if="detailData.userType == 6">
<template #label>敏感电能质量指标</template>
<template #content>
{{
energyQualityIndexList.find(item => {
return item.id == proviteData.energyQualityIndex
})?.name
}}
</el-descriptions-item>
<el-descriptions-item label="可研报告">
</template>
</details_item>
<details_item>
<template #label>可研报告</template>
<template #content>
<span v-if="detailData.userType == 0 || detailData.userType == 1">
<el-icon><Link /></el-icon>
<a :href="proviteData.feasibilityReport.url">{{ proviteData.feasibilityReport.name }}</a>
@@ -199,90 +270,118 @@
<el-icon><Link /></el-icon>
<a :href="proviteData.feasibilityReport.url">{{ proviteData.feasibilityReport.name }}</a>
</span>
</el-descriptions-item>
<el-descriptions-item label="项目初步设计说明书">
</template>
</details_item>
<details_item>
<template #label>项目初步设计说明书</template>
<template #content>
<el-icon>
<Link />
</el-icon>
<a :href="proviteData?.preliminaryDesignDescription.url">
{{ proviteData?.preliminaryDesignDescription.name }}
</a>
</el-descriptions-item>
<el-descriptions-item label="预测评估报告">
</template>
</details_item>
<details_item>
<template #label>预测评估报告</template>
<template #content>
<el-icon>
<Link />
</el-icon>
<a :href="proviteData?.predictionEvaluationReport.url">
{{ proviteData?.predictionEvaluationReport.name }}
</a>
</el-descriptions-item>
<el-descriptions-item label="预测评估评审意见报告">
</template>
</details_item>
<details_item>
<template #label>预测评估评审意见报告</template>
<template #content>
<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"
>
</template>
</details_item>
<details_item v-if="detailData.userType != 0 && detailData.userType != 1">
<template #label>用户接入变电站主接线示意图</template>
<template #content>
<el-icon>
<Link />
</el-icon>
<a :href="proviteData?.substationMainWiringDiagram.url">
<a :href="proviteData?.substationMainWiringDiagram.url" target="_blank">
{{ proviteData?.substationMainWiringDiagram.name }}
</a>
</el-descriptions-item>
<el-descriptions-item label="主要敏感设备清单" v-if="detailData.userType == 6">
</template>
</details_item>
<details_item v-if="detailData.userType == 6">
<template #label>主要敏感设备清单</template>
<template #content>
<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">
</template>
</details_item>
<details_item v-if="detailData.userType == 6">
<template #label>抗扰度测试报告</template>
<template #content>
<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">
</template>
</details_item>
<details_item v-if="detailData.userType == 6">
<template #label>背景电能质量测试报告</template>
<template #content>
<el-icon>
<Link />
</el-icon>
<a :href="proviteData?.powerQualityReport.url">{{ proviteData?.powerQualityReport.name }}</a>
</el-descriptions-item>
<el-descriptions-item label="其他附件">
</template>
</details_item>
<details_item v-if="proviteData?.additionalAttachments.url">
<template #label>其他附件</template>
<template #content>
<el-icon>
<Link />
</el-icon>
<a :href="proviteData?.additionalAttachments.url">{{ proviteData?.additionalAttachments.name }}</a>
</el-descriptions-item>
</el-descriptions>
</template>
</details_item>
<el-divider content-position="left">{{ applyTitle + '填报信息' }}</el-divider>
<el-descriptions :column="2" border>
<el-descriptions-item label="填报人">
<details_item>
<template #label>填报人</template>
<template #content>
{{ detailData.reporter }}
</el-descriptions-item>
<el-descriptions-item label="填报日期">
</template>
</details_item>
<details_item>
<template #label>填报日期</template>
<template #content>
{{ formatDate(detailData.reportDate, 'YYYY-MM-DD') }}
</el-descriptions-item>
<el-descriptions-item label="填报部门">
</template>
</details_item>
<details_item>
<template #label>填报部门</template>
<template #content>
{{ detailData.orgName }}
</el-descriptions-item>
<el-descriptions-item
:label="applyTitle + '报告'"
v-if="proviteData?.otherReport && proviteData?.otherReport.url"
>
</template>
</details_item>
<details_item v-if="proviteData?.otherReport && proviteData?.otherReport.url">
<template #label>{{ applyTitle + '报告' }}</template>
<template #content>
<el-icon><Link /></el-icon>
<a :href="proviteData?.otherReport.url">{{ proviteData?.otherReport.name }}</a>
</el-descriptions-item>
</el-descriptions>
</template>
</details_item>
</div>
</template>
<script lang="ts" setup>
import { onMounted, ref, reactive } from 'vue'
import { onMounted, ref, reactive, nextTick } from 'vue'
import { useRoute } from 'vue-router'
import { formatDate } from '@/utils/formatTime'
import { propTypes } from '@/utils/propTypes'
@@ -292,7 +391,7 @@ import { useDictData } from '@/stores/dictData'
import { getFileNameAndFilePath } from '@/api/system-boot/file'
import { Link } from '@element-plus/icons-vue'
import { userReportGoNetById } from '@/api/supervision-boot/interfere'
import details_item from './components/detailsItem.vue'
defineOptions({ name: 'BpmUserReportDetail' })
const { query } = useRoute() // 查询参数
@@ -355,8 +454,6 @@ const userStateList = reactive([
}
])
const dictData = useDictData()
//字典获取所属地市
const areaOptionList = dictData.getBasicData('jibei_area')
//字典获取敏感电能质量指标
const energyQualityIndexList = dictData.getBasicData('Indicator_Type')
//字典获取行业类型
@@ -366,7 +463,6 @@ const voltageLevelList = dictData.getBasicData('Dev_Voltage_Stand')
//字典评估类型
const evaluationTypeList = dictData.getBasicData('Evaluation_Type')
//字典预测评估单位
const evaluationDeptList = dictData.getBasicData('evaluation_dept')
/** 获得数据 */
const getInfo = async () => {
detailLoading.value = true
@@ -389,7 +485,6 @@ const getProviteData = async () => {
proviteData.value = detailData.value.userReportProjectPO
//查询非线性设备类型
await getDictTreeById(proviteData.value.nonlinearDeviceType).then(res => {
console.log(res, '==========')
proviteData.value.nonlinearDeviceType = res.data?.name
})
} else if (
@@ -401,14 +496,12 @@ const getProviteData = async () => {
proviteData.value = detailData.value.userReportSubstationPO
//查询非线性负荷类型
await getDictTreeById(proviteData.value.nonlinearLoadType).then(res => {
console.log(res, '==========')
proviteData.value.nonlinearLoadType = res.data?.name
})
} else {
proviteData.value = detailData.value.userReportSensitivePO
}
proviteData.value.otherReport = detailData.value.otherReport
console.log(proviteData.value, '++++++++++++proviteData.evaluationType')
//可研报告
if (proviteData.value.feasibilityReport) {
await getFileNamePath(proviteData.value.feasibilityReport, 'feasibilityReport')
@@ -461,7 +554,6 @@ const getProviteData = async () => {
//根据文件名请求
const getFileNamePath = async (val: any, pathName: any) => {
await getFileNameAndFilePath({ filePath: val }).then(res => {
console.log(111111111)
if (res.data && res.data.name && res.data.url) {
//可研报告
if (pathName == 'feasibilityReport' && proviteData.value.feasibilityReport) {
@@ -540,22 +632,22 @@ const getFileNamePath = async (val: any, pathName: any) => {
}
})
}
defineExpose({ open: getInfo }) // 提供 open 方法,用于打开弹窗
defineExpose({ open: getInfo }) // 提供 open 方法,用于打开弹窗
/** 初始化 **/
onMounted(() => {
getInfo()
})
</script>
<style lang="scss">
.default-main {
// height: calc(100vh - 100px);
overflow: auto;
}
::v-deep.el-icon svg {
margin: 5px !important;
position: absolute !important;
top: 20px !important;
}
.details {
width: 100%;
display: flex;
flex-wrap: wrap;
}
</style>

View File

@@ -1,35 +1,40 @@
<template>
<div>
<TableHeader ref='TableHeaderRef'>
<TableHeader ref="TableHeaderRef">
<template #select>
<el-form-item label='工程名称'>
<el-input v-model='tableStore.table.params.searchValue' clearable></el-input>
<el-form-item label="工程名称">
<el-input v-model="tableStore.table.params.projectName" clearable></el-input>
</el-form-item>
<el-form-item label='所属地市'>
<el-select v-model='tableStore.table.params.city' clearable placeholder='请选择所属地市'>
<el-form-item label="所属地市">
<el-select v-model="tableStore.table.params.city" clearable placeholder="请选择所属地市">
<el-option
v-for='item in areaOptionList'
:key='item.id'
:label='item.name'
:value='item.id'
v-for="item in areaOptionList"
:key="item.id"
:label="item.name"
:value="item.name"
></el-option>
</el-select>
</el-form-item>
</template>
<template #operation>
<el-button icon='el-icon-Download' type='primary'>导出</el-button>
<!-- <el-button icon='el-icon-Download' type='primary'>导出</el-button> -->
</template>
</TableHeader>
<Table ref='tableRef' />
<Table ref="tableRef" />
</div>
<el-dialog title='干扰源用户详细信息' v-model='dialogVisible' width='85%'>
<BpmUserReportDetail :id='interId' style='max-height: 600px'></BpmUserReportDetail>
<el-dialog
title="干扰源用户详细信息"
v-model="dialogVisible"
width="65%"
:append-to-body="true"
:close-on-click-modal="false"
draggable
>
<BpmUserReportDetail :id="interId" ref="detailsRef"></BpmUserReportDetail>
</el-dialog>
</template>
<script setup lang='ts'>
<script setup lang="ts">
defineOptions({
name: 'supervision/interferenceUserTable'
})
@@ -52,6 +57,7 @@ const tableStore = new TableStore({
method: 'POST',
column: [
{ title: '序号', type: 'seq', width: 80 },
{ field: 'city', title: '所属地市', minWidth: 80 },
{ field: 'projectName', title: '工程名称', minWidth: 170 },
{
field: 'userType',
@@ -62,8 +68,7 @@ const tableStore = new TableStore({
return getUserTypeName(userType)
}
},
{ field: 'city', title: '所属地市', minWidth: 80 },
{ field: 'responsibleDepartment', title: '归口管理部门', minWidth: 130 },
// { field: 'responsibleDepartment', title: '归口管理部门', minWidth: 130 },
{
field: 'userStatus',
title: '用户状态',
@@ -125,7 +130,6 @@ const tableStore = new TableStore({
render: 'basicButton',
click: row => {
toFangAn(row.id, 1)
}
}
]
@@ -133,10 +137,12 @@ const tableStore = new TableStore({
],
beforeSearchFun: () => {
tableStore.table.params.city = tableStore.table.params.deptIndex
tableStore.table.params.orgNo = tableStore.table.params.deptIndex
tableStore.table.params.relationUserName = tableStore.table.params.userName
}
})
tableStore.table.params.city = ''
tableStore.table.params.projectName = ''
tableStore.table.params.loadType = ''
tableStore.table.params.userName = ''
tableStore.table.params.relationUserName = ''
@@ -148,9 +154,10 @@ provide('tableStore', tableStore)
onMounted(() => {
tableStore.index()
})
const detailsRef = ref(null)
/** 打开弹窗 */
const open = async (id: string) => {
// detailsRef.value.open()
dialogVisible.value = true
interId.value = id
}
@@ -164,10 +171,8 @@ const toFangAn = (id: any, typeNo: number) => {
type: typeNo
}
})
}
/**获取用户性质*/
const getUserTypeName = (userType: any) => {
if (userType === 0) {

View File

@@ -1,17 +1,17 @@
<template>
<div>
<TableHeader ref='TableHeaderRef'>
<div class="default-main">
<!-- <TableHeader ref='TableHeaderRef'>
<template #select>
<el-form-item label='工程名称'>
<el-input v-model='tableStore.table.params.searchValue' clearable></el-input>
<el-input v-model='tableStore.table.params.projectName' clearable></el-input>
</el-form-item>
<el-form-item label='所属地市'>
<el-select v-model='tableStore.table.params.loadType' clearable placeholder='请选择所属地市'>
<el-select v-model='tableStore.table.params.city' clearable placeholder='请选择所属地市'>
<el-option
v-for='item in areaOptionList'
:key='item.id'
:label='item.name'
:value='item.id'
:value='item.name'
></el-option>
</el-select>
</el-form-item>
@@ -21,16 +21,26 @@
<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' :bussType='bussType' :title='titleButton' openType = 'detail' ></addForm>
</TableHeader> -->
<div class="header_btn">
<el-button icon="" type="primary" @click="toGoNet()">{{ titleButton }}</el-button>
<el-button style="margin-left: 50px" :icon="Back" @click="go(-1)">返回</el-button>
</div>
<Table ref="tableRef" />
<addForm
v-if="dialogVisible"
ref="addForms"
:id="bussId"
:bussType="bussType"
:title="titleButton"
openType="detail"
@onSubmit="tableStore.index()"
></addForm>
</div>
</template>
<script setup lang='ts'>
<script setup lang="ts">
defineOptions({
name: 'ProgramReview'
})
@@ -128,8 +138,12 @@ const tableStore = new TableStore({
beforeSearchFun: () => {
tableStore.table.params.userReportId = bussId.value
tableStore.table.params.type = bussType.value
tableStore.table.params.orgNo = tableStore.table.params.deptIndex
tableStore.table.params.relationUserName = tableStore.table.params.userName
}
})
tableStore.table.params.city = ''
tableStore.table.params.projectName = ''
const dialogVisible = ref(false)
const bussId = ref()
@@ -148,10 +162,8 @@ if(bussType.value === 0){
provide('tableStore', tableStore)
onMounted(() => {
tableStore.index()
})
/** 处理审批按钮 */
const handleAudit = (instanceId: any) => {
push({
@@ -167,7 +179,7 @@ const toGoNet=() => {
dialogVisible.value = true
setTimeout(() => {
addForms.value.open()
}, 0);
}, 0)
}
/**获取用户性质*/
@@ -196,3 +208,14 @@ const getUserTypeName = (userType: any) => {
return '新建电网工程'
}
</script>
<style scoped lang="scss">
.header_btn {
width: 100%;
height: 60px;
display: flex;
padding:13px 15px;
justify-content: flex-end;
align-items: center;
border:1px solid #DDDFE6;
}
</style>

View File

@@ -239,7 +239,7 @@
<el-icon>
<Link />
</el-icon>
<a :href="proviteData?.substationMainWiringDiagram.url">
<a :href="proviteData?.substationMainWiringDiagram.url" target="_blank">
{{ proviteData?.substationMainWiringDiagram.name }}
</a>
</el-descriptions-item>
@@ -268,13 +268,13 @@
<el-icon>
<Link />
</el-icon>
<a :href="proviteData?.additionalAttachments.url">{{ proviteData?.additionalAttachments.name }}</a>
<a :href="proviteData?.additionalAttachments.url" target="_blank">{{ proviteData?.additionalAttachments.name }}</a>
</el-descriptions-item>
</el-descriptions>
</div>
</template>
<script lang="ts" setup>
import { onMounted, ref, reactive } from 'vue'
import { onMounted, ref, reactive, watch } from 'vue'
import { useRoute } from 'vue-router'
import { formatDate } from '@/utils/formatTime'
import { propTypes } from '@/utils/propTypes'
@@ -359,6 +359,7 @@ const evaluationTypeList = dictData.getBasicData('Evaluation_Type')
const evaluationDeptList = dictData.getBasicData('evaluation_dept')
/** 获得数据 */
const getInfo = async () => {
console.log(666666666, '加载了')
detailLoading.value = true
try {
await getUserReportById(props.id || queryId).then(res => {
@@ -443,7 +444,6 @@ const getProviteData = async () => {
//根据文件名请求
const getFileNamePath = async (val: any, pathName: any) => {
await getFileNameAndFilePath({ filePath: val }).then(res => {
console.log(111111111)
if (res.data && res.data.name && res.data.url) {
//可研报告
if (pathName == 'feasibilityReport' && proviteData.value.feasibilityReport) {
@@ -516,6 +516,12 @@ const getFileNamePath = async (val: any, pathName: any) => {
}
defineExpose({ open: getInfo }) // 提供 open 方法,用于打开弹窗
watch(
() => props.id,
(val, oldVal) => {
val && getInfo()
}
)
/** 初始化 **/
onMounted(() => {
getInfo()
@@ -532,4 +538,12 @@ onMounted(() => {
position: absolute !important;
top: 20px !important;
}
.el-icon{
float: left;
}
a{
display: block;
width: 200px;
float: left;
}
</style>