作者 zhangFan

修改部分URL并上传全局CSS文件

@@ -29,7 +29,7 @@ module.exports = { @@ -29,7 +29,7 @@ module.exports = {
29 assetsPublicPath: '/', 29 assetsPublicPath: '/',
30 proxyTable: { 30 proxyTable: {
31 '/api':{ 31 '/api':{
32 - target: 'http://127.0.0.1:7003',//设置你调用的接口域名和端口号 别忘了加http 32 + target: 'http://127.0.0.1:12343',//设置你调用的接口域名和端口号 别忘了加http
33 changeOrigin: true, 33 changeOrigin: true,
34 pathRewrite: { 34 pathRewrite: {
35 '^/api': '/'//这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add’即可 35 '^/api': '/'//这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add’即可
@@ -5,13 +5,13 @@ import qs from 'qs' @@ -5,13 +5,13 @@ import qs from 'qs'
5 Vue.prototype.$http = axios; 5 Vue.prototype.$http = axios;
6 6
7 7
8 -export const getuserMenus = params => { return axios.get(`/perm/userMenus`, { params: params }); }; 8 +export const getuserMenus = params => { return axios.get(`USER-CENTER/perm/userMenus`, { params: params }); };
9 9
10 -export const getUserList = params => { return axios.get(`/user/list`, { params: params }); }; 10 +export const getUserList = params => { return axios.get(`USER-CENTER/user/list`, { params: params }); };
11 11
12 export const getUserListPage = params => { return axios({ 12 export const getUserListPage = params => { return axios({
13 method: 'GET', 13 method: 'GET',
14 - url: `/user/list`, 14 + url: `USER-CENTER/user/list`,
15 data: params, 15 data: params,
16 headers: { 16 headers: {
17 'Content-Type': 'application/json;charset=UTF-8' 17 'Content-Type': 'application/json;charset=UTF-8'
@@ -21,18 +21,18 @@ export const getUserListPage = params => { return axios({ @@ -21,18 +21,18 @@ export const getUserListPage = params => { return axios({
21 21
22 export const removeUser = params => { return axios({ 22 export const removeUser = params => { return axios({
23 method: 'DELETE', 23 method: 'DELETE',
24 - url: `/user/del`, 24 + url: `USER-CENTER/user/del`,
25 data: params, 25 data: params,
26 headers: { 26 headers: {
27 'Content-Type': 'application/json;charset=UTF-8' 27 'Content-Type': 'application/json;charset=UTF-8'
28 } 28 }
29 })}; 29 })};
30 30
31 -export const batchRemoveUser = params => { return axios.get(`/user/batchremove`, { params: params }); }; 31 +export const batchRemoveUser = params => { return axios.get(`USER-CENTER/user/batchremove`, { params: params }); };
32 32
33 export const editUser = params => { return axios({ 33 export const editUser = params => { return axios({
34 method: 'PUT', 34 method: 'PUT',
35 - url: `/user/edit`, 35 + url: `USER-CENTER/user/edit`,
36 data: params, 36 data: params,
37 headers: { 37 headers: {
38 'Content-Type': 'application/json;charset=UTF-8' 38 'Content-Type': 'application/json;charset=UTF-8'
@@ -41,7 +41,7 @@ export const editUser = params => { return axios({ @@ -41,7 +41,7 @@ export const editUser = params => { return axios({
41 41
42 export const addUser = params => { return axios({ 42 export const addUser = params => { return axios({
43 method: 'POST', 43 method: 'POST',
44 - url: `/user/add`, 44 + url: `USER-CENTER/user/add`,
45 data: params, 45 data: params,
46 headers: { 46 headers: {
47 'Content-Type': 'application/json;charset=UTF-8' 47 'Content-Type': 'application/json;charset=UTF-8'
@@ -50,7 +50,7 @@ export const addUser = params => { return axios({ @@ -50,7 +50,7 @@ export const addUser = params => { return axios({
50 50
51 export const setUserRole = params => { return axios({ 51 export const setUserRole = params => { return axios({
52 method: 'PUT', 52 method: 'PUT',
53 - url: `/user/roleset`, 53 + url: `USER-CENTER/user/roleset`,
54 data: params, 54 data: params,
55 headers: { 55 headers: {
56 'Content-Type': 'application/json;charset=UTF-8' 56 'Content-Type': 'application/json;charset=UTF-8'
@@ -46,7 +46,7 @@ export default { @@ -46,7 +46,7 @@ export default {
46 login: data =>{ 46 login: data =>{
47 return axios({ 47 return axios({
48 method: 'POST', // 请求协议 48 method: 'POST', // 请求协议
49 - url: '/login', // 请求的地址 49 + url: 'user-center/login', // 请求的地址
50 data: qs.stringify(data), // post 请求的数据 50 data: qs.stringify(data), // post 请求的数据
51 timeout: 30000, // 超时时间, 单位毫秒 51 timeout: 30000, // 超时时间, 单位毫秒
52 headers: { 52 headers: {
1 import axios from 'axios' 1 import axios from 'axios'
2 2
3 axios.defaults.baseURL = 'http://localhost:8082/api'; 3 axios.defaults.baseURL = 'http://localhost:8082/api';
4 -let base = axios.defaults.baseURL+'/system/log'; 4 +let base = axios.defaults.baseURL+'USER-CENTER/system/log';
5 5
6 6
7 export const getList = params => { return axios.get(`${base}/list`, { params: params }); }; 7 export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
1 import axios from 'axios' 1 import axios from 'axios'
2 2
3 axios.defaults.baseURL = 'http://localhost:8082/api'; 3 axios.defaults.baseURL = 'http://localhost:8082/api';
4 -let base = axios.defaults.baseURL+'/perm'; 4 +let base = axios.defaults.baseURL+'USER-CENTER/perm';
5 5
6 6
7 export const getList = params => { return axios.get(`${base}/list`, { params: params }); }; 7 export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
1 import axios from 'axios' 1 import axios from 'axios'
2 2
3 -let base = '/role'; 3 +let base = 'USER-CENTER/role';
4 4
5 5
6 export const getList = params => { return axios.get(`${base}/list`, { params: params }); }; 6 export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
1 import http from './http.js' 1 import http from './http.js'
2 -let baseUrl = '/user' 2 +let baseUrl = 'user-center/user'
3 3
4 export const getUserList = params => { return http.get(`${baseUrl}/list`, params); }; 4 export const getUserList = params => { return http.get(`${baseUrl}/list`, params); };
5 5
1 <template> 1 <template>
2 <el-table :data="formatData" :row-style="showRow" v-bind="$attrs"> 2 <el-table :data="formatData" :row-style="showRow" v-bind="$attrs">
3 - <el-table-column type="selection" width="30" align="center"/>  
4 - <el-table-column v-if="columns.length===0" width="30" align="center"> 3 + <el-table-column type="selection" width="50" align="center"></el-table-column>
  4 + <el-table-column v-if="columns.length===0" width="40" align="center">
5 <template slot-scope="scope"> 5 <template slot-scope="scope">
6 <span v-for="space in scope.row._level" :key="space" class="ms-tree-space"/> 6 <span v-for="space in scope.row._level" :key="space" class="ms-tree-space"/>
7 <span v-if="iconShow(0,scope.row)" class="tree-ctrl" @click="toggleExpanded(scope.$index)"> 7 <span v-if="iconShow(0,scope.row)" class="tree-ctrl" @click="toggleExpanded(scope.$index)">
@@ -14,6 +14,7 @@ import rout from './routes' @@ -14,6 +14,7 @@ import rout from './routes'
14 import Mock from './mock' 14 import Mock from './mock'
15 import i18n from './lang' 15 import i18n from './lang'
16 import 'font-awesome/css/font-awesome.min.css' 16 import 'font-awesome/css/font-awesome.min.css'
  17 +import '@/styles/index.scss'
17 18
18 //定义一个全局过滤器实现日期格式化 19 //定义一个全局过滤器实现日期格式化
19 Vue.filter('datefmt',function(input,fmtstring){ 20 Vue.filter('datefmt',function(input,fmtstring){
@@ -7,6 +7,7 @@ import Role from './views/nav1/role.vue' @@ -7,6 +7,7 @@ import Role from './views/nav1/role.vue'
7 import Perm from './views/nav1/perm.vue' 7 import Perm from './views/nav1/perm.vue'
8 import LOG from './views/nav1/Log.vue' 8 import LOG from './views/nav1/Log.vue'
9 import PreManifest from './views/agent/PreManifest.vue' 9 import PreManifest from './views/agent/PreManifest.vue'
  10 +import OrgManifest from './views/nmms/orgManifest.vue'
10 // import Form from './views/nav1/Form.vue' 11 // import Form from './views/nav1/Form.vue'
11 12
12 import User from './views/nav1/user.vue' 13 import User from './views/nav1/user.vue'
@@ -58,7 +59,7 @@ let routes = [ @@ -58,7 +59,7 @@ let routes = [
58 iconCls: 'fa fa-id-card-o', 59 iconCls: 'fa fa-id-card-o',
59 children: [ 60 children: [
60 { path: '/pre', component: PreManifest, name: '预配' }, 61 { path: '/pre', component: PreManifest, name: '预配' },
61 - { path: '/page5', component: Page5, name: '页面5' } 62 + { path: '/org', component: OrgManifest, name: '进港' }
62 ] 63 ]
63 }, 64 },
64 { 65 {
  1 +@import './variables.scss';
  2 +
  3 +@mixin colorBtn($color) {
  4 + background: $color;
  5 +
  6 + &:hover {
  7 + color: $color;
  8 +
  9 + &:before,
  10 + &:after {
  11 + background: $color;
  12 + }
  13 + }
  14 +}
  15 +
  16 +.blue-btn {
  17 + @include colorBtn($blue)
  18 +}
  19 +
  20 +.light-blue-btn {
  21 + @include colorBtn($light-blue)
  22 +}
  23 +
  24 +.red-btn {
  25 + @include colorBtn($red)
  26 +}
  27 +
  28 +.pink-btn {
  29 + @include colorBtn($pink)
  30 +}
  31 +
  32 +.green-btn {
  33 + @include colorBtn($green)
  34 +}
  35 +
  36 +.tiffany-btn {
  37 + @include colorBtn($tiffany)
  38 +}
  39 +
  40 +.yellow-btn {
  41 + @include colorBtn($yellow)
  42 +}
  43 +
  44 +.pan-btn {
  45 + font-size: 14px;
  46 + color: #fff;
  47 + padding: 14px 36px;
  48 + border-radius: 8px;
  49 + border: none;
  50 + outline: none;
  51 + transition: 600ms ease all;
  52 + position: relative;
  53 + display: inline-block;
  54 +
  55 + &:hover {
  56 + background: #fff;
  57 +
  58 + &:before,
  59 + &:after {
  60 + width: 100%;
  61 + transition: 600ms ease all;
  62 + }
  63 + }
  64 +
  65 + &:before,
  66 + &:after {
  67 + content: '';
  68 + position: absolute;
  69 + top: 0;
  70 + right: 0;
  71 + height: 2px;
  72 + width: 0;
  73 + transition: 400ms ease all;
  74 + }
  75 +
  76 + &::after {
  77 + right: inherit;
  78 + top: inherit;
  79 + left: 0;
  80 + bottom: 0;
  81 + }
  82 +}
  83 +
  84 +.custom-button {
  85 + display: inline-block;
  86 + line-height: 1;
  87 + white-space: nowrap;
  88 + cursor: pointer;
  89 + background: #fff;
  90 + color: #fff;
  91 + -webkit-appearance: none;
  92 + text-align: center;
  93 + box-sizing: border-box;
  94 + outline: 0;
  95 + margin: 0;
  96 + padding: 10px 15px;
  97 + font-size: 14px;
  98 + border-radius: 4px;
  99 +}
  1 +//覆盖一些element-ui样式
  2 +
  3 +.el-breadcrumb__inner,
  4 +.el-breadcrumb__inner a {
  5 + font-weight: 400 !important;
  6 +}
  7 +
  8 +.el-upload {
  9 + input[type="file"] {
  10 + display: none !important;
  11 + }
  12 +}
  13 +
  14 +.el-upload__input {
  15 + display: none;
  16 +}
  17 +
  18 +.cell {
  19 + .el-tag {
  20 + margin-right: 0px;
  21 + }
  22 +}
  23 +
  24 +.small-padding {
  25 + .cell {
  26 + padding-left: 5px;
  27 + padding-right: 5px;
  28 + }
  29 +}
  30 +
  31 +.fixed-width {
  32 + .el-button--mini {
  33 + padding: 7px 10px;
  34 + width: 60px;
  35 + }
  36 +}
  37 +
  38 +.status-col {
  39 + .cell {
  40 + padding: 0 10px;
  41 + text-align: center;
  42 +
  43 + .el-tag {
  44 + margin-right: 0px;
  45 + }
  46 + }
  47 +}
  48 +
  49 +//暂时性解决dialog 问题 https://github.com/ElemeFE/element/issues/2461
  50 +.el-dialog {
  51 + transform: none;
  52 + left: 0;
  53 + position: relative;
  54 + margin: 0 auto;
  55 +}
  56 +
  57 +//文章页textarea修改样式
  58 +.article-textarea {
  59 + textarea {
  60 + padding-right: 40px;
  61 + resize: none;
  62 + border: none;
  63 + border-radius: 0px;
  64 + border-bottom: 1px solid #bfcbd9;
  65 + }
  66 +}
  67 +
  68 +//element ui upload
  69 +.upload-container {
  70 + .el-upload {
  71 + width: 100%;
  72 +
  73 + .el-upload-dragger {
  74 + width: 100%;
  75 + height: 200px;
  76 + }
  77 + }
  78 +}
  79 +
  80 +//dropdown
  81 +.el-dropdown-menu {
  82 + a {
  83 + display: block
  84 + }
  85 +}
  1 +@import './variables.scss';
  2 +@import './mixin.scss';
  3 +@import './transition.scss';
  4 +@import './element-ui.scss';
  5 +@import './sidebar.scss';
  6 +@import './btn.scss';
  7 +
  8 +body {
  9 + height: 100%;
  10 + -moz-osx-font-smoothing: grayscale;
  11 + -webkit-font-smoothing: antialiased;
  12 + text-rendering: optimizeLegibility;
  13 + font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
  14 +}
  15 +
  16 +label {
  17 + font-weight: 700;
  18 +}
  19 +
  20 +html {
  21 + height: 100%;
  22 + box-sizing: border-box;
  23 +}
  24 +
  25 +#app {
  26 + height: 100%;
  27 +}
  28 +
  29 +*,
  30 +*:before,
  31 +*:after {
  32 + box-sizing: inherit;
  33 +}
  34 +
  35 +.no-padding {
  36 + padding: 0px !important;
  37 +}
  38 +
  39 +.padding-content {
  40 + padding: 4px 0;
  41 +}
  42 +
  43 +a:focus,
  44 +a:active {
  45 + outline: none;
  46 +}
  47 +
  48 +a,
  49 +a:focus,
  50 +a:hover {
  51 + cursor: pointer;
  52 + color: inherit;
  53 + text-decoration: none;
  54 +}
  55 +
  56 +div:focus {
  57 + outline: none;
  58 +}
  59 +
  60 +.fr {
  61 + float: right;
  62 +}
  63 +
  64 +.fl {
  65 + float: left;
  66 +}
  67 +
  68 +.pr-5 {
  69 + padding-right: 5px;
  70 +}
  71 +
  72 +.pl-5 {
  73 + padding-left: 5px;
  74 +}
  75 +
  76 +.block {
  77 + display: block;
  78 +}
  79 +
  80 +.pointer {
  81 + cursor: pointer;
  82 +}
  83 +
  84 +.inlineBlock {
  85 + display: block;
  86 +}
  87 +
  88 +.clearfix {
  89 + &:after {
  90 + visibility: hidden;
  91 + display: block;
  92 + font-size: 0;
  93 + content: " ";
  94 + clear: both;
  95 + height: 0;
  96 + }
  97 +}
  98 +
  99 +code {
  100 + background: #eef1f6;
  101 + padding: 15px 16px;
  102 + margin-bottom: 20px;
  103 + display: block;
  104 + line-height: 36px;
  105 + font-size: 15px;
  106 + font-family: "Source Sans Pro", "Helvetica Neue", Arial, sans-serif;
  107 +
  108 + a {
  109 + color: #337ab7;
  110 + cursor: pointer;
  111 +
  112 + &:hover {
  113 + color: rgb(32, 160, 255);
  114 + }
  115 + }
  116 +}
  117 +
  118 +.warn-content {
  119 + background: rgba(66, 185, 131, .1);
  120 + border-radius: 2px;
  121 + padding: 16px;
  122 + padding: 1rem;
  123 + line-height: 1.6rem;
  124 + word-spacing: .05rem;
  125 +
  126 + a {
  127 + color: #42b983;
  128 + font-weight: 600;
  129 + }
  130 +}
  131 +
  132 +//main-container全局样式
  133 +.app-container {
  134 + padding: 20px;
  135 +}
  136 +
  137 +.components-container {
  138 + margin: 30px 50px;
  139 + position: relative;
  140 +}
  141 +
  142 +.pagination-container {
  143 + margin-top: 30px;
  144 +}
  145 +
  146 +.text-center {
  147 + text-align: center
  148 +}
  149 +
  150 +.sub-navbar {
  151 + height: 50px;
  152 + line-height: 50px;
  153 + position: relative;
  154 + width: 100%;
  155 + text-align: right;
  156 + padding-right: 20px;
  157 + transition: 600ms ease position;
  158 + 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%);
  159 +
  160 + .subtitle {
  161 + font-size: 20px;
  162 + color: #fff;
  163 + }
  164 +
  165 + &.draft {
  166 + background: #d0d0d0;
  167 + }
  168 +
  169 + &.deleted {
  170 + background: #d0d0d0;
  171 + }
  172 +}
  173 +
  174 +.link-type,
  175 +.link-type:focus {
  176 + color: #337ab7;
  177 + cursor: pointer;
  178 +
  179 + &:hover {
  180 + color: rgb(32, 160, 255);
  181 + }
  182 +}
  183 +
  184 +.filter-container {
  185 + padding-bottom: 10px;
  186 +
  187 + .filter-item {
  188 + display: inline-block;
  189 + vertical-align: middle;
  190 + margin-bottom: 10px;
  191 + }
  192 +}
  193 +
  194 +//refine vue-multiselect plugin
  195 +.multiselect {
  196 + line-height: 16px;
  197 +}
  198 +
  199 +.multiselect--active {
  200 + z-index: 1000 !important;
  201 +}
  1 +@mixin clearfix {
  2 + &:after {
  3 + content: "";
  4 + display: table;
  5 + clear: both;
  6 + }
  7 +}
  8 +
  9 +@mixin scrollBar {
  10 + &::-webkit-scrollbar-track-piece {
  11 + background: #d3dce6;
  12 + }
  13 +
  14 + &::-webkit-scrollbar {
  15 + width: 6px;
  16 + }
  17 +
  18 + &::-webkit-scrollbar-thumb {
  19 + background: #99a9bf;
  20 + border-radius: 20px;
  21 + }
  22 +}
  23 +
  24 +@mixin relative {
  25 + position: relative;
  26 + width: 100%;
  27 + height: 100%;
  28 +}
  29 +
  30 +@mixin pct($pct) {
  31 + width: #{$pct};
  32 + position: relative;
  33 + margin: 0 auto;
  34 +}
  35 +
  36 +@mixin triangle($width, $height, $color, $direction) {
  37 + $width: $width/2;
  38 + $color-border-style: $height solid $color;
  39 + $transparent-border-style: $width solid transparent;
  40 + height: 0;
  41 + width: 0;
  42 +
  43 + @if $direction==up {
  44 + border-bottom: $color-border-style;
  45 + border-left: $transparent-border-style;
  46 + border-right: $transparent-border-style;
  47 + }
  48 +
  49 + @else if $direction==right {
  50 + border-left: $color-border-style;
  51 + border-top: $transparent-border-style;
  52 + border-bottom: $transparent-border-style;
  53 + }
  54 +
  55 + @else if $direction==down {
  56 + border-top: $color-border-style;
  57 + border-left: $transparent-border-style;
  58 + border-right: $transparent-border-style;
  59 + }
  60 +
  61 + @else if $direction==left {
  62 + border-right: $color-border-style;
  63 + border-top: $transparent-border-style;
  64 + border-bottom: $transparent-border-style;
  65 + }
  66 +}
  1 +#app {
  2 +
  3 + // 主体区域 Main container
  4 + .main-container {
  5 + min-height: 100%;
  6 + transition: margin-left .28s;
  7 + margin-left: $sideBarWidth;
  8 + position: relative;
  9 + }
  10 +
  11 + // 侧边栏 Sidebar container
  12 + .sidebar-container {
  13 + transition: width 0.28s;
  14 + width: $sideBarWidth !important;
  15 + height: 100%;
  16 + position: fixed;
  17 + font-size: 0px;
  18 + top: 0;
  19 + bottom: 0;
  20 + left: 0;
  21 + z-index: 1001;
  22 + overflow: hidden;
  23 +
  24 + //reset element-ui css
  25 + .horizontal-collapse-transition {
  26 + transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out;
  27 + }
  28 +
  29 + .scrollbar-wrapper {
  30 + overflow-x: hidden !important;
  31 +
  32 + .el-scrollbar__view {
  33 + height: 100%;
  34 + }
  35 + }
  36 +
  37 + .el-scrollbar__bar.is-vertical {
  38 + right: 0px;
  39 + }
  40 +
  41 + .is-horizontal {
  42 + display: none;
  43 + }
  44 +
  45 + a {
  46 + display: inline-block;
  47 + width: 100%;
  48 + overflow: hidden;
  49 + }
  50 +
  51 + .svg-icon {
  52 + margin-right: 16px;
  53 + }
  54 +
  55 + .el-menu {
  56 + border: none;
  57 + height: 100%;
  58 + width: 100% !important;
  59 + }
  60 +
  61 + // menu hover
  62 + .submenu-title-noDropdown,
  63 + .el-submenu__title {
  64 + &:hover {
  65 + background-color: $menuHover !important;
  66 + }
  67 + }
  68 +
  69 + .is-active>.el-submenu__title {
  70 + color: $subMenuActiveText !important;
  71 + }
  72 +
  73 + & .nest-menu .el-submenu>.el-submenu__title,
  74 + & .el-submenu .el-menu-item {
  75 + min-width: $sideBarWidth !important;
  76 + background-color: $subMenuBg !important;
  77 +
  78 + &:hover {
  79 + background-color: $subMenuHover !important;
  80 + }
  81 + }
  82 + }
  83 +
  84 + .hideSidebar {
  85 + .sidebar-container {
  86 + width: 36px !important;
  87 + }
  88 +
  89 + .main-container {
  90 + margin-left: 36px;
  91 + }
  92 +
  93 + .submenu-title-noDropdown {
  94 + padding-left: 10px !important;
  95 + position: relative;
  96 +
  97 + .el-tooltip {
  98 + padding: 0 10px !important;
  99 + }
  100 + }
  101 +
  102 + .el-submenu {
  103 + overflow: hidden;
  104 +
  105 + &>.el-submenu__title {
  106 + padding-left: 10px !important;
  107 +
  108 + .el-submenu__icon-arrow {
  109 + display: none;
  110 + }
  111 + }
  112 + }
  113 +
  114 + .el-menu--collapse {
  115 + .el-submenu {
  116 + &>.el-submenu__title {
  117 + &>span {
  118 + height: 0;
  119 + width: 0;
  120 + overflow: hidden;
  121 + visibility: hidden;
  122 + display: inline-block;
  123 + }
  124 + }
  125 + }
  126 + }
  127 + }
  128 +
  129 + .el-menu--collapse .el-menu .el-submenu {
  130 + min-width: $sideBarWidth !important;
  131 + }
  132 +
  133 + // 适配移动端, Mobile responsive
  134 + .mobile {
  135 + .main-container {
  136 + margin-left: 0px;
  137 + }
  138 +
  139 + .sidebar-container {
  140 + transition: transform .28s;
  141 + width: $sideBarWidth !important;
  142 + }
  143 +
  144 + &.hideSidebar {
  145 + .sidebar-container {
  146 + pointer-events: none;
  147 + transition-duration: 0.3s;
  148 + transform: translate3d(-$sideBarWidth, 0, 0);
  149 + }
  150 + }
  151 + }
  152 +
  153 + .withoutAnimation {
  154 +
  155 + .main-container,
  156 + .sidebar-container {
  157 + transition: none;
  158 + }
  159 + }
  160 +}
  161 +
  162 +// when menu collapsed
  163 +.el-menu--vertical {
  164 + &>.el-menu {
  165 + .svg-icon {
  166 + margin-right: 16px;
  167 + }
  168 + }
  169 +
  170 + .nest-menu .el-submenu>.el-submenu__title,
  171 + .el-menu-item {
  172 + &:hover {
  173 + // you can use $subMenuHover
  174 + background-color: $menuHover !important;
  175 + }
  176 + }
  177 +
  178 + // the scroll bar appears when the subMenu is too long
  179 + >.el-menu--popup {
  180 + max-height: 100vh;
  181 + overflow-y: auto;
  182 +
  183 + &::-webkit-scrollbar-track-piece {
  184 + background: #d3dce6;
  185 + }
  186 +
  187 + &::-webkit-scrollbar {
  188 + width: 6px;
  189 + }
  190 +
  191 + &::-webkit-scrollbar-thumb {
  192 + background: #99a9bf;
  193 + border-radius: 20px;
  194 + }
  195 + }
  196 +}
  1 +//globl transition css
  2 +
  3 +/*fade*/
  4 +.fade-enter-active,
  5 +.fade-leave-active {
  6 + transition: opacity 0.28s;
  7 +}
  8 +
  9 +.fade-enter,
  10 +.fade-leave-active {
  11 + opacity: 0;
  12 +}
  13 +
  14 +/*fade-transform*/
  15 +.fade-transform-leave-active,
  16 +.fade-transform-enter-active {
  17 + transition: all .5s;
  18 +}
  19 +
  20 +.fade-transform-enter {
  21 + opacity: 0;
  22 + transform: translateX(-30px);
  23 +}
  24 +
  25 +.fade-transform-leave-to {
  26 + opacity: 0;
  27 + transform: translateX(30px);
  28 +}
  29 +
  30 +/*breadcrumb transition*/
  31 +.breadcrumb-enter-active,
  32 +.breadcrumb-leave-active {
  33 + transition: all .5s;
  34 +}
  35 +
  36 +.breadcrumb-enter,
  37 +.breadcrumb-leave-active {
  38 + opacity: 0;
  39 + transform: translateX(20px);
  40 +}
  41 +
  42 +.breadcrumb-move {
  43 + transition: all .5s;
  44 +}
  45 +
  46 +.breadcrumb-leave-active {
  47 + position: absolute;
  48 +}
  1 +// base color
  2 +$blue:#324157;
  3 +$light-blue:#3A71A8;
  4 +$red:#C03639;
  5 +$pink: #E65D6E;
  6 +$green: #30B08F;
  7 +$tiffany: #4AB7BD;
  8 +$yellow:#FEC171;
  9 +$panGreen: #30B08F;
  10 +
  11 +//sidebar
  12 +$menuText:#bfcbd9;
  13 +$menuActiveText:#409EFF;
  14 +$subMenuActiveText:#f4f4f5; //https://github.com/ElemeFE/element/issues/12951
  15 +
  16 +$menuBg:#304156;
  17 +$menuHover:#263445;
  18 +
  19 +$subMenuBg:#1f2d3d;
  20 +$subMenuHover:#001528;
  21 +
  22 +$sideBarWidth: 180px;
  23 +
  24 +// the :export directive is the magic sauce for webpack
  25 +:export {
  26 + menuText: $menuText;
  27 + menuActiveText: $menuActiveText;
  28 + subMenuActiveText: $subMenuActiveText;
  29 + menuBg: $menuBg;
  30 + menuHover: $menuHover;
  31 + subMenuBg: $subMenuBg;
  32 + subMenuHover: $subMenuHover;
  33 + sideBarWidth: $sideBarWidth;
  34 +}
@@ -73,6 +73,7 @@ @@ -73,6 +73,7 @@
73 <script> 73 <script>
74 import rt from '../routes' 74 import rt from '../routes'
75 export default { 75 export default {
  76 +
76 data() { 77 data() {
77 return { 78 return {
78 sysName:'流浪地球管理系统', 79 sysName:'流浪地球管理系统',
@@ -27,7 +27,7 @@ @@ -27,7 +27,7 @@
27 </el-table-column> 27 </el-table-column>
28 <el-table-column label="航班日期" width="100px" align="center" sortable> 28 <el-table-column label="航班日期" width="100px" align="center" sortable>
29 <template slot-scope="scope"> 29 <template slot-scope="scope">
30 - <span>{{ scope.row.flightDate | parseTime('{y}-{m}-{d}') }}</span> 30 + <span>{{ scope.row.flightDate }}</span>
31 </template> 31 </template>
32 </el-table-column> 32 </el-table-column>
33 <el-table-column label="起始站" width="60px" align="center"> 33 <el-table-column label="起始站" width="60px" align="center">
@@ -63,7 +63,7 @@ @@ -63,7 +63,7 @@
63 </div> 63 </div>
64 </template> 64 </template>
65 </el-table-column> 65 </el-table-column>
66 - <el-table-column :label="$t('table.actions')" align="center" class-name="small-padding fixed-width"> 66 + <el-table-column :label="$t('table.actions')" align="center" class-name="small-padding fixed-width" >
67 <template slot-scope="scope"> 67 <template slot-scope="scope">
68 <el-button type="primary" size="small" @click="handleUpdate(scope.row)">快速编辑</el-button> 68 <el-button type="primary" size="small" @click="handleUpdate(scope.row)">快速编辑</el-button>
69 <el-button type="primary" size="mini" @click="handleUpdate(scope.row)">{{ $t('table.edit') }}</el-button> 69 <el-button type="primary" size="mini" @click="handleUpdate(scope.row)">{{ $t('table.edit') }}</el-button>
@@ -80,7 +80,7 @@ @@ -80,7 +80,7 @@
80 <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" /> 80 <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
81 81
82 <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" fullscreen="true"> 82 <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" fullscreen="true">
83 - <el-form ref="" :inline="true" label-position="left" :rules="rules" :model="temp" label-width="100px" style="font-size: 13px"> 83 + <el-form ref="" :inline="true" :rules="rules" :model="temp" label-width="100px" style="font-size: 13px">
84 <div> 84 <div>
85 <el-tag type="info" effect="plain"> 85 <el-tag type="info" effect="plain">
86 航班信息 86 航班信息
@@ -350,17 +350,16 @@ @@ -350,17 +350,16 @@
350 Auth: Lei.j1ang 350 Auth: Lei.j1ang
351 Created: 2018/1/19-14:54 351 Created: 2018/1/19-14:54
352 */ 352 */
353 -import { fetchList } from '@/api/article' 353 +
354 import treeTable from '@/components/TreeTable' 354 import treeTable from '@/components/TreeTable'
355 -import treeToArray from './customEval' 355 +import treeToArray from '@/utils/customEval'
356 import Pagination from '@/components/Pagination' 356 import Pagination from '@/components/Pagination'
357 import waves from '@/directive/waves' // Waves directive 357 import waves from '@/directive/waves' // Waves directive
358 import country from '@/utils/country.js' 358 import country from '@/utils/country.js'
359 import companyType from '@/utils/companyType.js' 359 import companyType from '@/utils/companyType.js'
360 import dangerGoods from '@/utils/dangerGoods.js' 360 import dangerGoods from '@/utils/dangerGoods.js'
361 import goodsPackage from '@/utils/goodsPackage.js' 361 import goodsPackage from '@/utils/goodsPackage.js'
362 -import excel from '@/vendor/Export2Excel'  
363 -import { parseTime } from '@/utils' 362 +
364 const calendarTypeOptions = [ 363 const calendarTypeOptions = [
365 { key: 'CN', display_name: 'China' }, 364 { key: 'CN', display_name: 'China' },
366 { key: 'US', display_name: 'USA' }, 365 { key: 'US', display_name: 'USA' },
@@ -405,9 +404,9 @@ export default { @@ -405,9 +404,9 @@ export default {
405 expandAll: true, 404 expandAll: true,
406 total: 1, 405 total: 1,
407 resend: true, 406 resend: true,
408 - listLoading: false,  
409 - downloadLoading: false,  
410 - loading: false, 407 + loading:false,
  408 + listLoading: true,
  409 + downloadLoading:false,
411 multipleSelection: [], 410 multipleSelection: [],
412 dialogFormVisible: false, 411 dialogFormVisible: false,
413 dialogStatus: '', 412 dialogStatus: '',
@@ -520,7 +519,7 @@ export default { @@ -520,7 +519,7 @@ export default {
520 ] 519 ]
521 }, 520 },
522 { 521 {
523 - id: 5, 522 + id: 4,
524 waybillNo: '580-20728391', 523 waybillNo: '580-20728391',
525 houseWaybillNo: '', 524 houseWaybillNo: '',
526 custom: '4604', 525 custom: '4604',
@@ -599,6 +598,15 @@ export default { @@ -599,6 +598,15 @@ export default {
599 } 598 }
600 this.handleFilter() 599 this.handleFilter()
601 }, 600 },
  601 + handleFilter(){
  602 +
  603 + },
  604 + handleSwitch(row){
  605 +
  606 + },
  607 + handleDownload(){
  608 + this.downloadLoading = true
  609 + },
602 handleUpdate(row) { 610 handleUpdate(row) {
603 this.temp = Object.assign({}, row) // copy obj 611 this.temp = Object.assign({}, row) // copy obj
604 this.temp.timestamp = new Date(this.temp.timestamp) 612 this.temp.timestamp = new Date(this.temp.timestamp)
@@ -608,10 +616,6 @@ export default { @@ -608,10 +616,6 @@ export default {
608 this.$refs[''].clearValidate() 616 this.$refs[''].clearValidate()
609 }) 617 })
610 }, 618 },
611 - handleFilter() {  
612 - this.listQuery.page = 1  
613 - this.getList()  
614 - },  
615 handleModifyStatus(row, status) { 619 handleModifyStatus(row, status) {
616 this.$message({ 620 this.$message({
617 message: '操作成功', 621 message: '操作成功',
@@ -620,16 +624,7 @@ export default { @@ -620,16 +624,7 @@ export default {
620 row.status = status 624 row.status = status
621 }, 625 },
622 getList() { 626 getList() {
623 - this.listLoading = true  
624 - fetchList(this.listQuery).then(response => {  
625 - this.list = response.data.items  
626 - this.total = response.data.total  
627 627
628 - // Just to simulate the time of the request  
629 - setTimeout(() => {  
630 - this.listLoading = false  
631 - }, 1.5 * 1000)  
632 - })  
633 }, 628 },
634 handleSelectionChange(val) { 629 handleSelectionChange(val) {
635 this.multipleSelection = val 630 this.multipleSelection = val
@@ -656,18 +651,6 @@ export default { @@ -656,18 +651,6 @@ export default {
656 this.$refs[''].clearValidate() 651 this.$refs[''].clearValidate()
657 }) 652 })
658 }, 653 },
659 - handleDownload() {  
660 - this.downloadLoading = true  
661 - const tHeader = ['timestamp', 'title', 'type', 'importance', 'status']  
662 - const filterVal = ['timestamp', 'title', 'type', 'importance', 'status']  
663 - const data = this.formatJson(filterVal, this.list)  
664 - excel.export_json_to_excel({  
665 - header: tHeader,  
666 - data,  
667 - filename: 'table-list'  
668 - })  
669 - this.downloadLoading = false  
670 - },  
671 remoteMethod(query) { 654 remoteMethod(query) {
672 if (query !== '') { 655 if (query !== '') {
673 this.loading = true 656 this.loading = true