jinhui.wang

ver:1.5.0,新增航班预审、数据字典虚拟航班页面,增加自定义表头,文本修正,样式修正

Showing 44 changed files with 1515 additions and 666 deletions
1 -{
2 - "name": "IMAC",
3 - "version": "3.5.0",
4 - "description": "IMAC管理系统",
5 - "author": "IMAC",
6 - "license": "MIT",
7 - "scripts": {
8 - "dev": "vue-cli-service serve",
9 - "build:prod": "vue-cli-service build",
10 - "build:stage": "vue-cli-service build --mode staging",
11 - "preview": "node build/index.js --preview",
12 - "lint": "eslint --ext .js,.vue src"
13 - },
14 - "husky": {
15 - "hooks": {
16 - "pre-commit": "lint-staged"
17 - }
18 - },
19 - "lint-staged": {
20 - "src/**/*.{js,vue}": [
21 - "eslint --fix",
22 - "git add"
23 - ]
24 - },
25 - "keywords": [
26 - "vue",
27 - "admin",
28 - "dashboard",
29 - "element-ui",
30 - "boilerplate",
31 - "admin-template",
32 - "management-system"
33 - ],
34 - "repository": {
35 - "type": "git",
36 - "url": "https://gitee.com/y_project/RuoYi-Vue.git"
37 - },
38 - "dependencies": {
39 - "@riophae/vue-treeselect": "0.4.0",
40 - "axios": "0.21.1",
41 - "clipboard": "2.0.8",
42 - "core-js": "3.8.3",
43 - "echarts": "4.9.0",
44 - "element-ui": "2.15.3",
45 - "file-saver": "2.0.5",
46 - "fuse.js": "6.4.6",
47 - "highlight.js": "9.18.5",
48 - "js-beautify": "1.13.13",
49 - "js-cookie": "2.2.1",
50 - "jsencrypt": "3.0.3",
51 - "nprogress": "0.2.0",
52 - "quill": "1.3.7",
53 - "screenfull": "5.0.2",
54 - "sortablejs": "1.10.2",
55 - "vue": "2.6.14",
56 - "vue-count-to": "1.0.13",
57 - "vue-cropper": "0.5.6",
58 - "vue-router": "3.5.2",
59 - "vuedraggable": "2.24.3",
60 - "vuex": "3.6.2"
61 - },
62 - "devDependencies": {
63 - "@vue/cli-plugin-babel": "4.5.13",
64 - "@vue/cli-plugin-eslint": "4.5.13",
65 - "@vue/cli-service": "4.5.13",
66 - "babel-eslint": "10.1.0",
67 - "chalk": "4.1.1",
68 - "connect": "3.6.6",
69 - "eslint": "7.30.0",
70 - "eslint-plugin-vue": "7.12.1",
71 - "lint-staged": "10.5.4",
72 - "runjs": "4.4.2",
73 - "sass": "1.35.1",
74 - "sass-loader": "10.2.0",
75 - "script-ext-html-webpack-plugin": "2.1.5",
76 - "svg-sprite-loader": "5.2.1",
77 - "vue-template-compiler": "2.6.14"
78 - },
79 - "engines": {
80 - "node": ">=8.9",
81 - "npm": ">= 3.0.0"
82 - },
83 - "browserslist": [
84 - "> 1%",
85 - "last 2 versions"
86 - ]
87 -}
...@@ -6,4 +6,12 @@ export const getRouters = () => { ...@@ -6,4 +6,12 @@ export const getRouters = () => {
6 url: '/auth/getRouters', 6 url: '/auth/getRouters',
7 method: 'post' 7 method: 'post'
8 }) 8 })
9 +}
10 +
11 +// 获取tableHeader
12 +export const getTableHeader = () => {
13 + return request({
14 + url: '/table/getTableHeader',
15 + method: 'get'
16 + })
9 } 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
...@@ -16,4 +16,15 @@ export function getDmDataList(data) { ...@@ -16,4 +16,15 @@ export function getDmDataList(data) {
16 method: 'post', 16 method: 'post',
17 data: data 17 data: data
18 }) 18 })
19 -}
...\ No newline at end of file ...\ No newline at end of file
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 页码 *
...@@ -258,4 +167,28 @@ export function changeCurrentPort(data) { ...@@ -258,4 +167,28 @@ export function changeCurrentPort(data) {
258 method: 'post', 167 method: 'post',
259 data: data 168 data: data
260 }) 169 })
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 + })
261 } 194 }
...\ No newline at end of file ...\ No newline at end of file
......
1 +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1650528704724" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2035" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
2 +</style></defs><path d="M396.00128 892.68224c-130.6624-16.62976-247.6032-63.52896-247.6032-122.38336V692.8384c51.48672 38.62528 131.8912 66.23232 225.64864 79.33952 0.4096-20.84864 2.8672-41.21088 7.24992-60.87168-124.60032-18.14528-232.89856-63.7696-232.89856-120.34048v-77.45536c61.80864 46.36672 165.0688 77.08672 283.4432 85.44256a310.12864 310.12864 0 0 1 54.84544-58.61376c-161.792-2.176-338.28864-56.44288-338.28864-128.77824V354.05824C221.30688 408.69888 351.55968 442.04032 496.64 442.04032c145.03936 0 275.328-33.30048 348.24192-87.98208v57.50784c0 28.22144-27.02848 53.69856-69.4272 74.42432a307.38944 307.38944 0 0 1 65.29024 30.22848c1.26976-0.94208 2.8672-1.76128 4.1728-2.70336v5.24288a307.26144 307.26144 0 0 1 60.87168 50.5856V252.1088c0-108.25728-175.88224-189.89056-409.10848-189.89056s-409.1904 81.63328-409.1904 189.89056v518.18496c0 98.01728 144.26112 173.95712 344.55552 187.51488a306.62144 306.62144 0 0 1-36.0448-65.1264zM496.64 123.12576c164.40832 0 348.24192 55.17312 348.24192 128.98304S661.04832 381.09184 496.64 381.09184c-164.37248 0-348.20096-55.17312-348.20096-128.98304S332.26752 123.12576 496.64 123.12576z" p-id="2036"></path><path d="M731.4176 907.264l-95.0272-72.25344h-11.1872c-5.57056 0-5.57056 5.61152-5.57056 11.10016v38.87104c-39.15264-22.20032-67.09248-61.07136-72.65792-105.50784 0-11.10016-16.7936-22.24128-27.97568-22.24128-11.18208 0-22.36416 16.74752-22.36416 27.84768 5.61152 44.4416 27.97568 83.30752 55.9104 111.08352 22.36416 16.62976 44.72832 33.30048 67.09248 44.4416v44.44672c0 5.5296 0 5.5296 5.57056 5.5296 5.61664 5.61152 5.61664 5.61152 11.1872 5.61152l95.0272-72.25344s5.61664-5.5296 5.61664-11.10016c-0.00512-0.04608-0.00512-5.57568-5.62176-5.57568z m162.16064-183.25504l39.12192-22.24128c5.61152 0 5.61152-5.57056 5.61152-11.10016s0-5.5296-5.61152-11.10016l-111.8208-44.40064h-11.14112c-5.57056 0-5.57056 5.52448-5.57056 5.52448l-5.61664 122.22464c0 5.5296 0 5.5296 5.61664 5.5296h11.14112l33.54624-22.20032c0 44.4416-16.7936 88.84224-55.9104 116.65408-11.1872 11.10016-11.1872 22.20032-5.61664 33.30048 11.1872 11.10016 22.36928 11.10016 33.5104 0 55.95136-33.37728 83.97312-105.5488 72.73984-172.19072z m-234.7776-72.25344c0-5.5296 0-5.5296-5.61152-11.10016l-33.55136-16.62976c39.15776-22.20032 83.8912-27.77088 128.61952-11.10016 11.14112 5.61664 27.9296 0 33.50016-16.62976 5.61664-11.10016 0-27.77088-16.74752-33.30048-61.48096-22.20032-139.8016-5.57056-190.09536 33.30048l-44.72832-22.24128h-11.18208c0 5.61152-5.57056 5.61152 0 11.10016l11.18208 116.65408s0 5.57056 5.61664 5.57056h11.18208l111.8208-50.01216v-5.61152h-0.00512z" p-id="2037"></path></svg>
...\ 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": {
...@@ -59,16 +49,78 @@ let ductLabels = { ...@@ -59,16 +49,78 @@ let ductLabels = {
59 "2": "否", 49 "2": "否",
60 }, 50 },
61 }, 51 },
52 + "flightRand": {//航班顺位设置
53 + "status": {
54 + "0": "执行中",
55 + "1": "有效",
56 + "3": "停用"
57 + }
58 + },
59 + "FlightAlloc": {//航班配舱设置
60 + "status": {
61 + "0": "无效",
62 + "1": "有效",
63 + "2": "配置中",
64 + "3": "停用"
65 + }
66 + },
62 "logDmData": {//DM数据 67 "logDmData": {//DM数据
68 + "statusDetailCode": {
69 + "0": "未处理",
70 + "1": "处理成功",
71 + "2_1": "已处理(数据丢弃)",
72 + "2_2": "已处理(数据丢弃)",
73 + "2_3": "已处理(数据丢弃)",
74 + "2_4": "已处理(数据丢弃)",
75 + "3_1": "已处理(异常处理)",
76 + "3_2": "处理失败(系统异常)",
77 + "3_3": "处理失败(系统异常)",
78 + "3_4": "处理失败(系统异常)",
79 + "4_1": "处理失败(数据异常)",
80 + "4_2": "处理失败(数据异常)",
81 + "4_3": "处理失败(其他系统异常)",
82 + // "5": "处理失败(系统异常)",
83 + "9": "处理中",
84 + },
85 + "weatherGenerateWater": {
86 + "1": "是",
87 + "0": "否"
88 + },
89 + "sendLogSendResult": {
90 + "0": "未推",
91 + "1": "推送成功",
92 + "2": "推送失败"
93 + },
63 "status": { 94 "status": {
64 "0": "未处理", 95 "0": "未处理",
65 "1": "已处理", 96 "1": "已处理",
66 "2": "无需处理", 97 "2": "无需处理",
67 "3": "处理失败", 98 "3": "处理失败",
68 "4": "校验不通过", 99 "4": "校验不通过",
69 - "5": "数据不能被多次处理", 100 + "9": "处理中"
70 - "9": "处理中", 101 + }
102 + },
103 + "weatherTable": {
104 + "highLowPriceFlg": {
105 + "1": "开启",
106 + "0": "关闭"
107 + },
108 + "operationSource": {
109 + "1": "pre-MD cutoff",
110 + "2": "航班迁转手动释放",
111 + "3": "预审不通过定时任务",
112 + "4": "自动配舱"
71 }, 113 },
114 + "weightMark": {
115 + "1": "增加",
116 + "-1": "减少"
117 + }
118 + },
119 + "preFlight": {//航班预审
120 + "status": {
121 + "0": "关闭",
122 + "1": "开启"
123 + }
72 } 124 }
73 } 125 }
74 126
......
This diff is collapsed. Click to expand it.
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
9 } 9 }
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
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
113 font-size: 15px; 113 font-size: 15px;
114 color: #6379bb; 114 color: #6379bb;
115 // border-bottom: 1px solid #ddd; 115 // border-bottom: 1px solid #ddd;
116 - margin: 8px 10px 25px 10px; 116 + margin: 8px 10px 15px 10px;
117 padding-top: 15px; 117 padding-top: 15px;
118 padding-bottom: 5px; 118 padding-bottom: 5px;
119 119
......
...@@ -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 {
...@@ -247,4 +261,35 @@ aside { ...@@ -247,4 +261,35 @@ aside {
247 // 当表格只有横向滚动条,没有纵向滚动条时 261 // 当表格只有横向滚动条,没有纵向滚动条时
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;
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;
250 } 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
This diff is collapsed. Click to expand it.
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 })
......
...@@ -16,10 +16,12 @@ router.beforeEach((to, from, next) => { ...@@ -16,10 +16,12 @@ router.beforeEach((to, from, next) => {
16 if (store.getters.roles.length === 0) { 16 if (store.getters.roles.length === 0) {
17 // 判断当前用户是否已拉取完user_info信息 17 // 判断当前用户是否已拉取完user_info信息
18 store.dispatch('GetInfo').then(() => { 18 store.dispatch('GetInfo').then(() => {
19 - store.dispatch('GenerateRoutes').then(accessRoutes => { 19 + store.dispatch('GetTableHeaders').then(() => {
20 - // 根据roles权限生成可访问的路由表 20 + store.dispatch('GenerateRoutes').then(accessRoutes => {
21 - router.addRoutes(accessRoutes) // 动态添加可访问路由表 21 + // 根据roles权限生成可访问的路由表
22 - next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 22 + router.addRoutes(accessRoutes) // 动态添加可访问路由表
23 + next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
24 + })
23 }) 25 })
24 }).catch(err => { 26 }).catch(err => {
25 Message.error(err) 27 Message.error(err)
...@@ -48,7 +50,6 @@ router.beforeEach((to, from, next) => { ...@@ -48,7 +50,6 @@ router.beforeEach((to, from, next) => {
48 window.location.href = settings.logoutURL;//wsso系统跳转 50 window.location.href = settings.logoutURL;//wsso系统跳转
49 } 51 }
50 } 52 }
51 -
52 } 53 }
53 }) 54 })
54 55
......
...@@ -84,7 +84,13 @@ export const constantRoutes = [ ...@@ -84,7 +84,13 @@ export const constantRoutes = [
84 component: (resolve) => require(['@/views/allocationConfig/flightAllocConfig/info'], resolve), 84 component: (resolve) => require(['@/views/allocationConfig/flightAllocConfig/info'], resolve),
85 name: 'FlightAllocConfigAdd', 85 name: 'FlightAllocConfigAdd',
86 meta: { title: '添加航班配舱', icon: 'user', breadcrumb: false } 86 meta: { title: '添加航班配舱', icon: 'user', breadcrumb: false }
87 - } 87 + },
88 + {
89 + path: '/weatherTable',
90 + component: (resolve) => require(['@/views/systemLog/dmLog/weatherTable'], resolve),
91 + name: 'weatherTable',
92 + meta: { title: '流水表', icon: 'user' }
93 + },
88 ] 94 ]
89 } 95 }
90 ] 96 ]
......
...@@ -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.5.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
......
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,6 +65,25 @@ const user = { ...@@ -60,6 +65,25 @@ 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) => {
...@@ -67,16 +91,16 @@ const user = { ...@@ -67,16 +91,16 @@ const user = {
67 const user = res.data.user 91 const user = res.data.user
68 const avatar = user.avatar == "" ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar; 92 const avatar = user.avatar == "" ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
69 let ports = []; 93 let ports = [];
70 - if(user.portName){ 94 + if (user.portName) {
71 ports = user.portName.split(','); 95 ports = user.portName.split(',');
72 - commit('SET_PORTNAMES',ports) 96 + commit('SET_PORTNAMES', ports)
73 - commit('SET_ACTIVEPORTNAME', sessionStorage.getItem('portName')?sessionStorage.getItem('portName'):state.portNames[0]) 97 + commit('SET_ACTIVEPORTNAME', sessionStorage.getItem('portName') ? sessionStorage.getItem('portName') : state.portNames[0])
74 - }else{ 98 + } else {
75 Message({ 99 Message({
76 message: "未找到口岸信息!请确认后再登录", 100 message: "未找到口岸信息!请确认后再登录",
77 type: 'error' 101 type: 'error'
78 }) 102 })
79 - this.LogOut().then(()=>{ 103 + this.LogOut().then(() => {
80 window.location.href = "https://test-myapps.secure.fedex.com/purpleid/signout/";//wsso系统跳转 104 window.location.href = "https://test-myapps.secure.fedex.com/purpleid/signout/";//wsso系统跳转
81 }) 105 })
82 } 106 }
...@@ -98,12 +122,12 @@ const user = { ...@@ -98,12 +122,12 @@ const user = {
98 //切换口岸 122 //切换口岸
99 changePort({ commit }, portName) { 123 changePort({ commit }, portName) {
100 return new Promise((resolve, reject) => { 124 return new Promise((resolve, reject) => {
101 - changeCurrentPort({ portName: portName }).then(res=>{ 125 + changeCurrentPort({ portName: portName }).then(res => {
102 - if(res.code === 200){ 126 + if (res.code === 200) {
103 - commit('SET_ACTIVEPORTNAME',portName) 127 + commit('SET_ACTIVEPORTNAME', portName)
104 } 128 }
105 resolve(res) 129 resolve(res)
106 - }).catch(err=>{ 130 + }).catch(err => {
107 reject(err) 131 reject(err)
108 }) 132 })
109 }) 133 })
......
...@@ -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
......
...@@ -5,12 +5,12 @@ import { parseTime } from './FedEx' ...@@ -5,12 +5,12 @@ import { parseTime } from './FedEx'
5 */ 5 */
6 export function formatDate(cellValue) { 6 export function formatDate(cellValue) {
7 if (cellValue == null || cellValue == "") return ""; 7 if (cellValue == null || cellValue == "") return "";
8 - var date = new Date(cellValue) 8 + var date = new Date(cellValue)
9 var year = date.getFullYear() 9 var year = date.getFullYear()
10 var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 10 var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
11 - var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() 11 + var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
12 - var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() 12 + var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
13 - var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() 13 + var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
14 var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() 14 var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
15 return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds 15 return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
16 } 16 }
...@@ -218,7 +218,7 @@ export function getTime(type) { ...@@ -218,7 +218,7 @@ export function getTime(type) {
218 export function debounce(func, wait, immediate) { 218 export function debounce(func, wait, immediate) {
219 let timeout, args, context, timestamp, result 219 let timeout, args, context, timestamp, result
220 220
221 - const later = function() { 221 + const later = function () {
222 // 据上一次触发时间间隔 222 // 据上一次触发时间间隔
223 const last = +new Date() - timestamp 223 const last = +new Date() - timestamp
224 224
...@@ -235,7 +235,7 @@ export function debounce(func, wait, immediate) { ...@@ -235,7 +235,7 @@ export function debounce(func, wait, immediate) {
235 } 235 }
236 } 236 }
237 237
238 - return function(...args) { 238 + return function (...args) {
239 context = this 239 context = this
240 timestamp = +new Date() 240 timestamp = +new Date()
241 const callNow = immediate && !timeout 241 const callNow = immediate && !timeout
...@@ -330,7 +330,7 @@ export function makeMap(str, expectsLowerCase) { ...@@ -330,7 +330,7 @@ export function makeMap(str, expectsLowerCase) {
330 ? val => map[val.toLowerCase()] 330 ? val => map[val.toLowerCase()]
331 : val => map[val] 331 : val => map[val]
332 } 332 }
333 - 333 +
334 export const exportDefault = 'export default ' 334 export const exportDefault = 'export default '
335 335
336 export const beautifierConf = { 336 export const beautifierConf = {
...@@ -387,4 +387,4 @@ export function camelCase(str) { ...@@ -387,4 +387,4 @@ export function camelCase(str) {
387 export function isNumberStr(str) { 387 export function isNumberStr(str) {
388 return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str) 388 return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str)
389 } 389 }
390 - 390 +
......
1 <template> 1 <template>
2 <div> 2 <div>
3 - <el-dialog title="货物配舱" width="80%" :visible.sync="dialogVisible" :close-on-click-modal="false" 3 + <el-dialog title="货物配舱" width="80%" :visible.sync="dialogVisible" :close-on-click-modal="false" :show-close="false"
4 :append-to-body="true"> 4 :append-to-body="true">
5 <el-divider content-position="left">已选货物信息</el-divider> 5 <el-divider content-position="left">已选货物信息</el-divider>
6 <el-table :data="tableData" size="mini" height="200" max-height="200" border stripe highlight-current-row 6 <el-table :data="tableData" size="mini" height="200" max-height="200" border stripe highlight-current-row
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
32 32
33 <script> 33 <script>
34 import { allocationFlight } from "@/api/cargoSelect"; 34 import { allocationFlight } from "@/api/cargoSelect";
35 -import { MessageBox } from "element-ui"; 35 +
36 export default { 36 export default {
37 props: { 37 props: {
38 dialogVisible: { 38 dialogVisible: {
...@@ -109,14 +109,11 @@ export default { ...@@ -109,14 +109,11 @@ export default {
109 this.loading = false; 109 this.loading = false;
110 //code 200 配舱成功 202 重量已满需要确认 其余code直接输出msg 110 //code 200 配舱成功 202 重量已满需要确认 其余code直接输出msg
111 if (res.code === 200) { 111 if (res.code === 200) {
112 - this.$message({ 112 + this.msgSuccess('货物配舱成功')
113 - message: "货物配舱成功",
114 - type: "success",
115 - });
116 this.cleaerForm(); 113 this.cleaerForm();
117 this.$emit("dialogBeforeClose", { close: false, reload: true }); 114 this.$emit("dialogBeforeClose", { close: false, reload: true });
118 } else if (res.code === 202) { 115 } else if (res.code === 202) {
119 - MessageBox.confirm(res.msg, "提示", { 116 + this.$confirm(res.msg, "提示", {
120 confirmButtonText: "确定", 117 confirmButtonText: "确定",
121 cancelButtonText: "取消", 118 cancelButtonText: "取消",
122 type: "warning", 119 type: "warning",
...@@ -125,15 +122,9 @@ export default { ...@@ -125,15 +122,9 @@ export default {
125 this.formData.overweight = true; //确定继续overweight变为true再次请求接口 122 this.formData.overweight = true; //确定继续overweight变为true再次请求接口
126 allocationFlight(this.formData).then((res) => { 123 allocationFlight(this.formData).then((res) => {
127 if (res.code === 200) { 124 if (res.code === 200) {
128 - this.$message({ 125 + this.msgSuccess('货物配舱成功')
129 - message: "货物配舱成功",
130 - type: "success",
131 - });
132 } else { 126 } else {
133 - this.$message({ 127 + this.msgWarning(res.msg)
134 - message: res.msg,
135 - type: "warning",
136 - });
137 } 128 }
138 }); 129 });
139 this.cleaerForm(); 130 this.cleaerForm();
...@@ -141,10 +132,7 @@ export default { ...@@ -141,10 +132,7 @@ export default {
141 }) 132 })
142 .catch(() => { 133 .catch(() => {
143 //取消 取消当前配舱 134 //取消 取消当前配舱
144 - this.$message({ 135 + this.msgSuccess('配舱已取消')
145 - message: "配舱已取消",
146 - type: "success",
147 - });
148 this.cleaerForm(); 136 this.cleaerForm();
149 this.$emit("dialogBeforeClose", { 137 this.$emit("dialogBeforeClose", {
150 close: false, 138 close: false,
...@@ -153,20 +141,14 @@ export default { ...@@ -153,20 +141,14 @@ export default {
153 }); 141 });
154 } else { 142 } else {
155 this.loading = false; 143 this.loading = false;
156 - this.$message({ 144 + this.msgWarning(res.msg)
157 - message: res.msg,
158 - type: "warning",
159 - });
160 } 145 }
161 }).catch(() => { 146 }).catch(() => {
162 this.loading = false; 147 this.loading = false;
163 }); 148 });
164 } else { 149 } else {
165 this.loading = false; 150 this.loading = false;
166 - this.$message({ 151 + this.msgWarning('航班号或航班日期不能为空')
167 - message: "航班号或航班日期不能为空",
168 - type: "warning",
169 - });
170 } 152 }
171 }, 153 },
172 dialogBeforeClose() { 154 dialogBeforeClose() {
...@@ -191,7 +173,7 @@ export default { ...@@ -191,7 +173,7 @@ export default {
191 return this.formData.fltNo; 173 return this.formData.fltNo;
192 }, 174 },
193 set: function (val) { 175 set: function (val) {
194 - this.formData.fltNo = val.toUpperCase(); 176 + this.formData.fltNo = this.upCase(val);
195 }, 177 },
196 }, 178 },
197 }, 179 },
......
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" clearable></el-input> 6 + <el-input v-model.trim="purposeOfFlightNo" placeholder="航班号" @keyup.enter.native="getList"></el-input>
7 </el-form-item> 7 </el-form-item>
8 <el-form-item label="状态"> 8 <el-form-item label="状态">
9 - <el-select v-model="queryParams.status" placeholder="状态" clearable> 9 + <el-select v-model="queryParams.status" placeholder="状态">
10 <el-option label="有效" value="1"></el-option> 10 <el-option label="有效" value="1"></el-option>
11 <el-option label="停用" value="3"></el-option> 11 <el-option label="停用" value="3"></el-option>
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,44 +24,27 @@ ...@@ -24,44 +24,27 @@
24 ">添加</el-button> 24 ">添加</el-button>
25 </div> 25 </div>
26 </el-form> 26 </el-form>
27 - 27 + <Tables ref="newTables" ductName="FlightAlloc" :data="flyList" :headerData="tableHeaders['flightAlloc']"
28 - <el-table :data="flyList" v-loading="loading" size="small" highlight-current-row border stripe> 28 + :order="true" :totalCount="total" :loading="loading" :limitSize="queryParams.limit"
29 - <el-table-column prop="purposeOfFlightNo" label="航班号" align="center"></el-table-column> 29 + :limitStart="queryParams.start" :page="curPage" :pageSizes="[20]" :height="tableHeight"
30 - 30 + @currentChange="currentChange">
31 - <el-table-column prop="status" label="状态" align="center"> 31 + <template slot="optionColumn">
32 - <template slot-scope="scope"> 32 + <el-table-column label="操作" prop="id" align="center">
33 - <span v-if="scope.row.status === '0'">无效</span> 33 + <template slot-scope="scope">
34 - <span v-if="scope.row.status === '1'">有效</span> 34 + <el-button type="text" size="mini" icon="el-icon-view" @click="handleClick(scope.row.id, 'detail')">查看
35 - <span v-if="scope.row.status === '2'">配置中</span> 35 + </el-button>
36 - <span v-if="scope.row.status === '3'">停用</span> 36 + <el-button type="text" size="mini" icon="el-icon-edit" v-hasPermi="['allocation:alloc:update']"
37 - </template> 37 + @click="handleClick(scope.row.id, 'update')">修改</el-button>
38 - </el-table-column> 38 + <el-button type="text" size="mini" icon="el-icon-delete" style="color:#ff4949"
39 - 39 + v-hasPermi="['allocation:alloc:delete']" @click="del(scope.row.id, scope.row.status)">删除</el-button>
40 - <el-table-column prop="createUserName" label="操作人" align="center"> 40 + <el-button type="text" size="mini" icon="el-icon-video-pause" v-hasPermi="['allocation:alloc:openClose']"
41 - </el-table-column> 41 + @click="changeStatus(scope.row.id, 3)" v-if="scope.row.status == '1'">停用</el-button>
42 - 42 + <el-button type="text" size="mini" icon="el-icon-video-play" v-hasPermi="['allocation:alloc:openClose']"
43 - <el-table-column prop="createTime" label="更新时间" align="center"> 43 + @click="changeStatus(scope.row.id, 1)" v-else>启用</el-button>
44 - </el-table-column> 44 + </template>
45 - 45 + </el-table-column>
46 - <el-table-column label="操作" prop="id" align="center"> 46 + </template>
47 - <template slot-scope="scope"> 47 + </Tables>
48 - <el-button type="text" size="mini" icon="el-icon-view" @click="handleClick(scope.row.id, 'detail')">查看
49 - </el-button>
50 - <el-button type="text" size="mini" icon="el-icon-edit" v-hasPermi="['allocation:alloc:update']"
51 - @click="handleClick(scope.row.id, 'update')">修改</el-button>
52 - <el-button type="text" size="mini" icon="el-icon-delete" v-hasPermi="['allocation:alloc:delete']"
53 - @click="del(scope.row.id, scope.row.status)" style="color:#ff4949">删除</el-button>
54 - <el-button type="text" size="mini" icon="el-icon-video-pause" v-hasPermi="['allocation:alloc:openClose']"
55 - @click="changeStatus(scope.row.id, 3)" v-if="scope.row.status == '1'">停用</el-button>
56 - <el-button type="text" size="mini" icon="el-icon-video-play" v-hasPermi="['allocation:alloc:openClose']"
57 - @click="changeStatus(scope.row.id, 1)" v-else>启用</el-button>
58 - </template>
59 - </el-table-column>
60 - </el-table>
61 - <el-pagination @size-change="getList" @current-change="getList" :current-page.sync="curPage"
62 - :page-sizes="[10, 20, 30, 40]" :page-size.sync="limit" layout="prev, pager, next, jumper, sizes, total"
63 - :total="total" background :hide-on-single-page="true" style="margin-top: 40px; text-align: right">
64 - </el-pagination>
65 </div> 48 </div>
66 </template> 49 </template>
67 50
...@@ -80,12 +63,12 @@ export default { ...@@ -80,12 +63,12 @@ export default {
80 purposeOfFlightNo: "", 63 purposeOfFlightNo: "",
81 status: "1", 64 status: "1",
82 start: 0, 65 start: 0,
83 - limit: 10, 66 + limit: 20,
84 }, 67 },
85 flyList: [], 68 flyList: [],
86 curPage: 1, 69 curPage: 1,
87 - limit: 10,
88 total: 0, 70 total: 0,
71 + tableHeight: null,
89 loading: false, 72 loading: false,
90 }; 73 };
91 }, 74 },
...@@ -94,6 +77,9 @@ export default { ...@@ -94,6 +77,9 @@ export default {
94 this.getList(); 77 this.getList();
95 } 78 }
96 }, 79 },
80 + mounted() {
81 + this.tableHeight = window.innerHeight - this.$refs.flightAllocForm.$el.offsetHeight - 200
82 + },
97 activated() { 83 activated() {
98 this.getList() 84 this.getList()
99 }, 85 },
...@@ -102,7 +88,6 @@ export default { ...@@ -102,7 +88,6 @@ export default {
102 }, 88 },
103 methods: { 89 methods: {
104 getList() { 90 getList() {
105 - this.queryParams.limit = this.limit;
106 if (this.curPage > 1) { 91 if (this.curPage > 1) {
107 this.queryParams.start = (this.curPage - 1) * this.queryParams.limit; 92 this.queryParams.start = (this.curPage - 1) * this.queryParams.limit;
108 } else { 93 } else {
...@@ -111,11 +96,7 @@ export default { ...@@ -111,11 +96,7 @@ export default {
111 this.loading = true; 96 this.loading = true;
112 findFlightNo(this.queryParams).then((response) => { 97 findFlightNo(this.queryParams).then((response) => {
113 if (response.code != 200) { 98 if (response.code != 200) {
114 - this.$message({ 99 + this.msgWarning(response.msg)
115 - showClose: true,
116 - message: response.msg,
117 - type: "error",
118 - });
119 return; 100 return;
120 } 101 }
121 this.flyList = response.data.list; 102 this.flyList = response.data.list;
...@@ -147,11 +128,8 @@ export default { ...@@ -147,11 +128,8 @@ export default {
147 }).then(() => { 128 }).then(() => {
148 delFlightId(id) 129 delFlightId(id)
149 .then((res) => { 130 .then((res) => {
150 - this.$message({ 131 + res.code === 200 ? this.msgSuccess(res.msg) : this.msgWarning(res.msg)
151 - message: res.msg, 132 + this.getList()
152 - type: res.code === 200 ? "success" : "warning",
153 - });
154 - this.getList();
155 }) 133 })
156 .catch(() => { }); 134 .catch(() => { });
157 }); 135 });
...@@ -177,6 +155,12 @@ export default { ...@@ -177,6 +155,12 @@ export default {
177 .catch(() => { }); 155 .catch(() => { });
178 }); 156 });
179 }, 157 },
158 + //翻页
159 + currentChange(val) {
160 + this.curPage = val.page
161 + this.queryParams.start = val.start;
162 + this.getList();
163 + }
180 }, 164 },
181 computed: { 165 computed: {
182 purposeOfFlightNo: { 166 purposeOfFlightNo: {
...@@ -184,7 +168,7 @@ export default { ...@@ -184,7 +168,7 @@ export default {
184 return this.queryParams.purposeOfFlightNo; 168 return this.queryParams.purposeOfFlightNo;
185 }, 169 },
186 set: function (val) { 170 set: function (val) {
187 - this.queryParams.purposeOfFlightNo = val.toUpperCase(); 171 + this.queryParams.purposeOfFlightNo = this.upCase(val);
188 }, 172 },
189 }, 173 },
190 }, 174 },
......
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"
27 + v-hasPermi="['allocation:preReview:add']">新增预审航班</el-button>
28 + <el-button type="primary" size="small" icon="el-icon-check" :disabled="selectData.length == 0"
29 + @click="preOption(1)" v-hasPermi="['allocation:preReview:open']">
30 + 预审开启</el-button>
31 + <el-button type="primary" size="small" icon="el-icon-close" :disabled="selectData.length == 0"
32 + @click="preOption(0)" v-hasPermi="['allocation:preReview:close']">
33 + 预审关闭</el-button>
34 + <el-button type="danger" icon="el-icon-delete" size="small" :disabled="selectData.length == 0"
35 + @click="preOption(2)" v-hasPermi="['allocation:preReview:delete']">删 除
36 + </el-button>
37 + </div>
38 + <Tables ref="preFlight" ductName="preFlight" :selection="true" :selectFixed="false" :order='true'
39 + :height="tableHeight" :data="flightData" :headerData="tableHeaders" :page="pageOption.page" :pageSizes="[20]"
40 + :totalCount="total" :loading="tableLoading" @currentChange="currentChange"
41 + layout="total,prev, pager, next, jumper, ->" @tableSelect="tableSelection" @tableSelectAll="tableSelectAll">
42 + </Tables>
43 + <el-dialog title="新增预审航班" width="20%" :visible.sync="dialogVisible" :close-on-click-modal="false"
44 + :show-close="false" :append-to-body="true">
45 + <el-form ref="addForm" :model="newPre" label-width="auto" label-position="left" size="small" :rules="rules"
46 + @submit.native.prevent>
47 + <el-form-item label="航班号" prop="addFlitNo">
48 + <el-input type="textarea" v-model="fltNo" :rows="7" maxlength="255" show-word-limit placeholder="请输入航班号,用;分隔">
49 + </el-input>
50 + </el-form-item>
51 + </el-form>
52 + <div slot="footer">
53 + <el-button type="primary" :loading="loading" @click="submit">确 定</el-button>
54 + <el-button @click="close">取 消</el-button>
55 + </div>
56 + </el-dialog>
57 + </div>
58 +</template>
59 +
60 +<script>
61 +import { getpreAudit, addPreFlight, updatePreStatus } from '@/api/system/preReview.js'
62 +
63 +export default {
64 + name: "PreReviewFlight",
65 + data() {
66 + return {
67 + pageOption: {
68 + fltNo: undefined,
69 + page: 1,
70 + size: 20
71 + },//查询条件
72 + tableHeaders: [
73 + {
74 + columnChineseName: "航班号",
75 + columnName: "fltNo",
76 + columnWidth: "",
77 + status: 1
78 + },
79 + {
80 + columnChineseName: "预审状态",
81 + columnName: "status",
82 + columnWidth: "",
83 + status: 1
84 + },
85 + ],//表头
86 + flightData: [],//表格数据
87 + selectData: [],//选中数据
88 + newPre: {
89 + addFlitNo: '',
90 + },//新增航班
91 + rules: {
92 + fltNo: [
93 + {
94 + required: true,
95 + message: "航班号不能为空",
96 + trigger: "blur",
97 + }
98 + ]
99 + },//表单规则
100 + dialogVisible: false,
101 + total: 0,
102 + tableHeight: null,
103 + loading: false,
104 + tableLoading: false,
105 + };
106 + },
107 + created() {
108 + this.preQuery(1)
109 + },
110 + activated() {
111 + if (this.flightData.length > 0) {
112 + this.preQuery()
113 + }
114 + },
115 + mounted() {
116 + this.tableHeight = window.innerHeight - this.$refs.preReviewOptions.offsetHeight - 300
117 + },
118 + methods: {
119 + //搜索
120 + preQuery(val) {
121 + this.tableLoading = true
122 + this.selectData = []
123 + if (val === 1) {
124 + this.pageOption.page = 1
125 + }
126 + getpreAudit(this.pageOption).then(res => {
127 + this.tableLoading = false
128 + if (res.code === 200) {
129 + this.flightData = res.data.list
130 + this.total = res.data.total
131 + } else {
132 + this.msgWarning(res.msg)
133 + }
134 + }).catch(err => {
135 + this.tableLoading = false
136 + console.log(err)
137 + })
138 + },
139 + //保存
140 + submit() {
141 + this.$refs["addForm"].validate(val => {
142 + if (val) {
143 + this.loading = true
144 + let fltList = []
145 + this.newPre.addFlitNo.split(';').forEach(item => {
146 + if (item != '') {
147 + fltList.push(item)
148 + }
149 + })
150 + addPreFlight(fltList).then(res => {
151 + this.loading = false
152 + if (res.code === 200) {
153 + this.msgSuccess(res.msg)
154 + this.close()
155 + this.preQuery(1)
156 + } else {
157 + this.msgWarning(res.msg)
158 + }
159 + }).catch(err => {
160 + this.loading = false
161 + console.log(err)
162 + })
163 + }
164 + })
165 + },
166 + //预审状态修改
167 + preOption(val) {
168 + this.$confirm(val === 2 ? '是否要删除?' : val === 0 ? '是否要关闭预审' : '是否要开启预审', '系统提示', {
169 + closeOnClickModal: false,
170 + confirmButtonText: '确定',
171 + cancelButtonText: "取消",
172 + type: 'warning'
173 + }).then(() => {
174 + let idList = []
175 + this.selectData.forEach(item => {
176 + idList.push(item.id)
177 + })
178 + updatePreStatus({ ids: idList, status: val }).then(res => {
179 + if (res.code === 200) {
180 + this.msgSuccess(val === 2 ? '删除成功' : val === 0 ? '关闭成功' : '开启成功')
181 + this.preQuery(1)
182 + } else {
183 + this.msgWarning(res.msg)
184 + }
185 + }).catch(err => {
186 + console.log(err)
187 + })
188 + }).catch()
189 + },
190 + //关闭弹窗
191 + close() {
192 + this.dialogVisible = false
193 + this.newPre.addFlitNo = ''
194 + },
195 + //翻页
196 + currentChange(val) {
197 + this.pageOption.page = val.page
198 + this.preQuery()
199 + },
200 + //多选
201 + tableSelection(val) {
202 + this.selectData = val.selection
203 + },
204 + //全选
205 + tableSelectAll(val) {
206 + this.selectData = val
207 + },
208 + },
209 + computed: {
210 + queryfltNo: {
211 + get: function () {
212 + return this.pageOption.fltNo;
213 + },
214 + set: function (val) {
215 + this.pageOption.fltNo = this.upCase(val);
216 + },
217 + },
218 + fltNo: {
219 + get: function () {
220 + return this.newPre.addFlitNo;
221 + },
222 + set: function (val) {
223 + let reg = /^([0-9A-Za-z]{0,50}(\;[0-9a-zA-Z]{0,50})*)$/
224 + if (reg.test(val)) {
225 + this.newPre.addFlitNo = this.upCase(val);
226 + }
227 + },
228 + }
229 + }
230 +};
231 +</script>
232 +<style rel="stylesheet/scss" lang="scss">
233 +</style>
1 <template> 1 <template>
2 <div> 2 <div>
3 - <el-form class="form-header" :model="queryParams" label-position="right" label-width="auto" size="medium"> 3 + <el-form class="form-header" :model="queryParams" label-position="right" label-width="auto" size="small">
4 <el-row> 4 <el-row>
5 <el-col :span="6"> 5 <el-col :span="6">
6 <el-form-item label="航班日期从" prop="fltDateStart"> 6 <el-form-item label="航班日期从" prop="fltDateStart">
...@@ -23,25 +23,25 @@ ...@@ -23,25 +23,25 @@
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="运单号">
27 - <el-input clearable type="textarea" v-model="queryParams.waybillNo" class="formItem"
28 - placeholder="请输入运单号(回车间隔)" :rows="1" :maxlength="12000"></el-input>
29 - </el-form-item>
30 - </el-col>
31 - </el-row>
32 - <el-row>
33 - <el-col :span="6">
34 <el-form-item label="站点"> 26 <el-form-item label="站点">
35 <el-input type="textarea" v-model="siteName" class="formItem" placeholder="PVG;PEK" clearable :rows="1"> 27 <el-input type="textarea" v-model="siteName" class="formItem" placeholder="PVG;PEK" clearable :rows="1">
36 </el-input> 28 </el-input>
37 </el-form-item> 29 </el-form-item>
38 </el-col> 30 </el-col>
31 + </el-row>
32 + <el-row>
39 <el-col :span="6"> 33 <el-col :span="6">
40 <el-form-item label="URSA"> 34 <el-form-item label="URSA">
41 <el-input clearable type="textarea" v-model="ursa" class="formItem" placeholder="S_;P_;E2" :rows="1"> 35 <el-input clearable type="textarea" v-model="ursa" class="formItem" placeholder="S_;P_;E2" :rows="1">
42 </el-input> 36 </el-input>
43 </el-form-item> 37 </el-form-item>
44 </el-col> 38 </el-col>
39 + <el-col :span="6">
40 + <el-form-item label="运单号">
41 + <el-input clearable type="textarea" v-model="queryParams.waybillNo" class="formItem"
42 + placeholder="请输入运单号(回车间隔)" :rows="4"></el-input>
43 + </el-form-item>
44 + </el-col>
45 </el-row> 45 </el-row>
46 <el-switch v-model="queryParams.reExport" active-color="#13ce66" active-text="重新导出" style="padding-left: 35px"> 46 <el-switch v-model="queryParams.reExport" active-color="#13ce66" active-text="重新导出" style="padding-left: 35px">
47 </el-switch> 47 </el-switch>
...@@ -53,7 +53,6 @@ ...@@ -53,7 +53,6 @@
53 }}</el-button> 53 }}</el-button>
54 </div> 54 </div>
55 </el-form> 55 </el-form>
56 -
57 <el-table max-height="500" highlight-current-row border stripe v-loading="loading" :data="tableData"> 56 <el-table max-height="500" highlight-current-row border stripe v-loading="loading" :data="tableData">
58 <el-table-column label="运单号" align="center" prop="waybillNo" /> 57 <el-table-column label="运单号" align="center" prop="waybillNo" />
59 <el-table-column :show-overflow-tooltip="true" label="品牌描述" align="center" prop="nameDescription" /> 58 <el-table-column :show-overflow-tooltip="true" label="品牌描述" align="center" prop="nameDescription" />
...@@ -159,10 +158,7 @@ export default { ...@@ -159,10 +158,7 @@ export default {
159 this.total = response.data.totalCount; 158 this.total = response.data.totalCount;
160 this.loading = false; 159 this.loading = false;
161 if (response.data.list.length == 0) { 160 if (response.data.list.length == 0) {
162 - this.$message({ 161 + this.msgWarning('未查询到数据')
163 - message: "未查询到数据",
164 - type: "warning",
165 - });
166 } 162 }
167 } else { 163 } else {
168 this.msgError(response.msg); 164 this.msgError(response.msg);
...@@ -176,7 +172,7 @@ export default { ...@@ -176,7 +172,7 @@ export default {
176 return this.queryParams.fltNo; 172 return this.queryParams.fltNo;
177 }, 173 },
178 set: function (val) { 174 set: function (val) {
179 - this.queryParams.fltNo = val.toUpperCase(); 175 + this.queryParams.fltNo = this.upCase(val);
180 }, 176 },
181 }, 177 },
182 siteName: { 178 siteName: {
...@@ -184,7 +180,7 @@ export default { ...@@ -184,7 +180,7 @@ export default {
184 return this.queryParams.siteName; 180 return this.queryParams.siteName;
185 }, 181 },
186 set: function (val) { 182 set: function (val) {
187 - this.queryParams.siteName = val.toUpperCase(); 183 + this.queryParams.siteName = this.upCase(val);
188 }, 184 },
189 }, 185 },
190 ursa: { 186 ursa: {
...@@ -192,7 +188,7 @@ export default { ...@@ -192,7 +188,7 @@ export default {
192 return this.queryParams.ursa; 188 return this.queryParams.ursa;
193 }, 189 },
194 set: function (val) { 190 set: function (val) {
195 - this.queryParams.ursa = val.toUpperCase(); 191 + this.queryParams.ursa = this.upCase(val);
196 }, 192 },
197 }, 193 },
198 }, 194 },
......
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,19 +49,13 @@ export default { ...@@ -49,19 +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 - 58 + let fileName = "航班预审回执导入模板.xlsx";
64 - let fileName = "航班预审导入模板.xlsx";
65 downLoadTemplate().then((res) => { 59 downLoadTemplate().then((res) => {
66 if (res) { 60 if (res) {
67 const blob = new Blob([res]); 61 const blob = new Blob([res]);
...@@ -83,7 +77,7 @@ export default { ...@@ -83,7 +77,7 @@ export default {
83 //上传excel 77 //上传excel
84 const file = option.file; 78 const file = option.file;
85 this.loading = true; 79 this.loading = true;
86 - importcaPreReview(file, this.form.type).then((res) => { 80 + importcaPreReview(file, '').then((res) => {
87 this.loading = false; 81 this.loading = false;
88 if (res.code != 200) { 82 if (res.code != 200) {
89 if (res.code == 603) { 83 if (res.code == 603) {
...@@ -92,7 +86,7 @@ export default { ...@@ -92,7 +86,7 @@ export default {
92 type: "warning", 86 type: "warning",
93 }); 87 });
94 } else { 88 } else {
95 - this.$message.error(res.msg); 89 + this.$message.warning(res.msg);
96 this.tableData = res.data; 90 this.tableData = res.data;
97 } 91 }
98 } else { 92 } else {
......
...@@ -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">
...@@ -60,6 +60,15 @@ export default { ...@@ -60,6 +60,15 @@ export default {
60 }; 60 };
61 }, 61 },
62 methods: { 62 methods: {
63 + typeData() {
64 + filghtKindData().then((response) => {
65 + if (response.code != 200) {
66 + this.msgError(response.msg)
67 + }
68 + this.flightType = response.data;
69 + this.form.type = response.data[0].code;
70 + });
71 + },
63 downloadTempleate() { 72 downloadTempleate() {
64 let downloadType = ""; 73 let downloadType = "";
65 let fileName = ""; 74 let fileName = "";
...@@ -108,7 +117,7 @@ export default { ...@@ -108,7 +117,7 @@ export default {
108 type: "warning", 117 type: "warning",
109 }); 118 });
110 } else { 119 } else {
111 - this.$message.error(res.msg); 120 + this.$message.warning(res.msg);
112 this.tableData = res.data; 121 this.tableData = res.data;
113 } 122 }
114 } else { 123 } else {
...@@ -133,17 +142,11 @@ export default { ...@@ -133,17 +142,11 @@ export default {
133 }, 142 },
134 }, 143 },
135 created() { 144 created() {
136 - filghtKindData().then((response) => { 145 + this.typeData()
137 - if (response.code != 200) {
138 - this.$message({
139 - message: response.msg,
140 - type: "error",
141 - });
142 - }
143 - this.flightType = response.data;
144 - this.form.type = response.data[0].code;
145 - });
146 }, 146 },
147 + activated() {
148 + this.typeData()
149 + }
147 }; 150 };
148 </script> 151 </script>
149 <style rel="stylesheet/scss" lang="scss"> 152 <style rel="stylesheet/scss" lang="scss">
......
...@@ -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>
...@@ -157,20 +158,31 @@ ...@@ -157,20 +158,31 @@
157 v-model="form.extraWeightPercent"></el-input-number> 158 v-model="form.extraWeightPercent"></el-input-number>
158 </el-form-item> 159 </el-form-item>
159 </el-col> 160 </el-col>
160 - <el-col :span="12"> 161 + <el-col :span="6">
161 <el-form-item label="是否开启高低价" prop="highLowPriceFlg"> 162 <el-form-item label="是否开启高低价" prop="highLowPriceFlg">
162 <el-switch class="wid80" @change="LowHighAvailable" v-model="form.highLowPriceFlg" :active-value="1" 163 <el-switch class="wid80" @change="LowHighAvailable" v-model="form.highLowPriceFlg" :active-value="1"
163 :inactive-value="0" active-color="#13ce66"> 164 :inactive-value="0" active-color="#13ce66">
164 </el-switch> 165 </el-switch>
165 </el-form-item> 166 </el-form-item>
166 </el-col> 167 </el-col>
168 + <el-col :span="6">
169 + <el-form-item label="该航班预审状态:">
170 + <el-tag v-if="preAudit" :type="preAudit == '开启' ? 'success' : 'info'" effect="dark">{{ preAudit }}
171 + </el-tag>
172 + </el-form-item>
173 + </el-col>
167 </el-row> 174 </el-row>
168 <el-row> 175 <el-row>
169 <el-col :span="12"> 176 <el-col :span="12">
170 - <el-form-item label="是否预审" prop="isNeedRequired"> 177 + <el-form-item label="今日航班预审状态" prop="isNeedRequired">
171 - <el-switch class="wid80" :disabled="true" v-model="form.isNeedRequired" :active-value="1" 178 + <el-select class="wid80" v-model="form.isNeedRequired" placeholder="">
172 - :inactive-value="0" active-color="#13ce66"> 179 + <el-option label="未设置" :value="2">
173 - </el-switch> 180 + </el-option>
181 + <el-option label="开启" :value="1">
182 + </el-option>
183 + <el-option label="关闭" :value="0">
184 + </el-option>
185 + </el-select>
174 </el-form-item> 186 </el-form-item>
175 </el-col> 187 </el-col>
176 <el-col :span="12"> 188 <el-col :span="12">
...@@ -250,6 +262,7 @@ import { ...@@ -250,6 +262,7 @@ import {
250 updateStatusBatch, 262 updateStatusBatch,
251 updateAutoPushBatch, 263 updateAutoPushBatch,
252 } from "@/api/findAllFltData"; 264 } from "@/api/findAllFltData";
265 +import { getpreAudit } from '@/api/system/preReview.js'
253 266
254 export default { 267 export default {
255 name: "FlightInformationMaintenance", 268 name: "FlightInformationMaintenance",
...@@ -268,7 +281,9 @@ export default { ...@@ -268,7 +281,9 @@ export default {
268 fltNo: undefined, //航班号,要大写 281 fltNo: undefined, //航班号,要大写
269 }, 282 },
270 //表单参数 283 //表单参数
271 - form: {}, 284 + form: {
285 + isNeedRequired: 2
286 + },
272 //表单校验 287 //表单校验
273 rules: { 288 rules: {
274 fltNo: [ 289 fltNo: [
...@@ -306,7 +321,7 @@ export default { ...@@ -306,7 +321,7 @@ export default {
306 // trigger: "blur", 321 // trigger: "blur",
307 // }, 322 // },
308 // { 323 // {
309 - // pattern: /^([A-Z]{3,4})(\-[A-Z]{3,4})+$/, 324 + // pattern: /^(([\~A-Z]{3,4})(\-[A-Z]{3,4})+)(;{1,1}(([\~A-Z]{3,4})(\-[A-Z]{3,4})+)){0,}$/,
310 // message: "请输入正确得航班线路" 325 // message: "请输入正确得航班线路"
311 // } 326 // }
312 // ] 327 // ]
...@@ -396,6 +411,8 @@ export default { ...@@ -396,6 +411,8 @@ export default {
396 ids: [], 411 ids: [],
397 //目的航班数据 412 //目的航班数据
398 sourceFlightAndFlightDate: [], 413 sourceFlightAndFlightDate: [],
414 + //航班预审状态
415 + preAudit: null,
399 //高价百分比是否打开 416 //高价百分比是否打开
400 ishighPriceWeightPercent: true, 417 ishighPriceWeightPercent: true,
401 //遮罩层 418 //遮罩层
...@@ -456,6 +473,7 @@ export default { ...@@ -456,6 +473,7 @@ export default {
456 this.form.fltNo != "" 473 this.form.fltNo != ""
457 ) { 474 ) {
458 this.form.fltNo = this.form.fltNo.toUpperCase(); 475 this.form.fltNo = this.form.fltNo.toUpperCase();
476 + this.perStatus(this.form.fltNo)
459 findFltCommonConf(this.form).then((response) => { 477 findFltCommonConf(this.form).then((response) => {
460 if (response.code == 200) { 478 if (response.code == 200) {
461 //额外增重百分比:根据已存在的相同航班号对应的最新值进行设置,如果无相同航班号,按照默认设置为0,不可编辑 479 //额外增重百分比:根据已存在的相同航班号对应的最新值进行设置,如果无相同航班号,按照默认设置为0,不可编辑
...@@ -486,15 +504,6 @@ export default { ...@@ -486,15 +504,6 @@ export default {
486 //this.form.highLowPriceFlg = true; 504 //this.form.highLowPriceFlg = true;
487 } 505 }
488 //是否预审:根据已存在的相同航班号对应的最新值进行设置,如果无相同航班号,按照默认设置‘是否预审’ 为否,不可编辑; 506 //是否预审:根据已存在的相同航班号对应的最新值进行设置,如果无相同航班号,按照默认设置‘是否预审’ 为否,不可编辑;
489 - if (
490 - response.data != null &&
491 - response.data.isNeedRequired != null &&
492 - response.data.isNeedRequired != undefined
493 - ) {
494 - this.form.isNeedRequired = response.data.isNeedRequired;
495 - } else {
496 - this.form.isNeedRequired = 0;
497 - }
498 //高/低价百分比:根据已存在的相同航班号对应的最新值进行设置,如果无相同航班号,按照默认设置‘高价百分比’60%,‘低价百分比’40%,不可编辑 507 //高/低价百分比:根据已存在的相同航班号对应的最新值进行设置,如果无相同航班号,按照默认设置‘高价百分比’60%,‘低价百分比’40%,不可编辑
499 if ( 508 if (
500 response.data != null && 509 response.data != null &&
...@@ -538,6 +547,18 @@ export default { ...@@ -538,6 +547,18 @@ export default {
538 } 547 }
539 }); 548 });
540 }, 549 },
550 + //获取航班预审状态
551 + perStatus(val) {
552 + getpreAudit({ fltNo: val, page: 1, size: 20 }).then(res => {
553 + if (res.code === 200) {
554 + this.preAudit = res.data.list.length == 0 ? '关闭' : res.data.list[0].status == 0 ? '关闭' : res.data.list[0].status == 1 ? '开启' : ''
555 + } else {
556 + this.msgWarning(res.msg)
557 + }
558 + }).catch(err => {
559 + console.log(err)
560 + })
561 + },
541 /** 航班信息维护查询*/ 562 /** 航班信息维护查询*/
542 findAllFltData() { 563 findAllFltData() {
543 this.ids = []; 564 this.ids = [];
...@@ -569,6 +590,7 @@ export default { ...@@ -569,6 +590,7 @@ export default {
569 handleAdd() { 590 handleAdd() {
570 this.reset(); 591 this.reset();
571 this.findFltConditionData(); 592 this.findFltConditionData();
593 + this.preAudit = null;
572 this.open = true; 594 this.open = true;
573 this.title = "添加航班信息"; 595 this.title = "添加航班信息";
574 this.form.id = null; 596 this.form.id = null;
...@@ -685,6 +707,7 @@ export default { ...@@ -685,6 +707,7 @@ export default {
685 handleUpdate(row) { 707 handleUpdate(row) {
686 this.reset(); 708 this.reset();
687 this.findFltConditionData(); 709 this.findFltConditionData();
710 + this.perStatus(row.fltNo)
688 this.open = true; 711 this.open = true;
689 this.title = "修改航班信息"; 712 this.title = "修改航班信息";
690 //航班号 713 //航班号
...@@ -789,7 +812,7 @@ export default { ...@@ -789,7 +812,7 @@ export default {
789 }, 812 },
790 //表单重置 813 //表单重置
791 reset() { 814 reset() {
792 - this.form = {}; 815 + this.form = { isNeedRequired: 2 };
793 this.resetForm("form"); 816 this.resetForm("form");
794 }, 817 },
795 //取消按钮 818 //取消按钮
...@@ -896,6 +919,7 @@ export default { ...@@ -896,6 +919,7 @@ export default {
896 //每页长度 919 //每页长度
897 sizeChange(val) { 920 sizeChange(val) {
898 this.queryParams.limitSize = val; 921 this.queryParams.limitSize = val;
922 + this.queryParams.pageNum = 1
899 this.findAllFltData(); 923 this.findAllFltData();
900 }, 924 },
901 setClose() { 925 setClose() {
......
1 <template> 1 <template>
2 <div class="login" :style="display"> 2 <div class="login" :style="display">
3 - <el-form 3 + <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
4 - ref="loginForm"
5 - :model="loginForm"
6 - :rules="loginRules"
7 - class="login-form"
8 - >
9 <h3 class="title">IMAC后台管理系统</h3> 4 <h3 class="title">IMAC后台管理系统</h3>
10 <el-form-item prop="username"> 5 <el-form-item prop="username">
11 - <el-input 6 + <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号">
12 - v-model="loginForm.username" 7 + <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
13 - type="text"
14 - auto-complete="off"
15 - placeholder="账号"
16 - >
17 - <svg-icon
18 - slot="prefix"
19 - icon-class="user"
20 - class="el-input__icon input-icon"
21 - />
22 </el-input> 8 </el-input>
23 </el-form-item> 9 </el-form-item>
24 <el-form-item prop="password"> 10 <el-form-item prop="password">
25 - <el-input 11 + <el-input v-model="loginForm.password" type="password" auto-complete="off" placeholder="密码"
26 - v-model="loginForm.password" 12 + @keyup.enter.native="handleLogin">
27 - type="password" 13 + <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
28 - auto-complete="off"
29 - placeholder="密码"
30 - @keyup.enter.native="handleLogin"
31 - >
32 - <svg-icon
33 - slot="prefix"
34 - icon-class="password"
35 - class="el-input__icon input-icon"
36 - />
37 </el-input> 14 </el-input>
38 </el-form-item> 15 </el-form-item>
39 <!-- <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox> --> 16 <!-- <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox> -->
40 <el-form-item style="width: 100%; marginTop: 44px"> 17 <el-form-item style="width: 100%; marginTop: 44px">
41 - <el-button 18 + <el-button :loading="loading" size="medium" type="primary" style="width: 100%"
42 - :loading="loading" 19 + @click.native.prevent="handleLogin">
43 - size="medium"
44 - type="primary"
45 - style="width: 100%"
46 - @click.native.prevent="handleLogin"
47 - >
48 <span v-if="!loading">登 录</span> 20 <span v-if="!loading">登 录</span>
49 <span v-else>登 录 中...</span> 21 <span v-else>登 录 中...</span>
50 </el-button> 22 </el-button>
...@@ -83,17 +55,17 @@ export default { ...@@ -83,17 +55,17 @@ export default {
83 }, 55 },
84 loading: false, 56 loading: false,
85 redirect: undefined, 57 redirect: undefined,
86 - display: "display:none", 58 + display: "display:flex",
87 }; 59 };
88 }, 60 },
89 watch: { 61 watch: {
90 $route: { 62 $route: {
91 - handler: function(route) { 63 + handler: function (route) {
92 this.redirect = route.query && route.query.redirect; 64 this.redirect = route.query && route.query.redirect;
93 }, 65 },
94 immediate: true 66 immediate: true
95 } 67 }
96 - }, 68 + },
97 created() { 69 created() {
98 this.getCookie(); 70 this.getCookie();
99 }, 71 },
...@@ -130,7 +102,7 @@ export default { ...@@ -130,7 +102,7 @@ export default {
130 this.$store 102 this.$store
131 .dispatch("Login", this.loginForm) 103 .dispatch("Login", this.loginForm)
132 .then(() => { 104 .then(() => {
133 - this.$router.push({ path: this.redirect || "/" }).catch(() => {}); 105 + this.$router.push({ path: this.redirect || "/" }).catch(() => { });
134 }) 106 })
135 .catch(() => { 107 .catch(() => {
136 this.loading = false; 108 this.loading = false;
...@@ -145,13 +117,14 @@ export default { ...@@ -145,13 +117,14 @@ export default {
145 117
146 <style rel="stylesheet/scss" lang="scss"> 118 <style rel="stylesheet/scss" lang="scss">
147 .login { 119 .login {
148 - display: none; 120 + display: flex;
149 justify-content: center; 121 justify-content: center;
150 align-items: center; 122 align-items: center;
151 height: 100%; 123 height: 100%;
152 background-image: url("../assets/images/login-background.jpg"); 124 background-image: url("../assets/images/login-background.jpg");
153 background-size: cover; 125 background-size: cover;
154 } 126 }
127 +
155 .title { 128 .title {
156 margin: 0px auto 30px auto; 129 margin: 0px auto 30px auto;
157 text-align: center; 130 text-align: center;
...@@ -163,32 +136,39 @@ export default { ...@@ -163,32 +136,39 @@ export default {
163 background: #ffffff; 136 background: #ffffff;
164 width: 400px; 137 width: 400px;
165 padding: 25px 25px 5px 25px; 138 padding: 25px 25px 5px 25px;
139 +
166 .el-input { 140 .el-input {
167 height: 38px; 141 height: 38px;
142 +
168 input { 143 input {
169 height: 38px; 144 height: 38px;
170 } 145 }
171 } 146 }
147 +
172 .input-icon { 148 .input-icon {
173 height: 39px; 149 height: 39px;
174 width: 14px; 150 width: 14px;
175 margin-left: 2px; 151 margin-left: 2px;
176 } 152 }
177 } 153 }
154 +
178 .login-tip { 155 .login-tip {
179 font-size: 13px; 156 font-size: 13px;
180 text-align: center; 157 text-align: center;
181 color: #bfbfbf; 158 color: #bfbfbf;
182 } 159 }
160 +
183 .login-code { 161 .login-code {
184 width: 33%; 162 width: 33%;
185 height: 38px; 163 height: 38px;
186 float: right; 164 float: right;
165 +
187 img { 166 img {
188 cursor: pointer; 167 cursor: pointer;
189 vertical-align: middle; 168 vertical-align: middle;
190 } 169 }
191 } 170 }
171 +
192 .el-login-footer { 172 .el-login-footer {
193 height: 40px; 173 height: 40px;
194 line-height: 40px; 174 line-height: 40px;
...@@ -201,6 +181,7 @@ export default { ...@@ -201,6 +181,7 @@ export default {
201 font-size: 12px; 181 font-size: 12px;
202 letter-spacing: 1px; 182 letter-spacing: 1px;
203 } 183 }
184 +
204 .login-code-img { 185 .login-code-img {
205 height: 38px; 186 height: 38px;
206 } 187 }
......
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 :title="drawerTitle" width="50%" :visible.sync="dialogVisible" :close-on-click-modal="false"
4 - :append-to-body="true">
5 - <el-form ref="userForm" :model="menuForm" :disabled="menuFormDisabled" :rules="rules" label-width="auto"
6 - style="margin: 10px">
7 - <el-row>
8 - <el-col :span="12">
9 - <el-form-item label="菜单名称" prop="">
10 - <!-- <el-input
11 - placeholder="请输入权限名"
12 - :disabled="menuFormDisabled"
13 - v-model="menuData.userName"
14 - size="mini"
15 - ></el-input> -->
16 - </el-form-item>
17 - </el-col>
18 - <el-col :span="12">
19 - <el-form-item label="菜单路由" prop="">
20 - <!-- <el-input
21 - placeholder="请输入权限名"
22 - :disabled="menuFormDisabled"
23 - v-model="menuData.userName"
24 - size="mini"
25 - ></el-input> -->
26 - </el-form-item>
27 - </el-col>
28 - <el-col :span="12">
29 - <el-form-item label="组件名称" prop="">
30 - <!-- <el-input
31 - placeholder="请输入权限名"
32 - :disabled="menuFormDisabled"
33 - v-model="menuData.userName"
34 - size="mini"
35 - ></el-input> -->
36 - </el-form-item>
37 - </el-col>
38 - <el-col :span="24">
39 - <el-form-item label="菜单状态" prop="">
40 - <el-switch v-model="menuData.menuStatus" active-color="#13ce66" inactive-color="#ff4949"
41 - :disabled="menuFormDisabled"></el-switch>
42 - </el-form-item>
43 - </el-col>
44 - <el-col :span="24">
45 - <el-form-item label="图标选择" prop="">
46 - <iconSelect @selected="selected"></iconSelect>
47 - </el-form-item>
48 - </el-col>
49 - <el-col :span="24">
50 - <el-form-item label="权限设置" prop="">
51 - <el-col :span="6">
52 - <el-radio label="页面" size="medium"></el-radio>
53 - </el-col>
54 - <el-col :span="6">
55 - <el-radio label="按钮" size="medium"></el-radio>
56 - </el-col>
57 - <el-col :span="24">
58 - <el-card shadow="never">
59 - <el-input placeholder=""></el-input>
60 - </el-card>
61 - </el-col>
62 - </el-form-item>
63 - </el-col>
64 - </el-row>
65 - </el-form>
66 -
67 - <div slot="footer">
68 - <el-button @click="handleClose">取 消</el-button>
69 - <el-button type="primary" @click="submit">确 定</el-button>
70 - </div>
71 - </el-dialog>
72 - </div>
73 -</template>
74 -
75 -<script>
76 -import iconSelect from "@/components/IconSelect";
77 -export default {
78 - components: {
79 - iconSelect,
80 - },
81 - props: {
82 - drawerTitle: {
83 - type: String,
84 - default: "",
85 - },
86 - menuFormDisabled: {
87 - type: Boolean,
88 - default: false,
89 - },
90 - dialogVisible: {
91 - type: Boolean,
92 - default: false,
93 - },
94 - menuData: {
95 - type: Object,
96 - default: null,
97 - },
98 - },
99 - data() {
100 - return {
101 - menuForm: {},
102 - rules: {}
103 - };
104 - },
105 - updated() {
106 - this.menuForm = this.menuData;
107 - },
108 - watch: {
109 - dialogVisible(val, oldVal) {
110 - if (val) {
111 - this.menuForm = this.menuData;
112 - }
113 - }
114 - },
115 - methods: {
116 - handleClose() {
117 - this.$emit("handleClose", false);
118 - },
119 - selected(val) {
120 - console.log(val);
121 - },
122 - submit() { },
123 - },
124 -};
125 -</script>
126 -
127 -<style>
128 -</style>
...\ No newline at end of file ...\ No newline at end of file
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
12 :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> 12 :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
13 <template v-for="(item, index) in tableHeader"> 13 <template v-for="(item, index) in tableHeader">
14 <el-table-column v-if="item.value === 'menuType'" :prop="item.value" :label="item.name" :key="index" 14 <el-table-column v-if="item.value === 'menuType'" :prop="item.value" :label="item.name" :key="index"
15 - :align="item.align" header-align="center" showOverflowTooltip :width="item.width" :formatter="formatter"> 15 + :align="item.align" header-align="center" :width="item.width" :formatter="formatter">
16 <template slot-scope="scope"> 16 <template slot-scope="scope">
17 <el-tag :type="scope.row.menuType === 'B' ? '' : 'success'" disable-transitions>{{ scope.row.menuType === 17 <el-tag :type="scope.row.menuType === 'B' ? '' : 'success'" disable-transitions>{{ scope.row.menuType ===
18 "B" ? "按钮" : "菜单" 18 "B" ? "按钮" : "菜单"
...@@ -20,10 +20,9 @@ ...@@ -20,10 +20,9 @@
20 </template> 20 </template>
21 </el-table-column> 21 </el-table-column>
22 <el-table-column v-else :prop="item.value" :label="item.name" :key="index" :align="item.align" 22 <el-table-column v-else :prop="item.value" :label="item.name" :key="index" :align="item.align"
23 - header-align="center" showOverflowTooltip :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"; 47 +
85 -import { MessageBox } from "element-ui";
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;
...@@ -175,48 +126,34 @@ export default { ...@@ -175,48 +126,34 @@ export default {
175 if (res.code === 200) { 126 if (res.code === 200) {
176 res.data.length > 0 127 res.data.length > 0
177 ? (this.data = res.data) 128 ? (this.data = res.data)
178 - : this.$message({ 129 + : this.msgWarning('数据为空')
179 - message: "数据为空",
180 - type: "warning",
181 - });
182 } else { 130 } else {
183 - this.$message({ 131 + this.msgWarning(res.msg)
184 - message: res.msg,
185 - type: "warning",
186 - });
187 } 132 }
188 }) 133 })
189 .catch(() => { 134 .catch(() => {
190 this.loading = false; 135 this.loading = false;
191 }); 136 });
192 }, 137 },
193 -
194 //菜单状态改变 138 //菜单状态改变
195 statusUpdate(data) { 139 statusUpdate(data) {
196 updateStatus(data) 140 updateStatus(data)
197 .then((res) => { 141 .then((res) => {
198 if (res.code === 200) { 142 if (res.code === 200) {
199 this.menuAll(); 143 this.menuAll();
200 - this.$message({ 144 + this.msgSuccess('操作成功')
201 - message: "操作成功",
202 - type: "success",
203 - });
204 location.reload(); 145 location.reload();
205 } else { 146 } else {
206 - this.$message({ 147 + this.msgWarning(res.msg)
207 - message: res.msg,
208 - type: "warning",
209 - });
210 } 148 }
211 }) 149 })
212 .catch((err) => { 150 .catch((err) => {
213 console.log(err); 151 console.log(err);
214 }); 152 });
215 }, 153 },
216 -
217 //菜单开启关闭 154 //菜单开启关闭
218 menuStatus(row) { 155 menuStatus(row) {
219 - MessageBox.confirm( 156 + this.$confirm(
220 row.row.status == 1 ? "是否要关闭此菜单" : "是否要启用此菜单", 157 row.row.status == 1 ? "是否要关闭此菜单" : "是否要启用此菜单",
221 "提示", 158 "提示",
222 { 159 {
...@@ -233,10 +170,9 @@ export default { ...@@ -233,10 +170,9 @@ export default {
233 }) 170 })
234 .catch(() => { }); 171 .catch(() => { });
235 }, 172 },
236 -
237 //菜单删除 173 //菜单删除
238 removeMenu(row) { 174 removeMenu(row) {
239 - MessageBox.confirm("是否要删除此菜单", "提示", { 175 + this.$confirm("是否要删除此菜单", "提示", {
240 confirmButtonText: "确定删除", 176 confirmButtonText: "确定删除",
241 cancelButtonText: "取消", 177 cancelButtonText: "取消",
242 type: "warning", 178 type: "warning",
...@@ -249,7 +185,6 @@ export default { ...@@ -249,7 +185,6 @@ export default {
249 }) 185 })
250 .catch(() => { }); 186 .catch(() => { });
251 }, 187 },
252 -
253 formatter(row, column, cellValue, index) { 188 formatter(row, column, cellValue, index) {
254 if (dictLabels["menu"][column.property]) { 189 if (dictLabels["menu"][column.property]) {
255 if (dictLabels["menu"][column.property][cellValue]) { 190 if (dictLabels["menu"][column.property][cellValue]) {
......
...@@ -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,22 +15,10 @@ ...@@ -14,22 +15,10 @@
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>
21 - <!-- <el-col :span="24">
22 - <el-form-item label="角色状态:" prop="valid">
23 - <el-switch
24 - v-model="roleForm.valid"
25 - :active-value="1"
26 - :inactive-value="2"
27 - active-color="#13ce66"
28 - inactive-color="#ff4949"
29 - :disabled="roleFormDisabled"
30 - ></el-switch>
31 - </el-form-item>
32 - </el-col> -->
33 <el-col :span="24"> 22 <el-col :span="24">
34 <el-form-item label="角色权限:" prop="menuIdList"> 23 <el-form-item label="角色权限:" prop="menuIdList">
35 <el-tree ref="tree" :data="treeData" node-key="id" :props="defaultProps" :show-checkbox="true" 24 <el-tree ref="tree" :data="treeData" node-key="id" :props="defaultProps" :show-checkbox="true"
...@@ -91,26 +80,13 @@ export default { ...@@ -91,26 +80,13 @@ export default {
91 }, 80 },
92 }; 81 };
93 }, 82 },
94 - created() {
95 - //权限列表
96 - getAllAuth()
97 - .then((res) => {
98 - if (res.code === 200) {
99 - this.treeData = this.treeDataInfo(res.data);
100 - } else {
101 - this.msgWarning(res.msg)
102 - }
103 - })
104 - .catch((err) => {
105 - console.log(err);
106 - });
107 - },
108 watch: { 83 watch: {
109 roleFormDisabled() { 84 roleFormDisabled() {
110 this.treeData = this.treeDisabled(this.treeData); 85 this.treeData = this.treeDisabled(this.treeData);
111 }, 86 },
112 drawer(val, oldVal) { 87 drawer(val, oldVal) {
113 if (val) { 88 if (val) {
89 + this.allAuth()
114 this.roleForm = this.roleData; 90 this.roleForm = this.roleData;
115 } else { 91 } else {
116 this.loading = false; 92 this.loading = false;
...@@ -118,12 +94,25 @@ export default { ...@@ -118,12 +94,25 @@ export default {
118 }, 94 },
119 }, 95 },
120 methods: { 96 methods: {
97 + //权限列表
98 + allAuth() {
99 + getAllAuth()
100 + .then((res) => {
101 + if (res.code === 200) {
102 + this.treeData = this.treeDataInfo(res.data);
103 + } else {
104 + this.msgWarning(res.msg)
105 + }
106 + })
107 + .catch((err) => {
108 + console.log(err);
109 + });
110 + },
121 //关闭 111 //关闭
122 handleClose() { 112 handleClose() {
123 this.$refs["roleForm"].clearValidate(); 113 this.$refs["roleForm"].clearValidate();
124 this.$emit("handleClose", false); 114 this.$emit("handleClose", false);
125 }, 115 },
126 -
127 //提交 116 //提交
128 submit() { 117 submit() {
129 let formData = {}; 118 let formData = {};
...@@ -151,7 +140,6 @@ export default { ...@@ -151,7 +140,6 @@ export default {
151 console.log(err); 140 console.log(err);
152 }); 141 });
153 }, 142 },
154 -
155 //权限结构禁用 143 //权限结构禁用
156 treeDisabled(val) { 144 treeDisabled(val) {
157 let data = []; 145 let data = [];
...@@ -164,7 +152,7 @@ export default { ...@@ -164,7 +152,7 @@ export default {
164 }); 152 });
165 return data; 153 return data;
166 }, 154 },
167 - 155 + //权限结构数据整理
168 treeDataInfo(val) { 156 treeDataInfo(val) {
169 let data = []; 157 let data = [];
170 val.forEach((item) => { 158 val.forEach((item) => {
......
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="用户姓名">
......
1 +<template>
2 + <div>
3 + <el-form ref="dmLogForm" class="form-header" :model="selectForm" label-width="auto" size="small">
4 + <el-row type="flex" style="flex-wrap: wrap !important">
5 + <el-col :span="6">
6 + <el-form-item label="ACCS原航班号">
7 + <el-input v-model.trim="fltNo" class="formItem" placeholder="请输入航班号" clearable></el-input>
8 + </el-form-item>
9 + </el-col>
10 + <el-col :span="6">
11 + <el-form-item label="数据接收日期" prop="createTime">
12 + <el-date-picker v-model="selectForm.createTime" class="formItem" type="date" placeholder="选择日期"
13 + :value-format="valueFormat" clearable>
14 + </el-date-picker>
15 + </el-form-item>
16 + </el-col>
17 + <el-col :span="6">
18 + <el-form-item label="运单号">
19 + <el-input v-model="selectForm.awbNbr" class="formItem" placeholder="请输入运单号" clearable></el-input>
20 + </el-form-item>
21 + </el-col>
22 + <el-col :span="6">
23 + <el-form-item label="处理状态级别">
24 + <el-select v-model="selectForm.status" class="formItem" placeholder="不限" clearable>
25 + <el-option label="未处理" value="0"></el-option>
26 + <el-option label="处理成功" value="1"></el-option>
27 + <el-option label="已处理" value="2"></el-option>
28 + <el-option label="处理失败" value="3"></el-option>
29 + <el-option label="处理中" value="9"></el-option>
30 + </el-select>
31 + </el-form-item>
32 + </el-col>
33 + <el-col :span="6">
34 + <el-form-item label="ACCS原航班日期">
35 + <el-date-picker v-model="selectForm.fltDate" class="formItem" type="date" placeholder="选择日期"
36 + :value-format="valueFormat" clearable>
37 + </el-date-picker>
38 + </el-form-item>
39 + </el-col>
40 + <!-- <el-col :span="6">
41 + <el-form-item label="口岸代码">
42 + <el-select v-model="selectForm.portName" class="formItem" placeholder="不限" clearable>
43 + <el-option v-for="item in portList" :label="item.englishName" :value="item.englishName" :key="item.id">
44 + </el-option>
45 + </el-select>
46 + </el-form-item>
47 + </el-col> -->
48 + <el-col :span="6">
49 + <el-form-item label="回推ACCS结果">
50 + <el-select v-model="selectForm.sendLogSendResult" class="formItem" placeholder="不限" clearable>
51 + <el-option label="未推" value="0">
52 + </el-option>
53 + <el-option label="推送成功" value="1">
54 + </el-option>
55 + <el-option label="推送失败" value="2">
56 + </el-option>
57 + </el-select>
58 + </el-form-item>
59 + </el-col>
60 + </el-row>
61 + <div class="ml20" style="display: flex">
62 + <el-button type="primary" size="small" icon="el-icon-search" :loading="loading" @click="selectDMData(0)">查询
63 + </el-button>
64 + </div>
65 + </el-form>
66 + <Tables ref="dmLogTables" ductName="logDmData" :order="true" :data="data" :headerData="tableHeader"
67 + tableAlign="center" :showOverflowTooltip="false" :height="tableHeight" :page="selectForm.page"
68 + :limitSize="selectForm.size" :pageSizes="[100]" :totalCount="total" :loading="loading"
69 + @currentChange="currentChange" @sortChange="sortChange">
70 + <template v-slot:awbNbr="scope">
71 + <el-link type="primary" @click="gotoWeatherTable(scope.row)">
72 + {{
73 + scope.row.awbNbr
74 + }}<i class="el-icon-link"></i> </el-link>
75 + </template>
76 + <template v-slot:flightFltNo="scope">
77 + <el-link v-if="scope.row.allocDimId" type="primary"
78 + @click="$router.push({ name: 'FlightAllocConfigInfo', params: { handle: 'DMdetail', id: scope.row.allocDimId } })">
79 + {{
80 + scope.row.flightFltNo
81 + }}<i class="el-icon-link"></i> </el-link>
82 + <span v-else>{{ scope.row.flightFltNo }}</span>
83 + </template>
84 + </Tables>
85 + </div>
86 +</template>
87 +
88 +<script>
89 +import dictLabels from "../../../assets/languages/dictLabels.js";
90 +import { portNameList } from "@/api/system/user.js";
91 +import { getDmDataList, getDmFlowInformation } from "@/api/system/logConfig.js";
92 +
93 +export default {
94 + name: "DmLog",
95 + data() {
96 + return {
97 + selectForm: {
98 + fltNo: undefined,
99 + createTime: undefined,
100 + page: 1,
101 + size: 100,
102 + },
103 + data: [],
104 + tableHeader: this.tableHeaders['DM'],
105 + portList: [],
106 + rules: {
107 + createTime: [
108 + {
109 + required: true,
110 + message: "创建日期不能为空",
111 + trigger: "blur",
112 + },
113 + ],
114 + },
115 + pickerOptions: {},
116 + selectDate: null,
117 + createTimes: [],
118 + total: 0,
119 + tableHeight: null,
120 + loading: false,
121 + valueFormat: "yyyy-MM-dd",
122 + };
123 + },
124 + created() {
125 + this.selectForm.createTime = this.nowDate();
126 + this.getPort()
127 + },
128 + activated() {
129 + this.selectDMData();
130 + },
131 + deactivated() {
132 + this.data = [];
133 + },
134 + mounted() {
135 + this.tableHeight =
136 + window.innerHeight - this.$refs.dmLogForm.$el.offsetHeight - 130;
137 + },
138 + methods: {
139 + //获取口岸
140 + async getPort() {
141 + portNameList().then((res) => {
142 + if (res.code === 200) {
143 + this.portList = res.data;
144 + } else {
145 + this.msgWarning('查询条件' + res.msg)
146 + }
147 + });
148 + if (this.$store.state.tagsView.cachedViews.length == 0) {
149 + this.selectDMData();
150 + }
151 + },
152 + //数据查询
153 + async selectDMData(val) {
154 + this.data = [];
155 + this.loading = true;
156 + if (val === 0) {
157 + this.selectForm.page = 1;
158 + }
159 + getDmDataList(this.selectForm).then((res) => {
160 + this.loading = false;
161 + if (res.code === 200) {
162 + if (res.data.total === 0) {
163 + this.msgWarning('未查询到数据')
164 + } else {
165 + this.data = res.data.list;
166 + this.total = res.data.total;
167 + }
168 + } else {
169 + this.msgWarning(res.msg)
170 + }
171 + });
172 + },
173 + //跳转流水
174 + gotoWeatherTable(val) {
175 + getDmFlowInformation('accsId=' + val.dmAccsId).then(res => {
176 + if (res.code === 200) {
177 + if (res.data.list.length > 0) {
178 + this.$router.push({ name: 'weatherTable', params: { data: res.data.list } })
179 + } else {
180 + this.msgWarning('未查询到该条数据的流水')
181 + }
182 + } else {
183 + this.msgWarning(res.msg)
184 + }
185 + }).catch(err => {
186 + console.log(err)
187 + })
188 + },
189 + //分页
190 + currentChange(val) {
191 + this.selectForm.page = val.page;
192 + this.selectDMData();
193 + },
194 + //数据处理
195 + statusData(val) {
196 + if (dictLabels["logDmData"]["status"][val]) {
197 + return dictLabels["logDmData"]["status"][val];
198 + } else {
199 + return val;
200 + }
201 + },
202 + //排序
203 + sortChange(val) {
204 + let data = [];
205 + let nullData = [];
206 + this.data.forEach((item) => {
207 + if (item[val.prop]) {
208 + data.push(item);
209 + } else {
210 + nullData.push(item);
211 + }
212 + });
213 + data = data.sort(this.$refs.dmLogTables.compare(val.prop, val.order));
214 + if (val.order != "ascending") {
215 + this.data = nullData.concat(data);
216 + } else {
217 + this.data = data.concat(nullData);
218 + }
219 + this.data.forEach((item, index = 0) => {
220 + item.index = index;
221 + });
222 + },
223 + },
224 + computed: {
225 + fltNo: {
226 + get: function () {
227 + return this.selectForm.fltNo;
228 + },
229 + set: function (val) {
230 + this.selectForm.fltNo = this.upCase(val);
231 + },
232 + },
233 + },
234 +};
235 +</script>
236 +
237 +<style scoped>
238 +.tags {
239 + display: flex;
240 + margin: 0 20px 0 auto;
241 + color: black;
242 + line-height: 32px;
243 +}
244 +
245 +.tagTip {
246 + margin: 0 5px;
247 +}
248 +</style>
...\ No newline at end of file ...\ No newline at end of file
1 +<template>
2 + <div style="padding:10px">
3 + <el-card header="流水信息">
4 + <Tables ref="weatherTable" ductName="weatherTable" :order="true" :data="data" :headerData="tableHeader"
5 + :showOverflowTooltip="false" :height="tableHeight" :page="selectData.page" :limitSize="selectData.size"
6 + :pageSizes="[100]" :pagination="false" :loading="loading" @currentChange="currentChange">
7 + </Tables>
8 + <div class="ml20 mt20">
9 + <el-button size="small" @click="close">返 回</el-button>
10 + </div>
11 + </el-card>
12 + </div>
13 +</template>
14 +
15 +<script>
16 +import { getDmFlowInformation } from "@/api/system/logConfig.js";
17 +
18 +export default {
19 + name: 'weatherTable',
20 + data() {
21 + return {
22 + data: [],
23 + tableHeader: this.tableHeaders['weatherTable'],
24 + selectData: {
25 + page: 1,
26 + size: 100,
27 + },
28 + loading: false,
29 + tableHeight: null
30 + }
31 + },
32 + created() {
33 + if (this.$route.params.data) {
34 + this.data = this.$route.params.data
35 + sessionStorage.setItem('accsid', this.data[0].accsId)
36 + } else {
37 + this.getWeatherTable()
38 + }
39 + },
40 + activated() {
41 + if (this.$route.params.data) {
42 + this.data = this.$route.params.data
43 + sessionStorage.setItem('accsid', this.data[0].accsId)
44 + } else {
45 + this.getWeatherTable()
46 + }
47 + },
48 + methods: {
49 + //accsid获取流水
50 + getWeatherTable() {
51 + this.loading = true
52 + let accsid = ''
53 + accsid = sessionStorage.getItem('accsid')
54 + getDmFlowInformation('accsId=' + accsid).then(res => {
55 + this.loading = false
56 + if (res.code === 200) {
57 + this.data = res.data.list
58 + } else {
59 + this.msgWarning(res.msg)
60 + }
61 + }).catch(err => {
62 + this.loading = false
63 + console.log(err)
64 + })
65 + },
66 + //返回
67 + close() {
68 + this.$store.state.tagsView.visitedViews.splice(
69 + this.$store.state.tagsView.visitedViews.findIndex(
70 + (item) => item.path === this.$route.path
71 + ),
72 + );
73 + sessionStorage.removeItem('accsid')
74 + this.$router.push({ name: 'DmLog' })
75 + },
76 + //翻页
77 + currentChange(val) { },
78 + }
79 +}
80 +</script>
81 +
82 +<style>
83 +</style>
...\ No newline at end of file ...\ No newline at end of file