Browse Source

修改批量补充物料

dev-warehouse
caoyizhong 2 years ago
parent
commit
b598c70542
  1. 2
      src/router/views/index.js
  2. 479
      src/views/distribution/inventory/distributionStockArticleDetails.vue
  3. 17
      src/views/distribution/stockup/distributionStockupDetails.vue
  4. 10
      src/views/distribution/stockup/distributionStockupDiscuss.vue
  5. 10
      src/views/distribution/stockup/distributionStockupMarket.vue

2
src/router/views/index.js

@ -769,7 +769,7 @@ export default [
children: [
{
path: '/distribution/reservation/order_listFrom',
name: '自提明细',
name: '预约编辑',
meta: {
i18n: 'dict',
},

479
src/views/distribution/inventory/distributionStockArticleDetails.vue

@ -87,9 +87,33 @@
</el-row>
<h3>包件信息</h3>
<div style="float: right" v-if="dataMaterial">
<el-button type="primary" text icon="el-icon-view" @click="handleMaterialList()">补充物料信息</el-button>
</div>
<el-row>
<!-- 列表模块 -->
<el-table ref="table" v-loading="loading"
<tablecmt
:columnList="columnList"
:tableData="dataPare"
:loading="loading"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
>
<template #default="slotProps">
<!-- <el-button type="primary" text icon="el-icon-view" @click="handleView(slotProps.scope)">查看</el-button>-->
<!-- <el-button type="primary" text icon="el-icon-edit" @click="handleCallDeliveryOwn(slotProps.scope)">修改客户信息</el-button>-->
<el-button type="primary" text icon="el-icon-view" @click="handleTrajectory(slotProps.scope.row)">查看轨迹</el-button>
<el-button type="primary" text icon="el-icon-view" @click="handleQRCode(slotProps.scope.row)">查看二维码</el-button>
<el-button type="primary" text icon="el-icon-view" v-if="slotProps.scope.row.materialId == '' || slotProps.scope.row.materialId == '-1'" @click="handleMaterial(slotProps.scope.row)">补充物料信息</el-button>
</template>
</tablecmt>
<!-- 列表模块 -->
<!-- <el-table ref="table" v-loading="loading"
@selection-change="selectionChange"
:data="dataPare"
:height="height"
@ -100,7 +124,7 @@
<el-table-column v-if="option.index" label="序号" type="index" width="60" align="center">
</el-table-column>
<template v-for="(item,index) in option.columnParcels">
<!-- table字段 -->
&lt;!&ndash; table字段 &ndash;&gt;
<el-table-column v-if="item.hide!==true"
:prop="item.prop"
:label="item.label"
@ -108,17 +132,17 @@
:key="index">
</el-table-column>
</template>
<!-- 操作栏模块 -->
&lt;!&ndash; 操作栏模块 &ndash;&gt;
<el-table-column prop="menu" label="操作" :width="220" align="center">
<template #="{row}">
<el-button type="primary" text icon="el-icon-view" @click="handleTrajectory(row)">查看轨迹</el-button>
<el-button type="primary" text icon="el-icon-view" @click="handleQRCode(row)">查看二维码</el-button>
<el-button type="primary" text icon="el-icon-view" v-if="row.materialId == '' || row.materialId == '-1'" @click="handleMaterial(row)">补充物料信息</el-button>
<!-- <el-button type="primary" text icon="el-icon-edit" @click="handleEdit(row)">编辑</el-button>-->
<!-- <el-button type="primary" text icon="el-icon-delete" @click="rowDel(row)">删除</el-button>-->
&lt;!&ndash; <el-button type="primary" text icon="el-icon-edit" @click="handleEdit(row)">编辑</el-button>&ndash;&gt;
&lt;!&ndash; <el-button type="primary" text icon="el-icon-delete" @click="rowDel(row)">删除</el-button>&ndash;&gt;
</template>
</el-table-column>
</el-table>
</el-table>-->
</el-row>
<el-row>
<div class="avue-crud__pagination" style="width:100%">
@ -254,6 +278,12 @@
</el-dialog>
</div>
</basic-container>
<edittablehead
@setcolum="setnewcolum"
@closce="showdrawer"
:drawerShow="drawerShow"
:columnList="columnList"
></edittablehead>
</template>
<script>
@ -276,6 +306,7 @@ import { getDictionaryBiz } from '@/api/system/dict';
import { getListMaterial } from '@/api/basic/basicMaterial';
import { getLodop } from '@/utils/LodopFuncs';
import { getStockTemplate } from '@/api/distribution/distributionStockArticle';
import dayjs from 'dayjs';
export default {
data () {
@ -293,6 +324,7 @@ export default {
view: false,
//
query: {},
queryPage: {},
//
titleMaterial: '',
optionsName: [],
@ -320,6 +352,7 @@ export default {
//
data: [],
dataPare: [],
dataMaterial: false,
distributionType: [],
dialogTableVisible: false,
dialogVisible:false, //
@ -332,11 +365,278 @@ export default {
trade:false, //
municipal:true, //
taker:true, //
columnListedit: [],
drawerShow: false,
columnList: [
{
prop: '',
label: '序号',
type: 0,
values: '',
width: 55,
checkarr: [],
fixed: true,
},
{
prop: 'warehouse',
label: '仓库',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: true,
sortable: true,
head: false,
},
{
prop: 'waybillNumber',
label: '运单号',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: true,
sortable: true,
head: false,
},
{
prop: 'orderPackageStatusName',
label: '包件状态',
type: 3,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'orderPackageFreezeStatusName',
label: '冻结状态',
type: 3,
values: '',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'orderPackageGroundingStatusName',
label: '上架状态',
type: 3,
values: '',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'orderPackageStockupStatusName',
label: '备货状态',
type: 3,
values: '',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'orderPackageReservationStatusName',
label: '预约状态',
type: 3,
values: '',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'orderPackageCode',
label: '包条码',
type: 2,
values: '',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'goodsAllocation',
label: '货位信息',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'pallet',
label: '所在托盘',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
}, {
prop: 'firsts',
label: '一级品',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
}, {
prop: 'second',
label: '二级品',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
}, {
prop: 'thirdProduct',
label: '三级品',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'materialName',
label: '物料名称',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'quantity',
label: '数量',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'warehouseEntryTimeEnd',
label: '入库时间',
type: 4,
values: '',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'trainNumber',
label: '客户车次号',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: '',
label: '操作',
type: 6,
values: '',
width: '230',
checkarr: [],
fixed: 'right',
hide: true,
},
],
}
},
mounted () {
this.init();
this.onLoad(this.page);
/**
* 初始化获取本地缓存的编辑隐藏的列表
* 固定搭配不能更改
*/
// let checkList=[]
// this.columnList.map(item => {
// item.head = false;
// });
let checkListnewarr = this.$functions.getStorage(window.location.pathname+'checkList');
let flexListnewarr = this.$functions.getStorage(window.location.pathname+'flexList');
let sortlistnewarr = this.$functions.getStorage(window.location.pathname+'sortlist');
if (checkListnewarr) {
this.columnList.map(item => {
item.head = false;
});
checkListnewarr.map(ite => {
this.columnList.map(item => {
if (ite == item.label) {
item.head = true;
}
});
});
}else{
let arr=[]
this.columnList.map(item => {
if(item.head){
arr.push(item.label)
}
});
this.$functions.setStorage(window.location.pathname+'checkList',arr)
}
if (flexListnewarr) {
this.columnList.map(item => {
item.fixed = false;
});
flexListnewarr.map(ite => {
this.columnList.map(item => {
if (ite == item.label) {
if(item.type==6){
item.fixed = 'right';
}else{
item.fixed = true;
}
}
});
});
}else{
let arr=[]
this.columnList.map(item => {
if(item.fixed){
arr.push(item.label)
}
});
this.$functions.setStorage(window.location.pathname+'flexList',arr)
}
if (sortlistnewarr) {
this.columnList.map(item => {
item.sortable = false;
});
sortlistnewarr.map(ite => {
this.columnList.map(item => {
if (ite == item.label) {
item.sortable = true;
}
});
});
}else{
let arr=[]
this.columnList.map(item => {
if(item.sortable){
arr.push(item.label)
}
});
this.$functions.setStorage(window.location.pathname+'sortlist',arr)
}
},
watch:{
'$route.query.id':{
@ -368,6 +668,97 @@ export default {
}
},
methods: {
handleMaterialList(){
if(this.selectionList.length === 0){
this.$message.warning("请选择需要补充的包件!!!");
return ;
}else{
let a = false;
this.selectionList.forEach(i =>{
console.log("现在的数据》》》》 ",i);
if(!!i.materialId && i.materialId != '-1'){
a = true;
}
})
if(a){
this.$message.warning("有包含物料的包件信息,请去除,在勾选!!!");
return ;
}
this.titleMaterial = "补充物料"
this.materialBox = true;
}
},
showdrawer(value){
this.drawerShow=value
},
/**
* 弹窗的勾选回调用于更改头部数组
* 固定搭配只需要更换 columnList
*/
setnewcolum(newarr, headarr,type) {
// console.log(newarr,'+++++++++++')
if(type==1){
this.columnList = newarr;
this.$functions.setStorage(window.location.pathname+'checkList', headarr);
}else if(type==2){
this.columnList = newarr;
this.$functions.setStorage(window.location.pathname+'flexList', headarr);
}else if(type==3){
this.columnList = newarr;
this.$functions.setStorage(window.location.pathname+'sortlist', headarr);
}
},
selectionsc(value) {
console.log("11111",value);
},
delectsolt(scope) {
const { row } = scope;
console.log("2222222",row);
},
editsolt(scope) {
const { row } = scope;
console.log("33333",row);
},
btnsc(index, row) {
console.log("4444444",index, row);
},
selectsc(index, row) {
console.log(index, row);
if(row.prop ==='orderPackageFreezeStatusName'){
this.queryPage['orderPackageFreezeStatus'] = index;
}else if(row.prop ==='orderPackageReservationStatusName'){
this.queryPage['orderPackageReservationStatus'] = index;
}else if(row.prop ==='orderPackageGroundingStatusName'){
this.queryPage['orderPackageGroundingStatus'] = index;
}else if(row.prop ==='orderPackageStockupStatusName'){
this.queryPage['orderPackageStockupStatus'] = index;
}else if(row.prop ==='orderPackageStatusName'){
this.queryPage['orderPackageStatus'] = index;
}else{
this.queryPage[row.prop] = index;
}
this.onLoadOwn(this.page);
},
timesc(index, row) {
console.log(index, row);
if (!!index){
index = dayjs(index).format('YYYY-MM-DD');
}
this.queryPage[row.prop] = index
if (!index){
delete this.queryPage[row.prop]
}
this.onLoadOwn(this.page);
},
inputsc(index, row) {
console.log(index, row);
// console.log(index, row.prop);
this.queryPage[row.prop] = index;
this.onLoadOwn(this.page);
},
printTemplate(){
let lodop = getLodop();
// console.log("this.ids>>>>>",this.ids);
@ -395,8 +786,9 @@ export default {
// console.log(">>>",this.formMaterial);
const regex = /^\d+$/;
let id = [];
let asm = {
id: this.formMaterial.id,
// id: this.formMaterial.id,
// materialId: this.formMaterial.materialId,
}
if (regex.test(this.formMaterial.materialId)) {
@ -406,7 +798,16 @@ export default {
// console.log("");
asm.materialId = this.formMaterial.materialCode;
}
// console.log(">>>",asm);
if(this.selectionList.length > 0){
this.selectionList.forEach(i =>{
id.push(i.id);
});
console.log("shuju>>>>",this.selectionList.length);
}else{
id.push(this.formMaterial.id);
}
asm.ids = id;
console.log(">>>",asm);
updateParcelList(asm).then(() => {
this.materialBox = false;
this.onLoadOwn(this.page);
@ -459,7 +860,7 @@ export default {
this.optionsCode = []
}
},
handleMoke(){
/*handleMoke(){
if (this.selectionList.length === 0) {
this.$message.warning("请选择至少一条数据");
return;
@ -473,8 +874,8 @@ export default {
}
});
},
handleStockList(){
},*/
/* handleStockList(){
if (this.selectionList.length === 0) {
this.$message.warning("请选择至少一条数据");
return;
@ -505,7 +906,7 @@ export default {
// message: "!"
// });
// });
},
},*/
//
callFordelivery(inde){
switch (inde) {
@ -597,8 +998,52 @@ export default {
getDictionaryBiz('logpm_unit').then(res => { //
this.logpmUnit = res.data.data;
});
getDictionaryBiz('order_package_status').then(res => {
this.deliveryOrderStatus = res.data.data;
this.checkcColumnList("orderPackageStatusName", this.columnList).checkarr=res.data.data.map(item=>{
item.value=item.dictKey
item.label=item.dictValue
return item
});
});
getDictionaryBiz('order_package_grounding_status').then(res => {
this.checkcColumnList("orderPackageGroundingStatusName", this.columnList).checkarr=res.data.data.map(item=>{
item.value=item.dictKey
item.label=item.dictValue
return item
});
});
getDictionaryBiz('order_package_freeze_status').then(res => {
this.checkcColumnList("orderPackageFreezeStatusName", this.columnList).checkarr=res.data.data.map(item=>{
item.value=item.dictKey
item.label=item.dictValue
return item
});
});
getDictionaryBiz('order_package_stockup_status').then(res => {
this.checkcColumnList("orderPackageStockupStatusName", this.columnList).checkarr=res.data.data.map(item=>{
item.value=item.dictKey
item.label=item.dictValue
return item
});
});
getDictionaryBiz('order_package_reservation_status').then(res => {
this.checkcColumnList("orderPackageReservationStatusName", this.columnList).checkarr=res.data.data.map(item=>{
item.value=item.dictKey
item.label=item.dictValue
return item
});
});
},
checkcColumnList(prop,columnList){
for(var a = 0; a < columnList.length; a++){
if(columnList[a].prop===prop){
console.log("1111111111111",columnList[a]);
return columnList[a];
}
}
},
searchHide () {
this.search = !this.search;
},
@ -821,7 +1266,11 @@ export default {
} ,
onLoadOwn (page, params = {}) {
this.loading = true;
getListOwn(page.currentPage, page.pageSize, {stockArticleId : this.$route.query.id}).then(res => {
this.dataMaterial = false;
params ={
stockArticleId : this.$route.query.id
}
getListOwn(page.currentPage, page.pageSize, Object.assign(params, this.queryPage)).then(res => {
console.log("包件明细》》》》》",res.data.data);
const data = res.data.data;
this.page.total = data.total;
@ -832,6 +1281,10 @@ export default {
}else{
i.conditions = '库存品'
}
if(i.materialId == '' || i.materialId == '-1'){
//
this.dataMaterial = true;
}
})
this.loading = false;
this.selectionClear();

17
src/views/distribution/stockup/distributionStockupDetails.vue

@ -659,15 +659,18 @@ export default {
//
async getReservationList(page){
let a =await getDetailReservationOwn(page.currentPage,page.pageSize,{id :this.$route.query.id});
// console.log("......",a.data);
console.log("......",a.data);
const data = a.data.data;
this.data3 = data.records;
this.data3.forEach(i =>{
let b = this.stockupStatusList.find( a => a.dictKey == i.stockupStatus);
if(!!b){
i.stockupStatusName = b.dictValue;
}
})
if(!!this.data3 && this.data3.length > 0){
this.data3.forEach(i =>{
let b = this.stockupStatusList.find( a => a.dictKey == i.stockupStatus);
if(!!b){
i.stockupStatusName = b.dictValue;
}
})
}
this.page3.total = a.data.data.total;
this.loading = false;
this.selectionClear();

10
src/views/distribution/stockup/distributionStockupDiscuss.vue

@ -815,11 +815,11 @@ export default {
// });
getDictionaryBiz('distribution_type').then(res => {
this.distributionType = res.data.data;
this.checkcColumnList("typeServiceName", this.columnList).checkarr = res.data.data.map(item => {
item.value = item.dictKey
item.label = item.dictValue
return item
});
// this.checkcColumnList("typeServiceName", this.columnList).checkarr = res.data.data.map(item => {
// item.value = item.dictKey
// item.label = item.dictValue
// return item
// });
});
getDictionaryBiz('stockup_status').then(res => {
this.stockupStatus = res.data.data;

10
src/views/distribution/stockup/distributionStockupMarket.vue

@ -798,11 +798,11 @@ export default {
this.height = this.setPx(document.body.clientHeight - 340);
getDictionaryBiz('distribution_type').then(res => {
this.distributionType = res.data.data;
this.checkcColumnList("typeServiceName", this.columnList).checkarr = res.data.data.map(item => {
item.value = item.dictKey
item.label = item.dictValue
return item
});
// this.checkcColumnList("typeServiceName", this.columnList).checkarr = res.data.data.map(item => {
// item.value = item.dictKey
// item.label = item.dictValue
// return item
// });
});
getDictionaryBiz('stockup_status').then(res => {
this.stockupStatus = res.data.data;

Loading…
Cancel
Save