WXL
2024-07-16 cc73ea5320fed8a39e00bfc0fa02810199559122
src/views/patient/propaganda/QuestionnaireTask.vue
@@ -54,6 +54,7 @@
                    <el-button
                      type="primary"
                      icon="el-icon-edit"
                      @click="drawermb = true"
                      circle
                    ></el-button>
                  </el-col>
@@ -342,6 +343,7 @@
                    @selectfn="selectfn"
                    :currentList="userList"
                    :tableLabel="tableLabel"
                    :serialnumber="false"
                    :controlsc="false"
                    :multiplechoice="false"
                    :typeinfo="1"
@@ -669,19 +671,19 @@
        <div
          class="topic-dev"
          v-for="(item, index) in questionList"
          :key="item.aaa"
          :key="item.id"
        >
          <div class="dev-text">
            {{ index + 1 }}、<span>{{ item.questionText }}</span>
            {{ index + 1 }}、<span>{{ item.script }}</span>
          </div>
          <div class="dev-xx" v-if="item.valueType == 1">
          <div class="dev-xx" v-if="item.scripttype != 3">
            <el-radio-group v-model="item.radio">
              <el-radio
                v-for="(items, index) in item.ivrLibaScriptTargetoptionList"
                v-for="(items, index) in item.svyLibTemplateTargetoptions"
                :key="items.id"
                :label="items.id"
                >{{ items.targetvalue }}
                >{{ items.optioncontent }}
              </el-radio>
            </el-radio-group>
          </div>
@@ -700,6 +702,177 @@
        <el-button type="primary" @click="previewFn">确认使用</el-button>
      </span>
    </el-dialog>
    <el-drawer
      title="随访内容列表"
      :visible.sync="drawermb"
      direction="rtl"
      size="50%"
    >
      <div class="headline"></div>
      <div class="examine-jic">
        <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="宣教主题"
                v-if="currenttype == 1 || currenttype == 8"
              >
                <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-input
                  v-model="topqueryParams.name"
                ></el-input> </el-form-item
              ><el-form-item label="体检套餐" v-if="currenttype == 5">
                <el-input v-model="topqueryParams.name"></el-input>
              </el-form-item>
              <el-form-item label="问卷主题" v-if="currenttype == 6">
                <el-input v-model="topqueryParams.name"></el-input>
              </el-form-item>
              <el-form-item label="适用疾病" v-if="currenttype != 5">
                <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.topic" 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.topic" 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.topic" 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 == 6"
              >
                <el-select v-model="topqueryParams.topic" 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">
                <el-select v-model="topqueryParams.topicd" 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>
                <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-form-item>
            </el-form>
            <el-divider></el-divider>
            <!-- 选择模版列表 -->
            <SFtable
              @selectfn="selectfn"
              :currentList="userList"
              :tableLabel="tableLabel"
              :serialnumber="false"
              :controlsc="false"
              :multiplechoice="false"
              :typeinfo="1"
            />
            <pagination
              v-show="total > 0"
              :total="total"
              :page.sync="topqueryParams.pageNum"
              :limit.sync="topqueryParams.pageSize"
              @pagination="Acquisitiontype"
            />
          </el-row>
        </div>
      </div>
    </el-drawer>
  </div>
</template>
@@ -715,7 +888,7 @@
  Questionnairetaskget,
  gethetaskinfo,
  delhetaskinfo,
  Questionnairetaskdetails,
  Editsingletask,
} from "@/api/AiCentre/index";
import { listDept } from "@/api/system/dept";
@@ -734,6 +907,7 @@
      allpids: [],
      libId: null, //模板库模版id
      Editprogress: 1, //编辑进度
      drawermb: false, //选择模版弹窗
      previewtf: false, //预览
      loading: false, // 遮罩层
      patientloading: false, // 遮罩层
@@ -754,10 +928,11 @@
      ],
      tableLabelwj: [
        { label: "问卷名称", width: "", prop: "name" },
        { label: "问卷模版", width: "", prop: "impTemplate" },
        { label: "修改日期", width: "", prop: "uploadTime" },
        { label: "创建人(缺)", width: "", prop: "updateBy" },
        { label: "序号", width: "", prop: "svyid" },
        { label: "问卷名称", width: "", prop: "svyname" },
        { label: "问卷概述", width: "", prop: "description" },
        { label: "修改日期", width: "", prop: "updateTime" },
        { label: "创建人", width: "", prop: "createBy" },
      ],
      // 变量
      tableLabelvariable: [
@@ -775,6 +950,8 @@
        { label: "支付宝", value: 7 },
        { label: "智能小程序", value: 8 },
        { label: "钉钉", value: 9 },
        { label: "线下(纸质)", value: 10 },
        { label: "线上(短信/钉钉的文本、问卷链接)", value: 11 },
      ],
      // 时间处理
      daytime: [], //日期
@@ -883,7 +1060,8 @@
  created() {
    this.id = this.$route.query.id;
    this.form.hospType = this.$route.query.type;
    this.form.type = this.$route.query.type;
    this.form.typename = this.$route.query.typename;
    this.listDept();
    this.Acquisitiontype();
    this.Getdetails();
@@ -955,14 +1133,20 @@
      } else {
        this.form.isoperation = 1;
      }
      Questionnairetaskdetails(this.form).then((res) => {
      if (!this.form.type) {
        this.form.type = this.$route.query.type;
      }
      Editsingletask(this.form).then((res) => {
        if (res.code == 200) {
          if (this.form.taskid) {
            this.$modal.msgSuccess("新增成功");
          } else {
            this.$modal.msgSuccess("修改成功");
          }
          this.$router.go(-1);
          this.$router.push({
            path: "/followvisit/tasklist",
            query: { tasktopic: 6 },
          });
        }
      });
    },
@@ -971,30 +1155,15 @@
    selectfn(row, type) {
      // 模版情况下获取模版信息
      if (type == 1) {
        if (
          this.currenttype == 2 ||
          this.currenttype == 4 ||
          this.currenttype == 3 ||
          currenttype == 5 ||
          currenttype == 7
        ) {
          this.libName = row.templateName;
          this.libId = row.id;
        } else if (this.currenttype == 1) {
          this.libName = row.preachname;
          this.libId = row.id;
        }
        getQtemplatelist({ id: row.id }).then((res) => {
          if (res.code == 200) {
            this.Tasktemplate = res.data;
            const data = res.data;
            this.questionList = data.ivrLibaTemplateScriptVOList;
            this.previewtf = true;
            this.previewid = data.id;
            console.log(this.questionList, "questionList");
            this.Variablehandling(data.ivrLibaTemplateScriptVOList, 1);
          }
        });
        this.libName = row.svyname;
        this.libId = row.svyid;
        console.log(row, "row");
        this.Tasktemplate = row;
        this.questionList = row.svyLibScripts;
        this.previewtf = true;
        this.previewid = row.svyid;
        console.log(this.questionList, "questionList");
        this.Variablehandling(row.svyLibScripts, 1);
      } else if (type == 2) {
      } else if (type == 3) {
      }
@@ -1054,8 +1223,7 @@
    handleUpdate() {},
    handleDelete() {},
    handleExport() {},
    // 选中患者表
    handlePitchionChange() {},
    // 选择患者表数据
    handleSelectionChange(selection) {
      console.log("多选患者");
@@ -1067,6 +1235,7 @@
        const isExist = this.overallCase.find((obj) => obj.name == item.name);
        if (!isExist) {
          item.isoperation = 1;
          item.hospType = this.patientqueryParams.allhosp;
          this.overallCase.push(item);
          this.form.patTaskRelevances.push(item);
        }
@@ -1141,6 +1310,10 @@
          console.log(2233);
          if (res.code == 200) {
            this.form = res.data;
            this.form.patTaskRelevances = this.form.patTaskRelevances
              ? this.form.patTaskRelevances
              : [];
            this.overallCase = this.form.patTaskRelevances.concat();
            this.formatFn(2);
            console.log(this.form.showDate, "this.form");
@@ -1270,15 +1443,12 @@
    previewFn() {
      let id = this.Tasktemplate.id;
      this.Tasktemplate.id = null;
      this.Tasktemplate.ivrLibaTemplateScriptVOList.ivrTaskScriptTargetoptionList =
        this.Tasktemplate.ivrLibaTemplateScriptVOList.ivrLibaScriptTargetoptionList;
      this.Tasktemplate.ivrTaskTemplateScriptVOList =
        this.Tasktemplate.ivrLibaTemplateScriptVOList;
      this.Tasktemplate.ivrLibaTemplateTagList = null;
      this.Tasktemplate.tempDetpRelevances = null;
      this.Tasktemplate.libtemplateid = id;
      this.Tasktemplate.svyLibScripts.svyTaskTemplateTargetoptions =
        this.Tasktemplate.svyLibScripts.svyLibTemplateTargetoptions;
      this.Tasktemplate.svyTaskTemplateScriptVOS =
        this.Tasktemplate.svyLibScripts;
      this.Tasktemplate.templateid = id;
      this.Tasktemplate.isoperation = 1;
      this.Tasktemplate.libtemplatename = this.Tasktemplate.templateName;
      TaskQuestioncomit(this.Tasktemplate).then((response) => {
        console.log(response);
        this.previewtf = false;
@@ -1302,6 +1472,7 @@
            }
          });
        });
        console.log(list, "list");
        this.form.preachform = list.join(",");
      } else {
        console.log(this.form.preachform, "this.form.preachform");