feat : 需求征集表单权限测试
This commit is contained in:
@@ -3,14 +3,14 @@
|
|||||||
<baseTitle title="需求征集信息录入"></baseTitle>
|
<baseTitle title="需求征集信息录入"></baseTitle>
|
||||||
<el-form :model="formData" inline class="query-form" ref="demandForm" :rules="rules">
|
<el-form :model="formData" inline class="query-form" ref="demandForm" :rules="rules">
|
||||||
<div class="left-info">
|
<div class="left-info">
|
||||||
<el-form-item label="名称" prop="requirementName">
|
<el-form-item v-if="checkFormPrem('requirementName')" label="名称" prop="requirementName">
|
||||||
<el-input v-model="formData.requirementName" placeholder="请输入名称" clearable></el-input>
|
<el-input v-model="formData.requirementName" placeholder="请输入名称" clearable></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="所属公司" prop="companyIds">
|
<el-form-item v-if="checkFormPrem('companyIds')" label="所属公司" prop="companyIds">
|
||||||
<el-tree-select v-model="formData.companyIds" :data="companyOption" style="width: 100%;"
|
<el-tree-select v-model="formData.companyIds" :data="companyOption" style="width: 100%;"
|
||||||
filterable clearable :check-strictly="true" multiple/>
|
filterable clearable :check-strictly="true" multiple/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="征集类型" prop="collectType">
|
<el-form-item v-if="checkFormPrem('collectType')" label="征集类型" prop="collectType">
|
||||||
<el-select v-model="formData.collectType" placeholder="征集类型" clearable filterable>
|
<el-select v-model="formData.collectType" placeholder="征集类型" clearable filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in typeOption"
|
v-for="item in typeOption"
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="截止时间" prop="deadline">
|
<el-form-item v-if="checkFormPrem('deadline')" label="截止时间" prop="deadline">
|
||||||
<el-config-provider>
|
<el-config-provider>
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="formData.deadline"
|
v-model="formData.deadline"
|
||||||
@@ -33,11 +33,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
<baseTitle title="征集说明"></baseTitle>
|
<baseTitle title="征集说明"></baseTitle>
|
||||||
<Tinymce image-url="/notice/file" file-url="/notice/file" v-model:value="formData.collectExplain" height="300"
|
<Tinymce v-if="checkFormPrem('collectExplain') && showTinymce" image-url="/notice/file" file-url="/notice/file"
|
||||||
v-if="showTinymce"/>
|
v-model:value="formData.collectExplain" height="300" />
|
||||||
<baseTitle title="申请文件"></baseTitle>
|
<baseTitle title="申请文件"></baseTitle>
|
||||||
<file-upload @getFile="getFile"/>
|
<file-upload v-if="checkFormPrem('fileList')" @getFile="getFile"/>
|
||||||
<fvTable style="width: 100%;max-height: 200px" v-if="showTable" :tableConfig="tableConfig" :data="formData.fileList"
|
<fvTable style="width: 100%;max-height: 200px" v-if="showTable"
|
||||||
|
:tableConfig="tableConfig" :data="formData.fileList"
|
||||||
:isSettingCol="false" :pagination="false">
|
:isSettingCol="false" :pagination="false">
|
||||||
<template #empty>
|
<template #empty>
|
||||||
<el-empty :image-size="90" description="暂无数据" style="padding: 0"/>
|
<el-empty :image-size="90" description="暂无数据" style="padding: 0"/>
|
||||||
@@ -105,6 +106,7 @@ const loading = ref(false)
|
|||||||
const showTable = ref(true)
|
const showTable = ref(true)
|
||||||
const processStore = useProcessStore()
|
const processStore = useProcessStore()
|
||||||
const processInstanceData = ref()
|
const processInstanceData = ref()
|
||||||
|
const formPermMap = ref(new Map());
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
requirementName: [{required: true, message: '请输入名称', trigger: 'blur'}],
|
requirementName: [{required: true, message: '请输入名称', trigger: 'blur'}],
|
||||||
companyIds: [{required: true, message: '请选择所属公司', trigger: 'blur'}],
|
companyIds: [{required: true, message: '请选择所属公司', trigger: 'blur'}],
|
||||||
@@ -154,6 +156,16 @@ const tableConfig = reactive({
|
|||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const checkFormPrem = (formKey) => {
|
||||||
|
if (formPermMap.value.hasOwnProperty(formKey)) {
|
||||||
|
let formItem = formPermMap.value[formKey];
|
||||||
|
return formItem.perm === 'EDIT'
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
const handleDownload = (row) => {
|
const handleDownload = (row) => {
|
||||||
downloadFile(row.fileId).then(res => {
|
downloadFile(row.fileId).then(res => {
|
||||||
const blob = new Blob([res])
|
const blob = new Blob([res])
|
||||||
@@ -207,6 +219,9 @@ const init = async () => {
|
|||||||
processStore.noTakeList.value = data.noTakeList;
|
processStore.noTakeList.value = data.noTakeList;
|
||||||
processStore.refuseList.value = data.refuseList;
|
processStore.refuseList.value = data.refuseList;
|
||||||
processStore.passList.value = data.passList;
|
processStore.passList.value = data.passList;
|
||||||
|
formPermMap.value = data.formPermMap
|
||||||
|
// const entriesArray = Object.entries(data.formPermMap);// 使用Map构造函数将键值对数组转换为Map对象
|
||||||
|
// formPermMap.value = new Map(entriesArray);
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
processDiagramViewer.value = true
|
processDiagramViewer.value = true
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -3,28 +3,28 @@
|
|||||||
<el-form :model="formData" ref="demandForm" label-width="auto" :rules="rules">
|
<el-form :model="formData" ref="demandForm" label-width="auto" :rules="rules">
|
||||||
<baseTitle title="需求征集详情"></baseTitle>
|
<baseTitle title="需求征集详情"></baseTitle>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12" v-if="checkFormPrem('requirementName')">
|
||||||
<el-form-item label="名称">
|
<el-form-item label="名称">
|
||||||
<span>{{ formData.requirementName }}</span>
|
<span>{{ formData.requirementName }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12" v-if="checkFormPrem('companyIds')">
|
||||||
<el-form-item label="所属公司">
|
<el-form-item label="所属公司">
|
||||||
<span>{{ formData.companyIds }}</span>
|
<span>{{ formData.companyIds }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12" v-if="checkFormPrem('collectType')">
|
||||||
<el-form-item label="征集类型">
|
<el-form-item label="征集类型">
|
||||||
<span>{{ formData.collectType }}</span>
|
<span>{{ formData.collectType }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12" v-if="checkFormPrem('deadline')">
|
||||||
<el-form-item label="截止时间">
|
<el-form-item label="截止时间">
|
||||||
<span>{{ formData.deadline }}</span>
|
<span>{{ formData.deadline }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<baseTitle title="征集说明"></baseTitle>
|
<baseTitle title="征集说明"></baseTitle>
|
||||||
<el-col :span="24">
|
<el-col :span="24" v-if="checkFormPrem('collectExplain')">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-card style="width: 100%">
|
<el-card style="width: 100%">
|
||||||
<div v-html="formData.collectExplain">
|
<div v-html="formData.collectExplain">
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<baseTitle title="附件列表"></baseTitle>
|
<baseTitle title="附件列表"></baseTitle>
|
||||||
<el-col :span="24">
|
<el-col :span="24" v-if="checkFormPrem('collectExplain')">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<fvTable style="width: 100%;max-height: 200px" v-if="showTable" :tableConfig="tableConfig"
|
<fvTable style="width: 100%;max-height: 200px" v-if="showTable" :tableConfig="tableConfig"
|
||||||
:data="formData.fileList" :isSettingCol="false" :pagination="false">
|
:data="formData.fileList" :isSettingCol="false" :pagination="false">
|
||||||
@@ -91,6 +91,7 @@ const loading = ref(false)
|
|||||||
const demandForm = ref()
|
const demandForm = ref()
|
||||||
const processStore = useProcessStore()
|
const processStore = useProcessStore()
|
||||||
const companyOption = ref([])
|
const companyOption = ref([])
|
||||||
|
const formPermMap = ref(new Map());
|
||||||
const processInstanceData = ref({})
|
const processInstanceData = ref({})
|
||||||
const showTable = ref(false)
|
const showTable = ref(false)
|
||||||
const processDiagramViewer = ref(false)
|
const processDiagramViewer = ref(false)
|
||||||
@@ -137,6 +138,22 @@ const tableConfig = reactive({
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const checkFormPrem = (formKey) => {
|
||||||
|
if (formPermMap.value.hasOwnProperty(formKey)) {
|
||||||
|
let formItem = formPermMap.value[formKey];
|
||||||
|
return formItem.perm === 'READ'
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const fromPrem = (formKey) => {
|
||||||
|
let formItem = formPermMap.value[formKey];
|
||||||
|
return formItem.perm
|
||||||
|
}
|
||||||
|
|
||||||
const handleSubmit = () => {
|
const handleSubmit = () => {
|
||||||
let approve = {
|
let approve = {
|
||||||
taskId: processInstanceData.value.taskId,
|
taskId: processInstanceData.value.taskId,
|
||||||
|
|||||||
Reference in New Issue
Block a user