Browse Source

优化联合技术审查

changchun
zhouhaibin 7 months ago
parent
commit
44ec510589
  1. 6
      src/views/ProcessApprovalSubPage/uploadURTfileApproval.vue
  2. 66
      src/views/projectLib/projectInfo/projectInfo.data.ts
  3. 12
      src/views/projectLib/projectPlan/ProjectinfoComponent.vue
  4. 2
      src/views/projectLib/projectPlan/addPlanFile.vue
  5. 21
      src/views/projectLib/projectPlan/index.vue
  6. 54
      src/views/projectLib/projectPlan/uploadURTfile.vue
  7. 9
      src/views/projectLib/projectPlan/viewPlanDetail.vue

6
src/views/ProcessApprovalSubPage/uploadURTfileApproval.vue

@ -1,11 +1,11 @@
<template> <template>
<div> <div>
<el-divider content-position="left">联合技术审查文件详情</el-divider> <el-divider content-position="left">联合技术审查文件详情</el-divider>
<UploadfileDetail :projectid="projectId" :stage="6" /> <PlanFileDetail :planinfoid="projectId" :stage="1" />
</div> </div>
<div> <div>
<el-divider content-position="left">联合技术审查审批文件详情</el-divider> <el-divider content-position="left">联合技术审查审批文件详情</el-divider>
<UploadfileDetail :projectid="projectId" :stage="7" /> <PlanFileDetail :planinfoid="projectId" :stage="2" />
</div> </div>
<ApprovalDetails :processInstanceId="processInstanceId" /> <ApprovalDetails :processInstanceId="processInstanceId" />
<!-- --> <!-- -->
@ -63,7 +63,7 @@
import { ElMessage } from 'element-plus'; import { ElMessage } from 'element-plus';
import ApprovalDetails from '@/views/ProcessApprovalSubPage/component/ApprovalDetails.vue'; import ApprovalDetails from '@/views/ProcessApprovalSubPage/component/ApprovalDetails.vue';
import ApprovalFromPage from '@/views/ProcessApprovalSubPage/component/ApprovalFromPage.vue'; import ApprovalFromPage from '@/views/ProcessApprovalSubPage/component/ApprovalFromPage.vue';
import UploadfileDetail from '@/views/ProcessApprovalSubPage/component/UploadfileDetail.vue'; import PlanFileDetail from "@/views/ProcessApprovalSubPage/component/PlanFileDetail.vue";
let dataTo = defineProps(['record']); let dataTo = defineProps(['record']);
console.log('routerouterouteroute', dataTo.record); console.log('routerouterouteroute', dataTo.record);

66
src/views/projectLib/projectInfo/projectInfo.data.ts

@ -5,7 +5,22 @@ import { useUserStore } from '@/store/modules/user';
const userStore = useUserStore(); const userStore = useUserStore();
const dictStore = useDictStore(); const dictStore = useDictStore();
import { getWorkPlaceTypeDict, getContactorDict, getUserDictByRoles } from '../initiatesProjects/initiatesProjects.api' import { getWorkPlaceTypeDict, getContactorDict, getUserDictByRoles } from '../initiatesProjects/initiatesProjects.api'
import {getDutyWorkplaceList} from '@/views/informationSub/countStatistics/countStatistics.api';
async function getDutyWorkplaceOptions() {
let dutyWorkplaceOption = await getDutyWorkplaceList();
let uniqueList = [...new Set(dutyWorkplaceOption)];
let res = uniqueList.map((item) => {
return {
label: item,
value: item,
};
});
console.log('wwres', res);
return res;
}
export const columns: BasicColumn[] = [ export const columns: BasicColumn[] = [
@ -72,8 +87,36 @@ export const searchFormSchema: FormSchema[] = [
{ {
label: '行政区划', label: '行政区划',
field: 'adminDivision', field: 'adminDivision',
component: 'Input', component: 'Select',
labelWidth: 'auto' labelWidth: 'auto',
componentProps: {
options: [
{
label: "市本级",
value: "市本级"
},
{
label: "吴兴区",
value: "吴兴区"
},
{
label: "南浔区",
value: "南浔区"
},
{
label: "德清县",
value: "德清县"
},
{
label: "长兴县",
value: "长兴县"
},
{
label: "安吉县",
value: "安吉县"
},
]
}
//colProps: { span: 6 }, //colProps: { span: 6 },
}, },
{ {
@ -82,7 +125,10 @@ export const searchFormSchema: FormSchema[] = [
//字段 //字段
field: 'dutyWorkplace', field: 'dutyWorkplace',
//组件 支持组件详见 components/Form/src/types/index.ts 中的 ComponentType //组件 支持组件详见 components/Form/src/types/index.ts 中的 ComponentType
component: 'Input', component: 'Select',
componentProps:{
options:await getDutyWorkplaceOptions()
},
labelWidth: 'auto' labelWidth: 'auto'
}, },
{ {
@ -91,7 +137,19 @@ export const searchFormSchema: FormSchema[] = [
//字段 //字段
field: 'workplaceProperties', field: 'workplaceProperties',
//组件 支持组件详见 components/Form/src/types/index.ts 中的 ComponentType //组件 支持组件详见 components/Form/src/types/index.ts 中的 ComponentType
component: 'Input', component: 'Select',
componentProps:{
options:[
{
label:"医疗机构",
value:"医疗机构"
},
{
label:"卫生行政部门",
value:"卫生行政部门"
}
]
},
labelWidth: 'auto' labelWidth: 'auto'
}, },
{ {

12
src/views/projectLib/projectPlan/ProjectinfoComponent.vue

@ -13,18 +13,6 @@
</BasicModal> </BasicModal>
<slot :projectid="proid"></slot> <slot :projectid="proid"></slot>
<BasicModal @register="registeModal" title="文件详情" width="1200px" :showOkBtn="false" :showCancelBtn="false">
<div>
<el-divider content-position="left">联合技术审查文件详情</el-divider>
<UploadfileDetail :projectid="projectId" :stage="6" />
</div>
<div>
<el-divider content-position="left">联合技术审查审批文件详情</el-divider>
<UploadfileDetail :projectid="projectId" :stage="7" />
</div>
<ApprovalDetails :projectid="projectId" :stage="'createURT'" />
</BasicModal>
</template> </template>

2
src/views/projectLib/projectPlan/addPlanFile.vue

@ -4,7 +4,7 @@
<div style="padding-left: 40px;"> <div style="padding-left: 40px;">
<el-button slot="trigger" type="primary">下载模板</el-button> <el-button slot="trigger" type="primary">下载模板</el-button>
</div> --> </div> -->
<el-divider content-position="left">上传表格文件</el-divider> <el-divider content-position="left">上传文件</el-divider>
<el-form ref="importFormRef" > <el-form ref="importFormRef" >
<el-form-item v-for=" (item, index) in dataTo.files" :key="index" :label="item" label-width="auto"> <el-form-item v-for=" (item, index) in dataTo.files" :key="index" :label="item" label-width="auto">
<el-upload class="upload-demo" ref="upload" action :http-request="httpRequest" <el-upload class="upload-demo" ref="upload" action :http-request="httpRequest"

21
src/views/projectLib/projectPlan/index.vue

@ -8,7 +8,6 @@
</template> </template>
<template #tableTitle> <template #tableTitle>
<el-button color="#626aef" :dark="true" round @click="openModfiyInfoPage()">项目计划修改记录</el-button> <el-button color="#626aef" :dark="true" round @click="openModfiyInfoPage()">项目计划修改记录</el-button>
<el-button color="#626aef" :dark="true" round @click="openUnitedTechnicalReview()" v-if='isShowByRoles("projectContact")'>联合技术审查</el-button>
</template> </template>
</BasicTable> </BasicTable>
@ -20,11 +19,6 @@
:showCancelBtn="false"> :showCancelBtn="false">
<addPlan :type="type" :projectid="projectId" @close="closeProjectPlanModal()" /> <addPlan :type="type" :projectid="projectId" @close="closeProjectPlanModal()" />
</BasicModal> </BasicModal>
<ProjectinfoComponent @register="registerProjectinfo" @openChildModal="openModalProjectr">
<template #default="record">
<uploadURTfile @register="registerUnitedTechnicalReview" @close="closeModel" />
</template>
</ProjectinfoComponent>
</PageWrapper> </PageWrapper>
</template> </template>
@ -43,12 +37,7 @@ import { isShowByRoles } from '@/views/projectLib/projectInfo/projectInfo.api';
import { columns } from '@/views/projectLib/projectInfo/projectInfo.data'; import { columns } from '@/views/projectLib/projectInfo/projectInfo.data';
import { searchFormSchema ,unitedTechnicalRevieColumns} from '@/views/projectLib/projectPlan/projectPlan.data'; import { searchFormSchema ,unitedTechnicalRevieColumns} from '@/views/projectLib/projectPlan/projectPlan.data';
import { projectPlanPageList,getUnitedTechnicalReviewList } from '@/views/projectLib/projectPlan/projectPlan.api'; import { projectPlanPageList,getUnitedTechnicalReviewList } from '@/views/projectLib/projectPlan/projectPlan.api';
import { useUserStore } from '@/store/modules/user';
import { useRouter } from 'vue-router'; // useRouter import { useRouter } from 'vue-router'; // useRouter
import ProjectinfoComponent from './ProjectinfoComponent.vue'
import uploadURTfile from "@/views/projectLib/projectPlan/uploadURTfile.vue"
const [registerProjectinfo, { openModal: openModalProjectinfo,closeModal: closeModalProjectinfo}] = useModal();//
const [registerUnitedTechnicalReview, { openModal:openUnitedTechnicalReviewmode,closeModal:closeUnitedTechnicalReviewmode}] = useModal();//
const router = useRouter(); const router = useRouter();
let projectId = ref(); let projectId = ref();
@ -135,17 +124,7 @@ function openModfiyInfoPage() {
router.push({ path: '/projectLib/planinfoHistory/index' }) router.push({ path: '/projectLib/planinfoHistory/index' })
} }
function openUnitedTechnicalReview() {
openModalProjectinfo(true,{title:"联合技术审查",api:getUnitedTechnicalReviewList,columns:unitedTechnicalRevieColumns})
}
function openModalProjectr(value) {
openUnitedTechnicalReviewmode(true,{projectid:value.id})
}
function closeModel() {
closeUnitedTechnicalReviewmode()
closeModalProjectinfo()
}
</script> </script>
<style scoped> <style scoped>

54
src/views/projectLib/projectPlan/uploadURTfile.vue

@ -1,14 +1,49 @@
<template> <template>
<!-- 自定义表单 --> <!-- 自定义表单 -->
<BasicModal v-bind="$attrs" @register="registerModal" title="上传文件" width="1200px" :showOkBtn="false" <BasicModal
:showCancelBtn="false"> v-bind="$attrs"
@register="registerModal"
title="上传文件"
width="1200px"
:showOkBtn="false"
:showCancelBtn="false"
>
<el-divider content-position="left">上传部门联审意见</el-divider>
<el-form ref="importFormRef"> <el-form ref="importFormRef">
<el-form-item label="上传文件:"> <el-form-item label="上传文件:">
<el-upload class="upload-demo" ref="upload" action :http-request="httpRequest" <el-upload
:before-upload="beforeUpload" :on-exceed="handleExceed" :limit="10" :on-remove="removeFile"> class="upload-demo"
ref="upload"
action
:http-request="httpRequest"
:before-upload="beforeUpload"
:on-exceed="handleExceed"
:limit="10"
:on-remove="removeFile"
>
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
<div slot="tip" class="el-upload__tip">文件大小且不超过500M</div>
</el-upload>
</el-form-item>
</el-form>
<el-divider content-position="left">上传最终稿</el-divider>
<el-form ref="importFormRef">
<el-form-item label="上传文件:">
<el-upload
class="upload-demo"
ref="upload"
action
:http-request="httpRequest"
:before-upload="beforeUpload"
:on-exceed="handleExceed"
:limit="10"
:on-remove="removeFile"
>
<el-button slot="trigger" size="small" type="primary">选取文件</el-button> <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
<div slot="tip" class="el-upload__tip">文件大小且不超过500M</div> <div slot="tip" class="el-upload__tip">文件大小且不超过500M</div>
<div slot="tip" class="el-upload__tip">必须上传部门联审意见</div>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
@ -28,16 +63,15 @@ import { uploadURTFile } from '@/views/projectLib/projectPlan/projectPlan.api';
import { queryProjectInfoById } from '@/views/projectLib/projectInfo/projectInfo.api'; import { queryProjectInfoById } from '@/views/projectLib/projectInfo/projectInfo.api';
const [registerModal, { closeModal }] = useModalInner(init); const [registerModal, { closeModal }] = useModalInner(init);
let fileList = reactive<Array<any>>([]); let fileList = reactive<Array<any>>([]);
let projectid = ref("") let planinfoid = ref('');
async function init(data) { async function init(data) {
console.log('datadatadata', data); console.log('datadatadata', data);
projectid.value = data.projectid; planinfoid.value = data.planinfoid;
} }
const emit = defineEmits(['close']); const emit = defineEmits(['close']);
// //
onMounted(async () => { onMounted(async () => {});
});
function httpRequest(option) { function httpRequest(option) {
fileList.push(option); fileList.push(option);
@ -106,7 +140,7 @@ async function submitImportForm() {
console.log('xxxxxxxxxx', x, x.file); console.log('xxxxxxxxxx', x, x.file);
params.append('file', x.file); params.append('file', x.file);
}); });
params.append('projectid', projectid.value); params.append('planinfoid', planinfoid.value);
uploadURTFile(params).then(() => { uploadURTFile(params).then(() => {
emit('close'); emit('close');
}); });

9
src/views/projectLib/projectPlan/viewPlanDetail.vue

@ -77,6 +77,8 @@
:showCancelBtn="false"> :showCancelBtn="false">
<planFileApproval :record="recordData" @close="closeplanFile" /> <planFileApproval :record="recordData" @close="closeplanFile" />
</BasicModal> </BasicModal>
<uploadURTfile @register="registerUnitedTechnicalReview" @close="closePlanFileModal" />
</template> </template>
<script lang="ts" name="viewPlanDetail" setup> <script lang="ts" name="viewPlanDetail" setup>
import { ref, onMounted } from 'vue' import { ref, onMounted } from 'vue'
@ -92,6 +94,7 @@ import { useModal } from '@/components/Modal';
import ApprovalDetails from "../../ProcessApprovalSubPage/component/ApprovalDetails.vue" import ApprovalDetails from "../../ProcessApprovalSubPage/component/ApprovalDetails.vue"
import planFileApproval from '@/views/ProcessApprovalSubPage/planFileApproval.vue' import planFileApproval from '@/views/ProcessApprovalSubPage/planFileApproval.vue'
import { isShowByRoles } from '../../projectLib/projectInfo/projectInfo.api'; import { isShowByRoles } from '../../projectLib/projectInfo/projectInfo.api';
import uploadURTfile from "@/views/projectLib/projectPlan/uploadURTfile.vue"
let dataTo = defineProps(["projectId", "projectStage"]) let dataTo = defineProps(["projectId", "projectStage"])
let projectId = ref(dataTo.projectId) let projectId = ref(dataTo.projectId)
@ -105,6 +108,7 @@ let recordData = ref({})
const [registeruploadFile, { openModal: openPlanFile, closeModal: closePlanFile }] = useModal();// const [registeruploadFile, { openModal: openPlanFile, closeModal: closePlanFile }] = useModal();//
const [registerplanFileApproval, { openModal: openplanFileApproval, closeModal: closeplanFileApproval }] = useModal();// const [registerplanFileApproval, { openModal: openplanFileApproval, closeModal: closeplanFileApproval }] = useModal();//
const [registerFileInfo, { openModal: openFileInfo }] = useModal();// const [registerFileInfo, { openModal: openFileInfo }] = useModal();//
const [registerUnitedTechnicalReview, { openModal:openUnitedTechnicalReviewmode,closeModal:closeUnitedTechnicalReviewmode}] = useModal();//
onMounted(() => { onMounted(() => {
queryPlanInfoMainTimeline({ queryPlanInfoMainTimeline({
@ -197,8 +201,12 @@ function handleuploadfile(record) {
type.value = record.isfinish type.value = record.isfinish
fileArr = record.taskFile.split(",") fileArr = record.taskFile.split(",")
planinfoid.value = record.id planinfoid.value = record.id
if(record.taskName=="联合技术审查"){
openUnitedTechnicalReviewmode(true,{planinfoid:record.id})
}else{
openPlanFile() openPlanFile()
} }
}
async function handlefinish(record) { async function handlefinish(record) {
let params = { let params = {
planinfoid: record.id, planinfoid: record.id,
@ -222,6 +230,7 @@ function closeplanFile() {
} }
function closePlanFileModal() { function closePlanFileModal() {
closePlanFile() closePlanFile()
closeUnitedTechnicalReviewmode()
reload() reload()
queryPlanInfoMainTimeline({ queryPlanInfoMainTimeline({
projectid: dataTo.projectId projectid: dataTo.projectId

Loading…
Cancel
Save