WXL
2025-05-21 6d7cd13eecd3a6f176d310986b4750b0c407e3a1
src/views/followvisit/record/detailpage/index.vue
@@ -15,7 +15,7 @@
                >查看患者全部服务</el-button
              >
              <el-button v-else type="success" @click="getTaskservelist(id)"
                >查看患者本次服务信息</el-button
                >只展示本次服务信息</el-button
              >
            </div>
            <div style="margin-left: 20px; color: #59a0f0">
@@ -32,7 +32,11 @@
        </div>
      </div>
      <div>
        <el-table :data="logsheetlist" style="width: 100%">
        <el-table
          :data="logsheetlist"
          :row-class-name="tableRowClassName"
          style="width: 100%"
        >
          <el-table-column
            prop="sendname"
            align="center"
@@ -200,7 +204,6 @@
                size="medium"
                type="text"
                @click="Seedetails(scope.row)"
                v-hasPermi="['system:user:edit']"
                ><span class="button-zx"
                  ><i class="el-icon-s-order"></i>查看</span
                ></el-button
@@ -373,7 +376,7 @@
                      : 'scriptTopic-dev'
                  "
                  :key="index"
                  v-if="item.scriptType == 1"
                  v-if="item.scriptType == 1 && !item.astrict"
                >
                  <div class="dev-text">
                    {{ index + 1 }}、[单选]<span>{{ item.scriptContent }}</span>
@@ -381,14 +384,20 @@
                  <div class="dev-xx">
                    <el-radio-group
                      v-model="item.scriptResult"
                      @change="handleOptionChange($event, index, item)"
                      @change="
                        handleOptionChange(
                          $event,
                          index,
                          item.svyLibTemplateTargetoptions
                        )
                      "
                    >
                      <el-radio
                        v-for="(
                          items, index
                          items, indexs
                        ) in item.svyLibTemplateTargetoptions"
                        :class="items.isabnormal ? 'red-star' : ''"
                        :key="index"
                        :key="indexs"
                        :label="items.optioncontent"
                        >{{ items.optioncontent }}</el-radio
                      >
@@ -406,7 +415,7 @@
                      : 'scriptTopic-dev'
                  "
                  :key="index"
                  v-if="item.scriptType == 2"
                  v-if="item.scriptType == 2 && !item.astrict"
                >
                  <div class="dev-text">
                    {{ index + 1 }}、[多选]<span>{{ item.scriptContent }}</span>
@@ -437,7 +446,7 @@
                <div
                  class="scriptTopic-dev"
                  :key="index"
                  v-if="item.scriptType == 4"
                  v-if="item.scriptType == 4 && !item.astrict"
                >
                  <div class="dev-text">
                    {{ index + 1 }}、[问答]<span>{{ item.scriptContent }}</span>
@@ -627,8 +636,8 @@
          <el-date-picker
            type="date"
            placeholder="选择日期"
             :picker-options="pickerOptions"
             align="right"
            :picker-options="pickerOptions"
            align="right"
            v-model="form.date1"
            style="width: 100%"
          ></el-date-picker>
@@ -677,6 +686,7 @@
      activeName: "wj",
      voice: "",
      templateid: "",
      again: "",
      zcform: {},
      form: {},
      tableDatatop: [], //题目表
@@ -725,31 +735,35 @@
        },
      },
      pickerOptions: {
          shortcuts: [{
            text: '七天后',
        shortcuts: [
          {
            text: "七天后",
            onClick(picker) {
              const date = new Date();
              date.setTime(date.getTime() + 3600 * 1000 * 24 * 7);
              picker.$emit('pick', date);
            }
          }, {
            text: '15天后',
              picker.$emit("pick", date);
            },
          },
          {
            text: "15天后",
            onClick(picker) {
              const date = new Date();
              date.setTime(date.getTime() + 3600 * 1000 * 24* 15);
              picker.$emit('pick', date);
            }
          }, {
            text: '30天后',
              date.setTime(date.getTime() + 3600 * 1000 * 24 * 15);
              picker.$emit("pick", date);
            },
          },
          {
            text: "30天后",
            onClick(picker) {
              const date = new Date();
              date.setTime(date.getTime() + 3600 * 1000 * 24 * 30);
              picker.$emit('pick', date);
            }
          }]
        },
              picker.$emit("pick", date);
            },
          },
        ],
      },
      userform: {},
      Whetherall: false, //是否全部记录展示
      Whetherall: true, //是否全部记录展示
      dialogFormVisible: false,
      Voicetype: 0, //是否为语音服务
      logsheetlist: [],
@@ -767,11 +781,11 @@
    this.id = this.$route.query.id;
    this.sendname = this.$route.query.sendname;
    this.patid = this.$route.query.patid;
    this.again = this.$route.query.again;
    this.Voicetype = this.$route.query.Voicetype;
    this.serviceType = this.$route.query.serviceType;
    console.log(this.id, this.patid);
    this.getTaskservelist(this.id);
    this.getTaskservelist();
  },
  methods: {
@@ -784,13 +798,25 @@
        isFinish: false,
      }).then((res) => {
        if (res.code === 200) {
          // 针对再次随访服务进行删除结果赋值
          if (this.again && res.data.upScriptResult) {
            res.data.upScriptResult.forEach((itemA) => {
              const itemB = res.data.scriptResult.find(
                (item) => item.scriptContent === itemA.scriptContent
              );
              if (itemB) {
                itemB.scriptResult = itemA.scriptResult;
              }
            });
          }
          this.tableDatatop = res.data.scriptResult;
          this.tableDatatop.forEach((item) => {
            if (item.scriptType == 2) item.scriptResult = [];
            if (item.scriptResult && item.scriptType != 2) {
            if (item.scriptResultId && item.scriptType != 2) {
              item.isoption = 3;
              item.scriptResult = item.scriptResult;
            } else if (item.scriptResult && item.scriptType == 2) {
            } else if (item.scriptResultId && item.scriptType == 2) {
              item.scriptResult = item.scriptResult.split("&");
              item.isoption = 3;
            }
@@ -845,10 +871,8 @@
        patid: this.patid,
        subId: id ? id : this.id,
      };
      console.log(this.voiceDatatop, "111");
      getPersonVoices(obj).then((res) => {
        console.log("222");
        if (res.code == 200) {
          this.voiceDatatop = res.data.serviceSubtaskDetails;
          this.voice = res.data.voice;
@@ -863,7 +887,6 @@
              item.scriptResult = [];
            }
          });
          console.log(this.tableDatatop, "this.tableDatatop");
          if (!this.tableDatatop.length) {
            this.puttaskid(this.templateid);
@@ -892,7 +915,6 @@
              item.scriptResult = [];
            }
          });
          console.log(this.tableDatatop, "this.tableDatatop");
        }
      });
    },
@@ -945,7 +967,16 @@
            .confirm(
              '任务保存成功是否针对患者:"' +
                this.logsheetlist[0].sendname +
                '"再次随访?'
                '"再次随访?',
              "确认",
              {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                showCancelButton: true,
                dangerouslyUseHTMLString: true,
                confirmButtonClass: "custom-confirm-button", // 自定义确认按钮的类名
                cancelButtonClass: "custom-cancel-button", // 自定义取消按钮的类名
              }
            )
            .then(() => {
              document.querySelector("#app").scrollTo(0, 0);
@@ -960,7 +991,6 @@
    },
    yuyingetdetail() {
      this.tableDatatop.forEach((item, index) => {
        console.log(item.scriptResult, "scriptResult");
        item.scriptResult = item.scriptResult.join("&");
        item.templatequestionnum = index + 1;
        item.subId = this.id;
@@ -984,7 +1014,18 @@
          this.$modal.msgSuccess("服务保存成功");
          this.$modal
            .confirm(
              '任务保存成功是否针对患者:"' + this.userform.name + '"再次随访?'
              '任务保存成功是否针对患者:"' +
                this.userform.name +
                '"再次随访?',
              "确认",
              {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                showCancelButton: true,
                dangerouslyUseHTMLString: true,
                confirmButtonClass: "custom-confirm-button", // 自定义确认按钮的类名
                cancelButtonClass: "custom-cancel-button", // 自定义取消按钮的类名
              }
            )
            .then(() => {
              document.querySelector("#app").scrollTo(0, 0);
@@ -997,8 +1038,6 @@
    // 获取患者记录
    getTaskservelist(id) {
      console.log(id, "idsub");
      if (id) {
        this.Whetherall = false;
      } else {
@@ -1010,7 +1049,9 @@
        subId: id,
      }).then((res) => {
        if (res.code == 200) {
          this.form = res.rows[0].serviceSubtaskList[0];
          this.form = res.rows[0].serviceSubtaskList.find(
            (item) => item.id == this.id
          );
          this.logsheetlist = res.rows[0].serviceSubtaskList;
          this.templateid = this.logsheetlist[0].templateid;
          const targetDate = new Date(this.form.longSendTime); // 目标日期
@@ -1027,8 +1068,6 @@
          }
          this.getuserinfo();
        }
        console.log(this.Voicetype, "this.Voicetype");
        if (this.Voicetype) {
          this.getPersonVoices();
        } else {
@@ -1048,22 +1087,22 @@
          Editsingletaskson(objson).then((res) => {
            if (res.code) {
              this.$modal.msgSuccess("服务记录成功");
              this.getTaskservelist(this.id);
              this.getTaskservelist();
            }
          });
        }
      });
    },
    Editsingletasksonyic(sendstate) {
      console.log(sendstate, "sendstate");
      let objson = {};
      getTaskservelist({
        patid: this.patid,
        subId: this.id,
      }).then((res) => {
        if (res.code == 200) {
          objson = res.rows[0].serviceSubtaskList[0];
          objson = res.rows[0].serviceSubtaskList.find(
            (item) => item.id == this.id
          );
          objson.remark = this.form.remark;
          if (sendstate) objson.sendstate = sendstate;
          Editsingletaskson(objson).then((res) => {
@@ -1076,11 +1115,18 @@
                  this.$modal.msgError("基础信息修改失败");
                }
              });
              this.getTaskservelist(this.id);
              this.getTaskservelist();
            }
          });
        }
      });
    },
    // 异常列渲染
    tableRowClassName({ row, rowIndex }) {
      if (row.id == this.id) {
        return "warning-row";
      }
      return "";
    },
    // 调起再次发送
    sendAgain() {
@@ -1098,19 +1144,27 @@
              this.Voicetype = 1;
            }
          }
          console.log(this.Voicetype, "this.Voicetype");
          this.taskid = row.taskid;
          this.id = row.id;
          this.patid = row.patid;
          this.serviceType = row.serviceType;
          this.getTaskservelist(this.id);
          this.getTaskservelist();
        })
        .catch(() => {});
    },
    handleOptionChange(a, b, c) {
      console.log(this.tableDatatop[b], "this.tableDatatop[b]");
      const result = c.find((item) => item.optioncontent == a);
      if (result.nextQuestion == 0) {
        this.tableDatatop = this.tableDatatop.reduce((acc, item, i) => {
          acc.push(i > b ? { ...item, astrict: 1 } : item);
          return acc;
        }, []);
      } else {
        this.tableDatatop = this.tableDatatop.reduce((acc, item, i) => {
          acc.push(i > b ? { ...item, astrict: 0 } : item);
          return acc;
        }, []);
      }
      if (this.Voicetype) {
        var obj = this.tableDatatop[b].ivrTaskScriptTargetoptionList.find(
          (item) => item.optioncontent == a
@@ -1192,16 +1246,12 @@
      return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
    },
    updateScore(a, b, c) {
      console.log(a);
      console.log(b);
      console.log(c);
    },
    updateScore(a, b, c) {},
  },
};
</script>
<style lang="scss" scoped>
<style lang="scss">
.Followupdetailspage {
  margin: 10px;
}
@@ -1224,6 +1274,9 @@
      margin-right: 20px;
    }
  }
}
::v-deep.el-table .warning-row {
  background: #c4e2ee;
}
.Followuserinfos {
  margin: 20px 10px;
@@ -1369,6 +1422,11 @@
::v-deep.el-link.el-link--default {
  color: #02a7f0 !important;
}
.el-message-box__btns button:nth-child(2) {
  margin-left: 10px;
  background-color: #f57676;
  border-color: #f57676;
}
.mulsz {
  font-size: 25px;
  margin-top: 20px;