修改部分按钮重复点击

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

@@ -1,14 +1,8 @@
<template>
<div ref="tableHeader" class="cn-table-header">
<div class="table-header ba-scroll-style">
<el-form
style="flex: 1; height: 34px; margin-right: 20px; display: flex; flex-wrap: wrap"
ref="headerForm"
@submit.prevent=""
@keyup.enter="onComSearch"
label-position="left"
:inline="true"
>
<el-form style="flex: 1; height: 34px; margin-right: 20px; display: flex; flex-wrap: wrap" ref="headerForm"
@submit.prevent="" @keyup.enter="onComSearch" label-position="left" :inline="true">
<el-form-item label="日期" v-if="datePicker" style="grid-column: span 2; max-width: 570px">
<DatePicker ref="datePickerRef" :nextFlag="nextFlag" :theCurrentTime="theCurrentTime"></DatePicker>
</el-form-item>
@@ -23,20 +17,16 @@
<Icon size="14" name="el-icon-ArrowUp" style="color: #fff" v-if="showSelect" />
<Icon size="14" name="el-icon-ArrowDown" style="color: #fff" v-else />
</el-button>
<el-button @click="onComSearch" v-if="showSearch" type="primary" :icon="Search">查询</el-button>
<el-button @click="onResetForm" v-if="showSearch" :icon="RefreshLeft">重置</el-button>
<el-button @click="onComSearch" v-if="showSearch" :loading="tableStore.table.loading" type="primary"
:icon="Search">查询</el-button>
<el-button @click="onResetForm" v-if="showSearch" :loading="tableStore.table.loading"
:icon="RefreshLeft">重置</el-button>
</template>
<!-- :loading="tableStore.table.loading" -->
<slot name="operation"></slot>
</div>
<el-form
:style="showSelect && showUnfoldButton ? headerFormSecondStyleOpen : headerFormSecondStyleClose"
ref="headerFormSecond"
@submit.prevent=""
@keyup.enter="onComSearch"
label-position="left"
:inline="true"
></el-form>
<el-form :style="showSelect && showUnfoldButton ? headerFormSecondStyleOpen : headerFormSecondStyleClose"
ref="headerFormSecond" @submit.prevent="" @keyup.enter="onComSearch" label-position="left"
:inline="true"></el-form>
</div>
</template>
@@ -170,13 +160,14 @@ const setInterval = (val: any) => {
datePickerRef.value.setInterval(val)
}
defineExpose({ onComSearch, areaRef, setDatePicker, setInterval, datePickerRef, showSelectChange})
defineExpose({ onComSearch, areaRef, setDatePicker, setInterval, datePickerRef, showSelectChange })
</script>
<style scoped lang="scss">
.cn-table-header {
border: 1px solid var(--el-border-color);
}
.table-header {
position: relative;
overflow-x: auto;
@@ -218,7 +209,7 @@ defineExpose({ onComSearch, areaRef, setDatePicker, setInterval, datePickerRef,
margin-left: 12px;
}
.mlr-12 + .el-button {
.mlr-12+.el-button {
margin-left: 12px;
}
@@ -253,7 +244,7 @@ defineExpose({ onComSearch, areaRef, setDatePicker, setInterval, datePickerRef,
border-radius: 0;
}
.el-button + .el-button {
.el-button+.el-button {
margin: 0;
}
@@ -264,6 +255,7 @@ defineExpose({ onComSearch, areaRef, setDatePicker, setInterval, datePickerRef,
html.dark {
.table-search-button-group {
button:focus,
button:active {
background-color: var(--el-color-info-dark-2);
@@ -282,11 +274,13 @@ html.dark {
}
}
}
#header-form,
#header-form-second {
:deep(.el-select) {
--el-select-width: 220px;
}
:deep(.el-input) {
--el-input-width: 220px;
}

View File

@@ -32,7 +32,7 @@
</template>
<template #operation>
<!-- <el-button icon="el-icon-Plus" type="primary" @click="addFormModel">新增</el-button> -->
<el-button icon="el-icon-Download" @click="exportEvent" type="primary">下载报告</el-button>
<el-button icon="el-icon-Download" :loading="loading" @click="exportEvent" type="primary">下载报告</el-button>
</template>
</TableHeader>
<Table ref="tableRef" :radio-config="{
@@ -42,7 +42,7 @@
}" :tree-config="{ transform: true, parentField: 'uPid', rowField: 'uId' }" :scroll-y="{ enabled: true }" />
</template>
<script setup lang="ts">
import { ref, onMounted, provide, nextTick } from 'vue'
import { ref, onMounted, provide, reactive } from 'vue'
import { ElMessage } from 'element-plus'
import TableStore from '@/utils/tableStore'
import Table from '@/components/table/index.vue'
@@ -155,6 +155,7 @@ const tableStore = new TableStore({
}, 0)
}
})
const loading = ref(false)
tableStore.table.params.statisticalType = classificationData.filter(item => item.name == '电网拓扑')[0]
tableStore.table.params.monitorFlag = 2
@@ -197,6 +198,7 @@ const exportEvent = () => {
})
return
}
loading.value = true
let form = new FormData()
form.append('isUrl', false)
form.append('lineIndex', line.id)
@@ -224,6 +226,9 @@ const exportEvent = () => {
document.body.appendChild(link)
link.click() //执行下载
document.body.removeChild(link)
loading.value = false
}).catch(() => {
loading.value = false
})
}
</script>

View File

@@ -64,7 +64,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="handleClose">取消</el-button>
<el-button type="primary" @click="submit">发起</el-button>
<el-button type="primary" @click="submit" :loading="loading">发起</el-button>
</span>
</template>
</el-dialog>

View File

@@ -4,22 +4,14 @@
<el-row>
<el-col :span="12">
<el-form-item for="-" label="用户名称:" prop="userName">
<el-input
v-model="form.userName"
clearable
style="width: 100%"
placeholder="请输入用户名称"
></el-input>
<el-input v-model="form.userName" clearable style="width: 100%"
placeholder="请输入用户名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item for="-" label="用户编号:" prop="userNumber">
<el-input
v-model="form.userNumber"
clearable
style="width: 100%"
placeholder="请输入用户编号"
></el-input>
<el-input v-model="form.userNumber" clearable style="width: 100%"
placeholder="请输入用户编号"></el-input>
</el-form-item>
</el-col>
</el-row>
@@ -55,18 +47,9 @@
></el-input>
</el-form-item> -->
<el-form-item for="-" label="监测点:" prop="monitorNumber">
<el-select
v-model="form.monitorNumber"
clearable
style="width: 100%"
placeholder="请选择监测点"
>
<el-option
v-for="item in minitorList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-select v-model="form.monitorNumber" clearable style="width: 100%" placeholder="请选择监测点">
<el-option v-for="item in minitorList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
@@ -85,22 +68,14 @@
</el-row> -->
<el-form-item for="-" label="投诉内容:" prop="complaintText">
<el-input
type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }"
placeholder="请输入内容"
v-model="form.complaintText"
></el-input>
<el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" placeholder="请输入内容"
v-model="form.complaintText"></el-input>
</el-form-item>
<el-form-item for="-" label="稳态指标:">
<el-checkbox-group v-model="form.steadyIndicator">
<div style="width: 100%; display: flex; flex-wrap: wrap; justify-content: flex-start">
<el-checkbox
style="flex: none; width: 120px"
v-for="(item, ind) in steadyStateList"
:key="ind"
:label="item.name"
>
<el-checkbox style="flex: none; width: 120px" v-for="(item, ind) in steadyStateList" :key="ind"
:label="item.name">
<!-- @change="changeSteadyState" -->
{{ item.name }}
</el-checkbox>
@@ -110,12 +85,8 @@
<el-form-item for="-" label="暂态指标:">
<el-checkbox-group v-model="form.transientIndicators">
<div style="width: 100%; display: flex; flex-wrap: wrap; justify-content: flex-start">
<el-checkbox
style="flex: none; width: 120px"
v-for="(item, ind) in transientIndicatorsList"
:key="ind"
:label="item.name"
>
<el-checkbox style="flex: none; width: 120px" v-for="(item, ind) in transientIndicatorsList"
:key="ind" :label="item.name">
<!-- @change="changeTransientIndicators" -->
{{ item.name }}
</el-checkbox>
@@ -126,7 +97,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="handleClose">取消</el-button>
<el-button type="primary" @click="submit">确认</el-button>
<el-button type="primary" @click="submit" :loading="loading">确认</el-button>
</span>
</template>
</el-dialog>
@@ -141,6 +112,7 @@ import Area from '@/components/form/area/index.vue'
const emits = defineEmits(['onSubmit'])
const dictData = useDictData()
const dialogVisible = ref(false)
const loading = ref(false)
const title: any = ref('')
const steadyStateList = dictData.getBasicData('Steady_Indicator')
const transientIndicatorsList = dictData.getBasicData('Transient_Indicators')
@@ -184,9 +156,10 @@ const rules = {
monitorNumber: [{ required: true, message: '请选择监测点', trigger: 'change' }],
dutyOrgId: [{ required: true, message: '请选择负责单位', trigger: 'change' }]
}
const formRef = ref(null)
const submit = () => {
formRef.value.validate(valid => {
const formRef = ref()
const submit = async () => {
loading.value = true
formRef.value.validate(async (valid) => {
if (valid) {
form.value = {
...form.value,
@@ -196,7 +169,7 @@ const submit = () => {
return item.id == form.value.monitorNumber
})?.name
}
addComplaintsData(form.value).then(res => {
await addComplaintsData(form.value).then(res => {
if (res.code == 'A0000') {
ElMessage({
message: '新增成功',
@@ -213,6 +186,9 @@ const submit = () => {
return false
}
})
await setTimeout(() => {
loading.value = false
}, 0)
}
const open = (row: any) => {

View File

@@ -1,14 +1,7 @@
<template>
<el-dialog draggable :title="title" v-model="planAddition" width="500px" :before-close="cancelFn">
<el-form
:model="form"
ref="formRef"
:rules="rules"
label-width="auto"
scroll-to-error
:validate-on-rule-change="false"
class="form-one"
>
<el-form :model="form" ref="formRef" :rules="rules" label-width="auto" scroll-to-error
:validate-on-rule-change="false" class="form-one">
<el-form-item for="-" label="计划负责单位:">
<Area v-model="form.deptId" @change="changeArea" />
</el-form-item>
@@ -17,34 +10,20 @@
</el-form-item>
<el-form-item label="监督类型:" prop="supvType">
<el-select v-model="form.supvType" placeholder="请选择监督类型" style="width: 100%" @change="++key">
<el-option
v-for="item in supvTypeOptionList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-option v-for="item in supvTypeOptionList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" label="监督对象名称:" prop="supvObjectName">
<el-input v-model="form.supvObjectName" placeholder="请输入监督对象名称"></el-input>
</el-form-item>
<el-form-item for="-" label="计划开始时间:" prop="planStartTime">
<el-date-picker
v-model="form.planStartTime"
type="date"
placeholder="选择计划开始时间"
value-format="YYYY-MM-DD"
:disabled-date="disableStartDate"
></el-date-picker>
<el-date-picker v-model="form.planStartTime" type="date" placeholder="选择计划开始时间"
value-format="YYYY-MM-DD" :disabled-date="disableStartDate"></el-date-picker>
</el-form-item>
<el-form-item for="-" label="计划结束时间:" prop="planEndTime">
<el-date-picker
v-model="form.planEndTime"
type="date"
placeholder="选择计划结束时间"
:disabled-date="disableEndDate"
value-format="YYYY-MM-DD"
></el-date-picker>
<el-date-picker v-model="form.planEndTime" type="date" placeholder="选择计划结束时间"
:disabled-date="disableEndDate" value-format="YYYY-MM-DD"></el-date-picker>
</el-form-item>
<!-- <el-form-item for="-" label="实际完成时间:" prop="planComplateTime">
<el-date-picker
@@ -64,23 +43,10 @@
<el-radio :value="1"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
:key="key"
label="关联电站:"
v-if="form.customSubstationFlag == 0"
:prop="dynamicProp"
style="display: flex; align-items: center"
>
<el-cascader
v-model="form.substation"
:options="treeData"
:props="defaultProps"
clearable
filterable
collapse-tags
collapse-tags-tooltip
placeholder="请选择关联电站"
/>
<el-form-item :key="key" label="关联电站:" v-if="form.customSubstationFlag == 0" :prop="dynamicProp"
style="display: flex; align-items: center">
<el-cascader v-model="form.substation" :options="treeData" :props="defaultProps" clearable filterable
collapse-tags collapse-tags-tooltip placeholder="请选择关联电站" />
<!-- <el-tree-select
accordion
ref="treeRef"
@@ -97,13 +63,7 @@
/> -->
</el-form-item>
<el-form-item
for="-"
label="关联电站:"
:key="key"
v-if="form.customSubstationFlag == 1"
:prop="dynamicProp"
>
<el-form-item for="-" label="关联电站:" :key="key" v-if="form.customSubstationFlag == 1" :prop="dynamicProp">
<el-input v-model="form.substation" placeholder="请输入关联电站"></el-input>
</el-form-item>
<!-- <el-form :model="form" label-width="auto"> -->
@@ -120,8 +80,8 @@
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item> -->
</el-upload>
</el-form-item> -->
<!-- </el-form> -->
</el-form>
<!-- <el-divider content-position="left" style="font-size: 18px; font-weight: bolder">添加电站</el-divider> -->
@@ -144,8 +104,8 @@
<div class="dialog-footer">
<el-button @click="cancelFn">取消</el-button>
<el-button type="primary" @click="submitFn(true)">保存</el-button>
<el-button type="primary" @click="submitFn(false)">提交审批</el-button>
<el-button type="primary" @click="submitFn(true)" :loading="loading">保存</el-button>
<el-button type="primary" @click="submitFn(false)" :loading="loading">提交审批</el-button>
</div>
</template>
</el-dialog>
@@ -166,7 +126,7 @@ import { ElMessage, UploadProps } from 'element-plus'
import { useDictData } from '@/stores/dictData'
const emit = defineEmits(['onsubmit'])
const loading = ref(false)
const dictData = useDictData()
const supvTypeOptionList = dictData.getBasicData('supv_type')
const title = ref('')
@@ -272,7 +232,8 @@ const detailById = (id: any) => {
})
}
// 提交
const submitFn = (flag: boolean) => {
const submitFn = async (flag: boolean) => {
loading.value = true
if (flag) {
const addForm = JSON.parse(JSON.stringify(form.value))
@@ -281,7 +242,7 @@ const submitFn = (flag: boolean) => {
}
addForm.saveOrCheckflag = '1'
addSurveyPlan(addForm).then(res => {
await addSurveyPlan(addForm).then(res => {
cancelFn()
ElMessage.success('保存成功!')
emit('onsubmit')
@@ -296,13 +257,13 @@ const submitFn = (flag: boolean) => {
}
addForm.saveOrCheckflag = '2'
if (title.value == '计划新增') {
addSurveyPlan(addForm).then(res => {
await addSurveyPlan(addForm).then(res => {
cancelFn()
ElMessage.success('计划新增成功!')
emit('onsubmit')
})
} else {
updateSurveyPlan(addForm).then(res => {
await updateSurveyPlan(addForm).then(res => {
cancelFn()
ElMessage.success('重新发起成功!')
emit('onsubmit')
@@ -311,6 +272,9 @@ const submitFn = (flag: boolean) => {
}
})
}
await setTimeout(() => {
loading.value = false
}, 0)
}
// 修改关联电站
const changeArea = () => {
@@ -368,5 +332,4 @@ defineExpose({ open })
<style lang="scss" scoped>
// :deep(.el-upload-list__item-info) {
// width: 250px;
// }
</style>
// }</style>

View File

@@ -104,8 +104,8 @@
<div class="dialog-footer">
<el-button @click="cancelFn">取消</el-button>
<!-- <el-button type="primary" @click="submitFn">确定</el-button> -->
<el-button type="primary" @click="submitFn(true)">保存</el-button>
<el-button type="primary" @click="submitFn(false)">提交审批</el-button>
<el-button type="primary" @click="submitFn(true)" :loading="loading">保存</el-button>
<el-button type="primary" @click="submitFn(false)" :loading="loading" >提交审批</el-button>
</div>
</template>
</el-dialog>
@@ -118,7 +118,7 @@ import { ElMessage, genFileId, UploadProps, UploadRawFile, UploadUserFile } from
import { uploadFile, getFileNameAndFilePath } from '@/api/system-boot/file'
import { useDictData } from '@/stores/dictData'
import { addSurveyTest, updateSurveyTest, getTestById } from '@/api/supervision-boot/survey/test'
const loading = ref(false)
const acceptType = ref('')
const tableStore = inject('tableStore') as TableStore
let uploadName = ref('')
@@ -254,7 +254,8 @@ const cancelFn = () => {
planAddition.value = false
}
// 提交
const submitFn = (flag: boolean) => {
const submitFn = async (flag: boolean) => {
loading.value = true
const subForm = JSON.parse(JSON.stringify(form.value))
subForm.otherReport = ''
@@ -270,7 +271,7 @@ const submitFn = (flag: boolean) => {
subForm.saveOrCheckflag = '1'
//新增,则组装业务数据提交后台
addSurveyTest(subForm).then(res => {
await addSurveyTest(subForm).then(res => {
ElMessage.success('保存成功!')
tableStore.index()
planAddition.value = false
@@ -315,6 +316,9 @@ const submitFn = (flag: boolean) => {
}
})
}
await setTimeout(() => {
loading.value = false
}, 0)
}
const audit = (filePath: any) => {
if (title.value == '计划测试填报') {

View File

@@ -166,8 +166,8 @@
<div class="dialog-footer">
<el-button @click="close()">取消</el-button>
<!-- <el-button type="primary" @click="confirmForm()">确定</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>
@@ -200,6 +200,7 @@ const props = defineProps({
const rules = {
goToNetReport: [{ required: true, message: '请上传报告', trigger: 'blur' }]
}
const loading = ref(false)
const emits = defineEmits(['onSubmit'])
const dictData = useDictData()
const dialogFormVisible = ref(false)
@@ -353,6 +354,7 @@ const choose = (e: any) => {
//提交
const confirmForm = (flag: boolean) => {
loading.value = true
if (flag) {
let data = {
type: props.bussType,
@@ -394,6 +396,9 @@ const confirmForm = (flag: boolean) => {
}
})
}
setTimeout(() => {
loading.value = false
}, 0)
}
defineExpose({ open })
</script>

View File

@@ -1,68 +1,35 @@
<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 :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-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"
:disabled-date="disabledDate"
placeholder="请选择工程预期投产日期"
/>
<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">
<!-- :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-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-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">
@@ -73,74 +40,37 @@
</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-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="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="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="请输入用户协议容量"
>
.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-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-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">
@@ -157,106 +87,60 @@
</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-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-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-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-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="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="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="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="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="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>
@@ -269,51 +153,23 @@
<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-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-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">
@@ -321,234 +177,108 @@
<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-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-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-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="form.evaluationConclusion"
autocomplete="off"
placeholder="请输入预测评估结论"
/>
<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"
:on-progress="uploadFileName('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>
</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"
:on-progress="uploadFileName('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>
</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"
:on-progress="uploadFileName('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>
</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"
:on-progress="uploadFileName('predictionEvaluationReviewOpinions')"
>
<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>
</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"
:on-progress="uploadFileName('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>
</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"
:on-progress="uploadFileName('substationMainWiringDiagram')"
>
<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>
</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"
:on-progress="uploadFileName('sensitiveDevices')"
>
<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>
</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"
:on-progress="uploadFileName('antiInterferenceReport')"
>
<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>
</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"
:on-progress="uploadFileName('powerQualityReport')"
>
<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>
</template>
@@ -559,8 +289,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" v-if="props.submissionControl" @click="confirmForm(false)">
<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>
@@ -620,6 +350,7 @@ const dialogFormVisible = ref(false)
// .doc,.docx,.xlsx,.xls,.pdf
const acceptType = ''
const form: any = ref({})
const loading = ref(false)
const addUploadRef: any = ref()
const control: any = ref(true)
const controFlag: any = ref(false)
@@ -1153,7 +884,7 @@ const close = () => {
emits('onSubmit')
resetForm()
}
onMounted(() => {})
onMounted(() => { })
// 上传报告
const uploadRef = ref()
@@ -1245,7 +976,8 @@ const disabledDate = (time: any) => {
return false
}
//提交
const confirmForm = (flag: boolean) => {
const confirmForm = async (flag: boolean) => {
loading.value = true
if (flag) {
//整理上传文件的数据
// userType==0,1
@@ -1309,7 +1041,7 @@ const confirmForm = (flag: boolean) => {
if (!control.value) confirmFormData.dataType = 1
if (controFlag.value) confirmFormData.dataType = 1
if (props.normalizedControl) {
addEditor(confirmFormData).then(res => {
await addEditor(confirmFormData).then(res => {
ElMessage({
message: '保存成功!',
type: 'success'
@@ -1320,7 +1052,7 @@ const confirmForm = (flag: boolean) => {
close()
})
} else {
submitFormData(confirmFormData).then(res => {
await submitFormData(confirmFormData).then(res => {
ElMessage({
message: '保存成功!',
type: 'success'
@@ -1332,7 +1064,7 @@ const confirmForm = (flag: boolean) => {
})
}
} else {
ruleFormRef.value.validate((valid: any) => {
await ruleFormRef.value.validate( async (valid: any) => {
if (valid) {
//整理上传文件的数据
// userType==0,1
@@ -1461,7 +1193,7 @@ const confirmForm = (flag: boolean) => {
confirmFormData.saveOrCheckflag = '2'
if (controFlag.value) confirmFormData.dataType = 1
if (title.value == '用户档案录入') {
submitFormData(confirmFormData).then(res => {
await submitFormData(confirmFormData).then(res => {
ElMessage({
message: '新增成功',
type: 'success'
@@ -1474,12 +1206,11 @@ const confirmForm = (flag: boolean) => {
} else {
confirmFormData.id = resendId.value
if (controFlag.value) confirmFormData.dataType = 1
console.log('🚀 ~ ruleFormRef.value.validate ~ controFlag.value:', controFlag.value)
console.log(123123)
if (props.normalizedControl) {
if (title.value == '编辑') {
if (status.value != '') confirmFormData.status = status.value
addEditor(confirmFormData).then(res => {
await addEditor(confirmFormData).then(res => {
ElMessage({
message: '发起成功',
type: 'success'
@@ -1490,7 +1221,7 @@ const confirmForm = (flag: boolean) => {
close()
})
} else {
resend(confirmFormData).then(res => {
await resend(confirmFormData).then(res => {
ElMessage({
message: '重新发起成功',
type: 'success'
@@ -1501,7 +1232,7 @@ const confirmForm = (flag: boolean) => {
})
}
} else {
updateFormData(confirmFormData).then(res => {
await updateFormData(confirmFormData).then(res => {
ElMessage({
message: '重新发起成功',
type: 'success'
@@ -1519,6 +1250,9 @@ const confirmForm = (flag: boolean) => {
}
})
}
await setTimeout(() => {
loading.value = false
}, 0)
}
// 过滤用户
@@ -1535,18 +1269,20 @@ const setcontroFlag = () => {
defineExpose({ open, filterUsers, setcontroFlag })
</script>
<style lang="scss" scoped>
.el-form {
}
.el-form {}
.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;

View File

@@ -50,8 +50,8 @@
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<!-- <el-button type="primary" @click="submit">确认</el-button> -->
<el-button type="primary" @click="submit(true)">保存</el-button>
<el-button type="primary" @click="submit(false)">提交审批</el-button>
<el-button type="primary" @click="submit(true)" :loading="loading" >保存</el-button>
<el-button type="primary" @click="submit(false)" :loading="loading" >提交审批</el-button>
</span>
</template>
</el-dialog>
@@ -74,6 +74,7 @@ const sourceData = ref()
const deviceList = ref()
const data = ref()
const title = ref('')
const loading = ref(false)
const tableStore = inject('tableStore') as TableStore
const formRef = ref()
const devStatuData: any = ref([])
@@ -171,11 +172,12 @@ const open = async (text: string, tempData?: any) => {
/**
* 提交用户表单数据
*/
const submit = (flag: boolean) => {
const submit =async (flag: boolean) => {
loading.value = true
if (flag) {
form.value.saveOrCheckflag = '1'
addRunningDevice(form.value).then(res => {
await addRunningDevice(form.value).then(res => {
ElMessage.success('保存成功!')
tableStore.index()
dialogVisible.value = false
@@ -211,6 +213,9 @@ const submit = (flag: boolean) => {
}
})
}
await setTimeout(() => {
loading.value = false
}, 0)
}
/**

View File

@@ -60,8 +60,8 @@
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<!-- <el-button type="primary" @click="submit">确认</el-button> -->
<el-button type="primary" @click="submit(true)">保存</el-button>
<el-button type="primary" @click="submit(false)">提交审批</el-button>
<el-button type="primary" @click="submit(true)" :loading="loading" >保存</el-button>
<el-button type="primary" @click="submit(false)" :loading="loading" >提交审批</el-button>
</span>
</template>
</el-dialog>
@@ -79,6 +79,7 @@ const sourceData = ref()
const lineList = ref()
const data = ref()
const title = ref('')
const loading = ref(false)
const tableStore = inject('tableStore') as TableStore
const formRef = ref()
const runFlag = ref('')
@@ -148,11 +149,12 @@ const open = async (text: string, tempData?: any) => {
/**
* 提交用户表单数据
*/
const submit = (flag: boolean) => {
const submit = async (flag: boolean) => {
loading.value = true
if (flag) {
form.value.saveOrCheckflag = '1'
addRunningDevice(form.value).then(res => {
await addRunningDevice(form.value).then(res => {
ElMessage.success('保存成功!')
tableStore.index()
dialogVisible.value = false
@@ -178,6 +180,9 @@ const submit = (flag: boolean) => {
}
})
}
await setTimeout(() => {
loading.value = false
}, 0)
}
/**

View File

@@ -70,8 +70,8 @@
<span class="dialog-footer">
<el-button @click="close">取消</el-button>
<!-- <el-button type="primary" @click="submit">确认</el-button> -->
<el-button type="primary" @click="submit(true)">保存</el-button>
<el-button type="primary" @click="submit(false)">提交审批</el-button>
<el-button type="primary" @click="submit(true)" :loading="loading" >保存</el-button>
<el-button type="primary" @click="submit(false)" :loading="loading" >提交审批</el-button>
</span>
</template>
</el-dialog>
@@ -90,6 +90,7 @@ const openFile = (name: any) => {
const acceptType = ref('')
//下拉数据源
const title = ref('')
const loading = ref(false)
const tableStore = inject('tableStore') as TableStore
const formRef = ref()
// 上传报告
@@ -206,7 +207,8 @@ const close = () => {
/**
* 提交用户表单数据
*/
const submit = (flag: boolean) => {
const submit =async (flag: boolean) => {
loading.value = true
if (flag) {
let subForm = JSON.parse(JSON.stringify(form.value))
subForm = {
@@ -215,7 +217,7 @@ const submit = (flag: boolean) => {
}
subForm.saveOrCheckflag = '1'
//此时该告警单处于待反馈状态
addFeedback(subForm).then(res => {
await addFeedback(subForm).then(res => {
//查询进线数据避免一直处于loading状态
ElMessage.success('保存成功!')
tableStore.index()
@@ -254,6 +256,9 @@ const submit = (flag: boolean) => {
}
})
}
await setTimeout(() => {
loading.value = false
}, 0)
}
defineExpose({ open })

View File

@@ -3,28 +3,20 @@
<TableHeader ref="TableHeaderRef">
<template #select>
<el-form-item label="项目名称">
<el-input
style="width: 200px"
placeholder="请输入项目名称"
v-model="tableStore.table.params.projectName"
clearable
></el-input>
<el-input style="width: 200px" placeholder="请输入项目名称" v-model="tableStore.table.params.projectName"
clearable></el-input>
</el-form-item>
<el-form-item label="所在地市">
<el-select v-model="tableStore.table.params.city" clearable placeholder="请选择所在地市">
<el-option
v-for="item in areaOptionList"
:key="item.id"
:label="item.name"
:value="item.name"
></el-option>
<el-option v-for="item in areaOptionList" :key="item.id" :label="item.name"
:value="item.name"></el-option>
</el-select>
</el-form-item>
</template>
<template #operation>
<el-button icon="el-icon-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>
@@ -58,6 +50,7 @@ const addForms = ref()
const dictData = useDictData()
const sensitiveUserPopup = ref()
const TableHeaderRef = ref()
const loading = ref(false)
const areaOptionList = dictData.getBasicData('jibei_area')
const { push, options, currentRoute } = useRouter()
import { useAdminInfo } from '@/stores/adminInfo'
@@ -338,8 +331,9 @@ const getUserTypeName = (userType: any) => {
return '新建电网工程'
}
//导出模板
const exportExcelTemplate = () => {
downloadSensitiveReportTemplate().then((res: any) => {
const exportExcelTemplate = async() => {
loading.value = true
await downloadSensitiveReportTemplate().then((res: any) => {
let blob = new Blob([res], {
type: 'application/vnd.ms-excel'
})
@@ -351,6 +345,9 @@ const exportExcelTemplate = () => {
link.click()
link.remove()
})
await setTimeout(() => {
loading.value = false
},0)
}
//批量导入用户数据
@@ -358,7 +355,7 @@ const importUserData = () => {
sensitiveUserPopup.value.open('导入干扰源用户')
}
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]
@@ -374,5 +371,5 @@ watch(() => props.id, async (newValue, oldValue) => {
})
}
})
}, {immediate: true})
}, { immediate: true })
</script>

View File

@@ -3,28 +3,20 @@
<TableHeader ref="TableHeaderRef">
<template #select>
<el-form-item label="项目名称">
<el-input
style="width: 200px"
placeholder="请输入项目名称"
v-model="tableStore.table.params.projectName"
clearable
></el-input>
<el-input style="width: 200px" placeholder="请输入项目名称" v-model="tableStore.table.params.projectName"
clearable></el-input>
</el-form-item>
<el-form-item label="所在地市">
<el-select v-model="tableStore.table.params.city" clearable placeholder="请选择所在地市">
<el-option
v-for="item in areaOptionList"
:key="item.id"
:label="item.name"
:value="item.name"
></el-option>
<el-option v-for="item in areaOptionList" :key="item.id" :label="item.name"
:value="item.name"></el-option>
</el-select>
</el-form-item>
</template>
<template #operation>
<el-button icon="el-icon-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>
@@ -53,6 +45,7 @@ import { ElMessage } from 'element-plus'
const dictData = useDictData()
const sensitiveUserPopup = ref()
const TableHeaderRef = ref()
const loading = ref(false)
const areaOptionList = dictData.getBasicData('jibei_area')
const loadLevelOptionList = dictData.getBasicData('load_level')
const powerSupplyInfoOptionList = dictData.getBasicData('supply_condition')
@@ -257,8 +250,9 @@ const getUserTypeName = (userType: any) => {
}
//导出模板
const exportExcelTemplate = () => {
downloadSensitiveUserTemplate().then((res: any) => {
const exportExcelTemplate = async () => {
loading.value = true
await downloadSensitiveUserTemplate().then((res: any) => {
let blob = new Blob([res], {
type: 'application/vnd.ms-excel'
})
@@ -270,6 +264,9 @@ const exportExcelTemplate = () => {
link.click()
link.remove()
})
await setTimeout(() => {
loading.value = false
}, 0)
}
//批量导入用户数据

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,14 +328,14 @@ 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 => {
await getTerminalDetailsById({ id: fullId }).then(res => {
if (res && res.code == 'A0000') {
addForms.value.open({
title: '重新发起',
@@ -345,7 +343,7 @@ watch(() => props.id, async (newValue, oldValue) => {
})
}
})
}, {immediate: true})
}, { immediate: true })
</script>

View File

@@ -11,34 +11,22 @@
</template>
<!-- 情况一流程表单 -->
<el-col v-if="processInstance?.processDefinition?.formType === 10" :offset="6" :span="16">
<form-create
v-model="detailForm.value"
v-model:api="fApi"
:option="detailForm.option"
:rule="detailForm.rule"
/>
<form-create v-model="detailForm.value" v-model:api="fApi" :option="detailForm.option"
:rule="detailForm.rule" />
</el-col>
<!-- 情况二业务表单 -->
<div v-if="processInstance?.processDefinition?.formType === 20">
<BusinessFormComponent :id="processInstance.businessKey" :applyTitle="processInstance.name" />
</div>
</el-card>
<el-card
v-for="(item, index) in runningTasks"
:key="index"
v-loading="processInstanceLoading"
class="box-card"
>
<el-card v-for="(item, index) in runningTasks" :key="index" v-loading="processInstanceLoading"
class="box-card">
<template #header>
<span class="el-icon-picture-outline">当前任务{{ item.name }}</span>
</template>
<el-col :offset="6" :span="16">
<el-form
:ref="'form' + index"
:model="auditForms[index]"
:rules="auditRule"
label-width="100px"
>
<el-form :ref="'form' + index" :model="auditForms[index]" :rules="auditRule"
label-width="100px">
<el-form-item v-if="processInstance && processInstance.name" label="流程名">
{{ processInstance.name }}
</el-form-item>
@@ -55,20 +43,12 @@
{{ runningTasks[index]?.formName }}
</span>
</template>
<form-create
v-model="approveForms[index].value"
v-model:api="approveFormFApis[index]"
:option="approveForms[index].option"
:rule="approveForms[index].rule"
/>
<form-create v-model="approveForms[index].value" v-model:api="approveFormFApis[index]"
:option="approveForms[index].option" :rule="approveForms[index].rule" />
</el-card>
<el-form-item label="审批建议" prop="reason" style="margin-top: 15px">
<el-input
v-model="auditForms[index].reason"
placeholder="请输入审批建议"
type="textarea"
/>
<el-input v-model="auditForms[index].reason" placeholder="请输入审批建议" type="textarea" />
</el-form-item>
<!-- <el-form-item label='抄送人' prop='copyUserIds'>-->
<!-- <el-select v-model='auditForms[index].copyUserIds' multiple placeholder='请选择抄送人'>-->
@@ -82,8 +62,10 @@
<!-- </el-form-item>-->
</el-form>
<div style="margin-bottom: 20px; margin-left: 10%; font-size: 14px">
<el-button type="success" :icon="Select" @click="handleAudit(item, true)">通过</el-button>
<el-button type="danger" :icon="Close" @click="handleAudit(item, false)">通过</el-button>
<el-button type="success" :icon="Select" @click="handleAudit(item, true)"
:loading="loading">通过</el-button>
<el-button type="danger" :icon="Close" @click="handleAudit(item, false)"
:loading="loading">不通过</el-button>
<!-- <el-button type='primary' @click='openTaskUpdateAssigneeForm(item.id)'>-->
<!-- <Icon icon='ep:edit' />-->
<!-- 转办-->
@@ -110,12 +92,8 @@
</template>
<!-- 情况一流程表单 -->
<el-col v-if="processInstance?.processDefinition?.formType === 10" :offset="6" :span="16">
<form-create
v-model="detailForm.value"
v-model:api="fApi"
:option="detailForm.option"
:rule="detailForm.rule"
/>
<form-create v-model="detailForm.value" v-model:api="fApi" :option="detailForm.option"
:rule="detailForm.rule" />
</el-col>
<!-- 情况二业务表单 -->
<div v-if="processInstance?.processDefinition?.formType === 20">
@@ -125,22 +103,12 @@
</el-tab-pane>
<el-tab-pane label="审批记录" name="审批记录">
<!-- 审批记录 -->
<ProcessInstanceTaskList
:loading="tasksLoad"
:process-instance="processInstance"
:tasks="tasks"
@refresh="getTaskList"
/>
<ProcessInstanceTaskList :loading="tasksLoad" :process-instance="processInstance" :tasks="tasks"
@refresh="getTaskList" />
</el-tab-pane>
<el-tab-pane label="流程图" name="流程图">
<ProcessInstanceBpmnViewer
ref="mapRef"
:id="`${id}`"
:bpmn-xml="bpmnXml"
:loading="processInstanceLoading"
:process-instance="processInstance"
:tasks="tasks"
/>
<ProcessInstanceBpmnViewer ref="mapRef" :id="`${id}`" :bpmn-xml="bpmnXml"
:loading="processInstanceLoading" :process-instance="processInstance" :tasks="tasks" />
</el-tab-pane>
</el-tabs>
<ContentWrap>
@@ -192,6 +160,7 @@ const processInstanceLoading = ref(false) // 流程实例的加载中
const processInstance = ref({}) // 流程实例
const bpmnXml = ref('') // BPMN XML
const tasksLoad = ref(true) // 任务的加载中
const loading = ref(false) // 任务的加载中
const tasks = ref<any[]>([]) // 任务列表
// ========== 审批信息 ==========
const runningTasks = ref<any[]>([]) // 运行中的任务
@@ -226,6 +195,7 @@ watch(
/** 处理审批通过和不通过的操作 */
const handleAudit = async (task, pass) => {
loading.value = true
// 1.1 获得对应表单
const index = runningTasks.value.indexOf(task)
const auditFormRef = proxy.$refs['form' + index][0]
@@ -262,7 +232,10 @@ const handleAudit = async (task, pass) => {
ElMessage.success('审批不通过成功')
}
// 2.2 加载最新数据
getDetail()
await getDetail()
await setTimeout(() => {
loading.value = false
}, 0);
}
/** 转派审批人 */
@@ -479,6 +452,7 @@ onMounted(async () => {
height: calc(100vh - 200px) !important;
overflow: auto !important;
}
::v-deep .el-col-offset-6 {
margin-left: 15% !important;
}