WXL
2024-09-09 5c35457d2cc1fd0dcf8de9f3de838d58e8296cb8
src/views/patient/propaganda/QuestionnaireTask.vue
@@ -69,7 +69,7 @@
                    placeholder="请输入任务描述"
                  />
                </el-form-item>
                <el-form-item label="服务形式" prop="taskDesc">
                <el-form-item label="服务形式">
                  <el-checkbox-group v-model="checkList">
                    <el-checkbox
                      v-for="(item, index) in checkboxlist"
@@ -183,7 +183,7 @@
            <div class="headline">
              <div>任务使用模板</div>
              <div style="margin-left: 20px">
                <el-form :model="form">
                <el-form ref="forms">
                  <el-form-item label="">
                    <el-input
                      style="width: 300px"
@@ -199,7 +199,7 @@
                    ></el-button>
                    <el-button
                      v-if="this.form.libtemplateid"
                      v-if="form.libtemplateid"
                      type="success"
                      icon="el-icon-search"
                      @click="previewfnmb"
@@ -416,66 +416,66 @@
    </el-dialog>
    <el-dialog title="模板预览" :visible.sync="previewtf" width="60%">
      <div class="preview-left">
        <!-- 单选 -->
        <div
          class="scriptTopic-dev"
          v-for="item in questionList"
          :key="item.sort"
          v-if="item.scriptType == 1"
        >
          <div class="dev-text">
            {{ item.sort }}、[单选]<span>{{ item.scriptContent }}</span>
        <div v-for="item in questionList">
          <!-- 单选 -->
          <div
            class="scriptTopic-dev"
            :key="item.sort"
            v-if="item.scriptType == 1"
          >
            <div class="dev-text">
              {{ item.sort }}、[单选]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-radio-group v-model="item.remark">
                <el-radio
                  v-for="(items, index) in item.svyLibTemplateTargetoptions"
                  :key="index"
                  :label="index"
                  >{{ items.optioncontent }}</el-radio
                >
              </el-radio-group>
            </div>
          </div>
          <div class="dev-xx">
            <el-radio-group v-model="item.remark">
              <el-radio
                v-for="(items, index) in item.svyLibTemplateTargetoptions"
                :key="index"
                :label="index"
                >{{ items.optioncontent }}</el-radio
              >
            </el-radio-group>
          <!-- 多选 -->
          <div
            class="scriptTopic-dev"
            :key="item.sort"
            v-if="item.scriptType == 2"
          >
            <div class="dev-text">
              {{ item.sort }}、[多选]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-checkbox-group v-model="qremark">
                <el-checkbox
                  v-for="(items, index) in item.svyLibTemplateTargetoptions"
                  :key="index"
                  :label="index"
                >
                  {{ items.optioncontent }}
                </el-checkbox>
              </el-checkbox-group>
            </div>
          </div>
        </div>
        <!-- 多选 -->
        <div
          class="scriptTopic-dev"
          v-for="item in questionList"
          v-if="item.scriptType == 2"
        >
          <div class="dev-text">
            {{ item.sort }}、[多选]<span>{{ item.scriptContent }}</span>
          </div>
          <div class="dev-xx">
            <el-checkbox-group v-model="multiplechoice">
              <el-checkbox
                v-for="items in item.svyLibTemplateTargetoptions"
                :key="items.optioncontent"
                :label="items.optioncontent"
              >
                {{ items.optioncontent }}
              </el-checkbox>
            </el-checkbox-group>
          </div>
        </div>
        <!-- 填空 -->
        <div
          class="scriptTopic-dev"
          v-for="item in questionList"
          :key="item.sort"
          v-if="item.scriptType == 4"
        >
          <div class="dev-text">
            {{ item.sort }}、[填空]<span>{{ item.scriptContent }}</span>
          </div>
          <div class="dev-xx">
            <el-input placeholder="请输入答案" v-model="item.radioas" clearable>
            </el-input>
          <!-- 填空 -->
          <div
            class="scriptTopic-dev"
            :key="item.sort"
            v-if="item.scriptType == 4"
          >
            <div class="dev-text">
              {{ item.sort }}、[问答]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-input placeholder="请输入答案" v-model="radioas" clearable>
              </el-input>
            </div>
          </div>
        </div>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="previewGo">前往模板详情修改</el-button>
        <!-- <el-button @click="previewGo">前往模板详情修改</el-button> -->
        <el-button type="primary" @click="previewFn">确认使用</el-button>
      </span>
    </el-dialog>
@@ -502,18 +502,6 @@
              <el-form-item label="问卷名称">
                <el-input v-model="topqueryParams.svyname"></el-input>
              </el-form-item>
              <!-- <el-form-item label="问卷类型" prop="status">
                <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
@@ -525,18 +513,6 @@
                  </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"
@@ -586,6 +562,7 @@
  getlibrarylist,
  getFollowuplist,
  getQtemplatelist,
  getQtemplateobj,
  TaskQuestioncomit,
  Questionnairetaskget,
  gethetaskinfo,
@@ -796,19 +773,17 @@
          { required: true, message: "任务名称不能为空", trigger: "blur" },
          {
            min: 2,
            max: 20,
            message: "任务名称长度必须介于 2 和 20 之间",
            max: 30,
            message: "任务名称长度必须介于 2 和 30 之间",
            trigger: "blur",
          },
        ],
        taskDesc: [
          { required: true, message: "任务描述不能为空", trigger: "blur" },
        ],
        sendType: [
          { required: true, message: "发送设置不能为空", trigger: "blur" },
        ],
        daytime: [{ required: true, message: "民族不能为空", trigger: "blur" }],
      },
      quote: false,
      serviceType: null,
@@ -975,55 +950,72 @@
      });
    },
    nextstep() {
      if (this.Editprogress <= 3) {
        return this.Editprogress++;
      }
      this.$refs["form"].validate((valid) => {
        if (valid) {
          if (this.Editprogress <= 3) {
            return this.Editprogress++;
          }
        } else {
          this.$modal.msgError("表单内容未完善,请检查");
        }
      });
    },
    // 保存
    submitForm(formName) {
      this.$refs["form"].validate((valid) => {
        if (valid) {
          if (this.checkList[0]) {
            this.form.preachform = this.checkList.join(",");
          } else {
            this.$modal.msgError("请选择服务类型");
            return;
          }
          if (!this.form.patTaskRelevances[0]) {
            this.$modal.msgError("请选择病人");
            return;
          }
          const filteredArray = this.variableList.filter(
            (item) =>
              item.name !== "姓名" &&
              item.name !== "电话" &&
              item.name !== "地址"
          );
          this.form.textParam = this.convertFormat2ToFormat1(filteredArray);
      if (this.time4 && this.form.sendType == 3)
        this.form.showTimeMorn = this.time4;
      this.form.sendTimeslot = [
        {
          begantime: this.time4,
          endtime: "",
          xh: 1,
        },
      ];
      if (this.checkList[0]) {
        this.form.preachform = this.checkList.join(",");
      } else {
        this.$modal.msgError("请选择服务类型");
        return;
      }
      if (!this.form.patTaskRelevances[0]) {
        this.$modal.msgError("请选择病人");
        return;
      }
      if (!this.form.templatename) {
        this.$modal.msgError("未选择模板");
        return;
      }
      if ((this.form.sendType == 1 && this.time1) || this.form.sendType == 2) {
      } else if (this.form.sendType == 3 && this.time4) {
      } else {
        return this.$modal.msgError("时间信息缺失");
      }
      const filteredArray = this.variableList.filter(
        (item) =>
          item.name !== "姓名" && item.name !== "电话" && item.name !== "地址"
      );
      this.form.textParam = this.convertFormat2ToFormat1(filteredArray);
      if (this.form.taskid) {
        this.form.isoperation = 2;
      } else {
        this.form.isoperation = 1;
      }
      if (!this.form.type) {
        this.form.type = this.$route.query.type;
      }
      this.form.serviceType = this.serviceType;
      Editsingletask(this.form).then((res) => {
        if (res.code == 200) {
          if (this.form.taskid) {
            this.form.isoperation = 2;
            this.$modal.msgSuccess("新增成功");
          } else {
            this.form.isoperation = 1;
            this.$modal.msgSuccess("修改成功");
          }
          if (!this.form.type) {
            this.form.type = this.$route.query.type;
          }
          this.form.serviceType = this.serviceType;
          Editsingletask(this.form).then((res) => {
            if (res.code == 200) {
              if (this.form.taskid) {
                this.$modal.msgSuccess("新增成功");
              } else {
                this.$modal.msgSuccess("修改成功");
              }
              this.$router.push({
                path: "/followvisit/tasklist",
                query: { tasktopic: this.form.serviceType },
              });
            }
          this.$router.push({
            path: "/followvisit/tasklist",
            query: { tasktopic: this.form.serviceType },
          });
        }else{
          this.$modal.msgError("表单内容未完善,请检查");
        }
      });
    },
@@ -1037,7 +1029,13 @@
        this.libId = row.svyid;
        this.Tasktemplate = row;
        this.questionList = row.svyTemplateLibScripts;
        this.previewtf = true;
        getQtemplateobj({ svyid: row.svyid }).then((res) => {
          if (res.code==200) {
            this.questionList = res.rows[0].svyTemplateLibScripts;
            this.previewtf = true;
          }
        });
        console.log(row.svyTemplateLibScripts);
        this.previewid = row.svyid;
        this.Variablehandling(row.svyTemplateLibScripts, 1);
      } else if (type == 2) {
@@ -1048,10 +1046,8 @@
    previewfnmb() {
      console.log(this.form);
      getQtemplatelist({ svyid: this.form.libtemplateid }).then((res) => {
      getQtemplateobj({ svyid: this.form.libtemplateid }).then((res) => {
        if (res.code == 200) {
          console.log();
          this.questionList = res.rows[0].svyTemplateLibScripts;
          this.previewtf = true;
        }
@@ -1239,11 +1235,13 @@
              : [];
            this.overallCase = this.form.patTaskRelevances.concat();
            this.checkList = this.form.preachform.split(",");
            console.log(this.form.showDate, "this.form");
            this.daytime = this.form.showDate.split(",");
            console.log(this.form, "this.form");
            if (this.form.showDate)
              this.daytime = this.form.showDate.split(",");
            if (this.form.showTimeMorn) {
              if (this.form.sendType == 3) {
                this.time4 = this.form.showTimeMorn;
                console.log(1122);
              } else {
                this.time1 = this.form.showTimeMorn.split(",");
              }
@@ -1354,7 +1352,6 @@
      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");
    },
    // 查看模板
    previewGo() {