| | |
| | | <el-card class="expert-card"> |
| | | <div slot="header" class="clearfix"> |
| | | <span class="detail-title" |
| | | >专家审查情况 (18位普通专家 + 1位主任专家)</span |
| | | >专家审查情况 (18位专家 + 1位主任专家)</span |
| | | > |
| | | <div style="float: right;"> |
| | | <el-button |
| | |
| | | @click="handleSendToNormalExperts" |
| | | :disabled="!canSendToNormalExperts" |
| | | > |
| | | 发送普通专家 |
| | | 发送专家 |
| | | </el-button> |
| | | <el-button |
| | | size="mini" |
| | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="6"> |
| | | <div class="stat-item"> |
| | | <span class="stat-label">普通专家已同意:</span> |
| | | <span class="stat-label">专家已同意:</span> |
| | | <span class="stat-value">{{ approvedNormalExperts }}/18</span> |
| | | </div> |
| | | </el-col> |
| | |
| | | <el-table-column label="专家类型" width="100" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span :class="scope.row.isChief ? 'chief-expert' : 'normal-expert'"> |
| | | {{ scope.row.isChief ? "主任专家" : "普通专家" }} |
| | | {{ scope.row.isChief ? "主任专家" : "专家" }} |
| | | </span> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <template slot-scope="scope"> |
| | | <span>{{ |
| | | scope.row.reviewTime ? parseTime(scope.row.reviewTime) : "未审查" |
| | | }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="发送时间" width="160" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ |
| | | scope.row.reviewTime ? parseTime(scope.row.reviewTime) : "未发送" |
| | | }}</span> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <el-form :model="sendForm" ref="sendForm" label-width="100px"> |
| | | <el-form-item label="专家类型" prop="expertType"> |
| | | <el-radio-group v-model="sendForm.expertType"> |
| | | <el-radio label="normal">普通专家</el-radio> |
| | | <el-radio label="normal">专家</el-radio> |
| | | <el-radio label="chief">主任专家</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | |
| | | // 附件数据 |
| | | attachments: [], |
| | | expertReviews: [ |
| | | // 普通专家(18位)- 初始状态为申请中 |
| | | // 专家(18位)- 初始状态为申请中 |
| | | { |
| | | id: 1, |
| | | expertName: "张教授", |
| | | expertName: "陶昊", |
| | | isChief: false, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | }, |
| | | { |
| | | id: 2, |
| | | expertName: "李教授", |
| | | expertName: "刘斌", |
| | | isChief: false, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | }, |
| | | { |
| | | id: 3, |
| | | expertName: "王教授", |
| | | expertName: "于海初 ", |
| | | isChief: false, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | }, |
| | | { |
| | | id: 4, |
| | | expertName: "刘教授", |
| | | expertName: "王红梅", |
| | | isChief: false, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | }, |
| | | { |
| | | id: 5, |
| | | expertName: "陈教授", |
| | | expertName: "王春光", |
| | | isChief: false, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | }, |
| | | { |
| | | id: 6, |
| | | expertName: "杨教授", |
| | | expertName: "王静", |
| | | isChief: false, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | }, |
| | | { |
| | | id: 7, |
| | | expertName: "黄教授", |
| | | expertName: "边文超", |
| | | isChief: false, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | }, |
| | | { |
| | | id: 8, |
| | | expertName: "赵教授", |
| | | expertName: "闫志勇", |
| | | isChief: false, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | }, |
| | | { |
| | | id: 9, |
| | | expertName: "周教授", |
| | | expertName: "许凤", |
| | | isChief: false, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | }, |
| | | { |
| | | id: 10, |
| | | expertName: "吴教授", |
| | | expertName: "许传屾", |
| | | isChief: false, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | }, |
| | | { |
| | | id: 11, |
| | | expertName: "徐教授", |
| | | expertName: "张红岩", |
| | | isChief: false, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | }, |
| | | { |
| | | id: 12, |
| | | expertName: "孙教授", |
| | | expertName: "杨苏民", |
| | | isChief: false, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | }, |
| | | { |
| | | id: 13, |
| | | expertName: "朱教授", |
| | | expertName: "宋玉强", |
| | | isChief: false, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | }, |
| | | { |
| | | id: 14, |
| | | expertName: "马教授", |
| | | expertName: "周传利", |
| | | isChief: false, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | }, |
| | | { |
| | | id: 15, |
| | | expertName: "胡教授", |
| | | expertName: "荆凡波", |
| | | isChief: false, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | }, |
| | | { |
| | | id: 16, |
| | | expertName: "林教授", |
| | | expertName: "矫文捷", |
| | | isChief: false, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | }, |
| | | { |
| | | id: 17, |
| | | expertName: "郭教授", |
| | | expertName: "董震", |
| | | isChief: false, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | }, |
| | | { |
| | | id: 18, |
| | | expertName: "何教授", |
| | | expertName: "蔡金贞", |
| | | isChief: false, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | // 主任专家(1位) |
| | | { |
| | | id: 19, |
| | | expertName: "主任专家", |
| | | expertName: "孔心涓", |
| | | isChief: true, |
| | | reviewStatus: "applying", |
| | | expertConclusion: "", |
| | |
| | | }; |
| | | }, |
| | | computed: { |
| | | // 计算属性:普通专家同意数量 |
| | | // 计算属性:专家同意数量 |
| | | approvedNormalExperts() { |
| | | return this.expertReviews.filter( |
| | | expert => !expert.isChief && expert.expertConclusion === "approved" |
| | |
| | | return "danger"; |
| | | } |
| | | }, |
| | | // 是否可以发送给普通专家 |
| | | // 是否可以发送给专家 |
| | | canSendToNormalExperts() { |
| | | return ( |
| | | this.expertReviews.filter( |
| | |
| | | ).length > 0 |
| | | ); |
| | | }, |
| | | // 是否可以发送给主任专家(需要至少12个普通专家同意) |
| | | // 是否可以发送给主任专家(需要至少12个专家同意) |
| | | canSendToChiefExpert() { |
| | | return ( |
| | | this.approvedNormalExperts >= 12 && |
| | |
| | | // 模拟数据 - 实际项目中从接口获取 |
| | | setTimeout(() => { |
| | | this.expertReviews = [ |
| | | // 普通专家(18位) |
| | | // 专家(18位) |
| | | { |
| | | id: 1, |
| | | expertName: "张教授", |
| | |
| | | reviewStatus: "submitted", |
| | | expertConclusion: "approved", |
| | | expertOpinion: "符合伦理要求", |
| | | reviewTime: "2023-12-01 10:30:00" |
| | | reviewTime: "2025-12-01 10:30:00" |
| | | }, |
| | | { |
| | | id: 2, |
| | |
| | | reviewStatus: "submitted", |
| | | expertConclusion: "approved", |
| | | expertOpinion: "方案设计合理", |
| | | reviewTime: "2023-12-01 11:20:00" |
| | | reviewTime: "2025-12-01 11:20:00" |
| | | }, |
| | | { |
| | | id: 3, |
| | |
| | | this.sendDialogVisible = true; |
| | | }, |
| | | |
| | | // 发送给普通专家 |
| | | // 发送给专家 |
| | | handleSendToNormalExperts() { |
| | | const normalExperts = this.expertReviews.filter( |
| | | expert => !expert.isChief && expert.reviewStatus === "applying" |
| | |
| | | <div> |
| | | <p><strong>专家姓名:</strong>${expert.expertName}</p> |
| | | <p><strong>专家类型:</strong>${ |
| | | expert.isChief ? "主任专家" : "普通专家" |
| | | expert.isChief ? "主任专家" : "专家" |
| | | }</p> |
| | | <p><strong>审查状态:</strong>${this.statusTextFilter( |
| | | expert.reviewStatus |