Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Fedex
/
EcomWeb
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
zhanbo.xu
2025-03-07 17:18:54 +0800
Browse Files
Options
Browse Files
Download
Plain Diff
Commit
1584919981bfdb1221c74e4eafaf81c06c9a6d6a
15849199
2 parents
95029386
d97ac45d
feat: 合并代码
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
1956 additions
and
1762 deletions
src/api/declareData-api.js
src/api/exportSummary-api.js
src/components/TablePopover/index.vue
src/views/editReportingData/RowDataEditForm.vue
src/views/editReportingData/index.vue
src/views/portConfig/dialog.vue
src/views/reportingData/index.vue
src/views/summaryDataSearch/index.vue
src/views/summaryDetail/index.vue
src/views/summaryEdit/index.vue
src/api/declareData-api.js
View file @
1584919
...
...
@@ -174,6 +174,18 @@ export function getCustomerList(data) {
},
});
}
// /exportSummary/exportSummaryList
export
function
getNewCustomerList
(
data
)
{
return
request
({
url
:
"/bus-customer/exportSummary/get/customers"
,
method
:
"post"
,
data
:
{
pageIndex
:
1
,
pageSize
:
1000
,
...
data
,
},
});
}
//获取口岸表数据
export
function
getPortList
(
data
)
{
...
...
src/api/exportSummary-api.js
View file @
1584919
import
request
from
'@/utils/request'
import
request
from
"@/utils/request"
;
/**
* 汇总申请单查询
...
...
@@ -14,46 +14,56 @@ import request from '@/utils/request'
* @param data.pageIndex 当前页码
* @param data.pageSize 分页最大数据量
*/
export
function
searchExportSummaryList
(
data
){
export
function
searchExportSummaryList
(
data
)
{
return
request
({
url
:
'/bus-customer/exportSummary/exportSummaryList'
,
method
:
'post'
,
url
:
"/bus-customer/exportSummary/exportSummaryList"
,
method
:
"post"
,
data
:
data
,
})
})
;
}
/**
* 查询汇总回执
* @param data.copNo 企业唯一编号
*/
export
function
getExportSummaryReceiptData
(
data
){
export
function
getExportSummaryReceiptData
(
data
)
{
return
request
({
url
:
'/bus-customer/exportSummary/receipt/'
+
data
.
copNo
,
method
:
'get'
,
})
url
:
"/bus-customer/exportSummary/receipt/"
+
data
.
copNo
,
method
:
"get"
,
})
;
}
/**
* 获取汇总申请单详情
* @param data.id 汇总申请单id
*/
export
function
getExportSummaryDetail
(
data
){
export
function
getExportSummaryDetail
(
data
)
{
return
request
({
url
:
'/bus-customer/exportSummary/exportSummaryDetail/'
+
data
.
id
,
method
:
'get'
,
})
url
:
"/bus-customer/exportSummary/exportSummaryDetail/"
+
data
.
id
,
method
:
"get"
,
})
;
}
/**
* 汇总申报
* @param data
* @returns {*}
*/
export
function
declareSummaryApplication
(
data
){
export
function
declareSummaryApplication
(
data
)
{
return
request
({
url
:
"/bus-customer/exportSummary/declare"
,
method
:
"post"
,
data
:
data
,
});
}
// POST
// /exportSummary/get/customers
// 根据条件获取可以汇总申报的企业
export
function
getCustomers
(
data
)
{
return
request
({
url
:
'/bus-customer/exportSummary/declare'
,
method
:
'post'
,
data
:
data
})
url
:
"/bus-customer/exportSummary/get/customers"
,
method
:
"post"
,
data
:
data
,
})
;
}
...
...
src/components/TablePopover/index.vue
View file @
1584919
...
...
@@ -39,8 +39,8 @@
? '数据加载中'
: $t('portEntry.emptyText')
"
height="350px
"
maxHeight="500px
"
:height="tableHeight + 'px'
"
:maxHeight="tableHeight + 'px'
"
rowKey="id"
>
</Table>
...
...
@@ -90,6 +90,7 @@ export default {
data() {
return {
tableLoading: false,
tableHeight: 350,
};
},
computed: {
...
...
@@ -97,7 +98,17 @@ export default {
return this.$store.state.viewOption.loadingDatas;
},
},
mounted() {
this.calculateTableHeight();
window.addEventListener("resize", this.calculateTableHeight);
},
beforeDestroy() {
window.removeEventListener("resize", this.calculateTableHeight);
},
methods: {
calculateTableHeight() {
this.tableHeight = window.innerHeight - 300;
},
//弹框关闭
popoverClose() {
this.$emit("popoverClose");
...
...
src/views/editReportingData/RowDataEditForm.vue
View file @
1584919
<template>
<div style="height: 100%;">
<el-form
class="fedexFormStyle fedexRowEditFormStyle"
ref="editRowForm"
:model="tableRowformData"
:rules="tableRowFormRules"
label-position="top"
size="small"
>
<el-row :gutter="5">
<el-col :span="4">
<Formitem label="企业商品货号" prop="enterpriseProductCode">
<el-input
type="text"
class="inputShadow"
id="inputInner--enterpriseProductCode"
resize="none"
v-model="tableRowformData.enterpriseProductCode"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="企业商品名称" prop="enterpriseProductName">
<el-input
type="text"
class="inputShadow"
id="inputInner--enterpriseProductName"
resize="none"
v-model="tableRowformData.enterpriseProductName"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="企业商品描述" prop="enterpriseProductDescribe">
<el-input
type="textarea"
class="inputShadow"
id="inputInner--enterpriseProductDescribe"
resize="none"
v-model="tableRowformData.enterpriseProductDescribe"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="商品名称" prop="productName">
<el-input
type="text"
class="inputShadow"
id="inputInner--productName"
resize="none"
v-model="tableRowformData.productName"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="商品编码" prop="productCode">
<el-input
type="text"
class="inputShadow"
id="inputInner--productCode"
resize="none"
v-model="tableRowformData.productCode"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="规格型号" prop="model">
<el-input
type="text"
class="inputShadow"
id="inputInner--model"
resize="none"
v-model="tableRowformData.model"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5">
<el-col :span="4">
<Formitem label="账册备案料号" prop="accountBookMaterialNumber">
<el-input
type="text"
class="inputShadow"
id="inputInner--accountBookMaterialNumber"
resize="none"
v-model="tableRowformData.accountBookMaterialNumber"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="条形码" prop="barCode">
<el-input
type="text"
class="inputShadow"
id="inputInner--barCode"
resize="none"
v-model="tableRowformData.barCode"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="目的国(地区)代码" prop="destinationCountryRegionCode">
<el-select
type="text"
id="inputInner--destinationCountryRegionCode"
v-model="tableRowformData.destinationCountryRegionCode"
clearable
filterable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.COUNTRY_REGION_CODE"
:key="index"
:label="item.itemChineseName"
:value="item.itemCode"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="计量单位" prop="unit">
<el-select
type="text"
id="inputInner--unit"
v-model="tableRowformData.unit"
clearable
filterable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.MEASUREMENT_UNIT"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="数量" prop="qty">
<el-input
type="number"
class="inputShadow"
id="inputInner--qty"
resize="none"
v-model.number="tableRowformData.qty"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="法定数量" prop="legalQty">
<el-input
type="number"
class="inputShadow"
id="inputInner--legalQty"
resize="none"
v-model="tableRowformData.legalQty"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5">
<el-col :span="4">
<Formitem label="币制" prop="currency">
<el-select
type="text"
id="inputInner--currency"
v-model="tableRowformData.currency"
clearable
filterable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.CURRENCY"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="单价" prop="price">
<el-input
type="number"
class="inputShadow"
id="inputInner--price"
resize="none"
v-model="tableRowformData.price"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="总价" prop="totalPrice">
<el-input
type="number"
class="inputShadow"
id="inputInner--totalPrice"
resize="none"
v-model="tableRowformData.totalPrice"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="净重" prop="netWeight">
<el-input
type="number"
class="inputShadow"
id="inputInner--netWeight"
resize="none"
v-model="tableRowformData.netWeight"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="8">
<Formitem label="备注" prop="remark">
<el-input
type="text"
class="inputShadow"
id="inputInner--remark"
resize="none"
v-model="tableRowformData.remark"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
</el-form>
<p class="formRowDataOperate"><a @click="cancelEditRowData">取消</a> <a @click="rowFormDataSave">保存</a></p>
</div>
</template>
<div style="height: 100%">
<el-form
class="fedexFormStyle fedexRowEditFormStyle"
ref="editRowForm"
:model="tableRowformData"
:rules="tableRowFormRules"
label-position="top"
size="small"
>
<el-row :gutter="5">
<el-col :span="4">
<Formitem label="企业商品货号" prop="enterpriseProductCode">
<el-input
type="text"
class="inputShadow"
id="inputInner--enterpriseProductCode"
resize="none"
v-model="tableRowformData.enterpriseProductCode"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="企业商品名称" prop="enterpriseProductName">
<el-input
type="text"
class="inputShadow"
id="inputInner--enterpriseProductName"
resize="none"
v-model="tableRowformData.enterpriseProductName"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="企业商品描述" prop="enterpriseProductDescribe">
<el-input
type="textarea"
class="inputShadow"
id="inputInner--enterpriseProductDescribe"
resize="none"
v-model="tableRowformData.enterpriseProductDescribe"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="商品名称" prop="productName">
<el-input
type="text"
class="inputShadow"
id="inputInner--productName"
resize="none"
v-model="tableRowformData.productName"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="商品编码" prop="productCode">
<el-input
type="text"
class="inputShadow"
id="inputInner--productCode"
resize="none"
v-model="tableRowformData.productCode"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="规格型号" prop="model">
<el-input
type="text"
class="inputShadow"
id="inputInner--model"
resize="none"
v-model="tableRowformData.model"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5">
<el-col :span="4">
<Formitem label="账册备案料号" prop="accountBookMaterialNumber">
<el-input
type="text"
class="inputShadow"
id="inputInner--accountBookMaterialNumber"
resize="none"
v-model="tableRowformData.accountBookMaterialNumber"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="条形码" prop="barCode">
<el-input
type="text"
class="inputShadow"
id="inputInner--barCode"
resize="none"
v-model="tableRowformData.barCode"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem
label="目的国(地区)代码"
prop="destinationCountryRegionCode"
>
<el-select
type="text"
id="inputInner--destinationCountryRegionCode"
v-model="tableRowformData.destinationCountryRegionCode"
clearable
filterable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.COUNTRY_REGION_CODE"
:key="index"
:label="item.itemChineseName"
:value="item.itemCode"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="计量单位" prop="unit">
<el-select
type="text"
id="inputInner--unit"
v-model="tableRowformData.unit"
clearable
filterable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.MEASUREMENT_UNIT"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="数量" prop="qty">
<el-input
type="number"
class="inputShadow"
id="inputInner--qty"
resize="none"
v-model.number="tableRowformData.qty"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="法定数量" prop="legalQty">
<el-input
type="number"
class="inputShadow"
id="inputInner--legalQty"
resize="none"
v-model="tableRowformData.legalQty"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5">
<el-col :span="4">
<Formitem label="法定计量单位">
<el-input
class="inputShadow"
id="inputInner--unitLegalFirstCode"
resize="none"
:disabled="true"
:value="
mapDicDatas(
$store.getters.dict.MEASUREMENT_UNIT,
tableRowformData.unitLegalFirstCode
)
"
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="币制" prop="currency">
<el-select
type="text"
id="inputInner--currency"
v-model="tableRowformData.currency"
clearable
filterable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.CURRENCY"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="单价" prop="price">
<el-input
type="number"
class="inputShadow"
id="inputInner--price"
resize="none"
v-model="tableRowformData.price"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="总价" prop="totalPrice">
<el-input
type="number"
class="inputShadow"
id="inputInner--totalPrice"
resize="none"
v-model="tableRowformData.totalPrice"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="净重" prop="netWeight">
<el-input
type="number"
class="inputShadow"
id="inputInner--netWeight"
resize="none"
v-model="tableRowformData.netWeight"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="8">
<Formitem label="备注" prop="remark">
<el-input
type="text"
class="inputShadow"
id="inputInner--remark"
resize="none"
v-model="tableRowformData.remark"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
</el-form>
<p class="formRowDataOperate">
<a @click="cancelEditRowData">取消</a>
<a @click="rowFormDataSave">保存</a>
</p>
</div>
</template>
<script>
export default {
props: {
rowDatas: {
type: Object,
default: ()=>({}),
},
<script>
export default {
props: {
rowDatas: {
type: Object,
default: () => ({}),
},
data() {
var checkFractionalPart = (rule, value, callback) => {
if (value < 0) {
callback(new Error('数值不能为负'));
}
if (value !== '' && value !== undefined) {
const regex = /^\d{0,14}(\.\d{1,5})?$/;
if (!regex.test(value)) {
callback(new Error('整数最多14位,小数最多5位'));
} else {
callback();
}
},
data() {
var checkFractionalPart = (rule, value, callback) => {
if (value < 0) {
callback(new Error("数值不能为负"));
}
if (value !== "" && value !== undefined) {
const regex = /^\d{0,14}(\.\d{1,5})?$/;
if (!regex.test(value)) {
callback(new Error("整数最多14位,小数最多5位"));
} else {
callback();
}
};
var checkNegativeNum = (rule, value, callback) => {
if (value < 0) {
callback(new Error('数值不能为负'));
} else {
callback();
}
};
var checkQty = (rule, value, callback) => {
if (!Number.isInteger(value)) {
callback(new Error('请输入整数值'));
} else {
callback();
}
};
var checkNegativeNum = (rule, value, callback) => {
if (value < 0) {
callback(new Error("数值不能为负"));
} else {
callback();
}
};
var checkQty = (rule, value, callback) => {
if (value === undefined || value === null || value === "") {
callback(new Error("请输入数值"));
return;
}
if (isNaN(value)) {
callback(new Error("请输入有效的数字"));
return;
}
if (value < 0) {
callback(new Error("数值不能为负"));
return;
}
const valueStr = value.toString();
const parts = valueStr.split(".");
const integerPart = parts[0];
const decimalPart = parts[1] || "";
if (integerPart.length > 14) {
callback(new Error("整数部分最多14位"));
return;
}
if (decimalPart.length > 5) {
callback(new Error("小数部分最多5位"));
return;
}
callback();
};
return {
tableRowformData: {},
tableRowFormRules: {
enterpriseProductCode: [
{ required: true, message: "请输入企业商品货号", trigger: "blur" },
{ max: 30, message: "长度不能超过30个字符", trigger: "blur" },
],
enterpriseProductName: [
{ required: true, message: "请输入企业商品名称", trigger: "blur" },
{ max: 250, message: "长度不能超过250个字符", trigger: "blur" },
],
enterpriseProductDescribe: [
{ max: 1000, message: "长度不能超过1000个字符", trigger: "blur" },
],
productName: [
{ required: true, message: "请输入商品名称", trigger: "blur" },
{ max: 250, message: "长度不能超过250个字符", trigger: "blur" },
],
productCode: [
{ required: true, message: "请输入商品编码", trigger: "blur" },
{ max: 10, message: "长度不能超过10个字符", trigger: "blur" },
],
model: [
{ required: true, message: "请输入规格型号", trigger: "blur" },
{ max: 250, message: "长度不能超过250个字符", trigger: "blur" },
],
accountBookMaterialNumber: [
{ max: 30, message: "长度不能超过30个字符", trigger: "blur" },
],
barCode: [
{ max: 50, message: "长度不能超过50个字符", trigger: "blur" },
],
destinationCountryRegionCode: [
{
required: true,
message: "请选择目的国(地区)代码",
trigger: "change",
},
],
unit: [
{ required: true, message: "请选择计量单位", trigger: "change" },
],
qty: [
{ required: true, message: "请输入数量", trigger: "blur" },
{ validator: checkQty, trigger: "blur" },
],
legalQty: [
{ required: true, message: "请输入法定数量", trigger: "blur" },
{ validator: checkFractionalPart, trigger: "blur" },
],
currency: [
{ required: true, message: "请选择币制", trigger: "change" },
],
price: [
{ required: true, message: "请输入单价", trigger: "blur" },
{ validator: checkNegativeNum, trigger: "blur" },
],
totalPrice: [
{ required: true, message: "请输入总价", trigger: "blur" },
{ validator: checkNegativeNum, trigger: "blur" },
],
netWeight: [
{ required: true, message: "请输入净重", trigger: "blur" },
{ validator: checkFractionalPart, trigger: "blur" },
],
remark: [
{ max: 1000, message: "长度不能超过1000个字符", trigger: "blur" },
],
},
};
},
methods: {
mapDicDatas(dicArr, code) {
if (code != "" && code) {
return dicArr.filter((item) => item.itemCode == code)[0]
.itemChineseName;
} else {
return "";
}
},
rowFormDataSave() {
this.$refs.editRowForm.validate((valid) => {
if (valid) {
this.$emit("rowFormDataSave", {
gnum: this.rowDatas.row.gnum,
tableRowformData: this.tableRowformData,
});
this.tableRowformData = {};
} else {
if (value < 0) {
callback(new Error('数值不能为负'));
} else {
const valueStr = value.toString();
if (valueStr.length > 14) {
callback(new Error('最多14位'));
} else {
callback();
}
}
}
};
return {
tableRowformData:{},
tableRowFormRules:{
enterpriseProductCode: [
{ required: true, message: '请输入企业商品货号', trigger: 'blur' },
{ max: 30, message: '长度不能超过30个字符', trigger: 'blur' }
],
enterpriseProductName: [
{ required: true, message: '请输入企业商品名称', trigger: 'blur' },
{ max: 250, message: '长度不能超过250个字符', trigger: 'blur' }
],
enterpriseProductDescribe: [
{ max: 1000, message: '长度不能超过1000个字符', trigger: 'blur' }
],
productName: [
{ required: true, message: '请输入商品名称', trigger: 'blur' },
{ max: 250, message: '长度不能超过250个字符', trigger: 'blur' }
],
productCode: [
{ required: true, message: '请输入商品编码', trigger: 'blur' },
{ max: 10, message: '长度不能超过10个字符', trigger: 'blur' }
],
model: [
{ required: true, message: '请输入规格型号', trigger: 'blur' },
{ max: 250, message: '长度不能超过250个字符', trigger: 'blur' }
],
accountBookMaterialNumber: [
{ max: 30, message: '长度不能超过30个字符', trigger: 'blur' }
],
barCode: [
{ max: 50, message: '长度不能超过50个字符', trigger: 'blur' }
],
destinationCountryRegionCode: [
{ required: true, message: '请选择目的国(地区)代码', trigger: 'change' }
],
unit: [
{ required: true, message: '请选择计量单位', trigger: 'change' }
],
qty: [
{ required: true, message: '请输入数量', trigger: 'blur' },
{ validator: checkQty, trigger: 'blur' }
],
legalQty: [
{ required: true, message: '请输入法定数量', trigger: 'blur' },
{ validator: checkFractionalPart, trigger: 'blur' }
],
currency: [
{ required: true, message: '请选择币制', trigger: 'change' }
],
price: [
{ required: true, message: '请输入单价', trigger: 'blur' },
{ validator: checkNegativeNum, trigger: 'blur' }
],
totalPrice: [
{ required: true, message: '请输入总价', trigger: 'blur' },
{ validator: checkNegativeNum, trigger: 'blur' }
],
netWeight: [
{ required: true, message: '请输入净重', trigger: 'blur' },
{ validator: checkFractionalPart, trigger: 'blur' }
],
remark: [
{ max: 1000, message: '长度不能超过1000个字符', trigger: 'blur' }
],
return false;
}
};
}
)
;
},
methods: {
rowFormDataSave(){
this.$refs.editRowForm.validate((valid) => {
if (valid) {
this.$emit('rowFormDataSave', {gnum: this.rowDatas.row.gnum, tableRowformData: this.tableRowformData})
this.tableRowformData = {}
} else {
return false;
}
})
},
cancelEditRowData(){
this.tableRowformData = {}
this.$emit('cancelEditRowData',this.rowDatas.row.gnum-1)
},
// validate() {
// return this.$refs.editRowForm.validate((valid)=>{
// if(valid){
// console.log("tg2")
// this.$emit('updateLastItemValid', true);
// }else {
// console.log("wtg2")
// this.$emit('updateLastItemValid', false); // 通知父组件校验未通过
// }
// });
// },
async validate() {
return new Promise((resolve, reject) => {
this.$refs.editRowForm.validate((valid) => {
if (valid) {
// console.log("tg2")
this.$emit('rowFormDataSave', {gnum: this.rowDatas.row.gnum, tableRowformData: this.tableRowformData})
this.tableRowformData = {}
this.$emit('updateLastItemValid', true);
resolve(true);
} else {
// console.log("wtg2")
this.$emit('updateLastItemValid', false);
resolve(false);
}
});
cancelEditRowData() {
this.tableRowformData = {};
this.$emit("cancelEditRowData", this.rowDatas.row.gnum - 1);
},
// validate() {
// return this.$refs.editRowForm.validate((valid)=>{
// if(valid){
// console.log("tg2")
// this.$emit('updateLastItemValid', true);
// }else {
// console.log("wtg2")
// this.$emit('updateLastItemValid', false); // 通知父组件校验未通过
// }
// });
// },
async validate() {
return new Promise((resolve, reject) => {
this.$refs.editRowForm.validate((valid) => {
if (valid) {
// console.log("tg2")
this.$emit("rowFormDataSave", {
gnum: this.rowDatas.row.gnum,
tableRowformData: this.tableRowformData,
});
this.tableRowformData = {};
this.$emit("updateLastItemValid", true);
resolve(true);
} else {
// console.log("wtg2")
this.$emit("updateLastItemValid", false);
resolve(false);
}
});
}
,
}
);
},
};
</script>
},
};
</script>
<style lang="scss" scoped>
.addNewItem{
display: flex;
justify-content: flex-start;
align-items: center;
color:#007AB7;
line-height: 38px;
cursor: pointer;
i{
margin-right: 3px;
}
span{
font-size: 13px;
font-weight: 500;
}
}
.formRowDataOperate{
text-align: center;
padding: 0 20px;
a{
color: #007AB7;
font-weight: 600;
&:first-child{
margin-right: 5px;
}
}
<style lang="scss" scoped>
.addNewItem {
display: flex;
justify-content: flex-start;
align-items: center;
color: #007ab7;
line-height: 38px;
cursor: pointer;
i {
margin-right: 3px;
}
.fedexRowEditFormStyle .el-form-item{
background-color: #ffffff;
box-shadow: 0 2px 4px 0 #E5F2F8CC;
border-left: 1px solid #E5F2F8CC;
// margin-bottom: 30px;
span {
font-size: 13px;
font-weight: 500;
}
.fedexRowEditFormStyle .el-form-item:has(.formError){
margin-bottom: 25px!important;
}
.fedexRowEditFormStyle .activeBorder{
border-left: 3px solid #007AB7;
}
.formRowDataOperate {
text-align: center;
padding: 0 20px;
a {
color: #007ab7;
font-weight: 600;
&:first-child {
margin-right: 5px;
}
}
</style>
}
.fedexRowEditFormStyle .el-form-item {
background-color: #ffffff;
box-shadow: 0 2px 4px 0 #e5f2f8cc;
border-left: 1px solid #e5f2f8cc;
// margin-bottom: 30px;
}
.fedexRowEditFormStyle .el-form-item:has(.formError) {
margin-bottom: 25px !important;
}
.fedexRowEditFormStyle .activeBorder {
border-left: 3px solid #007ab7;
}
</style>
...
...
src/views/editReportingData/index.vue
View file @
1584919
<template>
<div class="entry" v-loading="loadings.entryLoading">
<div class="entryTitle">
<div>申报数据编辑</div>
<div>
<el-button class="entrySaveButton" @click="back">返 回</el-button>
</div>
<div class="entry" v-loading="loadings.entryLoading">
<div class="entryTitle">
<div>申报数据编辑</div>
<div>
<el-button class="entrySaveButton" @click="back">返 回</el-button>
</div>
<section :class="{partsHidden:!isFold}">
<el-form
class="fedexFormStyle fedexFormEditStyle"
ref="editForm"
:model="formData"
:rules="formRules"
label-position="top"
size="small"
>
<el-row :gutter="5">
<el-col :span="3">
<Formitem label="电商企业名称" prop="ebccode">
<el-select
type="text"
id="inputInner--ebccode"
v-model="formData.ebccode"
clearable
filterable
placeholder=""
>
<el-option
v-for="(item, index) in ebcDataList"
:key="index"
:label="item.ecomEntName"
:value="item.ecomEntCode"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="物流企业" prop="logisticsCode">
<el-input
type="text"
class="inputShadow"
id="inputInner--logisticsCode"
resize="none"
v-model="formData.logisticsCode"
disabled
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 订单编号 -->
<el-col :span="3">
<Formitem label="订单编号" prop="orderNo">
<el-input
type="text"
class="inputShadow"
id="inputInner--orderNo"
resize="none"
v-model="formData.orderNo"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 电商平台名称 -->
<el-col :span="3">
<Formitem label="物流运单编号" prop="logisticsNo">
<el-input
type="text"
class="inputShadow"
id="inputInner--logisticsNo"
resize="none"
v-model="formData.logisticsNo"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 电商企业代码 -->
<el-col :span="6">
<Formitem label="申报地海关" prop="declareCustomsCode">
<el-select
type="text"
id="inputInner--declareCustomsCode"
v-model="formData.declareCustomsCode"
filterable
clearable
placeholder=""
>
</div>
<section :class="{ partsHidden: !isFold }">
<el-form
class="fedexFormStyle fedexFormEditStyle"
ref="editForm"
:model="formData"
:rules="formRules"
label-position="top"
size="small"
>
<el-row :gutter="5">
<el-col :span="3">
<Formitem label="电商企业名称" prop="ebccode">
<el-select
type="text"
id="inputInner--ebccode"
v-model="formData.ebccode"
clearable
filterable
placeholder=""
>
<el-option
v-for="(item, index) in declareCustomsDataList"
:key="index"
:label="item.declarationPortCode"
:value="item.declarationPortCode"
></el-option>
</el-select>
</Formitem>
</el-col>
<!-- 电商企业 -->
<el-col :span="3">
<Formitem label="出口日期" prop="exportDate">
<el-date-picker
class="inputInner--createTime"
id="inputInner--exportDate"
v-model="formData.exportDate"
type="date"
format="yyyy-MM-dd"
prefix-icon="none"
value-format="yyyy-MM-dd"
/>
</Formitem>
</el-col>
<!-- 商品金额 -->
v-for="(item, index) in ebcDataList"
:key="index"
:label="item.ecomEntName"
:value="item.ecomEntCode"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="商品金额" prop="goodsValue">
<el-input
type="number"
class="inputShadow"
id="inputInner--goodsValue"
resize="none"
v-model="formData.goodsValue"
disabled
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5">
<!-- 运杂费 -->
<el-col :span="3">
<Formitem label="运杂费" prop="miscellaneousFreight">
<el-input
type="number"
class="inputShadow"
id="inputInner--miscellaneousFreight"
resize="none"
v-model="formData.miscellaneousFreight"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 币制 -->
<el-col :span="3">
<Formitem label="币制" prop="currency">
<el-select
type="text"
id="inputInner--currency"
v-model="formData.currency"
filterable
clearable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.CURRENCY"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<!-- 申报状态 -->
<el-col :span="6">
<Formitem label="主要货物信息" prop="mainGoodsInfo">
<el-input
type="text"
class="inputShadow"
id="inputInner--mainGoodsInfo"
resize="none"
v-model="formData.mainGoodsInfo"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 申报类型 -->
<el-col :span="3">
<Formitem label="贸易方式" prop="appType">
<el-input
type="text"
class="inputShadow"
id="inputInner--appType"
resize="none"
v-model="formData.appType"
disabled
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 申报日期 -->
<el-col :span="3">
<Formitem label="航班号" prop="flightNumber">
<el-input
type="text"
class="inputShadow"
id="inputInner--flightNumber"
resize="none"
v-model="formData.flightNumber"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 备注 -->
<el-col :span="3">
<Formitem label="提运单号" prop="billno">
<el-input
type="text"
class="inputShadow"
id="inputInner--billno"
resize="none"
v-model="formData.billno"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="总包号" prop="totalPackageNo">
<el-input
type="text"
class="inputShadow"
id="inputInner--totalPackageNo"
resize="none"
v-model="formData.totalPackageNo"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5">
<el-col :span="3">
<Formitem label="监管场所代码" prop="regulatoryVenueCode">
<el-input
type="text"
class="inputShadow"
id="inputInner--regulatoryVenueCode"
resize="none"
v-model="formData.regulatoryVenueCode"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="许可证号" prop="licenseKey">
<el-input
type="text"
class="inputShadow"
id="inputInner--licenseKey"
resize="none"
v-model="formData.licenseKey"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="运抵国(地区)" prop="destinationCountryRegion">
<el-select
type="text"
id="inputInner--destinationCountryRegion"
v-model="formData.destinationCountryRegion"
clearable
filterable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.COUNTRY_REGION_CODE"
:key="index"
:label="item.itemChineseName"
:value="item.itemCode"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="指运港代码" prop="portCode">
<el-select
type="text"
id="inputInner--portCode"
v-model="formData.portCode"
clearable
filterable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.COUNTRY_REGION_CODE"
:key="index"
:label="item.itemChineseName"
:value="item.itemCode"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="运费" prop="freight">
<el-input
type="number"
class="inputShadow"
id="inputInner--freight"
resize="none"
v-model="formData.freight"
:min="0"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="运费币制" prop="freightCurrency">
<el-select
type="text"
id="inputInner--freightCurrency"
v-model="formData.freightCurrency"
clearable
filterable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.CURRENCY"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="运费标志" prop="freightTag">
<el-select
type="text"
id="inputInner--freightTag"
v-model="formData.freightTag"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.DECLARE_F_FLAG"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="保费" prop="insuredfee">
<el-input
type="number"
class="inputShadow"
id="inputInner--insuredfee"
resize="none"
v-model="formData.insuredfee"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5">
<el-col :span="3">
<Formitem label="保费币制" prop="insuredfeeCurrency">
<el-select
type="text"
id="inputInner--insuredfeeCurrency"
v-model="formData.insuredfeeCurrency"
clearable
filterable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.CURRENCY"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="保费标志" prop="insuredfeeTag">
<el-select
type="text"
id="inputInner--insuredfeeTag"
v-model="formData.insuredfeeTag"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.DECLARE_F_FLAG"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="包装种类代码" prop="packageTypeCode">
<el-select
type="text"
id="inputInner--packageTypeCode"
v-model="formData.packageTypeCode"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.PACKAGE_TYPE_CODE"
:key="index"
:label="item.itemChineseName"
:value="item.itemCode"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="件数" prop="packNo">
<el-input
class="inputShadow"
id="inputInner--packNo"
resize="none"
maxlength="9"
v-model.number="formData.packNo"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="毛重(公斤)" prop="weight">
<el-input
type="number"
class="inputShadow"
id="inputInner--weight"
resize="none"
v-model="formData.weight"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="净重(公斤)" prop="netWeight">
<el-input
type="number"
class="inputShadow"
id="inputInner--netWeight"
resize="none"
v-model="formData.netWeight"
disabled
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="6">
<Formitem label="备注" prop="remark">
<el-input
type="text"
class="inputShadow"
id="inputInner--remark"
resize="none"
v-model="formData.remark"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
</el-form>
</section>
<div class="fold-unfold">
<img v-if="isFold" src="@/assets/images/fold.png" @click="()=>isFold = false" alt="">
<img v-if="!isFold" src="@/assets/images/unfold.png" @click="()=>isFold = true" alt="">
</div>
<div class="entryTitle" style="margin-top: 10px">商品明细</div>
<section style="position:relative">
<Table
class="fedexDetialTable fedexSreachTable editableTable"
ref="entryTable"
:pagination="false"
:data="detailData"
:headerData="detialHeaderData"
:border="true"
:order="true"
:noWidth="0"
:rowKey="'gnum'"
:expandRowKeys="expandRowKeys"
>
<template slot="rowDataEdit" slot-scope="props">
<RowDataEditForm
ref="rowEditForm"
:rowDatas="props"
@cancelEditRowData="cancelEditRowData"
@rowFormDataSave="rowFormDataSave"
@updateLastItemValid="handleUpdateLastItemValid"
<Formitem label="物流企业" prop="logisticsCode">
<el-input
type="text"
class="inputShadow"
id="inputInner--logisticsCode"
resize="none"
v-model="formData.logisticsCode"
disabled
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 订单编号 -->
<el-col :span="3">
<Formitem label="订单编号" prop="orderNo">
<el-input
type="text"
class="inputShadow"
id="inputInner--orderNo"
resize="none"
v-model="formData.orderNo"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 电商平台名称 -->
<el-col :span="3">
<Formitem label="物流运单编号" prop="logisticsNo">
<el-input
type="text"
class="inputShadow"
id="inputInner--logisticsNo"
resize="none"
v-model="formData.logisticsNo"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 电商企业代码 -->
<el-col :span="6">
<Formitem label="申报地海关" prop="declareCustomsCode">
<el-select
type="text"
id="inputInner--declareCustomsCode"
v-model="formData.declareCustomsCode"
filterable
clearable
placeholder=""
>
<el-option
v-for="(item, index) in declareCustomsDataList"
:key="index"
:label="item.declarationPortCode"
:value="item.declarationPortCode"
></el-option>
</el-select>
</Formitem>
</el-col>
<!-- 电商企业 -->
<el-col :span="3">
<Formitem label="出口日期" prop="exportDate">
<el-date-picker
class="inputInner--createTime"
id="inputInner--exportDate"
v-model="formData.exportDate"
type="date"
format="yyyy-MM-dd"
prefix-icon="none"
value-format="yyyy-MM-dd"
/>
</Formitem>
</el-col>
<!-- 商品金额 -->
<el-col :span="3">
<Formitem label="商品金额" prop="goodsValue">
<el-input
type="number"
class="inputShadow"
id="inputInner--goodsValue"
resize="none"
v-model="formData.goodsValue"
disabled
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5">
<!-- 运杂费 -->
<el-col :span="3">
<Formitem label="运杂费" prop="miscellaneousFreight">
<el-input
type="number"
class="inputShadow"
id="inputInner--miscellaneousFreight"
resize="none"
v-model="formData.miscellaneousFreight"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 币制 -->
<el-col :span="3">
<Formitem label="币制" prop="currency">
<el-select
type="text"
id="inputInner--currency"
v-model="formData.currency"
filterable
clearable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.CURRENCY"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<!-- 申报状态 -->
<el-col :span="6">
<Formitem label="主要货物信息" prop="mainGoodsInfo">
<el-input
type="text"
class="inputShadow"
id="inputInner--mainGoodsInfo"
resize="none"
v-model="formData.mainGoodsInfo"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 申报类型 -->
<el-col :span="3">
<Formitem label="贸易方式" prop="appType">
<el-input
type="text"
class="inputShadow"
id="inputInner--appType"
resize="none"
v-model="formData.appType"
disabled
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 申报日期 -->
<el-col :span="3">
<Formitem label="航班号" prop="flightNumber">
<el-input
type="text"
class="inputShadow"
id="inputInner--flightNumber"
resize="none"
v-model="formData.flightNumber"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 备注 -->
<el-col :span="3">
<Formitem label="提运单号" prop="billno">
<el-input
type="text"
class="inputShadow"
id="inputInner--billno"
resize="none"
v-model="formData.billno"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="总包号" prop="totalPackageNo">
<el-input
type="text"
class="inputShadow"
id="inputInner--totalPackageNo"
resize="none"
v-model="formData.totalPackageNo"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5">
<el-col :span="3">
<Formitem label="监管场所代码" prop="regulatoryVenueCode">
<el-input
type="text"
class="inputShadow"
id="inputInner--regulatoryVenueCode"
resize="none"
v-model="formData.regulatoryVenueCode"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="许可证号" prop="licenseKey">
<el-input
type="text"
class="inputShadow"
id="inputInner--licenseKey"
resize="none"
v-model="formData.licenseKey"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="运抵国(地区)" prop="destinationCountryRegion">
<el-select
type="text"
id="inputInner--destinationCountryRegion"
v-model="formData.destinationCountryRegion"
clearable
filterable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict
.COUNTRY_REGION_CODE"
:key="index"
:label="item.itemChineseName"
:value="item.itemCode"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="指运港代码" prop="portCode">
<el-select
type="text"
id="inputInner--portCode"
v-model="formData.portCode"
clearable
filterable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict
.COUNTRY_REGION_CODE"
:key="index"
:label="item.itemChineseName"
:value="item.itemCode"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="运费" prop="freight">
<el-input
type="number"
class="inputShadow"
id="inputInner--freight"
resize="none"
v-model="formData.freight"
:min="0"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="运费币制" prop="freightCurrency">
<el-select
type="text"
id="inputInner--freightCurrency"
v-model="formData.freightCurrency"
clearable
filterable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.CURRENCY"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="运费标志" prop="freightTag">
<el-select
type="text"
id="inputInner--freightTag"
v-model="formData.freightTag"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.DECLARE_F_FLAG"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="保费" prop="insuredfee">
<el-input
type="number"
class="inputShadow"
id="inputInner--insuredfee"
resize="none"
v-model="formData.insuredfee"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5">
<el-col :span="3">
<Formitem label="保费币制" prop="insuredfeeCurrency">
<el-select
type="text"
id="inputInner--insuredfeeCurrency"
v-model="formData.insuredfeeCurrency"
clearable
filterable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.CURRENCY"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="保费标志" prop="insuredfeeTag">
<el-select
type="text"
id="inputInner--insuredfeeTag"
v-model="formData.insuredfeeTag"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.DECLARE_F_FLAG"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="包装种类代码" prop="packageTypeCode">
<el-select
type="text"
id="inputInner--packageTypeCode"
v-model="formData.packageTypeCode"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.PACKAGE_TYPE_CODE"
:key="index"
:label="item.itemChineseName"
:value="item.itemCode"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="件数" prop="packNo">
<el-input
class="inputShadow"
id="inputInner--packNo"
resize="none"
maxlength="9"
v-model.number="formData.packNo"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="毛重(公斤)" prop="weight">
<el-input
type="number"
class="inputShadow"
id="inputInner--weight"
resize="none"
v-model="formData.weight"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="净重(公斤)" prop="netWeight">
<el-input
type="number"
class="inputShadow"
id="inputInner--netWeight"
resize="none"
v-model="formData.netWeight"
disabled
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="6">
<Formitem label="备注" prop="remark">
<el-input
type="text"
class="inputShadow"
id="inputInner--remark"
resize="none"
v-model="formData.remark"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
</el-form>
</section>
<div class="fold-unfold">
<img
v-if="isFold"
src="@/assets/images/fold.png"
@click="() => (isFold = false)"
alt=""
/>
<img
v-if="!isFold"
src="@/assets/images/unfold.png"
@click="() => (isFold = true)"
alt=""
/>
</div>
<div class="entryTitle" style="margin-top: 10px">商品明细</div>
<section style="position: relative">
<Table
class="fedexDetialTable fedexSreachTable editableTable"
ref="entryTable"
:pagination="false"
:data="detailData"
:headerData="detialHeaderData"
:border="true"
:order="true"
:noWidth="0"
:rowKey="'gnum'"
:expandRowKeys="expandRowKeys"
>
<template slot="rowDataEdit" slot-scope="props">
<RowDataEditForm
ref="rowEditForm"
:rowDatas="props"
@cancelEditRowData="cancelEditRowData"
@rowFormDataSave="rowFormDataSave"
@updateLastItemValid="handleUpdateLastItemValid"
/>
</template>
<template v-slot:destinationCountryRegionCode="scope">
<span>{{
mapDicDatas(
$store.getters.dict.COUNTRY_REGION_CODE,
scope.row.destinationCountryRegionCode
)
}}</span>
</template>
<template v-slot:unit="scope">
<span>{{
mapDicDatas($store.getters.dict.MEASUREMENT_UNIT, scope.row.unit)
}}</span>
</template>
<template v-slot:unitLegalFirstCode="scope">
<span>{{
mapDicDatas(
$store.getters.dict.MEASUREMENT_UNIT,
scope.row.unitLegalFirstCode
)
}}</span>
</template>
<template v-slot:currency="scope">
<span>{{
mapCurrencyDatas($store.getters.dict.CURRENCY, scope.row.currency)
}}</span>
</template>
<template slot="optionColumn">
<el-table-column align="left" label="操作" width="100">
<template slot-scope="scope">
<el-button type="text" @click="updateRow(scope.row)">
修改
</el-button>
<el-button type="text" @click="deleteRow(scope.row)">
删除
</el-button>
</template>
<template v-slot:destinationCountryRegionCode="scope">
<span>{{ mapDicDatas($store.getters.dict.COUNTRY_REGION_CODE, scope.row.destinationCountryRegionCode) }}</span>
</template>
<template v-slot:unit="scope">
<span>{{ mapDicDatas($store.getters.dict.MEASUREMENT_UNIT, scope.row.unit) }}</span>
</template>
<template v-slot:currency="scope">
<span>{{ mapCurrencyDatas($store.getters.dict.CURRENCY, scope.row.currency) }}</span>
</template>
<template slot="optionColumn">
<el-table-column align="left" label="操作" width="100">
<template slot-scope="scope">
<el-button type="text" @click="updateRow(scope.row)"> 修改 </el-button>
<el-button type="text" @click="deleteRow(scope.row)"> 删除 </el-button>
</template>
</el-table-column>
</template>
</Table>
</section>
<div class="addNewItem">
<i class="el-icon-circle-plus-outline" @click="addNewItem"></i>
<span @click="addNewItem">添加新商品</span>
</div>
<div style="margin-top: 20px; text-align: center">
<el-button
</el-table-column>
</template>
</Table>
</section>
<div class="addNewItem">
<i class="el-icon-circle-plus-outline" @click="addNewItem"></i>
<span @click="addNewItem">添加新商品</span>
</div>
<div style="margin-top: 20px; text-align: center">
<el-button
class="entrySaveButton entrySaveButton-background revokeSubmitBtn"
type="primary"
@click="submitEditedReportDatas"
>保存</el-button>
<el-button
class="entrySaveButton"
@click="back"
>返回</el-button>
</div>
>保存</el-button
>
<el-button class="entrySaveButton" @click="back">返回</el-button>
</div>
</template>
</div>
</template>
<script>
import RowDataEditForm from "./RowDataEditForm.vue";
import { getCustomerList, getPortList, getDeclareData, updateDeclareData } from "@/api/declareData-api.js";
import { getDictData } from '@/api/system/dict-api.js'
import item from "@/layout/components/Sidebar/Item.vue";
export default {
name: "",
components: { RowDataEditForm },
data() {
var checkNegativeNum = (rule, value, callback) => {
if (value < 0) {
callback(new Error('数值不能为负'));
} else {
callback();
}
};
var checkInsuredFee = (rule, value, callback) => {
if (value < 0) {
callback(new Error('数值不能为负'));
<script>
import RowDataEditForm from "./RowDataEditForm.vue";
import {
getCustomerList,
getPortList,
getDeclareData,
updateDeclareData,
} from "@/api/declareData-api.js";
import { getDictData } from "@/api/system/dict-api.js";
import item from "@/layout/components/Sidebar/Item.vue";
export default {
name: "",
components: { RowDataEditForm },
data() {
var checkNegativeNum = (rule, value, callback) => {
if (value < 0) {
callback(new Error("数值不能为负"));
} else {
callback();
}
};
var checkInsuredFee = (rule, value, callback) => {
if (value < 0) {
callback(new Error("数值不能为负"));
}
if (value !== "" && value !== undefined) {
const regex = /^\d{0,14}(\.\d{1,5})?$/;
if (!regex.test(value)) {
callback(new Error("整数最多14位,小数最多5位"));
} else {
callback();
}
if (value !== '' && value !== undefined) {
const regex = /^\d{0,14}(\.\d{1,5})?$/;
if (!regex.test(value)) {
callback(new Error('整数最多14位,小数最多5位'));
} else {
callback();
}
} else {
callback();
}
};
var checkPackNo = (rule, value, callback) => {
if (!Number.isInteger(value)) {
callback(new Error("请输入整数值"));
} else {
if (value < 0) {
callback(new Error("数值不能为负"));
} else {
callback();
}
};
var checkPackNo = (rule, value, callback) => {
if (!Number.isInteger(value)) {
callback(new Error('请输入整数值'));
} else {
if (value < 0) {
callback(new Error('数值不能为负'));
} else {
callback();
}
}
};
return {
ebcDataList:[],
declareCustomsDataList:[],
declareId: null,
formData: {
appType:9610
}
};
return {
ebcDataList: [],
declareCustomsDataList: [],
declareId: null,
formData: {
appType: 9610,
},
formRules: {
ebccode: [
{ required: true, message: "请选择电商企业", trigger: "change" },
],
logisticsCode: [
{ required: true, message: "请选择物流企业", trigger: "change" },
],
orderNo: [
{ required: true, message: "请输入订单编号", trigger: "blur" },
{ max: 60, message: "长度不能超过60个字符", trigger: "blur" },
],
logisticsNo: [
{ required: true, message: "请输入物流运单编号", trigger: "blur" },
{ max: 80, message: "长度不能超过80个字符", trigger: "blur" },
],
declareCustomsCode: [
{ required: true, message: "请选择申报地海关", trigger: "change" },
],
exportDate: [{ message: "请选择出口日期", trigger: "change" }],
goodsValue: [
{ required: true, message: "请输入商品金额", trigger: "blur" },
],
miscellaneousFreight: [
{ validator: checkNegativeNum, trigger: "blur" },
],
currency: [
{ required: true, message: "请选择币制", trigger: "change" },
],
mainGoodsInfo: [
{ required: true, message: "请输入主要物品信息", trigger: "blur" },
{ max: 200, message: "长度不能超过200个字符", trigger: "blur" },
],
flightNumber: [
{ required: true, message: "请输入航班号", trigger: "blur" },
{ max: 32, message: "长度不能超过32个字符", trigger: "blur" },
],
billno: [
{ required: true, message: "请输入提运单号", trigger: "blur" },
{ max: 37, message: "长度不能超过37个字符", trigger: "blur" },
],
totalPackageNo: [
{ max: 37, message: "长度不能超过37个字符", trigger: "blur" },
],
regulatoryVenueCode: [
{ max: 10, message: "长度不能超过10个字符", trigger: "blur" },
],
licenseKey: [
{ max: 19, message: "长度不能超过19个字符", trigger: "blur" },
],
destinationCountryRegion: [
{ required: true, message: "请选择运抵国", trigger: "change" },
],
portCode: [
{ required: true, message: "请选择运指运港代码", trigger: "change" },
],
freight: [
{ required: true, message: "请输入运费", trigger: "blur" },
{ validator: checkNegativeNum, trigger: "blur" },
],
freightCurrency: [
{ required: true, message: "请选择运费币制", trigger: "change" },
],
freightTag: [
{ required: true, message: "请选择运费标志", trigger: "change" },
],
insuredfee: [
{ required: true, message: "请输入保费", trigger: "blur" },
{ validator: checkInsuredFee, trigger: "blur" },
],
insuredfeeCurrency: [
{ required: true, message: "请输入保费币制", trigger: "blur" },
],
insuredfeeTag: [
{ required: true, message: "请输选择保费标志", trigger: "change" },
],
packageTypeCode: [
{ required: true, message: "请选择包装种类代码", trigger: "change" },
],
packNo: [
{ required: true, message: "请输入件数", trigger: "blur" },
{ validator: checkPackNo, trigger: "blur" },
],
weight: [
{ required: true, message: "请输入毛重", trigger: "blur" },
{ validator: checkNegativeNum, trigger: "blur" },
],
netWeight: [{ required: true, message: "请输入净重", trigger: "blur" }],
remark: [
{ max: 1000, message: "长度不能超过1000个字符", trigger: "blur" },
],
},
detailData: [],
detialHeaderData: [
{
value: "rowDataEdit",
expand: true,
width: 0,
},
formRules:{
ebccode: [
{ required: true, message: '请选择电商企业', trigger: 'change' },
],
logisticsCode: [
{ required: true, message: '请选择物流企业', trigger: 'change' },
],
orderNo: [
{ required: true, message: '请输入订单编号', trigger: 'blur' },
{ max: 60, message: '长度不能超过60个字符', trigger: 'blur' }
],
logisticsNo: [
{ required: true, message: '请输入物流运单编号', trigger: 'blur' },
{ max: 80, message: '长度不能超过80个字符', trigger: 'blur' }
],
declareCustomsCode: [
{ required: true, message: '请选择申报地海关', trigger: 'change' }
],
exportDate: [
{ message: '请选择出口日期', trigger: 'change' }
],
goodsValue: [
{ required: true, message: '请输入商品金额', trigger: 'blur' }
],
miscellaneousFreight:[
{ validator: checkNegativeNum, trigger: 'blur' }
],
currency: [
{ required: true, message: '请选择币制', trigger: 'change' }
],
mainGoodsInfo: [
{ required: true, message: '请输入主要物品信息', trigger: 'blur' },
{ max: 200, message: '长度不能超过200个字符', trigger: 'blur' }
],
flightNumber: [
{ required: true, message: '请输入航班号', trigger: 'blur' },
{ max: 32, message: '长度不能超过32个字符', trigger: 'blur' }
],
billno: [
{ required: true, message: '请输入提运单号', trigger: 'blur' },
{ max: 37, message: '长度不能超过37个字符', trigger: 'blur' }
],
totalPackageNo: [
{ max: 37, message: '长度不能超过37个字符', trigger: 'blur' }
],
regulatoryVenueCode: [
{ max: 10, message: '长度不能超过10个字符', trigger: 'blur' }
],
licenseKey: [
{ max: 19, message: '长度不能超过19个字符', trigger: 'blur' }
],
destinationCountryRegion: [
{ required: true, message: '请选择运抵国', trigger: 'change' }
],
portCode: [
{ required: true, message: '请选择运指运港代码', trigger: 'change' }
],
freight: [
{ required: true, message: '请输入运费', trigger: 'blur' },
{ validator: checkNegativeNum, trigger: 'blur' }
],
freightCurrency: [
{ required: true, message: '请选择运费币制', trigger: 'change' }
],
freightTag: [
{ required: true, message: '请选择运费标志', trigger: 'change' }
],
insuredfee: [
{ required: true, message: '请输入保费', trigger: 'blur' },
{ validator: checkInsuredFee, trigger: 'blur' }
],
insuredfeeCurrency: [
{ required: true, message: '请输入保费币制', trigger: 'blur' }
],
insuredfeeTag: [
{ required: true, message: '请输选择保费标志', trigger: 'change' }
],
packageTypeCode: [
{ required: true, message: '请选择包装种类代码', trigger: 'change' }
],
packNo: [
{ required: true, message: '请输入件数', trigger: 'blur' },
{ validator: checkPackNo, trigger: 'blur' }
],
weight: [
{ required: true, message: '请输入毛重', trigger: 'blur' },
{ validator: checkNegativeNum, trigger: 'blur' }
],
netWeight: [
{ required: true, message: '请输入净重', trigger: 'blur' }
],
remark: [
{ max: 1000, message: '长度不能超过1000个字符', trigger: 'blur' }
]
{
name: "企业商品货号",
value: "enterpriseProductCode",
width: "",
align: "left",
},
detailData: [],
detialHeaderData: [
{
value: "rowDataEdit",
expand:true,
width:0,
},
{
name: "企业商品货号",
value: "enterpriseProductCode",
width: "",
align: "left",
},
{
name: "企业商品名称",
value: "enterpriseProductName",
width: "",
align: "left",
},
{
name: "企业商品描述",
value: "enterpriseProductDescribe",
width: "",
align: "left",
},
{
name: "商品名称",
value: "productName",
width: "",
align: "left",
},
{
name: "商品编码",
value: "productCode",
width: "",
align: "left",
},
{
name: "规格型号",
value: "model",
width: "",
align: "left",
},
{
name: "账册备案料号",
value: "accountBookMaterialNumber",
width: "",
align: "left",
},
{
name: "条形码",
value: "barCode",
width: "",
align: "left",
},
{
name: "目的国(地区)代码",
value: "destinationCountryRegionCode",
width: "",
align: "left",
slot:true
},
{
name: "计量单位",
value: "unit",
width: "",
align: "left",
slot:true
},
{
name: "数量",
value: "qty",
width: "",
align: "left",
},
{
name: "法定数量",
value: "legalQty",
width: "",
align: "left",
},
{
name: "币制",
value: "currency",
width: "",
align: "left",
slot:true
},
{
name: "单价",
value: "price",
width: "",
align: "left",
},
{
name: "总价",
value: "totalPrice",
width: "",
align: "left",
},
{
name: "净重",
value: "netWeight",
width: "",
align: "left",
},
{
name: "备注",
value: "remark",
width: "",
align: "left",
},
],
loadings: {
entryLoading: false,
name: "企业商品名称",
value: "enterpriseProductName",
width: "",
align: "left",
},
logtableType: true,
expandRowKeys:[],
isFold: false,
// 用于保存原始数据
originalDetailData: {},
// 当前编辑行的 gnum
currentRowKey: null,
lastItemValid: true, // 默认值为 true,表示没有新增项或上一次新增项通过了校验
};
},
created() {
if (this.$route.params.data) {
this.declareId = this.$route.params.data.declareId;
this.queryDeclareData(this.declareId)
this.queryCustomerList()
this.queryPortList()
{
name: "企业商品描述",
value: "enterpriseProductDescribe",
width: "",
align: "left",
},
{
name: "商品名称",
value: "productName",
width: "",
align: "left",
},
{
name: "商品编码",
value: "productCode",
width: "",
align: "left",
},
{
name: "规格型号",
value: "model",
width: "",
align: "left",
},
{
name: "账册备案料号",
value: "accountBookMaterialNumber",
width: "",
align: "left",
},
{
name: "条形码",
value: "barCode",
width: "",
align: "left",
},
{
name: "目的国(地区)代码",
value: "destinationCountryRegionCode",
width: "",
align: "left",
slot: true,
},
{
name: "计量单位",
value: "unit",
width: "",
align: "left",
slot: true,
},
{
name: "数量",
value: "qty",
width: "",
align: "left",
},
{
name: "法定数量",
value: "legalQty",
width: "",
align: "left",
},
{
name: "法定计量单位",
value: "unitLegalFirstCode",
width: "",
align: "left",
slot: true,
},
{
name: "币制",
value: "currency",
width: "",
align: "left",
slot: true,
},
{
name: "单价",
value: "price",
width: "",
align: "left",
},
{
name: "总价",
value: "totalPrice",
width: "",
align: "left",
},
{
name: "净重",
value: "netWeight",
width: "",
align: "left",
},
{
name: "备注",
value: "remark",
width: "",
align: "left",
},
],
loadings: {
entryLoading: false,
},
logtableType: true,
expandRowKeys: [],
isFold: false,
// 用于保存原始数据
originalDetailData: {},
// 当前编辑行的 gnum
currentRowKey: null,
lastItemValid: true, // 默认值为 true,表示没有新增项或上一次新增项通过了校验
};
},
created() {
if (this.$route.params.data) {
this.declareId = this.$route.params.data.declareId;
this.queryDeclareData(this.declareId);
this.queryCustomerList();
this.queryPortList();
} else {
this.back();
}
},
beforeRouteLeave(to, from, next) {
if (to.name === "ReportingData") {
// 设置一个标志表示需要刷新数据
to.meta.needsRefresh = true;
}
next();
},
methods: {
mapDicDatas(dicArr, code) {
if (code != "" && code) {
return dicArr.filter((item) => item.itemCode == code)[0]
.itemChineseName;
} else {
this.back()
;
return ""
;
}
},
beforeRouteLeave(to, from, next) {
if (to.name === 'ReportingData') {
// 设置一个标志表示需要刷新数据
to.meta.needsRefresh = true;
mapCurrencyDatas(dicArr, code) {
if (code != "") {
return dicArr.filter((item) => item.itemValue == code)[0]
.itemChineseName;
} else {
return "";
}
next();
},
methods: {
mapDicDatas(dicArr, code){
if (code != "") {
return dicArr.filter(item => item.itemCode == code)[0].itemChineseName
//获取客户下拉列表数据
queryCustomerList() {
getCustomerList()
.then((res) => {
if (res.code == 200) {
this.ebcDataList = res.data.value;
} else {
return ''
this.ebcDataList = [];
}
},
mapCurrencyDatas(dicArr, code){
if (code != "") {
return dicArr.filter(item => item.itemValue == code)[0].itemChineseName
})
.catch((err) => {
console.log(err);
});
},
//获取口岸表数据
queryPortList() {
getPortList()
.then((res) => {
if (res.code == 200) {
this.declareCustomsDataList = res.data.value;
} else {
return ''
this.declareCustomsDataList = [];
}
})
.catch((err) => {
console.log(err);
});
},
//获取申报数据
queryDeclareData(declareId) {
getDeclareData({ declareId })
.then((res) => {
// console.log(1111, res)
if (res.code == 200) {
res.data.declare.orderNo = res.data.declare.orderno;
this.formData = res.data.declare;
this.formData.appType = 9610;
this.detailData = res.data.product.length
? res.data.product.map((item, index) => {
item.gnum = index + 1;
return item;
})
: [];
} else {
this.detailData = [];
this.formData = {};
}
})
.catch((err) => {
console.log(err);
});
},
},
//获取客户下拉列表数据
queryCustomerList(){
getCustomerList().then(res =>{
if (res.code == 200) {
this.ebcDataList = res.data.value
} else {
this.ebcDataList = []
}
}).catch(err =>{
console.log(err)
})
},
//获取口岸表数据
queryPortList(){
getPortList().then(res =>{
if (res.code == 200) {
this.declareCustomsDataList = res.data.value
} else {
this.declareCustomsDataList = []
}
}).catch(err =>{
console.log(err)
})
},
//获取申报数据
queryDeclareData(declareId) {
getDeclareData({declareId}).then(res =>{
// console.log(1111, res)
if (res.code == 200) {
res.data.declare.orderNo = res.data.declare.orderno
this.formData = res.data.declare
this.formData.appType=9610
this.detailData = res.data.product.length ? res.data.product.map((item, index) =>{
item.gnum = index+1
return item
}) : []
} else {
this.detailData = []
this.formData = {}
}
}).catch(err =>{
console.log(err)
})
},
hiddenLogTable() {
this.logtableType = !this.logtableType;
},
back() {
this.$router.go(-1);
},
hiddenLogTable() {
this.logtableType = !this.logtableType;
},
back() {
this.$router.go(-1);
},
//添加新商品
async addNewItem() {
// 如果上一次新增的 item 没有通过校验,则不允许新增
//console.log("this",this.lastItemValid)
// if (!this.lastItemValid) {
// console.log(11)
// this.$message.warning('请先完善新增的商品信息');
// return;
// }
// 获取最后一个 item 的引用
const lastItem = this.detailData[this.detailData.length - 1];
// 如果存在上一次新增的 item,则进行校验
if (lastItem) {
// 获取 RowDataEditForm 组件的引用
const rowEditForm = this.$refs.rowEditForm;
if (rowEditForm) {
// 调用校验方法
const isValid = await rowEditForm.validate();
// console.log("y:",this.lastItemValid)
// console.log("!",isValid)
if (!isValid) {
//添加新商品
async addNewItem() {
// 如果上一次新增的 item 没有通过校验,则不允许新增
//console.log("this",this.lastItemValid)
// if (!this.lastItemValid) {
// console.log(11)
// this.$message.warning('请先完善新增的商品信息');
// return;
// }
// 获取最后一个 item 的引用
const lastItem = this.detailData[this.detailData.length - 1];
// 如果存在上一次新增的 item,则进行校验
if (lastItem) {
// 获取 RowDataEditForm 组件的引用
const rowEditForm = this.$refs.rowEditForm;
if (rowEditForm) {
// 调用校验方法
const isValid = await rowEditForm.validate();
// console.log("y:",this.lastItemValid)
// console.log("!",isValid)
if (!isValid) {
// console.log(22)
this.lastItemValid = false; // 标记上一次新增的 item 未通过校验
this.$message.warning('请先完善新增的商品信息');
return;
}
this.lastItemValid = false; // 标记上一次新增的 item 未通过校验
this.$message.warning("请先完善新增的商品信息");
return;
}
}
// 校验通过,允许新增 item
let orderNum = this.detailData.at(-1) === undefined ? 1 : this.detailData.at(-1).gnum + 1;
this.detailData.push({
"gnum":orderNum,
"accountBookMaterialNumber": "",
"barCode": "",
"currency": "",
"destinationCountryRegionCode": "",
"enterpriseProductCode": "",
"enterpriseProductDescribe": "",
"enterpriseProductName": "",
"legalQty": 0,
"model": "",
"netWeight": 0,
"price": 0,
"productCode": "",
"productName": "",
"qty": 0,
"remark": "",
"totalPrice": 0,
"unit": "",
"isNew": true // 添加 isNew 标志
});
}
// 校验通过,允许新增 item
let orderNum =
this.detailData.at(-1) === undefined
? 1
: this.detailData.at(-1).gnum + 1;
this.detailData.push({
gnum: orderNum,
accountBookMaterialNumber: "",
barCode: "",
currency: "",
destinationCountryRegionCode: "",
enterpriseProductCode: "",
enterpriseProductDescribe: "",
enterpriseProductName: "",
legalQty: 0,
model: "",
netWeight: 0,
price: 0,
productCode: "",
productName: "",
qty: 0,
remark: "",
totalPrice: 0,
unit: "",
isNew: true, // 添加 isNew 标志
});
this.$nextTick(() => {
this.expandRowKeys = [orderNum];
this.lastItemValid = true; // 重置标志位
});
},
updateRow(row)
{
if (this.expandRowKeys.length > 0) return
this.expandRowKeys = [row.gnum]
this.currentRowKey = row.gnum; // 设置当前行的 gnum
this.$nextTick(() => {
this.expandRowKeys = [orderNum];
this.lastItemValid = true; // 重置标志位
});
},
updateRow(row)
{
if (this.expandRowKeys.length > 0) return;
this.expandRowKeys = [row.gnum];
this.currentRowKey = row.gnum; // 设置当前行的 gnum
// 保存原始数据
this.originalDetailData[row.gnum] = { ...row };
// 保存原始数据
this.originalDetailData[row.gnum] = { ...row };
let obj = {}
for (let key in row) {
obj[key] = row[key]
}
let obj = {};
for (let key in row) {
obj[key] = row[key];
}
this.$nextTick(()=>{
this.$refs.rowEditForm.tableRowformData = obj
// const table = this.$refs.entryTable.$el.querySelector('.el-table__body-wrapper');
// table.scrollTop = row.gnum*51+10
})
},
getTotalNumber(){
let totalNetWeight = 0;
let totalGoodsValue = 0
for (let i=0; i<this.detailData.length; i++) {
totalNetWeight += Number(this.detailData[i].netWeight)
totalGoodsValue += Number(this.detailData[i].totalPrice)
}
this.formData.netWeight = totalNetWeight.toFixed(5)
this.formData.goodsValue = totalGoodsValue.toFixed(5)
},
deleteRow(row){
this.detailData = this.detailData.filter(item => item.gnum !=row.gnum).map((item, index) =>{
item.gnum = index+1
return item
})
this.$nextTick(()=>{
this.getTotalNumber()
this.expandRowKeys = []
this.detailData.length
this.lastItemValid = this.detailData.length === row.index;
})
},
rowFormDataSave(props){
this.detailData.map(item =>{
if (item.gnum == props.gnum) {
item = Object.assign(item, props.tableRowformData)
return item
}
})
this.expandRowKeys = []
this.$nextTick(()=>{
this.lastItemValid = true;
this.getTotalNumber()
})
},
cancelEditRowData(index) {
this.lastItemValid = true; // 重置标志位
this.$nextTick(() => {
this.$refs.rowEditForm.tableRowformData = obj;
// const table = this.$refs.entryTable.$el.querySelector('.el-table__body-wrapper');
// table.scrollTop = row.gnum*51+10
});
},
getTotalNumber() {
let totalNetWeight = 0;
let totalGoodsValue = 0;
for (let i = 0; i < this.detailData.length; i++) {
totalNetWeight += Number(this.detailData[i].netWeight);
totalGoodsValue += Number(this.detailData[i].totalPrice);
}
this.formData.netWeight = totalNetWeight.toFixed(5);
this.formData.goodsValue = totalGoodsValue.toFixed(5);
},
deleteRow(row) {
this.detailData = this.detailData
.filter((item) => item.gnum != row.gnum)
.map((item, index) => {
item.gnum = index + 1;
return item;
});
this.$nextTick(() => {
this.getTotalNumber();
this.expandRowKeys = [];
if (index !== undefined) {
const gnum = this.detailData[index].gnum;
if (this.detailData[index].isNew) {
// 如果是新添加的项,则删除该项
this.detailData.splice(index, 1);
} else {
// 否则,恢复原始数据
if (this.originalDetailData[gnum]) {
this.detailData[index] = { ...this.originalDetailData[gnum] };
delete this.originalDetailData[gnum]; // 删除保存的原始数据
}
}
this.detailData.length;
this.lastItemValid = this.detailData.length === row.index;
});
},
rowFormDataSave(props) {
this.detailData.map((item) => {
if (item.gnum == props.gnum) {
item = Object.assign(item, props.tableRowformData);
return item;
}
},
// 更新 lastItemValid
handleUpdateLastItemValid(isValid) {
this.lastItemValid = isValid;
},
//提交更新数据
submitEditedReportDatas(){
this.$refs.editForm.validate((valid) => {
if (valid) {
let data = {
declare: this.formData,
product: this.detailData
}
updateDeclareData(data).then(res =>{
if (res.code == 200) {
this.msgSuccess("数据更新成功");
this.queryDeclareData(this.declareId)
this.lastItemValid = true;
} else {
this.alertWarningMsg(res.message);
}
}).catch(err =>{
console.log(err)
})
} else {
return false;
});
this.expandRowKeys = [];
this.$nextTick(() => {
this.lastItemValid = true;
this.getTotalNumber();
});
},
cancelEditRowData(index) {
this.lastItemValid = true; // 重置标志位
this.expandRowKeys = [];
if (index !== undefined) {
const gnum = this.detailData[index].gnum;
if (this.detailData[index].isNew) {
// 如果是新添加的项,则删除该项
this.detailData.splice(index, 1);
} else {
// 否则,恢复原始数据
if (this.originalDetailData[gnum]) {
this.detailData[index] = { ...this.originalDetailData[gnum] };
delete this.originalDetailData[gnum]; // 删除保存的原始数据
}
});
},
//取消编辑
cancelEditedReportDatas(){
}
}
},
};
</script>
// 更新 lastItemValid
handleUpdateLastItemValid(isValid) {
this.lastItemValid = isValid;
},
//提交更新数据
submitEditedReportDatas() {
this.$refs.editForm.validate((valid) => {
if (valid) {
let data = {
declare: this.formData,
product: this.detailData,
};
updateDeclareData(data)
.then((res) => {
if (res.code == 200) {
this.msgSuccess("数据更新成功");
this.queryDeclareData(this.declareId);
this.lastItemValid = true;
} else {
this.alertWarningMsg(res.message);
}
})
.catch((err) => {
console.log(err);
});
} else {
return false;
}
});
},
//取消编辑
cancelEditedReportDatas() {},
},
};
</script>
<style scoped lang="scss">
.entry {
<style scoped lang="scss">
.entry {
width: 100%;
height: 100%;
padding: 10px;
background-color: #fff;
overflow: auto;
.entryInformation {
width: 100%;
height: 100%;
padding: 10px;
background-color: #fff;
overflow: auto;
.entryInformation {
width: 100%;
height: 100%;
}
.entryTitle {
display: flex;
justify-content: space-between;
font-weight: 600;
font-weight: 16px;
color: #000;
margin-bottom: 10px;
}
.titleBorder {
border-bottom: 1px solid #333;
}
}
.addNewItem{
.entryTitle {
display: flex;
justify-content: flex-start;
align-items: center;
color:#007AB7;
line-height: 38px;
i{
margin-right: 3px;
}
span{
font-size: 13px;
font-weight: 500;
cursor: pointer;
}
justify-content: space-between;
font-weight: 600;
font-weight: 16px;
color: #000;
margin-bottom: 10px;
}
.formRowDataOperate{
text-align: right;
padding: 0 20px;
a{
color: #007AB7;
font-weight: 600;
&:first-child{
margin-right: 5px;
}
}
}
.fedexFormEditStyle .el-form-item:has(.formError) {
margin-bottom: 30px !important;
.titleBorder {
border-bottom: 1px solid #333;
}
.fedexFormEditStyle .el-form-item .formError{
padding:0 0.9375rem !important;
}
.addNewItem {
display: flex;
justify-content: flex-start;
align-items: center;
color: #007ab7;
line-height: 38px;
i {
margin-right: 3px;
}
.partsHidden{
height: 164px;
overflow: hidden;
span {
font-size: 13px;
font-weight: 500;
cursor: pointer;
}
.fold-unfold{
display: flex;
justify-content: center;
padding-top:8px;
img{
width: 22px;
}
.formRowDataOperate {
text-align: right;
padding: 0 20px;
a {
color: #007ab7;
font-weight: 600;
&:first-child {
margin-right: 5px;
}
}
</style>
}
.fedexFormEditStyle .el-form-item:has(.formError) {
margin-bottom: 30px !important;
}
.fedexFormEditStyle .el-form-item .formError {
padding: 0 0.9375rem !important;
}
.partsHidden {
height: 164px;
overflow: hidden;
}
.fold-unfold {
display: flex;
justify-content: center;
padding-top: 8px;
img {
width: 22px;
}
}
</style>
...
...
src/views/portConfig/dialog.vue
View file @
1584919
...
...
@@ -127,6 +127,25 @@
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5">
<el-col :span="8">
<Formitem
label="汇总申报地海关代码"
prop="exportPortCode"
type="edit"
>
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-exportPortCode"
resize="none"
v-model="formData.exportPortCode"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
</el-form>
</div>
<div class="dialogOption entrySave">
...
...
@@ -177,6 +196,7 @@ export default {
declarationUnitCompanyName: "",
dxpid: "",
portCode: "",
exportPortCode: "",
},
rules: {
portCode: [
...
...
@@ -244,6 +264,13 @@ export default {
message: "申报单位 (企业名称)不能为空!",
},
],
exportPortCode: [
{
required: true,
trigger: "blur",
message: "汇总申报地海关代码不能为空!",
},
],
},
loadings: {
dialogLoading: false,
...
...
@@ -348,6 +375,7 @@ export default {
declarationUnitCompanyName: "",
dxpid: "",
portCode: "",
exportPortCode: "",
};
this.$emit("close");
},
...
...
src/views/reportingData/index.vue
View file @
1584919
...
...
@@ -255,7 +255,8 @@
ref="entryTable"
:data="tableData"
:headerData="headerData"
:height="tableMaxheight"
:height="tableMaxheight + 'px'"
:maxHeight="tableMaxheight + 'px'"
:border="true"
:pagination="true"
:order="false"
...
...
@@ -633,7 +634,7 @@ export default {
departureLoading: false, // 离境单申报加载状态
},
textareaVisible: {},
tableMaxheight:
null
,
tableMaxheight:
500
,
outerVisible: false,
dropdownName: "一键申报",
dropdownCode: "full",
...
...
@@ -645,17 +646,13 @@ export default {
},
created() {
this.search(0);
// this.getCancellationReasons()
this.calculateTableHeight();
},
mounted() {
this.tableMaxheight = window.innerHeight - 280;
window.addEventListener(
"resize",
() => {
this.tableMaxheight = window.innerHeight - 280;
},
false
);
window.addEventListener("resize", this.calculateTableHeight);
},
beforeDestroy() {
window.removeEventListener("resize", this.calculateTableHeight);
},
watch: {
$route(val, oldval) {
...
...
@@ -673,6 +670,9 @@ export default {
});
},
methods: {
calculateTableHeight() {
this.tableMaxheight = window.innerHeight - 300;
},
//查询申报数据
search(val) {
this.loadings.sreachLoading = true;
...
...
@@ -886,7 +886,7 @@ export default {
// }
this.search(1);
this.outerVisible = false;
this.tableMaxheight = window.innerHeight -
28
0;
this.tableMaxheight = window.innerHeight -
30
0;
this.$forceUpdate();
},
popoverChange(val) {
...
...
src/views/summaryDataSearch/index.vue
View file @
1584919
...
...
@@ -9,24 +9,24 @@
>
<el-row class="row-border">
<!-- 提运单号 -->
<!-- <el-col :span="5">-->
<!-- <Formitem label="提运单号" prop="billNo">-->
<!-- <el-input-->
<!-- type="text"-->
<!-- class="inputShadow"-->
<!-- id="inputInner--billNo"-->
<!-- resize="none"-->
<!-- v-model="sreachFormData.billNo"-->
<!-- clearable-->
<!-- placeholder=""-->
<!-- ></el-input>-->
<!--<!– <FormTextareaInput–>-->
<!--<!– :formData="sreachFormData"–>-->
<!--<!– dataKey="billNo"–>-->
<!--<!– @formChange="formChange"–>-->
<!--<!– />–>-->
<!-- </Formitem>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <Formitem label="提运单号" prop="billNo">-->
<!-- <el-input-->
<!-- type="text"-->
<!-- class="inputShadow"-->
<!-- id="inputInner--billNo"-->
<!-- resize="none"-->
<!-- v-model="sreachFormData.billNo"-->
<!-- clearable-->
<!-- placeholder=""-->
<!-- ></el-input>-->
<!--<!– <FormTextareaInput–>-->
<!--<!– :formData="sreachFormData"–>-->
<!--<!– dataKey="billNo"–>-->
<!--<!– @formChange="formChange"–>-->
<!--<!– />–>-->
<!-- </Formitem>-->
<!-- </el-col>-->
<!-- 预录入编号 -->
<el-col :span="5">
<Formitem label="预录入编号" prop="preNo">
...
...
@@ -135,7 +135,11 @@
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.RECEIPT_STATUS.filter(fItem => fItem.itemChineseName !== '已提交')"
v-for="(
item, index
) in $store.getters.dict.RECEIPT_STATUS.filter(
(fItem) => fItem.itemChineseName !== '已提交'
)"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
...
...
@@ -144,47 +148,47 @@
</Formitem>
</el-col>
<!-- 入库时间 -->
<!-- <el-col :span="5">-->
<!-- <Formitem label="入库时间" prop="startTime" :activeType="true">-->
<!-- <el-date-picker-->
<!-- class="inputInner--startTime"-->
<!-- id="inputInner--startTime"-->
<!-- v-model="sreachFormData.startTime"-->
<!-- type="daterange"-->
<!-- format="yyyy-MM-dd"-->
<!-- prefix-icon="none"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- range-separator="至"-->
<!-- @change="dateChange"-->
<!-- />-->
<!-- </Formitem>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <Formitem label="入库时间" prop="startTime" :activeType="true">-->
<!-- <el-date-picker-->
<!-- class="inputInner--startTime"-->
<!-- id="inputInner--startTime"-->
<!-- v-model="sreachFormData.startTime"-->
<!-- type="daterange"-->
<!-- format="yyyy-MM-dd"-->
<!-- prefix-icon="none"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- range-separator="至"-->
<!-- @change="dateChange"-->
<!-- />-->
<!-- </Formitem>-->
<!-- </el-col>-->
<!-- 报文序号 -->
<!-- <el-col :span="5">-->
<!-- <Formitem label="报文序号" prop="msgSeqNo">-->
<!-- <el-input-->
<!-- type="text"-->
<!-- class="inputShadow"-->
<!-- id="inputInner--msgSeqNo"-->
<!-- resize="none"-->
<!-- v-model="sreachFormData.msgSeqNo"-->
<!-- clearable-->
<!-- placeholder=""-->
<!-- ></el-input>-->
<!-- </Formitem>-->
<!-- </el-col>-->
<!-- <el-col :span="5">-->
<!-- <Formitem label="报文序号" prop="msgSeqNo">-->
<!-- <el-input-->
<!-- type="text"-->
<!-- class="inputShadow"-->
<!-- id="inputInner--msgSeqNo"-->
<!-- resize="none"-->
<!-- v-model="sreachFormData.msgSeqNo"-->
<!-- clearable-->
<!-- placeholder=""-->
<!-- ></el-input>-->
<!-- </Formitem>-->
<!-- </el-col>-->
</el-row>
</el-form>
<!-- <div class="optionButton">-->
<!-- <el-button-->
<!-- class="entrySaveButton"-->
<!-- size="small"-->
<!-- icon="el-icon-download"-->
<!-- @click="downloadData"-->
<!-- >-->
<!-- 导出-->
<!-- </el-button>-->
<!-- </div>-->
<!-- <div class="optionButton">-->
<!-- <el-button-->
<!-- class="entrySaveButton"-->
<!-- size="small"-->
<!-- icon="el-icon-download"-->
<!-- @click="downloadData"-->
<!-- >-->
<!-- 导出-->
<!-- </el-button>-->
<!-- </div>-->
<Table
class="fedexDetialTable fedexSreachTable"
ref="entryTable"
...
...
@@ -220,7 +224,8 @@
@popoverClose="popoverClose"
>
<div slot="title">
<span style="font-weight: 700; color: #515a6e">汇总申请单编号:</span
<span style="font-weight: 700; color: #515a6e"
>汇总申请单编号:</span
>{{ scope.row.sumNo }}
</div>
<div slot="buttonLabel">
...
...
@@ -242,7 +247,7 @@
<script>
import {
searchExportSummaryList,
getExportSummaryReceiptData
getExportSummaryReceiptData
,
} from "@/api/exportSummary-api";
export default {
name: "ExportBillQuery",
...
...
@@ -325,7 +330,13 @@ export default {
},
{
name: "收发货人汇总标志",
value:"summaryFlag",
value: "summaryFlag",
width: "",
align: "left",
},
{
name: "申报时间",
value: "createTime",
width: "",
align: "left",
},
...
...
@@ -443,7 +454,7 @@ export default {
})
.finally(() => {
this.$nextTick(() => {
this.$store.dispatch(
'setLoadingState', false)
this.$store.dispatch(
"setLoadingState", false);
this.$refs.returnStatusPopover.tableLoading = false;
});
});
...
...
src/views/summaryDetail/index.vue
View file @
1584919
...
...
@@ -16,21 +16,21 @@
>
<el-row :gutter="5">
<!-- 提运单号 -->
<!-- <el-col :span="3">-->
<!-- <Formitem label="提运单号" prop="billNo">-->
<!-- <el-input-->
<!-- type="text"-->
<!-- class="inputShadow"-->
<!-- id="inputInner--billNo"-->
<!-- resize="none"-->
<!-- v-model="formData.billNo"-->
<!-- clearable-->
<!-- placeholder=""-->
<!-- ></el-input>-->
<!-- </Formitem>-->
<!-- </el-col>-->
<!-- <el-col :span="3">-->
<!-- <Formitem label="提运单号" prop="billNo">-->
<!-- <el-input-->
<!-- type="text"-->
<!-- class="inputShadow"-->
<!-- id="inputInner--billNo"-->
<!-- resize="none"-->
<!-- v-model="formData.billNo"-->
<!-- clearable-->
<!-- placeholder=""-->
<!-- ></el-input>-->
<!-- </Formitem>-->
<!-- </el-col>-->
<!-- 电子口岸编号 -->
<el-col :span="
3
">
<el-col :span="
6
">
<Formitem label="电子口岸编号" prop="preNo">
<el-input
type="text"
...
...
@@ -62,21 +62,21 @@
</el-select>
</Formitem>
</el-col>
<!-- <el-col :span="3">-->
<!-- <Formitem label="业务状态" prop="">-->
<!-- <el-select-->
<!-- type="text"-->
<!-- id="inputInner--appType"-->
<!-- v-model="formData.businessStatus"-->
<!-- clearable-->
<!-- placeholder=""-->
<!-- >-->
<!-- <el-col :span="3">-->
<!-- <Formitem label="业务状态" prop="">-->
<!-- <el-select-->
<!-- type="text"-->
<!-- id="inputInner--appType"-->
<!-- v-model="formData.businessStatus"-->
<!-- clearable-->
<!-- placeholder=""-->
<!-- >-->
<!-- </el-select>-->
<!-- </Formitem>-->
<!-- </el-col>-->
<!-- </el-select>-->
<!-- </Formitem>-->
<!-- </el-col>-->
<!-- 汇总申请编号 -->
<el-col :span="
3
">
<el-col :span="
6
">
<Formitem label="汇总申请编号" prop="sumNo">
<el-input
type="text"
...
...
@@ -104,7 +104,7 @@
</Formitem>
</el-col>
<!-- 报关单位名称 -->
<el-col :span="
12
">
<el-col :span="
6
">
<Formitem label="报关单位名称" prop="declAgentName">
<el-input
type="text"
...
...
@@ -289,9 +289,9 @@
></el-input>
</Formitem>
</el-col>
<!-- 入库时间 -->
<!-- 入库时间
=>申报时间
-->
<el-col :span="3">
<Formitem label="
入库
时间" prop="createTime">
<Formitem label="
申报
时间" prop="createTime">
<el-input
type="text"
class="inputShadow"
...
...
src/views/summaryEdit/index.vue
View file @
1584919
<template>
<div style="background-color: #
FFFFFF;
height: 100%">
<div style="background-color: #
ffffff;
height: 100%">
<div class="title">
<div>
</div>
<div>
汇总申报信息
</div>
<div></div>
<div>汇总申报信息</div>
</div>
<div class="content">
<el-form
...
...
@@ -26,6 +23,7 @@
clearable
filterable
placeholder=""
@change="searchUserData"
>
<el-option
v-for="(item, index) in portInfo"
...
...
@@ -37,7 +35,7 @@
</Formitem>
</el-col>
<el-col :span="10">
<Formitem label="申报地海关" prop="customsCode">
<Formitem label="
清单
申报地海关" prop="customsCode">
<el-select
type="text"
id="inputInner--customsCode"
...
...
@@ -57,25 +55,6 @@
</el-row>
<el-row :gutter="5" type="flex" justify="center">
<el-col :span="10">
<Formitem label="电商企业名称" prop="ebpcode">
<el-select
type="text"
id="inputInner--ebpcode"
v-model="formData.ebpcode"
clearable
filterable
placeholder=""
>
<el-option
v-for="(item, index) in ebcDataList"
:key="index"
:label="item.ecomEntName"
:value="item.ecomEntCode"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="10">
<Formitem label="申报方式" prop="declareType">
<el-select
type="text"
...
...
@@ -93,10 +72,8 @@
</el-select>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5" type="flex" justify="center">
<el-col :span="10">
<Formitem label="创建时间" prop="time"
:activeType="true"
>
<Formitem label="创建时间" prop="time">
<el-date-picker
class="inputInner--time"
id="inputInner--time"
...
...
@@ -107,10 +84,32 @@
value-format="yyyy-MM-dd"
range-separator="至"
@change="dateChange"
style="background-color: #f2f2f2
;
"
style="background-color: #f2f2f2"
/>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5" type="flex" justify="center">
<el-col :span="10">
<Formitem label="电商企业名称" prop="ebpcode">
<el-select
type="text"
id="inputInner--ebpcode"
v-model="formData.ebpcode"
clearable
filterable
placeholder=""
@focus.stop="getCustomerList"
>
<el-option
v-for="(item, index) in ebcDataList"
:key="index"
:label="item.ecomEntName"
:value="item.ecomEntCode"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="发货人汇总" prop="summaryFlag">
<el-select
...
...
@@ -151,75 +150,81 @@
</el-form>
</div>
<div class="entrySave">
<el-button
class="entrySaveButton"
@click="submit"
>提交</el-button
>
<el-button
class="entrySaveButton"
@click="cancel"
>取消</el-button
>
<el-button class="entrySaveButton" @click="submit">提交</el-button>
<el-button class="entrySaveButton" @click="cancel">取消</el-button>
</div>
</div>
</template>
<script>
import { getCurrUserPortInfo } from "@/api/system/user.js";
import { get
CustomerList
} from "@/api/declareData-api.js";
import { getDictData } from
'@/api/system/dict-api.js'
import { get
NewCustomerList
} from "@/api/declareData-api.js";
import { getDictData } from
"@/api/system/dict-api.js";
import { declareSummaryApplication } from "@/api/exportSummary-api.js";
export default {
name: "",
data() {
return {
formRules:{
portCode:[
{ required: true, message:
'请选择出口口岸', trigger: 'change'
},
formRules:
{
portCode:
[
{ required: true, message:
"请选择出口口岸", trigger: "change"
},
],
customsCode:[
{ required: true, message:
'请选择申报地海关', trigger: 'change'
},
customsCode:
[
{ required: true, message:
"请选择申报地海关", trigger: "change"
},
],
ebpcode: [
{ required: true, message:
'请选择电商企业', trigger: 'change'
},
{ required: true, message:
"请选择电商企业", trigger: "change"
},
],
declareType: [
{ required: true, message:
'请选择申报方式', trigger: 'change'
},
{ required: true, message:
"请选择申报方式", trigger: "change"
},
],
time:
[
time: [
{
type:
'array'
,
type:
"array"
,
required: true,
message:
'请选择完整的日期区间'
,
trigger:
'change'
}
message:
"请选择完整的日期区间"
,
trigger:
"change",
}
,
],
summaryFlag: [
{ required: true, message:
'请选择发货人汇总', trigger: 'change'
},
{ required: true, message:
"请选择发货人汇总", trigger: "change"
},
],
itemNameFlag: [
{ required: true, message:
'请选择商品名汇总', trigger: 'change'
},
{ required: true, message:
"请选择商品名汇总", trigger: "change"
},
],
},
formData:{},
portInfo:[],
ebcDataList:[],
summaryFlag:[],
itemNameFlag:[],
declareType:[]
formData: {
portCode: "",
customsCode: "",
ebpcode: "",
declareType: "",
time: [],
summaryFlag: "",
itemNameFlag: "",
},
portInfo: [],
ebcDataList: [],
summaryFlag: [],
itemNameFlag: [],
declareType: [],
};
},
created() {
this.getCurrUserPortInfo()
this.getCustomerList()
this.getSummaryFlag()
this.getItemNameFlag()
this.getDeclareType()
this.getCurrUserPortInfo();
this.getCustomerList();
this.getSummaryFlag();
this.getItemNameFlag();
},
mounted() {
this.getDeclareType();
},
methods: {
searchUserData(val) {
this.formData.customsCode = val;
this.formData.ebpcode = "";
},
//获取当前用户的口岸信息
getCurrUserPortInfo(){
getCurrUserPortInfo()
{
getCurrUserPortInfo()
.then((res) => {
if (res.code === "200") {
...
...
@@ -231,23 +236,27 @@ export default {
});
},
//获取客户下拉列表数据
getCustomerList(){
getCustomerList().then(res =>{
if (res.code == 200) {
this.ebcDataList = res.data.value
} else {
this.ebcDataList = []
}
}).catch(err =>{
console.log(err)
})
getCustomerList() {
let params = {
...this.formData,
};
getNewCustomerList(params)
.then((res) => {
if (res.code == 200) {
this.ebcDataList = res.data;
} else {
this.ebcDataList = [];
}
})
.catch((err) => {
console.log(err);
});
},
//获取发货人下拉数据
getSummaryFlag(){
getSummaryFlag()
{
getDictData({
doctCode: "SUMMARY_FLAG"
}).then(
res
=> {
doctCode: "SUMMARY_FLAG"
,
}).then(
(res)
=> {
if (res.code == 200) {
this.summaryFlag = res.data;
} else {
...
...
@@ -256,10 +265,10 @@ export default {
});
},
//获取发货人下拉数据
getItemNameFlag(){
getItemNameFlag()
{
getDictData({
doctCode: "ITEM_NAME_FLAG"
}).then(
res
=> {
doctCode: "ITEM_NAME_FLAG"
,
}).then(
(res)
=> {
if (res.code == 200) {
this.itemNameFlag = res.data;
} else {
...
...
@@ -267,39 +276,51 @@ export default {
}
});
},
cancel(){
this.$router.push("summaryDataSearch")
cancel()
{
this.$router.push("summaryDataSearch")
;
},
submit(){
submit()
{
this.$refs.editForm.validate((valid) => {
if (!valid) {
return;
}
declareSummaryApplication(this.formData).then(
response
=> {
if
(response.data)
{
declareSummaryApplication(this.formData).then(
(response)
=> {
if
(response.data)
{
this.msgSuccess("汇总申报成功");
this.$router.push("summaryDataSearch")
}else {
this.msgError(response.message)
this.$router.push("summaryDataSearch")
;
}
else {
this.msgError(response.message)
;
}
})
})
})
;
})
;
},
dateChange(val){
this.formData.startTime = val[0] + ' 00:00:00'
this.formData.endTime = val[1] + ' 23:59:59'
dateChange(val) {
if (val) {
this.formData.startTime = val[0] + " 00:00:00";
this.formData.endTime = val[1] + " 23:59:59";
} else {
this.formData.startTime = "";
this.formData.endTime = "";
this.formData.time = [];
}
this.formData.ebpcode = "";
},
getDeclareType(){
getDeclareType()
{
getDictData({
doctCode: "DECLARE_TYPE"
}).then(
res
=> {
doctCode: "DECLARE_TYPE"
,
}).then(
(res)
=> {
if (res.code == 200) {
this.declareType = res.data;
console.log(res.data);
this.formData.declareType = this.declareType[0].itemValue;
this.$nextTick(() => {
this.$refs.editForm.clearValidate(["declareType"]);
});
} else {
this.declareType = [];
}
});
}
}
,
},
};
</script>
...
...
@@ -308,7 +329,7 @@ export default {
.content {
margin-top: 50px;
}
.title{
.title
{
font-size: 23px;
margin-left: 8%;
padding-top: 2%;
...
...
Please
register
or
login
to post a comment