| | |
| | | <el-option label="同意" value="1" /> |
| | | <el-option label="审查中" value="2" /> |
| | | <el-option label="不同意" value="0" /> |
| | | <el-option label="弃权" value="3" /> |
| | | <el-option label="修改后同意" value="4" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="伦理审查结论时间" prop="expertTime" class="col-1-3"> |
| | |
| | | <el-row :gutter="20" style="margin-top: 20px;"> |
| | | <el-col :span="12"> |
| | | <div class="history-stat-item"> |
| | | <div class="history-stat-label">未接收数量</div> |
| | | <div class="history-stat-label">已发送未接收数量</div> |
| | | <div class="history-stat-value"> |
| | | {{ expertHistoryData.notAcceptCount || 0 }} |
| | | </div> |
| | |
| | | console.log(file, "file"); |
| | | |
| | | this.currentPreviewFile = { |
| | | fileName: file, |
| | | // 签名附件 URL 通常无扩展名(如 .../file-1787645145583), |
| | | // 预览组件依赖文件名扩展名识别文件类型,这里补 .png 让其按图片预览 |
| | | fileName: "手写签名.png", |
| | | fileUrl: file, |
| | | fileType: "png" |
| | | }; |
| | |
| | | // 审查状态过滤器 |
| | | getReviewStatusFilter(status) { |
| | | const statusMap = { |
| | | "0": "info", // 待接收 |
| | | "1": "warning", // 未接收 |
| | | "0": "info", // 待发送 |
| | | "1": "warning", // 已发送 |
| | | "2": "success", // 已接收 |
| | | "3": "danger", // 超时 |
| | | "4": "danger", // 中止 |
| | |
| | | |
| | | getReviewStatusText(status) { |
| | | const statusMap = { |
| | | "0": "待接收", |
| | | "1": "未接收", |
| | | "0": "待发送", |
| | | "1": "已发送", |
| | | "2": "已接收", |
| | | "3": "超时", |
| | | "4": "中止", |
| | |
| | | // 结论过滤器 |
| | | getConclusionFilter(conclusion) { |
| | | const conclusionMap = { |
| | | "0": "danger", // 不同意 |
| | | "1": "success", // 同意 |
| | | "2": "warning", // 审查中 |
| | | "0": "danger" // 不同意 |
| | | "3": "info", // 弃权 |
| | | "4": "success" // 修改后同意 |
| | | }; |
| | | return conclusionMap[conclusion] || "info"; |
| | | }, |
| | | |
| | | getConclusionText(conclusion) { |
| | | const conclusionMap = { |
| | | "0": "不同意", |
| | | "1": "同意", |
| | | "2": "审查中", |
| | | "0": "不同意" |
| | | "3": "弃权", |
| | | "4": "修改后同意" |
| | | }; |
| | | return conclusionMap[conclusion] || "未知"; |
| | | }, |
| | |
| | | deptName: expert.unitname || "", |
| | | title: expert.title || "", |
| | | donorno: expert.telephone || "", |
| | | receiveStatus: "0", // 待接收 |
| | | receiveStatus: "0", // 待发送 |
| | | expertconclusion: "", |
| | | expertopinion: "", |
| | | conclusionannex: "", |
| | |
| | | |
| | | if (index != -1) { |
| | | this.form.ethicalreviewopinionsList[index].receiveStatus = "1"; // 已接收 |
| | | this.form.ethicalreviewopinionsList[index].expertconclusion = "2"; // 审查中 |
| | | this.form.ethicalreviewopinionsList[ |
| | | index |
| | | ].startTime = this.sendForm.startTime; |
| | |
| | | display: flex; |
| | | width: 100%; |
| | | border-top: 1px solid #d0d3db; |
| | | /* 上移1px与上一行的border-bottom重叠,两行之间只显示一条1px细线 */ |
| | | margin-top: -1px; |
| | | } |
| | | .paper-form >>> .form-row:first-child { |
| | | margin-top: 0; |
| | | } |
| | | |
| | | /* 行尾空白填充:不满整行的右侧自动补一个空白格子,网格保持闭合(右侧适当留白) */ |
| | | .paper-form >>> .form-row::after { |
| | | content: ""; |
| | | flex: 1 1 0; |
| | | min-height: 42px; |
| | | background: linear-gradient(to left, #d0d3db 1px, transparent 1px), |
| | | linear-gradient(to top, #d0d3db 1px, transparent 1px); |
| | | background-color: #fff; |
| | | } |
| | | |
| | | .paper-form >>> .el-form-item { |
| | |
| | | .paper-form >>> .col-full { flex: 0 0 100%; } |
| | | |
| | | .paper-form >>> .el-form-item__label { |
| | | flex: 0 0 120px; |
| | | width: 120px !important; |
| | | flex: 0 0 150px; |
| | | width: 150px !important; |
| | | float: none; |
| | | padding: 0 8px !important; |
| | | background: #ecf5ff; |
| | |
| | | font-weight: 600; |
| | | color: #2c3038; |
| | | line-height: 1.3; |
| | | white-space: normal; |
| | | word-break: break-all; |
| | | white-space: nowrap; |
| | | } |
| | | .paper-form >>> .el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label:before { |
| | | color: #f56c6c; |
| | |
| | | min-height: 42px; |
| | | line-height: 1.4; |
| | | } |
| | | |
| | | /* 控件宽度适中,不铺满整格(内容短时输入框不再拉得很长) */ |
| | | .paper-form >>> .el-form-item__content .el-input, |
| | | .paper-form >>> .el-form-item__content .el-select, |
| | | .paper-form >>> .el-form-item__content .el-cascader { |
| | | width: 220px; |
| | | max-width: 100%; |
| | | } |
| | | .paper-form >>> .el-form-item__content .el-date-editor { |
| | | width: 240px; |
| | | max-width: 100%; |
| | | } |
| | | .paper-form >>> .el-form-item__content .el-range-editor { |
| | | width: 360px; |
| | | max-width: 100%; |
| | | } |
| | | </style> |