diff --git a/src/i18n/lang/en.ts b/src/i18n/lang/en.ts index 002c27c..18cec1b 100644 --- a/src/i18n/lang/en.ts +++ b/src/i18n/lang/en.ts @@ -565,5 +565,8 @@ export default { finQty: 'Scan Qty', confirm: 'Confirm', HeaderText: 'Header Text', + so: 'Sell Order', + rawSo: 'Material So', + spSo: 'Spare So', }, }; diff --git a/src/pages.json b/src/pages.json index 8f5ade7..ef14c5d 100644 --- a/src/pages.json +++ b/src/pages.json @@ -1010,6 +1010,30 @@ "navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一 } }, + { + "path": "pages/raw/so/index", + "style": { + "navigationBarTitleText": "销售订单", + "navigationStyle": "custom", // 隐藏系统导航栏 + "navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一 + } + }, + { + "path": "pages/raw/so/rawSo/index", + "style": { + "navigationBarTitleText": "原材料SO", + "navigationStyle": "custom", // 隐藏系统导航栏 + "navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一 + } + }, + { + "path": "pages/raw/so/spSo/index", + "style": { + "navigationBarTitleText": "备件SO", + "navigationStyle": "custom", // 隐藏系统导航栏 + "navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一 + } + }, { "path": "pages/raw/Semi-finished/Semi-finished-SO/detail", "style": { diff --git a/src/pages/raw/so/index.vue b/src/pages/raw/so/index.vue new file mode 100644 index 0000000..bd67d1c --- /dev/null +++ b/src/pages/raw/so/index.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/src/pages/raw/so/rawSo/config.ts b/src/pages/raw/so/rawSo/config.ts new file mode 100644 index 0000000..dd6369d --- /dev/null +++ b/src/pages/raw/so/rawSo/config.ts @@ -0,0 +1,73 @@ +/* + * @Author: zhou lei + * @Date: 2021-11-11 11:09:57 + * @LastEditTime: 2021-12-14 10:13:18 + * @LastEditors: zhou lei + * @Description: + * @FilePath: /wms_haiwai_app/src/pages/raw/commission/goOut/config.ts + * 联系方式:910592680@qq.com 18669792120 科海达信息技术有限公司 + */ +/** + * 看单明细表格列 + */ +import vm from '@/main'; +export const headers = [ + { + label: vm.$t('message.Pi_OrderNo'), + key: 'order1', + width: 200, + }, + { + label: vm.$t('message.Line'), + key: 'order2', + width: 200, + }, + { + label: vm.$t('message.matcode'), + key: 'productCode', + width: 300, + }, + { + label: vm.$t('message.po_MaterielDes'), + key: 'productDescZh', + width: 430, + }, + { + label: vm.$t('message.product_barCode'), + key: 'barcode', + width: 260, + }, + { + label: vm.$t('message.CommissionedLocation'), + key: 'locCode', + width: 200, + }, + { + label: vm.$t('message.Operation'), + key: 'createdBy', + width: 200, + }, + { + label: vm.$t('message.operatingTime'), + key: 'createdDate', + width: 470, + }, +]; + +export const detailHeader = [ + { + label: vm.$t('message.po_MaterielNo'), + key: 'materialCode', + width: 301, + }, + { + label: vm.$t('message.CommissionedLocation'), + key: 'locCode', + width: 186, + }, + { + label: vm.$t('message.product_Number'), + key: 'qty', + width: 186, + }, +]; diff --git a/src/pages/raw/so/rawSo/detail.vue b/src/pages/raw/so/rawSo/detail.vue new file mode 100644 index 0000000..7651704 --- /dev/null +++ b/src/pages/raw/so/rawSo/detail.vue @@ -0,0 +1,73 @@ + + + diff --git a/src/pages/raw/so/rawSo/index.vue b/src/pages/raw/so/rawSo/index.vue new file mode 100644 index 0000000..013eae6 --- /dev/null +++ b/src/pages/raw/so/rawSo/index.vue @@ -0,0 +1,554 @@ + + + diff --git a/src/pages/raw/so/rawSo/model.ts b/src/pages/raw/so/rawSo/model.ts new file mode 100644 index 0000000..b8a24ba --- /dev/null +++ b/src/pages/raw/so/rawSo/model.ts @@ -0,0 +1,212 @@ +import { Action, getModule, Module, MutationAction, VuexModule } from 'vuex-module-decorators'; +import store from '@/store'; +import http from '@/utils/request'; +import { url } from '@/utils/url'; +import { session } from '@/store/modules/session'; +// import vm from '@/main'; + +class OrderInInfo { + stoAmount?: 0; + stoNo?: string; //STO采购单号 + orderAmount?: string; //单据总数 + Allocated?: string; //已分配 + Unallocated?: string; //未分配 +} + +@Module({ + namespaced: true, + dynamic: true, + store, + name: 'product.outbound.Semi-finished-SO', +}) +export class ReturningModule extends VuexModule { + /** + * 月台列表 + */ + returningTypeList: any[] = []; + detailedList: any; + /** + * 物料列表 + */ + materielList: any[] = []; + locationCodeList: any[] = []; + LocList: any[] = []; + //条码扫描的返回的结果 + oneMaterielDetail: any = {}; + /** + * 订单号查询结果 + */ + orderInInfo: OrderInInfo = new OrderInInfo(); + //记账按钮的code码 + code = ''; + /** + * 委外出库单号查询 + * @param orderNo + */ + @Action + async queryOrder(form: any) { + const result = await http.post(url.material.commission.goOut.queryOrder, { + ...form, + loginName: session.loginName, + factoryCode: session.factoryCode, + }); + const orderInInfo = result.data.records[0] || {}; + return { orderInInfo }; + } + /** + * 库位 + */ + // @MutationAction + // async queryByFactoryCodeAndWorkAreaCode() { + // const list: [] = await http.post(url.material.commission.goOut.queryByFactoryCodeAndWorkAreaCode, { + // factoryCode: session.factoryCode, + // whCode: session.warehouseCode, + // loginName: session.loginName, + // }); + // const locationCodeList = list.map((item: any) => ({ + // label: item.locationCode, + // value: item.locationCode, + // })); + // return { locationCodeList }; + // } + /** + * 获取物料 + * + * @returns + * @memberof ReturningModule + */ + @MutationAction + async outInfo(poNo: string) { + const list: [] = await http.post(url.material.commission.goOut.outInfo, { + factoryCode: session.factoryCode, + poNo: poNo, + loginName: session.loginName, + }); + const locationCodeList = list.map((item: any) => ({ + label: item.locationCode, + value: item.locationCode, + })); + return { locationCodeList }; + } + + /** + * 提交 + */ + @Action + async materialComplete(form: any) { + const res = await http.post(url.material.commission.goOut.materialComplete, { + factoryCode: session.factoryCode, + loginName: session.loginName, + ...form, + }); + console.log(res, '>>>>>res'); + } + + /** + * 扫条码 + */ + @Action + async tluSubmit(list: any[]) { + const obj = { + barcode: list[0].barCode, + loginName: session.loginName, + }; + let oneMaterielDetail: any = {}; + const { data }: any = await http.post(url.outbound.stoOutbound.checkScan, obj); + console.log('shneme a ', data.records); + oneMaterielDetail = data.records[0]; + data.records[0].materialCode = list[0].productCode; + data.records[0].materialDesc = list[0].productDescZh; + console.log('aaaaa', oneMaterielDetail); + return oneMaterielDetail; + } + /** + * 确认按钮 + * @param orderNo + */ + @MutationAction + async confirm(list: any[]) { + const { code, data } = await http.post(url.outbound.stoOutbound.Bookkeeping, list); + console.log('res数据', data, code); + // if (code == '1') { + // uni.showToast({ icon: 'success', title: msg }); + // } else { + // uni.showToast({ icon: 'none', title: msg }); + // } + const materielList: any = []; + return { code, materielList }; + } + //委外出库 关闭订单 + @MutationAction + async closeCode(poNo: any) { + const res: any = await http.post(url.outbound.stoOutbound.close, { + poNo, + loginName: session.loginName, + factoryCode: session.factoryCode, + }); + const code: any = res.code; + return { code }; + } + + //委外出库 初始化获取库位 + // @Action({ commit: 'updateCheckedOrderInInfoListKw' }) + @MutationAction + async queryCodeAndWorkAreaCode(content: any) { + const res: any = await http.post('/wmspda/fg/queryByFactoryCodeAndWorkAreaCode', content); + console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>', res); + const LocList = res; + console.log('LocList', LocList); + return { LocList }; + } + @MutationAction + async queryItemLoc(params: any = {}) { + const res: any = await http.post(url.sortscan.save.queryWlByMat, params); + const LocList = []; + res.forEach((item: any) => { + const arr: any = { + label: item.locationCode, + value: item.locationCode + '(' + item.sendSpot + ')' + '(' + item.amount + ')', + }; + LocList.push(arr); + }); + return { LocList }; + } + @Action + async queryOutsourcing(nxOutCode: any) { + const res = await http.post(url.so.soOutbound.findInfoByDN, { + nxOutCode, + proOutType: 'raw', + loginName: session.loginName, + factoryCode: session.factoryCode, + }); + return res; + } + + @Action + async submitOutsourcing(upload: any) { + const res = await http.post(url.so.soOutbound.confirm, upload); + return res; + } + //查询明细 + @Action({ commit: 'updateCheckedOrderInInfoListKw' }) + async querydetaildlist(content: any) { + const res: any = await http.post('/wmspda/fg/querySfgListInfoByDnNo/russia', content); + console.log('明细》》》》》》》》》', res.list); + this.detailedList = res.data; + return res; + } + ContainerCode: any = ''; + @MutationAction + async searchBarcode(params: any) { + const res: any = await http.post(url.auth.query.barcode, { + factoryCode: session.factoryCode, + loginName: session.loginName, + barcode: params.barcode, + productCode: params.productCode, + }); + const ContainerCode = res.data; + return { ContainerCode }; + } +} + +export default getModule(ReturningModule); diff --git a/src/pages/raw/so/spSo/config.ts b/src/pages/raw/so/spSo/config.ts new file mode 100644 index 0000000..e878c23 --- /dev/null +++ b/src/pages/raw/so/spSo/config.ts @@ -0,0 +1,78 @@ +/* + * @Author: zhou lei + * @Date: 2021-11-11 11:09:57 + * @LastEditTime: 2021-12-14 10:13:18 + * @LastEditors: zhou lei + * @Description: + * @FilePath: /wms_haiwai_app/src/pages/raw/commission/goOut/config.ts + * 联系方式:910592680@qq.com 18669792120 科海达信息技术有限公司 + */ +/** + * 看单明细表格列 + */ +import vm from '@/main'; +export const headers = [ + { + label: vm.$t('message.Pi_OrderNo'), + key: 'order1', + width: 200, + }, + { + label: vm.$t('message.Line'), + key: 'order2', + width: 200, + }, + { + label: vm.$t('message.matcode'), + key: 'productCode', + width: 300, + }, + { + label: vm.$t('message.po_MaterielDes'), + key: 'productDescZh', + width: 430, + }, + { + label: vm.$t('message.product_barCode'), + key: 'barcode', + width: 260, + }, + { + label: vm.$t('message.CommissionedLocation'), + key: 'locCode', + width: 200, + }, + { + label: vm.$t('message.Operation'), + key: 'createdBy', + width: 200, + }, + { + label: vm.$t('message.operatingTime'), + key: 'createdDate', + width: 470, + }, +]; + +export const detailHeader = [ + { + label: vm.$t('message.po_MaterielNo'), + key: 'materialCode', + width: 301, + }, + { + label: vm.$t('message.CommissionedLocation'), + key: 'locCode', + width: 186, + }, + { + label: vm.$t('message.product_Number'), + key: 'qty', + width: 186, + }, + { + label: vm.$t('message.product_barCode'), + key: 'barcode', + width: 300, + }, +]; diff --git a/src/pages/raw/so/spSo/detail.vue b/src/pages/raw/so/spSo/detail.vue new file mode 100644 index 0000000..2c89d99 --- /dev/null +++ b/src/pages/raw/so/spSo/detail.vue @@ -0,0 +1,73 @@ + + + diff --git a/src/pages/raw/so/spSo/index.vue b/src/pages/raw/so/spSo/index.vue new file mode 100644 index 0000000..1ae24b3 --- /dev/null +++ b/src/pages/raw/so/spSo/index.vue @@ -0,0 +1,549 @@ + + + diff --git a/src/pages/raw/so/spSo/model.ts b/src/pages/raw/so/spSo/model.ts new file mode 100644 index 0000000..2d6947a --- /dev/null +++ b/src/pages/raw/so/spSo/model.ts @@ -0,0 +1,212 @@ +import { Action, getModule, Module, MutationAction, VuexModule } from 'vuex-module-decorators'; +import store from '@/store'; +import http from '@/utils/request'; +import { url } from '@/utils/url'; +import { session } from '@/store/modules/session'; +// import vm from '@/main'; + +class OrderInInfo { + stoAmount?: 0; + stoNo?: string; //STO采购单号 + orderAmount?: string; //单据总数 + Allocated?: string; //已分配 + Unallocated?: string; //未分配 +} + +@Module({ + namespaced: true, + dynamic: true, + store, + name: 'product.outbound.Semi-finished-SO', +}) +export class ReturningModule extends VuexModule { + /** + * 月台列表 + */ + returningTypeList: any[] = []; + detailedList: any; + /** + * 物料列表 + */ + materielList: any[] = []; + locationCodeList: any[] = []; + LocList: any[] = []; + //条码扫描的返回的结果 + oneMaterielDetail: any = {}; + /** + * 订单号查询结果 + */ + orderInInfo: OrderInInfo = new OrderInInfo(); + //记账按钮的code码 + code = ''; + /** + * 委外出库单号查询 + * @param orderNo + */ + @Action + async queryOrder(form: any) { + const result = await http.post(url.material.commission.goOut.queryOrder, { + ...form, + loginName: session.loginName, + factoryCode: session.factoryCode, + }); + const orderInInfo = result.data.records[0] || {}; + return { orderInInfo }; + } + /** + * 库位 + */ + // @MutationAction + // async queryByFactoryCodeAndWorkAreaCode() { + // const list: [] = await http.post(url.material.commission.goOut.queryByFactoryCodeAndWorkAreaCode, { + // factoryCode: session.factoryCode, + // whCode: session.warehouseCode, + // loginName: session.loginName, + // }); + // const locationCodeList = list.map((item: any) => ({ + // label: item.locationCode, + // value: item.locationCode, + // })); + // return { locationCodeList }; + // } + /** + * 获取物料 + * + * @returns + * @memberof ReturningModule + */ + @MutationAction + async outInfo(poNo: string) { + const list: [] = await http.post(url.material.commission.goOut.outInfo, { + factoryCode: session.factoryCode, + poNo: poNo, + loginName: session.loginName, + }); + const locationCodeList = list.map((item: any) => ({ + label: item.locationCode, + value: item.locationCode, + })); + return { locationCodeList }; + } + + /** + * 提交 + */ + @Action + async materialComplete(form: any) { + const res = await http.post(url.material.commission.goOut.materialComplete, { + factoryCode: session.factoryCode, + loginName: session.loginName, + ...form, + }); + console.log(res, '>>>>>res'); + } + + /** + * 扫条码 + */ + @Action + async tluSubmit(list: any[]) { + const obj = { + barcode: list[0].barCode, + loginName: session.loginName, + }; + let oneMaterielDetail: any = {}; + const { data }: any = await http.post(url.outbound.stoOutbound.checkScan, obj); + console.log('shneme a ', data.records); + oneMaterielDetail = data.records[0]; + data.records[0].materialCode = list[0].productCode; + data.records[0].materialDesc = list[0].productDescZh; + console.log('aaaaa', oneMaterielDetail); + return oneMaterielDetail; + } + /** + * 确认按钮 + * @param orderNo + */ + @MutationAction + async confirm(list: any[]) { + const { code, data } = await http.post(url.outbound.stoOutbound.Bookkeeping, list); + console.log('res数据', data, code); + // if (code == '1') { + // uni.showToast({ icon: 'success', title: msg }); + // } else { + // uni.showToast({ icon: 'none', title: msg }); + // } + const materielList: any = []; + return { code, materielList }; + } + //委外出库 关闭订单 + @MutationAction + async closeCode(poNo: any) { + const res: any = await http.post(url.outbound.stoOutbound.close, { + poNo, + loginName: session.loginName, + factoryCode: session.factoryCode, + }); + const code: any = res.code; + return { code }; + } + + //委外出库 初始化获取库位 + // @Action({ commit: 'updateCheckedOrderInInfoListKw' }) + @MutationAction + async queryCodeAndWorkAreaCode(content: any) { + const res: any = await http.post('/wmspda/fg/queryByFactoryCodeAndWorkAreaCode', content); + console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>', res); + const LocList = res; + console.log('LocList', LocList); + return { LocList }; + } + @MutationAction + async queryItemLoc(params: any = {}) { + const res: any = await http.post(url.sortscan.save.queryWlByMat, params); + const LocList = []; + res.forEach((item: any) => { + const arr: any = { + label: item.locationCode, + value: item.locationCode + '(' + item.sendSpot + ')' + '(' + item.amount + ')', + }; + LocList.push(arr); + }); + return { LocList }; + } + @Action + async queryOutsourcing(nxOutCode: any) { + const res = await http.post(url.so.soOutbound.findInfoByDN, { + nxOutCode, + proOutType: 'sp', + loginName: session.loginName, + factoryCode: session.factoryCode, + }); + return res; + } + + @Action + async submitOutsourcing(upload: any) { + const res = await http.post(url.so.soOutbound.confirm, upload); + return res; + } + //查询明细 + @Action({ commit: 'updateCheckedOrderInInfoListKw' }) + async querydetaildlist(content: any) { + const res: any = await http.post('/wmspda/fg/querySfgListInfoByDnNo/russia', content); + console.log('明细》》》》》》》》》', res.list); + this.detailedList = res.data; + return res; + } + ContainerCode: any = ''; + @MutationAction + async searchBarcode(params: any) { + const res: any = await http.post(url.auth.query.barcode, { + factoryCode: session.factoryCode, + loginName: session.loginName, + barcode: params.barcode, + productCode: params.productCode, + }); + const ContainerCode = res.data; + return { ContainerCode }; + } +} + +export default getModule(ReturningModule); diff --git a/src/utils/page.ts b/src/utils/page.ts index 3e70b64..42c927b 100644 --- a/src/utils/page.ts +++ b/src/utils/page.ts @@ -230,6 +230,17 @@ export const page = { detail: '/pages/raw/Semi-finished/Semi-finished-rowTransfer/details', }, }, + so: { + index: '/pages/raw/so/index', + spSo: { + index: '/pages/raw/so/spSo/index', + detail: '/pages/raw/so/spSo/detail', + }, + rawSo: { + index: '/pages/raw/so/rawSo/index', + detail: '/pages/raw/so/rawSo/detail', + }, + }, LineSide: { semifinishedTransfer: { index: '/pages/raw/LineSide/semi-finished-Transfer/index', diff --git a/src/utils/url.ts b/src/utils/url.ts index 9008c97..6a50271 100644 --- a/src/utils/url.ts +++ b/src/utils/url.ts @@ -142,6 +142,13 @@ export const url = { enter: '/wmspda/material/orderin/enterPoEub', }, }, + so: { + soOutbound: { + findInfoByDN: '/wmspda/raw/so/findInfoByDN', + confirm: '/wmspda/raw/so/confirm', + }, + soInbound: {}, + }, //出库 outbound: { stoOutbound: {