Commit 65b211f6 authored by miaojiale's avatar miaojiale

联盟首页

parent c156c399
......@@ -4,12 +4,12 @@ module.exports = {
useTabs: false,
semi: false,
singleQuote: false,
quoteProps: 'as-needed',
quoteProps: "as-needed",
jsxSingleQuote: false,
trailingComma: 'es5',
trailingComma: "es5",
bracketSpacing: true,
jsxBracketSameLine: false,
arrowParens: 'always',
arrowParens: "always",
vueIndentScriptAndStyle: false,
endOfLine: 'lf',
endOfLine: "auto",
}
......@@ -18,6 +18,8 @@ export default {
}
#vue-admin-beautiful {
height: 100vh;
overflow: auto;
margin-right: calc(100% - 100vw);
}
</style>
This diff is collapsed.
@charset "UTF-8";
/*针对英文单词,强制让单词换行,break-word不拆分单词, break-all拆分单词*/
* {
word-wrap: break-word; /*word-break: break-all;*/
}
html {
//font-size: calc(100vw / 7.5); /*1rem = 100px*/
}
body {
font-family: "Helvetica", "Tahoma", "Arial", "PingFang SC", "Microsoft Yahei",
"SimSun", "SimHei", "sans-serif";
color: #666;
background: #fff;
font-size: 14px;
}
.break-all {
word-break: break-all;
}
/*对齐方式*/
.text-left {
text-align: left;
}
.text-right {
text-align: right;
}
.text-center {
text-align: center;
}
/*图片居左、右、中*/
.img-left {
display: inline;
float: left;
}
.img-right {
display: inline;
float: right;
}
.img-center {
clear: both;
display: block;
margin: auto;
}
/*父容器要清除浮动*/
/*隐藏文字*/
.text-indent {
text-indent: -9999em;
}
.seo-text {
font-size: 0;
line-height: 0;
overflow: hidden;
}
/*图片控制尺寸*/
.img-overflow {
width: 100%;
height: 100%;
overflow: hidden;
}
/*img自适应*/
.img-responsive {
max-width: 100%;
height: auto;
display: block;
}
img {
border: none;
}
/*清除浮动*/
.fl {
float: left;
_display: inline;
*zoom: 1;
}
.fr {
float: right;
_display: inline;
*zoom: 1;
}
.clearfix {
*zoom: 1;
}
.clearfix:before,
.clearfix:after {
display: table;
line-height: 0;
content: "";
}
.clearfix:after {
clear: both;
}
/*外边距px*/
.margin-auto {
margin-left: auto;
margin-right: auto;
}
.mb30 {
margin-bottom: 30px;
}
/*字体加粗*/
.bold {
font-weight: bold;
}
/*1行显示省略号*/
.ellipsis {
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: block;
}
/*默认2行显示省略号 只适用于webkit内核*/
.ellipses-line2 {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.ellipses-line4 {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 4;
-webkit-box-orient: vertical;
}
/*placeholder重置字体颜色*/
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
color: #999 !important;
font-size: 12px;
}
input:-moz-placeholder,
textarea:-moz-placeholder {
color: #999 !important;
font-size: 12px;
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
color: #999 !important;
font-size: 12px;
}
// 美化滚动条
::-webkit-scrollbar-track-piece {
background-color: #fff;
-webkit-border-radius: 0;
opacity: 0.5;
}
::-webkit-scrollbar {
width: 6px;
height: 10px;
}
::-webkit-scrollbar-thumb {
height: 30px;
background-color: #b8b8b8;
-webkit-border-radius: 6px;
outline: 1px solid transparent;
outline-offset: -2px;
border: 1px solid transparent;
filter: alpha(opacity = 30);
-moz-opacity: .5;
opacity: .5;
}
::-webkit-scrollbar-thumb:hover {
height: 30px;
background-color: #878987;
-webkit-border-radius: 6px;
}
/*隐藏*/
.hidden {
display: none;
}
.visible {
display: block;
}
/*将dcss容器里的所有元素设为默认值*/
.dcss html,
.dcss address,
.dcss blockquote,
.dcss body,
.dcss dd,
.dcss div,
.dcss dl,
.dcss dt,
.dcss fieldset,
.dcss form,
.dcss frame,
.dcss frameset,
.dcss h1,
.dcss h2,
.dcss h3,
.dcss h4,
.dcss h5,
.dcss h6,
.dcss noframes,
.dcss ol,
.dcss p,
.dcss ul,
.dcss center,
.dcss dir,
.dcss hr,
.dcss menu,
.dcss pre {
display: block;
}
.dcss li {
display: list-item;
}
.dcss head {
display: none;
}
.dcss table {
display: table;
}
.dcss tr {
display: table-row;
}
.dcss thead {
display: table-header-group;
}
.dcss tbody {
display: table-row-group;
}
.dcss tfoot {
display: table-footer-group;
}
.dcss col {
display: table-column;
}
.dcss colgroup {
display: table-column-group;
}
.dcss td,
.dcss th {
display: table-cell;
}
.dcss caption {
display: table-caption;
}
.dcss th {
font-weight: bolder;
text-align: center;
}
.dcss caption {
text-align: center;
}
.dcss body {
margin: 8px;
line-height: 1.12;
}
.dcss h1 {
font-size: 2em;
margin: 0.67em 0;
line-height: 1.5em;
}
.dcss h2 {
font-size: 1.5em;
margin: 0.75em 0;
line-height: 1.5em;
}
.dcss h3 {
font-size: 1.17em;
margin: 0.83em 0;
line-height: 1.5em;
}
.dcss h4 {
font-size: 1.09em;
margin: 1.12em 0;
line-height: 1.5em;
}
.dcss h4,
.dcss p,
.dcss blockquote,
.dcss ul,
.dcss fieldset,
.dcss form,
.dcss ol,
.dcss dl,
.dcss dir,
.dcss menu {
margin: 1.12em 0;
}
.dcss h5 {
font-size: 0.83em;
margin: 1.5em 0;
line-height: 1.5em;
}
.dcss h6 {
font-size: 0.75em;
margin: 1.67em 0;
line-height: 1.5em;
}
.dcss h1,
.dcss h2,
.dcss h3,
.dcss h4,
.dcss h5,
.dcss h6,
.dcss b,
.dcss strong {
font-weight: bolder;
}
.dcss blockquote {
margin-left: 40px;
margin-right: 40px;
}
.dcss i,
.dcss cite,
.dcss em,
.dcss var,
.dcss address {
font-style: italic;
}
.dcss pre,
.dcss tt,
.dcss code,
.dcss kbd,
.dcss samp {
font-family: monospace;
}
.dcss pre {
white-space: pre;
}
.dcss button,
.dcss textarea,
.dcss input,
.dcss object,
.dcss select {
display: inline-block;
}
.dcss big {
font-size: 1.17em;
}
.dcss small,
.dcss sub,
.dcss sup {
font-size: 0.83em;
}
.dcss sub {
vertical-align: sub;
}
.dcss sup {
vertical-align: super;
}
.dcss table {
border-spacing: 2px;
}
.dcss thead,
.dcss tbody,
.dcss tfoot {
vertical-align: middle;
}
.dcss td,
.dcss th {
vertical-align: inherit;
}
.dcss s,
.dcss strike,
.dcss del {
text-decoration: line-through;
}
.dcss hr {
border: 1px inset;
}
.dcss ol,
.dcss ul,
.dcss dir,
.dcss menu,
.dcss dd {
margin-left: 40px;
}
.dcss ol,
.dcss ul,
.dcss li {
list-style-type: decimal;
}
.dcss ol ul,
.dcss ul ol,
.dcss ul ul,
.dcss ol ol {
margin-top: 0;
margin-bottom: 0;
}
.dcss u,
.dcss ins {
text-decoration: underline;
}
.dcss br:before {
content: "A";
}
.dcss :before,
.dcss :after {
white-space: pre-line;
}
.dcss center {
text-align: center;
}
.dcss abbr,
.dcss acronym {
font-variant: small-caps;
letter-spacing: 0.1em;
}
.dcss :link,
.dcss :visited {
text-decoration: underline;
}
.dcss :focus {
outline: thin dotted invert;
}
.dcss BDO[DIR="ltr"] {
direction: ltr;
unicode-bidi: bidi-override;
}
.dcss BDO[DIR="rtl"] {
direction: rtl;
unicode-bidi: bidi-override;
}
.dcss *[DIR="ltr"] {
direction: ltr;
unicode-bidi: embed;
}
.dcss *[DIR="rtl"] {
direction: rtl;
unicode-bidi: embed;
}
@media print {
.dcss h1 {
page-break-before: always;
}
.dcss h1,
.dcss h2,
.dcss h3,
.dcss h4,
.dcss h5,
.dcss h6 {
page-break-after: avoid;
}
.dcss ul,
.dcss ol,
.dcss dl {
page-break-before: avoid;
}
}
@charset "UTF-8";
/*防止用户自定义背景颜色对网页的影响,添加让用户可以自定义字体 */
html {
-webkit-text-size-adjust: 100%; /*禁用Webkit内核浏览器的文字大小调整功能,默认是auto;*/
-ms-text-size-adjust: 100%; /*禁用IE内核浏览器的文字大小调整功能,默认是auto;*/
font-family: sans-serif;
-webkit-font-smoothing: antialiased;
height: 100%;
touch-action: manipulation; /*取消移动端click300ms的延迟*/
}
body {
height: 100%;
}
*,
*::before,
*::after {
margin: 0;
padding: 0;
box-sizing: border-box;
-webkit-tap-highlight-color: transparent;
}
/*此处增加dt,label针对bootstrap的加粗定义*/
dt,
label {
font-weight: normal;
font-size: 100%;
}
input,
button,
textarea,
select,
optgroup,
option {
font-size: 100%;
font-weight: normal;
outline: none;
}
h1,h2,h3,h4,h5{
padding: 0;
margin: 0;
font-weight: normal;
}
input,
button,
textarea {
-webkit-appearance: none;
}
/*去除ios按钮内阴影、圆角,对单选框、复选框有影响*/
input[type="checkbox"] {
-webkit-appearance: checkbox;
}
input[type="radio"] {
-webkit-appearance: radio;
}
input::-webkit-input-safebox-button {
display: none;
}
/*解决搜狗浏览器密码框自带安全键盘*/
input:focus,
textarea:focus {
outline: none;
}
th,
td,
button,
input,
select,
textarea {
-webkit-font-smoothing: antialiased;
-moz-font-smoothing: antialiased;
}
/*页面的字体抗锯齿,字体会更清晰圆滑*/
textarea {
resize: none;
border: 1px solid #ddd;
padding: 5px;
width: 100%;
border-radius: 0;
}
address, caption, cite, code, dfn, th, var, /*em,*/ i {
font-style: normal;
font-weight: normal;
}
sub,
sup {
vertical-align: baseline;
}
button {
overflow: visible;
vertical-align: middle;
outline: none;
height: auto;
}
/*去掉列表标签的默认样式*/
ul,
ol,
li {
list-style-type: none;
}
/*重置table样式*/
table {
border-collapse: collapse;
border-spacing: 0; /*table-layout: fixed;*/
}
/*table-layout: fixed; 表格布局尺寸固定(默认等分表格),表格的宽度不再由单元格的内容多少而决定,可自定义宽度(给th,td不起作用)*/
/*border-collapse: separate(独立边框); border-spacing:20px 20px(边框单元格间距离);*/
button {
cursor: pointer;
}
fieldset,
img {
border: 0;
}
/*a链接*/
a {
outline: none;
text-decoration: none;
color: #848484;
cursor: pointer;
}
a:focus {
outline: none;
text-decoration: none;
color: inherit;
}
a:hover {
outline: none;
color: #157df1;
text-decoration: none;
}
input::-webkit-inner-spin-button {
display: none;
}
@charset "utf-8";
// 全局
@import "reset";
@import "base";
//@import "reset-iview";
@import "index";
@function bvw($vw) {
@return $vw / 1440 * 100vw;
}
@function bvh($vh) {
@return $vh / 1024 * 100vh;
}
\ No newline at end of file
@charset "utf-8";
// 通用 全局
<template>
<div style="min-width: 1440px; overflow: overlay">
<Layout>
<Header class="layout-header">
<div class="logotitle">
<div class="leftLogo"></div>
<div class="rightText">
国家消化道早癌防治中心联盟 <br />早期胃癌筛查项目
</div>
</div>
<div v-if="!allianceToken" class="login">
<div class="login_title text-center">
筛查随访数据库登录
<Form ref="form" :model="form" :rules="rules" inline>
<FormItem prop="username" label="登录名:">
<Input
v-model="form.username"
type="text"
placeholder="请输入登录名"
>
</Input>
</FormItem>
<FormItem prop="password" label="密码:">
<Input
v-model="form.password"
type="password"
placeholder="请输入密码"
>
</Input>
</FormItem>
<FormItem>
<Button
type="primary"
class="login_button"
:loading="loading"
@click="handleSubmit('form')"
>登录</Button
>
</FormItem>
</Form>
</div>
</div>
<div v-if="allianceToken" class="userInfo">
<div class="white"></div>
<div class="text">欢迎,LIXid胡</div>
<div class="exit" @click="logout">退出</div>
</div>
</Header>
<div class="sider">
<Menu mode="horizontal" :active-name="currentRoute" class="siderMenu">
<MenuItem
v-for="(item, index) in menuList"
:key="index"
:name="item.route"
:to="item.route"
style="width: 10%; text-align: center; min-width: 120px"
>
{{ item.name }}
</MenuItem>
</Menu>
</div>
<Content style="overflow: hidden; padding: 32px 10%; background: #f3f3f3">
<transition name="fade-transform" mode="out-in">
<router-view></router-view>
</transition>
</Content>
<Footer class="layout-footer-center text-center"
>copyright@ 联盟信息等</Footer
>
</Layout>
</div>
</template>
<script>
import { loginRSA } from "@/config/settings"
import { getAccessToken } from "@/utils/accessToken"
import { encrypt, decrypt } from "@/utils/encryption"
export default {
data() {
return {
form: {
username: "",
password: "",
},
menuList: [
{
route: "/home",
name: "首页",
},
{
route: "/allianceintroduction",
name: "联盟介绍",
},
{
route: "/healthpopularization",
name: "健康科普",
},
{
route: "/scientificresearch",
name: "科学研究",
},
{
route: "/casesharing",
name: "案例分享",
},
],
loading: false,
rules: {
username: [
{ required: true, message: "请输入用户名", trigger: "blur" },
],
password: [
{ required: true, message: "请输入密码", trigger: "blur" },
{
type: "string",
min: 6,
message: "The password length cannot be less than 6 bits",
trigger: "blur",
},
],
},
allianceToken: getAccessToken(),
currentRoute: this.$route.path,
}
},
watch: {
$route: {
handler(v) {
this.currentRoute = this.$route.path
},
deep: true,
},
},
mounted() {
// if (localStorage.getItem('allianceToken')) {
// this.$router.push('/datacenter/home')
// }
},
methods: {
handleSubmit(name) {
this.$refs[name].validate((valid) => {
if (valid) {
this.loading = true
const data = Object.assign({}, this.form)
if (loginRSA) {
data.password = encodeURIComponent(encrypt(data.password))
data.userName = encodeURIComponent(encrypt(data.username))
}
this.$store
.dispatch("user/login", data)
.then(() => {
const routerPath =
!this.redirect || this.redirect === "/404" ? "/" : this.redirect
this.$router.push({ path: routerPath }).catch((e) => {})
this.loading = false
})
.catch((e) => {
this.loading = false
})
}
})
},
logout() {
this.$Modal.confirm({
title: "提示",
content:
'<p style="text-align:center;font-size:16px;">是否确认退出?</p>',
onOk: () => {
setTimeout(() => {
localStorage.removeItem("agcs")
this.allianceToken = ""
}, 500)
},
onCancel: () => {},
})
},
},
}
</script>
<style lang="scss" scoped>
.layout-header {
height: 400px;
width: 100%;
background: url("~@/assets/img/Home/homeheaderbg.png") no-repeat;
background-position: center;
background-size: cover;
display: flex;
padding-right: 10%;
justify-content: space-between;
align-items: center;
.logotitle {
height: 220px;
display: flex;
.leftLogo {
width: 72px;
height: 72px;
background: url("~@/assets/img/Home/stomach.png") no-repeat;
background-position: center;
background-size: cover;
}
.rightText {
min-width: 570px;
font-size: 42px;
font-family: AlibabaPuHuiTiB;
color: #ffffff;
margin-left: 14px;
}
}
.login {
width: 23%;
min-width: 334px;
height: 326px;
background: rgba(255, 255, 255, 0.96);
box-shadow: 0px 12px 36px 0px rgba(26, 35, 87, 0.4);
border-radius: 8px;
padding: 18px 40px;
.login_title {
height: 26px;
font-size: 22px;
font-family: AlibabaPuHuiTiM;
color: #4e68ff;
// line-height: 60px;
}
.login_button {
width: 100%;
height: 40px;
margin-top: 20px;
background: #4e68ff;
}
}
.userInfo {
height: 160px;
display: flex;
flex-direction: column;
align-items: flex-end;
.white {
width: 32px;
height: 4px;
background: #ffffff;
}
.text {
font-size: 20px;
font-family: AlibabaPuHuiTiM;
color: #ffffff;
}
.exit {
font-size: 16px;
cursor: pointer;
font-family: AlibabaPuHuiTiR;
text-decoration: underline;
color: rgba(255, 255, 255, 0.8);
line-height: 16px;
&:active {
color: #4e68ff;
}
}
}
}
.siderMenu {
padding: 0 10%;
background: #edefff;
}
.layout-footer-center {
width: 100%;
height: 108px;
background: #efefef;
line-height: 68px;
}
::v-deep {
.ivu-form {
.ivu-form-item {
display: block;
margin-bottom: 10px;
}
.ivu-form-item-label {
font-size: 14px;
font-family: AlibabaPuHuiTiR;
color: #333333;
}
}
}
/* fade-transform */
.fade-transform-leave-active,
.fade-transform-enter-active {
transition: all 0.3s;
}
.fade-transform-enter {
opacity: 0;
transform: translateX(-30px);
}
.fade-transform-leave-to {
opacity: 0;
transform: translateX(30px);
}
</style>
......@@ -27,7 +27,7 @@ router.beforeResolve(async (to, from, next) => {
let hasToken = store.getters["user/accessToken"]
if (!loginInterception) hasToken = true
if (hasToken) {
if (to.path === "/login") {
if (to.path === "/home") {
next({
path: "/",
})
......@@ -37,6 +37,7 @@ router.beforeResolve(async (to, from, next) => {
} else {
const userInfo = store.getters["user/userInfo"]
if (userInfo) {
console.log(to.path)
next()
} else {
try {
......@@ -56,7 +57,7 @@ router.beforeResolve(async (to, from, next) => {
})
await store.dispatch("user/resetAccessToken")
await resetRouter()
next(`/login`)
next(`/home`)
if (progressBar) VabProgress.done()
} else {
store.dispatch("dict/getDictData") //字典获取
......@@ -67,7 +68,7 @@ router.beforeResolve(async (to, from, next) => {
}
} catch (error) {
await store.dispatch("user/resetAccessToken")
next(`/login?redirect=${to.path}`)
next(`/home?redirect=${to.path}`)
if (progressBar) VabProgress.done()
}
}
......@@ -76,7 +77,7 @@ router.beforeResolve(async (to, from, next) => {
if (routesWhiteList.indexOf(to.path) !== -1) {
next()
} else {
next(`/login?redirect=${to.path}`)
next(`/home?redirect=${to.path}`)
if (progressBar) VabProgress.done()
}
}
......
......@@ -24,7 +24,18 @@ module.exports = {
// 路由模式,可选值为 history 或 hash
routerMode: "hash",
//不经过token校验的路由
routesWhiteList: ["/login", "/404", "/401", "/sso", "/test"],
routesWhiteList: [
// "/login",
"/404",
"/401",
"/sso",
"/test",
"/home",
"/allianceintroduction",
"/casesharing",
"/scientificresearch",
"/healthpopularization",
],
//加载时显示文字
loadingText: "正在加载中...",
//token名称
......
......@@ -6,10 +6,12 @@ import store from "./store"
import router from "./router"
import "./plugins"
import "./mixins"
import iView from "view-design"
import "view-design/dist/styles/iview.css"
import "@/assets/style/common.scss"
// const { mockXHR } = require("../mock/static")
// mockXHR()
Vue.use(iView)
Vue.config.productionTip = false
new Vue({
......
import Vue from "vue"
import VueRouter from "vue-router"
import Layout from "@/layouts"
import layout from "@/components/layout"
import EmptyLayout from "@/layouts/EmptyLayout"
Vue.use(VueRouter)
export const constantRoutes = [
{
path: "/login",
component: () => import("@/views/login/index"),
hidden: true,
name: "login",
path: "/home",
name: "Home",
redirect: "/home",
component: layout,
children: [
{
path: "/home",
component: () => import("@/views/Home/index"),
},
{
path: "/allianceintroduction",
component: () => import("@/views/Home/AllianceIntroduction/index"),
},
{
path: "/casesharing",
component: () => import("@/views/Home/CaseSharing/index"),
},
{
path: "/scientificresearch",
component: () => import("@/views/Home/ScientificResearch/index"),
},
{
path: "/healthpopularization",
component: () => import("@/views/Home/HealthPopularization/index"),
},
],
},
// {
// path: "/login",
// component: () => import("@/views/login/index"),
// hidden: true,
// name: "login",
// },
{
path: "/401",
name: "401",
......
......@@ -82,7 +82,7 @@ const actions = {
}
let { menuList, user, roleList, group } = data
if (menuList && user) {
dispatch("getFeedBackNumber", user.id)
// dispatch("getFeedBackNumber", user.id)
commit("setMenuList", menuList)
commit("setUserInfo", user)
commit("setRoles", roleList)
......
<template>
<div>联盟介绍</div>
</template>
<script>
export default {
data () {
return {}
},
methods: {},
mounted () { },
watch: {}
}
</script>
<style lang="scss" scoped>
</style>
\ No newline at end of file
<template>
<div>案例分享</div>
</template>
<script>
export default {
data () {
return {}
},
methods: {},
mounted () { },
watch: {}
}
</script>
<style lang="scss" scoped>
</style>
\ No newline at end of file
<template>
<div class="commonList">
<ul class="left_bar">
<li
v-for="(item, index) in leftBar"
:key="index"
:class="index == activeBar ? 'activeBar' : ''"
@click="changeActive(index)"
>
{{ item.name }}
</li>
</ul>
<div v-if="!showText" class="right_list">
<div class="list_title">
{{ leftBar[activeBar].name }}
</div>
<ul class="list">
<li v-for="(item, index) in leftBar[activeBar].list" :key="index">
<div class="leftImg">
<img src="~@/assets/img/Home/shenghuo.png" alt="" />
</div>
<div class="rightCon">
<div class="top">
<div class="rc_title">{{ item.title }}</div>
<div class="rc_date">{{ item.time }}</div>
</div>
<div class="bottom" @click="viewDetail(index)">查看</div>
</div>
</li>
</ul>
</div>
<div v-if="showText" class="right_content">
<div class="breadcum">
<div
v-for="(item, index) in showTitle"
:key="index"
:class="[index != showTitle.length - 1 ? 'before' : 'now']"
@click="back(index)"
>
{{ item }}<span v-if="index != showTitle.length - 1"> / </span>
</div>
</div>
{{ showText }}
</div>
</div>
</template>
<script>
export default {
data() {
return {
activeBar: 0,
leftBar: [
{
name: "筛查",
list: [
{
id: 1,
title: "筛查数据的科学性",
text: "123",
time: "2022/06-30",
},
{
id: 2,
title: "筛查数据的科学性",
text: "1",
time: "2022/06-30",
},
],
},
{
name: "生活",
},
{
name: "医学知识",
},
{
name: "其他",
},
],
showText: "",
showTitle: [],
}
},
mounted() {
console.log(this.$route)
if (this.$route.query.tabIndex) {
this.activeBar = this.$route.query.tabIndex
}
},
methods: {
changeActive(i) {
this.activeBar = i
this.showText = ""
},
viewDetail(i) {
this.showText = this.leftBar[this.activeBar].list[i].text
this.showTitle[0] = this.leftBar[this.activeBar].name
this.showTitle[1] = this.leftBar[this.activeBar].list[i].title
console.log(this.showText)
},
back(index) {
if (index == 0) {
this.showText = ""
}
},
},
}
</script>
<style lang="scss" scoped>
.commonList {
display: flex;
justify-content: space-between;
.left_bar {
width: 188px;
height: 760px;
background: #ffffff;
border-radius: 4px;
padding: 20px 0;
li {
width: 188px;
height: 52px;
font-size: 16px;
font-family: AlibabaPuHuiTiM;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
// background: rgba(78, 104, 255, 0.1);
}
.activeBar {
color: #4e68ff;
background: rgba(78, 104, 255, 0.1);
}
}
.right_list {
width: calc(100% - 208px);
height: 760px;
background: #ffffff;
border-radius: 4px;
padding: 32px;
.list_title {
height: 37px;
font-size: 16px;
font-family: AlibabaPuHuiTiR;
color: rgba(0, 0, 0, 0.8);
border-bottom: 1px solid #efefef;
}
.list {
li {
display: flex;
align-items: center;
margin-top: 20px;
.leftImg {
width: 132px;
height: 98px;
border-radius: 4px;
margin-right: 20px;
img {
width: 100%;
height: 100%;
}
}
.rightCon {
display: flex;
flex-direction: column;
justify-content: space-between;
height: 98px;
.rc_title {
font-size: 16px;
font-family: AlibabaPuHuiTiR;
color: #333333;
}
.rc_date {
font-size: 14px;
font-family: Roboto-Regular, Roboto;
font-weight: 400;
color: #999999;
}
.bottom {
cursor: pointer;
width: 68px;
height: 28px;
background: rgba(78, 104, 255, 0.1);
border-radius: 16px;
text-align: center;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #4e68ff;
line-height: 28px;
&:hover {
background: rgba(78, 104, 255, 0.2);
}
}
}
}
}
}
.right_content {
width: calc(100% - 208px);
height: 760px;
background: #ffffff;
border-radius: 4px;
padding: 32px;
}
}
.breadcum {
display: flex;
.before {
font-size: 16px;
font-family: AlibabaPuHuiTiR;
color: rgba(0, 0, 0, 0.4);
cursor: pointer;
&:hover {
color: #4e68ff;
}
}
.now {
margin-left: 5px;
font-size: 16px;
font-family: AlibabaPuHuiTiR;
}
}
</style>
<template>
<div class="commonList">
<ul class="left_bar">
<li
v-for="(item, index) in leftBar"
:key="index"
:class="index == activeBar ? 'activeBar' : ''"
@click="changeActive(index)"
>
{{ item.name }}
</li>
</ul>
<div class="right_list">
<div class="list_title">
{{ leftBar[activeBar].name }}
</div>
<ul class="list">
<li v-for="(item, index) in leftBar[activeBar].list" :key="index">
<div class="left_text">
<div class="circle"></div>
<div class="title">{{ item.title }}</div>
</div>
<div class="rig_date">
{{ item.time }}
</div>
</li>
</ul>
</div>
</div>
</template>
<script>
export default {
data() {
return {
activeBar: 0,
leftBar: [
{
name: "筛查技术方案",
list: [
{
title: "筛查数据的科学性",
text: "",
time: "2022/06-30",
},
{
title: "筛查数据的科学性",
text: "",
time: "2022/06-30",
},
],
},
{
name: "筛查指南",
},
{
name: "学术成果",
},
{
name: "项目进展与成果",
},
],
}
},
watch: {},
mounted() {
if (this.$route.query.tabIndex) {
this.activeBar = this.$route.query.tabIndex
}
},
methods: {
changeActive(i) {
this.activeBar = i
// this.$router.replace("/scientificresearch")
},
},
}
</script>
<style lang="scss" scoped>
.commonList {
display: flex;
justify-content: space-between;
.left_bar {
width: 188px;
height: 760px;
background: #ffffff;
border-radius: 4px;
padding: 20px 0;
li {
width: 188px;
height: 52px;
font-size: 16px;
font-family: AlibabaPuHuiTiM;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
// background: rgba(78, 104, 255, 0.1);
}
.activeBar {
color: #4e68ff;
background: rgba(78, 104, 255, 0.1);
}
}
.right_list {
width: calc(100% - 208px);
height: 760px;
background: #ffffff;
border-radius: 4px;
padding: 32px;
.list_title {
height: 37px;
font-size: 16px;
font-family: AlibabaPuHuiTiR;
color: rgba(0, 0, 0, 0.8);
border-bottom: 1px solid #efefef;
}
.list {
li {
height: 22px;
font-size: 16px;
font-family: AlibabaPuHuiTiR;
color: #333333;
line-height: 22px;
margin-top: 20px;
display: flex;
justify-content: space-between;
align-items: center;
cursor: pointer;
.left_text {
display: flex;
align-items: center;
.circle {
width: 6px;
height: 6px;
background: #4e68ff;
border-radius: 50%;
margin-right: 8px;
}
}
.rig_date {
font-size: 14px;
font-family: Roboto-Regular, Roboto;
font-weight: 400;
color: #999999;
}
}
}
}
}
</style>
This diff is collapsed.
<template>
<div>数据概览</div>
</template>
<script>
export default {
data() {
return {}
},
methods: {},
mounted() {},
watch: {},
}
</script>
<style lang="scss" scoped></style>
<template>
<div>草稿箱</div>
</template>
<script>
export default {
data() {
return {}
},
methods: {},
mounted() {},
watch: {},
}
</script>
<style lang="scss" scoped></style>
<template>
<div>添加筛查新病例</div>
</template>
<script>
export default {
data() {
return {}
},
methods: {},
mounted() {},
watch: {},
}
</script>
<style lang="scss" scoped></style>
......@@ -88,7 +88,8 @@ module.exports = {
},
proxy: {
"/api": {
target: "http://192.168.31.140:11021/",
// target: "http://192.168.31.140:11021/",
target: "https://ds.cixincloud.com/geca-api/",
changeOrigin: true,
pathRewrite: {
"^/api": "",
......
......@@ -2042,6 +2042,11 @@ async-limiter@~1.0.0:
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
async-validator@^3.3.0:
version "3.5.2"
resolved "https://registry.npmmirror.com/async-validator/-/async-validator-3.5.2.tgz#68e866a96824e8b2694ff7a831c1a25c44d5e500"
integrity sha512-8eLCg00W9pIRZSB781UUX/H6Oskmm8xloZfr09lz5bikRpBVDlJ3hRVuxxP1SxcwsEYfJ4IU8Q19Y8/893r3rQ==
async-validator@~1.8.1:
version "1.8.5"
resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.8.5.tgz#dc3e08ec1fd0dddb67e60842f02c0cd1cec6d7f0"
......@@ -2198,6 +2203,11 @@ base@^0.11.1:
mixin-deep "^1.2.0"
pascalcase "^0.1.1"
batch-processor@1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/batch-processor/-/batch-processor-1.0.0.tgz#75c95c32b748e0850d10c2b168f6bdbe9891ace8"
integrity sha512-xoLQD8gmmR32MeuBHgH0Tzd5PuSZx71ZsbhVxOCRbgktZEPe4SQy7s9Z50uPp0F/f7iw2XmkHN2xkgbMfckMDA==
batch@0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
......@@ -3645,6 +3655,11 @@ deepmerge@^1.2.0, deepmerge@^1.5.2:
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753"
integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==
deepmerge@^2.2.1:
version "2.2.1"
resolved "https://registry.npmmirror.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170"
integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==
default-gateway@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b"
......@@ -3939,6 +3954,13 @@ electron-to-chromium@^1.3.649:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.704.tgz#894205a237cbe0097d63da8f6d19e605dd13ab51"
integrity sha512-6cz0jvawlUe4h5AbfQWxPzb+8LzVyswGAWiGc32EJEmfj39HTQyNPkLXirc7+L4x5I6RgRkzua8Ryu5QZqc8cA==
element-resize-detector@^1.2.0:
version "1.2.4"
resolved "https://registry.npmmirror.com/element-resize-detector/-/element-resize-detector-1.2.4.tgz#3e6c5982dd77508b5fa7e6d5c02170e26325c9b1"
integrity sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg==
dependencies:
batch-processor "1.0.0"
element-ui@^2.15.2:
version "2.15.3"
resolved "https://registry.yarnpkg.com/element-ui/-/element-ui-2.15.3.tgz#55108ab82a3bcc646e7b0570871c48ba96300652"
......@@ -6249,6 +6271,11 @@ js-base64@^2.1.9:
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4"
integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==
js-calendar@^1.2.3:
version "1.2.3"
resolved "https://registry.npmmirror.com/js-calendar/-/js-calendar-1.2.3.tgz#a583b0644b4e695ba394f344d103dbcc7a7a7d3e"
integrity sha512-dAA1/Zbp4+c5E+ARCVTIuKepXsNLzSYfzvOimiYD4S5eeP9QuplSHLcdhfqFSwyM1o1u6ku6RRRCyaZ0YAjiBw==
js-cookie@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8"
......@@ -6617,6 +6644,11 @@ lodash.memoize@^4.1.2:
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
lodash.throttle@^4.1.1:
version "4.1.1"
resolved "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==
lodash.transform@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0"
......@@ -8078,6 +8110,11 @@ pnp-webpack-plugin@^1.6.4:
dependencies:
ts-pnp "^1.1.6"
popper.js@^1.14.6:
version "1.16.1"
resolved "https://registry.npmmirror.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b"
integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==
portfinder@^1.0.26:
version "1.0.28"
resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778"
......@@ -10281,6 +10318,11 @@ timsort@^0.3.0:
resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
tinycolor2@^1.4.1:
version "1.4.2"
resolved "https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803"
integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==
title-case@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/title-case/-/title-case-2.1.1.tgz#3e127216da58d2bc5becf137ab91dae3a7cd8faa"
......@@ -10732,6 +10774,11 @@ uuid@^3.3.2, uuid@^3.4.0:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
v-click-outside-x@^3.7.1:
version "3.7.1"
resolved "https://registry.npmmirror.com/v-click-outside-x/-/v-click-outside-x-3.7.1.tgz#aa03eaa0e41e44cb5207dcf86c2d9f0dd64084c1"
integrity sha512-WmUgmcIXr9clVpm1AYS/FgHtcDicfnfoxgQCNg4O6vfk9GVnxA0vSqO321ogUo0b7czYTidj7fQENvWFMWOkUg==
v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
......@@ -10789,6 +10836,20 @@ vfile@^4.0.0:
unist-util-stringify-position "^2.0.0"
vfile-message "^2.0.0"
view-design@^4.7.0:
version "4.7.0"
resolved "https://registry.npmmirror.com/view-design/-/view-design-4.7.0.tgz#98c4ec18ed70d1b58157007f8107a77158334846"
integrity sha512-WRvVRfsZciN0aJYlz+6b1zxs5G8tLFb4OUKOu+PiN0QyIGmdgWVziEyEmioYtJahQpueWiQpRYGzyxrpz3UkWQ==
dependencies:
async-validator "^3.3.0"
deepmerge "^2.2.1"
element-resize-detector "^1.2.0"
js-calendar "^1.2.3"
lodash.throttle "^4.1.1"
popper.js "^1.14.6"
tinycolor2 "^1.4.1"
v-click-outside-x "^3.7.1"
vm-browserify@^1.0.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment