| | |
| | | /*每个页面公共css */ |
| | | /*设置整个项目的背景色*/ |
| | | @import '@/static/initialize.css'; |
| | | |
| | | |
| | | </style> |
| | |
| | | // 中国地域地谱检索人物 |
| | | export const getRetrieval = (requestData) => { |
| | | return req1({ |
| | | url: "/person/retrieval?keyword=" + requestData?.keyword + "&dynasty=" + requestData?.dynasty, |
| | | method: "post", |
| | | url: |
| | | "/person/retrieval?page=" + |
| | | requestData?.page + |
| | | "&pageSize=" + |
| | | requestData?.pageSize + |
| | | "&keyword=" + |
| | | requestData?.keyword + |
| | | "&dynasty=" + |
| | | requestData?.dynasty, |
| | | method: "post" |
| | | }); |
| | | }; |
| | | // 医学人物知识库 |
| | |
| | | style="background-color: #244a7b; color: #fff" |
| | | size="mini" |
| | | @click="handleSubmit" |
| | | >检索</el-button |
| | | >搜索</el-button |
| | | > |
| | | <el-button type="info" plain size="mini" @click="handleReset" |
| | | >重置</el-button |
| | |
| | | > |
| | | <!-- 背景 --> |
| | | <img class="leftListBgImage" src="@/static/image/leftListBg.png" alt="" /> |
| | | <view style="position: relative; z-index: 999"> |
| | | <view style="position: relative; z-index: 999"> |
| | | <view class="flex flex-center LeftLogo"> |
| | | <!-- <img src="@/static/image/logo.png" ></img> --> |
| | | <view class="img"></view> |
| | |
| | | <el-menu-item index="1"> |
| | | <span slot="title">中医人物数据库</span> |
| | | </el-menu-item> |
| | | <el-menu-item index="2"> |
| | | <el-menu-item index="2" class="oActive"> |
| | | <span slot="title">世医医家数据库</span> |
| | | </el-menu-item> |
| | | <el-menu-item index="3"> |
| | |
| | | } |
| | | } |
| | | |
| | | @media screen and (min-width: 2560px) and (max-width: 3840px) { |
| | | ::v-deep .el-menu .is-active { |
| | | background-color: #244a7b !important; |
| | | border-radius: 0.5rem; |
| | | } |
| | | ::v-deep .el-menu .is-active { |
| | | background-color: #244a7b !important; |
| | | border-radius: 0.5rem; |
| | | } |
| | | |
| | | ::v-deep .el-menu .is-active.oActive { |
| | | background-color: #e27917 !important; |
| | | } |
| | | |
| | | @media screen and (min-width: 2560px) and (max-width: 3840px) { |
| | | .LeftLogo .img { |
| | | background-image: url(@/static/image/logo4.png); |
| | | } |
| | | } |
| | | |
| | | @media screen and (min-width: 1366px) and (max-width: 1920px) { |
| | | ::v-deep .el-menu .is-active { |
| | | background-color: #244a7b !important; |
| | | border-radius: 0.5rem; |
| | | } |
| | | |
| | | .LeftLogo .img { |
| | | background-image: url(@/static/image/logo.png); |
| | | } |
| | |
| | | /* 粘性定位 */ |
| | | position: sticky; |
| | | top: 0; |
| | | z-index: 9; |
| | | z-index: 99999999; |
| | | } |
| | | |
| | | .NavTop { |
| | |
| | | class="Ttop flex flex-center flex-wrap" |
| | | style="flex-direction: column" |
| | | > |
| | | <view ></view> |
| | | <view ref="Rtop"> |
| | | <view></view> |
| | | <view ref="Rtop"> |
| | | <text class="login"></text> |
| | | <text |
| | | style=" |
| | |
| | | <!-- <view style="color: #244A7B;padding-bottom: .47rem;font-size: .3rem;font-weight: bold;">用户注册</view> --> |
| | | <view class="LoginBg"></view> |
| | | <view |
| | | |
| | | @click="BacktoLogin" |
| | | style=" |
| | | cursor: pointer; |
| | |
| | | placeholder="必须与密码一致" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="手机号" prop="cellphoneORmailbox"> |
| | | <el-form-item label="手机号/邮箱" prop="cellphoneORmailbox"> |
| | | <el-input |
| | | v-model="registerData.cellphoneORmailbox" |
| | | placeholder="请填写正确的手机" |
| | | placeholder="请填写手机号/邮箱" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="验证码" prop="verifyCode"> |
| | |
| | | margin-bottom: 0.19rem; |
| | | " |
| | | > |
| | | <el-checkbox v-model="checked" style="margin-right: 0.06rem;"></el-checkbox> |
| | | 用户注册即代表同意 |
| | | <span class="cursor" @click="termOfServiceClick(1)" |
| | | <span |
| | | class="cursor" |
| | | style="color: #244a7b" |
| | | @click="termOfServiceClick(1)" |
| | | >《服务条款》</span |
| | | > |
| | | 和<span class="cursor" @click="termOfServiceClick(2)" |
| | | 和<span |
| | | class="cursor" |
| | | style="color: #244a7b" |
| | | @click="termOfServiceClick(2)" |
| | | >《用户隐私保护和个人信息条款》</span |
| | | > |
| | | </view> |
| | |
| | | cellphoneORmailbox: [ |
| | | { |
| | | required: true, |
| | | message: "请输入手机", |
| | | message: "请输入手机号/邮箱", |
| | | trigger: "blur" |
| | | }, |
| | | { |
| | |
| | | name: "中医医事制度", |
| | | id: 5 |
| | | } |
| | | ] |
| | | ], |
| | | checked: false |
| | | }; |
| | | }, |
| | | onLoad() { |
| | |
| | | }, |
| | | // 用户注册 |
| | | async Login(formName) { |
| | | if(!this.checked) { |
| | | this.$message({ |
| | | message: '请勾选同意服务条款、用户隐私保护和个人信息条款', |
| | | type: 'warning' |
| | | }); |
| | | return false; |
| | | } |
| | | let Obj = { |
| | | username: this.registerData.loginID, |
| | | password: encryptAES(this.registerData.pass), |
| | |
| | | position: fixed; |
| | | right: 0; |
| | | top: 0; |
| | | z-index: 9999999999999999999999999999999999999999999 !important; |
| | | |
| | | z-index: 99999 !important; |
| | | > div { |
| | | height: 100%; |
| | | margin: 0 !important; |
| | | position: fixed; |
| | | right: 0; |
| | | top: 0; |
| | | top: 86px; |
| | | |
| | | > :nth-child(1) { |
| | | display: none; |
| | |
| | | |
| | | .search1 ::v-deep .uni-select__selector-item { |
| | | position: relative; |
| | | z-index: 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 !important; |
| | | z-index: 99999 !important; |
| | | |
| | | display: flex; |
| | | justify-content: center; |
| | |
| | | > |
| | | <view class="flex flex-center flex-column"> |
| | | <view |
| | | |
| | | style=" |
| | | font-weight: 900; |
| | | margin-bottom: 0.2rem; |
| | |
| | | >{{ detailData.name }} |
| | | </view> |
| | | <ul class="flex Lists"> |
| | | <li style="background-color: #597aa5; color: #fff;cursor: pointer;">学派介绍</li> |
| | | <li @click="ListClick" style="background-color: #fff; color: #597aa5;cursor: pointer;"> |
| | | <li style="background-color: #597aa5; color: #fff; cursor: pointer"> |
| | | 学派介绍 |
| | | </li> |
| | | <li |
| | | @click="ListClick" |
| | | style="background-color: #fff; color: #597aa5; cursor: pointer" |
| | | > |
| | | 学派图谱 |
| | | </li> |
| | | </ul> |
| | | </view> |
| | | <view ></view> |
| | | <view></view> |
| | | </view> |
| | | <view class="Bottom"> |
| | | <view class="Bottom_top flex"> |
| | |
| | | ? res.object.school_INTRODUCTION.map((item) => { |
| | | return { |
| | | content: item.content, |
| | | source: |
| | | "出处:《" + |
| | | res.object.bookList.find((citem) => citem.id == item.bookId) |
| | | .name + |
| | | "》 P" + |
| | | item.pageNo |
| | | source: res.object.bookList |
| | | ? "出处:《" + |
| | | res.object.bookList.find( |
| | | (citem) => citem.id == item.bookId |
| | | ).name + |
| | | "》 P" + |
| | | item.pageNo |
| | | : "" |
| | | }; |
| | | }) |
| | | : [], |
| | |
| | | ? res.object.school_DEVELOPMENT.map((item) => { |
| | | return { |
| | | content: item.content, |
| | | source: |
| | | "出处:《" + |
| | | res.object.bookList.find((citem) => citem.id == item.bookId) |
| | | .name + |
| | | "》 P" + |
| | | item.pageNo |
| | | source: res.object.bookList |
| | | ? "出处:《" + |
| | | res.object.bookList.find( |
| | | (citem) => citem.id == item.bookId |
| | | ).name + |
| | | "》 P" + |
| | | item.pageNo |
| | | : "" |
| | | }; |
| | | }) |
| | | : [], |
| | |
| | | ? res.object.achievement_INFLUENCE.map((item) => { |
| | | return { |
| | | content: item.content, |
| | | source: |
| | | "出处:《" + |
| | | res.object.bookList.find((citem) => citem.id == item.bookId) |
| | | .name + |
| | | "》 P" + |
| | | item.pageNo |
| | | source: res.object.bookList |
| | | ? "出处:《" + |
| | | res.object.bookList.find( |
| | | (citem) => citem.id == item.bookId |
| | | ).name + |
| | | "》 P" + |
| | | item.pageNo |
| | | : "" |
| | | }; |
| | | }) |
| | | : [], |
| | |
| | | ? res.object.related_LITERATURE.map((item) => { |
| | | return { |
| | | content: item.content, |
| | | source: |
| | | "出处:《" + |
| | | res.object.bookList.find((citem) => citem.id == item.bookId) |
| | | .name + |
| | | "》 P" + |
| | | item.pageNo |
| | | source: res.object.bookList |
| | | ? "出处:《" + |
| | | res.object.bookList.find( |
| | | (citem) => citem.id == item.bookId |
| | | ).name + |
| | | "》 P" + |
| | | item.pageNo |
| | | : "" |
| | | }; |
| | | }) |
| | | : [] |
| | |
| | | this.getElementWidth(); |
| | | }, |
| | | methods: { |
| | | // 返回登录 |
| | | BacktoLogin() { |
| | | // uni.redirectTo({ |
| | | // url: '/pages/Login/Login' |
| | | // }) |
| | | uni.navigateBack(); |
| | | this.$router.go(-1); |
| | | }, |
| | | getElementWidth() { |
| | | this.$nextTick(() => { |
| | |
| | | }); |
| | | }, |
| | | // 忘记密码 |
| | | async Login2(formName) { |
| | | Login2(formName) { |
| | | let Obj = { |
| | | username: this.amendDataPass.loginID, |
| | | password: encryptAES(this.amendDataPass.rawPass), |
| | | newPassword: encryptAES(this.amendDataPass.newPass) |
| | | }; |
| | | this.$refs[formName].validate(async (valid) => { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | // alert('submit!成功'); |
| | | getchangePassword(Obj).then((res) => { |
| | | if (res.success == true) { |
| | | this.$message.success('修改成功'); |
| | | uni.navigateBack(); |
| | | uni.navigateTo({ |
| | | url: "/pages/Login/Login" |
| | | }); |
| | | } else { |
| | | this.$message.error(res.errorText); |
| | | } |
| | | }); |
| | | // uni.redirectTo({ encryptAES |
| | | // url: '/pages/Login/Login' |
| | | // }) |
| | | } else { |
| | | console.log("error submit!!失败"); |
| | | return false; |
| | |
| | | </div> |
| | | <ul class="font-family" style="font-size: 0.13rem; line-height: 2"> |
| | | <li |
| | | style="cursor: pointer" |
| | | v-for="(item, index) in personResearchList" |
| | | :key="index" |
| | | @click="toLink(item)" |
| | |
| | | </div> |
| | | |
| | | <!-- 返回顶部 --> |
| | | <el-col style="position: absolute; bottom: 1rem; left: 1.2rem"> |
| | | <el-col |
| | | style=" |
| | | position: absolute; |
| | | bottom: 1rem; |
| | | left: 1.2rem; |
| | | width: 0.6rem; |
| | | height: 0.6rem; |
| | | " |
| | | > |
| | | <el-button |
| | | style="font-size: 0.3rem" |
| | | icon="el-icon-top" |
| | |
| | | getPersonRelationAtSchool, |
| | | getSpaceTime |
| | | } from "@/api/index.js"; |
| | | import { getImg } from "@/static/tool.js"; |
| | | import { getImg, getFile } from "@/static/tool.js"; |
| | | import L from "leaflet"; |
| | | import "leaflet.chinatmsproviders"; |
| | | |
| | |
| | | }); |
| | | }, |
| | | toLink(item) { |
| | | window.open(item.url); |
| | | console.log(item); |
| | | if (item.url) { |
| | | window.open(item.url); |
| | | } |
| | | if (item.filePath) { |
| | | window.open(getFile(item.filePath)); |
| | | } |
| | | }, |
| | | getData() { |
| | | // 基本信息 |
| | |
| | | : fieldItem.content1; |
| | | } |
| | | } |
| | | console.log(obj); |
| | | this.detailInfo = obj; |
| | | // 关系图谱 |
| | | this.getMappingData(this.detailInfo.NAME); |
| | |
| | | (node) => node.id === item.identifier2 && node.name === item.name2 |
| | | ); |
| | | // 证明不存在 |
| | | if (exists1 !== true) { |
| | | if (item.name1 && exists1 !== true) { |
| | | this.nodes.push({ |
| | | name: item.name1, |
| | | id: item.identifier1 |
| | | }); |
| | | } |
| | | if (exists2 !== true) { |
| | | if (item.name2 && exists2 !== true) { |
| | | this.nodes.push({ |
| | | name: item.name2, |
| | | id: item.identifier2 |
| | |
| | | |
| | | ::v-deep .el-dialog__body { |
| | | padding: 0; |
| | | } |
| | | |
| | | ::v-deep .el-dialog__wrapper { |
| | | z-index: 999999999999999 !important; |
| | | } |
| | | |
| | | .ProfileNav { |
| | |
| | | </li> |
| | | </ul> |
| | | </view> |
| | | <view style="margin-left: 0.2rem">书中最常提到的100位人物</view> |
| | | <view style="margin-left: 0.2rem">书中最常提到的100位人物</view> |
| | | <!-- 关系表地图 --> |
| | | <view |
| | | id="relation" |
| | | style="margin-top: 0.2rem; flex: 1; width: 100%; position: relative" |
| | | ><div |
| | | > |
| | | <div |
| | | v-if="!loading && relationships.length == 0" |
| | | style=" |
| | | position: absolute; |
| | |
| | | " |
| | | > |
| | | 暂无相关数据 |
| | | </div></view |
| | | > |
| | | </div> |
| | | </view> |
| | | |
| | | <!-- 朝代 --> |
| | | <!-- <view |
| | |
| | | }, |
| | | mounted() { |
| | | this.getData(); |
| | | this.echartsArr(); |
| | | // this.echartsArr(); |
| | | this.hotSearch(); |
| | | // 监听窗口大小变化 |
| | | // window.addEventListener("resize", this.relation); |
| | | window.addEventListener("resize", this.relation); |
| | | this.innt(); |
| | | }, |
| | | onLoad(options) { |
| | |
| | | }, |
| | | methods: { |
| | | getData(key) { |
| | | this.loading = true; |
| | | getFuzzySearch({ |
| | | keyword: key ? key : this.searchKey ? this.searchKey : "" |
| | | }).then((res) => { |
| | |
| | | (node) => node.id === item.identifier2 && node.name === item.name2 |
| | | ); |
| | | // 证明不存在 |
| | | if (exists1 !== true) { |
| | | if (item.name1 && exists1 !== true) { |
| | | this.nodes.push({ |
| | | name: item.name1, |
| | | id: item.identifier1 |
| | | }); |
| | | } |
| | | if (exists2 !== true) { |
| | | if (item.name2 && exists2 !== true) { |
| | | this.nodes.push({ |
| | | name: item.name2, |
| | | id: item.identifier2 |
| | |
| | | } |
| | | }, |
| | | force: { |
| | | initLayout: null, |
| | | // gravity: 0 |
| | | // layoutAnimation: false, |
| | | // friction: 1, |
| | | repulsion: 800, |
| | | edgeLength: 400 |
| | | } |
| | |
| | | <view |
| | | class="font-family" |
| | | style="font-size: 0.26rem; padding-top: 0.16rem; font-weight: bold" |
| | | >{{ activityInfo.participants }}</view |
| | | >{{ basicInfo.name }}</view |
| | | > |
| | | <ul |
| | | style=" |
| | |
| | | line-height: 0.28rem; |
| | | " |
| | | > |
| | | <li>出生于{{ basicInfo.nativePlace }}</li> |
| | | <li>出生于{{ basicInfo.nativePlace || "-" }}</li> |
| | | <li> |
| | | {{ |
| | | basicInfo.birthYear + |
| | | basicInfo.nativePlace + |
| | | "(今" + |
| | | basicInfo.nowPlace + |
| | | ")" |
| | | }} |
| | | <span v-if="basicInfo.birthYear">{{basicInfo.birthYear}}</span> |
| | | <span v-if="basicInfo.nativePlace">{{basicInfo.nativePlace}}</span> |
| | | <span v-if="basicInfo.nowPlace">(今{{basicInfo.nowPlace}})</span> |
| | | </li> |
| | | </ul> |
| | | <ul |
| | |
| | | line-height: 0.28rem; |
| | | " |
| | | > |
| | | <li>活动名称:{{ activityInfo.activityName }}</li> |
| | | <li>活动地点:{{ activityInfo.activityAddr }}</li> |
| | | <li>活动区间:{{ activityInfo.time }}</li> |
| | | <li>活动描述:{{ activityInfo.desc }}</li> |
| | | <li>参与人员:{{ activityInfo.participants }}</li> |
| | | <li>活动名称:{{ activityInfo.activityName || "-" }}</li> |
| | | <li>活动地点:{{ activityInfo.activityAddr || "-" }}</li> |
| | | <li>活动区间:{{ activityInfo.time || "-" }}</li> |
| | | <li>活动描述:{{ activityInfo.desc || "-" }}</li> |
| | | <li>参与人员:{{ activityInfo.participants || "-" }}</li> |
| | | </ul> |
| | | <!-- <img |
| | | style="width: 100%; height: 2rem" |
| | | src="https://img0.baidu.com/it/u=1845740325,2917001370&fm=253&app=120&size=w931&n=0&f=JPEG&fmt=auto?sec=1711731600&t=0b208ab46e1d33aa81ac31dd6bf627be" |
| | | alt="" |
| | | /> --> |
| | | <div class="box" style="width: 80%"> |
| | | <!-- <div class="box" style="width: 80%"> |
| | | <span class="span" :style="{ marginLeft: spanML + 'rem' }" |
| | | >{{ span }}年</span |
| | | > |
| | |
| | | </div> |
| | | <div class="MX"></div> |
| | | <div class="cursor" :style="{ marginLeft: cursorML + 'rem' }"></div> |
| | | </div> |
| | | </div> --> |
| | | </el-dialog> |
| | | </view> |
| | | </view> |
| | |
| | | spanML: 0, |
| | | cursorML: -0.05, |
| | | activityInfo: {}, |
| | | basicInfo: {} |
| | | basicInfo: { |
| | | name: "", |
| | | birthYear: "", |
| | | deathYear: "", |
| | | nativePlace: "", |
| | | nowPlace: "", |
| | | } |
| | | }; |
| | | }, |
| | | |
| | |
| | | this.basicInfo.nowPlace = res.object.personFieldList.find( |
| | | (f) => f.fieldName == "NATIVE_PLACE" |
| | | ).content2; |
| | | // this.initMap(res.object.personSpaceTimeList); |
| | | console.log(this.basicInfo); |
| | | }); |
| | | }, |
| | | |
| | |
| | | margin: 0 !important; |
| | | position: absolute; |
| | | right: 0; |
| | | top: 0; |
| | | top: 86px; |
| | | bottom: 0; |
| | | width: 4rem; |
| | | height: 100%; |
| | | } |
| | | |
| | | .particulars ::v-deep .el-dialog__header { |
| | |
| | | class="Ttop flex flex-center flex-wrap" |
| | | style="flex-direction: column" |
| | | > |
| | | <view ></view> |
| | | <view ref="Rtop"> |
| | | <view></view> |
| | | <view ref="Rtop"> |
| | | <text class="login"></text> |
| | | <text |
| | | style=" |
| | |
| | | <!-- <view style="color: #244A7B;padding-bottom: .47rem;font-size: .3rem;font-weight: bold;">用户注册</view> --> |
| | | <view class="LoginBg"></view> |
| | | <view |
| | | |
| | | @click="BacktoLogin" |
| | | style=" |
| | | cursor: pointer; |
| | |
| | | :hide-required-asterisk="true" |
| | | ref="formLogin2" |
| | | label-position="right" |
| | | :label-width="80" |
| | | :rules="rules" |
| | | :model="resetDataPass" |
| | | > |
| | |
| | | import { Message } from "element-ui"; |
| | | export default { |
| | | components: { |
| | | Footer1, |
| | | Footer1 |
| | | }, |
| | | data() { |
| | | // 密码 |
| | |
| | | { |
| | | required: true, |
| | | message: "请输入登录账号", |
| | | trigger: "blur", |
| | | }, |
| | | trigger: "blur" |
| | | } |
| | | ], |
| | | newPass: [ |
| | | { |
| | | required: true, |
| | | message: "请输入密码", |
| | | trigger: "blur", |
| | | trigger: "blur" |
| | | }, |
| | | { |
| | | min: 6, |
| | | max: 10, |
| | | message: "密码长度在 6 到 12 个字符", |
| | | trigger: "blur", |
| | | trigger: "blur" |
| | | }, |
| | | { |
| | | validator: validatePass, |
| | | trigger: "blur", |
| | | }, |
| | | trigger: "blur" |
| | | } |
| | | ], |
| | | checkPass: [ |
| | | { |
| | | validator: validatePass2, |
| | | trigger: "blur", |
| | | }, |
| | | trigger: "blur" |
| | | } |
| | | ], |
| | | cellphoneORmailbox: [ |
| | | { |
| | | required: true, |
| | | message: "请输入手机号", |
| | | trigger: "blur", |
| | | trigger: "blur" |
| | | }, |
| | | { |
| | | validator: this.validateContact, |
| | | trigger: "blur", |
| | | }, |
| | | trigger: "blur" |
| | | } |
| | | ], |
| | | verifyCode: [ |
| | | { |
| | | required: true, |
| | | message: "请输入验证码", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | }, |
| | | // 重置密码 |
| | | resetDataPass: { |
| | | cellphoneORmailbox: "", |
| | | verifyCode: "", |
| | | newPass: "", |
| | | checkPass: "", |
| | | }, |
| | | checkPass: "" |
| | | } |
| | | }; |
| | | }, |
| | | onLoad() { |
| | |
| | | success: function (info) { |
| | | // console.log('屏幕的宽度:' + info.windowWidth); |
| | | // console.log('屏幕的高度:' + info.windowHeight); |
| | | }, |
| | | } |
| | | }); |
| | | }, |
| | | mounted() { |
| | |
| | | // 已有账号?返回登录 |
| | | BacktoLogin() { |
| | | uni.redirectTo({ |
| | | url: "/pages/Login/Login", |
| | | url: "/pages/Login/Login" |
| | | }); |
| | | }, |
| | | // 获取验证码 |
| | |
| | | if (!this.resetDataPass.cellphoneORmailbox) { |
| | | this.$message({ |
| | | message: "请输入手机!", |
| | | type: "warning", |
| | | type: "warning" |
| | | }); |
| | | |
| | | return false; |
| | |
| | | return; |
| | | } |
| | | let Obj = { |
| | | communicateParam: this.resetDataPass.cellphoneORmailbox, |
| | | communicateParam: this.resetDataPass.cellphoneORmailbox |
| | | }; |
| | | this.countdown = 60; |
| | | const intervalId = setInterval(() => { |
| | |
| | | // uni.setStorageSync('globalData', { id: 123, name: 'example' }); |
| | | if (item.id == 1) { |
| | | uni.navigateTo({ |
| | | url: "/pages/character/detail?id=" + item.id, |
| | | url: "/pages/character/detail?id=" + item.id |
| | | }); |
| | | } else if (item.id == 2) { |
| | | // uni.navigateTo({ |
| | |
| | | // }) |
| | | } else if (item.id == 3) { |
| | | uni.navigateTo({ |
| | | url: "/pages/academicGenres/index?id=" + item.id, |
| | | url: "/pages/academicGenres/index?id=" + item.id |
| | | }); |
| | | } else if (item.id == 4) { |
| | | uni.navigateTo({ |
| | | url: "/pages/territory/territory?id=" + item.id, |
| | | url: "/pages/territory/territory?id=" + item.id |
| | | }); |
| | | } else if (item.id == 5) { |
| | | uni.navigateTo({ |
| | | url: "/pages/TcmSystem/TcmSystem?id=" + item.id, |
| | | url: "/pages/TcmSystem/TcmSystem?id=" + item.id |
| | | }); |
| | | } |
| | | }, |
| | |
| | | let Obj = { |
| | | communicateParam: this.resetDataPass.cellphoneORmailbox, //手机或邮箱 |
| | | verifyCode: this.resetDataPass.verifyCode, //验证码 |
| | | newPassword: encryptAES(this.resetDataPass.newPass), //新密码 |
| | | newPassword: encryptAES(this.resetDataPass.newPass) //新密码 |
| | | }; |
| | | this.$refs[formName].validate(async (valid) => { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | await getRestPassword(Obj).then((res) => { |
| | | getRestPassword(Obj).then((res) => { |
| | | if (res.success) { |
| | | this.$message({ |
| | | message: "密码重置成功", |
| | | type: "success" |
| | | }); |
| | | uni.navigateTo({ |
| | | url: "/pages/Login/Login", |
| | | 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> |
| | |
| | | ::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: 0.2rem !important; |
| | | width: 0.7rem; |
| | | } |
| | | |
| | | .hua { |
| | |
| | | width: 1.2rem; |
| | | height: 0.37rem; |
| | | background: url(@/static/image/重置密码.png) no-repeat 0 0; |
| | | background-size: 100% ; |
| | | background-size: 100%; |
| | | } |
| | | |
| | | ::v-deep .el-card { |
| | |
| | | } |
| | | |
| | | ::v-deep .el-form-item__label { |
| | | min-width: 0.6rem; |
| | | width: 0.8rem; |
| | | padding: 0; |
| | | color: #244a7b; |
| | | font-size: 0.14rem; |
| | | font-weight: 500; |
| | | margin-right: 0.29rem; |
| | | margin-right: 0.1rem; |
| | | } |
| | | |
| | | ::v-deep .el-form-item { |
| | |
| | | <template> |
| | | <view > |
| | | <view> |
| | | <headNav |
| | | idIndex="2" |
| | | :searchBg="false" |
| | |
| | | </div> |
| | | <div class="contentBox"> |
| | | <!-- echarts图 --> |
| | | <div class="barChart" ref="barChart"></div> |
| | | <div id="barChart" ref="barChart"></div> |
| | | <div |
| | | v-if="!loading && nodeData.length == 0" |
| | | style=" |
| | | position: absolute; |
| | | top: 30%; |
| | | left: 0; |
| | | right: 0; |
| | | text-align: center; |
| | | font-size: 0.2rem; |
| | | color: #666; |
| | | " |
| | | > |
| | | 暂无搜索数据 |
| | | </div> |
| | | <div |
| | | class="toolBox" |
| | | v-if="showTool" |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | loading: true, |
| | | // 标题顶部栏需要的东西 |
| | | keyword: "", |
| | | idIndex: 0, |
| | |
| | | toolTop: 0, |
| | | toolLeft: 0, |
| | | toolInfo: {}, |
| | | totalCount: 0, |
| | | totalCount: 0 |
| | | }; |
| | | }, |
| | | onLoad(options) { |
| | |
| | | getStatistics() { |
| | | inheritMedicalSataStatistics().then((res) => { |
| | | this.dynasty = res.object; |
| | | this.activeId = this.dynasty[0].dynastyId |
| | | this.activeId = this.dynasty[0].dynastyId; |
| | | this.getData(); |
| | | }); |
| | | }, |
| | | getData() { |
| | | this.loading = true; |
| | | this.nodeData = []; |
| | | // const defaultDynasty = this.dynasty.find(f.dynasty == "宋"); |
| | | this.showTool = false; |
| | |
| | | searchType: this.searchType, |
| | | path: this.conditionId |
| | | }).then((res) => { |
| | | this.totalCount = res.object.totalCount |
| | | this.totalCount = res.object.totalCount; |
| | | }); |
| | | console.log(this.nodeData, "this.nodeData"); |
| | | this.loading = false; |
| | | // 初始化 echarts |
| | | this.initBarChart(); |
| | | }); |
| | | }, |
| | | initBarChart() { |
| | | // WMBg |
| | | //通过 $ref 进行挂载 |
| | | let myChart = echarts.init(this.$refs.barChart); |
| | | var chartDom = document.getElementById("barChart"); |
| | | let myChart = echarts.init(chartDom); |
| | | |
| | | let FontSize = 18; // 字体大小 |
| | | let BorderWidth = 2; // 边框大小 |
| | |
| | | height: 80vh; |
| | | position: relative; |
| | | } |
| | | .barChart { |
| | | #barChart { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | |
| | | } |
| | | |
| | | /* --------------- */ |
| | | @media screen and (min-width:2560px)and (max-width:3840px) {} |
| | | |
| | | .BoxLeft ::v-deep.el-card__body { |
| | | padding: .1rem .11rem !important; |
| | |
| | | |
| | | ::v-deep .el-dialog__body { |
| | | padding: 0; |
| | | } |
| | | |
| | | ::v-deep .el-dialog__wrapper { |
| | | z-index: 999999999999999 !important; |
| | | } |
| | | |
| | | .ProfileNav { |
| | |
| | | height: 3.2rem; |
| | | width: 3rem; |
| | | position: fixed; |
| | | z-index: 999999999999; |
| | | z-index: 99; |
| | | left: 1rem; |
| | | top: 2.2rem; |
| | | " |
| | |
| | | > |
| | | </div> |
| | | <view style="overflow: auto; height: 2.5rem"> |
| | | <div |
| | | v-if="!loading && SearchArr.length == 0" |
| | | style=" |
| | | position: absolute; |
| | | top: 30%; |
| | | left: 0; |
| | | right: 0; |
| | | text-align: center; |
| | | font-size: 0.2rem; |
| | | color: #666; |
| | | " |
| | | > |
| | | 暂无搜索数据 |
| | | </div> |
| | | <ul |
| | | class="information" |
| | | v-for="(item, index) in SearchArr" |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | loading: true, |
| | | // echarts元素点击时出来的弹窗和坐标 |
| | | keyword: "", |
| | | isEchTrue: false, |
| | |
| | | this.map.setView(latlng, 10); |
| | | }, |
| | | getDataList() { |
| | | getRetrieval({ keyword: this.keyword, dynasty: this.dynasty1Color }).then( |
| | | (res) => { |
| | | if (res.object) { |
| | | let markerList = []; |
| | | const listData = res.object.personList; |
| | | for (let i = 0; i < listData.length; i++) { |
| | | const item = listData[i]; |
| | | if (item.NATIVE_PLACE?.length > 0) { |
| | | item.NATIVE_PLACE.forEach((citem) => { |
| | | if (citem.xCoord && citem.yCoord) { |
| | | const currentDynasty = this.dynasty1.find( |
| | | (f) => f.id == item.PERIOD[0].content1 |
| | | ); |
| | | if (currentDynasty) { |
| | | item.dynastyInfo = currentDynasty; |
| | | } |
| | | markerList.push({ ...citem, ...item }); |
| | | this.SearchArr = []; |
| | | this.loading = true; |
| | | // 这里改成了分页的接口,需要调用多次取出所有数据 |
| | | |
| | | // 问题: |
| | | // 搜索结果不对 |
| | | // 点击地图标点出现弹框,拖动地图时应关闭弹框 |
| | | |
| | | getRetrieval({ |
| | | keyword: this.keyword, |
| | | dynasty: this.dynasty1Color, |
| | | page: 1, |
| | | pageSize: 1000 |
| | | }).then((res) => { |
| | | this.loading = false; |
| | | if (res.object) { |
| | | let markerList = []; |
| | | const listData = res.object.personList; |
| | | for (let i = 0; i < listData.length; i++) { |
| | | const item = listData[i]; |
| | | if (item.NATIVE_PLACE?.length > 0) { |
| | | item.NATIVE_PLACE.forEach((citem) => { |
| | | if (citem.xCoord && citem.yCoord) { |
| | | const currentDynasty = this.dynasty1.find( |
| | | (f) => f.id == item.PERIOD[0].content1 |
| | | ); |
| | | if (currentDynasty) { |
| | | item.dynastyInfo = currentDynasty; |
| | | } |
| | | }); |
| | | } |
| | | markerList.push({ ...citem, ...item }); |
| | | } |
| | | }); |
| | | } |
| | | this.initMap(markerList); |
| | | this.SearchArr = markerList.map((item) => ({ |
| | | birthAndDeath: item?.BIRTH_YEAR[0]?.content1 |
| | | ? item?.BIRTH_YEAR[0]?.content1 + |
| | | "-" + |
| | | item?.DEATH_YEAR[0]?.content1 |
| | | : "-", |
| | | name: item?.NAME[0]?.content1, |
| | | source: "-", |
| | | id: item.id |
| | | })); |
| | | this.markerList = markerList; |
| | | } |
| | | this.initMap(markerList); |
| | | this.SearchArr = markerList.map((item) => ({ |
| | | birthAndDeath: item?.BIRTH_YEAR[0]?.content1 |
| | | ? item?.BIRTH_YEAR[0]?.content1 + |
| | | "-" + |
| | | item?.DEATH_YEAR[0]?.content1 |
| | | : "-", |
| | | name: item?.NAME[0]?.content1, |
| | | source: "-", |
| | | id: item.id |
| | | })); |
| | | this.markerList = markerList; |
| | | } else { |
| | | this.initMap([]); |
| | | } |
| | | ); |
| | | }); |
| | | }, |
| | | //初始化地图 |
| | | initMap(markerList) { |
| | | console.log(markerList,'markerList'); |
| | | this.isEchTrue = false; |
| | | if (this.map) { |
| | | this.map.remove(); |
| | |
| | | for (let i = 0; i < markerList.length; i++) { |
| | | const item = markerList[i]; |
| | | let currentClassName = "map-circle-name"; |
| | | switch (item.dynastyInfo.dynastyChs) { |
| | | case "夏": |
| | | currentClassName = "map-circle-xia"; |
| | | break; |
| | | case "商": |
| | | currentClassName = "map-circle-shang"; |
| | | break; |
| | | case "西周": |
| | | currentClassName = "map-circle-zhou"; |
| | | break; |
| | | case "秦": |
| | | currentClassName = "map-circle-qin"; |
| | | break; |
| | | case "汉": |
| | | currentClassName = "map-circle-han"; |
| | | break; |
| | | case "隋": |
| | | currentClassName = "map-circle-sui"; |
| | | break; |
| | | case "唐": |
| | | currentClassName = "map-circle-tang"; |
| | | break; |
| | | case "明": |
| | | currentClassName = "map-circle-ming"; |
| | | break; |
| | | if (item.dynastyInfo) { |
| | | switch (item.dynastyInfo.dynastyChs) { |
| | | case "夏": |
| | | currentClassName = "map-circle-xia"; |
| | | break; |
| | | case "商": |
| | | currentClassName = "map-circle-shang"; |
| | | break; |
| | | case "西周": |
| | | currentClassName = "map-circle-zhou"; |
| | | break; |
| | | case "秦": |
| | | currentClassName = "map-circle-qin"; |
| | | break; |
| | | case "汉": |
| | | currentClassName = "map-circle-han"; |
| | | break; |
| | | case "隋": |
| | | currentClassName = "map-circle-sui"; |
| | | break; |
| | | case "唐": |
| | | currentClassName = "map-circle-tang"; |
| | | break; |
| | | case "明": |
| | | currentClassName = "map-circle-ming"; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | let icon = L.divIcon({ |
| | | html: `<div class='${currentClassName} ripple'></div>`, |
| | | iconSize: [80, 80], |
| | |
| | | |
| | | .relative { |
| | | position: relative; |
| | | /* z-index: 99999 !important; */ |
| | | z-index: 1; |
| | | } |
| | | |
| | |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | .el-dialog__wrapper, |
| | | .el-dialog { |
| | | position: relative; |
| | | z-index: 9999 !important; |
| | | } |
| | |
| | | } from "../utils/request/req1" |
| | | export const getImg = (path) => { |
| | | return baseUrl + "/picture/getImageByFilePath?filePath=" + path |
| | | } |
| | | |
| | | export const getFile = (path) => { |
| | | return baseUrl + "/file/getFileByFilePath?filePath=" + path |
| | | } |
| | |
| | | background-color: #244a7b; |
| | | border-radius: 30px; |
| | | margin: 2rpx; |
| | | cursor: pointer; |
| | | } |
| | | .searchBg { |
| | | width: 0.46rem; |