Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Fedex
/
imac-vue
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
Elements-SY
2023-10-08 21:23:16 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
27d72cb5dceb3ea1497e3cf2975109334a8fd45f
27d72cb5
1 parent
2ec6e237
modify
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
180 additions
and
121 deletions
src/api/et86HsCodeBlack.js
src/api/et86ShipmentDesc.js
src/components/YlForm/index.vue
src/components/YlTable/index.vue
src/utils/mixins.js
src/views/allocationConfig/flightAllocConfig/components/routeInfo.vue
src/views/allocationConfig/flightAllocConfig/flightRouteInfo/index.vue
src/views/basicInformation/flightInformationMaintenance/index.vue
src/views/et86Config/et86HsCodeBlack/index.vue
src/views/et86Config/et86HsCodeBlack/tableConfig.js
src/views/et86Config/et86RuleConfig/edit/index.vue
src/views/et86Config/et86RuleConfig/edit/mixins/index.js
src/views/et86Config/et86ShipmentDesc/index.vue
src/views/et86Config/et86ShipmentDesc/tableConfig.js
src/api/et86HsCodeBlack.js
View file @
27d72cb
...
...
@@ -10,9 +10,9 @@ export function findHsCodeList(data) {
}
// HScode黑名单删除
export
function
del
Black
List
(
data
)
{
export
function
del
HsCodeList
List
(
data
)
{
return
request
({
url
:
"/etes/del
Black
List"
,
url
:
"/etes/del
HsCodeList
List"
,
method
:
"post"
,
data
:
data
,
});
...
...
src/api/et86ShipmentDesc.js
View file @
27d72cb
...
...
@@ -19,9 +19,9 @@ export function uploadShipmentDesc(data) {
}
// HScode黑名单/英文品名删除
export
function
del
Black
List
(
data
)
{
export
function
del
ShipmentDesc
List
(
data
)
{
return
request
({
url
:
"/etes/del
Black
List "
,
url
:
"/etes/del
ShipmentDesc
List "
,
method
:
"post"
,
data
:
data
,
});
...
...
src/components/YlForm/index.vue
View file @
27d72cb
...
...
@@ -45,7 +45,7 @@
<!-- 输入框 -->
<el-input
v-if="item.type === 'Input'"
v-model
.trim
="tempQueryForm[item.prop]"
v-model="tempQueryForm[item.prop]"
:style="{ width: item.inputWidth }"
:disabled="item.disable"
:placeholder="
...
...
src/components/YlTable/index.vue
View file @
27d72cb
<template>
<template>
<div class="table-container">
<el-row
v-if="attrs.btnCofig.isBtn"
...
...
@@ -161,6 +161,7 @@ export default {
// this.columns
}
},
mounted() {
//阻止火狐拖拽新建新页面
document.body.addEventListener(
...
...
@@ -171,14 +172,8 @@ export default {
},
false
);
if (this.tableData.length) {
this.getTrCurrentHeight();
window.addEventListener("resize", this.getTrCurrentHeight);
// 拖拽行更新排序
// this.rowDrop();
// 拖拽列更新排序
this.columnDrop();
}
this.getTrCurrentHeight();
window.addEventListener("resize", this.getTrCurrentHeight);
},
destroyed() {
if (this.tableData.length) {
...
...
@@ -281,22 +276,31 @@ export default {
this.useTableFunc("doLayout");
});
},
tableData() {
if (this.tableData.length && this.attrs.isDragSort) {
// 拖拽行更新排序
// this.rowDrop();
// 拖拽列更新排序
this.columnDrop();
}
},
},
};
</script>
<style lang="scss">
.el-table {
th {
padding: 0;
}
td{
padding: 0;
}
}
.first-span,.span{
display: inline-block;
.el-table {
th {
padding: 0;
}
.span
{
margin-left: 6px
;
td
{
padding: 0
;
}
}
.first-span,
.span {
display: inline-block;
}
.span {
margin-left: 6px;
}
</style>
...
...
src/utils/mixins.js
View file @
27d72cb
This diff is collapsed. Click to expand it.
src/views/allocationConfig/flightAllocConfig/components/routeInfo.vue
View file @
27d72cb
...
...
@@ -546,6 +546,9 @@ export default {
) {
// 航班配舱设置非日期级别情况下
return true;
} else if (item.status == "1" && this.$route.query.dataStatus == "add") {
// 添加航班配舱设置非日期级别情况下
return true;
} else if (item.status == "2") {
return true;
} else {
...
...
src/views/allocationConfig/flightAllocConfig/flightRouteInfo/index.vue
View file @
27d72cb
...
...
@@ -280,7 +280,7 @@ export default {
},
// 保存
saveSubmit(item, index) {
item.flightRoute = item.route;
item.flightRoute = item.route
|| item.flightRoute
;
let parmas = JSON.parse(JSON.stringify(item));
this.returnString(parmas, "cargoType");
this.returnString(parmas, "typeOfGoods");
...
...
@@ -289,11 +289,7 @@ export default {
this.returnString(parmas, "handlingCode");
this.returnString(parmas, "subCategory");
if (parmas.minWeight || parmas.maxWeight) {
if (
!/^(0|[1-9]\d*)(.\d{1,5})?$/.test(
parmas.minWeight || parmas.maxWeight
)
) {
if (!/^(0|[1-9]\d*)(.\d{1,5})?$/.test(parmas.minWeight || parmas.maxWeight)) {
this.msgWarning("请输入有效重量,小数保留5位");
return;
}
...
...
@@ -336,7 +332,8 @@ export default {
];
let validate = keys.some((key) => parmas[key]);
if (validate) {
this.loading = true;
// this.loading = true;
if(parmas.flightRoute == null)return
updateOrAddFlight(parmas)
.then((res) => {
const { code, msg, data } = res;
...
...
src/views/basicInformation/flightInformationMaintenance/index.vue
View file @
27d72cb
...
...
@@ -369,16 +369,15 @@
@blur="blurRoute"
:loading="routeLoading"
:multiple="true"
:key="routeMultiple"
>
<el-option
v-for="item in routeList"
:key="item.
id
"
:key="item.
route
"
:label="item.route"
:value="item.
isEtesR
oute"
:value="item.
r
oute"
>
<span style="float: left">{{ item.route }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{
<span style="float: right;
margin-right: 30px;
color: #8492a6; font-size: 13px">{{
item.isEtesRoute == 'Y' ? '(ET86)' : ''
}}</span>
</el-option>
...
...
@@ -395,16 +394,15 @@
@blur="blurRoute"
:loading="routeLoading"
:multiple="false"
:key="routeMultiple"
>
<el-option
v-for="item in routeList"
:key="item.id"
:label="item.route"
:value="item.
isEtesR
oute"
:value="item.
r
oute"
>
<span style="float: left">{{ item.route }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{
<span style="float: right;
margin-right: 30px;
color: #8492a6; font-size: 13px">{{
item.isEtesRoute == 'Y' ? '(ET86)' : ''
}}</span>
</el-option>
...
...
src/views/et86Config/et86HsCodeBlack/index.vue
View file @
27d72cb
...
...
@@ -38,7 +38,7 @@ import { tableAttr, columnHeader } from "./tableConfig";
import { restTableHeight } from "@/utils";
import {
findHsCodeList, // ShipmentDesc查询
del
Black
List, // ShipmentDesc删除
del
HsCodeList
List, // ShipmentDesc删除
downLoadTemplate, // ShipmentDesc下载模板
uploadHsCode, // ShipmentDesc导入
} from "@/api/et86HsCodeBlack";
...
...
@@ -105,8 +105,8 @@ export default {
.catch(() => {});
},
// 删除黑名单
toDel
Black
List(params) {
del
Black
List(params)
toDel
HsCodeList
List(params) {
del
HsCodeList
List(params)
.then((res) => {
const { code, msg } = res;
if (code == 200) {
...
...
@@ -149,7 +149,7 @@ export default {
if (res) {
const blob = new Blob([res]);
const link = document.createElement("a"); //创建a标签
link.download = "HSCODE黑名单
表
.xlsx"; //a标签添加属性
link.download = "HSCODE黑名单
模板
.xlsx"; //a标签添加属性
link.style.display = "none";
link.href = URL.createObjectURL(blob);
document.body.appendChild(link);
...
...
@@ -176,10 +176,6 @@ export default {
// 删除
deleteData(row) {
if (this.multipleSelection.length) {
let params = [];
this.multipleSelection.map((item) => {
params.push(item.id);
});
this.$confirm("是否确认删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
...
...
@@ -187,7 +183,7 @@ export default {
center: true,
})
.then(() => {
this.toDel
BlackList(params
);
this.toDel
HsCodeListList(this.multipleSelection
);
})
.catch(() => {});
} else {
...
...
@@ -232,7 +228,7 @@ export default {
center: true,
})
.then(() => {
this.toDel
BlackList([row.id
]);
this.toDel
HsCodeListList([row
]);
})
.catch(() => {});
},
...
...
src/views/et86Config/et86HsCodeBlack/tableConfig.js
View file @
27d72cb
...
...
@@ -74,6 +74,12 @@ export const columnHeader = (indexAdd, deleteRow) => [
index
:
indexAdd
,
},
{
label
:
"口岸"
,
prop
:
"portName"
,
align
:
"center"
,
minWidth
:
100
,
},
{
label
:
"HSCODE"
,
prop
:
"blackValue"
,
align
:
"center"
,
...
...
src/views/et86Config/et86RuleConfig/edit/index.vue
View file @
27d72cb
...
...
@@ -170,7 +170,7 @@
</el-col>
<el-col :span="14">
<el-form-item label="">
<el-col :span="4" style="text-align: end; width:
8
%">
<el-col :span="4" style="text-align: end; width:
9
%">
<span
style="
width: 10%;
...
...
@@ -235,12 +235,13 @@
:rows="4"
placeholder="URSA之间用分号分隔,例:F2;F3;P_"
:disabled="!getRouter"
@blur="includeUrsa"
></el-input>
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label="">
<el-col :span="8" style="text-align: end; width: 2
7
%"
<el-col :span="8" style="text-align: end; width: 2
8
%"
><span
class="ursa-label"
style="
...
...
@@ -262,6 +263,7 @@
:rows="4"
placeholder="URSA之间用分号分隔,例:F2;F3;P_"
:disabled="!getRouter"
@blur="notIncludeUrsa"
></el-input>
</el-col>
</el-form-item>
...
...
@@ -302,7 +304,8 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="件数" class="custom-label-pieces">
<el-form-item label="" class="custom-label">
<span class="custom-label-title">件数</span>
<el-col :span="10">
<el-input
v-model.trim="queryForm.minNumOfPieces"
...
...
@@ -357,9 +360,9 @@
<span class="custom-label-title">人民币</span>
<el-col :span="10">
<el-input
v-model.trim="
minCNY
CustomVal"
v-model.trim="
queryForm.min
CustomVal"
placeholder="最小申报价值"
@blur="inputBlurMin($event, 'minCNYCustomVal')"
@blur="input
CNY
BlurMin($event, 'minCNYCustomVal')"
:disabled="!getRouter"
></el-input>
<span
...
...
@@ -370,21 +373,22 @@
<el-col style="text-align: center" :span="1">-</el-col>
<el-col :span="10">
<el-input
v-model.trim="
maxCNY
CustomVal"
v-model.trim="
queryForm.max
CustomVal"
placeholder="最大申报价值"
@blur="inputBlurMax($event, 'maxCNYCustomVal')"
@blur="input
CNY
BlurMax($event, 'maxCNYCustomVal')"
:disabled="!getRouter"
></el-input>
</el-col>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="美元" class="custom-label-pieces">
<el-form-item label="" class="custom-label">
<span class="custom-label-title">美元</span>
<el-col :span="10">
<el-input
v-model.trim="
minSUD
CustomVal"
v-model.trim="
queryForm.minUsd
CustomVal"
placeholder="最小申报价值"
@blur="inputBlurMin($event, 'minSUDCustomVal')"
@blur="input
SUD
BlurMin($event, 'minSUDCustomVal')"
:disabled="!getRouter"
></el-input>
<span
...
...
@@ -395,9 +399,9 @@
<el-col style="text-align: center" :span="1">-</el-col>
<el-col :span="10">
<el-input
v-model.trim="
maxSUD
CustomVal"
v-model.trim="
queryForm.maxUsd
CustomVal"
placeholder="最大申报价值"
@blur="inputBlurMax($event, 'maxSUDCustomVal')"
@blur="input
SUD
BlurMax($event, 'maxSUDCustomVal')"
:disabled="!getRouter"
></el-input>
</el-col>
...
...
@@ -458,9 +462,12 @@ export default {
maxWeight: "",
minNumOfPieces: "", // 最小件数
maxNumOfPieces: "",
currencyCd: "", // 币种
minCustomVal: "", // 最小申报值
maxCustomVal: "",
currencyCd: "CNY", // 人民币种
currencyCdUsd: "SUD", // 美元币种
minCustomVal: "", // 人民币最小申报值
maxCustomVal: "", // 人民币最大申报值
minUsdCustomVal: "", // 美元最小申报值
maxUsdCustomVal: "" // 美元最大申报值
},
tableAttr: tableAttr, // table配置项
tableData: [], // ET86配舱航班顺位
...
...
@@ -492,6 +499,11 @@ export default {
},
created() {
this.getAllDictData(); // 获取全部字典
if (this.$route.query.name == "view"){
tableAttr.isDragSort = false;
}else{
tableAttr.isDragSort = true;
}
if (this.$route.query.name == "view" || this.$route.query.name == "edit") {
this.queryFindEtesRuleById(this.$route.query); // ET86详情
} else {
...
...
@@ -568,15 +580,13 @@ export default {
} else {
this.checkboxClassType = [];
}
// 人民币
if (data.list.fltRuleDto.currencyCd == "CNY") {
this.minCNYCustomVal = data.list.fltRuleDto.minCustomVal;
this.maxCNYCustomVal = data.list.fltRuleDto.maxCustomVal;
}
// 美元
if (data.list.fltRuleDto.currencyCd == "USD") {
this.minSUDCustomVal = data.list.fltRuleDto.minCustomVal;
this.maxSUDCustomVal = data.list.fltRuleDto.maxCustomVal;
// 服务种类
if(data.list.fltRuleDto.includeServiceType){
this.isServiceCode = "1";
}else if(data.list.fltRuleDto.notIncludeServiceType){
this.isServiceCode = "2";
}else{
this.isServiceCode = "1";
}
this.queryForm = data.list.fltRuleDto; // ET86配舱航班顺位维度
} else {
...
...
@@ -721,6 +731,9 @@ export default {
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.tableData.map((item,i)=>{
item.priority = ++i
})
// 爆仓是否继续配舱
const newtTableData = JSON.parse(JSON.stringify(this.tableData));
const tableData = newtTableData;
...
...
@@ -732,23 +745,6 @@ export default {
}
});
// 校验ET86配舱航班顺位维度
if (
this.minCNYCustomVal.length != "" ||
this.maxCNYCustomVal.length != ""
) {
this.queryForm.currencyCd = "CNY";
this.queryForm.minCustomVal = this.minCNYCustomVal;
this.queryForm.maxCustomVal = this.maxCNYCustomVal;
} else if (
this.minSUDCustomVal.length != "" ||
this.maxSUDCustomVal.length != ""
) {
this.queryForm.currencyCd = "USD";
this.queryForm.minCustomVal = this.minSUDCustomVal;
this.queryForm.maxCustomVal = this.maxSUDCustomVal;
} else {
this.queryForm.currencyCd = null;
}
let fltNo = this.tableData.some((item) => item.flightNo == ""); // 通过遍历判断航班顺位列表有没有填写的航班号
let fltNoRoute = this.tableData.some(
(item) => item.flightRoute == ""
...
...
@@ -765,14 +761,12 @@ export default {
this.msgError("原航班号不可为空");
return;
}
this.queryForm.includeServiceType =
this.isServiceCode == "1" && this.serviceCode.length > 0
? this.serviceCode
: ""; // 包含服务种类
this.queryForm.notIncludeServiceType =
this.isServiceCode == "2" && this.serviceCode.length > 0
? this.serviceCode
: ""; // 不包含服务种类
// 服务种类包含不包含二选一
if(this.isServiceCode == "1"){
this.queryForm.notIncludeServiceType = "";
}else{
this.queryForm.includeServiceType = "";
}
let parmas = {
flightRankDtoList: tableData, // ET86配舱航班顺位
fltRuleDto: this.queryForm,
...
...
@@ -871,9 +865,4 @@ export default {
}
}
}
::v-deep .custom-label-pieces {
.el-form-item__content {
width: 80%;
}
}
</style>
...
...
src/views/et86Config/et86RuleConfig/edit/mixins/index.js
View file @
27d72cb
...
...
@@ -52,7 +52,12 @@ export default {
},
// 处理serviceCode包不包含
serviceCodeCofig
()
{
let
str
=
this
.
serviceCode
.
replace
(
/;|;/g
,
","
);
let
str
=
""
;
if
(
this
.
isServiceCode
==
"1"
)
{
str
=
this
.
queryForm
.
includeServiceType
.
replace
(
/;|;/g
,
","
);
}
else
{
str
=
this
.
queryForm
.
notIncludeServiceType
.
replace
(
/;|;/g
,
","
);
}
let
arr
=
str
.
split
(
","
);
if
(
arr
[
arr
.
length
-
1
]
==
""
)
{
arr
.
splice
(
arr
.
length
-
1
,
1
);
...
...
@@ -75,12 +80,12 @@ export default {
if
(
val
==
1
)
{
if
(
this
.
serviceCodeCofig
().
noInclude
.
length
)
{
let
tip
=
this
.
serviceCodeCofig
().
noInclude
.
toString
();
this
.
msgError
(
`
${
tip
}
不包含`
);
//
this.msgError(`${tip} 不包含`);
}
}
else
{
if
(
this
.
serviceCodeCofig
().
include
.
length
)
{
let
tip
=
this
.
serviceCodeCofig
().
include
.
toString
();
this
.
msgError
(
`
${
tip
}
已包含`
);
//
this.msgError(`${tip} 已包含`);
}
}
},
...
...
@@ -98,5 +103,31 @@ export default {
}
}
},
// 不包含
includeUrsa
()
{
let
inUrsa
=
this
.
queryForm
.
includeUrsa
.
split
(
";"
);
// 校验开头以字母开头下划线结尾的
// let _inUrsa = inUrsa.every((item) => {
// if (item) {
// return /^[a-zA-Z]*_$/.test(item);
// }
// });
// console.log(_inUrsa);
// function hasDuplicate(arr) {
// return new Set(arr).size !== arr.length;
// }
/*
使用JavaScript写一个只能开头以字母开头下划线和分号结尾的正则表达式;
使用JavaScript写一个判断数组中有重复的字符返回true,
*/
// 要有下划线且不能出现重复的
// console.log(this.queryForm.includeUrsa.split(";"));
},
// 不包含
notIncludeUrsa
()
{
// 不要有下划线且不能出现重复的
},
},
};
...
...
src/views/et86Config/et86ShipmentDesc/index.vue
View file @
27d72cb
...
...
@@ -19,6 +19,7 @@
:tableData="tableData"
:pageConfig="pageConfig"
@search="searchBtn"
@download="downloadTemplate"
@upload="toUpload"
@export="exportTemplate"
@delete="deleteData"
...
...
@@ -38,8 +39,11 @@ import { restTableHeight } from "@/utils";
import {
findShipmentDescList, // HScode英文品名黑名单查询
uploadShipmentDesc, // HScode英文品名黑名单导入
del
Black
List, // HScode黑名单/英文品名删除
del
ShipmentDesc
List, // HScode黑名单/英文品名删除
} from "@/api/et86ShipmentDesc";
import {
downLoadTemplate, // ShipmentDesc/英文品名黑名下载模板
} from "@/api/et86HsCodeBlack";
import { downLoadXlsx } from "@/utils/zipdownload";
export default {
name: "et86ShipmentDesc",
...
...
@@ -103,8 +107,8 @@ export default {
.catch(() => {});
},
// 删除黑名单
toDel
Black
List(params) {
del
Black
List(params)
toDel
ShipmentDesc
List(params) {
del
ShipmentDesc
List(params)
.then((res) => {
const { code, msg } = res;
if (code == 200) {
...
...
@@ -140,13 +144,33 @@ export default {
})
.catch(() => {});
},
// 下载【英文品名黑名单下载模板】
downloadTemplate() {
downLoadTemplate("shipmentDesc")
.then((res) => {
if (res) {
const blob = new Blob([res]);
const link = document.createElement("a"); //创建a标签
link.download = "英文品名黑名单模板.xlsx"; //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("下载失败");
}
})
.catch(() => {});
},
// 导出
exportTemplate(row, i) {
this.tableAttr.btnCofig.btnGroup[i].loading = true;
downLoadXlsx(
"/etes/exportShipmentDescList",
this.queryForm,
"
HSCODE
英文品名黑名单表"
"英文品名黑名单表"
)
.then(() => {
this.tableAttr.btnCofig.btnGroup[i].loading = false;
...
...
@@ -158,10 +182,6 @@ export default {
// 删除
deleteData(row) {
if (this.multipleSelection.length) {
let params = [];
this.multipleSelection.map((item) => {
params.push(item.id);
});
this.$confirm("是否确认删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
...
...
@@ -169,7 +189,7 @@ export default {
center: true,
})
.then(() => {
this.toDel
BlackList(params
);
this.toDel
ShipmentDescList(this.multipleSelection
);
})
.catch(() => {});
} else {
...
...
@@ -185,10 +205,10 @@ export default {
});
},
// 翻页序号递增
indexAdd(index){
const page = this.pageConfig.pageData.page // 当前页码
const pagesize = this.pageConfig.pageData.size // 每页条数
return index + 1 + (page - 1) * pagesize
indexAdd(index)
{
const page = this.pageConfig.pageData.page
;
// 当前页码
const pagesize = this.pageConfig.pageData.size
;
// 每页条数
return index + 1 + (page - 1) * pagesize
;
},
//条数变化
handleSizeChange(e) {
...
...
@@ -214,7 +234,7 @@ export default {
center: true,
})
.then(() => {
this.toDel
BlackList([row.id
]);
this.toDel
ShipmentDescList([row
]);
})
.catch(() => {});
},
...
...
src/views/et86Config/et86ShipmentDesc/tableConfig.js
View file @
27d72cb
...
...
@@ -17,6 +17,15 @@ export const tableAttr = {
},
{
type
:
"primary"
,
icon
:
"el-icon-download"
,
btnName
:
"下载模板"
,
size
:
"mini"
,
round
:
false
,
loading
:
false
,
event
:
"download"
,
},
{
type
:
"primary"
,
icon
:
"el-icon-upload"
,
btnName
:
"导入"
,
size
:
"mini"
,
...
...
@@ -65,6 +74,12 @@ export const columnHeader = (indexAdd, deleteRow) => [
index
:
indexAdd
,
},
{
label
:
"口岸"
,
prop
:
"portName"
,
align
:
"center"
,
minWidth
:
100
,
},
{
label
:
"ShipmentDesc"
,
prop
:
"blackValue"
,
align
:
"center"
,
...
...
Please
register
or
login
to post a comment