WXL
2024-12-16 5dc9d1b98ea27422dbea14857dad5c7367eaedfe
测试完成
已添加1个文件
已修改9个文件
597 ■■■■■ 文件已修改
dist (3).zip 补丁 | 查看 | 原始文档 | blame | 历史
src/api/login.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/system/user.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/user.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/followvisit/discharge/index.vue 241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login.vue 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/patient/medtechnician/SpecializedService.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/patient/propaganda/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sfstatistics/percentage/index.vue 288 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dist (3).zip
Binary files differ
src/api/login.js
@@ -1,12 +1,13 @@
import request from '@/utils/request'
// 登录方法
export function login(username, password, code, uuid) {
export function login(username, password, code, uuid,guid) {
  const data = {
    username,
    password,
    code,
    uuid
    uuid,
    guid,
  }
  return request({
    url: '/login',
@@ -56,4 +57,4 @@
    method: 'get',
    timeout: 20000
  })
}
}
src/api/system/user.js
@@ -86,6 +86,14 @@
    data: data,
  });
}
// 修改用户个人信息
export function getSfStatistics(data) {
  return request({
    url: "/smartor/serviceSubtask/getSfStatistics",
    method: "post",
    data: data,
  });
}
// 用户密码重置
export function updateUserPwd(oldPassword, newPassword) {
src/store/modules/user.js
@@ -118,10 +118,12 @@
      const password = userInfo.password
      const code = userInfo.code
      const uuid = userInfo.uuid
      const guid = userInfo.guid
      return new Promise((resolve, reject) => {
        login(username, password, code, uuid).then(res => {
        login(username, password, code, uuid,guid).then(res => {
          setToken(res.token)
          commit('SET_TOKEN', res.token)
          localStorage.setItem('guid', guid);
          resolve()
        }).catch(error => {
          reject(error)
src/views/followvisit/discharge/index.vue
@@ -22,6 +22,44 @@
            </div>
          </el-card>
        </el-col>
        <el-col :span="2.5">
          <div class="ysfleftvlue">
            <el-card shadow="hover">
              <div style="padding: 8px">
                <span>已发送未领取</span>
                <div
                  style="
                    text-align: center;
                    font-size: 18px;
                    margin-top: 10px;
                    font-weight: 600;
                  "
                >
                  {{ yfsvalue }}
                </div>
              </div>
            </el-card>
          </div>
        </el-col>
        <el-col :span="2.5">
          <div class="errleftvlue">
            <el-card shadow="hover">
              <div style="padding: 8px">
                <span>异常</span>
                <div
                  style="
                    text-align: center;
                    font-size: 18px;
                    margin-top: 10px;
                    font-weight: 600;
                  "
                >
                  {{ ycvalue }}
                </div>
              </div>
            </el-card>
          </div>
        </el-col>
      </el-row>
    </div>
    <el-row :gutter="20">
@@ -59,19 +97,15 @@
            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-cascader
            v-model="topqueryParams.scopetype"
            placeholder="默认全部"
            :options="sourcetype"
            :props="{ expandTrigger: 'hover' }"
            @change="handleChange"
          ></el-cascader>
        </el-form-item>
        <el-form-item label="任务状态" prop="status">
@@ -645,6 +679,8 @@
      },
      dynamicTags: ["选项一", "选项二", "选项三"], //选项
      inputVisible: false,
      ycvalue: "",
      yfsvalue: "",
      inputValue: "",
      preachform: "",
      previewVisible: false, //门诊随访预览弹框
@@ -659,18 +695,21 @@
      },
      value: [],
      list: [],
      source: [
        {
          value: 0,
          label: "所属患者",
        },
      sourcetype: [
        {
          value: 1,
          label: "科室患者",
          label: "科室",
          children: [],
        },
        {
          value: 2,
          label: "病区患者",
          label: "病区",
          children: [],
        },
        {
          value: 3,
          label: "全部",
        },
      ],
      loading: false,
@@ -680,59 +719,37 @@
          value: 0,
        },
        {
          name: "应随访",
          value: 0,
        },
        {
          name: "患者过滤",
          value: 0,
        },
        {
          name: "异常",
          name: "应随访",
          value: 0,
        },
        // {
        //   name: "异常",
        //   value: 0,
        // },
        {
          name: "发送失败",
          value: 0,
        },
        {
          name: "已完成",
          name: "待发送",
          value: 0,
        },
        {
          name: "已发送",
          value: 0,
        },
        // {
        //   name: "已发送未领取",
        //   value: 0,
        // },
      ],
      pickerOptions: {
        disabledDate(time) {
          return time.getTime() > Date.now();
        },
        shortcuts: [
          {
            text: "今天",
            onClick(picker) {
              picker.$emit("pick", new Date());
            },
          },
          {
            text: "昨天",
            onClick(picker) {
              const date = new Date();
              date.setTime(date.getTime() - 3600 * 1000 * 24);
              picker.$emit("pick", date);
            },
          },
          {
            text: "一周前",
            onClick(picker) {
              const date = new Date();
              date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
              picker.$emit("pick", date);
            },
          },
        ],
      },
      // 表单参数
      form: {
        phonenumber: "",
@@ -747,7 +764,10 @@
        pageNum: 1,
        pageSize: 10,
        serviceType: 2,
        searchscope: 2,
        searchscope: 3,
        scopetype: [],
        leaveldeptcodes: [],
        leavehospitaldistrictcodes: [],
      },
      propss: { multiple: true },
      options: [],
@@ -788,6 +808,8 @@
          label: "正常",
        },
      ],
      errtype: "",
      leavehospitaldistrictcode: "",
      serviceState: [],
      checkboxlist: [],
      // 表单校验
@@ -798,8 +820,26 @@
  created() {
    this.serviceState = store.getters.serviceState;
    this.checkboxlist = store.getters.checkboxlist;
    this.getList(1);
    this.errtype = this.$route.query.errtype;
    this.leavehospitaldistrictcode =
      this.$route.query.leavehospitaldistrictcode;
    this.sourcetype[0].children = store.getters.belongDepts.map((dept) => {
      return {
        label: dept.deptName,
        value: dept.deptCode,
      };
    });
    this.sourcetype[1].children = store.getters.belongWards.map((dept) => {
      return {
        label: dept.districtName,
        value: dept.districtCode,
      };
    });
    if (this.errtype) {
      this.toleadExport(2);
    } else {
      this.getList(1);
    }
    this.getConfigKey("sys.user.initPassword").then((response) => {
      this.initPassword = response.msg;
    });
@@ -810,21 +850,20 @@
  methods: {
    /** 查询门诊随访服务列表 */
    getList(refresh) {
      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 {
      // 默认全部
      if (this.topqueryParams.searchscope == 3) {
        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
        this.topqueryParams.leavehospitaldistrictcodes =
          store.getters.belongWards.map((obj) => obj.districtCode);
      }
      // 接受异常跳转
      if (this.errtype) {
        this.topqueryParams.leavehospitaldistrictcodes.push(
          this.leavehospitaldistrictcode
        );
        console.log(this.topqueryParams.leavehospitaldistrictcodes, "11");
      }
      this.loading = true;
      getTaskservelist(this.topqueryParams).then((response) => {
@@ -833,28 +872,26 @@
        if (refresh) {
          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[1].value = response.rows[0].wzx;
          this.cardlist[2].value = response.rows[0].ysf;
          this.ycvalue = response.rows[0].yc;
          this.cardlist[3].value = response.rows[0].fssb;
          this.cardlist[4].value = response.rows[0].dfs;
          this.cardlist[5].value = response.rows[0].yfs2;
          this.yfsvalue = response.rows[0].yfs;
        }
        // this.cardlist[6].value = response.rows[0].yfs;
        this.loading = false;
        this.userList.forEach((item) => {
          let idArray = null;
          if (item.endtime) {
            item.endDay = this.daysBetween(item.endtime);
            console.log(item.endDay, "时间");
          }
          console.log(item, "item");
          if (item.preachform) {
            if (item.endtime) {
              item.preachformson = item.preachform;
              idArray = item.preachform.split(",");
              console.log(idArray, "idArray111");
            }
            console.log(idArray, "idArray222");
            item.preachform = idArray.map((value) => {
              // 查找id对应的对象
@@ -927,17 +964,7 @@
    },
    /** 搜索按钮操作 */
    handleQuery(refresh) {
      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 {
      if (this.topqueryParams.searchscope == 3) {
        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
          (obj) => obj.deptCode
        );
@@ -949,6 +976,25 @@
      this.topqueryParams.endOutHospTime = this.dateRange[1];
      this.getList(refresh);
    },
    // 患者范围处理
    handleChange(value) {
      let type = value[0];
      let code = value.slice(-1)[0];
      this.topqueryParams.leavehospitaldistrictcodes = [];
      this.topqueryParams.leaveldeptcodes = [];
      if (type == 1) {
        this.topqueryParams.leaveldeptcodes.push(code);
        this.topqueryParams.leavehospitaldistrictcodes = [];
        this.topqueryParams.searchscope = 1;
      } else if (type == 2) {
        this.topqueryParams.leavehospitaldistrictcodes.push(code);
        this.topqueryParams.leaveldeptcodes = [];
        this.topqueryParams.searchscope = 2;
      } else {
        this.topqueryParams.searchscope = 3;
      }
    },
    /** 重置按钮操作 */
    resetQuery() {
@@ -1124,8 +1170,10 @@
    },
    /** 导出按钮操作 */
    handleExport() {
      this.topqueryParams.pageNum = null;
      this.topqueryParams.pageSize = null;
      this.download(
        "system/user/export",
        "smartor/serviceSubtask/export",
        {
          ...this.topqueryParams,
        },
@@ -1242,6 +1290,21 @@
  background: #8dc8f8;
  cursor: pointer; /* 鼠标悬浮时变为手形 */
}
::v-deep.errleftvlue .el-card__body {
  background: #fdd0d7;
}
::v-deep.errleftvlue .el-card__body:hover {
  background: #f88d96;
  cursor: pointer; /* 鼠标悬浮时变为手形 */
}
::v-deep.ysfleftvlue .el-card__body {
  background: #d0fdd8;
}
::v-deep.ysfleftvlue .el-card__body:hover {
  background: #8df8a4;
  cursor: pointer; /* 鼠标悬浮时变为手形 */
}
.button-bb {
  font-weight: 500;
  background-color: #2ba05c;
src/views/login.vue
@@ -36,6 +36,18 @@
          />
        </el-input>
      </el-form-item>
      <el-form-item prop="guid">
        <el-select style="width: 100%;" v-model="loginForm.guid"  placeholder="请选择院区">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.label"
            :value="item.value"
          >
          </el-option>
          <i slot="prefix" class="el-icon-mobile"></i>
        </el-select>
      </el-form-item>
      <!-- <el-form-item prop="code" v-if="captchaEnabled">
        <el-input
          v-model="loginForm.code"
@@ -100,7 +112,13 @@
        rememberMe: false,
        code: "",
        uuid: "",
        guid:'',
      },
      options: [
        { value: "1", label: "中医大二院" },
        { value: "2", label: "中医大三院" },
        { value: "3", label: "中医大四院" },
        { value: "4", label: "中医大五院" },],
      loginRules: {
        username: [
          { required: true, trigger: "blur", message: "请输入您的账号" },
@@ -108,7 +126,7 @@
        password: [
          { required: true, trigger: "blur", message: "请输入您的密码" },
        ],
        // code: [{ required: true, trigger: "change", message: "请输入验证码" }],
        guid: [{ required: true, trigger: "blur", message: "请选择院区" }],
      },
      loading: false,
      // 验证码开关
@@ -129,6 +147,9 @@
  created() {
    this.getCode();
    this.getCookie();
    if (localStorage.getItem('guid')) {
      this.loginForm.guid = localStorage.getItem('guid');
    }
  },
  methods: {
    getCode() {
@@ -170,6 +191,7 @@
            Cookies.remove("password");
            Cookies.remove("rememberMe");
          }
          localStorage.removeItem('guid');
          this.$store
            .dispatch("Login", this.loginForm)
            .then(() => {
@@ -194,17 +216,17 @@
  justify-content: center;
  align-items: center;
  height: 100%;
  overflow:hidden !important;
  overflow: hidden !important;
  background-position: center center;
  /* 背景图不平铺 */
background-repeat: no-repeat;
/* 当内容高度大于图片高度时,背景图像的位置相对于viewport固定 */
background-attachment: fixed;
/* 让背景图基于容器大小伸缩 */
background-size: cover;
/* 设置背景颜色,背景图加载过程中会显示背景色 */
background-color: #464646;
  background-repeat: no-repeat;
  /* 当内容高度大于图片高度时,背景图像的位置相对于viewport固定 */
  background-attachment: fixed;
  /* 让背景图基于容器大小伸缩 */
  background-size: cover;
  /* 设置背景颜色,背景图加载过程中会显示背景色 */
  background-color: #464646;
  background-image: url("../assets/images/login-background.jpg");
  background-size: cover;
}
@@ -257,6 +279,7 @@
  font-size: 12px;
  letter-spacing: 1px;
}
.login-code-img {
  height: 38px;
}
src/views/patient/medtechnician/SpecializedService.vue
@@ -286,7 +286,7 @@
        >
          <template slot-scope="scope">
            <span>{{
              scope.row.endDay ? scope.row.endDay + "天" : "日期缺失"
              scope.row.endDay ? scope.row.endDay + "天" : ""
            }}</span>
          </template>
        </el-table-column>
src/views/patient/propaganda/index.vue
@@ -268,7 +268,7 @@
        >
          <template slot-scope="scope">
            <span>{{
              scope.row.endDay ? scope.row.endDay + "天" : "日期缺失"
              scope.row.endDay ? scope.row.endDay + "天" : ""
            }}</span>
          </template>
        </el-table-column>
src/views/sfstatistics/percentage/index.vue
@@ -1,7 +1,7 @@
<template>
  <div class="Questionnairemanagement">
    <!-- 左侧栏 -->
    <div class="sidecolumn">
    <!-- <div class="sidecolumn">
      <div class="sidecolumn-top">
        <div class="top-wj">患者范围</div>
      </div>
@@ -19,10 +19,10 @@
          <el-tab-pane label="体检" name="physical"></el-tab-pane>
        </el-tabs>
      </div>
    </div>
    </div> -->
    <!-- 右侧数据 -->
    <div class="leftvlue">
      <div class="leftvlue-top">
      <!-- <div class="leftvlue-top">
        <el-tabs v-model="topactiveName" @tab-click="tophandleClick">
          <el-tab-pane name="Local">
            <span class="mulsz" slot="label">按出院病区统计 </span>
@@ -31,7 +31,7 @@
            <span class="mulsz" slot="label">按出院科室统计 </span>
          </el-tab-pane>
        </el-tabs>
      </div>
      </div> -->
      <div class="leftvlue-bg">
        <el-row :gutter="20">
          <!--标签数据-->
@@ -44,7 +44,7 @@
              v-show="showSearch"
              label-width="98px"
            >
              <el-form-item label="医院" prop="userName">
              <!-- <el-form-item label="医院" prop="userName">
                <el-select v-model="queryParams.value1" placeholder="请选择">
                  <el-option
                    v-for="item in options"
@@ -54,19 +54,35 @@
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              </el-form-item> -->
              <el-form-item label="出院病区" prop="userName">
                <el-select v-model="queryParams.value2" placeholder="请选择">
                <!-- <el-select v-model="queryParams.leavehospitaldistrictcodes" placeholder="请选择">
                  <el-option
                    v-for="item in options"
                    :key="item.value"
                    v-for="item in flatArray"
                    :key="item.deptCode"
                    :label="item.label"
                    :value="item.value"
                    :value="item.deptCode"
                  >
                  </el-option>
                </el-select> -->
                <el-select
                  v-model="queryParams.leavehospitaldistrictcodes"
                  size="medium"
                  multiple
                  filterable
                  placeholder="请选择病区"
                >
                <el-option
                    v-for="item in flatArray"
                    :key="item.deptCode"
                    :label="item.label"
                    :value="item.deptCode"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="管理方案" prop="userName">
              <!-- <el-form-item label="管理方案" prop="userName">
                <el-select v-model="queryParams.value3" placeholder="请选择">
                  <el-option
                    v-for="item in options"
@@ -76,8 +92,8 @@
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="出院日期" prop="userName">
              </el-form-item> -->
              <!-- <el-form-item label="出院日期" prop="userName">
                <el-date-picker
                  v-model="queryParams.valuetime1"
                  align="right"
@@ -86,14 +102,14 @@
                  :picker-options="pickerOptionsa"
                >
                </el-date-picker>
              </el-form-item>
              <el-form-item label="计划随访日期" prop="userName">
              </el-form-item> -->
              <el-form-item label="统计日期" prop="userName">
                <el-date-picker
                  v-model="queryParams.valuetime2"
                  align="right"
                  type="date"
                  placeholder="选择日期"
                  :picker-options="pickerOptions"
                  v-model="queryParams.dateRange"
                  type="daterange"
                  range-separator="至"
                  start-placeholder="开始日期"
                  end-placeholder="结束日期"
                >
                </el-date-picker>
              </el-form-item>
@@ -170,115 +186,137 @@
              @selection-change="handleSelectionChange"
            >
              <el-table-column type="selection" width="50" align="center" />
              <el-table-column
              <!-- <el-table-column
                fixed
                label="序号"
                align="center"
                key="tagid"
                prop="tagid"
                width="50"
              />
              /> -->
              <el-table-column
                fixed
                label="出院病区"
                align="center"
                key="tagname"
                prop="tagname"
                key="leavehospitaldistrictname"
                prop="leavehospitaldistrictname"
                width="100"
                :show-overflow-tooltip="true"
              />
              <el-table-column
                label="应随访数"
                label="服务总量"
                align="center"
                key="updateTime"
                prop="updateTime"
                key="serviceCount"
                prop="serviceCount"
              >
                <template slot-scope="scope">
                  <span
                    >{{ scope.row.updateBy }}
                    <p>{{ scope.row.updateTime }}</p></span
                    <p>{{ scope.row.serviceCount }}</p></span
                  >
                </template>
              </el-table-column>
              <el-table-column
                label="随访完成数"
                label="患者过滤数量"
                align="center"
                key="tagdescription"
                prop="tagdescription"
                width="120"
                key="bzxCount"
                prop="bzxCount"
              >
              </el-table-column>
              <el-table-column
                label="应随访量"
                align="center"
                key="ysfCount"
                prop="ysfCount"
              >
              </el-table-column
              ><el-table-column
                label="发送失败"
                align="center"
                key="fssbCount"
                prop="fssbCount"
              >
              </el-table-column
              ><el-table-column
                label="待发送"
                align="center"
                key="dfsCount"
                prop="dfsCount"
              >
              </el-table-column
              ><el-table-column
                label="已发送"
                align="center"
                key="yfsCount"
                prop="yfsCount"
              >
              </el-table-column>
              <el-table-column
                label="已完成"
                align="center"
                key="ywcCount"
                prop="ywcCount"
              >
              </el-table-column>
              <el-table-column
                label="随访完成率"
                align="center"
                key="isupload"
                prop="isupload"
                width="120"
                key="sfwcl"
                prop="sfwcl"
              >
              <template slot-scope="scope">
                  <span>{{ Number(scope.row.sfwcl)*100 }}%</span>
                </template>
              </el-table-column>
              <el-table-column
                label="AI外呼次数"
              <!-- <el-table-column
                label="公众号发送次数"
                align="center"
                key="tagdescription"
                prop="tagdescription"
              >
              </el-table-column>
              <el-table-column
                label="AI随访完成数"
                label="公众号随访完成数"
                align="center"
                key="tagdescription"
                prop="tagdescription"
              >
              </el-table-column>
              <el-table-column
                label="AI随访完成率"
                label="公众号随访完成率"
                align="center"
                key="tagdescription"
                prop="tagdescription"
              >
              </el-table-column>
              <el-table-column
                label="微信发送次数"
                align="center"
                key="tagdescription"
                prop="tagdescription"
              >
              </el-table-column>
              <el-table-column
                label="微信随访完成数"
                align="center"
                key="tagdescription"
                prop="tagdescription"
              >
              </el-table-column>
              <el-table-column
                label="微信随访完成率"
                align="center"
                key="tagdescription"
                prop="tagdescription"
              >
              </el-table-column>
              </el-table-column> -->
              <el-table-column
                label="短信发送次数"
                align="center"
                key="tagdescription"
                prop="tagdescription"
                width="120"
                key="dxfscs"
                prop="dxfscs"
              >
              </el-table-column>
              <el-table-column
                label="短信随访完成数"
                align="center"
                key="tagdescription"
                prop="tagdescription"
                width="120"
                key="dxsfwccs"
                prop="dxsfwccs"
              >
              </el-table-column>
              <el-table-column
                label="短信随访完成率"
                align="center"
                key="tagdescription"
                prop="tagdescription"
                width="120"
                key="dxsfwcl"
                prop="dxsfwcl"
              >
              </el-table-column>
              <el-table-column
              <!-- <el-table-column
                label="人工随访次数"
                align="center"
                key="tagdescription"
@@ -298,8 +336,8 @@
                key="tagdescription"
                prop="tagdescription"
              >
              </el-table-column>
              <el-table-column
              </el-table-column> -->
              <!-- <el-table-column
                label="失访数"
                align="center"
                key="tagdescription"
@@ -318,30 +356,42 @@
                align="center"
                key="tagdescription"
                prop="tagdescription"
              >
              </el-table-column>
              > -->
              <!-- </el-table-column> -->
              <el-table-column
                label="异常总数"
                align="center"
                key="tagdescription"
                prop="tagdescription"
                key="yczs"
                prop="yczs"
              >
                <template slot-scope="scope">
                  <el-button
                    size="medium"
                    type="danger"
                    plain
                    @click="routerErr(scope.row)"
                    ><span class="button-zx"
                      >{{scope.row.yczs}}</span
                    ></el-button
                  >
                </template>
              </el-table-column>
              <el-table-column
              <!-- <el-table-column
                label="总异常率"
                align="center"
                key="tagdescription"
                prop="tagdescription"
              >
              </el-table-column>
              </el-table-column> -->
              <el-table-column
                label="回复异常数"
                align="center"
                key="tagdescription"
                prop="tagdescription"
                width="100"
                key="hfycs"
                prop="hfycs"
              >
              </el-table-column>
              <el-table-column
              <!-- <el-table-column
                label="回复异常及时处理数"
                align="center"
                key="tagdescription"
@@ -354,7 +404,7 @@
                key="tagdescription"
                prop="tagdescription"
              >
              </el-table-column>
              </el-table-column> -->
              <!-- <el-table-column
                label="操作"
@@ -385,13 +435,13 @@
              </el-table-column> -->
            </el-table>
            <pagination
            <!-- <pagination
              v-show="total > 0"
              :total="total"
              :page.sync="queryParams.pageNum"
              :limit.sync="queryParams.pageSize"
              @pagination="getList"
            />
            /> -->
          </el-col>
        </el-row>
      </div>
@@ -412,6 +462,9 @@
  listtag,
  tagclassifylist,
} from "@/api/system/label";
import {
  getSfStatistics,deptTreeSelect
} from "@/api/system/user";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
@@ -460,6 +513,7 @@
      idds: "", //分类id
      // 总条数
      total: 0,
      flatArray:[],
      amendtag: false, //是否修改类别
      lstamendtag: false, //是否修改标签
      scavisible: false, //删除弹框
@@ -498,7 +552,7 @@
      goQRCodeVisible: false, //二维码弹框
      sidecolumnval: "", //类别搜索
      propss: { multiple: true },
      topqueryParams: {}, //导出筛选条件
      options: [
        {
          value: 1,
@@ -533,8 +587,8 @@
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        tagname: undefined,
        tagdescription: undefined,
        serviceType:[2],
        dateRange: [],
      },
      // 列信息
      columns: [
@@ -551,16 +605,16 @@
  watch: {},
  created() {
    this.getList();
    this.gitclasify();
this.getDeptTree();
  },
  methods: {
    /** 查询标签列表 */
    getList() {
      listtag(this.addDateRange(this.queryParams)).then((response) => {
      getSfStatistics(this.queryParams).then((response) => {
        console.log(response);
        this.total = response.total;
        this.userList = response.rows;
        // this.total = response.total;
        this.userList = response.data;
      });
    },
    /** 修改标签 */
@@ -575,6 +629,36 @@
        tagdescription: row.tagdescription,
        tagid: row.tagid,
      };
    },
    // 获取科室树
    getDeptTree() {
      // 科室列表
      deptTreeSelect().then((response) => {
        this.deptOptions = response.data;
        console.log( this.deptOptions,' this.deptOptions');
        this.flatArray = this.flattenArray(response.data);
        console.log(this.flatArray,'this.flatArray');
      });
    },
    flattenArray(multiArray) {
      let result = [];
      // 递归函数,用于将多级数组转换为一维数组,只包含最底层的元素
      function flatten(element) {
        // 如果当前元素有子元素,继续递归
        if (element.children && element.children.length > 0) {
          element.children.forEach((child) => flatten(child));
        } else {
          // 克隆元素以避免修改原始数据
          let item = JSON.parse(JSON.stringify(element));
          result.push(item); // 将最底层的元素添加到结果数组
        }
      }
      // 从顶层元素开始递归
      multiArray.forEach((element) => flatten(element));
      return result; // 返回只包含最底层元素的一维数组
    },
    addladeltag() {
      this.lstamendtagVisible = true;
@@ -607,6 +691,16 @@
        tagdescription: "",
        tagid: "",
      };
    },
    routerErr(row) {
      console.log(row,'跳转异常');
      this.$router.push({
        path: "/followvisit/discharge",
        query: {
          errtype: 1,
          leavehospitaldistrictcode: row.leavehospitaldistrictcode,
        },
      });
    },
    // 表单重置
@@ -646,14 +740,15 @@
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNum = 1;
      console.log();
      this.queryParams.startTime = this.parseTime(this.queryParams.dateRange[0]);
      this.queryParams.endTime = this.parseTime(this.queryParams.dateRange[1]);
      this.getList();
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.dateRange = [];
      this.resetForm("queryForm");
      this.queryParams.tagname = "";
      this.$refs.tree.setCurrentKey(null);
      this.queryParams.dateRange = [];
      this.queryParams.leavehospitaldistrictcodes=[];
      this.handleQuery();
    },
    // 多选框选中数据
@@ -689,7 +784,7 @@
      this.download(
        "base/tag/export",
        {
          ...this.topqueryParams,
          ...this.queryParams,
        },
        `user_${new Date().getTime()}.xlsx`
      );
@@ -699,9 +794,6 @@
</script>
<style lang="scss" scoped>
.Questionnairemanagement {
  display: flex;
}
.sidecolumn {
  width: 180px;
  min-height: 100vh;
@@ -781,9 +873,9 @@
.leftvlue {
  //   display: flex;
  //   flex: 1;
  width: 80%;
  margin-top: 20px;
  //   margin: 20px;
  // width: 80%;
  // margin-top: 20px;
  margin: 20px;
  padding: 30px;
  background: #ffff;
  border: 1px solid #dcdfe6;
vue.config.js
@@ -37,11 +37,11 @@
      [process.env.VUE_APP_BASE_API]: {
        // target: `http://192.168.168.60:8095`,
        // target: `http://10.202.20.185:8095`,
        // target: `http://192.168.2.10:8095`,
        target: `http://192.168.2.10:8095`,
        // target:`http://localhost:8095`,
        // target: `http://192.168.101.135:8095`,
        // target: `http://192.168.101.166:8093`,
        target: `http://192.168.191.181:8095`,
        // target: `http://192.168.191.181:8095`,
        changeOrigin: true,
        pathRewrite: {
          ['^' + process.env.VUE_APP_BASE_API]: ''