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.
117 lines
2.6 KiB
TypeScript
117 lines
2.6 KiB
TypeScript
/**
|
|
* 菜单模块
|
|
*/
|
|
import { Module, VuexModule, Mutation, Action, getModule } from 'vuex-module-decorators';
|
|
import store from '@/store';
|
|
import http from '@/utils/request';
|
|
import { url } from '@/utils/url';
|
|
import { session, User } from '@/store/modules/session';
|
|
import { platform } from '@/pages/raw/appointment/checkin/platform';
|
|
|
|
// 看单列表
|
|
export interface Bill {
|
|
warehouseCode?: string;
|
|
warehouseName?: string;
|
|
warehouseType?: string;
|
|
loginName?: string;
|
|
userName?: string;
|
|
factoryCode?: string;
|
|
factoryName?: string;
|
|
sapFactoryCode?: string;
|
|
locationCode?: string;
|
|
workareaCode?: string;
|
|
hideKdOrderNo?: any;
|
|
documentNo: string;
|
|
carNo: string;
|
|
actualCarNo?: string;
|
|
appointmentTime: string;
|
|
arriveTime?: string;
|
|
leaveTime?: string;
|
|
appointmentPlatform: string;
|
|
actualPlatform?: string;
|
|
sequenceNumber?: any;
|
|
jobTimeout?: any;
|
|
jobTimeoutReason?: any;
|
|
sendSpot: string;
|
|
}
|
|
|
|
@Module({
|
|
dynamic: true,
|
|
store,
|
|
namespaced: true,
|
|
name: 'checkin',
|
|
})
|
|
class CheckInService extends VuexModule {
|
|
// 看单列表
|
|
bills: Array<Bill> = [];
|
|
|
|
// 看单列表 getter
|
|
get getBills() {
|
|
return this.bills.map((bill, index) => ({
|
|
...bill,
|
|
index: index + 1,
|
|
}));
|
|
}
|
|
|
|
// 获取看单
|
|
@Action
|
|
async getBillDetail({
|
|
hideKdOrderNo,
|
|
factoryCode,
|
|
loginName,
|
|
}: {
|
|
hideKdOrderNo: string;
|
|
factoryCode: User['factoryCode'];
|
|
loginName: User['loginName'];
|
|
}): Promise<Bill> {
|
|
const result: any = await http.post(url.appointmentreg.kd.query, {
|
|
hideKdOrderNo,
|
|
factoryCode,
|
|
loginName,
|
|
});
|
|
return result.list[0];
|
|
}
|
|
|
|
// 提交看单列表
|
|
@Action
|
|
async submitBills() {
|
|
const bills: any = this.bills.map((bill) => {
|
|
const pf = platform.getPlatforms.find((p) => p.sapCode === bill.appointmentPlatform);
|
|
return {
|
|
documentNo: bill.documentNo,
|
|
carNo: bill.carNo,
|
|
actualPlatform: pf ? pf.code : bill.appointmentPlatform,
|
|
sendSpot: bill.sendSpot,
|
|
appointmentTime: bill.appointmentTime,
|
|
factoryCode: session.factoryCode,
|
|
loginName: session.loginName,
|
|
};
|
|
});
|
|
|
|
await http.post(url.appointmentreg.save, bills);
|
|
this.clear();
|
|
}
|
|
|
|
// 增加看单
|
|
@Mutation
|
|
add(bill: Bill) {
|
|
this.bills = this.bills.concat([bill]);
|
|
return 'a';
|
|
}
|
|
|
|
// 设置看单项
|
|
@Mutation
|
|
splice({ index, item }: { index: number; item?: Bill }) {
|
|
if (item) this.bills.splice(index, 1, item);
|
|
else this.bills.splice(index, 1);
|
|
}
|
|
|
|
// 清空
|
|
@Mutation
|
|
clear() {
|
|
this.bills = [];
|
|
}
|
|
}
|
|
|
|
export const checkin = getModule(CheckInService);
|