jinhui.wang

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

Showing 44 changed files with 3549 additions and 1903 deletions
{
"name": "IMAC",
"version": "3.5.0",
"description": "IMAC管理系统",
"author": "IMAC",
"license": "MIT",
"scripts": {
"dev": "vue-cli-service serve",
"build:prod": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview",
"lint": "eslint --ext .js,.vue src"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"src/**/*.{js,vue}": [
"eslint --fix",
"git add"
]
},
"keywords": [
"vue",
"admin",
"dashboard",
"element-ui",
"boilerplate",
"admin-template",
"management-system"
],
"repository": {
"type": "git",
"url": "https://gitee.com/y_project/RuoYi-Vue.git"
},
"dependencies": {
"@riophae/vue-treeselect": "0.4.0",
"axios": "0.21.1",
"clipboard": "2.0.8",
"core-js": "3.8.3",
"echarts": "4.9.0",
"element-ui": "2.15.3",
"file-saver": "2.0.5",
"fuse.js": "6.4.6",
"highlight.js": "9.18.5",
"js-beautify": "1.13.13",
"js-cookie": "2.2.1",
"jsencrypt": "3.0.3",
"nprogress": "0.2.0",
"quill": "1.3.7",
"screenfull": "5.0.2",
"sortablejs": "1.10.2",
"vue": "2.6.14",
"vue-count-to": "1.0.13",
"vue-cropper": "0.5.6",
"vue-router": "3.5.2",
"vuedraggable": "2.24.3",
"vuex": "3.6.2"
},
"devDependencies": {
"@vue/cli-plugin-babel": "4.5.13",
"@vue/cli-plugin-eslint": "4.5.13",
"@vue/cli-service": "4.5.13",
"babel-eslint": "10.1.0",
"chalk": "4.1.1",
"connect": "3.6.6",
"eslint": "7.30.0",
"eslint-plugin-vue": "7.12.1",
"lint-staged": "10.5.4",
"runjs": "4.4.2",
"sass": "1.35.1",
"sass-loader": "10.2.0",
"script-ext-html-webpack-plugin": "2.1.5",
"svg-sprite-loader": "5.2.1",
"vue-template-compiler": "2.6.14"
},
"engines": {
"node": ">=8.9",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions"
]
}
......@@ -6,4 +6,12 @@ export const getRouters = () => {
url: '/auth/getRouters',
method: 'post'
})
}
// 获取tableHeader
export const getTableHeader = () => {
return request({
url: '/table/getTableHeader',
method: 'get'
})
}
\ No newline at end of file
......
import request from '@/utils/request'
//数据字典名称
/**
* @param
*/
export function getDictNameList() {
return request({
url: '/dictionary/queryMain',
method: 'get',
})
}
//字典表查询
/**
* @param dictCode 字典名 *
* @param chineseName 数据名称
* @param page 页数 null
* @param size 每页长度 null
*/
export function getDictionaryList(data) {
return request({
url: '/dictionary/query',
method: 'post',
data: data
})
}
//serviceCode字典表查询
/**
* @param
*/
export function getServiceCodeList() {
return request({
url: '/dictionary/queryServiceCode',
method: 'get',
})
}
//新增字典(单条)
/**
* @param chineseName 字典名称 *
* @param description 描述
* @param dictCode 字典表名称 *
*/
export function addDict(data) {
return request({
url: '/dictionary/addDict',
method: 'POST',
data: data
})
}
//新增字典(批量)
/**
* @param nameList 字典名称 * list
* @param dictCode 字典表名称 *
*/
export function addDictBatch(data) {
return request({
url: '/dictionary/addDictBatch',
method: 'POST',
data: data
})
}
//serviceCode子字典添加
/**
* @param array [{}]
* @param serviceCodeKey serviceCode父级key *
* @param serviceCodeValue 字典名称 *
*/
export function addServiceCodeBatch(data) {
return request({
url: '/dictionary/addServiceCodeBatch',
method: 'POST',
data: data
})
}
//serviceCode子字典删除
/**
* @param array []
* @param serviceCodeValue 字典名称 *
*/
export function delServiceCodeCihild(data) {
return request({
url: '/dictionary/delServiceCodeCihild',
method: 'POST',
data: data
})
}
//字典删除
/**
* @param array []
* @param id 字典ID *
*/
export function delDict(data) {
return request({
url: '/dictionary/delDict',
method: 'POST',
data: data
})
}
//虚拟航班查询
/**
* @param flightNo 航班名称
* @param page 页数 null *
* @param size 每页长度 null *
*/
export function flightType(data) {
return request({
url: '/dictionary/flightType',
method: 'post',
data: data
})
}
//虚拟航班新增
/**
* @param flightNo 航班名称 list *
*/
export function addFlight(data) {
return request({
url: '/dictionary/addFlight',
method: 'post',
data: data
})
}
//虚拟航班新增
/**
* @param flightNo 航班名称 list *
*/
export function delFlight(data) {
return request({
url: '/dictionary/delFlight',
method: 'post',
data: data
})
}
\ No newline at end of file
......@@ -16,4 +16,15 @@ export function getDmDataList(data) {
method: 'post',
data: data
})
}
\ No newline at end of file
}
// 流水查询
/**
* @param accsId accsid *
*/
export function getDmFlowInformation(data) {
return request({
url: '/dmDataLog/getDmFlowInformation?' + data,
method: 'post',
})
}
......
import request from '@/utils/request'
//预审航班查询
/**
* @param fltNo 航班号
* @param suatus 状态
* @param page 页数
* @param size 每页条数
*/
export function getpreAudit(data) {
return request({
url: '/preAudit/query',
method: 'post',
data: data
})
}
//添加预审航班
/**
* @param 航班号 *
*/
export function addPreFlight(data) {
return request({
url: '/preAudit/addFlight',
method: 'post',
data: data
})
}
//添加预审航班
/**
* @param id 航班id *
* @param status 状态 * 0关闭 1开启 2删除
*/
export function updatePreStatus(data) {
return request({
url: '/preAudit/updateStatus',
method: 'post',
data: data
})
}
import request from '@/utils/request'
import { praseStrEmpty } from "@/utils/FedEx";
// // 修改用户
// export function updateUser(data) {
// return request({
// url: '/system/user',
// method: 'put',
// data: data
// })
// }
// // 导出用户
// export function exportUser(query) {
// return request({
// url: '/system/user/export',
// method: 'get',
// params: query
// })
// }
// // 用户密码重置
// export function resetUserPwd(userId, password) {
// const data = {
// userId,
// password
// }
// return request({
// url: '/system/user/resetPwd',
// method: 'put',
// data: data
// })
// }
// // 用户状态修改
// export function changeUserStatus(userId, status) {
// const data = {
// userId,
// status
// }
// return request({
// url: '/system/user/changeStatus',
// method: 'put',
// data: data
// })
// }
// // 查询用户个人信息
// export function getUserProfile() {
// return request({
// url: '/system/user/profile',
// method: 'get'
// })
// }
// // 修改用户个人信息
// export function updateUserProfile(data) {
// return request({
// url: '/system/user/profile',
// method: 'put',
// data: data
// })
// }
// // 用户密码重置
// export function updateUserPwd(oldPassword, newPassword) {
// const data = {
// oldPassword,
// newPassword
// }
// return request({
// url: '/system/user/profile/updatePwd',
// method: 'put',
// params: data
// })
// }
// // 用户头像上传
// export function uploadAvatar(data) {
// return request({
// url: '/system/user/profile/avatar',
// method: 'post',
// data: data
// })
// }
// // 下载用户导入模板
// export function importTemplate() {
// return request({
// url: '/system/user/importTemplate',
// method: 'get'
// })
// }
// 查询用户列表
/**
* @param page 页码 *
......@@ -258,4 +167,28 @@ export function changeCurrentPort(data) {
method: 'post',
data: data
})
}
//获取用户设置表头
/**
* @param tableName 表名 *
*/
export function getHeaderOrder(data) {
return request({
url: '/table/getHeaderOrder?' + data,
method: 'get',
})
}
//保存用户设置表头
/**
* @param tableName 表名 *
* @param idList 显示表头集合 *
*/
export function saveTableHeader(data) {
return request({
url: '/table/saveTableHeader',
method: 'post',
data: data
})
}
\ No newline at end of file
......
<?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"); }
</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
......@@ -7,16 +7,6 @@ let ductLabels = {
"releasing": {
"1": "正在释放"
},
"cargoAllocationDataStatus": {
"已推送": "已推送",
"不推送": "不推送",
"已配": " ",
"待推送": "待推送",
"手动配舱": ' ',
"已释放": ' ',
"原航班配舱": ' ',
"顺位配舱": ' ',
},
},
"menu": {//菜单设置
"menuType": {
......@@ -59,16 +49,78 @@ let ductLabels = {
"2": "否",
},
},
"flightRand": {//航班顺位设置
"status": {
"0": "执行中",
"1": "有效",
"3": "停用"
}
},
"FlightAlloc": {//航班配舱设置
"status": {
"0": "无效",
"1": "有效",
"2": "配置中",
"3": "停用"
}
},
"logDmData": {//DM数据
"statusDetailCode": {
"0": "未处理",
"1": "处理成功",
"2_1": "已处理(数据丢弃)",
"2_2": "已处理(数据丢弃)",
"2_3": "已处理(数据丢弃)",
"2_4": "已处理(数据丢弃)",
"3_1": "已处理(异常处理)",
"3_2": "处理失败(系统异常)",
"3_3": "处理失败(系统异常)",
"3_4": "处理失败(系统异常)",
"4_1": "处理失败(数据异常)",
"4_2": "处理失败(数据异常)",
"4_3": "处理失败(其他系统异常)",
// "5": "处理失败(系统异常)",
"9": "处理中",
},
"weatherGenerateWater": {
"1": "是",
"0": "否"
},
"sendLogSendResult": {
"0": "未推",
"1": "推送成功",
"2": "推送失败"
},
"status": {
"0": "未处理",
"1": "已处理",
"2": "无需处理",
"3": "处理失败",
"4": "校验不通过",
"5": "数据不能被多次处理",
"9": "处理中",
"9": "处理中"
}
},
"weatherTable": {
"highLowPriceFlg": {
"1": "开启",
"0": "关闭"
},
"operationSource": {
"1": "pre-MD cutoff",
"2": "航班迁转手动释放",
"3": "预审不通过定时任务",
"4": "自动配舱"
},
"weightMark": {
"1": "增加",
"-1": "减少"
}
},
"preFlight": {//航班预审
"status": {
"0": "关闭",
"1": "开启"
}
}
}
......
......@@ -2,1129 +2,1218 @@ let tableHeaders = {
//货物查询
"cargo": [
{
name: "口岸代码",
value: "portName",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "口岸代码",
columnName: "portName",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "取件日期",
value: "pickUpDate",
width: "120",
align: "center",
sorTable: true,
columnChineseName: "取件日期",
columnName: "pickUpDate",
columnWidth: "120",
ext1: "sorTable",
status: 1
},
{
name: "取件扫描号",
value: "pickUpScanNo",
width: "120",
align: "center",
sorTable: true,
columnChineseName: "取件扫描号",
columnName: "pickUpScanNo",
columnWidth: "120",
ext1: "sorTable",
status: 1
},
{
name: "站点",
value: "siteName",
width: "80",
align: "center",
sorTable: true,
columnChineseName: "站点",
columnName: "siteName",
columnWidth: "80",
ext1: "sorTable",
status: 1
},
{
name: "运单号",
value: "waybillNo",
width: "120",
align: "center",
sorTable: true,
columnChineseName: "运单号",
columnName: "waybillNo",
columnWidth: "150",
ext1: "sorTable;slot",
status: 1
},
{
name: "总单号",
value: "totalWaybillNo",
width: "120",
align: "center",
sorTable: true,
columnChineseName: "总单号",
columnName: "totalWaybillNo",
columnWidth: "120",
ext1: "sorTable",
status: 1
},
{
name: "服务类型",
value: "serviceTypeName",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "服务类型",
columnName: "serviceTypeName",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "服务代码",
value: "serviceCode",
width: "100",
align: "center",
sorTable: false,
columnChineseName: "服务代码",
columnName: "serviceCode",
columnWidth: "100",
status: 1
},
{
name: "URSA",
value: "ursa",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "URSA",
columnName: "ursa",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "推送状态",
value: "cargoAllocationDataStatus",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "推送状态",
columnName: "cargoPushStatus",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "配舱状态",
value: "flightIdImac",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "配舱状态",
columnName: "flightIdImac",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "释放状态",
value: "releasing",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "释放状态",
columnName: "releasing",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "申报类型",
value: "typeName",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "申报类型",
columnName: "typeName",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "ACCSpool",
value: "accsPool",
width: "120",
align: "center",
sorTable: true,
columnChineseName: "ACCSpool",
columnName: "accsPool",
columnWidth: "120",
ext1: "sorTable",
status: 1
},
{
name: "HandlingCode",
value: "handingCode",
width: "150",
align: "center",
sorTable: true,
columnChineseName: "HandlingCode",
columnName: "handingCode",
columnWidth: "150",
ext1: "sorTable",
status: 1
},
{
name: "subcategory",
value: "subCategory",
width: "140",
align: "center",
sorTable: true,
columnChineseName: "subcategory",
columnName: "subCategory",
columnWidth: "140",
ext1: "sorTable",
status: 1
},
{
name: "件数",
value: "qty",
width: "80",
align: "center",
sorTable: true,
columnChineseName: "件数",
columnName: "qty",
columnWidth: "80",
ext1: "sorTable",
status: 1
},
{
name: "实际重量",
value: "actualWeight",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "实际重量",
columnName: "actualWeight",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "收件人国家代码",
value: "consigneeCountry",
width: "150",
align: "center",
sorTable: true,
columnChineseName: "收件人国家代码",
columnName: "consigneeCountry",
columnWidth: "150",
ext1: "sorTable",
status: 1
},
{
name: "品名描述",
value: "nameDescription",
width: "100",
align: "center",
sorTable: false,
columnChineseName: "品名描述",
columnName: "nameDescription",
columnWidth: "100",
status: 1
},
{
name: "海关回执状态",
value: "customsReceiptStatusName",
width: "140",
align: "center",
sorTable: true,
columnChineseName: "海关回执状态",
columnName: "customsReceiptStatusName",
columnWidth: "140",
ext1: "sorTable",
status: 1
},
{
name: "预审状态",
value: "preQualificationStatus",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "预审状态",
columnName: "preQualificationStatus",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "航班预审意见",
value: "caPretrialOpinion",
width: "120",
align: "center",
sorTable: false,
columnChineseName: "航班预审意见",
columnName: "caPretrialOpinion",
columnWidth: "120",
status: 1
},
{
name: "货物状态",
value: "statusName",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "货物状态",
columnName: "statusName",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "终配航班号",
value: "finalFlightNo",
width: "120",
align: "center",
sorTable: true,
columnChineseName: "终配航班号",
columnName: "finalFlightNo",
columnWidth: "120",
ext1: "sorTable",
status: 1
},
{
name: "终配航班日期",
value: "finalFlightTime",
width: "140",
align: "center",
sorTable: true,
columnChineseName: "终配航班日期",
columnName: "finalFlightTime",
columnWidth: "140",
ext1: "sorTable",
status: 1
},
{
name: "二配航班号",
value: "twoMatchFlightNo",
width: "120",
align: "center",
sorTable: true,
columnChineseName: "二配航班号",
columnName: "twoMatchFlightNo",
columnWidth: "120",
ext1: "sorTable",
status: 1
},
{
name: "二配航班日期",
value: "twoMatchFlightTime",
width: "150",
align: "center",
sorTable: true,
columnChineseName: "二配航班日期",
columnName: "twoMatchFlightTime",
columnWidth: "150",
ext1: "sorTable",
status: 1
},
{
name: "预配航班号",
value: "preplanFlightNo",
width: "120",
align: "center",
sorTable: true,
columnChineseName: "预配航班号",
columnName: "preplanFlightNo",
columnWidth: "120",
ext1: "sorTable",
status: 1
},
{
name: "预配航班日期",
value: "preplanFlightTime",
width: "150",
align: "center",
sorTable: true,
columnChineseName: "预配航班日期",
columnName: "preplanFlightTime",
columnWidth: "150",
ext1: "sorTable",
status: 1
},
{
name: "ACCS原航班号",
value: "fltNoAccs",
width: "150",
align: "center",
sorTable: true,
columnChineseName: "ACCS原航班号",
columnName: "fltNoAccs",
columnWidth: "150",
ext1: "sorTable",
status: 1
},
{
name: "ACCS原航班日期",
value: "fltDateAccs",
width: "150",
align: "center",
sorTable: true,
columnChineseName: "ACCS原航班日期",
columnName: "fltDateAccs",
columnWidth: "150",
ext1: "sorTable",
status: 1
},
{
name: "ACCS原航线",
value: "accsFlightRoute",
width: "140",
align: "center",
sorTable: true,
columnChineseName: "ACCS原航线",
columnName: "accsFlightRoute",
columnWidth: "140",
ext1: "sorTable",
status: 1
},
{
name: "是否RDE手工录入",
value: "manualRde",
width: "170",
align: "center",
sorTable: true,
columnChineseName: "是否RDE手工录入",
columnName: "manualRde",
columnWidth: "170",
ext1: "sorTable",
status: 1
},
{
name: "是否自动",
value: "cargoRulesStatus",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "是否自动",
columnName: "cargoRulesStatus",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "发件人账号",
value: "shipperAccount",
width: "120",
align: "center",
columnChineseName: "发件人账号",
columnName: "shipperAccount",
columnWidth: "120",
status: 1
},
{
name: "发件公司中文名称",
value: "shipperCompany",
width: "150",
align: "center",
columnChineseName: "发件公司中文名称",
columnName: "shipperCompany",
columnWidth: "150",
status: 1
},
{
name: "始发地城市名称",
value: "originCity",
width: "130",
align: "center",
sorTable: false,
columnChineseName: "始发地城市名称",
columnName: "originCity",
columnWidth: "130",
status: 1
},
{
name: "收件地",
value: "destinationSiteName",
width: "90",
align: "center",
columnChineseName: "收件地",
columnName: "destinationSiteName",
columnWidth: "90",
status: 1
},
{
name: "尺寸",
value: "sizeStr",
width: "80",
align: "center",
sorTable: true,
columnChineseName: "尺寸",
columnName: "sizeStr",
columnWidth: "80",
ext1: "sorTable",
status: 1
},
{
name: "大货预审意见(是否可以配置航班)",
value: "bigPretrialOpinion",
width: "200",
align: "center",
columnChineseName: "大货预审意见(是否可以配置航班)",
columnName: "bigPretrialOpinion",
columnWidth: "200",
status: 1
},
{
name: "大货预审时间",
value: "bigPretrialTime",
width: "120",
align: "center",
columnChineseName: "大货预审时间",
columnName: "bigPretrialTime",
columnWidth: "120",
status: 1
},
{
name: "海关回执时间",
value: "customsReceiptTime",
width: "150",
align: "center",
sorTable: true,
columnChineseName: "海关回执时间",
columnName: "customsReceiptTime",
columnWidth: "150",
ext1: "sorTable",
status: 1
},
{
name: "航班预审时间",
value: "caPretrialTime",
width: "150",
align: "center",
sorTable: true,
columnChineseName: "航班预审时间",
columnName: "caPretrialTime",
columnWidth: "150",
ext1: "sorTable",
status: 1
},
{
name: "创建人",
value: "createUserName",
width: "90",
align: "center",
sorTable: true,
columnChineseName: "创建人",
columnName: "createUserName",
columnWidth: "90",
ext1: "sorTable",
status: 1
},
{
name: "创建时间",
value: "createTime",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "创建时间",
columnName: "createTime",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
],
//航班信息维护
"FlightInformation": [
{
name: "航班日期",
value: "fltDate",
width: "100",
align: "center",
columnChineseName: "航班日期",
columnName: "fltDate",
columnWidth: "100",
status: 1
},
{
name: "航班起飞时间",
value: "takeOffTime",
width: "120",
align: "center",
columnChineseName: "航班起飞时间",
columnName: "takeOffTime",
columnWidth: "120",
status: 1
},
{
name: "Pre-MDE CutOff时间",
value: "cutOffTime",
width: "150",
align: "center",
columnChineseName: "Pre-MDE CutOff时间",
columnName: "cutOffTime",
columnWidth: "150",
status: 1
},
{
name: "航班号",
value: "fltNo",
width: "100",
align: "center",
columnChineseName: "航班号",
columnName: "fltNo",
columnWidth: "100",
status: 1
},
{
name: "航班路线",
value: "route",
width: "140",
align: "center",
columnChineseName: "航班路线",
columnName: "route",
columnWidth: "140",
status: 1
},
{
name: "航班类型",
value: "typeName",
width: "100",
align: "center",
columnChineseName: "航班类型",
columnName: "typeName",
columnWidth: "100",
status: 1
},
{
name: "航班种类",
value: "flightKindName",
width: "100",
align: "center",
columnChineseName: "航班种类",
columnName: "flightKindName",
columnWidth: "100",
status: 1
},
{
name: "航班状态",
value: "statusName",
width: "100",
align: "center",
columnChineseName: "航班状态",
columnName: "statusName",
columnWidth: "100",
status: 1
},
{
name: "是否自动推送",
value: "pushDateSwitch",
width: "120",
align: "center",
columnChineseName: "是否自动推送",
columnName: "pushDateSwitch",
columnWidth: "120",
status: 1
},
{
name: "总重量",
value: "totalWeight",
width: "90",
align: "center",
columnChineseName: "总重量",
columnName: "totalWeight",
columnWidth: "90",
status: 1
},
{
name: "原始重量(KG)",
value: "originalWeight",
width: "120",
align: "center",
columnChineseName: "原始重量(KG)",
columnName: "originalWeight",
columnWidth: "120",
status: 1
},
{
name: "已配重量",
value: "alloctedWeight",
width: "90",
align: "center",
columnChineseName: "已配重量",
columnName: "alloctedWeight",
columnWidth: "90",
status: 1
},
{
name: "总体积(cm³)",
value: "totalVolume",
width: "100",
align: "center",
columnChineseName: "总体积(cm³)",
columnName: "totalVolume",
columnWidth: "100",
status: 1
},
{
name: "已配体积(cm³)",
value: "alloctedVolume",
width: "120",
align: "center",
columnChineseName: "已配体积(cm³)",
columnName: "alloctedVolume",
columnWidth: "120",
status: 1
},
{
name: "是否需要预审",
value: "needRequired",
width: "130",
align: "center",
columnChineseName: "预审状态",
columnName: "needRequired",
columnWidth: "130",
status: 1
},
{
name: "是否开启高低价",
value: "highLowPriceFlg",
width: "140",
align: "center",
columnChineseName: "是否开启高低价",
columnName: "highLowPriceFlg",
columnWidth: "140",
status: 1
},
{
name: "是否限制一票一件",
value: "ticketToPiece",
width: "140",
align: "center",
columnChineseName: "是否限制一票一件",
columnName: "ticketToPiece",
columnWidth: "140",
status: 1
},
{
name: "额外增重百分比",
value: "extraWeightPercent",
width: "140",
align: "center",
columnChineseName: "额外增重百分比",
columnName: "extraWeightPercent",
columnWidth: "140",
status: 1
},
{
name: "高价百分比",
value: "highPriceWeightPercent",
width: "120",
align: "center",
columnChineseName: "高价百分比",
columnName: "highPriceWeightPercent",
columnWidth: "120",
status: 1
},
{
name: "低价百分比",
value: "lowPriceWeightPercent",
width: "120",
align: "center",
columnChineseName: "低价百分比",
columnName: "lowPriceWeightPercent",
columnWidth: "120",
status: 1
},
{
name: "航班优先级",
value: "priorityName",
width: "100",
align: "center",
columnChineseName: "航班优先级",
columnName: "priorityName",
columnWidth: "100",
status: 1
},
{
name: "配舱优先级",
value: "priorityRuleName",
width: "100",
align: "center",
columnChineseName: "配舱优先级",
columnName: "priorityRuleName",
columnWidth: "100",
status: 1
},
{
name: "创建人",
value: "createUserName",
width: "90",
align: "center",
columnChineseName: "创建人",
columnName: "createUserName",
columnWidth: "90",
status: 1
},
{
name: "创建时间",
value: "createTime",
width: "100",
align: "center",
columnChineseName: "创建时间",
columnName: "createTime",
columnWidth: "100",
status: 1
},
{
name: "最后修改人",
value: "lastModifyUserName",
width: "120",
align: "center",
columnChineseName: "最后修改人",
columnName: "lastModifyUserName",
columnWidth: "120",
status: 1
},
{
name: "最后修改时间",
value: "lastModifyTime",
width: "120",
align: "center",
columnChineseName: "最后修改时间",
columnName: "lastModifyTime",
columnWidth: "120",
status: 1
},
],
//手动配舱
"cargoAllocation": [
"allocationCargo": [
{
name: "口岸代码",
value: "portName",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "口岸代码",
columnName: "portName",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "取件日期",
value: "pickUpDate",
width: "120",
align: "center",
sorTable: true,
columnChineseName: "取件日期",
columnName: "pickUpDate",
columnWidth: "120",
ext1: "sorTable",
status: 1
},
{
name: "取件扫描号",
value: "pickUpScanNo",
width: "120",
align: "center",
sorTable: true,
columnChineseName: "取件扫描号",
columnName: "pickUpScanNo",
columnWidth: "120",
ext1: "sorTable",
status: 1
},
{
name: "站点",
value: "siteName",
width: "80",
align: "center",
sorTable: true,
columnChineseName: "站点",
columnName: "siteName",
columnWidth: "80",
ext1: "sorTable",
status: 1
},
{
name: "运单号",
value: "waybillNo",
width: "120",
align: "center",
sorTable: true,
columnChineseName: "运单号",
columnName: "waybillNo",
columnWidth: "120",
ext1: "sorTable",
status: 1
},
{
name: "总单号",
value: "totalWaybillNo",
width: "120",
align: "center",
sorTable: true,
columnChineseName: "总单号",
columnName: "totalWaybillNo",
columnWidth: "120",
ext1: "sorTable",
status: 1
},
{
name: "服务类型",
value: "serviceTypeName",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "服务类型",
columnName: "serviceTypeName",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "服务代码",
value: "serviceCode",
width: "100",
align: "center",
sorTable: false,
columnChineseName: "服务代码",
columnName: "serviceCode",
columnWidth: "100",
ext1: false,
status: 1
},
{
name: "URSA",
value: "ursa",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "URSA",
columnName: "ursa",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "申报类型",
value: "typeName",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "推送状态",
columnName: "cargoPushStatus",
columnWidth: 100,
ext1: "sorTable",
status: 1
},
{
name: "HandlingCode",
value: "handingCode",
width: "150",
align: "center",
sorTable: true,
columnChineseName: "配舱状态",
columnName: "flightIdImac",
columnWidth: 100,
ext1: "sorTable",
status: 1
},
{
name: "subcategory",
value: "subCategory",
width: "140",
align: "center",
sorTable: true,
columnChineseName: "释放状态",
columnName: "releasing",
columnWidth: 100,
ext1: "sorTable",
status: 1
},
{
name: "件数",
value: "qty",
width: "80",
align: "center",
sorTable: true,
columnChineseName: "申报类型",
columnName: "typeName",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "实际重量",
value: "actualWeight",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "HandlingCode",
columnName: "handingCode",
columnWidth: "150",
ext1: "sorTable",
status: 1
},
{
name: "收件人国家代码",
value: "consigneeCountry",
width: "150",
align: "center",
sorTable: true,
columnChineseName: "subcategory",
columnName: "subCategory",
columnWidth: "140",
ext1: "sorTable",
status: 1
},
{
name: "品名描述",
value: "nameDescription",
width: "100",
align: "center",
sorTable: false,
columnChineseName: "件数",
columnName: "qty",
columnWidth: "80",
ext1: "sorTable",
status: 1
},
{
name: "海关回执状态",
value: "customsReceiptStatusName",
width: "140",
align: "center",
sorTable: true,
columnChineseName: "实际重量",
columnName: "actualWeight",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "预审状态",
value: "preQualificationStatus",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "收件人国家代码",
columnName: "consigneeCountry",
columnWidth: "150",
ext1: "sorTable",
status: 1
},
{
name: "航班预审意见",
value: "caPretrialOpinion",
width: "120",
align: "center",
columnChineseName: "品名描述",
columnName: "nameDescription",
columnWidth: "100",
status: 1
},
{
name: "货物状态",
value: "statusName",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "海关回执状态",
columnName: "customsReceiptStatusName",
columnWidth: "140",
ext1: "sorTable",
status: 1
},
{
name: "终配航班号",
value: "finalFlightNo",
width: "120",
align: "center",
sorTable: true,
columnChineseName: "预审状态",
columnName: "preQualificationStatus",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "终配航班日期",
value: "finalFlightTime",
width: "140",
align: "center",
sorTable: true,
columnChineseName: "航班预审意见",
columnName: "caPretrialOpinion",
columnWidth: "120",
status: 1
},
{
name: "二配航班号",
value: "twoMatchFlightNo",
width: "120",
align: "center",
sorTable: true,
columnChineseName: "货物状态",
columnName: "statusName",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "二配航班日期",
value: "twoMatchFlightTime",
width: "150",
align: "center",
sorTable: true,
columnChineseName: "终配航班号",
columnName: "finalFlightNo",
columnWidth: "120",
ext1: "sorTable",
status: 1
},
{
name: "预配航班号",
value: "preplanFlightNo",
width: "120",
align: "center",
sorTable: true,
columnChineseName: "终配航班日期",
columnName: "finalFlightTime",
columnWidth: "140",
ext1: "sorTable",
status: 1
},
{
name: "预配航班日期",
value: "preplanFlightTime",
width: "150",
align: "center",
sorTable: true,
columnChineseName: "二配航班号",
columnName: "twoMatchFlightNo",
columnWidth: "120",
ext1: "sorTable",
status: 1
},
{
name: "ACCS原航班号",
value: "fltNoAccs",
width: "150",
align: "center",
sorTable: true,
columnChineseName: "二配航班日期",
columnName: "twoMatchFlightTime",
columnWidth: "150",
ext1: "sorTable",
status: 1
},
{
name: "ACCS原航班日期",
value: "fltDateAccs",
width: "150",
align: "center",
sorTable: true,
columnChineseName: "预配航班号",
columnName: "preplanFlightNo",
columnWidth: "120",
ext1: "sorTable",
status: 1
},
{
name: "ACCS原航线",
value: "accsFlightRoute",
width: "140",
align: "center",
sorTable: true,
columnChineseName: "预配航班日期",
columnName: "preplanFlightTime",
columnWidth: "150",
ext1: "sorTable",
status: 1
},
{
name: "是否RDE手工录入",
value: "manualRde",
width: "170",
align: "center",
sorTable: true,
columnChineseName: "ACCS原航班号",
columnName: "fltNoAccs",
columnWidth: "150",
ext1: "sorTable",
status: 1
},
{
name: "是否自动",
value: "cargoRulesStatus",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "ACCS原航班日期",
columnName: "fltDateAccs",
columnWidth: "150",
ext1: "sorTable",
status: 1
},
{
name: "发件人账号",
value: "shipperAccount",
width: "120",
align: "center",
columnChineseName: "ACCS原航线",
columnName: "accsFlightRoute",
columnWidth: "140",
ext1: "sorTable",
status: 1
},
{
name: "发件公司中文名称",
value: "shipperCompany",
width: "150",
align: "center",
columnChineseName: "是否RDE手工录入",
columnName: "manualRde",
columnWidth: "170",
ext1: "sorTable",
status: 1
},
{
name: "始发地城市名称",
value: "originCity",
width: "130",
align: "center",
columnChineseName: "是否自动",
columnName: "cargoRulesStatus",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
{
name: "收件地",
value: "destinationSiteName",
width: "90",
align: "center",
columnChineseName: "发件人账号",
columnName: "shipperAccount",
columnWidth: "120",
status: 1
},
{
name: "尺寸",
value: "sizeStr",
width: "80",
align: "center",
sorTable: true,
columnChineseName: "发件公司中文名称",
columnName: "shipperCompany",
columnWidth: "150",
status: 1
},
{
name: "大货预审意见(是否可以配置航班)",
value: "bigPretrialOpinion",
width: "250",
align: "center",
columnChineseName: "始发地城市名称",
columnName: "originCity",
columnWidth: "130",
status: 1
},
{
name: "大货预审时间",
value: "bigPretrialTime",
width: "120",
align: "center",
columnChineseName: "收件地",
columnName: "destinationSiteName",
columnWidth: "90",
status: 1
},
{
name: "海关回执时间",
value: "customsReceiptTime",
width: "150",
align: "center",
sorTable: true,
columnChineseName: "尺寸",
columnName: "sizeStr",
columnWidth: "80",
ext1: "sorTable",
status: 1
},
{
name: "航班预审时间",
value: "caPretrialTime",
width: "150",
align: "center",
sorTable: true,
columnChineseName: "大货预审意见(是否可以配置航班)",
columnName: "bigPretrialOpinion",
columnWidth: "250",
status: 1
},
{
name: "创建人",
value: "createUserName",
width: "90",
align: "center",
sorTable: true,
columnChineseName: "大货预审时间",
columnName: "bigPretrialTime",
columnWidth: "120",
status: 1
},
{
name: "创建时间",
value: "createTime",
width: "100",
align: "center",
sorTable: true,
columnChineseName: "海关回执时间",
columnName: "customsReceiptTime",
columnWidth: "150",
ext1: "sorTable",
status: 1
},
{
columnChineseName: "航班预审时间",
columnName: "caPretrialTime",
columnWidth: "150",
ext1: "sorTable",
status: 1
},
{
columnChineseName: "创建人",
columnName: "createUserName",
columnWidth: "90",
ext1: "sorTable",
status: 1
},
{
columnChineseName: "创建时间",
columnName: "createTime",
columnWidth: "100",
ext1: "sorTable",
status: 1
},
],
//航班顺位
"flightRand": [
{
columnChineseName: "原航班",
columnName: "sourceFlightNo",
columnWidth: "",
status: 1
},
{
columnChineseName: "配载航班排序",
columnName: "flightRank",
columnWidth: "",
status: 1
},
{
columnChineseName: "周期",
columnName: "dayOfWeek",
columnWidth: "",
status: 1
},
{
columnChineseName: "状态",
columnName: "status",
columnWidth: "",
status: 1
},
{
columnChineseName: "开始时间",
columnName: "startDate",
columnWidth: "",
status: 1
},
{
columnChineseName: "结束时间",
columnName: "endDate",
columnWidth: "",
status: 1
},
{
columnChineseName: "最后修改人",
columnName: "updateUserName",
columnWidth: "",
status: 1
},
{
columnChineseName: "最后修改时间",
columnName: "updateTime",
columnWidth: "",
status: 1
},
],
//航班配舱
"flightAlloc": [
{
columnChineseName: "航班号",
columnName: "purposeOfFlightNo",
columnWidth: "",
status: 1
},
{
columnChineseName: "状态",
columnName: "status",
columnWidth: "",
status: 1
},
{
columnChineseName: "操作人",
columnName: "createUserName",
columnWidth: "",
status: 1
},
{
columnChineseName: "更新时间",
columnName: "createTime",
columnWidth: "",
status: 1
},
],
//角色设置
"role": [
{
name: "角色名称",
value: "name",
width: "150px",
align: "center",
columnChineseName: "角色名称",
columnName: "name",
columnWidth: "150px",
status: 1
},
{
name: "角色状态",
value: "valid",
width: "150px",
align: "center",
columnChineseName: "角色状态",
columnName: "valid",
columnWidth: "150px",
status: 1
},
{
name: "创建人",
value: "createUserName",
width: "150px",
align: "center",
columnChineseName: "创建人",
columnName: "createUserName",
columnWidth: "150px",
status: 1
},
{
name: "创建时间",
value: "createTime",
width: "150px",
align: "center",
columnChineseName: "创建时间",
columnName: "createTime",
columnWidth: "150px",
status: 1
},
{
name: "修改时间",
value: "updateTime",
width: "150px",
align: "center",
columnChineseName: "修改时间",
columnName: "updateTime",
columnWidth: "150px",
status: 1
},
{
name: "备注",
value: "remark",
width: "400px",
align: "center",
columnChineseName: "备注",
columnName: "remark",
columnWidth: "400px",
status: 1
},
],
//用户设置
"user": [
{
name: "员工号",
value: "loginName",
width: "150px",
align: "center",
columnChineseName: "员工号",
columnName: "loginName",
columnWidth: "150px",
status: 1
},
{
name: "用户姓名",
value: "username",
width: "150px",
align: "center",
columnChineseName: "用户姓名",
columnName: "username",
columnWidth: "150px",
status: 1
},
{
name: "所属口岸",
value: "portName",
width: "150px",
align: "center",
columnChineseName: "所属口岸",
columnName: "portName",
columnWidth: "150px",
status: 1
},
{
name: "所属角色",
value: "roleNames",
width: "150px",
align: "center",
columnChineseName: "所属角色",
columnName: "roleNames",
columnWidth: "150px",
status: 1
},
{
name: "电子邮箱",
value: "email",
width: "150px",
align: "center",
columnChineseName: "电子邮箱",
columnName: "email",
columnWidth: "150px",
status: 1
},
{
name: "用户状态",
value: "isValid",
width: "100px",
align: "center",
columnChineseName: "用户状态",
columnName: "isValid",
columnWidth: "100px",
status: 1
},
{
name: "修改时间",
value: "updateTime",
width: "150px",
align: "center",
columnChineseName: "修改时间",
columnName: "updateTime",
columnWidth: "150px",
status: 1
},
{
name: "备注",
value: "remark",
width: "150px",
align: "center",
columnChineseName: "备注",
columnName: "remark",
columnWidth: "150px",
status: 1
},
],
//dm数据处理
"DM": [
{
name: "DMaccsId",
value: "dmAccsId",
width: "",
align: "center",
columnChineseName: "AccsId",
columnName: "dmAccsId",
columnWidth: "120",
status: 1
},
{
columnChineseName: "口岸代码",
columnName: "routeDest",
columnWidth: "",
status: 1
},
{
columnChineseName: "运单号",
columnName: "awbNbr",
columnWidth: "150",
status: 1,
ext1: 'slot',
},
{
columnChineseName: "Accs Pool",
columnName: "accsPool",
columnWidth: "100",
status: 1
},
{
columnChineseName: "当前配载航班号",
columnName: "flightFltNo",
columnWidth: "130",
status: 1,
ext1: 'slot',
},
{
columnChineseName: "当前配载航班日期",
columnName: "flightFltDate",
columnWidth: "130",
status: 1
},
{
columnChineseName: "ACCS原航班号",
columnName: "dmFlightNbr",
columnWidth: "120",
status: 1
},
{
columnChineseName: "ACCS原航班日期",
columnName: "dmFlightDate",
columnWidth: "150",
status: 1
},
{
columnChineseName: "DM推送IMAC时间",
columnName: "dmSendTime",
columnWidth: "150",
status: 1
},
{
columnChineseName: "数据接收时间",
columnName: "dmCreateTime",
columnWidth: "150",
status: 1
},
{
columnChineseName: "货物创建时间",
columnName: "cargoCreateTime",
columnWidth: "150",
status: 1
},
{
columnChineseName: "回推ACCS时间",
columnName: "sendLogSendTime",
columnWidth: "150",
status: 1
},
{
columnChineseName: "回推ACCS结果",
columnName: "sendLogSendResult",
columnWidth: "120",
status: 1
},
{
columnChineseName: "OSPR推送状态",
columnName: "cargoPushStatus",
columnWidth: "130",
status: 1
},
{
columnChineseName: "首次配舱类型",
columnName: "cargoAllocationType",
columnWidth: "110",
status: 1
},
{
columnChineseName: "航班顺位规则",
columnName: "targetFlight",
columnWidth: "250",
align: 'left',
status: 1
},
{
columnChineseName: "配舱备注",
columnName: "remarksDetail",
columnWidth: "450",
align: 'left',
status: 1
},
{
columnChineseName: "处理状态级别",
columnName: "status",
columnWidth: "150",
status: 1
},
{
columnChineseName: "处理状态",
columnName: "statusDetailCode",
columnWidth: "150",
status: 1
},
{
columnChineseName: "处理结果",
columnName: "statusDetailDesc",
columnWidth: "350",
align: 'left',
status: 1
},
{
columnChineseName: "是否生成上架流水",
columnName: "weatherGenerateWater",
columnWidth: "130",
status: 1
},
],
//流水表
"weatherTable": [
{
columnChineseName: "AccsId",
columnName: "accsId",
columnWidth: "",
status: 1
},
{
columnChineseName: "运单号",
columnName: "waybillNo",
columnWidth: "",
status: 1
},
{
name: "创建时间",
value: "dmCreateTime",
width: "",
align: "center",
columnChineseName: "航班号",
columnName: "flightNo",
columnWidth: "100",
status: 1
},
{
name: "落地时间",
value: "dmSendTime",
width: "",
align: "center",
columnChineseName: "航班日期",
columnName: "flightTime",
columnWidth: "",
status: 1
},
{
name: "航班号",
value: "dmFlightNbr",
width: "",
align: "center",
columnChineseName: "申报类别",
columnName: "declarationCategory",
columnWidth: "100",
status: 1
},
{
name: "航班日期",
value: "dmFlightDate",
width: "",
align: "center",
columnChineseName: "是否开启高地价",
columnName: "highLowPriceFlg",
columnWidth: "",
status: 1
},
{
name: "货物创建时间",
value: "cargoCreateTime",
width: "",
align: "center",
columnChineseName: "增加重量",
columnName: "increaseWeight",
columnWidth: "100",
status: 1
},
{
name: "推送状态",
value: "cargoAllocationDataStatus",
width: "",
align: "center",
columnChineseName: "减轻重量",
columnName: "reduceWeight",
columnWidth: "100",
status: 1
},
{
name: "ACCS航线",
value: "flightFltDate",
width: "",
align: "center",
columnChineseName: "航班剩余重量",
columnName: "surplusWeight",
columnWidth: "",
status: 1
},
{
name: "ACCS Pool",
value: "flightFltNo",
width: "",
align: "center",
columnChineseName: "操作来源",
columnName: "operationSource",
columnWidth: "",
status: 1
},
{
name: "消息代码",
value: "sendLogSendTime",
width: "",
align: "center",
columnChineseName: "重量增加减少",
columnName: "weightMark",
columnWidth: "",
status: 1
},
{
name: "消息发送时间",
value: "sendLogSendResult",
width: "",
align: "center",
columnChineseName: "创建日期",
columnName: "createTime",
columnWidth: "",
status: 1
},
],
//数据字典
"dict": [
{
name: "数据名称",
value: "chineseName",
width: "",
align: "center",
columnChineseName: "数据名称",
columnName: "chineseName",
columnWidth: "",
status: 1
},
{
name: "字典CODE",
value: "code",
width: "",
align: "center",
columnChineseName: "字典CODE",
columnName: "code",
columnWidth: "",
status: 1
},
{
name: "描述",
value: "description",
width: "",
align: "center",
columnChineseName: "描述",
columnName: "description",
columnWidth: "",
status: 1
}
],
"dictServiceCode": [
{
name: "",
value: "serviceCodeMapperList",
width: "",
align: "center",
expand: true,
columnChineseName: " ",
columnName: "serviceCodeMapperList",
columnWidth: "",
ext1: 'expand',
status: 1
},
{
name: "数据名称",
value: "chineseName",
width: "",
align: "center",
columnChineseName: "数据名称",
columnName: "chineseName",
columnWidth: "",
status: 1
},
{
name: "字典CODE",
value: "code",
width: "",
align: "center",
columnChineseName: "字典CODE",
columnName: "code",
columnWidth: "",
status: 1
},
{
name: "描述",
value: "description",
width: "",
align: "center",
columnChineseName: "描述",
columnName: "description",
columnWidth: "",
status: 1
}
],
"dictServiceCodeChildren": [
{
name: "数据名称",
value: "serviceCodeValue",
width: "",
align: "center",
columnChineseName: "数据名称",
columnName: "serviceCodeValue",
columnWidth: "",
status: 1
},
]
......
......@@ -9,8 +9,8 @@
}
.wid95 {
width: 95% !important;
}
width: 95% !important;
}
.wid90 {
width: 90% !important;
......@@ -80,13 +80,13 @@
margin-bottom: 20px;
}
.m20 {
.ml20 {
margin-left: 20px;
}
// .el-dialog:not(.is-fullscreen) {
// margin-top: 6vh !important;
// }
// .el-dialog:not(.is-fullscreen) {
// margin-top: 6vh !important;
// }
.el-table {
......@@ -113,7 +113,7 @@
font-size: 15px;
color: #6379bb;
// border-bottom: 1px solid #ddd;
margin: 8px 10px 25px 10px;
margin: 8px 10px 15px 10px;
padding-top: 15px;
padding-bottom: 5px;
......
......@@ -26,9 +26,9 @@ html {
height: 100%;
}
input {
background-color: #fff !important;
}
// input {
// background-color: #fff !important;
// }
*,
*:before,
......@@ -194,11 +194,12 @@ aside {
z-index: 1000 !important;
}
.el-table__body-wrapper {
.el-table__body-wrapper,
.el-textarea__inner,
body {
&::-webkit-scrollbar {
height: 7px;
width: 7px;
height: 7px;
}
&::-webkit-scrollbar-track {
......@@ -207,20 +208,33 @@ aside {
&::-webkit-scrollbar-thumb {
background-color: #ccc;
border-radius: 20px;
}
&::-webkit-scrollbar-thumb:hover {
background-color: #409eff;
}
&::-webkit-scrollbar-track-piece {
background: #F2F6FC;
}
}
.el-scrollbar__wrap {
&::-webkit-scrollbar {
height: 0px;
width: 0px;
.el-table__header-wrapper {
.has-gutter {
.gutter {
display: none !important;
}
}
}
// .el-scrollbar__wrap {
// &::-webkit-scrollbar {
// height: 7px;
// width: 7px;
// }
// }
// 解决表格固定列问题
.el-table__fixed,
.el-table__fixed-right {
......@@ -247,4 +261,35 @@ aside {
// 当表格只有横向滚动条,没有纵向滚动条时
.el-table--scrollable-x:not(.el-table--scrollable-y) .el-table__fixed-right {
right: 0 !important;
}
.el-checkbox-group {
.el-checkbox {
width: 100%;
.el-checkbox__input {
top: -5px;
}
.el-checkbox__label {
width: 90%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
.el-transfer-panel__body {
.el-checkbox-group {
.el-checkbox {
.el-checkbox__input {
top: 6px !important;
}
}
}
}
.el-select-dropdown {
max-width: 300px;
}
\ No newline at end of file
......
<template>
<div>
<el-button v-if="buttonShow" class="mt5" size="mini" icon="el-icon-edit-outline" circle @click="visibleOpen">
</el-button>
<el-dialog title="表格显示设置" :visible.sync="open" width="40%" :close-on-click-modal="false" :show-close="false"
append-to-body center>
<div style="text-align: center">
<el-transfer style="text-align: left; display: inline-block" :data="transferData"
:right-default-checked="rightDefaultChecked" v-model="transferValue" :titles="transferTitle"
:props="props" v-loading="transferLoading" @change="change" @right-check-change="rightCheckChange">
<template slot="left-footer">
<div></div>
</template>
<template slot="right-footer">
<el-button style="margin-left:20px" type="primary" size="mini" icon="el-icon-top"
:disabled="updisabled" @click="up">
</el-button>
<el-button type="primary" size="mini" icon="el-icon-bottom" :disabled="downdisabled"
@click="down"></el-button>
</template>
</el-transfer>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" :loading="loading" @click="submit">确 定</el-button>
<el-button @click="close">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { getHeaderOrder, saveTableHeader } from "@/api/system/user.js";
export default {
props: {
tableName: {
type: String,
default: ''
}
},
data() {
return {
transferData: [],//穿梭框数据
transferValue: [],//已选择数据key
rightDefaultChecked: [],//右侧复选框选中
transferTitle: ['未显示列', '已显示列'],
props: { key: 'id', label: 'columnChineseName' },
open: false,
loading: false,
updisabled: true,
downdisabled: true,
buttonShow: true,
transferLoading: false
}
},
created() {
if (this.$store.getters.tableHeader) {
this.buttonShow = true
} else {
this.buttonShow = false
}
},
watch: {
open(val, oldVal) {
if (val) {
this.transferData = this.$store.getters.tableHeader[this.tableName]
this.transferLoading = true
// 获取用户显示表头
getHeaderOrder(`tableName=${this.tableName}`).then(res => {
this.transferLoading = false
if (res.code == 200) {
this.transferValue = res.data
} else {
this.msgwarning(res.msg)
}
}).catch(err => {
this.transferLoading = false
console.log(err)
})
}
}
},
methods: {
// 确定
submit() {
this.loading = true
let obj = this.$store.getters.tableHeader
// 保存设置
saveTableHeader({ tableName: this.tableName, idList: this.transferValue }).then(res => {
if (res.code === 200) {
obj[this.tableName] = res.data
this.$store.dispatch('SavetableHeader', obj)
this.msgSuccess('操作成功')
this.close(1)
} else {
this.msgWarning(res.msg)
}
this.$nextTick(() => {
this.loading = false
})
}).catch(err => {
this.loading = false
console.log(err)
})
},
//dialog开启
visibleOpen() {
this.open = true
},
// transferChange
change(val) {
let arr = []
let status0 = []
this.transferValue = val
this.transferData.forEach((item, i) => {
if (!this.transferValue.includes(item.id)) {
status0.push(item)
} else {
this.transferValue.forEach((vals, index) => {
if (vals == item.id) {
arr.push(item)
}
})
}
})
this.transferData = arr.concat(status0)
this.rightDefaultChecked = []
this.updisabled = true
this.downdisabled = true
},
//右侧选中,上下移动按钮状态设置
rightCheckChange(val) {
this.rightDefaultChecked = val
if (val.length == 1) {
if (this.transferValue.length > 1) {
this.transferValue.forEach((item, index) => {
if (item === val[0]) {
if (index === 0) {
this.updisabled = true
this.downdisabled = false
} else if (index === this.transferValue.length - 1) {
this.updisabled = false
this.downdisabled = true
} else {
this.updisabled = false
this.downdisabled = false
}
}
})
}
} else {
this.updisabled = true
this.downdisabled = true
}
},
//当前数据整理
tableHeadersSort() {
let arr = []
let status0 = []
this.transferData.forEach((item, i) => {
if (!this.transferValue.includes(item.id)) {
status0.push(item)
} else {
this.transferValue.forEach((val, index) => {
if (val == item.id) {
arr[index] = item
}
})
}
})
arr = arr.concat(status0)
this.transferData = arr
},
//右侧单条数据上移
up() {
if (!this.updisabled) {
let str = ''
this.transferValue.forEach((item, index) => {
if (item == this.rightDefaultChecked[0]) {
str = item
this.transferValue[index] = this.transferValue[index - 1]
this.transferValue[index - 1] = str
return
}
})
this.tableHeadersSort()
this.rightCheckChange([str])
}
},
//右侧单条数据下移
down() {
if (!this.downdisabled) {
let str = ''
let int = 1
this.transferValue.forEach((item, index) => {
if (item == this.rightDefaultChecked[0] && int === 1) {
str = item
this.transferValue[index] = this.transferValue[index + 1]
this.transferValue[index + 1] = str
int++
return
}
})
this.tableHeadersSort()
this.rightCheckChange([str])
}
},
//dialog关闭
close(val) {
this.rightDefaultChecked = []
this.updisabled = true
this.downdisabled = true
this.open = false
this.$emit('close', val)
}
}
}
</script>
<style lang="scss">
.el-transfer-panel__body.is-with-footer {
padding-bottom: 0px;
margin-bottom: 40px
}
.el-transfer {
.el-transfer-panel {
width: 220px;
.el-transfer-panel__list {
overflow-x: hidden;
overflow-y: scroll;
}
.el-transfer-panel__list::-webkit-scrollbar {
width: 5px;
height: 5px;
}
.el-transfer-panel__list::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
background: rgba(0, 0, 0, 0.2);
}
}
.el-transfer__buttons {
.el-button {
display: block;
padding: 9px 15px;
font-size: 12px;
border-radius: 3px;
}
.el-button+.el-button {
margin-left: 0px
}
}
}
</style>
\ No newline at end of file
<template>
<div class="w-table" :class="{ 'w-table_moving': dragState.dragging }">
<div class="w-table w-table_moving">
<el-table :ref="tableName" :data="data" :border="border" :stripe="stripe" :size="size" :fit="fit" :indent="indent"
:show-header="showHeader" :height="height" :highlight-current-row="highlightCurrentRow" :lazy="lazy"
:downShiftKey="shiftKey" :limitStart="limitStart" :row-key="rowKey" :default-expand-all="defaultExpandAll"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }" v-loading="loading"
:cell-class-name="cellClassName" :header-cell-class-name="headerCellClassName" @sort-change="sortChange"
@select="tableSelect" @select-all="tableSelectAll" @select-change="SelectChange">
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }" v-loading="loading" @sort-change="sortChange"
@select="tableSelect" @select-all="tableSelectAll" @select-change="SelectChange" @row-click="rowClick">
<!-- 多选框 -->
<el-table-column v-if="selection" type="selection" width="50" align="center" :fixed="true"></el-table-column>
<el-table-column v-if="selection" type="selection" width="50" :align="tableAlign" :fixed="selectFixed"
:header-align="headerAlign">
</el-table-column>
<!-- 序号 -->
<el-table-column type="index" width="50" align="center" :index="indexAdd"></el-table-column>
<template v-for="(item, index) in headerData">
<el-table-column v-if="order" label="序号" type="index" width="70" :align="tableAlign" :index="indexAdd"
:header-align="headerAlign" show-overflow-tooltip>
</el-table-column>
<template v-for="(item, index) in headerData" :key="" v-if="item.status == 1">
<!-- 自定义插槽 -->
<el-table-column v-if="item.slot" :prop="item.value" :label="item.name" :width="item.width" :align="item.align"
<el-table-column v-if="tableColumnHidden(item.ext1, 'slot')" :prop="item.columnName"
:label="item.columnChineseName" :width="item.columnWidth" :align="item.align ? item.align : 'center'"
:fixed="item.fixed ? item.fixed : false" :show-overflow-tooltip="showOverflowTooltip"
:sortable="item.sorTable ? true : false" :formatter="formatter" header-align="center"
:sort-orders="['descending', 'ascending', null]" :slotHeader="slotHeader" :render-header="renderHeader"
:key="index">
:sortable="tableColumnHidden(item.ext1, 'sorTable')" :formatter="formatter" :header-align="headerAlign"
:column-key="index.toString()" :sort-orders="['descending', 'ascending', null]" :slotHeader="slotHeader"
:key="item.columnName">
<template slot="header" slot-scope="scope">
<Tooltips :content="scope.column.label" :refName="scope.column.columnName"></Tooltips>
</template>
<template slot-scope="scope">
<slot :name="item.columnName" :row="scope.row"></slot>
</template>
</el-table-column>
<!-- 隐藏行 -->
<el-table-column v-else-if="tableColumnHidden(item.ext1, 'expand')" type="expand" :prop="item.columnName"
:label="item.columnChineseName" :index="item.index" :width="item.columnWidth"
:align="item.align ? item.align : 'center'" :fixed="item.fixed ? item.fixed : false"
:column-key="index.toString()" :show-overflow-tooltip="showOverflowTooltip" :header-align="headerAlign"
:sort-orders="['descending', 'ascending', null]" :slotHeader="slotHeader" :formatter="formatter"
:key="item.index">
<template slot="header" slot-scope="scope">
<Tooltips :content="scope.column.label" :refName="scope.column.columnName"></Tooltips>
</template>
<template slot-scope="scope">
<slot :name="item.value" :row="scope.row"></slot>
<slot :name="item.columnName" :row="scope.row"></slot>
</template>
</el-table-column>
<!-- 默认数据 -->
<el-table-column v-else :prop="item.value" :label="item.name" :index="item.index" :width="item.width"
:align="item.align" :fixed="item.fixed ? item.fixed : false" :sortable="item.sorTable ? true : false"
:column-key="index.toString()" :show-overflow-tooltip="showOverflowTooltip" header-align="center"
:sort-orders="['descending', 'ascending', null]" :slotHeader="slotHeader" :render-header="renderHeader"
:formatter="formatter" :key="index">
<el-table-column v-else :prop="item.columnName" :label="item.columnChineseName" :index="item.index"
:width="item.columnWidth" :align="item.align ? item.align : 'center'" :fixed="item.fixed ? item.fixed : false"
:sortable="tableColumnHidden(item.ext1, 'sorTable')" :column-key="index.toString()"
:show-overflow-tooltip="showOverflowTooltip" :header-align="headerAlign"
:sort-orders="['descending', 'ascending', null]" :slotHeader="slotHeader" :formatter="formatter"
:key="item.id">
<template slot="header" slot-scope="scope">
<Tooltips :content="scope.column.label" :refName="scope.column.columnName"></Tooltips>
</template>
</el-table-column>
</template>
<slot name="optionColumn"></slot>
......@@ -39,8 +64,7 @@
</template>
<script>
import dictLabels from "../../assets/languages/dictLabels.js";
import { scrollTo } from "@/utils/scroll-to";
export default {
name: "Table",
props: {
......@@ -70,6 +94,10 @@ export default {
type: Boolean,
default: true,
},
selectFixed: {
type: Boolean,
default: true
},
size: {
type: String,
default: "mini",
......@@ -169,7 +197,27 @@ export default {
},
layout: {
type: String,
default: 'prev, pager, next, jumper, ->, sizes, total'
default: 'total,prev, pager, next, jumper, ->, sizes'
},
tableAlign: {
type: String,
default: 'center'
},
headerAlign: {
type: String,
default: 'center'
},
// treeProps: {
// type: Object,
// default: { children: 'children', hasChildren: 'hasChildren' }
// },
order: {
type: Boolean,
default: true
},
expand: {
type: Boolean,
default: false
}
},
inheritAttrs: false,
......@@ -179,20 +227,14 @@ export default {
pageNum: 1,
start: -1,
show: false,
dragState: {
start: -9, // 起始元素的 index
end: -9, // 移动鼠标时所覆盖的元素 index
dragging: false, // 是否正在拖动
direction: undefined, // 拖动方向
},
//表头数据格式
// {
// name: "",
// value: "",
// width: "",
// columnChineseName: "",
// columnName: "",
// columnWidth: "",
// align: "center",
// sorTable: false,
// fixed:false,
// status: 1
// },
};
},
......@@ -221,7 +263,6 @@ export default {
page: this.pageNum + 1,
start: this.limitStart + this.limitSize,
});
scrollTo(0, 800);
},
//上一页
prevClick() {
......@@ -229,7 +270,6 @@ export default {
page: this.pageNum - 1,
start: this.limitStart - this.limitSiz,
});
scrollTo(0, 800);
},
//某页
currentChange(val) {
......@@ -237,7 +277,6 @@ export default {
page: val,
start: val > 1 ? (val - 1) * this.limitSize + 1 : val,
});
scrollTo(0, 800);
},
//连续序号
indexAdd(index) {
......@@ -290,7 +329,9 @@ export default {
}
}
}
selection = this.selectTable.sort(this.compare("index", "ascending"));
if (row.index) {
selection = this.selectTable.sort(this.compare("index", "ascending"));
}
this.$emit("tableSelect", { selection, row });
},
//表格全选
......@@ -302,6 +343,10 @@ export default {
SelectChange(selection) {
this.$emit("SelectChange", selection);
},
//行被点击
rowClick(val) {
this.$emit('rowClick', val)
},
//表格选择清空
clearTable() {
this.selectTable = [];
......@@ -328,37 +373,12 @@ export default {
}
};
},
//自定义表头
renderHeader(createElement, { column }) {
return createElement(
"div",
{
class: ["thead-cell"],
},
[
// 添加 <a> 用于显示表头 label
createElement("div", column.label),
]
);
},
headerCellClassName({ column, columnIndex }) {
let active =
columnIndex - 1 === this.dragState.end
? `darg_active_${this.dragState.direction}`
: "";
let start = columnIndex - 1 === this.dragState.start ? `darg_start` : "";
return `${active} ${start}`;
},
cellClassName({ column, columnIndex }) {
return columnIndex - 1 === this.dragState.start ? `darg_start` : "";
},
//数据格式化
formatter(row, column, cellValue, index) {
if (dictLabels[this.ductName]) {
if (dictLabels[this.ductName][column.property]) {
if (dictLabels[this.ductName][column.property][cellValue]) {
return dictLabels[this.ductName][column.property][cellValue];
if (this.dictLabels[this.ductName]) {
if (this.dictLabels[this.ductName][column.property]) {
if (this.dictLabels[this.ductName][column.property][cellValue]) {
return this.dictLabels[this.ductName][column.property][cellValue];
}
}
}
......@@ -368,8 +388,28 @@ export default {
if (column.property == 'flightIdImac') {
return cellValue == null ? '未配' : '已配'
}
if (this.ductName === 'weatherTable') {
if (column.property == 'flightTime') {
return cellValue ? cellValue.split(" ")[0] : ''
}
}
if (this.ductName === 'cargoLog') {
if (column.property == 'flightDate' || column.property == 'accsFlightDate') {
return cellValue ? cellValue.split(" ")[0] : ''
}
}
return cellValue;
},
//列显示状态
tableColumnHidden(val, status) {
if (typeof val == 'string') {
if (val.indexOf(status) >= 0) {
return true
} else {
return false
}
}
}
},
};
</script>
......@@ -387,61 +427,49 @@ export default {
background-color: #f3f3f3;
}
.el-table th {
padding: 0;
.virtual {
position: absolute;
display: block;
width: 0;
height: 0;
top: 0px;
left: 0px;
background: none;
border: none;
}
.el-table {
th {
padding: 0;
&.darg_active_left {
.virtual {
border-left: 2px dotted #666;
z-index: 99;
.cell {
min-width: 24px;
.caret-wrapper {
position: absolute;
top: -20%;
right: 3%;
}
}
}
&.darg_active_right {
.virtual {
border-right: 2px dotted #666;
z-index: 99;
position: absolute;
display: block;
width: 0;
height: 0;
top: 0px;
left: 0px;
background: none;
border: none;
}
}
}
.thead-cell {
padding: 0;
display: inline-flex;
flex-direction: column;
align-items: left;
overflow: initial;
&.darg_active_left {
.virtual {
border-left: 2px dotted #666;
z-index: 99;
}
}
&:before {
content: "";
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
&.darg_active_right {
.virtual {
border-right: 2px dotted #666;
z-index: 99;
}
}
}
}
&.w-table_moving {
.el-table th .thead-cell {
cursor: move !important;
}
.el-table__fixed {
cursor: not-allowed;
}
}
}
.tableList {
......
<template>
<div class="text-tooltip">
<el-tooltip class="item" effect="dark" :disabled="isShowTooltip" :content="content" :placement="placement">
<div class="over-flow" @mouseover="onMouseOver(refName)">
<span :ref="refName">{{ content }}</span>
</div>
</el-tooltip>
</div>
</template>
<script>
export default {
name: 'textTooltip',
props: {
// 显示的文字内容
content: {
type: String,
default: () => {
return ''
}
},
refName: {
type: String,
default: () => {
return ''
}
},
placement: {
type: String,
default: 'top'
}
},
data() {
return {
isShowTooltip: true
}
},
methods: {
onMouseOver(str) {
if (this.$refs[str]) {
const parentWidth = this.$refs[str].parentNode.offsetWidth;
const contentWidth = this.$refs[str].offsetWidth;
// 判断是否开启tooltip功能
if (contentWidth > parentWidth) {
this.isShowTooltip = false;
} else {
this.isShowTooltip = true;
}
}
}
}
}
</script>
<style scoped>
.over-flow {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
</style>
\ No newline at end of file
......@@ -11,16 +11,20 @@ import App from './App'
import store from './store'
import router from './router'
import permission from './directive/permission'
// import i18n from './i18n/index'
import './assets/icons' // icon
import './permission' // permission control
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, download, handleTree, upCase, nowDate } from "@/utils/FedEx";
import { isArray } from "@/utils/validate";
import Pagination from "@/components/Pagination";
// 自定义表格工具扩展
import RightToolbar from "@/components/RightToolbar"
import Table from "@/components/Table"
import Tooltip from "@/components/Tooltip"
import HeaderSetting from "@/components/HeaderSetting"
import tableHeaders from '@/assets/languages/tableHeaders'
import dictLabels from "@/assets/languages/dictLabels.js";
import settings from './settings.js'
// 全局方法挂载
Vue.prototype.parseTime = parseTime
......@@ -32,7 +36,10 @@ Vue.prototype.download = download
Vue.prototype.handleTree = handleTree
Vue.prototype.upCase = upCase
Vue.prototype.nowDate = nowDate
Vue.prototype.isArray = isArray
Vue.prototype.tableHeaders = tableHeaders
Vue.prototype.dictLabels = dictLabels
Vue.prototype.settings = settings
Vue.prototype.msgSuccess = function (msg) {
this.$message({ showClose: true, message: msg, type: "success" });
......@@ -54,6 +61,8 @@ Vue.prototype.msgInfo = function (msg) {
Vue.component('Pagination', Pagination)
Vue.component('RightToolbar', RightToolbar)
Vue.component('Tables', Table)
Vue.component('Tooltips', Tooltip)
Vue.component('HeaderSetting', HeaderSetting)
Vue.use(permission)
/**
......@@ -65,6 +74,13 @@ Vue.use(permission)
* please remove it before going online! ! !
*/
window.addEventListener("keydown", (code) => {
if (code.keyCode === 13) {
return false
}
});
Vue.use(Element, {
//size: Cookies.get('size') || 'medium' // set element-ui default size
// size: localStorage.getItem('size') || 'medium' // set element-ui default size
......@@ -76,6 +92,5 @@ new Vue({
el: '#app',
router,
store,
// i18n,
render: h => h(App)
})
......
......@@ -16,10 +16,12 @@ router.beforeEach((to, from, next) => {
if (store.getters.roles.length === 0) {
// 判断当前用户是否已拉取完user_info信息
store.dispatch('GetInfo').then(() => {
store.dispatch('GenerateRoutes').then(accessRoutes => {
// 根据roles权限生成可访问的路由表
router.addRoutes(accessRoutes) // 动态添加可访问路由表
next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
store.dispatch('GetTableHeaders').then(() => {
store.dispatch('GenerateRoutes').then(accessRoutes => {
// 根据roles权限生成可访问的路由表
router.addRoutes(accessRoutes) // 动态添加可访问路由表
next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
})
})
}).catch(err => {
Message.error(err)
......@@ -48,7 +50,6 @@ router.beforeEach((to, from, next) => {
window.location.href = settings.logoutURL;//wsso系统跳转
}
}
}
})
......
......@@ -84,7 +84,13 @@ export const constantRoutes = [
component: (resolve) => require(['@/views/allocationConfig/flightAllocConfig/info'], resolve),
name: 'FlightAllocConfigAdd',
meta: { title: '添加航班配舱', icon: 'user', breadcrumb: false }
}
},
{
path: '/weatherTable',
component: (resolve) => require(['@/views/systemLog/dmLog/weatherTable'], resolve),
name: 'weatherTable',
meta: { title: '流水表', icon: 'user' }
},
]
}
]
......
......@@ -58,5 +58,5 @@ module.exports = {
/**
* 版本号
*/
version: 'version:1.3.0'
version: 'version:1.5.0'
}
......
......@@ -17,5 +17,6 @@ const getters = {
defaultRoutes: state => state.permission.defaultRoutes,
sidebarRouters: state => state.permission.sidebarRouters,
filghtAllData: state => state.permission.filghtAllData,
tableHeader: state => state.user.tableHeader
}
export default getters
......
import { login, logout, getInfo } from '@/api/login'
import { getTableHeader } from '@/api/menu'
import { changeCurrentPort } from "@/api/system/user.js";
import { getToken, setToken, removeToken } from '@/utils/auth'
import { Message } from 'element-ui'
......@@ -9,9 +10,10 @@ const user = {
name: '',
avatar: '',
activePortName: '',
portNames:[],
portNames: [],
roles: [],
permissions: []
permissions: [],
tableHeader: null
},
mutations: {
......@@ -28,7 +30,7 @@ const user = {
state.activePortName = activePortName
sessionStorage.setItem('portName', activePortName)
},
SET_PORTNAMES:(state,portNames)=>{
SET_PORTNAMES: (state, portNames) => {
state.portNames = portNames
},
SET_ROLES: (state, roles) => {
......@@ -36,7 +38,10 @@ const user = {
},
SET_PERMISSIONS: (state, permissions) => {
state.permissions = permissions
}
},
SAVE_TABLEHEADER: (state, table) => {
state.tableHeader = table
},
},
actions: {
......@@ -49,7 +54,7 @@ const user = {
return new Promise((resolve, reject) => {
login(username, password, rememberMe).then(res => {
if(res.code === 200){
if (res.code === 200) {
setToken(res.data)
commit('SET_TOKEN', res.data)
}
......@@ -60,6 +65,25 @@ const user = {
})
},
//获取表头
GetTableHeaders({ commit, state }) {
return new Promise((resolve, reject) => {
getTableHeader().then(res => {
if (res.code === 200) {
commit('SAVE_TABLEHEADER', res.data)
}
resolve(res)
}).catch(err => {
reject(err)
})
})
},
//保存表头
SavetableHeader({ commit, state }, data) {
commit('SAVE_TABLEHEADER', data)
},
// 获取用户信息
GetInfo({ commit, state }) {
return new Promise((resolve, reject) => {
......@@ -67,16 +91,16 @@ const user = {
const user = res.data.user
const avatar = user.avatar == "" ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
let ports = [];
if(user.portName){
if (user.portName) {
ports = user.portName.split(',');
commit('SET_PORTNAMES',ports)
commit('SET_ACTIVEPORTNAME', sessionStorage.getItem('portName')?sessionStorage.getItem('portName'):state.portNames[0])
}else{
commit('SET_PORTNAMES', ports)
commit('SET_ACTIVEPORTNAME', sessionStorage.getItem('portName') ? sessionStorage.getItem('portName') : state.portNames[0])
} else {
Message({
message: "未找到口岸信息!请确认后再登录",
type: 'error'
})
this.LogOut().then(()=>{
this.LogOut().then(() => {
window.location.href = "https://test-myapps.secure.fedex.com/purpleid/signout/";//wsso系统跳转
})
}
......@@ -98,12 +122,12 @@ const user = {
//切换口岸
changePort({ commit }, portName) {
return new Promise((resolve, reject) => {
changeCurrentPort({ portName: portName }).then(res=>{
if(res.code === 200){
commit('SET_ACTIVEPORTNAME',portName)
changeCurrentPort({ portName: portName }).then(res => {
if (res.code === 200) {
commit('SET_ACTIVEPORTNAME', portName)
}
resolve(res)
}).catch(err=>{
}).catch(err => {
reject(err)
})
})
......
......@@ -177,7 +177,7 @@ export function handleTree(data, id, parentId, children) {
//字符串英文转大写,;转英文;
export function upCase(str) {
let newStr = str.replace(/;/g, ";").toUpperCase();
let newStr = str.replace(/;/g, ";").toUpperCase().trim();
return newStr;
}
......
......@@ -5,12 +5,12 @@ import { parseTime } from './FedEx'
*/
export function formatDate(cellValue) {
if (cellValue == null || cellValue == "") return "";
var date = new Date(cellValue)
var date = new Date(cellValue)
var year = date.getFullYear()
var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
}
......@@ -218,7 +218,7 @@ export function getTime(type) {
export function debounce(func, wait, immediate) {
let timeout, args, context, timestamp, result
const later = function() {
const later = function () {
// 据上一次触发时间间隔
const last = +new Date() - timestamp
......@@ -235,7 +235,7 @@ export function debounce(func, wait, immediate) {
}
}
return function(...args) {
return function (...args) {
context = this
timestamp = +new Date()
const callNow = immediate && !timeout
......@@ -330,7 +330,7 @@ export function makeMap(str, expectsLowerCase) {
? val => map[val.toLowerCase()]
: val => map[val]
}
export const exportDefault = 'export default '
export const beautifierConf = {
......@@ -387,4 +387,4 @@ export function camelCase(str) {
export function isNumberStr(str) {
return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str)
}
......
......@@ -19,6 +19,7 @@
<el-select placeholder="不限" v-model="formData.customsReceiptStatusId" class="formItem" multiple clearable>
<el-option v-for="item in selectData.findConditionData
.cargoCustomsReturnStatus" :label="item.chineseName" :value="item.id" :key="item.id">
<Tooltips :content="item.chineseName" :refName="item.code"></Tooltips>
</el-option>
</el-select>
</el-form-item>
......@@ -45,12 +46,6 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运单号">
<el-input class="formItem" type="textarea" placeholder="请输入运单号(回车分割)" :rows="1" :maxlength="12000"
v-model="formData.waybillNo" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="申报类别">
<el-select placeholder="不限" v-model="formData.typeId" class="formItem" clearable>
<el-option v-for="item in selectData.findConditionData.cargoType" :label="item.chineseName"
......@@ -64,32 +59,22 @@
<el-select placeholder="不限" v-model="formData.serviceTypeId" class="formItem" clearable>
<el-option v-for="item in selectData.findConditionData.cargoServiceType" :label="item.chineseName"
:value="item.id" :key="item.id">
<Tooltips :content="item.chineseName" :refName="item.code"></Tooltips>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="URSA">
<el-input class="formItem" type="textarea" placeholder="S_;P_;E2" v-model="ursa" :rows="1" clearable>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="站点">
<el-input class="formItem" type="textarea" placeholder="PVG;PEK" v-model="siteName" :rows="1" clearable>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="重量区间">
<el-row>
<el-col :span="11">
<el-input-number class="formItem" size="mini" v-model="formData.minWeight" :controls="false" :min="0"
<el-col :span="10">
<el-input-number class="wid100" size="mini" v-model="formData.minWeight" :controls="false" :min="0"
:precision="2" clearable></el-input-number>
</el-col>
<el-col class="line" :span="2">-</el-col>
<el-col :span="11">
<el-input-number class="formItem" size="mini" v-model="formData.maxWeight" :controls="false"
<el-col :span="1"></el-col>
<el-col class="line" :span="3">-</el-col>
<el-col :span="10">
<el-input-number class="wid100" size="mini" v-model="formData.maxWeight" :controls="false"
:min="formData.minWeight" :precision="2" clearable></el-input-number>
</el-col>
</el-row>
......@@ -98,13 +83,14 @@
<el-col :span="6">
<el-form-item label="件数区间">
<el-row>
<el-col :span="11">
<el-input-number class="formItem" size="mini" v-model="formData.minNumber" :controls="false" :min="0"
clearable></el-input-number>
<el-col :span="10">
<el-input-number class="formItem wid100" size="mini" v-model="formData.minNumber" :controls="false"
:min="0" clearable></el-input-number>
</el-col>
<el-col class="line" :span="2">-</el-col>
<el-col :span="11">
<el-input-number class="formItem" size="mini" v-model="formData.maxNumber" :controls="false"
<el-col :span="1"></el-col>
<el-col class="line" :span="3">-</el-col>
<el-col :span="10">
<el-input-number class="formItem wid100" size="mini" v-model="formData.maxNumber" :controls="false"
:min="formData.minNumber" clearable></el-input-number>
</el-col>
</el-row>
......@@ -117,14 +103,37 @@
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="URSA">
<el-input class="formItem" type="textarea" placeholder="S_;P_;E2" v-model="ursa" :rows="1" clearable>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="站点">
<el-input class="formItem" type="textarea" placeholder="PVG;PEK" v-model="siteName" :rows="1" clearable>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运单号">
<el-input class="formItem" type="textarea" :rows="4" placeholder="请输入运单号(回车分割)" :maxlength="12000"
v-model="formData.waybillNo" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="Handling Code">
<el-empty description="暂无数据" v-if="
!selectData.HandlingCode || selectData.HandlingCode.length == 0
"></el-empty>
<el-checkbox-group v-model="handingCodes" v-else>
<el-checkbox v-for="item in selectData.HandlingCode" :label="item.chineseName" v-model="item.englishName"
:key="item.id"></el-checkbox>
<el-row>
<el-col :span="2" v-for="item in selectData.HandlingCode" :key="item.id">
<el-checkbox :label="item.chineseName" v-model="item.chineseName">
<Tooltips :content="item.chineseName" :refName="item.code"></Tooltips>
</el-checkbox>
</el-col>
</el-row>
</el-checkbox-group>
</el-form-item>
</el-col>
......@@ -134,8 +143,13 @@
!selectData.SubCategory || selectData.SubCategory.length == 0
"></el-empty>
<el-checkbox-group v-model="subCategorys" v-else>
<el-checkbox v-for="item in selectData.SubCategory" :label="item.chineseName" v-model="item.englishName"
:key="item.id"></el-checkbox>
<el-row>
<el-col :span="2" v-for="item in selectData.SubCategory" :key="item.id">
<el-checkbox :label="item.chineseName" v-model="item.chineseName">
<Tooltips :content="item.chineseName" :refName="item.code"></Tooltips>
</el-checkbox>
</el-col>
</el-row>
</el-checkbox-group>
</el-form-item>
</el-col>
......@@ -158,12 +172,15 @@
<span style="paddingRight: 50px">总重量:{{ allWeight }}</span>
<span>总件数:{{ allQty }}</span>
</div>
<HeaderSetting class="mr20" tableName="allocationCargo" style="float: right" @close="headerSetClose">
</HeaderSetting>
</div>
</el-form>
<Tables ref="newTables" ductName="cargo" :data="tableData" :headerData="tableHeader" :totalCount="totalCount"
:loading="loading" :selection="true" :limitSize="size" :limitStart="formData.limitStart" :page="page"
:shiftKey="shiftKey" :height="tableHeight" :pageSizes="[100]" @sizeChange="sizeChange" @tableSelect="tableSelect"
@tableSelectAll="tableSelectAll" @currentChange="currentChange" @sortChange="sortChange"></Tables>
:loading="loading" :selection="true" :order="true" :limitSize="size" :limitStart="formData.limitStart"
:page="page" :shiftKey="shiftKey" :height="tableHeight" :pageSizes="[100]" @sizeChange="sizeChange"
@tableSelect="tableSelect" @tableSelectAll="tableSelectAll" @currentChange="currentChange"
@sortChange="sortChange"></Tables>
<Dialog :tableData="tableSelection" :dialogVisible="dialogVisible" @dialogBeforeClose="dialogBeforeClose"></Dialog>
</div>
</template>
......@@ -173,7 +190,6 @@ import Dialog from "./info.vue";
import { findConditionData, findCargoAllocationData } from "@/api/cargoSelect";
import { allDictData } from "@/api/destinationFlight";
import { downLoadXlsx } from "@/utils/zipdownload";
import { upCase } from "@/utils/FedEx";
export default {
name: "CargoAllocation",
......@@ -204,7 +220,7 @@ export default {
customsReceiptStatusId: null,
accsPool: "OSPR"
}, //查询数据
tableHeader: this.tableHeaders['cargoAllocation'], //表头数据
tableHeader: [], //表头数据
tableData: [], //表格数据
tableSelection: [], //选中数据
selectData: {
......@@ -236,12 +252,18 @@ export default {
};
},
created() {
if (this.$store.getters.tableHeader) {
this.tableHeader = this.$store.getters.tableHeader['allocationCargo']
} else {
this.tableHeader = this.tableHeaders['allocationCargo']
}
this.seleData();
if (this.$store.state.tagsView.cachedViews.length == 0) {
this.select();
}
},
activated() {
this.seleData();
this.select();
},
deactivated() {
......@@ -269,10 +291,7 @@ export default {
this.selectData.HandlingCode = res.data.handlingCode;
this.selectData.SubCategory = res.data.subCategory;
} else {
this.$message({
message: "查询条件不存在",
type: "warning",
});
this.msgWarning('查询条件不存在')
}
})
.catch(() => { });
......@@ -282,10 +301,7 @@ export default {
if (res.code == 200) {
this.selectData.findConditionData = res.data;
} else {
this.$message({
message: "查询条件不存在",
type: "warning",
});
this.msgWarning('查询条件不存在')
}
})
.catch(() => { });
......@@ -305,20 +321,11 @@ export default {
this.tableData = res.data.list;
this.totalCount = res.data.total;
if (res.data.list.length > 0) {
// this.tableData.forEach((item, index = 0) => {
// item.index = index;
// });
} else {
this.$message({
message: "未查询到数据",
type: "warning",
});
this.msgWarning('未查询到数据')
}
} else {
this.$message({
message: res.msg,
type: "warning",
});
this.msgWarning(res.msg)
}
})
.catch(() => {
......@@ -449,9 +456,6 @@ export default {
}
this.tableSelection = []
this.cargoTotal()
// this.tableData.forEach((item, index = 0) => {
// item.index = index;
// });
},
sizeChange(val) {
this.size = val
......@@ -471,6 +475,17 @@ export default {
this.select();
}
},
//设置关闭
headerSetClose(val) {
if (val === 1) {
this.tableHeader = []
this.tableData = []
this.$nextTick(() => {
this.select();
this.tableHeader = this.$store.getters.tableHeader['allocationCargo']
})
}
}
},
computed: {
fltNo: {
......@@ -478,7 +493,7 @@ export default {
return this.formData.fltNo;
},
set: function (val) {
this.formData.fltNo = upCase(val);
this.formData.fltNo = this.upCase(val);
},
},
ursa: {
......@@ -486,7 +501,7 @@ export default {
return this.ursaList;
},
set: function (val) {
this.ursaList = upCase(val);
this.ursaList = this.upCase(val);
},
},
siteName: {
......@@ -494,7 +509,7 @@ export default {
return this.siteNameList;
},
set: function (val) {
this.siteNameList = upCase(val);
this.siteNameList = this.upCase(val);
},
},
portName: {
......@@ -502,7 +517,7 @@ export default {
return this.formData.portName;
},
set: function (val) {
this.formData.portName = upCase(val);
this.formData.portName = this.upCase(val);
},
},
},
......
<template>
<div>
<el-dialog title="货物配舱" width="80%" :visible.sync="dialogVisible" :close-on-click-modal="false"
<el-dialog title="货物配舱" width="80%" :visible.sync="dialogVisible" :close-on-click-modal="false" :show-close="false"
:append-to-body="true">
<el-divider content-position="left">已选货物信息</el-divider>
<el-table :data="tableData" size="mini" height="200" max-height="200" border stripe highlight-current-row
......@@ -32,7 +32,7 @@
<script>
import { allocationFlight } from "@/api/cargoSelect";
import { MessageBox } from "element-ui";
export default {
props: {
dialogVisible: {
......@@ -109,14 +109,11 @@ export default {
this.loading = false;
//code 200 配舱成功 202 重量已满需要确认 其余code直接输出msg
if (res.code === 200) {
this.$message({
message: "货物配舱成功",
type: "success",
});
this.msgSuccess('货物配舱成功')
this.cleaerForm();
this.$emit("dialogBeforeClose", { close: false, reload: true });
} else if (res.code === 202) {
MessageBox.confirm(res.msg, "提示", {
this.$confirm(res.msg, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
......@@ -125,15 +122,9 @@ export default {
this.formData.overweight = true; //确定继续overweight变为true再次请求接口
allocationFlight(this.formData).then((res) => {
if (res.code === 200) {
this.$message({
message: "货物配舱成功",
type: "success",
});
this.msgSuccess('货物配舱成功')
} else {
this.$message({
message: res.msg,
type: "warning",
});
this.msgWarning(res.msg)
}
});
this.cleaerForm();
......@@ -141,10 +132,7 @@ export default {
})
.catch(() => {
//取消 取消当前配舱
this.$message({
message: "配舱已取消",
type: "success",
});
this.msgSuccess('配舱已取消')
this.cleaerForm();
this.$emit("dialogBeforeClose", {
close: false,
......@@ -153,20 +141,14 @@ export default {
});
} else {
this.loading = false;
this.$message({
message: res.msg,
type: "warning",
});
this.msgWarning(res.msg)
}
}).catch(() => {
this.loading = false;
});
} else {
this.loading = false;
this.$message({
message: "航班号或航班日期不能为空",
type: "warning",
});
this.msgWarning('航班号或航班日期不能为空')
}
},
dialogBeforeClose() {
......@@ -191,7 +173,7 @@ export default {
return this.formData.fltNo;
},
set: function (val) {
this.formData.fltNo = val.toUpperCase();
this.formData.fltNo = this.upCase(val);
},
},
},
......
<template>
<div>
<el-form :inline="true" :model="queryParams" class="form-header" size="medium" label-position="right"
label-width="auto">
<el-form ref="flightAllocForm" :inline="true" :model="queryParams" class="form-header" size="medium"
label-position="right" label-width="auto">
<el-form-item label="航班号">
<el-input v-model.trim="purposeOfFlightNo" placeholder="航班号" @keyup.enter.native="getList" clearable></el-input>
<el-input v-model.trim="purposeOfFlightNo" placeholder="航班号" @keyup.enter.native="getList"></el-input>
</el-form-item>
<el-form-item label="状态">
<el-select v-model="queryParams.status" placeholder="状态" clearable>
<el-select v-model="queryParams.status" placeholder="状态">
<el-option label="有效" value="1"></el-option>
<el-option label="停用" value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="getList" size="mini">查询</el-button>
<el-button type="primary" icon="el-icon-search" :loading="loading" @click="getList" size="mini">查询</el-button>
</el-form-item>
<div>
<el-button style="margin-bottom: 20px" type="primary" icon="el-icon-plus" size="mini"
v-hasPermi="['allocation:alloc:add']" @click="
<el-button class="mb20" type="primary" icon="el-icon-plus" size="mini" v-hasPermi="['allocation:alloc:add']"
@click="
$router.push({
name: 'FlightAllocConfigAdd',
params: { handle: 'add' },
......@@ -24,44 +24,27 @@
">添加</el-button>
</div>
</el-form>
<el-table :data="flyList" v-loading="loading" size="small" highlight-current-row border stripe>
<el-table-column prop="purposeOfFlightNo" label="航班号" align="center"></el-table-column>
<el-table-column prop="status" label="状态" align="center">
<template slot-scope="scope">
<span v-if="scope.row.status === '0'">无效</span>
<span v-if="scope.row.status === '1'">有效</span>
<span v-if="scope.row.status === '2'">配置中</span>
<span v-if="scope.row.status === '3'">停用</span>
</template>
</el-table-column>
<el-table-column prop="createUserName" label="操作人" align="center">
</el-table-column>
<el-table-column prop="createTime" label="更新时间" align="center">
</el-table-column>
<el-table-column label="操作" prop="id" align="center">
<template slot-scope="scope">
<el-button type="text" size="mini" icon="el-icon-view" @click="handleClick(scope.row.id, 'detail')">查看
</el-button>
<el-button type="text" size="mini" icon="el-icon-edit" v-hasPermi="['allocation:alloc:update']"
@click="handleClick(scope.row.id, 'update')">修改</el-button>
<el-button type="text" size="mini" icon="el-icon-delete" v-hasPermi="['allocation:alloc:delete']"
@click="del(scope.row.id, scope.row.status)" style="color:#ff4949">删除</el-button>
<el-button type="text" size="mini" icon="el-icon-video-pause" v-hasPermi="['allocation:alloc:openClose']"
@click="changeStatus(scope.row.id, 3)" v-if="scope.row.status == '1'">停用</el-button>
<el-button type="text" size="mini" icon="el-icon-video-play" v-hasPermi="['allocation:alloc:openClose']"
@click="changeStatus(scope.row.id, 1)" v-else>启用</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination @size-change="getList" @current-change="getList" :current-page.sync="curPage"
:page-sizes="[10, 20, 30, 40]" :page-size.sync="limit" layout="prev, pager, next, jumper, sizes, total"
:total="total" background :hide-on-single-page="true" style="margin-top: 40px; text-align: right">
</el-pagination>
<Tables ref="newTables" ductName="FlightAlloc" :data="flyList" :headerData="tableHeaders['flightAlloc']"
:order="true" :totalCount="total" :loading="loading" :limitSize="queryParams.limit"
:limitStart="queryParams.start" :page="curPage" :pageSizes="[20]" :height="tableHeight"
@currentChange="currentChange">
<template slot="optionColumn">
<el-table-column label="操作" prop="id" align="center">
<template slot-scope="scope">
<el-button type="text" size="mini" icon="el-icon-view" @click="handleClick(scope.row.id, 'detail')">查看
</el-button>
<el-button type="text" size="mini" icon="el-icon-edit" v-hasPermi="['allocation:alloc:update']"
@click="handleClick(scope.row.id, 'update')">修改</el-button>
<el-button type="text" size="mini" icon="el-icon-delete" style="color:#ff4949"
v-hasPermi="['allocation:alloc:delete']" @click="del(scope.row.id, scope.row.status)">删除</el-button>
<el-button type="text" size="mini" icon="el-icon-video-pause" v-hasPermi="['allocation:alloc:openClose']"
@click="changeStatus(scope.row.id, 3)" v-if="scope.row.status == '1'">停用</el-button>
<el-button type="text" size="mini" icon="el-icon-video-play" v-hasPermi="['allocation:alloc:openClose']"
@click="changeStatus(scope.row.id, 1)" v-else>启用</el-button>
</template>
</el-table-column>
</template>
</Tables>
</div>
</template>
......@@ -80,12 +63,12 @@ export default {
purposeOfFlightNo: "",
status: "1",
start: 0,
limit: 10,
limit: 20,
},
flyList: [],
curPage: 1,
limit: 10,
total: 0,
tableHeight: null,
loading: false,
};
},
......@@ -94,6 +77,9 @@ export default {
this.getList();
}
},
mounted() {
this.tableHeight = window.innerHeight - this.$refs.flightAllocForm.$el.offsetHeight - 200
},
activated() {
this.getList()
},
......@@ -102,7 +88,6 @@ export default {
},
methods: {
getList() {
this.queryParams.limit = this.limit;
if (this.curPage > 1) {
this.queryParams.start = (this.curPage - 1) * this.queryParams.limit;
} else {
......@@ -111,11 +96,7 @@ export default {
this.loading = true;
findFlightNo(this.queryParams).then((response) => {
if (response.code != 200) {
this.$message({
showClose: true,
message: response.msg,
type: "error",
});
this.msgWarning(response.msg)
return;
}
this.flyList = response.data.list;
......@@ -147,11 +128,8 @@ export default {
}).then(() => {
delFlightId(id)
.then((res) => {
this.$message({
message: res.msg,
type: res.code === 200 ? "success" : "warning",
});
this.getList();
res.code === 200 ? this.msgSuccess(res.msg) : this.msgWarning(res.msg)
this.getList()
})
.catch(() => { });
});
......@@ -177,6 +155,12 @@ export default {
.catch(() => { });
});
},
//翻页
currentChange(val) {
this.curPage = val.page
this.queryParams.start = val.start;
this.getList();
}
},
computed: {
purposeOfFlightNo: {
......@@ -184,7 +168,7 @@ export default {
return this.queryParams.purposeOfFlightNo;
},
set: function (val) {
this.queryParams.purposeOfFlightNo = val.toUpperCase();
this.queryParams.purposeOfFlightNo = this.upCase(val);
},
},
},
......
......@@ -9,13 +9,8 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="航班号" prop="purposeOfFlightNo">
<el-input v-model.trim="form.purposeOfFlightNo" style="width: 60%" :disabled="nameDisabled"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="航班预审" prop="isNeedRequired">
<el-switch v-model="isNeedRequired" :active-value="1" :inactive-value="0">
</el-switch>
<el-input v-model.trim="form.purposeOfFlightNo" maxlength="10" style="width: 60%"
:disabled="nameDisabled"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -25,161 +20,123 @@
<el-radio v-model="isLocation" label="1" size="mini">站点包含</el-radio>
<el-radio v-model="isLocation" label="2" size="mini">站点不包含</el-radio>
</el-col>
<el-col :span="6">
<el-alert title="提示:站点之间用回车符分隔" type="warning" show-icon size="mini" :closable="false"
style="height: 30px; width: fit-content">
</el-alert>
</el-col>
</el-row>
</el-form-item>
<el-form-item label="站点包含" v-show="isLocation == 1">
<el-input type="textarea" v-model="form.location" :rows="6" resize="none" style="width: 600px"></el-input>
<el-input type="textarea" v-model="form.location" :rows="6" resize="none" style="width: 600px"
placeholder="站点之间用回车符分隔"></el-input>
</el-form-item>
<el-form-item label="站点不包含" v-show="isLocation == 2">
<el-input type="textarea" v-model="form.notLocation" :rows="6" resize="none" style="width: 600px"></el-input>
</el-form-item>
<el-form-item>
<el-alert title="提示:URSA之间用分号分隔,例:F2;F3;P_" type="warning" show-icon size="mini" :closable="false"
style="height: 30px; width: fit-content">
</el-alert>
<el-input type="textarea" v-model="form.notLocation" :rows="6" resize="none" style="width: 600px"
placeholder="站点之间用回车符分隔"></el-input>
</el-form-item>
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="URSA包含">
<el-input type="textarea" v-model.trim="form.includeUrsa" :rows="6" resize="none"></el-input>
<el-form-item label="URSA包含" prop="includeUrsa">
<el-input type="textarea" v-model="form.includeUrsa" :rows="6" resize="none"
placeholder="URSA之间用分号分隔,例:F2;F3;P_"></el-input>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="URSA不包含">
<el-input type="textarea" v-model.trim="form.notIncludeUrsa" :rows="6" resize="none"></el-input>
<el-form-item label="URSA不包含" prop="notIncludeUrsa">
<el-input type="textarea" v-model="form.notIncludeUrsa" :rows="6" resize="none"
placeholder="URSA之间用分号分隔,例:F2;F3;P_"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="件数">
<el-col :span="3">
<el-input class="numberInput" v-model.trim="minNumOfPieces"></el-input>
<!-- <el-input-number
v-model="minNumOfPieces"
:precision="0"
:controls="false"
style="width: 100%"
></el-input-number> -->
</el-col>
<el-col style="text-align: center" :span="1">-</el-col>
<el-col :span="3">
<el-input class="numberInput" v-model.trim="maxNumOfPieces"></el-input>
<!-- <el-input-number
v-model="
form.maxNumOfPieces == 0
? (form.maxNumOfPieces = undefined)
: form.maxNumOfPieces
"
:precision="0"
:controls="false"
style="width: 100%"
></el-input-number> -->
</el-col>
</el-form-item>
<el-form-item label="重量">
<el-col :span="3">
<el-input class="numberInput" v-model.trim="minWeight"></el-input>
<!-- <el-input-number
v-model="
form.minWeight == 0
? (form.minWeight = undefined)
: form.minWeight
"
:precision="2"
:controls="false"
style="width: 100%"
></el-input-number> -->
</el-col>
<el-col :span="1" style="text-align: center"><span>Kg</span></el-col>
<el-col style="text-align: center" :span="1">-</el-col>
<el-col :span="3">
<el-input class="numberInput" v-model.trim="maxWeight"></el-input>
<!-- <el-input-number
v-model="
form.maxWeight == 0
? (form.maxWeight = undefined)
: form.maxWeight
"
:precision="2"
:controls="false"
style="width: 100%"
></el-input-number> -->
</el-col>
<el-col :span="1" style="text-align: center"><span>Kg</span></el-col>
</el-form-item>
<el-form-item label="申报类别">
<el-card shadow="never" style="width: 80%">
<el-checkbox-group v-model="form.typeOfGoods">
<el-row>
<el-col :span="2" v-for="item in cargoType" :key="item.id">
<el-checkbox :label="item.chineseName" :name="item.chineseName">
<el-checkbox v-if="item.status === 1" :label="item.chineseName" :name="item.chineseName">
</el-checkbox>
</el-col>
</el-row>
</el-checkbox-group>
</el-card>
</el-form-item>
<el-form-item label="货物类型">
<el-card shadow="never" style="width: 80%">
<el-checkbox-group v-model="form.declarationCategory">
<el-row>
<el-col :span="3" v-for="item in cargoStatus" :key="item.id">
<el-checkbox :label="item.chineseName" :name="item.chineseName" disabled></el-checkbox>
<el-checkbox v-if="item.status === 1" :label="item.chineseName" :name="item.chineseName" disabled>
</el-checkbox>
</el-col>
</el-row>
</el-checkbox-group>
</el-card>
</el-form-item>
<el-form-item label="Service Code">
<el-card shadow="never" style="width: 80%">
<el-checkbox-group v-model="form.serviceCode">
<el-row>
<el-col :span="2" v-for="item in serviceCode" :key="item.id">
<el-checkbox :label="item.englishName" :name="item.englishName"></el-checkbox>
<el-checkbox v-if="item.status === 1 || form.serviceCode.includes(item.chineseName)"
:label="item.chineseName" :name="item.chineseName"
:disabled="form.serviceCode.includes(item.chineseName) && item.status === 0">
<Tooltips :content="item.chineseName" :refName="item.code"></Tooltips>
</el-checkbox>
</el-col>
</el-row>
</el-checkbox-group>
</el-card>
</el-form-item>
<el-form-item label="Handling Code">
<el-card shadow="never" style="width: 80%">
<el-checkbox-group v-model="form.handlingCode">
<el-row>
<el-col :span="3" v-for="item in handlingCode" :key="item.id">
<el-checkbox :label="item.englishName" :name="item.englishName"></el-checkbox>
<el-checkbox v-if="item.status === 1 || form.handlingCode.includes(item.chineseName)"
:label="item.chineseName" :name="item.chineseName"
:disabled="form.handlingCode.includes(item.chineseName) && item.status === 0">
<Tooltips :content="item.chineseName" :refName="item.code"></Tooltips>
</el-checkbox>
</el-col>
</el-row>
</el-checkbox-group>
</el-card>
</el-form-item>
<el-form-item label="Sub Category">
<el-card shadow="never" style="width: 80%">
<el-checkbox-group v-model="form.subCategory">
<el-row>
<el-col :span="3" v-for="item in subCategory" :key="item.id">
<el-checkbox :label="item.englishName" :name="item.englishName"></el-checkbox>
<el-checkbox v-if="item.status === 1 || form.subCategory.includes(item.chineseName)"
:label="item.chineseName" :name="item.chineseName"
:disabled="form.subCategory.includes(item.chineseName) && item.status === 0">
<Tooltips :content="item.chineseName" :refName="item.code"></Tooltips>
</el-checkbox>
</el-col>
</el-row>
</el-checkbox-group>
</el-card>
</el-form-item>
</el-form>
<div style="marginleft: 200px">
<el-button type="primary" size="small" v-if="$route.params.handle != 'detail'" @click="submit('form')"
<div style="marginLeft: 200px">
<el-button type="primary" size="small"
v-if="$route.params.handle != 'detail' && $route.params.handle != 'DMdetail'" @click="submit('form')"
:loading="btnLoading">
<span v-if="$route.params.handle === 'add'">添加</span>
<span v-else>保存</span>
......@@ -233,7 +190,6 @@ export default {
handlingCode: [],
subCategory: [],
isLocation: "1",
isNeedRequired: 0,
disable: false,
nameDisabled: false,
btnLoading: false,
......@@ -241,17 +197,130 @@ export default {
isEmpty: false,
routeName: "",
dataId: "",
handleName: ""
handleName: "",
};
},
created() {
this.routeName = this.$route.name;
this.dataId = this.$route.params.id;
this.handleName = this.$route.params.handle;
this.dictData();
if (this.handleName === "detail" || this.handleName === 'DMdetail') {
this.disable = true;
}
if (this.handleName != "add") {
this.nameDisabled = true;
let id = this.$route.params.id;
if (
sessionStorage.getItem("flightInfo" + id) &&
this.$route.name == "FlightAllocConfigInfo" &&
this.handleName != "detail" &&
this.handleName != "DMdetail"
) {
this.loading = false;
this.form = JSON.parse(
sessionStorage.getItem("flightInfo" + this.$route.params.id)
);
if (this.form.notLocation != null || this.form.notLocation == "") {
this.isLocation = "2";
} else {
this.isLocation = "1";
}
} else {
if (isNaN(Number(this.dataId))) {
findDestinationFltRuleByActualFlight(this.dataId).then((response) => {
if (response.code != 200) {
this.msgWarning(response.msg)
this.isEmpty = true;
} else if (response.data == null) {
this.isEmpty = true;
} else {
let info = response.data;
info.typeOfGoods = info.typeOfGoods
? info.typeOfGoods.split(";")
: [];
info.declarationCategory = info.declarationCategory
? info.declarationCategory.split(";")
: [];
info.serviceCode = info.serviceCode
? info.serviceCode.split(";")
: [];
info.handlingCode = info.handlingCode
? info.handlingCode.split(";")
: [];
info.subCategory = info.subCategory
? info.subCategory.split(";")
: [];
this.form = info;
if (info.notLocation != null || info.notLocation == "") {
this.isLocation = "2";
} else {
this.isLocation = "1";
}
}
this.loading = false;
}).catch(() => {
this.loading = false;
})
} else {
//货物信息
findByFlightId(this.dataId).then((response) => {
if (response.code != 200) {
this.msgWarning(response.msg)
this.isEmpty = true;
} else {
let info = response.data.list;
info.typeOfGoods = info.typeOfGoods
? info.typeOfGoods.split(";")
: [];
info.declarationCategory = info.declarationCategory
? info.declarationCategory.split(";")
: [];
info.serviceCode = info.serviceCode
? info.serviceCode.split(";")
: [];
info.handlingCode = info.handlingCode
? info.handlingCode.split(";")
: [];
info.subCategory = info.subCategory
? info.subCategory.split(";")
: [];
this.form = info;
if (info.notLocation != null || info.notLocation == "") {
this.isLocation = "2";
} else {
this.isLocation = "1";
}
}
this.loading = false;
}).catch(() => {
this.loading = false;
})
}
}
} else {
this.loading = false;
}
if (this.$route.name == "FlightAllocConfigAdd") {
if (sessionStorage.getItem("flightAdd")) {
this.form = JSON.parse(sessionStorage.getItem("flightAdd"));
if (this.form.notLocation != null || this.form.notLocation == "") {
this.isLocation = "2";
} else {
this.isLocation = "1";
}
}
}
},
methods: {
//排序
sorttodo(arr, englishName) {
sorttodo(arr, chineseName) {
var index = 1,
newArr = [],
length = arr.length;
for (var i = 0; i < length; i++) {
if (arr[i].englishName === englishName) {
if (arr[i].chineseName === chineseName) {
newArr[0] = arr[i];
} else {
newArr[index++] = arr[i];
......@@ -268,8 +337,7 @@ export default {
});
this.btnLoading = true;
let handle = this.$route.params.handle;
if (handle === "update") {
if (this.handleName === "update") {
//修改,获取id
this.form.id = this.$route.params.id;
}
......@@ -280,7 +348,6 @@ export default {
this.formServiceCode = this.form.serviceCode;
this.formHandlingCode = this.form.handlingCode;
this.formSubCategory = this.form.subCategory;
this.form.isNeedRequired = this.isNeedRequired;
if (this.form.purposeOfFlightNo) {
this.form.purposeOfFlightNo = this.form.purposeOfFlightNo.toUpperCase();
}
......@@ -289,6 +356,7 @@ export default {
} else {
this.form.location = "";
}
if (
this.form.includeUrsa &&
this.form.includeUrsa.length != 0 &&
......@@ -319,32 +387,47 @@ export default {
}
});
if (errorList.length != 0) {
this.$message({
showClose: true,
message:
"URSA不包含中[" +
errorList +
"]错误,URSA不包含必须属于URSA包含中的类型",
type: "error",
});
this.msgWarning("URSA不包含中[" + errorList + "]错误,URSA不包含必须属于URSA包含中的类型")
this.btnLoading = false;
return;
}
}
let service = []
this.serviceCode.forEach(item => {
if (item.status === 1 && this.form.serviceCode.includes(item.chineseName)) {
service.push(item.chineseName)
}
})
this.form.serviceCode = service
let hand = []
this.handlingCode.forEach(item => {
if (item.status === 1 && this.form.handlingCode.includes(item.chineseName)) {
hand.push(item.chineseName)
}
})
this.form.handlingCode = hand
let sub = []
this.subCategory.forEach(item => {
if (item.status === 1 && this.form.subCategory.includes(item.chineseName)) {
sub.push(item.chineseName)
}
})
if (this.form.includeUrsa && this.form.includeUrsa.length != 0) {
this.form.includeUrsa = this.upCase(this.form.includeUrsa)
}
if (this.form.notIncludeUrsa && this.form.notIncludeUrsa.length != 0) {
this.form.notIncludeUrsa = this.upCase(this.form.notIncludeUrsa)
}
this.form.subCategory = sub
updateOrAddFlight(this.form).then((response) => {
if (response.code === 200) {
this.$message({
showClose: true,
message: "成功",
type: "success",
});
this.msgSuccess('成功')
this.close();
} else {
this.$message({
showClose: true,
message: response.msg,
type: "error",
});
this.msgWarning(response.msg)
this.btnLoading = false;
}
});
......@@ -354,200 +437,111 @@ export default {
this.form.handlingCode = this.formHandlingCode;
this.form.subCategory = this.formSubCategory;
},
close() {
this.removes()
this.removes();
this.$store.state.tagsView.visitedViews.splice(
this.$store.state.tagsView.visitedViews.findIndex(
(item) => item.path === this.$route.path
),
1
);
this.$router.push({ name: "FlightAllocConfig" })
// this.$router.push(
// this.$store.state.tagsView.visitedViews[
// this.$store.state.tagsView.visitedViews.length - 1
// ].path
// );
if (this.handleName === 'DMdetail') {
this.$router.push({ name: "DmLog" })
} else {
this.$router.push({ name: "FlightAllocConfig" })
}
},
removes() {
if (this.routeName == "FlightAllocConfigAdd") {
sessionStorage.setItem("flightAdd", "remove")
sessionStorage.setItem("flightAdd", "remove");
} else {
sessionStorage.setItem("flightInfo" + this.dataId, "remove")
sessionStorage.setItem("flightInfo" + this.dataId, "remove");
}
},
dictData() {
allDictData().then((response) => {
if (response.code != 200) {
this.msgError(response.msg)
return;
}
let dict = response.data;
this.cargoType = dict.cargoType;
this.cargoStatus = dict.cargoStatus;
this.serviceCode = this.dicSort(dict.serviceCode.sort((a, b) =>
a.chineseName.localeCompare(b.chineseName)
));
this.handlingCode = this.dicSort(this.sorttodo(dict.handlingCode, "BLANK"));
this.subCategory = this.dicSort(this.sorttodo(dict.subCategory, "Blank"));
});
},
dicSort(val) {
let status1 = []
let status0 = []
let arr = []
val.forEach(item => {
if (item.status == 1) {
status1.push(item)
} else {
status0.push(item)
}
})
arr = status1.concat(status0)
return arr
}
},
beforeDestroy() {
if (this.routeName == "FlightAllocConfigAdd") {
if (sessionStorage.getItem("flightAdd") == "remove") {
sessionStorage.removeItem("flightAdd")
sessionStorage.removeItem("flightAdd");
} else {
this.form.isNeedRequired = this.isNeedRequired
sessionStorage.setItem("flightAdd", JSON.stringify(this.form))
sessionStorage.setItem("flightAdd", JSON.stringify(this.form));
}
} else {
if (sessionStorage.getItem("flightInfo" + this.dataId) == "remove") {
sessionStorage.removeItem("flightInfo" + this.dataId)
sessionStorage.removeItem("flightInfo" + this.dataId);
} else {
if (this.handleName == "detail") {
this.form.isNeedRequired = this.isNeedRequired
sessionStorage.setItem("flightInfo" + this.dataId, JSON.stringify(this.form))
if (this.handleName != "detail" && this.handleName != "DMdetail") {
sessionStorage.setItem(
"flightInfo" + this.dataId,
JSON.stringify(this.form)
);
}
}
}
},
created() {
let handle = this.$route.params.handle;
allDictData().then((response) => {
if (response.code != 200) {
this.$message({
showClose: true,
message: response.msg,
type: "error",
});
return;
}
let dict = response.data;
this.cargoType = dict.cargoType;
this.cargoStatus = dict.cargoStatus;
this.serviceCode = dict.serviceCode.sort((a, b) =>
a.englishName.localeCompare(b.englishName)
);
this.handlingCode = this.sorttodo(dict.handlingCode, "BLANK");
this.subCategory = dict.subCategory;
});
this.routeName = this.$route.name;
this.dataId = this.$route.params.id;
this.handleName = this.$route.params.handle;
if (handle === "detail") {
this.disable = true;
}
if (handle != "add") {
this.nameDisabled = true;
let id = this.$route.params.id;
if (sessionStorage.getItem("flightInfo" + id) && this.$route.name == "FlightAllocConfigInfo" && handle != "detail") {
this.loading = false
this.form = JSON.parse(sessionStorage.getItem("flightInfo" + this.$route.params.id))
this.isNeedRequired = this.form.isNeedRequired;
if (this.form.notLocation != null || this.form.notLocation == "") {
this.isLocation = "2";
} else {
this.isLocation = "1";
}
} else {
if (isNaN(Number(id))) {
findDestinationFltRuleByActualFlight(id).then((response) => {
if (response.code != 200) {
this.$message({
showClose: true,
message: response.msg,
type: "error",
});
this.isEmpty = true;
} else if (response.data == null) {
this.isEmpty = true;
} else {
let info = response.data;
info.typeOfGoods = info.typeOfGoods
? info.typeOfGoods.split(";")
: [];
info.declarationCategory = info.declarationCategory
? info.declarationCategory.split(";")
: [];
info.serviceCode = info.serviceCode
? info.serviceCode.split(";")
: [];
info.handlingCode = info.handlingCode
? info.handlingCode.split(";")
: [];
info.subCategory = info.subCategory
? info.subCategory.split(";")
: [];
this.form = info;
if (info.notLocation != null || info.notLocation == "") {
this.isLocation = "2";
} else {
this.isLocation = "1";
}
this.isNeedRequired = info.isNeedRequired;
}
this.loading = false;
}).catch(() => {
this.loading = false;
})
} else {
//货物信息
findByFlightId(id).then((response) => {
if (response.code != 200) {
this.$message({
showClose: true,
message: response.msg,
type: "error",
});
this.isEmpty = true;
} else {
let info = response.data.list;
info.typeOfGoods = info.typeOfGoods
? info.typeOfGoods.split(";")
: [];
info.declarationCategory = info.declarationCategory
? info.declarationCategory.split(";")
: [];
info.serviceCode = info.serviceCode
? info.serviceCode.split(";")
: [];
info.handlingCode = info.handlingCode
? info.handlingCode.split(";")
: [];
info.subCategory = info.subCategory
? info.subCategory.split(";")
: [];
this.form = info;
if (info.notLocation != null || info.notLocation == "") {
this.isLocation = "2";
} else {
this.isLocation = "1";
}
let isNeedRequired = response.data.isNeedRequired;
this.form.isNeedRequired = isNeedRequired;
this.isNeedRequired = isNeedRequired;
}
this.loading = false;
}).catch(() => {
this.loading = false;
})
}
}
} else {
this.loading = false;
}
if (this.$route.name == "FlightAllocConfigAdd") {
if (sessionStorage.getItem("flightAdd")) {
this.form = JSON.parse(sessionStorage.getItem("flightAdd"))
this.isNeedRequired = this.form.isNeedRequired;
if (this.form.notLocation != null || this.form.notLocation == "") {
this.isLocation = "2";
} else {
this.isLocation = "1";
}
}
}
},
computed: {
includeUrsa: {
get: function () {
return this.form.includeUrsa;
},
set: function (val) {
this.form.includeUrsa = this.upCase(val);
},
},
notIncludeUrsa: {
get: function () {
return this.form.notIncludeUrsa;
},
set: function (val) {
this.form.notIncludeUrsa = this.upCase(val);
},
},
minNumOfPieces: {
get: function () {
return this.form.minNumOfPieces;
},
set: function (val) {
const reg = /^[1-9]{0,}$/
if (reg.test(val)) {
this.form.minNumOfPieces = val
}
if (val == 0 || val == null || val == "-") {
this.form.minNumOfPieces = undefined;
} else if (!isNaN(val)) {
this.form.minNumOfPieces = val;
}
},
},
......@@ -556,10 +550,12 @@ export default {
return this.form.maxNumOfPieces;
},
set: function (val) {
const reg = /^[1-9]{0,}$/
if (reg.test(val)) {
this.form.maxNumOfPieces = val
}
if (val == 0 || val == null || val == "-") {
this.form.maxNumOfPieces = undefined;
} else if (!isNaN(val)) {
this.form.maxNumOfPieces = val;
}
},
},
......@@ -568,6 +564,8 @@ export default {
return this.form.minWeight;
},
set: function (val) {
const reg = /^\d{1,1}\d*\.{0,1}\d{0,}$/
console.log(reg.test(val))
if (val == null || val == "-") {
this.form.minWeight = undefined;
} else if (!isNaN(val)) {
......
<template>
<div>
<el-form class="form-header" :model="queryParams" ref="queryForm" size="medium" :inline="true"
label-position="right" label-width="auto">
<el-form class="form-header" :model="queryParams" ref="queryForm" size="small" :inline="true" label-position="right"
label-width="auto">
<el-form-item label="原航班">
<el-input type="text" v-model="upCase" placeholder="请输入原航班" clearable></el-input>
<!-- <el-input v-model="upCase" placeholder="请输入原航班" clearable size="small" /> -->
<el-input type="text" v-model="sourceFlightNo" placeholder="请输入原航班" clearable></el-input>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择" clearable>
<el-option v-for="dict in statusList" :key="dict.id" :label="dict.name" :value="dict.id" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询原航班配置</el-button>
<el-button type="primary" icon="el-icon-search" size="mini" :loading="loading" @click="handleQuery">查询原航班配置
</el-button>
</el-form-item>
<br />
<el-form-item label="日期" prop="flightDate">
<el-date-picker value-format="yyyy-MM-dd" v-model="queryParams.flightDate" type="date" placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="findSourceFlightAndFlightDate">查询实际配载航班
</el-button>&#12288;
......@@ -33,43 +31,31 @@
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" height="550" size="small" :data="sourceFlightRulesList" highlight-current-row border
stripe>
<el-table-column type="index" label="序号" align="center">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column label="原航班" align="center" prop="sourceFlightNo" />
<el-table-column label="配载航班排序" align="center" prop="flightRank" width="280" />
<el-table-column label="周期" align="center" prop="dayOfWeek" width="180" />
<el-table-column label="状态" align="center" prop="status" :formatter="statusFormat" />
<el-table-column label="开始时间" align="center" prop="startDate" width="100" />
<el-table-column label="结束时间" align="center" prop="endDate" width="100" />
<el-table-column label="最后修改人" align="center" prop="updateUserName" width="100" />
<el-table-column label="最后修改时间" align="center" prop="updateTime" width="100" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" v-hasPermi="['allocation:rand:update']"
@click="handleUpdate(scope.row)">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" style="color:#ff4949"
v-hasPermi="['allocation:rand:delete']" @click="handleDeleteorPlayorpause(scope.row, 0, '删除')">
删除</el-button>
<el-button size="mini" type="text" icon="el-icon-video-play" v-if="scope.row.status == '3'"
v-hasPermi="['allocation:rand:openClose']" @click="handleDeleteorPlayorpause(scope.row, 1, '启用')">启用
</el-button>
<el-button size="mini" type="text" icon="el-icon-video-pause" v-if="scope.row.status != '3'"
v-hasPermi="['allocation:rand:openClose']" @click="handleDeleteorPlayorpause(scope.row, 3, '停用')">停用
</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" layout=" prev, pager, next, jumper, sizes,total"
:page.sync="queryParams.pageNum" :limit.sync="queryParams.limit" @pagination="findSourceFlightRules" />
<Tables ref="newTables" ductName="flightRand" :data="sourceFlightRulesList" :headerData="tableHeaders['flightRand']"
:order="true" :totalCount="total" :loading="loading" :limitSize="queryParams.limit"
:limitStart="queryParams.start" :page="queryParams.pageNum" :pageSizes="[20]" :height="tableHeight"
@currentChange="currentChange">
<template slot="optionColumn">
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" v-hasPermi="['allocation:rand:update']"
@click="handleUpdate(scope.row)">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" style="color:#ff4949"
v-hasPermi="['allocation:rand:delete']" @click="handleDeleteorPlayorpause(scope.row, 0, '删除')">
删除</el-button>
<el-button size="mini" type="text" icon="el-icon-video-play" v-if="scope.row.status == '3'"
v-hasPermi="['allocation:rand:openClose']" @click="handleDeleteorPlayorpause(scope.row, 1, '启用')">启用
</el-button>
<el-button size="mini" type="text" icon="el-icon-video-pause" v-if="scope.row.status != '3'"
v-hasPermi="['allocation:rand:openClose']" @click="handleDeleteorPlayorpause(scope.row, 3, '停用')">停用
</el-button>
</template>
</el-table-column>
</template>
</Tables>
<!-- 查看目的航班对话框 -->
<el-dialog title="实际配载航班" :visible.sync="openFlightDate" width="70%" :close-on-click-modal="false"
:append-to-body="true">
:show-close="false" :append-to-body="true">
<el-table v-loading="loadingFlightDate" :data="sourceFlightAndFlightDate">
<el-table-column type="index" label="序号" align="center">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
......@@ -88,20 +74,19 @@
<el-button @click="cancelFlightDate">返 回</el-button>
</div>
</el-dialog>
<!-- 添加或修改对话框 -->
<el-dialog :title="title" :visible.sync="open" width="55%" :append-to-body="true" :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-position="right" label-width="auto">
<el-dialog :title="title" :visible.sync="open" width="55%" :append-to-body="true" :close-on-click-modal="false"
:show-close="false">
<el-form ref="form" :model="form" :rules="rules" label-position="right" label-width="auto" size="small">
<el-row>
<el-col :span="8">
<el-form-item label="原航班" prop="sourceFlightNo">
<el-input v-model="form.sourceFlightNo" placeholder="请输入原航班号" maxlength="10" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="口岸" prop="portName">
<el-select :disabled="true" v-model="form.portName" size="mini" placeholder="选择口岸">
<el-select :disabled="true" v-model="form.portName" placeholder="选择口岸">
<el-option v-for="item in portNameList" :label="item" :value="item" :key="item">
</el-option>
</el-select>
......@@ -111,19 +96,18 @@
<el-row>
<el-col :span="8">
<el-form-item label="有效开始时间" prop="startDate">
<el-date-picker clearable size="small" :picker-options="pickerOptionsStart" v-model="form.startDate"
type="date" value-format="yyyy-MM-dd" placeholder="选择开始时间">
<el-date-picker clearable :picker-options="pickerOptionsStart" v-model="form.startDate" type="date"
value-format="yyyy-MM-dd" placeholder="选择开始时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="有效结束时间" prop="endDate">
<el-date-picker clearable size="small" :picker-options="pickerOptionsEnd" v-model="form.endDate"
type="date" value-format="yyyy-MM-dd" placeholder="选择结束时间">
<el-date-picker clearable :picker-options="pickerOptionsEnd" v-model="form.endDate" type="date"
value-format="yyyy-MM-dd" placeholder="选择结束时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24" style="margin-bottom: 5%">
<span style="color: #ff4949; margin-left: 10%">提示:配载航班之间请用分号分隔【符号不区分中英文】,例:CA1053;C7433</span><br />
<span
......@@ -137,7 +121,11 @@
<el-col :span="24">
<el-form-item label="周期段">
<el-checkbox-group v-model="dayOfWeek">
<el-checkbox v-for="item in dayOfWeekList" :key="item" :label="item" :name="item"></el-checkbox>
<el-row :gutter="10">
<el-col :span="2" v-for="item in dayOfWeekList" :key="item">
<el-checkbox :label="item" :name="item"></el-checkbox>
</el-col>
</el-row>
</el-checkbox-group>
</el-form-item>
</el-col>
......@@ -196,6 +184,8 @@ export default {
title: "",
// 总条数
total: 0,
//table高度
tableHeight: null,
// 原航班规则数据
sourceFlightRulesList: [],
//目的航班数据
......@@ -255,6 +245,9 @@ export default {
this.findSourceFlightRules();
}
},
mounted() {
this.tableHeight = window.innerHeight - this.$refs.queryForm.$el.offsetHeight - 200
},
activated() {
this.findSourceFlightRules();
},
......@@ -291,10 +284,10 @@ export default {
this.queryParams.start = 0;
}
findSourceFlightRulesApi(this.queryParams).then((response) => {
this.loading = false;
if (response.code == 200) {
this.sourceFlightRulesList = response.data.list;
this.total = response.data.totalCount;
this.loading = false;
} else {
this.msgError(response.msg);
}
......@@ -325,10 +318,7 @@ export default {
handleDeleteorPlayorpause(row, status, statusText) {
//删除前需要停用
if (status === 0 && row.status != "3") {
this.$message({
message: "请停用后删除",
type: "warning",
});
this.msgWarning('请停用后删除')
return;
}
......@@ -361,9 +351,7 @@ export default {
if (valid) {
this.form.dayOfWeek = this.dayOfWeek.sort();
let formdata = JSON.parse(JSON.stringify(this.form));
formdata.sourceFlightNo = formdata.sourceFlightNo
.trim()
.toUpperCase();
formdata.sourceFlightNo = formdata.sourceFlightNo.trim().toUpperCase();
formdata.flightRank = formdata.flightRank.trim().toUpperCase();
if (formdata.startDate === undefined || formdata.startDate == null) {
formdata.startDate = "";
......@@ -433,17 +421,6 @@ export default {
this.findSourceFlightRules();
//this.reset();
},
// 状态字典翻译
statusFormat(row) {
if (row.status === "1") {
return "有效";
} else if (row.status === "0") {
return "执行中";
} else if (row.status === "3") {
return "停用";
}
return row.status;
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams.sourceFlightNo = undefined;
......@@ -456,14 +433,20 @@ export default {
this.queryParams.start = 0;
this.findSourceFlightRules();
},
//翻页
currentChange(val) {
this.queryParams.start = val.start;
this.queryParams.pageNum = val.page;
this.findSourceFlightRules();
}
},
computed: {
upCase: {
sourceFlightNo: {
get: function () {
return this.queryParams.sourceFlightNo;
},
set: function (val) {
this.queryParams.sourceFlightNo = val.toUpperCase();
this.queryParams.sourceFlightNo = this.upCase(val);
},
},
},
......
<template>
<div style="margin:30px 20px 20px">
<el-form class="form-header" :model="pageOption" ref="queryForm" label-position="right" label-width="auto"
size="small">
<el-row>
<el-col :span="6">
<el-form-item label="航班号" prop="fltNo">
<el-input class="wid80" v-model="queryfltNo" placeholder="请输入航班号" maxlength="50" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="预审状态" prop="status">
<el-select class="wid80" v-model="pageOption.status" clearable placeholder="不限">
<el-option label="关闭" :value="0">
</el-option>
<el-option label="开启" :value="1">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="mb20" ref="preReviewOptions" style="font-size: 12px; font-weight: 700">
<el-button type="primary" icon="el-icon-search" size="small" :loading="tableLoading" @click="preQuery(1)">搜 索
</el-button>
<el-button type="primary" icon="el-icon-plus" size="small" @click="dialogVisible = true"
v-hasPermi="['allocation:preReview:add']">新增预审航班</el-button>
<el-button type="primary" size="small" icon="el-icon-check" :disabled="selectData.length == 0"
@click="preOption(1)" v-hasPermi="['allocation:preReview:open']">
预审开启</el-button>
<el-button type="primary" size="small" icon="el-icon-close" :disabled="selectData.length == 0"
@click="preOption(0)" v-hasPermi="['allocation:preReview:close']">
预审关闭</el-button>
<el-button type="danger" icon="el-icon-delete" size="small" :disabled="selectData.length == 0"
@click="preOption(2)" v-hasPermi="['allocation:preReview:delete']">删 除
</el-button>
</div>
<Tables ref="preFlight" ductName="preFlight" :selection="true" :selectFixed="false" :order='true'
:height="tableHeight" :data="flightData" :headerData="tableHeaders" :page="pageOption.page" :pageSizes="[20]"
:totalCount="total" :loading="tableLoading" @currentChange="currentChange"
layout="total,prev, pager, next, jumper, ->" @tableSelect="tableSelection" @tableSelectAll="tableSelectAll">
</Tables>
<el-dialog title="新增预审航班" width="20%" :visible.sync="dialogVisible" :close-on-click-modal="false"
:show-close="false" :append-to-body="true">
<el-form ref="addForm" :model="newPre" label-width="auto" label-position="left" size="small" :rules="rules"
@submit.native.prevent>
<el-form-item label="航班号" prop="addFlitNo">
<el-input type="textarea" v-model="fltNo" :rows="7" maxlength="255" show-word-limit placeholder="请输入航班号,用;分隔">
</el-input>
</el-form-item>
</el-form>
<div slot="footer">
<el-button type="primary" :loading="loading" @click="submit">确 定</el-button>
<el-button @click="close">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { getpreAudit, addPreFlight, updatePreStatus } from '@/api/system/preReview.js'
export default {
name: "PreReviewFlight",
data() {
return {
pageOption: {
fltNo: undefined,
page: 1,
size: 20
},//查询条件
tableHeaders: [
{
columnChineseName: "航班号",
columnName: "fltNo",
columnWidth: "",
status: 1
},
{
columnChineseName: "预审状态",
columnName: "status",
columnWidth: "",
status: 1
},
],//表头
flightData: [],//表格数据
selectData: [],//选中数据
newPre: {
addFlitNo: '',
},//新增航班
rules: {
fltNo: [
{
required: true,
message: "航班号不能为空",
trigger: "blur",
}
]
},//表单规则
dialogVisible: false,
total: 0,
tableHeight: null,
loading: false,
tableLoading: false,
};
},
created() {
this.preQuery(1)
},
activated() {
if (this.flightData.length > 0) {
this.preQuery()
}
},
mounted() {
this.tableHeight = window.innerHeight - this.$refs.preReviewOptions.offsetHeight - 300
},
methods: {
//搜索
preQuery(val) {
this.tableLoading = true
this.selectData = []
if (val === 1) {
this.pageOption.page = 1
}
getpreAudit(this.pageOption).then(res => {
this.tableLoading = false
if (res.code === 200) {
this.flightData = res.data.list
this.total = res.data.total
} else {
this.msgWarning(res.msg)
}
}).catch(err => {
this.tableLoading = false
console.log(err)
})
},
//保存
submit() {
this.$refs["addForm"].validate(val => {
if (val) {
this.loading = true
let fltList = []
this.newPre.addFlitNo.split(';').forEach(item => {
if (item != '') {
fltList.push(item)
}
})
addPreFlight(fltList).then(res => {
this.loading = false
if (res.code === 200) {
this.msgSuccess(res.msg)
this.close()
this.preQuery(1)
} else {
this.msgWarning(res.msg)
}
}).catch(err => {
this.loading = false
console.log(err)
})
}
})
},
//预审状态修改
preOption(val) {
this.$confirm(val === 2 ? '是否要删除?' : val === 0 ? '是否要关闭预审' : '是否要开启预审', '系统提示', {
closeOnClickModal: false,
confirmButtonText: '确定',
cancelButtonText: "取消",
type: 'warning'
}).then(() => {
let idList = []
this.selectData.forEach(item => {
idList.push(item.id)
})
updatePreStatus({ ids: idList, status: val }).then(res => {
if (res.code === 200) {
this.msgSuccess(val === 2 ? '删除成功' : val === 0 ? '关闭成功' : '开启成功')
this.preQuery(1)
} else {
this.msgWarning(res.msg)
}
}).catch(err => {
console.log(err)
})
}).catch()
},
//关闭弹窗
close() {
this.dialogVisible = false
this.newPre.addFlitNo = ''
},
//翻页
currentChange(val) {
this.pageOption.page = val.page
this.preQuery()
},
//多选
tableSelection(val) {
this.selectData = val.selection
},
//全选
tableSelectAll(val) {
this.selectData = val
},
},
computed: {
queryfltNo: {
get: function () {
return this.pageOption.fltNo;
},
set: function (val) {
this.pageOption.fltNo = this.upCase(val);
},
},
fltNo: {
get: function () {
return this.newPre.addFlitNo;
},
set: function (val) {
let reg = /^([0-9A-Za-z]{0,50}(\;[0-9a-zA-Z]{0,50})*)$/
if (reg.test(val)) {
this.newPre.addFlitNo = this.upCase(val);
}
},
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss">
</style>
<template>
<div>
<el-form class="form-header" :model="queryParams" label-position="right" label-width="auto" size="medium">
<el-form class="form-header" :model="queryParams" label-position="right" label-width="auto" size="small">
<el-row>
<el-col :span="6">
<el-form-item label="航班日期从" prop="fltDateStart">
......@@ -23,25 +23,25 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运单号">
<el-input clearable type="textarea" v-model="queryParams.waybillNo" class="formItem"
placeholder="请输入运单号(回车间隔)" :rows="1" :maxlength="12000"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="站点">
<el-input type="textarea" v-model="siteName" class="formItem" placeholder="PVG;PEK" clearable :rows="1">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="URSA">
<el-input clearable type="textarea" v-model="ursa" class="formItem" placeholder="S_;P_;E2" :rows="1">
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运单号">
<el-input clearable type="textarea" v-model="queryParams.waybillNo" class="formItem"
placeholder="请输入运单号(回车间隔)" :rows="4"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-switch v-model="queryParams.reExport" active-color="#13ce66" active-text="重新导出" style="padding-left: 35px">
</el-switch>
......@@ -53,7 +53,6 @@
}}</el-button>
</div>
</el-form>
<el-table max-height="500" highlight-current-row border stripe v-loading="loading" :data="tableData">
<el-table-column label="运单号" align="center" prop="waybillNo" />
<el-table-column :show-overflow-tooltip="true" label="品牌描述" align="center" prop="nameDescription" />
......@@ -159,10 +158,7 @@ export default {
this.total = response.data.totalCount;
this.loading = false;
if (response.data.list.length == 0) {
this.$message({
message: "未查询到数据",
type: "warning",
});
this.msgWarning('未查询到数据')
}
} else {
this.msgError(response.msg);
......@@ -176,7 +172,7 @@ export default {
return this.queryParams.fltNo;
},
set: function (val) {
this.queryParams.fltNo = val.toUpperCase();
this.queryParams.fltNo = this.upCase(val);
},
},
siteName: {
......@@ -184,7 +180,7 @@ export default {
return this.queryParams.siteName;
},
set: function (val) {
this.queryParams.siteName = val.toUpperCase();
this.queryParams.siteName = this.upCase(val);
},
},
ursa: {
......@@ -192,7 +188,7 @@ export default {
return this.queryParams.ursa;
},
set: function (val) {
this.queryParams.ursa = val.toUpperCase();
this.queryParams.ursa = this.upCase(val);
},
},
},
......
<template>
<div style="margin: 20px">
<el-form :inline="true" :model="form" class="demo-form-inline" size="small">
<el-form :inline="true" class="demo-form-inline" size="small">
<el-form-item>
<el-upload action="/caPreReviewImport/importFlight" name="file" :http-request="uploadExcel"
:on-remove="handleRemove" :limit="1" :on-exceed="handleExceed" :file-list="fileList" accept=".xlsx"
......@@ -15,7 +15,7 @@
<div style="font-size: 12px; font-weight: 700">
提示:<span style="color: #1890ff">以下为所提交的数据或出错信息</span>
</div>
<el-table ref="filterTable" :data="tableData" v-loading="loading" style="width: 100%; margin-top: 20px" size="small"
<el-table ref="filterTable" class="mt20" :data="tableData" v-loading="loading" style="width: 100%" size="small"
border>
<el-table-column label="行号" prop="line" width="50" align="center">
</el-table-column>
......@@ -49,19 +49,13 @@ export default {
return {
// 遮罩层
loading: false,
flightType: [],
form: {
type: "",
region: "",
},
fileList: [],
tableData: [],
};
},
methods: {
downloadTempleate() {
let fileName = "航班预审导入模板.xlsx";
let fileName = "航班预审回执导入模板.xlsx";
downLoadTemplate().then((res) => {
if (res) {
const blob = new Blob([res]);
......@@ -83,7 +77,7 @@ export default {
//上传excel
const file = option.file;
this.loading = true;
importcaPreReview(file, this.form.type).then((res) => {
importcaPreReview(file, '').then((res) => {
this.loading = false;
if (res.code != 200) {
if (res.code == 603) {
......@@ -92,7 +86,7 @@ export default {
type: "warning",
});
} else {
this.$message.error(res.msg);
this.$message.warning(res.msg);
this.tableData = res.data;
}
} else {
......
......@@ -23,7 +23,7 @@
<div style="font-size: 12px; font-weight: 700">
提示:<span style="color: #1890ff">以下为所提交的数据或出错信息</span>
</div>
<el-table ref="filterTable" :data="tableData" style="margin-top: 20px" size="small" border>
<el-table ref="filterTable" class="mt20" :data="tableData" size="small" border>
<el-table-column label="行号" prop="line" width="50" align="center">
</el-table-column>
<el-table-column label="错误信息" prop="errorMessage" width="200">
......@@ -60,6 +60,15 @@ export default {
};
},
methods: {
typeData() {
filghtKindData().then((response) => {
if (response.code != 200) {
this.msgError(response.msg)
}
this.flightType = response.data;
this.form.type = response.data[0].code;
});
},
downloadTempleate() {
let downloadType = "";
let fileName = "";
......@@ -108,7 +117,7 @@ export default {
type: "warning",
});
} else {
this.$message.error(res.msg);
this.$message.warning(res.msg);
this.tableData = res.data;
}
} else {
......@@ -133,17 +142,11 @@ export default {
},
},
created() {
filghtKindData().then((response) => {
if (response.code != 200) {
this.$message({
message: response.msg,
type: "error",
});
}
this.flightType = response.data;
this.form.type = response.data[0].code;
});
this.typeData()
},
activated() {
this.typeData()
}
};
</script>
<style rel="stylesheet/scss" lang="scss">
......
......@@ -47,7 +47,8 @@
</el-form-item>
</el-col>
</el-row>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button type="primary" icon="el-icon-search" size="mini" :loading="loading" @click="handleQuery">搜索
</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['base:flightInfo:add']">
新增</el-button>
......@@ -70,7 +71,7 @@
@sortChange="sortChange" @sizeChange="sizeChange">
<template slot="optionColumn">
<el-table-column v-if="findAllFltDatList.length > 0" label="操作" align="center"
class-name="small-padding fixed-width" fixed="right">
class-name="small-padding fixed-width" :fixed="tableHeader.length > 10 ? 'right' : false">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['base:flightInfo:update']">修改</el-button>
......@@ -109,7 +110,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="航班路线" prop="route">
<el-input class="wid80" v-model="form.route" placeholder="请输入航班路线(XXX-XXX字母大写)" />
<el-input class="wid80" v-model="form.route" placeholder="请输入航班路线(XXX-XXX字母大写,多组用;分割)" />
</el-form-item>
</el-col>
</el-row>
......@@ -157,20 +158,31 @@
v-model="form.extraWeightPercent"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="6">
<el-form-item label="是否开启高低价" prop="highLowPriceFlg">
<el-switch class="wid80" @change="LowHighAvailable" v-model="form.highLowPriceFlg" :active-value="1"
:inactive-value="0" active-color="#13ce66">
</el-switch>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="该航班预审状态:">
<el-tag v-if="preAudit" :type="preAudit == '开启' ? 'success' : 'info'" effect="dark">{{ preAudit }}
</el-tag>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="是否预审" prop="isNeedRequired">
<el-switch class="wid80" :disabled="true" v-model="form.isNeedRequired" :active-value="1"
:inactive-value="0" active-color="#13ce66">
</el-switch>
<el-form-item label="今日航班预审状态" prop="isNeedRequired">
<el-select class="wid80" v-model="form.isNeedRequired" placeholder="">
<el-option label="未设置" :value="2">
</el-option>
<el-option label="开启" :value="1">
</el-option>
<el-option label="关闭" :value="0">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
......@@ -250,6 +262,7 @@ import {
updateStatusBatch,
updateAutoPushBatch,
} from "@/api/findAllFltData";
import { getpreAudit } from '@/api/system/preReview.js'
export default {
name: "FlightInformationMaintenance",
......@@ -268,7 +281,9 @@ export default {
fltNo: undefined, //航班号,要大写
},
//表单参数
form: {},
form: {
isNeedRequired: 2
},
//表单校验
rules: {
fltNo: [
......@@ -306,7 +321,7 @@ export default {
// trigger: "blur",
// },
// {
// pattern: /^([A-Z]{3,4})(\-[A-Z]{3,4})+$/,
// pattern: /^(([\~A-Z]{3,4})(\-[A-Z]{3,4})+)(;{1,1}(([\~A-Z]{3,4})(\-[A-Z]{3,4})+)){0,}$/,
// message: "请输入正确得航班线路"
// }
// ]
......@@ -396,6 +411,8 @@ export default {
ids: [],
//目的航班数据
sourceFlightAndFlightDate: [],
//航班预审状态
preAudit: null,
//高价百分比是否打开
ishighPriceWeightPercent: true,
//遮罩层
......@@ -456,6 +473,7 @@ export default {
this.form.fltNo != ""
) {
this.form.fltNo = this.form.fltNo.toUpperCase();
this.perStatus(this.form.fltNo)
findFltCommonConf(this.form).then((response) => {
if (response.code == 200) {
//额外增重百分比:根据已存在的相同航班号对应的最新值进行设置,如果无相同航班号,按照默认设置为0,不可编辑
......@@ -486,15 +504,6 @@ export default {
//this.form.highLowPriceFlg = true;
}
//是否预审:根据已存在的相同航班号对应的最新值进行设置,如果无相同航班号,按照默认设置‘是否预审’ 为否,不可编辑;
if (
response.data != null &&
response.data.isNeedRequired != null &&
response.data.isNeedRequired != undefined
) {
this.form.isNeedRequired = response.data.isNeedRequired;
} else {
this.form.isNeedRequired = 0;
}
//高/低价百分比:根据已存在的相同航班号对应的最新值进行设置,如果无相同航班号,按照默认设置‘高价百分比’60%,‘低价百分比’40%,不可编辑
if (
response.data != null &&
......@@ -538,6 +547,18 @@ export default {
}
});
},
//获取航班预审状态
perStatus(val) {
getpreAudit({ fltNo: val, page: 1, size: 20 }).then(res => {
if (res.code === 200) {
this.preAudit = res.data.list.length == 0 ? '关闭' : res.data.list[0].status == 0 ? '关闭' : res.data.list[0].status == 1 ? '开启' : ''
} else {
this.msgWarning(res.msg)
}
}).catch(err => {
console.log(err)
})
},
/** 航班信息维护查询*/
findAllFltData() {
this.ids = [];
......@@ -569,6 +590,7 @@ export default {
handleAdd() {
this.reset();
this.findFltConditionData();
this.preAudit = null;
this.open = true;
this.title = "添加航班信息";
this.form.id = null;
......@@ -685,6 +707,7 @@ export default {
handleUpdate(row) {
this.reset();
this.findFltConditionData();
this.perStatus(row.fltNo)
this.open = true;
this.title = "修改航班信息";
//航班号
......@@ -789,7 +812,7 @@ export default {
},
//表单重置
reset() {
this.form = {};
this.form = { isNeedRequired: 2 };
this.resetForm("form");
},
//取消按钮
......@@ -896,6 +919,7 @@ export default {
//每页长度
sizeChange(val) {
this.queryParams.limitSize = val;
this.queryParams.pageNum = 1
this.findAllFltData();
},
setClose() {
......
<template>
<div class="cargoPage">
<el-form ref="cargoForm" class="form-header" label-position="right" label-width="auto" size="medium"
<el-form ref="cargoForm" class="form-header" label-position="right" label-width="auto" size="small"
:model="formData">
<el-row type="flex" style="flexWrap: wrap !important">
<el-col :span="6">
......@@ -11,27 +11,17 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="配载航班号">
<el-input type="textarea" v-model="cargoPlaneNo" class="formItem" placeholder="AC001;AC002" :rows="1"
clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="海关回执状态">
<el-select placeholder="不限" v-model="formData.customsReceiptStatusId" class="formItem" multiple clearable>
<el-select v-model="formData.customsReceiptStatusId" class="formItem" filterable multiple clearable
placeholder="不限">
<el-option v-for="item in findConditionData.cargoCustomsReturnStatus" :label="item.chineseName"
:value="item.id" :key="item.id">
<Tooltips :content="item.chineseName" :refName="item.code"></Tooltips>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运单号">
<el-input ref='userInfo' type="textarea" v-model="formData.waybillNo" class="formItem"
placeholder="请输入运单号(回车间隔)" :rows="1" :maxlength="12000" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="申报类别">
<el-select placeholder="不限" v-model="formData.typeId" class="formItem" clearable>
<el-option v-for="item in findConditionData.cargoType" :label="item.chineseName" :value="item.id"
......@@ -42,22 +32,35 @@
</el-col>
<el-col :span="6">
<el-form-item label="服务类型">
<el-select placeholder="不限" v-model="formData.serviceTypeId" class="formItem" filterable clearable>
<el-select v-model="formData.serviceTypeId" class="formItem" filterable multiple clearable placeholder="不限">
<el-option v-for="item in findConditionData.cargoServiceType" :label="item.chineseName" :value="item.id"
:key="item.id">
<Tooltips :content="item.chineseName" :refName="item.code"></Tooltips>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运单号">
<el-input ref='userInfo' type="textarea" v-model="formData.waybillNo" class="formItem"
placeholder="请输入运单号(回车间隔)" :rows="4" :maxlength="12000" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="配载航班号">
<el-input type="textarea" v-model="cargoPlaneNo" class="formItem" placeholder="AC001;AC002" :rows="4"
clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="URSA">
<el-input type="textarea" v-model="ursa" class="formItem" placeholder="S_;P_;E2" :rows="1" clearable>
<el-input type="textarea" v-model="ursa" class="formItem" placeholder="S_;P_;E2" :rows="4" clearable>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="站点">
<el-input type="textarea" v-model="siteName" class="formItem" placeholder="PVG;PEK" :rows="1" clearable>
<el-input type="textarea" v-model="siteName" class="formItem" placeholder="PVG;PEK" :rows="4" clearable>
</el-input>
</el-form-item>
</el-col>
......@@ -129,7 +132,7 @@
</el-row>
</el-col>
</el-row>
<div style="paddingLeft: 10px; marginTop: 20px">
<div class="pl10 mt20">
<el-button type="primary" icon="el-icon-search" size="small" :loading="tableLoading" @click="select(0)">查询
</el-button>
<el-button v-hasPermi="['base:cargo:export']" :type="downLoadingTip.downloading ? 'warning' : 'primary'"
......@@ -142,23 +145,28 @@
}}</el-button>
<el-button type="primary" size="small" :disabled="selectTable.length == 0" v-hasPermi="['base:cargo:release']"
@click="release">释放舱位</el-button>
<span style="marginLeft: 20px; color: #ffba00">全部导出上限80000条数据</span>
<span class="ml20" style="color: #ffba00">全部导出上限80000条数据</span>
<el-progress v-if="progress != 0" class="progress" :stroke-width="12" :show-text="true" :percentage="progress"
:status="progress == 100 ? 'success' : 'warning'"></el-progress>
<div class="tips">
<span style="paddingRight: 50px">总重量:{{ allWeight }}</span>
<span>总件数:{{ allQty }}</span>
</div>
<div class="formShow" @click="formShow = !formShow">
<i class="el-icon-s-tools"></i>{{ formShow ? "收起条件" : "更多条件" }}
<div class="formShow">
<el-tooltip :content="formShow ? '隐藏查询条件' : '显示查询条件'" placement="top">
<el-button class="mr20" icon="el-icon-search" size="mini" @click="formShow = !formShow" circle></el-button>
</el-tooltip>
<el-tooltip content="表格设置" placement="top">
<HeaderSetting tableName="cargo" class="mr20" style="float:right;line-height: 48px;"
@close="headerSetClose"></HeaderSetting>
</el-tooltip>
</div>
</div>
</el-form>
<Tables ref="newTables" ductName="cargo" :data="tableData" :headerData="tableHeader" :infoData="tableHeader"
:selection="true" :order="true" :totalCount="totalCount" :loading="tableLoading" :limitSize="limitSize"
:limitStart="limitStart" :page="page" :shiftKey="shiftKey" :pageSizes="[100]" :height="tableHeight"
@sizeChange="sizeChange" @tableSelect="tableSelect" @tableSelectAll="tableSelectAll"
@currentChange="currentChange" @sortChange="sortChange"></Tables>
<Tables ref="newTables" ductName="cargo" :data="tableData" :headerData="tableHeader" :selection="true" :order="true"
:totalCount="totalCount" :loading="tableLoading" :limitSize="limitSize" :limitStart="limitStart" :page="page"
:shiftKey="shiftKey" :pageSizes="[100]" :height="tableHeight" @sizeChange="sizeChange" @tableSelect="tableSelect"
@tableSelectAll="tableSelectAll" @currentChange="currentChange" @sortChange="sortChange"></Tables>
<el-dialog title="舱位释放结果" width="80%" :visible.sync="dialogVisible" :close-on-click-modal="false"
:show-close="false" :append-to-body="true">
<el-table :data="selectTable" size="mini" border stripe highlight-current-row style="width: 100%">
......@@ -178,7 +186,6 @@
<script>
import { findConditionData, findCargoData, releaseCargo } from "@/api/cargoSelect";
import { downLoadXlsx } from "@/utils/zipdownload";
import { upCase } from "@/utils/FedEx";
export default {
name: "QueryCargo",
......@@ -213,7 +220,7 @@ export default {
limitStart: 1,
limitSize: 100,
}, //表单数据
tableHeader: this.tableHeaders['cargo'], //表头数据
tableHeader: [], //表头数据
releaseHeader: [
{
name: "提示信息",
......@@ -291,23 +298,19 @@ export default {
};
},
created() {
// 查询条件
findConditionData().then((res) => {
if (res.code == 200) {
this.findConditionData = res.data;
} else {
this.$message({
message: "查询条件不存在",
type: "warning",
});
}
});
this.findCondition()
if (this.$store.getters.tableHeader) {
this.tableHeader = this.$store.getters.tableHeader['cargo']
} else {
this.tableHeader = this.tableHeaders['cargo']
}
},
activated() {
if (this.$store.state.tagsView.cachedViews.length > 0) {
this.$store.state.tagsView.cachedViews.forEach(item => {
if (item === 'QueryCargo') {
this.findCondition()
this.totalCount > 0 ? this.select() : ''
}
})
......@@ -340,8 +343,18 @@ export default {
clear() {
this.$refs.cargoForm.resetFields();
},
// 查询条件
async findCondition() {
findConditionData().then((res) => {
if (res.code == 200) {
this.findConditionData = res.data;
} else {
this.msgWarning('查询条件不存在')
}
});
},
//查询
select(val) {
async select(val) {
this.tableData = [];
this.allWeight = 0;
this.allQty = 0;
......@@ -362,16 +375,10 @@ export default {
this.tableData[i].index = i;
}
} else {
this.$message({
message: "未查询到数据",
type: "warning",
});
this.msgWarning('未查询到数据')
}
} else {
this.$message({
message: res.msg,
type: "warning",
});
this.msgWarning(res.msg)
}
this.tableLoading = false;
})
......@@ -390,10 +397,7 @@ export default {
})
releaseCargo(idList).then(res => {
if (res.code === 200) {
this.$message({
message: res.msg,
type: "success",
});
this.msgSuccess(res.msg)
} else if (res.code === 201) {
this.selectTable.map(item => {
res.data['success'].map(val => {
......@@ -409,16 +413,12 @@ export default {
val === item.id ? item.msg = item.msg + '已释放仓位。' : ''
})
res.data['pushFalse'].map(val => {
console.log(item)
val === item.id ? item.msg = item.msg + '该货物配舱结果已回推ACCS,不能释放。' : ''
})
})
this.dialogVisible = true
} else {
this.$message({
message: res.msg,
type: "warning",
});
this.msgWarning(res.msg)
}
}).catch(err => {
console.log(err)
......@@ -432,6 +432,9 @@ export default {
},
//数据初始化
dataInfo() {
if (this.formData.serviceTypeId != null && this.formData.serviceTypeId.length < 1) {
this.formData.serviceTypeId = null
}
if (
this.formData.customsReceiptStatusId != null &&
this.formData.customsReceiptStatusId.length < 1
......@@ -569,13 +572,21 @@ export default {
});
} else {
this.downLoadingTip.downloading = false;
this.$message({
message: "导出数据量过大,请不要超过8万条",
type: "warning",
});
this.msgWarning('导出数据量过大,请不要超过8万条')
}
}
},
//设置关闭
headerSetClose(val) {
if (val == 1) {
this.tableHeader = []
this.tableData = []
this.$nextTick(() => {
this.tableHeader = this.$store.getters.tableHeader['cargo']
this.select()
})
}
}
},
computed: {
fltNo: {
......@@ -583,7 +594,7 @@ export default {
return this.formData.fltNo;
},
set: function (val) {
this.formData.fltNo = upCase(val);
this.formData.fltNo = this.upCase(val);
},
},
siteName: {
......@@ -591,7 +602,7 @@ export default {
return this.formData.siteName;
},
set: function (val) {
this.formData.siteName = upCase(val);
this.formData.siteName = this.upCase(val);
},
},
ursa: {
......@@ -599,7 +610,7 @@ export default {
return this.formData.ursa;
},
set: function (val) {
this.formData.ursa = upCase(val);
this.formData.ursa = this.upCase(val);
},
},
cargoPlaneNo: {
......@@ -607,7 +618,7 @@ export default {
return this.formData.cargoPlaneNo;
},
set: function (val) {
this.formData.cargoPlaneNo = upCase(val);
this.formData.cargoPlaneNo = this.upCase(val);
},
},
},
......@@ -637,6 +648,6 @@ export default {
color: rgb(64, 158, 255);
font-size: 14px;
float: right;
margin-right: 20px;
margin-right: 5px;
}
</style>
\ No newline at end of file
......
<template>
<div class="login" :style="display">
<el-form
ref="loginForm"
:model="loginForm"
:rules="loginRules"
class="login-form"
>
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
<h3 class="title">IMAC后台管理系统</h3>
<el-form-item prop="username">
<el-input
v-model="loginForm.username"
type="text"
auto-complete="off"
placeholder="账号"
>
<svg-icon
slot="prefix"
icon-class="user"
class="el-input__icon input-icon"
/>
<el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="账号">
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
</el-input>
</el-form-item>
<el-form-item prop="password">
<el-input
v-model="loginForm.password"
type="password"
auto-complete="off"
placeholder="密码"
@keyup.enter.native="handleLogin"
>
<svg-icon
slot="prefix"
icon-class="password"
class="el-input__icon input-icon"
/>
<el-input v-model="loginForm.password" type="password" auto-complete="off" placeholder="密码"
@keyup.enter.native="handleLogin">
<svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
</el-input>
</el-form-item>
<!-- <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox> -->
<el-form-item style="width: 100%; marginTop: 44px">
<el-button
:loading="loading"
size="medium"
type="primary"
style="width: 100%"
@click.native.prevent="handleLogin"
>
<el-button :loading="loading" size="medium" type="primary" style="width: 100%"
@click.native.prevent="handleLogin">
<span v-if="!loading">登 录</span>
<span v-else>登 录 中...</span>
</el-button>
......@@ -83,17 +55,17 @@ export default {
},
loading: false,
redirect: undefined,
display: "display:none",
display: "display:flex",
};
},
watch: {
$route: {
handler: function(route) {
handler: function (route) {
this.redirect = route.query && route.query.redirect;
},
immediate: true
}
},
},
created() {
this.getCookie();
},
......@@ -130,7 +102,7 @@ export default {
this.$store
.dispatch("Login", this.loginForm)
.then(() => {
this.$router.push({ path: this.redirect || "/" }).catch(() => {});
this.$router.push({ path: this.redirect || "/" }).catch(() => { });
})
.catch(() => {
this.loading = false;
......@@ -145,13 +117,14 @@ export default {
<style rel="stylesheet/scss" lang="scss">
.login {
display: none;
display: flex;
justify-content: center;
align-items: center;
height: 100%;
background-image: url("../assets/images/login-background.jpg");
background-size: cover;
}
.title {
margin: 0px auto 30px auto;
text-align: center;
......@@ -163,32 +136,39 @@ export default {
background: #ffffff;
width: 400px;
padding: 25px 25px 5px 25px;
.el-input {
height: 38px;
input {
height: 38px;
}
}
.input-icon {
height: 39px;
width: 14px;
margin-left: 2px;
}
}
.login-tip {
font-size: 13px;
text-align: center;
color: #bfbfbf;
}
.login-code {
width: 33%;
height: 38px;
float: right;
img {
cursor: pointer;
vertical-align: middle;
}
}
.el-login-footer {
height: 40px;
line-height: 40px;
......@@ -201,6 +181,7 @@ export default {
font-size: 12px;
letter-spacing: 1px;
}
.login-code-img {
height: 38px;
}
......
<template>
<div>
<el-dialog :title="title" :visible.sync="open" width="25%" :close-on-click-modal="false" :show-close="false"
append-to-body center>
<el-form ref="add" :model="newDictionary" label-width="auto" label-position="left" size="small"
:rules="rules" @submit.native.prevent>
<!-- 新增数据字典 -->
<div v-if="dictName != '虚拟航班'">
<el-form-item label="所属父级" v-if="newDictionary.serviceCodeKey">
<el-input type="text" v-model="newDictionary.serviceCodeKey" placeholder="用回车分隔" disabled>
</el-input>
</el-form-item>
<!-- 批量新增 -->
<el-form-item label="数据名称" v-if="status == 'allAdd' || status == 'childrenAdd'" prop="chineseName">
<el-input type="textarea" v-model="newDictionary.chineseName" :rows="7" maxlength="255"
show-word-limit placeholder="用回车分隔">
</el-input>
</el-form-item>
<div v-else>
<!-- 单条新增 -->
<el-form-item label="数据名称" prop="chineseName">
<el-input type="text" v-model.trim="newDictionary.chineseName" placeholder="请输入数据名称"
maxlength="50"></el-input>
</el-form-item>
<!-- <el-form-item label="字典CODE" prop="code" v-show="addDictionary.chineseName">
<el-input type="text" v-model.trim="newDictionary.code" placeholder="请输入字典CODE" disabled>
</el-input>
</el-form-item> -->
<el-form-item label="描述" prop="description">
<el-input type="textarea" v-model="newDictionary.description" :row="3" maxlength="125"
show-word-limit></el-input>
</el-form-item>
</div>
</div>
<!-- 新增虚拟航班 -->
<div v-else>
<el-form-item label="所属口岸" prop="portName">
<el-select v-model="newDictionary.portName" placeholder="选择口岸" disabled>
<el-option v-for="item in $store.state.user.portNames" :label="item" :value="item"
:key="item">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="航班名称" v-if="status == 'allAdd'" prop="flightNo">
<el-input type="textarea" v-model="flightNo" :rows="7" maxlength="255" show-word-limit
placeholder="用;分隔,单条航班名长度25">
</el-input>
</el-form-item>
<el-form-item label="航班名称" prop="flightNo" v-else>
<el-input type="text" v-model="flightNo" placeholder="请输入数据名称" maxlength="25"></el-input>
</el-form-item>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" :loading="loading" @click="submit">确 定</el-button>
<el-button @click="close">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { addDict, addDictBatch, addServiceCodeBatch, addFlight } from '@/api/system/dictionary.js'
export default {
props: {
open: {
type: Boolean,
default: false,
},
dictName: {
type: String,
default: ''
},
addDictionary: {
type: Object,
default: null
},
status: {
type: String,
default: null
}
},
data() {
return {
newDictionary: { flightNo: undefined, chineseName: undefined },
rules: {
chineseName: [
{
required: true,
message: "数据名称不能为空",
trigger: "blur",
}
],
flightNo: [
{
required: true,
message: "航班名称不能为空",
trigger: "blur",
},
]
},
title: '',
loading: false,
}
},
watch: {
open(val, oldVal) {
if (val) {
this.newDictionary = { flightNo: undefined, chineseName: undefined }
if (this.status == 'add') {
this.title = '新增'
} else if (this.status == 'allAdd') {
this.title = '批量新增'
} else if (this.status == 'childrenAdd') {
this.newDictionary = this.addDictionary
this.title = '新增子集'
}
// else if (this.status == 'update') {
// if (this.addDictionary.serviceCodeValue) {
// this.newDictionary = {
// chineseName: this.addDictionary.serviceCodeValue,
// fname: this.addDictionary.serviceCodeKey,
// code: this.addDictionary.serviceCodeValue,
// }
// } else {
// this.newDictionary = this.addDictionary
// }
// this.title = '修改'
// }
if (this.dictName == '虚拟航班') {
this.newDictionary.portName = this.$store.state.user.activePortName
}
}
},
},
methods: {
//确定
submit() {
this.$refs['add'].validate((val) => {
if (val) {
this.loading = true
this.newDictionary.dictCode = this.dictName
//新增字典
if (this.status == 'add') {
if (this.dictName === '虚拟航班') {
this.flightAdd()
} else {
addDict(this.newDictionary).then(res => {
this.loading = false
if (res.code === 200) {
this.msgSuccess(res.msg)
this.close()
} else {
this.msgWarning(res.msg)
}
}).catch(err => {
this.loading = false
console.log(err)
})
}
}
//批量新增
else if (this.status == 'allAdd') {
if (this.dictName === '虚拟航班') {
this.flightAdd()
} else {
let obj = {
nameList: [],
dictCode: this.dictName
}
this.newDictionary.chineseName.split("\n").forEach(item => {
if (item != null && item != undefined && item != '') {
obj.nameList.push(item)
}
})
addDictBatch(obj).then(res => {
this.loading = false
if (res.code === 200) {
this.msgSuccess(res.msg)
this.close()
} else {
this.msgWarning(res.msg)
}
}).catch(err => {
this.loading = false
console.log(err)
})
}
}
//新增子集
else if (this.status == 'childrenAdd') {
let arr = []
this.newDictionary.chineseName.split("\n").forEach(item => {
arr.push({
serviceCodeKey: this.newDictionary.serviceCodeKey,
serviceCodeValue: item
})
})
addServiceCodeBatch(arr).then(res => {
this.loading = false
if (res.code === 200) {
this.msgSuccess(res.msg)
this.close()
} else {
this.msgWarning(res.msg)
}
}).catch(err => {
this.loading = false
console.log(err)
})
}
}
})
},
//新增虚拟航班
flightAdd() {
let flightNo = []
flightNo = this.newDictionary.flightNo.toUpperCase().split(';')
addFlight(flightNo).then(res => {
this.loading = false
if (res.code === 200) {
this.msgSuccess(res.msg)
this.close()
} else {
this.msgWarning(res.msg)
}
}).catch(err => {
this.loading = false
console.log(err)
})
},
//关闭
close() {
this.newDictionary = { chineseName: null, code: null, remark: null }
this.clearValidate('add')
this.$emit('close', false)
},
//清除表单验证
clearValidate(formName) {
this.$refs[formName].clearValidate();
},
},
computed: {
chineseName: {
get: function () {
return this.newDictionary.chineseName
},
set: function (val) {
const reg = /^([a-zA-Z0-9]{0,25}(\n[a-zA-Z0-9]{0,25})*)$/
if (reg.test(val)) {
this.newDictionary.chineseName = val
}
},
},
flightNo: {
get: function () {
return this.newDictionary.flightNo
},
set: function (val) {
const reg = /^([a-zA-Z0-9]{0,25}(\;[a-zA-Z0-9]{0,25})*)$/
if (reg.test(val)) {
this.newDictionary.flightNo = val
}
},
}
}
}
</script>
<style>
</style>
\ No newline at end of file
<template>
<div style="padding:10px">
<el-card style="margin-bottom:10px">
<!-- cardHeader -->
<div slot="header" class="clearfix">
<span style="font-size:16px;font-weight:700">{{ (tableName == 'Site' ? '站点' : tableName ==
'虚拟航班' ? '虚拟航班' : tableName.replace(/( |^)[a-z]/g, L => L.toUpperCase())) + "表"
}}</span>
<div style="float: right; padding: 3px 0">
<span class="selectLabel mr10">切换字典表</span>
<el-select v-model="tableName" size="small" placeholder="不限" filterable @change="selectChange">
<el-option v-for="item in dictNameList" :label="item.chineseName" :value="item.code"
:key="item.id">
</el-option>
<el-option label="虚拟航班" value="虚拟航班"></el-option>
</el-select>
</div>
</div>
<!-- 查询条件 -->
<el-form ref="dictForm" label-width="auto" label-position="left" style="margin-bottom:10px"
@submit.native.prevent>
<el-row :gutter="10" v-if="tableName != 'serviceCode'">
<el-col :span="6">
<el-form-item label="航班名称" v-if="tableName === '虚拟航班'">
<el-input v-model="selectDict.flightNo" size="small" style="width:80%"
placeholder="请输入航班名称"></el-input>
</el-form-item>
<el-form-item label="数据名称" v-else>
<el-input v-model="selectDict.chineseName" size="small" style="width:80%"
placeholder="请输入数据名称"></el-input>
</el-form-item>
</el-col>
</el-row>
<div style="margin-bottom:10px">
<el-button type="primary" icon="el-icon-search" size="small" :loading="loading"
v-if="tableName != 'serviceCode'" @click="tableSelect(1)">查询</el-button>
<el-button type="primary" icon="el-icon-plus" size="small" @click="addDic({ status: 'add' })"
v-hasPermi="['system:dictionary:add']">
{{ tableName === 'serviceCode' ? '新增父级' : '新增' }}
</el-button>
<el-button type="primary" icon="el-icon-plus" size="small" @click="addDic({ status: 'allAdd' })"
v-hasPermi="['system:dictionary:add']">
{{ tableName === 'serviceCode' ? '批量新增父级' : '批量新增' }}
</el-button>
<el-button type="danger" icon="el-icon-delete" size="small" :disabled="nowSelect.length == 0"
@click="handleDelete" v-hasPermi="['system:dictionary:delete']">删除
</el-button>
</div>
</el-form>
<!-- 表格 -->
<Tables v-if="tableName != 'serviceCode' && tableName != '虚拟航班'" ductName="dictionary" :selection="true"
:selectFixed="false" :order='true' :height="tableHeight" :data="tableData" :headerData="tableHeader"
:page="selectDict.page" :pageSizes="[20]" :totalCount="total" :loading="loading"
@currentChange="currentChange" layout="total,prev, pager, next, jumper, ->"
@tableSelect="tableSelection" @tableSelectAll="tableSelectAll">
<template slot="optionColumn">
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<!-- <el-button class="mr5" size="mini" type="text" icon="el-icon-edit"
@click="upDate({ status: 'update', data: scope.row })">修改
</el-button> -->
<el-button size="mini" type="text" style="color:#ff4949" icon="el-icon-delete"
@click="delDict(scope.row)" v-hasPermi="['system:dictionary:delete']">删除
</el-button>
</template>
</el-table-column>
</template>
</Tables>
<!-- 虚拟航班表 -->
<Tables v-if="tableName === '虚拟航班'" ductName="dictionary" :selection="true" :selectFixed="false"
:order='true' :height="tableHeight" :data="tableData" :headerData="flightHeader" :page="selectDict.page"
:pageSizes="[20]" :totalCount="total" :loading="loading" @currentChange="currentChange"
layout="total,prev, pager, next, jumper, ->" @tableSelect="tableSelection"
@tableSelectAll="tableSelectAll">
<template slot="optionColumn">
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<!-- <el-button class="mr5" size="mini" type="text" icon="el-icon-edit"
@click="upDate({ status: 'update', data: scope.row })">修改
</el-button> -->
<el-button size="mini" type="text" style="color:#ff4949" icon="el-icon-delete"
@click="delDict(scope.row)" v-hasPermi="['system:dictionary:delete']">删除
</el-button>
</template>
</el-table-column>
</template>
</Tables>
<!-- serviceCode表格(树形结构) -->
<Tables v-show="tableName === 'serviceCode'" ductName="dictionary" :order='false' :height="tableHeight"
:data="tableData" :headerData="serviceCodeHeader" :pageSize="selectDict.page" :pageSizes="[20]"
:totalCount="total" :pagination="false" :loading="loading" @currentChange="currentChange">
<template v-slot:serviceCodeMapperList="scope">
<!-- 二级表格 -->
<el-card>
<Tables v-show="tableName === 'serviceCode'" ductName="dictionary" :selection="true"
:order='false' :selectFixed="false" height="auto" :data="scope.row.serviceCodeMapperList"
:headerData="childrenTableHeader" :pageSize="selectDict.page" :pageSizes="[20]"
:totalCount="total" :pagination="false" :loading="loading" @currentChange="currentChange"
@tableSelect="serviceCodeTableSelection" @tableSelectAll="serviceCodeTableSelectAll">
<template slot="optionColumn">
<el-table-column label="操作" align="center" width="300">
<template slot-scope="scope">
<!-- <el-button class="mr5" size="mini" type="text" icon="el-icon-edit"
@click="upDate({ status: 'update', data: props.row })">修改
</el-button> -->
<el-button size="mini" type="text" style="color:#ff4949" icon="el-icon-delete"
@click="delDict(scope.row)" v-hasPermi="['system:dictionary:delete']">
删除
</el-button>
</template>
</el-table-column>
</template>
</Tables>
</el-card>
</template>
<template slot="optionColumn">
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button class="mr5" v-if="scope.row.serviceCodeMapperList" size="mini" type="text"
icon="el-icon-plus"
@click="addDic({ status: 'childrenAdd', data: scope.row.chineseName })"
v-hasPermi="['system:dictionary:add']">新增子集
</el-button>
<!-- <el-button class="mr5" size="mini" type="text" icon="el-icon-edit"
@click="upDate({ status: 'update', data: scope.row })">修改
</el-button> -->
<el-button v-if="!scope.row.serviceCodeMapperList" size="mini" type="text"
style="color:#ff4949" icon="el-icon-delete" @click="delDict(scope.row)"
v-hasPermi="['system:dictionary:delete']">删除
</el-button>
</template>
</el-table-column>
</template>
</Tables>
</el-card>
<!-- 新增修改 -->
<Dialog :dictName="tableName" :open="open" :addDictionary="addDictionary" :status="status" @close="close" />
</div>
</template>
<script>
import Dialog from './dialog.vue'
import { getDictNameList, getDictionaryList, getServiceCodeList, delServiceCodeCihild, delDict, flightType, delFlight } from '@/api/system/dictionary.js'
export default {
name: 'DictionaryConfig',
components: {
Dialog
},
data() {
return {
selectDict: {
dictCode: this.tableName,
chineseName: null,
page: 1,
size: 20
},//字典查询条件
tableData: [],
tableHeader: this.tableHeaders['dict'],//表头
flightHeader: [
{
columnChineseName: "航班号",
columnName: "flightNo",
columnWidth: "",
align: "center",
status: 1
}
],//虚拟航班表头
serviceCodeHeader: this.tableHeaders['dictServiceCode'],//serviceCode主表头
childrenTableHeader: this.tableHeaders['dictServiceCodeChildren'],//serviceCode子表头
dictNameList: [],//主表数据
addDictionary: {},//选择数据
nowSelect: [],
tableName: '',
tableHeight: null,
total: 0,
status: null,
loading: false,
open: false,
}
},
created() {
this.dictNameSelect()
},
activated() {
// if (this.$store.state.tagsView.cachedViews.length > 0) {
// this.tableSelect()
// }
},
mounted() {
this.tableHeight = window.innerHeight - this.$refs.dictForm.$el.offsetHeight - 270
},
watch: {
tableName(val, oldVal) {
this.tableName = val
this.selectDict = {
page: 1,
size: 20
}
this.tableSelect()
},
},
methods: {
//字典名称
dictNameSelect() {
getDictNameList().then(res => {
if (res.code === 200) {
this.dictNameList = res.data
this.tableName = this.dictNameList[0].code
} else {
this.msgWarning(res.msg)
}
}).catch(err => {
console.log(err)
this.msgWarning(err)
})
},
//搜索
tableSelect(val) {
this.nowSelect = []
if (val === 1) {
this.selectDict.page = 1
}
this.selectDict.dictCode = this.tableName
if (this.tableName === 'serviceCode') {
getServiceCodeList().then(res => {
if (res.code === 200) {
this.tableData = res.data
this.tableData.forEach(item => {
item.serviceCodeMapperList.map((val, i) => {
val.index = i
})
})
} else {
this.msgWarning(res.msg)
}
}).catch(err => {
console.log(err)
})
} else if (this.tableName === "虚拟航班") {
flightType(this.selectDict).then(res => {
if (res.code === 200) {
this.tableData = res.data.list
this.total = res.data.total
}
}).catch(err => {
console.log(err)
})
} else {
getDictionaryList(this.selectDict).then(res => {
if (res.code === 200) {
this.tableData = res.data.list
this.total = res.data.total
} else {
this.msgWarning(res.msg)
}
}).catch(err => {
console.log(err)
})
}
},
//新增
addDic(val) {
this.status = val.status
if (val.data) {
this.addDictionary = {
serviceCodeKey: val.data
}
}
this.open = true
},
//修改
// upDate(val) {
// console.log(val)
// this.status = val.status
// this.addDictionary = val.data
// this.open = true
// },
//删除按钮
delDict(val) {
if (this.tableName == 'serviceCode') {
this.serviceCodeCihildDel([val.id])
} else if (this.tableName === '虚拟航班') {
this.flightDel([val.id])
} else {
this.dicDel([val.id])
}
},
//批量删除按钮
handleDelete() {
let arr = []
this.nowSelect.forEach(item => {
arr.push(item.id)
})
if (this.tableName == 'serviceCode') {
this.serviceCodeCihildDel(arr)
} else if (this.tableName === '虚拟航班') {
this.flightDel(arr)
} else {
this.dicDel(arr)
}
},
//数据字典删除
dicDel(val) {
this.$confirm("删除字典数据可能会对航班配舱设置产生影响,需手动对航班配舱设置进行维护。是否要删除", "注意!", {
closeOnClickModal: false,
confirmButtonText: "确定删除",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
delDict(val).then(res => {
if (res.code === 200) {
this.msgSuccess(res.msg)
} else {
this.msgWarning(res.msg)
}
this.tableSelect(1)
}).catch(err => {
console.log(err)
})
}).catch(() => { })
},
//serviceCode子字典删除
serviceCodeCihildDel(val) {
this.$confirm("删除子字典数据可能会对航班配舱设置产生影响,需手动对航班配舱设置进行维护。是否要删除", "注意!", {
closeOnClickModal: false,
confirmButtonText: "确定删除",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
delServiceCodeCihild(val).then(res => {
if (res.code === 200) {
this.msgSuccess(res.msg)
} else {
this.msgWarning(res.msg)
}
this.tableSelect(1)
}).catch(err => {
console.log(err)
})
}).catch((() => { }))
},
//虚拟航班删除
flightDel(val) {
this.$confirm("是否要删除此虚拟航班记录!", "注意!", {
closeOnClickModal: false,
confirmButtonText: "确定删除",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
delFlight(val).then(res => {
if (res.code === 200) {
this.msgSuccess(res.msg)
} else {
this.msgSuccess(res.msg)
}
this.tableSelect(1)
}).catch(err => {
console.log(err)
})
}).catch(() => { })
},
//切换字典表
selectChange(val) {
this.tableName = val
},
//关闭状态修改
close(val) {
this.open = val
this.addDictionary = {}
this.tableSelect()
},
//翻页
currentChange(val) {
this.selectDict.page = val.page;
this.tableSelect();
},
//多选
tableSelection(val) {
this.nowSelect = val.selection
},
serviceCodeTableSelection(val) {
this.nowSelect = val.selection
},
//全选
tableSelectAll(val) {
this.nowSelect = val
},
serviceCodeTableSelectAll(val) {
this.nowSelect = val
},
}
}
</script>
<style lang="scss" scoped>
.selectLabel {
font-size: 14px;
font-weight: 600;
}
</style>
\ No newline at end of file
<template>
<div class="menuDrawer">
<el-dialog :title="drawerTitle" width="50%" :visible.sync="dialogVisible" :close-on-click-modal="false"
:append-to-body="true">
<el-form ref="userForm" :model="menuForm" :disabled="menuFormDisabled" :rules="rules" label-width="auto"
style="margin: 10px">
<el-row>
<el-col :span="12">
<el-form-item label="菜单名称" prop="">
<!-- <el-input
placeholder="请输入权限名"
:disabled="menuFormDisabled"
v-model="menuData.userName"
size="mini"
></el-input> -->
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="菜单路由" prop="">
<!-- <el-input
placeholder="请输入权限名"
:disabled="menuFormDisabled"
v-model="menuData.userName"
size="mini"
></el-input> -->
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="组件名称" prop="">
<!-- <el-input
placeholder="请输入权限名"
:disabled="menuFormDisabled"
v-model="menuData.userName"
size="mini"
></el-input> -->
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="菜单状态" prop="">
<el-switch v-model="menuData.menuStatus" active-color="#13ce66" inactive-color="#ff4949"
:disabled="menuFormDisabled"></el-switch>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="图标选择" prop="">
<iconSelect @selected="selected"></iconSelect>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="权限设置" prop="">
<el-col :span="6">
<el-radio label="页面" size="medium"></el-radio>
</el-col>
<el-col :span="6">
<el-radio label="按钮" size="medium"></el-radio>
</el-col>
<el-col :span="24">
<el-card shadow="never">
<el-input placeholder=""></el-input>
</el-card>
</el-col>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer">
<el-button @click="handleClose">取 消</el-button>
<el-button type="primary" @click="submit">确 定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import iconSelect from "@/components/IconSelect";
export default {
components: {
iconSelect,
},
props: {
drawerTitle: {
type: String,
default: "",
},
menuFormDisabled: {
type: Boolean,
default: false,
},
dialogVisible: {
type: Boolean,
default: false,
},
menuData: {
type: Object,
default: null,
},
},
data() {
return {
menuForm: {},
rules: {}
};
},
updated() {
this.menuForm = this.menuData;
},
watch: {
dialogVisible(val, oldVal) {
if (val) {
this.menuForm = this.menuData;
}
}
},
methods: {
handleClose() {
this.$emit("handleClose", false);
},
selected(val) {
console.log(val);
},
submit() { },
},
};
</script>
<style>
</style>
\ No newline at end of file
......@@ -12,7 +12,7 @@
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
<template v-for="(item, index) in tableHeader">
<el-table-column v-if="item.value === 'menuType'" :prop="item.value" :label="item.name" :key="index"
:align="item.align" header-align="center" showOverflowTooltip :width="item.width" :formatter="formatter">
:align="item.align" header-align="center" :width="item.width" :formatter="formatter">
<template slot-scope="scope">
<el-tag :type="scope.row.menuType === 'B' ? '' : 'success'" disable-transitions>{{ scope.row.menuType ===
"B" ? "按钮" : "菜单"
......@@ -20,10 +20,9 @@
</template>
</el-table-column>
<el-table-column v-else :prop="item.value" :label="item.name" :key="index" :align="item.align"
header-align="center" showOverflowTooltip :width="item.width" :formatter="formatter">
header-align="center" :width="item.width" :formatter="formatter">
</el-table-column>
</template>
<el-table-column header-align="center" align="center" label="操作" width="auto">
<template slot-scope="scope">
<!-- <el-button type="success" size="mini" @click="buttonClick(scope)">修改</el-button>
......@@ -39,55 +38,15 @@
</template>
</el-table-column>
</el-table>
<!-- <Tables
ref="newTable"
:data="data"
:headerData="tableHeader"
size="medium"
rowKey="id"
:defaultExpandAll="true"
height="auto"
@tableSelect="tableSelect"
@tableSelectAll="tableSelectAll"
@SelectChange="SelectChange"
>
<el-table-column
header-align="center"
align="center"
label="操作"
width="auto"
>
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="menuStatus(scope)">{{
scope.menuStatus == 0 ? "停用" : "启用"
}}</el-button>
<el-button type="danger" size="mini" @click="removeMenu(scope)"
>删除菜单</el-button
>
</template>
</el-table-column>
</Tables> -->
<!-- <Drawer
:dialogVisible="drawer"
:drawerTitle="drawerTitle"
:menuFormDisabled="menuFormDisabled"
:menuData="menuData"
@handleClose="handleClose"
></Drawer> -->
</div>
</template>
<script>
import { getAllAuth, updateStatus } from "@/api/system/user.js";
import dictLabels from "@/assets/languages/dictLabels.js";
import Drawer from "./drawer.vue";
import { MessageBox } from "element-ui";
export default {
name: "MenuConfig",
components: {
Drawer,
},
data() {
return {
drawer: false,
......@@ -102,35 +61,30 @@ export default {
value: "title",
width: "",
align: "left",
sorTable: false,
},
{
name: "菜单类型",
value: "menuType",
width: "100",
align: "center",
sortable: false,
},
{
name: "权限标识",
value: "permissionKey",
width: "auto",
align: "left",
sortable: false,
},
{
name: "菜单状态",
value: "status",
width: "100",
align: "center",
sorTable: false,
},
{
name: "菜单路由",
value: "path",
width: "auto",
align: "left",
sorTable: false,
},
],
};
......@@ -153,19 +107,16 @@ export default {
this.drawerTitle = "新增菜单";
this.menuFormDisabled = false;
},
//关闭
handleClose(val) {
this.drawer = val;
},
buttonClick(row) {
this.menuData = row.row;
this.drawer = true;
this.drawerTitle = "查看/修改";
this.menuFormDisabled = true;
},
//表格数据
menuAll() {
this.loading = true;
......@@ -175,48 +126,34 @@ export default {
if (res.code === 200) {
res.data.length > 0
? (this.data = res.data)
: this.$message({
message: "数据为空",
type: "warning",
});
: this.msgWarning('数据为空')
} else {
this.$message({
message: res.msg,
type: "warning",
});
this.msgWarning(res.msg)
}
})
.catch(() => {
this.loading = false;
});
},
//菜单状态改变
statusUpdate(data) {
updateStatus(data)
.then((res) => {
if (res.code === 200) {
this.menuAll();
this.$message({
message: "操作成功",
type: "success",
});
this.msgSuccess('操作成功')
location.reload();
} else {
this.$message({
message: res.msg,
type: "warning",
});
this.msgWarning(res.msg)
}
})
.catch((err) => {
console.log(err);
});
},
//菜单开启关闭
menuStatus(row) {
MessageBox.confirm(
this.$confirm(
row.row.status == 1 ? "是否要关闭此菜单" : "是否要启用此菜单",
"提示",
{
......@@ -233,10 +170,9 @@ export default {
})
.catch(() => { });
},
//菜单删除
removeMenu(row) {
MessageBox.confirm("是否要删除此菜单", "提示", {
this.$confirm("是否要删除此菜单", "提示", {
confirmButtonText: "确定删除",
cancelButtonText: "取消",
type: "warning",
......@@ -249,7 +185,6 @@ export default {
})
.catch(() => { });
},
formatter(row, column, cellValue, index) {
if (dictLabels["menu"][column.property]) {
if (dictLabels["menu"][column.property][cellValue]) {
......
......@@ -2,7 +2,8 @@
<div class="roleDrawer">
<el-drawer :title="drawerTitle" :visible.sync="drawer" direction="rtl" size="40%" destroy-on-close
:close-on-click-modal="false" :wrapperClosable="false" :show-close="false">
<el-form ref="roleForm" :model="roleForm" label-width="auto" :rules="rules" size="mini" style="margin: 10px">
<el-form ref="roleForm" :model="roleForm" label-width="auto" :rules="rules" size="mini" style="margin: 10px"
@submit.native.prevent>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="角色名:" prop="name">
......@@ -14,22 +15,10 @@
<el-col :span="24">
<el-form-item label="角色描述:" prop="remark">
<el-input v-model="roleForm.remark" type="textarea" placeholder="请输入角色描述" :disabled="roleFormDisabled"
v-if="!roleFormDisabled" clearable></el-input>
v-if="!roleFormDisabled" clearable maxlength="255" show-word-limit></el-input>
<div v-else>{{ roleData.remark }}</div>
</el-form-item>
</el-col>
<!-- <el-col :span="24">
<el-form-item label="角色状态:" prop="valid">
<el-switch
v-model="roleForm.valid"
:active-value="1"
:inactive-value="2"
active-color="#13ce66"
inactive-color="#ff4949"
:disabled="roleFormDisabled"
></el-switch>
</el-form-item>
</el-col> -->
<el-col :span="24">
<el-form-item label="角色权限:" prop="menuIdList">
<el-tree ref="tree" :data="treeData" node-key="id" :props="defaultProps" :show-checkbox="true"
......@@ -91,26 +80,13 @@ export default {
},
};
},
created() {
//权限列表
getAllAuth()
.then((res) => {
if (res.code === 200) {
this.treeData = this.treeDataInfo(res.data);
} else {
this.msgWarning(res.msg)
}
})
.catch((err) => {
console.log(err);
});
},
watch: {
roleFormDisabled() {
this.treeData = this.treeDisabled(this.treeData);
},
drawer(val, oldVal) {
if (val) {
this.allAuth()
this.roleForm = this.roleData;
} else {
this.loading = false;
......@@ -118,12 +94,25 @@ export default {
},
},
methods: {
//权限列表
allAuth() {
getAllAuth()
.then((res) => {
if (res.code === 200) {
this.treeData = this.treeDataInfo(res.data);
} else {
this.msgWarning(res.msg)
}
})
.catch((err) => {
console.log(err);
});
},
//关闭
handleClose() {
this.$refs["roleForm"].clearValidate();
this.$emit("handleClose", false);
},
//提交
submit() {
let formData = {};
......@@ -151,7 +140,6 @@ export default {
console.log(err);
});
},
//权限结构禁用
treeDisabled(val) {
let data = [];
......@@ -164,7 +152,7 @@ export default {
});
return data;
},
//权限结构数据整理
treeDataInfo(val) {
let data = [];
val.forEach((item) => {
......
<template>
<div class="roleConfig">
<el-form ref="selectionRoleForm" label-width="auto" style="margin: 20px">
<el-form ref="selectionRoleForm" label-width="auto" style="margin: 20px" @submit.native.prevent>
<el-row :gutter="50">
<el-col :span="6">
<el-form-item label="角色名称">
......
......@@ -2,7 +2,8 @@
<div class="userDrawer">
<el-drawer :title="drawerTitle" :visible.sync="drawer" direction="rtl" size="40%" :close-on-click-modal="false"
:wrapperClosable="false" :show-close="false">
<el-form ref="userForm" :model="userForm" label-width="auto" :rules="rules" style="margin: 10px">
<el-form ref="userForm" :model="userForm" label-width="auto" :rules="rules" style="margin: 10px"
@submit.native.prevent>
<el-row :gutter="10">
<el-col :span="12">
<el-form-item label="员工号:" prop="loginName">
......@@ -63,6 +64,7 @@
style="width: 100%" multiple clearable>
<el-option v-for="item in portNameList" :label="item.englishName" :value="item.englishName"
:key="item.id">
<Tooltips :content="item.englishName" :refName="item.code"></Tooltips>
</el-option>
</el-select>
</el-form-item>
......@@ -70,14 +72,21 @@
<el-col :span="24">
<el-form-item label="所属角色:" prop="roleIds">
<el-checkbox-group v-model="roleid" :disabled="userFormDisabled" @change="change">
<el-checkbox v-for="item in roleList" :label="item.id" :key="item.id">{{ item.name }}</el-checkbox>
<el-row>
<el-col :span="4" v-for="item in roleList" :key="item.id">
<el-checkbox :label="item.id">
{{ item.name }}
<Tooltips :content="item.englishName" :refName="item.code"></Tooltips>
</el-checkbox>
</el-col>
</el-row>
</el-checkbox-group>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注:" prop="remark">
<el-input type="textarea" v-model="userForm.remark" placeholder="备注" :disabled="userFormDisabled"
v-if="!userFormDisabled" size="small" clearable></el-input>
v-if="!userFormDisabled" size="small" clearable maxlength="255" show-word-limit></el-input>
<div v-else>{{ userForm.remark }}</div>
</el-form-item>
</el-col>
......
<template>
<div>
<el-form ref="selectionUserForm" label-width="auto" style="margin: 20px">
<el-form ref="selectionUserForm" label-width="auto" style="margin: 20px" @submit.native.prevent>
<el-row :gutter="50">
<el-col :span="6">
<el-form-item label="用户姓名">
......
<template>
<div>
<el-form ref="dmLogForm" class="form-header" :model="selectForm" label-width="auto" size="small">
<el-row type="flex" style="flex-wrap: wrap !important">
<el-col :span="6">
<el-form-item label="ACCS原航班号">
<el-input v-model.trim="fltNo" class="formItem" placeholder="请输入航班号" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="数据接收日期" prop="createTime">
<el-date-picker v-model="selectForm.createTime" class="formItem" type="date" placeholder="选择日期"
:value-format="valueFormat" clearable>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运单号">
<el-input v-model="selectForm.awbNbr" class="formItem" placeholder="请输入运单号" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="处理状态级别">
<el-select v-model="selectForm.status" class="formItem" placeholder="不限" clearable>
<el-option label="未处理" value="0"></el-option>
<el-option label="处理成功" value="1"></el-option>
<el-option label="已处理" value="2"></el-option>
<el-option label="处理失败" value="3"></el-option>
<el-option label="处理中" value="9"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="ACCS原航班日期">
<el-date-picker v-model="selectForm.fltDate" class="formItem" type="date" placeholder="选择日期"
:value-format="valueFormat" clearable>
</el-date-picker>
</el-form-item>
</el-col>
<!-- <el-col :span="6">
<el-form-item label="口岸代码">
<el-select v-model="selectForm.portName" class="formItem" placeholder="不限" clearable>
<el-option v-for="item in portList" :label="item.englishName" :value="item.englishName" :key="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="6">
<el-form-item label="回推ACCS结果">
<el-select v-model="selectForm.sendLogSendResult" class="formItem" placeholder="不限" clearable>
<el-option label="未推" value="0">
</el-option>
<el-option label="推送成功" value="1">
</el-option>
<el-option label="推送失败" value="2">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<div class="ml20" style="display: flex">
<el-button type="primary" size="small" icon="el-icon-search" :loading="loading" @click="selectDMData(0)">查询
</el-button>
</div>
</el-form>
<Tables ref="dmLogTables" ductName="logDmData" :order="true" :data="data" :headerData="tableHeader"
tableAlign="center" :showOverflowTooltip="false" :height="tableHeight" :page="selectForm.page"
:limitSize="selectForm.size" :pageSizes="[100]" :totalCount="total" :loading="loading"
@currentChange="currentChange" @sortChange="sortChange">
<template v-slot:awbNbr="scope">
<el-link type="primary" @click="gotoWeatherTable(scope.row)">
{{
scope.row.awbNbr
}}<i class="el-icon-link"></i> </el-link>
</template>
<template v-slot:flightFltNo="scope">
<el-link v-if="scope.row.allocDimId" type="primary"
@click="$router.push({ name: 'FlightAllocConfigInfo', params: { handle: 'DMdetail', id: scope.row.allocDimId } })">
{{
scope.row.flightFltNo
}}<i class="el-icon-link"></i> </el-link>
<span v-else>{{ scope.row.flightFltNo }}</span>
</template>
</Tables>
</div>
</template>
<script>
import dictLabels from "../../../assets/languages/dictLabels.js";
import { portNameList } from "@/api/system/user.js";
import { getDmDataList, getDmFlowInformation } from "@/api/system/logConfig.js";
export default {
name: "DmLog",
data() {
return {
selectForm: {
fltNo: undefined,
createTime: undefined,
page: 1,
size: 100,
},
data: [],
tableHeader: this.tableHeaders['DM'],
portList: [],
rules: {
createTime: [
{
required: true,
message: "创建日期不能为空",
trigger: "blur",
},
],
},
pickerOptions: {},
selectDate: null,
createTimes: [],
total: 0,
tableHeight: null,
loading: false,
valueFormat: "yyyy-MM-dd",
};
},
created() {
this.selectForm.createTime = this.nowDate();
this.getPort()
},
activated() {
this.selectDMData();
},
deactivated() {
this.data = [];
},
mounted() {
this.tableHeight =
window.innerHeight - this.$refs.dmLogForm.$el.offsetHeight - 130;
},
methods: {
//获取口岸
async getPort() {
portNameList().then((res) => {
if (res.code === 200) {
this.portList = res.data;
} else {
this.msgWarning('查询条件' + res.msg)
}
});
if (this.$store.state.tagsView.cachedViews.length == 0) {
this.selectDMData();
}
},
//数据查询
async selectDMData(val) {
this.data = [];
this.loading = true;
if (val === 0) {
this.selectForm.page = 1;
}
getDmDataList(this.selectForm).then((res) => {
this.loading = false;
if (res.code === 200) {
if (res.data.total === 0) {
this.msgWarning('未查询到数据')
} else {
this.data = res.data.list;
this.total = res.data.total;
}
} else {
this.msgWarning(res.msg)
}
});
},
//跳转流水
gotoWeatherTable(val) {
getDmFlowInformation('accsId=' + val.dmAccsId).then(res => {
if (res.code === 200) {
if (res.data.list.length > 0) {
this.$router.push({ name: 'weatherTable', params: { data: res.data.list } })
} else {
this.msgWarning('未查询到该条数据的流水')
}
} else {
this.msgWarning(res.msg)
}
}).catch(err => {
console.log(err)
})
},
//分页
currentChange(val) {
this.selectForm.page = val.page;
this.selectDMData();
},
//数据处理
statusData(val) {
if (dictLabels["logDmData"]["status"][val]) {
return dictLabels["logDmData"]["status"][val];
} else {
return val;
}
},
//排序
sortChange(val) {
let data = [];
let nullData = [];
this.data.forEach((item) => {
if (item[val.prop]) {
data.push(item);
} else {
nullData.push(item);
}
});
data = data.sort(this.$refs.dmLogTables.compare(val.prop, val.order));
if (val.order != "ascending") {
this.data = nullData.concat(data);
} else {
this.data = data.concat(nullData);
}
this.data.forEach((item, index = 0) => {
item.index = index;
});
},
},
computed: {
fltNo: {
get: function () {
return this.selectForm.fltNo;
},
set: function (val) {
this.selectForm.fltNo = this.upCase(val);
},
},
},
};
</script>
<style scoped>
.tags {
display: flex;
margin: 0 20px 0 auto;
color: black;
line-height: 32px;
}
.tagTip {
margin: 0 5px;
}
</style>
\ No newline at end of file
<template>
<div style="padding:10px">
<el-card header="流水信息">
<Tables ref="weatherTable" ductName="weatherTable" :order="true" :data="data" :headerData="tableHeader"
:showOverflowTooltip="false" :height="tableHeight" :page="selectData.page" :limitSize="selectData.size"
:pageSizes="[100]" :pagination="false" :loading="loading" @currentChange="currentChange">
</Tables>
<div class="ml20 mt20">
<el-button size="small" @click="close">返 回</el-button>
</div>
</el-card>
</div>
</template>
<script>
import { getDmFlowInformation } from "@/api/system/logConfig.js";
export default {
name: 'weatherTable',
data() {
return {
data: [],
tableHeader: this.tableHeaders['weatherTable'],
selectData: {
page: 1,
size: 100,
},
loading: false,
tableHeight: null
}
},
created() {
if (this.$route.params.data) {
this.data = this.$route.params.data
sessionStorage.setItem('accsid', this.data[0].accsId)
} else {
this.getWeatherTable()
}
},
activated() {
if (this.$route.params.data) {
this.data = this.$route.params.data
sessionStorage.setItem('accsid', this.data[0].accsId)
} else {
this.getWeatherTable()
}
},
methods: {
//accsid获取流水
getWeatherTable() {
this.loading = true
let accsid = ''
accsid = sessionStorage.getItem('accsid')
getDmFlowInformation('accsId=' + accsid).then(res => {
this.loading = false
if (res.code === 200) {
this.data = res.data.list
} else {
this.msgWarning(res.msg)
}
}).catch(err => {
this.loading = false
console.log(err)
})
},
//返回
close() {
this.$store.state.tagsView.visitedViews.splice(
this.$store.state.tagsView.visitedViews.findIndex(
(item) => item.path === this.$route.path
),
);
sessionStorage.removeItem('accsid')
this.$router.push({ name: 'DmLog' })
},
//翻页
currentChange(val) { },
}
}
</script>
<style>
</style>
\ No newline at end of file