liusheng
3 天以前 bbbc478129f72b26e2ec4a2e981ed8698a96880c
src/views/followvisit/record/detailpage/index.vue
@@ -127,6 +127,29 @@
              </el-tooltip>
            </template>
          </el-table-column>
                <el-table-column
            v-if="
              orgname == '景宁畲族自治县人民医院' ||
              orgname == '丽水市中医院'
            "
            label="拨号状态"
            width="120"
            align="center"
            key="isManuallyCalled"
            prop="isManuallyCalled"
          >
            <template slot-scope="scope">
              <el-tag
                v-if="Number(scope.row.isManuallyCalled) > 0"
                type="success"
                :disable-transitions="false"
                >拨通{{ scope.row.isManuallyCalled }}次</el-tag
              >
              <el-tag v-else type="info" :disable-transitions="false"
                >未拨通</el-tag
              >
            </template>
          </el-table-column>
          <el-table-column
            prop="finishtime"
            align="center"
@@ -283,6 +306,8 @@
          >
          </el-table-column>
          <el-table-column
            prop="bankcardno"
            align="center"
@@ -383,9 +408,20 @@
                        type="primary"
                        round
                        @click="smsSubTask"
                        v-if="orgname != '省立同德翠苑院区'"
                        v-if="
                          orgname != '省立同德翠苑院区' &&
                          orgname != '丽水市中医院'
                        "
                      >
                        问卷短信推送
                      </el-button>
                      <el-button
                        type="primary"
                        round
                        @click="weChatSubTask"
                        v-if="orgname == '丽水市中医院'"
                      >
                        问卷微信推送
                      </el-button>
                    </span>
                  </div>
@@ -1121,7 +1157,7 @@
          <!-- 注意这里可能使用 userform.telcode -->
        </el-form-item>
        <el-form-item label="科室">
          <el-input style="width: 400px" v-model="form.deptname"></el-input>
          <el-input style="width: 400px" v-model="form.leaveldeptname"></el-input>
        </el-form-item>
        <el-form-item label="病区">
          <el-input
@@ -1144,9 +1180,9 @@
      title="患者再次随访"
      v-dialogDrags
      :visible.sync="dialogFormVisible"
      width="700px"
      width="900px"
    >
      <el-form ref="zcform" :rules="zcrules" :model="form" label-width="80px">
      <el-form ref="zcform" :rules="zcrules" :model="form" label-width="120px">
        <!-- 基础服务信息 - 默认折叠 -->
        <el-collapse v-model="activeNames" @change="handleCollapseChange">
          <el-collapse-item title="基础服务信息" name="basic">
@@ -1175,7 +1211,7 @@
              <el-input
                style="width: 100%"
                disabled
                v-model="form.deptname"
                v-model="form.leaveldeptname"
              ></el-input>
            </el-form-item>
            <el-form-item label="病区">
@@ -1246,6 +1282,13 @@
          <!-- 下次随访信息 - 默认展开 -->
          <el-collapse-item title="下次随访" name="next">
            <el-form-item label="再次随访任务">
              <el-input
                disabled
                v-model="nextTaskName"
                placeholder="再次随访任务"
              ></el-input>
            </el-form-item>
            <el-row>
              <el-col :span="12">
                <el-form-item label="随访方式" prop="visitType">
@@ -1293,6 +1336,12 @@
            <el-form-item label="随访记录" :required="form.resource == '2'">
              <el-input type="textarea" v-model="form.remark"></el-input>
            </el-form-item>
            <el-form-item label="医生处理意见" prop="doctorOpinion">
              <el-input
                type="textarea"
                v-model="form.doctorOpinion"
              ></el-input>
            </el-form-item>
          </el-collapse-item>
        </el-collapse>
      </el-form>
@@ -1312,7 +1361,11 @@
        :visible.sync="CaldialogVisible"
        width="60%"
      >
        <CallCenterLs ref="CallCenterLs" :initial-phone="currentPhoneNumber" />
        <CallCenterLs
          ref="CallCenterLs"
          :initial-phone="currentPhoneNumber"
          @call-connected="recordCallConnected"
        />
      </el-dialog>
    </div>
  </div>
@@ -1336,8 +1389,10 @@
  query360PatInfonh,
  sendMsg,
  smsSubTask,
  weChatSubTask,
  getconfigKey,
} from "@/api/AiCentre/index";
import { getIvrtask } from "@/api/smartor/ivrtask";
import {
  messagelistpatient,
  alterpatient,
@@ -1487,6 +1542,7 @@
      input: "今天身体还不错",
      radio: "2",
      taskname: "",
      nextTaskName: "",
      activeName: "wj",
      voice: "",
      templateid: "",
@@ -1582,6 +1638,9 @@
            },
            trigger: "change",
          },
        ],
        doctorOpinion: [
          { required: true, message: "请输入医生处理意见", trigger: "blur" },
        ],
      },
      userrules: {
@@ -2216,7 +2275,8 @@
          });
        }
      } else {
        location.reload();
        // location.reload();
        this.$router.go(-1);
      }
    },
    // 电话============================
@@ -2299,6 +2359,22 @@
          console.log(err);
        });
    },
    weChatSubTask() {
      this.$modal
        .confirm("是否向患者通过微信推送问卷内容?")
        .then(() => {
          weChatSubTask(this.id).then((res) => {
            if (String(res.code) === "200") {
              this.$modal.msgSuccess(res.msg || "发送成功");
            } else {
              this.$modal.msgError(res.message || res.msg || "发送失败");
            }
          });
        })
        .catch((err) => {
          console.log(err);
        });
    },
    handleConfirmReplace() {
      // 遍历所有题目(tableDatatop)
      this.tableDatatop.forEach((item) => {
@@ -2349,7 +2425,7 @@
        this.CaldialogVisible = true;
        return;
      }
      // 下方是中医院呼叫
      // 下方是丽水市中医院
      if (this.isSipRegistering) {
        this.$message.warning("系统正在初始化,请稍候...");
        return;
@@ -2379,11 +2455,15 @@
      this.callStatus = status.type;
      if (status.type === "connected") {
        this.currentCall = {
          phone: this.currentPhoneNumber,
          type: this.callType,
          startTime: new Date(),
        };
        if (!this.currentCall) {
          this.currentCall = {
            phone: this.currentPhoneNumber,
            type: this.callType,
            startTime: new Date(),
          };
          // 丽水市中医院:电话接通后记录拨打成功次数
          this.recordCallConnected();
        }
      } else if (status.type === "ended" || status.type === "failed") {
        this.currentCall = null;
      }
@@ -2392,6 +2472,39 @@
      if (status.type === "failed") {
        this.$message.error(`呼叫失败: ${status.text}`);
      }
    },
    // 电话拨打成功后(接通)次数 +1,并通过 Editsingletaskson 更新服务数据
    // 仅限景宁畲族自治县人民医院与丽水市中医院
    recordCallConnected() {
      const allowedOrgs = ["景宁畲族自治县人民医院", "丽水市中医院"];
      if (!allowedOrgs.includes(this.orgname)) return;
      getTaskservelist({
        patid: this.patid,
        subId: this.id,
      }).then((res) => {
        if (res.code == 200) {
          const objson = res.rows[0].serviceSubtaskList.find(
            (item) => item.id == this.id
          );
          if (!objson) return;
          objson.isManuallyCalled = (Number(objson.isManuallyCalled) || 0) + 1;
          Editsingletaskson(objson).then((r) => {
            if (r.code == 200) {
              // 及时更新顶部服务列表与表单中的拨号状态
              const localRow = (this.logsheetlist || []).find(
                (item) => item.id == this.id
              );
              if (localRow) {
                localRow.isManuallyCalled = objson.isManuallyCalled;
              }
              if (this.form && this.form.id == this.id) {
                this.form.isManuallyCalled = objson.isManuallyCalled;
              }
            }
          });
        }
      });
    },
    // 结束当前通话
    endCurrentCall() {
@@ -2522,6 +2635,7 @@
          console.log(this.form.templatename, "templatename");
          this.form.remark = this.form.remark || "";
          this.form.doctorOpinion = this.form.doctorOpinion || "";
          this.logsheetlist = res.rows[0].serviceSubtaskList;
          this.templateid = this.form.templateid;
          this.selectedTag = this.form.excep;
@@ -2555,7 +2669,7 @@
        name: this.form.sendname,
        age: this.form.age,
        phone: this.userform.telcode,
        deptName: this.form.deptname,
        deptName: this.form.leaveldeptname,
        wardName: this.form.leavehospitaldistrictname,
        smsTemplate: `尊敬的${this.form.sendname},您好!`,
      });
@@ -2711,12 +2825,33 @@
      return tag ? tag.description : "";
    },
    // 获取再次随访任务信息(下次随访部分展示)
    fetchNextTaskInfo() {
      const taskid = this.form.taskid || this.taskid;
      if (!taskid) {
        this.nextTaskName = "";
        return;
      }
      getIvrtask(taskid).then((r) => {
        const task = r.data || {};
        const nextid = task.nexttaskid;
        if (nextid) {
          getIvrtask(nextid).then((r2) => {
            this.nextTaskName =
              (r2.data && r2.data.taskName) || task.nexttaskname || "";
          });
        } else {
          this.nextTaskName = task.nexttaskname || "";
        }
      });
    },
    // 调起再次发送
    sendAgain() {
      this.fetchNextTaskInfo();
      getTaskservelist({
        patid: this.patid,
        visitCount: 2,
        leaveldeptcodes: [this.form.deptcode],
        leaveldeptcodes: [this.form.leaveldeptcode],
      }).then((res) => {
        if (res.rows[0].serviceSubtaskList.length) {
          if (
@@ -2726,7 +2861,7 @@
            this.$modal
              .confirm(
                '本患者在"' +
                  res.rows[0].serviceSubtaskList[0].deptname +
                  res.rows[0].serviceSubtaskList[0].leaveldeptname +
                  '"科室下已有再次随访服务进行中是否继续创建?'
              )
              .then(() => {
@@ -2955,11 +3090,11 @@
            if (form.resource == 2) {
              form.visitDeptCode = localStorage.getItem("deptCode")
                ? localStorage.getItem("deptCode")
                : form.deptcode;
                : form.leaveldeptcode;
              form.visitDeptName = "随访中心";
            } else {
              form.visitDeptCode = form.deptcode;
              form.visitDeptName = form.deptname;
              form.visitDeptCode = form.leaveldeptcode;
              form.visitDeptName = form.leaveldeptname;
            }
          } else {
            this.$modal.msgError("未选择随访方式");
@@ -3653,14 +3788,14 @@
  margin-top: 20px;
}
.el-input.is-disabled .el-input__inner {
::v-deep .el-input.is-disabled .el-input__inner {
  background-color: #fff;
  border-color: #dcdfe6;
  color: #080808 !important;
  cursor: not-allowed;
}
.el-textarea.is-disabled .el-textarea__inner {
::v-deep .el-textarea.is-disabled .el-textarea__inner {
  background-color: #fff;
  border-color: #dcdfe6;
  color: #080808 !important;