YM
2024-05-27 0edf94722a0dcc338567fec7df76b2e0acd39b92
调整
34个文件已修改
1个文件已添加
2982 ■■■■ 已修改文件
public/index.html 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/logo.ico 补丁 | 查看 | 原始文档 | blame | 历史
src/api/index.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/advancedSearch/advancedSearch.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/footer/footer.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/form/form.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/headNav/headNav.vue 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/loginAndRegister/loginAndRegister.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages.json 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/Login/Login.vue 1113 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/Register/Register.vue 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/TcmSystem/TcmSystem.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/academicGenres/chart.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/academicGenres/detail.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/academicGenres/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/changePassword/changePassword.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/character/detail.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/character/index.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/characterMap/characterMap.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/fileDetail/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/forgetPass/forgetPass.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/index/index.vue 1219 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/inherit/index.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/inherit/list.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/knowledgeBase/knowledgeBase.vue 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/repository/repository.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/territory/territory.vue 119 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/zhongyi/zhongyi.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/index.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/module/user.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/uni_modules/jc-form/components/jc-form/jc-form.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/uni_modules/next-search-more/components/next-search-more/next-search-more.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/uni_modules/uni-easyinput/components/uni-easyinput/common.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/request/req1.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/index.html
@@ -1,25 +1,32 @@
<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <link rel="icon" href="./logo.ico">
    <title>中国医学人物知识库</title>
    <script>
      var coverSupport =
        "CSS" in window &&
        typeof CSS.supports === "function" &&
        (CSS.supports("top: env(a)") || CSS.supports("top: constant(a)"));
      document.write(
        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
          (coverSupport ? ", viewport-fit=cover" : "") +
          '" />'
      );
    </script>
    <link
      rel="stylesheet"
      href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css"
    />
  </head>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>
            <%= htmlWebpackPlugin.options.title %>
        </title>
        <script>
            var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
            document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')
        </script>
        <link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" />
    </head>
    <body>
        <noscript>
            <strong>Please enable JavaScript to continue.</strong>
        </noscript>
        <div id="app"></div>
        <!-- built files will be auto injected -->
    </body>
</html>
  <body>
    <noscript>
      <strong>Please enable JavaScript to continue.</strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>
public/logo.ico
src/api/index.js
@@ -12,7 +12,6 @@
// 验证码   /account/verifyCode
export const getverifyCode = (req) => {
  console.log(req, qs.encode(req), "rrr");
  return req1({
    url: "/account/verifyCode",
    method: "post",
@@ -25,7 +24,6 @@
// login 登录
export const getLogin = (req) => {
  console.log(req, qs.encode(req), "rrr");
  return req1({
    url: "/account/verification",
    method: "post",
src/components/advancedSearch/advancedSearch.vue
@@ -28,7 +28,7 @@
      v-if="isAdvancedSearch"
      style="padding: 0 1.24rem; margin-bottom: 0.18rem"
    >
      <view style="background-color: #fff; padding: 0.29rem" class="">
      <view style="background-color: #fff; padding: 0.29rem" >
        <h3>高级搜索</h3>
        <MyForm @submit="onSubmit" :from="from" />
      </view>
@@ -154,7 +154,6 @@
      //         var box1Height = document.querySelector('.fbox').offsetHeight;
      //         // let box2Height= document.querySelector('.fbox1').style.height = box1Height + 'px';
      //         let box2Height = document.querySelector('.fbox1').offsetHeight
      //         console.log(box1Height, box2Height);
      //         if (box1Height <= box2Height) {
      //             document.querySelector('.fbox1').style.height = box1Height + 'px';
      //         }
@@ -165,7 +164,6 @@
    },
    onSubmit(val) {
      this.$emit("onSubmit", val);
      // console.log(val);
    }
  }
};
src/components/footer/footer.vue
@@ -22,10 +22,10 @@
        class="font-family"
        style="color: #2c2c2c; font-size: 0.12rem; line-height: 1.5"
      >
        <view class="">
        <view >
          ©2017 中国中医科学院中医药信息研究所版权所有 京ICP备********号
        </view>
        <view class=""
        <view
          >地址:北京市东城区东直门内南小街16号 邮编:100700 电话:8610-64089611
          Email: tcmtczy@mail.cintcm.ac.cn</view
        >
src/components/form/form.vue
@@ -1,4 +1,4 @@
<template class="">
<template >
  <div>
    <el-form
      size="mini"
@@ -46,7 +46,7 @@
            style="background-color: #244a7b; color: #fff"
            size="mini"
            @click="handleSubmit"
            >提交</el-button
            >检索</el-button
          >
          <el-button type="info" plain size="mini" @click="handleReset"
            >重置</el-button
@@ -61,7 +61,6 @@
export default {
  props: ["from"],
  mounted(){
    console.log(this.from,"from");
  },
  methods: {
    handleSubmit() {
src/components/headNav/headNav.vue
@@ -19,12 +19,7 @@
      <view class="flex" style="letter-spacing: 5rpx">
        <view class="logo"></view>
        <view
          class=""
          style="
            margin-left: 0.19rem;
            font-size: 0.24rem;
            font-weight: 900;
          "
          style="margin-left: 0.19rem; font-size: 0.24rem; font-weight: 900"
        >
          {{ text }}
        </view>
@@ -40,7 +35,6 @@
            justify-content: flex-end;
          "
        >
          <!-- overflow: hidden;  -->
          <input
            :style="{ display: isExpanded == true ? 'block' : 'none' }"
            type="text"
@@ -51,6 +45,7 @@
              font-size: 0.13rem;
            "
            @blur="InputBlur"
            @confirm="toggleSearch"
            class="search-input"
            v-model="searchInput"
            placeholder="请输入搜索内容"
@@ -102,7 +97,7 @@
    >
      <!-- 背景 -->
      <img class="leftListBgImage" src="@/static/image/leftListBg.png" alt="" />
      <view class="" style="position: relative; z-index: 999">
      <view  style="position: relative; z-index: 999">
        <view class="flex flex-center LeftLogo">
          <!-- <img src="@/static/image/logo.png" ></img> -->
          <view class="img"></view>
@@ -123,7 +118,7 @@
            <span slot="title">世医医家数据库</span>
          </el-menu-item>
          <el-menu-item index="3">
            <span slot="title">中医医学流派</span>
            <span slot="title">中医学术流派</span>
          </el-menu-item>
          <el-menu-item index="4">
            <span slot="title">中医地域图谱</span>
@@ -134,7 +129,7 @@
        </el-menu>
      </view>
    </el-dialog>
    <!-- <view class="" style="position: fixed;right: 0;top: 0;" @click="dialogVisible = !dialogVisible">水水水水</view> -->
    <!-- <view  style="position: fixed;right: 0;top: 0;" @click="dialogVisible = !dialogVisible">水水水水</view> -->
    <!-- <el-card v-if="menuNav"
            style="position: fixed;left: 0;top: 0; z-index: 999999999; width: 240px;height: 100vh;">
            
@@ -191,26 +186,21 @@
    // 修改密码
    changePassword(index) {
      if (index == 1) {
        // console.log('sdfdsf');
        // 检查 localStorage 中是否存在 token
        if (localStorage.getItem("access_token")) {
          // token 存在
          console.log("access_token");
          this.isCommand = true;
        } else {
          // token 不存在
          // console.log('Token does not exist.');
          this.isCommand = false;
          // uni.navigateTo({
          //     url: '/pages/Login/Login'
          // })
          console.log("不存在");
          uni.showModal({
            // 询问用户是否退出登录
            title: "请重新登录",
            content: "您确定要重新登录吗?",
            success: async (res) => {
              console.log(res, "reresresrer");
              if (res.confirm) {
                setTimeout(() => {
                  uni.reLaunch({
@@ -219,10 +209,6 @@
                }, 1500);
              } else if (res.cancel) {
                // console.log('用户点击取消');
                uni.showToast({
                  title: "用户点击取消",
                  icon: "none"
                });
              }
            }
          });
@@ -237,52 +223,35 @@
    // 修改获取退出按钮
    handleCommand(int) {
      if (int == 1) {
        console.log("修改密码");
        uni.navigateTo({
          url: "/pages/changePassword/changePassword"
        });
      } else if (int == 2) {
        // console.log('退出登录');
        uni.showModal({
          // 询问用户是否退出登录
          title: "退出登录",
          content: "您确定要退出登录吗?",
          success: async (res) => {
            console.log(res, "reresresrer");
          success: (res) => {
            if (res.confirm) {
              // 退出接口
              await getlogout().then((res) => {
              getlogout().then((res) => {
                //确定退出拿到token并清除token
                let TOKEN = uni.getStorageSync("access_token");
                uni.clearStorageSync();
                //退出成功!并跳转到其他页面
                uni.showToast({
                  title: "退出成功",
                  icon: "none"
                });
              });
              setTimeout(() => {
                this.$message.success("退出成功");
                uni.reLaunch({
                  url: "/pages/Login/Login"
                });
              }, 1500);
              });
            } else if (res.cancel) {
              // console.log('用户点击取消');
              uni.showToast({
                title: "用户点击取消",
                icon: "none"
              });
            }
          }
        });
      }
    },
    aaa() {
      console.log("ss");
    },
    handleSelect(index) {
      console.log(index);
      if (index === "0") {
        uni.navigateTo({
          url: "/pages/index/index?id=" + 0
@@ -323,10 +292,7 @@
            url:
              "/pages/knowledgeBase/knowledgeBase?keyword=" + this.searchInput
          });
        } else {
          console.log("不搜索");
        }
        this.searchInput = "";
      });
    }
src/components/loginAndRegister/loginAndRegister.vue
@@ -1,9 +1,9 @@
<template>
    <view>
        <el-card :style="{width: width + 'px'}">
            <view class="" style="display: flex; justify-content: space-between;">
            <view  style="display: flex; justify-content: space-between;">
                <h2 style="color: #244a7b;padding-bottom: 20rpx;">{{title}}</h2>
                <view class="" v-if="BackLoginTrue" style="cursor: pointer;font-size: 20rpx;color: #244a7b;">
                <view  v-if="BackLoginTrue" style="cursor: pointer;font-size: 20rpx;color: #244a7b;">
                    {{BackLogin}}
                </view>
            </view>
@@ -20,14 +20,14 @@
                        style="margin-top: 30rpx; font-weight:900;font-size: 30rpx; width: 100%;background-color: #244a7b;color: #fff;padding: 30rpx;"
                        size="medium" @click="Login">登录</el-button>
                </el-form-item>
                <view class=""
                <view
                    style="font-size: 18rpx;color: #9E9E9E;text-align: center;line-height: 1;margin-bottom: 20rpx;">
                    用户注册即代表同意《服务条款》和《用户隐私保护和个人信息条款》</view>
                <!-- 登录时 忘记密码/快速注册   -->
                <view class="" v-if="loginTrue" style="display: flex;font-size: 20rpx;" :style="{color:color}">
                    <view class="" style="display: inline-block;cursor: pointer;" @click="forgetPass">忘记密码</view>
                    <view class="" style="display: inline-block;margin: 0 20rpx;"> | </view>
                    <view class="" style="display: inline-block;cursor: pointer;" @click="quickRegister">快速注册</view>
                <view  v-if="loginTrue" style="display: flex;font-size: 20rpx;" :style="{color:color}">
                    <view  style="display: inline-block;cursor: pointer;" @click="forgetPass">忘记密码</view>
                    <view  style="display: inline-block;margin: 0 20rpx;"> | </view>
                    <view  style="display: inline-block;cursor: pointer;" @click="quickRegister">快速注册</view>
                </view>
            </el-form>
        </el-card>
@@ -140,7 +140,6 @@
                            message: '请输入' + item.lable,
                            trigger: ['blur', 'change']
                        }, )
                        console.log(dynamicRules[item.id]);
                        // 所有不是的走
                    } else {
                        dynamicRules[item.id].push({
@@ -150,7 +149,6 @@
                        });
                    }
                });
                console.log(dynamicRules);
                return dynamicRules;
            },
        },
@@ -162,7 +160,6 @@
                    obj[item.name] = item.val
                    return obj
                }, {})
                console.log(result);
                this.$emit('Login', result)
            },
            // 忘记密码
src/pages.json
@@ -2,13 +2,11 @@
    "pages": [{
            "path": "pages/index/index",
            "style": {
                // "navigationBarTitleText": "中国医学人物数据库",
                "navigationStyle": "custom"
            }
        }, {
            "path": "pages/Login/Login",
            "style": {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
@@ -17,7 +15,6 @@
        {
            "path": "pages/character/index",
            "style": {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
@@ -25,7 +22,6 @@
        {
            "path": "pages/character/detail",
            "style": {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
@@ -34,7 +30,6 @@
        {
            "path": "pages/academicGenres/index",
            "style": {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
@@ -42,7 +37,6 @@
        {
            "path": "pages/academicGenres/detail",
            "style": {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
@@ -50,7 +44,6 @@
        {
            "path": "pages/academicGenres/chart",
            "style": {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
@@ -58,7 +51,6 @@
        {
            "path": "pages/TcmSystem/TcmSystem",
            "style": {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
@@ -66,7 +58,6 @@
        {
            "path": "pages/territory/territory",
            "style": {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
@@ -75,7 +66,6 @@
        {
            "path": "pages/inherit/index",
            "style": {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
@@ -83,7 +73,6 @@
        {
            "path": "pages/inherit/list",
            "style": {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
@@ -91,7 +80,6 @@
        {
            "path": "pages/knowledgeBase/knowledgeBase",
            "style": {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
@@ -100,7 +88,6 @@
        {
            "path": "pages/characterMap/characterMap",
            "style": {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
@@ -109,7 +96,6 @@
        {
            "path": "pages/Register/Register",
            "style": {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
@@ -117,7 +103,6 @@
        {
            "path": "pages/forgetPass/forgetPass",
            "style": {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
@@ -125,7 +110,6 @@
        {
            "path": "pages/changePassword/changePassword",
            "style": {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
@@ -134,7 +118,6 @@
            "path" : "pages/userAgreement/userAgreement",
            "style" : 
            {
                "navigationBarTitleText" : "",
                "enablePullDownRefresh" : false,
                "navigationStyle": "custom"
            }
@@ -143,7 +126,6 @@
            "path" : "pages/fileDetail/index",
            "style" : 
            {
                "navigationBarTitleText" : "",
                "enablePullDownRefresh" : false,
                "navigationStyle": "custom"
            }
@@ -152,7 +134,6 @@
            "path" : "pages/shiyiHome/shiyiHome",
            "style" : 
            {
                "navigationBarTitleText" : "",
                "enablePullDownRefresh" : false,
                "navigationStyle": "custom"
            }
@@ -160,7 +141,7 @@
    ],
    "globalStyle": {
        "navigationBarTextStyle": "black",
        "navigationBarTitleText": "中国医学人物数据库",
        "navigationBarTitleText": "中国医学人物知识库",
        "navigationBarBackgroundColor": "#F8F8F8",
        "backgroundColor": "#F8F8F8"
    }
src/pages/Login/Login.vue
@@ -1,331 +1,367 @@
<template>
    <view class="container flex flex-center" style="align-items: flex-start;">
        <view class="repository relative">
            <view class="Ttop flex flex-center flex-wrap" style="flex-direction: column;">
                <view class=""></view>
                <view class="" ref="Rtop">
                    <text class="login"></text>
                    <text
                        style="font-size: .36rem;letter-spacing: 4rpx;vertical-align: middle;font-family: cursive;font-weight: bold;">中国医学人物知识库</text>
                </view>
                <view></view>
            </view>
            <el-card>
                <!-- 用户登录   v-if="isLogin"-->
                <view class="LoginTop"
                    style="display: flex; justify-content: space-between;margin-bottom: .47rem;align-items: center;">
                    <!-- <view style="color: #244A7B;padding-bottom: .47rem;font-size: .3rem;font-weight: bold;">用户登录</view> -->
                    <view class="LoginBg"></view>
                    <view class=""> </view>
                </view>
                <el-form :hide-required-asterisk="true" ref="formLogin1" label-position="top" :rules="rules1"
                    :model="loginData">
                    <el-form-item label="登录账号" prop="loginID">
                        <el-input v-model="loginData.loginID"></el-input>
                    </el-form-item>
                    <el-form-item label="登录密码" prop="pass">
                        <el-input type="password" v-model="loginData.pass"></el-input>
                    </el-form-item>
                    <el-form-item class="btn">
                        <el-button class="font-family"
                            style="margin-top: .47rem; font-weight:900;font-size: .3rem; width: 100%;background-color:#244A7B;color: #fff;padding: .16rem;"
                            size="medium" @click="Login('formLogin1')">登录</el-button>
                    </el-form-item>
                    <view class="" style="display: flex;font-size: .14rem;color: #244A7B;">
                        <view class="" style="display: inline-block;cursor: pointer;" @click="forgetPass">忘记密码
                        </view>
                        <view class="" style="display: inline-block;margin: 0 20rpx;"> | </view>
                        <view class="" style="display: inline-block;cursor: pointer;" @click="quickRegister">快速注册
                        </view>
                    </view>
                </el-form>
            </el-card>
        </view>
        <view class="hua"></view>
        <!-- 底部人物背景图左侧 -->
        <view class="fff"></view>
        <!-- 底部花的背景图右侧 -->
        <view class="rrr"></view>
  <view class="container flex flex-center" style="align-items: flex-start">
    <view class="repository relative">
      <view
        class="Ttop flex flex-center flex-wrap"
        style="flex-direction: column"
      >
        <view ></view>
        <view  ref="Rtop">
          <text class="login"></text>
          <text
            style="
              font-size: 0.36rem;
              letter-spacing: 4rpx;
              vertical-align: middle;
              font-family: cursive;
              font-weight: bold;
            "
            >中国医学人物知识库</text
          >
        </view>
        <view></view>
      </view>
      <el-card>
        <!-- 用户登录   v-if="isLogin"-->
        <view
          class="LoginTop"
          style="
            display: flex;
            justify-content: space-between;
            margin-bottom: 0.47rem;
            align-items: center;
          "
        >
          <!-- <view style="color: #244A7B;padding-bottom: .47rem;font-size: .3rem;font-weight: bold;">用户登录</view> -->
          <view class="LoginBg"></view>
          <view > </view>
        </view>
        <Footer1 />
    </view>
        <el-form
          :hide-required-asterisk="true"
          ref="formLogin1"
          label-position="top"
          :rules="rules1"
          :model="loginData"
        >
          <el-form-item label="登录账号" prop="loginID">
            <el-input v-model="loginData.loginID"></el-input>
          </el-form-item>
          <el-form-item label="登录密码" prop="pass">
            <el-input type="password" v-model="loginData.pass"></el-input>
          </el-form-item>
          <el-form-item class="btn">
            <el-button
              class="font-family"
              style="
                margin-top: 0.47rem;
                font-weight: 900;
                font-size: 0.3rem;
                width: 100%;
                background-color: #244a7b;
                color: #fff;
                padding: 0.16rem;
              "
              size="medium"
              @click="Login('formLogin1')"
              >登录</el-button
            >
          </el-form-item>
          <view
            style="display: flex; font-size: 0.14rem; color: #244a7b"
          >
            <view
              style="display: inline-block; cursor: pointer"
              @click="forgetPass"
              >忘记密码
            </view>
            <view  style="display: inline-block; margin: 0 20rpx">
              |
            </view>
            <view
              style="display: inline-block; cursor: pointer"
              @click="quickRegister"
              >快速注册
            </view>
          </view>
        </el-form>
      </el-card>
    </view>
    <view class="hua"></view>
    <!-- 底部人物背景图左侧 -->
    <view class="fff"></view>
    <!-- 底部花的背景图右侧 -->
    <view class="rrr"></view>
    <Footer1 />
  </view>
</template>
<script>
    import {
        encryptAES,decryptAES
    } from '@/utils/Crypto.js'
    import {
        nextTick
    } from "vue";
    import {
        getLogin,
        getUserInfo
    } from '@/api/index.js'
    import Footer1 from '@/components/footer/footer.vue'
    export default {
        components: {
            Footer1
        },
        data() {
            // 密码
            var validatePass = (rule, value, callback) => {
                if (value === '') {
                    callback(new Error('请输入密码'));
                } else {
                    if (this.registerData.checkPass !== '') {
                        this.$nextTick(() => {
                            this.$refs.formLogin.validateField('checkPass');
                        });
                    }
                    callback();
                }
            };
            // 确认密码
            var validatePass2 = (rule, value, callback) => {
                if (value === '') {
                    callback(new Error('请再次输入密码'));
                } else if (value !== this.registerData.pass) {
                    callback(new Error('两次输入密码不一致!'));
                } else {
                    callback();
                }
            };
            return {
                // 用户注册
                isRegister: false,
                // 用户登录
                isLogin: true,
                // 修改密码
                isAmendPass: false,
                // 重置密码
                isResetPass: false,
                // 注册用户账号的校验
                rules: {
                    loginID: [{
                        required: true,
                        message: '请输入登录账号',
                        trigger: 'blur'
                    },
                    ],
                    pass: [{
                            required: true,
                            message: '请输入密码',
                            trigger: 'blur'
                        },
                        {
                            min: 6,
                            max: 12,
                            message: '密码长度在 6 到 12 个字符',
                            trigger: 'blur'
                        },
                        {
                            validator: validatePass,
                            trigger: 'blur'
                        }
                    ],
                    checkPass: [{
                        validator: validatePass2,
                        trigger: 'blur'
                    }],
                    cellphoneORmailbox: [{
                            required: true,
                            message: '请输入邮箱地址',
                            trigger: 'blur'
                        },
                        {
                            type: 'email',
                            message: '请输入正确的邮箱地址',
                            trigger: ['blur', 'change']
                        }
                    ],
                    verifyCode: [{
                            required: true,
                            message: '请输入验证码',
                            trigger: 'blur'
                        },
                        {
                            validator: (rule, value, callback) => this.validateVerificationCode(rule, value, callback),
                            trigger: 'blur'
                        }
                    ]
                },
                rules1: {
                    loginID: [{
                        required: true,
                        message: '请输入登录账号',
                        trigger: 'blur'
                    }],
                    pass: [{
                            required: true,
                            message: '请输入密码',
                            trigger: 'blur'
                        },
                        {
                            min: 6,
                            max: 12,
                            message: '密码长度在 6 到 12 个字符',
                            trigger: 'blur'
                        }
                    ],
                },
import { encryptAES, decryptAES } from "@/utils/Crypto.js";
import { nextTick } from "vue";
import { getLogin, getUserInfo } from "@/api/index.js";
import Footer1 from "@/components/footer/footer.vue";
export default {
  components: {
    Footer1
  },
  data() {
    // 密码
    var validatePass = (rule, value, callback) => {
      if (value === "") {
        callback(new Error("请输入密码"));
      } else {
        if (this.registerData.checkPass !== "") {
          this.$nextTick(() => {
            this.$refs.formLogin.validateField("checkPass");
          });
        }
        callback();
      }
    };
    // 确认密码
    var validatePass2 = (rule, value, callback) => {
      if (value === "") {
        callback(new Error("请再次输入密码"));
      } else if (value !== this.registerData.pass) {
        callback(new Error("两次输入密码不一致!"));
      } else {
        callback();
      }
    };
    return {
      // 用户注册
      isRegister: false,
      // 用户登录
      isLogin: true,
      // 修改密码
      isAmendPass: false,
      // 重置密码
      isResetPass: false,
      // 注册用户账号的校验
      rules: {
        loginID: [
          {
            required: true,
            message: "请输入登录账号",
            trigger: "blur"
          }
        ],
        pass: [
          {
            required: true,
            message: "请输入密码",
            trigger: "blur"
          },
          {
            min: 6,
            max: 12,
            message: "密码长度在 6 到 12 个字符",
            trigger: "blur"
          },
          {
            validator: validatePass,
            trigger: "blur"
          }
        ],
        checkPass: [
          {
            validator: validatePass2,
            trigger: "blur"
          }
        ],
        cellphoneORmailbox: [
          {
            required: true,
            message: "请输入邮箱地址",
            trigger: "blur"
          },
          {
            type: "email",
            message: "请输入正确的邮箱地址",
            trigger: ["blur", "change"]
          }
        ],
        verifyCode: [
          {
            required: true,
            message: "请输入验证码",
            trigger: "blur"
          },
          {
            validator: (rule, value, callback) =>
              this.validateVerificationCode(rule, value, callback),
            trigger: "blur"
          }
        ]
      },
      rules1: {
        loginID: [
          {
            required: true,
            message: "请输入登录账号",
            trigger: "blur"
          }
        ],
        pass: [
          {
            required: true,
            message: "请输入密码",
            trigger: "blur"
          },
          {
            min: 6,
            max: 12,
            message: "密码长度在 6 到 12 个字符",
            trigger: "blur"
          }
        ]
      },
                // 登录注册框
                loginTrue: true,
                Rtop1: 0,
                value: 'sdfdsf',
                // 登录用户账号
                loginData: {
                    // 账号
                    loginID: '',
                    pass: ''
                },
                // 书籍数据
                listData: [{
                        name: '中医人物数据库',
                        id: 1,
                    }, {
                        name: '世医医家数据库',
                        id: 2,
                    }, {
                        name: '中医学术流派',
                        id: 3,
                    }, {
                        name: '中医地域医谱',
                        id: 4,
                    }, {
                        name: '中医医事制度',
                        id: 5,
                    },
                ]
            }
        },
        onLoad() {
            uni.getSystemInfo({
                success: function(info) {
                    // console.log('屏幕的宽度:' + info.windowWidth);
                    // console.log('屏幕的高度:' + info.windowHeight);
                }
            });
        },
        mounted() {
            this.getElementWidth();
        },
        methods: {
            // 列表项跳转
            listDataClick(item) {
                console.log(item);
                // 在当前页面设置全局变量
                // uni.setStorageSync('globalData', { id: 123, name: 'example' });
                if (item.id == 1) {
                    uni.navigateTo({
                        url: '/pages/character/detail?id=' + item.id
                    })
                } else if (item.id == 2) {
                    console.log(item.name);
                    // uni.navigateTo({
                    //     url:'/pages/character/detail?id='+item.id
                    // })
                } else if (item.id == 3) {
                    uni.navigateTo({
                        url: '/pages/academicGenres/index?id=' + item.id
                    })
                } else if (item.id == 4) {
                    uni.navigateTo({
                        url: '/pages/territory/territory?id=' + item.id
                    })
                } else if (item.id == 5) {
                    uni.navigateTo({
                        url: '/pages/TcmSystem/TcmSystem?id=' + item.id
                    })
                }
            },
            // 忘记密码
            forgetPass() {
                uni.redirectTo({
                    url: '/pages/forgetPass/forgetPass'
                })
            },
            // 快速注册
            quickRegister() {
                uni.redirectTo({
                    url: '/pages/Register/Register'
                })
            },
            // 验证码校验
            validateVerificationCode(rule, value, callback) {
                if (value !== '123456') {
                    callback(new Error('验证码错误'));
                } else {
                    callback();
                }
            },
            getElementWidth() {
                this.$nextTick(() => {
                    var width = this.$refs.Rtop.$el.clientWidth;
                    this.Rtop1 = width + 50;
                    console.log('Element width:', width);
                })
            },
            // 用户登录
            async Login(formName) {
                console.log(decryptAES(this.loginData.pass),'this.loginData.pass');
                let Obj = {
                    username: this.loginData.loginID,
                    // encryptAES(this.loginData.pass) | this.loginData.pass
                    password: encryptAES(this.loginData.pass),
                }
                console.log(Obj, 'Obj');
                let res = await getLogin(Obj)
                console.log(res, 'sfdsf');
                if (res.success) {
                    uni.showToast({
                        title: '登录成功',
                    })
                    // 将token存储再本地中
                    window.localStorage.setItem("access_token", res.results.token)
                    await getUserInfo().then(res => {
                        console.log(res, 'rrrrrrrrrrsd');
                    })
                    // 将账号存入到vuex中
                    this.$store.dispatch('setUserName',res.object.username)
                    uni.redirectTo({
                        url: '/pages/index/index'
                    })
                } else {
                    console.log('sdfdsfsdf');
                    uni.showToast({
                        title: res.errorText,
                        icon: 'error'
                    })
                    // alert("sdfdsf")
                    this.loginData.pass = ''
                }
                this.$refs[formName].validate(async (valid) => {
                    if (valid) {
                        // alert('submit!成功');
                        // uni.redirectTo({
                        //     url: '/pages/index/index'
                        // })
                    } else {
                        console.log('error submit!!失败');
                        return false;
                    }
                });
            }
        }
    }
      // 登录注册框
      loginTrue: true,
      Rtop1: 0,
      value: "sdfdsf",
      // 登录用户账号
      loginData: {
        // 账号
        loginID: "",
        pass: ""
      },
      // 书籍数据
      listData: [
        {
          name: "中医人物数据库",
          id: 1
        },
        {
          name: "世医医家数据库",
          id: 2
        },
        {
          name: "中医学术流派",
          id: 3
        },
        {
          name: "中医地域医谱",
          id: 4
        },
        {
          name: "中医医事制度",
          id: 5
        }
      ]
    };
  },
  onLoad() {
    uni.getSystemInfo({
      success: function (info) {
        // console.log('屏幕的宽度:' + info.windowWidth);
        // console.log('屏幕的高度:' + info.windowHeight);
      }
    });
  },
  mounted() {
    this.getElementWidth();
  },
  methods: {
    // 列表项跳转
    listDataClick(item) {
      // 在当前页面设置全局变量
      // uni.setStorageSync('globalData', { id: 123, name: 'example' });
      if (item.id == 1) {
        uni.navigateTo({
          url: "/pages/character/detail?id=" + item.id
        });
      } else if (item.id == 2) {
        // uni.navigateTo({
        //     url:'/pages/character/detail?id='+item.id
        // })
      } else if (item.id == 3) {
        uni.navigateTo({
          url: "/pages/academicGenres/index?id=" + item.id
        });
      } else if (item.id == 4) {
        uni.navigateTo({
          url: "/pages/territory/territory?id=" + item.id
        });
      } else if (item.id == 5) {
        uni.navigateTo({
          url: "/pages/TcmSystem/TcmSystem?id=" + item.id
        });
      }
    },
    // 忘记密码
    forgetPass() {
      uni.redirectTo({
        url: "/pages/forgetPass/forgetPass"
      });
    },
    // 快速注册
    quickRegister() {
      uni.redirectTo({
        url: "/pages/Register/Register"
      });
    },
    // 验证码校验
    validateVerificationCode(rule, value, callback) {
      if (value !== "123456") {
        callback(new Error("验证码错误"));
      } else {
        callback();
      }
    },
    getElementWidth() {
      this.$nextTick(() => {
        var width = this.$refs.Rtop.$el.clientWidth;
        this.Rtop1 = width + 50;
      });
    },
    // 用户登录
    async Login(formName) {
      let Obj = {
        username: this.loginData.loginID,
        // encryptAES(this.loginData.pass) | this.loginData.pass
        password: encryptAES(this.loginData.pass)
      };
      let res = await getLogin(Obj);
      if (res.success) {
        this.$message.success("登录成功");
        // 将token存储再本地中
        window.localStorage.setItem("access_token", res.results.token);
        // await getUserInfo().then((res) => {
        // });
        // 将账号存入到vuex中
        this.$store.dispatch("setUserName", res.object.username);
        uni.redirectTo({
          url: "/pages/index/index"
        });
      } else {
        this.$message.error(res.errorText);
        this.loginData.pass = "";
      }
      this.$refs[formName].validate(async (valid) => {
        if (valid) {
          // alert('submit!成功');
          // uni.redirectTo({
          //     url: '/pages/index/index'
          // })
        } else {
          console.log("error submit!!失败");
          return false;
        }
      });
    }
  }
};
</script>
<style scoped>
    /*     @media screen and (max-width:1366px) {
/*     @media screen and (max-width:1366px) {
        ::v-deep .el-card {
            top: 50% !important;
        }
@@ -377,11 +413,11 @@
        }
    } */
    ::v-deep .el-form-item__error {
        font-size: .13rem !important;
    }
::v-deep .el-form-item__error {
  font-size: 0.13rem !important;
}
    /*
/*
    @media screen and (min-width: 1920px) and (max-width:2560px) {
        ::v-deep .el-card {
            top: 80% !important;
@@ -430,7 +466,7 @@
        }
    } */
    /*     @media screen and (min-width:2560px)and (max-width:3840px) {
/*     @media screen and (min-width:2560px)and (max-width:3840px) {
        .LoginBg {
            margin: 0 !important;
        }
@@ -506,270 +542,255 @@
    } */
.LoginBg {
  width: 1.2rem;
  height: 0.37rem;
  background: url(@/static/image/用户登录.png) no-repeat 0 0;
  background-size: 100%;
  margin-bottom: 0.47rem;
}
    .LoginBg {
        width: 1.2rem;
        height: .37rem;
        background: url(@/static/image/用户登录.png) no-repeat 0 0;
        background-size: 100%;
        margin-bottom: .47rem;
    }
::v-deep .el-card {
  border-radius: 0;
  width: 5.42rem;
  /* height: 4.75rem; */
  position: absolute;
  top: 80%;
}
::v-deep .el-card__body {
  padding: 0.17rem 0.58rem;
}
    ::v-deep .el-card {
        border-radius: 0;
        width: 5.42rem;
        /* height: 4.75rem; */
        position: absolute;
        top: 80%;
    }
.btn >>> .el-form-item__content {
  margin-left: 0 !important;
}
    ::v-deep .el-card__body {
        padding: .17rem .58rem;
    }
::v-deep .el-input__inner {
  border: none;
  border-bottom: 1px solid #2d476a;
  border-radius: 0;
}
    .btn>>>.el-form-item__content {
        margin-left: 0 !important;
    }
::v-deep .el-form-item__error {
  /* display: none; */
}
::v-deep .input.invalid:focus {
  border-color: #2d476a !important;
}
    ::v-deep .el-input__inner {
        border: none;
        border-bottom: 1px solid #2d476a;
        border-radius: 0;
::v-deep .el-input__inner:invalid {
  border-color: #2d476a !important;
}
    }
::v-deep .el-form-item__label {
  padding: 0;
  color: #244a7b;
  font-size: 0.14rem;
  font-weight: 500;
}
    ::v-deep .el-form-item__error {
        /* display: none; */
    }
::v-deep .el-form-item {
  margin-bottom: 0.25rem;
}
    ::v-deep .input.invalid:focus {
        border-color: #2d476a !important;
    }
.ss1 {
  background-repeat: no-repeat;
  background-size: 100% 100%;
  width: 40rpx;
  height: 40rpx;
  background-size: 100% 100%;
}
    ::v-deep .el-input__inner:invalid {
        border-color: #2d476a !important;
    }
.s1 {
  background-image: url(@/static/image/search.png);
}
.s2 {
  background-image: url(@/static/image/question.png);
}
    ::v-deep .el-form-item__label {
        padding: 0;
        color: #244A7B;
        font-size: .14rem;
        font-weight: 500;
    }
.s3 {
  background-image: url(@/static/image/question.png);
}
    ::v-deep .el-form-item {
        margin-bottom: .25rem;
    }
.container {
  background: url(@/static/image/bg1.png);
  width: 100vw;
  height: 100vh;
    .ss1 {
        background-repeat: no-repeat;
        background-size: 100% 100%;
        width: 40rpx;
        height: 40rpx;
        background-size: 100% 100%;
    }
  color: #fff;
    .s1 {
        background-image: url(@/static/image/search.png);
  .repository {
    width: 100% !important;
    /* margin-top: 19px; */
    /* height: 68%; */
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    align-items: center;
    }
    .Ttop {
      margin-top: 0.38rem;
      margin-bottom: 1.22rem;
    }
    .s2 {
        background-image: url(@/static/image/question.png);
    }
    .r-top {
      font-size: 40rpx !important;
      margin: 10rpx 0;
    }
  }
}
    .s3 {
        background-image: url(@/static/image/question.png);
    }
.login {
  width: 0.52rem;
  height: 0.52rem;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.19rem;
  background: url(@/static/image/logo.png) no-repeat 0 0;
  background-size: 100% 100%;
}
    .container {
        background: url(@/static/image/bg1.png);
        width: 100vw;
        height: 100vh;
.rrr {
  position: absolute;
  right: 0.53rem;
  bottom: 0.36rem;
  width: 2.5rem;
  height: 3.07rem;
  opacity: 1;
  background: url(@/static/image/bg4.png);
  background-size: 100% 100%;
}
        color: #fff;
.hua {
  width: 13.81rem;
  height: 5.965rem;
  position: absolute;
  background: url(@/static/image/bg3.png) no-repeat 0 0;
  background-size: 100% 100%;
}
        .repository {
            width: 100% !important;
            /* margin-top: 19px; */
            /* height: 68%; */
            display: flex;
            flex-direction: column;
            justify-content: space-around;
            align-items: center;
/* 底部人物背景图  */
.fff {
  background: url(@/static/image/bg2.png) no-repeat 0 0;
  background-size: 100% 100%;
  width: 2.74rem;
  height: 4.52rem;
  position: fixed;
  bottom: 0;
  z-index: 9999999999999;
  left: 0;
}
            .Ttop {
                margin-top: .38rem;
                margin-bottom: 1.22rem;
            }
::v-deep .uni-easyinput__content {
  border-radius: 30rpx !important;
  /* height: 52rpx; */
}
            .r-top {
                font-size: 40rpx !important;
                margin: 10rpx 0;
            }
        }
.secretary {
  width: 1300rpx !important;
  height: 50rpx;
  /* height: 80%; */
  /* flex-wrap: wrap; */
  padding: 0 20px;
  text-align: center;
    }
  li {
    background-color: #fff;
    color: black;
    height: 600rpx;
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    align-items: center;
    border: 1rpx solid #fff;
    padding: 50rpx 65rpx;
    /*             padding: 58rpx 128rpx 88rpx; */
    text-align: center;
    background: #ebf4ff;
  }
}
    .login {
        width: .52rem;
        height: .52rem;
        display: inline-block;
        vertical-align: middle;
        margin-right: .19rem;
        background: url(@/static/image/logo.png) no-repeat 0 0;
        background-size: 100% 100%;
    }
.Bbottom {
  display: flex;
  justify-content: center;
}
    .rrr {
        position: absolute;
        right: .53rem;
        bottom: .36rem;
        width: 2.5rem;
        height: 3.07rem;
        opacity: 1;
        background: url(@/static/image/bg4.png);
        background-size: 100% 100%;
    }
.LoginBg {
  margin: 0 !important;
}
    .hua {
        width: 13.81rem;
        height: 5.965rem;
        position: absolute;
        background: url(@/static/image/bg3.png) no-repeat 0 0;
        background-size: 100% 100%;
    }
::v-deep .el-card {
  top: 85% !important;
}
    /* 底部人物背景图  */
    .fff {
        background: url(@/static/image/bg2.png) no-repeat 0 0;
        background-size: 100% 100%;
        width: 2.74rem;
        height: 4.52rem;
        position: fixed;
        bottom: 0;
        z-index: 9999999999999;
        left: 0;
    }
::v-deep .el-input__inner {
  height: 0.4rem !important;
  font-size: 0.14rem;
}
    ::v-deep .uni-easyinput__content {
        border-radius: 30rpx !important;
        /* height: 52rpx; */
    }
.hua {
  height: 4rem !important;
}
.LoginBg {
  margin: 0 !important;
  height: 0.3rem !important;
}
    .secretary {
        width: 1300rpx !important;
        height: 50rpx;
        /* height: 80%; */
        /* flex-wrap: wrap; */
        padding: 0 20px;
        text-align: center;
::v-deep .el-card {
  top: 80% !important;
  padding: 0 !important;
}
::v-deep .el-card__body {
  padding: 0.25rem 0.5rem !important;
}
::v-deep .el-form {
  padding-left: 0.1rem !important;
}
::v-deep .el-form-item__error {
  font-size: 0.13rem !important;
}
        li {
            background-color: #fff;
            color: black;
            height: 600rpx;
            display: flex;
            justify-content: space-between;
            flex-direction: column;
            align-items: center;
            border: 1rpx solid #fff;
            padding: 50rpx 65rpx;
            /*             padding: 58rpx 128rpx 88rpx; */
            text-align: center;
            background: #EBF4FF;
        }
    }
::v-deep .el-input__inner {
  height: 0.44rem !important;
}
.hua {
  height: 5rem !important;
}
.LoginTop {
  margin-bottom: 0.4rem !important;
}
    .Bbottom {
        display: flex;
        justify-content: center;
.yzm {
  top: 15% !important;
}
    }
.fff {
  width: 2.4rem !important;
  height: 4rem !important;
}
.rrr {
  width: 2rem !important;
  height: 2.5rem !important;
}
    .LoginBg {
        margin: 0 !important;
    }
    ::v-deep .el-card {
        top: 85% !important;
    }
    ::v-deep .el-input__inner {
        height: .4rem !important;
        font-size: .14rem;
    }
    .hua {
        height: 4rem !important;
    }
    .LoginBg {
        margin: 0 !important;
        height: .3rem !important;
    }
    ::v-deep .el-card {
        top: 80% !important;
        padding: 0 !important;
    }
    ::v-deep .el-card__body {
        padding: .25rem .5rem !important;
    }
    ::v-deep .el-form {
        padding-left: .1rem !important;
    }
    ::v-deep .el-form-item__error {
        font-size: .13rem !important;
    }
    ::v-deep .el-input__inner {
        height: .44rem !important;
    }
    .hua {
        height: 5rem !important;
    }
    .LoginTop {
        margin-bottom: .4rem !important;
    }
    .yzm {
        top: 15% !important;
    }
    .fff {
        width: 2.4rem !important;
        height: 4rem !important;
    }
    .rrr {
        width: 2rem !important;
        height: 2.5rem !important;
    }
    .btn ::v-deep .el-button {
        margin-top: 0.2rem !important;
        /*         font-size: 0.2rem !important;
.btn ::v-deep .el-button {
  margin-top: 0.2rem !important;
  /*         font-size: 0.2rem !important;
            width: 100%;
            padding: 0.12rem !important; */
    }
}
    .asdf {
        margin-bottom: .1rem !important;
    }
</style>
.asdf {
  margin-bottom: 0.1rem !important;
}
</style>
src/pages/Register/Register.vue
@@ -5,8 +5,8 @@
        class="Ttop flex flex-center flex-wrap"
        style="flex-direction: column"
      >
        <view class=""></view>
        <view class="" ref="Rtop">
        <view ></view>
        <view  ref="Rtop">
          <text class="login"></text>
          <text
            style="
@@ -32,10 +32,10 @@
            align-items: center;
          "
        >
          <!-- <view class="" style="color: #244A7B;padding-bottom: .47rem;font-size: .3rem;font-weight: bold;">用户注册</view> -->
          <!-- <view  style="color: #244A7B;padding-bottom: .47rem;font-size: .3rem;font-weight: bold;">用户注册</view> -->
          <view class="LoginBg"></view>
          <view
            class=""
            @click="BacktoLogin"
            style="
              cursor: pointer;
@@ -159,7 +159,7 @@
import Footer1 from "@/components/footer/footer.vue";
export default {
  components: {
    Footer1,
    Footer1
  },
  data() {
    // 密码
@@ -202,55 +202,55 @@
          {
            required: true,
            message: "请输入登录账号",
            trigger: "blur",
            trigger: "blur"
          },
          {
            pattern: /^[a-zA-Z0-9]{3,15}$/,
            message: "请输入3-15个字符的字母或数字",
            trigger: "blur",
          }, // 自定义校验规则,使用正则表达式
            trigger: "blur"
          } // 自定义校验规则,使用正则表达式
        ],
        pass: [
          {
            required: true,
            message: "请输入密码",
            trigger: "blur",
            trigger: "blur"
          },
          {
            min: 6,
            max: 10,
            message: "密码长度在 6 到 12 个字符",
            trigger: "blur",
            trigger: "blur"
          },
          {
            validator: validatePass,
            trigger: "blur",
          },
            trigger: "blur"
          }
        ],
        checkPass: [
          {
            validator: validatePass2,
            trigger: "blur",
          },
            trigger: "blur"
          }
        ],
        cellphoneORmailbox: [
          {
            required: true,
            message: "请输入手机",
            trigger: "blur",
            trigger: "blur"
          },
          {
            validator: this.validateContact,
            trigger: "blur",
          },
            trigger: "blur"
          }
        ],
        verifyCode: [
          {
            required: true,
            message: "请输入验证码",
            trigger: "blur",
          },
        ],
            trigger: "blur"
          }
        ]
      },
      // 登录注册框
      loginTrue: true,
@@ -262,51 +262,51 @@
        pass: "",
        checkPass: "",
        cellphoneORmailbox: null,
        verifyCode: "",
        verifyCode: ""
      },
      // 登录用户账号
      loginData: {
        // 账号
        loginID: "",
        pass: "",
        pass: ""
      },
      // 重置密码
      resetDataPass: {
        cellphoneORmailbox: null,
        verifyCode: "",
        newPass: "",
        checkPass: "",
        checkPass: ""
      },
      // 修改密码
      amendDataPass: {
        loginID: "",
        originalPass: "",
        newPass: "",
        checkPass: "",
        checkPass: ""
      },
      // 书籍数据
      listData: [
        {
          name: "中医人物数据库",
          id: 1,
          id: 1
        },
        {
          name: "世医医家数据库",
          id: 2,
          id: 2
        },
        {
          name: "中医学术流派",
          id: 3,
          id: 3
        },
        {
          name: "中医地域医谱",
          id: 4,
          id: 4
        },
        {
          name: "中医医事制度",
          id: 5,
        },
      ],
          id: 5
        }
      ]
    };
  },
  onLoad() {
@@ -314,7 +314,7 @@
      success: function (info) {
        // console.log('屏幕的宽度:' + info.windowWidth);
        // console.log('屏幕的高度:' + info.windowHeight);
      },
      }
    });
  },
  mounted() {
@@ -323,22 +323,16 @@
  methods: {
    // 服务条款
    termOfServiceClick(number) {
      // console.log(number);
      if (number == 1) {
        console.log("服务条款");
        window.open(`#/pages/userAgreement/userAgreement`);
        // uni.navigateTo({
        //     url: '/pages/userAgreement/userAgreement'
        // })
      } else if (number == 2) {
        window.open(`#/pages/userAgreement/userAgreement`);
        console.log("用户隐私保护和个人信息条款");
      }
    },
    // 已有账号?返回登录
    BacktoLogin() {
      uni.redirectTo({
        url: "/pages/Login/Login",
        url: "/pages/Login/Login"
      });
    },
    // 获取验证码
@@ -346,7 +340,7 @@
      if (!this.registerData.cellphoneORmailbox) {
        this.$message({
          message: "请输入手机!",
          type: "warning",
          type: "warning"
        });
        return false;
@@ -355,7 +349,7 @@
        return;
      }
      let Obj = {
        communicateParam: this.registerData.cellphoneORmailbox,
        communicateParam: this.registerData.cellphoneORmailbox
      };
      this.countdown = 60;
      const intervalId = setInterval(() => {
@@ -366,13 +360,11 @@
        }
      }, 1000);
      let code = await getverifyCode(Obj);
    },
    // 手机号/或者邮箱
    validateContact(rule, value, callback) {
      const regPhone = /^1[0-9]{10}$/;
      const regEmail = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
      console.log(value, regPhone.test(value), regEmail.test(value));
      if (regPhone.test(value) || regEmail.test(value)) {
        callback(); // 校验通过
      } else {
@@ -383,55 +375,35 @@
      this.$nextTick(() => {
        var width = this.$refs.Rtop.$el.clientWidth;
        this.Rtop1 = width + 50;
        console.log("Element width:", width);
      });
    },
    // 用户注册
    async Login(formName) {
      console.log(formName);
      let Obj = {
        username: this.registerData.loginID,
        password: encryptAES(this.registerData.pass),
        communicateParam: this.registerData.cellphoneORmailbox,
        verifyCode: this.registerData.verifyCode,
        verifyCode: this.registerData.verifyCode
      };
      this.$refs[formName].validate(async (valid) => {
        if (valid) {
          // alert('submit!');
          console.log("sdfds");
          await getaddLogin(Obj).then((res) => {
            console.log(res, "注册成功");
            if (res.success == true) {
              uni.showToast({
                title: res.errorText,
                icon: "success",
              });
              this.$message.success("注册成功");
              uni.navigateTo({
                url: "/pages/Login/Login",
                url: "/pages/Login/Login"
              });
            } else {
              uni.showToast({
                title: res.errorText,
                icon: "error",
              });
              this.$message.error(res.errorText);
            }
          });
          // encryptAES
          // uni.navigateTo({
          //     url: '/pages/Login/Login'
          // })
        } else {
          console.log("error submit!!");
          return false;
        }
      });
      // console.log(Obj, '用户登录的登录按钮');
      // let res = await getaddLogin(Obj)
      // console.log('sdfdsfs', res);
    },
  },
    }
  }
};
</script>
<style scoped>
src/pages/TcmSystem/TcmSystem.vue
@@ -546,12 +546,12 @@
      });
    },
    // 右侧的list数据
    getMList(obj) {
    getMList(key) {
      this.pageLoading = true;
      let Obj = {
        medicalSearchType: this.searchType,
        type: this.classifyType, //查询类型 取值:OFFICIAL->职官 INSTITUTION->机构 ALL->职官、机构
        name: this.SearchValue, //搜索框检索
        name: key ? key : this.SearchValue, //搜索框检索
        dynastyId: this.classifyId, //点击朝代查询数据时,带上此参数
        sort: this.rankVal, //排序方式 取值:CREATE创建时间,NAME名称
        page: this.CurrentPage, //第几页
@@ -577,7 +577,6 @@
    },
    // list数组 获取list里面的详情shuju
    ListClick(item, index) {
      console.log(item, "item");
      let Obj = {
        rowId: item.requestId,
        medicalSearchType: this.searchType,
@@ -689,8 +688,8 @@
    },
    // 热门搜索
    HotClick(val) {
      this.SearchValue = val;
      this.getMList();
      // this.SearchValue = val;
      this.getMList(val);
    },
    // 按照什么排序
    selectChange(e) {
src/pages/academicGenres/chart.vue
@@ -3,7 +3,7 @@
    style="width: 100%; height: 100%; display: flex; flex-direction: column"
  >
    <!-- 顶部导航 -->
    <headNav :idIndex="3 + ''" text="历代学术流派" />
    <headNav :idIndex="3 + ''" text="中医学术流派" />
    <view class="Midde flex">
      <!-- <view class="MiddeBack">返回</view> -->
      <el-button class="MiddeBack flex flex-center" @click="goBack"
@@ -11,7 +11,6 @@
      >
      <view class="flex flex-center flex-column">
        <view
          class=""
          style="
            font-weight: 900;
            margin-bottom: 0.2rem;
@@ -51,7 +50,6 @@
            "
          >
            <view
              class=""
              :style="{ background: item.color }"
              style="
                margin-right: 0.07rem;
@@ -60,7 +58,7 @@
                border-radius: 50%;
              "
            ></view>
            <view class="" style="color: #2c2c2c; font-size: 0.12rem">{{
            <view style="color: #2c2c2c; font-size: 0.12rem">{{
              item.name
            }}</view>
          </view>
@@ -209,7 +207,6 @@
        searchSchoolPerson({
          keyword: item
        }).then((res) => {
          console.log(res.list, i);
          for (let i = 0; i < res.list.length; i++) {
            const citem = res.list[i];
            // 节点
@@ -355,6 +352,9 @@
    height: 0.24rem;
    font-size: 0.12rem;
    padding: 0;
    border-radius: 0;
    border: 1px solid #9e9e9e;
    color: #000;
  }
  .Lists {
src/pages/academicGenres/detail.vue
@@ -1,7 +1,7 @@
<template>
  <view class="bag">
    <!-- 顶部导航 -->
    <headNav idIndex="3" text="历代学术流派" />
    <headNav idIndex="3" text="中医学术流派" />
    <view class="Midde flex">
      <!-- <view class="MiddeBack">返回</view> -->
      <el-button class="MiddeBack flex flex-center" @click="goBack"
@@ -9,7 +9,7 @@
      >
      <view class="flex flex-center flex-column">
        <view
          class=""
          style="
            font-weight: 900;
            margin-bottom: 0.2rem;
@@ -25,7 +25,7 @@
          </li>
        </ul>
      </view>
      <view class=""></view>
      <view ></view>
    </view>
    <view class="Bottom">
      <view class="Bottom_top flex">
@@ -169,7 +169,6 @@
  methods: {
    getData() {
      getIntroduction(Number(this.idIndex)).then((res) => {
        console.log(res,"rrrr");
        this.detailData = {
          name: res.object.school_NAME[0].content,
          icon:
@@ -248,7 +247,6 @@
              })
            : []
        };
        console.log(this.detailData,"detailDatadetailData");
      });
    },
    goBack() {
@@ -320,6 +318,9 @@
    height: 0.24rem;
    font-size: 0.12rem;
    padding: 0;
    border-radius: 0;
    border: 1px solid #9e9e9e;
    color: #000;
  }
  .Lists {
src/pages/academicGenres/index.vue
@@ -1,7 +1,7 @@
<template>
  <view style="width: 100%;height: 100%;display: flex;flex-direction: column;">
    <!-- 顶部导航 -->
    <headNav :idIndex="idIndex" text="历代学术流派" />
    <headNav :idIndex="idIndex" text="中医学术流派" />
    <view id="line-chart" style="flex: 1;overflow: hidden;padding: 50px;"></view>
  </view>
</template>
src/pages/changePassword/changePassword.vue
@@ -5,8 +5,8 @@
        class="Ttop flex flex-center flex-wrap"
        style="flex-direction: column"
      >
        <view class=""></view>
        <view class="" ref="Rtop">
        <view ></view>
        <view  ref="Rtop">
          <text class="login"></text>
          <text
            style="
@@ -32,10 +32,10 @@
            align-items: center;
          "
        >
          <!-- <view class="" style="color: #244A7B;padding-bottom: .47rem;font-size: .3rem;font-weight: bold;">用户注册</view> -->
          <!-- <view  style="color: #244A7B;padding-bottom: .47rem;font-size: .3rem;font-weight: bold;">用户注册</view> -->
          <view class="LoginBg"></view>
          <view
            class=""
            @click="BacktoLogin"
            style="
              cursor: pointer;
@@ -275,7 +275,6 @@
      this.$nextTick(() => {
        var width = this.$refs.Rtop.$el.clientWidth;
        this.Rtop1 = width + 50;
        console.log("Element width:", width);
      });
    },
    // 忘记密码
@@ -285,24 +284,15 @@
        password: encryptAES(this.amendDataPass.rawPass),
        newPassword: encryptAES(this.amendDataPass.newPass)
      };
      console.log(Obj);
      this.$refs[formName].validate(async (valid) => {
        if (valid) {
          // alert('submit!成功');
          await getchangePassword(Obj).then((res) => {
            // console.log(res,'修改密码成功');
          getchangePassword(Obj).then((res) => {
            if (res.success == true) {
              uni.showToast({
                title: res.object,
                icon: "none"
              });
              this.$message.success('修改成功');
              uni.navigateBack();
              console.log("修改成功", res);
            } else {
              uni.showToast({
                title: res.errorText,
                icon: "none"
              });
              this.$message.error(res.errorText);
            }
          });
          // uni.redirectTo({ encryptAES
src/pages/character/detail.vue
@@ -507,7 +507,6 @@
  },
  methods: {
    copyText() {
      console.log(navigator.clipboard);
      const textToCopy = this.biogData[0].content + ";来源:中医医学人物数据库";
      const textarea = document.createElement("textarea");
      textarea.value = textToCopy;
@@ -542,7 +541,6 @@
              : fieldItem.content1;
          }
        }
        console.log(obj);
        this.detailInfo = obj;
        // 关系图谱
        this.getMappingData(this.detailInfo.NAME);
@@ -557,7 +555,6 @@
      getPersonRelationAtSchool({
        personId: this.detailId,
      }).then((res) => {
        console.log(res, "PERSON_RELATIONS");
        // this.personRelationList = res.object.personRelationList;
        // if (this.personRelationList.length) {
        //   this.tableData4 = this.personRelationList.map((f) => {
@@ -571,11 +568,9 @@
      getWebBasic({
        personId: this.detailId,
      }).then((res) => {
        console.log(res, "resres");
        const obj = res.object;
        if (obj.school) {
          getIntroduction(Number(obj.school)).then((sres) => {
            console.log(sres, "sres");
            this.handleData(obj, sres);
          });
        } else {
@@ -700,9 +695,8 @@
    getRelationship() {
      getPersonRelationAtSchool({
        personId: this.detailId,
        // relationSearchTypeEO: "SOCIAL"
        relationSearchTypeEO: "KINSHIP"
      }).then((res) => {
        console.log(res, "getPersonRelationAtSchool");
        // 这里接口有问题
      });
    },
@@ -748,7 +742,6 @@
      getSpaceTime({
        personId: this.detailId,
      }).then((res) => {
        console.log(res, "getSpaceTime");
        const data = res.list.map((item) => {
          return {
            name: item.activityName,
src/pages/character/index.vue
@@ -1,5 +1,7 @@
<template>
  <view>
  <view
    style="width: 100%; height: 100%; display: flex; flex-direction: column"
  >
    <headNav idIndex="1" text="中医人物数据库" />
    <!-- 高级搜索 -->
    <view style="margin: 0.35rem 0 0.16rem 0">
@@ -26,14 +28,29 @@
        </li>
      </ul>
    </view>
    <view class="" style="margin-left: 0.2rem">书中最常提到的100位人物</view>
    <view  style="margin-left: 0.2rem">书中最常提到的100位人物</view>
    <!-- 关系表地图 -->
    <view id="relation" style="margin-top: 0.2rem; height: 70vh; width: 100%;position: relative;"
      ><div v-if="!loading && relationships.length == 0" style="position: absolute;top: 30%;left: 0;right: 0;text-align: center;font-size: 0.20rem;color: #666;">暂无相关数据</div></view
    <view
      id="relation"
      style="margin-top: 0.2rem; flex: 1; width: 100%; position: relative"
      ><div
        v-if="!loading && relationships.length == 0"
        style="
          position: absolute;
          top: 30%;
          left: 0;
          right: 0;
          text-align: center;
          font-size: 0.2rem;
          color: #666;
        "
      >
        暂无相关数据
      </div></view
    >
    <!-- 朝代 -->
    <view
    <!-- <view
      class="flex flex-center"
      style="width: 100%; position: fixed; bottom: 0.33rem; left: 0"
    >
@@ -70,7 +87,7 @@
          </view>
        </li>
      </ul>
    </view>
    </view> -->
  </view>
</template>
@@ -275,9 +292,9 @@
    this.searchKey = options.keyword;
  },
  methods: {
    getData() {
    getData(key) {
      getFuzzySearch({
        keyword: this.searchKey ? this.searchKey : ""
        keyword: key ? key : this.searchKey ? this.searchKey : ""
      }).then((res) => {
        this.nodes = [];
        this.relationships = [];
@@ -457,7 +474,6 @@
      // 设置点击事件监听
      myChart.off("click");
      myChart.on("click", (params) => {
        console.log(params);
        if (params.dataType === "node") {
          this.spaceTimeArr(params.data.id);
        }
@@ -466,8 +482,8 @@
    },
    // 基础搜索
    onSearch(val) {
      this.searchKey = val.text;
      this.getData();
      // this.searchKey = val.text;
      this.getData(val.text);
    },
    // 高级搜索
    onSubmit(val) {
src/pages/characterMap/characterMap.vue
@@ -108,7 +108,6 @@
    //   this.aaa();
    // });
    this.$route;
    console.log(this.$route, "this.$route");
    this.getPersonInfoFun();
    this.getBasicInfo();
  },
@@ -181,7 +180,6 @@
        id: this.$route.query.id,
        type: "PERSON_SPACE_TIME"
      }).then((res) => {
        console.log(res, "res");
        this.initMap(res.object.personSpaceTimeList);
      });
    },
@@ -191,7 +189,6 @@
        id: this.$route.query.id,
        type: "PERSON_BASIC"
      }).then((res) => {
        console.log(res, "res");
        this.basicInfo.name = res.object.personFieldList.find(
          (f) => f.fieldName == "WEAK_NAME"
        ).content1;
@@ -212,11 +209,9 @@
    },
    creatMX(len) {
      console.log(len);
      let width = len * 50 + 10;
      // this.MX.style.width = `${width}px`
      // this.scales.style.width = `${width}px`
      // console.log(this.box.style.width);
    },
    creatScale() {
      // for (let i = 0; i < this.yearArr.length; i++) {
@@ -226,7 +221,6 @@
      //     scale.addEventListener("click", this.scaleClick)
      //     scales.appendChild(scale)
      // }
      // console.log(arr[0]);
    },
    handleSliderChange(value) {
@@ -234,16 +228,13 @@
    },
    scaleClick(i) {
      // let i = Number(this.getAttribute("data-index"))
      console.log(i, this.cursorML);
      if (i > this.yearIndex) {
        this.cursorML += (i - this.yearIndex + +("0.0" + this.yearIndex)) / 1.9;
        // this.spanML += 50 * (i - this.yearIndex)
        console.log(i - this.yearIndex + 0.2, "aaaa");
      } else {
        this.cursorML -= (this.yearIndex - i) / 2 + 0.04;
        // this.spanML -= 50 * (this.yearIndex - i)
        console.log(this.yearIndex, i, "bbbb");
      }
      this.yearIndex = i;
    },
@@ -459,12 +450,10 @@
      // 设置点击事件监听
      myChart.on("click", (params) => {
        // menuNav2 = !menuNav1
        // console.log(menuNav);
        if (params.componentType === "series") {
          var dataName = params.data.name; // 获取点击的数据名称
          var dataValue = params.data.value; // 获取点击的数据值
          // 在这里可以根据需要处理点击事件,比如弹出对应数据的详细信息等操作
          // console.log('点击了', dataName, '数据,数值为', dataValue);
          // 这里可以编写触发时间获取对应数据信息的逻辑
          this.spaceTimeArr(params);
        }
@@ -477,7 +466,6 @@
      // 修改 Vue 组件的数据,例如显示菜单导航
      this.menuNav = !this.menuNav;
      // 时空地图的数据
      console.log(Arr);
    }
  }
};
src/pages/fileDetail/index.vue
@@ -30,12 +30,10 @@
          personId: this.options.id,
          dataTypeEO: this.options.outputType
        }).then((res) => {
          console.log(res);
          this.data = res;
        });
      } else {
        getMedicalDataOutput(this.options).then((res) => {
          console.log(res);
          this.data = res;
        });
      }
src/pages/forgetPass/forgetPass.vue
@@ -5,8 +5,8 @@
        class="Ttop flex flex-center flex-wrap"
        style="flex-direction: column"
      >
        <view class=""></view>
        <view class="" ref="Rtop">
        <view ></view>
        <view  ref="Rtop">
          <text class="login"></text>
          <text
            style="
@@ -32,10 +32,10 @@
            align-items: center;
          "
        >
          <!-- <view class="" style="color: #244A7B;padding-bottom: .47rem;font-size: .3rem;font-weight: bold;">用户注册</view> -->
          <!-- <view  style="color: #244A7B;padding-bottom: .47rem;font-size: .3rem;font-weight: bold;">用户注册</view> -->
          <view class="LoginBg"></view>
          <view
            class=""
            @click="BacktoLogin"
            style="
              cursor: pointer;
@@ -273,7 +273,6 @@
    },
    // 列表项跳转
    listDataClick(item) {
      console.log(item);
      // 在当前页面设置全局变量
      // uni.setStorageSync('globalData', { id: 123, name: 'example' });
      if (item.id == 1) {
@@ -281,7 +280,6 @@
          url: "/pages/character/detail?id=" + item.id,
        });
      } else if (item.id == 2) {
        console.log(item.name);
        // uni.navigateTo({
        //     url:'/pages/character/detail?id='+item.id
        // })
@@ -304,7 +302,6 @@
    validateContact(rule, value, callback) {
      const regPhone = /^1[0-9]{10}$/;
      const regEmail = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
      console.log(value, regPhone.test(value), regEmail.test(value));
      if (regPhone.test(value) || regEmail.test(value)) {
        callback(); // 校验通过
      } else {
@@ -315,7 +312,6 @@
      this.$nextTick(() => {
        var width = this.$refs.Rtop.$el.clientWidth;
        this.Rtop1 = width + 50;
        console.log("Element width:", width);
      });
    },
    // 忘记密码
@@ -325,13 +321,10 @@
        verifyCode: this.resetDataPass.verifyCode, //验证码
        newPassword: encryptAES(this.resetDataPass.newPass), //新密码
      };
      console.log(Obj);
      this.$refs[formName].validate(async (valid) => {
        if (valid) {
          await getRestPassword(Obj).then((res) => {
            console.log(res, "接口");
            if (res.success) {
              console.log("忘记密码的接口拿到数据了");
              uni.navigateTo({
                url: "/pages/Login/Login",
              });
src/pages/index/index.vue
@@ -1,314 +1,373 @@
<template>
    <view class="container flex flex-center" style="align-items: flex-start;">
        <view class="repository relative">
            <view class="flex Ttop flex-column" style="width: 100%;">
                <view class="flex" style="width: 100%;">
                    <view class="" style="padding-left: 4rem;"></view>
                    <view class=" flex flex-center flex-wrap" style="width: 100%; flex-direction: column;">
                        <view class=""></view>
                        <view class="" ref="Rtop">
                            <text class="login"></text>
                            <text style="font-size: .36rem;letter-spacing: 4rpx;vertical-align: middle;font-family: cursive;font-weight: bold;">中国医学人物知识库</text>
                        </view>
                    </view>
                    <view class="flex relative" style="height: .5rem;">
                        <!-- 小搜索图片 -->
                        <view class="flex searchCss" :style="{'backgroundColor': isExpanded==true?'#fff':''}"
                            style="border-radius: .5rem; height: 75%; width: 2.33rem;margin-right: .30rem;justify-content: flex-end;">
                            <!-- overflow: hidden;  -->
                            <input :style="{'display': isExpanded == true ? 'block' : 'none'}" @confirm="toggleSearch" type="text"
                                style="margin-left: .05rem;color: #2C2C2C; flex: 1; background-color: #fff; font-size: .13rem;"
                                class="search-input" v-model="searchInput" placeholder="请输入搜索内容" />
                            <view class="search-logo" @click="toggleSearch"
                                style="background-color: #244A7B;border-radius: 50%;margin-top: -4rpx;"></view>
                        </view>
                        <el-dropdown trigger="click" @command="handleCommand" style="margin-right:  .3rem;">
                            <view @click="iconClick(2)" class="s2 ss1 "></view>
                            <el-dropdown-menu v-if="isCommand" slot="dropdown">
                                <el-dropdown-item command="1" >修改密码</el-dropdown-item>
                                <el-dropdown-item command="2" >退出登录</el-dropdown-item>
                            </el-dropdown-menu>
                        </el-dropdown>
                        <view @click="iconClick(item+2)" v-for="item in 1" :key="item" :class="'s'+(item+2)"
                            class="ss1 cursor" style="margin-right:  .3rem;">
                        </view>
                    </view>
                </view>
                <!-- 高级搜索 -->
                <view v-if="isSearchTrue" class="Search" style="margin: .35rem 0 .16rem 0; height: .52rem;">
                    <advancedSearch @onSearch="onSearch" placehold="" :isAvancedTrue="false" :isSearchTrue="false" />
                </view>
            </view>
            <view class="Bbottom ">
                <!-- 选项卡 -->
                <ul class="secretary  flex ">
                    <li @click="listDataClick(item)" v-for="(item,index) in listData" :key="index">
                        <span class="font-family"
                            style="font-weight: 700;color: #2C2C2C; width: .36rem;display: inline-block; font-size: .32rem;overflow: hidden;height: 80%;line-height: 1.5;">{{item.name}}</span>
                        <view class="flex flex-content"
                            style="width: .5rem;height: .5rem;border-radius: 50%;background-color: #244A7B;">
                            <image style="width: 40%;height: 20%;" src="@/static/image/eResize.png" mode=""></image>
                        </view>
                    </li>
                </ul>
            </view>
        </view>
        <view class="hua"></view>
        <!-- 底部人物背景图左侧 -->
        <view class="fff"></view>
        <!-- 底部花的背景图右侧 -->
        <view class="rrr"></view>
        <Footer1 />
    </view>
  <view class="container flex flex-center" style="align-items: flex-start">
    <view class="repository relative">
      <view class="flex Ttop flex-column" style="width: 100%">
        <view class="flex" style="width: 100%">
          <view  style="padding-left: 4rem"></view>
          <view
            class="flex flex-center flex-wrap"
            style="width: 100%; flex-direction: column"
          >
            <view ></view>
            <view  ref="Rtop">
              <text class="login"></text>
              <text
                style="
                  font-size: 0.36rem;
                  letter-spacing: 4rpx;
                  vertical-align: middle;
                  font-family: cursive;
                  font-weight: bold;
                "
                >中国医学人物知识库</text
              >
            </view>
          </view>
          <view class="flex relative" style="height: 0.5rem">
            <!-- 小搜索图片 -->
            <view
              class="flex searchCss"
              :style="{ backgroundColor: isExpanded == true ? '#fff' : '' }"
              style="
                border-radius: 0.5rem;
                height: 75%;
                width: 2.33rem;
                margin-right: 0.3rem;
                justify-content: flex-end;
              "
            >
              <!-- overflow: hidden;  -->
              <input
                :style="{ display: isExpanded == true ? 'block' : 'none' }"
                @confirm="toggleSearch"
                type="text"
                style="
                  margin-left: 0.05rem;
                  color: #2c2c2c;
                  flex: 1;
                  background-color: #fff;
                  font-size: 0.13rem;
                "
                class="search-input"
                v-model="searchInput"
                placeholder="请输入搜索内容"
              />
              <view
                class="search-logo"
                @click="toggleSearch"
                style="
                  background-color: #244a7b;
                  border-radius: 50%;
                  margin-top: -4rpx;
                "
              ></view>
            </view>
            <el-dropdown
              trigger="click"
              @command="handleCommand"
              style="margin-right: 0.3rem"
            >
              <view @click="iconClick(2)" class="s2 ss1"></view>
              <el-dropdown-menu v-if="isCommand" slot="dropdown">
                <el-dropdown-item command="1">修改密码</el-dropdown-item>
                <el-dropdown-item command="2">退出登录</el-dropdown-item>
              </el-dropdown-menu>
            </el-dropdown>
            <view
              @click="iconClick(item + 2)"
              v-for="item in 1"
              :key="item"
              :class="'s' + (item + 2)"
              class="ss1 cursor"
              style="margin-right: 0.3rem"
            >
            </view>
          </view>
        </view>
        <!-- 高级搜索 -->
        <view
          v-if="isSearchTrue"
          class="Search"
          style="margin: 0.35rem 0 0.16rem 0; height: 0.52rem"
        >
          <advancedSearch
            @onSearch="onSearch"
            placehold=""
            :isAvancedTrue="false"
            :isSearchTrue="false"
          />
        </view>
      </view>
      <view class="Bbottom">
        <!-- 选项卡 -->
        <ul class="secretary flex">
          <li
            @click="listDataClick(item)"
            v-for="(item, index) in listData"
            :key="index"
          >
            <span
              class="font-family"
              style="
                font-weight: 700;
                color: #2c2c2c;
                width: 0.36rem;
                display: inline-block;
                font-size: 0.32rem;
                overflow: hidden;
                height: 80%;
                line-height: 1.5;
              "
              >{{ item.name }}</span
            >
            <view
              class="flex flex-content"
              style="
                width: 0.5rem;
                height: 0.5rem;
                border-radius: 50%;
                background-color: #244a7b;
              "
            >
              <image
                style="width: 40%; height: 20%"
                src="@/static/image/eResize.png"
                mode=""
              ></image>
            </view>
          </li>
        </ul>
      </view>
    </view>
    <view class="hua"></view>
    <!-- 底部人物背景图左侧 -->
    <view class="fff"></view>
    <!-- 底部花的背景图右侧 -->
    <view class="rrr"></view>
    <Footer1 />
  </view>
</template>
<script>
    import {
        nextTick
    } from "vue";
    import {
        getlogout
    } from '@/api/index.js'
    import Footer1 from '@/components/footer/footer.vue'
    export default {
        components: {
            Footer1
        },
        data() {
            return {
                isCommand: true,
                // 搜索的显示
                isSearchTrue: true,
                isExpanded: false, // 控制搜索框是否展开
                searchInput: '', //小图标的搜索框
                // 登录注册框
                loginTrue: true,
                Rtop1: 0,
                value: 'sdfdsf',
                // 注册用户对应的数据
                registerData: {
                    loginID: '',
                    pass: '',
                    checkPass: '',
                    cellphoneORmailbox: '',
                    verifyCode: ''
                },
                // 登录用户账号
                loginData: {
                    // 账号
                    loginID: '',
                    pass: ''
                },
                // 重置密码
                resetDataPass: {
                    cellphoneORmailbox: '',
                    verifyCode: "",
                    newPass: "",
                    checkPass: ""
                },
                // 修改密码
                amendDataPass: {
                    loginID: '',
                    originalPass: "",
                    newPass: "",
                    checkPass: ""
                },
                // 书籍数据
                listData: [{
                        name: '中医人物数据库',
                        id: 1,
                    }, {
                        name: '世医医家数据库',
                        id: 2,
                    }, {
                        name: '中医学术流派',
                        id: 3,
                    }, {
                        name: '中医地域医谱',
                        id: 4,
                    }, {
                        name: '中医医事制度',
                        id: 5,
                    },
import { nextTick } from "vue";
import { getlogout } from "@/api/index.js";
import Footer1 from "@/components/footer/footer.vue";
export default {
  components: {
    Footer1
  },
  data() {
    return {
      isCommand: true,
      // 搜索的显示
      isSearchTrue: true,
      isExpanded: false, // 控制搜索框是否展开
      searchInput: "", //小图标的搜索框
      // 登录注册框
      loginTrue: true,
      Rtop1: 0,
      value: "sdfdsf",
      // 注册用户对应的数据
      registerData: {
        loginID: "",
        pass: "",
        checkPass: "",
        cellphoneORmailbox: "",
        verifyCode: ""
      },
      // 登录用户账号
      loginData: {
        // 账号
        loginID: "",
        pass: ""
      },
      // 重置密码
      resetDataPass: {
        cellphoneORmailbox: "",
        verifyCode: "",
        newPass: "",
        checkPass: ""
      },
      // 修改密码
      amendDataPass: {
        loginID: "",
        originalPass: "",
        newPass: "",
        checkPass: ""
      },
      // 书籍数据
      listData: [
        {
          name: "中医人物数据库",
          id: 1
        },
        {
          name: "世医医家数据库",
          id: 2
        },
        {
          name: "中医学术流派",
          id: 3
        },
        {
          name: "中医地域医谱",
          id: 4
        },
        {
          name: "中医医事制度",
          id: 5
        }
      ]
    };
  },
  onLoad() {
                ]
            }
        },
        onLoad() {
            // console.log(,';dsfdsf');
            uni.getSystemInfo({
                success: function(info) {
                    // console.log('屏幕的宽度:' + info.windowWidth);
                    // console.log('屏幕的高度:' + info.windowHeight);
                }
            });
        },
        mounted() {
            this.getElementWidth();
                // this.$store.commit('set_id',1)
        },
        methods: {
            // 搜索
            onSearch(val) {
                uni.navigateTo({
                    url: '/pages/knowledgeBase/knowledgeBase?keyword=' + val.text
                })
            },
            // 搜索
            // 切换搜索框的展开和收起状态
            toggleSearch() {
                this.isExpanded = !this.isExpanded;
                this.$nextTick(() => {
                    if (this.searchInput.trim() !== '') {
                        uni.navigateTo({
                            url: '/pages/knowledgeBase/knowledgeBase?keyword=' + this.searchInput
                        })
                    } else {
                        console.log('不搜索');
                    }
                    this.searchInput = '';
                })
            },
            // 列表项跳转
            listDataClick(item) {
                console.log(item);
                // 在当前页面设置全局变量
                // uni.setStorageSync('globalData', { id: 123, name: 'example' });
                if (item.id == 1) {
                    uni.navigateTo({
                        // url: '/pages/character/detail?id=' + item.id
                        url: '/pages/character/index?id=' + item.id
                    })
                } else if (item.id == 2) {
                    console.log(item.name);
                    uni.navigateTo({
                        url: '/pages/inherit/index?id=' + item.id
                    })
                    // uni.navigateTo({
                    //     url: '/pages/shiyiHome/shiyiHome'
                    // })
                } else if (item.id == 3) {
                    uni.navigateTo({
                        url: '/pages/academicGenres/index?id=' + item.id
                    })
                } else if (item.id == 4) {
                    uni.navigateTo({
                        url: '/pages/territory/territory?id=' + item.id
                    })
                } else if (item.id == 5) {
                    uni.navigateTo({
                        url: '/pages/TcmSystem/TcmSystem?id=' + item.id
                    })
                }
    uni.getSystemInfo({
      success: function (info) {
        // console.log('屏幕的宽度:' + info.windowWidth);
        // console.log('屏幕的高度:' + info.windowHeight);
      }
    });
  },
  mounted() {
    this.getElementWidth();
    // this.$store.commit('set_id',1)
  },
  methods: {
    // 搜索
    onSearch(val) {
      uni.navigateTo({
        url: "/pages/knowledgeBase/knowledgeBase?keyword=" + val.text
      });
    },
    // 搜索
    // 切换搜索框的展开和收起状态
    toggleSearch() {
      this.isExpanded = !this.isExpanded;
      this.$nextTick(() => {
        if (this.searchInput.trim() !== "") {
          uni.navigateTo({
            url:
              "/pages/knowledgeBase/knowledgeBase?keyword=" + this.searchInput
          });
        }
        this.searchInput = "";
      });
    },
    // 列表项跳转
    listDataClick(item) {
      // 在当前页面设置全局变量
      // uni.setStorageSync('globalData', { id: 123, name: 'example' });
      if (item.id == 1) {
        uni.navigateTo({
          // url: '/pages/character/detail?id=' + item.id
          url: "/pages/character/index?id=" + item.id
        });
      } else if (item.id == 2) {
        uni.navigateTo({
          url: "/pages/inherit/index?id=" + item.id
        });
        // uni.navigateTo({
        //     url: '/pages/shiyiHome/shiyiHome'
        // })
      } else if (item.id == 3) {
        uni.navigateTo({
          url: "/pages/academicGenres/index?id=" + item.id
        });
      } else if (item.id == 4) {
        uni.navigateTo({
          url: "/pages/territory/territory?id=" + item.id
        });
      } else if (item.id == 5) {
        uni.navigateTo({
          url: "/pages/TcmSystem/TcmSystem?id=" + item.id
        });
      }
    },
            },
            // 验证码校验
            validateVerificationCode(rule, value, callback) {
                if (value !== '123456') {
                    callback(new Error('验证码错误'));
                } else {
                    callback();
                }
            },
            getElementWidth() {
                this.$nextTick(() => {
                    var width = this.$refs.Rtop.$el.clientWidth;
                    this.Rtop1 = width + 50;
                    console.log('Element width:', width);
                })
            },
            iconClick(index) {
                console.log(index);
                // 搜索的显示
                if (index == 1) {
                    // this.isSearchTrue = !this.isSearchTrue
                } else if (index == 2) {
                    // 检查 localStorage 中是否存在 token
                    if (localStorage.getItem('access_token')) {
                        // token 存在
                        console.log('access_token');
                        this.isCommand = true
                    } else {
                        // token 不存在
                        // console.log('Token does not exist.');
                        this.isCommand = false
                        uni.navigateTo({
                            url: '/pages/Login/Login'
                        })
                    }
                } else if (index == 3) {
                    console.log('帮助');
                }
            },
            // 修改获取退出按钮
            handleCommand(int) {
                if (int == 1) {
                    console.log('修改密码');
                    uni.navigateTo({
                        url: '/pages/changePassword/changePassword'
                    })
                } else if (int == 2) {
                    // console.log('退出登录');
                    uni.showModal({
                        // 询问用户是否退出登录
                        title: '退出登录',
                        content: '您确定要退出登录吗?',
                        success: async (res) => {
                            console.log(res, 'reresresrer');
                            if (res.confirm) {
                                // 退出接口
                                await getlogout().then(res => {
                                    //确定退出拿到token并清除token
                                    let TOKEN = uni.getStorageSync('缓存名称');
                                    uni.clearStorageSync();
                                    //退出成功!并跳转到其他页面
                                    uni.showToast({
                                        title: '退出成功',
                                        icon: 'none',
                                    });
                                })
                                // setTimeout(() => {
                                //     uni.reLaunch({
                                //         url: '退出后跳转地址',
                                //     });
                                // }, 1500);
                            } else if (res.cancel) {
                                // console.log('用户点击取消');
                                uni.showToast({
                                    title: '用户点击取消',
                                    icon: 'none',
                                });
                            }
                        },
                    });
                }
            },
        }
    }
    // 验证码校验
    validateVerificationCode(rule, value, callback) {
      if (value !== "123456") {
        callback(new Error("验证码错误"));
      } else {
        callback();
      }
    },
    getElementWidth() {
      this.$nextTick(() => {
        var width = this.$refs.Rtop.$el.clientWidth;
        this.Rtop1 = width + 50;
      });
    },
    iconClick(index) {
      // 搜索的显示
      if (index == 1) {
        // this.isSearchTrue = !this.isSearchTrue
      } else if (index == 2) {
        // 检查 localStorage 中是否存在 token
        if (localStorage.getItem("access_token")) {
          // token 存在
          this.isCommand = true;
        } else {
          // token 不存在
          this.isCommand = false;
          uni.navigateTo({
            url: "/pages/Login/Login"
          });
        }
      } else if (index == 3) {
        console.log("帮助");
      }
    },
    // 修改获取退出按钮
    handleCommand(int) {
      if (int == 1) {
        uni.navigateTo({
          url: "/pages/changePassword/changePassword"
        });
      } else if (int == 2) {
        uni.showModal({
          // 询问用户是否退出登录
          title: "退出登录",
          content: "您确定要退出登录吗?",
          success: (res) => {
            if (res.confirm) {
              // 退出接口
              getlogout().then((res) => {
                //确定退出拿到token并清除token
                let TOKEN = uni.getStorageSync("缓存名称");
                uni.clearStorageSync();
                //退出成功!并跳转到其他页面
                this.$message.success("退出成功");
                uni.reLaunch({
                  url: "/pages/Login/Login"
                });
              });
            }
          }
        });
      }
    }
  }
};
</script>
<style scoped lang="scss">
    .search-logo {
        width: .34rem;
        /* logo图标的宽度 */
        height: .34rem;
        /* logo图标的高度 */
        margin-left: 10rpx;
        /* 与输入框之间的间距 */
        cursor: pointer;
        background-image: url(@/static/image/search.svg);
        background-size: 100% 100%;
    }
.search-logo {
  width: 0.34rem;
  /* logo图标的宽度 */
  height: 0.34rem;
  /* logo图标的高度 */
  margin-left: 10rpx;
  /* 与输入框之间的间距 */
  cursor: pointer;
  background-image: url(@/static/image/search.svg);
  background-size: 100% 100%;
}
    /*
/*
    在屏幕宽度超过 1440px 时的样式设置 */
    /* @media screen and (min-width: 1441px) {
/* @media screen and (min-width: 1441px) {
        ::v-deep .el-card {
            top: 60% !important;
        }
@@ -351,351 +410,341 @@
            height: 2.5rem !important;
        }
    } */
    @media screen and (min-width:2560px)and (max-width:3840px) {
        .Ttop {
            margin-bottom: .7rem !important;
            margin-top: .3rem !important;
        }
@media screen and (min-width: 2560px) and (max-width: 3840px) {
  .Ttop {
    margin-bottom: 0.7rem !important;
    margin-top: 0.3rem !important;
  }
        .login {
            width: .52rem !important;
            height: .52rem !important;
        }
  .login {
    width: 0.52rem !important;
    height: 0.52rem !important;
  }
        .LoginBg {
            margin: 0 !important;
            height: .3rem !important;
        }
  .LoginBg {
    margin: 0 !important;
    height: 0.3rem !important;
  }
        ::v-deep .Bbar img {
            width: .52rem !important;
            height: .52rem !important;
        }
  ::v-deep .Bbar img {
    width: 0.52rem !important;
    height: 0.52rem !important;
  }
        ::v-deep .el-card {
            top: 90% !important;
            padding: 0 !important;
        }
  ::v-deep .el-card {
    top: 90% !important;
    padding: 0 !important;
  }
        ::v-deep .el-card__body {
            padding: .25rem .5rem !important;
        }
  ::v-deep .el-card__body {
    padding: 0.25rem 0.5rem !important;
  }
        .Search ::v-deep .flex-center {
            height: 80% !important;
        }
  .Search ::v-deep .flex-center {
    height: 80% !important;
  }
        ::v-deep .searchBg {
            width: .35rem;
            height: .35rem;
            margin-right: .03rem;
        }
  ::v-deep .searchBg {
    width: 0.35rem;
    height: 0.35rem;
    margin-right: 0.03rem;
  }
        ::v-deep .ffff {
            border-radius: .3rem !important;
        }
  ::v-deep .ffff {
    border-radius: 0.3rem !important;
  }
        ::v-deep .searchBg {
            border-radius: inherit !important;
        }
  ::v-deep .searchBg {
    border-radius: inherit !important;
  }
        ::v-deep .uni-input-placeholder {
            font-size: .14rem;
            height: 100%;
            display: flex;
            align-content: center;
            align-items: center;
        }
  ::v-deep .uni-input-placeholder {
    font-size: 0.14rem;
    height: 100%;
    display: flex;
    align-content: center;
    align-items: center;
  }
        ::v-deep .el-form {
            padding-left: .1rem !important;
        }
  ::v-deep .el-form {
    padding-left: 0.1rem !important;
  }
        ::v-deep .el-form-item__error {
            font-size: .13rem !important;
        }
  ::v-deep .el-form-item__error {
    font-size: 0.13rem !important;
  }
        ::v-deep .el-input__inner {
            height: .35rem !important;
            font-size: .14rem;
        }
  ::v-deep .el-input__inner {
    height: 0.35rem !important;
    font-size: 0.14rem;
  }
        ::v-deep .el-form-item__label {
            display: flex;
            align-items: center;
            justify-content: flex-end;
            margin-right: .2rem !important;
            width: .7rem;
        }
  ::v-deep .el-form-item__label {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-right: 0.2rem !important;
    width: 0.7rem;
  }
  .secretary li {
    width: 1.3rem !important;
    height: 4rem !important;
        .secretary li {
            width: 1.3rem !important;
            height: 4rem !important;
    span {
      width: 0.5rem !important;
      height: 70% !important;
      font-size: 0.25rem !important;
    }
  }
            span {
                width: .5rem !important;
                height: 70% !important;
                font-size: 0.25rem !important;
            }
        }
  .hua {
    height: 5rem !important;
  }
        .hua {
            height: 5rem !important;
        }
  .LoginTop {
    margin-bottom: 0.4rem !important;
  }
        .LoginTop {
            margin-bottom: .4rem !important;
        }
  .yzm {
    top: 15% !important;
  }
        .yzm {
            top: 15% !important;
        }
  .fff {
    width: 2.4rem !important;
    height: 4rem !important;
  }
        .fff {
            width: 2.4rem !important;
            height: 4rem !important;
        }
  .rrr {
    width: 2rem !important;
  }
        .rrr {
            width: 2rem !important;
        }
  .btn {
    margin-bottom: 0.1rem !important;
  }
        .btn {
            margin-bottom: .1rem !important;
        }
  .btn ::v-deep .el-button {
    margin-top: 0.2rem !important;
    font-size: 0.2rem !important;
    width: 100%;
    padding: 0.12rem !important;
        .btn ::v-deep .el-button {
            margin-top: 0.2rem !important;
            font-size: 0.2rem !important;
            width: 100%;
            padding: 0.12rem !important;
    span {
      font-weight: bold !important;
    }
  }
            span {
                font-weight: bold !important;
            }
        }
  .asdf {
    margin-bottom: 0.1rem !important;
  }
}
        .asdf {
            margin-bottom: .1rem !important;
        }
    }
@media screen and (min-width: 1366px) {
  .Ttop {
    margin-bottom: 0.6rem !important;
  }
    @media screen and (min-width:1366px) {
        .Ttop {
            margin-bottom: .6rem !important;
        }
  ::v-deep .uni-input-placeholder {
    font-size: 0.14rem;
    height: 100%;
    display: flex;
    align-content: center;
    align-items: center;
  }
        ::v-deep .uni-input-placeholder {
            font-size: .14rem;
            height: 100%;
            display: flex;
            align-content: center;
            align-items: center;
        }
  .secretary li {
    width: 1.3rem !important;
    height: 4rem !important;
        .secretary li {
            width: 1.3rem !important;
            height: 4rem !important;
    span {
      width: 0.5rem !important;
      height: 70% !important;
      font-size: 0.25rem !important;
    }
  }
            span {
                width: .5rem !important;
                height: 70% !important;
                font-size: 0.25rem !important;
            }
        }
  /* 高级搜索 */
  .Search ::v-deep .flex-center {
    height: 80% !important;
  }
        /* 高级搜索 */
        .Search ::v-deep .flex-center {
            height: 80% !important;
        }
  ::v-deep .searchBg {
    width: 0.35rem;
    height: 0.35rem;
    margin-right: 0.03rem;
  }
        ::v-deep .searchBg {
            width: .35rem;
            height: .35rem;
            margin-right: .03rem;
        }
  .fff {
    width: 2.4rem !important;
    height: 4rem !important;
  }
        .fff {
            width: 2.4rem !important;
            height: 4rem !important;
        }
  .rrr {
    width: 2rem !important;
  }
}
        .rrr {
            width: 2rem !important;
        }
    }
    .btn>>>.el-form-item__content {
        margin-left: 0 !important;
    }
    ::v-deep .el-form-item__label {
        color: #244a7b;
    }
    ::v-deep .el-input__inner {
        border: none;
        border-bottom: 1px solid #2d476a;
        border-radius: 0;
    }
    ::v-deep .el-form-item__error {
        /* display: none; */
    }
    ::v-deep .input.invalid:focus {
        border-color: #2d476a !important;
    }
    ::v-deep .el-input__inner:invalid {
        border-color: #2d476a !important;
    }
.btn >>> .el-form-item__content {
  margin-left: 0 !important;
}
    ::v-deep .el-form-item__label {
        padding: 0;
    }
::v-deep .el-form-item__label {
  color: #244a7b;
}
    ::v-deep .el-form-item__label {
        color: #2d476a;
    }
::v-deep .el-input__inner {
  border: none;
  border-bottom: 1px solid #2d476a;
  border-radius: 0;
}
    ::v-deep .el-form-item {
        margin-bottom: 32rpx;
    }
::v-deep .el-form-item__error {
  /* display: none; */
}
    .ss1 {
        background-repeat: no-repeat;
        background-size: 100% 100%;
        width: .34rem;
        height: .34rem;
        background-size: 100% 100%;
    }
::v-deep .input.invalid:focus {
  border-color: #2d476a !important;
}
    .s1 {
        background-image: url(@/static/image/search.svg);
::v-deep .el-input__inner:invalid {
  border-color: #2d476a !important;
}
    }
::v-deep .el-form-item__label {
  padding: 0;
}
    .s2 {
        background-image: url(@/static/image/profile.svg);
    }
::v-deep .el-form-item__label {
  color: #2d476a;
}
    .s3 {
        background-image: url(@/static/image/quote.svg);
        margin-right: .59rem !important;
    }
::v-deep .el-form-item {
  margin-bottom: 32rpx;
}
    .container {
        background: url(@/static/image/bg1.png);
        width: 100vw;
        height: 100vh;
.ss1 {
  background-repeat: no-repeat;
  background-size: 100% 100%;
  width: 0.34rem;
  height: 0.34rem;
  background-size: 100% 100%;
}
        color: #fff;
.s1 {
  background-image: url(@/static/image/search.svg);
}
        .repository {
            width: 100% !important;
            /* margin-top: 19px; */
            /* height: 68%; */
            display: flex;
            flex-direction: column;
            justify-content: space-around;
            align-items: center;
.s2 {
  background-image: url(@/static/image/profile.svg);
}
            .Ttop {
                margin-top: .38rem;
                margin-bottom: 1.22rem;
            }
.s3 {
  background-image: url(@/static/image/quote.svg);
  margin-right: 0.59rem !important;
}
            .r-top {
                font-size: 40rpx !important;
                margin: 10rpx 0;
            }
        }
.container {
  background: url(@/static/image/bg1.png);
  width: 100vw;
  height: 100vh;
    }
  color: #fff;
    .login {
        width: .52rem;
        height: .52rem;
        display: inline-block;
        vertical-align: middle;
        margin-right: .2rem;
        background: url(@/static/image/logo.png) no-repeat 0 0;
        background-size: 100% 100%;
    }
  .repository {
    width: 100% !important;
    /* margin-top: 19px; */
    /* height: 68%; */
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    align-items: center;
    .rrr {
        position: absolute;
        right: .53rem;
        bottom: .36rem;
        width: 2.5rem;
        height: 3.07rem;
        opacity: 1;
        background: url(@/static/image/bg4.png);
        background-size: 100% 100%;
    }
    .Ttop {
      margin-top: 0.38rem;
      margin-bottom: 1.22rem;
    }
    .hua {
        width: 13.81rem;
        height: 5.965rem;
        position: absolute;
        background: url(@/static/image/bg3.png) no-repeat 0 0;
        background-size: 100% 100%;
    }
    .r-top {
      font-size: 40rpx !important;
      margin: 10rpx 0;
    }
  }
}
    /* 底部人物背景图  */
    .fff {
        background: url(@/static/image/bg2.png) no-repeat 0 0;
        background-size: 100% 100%;
        width: 2.74rem;
        height: 4.52rem;
        position: fixed;
        bottom: 0;
        z-index: 9999999999999;
        left: 0;
    }
.login {
  width: 0.52rem;
  height: 0.52rem;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.2rem;
  background: url(@/static/image/logo.png) no-repeat 0 0;
  background-size: 100% 100%;
}
    ::v-deep .uni-easyinput__content {
        border-radius: 30rpx !important;
        /* height: 52rpx; */
    }
.rrr {
  position: absolute;
  right: 0.53rem;
  bottom: 0.36rem;
  width: 2.5rem;
  height: 3.07rem;
  opacity: 1;
  background: url(@/static/image/bg4.png);
  background-size: 100% 100%;
}
.hua {
  width: 13.81rem;
  height: 5.965rem;
  position: absolute;
  background: url(@/static/image/bg3.png) no-repeat 0 0;
  background-size: 100% 100%;
}
    .secretary {
        /* width: 1300rpx !important; */
        /* height: 50rpx; */
        /* height: 80%; */
        /* flex-wrap: wrap; */
        padding: 0 20px;
        text-align: center;
/* 底部人物背景图  */
.fff {
  background: url(@/static/image/bg2.png) no-repeat 0 0;
  background-size: 100% 100%;
  width: 2.74rem;
  height: 4.52rem;
  position: fixed;
  bottom: 0;
  z-index: 9999999999999;
  left: 0;
}
        li {
            background-color: #fff;
            color: black;
            width: 1.6rem;
            height: 4.8rem;
            display: flex;
            justify-content: center;
            flex-direction: column;
            align-items: center;
            text-align: center;
            background: #EBF4FF;
            font-weight: 600;
            margin: 0 .21rem;
            cursor: pointer;
        }
    }
::v-deep .uni-easyinput__content {
  border-radius: 30rpx !important;
  /* height: 52rpx; */
}
.secretary {
  /* width: 1300rpx !important; */
  /* height: 50rpx; */
  /* height: 80%; */
  /* flex-wrap: wrap; */
  padding: 0 20px;
  text-align: center;
  li {
    background-color: #fff;
    color: black;
    width: 1.6rem;
    height: 4.8rem;
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    text-align: center;
    background: #ebf4ff;
    font-weight: 600;
    margin: 0 0.21rem;
    cursor: pointer;
  }
}
    /*     .Bbottom {
/*     .Bbottom {
        display: flex;
        justify-content: center;
    
    } */
</style>
</style>
src/pages/inherit/index.vue
@@ -1,5 +1,5 @@
<template>
  <view class="">
  <view >
    <headNav
      idIndex="2"
      :searchBg="false"
@@ -111,7 +111,6 @@
  },
  onLoad(options) {
    this.idIndex = options.id;
    console.log("optionsoptionsoptions", options.id);
  },
  mounted() {
    this.getStatistics();
@@ -127,7 +126,7 @@
    getData() {
      this.nodeData = [];
      // const defaultDynasty = this.dynasty.find(f.dynasty == "宋");
      this.showTool = false;
      inheritMedicalList({
        keywords: this.keyword,
        dynastyId: this.activeId,
@@ -252,7 +251,6 @@
        }
      });
      myChart.on("click", (params) => {
        console.log(params.event.offsetX, params.event.offsetY);
        if (params.componentType === "series") {
          this.showTool = true;
          this.toolTop = params.event.offsetY + "px";
@@ -400,11 +398,11 @@
  border: none;
  outline: none;
  margin: auto;
  width: 100%;
  flex: 1;
  overflow: hidden;
  padding-left: 20px;
}
.searchBox > button {
  width: 10%;
  color: white;
  height: 40px;
  line-height: 40px;
src/pages/inherit/list.vue
@@ -87,7 +87,7 @@
        v-if="!culture1 && !culture2 && !culture3"
        style="color: #666; text-align: center; font-size: 16px"
      >
        暂无数据
        世医文化无数据
      </div>
    </view>
  </view>
@@ -132,7 +132,6 @@
        identifier: this.idIndex,
        socialFlag: true
      }).then((res) => {
        console.log(res);
        let data = res.object;
        // 处理节点颜色
        this.links = [];
@@ -195,8 +194,6 @@
            }
          };
        });
        console.log(this.dataList);
        console.log(this.links);
        this.initBarChart(this.dataList, this.links);
      });
@@ -204,9 +201,9 @@
      inheritMedicalCultureList({
        identifier: this.idIndex
      }).then((res) => {
        this.culture1 = res.list.find(item=>item.typeName == "家风")
        this.culture2 = res.list.find(item=>item.typeName == "医德")
        this.culture3 = res.list.find(item=>item.typeName == "家训")
        this.culture1 = res.list.find((item) => item.typeName == "家风");
        this.culture2 = res.list.find((item) => item.typeName == "医德");
        this.culture3 = res.list.find((item) => item.typeName == "家训");
      });
    },
    showSocialMapping() {
@@ -338,6 +335,9 @@
  height: 0.24rem;
  font-size: 0.12rem;
  padding: 0;
  border: 1px solid #9e9e9e;
  border-radius: 0;
  color: #000;
}
.barChart {
  width: 100vw;
src/pages/knowledgeBase/knowledgeBase.vue
@@ -7,7 +7,7 @@
      <!-- <luanqing-search class="search_bar" @onSearch="onSearch"></luanqing-search> -->
      <advancedSearch
        @onSearch="onSearch"
        placehold="输入姓名/别名/时期/传主职业搜索"
        placehold="输入姓名/别名/朝代/传主职业搜索"
        :isAvancedTrue="false"
        :keyword="keywords"
      />
@@ -15,7 +15,7 @@
        class="advancedSea"
        @click="isAvancedClick"
        style="color: #244a7b; cursor: pointer"
        >高级搜索 ∨</view
        >高级搜索 {{isAdvancedSearch ? "∧" : "∨"}}</view
      >
    </view>
    <!-- 热门搜索 -->
@@ -84,8 +84,8 @@
              style="padding: 0 20rpx; line-height: 0.3rem; height: 0.3rem"
              @click="handInstitCLick(item, 'a')"
            >
              <view class="">{{ item.tagName }}</view>
              <view class="">{{ item.count }}</view>
              <view >{{ item.tagName }}</view>
              <view >{{ item.count }}</view>
            </li>
          </ul>
          <view v-if="profession.list.length - 1 > 3" class="flex flex-center">
@@ -122,8 +122,8 @@
              style="padding: 0 20rpx"
              @click="handInstitCLick(item, 'b')"
            >
              <view class="">{{ item.dynastyName }}</view>
              <view class="">{{ item.count }}</view>
              <view >{{ item.dynastyName }}</view>
              <view >{{ item.count }}</view>
            </li>
          </ul>
          <view v-if="dynasty.list.length - 1 > 3" class="flex flex-center">
@@ -160,7 +160,7 @@
              style="padding: 0 20rpx; color: #244a7b"
              @click="handInstitCLick(item, 'c')"
            >
              <view class="">{{ index + 1 + ". " + item.source }}</view>
              <view >{{ index + 1 + ". " + item.source }}</view>
            </li>
          </ul>
          <!--     <view class="flex flex-center">
@@ -182,10 +182,10 @@
        "
      >
        <view class="flex lightTop" style="width: 100%; margin: 0.1rem 0">
          <view class="" style="color: #2c2c2c">共{{ total }}条</view>
          <view  style="color: #2c2c2c">共{{ total }}条</view>
          <el-button size="small" @click="exportClick">下载</el-button>
        </view>
        <el-table :data="tableData" class="lightBo" style="width: 100%">
        <el-table :data="tableData" class="lightBo" style="width: 100%" empty-text="暂无搜索信息">
          <el-table-column prop="id" label="序号" width="110"></el-table-column>
          <el-table-column prop="personName" label="姓名"></el-table-column>
          <el-table-column prop="personAlias" label="别名"></el-table-column>
@@ -194,7 +194,7 @@
            label="性别"
            width="70"
          ></el-table-column>
          <el-table-column prop="period" label="时期"></el-table-column>
          <el-table-column prop="period" label="时代"></el-table-column>
          <el-table-column
            prop="birthYear"
            label="生年"
@@ -322,7 +322,7 @@
          },
          {
            type: "input",
            label: "时期",
            label: "时间",
            name: "dynasty",
            value: "",
          },
@@ -350,7 +350,7 @@
      activeBox: null,
      // 时期
      dynasty: {
        title: "时期",
        title: "时代",
        id: "",
        index: "",
        list: [],
@@ -386,7 +386,6 @@
    };
  },
  onLoad(options) {
    console.log(options.keyword);
    this.onSearch({ text: options.keyword });
  },
  mounted() {
@@ -407,7 +406,6 @@
    // 下载按钮
    async exportClick() {
      const dataList = this.tableData;
      console.log(this.keywords, "keywords");
      let Obj = {
        keywords: "", //搜索框检索
        // keywords: this.keywords, //搜索框检索
@@ -424,12 +422,9 @@
        page: 1,
        pageSize: 1,
      };
      console.log(Obj, "Obj");
      // // 搜索
      await getPDownload(Obj).then((res) => {
        console.log(res, "exportClick");
        // if (res.success) {
        //   console.log(res, "搜索接口");
        //   this.tableData = res.list;
        //   // 总数量
        //   this.total = res.npage.totalCount;
@@ -499,7 +494,6 @@
    async getStatistics() {
      // 热门搜索
      await getHotSearch().then((res) => {
        console.log(res, "热门搜索");
        this.hot = Object.keys(res.object).map((key) => {
          return {
            id: parseInt(key),
@@ -509,7 +503,6 @@
      });
      // 右侧职业、时期、来源的数据
      await getPDataStatistics().then((res) => {
        console.log(res, "接口成功sdsdfsdsfs");
        let totalCount1 = res.object.occupationStatistic.details.reduce(
          (total, item) => total + item.count,
          0
@@ -554,7 +547,6 @@
    // 热门搜索
    hotSearchClick(item) {
      this.onSearch({ text: item.name });
      console.log(item, "热门搜索");
    },
    // 左侧的机构统计等等按钮
    handInstitCLick(item, name) {
@@ -570,16 +562,13 @@
        this.dynasty.index = item.dynastyId;
        this.dynasty.id = item.dynastyId;
        this.CurrentPage = 1;
        console.log(item);
      } else if (name == "c") {
        this.source.index = item.bookId;
        this.source.id = item.bookId;
        this.CurrentPage = 1;
        console.log("来源");
      }
      this.onSearch("");
      console.log(item, name);
    },
    isAvancedClick() {
      this.isAdvancedSearch = !this.isAdvancedSearch;
@@ -594,7 +583,6 @@
    },
    // 高级搜索
    async onSubmit(val) {
      console.log(val);
      this.profession.index = Number(val.tagId);
      this.profession.id = Number(val.tagId);
      const currentDynasty = this.dynasty.list.find(
@@ -623,15 +611,12 @@
      };
      // // 搜索
      await getPersonList(Obj).then((res) => {
        console.log(res);
        if (res.success) {
          console.log(res, "搜索接口");
          this.tableData = res.list;
          // 总数量
          this.total = res.npage.totalCount;
        }
      });
      console.log(val);
    },
    // 基础搜索
    async onSearch(val) {
@@ -651,38 +636,30 @@
        page: this.CurrentPage,
        pageSize: this.pageSize,
      };
      console.log(Obj, "ObjObjObj");
      // // 搜索
      await getPersonList(Obj).then((res) => {
        if (res.success) {
          console.log(res, "搜索接口");
          this.tableData = res.list;
          // 总数量
          this.total = res.npage.totalCount;
        }
      });
      // console.log(val, '士大夫但是');
    },
    // 热门搜索
    HotClick(id) {
      this.hot.forEach((item) => {
        if (item.id === id) {
          console.log(item.id === id);
          item.bgColor = true;
        } else {
          console.log(item.id === id);
          item.bgColor = false;
        }
      });
    },
    // 展开收缩
    shrinkClick(box, name) {
      console.log(box);
      console.log(this.dynasty.list);
      // this.activeBox = this.activeBox === 'a' ? null : 'a';
      if (name == "职业") {
        console.log("职业");
        this.professionIndex =
          this.professionIndex < this.profession.list.length
            ? this.profession.list.length
@@ -690,7 +667,6 @@
        this.dynastyIndex = 4;
        this.activeBox = this.activeBox === "a" ? null : "a";
      } else {
        console.log("时期");
        this.dynastyIndex =
          this.dynastyIndex < this.dynasty.list.length
            ? this.dynasty.list.length
@@ -703,7 +679,6 @@
    CurrentChange(val) {
      if (this.CurrentPage != val) {
        this.CurrentPage = val;
        console.log("当前页", val);
        this.onSearch("");
      }
    },
@@ -711,17 +686,13 @@
    PrevClick(val) {
      if (this.CurrentPage != val) {
        this.CurrentPage = val;
        // console.log('上一页', val);
        // console.log(this.CurrentPage);
        this.onSearch("");
      }
    },
    // 下一页
    NextClick(val) {
      if (this.CurrentPage != val) {
        // console.log('下一页',val);
        this.CurrentPage = val;
        // console.log(this.CurrentPage);
        this.onSearch("");
      }
    },
src/pages/repository/repository.vue
@@ -4,7 +4,7 @@
        <view class="Midde flex">
            <el-button class="MiddeBack flex flex-center" @click="goBack">返回</el-button>
            <view style="width: 70%;" class="flex flex-center flex-column">
                <view class="" style="font-weight: bold;font-size: .20rem;">李时珍</view>
                <view  style="font-weight: bold;font-size: .20rem;">李时珍</view>
                <ul class="flex" style="line-height: 1.2;margin: .15rem 0 ;">
                    <li v-for="item in 4"
                        style="background-color: #fff; padding: 0 .08rem ;  border: .01rem solid #000;border-radius:.1rem ;font-size: .12rem;text-align: center;margin-right: .15rem;">
@@ -16,15 +16,15 @@
                    东璧,时人谓之:李东璧。号濒湖,晚年自号濒湖山人,湖北薪州(今湖北省黄冈市薪春县薪州镇)人,汉族,生于明武宗正德十三年(公元1518年),卒于神宗万历二十二年(公元1593年)。是中国明代与万密斋齐名的医学家、药物学家、博物学家、著述家。李时珍对道家医学的继承是多方面的,曾参考历代有关医药及其学术书籍八百余种,结合自身经验和调查研究,历时27年编成《本草纲目》一书,是我国古代药物学的总结性巨著,在国内外均有很高的评价,已有几种文字的译本或节译本,其著有《濒湖脉学》
                </view>
                <view class="flex" style="width: 100%;margin: .25rem 0 .15rem 0;">
                    <view class="">
                    <view >
                        <!-- <el-button style="padding: 10rpx;" size="mini" icon="el-icon-folder-add">收藏</el-button> -->
                        <el-button style="padding: .05rem .085rem;" class="yinyong flex">
                            <img src="@/static/image/yinyong.png" alt="" />引用</el-button>
                    </view>
                    <view class="" style="font-size: .12rem;color: #244A7B;" @click="ProfileClick">阅读更多></view>
                    <view  style="font-size: .12rem;color: #244A7B;" @click="ProfileClick">阅读更多></view>
                </view>
            </view>
            <view class="" style="width: 5%;"></view>
            <view  style="width: 5%;"></view>
        </view>
        <el-row style="padding: 0 1.2rem 0;padding-top: .24rem;">
            <!-- 左侧 -->
@@ -123,15 +123,15 @@
            <view class="ProfileNav flex flex-center">
                个人小传
            </view>
            <view class="" style="padding: .44rem .3rem;min-height: 7.32rem;">
                <view class=""
            <view  style="padding: .44rem .3rem;min-height: 7.32rem;">
                <view
                    style="margin-bottom: .2rem; background-color: #F0F0F0;padding: .18rem .1rem .1rem .27rem;font-size: .12rem;line-height: .24rem;font-weight: 400;">
                    <view class="" style="color: #2C2C2C;">
                    <view  style="color: #2C2C2C;">
                        蕙展丁丑同里日岩额序先考月池翁著《四彭酸明》八卷,皆精指奥室,茂犀未能疯造,珍因撮粹想菜,僵撰此唐,以便智睛,服指南。世之雷病雨家,咸以服焉首务,不知派乃四能之末,谓之巧者雨。上士欲舍其全,非四不可。
                    </view>
                    <view class="flex">
                        <view class=""></view>
                        <view class="" style="font-weight: 700;color: #2C2C2C;">——《奇八服考》P 3</view>
                        <view ></view>
                        <view  style="font-weight: 700;color: #2C2C2C;">——《奇八服考》P 3</view>
                    </view>
                </view>
            </view>
@@ -258,7 +258,6 @@
        },
        onLoad(options) {
            this.idIndex = options.id
            console.log('optionsoptionsoptions', options.id);
        },
        mounted() {
@@ -272,7 +271,6 @@
                // 获取第一个选项卡的 DOM 元素
                const firstTab = this.$refs.tabs.$el.querySelector('.el-tabs__active-bar');
                firstTab.style.transform = 'translateX(' + '-.2rem' + ')'
                console.log(firstTab);
            });
@@ -282,9 +280,7 @@
        methods: {
            // 放大地图跳转
            fangdaClick(index) {
                console.log(index);
                if (index == 1) {
                    console.log('跳转关系地图');
                    uni.navigateTo({
                        url: '/pages/character/index'
                    })
@@ -292,7 +288,6 @@
                    uni.navigateTo({
                        url: '/pages/characterMap/characterMap'
                    })
                    console.log('跳转时空地图');
                }
            },
            // 小传
@@ -305,7 +300,6 @@
            },
            // 返回顶部
            scrollToTop() {
                console.log('ss');
                window.scrollTo({
                    top: 0,
                    behavior: "smooth" // 使用平滑滚动
@@ -316,7 +310,6 @@
                this.$nextTick(() => {
                    let firstTab = this.$refs.tabs.$el.querySelector('.el-tabs__active-bar');
                    if (index == 0) {
                        console.log('sss');
                        firstTab.style.transform = 'translateX(-' + .2 + 'rem)'
                    } else if (index == 1) {
                        firstTab.style.transform = 'translateX(' + .85 * index + 'rem)'
@@ -330,7 +323,6 @@
                        let firstTab = this.$refs.tabs.$el.querySelector('.el-tabs__active-bar');
                        firstTab.style.transform = 'translateX(' + '-.2' + 'rem)'
                    }
                    // console.log(firstTab);
                })
            },
            // 关系图谱
@@ -372,7 +364,6 @@
                    }
                });
                console.log(links);
                let FontSize = 12; // 字体大小
                let BorderWidth = 2; // 边框大小
                let SymbolSize = 80; // 尺寸距离
src/pages/territory/territory.vue
@@ -19,7 +19,7 @@
            @click="SchoolClick(item.id)"
            class="flex flex-center font-family school"
            :style="{
              marginRight: index === dynasty.length - 1 ? '0' : '0.03rem',
              marginRight: index === dynasty.length - 1 ? '0' : '0.03rem'
            }"
            style="
              font-weight: 500;
@@ -33,7 +33,6 @@
            "
          >
            <view
              class=""
              :style="{ background: item.color }"
              style="
                margin-right: 0.07rem;
@@ -42,7 +41,7 @@
                border-radius: 50%;
              "
            ></view>
            <view class="" style="color: #2c2c2c; font-size: 0.12rem">{{
            <view style="color: #2c2c2c; font-size: 0.12rem">{{
              item.name
            }}</view>
          </view>
@@ -76,7 +75,7 @@
          >关闭</el-button
        >
      </div>
      <view class="" style="overflow: auto; height: 2.5rem">
      <view style="overflow: auto; height: 2.5rem">
        <ul
          class="information"
          v-for="(item, index) in SearchArr"
@@ -155,7 +154,9 @@
        position: fixed;
        bottom: 0.33rem;
        left: 0;
        right: 0;
        z-index: 99;
        overflow: auto;
      "
    >
      <ul class="flex">
@@ -173,9 +174,10 @@
          <view
            class="flex flex-center font-family"
            style="
              padding: 0.05rem 0.19rem;
              min-width: 0.6rem;
              height: 0.3rem;
              line-height: 0.3rem;
              text-align: center;
              color: #fff;
              font-size: 0.14rem;
              margin-top: 0.03rem;
@@ -184,7 +186,7 @@
            "
            :style="{
              marginRight: index === dynasty1.length - 1 ? '0' : '0.03rem',
              background: dynasty1Color == item.id ? '#244A7B' : '#597AA5',
              background: dynasty1Color == item.id ? '#244A7B' : '#597AA5'
            }"
          >
            {{ item.dynastyChs }}
@@ -216,25 +218,25 @@
      information: [
        {
          label: "姓名",
          content: "李时珍",
          content: "李时珍"
        },
        {
          label: "别名",
          content: "东丽先生",
          content: "东丽先生"
        },
        {
          label: "籍贯",
          content: "湖北",
          content: "湖北"
        },
        {
          label: "医学分科",
          content: "中药,针灸",
          content: "中药,针灸"
        },
        {
          label: "小传",
          content:
            "李时珍(约1518年~1593 年), 字东璧, 晚年自号濒湖山人, 湖广黄州府薪州(今湖北省薪春县) 人, 明代著名医药学家。 与“ 医圣” 万密斋齐名, 古有“ 万密斋的方, 李时珍的药” 之说。 后为楚干府...",
        },
            "李时珍(约1518年~1593 年), 字东璧, 晚年自号濒湖山人, 湖广黄州府薪州(今湖北省薪春县) 人, 明代著名医药学家。 与“ 医圣” 万密斋齐名, 古有“ 万密斋的方, 李时珍的药” 之说。 后为楚干府..."
        }
      ],
      // 下面的朝代1
      dynasty1Color: "",
@@ -242,78 +244,78 @@
        {
          name: "夏朝",
          coord: "2070BC",
          id: 1,
          id: 1
        },
        {
          name: "商朝",
          id: 2,
          coord: "1600BC",
          coord: "1600BC"
        },
        {
          name: "西周",
          id: 3,
          coord: "1600BC",
          coord: "1600BC"
        },
        {
          name: "春秋战国",
          id: 4,
          coord: "770BC",
          coord: "770BC"
        },
        {
          name: "秦朝",
          id: 5,
          coord: "221BC",
          coord: "221BC"
        },
        {
          name: "汉朝",
          id: 6,
          coord: "202BC",
          coord: "202BC"
        },
        {
          name: "三国两晋南北朝",
          id: 7,
          coord: "184",
          coord: "184"
        },
        {
          name: "隋朝",
          id: 8,
          coord: "581",
          coord: "581"
        },
        {
          name: "唐朝",
          id: 9,
          coord: "618",
          coord: "618"
        },
        {
          name: "五代十国",
          id: 10,
          coord: "907",
          coord: "907"
        },
        {
          name: "辽夏金",
          id: 11,
          coord: "907",
          coord: "907"
        },
        {
          name: "宋朝",
          id: 12,
          coord: "960",
          coord: "960"
        },
        {
          name: "元朝",
          id: 13,
          coord: "1271",
          coord: "1271"
        },
        {
          name: "明朝",
          id: 14,
          coord: "1368",
          coord: "1368"
        },
        {
          name: "清朝",
          id: 15,
          coord: "1636",
        },
          coord: "1636"
        }
      ],
      // 标题顶部栏需要的东西
      idIndex: 0,
@@ -322,43 +324,43 @@
        {
          name: "夏",
          color: "#90BBD8",
          id: 1,
          id: 1
        },
        {
          name: "商",
          color: "#EDD28B",
          id: 2,
          id: 2
        },
        {
          name: "西周",
          color: "#CF746D",
          id: 3,
          id: 3
        },
        {
          name: "秦",
          color: "#9CC27A",
          id: 4,
          id: 4
        },
        {
          name: "汉",
          color: "#5B6CB9",
          id: 5,
          id: 5
        },
        {
          name: "隋",
          color: "#8860A8",
          id: 6,
          id: 6
        },
        {
          name: "唐",
          color: "#DE8E66",
          id: 7,
          id: 7
        },
        {
          name: "明",
          color: "#DE8E66",
          id: 8,
        },
          id: 8
        }
      ],
      // 搜索后是否显示弹框
      isSearch: false,
@@ -368,20 +370,19 @@
          id: 1,
          name: "李时珍",
          birthAndDeath: "1518-1593",
          source: "国图规范档,CBDB,上图古籍数据库 籍贯:湖北",
          source: "国图规范档,CBDB,上图古籍数据库 籍贯:湖北"
        },
        {
          id: 2,
          name: "李时珍",
          birthAndDeath: "1518-1593",
          source: "国图规范档,CBDB,上图古籍数据库 籍贯:湖北",
        },
      ],
          source: "国图规范档,CBDB,上图古籍数据库 籍贯:湖北"
        }
      ]
    };
  },
  onLoad(options) {
    this.idIndex = options.id;
    console.log("optionsoptionsoptions", options.id);
  },
  mounted() {
    this.getDynastyList();
@@ -391,14 +392,10 @@
  methods: {
    getDynastyList() {
      getDynasty().then((res) => {
        console.log(res, "123123");
        this.dynasty1 = res.list;
      });
    },
    showCard(info) {
      console.log(info);
      console.log(this.markerList);
      console.log(this.map);
      const item = this.markerList.find((f) => f.id == info.id);
      var latlng = L.latLng(item.yCoord, item.xCoord);
      this.map.setView(latlng, 10);
@@ -409,7 +406,6 @@
          if (res.object) {
            let markerList = [];
            const listData = res.object.personList;
            console.log(listData, "listData");
            for (let i = 0; i < listData.length; i++) {
              const item = listData[i];
              if (item.NATIVE_PLACE?.length > 0) {
@@ -426,7 +422,6 @@
                });
              }
            }
            console.log(markerList, "markerList");
            this.initMap(markerList);
            this.SearchArr = markerList.map((item) => ({
              birthAndDeath: item?.BIRTH_YEAR[0]?.content1
@@ -436,7 +431,7 @@
                : "-",
              name: item?.NAME[0]?.content1,
              source: "-",
              id: item.id,
              id: item.id
            }));
            this.markerList = markerList;
          }
@@ -451,27 +446,27 @@
      }
      var map = L.map("map", {
        preferCanvas: true,
        attributionControl: false,
        attributionControl: false
      }).setView([39.91667, 116.41667], 3);
      L.tileLayer
        .chinaProvider("TianDiTu.Normal.Map", {
          key: "76bc34ead7e30e663a4eded8aeaf5860",
          maxZoom: 18,
          minZoom: 3,
          minZoom: 3
        })
        .addTo(map);
      let DefaultIcon1 = L.icon({
        iconUrl: this.icoName,
        iconSize: [24, 41], //  图标的大小    【值1,值2】 为具体你自定义图标的尺寸,比如我图标尺寸是32×52,表示该图标:宽度32像素,高度:52像素,那么值1:就是32,值2:就是52
        iconAnchor: [24, 41], //  图标将对应标记点的位置 这个是重点, 【值1,值2】,值1:为图标坐标第一个值(即32)的一半,值2:为图标坐标第二个值(即52)
        popupAnchor: [1, -24], // 该点是相对于iconAnchor弹出信息的位置  这个是我手动调出来的,文档默认原始值是[-1,-76],我是去一半值,取一半值调出来的
        popupAnchor: [1, -24] // 该点是相对于iconAnchor弹出信息的位置  这个是我手动调出来的,文档默认原始值是[-1,-76],我是去一半值,取一半值调出来的
      });
      let icon = L.divIcon({
        html: "<div class='map-circle-name '></div>",
        iconSize: [80, 80],
        className: "map-circle",
        className: "map-circle"
      });
      this.map = map;
      if (markerList.length) {
@@ -507,10 +502,10 @@
          let icon = L.divIcon({
            html: `<div class='${currentClassName} ripple'></div>`,
            iconSize: [80, 80],
            className: "map-circle",
            className: "map-circle"
          });
          const temp_mark = L.marker([item.yCoord, item.xCoord], {
            icon: icon,
            icon: icon
          }).addTo(map);
          temp_mark.on("click", (e) => {
            this.isEchTrue = true;
@@ -519,7 +514,7 @@
              nikeName: item?.ALIAS[0]?.content2,
              nativePlace: item?.content1,
              barnch: item?.MEDICAL_BRANCH[0]?.content1,
              medical: item?.MEDICAL_EXPERTISE[0]?.content1,
              medical: item?.MEDICAL_EXPERTISE[0]?.content1
            };
            this.$nextTick(() => {
              this.isTop =
@@ -538,7 +533,6 @@
    // 点击下面的朝代按钮
    dynastyBottomClick(id) {
      console.log(id);
      this.dynasty1Color = id;
      this.getDataList();
    },
@@ -550,16 +544,14 @@
      this.getDataList();
    },
    // 点击上面的朝代按钮
    SchoolClick(id) {
      console.log(id);
    },
    SchoolClick(id) {},
    // 查看更多>>
    viewMoreClick() {
      uni.navigateTo({
        url: "/pages/character/detail",
        url: "/pages/character/detail"
      });
    },
  },
    }
  }
};
</script>
@@ -747,7 +739,6 @@
}
::v-deep .ripple {
  border-radius: 50%;
  position: relative;
  overflow: hidden;
src/pages/zhongyi/zhongyi.vue
@@ -1,5 +1,5 @@
<template>
    <view class="">
    <view >
        <headNav :idIndex="idIndex" :searchBg="false" text="中医世医传承数据库" bg="/static/image/topBg1.png"
            bg1="/static/image/line1.png" />
@@ -12,7 +12,7 @@
                <li style="background-color: #DA7A2B;color: #fff;">世医传承</li>
                <li @click="ListClick" style="background-color: #fff;color: #DA7A2B;" >世医传承</li>
            </ul>
            <view class="" style="width: 1rem;"></view>
            <view  style="width: 1rem;"></view>
        </view>
        <!-- echarts图 -->
        <div class="barChart" ref="barChart"></div>
@@ -30,7 +30,6 @@
        },
        onLoad(options) {
            this.idIndex = options.id
            console.log('optionsoptionsoptions', options.id);
        },
        mounted() {
            // 初始化 echarts
src/store/index.js
@@ -14,7 +14,6 @@
    getters,
    mutations:{
        Set_UserName(state,username){
            console.log(username,'uuu');
            state.username=username
        }
    },
@@ -29,11 +28,9 @@
        // 监听mutaions 记录state到本地存储
        store.subscribe((mutation,state)=>{
            uni.setStorageSync('state',state)
            console.log(state,'statestatestate');
        })
        // 读取缓存中state
        if(uni.getStorageSync('state')){
            // console.log(state,'aaaaaaaaastatestatestate');
            store.replaceState(Object.assign({},store.state,uni.getStorageSync('state')))
        }
    }]
src/store/module/user.js
@@ -14,13 +14,11 @@
    mutations: {
        set_token: (state, params) => (state.token = params),
        set_id: (state, params) => {
            console.log('sdf');
            state.id = params
        }
    },
    actions: {
        isSet_id(store, role){
            console.log(role);
            store.commit('set_id',role)
        }
    }
src/uni_modules/jc-form/components/jc-form/jc-form.vue
@@ -166,10 +166,11 @@
    function showToastError(errors) {
        const { message } = errors.shift()
        if (!message) return
        uni.showToast({
            icon: 'none',
            title: message
        })
        // uni.showToast({
        //     icon: 'none',
        //     title: message
        // })
        this.$message.error(message);
    }
    function reset() {
src/uni_modules/next-search-more/components/next-search-more/next-search-more.vue
@@ -178,7 +178,6 @@
    // 搜索下拉框
    change(e) {
      this.$emit("select", e);
      console.log(e);
    }
  },
  created() {
@@ -198,7 +197,6 @@
  },
  watch: {
    keyword(value) {
            console.log(value);
      this.inputVal = value;
    }
  }
src/uni_modules/uni-easyinput/components/uni-easyinput/common.js
@@ -6,9 +6,7 @@
 */
export const debounce = function(func, wait = 1000, immediate = true) {
    let timer;
    console.log(1);
    return function() {
        console.log(123);
        let context = this,
            args = arguments;
        if (timer) clearTimeout(timer);
src/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue
@@ -269,7 +269,6 @@
        },
        msg() {
            // console.log('computed', this.form, this.formItem);
            // if (this.form) {
            //     return this.errorMessage || this.formItem.errMsg;
            // }
src/utils/request/req1.js
@@ -32,15 +32,10 @@
      res.data.errorText == "需要验证身份" &&
      res.data.errorCode == "11"
    ) {
      console.log("token过期了");
      Message.error(res.data.errorText || "");
      // 清楚token
      uni.getStorageSync("access_token");
      uni.clearStorageSync();
      uni.showToast({
        title: "请重新登录",
        icon: "none"
      });
      uni.reLaunch({
        url: "/pages/Login/Login"
      });