WXL
2024-04-25 c1857baa3a4fbce727da5de733fe30d38477978f
src/views/patient/propaganda/particty.vue
@@ -11,8 +11,8 @@
          ></el-step>
          <el-step
            icon="el-icon-user"
            title="宣教对象"
            description="在本部选择宣教病人"
            title="任务主体"
            description="在本部选择服务患者"
          ></el-step>
          <el-step icon="el-icon-user" title="模版确认"></el-step>
        </el-steps>
@@ -36,42 +36,105 @@
            </div>
            <div class="jic-value">
              <el-form ref="form" :model="form" label-width="105px">
                <el-form-item label="模版名称:">
                <el-row :gutter="20">
                  <el-col :span="12"
                    ><el-form-item label="任务名称">
                      <el-input
                        style="width: 220px"
                        v-model="form.taskName"
                        placeholder="请输入任务名称"
                      /> </el-form-item
                  ></el-col>
                  <el-col :span="12"
                    ><el-form-item label="模版名称">
                      <el-input
                        style="width: 220px"
                        :disabled="true"
                        v-model="form.templatename"
                        placeholder="请在下列选择"
                      /> </el-form-item
                  ></el-col>
                </el-row>
                <el-form-item label="任务描述">
                  <el-input
                    :disabled="true"
                    style="width: 220px"
                    v-model="form.preachname"
                    placeholder="请在下方选择"
                    type="textarea"
                    v-model="form.taskDesc"
                    placeholder="请输入任务描述"
                  />
                </el-form-item>
                <el-form-item label="发送设置:" v-if="currenttype != 2">
                  <el-radio-group v-model="radio">
                  <el-radio-group v-model="form.sendType">
                    <el-radio :label="1">时间段发送</el-radio>
                    <el-radio :label="2">时间点发送</el-radio>
                    <el-radio :label="3">即刻发送</el-radio>
                  </el-radio-group>
                </el-form-item>
                <el-form-item
                  label="发送时间点:"
                  v-if="currenttype != 2 && radio == 2"
                >
                <el-form-item label="发送日期:" v-if="form.sendType == 1">
                  <el-date-picker
                    v-model="form.sendTime"
                    type="datetime"
                    placeholder="选择日期时间"
                    default-time="13:00:00"
                    v-model="daytime"
                    @change="changeTimeday"
                    type="daterange"
                    range-separator="至"
                    start-placeholder="开始日期"
                    end-placeholder="结束日期"
                    value-format="yyyy-MM-dd"
                  >
                  </el-date-picker>
                </el-form-item>
                <el-form-item
                  label="发送时间段:"
                  v-if="currenttype != 2 && radio == 1"
                >
                  <el-checkbox-group v-model="checkList">
                    <el-checkbox label="上午(8:30-11:30)"></el-checkbox>
                    <el-checkbox label="下午(14:30-16:30)"></el-checkbox>
                    <el-checkbox label="夜间(18:30-20:30)"></el-checkbox>
                  </el-checkbox-group>
                <el-form-item label="发送时间段:" v-if="form.sendType == 1">
                  <div style="display: flex">
                    <div style="margin-right: 10px">
                      <span style="font-size: 18px; margin-right: 10px"
                        >上午</span
                      >
                      <el-time-picker
                        is-range
                        arrow-control
                        @change="changeTime"
                        v-model="time1"
                        range-separator="至"
                        start-placeholder="开始时间"
                        end-placeholder="结束时间"
                        placeholder="选择时间范围"
                        value-format="HH:mm:ss"
                      >
                      </el-time-picker>
                    </div>
                    <div style="margin-right: 10px">
                      <span style="font-size: 18px; margin-right: 10px"
                        >下午</span
                      >
                      <el-time-picker
                        is-range
                        arrow-control
                        @change="changeTime"
                        v-model="time2"
                        range-separator="至"
                        start-placeholder="开始时间"
                        end-placeholder="结束时间"
                        placeholder="选择时间范围"
                        value-format="HH:mm:ss"
                      >
                      </el-time-picker>
                    </div>
                    <div style="margin-right: 10px">
                      <span style="font-size: 18px; margin-right: 10px"
                        >晚间</span
                      >
                      <el-time-picker
                        is-range
                        arrow-control
                        @change="changeTime"
                        v-model="time3"
                        range-separator="至"
                        start-placeholder="开始时间"
                        end-placeholder="结束时间"
                        placeholder="选择时间范围"
                        value-format="HH:mm:ss"
                      >
                      </el-time-picker>
                    </div>
                  </div>
                </el-form-item>
                <el-form-item label="服务形式">
                  <el-checkbox-group v-model="checkList">
@@ -82,18 +145,6 @@
                    ></el-checkbox>
                  </el-checkbox-group>
                </el-form-item>
                <!-- <el-form-item label="组织形式">
                  <el-radio-group v-model="form.radio">
                    <el-radio :label="3">单人宣教</el-radio>
                    <el-radio :label="6">多人集中宣教</el-radio>
                  </el-radio-group>
                </el-form-item> -->
                <!-- <el-form-item label="语音模版" prop="region">
                  <el-select v-model="form.region" placeholder="请选择模版">
                    <el-option label="一号模版" value="shanghai"></el-option>
                    <el-option label="二号模版" value="beijing"></el-option>
                  </el-select>
                </el-form-item> -->
              </el-form>
            </div>
          </div>
@@ -114,12 +165,17 @@
                    v-show="showSearch"
                    label-width="98px"
                  >
                    <el-form-item label="宣教主题" v-if="currenttype == 1">
                    <el-form-item
                      label="宣教主题"
                      v-if="currenttype == 1 || currenttype == 8"
                    >
                      <el-input v-model="topqueryParams.name"></el-input>
                    </el-form-item>
                    <el-form-item
                      label="随访名称"
                      v-if="currenttype == 2 || currenttype == 3"
                      v-if="
                        currenttype == 2 || currenttype == 3 || currenttype == 7
                      "
                    >
                      <el-input
                        v-model="topqueryParams.name"
@@ -144,7 +200,7 @@
                    <el-form-item
                      label="宣教类型"
                      prop="status"
                      v-if="currenttype == 1"
                      v-if="currenttype == 1 || currenttype == 8"
                    >
                      <el-select
                        v-model="topqueryParams.topic"
@@ -180,7 +236,9 @@
                    <el-form-item
                      label="随访类型"
                      prop="status"
                      v-if="currenttype == 2 || currenttype == 3"
                      v-if="
                        currenttype == 2 || currenttype == 3 || currenttype == 7
                      "
                    >
                      <el-select
                        v-model="topqueryParams.topic"
@@ -259,10 +317,9 @@
                    </el-form-item>
                  </el-form>
                  <el-divider></el-divider>
                  <!-- 选择任务列表 -->
                  <!-- 选择模版列表 -->
                  <SFtable
                    @handleUpdate="handleUpdate"
                    @handleSelectionChange="handleSelectionChange"
                    @selectfn="selectfn"
                    :currentList="userList"
                    :tableLabel="tableLabel"
                    :controlsc="false"
@@ -301,32 +358,29 @@
                <el-row :gutter="20">
                  <el-table :data="variableList" style="width: 100%">
                    <el-table-column
                      prop="variablename"
                      prop="name"
                      align="center"
                      label="变量名称"
                    >
                    </el-table-column>
                    <el-table-column
                      prop="character"
                      align="center"
                      label="匹配符"
                    >
                    <el-table-column prop="value" align="center" label="匹配符">
                    </el-table-column>
                    <el-table-column label="替换值" align="center">
                      <template slot-scope="scope">
                        <el-input
                          v-model="scope.row.Replacementvalue"
                          :disabled="scope.row.default"
                          v-model="scope.row.fill"
                          placeholder="请输入内容"
                        ></el-input>
                      </template>
                    </el-table-column>
                    <el-table-column label="操作" align="center">
                      <template slot-scope="scope">
                        <el-button
                        <!-- <el-button
                          size="mini"
                          @click="variableEdit(scope.$index, scope.row)"
                          >编辑</el-button
                        >
                        > -->
                        <el-button
                          size="mini"
                          type="danger"
@@ -472,10 +526,12 @@
                  </el-row>
                  <!-- 选中患者列表 -->
                  <SFtable
                    @details="detailhz"
                    @handleUpdate="handleUpdate"
                    @handleSelectionChange="handleSelectionChange"
                    :currentList="sonuserList"
                    :currentList="form.patTaskRelevances"
                    :tableLabel="tableLabelhz"
                    :serialnumber="false"
                    :controlxz="false"
                    :typeinfo="2"
                  />
@@ -520,7 +576,7 @@
              <el-form-item label="患者名称:">
                <el-input v-model="patientqueryParams.name"></el-input>
              </el-form-item>
              <el-form-item label="患者来源" prop="status">
              <!-- <el-form-item label="患者来源" prop="status">
                <el-select
                  v-model="patientqueryParams.topic"
                  placeholder="请选择"
@@ -533,36 +589,28 @@
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="出院科室" prop="status">
              </el-form-item> -->
              <el-form-item label="就诊科室" prop="status">
                <el-select
                  v-model="patientqueryParams.topic"
                  placeholder="请选择"
                >
                  <el-option
                    v-for="item in topicoptions"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  <el-option-group
                    v-for="group in topicoptions[0].children"
                    :key="group.deptName"
                    :label="group.deptName"
                  >
                  </el-option>
                    <el-option
                      v-for="item in group.children"
                      :key="item.deptId"
                      :label="item.deptName"
                      :value="item.deptId"
                    >
                    </el-option>
                  </el-option-group>
                </el-select>
              </el-form-item>
              <el-form-item label="出院病区" prop="status">
                <el-select
                  v-model="patientqueryParams.topic"
                  placeholder="请选择"
                >
                  <el-option
                    v-for="item in topicoptions"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item>
                <el-button
                  type="primary"
@@ -586,7 +634,7 @@
              :currentList="patientuserList"
              :tableLabel="tableLabelhz"
              :serialnumber="false"
              :controlsc="false"
              :center="false"
              :typeinfo="3"
            />
          </el-row>
@@ -617,12 +665,14 @@
  getlibrarylist,
  getFollowuplist,
  getQtemplatelist,
  edithetask,
  addhetask,
  getTaskInfo,
  gethetaskinfo,
  delhetaskinfo,
  Editsingletask,
  getvFollowup,
} from "@/api/AiCentre/index";
import { listDept } from "@/api/system/dept";
import SFtable from "@/components/SFtable"; //表格组件
export default {
@@ -639,14 +689,15 @@
      radio: 1,
      checkboxlist: [],
      tableLabel: [],
      // 患者表单
      tableLabelhz: [
        { label: "序号", width: "", prop: "patid" },
        { label: "患者名称", width: "", prop: "name" },
        { label: "性别", width: "", prop: "sex" },
        { label: "年龄", width: "", prop: "age" },
        { label: "就诊科室", width: "", prop: "impTemplate" },
        { label: "入院日期", width: "", prop: "uploadTime" },
        { label: "就诊科室", width: "", prop: "deptName" },
        { label: "入院日期", width: "", prop: "inhosptime" },
        { label: "创建人(缺)", width: "", prop: "update_by" },
      ],
      tableLabelxj: [
@@ -654,38 +705,38 @@
        { label: "宣教描述", width: "", prop: "note" },
        { label: "宣教形式", width: "", prop: "playType" },
        { label: "适用方式", width: "", prop: "suitway" },
        { label: "创建日期", width: "", prop: "uploadTime" },
        { label: "创建人(缺)", width: "", prop: "update_by" },
        { label: "修改日期", width: "", prop: "uploadTime" },
        { label: "创建人(缺)", width: "", prop: "updateBy" },
      ],
      tableLabelmz: [
        { label: "随访名称", width: "118", prop: "templateName" },
        { label: "随访模版", width: "130", prop: "impTemplate" },
        { label: "创建日期", width: "136", prop: "uploadTime" },
        { label: "创建人(缺)", width: "130", prop: "update_by" },
        { label: "随访名称", width: "", prop: "templateName" },
        { label: "主要内容", width: "", prop: "note" },
        { label: "修改日期", width: "", prop: "updateTime" },
        { label: "创建人(缺)", width: "", prop: "updateBy" },
      ],
      tableLabelcy: [
        { label: "随访名称", width: "118", prop: "templateName" },
        { label: "随访计划", width: "130", prop: "impTemplate" },
        { label: "创建日期", width: "136", prop: "uploadTime" },
        { label: "创建人(缺)", width: "130", prop: "update_by" },
        { label: "随访名称", width: "", prop: "templateName" },
        { label: "随访计划", width: "", prop: "impTemplate" },
        { label: "修改日期", width: "", prop: "uploadTime" },
        { label: "创建人(缺)", width: "", prop: "updateBy" },
      ],
      tableLabelfz: [
        { label: "通知名称", width: "118", prop: "templateName" },
        { label: "通知模版", width: "130", prop: "impTemplate" },
        { label: "创建日期", width: "136", prop: "uploadTime" },
        { label: "创建人(缺)", width: "130", prop: "update_by" },
        { label: "通知名称", width: "", prop: "templateName" },
        { label: "通知模版", width: "", prop: "impTemplate" },
        { label: "修改日期", width: "", prop: "uploadTime" },
        { label: "创建人(缺)", width: "", prop: "updateBy" },
      ],
      tableLabeltj: [
        { label: "通知名称", width: "118", prop: "name" },
        { label: "通知模版", width: "130", prop: "impTemplate" },
        { label: "创建日期", width: "136", prop: "uploadTime" },
        { label: "创建人(缺)", width: "130", prop: "update_by" },
        { label: "通知名称", width: "", prop: "name" },
        { label: "通知模版", width: "", prop: "impTemplate" },
        { label: "修改日期", width: "", prop: "uploadTime" },
        { label: "创建人(缺)", width: "", prop: "updateBy" },
      ],
      tableLabelwj: [
        { label: "问卷名称", width: "118", prop: "name" },
        { label: "问卷模版", width: "130", prop: "impTemplate" },
        { label: "创建日期", width: "136", prop: "uploadTime" },
        { label: "创建人(缺)", width: "130", prop: "update_by" },
        { label: "问卷名称", width: "", prop: "name" },
        { label: "问卷模版", width: "", prop: "impTemplate" },
        { label: "修改日期", width: "", prop: "uploadTime" },
        { label: "创建人(缺)", width: "", prop: "updateBy" },
      ],
      // 变量
      tableLabelvariable: [
@@ -693,6 +744,12 @@
        { label: "匹配符", width: "", prop: "character" },
        { label: "替换值", width: "", prop: "Replacementvalue" },
      ],
      // 时间处理
      daytime: [], //日期
      applydaytime: [], //计算日期
      time1: "", //上午时间段
      time2: "", //下午时间段
      time3: "", //晚上时间段
      topqueryParams: {
        pageNum: 1, //
        pageSize: 10,
@@ -706,7 +763,7 @@
        pageNum: 1, //
        pageSize: 10,
      },
      topicoptions: [],
      topicoptions: [{ children: [{ children: [] }] }],
      showSearch: true, //
      total: 0, //
      sontotal: 0, //
@@ -721,33 +778,56 @@
      userList: [], //模版列表
      patientuserList: [], //选择患者列表
      sonuserList: [], //选中患者列表
      delvariableList: [], //删除变量临时存储
      variableList: [
        {
          variablename: "姓名",
          character: "${name}",
          Replacementvalue: "龙傲天",
          name: "姓名",
          value: "${name}",
          fill: "派发时自动匹配",
          default: true,
        },
        {
          variablename: "地址",
          character: "${dzz}",
          Replacementvalue: "龙宫",
          name: "地址",
          value: "${dzz}",
          fill: "派发时自动匹配",
          default: true,
        },
        {
          variablename: "电话",
          character: "${dhh}",
          Replacementvalue: "八个八",
          name: "电话",
          value: "${dhh}",
          fill: "派发时自动匹配",
          default: true,
        },
      ], //变量列表
      transitionList: [
        {
          name: "姓名",
          value: "${name}",
          fill: "派发时自动匹配",
          default: true,
        },
        {
          name: "地址",
          value: "${dzz}",
          fill: "派发时自动匹配",
          default: true,
        },
        {
          name: "电话",
          value: "${dhh}",
          fill: "派发时自动匹配",
          default: true,
        },
      ],
      variableListTime: [],
      tasktopic: null, //新增类型
      SelectPatientslist: [],
      form: {
        name: "",
        region: "",
        date1: "",
        date2: "",
        delivery: false,
        type: [],
        resource: "",
        desc: "",
        serviceform: [],
        patTaskRelevances: [],
        sendType: 1,
        templatename: "",
        templateid: null,
      },
      taskoptions: [
        {
@@ -770,10 +850,10 @@
  created() {
    this.id = this.$route.query.id;
    this.form.type = this.$route.query.type;
    this.Addsubtask();
    this.Getsubtask();
    this.form.hospType = this.$route.query.type;
    this.listDept();
    this.Acquisitiontype();
    this.Getdetails();
  },
  methods: {
@@ -782,7 +862,7 @@
    //   地址: { "${dzz}": "龙宫" },
    //   电话: { "${dhh}": "八个八" },
    // }
    // 对象转数组
    // 变量转换对象转数组
    convertFormat1ToFormat2(data) {
      let result = [];
      for (let key in data) {
@@ -814,53 +894,36 @@
      };
      this.currenttype = this.$route.query.type;
      console.log(this.currenttype, "1");
      if (this.currenttype == 1) {
      if (this.currenttype == 1 || this.currenttype == 8) {
        // 医技宣教,普通宣教
        this.title = "宣教内容列表";
        this.tableLabel = this.tableLabelxj;
        this.checkboxlist = [
          "当面",
          "多媒体",
          "纸质",
          "电话",
          "短信",
          "微信公众号",
          "微信小程序",
          "支付宝",
          "智能小程序",
          "钉钉",
          "线下(口头宣教、电视宣教、纸质)",
          "线上(短信/钉钉的文本、图文链接)",
        ];
        getlibrarylist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
        });
      } else if (this.currenttype == 2) {
      } else if (
        this.currenttype == 2 ||
        this.currenttype == 3 ||
        this.currenttype == 7
      ) {
        // 出院、门诊、专病随访
        this.title = "随访内容列表";
        this.tableLabel = this.tableLabelmz;
        this.checkboxlist = ["当面", "纸质", "电话", "短信", "微信公众号"];
        this.checkboxlist = ["线下", "AI语音外呼", "人工电话"];
        getFollowuplist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
        });
      } else if (this.currenttype == 3) {
        this.title = "随访计划列表";
        this.tableLabel = this.tableLabelcy;
        this.checkboxlist = ["当面", "纸质", "电话", "短信", "微信公众号"];
        getFollowuplist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
        });
      } else if (this.currenttype == 4) {
      } else if (this.currenttype == 4 || this.currenttype == 5) {
        // 复诊、体检通知
        this.title = "通知内容列表";
        this.tableLabel = this.tableLabelfz;
        this.checkboxlist = ["电话", "短信", "微信公众号"];
        getFollowuplist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
        });
      } else if (this.currenttype == 5) {
        this.title = "通知内容列表";
        this.tableLabel = this.tableLabeltj;
        this.checkboxlist = ["纸质", "电话", "短信", "微信公众号"];
        this.checkboxlist = ["线下", "AI语音外呼", "人工电话", "短信"];
        getFollowuplist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
@@ -869,14 +932,8 @@
        this.title = "问卷内容列表";
        this.tableLabel = this.tableLabelwj;
        this.checkboxlist = [
          "当面",
          "多媒体",
          "纸质",
          "电话",
          "短信",
          "微信公众号",
          "微信小程序",
          "钉钉",
          "线下(纸质)",
          "线上(短信/钉钉的文本、问卷链接)",
        ];
        getQtemplatelist(queryParams).then((response) => {
          this.userList = response.rows;
@@ -889,22 +946,88 @@
        return this.Editprogress++;
      }
    },
    // 下一步
    // 保存
    submitForm(formName) {
      Editsingletask(this.form).then((response) => {
      this.form.serviceform = this.checkList.join(",");
      this.form.hospType = this.currenttype;
      const filteredArray = this.variableList.filter(
        (item) =>
          item.name !== "姓名" && item.name !== "电话" && item.name !== "地址"
      );
      console.log(filteredArray, "存前变量");
      this.form.textParam = this.convertFormat2ToFormat1(filteredArray);
      if (this.form.id) {
        this.form.isoperation = 2;
      } else {
        this.form.isoperation = 1;
      }
      Editsingletask(this.form).then((res) => {
        if (res.code == 200) {
          if (this.form.id) {
            this.$modal.msgSuccess("新增成功");
          } else {
            this.$modal.msgSuccess("修改成功");
          }
          this.$router.go(-1);
        }
      });
      // 提交
      // this.$refs[formName].validate((valid, object) => {
      //   if (valid) {
      //     alert("submit!");
      //   } else {
      //     console.log("error submit!!", object);
      //     return false;
      //   }
      // });
    },
    // ----------------------表格子组件事件
    // 选择模版
    selectfn(row, type) {
      // 模版情况下获取模版信息
      if (type == 1) {
        if (
          this.currenttype == 2 ||
          this.currenttype == 4 ||
          this.currenttype == 3 ||
          currenttype == 5 ||
          currenttype == 7
        ) {
          this.form.templatename = row.templateName;
          this.form.templateid = row.id;
        } else if (this.currenttype == 1) {
          this.form.templatename = row.preachname;
          this.form.templateid = row.id;
        }
        getvFollowup({ id: row.id }).then((res) => {
          if (res.code == 200) {
            const data = res.data;
            this.Variablehandling(data.ivrLibaTemplateScriptVOList, 1);
          }
        });
      } else if (type == 2) {
      } else if (type == 3) {
      }
    },
    // 处理问题层变量
    Variablehandling(arr, type) {
      let Variablist = [];
      if (type == 1) {
        console.log(arr);
        // 循环问题
        arr.forEach((res) => {
          console.log(JSON.parse(res.otherdata), "ss");
          // 循环选项
          JSON.parse(res.otherdata).forEach((item) => {
            if (item.default != 1) {
              Variablist.push({
                value: item.variate,
                fill: "",
                name: item.variatename,
              });
            }
          });
        });
        console.log(Variablist, "Variablist");
        const Aarr = Variablist.filter(
          (obj, index, self) =>
            index ===
            self.findIndex((t) => t.name === obj.name && t.value === obj.value)
        );
        this.variableList = this.transitionList.concat(Aarr);
        // this.form.textParam = this.convertFormat2ToFormat1(this.variableList);
      }
    },
    // 子任务二级弹框
    handleAddpatient(row) {
@@ -921,14 +1044,20 @@
    handleExport() {},
    // 多选框选中数据
    handleSelectionChange(selection) {
      console.log("多选患者");
      this.SelectPatientslist = selection;
      this.ids = null;
      this.ids = selection.map((item) => item.patid).join(",");
      // let result = this.ids.join(",");
      this.multiple = !selection.length;
      console.log(this.ids);
    },
    // 删除选中患者
    detailhz(row, info) {},
    getList() {},
    handleQuery() {},
    handleQuery() {
      this.handleAddpatient();
    },
    resetQuery() {},
    handleClosehz() {
      this.dialogVisiblepatient = false;
@@ -946,40 +1075,122 @@
    Acknowledgereference() {
      this.quote = true;
    },
    // 新增子任务
    Addsubtask() {
      this.topqueryParams.pguid = 2;
      // addsvr_prjtask(this.topqueryParams).then((res) => {
      //   console.log(res);
      // });
    // 获取详情
    Getdetails() {
      if (this.id) {
        getTaskInfo({ taskid: this.id }).then((res) => {
          let filteredArray = "";
          if (res.code == 200) {
            this.form = res.data;
            this.checkList = this.form.serviceform.split(",");
            this.daytime = this.form.sendlimitabegin.split(",");
            if (this.form.sendlimitaend)
              this.time1 = this.form.sendlimitaend.split(",");
            if (this.form.sendlimitnbegin)
              this.time2 = this.form.sendlimitaend.split(",");
            if (this.form.sendlimitnend)
              this.time3 = this.form.sendlimitaend.split(",");
            filteredArray = this.convertFormat1ToFormat2(this.form.textParam);
            console.log(filteredArray, "filteredArray");
            this.variableList = this.transitionList.concat(filteredArray);
          } else {
            this.$modal.msgError(res.code);
          }
          console.log(res);
        });
      }
    },
    // 获取科室列表
    listDept() {
      listDept().then((res) => {
        this.topicoptions = this.handleTree(res.data, "deptId");
        console.log(this.topicoptions, "topicoptions");
      });
    },
    // 新增派送患者
    AddDispatchpatients() {
      let objictpint = {};
      objictpint.patientes = this.ids;
      objictpint.pguid = 2;
      // Addpatienttask(objictpint).then((res) => {
      //   console.log(res);
      // });
      this.SelectPatientslist.forEach((item) => {
        item.isoperation = 1;
      });
      this.form.patTaskRelevances.push(...this.SelectPatientslist);
      this.dialogVisiblepatient = false;
    },
    // 查询子任务列表
    Getsubtask() {
      this.topqueryParams.pguid = 2;
      console.log(this.topqueryParams, "aa");
      messagelistpatient(this.topqueryParams).then((res) => {
        this.userList = res.rows;
        this.total = res.total;
        console.log(this.userList, "ss");
      });
    },
    // 变量---------------
    variableEdit(index, row) {
    // variableEdit(index, row) {
    //   console.log(index, row);
    // },
    variableDelete(index, row) {
      this.variableList.splice(index, 1);
      row.isoperation = 3;
      this.delvariableList.push(row);
      console.log(index, row);
    },
    variableDelete(index, row) {
      console.log(index, row);
    // 时间----------
    changeTime(row) {
      console.log(row, "时间");
      this.processingTime();
    },
    changeTimeday(row) {
      const startDate = new Date(row[0]);
      const endDate = new Date(row[1]);
      this.applydaytime = this.getDates(startDate, endDate);
      this.processingTime();
    },
    getDates(startDate, endDate) {
      const dates = [];
      let currentDate = new Date(startDate);
      while (currentDate <= endDate) {
        dates.push(this.$moment(currentDate).format("YYYY-MM-DD"));
        currentDate.setDate(currentDate.getDate() + 1);
      }
      return dates;
    },
    // 时间最终处理方法
    processingTime() {
      const combinedData = [];
      let serialnumber = 1;
      if (this.time3[0]) {
        serialnumber = 3;
      } else if (this.time2[0]) {
        serialnumber = 2;
      } else if (this.time1[0]) {
        serialnumber = 1;
      } else {
        return;
      }
      for (let i = 0; i < this.applydaytime.length; i++) {
        combinedData.push({
          begantime: `${this.applydaytime[i]} ${this.time1[0]}`,
          endtime: `${this.applydaytime[i]} ${this.time1[1]}`,
          xh: serialnumber * i + 1,
        });
        if (serialnumber >= 2) {
          combinedData.push({
            begantime: `${this.applydaytime[i]} ${this.time2[0]}`,
            endtime: `${this.applydaytime[i]} ${this.time2[1]}`,
            xh: serialnumber * i + 2,
          });
        }
        if (serialnumber >= 3) {
          combinedData.push({
            begantime: `${this.applydaytime[i]} ${this.time3[0]}`,
            endtime: `${this.applydaytime[i]} ${this.time3[1]}`,
            xh: serialnumber * i + 3,
          });
        }
      }
      this.form.sendTimeslot = combinedData;
      // 展示数据临时存储日期、早、中、晚
      this.form.sendlimitabegin = this.daytime.join(",");
      if (this.time1) this.form.sendlimitaend = this.time1.join(",");
      if (this.time2) this.form.sendlimitnbegin = this.time2.join(",");
      if (this.time3) this.form.sendlimitnend = this.time3.join(",");
      console.log(combinedData, "combinedData");
    },
  },
};
@@ -1137,6 +1348,12 @@
    font-size: 24px;
  }
}
::v-deep.el-input.is-disabled .el-input__inner {
  background-color: #f5f7fa;
  border-color: #dfe4ed;
  color: rgb(253, 66, 66);
  cursor: not-allowed;
}
::v-deep.el-checkbox-group {
  span {
    font-size: 24px;