联调 辽宁台账维护 页面 修改 冀北 bug

This commit is contained in:
GGJ
2024-08-15 20:31:02 +08:00
parent fd5458105e
commit 9e1bbe8dc3
23 changed files with 794 additions and 39 deletions

View File

@@ -286,7 +286,7 @@ resetForm()
const detailLoading = ref(false) // 表单的加载中
const getInfo = async (row?: any) => {
console.log('🚀 ~ getInfo ~ row:', row)
detailLoading.value = true
try {
await getUserReportById(props.id).then(res => {

View File

@@ -178,10 +178,10 @@ const tableStore = new TableStore({
icon: 'el-icon-Open',
render: 'basicButton',
showDisabled: row => {
return row.createBy != adminInfo.$state.id || !(row.status == 0)
return !(row.status == 0 || row.status == 3)
},
disabled: row => {
return !(row.status == 0)
return !(row.status == 0 || row.status == 3)
},
click: row => {
dialogVisible.value = true

View File

@@ -158,6 +158,27 @@
<el-radio :value="0"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="关联终端" prop="devId" v-if="props.openType != 'create'">
<el-select v-model="form.devId" placeholder="请选择关联终端" @change="changeDevId">
<el-option
v-for="(item, index) in devIdList"
:label="item.devName"
:value="item.devId"
:key="index"
/>
</el-select>
</el-form-item>
<el-form-item label="关联监测点" prop="lineId" v-if="props.openType != 'create'">
<el-select v-model="form.lineId" placeholder="请选择关联监测点">
<el-option
v-for="(item, index) in lineIdList"
:label="item.lineName"
:value="item.lineId"
:key="index"
/>
</el-select>
</el-form-item>
<el-form-item
for="-"
v-if="form.userType != '0' && form.userType != '1'"
@@ -361,7 +382,6 @@
action=""
:accept="acceptType"
:limit="1"
:on-exceed="handleExceed"
:on-change="choose"
:auto-upload="false"
:on-remove="removeFile"
@@ -379,7 +399,6 @@
action=""
:accept="acceptType"
:limit="1"
:on-exceed="handleExceed"
:on-change="choose"
:auto-upload="false"
:on-remove="removeFile"
@@ -397,7 +416,6 @@
action=""
:accept="acceptType"
:limit="1"
:on-exceed="handleExceed"
:on-change="choose"
:auto-upload="false"
:on-remove="removeFile"
@@ -420,7 +438,6 @@
action=""
:accept="acceptType"
:limit="1"
:on-exceed="handleExceed"
:on-change="choose"
:auto-upload="false"
:on-remove="removeFile"
@@ -438,7 +455,6 @@
action=""
:accept="acceptType"
:limit="1"
:on-exceed="handleExceed"
:on-change="choose"
:auto-upload="false"
:on-remove="removeFile"
@@ -462,7 +478,6 @@
action=""
:accept="acceptType"
:limit="1"
:on-exceed="handleExceed"
:on-change="choose"
:auto-upload="false"
:on-remove="removeFile"
@@ -486,7 +501,6 @@
action=""
:accept="acceptType"
:limit="1"
:on-exceed="handleExceed"
:on-change="choose"
:auto-upload="false"
:on-remove="removeFile"
@@ -510,7 +524,6 @@
action=""
:accept="acceptType"
:limit="1"
:on-exceed="handleExceed"
:on-change="choose"
:auto-upload="false"
:on-remove="removeFile"
@@ -534,7 +547,6 @@
action=""
:accept="acceptType"
:limit="1"
:on-exceed="handleExceed"
:on-change="choose"
:auto-upload="false"
:on-remove="removeFile"
@@ -545,6 +557,7 @@
</template>
</el-upload>
</el-form-item>
<addUpload ref="addUploadRef" v-if="props.openType == 'create'" />
</el-form>
<template #footer>
<div class="dialog-footer">
@@ -565,8 +578,16 @@ import type { ComponentSize, FormInstance, FormRules } from 'element-plus'
import { useAdminInfo } from '@/stores/adminInfo'
import { queryByAllCode } from '@/api/system-boot/dictTree'
import { uploadFile } from '@/api/system-boot/file'
import { submitFormData, getById, updateFormData, addEditor, resend } from '@/api/supervision-boot/interfere/index'
import {
submitFormData,
getById,
updateFormData,
addEditor,
resend,
getByDeptDevLine
} from '@/api/supervision-boot/interfere/index'
import { getUserReportUpdateById } from '@/api/supervision-boot/userReport/form'
import addUpload from './addUpload.vue'
import { useRoute } from 'vue-router'
const route = useRoute()
const isInterferencemanagement: any = ref(false)
@@ -596,6 +617,7 @@ const dialogFormVisible = ref(false)
// .doc,.docx,.xlsx,.xls,.pdf
const acceptType = ''
const form: any = ref({})
const addUploadRef: any = ref()
const control: any = ref(true)
const ruleFormRef: any = ref(null)
//字典获取所在地市
@@ -606,7 +628,8 @@ const areaOptionList = dictData
//字典获取敏感电能质量指标
// const energyQualityIndexList = dictData.getBasicData('Indicator_Type')
const energyQualityIndexList = dictData.getBasicData('Problem_Indicators')
const devIdList: any = ref([])
const lineIdList: any = ref([])
//字典获取行业类型
const industryList = dictData.getBasicData('industry_type_jb')
//字典电压等级
@@ -700,6 +723,8 @@ const resetForm = () => {
evaluationDept: evaluationDeptList[0].name, //预测评估单位 1
evaluationConclusion: '', //预测评估结论 1
backgroundTestPerformed: 0, //是否开展背景测试 1
devId: '', //关联终端 1
lineId: '', //关联监测点 1
feasibilityReport: [], // 可研报告告地址 1
preliminaryDesignDescription: [], //项目初步设计说明书告地址 1
predictionEvaluationReport: [], //预测评估报告地址 1
@@ -789,6 +814,8 @@ const subForm: any = ref({
expectedProductionDate: '', //工程预期投产日期
orgId: '', //填报部门
projectName: '',
devId: 0, //关联终端 1
lineId: 0, //关联监测点 1
reporter: '', //填报人
reportDate: new Date(), //填报日期
responsibleDepartment: '', //归口管理部门
@@ -872,6 +899,8 @@ const rules = ref({
voltageLevel: [{ required: true, message: '请选择电压等级', trigger: 'change' }],
evaluationDept: [{ required: true, message: '请选择预测评估单位', trigger: 'change' }],
evaluationConclusion: [{ required: true, message: '请输入预测评估结论', trigger: 'blur' }],
devId: [{ required: true, message: '请选择关联终端', trigger: 'change' }],
lineId: [{ required: true, message: '请选择关联监测点', trigger: 'change' }],
agreementCapacity: [{ required: true, message: '请选择用户协议容量', trigger: 'blur' }],
nonlinearDeviceType: [{ required: true, message: '请选择非线性终端类型', trigger: 'change' }],
needGovernance: [{ required: true, message: '请选择是否需要治理', trigger: 'change' }],
@@ -1025,10 +1054,11 @@ const status = ref('')
const open = async (row: any) => {
title.value = row.title
dialogFormVisible.value = true
let deptIds = adminInfo.$state.deptId
if (row.row) {
resendId.value = row.row.id
status.value = row.row.status
deptIds = row.row.orgId
if (props.update) {
await getUserReportUpdateById(row.row.id).then(res => {
handleResponse(res.data.userReportMessageJson)
@@ -1042,6 +1072,12 @@ const open = async (row: any) => {
resendId.value = ''
form.value.userType = userTypeList.value[0].value
}
setTimeout(() => {
getByDeptDevLine({ id: deptIds }).then(res => {
devIdList.value = res.data
changeDevId(form.value.devId, false)
})
}, 10)
}
async function handleResponse(data: any) {
// userType logic is commented out; if needed, implement accordingly
@@ -1186,7 +1222,14 @@ const choose = (e: any) => {
}
})
}
// 关联终端
const changeDevId = (e: any, flag?: boolean = true) => {
if (flag) {
form.value.lineId = ''
}
lineIdList.value = devIdList.value.filter(item => item.devId == e)[0]?.lineList
}
//设置工程预期投产日期时间选择范围不能<今天
const disabledDate = (time: any) => {
// return time.getTime() < Date.now() - 8.64e7 // 8.64e7 毫秒数代表一天
@@ -1194,6 +1237,7 @@ const disabledDate = (time: any) => {
}
//提交
const confirmForm = (flag: boolean) => {
addUploadRef.value?.submitForm()
if (flag) {
//整理上传文件的数据
// userType==0,1

View File

@@ -0,0 +1,204 @@
<template>
<el-form-item label="入网设计方案审查报告">
<el-upload
v-model:file-list="form.NetReport"
ref="NetReportRef"
action=""
accept=".doc,.docx,.xlsx,.xls,.pdf"
:limit="1"
@change="choose($event, 'NetReport')"
:auto-upload="false"
>
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item label="治理工程验收报告">
<el-upload
v-model:file-list="form.governReport"
action=""
accept=".doc,.docx,.xlsx,.xls,.pdf"
:limit="1"
@change="choose($event, 'governReport')"
:auto-upload="false"
>
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item label="信息安全检测报告">
<el-upload
v-model:file-list="form.informationSecurityTestReport"
action=""
accept=".doc,.docx,.xlsx,.xls,.pdf"
:limit="1"
@change="choose($event, 'informationSecurityTestReport')"
:auto-upload="false"
>
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item label="验收检验报告单">
<el-upload
v-model:file-list="form.acceptanceInspectionReportSingle"
action=""
accept=".doc,.docx,.xlsx,.xls,.pdf"
:limit="1"
@change="choose($event, 'acceptanceInspectionReportSingle')"
:auto-upload="false"
>
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item label="验收检验报告">
<el-upload
v-model:file-list="form.acceptanceInspectionReport"
action=""
accept=".doc,.docx,.xlsx,.xls,.pdf"
:limit="1"
@change="choose($event, 'acceptanceInspectionReport')"
:auto-upload="false"
>
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item label="型式实验报告">
<el-upload
v-model:file-list="form.typeExperimentReport"
action=""
accept=".doc,.docx,.xlsx,.xls,.pdf"
:limit="1"
@change="choose($event, 'typeExperimentReport')"
:auto-upload="false"
>
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item label="出厂检验报告">
<el-upload
v-model:file-list="form.factoryInspectionReport"
action=""
accept=".doc,.docx,.xlsx,.xls,.pdf"
:limit="1"
@change="choose($event, 'factoryInspectionReport')"
:auto-upload="false"
>
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item label="性能检测报告">
<el-upload
v-model:file-list="form.performanceTestReport"
action=""
accept=".doc,.docx,.xlsx,.xls,.pdf"
:limit="1"
@change="choose($event, 'performanceTestReport')"
:auto-upload="false"
>
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item label="主接线图">
<el-upload
v-model:file-list="form.mainWiringDiagram"
action=""
accept=".doc,.docx,.xlsx,.xls,.pdf"
:limit="1"
@change="choose($event, 'mainWiringDiagram')"
:auto-upload="false"
>
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
<el-form-item label="试运行报告">
<el-upload
v-model:file-list="form.runTheReport"
action=""
accept=".doc,.docx,.xlsx,.xls,.pdf"
:limit="1"
@change="choose($event, 'runTheReport')"
:auto-upload="false"
>
<template #trigger>
<el-button type="primary">上传文件</el-button>
</template>
</el-upload>
</el-form-item>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { uploadFile } from '@/api/system-boot/file'
import { genFileId, ElMessage } from 'element-plus'
import type { UploadProps, UploadRawFile } from 'element-plus'
const form = ref({
NetReport: [], //入网设计方案审查报告:
governReport: [], //治理工程验收报告
informationSecurityTestReport: [], //信息安全检测报告
acceptanceInspectionReportSingle: [], //信息安全检测报告
acceptanceInspectionReport: [], //验收检验报告:
typeExperimentReport: [], //型式实验报告
factoryInspectionReport: [], //出厂检验报告:
performanceTestReport: [], //性能检测报告
mainWiringDiagram: [], //主接线图:
runTheReport: [], //试运行报告
})
const formName = ref({
NetReport: '',
governReport: '',
informationSecurityTestReport: '',
acceptanceInspectionReportSingle: '',
acceptanceInspectionReport: '',
typeExperimentReport: '',
factoryInspectionReport: '',
performanceTestReport: '',
mainWiringDiagram: '',
runTheReport: '',
})
const choose = (e: any, name: string) => {
console.log('🚀 ~ choose ~ name:', name)
uploadFile(e.raw, '/supervision/').then(res => {
formName.value[name] = res.data.name
})
}
const submitForm = () => {
console.log(formName.value)
}
defineExpose({ submitForm })
</script>
<style lang="scss" scoped>
.el-form-item__content > div:first-child {
display: flex;
}
:deep(.el-upload-list) {
margin: 0;
.el-upload-list__item {
height: 25px;
}
.el-upload-list__item-file-name {
width: 150px !important;
height: 25px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
</style>

View File

@@ -102,6 +102,19 @@
{{ proviteData.backgroundTestPerformed == 0 ? '否' : '是' }}
</span>
</el-descriptions-item>
<el-descriptions-item label="关联终端" v-if="props.openType != 'create'">
<span>
{{ devIdList[0]?.devName }}
</span>
</el-descriptions-item>
<el-descriptions-item label="关联监测点" v-if="props.openType != 'create'">
<span>
<!-- {{ detailData?.lineId }} -->
{{ devIdList[0]?.lineList.filter(item => item.lineId == detailData?.lineId)[0].lineName }}
</span>
</el-descriptions-item>
<el-descriptions-item label="是否开展抗扰度测试" v-if="detailData.userType == 6">
<span>
{{ proviteData.antiInterferenceTest == 0 ? '否' : '是' }}
@@ -346,6 +359,7 @@ import { useDictData } from '@/stores/dictData'
import { getFileNameAndFilePath } from '@/api/system-boot/file'
import { Link, View } from '@element-plus/icons-vue'
import PreviewFile from '@/components/PreviewFile/index.vue'
import { getByDeptDevLine } from '@/api/supervision-boot/interfere/index'
defineOptions({ name: 'BpmUserReportDetail' })
const { query } = useRoute() // 查询参数
@@ -355,10 +369,15 @@ const props = defineProps({
update: {
type: Boolean,
default: false
},
openType: {
type: String,
default: 'create'
}
})
const detailLoading = ref(false) // 表单的加载中
const detailData = ref<any>({}) // 详情数据
const devIdList = ref([])
const queryId = query.id as unknown as string // 从 URL 传递过来的 id 编号
const openFile = (name: any) => {
window.open(window.location.origin + '/#/previewFile?/supervision/' + name)
@@ -595,6 +614,11 @@ const getProviteData = async () => {
}
})
}
// 调用关联终端接口
getByDeptDevLine({ id: detailData.value.orgId }).then(res => {
devIdList.value = res.data.filter((item: any) => item.devId == detailData.value.devId)
})
}
//根据文件名请求
const getFileNamePath = async (val: any, pathName: any) => {

View File

@@ -78,7 +78,14 @@ const tableStore = new TableStore({
column: [
{ title: '序号', type: 'seq', width: 80 },
// { field: 'responsibleDepartment', title: '归口管理部门', minWidth: 130 },
{ field: 'city', title: '所在地市', minWidth: 80 },
{
field: 'city',
title: '所在地市',
minWidth: 80,
formatter: (obj: any) => {
return areaOptionList.filter(item => item.id == obj.row.city)[0]?.name
}
},
{
field: 'substation',
title: '变电站',