修改部分按钮重复点击

This commit is contained in:
GGJ
2024-10-16 17:54:55 +08:00
parent 89535b6059
commit e470554b7c
18 changed files with 492 additions and 1082 deletions

View File

@@ -33,7 +33,7 @@
<div class="dialog-footer">
<el-button @click="close()">取消</el-button>
<!-- <el-button type="primary" @click="confirmForm(true)">保存</el-button> -->
<el-button type="primary" @click="confirmForm(false)">提交审批</el-button>
<el-button type="primary" @click="confirmForm(false)" :loading="loading" >提交审批</el-button>
</div>
</template>
</el-dialog>
@@ -57,6 +57,7 @@ const props = defineProps({
const dictData = useDictData()
const dialogFormVisible = ref(false)
const form: any = ref({})
const loading = ref(false)
const ruleFormRef: any = ref(null)
//定义切换form类型
const selectFormType = ref('')
@@ -112,13 +113,14 @@ const disabledDate = time => {
return time.getTime() < Date.now() - 8.64e7 // 8.64e7 毫秒数代表一天
}
//提交
const confirmForm = (flag: boolean) => {
const confirmForm = async (flag: boolean) => {
loading.value = true
if (flag) {
// 提交监测点信息
//提交监测点联调信息
form.value.saveOrCheckflag = '1'
addMointorPointTempLinedebug(form.value).then(res => {
await addMointorPointTempLinedebug(form.value).then(res => {
ruleFormRef.value.resetFields()
ElMessage.success('保存成功!')
resetForm()
@@ -126,19 +128,19 @@ const confirmForm = (flag: boolean) => {
})
} else {
// 提交监测点信息
ruleFormRef.value.validate(valid => {
ruleFormRef.value.validate(async (valid) => {
if (valid) {
//提交监测点联调信息
form.value.saveOrCheckflag = '2'
if (!(title.value == '重新发起' || title.value == '编辑')) {
addMointorPointTempLinedebug(form.value).then(res => {
await addMointorPointTempLinedebug(form.value).then(res => {
ruleFormRef.value.resetFields()
ElMessage.success('申请联调成功!')
resetForm()
close()
})
} else {
updateMointorPointTempLinedebug(form.value).then(res => {
await updateMointorPointTempLinedebug(form.value).then(res => {
ruleFormRef.value.resetFields()
ElMessage.success('重新发起成功!')
resetForm()
@@ -151,6 +153,9 @@ const confirmForm = (flag: boolean) => {
}
})
}
await setTimeout(() => {
loading.value = false
}, 0)
}
defineExpose({ open })
</script>

View File

@@ -352,8 +352,8 @@
<template #footer>
<div class="dialog-footer">
<el-button @click="close()">取消</el-button>
<el-button type="primary" @click="confirmForm(true)">保存</el-button>
<el-button type="primary" @click="confirmForm(false)">提交审批</el-button>
<el-button type="primary" @click="confirmForm(true)" :loading="loading" >保存</el-button>
<el-button type="primary" @click="confirmForm(false)" :loading="loading" >提交审批</el-button>
</div>
</template>
</el-dialog>
@@ -376,6 +376,7 @@ const dictData = useDictData()
const dialogFormVisible = ref(false)
const form: any = ref({})
const title = ref('')
const loading = ref(false)
const ruleFormRef: any = ref(null)
// acceptType .doc,.docx,.xlsx,.xls,.pdf
const acceptType = ''
@@ -1081,7 +1082,8 @@ const disabledDate = time => {
}
const activeName = ref('0')
//提交
const confirmForm = (flag: boolean) => {
const confirmForm = async (flag: boolean) => {
loading.value = true
if (flag) {
form.value.reportDate = window.XEUtils.toDateString(form.value.reportDate, 'yyyy-MM-dd')
let confirmFormData = JSON.parse(JSON.stringify(form.value))
@@ -1105,7 +1107,7 @@ const confirmForm = (flag: boolean) => {
}
confirmFormData.saveOrCheckflag = '1'
if (title.value != '监测点信息') confirmFormData.id = resendId.value
addMointorPointFormData(confirmFormData).then(res => {
await addMointorPointFormData(confirmFormData).then(res => {
ElMessage({
message: '保存成功!',
type: 'success'
@@ -1117,7 +1119,7 @@ const confirmForm = (flag: boolean) => {
} else {
// 先判断提交终端信息与监测点信息
// 提交监测点信息
ruleFormRef.value.validate(valid => {
ruleFormRef.value.validate(async(valid) => {
if (valid) {
//整理上传文件的数据
//处理填报日期时间格式
@@ -1145,7 +1147,7 @@ const confirmForm = (flag: boolean) => {
}
confirmFormData.saveOrCheckflag = '2'
if (title.value == '监测点信息') {
addMointorPointFormData(confirmFormData).then(res => {
await addMointorPointFormData(confirmFormData).then(res => {
ElMessage({
message: '新增成功',
type: 'success'
@@ -1156,7 +1158,7 @@ const confirmForm = (flag: boolean) => {
})
} else {
confirmFormData.id = resendId.value
updateMointorPointFormData(confirmFormData).then(res => {
await updateMointorPointFormData(confirmFormData).then(res => {
if (res.code == 'A0000') {
ElMessage({
message: '重新发起成功',
@@ -1174,6 +1176,9 @@ const confirmForm = (flag: boolean) => {
}
})
}
await setTimeout(() => {
loading.value = false
}, 0)
}
defineExpose({ open })
</script>

View File

@@ -1,29 +1,14 @@
<template>
<el-dialog
v-model="dialogFormVisible"
:title="title"
width="65%"
:append-to-body="true"
:before-close="close"
:close-on-click-modal="false"
:lazy="true"
draggable
>
<el-dialog v-model="dialogFormVisible" :title="title" width="65%" :append-to-body="true" :before-close="close"
:close-on-click-modal="false" :lazy="true" draggable>
<!-- <el-anchor :container="containerRef" direction="vertical" type="default" :offset="30" @click="handleClick">
<el-anchor-link href="#part1" title="基础信息" />
<el-anchor-link href="#part2" title="终端信息" />
<el-anchor-link href="#part3" title="附件材料" />
</el-anchor> -->
<!--终端信息录入 基础信息+终端信息+附件材料 -->
<el-form
:model="form"
:validate-on-rule-change="false"
:scroll-to-error="true"
:rules="rules"
ref="ruleFormRef"
label-width="auto"
class="form-two"
>
<el-form :model="form" :validate-on-rule-change="false" :scroll-to-error="true" :rules="rules" ref="ruleFormRef"
label-width="auto" class="form-two">
<!-- <el-tabs tab-position="left" class="tabs_form" v-model="activeName"> -->
<el-divider content-position="left">基础信息</el-divider>
<!-- <div id="part1" class="form-two"> -->
@@ -31,35 +16,20 @@
<el-input v-model="form.reporter" autocomplete="off" placeholder="请输入填报人" :disabled="true" />
</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-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="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"
placeholder="请选择工程投产日期"
/>
<el-date-picker style="width: 100%" v-model="form.expectedProductionDate" type="date"
format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="请选择工程投产日期" />
</el-form-item>
<el-form-item for="-" label="所在地市:" prop="city">
<el-select v-model="form.city" clearable style="width: 100%" placeholder="请选择所在地市">
<el-option
v-for="item in areaOptionList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-option v-for="item in areaOptionList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<!-- <el-col :span="12">
@@ -100,18 +70,9 @@
<el-divider content-position="left">终端信息</el-divider>
<!-- <div id="part2" class="form-two"> -->
<div class="fixed_upload" v-if="false">
<el-upload
v-model:file-list="form.deviceFilePath"
ref="uploadRef"
action=""
:accept="acceptType"
:limit="1"
:on-exceed="handleExceed"
:on-change="choose"
:auto-upload="false"
:on-progress="uploadFileName('deviceFilePath')"
:on-remove="removeFile"
>
<el-upload v-model:file-list="form.deviceFilePath" ref="uploadRef" action="" :accept="acceptType"
:limit="1" :on-exceed="handleExceed" :on-change="choose" :auto-upload="false"
:on-progress="uploadFileName('deviceFilePath')" :on-remove="removeFile">
<template #trigger>
<el-button type="primary">终端台账信息</el-button>
</template>
@@ -125,86 +86,40 @@
</el-radio-group>
</el-form-item>
<el-form-item for="-" label="所属供电公司:" prop="powerCompany">
<el-select
v-model="form.powerCompany"
clearable
style="width: 100%"
placeholder="请选择所属供电公司"
@change="findSubstationVoltageLevel"
>
<el-option
v-for="item in powerCompanyList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-select v-model="form.powerCompany" clearable style="width: 100%" placeholder="请选择所属供电公司"
@change="findSubstationVoltageLevel">
<el-option v-for="item in powerCompanyList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" v-if="form.customSubstationFlag == 0" label="并网变电站:" prop="substation">
<el-select
v-model="form.substation"
clearable
style="width: 100%"
placeholder="请选择并网变电站"
filterable
@change="changeSubstation"
>
<el-option
v-for="item in substationList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-select v-model="form.substation" clearable style="width: 100%" placeholder="请选择并网变电站" filterable
@change="changeSubstation">
<el-option v-for="item in substationList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" v-if="form.customSubstationFlag == 1" label="并网变电站:" prop="substationName">
<el-input v-model="form.substationName" autocomplete="off" placeholder="请输入并网变电站" />
</el-form-item>
<el-form-item for="-" label="变电站电压等级:" prop="substationVoltageLevel">
<el-select
v-model="form.substationVoltageLevel"
clearable
style="width: 100%"
placeholder="请选择变压站电压等级"
>
<el-option
v-for="item in voltageLevelList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-select v-model="form.substationVoltageLevel" clearable style="width: 100%" placeholder="请选择变压站电压等级">
<el-option v-for="item in voltageLevelList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" label="经度:" prop="longitude">
<el-input
v-model="form.longitude"
:disabled="form.customSubstationFlag == 0"
type="text"
placeholder="请输入经度"
/>
<el-input v-model="form.longitude" :disabled="form.customSubstationFlag == 0" type="text"
placeholder="请输入经度" />
</el-form-item>
<el-form-item for="-" label="纬度:" prop="latitude">
<el-input
v-model="form.latitude"
:disabled="form.customSubstationFlag == 0"
type="text"
placeholder="请输入纬度"
/>
<el-input v-model="form.latitude" :disabled="form.customSubstationFlag == 0" type="text"
placeholder="请输入纬度" />
</el-form-item>
<el-form-item for="-" label="终端型号:" prop="terminalType">
<el-select
v-model="form.terminalType"
filterable
clearable
style="width: 100%"
placeholder="请选择终端型号"
>
<el-option
v-for="item in terminalTypeList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-select v-model="form.terminalType" filterable clearable style="width: 100%" placeholder="请选择终端型号">
<el-option v-for="item in terminalTypeList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
@@ -213,103 +128,49 @@
</el-form-item>
<el-form-item for="-" label="通讯类型:">
<el-select v-model="form.frontType" clearable style="width: 100%" placeholder="请选择通讯类型">
<el-option
v-for="item in frontTypeList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-option v-for="item in frontTypeList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" label="终端编码:" prop="monitoringTerminalCode">
<el-input
v-model="form.monitoringTerminalCode"
autocomplete="off"
placeholder="请输入终端编码"
@change="encode"
/>
<el-input v-model="form.monitoringTerminalCode" autocomplete="off" placeholder="请输入终端编码"
@change="encode" />
</el-form-item>
<el-form-item v-if="false" for="-" label="通讯状态:" prop="communicationStatus">
<el-select
v-model="form.communicationStatus"
clearable
style="width: 100%"
placeholder="请选择通讯状态"
:disabled="true"
>
<el-option
v-for="item in communicationStatusList"
:key="item.id"
:label="item.name"
:value="item.id"
:disabled="item.id == '1'"
></el-option>
<el-select v-model="form.communicationStatus" clearable style="width: 100%" placeholder="请选择通讯状态"
:disabled="true">
<el-option v-for="item in communicationStatusList" :key="item.id" :label="item.name"
:value="item.id" :disabled="item.id == '1'"></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" label="终端IP" prop="terminalIp">
<el-input
oninput="value=value.replace(/[^0-9.]/g,'')"
v-model="form.terminalIp"
autocomplete="off"
placeholder="请输入终端IP"
/>
<el-input oninput="value=value.replace(/[^0-9.]/g,'')" v-model="form.terminalIp" autocomplete="off"
placeholder="请输入终端IP" />
</el-form-item>
<el-form-item for="-" label="端口:" prop="terminalPort">
<el-input
oninput="value=value.replace(/[^0-9.]/g,'')"
v-model="form.terminalPort"
autocomplete="off"
placeholder="请输入端口"
/>
<el-input oninput="value=value.replace(/[^0-9.]/g,'')" v-model="form.terminalPort" autocomplete="off"
placeholder="请输入端口" />
</el-form-item>
<el-form-item for="-" label="投运时间:" prop="commissioningTime">
<el-date-picker
style="width: 100%"
v-model="form.commissioningTime"
type="datetime"
format="YYYY/MM/DD hh:mm:ss"
value-format="YYYY-MM-DD hh:mm:ss"
placeholder="请选择投运时间"
/>
<el-date-picker style="width: 100%" v-model="form.commissioningTime" type="datetime"
format="YYYY/MM/DD hh:mm:ss" value-format="YYYY-MM-DD hh:mm:ss" placeholder="请选择投运时间" />
</el-form-item>
<el-form-item for="-" label="数据更新时间:" prop="dataUpdateTime">
<el-date-picker
:disabled="true"
style="width: 100%"
v-model="form.dataUpdateTime"
type="datetime"
placeholder="请选择数据更新时间"
/>
<el-date-picker :disabled="true" style="width: 100%" v-model="form.dataUpdateTime" type="datetime"
placeholder="请选择数据更新时间" />
</el-form-item>
<el-form-item for="-" label="所属前置机:" prop="frontEndMachine">
<el-select v-model="form.frontEndMachine" clearable style="width: 100%" placeholder="请选择所属前置机">
<el-option
v-for="item in frontEndMachineList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-option v-for="item in frontEndMachineList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item
for="-"
label="监测终端安装位置:"
prop="monitoringDeviceInstallationPosition"
class="label_over_warp"
>
<el-form-item for="-" label="监测终端安装位置:" prop="monitoringDeviceInstallationPosition" class="label_over_warp">
<!-- 电网侧用户侧 -->
<el-select
v-model="form.monitoringDeviceInstallationPosition"
clearable
style="width: 100%"
placeholder="请选择监测终端安装位置"
>
<el-option
v-for="item in monitoringDeviceInstallationPositionList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-select v-model="form.monitoringDeviceInstallationPosition" clearable style="width: 100%"
placeholder="请选择监测终端安装位置">
<el-option v-for="item in monitoringDeviceInstallationPositionList" :key="item.id"
:label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" label="识别码:" prop="identificationCode">
@@ -320,101 +181,49 @@
</el-form-item>
<el-form-item for="-" label="终端模型:" prop="terminalModel">
<el-select v-model="form.terminalModel" clearable style="width: 100%" placeholder="请选择终端模型">
<el-option
v-for="item in terminalModelList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-option v-for="item in terminalModelList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" label="数据类型:" prop="dataType">
<el-select v-model="form.dataType" clearable style="width: 100%" placeholder="请选择数据类型">
<el-option
v-for="item in dataTypeList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-option v-for="item in dataTypeList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" label="终端接线方式类型:" prop="terminalWiringMethodType" class="label_over_warp">
<el-select
v-model="form.terminalWiringMethodType"
clearable
style="width: 100%"
placeholder="请选择终端接线方式类型"
>
<el-option
v-for="item in terminalWiringMethodTypeList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-select v-model="form.terminalWiringMethodType" clearable style="width: 100%"
placeholder="请选择终端接线方式类型">
<el-option v-for="item in terminalWiringMethodTypeList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" label="厂家:" prop="manufacturer">
<el-select v-model="form.manufacturer" clearable style="width: 100%" placeholder="请选择厂家">
<el-option
v-for="item in manufacturerList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-option v-for="item in manufacturerList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item
for="-"
label="本次终端检测时间"
prop="currentTerminalDetectionTime"
class="label_over_warp"
>
<el-date-picker
style="width: 100%"
v-model="form.currentTerminalDetectionTime"
type="datetime"
placeholder="请选择本次终端检测时间"
:disabled-date="disableStartDate"
/>
<el-form-item for="-" label="本次终端检测时间:" prop="currentTerminalDetectionTime" class="label_over_warp">
<el-date-picker style="width: 100%" v-model="form.currentTerminalDetectionTime" type="datetime"
placeholder="请选择本次终端检测时间" :disabled-date="disableStartDate" />
</el-form-item>
<el-form-item for="-" label="下次终端定检时间:" prop="nextTerminalInspectionTime" class="label_over_warp">
<el-date-picker
style="width: 100%"
v-model="form.nextTerminalInspectionTime"
type="datetime"
placeholder="请选择下次终端定检时间"
:disabled-date="disableEndDate"
/>
<el-date-picker style="width: 100%" v-model="form.nextTerminalInspectionTime" type="datetime"
placeholder="请选择下次终端定检时间" :disabled-date="disableEndDate" />
</el-form-item>
<el-form-item for="-" label="电压互感器类型:" prop="voltageTransformerType">
<el-select
v-model="form.voltageTransformerType"
clearable
style="width: 100%"
placeholder="请选择电压互感器类型"
>
<el-option
v-for="item in voltageTransformerTypeList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-select v-model="form.voltageTransformerType" clearable style="width: 100%" placeholder="请选择电压互感器类型">
<el-option v-for="item in voltageTransformerTypeList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" label="中性点接线方式:" prop="neutralPointWiringMethod">
<el-select
v-model="form.neutralPointWiringMethod"
clearable
style="width: 100%"
placeholder="请选择中性点接线方式"
>
<el-option
v-for="item in neutralPointWiringMethodList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-select v-model="form.neutralPointWiringMethod" clearable style="width: 100%"
placeholder="请选择中性点接线方式">
<el-option v-for="item in neutralPointWiringMethodList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" label="厂家终端编号:" prop="manufacturerDeviceNumber">
@@ -433,28 +242,15 @@
</el-form-item>
<el-form-item for="-" label="电镀功能:" prop="electroplatingFunction">
<!-- 默认 关闭 下拉框 -->
<el-select
v-model="form.electroplatingFunction"
clearable
style="width: 100%"
placeholder="请选择电镀功能"
>
<el-option
v-for="item in electroplatingFunctionList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-select v-model="form.electroplatingFunction" clearable style="width: 100%" placeholder="请选择电镀功能">
<el-option v-for="item in electroplatingFunctionList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" label="召唤标志:" prop="summonFlag">
<el-select v-model="form.summonFlag" clearable style="width: 100%" placeholder="请选择召唤标志">
<el-option
v-for="item in summonFlagList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-option v-for="item in summonFlagList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" label="告警功能:" prop="alarmFunction">
@@ -469,132 +265,64 @@
<!-- </div> -->
<el-divider content-position="left">附件材料</el-divider>
<el-form-item for="-" label="信息安全检测报告:" class="uploadFile" prop="informationSecurityTestReport">
<el-upload
v-model:file-list="form.informationSecurityTestReport"
ref="uploadRef"
action=""
:accept="acceptType"
:limit="1"
:on-exceed="handleExceed"
:on-change="choose"
:auto-upload="false"
:on-progress="uploadFileName('informationSecurityTestReport')"
:on-remove="removeFile"
>
<el-upload v-model:file-list="form.informationSecurityTestReport" ref="uploadRef" action=""
:accept="acceptType" :limit="1" :on-exceed="handleExceed" :on-change="choose" :auto-upload="false"
:on-progress="uploadFileName('informationSecurityTestReport')" :on-remove="removeFile">
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item
v-if="false"
for="-"
label="验收检验报告单:"
class="uploadFile"
prop="acceptanceInspectionReportSingle"
>
<el-upload
v-model:file-list="form.acceptanceInspectionReportSingle"
ref="uploadRef"
action=""
:accept="acceptType"
:limit="1"
:on-exceed="handleExceed"
:on-change="choose"
:auto-upload="false"
:on-progress="uploadFileName('acceptanceInspectionReportSingle')"
:on-remove="removeFile"
>
<el-form-item v-if="false" for="-" label="验收检验报告单:" class="uploadFile"
prop="acceptanceInspectionReportSingle">
<el-upload v-model:file-list="form.acceptanceInspectionReportSingle" ref="uploadRef" action=""
:accept="acceptType" :limit="1" :on-exceed="handleExceed" :on-change="choose" :auto-upload="false"
:on-progress="uploadFileName('acceptanceInspectionReportSingle')" :on-remove="removeFile">
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item for="-" label="验收检验报告:" class="uploadFile" prop="acceptanceInspectionReport">
<el-upload
v-model:file-list="form.acceptanceInspectionReport"
ref="uploadRef"
action=""
:accept="acceptType"
:limit="1"
:on-exceed="handleExceed"
:on-change="choose"
:auto-upload="false"
:on-progress="uploadFileName('acceptanceInspectionReport')"
:on-remove="removeFile"
>
<el-upload v-model:file-list="form.acceptanceInspectionReport" ref="uploadRef" action=""
:accept="acceptType" :limit="1" :on-exceed="handleExceed" :on-change="choose" :auto-upload="false"
:on-progress="uploadFileName('acceptanceInspectionReport')" :on-remove="removeFile">
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item for="-" label="型式实验报告:" class="uploadFile" prop="typeExperimentReport">
<el-upload
v-model:file-list="form.typeExperimentReport"
ref="uploadRef"
action=""
:accept="acceptType"
:limit="1"
:on-exceed="handleExceed"
:on-change="choose"
:auto-upload="false"
:on-progress="uploadFileName('typeExperimentReport')"
:on-remove="removeFile"
>
<el-upload v-model:file-list="form.typeExperimentReport" ref="uploadRef" action="" :accept="acceptType"
:limit="1" :on-exceed="handleExceed" :on-change="choose" :auto-upload="false"
:on-progress="uploadFileName('typeExperimentReport')" :on-remove="removeFile">
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item for="-" label="出厂检验报告:" class="uploadFile" prop="factoryInspectionReport">
<el-upload
v-model:file-list="form.factoryInspectionReport"
ref="uploadRef"
action=""
:accept="acceptType"
:limit="1"
:on-exceed="handleExceed"
:on-change="choose"
:auto-upload="false"
:on-progress="uploadFileName('factoryInspectionReport')"
:on-remove="removeFile"
>
<el-upload v-model:file-list="form.factoryInspectionReport" ref="uploadRef" action=""
:accept="acceptType" :limit="1" :on-exceed="handleExceed" :on-change="choose" :auto-upload="false"
:on-progress="uploadFileName('factoryInspectionReport')" :on-remove="removeFile">
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item for="-" label="性能检测报告:" class="uploadFile" prop="performanceTestReport">
<el-upload
v-model:file-list="form.performanceTestReport"
ref="uploadRef"
action=""
:accept="acceptType"
:limit="1"
:on-exceed="handleExceed"
:on-change="choose"
:auto-upload="false"
:on-progress="uploadFileName('performanceTestReport')"
:on-remove="removeFile"
>
<el-upload v-model:file-list="form.performanceTestReport" ref="uploadRef" action="" :accept="acceptType"
:limit="1" :on-exceed="handleExceed" :on-change="choose" :auto-upload="false"
:on-progress="uploadFileName('performanceTestReport')" :on-remove="removeFile">
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item for="-" label="其他附件:" class="uploadFile" prop="otherAttachments">
<el-upload
v-model:file-list="form.otherAttachments"
ref="uploadRef"
action=""
:accept="acceptType"
:limit="1"
:on-exceed="handleExceed"
:on-change="choose"
:auto-upload="false"
:on-progress="uploadFileName('otherAttachments')"
:on-remove="removeFile"
>
<el-upload v-model:file-list="form.otherAttachments" ref="uploadRef" action="" :accept="acceptType"
:limit="1" :on-exceed="handleExceed" :on-change="choose" :auto-upload="false"
:on-progress="uploadFileName('otherAttachments')" :on-remove="removeFile">
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
@@ -604,8 +332,9 @@
<template #footer>
<div class="dialog-footer">
<el-button @click="close()">取消</el-button>
<el-button type="primary" @click="confirmForm(true)">保存</el-button>
<el-button type="primary" @click="confirmForm(false)" v-if="importType != 1">提交审批</el-button>
<el-button type="primary" @click="confirmForm(true)" :loading="loading">保存</el-button>
<el-button type="primary" @click="confirmForm(false)" :loading="loading"
v-if="importType != 1">提交审批</el-button>
</div>
</template>
</el-dialog>
@@ -634,6 +363,7 @@ const dialogFormVisible = ref(false)
const form: any = ref({})
const ruleFormRef: any = ref(null)
const title = ref('')
const loading = ref(false)
// acceptType .xls,.xlsx
const acceptType = ''
//字典获取所在地市
@@ -1493,6 +1223,7 @@ const close = async () => {
}
//提交
const confirmForm = async (flag: boolean) => {
loading.value = true
if (flag) {
// 提交终端信息
@@ -1544,7 +1275,7 @@ const confirmForm = async (flag: boolean) => {
})
} else {
// 提交终端信息
ruleFormRef.value.validate(valid => {
ruleFormRef.value.validate(async (valid) => {
if (valid) {
//整理上传文件的数据
devReportForm.value.reporter = adminInfo.$state.id
@@ -1569,7 +1300,7 @@ const confirmForm = async (flag: boolean) => {
confirmFormData.saveOrCheckflag = '2'
confirmFormData.importType = importType.value
if (title.value == '终端信息') {
addTerminalFormData(confirmFormData).then((res: any) => {
await addTerminalFormData(confirmFormData).then((res: any) => {
if (res.code == 'A0000') {
ElMessage({
message: '新增成功',
@@ -1586,7 +1317,7 @@ const confirmForm = async (flag: boolean) => {
confirmFormData.supervisionTempDeviceReportParam.commissioningTime =
confirmFormData.supervisionTempDeviceReportParam.commissioningTime.replace('T', ' ')
confirmFormData.id = resendId.value
updateTerminalFormData(confirmFormData).then((res: any) => {
await updateTerminalFormData(confirmFormData).then((res: any) => {
if (res.code == 'A0000') {
ElMessage({
message: '重新发起成功',
@@ -1604,6 +1335,9 @@ const confirmForm = async (flag: boolean) => {
}
})
}
await setTimeout(() => {
loading.value = false
}, 0)
}
// 编码改动
const encode = (e: string) => {
@@ -1618,9 +1352,11 @@ defineExpose({ open })
display: flex;
justify-content: flex-end;
}
.el-divider {
margin: 20px 0;
}
::v-deep .el-divider__text {
font-size: 16px !important;
}

View File

@@ -2,27 +2,20 @@
<TableHeader area datePicker nextFlag theCurrentTime ref="TableHeaderRef">
<template #select>
<el-form-item label="搜索">
<el-input
v-model="tableStore.table.params.searchValue"
placeholder="输入变电站、终端、监测点名称"
clearable
></el-input>
<el-input v-model="tableStore.table.params.searchValue" placeholder="输入变电站、终端、监测点名称"
clearable></el-input>
</el-form-item>
<el-form-item label="流程状态">
<el-select v-model="tableStore.table.params.status" clearable placeholder="请选择流程状态">
<el-option
v-for="item in statusSelect"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-option v-for="item in statusSelect" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
</template>
<template #operation>
<el-button icon="el-icon-Plus" type="primary" @click="addFormModel">新增</el-button>
<el-button icon="el-icon-Delete" type="primary" @click="deleteEven">删除</el-button>
<el-button icon="el-icon-Download" type="primary" @click="exportExcelTemplate">模板下载</el-button>
<el-button icon="el-icon-Download" type="primary" @click="exportExcelTemplate" :loading="loading">模版下载</el-button>
<el-button icon="el-icon-Upload" type="primary" @click="importUserData">批量导入</el-button>
</template>
</TableHeader>
@@ -49,18 +42,19 @@ import { downloadDevTemplate } from '@/api/supervision-boot/userReport/form'
import { ElMessage } from 'element-plus'
import { ElMessageBox } from 'element-plus/es'
import DetailInfo from '@/views/pqs/supervise/terminalNetworkDetection/components/terminainal/detail.vue'
import {cancelTerminalFormData, getTerminalDetailsById} from '@/api/supervision-boot/terminal/index'
import { cancelTerminalFormData, getTerminalDetailsById } from '@/api/supervision-boot/terminal/index'
import uploadATemplate from './uploadATemplate.vue'
import addForm from './addForm.vue'
import { useAdminInfo } from '@/stores/adminInfo'
import { deleteDevReport } from '@/api/supervision-boot/delete/index'
import {getUserReportById} from "@/api/supervision-boot/interfere";
import { getUserReportById } from "@/api/supervision-boot/interfere";
//获取登陆用户姓名和部门
const adminInfo = useAdminInfo()
const dictData = useDictData()
const { push, options, currentRoute } = useRouter()
const TableHeaderRef = ref()
const userId = ref()
const loading = ref(false)
const tableRef = ref()
const areaOptionList = dictData.getBasicData('jibei_area')
const statusSelect = dictData.statusSelect()
@@ -285,7 +279,8 @@ const deleteEven = () => {
}
//导出模板
const exportExcelTemplate = () => {
const exportExcelTemplate = async () => {
loading.value = true
downloadDevTemplate().then((res: any) => {
let blob = new Blob([res], {
type: 'application/vnd.ms-excel'
@@ -298,6 +293,9 @@ const exportExcelTemplate = () => {
link.click()
link.remove()
})
await setTimeout(() => {
loading.value = false
}, 0)
}
//批量导入用户数据
const importUserData = () => {
@@ -330,22 +328,22 @@ const handleAudit = (instanceId: any, historyInstanceId: any) => {
})
}
const props = defineProps({id: {type: String, default: 'null'}})
const props = defineProps({ id: { type: String, default: 'null' } })
watch(() => props.id, async (newValue, oldValue) => {
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
const fullId = newValue.split('@')[0]
let nowTime = Date.now()
const routeTime = Number(newValue.split('@')[1])
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT) return // 路由时间超过500ms则不执行
await getTerminalDetailsById({id:fullId}).then(res => {
if (res && res.code == 'A0000') {
addForms.value.open({
title: '重新发起',
row: res.data
})
}
})
}, {immediate: true})
if (newValue === 'null') return // 直接返回,避免后续逻辑执行
const fullId = newValue.split('@')[0]
let nowTime = Date.now()
const routeTime = Number(newValue.split('@')[1])
if (isNaN(routeTime) || nowTime - routeTime > import.meta.env.VITE_ROUTE_TIME_OUT) return // 路由时间超过500ms则不执行
await getTerminalDetailsById({ id: fullId }).then(res => {
if (res && res.code == 'A0000') {
addForms.value.open({
title: '重新发起',
row: res.data
})
}
})
}, { immediate: true })
</script>