WXL
2025-03-04 83d83221778cf0213a979ebfcb4d75884038d9c1
src/views/patient/propaganda/QuestionnaireTask.vue
@@ -70,17 +70,37 @@
                  />
                </el-form-item>
                <el-form-item label="服务形式">
                  <el-checkbox-group v-model="checkList">
                    <el-checkbox
                  <el-radio-group v-model="checkList">
                    <el-radio
                      v-for="(item, index) in checkboxlist"
                      :key="index"
                      :label="item.value"
                    >
                      {{ item.label }}</el-checkbox
                      {{ item.label }}</el-radio
                    >
                  </el-checkbox-group>
                  </el-radio-group>
                </el-form-item>
                <el-form-item label="执行设置" prop="sendType">
                <el-form-item label="执行周期" prop="longTask">
                  <el-radio-group v-model="form.longTask">
                    <el-radio :label="0">自定义周期</el-radio>
                    <el-radio :label="1">长期任务</el-radio>
                  </el-radio-group>
                </el-form-item>
                <el-row :gutter="20" v-if="form.longTask">
                  <el-col :span="8">
                    <el-form-item label="周期时间" prop="name">
                      <el-input
                        v-model="form.sendDay"
                        placeholder="默认5天后"
                      ></el-input>
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-form-item
                  label="执行设置"
                  prop="sendType"
                  v-if="!form.longTask"
                >
                  <el-radio-group v-model="form.sendType">
                    <el-radio :label="1">时间段执行</el-radio>
                    <el-radio :label="3">时间点执行</el-radio>
@@ -89,7 +109,7 @@
                </el-form-item>
                <el-form-item
                  label="执行日期"
                  v-if="form.sendType == 1"
                  v-if="form.sendType == 1 && !form.longTask"
                  prop="daytime"
                >
                  <el-date-picker
@@ -106,7 +126,7 @@
                <el-form-item
                  label="执行时间点"
                  v-if="form.sendType == 3"
                  v-if="form.sendType == 3 && !form.longTask"
                  prop="daytime"
                >
                  <div style="display: flex">
@@ -125,7 +145,7 @@
                <el-form-item
                  label="执行时间段"
                  v-if="form.sendType == 1"
                  v-if="form.sendType == 1 && !form.longTask"
                  prop="daytime"
                >
                  <div style="display: flex">
@@ -176,12 +196,148 @@
                    </div>
                  </div>
                </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="2">病区关联</el-radio>
                    <el-radio label="3">疾病关联</el-radio>
                    <el-radio label="4">手术关联</el-radio>
                  </el-radio-group>
                </el-form-item>
                <el-row v-if="form.appltype == 1">
                  <el-col :span="20"
                    ><el-form-item label="适用科室" prop="region">
                      <el-select
                        v-model="deptcodesWards"
                        @remove-tag="removetag"
                        style="width: 400px"
                        size="medium"
                        multiple
                        filterable
                        placeholder="请选择科室"
                      >
                        <el-option
                          class="ruleFormaa"
                          v-for="item in belongDepts"
                          :key="item.deptCode"
                          :label="item.deptName"
                          :value="item.deptCode"
                        >
                        </el-option>
                      </el-select> </el-form-item
                  ></el-col>
                </el-row>
                <el-row v-if="form.appltype == 2">
                  <el-col :span="20"
                    ><el-form-item label="适用病区" prop="region">
                      <el-select
                        v-model="leavehospitaldistrictcodes"
                        style="width: 400px"
                        @remove-tag="removehpsp"
                        size="medium"
                        multiple
                        filterable
                        placeholder="请选择病区"
                      >
                        <el-option
                          class="ruleFormaa"
                          v-for="item in belongWards"
                          :key="item.districtCode"
                          :label="item.districtName"
                          :value="item.districtCode"
                        >
                        </el-option>
                      </el-select> </el-form-item
                  ></el-col>
                </el-row>
                <el-row v-if="form.appltype == 3">
                  <!-- <el-col :span="20"
                    ><el-form-item label="适用疾病" prop="region">
                      <el-select
                        v-model="illnesscodes"
                        style="width: 400px"
                        @remove-tag="removediagg"
                        size="medium"
                        :remote-method="remotedonor"
                        multiple
                        filterable
                        remote
                        placeholder="请选择病区"
                      >
                        <el-option
                          class="ruleFormaa"
                          v-for="item in donorchargeList"
                          :key="item.icdcode"
                          :label="item.icdname"
                          :value="item.icdcode"
                        >
                        </el-option>
                      </el-select> </el-form-item
                  ></el-col> -->
                  <div class="xinz-infs">
                    <el-form-item>
                      <template #label>
                        <el-tooltip
                          class="item"
                          effect="light"
                          content="选择好适用疾病后,可以方便您通过疾病诊断查找到对应的病人!"
                          placement="top-start"
                        >
                          <i class="el-icon-warning-outline"></i>
                        </el-tooltip>
                      </template>
                      <div style="margin-bottom: 10px">
                        <el-button
                          type="warning"
                          @click="$refs.child.handleAddpatient()"
                          >添加疾病诊断</el-button
                        >
                      </div>
                      <el-tag
                        v-for="tag in diagglist"
                        :key="tag.icdcode"
                        @close="removediagg(tag.icd10code)"
                        type="warning"
                        closable
                        :disable-transitions="false"
                      >
                        {{ tag.icdname }}
                      </el-tag>
                      <!-- <el-tag v-if="hasMore" type="info">+{{ remaining }} more</el-tag> -->
                    </el-form-item>
                  </div>
                </el-row>
                <el-row v-if="form.appltype == 4">
                  <el-col :span="20"
                    ><el-form-item label="适用手术" prop="region">
                      <el-select
                        v-model="operationcodes"
                        style="width: 400px"
                        @remove-tag="removeopera"
                        size="medium"
                        :remote-method="remoteopcode"
                        multiple
                        filterable
                        remote
                        placeholder="请选择手术"
                      >
                        <el-option
                          class="ruleFormaa"
                          v-for="item in baseoperaList"
                          :key="item.opcode"
                          :label="item.opdesc"
                          :value="item.opcode"
                        >
                        </el-option>
                      </el-select> </el-form-item
                  ></el-col>
                </el-row>
                <el-row>
                  <el-col :span="12"
                    ><el-form-item label="开场白" prop="kcb">
                      <el-input
                        type="textarea"
                          :rows="3"
                        :rows="3"
                        v-model="form.kcb"
                        placeholder="请输入开场白"
                      /> </el-form-item
@@ -212,6 +368,7 @@
                      placeholder="请点击右侧选择"
                    />
                    <el-button
                      style="margin-left: 10px"
                      type="primary"
                      icon="el-icon-edit"
                      @click="drawermb = true"
@@ -219,7 +376,7 @@
                    ></el-button>
                    <el-button
                      v-if="form.libtemplateid"
                      v-if="form.templatename"
                      type="success"
                      icon="el-icon-search"
                      @click="previewfnmb"
@@ -319,7 +476,7 @@
                      >
                    </el-col>
                    <el-col :span="1.5">
                    <!-- <el-col :span="1.5">
                      <el-button
                        type="danger"
                        plain
@@ -329,7 +486,7 @@
                        @click="handleDelete"
                        >删除</el-button
                      >
                    </el-col>
                    </el-col> -->
                    <!-- <el-col :span="1.5"> </el-col> -->
                  </el-row>
@@ -338,20 +495,20 @@
                    @details="detailhz"
                    @handleUpdate="handleUpdate"
                    :currentList="overallCase"
                    :tableLabel="tableLabelhz"
                    :tableLabel="tableLabelhzwb"
                    :serialnumber="false"
                    :searchTrue="true"
                    :multiplechoice="false"
                    :controlxz="false"
                    :typeinfo="2"
                  />
                  <pagination
                  <!-- <pagination
                    v-show="total > 0"
                    :total="total"
                    :page.sync="topqueryParams.pageNum"
                    :limit.sync="topqueryParams.pageSize"
                    @pagination="getList"
                  />
                  /> -->
                </el-row>
              </div>
            </div>
@@ -391,8 +548,8 @@
                ></el-input>
              </el-form-item>
              <el-select
                v-model="patientqueryParams.topica"
                placeholder="请选择患者来源"
                v-model="patientqueryParams.searchscope"
                placeholder="请选择患者范围"
              >
                <el-option
                  v-for="item in source"
@@ -422,20 +579,18 @@
            <!-- 选择患者列表 -->
            <SFtable
              ref="multipleTable"
              @handleUpdate="handleUpdate"
              @handleSelectionChange="handleSelectionChange"
              :currentList="patientuserList"
              :tableLabel="tableLabelhz"
              :heights="600"
              :serialnumber="false"
              :center="false"
              :typeinfo="3"
            />
          </el-row>
          <pagination
            v-show="patienttotal > 0"
            v-show="patienttotal > 0 && this.patientqueryParams.allhosp != 6"
            :total="patienttotal"
            :page.sync="patientqueryParams.pageNum"
            :limit.sync="patientqueryParams.pageSize"
            @pagination="handleAddpatient"
          />
        </div>
@@ -447,69 +602,173 @@
        >
      </span>
    </el-dialog>
    <el-dialog title="模板预览" :visible.sync="previewtf" width="60%">
      <div class="preview-left">
        <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-dialog title="模板预览" :visible.sync="previewtf" width="70%">
      <el-tabs type="border-card">
        <el-tab-pane label="模板基础数据"
          ><div class="preview-left">
            <el-form :model="objyl" label-width="100px" class="demo-objyl">
              <el-row :gutter="10">
                <el-col :span="14">
                  <el-form-item label="问卷分类" prop="categoryid">
                    <el-select
                      v-model="objyl.categoryid"
                      size="medium"
                      filterable
                      placeholder="请选择分类"
                    >
                      <el-option-group
                        v-for="group in optionsclass"
                        :key="group.id"
                        :label="group.name"
                      >
                        <el-option
                          v-for="item in group.svyLibTemplateCategoryList"
                          :key="item.id"
                          :label="item.name"
                          :value="item.id"
                        >
                        </el-option>
                      </el-option-group>
                    </el-select>
                  </el-form-item>
                </el-col>
                <el-col :span="10">
                  <el-form-item label="评价类型" prop="scoreType">
                    <el-select
                      v-model="objyl.scoreType"
                      placeholder="请选择分类"
                    >
                      <el-option
                        v-for="group in appraiselist"
                        :key="group.value"
                        :label="group.label"
                        :value="group.value"
                      >
                      </el-option>
                    </el-select>
                  </el-form-item>
                </el-col>
              </el-row>
              <el-row :gutter="20">
                <el-col :span="14">
                  <el-form-item label="可用状态" prop="isenable">
                    <el-radio-group v-model="objyl.isenable">
                      <el-radio
                        v-for="(item, index) in usable"
                        :label="item.value"
                        >{{ item.label }}</el-radio
                      >
                    </el-radio-group>
                  </el-form-item>
                </el-col>
                <el-col :span="8">
                  <el-form-item label="版本号" prop="name">
                    <el-input
                      v-model="objyl.version"
                      placeholder="默认1.0"
                    ></el-input>
                  </el-form-item>
                </el-col>
              </el-row>
              <el-form-item label="问卷标题" prop="svyname">
                <div style="width: 400px">
                  <el-input v-model="objyl.svyname"></el-input>
                </div>
              </el-form-item>
              <el-form-item label="问卷描述" prop="description">
                <el-input
                  type="textarea"
                  :rows="2"
                  placeholder="请输入内容"
                  v-model="objyl.description"
                >
              </el-radio-group>
            </div>
          </div>
          <!-- 多选 -->
          <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"
                </el-input
              ></el-form-item>
              <el-form-item label="问卷结束语" prop="conclusion">
                <el-input
                  type="textarea"
                  :rows="2"
                  placeholder="请输入内容"
                  v-model="objyl.conclusion"
                >
                  {{ items.optioncontent }}
                </el-checkbox>
              </el-checkbox-group>
            </div>
          </div>
          <!-- 填空 -->
          <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>
                </el-input
              ></el-form-item>
            </el-form></div
        ></el-tab-pane>
        <el-tab-pane label="问题展示"
          ><div class="preview-left">
            <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="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
                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="item.radioas"
                    clearable
                  >
                  </el-input>
                </div>
              </div>
            </div></div
        ></el-tab-pane>
      </el-tabs>
      <span slot="footer" class="dialog-footer">
        <!-- <el-button @click="previewGo">前往模板详情修改</el-button> -->
        <el-button type="primary" @click="previewFn">确认使用</el-button>
        <!-- <el-button @click="previewGo">保存模板详情修改</el-button> -->
        <el-button type="primary" @click="Departmenttreatment"
          >保存使用</el-button
        >
      </span>
    </el-dialog>
    <el-drawer
@@ -535,7 +794,7 @@
              <el-form-item label="问卷名称">
                <el-input v-model="topqueryParams.svyname"></el-input>
              </el-form-item>
              <el-form-item label="适用形式" prop="status">
              <!-- <el-form-item label="适用形式" prop="status">
                <el-select v-model="topqueryParams.topica" placeholder="请选择">
                  <el-option
                    v-for="item in taskoptions"
@@ -545,7 +804,7 @@
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              </el-form-item> -->
              <el-form-item>
                <el-button
                  type="primary"
@@ -584,6 +843,13 @@
        </div>
      </div>
    </el-drawer>
    <Optional-Form
      ref="child"
      :dialogVisiblepatient="dialogVisiblepatientjb"
      :overallCase="diagglist"
      @addoption="dialogVisiblepatientjb = false"
      @kkoption="dialogVisiblepatientjb = true"
    />
  </div>
</template>
@@ -591,20 +857,30 @@
import { messagelistpatient } from "@/api/patient/homepage";
import store from "@/store";
import {
  getTaskpatient,
  getlibrarylist,
  getFollowuplist,
  getTaskpatientQC,
  taskoperhospgetsondel,
  taskdiaghospgetsondel,
  getillnesslist,
  getbaseopera,
  Externallist,
  getQtemplatelist,
  getQtemplateobj,
  TaskQuestioncomit,
  Questionnairetaskget,
  gethetaskinfo,
  delhetaskinfo,
  deleteTaskQuestioncomit,
  Questionnairetaskgetson,
  getTaskQuestioncomit,
  depthospgetson,
  getillness,
  Editsingletask,
  getQtemplateclassify,
  taskdepthospgetsondel,
  taskdepthospgetsonlist,
  taskdiaggetlist,
  taskopergetlist,
} from "@/api/AiCentre/index";
import { listDept } from "@/api/system/dept";
import OptionalForm from "@/components/OptionalForm"; //正则组件
import SFtable from "@/components/SFtable"; //表格组件
import { MessageBox } from "element-ui";
export default {
  name: "ServiceDetails",
@@ -615,8 +891,14 @@
      id: "", //
      previewid: "", //任务模板传递id
      libName: "",
      templateor: false,
      objyl: {},
      overallCase: [], //选择患者总
      allpids: [],
      appraiselist: [],
      optionsclass: [],
      illnesslist: [],
      mode: [],
      libId: null, //模板库模板id
      Editprogress: 1, //编辑进度
      drawermb: false, //选择模板弹窗
@@ -624,25 +906,56 @@
      loading: false, // 遮罩层
      patientloading: false, // 遮罩层
      dialogVisiblepatient: false, //添加患者弹框
      dialogVisiblepatientjb: false, //添加疾病弹框
      deptcodesWards: [], //科室数据
      leavehospitaldistrictcodes: [], //病区数据
      operationcodes: [], //手术数据
      illnesscodes: [], //疾病数据
      radio: 1,
      checkboxlist: [],
      tableLabel: [],
      questionList: [],
      donorchargeList: [],
      baseoperaList: [],
      usable: [
        { value: "0", label: "可用" },
        { value: "1", label: "停用" },
      ],
      required: [
        { value: "1", label: "必填" },
        { value: "2", label: "不必填" },
      ],
      props: { multiple: true, value: "deptCode", label: "deptName" },
      propstask: { value: "deptCode", label: "deptName" },
      // 患者表单
      tableLabelhz: [
        { label: "出院日期", width: "150", prop: "inhosptime" },
        { label: "患者", width: "", prop: "name" },
        { label: "身份证", width: "200", prop: "idcardno" },
        { label: "性别", width: "", prop: "sex" },
        { label: "年龄", width: "", prop: "age" },
        { label: "医生", width: "", prop: "drname" },
        { label: "科室", width: "", prop: "deptName" },
        { label: "就诊/出院日期", width: "280", prop: "inhosptime" },
        { label: "责任护士", width: "", prop: "nurseName" },
        { label: "主治医生", width: "", prop: "drname" },
        { label: "科室", width: "240", prop: "dept" },
        { label: "病区", width: "240", prop: "leavehospitaldistrictname" },
      ],
      // 患者表单
      tableLabelhzwb: [
        { label: "出院日期", width: "150", prop: "endtime" },
        { label: "患者", width: "", prop: "name" },
        { 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: "150", prop: "leavehospitaldistrictname" },
      ],
      tableLabelwj: [
        { label: "序号", width: "", prop: "svyid" },
        { label: "问卷名称", width: "", prop: "svyname" },
        { label: "问卷概述", width: "", prop: "description" },
        { label: "问卷标题", width: "", prop: "svyname" },
        { label: "问卷描述", width: "", prop: "description" },
        { label: "修改日期", width: "", prop: "updateTime" },
        { label: "创建人", width: "", prop: "createBy" },
      ],
@@ -655,7 +968,7 @@
      preachform: [
        { label: "多媒体", value: 1 },
        { label: "纸质", value: 2 },
        { label: "电话", value: 3 },
        { label: "智能语音", value: 3 },
        { label: "短信", value: 4 },
        { label: "微信公众号", value: 5 },
        { label: "微信小程序", value: 6 },
@@ -676,7 +989,7 @@
        pageNum: 1, //
        pageSize: 10,
      },
      checkList: [],
      checkList: "",
      deliverytopqueryParams: {
        pageNum: 1, //
        pageSize: 10,
@@ -684,7 +997,9 @@
      patientqueryParams: {
        pageNum: 1, //
        pageSize: 10,
        topica:0,//0全部1科室2病区
        topica: 1, //0全部1科室2病区
        leavehospitaldistrictcodes: [],
        leaveldeptcodes: [],
      },
      topicoptions: [{ children: [{ children: [] }] }],
      showSearch: true, //
@@ -703,6 +1018,10 @@
      patientuserList: [], //选择患者列表
      sonuserList: [], //选中患者列表
      delvariableList: [], //删除变量临时存储
      longtype: [
        { value: 0, label: "自定义周期" },
        { value: 1, label: "长期任务" },
      ],
      variableList: [
        {
          name: "姓名",
@@ -717,7 +1036,7 @@
          default: true,
        },
        {
          name: "电话",
          name: "智能语音",
          value: "${dhh}",
          fill: "派发时自动匹配",
          default: true,
@@ -737,7 +1056,7 @@
          default: true,
        },
        {
          name: "电话",
          name: "智能语音",
          value: "${dhh}",
          fill: "派发时自动匹配",
          default: true,
@@ -749,16 +1068,21 @@
      form: {
        patTaskRelevances: [],
        sendType: 1,
        longTask: 0,
        templatename: "",
        templateid: null,
        libtemplateid: null,
        kcb:'亲爱的患者-家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访问卷。',
        jsy:'生活上要劳逸结合,注意休息和营养,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!',
        kcb: "亲爱的患者/家属,您好!我们是景宁人民医院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,观看这份宣教资讯。",
        jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次宣教内容就到这里,祝您身体健康!",
      },
      taskoptions: [
        {
          value: "1",
          label: "出院病人",
        },
        {
          value: "4",
          label: "在院病人",
        },
        {
          value: "2",
@@ -768,11 +1092,19 @@
          value: "3",
          label: "体检病人",
        },
        {
          value: "6",
          label: "院外患者",
        },
        {
          value: "5",
          label: "手术病人",
        },
      ],
      source: [
        {
          value: 0,
          label: "所有患者",
          label: "所属患者",
        },
        {
          value: 1,
@@ -787,7 +1119,7 @@
      tasktypes: [
        {
          value: 1,
          label: "监测评估",
          label: "心电随访",
        },
        {
          value: 2,
@@ -795,7 +1127,7 @@
        },
        {
          value: 3,
          label: "门诊随访",
          label: "影像随访",
        },
        {
          value: 4,
@@ -803,22 +1135,27 @@
        },
        {
          value: 5,
          label: "复诊管理",
          label: "体检随访",
        },
        {
          value: 6,
          label: "满意度调查",
          value: 11,
          label: "医技随访",
        },
        {
          value: 7,
          label: "患者报告",
        },
        {
          value: 8,
          label: "其他通知",
          value: 10,
          label: "专科随访",
        },
      ],
      // 科室/病区
      belongWards: [],
      deptlist: [],
      hosplist: [],
      diagglist: [],
      operlist: [],
      tempDetpRelevanceslist: [], //科室数据
      tempDetpRelevanceslistform: [], //科室数据
      tempbelongWards: [], //病区数据
      tempbelongWardsform: [], //病区数据
      rules: {
        taskName: [
          { required: true, message: "任务名称不能为空", trigger: "blur" },
@@ -829,43 +1166,63 @@
            trigger: "blur",
          },
        ],
        taskDesc: [
          { required: true, message: "任务描述不能为空", trigger: "blur" },
        ],
        sendType: [
          { required: true, message: "发送设置不能为空", trigger: "blur" },
        ],
        deptcode: [
          { required: true, message: "适用科室不能为空", trigger: "blur" },
        ],
        // leavehospitaldistrictcode: [
        //   { required: true, message: "适用病区不能为空", trigger: "blur" },
        // ],
      },
      belongDepts: [],
      // 科室院区查询入参
      queryParamsdept: {},
      quote: false,
      serviceType: null,
    };
  },
  components: { SFtable },
  components: { SFtable, OptionalForm },
  created() {
    this.appraiselist = store.getters.appraiselist;
    this.belongWards = store.getters.belongWards;
    this.belongDepts = store.getters.belongDepts;
    this.mode = store.getters.Askmode;
    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.listDept();
    this.Acquisitiontype();
    this.getillnesslist();
    this.Getdetails();
    this.getQtemplateclassify();
  },
  activated() {
    if (this.id != this.$route.query.id) {
      this.listDept();
      this.Acquisitiontype();
      this.Getdetails();
      this.getQtemplateclassify();
    }
  },
  computed: {
    displayedTags() {
      // 返回前10个tag
      return this.illnesslist.slice(0, 10);
    },
    hasMore() {
      // 判断是否有更多的tag
      return this.illnesslist.length > 10;
    },
    remaining() {
      // 计算剩余的tag数量
      return this.illnesslist.length - 10;
    },
  },
  methods: {
    // {
    //   姓名: { "${name}": "龙傲天" },
    //   地址: { "${dzz}": "龙宫" },
    //   电话: { "${dhh}": "八个八" },
    // }
    // 变量转换对象转数组
    convertFormat1ToFormat2(data) {
      let result = [];
@@ -894,7 +1251,7 @@
      let queryParams = {
        pageNum: this.topqueryParams.pageNum,
        pageSize: this.topqueryParams.pageSize,
        isavailable: "",
        isenable: "",
      };
      this.currenttype = this.$route.query.type;
      this.title = "问卷内容列表";
@@ -911,15 +1268,20 @@
            label: "纸质",
          },
          {
            value: "4",
            label: "短信",
          },
          {
            value: "5",
            label: "微信公众号",
          },
          { label: "微信小程序", value: 6 },
        ];
      } else if (this.form.serviceType == 6) {
        this.checkboxlist = [
          {
            value: "3",
            label: "电话",
            label: "智能语音",
          },
          {
            value: "4",
@@ -934,12 +1296,17 @@
            label: "微信小程序",
          },
          {
            value: "8",
            label: "智能机器人",
          },
          // {
          //   value: "8",
          //   label: "智能机器人",
          // },
        ];
      } else if (this.form.serviceType == 7) {
      } else if (
        this.form.serviceType == 7 ||
        this.form.serviceType == 10 ||
        this.form.serviceType == 11 ||
        this.form.serviceType == 9
      ) {
        this.checkboxlist = [
          {
            value: "1",
@@ -951,7 +1318,7 @@
          },
          {
            value: "3",
            label: "电话",
            label: "智能语音",
          },
          {
            value: "4",
@@ -965,8 +1332,17 @@
            value: "6",
            label: "微信小程序",
          },
          {
            value: "7",
            label: "术后随访",
          },
        ];
      } else if (this.form.serviceType == 2 || this.form.serviceType == 3) {
      } else if (
        this.form.serviceType == 2 ||
        this.form.serviceType == 3 ||
        this.form.serviceType == 5 ||
        this.form.serviceType == 4
      ) {
        this.checkboxlist = [
          {
            value: "1",
@@ -974,7 +1350,7 @@
          },
          {
            value: "3",
            label: "电话",
            label: "智能语音",
          },
          {
            value: "4",
@@ -989,10 +1365,10 @@
            label: "微信小程序",
          },
          {
            value: "8",
            label: "智能机器人",
          },
          // {
          //   value: "8",
          //   label: "智能机器人",
          // },
        ];
      }
      getQtemplatelist(this.topqueryParams).then((response) => {
@@ -1022,26 +1398,61 @@
          xh: 1,
        },
      ];
      if (this.checkList[0]) {
        this.form.preachform = this.checkList.join(",");
      if (this.form.appltype == 1) {
        this.leavehospitaldistrictcodes = [];
        this.operationcodes = [];
        this.illnesscodes = [];
      } else if (this.form.appltype == 2) {
        this.deptcodesWards = [];
        this.operationcodes = [];
        this.illnesscodes = [];
      } else if (this.form.appltype == 3) {
        this.deptcodesWards = [];
        this.leavehospitaldistrictcodes = [];
        this.operationcodes = [];
      } else if (this.form.appltype == 4) {
        this.deptcodesWards = [];
        this.illnesscodes = [];
        this.leavehospitaldistrictcodes = [];
      }
      if (this.checkList) {
        this.form.preachform = this.checkList;
      } else {
        this.$modal.msgError("请选择服务类型");
        return;
      }
      if (!this.form.patTaskRelevances[0]) {
      console.log(this.operationcodes[0]);
      console.log(this.operationcodes);
      if (
        this.deptcodesWards[0] ||
        this.leavehospitaldistrictcodes[0] ||
        this.diagglist[0] ||
        this.operationcodes[0]
      ) {
      } else {
        this.$modal.msgError("请选择任务关联条件");
        return;
      }
      if (!this.form.patTaskRelevances[0] && !this.form.longTask) {
        this.$modal.msgError("请选择病人");
        return;
      }
      if (!this.form.templatename) {
      if (!this.form.templatename && !this.templateor) {
        this.$modal.msgError("未选择模板");
        return;
      }
      if ((this.form.sendType == 1 && this.time1) || this.form.sendType == 2) {
      } else if (this.form.sendType == 3 && this.time4) {
      } else if (
        (this.form.sendType == 3 && this.time4) ||
        this.form.longTask
      ) {
      } else {
        return this.$modal.msgError("时间信息缺失");
      }
      const filteredArray = this.variableList.filter(
        (item) =>
          item.name !== "姓名" && item.name !== "电话" && item.name !== "地址"
@@ -1056,12 +1467,19 @@
        this.form.type = this.$route.query.type;
      }
      this.form.serviceType = this.serviceType;
      this.form.deptcode = this.deptcodesWards.join(",");
      this.form.leavehospitaldistrictcode =
        this.leavehospitaldistrictcodes.join(",");
      this.form.opcode = this.operationcodes.join(",");
      this.form.icd10code = this.diagglist
        .map((item) => item.icdcode)
        .join(",");
      Editsingletask(this.form).then((res) => {
        if (res.code == 200) {
          if (this.form.taskid) {
            this.$modal.msgSuccess("新增成功");
          } else {
            this.$modal.msgSuccess("修改成功");
          } else {
            this.$modal.msgSuccess("新增成功");
          }
          this.$router.push({
            path: "/followvisit/tasklist",
@@ -1070,19 +1488,27 @@
        }
      });
    },
    // ----------------------表格子组件事件
    // 确认选择模板放入任务模板
    // ----------------------表格子组件事件
    // 选择预览
    selectfn(row, type) {
      // 模板情况下获取模板信息
      if (type == 1) {
        this.libName = row.svyname;
        this.libId = row.svyid;
        this.Tasktemplate = row;
        this.questionList = row.svyTemplateLibScripts;
        getQtemplateobj({ svyid: row.svyid }).then((res) => {
          if (res.code == 200) {
            this.objyl = res.rows[0];
            if (this.form.longTask) {
              this.objyl.longTemp = 1;
            }
            this.tempDetpRelevanceslist = [];
            this.tempbelongWards = [];
            this.objyl.suitway = this.objyl.suitway.split(",");
            this.questionList = res.rows[0].svyTemplateLibScripts;
            this.getillness(row.svyid);
            this.previewtf = true;
          }
        });
@@ -1095,14 +1521,73 @@
    },
    // 预览
    previewfnmb() {
      console.log(this.form);
      getQtemplateobj({ svyid: this.form.libtemplateid }).then((res) => {
      getTaskQuestioncomit(this.form.templateid).then((res) => {
        if (res.code == 200) {
          this.questionList = res.rows[0].svyTemplateLibScripts;
          console.log(res, "预览数据");
          this.objyl = res.data;
          if (this.objyl.suitway)
            this.objyl.suitway = this.objyl.suitway.split(",");
          this.getillness(this.form.libtemplateid);
          this.previewtf = true;
          getQtemplateobj({ svyid: this.form.libtemplateid }).then((res) => {
            if (res.code == 200) {
              this.questionList = res.rows[0].svyTemplateLibScripts;
              this.objyl.svyTemplateLibScripts =
                res.rows[0].svyTemplateLibScripts;
            }
          });
        }
      });
    },
    getillness(id) {
      if (id) {
        getillness({ outid: id, type: 5 }).then((res) => {
          this.illnesslist = res.rows;
          this.illnesslist.forEach((item) => {
            item.icdname = item.icd10name;
          });
        });
      }
    },
    getillnesslist() {
      getillnesslist({
        pageNum: 1,
        pageSize: 1000,
      }).then((res) => {
        this.donorchargeList = res.rows;
      });
      getbaseopera({
        pageNum: 1,
        pageSize: 1000,
      }).then((res) => {
        this.baseoperaList = res.rows;
      });
    },
    // 手术查询
    remoteopcode(name) {
      if (name) {
        getillnesslist({
          pageNum: 1,
          pageSize: 1000,
          opdesc: name,
        }).then((res) => {
          this.donorchargeList = res.rows;
        });
      }
    },
    // 疾病查询
    remotedonor(name) {
      if (name) {
        getbaseopera({
          pageNum: 1,
          pageSize: 1000,
          opdesc: name,
        }).then((res) => {
          this.baseoperaList = res.rows;
        });
      }
    },
    // 处理问题层变量
    Variablehandling(arr, type) {
@@ -1121,7 +1606,6 @@
            }
          });
        });
        console.log(Variablist, "Variablist");
        const Aarr = Variablist.filter(
          (obj, index, self) =>
            index ===
@@ -1134,42 +1618,79 @@
    },
    // 子任务二级弹框
    handleAddpatient(row) {
      console.log(this.overallCase, "ssaaa");
      this.allpids = [];
      this.overallCase.forEach((item) => {
        this.allpids.push(item.patid);
      });
      if (this.patientqueryParams.allhosp == 1) {
      if (
        this.patientqueryParams.allhosp == 1 ||
        (this.patientqueryParams.allhosp == 1 &&
          this.patientqueryParams.cry == 1)
      ) {
        this.tableLabelhz = [
          // { label: "入院日期", width: "170", prop: "starttime" },
          { label: "出院日期", width: "150", prop: "endtime" },
          { label: "患者", width: "", prop: "name" },
          { 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: "", prop: "deptName" },
          { label: "就诊/出院日期", width: "280", prop: "inhosptime" },
          { label: "科室", width: "180", prop: "dept" },
          { label: "病区", width: "150", prop: "leavehospitaldistrictname" },
        ];
      } else if (this.patientqueryParams.allhosp == 2) {
      } else if (this.patientqueryParams.allhosp == 4) {
        this.tableLabelhz = [
          { label: "入院日期", width: "150", prop: "starttime" },
          { label: "患者", width: "", prop: "name" },
          { label: "身份证", width: "200", prop: "idcardno" },
          { label: "性别", width: "", prop: "sex" },
          { label: "年龄", width: "", prop: "age" },
          { label: "诊断", width: "", prop: "diagname" },
          { label: "就诊科室", width: "", prop: "deptName" },
          { label: "入院日期", width: "", prop: "inhosptime" },
          { label: "创建人", width: "", prop: "createBy" },
          { label: "出院天数", width: "", prop: "endDay" },
          { label: "责任护士", width: "", prop: "nurseName" },
          { label: "医生", width: "", prop: "drname" },
          { label: "科室", width: "180", prop: "dept" },
          { label: "病区", width: "150", prop: "leavehospitaldistrictname" },
        ];
      }
      if (this.allpids[0]) {
        this.patientqueryParams.pids = this.allpids;
        console.log(this.patientqueryParams.pids);
      } 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";
      }
      // 来源判断
      getTaskpatient(this.patientqueryParams).then((response) => {
        console.log(response);
      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.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;
        this.patientuserList.forEach((item) => {
          if (item.endtime) {
            item.endDay = this.daysBetween(item.endtime);
          }
        });
        this.patienttotal = response.total;
        this.loading = false;
        this.Restorecheck();
@@ -1181,8 +1702,7 @@
    handleExport() {},
    // 选择患者表数据
    handleSelectionChange(selection) {
      console.log("多选患者");
      this.SelectPatientslist = selection;
      this.SelectPatientslist = structuredClone(selection);
      this.multiple = !selection.length;
      // 赋值给整体选中数组
@@ -1192,6 +1712,14 @@
          item.isoperation = 1;
          item.patid = item.id;
          item.hospType = this.patientqueryParams.allhosp;
          item.sfzh = item.idcardno;
          item.deptCode = item.deptcode;
          item.deptName = item.dept;
          item.admindate = item.inhosptime;
          item.sfzh = item.idcardno;
          if (this.patientqueryParams.allhosp == 6) {
            item.patfrom = 1;
          }
          this.overallCase.push(item);
          this.form.patTaskRelevances.push(item);
        }
@@ -1199,15 +1727,12 @@
    },
    // 切换页后恢复选中
    Restorecheck() {
      console.log(this.overallCase, "this.overallCase");
      const allid = this.overallCase.map((item) => item.patid);
      const overlap = this.patientuserList.filter((value) => {
        return allid.includes(value.patid);
      });
      // 保持ids和当前页面的同步性
      this.SelectPatientslist = overlap;
      console.log(this.SelectPatientslist, "进入分页SelectPatientslist");
      this.toggleSelection(overlap);
    },
    // 挂载选择状态
@@ -1220,7 +1745,6 @@
          });
          this.decision = false;
        });
        console.log(123);
      } else {
        this.$refs.multipleTable.clearSelection();
      }
@@ -1233,26 +1757,74 @@
          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("删除成功");
        });
    },
    getList() {},
    handleQuery() {
      // 获取外部患者
      console.log(this.patientqueryParams.allhosp, "aaalll");
      if (this.patientqueryParams.allhosp == 6) {
        this.Externallist();
        console.log();
        return;
      }
      if (this.patientqueryParams.topica == 0) {
        this.patientqueryParams.leavehospitaldistrictcodes =
          store.getters.leavehospitaldistrictcodes;
        this.patientqueryParams.leaveldeptcodes = store.getters.leaveldeptcodes;
      } else if (topica == 1) {
      } else if (this.patientqueryParams.topica == 1) {
        this.patientqueryParams.leavehospitaldistrictcodes = null;
        this.patientqueryParams.leaveldeptcodes = store.getters.leaveldeptcodes;
      } else if (topica == 2) {
      } else if (this.patientqueryParams.topica == 2) {
        this.patientqueryParams.leavehospitaldistrictcodes =
          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();
    },
    // 获取外部患者导入列表
    Externallist() {
      this.tableLabelhz = [
        { label: "患者", width: "", prop: "name" },
        { label: "身份证", width: "200", prop: "idcardno" },
        { label: "性别", width: "", prop: "sex" },
        { label: "年龄", width: "", prop: "age" },
        { label: "出院天数", width: "", prop: "endDay" },
      ];
      this.patientqueryParams.pageSize = 1000;
      Externallist(this.patientqueryParams).then((response) => {
        this.patientuserList = response.rows;
        this.patientuserList.forEach((item) => {
          if (item.endtime) {
            item.endDay = this.daysBetween(item.endtime);
          }
        });
        this.dialogVisiblepatient = true;
        this.patienttotal = response.total;
        this.loading = false;
      });
    },
    resetQuery() {},
    handleQuerymb() {
      getQtemplatelist(this.topqueryParams).then((response) => {
@@ -1281,15 +1853,17 @@
      this.form = {
        patTaskRelevances: [],
        sendType: 1,
        sendDay: 5,
        templatename: "",
        templateid: null,
        libtemplateid: null,
        kcb:'亲爱的患者-家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访问卷。',
        jsy:'生活上要劳逸结合,注意休息和营养,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!',
        kcb: "亲爱的患者/家属,您好!我们是景宁人民医院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访问卷。",
        jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!",
      };
      this.questionList = [];
      if (this.id) {
        Questionnairetaskget({ taskid: this.id }).then((res) => {
        Questionnairetaskgetson({ taskid: this.id }).then((res) => {
          let filteredArray = "";
          if (res.code == 200) {
            this.form = res.data;
@@ -1298,36 +1872,157 @@
              ? this.form.patTaskRelevances
              : [];
            this.overallCase = this.form.patTaskRelevances.concat();
            this.checkList = this.form.preachform.split(",");
            console.log(this.form, "this.form");
            this.checkList = this.form.preachform;
            this.overallCase.forEach((item) => {
              if (item.endtime) {
                item.endDay = this.daysBetween(item.endtime);
              }
            });
            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(",");
              }
            }
            // 获取任务科室
            if (this.form.taskid) {
              this.listDept();
            }
            if (this.form.showTimeNoon)
              this.time2 = this.form.showTimeNoon.split(",");
            if (this.form.showTimeNight)
              this.time3 = this.form.showTimeNight.split(",");
            console.log(1122);
            filteredArray = this.convertFormat1ToFormat2(this.form.textParam);
            this.variableList = this.transitionList.concat(filteredArray);
          } else {
            this.$modal.msgError(res.code);
          }
          if (this.newadd) {
            this.neWaddfn();
          }
        });
      }
    },
    // 获取科室列表
    // 依照新增时处理
    neWaddfn() {
      this.id = null;
      this.form.taskName = "";
      this.form.taskid = null;
      this.overallCase = [];
      this.form.patTaskRelevances = [];
      this.daytime = []; //日期
      this.applydaytime = []; //计算日期
      this.time1 = ""; //上午时间段
      this.time2 = ""; //下午时间段
      this.time3 = ""; //晚上时间段
      this.time4 = ""; //晚上时间段
    },
    // 获取各类
    listDept() {
      listDept().then((res) => {
        this.topicoptions = this.handleTree(res.data, "deptId");
        console.log(this.topicoptions, "topicoptions");
      this.leavehospitaldistrictcodes = [];
      this.deptcodesWards = [];
      this.queryParamsdept.taskId = this.form.taskid;
      taskdepthospgetsonlist(this.queryParamsdept).then((res) => {
        if (res.code == 200) {
          let arr = res.rows;
          arr.forEach((item) => {
            if (item.deptType == 1) {
              this.deptlist.push(item);
              this.deptcodesWards.push(item.deptCode);
            } else if (item.deptType == 2) {
              this.hosplist.push(item);
              this.leavehospitaldistrictcodes.push(item.deptCode);
            }
          });
        }
      });
      taskdiaggetlist(this.queryParamsdept).then((res) => {
        if (res.code == 200) {
          let arr = res.rows;
          arr.forEach((item) => {
            getillnesslist({
              icdcode: item.icd10code,
            }).then((res) => {
              item.icdname = res.rows[0].icdname;
            this.diagglist.push(item);
            });
            this.illnesscodes.push(item.icd10code);
          });
        }
      });
      taskopergetlist(this.queryParamsdept).then((res) => {
        if (res.code == 200) {
          let arr = res.rows;
          arr.forEach((item) => {
            this.operlist.push(item);
            this.operationcodes.push(item.opcode);
          });
        }
      });
    },
    // 任务科室删除触发
    removetag(row) {
      let result = this.deptlist
        .filter((item) => item.deptCode == row)
        .map((item) => item.id);
      if (result.length) {
        taskdepthospgetsondel(result).then((res) => {
          if (res.code) {
            this.$modal.msgSuccess("删除成功");
          }
        });
      }
    },
    // 院区删除删除触发
    removehpsp(row) {
      let result = this.hosplist
        .filter((item) => item.deptCode == row)
        .map((item) => item.id);
      if (result.length) {
        taskdepthospgetsondel(result).then((res) => {
          if (res.code) {
            this.$modal.msgSuccess("删除成功");
          }
        });
      }
    },
    // 手术删除触发
    removeopera(row) {
      let result = this.operlist
        .filter((item) => item.opcode == row)
        .map((item) => item.id);
      if (result.length) {
        taskoperhospgetsondel(result).then((res) => {
          if (res.code) {
            this.$modal.msgSuccess("删除成功");
          }
        });
      }
    },
    // 疾病删除触发
    removediagg(row) {
      let result = this.diagglist
        .filter((item) => item.icd10code == row)
        .map((item) => item.id);
      if (result.length) {
        taskdiaghospgetsondel(result).then((res) => {
          if (res.code) {
            this.diagglist=this.diagglist.filter(item => item.icd10code != row);
            this.$modal.msgSuccess("删除成功");
          }
        });
      }
    },
    getQtemplateclassify() {
      getQtemplateclassify({}).then((res) => {
        this.optionsclass = res.rows;
      });
    },
    // 新增派送患者
@@ -1344,18 +2039,15 @@
      this.variableList.splice(index, 1);
      row.isoperation = 3;
      this.delvariableList.push(row);
      console.log(index, row);
    },
    // 时间----------
    changeTime(row) {
      console.log(row, "时间");
      this.processingTime();
    },
    Totaldate(row) {
      console.log(row, "时间");
      this.form.sendTimeslot = [{ begantime: row, endtime: row, xh: 1 }];
      this.form.showTimeMorn = row;
      console.log(this.form.sendTimeslot, "时间");
    },
    changeTimeday(row) {
      const startDate = new Date(row[0]);
@@ -1424,54 +2116,105 @@
        query: { id: this.previewid, task: true, data: this.form },
      });
    },
    // 保存/更新任务模板
    previewFn() {
      let id = this.Tasktemplate.id;
      this.Tasktemplate.id = null;
      console.log(this.Tasktemplate);
      if (Array.isArray(this.objyl.suitway)) {
        this.objyl.suitway = this.objyl.suitway.join(",");
      }
      this.objyl.templateid = this.objyl.svyid;
      this.Tasktemplate.svyTemplateLibScripts.forEach((item) => {
        item.svyTaskTemplateTargetoptions = item.svyLibTemplateTargetoptions;
      this.objyl.isoperation = 1;
      this.objyl.taskid = this.form.taskid;
      if (this.objyl.id) {
        deleteTaskQuestioncomit(this.objyl.id).then((res) => {
          if (res.code == 200) {
            (this.objyl.id = null),
              TaskQuestioncomit(this.objyl).then((response) => {
                this.previewtf = false;
                this.form.libtemplateid = this.objyl.svyid;
                this.form.templateid = response.data;
                this.form.templatename = this.objyl.svyname;
                this.$modal.msgSuccess("选择模板成功");
              });
          }
        });
      } else {
        TaskQuestioncomit(this.objyl).then((response) => {
          this.previewtf = false;
          this.form.libtemplateid = this.objyl.svyid;
          this.form.templateid = response.data;
          this.form.templatename = this.objyl.svyname;
          this.$modal.msgSuccess("选择模板成功");
        });
      }
    },
    // 保存科室/病区
    putbelongDepts(id) {
      this.tempDetpRelevanceslistform.forEach((item) => {
        item.tempid = id;
      });
      this.Tasktemplate.svyTaskTemplateScriptVOS =
        this.Tasktemplate.svyTemplateLibScripts;
      this.Tasktemplate.templateid = id;
      this.Tasktemplate.isoperation = 1;
      TaskQuestioncomit(this.Tasktemplate).then((response) => {
        this.previewtf = false;
        this.form.templateid = response.data;
        this.form.libtemplateid = this.libId;
        this.form.templatename = this.libName;
        this.$modal.msgSuccess("选择模板成功");
      this.tempbelongWardsform.forEach((item) => {
        item.tempid = id;
      });
      depthospgetson(this.tempDetpRelevanceslistform).then((res) => {
        if (res.code == 200) {
          this.$modal.msgSuccess("科室更新成功");
          this.tempDetpRelevanceslistform = [];
        }
      });
      depthospgetson(this.tempbelongWardsform).then((res) => {
        if (res.code == 200) {
          this.$modal.msgSuccess("病区更新成功");
          this.tempbelongWardsform = [];
        }
      });
    },
    // 处理服务形式
    formatFn(type) {
      console.log(this.preachform, "preachform");
      console.log(this.checkList, "checklist");
      let list = [];
      let formlist = [];
      if (type == 1) {
        this.preachform.forEach((item) => {
          this.checkList.forEach((obj) => {
            if (item.label == obj) {
              list.push(item.value);
    // 科室处理
    Departmenttreatment() {
      if (!this.form.taskid) {
        this.templateor = true;
        MessageBox.confirm(
          "当前为新增任务未保存不可关联模板,是否先保存任务?",
          "功能提示",
          {
            confirmButtonText: "保存任务",
            cancelButtonText: "暂存模板",
            type: "warning",
          }
        )
          .then(() => {
            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.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;
          });
        });
        console.log(list, "list");
        this.form.preachform = list.join(",");
      } else {
        console.log(this.form.preachform, "this.form.preachform");
        formlist = this.form.preachform.split(",");
        console.log(11);
        this.preachform.forEach((item) => {
          formlist.forEach((obj) => {
            if (item.value == obj) {
              list.push(item.label);
            }
          });
        });
        this.checkList = list;
        setTimeout(() => {
          this.previewFn();
        }, 1000);
      }
    },
  },
@@ -1551,6 +2294,14 @@
    }
  }
}
.xinz-infs {
  font-size: 18px;
  line-height: 48px;
  .el-tag + .el-tag {
    margin-left: 10px;
  }
}
// .leftvlue-jbxx {
//   margin-bottom: 50px;
//   font-size: 20px;
@@ -1573,9 +2324,9 @@
  //   margin: 20px;
  padding: 30px;
  background: #ffff;
  border: 1px solid #dcdfe6;
  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
    0 0 6px 0 rgba(0, 0, 0, 0.04);
  // border: 1px solid #dcdfe6;
  // -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
  //   0 0 6px 0 rgba(0, 0, 0, 0.04);
  .scriptTopic-dev {
    margin-bottom: 25px;
    font-size: 20px !important;
@@ -1645,7 +2396,7 @@
// }
::v-deep.el-radio-group {
  span {
    font-size: 24px;
    font-size: 18px;
  }
}
::v-deep.el-input.is-disabled .el-input__inner {
@@ -1656,7 +2407,7 @@
}
::v-deep.el-checkbox-group {
  span {
    font-size: 24px;
    font-size: 18px;
  }
}
</style>