39325ed5f9d5ebd80ad0c6bfe6689b014b72d0fb..19c62799136bb984e968fcb6b0a4d2371d018270
6 天以前 WXL (wul)
人员信息展示更新
19c627 对比 | 目录
6 天以前 WXL (wul)
关键字更新
25b6d3 对比 | 目录
6 天以前 WXL (wul)
测试完成
bb52c6 对比 | 目录
已添加1个文件
已修改10个文件
774 ■■■■■ 文件已修改
dist.zip 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/ruoyi.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/followvisit/discharge/index.vue 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/followvisit/satisfaction/particulars/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/followvisit/tasklist/FollowupDetails/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/followvisit/tasklist/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sfstatistics/percentage/index.vue 574 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sfstatistics/propaganda/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sfstatistics/statement/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/user/profile/index.vue 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dist.zip
Binary files differ
src/utils/ruoyi.js
@@ -189,7 +189,7 @@
    case "phone":
      return str.replace(/(\d{3})\d{4}(\d{4})/, "$1****$2");
    case "idCard":
      return str.replace(/(\d{6})\d{8}(\w{4})/, "$1********$2");
      return str.replace(/(\d{4})\d{10}(\w{4})/, "$1**********$2");
    default:
      return str;
  }
src/views/followvisit/discharge/index.vue
@@ -79,7 +79,7 @@
          ></el-input>
        </el-form-item>
        <el-form-item label="出院时间">
        <el-form-item label="课题时间">
          <el-date-picker
            v-model="dateRange"
            style="width: 240px"
@@ -408,7 +408,7 @@
          </template>
        </el-table-column>
        <el-table-column
          label="出院日期"
          label="课题日期"
          width="200"
          align="center"
          key="endtime"
@@ -451,7 +451,7 @@
          width="120"
        />
        <el-table-column
          label="出院天数"
          label="课题天数"
          width="120"
          align="center"
          key="endDay"
@@ -531,7 +531,7 @@
        </el-table-column>
        <el-table-column
          label="出院随访模板名称"
          label="课题随访模板名称"
          align="center"
          key="templatename"
          prop="templatename"
@@ -1016,7 +1016,7 @@
        <!-- <el-form-item label="即刻发送">
          <el-switch v-model="zcform.delivery"></el-switch>
        </el-form-item> -->
        <el-form-item label="出院时间">
        <el-form-item label="课题时间">
          <el-input
            style="width: 400px"
            disabled
@@ -1141,7 +1141,7 @@
      loading: false,
      cardlist: [
        {
          name: "出院服务总量",
          name: "课题服务总量",
          value: 0,
        },
        // {
@@ -1190,11 +1190,11 @@
      topicoptionssort: [
        {
          value: 0,
          label: "出院时间(正序)",
          label: "课题时间(正序)",
        },
        {
          value: 1,
          label: "出院时间(倒序)",
          label: "课题时间(倒序)",
        },
        {
          value: 2,
@@ -1210,7 +1210,7 @@
        pageNum: 1,
        pageSize: 10,
        sendstate: 2,
        sort: 2, //0 出院时间(正序)    1 出院时间(倒序)   2 发送时间(正序)    3 发送时间(倒序)
        sort: 2, //0 课题时间(正序)    1 课题时间(倒序)   2 发送时间(正序)    3 发送时间(倒序)
        serviceType: 16,
        searchscope: 3,
        visitCount: 1,
@@ -1583,7 +1583,7 @@
        pageNum: 1,
        pageSize: 10,
        sendstate: 2,
        sort: 2, //0 出院时间(正序)    1 出院时间(倒序)   2 发送时间(正序)    3 发送时间(倒序)
        sort: 2, //0 课题时间(正序)    1 课题时间(倒序)   2 发送时间(正序)    3 发送时间(倒序)
        serviceType: 16,
        searchscope: 3,
        visitCount: 1,
src/views/followvisit/satisfaction/particulars/index.vue
@@ -391,7 +391,7 @@
                </el-select>
              </el-form-item>
              <el-form-item label="出院病区" prop="status">
              <el-form-item label="病区" prop="status">
                <el-select
                  v-model="patientqueryParams.topic"
                  placeholder="请选择"
src/views/followvisit/tasklist/FollowupDetails/index.vue
@@ -874,7 +874,7 @@
                </el-select>
              </el-form-item>
              <el-form-item label="出院病区" prop="status">
              <el-form-item label="病区" prop="status">
                <el-select
                  v-model="patientqueryParams.topic"
                  placeholder="请选择"
src/views/followvisit/tasklist/index.vue
@@ -475,7 +475,7 @@
        },
      ],
      taskoptions: store.getters.tasktypes,
      tasktopic: 2, //新增类型
      tasktopic: 16, //新增类型
      activname: "",
      value: [],
      list: [],
src/views/login.vue
@@ -149,7 +149,7 @@
    },
  },
  created() {
    this.getorganization();
    // this.getorganization();
    this.getCode();
    this.getCookie();
    // if (localStorage.getItem('orgid')) {
src/views/sfstatistics/percentage/index.vue
@@ -185,7 +185,7 @@
                      prop="followUpNeeded"
                    >
                    </el-table-column>
                    <el-table-column align="center" label="首次出院随访">
                    <el-table-column align="center" label="首次课题随访">
                      <el-table-column
                        label="需随访"
                        align="center"
@@ -341,7 +341,7 @@
                </template>
              </el-table-column>
              <el-table-column
                label="出院病区"
                label="病区"
                align="center"
                sortable
                key="leavehospitaldistrictname"
@@ -1277,298 +1277,302 @@
    },
    // 初始化饼图
initPieChart() {
  const echarts = require("echarts");
  const pieDom = document.getElementById("pieChart");
  if (!pieDom) return;
    initPieChart() {
      const echarts = require("echarts");
      const pieDom = document.getElementById("pieChart");
      if (!pieDom) return;
  if (this.pieChart) {
    this.pieChart.dispose();
  }
  this.pieChart = echarts.init(pieDom);
  // 计算饼图数据
  const followUpData = {
    pending: 0,
    success: 0,
    fail: 0,
  };
  this.userList.forEach((item) => {
    followUpData.pending += item.pendingFollowUp || 0;
    followUpData.success += item.followUpSuccess || 0;
    followUpData.fail += item.followUpFail || 0;
  });
  // 使用更美观的颜色方案
  const pieOption = {
    title: {
      text: "随访状态分布",
      left: "center",
      textStyle: {
        color: '#333',
        fontSize: 16
      if (this.pieChart) {
        this.pieChart.dispose();
      }
    },
    tooltip: {
      trigger: "item",
      formatter: "{a} <br/>{b}: {c} ({d}%)",
    },
    legend: {
      orient: "vertical",
      left: "left",
      data: ["待随访", "随访成功", "随访失败"],
      textStyle: {
        color: '#666'
      }
    },
    color: ['#FF9D4D', '#36B37E', '#FF5C5C'], // 新的配色方案
    series: [
      {
        name: "随访状态",
        type: "pie",
        radius: ["40%", "70%"],
        avoidLabelOverlap: true,
        itemStyle: {
          borderRadius: 10,
          borderColor: "#fff",
          borderWidth: 2
        },
        label: {
          show: true,
          formatter: "{b}: {c} ({d}%)",
          color: '#333'
        },
        emphasis: {
          label: {
            show: true,
            fontSize: "18",
            fontWeight: "bold"
      this.pieChart = echarts.init(pieDom);
      // 计算饼图数据
      const followUpData = {
        pending: 0,
        success: 0,
        fail: 0,
      };
      this.userList.forEach((item) => {
        followUpData.pending += item.pendingFollowUp || 0;
        followUpData.success += item.followUpSuccess || 0;
        followUpData.fail += item.followUpFail || 0;
      });
      // 使用更美观的颜色方案
      const pieOption = {
        title: {
          text: "随访状态分布",
          left: "center",
          textStyle: {
            color: "#333",
            fontSize: 16,
          },
          itemStyle: {
            shadowBlur: 10,
            shadowOffsetX: 0,
            shadowColor: 'rgba(0, 0, 0, 0.5)'
          }
        },
        data: [
          {
            value: followUpData.pending,
            name: "待随访"
        tooltip: {
          trigger: "item",
          formatter: "{a} <br/>{b}: {c} ({d}%)",
        },
        legend: {
          orient: "vertical",
          left: "left",
          data: ["待随访", "随访成功", "随访失败"],
          textStyle: {
            color: "#666",
          },
        },
        color: ["#FF9D4D", "#36B37E", "#FF5C5C"], // 新的配色方案
        series: [
          {
            value: followUpData.success,
            name: "随访成功"
          },
          {
            value: followUpData.fail,
            name: "随访失败"
          }
        ]
      }
    ]
  };
  this.pieChart.setOption(pieOption);
  window.addEventListener("resize", this.resizePieChart);
},
// 初始化柱状折线图
initBarLineChart() {
  const echarts = require("echarts");
  const barDom = document.getElementById("barLineChart");
  if (!barDom) return;
  if (this.barLineChart) {
    this.barLineChart.dispose();
  }
  this.barLineChart = echarts.init(barDom);
  // 准备数据
  const categories = this.userList.map(
    (item) => item.leavehospitaldistrictname || item.deptname
  );
  const dischargeData = this.userList.map(
    (item) => item.dischargeCount || 0
  );
  const followUpData = this.userList.map(
    (item) => item.followUpNeeded || 0
  );
  // 新增两条折线数据
 const followUpRateData = this.userList.map(item => {
    if (!item.followUpRate) return 0;
    // 去掉百分号并转为数字
    const rateStr = String(item.followUpRate).replace('%', '');
    return parseFloat(rateStr) || 0;
  });
  const timelyRateData = this.userList.map(item =>
    item.rate ? (Number(item.rate) * 100).toFixed(2) : 0
  );
  const option = {
    title: {
      text: "课题组/病区随访趋势",
      left: "center",
      textStyle: {
        color: '#333',
        fontSize: 16
      }
    },
    tooltip: {
      trigger: "axis",
      axisPointer: {
        type: "cross",
        crossStyle: {
          color: "#999",
        },
      },
    },
    legend: {
      data: ["出院人次", "应随访人次", "随访率(%)", "及时率(%)"],
      top: "bottom",
      textStyle: {
        color: '#666'
      }
    },
    color: ['#5470C6', '#91CC75', '#EE6666', '#9A60B4'], // 新增紫色用于及时率
    xAxis: {
      type: "category",
      data: categories,
      axisLabel: {
        interval: 0,
        rotate: 30,
        color: '#666'
      },
      axisLine: {
        lineStyle: {
          color: '#ddd'
        }
      }
    },
    yAxis: [
      {
        type: "value",
        name: "人次",
        min: 0,
        axisLabel: {
          color: '#666'
        },
        axisLine: {
          lineStyle: {
            color: '#ddd'
          }
        },
        splitLine: {
          lineStyle: {
            color: '#f0f0f0'
          }
        }
      },
      {
        type: "value",
        name: "百分比(%)",
        min: 0,
        max: 100,
        axisLabel: {
          color: '#666',
          formatter: '{value}%'
        },
        axisLine: {
          lineStyle: {
            color: '#ddd'
          }
        },
        splitLine: {
          show: false
        }
      }
    ],
    series: [
      {
        name: "出院人次",
        type: "bar",
        barWidth: "25%",
        data: dischargeData,
        itemStyle: {
          borderRadius: [4, 4, 0, 0]
        }
      },
      {
        name: "应随访人次",
        type: "bar",
        barWidth: "25%",
        data: followUpData,
        itemStyle: {
          borderRadius: [4, 4, 0, 0]
        }
      },
      {
        name: "随访率(%)",
        type: "line",
        yAxisIndex: 1,
        data: followUpRateData,
        symbolSize: 8,
        lineStyle: {
          width: 3
        },
        markLine: {
          silent: true,
          data: [{
            yAxis: 80,
            lineStyle: {
              color: '#EE6666',
              type: 'dashed'
            name: "随访状态",
            type: "pie",
            radius: ["40%", "70%"],
            avoidLabelOverlap: true,
            itemStyle: {
              borderRadius: 10,
              borderColor: "#fff",
              borderWidth: 2,
            },
            // label: {
            //   position: 'end',
            //   formatter: '目标80%'
            // }
          }]
        }
      },
      {
        name: "及时率(%)",
        type: "line",
        yAxisIndex: 1,
        data: timelyRateData,
        symbolSize: 8,
        lineStyle: {
          width: 3,
          type: 'dotted' // 使用虚线区分
        },
        markLine: {
          silent: true,
          data: [{
            yAxis: 90,
            lineStyle: {
              color: '#9A60B4',
              type: 'dashed'
            label: {
              show: true,
              formatter: "{b}: {c} ({d}%)",
              color: "#333",
            },
            // label: {
            //   position: 'end',
            //   formatter: '目标90%'
            // }
          }]
        }
      }
    ],
    grid: {
      top: '15%',
      left: '3%',
      right: '4%',
      bottom: '15%',
      containLabel: true
    }
  };
            emphasis: {
              label: {
                show: true,
                fontSize: "18",
                fontWeight: "bold",
              },
              itemStyle: {
                shadowBlur: 10,
                shadowOffsetX: 0,
                shadowColor: "rgba(0, 0, 0, 0.5)",
              },
            },
            data: [
              {
                value: followUpData.pending,
                name: "待随访",
              },
              {
                value: followUpData.success,
                name: "随访成功",
              },
              {
                value: followUpData.fail,
                name: "随访失败",
              },
            ],
          },
        ],
      };
  this.barLineChart.setOption(option);
  window.addEventListener("resize", this.resizeBarLineChart);
},
      this.pieChart.setOption(pieOption);
      window.addEventListener("resize", this.resizePieChart);
    },
    // 初始化柱状折线图
    initBarLineChart() {
      const echarts = require("echarts");
      const barDom = document.getElementById("barLineChart");
      if (!barDom) return;
      if (this.barLineChart) {
        this.barLineChart.dispose();
      }
      this.barLineChart = echarts.init(barDom);
      // 准备数据
      const categories = this.userList.map(
        (item) => item.leavehospitaldistrictname || item.deptname
      );
      const dischargeData = this.userList.map(
        (item) => item.dischargeCount || 0
      );
      const followUpData = this.userList.map(
        (item) => item.followUpNeeded || 0
      );
      // 新增两条折线数据
      const followUpRateData = this.userList.map((item) => {
        if (!item.followUpRate) return 0;
        // 去掉百分号并转为数字
        const rateStr = String(item.followUpRate).replace("%", "");
        return parseFloat(rateStr) || 0;
      });
      const timelyRateData = this.userList.map((item) =>
        item.rate ? (Number(item.rate) * 100).toFixed(2) : 0
      );
      const option = {
        title: {
          text: "课题组/病区随访趋势",
          left: "center",
          textStyle: {
            color: "#333",
            fontSize: 16,
          },
        },
        tooltip: {
          trigger: "axis",
          axisPointer: {
            type: "cross",
            crossStyle: {
              color: "#999",
            },
          },
        },
        legend: {
          data: ["出院人次", "应随访人次", "随访率(%)", "及时率(%)"],
          top: "bottom",
          textStyle: {
            color: "#666",
          },
        },
        color: ["#5470C6", "#91CC75", "#EE6666", "#9A60B4"], // 新增紫色用于及时率
        xAxis: {
          type: "category",
          data: categories,
          axisLabel: {
            interval: 0,
            rotate: 30,
            color: "#666",
          },
          axisLine: {
            lineStyle: {
              color: "#ddd",
            },
          },
        },
        yAxis: [
          {
            type: "value",
            name: "人次",
            min: 0,
            axisLabel: {
              color: "#666",
            },
            axisLine: {
              lineStyle: {
                color: "#ddd",
              },
            },
            splitLine: {
              lineStyle: {
                color: "#f0f0f0",
              },
            },
          },
          {
            type: "value",
            name: "百分比(%)",
            min: 0,
            max: 100,
            axisLabel: {
              color: "#666",
              formatter: "{value}%",
            },
            axisLine: {
              lineStyle: {
                color: "#ddd",
              },
            },
            splitLine: {
              show: false,
            },
          },
        ],
        series: [
          {
            name: "出院人次",
            type: "bar",
            barWidth: "25%",
            data: dischargeData,
            itemStyle: {
              borderRadius: [4, 4, 0, 0],
            },
          },
          {
            name: "应随访人次",
            type: "bar",
            barWidth: "25%",
            data: followUpData,
            itemStyle: {
              borderRadius: [4, 4, 0, 0],
            },
          },
          {
            name: "随访率(%)",
            type: "line",
            yAxisIndex: 1,
            data: followUpRateData,
            symbolSize: 8,
            lineStyle: {
              width: 3,
            },
            markLine: {
              silent: true,
              data: [
                {
                  yAxis: 80,
                  lineStyle: {
                    color: "#EE6666",
                    type: "dashed",
                  },
                  // label: {
                  //   position: 'end',
                  //   formatter: '目标80%'
                  // }
                },
              ],
            },
          },
          {
            name: "及时率(%)",
            type: "line",
            yAxisIndex: 1,
            data: timelyRateData,
            symbolSize: 8,
            lineStyle: {
              width: 3,
              type: "dotted", // 使用虚线区分
            },
            markLine: {
              silent: true,
              data: [
                {
                  yAxis: 90,
                  lineStyle: {
                    color: "#9A60B4",
                    type: "dashed",
                  },
                  // label: {
                  //   position: 'end',
                  //   formatter: '目标90%'
                  // }
                },
              ],
            },
          },
        ],
        grid: {
          top: "15%",
          left: "3%",
          right: "4%",
          bottom: "15%",
          containLabel: true,
        },
      };
      this.barLineChart.setOption(option);
      window.addEventListener("resize", this.resizeBarLineChart);
    },
    // 图表响应式调整方法
    resizePieChart() {
src/views/sfstatistics/propaganda/index.vue
@@ -25,7 +25,7 @@
      <div class="leftvlue-top">
        <el-tabs v-model="topactiveName" @tab-click="tophandleClick">
          <el-tab-pane name="Local">
            <span class="mulsz" slot="label">按出院病区统计 </span>
            <span class="mulsz" slot="label">按病区统计 </span>
          </el-tab-pane>
          <el-tab-pane name="sharing">
            <span class="mulsz" slot="label">按出院课题组统计 </span>
@@ -58,7 +58,7 @@
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="出院病区" prop="userName">
              <el-form-item label="病区" prop="userName">
                <el-select v-model="queryParams.value2" placeholder="请选择">
                  <el-option
                    v-for="item in options"
@@ -193,7 +193,7 @@
              />
              <el-table-column
                fixed
                label="出院病区"
                label="病区"
                align="center"
                key="tagname"
                prop="tagname"
src/views/sfstatistics/statement/index.vue
@@ -25,7 +25,7 @@
      <div class="leftvlue-top">
        <el-tabs v-model="topactiveName" @tab-click="tophandleClick">
          <el-tab-pane name="Local">
            <span class="mulsz" slot="label">按出院病区统计 </span>
            <span class="mulsz" slot="label">按病区统计 </span>
          </el-tab-pane>
          <el-tab-pane name="sharing">
            <span class="mulsz" slot="label">按出院课题组统计 </span>
@@ -58,7 +58,7 @@
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item label="出院病区" prop="userName">
              <el-form-item label="病区" prop="userName">
                <el-select v-model="queryParams.value2" placeholder="请选择">
                  <el-option
                    v-for="item in options"
@@ -193,7 +193,7 @@
              />
              <el-table-column
                fixed
                label="出院病区"
                label="病区"
                align="center"
                key="tagname"
                prop="tagname"
src/views/system/user/profile/index.vue
@@ -24,20 +24,93 @@
                <div class="pull-right">{{ user.email }}</div>
              </li>
              <li class="list-group-item" v-if="user.belongWards[0]">
                <svg-icon icon-class="tree" />所属院区
                <div class="pull-right" >{{ user.belongWards[0].districtName }}</div>
                <svg-icon icon-class="tree" />所属病区
                <div class="pull-right">
                  <el-popover
                    v-model="showAllWardsPopover"
                    placement="right-start"
                    :width="300"
                    trigger="manual"
                    popper-class="ward-popover"
                  >
                    <div class="popover-content">
                      <p
                        v-for="ward in user.belongWards"
                        :key="ward.districtId"
                        class="popover-item"
                      >
                        {{ ward.districtName }}
                      </p>
                    </div>
                    <!-- 需要一个空元素作为触发器的引用 -->
                    <!-- <div style="display: none" slot="reference"></div> -->
                    <div slot="reference">
                      <el-tag
                        v-for="(ward, index) in displayWards"
                        :key="ward.districtId"
                        size="small"
                        class="ward-tag"
                        >{{ ward.districtName }}</el-tag
                      >
                      <!-- 显示隐藏数量的标签,点击触发Popover -->
                      <el-tag
                        v-if="user.belongWards.length > maxTagCount"
                        size="small"
                        class="more-tag"
                        @click="showAllWardsPopover = !showAllWardsPopover"
                        >+{{ user.belongWards.length - maxTagCount }}</el-tag
                      >
                    </div>
                  </el-popover>
                </div>
              </li>
              <li class="list-group-item" v-else>
                <svg-icon icon-class="tree" />所属院区
                <div class="pull-right" >未配置</div>
                <div class="pull-right">未配置</div>
              </li>
              <li class="list-group-item" v-if="user.belongDepts[0]">
                <svg-icon icon-class="tree" />所属课题组
                <div class="pull-right" >{{ user.belongDepts[0].deptName }}</div>
                <svg-icon icon-class="tree" />所属科室
                <div class="pull-right">
                  <el-popover
                    v-model="showAllDeptsPopover"
                    placement="right-start"
                    :width="300"
                    style="top: 130px; left: 0px"
                    trigger="manual"
                    popper-class="dept-popover"
                  >
                    <div class="popover-content">
                      <p
                        v-for="dept in user.belongDepts"
                        :key="dept.deptId"
                        class="popover-item"
                      >
                        {{ dept.deptName }}
                      </p>
                    </div>
                    <!-- <div style="display: none" slot="reference"></div> -->
                    <div slot="reference">
                      <el-tag
                        v-for="(dept, index) in displayDepts"
                        :key="dept.deptId"
                        size="small"
                        class="dept-tag"
                        >{{ dept.deptName }}</el-tag
                      >
                      <el-tag
                        v-if="user.belongDepts.length > maxTagCount"
                        size="small"
                        class="more-tag"
                        @click="showAllDeptsPopover = !showAllDeptsPopover"
                        >+{{ user.belongDepts.length - maxTagCount }}</el-tag
                      >
                    </div>
                  </el-popover>
                </div>
              </li>
              <li class="list-group-item" v-else>
                <svg-icon icon-class="tree" />所属课题组
                <div class="pull-right" >未配置</div>
                <svg-icon icon-class="tree" />所属科室
                <div class="pull-right">未配置</div>
              </li>
              <li class="list-group-item">
                <svg-icon icon-class="peoples" />所属角色
@@ -84,20 +157,83 @@
      user: {},
      roleGroup: {},
      postGroup: {},
      activeTab: "userinfo"
      activeTab: "userinfo",
      maxTagCount: 3, // 控制默认显示的标签数量
      showAllWardsPopover: false, // 控制病区Popover的显示
      showAllDeptsPopover: false, // 控制科室Popover的显示
    };
  },
  computed: {
    // 计算要显示的病区标签(前maxTagCount个)
    displayWards() {
      if (!this.user.belongWards) return [];
      return this.user.belongWards.slice(0, this.maxTagCount);
    },
    // 计算要显示的科室标签(前maxTagCount个)
    displayDepts() {
      if (!this.user.belongDepts) return [];
      return this.user.belongDepts.slice(0, this.maxTagCount);
    },
  },
  created() {
    this.getUser();
  },
  methods: {
    getUser() {
      getUserProfile().then(response => {
      getUserProfile().then((response) => {
        this.user = response.data;
        this.roleGroup = response.roleGroup;
        this.postGroup = response.postGroup;
      });
    }
  }
    },
  },
};
</script>
<style scoped>
/* 为标签添加一些右边距,使其不紧贴在一起 */
.ward-tag,
.dept-tag,
.more-tag {
  margin-right: 6px;
  margin-bottom: 4px;
}
/* 设置"更多"标签的样式,使其看起来可点击 */
.more-tag {
  cursor: pointer;
  background-color: #f0f0f0;
  border-color: #ddd;
  color: #999;
}
.list-group-item {
  display: flex;
  align-items: center;
}
.pull-right {
  flex: 1;
  text-align: right;
}
</style>
<style>
/* Popover内容区域样式 */
.popover-content {
  max-height: 200px;
  overflow-y: auto;
  padding: 10px;
}
.popover-item {
  margin: 8px 0;
  line-height: 1.4;
}
/* 病区Popover样式 */
.ward-popover.el-popover,
.dept-popover.el-popover {
  max-width: 300px;
}
/* 调整Popover箭头位置 */
.ward-popover[x-placement^="right"],
.dept-popover[x-placement^="right"] {
  margin-left: 10px;
}
</style>