| | |
| | | </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="请选择发送方式" |
| | |
| | | <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> |
| | |
| | | startTime: "", |
| | | endTime: "", |
| | | sendType: "0", |
| | | title: "伦理审查任务通知", |
| | | content: "", |
| | | url: "" |
| | | }, |
| | |
| | | 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, |
| | |
| | | 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 || "未知错误")); |
| | | } |
| | |
| | | |
| | | // 发送给普通专家 |
| | | handleSendToNormalExperts() { |
| | | if (!this.validateAllIds(this.ethicalreviewopinionsList)) { |
| | | return; |
| | | } |
| | | this.currentSendExperts = this.availableNormalExperts; |
| | | this.sendForm.expertType = "normal"; |
| | | this.sendForm.endTime = ""; // 重置截止时间 |
| | |
| | | |
| | | // 发送给主委专家 |
| | | handleSendToChiefExpert() { |
| | | if (!this.validateAllIds(this.ethicalreviewopinionsList)) { |
| | | return; |
| | | } |
| | | this.currentSendExperts = this.availableChiefExperts; |
| | | this.sendForm.expertType = "chief"; |
| | | this.sendForm.endTime = ""; // 主委专家无需截止时间 |
| | |
| | | |
| | | // 发送给单个专家 |
| | | 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 = { |
| | |
| | | startTime: "", |
| | | endTime: "", |
| | | sendType: "0", |
| | | title: "伦理审查任务通知", |
| | | content: "", |
| | | url: "" |
| | | }; |
| | |
| | | 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("没有找到可发送的专家"); |
| | |
| | | startTime: "", |
| | | endTime: "", |
| | | sendType: "0", |
| | | title: "伦理审查任务通知", |
| | | content: "", |
| | | url: "" |
| | | }; |
| | |
| | | }, |
| | | // 发送单个专家的方法 |
| | | 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.expertNo || "", |
| | | id: expert.id || "", |
| | | infoId: this.infoid || "" |
| | | }; |
| | | |
| | | console.log(`正在发送第 ${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 { |