冀北项目添加表格导出功能 技术监督添加下载模版上传功能

This commit is contained in:
GGJ
2025-03-28 16:05:03 +08:00
parent 76f41e9a24
commit ef04022f14
153 changed files with 4208 additions and 3480 deletions

View File

@@ -1,307 +1,303 @@
<template>
<el-dialog v-model='dialogFormVisible' :title='title' width='65%' :append-to-body='true' :before-close='close'
:close-on-click-modal='false' draggable>
<el-dialog v-model="dialogFormVisible" :title="title" 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' :rules='rules' :scroll-to-error='true'
ref='ruleFormRef' label-width='auto'>
<el-form-item for='-' label='填报人:' prop='reporter'>
<el-input v-model.trim='form.reporter' autocomplete='off' :disabled='true' placeholder='请输入填报人' />
<el-form :model="form" class="form-two" :validate-on-rule-change="false" :rules="rules" :scroll-to-error="true"
ref="ruleFormRef" label-width="auto">
<el-form-item for="-" label="填报人:" prop="reporter">
<el-input v-model="form.reporter" autocomplete="off" :disabled="true" placeholder="请输入填报人" />
</el-form-item>
<el-form-item for='-' label='填报日期:' prop='reportDate'>
<el-date-picker :disabled='true' style='width: 100%' v-model='form.reportDate' type='date'
placeholder='请选择填报日期' />
<el-form-item for="-" label="填报日期:" prop="reportDate">
<el-date-picker :disabled="true" style="width: 100%" v-model="form.reportDate" type="date"
placeholder="请选择填报日期" />
</el-form-item>
<el-form-item for='-' label='填报部门:' prop='orgId'>
<el-input v-model.trim='form.orgId' :disabled='true' autocomplete='off' />
<el-form-item for="-" label="填报部门:" prop="orgId">
<el-input v-model="form.orgId" :disabled="true" autocomplete="off" />
</el-form-item>
<el-form-item for='-' label='工程预期投产日期:' prop='expectedProductionDate'>
<el-date-picker style='width: 100%' v-model='form.expectedProductionDate' type='date'
format='YYYY-MM-DD' value-format='YYYY-MM-DD' :disabled-date='disabledDate'
placeholder='请选择工程预期投产日期' />
<el-form-item for="-" label="工程预期投产日期:" prop="expectedProductionDate">
<el-date-picker style="width: 100%" v-model="form.expectedProductionDate" type="date"
format="YYYY-MM-DD" value-format="YYYY-MM-DD" :disabled-date="disabledDate"
placeholder="请选择工程预期投产日期" />
</el-form-item>
<el-form-item for='-' label='用户性质:' prop='userType'>
<el-form-item for="-" label="用户性质:" prop="userType">
<!-- :disabled="resendId != '' && title != '编辑'" -->
<el-select v-model='form.userType' placeholder='请选择用户性质'>
<el-option v-for='(item, index) in userTypeList' :label='item.label' :value='item.value'
:key='index' />
<el-select v-model="form.userType" placeholder="请选择用户性质">
<el-option v-for="(item, index) in userTypeList" :label="item.label" :value="item.value"
:key="index" />
</el-select>
</el-form-item>
<el-form-item for='-' label='所在地市:' prop='city'>
<el-select v-model='form.city' clearable placeholder='请选择所在地市'>
<el-option v-for='item in areaOptionList' :key='item.id' :label='item.name'
:value='item.name'></el-option>
<el-form-item for="-" label="所在地市:" prop="city">
<el-select v-model="form.city" clearable placeholder="请选择所在地市">
<el-option v-for="item in areaOptionList" :key="item.id" :label="item.name"
:value="item.name"></el-option>
</el-select>
</el-form-item>
<el-form-item for='-' label='归口管理部门:' prop='responsibleDepartment'>
<el-input v-model.trim='form.responsibleDepartment' autocomplete='off' placeholder='请输入归口管理部门'
maxlength='32' show-word-limit />
<el-form-item for="-" label="归口管理部门:" prop="responsibleDepartment">
<el-input v-model="form.responsibleDepartment" autocomplete="off" placeholder="请输入归口管理部门" />
</el-form-item>
<el-form-item for='-' label='项目名称:' prop='projectName'>
<el-input v-model.trim='form.projectName' autocomplete='off' placeholder='请输入项目名称' maxlength='64'
show-word-limit />
<el-form-item for="-" label="项目名称:" prop="projectName">
<el-input v-model="form.projectName" autocomplete="off" placeholder="请输入项目名称" />
</el-form-item>
<el-form-item for='-' label='用户状态:' prop='userStatus'>
<el-select v-model='form.userStatus' placeholder='请选择用户状态'>
<el-option v-for='(item, index) in userStateList' :label='item.label' :value='item.value'
:disabled='item.disabled' :key='index' />
<el-form-item for="-" label="用户状态:" prop="userStatus">
<el-select v-model="form.userStatus" placeholder="请选择用户状态">
<el-option v-for="(item, index) in userStateList" :label="item.label" :value="item.value"
:disabled="item.disabled" :key="index" />
</el-select>
</el-form-item>
<el-form-item for='-' label='厂站名称:' prop='substation'>
<el-input v-model.trim='form.substation' autocomplete='off' placeholder='请输入厂站名称' maxlength='64'
show-word-limit />
<el-form-item for="-" label="厂站名称:" prop="substation">
<el-input v-model="form.substation" autocomplete="off" placeholder="请输入厂站名称" />
</el-form-item>
<el-form-item for='-' v-if="form.userType == '0' || form.userType == '1'" label='用户协议容量:'
prop='agreementCapacity'>
<el-input v-model.trim='form.agreementCapacity' oninput="value=value.replace(/[^\-?\d.]/g,'')
<el-form-item for="-" v-if="form.userType == '0' || form.userType == '1'" label="用户协议容量:"
prop="agreementCapacity">
<el-input v-model="form.agreementCapacity" oninput="value=value.replace(/[^\-?\d.]/g,'')
.replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" autocomplete='off' placeholder='请输入用户协议容量' maxlength="6"
show-word-limit>
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" autocomplete="off" placeholder="请输入用户协议容量">
<template #append>MVA</template>
</el-input>
</el-form-item>
<el-form-item for='-' v-if="form.userType == '0' || form.userType == '1'" label='非线性终端类型:'
prop='nonlinearDeviceType'>
<el-tree-select accordion ref='treeRef' :default-expand-all='false' show-checkbox check-strictly
:highlight-current='true' readonly node-key='id' :props='defaultProps'
v-model='form.nonlinearDeviceType' :data='nonlinearDeviceTypeList' :render-after-expand='false' />
<el-form-item for="-" v-if="form.userType == '0' || form.userType == '1'" label="非线性终端类型:"
prop="nonlinearDeviceType">
<el-tree-select accordion ref="treeRef" :default-expand-all="false" show-checkbox check-strictly
:highlight-current="true" readonly node-key="id" :props="defaultProps"
v-model="form.nonlinearDeviceType" :data="nonlinearDeviceTypeList" :render-after-expand="false" />
</el-form-item>
<el-form-item for='-' label='电压等级:' prop='voltageLevel'>
<el-select v-model='form.voltageLevel' placeholder='请选择电压等级' node-key='id'>
<el-option v-for='(item, index) in voltageLevelList' :label='item.name' :value='item.id'
:key='index' />
<el-form-item for="-" label="电压等级:" prop="voltageLevel">
<el-select v-model="form.voltageLevel" placeholder="请选择电压等级" node-key="id">
<el-option v-for="(item, index) in voltageLevelList" :label="item.name" :value="item.id"
:key="index" />
</el-select>
</el-form-item>
<el-form-item for='-' label='预测评估单位:' prop='evaluationDept'>
<el-select v-model='form.evaluationDept' allow-create filterable placeholder='请选择预测评估单位'>
<el-option v-for='(item, index) in evaluationDeptList' :label='item.name' :value='item.name'
:key='index' />
<el-form-item for="-" label="预测评估单位:" prop="evaluationDept">
<el-select v-model="form.evaluationDept" allow-create filterable placeholder="请选择预测评估单位">
<el-option v-for="(item, index) in evaluationDeptList" :label="item.name" :value="item.name"
:key="index" />
</el-select>
</el-form-item>
<el-form-item for='-' label='是否需要治理:' prop='needGovernance'>
<el-radio-group v-model='form.needGovernance'>
<el-radio :value='1'></el-radio>
<el-radio :value='0'></el-radio>
<el-form-item for="-" label="是否需要治理:" prop="needGovernance">
<el-radio-group v-model="form.needGovernance">
<el-radio :value="1"></el-radio>
<el-radio :value="0"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item for='-' label='是否开展背景测试:' prop='backgroundTestPerformed'>
<el-radio-group v-model='form.backgroundTestPerformed'>
<el-radio :value='1'></el-radio>
<el-radio :value='0'></el-radio>
<el-form-item for="-" label="是否开展背景测试:" prop="backgroundTestPerformed">
<el-radio-group v-model="form.backgroundTestPerformed">
<el-radio :value="1"></el-radio>
<el-radio :value="0"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label='关联终端' prop='devId' v-if="props.openType != 'create'">
<el-select v-model='form.devId' filterable placeholder='请选择关联终端' @change='changeDevId'>
<el-option v-for='(item, index) in devIdList' :label='item.devName' :value='item.devId'
:key='index' />
<el-form-item label="关联终端" prop="devId" v-if="props.openType != 'create'">
<el-select v-model="form.devId" filterable placeholder="请选择关联终端" @change="changeDevId">
<el-option v-for="(item, index) in devIdList" :label="item.devName" :value="item.devId"
:key="index" />
</el-select>
</el-form-item>
<el-form-item label='关联监测点' prop='lineId' v-if="props.openType != 'create'">
<el-select v-model='form.lineId' placeholder='请选择关联监测点'>
<el-option v-for='(item, index) in lineIdList' :label='item.lineName' :value='item.lineId'
:key='index' />
<el-form-item label="关联监测点" prop="lineId" v-if="props.openType != 'create'">
<el-select v-model="form.lineId" placeholder="请选择关联监测点">
<el-option v-for="(item, index) in lineIdList" :label="item.lineName" :value="item.lineId"
:key="index" />
</el-select>
</el-form-item>
<el-form-item for='-' v-if="form.userType != '0' && form.userType != '1'" label='评估类型:'
prop='evaluationType'>
<el-select v-model='form.evaluationType' placeholder='请选择评估类型'>
<el-option v-for='(item, index) in evaluationTypeList' :key='index' :label='item.name'
:value='item.id' />
<el-form-item for="-" v-if="form.userType != '0' && form.userType != '1'" label="评估类型:"
prop="evaluationType">
<el-select v-model="form.evaluationType" placeholder="请选择评估类型">
<el-option v-for="(item, index) in evaluationTypeList" :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
<el-form-item for='-' v-if="form.userType != '0' && form.userType != '1'" label='PCC点' prop='pccPoint'>
<el-input v-model.trim='form.pccPoint' autocomplete='off' placeholder='请输入PCC点' />
<el-form-item for="-" v-if="form.userType != '0' && form.userType != '1'" label="PCC点" prop="pccPoint">
<el-input v-model="form.pccPoint" autocomplete="off" placeholder="请输入PCC点" />
</el-form-item>
<el-form-item for='-'
<el-form-item for="-"
v-if="form.userType == '2' || form.userType == '3' || form.userType == '4' || form.userType == '5'"
label='基准短路容量:' prop='baseShortCircuitCapacity'>
<el-input v-model.trim='form.baseShortCircuitCapacity' oninput="value=value.replace(/[^\-?\d.]/g,'')
label="基准短路容量:" prop="baseShortCircuitCapacity">
<el-input v-model="form.baseShortCircuitCapacity" oninput="value=value.replace(/[^\-?\d.]/g,'')
.replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" placeholder='请输入基准短路容量'>
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" placeholder="请输入基准短路容量">
<template #append>MVA</template>
</el-input>
</el-form-item>
<el-form-item for='-'
<el-form-item for="-"
v-if="form.userType == '2' || form.userType == '3' || form.userType == '4' || form.userType == '5'"
label='系统最小短路容量:' prop='minShortCircuitCapacity'>
<el-input v-model.trim='form.minShortCircuitCapacity' oninput="value=value.replace(/[^\-?\d.]/g,'')
label="系统最小短路容量:" prop="minShortCircuitCapacity">
<el-input v-model="form.minShortCircuitCapacity" oninput="value=value.replace(/[^\-?\d.]/g,'')
.replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" autocomplete='off' placeholder='请选择系统最小短路容量'>
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" autocomplete="off" placeholder="请选择系统最小短路容量">
<template #append>MVA</template>
</el-input>
</el-form-item>
<el-form-item for='-'
<el-form-item for="-"
v-if="form.userType == '2' || form.userType == '3' || form.userType == '4' || form.userType == '5'"
label='PCC供电设备容量' prop='pccEquipmentCapacity'>
<el-input v-model.trim='form.pccEquipmentCapacity' oninput="value=value.replace(/[^\-?\d.]/g,'')
label="PCC供电设备容量" prop="pccEquipmentCapacity">
<el-input v-model="form.pccEquipmentCapacity" oninput="value=value.replace(/[^\-?\d.]/g,'')
.replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" placeholder='请输入PCC供电设备容量'>
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" placeholder="请输入PCC供电设备容量">
<template #append>MVA</template>
</el-input>
</el-form-item>
<el-form-item for='-'
<el-form-item for="-"
v-if="form.userType == '2' || form.userType == '3' || form.userType == '4' || form.userType == '5'"
label='用户用电协议容量:' prop='userAgreementCapacity'>
<el-input v-model.trim='form.userAgreementCapacity' autocomplete='off' oninput="value=value.replace(/[^\-?\d.]/g,'')
label="用户用电协议容量:" prop="userAgreementCapacity">
<el-input v-model="form.userAgreementCapacity" autocomplete="off" oninput="value=value.replace(/[^\-?\d.]/g,'')
.replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" placeholder='请输入用户用电协议容量'>
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" placeholder="请输入用户用电协议容量">
<template #append>MVA</template>
</el-input>
</el-form-item>
<el-form-item for='-' v-if="form.userType == '6'" label='行业:' prop='industry'>
<el-select v-model='form.industry' placeholder='请选择行业'>
<el-option v-for='(item, index) in industryList' :label='item.name' :value='item.id' :key='index' />
<el-form-item for="-" v-if="form.userType == '6'" label="行业:" prop="industry">
<el-select v-model="form.industry" placeholder="请选择行业">
<el-option v-for="(item, index) in industryList" :label="item.name" :value="item.id" :key="index" />
</el-select>
</el-form-item>
<el-form-item for='-' v-if="form.userType == '6'" label='敏感终端名称:' prop='deviceName'>
<el-input v-model.trim='form.deviceName' autocomplete='off' placeholder='请输入敏感终端名称' />
<el-form-item for="-" v-if="form.userType == '6'" label="敏感终端名称:" prop="deviceName">
<el-input v-model="form.deviceName" autocomplete="off" placeholder="请输入敏感终端名称" />
</el-form-item>
<el-form-item for='-' v-if="form.userType == '6'" label='供电电源数量:' prop='powerSupplyCount'>
<el-input-number style='width: 100%' v-model='form.powerSupplyCount' :min='0' placeholder='请输入供电电源数量' />
<el-form-item for="-" v-if="form.userType == '6'" label="供电电源数量:" prop="powerSupplyCount">
<el-input-number style="width: 100%" v-model="form.powerSupplyCount" :min="0" placeholder="请输入供电电源数量" />
</el-form-item>
<el-form-item for='-' v-if="form.userType == '6'" label='敏感电能质量指标:' prop='energyQualityIndex'>
<el-select v-model='form.energyQualityIndex' multiple collapse-tags collapse-tags-tooltip
placeholder='请选择敏感电能质量指标'>
<el-option v-for='(item, index) in energyQualityIndexList' :label='item.name' :value='item.id'
:key='index' />
<el-form-item for="-" v-if="form.userType == '6'" label="敏感电能质量指标:" prop="energyQualityIndex">
<el-select v-model="form.energyQualityIndex" multiple collapse-tags collapse-tags-tooltip
placeholder="请选择敏感电能质量指标">
<el-option v-for="(item, index) in energyQualityIndexList" :label="item.name" :value="item.id"
:key="index" />
</el-select>
</el-form-item>
<el-form-item for='-'
<el-form-item for="-"
v-if="form.userType == '2' || form.userType == '3' || form.userType == '4' || form.userType == '5'"
:label="form.userType == '4' || form.userType == '5' ? '非线性设备类型: ' : '非线性负荷类型:'"
prop='nonlinearLoadType'>
<el-tree-select accordion ref='treeRef' :default-expand-all='false' show-checkbox check-strictly
:highlight-current='true' readonly node-key='id' :props='defaultProps' filterable
v-model='form.nonlinearLoadType' :data='nonlinearDeviceTypeList' :render-after-expand='false'
placeholder='请选择' />
prop="nonlinearLoadType">
<el-tree-select accordion ref="treeRef" :default-expand-all="false" show-checkbox check-strictly
:highlight-current="true" readonly node-key="id" :props="defaultProps" filterable
v-model="form.nonlinearLoadType" :data="nonlinearDeviceTypeList" :render-after-expand="false"
placeholder="请选择" />
</el-form-item>
<el-form-item for='-' v-if="form.userType == '6'" label='是否开展抗扰度测试:' prop='antiInterferenceTest'>
<el-radio-group v-model='form.antiInterferenceTest'>
<el-radio value='1'></el-radio>
<el-radio value='0'></el-radio>
<el-form-item for="-" v-if="form.userType == '6'" label="是否开展抗扰度测试:" prop="antiInterferenceTest">
<el-radio-group v-model="form.antiInterferenceTest">
<el-radio value="1"></el-radio>
<el-radio value="0"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item for='-' v-if="form.userType == '6' && isInterferencemanagement" label='负荷级别:'
prop='loadLevel'>
<el-select v-model='form.loadLevel' collapse-tags collapse-tags-tooltip placeholder='请选择负荷级别'>
<el-option v-for='(item, index) in loadLevelOptionList' :label='item.name' :value='item.id'
:key='index' />
<el-form-item for="-" v-if="form.userType == '6' && isInterferencemanagement" label="负荷级别:"
prop="loadLevel">
<el-select v-model="form.loadLevel" collapse-tags collapse-tags-tooltip placeholder="请选择负荷级别">
<el-option v-for="(item, index) in loadLevelOptionList" :label="item.name" :value="item.id"
:key="index" />
</el-select>
</el-form-item>
<el-form-item for='-' v-if="form.userType == '6' && isInterferencemanagement" label='供电电源情况:'
prop='powerSupplyInfo'>
<el-select v-model='form.powerSupplyInfo' collapse-tags collapse-tags-tooltip placeholder='请选择供电电源情况'>
<el-option v-for='(item, index) in powerSupplyInfoOptionList' :label='item.name' :value='item.id'
:key='index' />
<el-form-item for="-" v-if="form.userType == '6' && isInterferencemanagement" label="供电电源情况:"
prop="powerSupplyInfo">
<el-select v-model="form.powerSupplyInfo" collapse-tags collapse-tags-tooltip placeholder="请选择供电电源情况">
<el-option v-for="(item, index) in powerSupplyInfoOptionList" :label="item.name" :value="item.id"
:key="index" />
</el-select>
</el-form-item>
<el-form-item for='-' v-if="form.userType != '0' && form.userType != '1'" label='预测评估评审单位:'
prop='evaluationChekDept'>
<el-input v-model.trim='form.evaluationChekDept' autocomplete='off' placeholder='请输入预测评估评审单位' />
<el-form-item for="-" v-if="form.userType != '0' && form.userType != '1'" label="预测评估评审单位:"
prop="evaluationChekDept">
<el-input v-model="form.evaluationChekDept" autocomplete="off" placeholder="请输入预测评估评审单位" />
</el-form-item>
<el-form-item for='-' label='预测评估结论:' prop='evaluationConclusion' style='width: 100%'>
<el-input type='textarea' v-model.trim='form.evaluationConclusion' autocomplete='off'
placeholder='请输入预测评估结论' maxlength='300' show-word-limit />
<el-form-item for="-" label="预测评估结论:" prop="evaluationConclusion" style="width: 100%">
<el-input type="textarea" v-model="form.evaluationConclusion" autocomplete="off"
placeholder="请输入预测评估结论" />
</el-form-item>
<el-form-item class='uploadFile' for='-' label='可研报告:' prop='feasibilityReport'>
<el-upload v-model:file-list='form.feasibilityReport' ref='uploadRef' action='' :accept='acceptType'
:limit='1' :on-change='choose' :auto-upload='false' :on-remove='removeFile'
<el-form-item class="uploadFile" for="-" label="可研报告:" prop="feasibilityReport">
<el-upload v-model:file-list="form.feasibilityReport" ref="uploadRef" action="" :accept="acceptType"
:limit="1" :on-change="choose" :auto-upload="false" :on-remove="removeFile"
:on-progress="uploadFileName('feasibilityReport')">
<template #trigger>
<el-button type='primary'>上传文件</el-button>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item class='uploadFile' for='-' label='项目初步设计说明书:' prop='preliminaryDesignDescription'>
<el-upload v-model:file-list='form.preliminaryDesignDescription' ref='uploadRef' action=''
:accept='acceptType' :limit='1' :on-change='choose' :auto-upload='false' :on-remove='removeFile'
<el-form-item class="uploadFile" for="-" label="项目初步设计说明书:" prop="preliminaryDesignDescription">
<el-upload v-model:file-list="form.preliminaryDesignDescription" ref="uploadRef" action=""
:accept="acceptType" :limit="1" :on-change="choose" :auto-upload="false" :on-remove="removeFile"
:on-progress="uploadFileName('preliminaryDesignDescription')">
<template #trigger>
<el-button type='primary'>上传文件</el-button>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item class='uploadFile' for='-' label='预测评估报告:' prop='predictionEvaluationReport'>
<el-upload v-model:file-list='form.predictionEvaluationReport' ref='uploadRef' action=''
:accept='acceptType' :limit='1' :on-change='choose' :auto-upload='false' :on-remove='removeFile'
<el-form-item class="uploadFile" for="-" label="预测评估报告:" prop="predictionEvaluationReport">
<el-upload v-model:file-list="form.predictionEvaluationReport" ref="uploadRef" action=""
:accept="acceptType" :limit="1" :on-change="choose" :auto-upload="false" :on-remove="removeFile"
:on-progress="uploadFileName('predictionEvaluationReport')">
<template #trigger>
<el-button type='primary'>上传文件</el-button>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item class='uploadFile' for='-' label='预测评估评审意见报告:' prop='predictionEvaluationReviewOpinions'>
<el-upload v-model:file-list='form.predictionEvaluationReviewOpinions' ref='uploadRef' action=''
:accept='acceptType' :limit='1' :on-change='choose' :auto-upload='false' :on-remove='removeFile'
<el-form-item class="uploadFile" for="-" label="预测评估评审意见报告:" prop="predictionEvaluationReviewOpinions">
<el-upload v-model:file-list="form.predictionEvaluationReviewOpinions" ref="uploadRef" action=""
:accept="acceptType" :limit="1" :on-change="choose" :auto-upload="false" :on-remove="removeFile"
:on-progress="uploadFileName('predictionEvaluationReviewOpinions')">
<template #trigger>
<el-button type='primary'>上传文件</el-button>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item class='uploadFile' for='-' label='其他附件:' prop='additionalAttachments'>
<el-upload v-model:file-list='form.additionalAttachments' ref='uploadRef' action='' :accept='acceptType'
:limit='1' :on-change='choose' :auto-upload='false' :on-remove='removeFile'
<el-form-item class="uploadFile" for="-" label="其他附件:" prop="additionalAttachments">
<el-upload v-model:file-list="form.additionalAttachments" ref="uploadRef" action="" :accept="acceptType"
:limit="1" :on-change="choose" :auto-upload="false" :on-remove="removeFile"
:on-progress="uploadFileName('additionalAttachments')">
<template #trigger>
<el-button type='primary'>上传文件</el-button>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item for='-' class='uploadFile' v-if="form.userType != '0' && form.userType != '1'"
label='用户接入变电站主接线示意图:' prop='substationMainWiringDiagram'>
<el-upload v-model:file-list='form.substationMainWiringDiagram' ref='uploadRef' action=''
:accept='acceptType' :limit='1' :on-change='choose' :auto-upload='false' :on-remove='removeFile'
<el-form-item for="-" class="uploadFile" v-if="form.userType != '0' && form.userType != '1'"
label="用户接入变电站主接线示意图:" prop="substationMainWiringDiagram">
<el-upload v-model:file-list="form.substationMainWiringDiagram" ref="uploadRef" action=""
:accept="acceptType" :limit="1" :on-change="choose" :auto-upload="false" :on-remove="removeFile"
:on-progress="uploadFileName('substationMainWiringDiagram')">
<template #trigger>
<el-button type='primary'>上传文件</el-button>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item class='uploadFile' for='-' label='主要敏感终端清单:' v-if="form.userType == '6'"
prop='sensitiveDevices'>
<el-upload v-model:file-list='form.sensitiveDevices' ref='uploadRef' action='' :accept='acceptType'
:limit='1' :on-change='choose' :auto-upload='false' :on-remove='removeFile'
<el-form-item class="uploadFile" for="-" label="主要敏感终端清单:" v-if="form.userType == '6'"
prop="sensitiveDevices">
<el-upload v-model:file-list="form.sensitiveDevices" ref="uploadRef" action="" :accept="acceptType"
:limit="1" :on-change="choose" :auto-upload="false" :on-remove="removeFile"
:on-progress="uploadFileName('sensitiveDevices')">
<template #trigger>
<el-button type='primary'>上传文件</el-button>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item class='uploadFile' for='-' v-if="form.userType == '6'" label='抗扰度测试报告:'
prop='antiInterferenceReport'>
<el-upload v-model:file-list='form.antiInterferenceReport' ref='uploadRef' action=''
:accept='acceptType' :limit='1' :on-change='choose' :auto-upload='false' :on-remove='removeFile'
<el-form-item class="uploadFile" for="-" v-if="form.userType == '6'" label="抗扰度测试报告:"
prop="antiInterferenceReport">
<el-upload v-model:file-list="form.antiInterferenceReport" ref="uploadRef" action=""
:accept="acceptType" :limit="1" :on-change="choose" :auto-upload="false" :on-remove="removeFile"
:on-progress="uploadFileName('antiInterferenceReport')">
<template #trigger>
<el-button type='primary'>上传文件</el-button>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item class='uploadFile' for='-' v-if="form.userType == '6'" label='背景电能质量测试报告:'
prop='powerQualityReport'>
<el-upload v-model:file-list='form.powerQualityReport' ref='uploadRef' action='' :accept='acceptType'
:limit='1' :on-change='choose' :auto-upload='false' :on-remove='removeFile'
<el-form-item class="uploadFile" for="-" v-if="form.userType == '6'" label="背景电能质量测试报告:"
prop="powerQualityReport">
<el-upload v-model:file-list="form.powerQualityReport" ref="uploadRef" action="" :accept="acceptType"
:limit="1" :on-change="choose" :auto-upload="false" :on-remove="removeFile"
:on-progress="uploadFileName('powerQualityReport')">
<template #trigger>
<el-button type='primary'>上传文件</el-button>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<addUpload ref='addUploadRef' v-if="props.openType == 'sourcesOfInterference'" />
<addUpload ref="addUploadRef" v-if="props.openType == 'sourcesOfInterference'" />
</el-form>
<template #footer>
<div class='dialog-footer'>
<el-button @click='close()'>取消</el-button>
<el-button type='primary' @click='confirmForm(true)' :loading='loading'>保存</el-button>
<el-button type='primary' v-if='props.submissionControl' @click='confirmForm(false)' :loading='loading'>
<div class="dialog-footer">
<el-button @click="close()">取消</el-button>
<el-button type="primary" @click="confirmForm(true)" :loading="loading">保存</el-button>
<el-button type="primary" v-if="props.submissionControl" @click="confirmForm(false)" :loading="loading">
提交审批
</el-button>
</div>
</template>
</el-dialog>
</template>
<script lang='ts' setup>
<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'
@@ -322,7 +318,6 @@ import {
import { getUserReportUpdateById } from '@/api/supervision-boot/userReport/form'
import addUpload from './addUpload.vue'
import { useRoute } from 'vue-router'
const route = useRoute()
const isInterferencemanagement: any = ref(false)
if (route.path.includes('interferencemanagement')) {
@@ -623,8 +618,7 @@ const subForm: any = ref({
substationMainWiringDiagram: [] //用户接入变电站主接线示意图地址
}
})
// 特殊字符正则表达式
const specialCharRegex = /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/
//定义校验规则
const rules = ref({
reporter: [{ required: true, message: '请输入填报人', trigger: 'blur' }],
@@ -633,58 +627,16 @@ const rules = ref({
expectedProductionDate: [{ required: true, message: '请选择工程预期投产日期', trigger: 'change' }],
userType: [{ required: true, message: '清选择用户性质', trigger: 'change' }],
city: [{ required: true, message: '请选择所在地市', trigger: 'change' }],
responsibleDepartment: [{ required: true, message: '请输入归口管理部门', trigger: 'blur' },
{
validator: (rule, value, callback) => {
if (specialCharRegex.test(value)) {
callback(new Error('输入包含不允许的特殊字符'))
} else {
callback()
}
},
trigger: 'blur'
}],
responsibleDepartment: [{ required: true, message: '请输入归口管理部门', trigger: 'blur' }],
userStatus: [{ required: true, message: '请选择用户状态', trigger: 'change' }],
projectName: [{ required: true, message: '请输入项目名称', trigger: 'blur' },
{
validator: (rule, value, callback) => {
if (specialCharRegex.test(value)) {
callback(new Error('输入包含不允许的特殊字符'))
} else {
callback()
}
},
trigger: 'blur'
}],
substation: [{ required: true, message: '请输入厂站名称', trigger: 'blur' },
{
validator: (rule, value, callback) => {
if (specialCharRegex.test(value)) {
callback(new Error('输入包含不允许的特殊字符'))
} else {
callback()
}
},
trigger: 'blur'
}],
projectName: [{ required: true, message: '请输入项目名称', trigger: 'blur' }],
substation: [{ required: true, message: '请输入变电站', trigger: 'blur' }],
voltageLevel: [{ required: true, message: '请选择电压等级', trigger: 'change' }],
evaluationDept: [{ required: true, message: '请选择预测评估单位', trigger: 'change' }],
evaluationConclusion: [{ required: true, message: '请输入预测评估结论', trigger: 'blur' },
{
validator: (rule, value, callback) => {
if (specialCharRegex.test(value)) {
callback(new Error('输入包含不允许的特殊字符'))
} else {
callback()
}
},
trigger: 'blur'
}],
evaluationConclusion: [{ required: true, message: '请输入预测评估结论', trigger: 'blur' }],
devId: [{ required: true, message: '请选择关联终端', trigger: 'change' }],
lineId: [{ required: true, message: '请选择关联监测点', trigger: 'change' }],
agreementCapacity: [
{ required: true, message: '请选择用户协议容量', trigger: 'blur' }
],
agreementCapacity: [{ required: true, message: '请选择用户协议容量', trigger: 'blur' }],
nonlinearDeviceType: [{ required: true, message: '请选择非线性终端类型', trigger: 'change' }],
needGovernance: [{ required: true, message: '请选择是否需要治理', trigger: 'change' }],
backgroundTestPerformed: [{ required: true, message: '请选择是否开展背景测试', trigger: 'change' }],
@@ -832,8 +784,6 @@ watch(
deep: true
}
)
const resendId = ref('')
const status = ref('')
const open = async (row: any) => {
@@ -869,7 +819,6 @@ const open = async (row: any) => {
})
}, 10)
}
async function handleResponse(data: any) {
// userType logic is commented out; if needed, implement accordingly
if (data.userReportProjectPO) {
@@ -935,8 +884,7 @@ const close = () => {
emits('onSubmit')
resetForm()
}
onMounted(() => {
})
onMounted(() => { })
// 上传报告
const uploadRef = ref()
@@ -1259,8 +1207,8 @@ const confirmForm = async (flag: boolean) => {
resetForm()
close()
}).catch(() => {
loading.value = false
})
loading.value = false
})
} else {
confirmFormData.id = resendId.value
if (controFlag.value) confirmFormData.dataType = 1
@@ -1278,8 +1226,8 @@ const confirmForm = async (flag: boolean) => {
resetForm()
close()
}).catch(() => {
loading.value = false
})
loading.value = false
})
} else {
await resend(confirmFormData).then(res => {
ElMessage({
@@ -1290,8 +1238,8 @@ const confirmForm = async (flag: boolean) => {
resetForm()
close()
}).catch(() => {
loading.value = false
})
loading.value = false
})
}
} else {
await updateFormData(confirmFormData).then(res => {
@@ -1304,8 +1252,8 @@ const confirmForm = async (flag: boolean) => {
resetForm()
close()
}).catch(() => {
loading.value = false
})
loading.value = false
})
}
}
} else {
@@ -1332,7 +1280,7 @@ const setcontroFlag = () => {
}
defineExpose({ open, filterUsers, setcontroFlag })
</script>
<style lang='scss' scoped>
<style lang="scss" scoped>
.el-form {}
.form-label-left-align {