1
YM
2024-05-17 5adb70f8f046e2de37c4984a454503c5daaf08b3
1
7个文件已修改
1437 ■■■■ 已修改文件
src/components/advancedSearch/advancedSearch.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/Login/Login.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/changePassword/changePassword.vue 1017 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/character/detail.vue 393 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/forgetPass/forgetPass.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/knowledgeBase/knowledgeBase.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/static/initialize.css 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/advancedSearch/advancedSearch.vue
@@ -19,7 +19,7 @@
          margin-left: 0.31rem;
          cursor: pointer;
        "
        >高级搜索 ﹀</view
        >高级搜索 ∨</view
      >
    </view>
    <!-- 高级搜索 -->
src/pages/Login/Login.vue
@@ -511,7 +511,7 @@
        width: 1.2rem;
        height: .37rem;
        background: url(@/static/image/用户登录.png) no-repeat 0 0;
        background-size: 100% 100%;
        background-size: 100%;
        margin-bottom: .47rem;
    }
src/pages/changePassword/changePassword.vue
@@ -1,267 +1,326 @@
<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="amendDataPass">
                    <el-form-item label="登录账号" prop="loginID">
                        <el-input  v-model="amendDataPass.loginID"></el-input>
                    </el-form-item>
                    <el-form-item label="原密码" prop="rawPass">
                        <el-input type="password" v-model="amendDataPass.rawPass"></el-input>
                    </el-form-item>
                    <el-form-item label="新密码" prop="newPass">
                        <el-input type="password" v-model="amendDataPass.newPass"></el-input>
                    </el-form-item>
                    <el-form-item label="确认新密码" prop="checkPass">
                        <el-input type="password" v-model="amendDataPass.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
                    :label-width="160"
          :hide-required-asterisk="true"
          ref="formLogin2"
          label-position="right"
          :rules="rules"
          :model="amendDataPass"
        >
          <el-form-item label="登录账号" prop="loginID">
            <el-input v-model="amendDataPass.loginID"></el-input>
          </el-form-item>
          <el-form-item label="原密码" prop="rawPass">
            <el-input
              type="password"
              v-model="amendDataPass.rawPass"
            ></el-input>
          </el-form-item>
          <el-form-item label="新密码" prop="newPass">
            <el-input
              type="password"
              v-model="amendDataPass.newPass"
            ></el-input>
          </el-form-item>
          <el-form-item label="确认新密码" prop="checkPass">
            <el-input
              type="password"
              v-model="amendDataPass.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 {
        getchangePassword
    } 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.amendDataPass.checkPass !== '') {
                        this.$refs.formLogin2.validateField('checkPass');
                    }
                    callback();
                }
            };
            // 确认
            var validatePass2 = (rule, value, callback) => {
                if (value === '') {
                    callback(new Error('请再次输入密码'));
                } else if (value !== this.amendDataPass.newPass) {
                    callback(new Error('两次输入密码不一致!'));
                } else {
                    callback();
                }
            };
            return {
                // 用户注册
                isRegister: false,
                // 用户登录
                isLogin: true,
                // 修改密码
                isAmendPass: false,
                // 重置密码
                isResetPass: false,
                // 注册用户账号的校验
                rules: {
                    loginID: [{
                        required: true,
                        message: '请输入登录账号',
                        trigger: 'blur'
                    }],
                    rawPass: [{
                            required: true,
                            message: '请输入原始密码',
                            trigger: 'blur'
                        },
                        {
                            min: 5,
                            max: 12,
                            message: '密码长度在 6 到 12 个字符',
                            trigger: 'blur'
                        }
                    ],
                    newPass: [{
                            required: true,
                            message: '请输入新密码',
                            trigger: 'blur'
                        },
                        {
                            min: 6,
                            max: 12,
                            message: '密码长度在 6 到 12 个字符',
                            trigger: 'blur'
                        },
                        {
                            validator: validatePass,
                            trigger: 'blur'
                        }
                    ],
                    checkPass: [{
                        validator: validatePass2,
                        trigger: 'blur'
                    }],
                    cellphoneORmailbox: [{
                            required: true,
                            message: '请输入邮箱地址',
                            trigger: 'blur'
                        },
                        {
                            type: 'email',
                            message: '请输入正确的邮箱地址',
                            trigger: ['blur', 'change']
                        }
                    ],
                    verifyCode: [{
                            required: true,
                            message: '请输入验证码',
                            trigger: 'blur'
                        },
                        {
                            validator: (rule, value, callback) => this.validateVerificationCode(rule, value, callback),
                            trigger: 'blur'
                        }
                    ]
                },
                // 登录注册框
                loginTrue: true,
                Rtop1: 0,
                value: 'sdfdsf',
                // 修改密码
                amendDataPass: {
                    loginID: this.$store.state.username,
                    rawPass: "",
                    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: {
            // 返回登录
            BacktoLogin() {
                // uni.redirectTo({
                //     url: '/pages/Login/Login'
                // })
                uni.navigateBack();
            },
            getElementWidth() {
                this.$nextTick(() => {
                    var width = this.$refs.Rtop.$el.clientWidth;
                    this.Rtop1 = width + 50;
                    console.log('Element width:', width);
                })
            },
            // 忘记密码
            async Login2(formName) {
                let Obj = {
                    username: this.amendDataPass.loginID,
                    password: encryptAES(this.amendDataPass.rawPass) ,
                    newPassword:encryptAES(this.amendDataPass.newPass),
                }
                console.log(Obj);
                this.$refs[formName].validate(async (valid) => {
                    if (valid) {
                        // alert('submit!成功');
                        await getchangePassword(Obj).then(res=>{
                            // console.log(res,'修改密码成功');
                            if(res.success==true){
                                uni.showToast({
                                    title: res.object,
                                    icon: 'none'
                                });
                                uni.navigateBack();
                                console.log('修改成功',res);
                            }else{
                                uni.showToast({
                                    title: res.errorText,
                                    icon: 'none'
                                });
                            }
                        })
                        // uni.redirectTo({ encryptAES
                        //     url: '/pages/Login/Login'
                        // })
                    } else {
                        console.log('error submit!!失败');
                        return false;
                    }
                });
            }
        }
    }
import { getchangePassword } 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.amendDataPass.checkPass !== "") {
          this.$refs.formLogin2.validateField("checkPass");
        }
        callback();
      }
    };
    // 确认
    var validatePass2 = (rule, value, callback) => {
      if (value === "") {
        callback(new Error("请再次输入密码"));
      } else if (value !== this.amendDataPass.newPass) {
        callback(new Error("两次输入密码不一致!"));
      } else {
        callback();
      }
    };
    return {
      // 用户注册
      isRegister: false,
      // 用户登录
      isLogin: true,
      // 修改密码
      isAmendPass: false,
      // 重置密码
      isResetPass: false,
      // 注册用户账号的校验
      rules: {
        loginID: [
          {
            required: true,
            message: "请输入登录账号",
            trigger: "blur"
          }
        ],
        rawPass: [
          {
            required: true,
            message: "请输入原始密码",
            trigger: "blur"
          },
          {
            min: 5,
            max: 12,
            message: "密码长度在 6 到 12 个字符",
            trigger: "blur"
          }
        ],
        newPass: [
          {
            required: true,
            message: "请输入新密码",
            trigger: "blur"
          },
          {
            min: 6,
            max: 12,
            message: "密码长度在 6 到 12 个字符",
            trigger: "blur"
          },
          {
            validator: validatePass,
            trigger: "blur"
          }
        ],
        checkPass: [
          {
            validator: validatePass2,
            trigger: "blur"
          }
        ],
        cellphoneORmailbox: [
          {
            required: true,
            message: "请输入邮箱地址",
            trigger: "blur"
          },
          {
            type: "email",
            message: "请输入正确的邮箱地址",
            trigger: ["blur", "change"]
          }
        ],
        verifyCode: [
          {
            required: true,
            message: "请输入验证码",
            trigger: "blur"
          },
          {
            validator: (rule, value, callback) =>
              this.validateVerificationCode(rule, value, callback),
            trigger: "blur"
          }
        ]
      },
      // 登录注册框
      loginTrue: true,
      Rtop1: 0,
      value: "sdfdsf",
      // 修改密码
      amendDataPass: {
        loginID: this.$store.state.username,
        rawPass: "",
        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: {
    // 返回登录
    BacktoLogin() {
      // uni.redirectTo({
      //     url: '/pages/Login/Login'
      // })
      uni.navigateBack();
    },
    getElementWidth() {
      this.$nextTick(() => {
        var width = this.$refs.Rtop.$el.clientWidth;
        this.Rtop1 = width + 50;
        console.log("Element width:", width);
      });
    },
    // 忘记密码
    async Login2(formName) {
      let Obj = {
        username: this.amendDataPass.loginID,
        password: encryptAES(this.amendDataPass.rawPass),
        newPassword: encryptAES(this.amendDataPass.newPass)
      };
      console.log(Obj);
      this.$refs[formName].validate(async (valid) => {
        if (valid) {
          // alert('submit!成功');
          await getchangePassword(Obj).then((res) => {
            // console.log(res,'修改密码成功');
            if (res.success == true) {
              uni.showToast({
                title: res.object,
                icon: "none"
              });
              uni.navigateBack();
              console.log("修改成功", res);
            } else {
              uni.showToast({
                title: res.errorText,
                icon: "none"
              });
            }
          });
          // uni.redirectTo({ encryptAES
          //     url: '/pages/Login/Login'
          // })
        } 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;
        }
@@ -289,279 +348,257 @@
        }
    }
     */
    @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;
        }
  .hua {
    height: 4rem !important;
  }
        .hua {
            height: 4rem !important;
        }
  .LoginTop {
    margin-bottom: 0.4rem !important;
  }
        .LoginTop {
            margin-bottom: .4rem !important;
        }
  .yzm {
    top: 15% !important;
  }
        .yzm {
            top: 15% !important;
        }
  .fff {
    width: 2.4rem !important;
    height: 4rem !important;
  }
        .fff {
            width: 2.4rem !important;
            height: 4rem !important;
        }
  .rrr {
    width: 2rem !important;
  }
        .rrr {
            width: 2rem !important;
        }
  .btn {
    margin-bottom: 0.1rem !important;
  }
        .btn {
            margin-bottom: .1rem !important;
        }
  .btn ::v-deep .el-button {
    margin-top: 0.2rem !important;
    font-size: 0.2rem !important;
    width: 100%;
    padding: 0.12rem !important;
        .btn ::v-deep .el-button {
            margin-top: 0.2rem !important;
            font-size: 0.2rem !important;
            width: 100%;
            padding: 0.12rem !important;
    span {
      font-weight: bold !important;
    }
  }
            span {
                font-weight: bold !important;
            }
        }
  .asdf {
    margin-bottom: 0.1rem !important;
  }
}
        .asdf {
            margin-bottom: .1rem !important;
        }
.LoginBg {
  width: 1.2rem;
  height: 0.37rem;
  background: url(@/static/image/修改密码.png) no-repeat 0 0;
  background-size: 100%;
}
    }
::v-deep .el-card {
  border-radius: 0;
  width: 5.42rem;
  /* height: 5.65rem; */
  position: absolute;
  top: 80%;
}
    .LoginBg {
        width: 1.2rem;
        height: .37rem;
        background: url(@/static/image/修改密码.png) no-repeat 0 0;
        background-size: 100% 100%;
    }
::v-deep .el-card__body {
  padding: 0.26rem 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;
  overflow: hidden;
}
    ::v-deep .el-card__body {
        padding: .26rem .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;
}
    .btn>>>.el-form-item__content {
        margin-left: 0 !important;
::v-deep .el-form-item__error {
  /* display: none; */
}
    }
::v-deep .input.invalid:focus {
  border-color: #2d476a !important;
}
    ::v-deep .el-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;
    }
::v-deep .el-form-item__label {
  width: 88px;
  color: #244a7b;
  font-size: 0.14rem;
}
    ::v-deep .el-form-item__error {
        /* display: none; */
    }
::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;
    }
.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/character/detail.vue
@@ -96,7 +96,7 @@
      </view>
      <view style="width: 5%"></view>
    </view>
    <div style="padding: 0 1.2rem 0; padding-top: 0.24rem;display: flex;">
    <div style="padding: 0 1.2rem 0; padding-top: 0.24rem; display: flex">
      <!-- 左侧 -->
      <div
        :span="5"
@@ -183,6 +183,12 @@
              >
                {{ index + 1 }}.{{ item }}
              </li>
              <div
                v-if="sourceDataList.length == 0"
                style="color: #666; text-align: center; font-size: 16px"
              >
                暂无数据
              </div>
            </ul>
          </el-card>
        </div>
@@ -256,14 +262,22 @@
            >
              <span>相关附表/图像</span>
            </div>
            <view class="flex">
              <el-image
                v-for="item in imageList"
                :key="item"
                style="width: 2.05rem; height: 2.4rem"
                :src="item"
                fit="fill"
              ></el-image>
            <view>
              <div class="flex">
                <el-image
                  v-for="item in imageList"
                  :key="item"
                  style="width: 2.05rem; height: 2.4rem"
                  :src="item"
                  fit="fill"
                ></el-image>
              </div>
              <div
                v-if="imageList.length == 0"
                style="color: #666; text-align: center; font-size: 16px"
              >
                暂无数据
              </div>
            </view>
          </el-card>
          <el-card class="box-card">
@@ -285,6 +299,12 @@
              >
                {{ "[" + Number(index + 1) + "]" + item.achievementName }}
              </li>
              <div
                v-if="personResearchList.length == 0"
                style="color: #666; text-align: center; font-size: 16px"
              >
                暂无数据
              </div>
            </ul>
          </el-card>
        </div>
@@ -352,13 +372,13 @@
  getPersonBiog,
  getPersonWritings,
  getPersonRelationAtSchool,
  getSpaceTime,
  getSpaceTime
} from "@/api/index.js";
import { getImg } from "@/static/tool.js";
export default {
  components: {
    Table1,
    Table1
  },
  data() {
    return {
@@ -379,60 +399,60 @@
      tableColumns1: [
        {
          prop: "a",
          label: "正书名",
          label: "正书名"
        },
        {
          prop: "e",
          label: "作者",
          label: "作者"
        },
        {
          prop: "b",
          label: "著作年",
          label: "著作年"
        },
        {
          prop: "c",
          label: "著作方式",
          label: "著作方式"
        },
        {
          prop: "d",
          label: "总目分类",
        },
          label: "总目分类"
        }
      ],
      tableColumns2: [
        {
          prop: "a",
          label: "关系人",
          label: "关系人"
        },
        {
          prop: "b",
          label: "关系类型",
          label: "关系类型"
        },
        {
          prop: "c",
          label: "考据",
          label: "考据"
        },
        {
          prop: "d",
          label: "出处",
        },
          label: "出处"
        }
      ],
      tableColumns3: [
        {
          prop: "a",
          label: "活动时间区间",
          label: "活动时间区间"
        },
        {
          prop: "b",
          label: "活动名称",
          label: "活动名称"
        },
        {
          prop: "c",
          label: "活动地点",
          label: "活动地点"
        },
        {
          prop: "d",
          label: "活动描述",
        },
          label: "活动描述"
        }
      ],
      tableData1: [],
      tableData2: [],
@@ -441,7 +461,7 @@
      tableData5: [],
      nodes: [],
      relationships: [],
      personResearchList: [],
      personResearchList: []
    };
  },
  onLoad(options) {
@@ -476,11 +496,11 @@
  },
  methods: {
    copyText() {
      const txt = this.biogData[0].content+";来源:中医医学人物数据库"
      const txt = this.biogData[0].content + ";来源:中医医学人物数据库";
      navigator.clipboard.writeText(txt).then();
      this.$message({
        message: "复制成功!",
        type: "success",
        type: "success"
      });
    },
    toLink(item) {
@@ -490,7 +510,7 @@
      // 基本信息
      getPersonInfo({
        id: this.detailId,
        type: "PERSON_BASIC",
        type: "PERSON_BASIC"
      }).then((res) => {
        const obj = {};
        if (
@@ -513,14 +533,13 @@
      //现代研究
      getPersonInfo({
        id: this.detailId,
        type: "PERSON_RESEARCH",
        type: "PERSON_RESEARCH"
      }).then((res) => {
        console.log(res, "123123123");
        this.personResearchList = res.object.personResearchList;
      });
      getPersonInfo({
        id: this.detailId,
        type: "PERSON_RELATIONS",
        type: "PERSON_RELATIONS"
      }).then((res) => {
        console.log(res, "PERSON_RELATIONS");
        this.personRelationList = res.object.personRelationList;
@@ -528,120 +547,128 @@
          this.tableData4 = this.personRelationList.map((f) => {
            return {
              a: f.nodeName,
              b: f.relationTypeName,
              b: f.relationTypeName
            };
          });
        }
      });
      getWebBasic({
        personId: this.detailId,
        personId: this.detailId
      }).then((res) => {
        console.log(res, "resres");
        const obj = res.object;
        getIntroduction(Number(obj.school)).then((sres) => {
          console.log(sres, "sres");
          this.tableArr = [
            {
              list: [
                {
                  name: "别名",
                  value: obj.alias || "-",
                },
                {
                  name: "字",
                  value: obj.zi || "-",
                },
                {
                  name: "号",
                  value: obj.hao || "-",
                },
                {
                  name: "所处时期",
                  value: obj.dynastyDesc || "-",
                },
                {
                  name: "民族",
                  value: obj.ethnic || "-",
                },
              ],
            },
            {
              list: [
                {
                  name: "籍贯",
                  value: obj.native || "-",
                },
                {
                  name: "性别",
                  value: obj.gender || "-",
                },
                {
                  name: "职官",
                  value: obj.official || "-",
                },
                {
                  name: "流派",
                  value:
                    sres &&
                    sres.object &&
                    sres.object.school_NAME &&
                    sres.object.school_NAME.length
                      ? sres.object.school_NAME[0].content
                      : "-",
                },
                {
                  name: "学术特点",
                  value: obj.features || "-",
                },
              ],
            },
          ];
        });
        if (obj.school) {
          getIntroduction(Number(obj.school)).then((sres) => {
            console.log(sres, "sres");
            handleData(obj, sres);
          });
        } else {
          handleData(obj);
        }
      });
      // 活动年谱
      getPersonInfo({
        id: this.detailId,
        type: "PERSON_SPACE_TIME",
        type: "PERSON_SPACE_TIME"
      }).then((res) => {
        this.tableData5 = res.object.personSpaceTimeList.map((item) => {
          return {
            a: item.time,
            b: item.activityName,
            c: item.activityAddrOld,
            d: item.desc, // 这里缺少活动描述字段
            d: item.desc // 这里缺少活动描述字段
          };
        });
      });
    },
    handleData(obj, sres) {
      this.tableArr = [
        {
          list: [
            {
              name: "别名",
              value: obj.alias || "-"
            },
            {
              name: "字",
              value: obj.zi || "-"
            },
            {
              name: "号",
              value: obj.hao || "-"
            },
            {
              name: "所处时期",
              value: obj.dynastyDesc || "-"
            },
            {
              name: "民族",
              value: obj.ethnic || "-"
            }
          ]
        },
        {
          list: [
            {
              name: "籍贯",
              value: obj.native || "-"
            },
            {
              name: "性别",
              value: obj.gender || "-"
            },
            {
              name: "职官",
              value: obj.official || "-"
            },
            {
              name: "流派",
              value:
                sres &&
                sres.object &&
                sres.object.school_NAME &&
                sres.object.school_NAME.length
                  ? sres.object.school_NAME[0].content
                  : "-"
            },
            {
              name: "学术特点",
              value: obj.features || "-"
            }
          ]
        }
      ];
    },
    getSourceData() {
      getSource({
        personId: this.detailId,
        personId: this.detailId
      }).then((res) => {
        this.sourceDataList = res.list;
      });
    },
    getImages() {
      getPersonImages({
        personId: this.detailId,
        personId: this.detailId
      }).then((res) => {
        this.imageList = res.list.map((item) => getImg(item.filePath));
      });
    },
    getBiog() {
      getPersonBiog({
        personId: this.detailId,
        personId: this.detailId
      }).then((res) => {
        this.biogData = res.list.map((item) => {
          return {
            content: item.content1,
            pageNo: "《" + item.pageNo + "》 " + "P " + item.pageNo, // 这里只有bookid无法匹配到书名
            pageNo: "《" + item.pageNo + "》 " + "P " + item.pageNo // 这里只有bookid无法匹配到书名
          };
        });
      });
    },
    getWritings() {
      getPersonWritings({
        personId: this.detailId,
        personId: this.detailId
      }).then((res) => {
        this.tableData1 = res.list.map((item) => {
          return {
@@ -649,14 +676,14 @@
            b: item.dynasty,
            c: item.writeWay,
            d: item.classify,
            e: this.detailInfo.NAME,
            e: this.detailInfo.NAME
          };
        });
      });
    },
    getRelationship() {
      getPersonRelationAtSchool({
        personId: this.detailId,
        personId: this.detailId
        // relationSearchTypeEO: "SOCIAL"
      }).then((res) => {
        console.log(res, "getPersonRelationAtSchool");
@@ -665,7 +692,7 @@
    },
    getMappingData(name) {
      getFuzzySearch({
        keyword: name,
        keyword: name
      }).then((res) => {
        this.nodes = [];
        this.relationships = [];
@@ -681,19 +708,19 @@
            if (exists1 !== true) {
              this.nodes.push({
                name: item.name1,
                id: item.identifier1,
                id: item.identifier1
              });
            }
            if (exists2 !== true) {
              this.nodes.push({
                name: item.name2,
                id: item.identifier2,
                id: item.identifier2
              });
            }
            let obj = {
              source: item.name1,
              target: item.name2,
              relation: item.relationName || "", // 如果存在 relationName 字段则使用,否则为空字符串
              relation: item.relationName || "" // 如果存在 relationName 字段则使用,否则为空字符串
            };
            this.relationships.push(obj);
          });
@@ -703,13 +730,13 @@
    },
    getMapInfo() {
      getSpaceTime({
        personId: this.detailId,
        personId: this.detailId
      }).then((res) => {
        console.log(res, "getSpaceTime");
        const data = res.list.map((item) => {
          return {
            name: item.activityName,
            value: [item.xcoord, item.ycoord],
            value: [item.xcoord, item.ycoord]
          };
        });
        // 时空地图
@@ -723,11 +750,11 @@
    fangdaClick(index) {
      if (index == 1) {
        uni.navigateTo({
          url: "/pages/character/index?keyword=" + this.detailInfo.NAME,
          url: "/pages/character/index?keyword=" + this.detailInfo.NAME
        });
      } else if (index == 2) {
        uni.navigateTo({
          url: "/pages/characterMap/characterMap?id=" + this.detailId,
          url: "/pages/characterMap/characterMap?id=" + this.detailId
        });
      }
    },
@@ -743,7 +770,7 @@
    scrollToTop() {
      window.scrollTo({
        top: 0,
        behavior: "smooth", // 使用平滑滚动
        behavior: "smooth" // 使用平滑滚动
      });
    },
    handleClick(tab) {
@@ -826,8 +853,8 @@
                position: "middle", // 设置标签文本在线的中间位置上居中显示
                // bottom: -(FontSize+10),
                z: 10, // 设置标签的z轴高度,使其比连接线更高
                distance: -(Distance + 1), // 将标签放置在连接线上
              },
                distance: -(Distance + 1) // 将标签放置在连接线上
              }
            });
          }
        }
@@ -842,8 +869,8 @@
          itemStyle: {
            color: "#eae0eb", // 可以根据索引设置不同的颜色
            borderWidth: BorderWidth,
            borderColor: "#996f9f",
          },
            borderColor: "#996f9f"
          }
        };
      });
      var option;
@@ -853,14 +880,14 @@
          top: FontSize + 10,
          subtextStyle: {
            fontSize: FontSize, // 设置副标题文字大小为 14px
            color: "#2C2C2C",
          },
            color: "#2C2C2C"
          }
        },
        backgroundColor: {
          type: "image",
          image: "/static/image/characterRelationBg.png",
          size: "100% 100%", // 背景图片的尺寸,可以是百分比或者像素
          position: "center center", // 背景图片的位置,可以是 top, bottom, middle 或者百分比
          position: "center center" // 背景图片的位置,可以是 top, bottom, middle 或者百分比
        },
        tooltip: {},
        animationDurationUpdate: 1500,
@@ -874,7 +901,7 @@
            label: {
              show: true,
              color: "black", // 设置节点文字颜色为黑色
              fontSize: FontSize, // 设置文字大小
              fontSize: FontSize // 设置文字大小
            },
            edgeSymbol: ["circle"],
            edgeSymbolSize: [4, 10],
@@ -883,16 +910,16 @@
            lineStyle: {
              opacity: 0.9,
              width: 2,
              curveness: 0.3,
              curveness: 0.3
            },
            emphasis: {
              focus: "adjacency",
              lineStyle: {
                width: 10,
              },
            },
          },
        ],
                width: 10
              }
            }
          }
        ]
      };
      // 将生成的连接线添加到echarts图表的option中
      option.series[0].links = links;
@@ -938,10 +965,10 @@
          text: "",
          subtext: "",
          sublink: "",
          left: "center",
          left: "center"
        },
        tooltip: {
          trigger: "item",
          trigger: "item"
        },
        bmap: {
          center: data[0].value,
@@ -953,123 +980,123 @@
                featureType: "water",
                elementType: "all",
                stylers: {
                  color: "#86a1ac",
                },
                  color: "#86a1ac"
                }
              },
              {
                featureType: "land",
                elementType: "all",
                stylers: {
                  color: "#f1d99d",
                },
                  color: "#f1d99d"
                }
              },
              {
                featureType: "railway",
                elementType: "all",
                stylers: {
                  visibility: "off",
                },
                  visibility: "off"
                }
              },
              {
                featureType: "highway",
                elementType: "all",
                stylers: {
                  color: "#f1d99d",
                },
                  color: "#f1d99d"
                }
              },
              {
                featureType: "highway",
                elementType: "labels",
                stylers: {
                  visibility: "off",
                },
                  visibility: "off"
                }
              },
              {
                featureType: "arterial",
                elementType: "geometry",
                stylers: {
                  color: "#f1d99d",
                },
                  color: "#f1d99d"
                }
              },
              {
                featureType: "arterial",
                elementType: "geometry.fill",
                stylers: {
                  color: "#f1d99d",
                },
                  color: "#f1d99d"
                }
              },
              {
                featureType: "poi",
                elementType: "all",
                stylers: {
                  visibility: "off",
                },
                  visibility: "off"
                }
              },
              {
                featureType: "green",
                elementType: "all",
                stylers: {
                  visibility: "off",
                },
                  visibility: "off"
                }
              },
              {
                featureType: "subway",
                elementType: "all",
                stylers: {
                  visibility: "off",
                },
                  visibility: "off"
                }
              },
              {
                featureType: "manmade",
                elementType: "all",
                stylers: {
                  color: "#f1d99d",
                },
                  color: "#f1d99d"
                }
              },
              {
                featureType: "local",
                elementType: "all",
                stylers: {
                  color: "#f1d99d",
                },
                  color: "#f1d99d"
                }
              },
              {
                featureType: "local",
                elementType: "labels",
                stylers: {
                  visibility: "off",
                },
                  visibility: "off"
                }
              },
              {
                featureType: "arterial",
                elementType: "labels",
                stylers: {
                  visibility: "off",
                },
                  visibility: "off"
                }
              },
              {
                featureType: "boundary",
                elementType: "all",
                stylers: {
                  color: "#f1d99d",
                },
                  color: "#f1d99d"
                }
              },
              {
                featureType: "building",
                elementType: "all",
                stylers: {
                  color: "#f1d99d",
                },
                  color: "#f1d99d"
                }
              },
              {
                featureType: "label",
                elementType: "labels.text.fill",
                stylers: {
                  color: "#000",
                },
              },
            ],
          },
                  color: "#000"
                }
              }
            ]
          }
        },
        series: [
          {
@@ -1079,18 +1106,18 @@
            data: data,
            symbolSize: 0,
            encode: {
              value: 2,
              value: 2
            },
            label: {
              formatter: "{b}",
              position: "right",
              show: false,
              show: false
            },
            emphasis: {
              label: {
                show: true,
              },
            },
                show: true
              }
            }
          },
          {
            name: "",
@@ -1099,32 +1126,32 @@
            data: data,
            symbolSize: 20,
            encode: {
              value: 2,
              value: 2
            },
            showEffectOn: "render",
            rippleEffect: {
              brushType: "stroke",
              brushType: "stroke"
            },
            label: {
              formatter: "{b}",
              position: "right",
              show: false,
              show: false
            },
            itemStyle: {
              color: "#ec7b43",
              shadowBlur: 10,
              shadowColor: "#333",
              shadowColor: "#333"
            },
            emphasis: {
              scale: false,
              scale: false
            },
            zlevel: 1,
          },
        ],
            zlevel: 1
          }
        ]
      };
      option && myChart.setOption(option);
    },
  },
    }
  }
};
</script>
@@ -1153,10 +1180,10 @@
.BoxLeft ::v-deep.el-card__body {
  padding: 0.1rem 0.11rem !important;
}
.BoxLeft{
.BoxLeft {
  width: 30%;
}
.BoxRight{
.BoxRight {
  width: 70%;
}
src/pages/forgetPass/forgetPass.vue
@@ -588,7 +588,7 @@
  width: 1.2rem;
  height: 0.37rem;
  background: url(@/static/image/重置密码.png) no-repeat 0 0;
  background-size: 100% 100%;
  background-size: 100% ;
}
::v-deep .el-card {
src/pages/knowledgeBase/knowledgeBase.vue
@@ -15,7 +15,7 @@
        class="advancedSea"
        @click="isAvancedClick"
        style="color: #244a7b; cursor: pointer"
        >高级搜索 ﹀</view
        >高级搜索 ∨</view
      >
    </view>
    <!-- 热门搜索 -->
@@ -91,10 +91,10 @@
          <view v-if="profession.list.length - 1 > 3" class="flex flex-center">
            <view
              class="toggleButton"
              style="color: #c1d3ea"
              style="color: #244a7b"
              @click="shrinkClick('a', '职业')"
            >
              {{ activeBox !== "a" ? "更多  ﹀" : "收起  ︿" }}
              {{ activeBox !== "a" ? "更多  ∨" : "收起  ∧" }}
            </view>
          </view>
        </view>
@@ -129,10 +129,10 @@
          <view v-if="dynasty.list.length - 1 > 3" class="flex flex-center">
            <view
              class="toggleButton"
              style="color: #c1d3ea"
              style="color: #244a7b"
              @click="shrinkClick('b', '时期')"
            >
              {{ activeBox !== "b" ? "更多  ﹀" : "收起  ︿" }}
              {{ activeBox !== "b" ? "更多  ∨" : "收起  ∧" }}
            </view>
          </view>
        </view>
@@ -165,7 +165,7 @@
          </ul>
          <!--     <view class="flex flex-center">
                            <view class="toggleButton" style="font-size: 25rpx;color: #C1D3EA;" @click="shrinkClick('b')">
                                {{ activeBox !== 'b' ? '更多  ﹀' : '收起  ︿' }}
                                {{ activeBox !== 'b' ? '更多  ∨' : '收起  ∧' }}
                            </view>
                        </view> -->
        </view>
@@ -213,7 +213,7 @@
          <el-table-column prop="official" label="官职"></el-table-column>
        </el-table>
        <!-- 分页 -->
        <el-row class="fenye" style="position: absolute; bottom: 0.1rem">
        <el-row class="fenye">
          <el-pagination
            class="paging flex"
            :current-page="CurrentPage"
@@ -390,11 +390,6 @@
    this.onSearch({ text: options.keyword });
  },
  mounted() {
    // 修改两次的高度保持一致
    var box1Height = document.querySelector(".fbox2").offsetHeight;
    document.querySelector(".fbox3").style.height =
      box1Height + box1Height / 18 + "px";
    console.log(box1Height, "box1Height");
    this.getStatistics();
  },
  methods: {
src/static/initialize.css
@@ -63,7 +63,7 @@
}
/* 字体宋体 */
.font-family {
* {
  font-family: 宋体;
}
.fontFamily {