修改 技术监督 现场问题

This commit is contained in:
GGJ
2024-07-23 15:03:48 +08:00
parent 049d0c1132
commit 33814bf712
13 changed files with 237 additions and 105 deletions

View File

@@ -127,6 +127,7 @@
v-for="item in btn.buttons"
:key="item.text"
:command="item"
:disabled="item.showDisabled && item.showDisabled(row, field)"
:style="{
color: item.type === 'primary' ? 'var(--el-color-primary)' : 'var(--el-color-danger)'
}"

View File

@@ -1,53 +1,54 @@
<template>
<el-dialog draggable v-model="dialogVisible" :title="title" width="80%" :before-close="handleClose">
<div style="height: 45vh">
<vxe-table height="auto" v-bind="defaultAttribute" :data="List">
<vxe-column field="dept" title="负责单位"></vxe-column>
<vxe-column field="substation" title="变电站名称"></vxe-column>
<vxe-column field="deviceName" title="终端名称"></vxe-column>
<vxe-column field="lineName" title="监测点名称"></vxe-column>
<vxe-column
field="businessType"
title="监测对象类型"
:formatter="row => industry.find((item: any) => item.id == row.cellValue)?.name || '/'"
></vxe-column>
<vxe-column field="objectName" title="监测对象名称"></vxe-column>
<vxe-column
field="targetType"
title="指标类型"
:formatter="row => exceeded.find((item: any) => item.id == row.cellValue)?.name || '/'"
></vxe-column>
<vxe-column
field="overLimitDay"
title="累计超标天数"
:formatter="row => (row.cellValue != null ? row.cellValue : '/')"
></vxe-column>
</vxe-table>
</div>
<el-form :model="form" ref="formRef" class="form-two mt10 alarmForm" :rules="rules" label-width="auto">
<el-form-item label="问题描述:" prop="issueDetail">
<el-input
v-model="form.issueDetail"
:rows="2"
type="textarea"
clearable
style="width: 100%"
placeholder="请输入问题描述"
></el-input>
</el-form-item>
<div v-loading="loading">
<div style="height: 45vh">
<vxe-table height="auto" v-bind="defaultAttribute" :data="List">
<vxe-column field="dept" title="负责单位"></vxe-column>
<vxe-column field="substation" title="变电站名称"></vxe-column>
<vxe-column field="deviceName" title="终端名称"></vxe-column>
<vxe-column field="lineName" title="监测点名称"></vxe-column>
<vxe-column
field="businessType"
title="监测对象类型"
:formatter="row => industry.find((item: any) => item.id == row.cellValue)?.name || '/'"
></vxe-column>
<vxe-column field="objectName" title="监测对象名称"></vxe-column>
<vxe-column
field="targetType"
title="指标类型"
:formatter="row => exceeded.find((item: any) => item.id == row.cellValue)?.name || '/'"
></vxe-column>
<vxe-column
field="overLimitDay"
title="累计超标天数"
:formatter="row => (row.cellValue != null ? row.cellValue : '/')"
></vxe-column>
</vxe-table>
</div>
<el-form :model="form" ref="formRef" class="form-two mt10 alarmForm" :rules="rules" label-width="auto">
<el-form-item label="问题描述:" prop="issueDetail">
<el-input
v-model="form.issueDetail"
:rows="2"
type="textarea"
clearable
style="width: 100%"
placeholder="请输入问题描述"
></el-input>
</el-form-item>
<el-form-item label="整改意见:" prop="reformAdvice">
<el-input
v-model="form.reformAdvice"
:rows="2"
type="textarea"
clearable
style="width: 100%"
placeholder="请输入整改意见"
></el-input>
</el-form-item>
<el-form-item label="整改意见:" prop="reformAdvice">
<el-input
v-model="form.reformAdvice"
:rows="2"
type="textarea"
clearable
style="width: 100%"
placeholder="请输入整改意见"
></el-input>
</el-form-item>
<el-form-item label="编号:" prop="year">
<!-- <el-form-item label="编号:" prop="year">
<div style="width: 100%; display: flex; justify-content: space-between">
<el-input style="width: 49%" v-model="form.year" placeholder="请输入年份">
<template #append>年份</template>
@@ -56,8 +57,10 @@
<template #append>编号</template>
</el-input>
</div>
</el-form-item>
</el-form>
</el-form-item> -->
</el-form>
</div>
<template #footer>
<span class="dialog-footer">
<el-button @click="handleClose">取消</el-button>
@@ -80,6 +83,7 @@ const title: any = ref('')
const industry = dictData.getBasicData('Business_Type')
const form: any = ref({})
const exceeded = dictData.getBasicData('Indicator_Type')
const loading = ref(false)
const resetForm = () => {
form.value = {
issueDetail: '',
@@ -101,15 +105,22 @@ const submit = () => {
console.log('🚀 ~ open ~ form.value:', form.value)
formRef.value.validate(valid => {
if (valid) {
loading.value = true
report({
...form.value,
type: title.value == '发起预警单' ? 1 : 2,
idList: List.value.map(item => item.id)
}).then(res => {
ElMessage.success('发起成功')
dialogVisible.value = false
emits('onSubmit')
})
.then(res => {
loading.value = false
ElMessage.success('发起成功')
dialogVisible.value = false
emits('onSubmit')
})
.catch(() => {
loading.value = false
})
} else {
console.log('表单验证失败')
return false
@@ -121,6 +132,7 @@ const open = (row: any) => {
dialogVisible.value = true
List.value = row.row
title.value = row.text
form.value = { ...form.value, ...row.form }
}

View File

@@ -324,6 +324,8 @@ tableStore.table.params.dataType = '1'
tableStore.table.params.deptId = dictData.state.area[0].id
provide('tableStore', tableStore)
onMounted(() => {
TableHeaderRef.value.setDatePicker([{ label: '月', value: 3 }])
tableStore.index()
setTimeout(() => {
TableHeaderRef.value.showSelectChange()

View File

@@ -14,6 +14,10 @@
</TableHeader>
<Table ref="tableRef" />
<testQuestionsForm ref="testQuestionsFormRef" />
<!-- 详情 -->
<el-dialog draggable v-model="dialogVisible" v-if="dialogVisible" title="详情" width="1000">
<detail :id="detailId" :flag="false"/>
</el-dialog>
</template>
<script setup lang="ts">
import { ref, onMounted, provide, nextTick } from 'vue'
@@ -22,14 +26,17 @@ import Table from '@/components/table/index.vue'
import TableHeader from '@/components/table/header/index.vue'
import testQuestionsForm from './form/testQuestionsForm.vue'
import { initiateWarningLeaflet } from '@/api/supervision-boot/survey/test'
import { ElMessage,ElMessageBox } from 'element-plus'
import { ElMessage, ElMessageBox } from 'element-plus'
import { useRouter } from 'vue-router'
import { useDictData } from '@/stores/dictData'
import detail from '@/views/pqs/supervise/harmonicSurvey/test/detail.vue'
const dictData = useDictData()
const { push } = useRouter()
const router = useRouter() // 路由对象
const tableRef = ref()
const TableHeaderRef = ref()
const dialogVisible = ref(false)
const detailId = ref('')
const testQuestionsFormRef = ref()
const tableStore = new TableStore({
url: '/supervision-boot/surveyTest/pageProblemSurvey',
@@ -67,6 +74,18 @@ const tableStore = new TableStore({
render: 'buttons',
fixed: 'right',
buttons: [
{
name: 'edit',
title: '详情',
type: 'primary',
icon: 'el-icon-Open',
render: 'basicButton',
click: async row => {
dialogVisible.value = true
detailId.value = row.id
}
},
{
name: 'edit',
title: '发起告警单',

View File

@@ -273,14 +273,14 @@ const audit = (filePath: any) => {
if (title.value == '计划测试填报') {
addSurvey({ ...form.value, filePath: filePath }).then((res: any) => {
ElMessage.success('新增成功!')
cancelFn()
emit('onsubmit')
cancelFn()
})
} else if (title.value == '重新发起计划') {
auditSurvey({ ...form.value, filePath: filePath }).then((res: any) => {
ElMessage.success('重新发起计划成功!')
cancelFn()
emit('onsubmit')
cancelFn()
})
}
}

View File

@@ -192,7 +192,7 @@ const tableStore = new TableStore({
icon: 'el-icon-Open',
render: 'basicButton',
disabled: row => {
return row.createBy != adminInfo.$state.id || !(row.status == 3 || row.status == 4)
return row.deptId != adminInfo.$state.deptId || !(row.status == 3 || row.status == 4)
},
click: row => {
planTestRef.value.open('重新发起计划测试', row.id, false)
@@ -205,7 +205,7 @@ const tableStore = new TableStore({
icon: 'el-icon-Open',
render: 'basicButton',
disabled: row => {
return row.createBy != adminInfo.$state.id || row.status != 1
return row.deptId != adminInfo.$state.deptId || row.status != 1
},
click: row => {
cancelLeave(row)

View File

@@ -60,11 +60,11 @@
<a :href="detailData.testReport" target="_blank">{{ detailData.testReportName }}</a>
</el-descriptions-item>
<el-descriptions-item label="流程状态">
<!-- <el-descriptions-item label="流程状态" >
<el-tag :type="getDeviceStatusType(detailData?.status)">
{{ getDeviceStatus(detailData?.status) }}
</el-tag>
</el-descriptions-item>
</el-descriptions-item> -->
</el-descriptions>
</div>
</template>
@@ -78,7 +78,7 @@ import { propTypes } from '@/utils/propTypes'
import { defaultAttribute } from '@/components/table/defaultAttribute'
import { getTestById } from '@/api/supervision-boot/survey/test'
import { getFileNameAndFilePath } from '@/api/system-boot/file'
import { Link ,View} from '@element-plus/icons-vue'
import { Link, View } from '@element-plus/icons-vue'
const openFile = (name: any) => {
window.open(window.location.origin + '/#/previewFile?' + name)
}

View File

@@ -180,7 +180,9 @@
<el-icon class="elView" v-if="proviteData?.feasibilityReport.name">
<View @click="openFile(proviteData.feasibilityReport.name)" />
</el-icon>
<a :href="proviteData.feasibilityReport.url">{{ proviteData.feasibilityReport.name }}</a>
<a target="_blank" :href="proviteData.feasibilityReport.url">
{{ proviteData.feasibilityReport.name }}
</a>
</span>
<span
v-if="
@@ -193,20 +195,24 @@
<el-icon class="elView" v-if="proviteData?.feasibilityReport.name">
<View @click="openFile(proviteData.feasibilityReport.name)" />
</el-icon>
<a :href="proviteData.feasibilityReport.url">{{ proviteData.feasibilityReport.name }}</a>
<a target="_blank" :href="proviteData.feasibilityReport.url">
{{ proviteData.feasibilityReport.name }}
</a>
</span>
<span v-if="detailData.userType == 6">
<el-icon class="elView" v-if="proviteData?.feasibilityReport.name">
<View @click="openFile(proviteData.feasibilityReport.name)" />
</el-icon>
<a :href="proviteData.feasibilityReport.url">{{ proviteData.feasibilityReport.name }}</a>
<a target="_blank" :href="proviteData.feasibilityReport.url">
{{ proviteData.feasibilityReport.name }}
</a>
</span>
</el-descriptions-item>
<el-descriptions-item label="项目初步设计说明书">
<el-icon class="elView" v-if="proviteData?.preliminaryDesignDescription.name">
<View @click="openFile(proviteData?.preliminaryDesignDescription.name)" />
</el-icon>
<a :href="proviteData?.preliminaryDesignDescription.url">
<a target="_blank" :href="proviteData?.preliminaryDesignDescription.url">
{{ proviteData?.preliminaryDesignDescription.name }}
</a>
</el-descriptions-item>
@@ -214,7 +220,7 @@
<el-icon class="elView" v-if="proviteData?.predictionEvaluationReport.name">
<View @click="openFile(proviteData?.predictionEvaluationReport.name)" />
</el-icon>
<a :href="proviteData?.predictionEvaluationReport.url">
<a target="_blank" :href="proviteData?.predictionEvaluationReport.url">
{{ proviteData?.predictionEvaluationReport.name }}
</a>
</el-descriptions-item>
@@ -222,7 +228,7 @@
<el-icon class="elView" v-if="proviteData?.predictionEvaluationReviewOpinions.name">
<View @click="openFile(proviteData?.predictionEvaluationReviewOpinions.name)" />
</el-icon>
<a :href="proviteData?.predictionEvaluationReviewOpinions.url">
<a target="_blank" :href="proviteData?.predictionEvaluationReviewOpinions.url">
{{ proviteData?.predictionEvaluationReviewOpinions.name }}
</a>
</el-descriptions-item>
@@ -233,7 +239,7 @@
<el-icon class="elView" v-if="proviteData?.substationMainWiringDiagram.name">
<View @click="openFile(proviteData?.substationMainWiringDiagram.name)" />
</el-icon>
<a :href="proviteData?.substationMainWiringDiagram.url" target="_blank">
<a target="_blank" :href="proviteData?.substationMainWiringDiagram.url">
{{ proviteData?.substationMainWiringDiagram.name }}
</a>
</el-descriptions-item>
@@ -241,13 +247,15 @@
<el-icon class="elView" v-if="proviteData?.sensitiveDevices.name">
<View @click="openFile(proviteData?.sensitiveDevices.name)" />
</el-icon>
<a :href="proviteData?.sensitiveDevices.url">{{ proviteData?.sensitiveDevices.name }}</a>
<a target="_blank" :href="proviteData?.sensitiveDevices.url">
{{ proviteData?.sensitiveDevices.name }}
</a>
</el-descriptions-item>
<el-descriptions-item label="抗扰度测试报告" v-if="detailData.userType == 6">
<el-icon class="elView" v-if="proviteData?.antiInterferenceReport.name">
<View @click="openFile(proviteData?.antiInterferenceReport.name)" />
</el-icon>
<a :href="proviteData?.antiInterferenceReport.url">
<a target="_blank" :href="proviteData?.antiInterferenceReport.url">
{{ proviteData?.antiInterferenceReport.name }}
</a>
</el-descriptions-item>
@@ -255,13 +263,28 @@
<el-icon class="elView" v-if="proviteData?.powerQualityReport.name">
<View @click="openFile(proviteData?.powerQualityReport.name)" />
</el-icon>
<a :href="proviteData?.powerQualityReport.url">{{ proviteData?.powerQualityReport.name }}</a>
<a target="_blank" :href="proviteData?.powerQualityReport.url">
{{ proviteData?.powerQualityReport.name }}
</a>
</el-descriptions-item>
<el-descriptions-item label="入网评估报告" v-if="applyTitle=='干扰源用户治理工程验收'">
<div v-for="item in netInReportList">
<el-icon class="elView" v-if="item.name">
<View @click="openFile(item.name)" />
</el-icon>
<a target="_blank" :href="item.url">
{{ item.name }}
</a>
</div>
</el-descriptions-item>
<el-descriptions-item label="其他附件" v-if="proviteData?.additionalAttachments.url">
<el-icon class="elView" v-if="proviteData?.additionalAttachments.name">
<View @click="openFile(proviteData?.additionalAttachments.name)" />
</el-icon>
<a :href="proviteData?.additionalAttachments.url">{{ proviteData?.additionalAttachments.name }}</a>
<a target="_blank" :href="proviteData?.additionalAttachments.url">
{{ proviteData?.additionalAttachments.name }}
</a>
</el-descriptions-item>
</el-descriptions>
<el-divider content-position="left">{{ applyTitle + '填报信息' }}</el-divider>
@@ -282,7 +305,7 @@
<el-icon class="elView" v-if="proviteData?.otherReport.name">
<View @click="openFile(proviteData?.otherReport.nam)" />
</el-icon>
<a :href="proviteData?.otherReport.url">{{ proviteData?.otherReport.name }}</a>
<a target="_blank" :href="proviteData?.otherReport.url">{{ proviteData?.otherReport.name }}</a>
</el-descriptions-item>
</el-descriptions>
</div>
@@ -309,6 +332,7 @@ const props = defineProps({
id: propTypes.string.def(undefined),
applyTitle: propTypes.string.def(undefined)
})
const netInReportList: any = ref([])
const detailLoading = ref(false) // 表单的加载中
const detailData = ref<any>({}) // 详情数据
const queryId = query.id as unknown as string // 从 URL 传递过来的 id 编号
@@ -459,6 +483,14 @@ const getProviteData = async () => {
if (proviteData.value.otherReport) {
await getFileNamePath(proviteData.value.otherReport, 'otherReport')
}
// 入网评估报告
if (detailData.value.netInReport.length > 0) {
netInReportList.value = []
detailData.value.netInReport.forEach((item: any) => {
getFileNamePath(item, 'netInReport')
})
}
}
//根据文件名请求
const getFileNamePath = async (val: any, pathName: any) => {
@@ -537,6 +569,11 @@ const getFileNamePath = async (val: any, pathName: any) => {
name: res.data.fileName,
url: res.data.url
}
} else if (pathName == 'netInReport') {
netInReportList.value.push({
name: res.data.fileName,
url: res.data.url
})
}
}
})
@@ -564,9 +601,9 @@ onMounted(() => {
margin-right: 10px;
}
:deep(.el-descriptions__label) {
width: 20%;
}
width: 20%;
}
:deep(.el-descriptions__content) {
width: 30%;
}
width: 30%;
}
</style>

View File

@@ -25,6 +25,7 @@
<el-dialog
title="干扰源用户详细信息"
v-if="dialogVisible"
v-model="dialogVisible"
width="65%"
:append-to-body="true"
@@ -47,7 +48,7 @@ defineOptions({
name: 'supervision/interferenceUserTable'
})
import { ref, onMounted, provide, nextTick } from 'vue'
import { ref, onMounted, provide, watch } from 'vue'
import TableStore from '@/utils/tableStore'
import Table from '@/components/table/index.vue'
import TableHeader from '@/components/table/header/index.vue'
@@ -59,6 +60,7 @@ import { useAdminInfo } from '@/stores/adminInfo'
import { ElMessage, ElMessageBox } from 'element-plus'
import { userReportRenewalCancel } from '@/api/process-boot/generalTest'
const dictData = useDictData()
const flag = ref(false)
const areaOptionList = dictData
.getBasicData('jibei_area')
.filter(item => !(item.name == '超高压' || item.name == '风光储'))
@@ -82,7 +84,7 @@ jb_dky.value =
? true
: false
const { push } = useRouter()
const { push, options, currentRoute } = useRouter()
const TableHeaderRef = ref()
const tableStore = new TableStore({
url: '/supervision-boot/userReport/getNormalUserPage',
@@ -271,7 +273,10 @@ const tableStore = new TableStore({
icon: 'el-icon-EditPen',
render: 'basicButton',
disabled: row => {
return row.needGovernance == 0
return row.needGovernance == 0 //&& row.type == true
},
showDisabled: row => {
return row.type == false
},
click: row => {
toFangAn(row, 1)
@@ -376,6 +381,7 @@ const toFangAn = (row: any, typeNo: number) => {
needGovernance: needGovernance.value
}
})
flag.value = true
})
}
@@ -404,4 +410,16 @@ const getUserTypeName = (userType: any) => {
}
return '新建电网工程'
}
watch(
() => currentRoute.value.path,
() => {
if (flag.value && options.history.state.forward?.split('/')[1] == 'bpm') {
tableStore.index()
flag.value = false
}
},
{
deep: true
}
)
</script>

View File

@@ -22,6 +22,11 @@
<Table ref="tableRef" />
<!--弹框-->
<feedback-popup ref="feedbackPopup" />
<!-- 详情 -->
<el-dialog draggable v-model="dialogVisible" v-if="dialogVisible" title="详情" width="1000">
<detail :id="detailId" />
</el-dialog>
</template>
<script setup lang="ts">
import { ref, onMounted, provide, nextTick } from 'vue'
@@ -35,6 +40,7 @@ import { cancelFeedback } from '@/api/supervision-boot/leaflet'
import { useAdminInfo } from '@/stores/adminInfo'
import { useDictData } from '@/stores/dictData'
import { getFileNameAndFilePath } from '@/api/system-boot/file'
import detail from '@/views/pqs/supervise/harmonicSurvey/test/detail.vue'
const dictData = useDictData()
const statusSelect = dictData.statusSelect()
@@ -44,6 +50,8 @@ const { push } = useRouter()
const feedbackPopup = ref()
const tableRef = ref()
const dialogVisible = ref(false)
const detailId = ref('')
const TableHeaderRef = ref()
const tableStore = new TableStore({
url: '/supervision-boot/warningLeaflet/alarmPageData',
@@ -113,6 +121,7 @@ const tableStore = new TableStore({
return dictData.state.userList.filter(item => item.id == row.cellValue)[0]?.name
}
},
{
title: '操作',
minWidth: '220',
@@ -120,6 +129,20 @@ const tableStore = new TableStore({
render: 'buttons',
fixed: 'right',
buttons: [
{
name: 'edit',
title: '查看信息',
type: 'primary',
icon: 'el-icon-Open',
render: 'basicButton',
disabled: row => {
return !row.problemId
},
click: async row => {
dialogVisible.value = true
detailId.value = row.problemId
}
},
{
name: 'productSetting',
title: '发送督办单',

View File

@@ -125,7 +125,7 @@ const tableStore = new TableStore({
icon: 'el-icon-Open',
render: 'basicButton',
showDisabled: row => {
return row.createBy != adminInfo.$state.id || !(row.dataType == 0 || row.dataType == 1)
return row.createBy != adminInfo.$state.id || !( row.dataType == 1)
},
click: row => {

View File

@@ -49,7 +49,6 @@
type="date"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
placeholder="请选择工程投产日期"
/>
</el-form-item>
@@ -787,12 +786,29 @@ getFrontEndMachineList()
//定义所属供电公司数据
const powerCompanyList: any = ref([])
//获取所属供电公司,区域列表第三层数据
const getPowerCompanyList = async () => {
const getPowerCompanyList = async (flag: any) => {
getAllDeptList().then(res => {
powerCompanyList.value = res.data[0].children[0].children
form.value.powerCompany = powerCompanyList.value[0]?.id
findSubstationVoltageLevel()
changeSubstation()
if (flag) {
console.log(
`123`,
powerCompanyList.value.find(item => item.name == form.value.supervisionTempDeviceReport.powerCompany)
)
getSubstationVoltageLevel({
orgIds: [
powerCompanyList.value.find(
item => item.name == form.value.supervisionTempDeviceReport.powerCompany
).id
]
}).then(res => {
substationList.value = res.data
})
} else {
form.value.powerCompany = powerCompanyList.value[0]?.id
findSubstationVoltageLevel()
changeSubstation()
}
})
}
//根据所选供电公司查询所选获取变电站与变电站电压等级
@@ -800,6 +816,7 @@ const getPowerCompanyList = async () => {
const findSubstationVoltageLevel = async () => {
getSubstationVoltageLevel({ orgIds: [form.value.powerCompany] }).then(res => {
substationList.value = res.data
form.value.substation = substationList.value[0]?.id
form.value.substationVoltageLevel = substationList.value[0]?.voltageLevel
})
@@ -1373,13 +1390,15 @@ const disabledDate = time => {
const activeName = ref('0')
const resendId = ref('')
const open = async (row: any) => {
await getPowerCompanyList()
let flag = row.row ? true : false
if (!flag) await getPowerCompanyList(false)
title.value = row.title
dialogFormVisible.value = true
if (row.row) {
resendId.value = row.row.id
await getTerminalDetailsById({ id: row.row.id }).then((res: any) => {
form.value = { customSubstationFlag: 0, ...res.data, ...res.data.supervisionTempDeviceReport }
getPowerCompanyList(true)
let list = [
'deviceFilePath',
// 'acceptanceInspectionReportSingle',

View File

@@ -5,6 +5,24 @@
<back-component style="margin: 8px; position: absolute; z-index: 10; top: -3px; right: 2px" />
<el-tabs type="border-card" v-model="tab" @tab-click="handleClickTab">
<el-tab-pane label="流程审核" name="流程审核" v-if="runningTasks.length > 0">
<el-card v-loading="processInstanceLoading" class="box-card">
<template #header>
<span class="el-icon-document">申请信息{{ processInstance.name }}</span>
</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"
/>
</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"
@@ -82,24 +100,7 @@
</div>
</el-col>
</el-card>
<el-card v-loading="processInstanceLoading" class="box-card">
<template #header>
<span class="el-icon-document">申请信息{{ processInstance.name }}</span>
</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"
/>
</el-col>
<!-- 情况二业务表单 -->
<div v-if="processInstance?.processDefinition?.formType === 20">
<BusinessFormComponent :id="processInstance.businessKey" :applyTitle="processInstance.name" />
</div>
</el-card>
</el-tab-pane>
<el-tab-pane label="申请信息" name="申请信息" v-if="runningTasks.length == 0">
<!-- 申请信息 -->