jinhui.wang

ver:1.4.0,增加数据字典/虚拟航班维护页面,增加航班预审页面,修改输入框大小,状态,文本修正

Showing 42 changed files with 1286 additions and 650 deletions
...@@ -7,3 +7,11 @@ export const getRouters = () => { ...@@ -7,3 +7,11 @@ export const getRouters = () => {
7 method: 'post' 7 method: 'post'
8 }) 8 })
9 } 9 }
10 +
11 +// 获取tableHeader
12 +export const getTableHeader = () => {
13 + return request({
14 + url: '/table/getTableHeader',
15 + method: 'get'
16 + })
17 +}
...\ No newline at end of file ...\ No newline at end of file
......
1 +import request from '@/utils/request'
2 +//数据字典名称
3 +/**
4 + * @param
5 + */
6 +export function getDictNameList() {
7 + return request({
8 + url: '/dictionary/queryMain',
9 + method: 'get',
10 + })
11 +}
12 +
13 +//字典表查询
14 +/**
15 + * @param dictCode 字典名 *
16 + * @param chineseName 数据名称
17 + * @param page 页数 null
18 + * @param size 每页长度 null
19 + */
20 +export function getDictionaryList(data) {
21 + return request({
22 + url: '/dictionary/query',
23 + method: 'post',
24 + data: data
25 + })
26 +}
27 +
28 +//serviceCode字典表查询
29 +/**
30 + * @param
31 + */
32 +export function getServiceCodeList() {
33 + return request({
34 + url: '/dictionary/queryServiceCode',
35 + method: 'get',
36 + })
37 +}
38 +
39 +//新增字典(单条)
40 +/**
41 + * @param chineseName 字典名称 *
42 + * @param description 描述
43 + * @param dictCode 字典表名称 *
44 + */
45 +export function addDict(data) {
46 + return request({
47 + url: '/dictionary/addDict',
48 + method: 'POST',
49 + data: data
50 + })
51 +}
52 +
53 +//新增字典(批量)
54 +/**
55 + * @param nameList 字典名称 * list
56 + * @param dictCode 字典表名称 *
57 + */
58 +export function addDictBatch(data) {
59 + return request({
60 + url: '/dictionary/addDictBatch',
61 + method: 'POST',
62 + data: data
63 + })
64 +}
65 +
66 +//serviceCode子字典添加
67 +/**
68 + * @param array [{}]
69 + * @param serviceCodeKey serviceCode父级key *
70 + * @param serviceCodeValue 字典名称 *
71 + */
72 +export function addServiceCodeBatch(data) {
73 + return request({
74 + url: '/dictionary/addServiceCodeBatch',
75 + method: 'POST',
76 + data: data
77 + })
78 +}
79 +
80 +//serviceCode子字典删除
81 +/**
82 + * @param array []
83 + * @param serviceCodeValue 字典名称 *
84 + */
85 +export function delServiceCodeCihild(data) {
86 + return request({
87 + url: '/dictionary/delServiceCodeCihild',
88 + method: 'POST',
89 + data: data
90 + })
91 +}
92 +
93 +//字典删除
94 +/**
95 + * @param array []
96 + * @param id 字典ID *
97 + */
98 +export function delDict(data) {
99 + return request({
100 + url: '/dictionary/delDict',
101 + method: 'POST',
102 + data: data
103 + })
104 +}
105 +
106 +//虚拟航班查询
107 +/**
108 + * @param flightNo 航班名称
109 + * @param page 页数 null *
110 + * @param size 每页长度 null *
111 + */
112 +export function flightType(data) {
113 + return request({
114 + url: '/dictionary/flightType',
115 + method: 'post',
116 + data: data
117 + })
118 +}
119 +
120 +//虚拟航班新增
121 +/**
122 + * @param flightNo 航班名称 list *
123 + */
124 +export function addFlight(data) {
125 + return request({
126 + url: '/dictionary/addFlight',
127 + method: 'post',
128 + data: data
129 + })
130 +}
131 +
132 +//虚拟航班新增
133 +/**
134 + * @param flightNo 航班名称 list *
135 + */
136 +export function delFlight(data) {
137 + return request({
138 + url: '/dictionary/delFlight',
139 + method: 'post',
140 + data: data
141 + })
142 +}
...\ No newline at end of file ...\ No newline at end of file
...@@ -17,3 +17,14 @@ export function getDmDataList(data) { ...@@ -17,3 +17,14 @@ export function getDmDataList(data) {
17 data: data 17 data: data
18 }) 18 })
19 } 19 }
20 +
21 +// 流水查询
22 +/**
23 + * @param accsId accsid *
24 + */
25 +export function getDmFlowInformation(data) {
26 + return request({
27 + url: '/dmDataLog/getDmFlowInformation?' + data,
28 + method: 'post',
29 + })
30 +}
......
1 +import request from '@/utils/request'
2 +
3 +//预审航班查询
4 +/**
5 + * @param fltNo 航班号
6 + * @param suatus 状态
7 + * @param page 页数
8 + * @param size 每页条数
9 + */
10 +export function getpreAudit(data) {
11 + return request({
12 + url: '/preAudit/query',
13 + method: 'post',
14 + data: data
15 + })
16 +}
17 +
18 +//添加预审航班
19 +/**
20 + * @param 航班号 *
21 + */
22 +export function addPreFlight(data) {
23 + return request({
24 + url: '/preAudit/addFlight',
25 + method: 'post',
26 + data: data
27 + })
28 +}
29 +
30 +//添加预审航班
31 +/**
32 + * @param id 航班id *
33 + * @param status 状态 * 0关闭 1开启 2删除
34 + */
35 +export function updatePreStatus(data) {
36 + return request({
37 + url: '/preAudit/updateStatus',
38 + method: 'post',
39 + data: data
40 + })
41 +}
42 +
1 import request from '@/utils/request' 1 import request from '@/utils/request'
2 import { praseStrEmpty } from "@/utils/FedEx"; 2 import { praseStrEmpty } from "@/utils/FedEx";
3 3
4 -// // 修改用户
5 -// export function updateUser(data) {
6 -// return request({
7 -// url: '/system/user',
8 -// method: 'put',
9 -// data: data
10 -// })
11 -// }
12 -
13 -// // 导出用户
14 -// export function exportUser(query) {
15 -// return request({
16 -// url: '/system/user/export',
17 -// method: 'get',
18 -// params: query
19 -// })
20 -// }
21 -
22 -// // 用户密码重置
23 -// export function resetUserPwd(userId, password) {
24 -// const data = {
25 -// userId,
26 -// password
27 -// }
28 -// return request({
29 -// url: '/system/user/resetPwd',
30 -// method: 'put',
31 -// data: data
32 -// })
33 -// }
34 -
35 -// // 用户状态修改
36 -// export function changeUserStatus(userId, status) {
37 -// const data = {
38 -// userId,
39 -// status
40 -// }
41 -// return request({
42 -// url: '/system/user/changeStatus',
43 -// method: 'put',
44 -// data: data
45 -// })
46 -// }
47 -
48 -// // 查询用户个人信息
49 -// export function getUserProfile() {
50 -// return request({
51 -// url: '/system/user/profile',
52 -// method: 'get'
53 -// })
54 -// }
55 -
56 -// // 修改用户个人信息
57 -// export function updateUserProfile(data) {
58 -// return request({
59 -// url: '/system/user/profile',
60 -// method: 'put',
61 -// data: data
62 -// })
63 -// }
64 -
65 -// // 用户密码重置
66 -// export function updateUserPwd(oldPassword, newPassword) {
67 -// const data = {
68 -// oldPassword,
69 -// newPassword
70 -// }
71 -// return request({
72 -// url: '/system/user/profile/updatePwd',
73 -// method: 'put',
74 -// params: data
75 -// })
76 -// }
77 -
78 -// // 用户头像上传
79 -// export function uploadAvatar(data) {
80 -// return request({
81 -// url: '/system/user/profile/avatar',
82 -// method: 'post',
83 -// data: data
84 -// })
85 -// }
86 -
87 -// // 下载用户导入模板
88 -// export function importTemplate() {
89 -// return request({
90 -// url: '/system/user/importTemplate',
91 -// method: 'get'
92 -// })
93 -// }
94 -
95 // 查询用户列表 4 // 查询用户列表
96 /** 5 /**
97 * @param page 页码 * 6 * @param page 页码 *
...@@ -259,3 +168,27 @@ export function changeCurrentPort(data) { ...@@ -259,3 +168,27 @@ export function changeCurrentPort(data) {
259 data: data 168 data: data
260 }) 169 })
261 } 170 }
171 +
172 +//获取用户设置表头
173 +/**
174 + * @param tableName 表名 *
175 + */
176 +export function getHeaderOrder(data) {
177 + return request({
178 + url: '/table/getHeaderOrder?' + data,
179 + method: 'get',
180 + })
181 +}
182 +
183 +//保存用户设置表头
184 +/**
185 + * @param tableName 表名 *
186 + * @param idList 显示表头集合 *
187 + */
188 +export function saveTableHeader(data) {
189 + return request({
190 + url: '/table/saveTableHeader',
191 + method: 'post',
192 + data: data
193 + })
194 +}
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -7,16 +7,6 @@ let ductLabels = { ...@@ -7,16 +7,6 @@ let ductLabels = {
7 "releasing": { 7 "releasing": {
8 "1": "正在释放" 8 "1": "正在释放"
9 }, 9 },
10 - "cargoAllocationDataStatus": {
11 - "已推送": "已推送",
12 - "不推送": "不推送",
13 - "已配": " ",
14 - "待推送": "待推送",
15 - "手动配舱": ' ',
16 - "已释放": ' ',
17 - "原航班配舱": ' ',
18 - "顺位配舱": ' ',
19 - },
20 }, 10 },
21 "menu": {//菜单设置 11 "menu": {//菜单设置
22 "menuType": { 12 "menuType": {
...@@ -49,6 +39,7 @@ let ductLabels = { ...@@ -49,6 +39,7 @@ let ductLabels = {
49 "needRequired": { 39 "needRequired": {
50 "1": "是", 40 "1": "是",
51 "0": "否", 41 "0": "否",
42 + "2": "未设置"
52 }, 43 },
53 "highLowPriceFlg": { 44 "highLowPriceFlg": {
54 "1": "开启", 45 "1": "开启",
...@@ -59,16 +50,71 @@ let ductLabels = { ...@@ -59,16 +50,71 @@ let ductLabels = {
59 "2": "否", 50 "2": "否",
60 }, 51 },
61 }, 52 },
62 - "logDmData": {//DM数据 53 + "flightRand": {//航班顺位设置
54 + "status": {
55 + "0": "执行中",
56 + "1": "有效",
57 + "3": "停用"
58 + }
59 + },
60 + "FlightAlloc": {//航班配舱设置
63 "status": { 61 "status": {
62 + "0": "无效",
63 + "1": "有效",
64 + "2": "配置中",
65 + "3": "停用"
66 + }
67 + },
68 + "logDmData": {//DM数据
69 + "statusDetailCode": {
64 "0": "未处理", 70 "0": "未处理",
65 - "1": "已处理", 71 + "1": "处理成功",
66 - "2": "无需处理", 72 + "2_1": "已处理(数据丢弃)",
67 - "3": "处理失败", 73 + "2_2": "已处理(数据丢弃)",
68 - "4": "校验不通过", 74 + "2_3": "已处理(数据丢弃)",
69 - "5": "数据不能被多次处理", 75 + "2_4": "已处理(数据丢弃)",
76 + "3_1": "已处理(异常处理)",
77 + "3_2": "处理失败(系统异常)",
78 + "3_3": "处理失败(系统异常)",
79 + "3_4": "处理失败(系统异常)",
80 + "4_1": "处理失败(数据异常)",
81 + "4_2": "处理失败(数据异常)",
82 + "4_3": "处理失败(其他系统异常)",
83 + "5": "处理失败(系统异常)",
70 "9": "处理中", 84 "9": "处理中",
71 }, 85 },
86 + "weatherGenerateWater": {
87 + "1": "是",
88 + "0": "否"
89 + },
90 + "sendLogSendResult": {
91 + "0": "未推",
92 + "1": "推送成功",
93 + "2": "推送失败"
94 + }
95 + },
96 + "weatherTable": {
97 + "highLowPriceFlg": {
98 + "1": "开启",
99 + "0": "关闭"
100 + },
101 + "operationSource": {
102 + "1": "pre-MD cutoff",
103 + "2": "航班迁转手动释放",
104 + "3": "预审不通过定时任务",
105 + "4": "自动配舱"
106 + },
107 + "weightMark": {
108 + "1": "增加",
109 + "-1": "减少"
110 + }
111 +
112 + },
113 + "preFlight": {//航班预审
114 + "status": {
115 + "0": "关闭",
116 + "1": "开启"
117 + }
72 } 118 }
73 } 119 }
74 120
......
This diff is collapsed. Click to expand it.
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
10 10
11 .wid95 { 11 .wid95 {
12 width: 95% !important; 12 width: 95% !important;
13 - } 13 +}
14 14
15 .wid90 { 15 .wid90 {
16 width: 90% !important; 16 width: 90% !important;
...@@ -80,13 +80,13 @@ ...@@ -80,13 +80,13 @@
80 margin-bottom: 20px; 80 margin-bottom: 20px;
81 } 81 }
82 82
83 - .m20 { 83 + .ml20 {
84 margin-left: 20px; 84 margin-left: 20px;
85 } 85 }
86 86
87 - // .el-dialog:not(.is-fullscreen) { 87 +// .el-dialog:not(.is-fullscreen) {
88 - // margin-top: 6vh !important; 88 +// margin-top: 6vh !important;
89 - // } 89 +// }
90 90
91 .el-table { 91 .el-table {
92 92
......
...@@ -26,9 +26,9 @@ html { ...@@ -26,9 +26,9 @@ html {
26 height: 100%; 26 height: 100%;
27 } 27 }
28 28
29 -input { 29 +// input {
30 - background-color: #fff !important; 30 +// background-color: #fff !important;
31 -} 31 +// }
32 32
33 *, 33 *,
34 *:before, 34 *:before,
...@@ -194,11 +194,12 @@ aside { ...@@ -194,11 +194,12 @@ aside {
194 z-index: 1000 !important; 194 z-index: 1000 !important;
195 } 195 }
196 196
197 - 197 +.el-table__body-wrapper,
198 -.el-table__body-wrapper { 198 +.el-textarea__inner,
199 +body {
199 &::-webkit-scrollbar { 200 &::-webkit-scrollbar {
200 - height: 7px;
201 width: 7px; 201 width: 7px;
202 + height: 7px;
202 } 203 }
203 204
204 &::-webkit-scrollbar-track { 205 &::-webkit-scrollbar-track {
...@@ -207,20 +208,33 @@ aside { ...@@ -207,20 +208,33 @@ aside {
207 208
208 &::-webkit-scrollbar-thumb { 209 &::-webkit-scrollbar-thumb {
209 background-color: #ccc; 210 background-color: #ccc;
211 + border-radius: 20px;
210 } 212 }
211 213
212 &::-webkit-scrollbar-thumb:hover { 214 &::-webkit-scrollbar-thumb:hover {
213 background-color: #409eff; 215 background-color: #409eff;
214 } 216 }
217 +
218 + &::-webkit-scrollbar-track-piece {
219 + background: #F2F6FC;
220 + }
215 } 221 }
216 222
217 -.el-scrollbar__wrap { 223 +.el-table__header-wrapper {
218 - &::-webkit-scrollbar { 224 + .has-gutter {
219 - height: 0px; 225 + .gutter {
220 - width: 0px; 226 + display: none !important;
227 + }
221 } 228 }
222 } 229 }
223 230
231 +// .el-scrollbar__wrap {
232 +// &::-webkit-scrollbar {
233 +// height: 7px;
234 +// width: 7px;
235 +// }
236 +// }
237 +
224 // 解决表格固定列问题 238 // 解决表格固定列问题
225 .el-table__fixed, 239 .el-table__fixed,
226 .el-table__fixed-right { 240 .el-table__fixed-right {
...@@ -248,3 +262,34 @@ aside { ...@@ -248,3 +262,34 @@ aside {
248 .el-table--scrollable-x:not(.el-table--scrollable-y) .el-table__fixed-right { 262 .el-table--scrollable-x:not(.el-table--scrollable-y) .el-table__fixed-right {
249 right: 0 !important; 263 right: 0 !important;
250 } 264 }
265 +
266 +.el-checkbox-group {
267 + .el-checkbox {
268 + width: 100%;
269 +
270 + .el-checkbox__input {
271 + top: -5px;
272 + }
273 +
274 + .el-checkbox__label {
275 + width: 90%;
276 + overflow: hidden;
277 + text-overflow: ellipsis;
278 + white-space: nowrap;
279 + }
280 + }
281 +}
282 +
283 +.el-transfer-panel__body {
284 + .el-checkbox-group {
285 + .el-checkbox {
286 + .el-checkbox__input {
287 + top: 6px !important;
288 + }
289 + }
290 + }
291 +}
292 +
293 +.el-select-dropdown {
294 + max-width: 300px;
295 +}
...\ No newline at end of file ...\ No newline at end of file
......
1 +<template>
2 + <div>
3 + <el-button v-if="buttonShow" class="mt5" size="mini" icon="el-icon-edit-outline" circle @click="visibleOpen">
4 + </el-button>
5 + <el-dialog title="表格显示设置" :visible.sync="open" width="40%" :close-on-click-modal="false" :show-close="false"
6 + append-to-body center>
7 + <div style="text-align: center">
8 + <el-transfer style="text-align: left; display: inline-block" :data="transferData"
9 + :right-default-checked="rightDefaultChecked" v-model="transferValue" :titles="transferTitle"
10 + :props="props" v-loading="transferLoading" @change="change" @right-check-change="rightCheckChange">
11 + <template slot="left-footer">
12 + <div></div>
13 + </template>
14 + <template slot="right-footer">
15 + <el-button style="margin-left:20px" type="primary" size="mini" icon="el-icon-top"
16 + :disabled="updisabled" @click="up">
17 + </el-button>
18 + <el-button type="primary" size="mini" icon="el-icon-bottom" :disabled="downdisabled"
19 + @click="down"></el-button>
20 + </template>
21 + </el-transfer>
22 + </div>
23 + <div slot="footer" class="dialog-footer">
24 + <el-button type="primary" :loading="loading" @click="submit">确 定</el-button>
25 + <el-button @click="close">取 消</el-button>
26 + </div>
27 + </el-dialog>
28 + </div>
29 +</template>
30 +
31 +<script>
32 +import { getHeaderOrder, saveTableHeader } from "@/api/system/user.js";
33 +
34 +export default {
35 + props: {
36 + tableName: {
37 + type: String,
38 + default: ''
39 + }
40 + },
41 + data() {
42 + return {
43 + transferData: [],//穿梭框数据
44 + transferValue: [],//已选择数据key
45 + rightDefaultChecked: [],//右侧复选框选中
46 + transferTitle: ['未显示列', '已显示列'],
47 + props: { key: 'id', label: 'columnChineseName' },
48 + open: false,
49 + loading: false,
50 + updisabled: true,
51 + downdisabled: true,
52 + buttonShow: true,
53 + transferLoading: false
54 + }
55 + },
56 + created() {
57 + if (this.$store.getters.tableHeader) {
58 + this.buttonShow = true
59 + } else {
60 + this.buttonShow = false
61 + }
62 + },
63 + watch: {
64 + open(val, oldVal) {
65 + if (val) {
66 + this.transferData = this.$store.getters.tableHeader[this.tableName]
67 + this.transferLoading = true
68 + // 获取用户显示表头
69 + getHeaderOrder(`tableName=${this.tableName}`).then(res => {
70 + this.transferLoading = false
71 + if (res.code == 200) {
72 + this.transferValue = res.data
73 + } else {
74 + this.msgwarning(res.msg)
75 + }
76 + }).catch(err => {
77 + this.transferLoading = false
78 + console.log(err)
79 + })
80 + }
81 + }
82 + },
83 + methods: {
84 + // 确定
85 + submit() {
86 + this.loading = true
87 + let obj = this.$store.getters.tableHeader
88 + // 保存设置
89 + saveTableHeader({ tableName: this.tableName, idList: this.transferValue }).then(res => {
90 + if (res.code === 200) {
91 + obj[this.tableName] = res.data
92 + this.$store.dispatch('SavetableHeader', obj)
93 + this.msgSuccess('操作成功')
94 + this.close(1)
95 + } else {
96 + this.msgWarning(res.msg)
97 + }
98 + this.$nextTick(() => {
99 + this.loading = false
100 + })
101 + }).catch(err => {
102 + this.loading = false
103 + console.log(err)
104 + })
105 + },
106 + //dialog开启
107 + visibleOpen() {
108 + this.open = true
109 + },
110 + // transferChange
111 + change(val) {
112 + let arr = []
113 + let status0 = []
114 + this.transferValue = val
115 + this.transferData.forEach((item, i) => {
116 + if (!this.transferValue.includes(item.id)) {
117 + status0.push(item)
118 + } else {
119 + this.transferValue.forEach((vals, index) => {
120 + if (vals == item.id) {
121 + arr.push(item)
122 + }
123 + })
124 + }
125 + })
126 + this.transferData = arr.concat(status0)
127 + this.rightDefaultChecked = []
128 + this.updisabled = true
129 + this.downdisabled = true
130 + },
131 + //右侧选中,上下移动按钮状态设置
132 + rightCheckChange(val) {
133 + this.rightDefaultChecked = val
134 + if (val.length == 1) {
135 + if (this.transferValue.length > 1) {
136 + this.transferValue.forEach((item, index) => {
137 + if (item === val[0]) {
138 + if (index === 0) {
139 + this.updisabled = true
140 + this.downdisabled = false
141 + } else if (index === this.transferValue.length - 1) {
142 + this.updisabled = false
143 + this.downdisabled = true
144 + } else {
145 + this.updisabled = false
146 + this.downdisabled = false
147 + }
148 + }
149 + })
150 + }
151 + } else {
152 + this.updisabled = true
153 + this.downdisabled = true
154 + }
155 + },
156 + //当前数据整理
157 + tableHeadersSort() {
158 + let arr = []
159 + let status0 = []
160 + this.transferData.forEach((item, i) => {
161 + if (!this.transferValue.includes(item.id)) {
162 + status0.push(item)
163 + } else {
164 + this.transferValue.forEach((val, index) => {
165 + if (val == item.id) {
166 + arr[index] = item
167 + }
168 + })
169 + }
170 + })
171 + arr = arr.concat(status0)
172 + this.transferData = arr
173 + },
174 + //右侧单条数据上移
175 + up() {
176 + if (!this.updisabled) {
177 + let str = ''
178 + this.transferValue.forEach((item, index) => {
179 + if (item == this.rightDefaultChecked[0]) {
180 + str = item
181 + this.transferValue[index] = this.transferValue[index - 1]
182 + this.transferValue[index - 1] = str
183 + return
184 + }
185 + })
186 + this.tableHeadersSort()
187 + this.rightCheckChange([str])
188 + }
189 + },
190 + //右侧单条数据下移
191 + down() {
192 + if (!this.downdisabled) {
193 + let str = ''
194 + let int = 1
195 + this.transferValue.forEach((item, index) => {
196 + if (item == this.rightDefaultChecked[0] && int === 1) {
197 + str = item
198 + this.transferValue[index] = this.transferValue[index + 1]
199 + this.transferValue[index + 1] = str
200 + int++
201 + return
202 + }
203 + })
204 + this.tableHeadersSort()
205 + this.rightCheckChange([str])
206 + }
207 + },
208 + //dialog关闭
209 + close(val) {
210 + this.rightDefaultChecked = []
211 + this.updisabled = true
212 + this.downdisabled = true
213 + this.open = false
214 + this.$emit('close', val)
215 + }
216 + }
217 +}
218 +</script>
219 +
220 +<style lang="scss">
221 +.el-transfer-panel__body.is-with-footer {
222 + padding-bottom: 0px;
223 + margin-bottom: 40px
224 +}
225 +
226 +.el-transfer {
227 + .el-transfer-panel {
228 + width: 220px;
229 +
230 + .el-transfer-panel__list {
231 + overflow-x: hidden;
232 + overflow-y: scroll;
233 + }
234 +
235 + .el-transfer-panel__list::-webkit-scrollbar {
236 + width: 5px;
237 + height: 5px;
238 + }
239 +
240 + .el-transfer-panel__list::-webkit-scrollbar-thumb {
241 + border-radius: 10px;
242 + -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
243 + background: rgba(0, 0, 0, 0.2);
244 + }
245 + }
246 +
247 + .el-transfer__buttons {
248 + .el-button {
249 + display: block;
250 + padding: 9px 15px;
251 + font-size: 12px;
252 + border-radius: 3px;
253 + }
254 +
255 + .el-button+.el-button {
256 + margin-left: 0px
257 + }
258 + }
259 +
260 +}
261 +</style>
...\ No newline at end of file ...\ No newline at end of file
1 <template> 1 <template>
2 - <div class="w-table" :class="{ 'w-table_moving': dragState.dragging }"> 2 + <div class="w-table w-table_moving">
3 <el-table :ref="tableName" :data="data" :border="border" :stripe="stripe" :size="size" :fit="fit" :indent="indent" 3 <el-table :ref="tableName" :data="data" :border="border" :stripe="stripe" :size="size" :fit="fit" :indent="indent"
4 :show-header="showHeader" :height="height" :highlight-current-row="highlightCurrentRow" :lazy="lazy" 4 :show-header="showHeader" :height="height" :highlight-current-row="highlightCurrentRow" :lazy="lazy"
5 :downShiftKey="shiftKey" :limitStart="limitStart" :row-key="rowKey" :default-expand-all="defaultExpandAll" 5 :downShiftKey="shiftKey" :limitStart="limitStart" :row-key="rowKey" :default-expand-all="defaultExpandAll"
6 - :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" v-loading="loading" 6 + :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" v-loading="loading" @sort-change="sortChange"
7 - :cell-class-name="cellClassName" :header-cell-class-name="headerCellClassName" @sort-change="sortChange"
8 @select="tableSelect" @select-all="tableSelectAll" @select-change="SelectChange"> 7 @select="tableSelect" @select-all="tableSelectAll" @select-change="SelectChange">
9 <!-- 多选框 --> 8 <!-- 多选框 -->
10 - <el-table-column v-if="selection" type="selection" width="50" align="center" :fixed="true"></el-table-column> 9 + <el-table-column v-if="selection" type="selection" width="50" :align="tableAlign" :fixed="selectFixed"
10 + :header-align="headerAlign">
11 + </el-table-column>
11 <!-- 序号 --> 12 <!-- 序号 -->
12 - <el-table-column v-if="order" type="index" width="70" align="center" :index="indexAdd" show-overflow-tooltip></el-table-column> 13 + <el-table-column v-if="order" label="序号" type="index" width="70" :align="tableAlign" :index="indexAdd"
13 - <template v-for="(item, index) in headerData" v-if="item.status == 1"> 14 + :header-align="headerAlign" show-overflow-tooltip>
15 + </el-table-column>
16 + <template v-for="(item, index) in headerData" :key="" v-if="item.status == 1">
14 <!-- 自定义插槽 --> 17 <!-- 自定义插槽 -->
15 - <el-table-column v-if="item.slot" :prop="item.value" :label="item.name" :width="item.width" :align="item.align" 18 + <el-table-column v-if="item.slot" :prop="item.columnName" :label="item.columnChineseName"
16 - :fixed="item.fixed ? item.fixed : false" :show-overflow-tooltip="showOverflowTooltip" 19 + :width="item.columnWidth" :align="tableAlign" :fixed="item.fixed ? item.fixed : false"
17 - :sortable="item.sorTable ? true : false" :formatter="formatter" header-align="center" 20 + :show-overflow-tooltip="showOverflowTooltip" :sortable="item.ext1 == 'sorTable' ? true : false"
18 - :sort-orders="['descending', 'ascending', null]" :slotHeader="slotHeader" :render-header="renderHeader" 21 + :formatter="formatter" :header-align="headerAlign" :column-key="index.toString()"
19 - :key="index"> 22 + :sort-orders="['descending', 'ascending', null]" :slotHeader="slotHeader" :key="item.columnName">
23 + <template slot="header" slot-scope="scope">
24 + <Tooltips :content="scope.column.label" :refName="scope.column.columnName"></Tooltips>
25 + </template>
20 <template slot-scope="scope"> 26 <template slot-scope="scope">
21 - <slot :name="item.value" :row="scope.row"></slot> 27 + <slot :name="item.columnName" :row="scope.row"></slot>
22 </template> 28 </template>
23 </el-table-column> 29 </el-table-column>
24 <!-- 隐藏行 --> 30 <!-- 隐藏行 -->
25 - <el-table-column v-else-if="item.expand" type="expand" :prop="item.value" :label="item.name" :index="item.index" 31 + <el-table-column v-else-if="item.expand" type="expand" :prop="item.columnName" :label="item.columnChineseName"
26 - :width="item.width" :align="item.align" :fixed="item.fixed ? item.fixed : false" 32 + :index="item.index" :width="item.columnWidth" :align="tableAlign" :fixed="item.fixed ? item.fixed : false"
27 - :sortable="item.sorTable ? true : false" :column-key="index.toString()" 33 + :sortable="item.ext1 == 'sorTable' ? true : false" :column-key="index.toString()"
28 - :show-overflow-tooltip="showOverflowTooltip" header-align="center" 34 + :show-overflow-tooltip="showOverflowTooltip" :header-align="headerAlign"
29 - :sort-orders="['descending', 'ascending', null]" :slotHeader="slotHeader" :render-header="renderHeader" 35 + :sort-orders="['descending', 'ascending', null]" :slotHeader="slotHeader" :formatter="formatter"
30 - :formatter="formatter" :key="item.index"> 36 + :key="item.index">
37 + <template slot="header" slot-scope="scope">
38 + <Tooltips :content="scope.column.label" :refName="scope.column.columnName"></Tooltips>
39 + </template>
31 <template slot-scope="scope"> 40 <template slot-scope="scope">
32 - <slot :name="item.value" :row="scope.row"></slot> 41 + <slot :name="item.columnName" :row="scope.row"></slot>
33 </template> 42 </template>
34 </el-table-column> 43 </el-table-column>
35 <!-- 默认数据 --> 44 <!-- 默认数据 -->
36 - <el-table-column v-else :prop="item.value" :label="item.name" :index="item.index" :width="item.width" 45 + <el-table-column v-else :prop="item.columnName" :label="item.columnChineseName" :index="item.index"
37 - :align="item.align" :fixed="item.fixed ? item.fixed : false" :sortable="item.sorTable ? true : false" 46 + :width="item.columnWidth" :align="tableAlign" :fixed="item.fixed ? item.fixed : false"
38 - :column-key="index.toString()" :show-overflow-tooltip="showOverflowTooltip" header-align="center" 47 + :sortable="item.ext1 == 'sorTable' ? true : false" :column-key="index.toString()"
39 - :sort-orders="['descending', 'ascending', null]" :slotHeader="slotHeader" :render-header="renderHeader" 48 + :show-overflow-tooltip="showOverflowTooltip" :header-align="headerAlign"
40 - :formatter="formatter" :key="item.id"> 49 + :sort-orders="['descending', 'ascending', null]" :slotHeader="slotHeader" :formatter="formatter"
50 + :key="item.id">
51 + <template slot="header" slot-scope="scope">
52 + <Tooltips :content="scope.column.label" :refName="scope.column.columnName"></Tooltips>
53 + </template>
41 </el-table-column> 54 </el-table-column>
42 </template> 55 </template>
43 <slot name="optionColumn"></slot> 56 <slot name="optionColumn"></slot>
...@@ -50,8 +63,7 @@ ...@@ -50,8 +63,7 @@
50 </template> 63 </template>
51 64
52 <script> 65 <script>
53 -import dictLabels from "../../assets/languages/dictLabels.js"; 66 +
54 -import { scrollTo } from "@/utils/scroll-to";
55 export default { 67 export default {
56 name: "Table", 68 name: "Table",
57 props: { 69 props: {
...@@ -81,6 +93,10 @@ export default { ...@@ -81,6 +93,10 @@ export default {
81 type: Boolean, 93 type: Boolean,
82 default: true, 94 default: true,
83 }, 95 },
96 + selectFixed: {
97 + type: Boolean,
98 + default: true
99 + },
84 size: { 100 size: {
85 type: String, 101 type: String,
86 default: "mini", 102 default: "mini",
...@@ -182,6 +198,14 @@ export default { ...@@ -182,6 +198,14 @@ export default {
182 type: String, 198 type: String,
183 default: 'total,prev, pager, next, jumper, ->, sizes' 199 default: 'total,prev, pager, next, jumper, ->, sizes'
184 }, 200 },
201 + tableAlign: {
202 + type: String,
203 + default: 'center'
204 + },
205 + headerAlign: {
206 + type: String,
207 + default: 'center'
208 + },
185 // treeProps: { 209 // treeProps: {
186 // type: Object, 210 // type: Object,
187 // default: { children: 'children', hasChildren: 'hasChildren' } 211 // default: { children: 'children', hasChildren: 'hasChildren' }
...@@ -202,19 +226,14 @@ export default { ...@@ -202,19 +226,14 @@ export default {
202 pageNum: 1, 226 pageNum: 1,
203 start: -1, 227 start: -1,
204 show: false, 228 show: false,
205 - dragState: {
206 - start: -9, // 起始元素的 index
207 - end: -9, // 移动鼠标时所覆盖的元素 index
208 - dragging: false, // 是否正在拖动
209 - direction: undefined, // 拖动方向
210 - },
211 //表头数据格式 229 //表头数据格式
212 // { 230 // {
213 - // name: "", 231 + // columnChineseName: "",
214 - // value: "", 232 + // columnName: "",
215 - // width: "", 233 + // columnWidth: "",
216 // align: "center", 234 // align: "center",
217 // sorTable: false, 235 // sorTable: false,
236 + // status: 1
218 // }, 237 // },
219 }; 238 };
220 }, 239 },
...@@ -243,7 +262,6 @@ export default { ...@@ -243,7 +262,6 @@ export default {
243 page: this.pageNum + 1, 262 page: this.pageNum + 1,
244 start: this.limitStart + this.limitSize, 263 start: this.limitStart + this.limitSize,
245 }); 264 });
246 - scrollTo(0, 800);
247 }, 265 },
248 //上一页 266 //上一页
249 prevClick() { 267 prevClick() {
...@@ -251,7 +269,6 @@ export default { ...@@ -251,7 +269,6 @@ export default {
251 page: this.pageNum - 1, 269 page: this.pageNum - 1,
252 start: this.limitStart - this.limitSiz, 270 start: this.limitStart - this.limitSiz,
253 }); 271 });
254 - scrollTo(0, 800);
255 }, 272 },
256 //某页 273 //某页
257 currentChange(val) { 274 currentChange(val) {
...@@ -259,7 +276,6 @@ export default { ...@@ -259,7 +276,6 @@ export default {
259 page: val, 276 page: val,
260 start: val > 1 ? (val - 1) * this.limitSize + 1 : val, 277 start: val > 1 ? (val - 1) * this.limitSize + 1 : val,
261 }); 278 });
262 - scrollTo(0, 800);
263 }, 279 },
264 //连续序号 280 //连续序号
265 indexAdd(index) { 281 indexAdd(index) {
...@@ -352,41 +368,12 @@ export default { ...@@ -352,41 +368,12 @@ export default {
352 } 368 }
353 }; 369 };
354 }, 370 },
355 - //自定义表头
356 - renderHeader(createElement, { column }) {
357 - return createElement(
358 - "div",
359 - {
360 - class: ["thead-cell"],
361 - },
362 - [
363 - // 添加 <a> 用于显示表头 label
364 - createElement("div", column.label),
365 - ]
366 - );
367 - },
368 - headerCellClassName({ column, columnIndex }) {
369 - let active =
370 - columnIndex - 1 === this.dragState.end
371 - ? `darg_active_${this.dragState.direction}`
372 - : "";
373 - let start = columnIndex - 1 === this.dragState.start ? `darg_start` : "";
374 - return `${active} ${start}`;
375 - },
376 -
377 - cellClassName({ column, columnIndex }) {
378 - return columnIndex - 1 === this.dragState.start ? `darg_start` : "";
379 - },
380 - //无限滚动
381 - infiniteScroll() {
382 -
383 - },
384 //数据格式化 371 //数据格式化
385 formatter(row, column, cellValue, index) { 372 formatter(row, column, cellValue, index) {
386 - if (dictLabels[this.ductName]) { 373 + if (this.dictLabels[this.ductName]) {
387 - if (dictLabels[this.ductName][column.property]) { 374 + if (this.dictLabels[this.ductName][column.property]) {
388 - if (dictLabels[this.ductName][column.property][cellValue]) { 375 + if (this.dictLabels[this.ductName][column.property][cellValue]) {
389 - return dictLabels[this.ductName][column.property][cellValue]; 376 + return this.dictLabels[this.ductName][column.property][cellValue];
390 } 377 }
391 } 378 }
392 } 379 }
...@@ -415,9 +402,21 @@ export default { ...@@ -415,9 +402,21 @@ export default {
415 background-color: #f3f3f3; 402 background-color: #f3f3f3;
416 } 403 }
417 404
418 - .el-table th { 405 +
406 + .el-table {
407 + th {
419 padding: 0; 408 padding: 0;
420 409
410 + .cell {
411 + min-width: 24px;
412 +
413 + .caret-wrapper {
414 + position: absolute;
415 + top: -20%;
416 + right: 3%;
417 + }
418 + }
419 +
421 .virtual { 420 .virtual {
422 position: absolute; 421 position: absolute;
423 display: block; 422 display: block;
...@@ -443,51 +442,9 @@ export default { ...@@ -443,51 +442,9 @@ export default {
443 } 442 }
444 } 443 }
445 } 444 }
446 -
447 - .cell {
448 - min-width: 24px;
449 -
450 - .thead-cell {
451 - width: 100%;
452 - padding: 0;
453 - display: inline-flex;
454 - flex-direction: column;
455 - align-items: left;
456 - overflow: initial;
457 -
458 -
459 - &:before {
460 - content: "";
461 - position: absolute;
462 - top: 0;
463 - left: 0;
464 - bottom: 0;
465 - right: 0;
466 } 445 }
467 446
468 - div {
469 - overflow: hidden;
470 - text-overflow: ellipsis;
471 - white-space: nowrap;
472 - }
473 - }
474 -
475 - .caret-wrapper {
476 - position: absolute;
477 - top: -20%;
478 - right: 3%;
479 - }
480 - }
481 -
482 - &.w-table_moving {
483 - .el-table th .thead-cell {
484 - cursor: move !important;
485 - }
486 447
487 - .el-table__fixed {
488 - cursor: not-allowed;
489 - }
490 - }
491 } 448 }
492 449
493 .tableList { 450 .tableList {
......
1 +<template>
2 + <div class="text-tooltip">
3 + <el-tooltip class="item" effect="dark" :disabled="isShowTooltip" :content="content" :placement="placement">
4 + <div class="over-flow" @mouseover="onMouseOver(refName)">
5 + <span :ref="refName">{{ content }}</span>
6 + </div>
7 + </el-tooltip>
8 + </div>
9 +</template>
10 +
11 +<script>
12 +export default {
13 + name: 'textTooltip',
14 + props: {
15 + // 显示的文字内容
16 + content: {
17 + type: String,
18 + default: () => {
19 + return ''
20 + }
21 + },
22 + refName: {
23 + type: String,
24 + default: () => {
25 + return ''
26 + }
27 + },
28 + placement: {
29 + type: String,
30 + default: 'top'
31 + }
32 + },
33 + data() {
34 + return {
35 + isShowTooltip: true
36 + }
37 + },
38 + methods: {
39 + onMouseOver(str) {
40 + if (this.$refs[str]) {
41 + const parentWidth = this.$refs[str].parentNode.offsetWidth;
42 + const contentWidth = this.$refs[str].offsetWidth;
43 + // 判断是否开启tooltip功能
44 + if (contentWidth > parentWidth) {
45 + this.isShowTooltip = false;
46 + } else {
47 + this.isShowTooltip = true;
48 + }
49 + }
50 + }
51 + }
52 +}
53 +</script>
54 +
55 +<style scoped>
56 +.over-flow {
57 + overflow: hidden;
58 + white-space: nowrap;
59 + text-overflow: ellipsis;
60 +}
61 +</style>
...\ No newline at end of file ...\ No newline at end of file
...@@ -11,16 +11,20 @@ import App from './App' ...@@ -11,16 +11,20 @@ import App from './App'
11 import store from './store' 11 import store from './store'
12 import router from './router' 12 import router from './router'
13 import permission from './directive/permission' 13 import permission from './directive/permission'
14 -import i18n from './i18n/index'
15 14
16 import './assets/icons' // icon 15 import './assets/icons' // icon
17 import './permission' // permission control 16 import './permission' // permission control
18 import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, download, handleTree, upCase, nowDate } from "@/utils/FedEx"; 17 import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, download, handleTree, upCase, nowDate } from "@/utils/FedEx";
18 +import { isArray } from "@/utils/validate";
19 import Pagination from "@/components/Pagination"; 19 import Pagination from "@/components/Pagination";
20 // 自定义表格工具扩展 20 // 自定义表格工具扩展
21 import RightToolbar from "@/components/RightToolbar" 21 import RightToolbar from "@/components/RightToolbar"
22 import Table from "@/components/Table" 22 import Table from "@/components/Table"
23 +import Tooltip from "@/components/Tooltip"
24 +import HeaderSetting from "@/components/HeaderSetting"
23 import tableHeaders from '@/assets/languages/tableHeaders' 25 import tableHeaders from '@/assets/languages/tableHeaders'
26 +import dictLabels from "@/assets/languages/dictLabels.js";
27 +import settings from './settings.js'
24 28
25 // 全局方法挂载 29 // 全局方法挂载
26 Vue.prototype.parseTime = parseTime 30 Vue.prototype.parseTime = parseTime
...@@ -32,7 +36,10 @@ Vue.prototype.download = download ...@@ -32,7 +36,10 @@ Vue.prototype.download = download
32 Vue.prototype.handleTree = handleTree 36 Vue.prototype.handleTree = handleTree
33 Vue.prototype.upCase = upCase 37 Vue.prototype.upCase = upCase
34 Vue.prototype.nowDate = nowDate 38 Vue.prototype.nowDate = nowDate
39 +Vue.prototype.isArray = isArray
35 Vue.prototype.tableHeaders = tableHeaders 40 Vue.prototype.tableHeaders = tableHeaders
41 +Vue.prototype.dictLabels = dictLabels
42 +Vue.prototype.settings = settings
36 43
37 Vue.prototype.msgSuccess = function (msg) { 44 Vue.prototype.msgSuccess = function (msg) {
38 this.$message({ showClose: true, message: msg, type: "success" }); 45 this.$message({ showClose: true, message: msg, type: "success" });
...@@ -54,6 +61,8 @@ Vue.prototype.msgInfo = function (msg) { ...@@ -54,6 +61,8 @@ Vue.prototype.msgInfo = function (msg) {
54 Vue.component('Pagination', Pagination) 61 Vue.component('Pagination', Pagination)
55 Vue.component('RightToolbar', RightToolbar) 62 Vue.component('RightToolbar', RightToolbar)
56 Vue.component('Tables', Table) 63 Vue.component('Tables', Table)
64 +Vue.component('Tooltips', Tooltip)
65 +Vue.component('HeaderSetting', HeaderSetting)
57 66
58 Vue.use(permission) 67 Vue.use(permission)
59 /** 68 /**
...@@ -65,6 +74,13 @@ Vue.use(permission) ...@@ -65,6 +74,13 @@ Vue.use(permission)
65 * please remove it before going online! ! ! 74 * please remove it before going online! ! !
66 */ 75 */
67 76
77 +window.addEventListener("keydown", (code) => {
78 + if (code.keyCode === 13) {
79 + return false
80 + }
81 +});
82 +
83 +
68 Vue.use(Element, { 84 Vue.use(Element, {
69 //size: Cookies.get('size') || 'medium' // set element-ui default size 85 //size: Cookies.get('size') || 'medium' // set element-ui default size
70 // size: localStorage.getItem('size') || 'medium' // set element-ui default size 86 // size: localStorage.getItem('size') || 'medium' // set element-ui default size
...@@ -76,6 +92,5 @@ new Vue({ ...@@ -76,6 +92,5 @@ new Vue({
76 el: '#app', 92 el: '#app',
77 router, 93 router,
78 store, 94 store,
79 - i18n,
80 render: h => h(App) 95 render: h => h(App)
81 }) 96 })
......
1 import router from './router' 1 import router from './router'
2 import store from './store' 2 import store from './store'
3 import { Message } from 'element-ui' 3 import { Message } from 'element-ui'
4 -//import NProgress from 'nprogress'
5 -//import 'nprogress/nprogress.css'
6 import { getToken } from '@/utils/auth' 4 import { getToken } from '@/utils/auth'
7 5
8 -//NProgress.configure({ showSpinner: false })
9 -
10 const whiteList = ['/login', '/auth-redirect', '/bind', '/register'] 6 const whiteList = ['/login', '/auth-redirect', '/bind', '/register']
11 7
12 router.beforeEach((to, from, next) => { 8 router.beforeEach((to, from, next) => {
13 - //NProgress.start()
14 if (getToken()) { 9 if (getToken()) {
15 /* has token*/ 10 /* has token*/
16 if (to.path === '/login') { 11 if (to.path === '/login') {
17 next({ path: '/' }) 12 next({ path: '/' })
18 - //NProgress.done()
19 } else { 13 } else {
20 if (store.getters.roles.length === 0) { 14 if (store.getters.roles.length === 0) {
21 // 判断当前用户是否已拉取完user_info信息 15 // 判断当前用户是否已拉取完user_info信息
22 store.dispatch('GetInfo').then(() => { 16 store.dispatch('GetInfo').then(() => {
17 + //获取用户表头
18 + store.dispatch('GetTableHeaders').then(() => {
23 store.dispatch('GenerateRoutes').then(accessRoutes => { 19 store.dispatch('GenerateRoutes').then(accessRoutes => {
24 // 根据roles权限生成可访问的路由表 20 // 根据roles权限生成可访问的路由表
25 router.addRoutes(accessRoutes) // 动态添加可访问路由表 21 router.addRoutes(accessRoutes) // 动态添加可访问路由表
26 next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 22 next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
27 }) 23 })
24 + })
28 }).catch(err => { 25 }).catch(err => {
29 store.dispatch('LogOut').then(() => { 26 store.dispatch('LogOut').then(() => {
30 Message.error(err) 27 Message.error(err)
...@@ -42,11 +39,9 @@ router.beforeEach((to, from, next) => { ...@@ -42,11 +39,9 @@ router.beforeEach((to, from, next) => {
42 next() 39 next()
43 } else { 40 } else {
44 next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 41 next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
45 - //NProgress.done()
46 } 42 }
47 } 43 }
48 }) 44 })
49 45
50 router.afterEach(() => { 46 router.afterEach(() => {
51 - //NProgress.done()
52 }) 47 })
......
...@@ -42,7 +42,7 @@ module.exports = { ...@@ -42,7 +42,7 @@ module.exports = {
42 /** 42 /**
43 * logout 43 * logout
44 */ 44 */
45 - logoutURL: 'http://47.103.140.98/test', 45 + logoutURL: '/test/index',
46 46
47 /** 47 /**
48 * 后端接口 48 * 后端接口
...@@ -58,5 +58,5 @@ module.exports = { ...@@ -58,5 +58,5 @@ module.exports = {
58 /** 58 /**
59 * 版本号 59 * 版本号
60 */ 60 */
61 - version: 'version:1.3.0' 61 + version: 'version:1.4.0'
62 } 62 }
......
...@@ -17,5 +17,6 @@ const getters = { ...@@ -17,5 +17,6 @@ const getters = {
17 defaultRoutes: state => state.permission.defaultRoutes, 17 defaultRoutes: state => state.permission.defaultRoutes,
18 sidebarRouters: state => state.permission.sidebarRouters, 18 sidebarRouters: state => state.permission.sidebarRouters,
19 filghtAllData: state => state.permission.filghtAllData, 19 filghtAllData: state => state.permission.filghtAllData,
20 + tableHeader: state => state.user.tableHeader
20 } 21 }
21 export default getters 22 export default getters
......
...@@ -15,15 +15,12 @@ const mutations = { ...@@ -15,15 +15,12 @@ const mutations = {
15 state.sidebar.opened = !state.sidebar.opened 15 state.sidebar.opened = !state.sidebar.opened
16 state.sidebar.withoutAnimation = false 16 state.sidebar.withoutAnimation = false
17 if (state.sidebar.opened) { 17 if (state.sidebar.opened) {
18 - //Cookies.set('sidebarStatus', 1)
19 localStorage.setItem('sidebarStatus', 1) 18 localStorage.setItem('sidebarStatus', 1)
20 } else { 19 } else {
21 - Cookies.set('sidebarStatus', 0)
22 localStorage.setItem('sidebarStatus', 0) 20 localStorage.setItem('sidebarStatus', 0)
23 } 21 }
24 }, 22 },
25 CLOSE_SIDEBAR: (state, withoutAnimation) => { 23 CLOSE_SIDEBAR: (state, withoutAnimation) => {
26 - //Cookies.set('sidebarStatus', 0)
27 localStorage.setItem('sidebarStatus', 0) 24 localStorage.setItem('sidebarStatus', 0)
28 state.sidebar.opened = false 25 state.sidebar.opened = false
29 state.sidebar.withoutAnimation = withoutAnimation 26 state.sidebar.withoutAnimation = withoutAnimation
...@@ -33,7 +30,6 @@ const mutations = { ...@@ -33,7 +30,6 @@ const mutations = {
33 }, 30 },
34 SET_SIZE: (state, size) => { 31 SET_SIZE: (state, size) => {
35 state.size = size 32 state.size = size
36 - //Cookies.set('size', size)
37 localStorage.setItem('size', size) 33 localStorage.setItem('size', size)
38 } 34 }
39 } 35 }
......
1 import { login, logout, getInfo } from '@/api/login' 1 import { login, logout, getInfo } from '@/api/login'
2 +import { getTableHeader } from '@/api/menu'
2 import { changeCurrentPort } from "@/api/system/user.js"; 3 import { changeCurrentPort } from "@/api/system/user.js";
3 import { getToken, setToken, removeToken } from '@/utils/auth' 4 import { getToken, setToken, removeToken } from '@/utils/auth'
4 import { Message } from 'element-ui' 5 import { Message } from 'element-ui'
...@@ -9,9 +10,10 @@ const user = { ...@@ -9,9 +10,10 @@ const user = {
9 name: '', 10 name: '',
10 avatar: '', 11 avatar: '',
11 activePortName: '', 12 activePortName: '',
12 - portNames:[], 13 + portNames: [],
13 roles: [], 14 roles: [],
14 - permissions: [] 15 + permissions: [],
16 + tableHeader: null
15 }, 17 },
16 18
17 mutations: { 19 mutations: {
...@@ -28,7 +30,7 @@ const user = { ...@@ -28,7 +30,7 @@ const user = {
28 state.activePortName = activePortName 30 state.activePortName = activePortName
29 sessionStorage.setItem('portName', activePortName) 31 sessionStorage.setItem('portName', activePortName)
30 }, 32 },
31 - SET_PORTNAMES:(state,portNames)=>{ 33 + SET_PORTNAMES: (state, portNames) => {
32 state.portNames = portNames 34 state.portNames = portNames
33 }, 35 },
34 SET_ROLES: (state, roles) => { 36 SET_ROLES: (state, roles) => {
...@@ -36,7 +38,10 @@ const user = { ...@@ -36,7 +38,10 @@ const user = {
36 }, 38 },
37 SET_PERMISSIONS: (state, permissions) => { 39 SET_PERMISSIONS: (state, permissions) => {
38 state.permissions = permissions 40 state.permissions = permissions
39 - } 41 + },
42 + SAVE_TABLEHEADER: (state, table) => {
43 + state.tableHeader = table
44 + },
40 }, 45 },
41 46
42 actions: { 47 actions: {
...@@ -49,7 +54,7 @@ const user = { ...@@ -49,7 +54,7 @@ const user = {
49 54
50 return new Promise((resolve, reject) => { 55 return new Promise((resolve, reject) => {
51 login(username, password, rememberMe).then(res => { 56 login(username, password, rememberMe).then(res => {
52 - if(res.code === 200){ 57 + if (res.code === 200) {
53 setToken(res.data) 58 setToken(res.data)
54 commit('SET_TOKEN', res.data) 59 commit('SET_TOKEN', res.data)
55 } 60 }
...@@ -60,18 +65,38 @@ const user = { ...@@ -60,18 +65,38 @@ const user = {
60 }) 65 })
61 }, 66 },
62 67
68 + //获取表头
69 + GetTableHeaders({ commit, state }) {
70 + return new Promise((resolve, reject) => {
71 + getTableHeader().then(res => {
72 + if (res.code === 200) {
73 + commit('SAVE_TABLEHEADER', res.data)
74 + }
75 + resolve(res)
76 + }).catch(err => {
77 + reject(err)
78 + })
79 + })
80 + },
81 +
82 + //保存表头
83 + SavetableHeader({ commit, state }, data) {
84 + commit('SAVE_TABLEHEADER', data)
85 + },
86 +
63 // 获取用户信息 87 // 获取用户信息
64 GetInfo({ commit, state }) { 88 GetInfo({ commit, state }) {
65 return new Promise((resolve, reject) => { 89 return new Promise((resolve, reject) => {
66 getInfo().then(res => { 90 getInfo().then(res => {
91 + if (res.code === 200) {
67 const user = res.data.user 92 const user = res.data.user
68 const avatar = user.avatar == "" ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar; 93 const avatar = user.avatar == "" ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
69 let ports = []; 94 let ports = [];
70 - if(user.portName){ 95 + if (user.portName) {
71 ports = user.portName.split(','); 96 ports = user.portName.split(',');
72 - commit('SET_PORTNAMES',ports) 97 + commit('SET_PORTNAMES', ports)
73 - commit('SET_ACTIVEPORTNAME', sessionStorage.getItem('portName')?sessionStorage.getItem('portName'):state.portNames[0]) 98 + commit('SET_ACTIVEPORTNAME', sessionStorage.getItem('portName') ? sessionStorage.getItem('portName') : state.portNames[0])
74 - }else{ 99 + } else {
75 Message({ 100 Message({
76 message: "未找到口岸信息!请确认后再登录", 101 message: "未找到口岸信息!请确认后再登录",
77 type: 'error' 102 type: 'error'
...@@ -87,6 +112,7 @@ const user = { ...@@ -87,6 +112,7 @@ const user = {
87 commit('SET_NAME', user.userName) 112 commit('SET_NAME', user.userName)
88 commit('SET_AVATAR', avatar) 113 commit('SET_AVATAR', avatar)
89 resolve(res) 114 resolve(res)
115 + }
90 }).catch(error => { 116 }).catch(error => {
91 reject(error) 117 reject(error)
92 }) 118 })
...@@ -96,12 +122,12 @@ const user = { ...@@ -96,12 +122,12 @@ const user = {
96 //切换口岸 122 //切换口岸
97 changePort({ commit }, portName) { 123 changePort({ commit }, portName) {
98 return new Promise((resolve, reject) => { 124 return new Promise((resolve, reject) => {
99 - changeCurrentPort({ portName: portName }).then(res=>{ 125 + changeCurrentPort({ portName: portName }).then(res => {
100 - if(res.code === 200){ 126 + if (res.code === 200) {
101 - commit('SET_ACTIVEPORTNAME',portName) 127 + commit('SET_ACTIVEPORTNAME', portName)
102 } 128 }
103 resolve(res) 129 resolve(res)
104 - }).catch(err=>{ 130 + }).catch(err => {
105 reject(err) 131 reject(err)
106 }) 132 })
107 }) 133 })
...@@ -111,7 +137,6 @@ const user = { ...@@ -111,7 +137,6 @@ const user = {
111 LogOut({ commit, state }) { 137 LogOut({ commit, state }) {
112 return new Promise((resolve, reject) => { 138 return new Promise((resolve, reject) => {
113 logout(state.token).then(() => { 139 logout(state.token).then(() => {
114 - // window.location.href = "https://sso.secure.fedex.com/logout";//wsso系统跳转
115 commit('SET_TOKEN', '') 140 commit('SET_TOKEN', '')
116 commit('SET_ROLES', []) 141 commit('SET_ROLES', [])
117 commit('SET_PERMISSIONS', []) 142 commit('SET_PERMISSIONS', [])
...@@ -126,7 +151,6 @@ const user = { ...@@ -126,7 +151,6 @@ const user = {
126 // 前端 登出 151 // 前端 登出
127 FedLogOut({ commit }) { 152 FedLogOut({ commit }) {
128 return new Promise(resolve => { 153 return new Promise(resolve => {
129 - // window.location.href = "https://sso.secure.fedex.com/logout";//wsso系统跳转
130 commit('SET_TOKEN', '') 154 commit('SET_TOKEN', '')
131 removeToken() 155 removeToken()
132 resolve() 156 resolve()
......
...@@ -177,7 +177,7 @@ export function handleTree(data, id, parentId, children) { ...@@ -177,7 +177,7 @@ export function handleTree(data, id, parentId, children) {
177 177
178 //字符串英文转大写,;转英文; 178 //字符串英文转大写,;转英文;
179 export function upCase(str) { 179 export function upCase(str) {
180 - let newStr = str.replace(/;/g, ";").toUpperCase(); 180 + let newStr = str.replace(/;/g, ";").toUpperCase().trim();
181 return newStr; 181 return newStr;
182 } 182 }
183 183
......
...@@ -10,7 +10,7 @@ axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' ...@@ -10,7 +10,7 @@ axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
10 const service = axios.create({ 10 const service = axios.create({
11 // axios中请求配置有baseURL选项,表示请求URL公共部分 11 // axios中请求配置有baseURL选项,表示请求URL公共部分
12 //baseURL: process.env.VUE_APP_BASE_API, 12 //baseURL: process.env.VUE_APP_BASE_API,
13 - baseURL: settings.baseURL, //阿里云服务器 13 + baseURL: settings.baseURL,
14 14
15 // 超时 15 // 超时
16 timeout: 30000 16 timeout: 30000
...@@ -61,8 +61,9 @@ service.interceptors.response.use(res => { ...@@ -61,8 +61,9 @@ service.interceptors.response.use(res => {
61 const msg = errorCode[code] || res.data.msg || errorCode['default'] 61 const msg = errorCode[code] || res.data.msg || errorCode['default']
62 if (code === 301) { 62 if (code === 301) {
63 MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { 63 MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
64 + closeOnClickModal: false,
65 + showCancelButton: false,
64 confirmButtonText: '重新登录', 66 confirmButtonText: '重新登录',
65 - cancelButtonText: '取消',
66 type: 'warning' 67 type: 'warning'
67 } 68 }
68 ).then(() => { 69 ).then(() => {
......
...@@ -6,9 +6,7 @@ const mimeMap = { ...@@ -6,9 +6,7 @@ const mimeMap = {
6 xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 6 xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
7 zip: 'application/zip' 7 zip: 'application/zip'
8 } 8 }
9 -// const baseUrl = 'https://imacuat.zmd.apac.fedex.com/iMAC' //uat服务器
10 const baseUrl = settings.downLoadURL //阿里云服务器 9 const baseUrl = settings.downLoadURL //阿里云服务器
11 -// const baseUrl = 'http://192.168.1.133:7001/iMAC' //测试服务器
12 10
13 export function downLoadZip(str, filename) { 11 export function downLoadZip(str, filename) {
14 var url = baseUrl + str 12 var url = baseUrl + str
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
19 <el-select placeholder="不限" v-model="formData.customsReceiptStatusId" class="formItem" multiple clearable> 19 <el-select placeholder="不限" v-model="formData.customsReceiptStatusId" class="formItem" multiple clearable>
20 <el-option v-for="item in selectData.findConditionData 20 <el-option v-for="item in selectData.findConditionData
21 .cargoCustomsReturnStatus" :label="item.chineseName" :value="item.id" :key="item.id"> 21 .cargoCustomsReturnStatus" :label="item.chineseName" :value="item.id" :key="item.id">
22 + <Tooltips :content="item.chineseName" :refName="item.code"></Tooltips>
22 </el-option> 23 </el-option>
23 </el-select> 24 </el-select>
24 </el-form-item> 25 </el-form-item>
...@@ -45,12 +46,6 @@ ...@@ -45,12 +46,6 @@
45 </el-form-item> 46 </el-form-item>
46 </el-col> 47 </el-col>
47 <el-col :span="6"> 48 <el-col :span="6">
48 - <el-form-item label="运单号">
49 - <el-input class="formItem" type="textarea" :rows="1" placeholder="请输入运单号(回车分割)" :maxlength="12000"
50 - v-model="formData.waybillNo" clearable></el-input>
51 - </el-form-item>
52 - </el-col>
53 - <el-col :span="6">
54 <el-form-item label="申报类别"> 49 <el-form-item label="申报类别">
55 <el-select placeholder="不限" v-model="formData.typeId" class="formItem" clearable> 50 <el-select placeholder="不限" v-model="formData.typeId" class="formItem" clearable>
56 <el-option v-for="item in selectData.findConditionData.cargoType" :label="item.chineseName" 51 <el-option v-for="item in selectData.findConditionData.cargoType" :label="item.chineseName"
...@@ -64,34 +59,22 @@ ...@@ -64,34 +59,22 @@
64 <el-select placeholder="不限" v-model="formData.serviceTypeId" class="formItem" clearable> 59 <el-select placeholder="不限" v-model="formData.serviceTypeId" class="formItem" clearable>
65 <el-option v-for="item in selectData.findConditionData.cargoServiceType" :label="item.chineseName" 60 <el-option v-for="item in selectData.findConditionData.cargoServiceType" :label="item.chineseName"
66 :value="item.id" :key="item.id"> 61 :value="item.id" :key="item.id">
62 + <Tooltips :content="item.chineseName" :refName="item.code"></Tooltips>
67 </el-option> 63 </el-option>
68 </el-select> 64 </el-select>
69 </el-form-item> 65 </el-form-item>
70 </el-col> 66 </el-col>
71 <el-col :span="6"> 67 <el-col :span="6">
72 - <el-form-item label="URSA">
73 - <el-input class="formItem" type="textarea" placeholder="S_;P_;E2" v-model="ursa" :rows="1" clearable>
74 - </el-input>
75 - </el-form-item>
76 - </el-col>
77 - <el-col :span="6">
78 - <el-form-item label="站点">
79 - <el-input class="formItem" type="textarea" placeholder="PVG;PEK" v-model="siteName" :rows="1" clearable>
80 - </el-input>
81 - </el-form-item>
82 - </el-col>
83 - <el-col :span="6">
84 <el-form-item label="重量区间"> 68 <el-form-item label="重量区间">
85 <el-row> 69 <el-row>
86 <el-col :span="10"> 70 <el-col :span="10">
87 - <el-input-number class="formItem wid100" size="mini" v-model="formData.minWeight" :controls="false" 71 + <el-input-number class="wid100" size="mini" v-model="formData.minWeight" :controls="false" :min="0"
88 - :min="0" :precision="2" clearable></el-input-number> 72 + :precision="2" clearable></el-input-number>
89 </el-col> 73 </el-col>
90 <el-col :span="1"></el-col> 74 <el-col :span="1"></el-col>
91 - <el-col class="line" :span="2">-</el-col> 75 + <el-col class="line" :span="3">-</el-col>
92 - <el-col :span="1"></el-col>
93 <el-col :span="10"> 76 <el-col :span="10">
94 - <el-input-number class="formItem wid100" size="mini" v-model="formData.maxWeight" :controls="false" 77 + <el-input-number class="wid100" size="mini" v-model="formData.maxWeight" :controls="false"
95 :min="formData.minWeight" :precision="2" clearable></el-input-number> 78 :min="formData.minWeight" :precision="2" clearable></el-input-number>
96 </el-col> 79 </el-col>
97 </el-row> 80 </el-row>
...@@ -105,8 +88,7 @@ ...@@ -105,8 +88,7 @@
105 :min="0" clearable></el-input-number> 88 :min="0" clearable></el-input-number>
106 </el-col> 89 </el-col>
107 <el-col :span="1"></el-col> 90 <el-col :span="1"></el-col>
108 - <el-col class="line" :span="2">-</el-col> 91 + <el-col class="line" :span="3">-</el-col>
109 - <el-col :span="1"></el-col>
110 <el-col :span="10"> 92 <el-col :span="10">
111 <el-input-number class="formItem wid100" size="mini" v-model="formData.maxNumber" :controls="false" 93 <el-input-number class="formItem wid100" size="mini" v-model="formData.maxNumber" :controls="false"
112 :min="formData.minNumber" clearable></el-input-number> 94 :min="formData.minNumber" clearable></el-input-number>
...@@ -121,14 +103,37 @@ ...@@ -121,14 +103,37 @@
121 </el-date-picker> 103 </el-date-picker>
122 </el-form-item> 104 </el-form-item>
123 </el-col> 105 </el-col>
106 + <el-col :span="6">
107 + <el-form-item label="URSA">
108 + <el-input class="formItem" type="textarea" placeholder="S_;P_;E2" v-model="ursa" :rows="1" clearable>
109 + </el-input>
110 + </el-form-item>
111 + </el-col>
112 + <el-col :span="6">
113 + <el-form-item label="站点">
114 + <el-input class="formItem" type="textarea" placeholder="PVG;PEK" v-model="siteName" :rows="1" clearable>
115 + </el-input>
116 + </el-form-item>
117 + </el-col>
118 + <el-col :span="6">
119 + <el-form-item label="运单号">
120 + <el-input class="formItem" type="textarea" :rows="4" placeholder="请输入运单号(回车分割)" :maxlength="12000"
121 + v-model="formData.waybillNo" clearable></el-input>
122 + </el-form-item>
123 + </el-col>
124 <el-col :span="24"> 124 <el-col :span="24">
125 <el-form-item label="Handling Code"> 125 <el-form-item label="Handling Code">
126 <el-empty description="暂无数据" v-if=" 126 <el-empty description="暂无数据" v-if="
127 !selectData.HandlingCode || selectData.HandlingCode.length == 0 127 !selectData.HandlingCode || selectData.HandlingCode.length == 0
128 "></el-empty> 128 "></el-empty>
129 <el-checkbox-group v-model="handingCodes" v-else> 129 <el-checkbox-group v-model="handingCodes" v-else>
130 - <el-checkbox v-for="item in selectData.HandlingCode" :label="item.chineseName" v-model="item.englishName" 130 + <el-row>
131 - :key="item.id"></el-checkbox> 131 + <el-col :span="2" v-for="item in selectData.HandlingCode" :key="item.id">
132 + <el-checkbox :label="item.chineseName" v-model="item.chineseName">
133 + <Tooltips :content="item.chineseName" :refName="item.code"></Tooltips>
134 + </el-checkbox>
135 + </el-col>
136 + </el-row>
132 </el-checkbox-group> 137 </el-checkbox-group>
133 </el-form-item> 138 </el-form-item>
134 </el-col> 139 </el-col>
...@@ -138,8 +143,13 @@ ...@@ -138,8 +143,13 @@
138 !selectData.SubCategory || selectData.SubCategory.length == 0 143 !selectData.SubCategory || selectData.SubCategory.length == 0
139 "></el-empty> 144 "></el-empty>
140 <el-checkbox-group v-model="subCategorys" v-else> 145 <el-checkbox-group v-model="subCategorys" v-else>
141 - <el-checkbox v-for="item in selectData.SubCategory" :label="item.chineseName" v-model="item.englishName" 146 + <el-row>
142 - :key="item.id"></el-checkbox> 147 + <el-col :span="2" v-for="item in selectData.SubCategory" :key="item.id">
148 + <el-checkbox :label="item.chineseName" v-model="item.chineseName">
149 + <Tooltips :content="item.chineseName" :refName="item.code"></Tooltips>
150 + </el-checkbox>
151 + </el-col>
152 + </el-row>
143 </el-checkbox-group> 153 </el-checkbox-group>
144 </el-form-item> 154 </el-form-item>
145 </el-col> 155 </el-col>
...@@ -162,6 +172,8 @@ ...@@ -162,6 +172,8 @@
162 <span style="paddingRight: 50px">总重量:{{ allWeight }}</span> 172 <span style="paddingRight: 50px">总重量:{{ allWeight }}</span>
163 <span>总件数:{{ allQty }}</span> 173 <span>总件数:{{ allQty }}</span>
164 </div> 174 </div>
175 + <HeaderSetting class="mr20" tableName="allocationCargo" style="float: right" @close="headerSetClose">
176 + </HeaderSetting>
165 </div> 177 </div>
166 </el-form> 178 </el-form>
167 <Tables ref="newTables" ductName="cargo" :data="tableData" :headerData="tableHeader" :totalCount="totalCount" 179 <Tables ref="newTables" ductName="cargo" :data="tableData" :headerData="tableHeader" :totalCount="totalCount"
...@@ -208,7 +220,7 @@ export default { ...@@ -208,7 +220,7 @@ export default {
208 customsReceiptStatusId: null, 220 customsReceiptStatusId: null,
209 accsPool: "OSPR" 221 accsPool: "OSPR"
210 }, //查询数据 222 }, //查询数据
211 - tableHeader: this.tableHeaders['cargoAllocation'], //表头数据 223 + tableHeader: [], //表头数据
212 tableData: [], //表格数据 224 tableData: [], //表格数据
213 tableSelection: [], //选中数据 225 tableSelection: [], //选中数据
214 selectData: { 226 selectData: {
...@@ -240,6 +252,11 @@ export default { ...@@ -240,6 +252,11 @@ export default {
240 }; 252 };
241 }, 253 },
242 created() { 254 created() {
255 + if (this.$store.getters.tableHeader) {
256 + this.tableHeader = this.$store.getters.tableHeader['allocationCargo']
257 + } else {
258 + this.tableHeader = this.tableHeaders['allocationCargo']
259 + }
243 this.seleData(); 260 this.seleData();
244 if (this.$store.state.tagsView.cachedViews.length == 0) { 261 if (this.$store.state.tagsView.cachedViews.length == 0) {
245 this.select(); 262 this.select();
...@@ -290,7 +307,7 @@ export default { ...@@ -290,7 +307,7 @@ export default {
290 .catch(() => { }); 307 .catch(() => { });
291 }, 308 },
292 //查询 309 //查询
293 - select(val) { 310 + async select(val) {
294 this.loading = true; 311 this.loading = true;
295 this.dataInfo(); 312 this.dataInfo();
296 if (val === 0) { 313 if (val === 0) {
...@@ -458,6 +475,17 @@ export default { ...@@ -458,6 +475,17 @@ export default {
458 this.select(); 475 this.select();
459 } 476 }
460 }, 477 },
478 + //设置关闭
479 + headerSetClose(val) {
480 + if (val === 1) {
481 + this.tableHeader = []
482 + this.tableData = []
483 + this.$nextTick(() => {
484 + this.select();
485 + this.tableHeader = this.$store.getters.tableHeader['allocationCargo']
486 + })
487 + }
488 + }
461 }, 489 },
462 computed: { 490 computed: {
463 fltNo: { 491 fltNo: {
......
1 <template> 1 <template>
2 <div> 2 <div>
3 - <el-form :inline="true" :model="queryParams" class="form-header" size="medium" label-position="right" 3 + <el-form ref="flightAllocForm" :inline="true" :model="queryParams" class="form-header" size="medium"
4 - label-width="auto"> 4 + label-position="right" label-width="auto">
5 <el-form-item label="航班号"> 5 <el-form-item label="航班号">
6 <el-input v-model.trim="purposeOfFlightNo" placeholder="航班号" @keyup.enter.native="getList"></el-input> 6 <el-input v-model.trim="purposeOfFlightNo" placeholder="航班号" @keyup.enter.native="getList"></el-input>
7 </el-form-item> 7 </el-form-item>
...@@ -12,11 +12,11 @@ ...@@ -12,11 +12,11 @@
12 </el-select> 12 </el-select>
13 </el-form-item> 13 </el-form-item>
14 <el-form-item> 14 <el-form-item>
15 - <el-button type="primary" icon="el-icon-search" @click="getList" size="mini">查询</el-button> 15 + <el-button type="primary" icon="el-icon-search" :loading="loading" @click="getList" size="mini">查询</el-button>
16 </el-form-item> 16 </el-form-item>
17 <div> 17 <div>
18 - <el-button style="margin-bottom: 20px" type="primary" icon="el-icon-plus" size="mini" 18 + <el-button class="mb20" type="primary" icon="el-icon-plus" size="mini" v-hasPermi="['allocation:alloc:add']"
19 - v-hasPermi="['allocation:alloc:add']" @click=" 19 + @click="
20 $router.push({ 20 $router.push({
21 name: 'FlightAllocConfigAdd', 21 name: 'FlightAllocConfigAdd',
22 params: { handle: 'add' }, 22 params: { handle: 'add' },
...@@ -24,20 +24,11 @@ ...@@ -24,20 +24,11 @@
24 ">添加</el-button> 24 ">添加</el-button>
25 </div> 25 </div>
26 </el-form> 26 </el-form>
27 - <el-table :data="flyList" v-loading="loading" size="small" highlight-current-row border stripe> 27 + <Tables ref="newTables" ductName="FlightAlloc" :data="flyList" :headerData="tableHeaders['flightAlloc']"
28 - <el-table-column prop="purposeOfFlightNo" label="航班号" align="center"></el-table-column> 28 + :order="true" :totalCount="total" :loading="loading" :limitSize="queryParams.limit"
29 - <el-table-column prop="status" label="状态" align="center"> 29 + :limitStart="queryParams.start" :page="curPage" :pageSizes="[20]" :height="tableHeight"
30 - <template slot-scope="scope"> 30 + @currentChange="currentChange">
31 - <span v-if="scope.row.status === '0'">无效</span> 31 + <template slot="optionColumn">
32 - <span v-if="scope.row.status === '1'">有效</span>
33 - <span v-if="scope.row.status === '2'">配置中</span>
34 - <span v-if="scope.row.status === '3'">停用</span>
35 - </template>
36 - </el-table-column>
37 - <el-table-column prop="createUserName" label="操作人" align="center">
38 - </el-table-column>
39 - <el-table-column prop="createTime" label="更新时间" align="center">
40 - </el-table-column>
41 <el-table-column label="操作" prop="id" align="center"> 32 <el-table-column label="操作" prop="id" align="center">
42 <template slot-scope="scope"> 33 <template slot-scope="scope">
43 <el-button type="text" size="mini" icon="el-icon-view" @click="handleClick(scope.row.id, 'detail')">查看 34 <el-button type="text" size="mini" icon="el-icon-view" @click="handleClick(scope.row.id, 'detail')">查看
...@@ -52,11 +43,8 @@ ...@@ -52,11 +43,8 @@
52 @click="changeStatus(scope.row.id, 1)" v-else>启用</el-button> 43 @click="changeStatus(scope.row.id, 1)" v-else>启用</el-button>
53 </template> 44 </template>
54 </el-table-column> 45 </el-table-column>
55 - </el-table> 46 + </template>
56 - <el-pagination @size-change="getList" @current-change="getList" :current-page.sync="curPage" 47 + </Tables>
57 - :page-sizes="[10, 20, 30, 40]" :page-size.sync="limit" layout="prev, pager, next, jumper, sizes, total"
58 - :total="total" background :hide-on-single-page="true" style="margin-top: 40px; text-align: right">
59 - </el-pagination>
60 </div> 48 </div>
61 </template> 49 </template>
62 50
...@@ -75,12 +63,12 @@ export default { ...@@ -75,12 +63,12 @@ export default {
75 purposeOfFlightNo: "", 63 purposeOfFlightNo: "",
76 status: "1", 64 status: "1",
77 start: 0, 65 start: 0,
78 - limit: 10, 66 + limit: 20,
79 }, 67 },
80 flyList: [], 68 flyList: [],
81 curPage: 1, 69 curPage: 1,
82 - limit: 10,
83 total: 0, 70 total: 0,
71 + tableHeight: null,
84 loading: false, 72 loading: false,
85 }; 73 };
86 }, 74 },
...@@ -89,6 +77,9 @@ export default { ...@@ -89,6 +77,9 @@ export default {
89 this.getList(); 77 this.getList();
90 } 78 }
91 }, 79 },
80 + mounted() {
81 + this.tableHeight = window.innerHeight - this.$refs.flightAllocForm.$el.offsetHeight - 200
82 + },
92 activated() { 83 activated() {
93 this.getList() 84 this.getList()
94 }, 85 },
...@@ -97,7 +88,6 @@ export default { ...@@ -97,7 +88,6 @@ export default {
97 }, 88 },
98 methods: { 89 methods: {
99 getList() { 90 getList() {
100 - this.queryParams.limit = this.limit;
101 if (this.curPage > 1) { 91 if (this.curPage > 1) {
102 this.queryParams.start = (this.curPage - 1) * this.queryParams.limit; 92 this.queryParams.start = (this.curPage - 1) * this.queryParams.limit;
103 } else { 93 } else {
...@@ -165,6 +155,12 @@ export default { ...@@ -165,6 +155,12 @@ export default {
165 .catch(() => { }); 155 .catch(() => { });
166 }); 156 });
167 }, 157 },
158 + //翻页
159 + currentChange(val) {
160 + this.curPage = val.page
161 + this.queryParams.start = val.start;
162 + this.getList();
163 + }
168 }, 164 },
169 computed: { 165 computed: {
170 purposeOfFlightNo: { 166 purposeOfFlightNo: {
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
11 </el-select> 11 </el-select>
12 </el-form-item> 12 </el-form-item>
13 <el-form-item> 13 <el-form-item>
14 - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询原航班配置</el-button> 14 + <el-button type="primary" icon="el-icon-search" size="mini" :loading="loading" @click="handleQuery">查询原航班配置
15 + </el-button>
15 </el-form-item> 16 </el-form-item>
16 <br /> 17 <br />
17 <el-form-item label="日期" prop="flightDate"> 18 <el-form-item label="日期" prop="flightDate">
...@@ -30,19 +31,11 @@ ...@@ -30,19 +31,11 @@
30 <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> 31 <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
31 </el-form-item> 32 </el-form-item>
32 </el-form> 33 </el-form>
33 - <el-table v-loading="loading" height="550" size="small" :data="sourceFlightRulesList" highlight-current-row border 34 + <Tables ref="newTables" ductName="flightRand" :data="sourceFlightRulesList" :headerData="tableHeaders['flightRand']"
34 - stripe> 35 + :order="true" :totalCount="total" :loading="loading" :limitSize="queryParams.limit"
35 - <el-table-column type="index" label="序号" align="center"> 36 + :limitStart="queryParams.start" :page="queryParams.pageNum" :pageSizes="[20]" :height="tableHeight"
36 - <template slot-scope="scope">{{ scope.$index + 1 }}</template> 37 + @currentChange="currentChange">
37 - </el-table-column> 38 + <template slot="optionColumn">
38 - <el-table-column label="原航班" align="center" prop="sourceFlightNo" />
39 - <el-table-column label="配载航班排序" align="center" prop="flightRank" width="280" />
40 - <el-table-column label="周期" align="center" prop="dayOfWeek" width="180" />
41 - <el-table-column label="状态" align="center" prop="status" :formatter="statusFormat" />
42 - <el-table-column label="开始时间" align="center" prop="startDate" width="100" />
43 - <el-table-column label="结束时间" align="center" prop="endDate" width="100" />
44 - <el-table-column label="最后修改人" align="center" prop="updateUserName" width="100" />
45 - <el-table-column label="最后修改时间" align="center" prop="updateTime" width="100" />
46 <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180"> 39 <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180">
47 <template slot-scope="scope"> 40 <template slot-scope="scope">
48 <el-button size="mini" type="text" icon="el-icon-edit" v-hasPermi="['allocation:rand:update']" 41 <el-button size="mini" type="text" icon="el-icon-edit" v-hasPermi="['allocation:rand:update']"
...@@ -58,9 +51,8 @@ ...@@ -58,9 +51,8 @@
58 </el-button> 51 </el-button>
59 </template> 52 </template>
60 </el-table-column> 53 </el-table-column>
61 - </el-table> 54 + </template>
62 - <pagination v-show="total > 0" :total="total" layout=" prev, pager, next, jumper, sizes,total" 55 + </Tables>
63 - :page.sync="queryParams.pageNum" :limit.sync="queryParams.limit" @pagination="findSourceFlightRules" />
64 <!-- 查看目的航班对话框 --> 56 <!-- 查看目的航班对话框 -->
65 <el-dialog title="实际配载航班" :visible.sync="openFlightDate" width="70%" :close-on-click-modal="false" 57 <el-dialog title="实际配载航班" :visible.sync="openFlightDate" width="70%" :close-on-click-modal="false"
66 :show-close="false" :append-to-body="true"> 58 :show-close="false" :append-to-body="true">
...@@ -129,7 +121,11 @@ ...@@ -129,7 +121,11 @@
129 <el-col :span="24"> 121 <el-col :span="24">
130 <el-form-item label="周期段"> 122 <el-form-item label="周期段">
131 <el-checkbox-group v-model="dayOfWeek"> 123 <el-checkbox-group v-model="dayOfWeek">
132 - <el-checkbox v-for="item in dayOfWeekList" :key="item" :label="item" :name="item"></el-checkbox> 124 + <el-row :gutter="10">
125 + <el-col :span="2" v-for="item in dayOfWeekList" :key="item">
126 + <el-checkbox :label="item" :name="item"></el-checkbox>
127 + </el-col>
128 + </el-row>
133 </el-checkbox-group> 129 </el-checkbox-group>
134 </el-form-item> 130 </el-form-item>
135 </el-col> 131 </el-col>
...@@ -188,6 +184,8 @@ export default { ...@@ -188,6 +184,8 @@ export default {
188 title: "", 184 title: "",
189 // 总条数 185 // 总条数
190 total: 0, 186 total: 0,
187 + //table高度
188 + tableHeight: null,
191 // 原航班规则数据 189 // 原航班规则数据
192 sourceFlightRulesList: [], 190 sourceFlightRulesList: [],
193 //目的航班数据 191 //目的航班数据
...@@ -247,6 +245,9 @@ export default { ...@@ -247,6 +245,9 @@ export default {
247 this.findSourceFlightRules(); 245 this.findSourceFlightRules();
248 } 246 }
249 }, 247 },
248 + mounted() {
249 + this.tableHeight = window.innerHeight - this.$refs.queryForm.$el.offsetHeight - 200
250 + },
250 activated() { 251 activated() {
251 this.findSourceFlightRules(); 252 this.findSourceFlightRules();
252 }, 253 },
...@@ -420,17 +421,6 @@ export default { ...@@ -420,17 +421,6 @@ export default {
420 this.findSourceFlightRules(); 421 this.findSourceFlightRules();
421 //this.reset(); 422 //this.reset();
422 }, 423 },
423 - // 状态字典翻译
424 - statusFormat(row) {
425 - if (row.status === "1") {
426 - return "有效";
427 - } else if (row.status === "0") {
428 - return "执行中";
429 - } else if (row.status === "3") {
430 - return "停用";
431 - }
432 - return row.status;
433 - },
434 /** 重置按钮操作 */ 424 /** 重置按钮操作 */
435 resetQuery() { 425 resetQuery() {
436 this.queryParams.sourceFlightNo = undefined; 426 this.queryParams.sourceFlightNo = undefined;
...@@ -443,6 +433,12 @@ export default { ...@@ -443,6 +433,12 @@ export default {
443 this.queryParams.start = 0; 433 this.queryParams.start = 0;
444 this.findSourceFlightRules(); 434 this.findSourceFlightRules();
445 }, 435 },
436 + //翻页
437 + currentChange(val) {
438 + this.queryParams.start = val.start;
439 + this.queryParams.pageNum = val.page;
440 + this.findSourceFlightRules();
441 + }
446 }, 442 },
447 computed: { 443 computed: {
448 sourceFlightNo: { 444 sourceFlightNo: {
......
...@@ -18,28 +18,28 @@ ...@@ -18,28 +18,28 @@
18 </el-col> 18 </el-col>
19 <el-col :span="6"> 19 <el-col :span="6">
20 <el-form-item label="航班号"> 20 <el-form-item label="航班号">
21 - <el-input type="textarea" v-model="fltNo" clearable class="formItem" placeholder="AC001;AC002" rows="1"> 21 + <el-input type="textarea" v-model="fltNo" clearable class="formItem" placeholder="AC001;AC002" :rows="1">
22 </el-input> 22 </el-input>
23 </el-form-item> 23 </el-form-item>
24 </el-col> 24 </el-col>
25 <el-col :span="6"> 25 <el-col :span="6">
26 - <el-form-item label="运单号"> 26 + <el-form-item label="站点">
27 - <el-input clearable type="textarea" v-model="queryParams.waybillNo" class="formItem" 27 + <el-input type="textarea" v-model="siteName" class="formItem" placeholder="PVG;PEK" clearable :rows="1">
28 - placeholder="请输入运单号(回车间隔)" rows="1"></el-input> 28 + </el-input>
29 </el-form-item> 29 </el-form-item>
30 </el-col> 30 </el-col>
31 </el-row> 31 </el-row>
32 <el-row> 32 <el-row>
33 <el-col :span="6"> 33 <el-col :span="6">
34 - <el-form-item label="站点"> 34 + <el-form-item label="URSA">
35 - <el-input type="textarea" v-model="siteName" class="formItem" placeholder="PVG;PEK" clearable rows="1"> 35 + <el-input clearable type="textarea" v-model="ursa" class="formItem" placeholder="S_;P_;E2" :rows="1">
36 </el-input> 36 </el-input>
37 </el-form-item> 37 </el-form-item>
38 </el-col> 38 </el-col>
39 <el-col :span="6"> 39 <el-col :span="6">
40 - <el-form-item label="URSA"> 40 + <el-form-item label="运单号">
41 - <el-input clearable type="textarea" v-model="ursa" class="formItem" placeholder="S_;P_;E2" rows="1"> 41 + <el-input clearable type="textarea" v-model="queryParams.waybillNo" class="formItem"
42 - </el-input> 42 + placeholder="请输入运单号(回车间隔)" :rows="4"></el-input>
43 </el-form-item> 43 </el-form-item>
44 </el-col> 44 </el-col>
45 </el-row> 45 </el-row>
......
1 <template> 1 <template>
2 <div style="margin: 20px"> 2 <div style="margin: 20px">
3 - <el-form :inline="true" :model="form" class="demo-form-inline" size="small"> 3 + <el-form :inline="true" class="demo-form-inline" size="small">
4 <el-form-item> 4 <el-form-item>
5 <el-upload action="/caPreReviewImport/importFlight" name="file" :http-request="uploadExcel" 5 <el-upload action="/caPreReviewImport/importFlight" name="file" :http-request="uploadExcel"
6 :on-remove="handleRemove" :limit="1" :on-exceed="handleExceed" :file-list="fileList" accept=".xlsx" 6 :on-remove="handleRemove" :limit="1" :on-exceed="handleExceed" :file-list="fileList" accept=".xlsx"
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
15 <div style="font-size: 12px; font-weight: 700"> 15 <div style="font-size: 12px; font-weight: 700">
16 提示:<span style="color: #1890ff">以下为所提交的数据或出错信息</span> 16 提示:<span style="color: #1890ff">以下为所提交的数据或出错信息</span>
17 </div> 17 </div>
18 - <el-table ref="filterTable" :data="tableData" v-loading="loading" style="width: 100%; margin-top: 20px" size="small" 18 + <el-table ref="filterTable" class="mt20" :data="tableData" v-loading="loading" style="width: 100%" size="small"
19 border> 19 border>
20 <el-table-column label="行号" prop="line" width="50" align="center"> 20 <el-table-column label="行号" prop="line" width="50" align="center">
21 </el-table-column> 21 </el-table-column>
...@@ -49,18 +49,13 @@ export default { ...@@ -49,18 +49,13 @@ export default {
49 return { 49 return {
50 // 遮罩层 50 // 遮罩层
51 loading: false, 51 loading: false,
52 - flightType: [],
53 - form: {
54 - type: "",
55 - region: "",
56 - },
57 fileList: [], 52 fileList: [],
58 tableData: [], 53 tableData: [],
59 }; 54 };
60 }, 55 },
61 methods: { 56 methods: {
62 downloadTempleate() { 57 downloadTempleate() {
63 - let fileName = "航班预审导入模板.xlsx"; 58 + let fileName = "航班预审回执导入模板.xlsx";
64 downLoadTemplate().then((res) => { 59 downLoadTemplate().then((res) => {
65 if (res) { 60 if (res) {
66 const blob = new Blob([res]); 61 const blob = new Blob([res]);
...@@ -82,7 +77,7 @@ export default { ...@@ -82,7 +77,7 @@ export default {
82 //上传excel 77 //上传excel
83 const file = option.file; 78 const file = option.file;
84 this.loading = true; 79 this.loading = true;
85 - importcaPreReview(file, this.form.type).then((res) => { 80 + importcaPreReview(file, '').then((res) => {
86 this.loading = false; 81 this.loading = false;
87 if (res.code != 200) { 82 if (res.code != 200) {
88 if (res.code == 603) { 83 if (res.code == 603) {
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
23 <div style="font-size: 12px; font-weight: 700"> 23 <div style="font-size: 12px; font-weight: 700">
24 提示:<span style="color: #1890ff">以下为所提交的数据或出错信息</span> 24 提示:<span style="color: #1890ff">以下为所提交的数据或出错信息</span>
25 </div> 25 </div>
26 - <el-table ref="filterTable" :data="tableData" style="margin-top: 20px" size="small" border> 26 + <el-table ref="filterTable" class="mt20" :data="tableData" size="small" border>
27 <el-table-column label="行号" prop="line" width="50" align="center"> 27 <el-table-column label="行号" prop="line" width="50" align="center">
28 </el-table-column> 28 </el-table-column>
29 <el-table-column label="错误信息" prop="errorMessage" width="200"> 29 <el-table-column label="错误信息" prop="errorMessage" width="200">
......
...@@ -47,7 +47,8 @@ ...@@ -47,7 +47,8 @@
47 </el-form-item> 47 </el-form-item>
48 </el-col> 48 </el-col>
49 </el-row> 49 </el-row>
50 - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> 50 + <el-button type="primary" icon="el-icon-search" size="mini" :loading="loading" @click="handleQuery">搜索
51 + </el-button>
51 <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> 52 <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
52 <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['base:flightInfo:add']"> 53 <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['base:flightInfo:add']">
53 新增</el-button> 54 新增</el-button>
...@@ -70,7 +71,7 @@ ...@@ -70,7 +71,7 @@
70 @sortChange="sortChange" @sizeChange="sizeChange"> 71 @sortChange="sortChange" @sizeChange="sizeChange">
71 <template slot="optionColumn"> 72 <template slot="optionColumn">
72 <el-table-column v-if="findAllFltDatList.length > 0" label="操作" align="center" 73 <el-table-column v-if="findAllFltDatList.length > 0" label="操作" align="center"
73 - class-name="small-padding fixed-width" fixed="right"> 74 + class-name="small-padding fixed-width" :fixed="tableHeader.length > 10 ? 'right' : false">
74 <template slot-scope="scope"> 75 <template slot-scope="scope">
75 <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" 76 <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
76 v-hasPermi="['base:flightInfo:update']">修改</el-button> 77 v-hasPermi="['base:flightInfo:update']">修改</el-button>
...@@ -109,7 +110,7 @@ ...@@ -109,7 +110,7 @@
109 </el-col> 110 </el-col>
110 <el-col :span="12"> 111 <el-col :span="12">
111 <el-form-item label="航班路线" prop="route"> 112 <el-form-item label="航班路线" prop="route">
112 - <el-input class="wid80" v-model="form.route" placeholder="请输入航班路线(XXX-XXX字母大写)" /> 113 + <el-input class="wid80" v-model="form.route" placeholder="请输入航班路线(XXX-XXX字母大写,多组用;分割)" />
113 </el-form-item> 114 </el-form-item>
114 </el-col> 115 </el-col>
115 </el-row> 116 </el-row>
...@@ -168,9 +169,17 @@ ...@@ -168,9 +169,17 @@
168 <el-row> 169 <el-row>
169 <el-col :span="12"> 170 <el-col :span="12">
170 <el-form-item label="是否预审" prop="isNeedRequired"> 171 <el-form-item label="是否预审" prop="isNeedRequired">
171 - <el-switch class="wid80" :disabled="true" v-model="form.isNeedRequired" :active-value="1" 172 + <!-- <el-switch class="wid80" :disabled="true" v-model="form.isNeedRequired" :active-value="1"
172 :inactive-value="0" active-color="#13ce66"> 173 :inactive-value="0" active-color="#13ce66">
173 - </el-switch> 174 + </el-switch> -->
175 + <el-select class="wid80" v-model="form.isNeedRequired" placeholder="">
176 + <el-option label="未设置" :value="2">
177 + </el-option>
178 + <el-option label="是" :value="1">
179 + </el-option>
180 + <el-option label="否" :value="0">
181 + </el-option>
182 + </el-select>
174 </el-form-item> 183 </el-form-item>
175 </el-col> 184 </el-col>
176 <el-col :span="12"> 185 <el-col :span="12">
...@@ -268,7 +277,9 @@ export default { ...@@ -268,7 +277,9 @@ export default {
268 fltNo: undefined, //航班号,要大写 277 fltNo: undefined, //航班号,要大写
269 }, 278 },
270 //表单参数 279 //表单参数
271 - form: {}, 280 + form: {
281 + isNeedRequired: 2
282 + },
272 //表单校验 283 //表单校验
273 rules: { 284 rules: {
274 fltNo: [ 285 fltNo: [
...@@ -306,7 +317,7 @@ export default { ...@@ -306,7 +317,7 @@ export default {
306 // trigger: "blur", 317 // trigger: "blur",
307 // }, 318 // },
308 // { 319 // {
309 - // pattern: /^([A-Z]{3,4})(\-[A-Z]{3,4})+$/, 320 + // pattern: /^(([\~A-Z]{3,4})(\-[A-Z]{3,4})+)(;{1,1}(([\~A-Z]{3,4})(\-[A-Z]{3,4})+)){0,}$/,
310 // message: "请输入正确得航班线路" 321 // message: "请输入正确得航班线路"
311 // } 322 // }
312 // ] 323 // ]
...@@ -486,15 +497,15 @@ export default { ...@@ -486,15 +497,15 @@ export default {
486 //this.form.highLowPriceFlg = true; 497 //this.form.highLowPriceFlg = true;
487 } 498 }
488 //是否预审:根据已存在的相同航班号对应的最新值进行设置,如果无相同航班号,按照默认设置‘是否预审’ 为否,不可编辑; 499 //是否预审:根据已存在的相同航班号对应的最新值进行设置,如果无相同航班号,按照默认设置‘是否预审’ 为否,不可编辑;
489 - if ( 500 + // if (
490 - response.data != null && 501 + // response.data != null &&
491 - response.data.isNeedRequired != null && 502 + // response.data.isNeedRequired != null &&
492 - response.data.isNeedRequired != undefined 503 + // response.data.isNeedRequired != undefined
493 - ) { 504 + // ) {
494 - this.form.isNeedRequired = response.data.isNeedRequired; 505 + // this.form.isNeedRequired = response.data.isNeedRequired;
495 - } else { 506 + // } else {
496 - this.form.isNeedRequired = 0; 507 + // this.form.isNeedRequired = 0;
497 - } 508 + // }
498 //高/低价百分比:根据已存在的相同航班号对应的最新值进行设置,如果无相同航班号,按照默认设置‘高价百分比’60%,‘低价百分比’40%,不可编辑 509 //高/低价百分比:根据已存在的相同航班号对应的最新值进行设置,如果无相同航班号,按照默认设置‘高价百分比’60%,‘低价百分比’40%,不可编辑
499 if ( 510 if (
500 response.data != null && 511 response.data != null &&
...@@ -789,7 +800,7 @@ export default { ...@@ -789,7 +800,7 @@ export default {
789 }, 800 },
790 //表单重置 801 //表单重置
791 reset() { 802 reset() {
792 - this.form = {}; 803 + this.form = { isNeedRequired: 2 };
793 this.resetForm("form"); 804 this.resetForm("form");
794 }, 805 },
795 //取消按钮 806 //取消按钮
...@@ -896,6 +907,7 @@ export default { ...@@ -896,6 +907,7 @@ export default {
896 //每页长度 907 //每页长度
897 sizeChange(val) { 908 sizeChange(val) {
898 this.queryParams.limitSize = val; 909 this.queryParams.limitSize = val;
910 + this.queryParams.pageNum = 1
899 this.findAllFltData(); 911 this.findAllFltData();
900 }, 912 },
901 setClose() { 913 setClose() {
......
...@@ -11,28 +11,17 @@ ...@@ -11,28 +11,17 @@
11 </el-form-item> 11 </el-form-item>
12 </el-col> 12 </el-col>
13 <el-col :span="6"> 13 <el-col :span="6">
14 - <el-form-item label="配载航班号">
15 - <el-input type="textarea" v-model="cargoPlaneNo" class="formItem" placeholder="AC001;AC002" :rows="1"
16 - clearable></el-input>
17 - </el-form-item>
18 - </el-col>
19 - <el-col :span="6">
20 <el-form-item label="海关回执状态"> 14 <el-form-item label="海关回执状态">
21 - <el-select placeholder="不限" v-model="formData.customsReceiptStatusId" class="formItem" filterable multiple 15 + <el-select v-model="formData.customsReceiptStatusId" class="formItem" filterable multiple clearable
22 - clearable> 16 + placeholder="不限">
23 <el-option v-for="item in findConditionData.cargoCustomsReturnStatus" :label="item.chineseName" 17 <el-option v-for="item in findConditionData.cargoCustomsReturnStatus" :label="item.chineseName"
24 :value="item.id" :key="item.id"> 18 :value="item.id" :key="item.id">
19 + <Tooltips :content="item.chineseName" :refName="item.code"></Tooltips>
25 </el-option> 20 </el-option>
26 </el-select> 21 </el-select>
27 </el-form-item> 22 </el-form-item>
28 </el-col> 23 </el-col>
29 <el-col :span="6"> 24 <el-col :span="6">
30 - <el-form-item label="运单号">
31 - <el-input ref='userInfo' type="textarea" v-model="formData.waybillNo" class="formItem"
32 - placeholder="请输入运单号(回车间隔)" :rows="1" :maxlength="12000" clearable></el-input>
33 - </el-form-item>
34 - </el-col>
35 - <el-col :span="6">
36 <el-form-item label="申报类别"> 25 <el-form-item label="申报类别">
37 <el-select placeholder="不限" v-model="formData.typeId" class="formItem" clearable> 26 <el-select placeholder="不限" v-model="formData.typeId" class="formItem" clearable>
38 <el-option v-for="item in findConditionData.cargoType" :label="item.chineseName" :value="item.id" 27 <el-option v-for="item in findConditionData.cargoType" :label="item.chineseName" :value="item.id"
...@@ -43,22 +32,35 @@ ...@@ -43,22 +32,35 @@
43 </el-col> 32 </el-col>
44 <el-col :span="6"> 33 <el-col :span="6">
45 <el-form-item label="服务类型"> 34 <el-form-item label="服务类型">
46 - <el-select placeholder="不限" v-model="formData.serviceTypeId" class="formItem" filterable clearable> 35 + <el-select v-model="formData.serviceTypeId" class="formItem" filterable multiple clearable placeholder="不限">
47 <el-option v-for="item in findConditionData.cargoServiceType" :label="item.chineseName" :value="item.id" 36 <el-option v-for="item in findConditionData.cargoServiceType" :label="item.chineseName" :value="item.id"
48 :key="item.id"> 37 :key="item.id">
38 + <Tooltips :content="item.chineseName" :refName="item.code"></Tooltips>
49 </el-option> 39 </el-option>
50 </el-select> 40 </el-select>
51 </el-form-item> 41 </el-form-item>
52 </el-col> 42 </el-col>
53 <el-col :span="6"> 43 <el-col :span="6">
44 + <el-form-item label="运单号">
45 + <el-input ref='userInfo' type="textarea" v-model="formData.waybillNo" class="formItem"
46 + placeholder="请输入运单号(回车间隔)" :rows="4" :maxlength="12000" clearable></el-input>
47 + </el-form-item>
48 + </el-col>
49 + <el-col :span="6">
50 + <el-form-item label="配载航班号">
51 + <el-input type="textarea" v-model="cargoPlaneNo" class="formItem" placeholder="AC001;AC002" :rows="4"
52 + clearable></el-input>
53 + </el-form-item>
54 + </el-col>
55 + <el-col :span="6">
54 <el-form-item label="URSA"> 56 <el-form-item label="URSA">
55 - <el-input type="textarea" v-model="ursa" class="formItem" placeholder="S_;P_;E2" :rows="1" clearable> 57 + <el-input type="textarea" v-model="ursa" class="formItem" placeholder="S_;P_;E2" :rows="4" clearable>
56 </el-input> 58 </el-input>
57 </el-form-item> 59 </el-form-item>
58 </el-col> 60 </el-col>
59 <el-col :span="6"> 61 <el-col :span="6">
60 <el-form-item label="站点"> 62 <el-form-item label="站点">
61 - <el-input type="textarea" v-model="siteName" class="formItem" placeholder="PVG;PEK" :rows="1" clearable> 63 + <el-input type="textarea" v-model="siteName" class="formItem" placeholder="PVG;PEK" :rows="4" clearable>
62 </el-input> 64 </el-input>
63 </el-form-item> 65 </el-form-item>
64 </el-col> 66 </el-col>
...@@ -130,7 +132,7 @@ ...@@ -130,7 +132,7 @@
130 </el-row> 132 </el-row>
131 </el-col> 133 </el-col>
132 </el-row> 134 </el-row>
133 - <div style="paddingLeft: 10px; marginTop: 20px"> 135 + <div class="pl10 mt20">
134 <el-button type="primary" icon="el-icon-search" size="small" :loading="tableLoading" @click="select(0)">查询 136 <el-button type="primary" icon="el-icon-search" size="small" :loading="tableLoading" @click="select(0)">查询
135 </el-button> 137 </el-button>
136 <el-button v-hasPermi="['base:cargo:export']" :type="downLoadingTip.downloading ? 'warning' : 'primary'" 138 <el-button v-hasPermi="['base:cargo:export']" :type="downLoadingTip.downloading ? 'warning' : 'primary'"
...@@ -143,7 +145,7 @@ ...@@ -143,7 +145,7 @@
143 }}</el-button> 145 }}</el-button>
144 <el-button type="primary" size="small" :disabled="selectTable.length == 0" v-hasPermi="['base:cargo:release']" 146 <el-button type="primary" size="small" :disabled="selectTable.length == 0" v-hasPermi="['base:cargo:release']"
145 @click="release">释放舱位</el-button> 147 @click="release">释放舱位</el-button>
146 - <span style="marginLeft: 20px; color: #ffba00">全部导出上限80000条数据</span> 148 + <span class="ml20" style="color: #ffba00">全部导出上限80000条数据</span>
147 <el-progress v-if="progress != 0" class="progress" :stroke-width="12" :show-text="true" :percentage="progress" 149 <el-progress v-if="progress != 0" class="progress" :stroke-width="12" :show-text="true" :percentage="progress"
148 :status="progress == 100 ? 'success' : 'warning'"></el-progress> 150 :status="progress == 100 ? 'success' : 'warning'"></el-progress>
149 <div class="tips"> 151 <div class="tips">
...@@ -151,7 +153,13 @@ ...@@ -151,7 +153,13 @@
151 <span>总件数:{{ allQty }}</span> 153 <span>总件数:{{ allQty }}</span>
152 </div> 154 </div>
153 <div class="formShow"> 155 <div class="formShow">
156 + <el-tooltip :content="formShow ? '隐藏查询条件' : '显示查询条件'" placement="top">
154 <el-button class="mr20" icon="el-icon-search" size="mini" @click="formShow = !formShow" circle></el-button> 157 <el-button class="mr20" icon="el-icon-search" size="mini" @click="formShow = !formShow" circle></el-button>
158 + </el-tooltip>
159 + <el-tooltip content="表格设置" placement="top">
160 + <HeaderSetting tableName="cargo" class="mr20" style="float:right;line-height: 48px;"
161 + @close="headerSetClose"></HeaderSetting>
162 + </el-tooltip>
155 </div> 163 </div>
156 </div> 164 </div>
157 </el-form> 165 </el-form>
...@@ -212,7 +220,7 @@ export default { ...@@ -212,7 +220,7 @@ export default {
212 limitStart: 1, 220 limitStart: 1,
213 limitSize: 100, 221 limitSize: 100,
214 }, //表单数据 222 }, //表单数据
215 - tableHeader: this.tableHeaders['cargo'], //表头数据 223 + tableHeader: [], //表头数据
216 releaseHeader: [ 224 releaseHeader: [
217 { 225 {
218 name: "提示信息", 226 name: "提示信息",
...@@ -291,13 +299,18 @@ export default { ...@@ -291,13 +299,18 @@ export default {
291 }, 299 },
292 created() { 300 created() {
293 this.findCondition() 301 this.findCondition()
302 + if (this.$store.getters.tableHeader) {
303 + this.tableHeader = this.$store.getters.tableHeader['cargo']
304 + } else {
305 + this.tableHeader = this.tableHeaders['cargo']
306 + }
294 }, 307 },
295 308
296 activated() { 309 activated() {
297 if (this.$store.state.tagsView.cachedViews.length > 0) { 310 if (this.$store.state.tagsView.cachedViews.length > 0) {
298 - this.findCondition()
299 this.$store.state.tagsView.cachedViews.forEach(item => { 311 this.$store.state.tagsView.cachedViews.forEach(item => {
300 if (item === 'QueryCargo') { 312 if (item === 'QueryCargo') {
313 + this.findCondition()
301 this.totalCount > 0 ? this.select() : '' 314 this.totalCount > 0 ? this.select() : ''
302 } 315 }
303 }) 316 })
...@@ -331,7 +344,7 @@ export default { ...@@ -331,7 +344,7 @@ export default {
331 this.$refs.cargoForm.resetFields(); 344 this.$refs.cargoForm.resetFields();
332 }, 345 },
333 // 查询条件 346 // 查询条件
334 - findCondition() { 347 + async findCondition() {
335 findConditionData().then((res) => { 348 findConditionData().then((res) => {
336 if (res.code == 200) { 349 if (res.code == 200) {
337 this.findConditionData = res.data; 350 this.findConditionData = res.data;
...@@ -341,7 +354,7 @@ export default { ...@@ -341,7 +354,7 @@ export default {
341 }); 354 });
342 }, 355 },
343 //查询 356 //查询
344 - select(val) { 357 + async select(val) {
345 this.tableData = []; 358 this.tableData = [];
346 this.allWeight = 0; 359 this.allWeight = 0;
347 this.allQty = 0; 360 this.allQty = 0;
...@@ -563,6 +576,17 @@ export default { ...@@ -563,6 +576,17 @@ export default {
563 } 576 }
564 } 577 }
565 }, 578 },
579 + //设置关闭
580 + headerSetClose(val) {
581 + if (val == 1) {
582 + this.tableHeader = []
583 + this.tableData = []
584 + this.$nextTick(() => {
585 + this.tableHeader = this.$store.getters.tableHeader['cargo']
586 + this.select()
587 + })
588 + }
589 + }
566 }, 590 },
567 computed: { 591 computed: {
568 fltNo: { 592 fltNo: {
......
...@@ -15,8 +15,8 @@ ...@@ -15,8 +15,8 @@
15 </el-form-item> 15 </el-form-item>
16 16
17 <!-- <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox> --> 17 <!-- <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox> -->
18 - <el-form-item style="width:100%;marginTop:44px"> 18 + <el-form-item style="width: 100%; marginTop: 65px">
19 - <el-button :loading="loading" size="medium" type="primary" style="width:100%;" 19 + <el-button :loading="loading" size="medium" type="primary" style="width: 100%"
20 @click.native.prevent="handleLogin"> 20 @click.native.prevent="handleLogin">
21 <span v-if="!loading">登 录</span> 21 <span v-if="!loading">登 录</span>
22 <span v-else>登 录 中...</span> 22 <span v-else>登 录 中...</span>
...@@ -31,9 +31,6 @@ ...@@ -31,9 +31,6 @@
31 </template> 31 </template>
32 32
33 <script> 33 <script>
34 -import { getCodeImg } from "@/api/login";
35 -//import Cookies from "js-cookie";
36 -import { encrypt, } from '@/utils/jsencrypt'
37 34
38 export default { 35 export default {
39 name: "Login", 36 name: "Login",
...@@ -44,18 +41,18 @@ export default { ...@@ -44,18 +41,18 @@ export default {
44 loginForm: { 41 loginForm: {
45 username: "root", 42 username: "root",
46 password: "123", 43 password: "123",
47 - rememberMe: false 44 + rememberMe: false,
48 }, 45 },
49 loginRules: { 46 loginRules: {
50 username: [ 47 username: [
51 - { required: true, trigger: "blur", message: "用户名不能为空" } 48 + { required: true, trigger: "blur", message: "用户名不能为空" },
52 ], 49 ],
53 password: [ 50 password: [
54 - { required: true, trigger: "blur", message: "密码不能为空" } 51 + { required: true, trigger: "blur", message: "密码不能为空" },
55 - ] 52 + ],
56 }, 53 },
57 loading: false, 54 loading: false,
58 - redirect: undefined 55 + redirect: undefined,
59 }; 56 };
60 }, 57 },
61 watch: { 58 watch: {
...@@ -63,52 +60,59 @@ export default { ...@@ -63,52 +60,59 @@ export default {
63 handler: function (route) { 60 handler: function (route) {
64 this.redirect = route.query && route.query.redirect; 61 this.redirect = route.query && route.query.redirect;
65 }, 62 },
66 - immediate: true 63 + immediate: true,
67 - } 64 + },
68 }, 65 },
69 created() { 66 created() {
70 -
71 this.getCookie(); 67 this.getCookie();
72 }, 68 },
73 methods: { 69 methods: {
74 -
75 getCookie() { 70 getCookie() {
76 const username = localStorage.getItem("username"); 71 const username = localStorage.getItem("username");
77 const password = localStorage.getItem("password"); 72 const password = localStorage.getItem("password");
78 - const rememberMe = localStorage.getItem('rememberMe') 73 + const rememberMe = localStorage.getItem("rememberMe");
79 this.loginForm = { 74 this.loginForm = {
80 username: username === undefined ? this.loginForm.username : username, 75 username: username === undefined ? this.loginForm.username : username,
81 password: password === undefined ? this.loginForm.password : password, 76 password: password === undefined ? this.loginForm.password : password,
82 - rememberMe: rememberMe === undefined ? false : Boolean(rememberMe) 77 + rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
83 }; 78 };
84 }, 79 },
85 handleLogin() { 80 handleLogin() {
86 - this.$refs.loginForm.validate(valid => { 81 + this.$refs.loginForm.validate((valid) => {
87 if (valid) { 82 if (valid) {
88 this.loading = true; 83 this.loading = true;
89 if (this.loginForm.rememberMe) { 84 if (this.loginForm.rememberMe) {
90 - localStorage.setItem("username", this.loginForm.username, { expires: 30 }); 85 + localStorage.setItem("username", this.loginForm.username, {
91 - localStorage.setItem("password", this.loginForm.password, { expires: 30 }); 86 + expires: 30,
92 - localStorage.setItem('rememberMe', this.loginForm.rememberMe, { expires: 30 }); 87 + });
88 + localStorage.setItem("password", this.loginForm.password, {
89 + expires: 30,
90 + });
91 + localStorage.setItem("rememberMe", this.loginForm.rememberMe, {
92 + expires: 30,
93 + });
93 } else { 94 } else {
94 localStorage.removeItem("username"); 95 localStorage.removeItem("username");
95 localStorage.removeItem("password"); 96 localStorage.removeItem("password");
96 - localStorage.removeItem('rememberMe'); 97 + localStorage.removeItem("rememberMe");
97 } 98 }
98 - this.$store.dispatch("Login", this.loginForm).then(res => { 99 + this.$store
100 + .dispatch("Login", this.loginForm)
101 + .then(res => {
99 this.loading = false; 102 this.loading = false;
100 if (res.code != 200) { 103 if (res.code != 200) {
101 this.msgWarning(res.msg) 104 this.msgWarning(res.msg)
102 } 105 }
103 this.$router.push({ path: this.redirect || "/" }).catch(() => { }); 106 this.$router.push({ path: this.redirect || "/" }).catch(() => { });
104 - }).catch(err => { 107 + })
108 + .catch(err => {
105 this.loading = false; 109 this.loading = false;
106 - console.log(err) 110 + this.msgWarning(err)
107 }); 111 });
108 } 112 }
109 }); 113 });
110 - } 114 + },
111 - } 115 + },
112 }; 116 };
113 </script> 117 </script>
114 118
......
...@@ -5,7 +5,7 @@ export default { ...@@ -5,7 +5,7 @@ export default {
5 const { path } = params 5 const { path } = params
6 this.$router.replace({ path: '/' + path, query }) 6 this.$router.replace({ path: '/' + path, query })
7 }, 7 },
8 - render: function(h) { 8 + render: function (h) {
9 return h() // avoid warning message 9 return h() // avoid warning message
10 } 10 }
11 } 11 }
......
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
1 -<template>
2 - <div class="menuDrawer">
3 - <el-dialog
4 - :title="drawerTitle"
5 - width="50%"
6 - :visible.sync="dialogVisible"
7 - :close-on-click-modal="false"
8 - :append-to-body="true"
9 - >
10 - <el-form
11 - ref="userForm"
12 - :model="menuForm"
13 - :disabled="menuFormDisabled"
14 - :rules="rules"
15 - label-width="auto"
16 - style="margin: 10px"
17 - >
18 - <el-row>
19 - <el-col :span="12">
20 - <el-form-item label="菜单名称" prop="">
21 - <!-- <el-input
22 - placeholder="请输入权限名"
23 - :disabled="menuFormDisabled"
24 - v-model="menuData.userName"
25 - size="mini"
26 - ></el-input> -->
27 - </el-form-item>
28 - </el-col>
29 - <el-col :span="12">
30 - <el-form-item label="菜单路由" prop="">
31 - <!-- <el-input
32 - placeholder="请输入权限名"
33 - :disabled="menuFormDisabled"
34 - v-model="menuData.userName"
35 - size="mini"
36 - ></el-input> -->
37 - </el-form-item>
38 - </el-col>
39 - <el-col :span="12">
40 - <el-form-item label="组件名称" prop="">
41 - <!-- <el-input
42 - placeholder="请输入权限名"
43 - :disabled="menuFormDisabled"
44 - v-model="menuData.userName"
45 - size="mini"
46 - ></el-input> -->
47 - </el-form-item>
48 - </el-col>
49 - <el-col :span="24">
50 - <el-form-item label="菜单状态" prop="">
51 - <el-switch
52 - v-model="menuData.menuStatus"
53 - active-color="#13ce66"
54 - inactive-color="#ff4949"
55 - :disabled="menuFormDisabled"
56 - ></el-switch>
57 - </el-form-item>
58 - </el-col>
59 - <el-col :span="24">
60 - <el-form-item label="图标选择" prop="">
61 - <iconSelect @selected="selected"></iconSelect>
62 - </el-form-item>
63 - </el-col>
64 - <el-col :span="24">
65 - <el-form-item label="权限设置" prop="">
66 - <el-col :span="6">
67 - <el-radio label="页面" size="medium"></el-radio>
68 - </el-col>
69 - <el-col :span="6">
70 - <el-radio label="按钮" size="medium"></el-radio>
71 - </el-col>
72 - <el-col :span="24">
73 - <el-card shadow="never">
74 - <el-input placeholder=""></el-input>
75 - </el-card>
76 - </el-col>
77 - </el-form-item>
78 - </el-col>
79 - </el-row>
80 - </el-form>
81 -
82 - <div slot="footer">
83 - <el-button @click="handleClose">取 消</el-button>
84 - <el-button type="primary" @click="submit">确 定</el-button>
85 - </div>
86 - </el-dialog>
87 - </div>
88 -</template>
89 -
90 -<script>
91 -import iconSelect from "@/components/IconSelect";
92 -export default {
93 - components: {
94 - iconSelect,
95 - },
96 - props: {
97 - drawerTitle: {
98 - type: String,
99 - default: "",
100 - },
101 - menuFormDisabled: {
102 - type: Boolean,
103 - default: false,
104 - },
105 - dialogVisible: {
106 - type: Boolean,
107 - default: false,
108 - },
109 - menuData: {
110 - type: Object,
111 - default: null,
112 - },
113 - },
114 - data() {
115 - return {
116 - menuForm: {},
117 - rules:{}
118 - };
119 - },
120 - updated() {
121 - this.menuForm = this.menuData;
122 - },
123 - watch:{
124 - dialogVisible(val,oldVal){
125 - if(val){
126 - this.menuForm = this.menuData;
127 - }
128 - }
129 - },
130 - methods: {
131 - handleClose() {
132 - this.$emit("handleClose", false);
133 - },
134 - selected(val) {
135 - console.log(val);
136 - },
137 - submit() {},
138 - },
139 -};
140 -</script>
141 -
142 -<style>
143 -</style>
...\ No newline at end of file ...\ No newline at end of file
...@@ -23,7 +23,6 @@ ...@@ -23,7 +23,6 @@
23 header-align="center" :width="item.width" :formatter="formatter"> 23 header-align="center" :width="item.width" :formatter="formatter">
24 </el-table-column> 24 </el-table-column>
25 </template> 25 </template>
26 -
27 <el-table-column header-align="center" align="center" label="操作" width="auto"> 26 <el-table-column header-align="center" align="center" label="操作" width="auto">
28 <template slot-scope="scope"> 27 <template slot-scope="scope">
29 <!-- <el-button type="success" size="mini" @click="buttonClick(scope)">修改</el-button> 28 <!-- <el-button type="success" size="mini" @click="buttonClick(scope)">修改</el-button>
...@@ -39,55 +38,15 @@ ...@@ -39,55 +38,15 @@
39 </template> 38 </template>
40 </el-table-column> 39 </el-table-column>
41 </el-table> 40 </el-table>
42 -
43 - <!-- <Tables
44 - ref="newTable"
45 - :data="data"
46 - :headerData="tableHeader"
47 - size="medium"
48 - rowKey="id"
49 - :defaultExpandAll="true"
50 - height="auto"
51 - @tableSelect="tableSelect"
52 - @tableSelectAll="tableSelectAll"
53 - @SelectChange="SelectChange"
54 - >
55 - <el-table-column
56 - header-align="center"
57 - align="center"
58 - label="操作"
59 - width="auto"
60 - >
61 - <template slot-scope="scope">
62 - <el-button type="primary" size="mini" @click="menuStatus(scope)">{{
63 - scope.menuStatus == 0 ? "停用" : "启用"
64 - }}</el-button>
65 - <el-button type="danger" size="mini" @click="removeMenu(scope)"
66 - >删除菜单</el-button
67 - >
68 - </template>
69 - </el-table-column>
70 - </Tables> -->
71 - <!-- <Drawer
72 - :dialogVisible="drawer"
73 - :drawerTitle="drawerTitle"
74 - :menuFormDisabled="menuFormDisabled"
75 - :menuData="menuData"
76 - @handleClose="handleClose"
77 - ></Drawer> -->
78 </div> 41 </div>
79 </template> 42 </template>
80 43
81 <script> 44 <script>
82 import { getAllAuth, updateStatus } from "@/api/system/user.js"; 45 import { getAllAuth, updateStatus } from "@/api/system/user.js";
83 import dictLabels from "@/assets/languages/dictLabels.js"; 46 import dictLabels from "@/assets/languages/dictLabels.js";
84 -import Drawer from "./drawer.vue";
85 47
86 export default { 48 export default {
87 name: "MenuConfig", 49 name: "MenuConfig",
88 - components: {
89 - Drawer,
90 - },
91 data() { 50 data() {
92 return { 51 return {
93 drawer: false, 52 drawer: false,
...@@ -102,35 +61,30 @@ export default { ...@@ -102,35 +61,30 @@ export default {
102 value: "title", 61 value: "title",
103 width: "", 62 width: "",
104 align: "left", 63 align: "left",
105 - sorTable: false,
106 }, 64 },
107 { 65 {
108 name: "菜单类型", 66 name: "菜单类型",
109 value: "menuType", 67 value: "menuType",
110 width: "100", 68 width: "100",
111 align: "center", 69 align: "center",
112 - sortable: false,
113 }, 70 },
114 { 71 {
115 name: "权限标识", 72 name: "权限标识",
116 value: "permissionKey", 73 value: "permissionKey",
117 width: "auto", 74 width: "auto",
118 align: "left", 75 align: "left",
119 - sortable: false,
120 }, 76 },
121 { 77 {
122 name: "菜单状态", 78 name: "菜单状态",
123 value: "status", 79 value: "status",
124 width: "100", 80 width: "100",
125 align: "center", 81 align: "center",
126 - sorTable: false,
127 }, 82 },
128 { 83 {
129 name: "菜单路由", 84 name: "菜单路由",
130 value: "path", 85 value: "path",
131 width: "auto", 86 width: "auto",
132 align: "left", 87 align: "left",
133 - sorTable: false,
134 }, 88 },
135 ], 89 ],
136 }; 90 };
...@@ -153,19 +107,16 @@ export default { ...@@ -153,19 +107,16 @@ export default {
153 this.drawerTitle = "新增菜单"; 107 this.drawerTitle = "新增菜单";
154 this.menuFormDisabled = false; 108 this.menuFormDisabled = false;
155 }, 109 },
156 -
157 //关闭 110 //关闭
158 handleClose(val) { 111 handleClose(val) {
159 this.drawer = val; 112 this.drawer = val;
160 }, 113 },
161 -
162 buttonClick(row) { 114 buttonClick(row) {
163 this.menuData = row.row; 115 this.menuData = row.row;
164 this.drawer = true; 116 this.drawer = true;
165 this.drawerTitle = "查看/修改"; 117 this.drawerTitle = "查看/修改";
166 this.menuFormDisabled = true; 118 this.menuFormDisabled = true;
167 }, 119 },
168 -
169 //表格数据 120 //表格数据
170 menuAll() { 121 menuAll() {
171 this.loading = true; 122 this.loading = true;
...@@ -184,7 +135,6 @@ export default { ...@@ -184,7 +135,6 @@ export default {
184 this.loading = false; 135 this.loading = false;
185 }); 136 });
186 }, 137 },
187 -
188 //菜单状态改变 138 //菜单状态改变
189 statusUpdate(data) { 139 statusUpdate(data) {
190 updateStatus(data) 140 updateStatus(data)
...@@ -201,7 +151,6 @@ export default { ...@@ -201,7 +151,6 @@ export default {
201 console.log(err); 151 console.log(err);
202 }); 152 });
203 }, 153 },
204 -
205 //菜单开启关闭 154 //菜单开启关闭
206 menuStatus(row) { 155 menuStatus(row) {
207 this.$confirm( 156 this.$confirm(
...@@ -221,7 +170,6 @@ export default { ...@@ -221,7 +170,6 @@ export default {
221 }) 170 })
222 .catch(() => { }); 171 .catch(() => { });
223 }, 172 },
224 -
225 //菜单删除 173 //菜单删除
226 removeMenu(row) { 174 removeMenu(row) {
227 this.$confirm("是否要删除此菜单", "提示", { 175 this.$confirm("是否要删除此菜单", "提示", {
...@@ -237,7 +185,6 @@ export default { ...@@ -237,7 +185,6 @@ export default {
237 }) 185 })
238 .catch(() => { }); 186 .catch(() => { });
239 }, 187 },
240 -
241 formatter(row, column, cellValue, index) { 188 formatter(row, column, cellValue, index) {
242 if (dictLabels["menu"][column.property]) { 189 if (dictLabels["menu"][column.property]) {
243 if (dictLabels["menu"][column.property][cellValue]) { 190 if (dictLabels["menu"][column.property][cellValue]) {
......
1 +<template>
2 + <div style="margin:30px 20px 20px">
3 + <el-form class="form-header" :model="pageOption" ref="queryForm" label-position="right" label-width="auto"
4 + size="small">
5 + <el-row>
6 + <el-col :span="6">
7 + <el-form-item label="航班号" prop="fltNo">
8 + <el-input class="wid80" v-model="queryfltNo" placeholder="请输入航班号" maxlength="50" />
9 + </el-form-item>
10 + </el-col>
11 + <el-col :span="6">
12 + <el-form-item label="预审状态" prop="status">
13 + <el-select class="wid80" v-model="pageOption.status" clearable placeholder="不限">
14 + <el-option label="关闭" :value="0">
15 + </el-option>
16 + <el-option label="开启" :value="1">
17 + </el-option>
18 + </el-select>
19 + </el-form-item>
20 + </el-col>
21 + </el-row>
22 + </el-form>
23 + <div class="mb20" ref="preReviewOptions" style="font-size: 12px; font-weight: 700">
24 + <el-button type="primary" icon="el-icon-search" size="small" :loading="tableLoading" @click="preQuery(1)">搜 索
25 + </el-button>
26 + <el-button type="primary" icon="el-icon-plus" size="small" @click="dialogVisible = true">新增预审航班</el-button>
27 + <el-button type="primary" size="small" icon="el-icon-check" :disabled="selectData.length == 0"
28 + @click="preOption(1)">
29 + 预审开启</el-button>
30 + <el-button type="primary" size="small" icon="el-icon-close" :disabled="selectData.length == 0"
31 + @click="preOption(0)">
32 + 预审关闭</el-button>
33 + <el-button type="danger" icon="el-icon-delete" size="small" :disabled="selectData.length == 0"
34 + @click="preOption(2)">删 除
35 + </el-button>
36 + </div>
37 + <Tables ref="preFlight" ductName="preFlight" :selection="true" :selectFixed="false" :order='true'
38 + :height="tableHeight" :data="flightData" :headerData="tableHeaders" :page="pageOption.page" :pageSizes="[20]"
39 + :totalCount="total" :loading="tableLoading" @currentChange="currentChange"
40 + layout="total,prev, pager, next, jumper, ->" @tableSelect="tableSelection" @tableSelectAll="tableSelectAll">
41 + </Tables>
42 + <el-dialog title="新增预审航班" width="20%" :visible.sync="dialogVisible" :close-on-click-modal="false"
43 + :show-close="false" :append-to-body="true">
44 + <el-form ref="addForm" :model="newPre" label-width="auto" label-position="left" size="small" :rules="rules"
45 + @submit.native.prevent>
46 + <el-form-item label="航班号" prop="addFlitNo">
47 + <el-input type="textarea" v-model="fltNo" :rows="7" maxlength="255" show-word-limit placeholder="请输入航班号,用;分隔">
48 + </el-input>
49 + </el-form-item>
50 + </el-form>
51 + <div slot="footer">
52 + <el-button type="primary" :loading="loading" @click="submit">确 定</el-button>
53 + <el-button @click="close">取 消</el-button>
54 + </div>
55 + </el-dialog>
56 + </div>
57 +</template>
58 +
59 +<script>
60 +import { getpreAudit, addPreFlight, updatePreStatus } from '@/api/system/preReview.js'
61 +
62 +export default {
63 + name: "PreReviewFlight",
64 + data() {
65 + return {
66 + pageOption: {
67 + fltNo: undefined,
68 + page: 1,
69 + size: 20
70 + },//查询条件
71 + tableHeaders: [
72 + {
73 + columnChineseName: "航班号",
74 + columnName: "fltNo",
75 + columnWidth: "",
76 + status: 1
77 + },
78 + {
79 + columnChineseName: "预审状态",
80 + columnName: "status",
81 + columnWidth: "",
82 + status: 1
83 + },
84 + ],//表头
85 + flightData: [],//表格数据
86 + selectData: [],//选中数据
87 + newPre: {
88 + addFlitNo: '',
89 + },//新增航班
90 + rules: {
91 + fltNo: [
92 + {
93 + required: true,
94 + message: "航班号不能为空",
95 + trigger: "blur",
96 + }
97 + ]
98 + },//表单规则
99 + dialogVisible: false,
100 + total: 0,
101 + tableHeight: null,
102 + loading: false,
103 + tableLoading: false,
104 + };
105 + },
106 + created() {
107 + this.preQuery(1)
108 + },
109 + activated() {
110 + if (this.flightData.length > 0) {
111 + this.preQuery()
112 + }
113 + },
114 + mounted() {
115 + this.tableHeight = window.innerHeight - this.$refs.preReviewOptions.offsetHeight - 300
116 + },
117 + methods: {
118 + //搜索
119 + preQuery(val) {
120 + this.tableLoading = true
121 + this.selectData = []
122 + if (val === 1) {
123 + this.pageOption.page = 1
124 + }
125 + getpreAudit(this.pageOption).then(res => {
126 + this.tableLoading = false
127 + if (res.code === 200) {
128 + this.flightData = res.data.list
129 + this.total = res.data.total
130 + } else {
131 + this.msgWarning(res.msg)
132 + }
133 + }).catch(err => {
134 + this.tableLoading = false
135 + console.log(err)
136 + })
137 + },
138 + //保存
139 + submit() {
140 + this.$refs["addForm"].validate(val => {
141 + if (val) {
142 + this.loading = true
143 + let fltList = []
144 + this.newPre.addFlitNo.split(';').forEach(item => {
145 + if (item != '') {
146 + fltList.push(item)
147 + }
148 + })
149 + addPreFlight(fltList).then(res => {
150 + this.loading = false
151 + if (res.code === 200) {
152 + this.msgSuccess('添加成功')
153 + this.close()
154 + this.preQuery(1)
155 + } else {
156 + this.msgWarning(res.msg)
157 + }
158 + }).catch(err => {
159 + this.loading = false
160 + console.log(err)
161 + })
162 + }
163 + })
164 + },
165 + //预审状态修改
166 + preOption(val) {
167 + this.$confirm(val === 2 ? '是否要删除?' : val === 0 ? '是否要关闭预审' : '是否要开启预审', '系统提示', {
168 + closeOnClickModal: false,
169 + confirmButtonText: '确定',
170 + cancelButtonText: "取消",
171 + type: 'warning'
172 + }).then(() => {
173 + let idList = []
174 + this.selectData.forEach(item => {
175 + idList.push(item.id)
176 + })
177 + updatePreStatus({ ids: idList, status: val }).then(res => {
178 + if (res.code === 200) {
179 + this.msgSuccess(val === 2 ? '删除成功' : val === 0 ? '关闭成功' : '开启成功')
180 + this.preQuery(1)
181 + } else {
182 + this.msgWarning(res.msg)
183 + }
184 + }).catch(err => {
185 + console.log(err)
186 + })
187 + }).catch()
188 + },
189 + //关闭弹窗
190 + close() {
191 + this.dialogVisible = false
192 + this.newPre.addFlitNo = ''
193 + },
194 + //翻页
195 + currentChange(val) {
196 + this.pageOption.page = val.page
197 + },
198 + //多选
199 + tableSelection(val) {
200 + this.selectData = val.selection
201 + },
202 + //全选
203 + tableSelectAll(val) {
204 + this.selectData = val
205 + },
206 + },
207 + computed: {
208 + queryfltNo: {
209 + get: function () {
210 + return this.pageOption.fltNo;
211 + },
212 + set: function (val) {
213 + this.pageOption.fltNo = this.upCase(val);
214 + },
215 + },
216 + fltNo: {
217 + get: function () {
218 + return this.newPre.addFlitNo;
219 + },
220 + set: function (val) {
221 + let reg = /^([0-9A-Za-z]{0,50}(\;[0-9a-zA-Z]{0,50})*)$/
222 + if (reg.test(val)) {
223 + this.newPre.addFlitNo = this.upCase(val);
224 + }
225 + },
226 + }
227 + }
228 +};
229 +</script>
230 +<style rel="stylesheet/scss" lang="scss">
231 +</style>
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
2 <div class="roleDrawer"> 2 <div class="roleDrawer">
3 <el-drawer :title="drawerTitle" :visible.sync="drawer" direction="rtl" size="40%" destroy-on-close 3 <el-drawer :title="drawerTitle" :visible.sync="drawer" direction="rtl" size="40%" destroy-on-close
4 :close-on-click-modal="false" :wrapperClosable="false" :show-close="false"> 4 :close-on-click-modal="false" :wrapperClosable="false" :show-close="false">
5 - <el-form ref="roleForm" :model="roleForm" label-width="auto" :rules="rules" size="mini" style="margin: 10px"> 5 + <el-form ref="roleForm" :model="roleForm" label-width="auto" :rules="rules" size="mini" style="margin: 10px"
6 + @submit.native.prevent>
6 <el-row :gutter="10"> 7 <el-row :gutter="10">
7 <el-col :span="12"> 8 <el-col :span="12">
8 <el-form-item label="角色名:" prop="name"> 9 <el-form-item label="角色名:" prop="name">
...@@ -14,7 +15,7 @@ ...@@ -14,7 +15,7 @@
14 <el-col :span="24"> 15 <el-col :span="24">
15 <el-form-item label="角色描述:" prop="remark"> 16 <el-form-item label="角色描述:" prop="remark">
16 <el-input v-model="roleForm.remark" type="textarea" placeholder="请输入角色描述" :disabled="roleFormDisabled" 17 <el-input v-model="roleForm.remark" type="textarea" placeholder="请输入角色描述" :disabled="roleFormDisabled"
17 - v-if="!roleFormDisabled" clearable></el-input> 18 + v-if="!roleFormDisabled" clearable maxlength="255" show-word-limit></el-input>
18 <div v-else>{{ roleData.remark }}</div> 19 <div v-else>{{ roleData.remark }}</div>
19 </el-form-item> 20 </el-form-item>
20 </el-col> 21 </el-col>
......
1 <template> 1 <template>
2 <div class="roleConfig"> 2 <div class="roleConfig">
3 - <el-form ref="selectionRoleForm" label-width="auto" style="margin: 20px"> 3 + <el-form ref="selectionRoleForm" label-width="auto" style="margin: 20px" @submit.native.prevent>
4 <el-row :gutter="50"> 4 <el-row :gutter="50">
5 <el-col :span="6"> 5 <el-col :span="6">
6 <el-form-item label="角色名称"> 6 <el-form-item label="角色名称">
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
2 <div class="userDrawer"> 2 <div class="userDrawer">
3 <el-drawer :title="drawerTitle" :visible.sync="drawer" direction="rtl" size="40%" :close-on-click-modal="false" 3 <el-drawer :title="drawerTitle" :visible.sync="drawer" direction="rtl" size="40%" :close-on-click-modal="false"
4 :wrapperClosable="false" :show-close="false"> 4 :wrapperClosable="false" :show-close="false">
5 - <el-form ref="userForm" :model="userForm" label-width="auto" :rules="rules" style="margin: 10px"> 5 + <el-form ref="userForm" :model="userForm" label-width="auto" :rules="rules" style="margin: 10px"
6 + @submit.native.prevent>
6 <el-row :gutter="10"> 7 <el-row :gutter="10">
7 <el-col :span="12"> 8 <el-col :span="12">
8 <el-form-item label="员工号:" prop="loginName"> 9 <el-form-item label="员工号:" prop="loginName">
...@@ -63,6 +64,7 @@ ...@@ -63,6 +64,7 @@
63 style="width: 100%" multiple clearable> 64 style="width: 100%" multiple clearable>
64 <el-option v-for="item in portNameList" :label="item.englishName" :value="item.englishName" 65 <el-option v-for="item in portNameList" :label="item.englishName" :value="item.englishName"
65 :key="item.id"> 66 :key="item.id">
67 + <Tooltips :content="item.englishName" :refName="item.code"></Tooltips>
66 </el-option> 68 </el-option>
67 </el-select> 69 </el-select>
68 </el-form-item> 70 </el-form-item>
...@@ -70,14 +72,21 @@ ...@@ -70,14 +72,21 @@
70 <el-col :span="24"> 72 <el-col :span="24">
71 <el-form-item label="所属角色:" prop="roleIds"> 73 <el-form-item label="所属角色:" prop="roleIds">
72 <el-checkbox-group v-model="roleid" :disabled="userFormDisabled" @change="change"> 74 <el-checkbox-group v-model="roleid" :disabled="userFormDisabled" @change="change">
73 - <el-checkbox v-for="item in roleList" :label="item.id" :key="item.id">{{ item.name }}</el-checkbox> 75 + <el-row>
76 + <el-col :span="4" v-for="item in roleList" :key="item.id">
77 + <el-checkbox :label="item.id">
78 + {{ item.name }}
79 + <Tooltips :content="item.englishName" :refName="item.code"></Tooltips>
80 + </el-checkbox>
81 + </el-col>
82 + </el-row>
74 </el-checkbox-group> 83 </el-checkbox-group>
75 </el-form-item> 84 </el-form-item>
76 </el-col> 85 </el-col>
77 <el-col :span="24"> 86 <el-col :span="24">
78 <el-form-item label="备注:" prop="remark"> 87 <el-form-item label="备注:" prop="remark">
79 <el-input type="textarea" v-model="userForm.remark" placeholder="备注" :disabled="userFormDisabled" 88 <el-input type="textarea" v-model="userForm.remark" placeholder="备注" :disabled="userFormDisabled"
80 - v-if="!userFormDisabled" size="small" clearable></el-input> 89 + v-if="!userFormDisabled" size="small" clearable maxlength="255" show-word-limit></el-input>
81 <div v-else>{{ userForm.remark }}</div> 90 <div v-else>{{ userForm.remark }}</div>
82 </el-form-item> 91 </el-form-item>
83 </el-col> 92 </el-col>
......
1 <template> 1 <template>
2 <div> 2 <div>
3 - <el-form ref="selectionUserForm" label-width="auto" style="margin: 20px"> 3 + <el-form ref="selectionUserForm" label-width="auto" style="margin: 20px" @submit.native.prevent>
4 <el-row :gutter="50"> 4 <el-row :gutter="50">
5 <el-col :span="6"> 5 <el-col :span="6">
6 <el-form-item label="用户姓名"> 6 <el-form-item label="用户姓名">
...@@ -211,7 +211,7 @@ export default { ...@@ -211,7 +211,7 @@ export default {
211 .catch((err) => { 211 .catch((err) => {
212 console.log(err); 212 console.log(err);
213 }) 213 })
214 - .catch(() => {}); 214 + .catch(() => { });
215 }, 215 },
216 //删除用户 216 //删除用户
217 removeUser(row) { 217 removeUser(row) {
...@@ -233,7 +233,7 @@ export default { ...@@ -233,7 +233,7 @@ export default {
233 .catch((err) => { 233 .catch((err) => {
234 console.log(err); 234 console.log(err);
235 }) 235 })
236 - .catch(() => {}); 236 + .catch(() => { });
237 }, 237 },
238 handleClose(val) { 238 handleClose(val) {
239 this.drawer = val; 239 this.drawer = val;
......
This diff is collapsed. Click to expand it.