zhongshujie
2025-04-08 5f4c128cd325cfea43bd38de5cef2d9170be7472
src/views/directory/index.vue
@@ -3,56 +3,76 @@
    <div class="page-header">
      <p>王永炎院士学生目录</p>
    </div>
    <div class="page-main-title">
      <p @click="changeTab('chart')" :class="[activeTabs == 'chart' ? 'active-tab' : '']">
        <img :src="[activeTabs == 'chart' ? chartIcon : noChartIcon]" alt="">
        <span>图表显示</span>
      </p>
      <p @click="changeTab('list')" :class="[activeTabs == 'list' ? 'active-tab' : '']">
        <img :src="[activeTabs == 'list' ? listIcon : noListIcon]" alt="">
        <span>列表显示</span>
      </p>
    </div>
    <!-- 图表显示 -->
    <div class="charts-main" v-if="activeTabs == 'chart'">
      <div class="radial-tree-container">
        <div ref="chart" style="width: 100%; height: 600px"></div>
    <div class="page-main-father">
      <div class="page-main-title">
        <p
          @click="changeTab('chart')"
          :class="[activeTabs == 'chart' ? 'active-tab' : '']"
        >
          <img
            :src="[activeTabs == 'chart' ? chartIcon : noChartIcon]"
            alt=""
          />
          <span>图表显示</span>
        </p>
        <p
          @click="changeTab('list')"
          :class="[activeTabs == 'list' ? 'active-tab' : '']"
        >
          <img :src="[activeTabs == 'list' ? listIcon : noListIcon]" alt="" />
          <span>列表显示</span>
        </p>
      </div>
    </div>
    <!-- 列表显示 -->
    <div class="page-main" v-if="activeTabs == 'list'">
      <div v-for="(item, index) in universityList" :key="index">
        <div class="table-title" v-if="item.studentList && item.studentList.length > 0">
          <div class="table-title-left">
            <p class="table-title-name">{{ item.name }}</p>
            <p class="table-title-degree">{{ item.degree }}</p>
            <p class="table-title-number">{{ item.studentList.length }}人</p>
          </div>
          <div class="table-title-right" @click="item.isShow = !item.isShow"><img
              :src="[item.isShow ? topIcon : bottomIcon]" alt=""></div>
      <!-- 图表显示 -->
      <div class="charts-main" v-if="activeTabs == 'chart'">
        <div class="radial-tree-container">
          <div ref="chart" style="width: 100%; height: 600px"></div>
        </div>
        <table cellpadding="100" v-if="item.studentList && item.studentList.length > 0 && item.isShow">
          <tr class="table-heading">
            <th>姓名</th>
            <th>性别</th>
            <th>学习时间</th>
            <th>工作单位(到二级单位全称)</th>
            <th>职务</th>
            <th>职称</th>
          </tr>
          <tr v-for="(citem, cindex) in item.studentList" :key="cindex">
            <td>
              {{ citem.studentName }}
            </td>
            <td>
              {{ citem.gender }}
            </td>
            <td>{{ citem.studyTime }}</td>
            <td>{{ citem.workUnit }}</td>
            <td>{{ citem.position }}</td>
            <td>{{ citem.title }}</td>
          </tr>
        </table>
      </div>
      <!-- 列表显示 -->
      <div class="page-main" v-if="activeTabs == 'list'">
        <div v-for="(item, index) in universityList" :key="index">
          <div
            class="table-title"
            v-if="item.studentList && item.studentList.length > 0"
          >
            <div class="table-title-left">
              <p class="table-title-name">{{ item.name }}</p>
              <p class="table-title-degree">{{ item.degree }}</p>
              <p class="table-title-number">{{ item.studentList.length }}人</p>
            </div>
            <div class="table-title-right" @click="item.isShow = !item.isShow">
              <img :src="[item.isShow ? topIcon : bottomIcon]" alt="" />
            </div>
          </div>
          <table
            cellpadding="100"
            v-if="
              item.studentList && item.studentList.length > 0 && item.isShow
            "
          >
            <tr class="table-heading">
              <th>姓名</th>
              <th>性别</th>
              <th>学习时间</th>
              <th>工作单位(到二级单位全称)</th>
              <th>职务</th>
              <th>职称</th>
            </tr>
            <tr v-for="(citem, cindex) in item.studentList" :key="cindex">
              <td>
                {{ citem.studentName }}
              </td>
              <td>
                {{ citem.gender }}
              </td>
              <td>{{ citem.studyTime }}</td>
              <td>{{ citem.workUnit }}</td>
              <td>{{ citem.position }}</td>
              <td>{{ citem.title }}</td>
            </tr>
          </table>
        </div>
      </div>
    </div>
  </div>
@@ -245,7 +265,7 @@
        name: "Root",
        children: [
          {
            name: "Node 1",
            name: "王玉来",
            children: [
              { name: "Leaf 1-1" },
              { name: "Leaf 1-2" },
@@ -303,38 +323,26 @@
            return `
              <div style="
                padding: 10px;
                background: #fff;
                background: #FDF8F0;
                border-radius: 5px;
                box-shadow: 0 2px 10px rgba(0,0,0,0.1);
                max-width: 300px;
                width: 360px;
                text-align: center;
              ">
                <div style="
                  border-bottom: 1px solid #eee;
                  padding-bottom: 5px;
                  margin-bottom: 5px;
                ">
                  <span style="
                    font-size: 16px;
                    color: #333;
                    font-weight: bold;
                  ">${data.name}</span>
                  ${data.customInfo
                ? `<span style="
                    background: #ffeb3b;
                    padding: 2px 5px;
                    border-radius: 3px;
                    margin-left: 8px;
                    font-size: 12px;
                  ">${data.customInfo}</span>`
                : ""
              }
                </div>
                <div style="margin-top: 8px;">
                  <div>节点值: <span style="color: #4f8ff7;">${data.value || 0
              }</span></div>
                  <div>描述: ${data.description || "暂无描述"}</div>
                </div>
                <div style="width: 80px;height: 80px;position: relative; margin: 0 auto; margin-bottom: 10px;background: #D8D8D8;">
      <img class="autoImg"  src="${require("@/assets/images/directory/touxiang.png")}" alt="">
                  </div>
                <div style="font-size: 16px; font-weight: bold; margin-bottom: 5px;">${
                  data.name
                }</div>
                <div> <span> 男 </span> <span> 硕士 </span> <span> 北京中医药大学 </span></div>
                <div style="font-size: 16px; font-weight: bold; margin-bottom: 5px;text-align: left;margin-top: 10px;">
                  <p style="margin-bottom: 5px;">学习时间:1985.09 -1988.07</p>
                  <p style="margin-bottom: 5px;">现工作单位:北京中医药大学东方医院</p>
                  <p style="margin-bottom: 5px;">职务:原院长</p>
                  <p style="margin-bottom: 5px;">职称:主任医师、教授</p>
                  </div>
              </div>
            `;
          },
@@ -399,23 +407,31 @@
  height: 100%;
  box-sizing: border-box;
  background-color: #e9e1d4;
  overflow: auto;
  position: relative;
}
.page-header {
  height: 102px;
  height: 9.4%;
  width: 100%;
  text-align: left;
  margin-bottom: 8px;
  border-bottom: 2px solid #937950;
  background-color: #e9e1d4;
  position: sticky;
  top: 0;
  z-index: 100;
  p {
    padding: 35px 0 34px 0;
    padding: 2% 0 1.9% 0;
    font-family: Alimama DongFangDaKai;
    font-size: 30px;
    text-indent: 1em;
    border-bottom: 1px solid #937950;
  }
}
.page-main-father {
  height: calc(100% - 9.4%);
  width: 100%;
  overflow: auto;
}
.page-main-title {
@@ -425,6 +441,7 @@
  cursor: pointer;
  margin-bottom: 75px;
  color: #9e9e9e;
  margin-top: 1%;
  p {
    display: flex;
@@ -452,7 +469,7 @@
}
.page-main {
  width: 1313px;
  width: 77.3%;
  margin: 0 auto;
  overflow: hidden;
  margin-bottom: 100px;