From 3df460667d74868d0a54fce12d5e881bbd6c0c1a Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期四, 17 九月 2026 17:11:18 +0800
Subject: [PATCH] 青岛维护统计
---
src/views/business/ethicalReview/ethicalReviewInfo.vue | 255 +++++++++++++++++++++++++++++++++++---------------
1 files changed, 178 insertions(+), 77 deletions(-)
diff --git a/src/views/business/ethicalReview/ethicalReviewInfo.vue b/src/views/business/ethicalReview/ethicalReviewInfo.vue
index 2da5b62..6321ef7 100644
--- a/src/views/business/ethicalReview/ethicalReviewInfo.vue
+++ b/src/views/business/ethicalReview/ethicalReviewInfo.vue
@@ -1,28 +1,24 @@
<template>
<div class="ethics-review-detail">
- <case-basic-info :case-id="caseId" :show-attachment="true" />
+ <case-basic-info :case-id="caseId" :show-attachment="true":column="3" />
- <el-card class="detail-card">
+ <el-card class="detail-card paper-card">
<!-- 浼︾悊瀹℃煡鍩烘湰淇℃伅 -->
<div slot="header" class="clearfix">
<span class="detail-title">浼︾悊瀹℃煡鍩烘湰淇℃伅</span>
</div>
- <el-form :model="form" ref="form" :rules="rules" label-width="120px">
- <el-row :gutter="20">
- <el-col :span="8">
- <el-form-item label="鍙戣捣涓婚" prop="initiateTheme">
- <el-input
- v-model="form.initiateTheme"
- placeholder="璇疯緭鍏ュ彂璧蜂富棰�"
- />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="鍙戣捣浜�" prop="initiatePerson">
- <el-input v-model="form.initiatePerson" />
- </el-form-item>
- </el-col>
+ <el-form :model="form" ref="form" :rules="rules" label-width="120px" class="paper-form">
+ <div class="form-row">
+ <el-form-item label="鍙戣捣涓婚" prop="initiateTheme" class="col-1-3">
+ <el-input
+ v-model="form.initiateTheme"
+ placeholder="璇疯緭鍏ュ彂璧蜂富棰�"
+ />
+ </el-form-item>
+ <el-form-item label="鍙戣捣浜�" prop="initiatePerson" class="col-1-3">
+ <el-input v-model="form.initiatePerson" />
+ </el-form-item>
<!-- <el-col :span="8">
<el-form-item label="瀹℃煡鐘舵��" prop="status">
<el-select v-model="form.status" style="width: 100%">
@@ -35,57 +31,51 @@
</el-select>
</el-form-item>
</el-col> -->
- </el-row>
+ </div>
<!-- 涓撳鐩稿叧淇℃伅 -->
- <el-row :gutter="20">
- <el-col :span="8">
- <el-form-item label="浼︾悊瀹℃煡缁撹" prop="expertConclusion">
- <el-select v-model="form.expertConclusion" style="width: 100%">
- <el-option label="鍚屾剰" value="1" />
- <el-option label="瀹℃煡涓�" value="2" />
- <el-option label="涓嶅悓鎰�" value="0" />
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="浼︾悊瀹℃煡缁撹鏃堕棿" prop="expertTime">
- <el-date-picker
- v-model="form.expertTime"
- type="datetime"
- value-format="yyyy-MM-dd HH:mm:ss"
- style="width: 100%"
- />
- </el-form-item>
- </el-col>
- </el-row>
+ <div class="form-row">
+ <el-form-item label="浼︾悊瀹℃煡缁撹" prop="expertConclusion" class="col-1-3">
+ <el-select v-model="form.expertConclusion" style="width: 100%">
+ <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-date-picker
+ v-model="form.expertTime"
+ type="datetime"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ style="width: 100%"
+ />
+ </el-form-item>
+ </div>
- <el-row :gutter="20">
- <el-col :span="24">
- <el-form-item label="瀹℃煡鎰忚" prop="expertOpinion">
- <el-input
- type="textarea"
- :rows="2"
- v-model="form.expertOpinion"
- placeholder="璇疯緭鍏ユ剰瑙�"
- />
- </el-form-item>
- </el-col>
- </el-row>
+ <div class="form-row">
+ <el-form-item label="瀹℃煡鎰忚" prop="expertOpinion" class="col-full">
+ <el-input
+ type="textarea"
+ :rows="2"
+ v-model="form.expertOpinion"
+ placeholder="璇疯緭鍏ユ剰瑙�"
+ />
+ </el-form-item>
+ </div>
- <el-row :gutter="20">
- <el-col :span="24">
- <el-form-item label="澶囨敞" prop="remark">
- <el-input
- type="textarea"
- :rows="3"
- v-model="form.remark"
- placeholder="璇疯緭鍏ュ娉ㄤ俊鎭�"
- />
- </el-form-item>
- </el-col>
- </el-row>
+ <div class="form-row">
+ <el-form-item label="澶囨敞" prop="remark" class="col-full">
+ <el-input
+ type="textarea"
+ :rows="3"
+ v-model="form.remark"
+ placeholder="璇疯緭鍏ュ娉ㄤ俊鎭�"
+ />
+ </el-form-item>
+ </div>
</el-form>
</el-card>
@@ -737,7 +727,7 @@
<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>
@@ -1163,7 +1153,7 @@
},
// 鑾峰彇璇︽儏
- async getDetail(infoid, id) {
+ async getDetail(infoid, id) {
try {
this.expertLoading = true;
let response = {};
@@ -1171,7 +1161,12 @@
response = await ethicalreviewInfo(id);
} else if (infoid) {
response = await reviewinitiateBaseInfoList({ infoid: infoid });
+ if (response.data[0].id) {
+ this.id = response.data[0].id;
+ response = await ethicalreviewInfo(this.id);
+ }
}
+
if (
!response.data.status ||
response.data.status == 0 ||
@@ -1182,7 +1177,7 @@
if (response.code == 200) {
let detailData = {};
- if (response.data && id) {
+ if (response.data && this.id) {
this.form = response.data;
// 瑙f瀽 filePatch 瀛楁
this.parseFilePatch(this.form.filePatch);
@@ -1191,7 +1186,7 @@
if (!this.form.ethicalreviewopinionsList) {
this.$set(this.form, "ethicalreviewopinionsList", []);
}
- } else if (response.data && infoid) {
+ } else if (response.data && this.infoid) {
this.form = response.data[0];
this.parseFilePatch(this.form.filePatch);
this.initAttachmentFileList();
@@ -1340,7 +1335,9 @@
console.log(file, "file");
this.currentPreviewFile = {
- fileName: file,
+ // 绛惧悕闄勪欢 URL 閫氬父鏃犳墿灞曞悕锛堝 .../file-1787645145583锛夛紝
+ // 棰勮缁勪欢渚濊禆鏂囦欢鍚嶆墿灞曞悕璇嗗埆鏂囦欢绫诲瀷锛岃繖閲岃ˉ .png 璁╁叾鎸夊浘鐗囬瑙�
+ fileName: "鎵嬪啓绛惧悕.png",
fileUrl: file,
fileType: "png"
};
@@ -1430,8 +1427,8 @@
// 瀹℃煡鐘舵�佽繃婊ゅ櫒
getReviewStatusFilter(status) {
const statusMap = {
- "0": "info", // 寰呮帴鏀�
- "1": "warning", // 鏈帴鏀�
+ "0": "info", // 寰呭彂閫�
+ "1": "warning", // 宸插彂閫�
"2": "success", // 宸叉帴鏀�
"3": "danger", // 瓒呮椂
"4": "danger", // 涓
@@ -1442,8 +1439,8 @@
getReviewStatusText(status) {
const statusMap = {
- "0": "寰呮帴鏀�",
- "1": "鏈帴鏀�",
+ "0": "寰呭彂閫�",
+ "1": "宸插彂閫�",
"2": "宸叉帴鏀�",
"3": "瓒呮椂",
"4": "涓",
@@ -1455,18 +1452,22 @@
// 缁撹杩囨护鍣�
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] || "鏈煡";
},
@@ -1534,8 +1535,8 @@
// 淇濆瓨鎴愬姛鍚庢洿鏂板師濮嬫暟鎹�
this.saveOriginalData();
this.isEdit = false;
- if (!this.form.id && response.data && response.data.id) {
- this.form.id = response.data.id;
+ if (!this.form.id && response.data ) {
+ this.form.id = response.data;
this.id = this.form.id;
// this.$router.replace({
// query: { ...this.$route.query, id: this.form.id }
@@ -2012,7 +2013,7 @@
deptName: expert.unitname || "",
title: expert.title || "",
donorno: expert.telephone || "",
- receiveStatus: "0", // 寰呮帴鏀�
+ receiveStatus: "0", // 寰呭彂閫�
expertconclusion: "",
expertopinion: "",
conclusionannex: "",
@@ -2211,6 +2212,7 @@
if (index != -1) {
this.form.ethicalreviewopinionsList[index].receiveStatus = "1"; // 宸叉帴鏀�
+ this.form.ethicalreviewopinionsList[index].expertconclusion = "2"; // 瀹℃煡涓�
this.form.ethicalreviewopinionsList[
index
].startTime = this.sendForm.startTime;
@@ -2748,4 +2750,103 @@
margin-bottom: 10px;
}
}
+
+/* ===== 绾歌川琛ㄦ牸缃戞牸鏍峰紡 ===== */
+.paper-card >>> .el-card__body {
+ padding: 16px;
+}
+
+.paper-form {
+ border-left: 1px solid #d0d3db;
+ background: #fff;
+}
+
+.paper-form >>> .form-row {
+ 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 {
+ flex: 0 0 33.3333%;
+ display: flex;
+ margin: 0;
+ background: #fff;
+ border-right: 1px solid #d0d3db;
+ border-bottom: 1px solid #d0d3db;
+}
+.paper-form >>> .el-form-item::after,
+.paper-form >>> .el-form-item::before {
+ display: none;
+}
+
+.paper-form >>> .col-1-3 { flex: 0 0 33.3333%; }
+.paper-form >>> .col-half { flex: 0 0 50%; }
+.paper-form >>> .col-2-3 { flex: 0 0 66.6666%; }
+.paper-form >>> .col-full { flex: 0 0 100%; }
+
+.paper-form >>> .el-form-item__label {
+ flex: 0 0 150px;
+ width: 150px !important;
+ float: none;
+ padding: 0 8px !important;
+ background: #ecf5ff;
+ border-right: 1px solid #d0d3db;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ font-size: 13px;
+ font-weight: 600;
+ color: #2c3038;
+ line-height: 1.3;
+ white-space: nowrap;
+}
+.paper-form >>> .el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label:before {
+ color: #f56c6c;
+ margin-right: 2px;
+}
+
+.paper-form >>> .el-form-item__content {
+ flex: 1;
+ margin-left: 0 !important;
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ padding: 6px 10px;
+ background: #fff;
+ 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>
--
Gitblit v1.9.3