jinhui.wang

version:1.2.0,货物查询增加释放仓位功能,航班信息查询增加cutoff字段,bug修复

import request from '@/utils/request'
//航班预审模板下载
/**
* @param
*/
export function downLoadTemplate(template) {
return request({
url:'/caPreReviewImport/downLoadTemplate?template=' + template,
......@@ -8,6 +12,11 @@ export function downLoadTemplate(template) {
})
}
//预审回执导入
/**
* @param file 文件 *
* @param type 状态 *
*/
export function importcaPreReview(file, type){
let formData = new FormData();
formData.append("file", file);
......
import request from '@/utils/request'
// 货物查询查询条件数据
//货物查询查询条件数据
/**
* @param
*/
export function findConditionData(data) {
return request({
url: '/cargo/findConditionData',
......@@ -10,6 +13,9 @@ export function findConditionData(data) {
}
//货物查询
/**
* @param
*/
export function findCargoData(data) {
return request({
url: '/cargo/findCargoData',
......@@ -53,3 +59,12 @@ export function downloadExcel(data) {
responseType: 'blob',
})
}
//释放仓位
export function releaseCargo(data) {
return request({
url: '/cargo/releaseCargo',
method: 'post',
data: data,
})
}
\ No newline at end of file
......
......@@ -27,11 +27,13 @@ export function findFltById(data) {
})
}
//删除航班
/**
* @param data id List *
*/
export function delFlight(data) {
return request({
url: '/FlightPreserveController/delFlight/'+ data,
url: '/FlightPreserveController/delFlight/' + data,
method: 'post'
})
}
//新增修改
......@@ -54,10 +56,19 @@ export function findFltCommonConf(data) {
})
}
export function updateStatusBatch(data){
export function updateStatusBatch(data) {
return request({
url: '/FlightPreserveController/updateStatusBatch',
method: 'post',
data: data
})
}
//自动推送开关
export function updateAutoPushBatch(data) {
return request({
url: '/FlightPreserveController/updateAutoPushBatch',
method: 'post',
data: data
})
}
......
import request from '@/utils/request'
// DM数据查询
/**
* @param createTime 创建时间 *
* @param fltNo 航班号
* @param fltDate 航班日期
* @param status 状态
* @param portName 口岸名称
* @param page 页数 *
* @param size 数据长度
*/
export function getDmDataList(data) {
return request({
url: '/dmDataLog/getDmDataList',
method: 'post',
data: data
})
}
\ No newline at end of file
......@@ -93,6 +93,13 @@ import { praseStrEmpty } from "@/utils/FedEx";
// }
// 查询用户列表
/**
* @param page 页码 *
* @param size 数据长度 *
* @param isValid 用户状态
* @param username 用户名
* @param phone 手机号码
*/
export function listUser(data) {
return request({
url: '/sysUser/getUserList',
......@@ -102,6 +109,9 @@ export function listUser(data) {
}
// 查询用户详细
/**
* @param id 用户id *
*/
export function detailUser(userId) {
return request({
url: '/sysUser/detailUser?id=' + praseStrEmpty(userId),
......@@ -110,6 +120,15 @@ export function detailUser(userId) {
}
// 新增用户
/**
* @param loginName 员工号 *
* @param username 用户姓名 *
* @param phone 手机号
* @param email 电子邮箱
* @param portName 所属口岸 *
* @param roleIds 所属角色 *
* @param remark 备注
*/
export function addOrUpdateUser(data) {
return request({
url: '/sysUser/addOrUpdateUser',
......@@ -119,6 +138,16 @@ export function addOrUpdateUser(data) {
}
// 修改用户状态
/**
* @param id 用户id *
* @param loginName 员工号 *
* @param username 用户姓名 *
* @param phone 手机号
* @param email 电子邮箱
* @param portName 所属口岸 *
* @param roleIds 所属角色 *
* @param remark 备注
*/
export function updateUserStatus(data) {
return request({
url: '/sysUser/updateUserStatus',
......@@ -128,6 +157,9 @@ export function updateUserStatus(data) {
}
//菜单信息
/**
* @param
*/
export function getAllAuth() {
return request({
url: '/sysMenu/getAllAuth',
......@@ -136,6 +168,10 @@ export function getAllAuth() {
}
//菜单开启关闭
/**
* @param id 菜单id *
* @param status 菜单状态 *
*/
export function updateStatus(data) {
return request({
url: '/sysMenu/updateStatus',
......@@ -145,6 +181,14 @@ export function updateStatus(data) {
}
//角色列表
/**
* @param name 角色名称
* @param size 数据长度 *
* @param page 页码 *
* @param createStart 创建开始时间
* @param createEnd 创建结束时间
* @param valid 角色状态
*/
export function getRoleList(data) {
return request({
url: '/role/getRoleList',
......@@ -154,6 +198,9 @@ export function getRoleList(data) {
}
//角色详情
/**
* @param id 角色id *
*/
export function detailRole(id) {
return request({
url: '/role/detailRole?id=' + id,
......@@ -162,6 +209,13 @@ export function detailRole(id) {
}
//新增修改角色
/**
* @param id 角色id *
* @param name 角色名 *
* @param remark 角色描述
* @param menuIds 角色权限
* @param valid 角色状态
*/
export function addOrUpdateRole(data) {
return request({
url: '/role/addOrUpdateRole',
......@@ -171,6 +225,10 @@ export function addOrUpdateRole(data) {
}
//角色状态修改
/**
* @param id 角色id *
* @param valid 角色状态 *
*/
export function updateRoleStatus(data) {
return request({
url: '/role/updateRoleStatus',
......@@ -180,6 +238,9 @@ export function updateRoleStatus(data) {
}
//口岸列表
/**
* @param
*/
export function portNameList() {
return request({
url: '/dictionary/port',
......@@ -188,6 +249,9 @@ export function portNameList() {
}
//口岸变更
/**
* @param
*/
export function changeCurrentPort(data) {
return request({
url: '/sysUser/changeCurrentPort',
......
let ductLabels = {
"cargoRulesStatus": {
"1": "手动",
"2": "自动"
"cargo": {//货物查询
"cargoRulesStatus": {
"1": "手动",
"2": "自动"
},
"releasing": {
"1": "正在释放"
},
"cargoAllocationDataStatus": {
"已推送": "已推送",
"不推送": "不推送",
"已配": " ",
"待推送": "待推送",
"手动配舱": ' ',
"已释放": ' ',
"原航班配舱": ' ',
"顺位配舱": ' ',
},
},
"menuType": {
"M": "菜单",
"C": "菜单",
"B": "按钮"
"menu": {//菜单设置
"menuType": {
"M": "菜单",
"C": "菜单",
"B": "按钮"
},
"status": {
"1": "启用",
"2": "停用",
},
},
"status": {
"1": "启用",
"2": "停用",
"role": {//角色设置
"valid": {
"1": "启用",
"2": "关闭",
},
},
"valid": {
"1": "启用",
"2": "关闭",
"user": {//用户设置
"isValid": {
"1": "启用",
"2": "关闭",
},
},
"isValid": {
"1": "启用",
"2": "关闭",
"FlightInformation": {//航班信息维护
"ticketToPiece": {
"1": "是",
"0": "否",
},
"needRequired": {
"1": "是",
"0": "否",
},
"highLowPriceFlg": {
"1": "开启",
"0": "未开启",
},
"pushDateSwitch": {
"1": "是",
"2": "否",
},
},
"ticketToPiece": {
"1": "是",
"0": "否",
},
"needRequired": {
"1": "是",
"0": "否",
},
"highLowPriceFlg": {
"1": "启用",
"0": "未开启",
"logDmData": {//DM数据
"status": {
"0": "未处理",
"1": "已处理",
"2": "无需处理",
"3": "处理失败",
"4": "校验不通过",
"5": "数据不能被多次处理",
"9": "处理中",
},
}
}
export default ductLabels;
\ No newline at end of file
......
......@@ -4,241 +4,276 @@
*/
/** 基础通用 **/
.pt5 {
padding-top: 5px;
}
.pr5 {
padding-right: 5px;
}
.pb5 {
padding-bottom: 5px;
}
.mt5 {
margin-top: 5px;
}
.mr5 {
margin-right: 5px;
}
.mb5 {
margin-bottom: 5px;
}
.mb8 {
margin-bottom: 8px;
}
.ml5 {
margin-left: 5px;
}
.mt10 {
margin-top: 10px;
}
.mr10 {
margin-right: 10px;
}
.mb10 {
margin-bottom: 10px;
}
.ml0 {
margin-left: 10px;
}
.mt20 {
margin-top: 20px;
}
.mr20 {
margin-right: 20px;
}
.mb20 {
margin-bottom: 20px;
}
.m20 {
margin-left: 20px;
}
.el-dialog:not(.is-fullscreen){
margin-top: 6vh !important;
}
.el-table {
.el-table__header-wrapper, .el-table__fixed-header-wrapper {
th {
word-break: break-word;
background-color: #f8f8f9;
color: #515a6e;
height: 40px;
font-size: 13px;
}
}
.el-table__body-wrapper {
.el-button [class*="el-icon-"] + span {
margin-left: 1px;
}
}
}
/** 表单布局 **/
.form-header {
font-size:15px;
color:#6379bb;
border-bottom:1px solid #ddd;
margin:8px 10px 25px 10px;
padding-top:15px;
padding-bottom:5px;
.formItem {
width: 100%;
// max-width: 310px;
}
}
/** 表格布局 **/
.pagination-container {
position: relative;
height: 25px;
margin-bottom: 10px;
margin-top: 15px;
padding: 10px 20px !important;
}
/* tree border */
.tree-border {
margin-top: 5px;
border: 1px solid #e5e6e7;
background: #FFFFFF none;
border-radius:4px;
}
.pagination-container .el-pagination {
right: 0;
position: absolute;
}
.el-table .fixed-width .el-button--mini {
padding-left: 0;
padding-right: 0;
width: inherit;
}
.el-tree-node__content > .el-checkbox {
margin-right: 8px;
}
.list-group-striped > .list-group-item {
border-left: 0;
border-right: 0;
border-radius: 0;
padding-left: 0;
padding-right: 0;
}
.list-group {
padding-left: 0px;
list-style: none;
}
.list-group-item {
border-bottom: 1px solid #e7eaec;
border-top: 1px solid #e7eaec;
margin-bottom: -1px;
padding: 11px 0px;
font-size: 13px;
}
.pull-right {
float: right !important;
}
.el-card__header {
padding: 14px 15px 7px;
min-height: 40px;
}
.el-card__body {
padding: 15px 20px 20px 20px;
}
.card-box {
padding-right: 15px;
padding-left: 15px;
margin-bottom: 10px;
}
/* button color */
.el-button--cyan.is-active,
.el-button--cyan:active {
background: #20B2AA;
border-color: #20B2AA;
color: #FFFFFF;
}
.el-button--cyan:focus,
.el-button--cyan:hover {
background: #48D1CC;
border-color: #48D1CC;
color: #FFFFFF;
}
.el-button--cyan {
background-color: #20B2AA;
border-color: #20B2AA;
color: #FFFFFF;
}
/* text color */
.text-navy {
color: #1ab394;
}
.text-primary {
color: inherit;
}
.text-success {
color: #1c84c6;
}
.text-info {
color: #23c6c8;
}
.text-warning {
color: #f8ac59;
}
.text-danger {
color: #ed5565;
}
.text-muted {
color: #888888;
}
/* image */
.img-circle {
border-radius: 50%;
}
.img-lg {
width: 120px;
height: 120px;
}
.avatar-upload-preview {
position: absolute;
top: 50%;
transform: translate(50%, -50%);
width: 200px;
height: 200px;
border-radius: 50%;
box-shadow: 0 0 4px #ccc;
overflow: hidden;
}
/* 拖拽列样式 */
.sortable-ghost{
opacity: .8;
color: #fff!important;
background: #42b983!important;
}
.top-right-btn {
position: relative;
float: right;
}
.wid100 {
width: 100% !important;
}
.wid90 {
width: 90% !important;
}
.wid80 {
width: 80% !important;
}
.pt5 {
padding-top: 5px;
}
.pr5 {
padding-right: 5px;
}
.pb5 {
padding-bottom: 5px;
}
.mt5 {
margin-top: 5px;
}
.mr5 {
margin-right: 5px;
}
.mb5 {
margin-bottom: 5px;
}
.mb8 {
margin-bottom: 8px;
}
.ml5 {
margin-left: 5px;
}
.mt10 {
margin-top: 10px;
}
.mr10 {
margin-right: 10px;
}
.mb10 {
margin-bottom: 10px;
}
.ml0 {
margin-left: 10px;
}
.mt20 {
margin-top: 20px;
}
.mr20 {
margin-right: 20px;
}
.mb20 {
margin-bottom: 20px;
}
.m20 {
margin-left: 20px;
}
.el-dialog:not(.is-fullscreen) {
margin-top: 6vh !important;
}
.el-table {
.el-table__header-wrapper,
.el-table__fixed-header-wrapper {
th {
word-break: break-word;
background-color: #f8f8f9;
color: #515a6e;
height: 40px;
font-size: 13px;
}
}
.el-table__body-wrapper {
.el-button [class*="el-icon-"]+span {
margin-left: 1px;
}
}
}
/** 表单布局 **/
.form-header {
font-size: 15px;
color: #6379bb;
border-bottom: 1px solid #ddd;
margin: 8px 10px 25px 10px;
padding-top: 15px;
padding-bottom: 5px;
.formItem {
width: 90%;
// max-width: 300px;
}
}
/** 表格布局 **/
.pagination-container {
position: relative;
height: 25px;
margin-bottom: 10px;
margin-top: 15px;
padding: 10px 20px !important;
}
/* tree border */
.tree-border {
margin-top: 5px;
border: 1px solid #e5e6e7;
background: #FFFFFF none;
border-radius: 4px;
}
.pagination-container .el-pagination {
right: 0;
position: absolute;
}
.el-table .fixed-width .el-button--mini {
padding-left: 0;
padding-right: 0;
width: inherit;
}
.el-tree-node__content>.el-checkbox {
margin-right: 8px;
}
.list-group-striped>.list-group-item {
border-left: 0;
border-right: 0;
border-radius: 0;
padding-left: 0;
padding-right: 0;
}
.list-group {
padding-left: 0px;
list-style: none;
}
.list-group-item {
border-bottom: 1px solid #e7eaec;
border-top: 1px solid #e7eaec;
margin-bottom: -1px;
padding: 11px 0px;
font-size: 13px;
}
.pull-right {
float: right !important;
}
.el-card__header {
padding: 14px 15px 7px;
min-height: 40px;
}
.el-card__body {
padding: 15px 20px 20px 20px;
}
.card-box {
padding-right: 15px;
padding-left: 15px;
margin-bottom: 10px;
}
/* button color */
.el-button--cyan.is-active,
.el-button--cyan:active {
background: #20B2AA;
border-color: #20B2AA;
color: #FFFFFF;
}
.el-button--cyan:focus,
.el-button--cyan:hover {
background: #48D1CC;
border-color: #48D1CC;
color: #FFFFFF;
}
.el-button--cyan {
background-color: #20B2AA;
border-color: #20B2AA;
color: #FFFFFF;
}
/* text color */
.text-navy {
color: #1ab394;
}
.text-primary {
color: inherit;
}
.text-success {
color: #1c84c6;
}
.text-info {
color: #23c6c8;
}
.text-warning {
color: #f8ac59;
}
.text-danger {
color: #ed5565;
}
.text-muted {
color: #888888;
}
/* image */
.img-circle {
border-radius: 50%;
}
.img-lg {
width: 120px;
height: 120px;
}
.avatar-upload-preview {
position: absolute;
top: 50%;
transform: translate(50%, -50%);
width: 200px;
height: 200px;
border-radius: 50%;
box-shadow: 0 0 4px #ccc;
overflow: hidden;
}
/* 拖拽列样式 */
.sortable-ghost {
opacity: .8;
color: #fff !important;
background: #42b983 !important;
}
.top-right-btn {
position: relative;
float: right;
}
.dialogColumn .el-tooltip {
white-space: pre-line !important;
}
\ No newline at end of file
......
......@@ -189,3 +189,51 @@ aside {
.multiselect--active {
z-index: 1000 !important;
}
.el-table__body-wrapper {
&::-webkit-scrollbar {
height: 10px;
width: 10px;
}
&::-webkit-scrollbar-track {
background-color: #fff;
}
&::-webkit-scrollbar-thumb {
background-color: #ccc;
}
&::-webkit-scrollbar-thumb:hover {
background-color: #409eff;
}
}
// 解决表格固定列问题
.el-table__fixed,
.el-table__fixed-right {
height: calc(100% - 7px) !important;
box-shadow: -5px -2px 10px rgba(0, 0, 0, .12) !important;
.el-table__fixed-body-wrapper {
height: calc(100% - 36px) !important;
}
}
// 当表格没有滚动条时
.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right {
height: 100% !important;
bottom: 0 !important;
box-shadow: none !important;
}
// 当表格有纵向滚动条时
.el-table--scrollable-y .el-table__fixed-right {
right: 7px !important;
}
// 当表格只有横向滚动条,没有纵向滚动条时
.el-table--scrollable-x:not(.el-table--scrollable-y) .el-table__fixed-right {
right: 0 !important;
}
\ No newline at end of file
......
<template>
<div class="w-table" :class="{ 'w-table_moving': dragState.dragging }">
<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"
@sort-change="sortChange"
@select="tableSelect"
@select-all="tableSelectAll"
@select-change="SelectChange"
>
<el-table-column
v-for="(item, index) in newHeader"
:type="item.type"
:prop="item.value"
:label="item.name"
:width="item.width"
:align="item.align"
:fixed="item.fixed"
:column-key="index.toString()"
:show-overflow-tooltip="showOverflowTooltip"
:sortable="item.sorTable"
:formatter="formatter"
header-align="center"
:sort-orders="['descending', 'ascending', null]"
:slotHeader="slotHeader"
:render-header="renderHeader"
:key="index"
v-if="item.disabled"
>
<!-- <template slot-scope="scope">
<exSlot
v-if="item.render"
:render="item.render"
:row="scope.row"
:index="scope.$index"
:column="item"
></exSlot>
<span v-else>{{ scope.row[item.value] || "" }}</span>
</template> -->
</el-table-column>
<slot></slot>
<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">
<!-- 复选框 -->
<el-table-column v-if="selection" type="selection" :fixed="true" width="50" align="center"></el-table-column>
<!-- 序号 -->
<el-table-column type="index" width="50" align="center"></el-table-column>
<template v-for="(item, index) in newHeader">
<!-- 自定义插槽 -->
<el-table-column v-if="item.slot" :prop="item.value" :label="item.name" :width="item.width" :align="item.align"
:fixed="item.fixed" :show-overflow-tooltip="showOverflowTooltip" :sortable="item.sorTable"
:formatter="formatter" header-align="center" :sort-orders="['descending', 'ascending', null]"
:slotHeader="slotHeader" :render-header="renderHeader" :key="index">
<template slot-scope="scope">
<slot :name="item.value" :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" :sortable="item.sorTable" :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>
</template>
<!-- 末端插槽 -->
<slot name="optionColumn"></slot>
</el-table>
<el-pagination
:total="totalCount"
:page-size.sync="limitSize"
:current-page.sync="pageNum"
background
layout="prev, pager, next, jumper, ->, sizes, total"
class="tablePagination"
@size-change="sizeChange"
@next-click="nextClick"
@prev-click="prevClick"
@current-change="currentChange"
>
<!-- 分页 -->
<el-pagination :total="totalCount" :page-size.sync="limitSize" :current-page.sync="pageNum" :page-sizes="pageSizes"
background layout="prev, pager, next, jumper, ->, sizes, total" class="tablePagination" @size-change="sizeChange"
@next-click="nextClick" @prev-click="prevClick" @current-change="currentChange">
</el-pagination>
<div class="tableInfo" v-if="infoShow">
<ul class="tableList" v-show="show">
<el-checkbox-group v-model="checkDisabled">
<li
class="flexList"
v-for="(item, index) in newHeader"
:key="index"
v-if="!item.type"
:title="item.name"
>
<div>
<el-checkbox
:label="item.name"
@change="newHeader[index].disabled = !item.disabled"
>{{ item.name }}</el-checkbox
>
</div>
</li>
</el-checkbox-group>
</ul>
<el-button
type="primary"
icon="el-icon-edit"
size="medium"
circle
@click="show = !show"
></el-button>
</div>
</div>
</template>
<script>
let exSlot = {
fucntional: true,
props: {
row: Object,
render: Function,
index: [Number, String],
column: {
type: Object,
default: null,
},
},
render: (h, data) => {
console.log(data);
if (data) {
const params = {
row: data.props.row,
index: data.props.index,
};
if (data.props.column) params.column = data.props.column;
return data.props.render(h, params);
}
},
};
import dictLabels from "../../assets/languages/dictLabels.js";
import { scrollTo } from "@/utils/scroll-to";
export default {
name: "Table",
components: {
exSlot,
},
props: {
//dom名称
tableName: { type: String, default: "tables" },
//表格数据
ductName: { type: String, default: null },
data: {
type: Array,
default() {
......@@ -158,9 +73,13 @@ export default {
default: "mini",
},
height: {
type: [String,Number],
type: [String, Number],
default: "400",
},
selection: {
type: Boolean,
default: false,
},
fit: {
type: Boolean,
default: true,
......@@ -207,10 +126,10 @@ export default {
type: Number,
default: 1,
},
// pageSizes:{
// type:Array,
// default:[10, 20, 30, 40, 50, 100]
// },
pageSizes: {
type: Array,
default: [10, 20, 30, 40, 50, 100],
},
//每页长度
limitSize: {
type: Number,
......@@ -242,10 +161,6 @@ export default {
type: Boolean,
default: false,
},
infoShow:{
type:Boolean,
default:false,
}
},
inheritAttrs: false,
data() {
......@@ -264,7 +179,6 @@ export default {
},
//表头数据格式
// {
// type: "",
// name: "",
// value: "",
// width: "",
......@@ -288,17 +202,18 @@ export default {
this.data.forEach((item, index) => {
item.index = index;
});
this.$nextTick(()=>{
this.$refs.tables.doLayout()
})
this.$nextTick(() => {
this.$refs.tables.doLayout();
});
},
headerData(val, oldVal) {
this.newHeader = val;
},
},
methods: {
sizeChange(val){
this.$emit("sizeChange",val)
//数据长度切换
sizeChange(val) {
this.$emit("sizeChange", val);
},
//下一页
nextClick() {
......@@ -413,108 +328,37 @@ export default {
"div",
{
class: ["thead-cell"],
// on: {
// mousedown: ($event) => {
// this.handleMouseDown($event, column);
// },
// mousemove: ($event) => {
// this.handleMouseMove($event, column);
// },
// },
},
[
// 添加 <a> 用于显示表头 label
createElement("a", column.label),
// 添加一个空标签用于显示拖动动画
createElement("span", {
class: ["virtual"],
}),
createElement("div", column.label),
]
);
},
// 按下鼠标开始拖动
// handleMouseDown(e, column) {
// this.dragState.dragging = true;
// this.dragState.start = parseInt(column.columnKey);
// // 给拖动时的虚拟容器添加宽高
// let table = document.getElementsByClassName("w-table")[0];
// let virtual = document.getElementsByClassName("virtual");
// for (let item of virtual) {
// item.style.height = table.clientHeight - 1 + "px";
// item.style.width = item.parentElement.parentElement.clientWidth + "px";
// }
// document.addEventListener("mouseup", this.handleMouseUp);
// },
// 鼠标放开结束拖动
// handleMouseUp() {
// this.dragColumn(this.dragState);
// // 初始化拖动状态
// this.dragState = {
// start: -9,
// end: -9,
// dragging: false,
// direction: undefined,
// };
// document.removeEventListener("mouseup", this.handleMouseUp);
// },
// 拖动中
// handleMouseMove(e, column) {
// if (this.dragState.dragging) {
// let index = parseInt(column.columnKey); // 记录起始列
// if (index - this.dragState.start !== 0) {
// this.dragState.direction =
// index - this.dragState.start < 0 ? "left" : "right"; // 判断拖动方向
// this.dragState.end = parseInt(column.columnKey);
// } else {
// this.dragState.direction = undefined;
// }
// } else {
// return false;
// }
// },
// 拖动易位
// dragColumn({ start, end, direction }) {
// let tempData = [];
// let left = direction === "left";
// let min = left ? end : start - 1;
// let max = left ? start + 1 : end;
// for (let i = 0; i < this.newHeader.length; i++) {
// if (i === end) {
// tempData.push(this.newHeader[start]);
// } else if (i > min && i < max) {
// tempData.push(this.newHeader[left ? i - 1 : i + 1]);
// } else {
// tempData.push(this.newHeader[i]);
// }
// }
// this.newHeader = tempData;
// },
// 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` : "";
// },
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[column.property]) {
if (dictLabels[column.property][cellValue]) {
return dictLabels[column.property][cellValue];
if (dictLabels[this.ductName][column.property]) {
if (dictLabels[this.ductName][column.property][cellValue]) {
return dictLabels[this.ductName][column.property][cellValue];
}
}
if (column.property == "roleNames") {
return cellValue.toString();
}
if (column.property == 'flightIdImac') {
return cellValue == null ? '未配' : '已配'
}
return cellValue;
},
},
......@@ -526,36 +370,18 @@ export default {
margin-top: 40px;
text-align: right;
}
.w-table {
height:100%;
 .el-table .darg_start {
height: 100%;
.el-table .darg_start {
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;
}
&.darg_active_left {
.virtual {
border-left: 2px dotted #666;
z-index: 99;
}
}
&.darg_active_right {
.virtual {
border-right: 2px dotted #666;
z-index: 99;
}
}
}
.thead-cell {
padding: 0;
display: inline-flex;
......@@ -563,6 +389,7 @@ export default {
align-items: left;
cursor: pointer;
overflow: initial;
&:before {
content: "";
position: absolute;
......@@ -572,21 +399,25 @@ export default {
right: 0;
}
}
&.w-table_moving {
.el-table th .thead-cell {
cursor: move !important;
}
.el-table__fixed {
cursor: not-allowed;
}
}
}
.tableInfo {
position: fixed;
right: 30px;
bottom: 100px;
z-index: 99999999;
}
.tableList {
width: 200px;
max-height: 500px;
......@@ -600,20 +431,24 @@ export default {
background: #fff;
overflow-y: scroll;
}
.tableList::-webkit-scrollbar {
width: 4px;
height: 4px;
}
.tableList::-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);
}
.tableList::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 0;
background: rgba(0, 0, 0, 0.2);
}
.flexList {
width: 100%;
display: flex;
......
<template>
<div class="navbar">
<hamburger
id="hamburger-container"
:is-active="sidebar.opened"
class="hamburger-container"
@toggleClick="toggleSideBar"
/>
<breadcrumb
id="breadcrumb-container"
class="breadcrumb-container"
v-if="!topNav"
/>
<hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container"
@toggleClick="toggleSideBar" />
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!topNav" />
<top-nav id="topmenu-container" class="topmenu-container" v-if="topNav" />
<div class="right-menu">
<template v-if="device !== 'mobile'"> </template>
<el-select
v-model="portName"
size="mini"
style="width: 120px; top: -17px; right: 7px"
placeholder="选择口岸"
>
<el-option
v-for="item in portNameList"
:label="item"
:value="item"
:key="item"
>
<el-select v-model="portName" size="mini" style="width: 120px; top: -17px; right: 7px" placeholder="选择口岸">
<el-option v-for="item in portNameList" :label="item" :value="item" :key="item">
</el-option>
</el-select>
<el-dropdown
class="avatar-container right-menu-item hover-effect"
trigger="click"
>
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
<div class="userName-wrapper">
<!-- <img :src="avatar" class="user-avatar" /> -->
<span><i class="el-icon-user-solid" style="color:#1890ff"></i>欢迎!{{userName}}</span>
<span><i class="el-icon-user-solid" style="color:#1890ff"></i>欢迎!{{ userName }}</span>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="logout">
......@@ -57,11 +36,12 @@
</template>
<script>
import { mapGetters } from "vuex";
import Breadcrumb from "@/components/Breadcrumb";
import TopNav from "@/components/TopNav";
import Hamburger from "@/components/Hamburger";
import { mapGetters } from "vuex"
import Breadcrumb from "@/components/Breadcrumb"
import TopNav from "@/components/TopNav"
import Hamburger from "@/components/Hamburger"
import { removeToken } from '@/utils/auth'
import settings from "@/settings"
export default {
components: {
......@@ -71,7 +51,7 @@ export default {
},
data() {
return {
userName:"",
userName: "",
portNameList: [],
locale: "zh",
};
......@@ -111,20 +91,20 @@ export default {
this.$store.dispatch('tagsView/delAllCachedViews')
this.$store.dispatch('tagsView/delAllVisitedViews')
// location.reload();
if(this.$route.path != '/index'){
if (this.$route.path != '/index') {
this.$router.push('/index')
}
} else {
this.$confirm(res.msg, "提示", {
type: "warning",
}).then(()=>{
}).then(() => {
// location.reload();
if(this.$route.path != '/index'){
if (this.$route.path != '/index') {
this.$router.push('/index')
}
}).catch(()=>{
}).catch(() => {
// location.reload();
if(this.$route.path != '/index'){
if (this.$route.path != '/index') {
this.$router.push('/index')
}
});
......@@ -148,7 +128,7 @@ export default {
}).then(() => {
this.$store.dispatch("LogOut").then(() => {
removeToken()
window.location.href = "https://test-myapps.secure.fedex.com/purpleid/signout/";//wsso系统跳转
window.location.href = settings.logoutURL;//wsso系统跳转
});
});
},
......@@ -225,16 +205,19 @@ export default {
text-align: center;
margin-right: 15px;
font-weight: 700;
i{
i {
display: inline-block;
height: 50px;
margin-right:5px;
margin-right: 5px;
font-size: 24px;
line-height: 50px;
}
.userName-wrapper {
position: relative;
font-size:14px;
font-size: 14px;
.user-avatar {
cursor: pointer;
width: 40px;
......
......@@ -2,6 +2,7 @@ import router from './router'
import store from './store'
import { Message } from 'element-ui'
import { getToken, setToken, removeToken } from '@/utils/auth'
import settings from "@/settings"
const whiteList = ['/login', '/auth-redirect', '/bind', '/register']
......@@ -24,7 +25,7 @@ router.beforeEach((to, from, next) => {
Message.error(err)
store.dispatch('LogOut').then(() => {
// next({ path: '/' })
window.location.href = "https://test-myapps.secure.fedex.com/purpleid/signout/";//wsso系统跳转
window.location.href = settings.logoutURL;//wsso系统跳转
})
})
} else {
......@@ -44,7 +45,7 @@ router.beforeEach((to, from, next) => {
// 在免登录白名单,直接进入
next()
} else {
window.location.href = "https://test-myapps.secure.fedex.com/purpleid/signout/";//wsso系统跳转
window.location.href = settings.logoutURL;//wsso系统跳转
}
}
......
import Vue from 'vue'
import Router from 'vue-router'
import settings from "@/settings"
Vue.use(Router)
......@@ -92,5 +93,5 @@ export default new Router({
mode: 'history', // 去掉url中的#
scrollBehavior: () => ({ y: 0 }),
routes: constantRoutes,
base: '/imacuat'
base: settings.routerBase
})
\ No newline at end of file
......
......@@ -39,8 +39,24 @@ module.exports = {
*/
errorLog: 'production',
/**
/**
* logout
*/
logoutURL: 'https://test-myapps.secure.fedex.com/purpleid/signout/',
/**
* 后端接口
*/
baseURL: `https://imacuat.zmd.apac.fedex.com/iMAC`,
downLoadURL: `https://imacuat.zmd.apac.fedex.com/iMAC`,//下载、导出地址
/**
* 项目存放地址
*/
routerBase: '/imacuat',
/**
* 版本号
*/
version:'version:1.1.0'
version: 'version:1.3.0'
}
......
//import Cookies from 'js-cookie'
const TokenKey = 'Admin-Token'
const TokenKey = 'iMac-Token'
export function getToken() {
//return Cookies.get(TokenKey)
......
import axios from 'axios'
import { Message,MessageBox } from 'element-ui'
import { Message, MessageBox } from 'element-ui'
import store from '@/store'
import { getToken,setToken } from '@/utils/auth'
import { getToken, setToken } from '@/utils/auth'
import errorCode from '@/utils/errorCode'
import settings from "@/settings"
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
// 创建axios实例
const service = axios.create({
// axios中请求配置有baseURL选项,表示请求URL公共部分
//baseURL: process.env.VUE_APP_BASE_API,
// baseURL: `http://47.103.140.98:7001/iMAC`,
baseURL: 'https://imacuat.zmd.apac.fedex.com/iMAC',
// baseURL: 'http://192.168.1.133:7001/iMAC',
// baseURL: 'http://192.168.1.133:7001/iMAC',//生产
baseURL: settings.baseURL,
// 超时
timeout: 30000,
......@@ -54,7 +51,7 @@ service.interceptors.request.use(config => {
// 响应拦截器
service.interceptors.response.use(res => {
if(res.headers['token']){
if (res.headers['token']) {
setToken(decodeURIComponent(res.headers['token']))
}
// 未设置状态码则默认成功状态
......@@ -69,8 +66,7 @@ service.interceptors.response.use(res => {
).then(() => {
store.dispatch('LogOut').then(() => {
// location.href = '/';
window.location.href = "https://test-myapps.secure.fedex.com/purpleid/signout/";//wsso系统跳转
// testsso.ute.apac.fedex.com/iMAC
window.location.href = settings.logoutURL;//wsso系统跳转
})
});
} else if (code === 403) {
......@@ -83,7 +79,7 @@ service.interceptors.response.use(res => {
type: 'error'
})
return Promise.reject(new Error(msg))
} else if (code !== 200 && code !== 201 && code !== 202 && code !== 603) {
} else if (code !== 200 && code !== 201 && code !== 202 && code !== 603) {
Message({
message: msg,
type: 'error'
......
import axios from 'axios'
import { getToken } from '@/utils/auth'
import settings from "@/settings"
const mimeMap = {
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
zip: 'application/zip'
}
const baseUrl = 'https://imacuat.zmd.apac.fedex.com/iMAC' //uat服务器
// const baseUrl = 'http://47.103.140.98:7001/iMAC' //阿里云服务器
// const baseUrl = 'http://192.168.1.133:7001/iMAC' //测试服务器
// const baseUrl = 'http://192.168.1.133:7001/iMAC' //生产
const baseUrl = settings.downLoadURL //uat服务器
export function downLoadZip(str, filename) {
var url = baseUrl + str
......@@ -27,7 +25,7 @@ export function downLoadZip(str, filename) {
* @param {*} res blob响应内容
* @param {String} mimeType MIME类型
*/
export function resolveBlob(res, mimeType) {
export function resolveBlob(res, mimeType) {
const aLink = document.createElement('a')
var blob = new Blob([res], { type: mimeType })
// //从response的headers中获取filename, 后端response.setHeader("Content-disposition", "attachment; filename=xxxx.docx") 设置的文件名;
......@@ -44,33 +42,33 @@ export function downLoadZip(str, filename) {
}
// excel导出请求
export function downLoadXlsx(str, data,fileName) {
export function downLoadXlsx(str, data, fileName) {
var url = baseUrl + str
return new Promise((resolve,reject)=>{
return new Promise((resolve, reject) => {
axios({
method: 'post',
url: url,
data: data,
timeout:500000,
timeout: 500000,
responseType: 'blob',
headers: { 'Authorization': decodeURIComponent(getToken()) }
// headers: { 'Authorization': decodeURIComponent(getToken()) }
//uat环境token需要做url解码处理
}).then(res => {
if (res.status === 200) {
downLoadExcal(res,fileName)
downLoadExcal(res, fileName)
}
resolve(res)
}).catch((err)=>{
}).catch((err) => {
reject(err)
})
})
}
//excel导出下载
export function downLoadExcal(val,filename) {
export function downLoadExcal(val, filename) {
const aLink = document.createElement('a')
const fileName = filename+".xlsx"
const fileName = filename + ".xlsx"
aLink.href = URL.createObjectURL(val.data)
aLink.setAttribute('download', fileName) // 设置下载文件名称
document.body.appendChild(aLink)
......@@ -81,7 +79,7 @@ export function downLoadExcal(val,filename) {
//航班预审导出
export function cargoXlsxPre(str, data) {
var url = baseUrl + str
return new Promise((resolve,reject)=>{
return new Promise((resolve, reject) => {
axios({
method: 'post',
url: url,
......@@ -93,7 +91,7 @@ export function cargoXlsxPre(str, data) {
cargoTableXlsxPre(res)
}
resolve()
}).catch((err)=>{
}).catch((err) => {
reject(err)
})
})
......@@ -101,11 +99,11 @@ export function cargoXlsxPre(str, data) {
//航班预审导出
export function cargoTableXlsxPre(val) {
const aLink = document.createElement('a')
const fileName = "航班预审表.xlsx"
aLink.href = URL.createObjectURL(val.data)
aLink.setAttribute('download', fileName) // 设置下载文件名称
document.body.appendChild(aLink)
aLink.click()
document.body.removeChild(aLink);
const aLink = document.createElement('a')
const fileName = "航班预审表.xlsx"
aLink.href = URL.createObjectURL(val.data)
aLink.setAttribute('download', fileName) // 设置下载文件名称
document.body.appendChild(aLink)
aLink.click()
document.body.removeChild(aLink);
}
......
<template>
<div class="cargoAllocation">
<el-form
ref="form"
v-model="formData"
class="form-header"
label-position="right"
label-width="auto"
size="small"
>
<el-form ref="form" v-model="formData" class="form-header" label-position="right" label-width="auto" size="small">
<el-row type="flex" style="flexWrap: wrap !important">
<el-col :span="6">
<el-form-item label="ACCS原航班日期">
<el-date-picker
class="formItem"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
v-model="fltDate"
:value-format="valueFormat"
clearable
>
<el-date-picker class="formItem" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" v-model="fltDate" :value-format="valueFormat" clearable>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="ACCS原航班号">
<el-input
v-model="fltNo"
placeholder="请输入ACCS原航班号"
class="formItem"
clearable
></el-input>
<el-input v-model="fltNo" placeholder="请输入ACCS原航班号" class="formItem" 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-option
v-for="item in selectData.findConditionData
.cargoCustomsReturnStatus"
:label="item.chineseName"
:value="item.id"
:key="item.id"
>
<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">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="货物状态">
<el-select
placeholder="不限"
v-model="formData.statusId"
class="formItem"
clearable
>
<el-option
v-for="item in selectData.findConditionData.cargoStatus"
:label="item.chineseName"
:value="item.id"
:key="item.id"
>
<el-select placeholder="不限" v-model="formData.statusId" class="formItem" clearable>
<el-option v-for="item in selectData.findConditionData.cargoStatus" :label="item.chineseName"
:value="item.id" :key="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="ACCSpool">
<el-select placeholder="不限" v-model="formData.accsPool" class="formItem" clearable>
<el-option value="Pre-MDE" key="Pre-MDE">
</el-option>
<el-option value="OSPR" key="OSPR">
</el-option>
<el-option value="Manifest" key="Manifest">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运单号">
<el-input
class="formItem"
type="textarea"
placeholder="请输入运单号(回车分割)"
:autosize="true"
v-model="formData.waybillNo"
clearable
></el-input>
<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"
:value="item.id"
:key="item.id"
>
<el-select placeholder="不限" v-model="formData.typeId" class="formItem" clearable>
<el-option v-for="item in selectData.findConditionData.cargoType" :label="item.chineseName"
:value="item.id" :key="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="服务类型">
<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"
>
<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">
</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"
:autosize="true"
clearable
></el-input>
<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"
:autosize="true"
clearable
></el-input>
<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"
:precision="2"
></el-input-number
></el-col>
<el-row>
<el-col :span="11">
<el-input-number class="formItem" 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"
:min="formData.minWeight"
:precision="2"
></el-input-number
></el-col>
<el-col :span="11">
<el-input-number class="formItem" size="mini" v-model="formData.maxWeight" :controls="false"
:min="formData.minWeight" :precision="2" clearable></el-input-number>
</el-col>
</el-row>
</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.minNumber"
:controls="false"
:min="0"
></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"
:min="formData.minNumber"
></el-input-number
></el-col>
<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>
<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"
:min="formData.minNumber" clearable></el-input-number>
</el-col>
</el-row>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="取件日期">
<el-date-picker
class="formItem"
v-model="formData.pickUpDate"
type="date"
placeholder="选择日期"
:value-format="valueFormat"
clearable
>
<el-date-picker class="formItem" v-model="formData.pickUpDate" type="date" placeholder="选择日期"
:value-format="valueFormat" clearable>
</el-date-picker>
</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-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-checkbox v-for="item in selectData.HandlingCode" :label="item.chineseName" v-model="item.englishName"
:key="item.id"></el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="Sub Category">
<el-empty
description="暂无数据"
v-if="
!selectData.SubCategory || selectData.SubCategory.length == 0
"
></el-empty>
<el-empty description="暂无数据" v-if="
!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-checkbox v-for="item in selectData.SubCategory" :label="item.chineseName" v-model="item.englishName"
:key="item.id"></el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
</el-row>
<div style="margin: 0 0 0 10px">
<el-button
type="primary"
icon="el-icon-search"
size="mini"
:loading="loading"
@click="select(0)"
>查询</el-button
>
<el-button
:type="downLoadingTip.downloading ? 'warning' : 'primary'"
size="mini"
v-hasPermi="['allocation:cargo:export']"
@click="xlsx(0)"
:loading="downLoadingTip.downloading"
:disabled="tableData.length <= 0"
>{{
downLoadingTip.downloading ? downLoadingTip.tip : "导出本页查询结果"
}}</el-button
>
<el-button
:type="downLoadingTip.downloading ? 'warning' : 'primary'"
size="mini"
v-hasPermi="['allocation:cargo:export']"
@click="xlsx(1)"
:loading="downLoadingTip.downloading"
:disabled="tableData.length <= 0"
>{{
downLoadingTip.downloading ? downLoadingTip.tip : "导出全部查询结果"
}}</el-button
>
<el-button
type="primary"
size="mini"
v-hasPermi="['allocation:cargo:allocation']"
@click="addFit"
:disabled="tableSelection.length <= 0"
>添加到航班</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" :loading="loading" @click="select(0)">查询</el-button>
<el-button :type="downLoadingTip.downloading ? 'warning' : 'primary'" size="mini"
v-hasPermi="['allocation:cargo:export']" @click="xlsx(0)" :loading="downLoadingTip.downloading"
:disabled="tableData.length <= 0">{{
downLoadingTip.downloading ? downLoadingTip.tip : "导出本页查询结果"
}}</el-button>
<el-button :type="downLoadingTip.downloading ? 'warning' : 'primary'" size="mini"
v-hasPermi="['allocation:cargo:export']" @click="xlsx(1)" :loading="downLoadingTip.downloading"
:disabled="tableData.length <= 0">{{
downLoadingTip.downloading ? downLoadingTip.tip : "导出全部查询结果"
}}</el-button>
<el-button type="primary" size="mini" v-hasPermi="['allocation:cargo:allocation']" @click="addFit"
:disabled="tableSelection.length <= 0">添加到航班</el-button>
<div class="tips">
<span style="paddingRight: 50px">总重量:{{ allWeight }}</span>
<span>总件数:{{ allQty }}</span>
</div>
</div>
</el-form>
<Tables
ref="newTables"
:data="tableData"
:headerData="tableHeader"
:totalCount="totalCount"
:loading="loading"
:limitSize="size"
:limitStart="formData.limitStart"
:page="page"
:shiftKey="shiftKey"
:infoShow="false"
:height="tableHeight"
@tableSelect="tableSelect"
@tableSelectAll="tableSelectAll"
@currentChange="currentChange"
@sortChange="sortChange"
></Tables>
<Dialog
:tableData="tableSelection"
:dialogVisible="dialogVisible"
@dialogBeforeClose="dialogBeforeClose"
></Dialog>
<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>
<Dialog :tableData="tableSelection" :dialogVisible="dialogVisible" @dialogBeforeClose="dialogBeforeClose"></Dialog>
</div>
</template>
......@@ -350,447 +202,386 @@ export default {
handingCodes: null,
subCategorys: null,
customsReceiptStatusId: null,
accsPool: "OSPR"
}, //查询数据
tableHeader: [
{
type: "selection",
name: "",
value: "",
width: "50",
align: "center",
sorTable: false,
fixed: true,
disabled:true
},
{
type: "index",
name: "",
value: "",
width: "50",
align: "center",
sorTable: false,
fixed: false,
disabled:true
},
{
type: "",
name: "口岸代码",
value: "portName",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "取件日期",
value: "pickUpDate",
width: "120",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "取件扫描号",
value: "pickUpScanNo",
width: "120",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "站点",
value: "siteName",
width: "80",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "运单号",
value: "waybillNo",
width: "120",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "总单号",
value: "totalWaybillNo",
width: "120",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "服务类型",
value: "serviceTypeName",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "服务代码",
value: "serviceCode",
width: "100",
align: "center",
sorTable: false,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "URSA",
value: "ursa",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "申报类型",
value: "typeName",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "HandlingCode",
value: "handingCode",
width: "150",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "subcategory",
value: "subCategory",
width: "140",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "件数",
value: "qty",
width: "80",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "实际重量",
value: "actualWeight",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "收件人国家代码",
value: "consigneeCountry",
width: "150",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "品名描述",
value: "nameDescription",
width: "100",
align: "center",
sorTable: false,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "海关回执状态",
value: "customsReceiptStatusName",
width: "140",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "预审状态",
value: "preQualificationStatus",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "航班预审意见",
value: "caPretrialOpinion",
width: "120",
align: "center",
sorTable: false,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "货物状态",
value: "statusName",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "终配航班号",
value: "finalFlightNo",
width: "120",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "终配航班日期",
value: "finalFlightTime",
width: "140",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "二配航班号",
value: "twoMatchFlightNo",
width: "120",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "二配航班日期",
value: "twoMatchFlightTime",
width: "150",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "预配航班号",
value: "preplanFlightNo",
width: "120",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "预配航班日期",
value: "preplanFlightTime",
width: "150",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "ACCS原航班号",
value: "fltNoAccs",
width: "150",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "ACCS原航班日期",
value: "fltDateAccs",
width: "150",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "ACCS原航线",
value: "accsFlightRoute",
width: "140",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "是否RDE手工录入",
value: "manualRde",
width: "170",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "是否自动",
value: "cargoRulesStatus",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "发件人账号",
value: "shipperAccount",
width: "120",
align: "center",
sorTable: false,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "发件公司中文名称",
value: "shipperCompany",
width: "150",
align: "center",
sorTable: false,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "始发地城市名称",
value: "originCity",
width: "130",
align: "center",
sorTable: false,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "收件地",
value: "destinationSiteName",
width: "90",
align: "center",
sorTable: false,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "尺寸",
value: "sizeStr",
width: "80",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "大货预审意见(是否可以配置航班)",
value: "bigPretrialOpinion",
width: "250",
align: "center",
sorTable: false,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "大货预审时间",
value: "bigPretrialTime",
width: "120",
align: "center",
sorTable: false,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "海关回执时间",
value: "customsReceiptTime",
width: "150",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "航班预审时间",
value: "caPretrialTime",
width: "150",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "创建人",
value: "createUserName",
width: "90",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "创建时间",
value: "createTime",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
], //表头数据
tableData: [], //表格数据
......@@ -812,7 +603,7 @@ export default {
size: 100,
allWeight: 0,
allQty: 0,
tableHeight:null,
tableHeight: null,
dialogVisible: false,
shiftKey: false,
createDate: null,
......@@ -825,13 +616,16 @@ export default {
},
created() {
this.seleData();
if(this.$store.state.tagsView.cachedViews.length == 0){
if (this.$store.state.tagsView.cachedViews.length == 0) {
this.select();
}
},
activated(){
activated() {
this.select();
},
deactivated() {
this.tableData = []
},
mounted() {
window.addEventListener("keydown", (code) => {
if (code.keyCode === 16 && code.shiftKey) {
......@@ -843,7 +637,7 @@ export default {
this.shiftKey = false;
}
});
this.tableHeight = window.innerHeight - this.$refs.form.$el.offsetHeight-60
this.tableHeight = window.innerHeight - this.$refs.form.$el.offsetHeight - 60
},
methods: {
//查询条件
......@@ -853,33 +647,33 @@ export default {
if (res.code === 200) {
this.selectData.HandlingCode = res.data.handlingCode;
this.selectData.SubCategory = res.data.subCategory;
}else{
} else {
this.$message({
message: "查询条件不存在",
type: "warning",
});
}
})
.catch(() => {});
.catch(() => { });
findConditionData()
.then((res) => {
if (res.code == 200) {
this.selectData.findConditionData = res.data;
}else{
} else {
this.$message({
message: "查询条件不存在",
type: "warning",
});
}
})
.catch(() => {});
.catch(() => { });
},
//查询
async select(val) {
this.loading = true;
this.dataInfo();
if(val === 0){
if (val === 0) {
this.page = 1;
this.formData.page = 1;
}
......@@ -968,7 +762,7 @@ export default {
}
this.formData.page = this.page;
this.formData.size = this.size;
if(this.formData.waybillNo){
if (this.formData.waybillNo) {
this.formData.waybillNo = this.formData.waybillNo.trim();
}
},
......@@ -1029,7 +823,7 @@ export default {
data = data.sort(this.$refs.newTables.compare(val.prop, val.order));
if (val.order == "descending") {
this.tableData = nullData.concat(data);
} else{
} else {
this.tableData = data.concat(nullData);
}
this.tableSelection = []
......@@ -1038,7 +832,7 @@ export default {
// item.index = index;
// });
},
sizeChange(val){
sizeChange(val) {
this.size = val
this.select(0);
},
......@@ -1091,9 +885,6 @@ export default {
},
},
},
deactivated(){
this.tableData = []
},
};
</script>
......@@ -1105,18 +896,22 @@ export default {
margin-top: 10px;
margin-left: 50px;
}
.line {
text-align: center;
}
.el-empty {
width: 30%;
height: 37px;
padding: 0px;
line-height: 37px;
.el-empty__image {
width: 0px;
height: 0px;
}
.el-empty__description {
margin-top: 0px;
}
......
<template>
<div>
<el-form
:inline="true"
:model="queryParams"
class="form-header"
size="medium"
label-position="right"
label-width="auto"
>
<el-form :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" clearable></el-input>
</el-form-item>
<el-form-item label="状态">
<el-select v-model="queryParams.status" placeholder="状态" clearable>
......@@ -23,45 +12,21 @@
</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" @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 style="margin-bottom: 20px" type="primary" icon="el-icon-plus" size="mini"
v-hasPermi="['allocation:alloc:add']" @click="
$router.push({
name: 'FlightAllocConfigAdd',
params: { handle: 'add' },
})
"
>添加</el-button
>
">添加</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 :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">
......@@ -80,62 +45,22 @@
<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)"
>删除</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
>
<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)">删除</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 @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>
</div>
</template>
......@@ -165,14 +90,14 @@ export default {
};
},
created() {
if(this.$store.state.tagsView.cachedViews.length == 0){
if (this.$store.state.tagsView.cachedViews.length == 0) {
this.getList();
}
},
activated(){
activated() {
this.getList()
},
deactivated(){
deactivated() {
this.flyList = []
},
methods: {
......@@ -228,7 +153,7 @@ export default {
});
this.getList();
})
.catch(() => {});
.catch(() => { });
});
}
},
......@@ -249,7 +174,7 @@ export default {
this.msgSuccess(tip + "成功");
}
})
.catch(() => {});
.catch(() => { });
});
},
},
......
......@@ -5,31 +5,16 @@
<el-button size="small" @click="close">返回</el-button>
</div>
<template v-else>
<el-form
ref="form"
:model="form"
label-width="200px"
size="small"
:disabled="disable"
:rules="rules"
>
<el-form ref="form" :model="form" label-width="200px" size="small" :disabled="disable" :rules="rules">
<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-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 v-model="isNeedRequired" :active-value="1" :inactive-value="0">
</el-switch>
</el-form-item>
</el-col>
......@@ -37,86 +22,45 @@
<el-form-item>
<el-row :gutter="20">
<el-col :span="6">
<el-radio v-model="isLocation" label="1" size="mini"
>站点包含</el-radio
>
<el-radio v-model="isLocation" label="2" size="mini"
>站点不包含</el-radio
>
<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 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"></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-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 title="提示:URSA之间用分号分隔,例:F2;F3;P_" type="warning" show-icon size="mini" :closable="false"
style="height: 30px; width: fit-content">
</el-alert>
</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-input type="textarea" v-model.trim="form.includeUrsa" :rows="6" resize="none"></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-input type="textarea" v-model.trim="form.notIncludeUrsa" :rows="6" resize="none"></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 class="numberInput" v-model.trim="minNumOfPieces"></el-input>
<!-- <el-input-number
v-model="minNumOfPieces"
:precision="0"
......@@ -126,10 +70,7 @@
</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 class="numberInput" v-model.trim="maxNumOfPieces"></el-input>
<!-- <el-input-number
v-model="
form.maxNumOfPieces == 0
......@@ -180,10 +121,7 @@
<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 :label="item.chineseName" :name="item.chineseName">
</el-checkbox>
</el-col>
</el-row>
......@@ -196,11 +134,7 @@
<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 :label="item.chineseName" :name="item.chineseName" disabled></el-checkbox>
</el-col>
</el-row>
</el-checkbox-group>
......@@ -212,10 +146,7 @@
<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 :label="item.englishName" :name="item.englishName"></el-checkbox>
</el-col>
</el-row>
</el-checkbox-group>
......@@ -227,10 +158,7 @@
<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 :label="item.englishName" :name="item.englishName"></el-checkbox>
</el-col>
</el-row>
</el-checkbox-group>
......@@ -242,10 +170,7 @@
<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 :label="item.englishName" :name="item.englishName"></el-checkbox>
</el-col>
</el-row>
</el-checkbox-group>
......@@ -254,13 +179,8 @@
</el-form>
<div style="marginleft: 200px">
<el-button
type="primary"
size="small"
v-if="$route.params.handle != 'detail'"
@click="submit('form')"
:loading="btnLoading"
>
<el-button type="primary" size="small" v-if="$route.params.handle != 'detail'" @click="submit('form')"
:loading="btnLoading">
<span v-if="$route.params.handle === 'add'">添加</span>
<span v-else>保存</span>
</el-button>
......@@ -279,7 +199,7 @@ import {
} from "@/api/destinationFlight";
export default {
name:"",
name: "",
data() {
return {
form: {
......@@ -319,9 +239,9 @@ export default {
btnLoading: false,
loading: true,
isEmpty: false,
routeName:"",
dataId:"",
handleName:""
routeName: "",
dataId: "",
handleName: ""
};
},
methods: {
......@@ -361,7 +281,7 @@ export default {
this.formHandlingCode = this.form.handlingCode;
this.formSubCategory = this.form.subCategory;
this.form.isNeedRequired = this.isNeedRequired;
if(this.form.purposeOfFlightNo){
if (this.form.purposeOfFlightNo) {
this.form.purposeOfFlightNo = this.form.purposeOfFlightNo.toUpperCase();
}
if (this.isLocation == 1) {
......@@ -442,7 +362,7 @@ export default {
),
1
);
this.$router.push({name:"FlightAllocConfig"})
this.$router.push({ name: "FlightAllocConfig" })
// this.$router.push(
// this.$store.state.tagsView.visitedViews[
// this.$store.state.tagsView.visitedViews.length - 1
......@@ -450,30 +370,30 @@ export default {
// );
},
removes(){
if(this.routeName == "FlightAllocConfigAdd"){
sessionStorage.setItem("flightAdd","remove")
}else{
sessionStorage.setItem("flightInfo"+this.dataId,"remove")
removes() {
if (this.routeName == "FlightAllocConfigAdd") {
sessionStorage.setItem("flightAdd", "remove")
} else {
sessionStorage.setItem("flightInfo" + this.dataId, "remove")
}
},
},
beforeDestroy(){
if(this.routeName == "FlightAllocConfigAdd"){
if(sessionStorage.getItem("flightAdd") == "remove"){
beforeDestroy() {
if (this.routeName == "FlightAllocConfigAdd") {
if (sessionStorage.getItem("flightAdd") == "remove") {
sessionStorage.removeItem("flightAdd")
}else{
} 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)
}else{
if(this.handleName == "detail"){
} else {
if (sessionStorage.getItem("flightInfo" + this.dataId) == "remove") {
sessionStorage.removeItem("flightInfo" + this.dataId)
} else {
if (this.handleName == "detail") {
this.form.isNeedRequired = this.isNeedRequired
sessionStorage.setItem("flightInfo"+this.dataId,JSON.stringify(this.form))
sessionStorage.setItem("flightInfo" + this.dataId, JSON.stringify(this.form))
}
}
}
......@@ -510,59 +430,59 @@ export default {
if (handle != "add") {
this.nameDisabled = true;
let id = this.$route.params.id;
if(sessionStorage.getItem("flightInfo"+id) && this.$route.name == "FlightAllocConfigInfo" && handle != "detail"){
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.form = JSON.parse(sessionStorage.getItem("flightInfo" + this.$route.params.id))
this.isNeedRequired = this.form.isNeedRequired;
if(this.form.notLocation != null || this.form.notLocation == ""){
if (this.form.notLocation != null || this.form.notLocation == "") {
this.isLocation = "2";
}else{
} else {
this.isLocation = "1";
}
}else{
} 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";
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 {
this.isLocation = "1";
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.isNeedRequired = info.isNeedRequired;
}
this.loading = false;
}).catch(()=>{
this.loading = false;
}).catch(() => {
this.loading = false;
})
} else {
//货物信息
findByFlightId(id).then((response) => {
} else {
//货物信息
findByFlightId(id).then((response) => {
if (response.code != 200) {
this.$message({
showClose: true,
......@@ -598,7 +518,7 @@ export default {
this.isNeedRequired = isNeedRequired;
}
this.loading = false;
}).catch(()=>{
}).catch(() => {
this.loading = false;
})
}
......@@ -606,13 +526,13 @@ export default {
} else {
this.loading = false;
}
if(this.$route.name == "FlightAllocConfigAdd"){
if(sessionStorage.getItem("flightAdd")){
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 == ""){
if (this.form.notLocation != null || this.form.notLocation == "") {
this.isLocation = "2";
}else{
} else {
this.isLocation = "1";
}
}
......@@ -685,7 +605,7 @@ export default {
background-color: rgba(255, 255, 255, 0.5);
}
.el-checkbox__input.is-disabled + span.el-checkbox__label {
.el-checkbox__input.is-disabled+span.el-checkbox__label {
color: #303133;
}
......@@ -696,6 +616,7 @@ export default {
.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
border-color: #606266;
}
.numberInput {
input {
text-align: center;
......
<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="medium" :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 type="text" v-model="upCase" placeholder="请输入原航班" clearable></el-input>
<!-- <el-input v-model="upCase" placeholder="请输入原航班" clearable size="small" /> -->
</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-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" @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 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;
<el-button type="primary" icon="el-icon-search" size="mini" @click="findSourceFlightAndFlightDate">查询实际配载航班
</el-button>&#12288;
<span style="color:#ff4949">注:原航班+日期查询该日期的航班实际情况</span>
</el-form-item>
<br />
<el-form-item>
<el-button
type="primary"
icon="el-icon-plus"
size="mini"
v-hasPermi="['allocation:rand:add']"
@click="handleAdd"
>添加规则</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
<el-button type="primary" icon="el-icon-plus" size="mini" v-hasPermi="['allocation:rand:add']"
@click="handleAdd">添加规则</el-button>
<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 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"
>
<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"
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
>
<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" 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"
/>
<pagination v-show="total > 0" :total="total" layout=" prev, pager, next, jumper, sizes,total"
:page.sync="queryParams.pageNum" :limit.sync="queryParams.limit" @pagination="findSourceFlightRules" />
<!-- 查看目的航班对话框 -->
<el-dialog
title="实际配载航班"
:visible.sync="openFlightDate"
width="70%"
:close-on-click-modal="false"
:append-to-body="true"
>
<el-dialog title="实际配载航班" :visible.sync="openFlightDate" width="70%" :close-on-click-modal="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>
</el-table-column>
<el-table-column label="原航班" align="center" prop="sourceFlightNo" />
<el-table-column
label="实际配载航班"
align="center"
prop="actualFlight"
width="280"
/>
<el-table-column label="实际配载航班" align="center" prop="actualFlight" width="280" />
<el-table-column label="航班日期" align="center" prop="flightDate" />
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="200"
>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleClick(scope.row.actualFlight, 'detail')"
>查看配置维度</el-button
>
<el-button size="mini" type="text" icon="el-icon-edit"
@click="handleClick(scope.row.actualFlight, 'detail')">查看配置维度</el-button>
</template>
</el-table-column>
</el-table>
......@@ -229,45 +90,19 @@
</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">
<el-form ref="form" :model="form" :rules="rules" label-position="right" label-width="auto">
<el-row>
<el-col :span="8">
<el-form-item label="原航班" prop="sourceFlightNo">
<el-input
v-model="form.sourceFlightNo"
placeholder="请输入原航班号"
maxlength="10"
/>
<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-option
v-for="item in portNameList"
:label="item"
:value="item"
:key="item"
>
<el-select :disabled="true" v-model="form.portName" size="mini" placeholder="选择口岸">
<el-option v-for="item in portNameList" :label="item" :value="item" :key="item">
</el-option>
</el-select>
</el-form-item>
......@@ -276,59 +111,33 @@
<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 size="small" :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 size="small" :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 style="color: #ff4949; margin-left: 10%"
>提示:如果需要设置配载航班延迟或提前可以直接在目的航斑后加减【+-】天数。如:CA1053+1;CZ433-1</span
>
<span style="color: #ff4949; margin-left: 10%">提示:配载航班之间请用分号分隔【符号不区分中英文】,例:CA1053;C7433</span><br />
<span
style="color: #ff4949; margin-left: 10%">提示:如果需要设置配载航班延迟或提前可以直接在目的航斑后加减【+-】天数。如:CA1053+1;CZ433-1</span>
</el-col>
<el-col :span="24">
<el-form-item label="配载航班" prop="flightRank">
<el-input
type="textarea"
v-model="form.flightRank"
:rows="4"
></el-input>
<el-input type="textarea" v-model="form.flightRank" :rows="4"></el-input>
</el-form-item>
</el-col>
<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-checkbox v-for="item in dayOfWeekList" :key="item" :label="item" :name="item"></el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
......@@ -442,19 +251,19 @@ export default {
created() {
this.queryParams.portName = this.$store.state.user.activePortName;
this.portNameList = this.$store.state.user.portNames;
if(this.$store.state.tagsView.cachedViews.length == 0){
if (this.$store.state.tagsView.cachedViews.length == 0) {
this.findSourceFlightRules();
}
},
activated(){
activated() {
this.findSourceFlightRules();
},
deactivated(){
deactivated() {
this.sourceFlightRulesList = []
},
watch:{
open(val,oldVal){
if(val){
watch: {
open(val, oldVal) {
if (val) {
this.queryParams.portName = this.$store.state.user.activePortName;
this.form.portName = this.$store.state.user.activePortName;
}
......@@ -544,7 +353,7 @@ export default {
this.msgError(response.msg);
}
})
.catch(() => {});
.catch(() => { });
},
/** 提交按钮 */
submitForm: function () {
......
<template>
<div class="app-container">
<el-form
class="form-header"
:model="queryParams"
label-position="right"
label-width="auto"
size="medium"
>
<div>
<el-form class="form-header" :model="queryParams" label-position="right" label-width="auto" size="medium">
<el-row>
<el-col :span="6">
<el-form-item label="航班日期从" prop="fltDateStart">
<el-date-picker
value-format="yyyy-MM-dd"
class="formItem"
v-model="queryParams.fltDateStart"
type="date"
placeholder="选择日期"
>
<el-date-picker value-format="yyyy-MM-dd" class="formItem" v-model="queryParams.fltDateStart" type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到" prop="fltDateEnd">
<el-date-picker
value-format="yyyy-MM-dd"
class="formItem"
v-model="queryParams.fltDateEnd"
type="date"
placeholder="选择日期"
>
<el-date-picker value-format="yyyy-MM-dd" class="formItem" v-model="queryParams.fltDateEnd" type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</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-input clearable type="textarea" v-model="queryParams.waybillNo" class="formItem"
placeholder="请输入运单号(回车间隔)" :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-input type="textarea" v-model="siteName" class="formItem" placeholder="PVG;PEK" clearable :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 clearable type="textarea" v-model="ursa" class="formItem" placeholder="S_;P_;E2" :rows="1">
</el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-switch
v-model="queryParams.reExport"
active-color="#13ce66"
active-text="重新导出"
style="padding-left: 35px"
>
</el-switch>
</el-col>
</el-row>
<div style="margin-top: 25px">
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button
type="warning"
:disabled="tableData.length == 0"
@click="xlse()"
:loading="downLoadingTip.downloading"
icon="el-icon-download"
size="mini"
v-hasPermi="['base:caExport:export']"
>{{
downLoadingTip.downloading ? downLoadingTip.tip : "导出"
}}</el-button
>
<el-switch v-model="queryParams.reExport" active-color="#13ce66" active-text="重新导出" style="padding-left: 35px">
</el-switch>
<div style="margin-top:25px">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button type="warning" :disabled="tableData.length == 0" v-hasPermi="['base:caExport:export']"
@click="xlse()" :loading="downLoadingTip.downloading" icon="el-icon-download" size="mini">{{
downLoadingTip.downloading ? downLoadingTip.tip : "导出"
}}</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"
width="150"
/>
<el-table-column
:show-overflow-tooltip="true"
label="品牌描述"
align="center"
prop="nameDescription"
width="150"
/>
<el-table-column
label="航班日期"
align="center"
prop="fltDate"
width="150"
/>
<el-table-column label="航班号" align="center" prop="fltNo" />
<el-table-column
label="航班路线"
align="center"
prop="route"
width="150"
/>
<el-table-column
label="配置航班类型"
align="center"
prop="kindName"
width="130"
/>
<el-table-column label="尺寸" align="center" prop="sizeStr" />
<el-table-column label="件数" align="center" prop="qty" />
<el-table-column label="实际重量" align="center" prop="actualWeight" />
<el-table-column
label="创建时间"
align="center"
prop="createTime"
width="180"
/>
<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" />
<el-table-column label="航班日期" align="center" prop="fltDate" />
<el-table-column label="航班号" align="center" prop="fltNo" width="100" />
<el-table-column label="航班路线" align="center" prop="route" />
<el-table-column label="配置航班类型" align="center" prop="kindName" width="130" />
<el-table-column label="尺寸" align="center" prop="sizeStr" width="70" />
<el-table-column label="件数" align="center" prop="qty" width="70" />
<el-table-column label="实际重量" align="center" prop="actualWeight" width="100" />
<el-table-column label="创建时间" align="center" prop="createTime" width="180" />
</el-table>
<pagination
v-show="total > 0"
:total="total"
layout=" prev, pager, next, jumper, sizes,total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.limitSize"
@pagination="findAllFltData"
/>
<pagination v-show="total > 0" :total="total" layout=" prev, pager, next, jumper, sizes,total"
:page.sync="queryParams.pageNum" :limit.sync="queryParams.limitSize" @pagination="findAllFltData" />
</div>
</template>
......@@ -221,7 +115,6 @@ export default {
rules: {},
};
},
created() {},
methods: {
// 导出表格
xlse() {
......@@ -233,8 +126,9 @@ export default {
);
cargoXlse.cargoExportPreQueryDto.limitStart = 0;
cargoXlse.cargoExportPreQueryDto.limitSize = -1;
downLoadXlsx("/cargo/excelPre", cargoXlse,'航班预审表')
downLoadXlsx("/cargo/excelPre", cargoXlse, '航班预审表')
.then(() => {
this.downLoadingTip.downloading = false;
this.downLoadingTip.tip = "";
this.progress = 100;
......@@ -244,7 +138,6 @@ export default {
this.downLoadingTip.tip = "";
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
......@@ -265,6 +158,12 @@ export default {
this.tableData = response.data.list;
this.total = response.data.totalCount;
this.loading = false;
if (response.data.list.length == 0) {
this.$message({
message: "未查询到数据",
type: "warning",
});
}
} else {
this.msgError(response.msg);
}
......
......@@ -15,7 +15,8 @@
<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" border>
<el-table ref="filterTable" :data="tableData" v-loading="loading" style="width: 100%; margin-top: 20px" size="small"
border>
<el-table-column label="行号" prop="line" fixed width="50" align="center">
</el-table-column>
<el-table-column label="错误信息" prop="errorMessage" fixed width="300">
......@@ -31,103 +32,100 @@
<el-table-column v-if="tableData.length > 0" label="航班日期" align="center" prop="C" />
<el-table-column v-if="tableData.length > 0" label="航班号" align="center" prop="D" />
<el-table-column v-if="tableData.length > 0" label="预审意见" align="center" prop="E" />
<!-- <el-table-column v-for="(value, key) in this.tableData[0]" :key="key"
<!-- <el-table-column v-for="(value, key) in this.tableData[0]" :key="key"
v-if="key != 'errorMessage' && key != 'line'" :label="key" :prop="key" width="120"></el-table-column>-->
</el-table>
</div>
</template>
<script>
import {
downLoadTemplate,
importcaPreReview,
} from "@/api/caPreReviewImport";
export default {
name:"CAPreReviewImport",
data() {
return {
// 遮罩层
loading: false,
flightType: [],
form: {
type: "",
region: "",
},
fileList: [],
tableData: [],
};
},
methods: {
downloadTempleate() {
import {
downLoadTemplate,
importcaPreReview,
} from "@/api/caPreReviewImport";
export default {
name: "CAPreReviewImport",
data() {
return {
// 遮罩层
loading: false,
flightType: [],
form: {
type: "",
region: "",
},
fileList: [],
tableData: [],
};
},
methods: {
downloadTempleate() {
let fileName = "航班预审导入模板.xlsx";
downLoadTemplate().then((res) => {
if (res) {
const blob = new Blob([res]);
const link = document.createElement("a"); //创建a标签
link.download = fileName; //a标签添加属性
link.style.display = "none";
link.href = URL.createObjectURL(blob);
document.body.appendChild(link);
link.click(); //执行下载
URL.revokeObjectURL(link.href); //释放url
document.body.removeChild(link); //释放标签
} else {
this.$message.error("下载失败");
}
});
let fileName = "航班预审导入模板.xlsx";
downLoadTemplate().then((res) => {
if (res) {
const blob = new Blob([res]);
const link = document.createElement("a"); //创建a标签
link.download = fileName; //a标签添加属性
link.style.display = "none";
link.href = URL.createObjectURL(blob);
document.body.appendChild(link);
link.click(); //执行下载
URL.revokeObjectURL(link.href); //释放url
document.body.removeChild(link); //释放标签
} else {
this.$message.error("下载失败");
}
});
},
uploadExcel(option) {
//上传excel
const file = option.file;
this.loading=true;
importcaPreReview(file, this.form.type).then((res) => {
this.loading=false;
if (res.code != 200) {
if (res.code == 603) {
this.$alert(res.msg, "提示", {
confirmButtonText: "确定",
type: "warning",
});
} else {
this.$message.error(res.msg);
this.tableData = res.data;
}
},
uploadExcel(option) {
//上传excel
const file = option.file;
this.loading = true;
importcaPreReview(file, this.form.type).then((res) => {
this.loading = false;
if (res.code != 200) {
if (res.code == 603) {
this.$alert(res.msg, "提示", {
confirmButtonText: "确定",
type: "warning",
});
} else {
this.$message.success(res.msg);
this.$message.error(res.msg);
this.tableData = res.data;
}
});
},
handleRemove(file, fileList) {
//清掉上传的文件
this.tableData = [];
this.fileList = [];
},
handleExceed(files) {
//重复上传文件
let file = {};
file.file = files[0];
file.name = files[0].name;
this.fileList = [];
this.fileList.push(file);
this.uploadExcel(file);
},
} else {
this.$message.success(res.msg);
this.tableData = res.data;
}
});
},
created() {
handleRemove(file, fileList) {
//清掉上传的文件
this.tableData = [];
this.fileList = [];
},
handleExceed(files) {
//重复上传文件
let file = {};
file.file = files[0];
file.name = files[0].name;
this.fileList = [];
this.fileList.push(file);
this.uploadExcel(file);
},
};
},
};
</script>
<style rel="stylesheet/scss" lang="scss">
.upload-demo {
float: right;
}
.upload-demo {
float: right;
}
.el-upload-list {
display: inline-block;
margin-left: 10px;
vertical-align: top;
}
.el-upload-list {
display: inline-block;
margin-left: 10px;
vertical-align: top;
}
</style>
......
......@@ -3,47 +3,27 @@
<el-form :inline="true" :model="form" class="demo-form-inline" size="small">
<el-form-item label="航班种类">
<el-select v-model="form.type" placeholder="航班种类">
<el-option
v-for="item in flightType"
:key="item.id"
:label="item.englishName"
:value="item.code"
>{{ item.englishName }}</el-option
>
<el-option v-for="item in flightType" :key="item.id" :label="item.englishName" :value="item.code">{{
item.englishName
}}</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-upload
action="/flightInfoImport/importFlight"
name="file"
:http-request="uploadExcel"
:on-remove="handleRemove"
:limit="1"
:on-exceed="handleExceed"
:file-list="fileList"
accept=".xlsx"
class="upload-demo"
v-hasPermi="['base:flightImport:importFlight']"
>
<el-upload action="/flightInfoImport/importFlight" name="file" :http-request="uploadExcel"
:on-remove="handleRemove" :limit="1" :on-exceed="handleExceed" :file-list="fileList" accept=".xlsx"
class="upload-demo" v-hasPermi="['base:flightImport:importFlight']">
<el-button type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="downloadTempleate" v-hasPermi="['base:flightImport:exportExcel']"
>下载模板</el-button
>
<el-button type="primary" @click="downloadTempleate" v-hasPermi="['base:flightImport:exportExcel']">下载模板
</el-button>
</el-form-item>
</el-form>
<div style="font-size: 12px; font-weight: 700">
提示:<span style="color: #1890ff">以下为所提交的数据或出错信息</span>
</div>
<el-table
ref="filterTable"
:data="tableData"
style="width: 100%; margin-top: 20px"
size="small"
border
>
<el-table ref="filterTable" :data="tableData" style="margin-top: 20px" size="small" border>
<el-table-column label="行号" prop="line" fixed width="50" align="center">
</el-table-column>
<el-table-column label="错误信息" prop="errorMessage" fixed width="200">
......@@ -54,14 +34,8 @@
</template>
</el-table-column>
<el-table-column v-if="tableData.length == 0"></el-table-column>
<el-table-column
v-for="(value, key) in this.tableData[0]"
:key="key"
v-if="key != 'errorMessage' && key != 'line'"
:label="key"
:prop="key"
width="120"
></el-table-column>
<el-table-column v-for="(value, key) in this.tableData[0]" :key="key"
v-if="key != 'errorMessage' && key != 'line'" :label="key" :prop="key"></el-table-column>
</el-table>
</div>
</template>
......@@ -172,11 +146,11 @@ export default {
},
};
</script>
<style rel="stylesheet/scss" lang="scss">
.upload-demo {
float: right;
}
.el-upload-list {
display: inline-block;
margin-left: 10px;
......
<template>
<div>
<el-form
class="form-header"
:model="queryParams"
ref="queryForm"
label-position="right"
label-width="auto"
size="medium"
>
<el-form class="form-header" :model="queryParams" ref="queryForm" label-position="right" label-width="auto"
size="medium">
<el-row>
<el-col :span="6">
<el-form-item label="航班日期从" prop="fltDateStart">
<el-date-picker
class="formItem"
value-format="yyyy-MM-dd"
v-model="queryParams.fltDateStart"
type="date"
placeholder="选择日期"
>
<el-date-picker class="formItem" value-format="yyyy-MM-dd" v-model="queryParams.fltDateStart" type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="到" prop="fltDateEnd">
<el-date-picker
class="formItem"
value-format="yyyy-MM-dd"
v-model="queryParams.fltDateEnd"
type="date"
placeholder="选择日期"
>
<el-date-picker class="formItem" value-format="yyyy-MM-dd" v-model="queryParams.fltDateEnd" type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="航班号" prop="fltNo">
<el-input
class="formItem"
v-model="queryParams.fltNo"
placeholder="请输入航班号"
clearable
/>
<el-input class="formItem" v-model="queryParams.fltNo" placeholder="请输入航班号" clearable />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="航班类型" prop="typeId">
<el-select
class="formItem"
v-model="queryParams.typeId"
placeholder="请选择航班类型"
clearable
>
<el-option
v-for="dict in selectOption.flightTypelist"
:key="dict.id"
:label="dict.chineseName"
:value="dict.id"
/>
<el-select class="formItem" v-model="queryParams.typeId" placeholder="请选择航班类型" clearable>
<el-option v-for="dict in selectOption.flightTypelist" :key="dict.id" :label="dict.chineseName"
:value="dict.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="航班状态" prop="statusId">
<el-select
class="formItem"
v-model="queryParams.statusId"
placeholder="请选择航班状态"
clearable
>
<el-option
v-for="dict in selectOption.flightStatuslist"
:key="dict.id"
:label="dict.chineseName"
:value="dict.id"
/>
<el-select class="formItem" v-model="queryParams.statusId" placeholder="请选择航班状态" clearable>
<el-option v-for="dict in selectOption.flightStatuslist" :key="dict.id" :label="dict.chineseName"
:value="dict.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="航班种类" prop="flightKindId">
<el-select
class="formItem"
v-model="queryParams.flightKindId"
placeholder="请选择航班种类"
clearable
>
<el-option
v-for="dict in selectOption.flightKindlist"
:key="dict.id"
:label="dict.chineseName"
:value="dict.id"
/>
<el-select class="formItem" v-model="queryParams.flightKindId" placeholder="请选择航班种类" clearable>
<el-option v-for="dict in selectOption.flightKindlist" :key="dict.id" :label="dict.chineseName"
:value="dict.id" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@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
>
<el-button
type="danger"
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['base:flightInfo:delete']"
>删除
<el-button type="primary" icon="el-icon-search" size="mini" @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>
<el-button type="primary" icon="el-icon-circle-check" size="mini" :disabled="ids.length == 0"
@click="handleFlightStatus('flightStatus10')" v-hasPermi="['base:flightInfo:open']">自动配舱开启</el-button>
<el-button type="primary" icon="el-icon-circle-close" size="mini" :disabled="ids.length == 0"
@click="handleFlightStatus('flightStatus80')" v-hasPermi="['base:flightInfo:close']">自动配舱关闭</el-button>
<el-button type="primary" icon="el-icon-circle-check" size="mini" :disabled="ids.length == 0"
@click="autoPushBatch('open')" v-hasPermi="['base:flightInfo:autoPushOpen']">自动推送开启</el-button>
<el-button type="primary" icon="el-icon-circle-close" size="mini" :disabled="ids.length == 0"
@click="autoPushBatch('close')" v-hasPermi="['base:flightInfo:autoPushClose']">自动推送关闭</el-button>
<el-button type="danger" icon="el-icon-delete" size="mini" :disabled="ids.length == 0" @click="handleDelete"
v-hasPermi="['base:flightInfo:delete']">删除
</el-button>
<el-button
type="primary"
icon="el-icon-circle-check"
size="mini"
:disabled="multiple"
@click="handleFlightStatus('flightStatus10')"
v-hasPermi="['base:flightInfo:open']"
>自动配舱开启</el-button
>
<el-button
type="primary"
icon="el-icon-circle-close"
size="mini"
:disabled="multiple"
@click="handleFlightStatus('flightStatus80')"
v-hasPermi="['base:flightInfo:close']"
>自动配舱关闭</el-button
>
</el-form>
<Tables
ref="flightInfoTable"
:data="findAllFltDatList"
:headerData="tableHeader"
:infoData="tableHeader"
:totalCount="total"
:loading="loading"
:limitSize="queryParams.limitSize"
:page="queryParams.pageNum"
:shiftKey="shiftKey"
:infoShow="false"
:height="tableHeight"
@tableSelect="tableSelect"
@tableSelectAll="tableSelectAll"
@currentChange="currentChange"
@sortChange="sortChange"
@sizeChange="sizeChange"
>
<template>
<el-table-column
v-if="findAllFltDatList.length > 0"
label="操作"
align="center"
class-name="small-padding fixed-width"
fixed="right"
>
<Tables ref="flightInfoTable" ductName="FlightInformation" :data="findAllFltDatList" :headerData="tableHeader"
:infoData="tableHeader" :order="true" :selection="true" :totalCount="total" :loading="loading"
:limitSize="queryParams.limitSize" :page="queryParams.pageNum" :shiftKey="shiftKey" :height="tableHeight"
:pageSizes="[20, 30, 40, 50, 100]" @tableSelect="tableSelect" @tableSelectAll="tableSelectAll"
@currentChange="currentChange" @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">
<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
>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['base:flightInfo:update']">修改</el-button>
</template>
</el-table-column>
</template>
</Tables>
<!-- 添加或修改对话框 -->
<el-dialog
:title="title"
:visible.sync="open"
width="60%"
:close-on-click-modal="false"
:append-to-body="true"
>
<el-form
ref="form"
:model="form"
:rules="rules"
label-position="right"
label-width="auto"
>
<el-dialog :title="title" :visible.sync="open" width="60%" :close-on-click-modal="false" :append-to-body="true">
<el-form ref="form" :model="form" :rules="rules" label-position="right" label-width="auto">
<el-row>
<el-col :span="12">
<el-form-item label="航班号" prop="fltNo">
<el-input
@blur="blurfltNo"
:disabled="formdisabled.fltNo"
style="width: 93%"
v-model="form.fltNo"
placeholder="请输入航班号"
maxlength="10"
/>
<el-input class="wid80" @blur="blurfltNo" :disabled="formdisabled.fltNo" v-model="form.fltNo"
placeholder="请输入航班号" maxlength="10" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="航班日期" prop="fltDate">
<el-date-picker
:disabled="formdisabled.fltDate"
clearable
size="small"
v-model="form.fltDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择航班日期"
>
<el-date-picker class="wid80" :disabled="formdisabled.fltDate" clearable size="small"
v-model="form.fltDate" type="date" value-format="yyyy-MM-dd" placeholder="选择航班日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="CutOff时间" prop="cutOffTime">
<el-select class="wid80" v-model="form.cutOffTime" clearable placeholder="选择时间(hh:mm:ss)" type="string"
filterable allow-create default-first-option>
<el-option v-for="item in selectOption.cutOffTime" :key="item" :label="item" :value="item">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="航班路线" prop="route">
<el-input
style="width: 93%"
v-model="form.route"
placeholder="请输入航班路线"
/>
<el-input class="wid80" v-model="form.route" placeholder="请输入航班路线" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="航班种类" prop="kindId">
<el-select v-model="form.kindId" placeholder="请选择航班种类">
<el-option
v-for="item in selectOption.flightKindlist"
:key="item.id"
:label="item.chineseName"
:value="item.id"
>
<el-select class="wid80" v-model="form.kindId" placeholder="请选择航班种类">
<el-option v-for="item in selectOption.flightKindlist" :key="item.id" :label="item.chineseName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="航班类型" prop="typeId">
<el-select v-model="form.typeId" placeholder="请选择航班类型">
<el-option
v-for="item in selectOption.flightTypelist"
:key="item.id"
:label="item.chineseName"
:value="item.id"
>
<el-select class="wid80" v-model="form.typeId" placeholder="请选择航班类型">
<el-option v-for="item in selectOption.flightTypelist" :key="item.id" :label="item.chineseName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="航班状态" prop="statusId">
<el-select
:disabled="true"
v-model="form.statusId"
placeholder="请选择航班状态"
>
<el-option
v-for="item in selectOption.flightStatuslist"
:key="item.id"
:label="item.chineseName"
:value="item.id"
>
<el-select class="wid80" :disabled="true" v-model="form.statusId" placeholder="请选择航班状态">
<el-option v-for="item in selectOption.flightStatuslist" :key="item.id" :label="item.chineseName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="原始重量(KG)" prop="originalWeight">
<el-input-number
@change="LowHighAvailable"
placeholder="请输入原始重量(KG)"
style="width: 93%"
v-model="form.originalWeight"
></el-input-number>
<el-input-number class="wid80" @change="LowHighAvailable" :precision="0" placeholder="请输入原始重量(KG)"
v-model="form.originalWeight"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="额外增重百分比" prop="extraWeightPercent">
<el-input-number
@change="LowHighAvailable"
placeholder="请输入额外增重百分比"
style="width: 93%"
v-model="form.extraWeightPercent"
></el-input-number>
<el-input-number class="wid80" @change="LowHighAvailable" :precision="0" placeholder="请输入额外增重百分比"
v-model="form.extraWeightPercent"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否开启高低价" prop="highLowPriceFlg">
<el-switch
@change="LowHighAvailable"
v-model="form.highLowPriceFlg"
:active-value="1"
:inactive-value="0"
active-color="#13ce66"
>
<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-row>
<el-row>
<el-col :span="12">
<el-form-item label="是否预审" prop="isNeedRequired">
<el-switch
:disabled="true"
v-model="form.isNeedRequired"
:active-value="1"
:inactive-value="0"
active-color="#13ce66"
>
<el-switch class="wid80" :disabled="true" v-model="form.isNeedRequired" :active-value="1"
:inactive-value="0" active-color="#13ce66">
</el-switch>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="高价百分比" prop="highPriceWeightPercent">
<el-input-number
:disabled="ishighPriceWeightPercent"
@change="LowHighAvailable"
placeholder="请输入高价百分比"
style="width: 93%"
v-model="form.highPriceWeightPercent"
></el-input-number>
<el-input-number class="wid80" :disabled="ishighPriceWeightPercent" @change="LowHighAvailable"
placeholder="请输入高价百分比" v-model="form.highPriceWeightPercent"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="低价百分比" prop="lowPriceWeightPercent">
<el-input-number
:disabled="true"
placeholder="请输入低价百分比"
style="width: 93%"
v-model="form.lowPriceWeightPercent"
></el-input-number>
<el-input-number class="wid80" :disabled="true" placeholder="请输入低价百分比"
v-model="form.lowPriceWeightPercent"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="高价可配重量" prop="highAvailableWeight">
<el-input-number
:disabled="true"
placeholder="请输入高价可配重量"
style="width: 93%"
v-model="form.highAvailableWeight"
:precision="2"
></el-input-number>
<el-input-number class="wid80" :disabled="true" placeholder="请输入高价可配重量" v-model="form.highAvailableWeight"
:precision="2"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="低价可配重量" prop="lowAvailableWeight">
<el-input-number
:disabled="true"
placeholder="请输入低价可配重量"
style="width: 93%"
v-model="form.lowAvailableWeight"
:precision="2"
></el-input-number>
<el-input-number class="wid80" :disabled="true" placeholder="请输入低价可配重量" v-model="form.lowAvailableWeight"
:precision="2"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="高价已配重量" prop="highAllocatedWeight">
<el-input-number
:disabled="true"
placeholder="请输入高价已配重量"
style="width: 93%"
v-model="form.highAllocatedWeight"
:precision="2"
></el-input-number>
<el-input-number class="wid80" :disabled="true" placeholder="请输入高价已配重量" v-model="form.highAllocatedWeight"
:precision="2"></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="低价已配重量" prop="lowAllocatedWeight">
<el-input-number
:disabled="true"
placeholder="请输入低价已配重量"
style="width: 93%"
v-model="form.lowAllocatedWeight"
:precision="2"
></el-input-number>
<el-input-number class="wid80" :disabled="true" placeholder="请输入低价已配重量" v-model="form.lowAllocatedWeight"
:precision="2"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="已配总重量" prop="alloctedWeight">
<el-input-number
:disabled="true"
placeholder="请输入已配总重量"
style="width: 93%"
v-model="form.alloctedWeight"
:precision="2"
></el-input-number>
<el-input-number class="wid80" :disabled="true" placeholder="请输入已配总重量" v-model="form.alloctedWeight"
:precision="2"></el-input-number>
</el-form-item>
</el-col>
</el-row>
......@@ -401,21 +227,12 @@
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<el-dialog
title="未删除成功航班"
width="40%"
center
:visible.sync="dialogTableVisible"
:close-on-click-modal="false"
:append-to-body="true"
>
<el-dialog title="未删除成功航班" width="40%" center :visible.sync="dialogTableVisible" :close-on-click-modal="false"
:append-to-body="true">
<el-table :data="gridData">
<el-table-column property="fltNo" label="航班号"></el-table-column>
<el-table-column property="fltDate" label="航班日期"></el-table-column>
<el-table-column
property="alloctedWeight"
label="已配重量"
></el-table-column>
<el-table-column property="alloctedWeight" label="已配重量"></el-table-column>
</el-table>
</el-dialog>
</div>
......@@ -430,6 +247,7 @@ import {
saveOrUpdate,
findFltCommonConf,
updateStatusBatch,
updateAutoPushBatch,
} from "@/api/findAllFltData";
export default {
name: "FlightInformationMaintenance",
......@@ -485,27 +303,6 @@ export default {
//表头
tableHeader: [
{
type: "selection",
name: "",
value: "",
width: "50",
align: "center",
sorTable: false,
fixed: true,
disabled: true,
},
{
type: "index",
name: "",
value: "",
width: "50",
align: "center",
sorTable: false,
fixed: false,
disabled: true,
},
{
type: "",
name: "航班日期",
value: "fltDate",
width: "100",
......@@ -515,7 +312,6 @@ export default {
disabled: true,
},
{
type: "",
name: "航班起飞时间",
value: "takeOffTime",
width: "120",
......@@ -525,7 +321,15 @@ export default {
disabled: true,
},
{
type: "",
name: "CutOff时间",
value: "cutOffTime",
width: "110",
align: "center",
sorTable: false,
fixed: false,
disabled: true,
},
{
name: "航班号",
value: "fltNo",
width: "100",
......@@ -535,7 +339,6 @@ export default {
disabled: true,
},
{
type: "",
name: "航班路线",
value: "route",
width: "140",
......@@ -545,7 +348,6 @@ export default {
disabled: true,
},
{
type: "",
name: "航班类型",
value: "typeName",
width: "100",
......@@ -555,7 +357,6 @@ export default {
disabled: true,
},
{
type: "",
name: "航班种类",
value: "flightKindName",
width: "100",
......@@ -565,7 +366,6 @@ export default {
disabled: true,
},
{
type: "",
name: "航班状态",
value: "statusName",
width: "100",
......@@ -575,7 +375,15 @@ export default {
disabled: true,
},
{
type: "",
name: "是否自动推送",
value: "pushDateSwitch",
width: "120",
align: "center",
sorTable: false,
fixed: false,
disabled: true,
},
{
name: "总重量",
value: "totalWeight",
width: "90",
......@@ -585,7 +393,6 @@ export default {
disabled: true,
},
{
type: "",
name: "原始重量(KG)",
value: "originalWeight",
width: "120",
......@@ -595,39 +402,35 @@ export default {
disabled: true,
},
{
type: "",
name: "总体积(cm³)",
value: "totalVolume",
width: "100",
name: "已配重量",
value: "alloctedWeight",
width: "90",
align: "center",
sorTable: false,
fixed: false,
disabled: true,
},
{
type: "",
name: "是否限制一票一件",
value: "ticketToPiece",
width: "140",
name: "是否需要预审",
value: "needRequired",
width: "130",
align: "center",
sorTable: false,
fixed: false,
disabled: true,
},
{
type: "",
name: "是否需要预审",
value: "needRequired",
width: "130",
name: "是否开启高低价",
value: "highLowPriceFlg",
width: "140",
align: "center",
sorTable: false,
fixed: false,
disabled: true,
},
{
type: "",
name: "是否开启高地价",
value: "highLowPriceFlg",
name: "是否限制一票一件",
value: "ticketToPiece",
width: "140",
align: "center",
sorTable: false,
......@@ -635,7 +438,6 @@ export default {
disabled: true,
},
{
type: "",
name: "额外增重百分比",
value: "extraWeightPercent",
width: "140",
......@@ -645,7 +447,6 @@ export default {
disabled: true,
},
{
type: "",
name: "高价百分比",
value: "highPriceWeightPercent",
width: "120",
......@@ -655,7 +456,6 @@ export default {
disabled: true,
},
{
type: "",
name: "低价百分比",
value: "lowPriceWeightPercent",
width: "120",
......@@ -665,17 +465,15 @@ export default {
disabled: true,
},
{
type: "",
name: "已配重量",
value: "alloctedWeight",
width: "90",
name: "总体积(cm³)",
value: "totalVolume",
width: "100",
align: "center",
sorTable: false,
fixed: false,
disabled: true,
},
{
type: "",
name: "已配体积(cm³)",
value: "alloctedVolume",
width: "120",
......@@ -685,7 +483,6 @@ export default {
disabled: true,
},
{
type: "",
name: "航班优先级",
value: "priorityName",
width: "100",
......@@ -695,7 +492,6 @@ export default {
disabled: true,
},
{
type: "",
name: "配舱优先级",
value: "priorityRuleName",
width: "100",
......@@ -705,7 +501,6 @@ export default {
disabled: true,
},
{
type: "",
name: "创建人",
value: "createUserName",
width: "90",
......@@ -715,7 +510,6 @@ export default {
disabled: true,
},
{
type: "",
name: "创建时间",
value: "createTime",
width: "100",
......@@ -725,7 +519,6 @@ export default {
disabled: true,
},
{
type: "",
name: "最后修改人",
value: "lastModifyUserName",
width: "120",
......@@ -735,7 +528,6 @@ export default {
disabled: true,
},
{
type: "",
name: "最后修改时间",
value: "lastModifyTime",
width: "120",
......@@ -804,10 +596,6 @@ export default {
sourceFlightAndFlightDate: [],
//高价百分比是否打开
ishighPriceWeightPercent: true,
//非单个禁用
//single: true,
//非多个禁用
multiple: true,
//遮罩层
loading: false,
//遮罩层
......@@ -830,6 +618,8 @@ export default {
},
created() {
//查询条件数据源
let date = new Date()
this.queryParams.fltDateStart = `${date.getFullYear()}-${(date.getMonth() + 1) > 9 ? (date.getMonth() + 1) : '0' + (date.getMonth() + 1)}-${(date.getDate()) > 9 ? date.getDate() : '0' + (date.getDate())}`
this.findFltConditionData();
if (this.$store.state.tagsView.cachedViews.length == 0) {
this.findAllFltData();
......@@ -838,8 +628,8 @@ export default {
activated() {
this.findAllFltData();
},
deactivated(){
this.findAllFltDatList = []
deactivated() {
this.findAllFltDatList = [];
},
mounted() {
window.addEventListener("keydown", (code) => {
......@@ -853,7 +643,7 @@ export default {
}
});
this.tableHeight =
window.innerHeight - this.$refs.queryForm.$el.offsetHeight - 150;
window.innerHeight - this.$refs.queryForm.$el.offsetHeight - 120;
},
methods: {
//输入航班号后
......@@ -949,7 +739,6 @@ export default {
/** 航班信息维护查询*/
findAllFltData() {
this.ids = [];
this.multiple = true;
this.loading = true;
if (this.queryParams.pageNum > 1) {
this.queryParams.limitStart =
......@@ -997,9 +786,9 @@ export default {
//原始重量
this.formdisabled.originalWeight = false;
},
//计算高价可配
//计算高价可配
LowHighAvailable() {
//判断是否开启高
//判断是否开启高
if (this.form.highLowPriceFlg) {
this.ishighPriceWeightPercent = false;
let Weight = 0;
......@@ -1014,14 +803,14 @@ export default {
if (this.form.highPriceWeightPercent >= 0) {
this.$set(
this.form,
"lowPriceWeightPercent",
100 - this.form.highPriceWeightPercent
"highAvailableWeight",
(Weight - this.form.alloctedWeight) *
(this.form.highPriceWeightPercent / 100)
);
this.$set(
this.form,
"highAvailableWeight",
(Weight - this.form.alloctedWeight) *
(this.form.highPriceWeightPercent / 100)
"lowPriceWeightPercent",
100 - this.form.highPriceWeightPercent
);
// this.form.HighAvailableWeight = Weightall * (this.form.highPriceWeightPercent / 100)
} else if (
......@@ -1039,7 +828,7 @@ export default {
this.form,
"highAvailableWeight",
(Weight - this.form.alloctedWeight) *
(this.form.highPriceWeightPercent / 100)
(this.form.highPriceWeightPercent / 100)
);
}
} else {
......@@ -1083,9 +872,7 @@ export default {
Weightall() {
let Weight = 0;
if (this.form.extraWeightPercent > 0) {
Weight =
this.form.originalWeight +
this.form.originalWeight * (this.form.extraWeightPercent / 100);
Weight = this.form.originalWeight * (this.form.extraWeightPercent / 100) + this.form.originalWeight;
} else {
Weight = this.form.originalWeight;
}
......@@ -1104,12 +891,12 @@ export default {
findFltById(row).then((response) => {
if (response.code == 200) {
this.form = response.data;
//是否开启高
//是否开启高
// this.form.highLowPriceFlg = this.form.highLowPriceFlg === 1 ? true : false;
//是否预审
// this.form.isNeedRequired = this.form.isNeedRequired === 1 ? true : false;
// 计算高价可配
this.LowHighAvailable();
// 计算高价可配
// this.LowHighAvailable();
} else {
this.msgError(response.msg);
}
......@@ -1117,7 +904,11 @@ export default {
},
/** 删除按钮操作 */
handleDelete(row) {
const fIds = this.ids;
let fIds = [];
this.ids.forEach(item => {
fIds.push(item.id)
})
console.log(fIds)
this.$confirm("是否确认删除所选数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
......@@ -1139,12 +930,12 @@ export default {
.then(() => {
this.dialogTableVisible = true;
})
.catch(() => {});
.catch(() => { });
} else {
this.msgSuccess(response.msg);
}
})
.catch(() => {});
.catch(() => { });
},
/** 提交按钮 */
submitForm: function () {
......@@ -1174,10 +965,12 @@ export default {
this.$message.warning("已删除的航班无法修改");
return;
}
//是否开启高
//是否开启高
// formdata.highLowPriceFlg = formdata.highLowPriceFlg ? 1 : 0;
//是否预审
// formdata.isNeedRequired = formdata.isNeedRequired ? 1 : 0;
//总重量更新
// formdata.totalWeight = this.Weightall()
//处理数据
saveOrUpdate(formdata).then((response) => {
if (response.code === 200) {
......@@ -1216,32 +1009,76 @@ export default {
//批量开启/关闭航班
handleFlightStatus(status) {
let handle = status == "flightStatus80" ? "关闭" : "开启";
if (this.ids.length == 0) {
this.msgError("请选择批量" + handle + "的航班");
return;
}
let data = {};
data.status = status;
data.updateIds = this.ids;
updateStatusBatch(data).then((response) => {
if (response.code === 200) {
this.msgSuccess(handle + "成功");
this.findAllFltData();
let data = {
updateIds: [],
};
this.ids.map(item => {
data.status = status;
if (status === 'flightStatus80') {
if (item.statusName === '已开启') {
data.updateIds.push(item.id)
}
} else {
this.msgError(response.msg);
if (item.statusName === '已关闭') {
data.updateIds.push(item.id)
}
}
})
if (data.updateIds.length > 0) {
updateStatusBatch(data).then((response) => {
if (response.code === 200) {
this.msgSuccess(handle + "成功");
this.findAllFltData();
} else {
this.msgError(response.msg);
}
});
}
},
//自动推送开关
autoPushBatch(status) {
let msg = status == "open" ? "开启" : "关闭";
let data = {
updateIds: [],
};
this.ids.map((item) => {
if (status === "open") {
data.status = "1";
if (item.pushDateSwitch != "1") {
data.updateIds.push(item.id);
}
} else if (status === "close") {
data.status = "2";
if (item.pushDateSwitch != "2") {
data.updateIds.push(item.id);
}
}
});
if (data.updateIds.length > 0) {
updateAutoPushBatch(data)
.then((res) => {
if (res.code === 200) {
this.msgSuccess(`自动推送${msg}成功`);
this.findAllFltData();
} else {
this.msgError(res.msg);
}
})
.catch(err => {
this.msgError(err);
});
} else {
this.msgSuccess(`自动推送${msg}成功`);
this.findAllFltData();
}
},
//多选框选中数据
tableSelect(val) {
this.ids = val.selection.map((item) => item.id);
this.multiple = !val.selection.length;
this.ids = val.selection;
},
//全选
tableSelectAll(val) {
this.ids = val.selection.map((item) => item.id);
this.multiple = !val.selection.length;
this.ids = val;
},
//分页
currentChange(val) {
......@@ -1263,12 +1100,12 @@ export default {
<style>
.el-table--striped .el-table__body tr.el-table__row--striped.current-row td,
.el-table__body tr.current-row > td {
.el-table__body tr.current-row>td {
background-color: #a0cfff;
}
.el-table--striped .el-table__body tr.hover-row.el-table__row--striped > td,
.el-table__body tr.hover-row > td {
.el-table--striped .el-table__body tr.hover-row.el-table__row--striped>td,
.el-table__body tr.hover-row>td {
background-color: #d9ecff !important;
}
</style>
......
<template>
<div class="cargoPage">
<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-form ref="cargoForm" class="form-header" label-position="right" label-width="auto" size="medium"
:model="formData">
<el-row type="flex" style="flexWrap: wrap !important">
<el-col :span="6">
<el-form-item label="配舱航班日期">
<el-date-picker
class="formItem"
v-model="cargoPlaneTime"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:value-format="valueFormat"
>
<el-date-picker class="formItem" v-model="cargoPlaneTime" type="daterange" range-separator="至"
start-placeholder="开始日期" end-placeholder="结束日期" :value-format="valueFormat" clearable>
</el-date-picker>
</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" :autosize="true"></el-input>
<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-option
v-for="item in findConditionData.cargoCustomsReturnStatus"
:label="item.chineseName"
:value="item.id"
:key="item.id"
>
<el-select placeholder="不限" v-model="formData.customsReceiptStatusId" class="formItem" multiple clearable>
<el-option v-for="item in findConditionData.cargoCustomsReturnStatus" :label="item.chineseName"
:value="item.id" :key="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="运单号">
<el-input
type="textarea"
v-model="formData.waybillNo"
class="formItem"
placeholder="请输入运单号(回车间隔)"
:autosize="true"
></el-input>
<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"
:key="item.id"
>
</el-option>
</el-select>
<el-select placeholder="不限" v-model="formData.typeId" class="formItem" clearable>
<el-option v-for="item in findConditionData.cargoType" :label="item.chineseName" :value="item.id"
:key="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="服务类型">
<el-select
placeholder="不限"
v-model="formData.serviceTypeId"
class="formItem"
filterable
clearable
>
<el-option
v-for="item in findConditionData.cargoServiceType"
:label="item.chineseName"
:value="item.id"
:key="item.id"
>
<el-select placeholder="不限" v-model="formData.serviceTypeId" class="formItem" filterable clearable>
<el-option v-for="item in findConditionData.cargoServiceType" :label="item.chineseName" :value="item.id"
:key="item.id">
</el-option>
</el-select>
</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"
:autosize="true"
></el-input>
<el-input type="textarea" v-model="ursa" class="formItem" placeholder="S_;P_;E2" :rows="1" 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"
:autosize="true"
></el-input>
<el-input type="textarea" v-model="siteName" class="formItem" placeholder="PVG;PEK" :rows="1" clearable>
</el-input>
</el-form-item>
</el-col>
<el-col :span="24" v-show="formShow">
<el-row type="flex" style="flexWrap: wrap!important">
<el-col v-show="formShow">
<el-row type="flex" style="flexWrap: wrap !important">
<el-col :span="6">
<el-form-item label="ACCS原航班日期">
<el-date-picker
class="formItem"
v-model="flightTime"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:value-format="valueFormat"
>
<el-date-picker class="formItem" v-model="flightTime" type="daterange" range-separator="至"
start-placeholder="开始日期" end-placeholder="结束日期" :value-format="valueFormat" clearable>
</el-date-picker>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="ACCS原航班号">
<el-input type="text" v-model="fltNo" class="formItem" placeholder="请输入ACCS航班号"></el-input>
<el-input type="text" v-model="fltNo" class="formItem" placeholder="请输入ACCS航班号" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="取件日期">
<el-date-picker
v-model="formData.pickUpDate"
type="date"
placeholder="选择日期"
:value-format="valueFormat"
>
<el-date-picker class="formItem" v-model="formData.pickUpDate" type="date" placeholder="选择日期"
:value-format="valueFormat" clearable>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="创建日期">
<el-date-picker
class="formItem"
v-model="createDate"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
:value-format="valueFormat"
>
<el-date-picker class="formItem" v-model="createDate" type="daterange" range-separator="至"
start-placeholder="开始日期" end-placeholder="结束日期" :value-format="valueFormat" clearable>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="ACCSpool">
<el-select placeholder="不限" v-model="formData.accsPool" class="formItem" clearable>
<el-option value="Pre-MDE" key="Pre-MDE">
</el-option>
<el-option value="OSPR" key="OSPR">
</el-option>
<el-option value="Manifest" key="Manifest">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="货物状态">
<el-select
placeholder="不限"
v-model="formData.statusId"
class="formItem"
filterable
clearable
>
<el-option
v-for="item in findConditionData.cargoStatus"
:label="item.chineseName"
:value="item.id"
:key="item.id"
>
<el-select placeholder="不限" v-model="formData.statusId" class="formItem" filterable clearable>
<el-option v-for="item in findConditionData.cargoStatus" :label="item.chineseName" :value="item.id"
:key="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否自动">
<el-select
placeholder="不限"
v-model="formData.allocationTypeId"
class="formItem"
clearable
>
<el-option
label="手动"
value="1"
>
</el-option>
<el-option
label="自动"
value="2"
>
</el-option>
<el-select placeholder="不限" v-model="formData.allocationTypeId" class="formItem" clearable>
<el-option label="手动" value="1"> </el-option>
<el-option label="自动" value="2"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="配舱状态">
<el-select placeholder="不限" v-model="formData.hasFlight" class="formItem" clearable>
<el-option label="已配" value="1"> </el-option>
<el-option label="未配" value="0"> </el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-col>
</el-row>
<div style="paddingLeft: 10px;marginTop:20px">
<el-button
type="primary"
icon="el-icon-search"
size="small"
:loading="tableLoading"
@click="select(0)"
>查询</el-button
>
<el-button :type="downLoadingTip.downloading?'warning':'primary'" size="small" @click="xlse(0)" :disabled="tableData.length==0" :loading="downLoadingTip.downloading" v-hasPermi="['base:cargo:export']"
>{{downLoadingTip.downloading?downLoadingTip.tip:"导出本页查询结果"}}</el-button
>
<el-button :type="downLoadingTip.downloading?'warning':'primary'" size="small" @click="xlse(1)" :disabled="tableData.length==0" :loading="downLoadingTip.downloading" v-hasPermi="['base:cargo:export']"
>{{downLoadingTip.downloading?downLoadingTip.tip:"导出全部查询结果"}}</el-button
>
<span style="marginLeft:20px;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 style="paddingLeft: 10px; marginTop: 20px">
<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'"
size="small" @click="xlse(0)" :disabled="tableData.length == 0" :loading="downLoadingTip.downloading">{{
downLoadingTip.downloading ? downLoadingTip.tip : "导出本页查询结果"
}}</el-button>
<el-button v-hasPermi="['base:cargo:export']" :type="downLoadingTip.downloading ? 'warning' : 'primary'"
size="small" @click="xlse(1)" :disabled="tableData.length == 0" :loading="downLoadingTip.downloading">{{
downLoadingTip.downloading ? downLoadingTip.tip : "导出全部查询结果"
}}</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>
<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>
<div class="formShow" @click="formShow = !formShow">
<i class="el-icon-s-tools"></i>{{ formShow ? "收起条件" : "更多条件" }}
</div>
</div>
</el-form>
<Tables
ref="newTables"
:data="tableData"
:headerData="tableHeader"
:totalCount="totalCount"
:loading="tableLoading"
:limitSize="limitSize"
:limitStart="limitStart"
:page="page"
:shiftKey="shiftKey"
:height="tableHeight"
@tableSelect="tableSelect"
@tableSelectAll="tableSelectAll"
@currentChange="currentChange"
@sortChange="sortChange"
></Tables>
<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>
<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%">
<el-table-column type="index" label="序号" align="center">
</el-table-column>
<el-table-column v-for="(item, index) in releaseHeader" header-align="center" :align="item.align"
:prop="item.value" :label="item.name" :width="item.width" :key="index" :show-overflow-tooltip="true">
</el-table-column>
</el-table>
<div slot="footer">
<el-button type="primary" @click="close">确 定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { findConditionData, findCargoData } from "@/api/cargoSelect";
import { findConditionData, findCargoData, releaseCargo } from "@/api/cargoSelect";
import { downLoadXlsx } from "@/utils/zipdownload";
import { upCase } from "@/utils/FedEx"
import { upCase } from "@/utils/FedEx";
export default {
name:"QueryCargo",
name: "QueryCargo",
data() {
return {
formData: {
......@@ -266,6 +192,7 @@ export default {
createTimeStart: null,
createTimeEnd: null,
pickUpDate: null,
hasFlight: null,
waybillNo: "",
siteName: "",
fltNo: "",
......@@ -280,454 +207,478 @@ export default {
dataSources: "",
customsReceiptStatusId: null,
big: null,
cargoPlaneNo:null,
cargoPlaneStart:null,
cargoPlaneEnd:null,
cargoPlaneNo: null,
cargoPlaneStart: null,
cargoPlaneEnd: null,
limitStart: 1,
limitSize:100,
limitSize: 100,
}, //表单数据
tableHeader: [
{
type: "selection",
name: "",
value: "",
width: "50",
align: "center",
sorTable: false,
fixed: true,
disabled:true
},
{
type: "index",
name: "",
value: "",
width: "50",
align: "center",
sorTable: false,
fixed: false,
disabled:true
},
{
type: "",
name: "口岸代码",
value: "portName",
width: "120",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true,
},
{
type: "",
name: "取件日期",
value: "pickUpDate",
width: "120",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "取件扫描号",
value: "pickUpScanNo",
width: "120",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "站点",
value: "siteName",
width: "80",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "运单号",
value: "waybillNo",
width: "150",
width: "120",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "总单号",
value: "totalWaybillNo",
width: "150",
width: "120",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "服务类型",
value: "serviceTypeName",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "服务代码",
value: "serviceCode",
width: "90",
width: "100",
align: "center",
sorTable: false,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "URSA",
value: "ursa",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
name: "推送状态",
value: "cargoAllocationDataStatus",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled: true
},
{
name: "配舱状态",
value: "flightIdImac",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled: true
},
{
name: "释放状态",
value: "releasing",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled: true
},
{
type: "",
name: "申报类型",
value: "typeName",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
name: "ACCSpool",
value: "accsPool",
width: "120",
align: "center",
sorTable: true,
fixed: false,
disabled: true
},
{
type: "",
name: "HandlingCode",
value: "handingCode",
width: "150",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "subcategory",
value: "subCategory",
width: "150",
width: "140",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "件数",
value: "qty",
width: "80",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "实际重量",
value: "actualWeight",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "收件人国家代码",
value: "consigneeCountry",
width: "150",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "品名描述",
value: "nameDescription",
width: "100",
align: "center",
sorTable: false,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "海关回执状态",
value: "customsReceiptStatusName",
width: "140",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "预审状态",
value: "preQualificationStatus",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "航班预审意见",
value: "caPretrialOpinion",
width: "140",
width: "120",
align: "center",
sorTable: false,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "货物状态",
value: "statusName",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "终配航班号",
value: "finalFlightNo",
width: "130",
width: "120",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "终配航班日期",
value: "finalFlightTime",
width: "150",
width: "140",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "二配航班号",
value: "twoMatchFlightNo",
width: "130",
width: "120",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "二配航班日期",
value: "twoMatchFlightTime",
width: "150",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "预配航班号",
value: "preplanFlightNo",
width: "130",
width: "120",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "预配航班日期",
value: "preplanFlightTime",
width: "150",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "ACCS原航班号",
value: "fltNoAccs",
width: "140",
width: "150",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "ACCS原航班日期",
value: "fltDateAccs",
width: "150",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "ACCS原航线",
value: "accsFlightRoute",
width: "150",
width: "140",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "是否RDE手工录入",
value: "manualRde",
width: "170",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "是否自动",
value: "cargoRulesStatus",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "发件人账号",
value: "shipperAccount",
width: "150",
width: "120",
align: "center",
sorTable: false,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "发件公司中文名称",
value: "shipperCompany",
width: "150",
align: "center",
sorTable: false,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "始发地城市名称",
value: "originCity",
width: "150",
width: "130",
align: "center",
sorTable: false,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "收件地",
value: "destinationSiteName",
width: "90",
align: "center",
sorTable: false,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "尺寸",
value: "sizeStr",
width: "80",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "大货预审意见(是否可以配置航班)",
value: "bigPretrialOpinion",
width: "250",
align: "center",
sorTable: false,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "大货预审时间",
value: "bigPretrialTime",
width: "150",
width: "120",
align: "center",
sorTable: false,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "海关回执时间",
value: "customsReceiptTime",
width: "150",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "航班预审时间",
value: "caPretrialTime",
width: "150",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "创建人",
value: "createUserName",
width: "90",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
{
type: "",
name: "创建时间",
value: "createTime",
width: "120",
width: "100",
align: "center",
sorTable: true,
fixed: false,
disabled:true
disabled: true
},
], //表头数据
releaseHeader: [
{
name: "提示信息",
value: "msg",
width: "550",
align: "center",
},
{
name: "口岸代码",
value: "portName",
width: "",
align: "center",
},
{
name: "运单号",
value: "waybillNo",
width: "",
align: "center",
},
{
name: "释放状态",
value: "releasing",
width: "",
align: "center",
},
{
name: "ACCSpool",
value: "accsPool",
width: "",
align: "center",
},
{
name: "货物状态",
value: "statusName",
width: "",
align: "center",
},
{
name: "ACCS原航班号",
value: "fltNoAccs",
width: "",
align: "center",
},
{
name: "ACCS原航班日期",
value: "fltDateAccs",
width: "",
align: "center",
},
],
findConditionData: {}, //货物查询条件
tableData: [], //表格数据
allWeight: 0,
......@@ -735,22 +686,23 @@ export default {
shiftKey: false,
valueFormat: "yyyy-MM-dd",
tableLoading: false,
downLoadingTip:{
tip:"",
downloading:false,
},
downLoadingTip: {
tip: "",
downloading: false,
}, //导出状态
totalCount: 0,
selectTable: [],
flightTime: [],
prepalyFlightTime: [],
cargoPlaneTime:[],
cargoPlaneTime: [],
createDate: [],
limitStart: 1,
limitSize: 100, //无限制-1
page:1,
progress:0,
tableHeight:null,
formShow:true,
page: 1,
progress: 0,
tableHeight: null,
dialogVisible: false,
formShow: true, //菜单隐藏
};
},
created() {
......@@ -768,16 +720,16 @@ export default {
},
activated() {
if(this.$store.state.tagsView.cachedViews.length > 0 ){
this.$store.state.tagsView.cachedViews.forEach(item=>{
if(item === 'QueryCargo'){
this.totalCount>0?this.select():''
if (this.$store.state.tagsView.cachedViews.length > 0) {
this.$store.state.tagsView.cachedViews.forEach(item => {
if (item === 'QueryCargo') {
this.totalCount > 0 ? this.select() : ''
}
})
}
},
deactivated(){
deactivated() {
this.tableData = []
},
......@@ -792,9 +744,13 @@ export default {
this.shiftKey = false;
}
});
this.tableHeight = window.innerHeight - this.$refs.cargoForm.$el.offsetHeight-80
this.tableHeight = window.innerHeight - this.$refs.cargoForm.$el.offsetHeight - 50
},
watch: {
formShow(val, oldVal) {
this.tableHeight = window.innerHeight - this.$refs.cargoForm.$el.offsetHeight - 120
}
},
methods: {
clear() {
this.$refs.cargoForm.resetFields();
......@@ -806,12 +762,13 @@ export default {
this.allQty = 0;
this.tableLoading = true;
this.dataInfo();
if(val === 0){
if (val === 0) {
this.formData.limitStart = 1;
this.limitStart = 1;
this.page = 1;
}
findCargoData(this.formData).then((res) => {
findCargoData(this.formData)
.then((res) => {
if (res.code == 200) {
this.tableData = res.data.list;
this.totalCount = res.data.totalCount;
......@@ -832,136 +789,200 @@ export default {
});
}
this.tableLoading = false;
}).catch(()=>{
})
.catch(() => {
this.tableLoading = false;
});
this.$refs.newTables.clearTable();
this.cargoTotal();
},
//释放仓位
release() {
let idList = []
this.selectTable.map(item => {
item.msg = ''
idList.push(item.id)
})
releaseCargo(idList).then(res => {
if (res.code === 200) {
this.$message({
message: res.msg,
type: "success",
});
} else if (res.code === 201) {
this.selectTable.map(item => {
res.data['success'].map(val => {
val === item.id ? item.msg = item.msg + '操作成功,正在释放中。' : ''
})
res.data['accsPoolFlase'].map(val => {
val === item.id ? item.msg = item.msg + 'Manifest状态不能释放。' : ''
})
res.data['existReleasing'].map(val => {
val === item.id ? item.msg = item.msg + '正在释放中,请勿重复释放。' : ''
})
res.data['noFlight'].map(val => {
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",
});
}
}).catch(err => {
console.log(err)
})
},
//关闭弹窗
close() {
this.dialogVisible = false
this.selectTable = []
this.select()
},
//数据初始化
dataInfo(){
if(this.formData.customsReceiptStatusId != null && this.formData.customsReceiptStatusId.length < 1){
dataInfo() {
if (
this.formData.customsReceiptStatusId != null &&
this.formData.customsReceiptStatusId.length < 1
) {
this.formData.customsReceiptStatusId = null;
}
if (this.createDate != null && this.createDate.length > 0) {
this.formData.createTimeStart = this.createDate[0];
this.formData.createTimeEnd = this.createDate[1];
}else{
} else {
this.formData.createTimeStart = null;
this.formData.createTimeEnd = null;
}
if (this.prepalyFlightTime != null && this.prepalyFlightTime.length > 0) {
this.formData.prematchFltDateStart = this.prepalyFlightTime[0];
this.formData.prematchFltDateEnd = this.prepalyFlightTime[1];
}else{
this.formData.prematchFltDateStart ="";
} else {
this.formData.prematchFltDateStart = "";
this.formData.prematchFltDateEnd = "";
}
if (this.flightTime != null && this.flightTime.length > 0) {
this.formData.fltDateStart = this.flightTime[0];
this.formData.fltDateEnd = this.flightTime[1];
}else{
} else {
this.formData.fltDateStart = "";
this.formData.fltDateEnd = "";
}
if(this.cargoPlaneTime != null && this.cargoPlaneTime.length > 0){
if (this.cargoPlaneTime != null && this.cargoPlaneTime.length > 0) {
this.formData.cargoPlaneStart = this.cargoPlaneTime[0];
this.formData.cargoPlaneEnd = this.cargoPlaneTime[1];
}else{
} else {
this.formData.cargoPlaneStart = null;
this.formData.cargoPlaneEnd = null;
}
if(this.formData.waybillNo){
if (this.formData.waybillNo) {
this.formData.waybillNo = this.formData.waybillNo.trim();
}
if (this.formData.hasFlight == "") {
this.formData.hasFlight = null
}
this.formData.limitStart = this.limitStart;
this.formData.limitSize = 100;
},
//总和
cargoTotal(){
cargoTotal() {
this.allWeight = 0;
this.allQty = 0;
if(this.selectTable.length > 0){
this.selectTable.forEach(item=>{
if (this.selectTable.length > 0) {
this.selectTable.forEach((item) => {
this.allWeight = this.allWeight + item.actualWeight;
this.allQty = this.allQty + item.qty;
})
});
this.allWeight = this.allWeight.toFixed(2);
this.allQty = this.allQty.toFixed();
}
},
//表格多选
tableSelect(val){
tableSelect(val) {
this.selectTable = val.selection;
this.cargoTotal();
},
//表格全选
tableSelectAll(val){
tableSelectAll(val) {
this.selectTable = val;
this.cargoTotal();
},
//分页
currentChange(val){
currentChange(val) {
this.formData.limitStart = val.start;
this.limitStart = val.start;
this.page = val.page;
this.select()
this.select();
},
//排序
sortChange(val){
let data = []
let nullData = []
this.tableData.forEach(item=>{
if(item[val.prop]){
data.push(item)
}else{
nullData.push(item)
}
})
data = data.sort(this.$refs.newTables.compare(val.prop,val.order))
if(val.order != "ascending"){
this.tableData = nullData.concat(data)
}else{
this.tableData = data.concat(nullData)
sortChange(val) {
let data = [];
let nullData = [];
this.tableData.forEach((item) => {
if (item[val.prop]) {
data.push(item);
} else {
nullData.push(item);
}
});
data = data.sort(this.$refs.newTables.compare(val.prop, val.order));
if (val.order != "ascending") {
this.tableData = nullData.concat(data);
} else {
this.tableData = data.concat(nullData);
}
this.tableData.forEach((item, index = 0) => {
item.index = index;
});
},
sizeChange(val) {
this.limitSize = val
this.select(0);
},
// 导出表格
xlse(page) {
this.progress = 1;
this.downLoadingTip.downloading = true;
let cargoXlse = {title:"货物导出表",cargoConditionDto:{}};
let cargoXlse = { title: "货物导出表", cargoConditionDto: {} };
this.dataInfo();
cargoXlse.cargoConditionDto = this.formData;
cargoXlse.cargoConditionDto.limitSize = this.limitSize;
if (page == 0) {
this.downLoadingTip.tip = "正在导出本页结果集"
this.downLoadingTip.tip = "正在导出本页结果集";
cargoXlse.cargoConditionDto.limitStart = this.limitStart;
downLoadXlsx("/cargo/excel",cargoXlse,"货物表").then(()=>{
this.downLoadingTip.downloading = false;
this.downLoadingTip.tip = ""
this.progress = 100;
}).catch(()=>{
this.downLoadingTip.downloading = false;
this.downLoadingTip.tip = "";
})
} else {
if(this.totalCount < 80000){
this.downLoadingTip.tip = "正在导出全部结果集请耐心等待"
cargoXlse.cargoConditionDto.limitStart = 0;
cargoXlse.cargoConditionDto.limitSize = -1;
downLoadXlsx("/cargo/excel",cargoXlse,"货物表").then(()=>{
downLoadXlsx("/cargo/excel", cargoXlse, "货物表")
.then(() => {
this.downLoadingTip.downloading = false;
this.downLoadingTip.tip = ""
this.downLoadingTip.tip = "";
this.progress = 100;
}).catch(()=>{
this.downLoadingTip.downloading = false;
this.downLoadingTip.tip = ""
})
}else{
.catch(() => {
this.downLoadingTip.downloading = false;
this.downLoadingTip.tip = "";
});
} else {
if (this.totalCount < 80000) {
this.downLoadingTip.tip = "正在导出全部结果集请耐心等待";
cargoXlse.cargoConditionDto.limitStart = 0;
cargoXlse.cargoConditionDto.limitSize = -1;
downLoadXlsx("/cargo/excel", cargoXlse, "货物表")
.then(() => {
this.downLoadingTip.downloading = false;
this.downLoadingTip.tip = "";
this.progress = 100;
})
.catch(() => {
this.downLoadingTip.downloading = false;
this.downLoadingTip.tip = "";
});
} else {
this.downLoadingTip.downloading = false;
this.$message({
message: "导出数据量过大,请不要超过8万条",
......@@ -996,19 +1017,19 @@ export default {
this.formData.ursa = upCase(val);
},
},
cargoPlaneNo:{
cargoPlaneNo: {
get: function () {
return this.formData.cargoPlaneNo;
},
set: function (val) {
this.formData.cargoPlaneNo = upCase(val);
},
}
},
},
};
</script>
<style scoped>
<style lang="scss" scoped>
.tips {
display: inline-block;
color: #606266;
......@@ -1016,19 +1037,21 @@ export default {
margin-top: 10px;
margin-left: 50px;
}
.progress{
width:200px;
.progress {
width: 200px;
display: inline-block;
margin:0 0 0 20px;
margin: 0 0 0 20px;
}
.formShow{
.formShow {
width: max-content;
height:48px;
height: 48px;
line-height: 48px;
font-weight: 900;
color: rgb(64, 158, 255);
font-size: 14px;
float: right;
margin-right:20px;
margin-right: 20px;
}
</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-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="">
......@@ -48,12 +37,8 @@
</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-switch v-model="menuData.menuStatus" active-color="#13ce66" inactive-color="#ff4949"
:disabled="menuFormDisabled"></el-switch>
</el-form-item>
</el-col>
<el-col :span="24">
......@@ -114,15 +99,15 @@ export default {
data() {
return {
menuForm: {},
rules:{}
rules: {}
};
},
updated() {
this.menuForm = this.menuData;
},
watch:{
dialogVisible(val,oldVal){
if(val){
watch: {
dialogVisible(val, oldVal) {
if (val) {
this.menuForm = this.menuData;
}
}
......@@ -134,7 +119,7 @@ export default {
selected(val) {
console.log(val);
},
submit() {},
submit() { },
},
};
</script>
......
......@@ -8,78 +8,34 @@
>新增菜单</el-button
>
</div> -->
<el-table
:data="data"
row-key="id"
fit
border
stripe
highlightCurrentRow
v-loading="loading"
default-expand-all
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
>
<el-table :data="data" row-key="id" fit border stripe highlightCurrentRow v-loading="loading" default-expand-all
: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"
>
<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">
<template slot-scope="scope">
<el-tag
:type="scope.row.menuType === 'B' ? '' : 'success'"
disable-transitions
>{{ scope.row.menuType === "B" ? "按钮" : "菜单" }}</el-tag
>
<el-tag :type="scope.row.menuType === 'B' ? '' : 'success'" disable-transitions>{{ scope.row.menuType ===
"B" ? "按钮" : "菜单"
}}</el-tag>
</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"
>
<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">
</el-table-column>
</template>
<el-table-column
header-align="center"
align="center"
label="操作"
width="auto"
>
<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>
<el-button type="primary" size="mini" @click="buttonClick(scope)"
>查看</el-button
> -->
<el-button
:type="scope.row.status == 1 ? 'warning' : 'primary'"
v-hasPermi="['system:menu:openClose']"
size="mini"
@click="menuStatus(scope)"
v-if="scope.row.menuType == 'C'"
>{{ scope.row.status == 1 ? "停用菜单" : "启用菜单" }}</el-button
>
<el-button
type="danger"
size="mini"
v-hasPermi="['system:menu:delete']"
@click="removeMenu(scope)"
v-if="scope.row.menuType == 'C'"
>删除菜单</el-button
>
<el-button :type="scope.row.status == 1 ? 'warning' : 'primary'" v-hasPermi="['system:menu:openClose']"
size="mini" @click="menuStatus(scope)" v-if="scope.row.menuType == 'C'">{{ scope.row.status == 1 ? "停用菜单" :
"启用菜单"
}}</el-button>
<el-button type="danger" size="mini" v-hasPermi="['system:menu:delete']" @click="removeMenu(scope)"
v-if="scope.row.menuType == 'C'">删除菜单</el-button>
</template>
</el-table-column>
</el-table>
......@@ -144,7 +100,7 @@ export default {
{
name: "菜单名",
value: "title",
width: "200",
width: "",
align: "left",
sorTable: false,
},
......@@ -220,9 +176,9 @@ export default {
res.data.length > 0
? (this.data = res.data)
: this.$message({
message: "数据为空",
type: "warning",
});
message: "数据为空",
type: "warning",
});
} else {
this.$message({
message: res.msg,
......@@ -275,7 +231,7 @@ export default {
data.status = row.row.status == 1 ? "2" : "1";
this.statusUpdate(data);
})
.catch(() => {});
.catch(() => { });
},
//菜单删除
......@@ -291,13 +247,13 @@ export default {
data.status = "0";
this.statusUpdate(data);
})
.catch(() => {});
.catch(() => { });
},
formatter(row, column, cellValue, index) {
if (dictLabels[column.property]) {
if (dictLabels[column.property][cellValue]) {
return dictLabels[column.property][cellValue];
if (dictLabels["menu"][column.property]) {
if (dictLabels["menu"][column.property][cellValue]) {
return dictLabels["menu"][column.property][cellValue];
}
}
return cellValue;
......
<template>
<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-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-row :gutter="10">
<el-col :span="12">
<el-form-item label="角色名:" prop="name">
<el-input
placeholder="请输入角色名"
v-model.trim="roleForm.name"
:disabled="roleFormDisabled"
v-if="!roleFormDisabled"
clearable
></el-input>
<el-input placeholder="请输入角色名" v-model.trim="roleForm.name" :disabled="roleFormDisabled"
v-if="!roleFormDisabled" clearable></el-input>
<div v-else>{{ roleData.name }}</div>
</el-form-item>
</el-col>
<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>
<el-input v-model="roleForm.remark" type="textarea" placeholder="请输入角色描述" :disabled="roleFormDisabled"
v-if="!roleFormDisabled" clearable></el-input>
<div v-else>{{ roleData.remark }}</div>
</el-form-item>
</el-col>
......@@ -58,31 +32,16 @@
</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"
:default-checked-keys="roleData.menuIds"
accordion
>
<el-tree ref="tree" :data="treeData" node-key="id" :props="defaultProps" :show-checkbox="true"
:default-checked-keys="roleData.menuIds" accordion>
</el-tree>
</el-form-item>
</el-col>
</el-row>
<el-form-item>
<el-button
type="primary"
v-if="!roleFormDisabled"
size="mini"
:loading="loading"
@click="submit"
>提交</el-button
>
<el-button type="primary" size="mini" @click="handleClose"
>取消</el-button
>
<el-button type="primary" v-if="!roleFormDisabled" size="mini" :loading="loading" @click="submit">提交
</el-button>
<el-button type="primary" size="mini" @click="handleClose">取消</el-button>
</el-form-item>
</el-form>
</el-drawer>
......@@ -173,7 +132,7 @@ export default {
let formData = {};
this.loading = true;
let arr = [];
arr = this.$refs.tree.getCheckedKeys().filter((item,index)=>{
arr = this.$refs.tree.getCheckedKeys().filter((item, index) => {
return this.$refs.tree.getCheckedKeys().indexOf(item) == index
})
formData.menuIdList = arr;
......@@ -186,7 +145,7 @@ export default {
this.loading = false;
if (res.code === 200) {
this.$message({
message: "操作成功",
message: "操作成功,新增权限需重新登陆后刷新。",
type: "success",
});
this.$emit("handleClose", false);
......@@ -224,7 +183,7 @@ export default {
data.push(menuItem)
if (item.children && item.children.length) {
menuItem.children = this.treeDataInfo(item.children);
menuItem.children.unshift({id:item.id,title:`${item.title}(菜单)`})
menuItem.children.unshift({ id: item.id, title: `${item.title}(菜单)` })
}
});
return data;
......
......@@ -4,24 +4,13 @@
<el-row :gutter="50">
<el-col :span="6">
<el-form-item label="角色名称">
<el-input
v-model="formData.name"
placeholder="请输入角色名称"
clearable
></el-input>
<el-input v-model="formData.name" placeholder="请输入角色名称" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="创建时间">
<el-date-picker
v-model="createTime"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
clearable
>
<el-date-picker v-model="createTime" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" value-format="yyyy-MM-dd" clearable>
</el-date-picker>
</el-form-item>
</el-col>
......@@ -36,61 +25,31 @@
</el-row>
</el-form>
<div style="margin:20px">
<el-button
type="primary"
icon="el-icon-search"
size="mini"
:loading="tableLoading"
@click="selectRoleList(0)"
>搜索</el-button
>
<el-button type="primary" icon="el-icon-plus" size="mini" @click="addRole" v-hasPermi="['system:role:add']"
>新增角色</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" :loading="tableLoading" @click="selectRoleList(0)">搜索
</el-button>
<el-button type="primary" icon="el-icon-plus" size="mini" @click="addRole" v-hasPermi="['system:role:add']">新增角色
</el-button>
</div>
<Tables
:data="data"
:headerData="tableHeader"
:infoData="tableHeader"
:totalCount="total"
:limitSize="formData.size"
:page="formData.page"
:pageSizes="[20,30,40,50]"
:loading="tableLoading"
height="600"
@sizeChange="sizeChange"
@currentChange="currentChange"
>
<template>
<Tables ductName="role" :data="data" :headerData="tableHeader" :infoData="tableHeader" :totalCount="total"
:limitSize="formData.size" :page="formData.page" :pageSizes="[20, 30, 40, 50]" :loading="tableLoading"
height="600" @sizeChange="sizeChange" @currentChange="currentChange">
<template slot="optionColumn">
<el-table-column header-align="center" align="center" label="操作">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="buttonClick(scope, 0)"
>查看</el-button
>
<el-button type="primary" size="mini" @click="buttonClick(scope, 1)" v-hasPermi="['system:role:update']"
>修改</el-button
>
<el-button
:type="scope.row.valid == 1 ? 'warning' : 'primary'"
size="mini"
v-hasPermi="['system:role:openClose']"
@click="roleStatus(scope)"
>{{ scope.row.valid == 1 ? "停用" : "启用" }}</el-button
>
<el-button type="danger" size="mini" @click="removeRole(scope)" v-hasPermi="['system:role:delete']"
>删除角色</el-button
>
<el-button type="primary" size="mini" @click="buttonClick(scope, 0)">查看</el-button>
<el-button type="primary" size="mini" @click="buttonClick(scope, 1)" v-hasPermi="['system:role:update']">修改
</el-button>
<el-button :type="scope.row.valid == 1 ? 'warning' : 'primary'" size="mini"
v-hasPermi="['system:role:openClose']" @click="roleStatus(scope)">{{ scope.row.valid == 1 ? "停用" : "启用" }}
</el-button>
<el-button type="danger" size="mini" @click="removeRole(scope)" v-hasPermi="['system:role:delete']">删除角色
</el-button>
</template>
</el-table-column>
</template>
</Tables>
<Drawer
:drawer="drawer"
:drawerTitle="drawerTitle"
:roleFormDisabled="roleFormDisabled"
:roleData="roleData"
@handleClose="handleClose"
></Drawer>
<Drawer :drawer="drawer" :drawerTitle="drawerTitle" :roleFormDisabled="roleFormDisabled" :roleData="roleData"
@handleClose="handleClose"></Drawer>
</div>
</template>
......@@ -103,7 +62,7 @@ import {
updateRoleStatus,
} from "@/api/system/user.js";
export default {
name:"RoleConfig",
name: "RoleConfig",
components: {
Drawer,
},
......@@ -120,67 +79,52 @@ export default {
data: [], //表格数据
tableHeader: [
{
type: "index",
name: "",
value: "",
width: "",
align: "center",
sorTable: false,
disabled:true
},
{
type: "",
name: "角色名称",
value: "name",
width: "150px",
align: "center",
sorTable: false,
disabled:true
disabled: true
},
{
type: "",
name: "角色状态",
value: "valid",
width: "150px",
align: "center",
sorTable: false,
disabled:true
disabled: true
},
{
type: "",
name: "创建人",
value: "createUserName",
width: "150px",
align: "center",
sorTable: false,
disabled:true
disabled: true
},
{
type: "",
name: "创建时间",
value: "createTime",
width: "150px",
align: "center",
sorTable: false,
disabled:true
disabled: true
},
{
type: "",
name: "修改时间",
value: "updateTime",
width: "150px",
align: "center",
sorTable: false,
disabled:true
disabled: true
},
{
type: "",
name: "备注",
value: "remark",
width: "400px",
align: "center",
sorTable: false,
disabled:true
disabled: true
},
], //表头数据
roleData: {}, //角色详情
......@@ -193,20 +137,20 @@ export default {
};
},
created() {
if(this.$store.state.tagsView.cachedViews.length == 0){
if (this.$store.state.tagsView.cachedViews.length == 0) {
this.selectRoleList();
}
},
activated(){
activated() {
this.selectRoleList();
},
deactivated(){
deactivated() {
this.data = []
},
methods: {
//角色列表
selectRoleList(val) {
if(val == 0){
if (val == 0) {
this.formData.page = 1
}
this.tableLoading = true;
......@@ -341,7 +285,7 @@ export default {
}
});
})
.catch(() => {});
.catch(() => { });
} else {
this.$message({
message: res.msg,
......@@ -360,7 +304,7 @@ export default {
this.formData.page = val.page;
this.selectRoleList();
},
sizeChange(val){
sizeChange(val) {
this.formData.size = val;
this.selectRoleList()
}
......
......@@ -4,20 +4,12 @@
<el-row :gutter="50">
<el-col :span="6">
<el-form-item label="用户姓名">
<el-input
placeholder="请输入用户名称"
v-model="formData.username"
clearable
></el-input>
<el-input placeholder="请输入用户名称" v-model="formData.username" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="手机号码">
<el-input
placeholder="请输入手机号码"
v-model="formData.phone"
clearable
></el-input>
<el-input placeholder="请输入手机号码" v-model="formData.phone" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
......@@ -31,68 +23,34 @@
</el-row>
</el-form>
<div style="margin:20px">
<el-button
type="primary"
icon="el-icon-search"
size="mini"
:loading="loading"
@click="selectUser(0)"
>搜索</el-button
>
<el-button type="primary" icon="el-icon-plus" size="mini" @click="addUser" v-hasPermi="['system:user:add']"
>新增用户</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" :loading="loading" @click="selectUser(0)">搜索
</el-button>
<el-button type="primary" icon="el-icon-plus" size="mini" @click="addUser" v-hasPermi="['system:user:add']">新增用户
</el-button>
</div>
<Tables
:data="data"
:headerData="tableHeader"
:limitSize="formData.size"
:totalCount="total"
:loading="loading"
:page="formData.page"
:pageSizes="[20,30,40,50]"
height="600"
@sizeChange="sizeChange"
@currentChange="currentChange"
>
<template>
<el-table-column
header-align="center"
align="center"
width="auto"
label="操作"
>
<Tables ductName="user" :data="data" :headerData="tableHeader" :limitSize="formData.size" :totalCount="total"
:loading="loading" :page="formData.page" :pageSizes="[20, 30, 40, 50]" height="600" @sizeChange="sizeChange"
@currentChange="currentChange">
<template slot="optionColumn">
<el-table-column header-align="center" align="center" width="auto" label="操作">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="buttonClick(scope, 0)"
>查看</el-button
>
<el-button type="primary" size="mini" @click="buttonClick(scope, 1)" v-hasPermi="['system:user:update']"
>修改</el-button
>
<el-button type="primary" size="mini" @click="buttonClick(scope, 0)">查看</el-button>
<el-button type="primary" size="mini" @click="buttonClick(scope, 1)" v-hasPermi="['system:user:update']">修改
</el-button>
<!-- <el-button type="primary" size="mini" @click="passwordShow = !passwordShow"
>修改密码</el-button
> -->
<el-button
:type="scope.row.isValid == 1 ? 'warning' : 'primary'"
size="mini"
v-hasPermi="['system:user:openClose']"
@click="userStatus(scope)"
>{{ scope.row.isValid == 1 ? "停用" : "启用" }}</el-button
>
<el-button type="danger" size="mini" @click="removeUser(scope)" v-hasPermi="['system:user:delete']"
>删除用户</el-button
>
<el-button :type="scope.row.isValid == 1 ? 'warning' : 'primary'" size="mini"
v-hasPermi="['system:user:openClose']" @click="userStatus(scope)">{{ scope.row.isValid == 1 ? "停用" : "启用"
}}</el-button>
<el-button type="danger" size="mini" @click="removeUser(scope)" v-hasPermi="['system:user:delete']">删除用户
</el-button>
</template>
</el-table-column>
</template>
</Tables>
<Drawer
:drawer="drawer"
:drawerTitle="drawerTitle"
:userFormDisabled="userFormDisabled"
:userData="userData"
@handleClose="handleClose"
></Drawer>
<Drawer :drawer="drawer" :drawerTitle="drawerTitle" :userFormDisabled="userFormDisabled" :userData="userData"
@handleClose="handleClose"></Drawer>
<!-- <el-dialog
title="修改密码"
:visible.sync="passwordShow"
......@@ -147,85 +105,68 @@ export default {
}, //查询条件
tableHeader: [
{
type: "index",
name: "",
value: "",
width: "",
align: "center",
sorTable: false,
disabled:true
},
{
type: "",
name: "员工号",
value: "loginName",
width: "150px",
align: "center",
sorTable: false,
disabled:true
disabled: true
},
{
type: "",
name: "用户姓名",
value: "username",
width: "150px",
align: "center",
sorTable: false,
disabled:true
disabled: true
},
{
type: "",
name: "所属口岸",
value: "portName",
width: "150px",
align: "center",
sortable: false,
disabled:true
disabled: true
},
{
type: "",
name: "所属角色",
value: "roleNames",
width: "150px",
align: "center",
sorTable: false,
disabled:true
disabled: true
},
{
type: "",
name: "电子邮箱",
value: "email",
width: "150px",
align: "center",
sorTable: false,
disabled:true
disabled: true
},
{
type: "",
name: "用户状态",
value: "isValid",
width: "100px",
align: "center",
sorTable: false,
disabled:true
disabled: true,
},
{
type: "",
name: "修改时间",
value: "updateTime",
width: "150px",
align: "center",
sorTable: false,
disabled:true
disabled: true
},
{
type: "",
name: "备注",
value: "remark",
width: "150px",
align: "center",
sorTable: false,
disabled:true
disabled: true
},
], //表头数据
userData: {}, //用户详情
......@@ -239,20 +180,20 @@ export default {
};
},
created() {
if(this.$store.state.tagsView.cachedViews.length == 0){
if (this.$store.state.tagsView.cachedViews.length == 0) {
this.selectUser();
}
},
activated(){
activated() {
this.selectUser();
},
deactivated(){
deactivated() {
this.data = []
},
methods: {
//用户列表
selectUser(val) {
if(val == 0){
if (val == 0) {
this.formData.page = 1
}
this.loading = true;
......@@ -285,7 +226,7 @@ export default {
if (res.code === 200) {
this.userData = res.data;
this.userData.portName
?this.userData.portName=this.userData.portName.split(",")
? this.userData.portName = this.userData.portName.split(",")
: '';
} else {
this.$message({
......@@ -391,7 +332,7 @@ export default {
this.selectUser();
},
sizeChange(val){
sizeChange(val) {
this.formData.size = val;
this.selectUser()
}
......
......@@ -17,7 +17,7 @@ module.exports = {
// 部署生产环境和开发环境下的URL。
// 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上
// 例如 https://www.FedEx.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.FedEx.vip/admin/,则设置 baseUrl 为 /admin/。
publicPath: process.env.NODE_ENV === "production" ? "/imacuat/" : "/",
publicPath: process.env.NODE_ENV === "production" ? defaultSettings.routerBase : "/",
// 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
outputDir: 'dist',
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
......@@ -34,10 +34,7 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
target: `https://imacuat.zmd.apac.fedex.com/iMAC`,
// target: `http://47.103.140.98:7001/iMAC`,
// target: `http://192.168.1.134:18080`,
// target: `http://47.103.140.98:7001/IMAC2`, //生产
target: defaultSettings.baseURL,
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''
......