正在显示
20 个修改的文件
包含
768 行增加
和
53 行删除
@@ -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 | { |
src/styles/btn.scss
0 → 100644
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 | +} |
src/styles/element-ui.scss
0 → 100644
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 | +} |
src/styles/index.scss
0 → 100644
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 | +} |
src/styles/mixin.scss
0 → 100644
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 | +} |
src/styles/sidebar.scss
0 → 100644
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 | +} |
src/styles/transition.scss
0 → 100644
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 | +} |
src/styles/variables.scss
0 → 100644
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 | +} |
src/views/agent/customEval.js
→
src/utils/customEval.js
100755 → 100644
@@ -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 |
-
请 注册 或 登录 后发表评论