WXL
7 天以前 f806aff5702fc6be9c9348d51964366cbf434bf7
src/views/business/ethicalReview/ethicalReviewInfo.vue
@@ -620,7 +620,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 +631,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 +962,6 @@
        startTime: "",
        endTime: "",
        sendType: "0",
        title: "伦理审查任务通知",
        content: "",
        url: ""
      },
@@ -1504,9 +1503,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 +1531,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 +2061,9 @@
    // 发送给普通专家
    handleSendToNormalExperts() {
      if (!this.validateAllIds(this.ethicalreviewopinionsList)) {
        return;
      }
      this.currentSendExperts = this.availableNormalExperts;
      this.sendForm.expertType = "normal";
      this.sendForm.endTime = ""; // 重置截止时间
@@ -2068,6 +2072,9 @@
    // 发送给主委专家
    handleSendToChiefExpert() {
      if (!this.validateAllIds(this.ethicalreviewopinionsList)) {
        return;
      }
      this.currentSendExperts = this.availableChiefExperts;
      this.sendForm.expertType = "chief";
      this.sendForm.endTime = ""; // 主委专家无需截止时间
@@ -2076,12 +2083,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 +2125,6 @@
        startTime: "",
        endTime: "",
        sendType: "0",
        title: "伦理审查任务通知",
        content: "",
        url: ""
      };
@@ -2110,20 +2144,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 +2279,6 @@
          startTime: "",
          endTime: "",
          sendType: "0",
          title: "伦理审查任务通知",
          content: "",
          url: ""
        };
@@ -2262,27 +2295,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.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 {