WXL
2024-03-25 d84cde7ed98bf0c562a8631e660fd494de9a7d0b
src/views/patient/propaganda/particty.vue
@@ -14,6 +14,7 @@
            title="宣教对象"
            description="在本部选择宣教病人"
          ></el-step>
          <el-step icon="el-icon-user" title="模版确认"></el-step>
        </el-steps>
      </div>
    </div>
@@ -35,51 +36,104 @@
            </div>
            <div class="jic-value">
              <el-form ref="form" :model="form" label-width="105px">
                <el-form-item label="发送时间:">
                <el-form-item label="模版名称:">
                  <el-input
                    style="width: 220px"
                    v-model="form.templatename"
                    placeholder="请在下列选择"
                  />
                </el-form-item>
                <el-form-item label="发送设置:" v-if="currenttype != 2">
                  <el-radio-group v-model="form.sendType">
                    <el-radio :label="1">时间段发送</el-radio>
                    <el-radio :label="3">即刻发送</el-radio>
                  </el-radio-group>
                </el-form-item>
                <el-form-item
                  label="发送日期:"
                  v-if="currenttype != 2 && form.sendType == 1"
                >
                  <el-date-picker
                    v-model="form.name"
                    type="date"
                    placeholder="选择日期"
                    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="发送时间段:">
                <el-form-item
                  label="发送时间段:"
                  v-if="currenttype != 2 && 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
                        @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
                        @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
                        @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">
                    <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
                      v-for="(item, index) in checkboxlist"
                      :key="index"
                      :label="item"
                    ></el-checkbox>
                  </el-checkbox-group>
                </el-form-item>
                <el-form-item label="宣教形式">
                  <el-checkbox-group v-model="checkList">
                    <el-checkbox label="当面"></el-checkbox>
                    <el-checkbox label="多媒体"></el-checkbox>
                    <el-checkbox label="纸质"></el-checkbox>
                    <el-checkbox label="电话"></el-checkbox>
                    <el-checkbox label="短信"></el-checkbox>
                    <el-checkbox label="微信公众号"></el-checkbox>
                    <el-checkbox label="微信小程序"></el-checkbox>
                    <el-checkbox label="钉钉"></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>
          <div class="examine-jic">
            <div class="headline">
              <div>宣教内容列表</div>
              <div>{{ title }}</div>
            </div>
            <div class="examine-jic">
              <div class="jic-value">
@@ -94,14 +148,92 @@
                    v-show="showSearch"
                    label-width="98px"
                  >
                    <el-form-item label="宣教主题">
                    <el-form-item label="宣教主题" v-if="currenttype == 1">
                      <el-input v-model="topqueryParams.name"></el-input>
                    </el-form-item>
                    <el-form-item label="适用疾病">
                    <el-form-item
                      label="随访名称"
                      v-if="currenttype == 2 || currenttype == 3"
                    >
                      <el-input
                        v-model="topqueryParams.name"
                      ></el-input> </el-form-item
                    ><el-form-item
                      label="通知名称"
                      v-if="currenttype == 4 || currenttype == 5"
                    >
                      <el-input
                        v-model="topqueryParams.name"
                      ></el-input> </el-form-item
                    ><el-form-item label="体检套餐" v-if="currenttype == 5">
                      <el-input v-model="topqueryParams.name"></el-input>
                    </el-form-item>
                    <el-form-item label="问卷主题" v-if="currenttype == 6">
                      <el-input v-model="topqueryParams.name"></el-input>
                    </el-form-item>
                    <el-form-item label="适用疾病" v-if="currenttype != 5">
                      <el-input v-model="topqueryParams.name"></el-input>
                    </el-form-item>
                    <el-form-item label="宣教类型" prop="status">
                    <el-form-item
                      label="宣教类型"
                      prop="status"
                      v-if="currenttype == 1"
                    >
                      <el-select
                        v-model="topqueryParams.topic"
                        placeholder="请选择"
                      >
                        <el-option
                          v-for="item in taskoptions"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
                        >
                        </el-option>
                      </el-select>
                    </el-form-item>
                    <el-form-item
                      label="通知类型"
                      prop="status"
                      v-if="currenttype == 4 || currenttype == 5"
                    >
                      <el-select
                        v-model="topqueryParams.topic"
                        placeholder="请选择"
                      >
                        <el-option
                          v-for="item in taskoptions"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
                        >
                        </el-option>
                      </el-select>
                    </el-form-item>
                    <el-form-item
                      label="随访类型"
                      prop="status"
                      v-if="currenttype == 2 || currenttype == 3"
                    >
                      <el-select
                        v-model="topqueryParams.topic"
                        placeholder="请选择"
                      >
                        <el-option
                          v-for="item in taskoptions"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
                        >
                        </el-option>
                      </el-select>
                    </el-form-item>
                    <el-form-item
                      label="问卷类型"
                      prop="status"
                      v-if="currenttype == 6"
                    >
                      <el-select
                        v-model="topqueryParams.topic"
                        placeholder="请选择"
@@ -161,91 +293,15 @@
                    </el-form-item>
                  </el-form>
                  <el-divider></el-divider>
                  <el-table
                    v-loading="loading"
                    :data="userList"
                    @selection-change="handleSelectionChange"
                  >
                    <el-table-column
                      type="selection"
                      width="50"
                      align="center"
                    />
                    <el-table-column
                      label="序号"
                      align="center"
                      key="id"
                      prop="id"
                    />
                    <el-table-column
                      label="宣教名称"
                      align="center"
                      sortable
                      key="name"
                      prop="name"
                      :show-overflow-tooltip="true"
                    />
                    <el-table-column
                      label="宣教模板"
                      align="center"
                      key="impTemplate"
                      prop="impTemplate"
                    />
                    <el-table-column
                      label="创建日期"
                      align="center"
                      key="create_time"
                      prop="create_time"
                    />
                    <el-table-column
                      label="创建人"
                      align="center"
                      key="update_by"
                      prop="update_by"
                      sortable
                      width="120"
                      :show-overflow-tooltip="true"
                    />
                    <el-table-column
                      label="操作"
                      align="center"
                      width="120"
                      class-name="small-padding fixed-width"
                    >
                      <template slot-scope="scope">
                        <el-button
                          size="medium"
                          type="text"
                          @click="handleUpdate(scope.row)"
                          v-hasPermi="['system:user:edit']"
                          ><span class="button-zx"
                            ><i class="el-icon-s-promotion"></i>开始执行</span
                          ></el-button
                        >
                      </template>
                    </el-table-column>
                    <el-table-column
                      label="任务详情"
                      align="center"
                      width="200"
                      class-name="small-padding fixed-width"
                    >
                      <template slot-scope="scope">
                        <el-button
                          size="medium"
                          type="text"
                          @click="handleUpdate(scope.row)"
                          v-hasPermi="['system:user:edit']"
                          ><span class="button-xq"
                            ><i class="el-icon-s-data"></i>选择</span
                          ></el-button
                        >
                      </template>
                    </el-table-column>
                  </el-table>
                  <!-- 选择模版列表 -->
                  <SFtable
                    @selectfn="selectfn"
                    :currentList="userList"
                    :tableLabel="tableLabel"
                    :controlsc="false"
                    :multiplechoice="false"
                    :typeinfo="1"
                  />
                  <pagination
                    v-show="total > 0"
                    :total="total"
@@ -258,7 +314,7 @@
            </div>
          </div>
        </div>
        <el-button type="success" @click="submitForm('ruleForm')">{{
        <el-button type="success" @click="nextstep('ruleForm')">{{
          quote ? "立即创建" : "任务详情设置"
        }}</el-button>
        <el-button @click="resetForm('ruleForm')">重置</el-button>
@@ -269,6 +325,54 @@
        <el-alert title="在本阶段选择宣教病人" type="success" effect="dark">
        </el-alert>
        <div class="leftvlue-jbxx">
          <div class="examine-jic">
            <div class="headline">
              <div>变量匹配量参</div>
            </div>
            <div class="examine-jic">
              <div class="jic-value">
                <el-row :gutter="20">
                  <el-table :data="variableList" style="width: 100%">
                    <el-table-column
                      prop="variablename"
                      align="center"
                      label="变量名称"
                    >
                    </el-table-column>
                    <el-table-column
                      prop="character"
                      align="center"
                      label="匹配符"
                    >
                    </el-table-column>
                    <el-table-column label="替换值" align="center">
                      <template slot-scope="scope">
                        <el-input
                          v-model="scope.row.Replacementvalue"
                          placeholder="请输入内容"
                        ></el-input>
                      </template>
                    </el-table-column>
                    <el-table-column label="操作" align="center">
                      <template slot-scope="scope">
                        <el-button
                          size="mini"
                          @click="variableEdit(scope.$index, scope.row)"
                          >编辑</el-button
                        >
                        <el-button
                          size="mini"
                          type="danger"
                          @click="variableDelete(scope.$index, scope.row)"
                          >删除</el-button
                        >
                      </template>
                    </el-table-column>
                  </el-table>
                </el-row>
              </div>
            </div>
          </div>
          <div class="examine-jic">
            <div class="headline">
              <div>患者列表</div>
@@ -361,7 +465,7 @@
                  <el-row :gutter="10" class="mb8">
                    <el-col :span="1.5">
                      <el-select
                        v-model="tasktopic"
                        v-model="patientqueryParams.allhosp"
                        placeholder="请选择新增类型"
                      >
                        <el-option
@@ -379,9 +483,8 @@
                        plain
                        icon="el-icon-plus"
                        size="medium"
                        :disabled="!tasktopic"
                        @click="handleAdd"
                        v-hasPermi="['system:user:add']"
                        :disabled="!patientqueryParams.allhosp"
                        @click="handleAddpatient"
                        >新增</el-button
                      >
                    </el-col>
@@ -394,152 +497,21 @@
                        size="medium"
                        :disabled="multiple"
                        @click="handleDelete"
                        v-hasPermi="['system:user:remove']"
                        >删除</el-button
                      >
                    </el-col>
                    <!-- <el-col :span="1.5"> </el-col> -->
                  </el-row>
                  <!-- <right-toolbar
                :showSearch.sync="showSearch"
                @queryTable="getList"
                :columns="columns"
              ></right-toolbar> -->
                  <el-table
                    v-loading="loading"
                    :data="userList"
                    @selection-change="handleSelectionChange"
                  >
                    <el-table-column
                      type="selection"
                      width="50"
                      align="center"
                    />
                    <el-table-column
                      label="序号"
                      align="center"
                      key="id"
                      prop="id"
                    />
                    <el-table-column
                      label="任务名称"
                      align="center"
                      sortable
                      key="name"
                      prop="name"
                      :show-overflow-tooltip="true"
                    />
                    <el-table-column
                      label="服务模板"
                      align="center"
                      key="impTemplate"
                      prop="impTemplate"
                    />
                    <el-table-column
                      label="创建日期"
                      align="center"
                      key="create_time"
                      prop="create_time"
                    />
                    <el-table-column
                      label="执行状态"
                      align="center"
                      key="phonenumber"
                      prop="phonenumber"
                      width="120"
                    />
                    <el-table-column
                      label="执行状态"
                      align="center"
                      key="topicnumber"
                      prop="topicnumber"
                      width="120"
                      :show-overflow-tooltip="true"
                    >
                      <template slot-scope="scope">
                        <div>执行完成/执行失败</div>
                      </template>
                    </el-table-column>
                    <el-table-column
                      label="更新人"
                      align="center"
                      key="update_by"
                      prop="update_by"
                      sortable
                      width="120"
                      :show-overflow-tooltip="true"
                    />
                    <el-table-column
                      label="更新时间"
                      sortable
                      align="center"
                      prop="update_time"
                      width="160"
                    >
                      <template slot-scope="scope">
                        <span>{{ parseTime(scope.row.createTime) }}</span>
                      </template>
                    </el-table-column>
                    <el-table-column
                      label="操作"
                      align="center"
                      width="120"
                      class-name="small-padding fixed-width"
                    >
                      <template slot-scope="scope">
                        <el-button
                          size="medium"
                          type="text"
                          @click="handleUpdate(scope.row)"
                          v-hasPermi="['system:user:edit']"
                          ><span class="button-zx"
                            ><i class="el-icon-s-promotion"></i>开始执行</span
                          ></el-button
                        >
                      </template>
                    </el-table-column>
                    <el-table-column
                      label="任务详情"
                      align="center"
                      width="200"
                      class-name="small-padding fixed-width"
                    >
                      <template slot-scope="scope">
                        <el-button
                          size="medium"
                          type="text"
                          @click="handleUpdate(scope.row)"
                          v-hasPermi="['system:user:edit']"
                          ><span class="button-xq"
                            ><i class="el-icon-s-data"></i>详情</span
                          ></el-button
                        >
                        <el-button
                          size="medium"
                          type="text"
                          @click="handleUpdate(scope.row)"
                          v-hasPermi="['system:user:edit']"
                          ><span class="button-bb"
                            ><i class="el-icon-s-order"></i>报表</span
                          ></el-button
                        >
                        <el-button
                          size="medium"
                          type="text"
                          @click="handleUpdate(scope.row)"
                          v-hasPermi="['system:user:edit']"
                          ><span class="button-sc"
                            ><i class="el-icon-delete"></i>删除</span
                          ></el-button
                        >
                      </template>
                    </el-table-column>
                  </el-table>
                  <!-- 选中患者列表 -->
                  <SFtable
                    @handleUpdate="handleUpdate"
                    @handleSelectionChange="handleSelectionChange"
                    :currentList="form.patTaskRelevances"
                    :tableLabel="tableLabelhz"
                    :controlxz="false"
                    :typeinfo="2"
                  />
                  <pagination
                    v-show="total > 0"
                    :total="total"
@@ -640,73 +612,16 @@
                >
              </el-form-item>
            </el-form>
            <el-table
              v-loading="patientloading"
              :data="patientuserList"
              @selection-change="handleSelectionChange"
            >
              <el-table-column type="selection" width="50" align="center" />
              <el-table-column
                label="序号"
                align="center"
                key="patid"
                prop="patid"
              />
              <el-table-column
                label="患者名称"
                align="center"
                sortable
                key="name"
                prop="name"
                :show-overflow-tooltip="true"
              />
              <el-table-column
                label="患者来源"
                align="center"
                key="source"
                prop="source"
              />
              <el-table-column
                label="手机号码"
                align="center"
                key="telcode"
                prop="telcode"
                width="120"
                :show-overflow-tooltip="true"
              />
              <el-table-column
                label="任务详情"
                align="center"
                width="200"
                class-name="small-padding fixed-width"
              >
                <template slot-scope="scope">
                  <el-button
                    size="medium"
                    type="text"
                    @click="handleUpdate(scope.row)"
                    v-hasPermi="['system:user:edit']"
                    ><span class="button-xq"
                      ><i class="el-icon-s-data"></i>详情</span
                    ></el-button
                  >
                  <el-button
                    size="medium"
                    type="text"
                    @click="handleUpdate(scope.row)"
                    v-hasPermi="['system:user:edit']"
                    ><span class="button-sc"
                      ><i class="el-icon-delete"></i>删除</span
                    ></el-button
                  >
                </template>
              </el-table-column>
            </el-table>
            <!-- 选择患者列表 -->
            <SFtable
              @handleUpdate="handleUpdate"
              @handleSelectionChange="handleSelectionChange"
              :currentList="patientuserList"
              :tableLabel="tableLabelhz"
              :serialnumber="false"
              :controlsc="false"
              :typeinfo="3"
            />
          </el-row>
          <pagination
            v-show="patienttotal > 0"
@@ -728,25 +643,95 @@
</template>
<script>
import { messagelistpatient } from "@/api/patient/homepage";
import store from "@/store";
import {
  listsvr_prjtask,
  getsvr_prjtask,
  addsvr_prjtask,
  updatesvr_prjtask,
  delsvr_prjtask,
  Addpatienttask,
} from "@/api/smartorpor/svr_prjtask";
import { listpat_archive } from "@/api/smartorpor/pat_archive";
import { listsvr_prjtaskline } from "@/api/smartorpor/svr_prjtaskline";
  getTaskpatient,
  getlibrarylist,
  getFollowuplist,
  getQtemplatelist,
  edithetask,
  addhetask,
  gethetaskinfo,
  delhetaskinfo,
  Editsingletask,
} from "@/api/AiCentre/index";
import SFtable from "@/components/SFtable"; //表格组件
export default {
  name: "ServiceDetails",
  data() {
    return {
      title: "宣教内容列表",
      currenttype: 1, //1宣教2门诊3出院4复诊5体检6问卷
      id: "",
      Editprogress: 1, //编辑进度
      loading: false, // 遮罩层
      patientloading: false, // 遮罩层
      dialogVisible: false, //任务详情弹框
      dialogVisiblepatient: false, //添加患者弹框
      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: "update_by" },
      ],
      tableLabelxj: [
        { label: "宣教名称", width: "", prop: "preachname" },
        { label: "宣教描述", width: "", prop: "note" },
        { label: "宣教形式", width: "", prop: "playType" },
        { label: "适用方式", width: "", prop: "suitway" },
        { label: "创建日期", width: "", prop: "uploadTime" },
        { label: "创建人(缺)", width: "", prop: "update_by" },
      ],
      tableLabelmz: [
        { label: "随访名称", width: "118", prop: "templateName" },
        { label: "随访模版", width: "130", prop: "impTemplate" },
        { label: "创建日期", width: "136", prop: "uploadTime" },
        { label: "创建人(缺)", width: "130", prop: "update_by" },
      ],
      tableLabelcy: [
        { label: "随访名称", width: "118", prop: "templateName" },
        { label: "随访计划", width: "130", prop: "impTemplate" },
        { label: "创建日期", width: "136", prop: "uploadTime" },
        { label: "创建人(缺)", width: "130", prop: "update_by" },
      ],
      tableLabelfz: [
        { label: "通知名称", width: "118", prop: "templateName" },
        { label: "通知模版", width: "130", prop: "impTemplate" },
        { label: "创建日期", width: "136", prop: "uploadTime" },
        { label: "创建人(缺)", width: "130", prop: "update_by" },
      ],
      tableLabeltj: [
        { label: "通知名称", width: "118", prop: "name" },
        { label: "通知模版", width: "130", prop: "impTemplate" },
        { label: "创建日期", width: "136", prop: "uploadTime" },
        { label: "创建人(缺)", width: "130", prop: "update_by" },
      ],
      tableLabelwj: [
        { label: "问卷名称", width: "118", prop: "name" },
        { label: "问卷模版", width: "130", prop: "impTemplate" },
        { label: "创建日期", width: "136", prop: "uploadTime" },
        { label: "创建人(缺)", width: "130", prop: "update_by" },
      ],
      // 变量
      tableLabelvariable: [
        { label: "变量名称", width: "", prop: "variablename" },
        { label: "匹配符", width: "", prop: "character" },
        { label: "替换值", width: "", prop: "Replacementvalue" },
      ],
      // 时间处理
      daytime: [], //日期
      applydaytime: [], //计算日期
      time1: "", //上午时间段
      time2: "", //下午时间段
      time3: "", //晚上时间段
      topqueryParams: {
        pageNum: 1, //
        pageSize: 10,
@@ -772,75 +757,199 @@
      // 非多个禁用
      multiple: true,
      // 用户表格数据
      userList: null,
      patientuserList: null,
      sonuserList: null,
      userList: [], //模版列表
      patientuserList: [], //选择患者列表
      sonuserList: [], //选中患者列表
      variableList: [
        {
          variablename: "姓名",
          character: "${name}",
          Replacementvalue: "龙傲天",
        },
        {
          variablename: "地址",
          character: "${dzz}",
          Replacementvalue: "龙宫",
        },
        {
          variablename: "电话",
          character: "${dhh}",
          Replacementvalue: "八个八",
        },
      ], //变量列表
      variableListTime: [],
      tasktopic: null, //新增类型
      SelectPatientslist: [],
      form: {
        name: "",
        region: "",
        date1: "",
        date2: "",
        delivery: false,
        type: [],
        resource: "",
        desc: "",
        serviceform: [],
        patTaskRelevances: [],
        sendType: 1,
        templatename: "",
        templateid: null,
      },
      options: [
        {
          value: "选项1",
          label: "黄金糕",
        },
        {
          value: "选项2",
          label: "双皮奶",
        },
        {
          value: "选项3",
          label: "蚵仔煎",
        },
        {
          value: "选项4",
          label: "龙须面",
        },
        {
          value: "选项5",
          label: "北京烤鸭",
        },
      ],
      taskoptions: [
        {
          value: "1",
          label: "通知",
          label: "出院病人",
        },
        {
          value: "2",
          label: "随访",
          label: "门诊病人",
        },
        {
          value: "3",
          label: "问卷",
        },
        {
          value: "4",
          label: "宣教",
          label: "体检病人",
        },
      ],
      quote: false,
    };
  },
  components: { SFtable },
  created() {
    this.id = this.$route.query.id;
    this.form.type = this.$route.query.type;
    this.Addsubtask();
    this.Getsubtask();
    this.Acquisitiontype();
  },
  methods: {
    // 下一步
    submitForm(formName) {
    // {
    //   姓名: { "${name}": "龙傲天" },
    //   地址: { "${dzz}": "龙宫" },
    //   电话: { "${dhh}": "八个八" },
    // }
    // 变量转换对象转数组
    convertFormat1ToFormat2(data) {
      let result = [];
      for (let key in data) {
        let innerKey = Object.keys(data[key])[0];
        result.push({
          name: key,
          value: innerKey,
          fill: data[key][innerKey],
        });
      }
      return result;
    },
    // 数组转对象
    convertFormat2ToFormat1(data) {
      let result = {};
      data.forEach((item) => {
        let innerObj = {};
        innerObj[item.value] = item.fill;
        result[item.name] = innerObj;
      });
      return result;
    },
    // 获取当前类型
    Acquisitiontype() {
      let queryParams = {
        pageNum: 1,
        pageSize: 10,
        isavailable: "",
      };
      this.currenttype = this.$route.query.type;
      console.log(this.currenttype, "1");
      if (this.currenttype == 1) {
        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) {
        this.title = "随访内容列表";
        this.tableLabel = this.tableLabelmz;
        this.checkboxlist = ["线下", "纸质", "语音", "短信", "微信公众号"];
        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) {
        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 = ["纸质", "语音", "短信", "微信公众号"];
        getFollowuplist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
        });
      } else if (this.currenttype == 6) {
        this.title = "问卷内容列表";
        this.tableLabel = this.tableLabelwj;
        this.checkboxlist = [
          "线下",
          "视频",
          "纸质",
          "语音",
          "短信",
          "微信公众号",
          "微信小程序",
          "钉钉",
        ];
        getQtemplatelist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
        });
      }
    },
    nextstep() {
      if (this.Editprogress <= 3) {
        return this.Editprogress++;
      }
    },
    // 保存
    submitForm(formName) {
      this.form.serviceform = this.checkList.join(",");
      this.form.textParam = {
        姓名: { "${name}": "龙傲天" },
        地址: { "${dzz}": "龙宫" },
        电话: { "${dhh}": "八个八" },
      };
      if (this.form.id) {
        this.form.isoperation = 2;
      } else {
        this.form.isoperation = 1;
      }
      Editsingletask(this.form).then((response) => {
        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) {
@@ -851,21 +960,21 @@
      //   }
      // });
    },
    // 子任务一级弹框
    handleAdd() {
      this.multiple = true;
      listsvr_prjtaskline(this.deliverytopqueryParams).then((response) => {
        console.log(response);
        this.sonuserList = response.rows;
        this.sontotal = response.total;
        this.loading = false;
      });
      this.dialogVisible = true;
    // ----------------------表格子组件事件
    // 选择
    selectfn(row, type) {
      console.log(row);
      console.log(type);
      if (type == 1) {
        this.form.templatename = row.preachname;
        this.form.templateid = row.templateid;
      } else if (type == 2) {
      } else if (type == 3) {
      }
    },
    // 子任务二级弹框
    handleAddpatient() {
      console.log(this.multiple);
      listpat_archive(this.patientqueryParams).then((response) => {
    handleAddpatient(row) {
      getTaskpatient(this.patientqueryParams).then((response) => {
        console.log(response);
        this.patientuserList = response.rows;
        this.patienttotal = response.total;
@@ -878,6 +987,8 @@
    handleExport() {},
    // 多选框选中数据
    handleSelectionChange(selection) {
      console.log("多选患者");
      this.SelectPatientslist = selection;
      this.ids = null;
      this.ids = selection.map((item) => item.patid).join(",");
      // let result = this.ids.join(",");
@@ -887,9 +998,6 @@
    getList() {},
    handleQuery() {},
    resetQuery() {},
    handleCloserw() {
      this.dialogVisible = false;
    },
    handleClosehz() {
      this.dialogVisiblepatient = false;
    },
@@ -915,28 +1023,90 @@
    },
    // 新增派送患者
    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);
      // this.topqueryParams.pid = this.$route.query.id;
      // console.log(this.topqueryParams.pid);
      listsvr_prjtask(this.topqueryParams).then((res) => {
      console.log(this.topqueryParams, "aa");
      messagelistpatient(this.topqueryParams).then((res) => {
        this.userList = res.rows;
        this.total = res.total;
        console.log(this.userList);
        console.log(this.userList, "ss");
      });
    },
    /** 查询患者列表 */
    // 变量---------------
    variableEdit(index, 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;
      console.log(combinedData, "combinedData");
    },
  },
};
</script>