WXL
2024-09-27 476569c60192a7ff3b2c291e7eb72f1c2c6b9aaa
测试完成
已修改23个文件
2572 ■■■■■ 文件已修改
src/api/AiCentre/external.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/followvisit/discharge/index.vue 568 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/followvisit/outpatient/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/followvisit/record/detailpage/index.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/followvisit/satisfaction/particulars/index.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/followvisit/tasklist/FollowupDetails/index.vue 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/followvisit/tasklist/index.vue 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/outsideChainxj.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/patient/follow/index.vue 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/patient/medtechnician/index.vue 795 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/patient/patient/behospitalized.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/patient/patient/hospital.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/patient/patient/index.vue 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/patient/propaganda/Missioncreation.vue 105 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/patient/propaganda/QuestionnaireTask.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/patient/propaganda/index.vue 838 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/patient/questionnaire/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/register.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sfstatistics/percentage/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sfstatistics/propaganda/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sfstatistics/statement/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/AiCentre/external.js
@@ -19,7 +19,6 @@
  });
}
// 缓存问卷
export function Cachequestionnaire(data) {
  return request({
src/views/followvisit/discharge/index.vue
@@ -1,5 +1,29 @@
<template>
  <div class="app-container">
    <div class="leftvlue" style="margin-bottom: 20px;">
        <el-row :gutter="10">
          <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index">
            <el-card
              shadow="hover"
              :body-style="item.router ? ' cursor: pointer' : 'cursor: default'"
            >
              <div style="padding: 8px" @click="$router.push(item.router)">
                <span>{{ item.name }}</span>
                <div
                  style="
                    text-align: center;
                    font-size: 18px;
                    margin-top: 10px;
                    font-weight: 600;
                  "
                >
                  {{ item.value }}
                </div>
              </div>
            </el-card>
          </el-col>
        </el-row>
      </div>
    <el-row :gutter="20">
      <!--用户数据-->
      <el-form
@@ -11,12 +35,10 @@
        label-width="98px"
      >
        <el-form-item label="任务名称">
          <el-input v-model="topqueryParams.taskName"></el-input>
          <el-input v-model="topqueryParams.taskName" placeholder="请选择任务名称"></el-input>
        </el-form-item>
        <!-- <el-form-item label="发起人">
          <el-input v-model="topqueryParams.createBy"></el-input>
        </el-form-item> -->
        <!-- <el-form-item label="审核时间">
        <el-form-item label="出院时间">
          <el-date-picker
            v-model="dateRange"
            style="width: 240px"
@@ -27,36 +49,29 @@
            end-placeholder="结束日期"
          ></el-date-picker>
        </el-form-item>
        <el-form-item label="随访类型" prop="status">
          <el-select v-model="topqueryParams.topic" placeholder="请选择">
        <el-form-item label="患者姓名" prop="sendname">
          <el-input
            v-model="topqueryParams.sendname"
            placeholder="请输入患者姓名"
          ></el-input>
        </el-form-item>
        <el-form-item label="患者范围" prop="status">
          <el-select
            v-model="topqueryParams.searchscope"
            placeholder="请选择患者范围"
          >
            <el-option
              v-for="item in topicoptions"
              v-for="item in source"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
        </el-form-item> -->
        <el-form-item label="患者姓名" prop="sendname">
          <el-input v-model="topqueryParams.sendname" placeholder="请输入患者姓名"></el-input>
        </el-form-item>
        <el-form-item label="患者来源" prop="status">
          <el-select
                v-model="topqueryParams.searchscope"
                placeholder="请选择患者来源"
              >
                <el-option
                  v-for="item in source"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                >
                </el-option>
              </el-select>
        </el-form-item>
        <el-form-item label="随访状态" prop="status">
        <el-form-item label="任务状态" prop="status">
          <el-select v-model="topqueryParams.sendstate" placeholder="请选择">
            <el-option
              v-for="item in topicoptions"
@@ -67,17 +82,7 @@
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="结果状态" prop="status">
          <el-select v-model="topqueryParams.excep" placeholder="请选择">
            <el-option
              v-for="item in topicoptionsyj"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item>
          <el-button
            type="primary"
@@ -103,7 +108,7 @@
            >新增</el-button
          >
        </el-col>
        <!-- <el-col :span="1.5">
        <el-col :span="1.5">
          <div class="documentf">
            <div class="document">
              <el-button
@@ -122,55 +127,12 @@
          <div class="documentf">
            <div class="document">
              <el-button
                type="success"
                plain
                icon="el-icon-download"
                size="medium"
                @click="toleadExport"
                v-hasPermi="['system:user:export']"
                >导入</el-button
              >
            </div>
          </div>
        </el-col>
        <el-col :span="1.5">
          <div class="documentf">
            <div class="document">
              <el-button
                type="info"
                icon="el-icon-refresh"
                size="medium"
                @click="TaskReset"
                v-hasPermi="['system:user:export']"
                >任务重置</el-button
              >
            </div>
          </div>
        </el-col>
        <el-col :span="1.5">
          <div class="documentf">
            <div class="document">
              <el-button
                type="success"
                icon="el-icon-position"
                size="medium"
                @click="AllStarted"
                v-hasPermi="['system:user:export']"
                >全部开始</el-button
              >
            </div>
          </div>
        </el-col>
        <el-col :span="1.5">
          <div class="documentf">
            <div class="document">
              <el-button
                type="warning"
                icon="el-icon-remove"
                plain
                icon="el-icon-warning-outline"
                size="medium"
                @click="AllStop"
                v-hasPermi="['system:user:export']"
                >全部停止</el-button
                @click="toleadExport(1)"
                >执行失败</el-button
              >
            </div>
          </div>
@@ -179,27 +141,28 @@
          <div class="documentf">
            <div class="document">
              <el-button
                type="primary"
                icon="el-icon-remove"
                type="danger"
                plain
                icon="el-icon-warning"
                size="medium"
                @click="Sendtimesetting"
                v-hasPermi="['system:user:export']"
                >发送时间设置</el-button
                @click="toleadExport(2)"
                >结果异常</el-button
              >
            </div>
          </div>
        </el-col> -->
        <!-- <el-col :span="1.5"> </el-col> -->
        </el-col>
      </el-row>
      <el-table
        v-loading="loading"
        :data="userList"
         height="660"
         :row-class-name="tableRowClassName"
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="50" align="center" />
        <el-table-column
          label="任务名称"
          fixed
          align="center"
          key="taskName"
          prop="taskName"
@@ -208,10 +171,141 @@
        <!-- <el-table-column label="序号" fixed align="center" key="id" prop="id" /> -->
        <el-table-column
          label="姓名"
          fixed
          align="center"
          key="sendname"
          prop="sendname"
        />
        <el-table-column
        label="任务状态"
        align="center"
        key="sendstate"
        prop="sendstate"
        width="120"
        >
        <template slot-scope="scope">
          <div v-if="scope.row.sendstate == 1">
            <el-tag type="primary" :disable-transitions="false"
                >被领取</el-tag
                >
              </div>
              <div v-if="scope.row.sendstate == 2">
                <el-tag type="primary" :disable-transitions="false"
                >待发送</el-tag
                >
              </div>
              <div v-if="scope.row.sendstate == 3">
                <el-tag type="success" :disable-transitions="false"
                >已发送未领取</el-tag
                >
              </div>
              <div v-if="scope.row.sendstate == 4">
                <el-tag type="info" :disable-transitions="false">不执行</el-tag>
              </div>
              <div v-if="scope.row.sendstate == 5">
                <el-tag type="danger" :disable-transitions="false"
                >发送失败</el-tag
                >
              </div>
              <div v-if="scope.row.sendstate == 6">
                <el-tag type="danger" :disable-transitions="false">已完成</el-tag>
              </div>
            </template>
          </el-table-column>
          <el-table-column
          label="任务异常说明"
          width="120"
          align="center"
          key="remark"
          prop="remark"
        />
          <!-- <el-table-column
          label="结果状态"
          align="center"
          key="excep"
          prop="excep"
          width="120"
          >
          <template slot-scope="scope">
            <div v-if="scope.row.sendstate == 6">
              <dict-tag
              :options="dict.type.sys_yujing"
              :value="scope.row.excep"
              />
            </div>
            <div v-else>
              <span></span>
            </div>
          </template>
        </el-table-column> -->
        <el-table-column
        label="人工处理意见"
        align="center"
        key="suggest"
        prop="suggest"
        width="120"
        >
        <template slot-scope="scope">
          <dict-tag
          :options="dict.type.sys_suggest"
          :value="scope.row.suggest"
          />
          </template>
        </el-table-column>
        <el-table-column
          label="随访人员"
          align="center"
          key="createBy"
          prop="createBy"
          width="120"
        />
        <el-table-column
          label="随访时间"
          sortable
          align="center"
          prop="finishtime"
          width="160"
        >
          <template slot-scope="scope">
            <span>{{ parseTime(scope.row.finishtime) }}</span>
          </template>
        </el-table-column>
        <el-table-column
        label="出院日期"
        width="200"
        align="center"
        key="endtime"
        prop="endtime"
        >
        <template slot-scope="scope">
          <span>{{ formatTime(scope.row.endtime) }}</span>
        </template></el-table-column
        >
        <el-table-column
        label="应随访日期"
        width="200"
        align="center"
        key="longSendTime"
        prop="longSendTime"
        >
        <template slot-scope="scope">
          <span>{{ formatTime(scope.row.longSendTime) }}</span>
          </template></el-table-column
          >
          <el-table-column
          label="出院天数"
          width="120"
          align="center"
          key="endDay"
          prop="endDay"
          >
          <template slot-scope="scope">
            <span>{{
              scope.row.endDay ? scope.row.endDay + "天" : "日期缺失"
            }}</span>
          </template>
        </el-table-column>
        <el-table-column
          label="身份证号码"
          width="200"
@@ -220,99 +314,12 @@
          prop="sfzh"
        />
        <el-table-column
          label="随访状态"
          align="center"
          key="sendstate"
          prop="sendstate"
          width="120"
        >
          <template slot-scope="scope">
            <div v-if="scope.row.sendstate == 1">
              <el-tag type="primary"
              :disable-transitions="false">被领取</el-tag></div>
            <div v-if="scope.row.sendstate == 2">
              <el-tag type="primary"
              :disable-transitions="false">待发送</el-tag>
              </div>
            <div v-if="scope.row.sendstate == 3"> <el-tag type="success"
              :disable-transitions="false">已发送</el-tag></div>
            <div v-if="scope.row.sendstate == 4"> <el-tag type="info"
              :disable-transitions="false">不执行</el-tag></div>
            <div v-if="scope.row.sendstate == 5"> <el-tag type="danger"
              :disable-transitions="false">发送失败</el-tag></div>
              <div v-if="scope.row.sendstate == 6"> <el-tag type="danger"
                :disable-transitions="false">已完成</el-tag></div>
          </template>
        </el-table-column>
        <el-table-column
          label="结果状态"
          align="center"
          key="excep"
          prop="excep"
          width="120"
        >
          <template slot-scope="scope">
            <div v-if="scope.row.sendstate == 6">
              <dict-tag
                :options="dict.type.sys_yujing"
                :value="scope.row.excep"
              />
            </div>
            <div v-else>
              <span></span>
            </div>
          </template>
        </el-table-column>
        <el-table-column
          label="处理意见"
          align="center"
          key="suggest"
          prop="suggest"
          width="120"
        >
          <template slot-scope="scope">
            <dict-tag
              :options="dict.type.sys_suggest"
              :value="scope.row.suggest"
            />
          </template>
        </el-table-column>
        <el-table-column
          label="出院日期"
          label="联系电话"
          width="200"
          align="center"
          key="endtime"
          prop="endtime"
        >
          <template slot-scope="scope">
            <span>{{ formatTime(scope.row.endtime) }}</span>
          </template></el-table-column
        >
        <el-table-column
          label="应随访日期"
          width="200"
          align="center"
          key="longSendTime"
          prop="longSendTime"
        >
          <template slot-scope="scope">
            <span>{{ formatTime(scope.row.longSendTime) }}</span>
          </template></el-table-column
        >
        <el-table-column
          label="出院天数"
          width="120"
          align="center"
          key="endDay"
          prop="endDay"
        >
          <template slot-scope="scope">
            <span>{{
              scope.row.endDay ? scope.row.endDay + "天" : "日期缺失"
            }}</span>
          </template>
        </el-table-column>
          key="phone"
          prop="phone"
        />
        <el-table-column
          label="责任护士"
          width="120"
@@ -326,13 +333,6 @@
          align="center"
          key="drname"
          prop="drname"
        />
        <el-table-column
          label="随访异常记录"
          width="120"
          align="center"
          key="remark"
          prop="remark"
        />
@@ -376,20 +376,14 @@
        </el-table-column> -->
        <el-table-column
          label="模板名称"
          label="出院随访模板名称"
          align="center"
          key="templatename"
          prop="templatename"
          width="200"
        />
        <el-table-column
          label="随访人员"
          align="center"
          key="createBy"
          prop="createBy"
          width="120"
        />
        <!-- <el-table-column
          label="责任医师"
          align="center"
@@ -423,19 +417,9 @@
            <span v-else>即刻发送</span>
          </template>
        </el-table-column> -->
        <el-table-column
          label="随访时间"
          sortable
          align="center"
          prop="finishtime"
          width="160"
        >
          <template slot-scope="scope">
            <span>{{ parseTime(scope.row.finishtime) }}</span>
          </template>
        </el-table-column>
        <!-- <el-table-column
          label="随访状态"
          label="任务状态"
          fixed="right"
          align="center"
          key="sendstate"
@@ -483,20 +467,6 @@
                @click="handlestop(scope.row)"
                v-hasPermi="['system:user:edit']"
                ><span class="button-sc"><i class="el-icon-delete"></i></span
              ></el-button>
            </el-tooltip> -->
            <!-- <el-tooltip
              class="item"
              effect="dark"
              content="查看任务详情"
              placement="top"
            >
              <el-button
                size="medium"
                type="text"
                @click="Seedetails(scope.row)"
                v-hasPermi="['system:user:edit']"
                ><span class="button-zx"><i class="el-icon-s-order"></i></span
              ></el-button>
            </el-tooltip> -->
            <el-button size="medium" type="text" @click="Seedetails(scope.row)"
@@ -730,57 +700,35 @@
        },
      ],
      loading: false,
      states: [
        "Alabama",
        "Alaska",
        "Arizona",
        "Arkansas",
        "California",
        "Colorado",
        "Connecticut",
        "Delaware",
        "Florida",
        "Georgia",
        "Hawaii",
        "Idaho",
        "Illinois",
        "Indiana",
        "Iowa",
        "Kansas",
        "Kentucky",
        "Louisiana",
        "Maine",
        "Maryland",
        "Massachusetts",
        "Michigan",
        "Minnesota",
        "Mississippi",
        "Missouri",
        "Montana",
        "Nebraska",
        "Nevada",
        "New Hampshire",
        "New Jersey",
        "New Mexico",
        "New York",
        "North Carolina",
        "North Dakota",
        "Ohio",
        "Oklahoma",
        "Oregon",
        "Pennsylvania",
        "Rhode Island",
        "South Carolina",
        "South Dakota",
        "Tennessee",
        "Texas",
        "Utah",
        "Vermont",
        "Virginia",
        "Washington",
        "West Virginia",
        "Wisconsin",
        "Wyoming",
      cardlist: [
        {
          name: "全部服务",
          value: 0,
        },
        {
          name: "应随访",
          value: 0,
        },
        {
          name: "不执行",
          value: 0,
        },
        {
          name: "异常",
          value: 0,
        },
        {
          name: "发送失败",
          value: 0,
        },
        {
          name: "被领取",
          value: 0,
        },
        {
          name: "已发送未领取",
          value: 0,
        },
      ],
      pickerOptions: {
        disabledDate(time) {
@@ -825,6 +773,7 @@
        pageNum: 1,
        pageSize: 10,
        serviceType: 2,
        searchscope:2,
      },
      propss: { multiple: true },
      options: [],
@@ -840,7 +789,7 @@
        },
        {
          value: 3,
          label: "已发送",
          label: "已发送未领取",
        },
        {
          value: 4,
@@ -878,11 +827,8 @@
      this.initPassword = response.msg;
    });
  },
  // 搜索
  mounted() {
    this.list = this.states.map((item) => {
      return { value: `value:${item}`, label: `label:${item}` };
    });
  activated() {
    this.getList();
  },
  methods: {
    /** 查询门诊随访服务列表 */
@@ -891,11 +837,11 @@
        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.topqueryParams.leavehospitaldistrictcodes=null;
        this.topqueryParams.leavehospitaldistrictcodes = null;
      } else if (this.topqueryParams.searchscope == 2) {
        this.topqueryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
          this.topqueryParams.leaveldeptcodes=null;
        this.topqueryParams.leaveldeptcodes = null;
      } else {
        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
@@ -905,7 +851,14 @@
      }
      this.loading = true;
      getTaskservelist(this.topqueryParams).then((response) => {
        this.userList = response.rows;
        this.userList = response.rows[0].serviceSubtaskList;
        this.cardlist[0].value=Number(response.rows[0].wzx)+Number(response.rows[0].ysf);
        this.cardlist[1].value=response.rows[0].ysf;
        this.cardlist[2].value=response.rows[0].wzx;
        this.cardlist[3].value=response.rows[0].yc;
        this.cardlist[4].value=response.rows[0].fssb;
        this.cardlist[5].value=response.rows[0].blq;
        this.cardlist[6].value=response.rows[0].yfs;
        this.userList.forEach((item) => {
          if (item.endtime) {
            item.endDay = this.daysBetween(item.endtime);
@@ -977,11 +930,11 @@
        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.topqueryParams.leavehospitaldistrictcodes=null;
        this.topqueryParams.leavehospitaldistrictcodes = null;
      } else if (this.topqueryParams.searchscope == 2) {
        this.topqueryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
          this.topqueryParams.leaveldeptcodes=null;
        this.topqueryParams.leaveldeptcodes = null;
      } else {
        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
@@ -990,12 +943,20 @@
          store.getters.belongWards.map((obj) => obj.districtCode);
      }
      this.topqueryParams.pageNum = 1;
      this.topqueryParams.startOutHospTime = this.dateRange[0];
      this.topqueryParams.endOutHospTime = this.dateRange[1];
      this.getList();
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.dateRange = [];
      this.topqueryParams = {};
      this.topqueryParams = {
        pageNum: 1,
        pageSize: 10,
        serviceType: 2,
        searchscope:2,
      };
      this.handleQuery();
    },
    // 多选框选中数据
@@ -1133,11 +1094,19 @@
    Seedetails(row) {
      this.$router.push({
        path: "/followvisit/record/detailpage/",
        query: { taskid: row.taskid, patid: row.patid,id: row.id},
        query: { taskid: row.taskid, patid: row.patid, id: row.id },
      });
    },
    // 导入按钮
    toleadExport() {},
    // 便捷按钮
    toleadExport(too) {
      if (too == 1) {
        this.topqueryParams.sendstate=4;
        this.topqueryParams.excep=null;
      } else if (too == 2) {
        this.topqueryParams.excep=1;
      }
      this.handleQuery();
    },
    /** 导出按钮操作 */
    handleExport() {
      this.download(
@@ -1148,6 +1117,13 @@
        `user_${new Date().getTime()}.xlsx`
      );
    },
    // 异常列渲染
    tableRowClassName({row, rowIndex}) {
        if (row.excep == 1) {
          return 'warning-row';
        }
        return '';
      }
  },
};
</script>
@@ -1163,6 +1139,9 @@
  // width: 100px;
  height: 50px;
}
::v-deep.el-table .warning-row {
    background: #eec4c4;
  }
.documentf {
  display: flex;
@@ -1241,6 +1220,13 @@
    }
  }
}
::v-deep.leftvlue .el-card__body {
  background: #d0e9fd;
}
::v-deep.leftvlue .el-card__body:hover {
  background: #8dc8f8;
  cursor: pointer; /* 鼠标悬浮时变为手形 */
}
.button-bb {
  font-weight: 500;
  background-color: #2ba05c;
src/views/followvisit/outpatient/index.vue
@@ -632,7 +632,7 @@
        },
        {
          value: 3,
          label: "已发送",
          label: "已发送未领取",
        },
      ],
      serviceState:[],
src/views/followvisit/record/detailpage/index.vue
@@ -36,7 +36,7 @@
              :disable-transitions="false">待发送</el-tag>
              </div>
            <div v-if="scope.row.sendstate == 3"> <el-tag type="success"
              :disable-transitions="false">已发送</el-tag></div>
              :disable-transitions="false">已发送未领取</el-tag></div>
            <div v-if="scope.row.sendstate == 4"> <el-tag type="info"
              :disable-transitions="false">不执行</el-tag></div>
            <div v-if="scope.row.sendstate == 5"> <el-tag type="danger"
@@ -167,9 +167,9 @@
          <el-button type="primary" @click="Editsingletaskson('3')"
            >通知就诊</el-button
          >
          <el-button type="danger" @click="Editsingletaskson('4')"
          <!-- <el-button type="danger" @click="Editsingletaskson('4')"
            >失访</el-button
          >
          > -->
          <el-button type="info" @click="Editsingletaskson('5')"
            >人工随访</el-button
          >
@@ -432,7 +432,7 @@
        taskid: taskid,
      }).then((res) => {
        if (res.code == 200) {
          this.logsheetlist = res.rows;
          this.logsheetlist = res.rows[0].serviceSubtaskList;
        }
      });
    },
@@ -461,7 +461,9 @@
        taskid: this.taskid,
      }).then((res) => {
        if (res.code == 200) {
          objson = res.rows[0];
          objson = res.rows[0].serviceSubtaskList[0];
          console.log(objson,'obj');
          objson.excep = excep;
          Editsingletaskson(objson).then((res) => {
            if (res.code) {
src/views/followvisit/satisfaction/particulars/index.vue
@@ -205,11 +205,11 @@
                    <el-form-item label="患者范围" prop="status">
                      <el-select
                        v-model="topqueryParams.topic"
                        v-model="topqueryParams.searchscope"
                        placeholder="请选择"
                      >
                        <el-option
                          v-for="item in taskoptions"
                          v-for="item in source"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
@@ -362,7 +362,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="请选择"
@@ -518,6 +518,7 @@
      topqueryParams: {
        pageNum: 1, //
        pageSize: 10,
        searchscope:2,
      },
      checkList: [],
      deliverytopqueryParams: {
@@ -554,6 +555,20 @@
        resource: "",
        desc: "",
      },
      source: [
        {
          value: 0,
          label: "所属患者",
        },
        {
          value: 1,
          label: "科室患者",
        },
        {
          value: 2,
          label: "病区患者",
        },
      ],
      options: [
        {
          value: "选项1",
src/views/followvisit/tasklist/FollowupDetails/index.vue
@@ -845,13 +845,13 @@
              <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"
                  v-model="patientqueryParams.searchscope"
                  placeholder="请选择"
                >
                  <el-option
                    v-for="item in topicoptions"
                    v-for="item in source"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
@@ -928,7 +928,7 @@
              />
              <el-table-column
                label="患者来源"
                label="患者范围"
                align="center"
                key="sourcefrom"
                prop="sourcefrom"
@@ -1011,6 +1011,7 @@
      patientqueryParams: {
        pageNum: 1, //
        pageSize: 10,
        searchscope:2,
      },
      topicoptions: [],
      showSearch: true, //
@@ -1038,6 +1039,20 @@
        resource: "",
        desc: "",
      },
      source: [
        {
          value: 0,
          label: "所属患者",
        },
        {
          value: 1,
          label: "科室患者",
        },
        {
          value: 2,
          label: "病区患者",
        },
      ],
      options: [
        {
          value: "选项1",
src/views/followvisit/tasklist/index.vue
@@ -23,7 +23,7 @@
            @keyup.enter.native="handleQuery"
          ></el-input>
        </el-form-item>
        <el-form-item label="创建时间">
        <el-form-item label="创发送时间">
          <el-date-picker
            v-model="dateRange"
            style="width: 240px"
@@ -181,7 +181,7 @@
          width="120"
        >
          <template slot-scope="scope">
            <span>{{ scope.row.longTask?'长期任务':'非长期' }}</span>
            <span>{{ scope.row.longTask ? "长期任务" : "非长期" }}</span>
          </template>
        </el-table-column>
@@ -229,7 +229,10 @@
        >
          <template slot-scope="scope">
            <el-button
              v-if="(scope.row.sendState == 1 || scope.row.sendState == 3)&&!scope.row.longTask"
              v-if="
                (scope.row.sendState == 1 || scope.row.sendState == 3) &&
                !scope.row.longTask
              "
              size="medium"
              type="text"
              @click="sponsor(scope.row)"
@@ -242,7 +245,10 @@
                ><i class="el-icon-circle-plus-outline"></i>终止</span
              ></el-button
            > -->
            <el-button size="medium" type="text" @click="handleUpdate(scope.row,1)"
            <el-button
              size="medium"
              type="text"
              @click="handleUpdate(scope.row, 1)"
              ><span class="button-xj"
                ><i class="el-icon-circle-plus-outline"></i>依照新增</span
              ></el-button
@@ -394,7 +400,7 @@
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
  name: "User",
  name: "Tasklist",
  dicts: ["sys_normal_disable", "sys_user_sex", "task_status"],
  components: { Treeselect },
  data() {
@@ -427,7 +433,7 @@
      postOptions: [],
      // 角色选项
      roleOptions: [],
      longTask:0,
      longTask: 0,
      taskform: {
        showDate: [],
        showTimeMorn: [],
@@ -449,13 +455,13 @@
      previewvalue: {
        username: "这个医生对你怎么样",
      },
      longtermlist:[
      {
          value: '1',
      longtermlist: [
        {
          value: "1",
          label: "长期任务",
        },
        {
          value: '0',
          value: "0",
          label: "普通任务",
        },
      ],
@@ -651,8 +657,11 @@
  },
  watch: {},
  created() {
    this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(obj=>obj.deptCode);
    this.topqueryParams.leavehospitaldistrictcodes = store.getters.belongWards.map(obj=>obj.districtCode);
    this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
      (obj) => obj.deptCode
    );
    this.topqueryParams.leavehospitaldistrictcodes =
      store.getters.belongWards.map((obj) => obj.districtCode);
    this.tasktopic = this.$route.query.tasktopic
      ? this.$route.query.tasktopic
      : this.tasktopic;
@@ -661,6 +670,9 @@
      this.initPassword = response.msg;
    });
    // this.taskoptions = store.getters.Serviceauthority;
  },
  activated() {
    this.getList();
  },
  // 搜索
  mounted() {
@@ -696,7 +708,9 @@
      //   this.taskoptions,
      //   this.tasktopic
      // );
      getTasklist(this.addDateRange(this.topqueryParams, this.dateRange)).then(
      this.topqueryParams.startOutHospTime = this.dateRange[0];
      this.topqueryParams.endOutHospTime = this.dateRange[1];
      getTasklist(this.topqueryParams).then(
        (response) => {
          this.userList = response.rows;
          this.total = response.total;
@@ -810,7 +824,7 @@
      }
    },
    /** 修改按钮操作 */
    handleUpdate(row,newadd) {
    handleUpdate(row, newadd) {
      if (this.topqueryParams.type == 1) {
        this.$router.push({
          path: "/followvisit/particty",
@@ -818,7 +832,7 @@
            id: row.taskid,
            type: this.topqueryParams.type,
            serviceType: this.tasktopic,
            newadd:newadd,//是否依照新建
            newadd: newadd, //是否依照新建
          },
        });
      } else if (this.topqueryParams.type == 2) {
@@ -828,7 +842,7 @@
            id: row.taskid,
            type: this.topqueryParams.type,
            serviceType: this.tasktopic,
            newadd:newadd,
            newadd: newadd,
          },
        });
      } else if (this.topqueryParams.type == 3) {
@@ -838,7 +852,7 @@
            id: row.taskid,
            type: this.topqueryParams.type,
            serviceType: this.tasktopic,
            newadd:newadd,
            newadd: newadd,
          },
        });
      }
@@ -950,7 +964,6 @@
          .catch(() => {});
      }
    },
    // 暂停
    stop(row) {
src/views/login.vue
@@ -78,9 +78,9 @@
      </el-form-item>
    </el-form>
    <!--  底部  -->
    <div class="el-login-footer">
    <!-- <div class="el-login-footer">
      <span style="color: #568FBD; font-size: 25px;">Copyright © 2018-2022 ruoyi.vip All Rights Reserved.</span>
    </div>
    </div> -->
  </div>
</template>
src/views/outsideChainxj.vue
@@ -32,15 +32,18 @@
            margin-bottom: 10px;
          "
        >
          感谢您的阅览!
        </div>
        <div style="font-size: 20px">
        {{
            jsy
              ? jsy
              : "生活上要劳逸结合,注意休息和营养,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次宣教内容就到这里,祝您身体健康!"
          }}        </div>
        <!-- <div style="font-size: 20px">
          {{
            jsy
              ? jsy
              : "生活上要劳逸结合,注意休息和营养,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次宣教内容就到这里,祝您身体健康!"
          }}
        </div>
        </div> -->
      </div>
    </div>
  </div>
src/views/patient/follow/index.vue
@@ -21,21 +21,20 @@
            />
          </el-form-item>
          <el-form-item label="患者范围" prop="tagId">
          <!-- <el-form-item label="患者范围" prop="tagId">
            <el-select
              v-model="queryParams.Patientid"
              multiple
              v-model="queryParams.searchscope"
              placeholder="请选择"
            >
              <el-option
                v-for="item in Patientrange"
                :key="item.id"
                :label="item.name"
                :value="item.id"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
          </el-form-item>
          </el-form-item> -->
          <el-row>
@@ -184,7 +183,7 @@
                    query: { id: scope.row.patid },
                  })
                "
                v-hasPermi="['system:user:edit']"
                ><span class="button-textsc"
                  ><i class="el-icon-zoom-in"></i>查看</span
                ></el-button
@@ -193,7 +192,7 @@
                size="medium"
                type="text"
                @click="handleDelete(scope.row)"
                v-hasPermi="['system:user:edit']"
                ><span class="button-textxga"
                  ><i class="el-icon-edit"></i>取消过滤</span
                ></el-button
@@ -294,17 +293,17 @@
      propss: { multiple: true },
      optionstag: [], //标签列表
      Patientrange: [
        // {
        //   name: "门诊",
        //   id: 1,
        // },
        {
          name: "住院",
          id: 2,
      {
          value: 0,
          label: "所属患者",
        },
        {
          name: "体检",
          id: 3,
          value: 1,
          label: "科室患者",
        },
        {
          value: 2,
          label: "病区患者",
        },
      ],
      whether: [
@@ -368,6 +367,7 @@
    /** 查询患者列表 */
    getList() {
      this.loading = true;
      messagelistpatient(this.queryParams).then((response) => {
        console.log(response);
        this.userList = response.rows;
src/views/patient/medtechnician/index.vue
@@ -11,12 +11,12 @@
        label-width="98px"
      >
        <el-form-item label="任务名称">
          <el-input v-model="topqueryParams.name"></el-input>
          <el-input v-model="topqueryParams.taskName"></el-input>
        </el-form-item>
        <el-form-item label="审核人">
          <el-input v-model="topqueryParams.name"></el-input>
        </el-form-item>
        <el-form-item label="审核时间">
        <!-- <el-form-item label="发起人">
          <el-input v-model="topqueryParams.createBy"></el-input>
        </el-form-item> -->
        <!-- <el-form-item label="审核时间">
          <el-date-picker
            v-model="dateRange"
            style="width: 240px"
@@ -27,7 +27,7 @@
            end-placeholder="结束日期"
          ></el-date-picker>
        </el-form-item>
        <el-form-item label="随访类型" prop="status">
        <el-form-item label="宣教类型" prop="status">
          <el-select v-model="topqueryParams.topic" placeholder="请选择">
            <el-option
              v-for="item in topicoptions"
@@ -37,9 +37,27 @@
            >
            </el-option>
          </el-select>
        </el-form-item> -->
        <el-form-item label="患者姓名" prop="sendname">
          <el-input v-model="topqueryParams.sendname" placeholder="请输入患者姓名"></el-input>
        </el-form-item>
        <el-form-item label="模板" prop="status">
          <el-select v-model="topqueryParams.topic" placeholder="请选择">
        <el-form-item label="患者范围" prop="status">
          <el-select
                v-model="topqueryParams.searchscope"
                placeholder="请选择患者范围"
              >
                <el-option
                  v-for="item in source"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                >
                </el-option>
              </el-select>
        </el-form-item>
        <el-form-item label="任务状态" prop="status">
          <el-select v-model="topqueryParams.sendstate" placeholder="请选择">
            <el-option
              v-for="item in topicoptions"
              :key="item.value"
@@ -49,10 +67,10 @@
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="门诊随访状态" prop="status">
          <el-select v-model="topqueryParams.topic" placeholder="请选择">
        <el-form-item label="结果状态" prop="status">
          <el-select v-model="topqueryParams.excep" placeholder="请选择">
            <el-option
              v-for="item in topicoptions"
              v-for="item in topicoptionsyj"
              :key="item.value"
              :label="item.label"
              :value="item.value"
@@ -82,41 +100,16 @@
            icon="el-icon-plus"
            size="medium"
            @click="handleAdd"
            v-hasPermi="['system:user:add']"
            >新增</el-button
          >
        </el-col>
        <el-col :span="1.5">
          <el-button
            type="success"
            plain
            icon="el-icon-edit"
            size="medium"
            :disabled="single"
            @click="handleUpdate"
            v-hasPermi="['system:user:edit']"
            >修改</el-button
          >
        </el-col>
        <el-col :span="1.5">
          <el-button
            type="danger"
            plain
            icon="el-icon-delete"
            size="medium"
            :disabled="multiple"
            @click="handleDelete"
            v-hasPermi="['system:user:remove']"
            >删除</el-button
          >
        </el-col>
        <el-col :span="19">
        <!-- <el-col :span="1.5">
          <div class="documentf">
            <div class="document">
              <el-button
                type="warning"
                plain
                icon="el-icon-download"
                icon="el-icon-upload2"
                size="medium"
                @click="handleExport"
                v-hasPermi="['system:user:export']"
@@ -125,6 +118,78 @@
            </div>
          </div>
        </el-col>
        <el-col :span="1.5">
          <div class="documentf">
            <div class="document">
              <el-button
                type="success"
                plain
                icon="el-icon-download"
                size="medium"
                @click="toleadExport"
                v-hasPermi="['system:user:export']"
                >导入</el-button
              >
            </div>
          </div>
        </el-col>
        <el-col :span="1.5">
          <div class="documentf">
            <div class="document">
              <el-button
                type="info"
                icon="el-icon-refresh"
                size="medium"
                @click="TaskReset"
                v-hasPermi="['system:user:export']"
                >任务重置</el-button
              >
            </div>
          </div>
        </el-col>
        <el-col :span="1.5">
          <div class="documentf">
            <div class="document">
              <el-button
                type="success"
                icon="el-icon-position"
                size="medium"
                @click="AllStarted"
                v-hasPermi="['system:user:export']"
                >全部开始</el-button
              >
            </div>
          </div>
        </el-col>
        <el-col :span="1.5">
          <div class="documentf">
            <div class="document">
              <el-button
                type="warning"
                icon="el-icon-remove"
                size="medium"
                @click="AllStop"
                v-hasPermi="['system:user:export']"
                >全部停止</el-button
              >
            </div>
          </div>
        </el-col>
        <el-col :span="1.5">
          <div class="documentf">
            <div class="document">
              <el-button
                type="primary"
                icon="el-icon-remove"
                size="medium"
                @click="Sendtimesetting"
                v-hasPermi="['system:user:export']"
                >发送时间设置</el-button
              >
            </div>
          </div>
        </el-col> -->
        <!-- <el-col :span="1.5"> </el-col> -->
      </el-row>
      <el-table
@@ -134,92 +199,186 @@
      >
        <el-table-column type="selection" width="50" align="center" />
        <el-table-column
          label="序号"
          fixed
          label="任务名称"
          align="center"
          key="userId"
          prop="userId"
          key="taskName"
          prop="taskName"
          width="180"
        />
        <!-- <el-table-column label="序号" fixed align="center" key="id" prop="id" /> -->
        <el-table-column
          label="姓名"
          fixed
          align="center"
          key="types"
          prop="types"
          key="sendname"
          prop="sendname"
        />
        <el-table-column
          label="病历号"
          label="身份证号码"
          width="200"
          align="center"
          sortable
          key="userName"
          prop="userName"
          key="sfzh"
          prop="sfzh"
        />
        <el-table-column
          label="任务状态"
          align="center"
          key="sendstate"
          prop="sendstate"
          width="120"
        />
        <el-table-column
          label="年龄"
          align="center"
          key="nickName"
          prop="nickName"
        />
        <el-table-column
          label="床号"
          align="center"
          key="nickName"
          prop="nickName"
        />
        <el-table-column
          label="科室/病区"
          align="center"
          key="phonenumber"
          prop="phonenumber"
          width="120"
        >
        </el-table-column>
        <el-table-column
          label="疾病名称"
          align="center"
          key="topicnumber"
          prop="topicnumber"
          width="120"
          :show-overflow-tooltip="true"
        >
          <template slot-scope="scope">
            <div>轻度骨裂</div>
            <div v-if="scope.row.sendstate == 1">
              <el-tag type="primary"
              :disable-transitions="false">被领取</el-tag></div>
            <div v-if="scope.row.sendstate == 2">
              <el-tag type="primary"
              :disable-transitions="false">待发送</el-tag>
              </div>
            <div v-if="scope.row.sendstate == 3"> <el-tag type="success"
              :disable-transitions="false">已发送未领取</el-tag></div>
            <div v-if="scope.row.sendstate == 4"> <el-tag type="info"
              :disable-transitions="false">不执行</el-tag></div>
            <div v-if="scope.row.sendstate == 5"> <el-tag type="danger"
              :disable-transitions="false">发送失败</el-tag></div>
              <div v-if="scope.row.sendstate == 6"> <el-tag type="danger"
                :disable-transitions="false">已完成</el-tag></div>
          </template>
        </el-table-column>
        <el-table-column
          label="宣教内容"
          align="center"
          key="topicnumberaa"
          prop="topicnumberaa"
          label="宣教异常记录"
          width="120"
        />
        <el-table-column
          label="宣教材料"
          align="center"
          key="topicnumberaa"
          prop="topicnumberaa"
          width="120"
        />
        <el-table-column
          label="宣教方式"
          align="center"
          key="topicnumberaa"
          prop="topicnumberaa"
          width="120"
          key="remark"
          prop="remark"
        />
        <el-table-column
          label="宣教人员"
          align="center"
          key="topicnumberaa"
          prop="topicnumberaa"
          key="createBy"
          prop="createBy"
          width="120"
        />
        <el-table-column
          label="宣教时间"
          sortable
          align="center"
          prop="finishtime"
          width="160"
        >
          <template slot-scope="scope">
            <span>{{ parseTime(scope.row.finishtime) }}</span>
          </template>
        </el-table-column>
        <el-table-column
          label="出院日期"
          width="200"
          align="center"
          key="endtime"
          prop="endtime"
        >
          <template slot-scope="scope">
            <span>{{ formatTime(scope.row.endtime) }}</span>
          </template></el-table-column
        >
        <el-table-column
          label="应宣教日期"
          width="200"
          align="center"
          key="longSendTime"
          prop="longSendTime"
        >
          <template slot-scope="scope">
            <span>{{ formatTime(scope.row.longSendTime) }}</span>
          </template></el-table-column
        >
        <el-table-column
          label="出院天数"
          width="120"
          align="center"
          key="endDay"
          prop="endDay"
        >
          <template slot-scope="scope">
            <span>{{
              scope.row.endDay ? scope.row.endDay + "天" : "日期缺失"
            }}</span>
          </template>
        </el-table-column>
        <el-table-column
          label="责任护士"
          width="120"
          align="center"
          key="nurseName"
          prop="nurseName"
        />
        <el-table-column
          label="主治医生"
          width="120"
          align="center"
          key="drname"
          prop="drname"
        />
        <!-- <el-table-column
          label="病历号"
          align="center"
          sortable
          key="medicalRecordNo"
          prop="medicalRecordNo"
          width="120"
        /> -->
        <!-- <el-table-column label="年龄" align="center" key="age" prop="age" /> -->
        <!-- <el-table-column label="性别" align="center" key="sex" prop="sex" /> -->
        <!-- <el-table-column label="床号" align="center" key="badNo" prop="badNo" /> -->
        <el-table-column
          label="科室"
          align="center"
          key="deptname"
          prop="deptname"
          width="120"
        >
        </el-table-column>
        <el-table-column
          label="病区"
          align="center"
          key="leavehospitaldistrictname"
          prop="leavehospitaldistrictname"
          width="120"
        >
        </el-table-column>
        <!-- <el-table-column
          label="疾病名称"
          align="center"
          key="icdName"
          prop="icdName"
          width="120"
          :show-overflow-tooltip="true"
        >
        </el-table-column> -->
        <el-table-column
          label="就诊时间"
          label="宣教模板名称"
          align="center"
          key="templatename"
          prop="templatename"
          width="200"
        />
        <!-- <el-table-column
          label="责任医师"
          align="center"
          key="drname"
          prop="drname"
          width="120"
        /> -->
        <!-- <el-table-column
          label="出院时间"
          sortable
          align="center"
          prop="createTime"
@@ -228,8 +387,8 @@
          <template slot-scope="scope">
            <span>{{ formatTime(scope.row.createTime) }}</span>
          </template>
        </el-table-column>
        <el-table-column
        </el-table-column> -->
        <!-- <el-table-column
          label="宣教时间"
          sortable
          align="center"
@@ -237,58 +396,67 @@
          width="160"
        >
          <template slot-scope="scope">
            <span>{{ formatTime(scope.row.createTime) }}</span>
            <span v-if="scope.row.sendType != 3">{{
              formatTime(scope.row.createTime)
            }}</span>
            <span v-else>即刻发送</span>
          </template>
        </el-table-column>
        <el-table-column
          label="回复时间"
          sortable
          align="center"
          prop="createTime"
          width="160"
        >
          <template slot-scope="scope">
            <span>{{ formatTime(scope.row.createTime) }}</span>
          </template>
        </el-table-column>
        </el-table-column> -->
        <el-table-column
          label="通知状态"
        <!-- <el-table-column
          label="任务状态"
          fixed="right"
          align="center"
          key="topicnumber"
          prop="topicnumber"
          key="sendstate"
          prop="sendstate"
          width="120"
          :show-overflow-tooltip="true"
        >
          <template slot-scope="scope">
            <div>未完成</div>
            <dict-tag :options="serviceState" :value="scope.row.sendstate" />
          </template>
        </el-table-column>
        </el-table-column> -->
        <el-table-column
          label="任务详情"
          label="操作"
          fixed="right"
          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-tooltip
              class="item"
              effect="dark"
              content="重新宣教"
              placement="top"
            >
            <el-button
              size="medium"
              type="text"
              @click="handleDelete(scope.row)"
              v-hasPermi="['system:user:edit']"
              ><span class="button-sc"
                ><i class="el-icon-delete"></i>删除</span
              <el-button
                size="medium"
                type="text"
                @click="followupvisit(scope.row)"
                v-hasPermi="['system:user:edit']"
                ><span class="button-bb"
                  ><i class="el-icon-s-promotion"></i></span
              ></el-button>
            </el-tooltip> -->
            <!-- <el-tooltip
              class="item"
              effect="dark"
              content="停止"
              placement="top"
            >
              <el-button
                size="medium"
                type="text"
                @click="handlestop(scope.row)"
                v-hasPermi="['system:user:edit']"
                ><span class="button-sc"><i class="el-icon-delete"></i></span
              ></el-button>
            </el-tooltip> -->
            <el-button size="medium" type="text" @click="Seedetails(scope.row)"
              ><span class="button-zx"
                ><i class="el-icon-s-order"></i>查看详情</span
              ></el-button
            >
          </template>
@@ -303,7 +471,7 @@
        @pagination="getList"
      />
    </el-row>
    <!-- 添加或修改门诊随访对话框 -->
    <!-- 添加或修改门诊宣教对话框 -->
    <el-dialog
      :title="title"
      :visible.sync="addalteropen"
@@ -327,8 +495,8 @@
        ></el-row>
        <el-row :gutter="20">
          <el-col :span="24"
            ><el-form-item label="随访类型">
              <el-select v-model="form.region" placeholder="请选择随访类型">
            ><el-form-item label="宣教类型">
              <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
@@ -346,7 +514,7 @@
        </el-row>
        <el-row :gutter="20">
          <el-col :span="24">
            <el-form-item label="门诊随访要求">
            <el-form-item label="门诊宣教要求">
              <el-input type="textarea" v-model="form.desc"></el-input>
            </el-form-item>
          </el-col>
@@ -356,6 +524,81 @@
        <el-button type="primary" @click="submitForm">提 交</el-button>
        <el-button @click="cancel">返 回</el-button>
      </div>
    </el-dialog>
    <!-- 修改发送时间对话框 -->
    <el-dialog
      title="发送时间设置"
      :visible.sync="modificationVisible"
      width="45%"
    >
      <div style="margin-bottom: 20px; color: red">
        统一修改当天未发送的任务时间
      </div>
      <el-form
        :model="ruleForm"
        :rules="rules"
        ref="ruleForm"
        label-width="120px"
        class="demo-ruleForm"
      >
        <el-form-item label="发送日期">
          <el-date-picker
            v-model="ruleForm.value1"
            type="date"
            placeholder="选择日期"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="时间段" prop="type">
          <el-checkbox-group v-model="ruleForm.type">
            <el-checkbox label="上午" name="type"></el-checkbox>
            <el-checkbox label="下午" name="type"></el-checkbox>
            <el-checkbox label="晚上" name="type"></el-checkbox>
          </el-checkbox-group>
        </el-form-item>
        <el-form-item label="上午时间区间" required>
          <el-time-picker
            is-range
            v-model="ruleForm.value2"
            range-separator="至"
            start-placeholder="开始时间"
            end-placeholder="结束时间"
            placeholder="选择时间范围"
          >
          </el-time-picker>
        </el-form-item>
        <el-form-item label="下午时间区间" required>
          <el-time-picker
            is-range
            v-model="ruleForm.value3"
            range-separator="至"
            start-placeholder="开始时间"
            end-placeholder="结束时间"
            placeholder="选择时间范围"
          >
          </el-time-picker>
        </el-form-item>
        <el-form-item label="晚上时间区间" required>
          <el-time-picker
            is-range
            v-model="ruleForm.value4"
            range-separator="至"
            start-placeholder="开始时间"
            end-placeholder="结束时间"
            placeholder="选择时间范围"
          >
          </el-time-picker>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="modificationVisible = false">取 消</el-button>
        <el-button type="primary" @click="modificationVisible = false"
          >确 定</el-button
        >
      </span>
    </el-dialog>
  </div>
</template>
@@ -370,12 +613,14 @@
  resetUserPwd,
  changeUserStatus,
} from "@/api/system/user";
import { getTaskservelist } from "@/api/AiCentre/index";
import Treeselect from "@riophae/vue-treeselect";
import store from "@/store";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
  name: "User",
  dicts: ["sys_normal_disable", "sys_user_sex"],
  name: "Discharge",
  dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
  components: { Treeselect },
  data() {
    return {
@@ -394,9 +639,11 @@
      // 用户表格数据
      userList: null,
      // 弹出层标题
      title: "新增门诊随访",
      title: "新增门诊宣教",
      // 是否显示修改、添加弹出层
      addalteropen: false,
      // 修改发送时间对话框
      modificationVisible: false,
      // 部门名称
      deptName: undefined,
      // 默认密码
@@ -405,23 +652,38 @@
      dateRange: [],
      // 岗位选项
      postOptions: [],
      // 角色选项
      roleOptions: [],
      ruleForm: {
        type: [],
      },
      dynamicTags: ["选项一", "选项二", "选项三"], //选项
      inputVisible: false,
      inputValue: "",
      previewVisible: false, //门诊随访预览弹框
      previewVisible: false, //门诊宣教预览弹框
      radio: "",
      radios: [],
      previewtype: 2, //预览门诊随访类型
      previewtype: 2, //预览门诊宣教类型
      total: 0, // 总条数
      ImportQuantity: 999, //导门诊随访数量
      //预览门诊随访信息
      ImportQuantity: 999, //导门诊宣教数量
      //预览门诊宣教信息
      previewvalue: {
        username: "这个医生对你怎么样",
      },
      value: [],
      list: [],
      source: [
        {
          value: 0,
          label: "所属患者",
        },
        {
          value: 1,
          label: "科室患者",
        },
        {
          value: 2,
          label: "病区患者",
        },
      ],
      loading: false,
      states: [
        "Alabama",
@@ -517,9 +779,8 @@
      topqueryParams: {
        pageNum: 1,
        pageSize: 10,
        userName: undefined,
        tagid: undefined,
        topic: undefined,
        serviceType: 4,
        searchscope:2,
      },
      propss: { multiple: true },
      options: [],
@@ -527,71 +788,47 @@
      topicoptions: [
        {
          value: 1,
          label: "待审核",
          label: "被领取",
        },
        {
          value: 2,
          label: "执行中",
          label: "待发送",
        },
        {
          value: 3,
          label: "执行完成",
          label: "已发送未领取",
        },
        {
          value: 4,
          label: "已停止",
          label: "不执行",
        },
        {
          value: 5,
          label: "发送失败",
        },
        {
          value: 6,
          label: "已完成",
        },
      ],
      topicoptionsyj: [
        {
          value: 1,
          label: "异常",
        },
        {
          value: 0,
          label: "正常",
        },
      ],
      serviceState: [],
      // 表单校验
      rules: {
        userName: [
          { required: true, message: "用户名称不能为空", trigger: "blur" },
          {
            min: 2,
            max: 20,
            message: "用户名称长度必须介于 2 和 20 之间",
            trigger: "blur",
          },
        ],
        nickName: [
          { required: true, message: "用户昵称不能为空", trigger: "blur" },
        ],
        password: [
          { required: true, message: "用户密码不能为空", trigger: "blur" },
          {
            min: 5,
            max: 20,
            message: "用户密码长度必须介于 5 和 20 之间",
            trigger: "blur",
          },
        ],
        email: [
          {
            type: "email",
            message: "请输入正确的邮箱地址",
            trigger: ["blur", "change"],
          },
        ],
        phonenumber: [
          {
            pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
            message: "请输入正确的手机号码",
            trigger: "blur",
          },
        ],
        IDnumber: [
          {
            pattern:
              /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/,
            message: "请输入正确的身份证号码",
            trigger: "blur",
          },
        ],
      },
      rules: {},
    };
  },
  watch: {},
  created() {
    this.serviceState = store.getters.serviceState;
    this.getList();
    this.getConfigKey("sys.user.initPassword").then((response) => {
      this.initPassword = response.msg;
@@ -604,18 +841,37 @@
    });
  },
  methods: {
    /** 查询门诊随访列表 */
    /** 查询门诊宣教服务列表 */
    getList() {
      if (this.topqueryParams.searchscope == 1) {
        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.topqueryParams.leavehospitaldistrictcodes=null;
      } else if (this.topqueryParams.searchscope == 2) {
        this.topqueryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
          this.topqueryParams.leaveldeptcodes=null;
      } else {
        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.topqueryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
      }
      this.loading = true;
      listUser(this.addDateRange(this.topqueryParams, this.dateRange)).then(
        (response) => {
          this.userList = response.rows;
          this.total = response.total;
          this.loading = false;
        }
      );
      getTaskservelist(this.topqueryParams).then((response) => {
        this.userList = response.rows;
        this.userList.forEach((item) => {
          if (item.endtime) {
            item.endDay = this.daysBetween(item.endtime);
          }
        });
        this.total = response.total;
        this.loading = false;
      });
    },
    // 查看门诊随访详情
    // 查看门诊宣教详情
    Referencequestion(row) {
      this.previewVisible = true;
    },
@@ -633,7 +889,7 @@
        this.options = [];
      }
    },
    // 门诊随访状态修改
    // 门诊任务状态修改
    handleStatusChange(row) {
      let text = row.status === "0" ? "启用" : "停用";
      this.$modal
@@ -673,15 +929,29 @@
    },
    /** 搜索按钮操作 */
    handleQuery() {
      if (this.topqueryParams.searchscope == 1) {
        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.topqueryParams.leavehospitaldistrictcodes=null;
      } else if (this.topqueryParams.searchscope == 2) {
        this.topqueryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
          this.topqueryParams.leaveldeptcodes=null;
      } else {
        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.topqueryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
      }
      this.topqueryParams.pageNum = 1;
      this.getList();
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.dateRange = [];
      this.resetForm("queryForm");
      this.topqueryParams.deptId = undefined;
      this.$refs.tree.setCurrentKey(null);
      this.topqueryParams = {};
      this.handleQuery();
    },
    // 多选框选中数据
@@ -713,17 +983,14 @@
    /** 新增按钮操作 */
    handleAdd() {
      this.$router.push({
        path: "/followvisit/particty",
        query: { type: 8 },
        path: "/followvisit/Missioncreation",
        query: {
          type: 3,
          serviceType: 4,
        },
      });
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.$router.push({
        path: "/followvisit/record/detailpage/",
        query: { id: "1" },
      });
    },
    /** 重置密码按钮操作 */
    handleResetPwd(row) {
      this.$prompt('请输入"' + row.userName + '"的新密码', "提示", {
@@ -775,6 +1042,58 @@
        })
        .catch(() => {});
    },
    // 全部停止
    AllStop() {
      this.$modal
        .confirm("是否停止全部任务?")
        .then(function () {
          return console.log("停止成功");
        })
        .then(() => {
          this.getList();
          this.$modal.msgWarning("停止成功");
        })
        .catch(() => {});
    },
    // 全部开始
    AllStarted() {
      this.$modal
        .confirm("是否开启全部任务?")
        .then(function () {
          return console.log("开启成功");
        })
        .then(() => {
          this.getList();
          this.$modal.msgSuccess("开启成功");
        })
        .catch(() => {});
    },
    // 任务重置
    TaskReset() {
      this.$modal
        .confirm("是否重置选中的任务项?")
        .then(function () {
          return console.log("选中成功");
        })
        .then(() => {
          this.getList();
          this.$modal.msgSuccess("重置成功");
        })
        .catch(() => {});
    },
    // 设置发送时间
    Sendtimesetting() {
      this.modificationVisible = true;
    },
    // 跳转详情页
    Seedetails(row) {
      this.$router.push({
        path: "/followvisit/record/detailpage/",
        query: { taskid: row.taskid, patid: row.patid,id: row.id},
      });
    },
    // 导入按钮
    toleadExport() {},
    /** 导出按钮操作 */
    handleExport() {
      this.download(
@@ -797,7 +1116,7 @@
}
.document {
  width: 100px;
  // width: 100px;
  height: 50px;
}
@@ -880,15 +1199,24 @@
}
.button-bb {
  font-weight: 500;
  color: #2ba05c;
  background-color: #2ba05c;
  padding: 5px;
  border-radius: 1px;
  color: #ffffff;
}
.button-xq {
  font-weight: 500;
  color: #409eff;
  background-color: #409eff;
  padding: 5px;
  border-radius: 1px;
  color: #ffffff;
}
.button-sc {
  font-weight: 500;
  color: #dd302a;
  background-color: #dd302a;
  padding: 5px;
  border-radius: 1px;
  color: #ffffff;
}
.button-zx {
  background: #4fabe9;
@@ -903,9 +1231,10 @@
  }
}
::v-deep.el-checkbox-group {
  span {
    font-size: 24px;
  }
}
// 选项字体放大
// ::v-deep.el-checkbox-group {
//   span {
//     font-size: 24px;
//   }
// }
</style>
src/views/patient/patient/behospitalized.vue
@@ -11,7 +11,7 @@
          v-show="showSearch"
          label-width="98px"
        >
          <el-form-item label="姓名" prop="name">
          <el-form-item label="患者姓名" prop="name">
            <el-input
              v-model="queryParams.patname"
              placeholder="请输入姓名"
@@ -19,7 +19,7 @@
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label="患者住院号" prop="patid">
          <el-form-item label="住院号" prop="patid">
            <el-input
              v-model="queryParams.patid"
              placeholder="请输入患者编号"
@@ -28,10 +28,10 @@
            />
          </el-form-item>
          <el-form-item label="患者来源" prop="tagId">
          <el-form-item label="患者范围" prop="tagId">
            <el-select
                v-model="queryParams.searchscope"
                placeholder="请选择患者来源"
                placeholder="请选择患者范围"
              >
                <el-option
                  v-for="item in source"
@@ -42,7 +42,7 @@
                </el-option>
              </el-select>
          </el-form-item>
          <el-form-item label=" 入院日期范围 " prop="createTime">
          <el-form-item label=" 入院日期 " prop="createTime">
            <el-date-picker
            v-model="dateRange"
            style="width: 240px"
@@ -115,6 +115,7 @@
        <el-table
          v-loading="loading"
          :data="userList"
           height="660"
          @selection-change="handleSelectionChange"
        >
          <el-table-column type="selection" width="50" align="center" />
@@ -468,6 +469,7 @@
        pageNum: 1,
        pageSize: 10,
        cry: 0,
        searchscope:2,
        idcardno: undefined,
        name: undefined,
        status: undefined,
@@ -623,6 +625,8 @@
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.startInHospTime = this.dateRange[0];
      this.queryParams.endInHospTime = this.dateRange[1];
      this.queryParams.pageNum = 1;
      this.getList();
    },
src/views/patient/patient/hospital.vue
@@ -11,7 +11,7 @@
          v-show="showSearch"
          label-width="98px"
        >
          <el-form-item label="姓名" prop="name">
          <el-form-item label="患者姓名" prop="name">
            <el-input
              v-model="queryParams.patname"
              placeholder="请输入姓名"
@@ -20,7 +20,7 @@
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label="患者编号" prop="patid">
          <el-form-item label="住院号" prop="patid">
            <el-input
              v-model="queryParams.patid"
              placeholder="请输入患者编号"
@@ -30,21 +30,11 @@
            />
          </el-form-item>
          <el-form-item label="护理等级" prop="tagId">
            <el-select v-model="queryParams.Patientid" placeholder="请选择">
              <el-option
                v-for="dict in dict.type.nursinggrade"
                :key="dict.value"
                :label="dict.label"
                :value="dict.value"
              >
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="患者来源" prop="tagId">
          <el-form-item label="患者范围" prop="tagId">
            <el-select
                v-model="queryParams.searchscope"
                placeholder="请选择患者来源"
                placeholder="请选择患者范围"
              >
                <el-option
                  v-for="item in source"
@@ -55,7 +45,7 @@
                </el-option>
              </el-select>
          </el-form-item>
          <el-form-item label=" 入院日期 " prop="createTime">
          <el-form-item label=" 出院日期 " prop="createTime">
            <el-date-picker
            v-model="dateRange"
            style="width: 240px"
@@ -128,6 +118,7 @@
        <el-table
          v-loading="loading"
          :data="userList"
           height="660"
          @selection-change="handleSelectionChange"
        >
          <el-table-column type="selection" width="50" align="center" />
@@ -173,7 +164,7 @@
            align="center"
            key="age"
            prop="age"
            width="120"
            width="80"
          />
          <el-table-column
            label="联系电话"
@@ -492,6 +483,7 @@
        pageNum: 1,
        pageSize: 10,
        cry: 1,
        searchscope:2,
        idcardno: undefined,
        name: undefined,
        status: undefined,
@@ -605,6 +597,8 @@
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.startOutHospTime = this.dateRange[0];
      this.queryParams.endOutHospTime = this.dateRange[1];
      this.queryParams.pageNum = 1;
      this.getList();
    },
src/views/patient/patient/index.vue
@@ -22,7 +22,7 @@
    <!-- 右侧数据 -->
    <div class="leftvlue">
      <div>
      <!-- <div>
        <el-row :gutter="10">
          <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index">
            <el-card
@@ -45,7 +45,7 @@
            </el-card>
          </el-col>
        </el-row>
      </div>
      </div> -->
      <div class="leftvlue-bg">
        <el-row :gutter="20">
          <!--用户数据-->
@@ -109,10 +109,10 @@
                  @keyup.enter.native="handleQuery"
                />
              </el-form-item>
              <el-form-item label="患者来源" prop="tagId">
              <el-form-item label="患者范围" prop="tagId">
            <el-select
                v-model="queryParams.searchscope"
                placeholder="请选择患者来源"
                placeholder="请选择患者范围"
              >
                <el-option
                  v-for="item in source"
@@ -215,6 +215,7 @@
            <el-table
              v-loading="loading"
              :data="userList"
               height="660"
              @selection-change="handleSelectionChange"
            >
              <el-table-column type="selection" width="50" align="center" />
@@ -956,6 +957,7 @@
        pageNum: 1,
        allhosp: "1",
        pageSize: 10,
        searchscope:2,
        idcardno: undefined,
        name: undefined,
        status: undefined,
@@ -1016,6 +1018,22 @@
  methods: {
    /** 查询患者列表 */
    getList() {
      if (this.queryParams.searchscope == 1) {
        this.queryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.queryParams.leavehospitaldistrictcodes=null;
      } else if (this.queryParams.searchscope == 2) {
        this.queryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
          this.queryParams.leaveldeptcodes=null;
      } else {
        this.queryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.queryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
      }
      this.loading = true;
      messagelistpatient(this.queryParams).then((response) => {
        this.userList = response.rows;
@@ -1078,22 +1096,7 @@
    },
    /** 搜索按钮操作 */
    handleQuery() {
      if (this.queryParams.searchscope == 1) {
        this.queryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.queryParams.leavehospitaldistrictcodes=null;
      } else if (this.queryParams.searchscope == 2) {
        this.queryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
          this.queryParams.leaveldeptcodes=null;
      } else {
        this.queryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.queryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
      }
      this.queryParams.pageNum = 1;
      this.getList();
    },
src/views/patient/propaganda/Missioncreation.vue
@@ -56,7 +56,23 @@
                      @click="drawermb = true"
                      circle
                    ></el-button>
                    <el-button
                      v-if="form.templatename"
                      type="success"
                      icon="el-icon-search"
                      @click="previewfnm"
                      circle
                    ></el-button>
                  </el-col>
                  <!-- <el-col :span="2">
                    <el-button
                      v-if="form.templatename"
                      type="success"
                      icon="el-icon-search"
                      @click="previewfnm"
                      circle
                    ></el-button>
                  </el-col> -->
                </el-row>
                <el-form-item label="任务描述">
@@ -69,7 +85,6 @@
                <el-row>
                  <el-col :span="20"
                    ><el-form-item label="适用科室" prop="region">
                      <el-select
                        v-model="form.deptcode"
                        style="width: 400px"
@@ -91,7 +106,6 @@
                <el-row>
                  <el-col :span="20"
                    ><el-form-item label="适用病区" prop="region">
                      <el-select
                        v-model="form.leavehospitaldistrictcode"
                        style="width: 400px"
@@ -148,9 +162,7 @@
                <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
                      >
                      <span style="font-size: 18px; margin-right: 10px">①</span>
                      <el-time-picker
                        is-range
                        arrow-control
@@ -165,9 +177,7 @@
                      </el-time-picker>
                    </div>
                    <div style="margin-right: 10px">
                      <span style="font-size: 18px; margin-right: 10px"
                        >②</span
                      >
                      <span style="font-size: 18px; margin-right: 10px">②</span>
                      <el-time-picker
                        is-range
                        arrow-control
@@ -182,9 +192,7 @@
                      </el-time-picker>
                    </div>
                    <div style="margin-right: 10px">
                      <span style="font-size: 18px; margin-right: 10px"
                        >③</span
                      >
                      <span style="font-size: 18px; margin-right: 10px">③</span>
                      <el-time-picker
                        is-range
                        arrow-control
@@ -504,7 +512,7 @@
        <div v-html="htmlRichText"></div>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="previewGo">前往模板详情修改</el-button>
        <!-- <el-button @click="previewGo">前往模板详情修改</el-button> -->
        <el-button type="primary" @click="previewFn">确认使用</el-button>
      </span>
    </el-dialog>
@@ -527,10 +535,7 @@
              v-show="showSearch"
              label-width="98px"
            >
              <el-form-item
                label="宣教名称"
              >
              <el-form-item label="宣教名称">
                <el-input v-model="topqueryParams.preachname"></el-input>
              </el-form-item>
              <el-form-item label="宣教分类" prop="region">
@@ -679,8 +684,8 @@
        { label: "科室", width: "240", prop: "dept" },
        { label: "病区", width: "240", prop: "leavehospitaldistrictname" },
      ],
        // 患者表单
        tableLabelhzwb: [
      // 患者表单
      tableLabelhzwb: [
        { label: "出院日期", width: "150", prop: "endtime" },
        { label: "患者", width: "", prop: "name" },
        { label: "身份证", width: "200", prop: "sfzh" },
@@ -693,8 +698,8 @@
      ],
      tableLabelxj: [
      { label: "创建人", width: "", prop: "createBy" },
      { label: "宣教名称", width: "180", prop: "preachname" },
        { label: "创建人", width: "", prop: "createBy" },
        { label: "宣教名称", width: "180", prop: "preachname" },
        { label: "宣教描述", width: "180", prop: "preachcontent" },
        // { label: "宣教形式", width: "", prop: "playType" },
        { label: "适用方式", width: "", prop: "suitway" },
@@ -826,6 +831,7 @@
  created() {
    this.id = this.$route.query.id;
    this.form.type = this.$route.query.type;
    this.newadd = this.$route.query.newadd;
    this.belongWards = store.getters.belongWards;
    this.belongDepts = store.getters.belongDepts;
    this.form.typename = this.$route.query.typename;
@@ -969,8 +975,12 @@
      if (!this.form.type) {
        this.form.type = this.$route.query.type;
      }
      this.form.leaveldeptcodes = store.getters.belongDepts.map(obj=>obj.deptCode);
      this.form.leavehospitaldistrictcodes = store.getters.belongWards.map(obj=>obj.districtCode);
      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) => {
        if (res.code == 200) {
          if (this.form.taskid) {
@@ -986,7 +996,7 @@
      });
    },
    // ----------------------表格子组件事件
    // 确认选择模板放入任务模板
    // 选择模板并预览
    selectfn(row, type) {
      // 模板情况下获取模板信息
      this.libName = row.preachname;
@@ -1010,6 +1020,27 @@
          this.$modal.msgError("获取富文本失败");
          console.error("Failed to fetch file:", error);
        });
    },
    // 预览模板
    previewfnm() {
      getlibrarylist({ id: this.form.libtemplateid }).then((res) => {
        this.libName = res.rows[0].preachname;
        this.htmlRichText = null;
        this.libId = res.rows[0].id;
        this.Tasktemplate = res.rows[0];
        this.previewtf = true;
        this.previewid = res.rows[0].svyid;
        axios
          .get(res.rows[0].htmlRichText)
          .then((response) => {
            this.htmlRichText = response.data;
            this.htmlRichText = this.addStyleToImages(this.htmlRichText);
          })
          .catch((error) => {
            this.$modal.msgError("获取富文本失败");
            console.error("Failed to fetch file:", error);
          });
      });
    },
    addStyleToImages(html) {
      return html.replace(
@@ -1054,7 +1085,7 @@
      });
      if (this.patientqueryParams.allhosp == 1) {
        this.tableLabelhz = [
        { label: "出院日期", width: "150", prop: "endtime" },
          { label: "出院日期", width: "150", prop: "endtime" },
          { label: "患者", width: "", prop: "name" },
          { label: "身份证", width: "200", prop: "sfzh" },
          { label: "性别", width: "", prop: "sex" },
@@ -1183,10 +1214,11 @@
        templatename: "",
        templateid: null,
        libtemplateid: null,
        serviceType:Number(this.$route.query.serviceType),
        serviceType: Number(this.$route.query.serviceType),
        kcb: "亲爱的患者-家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访问卷。",
        jsy: "生活上要劳逸结合,注意休息和营养,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!",
      };
      if (this.id) {
        getTaskInfo({ taskid: this.id }).then((res) => {
          let filteredArray = "";
@@ -1199,9 +1231,10 @@
              : [];
            this.overallCase = this.form.patTaskRelevances.concat();
            this.checkList = this.form.preachform.split(",");
            console.log(this.form.showDate, "this.form");
            this.daytime = this.form.showDate.split(",");
            if (this.form.daytime)this.daytime = this.form.showDate.split(",");
            console.log(this.newadd, "依照");
            if (this.form.showTimeMorn) {
              if (this.form.sendType == 3) {
                this.time4 = this.form.showTimeMorn;
@@ -1219,9 +1252,27 @@
          } else {
            this.$modal.msgError(res.code);
          }
          if (this.newadd) {
            this.neWaddfn();
          }
        });
      }
    },
    // 依照新增时处理
    neWaddfn() {
      this.id = null;
      // this.form.taskName = "";
      this.form.taskid = null;
      console.log("依照");
      this.overallCase = [];
      this.form.patTaskRelevances = [];
      this.daytime = []; //日期
      this.applydaytime = []; //计算日期
      this.time1 = ""; //上午时间段
      this.time2 = ""; //下午时间段
      this.time3 = ""; //晚上时间段
      this.time4 = ""; //晚上时间段
    },
    getheLibraryAssort() {
      // 宣教分类
      getheLibraryAssort({}).then((res) => {
src/views/patient/propaganda/QuestionnaireTask.vue
@@ -460,7 +460,7 @@
              </el-form-item>
              <el-select
                v-model="patientqueryParams.searchscope"
                placeholder="请选择患者来源"
                placeholder="请选择患者范围"
              >
                <el-option
                  v-for="item in source"
@@ -997,7 +997,7 @@
      patientqueryParams: {
        pageNum: 1, //
        pageSize: 10,
        topica: 0, //0全部1科室2病区
        topica: 1, //0全部1科室2病区
      },
      topicoptions: [{ children: [{ children: [] }] }],
      showSearch: true, //
@@ -1763,7 +1763,7 @@
    neWaddfn(){
      this.id=null;
      this.form.taskName='';
      this.form.taskName='';
      this.form.taskid = null;
      this.overallCase=[];
      this.form.patTaskRelevances=[];
      this.daytime=[]; //日期
src/views/patient/propaganda/index.vue
@@ -11,12 +11,12 @@
        label-width="98px"
      >
        <el-form-item label="任务名称">
          <el-input v-model="topqueryParams.name"></el-input>
          <el-input v-model="topqueryParams.taskName" placeholder="请选择任务名称"></el-input>
        </el-form-item>
        <el-form-item label="审核人">
          <el-input v-model="topqueryParams.name"></el-input>
        </el-form-item>
        <el-form-item label="审核时间">
        <!-- <el-form-item label="发起人">
          <el-input v-model="topqueryParams.createBy"></el-input>
        </el-form-item> -->
        <el-form-item label="出院时间">
          <el-date-picker
            v-model="dateRange"
            style="width: 240px"
@@ -27,10 +27,20 @@
            end-placeholder="结束日期"
          ></el-date-picker>
        </el-form-item>
        <el-form-item label="宣教类型" prop="status">
          <el-select v-model="topqueryParams.topic" placeholder="请选择">
        <el-form-item label="患者姓名" prop="sendname">
          <el-input
            v-model="topqueryParams.sendname"
            placeholder="请输入患者姓名"
          ></el-input>
        </el-form-item>
        <el-form-item label="患者范围" prop="status">
          <el-select
            v-model="topqueryParams.searchscope"
            placeholder="请选择患者范围"
          >
            <el-option
              v-for="item in topicoptions"
              v-for="item in source"
              :key="item.value"
              :label="item.label"
              :value="item.value"
@@ -38,21 +48,22 @@
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="模板" prop="status">
          <el-select v-model="topqueryParams.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 label="宣教状态" prop="status">
          <el-select v-model="topqueryParams.topic" placeholder="请选择">
          <el-select v-model="topqueryParams.sendstate" 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 label="结果状态" prop="status">
          <el-select v-model="topqueryParams.excep" placeholder="请选择">
            <el-option
              v-for="item in topicoptionsyj"
              :key="item.value"
              :label="item.label"
              :value="item.value"
@@ -82,41 +93,16 @@
            icon="el-icon-plus"
            size="medium"
            @click="handleAdd"
            v-hasPermi="['system:user:add']"
            >新增</el-button
          >
        </el-col>
        <el-col :span="1.5">
          <el-button
            type="success"
            plain
            icon="el-icon-edit"
            size="medium"
            :disabled="single"
            @click="handleUpdate"
            v-hasPermi="['system:user:edit']"
            >修改</el-button
          >
        </el-col>
        <el-col :span="1.5">
          <el-button
            type="danger"
            plain
            icon="el-icon-delete"
            size="medium"
            :disabled="multiple"
            @click="handleDelete"
            v-hasPermi="['system:user:remove']"
            >删除</el-button
          >
        </el-col>
        <el-col :span="19">
          <div class="documentf">
            <div class="document">
              <el-button
                type="warning"
                plain
                icon="el-icon-download"
                icon="el-icon-upload2"
                size="medium"
                @click="handleExport"
                v-hasPermi="['system:user:export']"
@@ -125,15 +111,51 @@
            </div>
          </div>
        </el-col>
        <!-- <el-col :span="1.5"> </el-col> -->
        <el-col :span="1.5">
          <div class="documentf">
            <div class="document">
              <el-button
                type="warning"
                plain
                icon="el-icon-warning-outline"
                size="medium"
                @click="toleadExport(1)"
                >执行失败</el-button
              >
            </div>
          </div>
        </el-col>
        <el-col :span="1.5">
          <div class="documentf">
            <div class="document">
              <el-button
                type="danger"
                plain
                icon="el-icon-warning"
                size="medium"
                @click="toleadExport(2)"
                >结果异常</el-button
              >
            </div>
          </div>
        </el-col>
      </el-row>
      <el-table
        v-loading="loading"
        :data="userList"
         height="660"
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="50" align="center" />
        <el-table-column fixed label="序号" align="center" key="id" prop="id" />
        <el-table-column
          label="任务名称"
          fixed
          align="center"
          key="taskName"
          prop="taskName"
          width="180"
        />
        <!-- <el-table-column label="序号" fixed align="center" key="id" prop="id" /> -->
        <el-table-column
          label="姓名"
          fixed
@@ -142,26 +164,169 @@
          prop="sendname"
        />
        <el-table-column
        label="宣教状态"
        align="center"
        key="sendstate"
        prop="sendstate"
        width="120"
        >
        <template slot-scope="scope">
          <div v-if="scope.row.sendstate == 1">
            <el-tag type="primary" :disable-transitions="false"
                >被领取</el-tag
                >
              </div>
              <div v-if="scope.row.sendstate == 2">
                <el-tag type="primary" :disable-transitions="false"
                >待发送</el-tag
                >
              </div>
              <div v-if="scope.row.sendstate == 3">
                <el-tag type="success" :disable-transitions="false"
                >已发送未领取</el-tag
                >
              </div>
              <div v-if="scope.row.sendstate == 4">
                <el-tag type="info" :disable-transitions="false">不执行</el-tag>
              </div>
              <div v-if="scope.row.sendstate == 5">
                <el-tag type="danger" :disable-transitions="false"
                >发送失败</el-tag
                >
              </div>
              <div v-if="scope.row.sendstate == 6">
                <el-tag type="danger" :disable-transitions="false">已完成</el-tag>
              </div>
            </template>
          </el-table-column>
          <el-table-column
          label="结果状态"
          align="center"
          key="excep"
          prop="excep"
          width="120"
          >
          <template slot-scope="scope">
            <div v-if="scope.row.sendstate == 6">
              <dict-tag
              :options="dict.type.sys_yujing"
              :value="scope.row.excep"
              />
            </div>
            <div v-else>
              <span></span>
            </div>
          </template>
        </el-table-column>
        <el-table-column
        label="处理意见"
        align="center"
        key="suggest"
        prop="suggest"
        width="120"
        >
        <template slot-scope="scope">
          <dict-tag
          :options="dict.type.sys_suggest"
          :value="scope.row.suggest"
          />
          </template>
        </el-table-column>
        <el-table-column
        label="出院日期"
        width="200"
        align="center"
        key="endtime"
        prop="endtime"
        >
        <template slot-scope="scope">
          <span>{{ formatTime(scope.row.endtime) }}</span>
        </template></el-table-column
        >
        <el-table-column
        label="应宣教日期"
        width="200"
        align="center"
        key="longSendTime"
        prop="longSendTime"
        >
        <template slot-scope="scope">
          <span>{{ formatTime(scope.row.longSendTime) }}</span>
          </template></el-table-column
          >
          <el-table-column
          label="出院天数"
          width="120"
          align="center"
          key="endDay"
          prop="endDay"
          >
          <template slot-scope="scope">
            <span>{{
              scope.row.endDay ? scope.row.endDay + "天" : "日期缺失"
            }}</span>
          </template>
        </el-table-column>
        <el-table-column
          label="身份证号码"
          width="200"
          align="center"
          key="sfzh"
          prop="sfzh"
        />
        <el-table-column
          label="责任护士"
          width="120"
          align="center"
          key="nurseName"
          prop="nurseName"
        />
        <el-table-column
          label="主治医生"
          width="120"
          align="center"
          key="drname"
          prop="drname"
        />
        <el-table-column
          label="宣教异常记录"
          width="120"
          align="center"
          key="remark"
          prop="remark"
        />
        <!-- <el-table-column
          label="病历号"
          align="center"
          sortable
          key="medicalRecordNo"
          prop="medicalRecordNo"
          width="120"
        />
        /> -->
        <el-table-column label="年龄" align="center" key="age" prop="age" />
        <el-table-column label="床号" align="center" key="badNo" prop="badNo" />
        <!-- <el-table-column label="年龄" align="center" key="age" prop="age" /> -->
        <!-- <el-table-column label="性别" align="center" key="sex" prop="sex" /> -->
        <!-- <el-table-column label="床号" align="center" key="badNo" prop="badNo" /> -->
        <el-table-column
          label="科室/病区"
          label="科室"
          align="center"
          key="dept"
          prop="dept"
          key="deptname"
          prop="deptname"
          width="120"
        >
        </el-table-column>
        <el-table-column
          label="病区"
          align="center"
          key="leavehospitaldistrictname"
          prop="leavehospitaldistrictname"
          width="120"
        >
        </el-table-column>
        <el-table-column
        <!-- <el-table-column
          label="疾病名称"
          align="center"
          key="icdName"
@@ -169,77 +334,81 @@
          width="120"
          :show-overflow-tooltip="true"
        >
        </el-table-column>
        </el-table-column> -->
        <el-table-column
          label="宣教模板"
          label="模板名称"
          align="center"
          key="templatename"
          prop="templatename"
          width="120"
        >
        </el-table-column>
        <el-table-column
          label="宣教方式"
          align="center"
          key="serviceform"
          prop="serviceform"
          width="120"
        >
        </el-table-column>
        <el-table-column
          label="操作人员"
          align="center"
          key="operatePerson"
          prop="operatePerson"
          width="120"
          width="200"
        />
        <el-table-column
          label="就诊时间"
          label="宣教人员"
          align="center"
          key="visitTime"
          prop="visitTime"
          width="160"
        >
        </el-table-column>
        <el-table-column
          label="宣教时间"
          key="createBy"
          prop="createBy"
          width="120"
        />
        <!-- <el-table-column
          label="责任医师"
          align="center"
          key="senddate"
          prop="senddate"
          width="160"
        >
        </el-table-column>
          key="drname"
          prop="drname"
          width="120"
        /> -->
        <el-table-column
          fixed="right"
          label="任务详情"
        <!-- <el-table-column
          label="出院时间"
          sortable
          align="center"
          width="200"
          class-name="small-padding fixed-width"
          prop="createTime"
          width="160"
        >
          <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="handleDelete(scope.row)"
              v-hasPermi="['system:user:edit']"
              ><span class="button-sc"
                ><i class="el-icon-delete"></i>删除</span
              ></el-button
            >
            <span>{{ formatTime(scope.row.createTime) }}</span>
          </template>
        </el-table-column> -->
        <!-- <el-table-column
          label="宣教时间"
          sortable
          align="center"
          prop="createTime"
          width="160"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.sendType != 3">{{
              formatTime(scope.row.createTime)
            }}</span>
            <span v-else>即刻发送</span>
          </template>
        </el-table-column> -->
        <el-table-column
          label="宣教时间"
          sortable
          align="center"
          prop="finishtime"
          width="160"
        >
          <template slot-scope="scope">
            <span>{{ parseTime(scope.row.finishtime) }}</span>
          </template>
        </el-table-column>
        <!-- <el-table-column
          label="宣教状态"
          fixed="right"
          align="center"
          key="sendstate"
          prop="sendstate"
          width="120"
          :show-overflow-tooltip="true"
        >
          <template slot-scope="scope">
            <dict-tag :options="serviceState" :value="scope.row.sendstate" />
          </template>
        </el-table-column> -->
      </el-table>
      <pagination
@@ -250,6 +419,135 @@
        @pagination="getList"
      />
    </el-row>
    <!-- 添加或修改门诊宣教对话框 -->
    <el-dialog
      :title="title"
      :visible.sync="addalteropen"
      width="700px"
      append-to-body
    >
      <el-form ref="form" :model="form" label-width="100px">
        <el-row :gutter="20">
          <el-col :span="12"
            ><el-form-item label="任务名称">
              <el-input v-model="form.name"></el-input> </el-form-item
          ></el-col>
        </el-row>
        <el-row :gutter="20">
          <el-col :span="24"
            ><el-form-item label="所属科室">
              <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-col
        ></el-row>
        <el-row :gutter="20">
          <el-col :span="24"
            ><el-form-item label="宣教类型">
              <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-col>
        </el-row>
        <el-row :gutter="20">
          <el-col :span="24">
            <el-form-item label="服务模块">
              <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-col>
        </el-row>
        <el-row :gutter="20">
          <el-col :span="24">
            <el-form-item label="门诊宣教要求">
              <el-input type="textarea" v-model="form.desc"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">提 交</el-button>
        <el-button @click="cancel">返 回</el-button>
      </div>
    </el-dialog>
    <!-- 修改发送时间对话框 -->
    <el-dialog
      title="发送时间设置"
      :visible.sync="modificationVisible"
      width="45%"
    >
      <div style="margin-bottom: 20px; color: red">
        统一修改当天未发送的任务时间
      </div>
      <el-form
        :model="ruleForm"
        :rules="rules"
        ref="ruleForm"
        label-width="120px"
        class="demo-ruleForm"
      >
        <el-form-item label="发送日期">
          <el-date-picker
            v-model="ruleForm.value1"
            type="date"
            placeholder="选择日期"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="时间段" prop="type">
          <el-checkbox-group v-model="ruleForm.type">
            <el-checkbox label="上午" name="type"></el-checkbox>
            <el-checkbox label="下午" name="type"></el-checkbox>
            <el-checkbox label="晚上" name="type"></el-checkbox>
          </el-checkbox-group>
        </el-form-item>
        <el-form-item label="上午时间区间" required>
          <el-time-picker
            is-range
            v-model="ruleForm.value2"
            range-separator="至"
            start-placeholder="开始时间"
            end-placeholder="结束时间"
            placeholder="选择时间范围"
          >
          </el-time-picker>
        </el-form-item>
        <el-form-item label="下午时间区间" required>
          <el-time-picker
            is-range
            v-model="ruleForm.value3"
            range-separator="至"
            start-placeholder="开始时间"
            end-placeholder="结束时间"
            placeholder="选择时间范围"
          >
          </el-time-picker>
        </el-form-item>
        <el-form-item label="晚上时间区间" required>
          <el-time-picker
            is-range
            v-model="ruleForm.value4"
            range-separator="至"
            start-placeholder="开始时间"
            end-placeholder="结束时间"
            placeholder="选择时间范围"
          >
          </el-time-picker>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="modificationVisible = false">取 消</el-button>
        <el-button type="primary" @click="modificationVisible = false"
          >确 定</el-button
        >
      </span>
    </el-dialog>
  </div>
</template>
@@ -263,18 +561,14 @@
  resetUserPwd,
  changeUserStatus,
} from "@/api/system/user";
import {
  getTaskservelist,
  getTaskInfo,
  Editsingletask,
} from "@/api/AiCentre/index";
import { gethetasklist, delhetaskinfo } from "@/api/AiCentre/index";
import { getTaskservelist } from "@/api/AiCentre/index";
import Treeselect from "@riophae/vue-treeselect";
import store from "@/store";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
  name: "User",
  dicts: ["sys_normal_disable", "sys_user_sex"],
  name: "Discharge",
  dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
  components: { Treeselect },
  data() {
    return {
@@ -294,7 +588,10 @@
      userList: null,
      // 弹出层标题
      title: "新增门诊宣教",
      // 是否显示修改、添加弹出层
      addalteropen: false,
      // 修改发送时间对话框
      modificationVisible: false,
      // 部门名称
      deptName: undefined,
      // 默认密码
@@ -303,8 +600,9 @@
      dateRange: [],
      // 岗位选项
      postOptions: [],
      // 角色选项
      roleOptions: [],
      ruleForm: {
        type: [],
      },
      dynamicTags: ["选项一", "选项二", "选项三"], //选项
      inputVisible: false,
      inputValue: "",
@@ -320,8 +618,73 @@
      },
      value: [],
      list: [],
      source: [
        {
          value: 0,
          label: "所属患者",
        },
        {
          value: 1,
          label: "科室患者",
        },
        {
          value: 2,
          label: "病区患者",
        },
      ],
      loading: false,
      states: ["Alabama", "North Dakota", "Ohio", "Oklahoma", "Oregon", ,],
      states: [
        "Alabama",
        "Alaska",
        "Arizona",
        "Arkansas",
        "California",
        "Colorado",
        "Connecticut",
        "Delaware",
        "Florida",
        "Georgia",
        "Hawaii",
        "Idaho",
        "Illinois",
        "Indiana",
        "Iowa",
        "Kansas",
        "Kentucky",
        "Louisiana",
        "Maine",
        "Maryland",
        "Massachusetts",
        "Michigan",
        "Minnesota",
        "Mississippi",
        "Missouri",
        "Montana",
        "Nebraska",
        "Nevada",
        "New Hampshire",
        "New Jersey",
        "New Mexico",
        "New York",
        "North Carolina",
        "North Dakota",
        "Ohio",
        "Oklahoma",
        "Oregon",
        "Pennsylvania",
        "Rhode Island",
        "South Carolina",
        "South Dakota",
        "Tennessee",
        "Texas",
        "Utah",
        "Vermont",
        "Virginia",
        "Washington",
        "West Virginia",
        "Wisconsin",
        "Wyoming",
      ],
      pickerOptions: {
        disabledDate(time) {
          return time.getTime() > Date.now();
@@ -364,7 +727,8 @@
      topqueryParams: {
        pageNum: 1,
        pageSize: 10,
        type: 1,
        serviceType: 4,
        searchscope:2,
      },
      propss: { multiple: true },
      options: [],
@@ -372,75 +736,54 @@
      topicoptions: [
        {
          value: 1,
          label: "待审核",
          label: "被领取",
        },
        {
          value: 2,
          label: "执行中",
          label: "待发送",
        },
        {
          value: 3,
          label: "执行完成",
          label: "已发送未领取",
        },
        {
          value: 4,
          label: "已停止",
          label: "不执行",
        },
        {
          value: 5,
          label: "发送失败",
        },
        {
          value: 6,
          label: "已完成",
        },
      ],
      topicoptionsyj: [
        {
          value: 1,
          label: "异常",
        },
        {
          value: 0,
          label: "正常",
        },
      ],
      serviceState: [],
      // 表单校验
      rules: {
        userName: [
          { required: true, message: "用户名称不能为空", trigger: "blur" },
          {
            min: 2,
            max: 20,
            message: "用户名称长度必须介于 2 和 20 之间",
            trigger: "blur",
          },
        ],
        nickName: [
          { required: true, message: "用户昵称不能为空", trigger: "blur" },
        ],
        password: [
          { required: true, message: "用户密码不能为空", trigger: "blur" },
          {
            min: 5,
            max: 20,
            message: "用户密码长度必须介于 5 和 20 之间",
            trigger: "blur",
          },
        ],
        email: [
          {
            type: "email",
            message: "请输入正确的邮箱地址",
            trigger: ["blur", "change"],
          },
        ],
        phonenumber: [
          {
            pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
            message: "请输入正确的手机号码",
            trigger: "blur",
          },
        ],
        IDnumber: [
          {
            pattern:
              /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/,
            message: "请输入正确的身份证号码",
            trigger: "blur",
          },
        ],
      },
      rules: {},
    };
  },
  watch: {},
  created() {
    this.serviceState = store.getters.serviceState;
    this.getList();
    this.getConfigKey("sys.user.initPassword").then((response) => {
      this.initPassword = response.msg;
    });
  },
  activated() {
    this.getList();
  },
  // 搜索
  mounted() {
@@ -449,11 +792,32 @@
    });
  },
  methods: {
    /** 查询门诊宣教列表 */
    /** 查询门诊宣教服务列表 */
    getList() {
      if (this.topqueryParams.searchscope == 1) {
        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.topqueryParams.leavehospitaldistrictcodes = null;
      } else if (this.topqueryParams.searchscope == 2) {
        this.topqueryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
        this.topqueryParams.leaveldeptcodes = null;
      } else {
        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.topqueryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
      }
      this.loading = true;
      getTaskservelist(this.topqueryParams).then((response) => {
        this.userList = response.rows;
        this.userList = response.rows[0].serviceSubtaskList;
        this.userList.forEach((item) => {
          if (item.endtime) {
            item.endDay = this.daysBetween(item.endtime);
          }
        });
        this.total = response.total;
        this.loading = false;
      });
@@ -482,7 +846,7 @@
      this.$modal
        .confirm('确认要"' + text + '""' + row.userName + '"用户吗?')
        .then(function () {
          return changeUserStatus(row.id, row.status);
          return changeUserStatus(row.userId, row.status);
        })
        .then(() => {
          this.$modal.msgSuccess(text + "成功");
@@ -499,7 +863,7 @@
    // 表单重置
    reset() {
      this.form = {
        id: undefined,
        userId: undefined,
        deptId: undefined,
        userName: undefined,
        nickName: undefined,
@@ -516,15 +880,36 @@
    },
    /** 搜索按钮操作 */
    handleQuery() {
      if (this.topqueryParams.searchscope == 1) {
        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.topqueryParams.leavehospitaldistrictcodes = null;
      } else if (this.topqueryParams.searchscope == 2) {
        this.topqueryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
        this.topqueryParams.leaveldeptcodes = null;
      } else {
        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.topqueryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
      }
      this.topqueryParams.pageNum = 1;
      this.topqueryParams.startOutHospTime = this.dateRange[0];
      this.topqueryParams.endOutHospTime = this.dateRange[1];
      this.getList();
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.dateRange = [];
      this.resetForm("queryForm");
      this.topqueryParams.deptId = undefined;
      this.$refs.tree.setCurrentKey(null);
      this.topqueryParams = {
        pageNum: 1,
        pageSize: 10,
        serviceType: 4,
      };
      this.handleQuery();
    },
    // 多选框选中数据
@@ -558,31 +943,74 @@
      this.$router.push({
        path: "/followvisit/Missioncreation",
        query: {
          type: 1,
          type: 3,
          serviceType: 4,
        },
      });
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.$router.push({
        path: "/followvisit/record/detailpage/",
        query: { id: "1", type: row.hosptype },
    /** 提交按钮 */
    submitForm: function () {
      this.$refs["form"].validate((valid) => {
        if (valid) {
          if (this.form.userId != undefined) {
            updateUser(this.form).then((response) => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addUser(this.form).then((response) => {
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              this.getList();
            });
          }
        }
      });
    },
    /** 删除按钮操作 */
    handleDelete(row) {
      const userIds = row.id || this.ids;
    // 全部停止
    AllStop() {
      this.$modal
        .confirm('是否确认删除用户编号为"' + ids + '"的数据项?')
        .confirm("是否停止全部任务?")
        .then(function () {
          return delhetaskinfo(ids);
          return console.log("停止成功");
        })
        .then(() => {
          this.getList();
          this.$modal.msgSuccess("删除成功");
          this.$modal.msgWarning("停止成功");
        })
        .catch(() => {});
    },
    // 全部开始
    AllStarted() {
      this.$modal
        .confirm("是否开启全部任务?")
        .then(function () {
          return console.log("开启成功");
        })
        .then(() => {
          this.getList();
          this.$modal.msgSuccess("开启成功");
        })
        .catch(() => {});
    },
    // 设置发送时间
    Sendtimesetting() {
      this.modificationVisible = true;
    },
    // 便捷按钮
    toleadExport(too) {
      if (too == 1) {
        this.topqueryParams.sendstate=4;
        this.topqueryParams.excep=null;
      } else if (too == 2) {
        this.topqueryParams.excep=1;
      }
      this.handleQuery();
    },
    /** 导出按钮操作 */
    handleExport() {
@@ -606,7 +1034,7 @@
}
.document {
  width: 100px;
  // width: 100px;
  height: 50px;
}
@@ -689,15 +1117,24 @@
}
.button-bb {
  font-weight: 500;
  color: #2ba05c;
  background-color: #2ba05c;
  padding: 5px;
  border-radius: 1px;
  color: #ffffff;
}
.button-xq {
  font-weight: 500;
  color: #409eff;
  background-color: #409eff;
  padding: 5px;
  border-radius: 1px;
  color: #ffffff;
}
.button-sc {
  font-weight: 500;
  color: #dd302a;
  background-color: #dd302a;
  padding: 5px;
  border-radius: 1px;
  color: #ffffff;
}
.button-zx {
  background: #4fabe9;
@@ -712,9 +1149,10 @@
  }
}
::v-deep.el-checkbox-group {
  span {
    font-size: 24px;
  }
}
// 选项字体放大
// ::v-deep.el-checkbox-group {
//   span {
//     font-size: 24px;
//   }
// }
</style>
src/views/patient/questionnaire/index.vue
@@ -271,7 +271,7 @@
          :show-overflow-tooltip="true"
        >
          <template slot-scope="scope">
            <div>已发送</div>
            <div>已发送未领取</div>
          </template>
        </el-table-column>
        <el-table-column
src/views/register.vue
@@ -88,9 +88,9 @@
      </el-form-item>
    </el-form>
    <!--  底部  -->
    <div class="el-register-footer">
    <!-- <div class="el-register-footer">
      <span>Copyright © 2018-2022 ruoyi.vip All Rights Reserved.</span>
    </div>
    </div> -->
  </div>
</template>
src/views/sfstatistics/percentage/index.vue
@@ -3,7 +3,7 @@
    <!-- 左侧栏 -->
    <div class="sidecolumn">
      <div class="sidecolumn-top">
        <div class="top-wj">患者来源</div>
        <div class="top-wj">患者范围</div>
      </div>
      <div class="bottom-fl">
src/views/sfstatistics/propaganda/index.vue
@@ -3,7 +3,7 @@
    <!-- 左侧栏 -->
    <div class="sidecolumn">
      <div class="sidecolumn-top">
        <div class="top-wj">患者来源</div>
        <div class="top-wj">患者范围</div>
      </div>
      <div class="bottom-fl">
src/views/sfstatistics/statement/index.vue
@@ -3,7 +3,7 @@
    <!-- 左侧栏 -->
    <div class="sidecolumn">
      <div class="sidecolumn-top">
        <div class="top-wj">患者来源</div>
        <div class="top-wj">患者范围</div>
      </div>
      <div class="bottom-fl">
vue.config.js
@@ -36,9 +36,9 @@
      // detail: https://cli.vuejs.org/config/#devserver-proxy
      [process.env.VUE_APP_BASE_API]: {
        // target: `http://192.168.168.60:8095`,
        target: `http://192.168.1.10:8095`,
        // target: `http://192.168.1.10:8095`,
        // target:`http://localhost:8095`,
        // target: `http://192.168.101.135:8095`,
        target: `http://192.168.101.135:8095`,
        // target: `http://192.168.101.166:8093`,
        // target: `http://192.168.191.181:8095`,
        changeOrigin: true,