You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

292 lines
7.1 KiB
TypeScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import { getModule, Module, Mutation, Action, MutationAction, VuexModule } from 'vuex-module-decorators';
import store from '@/store';
import http from '@/utils/request';
import { url } from '@/utils/url';
import { cloneDeep } from 'lodash/fp';
import vm from '@/main';
@Module({
namespaced: true,
dynamic: true,
store,
name: 'raw.handover.aggregating',
})
export class AggregatingModule extends VuexModule {
/**
* 查询列表
*/
proOrderList = [];
param: any;
orderOutIdListParams: any;
/**
* 查询结果列表
*/
proOrderResultList = [];
isFormChange: any;
/**
* 查询结果汇总列表
*/
aggregateList: any[] = [];
/**
* 查询结果按单列表
*/
orderList: any[] = [];
/**
* 查询结果辅料列表
*/
accessoryList: any[] = [];
/**
* 库存地点列表
*/
locationList = [];
/**
* 是否全选
*/
get isCheckedAll() {
return !this.proOrderList.filter((_: any) => !_.checked).length;
}
/**
* 是否有选择项
*/
get hasChecked() {
return this.checkedProOrderList.length > 0;
}
/**
* 获取选中的查询列表
*/
get checkedProOrderList() {
return this.proOrderList.filter((_: any) => _.checked);
}
/**
* 清空查询结果列表
*/
@Mutation
clearProOrderResultList() {
this.proOrderResultList = [];
}
/**
* 查询列表
*/
@Mutation
clearProOrderList() {
this.proOrderList = [];
}
/**
* 全选/取消全选汇总列表
* @param checked
*/
@Mutation
checkAllAggregateList(checked: boolean) {
this.aggregateList.map((item: any) => {
Object.assign(item, { checked, hvAmount: (checked && item.totalMoAmount - item.totalHvAmount) || 0 });
});
}
/**
* 全选/取消按单列表
* @param checked
*/
@Mutation
checkAllOrderList(checked: boolean) {
this.orderList.map((item: any) => {
Object.assign(item, { checked, hvAmount: (checked && item.totalMoAmount - item.totalHvAmount) || 0 });
});
}
/**
* 列表提交-汇总交接
* @param params
*/
@Action
async uploadAggregateList(params: any) {
return http.post(url.sumscan.u.hzlist, params);
}
/**
* 设置汇总列表项本次交接数量
* @param params
*/
@Mutation
setAggregateListItemHvAmount({ index, hvAmount }: { index: number; hvAmount: number }) {
this.aggregateList[index].hvAmount = hvAmount;
// this.aggregateList.splice(index, 1, newItem);
// if (this.aggregateList[index].checked) {
// this.aggregateList[index].hvAmount = this.aggregateList[index].totalMoAmount - this.aggregateList[index].totalHvAmount;
// } else {
// this.aggregateList[index].hvAmount = 0;
// }
}
/**
* 设置按单列表项本次交接数量
* @param params
*/
@Mutation
setOrderListItemHvAmount({ index, hvAmount }: { index: number; hvAmount: number }) {
// this.orderList.splice(index, 1, newItem);
this.orderList[index].hvAmount = hvAmount;
}
// setOrderListItemHvAmount() {
// this.orderList
// .filter((_: any) => _.checked)
// .forEach((item: any) => {
// item.hvAmount = item.totalMoAmount - item.totalHvAmount;
// // if (params.hvAmount) {
// // item.currentAmount = params.hvAmount;
// // }
// });
// }
/**
* 设置辅料列表项本次交接数量
* @param params
*/
@Mutation
setAccessoryListItemHvAmount({ index, hvAmount }: { index: number; hvAmount: number }) {
const original = this.accessoryList[index];
const newItem = { ...original, hvAmount };
this.accessoryList.splice(index, 1, newItem);
}
/**
* 汇总列表是否全选
*/
get isAggregateCheckedAll() {
return !this.aggregateList.filter((_: any) => !_.checked).length;
}
/**
* 按单列表是否全选
*/
get isOrderCheckedAll() {
return !this.orderList.filter((_: any) => !_.checked).length;
}
/**
* 全选/取消全选查询列表
* @param checked
*/
@Mutation
checkAllProOrderList(checked: boolean) {
this.proOrderList = this.proOrderList.map((item: any) => ({
...item,
checked,
}));
}
/**
* 查询看单号
* @param params
*/
@MutationAction
async queryProOrder(params: any) {
const { list: proOrderList }: any = await http.post(url.sumscan.query.orderno, params);
//const proOrderList = values.map((v: string) => ({ prdOrder, amount: v, materialCode: v, materialDesc: v }));
//const proOrderList = values;
//console.log(">>>>>?????proOrderList",proOrderList);
proOrderList.forEach((_: any) => (_.checked = true));
if (!proOrderList.length) {
// uni.showToast({
// icon: 'none',
// title: 'No Data Found',
// });
vm.customToast(vm.$t('message.Pi_NoDataFound') as any);
}
return { proOrderList };
}
/**
* 查询结果列表
* @param params
*/
@MutationAction
async queryProOrderResult(params: any) {
const { list: proOrderResultList }: any = await http.post(url.sumscan.query.ordoutlist, params);
return { proOrderResultList };
}
/**
* 查询结果-汇总列表
* @param params
*/
@MutationAction
async queryAggregateList(params: any) {
const { list: aggregateList }: any = await http.post(url.sumscan.query.hzlist, params);
if (!aggregateList.length) {
// uni.showToast({
// icon: 'none',
// title: 'No Data Found',
// });
vm.customToast(vm.$t('message.Pi_NoDataFound') as any);
return { aggregateList };
}
console.log('aggregateList', aggregateList);
return { aggregateList };
}
/**
* 查询结果-按单列表
* @param params
*/
@MutationAction
async queryOrderList(params: any) {
const { queryParams, proOrderResultList } = params;
await http.post(url.sumscan.lock.list, queryParams);
const orderList = cloneDeep<any>(proOrderResultList);
orderList.map((item: any) => {
Object.assign(item, { checked: false });
});
return { orderList };
}
/**
* 查询结果-辅料列表
* @param params
*/
@MutationAction
async queryAccessoryList(params: any) {
const { list: accessoryList }: any = await http.post(url.sumscan.query.fllist, params);
if (!accessoryList.length) {
// uni.showToast({
// icon: 'none',
// title: 'No Data Found',
// });
vm.customToast(vm.$t('message.Pi_NoDataFound') as any);
}
return { accessoryList };
}
/**
* 列表提交-按单交接
* @param params
*/
@Action
async uploadOrderList(params: any) {
await http.post(url.sumscan.u.order, params);
uni.showToast({
icon: 'success',
title: 'success',
});
}
/**
* 列表提交-辅料交接
* @param params
*/
@Action
async uploadAccessoryList(params: any) {
return http.post(url.sumscan.u.fllist, params);
}
@Action({ commit: 'updateCheckedOrderInInfoListKw' })
async queryByFactoryCodeAndWorkAreaCode(content: any) {
const res = await http.post('/wmspda/fg/queryByFactoryCodeAndWorkAreaCode', content);
return res;
}
}
export default getModule(AggregatingModule);