YM
2024-05-11 227029c7dff6ebc0acd6b3ba07b234a22ec06521
Merge branch 'master' of http://182.92.203.7:2001/r/TCM_CharacterLibrary
5个文件已修改
4858 ■■■■ 已修改文件
src/pages/Register/Register.vue 1422 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/forgetPass/forgetPass.vue 1256 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/inherit/index.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/knowledgeBase/knowledgeBase.vue 2155 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/static/initialize.css 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/Register/Register.vue
@@ -1,366 +1,464 @@
<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>
            <!-- 注册用户 v-if="isRegister"-->
            <el-card>
                <view class="LoginTop"
                    style="display: flex; justify-content: space-between;margin-bottom: .47rem;align-items: center;">
                    <!-- <view class="" style="color: #244A7B;padding-bottom: .47rem;font-size: .3rem;font-weight: bold;">用户注册</view> -->
                    <view class="LoginBg"></view>
                    <view class="" @click="BacktoLogin"
                        style="cursor: pointer;font-size: .14rem;color: #244A7B;font-weight: normal;">
                        已有账号?返回登录
                    </view>
                </view>
                <el-form :hide-required-asterisk="true" ref="formLogin" label-position="right" :rules="rules"
                    :model="registerData">
                    <el-form-item label="登录账号" prop="loginID">
                        <el-input v-model="registerData.loginID" placeholder="由字母或数字组合3-15个字符组成"></el-input>
                    </el-form-item>
                    <el-form-item label="登录密码" prop="pass">
                        <el-input type="password" v-model="registerData.pass"
                            placeholder="字母、数字或特殊符号组成(6-10)个字符"></el-input>
                    </el-form-item>
                    <el-form-item label="确认密码" prop="checkPass">
                        <el-input type="password" v-model="registerData.checkPass" placeholder="必须与密码一致"></el-input>
                    </el-form-item>
                    <el-form-item label="手机/邮箱" prop="cellphoneORmailbox">
                        <el-input v-model="registerData.cellphoneORmailbox" placeholder="请填写正确的手机或电子邮箱地址"></el-input>
                    </el-form-item>
                    <el-form-item label="验证码" prop="verifyCode">
                        <view class="verifyCode relative">
                            <el-input v-model="registerData.verifyCode" placeholder="请输入验证码"></el-input>
                            <view @click="verifyCodeClick" class="yzm"
                                style="position: absolute;right: 0%;top: 0%;color: #244A7B;font-size: .14rem;font-weight: 500;">
                                获取验证码</view>
                        </view>
                    </el-form-item>
                    <el-form-item class="btn" style="margin-bottom: .09rem;">
                        <el-button class="font-family"
                            style="margin-top: .22rem; font-weight:900;font-size: .3rem; width: 100%;background-color:#244A7B;color: #fff;padding: .16rem;"
                            size="medium" @click="Login('formLogin')">注册</el-button>
                    </el-form-item>
                    <view class="asdf"
                        style="font-size: .12rem;color: #9E9E9E;font-weight: 500; text-align: center;line-height: normal;margin-bottom: .19rem;">
                        用户注册即代表同意 <span class="cursor" @click="termOfServiceClick(1)">《服务条款》</span> 和<span
                            class="cursor" @click="termOfServiceClick(2)">《用户隐私保护和个人信息条款》</span>
                    </view>
                </el-form>
            </el-card>
        </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="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: 0.36rem;
              letter-spacing: 4rpx;
              vertical-align: middle;
              font-family: cursive;
              font-weight: bold;
            "
            >中国医学人物知识库</text
          >
        </view>
        <view></view>
      </view>
      <!-- 注册用户 v-if="isRegister"-->
      <el-card>
        <view
          class="LoginTop"
          style="
            display: flex;
            justify-content: space-between;
            margin-bottom: 0.47rem;
            align-items: center;
          "
        >
          <!-- <view class="" style="color: #244A7B;padding-bottom: .47rem;font-size: .3rem;font-weight: bold;">用户注册</view> -->
          <view class="LoginBg"></view>
          <view
            class=""
            @click="BacktoLogin"
            style="
              cursor: pointer;
              font-size: 0.14rem;
              color: #244a7b;
              font-weight: normal;
            "
          >
            已有账号?返回登录
          </view>
        </view>
        <el-form
          :hide-required-asterisk="true"
          ref="formLogin"
          label-position="right"
          :rules="rules"
          :model="registerData"
        >
          <el-form-item label="登录账号" prop="loginID">
            <el-input
              v-model="registerData.loginID"
              placeholder="由字母或数字组合3-15个字符组成"
            ></el-input>
          </el-form-item>
          <el-form-item label="登录密码" prop="pass">
            <el-input
              type="password"
              v-model="registerData.pass"
              placeholder="字母、数字或特殊符号组成(6-10)个字符"
            ></el-input>
          </el-form-item>
          <el-form-item label="确认密码" prop="checkPass">
            <el-input
              type="password"
              v-model="registerData.checkPass"
              placeholder="必须与密码一致"
            ></el-input>
          </el-form-item>
          <el-form-item label="手机号" prop="cellphoneORmailbox">
            <el-input
              v-model="registerData.cellphoneORmailbox"
              placeholder="请填写正确的手机"
            ></el-input>
          </el-form-item>
          <el-form-item label="验证码" prop="verifyCode">
            <view class="verifyCode relative">
              <el-input
                v-model="registerData.verifyCode"
                placeholder="请输入验证码"
              ></el-input>
              <view
                @click="verifyCodeClick"
                class="yzm"
                style="
                  position: absolute;
                  right: 0%;
                  top: 0%;
                  color: #244a7b;
                  font-size: 0.14rem;
                  font-weight: 500;
                "
              >
                {{
                  countdown > 0 ? `${countdown}秒后重新获取` : "获取验证码"
                }}</view
              >
            </view>
          </el-form-item>
          <el-form-item class="btn" style="margin-bottom: 0.09rem">
            <el-button
              class="font-family"
              style="
                margin-top: 0.22rem;
                font-weight: 900;
                font-size: 0.3rem;
                width: 100%;
                background-color: #244a7b;
                color: #fff;
                padding: 0.16rem;
              "
              size="medium"
              @click="Login('formLogin')"
              >注册</el-button
            >
          </el-form-item>
          <view
            class="asdf"
            style="
              font-size: 0.12rem;
              color: #9e9e9e;
              font-weight: 500;
              text-align: center;
              line-height: normal;
              margin-bottom: 0.19rem;
            "
          >
            用户注册即代表同意
            <span class="cursor" @click="termOfServiceClick(1)"
              >《服务条款》</span
            >
            和<span class="cursor" @click="termOfServiceClick(2)"
              >《用户隐私保护和个人信息条款》</span
            >
          </view>
        </el-form>
      </el-card>
    </view>
    <view class="hua"></view>
    <!-- 底部人物背景图左侧 -->
    <view class="fff"></view>
    <!-- 底部花的背景图右侧 -->
    <view class="rrr"></view>
    <Footer1 />
  </view>
</template>
<script>
    import {
        getaddLogin,
        getverifyCode
    } from '@/api/index.js'
    import {
        encryptAES
    } from '@/utils/Crypto.js'
    import {
        nextTick
    } from "vue";
    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'
                        },
                        {
                            pattern: /^[a-zA-Z0-9]{3,15}$/,
                            message: '请输入3-15个字符的字母或数字',
                            trigger: 'blur'
                        } // 自定义校验规则,使用正则表达式
                    ],
                    pass: [{
                            required: true,
                            message: '请输入密码',
                            trigger: 'blur'
                        },
                        {
                            min: 6,
                            max: 10,
                            message: '密码长度在 6 到 12 个字符',
                            trigger: 'blur'
                        },
                        {
                            validator: validatePass,
                            trigger: 'blur'
                        }
                    ],
                    checkPass: [{
                        validator: validatePass2,
                        trigger: 'blur'
                    }],
                    cellphoneORmailbox: [{
                            required: true,
                            message: '请输入手机号或邮箱',
                            trigger: 'blur'
                        },
                        {
                            validator: this.validateContact,
                            trigger: 'blur'
                        }
                    ],
                    verifyCode: [{
                        required: true,
                        message: '请输入验证码',
                        trigger: 'blur'
                    }]
                },
                // 登录注册框
                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 { getaddLogin, getverifyCode } from "@/api/index.js";
import { encryptAES } from "@/utils/Crypto.js";
import { nextTick } from "vue";
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 {
      //验证码倒计时
      countdown: 0,
      // 用户注册
      isRegister: false,
      // 用户登录
      isLogin: true,
      // 修改密码
      isAmendPass: false,
      // 重置密码
      isResetPass: false,
      // 注册用户账号的校验
      rules: {
        loginID: [
          {
            required: true,
            message: "请输入登录账号",
            trigger: "blur",
          },
          {
            pattern: /^[a-zA-Z0-9]{3,15}$/,
            message: "请输入3-15个字符的字母或数字",
            trigger: "blur",
          }, // 自定义校验规则,使用正则表达式
        ],
        pass: [
          {
            required: true,
            message: "请输入密码",
            trigger: "blur",
          },
          {
            min: 6,
            max: 10,
            message: "密码长度在 6 到 12 个字符",
            trigger: "blur",
          },
          {
            validator: validatePass,
            trigger: "blur",
          },
        ],
        checkPass: [
          {
            validator: validatePass2,
            trigger: "blur",
          },
        ],
        cellphoneORmailbox: [
          {
            required: true,
            message: "请输入手机",
            trigger: "blur",
          },
          {
            validator: this.validateContact,
            trigger: "blur",
          },
        ],
        verifyCode: [
          {
            required: true,
            message: "请输入验证码",
            trigger: "blur",
          },
        ],
      },
      // 登录注册框
      loginTrue: true,
      Rtop1: 0,
      value: "sdfdsf",
      // 注册用户对应的数据
      registerData: {
        loginID: "",
        pass: "",
        checkPass: "",
        cellphoneORmailbox: null,
        verifyCode: "",
      },
      // 登录用户账号
      loginData: {
        // 账号
        loginID: "",
        pass: "",
      },
      // 重置密码
      resetDataPass: {
        cellphoneORmailbox: null,
        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() {
    uni.getSystemInfo({
      success: function (info) {
        // console.log('屏幕的宽度:' + info.windowWidth);
        // console.log('屏幕的高度:' + info.windowHeight);
      },
    });
  },
  mounted() {
    this.getElementWidth();
  },
  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",
      });
    },
    // 获取验证码
    async verifyCodeClick() {
      if (!this.registerData.cellphoneORmailbox) {
        this.$message({
          message: "请输入手机!",
          type: "warning",
        });
                ]
            }
        },
        onLoad() {
            uni.getSystemInfo({
                success: function(info) {
                    // console.log('屏幕的宽度:' + info.windowWidth);
                    // console.log('屏幕的高度:' + info.windowHeight);
                }
            });
        },
        mounted() {
            this.getElementWidth();
        },
        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'
                })
            },
            // 获取验证码
            async verifyCodeClick() {
                let Obj = {
                    communicateParam: this.registerData.cellphoneORmailbox,
                }
                console.log(Obj);
                let code = await getverifyCode(Obj)
                console.log(code, '获取验证码');
                // console.log('获取验证码');
            },
            // 验证码校验
            validateVerificationCode(rule, value, callback) {
                if (value !== '123456') {
                    // callback(new Error('验证码错误'));
                    callback()
                } else {
                    callback();
                }
            },
            // 手机号/或者邮箱
            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 {
                    callback(new Error('请输入正确的手机号或邮箱')); // 校验失败
                }
            },
            getElementWidth() {
                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,
                }
                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'
                                });
                                uni.navigateTo({
                                    url: '/pages/Login/Login'
                                })
                            }else{
                                uni.showToast({
                                    title: res.errorText,
                                    icon: 'error'
                                });
                            }
                        })
                        // encryptAES
                        // uni.navigateTo({
                        //     url: '/pages/Login/Login'
                        // })
                    } else {
                        console.log('error submit!!');
                        return false;
                    }
                });
        return false;
      }
      if (this.countdown > 0) {
        return;
      }
      let Obj = {
        communicateParam: this.registerData.cellphoneORmailbox,
      };
      this.countdown = 60;
      const intervalId = setInterval(() => {
        if (this.countdown > 0) {
          this.countdown -= 1;
        } else {
          clearInterval(intervalId);
        }
      }, 1000);
      let code = await getverifyCode(Obj);
                // console.log(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 {
        callback(new Error("请输入正确的手机号")); // 校验失败
      }
    },
    getElementWidth() {
      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,
      };
      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",
              });
              uni.navigateTo({
                url: "/pages/Login/Login",
              });
            } else {
              uni.showToast({
                title: res.errorText,
                icon: "error",
              });
            }
          });
          // encryptAES
          // uni.navigateTo({
          //     url: '/pages/Login/Login'
          // })
        } else {
          console.log("error submit!!");
          return false;
        }
      });
                // let res = await getaddLogin(Obj)
                // console.log('sdfdsfs', res);
      // console.log(Obj, '用户登录的登录按钮');
            },
        }
    }
      // let res = await getaddLogin(Obj)
      // console.log('sdfdsfs', res);
    },
  },
};
</script>
<style scoped>
    @media screen and (max-width:1366px) {
        ::v-deep .el-card {
            top: 50% !important;
        }
@media screen and (max-width: 1366px) {
  ::v-deep .el-card {
    top: 50% !important;
  }
        ::v-deep .el-input__inner {
            height: .44rem;
        }
  ::v-deep .el-input__inner {
    height: 0.44rem;
  }
        ::v-deep .el-card {
            padding: .2rem 0 !important;
        }
  ::v-deep .el-card {
    padding: 0.2rem 0 !important;
  }
        .LoginBg {
            margin: 0 !important;
        }
  .LoginBg {
    margin: 0 !important;
  }
        .hua {
            height: 5rem !important;
        }
    }
  .hua {
    height: 5rem !important;
  }
}
    @media screen and (min-width:1366px) and (max-width:1920px) {
        /* ::v-deep .el-card__body {
@media screen and (min-width: 1366px) and (max-width: 1920px) {
  /* ::v-deep .el-card__body {
            padding: 0 .58rem !important;
        }
@@ -383,69 +481,68 @@
        .hua {
            height: 5rem !important;
        } */
        .LoginBg {
            margin: 0 !important;
            height: .3rem !important;
        }
  .LoginBg {
    margin: 0 !important;
    height: 0.3rem !important;
  }
        ::v-deep .el-card {
            top: 70% !important;
            padding: 0 !important;
        }
  ::v-deep .el-card {
    top: 70% !important;
    padding: 0 !important;
  }
        ::v-deep .el-card__body {
            padding: .25rem .5rem !important;
        }
  ::v-deep .el-card__body {
    padding: 0.25rem 0.5rem !important;
  }
        ::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;
        }
  ::v-deep .el-input__inner {
    height: 0.35rem !important;
  }
        .hua {
            height: 5rem !important;
        }
  .hua {
    height: 5rem !important;
  }
        .LoginTop {
            margin-bottom: .25rem !important;
        }
  .LoginTop {
    margin-bottom: 0.25rem !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;
            height: 2.5rem !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;
        }
    }
  .asdf {
    margin-bottom: 0.1rem !important;
  }
}
    @media screen and (min-width: 1920px) and (max-width:2560px) {
        /*         ::v-deep .el-card {
@media screen and (min-width: 1920px) and (max-width: 2560px) {
  /*         ::v-deep .el-card {
            top: 80% !important;
        }
@@ -522,129 +619,128 @@
        ::v-deep .el-input__inner {
            height: .35rem !important;
        } */
        .LoginBg {
            margin: 0 !important;
            height: .3rem !important;
        }
  .LoginBg {
    margin: 0 !important;
    height: 0.3rem !important;
  }
        ::v-deep .el-card {
            top: 70% !important;
            padding: 0 !important;
        }
  ::v-deep .el-card {
    top: 70% !important;
    padding: 0 !important;
  }
        ::v-deep .el-card__body {
            padding: .25rem .5rem !important;
        }
  ::v-deep .el-card__body {
    padding: 0.25rem 0.5rem !important;
  }
        ::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;
        }
  ::v-deep .el-input__inner {
    height: 0.35rem !important;
  }
        .hua {
            height: 5rem !important;
        }
  .hua {
    height: 5rem !important;
  }
        .LoginTop {
            margin-bottom: .25rem !important;
        }
  .LoginTop {
    margin-bottom: 0.25rem !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;
            height: 2.5rem !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;
        }
    }
  .asdf {
    margin-bottom: 0.1rem !important;
  }
}
    @media screen and (min-width:2560px)and (max-width:3840px) {
        .LoginBg {
            margin: 0 !important;
            height: .3rem !important;
        }
@media screen and (min-width: 2560px) and (max-width: 3840px) {
  .LoginBg {
    margin: 0 !important;
    height: 0.3rem !important;
  }
        ::v-deep .el-card {
            top: 70% !important;
            padding: 0 !important;
        }
  ::v-deep .el-card {
    top: 70% !important;
    padding: 0 !important;
  }
        ::v-deep .el-card__body {
            padding: .25rem .5rem !important;
        }
  ::v-deep .el-card__body {
    padding: 0.25rem 0.5rem !important;
  }
        ::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;
        }
  ::v-deep .el-input__inner {
    height: 0.35rem !important;
  }
        .hua {
            height: 5rem !important;
        }
  .hua {
    height: 5rem !important;
  }
        .LoginTop {
            margin-bottom: .25rem !important;
        }
  .LoginTop {
    margin-bottom: 0.25rem !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;
            height: 2.5rem !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;
        }
  .asdf {
    margin-bottom: 0.1rem !important;
  }
}
    }
    /* @media screen and (max-width: 1366px){
/* @media screen and (max-width: 1366px){
        ::v-deep .el-card{
            top: 60% !important;
        }
@@ -659,9 +755,9 @@
        
        
    } */
    /*
/*
    在屏幕宽度超过 1440px 时的样式设置 */
    /* @media screen and (min-width: 1441px) {
/* @media screen and (min-width: 1441px) {
        ::v-deep .el-card {
            top: 80% !important;
        }
@@ -689,209 +785,195 @@
        }
    } */
.LoginBg {
  width: 1.2rem;
  height: 0.37rem;
  background: url(@/static/image/用户注册.png) no-repeat 0 0;
  background-size: 100% 100%;
  /* border: 10px solid red; */
}
    .LoginBg {
        width: 1.2rem;
        height: .37rem;
        background: url(@/static/image/用户注册.png) no-repeat 0 0;
        background-size: 100% 100%;
        /* border: 10px solid red; */
::v-deep .el-card {
  border-radius: 0;
  width: 5.42rem;
  /* height: 5.65rem; */
  position: absolute;
  top: 80%;
}
    }
::v-deep .el-card__body {
  padding: 0.175rem 0.58rem;
}
.btn >>> .el-form-item__content {
  margin-left: 0 !important;
}
    ::v-deep .el-card {
        border-radius: 0;
        width: 5.42rem;
        /* height: 5.65rem; */
        position: absolute;
        top: 80%;
    }
::v-deep .el-form-item__content {
  margin-left: 0 !important;
  flex: 1;
}
    ::v-deep .el-card__body {
        padding: .175rem .58rem;
    }
::v-deep .el-input__inner {
  border: none;
  border-bottom: 1px solid #2d476a;
  border-radius: 0;
  padding: 0;
  height: 0.4rem;
  line-height: 0.4rem;
  font-size: 0.14rem;
}
    .btn>>>.el-form-item__content {
        margin-left: 0 !important;
::v-deep .el-form-item__error {
  /* display: none; */
  font-size: 0.12rem;
}
    }
::v-deep .input.invalid:focus {
  border-color: #2d476a !important;
}
    ::v-deep .el-form-item__content {
        margin-left: 0 !important;
        flex: 1;
    }
::v-deep .el-input__inner:invalid {
  border-color: #2d476a !important;
}
    ::v-deep .el-input__inner {
        border: none;
        border-bottom: 1px solid #2d476a;
        border-radius: 0;
        padding: 0;
        height: .4rem;
        line-height: .4rem;
        font-size: .14rem;
    }
::v-deep .el-form-item__label {
  min-width: 0.6rem;
  padding: 0;
  color: #244a7b;
  font-size: 0.14rem;
  font-weight: 500;
  margin-right: 0.29rem;
  display: flex;
  align-items: center;
  text-align: right;
}
    ::v-deep .el-form-item__error {
        /* display: none; */
        font-size: .12rem;
    }
::v-deep .el-form-item {
  margin-bottom: 0.22rem;
  display: flex;
}
    ::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 {
        min-width: .6rem;
        padding: 0;
        color: #244A7B;
        font-size: .14rem;
        font-weight: 500;
        margin-right: .29rem;
        display: flex;
        align-items: center;
        text-align: right;
    }
.s3 {
  background-image: url(@/static/image/question.png);
}
    ::v-deep .el-form-item {
        margin-bottom: .22rem;
        display: flex;
    }
.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%;
    }
    .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%;
    }
    .hua {
        width: 13.81rem;
        height: 5.965rem;
        position: absolute;
        background: url(@/static/image/bg3.png) no-repeat 0 0;
        background-size: 100% 100%;
    }
    /* 底部人物背景图  */
    .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 .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;
            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;
        }
    }
    .Bbottom {
        display: flex;
        justify-content: center;
    }
</style>
.Bbottom {
  display: flex;
  justify-content: center;
}
</style>
src/pages/forgetPass/forgetPass.vue
@@ -1,281 +1,365 @@
<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>
                <view class="LoginTop"
                    style="display: flex; justify-content: space-between;margin-bottom: .47rem;align-items: center;">
                    <!-- <view class="" style="color: #244A7B;padding-bottom: .47rem;font-size: .3rem;font-weight: bold;">用户注册</view> -->
                    <view class="LoginBg"></view>
                    <view class="" @click="BacktoLogin"
                        style="cursor: pointer;font-size: .14rem;color: #244A7B;font-weight: normal;">
                        返回登录
                    </view>
                </view>
                <el-form :hide-required-asterisk="true" ref="formLogin2" label-position="right" :rules="rules"
                    :model="resetDataPass">
                    <el-form-item label="手机/邮箱" prop="cellphoneORmailbox">
                        <el-input v-model="resetDataPass.cellphoneORmailbox"></el-input>
                    </el-form-item>
                    <el-form-item label="验证码" prop="verifyCode">
                        <view class="verifyCode relative">
                            <el-input v-model="resetDataPass.verifyCode"></el-input>
                            <view @click="verifyCodeClick" class="yzm"
                                style="position: absolute;right: 0%;top: 0%;color: #244A7B;font-size: .14rem;font-weight: 500;">
                                获取验证码</view>
                        </view>
                    </el-form-item>
                    <el-form-item label="新密码" prop="newPass">
                        <el-input type="password" v-model="resetDataPass.newPass"></el-input>
                    </el-form-item>
                    <el-form-item label="确认新密码" prop="checkPass">
                        <el-input type="password" v-model="resetDataPass.checkPass"></el-input>
                    </el-form-item>
                    <el-form-item class="btn">
                        <el-button class="font-family"
                            style="margin-top: 30rpx; font-weight:900;font-size: 30rpx; width: 100%;background-color: #244a7b;color: #fff;padding: 30rpx;"
                            size="medium" @click="Login2('formLogin2')">重置密码</el-button>
                    </el-form-item>
                </el-form>
            </el-card>
  <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: 0.36rem;
              letter-spacing: 4rpx;
              vertical-align: middle;
              font-family: cursive;
              font-weight: bold;
            "
            >中国医学人物知识库</text
          >
        </view>
        <view></view>
      </view>
      <!-- 重置密码 -->
      <el-card>
        <view
          class="LoginTop"
          style="
            display: flex;
            justify-content: space-between;
            margin-bottom: 0.47rem;
            align-items: center;
          "
        >
          <!-- <view class="" style="color: #244A7B;padding-bottom: .47rem;font-size: .3rem;font-weight: bold;">用户注册</view> -->
          <view class="LoginBg"></view>
          <view
            class=""
            @click="BacktoLogin"
            style="
              cursor: pointer;
              font-size: 0.14rem;
              color: #244a7b;
              font-weight: normal;
            "
          >
            返回登录
          </view>
        </view>
        <el-form
          :hide-required-asterisk="true"
          ref="formLogin2"
          label-position="right"
          :rules="rules"
          :model="resetDataPass"
        >
          <el-form-item label="手机" prop="cellphoneORmailbox">
            <el-input v-model="resetDataPass.cellphoneORmailbox"></el-input>
          </el-form-item>
          <el-form-item label="验证码" prop="verifyCode">
            <view class="verifyCode relative">
              <el-input v-model="resetDataPass.verifyCode"></el-input>
              <view
                @click="verifyCodeClick"
                class="yzm"
                style="
                  position: absolute;
                  right: 0%;
                  top: 0%;
                  color: #244a7b;
                  font-size: 0.14rem;
                  font-weight: 500;
                "
              >
                {{
                  countdown > 0 ? `${countdown}秒后重新获取` : "获取验证码"
                }}</view
              >
            </view>
          </el-form-item>
          <el-form-item label="新密码" prop="newPass">
            <el-input
              type="password"
              v-model="resetDataPass.newPass"
            ></el-input>
          </el-form-item>
          <el-form-item label="确认新密码" prop="checkPass">
            <el-input
              type="password"
              v-model="resetDataPass.checkPass"
            ></el-input>
          </el-form-item>
          <el-form-item class="btn">
            <el-button
              class="font-family"
              style="
                margin-top: 30rpx;
                font-weight: 900;
                font-size: 30rpx;
                width: 100%;
                background-color: #244a7b;
                color: #fff;
                padding: 30rpx;
              "
              size="medium"
              @click="Login2('formLogin2')"
              >重置密码</el-button
            >
          </el-form-item>
        </el-form>
      </el-card>
    </view>
    <view class="hua"></view>
    <!-- 底部人物背景图左侧 -->
    <view class="fff"></view>
    <!-- 底部花的背景图右侧 -->
    <view class="rrr"></view>
        </view>
        <view class="hua"></view>
        <!-- 底部人物背景图左侧 -->
        <view class="fff"></view>
        <!-- 底部花的背景图右侧 -->
        <view class="rrr"></view>
        <Footer1 />
    </view>
    <Footer1 />
  </view>
</template>
<script>
    import {
        getRestPassword,
        getverifyCode
    } from '@/api/index.js'
    import {
        encryptAES
    } from '@/utils/Crypto.js'
    import {
        nextTick
    } from "vue";
    import Footer1 from '@/components/footer/footer.vue'
    import {
        Message
    } from 'element-ui'
    export default {
        components: {
            Footer1
        },
        data() {
            // 密码
            var validatePass = (rule, value, callback) => {
                if (value === '') {
                    callback(new Error('请输入密码'));
                } else {
                    if (this.resetDataPass.checkPass !== '') {
                        this.$nextTick(() => {
                            this.$refs.formLogin.validateField('checkPass');
                        });
                    }
                    callback();
                }
            };
            // 确认密码
            var validatePass2 = (rule, value, callback) => {
                if (value === '') {
                    callback(new Error('请再次输入密码'));
                } else if (value !== this.resetDataPass.newPass) {
                    callback(new Error('两次输入密码不一致!'));
                } else {
                    callback();
                }
            };
            return {
                // 用户注册
                isRegister: false,
                // 用户登录
                isLogin: true,
                // 修改密码
                isAmendPass: false,
                // 重置密码
                isResetPass: false,
                // 注册用户账号的校验
                rules: {
                    loginID: [{
                        required: true,
                        message: '请输入登录账号',
                        trigger: 'blur'
                    }],
                    newPass: [{
                            required: true,
                            message: '请输入密码',
                            trigger: 'blur'
                        },
                        {
                            min: 6,
                            max: 10,
                            message: '密码长度在 6 到 12 个字符',
                            trigger: 'blur'
                        },
                        {
                            validator: validatePass,
                            trigger: 'blur'
                        }
                    ],
                    checkPass: [{
                        validator: validatePass2,
                        trigger: 'blur'
                    }],
                    cellphoneORmailbox: [{
                            required: true,
                            message: '请输入手机号或邮箱',
                            trigger: 'blur'
                        },
                        {
                            validator: this.validateContact,
                            trigger: 'blur'
                        }
                    ],
                    verifyCode: [{
                        required: true,
                        message: '请输入验证码',
                        trigger: 'blur'
                    }]
                },
                // 重置密码
                resetDataPass: {
                    cellphoneORmailbox: '',
                    verifyCode: "",
                    newPass: "",
                    checkPass: ""
                },
            }
        },
        onLoad() {
            uni.getSystemInfo({
                success: function(info) {
                    // console.log('屏幕的宽度:' + info.windowWidth);
                    // console.log('屏幕的高度:' + info.windowHeight);
                }
            });
        },
        mounted() {
            this.getElementWidth();
        },
        methods: {
            // 已有账号?返回登录
            BacktoLogin() {
                uni.redirectTo({
                    url: '/pages/Login/Login'
                })
            },
            // 获取验证码
            async verifyCodeClick() {
                console.log('获取验证码');
                let Obj = {
                    communicateParam: this.resetDataPass.cellphoneORmailbox,
                }
                await getverifyCode(Obj).then(res => {
                    console.log(res, '验证码获取成功');
                })
            },
            // 列表项跳转
            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
                    })
                }
            },
import { getRestPassword, getverifyCode } from "@/api/index.js";
import { encryptAES } from "@/utils/Crypto.js";
import { nextTick } from "vue";
import Footer1 from "@/components/footer/footer.vue";
import { Message } from "element-ui";
export default {
  components: {
    Footer1,
  },
  data() {
    // 密码
    var validatePass = (rule, value, callback) => {
      if (value === "") {
        callback(new Error("请输入密码"));
      } else {
        if (this.resetDataPass.checkPass !== "") {
          this.$nextTick(() => {
            this.$refs.formLogin.validateField("checkPass");
          });
        }
        callback();
      }
    };
    // 确认密码
    var validatePass2 = (rule, value, callback) => {
      if (value === "") {
        callback(new Error("请再次输入密码"));
      } else if (value !== this.resetDataPass.newPass) {
        callback(new Error("两次输入密码不一致!"));
      } else {
        callback();
      }
    };
    return {
      //验证码倒计时
      countdown: 0,
      // 用户注册
      isRegister: false,
      // 用户登录
      isLogin: true,
      // 修改密码
      isAmendPass: false,
      // 重置密码
      isResetPass: false,
      // 注册用户账号的校验
      rules: {
        loginID: [
          {
            required: true,
            message: "请输入登录账号",
            trigger: "blur",
          },
        ],
        newPass: [
          {
            required: true,
            message: "请输入密码",
            trigger: "blur",
          },
          {
            min: 6,
            max: 10,
            message: "密码长度在 6 到 12 个字符",
            trigger: "blur",
          },
          {
            validator: validatePass,
            trigger: "blur",
          },
        ],
        checkPass: [
          {
            validator: validatePass2,
            trigger: "blur",
          },
        ],
        cellphoneORmailbox: [
          {
            required: true,
            message: "请输入手机号",
            trigger: "blur",
          },
          {
            validator: this.validateContact,
            trigger: "blur",
          },
        ],
        verifyCode: [
          {
            required: true,
            message: "请输入验证码",
            trigger: "blur",
          },
        ],
      },
      // 重置密码
      resetDataPass: {
        cellphoneORmailbox: "",
        verifyCode: "",
        newPass: "",
        checkPass: "",
      },
    };
  },
  onLoad() {
    uni.getSystemInfo({
      success: function (info) {
        // console.log('屏幕的宽度:' + info.windowWidth);
        // console.log('屏幕的高度:' + info.windowHeight);
      },
    });
  },
  mounted() {
    this.getElementWidth();
  },
  methods: {
    // 已有账号?返回登录
    BacktoLogin() {
      uni.redirectTo({
        url: "/pages/Login/Login",
      });
    },
    // 获取验证码
    async verifyCodeClick() {
      if (!this.resetDataPass.cellphoneORmailbox) {
        this.$message({
          message: "请输入手机!",
          type: "warning",
        });
            // 手机号/或者邮箱
            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 {
                    callback(new Error('请输入正确的手机号或邮箱')); // 校验失败
                }
            },
            getElementWidth() {
                this.$nextTick(() => {
                    var width = this.$refs.Rtop.$el.clientWidth;
                    this.Rtop1 = width + 50;
                    console.log('Element width:', width);
                })
            },
            // 忘记密码
            Login2(formName) {
                let Obj = {
                    "communicateParam": this.resetDataPass.cellphoneORmailbox, //手机或邮箱
                    "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'
                                })
                            } else {
                                Message.error(res.errorText || '')
                            }
                        })
                        // alert('submit!成功');
                        // uni.redirectTo({
                        //     url: '/pages/Login/Login'
                        // })
                    } else {
                        console.log('error submit!!失败');
                        return false;
                    }
                });
            }
        }
    }
        return false;
      }
      if (this.countdown > 0) {
        return;
      }
      let Obj = {
        communicateParam: this.resetDataPass.cellphoneORmailbox,
      };
      this.countdown = 60;
      const intervalId = setInterval(() => {
        if (this.countdown > 0) {
          this.countdown -= 1;
        } else {
          clearInterval(intervalId);
        }
      }, 1000);
      await getverifyCode(Obj).then((res) => {
        console.log(res, "验证码获取成功");
      });
    },
    // 列表项跳转
    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,
        });
      }
    },
    // 手机号/或者邮箱
    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 {
        callback(new Error("请输入正确的手机号")); // 校验失败
      }
    },
    getElementWidth() {
      this.$nextTick(() => {
        var width = this.$refs.Rtop.$el.clientWidth;
        this.Rtop1 = width + 50;
        console.log("Element width:", width);
      });
    },
    // 忘记密码
    Login2(formName) {
      let Obj = {
        communicateParam: this.resetDataPass.cellphoneORmailbox, //手机或邮箱
        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",
              });
            } else {
              Message.error(res.errorText || "");
            }
          });
          // alert('submit!成功');
          // uni.redirectTo({
          //     url: '/pages/Login/Login'
          // })
          this.$message({
            message: "密码重置成功",
            type: "success",
          });
        } else {
          console.log("error submit!!失败");
          return false;
        }
      });
    },
  },
};
</script>
<style scoped>
    /*
/*
    在屏幕宽度超过 1440px 时的样式设置 */
    /* @media screen and (min-width: 1441px) {
/* @media screen and (min-width: 1441px) {
        ::v-deep .el-card {
            top: 60% !important;
        }
@@ -303,400 +387,386 @@
        }
    }
     */
    @media screen and (min-width:2560px)and (max-width:3840px) {
        .LoginBg {
            margin: 0 !important;
            height: .3rem !important;
        }
@media screen and (min-width: 2560px) and (max-width: 3840px) {
  .LoginBg {
    margin: 0 !important;
    height: 0.3rem !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;
  }
        ::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;
  }
        .hua {
            height: 4rem !important;
        }
  .hua {
    height: 4rem !important;
  }
        .LoginTop {
            margin-bottom: .4rem !important;
        }
  .LoginTop {
    margin-bottom: 0.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: .1rem !important;
        }
  .btn {
    margin-bottom: 0.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: .1rem !important;
        }
  .asdf {
    margin-bottom: 0.1rem !important;
  }
        .LoginBg {
            margin: 0 !important;
            height: .3rem !important;
        }
  .LoginBg {
    margin: 0 !important;
    height: 0.3rem !important;
  }
        ::v-deep .el-card {
            top: 80% !important;
            padding: 0 !important;
        }
  ::v-deep .el-card {
    top: 80% !important;
    padding: 0 !important;
  }
        ::v-deep .el-card__body {
            padding: .25rem .5rem !important;
        }
  ::v-deep .el-card__body {
    padding: 0.25rem 0.5rem !important;
  }
        ::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;
        }
  ::v-deep .el-input__inner {
    height: 0.35rem !important;
  }
        .hua {
            height: 5rem !important;
        }
  .hua {
    height: 5rem !important;
  }
        .LoginTop {
            margin-bottom: .25rem !important;
        }
  .LoginTop {
    margin-bottom: 0.25rem !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;
            height: 2.5rem !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;
        }
  .asdf {
    margin-bottom: 0.1rem !important;
  }
}
    }
@media screen and (min-width: 1920px) and (max-width: 2560px) {
  .LoginBg {
    margin: 0 !important;
    height: 0.3rem !important;
  }
    @media screen and (min-width: 1920px) and (max-width:2560px) {
        .LoginBg {
            margin: 0 !important;
            height: .3rem !important;
        }
  ::v-deep .el-card {
    top: 80% !important;
    padding: 0 !important;
  }
        ::v-deep .el-card {
            top: 80% !important;
            padding: 0 !important;
        }
  ::v-deep .el-card__body {
    padding: 0.25rem 0.5rem !important;
  }
        ::v-deep .el-card__body {
            padding: .25rem .5rem !important;
        }
  ::v-deep .el-form {
    padding-left: 0.1rem !important;
  }
        ::v-deep .el-form {
            padding-left: .1rem !important;
        }
  ::v-deep .el-form-item__error {
    font-size: 0.13rem !important;
  }
        ::v-deep .el-form-item__error {
            font-size: .13rem !important;
        }
  ::v-deep .el-input__inner {
    height: 0.35rem !important;
  }
        ::v-deep .el-input__inner {
            height: .35rem !important;
        }
  .hua {
    height: 5rem !important;
  }
        .hua {
            height: 5rem !important;
        }
  .LoginTop {
    margin-bottom: 0.25rem !important;
  }
        .LoginTop {
            margin-bottom: .25rem !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;
    height: 2.5rem !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;
        }
    }
  .asdf {
    margin-bottom: 0.1rem !important;
  }
}
    .LoginBg {
        width: 1.2rem;
        height: .37rem;
        background: url(@/static/image/重置密码.png) no-repeat 0 0;
        background-size: 100% 100%;
.LoginBg {
  width: 1.2rem;
  height: 0.37rem;
  background: url(@/static/image/重置密码.png) no-repeat 0 0;
  background-size: 100% 100%;
}
    }
::v-deep .el-card {
  border-radius: 0;
  width: 5.42rem;
  /* height: 5.65rem; */
  position: absolute;
  top: 80%;
}
::v-deep .el-card__body {
  padding: 0.26rem 0.58rem;
}
    ::v-deep .el-card {
        border-radius: 0;
        width: 5.42rem;
        /* height: 5.65rem; */
        position: absolute;
        top: 80%;
    }
.btn >>> .el-form-item__content {
  margin-left: 0 !important;
}
    ::v-deep .el-card__body {
        padding: .26rem .58rem;
    }
::v-deep .el-form-item__content {
  margin-left: 0 !important;
  flex: 1;
}
    .btn>>>.el-form-item__content {
        margin-left: 0 !important;
::v-deep .el-input__inner {
  border: none;
  border-bottom: 1px solid #2d476a;
  border-radius: 0;
  padding: 0;
  height: 0.4rem;
  line-height: 0.4rem;
}
    }
::v-deep .el-form-item__error {
  /* display: none; */
}
    ::v-deep .el-form-item__content {
        margin-left: 0 !important;
        flex: 1;
    }
::v-deep .input.invalid:focus {
  border-color: #2d476a !important;
}
    ::v-deep .el-input__inner {
        border: none;
        border-bottom: 1px solid #2d476a;
        border-radius: 0;
        padding: 0;
        height: .4rem;
        line-height: .4rem;
    }
::v-deep .el-input__inner:invalid {
  border-color: #2d476a !important;
}
    ::v-deep .el-form-item__error {
        /* display: none; */
    }
::v-deep .el-form-item__label {
  min-width: 0.6rem;
  padding: 0;
  color: #244a7b;
  font-size: 0.14rem;
  font-weight: 500;
  margin-right: 0.29rem;
}
    ::v-deep .input.invalid:focus {
        border-color: #2d476a !important;
    }
::v-deep .el-form-item {
  margin-bottom: 0.22rem;
  display: flex;
}
    ::v-deep .el-input__inner:invalid {
        border-color: #2d476a !important;
    }
.ss1 {
  background-repeat: no-repeat;
  background-size: 100% 100%;
  width: 40rpx;
  height: 40rpx;
  background-size: 100% 100%;
}
.s1 {
  background-image: url(@/static/image/search.png);
}
    ::v-deep .el-form-item__label {
        min-width: .6rem;
        padding: 0;
        color: #244A7B;
        font-size: .14rem;
        font-weight: 500;
        margin-right: .29rem;
    }
.s2 {
  background-image: url(@/static/image/question.png);
}
    ::v-deep .el-form-item {
        margin-bottom: .22rem;
        display: flex;
    }
.s3 {
  background-image: url(@/static/image/question.png);
}
    .ss1 {
        background-repeat: no-repeat;
        background-size: 100% 100%;
        width: 40rpx;
        height: 40rpx;
        background-size: 100% 100%;
    }
.container {
  background: url(@/static/image/bg1.png);
  width: 100vw;
  height: 100vh;
    .s1 {
        background-image: url(@/static/image/search.png);
  color: #fff;
    }
  .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/question.png);
    }
    .Ttop {
      margin-top: 0.38rem;
      margin-bottom: 1.22rem;
    }
    .s3 {
        background-image: url(@/static/image/question.png);
    }
    .r-top {
      font-size: 40rpx !important;
      margin: 10rpx 0;
    }
  }
}
    .container {
        background: url(@/static/image/bg1.png);
        width: 100vw;
        height: 100vh;
.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%;
}
        color: #fff;
.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%;
}
        .repository {
            width: 100% !important;
            /* margin-top: 19px; */
            /* height: 68%; */
            display: flex;
            flex-direction: column;
            justify-content: space-around;
            align-items: center;
.hua {
  width: 13.81rem;
  height: 5.965rem;
  position: absolute;
  background: url(@/static/image/bg3.png) no-repeat 0 0;
  background-size: 100% 100%;
}
            .Ttop {
                margin-top: .38rem;
                margin-bottom: 1.22rem;
            }
/* 底部人物背景图  */
.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;
}
            .r-top {
                font-size: 40rpx !important;
                margin: 10rpx 0;
            }
        }
::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;
    .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%;
    }
  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;
  }
}
    .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%;
    }
    .hua {
        width: 13.81rem;
        height: 5.965rem;
        position: absolute;
        background: url(@/static/image/bg3.png) no-repeat 0 0;
        background-size: 100% 100%;
    }
    /* 底部人物背景图  */
    .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 .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;
            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;
        }
    }
    .Bbottom {
        display: flex;
        justify-content: center;
    }
</style>
.Bbottom {
  display: flex;
  justify-content: center;
}
</style>
src/pages/inherit/index.vue
@@ -110,10 +110,13 @@
  onLoad(options) {
    this.idIndex = options.id;
    console.log("optionsoptionsoptions", options.id);
    getDynasty()
  },
  mounted() {
    this.getStatistics();
    this.getData();
    this.getDynasty()
  },
  methods: {
    getStatistics() {
@@ -179,14 +182,14 @@
      let option = {
        title: {
          text: [""]
          text: [""],
        },
        backgroundColor: {
          type: "image",
          image: "/static/image/WMBg.png",
          repeat: "repeat-x", // 是否平铺,可以是 'repeat-x', 'repeat-y', 'no-repeat'
          size: "100% 100%", // 背景图片的尺寸,可以是百分比或者像素
          position: "center center" // 背景图片的位置,可以是 top, bottom, middle 或者百分比
          position: "center center", // 背景图片的位置,可以是 top, bottom, middle 或者百分比
        },
        tooltip: {},
        animationDurationUpdate: 1500,
@@ -201,7 +204,7 @@
            label: {
              show: true,
              color: "black", // 设置节点文字颜色为黑色
              fontSize: FontSize // 设置文字大小
              fontSize: FontSize, // 设置文字大小
            },
            edgeSymbol: ["circle", "arrow"],
            edgeSymbolSize: [4, 10],
@@ -216,7 +219,7 @@
                // params.data 是边的数据对象,你可以在这里定义关系名
                // 例如,你可以根据 source 和 target 的名称来定义关系名
                return params.data.relationName; // 如果定义了 relationName 则显示它,否则显示“父子”
              }
              },
            },
            //各个节点
            data: this.nodeData,
@@ -224,17 +227,17 @@
              color: "#000000",
              opacity: 0.9,
              width: 2,
              curveness: 0
              curveness: 0,
            },
            force: {
              // initLayout: 'circular',
              // gravity: 0
              friction: 0.1,
              repulsion: 500,
              edgeLength: 6
            }
          }
        ]
              edgeLength: 6,
            },
          },
        ],
      };
      //进行渲染
      myChart.setOption(option);
src/pages/knowledgeBase/knowledgeBase.vue
@@ -1,1056 +1,1226 @@
<template>
    <view>
        <!-- 顶部 -->
        <headNav idIndex="0" text="中国医学人物知识库" />
        <!-- 搜索 -->
        <view class="flex  flex-center Search">
            <!-- <luanqing-search class="search_bar" @onSearch="onSearch"></luanqing-search> -->
            <advancedSearch @onSearch="onSearch" placehold="输入姓名/别名/时期/传主职业搜索" :isAvancedTrue="false" />
            <view class="advancedSea" @click="isAvancedClick" style="color:#244A7B ;cursor: pointer;">高级搜索 ﹀</view>
        </view>
        <!-- 热门搜索 -->
        <view class="flex flex-center hotSearch" style="font-size: 20rpx;margin: 10rpx 0;">
            热门搜索:
            <ul class="flex" style="margin-right: 10rpx;">
                <!--
                 <li v-for="item in hot" :key="item.id" @tap="HotClick(item.id)" style="margin: 0 10rpx;"
                     :style="{color:item.bgColor==true?'#5879a4':'#000'}">
                     {{item.name}}
                 </li>-->
                <li v-for="item in hot" @click="hotSearchClick(item)" :key="item.id" class="cursor"
                    style="color: #5879a4;">
                    {{item.name}}
                </li>
            </ul>
        </view>
        <!-- 高级搜索 -->
        <view class="advancedSeaTrue" v-if="isAdvancedSearch" style="padding: 0 230rpx; margin-bottom: .18rem;">
            <view style="background-color: #fff;padding: 20rpx;" class="advancedSeaTrue1">
                <h3>高级搜索</h3>
                <MyForm @submit="onSubmit" :from="from" />
            </view>
        </view>
        <uni-row class="demo-uni-row zhushuju flex flex-items-start" style="padding: 0 230rpx; ">
            <!-- 左侧 -->
            <view class="fbox2" style="width: 2.6rem;">
                <!-- 职业 -->
                <view class="demo-uni-col zhiye dark box boox"
                    style="width: 2.6rem; margin-bottom: 40rpx;background-color: #fff; border: 2rpx solid #e0e0e0;min-height: 2rem;">
                    <h3>{{profession.title}}</h3>
                    <ul style="margin-top: 10rpx;" :class="{ 'a': activeBox === 'a'?'a':'' }">
                        <!-- background-color: #d6e3f4;border-radius: 60rpx; -->
                        <li class="flex"
                            :style="{'background':profession.index === item.tagId ?  '#d6e3f4' :'','borderRadius': profession.index === item.tagId ?  '60rpx' :'',display:index+1>professionIndex?'none':'flex'}"
                            v-for="(item,index) in profession.list" :key="index"
                            style="padding:0 20rpx;line-height: .3rem;height: .3rem;"
                            @click="handInstitCLick(item,'a')">
                            <view class="">{{item.tagName}}</view>
                            <view class="">{{item.count}}</view>
                        </li>
                    </ul>
                    <view v-if="profession.list.length-1 >3" class="flex flex-center ">
                        <view class="toggleButton" style="color: #C1D3EA;" @click="shrinkClick('a','职业')">
                            {{ activeBox !== 'a' ? '更多  ﹀' : '收起  ︿' }}
                        </view>
                    </view>
                </view>
                <!-- 时期 -->
                <view class="demo-uni-col dark box boox zhongjianleft"
                    style="background-color: #fff;border: 2rpx solid #e0e0e0;"
                    :style="{'marginBottom': isAdvancedSearch ===true ? '0': '40rpx'}">
                    <h3>{{dynasty.title}}</h3>
                    <ul style="margin-top: 10rpx;" :class="{ 'b': activeBox === 'b'?'b':'' }">
                        <!-- background-color: #d6e3f4;border-radius: 60rpx; -->
                        <li class="flex"
                            :style="{'background':dynasty.index === item.dynastyId ?  '#d6e3f4' :'','borderRadius': dynasty.index === item.dynastyId ?  '60rpx' :'',display:index+1>dynastyIndex?'none':'flex'}"
                            v-for="(item,index) in dynasty.list" :key="index" style="padding:0 20rpx;"
                            @click="handInstitCLick(item,'b')">
                            <view class="">{{item.dynastyName}}</view>
                            <view class="">{{item.count}}</view>
                        </li>
                    </ul>
                    <view v-if="dynasty.list.length-1 >3" class="flex flex-center ">
                        <view class="toggleButton" style="color: #C1D3EA;" @click="shrinkClick('b','时期')">
                            {{ activeBox !== 'b' ? '更多  ﹀' : '收起  ︿' }}
                        </view>
                    </view>
                </view>
                <!-- 来源 -->
                <view v-if="!isAdvancedSearch" class="demo-uni-col dark box boox"
                    style="height: 250rpx;background-color: #fff;border: 2rpx solid #e0e0e0;">
                    <h3>{{source.title}}</h3>
                    <ul class="laiyuan" style="margin-top: 10rpx;" :class="{ 'b': activeBox === 'b'?'b':'' }">
                        <!-- background-color: #d6e3f4;border-radius: 60rpx; -->
                        <li class="flex liClick" v-for="(item,index) in source.list" :key="index"
                            style="padding:0 20rpx;color: #244A7B;" @click="handInstitCLick(item,'c')">
                            <view class="">{{ index+1 + '. '  +item.source}}</view>
                        </li>
                    </ul>
                    <!--     <view class="flex flex-center">
  <view>
    <!-- 顶部 -->
    <headNav idIndex="0" text="中国医学人物知识库" />
    <!-- 搜索 -->
    <view class="flex flex-center Search">
      <!-- <luanqing-search class="search_bar" @onSearch="onSearch"></luanqing-search> -->
      <advancedSearch
        @onSearch="onSearch"
        placehold="输入姓名/别名/时期/传主职业搜索"
        :isAvancedTrue="false"
        :keyword="keywords"
      />
      <view
        class="advancedSea"
        @click="isAvancedClick"
        style="color: #244a7b; cursor: pointer"
        >高级搜索 ﹀</view
      >
    </view>
    <!-- 热门搜索 -->
    <view
      class="flex flex-center hotSearch"
      style="font-size: 20rpx; margin: 10rpx 0"
    >
      热门搜索:
      <ul class="flex" style="margin-right: 10rpx">
        <li
          v-for="item in hot"
          @click="hotSearchClick(item)"
          :key="item.id"
          class="cursor"
          style="color: #5879a4"
        >
          {{ item.name }}
        </li>
      </ul>
    </view>
    <!-- 高级搜索 -->
    <view
      class="advancedSeaTrue"
      v-if="isAdvancedSearch"
      style="padding: 0 230rpx; margin-bottom: 0.18rem"
    >
      <view
        style="background-color: #fff; padding: 20rpx"
        class="advancedSeaTrue1"
      >
        <h3>高级搜索</h3>
        <MyForm @submit="onSubmit" :from="from" />
      </view>
    </view>
    <uni-row
      class="demo-uni-row zhushuju flex flex-items-start"
      style="padding: 0 230rpx"
    >
      <!-- 左侧 -->
      <view class="fbox2" style="width: 2.6rem">
        <!-- 职业 -->
        <view
          class="demo-uni-col zhiye dark box boox"
          style="
            width: 2.6rem;
            margin-bottom: 40rpx;
            background-color: #fff;
            border: 2rpx solid #e0e0e0;
            min-height: 2rem;
          "
        >
          <h3>{{ profession.title }}</h3>
          <ul
            style="margin-top: 10rpx"
            :class="{ a: activeBox === 'a' ? 'a' : '' }"
          >
            <li
              class="flex"
              :style="{
                background: profession.index === item.tagId ? '#d6e3f4' : '',
                borderRadius: profession.index === item.tagId ? '60rpx' : '',
                display: index + 1 > professionIndex ? 'none' : 'flex',
              }"
              v-for="(item, index) in profession.list"
              :key="index"
              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>
            </li>
          </ul>
          <view v-if="profession.list.length - 1 > 3" class="flex flex-center">
            <view
              class="toggleButton"
              style="color: #c1d3ea"
              @click="shrinkClick('a', '职业')"
            >
              {{ activeBox !== "a" ? "更多  ﹀" : "收起  ︿" }}
            </view>
          </view>
        </view>
        <!-- 时期 -->
        <view
          class="demo-uni-col dark box boox zhongjianleft"
          style="background-color: #fff; border: 2rpx solid #e0e0e0"
          :style="{ marginBottom: isAdvancedSearch === true ? '0' : '40rpx' }"
        >
          <h3>{{ dynasty.title }}</h3>
          <ul
            style="margin-top: 10rpx"
            :class="{ b: activeBox === 'b' ? 'b' : '' }"
          >
            <!-- background-color: #d6e3f4;border-radius: 60rpx; -->
            <li
              class="flex"
              :style="{
                background: dynasty.index === item.dynastyId ? '#d6e3f4' : '',
                borderRadius: dynasty.index === item.dynastyId ? '60rpx' : '',
                display: index + 1 > dynastyIndex ? 'none' : 'flex',
              }"
              v-for="(item, index) in dynasty.list"
              :key="index"
              style="padding: 0 20rpx"
              @click="handInstitCLick(item, 'b')"
            >
              <view class="">{{ item.dynastyName }}</view>
              <view class="">{{ item.count }}</view>
            </li>
          </ul>
          <view v-if="dynasty.list.length - 1 > 3" class="flex flex-center">
            <view
              class="toggleButton"
              style="color: #c1d3ea"
              @click="shrinkClick('b', '时期')"
            >
              {{ activeBox !== "b" ? "更多  ﹀" : "收起  ︿" }}
            </view>
          </view>
        </view>
        <!-- 来源 -->
        <view
          v-if="!isAdvancedSearch"
          class="demo-uni-col dark box boox"
          style="
            /* height: 250rpx; */
            background-color: #fff;
            border: 2rpx solid #e0e0e0;
          "
        >
          <h3>{{ source.title }}</h3>
          <ul
            class="laiyuan"
            style="margin-top: 10rpx"
            :class="{ b: activeBox === 'b' ? 'b' : '' }"
          >
            <!-- background-color: #d6e3f4;border-radius: 60rpx; -->
            <li
              class="flex liClick"
              v-for="(item, index) in source.list"
              :key="index"
              style="padding: 0 20rpx; color: #244a7b"
              @click="handInstitCLick(item, 'c')"
            >
              <view class="">{{ index + 1 + ". " + item.source }}</view>
            </li>
          </ul>
          <!--     <view class="flex flex-center">
                            <view class="toggleButton" style="font-size: 25rpx;color: #C1D3EA;" @click="shrinkClick('b')">
                                {{ activeBox !== 'b' ? '更多  ﹀' : '收起  ︿' }}
                            </view>
                        </view> -->
                </view>
            </view>
            <!-- 右侧 -->
            <view class="rightList demo-uni-col light fbox3 relative flex flex-column flex-grow: 1;"
                style="width: 100%; margin-left: .2rem; background-color: #fff;border: 1px solid   #C1D3EA;padding: 10rpx 20rpx;">
                <view class="flex lightTop" style="width: 100%; margin:.1rem 0">
                    <view class="" style="color: #2C2C2C;">共1374条</view>
                    <el-button size="small" @click="exportClick">下载</el-button>
                </view>
                <el-table :data="tableData" class="lightBo" style="width: 100%">
                    <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>
                    <el-table-column prop="gender" label="性别" width="70"></el-table-column>
                    <el-table-column prop="period" label="时期"></el-table-column>
                    <el-table-column prop="birthYear" label="生年" width="130"></el-table-column>
                    <el-table-column prop="deathYear" label="卒年" width="130"></el-table-column>
                    <el-table-column prop="nativePlace" label="籍贯"></el-table-column>
                    <el-table-column prop="socialDistinction" label="社会身份"></el-table-column>
                    <el-table-column prop="official" label="官职"></el-table-column>
                </el-table>
                <!-- 分页 -->
                <el-row class="fenye" style="position: absolute;bottom: .1rem;">
                    <el-pagination class="paging flex" :current-page="CurrentPage" :total="total" :page-size="pageSize"
                        @current-change="CurrentChange" @prev-click="PrevClick" @next-click="NextClick" prev-text="上一页"
                        next-text="下一页" background layout="prev, pager, next">
                    </el-pagination>
                </el-row>
            </view>
        </uni-row>
        <div class="abox"></div>
        <Footer1 />
    </view>
        </view>
      </view>
      <!-- 右侧 -->
      <view
        class="rightList demo-uni-col light fbox3 relative flex flex-column flex-grow: 1;"
        style="
          width: 100%;
          margin-left: 0.2rem;
          background-color: #fff;
          border: 1px solid #c1d3ea;
          padding: 10rpx 20rpx;
        "
      >
        <view class="flex lightTop" style="width: 100%; margin: 0.1rem 0">
          <view class="" 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-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>
          <el-table-column
            prop="gender"
            label="性别"
            width="70"
          ></el-table-column>
          <el-table-column prop="period" label="时期"></el-table-column>
          <el-table-column
            prop="birthYear"
            label="生年"
            width="130"
          ></el-table-column>
          <el-table-column
            prop="deathYear"
            label="卒年"
            width="130"
          ></el-table-column>
          <el-table-column prop="nativePlace" label="籍贯"></el-table-column>
          <el-table-column
            prop="socialDistinction"
            label="社会身份"
          ></el-table-column>
          <el-table-column prop="official" label="官职"></el-table-column>
        </el-table>
        <!-- 分页 -->
        <el-row class="fenye" style="position: absolute; bottom: 0.1rem">
          <el-pagination
            class="paging flex"
            :current-page="CurrentPage"
            :total="total"
            :page-size="pageSize"
            @current-change="CurrentChange"
            @prev-click="PrevClick"
            @next-click="NextClick"
            prev-text="上一页"
            next-text="下一页"
            background
            layout="prev, pager, next"
          >
          </el-pagination>
        </el-row>
      </view>
    </uni-row>
    <div class="abox"></div>
    <Footer1 />
  </view>
</template>
<script>
    import Footer1 from '@/components/footer/footer'
    import MyForm from '@/components/form/form.vue'
    // 下载需要导入的依赖
    import ExportJsonExcel from "js-export-excel";
    import {
        getPDataStatistics,
        getPDownload,
        getPList,
        getHotSearch
    } from '@/api/index.js'
    export default {
        components: {
            Footer1,
            MyForm
        },
        data() {
            return {
                // 高级搜索显示
                isAdvancedSearch: false,
                // 高级搜索
                from: {
                    from: [{
                            type: 'input',
                            label: '姓名',
                            name: 'name',
                            value: ''
                        },
                        {
                            type: 'input',
                            label: '别名',
                            name: 'alias',
                            value: ''
                        },
                        {
                            type: 'input',
                            label: '籍贯',
                            name: 'nativePlace',
                            value: ''
                        },
                        {
                            type: 'select',
                            label: '职业',
                            value: '',
                            name: 'tagId',
                            options: [{
                                    label: '医家',
                                    value: '1'
                                },
                                {
                                    label: '世家',
                                    value: '2'
                                }
                            ]
                        },
                        {
                            type: 'input',
                            label: '职官',
                            name: 'official',
                            value: ''
                        },
                        {
                            type: 'select',
                            label: '性别',
                            value: '',
                            name: 'genderType',
                            options: [{
                                    label: '未指明',
                                    value: 'UNKNOWN'
                                }, {
                                    label: '男',
                                    value: 'MALE'
                                },
                                {
                                    label: '女',
                                    value: 'WOMAN'
                                }
                            ]
                        },
                        {
                            type: 'input',
                            label: '时期',
                            name: 'dynasty',
                            value: ''
                        },
                        {
                            type: 'input',
                            label: '机构',
                            name: 'institution',
                            value: ''
                        }
                    ]
                },
import Footer1 from "@/components/footer/footer";
import MyForm from "@/components/form/form.vue";
// 下载需要导入的依赖
import ExportJsonExcel from "js-export-excel";
import {
  getPDataStatistics,
  getPDownload,
  getPList,
  getHotSearch,
  getPersonList,
} from "@/api/index.js";
export default {
  components: {
    Footer1,
    MyForm,
  },
  data() {
    return {
      // 高级搜索显示
      isAdvancedSearch: false,
      // 高级搜索
      from: {
        from: [
          {
            type: "input",
            label: "姓名",
            name: "name",
            value: "",
          },
          {
            type: "input",
            label: "别名",
            name: "alias",
            value: "",
          },
          {
            type: "input",
            label: "籍贯",
            name: "nativePlace",
            value: "",
          },
          {
            type: "select",
            label: "职业",
            value: "",
            name: "tagId",
            options: [
              {
                label: "医家",
                value: "1",
              },
              {
                label: "世家",
                value: "2",
              },
            ],
          },
          {
            type: "input",
            label: "职官",
            name: "official",
            value: "",
          },
          {
            type: "select",
            label: "性别",
            value: "",
            name: "genderType",
            options: [
              {
                label: "未指明",
                value: "UNKNOWN",
              },
              {
                label: "男",
                value: "MALE",
              },
              {
                label: "女",
                value: "WOMAN",
              },
            ],
          },
          {
            type: "input",
            label: "时期",
            name: "dynasty",
            value: "",
          },
          {
            type: "input",
            label: "机构",
            name: "institution",
            value: "",
          },
        ],
      },
                // 热门搜索
                hot: [],
                // 职业
                profession: {
                    title: '职业',
                    index: 0,
                    id: 0,
                    list: []
                },
                // 现在多少条职业数据
                professionIndex: 4,
                // 展开和收缩的按钮需要
                activeBox: null,
                // 时期
                dynasty: {
                    title: '时期',
                    id: 0,
                    index: 0,
                    list: []
                },
                // 现在多少条时期数据
                dynastyIndex: 4,
                // 来源
                source: {
                    title: '来源',
                    index: 0,
                    id: 0,
                    list: []
                },
                // 表格的数组
                tableData: [],
                // 分页的总数
                total: 100,
                // 当前页
                CurrentPage: 1,
                // 一页显示多少条数据
                pageSize: 6,
                dataTable: [],
                option: {}
            }
        },
        onLoad(options) {
            this.onSearch({text:options.name})
        },
        mounted() {
            // 修改两次的高度保持一致
            var box1Height = document.querySelector('.fbox2').offsetHeight;
            document.querySelector('.fbox3').style.height = box1Height + (box1Height / 18) + 'px';
            console.log(box1Height, 'box1Height');
            this.getStatistics()
            // 默认先调用搜索一次
            this.onSearch('')
        },
        methods: {
            // ExportJsonExcel实例
            Ture() {
                //   创建ExportJsonExcel实例对象
                let toExcel = new ExportJsonExcel(this.option);
                //   调用保存方法
                toExcel.saveExcel();
            },
            // 下载按钮
            exportClick() {
                const dataList = this.tableData;
                let dataTable = []; //   dataTable代表excel文件中的数据内容
                if (dataList) {
                    for (let i in dataList) {
                        let obj = {
                            序号: dataList[i].id,
                            姓名: dataList[i].personName,
                            别名: dataList[i].personAlias,
                            性别: dataList[i].gender,
                            时期: dataList[i].period,
                            生年: dataList[i].birthYear,
                            卒年: dataList[i].deathYear,
                            籍贯: dataList[i].nativePlace,
                            社会身份: dataList[i].socialDistinction,
                            官职: dataList[i].official,
                        };
      // 热门搜索
      hot: [],
      // 职业
      profession: {
        title: "职业",
        index: 0,
        id: 0,
        list: [],
      },
      // 现在多少条职业数据
      professionIndex: 4,
      // 展开和收缩的按钮需要
      activeBox: null,
      // 时期
      dynasty: {
        title: "时期",
        id: "",
        index: "",
        list: [],
      },
      // 现在多少条时期数据
      dynastyIndex: 4,
      // 来源
      source: {
        title: "来源",
        index: 0,
        id: 0,
        list: [],
      },
      // 表格的数组
      tableData: [],
      // 分页的总数
      total: 100,
      // 当前页
      CurrentPage: 1,
      // 一页显示多少条数据
      pageSize: 10,
      dataTable: [],
      option: {},
      keywords: "",
    };
  },
  onLoad(options) {
    this.onSearch({ text: options.name });
    this.keywords = options.name;
  },
  mounted() {
    // 修改两次的高度保持一致
    var box1Height = document.querySelector(".fbox2").offsetHeight;
    document.querySelector(".fbox3").style.height =
      box1Height + box1Height / 18 + "px";
    console.log(box1Height, "box1Height");
    this.getStatistics();
    // 默认先调用搜索一次
    this.onSearch("");
  },
  methods: {
    // ExportJsonExcel实例
    Ture() {
      //   创建ExportJsonExcel实例对象
      let toExcel = new ExportJsonExcel(this.option);
      //   调用保存方法
      toExcel.saveExcel();
    },
    // 下载按钮
    async exportClick() {
      const dataList = this.tableData;
      let Obj = {
        keywords: "", //搜索框检索
        name: "", //姓名
        alias: "", //别名
        nativePlace: "", //机关
        tagId: null, //职业id
        official: null, //职官
        genderType: null, //性别
        dynasty: null, //朝代id
        dynastyId: null, //朝代id
        institution: null, //机构
        bookId: null, //来源id
        page: 1,
        pageSize: 9999,
      };
      // // 搜索
      await getPersonList(Obj).then((res) => {
        console.log(res);
        // if (res.success) {
        //   console.log(res, "搜索接口");
        //   this.tableData = res.list;
        //   // 总数量
        //   this.total = res.npage.totalCount;
        // }
      });
      let dataTable = []; //   dataTable代表excel文件中的数据内容
      if (dataList) {
        for (let i in dataList) {
          let obj = {
            序号: dataList[i].id,
            姓名: dataList[i].personName,
            别名: dataList[i].personAlias,
            性别: dataList[i].gender,
            时期: dataList[i].period,
            生年: dataList[i].birthYear,
            卒年: dataList[i].deathYear,
            籍贯: dataList[i].nativePlace,
            社会身份: dataList[i].socialDistinction,
            官职: dataList[i].official,
          };
                        dataTable.push(obj); //   设置excel每列获取的数据源
                    }
                }
                this.option.fileName = "中医医学人物知识库"; //excel文件名
                //excel文件数据
                this.option.datas = [{
                    //   excel文件的数据源
                    sheetData: dataTable,
                    //   excel文件sheet的表名
                    sheetName: "sheet",
                    //   excel文件表头名
                    sheetHeader: ["序号", "姓名", "别名", "性别", "别名", "时期", "生年", "卒年", "籍贯", "社会身份", "官职"],
                    //   excel文件列名
                    sheetFilter: ["序号", "姓名", "别名", "性别", "别名", "时期", "生年", "卒年", "籍贯", "社会身份", "官职"],
                    // columnWidths: ['10', '10', '20'] //excel列宽度设置
                }, ];
                this.Ture();
            },
            // 接口
            async getStatistics() {
                // 热门搜索
                await getHotSearch().then(res => {
                    console.log(res, '热门搜索');
                    this.hot = Object.keys(res.object).map(key => {
                        return {
                            id: parseInt(key),
                            name: res.object[key]
                        };
                    })
                })
                // 右侧职业、时期、来源的数据
                await getPDataStatistics().then(res => {
                    console.log(res, '接口成功sdsdfsdsfs');
                    let totalCount1 = res.object.occupationStatistic.details.reduce((total, item) => total +
                        item.count, 0);
                    let totalCount2 = res.object.dynastyStatistic.details.reduce((total, item) => total + item
                        .count, 0);
                    // 职业
                    this.profession.list = [
                        ...res.object.occupationStatistic.details,
                    ]
                    // 高级搜索里面的职业--------------------------------------------------
                    // 找到职业字段在 from 对象中的索引
                    const professionIndex = this.from.from.findIndex(field => field.label === '职业');
                    // 如果找到了职业字段
                    if (professionIndex !== -1) {
                        // 将 profession.list 转换为 options 格式
                        const options = this.profession.list.map(item => ({
                            label: item.tagName,
                            value: item.tagId.toString() // 将 id 转换为字符串,确保与 value 类型一致
                        }));
          dataTable.push(obj); //   设置excel每列获取的数据源
        }
      }
      this.option.fileName = "中医医学人物知识库"; //excel文件名
      //excel文件数据
      this.option.datas = [
        {
          //   excel文件的数据源
          sheetData: dataTable,
          //   excel文件sheet的表名
          sheetName: "sheet",
          //   excel文件表头名
          sheetHeader: [
            "序号",
            "姓名",
            "别名",
            "性别",
            "别名",
            "时期",
            "生年",
            "卒年",
            "籍贯",
            "社会身份",
            "官职",
          ],
          //   excel文件列名
          sheetFilter: [
            "序号",
            "姓名",
            "别名",
            "性别",
            "别名",
            "时期",
            "生年",
            "卒年",
            "籍贯",
            "社会身份",
            "官职",
          ],
          // columnWidths: ['10', '10', '20'] //excel列宽度设置
        },
      ];
      this.Ture();
    },
    // 接口
    async getStatistics() {
      // 热门搜索
      await getHotSearch().then((res) => {
        console.log(res, "热门搜索");
        this.hot = Object.keys(res.object).map((key) => {
          return {
            id: parseInt(key),
            name: res.object[key],
          };
        });
      });
      // 右侧职业、时期、来源的数据
      await getPDataStatistics().then((res) => {
        console.log(res, "接口成功sdsdfsdsfs");
        let totalCount1 = res.object.occupationStatistic.details.reduce(
          (total, item) => total + item.count,
          0
        );
        let totalCount2 = res.object.dynastyStatistic.details.reduce(
          (total, item) => total + item.count,
          0
        );
        // 职业
        this.profession.list = [
          { count: totalCount1, tagName: "全部", tagId: 0 },
          ...res.object.occupationStatistic.details,
        ];
        // 高级搜索里面的职业--------------------------------------------------
        // 找到职业字段在 from 对象中的索引
        const professionIndex = this.from.from.findIndex(
          (field) => field.label === "职业"
        );
        // 如果找到了职业字段
        if (professionIndex !== -1) {
          // 将 profession.list 转换为 options 格式
          const options = this.profession.list.map((item) => ({
            label: item.tagName,
            value: item.tagId.toString(), // 将 id 转换为字符串,确保与 value 类型一致
          }));
                        // 更新职业字段的 options 属性
                        this.$set(this.from.from[professionIndex], 'options', options);
                    }
                    // --------------------------------------------------
                    this.profession.index = this.profession.list[0].tagId
                    // 时期
                    this.dynasty.list = [
                        ...res.object.dynastyStatistic.details
                    ]
                    // 来源
                    this.source.list = res.object.sourceStatistic.details
                    this.source.index = this.source.list[0].bookId
                })
            },
            // 热门搜索
            hotSearchClick(item) {
                this.onSearch({text:item.name})
                console.log(item, '热门搜索');
            },
            // 左侧的机构统计等等按钮
            handInstitCLick(item, name) {
                this.dynasty.id = 0
                this.source.id = 0
                this.profession.id = 0
                this.CurrentPage = 1
                if (name == 'a') {
                    this.profession.index = item.tagId
                    this.profession.id = item.tagId
                    this.CurrentPage = 1
          // 更新职业字段的 options 属性
          this.$set(this.from.from[professionIndex], "options", options);
        }
        // --------------------------------------------------
        this.profession.index = this.profession.list[0].tagId;
        // 时期
        this.dynasty.list = [
          { count: totalCount2, dynastyName: "全部", dynastyId: "" },
          ...res.object.dynastyStatistic.details,
        ];
        // 来源
        this.source.list = res.object.sourceStatistic.details;
        this.source.index = this.source.list[0].bookId;
      });
    },
    // 热门搜索
    hotSearchClick(item) {
      this.onSearch({ text: item.name });
      console.log(item, "热门搜索");
    },
    // 左侧的机构统计等等按钮
    handInstitCLick(item, name) {
      //   this.dynasty.id = 0;
      //   this.source.id = 0;
      //   this.profession.id = 0;
      //   this.CurrentPage = 1;
      if (name == "a") {
        this.profession.index = item.tagId;
        this.profession.id = item.tagId;
        this.CurrentPage = 1;
      } else if (name == "b") {
        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("");
                } else if (name == 'b') {
                    this.dynasty.index = item.dynastyId
                    this.dynasty.id = item.dynastyId
                    this.CurrentPage = 1
                    console.log(item);
      console.log(item, name);
    },
    isAvancedClick() {
      this.isAdvancedSearch = !this.isAdvancedSearch;
      this.$nextTick(() => {
        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";
        }
      });
    },
    // 高级搜索
    async onSubmit(val) {
      console.log(val);
      this.profession.index = Number(val.tagId);
      this.profession.id = Number(val.tagId);
      const currentDynasty = this.dynasty.list.find(
        (f) => f.dynastyName == val.dynasty
      );
      if (currentDynasty) {
        this.dynasty.index = currentDynasty.dynastyId;
        this.dynasty.id = currentDynasty.dynastyId;
      }
                } else if (name == 'c') {
                    this.source.index = item.bookId
                    this.source.id = item.bookId
                    this.CurrentPage = 1
                    console.log('来源');
      this.CurrentPage = 1;
      let Obj = {
        keywords: "", //搜索框检索
        name: val.name, //姓名
        alias: val.alias, //别名
        nativePlace: val.nativePlace, //机关
        tagId: val.tagId !== "" ? Number(val.tagId) : null, //职业id
        official: val.official, //职官
        genderType: val.genderType !== "" ? val.genderType : null, //性别
        dynasty: val.dynasty, //朝代id
        dynastyId: this.dynasty.id, //朝代id
        institution: val.institution, //机构
        bookId: null, //来源id
        page: this.CurrentPage,
        pageSize: this.pageSize,
      };
      // // 搜索
      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) {
      let Obj = {
        keywords: val.text, //搜索框检索
        name: "", //姓名
        alias: "", //别名
        nativePlace: "", //机关
        tagId: this.profession.id, //职业id
        official: "", //职官
        genderType: null, //性别
        dynasty: null, //朝代id
        dynastyId: this.dynasty.id, //朝代id
        institution: "", //机构
        bookId: this.source.id, //来源id
        page: this.CurrentPage,
        pageSize: this.pageSize,
      };
      // // 搜索
      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.onSearch('')
                console.log(item, name);
            },
            isAvancedClick() {
                this.isAdvancedSearch = !this.isAdvancedSearch
                this.$nextTick(() => {
                    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';
                    }
                })
            },
            // 高级搜索
            async onSubmit(val) {
                console.log(val);
                this.CurrentPage = 1
                let Obj = {
                    "keywords": '', //搜索框检索
                    "name": val.name, //姓名
                    "alias": val.alias, //别名
                    "nativePlace": val.nativePlace, //机关
                    "tagId": val.tagId !== '' ? val.tagId : null, //职业id
                    "official": val.official, //职官
                    "genderType": val.genderType !== '' ? val.genderType : null, //性别
                    "dynasty": val.dynasty, //朝代id
                    "dynastyId": null, //朝代id
                    "institution": val.institution, //机构
                    "bookId": null, //来源id
                    "page": this.CurrentPage,
                    "pageSize": this.pageSize
                }
                // // 搜索
                await getPList(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) {
                let Obj = {
                    "keywords": val.text, //搜索框检索
                    "name": "", //姓名
                    "alias": "", //别名
                    "nativePlace": "", //机关
                    "tagId": this.profession.id, //职业id
                    "official": "", //职官
                    "genderType": null, //性别
                    "dynasty": null, //朝代id
                    "dynastyId": this.dynasty.id, //朝代id
                    "institution": "", //机构
                    "bookId": this.source.id, //来源id
                    "page": this.CurrentPage,
                    "pageSize": this.pageSize
                }
                // // 搜索
                await getPList(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 : 4;
                    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 : 4;
                    this.professionIndex = 4
                    this.activeBox = this.activeBox === 'b' ? null : 'b';
                }
            },
            // 分页当前页触发事件
            CurrentChange(val) {
                if (this.CurrentPage != val) {
                    this.CurrentPage = val
                    console.log('当前页', val);
                    this.onSearch('')
                }
            },
            // 上一页
            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('')
                }
            }
        }
    }
      // this.activeBox = this.activeBox === 'a' ? null : 'a';
      if (name == "职业") {
        console.log("职业");
        this.professionIndex =
          this.professionIndex < this.profession.list.length
            ? this.profession.list.length
            : 4;
        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
            : 4;
        this.professionIndex = 4;
        this.activeBox = this.activeBox === "b" ? null : "b";
      }
    },
    // 分页当前页触发事件
    CurrentChange(val) {
      if (this.CurrentPage != val) {
        this.CurrentPage = val;
        console.log("当前页", val);
        this.onSearch("");
      }
    },
    // 上一页
    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("");
      }
    },
  },
};
</script>
<style scoped>
    /* 表头 */
    ::v-deep .el-table__header {
        margin-bottom: .02rem;
    }
/* 表头 */
::v-deep .el-table__header {
  margin-bottom: 0.02rem;
}
    ::v-deep .has-gutter tr>th {
        background-color: #DDE8F6 !important;
        font-weight: normal;
::v-deep .has-gutter tr > th {
  background-color: #dde8f6 !important;
  font-weight: normal;
}
    }
::v-deep .el-table__header th {
  height: 0.3rem;
  line-height: 0.3rem;
  font-size: 0.14rem;
  color: #2c2c2c;
  /* 表头文字颜色为白色,增加对比度 */
  margin-bottom: 0.02rem !important;
}
    ::v-deep .el-table__header th {
        height: .3rem;
        line-height: .3rem;
        font-size: .14rem;
        color: #2C2C2C;
        /* 表头文字颜色为白色,增加对比度 */
        margin-bottom: .02rem !important;
    }
::v-deep .el-table::before {
  border: 0;
  background-color: #fff;
}
    ::v-deep .el-table::before {
        border: 0;
        background-color: #fff;
    }
/* 表格 */
::v-deep .el-table__body td {
  height: 0.3rem;
  line-height: 0.3rem;
  font-size: 0.14rem;
  color: #2c2c2c !important;
  font-weight: normal;
}
    /* 表格 */
    ::v-deep .el-table__body td {
        height: .3rem;
        line-height: .3rem;
        font-size: .14rem;
        color: #2C2C2C !important;
        font-weight: normal;
    }
.abox {
  height: 1rem;
}
    .abox {
        height: 1rem;
    }
/* 分页 */
.paging ::v-deep .btn-prev,
.paging ::v-deep .btn-next {
  border: 0;
}
    /* 分页 */
    .paging ::v-deep .btn-prev,
    .paging ::v-deep .btn-next {
        border: 0;
    }
.paging ::v-deep .btn-prev span,
.paging ::v-deep .btn-next span {
  font-size: 0.12rem;
  height: 0.3rem;
  line-height: 0.3rem;
  background-color: #fff;
  color: #9e9e9e;
  text-align: center;
  border: 1px solid #9e9e9e;
  padding: 0 0.1rem;
}
    .paging ::v-deep .btn-prev span,
    .paging ::v-deep .btn-next span {
        font-size: .12rem;
        height: .3rem;
        line-height: .3rem;
        background-color: #fff;
        color: #9E9E9E;
        text-align: center;
        border: 1px solid #9E9E9E;
        padding: 0 .1rem;
    }
.paging ::v-deep .el-pager li {
  font-size: 0.1rem;
  width: 0.28rem;
  height: 0.3rem;
  line-height: 0.3rem;
  background-color: #fff;
  color: #9e9e9e;
  text-align: center;
  border: 1px solid #9e9e9e;
}
    .paging ::v-deep .el-pager li {
        font-size: .1rem;
        width: .28rem;
        height: .3rem;
        line-height: .3rem;
        background-color: #fff;
        color: #9E9E9E;
        text-align: center;
        border: 1px solid #9E9E9E;
    }
/* -------------- */
/* 右侧 */
.rightList {
  padding-left: 0.2rem !important;
    /* -------------- */
    /* 右侧 */
    .rightList {
        padding-left: .2rem !important;
  .light {
    padding: 0.1rem 0.2rem !important;
  }
        .light {
            padding: .1rem .2rem !important;
        }
  .lightTop {
    font-size: 0.14rem !important;
  }
        .lightTop {
            font-size: .14rem !important;
        }
  .el-button {
    font-size: 0.12rem !important;
    padding: 0.05rem 0.18rem !important;
  }
        .el-button {
            font-size: .12rem !important;
            padding: .05rem .18rem !important;
        }
  .lightBo {
    font-size: 0.14rem !important;
        .lightBo {
            font-size: .14rem !important;
    .is-leaf {
      background-color: #c1d3ea !important;
      color: #2c2c2c !important;
      font-weight: 400;
            .is-leaf {
                background-color: #C1D3EA !important;
                color: #2C2C2C !important;
                font-weight: 400;
      .cell {
        height: 0.3rem !important;
        line-height: 0.3rem !important;
      }
    }
  }
                .cell {
  .el-table__body-wrapper {
    .el-table__row {
      height: 0.46rem !important;
      line-height: 0.46rem !important;
                    height: .3rem !important;
                    line-height: .3rem !important;
                }
            }
        }
      .cell {
        height: 0.3rem !important;
        line-height: 0.3rem !important;
      }
    }
  }
}
        .el-table__body-wrapper {
            .el-table__row {
                height: .46rem !important;
                line-height: .46rem !important;
@media screen and (min-width: 2560px) and (max-width: 3840px) {
  /* 搜索 */
  .Search {
    margin: 0.35rem 0 0.16rem !important;
    font-size: 0.12rem !important;
  }
                .cell {
  .Search ::v-deep .advancedSea {
    font-size: 0.12rem !important;
    margin-left: 0.35rem;
  }
                    height: .3rem !important;
                    line-height: .3rem !important;
                }
            }
  .Search ::v-deep .flex-center {
    height: 80% !important;
  }
        }
    }
  .hotSearch {
    font-size: 0.12rem !important;
    margin-bottom: 0.19rem !important;
    @media screen and (min-width:2560px)and (max-width:3840px) {
    li {
      font-size: 0.12rem !important;
      margin: 0 0.1rem;
    }
  }
        /* 搜索 */
        .Search {
            margin: .35rem 0 .16rem !important;
            font-size: .12rem !important;
        }
  .advancedSeaTrue,
  .zhushuju {
    padding: 0 1.24rem !important;
  }
        .Search ::v-deep .advancedSea {
            font-size: .12rem !important;
            margin-left: .35rem;
        }
  .advancedSeaTrue1 {
    padding: 0.08rem 0.19rem !important;
    font-size: 0.14rem !important;
  }
        .Search ::v-deep .flex-center {
            height: 80% !important;
        }
  /* Form组件里面的样式 */
  ::v-deep .el-row {
    display: flex;
    flex-wrap: wrap;
    margin-top: 0.1rem !important;
  }
        .hotSearch {
            font-size: .12rem !important;
            margin-bottom: .19rem !important;
  ::v-deep .el-form-item {
    display: flex !important;
    flex-wrap: wrap !important;
    margin-bottom: 0.18rem !important;
  }
            li {
                font-size: .12rem !important;
                margin: 0 .1rem;
            }
        }
  ::v-deep .el-form-item__label {
    font-size: 0.14rem !important;
    height: 0.3rem !important;
    display: flex !important;
    align-items: center !important;
  }
        .advancedSeaTrue,
        .zhushuju {
            padding: 0 1.24rem !important;
        }
  ::v-deep .el-input__inner {
    font-size: 0.14rem !important;
    height: 0.3rem !important;
  }
        .advancedSeaTrue1 {
            padding: .08rem .19rem !important;
            font-size: .14rem !important;
        }
  ::v-deep .Formbtn {
    width: 100% !important;
    display: flex;
    justify-content: center;
    align-items: center;
        /* Form组件里面的样式 */
        ::v-deep .el-row {
            display: flex;
            flex-wrap: wrap;
            margin-top: .1rem !important;
        }
    .el-button {
      width: 0.7rem !important;
      height: 0.3rem !important;
      font-size: 0.12rem;
    }
  }
        ::v-deep .el-form-item {
            display: flex !important;
            flex-wrap: wrap !important;
            margin-bottom: .18rem !important;
        }
  /* —————————————————————— */
  /* 左边的 */
  .boox {
    padding: 0.1rem 0.09rem;
    min-height: 2rem !important;
    position: relative;
        ::v-deep .el-form-item__label {
            font-size: .14rem !important;
            height: .3rem !important;
            display: flex !important;
            align-items: center !important;
        }
    ul {
      margin-top: 0.16rem !important;
    }
        ::v-deep .el-input__inner {
            font-size: .14rem !important;
            height: .3rem !important;
        }
    h3 {
      font-size: 0.14rem;
      margin-left: 0.1rem;
    }
        ::v-deep .Formbtn {
            width: 100% !important;
            display: flex;
            justify-content: center;
            align-items: center;
    li {
      height: 0.3rem;
      line-height: 0.3rem;
      padding: 0 0.2rem !important;
      margin: 0.05rem 0 !important;
      border-radius: 0.3rem !important;
    }
            .el-button {
                width: .7rem !important;
                height: .3rem !important;
                font-size: .12rem;
    .toggleButton1 {
      position: absolute;
      bottom: 0.1rem !important;
      left: 40% !important;
    }
            }
        }
    .toggleButton {
      font-size: 0.14rem !important;
    }
  }
        /* —————————————————————— */
        /* 左边的 */
        .boox {
            padding: .1rem .09rem;
            min-height: 2rem !important;
            position: relative;
  .zhongjianleft {
    margin: 0.27rem 0 !important;
  }
            ul {
                margin-top: .16rem !important;
            }
  .laiyuan {
    min-height: 2rem !important;
    overflow: auto;
  }
            h3 {
                font-size: .14rem;
                margin-left: .1rem;
            }
  /* ———————————————————— */
  ::v-deep .uni-input-placeholder {
    font-size: 0.14rem;
    height: 100%;
    display: flex;
    align-content: center;
    align-items: center;
  }
            li {
                height: .3rem;
                line-height: .3rem;
                padding: 0 .2rem !important;
                margin: .05rem 0 !important;
                border-radius: .3rem !important;
  ::v-deep .ffff {
    border-radius: 0.3rem !important;
    height: 0.36rem !important;
  }
            }
  ::v-deep .widget_button {
    border-radius: inherit !important;
    margin-right: 0.02rem !important;
    background-color: #597aa5;
  }
            .toggleButton1 {
                position: absolute;
                bottom: .1rem !important;
                left: 40% !important;
            }
  /* 右侧 */
  .rightList {
    padding-left: 0.2rem !important;
            .toggleButton {
                font-size: .14rem !important;
            }
        }
    .light {
      padding: 0.1rem 0.2rem !important;
    }
        .zhongjianleft {
            margin: .27rem 0 !important;
        }
    .lightTop {
      font-size: 0.14rem !important;
    }
        .laiyuan {
            min-height: 2rem !important;
        }
    .el-button {
      font-size: 0.12rem !important;
      padding: 0.05rem 0.18rem !important;
    }
        /* ———————————————————— */
        ::v-deep .uni-input-placeholder {
            font-size: .14rem;
            height: 100%;
            display: flex;
            align-content: center;
            align-items: center;
        }
    .lightBo {
      font-size: 0.14rem !important;
        ::v-deep .ffff {
            border-radius: .3rem !important;
            height: .36rem !important;
        }
        ::v-deep .widget_button {
            border-radius: inherit !important;
            margin-right: .02rem !important;
            background-color: #597AA5;
        }
        /* 右侧 */
        .rightList {
            padding-left: .2rem !important;
            .light {
                padding: .1rem .2rem !important;
            }
            .lightTop {
                font-size: .14rem !important;
            }
            .el-button {
                font-size: .12rem !important;
                padding: .05rem .18rem !important;
            }
            .lightBo {
                font-size: .14rem !important;
                .is-leaf {
                    background-color: #C1D3EA !important;
                    color: #2C2C2C !important;
                    font-weight: 400;
                    .cell {
                        height: .3rem !important;
                        line-height: .3rem !important;
                    }
                }
            }
            .el-table__body-wrapper {
                .el-table__row {
                    height: .46rem !important;
                    line-height: .46rem !important;
                    .cell {
                        height: .3rem !important;
                        line-height: .3rem !important;
                    }
                }
            }
        }
    }
    @media screen and (min-width:1366px) and (max-width:1920px) {
        /* 搜索 */
        .Search {
            margin: .35rem 0 .16rem !important;
            font-size: .12rem !important;
        }
        .Search ::v-deep .advancedSea {
            font-size: .12rem !important;
            margin-left: .35rem;
        }
      .is-leaf {
        background-color: #c1d3ea !important;
        color: #2c2c2c !important;
        font-weight: 400;
        .Search ::v-deep .flex-center {
            height: 80% !important;
        }
        .cell {
          height: 0.3rem !important;
          line-height: 0.3rem !important;
        }
      }
    }
        .hotSearch {
            font-size: .12rem !important;
            margin-bottom: .19rem !important;
    .el-table__body-wrapper {
      .el-table__row {
        height: 0.46rem !important;
        line-height: 0.46rem !important;
            li {
                font-size: .12rem !important;
                margin: 0 .1rem;
            }
        }
        .advancedSeaTrue1{
            border: 1px solid #C1D3EA;
        }
        .advancedSeaTrue,
        .zhushuju {
            padding: 0 1.24rem !important;
        }
        .cell {
          height: 0.3rem !important;
          line-height: 0.3rem !important;
        }
      }
    }
  }
}
        .advancedSeaTrue1 {
            padding: .08rem .19rem !important;
            font-size: .14rem !important;
        }
@media screen and (min-width: 1366px) and (max-width: 1920px) {
  /* 搜索 */
  .Search {
    margin: 0.35rem 0 0.16rem !important;
    font-size: 0.12rem !important;
  }
        /* Form组件里面的样式 */
        ::v-deep .el-row {
            display: flex;
            flex-wrap: wrap;
            margin-top: .1rem !important;
        }
  .Search ::v-deep .advancedSea {
    font-size: 0.12rem !important;
    margin-left: 0.35rem;
  }
        ::v-deep .el-form-item {
            display: flex !important;
            flex-wrap: wrap !important;
            margin-bottom: .18rem !important;
        }
  .Search ::v-deep .flex-center {
    height: 80% !important;
  }
        ::v-deep .el-form-item__label {
            font-size: .14rem !important;
            height: .3rem !important;
            display: flex !important;
            align-items: center !important;
        }
  .hotSearch {
    font-size: 0.12rem !important;
    margin-bottom: 0.19rem !important;
        ::v-deep .el-input__inner {
            font-size: .14rem !important;
            height: .3rem !important;
        }
    li {
      font-size: 0.12rem !important;
      margin: 0 0.1rem;
    }
  }
  .advancedSeaTrue1 {
    border: 1px solid #c1d3ea;
  }
  .advancedSeaTrue,
  .zhushuju {
    padding: 0 1.24rem !important;
  }
        ::v-deep .Formbtn {
            width: 100% !important;
            display: flex;
            justify-content: center;
            align-items: center;
  .advancedSeaTrue1 {
    padding: 0.08rem 0.19rem !important;
    font-size: 0.14rem !important;
  }
            .el-button {
                width: .7rem !important;
                height: .3rem !important;
                font-size: .12rem;
  /* Form组件里面的样式 */
  ::v-deep .el-row {
    display: flex;
    flex-wrap: wrap;
    margin-top: 0.1rem !important;
  }
            }
        }
  ::v-deep .el-form-item {
    display: flex !important;
    flex-wrap: wrap !important;
    margin-bottom: 0.18rem !important;
  }
        /* —————————————————————— */
        /* 左边的 */
        .boox {
            padding: .1rem .09rem;
            min-height: 2rem !important;
            position: relative;
  ::v-deep .el-form-item__label {
    font-size: 0.14rem !important;
    height: 0.3rem !important;
    display: flex !important;
    align-items: center !important;
  }
            ul {
                margin-top: .16rem !important;
                margin-bottom: .2rem !important;
            }
  ::v-deep .el-input__inner {
    font-size: 0.14rem !important;
    height: 0.3rem !important;
  }
            h3 {
                font-size: .14rem;
                margin-left: .1rem;
            }
  ::v-deep .Formbtn {
    width: 100% !important;
    display: flex;
    justify-content: center;
    align-items: center;
            li {
                height: .3rem;
                line-height: .3rem;
                padding: 0 .2rem !important;
                margin: .05rem 0 !important;
                border-radius: .3rem !important;
    .el-button {
      width: 0.7rem !important;
      height: 0.3rem !important;
      font-size: 0.12rem;
    }
  }
            }
  /* —————————————————————— */
  /* 左边的 */
  .boox {
    padding: 0.1rem 0.09rem;
    min-height: 2rem !important;
    position: relative;
            .toggleButton1 {
                position: absolute;
                bottom: .1rem !important;
                left: 40% !important;
            }
    ul {
      margin-top: 0.16rem !important;
      margin-bottom: 0.2rem !important;
    }
            .toggleButton {
                font-size: .14rem !important;
            }
        }
    h3 {
      font-size: 0.14rem;
      margin-left: 0.1rem;
    }
        .zhongjianleft {
            margin: .27rem 0 !important;
        }
    li {
      height: 0.3rem;
      line-height: 0.3rem;
      padding: 0 0.2rem !important;
      margin: 0.05rem 0 !important;
      border-radius: 0.3rem !important;
    }
        .laiyuan {
            min-height: 2rem !important;
        }
    .toggleButton1 {
      position: absolute;
      bottom: 0.1rem !important;
      left: 40% !important;
    }
        /* ———————————————————— */
        ::v-deep .uni-input-placeholder {
            font-size: .14rem;
            height: 100%;
            display: flex;
            align-content: center;
            align-items: center;
        }
    .toggleButton {
      font-size: 0.14rem !important;
    }
  }
        ::v-deep .ffff {
            border-radius: .3rem !important;
            height: .36rem !important;
        }
  .zhongjianleft {
    margin: 0.27rem 0 !important;
  }
        ::v-deep .widget_button {
            border-radius: inherit !important;
            margin-right: .02rem !important;
            background-color: #597AA5;
        }
  .laiyuan {
    min-height: 2rem !important;
    overflow: auto;
  }
        /* -------------------- */
        /* 右侧 */
        .rightList {
            width: 100%;
            padding-left: .2rem !important;
  /* ———————————————————— */
  ::v-deep .uni-input-placeholder {
    font-size: 0.14rem;
    height: 100%;
    display: flex;
    align-content: center;
    align-items: center;
  }
            .light {
                padding: .1rem .2rem !important;
            }
  ::v-deep .ffff {
    border-radius: 0.3rem !important;
    height: 0.36rem !important;
  }
            .lightTop {
                font-size: .14rem !important;
            }
  ::v-deep .widget_button {
    border-radius: inherit !important;
    margin-right: 0.02rem !important;
    background-color: #597aa5;
  }
            .el-button {
                font-size: .12rem !important;
                padding: .05rem .18rem !important;
            }
  /* -------------------- */
  /* 右侧 */
  .rightList {
    width: 100%;
    padding-left: 0.2rem !important;
            .lightBo {
                font-size: .14rem !important;
    .light {
      padding: 0.1rem 0.2rem !important;
    }
                .is-leaf {
                    background-color: #C1D3EA !important;
                    color: #2C2C2C !important;
                    font-weight: 400;
    .lightTop {
      font-size: 0.14rem !important;
    }
                    .cell {
    .el-button {
      font-size: 0.12rem !important;
      padding: 0.05rem 0.18rem !important;
    }
                        height: .3rem !important;
                        line-height: .3rem !important;
                    }
                }
            }
    .lightBo {
      font-size: 0.14rem !important;
            .el-table__body-wrapper {
                .el-table__row {
                    height: .46rem !important;
                    line-height: .46rem !important;
      .is-leaf {
        background-color: #c1d3ea !important;
        color: #2c2c2c !important;
        font-weight: 400;
                    .cell {
        .cell {
          height: 0.3rem !important;
          line-height: 0.3rem !important;
        }
      }
    }
                        height: .3rem !important;
                        line-height: .3rem !important;
                    }
                }
    .el-table__body-wrapper {
      .el-table__row {
        height: 0.46rem !important;
        line-height: 0.46rem !important;
            }
        }
    }
        .cell {
          height: 0.3rem !important;
          line-height: 0.3rem !important;
        }
      }
    }
  }
}
    * {
        box-sizing: border-box;
    }
* {
  box-sizing: border-box;
}
    .hotSearch {
        font-size: .12rem;
        margin-bottom: .19rem;
.hotSearch {
  font-size: 0.12rem;
  margin-bottom: 0.19rem;
        li {
            font-size: .12rem;
            margin: 0 .1rem;
        }
    }
  li {
    font-size: 0.12rem;
    margin: 0 0.1rem;
  }
}
    /*     .a {
/*     .a {
        height: 2rem;
    }
@@ -1058,53 +1228,52 @@
        height: 100px;
    } */
    .box {
        transition: height 0.3s;
        /* 添加过渡效果 */
        overflow: hidden;
        /* 避免内容溢出 */
.box {
  transition: height 0.3s;
  /* 添加过渡效果 */
  overflow: hidden;
  /* 避免内容溢出 */
}
    }
/* 左边的 */
.boox {
  width: 100%;
  padding: 0.1rem 0.09rem;
  min-height: 2rem !important;
  position: relative;
  border: 1px solid #c1d3ea !important;
    /* 左边的 */
    .boox {
        width: 100%;
        padding: .1rem .09rem;
        min-height: 2rem !important;
        position: relative;
        border: 1px solid #c1d3ea !important;
  ul {
    margin-top: 0.16rem !important;
  }
        ul {
            margin-top: .16rem !important;
        }
  h3 {
    font-size: 0.14rem;
    margin-left: 0.1rem;
  }
        h3 {
            font-size: .14rem;
            margin-left: .1rem;
        }
  li {
    height: 0.3rem;
    line-height: 0.3rem;
    padding: 0 0.2rem !important;
    margin: 0.05rem 0 !important;
    border-radius: 0.3rem !important;
    font-size: 0.14rem;
  }
        li {
            height: .3rem;
            line-height: .3rem;
            padding: 0 .2rem !important;
            margin: .05rem 0 !important;
            border-radius: .3rem !important;
            font-size: .14rem;
        }
  .toggleButton1 {
    position: absolute;
    bottom: 0.1rem !important;
    left: 40% !important;
  }
        .toggleButton1 {
            position: absolute;
            bottom: .1rem !important;
            left: 40% !important;
        }
  .toggleButton {
    font-size: 0.14rem !important;
  }
}
        .toggleButton {
            font-size: .14rem !important;
        }
    }
    ::v-deep .el-table th,
    ::v-deep .el-table td {
        text-align: center;
    }
</style>
::v-deep .el-table th,
::v-deep .el-table td {
  text-align: center;
}
</style>
src/static/initialize.css
@@ -5,8 +5,8 @@
}
html {
  font-size: calc(100vw / 1440 * 96) !important;
  /* font-size: 10px; */
  /* font-size: calc(100vw / 1440 * 96) !important; */
  font-size: 126px;
}
body {