WXL
2024-09-03 a346cfbcb03a303dca252d910d2181f00e7adc20
src/views/patient/propaganda/particty.vue
@@ -14,7 +14,6 @@
            title="任务主体"
            description="在本部选择服务患者"
          ></el-step>
          <el-step icon="el-icon-user" title="模版确认"></el-step>
        </el-steps>
      </div>
    </div>
@@ -67,7 +66,7 @@
                    placeholder="请输入任务描述"
                  />
                </el-form-item>
                <el-form-item label="发送设置:" v-if="currenttype != 2">
                <el-form-item label="发送设置:">
                  <el-radio-group v-model="form.sendType">
                    <el-radio :label="1">时间段发送</el-radio>
                    <el-radio :label="3">时间点发送</el-radio>
@@ -162,8 +161,10 @@
                    <el-checkbox
                      v-for="(item, index) in checkboxlist"
                      :key="index"
                      :label="item"
                    ></el-checkbox>
                      :label="item.value"
                    >
                      {{ item.label }}</el-checkbox
                    >
                  </el-checkbox-group>
                </el-form-item>
              </el-form>
@@ -234,87 +235,7 @@
              <div class="jic-value">
                <el-row :gutter="20">
                  <!--用户数据-->
                  <!-- <el-form
                    :model="topqueryParams"
                    ref="queryForm"
                    size="small"
                    :inline="true"
                    v-show="showSearch"
                    label-width="98px"
                  >
                    <el-form-item label="患者名称">
                      <el-input v-model="topqueryParams.name"></el-input>
                    </el-form-item>
                    <el-form-item label="患者范围" prop="status">
                      <el-select
                        v-model="topqueryParams.scriptTopic"
                        placeholder="请选择"
                      >
                        <el-option
                          v-for="item in taskoptions"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
                        >
                        </el-option>
                      </el-select>
                    </el-form-item>
                    <el-form-item label="患者状态" prop="status">
                      <el-select
                        v-model="topqueryParams.scriptTopic"
                        placeholder="请选择"
                      >
                        <el-option
                          v-for="item in topicoptions"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
                        >
                        </el-option>
                      </el-select>
                    </el-form-item>
                    <el-form-item label="随访结果" prop="status">
                      <el-select
                        v-model="topqueryParams.scriptTopic"
                        placeholder="请选择"
                      >
                        <el-option
                          v-for="item in topicoptions"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
                        >
                        </el-option>
                      </el-select>
                    </el-form-item>
                    <el-form-item label="患者电话">
                      <el-input v-model="topqueryParams.name"></el-input>
                    </el-form-item>
                    <el-form-item>
                      <el-button
                        type="primary"
                        icon="el-icon-search"
                        size="medium"
                        @click="handleQuery"
                        >搜索</el-button
                      >
                      <el-button
                        icon="el-icon-refresh"
                        size="medium"
                        @click="resetQuery"
                        >重置</el-button
                      >
                      <el-button
                        icon="el-icon-upload2"
                        size="medium"
                        type="warning"
                        >当前患者一键发送</el-button
                      >
                    </el-form-item>
                  </el-form>
                  <el-divider></el-divider> -->
                  <el-row :gutter="10" class="mb8">
                    <el-col :span="1.5">
                      <el-select
@@ -408,29 +329,22 @@
              label-width="98px"
            >
              <el-form-item label="患者名称:">
                <el-input v-model="patientqueryParams.name"></el-input>
                <el-input
                  v-model="patientqueryParams.name"
                  @keyup.enter.native="handleQuery"
                ></el-input>
              </el-form-item>
              <!-- <el-form-item label="就诊科室" prop="status">
                <el-select
                  v-model="patientqueryParams.scriptTopic"
                  placeholder="请选择"
                >
                  <el-option-group
                    v-for="group in topicoptions[0].children"
                    :key="group.deptName"
                    :label="group.deptName"
                  >
                    <el-option
                      v-for="item in group.children"
                      :key="item.deptId"
                      :label="item.deptName"
                      :value="item.deptId"
                    >
                    </el-option>
                  </el-option-group>
                </el-select>
              </el-form-item> -->
              <el-form-item label="创建时间">
                <el-date-picker
                  v-model="dateRange"
                  style="width: 240px"
                  value-format="yyyy-MM-dd"
                  type="daterange"
                  range-separator="-"
                  start-placeholder="开始日期"
                  end-placeholder="结束日期"
                ></el-date-picker>
              </el-form-item>
              <el-form-item>
                <el-button
@@ -444,7 +358,7 @@
                  icon="el-icon-refresh"
                  size="medium"
                  @click="resetQuery"
                  >取消创建</el-button
                  >重置</el-button
                >
              </el-form-item>
            </el-form>
@@ -533,91 +447,11 @@
              v-show="showSearch"
              label-width="98px"
            >
              <el-form-item
                label="随访主题"
                v-if="currenttype == 1 || currenttype == 8"
              >
              <el-form-item label="随访主题">
                <el-input v-model="topqueryParams.name"></el-input>
              </el-form-item>
              <el-form-item
                label="随访名称"
                v-if="currenttype == 2 || currenttype == 3 || currenttype == 7"
              >
                <el-input
                  v-model="topqueryParams.name"
                ></el-input> </el-form-item
              ><el-form-item
                label="通知名称"
                v-if="currenttype == 4 || currenttype == 5"
              >
              <el-form-item label="随访名称">
                <el-input v-model="topqueryParams.name"></el-input>
              </el-form-item>
              <el-form-item
                label="随访类型"
                prop="status"
                v-if="currenttype == 1 || currenttype == 8"
              >
                <el-select
                  v-model="topqueryParams.scriptTopic"
                  placeholder="请选择"
                >
                  <el-option
                    v-for="item in taskoptions"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item
                label="通知类型"
                prop="status"
                v-if="currenttype == 4 || currenttype == 5"
              >
                <el-select
                  v-model="topqueryParams.scriptTopic"
                  placeholder="请选择"
                >
                  <el-option
                    v-for="item in taskoptions"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item
                label="随访类型"
                prop="status"
                v-if="currenttype == 2 || currenttype == 3 || currenttype == 7"
              >
                <el-select
                  v-model="topqueryParams.scriptTopic"
                  placeholder="请选择"
                >
                  <el-option
                    v-for="item in taskoptions"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="适用形式" prop="status">
                <el-select v-model="topqueryParams.topica" placeholder="请选择">
                  <el-option
                    v-for="item in taskoptions"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="适用科室" prop="status">
@@ -693,13 +527,18 @@
export default {
  name: "ServiceDetails",
  data() {
    const endDate = new Date();
    const startDate = new Date();
    startDate.setDate(endDate.getDate() - 7); // 设置开始日期为当前日期前7天
    return {
      title: "随访内容列表",
      currenttype: 1, //1随访2门诊3出院4复诊5体检6问卷
      currenttype: 1, //1随访2问卷3通知宣教
      id: "", //
      previewid: "", //任务模版传递id
      libName: "",
      overallCase: [], //选择患者总
      // 日期范围
      dateRange: [startDate, endDate],
      allpids: [],
      libId: null, //模板库模版id
      nhh: null, //是否依照新增
@@ -715,12 +554,11 @@
      questionList: [],
      // 患者表单
      tableLabelhz: [
        { label: "序号", width: "", prop: "patid" },
        { label: "患者名称", width: "", prop: "name" },
        { label: "性别", width: "", prop: "sex" },
        { label: "年龄", width: "", prop: "age" },
        { label: "就诊科室", width: "", prop: "deptName" },
        { label: "入院日期", width: "", prop: "inhosptime" },
        { label: "入院日期", width: "", prop: "birthdate" },
        { label: "创建人(缺)", width: "", prop: "update_by" },
      ],
@@ -731,12 +569,7 @@
        { label: "创建人(缺)", width: "", prop: "updateBy" },
      ],
      // 变量
      tableLabelvariable: [
        { label: "变量名称", width: "", prop: "variablename" },
        { label: "匹配符", width: "", prop: "character" },
        { label: "替换值", width: "", prop: "Replacementvalue" },
      ],
      // 服务形式
      preachform: [
        { label: "线下", value: 1 },
        { label: "电话", value: 2 },
@@ -854,7 +687,7 @@
  created() {
    this.id = this.$route.query.id;
    this.form.type = this.$route.query.type;
    this.form.typename = this.$route.query.typename;
    this.form.serviceType = Number(this.$route.query.serviceType);
    this.form.nhh = this.$route.query.nhh;
    this.listDept();
    this.Acquisitiontype();
@@ -898,11 +731,63 @@
        isavailable: "",
      };
      this.currenttype = this.$route.query.type;
      console.log(this.currenttype, "1");
      // 出院、门诊、专病随访
      this.title = "随访内容列表";
      this.tableLabel = this.tableLabelmz;
      this.checkboxlist = ["短信", "微信", "人工电话", "智能机器人"];
      if (this.form.serviceType == 2 || this.form.serviceType == 3) {
        this.checkboxlist = [
          {
            value: "1",
            label: "人工",
          },
          {
            value: "3",
            label: "电话",
          },
          {
            value: "4",
            label: "短信",
          },
          {
            value: "5",
            label: "微信公众号",
          },
          {
            value: "6",
            label: "微信小程序",
          },
          {
            value: "8",
            label: "智能机器人",
          },
        ];
      } else if (this.form.serviceType == 5) {
        this.checkboxlist = [
          {
            value: "3",
            label: "电话",
          },
          {
            value: "4",
            label: "短信",
          },
          {
            value: "5",
            label: "微信公众号",
          },
          {
            value: "6",
            label: "微信小程序",
          },
          {
            value: "8",
            label: "智能机器人",
          },
        ];
      }
      getFollowuplist(queryParams).then((response) => {
        this.userList = response.rows;
        this.total = response.total;
@@ -915,8 +800,8 @@
    },
    // 保存
    submitForm(formName) {
      // this.form.preachform = this.checkList.join(",");
      this.formatFn(1);
      this.form.preachform = this.checkList.join(",");
      // this.formatFn(1);
      if (!this.form.patTaskRelevances[0]) {
        this.$modal.msgError("请选择病人");
        return;
@@ -939,7 +824,10 @@
          } else {
            this.$modal.msgSuccess("修改成功");
          }
          this.$router.go(-1);
          this.$router.push({
            path: "/followvisit/tasklist",
            query: { tasktopic: this.form.serviceType },
          });
        }
      });
    },
@@ -1001,24 +889,22 @@
      });
      if (this.patientqueryParams.allhosp == 1) {
        this.tableLabelhz = [
          { label: "序号", width: "", prop: "patid" },
          { label: "患者名称", width: "", prop: "name" },
          { label: "性别", width: "", prop: "sex" },
          { label: "年龄", width: "", prop: "age" },
          { label: "主任医师", width: "", prop: "drname" },
          { label: "就诊科室", width: "", prop: "deptName" },
          { label: "入院日期", width: "", prop: "inhosptime" },
          { label: "入院日期", width: "", prop: "birthdate" },
          { label: "创建人", width: "", prop: "createBy" },
        ];
      } else if (this.patientqueryParams.allhosp == 2) {
        this.tableLabelhz = [
          { label: "序号", width: "", prop: "patid" },
          { label: "患者名称", width: "", prop: "name" },
          { label: "性别", width: "", prop: "sex" },
          { label: "年龄", width: "", prop: "age" },
          { label: "诊断", width: "", prop: "diagname" },
          { label: "就诊科室", width: "", prop: "deptName" },
          { label: "入院日期", width: "", prop: "inhosptime" },
          { label: "入院日期", width: "", prop: "birthdate" },
          { label: "创建人", width: "", prop: "createBy" },
        ];
      }
@@ -1029,8 +915,9 @@
        this.patientqueryParams.pids = null;
      }
      getTaskpatient(this.patientqueryParams).then((response) => {
        console.log(response);
      getTaskpatient(
        this.addDateRange(this.patientqueryParams, this.dateRange)
      ).then((response) => {
        this.patientuserList = response.rows;
        this.patienttotal = response.total;
        this.loading = false;
@@ -1055,6 +942,7 @@
        if (!isExist) {
          console.log(this.patientqueryParams.allhosp, "allhosp");
          item.isoperation = 1;
          item.patid = item.id;
          item.hospType = this.patientqueryParams.allhosp;
          this.overallCase.push(item);
          this.form.patTaskRelevances.push(item);
@@ -1065,10 +953,12 @@
    // 切换页后恢复选中
    Restorecheck() {
      console.log(this.overallCase, "this.overallCase");
      const allid = this.overallCase.map((item) => item.patid);
      const allid = this.overallCase.map((item) => item.id);
      const overlap = this.patientuserList.filter((value) => {
        return allid.includes(value.patid);
        return allid.includes(value.id);
      });
      console.log(overlap, "overlap");
      // 保持ids和当前页面的同步性
      this.SelectPatientslist = overlap;
      console.log(this.SelectPatientslist, "进入分页SelectPatientslist");
@@ -1106,7 +996,18 @@
    handleQuery() {
      this.handleAddpatient();
    },
    resetQuery() {},
    resetQuery() {
      this.dateRange = [];
      // 查询参数
      this.queryParams = {
        pageNum: 1,
        pageSize: 10,
        userName: undefined,
        phonenumber: undefined,
        status: undefined,
        deptId: undefined,
      };
    },
    handleClosehz() {
      this.dialogVisiblepatient = false;
    },
@@ -1132,7 +1033,7 @@
          if (res.code == 200) {
            this.form = res.data;
            this.overallCase = this.form.patTaskRelevances.concat();
            this.formatFn(2);
            this.checkList = this.form.preachform.split(",");
            console.log(this.form.showDate, "this.form");
            this.daytime = this.form.showDate.split(",");
            this.changeTimeday(this.daytime);
@@ -1247,6 +1148,7 @@
      }
      this.form.sendTimeslot = combinedData;
      // 展示数据临时存储日期、早、中、晚
      console.log(this.daytime);
      this.form.showDate = this.daytime.join(",");
      if (this.time1) this.form.showTimeMorn = this.time1.join(",");
@@ -1257,15 +1159,18 @@
    // 查看模版
    previewGo() {
      this.$router.push({
        path: "/knowledge/templateku/configurat/",
        path: "/knowledge/tpuconfigurat/",
        query: { id: this.previewid, task: true, data: this.form },
      });
    },
    previewFn() {
      let id = this.Tasktemplate.id;
      this.Tasktemplate.id = null;
      this.Tasktemplate.ivrLibaTemplateScriptVOList.ivrTaskScriptTargetoptionList =
        this.Tasktemplate.ivrLibaTemplateScriptVOList.ivrLibaScriptTargetoptionList;
      this.Tasktemplate.ivrLibaTemplateScriptVOList.forEach((item) => {
        item.ivrTaskScriptTargetoptionList = item.ivrLibaScriptTargetoptionList;
      });
      console.log(this.Tasktemplate.ivrLibaTemplateScriptVOList);
      this.Tasktemplate.ivrTaskTemplateScriptVOList =
        this.Tasktemplate.ivrLibaTemplateScriptVOList;
      this.Tasktemplate.ivrLibaTemplateTagList = null;