页面基本框架搭建

main
HZXhuang 2 years ago
parent 22ec78c5f3
commit f5f8edef24

@ -27,8 +27,11 @@
"@vue/cli-plugin-eslint": "~5.0.0",
"@vue/cli-service": "~5.0.0",
"axios": "^0.18.0",
"echarts": "^5.4.3",
"eslint": "^7.32.0",
"eslint-plugin-vue": "^8.0.3",
"sass": "~1.62.1",
"sass-loader": "~13.2.2",
"vue-template-compiler": "^2.6.14"
}
},
@ -4992,6 +4995,22 @@
"node": ">=6.0.0"
}
},
"node_modules/echarts": {
"version": "5.4.3",
"resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.4.3.tgz",
"integrity": "sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==",
"dev": true,
"dependencies": {
"tslib": "2.3.0",
"zrender": "5.4.4"
}
},
"node_modules/echarts/node_modules/tslib": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==",
"dev": true
},
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
@ -6559,6 +6578,12 @@
"node": ">= 4"
}
},
"node_modules/immutable": {
"version": "4.3.4",
"resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.4.tgz",
"integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==",
"dev": true
},
"node_modules/import-fresh": {
"version": "3.3.0",
"resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz",
@ -9254,6 +9279,57 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true
},
"node_modules/sass": {
"version": "1.62.1",
"resolved": "https://registry.npmmirror.com/sass/-/sass-1.62.1.tgz",
"integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==",
"dev": true,
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",
"immutable": "^4.0.0",
"source-map-js": ">=0.6.2 <2.0.0"
},
"bin": {
"sass": "sass.js"
},
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/sass-loader": {
"version": "13.2.2",
"resolved": "https://registry.npmmirror.com/sass-loader/-/sass-loader-13.2.2.tgz",
"integrity": "sha512-nrIdVAAte3B9icfBiGWvmMhT/D+eCDwnk+yA7VE/76dp/WkHX+i44Q/pfo71NYbwj0Ap+PGsn0ekOuU1WFJ2AA==",
"dev": true,
"dependencies": {
"klona": "^2.0.6",
"neo-async": "^2.6.2"
},
"engines": {
"node": ">= 14.15.0"
},
"peerDependencies": {
"fibers": ">= 3.1.0",
"node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0",
"sass": "^1.3.0",
"sass-embedded": "*",
"webpack": "^5.0.0"
},
"peerDependenciesMeta": {
"fibers": {
"optional": true
},
"node-sass": {
"optional": true
},
"sass": {
"optional": true
},
"sass-embedded": {
"optional": true
}
}
},
"node_modules/schema-utils": {
"version": "2.7.1",
"resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz",
@ -11199,6 +11275,21 @@
"resolved": "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz",
"integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
"dev": true
},
"node_modules/zrender": {
"version": "5.4.4",
"resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.4.4.tgz",
"integrity": "sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==",
"dev": true,
"dependencies": {
"tslib": "2.3.0"
}
},
"node_modules/zrender/node_modules/tslib": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==",
"dev": true
}
}
}

@ -8,17 +8,17 @@
"lint": "vue-cli-service lint"
},
"dependencies": {
"core-js": "^3.8.3",
"vue": "^2.6.14",
"animate.css": "^4.1.1",
"core-js": "^3.8.3",
"element-ui": "^2.3.2",
"js-cookie": "3.0.1",
"screenfull": "5.0.2",
"vue": "^2.6.14",
"vue-cropper": "0.5.5",
"vue-router": "^3.0.1",
"vue-seamless-scroll": "^1.1.23",
"vuescroll": "^4.18.0",
"vuex": "^3.0.1",
"vue-cropper": "0.5.5"
"vuex": "^3.0.1"
},
"devDependencies": {
"@babel/core": "^7.12.16",
@ -26,10 +26,13 @@
"@vue/cli-plugin-babel": "~5.0.0",
"@vue/cli-plugin-eslint": "~5.0.0",
"@vue/cli-service": "~5.0.0",
"axios": "^0.18.0",
"echarts": "^5.4.3",
"eslint": "^7.32.0",
"eslint-plugin-vue": "^8.0.3",
"vue-template-compiler": "^2.6.14",
"axios": "^0.18.0"
"sass": "~1.62.1",
"sass-loader": "~13.2.2",
"vue-template-compiler": "^2.6.14"
},
"eslintConfig": {
"root": true,

@ -17,12 +17,21 @@ export default {
</script>
<style>
html,
body {
width: 100%;
height: 100%;
box-sizing: border-box;
padding: 0px;
margin: 0px;
}
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
font-family: "Avenir", Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
background-color: white;
widows: 100;
height: 100%;
}
</style>

@ -0,0 +1,107 @@
@font-face {
font-family: "iconfont"; /* Project id 4160637 */
src: url('iconfont.woff2?t=1691684665117') format('woff2'),
url('iconfont.woff?t=1691684665117') format('woff'),
url('iconfont.ttf?t=1691684665117') format('truetype');
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-zhinengtuijian:before {
content: "\e608";
}
.icon-dianyingyuan:before {
content: "\e6fa";
}
.icon-project_info:before {
content: "\e619";
}
.icon-fullscreen-shrink:before {
content: "\e676";
}
.icon-fullscreen-expand:before {
content: "\e675";
}
.icon-navigation:before {
content: "\e67a";
}
.icon-user:before {
content: "\e682";
}
.icon-upload:before {
content: "\e683";
}
.icon-user-filling:before {
content: "\e68b";
}
.icon-shujuxianshi:before {
content: "\e606";
}
.icon-shezhi2:before {
content: "\e607";
}
.icon-help-fill:before {
content: "\e83d";
}
.icon-info:before {
content: "\e83e";
}
.icon-link:before {
content: "\e83f";
}
.icon-hot-for-ux:before {
content: "\e840";
}
.icon-settings-fill:before {
content: "\e841";
}
.icon-global-fill:before {
content: "\e856";
}
.icon-home:before {
content: "\e858";
}
.icon-rencaishuangxuanhui:before {
content: "\e87b";
}
.icon-zhuanshufuwu:before {
content: "\e884";
}
.icon-send-fill:before {
content: "\e888";
}
.icon-a-commandinquiry-fill:before {
content: "\e889";
}
.icon-anquanbaozhang:before {
content: "\e61d";
}

File diff suppressed because one or more lines are too long

@ -0,0 +1,170 @@
{
"id": "4160637",
"name": "myicons",
"font_family": "iconfont",
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "34248809",
"name": "智能推荐",
"font_class": "zhinengtuijian",
"unicode": "e608",
"unicode_decimal": 58888
},
{
"icon_id": "36774172",
"name": "电影院",
"font_class": "dianyingyuan",
"unicode": "e6fa",
"unicode_decimal": 59130
},
{
"icon_id": "1461250",
"name": "project_info",
"font_class": "project_info",
"unicode": "e619",
"unicode_decimal": 58905
},
{
"icon_id": "15838495",
"name": "fullscreen-shrink",
"font_class": "fullscreen-shrink",
"unicode": "e676",
"unicode_decimal": 58998
},
{
"icon_id": "15838498",
"name": "fullscreen-expand",
"font_class": "fullscreen-expand",
"unicode": "e675",
"unicode_decimal": 58997
},
{
"icon_id": "15838515",
"name": "navigation",
"font_class": "navigation",
"unicode": "e67a",
"unicode_decimal": 59002
},
{
"icon_id": "15838547",
"name": "user",
"font_class": "user",
"unicode": "e682",
"unicode_decimal": 59010
},
{
"icon_id": "15838548",
"name": "upload",
"font_class": "upload",
"unicode": "e683",
"unicode_decimal": 59011
},
{
"icon_id": "15838606",
"name": "user-filling",
"font_class": "user-filling",
"unicode": "e68b",
"unicode_decimal": 59019
},
{
"icon_id": "36301169",
"name": "shujuxianshi",
"font_class": "shujuxianshi",
"unicode": "e606",
"unicode_decimal": 58886
},
{
"icon_id": "36301170",
"name": "shezhi2",
"font_class": "shezhi2",
"unicode": "e607",
"unicode_decimal": 58887
},
{
"icon_id": "34453014",
"name": "help-fill",
"font_class": "help-fill",
"unicode": "e83d",
"unicode_decimal": 59453
},
{
"icon_id": "34453015",
"name": "info",
"font_class": "info",
"unicode": "e83e",
"unicode_decimal": 59454
},
{
"icon_id": "34453021",
"name": "link",
"font_class": "link",
"unicode": "e83f",
"unicode_decimal": 59455
},
{
"icon_id": "34453030",
"name": "hot-for-ux",
"font_class": "hot-for-ux",
"unicode": "e840",
"unicode_decimal": 59456
},
{
"icon_id": "34453055",
"name": "settings-fill",
"font_class": "settings-fill",
"unicode": "e841",
"unicode_decimal": 59457
},
{
"icon_id": "34453207",
"name": "global-fill",
"font_class": "global-fill",
"unicode": "e856",
"unicode_decimal": 59478
},
{
"icon_id": "34453216",
"name": "home",
"font_class": "home",
"unicode": "e858",
"unicode_decimal": 59480
},
{
"icon_id": "34453356",
"name": "人才双选会",
"font_class": "rencaishuangxuanhui",
"unicode": "e87b",
"unicode_decimal": 59515
},
{
"icon_id": "34453380",
"name": "专属服务",
"font_class": "zhuanshufuwu",
"unicode": "e884",
"unicode_decimal": 59524
},
{
"icon_id": "36209392",
"name": "send-fill",
"font_class": "send-fill",
"unicode": "e888",
"unicode_decimal": 59528
},
{
"icon_id": "36209396",
"name": "command inquiry-fill",
"font_class": "a-commandinquiry-fill",
"unicode": "e889",
"unicode_decimal": 59529
},
{
"icon_id": "33986995",
"name": "安全保障",
"font_class": "anquanbaozhang",
"unicode": "e61d",
"unicode_decimal": 58909
}
]
}

@ -0,0 +1,99 @@
@import './variables.scss';
@mixin colorBtn($color) {
background: $color;
&:hover {
color: $color;
&:before,
&:after {
background: $color;
}
}
}
.blue-btn {
@include colorBtn($blue)
}
.light-blue-btn {
@include colorBtn($light-blue)
}
.red-btn {
@include colorBtn($red)
}
.pink-btn {
@include colorBtn($pink)
}
.green-btn {
@include colorBtn($green)
}
.tiffany-btn {
@include colorBtn($tiffany)
}
.yellow-btn {
@include colorBtn($yellow)
}
.pan-btn {
font-size: 14px;
color: #fff;
padding: 14px 36px;
border-radius: 8px;
border: none;
outline: none;
transition: 600ms ease all;
position: relative;
display: inline-block;
&:hover {
background: #fff;
&:before,
&:after {
width: 100%;
transition: 600ms ease all;
}
}
&:before,
&:after {
content: '';
position: absolute;
top: 0;
right: 0;
height: 2px;
width: 0;
transition: 400ms ease all;
}
&::after {
right: inherit;
top: inherit;
left: 0;
bottom: 0;
}
}
.custom-button {
display: inline-block;
line-height: 1;
white-space: nowrap;
cursor: pointer;
background: #fff;
color: #fff;
-webkit-appearance: none;
text-align: center;
box-sizing: border-box;
outline: 0;
margin: 0;
padding: 10px 15px;
font-size: 14px;
border-radius: 4px;
}

@ -0,0 +1,92 @@
// cover some element-ui styles
.el-breadcrumb__inner,
.el-breadcrumb__inner a {
font-weight: 400 !important;
}
.el-upload {
input[type="file"] {
display: none !important;
}
}
.el-upload__input {
display: none;
}
.cell {
.el-tag {
margin-right: 0px;
}
}
.small-padding {
.cell {
padding-left: 5px;
padding-right: 5px;
}
}
.fixed-width {
.el-button--mini {
padding: 7px 10px;
width: 60px;
}
}
.status-col {
.cell {
padding: 0 10px;
text-align: center;
.el-tag {
margin-right: 0px;
}
}
}
// to fixed https://github.com/ElemeFE/element/issues/2461
.el-dialog {
transform: none;
left: 0;
position: relative;
margin: 0 auto;
}
// refine element ui upload
.upload-container {
.el-upload {
width: 100%;
.el-upload-dragger {
width: 100%;
height: 200px;
}
}
}
// dropdown
.el-dropdown-menu {
a {
display: block
}
}
// fix date-picker ui bug in filter-item
.el-range-editor.el-input__inner {
display: inline-flex !important;
}
// to fix el-date-picker css style
.el-range-separator {
box-sizing: content-box;
}
.el-menu--collapse
> div
> .el-submenu
> .el-submenu__title
.el-submenu__icon-arrow {
display: none;
}

@ -0,0 +1,31 @@
/**
* I think element-ui's default theme color is too light for long-term use.
* So I modified the default color and you can modify it to your liking.
**/
/* theme color */
$--color-primary: #1890ff;
$--color-success: #13ce66;
$--color-warning: #ffba00;
$--color-danger: #ff4949;
// $--color-info: #1E1E1E;
$--button-font-weight: 400;
// $--color-text-regular: #1f2d3d;
$--border-color-light: #dfe4ed;
$--border-color-lighter: #e6ebf5;
$--table-border: 1px solid #dfe6ec;
/* icon font path, required */
$--font-path: '~element-ui/lib/theme-chalk/fonts';
@import "~element-ui/packages/theme-chalk/src/index";
// the :export directive is the magic sauce for webpack
// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
:export {
theme: $--color-primary;
}

@ -0,0 +1,182 @@
@import './variables.scss';
@import './mixin.scss';
@import './transition.scss';
@import './element-ui.scss';
@import './sidebar.scss';
@import './btn.scss';
body {
height: 100%;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
}
label {
font-weight: 700;
}
html {
height: 100%;
box-sizing: border-box;
}
#app {
height: 100%;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
.no-padding {
padding: 0px !important;
}
.padding-content {
padding: 4px 0;
}
a:focus,
a:active {
outline: none;
}
a,
a:focus,
a:hover {
cursor: pointer;
color: inherit;
text-decoration: none;
}
div:focus {
outline: none;
}
.fr {
float: right;
}
.fl {
float: left;
}
.pr-5 {
padding-right: 5px;
}
.pl-5 {
padding-left: 5px;
}
.block {
display: block;
}
.pointer {
cursor: pointer;
}
.inlineBlock {
display: block;
}
.clearfix {
&:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
}
aside {
background: #eef1f6;
//padding: 8px 24px;
margin-bottom: 20px;
border-radius: 2px;
display: block;
line-height: 32px;
font-size: 16px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
color: #2c3e50;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
a {
color: #337ab7;
cursor: pointer;
&:hover {
color: rgb(32, 160, 255);
}
}
}
//main-container
.app-container {
padding: 20px;
}
.components-container {
margin: 30px 50px;
position: relative;
}
.pagination-container {
margin-top: 30px;
}
.text-center {
text-align: center
}
.sub-navbar {
height: 50px;
line-height: 50px;
position: relative;
width: 100%;
text-align: right;
padding-right: 20px;
transition: 600ms ease position;
background: linear-gradient(90deg, rgba(32, 182, 249, 1) 0%, rgba(32, 182, 249, 1) 0%, rgba(33, 120, 241, 1) 100%, rgba(33, 120, 241, 1) 100%);
.subtitle {
font-size: 20px;
color: #fff;
}
&.draft {
background: #d0d0d0;
}
&.deleted {
background: #d0d0d0;
}
}
.link-type,
.link-type:focus {
color: #337ab7;
cursor: pointer;
&:hover {
color: rgb(32, 160, 255);
}
}
.filter-container {
padding-bottom: 10px;
.filter-item {
display: inline-block;
vertical-align: middle;
margin-bottom: 10px;
}
}

@ -0,0 +1,66 @@
@mixin clearfix {
&:after {
content: "";
display: table;
clear: both;
}
}
@mixin scrollBar {
&::-webkit-scrollbar-track-piece {
background: #d3dce6;
}
&::-webkit-scrollbar {
width: 6px;
}
&::-webkit-scrollbar-thumb {
background: #99a9bf;
border-radius: 20px;
}
}
@mixin relative {
position: relative;
width: 100%;
height: 100%;
}
@mixin pct($pct) {
width: #{$pct};
position: relative;
margin: 0 auto;
}
@mixin triangle($width, $height, $color, $direction) {
$width: $width/2;
$color-border-style: $height solid $color;
$transparent-border-style: $width solid transparent;
height: 0;
width: 0;
@if $direction==up {
border-bottom: $color-border-style;
border-left: $transparent-border-style;
border-right: $transparent-border-style;
}
@else if $direction==right {
border-left: $color-border-style;
border-top: $transparent-border-style;
border-bottom: $transparent-border-style;
}
@else if $direction==down {
border-top: $color-border-style;
border-left: $transparent-border-style;
border-right: $transparent-border-style;
}
@else if $direction==left {
border-right: $color-border-style;
border-top: $transparent-border-style;
border-bottom: $transparent-border-style;
}
}

@ -0,0 +1,277 @@
/**
* css
* Copyright (c) 2019 ruoyi
*/
/** 基础通用 **/
.pt5 {
padding-top: 5px;
}
.pr5 {
padding-right: 5px;
}
.pb5 {
padding-bottom: 5px;
}
.mt5 {
margin-top: 5px;
}
.mr5 {
margin-right: 5px;
}
.mb5 {
margin-bottom: 5px;
}
.mb8 {
margin-bottom: 8px;
}
.ml5 {
margin-left: 5px;
}
.mt10 {
margin-top: 10px;
}
.mr10 {
margin-right: 10px;
}
.mb10 {
margin-bottom: 10px;
}
.ml10 {
margin-left: 10px;
}
.mt20 {
margin-top: 20px;
}
.mr20 {
margin-right: 20px;
}
.mb20 {
margin-bottom: 20px;
}
.ml20 {
margin-left: 20px;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
font-family: inherit;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
.el-message-box__status + .el-message-box__message{
word-break: break-word;
}
.el-dialog:not(.is-fullscreen) {
margin-top: 6vh !important;
}
.el-dialog__wrapper.scrollbar .el-dialog .el-dialog__body {
overflow: auto;
overflow-x: hidden;
max-height: 70vh;
padding: 10px 20px 0;
}
.el-table {
.el-table__header-wrapper, .el-table__fixed-header-wrapper {
th {
word-break: break-word;
background-color: #f8f8f9;
color: #515a6e;
height: 40px;
font-size: 13px;
}
}
.el-table__body-wrapper {
.el-button [class*="el-icon-"] + span {
margin-left: 1px;
}
}
}
/** 表单布局 **/
.form-header {
font-size:15px;
color:#6379bb;
border-bottom:1px solid #ddd;
margin:8px 10px 25px 10px;
padding-bottom:5px
}
/** 表格布局 **/
.pagination-container {
position: relative;
height: 25px;
margin-bottom: 10px;
margin-top: 15px;
padding: 10px 20px !important;
}
/* tree border */
.tree-border {
margin-top: 5px;
border: 1px solid #e5e6e7;
background: #FFFFFF none;
border-radius:4px;
}
.pagination-container .el-pagination {
right: 0;
position: absolute;
}
@media ( max-width : 768px) {
.pagination-container .el-pagination > .el-pagination__jump {
display: none !important;
}
.pagination-container .el-pagination > .el-pagination__sizes {
display: none !important;
}
}
.el-table .fixed-width .el-button--mini {
padding-left: 0;
padding-right: 0;
width: inherit;
}
/** 表格更多操作下拉样式 */
.el-table .el-dropdown-link,.el-table .el-dropdown-selfdefine {
cursor: pointer;
margin-left: 5px;
}
.el-table .el-dropdown, .el-icon-arrow-down {
font-size: 12px;
}
.el-tree-node__content > .el-checkbox {
margin-right: 8px;
}
.list-group-striped > .list-group-item {
border-left: 0;
border-right: 0;
border-radius: 0;
padding-left: 0;
padding-right: 0;
}
.list-group {
padding-left: 0px;
list-style: none;
}
.list-group-item {
border-bottom: 1px solid #e7eaec;
border-top: 1px solid #e7eaec;
margin-bottom: -1px;
padding: 11px 0px;
font-size: 13px;
}
.pull-right {
float: right !important;
}
.el-card__header {
padding: 14px 15px 7px;
min-height: 40px;
}
.el-card__body {
padding: 15px 20px 20px 20px;
}
.card-box {
padding-right: 15px;
padding-left: 15px;
margin-bottom: 10px;
}
/* button color */
.el-button--cyan.is-active,
.el-button--cyan:active {
background: #20B2AA;
border-color: #20B2AA;
color: #FFFFFF;
}
.el-button--cyan:focus,
.el-button--cyan:hover {
background: #48D1CC;
border-color: #48D1CC;
color: #FFFFFF;
}
.el-button--cyan {
background-color: #20B2AA;
border-color: #20B2AA;
color: #FFFFFF;
}
/* text color */
.text-navy {
color: #1ab394;
}
.text-primary {
color: inherit;
}
.text-success {
color: #1c84c6;
}
.text-info {
color: #23c6c8;
}
.text-warning {
color: #f8ac59;
}
.text-danger {
color: #ed5565;
}
.text-muted {
color: #888888;
}
/* image */
.img-circle {
border-radius: 50%;
}
.img-lg {
width: 120px;
height: 120px;
}
.avatar-upload-preview {
position: relative;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 200px;
height: 200px;
border-radius: 50%;
box-shadow: 0 0 4px #ccc;
overflow: hidden;
}
/* 拖拽列样式 */
.sortable-ghost{
opacity: .8;
color: #fff!important;
background: #42b983!important;
}
.top-right-btn {
position: relative;
float: right;
}

@ -0,0 +1,227 @@
#app {
.main-container {
height: 100%;
transition: margin-left .28s;
margin-left: $base-sidebar-width;
position: relative;
}
.sidebarHide {
margin-left: 0!important;
}
.sidebar-container {
-webkit-transition: width .28s;
transition: width 0.28s;
width: $base-sidebar-width !important;
background-color: $base-menu-background;
height: 100%;
position: fixed;
font-size: 0px;
top: 0;
bottom: 0;
left: 0;
z-index: 1001;
overflow: hidden;
-webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35);
box-shadow: 2px 0 6px rgba(0,21,41,.35);
// reset element-ui css
.horizontal-collapse-transition {
transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out;
}
.scrollbar-wrapper {
overflow-x: hidden !important;
}
.el-scrollbar__bar.is-vertical {
right: 0px;
}
.el-scrollbar {
height: 100%;
}
&.has-logo {
.el-scrollbar {
height: calc(100% - 50px);
}
}
.is-horizontal {
display: none;
}
a {
display: inline-block;
width: 100%;
overflow: hidden;
}
.svg-icon {
margin-right: 16px;
}
.el-menu {
border: none;
height: 100%;
width: 100% !important;
}
.el-menu-item, .el-submenu__title {
overflow: hidden !important;
text-overflow: ellipsis !important;
white-space: nowrap !important;
}
// menu hover
.submenu-title-noDropdown,
.el-submenu__title {
&:hover {
background-color: rgba(0, 0, 0, 0.06) !important;
}
}
& .theme-dark .is-active > .el-submenu__title {
color: $base-menu-color-active !important;
}
& .nest-menu .el-submenu>.el-submenu__title,
& .el-submenu .el-menu-item {
min-width: $base-sidebar-width !important;
&:hover {
background-color: rgba(0, 0, 0, 0.06) !important;
}
}
& .theme-dark .nest-menu .el-submenu>.el-submenu__title,
& .theme-dark .el-submenu .el-menu-item {
background-color: $base-sub-menu-background !important;
&:hover {
background-color: $base-sub-menu-hover !important;
}
}
}
.hideSidebar {
.sidebar-container {
width: 54px !important;
}
.main-container {
margin-left: 54px;
}
.submenu-title-noDropdown {
padding: 0 !important;
position: relative;
.el-tooltip {
padding: 0 !important;
.svg-icon {
margin-left: 20px;
}
}
}
.el-submenu {
overflow: hidden;
&>.el-submenu__title {
padding: 0 !important;
.svg-icon {
margin-left: 20px;
}
}
}
.el-menu--collapse {
.el-submenu {
&>.el-submenu__title {
&>span {
height: 0;
width: 0;
overflow: hidden;
visibility: hidden;
display: inline-block;
}
}
}
}
}
.el-menu--collapse .el-menu .el-submenu {
min-width: $base-sidebar-width !important;
}
// mobile responsive
.mobile {
.main-container {
margin-left: 0px;
}
.sidebar-container {
transition: transform .28s;
width: $base-sidebar-width !important;
}
&.hideSidebar {
.sidebar-container {
pointer-events: none;
transition-duration: 0.3s;
transform: translate3d(-$base-sidebar-width, 0, 0);
}
}
}
.withoutAnimation {
.main-container,
.sidebar-container {
transition: none;
}
}
}
// when menu collapsed
.el-menu--vertical {
&>.el-menu {
.svg-icon {
margin-right: 16px;
}
}
.nest-menu .el-submenu>.el-submenu__title,
.el-menu-item {
&:hover {
// you can use $subMenuHover
background-color: rgba(0, 0, 0, 0.06) !important;
}
}
// the scroll bar appears when the subMenu is too long
>.el-menu--popup {
max-height: 100vh;
overflow-y: auto;
&::-webkit-scrollbar-track-piece {
background: #d3dce6;
}
&::-webkit-scrollbar {
width: 6px;
}
&::-webkit-scrollbar-thumb {
background: #99a9bf;
border-radius: 20px;
}
}
}

@ -0,0 +1,49 @@
// global transition css
/* fade */
.fade-enter-active,
.fade-leave-active {
transition: opacity 0.28s;
}
.fade-enter,
.fade-leave-active {
opacity: 0;
}
/* fade-transform */
.fade-transform--move,
.fade-transform-leave-active,
.fade-transform-enter-active {
transition: all .5s;
}
.fade-transform-enter {
opacity: 0;
transform: translateX(-30px);
}
.fade-transform-leave-to {
opacity: 0;
transform: translateX(30px);
}
/* breadcrumb transition */
.breadcrumb-enter-active,
.breadcrumb-leave-active {
transition: all .5s;
}
.breadcrumb-enter,
.breadcrumb-leave-active {
opacity: 0;
transform: translateX(20px);
}
.breadcrumb-move {
transition: all .5s;
}
.breadcrumb-leave-active {
position: absolute;
}

@ -0,0 +1,54 @@
// base color
$blue:#324157;
$light-blue:#3A71A8;
$red:#C03639;
$pink: #E65D6E;
$green: #30B08F;
$tiffany: #4AB7BD;
$yellow:#FEC171;
$panGreen: #30B08F;
//
$base-menu-color:#bfcbd9;
$base-menu-color-active:#f4f4f5;
$base-menu-background:#304156;
$base-logo-title-color: #ffffff;
$base-menu-light-color:rgba(0,0,0,.70);
$base-menu-light-background:#ffffff;
$base-logo-light-title-color: #001529;
$base-sub-menu-background:#1f2d3d;
$base-sub-menu-hover:#001528;
//
/**
$base-menu-color:hsla(0,0%,100%,.65);
$base-menu-color-active:#fff;
$base-menu-background:#001529;
$base-logo-title-color: #ffffff;
$base-menu-light-color:rgba(0,0,0,.70);
$base-menu-light-background:#ffffff;
$base-logo-light-title-color: #001529;
$base-sub-menu-background:#000c17;
$base-sub-menu-hover:#001528;
*/
$base-sidebar-width: 200px;
// the :export directive is the magic sauce for webpack
// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
:export {
menuColor: $base-menu-color;
menuLightColor: $base-menu-light-color;
menuColorActive: $base-menu-color-active;
menuBackground: $base-menu-background;
menuLightBackground: $base-menu-light-background;
subMenuBackground: $base-sub-menu-background;
subMenuHover: $base-sub-menu-hover;
sideBarWidth: $base-sidebar-width;
logoTitleColor: $base-logo-title-color;
logoLightTitleColor: $base-logo-light-title-color
}

@ -1,7 +1,7 @@
<template>
<div>
<div id="header-title">
中国语言文化作品国际传播效果分析系统
湖湘传统技艺类非物质文化遗产数字化与虚拟体验平台
</div>
<div id="show-login-div">
<div id="user-info" v-if="loginFlag"> <!---->
@ -28,7 +28,6 @@
</template>
<script>
import {hasLogin} from "../../utils/auth";
export default {
name: "HeaderBar2",
@ -46,12 +45,12 @@ export default {
return {
items: [
{ icon: 'nav-tab-item_icon iconfont icon-home', label: '首页', path: '/home'},
{ icon: 'nav-tab-item_icon iconfont icon-send-fill', label: '传播效果评估', path: '/effect'},
{ icon: 'nav-tab-item_icon iconfont icon-shujuxianshi', label: '大屏模式', path: '/big-screen'},
{ icon: 'nav-tab-item_icon iconfont icon-zhinengtuijian', label: '作品推荐', path: '/recommend'},
{ icon: 'nav-tab-item_icon iconfont icon-project_info', label: '背景介绍', path: '/background'},
{ icon: 'nav-tab-item_icon iconfont icon-send-fill', label: '虚拟体验', path: '/effect'},
{ icon: 'nav-tab-item_icon iconfont icon-shujuxianshi', label: '线下活动', path: '/big-screen'},
{ icon: 'nav-tab-item_icon iconfont icon-zhinengtuijian', label: '论坛', path: '/recommend'},
/*{ icon: 'nav-tab-item_icon iconfont icon-project_info', label: '', path: '/background'},
{ icon: 'nav-tab-item_icon iconfont icon-rencaishuangxuanhui', label: '团队介绍', path: '/team'},
{ icon: 'nav-tab-item_icon iconfont icon-a-commandinquiry-fill', label: '常见问题', path: '/question'},
{ icon: 'nav-tab-item_icon iconfont icon-a-commandinquiry-fill', label: '常见问题', path: '/question'},*/
{ icon: 'nav-tab-item_icon iconfont icon-user', label: '个人中心', path: '/personal'},
],
// activeIndex: Number(sessionStorage.getItem("activeIndex")),
@ -76,7 +75,7 @@ export default {
// sessionStorage.setItem("activeIndex", index)
},
judgeLogin(){ //
this.loginFlag = hasLogin()
this.loginFlag = false
},
},
computed: {
@ -106,7 +105,7 @@ export default {
},
watch: {
//
$route(to, from) {
$route(to) {
// console.log("")
// console.log("", to);
// console.log(":", from)
@ -142,7 +141,7 @@ body {
width: 100%;
height: 80px;
background-color: #195161;
background-color: #196789;
display: flex;
border-bottom-left-radius: 90px;
@ -171,7 +170,7 @@ body {
}
.nav-tab-item:hover {
background-color: #2b729c;
background-color: #185379;
border-radius: 20px;
}
@ -206,7 +205,7 @@ body {
height: 100%;
width: 210px;
background-color: #2b729c;
background-color: #185379;
border-radius: 20px;
transition: 0.3s;
@ -214,7 +213,7 @@ body {
#header-title {
height: 80px;
background-color: #195161;
background-color: #196789;
color: white;
font-size: 30px;
text-align: center;
@ -226,7 +225,7 @@ body {
#show-login-div{
height: 100px;
width: 220px;
background-color: #195161;
background-color: #196789;
position: absolute;
top: 25px;
right: 40px;

@ -151,41 +151,8 @@
<li>
<a href="https://news.google.com/">Google News</a>
</li>
<li>
<a href="https://www.youtube.com/">Youtube</a>
</li>
<li>
<a href="https://twitter.com">Twitter</a>
</li>
<li>
<a href="https://instagram.com">Instagram</a>
</li>
<li>
<a href="https://global.chinadaily.com.cn">China Daily</a>
</li>
<li>
<a href="http://www.github.com">GitHub</a>
</li>
<li>
<a href="https://www.amazon.com">Amazon</a>
</li>
<li>
<a href="http://www.goodreads.com/">GoodReads</a>
</li>
<li>
<a href="https://www.rottentomatoes.com/">烂番茄</a>
</li>
<li>
<a href="https://www.douban.com">豆瓣</a>
</li>
<li>
<a href="https://www.imdb.com/">IMDb</a>
<a href="https://www.ihchina.cn/">中国非物质文化遗产网</a>
</li>
</ul>
</li>
@ -339,7 +306,7 @@ export default {
}
.footer {
z-index: 1;
--footer-background:#195161;
--footer-background: #083d63;
display: grid;
position: relative;
grid-area: footer;

@ -15,6 +15,13 @@ Vue.use(scroll)
import * as echarts from 'echarts'
Vue.prototype.$echarts = echarts
// 引入全局样式
import './assets/styles/index.scss' // global css
import './assets/styles/ruoyi.scss' // ruoyi css
// 引入自定义图标
import './assets/icons2/iconfont.css'
// 引入路由
import router from './router';
// 引入状态管理

@ -4,7 +4,11 @@ import Router from 'vue-router';
// 登录
// 管理员首页
import index from '../views/index';
import PersonPage from '../views/user/profile/index';
import HomePage from "@/views/user/HomePage";
import UserRegister from "@/views/user/UserRegister";
import UserLogin from "@/views/user/UserLogin";
import UserIndex from "../views/index"
// 启用路由
Vue.use(Router);
@ -35,7 +39,7 @@ const router = new Router({
{
path: "/",
name: "客户端", // 客户端网页的首页
component: index,
component: UserIndex,
meta: {
requireAuth: false
},
@ -49,7 +53,14 @@ const router = new Router({
requireAuth: false
}
},
{
path: "/personal",
name: "用户个人中心",
component: PersonPage,
meta: {
requireAuth: false
}
},
]
}
]

@ -0,0 +1,217 @@
import store from "../vuex/store";
import {Message} from "element-ui";
/**
* 时间戳
* @param {*} timestamp 时间戳
*/
const timestampToTime = (timestamp) => {
let date = new Date(timestamp) //时间戳为10位需*1000时间戳为13位的话不需乘1000
let Y = date.getFullYear() + '-'
let M =
(date.getMonth() + 1 < 10 ?
'0' + (date.getMonth() + 1) :
date.getMonth() + 1) + '-'
let D =
(date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '
let h =
(date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
let m =
(date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) +
':'
let s =
date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
return Y + M + D + h + m + s
};
/**
* @param {date} time 需要转换的时间
* @param {String} fmt 需要转换的格式 yyyy-MM-ddyyyy-MM-dd HH:mm:ss
*/
export function formatTime(time, fmt) {
if (!time) return '';
else {
const date = new Date(time);
const o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'H+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds(),
'q+': Math.floor((date.getMonth() + 3) / 3),
S: date.getMilliseconds(),
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(
RegExp.$1,
(date.getFullYear() + '').substr(4 - RegExp.$1.length)
);
for (const k in o) {
if (new RegExp('(' + k + ')').test(fmt)) {
fmt = fmt.replace(
RegExp.$1,
RegExp.$1.length === 1
? o[k]
: ('00' + o[k]).substr(('' + o[k]).length)
);
}
}
return fmt;
}
}
// 日期格式化
export function parseTime(time, pattern) {
if (arguments.length === 0 || !time) {
return null
}
const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
let date
if (typeof time === 'object') {
date = time
} else {
if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
time = parseInt(time)
} else if (typeof time === 'string') {
time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), '');
}
if ((typeof time === 'number') && (time.toString().length === 10)) {
time = time * 1000
}
date = new Date(time)
}
const formatObj = {
y: date.getFullYear(),
m: date.getMonth() + 1,
d: date.getDate(),
h: date.getHours(),
i: date.getMinutes(),
s: date.getSeconds(),
a: date.getDay()
}
const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
let value = formatObj[key]
// Note: getDay() returns 0 on Sunday
if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }
if (result.length > 0 && value < 10) {
value = '0' + value
}
return value || 0
})
return time_str
}
/**
* 更新vuex和localStorage中的用户信息
*/
export const updateLocalUserInfo = ()=>{
store.dispatch("GetUserInfo").then(()=>{
}).catch((err)=>{
Message.error(err.message)
})
}
/**
* 存储localStorage
*/
const setStore = (name, content) => {
if (!name) return;
if (typeof content !== 'string') {
content = JSON.stringify(content);
}
window.localStorage.setItem(name, content);
}
/**
* 获取localStorage
*/
const getStore = name => {
if (!name) return;
return window.localStorage.getItem(name);
}
/**
* 删除localStorage
*/
const removeStore = name => {
if (!name) return;
window.localStorage.removeItem(name);
}
/**
* 设置cookie
**/
function setCookie(name, value, day) {
let date = new Date();
date.setDate(date.getDate() + day);
document.cookie = name + '=' + value + ';expires=' + date;
}
/**
* 获取cookie
**/
function getCookie(name) {
let reg = RegExp(name + '=([^;]+)');
let arr = document.cookie.match(reg);
if (arr) {
return arr[1];
} else {
return '';
}
}
/**
* 删除cookie
**/
function delCookie(name) {
setCookie(name, null, -1);
}
export function debounce(func, wait, immediate) {
let timeout, args, context, timestamp, result
const later = function() {
// 据上一次触发时间间隔
const last = +new Date() - timestamp
// 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait
if (last < wait && last > 0) {
timeout = setTimeout(later, wait - last)
} else {
timeout = null
// 如果设定为immediate===true因为开始边界已经调用过了此处无需调用
if (!immediate) {
result = func.apply(context, args)
if (!timeout) context = args = null
}
}
}
return function(...args) {
context = this
timestamp = +new Date()
const callNow = immediate && !timeout
// 如果延时不存在,重新设定延时
if (!timeout) timeout = setTimeout(later, wait)
if (callNow) {
result = func.apply(context, args)
context = args = null
}
return result
}
}
/**
* 导出
**/
export {
timestampToTime,
setStore,
getStore,
removeStore,
setCookie,
getCookie,
delCookie
}

@ -15,11 +15,24 @@
</template>
<script>
import HeaderBar2 from "@/components/user/HeaderBar2";
import MyFooter from "@/components/user/MyFooter";
import vuescroll from "vuescroll";
export default {
name: "UserIndex"
name: "UserIndex",
components: {
HeaderBar2,
MyFooter,
vuescroll
}
}
</script>
<style scoped>
.user-index,el-main{
background-color: #ecf5ff;
}
</style>

@ -0,0 +1,201 @@
<template>
<div>
<el-row style="display: flex; justify-content: center">
<el-col :span="17" :xs="24" align="center">
<!-- <slide-show></slide-show>-->
轮播图
</el-col>
</el-row>
<el-row :gutter="40">
<el-col :span="10" :xs="24" :sm="24" :lg="10">
<el-card class="box-card grid-content" shadow="always">
<div class="card-title">热点文化作品</div>
<!-- <el-card v-for="item in messages" :key="item.id"
class="box-card2 animate__animated animate__slideInLeft" shadow="hover"
>
<el-row>
<el-col :span="6" class="left-des" style="display: inline">
&lt;!&ndash; referrerpolicy="no-referrer" 不携带引源信息 &ndash;&gt;
<img :src="item.imgUrl" referrerpolicy="no-referrer" alt="作品介绍图片" style="width: 80px;height: 100px"/>
</el-col>
<el-col :span="18">
<div class="right-des" style="display: inline">
<div class="report-title">
{{item.name}}
</div>
<div class="report-content">
{{item.content}}
</div>
<div class="report-bottom">
<span>{{item.category}}</span>
<span style="margin-left: 15px">{{item.postTime}}</span>
<span style="float: right" @click="clickDetails(item.id)"><a :href="item.citeUrl" target="_blank" >查看详情</a></span>
</div>
</div>
</el-col>
</el-row>
</el-card>-->
<el-pagination
style="margin-bottom: 5px"
small
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="searchParams.pageNum"
:page-size="searchParams.pageSize"
layout="prev, pager, next"
:total="totalRecords">
</el-pagination>
</el-card>
</el-col>
<el-col :span="14" :xs="24" :sm="24" :lg="14">
<el-card class="box-card grid-content" shadow="always" align="center">
</el-card>
</el-col>
</el-row>
<el-row :gutter="40" type="flex" justify="center">
<el-col :span="18" :xs="24" :sm="24" :lg="18" style="margin-top: 20px">
</el-col>
</el-row>
</div>
</template>
<script>
export default {
name: "HomePage",
components: {
},
data() {
return {
searchParams: {
searchName: null,
searchCategory: null,
pageNum: 1,
pageSize: 7
},
offset: 1,
loading: false,
noMore: false,
messages: [
/*{
id: null,
title: "",
content: "",
imgUrl: "",
citeUrl: "",
postTime: "",
category: ""
}*/
],
currentPage: 1,
totalRecords: 10,
workId: 1,
works: [
{
id: 1,
name: "流浪地球"
}
],
userId:null
}
},
methods: {
handleCurrentChange(val) {
this.searchParams.pageNum = val
this.load()
},
handleSizeChange() {
}
},
async created() {
},
mounted(){
// this.selectChanged()
}
}
</script>
<style scoped lang="scss">
.text {
font-size: 14px;
}
.item {
padding: 18px 0;
}
.box-card {
background-color: #e7edfd;
}
.box-card2 {
background-color: #F2F6FC;
margin-bottom: 15px;
max-height: 160px;
overflow: hidden;
}
.card-title {
font-size: 23px;
color: #1f2d3d;
font-family: 微软雅黑;
margin-bottom: 25px;
}
.show-chart1 {
margin-top: 40px;
}
.report-title {
font-size: 1.2rem;
font-color: #000;
}
a {
color: #409EFF;
}
.report-content {
height: 60px;
overflow: hidden;
color: #909399;
font-size: 14px;
}
.report-bottom {
color: #405db4;
font-size: 16px;
}
.el-row {
margin-bottom: 20px;
&:last-child {
margin-bottom: 0;
}
}
.el-col {
border-radius: 4px;
}
.bg-purple-dark {
background: #99a9bf;
}
.bg-purple {
background: #d3dce6;
}
.bg-purple-light {
background: #e5e9f2;
}
.grid-content {
border-radius: 4px;
min-height: 36px;
}
.row-bg {
padding: 10px 0;
background-color: #f9fafc;
}
</style>

@ -0,0 +1,20 @@
<template>
<el-row style="display: flex; justify-content: center;">
<el-col :span="16" :xs="24">
<el-card class="box-card grid-content" style="height: 500px;background-color: #dde5f3;">
<div style="font-family: 华文新魏;font-size: 25px">您还没有登录请先登录</div>
<div style="margin-top: 100px">点击<router-link to="/login" style="color: #C03639; font-weight: bold">此处</router-link></div>
</el-card>
</el-col>
</el-row>
</template>
<script>
export default {
name: "NotLogin"
}
</script>
<style scoped>
</style>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -48,12 +48,6 @@
<el-tab-pane label="修改密码" name="resetPwd">
<resetPwd />
</el-tab-pane>
<el-tab-pane label="监测作品列表" name="monitor-works">
<monitor-list :user-id="user.id"></monitor-list>
</el-tab-pane>
<el-tab-pane label="申请监测" name="monitor-request">
<apply-monitor></apply-monitor>
</el-tab-pane>
</el-tabs>
</el-card>
</el-col>
@ -65,9 +59,6 @@
import userAvatar from "./userAvatar";
import userInfo from "./userInfo";
import resetPwd from "./resetPwd";
import {getUserProfile} from "../../../api/userAPI";
import monitorList from "../../../components/user/common/monitorList";
import applyMonitor from "../../../components/user/common/applyMonitor";
import 'animate.css'
export default {
@ -77,8 +68,6 @@ export default {
userAvatar,
userInfo,
resetPwd,
monitorList,
applyMonitor
},
data() {
return {
@ -96,14 +85,7 @@ export default {
},
methods: {
getUser() {
getUserProfile().then(res=>{
if (res.code === "0") {
this.user = res.data;
// console.log(this.user)
} else {
console.log(res.msg)
}
})
},
logout() {
this.$confirm('退出登录, 是否继续?', '提示', {
@ -112,7 +94,7 @@ export default {
type: 'warning'
})
.then(() => {
setTimeout(() => { // 退
/*setTimeout(() => { // 用户退出登
this.$store.dispatch("Logout").then(()=>{
this.$message({
type: 'success',
@ -121,7 +103,7 @@ export default {
this.$router.push("/home")
})
// location.reload()
}, 1000)
}, 1000)*/
})
.catch(() => {
this.$message({

@ -28,7 +28,6 @@
</template>
<script>
import {updateUserPassword} from "../../../api/userAPI";
export default {
components: {
@ -73,7 +72,7 @@ export default {
submit() {
this.$refs["form"].validate(valid => {
if (valid) {
updateUserPassword(this.user).then(res => {
/*updateUserPassword(this.user).then(res => {
if (res.code === "0") {
this.$message.success("修改成功");
//
@ -83,7 +82,7 @@ export default {
} else {
this.$message.error(res.msg);
}
});
});*/
}
});
},

@ -55,10 +55,7 @@
<script>
import { VueCropper } from 'vue-cropper'
import {debounce, updateUserInfo} from "../../../utils/util";
import {fileUpload} from "../../../api/fileAPI";
import {userUpdate} from "../../../api/userAPI";
import {setLocalStorageItem} from "../../../utils/auth";
import {debounce} from "@/utils/util";
export default {
@ -141,13 +138,13 @@ export default {
formData.append("file", data);
// console.log(formData)
// console.log(data)
this.$store.dispatch("uploadAvatar", formData).then((res)=>{
/*this.$store.dispatch("uploadAvatar", formData).then((res)=>{
if (res.code === "0") {
this.open = false
this.visible = false;
this.options.img = res.data;
}
})
})*/
});
},
//

@ -1,30 +1,30 @@
<template>
<el-form ref="form" :model="user" :rules="rules" label-width="80px">
<el-form ref="form" :model="user_" :rules="rules" label-width="80px">
<el-row>
<el-col :span="15" :xs="24">
<el-form-item label="用户昵称" prop="nickname">
<el-input id="name" v-model="user.nickname" maxlength="30" />
<el-input id="name" v-model="user_.nickname" maxlength="30" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="15" :xs="24">
<el-form-item label="手机号码" prop="phone">
<el-input id="phone" v-model="user.phone" maxlength="11" />
<el-input id="phone" v-model="user_.phone" maxlength="11" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="15" :xs="24">
<el-form-item label="邮箱" prop="email">
<el-input id="email" v-model="user.email" maxlength="50" />
<el-input id="email" v-model="user_.email" maxlength="50" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="15" :xs="24">
<el-form-item label="工作单位" prop="workUnit">
<el-input id="workUnit" v-model="user.workUnit" maxlength="50" />
<el-input id="workUnit" v-model="user_.workUnit" maxlength="50" />
</el-form-item>
</el-col>
</el-row>
@ -42,8 +42,6 @@
</template>
<script>
import {userUpdate} from "../../../api/userAPI";
import {updateLocalUserInfo} from "../../../utils/util";
export default {
props: {
@ -51,6 +49,11 @@ export default {
type: Object
}
},
computed: {
user_() {
return this.user
}
},
data() {
return {
//
@ -82,7 +85,7 @@ export default {
this.$refs["form"].validate(valid => {
if (valid) {
//
const updateInfo = {
/*const updateInfo = {
id: this.user.id,
name: this.user.nickname,
phone: this.user.phone,
@ -96,7 +99,7 @@ export default {
} else {
this.$message.success("修改用户个人信息失败");
}
});
});*/
}
});
},

Loading…
Cancel
Save