From c8e9849cb5f24848df0174c13bfbbff37bb08a5a Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期二, 21 七月 2026 15:45:30 +0800
Subject: [PATCH] 维护
---
src/views/business/ethicalReview/ethicalReviewInfo.vue | 198 ++++++++++++++++++++++++++++++-------------------
1 files changed, 122 insertions(+), 76 deletions(-)
diff --git a/src/views/business/ethicalReview/ethicalReviewInfo.vue b/src/views/business/ethicalReview/ethicalReviewInfo.vue
index 8e56dfa..2da5b62 100644
--- a/src/views/business/ethicalReview/ethicalReviewInfo.vue
+++ b/src/views/business/ethicalReview/ethicalReviewInfo.vue
@@ -6,38 +6,6 @@
<!-- 浼︾悊瀹℃煡鍩烘湰淇℃伅 -->
<div slot="header" class="clearfix">
<span class="detail-title">浼︾悊瀹℃煡鍩烘湰淇℃伅</span>
- <div style="float: right;">
- <el-button type="primary" @click="handleSave" :loading="saveLoading">
- 淇濆瓨
- </el-button>
-
- <el-button
- type="success"
- @click="handleCompleteReview"
- :disabled="form.status == '3' || form.status == '2'"
- :loading="completeLoading"
- >
- 瀹℃煡瀹屾垚
- </el-button>
-
- <el-button
- type="warning"
- @click="handleSuspendReview"
- :disabled="form.status == '2' || form.status == '3'"
- :loading="suspendLoading"
- >
- 瀹℃煡涓
- </el-button>
-
- <el-button
- type="danger"
- @click="handleEndReview"
- :disabled="form.status == '2'"
- :loading="endLoading"
- >
- 缁撴潫瀹℃煡
- </el-button>
- </div>
</div>
<el-form :model="form" ref="form" :rules="rules" label-width="120px">
@@ -458,7 +426,38 @@
</el-table-column>
</el-table>
</el-card>
+ <div style="text-align: center; margin: 30px 0;">
+ <el-button type="primary" @click="handleSave" :loading="saveLoading">
+ 淇濆瓨
+ </el-button>
+ <el-button
+ v-if="form.status != '3'"
+ type="success"
+ @click="handleCompleteReview"
+ :loading="completeLoading"
+ >
+ 瀹℃煡瀹屾垚
+ </el-button>
+
+ <el-button
+ type="warning"
+ @click="handleSuspendReview"
+ :disabled="form.status == '2' || form.status == '3'"
+ :loading="suspendLoading"
+ >
+ 瀹℃煡涓
+ </el-button>
+
+ <el-button
+ type="danger"
+ @click="handleEndReview"
+ :disabled="form.status == '2'"
+ :loading="endLoading"
+ >
+ 缁撴潫瀹℃煡
+ </el-button>
+ </div>
<!-- 娣诲姞涓撳瀵硅瘽妗� -->
<el-dialog
title="娣诲姞涓撳"
@@ -620,7 +619,7 @@
</div>
</el-form-item>
- <el-form-item label="鍙戦�佹柟寮�" prop="sendType" required>
+ <!-- <el-form-item label="鍙戦�佹柟寮�" prop="sendType" required>
<el-select
v-model="sendForm.sendType"
placeholder="璇烽�夋嫨鍙戦�佹柟寮�"
@@ -631,27 +630,27 @@
<el-option label="鐭俊鍙戦��" value="2"></el-option>
<el-option label="鍏朵粬鏂瑰紡" value="3"></el-option>
</el-select>
- </el-form-item>
+ </el-form-item> -->
- <el-form-item label="鍙戦�佹爣棰�" prop="title" required>
+ <!-- <el-form-item label="鍙戦�佹爣棰�" prop="title" required>
<el-input v-model="sendForm.title" placeholder="璇疯緭鍏ュ彂閫佹爣棰�" />
- </el-form-item>
+ </el-form-item> -->
- <el-form-item label="鍙戦�佸唴瀹�" prop="content" required>
+ <!-- <el-form-item label="鍙戦�佸唴瀹�" prop="content" required>
<el-input
type="textarea"
:rows="4"
v-model="sendForm.content"
placeholder="璇疯緭鍏ュ彂閫佺粰涓撳鐨勫鏌ュ唴瀹硅鏄�"
/>
- </el-form-item>
+ </el-form-item> -->
- <el-form-item label="璺宠浆閾炬帴" prop="url">
+ <!-- <el-form-item label="璺宠浆閾炬帴" prop="url">
<el-input
v-model="sendForm.url"
placeholder="璇疯緭鍏ヨ烦杞摼鎺ワ紙鍙�夛級"
/>
- </el-form-item>
+ </el-form-item> -->
</el-form>
<div slot="footer">
<el-button @click="sendDialogVisible = false">鍙栨秷</el-button>
@@ -962,7 +961,6 @@
startTime: "",
endTime: "",
sendType: "0",
- title: "浼︾悊瀹℃煡浠诲姟閫氱煡",
content: "",
url: ""
},
@@ -1174,7 +1172,13 @@
} else if (infoid) {
response = await reviewinitiateBaseInfoList({ infoid: infoid });
}
-
+ if (
+ !response.data.status ||
+ response.data.status == 0 ||
+ response.data.status == 1
+ ) {
+ response.data.status = "2";
+ }
if (response.code == 200) {
let detailData = {};
@@ -1504,9 +1508,9 @@
if (valid) {
this.saveLoading = true;
// 淇濆瓨娓呯┖id渚夸簬鍚庣鏁翠綋鍒犻櫎鏂板
- this.form.ethicalreviewopinionsList.forEach(item => {
- item.id = null;
- });
+ // this.form.ethicalreviewopinionsList.forEach(item => {
+ // item.id = null;
+ // });
try {
const submitData = {
...this.form,
@@ -1532,10 +1536,12 @@
this.isEdit = false;
if (!this.form.id && response.data && response.data.id) {
this.form.id = response.data.id;
- this.$router.replace({
- query: { ...this.$route.query, id: this.form.id }
- });
+ this.id = this.form.id;
+ // this.$router.replace({
+ // query: { ...this.$route.query, id: this.form.id }
+ // });
}
+ this.refreshPageData();
} else {
this.$message.error("淇濆瓨澶辫触锛�" + (response.msg || "鏈煡閿欒"));
}
@@ -2060,6 +2066,9 @@
// 鍙戦�佺粰鏅�氫笓瀹�
handleSendToNormalExperts() {
+ if (!this.validateAllIds(this.ethicalreviewopinionsList)) {
+ return;
+ }
this.currentSendExperts = this.availableNormalExperts;
this.sendForm.expertType = "normal";
this.sendForm.endTime = ""; // 閲嶇疆鎴鏃堕棿
@@ -2068,6 +2077,9 @@
// 鍙戦�佺粰涓诲涓撳
handleSendToChiefExpert() {
+ if (!this.validateAllIds(this.ethicalreviewopinionsList)) {
+ return;
+ }
this.currentSendExperts = this.availableChiefExperts;
this.sendForm.expertType = "chief";
this.sendForm.endTime = ""; // 涓诲涓撳鏃犻渶鎴鏃堕棿
@@ -2076,12 +2088,40 @@
// 鍙戦�佺粰鍗曚釜涓撳
handleSendToExpert(expert) {
+ if (!this.validateAllIds(this.ethicalreviewopinionsList)) {
+ return;
+ }
this.currentSendExperts = [expert];
this.sendForm.expertType = expert.expertType == "1" ? "chief" : "normal";
this.sendForm.endTime = expert.expertType == "1" ? "" : ""; // 涓诲涓撳鏃犻渶鎴鏃堕棿
this.sendDialogVisible = true;
},
+ validateAllIds(arr, idField = "id") {
+ if (!Array.isArray(arr) || arr.length === 0) {
+ this.$message.warning("璇峰厛閫夋嫨涓撳鍒楄〃");
+ return false;
+ }
+
+ const emptyIdItems = arr.filter(item => {
+ const id = item[idField];
+ return (
+ id === undefined ||
+ id === null ||
+ id === "" ||
+ id.toString().trim() === ""
+ );
+ });
+
+ if (emptyIdItems.length > 0) {
+ this.$message.warning(
+ "褰撳墠閫変腑涓撳鍒楄〃鏈夋湭淇濆瓨鏁版嵁锛岃淇濆瓨鍒锋柊鍚庡啀鍙戦��"
+ );
+ return false;
+ }
+
+ return true;
+ },
// 鍙戦�佸璇濇鍏抽棴
handleSendDialogClose() {
this.sendForm = {
@@ -2090,7 +2130,6 @@
startTime: "",
endTime: "",
sendType: "0",
- title: "浼︾悊瀹℃煡浠诲姟閫氱煡",
content: "",
url: ""
};
@@ -2110,20 +2149,20 @@
return;
}
- if (!this.sendForm.sendType) {
- this.$message.warning("璇烽�夋嫨鍙戦�佹柟寮�");
- return;
- }
+ // if (!this.sendForm.sendType) {
+ // this.$message.warning("璇烽�夋嫨鍙戦�佹柟寮�");
+ // return;
+ // }
- if (!this.sendForm.title) {
- this.$message.warning("璇疯緭鍏ュ彂閫佹爣棰�");
- return;
- }
+ // if (!this.sendForm.title) {
+ // this.$message.warning("璇疯緭鍏ュ彂閫佹爣棰�");
+ // return;
+ // }
- if (!this.sendForm.content) {
- this.$message.warning("璇疯緭鍏ュ彂閫佸唴瀹�");
- return;
- }
+ // if (!this.sendForm.content) {
+ // this.$message.warning("璇疯緭鍏ュ彂閫佸唴瀹�");
+ // return;
+ // }
if (this.currentSendExperts.length == 0) {
this.$message.warning("娌℃湁鎵惧埌鍙彂閫佺殑涓撳");
@@ -2245,7 +2284,6 @@
startTime: "",
endTime: "",
sendType: "0",
- title: "浼︾悊瀹℃煡浠诲姟閫氱煡",
content: "",
url: ""
};
@@ -2262,27 +2300,35 @@
},
// 鍙戦�佸崟涓笓瀹剁殑鏂规硶
async sendSingleExpert(expert, index) {
+ console.log(expert, "expert", index);
+
try {
- // 鏋勫缓鍙戦�佹暟鎹�
- const sendData = {
- number: expert.deptname || "", // 鐢ㄦ埛鎵嬫満鍙�
- title: this.sendForm.title,
- url: this.sendForm.url || "",
- createTime: new Date()
- .toISOString()
- .replace("T", " ")
- .substring(0, 19)
+ // // 鏋勫缓鍙戦�佹暟鎹�
+ // const sendData = {
+ // number: expert.deptname || "", // 鐢ㄦ埛鎵嬫満鍙�
+ // title: this.sendForm.title,
+ // url: this.sendForm.url || "",
+ // createTime: new Date()
+ // .toISOString()
+ // .replace("T", " ")
+ // .substring(0, 19)
+ // };
+ const sendDatas = {
+ expertNo: expert.donorno || "",//7.14
+ id: expert.id || "",
+ infoId: this.infoid || ""
};
console.log(`姝e湪鍙戦�佺 ${index + 1} 涓笓瀹�: ${expert.expertname}`);
// 璋冪敤鍙戦�侀�氱煡鎺ュ彛
// const response = await sendNotification(sendData);
- const response = await sendcall({
- tel: expert.donorno ? expert.donorno : 13634195431, // 杩欓噷搴旇鏄� expert.deptname 鎴� expert.phone
- messageContent:
- "闈掑矝澶у闄勫睘鍖婚櫌涓婃姤娼滃湪鎹愮尞妗堜緥锛岃鐧诲綍OPO绯荤粺鏌ョ湅璇︾粏淇℃伅锛屽強鏃惰繘琛屽鎺ャ�傜櫥褰曢摼鎺�:https://brdeddd.qduhosos.cn/dklejdj/deljf/index"
- });
+ // const response = await sendcall({
+ // tel: expert.donorno ? expert.donorno : 13634195431, // 杩欓噷搴旇鏄� expert.deptname 鎴� expert.phone
+ // messageContent:
+ // "闈掑矝澶у闄勫睘鍖婚櫌涓婃姤娼滃湪鎹愮尞妗堜緥锛岃鐧诲綍OPO绯荤粺鏌ョ湅璇︾粏淇℃伅锛屽強鏃惰繘琛屽鎺ャ�傜櫥褰曢摼鎺�:https://brdeddd.qduhosos.cn/dklejdj/deljf/index"
+ // });
+ const response = await sendNotification(sendDatas);
if (response.code == 200) {
return {
--
Gitblit v1.9.3