Browse Source

【nev-pc】kitting,注塑,喷涂,装配,四个功能的申请模块,导入使用前端导入功能开发

ag_report_nev
安虹睿 11 months ago
parent
commit
4393a1c233
  1. 8
      fe/PC/src/api/wms-api.js
  2. 119
      fe/PC/src/components/UploadExcelByFe/index.vue
  3. 28
      fe/PC/src/filters/excelOrReportsOption.js
  4. 4
      fe/PC/src/filters/status.js
  5. 72
      fe/PC/src/views/kittingManage/KittingIssueRequest.vue
  6. 73
      fe/PC/src/views/materialIssuePT/IssueRequestPT.vue
  7. 73
      fe/PC/src/views/materialIssueZP/IssueRequestZP.vue
  8. 73
      fe/PC/src/views/materialIssueZS/IssueRequestZS.vue

8
fe/PC/src/api/wms-api.js

@ -744,6 +744,14 @@ export async function getLocationByTypes(params) {
})
}
// 通用导入-前端处理
export async function createImportExcelByFE(url,data) {
return request({
url: baseURL + url +'/CreateImportExcel',
method: 'post',
data
})
}
// 客户退拆任务-完成 todo
// export async function productionRecycleJobComplete(id) {

119
fe/PC/src/components/UploadExcel/index.vue → fe/PC/src/components/UploadExcelByFe/index.vue

@ -9,7 +9,6 @@
v-loading="loading"
:modal="false"
>
<!-- v-loading.fullscreen.lock="loading" -->
<el-button
type="success"
size="mini"
@ -17,13 +16,6 @@
@click="postImportDown"
>获取模板</el-button
>
<!-- <el-button
type="warning"
size="mini"
icon="el-icon-upload"
@click="postImportDown"
>导入数据</el-button
> -->
<input ref="excel-upload-input" class="excel-upload-input" type="file" accept=".xlsx, .xls" @change="handleClick">
<el-button
:loading="loading"
@ -32,25 +24,7 @@
type="primary"
@click="handleUpload"
icon="el-icon-download"
>
导入数据
</el-button>
<!-- <el-button
:loading="loading"
style="margin-left:16px;"
size="mini"
type="warning"
@click="handlePrint()"
icon="el-icon-printer"
>
全部打印
</el-button> -->
<!-- <div class="drop" @drop="handleDrop" @dragover="handleDragover" @dragenter="handleDragover">
Drop excel file here or
<el-button :loading="loading" style="margin-left:16px;" size="mini" type="primary" @click="handleUpload">
Browse
</el-button>
</div> -->
>导入数据</el-button>
<div style="height:calc(100% - 60px)" id="tableOuter">
<el-table
:data="excelData.results"
@ -59,8 +33,6 @@
style="width: 100%;margin-top:20px;"
:max-height="tableMaxHeight"
>
<!-- @selection-change="handleSelectionPrint" -->
<!-- <el-table-column type="selection" width="55"></el-table-column> -->
<el-table-column
v-if="excelData.header.length > 0"
type="index"
@ -75,16 +47,6 @@
:label="item"
:fixed="headerFixed(item)"
/>
<!-- <el-table-column v-if="excelData.header.length > 0" label="明细-箱标签" fixed="right" width="100">
<template slot-scope="scope">
{{scope.row['明细-箱标签']}}
</template>
</el-table-column> -->
<!-- <el-table-column label="操作" fixed="right">
<template slot-scope="scope">
<el-button type="text" @click="handlePrint([scope.row])">打印</el-button>
</template>
</el-table-column> -->
</el-table>
</div>
<span slot="footer" class="dialog-footer">
@ -97,7 +59,6 @@
<script>
import XLSX from 'xlsx'
import { mixins } from "@/mixins/mixins"
import { postInventoryLabelCode } from "@/api/wms-core"
import { supplierAsnExcel } from "@/filters/excelOrReportsOption";
import {SupplierAsnCtypeStaBack} from "@/filters/status"
@ -135,7 +96,6 @@ export default {
header: [],
results: []
},
// printSelection:[],//
tableMaxHeight:null,//
}
},
@ -147,7 +107,6 @@ export default {
results:[]
}
this.loading = false
// this.printSelection = [];
},
headerFixed(item){
let _fix = false
@ -165,81 +124,6 @@ export default {
submitForm(index) {
this.$emit("submitForm", index,this.excelData);
},
//
// handleSelectionPrint(val) {
// this.printSelection = val;
// },
/**
* 打印
* arr 有参数为单独打印无参数为批量打印
*/
// handlePrint(arr){
// let rdlx = "xiangbq.rdlx";
// let params = {
// "boxlabel":[]
// }
// // let printArr = arr ? arr : this.printSelection;
// let printArr = arr ? arr : this.excelData.results;
// if(!printArr || printArr.length <= 0){
// this.$message({
// message: '',
// type: 'error'
// });
// return
// }
//
// this.getPackingCode(arr)
// },
//
getPackingCode(header, results){
let createManyParams = [];
results.forEach(item => {
let _item = {
itemCode: item[supplierAsnExcel.details.itemCode] || "",
lot: item[supplierAsnExcel.details.lot] || "",
labelType:1,
qty: Number(item[supplierAsnExcel.details.qty]),
uom: item[supplierAsnExcel.details.uom],
stdPackQty:0,
company:localStorage.getItem("company"),
// poNumber:item[supplierAsnExcel.poNumber],
// number:item[supplierAsnExcel.number],
supplierCode:item[supplierAsnExcel.supplierCode],
planUserCode:item[supplierAsnExcel.planUserCode],
contactUserName:item[supplierAsnExcel.planUserCode],
planArriveDate:item[supplierAsnExcel.planArriveDate],
shipDate:item[supplierAsnExcel.shipDate],
remark:item[supplierAsnExcel.remark],
ctype:SupplierAsnCtypeStaBack(item[supplierAsnExcel.details.ctype]),
projectCode:item[supplierAsnExcel.details.projectCode],
itemCode:item[supplierAsnExcel.details.itemCode],
recommendErpCode:item[supplierAsnExcel.details.recommendErpCode],
qty:item[supplierAsnExcel.details.qty],
uom:item[supplierAsnExcel.details.uom],
lot:item[supplierAsnExcel.details.lot],
produceDate:item[supplierAsnExcel.details.produceDate],
expireDate:item[supplierAsnExcel.details.expireDate],
};
createManyParams.push(_item)
});
postInventoryLabelCode(createManyParams)
.then((res,a) => {
let _header = JSON.parse(JSON.stringify(header))
_header.push(supplierAsnExcel.details.packingCode)
res.forEach((v,k)=>{
this.$set(results[k],supplierAsnExcel.details.packingCode, res[k].code)
})
this.successShowExcel(_header, results)
}).catch(err => {
console.log(err)
this.loading = false
this.$message.error('导入失败,请重新导入');
// this.reset()
})
},
postImportDown () {
this.$emit('postImportDown')
},
@ -264,7 +148,6 @@ export default {
})
}else{
this.successShowExcel(header, results)
// this.getPackingCode(header, results)
}
},
handleDrop(e) {

28
fe/PC/src/filters/excelOrReportsOption.js

@ -25,6 +25,34 @@ export const supplierAsnExcel = {
remark:"订单备注",
}
// kitting申请
export const kittingRequestExcel = {
toLocationCode:"目标库位",
qty:"需求数量",
itemCode:"物品代码",
}
// 注塑申请
export const zsRequestExcel = {
toLocationCode:"目标库位",
qty:"需求数量",
itemCode:"物品代码",
}
// 喷涂申请
export const ptRequestExcel = {
toLocationCode:"目标库位",
qty:"需求数量",
itemCode:"物品代码",
}
// 装配申请
export const zpRequestExcel = {
toLocationCode:"目标库位",
qty:"需求数量",
itemCode:"物品代码",
}
// 报表地址
// const reportsUrl = "http://10.164.1.39:59088/#/reports/";
const reportsUrl = localStorage.getItem('reportsUrl')

4
fe/PC/src/filters/status.js

@ -2500,6 +2500,10 @@ export function issueRequestType(index, prop) {
value: 4,
label: "位置码"
},
5: {
value: 5,
label: "Excel导入"
},
}
return Enum(type, index, prop)
}

72
fe/PC/src/views/kittingManage/KittingIssueRequest.vue

@ -26,7 +26,7 @@
</tablePagination>
<!-- 新导入 disabledMethod 导入方式禁用 disabledIsAllowPartImport 是否局部导入禁用-->
<!-- methodValue 导入方式默认选项 是否局部导入 默认选项 -->
<importFile
<!-- <importFile
:loading="Loading.importLoading"
:show="displayDialog.importDialog"
:URL="URL"
@ -35,7 +35,15 @@
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"
></importFile>
></importFile> -->
<!-- 表格导入-前端 -->
<UploadExcelByFe
ref="UploadExcelByFe_Ref"
:before-upload="beforeUpload"
:show="displayDialog.importDialog"
@postImportDown="importDown()"
@submitForm="uploadSubmitForm"
/>
<!--抽屉-->
<curren-Drawer
:title="tableColumns"
@ -62,6 +70,11 @@
import { drawerMixins } from "@/mixins/drawerMixins";
import { TableHeaderMixins } from "@/mixins/TableHeaderMixins";
import { mixins } from "@/mixins/mixins";
import UploadExcelByFe from '@/components/UploadExcelByFe/index.vue'
import { kittingRequestExcel } from "@/filters/excelOrReportsOption";
import { getNowToT } from '@/utils/formatTime'
import { createImportExcelByFE } from '@/api/wms-api'
import store from '@/store'
export default {
name: "KittingIssueRequest",
mixins: [
@ -71,6 +84,7 @@
TableHeaderMixins,
mixins,
],
components: { UploadExcelByFe },
computed: {
hideButton: function () {
return function (val) {
@ -89,7 +103,7 @@
URL: "wms/store/kitting-issue-request",
//
currenButtonData: [
// this.defaultImportBtn(),//
this.defaultImportBtn(),//
this.defaultFieldSettingBtn(),//
this.defaultFreshBtn(),//
this.defaultFilterBtn(),//
@ -127,6 +141,58 @@
mounted() {
this.paging();
},
methods:{
uploadSubmitForm(index,data){
//
if(index == '1'){
let _result = data.results;
let _data = []
for(let i in _result){
let _item = {
worker: store.getters.name.userName,
remark: "",
extraProperties: {},
activeDate: getNowToT(),
autoSubmit: true,
autoAgree: false,
autoHandle: false,
autoCompleteJob: false,
directCreateNote: true,
issueRequestType: 5,
useOnTheWayLocation: false,
details: [{
remark: "",
qty: _result[i][kittingRequestExcel.qty],
itemCode: _result[i][kittingRequestExcel.itemCode],
toLocationCode: _result[i][kittingRequestExcel.toLocationCode],
itemName:"",
uom:""
}]
}
_data.push(_item)
}
this.$refs.UploadExcelByFe_Ref.loading = true
createImportExcelByFE(this.URL,_data)
.then(res=>{
this.$refs.UploadExcelByFe_Ref.loading = false
this.displayDialog.importDialog = false;
this.displayDialog.detailsDialog = false
this.$successMsg("导入成功")
this.paging()
})
.catch(err=>{
this.$refs.UploadExcelByFe_Ref.loading = false
})
}
//
else{
this.displayDialog.importDialog = false;
}
},
beforeUpload(file) {
return true
}
}
};
</script>
<style lang="scss" scoped>

73
fe/PC/src/views/materialIssuePT/IssueRequestPT.vue

@ -26,7 +26,7 @@
</tablePagination>
<!-- 新导入 disabledMethod 导入方式禁用 disabledIsAllowPartImport 是否局部导入禁用-->
<!-- methodValue 导入方式默认选项 是否局部导入 默认选项 -->
<importFile
<!-- <importFile
:loading="Loading.importLoading"
:show="displayDialog.importDialog"
:URL="URL"
@ -35,7 +35,15 @@
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"
></importFile>
></importFile> -->
<!-- 表格导入-前端 -->
<UploadExcelByFe
ref="UploadExcelByFe_Ref"
:before-upload="beforeUpload"
:show="displayDialog.importDialog"
@postImportDown="importDown()"
@submitForm="uploadSubmitForm"
/>
<!--抽屉-->
<curren-Drawer
:title="tableColumns"
@ -62,6 +70,12 @@ import { LoadingMixins } from "@/mixins/LoadingMixins";
import { drawerMixins } from "@/mixins/drawerMixins";
import { TableHeaderMixins } from "@/mixins/TableHeaderMixins";
import { mixins } from "@/mixins/mixins";
import UploadExcelByFe from '@/components/UploadExcelByFe/index.vue'
import { ptRequestExcel } from "@/filters/excelOrReportsOption";
import { getNowToT } from '@/utils/formatTime'
import { createImportExcelByFE } from '@/api/wms-api'
import store from '@/store'
export default {
name: "IssueRequestPT",
mixins: [
@ -71,6 +85,7 @@ export default {
TableHeaderMixins,
mixins,
],
components: { UploadExcelByFe },
computed: {
hideButton: function () {
return function (val) {
@ -89,7 +104,7 @@ export default {
URL: "wms/store/coating-issue-request",
//
currenButtonData: [
// this.defaultImportBtn(),//
this.defaultImportBtn(),//
this.defaultFieldSettingBtn(),//
this.defaultFreshBtn(),//
this.defaultFilterBtn(),//
@ -127,6 +142,58 @@ export default {
mounted() {
this.paging();
},
methods:{
uploadSubmitForm(index,data){
//
if(index == '1'){
let _result = data.results;
let _data = []
for(let i in _result){
let _item = {
worker: store.getters.name.userName,
remark: "",
extraProperties: {},
activeDate: getNowToT(),
autoSubmit: true,
autoAgree: false,
autoHandle: false,
autoCompleteJob: false,
directCreateNote: true,
issueRequestType: 5,
useOnTheWayLocation: false,
details: [{
remark: "",
qty: _result[i][ptRequestExcel.qty],
itemCode: _result[i][ptRequestExcel.itemCode],
toLocationCode: _result[i][ptRequestExcel.toLocationCode],
itemName:"",
uom:""
}]
}
_data.push(_item)
}
this.$refs.UploadExcelByFe_Ref.loading = true
createImportExcelByFE(this.URL,_data)
.then(res=>{
this.$refs.UploadExcelByFe_Ref.loading = false
this.displayDialog.importDialog = false;
this.displayDialog.detailsDialog = false
this.$successMsg("导入成功")
this.paging()
})
.catch(err=>{
this.$refs.UploadExcelByFe_Ref.loading = false
})
}
//
else{
this.displayDialog.importDialog = false;
}
},
beforeUpload(file) {
return true
}
}
};
</script>
<style lang="scss" scoped>

73
fe/PC/src/views/materialIssueZP/IssueRequestZP.vue

@ -26,7 +26,7 @@
</tablePagination>
<!-- 新导入 disabledMethod 导入方式禁用 disabledIsAllowPartImport 是否局部导入禁用-->
<!-- methodValue 导入方式默认选项 是否局部导入 默认选项 -->
<importFile
<!-- <importFile
:loading="Loading.importLoading"
:show="displayDialog.importDialog"
:URL="URL"
@ -35,7 +35,15 @@
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"
></importFile>
></importFile> -->
<!-- 表格导入-前端 -->
<UploadExcelByFe
ref="UploadExcelByFe_Ref"
:before-upload="beforeUpload"
:show="displayDialog.importDialog"
@postImportDown="importDown()"
@submitForm="uploadSubmitForm"
/>
<!--抽屉-->
<curren-Drawer
:title="tableColumns"
@ -62,6 +70,12 @@ import { LoadingMixins } from "@/mixins/LoadingMixins";
import { drawerMixins } from "@/mixins/drawerMixins";
import { TableHeaderMixins } from "@/mixins/TableHeaderMixins";
import { mixins } from "@/mixins/mixins";
import UploadExcelByFe from '@/components/UploadExcelByFe/index.vue'
import { zpRequestExcel } from "@/filters/excelOrReportsOption";
import { getNowToT } from '@/utils/formatTime'
import { createImportExcelByFE } from '@/api/wms-api'
import store from '@/store'
export default {
name: "IssueRequestZP",
mixins: [
@ -71,6 +85,7 @@ export default {
TableHeaderMixins,
mixins,
],
components: { UploadExcelByFe },
computed: {
hideButton: function () {
return function (val) {
@ -89,7 +104,7 @@ export default {
URL: "wms/store/assemble-issue-request",
//
currenButtonData: [
// this.defaultImportBtn(),//
this.defaultImportBtn(),//
this.defaultFieldSettingBtn(),//
this.defaultFreshBtn(),//
this.defaultFilterBtn(),//
@ -127,6 +142,58 @@ export default {
mounted() {
this.paging();
},
methods:{
uploadSubmitForm(index,data){
//
if(index == '1'){
let _result = data.results;
let _data = []
for(let i in _result){
let _item = {
worker: store.getters.name.userName,
remark: "",
extraProperties: {},
activeDate: getNowToT(),
autoSubmit: true,
autoAgree: false,
autoHandle: false,
autoCompleteJob: false,
directCreateNote: true,
issueRequestType: 5,
useOnTheWayLocation: false,
details: [{
remark: "",
qty: _result[i][zpRequestExcel.qty],
itemCode: _result[i][zpRequestExcel.itemCode],
toLocationCode: _result[i][zpRequestExcel.toLocationCode],
itemName:"",
uom:""
}]
}
_data.push(_item)
}
this.$refs.UploadExcelByFe_Ref.loading = true
createImportExcelByFE(this.URL,_data)
.then(res=>{
this.$refs.UploadExcelByFe_Ref.loading = false
this.displayDialog.importDialog = false;
this.displayDialog.detailsDialog = false
this.$successMsg("导入成功")
this.paging()
})
.catch(err=>{
this.$refs.UploadExcelByFe_Ref.loading = false
})
}
//
else{
this.displayDialog.importDialog = false;
}
},
beforeUpload(file) {
return true
}
}
};
</script>
<style lang="scss" scoped>

73
fe/PC/src/views/materialIssueZS/IssueRequestZS.vue

@ -26,7 +26,7 @@
</tablePagination>
<!-- 新导入 disabledMethod 导入方式禁用 disabledIsAllowPartImport 是否局部导入禁用-->
<!-- methodValue 导入方式默认选项 是否局部导入 默认选项 -->
<importFile
<!-- <importFile
:loading="Loading.importLoading"
:show="displayDialog.importDialog"
:URL="URL"
@ -35,7 +35,15 @@
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"
></importFile>
></importFile> -->
<!-- 表格导入-前端 -->
<UploadExcelByFe
ref="UploadExcelByFe_Ref"
:before-upload="beforeUpload"
:show="displayDialog.importDialog"
@postImportDown="importDown()"
@submitForm="uploadSubmitForm"
/>
<!--抽屉-->
<curren-Drawer
:title="tableColumns"
@ -62,6 +70,12 @@ import { LoadingMixins } from "@/mixins/LoadingMixins";
import { drawerMixins } from "@/mixins/drawerMixins";
import { TableHeaderMixins } from "@/mixins/TableHeaderMixins";
import { mixins } from "@/mixins/mixins";
import UploadExcelByFe from '@/components/UploadExcelByFe/index.vue'
import { zsRequestExcel } from "@/filters/excelOrReportsOption";
import { getNowToT } from '@/utils/formatTime'
import { createImportExcelByFE } from '@/api/wms-api'
import store from '@/store'
export default {
name: "IssueRequestZS",
mixins: [
@ -71,6 +85,7 @@ export default {
TableHeaderMixins,
mixins,
],
components: { UploadExcelByFe },
computed: {
hideButton: function () {
return function (val) {
@ -89,7 +104,7 @@ export default {
URL: "wms/store/injection-issue-request",
//
currenButtonData: [
// this.defaultImportBtn(),//
this.defaultImportBtn(),//
this.defaultFieldSettingBtn(),//
this.defaultFreshBtn(),//
this.defaultFilterBtn(),//
@ -127,6 +142,58 @@ export default {
mounted() {
this.paging();
},
methods:{
uploadSubmitForm(index,data){
//
if(index == '1'){
let _result = data.results;
let _data = []
for(let i in _result){
let _item = {
worker: store.getters.name.userName,
remark: "",
extraProperties: {},
activeDate: getNowToT(),
autoSubmit: true,
autoAgree: false,
autoHandle: false,
autoCompleteJob: false,
directCreateNote: true,
issueRequestType: 5,
useOnTheWayLocation: false,
details: [{
remark: "",
qty: _result[i][zsRequestExcel.qty],
itemCode: _result[i][zsRequestExcel.itemCode],
toLocationCode: _result[i][zsRequestExcel.toLocationCode],
itemName:"",
uom:""
}]
}
_data.push(_item)
}
this.$refs.UploadExcelByFe_Ref.loading = true
createImportExcelByFE(this.URL,_data)
.then(res=>{
this.$refs.UploadExcelByFe_Ref.loading = false
this.displayDialog.importDialog = false;
this.displayDialog.detailsDialog = false
this.$successMsg("导入成功")
this.paging()
})
.catch(err=>{
this.$refs.UploadExcelByFe_Ref.loading = false
})
}
//
else{
this.displayDialog.importDialog = false;
}
},
beforeUpload(file) {
return true
}
}
};
</script>
<style lang="scss" scoped>

Loading…
Cancel
Save