WXL
2025-03-04 57a7537f38f78499218c2d23f4c09a26add08c5a
src/views/patient/propaganda/particty.vue
@@ -70,22 +70,50 @@
                  />
                </el-form-item>
                <el-form-item label="服务形式">
                  <el-checkbox-group v-model="checkList">
                    <el-checkbox
                  <el-radio-group
                    v-model="checkList"
                    @change="handleCheckedCitiesChange"
                  >
                    <el-radio
                      v-for="(item, index) in checkboxlist"
                      :key="index"
                      :label="item.value"
                      @change="checkboxChange($event, item.value)"
                    >
                      {{ item.label }}</el-checkbox
                      {{ item.label }}</el-radio
                    >
                  </el-checkbox-group>
                  </el-radio-group>
                </el-form-item>
                <el-form-item label="是否长期" prop="longTask">
                <!-- <div class="xinz-infs">
                  <el-form-item label="服务执行顺序" prop="daytime">
                    <el-tag
                      :key="tag.label"
                      type="success"
                      v-for="(tag, index) in foncheckList"
                      closable
                      :disable-transitions="false"
                      @close="handleClosetag(tag)"
                    >
                      ({{ index + 1 }}){{ tag.label }}
                    </el-tag>
                  </el-form-item>
                </div> -->
                <el-form-item label="执行周期" prop="longTask">
                  <el-radio-group v-model="form.longTask">
                    <el-radio :label="0">普通任务</el-radio>
                    <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"
@@ -186,13 +214,23 @@
                    </div>
                  </div>
                </el-form-item>
                <el-row>
                <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="form.deptcode"
                        v-model="deptcodesWards"
                        @remove-tag="removetag"
                        style="width: 400px"
                        size="medium"
                        multiple
                        filterable
                        placeholder="请选择科室"
                      >
@@ -207,28 +245,15 @@
                      </el-select> </el-form-item
                  ></el-col>
                </el-row>
                <el-row>
                <el-row v-if="form.appltype == 2">
                  <el-col :span="20"
                    ><el-form-item label="适用病区" prop="region">
                      <!-- <el-cascader
                      style="width: 400px"
                      v-model="form.leavehospitaldistrictcode"
                      :options="topicoptions"
                      :props="propstask"
                      :show-all-levels="false"
                      clearable
                    >
                      <template slot-scope="{ node, data }">
                        <span>{{ data.deptName }}</span>
                        <span v-if="!node.isLeaf">
                          ({{ data.children.length }})
                        </span>
                      </template>
                    </el-cascader> -->
                      <el-select
                        v-model="form.leavehospitaldistrictcode"
                        v-model="leavehospitaldistrictcodes"
                        style="width: 400px"
                        @remove-tag="removehpsp"
                        size="medium"
                        multiple
                        filterable
                        placeholder="请选择病区"
                      >
@@ -238,6 +263,66 @@
                          :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">
                  <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"
                        :remote-method="remoteopcode"
                        size="medium"
                        multiple
                        filterable
                        remote
                        placeholder="请选择手术"
                      >
                        <el-option
                          class="ruleFormaa"
                          v-for="item in baseoperaList"
                          :key="item.icdcode"
                          :label="item.icdname"
                          :value="item.icdcode"
                        >
                        </el-option>
                      </el-select> </el-form-item
@@ -279,6 +364,10 @@
                      placeholder="请点击右侧选择"
                    />
                    <el-button
                      v-if="
                        (form.templateid && form.sendState == 1) ||
                        !form.templateid
                      "
                      style="margin-left: 10px"
                      type="primary"
                      icon="el-icon-edit"
@@ -290,7 +379,7 @@
                      v-if="form.templatename"
                      type="success"
                      icon="el-icon-search"
                      @click="previewfnmb"
                      @click="previewfnmb()"
                      circle
                    ></el-button>
                  </el-form-item>
@@ -349,7 +438,7 @@
      </div>
      <!-- 任务详情 -->
      <div v-if="Editprogress == 2">
        <el-alert title="在本阶段选择宣教病人" type="success" effect="dark">
        <el-alert title="在本阶段选择病人" type="success" effect="dark">
        </el-alert>
        <div class="leftvlue-jbxx">
          <div class="examine-jic">
@@ -426,7 +515,7 @@
          </div>
        </div>
        <el-button type="primary" @click="laststep()">上一步</el-button>
        <el-button type="success" @click="submitForm('ruleForm')">{{
        <el-button type="success" @click="submitForm('11')">{{
          quote ? "立即创建" : "确认任务配置"
        }}</el-button>
        <el-button @click="resetForm('ruleForm')">重置</el-button>
@@ -550,7 +639,7 @@
              <el-row :gutter="20">
                <el-col :span="14">
                  <el-form-item label="可用状态" prop="isenable">
                    <el-radio-group v-model="objyl.usestate">
                    <el-radio-group v-model="objyl.isenable">
                      <el-radio
                        v-for="(item, index) in usable"
                        :label="item.value"
@@ -573,90 +662,6 @@
                  <el-input v-model="objyl.templateName"></el-input>
                </div>
              </el-form-item>
              <el-form-item label="随访方式" prop="suitway">
                <el-select
                  style="width: 400px"
                  v-model="objyl.suitway"
                  size="medium"
                  multiple
                  filterable
                  placeholder="请选择分类"
                >
                  <el-option
                    class="ruleFormaa"
                    v-for="item in mode"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-row :gutter="20" v-if="form.longTask">
                <el-col :span="14">
                  <el-form-item label="长期任务" prop="longTemp">
                    <el-radio-group v-model="objyl.longTemp">
                      <el-radio
                        v-for="(item, index) in longtype"
                        :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.sendDay"
                      placeholder="默认5天后"
                    ></el-input>
                  </el-form-item>
                </el-col>
              </el-row>
              <el-row>
                <el-col :span="20"
                  ><el-form-item label="适用科室" prop="region">
                    <el-select
                      style="width: 400px"
                      v-model="tempDetpRelevanceslist"
                      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>
                <el-col :span="20"
                  ><el-form-item label="适用病区" prop="region">
                    <el-select
                      v-model="tempbelongWards"
                      style="width: 400px"
                      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>
              <div class="xinz-infs">
                <el-form-item>
@@ -776,9 +781,19 @@
      <span slot="footer" class="dialog-footer">
        <!-- <el-button @click="previewGo">保存模板详情修改</el-button> -->
        <el-button type="primary" @click="Departmenttreatment"
          >保存使用</el-button
        <el-button
          v-if="(form.templateid && form.sendState == 1) || !form.templateid"
          type="primary"
          @click="Departmenttreatment"
          >{{ form.templateid ? "替换使用" : "选择使用" }}</el-button
        >
        <!-- <el-button
          :type="previewtftype ? 'success' : 'warning'"
          @click="Modifytemplate"
          >{{
            previewtftype ? "前往修改已选择模板" : "新增保存并前往修改"
          }}</el-button
        > -->
      </span>
    </el-dialog>
    <el-drawer
@@ -853,6 +868,13 @@
        </div>
      </div>
    </el-drawer>
    <Optional-Form
      ref="child"
      :dialogVisiblepatient="dialogVisiblepatientjb"
      :overallCase="diagglist"
      @addoption="dialogVisiblepatientjb = false"
      @kkoption="dialogVisiblepatientjb = true"
    />
  </div>
</template>
@@ -861,7 +883,8 @@
import store from "@/store";
import {
  getTaskpatient,
  getlibrarylist,
  getillnesslist,
  getbaseopera,
  getFollowuplist,
  getvFollowup,
  Taskparticty,
@@ -872,13 +895,21 @@
  getillness,
  Editsingletask,
  getFollowupclassify,
  depthospgetsonlist,
  taskdepthospgetsonlist,
  taskdepthospgetsondel,
  taskoperhospgetsondel,
  taskdiaghospgetsondel,
  taskdiaggetlist,
  taskopergetlist,
} from "@/api/AiCentre/index";
import { deptTreeSelect } from "@/api/system/user";
import OptionalForm from "@/components/OptionalForm";
import { MessageBox } from "element-ui";
import SFtable from "@/components/SFtable"; //表格组件
export default {
  name: "ServiceDetails",
  name: "particty",
  data() {
    return {
      title: "宣教内容列表",
@@ -886,6 +917,8 @@
      id: "", //
      previewid: "", //任务模板传递id
      libName: "",
      username: "",
      templateor: false,
      objyl: {},
      overallCase: [], //选择患者总
      allpids: [],
@@ -897,13 +930,22 @@
      Editprogress: 1, //编辑进度
      drawermb: false, //选择模板弹窗
      previewtf: false, //预览
      previewtftype: 0, //预览情况0新模板预览1已选择模板修改
      loading: false, // 遮罩层
      patientloading: false, // 遮罩层
      dialogVisiblepatient: false, //添加患者弹框
      dialogVisiblepatientjb: false,
      deptcodesWards: [], //科室数据
      leavehospitaldistrictcodes: [], //病区数据
      operationcodes: [], //手术数据
      illnesscodes: [], //疾病数据
      radio: 1,
      checkboxlist: [],
      tableLabel: [],
      questionList: [],
      skip: false,
      donorchargeList: [],
      baseoperaList: [],
      usable: [
        { value: "0", label: "可用" },
        { value: "1", label: "停用" },
@@ -919,6 +961,7 @@
        { label: "出院日期", width: "150", prop: "inhosptime" },
        { label: "患者", width: "", prop: "name" },
        { label: "身份证", width: "200", prop: "idcardno" },
        { label: "电话号码", width: "180", prop: "telcode" },
        { label: "性别", width: "", prop: "sex" },
        { label: "年龄", width: "", prop: "age" },
        { label: "责任护士", width: "", prop: "nurseName" },
@@ -931,6 +974,7 @@
        { label: "出院日期", width: "150", prop: "endtime" },
        { label: "患者", width: "", prop: "name" },
        { label: "身份证", width: "200", prop: "sfzh" },
        { label: "电话号码", width: "180", prop: "telcode" },
        { label: "性别", width: "", prop: "sex" },
        { label: "年龄", width: "", prop: "age" },
        { label: "出院天数", width: "", prop: "endDay" },
@@ -941,10 +985,10 @@
      ],
      tableLabelwj: [
        { label: "创建人", width: "", prop: "createBy" },
        { label: "模板标题", width: "", prop: "templateName" },
        { label: "随访描述", width: "", prop: "note" },
        { label: "修改日期", width: "", prop: "updateTime" },
        { label: "创建人", width: "", prop: "createBy" },
      ],
      // 变量
      tableLabelvariable: [
@@ -955,7 +999,7 @@
      preachform: [
        { label: "多媒体", value: 1 },
        { label: "纸质", value: 2 },
        { label: "电话", value: 3 },
        { label: "智能语音", value: 3 },
        { label: "短信", value: 4 },
        { label: "微信公众号", value: 5 },
        { label: "微信小程序", value: 6 },
@@ -976,7 +1020,13 @@
        pageNum: 1, //
        pageSize: 10,
      },
      checkList: [],
      checkList: "",
      foncheckList: [],
      formatvalue: {
        format1: "",
        format2: "",
        format3: "",
      },
      deliverytopqueryParams: {
        pageNum: 1, //
        pageSize: 10,
@@ -985,6 +1035,8 @@
        pageNum: 1, //
        pageSize: 10,
        topica: 1, //0全部1科室2病区
        leaveldeptcodes: [],
        leavehospitaldistrictcodes: [],
      },
      topicoptions: [{ children: [{ children: [] }] }],
      showSearch: true, //
@@ -1004,7 +1056,7 @@
      sonuserList: [], //选中患者列表
      delvariableList: [], //删除变量临时存储
      longtype: [
        { value: 0, label: "普通任务" },
        { value: 0, label: "自定义周期" },
        { value: 1, label: "长期任务" },
      ],
      variableList: [
@@ -1052,13 +1104,13 @@
      SelectPatientslist: [],
      form: {
        patTaskRelevances: [],
        sendType: 1,
        sendType: 3,
        longTask: 0,
        templatename: "",
        templateid: null,
        libtemplateid: null,
        kcb: "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,观看这份宣教资讯。",
        jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次宣教内容就到这里,祝您身体健康!",
        kcb: "亲爱的患者/家属,您好!我们是景宁人民医院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,进行本次回访服务。",
        jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访内容就到这里,祝您身体健康!",
      },
      taskoptions: [
        {
@@ -1076,6 +1128,10 @@
        {
          value: "3",
          label: "体检病人",
        },
        {
          value: "5",
          label: "手术病人",
        },
      ],
      source: [
@@ -1096,7 +1152,7 @@
      tasktypes: [
        {
          value: 1,
          label: "监测评估",
          label: "心电随访",
        },
        {
          value: 2,
@@ -1104,7 +1160,7 @@
        },
        {
          value: 3,
          label: "门诊随访",
          label: "影像随访",
        },
        {
          value: 4,
@@ -1112,27 +1168,23 @@
        },
        {
          value: 5,
          label: "复诊管理",
          label: "体检随访",
        },
        {
          value: 6,
          label: "满意度调查",
          value: 11,
          label: "医技随访",
        },
        {
          value: 7,
          label: "患者报告",
        },
        {
          value: 8,
          label: "其他通知",
          value: 10,
          label: "专科随访",
        },
      ],
      // 科室/病区
      belongWards: [],
      belongWards: [],
      deptlist: [],
      hosplist: [],
      diagglist: [],
      operlist: [],
      tempDetpRelevanceslist: [], //科室数据
      tempDetpRelevanceslistform: [], //科室数据
      tempbelongWards: [], //病区数据
@@ -1150,22 +1202,30 @@
        sendType: [
          { required: true, message: "发送设置不能为空", trigger: "blur" },
        ],
        // deptcode: [
        //   { required: true, message: "适用科室不能为空", trigger: "blur" },
        // ],
        // leavehospitaldistrictcode: [
        //   { required: true, message: "适用病区不能为空", trigger: "blur" },
        // ],
      },
      // 科室院区查询入参
      queryParamsdept: {
        tempid: "",
        type: 11,
        type: 2,
      },
      belongDepts: [],
      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.username = store.getters.name;
    this.mode = store.getters.Askmode;
    this.id = this.$route.query.id;
    this.newadd = this.$route.query.newadd;
@@ -1174,11 +1234,20 @@
    this.serviceType = Number(this.$route.query.serviceType);
    this.form.serviceType = Number(this.$route.query.serviceType);
    this.Acquisitiontype();
    this.getillnesslist();
    this.Getdetails();
    this.getFollowupclassify();
  },
  activated() {
    console.log(this.id, "CS", this.$route.query.id);
    if (this.id != this.$route.query.id) {
      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.Acquisitiontype();
      this.Getdetails();
      this.getFollowupclassify();
@@ -1186,11 +1255,6 @@
  },
  methods: {
    // {
    //   姓名: { "${name}": "龙傲天" },
    //   地址: { "${dzz}": "龙宫" },
    //   电话: { "${dhh}": "八个八" },
    // }
    // 变量转换对象转数组
    convertFormat1ToFormat2(data) {
      let result = [];
@@ -1214,6 +1278,26 @@
      });
      return result;
    },
    flattenArray(multiArray) {
      let result = [];
      // 递归函数,用于将多级数组转换为一维数组,只包含最底层的元素
      function flatten(element) {
        // 如果当前元素有子元素,继续递归
        if (element.children && element.children.length > 0) {
          element.children.forEach((child) => flatten(child));
        } else {
          // 克隆元素以避免修改原始数据
          let item = JSON.parse(JSON.stringify(element));
          result.push(item); // 将最底层的元素添加到结果数组
        }
      }
      // 从顶层元素开始递归
      multiArray.forEach((element) => flatten(element));
      return result; // 返回只包含最底层元素的一维数组
    },
    // 获取当前类型
    Acquisitiontype() {
      let queryParams = {
@@ -1230,10 +1314,13 @@
            value: "1",
            label: "人工",
          },
          {
            value: "2",
            label: "纸质",
          },
          {
            value: "4",
            label: "短信",
          },
          {
            value: "5",
@@ -1244,7 +1331,7 @@
        this.checkboxlist = [
          {
            value: "3",
            label: "电话",
            label: "智能语音",
          },
          {
            value: "4",
@@ -1259,12 +1346,12 @@
            label: "微信小程序",
          },
          {
            value: "8",
            label: "智能机器人",
          },
          // {
          //   value: "8",
          //   label: "智能机器人",
          // },
        ];
      } else if (this.form.serviceType == 7 || this.form.serviceType == 5) {
      } else if (this.form.serviceType == 7 || this.form.serviceType == 5|| this.form.serviceType == 10|| this.form.serviceType == 11) {
        this.checkboxlist = [
          {
            value: "1",
@@ -1276,7 +1363,7 @@
          },
          {
            value: "3",
            label: "电话",
            label: "智能语音",
          },
          {
            value: "4",
@@ -1290,6 +1377,10 @@
            value: "6",
            label: "微信小程序",
          },
          {
            value: "7",
            label: "术后随访",
          },
        ];
      } else if (this.form.serviceType == 2 || this.form.serviceType == 3) {
        this.checkboxlist = [
@@ -1299,7 +1390,7 @@
          },
          {
            value: "3",
            label: "电话",
            label: "智能语音",
          },
          {
            value: "4",
@@ -1314,10 +1405,10 @@
            label: "微信小程序",
          },
          {
            value: "8",
            label: "智能机器人",
          },
          // {
          //   value: "8",
          //   label: "智能机器人",
          // },
        ];
      }
      getFollowuplist(this.topqueryParams).then((response) => {
@@ -1337,7 +1428,8 @@
      });
    },
    // 保存
    submitForm(formName) {
    submitForm(type) {
      if (this.templateor && type) this.templateor = false;
      if (this.time4 && this.form.sendType == 3)
        this.form.showTimeMorn = this.time4;
      this.form.sendTimeslot = [
@@ -1347,20 +1439,50 @@
          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.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) ||
@@ -1383,18 +1505,17 @@
        this.form.type = this.$route.query.type;
      }
      this.form.serviceType = this.serviceType;
      this.form.leaveldeptcodes = store.getters.belongDepts.map(
        (obj) => obj.deptCode
      );
      this.form.leavehospitaldistrictcodes = store.getters.belongWards.map(
        (obj) => obj.districtCode
      );
      Editsingletask(this.form).then((res) => {
      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.puttaskid(res.data);
            this.$modal.msgSuccess("新增成功");
          }
          this.$router.push({
@@ -1404,24 +1525,7 @@
        }
      });
    },
    // 给任务模板赋值任务id
    puttaskid(data) {
      getTaskparticty(this.form.templateid).then((res) => {
        if (res.code == 200) {
          this.objyl = res.data;
          this.objyl.isoperation = 2;
          this.objyl.taskid = data.taskId;
          Taskparticty(this.objyl).then((response) => {
            this.previewtf = false;
            this.form.libtemplateid = this.objyl.id;
            this.form.templateid = response.data;
            // this.putbelongDepts(response.data);
            this.form.templatename = this.objyl.templateName;
            this.$modal.msgSuccess("选择模板成功");
          });
        }
      });
    },
    // ----------------------表格子组件事件
    // 选择预览
@@ -1434,17 +1538,16 @@
        getvFollowup({ id: row.id }).then((res) => {
          if (res.code == 200) {
            this.objyl = res.data;
            if (this.form.longTask) {
              this.objyl.longTemp = 1;
            }
            this.queryParamsdept.type = 1;
            // if (this.form.longTask) {
            //   this.objyl.sendDay = 5;
            // }
            this.queryParamsdept.type = 2;
            this.queryParamsdept.tempid = row.id;
            this.listDept();
            this.tempDetpRelevanceslist = [];
            this.tempbelongWards = [];
            this.objyl.suitway = this.objyl.suitway.split(",");
            this.questionList = res.data.ivrLibaTemplateScriptVOList;
            this.getillness(row.id);
        console.log(res.data, "11");
            this.Variablehandling(res.data.ivrLibaTemplateScriptVOList, 1);
            this.previewtf = true;
          }
@@ -1462,16 +1565,18 @@
          if (this.objyl.suitway)
            this.objyl.suitway = this.objyl.suitway.split(",");
          this.queryParamsdept.tempid = this.form.templateid;
          this.queryParamsdept.type = 11;
          this.queryParamsdept.type = 21;
          // 疾病
          this.getillness(this.form.libtemplateid);
          // 执行获取该任务模板id
          this.listDept();
          this.previewtf = true;
          getvFollowup({ id: this.form.libtemplateid }).then((res) => {
            if (res.code == 200) {
              this.previewtf = true;
              this.previewtftype = 1;
              this.questionList = res.data.ivrLibaTemplateScriptVOList;
              this.objyl.ivrLibaTemplateScriptVOList =
                res.data.ivrLibaTemplateScriptVOList;
            } else {
            }
          });
        }
@@ -1504,6 +1609,7 @@
            }
          });
        });
        const Aarr = Variablist.filter(
          (obj, index, self) =>
            index ===
@@ -1526,6 +1632,7 @@
          { label: "出院日期", width: "150", prop: "endtime" },
          { label: "患者", width: "", prop: "name" },
          { label: "身份证", width: "200", prop: "idcardno" },
          { label: "电话号码", width: "180", prop: "telcode" },
          { label: "性别", width: "", prop: "sex" },
          { label: "年龄", width: "", prop: "age" },
          { label: "出院天数", width: "", prop: "endDay" },
@@ -1539,6 +1646,7 @@
          { label: "入院日期", width: "150", prop: "starttime" },
          { label: "患者", width: "", prop: "name" },
          { label: "身份证", width: "200", prop: "idcardno" },
          { label: "电话号码", width: "180", prop: "telcode" },
          { label: "性别", width: "", prop: "sex" },
          { label: "年龄", width: "", prop: "age" },
          { label: "出院天数", width: "", prop: "endDay" },
@@ -1558,6 +1666,7 @@
        this.patientqueryParams.cry = 1;
      } else if (this.patientqueryParams.allhosp == 4) {
        this.patientqueryParams.cry = 0;
        this.patientqueryParams.allhosp = "1";
      }
      // 来源判断
@@ -1610,6 +1719,9 @@
          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);
        }
@@ -1647,7 +1759,11 @@
          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("删除成功");
        });
    },
@@ -1665,6 +1781,16 @@
          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();
    },
    resetQuery() {},
@@ -1695,10 +1821,11 @@
      this.form = {
        patTaskRelevances: [],
        sendType: 1,
        sendDay: 5,
        templatename: "",
        templateid: null,
        libtemplateid: null,
        kcb: "亲爱的患者/家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访随访。",
        kcb: "亲爱的患者/家属,您好!我们是景宁人民医院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访。",
        jsy: "请您注意休息和营养,生活上要劳逸结合,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!",
      };
@@ -1713,7 +1840,7 @@
              ? this.form.patTaskRelevances
              : [];
            this.overallCase = this.form.patTaskRelevances.concat();
            this.checkList = this.form.preachform.split(",");
            this.checkList = this.form.preachform;
            this.overallCase.forEach((item) => {
              if (item.endtime) {
@@ -1729,6 +1856,9 @@
                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)
@@ -1738,7 +1868,6 @@
          } else {
            this.$modal.msgError(res.code);
          }
          if (this.newadd) {
            this.neWaddfn();
          }
@@ -1749,6 +1878,7 @@
    neWaddfn() {
      this.id = null;
      this.form.taskName = "";
      this.form.sendState = null;
      this.form.taskid = null;
      this.overallCase = [];
      this.form.patTaskRelevances = [];
@@ -1761,22 +1891,127 @@
    },
    // 获取科室列表
    listDept() {
      this.tempDetpRelevanceslist = [];
      this.tempbelongWards = [];
      depthospgetsonlist(this.queryParamsdept).then((res) => {
      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.tempDetpRelevanceslist.push(item.deptCode);
              this.deptcodesWards.push(item.deptCode);
            } else if (item.deptType == 2) {
              this.hosplist.push(item);
              this.tempbelongWards.push(item.deptCode);
              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);
          });
        }
      });
    },
    getillnesslist() {
      getillnesslist({
        pageNum: 1,
        pageSize: 1000,
      }).then((row) => {
        this.donorchargeList = res.rows;
      });
      getbaseopera({
        pageNum: 1,
        pageSize: 1000,
      }).then((row) => {
        this.baseoperaList = res.rows;
      });
    },
    // 手术查询
    remoteopcode(name) {
      if (name) {
        getbaseopera({
          pageNum: 1,
          pageSize: 1000,
          opdesc: name,
        }).then((res) => {
          this.baseoperaList = res.rows;
        });
      }
    },
    // 任务科室删除触发
    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("删除成功");
          }
        });
      }
    },
    getFollowupclassify() {
      getFollowupclassify({}).then((res) => {
@@ -1873,22 +2108,37 @@
        this.objyl.suitway = this.objyl.suitway.join(",");
      }
      this.objyl.ivrLibaTemplateScriptVOList.forEach((item) => {
        item.svyTaskTemplateTargetoptions = item.ivrLibaScriptTargetoptionList;
        item.ivrTaskScriptTargetoptionList = item.ivrLibaScriptTargetoptionList;
      });
      this.objyl.svyTaskTemplateScriptVOS =
      this.objyl.ivrTaskTemplateScriptVOList =
        this.objyl.ivrLibaTemplateScriptVOList;
      this.objyl.isoperation = 1;
      if (this.form.id) {
        this.objyl.taskid = this.form.id;
      }
      // if (!this.objyl.sendDay) {
      //   this.objyl.sendDay = "5";
      // }
      if (this.form.templateid) {
        deleteTaskparticty(this.form.templateid).then((res) => {
          if (res.code == 200) {
              Taskparticty(this.objyl).then((response) => {
                this.previewtf = false;
                this.form.libtemplateid = this.objyl.id;
                this.form.templateid = response.data;
                this.putbelongDepts(response.data);
                this.form.templatename = this.objyl.templateName;
                this.$modal.msgSuccess("选择模板成功");
              });
            Taskparticty(this.objyl).then((response) => {
              this.previewtf = false;
              this.form.libtemplateid = this.objyl.id;
              this.form.templateid = response.data;
              this.putbelongDepts(response.data);
              this.form.templatename = this.objyl.templateName;
              this.$modal.msgSuccess("替换模板成功");
              this.drawermb = false; //选择模板弹窗
              this.previewtf = false; //预览
              if (this.skip) {
                // 跳转前往修改
                this.$router.push({
                  path: "/knowledge/taskub/",
                  query: { id: response.data },
                });
              }
            });
          }
        });
      } else {
@@ -1899,6 +2149,15 @@
          this.putbelongDepts(response.data);
          this.form.templatename = this.objyl.templateName;
          this.$modal.msgSuccess("选择模板成功");
          this.drawermb = false; //选择模板弹窗
          this.previewtf = false; //预览
          if (this.skip) {
            // 跳转前往修改
            this.$router.push({
              path: "/knowledge/taskub/",
              query: { id: response.data },
            });
          }
        });
      }
    },
@@ -1923,60 +2182,96 @@
        }
      });
    },
    // 处理服务形式
    formatFn(type) {
      let list = [];
      let formlist = [];
      if (type == 1) {
        this.preachform.forEach((item) => {
          this.checkList.forEach((obj) => {
            if (item.label == obj) {
              list.push(item.value);
            }
          });
        });
        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;
      }
    checkboxChange(checked, value) {},
    // 服务形式选取
    handleCheckedCitiesChange(row) {
      console.log(row, "服务");
      this.foncheckList = this.checkboxlist.filter((obj) =>
        row.includes(obj.value)
      );
    },
    // 服务形式删除
    handleClosetag(tag) {
      console.log(tag, "tag");
      console.log(this.foncheckList, "foncheckList");
      this.checkList = this.checkList.filter((item) => item != tag.value);
      this.foncheckList = this.foncheckList.filter(
        (obj) => obj.value !== tag.value
      );
    },
    // 科室处理
    Departmenttreatment() {
      this.tempDetpRelevanceslist.forEach((item) => {
        this.tempDetpRelevanceslistform.push({
          deptType: 1,
          longTemp: this.form.longTask,
          deptCode: item,
          tempid: null,
          type: 11,
        });
      });
      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.id;
            this.objyl.isoperation = 1;
            this.objyl.ivrLibaTemplateScriptVOList.forEach((item) => {
              item.ivrTaskScriptTargetoptionList =
                item.ivrLibaScriptTargetoptionList;
            });
            this.objyl.ivrTaskTemplateScriptVOList =
              this.objyl.ivrLibaTemplateScriptVOList;
            this.form.ivrTaskTemplateVO = this.objyl;
      this.tempbelongWards.forEach((item) => {
        this.tempbelongWardsform.push({
          deptType: 2,
          longTemp: this.form.longTask,
          deptCode: item,
          tempid: null,
          type: 11,
            this.submitForm();
          })
          .catch(() => {
            if (Array.isArray(this.objyl.suitway)) {
              this.objyl.suitway = this.objyl.suitway.join(",");
            }
            this.objyl.templateid = this.objyl.id;
            this.objyl.isoperation = 1;
            this.objyl.ivrLibaTemplateScriptVOList.forEach((item) => {
              item.ivrTaskScriptTargetoptionList =
                item.ivrLibaScriptTargetoptionList;
            });
            this.objyl.ivrTaskTemplateScriptVOList =
              this.objyl.ivrLibaTemplateScriptVOList;
            this.form.ivrTaskTemplateVO = this.objyl;
            this.form.templatename = this.objyl.templateName;
            this.$modal.msgSuccess("暂存成功保存任务后模板失效");
            this.drawermb = false;
            this.previewtf = false;
          });
      } else {
        setTimeout(() => {
          this.previewFn();
        }, 1000);
      }
    },
    // 前往修改
    Modifytemplate() {
      if (this.form.templateid && this.previewtftype) {
        this.$modal.confirm("是否前往修改任务模板详细内容?").then(() => {
          this.drawermb = false; //选择模板弹窗
          this.previewtf = false; //预览
          this.$router.push({
            path: "/knowledge/taskub/",
            query: { id: this.form.templateid },
          });
        });
      });
      console.log(33);
      setTimeout(() => {
        this.previewFn();
      }, 1000);
      } else {
        this.$modal
          .confirm("当前为基础预览是否创建任务模板并前往修改详情?")
          .then(() => {
            // 走取先绑定后修改操作
            this.Departmenttreatment();
            this.skip = true;
          });
      }
    },
  },
};
@@ -2063,23 +2358,7 @@
    margin-left: 10px;
  }
}
// .leftvlue-jbxx {
//   margin-bottom: 50px;
//   font-size: 20px;
//   span {
//     position: absolute;
//     right: 80px;
//   }
//   .demo-cascader {
//     margin-right: 20px;
//   }
//   .PreviewTemplate {
//     color: #02a7f0;
//     cursor: pointer;
//     font-size: 20px;
//     margin: 0 20px;
//   }
// }
.preview-left {
  margin: 20px;
  //   margin: 20px;