Commit 3dce4ce7 authored by liang's avatar liang

Merge branch 'dev' of https://inno.sh-sict.com/gitlab/qq5616657/agcs2.0-web into dev

# Conflicts:
#	src/views/screening/index.vue
parents a2964f31 44fcec04
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
"qrcodejs2": "^0.0.2", "qrcodejs2": "^0.0.2",
"qs": "^6.9.4", "qs": "^6.9.4",
"screenfull": "^5.0.2", "screenfull": "^5.0.2",
"view-design": "^4.7.0",
"vue": "^2.6.11", "vue": "^2.6.11",
"vue-count-to": "^1.0.13", "vue-count-to": "^1.0.13",
"vue-router": "^3.3.4", "vue-router": "^3.3.4",
......
...@@ -4,12 +4,12 @@ module.exports = { ...@@ -4,12 +4,12 @@ module.exports = {
useTabs: false, useTabs: false,
semi: false, semi: false,
singleQuote: false, singleQuote: false,
quoteProps: 'as-needed', quoteProps: "as-needed",
jsxSingleQuote: false, jsxSingleQuote: false,
trailingComma: 'es5', trailingComma: "es5",
bracketSpacing: true, bracketSpacing: true,
jsxBracketSameLine: false, jsxBracketSameLine: false,
arrowParens: 'always', arrowParens: "always",
vueIndentScriptAndStyle: false, vueIndentScriptAndStyle: false,
endOfLine: 'lf', endOfLine: "auto",
} }
...@@ -18,6 +18,8 @@ export default { ...@@ -18,6 +18,8 @@ export default {
} }
#vue-admin-beautiful { #vue-admin-beautiful {
height: 100vh;
overflow: auto;
margin-right: calc(100% - 100vw); margin-right: calc(100% - 100vw);
} }
</style> </style>
@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) => { ...@@ -27,7 +27,7 @@ router.beforeResolve(async (to, from, next) => {
let hasToken = store.getters["user/accessToken"] let hasToken = store.getters["user/accessToken"]
if (!loginInterception) hasToken = true if (!loginInterception) hasToken = true
if (hasToken) { if (hasToken) {
if (to.path === "/login") { if (to.path === "/home") {
next({ next({
path: "/", path: "/",
}) })
...@@ -37,6 +37,7 @@ router.beforeResolve(async (to, from, next) => { ...@@ -37,6 +37,7 @@ router.beforeResolve(async (to, from, next) => {
} else { } else {
const userInfo = store.getters["user/userInfo"] const userInfo = store.getters["user/userInfo"]
if (userInfo) { if (userInfo) {
console.log(to.path)
next() next()
} else { } else {
try { try {
...@@ -56,7 +57,7 @@ router.beforeResolve(async (to, from, next) => { ...@@ -56,7 +57,7 @@ router.beforeResolve(async (to, from, next) => {
}) })
await store.dispatch("user/resetAccessToken") await store.dispatch("user/resetAccessToken")
await resetRouter() await resetRouter()
next(`/login`) next(`/home`)
if (progressBar) VabProgress.done() if (progressBar) VabProgress.done()
} else { } else {
store.dispatch("dict/getDictData") //字典获取 store.dispatch("dict/getDictData") //字典获取
...@@ -67,7 +68,7 @@ router.beforeResolve(async (to, from, next) => { ...@@ -67,7 +68,7 @@ router.beforeResolve(async (to, from, next) => {
} }
} catch (error) { } catch (error) {
await store.dispatch("user/resetAccessToken") await store.dispatch("user/resetAccessToken")
next(`/login?redirect=${to.path}`) next(`/home?redirect=${to.path}`)
if (progressBar) VabProgress.done() if (progressBar) VabProgress.done()
} }
} }
...@@ -76,7 +77,7 @@ router.beforeResolve(async (to, from, next) => { ...@@ -76,7 +77,7 @@ router.beforeResolve(async (to, from, next) => {
if (routesWhiteList.indexOf(to.path) !== -1) { if (routesWhiteList.indexOf(to.path) !== -1) {
next() next()
} else { } else {
next(`/login?redirect=${to.path}`) next(`/home?redirect=${to.path}`)
if (progressBar) VabProgress.done() if (progressBar) VabProgress.done()
} }
} }
......
...@@ -24,7 +24,18 @@ module.exports = { ...@@ -24,7 +24,18 @@ module.exports = {
// 路由模式,可选值为 history 或 hash // 路由模式,可选值为 history 或 hash
routerMode: "hash", routerMode: "hash",
//不经过token校验的路由 //不经过token校验的路由
routesWhiteList: ["/login", "/404", "/401", "/sso", "/test"], routesWhiteList: [
// "/login",
"/404",
"/401",
"/sso",
"/test",
"/home",
"/allianceintroduction",
"/casesharing",
"/scientificresearch",
"/healthpopularization",
],
//加载时显示文字 //加载时显示文字
loadingText: "正在加载中...", loadingText: "正在加载中...",
//token名称 //token名称
......
...@@ -6,10 +6,12 @@ import store from "./store" ...@@ -6,10 +6,12 @@ import store from "./store"
import router from "./router" import router from "./router"
import "./plugins" import "./plugins"
import "./mixins" import "./mixins"
import iView from "view-design"
import "view-design/dist/styles/iview.css"
import "@/assets/style/common.scss"
// const { mockXHR } = require("../mock/static") // const { mockXHR } = require("../mock/static")
// mockXHR() // mockXHR()
Vue.use(iView)
Vue.config.productionTip = false Vue.config.productionTip = false
new Vue({ new Vue({
......
import Vue from "vue" import Vue from "vue"
import VueRouter from "vue-router" import VueRouter from "vue-router"
import Layout from "@/layouts" import Layout from "@/layouts"
import layout from "@/components/layout"
import EmptyLayout from "@/layouts/EmptyLayout" import EmptyLayout from "@/layouts/EmptyLayout"
Vue.use(VueRouter) Vue.use(VueRouter)
export const constantRoutes = [ export const constantRoutes = [
{ {
path: "/login", path: "/home",
component: () => import("@/views/login/index"), name: "Home",
hidden: true, redirect: "/home",
name: "login", 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", path: "/401",
name: "401", name: "401",
......
<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>
<template>
<div id="con">
<div class="top flex">
<div class="left box">
<video :src="videoSrc" controls class="video" />
</div>
<div class="right box tabbox">
<Tabs :value="curTab">
<TabPane
v-for="(e, index) in tabList"
:key="index"
:label="e.title"
:name="e.title"
>
<ul class="tabslist">
<li v-for="(item, index) in noticeList" :key="index">
<div class="left">
<div class="circle"></div>
{{ item.title }}
</div>
<div class="right">
{{ item.date }}
</div>
</li>
</ul>
</TabPane>
</Tabs>
</div>
</div>
<!-- 数据分析 -->
<div class="dataAnalysis">
<div class="title_box">
<div class="title">数据分析</div>
<div class="empty"></div>
</div>
<div class="flex">
<div class="left box cenbox">
<div class="box_title text-center">联盟地图</div>
<img class="map" src="~@/assets/img/Home/map.png" alt="" />
</div>
<div class="right box cenbox cenboxs" style="background: transparent">
<div class="range">
<div class="box_title text-center">累计上报量机构排名</div>
<div class="rangecontent">
<div class="top10"></div>
<ul class="rangeList">
<li
v-for="(item, index) in rangeList"
:key="index"
:style="{ color: index < 3 ? '#4E68FF' : '#333333' }"
>
<div>{{ index + 1 }}</div>
<div>{{ item.name }}</div>
<div>{{ item.value }}</div>
</li>
</ul>
</div>
</div>
<div class="range">
<div class="box_title text-center">当前季度上报量机构排名</div>
<div class="rangecontent">
<div class="top10"></div>
<ul class="rangeList">
<li
v-for="(item, index) in rangeList"
:key="index"
:style="{ color: index < 3 ? '#4E68FF' : '#333333' }"
>
<div>{{ index + 1 }}</div>
<div>{{ item.name }}</div>
<div>{{ item.value }}</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<!-- 健康科普 -->
<div class="healthPopularization">
<div class="title_box">
<div class="title">健康科普</div>
<div class="empty"></div>
</div>
<ul class="typeList">
<li
v-for="(item, index) in typeList"
:key="index"
:style="{ backgroundImage: 'url(' + item.src + ')' }"
@click="
$router.push({
path: '/healthpopularization',
query: { tabIndex: index },
})
"
>
{{ item.name }}
</li>
</ul>
</div>
<!-- 科学研究 -->
<div class="scientificresearch">
<div class="title_box">
<div class="title">科学研究</div>
<div class="empty"></div>
</div>
<ul class="researchList">
<li
v-for="(item, index) in researchList"
:key="index"
@click="
$router.push({
path: '/scientificresearch',
query: { tabIndex: index },
})
"
>
{{ item }}
</li>
</ul>
</div>
<!-- 粘性定位 -->
<div v-show="showFixed" class="fixed_box">
<ul class="f_list">
<li v-for="(item, index) in rigBarList" :key="index">
<img :src="item.src" alt="" /><span>{{ item.name }}</span>
</li>
<li class="qrc_Box">
<div class="qr_name">问题反馈群</div>
</li>
</ul>
</div>
</div>
</template>
<script>
export default {
data() {
return {
// videoSrc: require("../../../public/aaa.mp4"),
videoSrc: "",
tabList: [
{
title: "新闻会议",
},
{
title: "通知公告",
},
{
title: "学术动态",
},
],
noticeList: [
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
{
title: "典型案例小标题典型案例小标题",
date: "2022-09-26",
},
],
curTab: "新闻会议",
rangeList: [
{ name: "包头医学院第二附属医院", value: 12345 },
{ name: "温州市中心医院", value: 222 },
{ name: "南方医科大学南海医院", value: 12345 },
{ name: "包头医学院第二附属医院", value: 12345 },
{ name: "包头医学院第二附属医院", value: 12345 },
{ name: "包头医学院第二附属医院", value: 12345 },
{ name: "包头医学院第二附属医院", value: 12345 },
{ name: "包头医学院第二附属医院", value: 12345 },
{ name: "包头医学院第二附属医院", value: 12345 },
{ name: "包头医学院第二附属医院", value: 12345 },
],
typeList: [
{
src: require("@/assets/img/Home/shaicha.png"),
name: "筛查",
route: "/healthpopularization",
},
{
src: require("@/assets/img/Home/shenghuo.png"),
name: "生活",
},
{
src: require("@/assets/img/Home/yixuezhishi.png"),
name: "医学知识",
},
{
src: require("@/assets/img/Home/qita.png"),
name: "其他",
},
],
rigBarList: [
{
src: require("@/assets/img/Home/kefu.png"),
name: "客服",
},
{
src: require("@/assets/img/Home/youxiang.png"),
name: "邮箱",
},
{
src: require("@/assets/img/Home/dizhi.png"),
name: "地址",
},
],
researchList: ["筛查技术方案", "筛查指南", "学术成果", "项目进展与成果"],
showFixed: false,
}
},
watch: {},
mounted() {
console.log(document.querySelector("#vue-admin-beautiful"))
document
.querySelector("#vue-admin-beautiful")
.addEventListener("scroll", () => {
let scrollTop = document.querySelector("#vue-admin-beautiful").scrollTop
if (scrollTop >= 700) {
this.showFixed = true
} else {
this.showFixed = false
}
})
},
methods: {},
}
</script>
<style lang="scss" scoped>
#con {
.flex {
display: flex;
justify-content: space-between;
margin-bottom: 38px;
.box {
width: 48%;
height: 300px;
// background: blue;
background: #fff;
.video {
width: 100%;
height: 100%;
object-fit: cover;
}
}
.tabbox {
padding: 8px 16px;
overflow: hidden;
.tabslist {
height: 220px;
padding-right: 8px;
overflow: auto;
li {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
font-family: AlibabaPuHuiTiR;
color: #666666;
margin-bottom: 16px;
cursor: pointer;
.left {
display: flex;
align-items: center;
.circle {
width: 4px;
height: 4px;
background: #7085fe;
border-radius: 50%;
margin-right: 8px;
}
}
}
}
}
}
.dataAnalysis {
.box_title {
width: 180px;
height: 36px;
background: #4e68ff;
border-radius: 0px 0px 4px 4px;
font-size: 16px;
font-family: AlibabaPuHuiTiM;
color: #ffffff;
margin: 0 auto;
line-height: 36px;
}
.cenbox {
height: 458px;
// background: url("~@/assets/img/Home/map.png") no-repeat center center;
// background-size: cover;
.map {
width: 100%;
height: 422px;
object-fit: contain;
}
}
.cenboxs {
display: flex;
justify-content: space-between;
.range {
width: 46%;
background: #ffffff;
border-radius: 4px;
border: 1px solid #d2d7f5;
padding: 0 7px;
.rangecontent {
margin-top: 6px;
height: 408px;
background: rgba(78, 104, 255, 0.06);
border-radius: 4px;
padding: 8px;
font-size: 14px;
font-family: AlibabaPuHuiTiM;
// color: #4e68ff;
.rangeList {
li {
margin-bottom: 14px;
display: flex;
justify-content: space-between;
div:nth-child(1) {
width: 20px;
}
div:nth-child(2) {
flex: 1;
}
div:nth-child(3) {
text-align: right;
}
}
}
}
.top10 {
height: 32px;
background: url("~@/assets/img/Home/top10.png") no-repeat center
center;
background-size: contain;
margin-bottom: 8px;
}
}
}
}
.healthPopularization {
margin-bottom: 38px;
.typeList {
display: flex;
justify-content: space-between;
li {
cursor: pointer;
width: 22%;
height: 188px;
display: flex;
justify-content: center;
align-items: center;
font-size: 24px;
color: #ffffff;
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
}
}
}
.scientificresearch {
.researchList {
display: flex;
margin-bottom: 20px;
li {
width: 188px;
height: 64px;
background: #ffffff;
box-shadow: 0px 4px 1px 1px #3d58f9;
text-align: center;
line-height: 64px;
border-radius: 4px;
border: 1px solid rgba(78, 104, 255, 0.12);
font-size: 16px;
font-family: AlibabaPuHuiTiM;
color: #333333;
margin-right: 20px;
cursor: pointer;
}
}
}
.title_box {
display: flex;
margin-bottom: 24px;
.title {
width: 64px;
height: 30px;
font-size: 16px;
font-family: AlibabaPuHuiTiM;
color: #4e68ff;
line-height: 22px;
border-bottom: 2px solid #4e68ff;
}
.empty {
flex: 1;
height: 30px;
border-bottom: 2px solid #ffffff;
}
}
.fixed_box {
background: #fff;
position: fixed;
padding: 20px 10px;
right: 30px;
bottom: 300px;
z-index: 1000;
.f_list {
li {
display: flex;
align-items: center;
margin-bottom: 30px;
img {
width: 20px;
height: 20px;
margin-right: 5px;
}
span {
width: 28px;
font-size: 14px;
font-family: AlibabaPuHuiTiR;
color: #333333;
}
}
.qrc_Box {
right: 0;
display: block;
position: absolute;
width: 180px;
height: 214px;
background: #546184
linear-gradient(225deg, #707c9c 0%, #94a0c1 0%, #546184 100%);
border-radius: 4px;
padding: 10px;
text-align: center;
.qr_name {
width: 100%;
height: 24px;
font-size: 18px;
font-family: AlibabaPuHuiTiM;
color: #ffffff;
line-height: 24px;
}
}
}
}
}
</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 = { ...@@ -88,7 +88,8 @@ module.exports = {
}, },
proxy: { proxy: {
"/api": { "/api": {
target: "http://192.168.31.140:11021/", // target: "http://192.168.31.140:11021/",
target: "https://ds.cixincloud.com/geca-api/",
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
"^/api": "", "^/api": "",
......
...@@ -2042,6 +2042,11 @@ async-limiter@~1.0.0: ...@@ -2042,6 +2042,11 @@ async-limiter@~1.0.0:
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== 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: async-validator@~1.8.1:
version "1.8.5" version "1.8.5"
resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.8.5.tgz#dc3e08ec1fd0dddb67e60842f02c0cd1cec6d7f0" resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.8.5.tgz#dc3e08ec1fd0dddb67e60842f02c0cd1cec6d7f0"
...@@ -2198,6 +2203,11 @@ base@^0.11.1: ...@@ -2198,6 +2203,11 @@ base@^0.11.1:
mixin-deep "^1.2.0" mixin-deep "^1.2.0"
pascalcase "^0.1.1" 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: batch@0.6.1:
version "0.6.1" version "0.6.1"
resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
...@@ -3645,6 +3655,11 @@ deepmerge@^1.2.0, deepmerge@^1.5.2: ...@@ -3645,6 +3655,11 @@ deepmerge@^1.2.0, deepmerge@^1.5.2:
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753"
integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== 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: default-gateway@^4.2.0:
version "4.2.0" version "4.2.0"
resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b"
...@@ -3939,6 +3954,13 @@ electron-to-chromium@^1.3.649: ...@@ -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" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.704.tgz#894205a237cbe0097d63da8f6d19e605dd13ab51"
integrity sha512-6cz0jvawlUe4h5AbfQWxPzb+8LzVyswGAWiGc32EJEmfj39HTQyNPkLXirc7+L4x5I6RgRkzua8Ryu5QZqc8cA== 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: element-ui@^2.15.2:
version "2.15.3" version "2.15.3"
resolved "https://registry.yarnpkg.com/element-ui/-/element-ui-2.15.3.tgz#55108ab82a3bcc646e7b0570871c48ba96300652" resolved "https://registry.yarnpkg.com/element-ui/-/element-ui-2.15.3.tgz#55108ab82a3bcc646e7b0570871c48ba96300652"
...@@ -6249,6 +6271,11 @@ js-base64@^2.1.9: ...@@ -6249,6 +6271,11 @@ js-base64@^2.1.9:
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4"
integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== 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: js-cookie@^2.2.1:
version "2.2.1" version "2.2.1"
resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8"
...@@ -6617,6 +6644,11 @@ lodash.memoize@^4.1.2: ...@@ -6617,6 +6644,11 @@ lodash.memoize@^4.1.2:
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= 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: lodash.transform@^4.6.0:
version "4.6.0" version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0"
...@@ -8078,6 +8110,11 @@ pnp-webpack-plugin@^1.6.4: ...@@ -8078,6 +8110,11 @@ pnp-webpack-plugin@^1.6.4:
dependencies: dependencies:
ts-pnp "^1.1.6" 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: portfinder@^1.0.26:
version "1.0.28" version "1.0.28"
resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778"
...@@ -10281,6 +10318,11 @@ timsort@^0.3.0: ...@@ -10281,6 +10318,11 @@ timsort@^0.3.0:
resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= 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: title-case@^2.1.0:
version "2.1.1" version "2.1.1"
resolved "https://registry.yarnpkg.com/title-case/-/title-case-2.1.1.tgz#3e127216da58d2bc5becf137ab91dae3a7cd8faa" 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: ...@@ -10732,6 +10774,11 @@ uuid@^3.3.2, uuid@^3.4.0:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== 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: v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0:
version "2.3.0" version "2.3.0"
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
...@@ -10789,6 +10836,20 @@ vfile@^4.0.0: ...@@ -10789,6 +10836,20 @@ vfile@^4.0.0:
unist-util-stringify-position "^2.0.0" unist-util-stringify-position "^2.0.0"
vfile-message "^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: vm-browserify@^1.0.1:
version "1.1.2" version "1.1.2"
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" 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