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

上传最新代码

上级 6a55d7ee
......@@ -69,6 +69,9 @@ export const getEmptyList = (data: any) =>
export const submitBusiness = (data: any) =>
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) =>
request('/wms-system/serialNumber/getBillBySerialNumber', 'GET', data);
......@@ -70,4 +70,9 @@ defineExpose({
align-items: center;
}
}
:deep(.u-mode-center-box) {
border-radius: 16rpx;
}
</style>
\ No newline at end of file
......@@ -27,7 +27,7 @@
<view class="detail-content" v-for="(item, i) in list" :key="i">
<view v-show="item.show">
<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="value">{{ res.value }}</view>
</view>
......@@ -67,10 +67,10 @@
<!-- 保存 -->
<view class="aside-save">
<!-- #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 -->
<!-- #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 -->
</view>
......@@ -93,6 +93,7 @@ import {
getAnalysis,
getRuleSelection,
getDetailList,
billIdGroupSerial,
createBusiness,
submitBusiness,
getEmptyList,
......@@ -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) => {
switch (index) {
case 0:
uni.navigateTo({ url: '/pages/apply/formDataPage?printTemplateId=' + printTemplateId.value });
break;
case 1:
console.log('撤销');
reset()
break;
case 2:
optionsMenu()
......@@ -226,39 +187,52 @@ const stagingState = async () => {
let data = {
formId,
filters: [{
field: "FBillStatus",
field: "FDocumentStatus",
operation: "eq",
value: "1"
}]
};
const { data: billIds } = await billIdGroupSerial(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) {
let promises: any = [];
for (const item of res.data.data) {
for (const item of stagingArr) {
idsBill.value.push(item.data.id)
documentBodyModel.value.forEach((model: string) => {
if (item.data.hasOwnProperty(model)) {
const obj: any = {
show: true,
scanIcon: "arrow-up-fill"
scanIcon: "arrow-up-fill",
serialNumber: item.serialNumber,
id: item.data.id
};
idsBill.value.push(item.id)
documentBodyModel.value.forEach((model: string) => {
if (item.hasOwnProperty(model)) {
let models = item[model].length > 1 ? item[model] : [item[model]];
let models = item.data[model].length > 1 ? item.data[model] : [item.data[model]];
// console.log(models, 'models');
models.forEach((req: any, i: number) => {
const reqModelObj = flattenData([req]);
const dataList = dataListFilter(documentBodyList.value, reqModelObj);
obj.dataList = dataList;
let itemCopy = JSON.parse(JSON.stringify(item))
let itemCopy = JSON.parse(JSON.stringify(item.data))
itemCopy[model] = [req]
promises.push(saveDataAndPushToList(itemCopy, { ...obj }));
});
})
}
});
})
}
await Promise.all(promises);
console.log(saveList.value);
await emptyFilter(formId)
await updateDocmentHeader(stagingArr[0].data.id)
// await emptyFilter(formId)
hLoading();
}
};
......@@ -266,7 +240,6 @@ const stagingState = async () => {
// 保存下推
const modelConfirm = async () => {
if (saveList.value.length === 0) return toast('请先完成扫描')
const formId = pageData.value.permTag
let data = {
formId,
......@@ -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 添加内容列表界面
* @param curFormId 表单标识
......@@ -292,19 +322,19 @@ const initSerialNumberData = async (data: any) => {
return toast('已存在该扫描记录');
const { data: resBill } = await getBillBySerialNumber({ billNo: data.serialNumber, formId: data.curFormId });
let dataList: any = [];
let requestData: any
let obj: any = {
show: true,
scanIcon: 'arrow-up-fill',
serialNumber: data.serialNumber,
serialNumber: data.serialNumber
};
const formId = pageData.value.permTag
if (resBill.data) {
if (resBill.data.data[0].FDocumentStatus != '1') return toast('该单据状态已审核')
requestData = resBill.data.data[0];
idsBill.value.push(requestData.id)
obj.id = requestData.id
if (menuSelection.isMenuSelection && !isBillContentConsistent(requestData)) {
return toast('该单据内容不一致');
}
......@@ -314,24 +344,27 @@ const initSerialNumberData = async (data: any) => {
if (menuSelection.isMenuSelection && !isBillContentConsistent(res.data.data[0])) {
return toast('该单据内容不一致');
}
requestData = res.data.data[0]
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) => {
const has = saveList.value[saveList.value.length - 1].hasOwnProperty(item.model)
if (has) item.options.defaultValue = requestData[item.model]
const has = requestData[0].hasOwnProperty(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) => {
list.value.push(obj); // 展示的数据
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) => {
}
const addBusiness = async (formId: string, list: any, obj: any) => {
let promises: any = []
const batchCreateBusiness = async (data: any) => {
const { data: res } = await createBusiness(data);
idsBill.value.push(res.data.id)
obj.dataList = res.data;
saveDataAndPushToList(res.data, { ...obj })
}
documentBodyModel.value.forEach((model: string) => {
if (list.hasOwnProperty(model)) {
let models = list[model].length > 1 ? list[model] : [list[model]];
models.forEach((req: any) => {
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));
});
list
}
});
await Promise.all(promises);
const { data: res } = await createBusiness(saveData);
idsBill.value.push(res.data.id)
obj.id = res.data.id
promiseAll(res.data, obj)
}
const promiseAll = async (requestData: any, obj: any) => {
let promises: any = []
documentBodyModel.value.forEach((model: string) => {
if (requestData.hasOwnProperty(model)) {
let models = requestData[model].length > 1 ? requestData[model] : [requestData[model]];
let models = requestData[model]
models.forEach((req: any) => {
const reqModelObj = flattenData([req]);
const dataList = dataListFilter(documentBodyList.value, reqModelObj);
obj.dataList = dataList;
let itemCopy = JSON.parse(JSON.stringify(requestData))
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) {
let emptyData = {
formId,
list: saveList.value
}
};
// 合并数量
const { data: empty } = await getEmptyList(emptyData)
list.value = []
let modelObj: any
if (typeof empty.data === 'object') empty.data = [empty.data]
empty.data.map((em: any) => {
let emptyObj = {
const { data: empty } = await getEmptyList(emptyData);
list.value = empty.data.flatMap((em: any) => {
return documentBodyModel.value.flatMap((model: string) => {
if (em.hasOwnProperty(model)) {
return em[model].map((req: any) => {
return {
show: true,
scanIcon: 'arrow-up-fill',
} as any
documentBodyModel.value.map((model: string) => {
if (em.hasOwnProperty(model)) {
modelObj = { ...modelObj, ...flattenData(em[model]) };
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)
list.value.push(emptyObj)
})
console.log(empty, 'empty');
});
// console.log(list.value);
}
}
};
// 初始化数据
const init = async () => {
......@@ -435,10 +448,12 @@ const init = async () => {
}
};
// 删除数据
const closeButton = (index: number) => {
list.value.splice(index, 1)
saveList.value.splice(index, 1)
idsBill.value.splice(index, 1)
uni.removeStorageSync('pageData')
}
const radioConfirm = (upFormId: string) => {
......@@ -452,6 +467,7 @@ const reset = () => {
saveList.value = []
inputValue.value = ''
list.value = []
idsBill.value = []
}
</script>
......@@ -461,6 +477,10 @@ const reset = () => {
display: flex;
justify-content: space-between;
align-items: center;
// position: absolute;
// top: 50px;
// left: 0;
// z-index: 99;
.scan-input {
width: 88%;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论