Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
wms-app
Project
Project
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
Graph
比较
统计图
议题
0
议题
0
列表
看板
标记
Milestones
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
刘旭
wms-app
Commits
8f478f98
提交
8f478f98
authored
7月 13, 2023
作者:
刘旭
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新代码
上级
5eae5d40
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
19 个修改的文件
包含
493 行增加
和
292 行删除
+493
-292
extensions.json
.vscode/extensions.json
+6
-0
settings.json
.vscode/settings.json
+3
-0
apply.ts
src/api/apply.ts
+28
-3
FormListItem.vue
src/pages/apply/components/FormListItem.vue
+129
-89
demo.ts
src/pages/apply/components/demo.ts
+0
-166
formDataPage.vue
src/pages/apply/formDataPage.vue
+5
-5
formDetail.vue
src/pages/apply/formDetail.vue
+0
-0
index.vue
src/pages/apply/index.vue
+1
-1
optionsMenu.vue
src/pages/apply/optionsMenu.vue
+5
-2
filters.ts
src/pages/apply/unils/filters.ts
+230
-0
index.vue
src/pages/blueTooth/index.vue
+0
-13
index.vue
src/pages/home/index.vue
+4
-4
menuSelection.ts
src/store/modules/menuSelection.ts
+22
-0
useStore.ts
src/store/useStore.ts
+1
-1
index.ts
src/store/util/index.ts
+44
-0
index.ts
src/tspl/index.ts
+1
-1
config.ts
src/utils/config.ts
+3
-3
util.ts
src/utils/util.ts
+7
-0
vite.config.ts
vite.config.ts
+4
-4
没有找到文件。
.vscode/extensions.json
0 → 100644
浏览文件 @
8f478f98
{
"recommendations"
:
[
"cschlosser.doxdocgen"
]
}
\ No newline at end of file
.vscode/settings.json
0 → 100644
浏览文件 @
8f478f98
{
}
\ No newline at end of file
src/api/apply.ts
浏览文件 @
8f478f98
...
...
@@ -14,6 +14,10 @@ export const getMetadataList = () => request('/lowcodeplatform-system/center/met
export
const
getMetadata
=
(
formId
:
string
)
=>
request
(
'/lowcodeplatform-system/center/metadata/detail'
,
'GET'
,
{
formId
});
// 创建表单数据
export
const
createBusiness
=
(
data
:
any
)
=>
request
(
'/lowcodeplatform-system/center/business/create'
,
'POST'
,
data
);
export
const
getUserParameter
=
(
formId
:
string
)
=>
request
(
'/lowcodeplatform-system/center/business/getUserParameter'
,
'GET'
,
{
formId
});
...
...
@@ -29,12 +33,12 @@ export const getPrintData = (data: any) =>
request
(
'/wms-system/labelRule/print/serial'
,
'POST'
,
data
);
// 获取打印信息
export
const
createBusiness
=
(
data
:
any
)
=>
export
const
createB
atchB
usiness
=
(
data
:
any
)
=>
request
(
'/lowcodeplatform-system/center/business/createBatch'
,
'POST'
,
data
);
// 获取序列化
export
const
getB
yBillNo
=
(
data
:
any
)
=>
request
(
'/wms-system/serialNumber/getB
yBillNo
'
,
'GET'
,
data
);
export
const
getB
illSerialNumber
=
(
data
:
any
)
=>
request
(
'/wms-system/serialNumber/getB
illSerialNumber
'
,
'GET'
,
data
);
// 获取条码规则
export
const
getAnalysis
=
(
data
:
any
)
=>
...
...
@@ -47,3 +51,24 @@ export const getRuleSelection = (lowFormId: string) =>
// 获取规则选单
export
const
changeDataById
=
(
data
:
any
)
=>
request
(
'/lowcodeplatform-system/center/bill/transform/change/databyid'
,
'POST'
,
data
);
// 获取明细范围
export
const
getDetailList
=
(
data
:
any
)
=>
request
(
'/lowcodeplatform-system/center/business/detailList'
,
'POST'
,
data
);
// 获取合并数量操作
export
const
getEmptyList
=
(
data
:
any
)
=>
request
(
'/lowcodeplatform-system/center/business/empty'
,
'POST'
,
data
);
/**
* @brief 提交下推操作保存为已审核
* @param idsBill 保存状态的id
* @param operationKey audit 自动审核-》已审核 submit 提交-》变成审核中
* @return
*/
export
const
submitBusiness
=
(
data
:
any
)
=>
request
(
'/lowcodeplatform-system/center/business/submit'
,
'POST'
,
data
);
// 判断是否已创建
export
const
getBillBySerialNumber
=
(
data
:
any
)
=>
request
(
'/wms-system/serialNumber/getBillBySerialNumber'
,
'GET'
,
data
);
src/pages/apply/components/FormListItem.vue
浏览文件 @
8f478f98
<
template
>
<!--
<button
@
tap=
"PrintText"
>
测试
</button>
-->
<view
class=
"card"
v-for=
"(res, r) in businessList"
:key=
"r"
>
<block
v-for=
"(item, index) of res"
:key=
"index"
>
<view
style=
"padding: 10rpx 0; display: flex; flex-direction: row;"
>
<view
style=
"margin-right: 5rpx; width: 200rpx;"
>
{{
item
.
label
}}
</view>
<view
style=
"flex: 1; overflow: hidden;text-overflow: ellipsis;white-space: nowrap;"
>
{{
item
.
value
}}
</view>
</view>
</block>
<u-divider
v-show=
"is_WMS_Receive"
color=
"#fa3534"
>
<u-button
type=
"primary"
size=
"mini"
@
tap=
"handlePrint(res)"
>
打印
</u-button>
</u-divider>
</view>
<!--
<button
@
tap=
"PrintText"
>
测试
</button>
-->
<view
class=
"card"
v-for=
"(res, r) in businessList"
:key=
"r"
>
<block
v-for=
"(item, index) of res"
:key=
"index"
>
<view
style=
"padding: 10rpx 0; display: flex; flex-direction: row;"
>
<view
style=
"margin-right: 5rpx; width: 200rpx;"
>
{{
item
.
label
}}
</view>
<view
style=
"flex: 1; overflow: hidden;text-overflow: ellipsis;white-space: nowrap;"
>
{{
item
.
value
}}
</view>
</view>
</block>
<u-divider
v-show=
"is_WMS_Receive"
color=
"#fa3534"
>
<u-button
type=
"primary"
size=
"mini"
@
tap=
"handlePrint(res)"
>
打印
</u-button>
</u-divider>
</view>
</
template
>
<
script
setup
lang=
"ts"
>
import
{
computed
,
reactive
}
from
'vue'
import
{
computed
,
reactive
}
from
'vue'
;
import
{
useBlueTooth
}
from
'@/store/modules/bluetooth'
;
import
{
getPrintData
,
getByBillNo
,
getAnalysis
,
getMetadata
,
getBusinessList
}
from
'@/api/apply'
import
{
getPrintData
,
getBillSerialNumber
,
getAnalysis
,
getMetadata
,
getBusinessList
,
}
from
'@/api/apply'
;
import
template
from
'./template'
;
import
{
generateInstruct
}
from
'@/tspl'
;
const
blueTooth
=
useBlueTooth
()
const
blueTooth
=
useBlueTooth
()
;
const
props
=
defineProps
({
businessList
:
{
type
:
Array
}
as
any
})
businessList
:
{
type
:
Array
,
}
as
any
,
printTemplateId
:
Number
,
});
const
state
:
any
=
reactive
({
looptime
:
0
,
currentTime
:
1
,
lastData
:
0
,
oneTimeData
:
0
,
canvasWidth
:
1050
,
canvasHeight
:
750
,
buffSize
:
[],
printNum
:
[],
printerNum
:
1
,
currentPrint
:
1
,
isReceiptSend
:
false
,
isLabelSend
:
false
})
looptime
:
0
,
currentTime
:
1
,
lastData
:
0
,
oneTimeData
:
0
,
canvasWidth
:
1050
,
canvasHeight
:
750
,
buffSize
:
[],
printNum
:
[],
printerNum
:
1
,
currentPrint
:
1
,
isReceiptSend
:
false
,
isLabelSend
:
false
,
})
;
const
is_WMS_Receive
=
computed
(()
=>
{
return
[
'WMS_Receive'
,
'BD_Reserve'
].
indexOf
(
JSON
.
parse
(
uni
.
getStorageSync
(
'pageData'
)).
permTag
)
!==
-
1
?
true
:
false
})
// 是否收料通知单
return
[
'WMS_Receive'
,
'BD_Reserve'
].
indexOf
(
JSON
.
parse
(
uni
.
getStorageSync
(
'pageData'
)).
permTag
)
!==
-
1
?
true
:
false
;
});
// 是否收料通知单
const
handlePrint
=
async
(
row
:
any
)
=>
{
const
billNo
=
row
.
filter
((
item
:
any
)
=>
item
.
label
==
"单据编码"
||
item
.
label
==
"编码"
)[
0
].
value
const
formId
=
JSON
.
parse
(
uni
.
getStorageSync
(
'pageData'
)).
permTag
let
metaParams
=
formId
==
'WMS_Receive'
?
'WMS_LableRule'
:
'BD_ReserveRule'
const
{
data
:
metaList
}
=
await
getMetadata
(
metaParams
)
console
.
log
(
metaList
,
'metaList'
);
let
printData
=
[]
as
any
[]
if
(
formId
==
'WMS_Receive'
)
{
const
{
data
:
serialList
}
=
await
getByBillNo
({
billNo
,
formId
})
console
.
log
(
serialList
);
if
(
serialList
.
data
.
length
===
0
)
return
uni
.
showToast
({
title
:
'该编码下无序列号'
,
icon
:
'none'
})
const
{
data
:
printList
}
=
await
getPrintData
(
serialList
.
data
)
const
{
data
:
analysisList
}:
any
=
await
getAnalysis
({
billNo
:
printList
.
data
[
0
].
FBarCode
.
split
(
','
)[
0
]
})
console
.
log
(
printList
,
analysisList
,
'printList'
);
// 整合打印模板与后台返回的打印数据
const
integrateData
=
(
printTemplate
:
any
,
printData
:
any
)
=>
{
console
.
log
(
printTemplate
,
printData
);
printTemplate
.
printElements
.
map
((
element
:
any
)
=>
{
printData
.
map
((
print
:
any
)
=>
{
if
(
element
.
options
.
field
===
print
.
field
)
{
element
.
options
.
testData
=
print
.
printVal
;
element
.
options
.
title
=
print
.
name
;
}
if
(
element
.
options
.
textType
===
'qrcode'
)
element
.
options
.
testData
=
print
.
FBarCode
;
});
});
return
printTemplate
;
};
printList
.
data
.
map
((
item
:
any
)
=>
{
let
obj
=
{}
as
any
analysisList
.
data
.
map
((
res
:
any
,
r
:
number
)
=>
{
let
arr
=
item
.
FBarCode
.
split
(
','
)
if
(
arr
)
{
let
newArr
=
arr
.
slice
(
1
,
arr
.
length
-
1
)
obj
[
'FBarCode'
]
=
item
.
FBarCode
obj
[
res
.
name
]
=
newArr
[
r
]
}
})
printData
.
push
(
obj
)
})
}
else
{
const
{
data
:
businessList
}
=
await
getBusinessList
({
formId
})
console
.
log
(
businessList
,
row
);
const
handlePrint
=
async
(
row
:
any
)
=>
{
const
billNo
=
row
.
filter
((
item
:
any
)
=>
item
.
label
==
'单据编码'
||
item
.
label
==
'编码'
)[
0
]
.
value
;
const
formId
=
JSON
.
parse
(
uni
.
getStorageSync
(
'pageData'
)).
permTag
;
let
printTemplate
;
// let metaParams = formId == 'WMS_Receive' ? 'WMS_LableRule' : 'BD_ReserveRule'
// const { data: metaList } = await getMetadata(metaParams)
// console.log(metaList, 'metaList');
const
{
data
:
printList
}
=
await
getBusinessList
({
formId
:
'PrintTemplate'
});
row
.
map
((
item
:
any
)
=>
{
businessList
.
data
.
fieldList
.
map
((
filed
:
any
)
=>
{
if
(
item
.
label
==
filed
.
fieldName
)
{
console
.
log
(
item
.
label
,
filed
.
fieldName
);
if
(
item
.
label
==
'编码'
)
item
.
type
=
'qrcode'
else
item
.
type
=
'text'
}
})
})
printData
=
row
}
console
.
log
(
JSON
.
parse
(
metaList
.
data
.
formJson
),
printData
);
// const deviceId = blueTooth.BLEInformation.deviceId
// if (!deviceId) {
// uni.navigateTo({ url: '/pages/blueTooth/index' })
// }
// generateInstruct(template.panels[0], blueTooth)
}
if
(
props
.
printTemplateId
)
{
const
templateJson
=
printList
.
data
.
dataList
.
find
(
(
item
:
any
)
=>
item
.
id
==
props
.
printTemplateId
).
templateJson
;
printTemplate
=
JSON
.
parse
(
templateJson
).
panels
[
0
];
}
else
return
uni
.
showToast
({
title
:
'请先在后台设置打印模板'
,
mask
:
true
,
});
let
printData
;
if
(
formId
==
'WMS_Receive'
)
{
const
{
data
:
serialList
}
=
await
getBillSerialNumber
({
billNo
,
formId
});
console
.
log
(
serialList
);
if
(
serialList
.
data
.
length
===
0
)
return
uni
.
showToast
({
title
:
'该编码下无序列号'
,
icon
:
'none'
,
});
const
{
data
:
printList
}
=
await
getPrintData
(
serialList
.
data
);
const
{
data
:
analysisList
}:
any
=
await
getAnalysis
({
billNo
:
printList
.
data
[
0
].
FBarCode
.
split
(
','
)[
0
],
});
console
.
log
(
printList
,
analysisList
,
'printList'
);
printList
.
data
.
map
((
item
:
any
)
=>
{
analysisList
.
data
.
map
((
res
:
any
,
r
:
number
)
=>
{
let
arr
=
item
.
FBarCode
.
split
(
','
);
if
(
arr
)
{
let
newArr
=
arr
.
slice
(
1
,
arr
.
length
-
1
);
res
.
FBarCode
=
item
.
FBarCode
;
res
.
printVal
=
newArr
[
r
];
}
});
});
printData
=
analysisList
.
data
;
console
.
log
(
printData
,
'analysisList.data'
);
}
else
{
const
{
data
:
businessList
}
=
await
getBusinessList
({
formId
});
console
.
log
(
businessList
,
row
);
row
.
map
((
item
:
any
)
=>
{
businessList
.
data
.
fieldList
.
map
((
filed
:
any
)
=>
{
if
(
item
.
label
==
filed
.
fieldName
)
{
console
.
log
(
item
.
label
,
filed
.
fieldName
);
if
(
item
.
label
==
'编码'
)
item
.
type
=
'qrcode'
;
else
item
.
type
=
'text'
;
}
});
});
// printData = row
}
const
deviceId
=
blueTooth
.
BLEInformation
.
deviceId
;
if
(
!
deviceId
)
{
uni
.
navigateTo
({
url
:
'/pages/blueTooth/index'
});
}
generateInstruct
(
integrateData
(
printTemplate
,
printData
),
blueTooth
);
};
</
script
>
<
style
lang=
"scss"
scoped
>
.card.box-list
{
display
:
flex
;
flex-direction
:
row
;
display
:
flex
;
flex-direction
:
row
;
}
:deep
(
.u-checkbox__label
)
{
display
:
none
;
display
:
none
;
}
</
style
>
src/pages/apply/components/demo.ts
deleted
100644 → 0
浏览文件 @
5eae5d40
export
const
data
=
{
"config"
:
{
"size"
:
"default"
,
"hideRequiredAsterisk"
:
false
,
"labelWidth"
:
100
,
"labelPosition"
:
"right"
,
"dbTableComment"
:
"收料标签"
,
"dbTableName"
:
"T_WMS_LableRule"
,
"formId"
:
"WMS_LableRule"
,
"formTypes"
:
"labelPrint"
,
"subSystem"
:
"wms-system"
,
"microFrontEnd"
:
false
,
"supportSync"
:
false
,
"saveVisibility"
:
""
,
"savePlugin"
:
""
,
"pushVisibility"
:
""
,
"pushPlugin"
:
""
,
"printVisibility"
:
""
,
"printPlugin"
:
""
,
"dependencyForm"
:
"WMS_Receive"
,
"x"
:
60
,
"y"
:
42
},
"list"
:
[
{
"label"
:
"条码"
,
"type"
:
"barcode"
,
"options"
:
{
"defaultValue"
:
"123456789"
,
"visibility"
:
[
"list_visible"
,
"form_visible"
],
"x"
:
"150"
,
"y"
:
"25"
},
"key"
:
"7a14224c207a47698fa0a8bd24a2a895"
,
"model"
:
"FSerialId"
,
"rules"
:
[],
"dbFieldName"
:
"FSerialId"
,
"dbFieldComment"
:
"条码"
,
"dbTableName"
:
"T_WMS_LableRule"
},
{
"label"
:
"栅格布局"
,
"type"
:
"grid"
,
"columns"
:
[
{
"span"
:
12
,
"list"
:
[
{
"label"
:
"物料编码"
,
"type"
:
"text"
,
"options"
:
{
"defaultValue"
:
"ZXCVBNM"
,
"visibility"
:
[
"list_visible"
,
"form_visible"
],
"x"
:
"20"
,
"y"
:
"160"
},
"key"
:
"ec2d553e50884d0ca10d0efb9b6c4593"
,
"model"
:
"FMaterialId"
,
"rules"
:
[],
"dbFieldName"
:
"FMaterialId"
,
"dbFieldComment"
:
"物料编码"
,
"dbTableName"
:
"T_WMS_LableRule"
},
{
"label"
:
"物料名称"
,
"type"
:
"text"
,
"options"
:
{
"defaultValue"
:
"锂电池"
,
"visibility"
:
[
"list_visible"
,
"form_visible"
],
"x"
:
"20"
,
"y"
:
"200"
},
"key"
:
"1cd2df65b64d46dcbac6ae8f4316a730"
,
"model"
:
"FMaterialName"
,
"rules"
:
[],
"dbFieldName"
:
"FMaterialName"
,
"dbFieldComment"
:
"物料名称"
,
"dbTableName"
:
"T_WMS_LableRule"
},
{
"label"
:
"批号"
,
"type"
:
"text"
,
"options"
:
{
"defaultValue"
:
"1008611"
,
"visibility"
:
[
"list_visible"
,
"form_visible"
],
"x"
:
"20"
,
"y"
:
"240"
},
"key"
:
"a0247174622b4935b36232232ef129c5"
,
"model"
:
"FLot"
,
"rules"
:
[],
"dbFieldName"
:
"FLot"
,
"dbFieldComment"
:
"批号"
,
"dbTableName"
:
"T_WMS_LableRule"
},
{
"label"
:
"数量"
,
"type"
:
"text"
,
"options"
:
{
"defaultValue"
:
"10000"
,
"visibility"
:
[
"list_visible"
,
"form_visible"
],
"x"
:
"20"
,
"y"
:
"280"
},
"key"
:
"9dd73ddb99f3449f8be4cdadddc24fad"
,
"model"
:
"FQty"
,
"rules"
:
[],
"dbFieldName"
:
"FQty"
,
"dbFieldComment"
:
"数量"
,
"dbTableName"
:
"T_WMS_LableRule"
}
]
},
{
"span"
:
12
,
"list"
:
[
{
"label"
:
"二维码"
,
"type"
:
"qrcode"
,
"options"
:
{
"defaultValue"
:
"ZXCVBNM,,,,123456"
,
"visibility"
:
[
"list_visible"
,
"form_visible"
],
"x"
:
"340"
,
"y"
:
"160"
},
"key"
:
"3d2c4d94491c4f269b93064f7362125b"
,
"model"
:
"FDimensionalCode"
,
"rules"
:
[],
"dbFieldName"
:
"FDimensionalCode"
,
"dbFieldComment"
:
"二维码"
,
"dbTableName"
:
"T_WMS_LableRule"
}
]
}
],
"options"
:
{
"gutter"
:
0
,
"justify"
:
"start"
,
"align"
:
"top"
},
"key"
:
"dae5e3e88230400d8d253b04239cb4ca"
,
"model"
:
"grid_dae5e3e88230400d8d253b04239cb4ca"
,
"rules"
:
[],
"dbTableName"
:
"T_WMS_LableRule"
}
]
}
\ No newline at end of file
src/pages/apply/formDataPage.vue
浏览文件 @
8f478f98
<
template
>
<headers
:title=
"title"
back-icon-name=
"nav-back"
background=
"#3cbafd"
/>
<form-list-item
ref=
"formListRef"
:business-list=
"businessList"
/>
<headers
:title=
"title"
back-icon-name=
"nav-back"
background=
"#3cbafd"
/>
<form-list-item
ref=
"formListRef"
:business-list=
"businessList"
:printTemplateId=
"printTemplateId"
/>
</
template
>
<
script
setup
lang=
'ts'
>
import
{
ref
}
from
'vue'
import
{
onLoad
,
onShow
}
from
'@dcloudio/uni-app'
;
import
{
getBusinessList
}
from
'@/api/apply'
import
{
useFormData
}
from
'@/store/modules/formData'
;
import
{
sLoading
,
hLoading
}
from
'@/utils/util'
import
headers
from
'@/components/header/index.vue'
import
FormListItem
from
'./components/FormListItem.vue'
;
const
title
=
ref
(
''
)
const
store
=
useFormData
()
const
pageData
=
ref
()
const
formListRef
=
ref
()
const
businessList
=
ref
([]
as
any
[])
const
printTemplateId
=
ref
()
onLoad
(
async
()
=>
{
onLoad
(
async
(
options
:
any
)
=>
{
printTemplateId
.
value
=
options
.
printTemplateId
const
{
subSystem
,
permTag
:
formId
}
=
JSON
.
parse
(
uni
.
getStorageSync
(
'pageData'
))
const
{
data
:
res
}
=
await
getBusinessList
({
formId
,
subSystem
,
mobile
:
true
})
sLoading
()
...
...
src/pages/apply/formDetail.vue
浏览文件 @
8f478f98
差异被折叠。
点击展开。
src/pages/apply/index.vue
浏览文件 @
8f478f98
<
template
>
<headers
title=
'WMS工作台'
background=
"#3cbafd"
/>
<headers
title=
'WMS工作台'
background=
"#3cbafd"
/>
<block
v-for=
"res in menuList"
:key=
"res.path"
>
<view
class=
"card"
v-show=
"res.children?.length"
>
<h4
class=
"card-text"
>
{{
res
.
title
}}
</h4>
...
...
src/pages/apply/optionsMenu.vue
浏览文件 @
8f478f98
...
...
@@ -23,6 +23,7 @@ import { ref, reactive } from 'vue'
import
{
getBusinessList
,
changeDataById
}
from
'@/api/apply'
;
import
{
onLoad
}
from
'@dcloudio/uni-app'
;
import
{
sLoading
,
hLoading
}
from
'@/utils/util'
import
{
useMenuSelection
}
from
'@/store/modules/menuSelection'
;
import
headers
from
'@/components/header/index.vue'
const
listQuery
=
reactive
({
...
...
@@ -35,6 +36,7 @@ const listQuery = reactive({
total
:
0
,
})
const
menuSelection
=
useMenuSelection
()
const
fieldList
=
ref
()
const
dataList
=
ref
()
const
optionsMenuId
=
ref
()
...
...
@@ -50,9 +52,10 @@ const optionsMenu = async (row: any) => {
const
{
data
:
res
}
=
await
changeDataById
(
data
)
console
.
log
(
res
);
if
(
res
.
code
===
200
)
{
menuSelection
.
setMenuSelection
(
true
)
menuSelection
.
setMenuSelectionData
(
res
.
data
.
data
[
0
])
uni
.
navigateBack
()
}
}
}
...
...
@@ -94,7 +97,7 @@ const handleLoadData = (data: any) => {
onLoad
((
option
:
any
)
=>
{
const
list
=
JSON
.
parse
(
decodeURIComponent
(
option
.
list
))
console
.
log
(
list
);
//
console.log(list);
optionsMenuId
.
value
=
list
.
id
upFormId
.
value
=
list
.
upFormId
init
(
list
.
upFormId
)
...
...
src/pages/apply/unils/filters.ts
0 → 100644
浏览文件 @
8f478f98
/**
* @brief 解析 单据头与单据体数据(扁平化处理)
* @param list[]
* @return { headerList , bodyList }
*/
export
const
documentFilter
=
(
list
:
any
)
=>
{
const
headerList
:
any
[]
=
[];
// 单据头数据
const
bodyList
:
any
[]
=
[];
// 单据体数据
const
bodyModel
:
any
[]
=
[]
const
recursiveFilter
=
(
item
:
any
)
=>
{
if
(
item
.
columns
)
{
item
.
columns
[
0
].
list
.
forEach
((
res
:
any
)
=>
{
bodyList
.
push
(
res
);
});
}
if
(
item
.
detailColumns
)
{
item
.
detailColumns
[
0
].
list
.
forEach
((
res
:
any
)
=>
{
if
(
res
.
type
===
'table'
)
{
recursiveFilter
(
res
);
}
else
if
(
res
.
type
===
'grid'
)
{
res
.
columns
.
forEach
((
col
:
any
)
=>
{
col
.
list
.
forEach
((
cols
:
any
)
=>
{
bodyList
.
push
(
cols
);
});
});
}
else
if
(
res
.
type
!==
'menu_bar'
)
{
bodyList
.
push
(
res
);
}
});
}
bodyList
.
push
(
item
);
};
list
.
forEach
((
item
:
any
)
=>
{
if
(
item
.
type
===
'table'
)
{
bodyModel
.
push
(
item
.
model
)
recursiveFilter
(
item
);
}
else
if
(
item
.
type
===
'grid'
)
item
.
columns
.
forEach
((
col
:
any
)
=>
{
col
.
list
.
forEach
((
res
:
any
)
=>
{
headerList
.
push
(
res
);
});
});
else
if
(
item
.
type
!==
'menu_bar'
)
headerList
.
push
(
item
);
});
return
{
headerList
,
bodyList
,
bodyModel
}
};
/**
* @brief 获取移动端表单可见的值
* @param list[]
* @return { [mobileList] }
*/
export
const
filterList
=
(
list
:
any
[])
=>
{
let
mobileList
=
[]
as
any
[];
const
recursiveFilter
=
(
item
:
any
)
=>
{
if
(
item
.
columns
)
item
.
columns
[
0
].
list
.
map
((
res
:
any
)
=>
{
if
(
res
.
options
.
visibility
&&
res
.
options
.
visibility
.
indexOf
(
'mobile_form_visible'
)
!==
-
1
)
mobileList
=
[...
mobileList
,
res
];
});
if
(
item
.
detailColumns
)
item
.
detailColumns
[
0
].
list
.
forEach
((
res
:
any
)
=>
{
recursiveFilter
(
res
);
});
if
(
item
.
options
.
visibility
&&
item
.
options
.
visibility
.
indexOf
(
'mobile_form_visible'
)
!==
-
1
)
mobileList
=
[...
mobileList
,
item
];
};
list
.
forEach
(
item
=>
recursiveFilter
(
item
));
return
mobileList
;
};
/**
* @brief 获取过滤表单的是否存在的值
* @param list[]
* @param FilterConditions 过滤条件 字符串类型
* @return { list }
*/
export
const
filterSpecified
=
(
list
:
any
[],
FilterConditions
:
string
)
=>
{
return
list
.
filter
((
item
:
any
)
=>
eval
(
FilterConditions
))
}
export
const
baseDataFilter
=
(
list
:
any
[],
baseList
:
any
[])
=>
{
// console.log(list, baseList);
let
mobileList
=
[]
as
any
[];
let
dataList
=
[]
as
any
[];
const
recursiveFilter
=
(
item
:
any
)
=>
{
if
(
item
.
columns
)
item
.
columns
[
0
].
list
.
map
((
res
:
any
)
=>
{
if
(
res
.
type
==
'basic_data'
||
res
.
type
==
'basic_data_edit'
&&
res
.
options
.
remoteFunc
)
mobileList
=
[...
mobileList
,
res
];
});
if
(
item
.
detailColumns
)
item
.
detailColumns
[
0
].
list
.
forEach
((
res
:
any
)
=>
{
recursiveFilter
(
res
);
});
if
(
item
.
type
==
'basic_data'
||
item
.
type
==
'basic_data_edit'
&&
item
.
options
.
remoteFunc
)
mobileList
=
[...
mobileList
,
item
];
};
list
.
forEach
(
item
=>
recursiveFilter
(
item
));
// console.log(mobileList, 'mobileList');
console
.
log
(
list
,
baseList
);
for
(
const
k
in
baseList
)
{
mobileList
.
map
((
item
:
any
)
=>
{
if
(
item
.
options
.
remoteFunc
===
k
)
{
let
obj
=
{}
as
any
const
label
=
item
.
options
.
props
.
label
const
value
=
item
.
options
.
props
.
value
if
(
baseList
[
k
].
length
&&
baseList
[
k
][
0
][
label
])
obj
[
'label'
]
=
baseList
[
k
][
0
][
label
]
if
(
baseList
[
k
].
length
&&
baseList
[
k
][
0
][
value
])
obj
[
'value'
]
=
baseList
[
k
][
0
][
value
]
if
(
obj
)
dataList
.
push
(
obj
)
}
})
}
return
dataList
}
/**
* @brief 单据体model数据扁平化
* @param data[] 单据体model数据
* @param flattenedData {}
* @return { flattenedData }
*/
export
const
flattenData
=
(
data
:
any
[])
=>
{
let
flattenedData
:
any
=
{};
const
flattenObject
=
(
obj
:
any
)
=>
{
const
flattenedObj
:
any
=
{};
for
(
let
key
in
obj
)
{
if
(
typeof
obj
[
key
]
===
'object'
)
{
const
nestedObj
=
flattenObject
(
obj
[
key
]);
for
(
let
nestedKey
in
nestedObj
)
{
// flattenedObj[key + '.' + nestedKey] = nestedObj[nestedKey];
flattenedObj
[
nestedKey
]
=
nestedObj
[
nestedKey
];
}
}
else
{
flattenedObj
[
key
]
=
obj
[
key
];
}
}
return
flattenedObj
;
};
for
(
let
item
of
data
)
{
flattenedData
=
{
...
flattenedData
,
...
flattenObject
(
item
)
}
// flattenedData.push(flattenObject(item));
}
return
flattenedData
;
};
export
const
dataListFilter
=
(
list
:
any
[],
obj
:
any
)
=>
{
let
dataList
=
[]
as
any
[]
list
.
map
((
item
:
any
)
=>
{
let
dataObj
=
{}
as
any
for
(
const
key
in
obj
)
{
if
(
item
.
model
===
key
)
{
dataObj
[
'label'
]
=
item
.
label
+
':'
dataObj
[
'value'
]
=
obj
[
key
]
}
}
if
(
JSON
.
stringify
(
dataObj
)
===
'{}'
)
{
dataObj
[
'label'
]
=
item
.
label
+
':'
dataObj
[
'value'
]
=
''
}
dataList
.
push
(
dataObj
)
})
return
dataList
}
export
const
mergeList
=
(
list
:
any
[])
=>
{
const
{
subSystem
,
permTag
:
formId
}
=
JSON
.
parse
(
uni
.
getStorageSync
(
'pageData'
));
const
data
=
{
formId
,
subSystem
,
list
:
[]
as
any
}
for
(
const
item
of
list
)
{
let
isAdded
=
false
;
// 如果列表为空,则添加数据
if
(
data
.
list
.
length
===
0
)
{
data
.
list
.
push
(
item
);
continue
;
}
for
(
const
res
of
data
.
list
)
{
// 查找相同供应商ID的元素
if
(
res
.
FSupplyId
===
item
.
FSupplyId
)
{
for
(
const
wms
of
res
.
WMS_InStockEntry
)
{
// 查找相同物料ID和批次号的元素
if
(
item
.
WMS_InStockEntry
[
0
].
FLot
===
wms
.
FLot
&&
item
.
WMS_InStockEntry
[
0
].
FMaterialId
===
wms
.
FMaterialId
)
{
wms
.
WMS_InStockSERIAL
.
push
(
item
.
WMS_InStockEntry
[
0
].
WMS_InStockSERIAL
[
0
]);
isAdded
=
true
;
break
;
}
}
// 如果没有找到相同物料ID和批次号的元素,则在其中新增一条数据
if
(
!
isAdded
)
{
res
.
WMS_InStockEntry
.
push
(
item
.
WMS_InStockEntry
[
0
]);
isAdded
=
true
;
}
break
;
}
}
// 如果列表中没有相同供应商ID的元素,则在其中新增一条数据
if
(
!
isAdded
)
{
data
.
list
.
push
(
item
);
}
}
return
data
;
}
\ No newline at end of file
src/pages/blueTooth/index.vue
浏览文件 @
8f478f98
...
...
@@ -26,24 +26,11 @@
</template>
<
script
setup
lang=
'ts'
>
import
{
ref
,
computed
}
from
'vue'
import
{
useBlueTooths
}
from
'@/tspl/blueTooth'
;
import
headers
from
'@/components/header/index.vue'
const
{
blueToothList
,
startSearch
,
chooseBluetooth
,
stopBluetoothDeviceDiscovery
}
=
useBlueTooths
()
// rssi范围
// const rssiRange = computed(() => {
// let rssiArr = [] as number[]
// demo.map((item: any) => {
// rssiArr.push(item.RSSI)
// })
// let maxNumber = Math.max.apply(null, rssiArr);
// let minNumber = Math.min.apply(null, rssiArr);
// console.log(rssiArr, maxNumber, minNumber);
// })
const
clickCell
=
(
deviceId
:
string
)
=>
{
chooseBluetooth
(
deviceId
)
}
...
...
src/pages/home/index.vue
浏览文件 @
8f478f98
...
...
@@ -19,15 +19,15 @@ import headers from '@/components/header/index.vue'
const
list
=
[{
image
:
'https://
cdn.uviewui.com/uview/swiper/1.jpg
'
,
image
:
'https://
img2.baidu.com/it/u=3313021461,2750855646&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500
'
,
title
:
'昨夜星辰昨夜风,画楼西畔桂堂东'
},
{
image
:
'https://
cdn.uviewui.com/uview/swiper/2.jpg
'
,
title
:
'
身无彩凤双飞翼,心有灵犀一点通
'
image
:
'https://
img0.baidu.com/it/u=613475666,1531838114&fm=253&fmt=auto&app=120&f=JPEG?w=642&h=500
'
,
title
:
'
出入库管理系统与wms仓库管理系统的联系,区别|物流
'
},
{
image
:
'https://
cdn.uviewui.com/uview/swiper/3.jpg
'
,
image
:
'https://
img0.baidu.com/it/u=1239061214,527236417&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=286
'
,
title
:
'谁念西风独自凉,萧萧黄叶闭疏窗,沉思往事立残阳'
}]
const
menuList
=
ref
()
...
...
src/store/modules/menuSelection.ts
0 → 100644
浏览文件 @
8f478f98
import
{
defineStore
}
from
"pinia"
;
export
const
useMenuSelection
=
defineStore
({
id
:
'menuSelection'
,
state
:
()
=>
({
isMenuSelection
:
false
,
// 是否选单
menuSelectionData
:
{}
// 选单选中的数据
}),
getters
:
{
menuSelectionDataGet
:
(
state
)
=>
state
.
menuSelectionData
},
actions
:
{
// 设置选单的数据
setMenuSelectionData
(
menuSelectionData
:
any
)
{
this
.
menuSelectionData
=
menuSelectionData
},
setMenuSelection
(
isMenuSelection
:
boolean
)
{
this
.
isMenuSelection
=
isMenuSelection
}
}
})
\ No newline at end of file
src/store/useStore.ts
浏览文件 @
8f478f98
...
...
@@ -7,7 +7,7 @@ export const useGlobalStore = defineStore({
state
()
{
return
{
token
:
''
,
statusBarHeight
:
0
statusBarHeight
:
0
,
}
},
getters
:
{
...
...
src/store/util/index.ts
浏览文件 @
8f478f98
// 解析 单据头与单据体数据
export
const
documentFilter
=
(
list
:
any
)
=>
{
const
headerList
:
any
[]
=
[];
// 单据头数据
const
bodyList
:
any
[]
=
[];
// 单据体数据
const
recursiveFilter
=
(
item
:
any
)
=>
{
if
(
item
.
columns
)
{
item
.
columns
[
0
].
list
.
forEach
((
res
:
any
)
=>
{
bodyList
.
push
(
res
);
});
}
if
(
item
.
detailColumns
)
{
item
.
detailColumns
[
0
].
list
.
forEach
((
res
:
any
)
=>
{
if
(
res
.
type
===
'table'
)
{
recursiveFilter
(
res
);
}
else
if
(
res
.
type
===
'grid'
)
{
res
.
columns
.
forEach
((
col
:
any
)
=>
{
col
.
list
.
forEach
((
cols
:
any
)
=>
{
bodyList
.
push
(
cols
);
});
});
}
else
if
(
res
.
type
!==
'menu_bar'
)
{
bodyList
.
push
(
res
);
}
});
}
bodyList
.
push
(
item
);
};
list
.
forEach
((
item
:
any
)
=>
{
if
(
item
.
type
===
'table'
)
recursiveFilter
(
item
);
else
if
(
item
.
type
===
'grid'
)
item
.
columns
.
forEach
((
col
:
any
)
=>
{
col
.
list
.
forEach
((
res
:
any
)
=>
{
headerList
.
push
(
res
);
});
});
else
if
(
item
.
type
!==
'menu_bar'
)
headerList
.
push
(
item
);
});
console
.
log
(
headerList
,
bodyList
);
return
{
headerList
,
bodyList
}
};
\ No newline at end of file
src/tspl/index.ts
浏览文件 @
8f478f98
...
...
@@ -85,7 +85,7 @@ export const generateInstruct = (panels: any, blueTooth: any) => {
command
.
setText
(
left
,
top
,
'TSS24.BF2'
,
1
,
1
,
`
${
hideTitle
?
''
:
title
||
''
}${
!
hideTitle
&&
field
?
':'
:
''
}${
testData
||
''
}
`
)
break
;
case
'qrcode'
:
command
.
setQR
(
left
,
top
,
setLevel
(
qrCodeLevel
),
7
,
'A'
,
testData
)
command
.
setQR
(
left
,
top
,
setLevel
(
qrCodeLevel
),
4
,
'A'
,
testData
)
break
;
case
'barcode'
:
command
.
setBarCode
(
left
,
top
,
'128'
,
height
,
`
${
hideTitle
?
0
:
1
}
`
,
2
,
2
,
testData
);
...
...
src/utils/config.ts
浏览文件 @
8f478f98
const
CONFIG
:
any
=
{
// 开发环境配置
development
:
{
assetsPath
:
'http://192.168.1.
83
'
,
// 静态资源路径
baseUrl
:
'http://192.168.1.
83
'
,
// 后台接口请求地址
assetsPath
:
'http://192.168.1.
156
'
,
// 静态资源路径
baseUrl
:
'http://192.168.1.
156
'
,
// 后台接口请求地址
// baseUrl: 'http://192.168.0.8', // 后台接口请求地址
hostUrl
:
'http://192.168.1.
83
'
,
// H5地址(前端运行地址)
hostUrl
:
'http://192.168.1.
156
'
,
// H5地址(前端运行地址)
websocketUrl
:
''
,
// websocket服务端地址
},
// 生产环境配置
...
...
src/utils/util.ts
浏览文件 @
8f478f98
/**
* @brief 提示框
* @param zconfirm('是否清除数据', (result: boolean) => {if (result) { 确认 } else { 取消 } })
* @return
*/
export
const
zconfirm
=
(
msg
:
string
,
callBackFun
?:
any
)
=>
{
uni
.
showModal
({
content
:
msg
,
...
...
@@ -10,6 +15,7 @@ export const zconfirm = (msg: string, callBackFun?: any) => {
},
})
}
export
const
zalert
=
(
msg
:
string
,
callBackFun
?:
any
)
=>
{
uni
.
showModal
({
title
:
'提示'
,
...
...
@@ -22,6 +28,7 @@ export const zalert = (msg: string, callBackFun?: any) => {
},
})
}
export
const
toast
=
(
msg
:
string
)
=>
{
uni
.
showToast
({
title
:
msg
,
...
...
vite.config.ts
浏览文件 @
8f478f98
...
...
@@ -45,12 +45,12 @@ export default defineConfig({
https
:
false
,
// 默认用http方式
proxy
:
{
'/lowcodeplatform-system'
:
{
target
:
'http://192.168.1.
83
'
,
// target: 'http://192.168.
0.8',
target
:
'http://192.168.1.
156
'
,
// target: 'http://192.168.
1.27',
},
'/wms-system'
:
{
target
:
'http://192.168.1.
83
'
,
// target: 'http://192.168.
0.8
',
target
:
'http://192.168.1.
156
'
,
// target: 'http://192.168.
1.27
',
},
},
},
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论