diff --git a/package.json b/package.json index 9708799742fb3e0f3717291863f14ee91950a2de..5b6ea941ccdc9cd3ccafd1db5f273d50dbc40103 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "qrcodejs2": "^0.0.2", "qs": "^6.9.4", "screenfull": "^5.0.2", + "view-design": "^4.7.0", "vue": "^2.6.11", "vue-count-to": "^1.0.13", "vue-router": "^3.3.4", diff --git a/prettier.config.js b/prettier.config.js index 3d64411025d59498bfc0f7cf5403a0db63f0cad1..82b269317a03b37edaa8eceee33541c4b52a0dca 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -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", } diff --git a/src/App.vue b/src/App.vue index 3ac7aca592ae6433de72edf3d636599d1ee35870..8c1ad6d2bc56196667286de2512d3b4b9370b827 100644 --- a/src/App.vue +++ b/src/App.vue @@ -18,6 +18,8 @@ export default { } #vue-admin-beautiful { + height: 100vh; + overflow: auto; margin-right: calc(100% - 100vw); } </style> diff --git a/src/assets/img/Home/dizhi.png b/src/assets/img/Home/dizhi.png new file mode 100644 index 0000000000000000000000000000000000000000..dab84db3081bcbfce7b7a2ae8fe604ba24a529c9 Binary files /dev/null and b/src/assets/img/Home/dizhi.png differ diff --git a/src/assets/img/Home/homeheaderbg.png b/src/assets/img/Home/homeheaderbg.png new file mode 100644 index 0000000000000000000000000000000000000000..21e9bff0f1e3db8d8ee1da3412a78abd4a0ca5f0 Binary files /dev/null and b/src/assets/img/Home/homeheaderbg.png differ diff --git a/src/assets/img/Home/kefu.png b/src/assets/img/Home/kefu.png new file mode 100644 index 0000000000000000000000000000000000000000..6b6554e8028a41cf2fd9819767d2e5972700a1e0 Binary files /dev/null and b/src/assets/img/Home/kefu.png differ diff --git a/src/assets/img/Home/map.png b/src/assets/img/Home/map.png new file mode 100644 index 0000000000000000000000000000000000000000..a116b449fa301bde6a17e5f46f36981d4c8a6c63 Binary files /dev/null and b/src/assets/img/Home/map.png differ diff --git a/src/assets/img/Home/qita.png b/src/assets/img/Home/qita.png new file mode 100644 index 0000000000000000000000000000000000000000..8b8bb503260767af01c57ff5ed13e848596f0f05 Binary files /dev/null and b/src/assets/img/Home/qita.png differ diff --git a/src/assets/img/Home/shaicha.png b/src/assets/img/Home/shaicha.png new file mode 100644 index 0000000000000000000000000000000000000000..478fcef94053d22604d225c8cf2ac3858040077b Binary files /dev/null and b/src/assets/img/Home/shaicha.png differ diff --git a/src/assets/img/Home/shenghuo.png b/src/assets/img/Home/shenghuo.png new file mode 100644 index 0000000000000000000000000000000000000000..9af1fe187c945507dcd8d4a06baa66c1dfa7bb25 Binary files /dev/null and b/src/assets/img/Home/shenghuo.png differ diff --git a/src/assets/img/Home/stomach.png b/src/assets/img/Home/stomach.png new file mode 100644 index 0000000000000000000000000000000000000000..b715a344cbc749d2395bbbd52ab0140aed331ba6 Binary files /dev/null and b/src/assets/img/Home/stomach.png differ diff --git a/src/assets/img/Home/top10.png b/src/assets/img/Home/top10.png new file mode 100644 index 0000000000000000000000000000000000000000..22b58f8a1c8abde9f694d9d3bd694e512a99c4da Binary files /dev/null and b/src/assets/img/Home/top10.png differ diff --git a/src/assets/img/Home/yixuezhishi.png b/src/assets/img/Home/yixuezhishi.png new file mode 100644 index 0000000000000000000000000000000000000000..d453eb3032e07821cdbbcbe2a3a11d31500406b3 Binary files /dev/null and b/src/assets/img/Home/yixuezhishi.png differ diff --git a/src/assets/img/Home/youxiang.png b/src/assets/img/Home/youxiang.png new file mode 100644 index 0000000000000000000000000000000000000000..62d18be6425a5382225d9d9b06b13b4bb58b4d7d Binary files /dev/null and b/src/assets/img/Home/youxiang.png differ diff --git a/src/assets/style/_base.scss b/src/assets/style/_base.scss new file mode 100644 index 0000000000000000000000000000000000000000..a49fe3c06a67a916de8b8c84f2f1407190742ec0 --- /dev/null +++ b/src/assets/style/_base.scss @@ -0,0 +1,532 @@ +@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; + } +} diff --git a/src/assets/style/_reset.scss b/src/assets/style/_reset.scss new file mode 100644 index 0000000000000000000000000000000000000000..9f87958a15f759a51ee272a8c736b66743321334 --- /dev/null +++ b/src/assets/style/_reset.scss @@ -0,0 +1,155 @@ +@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; +} diff --git a/src/assets/style/common.scss b/src/assets/style/common.scss new file mode 100644 index 0000000000000000000000000000000000000000..2a896b3feb875676f5d85e161c45f3ce4dbeed5a --- /dev/null +++ b/src/assets/style/common.scss @@ -0,0 +1,6 @@ +@charset "utf-8"; +// 全局 +@import "reset"; +@import "base"; +//@import "reset-iview"; +@import "index"; diff --git a/src/assets/style/compute.scss b/src/assets/style/compute.scss new file mode 100644 index 0000000000000000000000000000000000000000..5705d02943a4b0f0a88e658a2b9084f8d2b959ab --- /dev/null +++ b/src/assets/style/compute.scss @@ -0,0 +1,7 @@ +@function bvw($vw) { + @return $vw / 1440 * 100vw; +} + +@function bvh($vh) { + @return $vh / 1024 * 100vh; +} \ No newline at end of file diff --git a/src/assets/style/index.scss b/src/assets/style/index.scss new file mode 100644 index 0000000000000000000000000000000000000000..a9908d7220ae6cabb98572d6b638c30a65d27d11 --- /dev/null +++ b/src/assets/style/index.scss @@ -0,0 +1,3 @@ +@charset "utf-8"; +// 通用 全局 + diff --git a/src/components/layout/index.vue b/src/components/layout/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..9aa215f772374a7e5bc6a71562f1bb696fcbea87 --- /dev/null +++ b/src/components/layout/index.vue @@ -0,0 +1,296 @@ +<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> diff --git a/src/config/permission.js b/src/config/permission.js index 54f0ac398e9757c9dd2cc23605b1eb26a542d554..51d654fe8006a43398646f9c56975893a008374f 100644 --- a/src/config/permission.js +++ b/src/config/permission.js @@ -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() } } diff --git a/src/config/settings.js b/src/config/settings.js index 0cc8cc44bc8949396ded1e3b6f126361678717f0..2e1ca5be60770a70ae35d72da1d94e21ee9c617a 100644 --- a/src/config/settings.js +++ b/src/config/settings.js @@ -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åç§° diff --git a/src/main.js b/src/main.js index 8cacd40d436e301adcabdf6877aa22deb311991d..22e3e0b95b2f0bc7e8ee59e695b2e75a9989aad4 100644 --- a/src/main.js +++ b/src/main.js @@ -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({ diff --git a/src/router/index.js b/src/router/index.js index af998f7c1375decb3e31e3c7486680095a4c4884..189cc05c551cb33723bdbbd20064060273623c78 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,16 +1,45 @@ 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", diff --git a/src/views/Home/AllianceIntroduction/index.vue b/src/views/Home/AllianceIntroduction/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..87c635c55c425715943247977804b407e24ebc0e --- /dev/null +++ b/src/views/Home/AllianceIntroduction/index.vue @@ -0,0 +1,15 @@ +<template> + <div>è”盟介ç»</div> +</template> +<script> +export default { + data () { + return {} + }, + methods: {}, + mounted () { }, + watch: {} +} +</script> +<style lang="scss" scoped> +</style> \ No newline at end of file diff --git a/src/views/Home/CaseSharing/index.vue b/src/views/Home/CaseSharing/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..c594dca7e2a1ad8c4fe1c8b81aaa7611ffa28bf9 --- /dev/null +++ b/src/views/Home/CaseSharing/index.vue @@ -0,0 +1,15 @@ +<template> + <div>案例分享</div> +</template> +<script> +export default { + data () { + return {} + }, + methods: {}, + mounted () { }, + watch: {} +} +</script> +<style lang="scss" scoped> +</style> \ No newline at end of file diff --git a/src/views/Home/HealthPopularization/index.vue b/src/views/Home/HealthPopularization/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..c878eeed16c8878977ae253cb6ed84ae7f4f2055 --- /dev/null +++ b/src/views/Home/HealthPopularization/index.vue @@ -0,0 +1,225 @@ +<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> diff --git a/src/views/Home/ScientificResearch/index.vue b/src/views/Home/ScientificResearch/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..24b78d31c9159796b377953ffc4ab34963a0e6a1 --- /dev/null +++ b/src/views/Home/ScientificResearch/index.vue @@ -0,0 +1,151 @@ +<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> diff --git a/src/views/Home/index.vue b/src/views/Home/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..581e5b4faa21e203c1ef65b64f7a5167ae441e8a --- /dev/null +++ b/src/views/Home/index.vue @@ -0,0 +1,479 @@ +<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> diff --git a/src/views/dataoverview/index.vue b/src/views/dataoverview/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..892a461d3e2ada56acedc20aed310a1dd5516fcd --- /dev/null +++ b/src/views/dataoverview/index.vue @@ -0,0 +1,14 @@ +<template> + <div>æ•°æ®æ¦‚览</div> +</template> +<script> +export default { + data() { + return {} + }, + methods: {}, + mounted() {}, + watch: {}, +} +</script> +<style lang="scss" scoped></style> diff --git a/src/views/screening/DraftBox/index.vue b/src/views/screening/DraftBox/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..389550439ea573f351667d458bc074101d0071ef --- /dev/null +++ b/src/views/screening/DraftBox/index.vue @@ -0,0 +1,14 @@ +<template> + <div>è‰ç¨¿ç®±</div> +</template> +<script> +export default { + data() { + return {} + }, + methods: {}, + mounted() {}, + watch: {}, +} +</script> +<style lang="scss" scoped></style> diff --git a/vue.config.js b/vue.config.js index 3c9d23cb36387b3f37d7ef08491f81dd72ca8728..6852566993e316c9a3673e0d8677258023db46f7 100644 --- a/vue.config.js +++ b/vue.config.js @@ -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": "", diff --git a/yarn.lock b/yarn.lock index 5e5c9c72d769f21366921ee40ffbb5482eb7b649..d6fd2379e1044dbc2f807f66930fa1dc0a0016ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -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"