WXL (wul)
18 小时以前 c3576dff24adbb52cf807c100afb63399e16f813
src/views/patient/propaganda/QuestionnaireTask.vue
@@ -84,6 +84,7 @@
                  <el-radio-group v-model="form.longTask">
                    <el-radio :label="0">自定义周期</el-radio>
                    <el-radio :label="1">长期任务</el-radio>
                    <el-radio :label="2">固定任务</el-radio>
                  </el-radio-group>
                </el-form-item>
                <el-row :gutter="20" v-if="form.longTask">
@@ -198,7 +199,7 @@
                </el-form-item>
                <el-form-item label="任务关联" prop="longTask">
                  <el-radio-group v-model="form.appltype">
                    <el-radio label="1">科室关联</el-radio>
                    <el-radio label="1">课题组关联</el-radio>
                    <el-radio label="2">病区关联</el-radio>
                    <el-radio label="3">疾病关联</el-radio>
                    <el-radio label="4">手术关联</el-radio>
@@ -206,7 +207,7 @@
                </el-form-item>
                <el-row v-if="form.appltype == 1">
                  <el-col :span="20"
                    ><el-form-item label="适用科室" prop="region">
                    ><el-form-item label="适用课题组" prop="region">
                      <el-select
                        v-model="deptcodesWards"
                        @remove-tag="removetag"
@@ -214,7 +215,7 @@
                        size="medium"
                        multiple
                        filterable
                        placeholder="请选择科室"
                        placeholder="请选择课题组"
                      >
                        <el-option
                          class="ruleFormaa"
@@ -364,6 +365,10 @@
                      placeholder="请点击右侧选择"
                    />
                    <el-button
                      v-if="
                        (form.templateid && form.sendState == 1) ||
                        !form.templateid
                      "
                      style="margin-left: 10px"
                      type="primary"
                      icon="el-icon-edit"
@@ -372,7 +377,7 @@
                    ></el-button>
                    <el-button
                      v-if="form.templatename"
                      v-if="form.templateid"
                      type="success"
                      icon="el-icon-search"
                      @click="previewfnmb"
@@ -434,7 +439,7 @@
      </div>
      <!-- 任务详情 -->
      <div v-if="Editprogress == 2">
        <el-alert title="在本阶段选择宣教病人" type="success" effect="dark">
        <el-alert title="在本阶段选择随访病人" type="success" effect="dark">
        </el-alert>
        <div class="leftvlue-jbxx">
          <div class="examine-jic">
@@ -543,6 +548,18 @@
                  @keyup.enter.native="handleQuery"
                ></el-input>
              </el-form-item>
              <el-form-item label="患者诊断:">
                <el-input
                  v-model="patientqueryParams.leavediagname"
                  @keyup.enter.native="handleQuery"
                ></el-input>
              </el-form-item>
              <el-form-item label="主治医生:">
                <el-input
                  v-model="patientqueryParams.drname"
                  @keyup.enter.native="handleQuery"
                ></el-input>
              </el-form-item>
              <el-select
                v-model="patientqueryParams.searchscope"
                placeholder="请选择患者范围"
@@ -587,6 +604,8 @@
          <pagination
            v-show="patienttotal > 0 && this.patientqueryParams.allhosp != 6"
            :total="patienttotal"
            :page.sync="patientqueryParams.pageNum"
            :limit.sync="patientqueryParams.pageSize"
            @pagination="handleAddpatient"
          />
        </div>
@@ -727,7 +746,7 @@
                  {{ item.sort }}、[多选]<span>{{ item.scriptContent }}</span>
                </div>
                <div class="dev-xx">
                  <el-checkbox-group v-model="qremark">
                  <el-checkbox-group v-model="item.qremark">
                    <el-checkbox
                      v-for="(items, index) in item.svyLibTemplateTargetoptions"
                      :key="index"
@@ -761,11 +780,26 @@
      </el-tabs>
      <span slot="footer" class="dialog-footer">
        <!-- <el-button @click="previewGo">保存模板详情修改</el-button> -->
        <el-button @click="previewGo">保存模板详情修改</el-button>
        <el-button type="primary" @click="Departmenttreatment"
          >保存使用</el-button
        >
      </span>
      <!-- <span slot="footer" class="dialog-footer">
        <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="previewGo"
          >{{
            previewtftype ? "前往修改已选择模板" : "新增保存并前往修改"
          }}</el-button
        >
      </span> -->
    </el-dialog>
    <el-drawer
      title="问卷内容列表"
@@ -788,7 +822,10 @@
              label-width="98px"
            >
              <el-form-item label="问卷名称">
                <el-input v-model="topqueryParams.svyname"></el-input>
                <el-input
                  v-model="topqueryParams.svyname"
                  @keyup.enter.native="handleQuerymb"
                ></el-input>
              </el-form-item>
              <!-- <el-form-item label="适用形式" prop="status">
                <el-select v-model="topqueryParams.topica" placeholder="请选择">
@@ -812,7 +849,7 @@
                <el-button
                  icon="el-icon-refresh"
                  size="medium"
                  @click="resetQuery"
                  @click="resetQuerymb"
                  >重置</el-button
                >
              </el-form-item>
@@ -901,9 +938,10 @@
      previewtf: false, //预览
      loading: false, // 遮罩层
      patientloading: false, // 遮罩层
      previewtftype: 0, //预览情况0新模板预览1已选择模板修改
      dialogVisiblepatient: false, //添加患者弹框
      dialogVisiblepatientjb: false, //添加疾病弹框
      deptcodesWards: [], //科室数据
      deptcodesWards: [], //课题组数据
      leavehospitaldistrictcodes: [], //病区数据
      operationcodes: [], //手术数据
      illnesscodes: [], //疾病数据
@@ -927,25 +965,27 @@
      tableLabelhz: [
        { label: "出院日期", width: "150", prop: "inhosptime" },
        { label: "患者", width: "", prop: "name" },
        { label: "患者诊断", width: "", prop: "leavediagname" },
        { label: "身份证", width: "200", prop: "idcardno" },
        { label: "性别", width: "", prop: "sex" },
        { label: "年龄", width: "", prop: "age" },
        { label: "责任护士", width: "", prop: "nurseName" },
        { label: "主治医生", width: "", prop: "drname" },
        { label: "科室", width: "240", prop: "dept" },
        { label: "课题组", width: "240", prop: "dept" },
        { label: "病区", width: "240", prop: "leavehospitaldistrictname" },
      ],
      // 患者表单
      tableLabelhzwb: [
        { label: "出院日期", width: "150", prop: "endtime" },
        { label: "患者", width: "", prop: "name" },
        { label: "患者诊断", width: "", prop: "diagname" },
        { label: "身份证", width: "200", prop: "sfzh" },
        { label: "性别", width: "", prop: "sex" },
        { label: "年龄", width: "", prop: "age" },
        { label: "出院天数", width: "", prop: "endDay" },
        { label: "责任护士", width: "", prop: "nurseName" },
        { label: "主治医生", width: "", prop: "drname" },
        { label: "科室", width: "180", prop: "deptName" },
        { label: "课题组", width: "180", prop: "deptName" },
        { label: "病区", width: "150", prop: "leavehospitaldistrictname" },
      ],
@@ -993,7 +1033,6 @@
      patientqueryParams: {
        pageNum: 1, //
        pageSize: 10,
        topica: 1, //0全部1科室2病区
        leavehospitaldistrictcodes: [],
        leaveldeptcodes: [],
      },
@@ -1068,16 +1107,19 @@
        templatename: "",
        templateid: null,
        libtemplateid: null,
        kcb: "亲爱的患者/家属,您好!我们是景宁人民医院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,观看这份宣教资讯。",
        kcb:
          "亲爱的患者/家属,我们是" +
          localStorage.getItem("orgname") +
          "的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,观看这份宣教资讯。",
        jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次宣教内容就到这里,祝您身体健康!",
      },
      taskoptions: [
        {
          value: "1",
          value: "4",
          label: "出院病人",
        },
        {
          value: "4",
          value: "1",
          label: "在院病人",
        },
        {
@@ -1104,7 +1146,7 @@
        },
        {
          value: 1,
          label: "科室患者",
          label: "课题组患者",
        },
        {
          value: 2,
@@ -1112,44 +1154,15 @@
        },
      ],
      tasktypes: [
        {
          value: 1,
          label: "心电随访",
        },
        {
          value: 2,
          label: "出院随访",
        },
        {
          value: 3,
          label: "影像随访",
        },
        {
          value: 4,
          label: "宣教关怀",
        },
        {
          value: 5,
          label: "体检随访",
        },
        {
          value: 11,
          label: "医技随访",
        },
        {
          value: 10,
          label: "专科随访",
        },
      ],
      // 科室/病区
      tasktypes: store.getters.tasktypes,
      // 课题组/病区
      belongWards: [],
      deptlist: [],
      hosplist: [],
      diagglist: [],
      operlist: [],
      tempDetpRelevanceslist: [], //科室数据
      tempDetpRelevanceslistform: [], //科室数据
      tempDetpRelevanceslist: [], //课题组数据
      tempDetpRelevanceslistform: [], //课题组数据
      tempbelongWards: [], //病区数据
      tempbelongWardsform: [], //病区数据
      rules: {
@@ -1166,14 +1179,14 @@
          { required: true, message: "发送设置不能为空", trigger: "blur" },
        ],
        deptcode: [
          { required: true, message: "适用科室不能为空", trigger: "blur" },
          { required: true, message: "适用课题组不能为空", trigger: "blur" },
        ],
        // leavehospitaldistrictcode: [
        //   { required: true, message: "适用病区不能为空", trigger: "blur" },
        // ],
      },
      belongDepts: [],
      // 科室院区查询入参
      // 课题组院区查询入参
      queryParamsdept: {},
      quote: false,
      serviceType: null,
@@ -1271,9 +1284,9 @@
            value: "5",
            label: "微信公众号",
          },
          { label: "微信小程序", value: 6 },
          { label: "微信小程序", value: '6' },
        ];
      } else if (this.form.serviceType == 6) {
      } else if (this.form.serviceType == 6||this.form.serviceType == 14||this.form.serviceType == 15) {
        this.checkboxlist = [
          {
            value: "3",
@@ -1301,6 +1314,9 @@
        this.form.serviceType == 7 ||
        this.form.serviceType == 10 ||
        this.form.serviceType == 11 ||
        this.form.serviceType == 8 ||
        this.form.serviceType == 12 ||
        this.form.serviceType == 13 ||
        this.form.serviceType == 9
      ) {
        this.checkboxlist = [
@@ -1337,6 +1353,7 @@
        this.form.serviceType == 2 ||
        this.form.serviceType == 3 ||
        this.form.serviceType == 5 ||
        this.form.serviceType == 16 ||
        this.form.serviceType == 4
      ) {
        this.checkboxlist = [
@@ -1424,7 +1441,8 @@
        this.deptcodesWards[0] ||
        this.leavehospitaldistrictcodes[0] ||
        this.diagglist[0] ||
        this.operationcodes[0]
        this.operationcodes[0] ||
        this.form.longTask == 2
      ) {
      } else {
        this.$modal.msgError("请选择任务关联条件");
@@ -1504,11 +1522,13 @@
            this.tempbelongWards = [];
            this.objyl.suitway = this.objyl.suitway.split(",");
            this.questionList = res.rows[0].svyTemplateLibScripts;
            this.questionList.forEach((item) => {
              item.qremark = [];
            });
            this.getillness(row.svyid);
            this.previewtf = true;
          }
        });
        console.log(row.svyTemplateLibScripts);
        this.previewid = row.svyid;
        this.Variablehandling(row.svyTemplateLibScripts, 1);
      } else if (type == 2) {
@@ -1530,6 +1550,10 @@
          getQtemplateobj({ svyid: this.form.libtemplateid }).then((res) => {
            if (res.code == 200) {
              this.questionList = res.rows[0].svyTemplateLibScripts;
              this.questionList.forEach((item) => {
                item.qremark = [];
              });
              this.previewtftype = 1;
              this.objyl.svyTemplateLibScripts =
                res.rows[0].svyTemplateLibScripts;
            }
@@ -1618,35 +1642,33 @@
      this.overallCase.forEach((item) => {
        this.allpids.push(item.patid);
      });
      if (
        this.patientqueryParams.allhosp == 1 ||
        (this.patientqueryParams.allhosp == 1 &&
          this.patientqueryParams.cry == 1)
      ) {
      if (this.patientqueryParams.allhosp == 4) {
        this.tableLabelhz = [
          // { label: "入院日期", width: "170", prop: "starttime" },
          { label: "出院日期", width: "150", prop: "endtime" },
          { label: "患者", width: "", prop: "name" },
          { label: "患者诊断", width: "", prop: "leavediagname" },
          { label: "身份证", width: "200", prop: "idcardno" },
          { label: "性别", width: "", prop: "sex" },
          { label: "年龄", width: "", prop: "age" },
          { label: "出院天数", width: "", prop: "endDay" },
          { label: "责任护士", width: "", prop: "nurseName" },
          { label: "医生", width: "", prop: "drname" },
          { label: "科室", width: "180", prop: "dept" },
          { label: "课题组", width: "180", prop: "dept" },
          { label: "病区", width: "150", prop: "leavehospitaldistrictname" },
        ];
      } else if (this.patientqueryParams.allhosp == 4) {
      } else if (this.patientqueryParams.allhosp == 1) {
        this.tableLabelhz = [
          { label: "入院日期", width: "150", prop: "starttime" },
          { label: "患者", width: "", prop: "name" },
          { label: "患者诊断", width: "", prop: "leavediagname" },
          { label: "身份证", width: "200", prop: "idcardno" },
          { label: "性别", width: "", prop: "sex" },
          { label: "年龄", width: "", prop: "age" },
          { label: "出院天数", width: "", prop: "endDay" },
          { label: "责任护士", width: "", prop: "nurseName" },
          { label: "医生", width: "", prop: "drname" },
          { label: "科室", width: "180", prop: "dept" },
          { label: "课题组", width: "180", prop: "dept" },
          { label: "病区", width: "150", prop: "leavehospitaldistrictname" },
        ];
      }
@@ -1655,30 +1677,18 @@
      } else {
        this.patientqueryParams.pids = null;
      }
      // 类型判断
      if (this.patientqueryParams.allhosp == 1) {
        this.patientqueryParams.cry = 1;
      } else if (this.patientqueryParams.allhosp == 4) {
        this.patientqueryParams.cry = 0;
        this.patientqueryParams.allhosp = "1";
      }
      // 来源判断
      if (this.patientqueryParams.searchscope == 1) {
        this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
      if (this.patientqueryParams.allhosp == 4) {
        this.patientqueryParams.hospitaldistrictcodes = [];
        this.patientqueryParams.deptcodes = [];
      } else if (this.patientqueryParams.allhosp == 1) {
        this.patientqueryParams.deptcodes =
          this.patientqueryParams.leaveldeptcodes;
        this.patientqueryParams.hospitaldistrictcodes =
          this.patientqueryParams.leavehospitaldistrictcodes;
        this.patientqueryParams.leavehospitaldistrictcodes = [];
      } else if (this.patientqueryParams.searchscope == 2) {
        this.patientqueryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
        this.patientqueryParams.leaveldeptcodes = [];
      } else {
        this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.patientqueryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
      }
      getTaskpatientQC(this.patientqueryParams).then((response) => {
        this.patientuserList = response.rows;
@@ -1712,6 +1722,7 @@
          item.deptCode = item.deptcode;
          item.deptName = item.dept;
          item.admindate = item.inhosptime;
          item.diagname = item.leavediagname;
          item.sfzh = item.idcardno;
          if (this.patientqueryParams.allhosp == 6) {
            item.patfrom = 1;
@@ -1764,7 +1775,6 @@
    getList() {},
    handleQuery() {
      // 获取外部患者
      console.log(this.patientqueryParams.allhosp, "aaalll");
      if (this.patientqueryParams.allhosp == 6) {
        this.Externallist();
@@ -1772,19 +1782,22 @@
        return;
      }
      if (this.patientqueryParams.topica == 0) {
      if (this.patientqueryParams.searchscope == 1) {
        this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.patientqueryParams.leavehospitaldistrictcodes = [];
      } else if (this.patientqueryParams.searchscope == 2) {
        this.patientqueryParams.leavehospitaldistrictcodes =
          store.getters.leavehospitaldistrictcodes;
        this.patientqueryParams.leaveldeptcodes = store.getters.leaveldeptcodes;
      } else if (this.patientqueryParams.topica == 1) {
        this.patientqueryParams.leavehospitaldistrictcodes = null;
        this.patientqueryParams.leaveldeptcodes = store.getters.leaveldeptcodes;
      } else if (this.patientqueryParams.topica == 2) {
          store.getters.belongWards.map((obj) => obj.districtCode);
        this.patientqueryParams.leaveldeptcodes = [];
      } else {
        this.patientqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.patientqueryParams.leavehospitaldistrictcodes =
          store.getters.leavehospitaldistrictcodes;
        this.patientqueryParams.leaveldeptcodes = null;
          store.getters.belongWards.map((obj) => obj.districtCode);
      }
      if (
        !this.patientqueryParams.leavehospitaldistrictcodes ||
        !this.patientqueryParams.leavehospitaldistrictcodes[0]
@@ -1821,7 +1834,20 @@
      });
    },
    resetQuery() {},
    resetQuerymb() {
      this.topqueryParams = { svyname: "" };
      this.handleQuerymb();
    },
    resetQuery() {
      this.patientqueryParams = {
        pageNum: 1, //
        pageSize: 10,
        topica: 1, //0全部1课题组2病区
        leavehospitaldistrictcodes: [],
        leaveldeptcodes: [],
      };
      this.handleQuery();
    },
    handleQuerymb() {
      getQtemplatelist(this.topqueryParams).then((response) => {
        this.userList = response.rows;
@@ -1853,7 +1879,10 @@
        templatename: "",
        templateid: null,
        libtemplateid: null,
        kcb: "亲爱的患者/家属,您好!我们是景宁人民医院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访问卷。",
        kcb:
          "亲爱的患者/家属,我们是" +
          localStorage.getItem("orgname") +
          "的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访问卷。",
        jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!",
      };
@@ -1884,7 +1913,7 @@
                this.time1 = this.form.showTimeMorn.split(",");
              }
            }
            // 获取任务科室
            // 获取任务课题组
            if (this.form.taskid) {
              this.listDept();
            }
@@ -1945,7 +1974,7 @@
              icdcode: item.icd10code,
            }).then((res) => {
              item.icdname = res.rows[0].icdname;
            this.diagglist.push(item);
              this.diagglist.push(item);
            });
            this.illnesscodes.push(item.icd10code);
          });
@@ -1961,7 +1990,7 @@
        }
      });
    },
    // 任务科室删除触发
    // 任务课题组删除触发
    removetag(row) {
      let result = this.deptlist
        .filter((item) => item.deptCode == row)
@@ -2009,7 +2038,9 @@
      if (result.length) {
        taskdiaghospgetsondel(result).then((res) => {
          if (res.code) {
            this.diagglist=this.diagglist.filter(item => item.icd10code != row);
            this.diagglist = this.diagglist.filter(
              (item) => item.icd10code != row
            );
            this.$modal.msgSuccess("删除成功");
          }
        });
@@ -2107,9 +2138,13 @@
    },
    // 查看模板
    previewGo() {
      this.$router.push({
        path: "/knowledge/tpuconfigurat/",
        query: { id: this.previewid, task: true, data: this.form },
      this.$modal.confirm("是否前往修改任务模板详细内容?").then(() => {
        this.drawermb = false; //选择模板弹窗
        this.previewtf = false; //预览
        this.$router.push({
          path: "/knowledge/tpuconfigurat/",
          query: { id: this.previewid, task: true, data: this.form },
        });
      });
    },
    // 保存/更新任务模板
@@ -2145,7 +2180,7 @@
        });
      }
    },
    // 保存科室/病区
    // 保存课题组/病区
    putbelongDepts(id) {
      this.tempDetpRelevanceslistform.forEach((item) => {
        item.tempid = id;
@@ -2155,7 +2190,7 @@
      });
      depthospgetson(this.tempDetpRelevanceslistform).then((res) => {
        if (res.code == 200) {
          this.$modal.msgSuccess("科室更新成功");
          this.$modal.msgSuccess("课题组更新成功");
          this.tempDetpRelevanceslistform = [];
        }
      });
@@ -2167,16 +2202,16 @@
      });
    },
    // 科室处理
    // 课题组处理
    Departmenttreatment() {
      if (!this.form.taskid) {
        this.templateor = true;
        MessageBox.confirm(
          "当前为新增任务未保存不可关联模板,是否先保存任务?",
          "当前为新增任务未保存不可关联模板,是否先暂存模板保存任务后生效?",
          "功能提示",
          {
            confirmButtonText: "保存任务",
            cancelButtonText: "暂存模板",
            confirmButtonText: "暂存模板",
            cancelButtonText: "取消",
            type: "warning",
          }
        )
@@ -2190,22 +2225,14 @@
            this.objyl.svyTaskTemplateScriptVOS =
              this.objyl.svyTemplateLibScripts;
            this.form.svyTaskTemplateVO = this.objyl;
            this.submitForm();
          })
          .catch(() => {
            if (Array.isArray(this.objyl.suitway)) {
              this.objyl.suitway = this.objyl.suitway.join(",");
            }
            this.objyl.templateid = this.objyl.svyid;
            this.form.libtemplateid = this.objyl.svyid;
            this.objyl.isoperation = 1;
            this.objyl.svyTaskTemplateScriptVOS =
              this.objyl.svyTemplateLibScripts;
            this.form.svyTaskTemplateVO = this.objyl;
            this.form.templatename = this.objyl.svyname;
            this.$modal.msgSuccess("暂存成功保存任务后模板失效");
            this.drawermb = false;
            this.previewtf = false;
          })
          .catch(() => {
            this.drawermb = false;
            this.previewtf = false;
          });
      } else {
        setTimeout(() => {