正在显示
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 |
-
请 注册 或 登录 后发表评论