提交 c1ce6195 authored 作者: 刘旭's avatar 刘旭

上传最新代码

上级 6a55d7ee
...@@ -69,6 +69,9 @@ export const getEmptyList = (data: any) => ...@@ -69,6 +69,9 @@ export const getEmptyList = (data: any) =>
export const submitBusiness = (data: any) => export const submitBusiness = (data: any) =>
request('/lowcodeplatform-system/center/business/submit', 'POST', data); request('/lowcodeplatform-system/center/business/submit', 'POST', data);
export const billIdGroupSerial = (data: any) =>
request('wms-system/serialNumber/billIdGroupSerial', 'POST', data);
// 判断是否已创建 // 判断是否已创建
export const getBillBySerialNumber = (data: any) => export const getBillBySerialNumber = (data: any) =>
request('/wms-system/serialNumber/getBillBySerialNumber', 'GET', data); request('/wms-system/serialNumber/getBillBySerialNumber', 'GET', data);
...@@ -70,4 +70,9 @@ defineExpose({ ...@@ -70,4 +70,9 @@ defineExpose({
align-items: center; align-items: center;
} }
} }
:deep(.u-mode-center-box) {
border-radius: 16rpx;
}
</style> </style>
\ No newline at end of file
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<view class="detail-content" v-for="(item, i) in list" :key="i"> <view class="detail-content" v-for="(item, i) in list" :key="i">
<view v-show="item.show"> <view v-show="item.show">
<block v-for="res in item.dataList" :key="res.label"> <block v-for="res in item.dataList" :key="res.label">
<view class="list"> <view class="list" @tap="updateDocmentHeader(item.id)">
<view class="label">{{ res.label }}</view> <view class="label">{{ res.label }}</view>
<view class="value">{{ res.value }}</view> <view class="value">{{ res.value }}</view>
</view> </view>
...@@ -67,10 +67,10 @@ ...@@ -67,10 +67,10 @@
<!-- 保存 --> <!-- 保存 -->
<view class="aside-save"> <view class="aside-save">
<!-- #ifdef APP-PLUS --> <!-- #ifdef APP-PLUS -->
<u-icon name="checkmark-circle" size="22" style="padding: 14rpx" @tap="modelData.show = true" /> <u-icon name="checkmark-circle" size="22" style="padding: 14rpx" @tap="save" />
<!-- #endif --> <!-- #endif -->
<!-- #ifdef H5 --> <!-- #ifdef H5 -->
<u-icon name="checkmark-circle" size="44" style="padding: 14rpx" color="#2979ff" @tap="modelData.show = true" /> <u-icon name="checkmark-circle" size="44" style="padding: 14rpx" color="#2979ff" @tap="save" />
<!-- #endif --> <!-- #endif -->
</view> </view>
...@@ -93,6 +93,7 @@ import { ...@@ -93,6 +93,7 @@ import {
getAnalysis, getAnalysis,
getRuleSelection, getRuleSelection,
getDetailList, getDetailList,
billIdGroupSerial,
createBusiness, createBusiness,
submitBusiness, submitBusiness,
getEmptyList, getEmptyList,
...@@ -148,53 +149,13 @@ onShow(() => { ...@@ -148,53 +149,13 @@ onShow(() => {
}) })
// 扫码执行逻辑
const handleInput = async () => {
try {
let e: string = '004,0002,2023-07-14T00:00:00,A6526,,A6525,10,'
sLoading()
let barcodeList = uni.getStorageSync('barcodeList')
// 获取条码信息
if (!barcodeList) {
barcodeList = []
const { data: res } = await getAnalysis({ billNo: e.split(',')[0] })
barcodeList.push({ list: res.data, number: e.split(',')[0] })
uni.setStorageSync('barcodeList', JSON.stringify(barcodeList));
} else {
barcodeList = JSON.parse(barcodeList)
if (!barcodeList.some((item: any) => item.number == e.split(',')[0])) {
const { data: res } = await getAnalysis({ billNo: e.split(',')[0] })
barcodeList.push({ list: res.data, number: e.split(',')[0] })
uni.setStorageSync('barcodeList', JSON.stringify(barcodeList));
}
}
// console.log(barcodeList, 'barcodeList');
let serialNumber = ''
barcodeList.map((item: any) => {
// 取序列号的数据
if (item.number == e.split(',')[0]) {
const index = item.list.filter((filt: any) => filt.field == 'FSerialID')[0]?.seq
if (index) serialNumber = e.split(',')[index]
}
})
nextTick(() => {
inputValue.value = e;
});
const curFormId = pageData.value.permTag
let data = { serialNumber, curFormId }
initSerialNumberData(data)
} catch (e) {
//TODO handle the exception
} finally { hLoading() }
};
const sheetClick = (index: number) => { const sheetClick = (index: number) => {
switch (index) { switch (index) {
case 0: case 0:
uni.navigateTo({ url: '/pages/apply/formDataPage?printTemplateId=' + printTemplateId.value }); uni.navigateTo({ url: '/pages/apply/formDataPage?printTemplateId=' + printTemplateId.value });
break; break;
case 1: case 1:
console.log('撤销'); reset()
break; break;
case 2: case 2:
optionsMenu() optionsMenu()
...@@ -226,39 +187,52 @@ const stagingState = async () => { ...@@ -226,39 +187,52 @@ const stagingState = async () => {
let data = { let data = {
formId, formId,
filters: [{ filters: [{
field: "FBillStatus", field: "FDocumentStatus",
operation: "eq", operation: "eq",
value: "1" value: "1"
}] }]
}; };
const { data: billIds } = await billIdGroupSerial(data);
const { data: res } = await getDetailList(data); const { data: res } = await getDetailList(data);
let stagingArr: any = []
for (const id in billIds.data) {
let serial = res.data.data.filter((item: any) => id == item.id)
if (serial.length) {
stagingArr.push({
serialNumber: billIds.data[id][0],
data: serial[0]
})
}
}
// console.log(stagingArr);
if (res.code === 200) { if (res.code === 200) {
let promises: any = []; let promises: any = [];
for (const item of res.data.data) { for (const item of stagingArr) {
const obj: any = { idsBill.value.push(item.data.id)
show: true,
scanIcon: "arrow-up-fill"
};
idsBill.value.push(item.id)
documentBodyModel.value.forEach((model: string) => { documentBodyModel.value.forEach((model: string) => {
if (item.hasOwnProperty(model)) { if (item.data.hasOwnProperty(model)) {
let models = item[model].length > 1 ? item[model] : [item[model]]; const obj: any = {
show: true,
scanIcon: "arrow-up-fill",
serialNumber: item.serialNumber,
id: item.data.id
};
let models = item.data[model].length > 1 ? item.data[model] : [item.data[model]];
// console.log(models, 'models'); // console.log(models, 'models');
models.forEach((req: any, i: number) => { models.forEach((req: any, i: number) => {
const reqModelObj = flattenData([req]); const reqModelObj = flattenData([req]);
const dataList = dataListFilter(documentBodyList.value, reqModelObj); const dataList = dataListFilter(documentBodyList.value, reqModelObj);
obj.dataList = dataList; obj.dataList = dataList;
let itemCopy = JSON.parse(JSON.stringify(item)) let itemCopy = JSON.parse(JSON.stringify(item.data))
itemCopy[model] = [req] itemCopy[model] = [req]
promises.push(saveDataAndPushToList(itemCopy, { ...obj })); promises.push(saveDataAndPushToList(itemCopy, { ...obj }));
}); })
} }
}); })
} }
await Promise.all(promises); await Promise.all(promises);
console.log(saveList.value); await updateDocmentHeader(stagingArr[0].data.id)
await emptyFilter(formId) // await emptyFilter(formId)
hLoading(); hLoading();
} }
}; };
...@@ -266,7 +240,6 @@ const stagingState = async () => { ...@@ -266,7 +240,6 @@ const stagingState = async () => {
// 保存下推 // 保存下推
const modelConfirm = async () => { const modelConfirm = async () => {
if (saveList.value.length === 0) return toast('请先完成扫描')
const formId = pageData.value.permTag const formId = pageData.value.permTag
let data = { let data = {
formId, formId,
...@@ -282,6 +255,63 @@ const modelConfirm = async () => { ...@@ -282,6 +255,63 @@ const modelConfirm = async () => {
} }
}; };
const save = () => {
if (saveList.value.length === 0) return toast('请先完成扫描')
modelData.value.show = true
}
let num = 0
// 扫码执行逻辑
const handleInput = async () => {
try {
console.log(saveList.value);
let e: string
if (!num) {
e = '004,1000,2023-07-14T00:00:00,A6533,,A6532,30,'
num++
} else {
e = '004,0002,2023-07-14T00:00:00,A6531,,A6529,10,'
}
sLoading()
let barcodeList = uni.getStorageSync('barcodeList')
// 获取条码信息
if (!barcodeList) {
barcodeList = []
const { data: res } = await getAnalysis({ billNo: e.split(',')[0] })
barcodeList.push({ list: res.data, number: e.split(',')[0] })
uni.setStorageSync('barcodeList', JSON.stringify(barcodeList));
} else {
barcodeList = JSON.parse(barcodeList)
if (!barcodeList.some((item: any) => item.number == e.split(',')[0])) {
const { data: res } = await getAnalysis({ billNo: e.split(',')[0] })
barcodeList.push({ list: res.data, number: e.split(',')[0] })
uni.setStorageSync('barcodeList', JSON.stringify(barcodeList));
}
}
// console.log(barcodeList, 'barcodeList');
let serialNumber = ''
barcodeList.map((item: any) => {
// 取序列号的数据
if (item.number == e.split(',')[0]) {
const index = item.list.filter((filt: any) => filt.field == 'FSerialID')[0]?.seq
if (index) serialNumber = e.split(',')[index]
}
})
nextTick(() => {
inputValue.value = e;
});
const curFormId = pageData.value.permTag
let data = { serialNumber, curFormId }
// console.log(data);
initSerialNumberData(data)
} catch (e) {
//TODO handle the exception
} finally { hLoading() }
};
/** /**
* @brief 添加内容列表界面 * @brief 添加内容列表界面
* @param curFormId 表单标识 * @param curFormId 表单标识
...@@ -292,19 +322,19 @@ const initSerialNumberData = async (data: any) => { ...@@ -292,19 +322,19 @@ const initSerialNumberData = async (data: any) => {
return toast('已存在该扫描记录'); return toast('已存在该扫描记录');
const { data: resBill } = await getBillBySerialNumber({ billNo: data.serialNumber, formId: data.curFormId }); const { data: resBill } = await getBillBySerialNumber({ billNo: data.serialNumber, formId: data.curFormId });
let dataList: any = [];
let requestData: any let requestData: any
let obj: any = { let obj: any = {
show: true, show: true,
scanIcon: 'arrow-up-fill', scanIcon: 'arrow-up-fill',
serialNumber: data.serialNumber, serialNumber: data.serialNumber
}; };
const formId = pageData.value.permTag const formId = pageData.value.permTag
if (resBill.data) { if (resBill.data) {
if (resBill.data.data[0].FDocumentStatus != '1') return toast('该单据状态已审核')
requestData = resBill.data.data[0]; requestData = resBill.data.data[0];
idsBill.value.push(requestData.id) idsBill.value.push(requestData.id)
obj.id = requestData.id
if (menuSelection.isMenuSelection && !isBillContentConsistent(requestData)) { if (menuSelection.isMenuSelection && !isBillContentConsistent(requestData)) {
return toast('该单据内容不一致'); return toast('该单据内容不一致');
} }
...@@ -314,24 +344,27 @@ const initSerialNumberData = async (data: any) => { ...@@ -314,24 +344,27 @@ const initSerialNumberData = async (data: any) => {
if (menuSelection.isMenuSelection && !isBillContentConsistent(res.data.data[0])) { if (menuSelection.isMenuSelection && !isBillContentConsistent(res.data.data[0])) {
return toast('该单据内容不一致'); return toast('该单据内容不一致');
} }
requestData = res.data.data[0]
addBusiness(formId, res.data.data[0], obj) addBusiness(formId, res.data.data[0], obj)
} }
updateDocmentHeader(requestData.id)
};
// 更新单据头数据 // 更新单据头数据
setTimeout(() => { const updateDocmentHeader = (id: number) => {
let requestData = saveList.value.filter((item: any) => item.id === id)
if (requestData.length) {
metadataList.value.map((item: any) => { metadataList.value.map((item: any) => {
const has = saveList.value[saveList.value.length - 1].hasOwnProperty(item.model) const has = requestData[0].hasOwnProperty(item.model)
if (has) item.options.defaultValue = requestData[item.model] if (has) item.options.defaultValue = requestData[0][item.model]
}) })
}
if (dataList.length) emptyFilter(formId, data); }
}, 0)
};
const saveDataAndPushToList = async (data: any, obj: any) => { const saveDataAndPushToList = async (data: any, obj: any) => {
list.value.push(obj); // 展示的数据 list.value.push(obj); // 展示的数据
saveList.value.push(data); // 后端合并需要传的数据 saveList.value.push(data); // 后端合并需要传的数据
// console.log(saveList.value, 'saveList.value'); // console.log(saveList.value, 'saveList.value', list.value);
} }
// 判断是否为选单数据,保证单据头数据相同 // 判断是否为选单数据,保证单据头数据相同
...@@ -344,82 +377,62 @@ const isBillContentConsistent = (requestData: any) => { ...@@ -344,82 +377,62 @@ const isBillContentConsistent = (requestData: any) => {
} }
const addBusiness = async (formId: string, list: any, obj: any) => { const addBusiness = async (formId: string, list: any, obj: any) => {
let promises: any = [] let saveData = {
const batchCreateBusiness = async (data: any) => { formId,
const { data: res } = await createBusiness(data); list
idsBill.value.push(res.data.id)
obj.dataList = res.data;
saveDataAndPushToList(res.data, { ...obj })
} }
documentBodyModel.value.forEach((model: string) => { const { data: res } = await createBusiness(saveData);
if (list.hasOwnProperty(model)) { idsBill.value.push(res.data.id)
let models = list[model].length > 1 ? list[model] : [list[model]]; obj.id = res.data.id
models.forEach((req: any) => { promiseAll(res.data, obj)
const reqModelObj = flattenData([req]);
const dataList = dataListFilter(documentBodyList.value, reqModelObj);
obj.dataList = dataList;
let itemCopy = JSON.parse(JSON.stringify(list))
itemCopy[model] = req
let saveData = {
formId,
list: itemCopy,
}
console.log(saveData);
promises.push(batchCreateBusiness(saveData));
});
}
});
await Promise.all(promises);
} }
const promiseAll = async (requestData: any, obj: any) => { const promiseAll = async (requestData: any, obj: any) => {
let promises: any = []
documentBodyModel.value.forEach((model: string) => { documentBodyModel.value.forEach((model: string) => {
if (requestData.hasOwnProperty(model)) { if (requestData.hasOwnProperty(model)) {
let models = requestData[model].length > 1 ? requestData[model] : [requestData[model]]; let models = requestData[model]
models.forEach((req: any) => { models.forEach((req: any) => {
const reqModelObj = flattenData([req]); const reqModelObj = flattenData([req]);
const dataList = dataListFilter(documentBodyList.value, reqModelObj); const dataList = dataListFilter(documentBodyList.value, reqModelObj);
obj.dataList = dataList; obj.dataList = dataList;
let itemCopy = JSON.parse(JSON.stringify(requestData)) let itemCopy = JSON.parse(JSON.stringify(requestData))
itemCopy[model] = [req] itemCopy[model] = [req]
promises.push(saveDataAndPushToList(itemCopy, { ...obj })); saveDataAndPushToList(itemCopy, { ...obj })
}); });
} }
}); });
await Promise.all(promises); emptyFilter(pageData.value.permTag)
} }
// 合并展示数量接口 // 合并展示数量接口
const emptyFilter = async (formId: string, data?: any) => { const emptyFilter = async (formId: string) => {
if (saveList.value.length > 1) { if (saveList.value.length > 1) {
let emptyData = { let emptyData = {
formId, formId,
list: saveList.value list: saveList.value
} };
// 合并数量 // 合并数量
const { data: empty } = await getEmptyList(emptyData) const { data: empty } = await getEmptyList(emptyData);
list.value = [] list.value = empty.data.flatMap((em: any) => {
let modelObj: any return documentBodyModel.value.flatMap((model: string) => {
if (typeof empty.data === 'object') empty.data = [empty.data]
empty.data.map((em: any) => {
let emptyObj = {
show: true,
scanIcon: 'arrow-up-fill',
} as any
documentBodyModel.value.map((model: string) => {
if (em.hasOwnProperty(model)) { if (em.hasOwnProperty(model)) {
modelObj = { ...modelObj, ...flattenData(em[model]) }; return em[model].map((req: any) => {
return {
show: true,
scanIcon: 'arrow-up-fill',
dataList: dataListFilter(documentBodyList.value, flattenData([req])),
id: JSON.parse(JSON.stringify(req.parent_id))
};
});
} else {
return [];
} }
}); });
// console.log(modelObj, 'modelObj'); });
emptyObj.dataList = dataListFilter(documentBodyList.value, modelObj) // console.log(list.value);
list.value.push(emptyObj)
})
console.log(empty, 'empty');
} }
} };
// 初始化数据 // 初始化数据
const init = async () => { const init = async () => {
...@@ -435,10 +448,12 @@ const init = async () => { ...@@ -435,10 +448,12 @@ const init = async () => {
} }
}; };
// 删除数据
const closeButton = (index: number) => { const closeButton = (index: number) => {
list.value.splice(index, 1) list.value.splice(index, 1)
saveList.value.splice(index, 1) saveList.value.splice(index, 1)
idsBill.value.splice(index, 1) idsBill.value.splice(index, 1)
uni.removeStorageSync('pageData')
} }
const radioConfirm = (upFormId: string) => { const radioConfirm = (upFormId: string) => {
...@@ -452,6 +467,7 @@ const reset = () => { ...@@ -452,6 +467,7 @@ const reset = () => {
saveList.value = [] saveList.value = []
inputValue.value = '' inputValue.value = ''
list.value = [] list.value = []
idsBill.value = []
} }
</script> </script>
...@@ -461,6 +477,10 @@ const reset = () => { ...@@ -461,6 +477,10 @@ const reset = () => {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
// position: absolute;
// top: 50px;
// left: 0;
// z-index: 99;
.scan-input { .scan-input {
width: 88%; width: 88%;
......
...@@ -46,7 +46,7 @@ export default defineConfig({ ...@@ -46,7 +46,7 @@ export default defineConfig({
proxy: { proxy: {
'/lowcodeplatform-system': { '/lowcodeplatform-system': {
target: 'http://192.168.1.156', target: 'http://192.168.1.156',
// target: 'http://192.168.1.27', // target: 'http://192.168.1.27',
}, },
'/wms-system': { '/wms-system': {
target: 'http://192.168.1.156', target: 'http://192.168.1.156',
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论