Browse Source

关务系统新修改

java8
han\hanst 9 months ago
parent
commit
0ee3770cab
  1. 16
      src/api/ecss/ecss.js
  2. 43
      src/views/modules/ecss/codelnotify.vue
  3. 156
      src/views/modules/ecss/codelnotifyConfirm.vue
  4. 397
      src/views/modules/ecss/declaration.vue
  5. 608
      src/views/modules/ecss/ecssTemplate.vue
  6. 500
      src/views/modules/ecss/ecssWalMartOrder.vue
  7. 35
      src/views/modules/ecss/hsCode.vue
  8. 163
      src/views/modules/ecss/walmart_upload_excel.vue

16
src/api/ecss/ecss.js

@ -85,4 +85,20 @@ export const saveOneClickPacking = data => createAPI(`/ecss/coDel/saveOneClickPa
export const getCustomerInfo = data => createAPI(`/ecss/coDel/getCustomerInfo`,'post',data)
export const searchEcssTemplateData = data => createAPI(`/ecss/coDel/searchEcssTemplateData`,'post',data)
export const saveEcssTemplateData = data => createAPI(`/ecss/coDel/saveEcssTemplateData`,'post',data)
export const deleteEcssTemplate= data => createAPI(`/ecss/coDel/deleteEcssTemplate`,'post',data)
export const searchTemplateList = data => createAPI(`/select/ecssMapper/searchTemplateList/list`,'post',data)
export const searchWalMartOrderData = data => createAPI(`/ecss/coDel/searchWalMartOrderData`,'post',data)
export const saveWalMartOrderData = data => createAPI(`/ecss/coDel/saveWalMartOrderData`,'post',data)
export const deleteWalMartOrder= data => createAPI(`/ecss/coDel/deleteWalMartOrder`,'post',data)
export const saveWalMartOrderByExcel = data => createAPI(`/ecss/coDel/saveWalMartOrderByExcel`,'post',data)

43
src/views/modules/ecss/codelnotify.vue

@ -86,7 +86,7 @@
label="操作">
<template slot-scope="scope">
<a type="text" size="small" v-if="scope.row.notifyStatus==='已计划'" @click="updateHeaderModelDo(scope.row)">修改</a>
<a type="text" size="small" v-if="scope.row.notifyStatus==='已计划'" @click="xiadaEcssDel(scope.row)">下达</a>
<a type="text" size="small" v-if="scope.row.notifyStatus==='已计划'" @click="xiadaChoose()">下达</a>
<a type="text" size="small" v-if="scope.row.notifyStatus==='已下达'" @click="jihuaEcssDel(scope.row)">取消下达</a>
<a type="text" size="small" v-if="scope.row.notifyStatus==='已计划'" @click="deleteDelHeader(scope.row)">删除</a>
</template>
@ -189,8 +189,8 @@
</el-tab-pane>
</el-tabs>
<el-dialog title="编辑发货通知单" :close-on-click-modal="false" v-drag :visible.sync="updateHeaderModelFlag" width="674px">
<el-form label-position="top" style="margin-left: 7px;margin-top: -5px;">
<el-dialog title="编辑发货通知单" :close-on-click-modal="false" v-drag :visible.sync="updateHeaderModelFlag" width="672px">
<el-form label-position="top" style="margin-left: 5px;margin-top: -5px;">
<el-row :gutter="20">
<el-col :span="6">
<el-form-item :label="'BU'" >
@ -379,7 +379,22 @@
<el-button type="primary" @click="updateDetailModelFlag=false">关闭</el-button>
</el-footer>
</el-dialog>
<el-dialog title="沃尔玛订单" :close-on-click-modal="false" v-drag :visible.sync="walMartOrderDialog" width="200px">
<el-form label-position="top" style="margin-left: 36px;margin-top: 10px;">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item :label="''" >
<el-radio v-model="walMartOrderFlag" label="Y"></el-radio>
<el-radio v-model="walMartOrderFlag" label="N"></el-radio>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer style="height:40px;margin-top: 10px;text-align:center">
<el-button type="primary" @click="xiadaEcssDel">确定</el-button>
<el-button type="primary" @click="walMartOrderDialog=false">关闭</el-button>
</el-footer>
</el-dialog>
<!-- 导入 -->
<del-upload-excel ref="delUploadExcel" @refreshTable="searchTable" v-drag></del-upload-excel>
<!--列表的组件-->
@ -414,6 +429,8 @@
pageSize: 100,
totalPage: 0,
height: 200,
walMartOrderFlag: 'N',
walMartOrderDialog:false,
buList:[],
dataList:[],
dataList2:[],
@ -1570,11 +1587,20 @@
})
})
},
xiadaEcssDel(row){
xiadaChoose(){
if (this.currentRow.buNo=='03-RFID') {
this.walMartOrderDialog=true;
this.walMartOrderFlag='N';
} else {
this.xiadaEcssDel()
}
},
xiadaEcssDel(){
let inData={
site:row.site,
delNo:row.delNo,
notifyStatus:'已下达'
site:this.currentRow.site,
delNo:this.currentRow.delNo,
notifyStatus:'已下达',
walMartOrderFlag:this.walMartOrderFlag
}
this.$confirm('确认下达吗?', '提示').then(() => {
changeEcssDelStatus(inData).then(({data}) => {
@ -1593,6 +1619,7 @@
}
})
})
this.walMartOrderDialog=false;
},
jihuaEcssDel(row){
let inData={

156
src/views/modules/ecss/codelnotifyConfirm.vue

@ -183,6 +183,16 @@
border
v-loading="dataListLoading"
style="width: 100%; ">
<el-table-column
header-align="center"
align="center"
width="70"
fixed="left"
label="操作">
<template slot-scope="scope">
<a type="text" size="small" v-if="currentRow.notifyStatus=='仓库已确认'" @click="updateBoxModel(scope.row,1)">修改</a>
</template>
</el-table-column>
<el-table-column
v-for="(item,index) in columnList3" :key="index"
:sortable="item.columnSortable"
@ -238,7 +248,7 @@
fixed="left"
label="操作">
<template slot-scope="scope">
<a type="text" size="small" v-if="currentRow.notifyStatus=='仓库已确认'" @click="updateBoxModel(scope.row)">修改</a>
<a type="text" size="small" v-if="currentRow.notifyStatus=='仓库已确认'" @click="updateBoxModel(scope.row,0)">修改</a>
<a type="text" size="small" v-if="currentRow.notifyStatus=='仓库已确认'" @click="deleteBox(scope.row)">删除</a>
</template>
</el-table-column>
@ -322,7 +332,7 @@
<el-dialog title="装箱" :close-on-click-modal="false" v-drag :visible.sync="palletModelFlag" width="600px">
<el-form label-position="top" style="margin-top: -5px;">
<el-row :gutter="20">
<el-col :span="8">
<el-col :span="12">
<el-form-item :label="''" >
<template #label>
<span slot="label" style="" class="big-label">
@ -332,12 +342,17 @@
<el-input v-model="palletModelData.pallet" disabled ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="12">
<el-form-item :label="'栈板编号'" >
<el-input v-model="palletModelData.palletRemark" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="12">
<el-form-item :label="'栈板高度(M)'" >
<el-input v-model="palletModelData.height" type="number" ></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'数量'" >
<el-input v-model="palletModelData.palletQty" type="number" ></el-input>
</el-form-item>
@ -345,13 +360,25 @@
</el-row>
</el-form>
<br>
<el-table
<el-table v-show="palletModelData.addFlag===0"
:height="240"
:data="dataList8"
stripe ref="partTableRef"
highlight-current-row
border :row-style="{ height: '30px' }"
style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column
v-if="currentRow.buNo==='03-RFID' && currentRow.walMartOrderFlag==='Y'"
header-align="center"
align="center"
width="60"
fixed="left"
label="操作">
<template slot-scope="scope">
<a type="text" size="small" v-if="scope.row.newRow!==1" @click="copyColumn(scope.row)">复制</a>
<a type="text" size="small" v-if="scope.row.newRow===1" @click="deleteColumn(scope.$index)">删除</a>
</template>
</el-table-column>
<el-table-column
type="selection"
align="center"
@ -374,6 +401,10 @@
header-align="center"
align="center"
label="数量">
<template slot-scope="scope">
<el-input v-if="currentRow.buNo==='03-RFID' && currentRow.walMartOrderFlag==='Y'" v-model="scope.row.qty" style="width: 100px;"></el-input>
<span v-else>{{scope.row.qty}}</span>
</template>
</el-table-column>
<el-table-column
prop="nocartonsT"
@ -381,7 +412,8 @@
align="center"
label="箱数">
<template slot-scope="scope">
<el-input v-model="scope.row.nocartons" style="width: 100px;"></el-input>
<span v-if="currentRow.buNo==='03-RFID' && currentRow.walMartOrderFlag==='Y'">{{scope.row.nocartons}}</span>
<el-input v-else v-model="scope.row.nocartons" style="width: 100px;"></el-input>
</template>
</el-table-column>
</el-table>
@ -390,33 +422,33 @@
<el-button type="primary" @click="palletModelFlag=false">关闭</el-button>
</el-footer>
</el-dialog>
<el-dialog title="维护箱" :close-on-click-modal="false" v-drag :visible.sync="boxModelFlag" width="600px">
<el-dialog title="维护箱" :close-on-click-modal="false" v-drag :visible.sync="boxModelFlag" width="500px">
<el-form label-position="top" style="margin-left: 7px;margin-top: -5px;">
<el-row :gutter="20">
<el-col :span="6">
<el-form-item >
<span slot="label" @click="openPartDialog()"><a herf="#">物料编码</a></span>
<el-input v-model="boxModelData.pn" ></el-input>
<el-col :span="12">
<el-form-item :label="boxModelData.type===1?'物料编码':''">
<span v-if="boxModelData.type===0" slot="label" @click="openPartDialog()"><a herf="#">物料编码</a></span>
<el-input v-model="boxModelData.pn" :disabled="boxModelData.type===1" ></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="12">
<el-form-item :label="'数量'" >
<el-input v-model="boxModelData.qty" type="number" ></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="12" v-if="boxModelData.type===0">
<el-form-item :label="'PO'" >
<el-input v-model="boxModelData.poNo" ></el-input>
<el-input v-model="boxModelData.poNo" ></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="12">
<el-form-item :label="'箱数'" >
<el-input v-model="boxModelData.boxQty" type="boxQty" ></el-input>
<el-input v-model="boxModelData.boxQty"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="12">
<el-form-item :label="'ROLLS'" >
<el-input v-model="boxModelData.rolls" type="number" ></el-input>
<el-input v-model="boxModelData.rolls" ></el-input>
</el-form-item>
</el-col>
</el-row>
@ -445,6 +477,11 @@
<el-input v-model="oneClickPackingModelData.palletRemark" ></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'栈板高度(M)'" >
<el-input v-model="oneClickPackingModelData.height" type="number" ></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'数量'" >
<el-input v-model="oneClickPackingModelData.palletQty" type="number" ></el-input>
@ -603,6 +640,7 @@
dataList4:[],
dataList5:[],
dataList8:[],
notifyDetailMap: new Map(),
boxDetailData:{
site:'',
buNo:'',
@ -623,7 +661,12 @@
username:this.$store.state.user.name,
},
oneClickPackingModelFlag:false,
oneClickPackingModelData:{},
oneClickPackingModelData:{
pallet:'',
palletRemark:'',
height:'',
palletQty:'',
},
palletModelFlag:false,
palletModelData:{
addFlag:0,
@ -1846,6 +1889,17 @@
this.height = (window.innerHeight - 260)/2;
})
},
watch: {
dataList8: {
handler() {
this.$nextTick(() => {
if(this.currentRow.buNo==='03-RFID' && this.currentRow.walMartOrderFlag==='Y') {
this.toggleSelection(this.dataList8)
}
})
},
}
},
methods: {
openPartDialog () {
this.searchPartList();
@ -2135,6 +2189,11 @@
} else {
o.nativeNocartons = o.nocartons;
}
if (this.notifyDetailMap.has(o.pn)) {
this.notifyDetailMap.get(o.pn).qty=parseInt(this.notifyDetailMap.get(o.pn).qty)+parseInt(o.qty);
} else {
this.notifyDetailMap.set(o.pn, JSON.parse(JSON.stringify(o)));
}
});
this.dataList8 = this.dataList8.filter(o => parseInt(o.nocartons)>0);
} else {
@ -2146,8 +2205,26 @@
handleSelectionChange(val) {
this.multipleSelection = val;
},
toggleSelection(rows) {
rows.forEach(row => {
this.$refs.partTableRef.toggleRowSelection(row,true);
});
},
//
copyColumn(row){
let copyrow = JSON.parse(JSON.stringify(row));
copyrow.qty=0;
copyrow.nocartons=0;
copyrow.newRow=1;
this.dataList8.push(copyrow);
this.toggleSelection(this.dataList8)
},
deleteColumn(index){
this.dataList8.splice(index,1);
this.toggleSelection(this.dataList8)
},
savePalletHeader(){
if (this.multipleSelection.length===0) {
if (this.palletModelData.addFlag===0 && this.multipleSelection.length===0) {
this.$alert('请选择装箱物料!', '错误', {
confirmButtonText: '确定'
})
@ -2159,10 +2236,37 @@
})
return false
}
this.multipleSelection.forEach(o => {
o.qty = o.nocartons*o.rollqty*o.boxrolls;
o.nocartons = o.nativeNocartons - o.nocartons;
});
let qtyNoMatch = false;
let pn='';
if (this.currentRow.buNo==='03-RFID' && this.currentRow.walMartOrderFlag==='Y') {
let mulMap = new Map();
this.multipleSelection.forEach(o => {
o.nocartons = Math.ceil(o.qty/(o.rollqty*o.boxrolls));
if (mulMap.has(o.pn)) {
mulMap.get(o.pn).qty=parseInt(mulMap.get(o.pn).qty)+parseInt(o.qty);
} else {
mulMap.set(o.pn, JSON.parse(JSON.stringify(o)));
}
});
mulMap.forEach((value, key) => {
if (parseInt(this.notifyDetailMap.get(key).qty)!==parseInt(value.qty)) {
qtyNoMatch = true;
pn = pn+(pn?',':'')+value.pn;
}
})
} else {
this.multipleSelection.forEach(o => {
o.qty = o.nocartons*o.rollqty*o.boxrolls;
o.nocartons = o.nativeNocartons - o.nocartons;
});
}
if (qtyNoMatch) {
this.$alert('PN['+pn+']原始数量和输入总数不相等!', '错误', {
confirmButtonText: '确定'
})
return false
}
this.palletModelData.walMartOrderFlag = this.currentRow.walMartOrderFlag;
this.palletModelData.notifyDetailList = this.multipleSelection;
savePalletHeader(this.palletModelData).then(({data}) => {
if (data && data.code === 0) {
@ -2202,9 +2306,10 @@
})
},
updateBoxModel(row){
updateBoxModel(row,type){
this.boxModelData=JSON.parse(JSON.stringify(row))
this.boxModelData.addFlag=1
this.boxModelData.type=type
this.boxModelFlag=true
},
newBoxModel(){
@ -2221,6 +2326,7 @@
poNo:'',
boxQty:'',
rolls:'',
type:0
}
this.boxModelFlag=true
},

397
src/views/modules/ecss/declaration.vue

@ -40,10 +40,10 @@
<el-button @click="chooseBrandType()" type="primary" style="margin-left: 2px">{{'导出报关要素'}}</el-button>
</el-form-item>
<el-form-item label=" ">
<el-button @click="downloadDeclaration()" type="primary" style="margin-left: 2px">{{'导出报关单'}}</el-button>
<el-button @click="chooseHsCodeDescType" type="primary" style="margin-left: 2px">{{'导出报关单'}}</el-button>
</el-form-item>
<el-form-item label=" ">
<el-button @click="downloadInvoice()" type="primary" style="margin-left: 2px">{{'导出发票'}}</el-button>
<el-button @click="exportInvoiceList()" type="primary" style="margin-left: 2px">{{'导出发票'}}</el-button>
</el-form-item>
<el-form-item label=" ">
<el-button @click="exportPakingList()" type="primary" style="margin-left: 2px">{{'导出箱单'}}</el-button>
@ -134,7 +134,7 @@
</el-table>
</el-tab-pane>
</el-tabs>
<el-dialog title="选择品牌类型" :close-on-click-modal="false" v-drag :visible.sync="brandTypeFlag" width="300px">
<el-dialog title="导出报关要素" :close-on-click-modal="false" v-drag :visible.sync="brandTypeFlag" width="300px">
<el-form label-position="top" style="margin-left: 7px;margin-top: 10px;">
<el-row :gutter="20">
<el-col :span="24">
@ -143,6 +143,12 @@
<el-radio v-model="brandType" label="无品牌">无品牌</el-radio>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="'品名类型'" >
<el-radio v-model="hsCodeDescType" label="Y">中文</el-radio>
<el-radio v-model="hsCodeDescType" label="N">英文</el-radio>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer style="height:40px;margin-top: 10px;text-align:center">
@ -150,9 +156,136 @@
<el-button type="primary" @click="brandTypeFlag=false">关闭</el-button>
</el-footer>
</el-dialog>
<el-dialog title="导出箱单" :close-on-click-modal="false" v-drag :visible.sync="exportPakingFlag" width="450px">
<el-dialog title="导出报关单" :close-on-click-modal="false" v-drag :visible.sync="declarationFlag" width="300px">
<el-form label-position="top" style="margin-left: 7px;margin-top: 10px;">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item :label="'品名类型'" >
<el-radio v-model="hsCodeDescType" label="Y">中文</el-radio>
<el-radio v-model="hsCodeDescType" label="N">英文</el-radio>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer style="height:40px;margin-top: 10px;text-align:center">
<el-button type="primary" @click="downloadDeclaration()()">确定</el-button>
<el-button type="primary" @click="declarationFlag=false">关闭</el-button>
</el-footer>
</el-dialog>
<el-dialog title="导出发票" :close-on-click-modal="false" v-drag :visible.sync="exportInvoiceFlag" width="450px">
<el-form label-position="top" style="margin-left: 2px;margin-top: 10px;">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item :label="''" >
<template #label>
<span slot="label" style="" class="big-label">
<a href="#" @click="openTemplate('发票')">发票模版</a>
</span>
</template>
<el-input v-model="exportInvoice.templateName" disabled ></el-input>
</el-form-item>
</el-col>
<el-col :span="12" >
<el-form-item :label="''" >
<el-checkbox v-model="exportInvoice.hsCodeDesc">品名</el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'品名类型'" >
<el-radio v-model="exportInvoice.hsCodeDescType" label="Y">中文</el-radio>
<el-radio v-model="exportInvoice.hsCodeDescType" label="N">英文</el-radio>
</el-form-item>
</el-col>
<el-col :span="12" >
<el-form-item :label="''" >
<el-checkbox v-model="exportInvoice.contractFlag">合同</el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12" >
<el-form-item :label="''" >
<el-checkbox v-model="exportInvoice.goodsLabel">货物明细</el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'RFID Base Material'" >
<el-checkbox v-model="exportInvoice.material"></el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'HS Code'" >
<el-input :disabled="!exportInvoice.material" v-model="exportInvoice.hsCode"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'Non-reusable plastic packaging'" >
<el-checkbox v-model="exportInvoice.packaging"></el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'plastic packaging'" >
<el-input :disabled="!exportInvoice.packaging" v-model="exportInvoice.kgs"></el-input>
</el-form-item>
</el-col>
<el-col :span="12" v-show="currentRow.buNo==='01-Label' || currentRow.buNo==='03-RFID'">
<el-form-item :label="'制造地'" >
<el-input v-model="exportInvoice.origin"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table v-show="currentRow.buNo==='03-RFID'"
:height="240"
:data="notifyPartDetailList"
stripe
highlight-current-row
border :row-style="{ height: '30px' }"
style="width: 100%;">
<el-table-column
prop="partNo"
header-align="center"
align="center"
label="PN">
</el-table-column>
<el-table-column
prop="ehundred"
header-align="center"
align="center"
label="E100">
<template slot-scope="scope">
<el-input v-model="scope.row.ehundred" style="width: 100px;"></el-input>
</template>
</el-table-column>
<el-table-column
prop="lossratio"
header-align="center"
align="center"
label="纯FSC纸重量损耗">
<template slot-scope="scope">
<el-input v-model="scope.row.lossratio" style="width: 100px;"></el-input>
</template>
</el-table-column>
</el-table>
<el-footer style="height:40px;margin-top: 10px;text-align:center">
<el-button type="primary" @click="downloadInvoice()">确定</el-button>
<el-button type="primary" @click="exportInvoiceFlag=false">关闭</el-button>
</el-footer>
</el-dialog>
<el-dialog title="导出箱单" :close-on-click-modal="false" v-drag :visible.sync="exportPakingFlag" width="450px">
<el-form label-position="top" style="margin-left: 2px;margin-top: 10px;">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item :label="''" >
<template #label>
<span slot="label" style="" class="big-label">
<a href="#" @click="openTemplate('箱单')">箱单模版</a>
</span>
</template>
<el-input v-model="exportPaking.templateName" disabled ></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'序号类型'" >
<el-radio v-model="exportPaking.itemNo" label="Y">序号</el-radio>
@ -160,8 +293,19 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'Shipping Mark'" >
<el-input v-model="exportPaking.shippingMark"></el-input>
<el-form-item :label="'品名类型'" >
<el-radio v-model="exportPaking.hsCodeDescType" label="Y">中文</el-radio>
<el-radio v-model="exportPaking.hsCodeDescType" label="N">英文</el-radio>
</el-form-item>
</el-col>
<el-col :span="12" >
<el-form-item :label="''" >
<el-checkbox v-model="exportPaking.boxChange">显示箱数零头</el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12" >
<el-form-item :label="''" >
<el-checkbox v-model="exportPaking.goodsLabel">货物明细</el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12" v-show="currentRow.buNo==='03-RFID'">
@ -174,9 +318,9 @@
<el-checkbox v-model="exportPaking.so">SO</el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12" v-show="currentRow.buNo==='01-Label' || currentRow.buNo==='03-RFID'">
<el-form-item :label="'制造地'" >
<el-input v-model="exportPaking.origin"></el-input>
<el-col :span="12">
<el-form-item :label="'Shipping Mark'" >
<el-input v-model="exportPaking.shippingMark"></el-input>
</el-form-item>
</el-col>
<el-col :span="12" v-show="currentRow.buNo==='01-Label' || currentRow.buNo==='03-RFID'">
@ -184,7 +328,6 @@
<el-input v-model="exportPaking.palletWeight"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'RFID Base Material'" >
<el-checkbox v-model="exportPaking.material"></el-checkbox>
@ -205,6 +348,11 @@
<el-input :disabled="!exportPaking.packaging" v-model="exportPaking.kgs"></el-input>
</el-form-item>
</el-col>
<el-col :span="12" v-show="currentRow.buNo==='01-Label' || currentRow.buNo==='03-RFID'">
<el-form-item :label="'制造地'" >
<el-input v-model="exportPaking.origin"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table v-show="currentRow.buNo==='03-RFID'"
@ -226,7 +374,7 @@
align="center"
label="E100">
<template slot-scope="scope">
<el-input v-model="scope.row.ehundred" size="large" style="width: 100px;"></el-input>
<el-input v-model="scope.row.ehundred" style="width: 100px;"></el-input>
</template>
</el-table-column>
<el-table-column
@ -248,6 +396,12 @@
<el-dialog title="导出出口货物委托书" :close-on-click-modal="false" v-drag :visible.sync="exportGoodsFlag" width="500px">
<el-form label-position="top" style="margin-left: 7px;margin-top: 10px;">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item :label="'品名类型'" >
<el-radio v-model="exportGoods.hsCodeDescType" label="Y">中文</el-radio>
<el-radio v-model="exportGoods.hsCodeDescType" label="N">英文</el-radio>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'贸易方式'" >
<el-input v-model="exportGoods.salesMethod"></el-input>
@ -296,6 +450,41 @@
<el-button type="primary" @click="exportGoodsFlag=false">关闭</el-button>
</el-footer>
</el-dialog>
<el-dialog title="模版" @close="closeTemplateDialog" @open="openTemplateDialog" :visible.sync="templateFlag" width="559px" v-drag>
<el-form inline="inline" label-position="top" :model="templateData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="模版名称">
<el-input v-model="templateData.name" clearable style="width: 110px"></el-input>
</el-form-item>
<el-form-item label=" ">
<el-button type="primary" style="padding: 3px 12px" @click="searchTemplateList()">查询</el-button>
</el-form-item>
</el-form>
<el-table
:height="height + 110"
:data="templateList"
stripe
highlight-current-row
border
@row-dblclick="templateRowDblclick"
style="width: 100%;">
<el-table-column
prop="buNo"
header-align="center"
align="center"
label="BuNo">
</el-table-column>
<el-table-column
prop="name"
header-align="center"
align="center"
label="模版名称">
</el-table-column>
</el-table>
<el-footer style="height:40px;margin-top: 10px;text-align:center">
<el-button @click="templateFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
</div>
</template>
@ -308,7 +497,8 @@
deleteDeclaration,
downloadDeclarationElements,
getNotifyPartDetail,
getCustomerInfo
getCustomerInfo,
searchTemplateList
}from "@/api/ecss/ecss.js"
import {EventBus} from "../../../main";
import ExportUtil from "@/utils/export";
@ -319,6 +509,9 @@
},
data() {
return {
templateFlag:false,
templateData:{},
templateList:[],
customerInfoList:[],
notifyPartDetailList:[],
currentRow:{},
@ -331,18 +524,48 @@
deliveryGoodsDate:'',
voyage :'',
shippingDate:'',
hsCodeDescType:'Y',
shipper:'Checkpoint Commercial (Shanghai) Co., Ltd. 保点贸易(上海)有限公司\t\t\t\t\t\t\n' +
'Room 1411, No. 31, Lane 2419, Hunan Road, Pudong New Area, Shanghai\t\t\t\t\t\t\n' +
'电话/Tel: (86-21)38112888 传真/Fax: (86-21)38112990\t\t\t\t\t\t\n' +
'上海市浦东新区沪南路2419弄31号1411室\t\t\t\t\t\t\n'
},
brandTypeFlag:false,
declarationFlag:false,
exportInvoiceFlag:false,
exportInvoice:{
origin:"made in china",
templateName:'',
hsCodeDesc:'',
contractFlag:'',
packaging:'',
kgs:'',
hsCode:'',
material:'',
hsCodeDescType:'',
goodsLabel:'',
},
exportPakingFlag:false,
exportPaking:{
origin:"made in china",
itemNo:''
itemNo:'',
upc:'',
so:'',
shippingMark:'',
palletWeight:'',
templateName:'',
hsCodeDesc:'',
contractFlag:'',
packaging:'',
kgs:'',
hsCode:'',
material:'',
hsCodeDescType:'',
goodsLabel:'',
boxChange:''
},
brandType:'',
hsCodeDescType:'Y',
exportParam: {},
pageIndex: 1,
pageSize: 100,
@ -1348,25 +1571,91 @@
this.currentRow = val;
},
chooseBrandType() {
if (!this.currentRow) {
if (!this.currentRow || !this.currentRow.buNo) {
this.$message.warning('请选择报关单!')
return
}
this.brandType='境外品牌(其他)'
//this.hsCodeDescType=''
this.brandTypeFlag = true
},
chooseHsCodeDescType() {
if (!this.currentRow || !this.currentRow.buNo) {
this.$message.warning('请选择报关单!')
return
}
//this.hsCodeDescType=''
this.declarationFlag = true
},
exportInvoiceList() {
if (!this.currentRow || !this.currentRow.buNo) {
this.$message.warning('请选择报关单!')
return
}
this.exportInvoice.templateName=''
this.exportInvoice.hsCodeDesc=this.currentRow.hsCodeDesc
this.exportInvoice.contractFlag=this.currentRow.contractFlag
this.exportInvoice.packaging=this.currentRow.packaging
this.exportInvoice.kgs=this.currentRow.kgs
this.exportInvoice.hsCode=this.currentRow.hsCode
this.exportInvoice.material=this.currentRow.material
this.exportInvoice.hsCodeDescType=this.currentRow.hsCodeDescType
this.exportInvoice.goodsLabel=this.currentRow.goodsLabel
this.exportInvoice.origin="made in china"
//this.exportInvoice = this.currentRow
if (!this.exportInvoice.origin) {
this.exportInvoice.origin = 'made in china'
}
if (!this.exportInvoice.itemNo) {
this.exportInvoice.itemNo = 'Y'
}
this.notifyPartDetailList = [];
this.exportInvoiceFlag = true
if (this.currentRow.buNo==='03-RFID') {
getNotifyPartDetail(this.currentRow).then(({data}) => {
//
if (data && data.code == 0) {
this.notifyPartDetailList = data.rows
this.notifyPartDetailList.forEach(o => {
if (!o.lossratio) {
o.lossratio = '1.2';
}
});
} else {
this.notifyPartDetailList = [];
}
});
}
},
exportPakingList() {
if (!this.currentRow) {
if (!this.currentRow || !this.currentRow.buNo) {
this.$message.warning('请选择报关单!')
return
}
this.exportPaking = this.currentRow
this.exportPaking.origin='made in china'
this.exportPaking.itemNo=this.currentRow.itemNo
this.exportPaking.upc=this.currentRow.upc
this.exportPaking.so=this.currentRow.so
this.exportPaking.shippingMark=this.currentRow.shippingMark
this.exportPaking.palletWeight=this.currentRow.palletWeight
this.exportPaking.hsCodeDesc=this.currentRow.hsCodeDesc
this.exportPaking.contractFlag=this.currentRow.contractFlag
this.exportPaking.packaging=this.currentRow.packaging
this.exportPaking.kgs=this.currentRow.kgs
this.exportPaking.hsCode=this.currentRow.hsCode
this.exportPaking.material=this.currentRow.material
this.exportPaking.hsCodeDescType=this.currentRow.hsCodeDescType
this.exportPaking.goodsLabel=this.currentRow.goodsLabel
this.exportPaking.boxChange=this.currentRow.boxChange
//this.exportPaking = this.currentRow
if (!this.exportPaking.origin) {
this.exportPaking.origin = 'made in china'
}
if (!this.exportPaking.itemNo) {
this.exportPaking.itemNo = 'Y'
}
this.notifyPartDetailList = [];
this.exportPaking.templateName=''
this.exportPakingFlag = true
if (this.currentRow.buNo==='03-RFID') {
getNotifyPartDetail(this.currentRow).then(({data}) => {
@ -1385,7 +1674,7 @@
}
},
exportGoodsList() {
if (!this.currentRow) {
if (!this.currentRow || !this.currentRow.buNo) {
this.$message.warning('请选择报关单!')
return
}
@ -1400,7 +1689,7 @@
},
//
downloadDeclarationElements() {
if (!this.currentRow) {
if (!this.currentRow || !this.currentRow.buNo) {
this.$message.warning('请选择报关单!')
return
}
@ -1409,6 +1698,7 @@
exportParam.site = this.currentRow.site
exportParam.delNo = this.currentRow.delNo
exportParam.brandType = this.brandType
exportParam.hsCodeDescType=this.hsCodeDescType
let error;
ExportUtil.export(
"/ecss/coDel/downloadDeclarationElements",
@ -1417,7 +1707,7 @@
this.brandTypeFlag = false
},
downloadDeclaration() {
if (!this.currentRow) {
if (!this.currentRow || !this.currentRow.buNo) {
this.$message.warning('请选择报关单!')
return
}
@ -1425,27 +1715,32 @@
exportParam.declarationNo = this.currentRow.declarationNo
exportParam.site = this.currentRow.site
exportParam.delNo = this.currentRow.delNo
exportParam.hsCodeDescType=this.hsCodeDescType
ExportUtil.export(
"/ecss/coDel/downloadDeclaration",
exportParam, this.currentRow.declarationNo+"报关单.xlsx"
);
this.declarationFlag = false
},
downloadInvoice() {
if (!this.currentRow) {
if (!this.currentRow || !this.currentRow.buNo) {
this.$message.warning('请选择报关单!')
return
}
let exportParam={}
let exportParam=this.exportInvoice
exportParam.declarationNo = this.currentRow.declarationNo
exportParam.site = this.currentRow.site
exportParam.delNo = this.currentRow.delNo
exportParam.notifyPartDetailList = this.notifyPartDetailList
ExportUtil.export(
"/ecss/coDel/downloadInvoice",
exportParam, this.currentRow.declarationNo+"发票.xlsx"
);
this.exportInvoiceFlag=false
this.searchTable()
},
downloadPackingList() {
if (!this.currentRow) {
if (!this.currentRow || !this.currentRow.buNo) {
this.$message.warning('请选择报关单!')
return
}
@ -1477,9 +1772,10 @@
exportParam, this.currentRow.declarationNo+"箱单.xlsx"
);
this.exportPakingFlag = false;
this.searchTable()
},
downloadExportGoods() {
if (!this.currentRow) {
if (!this.currentRow || !this.currentRow.buNo) {
this.$message.warning('请选择报关单!')
return
}
@ -1492,6 +1788,7 @@
exportParam, this.currentRow.declarationNo+"出口货物委托书.xlsx"
);
this.exportGoodsFlag = false;
this.searchTable()
},
getCustomerInfo() {
getCustomerInfo(this.currentRow).then(({data}) => {
@ -1503,6 +1800,60 @@
}
});
},
openTemplate (type) {
this.templateData.type=type;
this.templateFlag = true;
},
openTemplateDialog () {
//
this.searchTemplateList();
},
closeTemplateDialog () {
this.templateList = []
this.templateFlag = false
},
searchTemplateList () {
this.templateData.buNo = this.currentRow.buNo
searchTemplateList(this.templateData).then(({data}) => {
if (data && data.code === 0){
this.templateList = data.rows;
}
})
},
templateRowDblclick (row) {
if (this.templateData.type=='发票') {
this.exportInvoice.templateName=row.name
this.exportInvoice.hsCodeDesc=row.hsCodeDesc
this.exportInvoice.contractFlag=row.contractFlag
this.exportInvoice.origin=this.currentRow.origin?this.currentRow.origin:row.origin
this.exportInvoice.packaging=this.currentRow.packaging?this.currentRow.packaging:row.packaging
this.exportInvoice.kgs=this.currentRow.kgs?this.currentRow.kgs:row.kgs
this.exportInvoice.hsCode=this.currentRow.hsCode?this.currentRow.hsCode:row.hsCode
this.exportInvoice.material=this.currentRow.material?this.currentRow.material:row.material
this.exportInvoice.hsCodeDescType=this.currentRow.hsCodeDescType?this.currentRow.hsCodeDescType:row.hsCodeDescType
this.exportInvoice.goodsLabel=this.currentRow.goodsLabel?this.currentRow.goodsLabel:row.goodsLabel
} else {
this.exportPaking.templateName=row.name
this.exportPaking.upc=row.upc
this.exportPaking.so=row.so
this.exportPaking.shippingMark=row.shippingMark
this.exportPaking.palletWeight=row.palletWeight
this.exportPaking.boxChange=row.boxChange
this.exportPaking.itemNo=row.itemNo
this.exportPaking.origin=this.currentRow.origin?this.currentRow.origin:row.origin
this.exportPaking.packaging=this.currentRow.packaging?this.currentRow.packaging:row.packaging
this.exportPaking.kgs=this.currentRow.kgs?this.currentRow.kgs:row.kgs
this.exportPaking.hsCode=this.currentRow.hsCode?this.currentRow.hsCode:row.hsCode
this.exportPaking.material=this.currentRow.material?this.currentRow.material:row.material
this.exportPaking.hsCodeDescType=this.currentRow.hsCodeDescType?this.currentRow.hsCodeDescType:row.hsCodeDescType
this.exportPaking.goodsLabel=this.currentRow.goodsLabel?this.currentRow.goodsLabel:row.goodsLabel
}
this.templateFlag = false
},
},
created() {

608
src/views/modules/ecss/ecssTemplate.vue

@ -0,0 +1,608 @@
<template>
<div class="mod-config">
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-form-item :label="'BU:'">
<el-select v-model="searchData.buNo" placeholder="请选择" >
<el-option label="全部" value=""></el-option>
<el-option
v-for = "i in buList"
:key = "i.buNo"
:label = "i.buDesc"
:value = "i.buNo">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="'模版名称:'">
<el-input v-model="searchData.name" ></el-input>
</el-form-item>
<el-form-item :label="'模版类型:'">
<el-select filterable v-model="searchData.type" clearable style="width: 140px;">
<el-option :label="item" :value="item" v-for="(item,index) in types "
:key="index"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="' '" >
<el-button @click="searchTable()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'查询'}}</el-button>
<el-button @click="addModelOpen()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'新增'}}</el-button>
</el-form-item>
</el-form>
<el-table
@row-click="changeData"
highlight-current-row
:height="height"
:data="dataList"
ref="mainTable"
border
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
header-align="center"
align="center"
width="100"
fixed="left"
label="操作">
<template slot-scope="scope">
<a type="text" size="small" @click="updateModelOpen(scope.row)">编辑</a>
<a type="text" size="small" @click="deleteEcssTemplate(scope.row)">删除</a>
</template>
</el-table-column>
<el-table-column
v-for="(item,index) in columnList1" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed==''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[20, 50, 100, 1000]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<el-dialog title="维护模版信息" :close-on-click-modal="false" v-drag :visible.sync="addModelFlag" width="500px">
<el-form label-position="top" style="margin-left: 2px;margin-top: -5px;">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item :label="'BU:'">
<el-select v-model="addModel.buNo" placeholder="请选择" :disabled="addModel.addFlag!==0" style="width: 100%">
<el-option
v-for = "i in buList"
:key = "i.buNo"
:label = "i.buDesc"
:value = "i.buNo">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'模版类型'" >
<el-select filterable v-model="addModel.type" placeholder="请选择" :disabled="addModel.addFlag!==0" style="width:100%;">
<el-option :label="item" :value="item" v-for="(item,index) in types "
:key="index"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'模版名称'" >
<el-input v-model="addModel.name"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'品名类型'" >
<el-radio v-model="addModel.hsCodeDescType" label="Y">中文</el-radio>
<el-radio v-model="addModel.hsCodeDescType" label="N">英文</el-radio>
</el-form-item>
</el-col>
<el-col :span="12" v-show="addModel.type=='发票'">
<el-form-item :label="''" >
<el-checkbox v-model="addModel.hsCodeDesc">品名</el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12" v-show="addModel.type=='发票'">
<el-form-item :label="''" >
<el-checkbox v-model="addModel.contractFlag">合同</el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12" v-show="addModel.type=='箱单'">
<el-form-item :label="''" >
<el-checkbox v-model="addModel.upc">UPC</el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12" v-show="addModel.type=='箱单'">
<el-form-item :label="''" >
<el-checkbox v-model="addModel.so">SO</el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12" v-show="addModel.type=='箱单'">
<el-form-item :label="''" >
<el-checkbox v-model="addModel.boxChange">显示箱数零头</el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12" >
<el-form-item :label="''" >
<el-checkbox v-model="addModel.goodsLabel">货物明细</el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12" v-show="addModel.type=='箱单'">
<el-form-item :label="'序号类型'" >
<el-radio v-model="addModel.itemNo" label="Y">序号</el-radio>
<el-radio v-model="addModel.itemNo" label="N">栈板号</el-radio>
</el-form-item>
</el-col>
<el-col :span="12" v-show="addModel.type=='箱单'">
<el-form-item :label="'Shipping Mark'" >
<el-input v-model="addModel.shippingMark"></el-input>
</el-form-item>
</el-col>
<el-col :span="12" v-show="addModel.type=='箱单'">
<el-form-item :label="'栈板重量参数'" >
<el-input v-model="addModel.palletWeight"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'制造地'" >
<el-input v-model="addModel.origin"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'RFID Base Material'" >
<el-checkbox v-model="addModel.material"></el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'HS Code'" >
<el-input :disabled="!addModel.material" v-model="addModel.hsCode"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'Non-reusable plastic packaging'" >
<el-checkbox v-model="addModel.packaging"></el-checkbox>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'plastic packaging'" >
<el-input :disabled="!addModel.packaging" v-model="addModel.kgs"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer style="height:40px;margin-top: 10px;text-align:center">
<el-button type="primary" @click="saveEcssTemplate()">保存</el-button>
<el-button type="primary" @click="addModelFlag=false">关闭</el-button>
</el-footer>
</el-dialog>
<!--列表的组件-->
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</div>
</template>
<script>
import Chooselist from '@/views/modules/common/Chooselist_eam'
import {} from "@/api/sysLanguage.js"
import {
searchEcssTemplateData,
saveEcssTemplateData,
deleteEcssTemplate,
}from "@/api/ecss/ecss.js"
import {getBuList}from '@/api/factory/site.js'
export default {
name: "null",
components:{
Chooselist,
},
data() {
return {
types: [ '发票', '箱单'],
pageIndex: 1,
pageSize: 100,
totalPage: 0,
height: 200,
buList:[],
dataList:[],
dataList2:[],
dataListLoading: false,
searchData: {
page: 1,
limit: 100,
buNo:'',
type:'',
name:'',
username:this.$store.state.user.name,
},
buttons:{
search:'查询',
},
addModelFlag:false,
addModel:{
addFlag:0,
site:'',
buNo:'',
name:'',
type:'',
upc:'',
so:'',
origin:'',
packaging:'',
kgs:'',
shippingMark:'',
hsCode:'',
palletWeight:'',
material:'',
hsCodeDesc:'',
contractFlag:'',
hsCodeDescType:'',
goodsLabel:'',
remark:'',
boxChange:''
},
addDisabledFlag:true,
activeName:'attribute',
columnList1: [
{
userId: this.$store.state.user.name,
functionId: 801007,
serialNumber: '801007Table1BuDesc',
tableId: "801007Table1",
tableName: "EcssTemplate基础信息",
columnProp: "buDesc",
headerAlign: "center",
align: "center",
columnLabel: "BU",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 801003,
serialNumber: '801007Table1EcssTemplateNo',
tableId: "801007Table1",
tableName: "EcssTemplate基础信息",
columnProp: "name",
headerAlign: "center",
align: "center",
columnLabel: "模版名称",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 160
},
{
userId: this.$store.state.user.name,
functionId: 801003,
serialNumber: '801007Table1EcssTemplateType',
tableId: "801007Table1",
tableName: "EcssTemplate基础信息",
columnProp: "type",
headerAlign: "center",
align: "center",
columnLabel: "模版类型",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 801003,
serialNumber: '801007Table1CreateBy',
tableId: "801007Table1",
tableName: "EcssTemplate基础信息",
columnProp: "createBy",
headerAlign: "center",
align: "center",
columnLabel: "创建人",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 801003,
serialNumber: '801007Table1CreateDate',
tableId: "801007Table1",
tableName: "EcssTemplate基础信息",
columnProp: "createDate",
headerAlign: "center",
align: "center",
columnLabel: "创建日期",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 140
},
{
userId: this.$store.state.user.name,
functionId: 801003,
serialNumber: '801007Table1UpdateBy',
tableId: "801007Table1",
tableName: "EcssTemplate基础信息",
columnProp: "updateBy",
headerAlign: "center",
align: "left",
columnLabel: "修改人",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 801003,
serialNumber: '801007Table1UpdateDate',
tableId: "801007Table1",
tableName: "EcssTemplate基础信息",
columnProp: "updateDate",
headerAlign: "center",
align: "center",
columnLabel: "修改日期",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 801003,
serialNumber: '801007Table1Remark',
tableId: "801007Table1",
tableName: "EcssTemplate基础信息",
columnProp: "remark",
headerAlign: "center",
align: "left",
columnLabel: "备注",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 300
},
],
currentRow:{},
}
},
mounted() {
this.$nextTick(() => {
this.height = (window.innerHeight - 200);
})
},
methods: {
// S
getBaseList(val, type) {
this.tagNo = val
this.$nextTick(() => {
let strVal = ''
if (val === 33) {
strVal = this.addModel.codeNo
}
this.$refs.baseList.init(val, strVal)
})
},
/* 列表方法的回调 */
getBaseData(val) {
if (this.tagNo === 33) {
this.addModel.codeNo = val.Code_No
}
},
//
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.searchTable()
},
//
currentChangeHandle (val) {
this.pageIndex = val
this.searchTable()
},
searchTable(){
this.searchData.limit = this.pageSize
this.searchData.page = this.pageIndex
searchEcssTemplateData(this.searchData).then(({data}) => {
//
if (data && data.code == 0) {
this.dataList = data.page.list
this.pageIndex = data.page.currPage
this.pageSize = data.page.pageSize
this.totalPage = data.page.totalCount
if(this.dataList.length>0){
this.$refs.mainTable.setCurrentRow(this.dataList[0]);
this.changeData(this.dataList[0])
}else {
this.changeData(null)
}
} else {
this.dataList = [];
}
});
},
changeData(row){
this.currentRow = JSON.parse(JSON.stringify(row));
this.headerData=row;
this.refreshCurrentTabTable ();
},
refreshCurrentTabTable(){
if(this.currentRow===''||this.currentRow===null){
this.currentRow={site:'',hsCode:'',buNo:'',recordType:'',codeNo:''}
}
},
tabClick (tab, event) {
//
this.refreshCurrentTabTable()
},
getBu () {
let tempData = {
username: this.$store.state.user.name,
}
getBuList(tempData).then(({data}) => {
if (data.code === 0) {
this.buList = data.row2
}
})
},
addModelOpen(){
this.addDisabledFlag=true
this.addModel={
addFlag:0,
site:'',
buNo:'',
name:'',
type:'',
upc:'',
so:'',
origin:'',
packaging:'',
kgs:'',
shippingMark:'',
hsCode:'',
palletWeight:'',
material:'',
hsCodeDesc:'',
contractFlag:'',
hsCodeDescType:'',
goodsLabel:'',
remark:'',
boxChange:''
}
this.addModelFlag=true
},
updateModelOpen(row){
this.addDisabledFlag=false
this.addModel={
addFlag:1,
site:row.site,
buNo:row.buNo,
name:row.name,
nameNative:row.name,
type:row.type,
upc:row.upc,
so:row.so,
origin:row.origin,
packaging:row.packaging,
itemNo:row.itemNo,
kgs:row.kgs,
shippingMark:row.shippingMark,
hsCode:row.hsCode,
palletWeight:row.palletWeight,
material:row.material,
hsCodeDesc:row.hsCodeDesc,
contractFlag:row.contractFlag,
hsCodeDescType:row.hsCodeDescType,
goodsLabel:row.goodsLabel,
remark:row.remark,
boxChange:row.boxChange
}
this.addModelFlag=true
},
deleteEcssTemplate(row){
this.$confirm('确认删除?', '提示').then(() => {
deleteEcssTemplate(row).then(({data}) => {
if (data && data.code === 0) {
this.searchTable()
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
})
},
saveEcssTemplate(){
if(this.addModel.buNo==null||this.addModel.buNo===''){
this.$alert('请选择BU!', '错误', {
confirmButtonText: '确定'
})
return false
}
if(this.addModel.type==null||this.addModel.type===''){
this.$alert('请选择模版类型!', '错误', {
confirmButtonText: '确定'
})
return false
}
if(this.addModel.name==null||this.addModel.name===''){
this.$alert('请输入模版名称!', '错误', {
confirmButtonText: '确定'
})
return false
}
saveEcssTemplateData(this.addModel).then(({data}) => {
if (data && data.code === 0) {
this.searchTable()
this.addModelFlag = false
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
},
},
activated() {
this.searchTable()
},
created() {
this.getBu ()
}
}
</script>
<style scoped>
</style>

500
src/views/modules/ecss/ecssWalMartOrder.vue

@ -0,0 +1,500 @@
<template>
<div class="mod-config">
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-form-item :label="'SKU:'">
<el-input v-model="searchData.sku" ></el-input>
</el-form-item>
<el-form-item :label="'SO:'">
<el-input v-model="searchData.so" ></el-input>
</el-form-item>
<el-form-item :label="' '" >
<el-button @click="searchTable()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'查询'}}</el-button>
<el-button @click="importModel()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'导入'}}</el-button>
</el-form-item>
</el-form>
<el-table
@row-click="changeData"
highlight-current-row
:height="height"
:data="dataList"
ref="mainTable"
border
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
header-align="center"
align="center"
width="100"
fixed="left"
label="操作">
<template slot-scope="scope">
<a type="text" size="small" @click="updateModelOpen(scope.row)">编辑</a>
<a type="text" size="small" @click="deleteWalMartOrder(scope.row)">删除</a>
</template>
</el-table-column>
<el-table-column
v-for="(item,index) in columnList1" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed==''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[20, 50, 100, 1000]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<el-dialog title="编辑" :close-on-click-modal="false" v-drag :visible.sync="addModelFlag" width="500px">
<el-form label-position="top" style="margin-left: 2px;margin-top: -5px;">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item :label="'SKU'" >
<el-input v-model="addModel.sku"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'SO'" >
<el-input v-model="addModel.so"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'数量'" >
<el-input v-model="addModel.qty"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'卷数'" >
<el-input v-model="addModel.rolls"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'重量'" >
<el-input v-model="addModel.grossWeight"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'核销单号'" >
<el-input v-model="addModel.verificationSheet"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer style="height:40px;margin-top: 10px;text-align:center">
<el-button type="primary" @click="saveWalMartOrder()">保存</el-button>
<el-button type="primary" @click="addModelFlag=false">关闭</el-button>
</el-footer>
</el-dialog>
<!-- 导入 -->
<wal-upload-excel ref="walUploadExcel" @refreshTable="searchTable" v-drag></wal-upload-excel>
<!--列表的组件-->
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
</div>
</template>
<script>
import walUploadExcel from "./walmart_upload_excel.vue";
import Chooselist from '@/views/modules/common/Chooselist_eam'
import {} from "@/api/sysLanguage.js"
import {
searchWalMartOrderData,
saveWalMartOrderData,
deleteWalMartOrder,
}from "@/api/ecss/ecss.js"
export default {
name: "null",
components:{
walUploadExcel,
Chooselist,
},
data() {
return {
pageIndex: 1,
pageSize: 100,
totalPage: 0,
height: 200,
buList:[],
dataList:[],
dataListLoading: false,
searchData: {
page: 1,
limit: 100,
buNo:'',
sku:'',
so:'',
},
buttons:{
search:'查询',
},
addModelFlag:false,
addModel:{
addFlag:0,
site:'',
buNo:'',
sku:'',
so:'',
qty:'',
rolls:'',
grossWeight:'',
verificationSheet:'',
},
addDisabledFlag:true,
activeName:'attribute',
columnList1: [
{
userId: this.$store.state.user.name,
functionId: 801007,
serialNumber: '801007Table1BuDesc',
tableId: "801007Table1",
tableName: "WalMartOrder基础信息",
columnProp: "sku",
headerAlign: "center",
align: "center",
columnLabel: "SKU",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 801003,
serialNumber: '801007Table1WalMartOrderNo',
tableId: "801007Table1",
tableName: "WalMartOrder基础信息",
columnProp: "so",
headerAlign: "center",
align: "center",
columnLabel: "SO",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 160
},
{
userId: this.$store.state.user.name,
functionId: 801003,
serialNumber: '801007Table1WalMartOrderType',
tableId: "801007Table1",
tableName: "WalMartOrder基础信息",
columnProp: "qty",
headerAlign: "center",
align: "center",
columnLabel: "数量",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 801003,
serialNumber: '801007Table1WalMartOrderType',
tableId: "801007Table1",
tableName: "WalMartOrder基础信息",
columnProp: "rolls",
headerAlign: "center",
align: "center",
columnLabel: "卷数",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 801003,
serialNumber: '801007Table1WalMartOrderType',
tableId: "801007Table1",
tableName: "WalMartOrder基础信息",
columnProp: "grossWeight",
headerAlign: "center",
align: "center",
columnLabel: "重量",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 801003,
serialNumber: '801007Table1WalMartOrderType',
tableId: "801007Table1",
tableName: "WalMartOrder基础信息",
columnProp: "verificationSheet",
headerAlign: "center",
align: "center",
columnLabel: "核销单号",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 801003,
serialNumber: '801007Table1CreateBy',
tableId: "801007Table1",
tableName: "WalMartOrder基础信息",
columnProp: "createBy",
headerAlign: "center",
align: "center",
columnLabel: "创建人",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 801003,
serialNumber: '801007Table1CreateDate',
tableId: "801007Table1",
tableName: "WalMartOrder基础信息",
columnProp: "createDate",
headerAlign: "center",
align: "center",
columnLabel: "创建日期",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 140
},
{
userId: this.$store.state.user.name,
functionId: 801003,
serialNumber: '801007Table1UpdateBy',
tableId: "801007Table1",
tableName: "WalMartOrder基础信息",
columnProp: "updateBy",
headerAlign: "center",
align: "left",
columnLabel: "修改人",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 801003,
serialNumber: '801007Table1UpdateDate',
tableId: "801007Table1",
tableName: "WalMartOrder基础信息",
columnProp: "updateDate",
headerAlign: "center",
align: "center",
columnLabel: "修改日期",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 140
},
],
currentRow:{},
}
},
mounted() {
this.$nextTick(() => {
this.height = (window.innerHeight - 200);
})
},
methods: {
// S
getBaseList(val, type) {
this.tagNo = val
this.$nextTick(() => {
let strVal = ''
if (val === 33) {
strVal = this.addModel.codeNo
}
this.$refs.baseList.init(val, strVal)
})
},
/* 列表方法的回调 */
getBaseData(val) {
if (this.tagNo === 33) {
this.addModel.codeNo = val.Code_No
}
},
//
sizeChangeHandle (val) {
this.pageSize = val
this.pageIndex = 1
this.searchTable()
},
//
currentChangeHandle (val) {
this.pageIndex = val
this.searchTable()
},
searchTable(){
this.searchData.limit = this.pageSize
this.searchData.page = this.pageIndex
searchWalMartOrderData(this.searchData).then(({data}) => {
//
if (data && data.code == 0) {
this.dataList = data.page.list
this.pageIndex = data.page.currPage
this.pageSize = data.page.pageSize
this.totalPage = data.page.totalCount
if(this.dataList.length>0){
this.$refs.mainTable.setCurrentRow(this.dataList[0]);
this.changeData(this.dataList[0])
}else {
this.changeData(null)
}
} else {
this.dataList = [];
}
});
},
changeData(row){
this.currentRow = JSON.parse(JSON.stringify(row));
this.headerData=row;
this.refreshCurrentTabTable ();
},
refreshCurrentTabTable(){
if(this.currentRow===''||this.currentRow===null){
this.currentRow={site:'',hsCode:'',buNo:'',recordType:'',codeNo:''}
}
},
tabClick (tab, event) {
//
this.refreshCurrentTabTable()
},
getBu () {
let tempData = {
username: this.$store.state.user.name,
}
getBuList(tempData).then(({data}) => {
if (data.code === 0) {
this.buList = data.row2
}
})
},
updateModelOpen(row){
this.addDisabledFlag=false
this.addModel={
addFlag:1,
site:row.site,
buNo:row.buNo,
sku:row.sku,
so:row.so,
qty:row.qty,
rolls:row.rolls,
grossWeight:row.grossWeight,
verificationSheet:row.verificationSheet,
}
this.addModelFlag=true
},
deleteWalMartOrder(row){
this.$confirm('确认删除?', '提示').then(() => {
deleteWalMartOrder(row).then(({data}) => {
if (data && data.code === 0) {
this.searchTable()
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
})
},
saveWalMartOrder(){
if(this.addModel.sku==null||this.addModel.sku===''){
this.$alert('请输入SKU!', '错误', {
confirmButtonText: '确定'
})
return false
}
saveWalMartOrderData(this.addModel).then(({data}) => {
if (data && data.code === 0) {
this.searchTable()
this.addModelFlag = false
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
},
importModel(){
this.$nextTick(() => {
this.$refs.walUploadExcel.init()
})
},
},
activated() {
this.searchTable()
},
created() {
this.getBu ()
}
}
</script>
<style scoped>
</style>

35
src/views/modules/ecss/hsCode.vue

@ -80,7 +80,7 @@
<el-dialog title="维护HSCode" :close-on-click-modal="false" v-drag :visible.sync="addModelFlag" width="500px">
<el-form label-position="top" style="margin-left: 7px;margin-top: -5px;">
<el-row :gutter="20">
<el-col :span="8">
<el-col :span="12">
<el-form-item :label="'BU:'">
<el-select v-model="addModel.buNo" placeholder="请选择" :disabled="addModel.addFlag!==0" style="width: 100%">
<el-option
@ -92,23 +92,28 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="12">
<el-form-item :label="'品名'" >
<el-input v-model="addModel.hsCodeDesc" :disabled="addModel.addFlag!==0" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="12">
<el-form-item :label="'英文品名'" >
<el-input v-model="addModel.hsCodeDescEn" ></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="'HS Code'" >
<el-input v-model="addModel.hsCode" ></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="12">
<el-form-item >
<span slot="label" @click="getBaseList(33)"><a herf="#">属性模板</a></span>
<el-input v-model="addModel.codeNo" ></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-col :span="12">
<el-form-item :label="'备注'" >
<el-input v-model="addModel.remark" ></el-input>
</el-form-item>
@ -171,6 +176,7 @@
buNo:'',
hsCode:'',
hsCodeDesc:'',
hsCodeDescEn:'',
codeNo:'',
remark:'',
},
@ -231,6 +237,24 @@
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 801003,
serialNumber: '801003Table1HsCode',
tableId: "801003Table1",
tableName: "HsCode基础信息",
columnProp: "hsCodeDescEn",
headerAlign: "center",
align: "left",
columnLabel: "英文品名",
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 801003,
@ -456,6 +480,7 @@
buNo:row.buNo,
hsCode:row.hsCode,
hsCodeDesc : row.hsCodeDesc,
hsCodeDescEn : row.hsCodeDescEn,
codeNo:row.codeNo,
remark:row.remark,
}

163
src/views/modules/ecss/walmart_upload_excel.vue

@ -0,0 +1,163 @@
<template>
<div class="customer-css">
<el-dialog :title="titleCon" :close-on-click-modal="false" :visible.sync="visible" width="390px" style="height: 520px;" class="customer-dialog" @close="deleteFile">
<el-form :inline="true" label-position="top" label-width="80px">
<el-row>
<el-form-item label=" ">
<!-- <el-button type="primary" @click="downloadFile()">下载文件模板</el-button>-->
</el-form-item>
</el-row>
<el-row>
<el-col :span="24">
<el-upload class="customer-upload" drag action="javascript:void(0);" ref="uploadFile" :limit="1" accept=".xlsx,.xls"
:before-upload="beforeUploadHandle" :on-change="onChange" :auto-upload="false" style="text-align: left;">
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
</el-upload>
</el-col>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="saveUploadFile">保存</el-button>
<el-button type="primary" @click="closeDialog">关闭</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {queryFileId} from "@/api/qc/qc.js"
import {saveWalMartOrderByExcel} from '@/api/ecss/ecss.js'
import {downLoadObjectFile} from '@/api/eam/eam_object_list.js'
import {getBuList}from '@/api/factory/site.js'
export default {
name: 'bomComponentUpload',
data() {
return {
buList: [],
titleCon: '文件导入',
visible: false,
fileList: [],
pageData: {
site: '',
buNo: '',
createBy: this.$store.state.user.name,
},
}
},
methods: {
//
init () {
this.fileList = []
let tempData = {
username: this.$store.state.user.name,
}
getBuList(tempData).then(({data}) => {
if (data.code === 0) {
this.buList = data.row2
if(data.row2.length>0){
this.pageData.buNo=data.row2[0].buNo
}
}
})
//
this.visible = true
},
//
beforeUploadHandle (file) {
let extName = file[0].name.substring(file[0].name.lastIndexOf('.')).toLowerCase()
if (!(extName === '.xlsx' || extName === '.xls')) {
this.$message.error('数据导入失败,请选择正确的xlsx模板文件')
return false
}
},
//
onChange (file) {
this.fileList.push(file)
},
// modal
closeDialog () {
this.deleteFile()
//
this.visible = false
},
deleteFile(){
this.fileList = []
//
this.$refs.uploadFile.clearFiles()
//
this.$emit('refreshTable')
},
//
saveUploadFile () {
//
if (null == this.fileList || 0 === this.fileList.length) {
this.$message.error("请先上传文件!")
return false
}
const formData = new FormData()
formData.append("buNo",'03-RFID')
formData.append("username",this.$store.state.user.name)
formData.append("file", this.fileList[0].raw)
saveWalMartOrderByExcel(formData).then(({data}) => {
if (data.code === 0) {
this.$message.success(data.msg)
//
this.closeDialog()
} else {
this.$message.error(data.msg)
}
})
},
//
async downloadFile () {
let file = {
id: 0,
fileName: ''
}
let tempData = {
orderRef1: 'ecss',
orderRef2: 'upLoadDel'
}
await queryFileId(tempData).then(({data}) => {
if (data && data.code === 0) {
file.id = data.data.id
file.fileName = data.data.fileName
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
await downLoadObjectFile(file).then(({data}) => {
//
const blob = new Blob([data], {type: "application/octet-stream"})
//
const fileName = file.fileName
// a
const linkNode = document.createElement('a')
// adownload
linkNode.download = fileName
linkNode.style.display = 'none'
// Blob URL
linkNode.href = URL.createObjectURL(blob)
document.body.appendChild(linkNode)
//
linkNode.click()
// URL
URL.revokeObjectURL(linkNode.href)
document.body.removeChild(linkNode)
})
},
}
}
</script>
Loading…
Cancel
Save