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
feiyue.teng
2025-01-22 11:09:00 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
d8daf3a877fc57866fb29cd501eae78fbc5ec902
d8daf3a8
1 parent
d147d233
申报数据编辑页面开发
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
1323 additions
and
12 deletions
src/api/declareData-api.js
src/components/Table/index.vue
src/permission.js
src/router/index.js
src/views/editReportingData/RowDataEditForm.vue
src/views/editReportingData/index.vue
src/views/reportingData/index.vue
src/api/declareData-api.js
View file @
d8daf3a
...
...
@@ -143,5 +143,46 @@ export function exportDeclareData(data) {
});
}
//获取客户列表
export
function
getCustomerList
(
data
)
{
return
request
({
url
:
'/bus-customer/customers/getCustomerList'
,
method
:
'post'
,
data
:{
"pageIndex"
:
1
,
"pageSize"
:
1000
,
},
})
}
//获取口岸表数据
export
function
getPortList
(
data
)
{
return
request
({
url
:
'/bus-customer/portInfo/getPortList'
,
method
:
'post'
,
data
:{
"pageIndex"
:
1
,
"pageSize"
:
1000
,
},
})
}
//获取申报信息
export
function
getDeclareData
(
data
)
{
return
request
({
url
:
'/bus-customer/declareData/get/'
+
data
.
declareId
,
method
:
'get'
,
params
:
data
,
})
}
//更新申报信息
export
function
updateDeclareData
(
data
)
{
return
request
({
url
:
'/bus-customer/declareData/update'
,
method
:
'post'
,
data
})
}
...
...
src/components/Table/index.vue
View file @
d8daf3a
...
...
@@ -303,7 +303,9 @@ export default {
},
pageSizes: {
type: Array,
default: [10, 20, 30, 40, 50, 100],
default(){
return [10, 20, 30, 40, 50, 100]
},
},
expandRowKeys: {
type: Array,
...
...
@@ -436,8 +438,10 @@ export default {
}
this.$nextTick(() => {
if (table) {
console.log('debug==',tableBody.clientHeight,this.maxHeight);
table.style.maxHeight = this.maxHeight;
tableBody.clientHeight >=
this.maxHeight
tableBody.clientHeight >=
parseInt(this.maxHeight)
? (table.style.height = this.maxHeight - 40 + "px")
: (table.style.height = tableBody.clientHeight + "px");
this.$refs.tables.doLayout();
...
...
src/permission.js
View file @
d8daf3a
...
...
@@ -24,7 +24,7 @@ router.beforeEach((to, from, next) => {
store
.
dispatch
(
'GetInfo'
).
then
((
res
)
=>
{
// if (res.success) {
store
.
dispatch
(
'GenerateRoutes'
).
then
(
accessRoutes
=>
{
store
.
dispatch
(
"GetDict"
,
[
'DECLARE_F_FLAG'
,
'MEASUREMENT_UNIT'
,
'RECEIPT_STATUS'
,
'DECLARE_APPTYPE'
,
'CURRENCY
'
,
'DECLARE_STATISTICS_FLAG'
,
'ORDER_DECLARATION_PARTY'
,
'APP_STATUS'
]);
store
.
dispatch
(
"GetDict"
,
[
'DECLARE_F_FLAG'
,
'MEASUREMENT_UNIT'
,
'PACKAGE_TYPE_CODE'
,
'RECEIPT_STATUS'
,
'DECLARE_APPTYPE'
,
'CURRENCY'
,
'COUNTRY_REGION_CODE
'
,
'DECLARE_STATISTICS_FLAG'
,
'ORDER_DECLARATION_PARTY'
,
'APP_STATUS'
]);
// 根据roles权限生成可访问的路由表
router
.
addRoutes
(
accessRoutes
)
// 动态添加可访问路由表
next
({
...
to
,
replace
:
true
})
// hack方法 确保addRoutes已完成
...
...
src/router/index.js
View file @
d8daf3a
...
...
@@ -94,7 +94,13 @@ export const constantRoutes = [
name
:
'ReportingData'
,
meta
:
{
title
:
'申报数据管理'
,
icon
:
'upload'
}
},
{
path
:
'/editReportingData'
,
component
:
(
resolve
)
=>
require
([
'@/views/editReportingData/index'
],
resolve
),
hidden
:
true
,
name
:
'EditReportingData'
,
meta
:
{
title
:
'申报数据编辑'
,
icon
:
'edit'
}
},
]
},
{
...
...
src/views/editReportingData/RowDataEditForm.vue
0 → 100644
View file @
d8daf3a
<template>
<div>
<el-form
class="fedexFormStyle"
ref="editForm"
: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="text"
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
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.COUNTRY_REGION_CODE"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></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
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="text"
class="inputShadow"
id="inputInner--qty"
resize="none"
v-model="tableRowformData.qty"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="法定数量" prop="legalQty">
<el-input
type="text"
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
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="text"
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="text"
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="text"
class="inputShadow"
id="inputInner--netWeight"
resize="none"
v-model="tableRowformData.netWeight"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="4">
<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: ()=>({}),
},
},
data() {
return {
tableRowformData:{},
tableRowFormRules:{}
};
},
watch: {
},
methods: {
rowFormDataSave(){
this.$emit('rowFormDataSave', {gnum: this.rowDatas.row.gnum, tableRowformData: this.tableRowformData})
this.tableRowformData = {}
},
cancelEditRowData(){
this.tableRowformData = {}
this.$emit('cancelEditRowData')
},
},
};
</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: right;
padding: 0 20px;
a{
color: #007AB7;
font-weight: 600;
&:first-child{
margin-right: 5px;
}
}
}
</style>
\ No newline at end of file
src/views/editReportingData/index.vue
0 → 100644
View file @
d8daf3a
<template>
<div class="entry" v-loading="loadings.entryLoading">
<div class="entryTitle">
<div>申报数据编辑</div>
<div>
<el-button class="entrySaveButton" @click="back">返 回</el-button>
</div>
</div>
<el-form
class="fedexFormStyle"
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="3">
<Formitem label="申报地海关" prop="declareCustomsCode">
<el-select
type="text"
id="inputInner--declareCustomsCode"
v-model="formData.declareCustomsCode"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in declareCustomsDataList"
:key="index"
:label="item.declarationUnitCompanyName"
:value="item.declarationUnit10"
></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="text"
class="inputShadow"
id="inputInner--goodsValue"
resize="none"
v-model="formData.goodsValue"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 运杂费 -->
<el-col :span="3">
<Formitem label="运杂费" prop="miscellaneousFreight">
<el-input
type="text"
class="inputShadow"
id="inputInner--miscellaneousFreight"
resize="none"
v-model="formData.miscellaneousFreight"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5">
<!-- 币制 -->
<el-col :span="3">
<Formitem label="币制" prop="currency">
<el-select
type="text"
id="inputInner--currency"
v-model="formData.currency"
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="3">
<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"
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-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-row>
<el-row :gutter="5">
<el-col :span="3">
<Formitem label="运抵国(地区)" prop="destinationCountryRegion">
<el-select
type="text"
id="inputInner--destinationCountryRegion"
v-model="formData.destinationCountryRegion"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.COUNTRY_REGION_CODE"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="运港代码" prop="portCode">
<el-input
type="text"
class="inputShadow"
id="inputInner--portCode"
resize="none"
v-model="formData.portCode"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="运费" prop="freight">
<el-input
type="text"
class="inputShadow"
id="inputInner--freight"
resize="none"
v-model="formData.freight"
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
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="text"
class="inputShadow"
id="inputInner--insuredfee"
resize="none"
v-model="formData.insuredfee"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="保费币制" prop="insuredfeeCurrency">
<el-select
type="text"
id="inputInner--insuredfeeCurrency"
v-model="formData.insuredfeeCurrency"
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="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-row>
<el-row :gutter="5">
<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.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="件数" prop="packNo">
<el-input
type="text"
class="inputShadow"
id="inputInner--packNo"
resize="none"
v-model="formData.packNo"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="3">
<Formitem label="毛重(公斤)" prop="weight">
<el-input
type="text"
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="text"
class="inputShadow"
id="inputInner--netWeight"
resize="none"
v-model="formData.netWeight"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<el-col :span="3">
<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>
<div class="entryTitle" style="margin-top: 10px">商品明细</div>
<section style="position:relative">
<Table
class="fedexDetialTable fedexSreachTable editableTable"
ref="entryTable"
:pagination="false"
:maxHeight="350"
: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"
/>
</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" @click="addNewItem">
<i class="el-icon-circle-plus-outline"></i>
<span>添加新物品</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>
</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'
export default {
name: "",
components: { RowDataEditForm },
data() {
return {
ebcDataList:[],
declareCustomsDataList:[],
declareId: null,
formData: {},
formRules:{
ebccode: [
{ required: true, message: '请选择电商企业', trigger: 'change' },
],
logisticsCode: [
{ required: true, message: '请选择物流企业', trigger: 'change' },
],
orderNo: [
{ required: true, message: '请输入订单编号', trigger: 'blur' },
],
logisticsNo: [
{ required: true, message: '请输入物流运单编号', trigger: 'blur' },
],
declareCustomsCode: [
{ required: true, message: '请选择申报地海关', trigger: 'change' }
],
exportDate: [
{ required: true, message: '请选择出生日期', trigger: 'change' }
],
goodsValue: [
{ required: true, message: '请输入商品金额', trigger: 'blur' }
],
miscellaneousFreight: [
{ required: true, message: '请输入运杂费', trigger: 'blur' }
],
currency: [
{ required: true, message: '请选择币制', trigger: 'change' }
],
mainGoodsInfo: [
{ required: true, message: '请输入主要物品信息', trigger: 'blur' }
],
appType: [
{ required: true, message: '请选择贸易方式', trigger: 'change' }
],
flightNumber: [
{ required: true, message: '请输入航班号', trigger: 'blur' }
],
billno: [
{ required: true, message: '请输入提运单号', trigger: 'blur' }
],
totalPackageNo: [
{ required: true, message: '请输入总包号', trigger: 'blur' }
],
destinationCountryRegion: [
{ required: true, message: '请选择运抵国', trigger: 'change' }
],
portCode: [
{ required: true, message: '请输入运港代码', trigger: 'blur' }
],
freight: [
{ required: true, message: '请输入运费', trigger: 'blur' }
],
freightCurrency: [
{ required: true, message: '请选择运费币制', trigger: 'change' }
],
freightTag: [
{ required: true, message: '请选择运费标志', trigger: 'change' }
],
insuredfee: [
{ required: true, message: '请输入保费', 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' }
],
weight: [
{ required: true, message: '请输入毛重', trigger: 'blur' }
],
netWeight: [
{ required: true, message: '请输入净重', trigger: 'blur' }
],
remark: [
{ required: true, message: '请输入备注', trigger: 'blur' }
]
},
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",
slot: true,
},
{
name: "规格型号",
value: "model",
width: "",
align: "left",
slot: true,
},
{
name: "账册备案料号",
value: "accountBookMaterialNumber",
width: "",
align: "left",
},
{
name: "条形码",
value: "barCode",
width: "",
align: "left",
},
{
name: "目的国(地区)代码",
value: "destinationCountryRegionCode",
width: "",
align: "left",
},
{
name: "计量单位",
value: "unit",
width: "",
align: "left",
},
{
name: "数量",
value: "qty",
width: "",
align: "left",
},
{
name: "法定数量",
value: "legalQty",
width: "",
align: "left",
},
{
name: "币制",
value: "currency",
width: "",
align: "left",
},
{
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:[],
};
},
created() {
if (this.$route.params.data) {
this.declareId = this.$route.params.data.declareId;
this.queryDeclareData(this.declareId)
this.queryCustomerList()
this.queryPortList()
} else {
this.back();
}
},
methods: {
//获取客户下拉列表数据
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) {
this.formData = res.data.declare
this.formData.orderNo = this.formData.orderno
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);
},
addNewItem() {
let orderNum = 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": ""
})
console.log(this.detailData)
},
updateRow(row){
this.expandRowKeys = [row.gnum]
let obj = {}
for (let key in row) {
obj[key] = row[key]
}
this.$nextTick(()=>{
this.$refs.rowEditForm.tableRowformData = obj
})
},
deleteRow(row){
this.detailData = this.detailData.filter(item => item.gnum !=row.gnum).map((item, index) =>{
item.gnum = index+1
return item
})
},
rowFormDataSave(props){
this.detailData.map(item =>{
if (item.gnum == props.gnum) {
item = Object.assign(item, props.tableRowformData)
return item
}
})
this.expandRowKeys = []
},
cancelEditRowData(){
this.expandRowKeys = []
},
//提交更新数据
submitEditedReportDatas(){
let data = {
declare: this.formData,
product: this.detailData
}
updateDeclareData(data).then(res =>{
if (res.code == 200) {
this.msgSuccess("数据更新成功");
this.queryDeclareData(this.declareId)
} else {
this.alertWarningMsg(res.message);
}
}).catch(err =>{
console.log(err)
})
},
//取消编辑
cancelEditedReportDatas(){
}
},
};
</script>
<style scoped lang="scss">
.entry {
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{
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: right;
padding: 0 20px;
a{
color: #007AB7;
font-weight: 600;
&:first-child{
margin-right: 5px;
}
}
}
</style>
\ No newline at end of file
src/views/reportingData/index.vue
View file @
d8daf3a
...
...
@@ -310,6 +310,13 @@
</div>
</TablePopover>
</template>
<template slot="optionColumn">
<el-table-column align="left" label="操作" width="100">
<template slot-scope="scope">
<el-button type="text" @click="update(scope.row)"> 修改 </el-button>
</template>
</el-table-column>
</template>
</Table>
<DialogVue
:outerVisible="outerVisible"
...
...
@@ -463,7 +470,7 @@ export default {
exportDeclareLoading:false,
},
textareaVisible: {},
tableMaxheight:
653
,
tableMaxheight:
null
,
outerVisible: false,
dropdownName: "一键申报",
dropdownCode: "full",
...
...
@@ -477,7 +484,10 @@ export default {
// this.getCancellationReasons()
},
mounted() {
this.tableMaxheight = window.innerHeight - 300;
this.tableMaxheight = window.innerHeight - 355;
window.addEventListener('resize',()=>{
this.tableMaxheight = window.innerHeight - 355;
},false)
},
watch: {
$route(val, oldval) {
...
...
@@ -639,10 +649,8 @@ export default {
// }
this.search(1);
this.outerVisible = false;
this.$nextTick(()=>{
window.location.reload()
})
this.tableMaxheight = window.innerHeight - 355;
this.$forceUpdate()
},
popoverChange(val) {
console.log(val);
...
...
@@ -785,8 +793,13 @@ export default {
cancelRevoke(){
this.loadings.dropDownLoading = false;
this.revokeVisible = false
}
},
update(val) {
this.$router.push({
name: "EditReportingData",
params: { data: val },
});
},
},
};
...
...
Please
register
or
login
to post a comment