|
|
@@ -24,7 +24,10 @@
|
|
|
</div>
|
|
|
<footer>
|
|
|
<div class="flex flex-top mt-auto">
|
|
|
- <img class="i-r-icon" src="../../assets/img/user.png" />
|
|
|
+ <img
|
|
|
+ class="i-r-icon"
|
|
|
+ src="../../assets/img/user.png"
|
|
|
+ />
|
|
|
<div class="detailTxt">{{ state.form.createdName }}</div>
|
|
|
</div>
|
|
|
<div class="flex flex-top">
|
|
|
@@ -36,75 +39,114 @@
|
|
|
</header>
|
|
|
<div class="content">
|
|
|
<div class="card">
|
|
|
- <h4>申请入室平台</h4>
|
|
|
- <ul v-if="state.form.platPlatformAppointCellRes && state.form.platPlatformAppointCellRes.length">
|
|
|
+ <h4>申请人信息</h4>
|
|
|
+ <ul>
|
|
|
<li>
|
|
|
- <label>申请平台</label>
|
|
|
- <span>{{ state.form.platPlatformAppointCellRes[0].platformName }}</span>
|
|
|
+ <div class="label">申请人姓名:</div>
|
|
|
+ <div class="value">{{ state.form.memberName }}</div>
|
|
|
</li>
|
|
|
<li>
|
|
|
- <label>申请时长</label>
|
|
|
- <span>{{ state.form.platPlatformAppointCellRes[0].platformTime }}个月</span>
|
|
|
+ <div class="label">人员类型:</div>
|
|
|
+ <div class="value">{{ getDictLabel(userTypeList, state.form.memberType) }}</div>
|
|
|
</li>
|
|
|
<li>
|
|
|
- <label>拟培养细胞种类</label>
|
|
|
- <span>{{ state.form.cellType }}</span>
|
|
|
+ <div class="label">申请人手机号:</div>
|
|
|
+ <div class="value">{{ state.form.memberPhone }}</div>
|
|
|
</li>
|
|
|
<li>
|
|
|
- <label>细胞房预约需求</label>
|
|
|
- <span>{{ state.form.cellSourceType == '10' ? '普通' : '层流' }}</span>
|
|
|
+ <div class="label">申请人科室:</div>
|
|
|
+ <div class="value">{{ state.form.deptName }}</div>
|
|
|
</li>
|
|
|
</ul>
|
|
|
- <ul
|
|
|
- v-if="
|
|
|
- state.form.platPlatformAppointMolecularRes && state.form.platPlatformAppointMolecularRes.length
|
|
|
- "
|
|
|
- >
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="card">
|
|
|
+ <h4>申请人课题组信息</h4>
|
|
|
+ <ul>
|
|
|
+ <li>
|
|
|
+ <div class="label">课题组:</div>
|
|
|
+ <div class="value">{{ state.form.pgName }}</div>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ <div class="label">课题组负责人:</div>
|
|
|
+ <div class="value">{{ state.form.mentorName }}</div>
|
|
|
+ </li>
|
|
|
<li>
|
|
|
- <label>申请平台</label>
|
|
|
- <span>{{ state.form.platPlatformAppointMolecularRes[0].platformName }}</span>
|
|
|
+ <div class="label">课题组负责人科室:</div>
|
|
|
+ <div class="value">{{ state.form.mentorDeptName }}</div>
|
|
|
</li>
|
|
|
<li>
|
|
|
- <label>申请时长</label>
|
|
|
- <span>{{ state.form.platPlatformAppointMolecularRes[0].platformTime }}个月 </span>
|
|
|
+ <div class="label">课题组负责人电话:</div>
|
|
|
+ <div class="value">{{ state.form.mentorPhone }}</div>
|
|
|
</li>
|
|
|
<li>
|
|
|
- <label>其他需求</label>
|
|
|
- <span>{{ state.form.platOtherNeed }}</span>
|
|
|
+ <div class="label">课题组负责人电话:</div>
|
|
|
+ <div class="value">{{ state.form.mentorPhone }}</div>
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
+
|
|
|
<div class="card">
|
|
|
- <h4>申请人信息</h4>
|
|
|
- <ul>
|
|
|
+ <h4>申请入室平台</h4>
|
|
|
+ <ul v-if="state.form.platPlatformAppointCellRes && state.form.platPlatformAppointCellRes.length">
|
|
|
<li>
|
|
|
- <label>申请人姓名</label>
|
|
|
- <span>{{ state.form.memberName }}</span>
|
|
|
+ <div class="label">申请平台:</div>
|
|
|
+ <div class="value">{{ state.form.platPlatformAppointCellRes[0].platformName }}</div>
|
|
|
</li>
|
|
|
<li>
|
|
|
- <label>人员类型</label>
|
|
|
- <span>{{ getDictLabel(userTypeList, state.form.memberType) }}</span>
|
|
|
+ <div class="label">申请时长:</div>
|
|
|
+ <div class="value">{{ state.form.platPlatformAppointCellRes[0].platformTime }}个月</div>
|
|
|
</li>
|
|
|
<li>
|
|
|
- <label>申请人手机号</label>
|
|
|
- <span>{{ state.form.memberPhone }}</span>
|
|
|
+ <div class="label">费用:</div>
|
|
|
+ <div class="value">{{ state.form.platPlatformAppointCellRes[0].price }}元</div>
|
|
|
</li>
|
|
|
<li>
|
|
|
- <label>申请人科室</label>
|
|
|
- <span>{{ state.form.deptName }}</span>
|
|
|
+ <div class="label">拟培养细胞种类:</div>
|
|
|
+ <div class="value">{{ state.form.cellType }}</div>
|
|
|
</li>
|
|
|
<li>
|
|
|
- <label>课题组</label>
|
|
|
- <span>{{ state.form.pgName }}</span>
|
|
|
+ <div class="label">细胞房预约需求:</div>
|
|
|
+ <div class="value">{{ state.form.cellSourceType == '10' ? '普通' : '层流' }}</div>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ <ul v-if="state.form.platPlatformAppointMolecularRes && state.form.platPlatformAppointMolecularRes.length">
|
|
|
+ <li>
|
|
|
+ <div class="label">申请平台:</div>
|
|
|
+ <div class="value">{{ state.form.platPlatformAppointMolecularRes[0].platformName }}</div>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ <div class="label">申请时长:</div>
|
|
|
+ <div class="value">{{ state.form.platPlatformAppointMolecularRes[0].platformTime }}个月</div>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ <div class="label">费用:</div>
|
|
|
+ <div class="value">{{ state.form.platPlatformAppointMolecularRes[0].price }}元</div>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ <div class="label">其他需求:</div>
|
|
|
+ <div class="value">{{ state.form.platOtherNeed }}</div>
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
+
|
|
|
<div class="card">
|
|
|
<h4>审批记录</h4>
|
|
|
- <FlowTable :id="state.form.id" :businessCode="`${state.form.id}`" defCode="plat_platform_appoint" />
|
|
|
+ <FlowTable
|
|
|
+ :id="state.form.id"
|
|
|
+ :businessCode="`${state.form.id}`"
|
|
|
+ defCode="plat_platform_appoint"
|
|
|
+ />
|
|
|
</div>
|
|
|
- <div class="card" v-if="state.form.appointStatus === '20'">
|
|
|
- <van-form class="mb20" ref="formRef" required="auto">
|
|
|
+ <div
|
|
|
+ class="card"
|
|
|
+ v-if="state.form.appointStatus === '20'"
|
|
|
+ >
|
|
|
+ <van-form
|
|
|
+ class="mb20"
|
|
|
+ ref="formRef"
|
|
|
+ required="auto"
|
|
|
+ >
|
|
|
<van-cell-group>
|
|
|
<van-field
|
|
|
v-model="state.auditForm.approveDesc"
|
|
|
@@ -121,7 +163,10 @@
|
|
|
:rules="[{ required: true, message: '请选择审批结果' }]"
|
|
|
>
|
|
|
<template #input>
|
|
|
- <van-radio-group v-model="state.auditForm.approveResult" direction="horizontal">
|
|
|
+ <van-radio-group
|
|
|
+ v-model="state.auditForm.approveResult"
|
|
|
+ direction="horizontal"
|
|
|
+ >
|
|
|
<van-radio name="10">通过</van-radio>
|
|
|
<van-radio name="20">不通过</van-radio>
|
|
|
</van-radio-group>
|
|
|
@@ -131,18 +176,56 @@
|
|
|
</van-form>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <van-action-bar v-if="state.form.appointStatus === '10'" placeholder>
|
|
|
- <van-action-bar-icon icon="wap-home-o" text="首页" @click="onRouterPush('/home')" />
|
|
|
- <van-action-bar-icon icon="send-gift-o" text="入室申请" @click="onRouterPush('/entry')" />
|
|
|
- <van-action-bar-button class="w100" type="primary" text="上传缴费单" @click="openUpload()" />
|
|
|
+ <van-action-bar
|
|
|
+ v-if="state.form.appointStatus === '10'"
|
|
|
+ placeholder
|
|
|
+ >
|
|
|
+ <van-action-bar-icon
|
|
|
+ icon="wap-home-o"
|
|
|
+ text="首页"
|
|
|
+ @click="onRouterPush('/home')"
|
|
|
+ />
|
|
|
+ <van-action-bar-icon
|
|
|
+ icon="send-gift-o"
|
|
|
+ text="入室申请"
|
|
|
+ @click="onRouterPush('/entry')"
|
|
|
+ />
|
|
|
+ <van-action-bar-button
|
|
|
+ class="w100"
|
|
|
+ type="primary"
|
|
|
+ text="上传缴费单"
|
|
|
+ @click="openUpload()"
|
|
|
+ />
|
|
|
</van-action-bar>
|
|
|
- <van-action-bar v-else-if="state.form.appointStatus === '20'" placeholder>
|
|
|
- <van-action-bar-icon icon="wap-home-o" text="首页" @click="onRouterPush('/home')" />
|
|
|
- <van-action-bar-icon icon="send-gift-o" text="入室申请" @click="onRouterPush('/entry')" />
|
|
|
- <van-action-bar-button class="w100" type="primary" text="审核" @click="onAudit()" />
|
|
|
+ <van-action-bar
|
|
|
+ v-else-if="state.form.appointStatus === '20'"
|
|
|
+ placeholder
|
|
|
+ >
|
|
|
+ <van-action-bar-icon
|
|
|
+ icon="wap-home-o"
|
|
|
+ text="首页"
|
|
|
+ @click="onRouterPush('/home')"
|
|
|
+ />
|
|
|
+ <van-action-bar-icon
|
|
|
+ icon="send-gift-o"
|
|
|
+ text="入室申请"
|
|
|
+ @click="onRouterPush('/entry')"
|
|
|
+ />
|
|
|
+ <van-action-bar-button
|
|
|
+ class="w100"
|
|
|
+ type="primary"
|
|
|
+ text="审核"
|
|
|
+ @click="onAudit()"
|
|
|
+ />
|
|
|
</van-action-bar>
|
|
|
</div>
|
|
|
- <van-popup v-model:show="showBottom" round closeable position="bottom" :style="{ height: '90vh' }">
|
|
|
+ <van-popup
|
|
|
+ v-model:show="showBottom"
|
|
|
+ round
|
|
|
+ closeable
|
|
|
+ position="bottom"
|
|
|
+ :style="{ height: '90vh' }"
|
|
|
+ >
|
|
|
<template #default>
|
|
|
<div class="upload-container">
|
|
|
<div class="content">
|
|
|
@@ -153,15 +236,34 @@
|
|
|
<h4>信息上传</h4>
|
|
|
<div class="file-card">
|
|
|
<h4>缴费单</h4>
|
|
|
- <van-uploader v-model="state.uploadForm.billList" :after-read="afterRead" preview-size="60" :preview-full-image="false" :max-count="1" />
|
|
|
+ <van-uploader
|
|
|
+ v-model="state.uploadForm.billList"
|
|
|
+ :after-read="afterRead"
|
|
|
+ preview-size="60"
|
|
|
+ :preview-full-image="false"
|
|
|
+ :max-count="1"
|
|
|
+ />
|
|
|
</div>
|
|
|
<div class="file-card">
|
|
|
<h4>其它附件</h4>
|
|
|
- <van-uploader v-model="state.uploadForm.fileList" :after-read="afterRead" preview-size="60" :preview-full-image="false" multiple />
|
|
|
+ <van-uploader
|
|
|
+ v-model="state.uploadForm.fileList"
|
|
|
+ :after-read="afterRead"
|
|
|
+ preview-size="60"
|
|
|
+ :preview-full-image="false"
|
|
|
+ multiple
|
|
|
+ />
|
|
|
</div>
|
|
|
</div>
|
|
|
<footer>
|
|
|
- <van-button type="primary" class="w100" round @click="onSubmit">提交</van-button>
|
|
|
+ <van-button
|
|
|
+ type="primary"
|
|
|
+ class="w100"
|
|
|
+ round
|
|
|
+ @click="onSubmit"
|
|
|
+ >
|
|
|
+ 提交
|
|
|
+ </van-button>
|
|
|
</footer>
|
|
|
</div>
|
|
|
</template>
|
|
|
@@ -223,22 +325,22 @@
|
|
|
approveStatus: '',
|
|
|
appointStatus: '',
|
|
|
platPlatformAppointCellRes: [],
|
|
|
- platPlatformAppointMolecularRes: []
|
|
|
+ platPlatformAppointMolecularRes: [],
|
|
|
},
|
|
|
uploadForm: {
|
|
|
billList: [] as any[],
|
|
|
- fileList: [] as any[]
|
|
|
+ fileList: [] as any[],
|
|
|
},
|
|
|
auditForm: {
|
|
|
id: 0,
|
|
|
approveResult: '',
|
|
|
- approveDesc: ''
|
|
|
+ approveDesc: '',
|
|
|
},
|
|
|
queryParams: {
|
|
|
pageNum: 1,
|
|
|
pageSize: 10,
|
|
|
- appointStatus: []
|
|
|
- }
|
|
|
+ appointStatus: [],
|
|
|
+ },
|
|
|
})
|
|
|
const getDicts = () => {
|
|
|
Promise.all([dictApi.getDictDataByType('sys_user_type')]).then(([type]) => {
|
|
|
@@ -247,8 +349,17 @@
|
|
|
}
|
|
|
//详情
|
|
|
const getDetail = async (id: number) => {
|
|
|
+ const { entryType, platformType } = route.query
|
|
|
+
|
|
|
state.detailsLoading = true
|
|
|
- const [err, res]: ToResponse = await to(platformAppointApi.getDetail({ id }))
|
|
|
+
|
|
|
+ let request = platformAppointApi.getDetail
|
|
|
+
|
|
|
+ if (entryType === 'manageGetDetail' || entryType === 'audit') {
|
|
|
+ request = platformType === '10' ? platformAppointApi.getCellEntityById : platformAppointApi.getMolecularEntityById
|
|
|
+ }
|
|
|
+
|
|
|
+ const [err, res]: ToResponse = await to(request({ id }))
|
|
|
state.detailsLoading = false
|
|
|
if (err) return
|
|
|
if (res?.code === 200) {
|
|
|
@@ -293,7 +404,7 @@
|
|
|
params.fileList = [...params.billList, ...params.fileList].map((item) => {
|
|
|
return {
|
|
|
fileName: item.name,
|
|
|
- fileUrl: item.url
|
|
|
+ fileUrl: item.url,
|
|
|
}
|
|
|
})
|
|
|
delete params.billList
|
|
|
@@ -302,10 +413,10 @@
|
|
|
if (err) return
|
|
|
showNotify({
|
|
|
type: 'success',
|
|
|
- message: '操作成功'
|
|
|
+ message: '操作成功',
|
|
|
})
|
|
|
router.push({
|
|
|
- path: '/entry'
|
|
|
+ path: '/entry',
|
|
|
})
|
|
|
}
|
|
|
const onAudit = async () => {
|
|
|
@@ -317,10 +428,10 @@
|
|
|
if (err) return
|
|
|
showNotify({
|
|
|
type: 'success',
|
|
|
- message: '操作成功'
|
|
|
+ message: '操作成功',
|
|
|
})
|
|
|
router.push({
|
|
|
- path: '/entry'
|
|
|
+ path: '/entry',
|
|
|
})
|
|
|
}
|
|
|
onMounted(() => {
|
|
|
@@ -423,9 +534,13 @@
|
|
|
}
|
|
|
> ul {
|
|
|
li {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
+ /* display: flex;
|
|
|
+ align-items: center; */
|
|
|
padding: 6px 0;
|
|
|
+ .label {
|
|
|
+ color: #969799;
|
|
|
+ margin-bottom: 8px;
|
|
|
+ }
|
|
|
label {
|
|
|
width: 100px;
|
|
|
min-width: 80px;
|