干扰源接入问题修改

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位置 //修改上传文件filelist位置
.uploadFile { .uploadFile {
::v-deep .el-form-item__content { .el-form-item__content {
line-height: 20px !important; line-height: 20px !important;
div { div {
display: flex !important; display: flex !important;
align-items: center !important; align-items: center !important;
} }
.el-upload-list__item-name { .el-upload-list__item-name {
width: 130px !important; width: 120px !important;
} }
.el-upload-list--text { .el-upload-list--text {
margin: 0px 20px 0 !important; margin: 0px 20px 0 !important;

View File

@@ -1,242 +1,185 @@
<template> <template>
<el-dialog <el-dialog
v-model='dialogFormVisible' v-model="dialogFormVisible"
:title=titleButton :title="titleButton"
width='70%' width="65%"
:append-to-body="true"
:append-to-body='true' :before-close="close"
:before-close='close' :close-on-click-modal="false"
:close-on-click-modal='false'
draggable draggable
> >
<!-- 用户档案录入 新建1 --> <!-- 用户档案录入 新建1 -->
<el-form <el-form
:model='form' :model="form"
class='“form-two”' :validate-on-rule-change="false"
:validate-on-rule-change='false' :scroll-to-error="true"
:scroll-to-error='true' ref="ruleFormRef"
ref='ruleFormRef' label-width="auto"
label-width='120px' class="form-two"
> >
<el-divider content-position="left">干扰源用户基本信息</el-divider> <el-divider content-position="left">干扰源用户基本信息</el-divider>
<el-row style='margin-top: 25px'> <el-form-item label="用户性质:" prop="userType">
<el-col :span='12'> <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 <el-option
v-for='(item, index) in userTypeList' v-for="(item, index) in userTypeList"
:label='item.label' :label="item.label"
:value='item.value' :value="item.value"
:key='index' :key="index"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> <el-form-item label="所属地市:" prop="city">
<el-col :span='12'> <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 <el-option
v-for='item in areaOptionList' v-for="item in areaOptionList"
:key='item.id' :key="item.id"
:label='item.name' :label="item.name"
:value='item.name' :value="item.name"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> <el-form-item label="归口管理部门:" prop="responsibleDepartment">
</el-row>
<el-row>
<el-col :span='12'>
<el-form-item label='归口管理部门:' prop='responsibleDepartment'>
<el-input <el-input
v-model='form.responsibleDepartment' v-model="form.responsibleDepartment"
autocomplete='off' autocomplete="off"
placeholder='请输入归口管理部门' placeholder="请输入归口管理部门"
:disabled="openType == 'detail'" :disabled="openType == 'detail'"
/> />
</el-form-item> </el-form-item>
</el-col> <el-form-item label="工程名称:" prop="projectName">
<el-col :span='12'>
<el-form-item label='工程名称:' prop='projectName'>
<el-input <el-input
v-model='form.projectName' v-model="form.projectName"
autocomplete='off' autocomplete="off"
placeholder='请输入工程名称' placeholder="请输入工程名称"
:disabled="openType == 'detail'" :disabled="openType == 'detail'"
/> />
</el-form-item> </el-form-item>
</el-col> <el-form-item label="用户状态:" prop="userStatus">
</el-row> <el-select v-model="form.userStatus" placeholder="请选择用户状态" :disabled="openType == 'detail'">
<el-row>
<el-col :span='12'>
<el-form-item label='用户状态:' prop='userStatus'>
<el-select
v-model='form.userStatus'
placeholder='请选择用户状态'
:disabled="openType == 'detail'"
>
<el-option <el-option
v-for='(item, index) in userStateList' v-for="(item, index) in userStateList"
:label='item.label' :label="item.label"
:value='item.value' :value="item.value"
:disabled="item.label != '可研'" :disabled="item.label != '可研'"
:key='index' :key="index"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> <el-form-item label="变电站:" prop="substation">
<el-col :span='12'>
<el-form-item label='变电站:' prop='substation'>
<el-input <el-input
v-model='form.substation' v-model="form.substation"
autocomplete='off' autocomplete="off"
placeholder='请输入变电站' placeholder="请输入变电站"
:disabled="openType == 'detail'" :disabled="openType == 'detail'"
/> />
</el-form-item> </el-form-item>
</el-col> <el-form-item v-if="form.userType == '0' || form.userType == '1'" label="电压等级:" prop="voltageLevel">
</el-row>
<el-row v-if="form.userType == '0' || form.userType == '1'">
<el-col :span='12'>
<el-form-item label='电压等级:' prop='voltageLevel'>
<el-select <el-select
v-model='form.voltageLevel' v-model="form.voltageLevel"
placeholder='请选择电压等级' placeholder="请选择电压等级"
node-key='id' node-key="id"
:disabled="openType == 'detail'" :disabled="openType == 'detail'"
> >
<el-option <el-option
v-for='(item, index) in voltageLevelList' v-for="(item, index) in voltageLevelList"
:label='item.name' :label="item.name"
:value='item.id' :value="item.id"
:key='index' :key="index"
/> />
</el-select> </el-select>
</el-form-item> </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 <el-form-item
label='是否开展背景测试:' v-if="form.userType == '0' || form.userType == '1'"
label="预测评估单位:"
prop='backgroundTestPerformed' prop="evaluationDept"
class='label_over_warp'
> >
<el-radio-group v-model='form.backgroundTestPerformed' :disabled="openType == 'detail'"> <el-select
<el-radio :value='1'></el-radio> v-model="form.evaluationDept"
<el-radio :value='0'></el-radio> 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-radio-group>
</el-form-item> </el-form-item>
</el-col> <el-form-item
</el-row> v-if="form.userReportSubstationPO"
label="是否开展背景测试:"
prop="backgroundTestPerformed"
>
<el-divider content-position="left">{{bussType == 0?'入网设计方案审查报告':'治理工程验收报告'}}</el-divider> <el-radio-group
<el-row style='margin-top: 25px'> v-model="form.userReportSubstationPO.backgroundTestPerformed"
<el-col :span='12'> :disabled="openType == 'detail'"
<el-form-item label='填报人:' prop='reporter'> >
<el-input <el-radio :value="1"></el-radio>
v-model='form.reporter' <el-radio :value="0"></el-radio>
autocomplete='off' </el-radio-group>
:disabled='true'
place-holder='请输入填报人'
/>
</el-form-item> </el-form-item>
</el-col> <el-divider content-position="left">
<el-col :span='12'> {{ bussType == 0 ? '入网设计方案审查报告' : '治理工程验收报告' }}
<el-form-item label='填报日期:' prop='reportDate'> </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 <el-date-picker
:disabled='true' :disabled="true"
style='width: 100%' style="width: 100%"
v-model='form.reportDate' v-model="form.reportDate"
type='date' type="date"
placeholder='请选择填报日期' placeholder="请选择填报日期"
/> />
</el-form-item> </el-form-item>
</el-col> <el-form-item label="填报部门:" prop="orgId">
</el-row> <el-input v-model="form.orgId" :disabled="true" autocomplete="off" />
<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-form-item>
</el-col> <el-form-item
class="uploadFile"
</el-row> :label="bussType == 0 ? '入网设计方案审查报告:' : '治理工程验收报告:'"
<el-row> prop="goToNetReport"
<el-col :span='12' class='required_position'> >
<span class='required_icon'>*</span>
<el-form-item :label="bussType == 0?'入网设计方案审查报告':'治理工程验收报告'" prop='goToNetReport'>
<el-upload <el-upload
v-model:file-list='form.goToNetReport' v-model:file-list="form.goToNetReport"
ref='uploadRef' ref="uploadRef"
action='' action=""
accept='.doc,.docx,.xlsx,.xls,.pdf' accept=".doc,.docx,.xlsx,.xls,.pdf"
:limit='1' :limit="1"
:on-exceed='handleExceed' :on-exceed="handleExceed"
:on-change='choose' :on-change="choose"
:auto-upload='false' :auto-upload="false"
> >
<template #trigger> <template #trigger>
<el-button type='primary'>上传文件</el-button> <el-button type="primary">上传文件</el-button>
</template> </template>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<template #footer> <template #footer>
<div class='dialog-footer'> <div class="dialog-footer">
<el-button @click='close()'>取消</el-button> <el-button @click="close()">取消</el-button>
<el-button type='primary' @click='confirmForm()'>确定</el-button> <el-button type="primary" @click="confirmForm()">确定</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<script lang='ts' setup> <script lang="ts" setup>
import { ref, onMounted, reactive, defineExpose, defineProps, defineEmits, watch, onUnmounted } from 'vue' import { ref, reactive, defineExpose, defineProps, defineEmits } from 'vue'
import type { UploadProps, UploadRawFile } from 'element-plus'
import type { UploadInstance, UploadProps, UploadRawFile } from 'element-plus'
import { genFileId, ElMessage } from 'element-plus' import { genFileId, ElMessage } from 'element-plus'
import { useDictData } from '@/stores/dictData' import { useDictData } from '@/stores/dictData'
import type { ComponentSize, FormInstance, FormRules } from 'element-plus'
import { useAdminInfo } from '@/stores/adminInfo' import { useAdminInfo } from '@/stores/adminInfo'
import { getDictTreeById, queryByAllCode } from '@/api/system-boot/dictTree'
import { uploadFile } from '@/api/system-boot/file' 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' import { getUserReportById } from '@/api/supervision-boot/userReport/form'
const props = defineProps({ const props = defineProps({
@@ -262,14 +205,8 @@ const form: any = ref({})
const ruleFormRef: any = ref(null) const ruleFormRef: any = ref(null)
//字典获取所属地市 //字典获取所属地市
const areaOptionList = dictData.getBasicData('jibei_area') 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 voltageLevelList = dictData.getBasicData('Dev_Voltage_Stand')
//字典评估类型
const evaluationTypeList = dictData.getBasicData('Evaluation_Type')
//字典预测评估单位 //字典预测评估单位
const evaluationDeptList = dictData.getBasicData('evaluation_dept') const evaluationDeptList = dictData.getBasicData('evaluation_dept')
@@ -323,57 +260,24 @@ const userStateList = reactive([
value: 3 value: 3
} }
]) ])
//获取非线性设备类型树形下拉
const defaultProps = {
children: 'children',
label: 'name',
key: 'id'
}
const nonlinearDeviceTypeList: any = ref('')
//获取登陆用户姓名和部门 //获取登陆用户姓名和部门
const adminInfo = useAdminInfo() const adminInfo = useAdminInfo()
const resetForm = () => { const resetForm = () => {
form.value = { form.value = {
reporter: '', //填报人 1 reporter: '', //填报人
reportDate: new Date(), //填报日期 1 reportDate: new Date(), //填报日期
orgId: '', //填报部门 1 orgId: '', //填报部门
expectedProductionDate: '', //工程预期投产日期 1 goToNetReport:[],//报告
userType: 0, //用户性质 1 userType: 0, //用户性质
city: areaOptionList[0].name, //所属地市 1 city: areaOptionList[0].name, //所属地市
responsibleDepartment: '', //归口管理部门 1 responsibleDepartment: '', //归口管理部门
userStatus: userStateList[0].value, //用户状态 1 projectName: '', //工程名称
projectName: '', //工程名称 1 userStatus: userStateList[0].value, //用户状态
substation: '', //变电站 1 substation: '', //变电站
voltageLevel: voltageLevelList[0].id, //电压等级 1 backgroundTestPerformed: 0, //是否开展背景测试
evaluationDept: evaluationDeptList[0].name, //预测评估单位 1 antiInterferenceTest: 0, //是否开展抗扰度测试
evaluationConclusion: '', //预测评估结论 1 voltageLevel: voltageLevelList[0].id, //电压等级
backgroundTestPerformed: 0, //是否开展背景测试 1 evaluationDept: evaluationDeptList[0].name, //预测评估单位
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.reporter = adminInfo.$state.name
form.value.orgId = adminInfo.$state.deptName form.value.orgId = adminInfo.$state.deptName
@@ -398,11 +302,11 @@ const getInfo = async () => {
const treeRef = ref()
const open = () => { const open = () => {
dialogFormVisible.value = true dialogFormVisible.value = true
resetForm()
getInfo()
} }
const close = () => { const close = () => {
@@ -411,9 +315,7 @@ const close = () => {
dialogFormVisible.value = false dialogFormVisible.value = false
} }
onMounted(() => {
getInfo()
})
// 上传报告 // 上传报告
@@ -425,12 +327,12 @@ const handleExceed: UploadProps['onExceed'] = files => {
uploadRef.value!.handleStart(file) uploadRef.value!.handleStart(file)
} }
// 可研报告数组 // 治理工程验收报告数组
const goToNetReport = ref('') const goToNetReport = ref('')
const choose = (e: any) => { const choose = (e: any) => {
uploadFile(e.raw, '/supervision/').then(res => { uploadFile(e.raw, '/supervision/').then(res => {
//可研报告 //治理工程验收报告
goToNetReport.value = res.data.name goToNetReport.value = res.data.name
}) })
} }
@@ -443,9 +345,7 @@ const confirmForm = () => {
message: '请上传报告', message: '请上传报告',
type: 'warning' type: 'warning'
}) })
return;
} }
let data = { let data = {
type: props.bussType, type: props.bussType,
userReportId: props.id, userReportId: props.id,
@@ -453,76 +353,14 @@ const confirmForm = () => {
} }
submitGoNet(data).then((res:any) => { submitGoNet(data).then((res:any) => {
if(res.code==='A0000'){ if(res.code==='A0000'){
return ElMessage({ ElMessage({
message: '新建流程成功', message: '新建流程成功',
type: 'success' type: 'success'
}) })
emits("onSubmit")
close() close()
getInfo()
} }
}) })
} }
defineExpose({ open }) defineExpose({ open })
</script> </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> <template>
<div> <div class="details">
<el-divider style="" content-position="left">干扰源用户信息</el-divider> <el-divider content-position="left">干扰源用户信息</el-divider>
<el-descriptions :column="2" border> <details_item>
<el-descriptions-item label="工程预期投产日期"> <template #label>工程预期投产日期</template>
{{ formatDate(detailData.expectedProductionDate, 'YYYY-MM-DD') }} <template #content>{{ formatDate(detailData.expectedProductionDate, 'YYYY-MM-DD') }}</template>
</el-descriptions-item> </details_item>
<el-descriptions-item label="用户性质"> <details_item>
<template #label>用户性质</template>
<template #content>
{{ {{
userTypeList.find(item => { userTypeList.find(item => {
return item.value == detailData.userType return item.value == detailData.userType
})?.label })?.label
}} }}
</el-descriptions-item> </template>
<el-descriptions-item label="所属地市"> </details_item>
<details_item>
<template #label>所属地市</template>
<template #content>
{{ detailData.city }} {{ detailData.city }}
</el-descriptions-item> </template>
<el-descriptions-item label="归口管理部门"> </details_item>
<details_item>
<template #label>归口管理部门</template>
<template #content>
{{ detailData.responsibleDepartment }} {{ detailData.responsibleDepartment }}
</el-descriptions-item> </template>
<el-descriptions-item label="用户状态"> </details_item>
<details_item>
<template #label>用户状态</template>
<template #content>
{{ {{
userStateList.find(item => { userStateList.find(item => {
return item.value == detailData.userStatus return item.value == detailData.userStatus
})?.label })?.label
}} }}
</el-descriptions-item> </template>
<el-descriptions-item label="变电站"> </details_item>
<details_item>
<template #label>变电站</template>
<template #content>
{{ detailData.substation }} {{ detailData.substation }}
</el-descriptions-item> </template>
<el-descriptions-item label="工程名"> </details_item>
<details_item>
<template #label>工程名</template>
<template #content>
{{ detailData.projectName }} {{ detailData.projectName }}
</el-descriptions-item> </template>
<el-descriptions-item label="用户协议容量" v-if="detailData.userType == 0 || detailData.userType == 1"> </details_item>
<details_item v-if="detailData.userType == 0 || detailData.userType == 1">
<template #label>用户协议容量</template>
<template #content>
{{ proviteData.agreementCapacity }} {{ proviteData.agreementCapacity }}
</el-descriptions-item> </template>
<el-descriptions-item label="电压等级"> </details_item>
<details_item>
<template #label>电压等级</template>
<template #content>
{{ {{
voltageLevelList.find(item => { voltageLevelList.find(item => {
return item.id == detailData.voltageLevel return item.id == detailData.voltageLevel
})?.name })?.name
}} }}
</el-descriptions-item> </template>
<el-descriptions-item label="非线性设备类型" v-if="detailData.userType == 0 || detailData.userType == 1"> </details_item>
<details_item v-if="detailData.userType == 0 || detailData.userType == 1">
<template #label>非线性设备类型</template>
<template #content>
{{ proviteData.nonlinearDeviceType ? proviteData.nonlinearDeviceType : '-' }} {{ proviteData.nonlinearDeviceType ? proviteData.nonlinearDeviceType : '-' }}
</el-descriptions-item> </template>
<el-descriptions-item label="预测评估单位"> </details_item>
<details_item>
<template #label>预测评估单位</template>
<template #content>
{{ detailData.evaluationDept }} {{ detailData.evaluationDept }}
</el-descriptions-item> </template>
<el-descriptions-item label="预测评估结论"> </details_item>
<details_item>
<template #label>预测评估结论</template>
<template #content>
{{ detailData.evaluationConclusion }} {{ detailData.evaluationConclusion }}
</el-descriptions-item> </template>
<el-descriptions-item </details_item>
label="非线性负荷类型" <details_item
v-if=" v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
@@ -59,9 +91,14 @@
detailData.userType == '5' detailData.userType == '5'
" "
> >
<template #label>非线性负荷类型</template>
<template #content>
{{ proviteData.nonlinearLoadType }} {{ proviteData.nonlinearLoadType }}
</el-descriptions-item> </template>
<el-descriptions-item label="是否需要治理"> </details_item>
<details_item>
<template #label>是否需要治理</template>
<template #content>
<span v-if="detailData.userType == 0 || detailData.userType == 1"> <span v-if="detailData.userType == 0 || detailData.userType == 1">
{{ proviteData.needGovernance == 0 ? '否' : '是' }} {{ proviteData.needGovernance == 0 ? '否' : '是' }}
</span> </span>
@@ -76,8 +113,11 @@
{{ proviteData.needGovernance == 0 ? '否' : '是' }} {{ proviteData.needGovernance == 0 ? '否' : '是' }}
</span> </span>
<span v-if="detailData.userType == 6">{{ proviteData.needGovernance == 0 ? '否' : '是' }}</span> <span v-if="detailData.userType == 6">{{ proviteData.needGovernance == 0 ? '否' : '是' }}</span>
</el-descriptions-item> </template>
<el-descriptions-item label="是否开展背景测试"> </details_item>
<details_item>
<template #label>是否开展背景测试</template>
<template #content>
<span v-if="detailData.userType == 0 || detailData.userType == 1"> <span v-if="detailData.userType == 0 || detailData.userType == 1">
{{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }} {{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }}
</span> </span>
@@ -94,18 +134,21 @@
<span v-if="detailData.userType == 6"> <span v-if="detailData.userType == 6">
{{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }} {{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }}
</span> </span>
</el-descriptions-item> </template>
<el-descriptions-item label="是否开展抗扰度测试" v-if="detailData.userType == 6"> </details_item>
<span> <details_item v-if="detailData.userType == 6">
<template #label>是否开展抗扰度测试</template>
<template #content>
{{ proviteData.antiInterferenceTest == 0 ? '否' : '是' }} {{ proviteData.antiInterferenceTest == 0 ? '否' : '是' }}
</span> </template>
</el-descriptions-item> </details_item>
<details_item v-if="detailData.userType != 0 && detailData.userType != 1">
<el-descriptions-item label="PCC点" v-if="detailData.userType != 0 && detailData.userType != 1"> <template #label>PCC点</template>
<template #content>
{{ proviteData?.pccPoint }} {{ proviteData?.pccPoint }}
</el-descriptions-item> </template>
<el-descriptions-item </details_item>
label="PCC供电设备容量" <details_item
v-if=" v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
@@ -113,10 +156,12 @@
detailData.userType == '5' detailData.userType == '5'
" "
> >
<template #label>PCC供电设备容量</template>
<template #content>
{{ proviteData.pccEquipmentCapacity }} {{ proviteData.pccEquipmentCapacity }}
</el-descriptions-item> </template>
<el-descriptions-item </details_item>
label="基准短路容量" <details_item
v-if=" v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
@@ -124,21 +169,28 @@
detailData.userType == '5' detailData.userType == '5'
" "
> >
<template #label>基准短路容量</template>
<template #content>
{{ proviteData.baseShortCircuitCapacity }} {{ proviteData.baseShortCircuitCapacity }}
</el-descriptions-item> </template>
{{ proviteData }} </details_item>
<el-descriptions-item label="评估类型" v-if="detailData.userType != 0 && detailData.userType != 1"> <details_item v-if="detailData.userType != 0 && detailData.userType != 1">
<template #label>评估类型</template>
<template #content>
{{ {{
evaluationTypeList.find(item => { evaluationTypeList.find(item => {
return item.id == proviteData?.evaluationType return item.id == proviteData?.evaluationType
})?.name })?.name
}} }}
</el-descriptions-item> </template>
<el-descriptions-item label="预测评估评审单位" v-if="detailData.userType != 0 && detailData.userType != 1"> </details_item>
<details_item v-if="detailData.userType != 0 && detailData.userType != 1">
<template #label>预测评估评审单位</template>
<template #content>
{{ proviteData?.evaluationChekDept }} {{ proviteData?.evaluationChekDept }}
</el-descriptions-item> </template>
<el-descriptions-item </details_item>
label="系统最小短路容量" <details_item
v-if=" v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
@@ -146,10 +198,12 @@
detailData.userType == '5' detailData.userType == '5'
" "
> >
<template #label>系统最小短路容量</template>
<template #content>
{{ proviteData?.minShortCircuitCapacity }} {{ proviteData?.minShortCircuitCapacity }}
</el-descriptions-item> </template>
<el-descriptions-item </details_item>
label="用户用电协议容量" <details_item
v-if=" v-if="
detailData.userType == '2' || detailData.userType == '2' ||
detailData.userType == '3' || detailData.userType == '3' ||
@@ -157,29 +211,46 @@
detailData.userType == '5' detailData.userType == '5'
" "
> >
<template #label>用户用电协议容量</template>
<template #content>
{{ proviteData?.userAgreementCapacity }} {{ proviteData?.userAgreementCapacity }}
</el-descriptions-item> </template>
<el-descriptions-item label="行业" v-if="detailData.userType == 6"> </details_item>
<details_item v-if="detailData.userType == 6">
<template #label>行业</template>
<template #content>
{{ {{
industryList.find(item => { industryList.find(item => {
return item.id == proviteData.industry return item.id == proviteData.industry
})?.name })?.name
}} }}
</el-descriptions-item> </template>
<el-descriptions-item label="敏感装置名称" v-if="detailData.userType == 6"> </details_item>
<details_item v-if="detailData.userType == 6">
<template #label>敏感装置名称</template>
<template #content>
{{ proviteData.deviceName }} {{ proviteData.deviceName }}
</el-descriptions-item> </template>
<el-descriptions-item label="供电电源数量" v-if="detailData.userType == 6"> </details_item>
<details_item v-if="detailData.userType == 6">
<template #label>供电电源数量</template>
<template #content>
{{ proviteData.powerSupplyCount }} {{ proviteData.powerSupplyCount }}
</el-descriptions-item> </template>
<el-descriptions-item label="敏感电能质量指标" v-if="detailData.userType == 6"> </details_item>
<details_item v-if="detailData.userType == 6">
<template #label>敏感电能质量指标</template>
<template #content>
{{ {{
energyQualityIndexList.find(item => { energyQualityIndexList.find(item => {
return item.id == proviteData.energyQualityIndex return item.id == proviteData.energyQualityIndex
})?.name })?.name
}} }}
</el-descriptions-item> </template>
<el-descriptions-item label="可研报告"> </details_item>
<details_item>
<template #label>可研报告</template>
<template #content>
<span v-if="detailData.userType == 0 || detailData.userType == 1"> <span v-if="detailData.userType == 0 || detailData.userType == 1">
<el-icon><Link /></el-icon> <el-icon><Link /></el-icon>
<a :href="proviteData.feasibilityReport.url">{{ proviteData.feasibilityReport.name }}</a> <a :href="proviteData.feasibilityReport.url">{{ proviteData.feasibilityReport.name }}</a>
@@ -199,90 +270,118 @@
<el-icon><Link /></el-icon> <el-icon><Link /></el-icon>
<a :href="proviteData.feasibilityReport.url">{{ proviteData.feasibilityReport.name }}</a> <a :href="proviteData.feasibilityReport.url">{{ proviteData.feasibilityReport.name }}</a>
</span> </span>
</el-descriptions-item> </template>
<el-descriptions-item label="项目初步设计说明书"> </details_item>
<details_item>
<template #label>项目初步设计说明书</template>
<template #content>
<el-icon> <el-icon>
<Link /> <Link />
</el-icon> </el-icon>
<a :href="proviteData?.preliminaryDesignDescription.url"> <a :href="proviteData?.preliminaryDesignDescription.url">
{{ proviteData?.preliminaryDesignDescription.name }} {{ proviteData?.preliminaryDesignDescription.name }}
</a> </a>
</el-descriptions-item> </template>
<el-descriptions-item label="预测评估报告"> </details_item>
<details_item>
<template #label>预测评估报告</template>
<template #content>
<el-icon> <el-icon>
<Link /> <Link />
</el-icon> </el-icon>
<a :href="proviteData?.predictionEvaluationReport.url"> <a :href="proviteData?.predictionEvaluationReport.url">
{{ proviteData?.predictionEvaluationReport.name }} {{ proviteData?.predictionEvaluationReport.name }}
</a> </a>
</el-descriptions-item> </template>
<el-descriptions-item label="预测评估评审意见报告"> </details_item>
<details_item>
<template #label>预测评估评审意见报告</template>
<template #content>
<el-icon> <el-icon>
<Link /> <Link />
</el-icon> </el-icon>
<a :href="proviteData?.predictionEvaluationReviewOpinions.url"> <a :href="proviteData?.predictionEvaluationReviewOpinions.url">
{{ proviteData?.predictionEvaluationReviewOpinions.name }} {{ proviteData?.predictionEvaluationReviewOpinions.name }}
</a> </a>
</el-descriptions-item> </template>
<el-descriptions-item </details_item>
label="用户接入变电站主接线示意图" <details_item v-if="detailData.userType != 0 && detailData.userType != 1">
v-if="detailData.userType != 0 && detailData.userType != 1" <template #label>用户接入变电站主接线示意图</template>
> <template #content>
<el-icon> <el-icon>
<Link /> <Link />
</el-icon> </el-icon>
<a :href="proviteData?.substationMainWiringDiagram.url"> <a :href="proviteData?.substationMainWiringDiagram.url" target="_blank">
{{ proviteData?.substationMainWiringDiagram.name }} {{ proviteData?.substationMainWiringDiagram.name }}
</a> </a>
</el-descriptions-item> </template>
<el-descriptions-item label="主要敏感设备清单" v-if="detailData.userType == 6"> </details_item>
<details_item v-if="detailData.userType == 6">
<template #label>主要敏感设备清单</template>
<template #content>
<el-icon> <el-icon>
<Link /> <Link />
</el-icon> </el-icon>
<a :href="proviteData?.sensitiveDevices.url">{{ proviteData?.sensitiveDevices.name }}</a> <a :href="proviteData?.sensitiveDevices.url">{{ proviteData?.sensitiveDevices.name }}</a>
</el-descriptions-item> </template>
<el-descriptions-item label="抗扰度测试报告" v-if="detailData.userType == 6"> </details_item>
<details_item v-if="detailData.userType == 6">
<template #label>抗扰度测试报告</template>
<template #content>
<el-icon> <el-icon>
<Link /> <Link />
</el-icon> </el-icon>
<a :href="proviteData?.antiInterferenceReport.url">{{ proviteData?.antiInterferenceReport.name }}</a> <a :href="proviteData?.antiInterferenceReport.url">{{ proviteData?.antiInterferenceReport.name }}</a>
</el-descriptions-item> </template>
<el-descriptions-item label="背景电能质量测试报告" v-if="detailData.userType == 6"> </details_item>
<details_item v-if="detailData.userType == 6">
<template #label>背景电能质量测试报告</template>
<template #content>
<el-icon> <el-icon>
<Link /> <Link />
</el-icon> </el-icon>
<a :href="proviteData?.powerQualityReport.url">{{ proviteData?.powerQualityReport.name }}</a> <a :href="proviteData?.powerQualityReport.url">{{ proviteData?.powerQualityReport.name }}</a>
</el-descriptions-item> </template>
<el-descriptions-item label="其他附件"> </details_item>
<details_item v-if="proviteData?.additionalAttachments.url">
<template #label>其他附件</template>
<template #content>
<el-icon> <el-icon>
<Link /> <Link />
</el-icon> </el-icon>
<a :href="proviteData?.additionalAttachments.url">{{ proviteData?.additionalAttachments.name }}</a> <a :href="proviteData?.additionalAttachments.url">{{ proviteData?.additionalAttachments.name }}</a>
</el-descriptions-item> </template>
</el-descriptions> </details_item>
<el-divider content-position="left">{{ applyTitle + '填报信息' }}</el-divider> <el-divider content-position="left">{{ applyTitle + '填报信息' }}</el-divider>
<el-descriptions :column="2" border> <details_item>
<el-descriptions-item label="填报人"> <template #label>填报人</template>
<template #content>
{{ detailData.reporter }} {{ detailData.reporter }}
</el-descriptions-item> </template>
<el-descriptions-item label="填报日期"> </details_item>
<details_item>
<template #label>填报日期</template>
<template #content>
{{ formatDate(detailData.reportDate, 'YYYY-MM-DD') }} {{ formatDate(detailData.reportDate, 'YYYY-MM-DD') }}
</el-descriptions-item> </template>
<el-descriptions-item label="填报部门"> </details_item>
<details_item>
<template #label>填报部门</template>
<template #content>
{{ detailData.orgName }} {{ detailData.orgName }}
</el-descriptions-item> </template>
<el-descriptions-item </details_item>
:label="applyTitle + '报告'" <details_item v-if="proviteData?.otherReport && proviteData?.otherReport.url">
v-if="proviteData?.otherReport && proviteData?.otherReport.url" <template #label>{{ applyTitle + '报告' }}</template>
> <template #content>
<el-icon><Link /></el-icon> <el-icon><Link /></el-icon>
<a :href="proviteData?.otherReport.url">{{ proviteData?.otherReport.name }}</a> <a :href="proviteData?.otherReport.url">{{ proviteData?.otherReport.name }}</a>
</el-descriptions-item> </template>
</el-descriptions> </details_item>
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref, reactive } from 'vue' import { onMounted, ref, reactive, nextTick } from 'vue'
import { useRoute } from 'vue-router' import { useRoute } from 'vue-router'
import { formatDate } from '@/utils/formatTime' import { formatDate } from '@/utils/formatTime'
import { propTypes } from '@/utils/propTypes' import { propTypes } from '@/utils/propTypes'
@@ -292,7 +391,7 @@ import { useDictData } from '@/stores/dictData'
import { getFileNameAndFilePath } from '@/api/system-boot/file' import { getFileNameAndFilePath } from '@/api/system-boot/file'
import { Link } from '@element-plus/icons-vue' import { Link } from '@element-plus/icons-vue'
import { userReportGoNetById } from '@/api/supervision-boot/interfere' import { userReportGoNetById } from '@/api/supervision-boot/interfere'
import details_item from './components/detailsItem.vue'
defineOptions({ name: 'BpmUserReportDetail' }) defineOptions({ name: 'BpmUserReportDetail' })
const { query } = useRoute() // 查询参数 const { query } = useRoute() // 查询参数
@@ -355,8 +454,6 @@ const userStateList = reactive([
} }
]) ])
const dictData = useDictData() const dictData = useDictData()
//字典获取所属地市
const areaOptionList = dictData.getBasicData('jibei_area')
//字典获取敏感电能质量指标 //字典获取敏感电能质量指标
const energyQualityIndexList = dictData.getBasicData('Indicator_Type') const energyQualityIndexList = dictData.getBasicData('Indicator_Type')
//字典获取行业类型 //字典获取行业类型
@@ -366,7 +463,6 @@ const voltageLevelList = dictData.getBasicData('Dev_Voltage_Stand')
//字典评估类型 //字典评估类型
const evaluationTypeList = dictData.getBasicData('Evaluation_Type') const evaluationTypeList = dictData.getBasicData('Evaluation_Type')
//字典预测评估单位 //字典预测评估单位
const evaluationDeptList = dictData.getBasicData('evaluation_dept')
/** 获得数据 */ /** 获得数据 */
const getInfo = async () => { const getInfo = async () => {
detailLoading.value = true detailLoading.value = true
@@ -389,7 +485,6 @@ const getProviteData = async () => {
proviteData.value = detailData.value.userReportProjectPO proviteData.value = detailData.value.userReportProjectPO
//查询非线性设备类型 //查询非线性设备类型
await getDictTreeById(proviteData.value.nonlinearDeviceType).then(res => { await getDictTreeById(proviteData.value.nonlinearDeviceType).then(res => {
console.log(res, '==========')
proviteData.value.nonlinearDeviceType = res.data?.name proviteData.value.nonlinearDeviceType = res.data?.name
}) })
} else if ( } else if (
@@ -401,14 +496,12 @@ const getProviteData = async () => {
proviteData.value = detailData.value.userReportSubstationPO proviteData.value = detailData.value.userReportSubstationPO
//查询非线性负荷类型 //查询非线性负荷类型
await getDictTreeById(proviteData.value.nonlinearLoadType).then(res => { await getDictTreeById(proviteData.value.nonlinearLoadType).then(res => {
console.log(res, '==========')
proviteData.value.nonlinearLoadType = res.data?.name proviteData.value.nonlinearLoadType = res.data?.name
}) })
} else { } else {
proviteData.value = detailData.value.userReportSensitivePO proviteData.value = detailData.value.userReportSensitivePO
} }
proviteData.value.otherReport = detailData.value.otherReport proviteData.value.otherReport = detailData.value.otherReport
console.log(proviteData.value, '++++++++++++proviteData.evaluationType')
//可研报告 //可研报告
if (proviteData.value.feasibilityReport) { if (proviteData.value.feasibilityReport) {
await getFileNamePath(proviteData.value.feasibilityReport, 'feasibilityReport') await getFileNamePath(proviteData.value.feasibilityReport, 'feasibilityReport')
@@ -461,7 +554,6 @@ const getProviteData = async () => {
//根据文件名请求 //根据文件名请求
const getFileNamePath = async (val: any, pathName: any) => { const getFileNamePath = async (val: any, pathName: any) => {
await getFileNameAndFilePath({ filePath: val }).then(res => { await getFileNameAndFilePath({ filePath: val }).then(res => {
console.log(111111111)
if (res.data && res.data.name && res.data.url) { if (res.data && res.data.name && res.data.url) {
//可研报告 //可研报告
if (pathName == 'feasibilityReport' && proviteData.value.feasibilityReport) { 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(() => { onMounted(() => {
getInfo() getInfo()
}) })
</script> </script>
<style lang="scss"> <style lang="scss">
.default-main {
// height: calc(100vh - 100px);
overflow: auto;
}
::v-deep.el-icon svg { ::v-deep.el-icon svg {
margin: 5px !important; margin: 5px !important;
position: absolute !important; position: absolute !important;
top: 20px !important; top: 20px !important;
} }
.details {
width: 100%;
display: flex;
flex-wrap: wrap;
}
</style> </style>

View File

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

View File

@@ -1,17 +1,17 @@
<template> <template>
<div> <div class="default-main">
<TableHeader ref='TableHeaderRef'> <!-- <TableHeader ref='TableHeaderRef'>
<template #select> <template #select>
<el-form-item label='工程名称'> <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>
<el-form-item label='所属地市'> <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 <el-option
v-for='item in areaOptionList' v-for='item in areaOptionList'
:key='item.id' :key='item.id'
:label='item.name' :label='item.name'
:value='item.id' :value='item.name'
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@@ -21,16 +21,26 @@
<el-button style='margin-left: 50px' :icon='Back' @click='go(-1)'>返回</el-button> <el-button style='margin-left: 50px' :icon='Back' @click='go(-1)'>返回</el-button>
</template> </template>
</TableHeader> </TableHeader> -->
<Table ref='tableRef' /> <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>
<addForm v-if='dialogVisible' ref='addForms' :id='bussId' :bussType='bussType' :title='titleButton' openType = 'detail' ></addForm> </div>
<Table ref="tableRef" />
<addForm
v-if="dialogVisible"
ref="addForms"
:id="bussId"
:bussType="bussType"
:title="titleButton"
openType="detail"
@onSubmit="tableStore.index()"
></addForm>
</div> </div>
</template> </template>
<script setup lang='ts'> <script setup lang="ts">
defineOptions({ defineOptions({
name: 'ProgramReview' name: 'ProgramReview'
}) })
@@ -128,8 +138,12 @@ const tableStore = new TableStore({
beforeSearchFun: () => { beforeSearchFun: () => {
tableStore.table.params.userReportId = bussId.value tableStore.table.params.userReportId = bussId.value
tableStore.table.params.type = bussType.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 dialogVisible = ref(false)
const bussId = ref() const bussId = ref()
@@ -148,10 +162,8 @@ if(bussType.value === 0){
provide('tableStore', tableStore) provide('tableStore', tableStore)
onMounted(() => { onMounted(() => {
tableStore.index() tableStore.index()
}) })
/** 处理审批按钮 */ /** 处理审批按钮 */
const handleAudit = (instanceId: any) => { const handleAudit = (instanceId: any) => {
push({ push({
@@ -167,7 +179,7 @@ const toGoNet=() => {
dialogVisible.value = true dialogVisible.value = true
setTimeout(() => { setTimeout(() => {
addForms.value.open() addForms.value.open()
}, 0); }, 0)
} }
/**获取用户性质*/ /**获取用户性质*/
@@ -196,3 +208,14 @@ const getUserTypeName = (userType: any) => {
return '新建电网工程' return '新建电网工程'
} }
</script> </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> <el-icon>
<Link /> <Link />
</el-icon> </el-icon>
<a :href="proviteData?.substationMainWiringDiagram.url"> <a :href="proviteData?.substationMainWiringDiagram.url" target="_blank">
{{ proviteData?.substationMainWiringDiagram.name }} {{ proviteData?.substationMainWiringDiagram.name }}
</a> </a>
</el-descriptions-item> </el-descriptions-item>
@@ -268,13 +268,13 @@
<el-icon> <el-icon>
<Link /> <Link />
</el-icon> </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-item>
</el-descriptions> </el-descriptions>
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref, reactive } from 'vue' import { onMounted, ref, reactive, watch } from 'vue'
import { useRoute } from 'vue-router' import { useRoute } from 'vue-router'
import { formatDate } from '@/utils/formatTime' import { formatDate } from '@/utils/formatTime'
import { propTypes } from '@/utils/propTypes' import { propTypes } from '@/utils/propTypes'
@@ -359,6 +359,7 @@ const evaluationTypeList = dictData.getBasicData('Evaluation_Type')
const evaluationDeptList = dictData.getBasicData('evaluation_dept') const evaluationDeptList = dictData.getBasicData('evaluation_dept')
/** 获得数据 */ /** 获得数据 */
const getInfo = async () => { const getInfo = async () => {
console.log(666666666, '加载了')
detailLoading.value = true detailLoading.value = true
try { try {
await getUserReportById(props.id || queryId).then(res => { await getUserReportById(props.id || queryId).then(res => {
@@ -443,7 +444,6 @@ const getProviteData = async () => {
//根据文件名请求 //根据文件名请求
const getFileNamePath = async (val: any, pathName: any) => { const getFileNamePath = async (val: any, pathName: any) => {
await getFileNameAndFilePath({ filePath: val }).then(res => { await getFileNameAndFilePath({ filePath: val }).then(res => {
console.log(111111111)
if (res.data && res.data.name && res.data.url) { if (res.data && res.data.name && res.data.url) {
//可研报告 //可研报告
if (pathName == 'feasibilityReport' && proviteData.value.feasibilityReport) { if (pathName == 'feasibilityReport' && proviteData.value.feasibilityReport) {
@@ -516,6 +516,12 @@ const getFileNamePath = async (val: any, pathName: any) => {
} }
defineExpose({ open: getInfo }) // 提供 open 方法,用于打开弹窗 defineExpose({ open: getInfo }) // 提供 open 方法,用于打开弹窗
watch(
() => props.id,
(val, oldVal) => {
val && getInfo()
}
)
/** 初始化 **/ /** 初始化 **/
onMounted(() => { onMounted(() => {
getInfo() getInfo()
@@ -532,4 +538,12 @@ onMounted(() => {
position: absolute !important; position: absolute !important;
top: 20px !important; top: 20px !important;
} }
.el-icon{
float: left;
}
a{
display: block;
width: 200px;
float: left;
}
</style> </style>