WXL
2025-01-09 77fb64c1475ce550f20982ece9c05a0c6c843799
src/views/patient/propaganda/particty.vue
@@ -78,7 +78,8 @@
                      v-for="(item, index) in checkboxlist"
                      :key="index"
                      :label="item.value"
                       @change="checkboxChange($event, item.value)"
                      :disabled="!item.disabled"
                      @change="checkboxChange($event, item.value)"
                    >
                      {{ item.label }}</el-checkbox
                    >
@@ -94,7 +95,7 @@
                      :disable-transitions="false"
                      @close="handleClosetag(tag)"
                    >
                      ({{index+1}}){{ tag.label }}
                      ({{ index + 1 }}){{ tag.label }}
                    </el-tag>
                  </el-form-item>
                </div>
@@ -218,7 +219,7 @@
                          class="ruleFormaa"
                          v-for="item in belongDepts"
                          :key="item.deptCode"
                          :label="item.deptName"
                          :label="item.label"
                          :value="item.deptCode"
                        >
                        </el-option>
@@ -253,9 +254,9 @@
                        <el-option
                          class="ruleFormaa"
                          v-for="item in belongWards"
                          :key="item.districtCode"
                          :label="item.districtName"
                          :value="item.districtCode"
                          :key="item.deptCode"
                          :label="item.label"
                          :value="item.deptCode"
                        >
                        </el-option>
                      </el-select> </el-form-item
@@ -297,6 +298,10 @@
                      placeholder="请点击右侧选择"
                    />
                    <el-button
                      v-if="
                        (form.templateid && form.sendState == 1) ||
                        !form.templateid
                      "
                      style="margin-left: 10px"
                      type="primary"
                      icon="el-icon-edit"
@@ -308,7 +313,7 @@
                      v-if="form.templatename"
                      type="success"
                      icon="el-icon-search"
                      @click="previewfnmb"
                      @click="previewfnmb()"
                      circle
                    ></el-button>
                  </el-form-item>
@@ -568,7 +573,7 @@
              <el-row :gutter="20">
                <el-col :span="14">
                  <el-form-item label="可用状态" prop="isenable">
                    <el-radio-group v-model="objyl.usestate">
                    <el-radio-group v-model="objyl.isenable">
                      <el-radio
                        v-for="(item, index) in usable"
                        :label="item.value"
@@ -646,14 +651,14 @@
                        class="ruleFormaa"
                        v-for="item in belongDepts"
                        :key="item.deptCode"
                        :label="item.deptName"
                        :label="item.label"
                        :value="item.deptCode"
                      >
                      </el-option>
                    </el-select> </el-form-item
                ></el-col>
              </el-row>
              <el-row>
              <!-- <el-row>
                <el-col :span="20"
                  ><el-form-item label="适用病区" prop="region">
                    <el-select
@@ -662,19 +667,19 @@
                      size="medium"
                      multiple
                      filterable
                      placeholder="请选择科室"
                      placeholder="请选择病区"
                    >
                      <el-option
                        class="ruleFormaa"
                        v-for="item in belongWards"
                        :key="item.districtCode"
                        :label="item.districtName"
                        :value="item.districtCode"
                        :key="item.deptCode"
                        :label="item.label"
                        :value="item.deptCode"
                      >
                      </el-option>
                    </el-select> </el-form-item
                ></el-col>
              </el-row>
              </el-row> -->
              <div class="xinz-infs">
                <el-form-item>
@@ -794,8 +799,18 @@
      <span slot="footer" class="dialog-footer">
        <!-- <el-button @click="previewGo">保存模板详情修改</el-button> -->
        <el-button type="primary" @click="Departmenttreatment"
          >保存使用</el-button
        <el-button
          v-if="(form.templateid && form.sendState == 1) || !form.templateid"
          type="primary"
          @click="Departmenttreatment"
          >{{ form.templateid ? "替换使用" : "选择使用" }}</el-button
        >
        <el-button
          :type="previewtftype ? 'success' : 'warning'"
          @click="Modifytemplate"
          >{{
            previewtftype ? "前往修改已选择模板" : "新增保存并前往修改"
          }}</el-button
        >
      </span>
    </el-dialog>
@@ -892,11 +907,12 @@
  getFollowupclassify,
  depthospgetsonlist,
} from "@/api/AiCentre/index";
import { deptTreeSelect } from "@/api/system/user";
import SFtable from "@/components/SFtable"; //表格组件
export default {
  name: "ServiceDetails",
  name: "Particty",
  data() {
    return {
      title: "宣教内容列表",
@@ -904,6 +920,7 @@
      id: "", //
      previewid: "", //任务模板传递id
      libName: "",
      username: "",
      objyl: {},
      overallCase: [], //选择患者总
      allpids: [],
@@ -915,6 +932,7 @@
      Editprogress: 1, //编辑进度
      drawermb: false, //选择模板弹窗
      previewtf: false, //预览
      previewtftype: 0, //预览情况0新模板预览1已选择模板修改
      loading: false, // 遮罩层
      patientloading: false, // 遮罩层
      dialogVisiblepatient: false, //添加患者弹框
@@ -922,6 +940,7 @@
      checkboxlist: [],
      tableLabel: [],
      questionList: [],
      skip: false,
      usable: [
        { value: "0", label: "可用" },
        { value: "1", label: "停用" },
@@ -961,10 +980,10 @@
      ],
      tableLabelwj: [
        { label: "创建人", width: "", prop: "createBy" },
        { label: "模板标题", width: "", prop: "templateName" },
        { label: "随访描述", width: "", prop: "note" },
        { label: "修改日期", width: "", prop: "updateTime" },
        { label: "创建人", width: "", prop: "createBy" },
      ],
      // 变量
      tableLabelvariable: [
@@ -1011,6 +1030,8 @@
        pageNum: 1, //
        pageSize: 10,
        topica: 1, //0全部1科室2病区
        leaveldeptcodes: [],
        leavehospitaldistrictcodes: [],
      },
      topicoptions: [{ children: [{ children: [] }] }],
      showSearch: true, //
@@ -1083,8 +1104,8 @@
        templatename: "",
        templateid: null,
        libtemplateid: null,
        kcb: "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,观看这份宣教资讯。",
        jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次宣教内容就到这里,祝您身体健康!",
        kcb: "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,进行本次回访服务。",
        jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访内容就到这里,祝您身体健康!",
      },
      taskoptions: [
        {
@@ -1156,7 +1177,6 @@
      ],
      // 科室/病区
      belongWards: [],
      belongWards: [],
      deptlist: [],
      hosplist: [],
      tempDetpRelevanceslist: [], //科室数据
@@ -1176,12 +1196,19 @@
        sendType: [
          { required: true, message: "发送设置不能为空", trigger: "blur" },
        ],
        deptcode: [
          { required: true, message: "适用科室不能为空", trigger: "blur" },
        ],
        // leavehospitaldistrictcode: [
        //   { required: true, message: "适用病区不能为空", trigger: "blur" },
        // ],
      },
      // 科室院区查询入参
      queryParamsdept: {
        tempid: "",
        type: 11,
        type: 2,
      },
      belongDepts: [],
      quote: false,
      serviceType: null,
    };
@@ -1190,8 +1217,9 @@
  created() {
    this.appraiselist = store.getters.appraiselist;
    this.belongWards = store.getters.belongWards;
    this.belongDepts = store.getters.belongDepts;
    // this.belongWards = store.getters.belongWards;
    // this.belongDepts = store.getters.belongDepts;
    this.username = store.getters.name;
    this.mode = store.getters.Askmode;
    this.id = this.$route.query.id;
    this.newadd = this.$route.query.newadd;
@@ -1201,22 +1229,27 @@
    this.form.serviceType = Number(this.$route.query.serviceType);
    this.Acquisitiontype();
    this.Getdetails();
    this.getDeptTree();
    this.getFollowupclassify();
  },
  activated() {
    console.log(this.id, "CS", this.$route.query.id);
    if (this.id != this.$route.query.id) {
      this.id = this.$route.query.id;
      this.newadd = this.$route.query.newadd;
      this.form.type = this.$route.query.type;
      this.form.typename = this.$route.query.typename;
      this.serviceType = Number(this.$route.query.serviceType);
      this.form.serviceType = Number(this.$route.query.serviceType);
      this.Acquisitiontype();
      this.Getdetails();
      this.getDeptTree();
      this.getFollowupclassify();
    }
  },
  methods: {
    // {
    //   姓名: { "${name}": "龙傲天" },
    //   地址: { "${dzz}": "龙宫" },
    //   电话: { "${dhh}": "八个八" },
    // }
    // 变量转换对象转数组
    convertFormat1ToFormat2(data) {
      let result = [];
@@ -1240,6 +1273,33 @@
      });
      return result;
    },
    getDeptTree() {
      // 科室列表
      deptTreeSelect().then((response) => {
        let flatArray = this.flattenArray(response.data);
        this.belongWards = flatArray;
        this.belongDepts = flatArray;
      });
    },
    flattenArray(multiArray) {
      let result = [];
      // 递归函数,用于将多级数组转换为一维数组,只包含最底层的元素
      function flatten(element) {
        // 如果当前元素有子元素,继续递归
        if (element.children && element.children.length > 0) {
          element.children.forEach((child) => flatten(child));
        } else {
          // 克隆元素以避免修改原始数据
          let item = JSON.parse(JSON.stringify(element));
          result.push(item); // 将最底层的元素添加到结果数组
        }
      }
      // 从顶层元素开始递归
      multiArray.forEach((element) => flatten(element));
      return result; // 返回只包含最底层元素的一维数组
    },
    // 获取当前类型
    Acquisitiontype() {
      let queryParams = {
@@ -1261,6 +1321,11 @@
            label: "纸质",
          },
          {
            value: "4",
            label: "短信",
          },
          {
            value: "5",
            label: "微信公众号",
          },
@@ -1274,6 +1339,7 @@
          {
            value: "4",
            label: "短信",
          },
          {
            value: "5",
@@ -1306,6 +1372,7 @@
          {
            value: "4",
            label: "短信",
          },
          {
            value: "5",
@@ -1329,6 +1396,7 @@
          {
            value: "4",
            label: "短信",
          },
          {
            value: "5",
@@ -1372,6 +1440,16 @@
          xh: 1,
        },
      ];
      if (
        (this.belongWards[0] || this.belongWards[0]) &&
        this.username == "andmin"
      ) {
        if (this.tempbelongWards[0] || this.tempbelongWards[0]) {
        } else {
          this.$modal.msgError("请选择科室或病区");
          return;
        }
      }
      if (this.checkList[0]) {
        this.form.preachform = this.checkList.join(",");
      } else {
@@ -1436,6 +1514,11 @@
          this.objyl = res.data;
          this.objyl.isoperation = 2;
          this.objyl.taskid = data.taskId;
          if (!this.objyl.sendDa) {
            this.objyl.sendDay = "5";
          }
          console.log(this.objyl.sendDay, "this.objyl.sendDay");
          Taskparticty(this.objyl).then((response) => {
            this.previewtf = false;
            this.form.libtemplateid = this.objyl.id;
@@ -1460,9 +1543,9 @@
          if (res.code == 200) {
            this.objyl = res.data;
            if (this.form.longTask) {
              this.objyl.longTemp = 1;
              this.objyl.sendDay = 5;
            }
            this.queryParamsdept.type = 1;
            this.queryParamsdept.type = 2;
            this.queryParamsdept.tempid = row.id;
            this.listDept();
@@ -1486,16 +1569,19 @@
          if (this.objyl.suitway)
            this.objyl.suitway = this.objyl.suitway.split(",");
          this.queryParamsdept.tempid = this.form.templateid;
          this.queryParamsdept.type = 11;
          this.queryParamsdept.type = 21;
          // 疾病
          this.getillness(this.form.libtemplateid);
          // 执行获取该任务模板id
          this.listDept();
          this.previewtf = true;
          getvFollowup({ id: this.form.libtemplateid }).then((res) => {
            if (res.code == 200) {
              this.previewtf = true;
              this.previewtftype = 1;
              this.questionList = res.data.ivrLibaTemplateScriptVOList;
              this.objyl.ivrLibaTemplateScriptVOList =
                res.data.ivrLibaTemplateScriptVOList;
            } else {
            }
          });
        }
@@ -1551,7 +1637,7 @@
          { label: "出院日期", width: "150", prop: "endtime" },
          { label: "患者", width: "", prop: "name" },
          { label: "身份证", width: "200", prop: "idcardno" },
        { label: "电话号码", width: "180", prop: "telcode" },
          { label: "电话号码", width: "180", prop: "telcode" },
          { label: "性别", width: "", prop: "sex" },
          { label: "年龄", width: "", prop: "age" },
          { label: "出院天数", width: "", prop: "endDay" },
@@ -1565,7 +1651,7 @@
          { label: "入院日期", width: "150", prop: "starttime" },
          { label: "患者", width: "", prop: "name" },
          { label: "身份证", width: "200", prop: "idcardno" },
        { label: "电话号码", width: "180", prop: "telcode" },
          { label: "电话号码", width: "180", prop: "telcode" },
          { label: "性别", width: "", prop: "sex" },
          { label: "年龄", width: "", prop: "age" },
          { label: "出院天数", width: "", prop: "endDay" },
@@ -1585,6 +1671,7 @@
        this.patientqueryParams.cry = 1;
      } else if (this.patientqueryParams.allhosp == 4) {
        this.patientqueryParams.cry = 0;
        this.patientqueryParams.allhosp = "1";
      }
      // 来源判断
@@ -1671,10 +1758,16 @@
      this.$modal
        .confirm('是否确认删除患者"' + row.name + '"的服务项?')
        .then(() => {
          console.log();
          let indexa = this.overallCase.indexOf(row);
          let indexb = this.form.patTaskRelevances.indexOf(row);
          this.overallCase.splice(indexa, 1);
          this.form.patTaskRelevances[indexb].isoperation = 3;
          if (!this.form.taskid) {
            this.form.patTaskRelevances.splice(indexa, 1);
          } else {
            this.form.patTaskRelevances[indexb].isoperation = 3;
          }
          this.$modal.msgSuccess("删除成功");
        });
    },
@@ -1692,6 +1785,10 @@
          store.getters.leavehospitaldistrictcodes;
        this.patientqueryParams.leaveldeptcodes = null;
      }
      if (!this.patientqueryParams.leavehospitaldistrictcodes||!this.patientqueryParams.leavehospitaldistrictcodes[0])
        this.patientqueryParams.leavehospitaldistrictcodes = null;
      if (!this.patientqueryParams.leaveldeptcodes||!this.patientqueryParams.leaveldeptcodes[0])
        this.patientqueryParams.leaveldeptcodes = null;
      this.handleAddpatient();
    },
    resetQuery() {},
@@ -1725,7 +1822,7 @@
        templatename: "",
        templateid: null,
        libtemplateid: null,
        kcb: "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访随访。",
        kcb: "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访。",
        jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!",
      };
@@ -1776,6 +1873,7 @@
    neWaddfn() {
      this.id = null;
      this.form.taskName = "";
      this.form.sendState = null;
      this.form.taskid = null;
      this.overallCase = [];
      this.form.patTaskRelevances = [];
@@ -1905,6 +2003,12 @@
      this.objyl.ivrTaskTemplateScriptVOList =
        this.objyl.ivrLibaTemplateScriptVOList;
      this.objyl.isoperation = 1;
      if (this.form.id) {
        this.objyl.taskid = this.form.id;
      }
      if (!this.objyl.sendDay) {
        this.objyl.sendDay = "5";
      }
      if (this.form.templateid) {
        deleteTaskparticty(this.form.templateid).then((res) => {
          if (res.code == 200) {
@@ -1914,7 +2018,16 @@
              this.form.templateid = response.data;
              this.putbelongDepts(response.data);
              this.form.templatename = this.objyl.templateName;
              this.$modal.msgSuccess("选择模板成功");
              this.$modal.msgSuccess("替换模板成功");
              this.drawermb = false; //选择模板弹窗
              this.previewtf = false; //预览
              if (this.skip) {
                // 跳转前往修改
                this.$router.push({
                  path: "/knowledge/taskub/",
                  query: { id: response.data },
                });
              }
            });
          }
        });
@@ -1926,6 +2039,15 @@
          this.putbelongDepts(response.data);
          this.form.templatename = this.objyl.templateName;
          this.$modal.msgSuccess("选择模板成功");
          this.drawermb = false; //选择模板弹窗
          this.previewtf = false; //预览
          if (this.skip) {
            // 跳转前往修改
            this.$router.push({
              path: "/knowledge/taskub/",
              query: { id: response.data },
            });
          }
        });
      }
    },
@@ -1950,9 +2072,7 @@
        }
      });
    },
    checkboxChange(checked, value){
    },
    checkboxChange(checked, value) {},
    // 服务形式选取
    handleCheckedCitiesChange(row) {
      console.log(row, "服务");
@@ -1965,9 +2085,10 @@
      console.log(tag, "tag");
      console.log(this.foncheckList, "foncheckList");
      this.checkList = this.checkList.filter((item) => item != tag.value);
      this.foncheckList = this.foncheckList.filter(obj => obj.value !== tag.value);
      this.foncheckList = this.foncheckList.filter(
        (obj) => obj.value !== tag.value
      );
      console.log(this.checkList, "checkList");
    },
    // 科室处理
    Departmenttreatment() {
@@ -1977,7 +2098,7 @@
          longTemp: this.form.longTask,
          deptCode: item,
          tempid: null,
          type: 11,
          type: 21,
        });
      });
@@ -1987,7 +2108,7 @@
          longTemp: this.form.longTask,
          deptCode: item,
          tempid: null,
          type: 11,
          type: 21,
        });
      });
      console.log(33);
@@ -1996,6 +2117,27 @@
        this.previewFn();
      }, 1000);
    },
    // 前往修改
    Modifytemplate() {
      if (this.form.templateid && this.previewtftype) {
        this.$modal.confirm("是否前往修改任务模板详细内容?").then(() => {
          this.drawermb = false; //选择模板弹窗
          this.previewtf = false; //预览
          this.$router.push({
            path: "/knowledge/taskub/",
            query: { id: this.form.templateid },
          });
        });
      } else {
        this.$modal
          .confirm("当前为基础预览是否创建任务模板并前往修改详情?")
          .then(() => {
            // 走取先绑定后修改操作
            this.Departmenttreatment();
            this.skip = true;
          });
      }
    },
  },
};
</script>