WXL
2024-06-12 b33fce1b1bbad04a2a6b4812e0fb438b8a52b8e5
src/views/patient/propaganda/particty.vue
@@ -69,7 +69,8 @@
                <el-form-item label="发送设置:" v-if="currenttype != 2">
                  <el-radio-group v-model="form.sendType">
                    <el-radio :label="1">时间段发送</el-radio>
                    <el-radio :label="3">即刻发送</el-radio>
                    <el-radio :label="3">时间点发送</el-radio>
                    <el-radio :label="2">即刻发送</el-radio>
                  </el-radio-group>
                </el-form-item>
                <el-form-item label="发送日期:" v-if="form.sendType == 1">
@@ -84,6 +85,22 @@
                  >
                  </el-date-picker>
                </el-form-item>
                <el-form-item label="发送时间点:" v-if="form.sendType == 3">
                  <div style="display: flex">
                    <div style="margin-right: 10px">
                      <el-date-picker
                        v-model="time4"
                        value-format="yyyy-MM-dd HH:mm:ss"
                        @change="Totaldate"
                        type="datetime"
                        placeholder="选择日期时间"
                      >
                      </el-date-picker>
                    </div>
                  </div>
                </el-form-item>
                <el-form-item label="发送时间段:" v-if="form.sendType == 1">
                  <div style="display: flex">
                    <div style="margin-right: 10px">
@@ -342,7 +359,7 @@
          </div>
        </div>
        <el-button type="success" @click="nextstep('ruleForm')">{{
          quote ? "立即创建" : "任务详情设置"
          quote ? "立即创建" : "任务详情配置"
        }}</el-button>
        <el-button @click="resetForm('ruleForm')">重置</el-button>
      </div>
@@ -531,10 +548,10 @@
                  <SFtable
                    @details="detailhz"
                    @handleUpdate="handleUpdate"
                    @handleSelectionChange="handleSelectionChange"
                    :currentList="form.patTaskRelevances"
                    :currentList="overallCase"
                    :tableLabel="tableLabelhz"
                    :serialnumber="false"
                    :multiplechoice="false"
                    :controlxz="false"
                    :typeinfo="2"
                  />
@@ -551,9 +568,9 @@
          </div>
        </div>
        <el-button type="primary" @click="laststep()">上一步</el-button>
        <el-button type="success" @click="submitForm('ruleForm')"
          >立即创建</el-button
        >
        <el-button type="success" @click="submitForm('ruleForm')">{{
          quote ? "立即创建" : "确认任务配置"
        }}</el-button>
        <el-button @click="resetForm('ruleForm')">重置</el-button>
      </div>
    </div>
@@ -563,6 +580,7 @@
      :visible.sync="dialogVisiblepatient"
      width="70%"
      :before-close="handleClosehz"
      :close-on-click-modal="false"
    >
      <div class="examine-jic">
        <div class="jic-value">
@@ -619,6 +637,7 @@
            </el-form>
            <!-- 选择患者列表 -->
            <SFtable
              ref="multipleTable"
              @handleUpdate="handleUpdate"
              @handleSelectionChange="handleSelectionChange"
              :currentList="patientuserList"
@@ -712,6 +731,8 @@
      id: "", //
      previewid: "", //任务模版传递id
      libName: "",
      overallCase: [], //选择患者总
      allpids: [],
      libId: null, //模板库模版id
      Editprogress: 1, //编辑进度
      previewtf: false, //预览
@@ -722,7 +743,6 @@
      checkboxlist: [],
      tableLabel: [],
      questionList: [],
      // 患者表单
      tableLabelhz: [
        { label: "序号", width: "", prop: "patid" },
@@ -777,12 +797,24 @@
        { label: "匹配符", width: "", prop: "character" },
        { label: "替换值", width: "", prop: "Replacementvalue" },
      ],
      preachform: [
        { label: "多媒体", value: 1 },
        { label: "纸质", value: 2 },
        { label: "电话", value: 3 },
        { label: "短信", value: 4 },
        { label: "微信公众号", value: 5 },
        { label: "微信小程序", value: 6 },
        { label: "支付宝", value: 7 },
        { label: "智能小程序", value: 8 },
        { label: "钉钉", value: 9 },
      ],
      // 时间处理
      daytime: [], //日期
      applydaytime: [], //计算日期
      time1: "", //上午时间段
      time2: "", //下午时间段
      time3: "", //晚上时间段
      time4: "", //晚上时间段
      topqueryParams: {
        pageNum: 1, //
        pageSize: 10,
@@ -856,7 +888,6 @@
      tasktopic: null, //新增类型
      SelectPatientslist: [],
      form: {
        serviceform: [],
        patTaskRelevances: [],
        sendType: 1,
        templatename: "",
@@ -932,10 +963,7 @@
        // 医技宣教,普通宣教
        this.title = "宣教内容列表";
        this.tableLabel = this.tableLabelxj;
        this.checkboxlist = [
          "线下(口头宣教、电视宣教、纸质)",
          "线上(短信/钉钉的文本、图文链接)",
        ];
        this.checkboxlist = ["多媒体", "纸质"];
        getlibrarylist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
@@ -948,7 +976,7 @@
        // 出院、门诊、专病随访
        this.title = "随访内容列表";
        this.tableLabel = this.tableLabelmz;
        this.checkboxlist = ["线下", "AI语音外呼", "人工电话"];
        this.checkboxlist = ["纸质", "多媒体", "电话", "微信公众号"];
        getFollowuplist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
@@ -982,7 +1010,8 @@
    },
    // 保存
    submitForm(formName) {
      this.form.serviceform = this.checkList.join(",");
      // this.form.preachform = this.checkList.join(",");
      this.formatFn(1);
      this.form.hospType = this.currenttype;
      const filteredArray = this.variableList.filter(
        (item) =>
@@ -990,14 +1019,14 @@
      );
      console.log(filteredArray, "存前变量");
      this.form.textParam = this.convertFormat2ToFormat1(filteredArray);
      if (this.form.id) {
      if (this.form.taskid) {
        this.form.isoperation = 2;
      } else {
        this.form.isoperation = 1;
      }
      Editsingletask(this.form).then((res) => {
        if (res.code == 200) {
          if (this.form.id) {
          if (this.form.taskid) {
            this.$modal.msgSuccess("新增成功");
          } else {
            this.$modal.msgSuccess("修改成功");
@@ -1070,29 +1099,88 @@
    },
    // 子任务二级弹框
    handleAddpatient(row) {
      console.log(this.overallCase, "ssaaa");
      this.allpids = [];
      this.overallCase.forEach((item) => {
        this.allpids.push(item.patid);
      });
      if (this.allpids[0]) {
        this.patientqueryParams.pids = this.allpids;
        console.log(this.patientqueryParams.pids);
      } else {
        this.patientqueryParams.pids = null;
      }
      getTaskpatient(this.patientqueryParams).then((response) => {
        console.log(response);
        this.patientuserList = response.rows;
        this.patienttotal = response.total;
        this.loading = false;
        this.Restorecheck();
      });
      this.dialogVisiblepatient = true;
    },
    handleUpdate() {},
    handleDelete() {},
    handleExport() {},
    // 多选框选中数据
    // 选中患者表
    handlePitchionChange() {},
    // 选择患者表数据
    handleSelectionChange(selection) {
      console.log("多选患者");
      this.SelectPatientslist = selection;
      this.ids = null;
      this.ids = selection.map((item) => item.patid).join(",");
      // let result = this.ids.join(",");
      this.multiple = !selection.length;
      console.log(this.ids);
      // 赋值给整体选中数组
      this.SelectPatientslist.forEach((item) => {
        const isExist = this.overallCase.find((obj) => obj.name == item.name);
        if (!isExist) {
          item.isoperation = 1;
          this.overallCase.push(item);
          this.form.patTaskRelevances.push(item);
        }
      });
    },
    // 切换页后恢复选中
    Restorecheck() {
      console.log(this.overallCase, "this.overallCase");
      const allid = this.overallCase.map((item) => item.patid);
      const overlap = this.patientuserList.filter((value) => {
        return allid.includes(value.patid);
      });
      // 保持ids和当前页面的同步性
      this.SelectPatientslist = overlap;
      console.log(this.SelectPatientslist, "进入分页SelectPatientslist");
      this.toggleSelection(overlap);
    },
    // 挂载选择状态
    toggleSelection(rows) {
      if (rows) {
        this.decision = true;
        this.$nextTick(() => {
          rows.forEach((row) => {
            this.$refs.multipleTable.toggleRowSelection(row, true);
          });
          this.decision = false;
        });
        console.log(123);
      } else {
        this.$refs.multipleTable.clearSelection();
      }
    },
    // 删除选中患者
    detailhz(row, info) {},
    detailhz(row, info) {
      this.$modal
        .confirm('是否确认删除患者"' + row.name + '"的服务项?')
        .then(() => {
          let indexa = this.overallCase.indexOf(row);
          let indexb = this.form.patTaskRelevances.indexOf(row);
          this.overallCase.splice(indexa, 1);
          this.form.patTaskRelevances[indexb].isoperation = 3;
          this.$modal.msgSuccess("删除成功");
        });
    },
    getList() {},
    handleQuery() {
      this.handleAddpatient();
@@ -1119,18 +1207,26 @@
      if (this.id) {
        getTaskInfo({ taskid: this.id }).then((res) => {
          let filteredArray = "";
          console.log(2233);
          if (res.code == 200) {
            this.form = res.data;
            this.checkList = this.form.serviceform.split(",");
            this.daytime = this.form.sendlimitabegin.split(",");
            if (this.form.sendlimitaend)
              this.time1 = this.form.sendlimitaend.split(",");
            if (this.form.sendlimitnbegin)
              this.time2 = this.form.sendlimitaend.split(",");
            if (this.form.sendlimitnend)
              this.time3 = this.form.sendlimitaend.split(",");
            this.overallCase = this.form.patTaskRelevances.concat();
            this.formatFn(2);
            console.log(this.form.showDate, "this.form");
            this.daytime = this.form.showDate.split(",");
            if (this.form.showTimeMorn) {
              if (this.form.sendType == 3) {
                this.time4 = this.form.showTimeMorn;
              } else {
                this.time1 = this.form.showTimeMorn.split(",");
              }
            }
            if (this.form.showTimeNoon)
              this.time2 = this.form.showTimeNoon.split(",");
            if (this.form.showTimeNight)
              this.time3 = this.form.showTimeNight.split(",");
            console.log(1122);
            filteredArray = this.convertFormat1ToFormat2(this.form.textParam);
            console.log(filteredArray, "filteredArray");
            this.variableList = this.transitionList.concat(filteredArray);
          } else {
            this.$modal.msgError(res.code);
@@ -1147,28 +1243,14 @@
    },
    // 新增派送患者
    AddDispatchpatients() {
      this.SelectPatientslist.forEach((item) => {
        item.isoperation = 1;
      });
      this.form.patTaskRelevances.push(...this.SelectPatientslist);
      // this.SelectPatientslist.forEach((item) => {
      //   item.isoperation = 1;
      // });
      // this.form.patTaskRelevances.push(...this.SelectPatientslist);
      // this.overallCase.push(...this.SelectPatientslist);
      this.dialogVisiblepatient = false;
      this.assignedVariable();
    },
    // 变量处理赋值服务
    assignedVariable() {
      // 获取患者列表信息循环
      console.log(this.variableList, "this.variableList");
      this.form.patTaskRelevances.forEach((item) => {
        this.variableList.forEach((item1) => {});
      });
      // 取数据填充变量数组
      // 数组转对象存入
    },
    // 变量---------------
    // variableEdit(index, row) {
    //   console.log(index, row);
    // },
    variableDelete(index, row) {
      this.variableList.splice(index, 1);
      row.isoperation = 3;
@@ -1179,6 +1261,12 @@
    changeTime(row) {
      console.log(row, "时间");
      this.processingTime();
    },
    Totaldate(row) {
      console.log(row, "时间");
      this.form.sendTimeslot = [{ begantime: row, endtime: row, xh: 1 }];
      this.form.showTimeMorn = row;
      console.log(this.form.sendTimeslot, "时间");
    },
    changeTimeday(row) {
      const startDate = new Date(row[0]);
@@ -1235,10 +1323,10 @@
      this.form.sendTimeslot = combinedData;
      // 展示数据临时存储日期、早、中、晚
      this.form.sendlimitabegin = this.daytime.join(",");
      if (this.time1) this.form.sendlimitaend = this.time1.join(",");
      if (this.time2) this.form.sendlimitnbegin = this.time2.join(",");
      if (this.time3) this.form.sendlimitnend = this.time3.join(",");
      this.form.showDate = this.daytime.join(",");
      if (this.time1) this.form.showTimeMorn = this.time1.join(",");
      if (this.time2) this.form.showTimeNoon = this.time2.join(",");
      if (this.time3) this.form.showTimeNight = this.time3.join(",");
      console.log(combinedData, "combinedData");
    },
    // 查看模版
@@ -1269,6 +1357,35 @@
        this.$modal.msgSuccess("选择模版成功");
      });
    },
    // 处理服务形式
    formatFn(type) {
      console.log(this.preachform, "preachform");
      console.log(this.checkList, "checklist");
      let list = [];
      let formlist = [];
      if (type == 1) {
        this.preachform.forEach((item) => {
          this.checkList.forEach((obj) => {
            if (item.label == obj) {
              list.push(item.value);
            }
          });
        });
        this.form.preachform = list.join(",");
      } else {
        console.log(this.form.preachform, "this.form.preachform");
        formlist = this.form.preachform.split(",");
        console.log(11);
        this.preachform.forEach((item) => {
          formlist.forEach((obj) => {
            if (item.value == obj) {
              list.push(item.label);
            }
          });
        });
        this.checkList = list;
      }
    },
  },
};
</script>