jinhui.wang

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

Showing 42 changed files with 1280 additions and 601 deletions
......@@ -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
......
......@@ -7,16 +7,6 @@ let ductLabels = {
"releasing": {
"1": "正在释放"
},
"cargoAllocationDataStatus": {
"已推送": "已推送",
"不推送": "不推送",
"已配": " ",
"待推送": "待推送",
"手动配舱": ' ',
"已释放": ' ',
"原航班配舱": ' ',
"顺位配舱": ' ',
},
},
"menu": {//菜单设置
"menuType": {
......@@ -49,6 +39,7 @@ let ductLabels = {
"needRequired": {
"1": "是",
"0": "否",
"2": "未设置"
},
"highLowPriceFlg": {
"1": "开启",
......@@ -59,16 +50,71 @@ let ductLabels = {
"2": "否",
},
},
"logDmData": {//DM数据
"flightRand": {//航班顺位设置
"status": {
"0": "执行中",
"1": "有效",
"3": "停用"
}
},
"FlightAlloc": {//航班配舱设置
"status": {
"0": "无效",
"1": "有效",
"2": "配置中",
"3": "停用"
}
},
"logDmData": {//DM数据
"statusDetailCode": {
"0": "未处理",
"1": "已处理",
"2": "无需处理",
"3": "处理失败",
"4": "校验不通过",
"5": "数据不能被多次处理",
"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": "推送失败"
}
},
"weatherTable": {
"highLowPriceFlg": {
"1": "开启",
"0": "关闭"
},
"operationSource": {
"1": "pre-MD cutoff",
"2": "航班迁转手动释放",
"3": "预审不通过定时任务",
"4": "自动配舱"
},
"weightMark": {
"1": "增加",
"-1": "减少"
}
},
"preFlight": {//航班预审
"status": {
"0": "关闭",
"1": "开启"
}
}
}
......
This diff is collapsed. Click to expand it.
......@@ -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 {
......
......@@ -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
This diff is collapsed. Click to expand it.
<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)
})
......
import router from './router'
import store from './store'
import { Message } from 'element-ui'
//import NProgress from 'nprogress'
//import 'nprogress/nprogress.css'
import { getToken } from '@/utils/auth'
//NProgress.configure({ showSpinner: false })
const whiteList = ['/login', '/auth-redirect', '/bind', '/register']
router.beforeEach((to, from, next) => {
//NProgress.start()
if (getToken()) {
/* has token*/
if (to.path === '/login') {
next({ path: '/' })
//NProgress.done()
} else {
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 => {
store.dispatch('LogOut').then(() => {
Message.error(err)
next({ path: '/' })
})
store.dispatch('LogOut').then(() => {
Message.error(err)
next({ path: '/' })
})
})
} else {
next()
}
......@@ -42,11 +39,9 @@ router.beforeEach((to, from, next) => {
next()
} else {
next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
//NProgress.done()
}
}
})
router.afterEach(() => {
//NProgress.done()
})
......
......@@ -42,7 +42,7 @@ module.exports = {
/**
* logout
*/
logoutURL: 'http://47.103.140.98/test',
logoutURL: '/test/index',
/**
* 后端接口
......@@ -58,5 +58,5 @@ module.exports = {
/**
* 版本号
*/
version: 'version:1.3.0'
version: 'version:1.4.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
......
......@@ -15,15 +15,12 @@ const mutations = {
state.sidebar.opened = !state.sidebar.opened
state.sidebar.withoutAnimation = false
if (state.sidebar.opened) {
//Cookies.set('sidebarStatus', 1)
localStorage.setItem('sidebarStatus', 1)
} else {
Cookies.set('sidebarStatus', 0)
localStorage.setItem('sidebarStatus', 0)
}
},
CLOSE_SIDEBAR: (state, withoutAnimation) => {
//Cookies.set('sidebarStatus', 0)
localStorage.setItem('sidebarStatus', 0)
state.sidebar.opened = false
state.sidebar.withoutAnimation = withoutAnimation
......@@ -33,7 +30,6 @@ const mutations = {
},
SET_SIZE: (state, size) => {
state.size = size
//Cookies.set('size', size)
localStorage.setItem('size', size)
}
}
......
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,33 +65,54 @@ 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) => {
getInfo().then(res => {
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){
ports = user.portName.split(',');
commit('SET_PORTNAMES',ports)
commit('SET_ACTIVEPORTNAME', sessionStorage.getItem('portName')?sessionStorage.getItem('portName'):state.portNames[0])
}else{
Message({
message: "未找到口岸信息!请确认后再登录",
type: 'error'
})
this.login()
}
if (res.data.roles && res.data.roles.length > 0) { // 验证返回的roles是否是一个非空数组
commit('SET_ROLES', res.data.roles)
commit('SET_PERMISSIONS', res.data.permissions)
} else {
commit('SET_ROLES', ['ROLE_DEFAULT'])
if (res.code === 200) {
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) {
ports = user.portName.split(',');
commit('SET_PORTNAMES', ports)
commit('SET_ACTIVEPORTNAME', sessionStorage.getItem('portName') ? sessionStorage.getItem('portName') : state.portNames[0])
} else {
Message({
message: "未找到口岸信息!请确认后再登录",
type: 'error'
})
this.login()
}
if (res.data.roles && res.data.roles.length > 0) { // 验证返回的roles是否是一个非空数组
commit('SET_ROLES', res.data.roles)
commit('SET_PERMISSIONS', res.data.permissions)
} else {
commit('SET_ROLES', ['ROLE_DEFAULT'])
}
commit('SET_NAME', user.userName)
commit('SET_AVATAR', avatar)
resolve(res)
}
commit('SET_NAME', user.userName)
commit('SET_AVATAR', avatar)
resolve(res)
}).catch(error => {
reject(error)
})
......@@ -96,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)
})
})
......@@ -111,7 +137,6 @@ const user = {
LogOut({ commit, state }) {
return new Promise((resolve, reject) => {
logout(state.token).then(() => {
// window.location.href = "https://sso.secure.fedex.com/logout";//wsso系统跳转
commit('SET_TOKEN', '')
commit('SET_ROLES', [])
commit('SET_PERMISSIONS', [])
......@@ -126,7 +151,6 @@ const user = {
// 前端 登出
FedLogOut({ commit }) {
return new Promise(resolve => {
// window.location.href = "https://sso.secure.fedex.com/logout";//wsso系统跳转
commit('SET_TOKEN', '')
removeToken()
resolve()
......
......@@ -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;
}
......
......@@ -10,7 +10,7 @@ axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
const service = axios.create({
// axios中请求配置有baseURL选项,表示请求URL公共部分
//baseURL: process.env.VUE_APP_BASE_API,
baseURL: settings.baseURL, //阿里云服务器
baseURL: settings.baseURL,
// 超时
timeout: 30000
......@@ -61,8 +61,9 @@ service.interceptors.response.use(res => {
const msg = errorCode[code] || res.data.msg || errorCode['default']
if (code === 301) {
MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
closeOnClickModal: false,
showCancelButton: false,
confirmButtonText: '重新登录',
cancelButtonText: '取消',
type: 'warning'
}
).then(() => {
......
......@@ -6,9 +6,7 @@ const mimeMap = {
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
zip: 'application/zip'
}
// const baseUrl = 'https://imacuat.zmd.apac.fedex.com/iMAC' //uat服务器
const baseUrl = settings.downLoadURL //阿里云服务器
// const baseUrl = 'http://192.168.1.133:7001/iMAC' //测试服务器
export function downLoadZip(str, filename) {
var url = baseUrl + 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" :rows="1" placeholder="请输入运单号(回车分割)" :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,34 +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="10">
<el-input-number class="formItem wid100" size="mini" v-model="formData.minWeight" :controls="false"
:min="0" :precision="2" clearable></el-input-number>
<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 :span="1"></el-col>
<el-col class="line" :span="2">-</el-col>
<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.maxWeight" :controls="false"
<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>
......@@ -105,8 +88,7 @@
:min="0" clearable></el-input-number>
</el-col>
<el-col :span="1"></el-col>
<el-col class="line" :span="2">-</el-col>
<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>
......@@ -121,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>
......@@ -138,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>
......@@ -162,6 +172,8 @@
<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"
......@@ -208,7 +220,7 @@ export default {
customsReceiptStatusId: null,
accsPool: "OSPR"
}, //查询数据
tableHeader: this.tableHeaders['cargoAllocation'], //表头数据
tableHeader: [], //表头数据
tableData: [], //表格数据
tableSelection: [], //选中数据
selectData: {
......@@ -240,6 +252,11 @@ 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();
......@@ -290,7 +307,7 @@ export default {
.catch(() => { });
},
//查询
select(val) {
async select(val) {
this.loading = true;
this.dataInfo();
if (val === 0) {
......@@ -458,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: {
......
<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"></el-input>
</el-form-item>
......@@ -12,11 +12,11 @@
</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,39 +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" 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>
</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>
......@@ -75,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,
};
},
......@@ -89,6 +77,9 @@ export default {
this.getList();
}
},
mounted() {
this.tableHeight = window.innerHeight - this.$refs.flightAllocForm.$el.offsetHeight - 200
},
activated() {
this.getList()
},
......@@ -97,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 {
......@@ -165,6 +155,12 @@ export default {
.catch(() => { });
});
},
//翻页
currentChange(val) {
this.curPage = val.page
this.queryParams.start = val.start;
this.getList();
}
},
computed: {
purposeOfFlightNo: {
......
......@@ -11,7 +11,8 @@
</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">
......@@ -30,37 +31,28 @@
<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">
<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"
:show-close="false" :append-to-body="true">
......@@ -129,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>
......@@ -188,6 +184,8 @@ export default {
title: "",
// 总条数
total: 0,
//table高度
tableHeight: null,
// 原航班规则数据
sourceFlightRulesList: [],
//目的航班数据
......@@ -247,6 +245,9 @@ export default {
this.findSourceFlightRules();
}
},
mounted() {
this.tableHeight = window.innerHeight - this.$refs.queryForm.$el.offsetHeight - 200
},
activated() {
this.findSourceFlightRules();
},
......@@ -420,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;
......@@ -443,6 +433,12 @@ export default {
this.queryParams.start = 0;
this.findSourceFlightRules();
},
//翻页
currentChange(val) {
this.queryParams.start = val.start;
this.queryParams.pageNum = val.page;
this.findSourceFlightRules();
}
},
computed: {
sourceFlightNo: {
......
......@@ -18,28 +18,28 @@
</el-col>
<el-col :span="6">
<el-form-item label="航班号">
<el-input type="textarea" v-model="fltNo" clearable class="formItem" placeholder="AC001;AC002" rows="1">
<el-input type="textarea" v-model="fltNo" clearable class="formItem" placeholder="AC001;AC002" :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="1"></el-input>
<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="站点">
<el-input type="textarea" v-model="siteName" class="formItem" placeholder="PVG;PEK" clearable rows="1">
<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="URSA">
<el-input clearable type="textarea" v-model="ursa" class="formItem" placeholder="S_;P_;E2" rows="1">
</el-input>
<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>
......
<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,18 +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]);
......@@ -82,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) {
......
......@@ -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">
......
......@@ -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>
......@@ -168,9 +169,17 @@
<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"
<!-- <el-switch class="wid80" :disabled="true" v-model="form.isNeedRequired" :active-value="1"
:inactive-value="0" active-color="#13ce66">
</el-switch>
</el-switch> -->
<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">
......@@ -268,7 +277,9 @@ export default {
fltNo: undefined, //航班号,要大写
},
//表单参数
form: {},
form: {
isNeedRequired: 2
},
//表单校验
rules: {
fltNo: [
......@@ -306,7 +317,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: "请输入正确得航班线路"
// }
// ]
......@@ -486,15 +497,15 @@ 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;
}
// 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 &&
......@@ -789,7 +800,7 @@ export default {
},
//表单重置
reset() {
this.form = {};
this.form = { isNeedRequired: 2 };
this.resetForm("form");
},
//取消按钮
......@@ -896,6 +907,7 @@ export default {
//每页长度
sizeChange(val) {
this.queryParams.limitSize = val;
this.queryParams.pageNum = 1
this.findAllFltData();
},
setClose() {
......
......@@ -11,28 +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" filterable 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"
......@@ -43,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>
......@@ -130,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'"
......@@ -143,7 +145,7 @@
}}</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">
......@@ -151,7 +153,13 @@
<span>总件数:{{ allQty }}</span>
</div>
<div class="formShow">
<el-button class="mr20" icon="el-icon-search" size="mini" @click="formShow = !formShow" circle></el-button>
<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>
......@@ -212,7 +220,7 @@ export default {
limitStart: 1,
limitSize: 100,
}, //表单数据
tableHeader: this.tableHeaders['cargo'], //表头数据
tableHeader: [], //表头数据
releaseHeader: [
{
name: "提示信息",
......@@ -291,13 +299,18 @@ export default {
},
created() {
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.findCondition()
this.$store.state.tagsView.cachedViews.forEach(item => {
if (item === 'QueryCargo') {
this.findCondition()
this.totalCount > 0 ? this.select() : ''
}
})
......@@ -331,7 +344,7 @@ export default {
this.$refs.cargoForm.resetFields();
},
// 查询条件
findCondition() {
async findCondition() {
findConditionData().then((res) => {
if (res.code == 200) {
this.findConditionData = res.data;
......@@ -341,7 +354,7 @@ export default {
});
},
//查询
select(val) {
async select(val) {
this.tableData = [];
this.allWeight = 0;
this.allQty = 0;
......@@ -563,6 +576,17 @@ export default {
}
}
},
//设置关闭
headerSetClose(val) {
if (val == 1) {
this.tableHeader = []
this.tableData = []
this.$nextTick(() => {
this.tableHeader = this.$store.getters.tableHeader['cargo']
this.select()
})
}
}
},
computed: {
fltNo: {
......
......@@ -15,8 +15,8 @@
</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%;"
<el-form-item style="width: 100%; marginTop: 65px">
<el-button :loading="loading" size="medium" type="primary" style="width: 100%"
@click.native.prevent="handleLogin">
<span v-if="!loading">登 录</span>
<span v-else>登 录 中...</span>
......@@ -31,9 +31,6 @@
</template>
<script>
import { getCodeImg } from "@/api/login";
//import Cookies from "js-cookie";
import { encrypt, } from '@/utils/jsencrypt'
export default {
name: "Login",
......@@ -44,18 +41,18 @@ export default {
loginForm: {
username: "root",
password: "123",
rememberMe: false
rememberMe: false,
},
loginRules: {
username: [
{ required: true, trigger: "blur", message: "用户名不能为空" }
{ required: true, trigger: "blur", message: "用户名不能为空" },
],
password: [
{ required: true, trigger: "blur", message: "密码不能为空" }
]
{ required: true, trigger: "blur", message: "密码不能为空" },
],
},
loading: false,
redirect: undefined
redirect: undefined,
};
},
watch: {
......@@ -63,52 +60,59 @@ export default {
handler: function (route) {
this.redirect = route.query && route.query.redirect;
},
immediate: true
}
immediate: true,
},
},
created() {
this.getCookie();
},
methods: {
getCookie() {
const username = localStorage.getItem("username");
const password = localStorage.getItem("password");
const rememberMe = localStorage.getItem('rememberMe')
const rememberMe = localStorage.getItem("rememberMe");
this.loginForm = {
username: username === undefined ? this.loginForm.username : username,
password: password === undefined ? this.loginForm.password : password,
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
};
},
handleLogin() {
this.$refs.loginForm.validate(valid => {
this.$refs.loginForm.validate((valid) => {
if (valid) {
this.loading = true;
if (this.loginForm.rememberMe) {
localStorage.setItem("username", this.loginForm.username, { expires: 30 });
localStorage.setItem("password", this.loginForm.password, { expires: 30 });
localStorage.setItem('rememberMe', this.loginForm.rememberMe, { expires: 30 });
localStorage.setItem("username", this.loginForm.username, {
expires: 30,
});
localStorage.setItem("password", this.loginForm.password, {
expires: 30,
});
localStorage.setItem("rememberMe", this.loginForm.rememberMe, {
expires: 30,
});
} else {
localStorage.removeItem("username");
localStorage.removeItem("password");
localStorage.removeItem('rememberMe');
localStorage.removeItem("rememberMe");
}
this.$store.dispatch("Login", this.loginForm).then(res => {
this.loading = false;
if (res.code != 200) {
this.msgWarning(res.msg)
}
this.$router.push({ path: this.redirect || "/" }).catch(() => { });
}).catch(err => {
this.loading = false;
console.log(err)
});
this.$store
.dispatch("Login", this.loginForm)
.then(res => {
this.loading = false;
if (res.code != 200) {
this.msgWarning(res.msg)
}
this.$router.push({ path: this.redirect || "/" }).catch(() => { });
})
.catch(err => {
this.loading = false;
this.msgWarning(err)
});
}
});
}
}
},
},
};
</script>
......
......@@ -5,7 +5,7 @@ export default {
const { path } = params
this.$router.replace({ path: '/' + path, query })
},
render: function(h) {
render: function (h) {
return h() // avoid warning message
}
}
......
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
<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
......@@ -23,7 +23,6 @@
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";
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;
......@@ -184,7 +135,6 @@ export default {
this.loading = false;
});
},
//菜单状态改变
statusUpdate(data) {
updateStatus(data)
......@@ -201,7 +151,6 @@ export default {
console.log(err);
});
},
//菜单开启关闭
menuStatus(row) {
this.$confirm(
......@@ -221,7 +170,6 @@ export default {
})
.catch(() => { });
},
//菜单删除
removeMenu(row) {
this.$confirm("是否要删除此菜单", "提示", {
......@@ -237,7 +185,6 @@ export default {
})
.catch(() => { });
},
formatter(row, column, cellValue, index) {
if (dictLabels["menu"][column.property]) {
if (dictLabels["menu"][column.property][cellValue]) {
......
<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">新增预审航班</el-button>
<el-button type="primary" size="small" icon="el-icon-check" :disabled="selectData.length == 0"
@click="preOption(1)">
预审开启</el-button>
<el-button type="primary" size="small" icon="el-icon-close" :disabled="selectData.length == 0"
@click="preOption(0)">
预审关闭</el-button>
<el-button type="danger" icon="el-icon-delete" size="small" :disabled="selectData.length == 0"
@click="preOption(2)">删 除
</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('添加成功')
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
},
//多选
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>
......@@ -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,7 +15,7 @@
<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>
......
<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="用户姓名">
......@@ -211,7 +211,7 @@ export default {
.catch((err) => {
console.log(err);
})
.catch(() => {});
.catch(() => { });
},
//删除用户
removeUser(row) {
......@@ -233,7 +233,7 @@ export default {
.catch((err) => {
console.log(err);
})
.catch(() => {});
.catch(() => { });
},
handleClose(val) {
this.drawer = val;
......
This diff is collapsed. Click to expand it.