Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
梁建民
/
wmsMin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
9111c8a4
authored
May 06, 2024
by
LJM
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
优化
parent
23f21727
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
156 additions
and
28 deletions
assets/css/tally/index.scss
pages/tally/index.vue
util/api.js
assets/css/tally/index.scss
View file @
9111c8a4
...
@@ -156,7 +156,7 @@
...
@@ -156,7 +156,7 @@
height
:
30rpx
;
height
:
30rpx
;
border-radius
:
50%
;
border-radius
:
50%
;
background-color
:
#bb3434
;
background-color
:
#bb3434
;
z-index
:
9
99
;
z-index
:
9
;
.iconfont
{
.iconfont
{
font-size
:
20rpx
;
font-size
:
20rpx
;
color
:
#ffffff
;
color
:
#ffffff
;
...
...
pages/tally/index.vue
View file @
9111c8a4
...
@@ -19,12 +19,12 @@
...
@@ -19,12 +19,12 @@
<input
class=
"uni-input"
:disabled=
"tallyData.customer_name"
:class=
"{ 'disabled': tallyData.customer_name }"
placeholder=
"输入或扫描入仓号"
placeholder-style=
"color:#000;font-weight: bold;"
v-model=
"erp_order_sn"
/>
<input
class=
"uni-input"
:disabled=
"tallyData.customer_name"
:class=
"{ 'disabled': tallyData.customer_name }"
placeholder=
"输入或扫描入仓号"
placeholder-style=
"color:#000;font-weight: bold;"
v-model=
"erp_order_sn"
/>
</view>
</view>
<view
class=
"action-bar row verCenter"
>
<view
class=
"action-bar row verCenter"
>
<
template
v-if=
"tallyData.detail && tallyData.detail.length > 0"
>
<
template
v-if=
"tallyData.detail && tallyData.detail.length > 0
&& step == 1
"
>
<view
class=
"btn1 row rowCenter verCenter"
style=
"margin-right: 8rpx;"
>
取消释放
</view>
<view
class=
"btn1 row rowCenter verCenter"
style=
"margin-right: 8rpx;"
>
取消释放
</view>
<view
class=
"btn row rowCenter verCenter"
>
关单封箱
</view>
<view
class=
"btn row rowCenter verCenter"
>
关单封箱
</view>
</
template
>
</
template
>
<
template
v-else
>
<
template
v-else
>
<view
class=
"btn row rowCenter verCenter"
@
click=
"getTallyData()"
>
锁定理货
</view>
<view
class=
"btn row rowCenter verCenter"
@
click=
"getTallyData(
1
)"
>
锁定理货
</view>
</
template
>
</
template
>
</view>
</view>
</view>
</view>
...
@@ -39,11 +39,16 @@
...
@@ -39,11 +39,16 @@
</picker>
</picker>
</view>
</view>
<view
class=
"input-box row verCenter"
>
<view
class=
"input-box row verCenter"
>
<input
class=
"uni-input"
placeholder=
"输入或扫描"
placeholder-style=
"color:#000;font-weight: bold;"
/>
<
template
v-if=
"index == 0"
>
<input
class=
"uni-input"
placeholder=
"输入或扫描"
placeholder-style=
"color:#000;font-weight: bold;"
v-model=
"goods_type"
/>
</
template
>
<
template
v-else
>
<input
class=
"uni-input"
placeholder=
"输入或扫描"
placeholder-style=
"color:#000;font-weight: bold;"
v-model=
"keyword"
/>
</
template
>
</view>
</view>
</view>
</view>
<view
class=
"action-bar"
>
<view
class=
"action-bar"
>
<view
class=
"btn1 row rowCenter verCenter"
>
扫 描
</view>
<view
class=
"btn1 row rowCenter verCenter"
@
click=
"identifyQrCodeNumAndSn(2)"
>
扫 描
</view>
</view>
</view>
</view>
</view>
<view
class=
"info row verCenter"
v-if=
"tallyData && tallyData.detail"
>
<view
class=
"info row verCenter"
v-if=
"tallyData && tallyData.detail"
>
...
@@ -73,6 +78,7 @@
...
@@ -73,6 +78,7 @@
</view>
</view>
</view>
</view>
</view>
</view>
<!-- 列表 -->
<view
class=
"list"
v-if=
"tallyData && tallyData.detail"
>
<view
class=
"list"
v-if=
"tallyData && tallyData.detail"
>
<scroll-view
scroll-y=
"true"
class=
"scroll-Y"
>
<scroll-view
scroll-y=
"true"
class=
"scroll-Y"
>
<view
class=
"box"
v-for=
"(item,index) in tallyData.detail"
:key=
"index"
>
<view
class=
"box"
v-for=
"(item,index) in tallyData.detail"
:key=
"index"
>
...
@@ -133,18 +139,19 @@
...
@@ -133,18 +139,19 @@
<view
class=
"row bothSide verCenter"
>
<view
class=
"row bothSide verCenter"
>
<view
class=
"upload-list row verCenter"
>
<view
class=
"upload-list row verCenter"
>
<
template
v-if=
"image_list.length > 0"
>
<
template
v-if=
"image_list.length > 0"
>
<view
class=
"pic-box"
v-for=
"(v, i
ndex) in image_list"
:key=
"index
"
>
<view
class=
"pic-box"
v-for=
"(v, i
) in image_list[index]"
:key=
"i
"
>
<image
:src=
"v"
mode=
"aspectFill"
lazy-load=
"true"
@
click=
"previewChange(image_list
, index
)"
></image>
<image
:src=
"v"
mode=
"aspectFill"
lazy-load=
"true"
@
click=
"previewChange(image_list
[index], i
)"
></image>
<view
class=
"delete row rowCenter verCenter"
@
click=
"deletePic(index)"
><text
class=
"iconfont icon-shanchu"
></text></view>
<view
class=
"delete row rowCenter verCenter"
@
click=
"deletePic(index
,i
)"
><text
class=
"iconfont icon-shanchu"
></text></view>
</view>
</view>
</
template
>
</
template
>
<view
class=
"default row rowCenter verCenter"
@
click=
"chooseImageChange()"
v-if=
"image_list.length < 5"
><text
class=
"iconfont icon-xingzhuangjiehe"
></text></view>
<view
class=
"default row rowCenter verCenter"
@
click=
"chooseImageChange(
index
)"
v-if=
"image_list.length < 5"
><text
class=
"iconfont icon-xingzhuangjiehe"
></text></view>
</view>
</view>
<view
class=
"btn row rowCenter verCenter"
>
提 交
</view>
<view
class=
"btn row rowCenter verCenter"
@
click=
"submitTallyDetail(index)"
>
提 交
</view>
</view>
</view>
</view>
</view>
</scroll-view>
</scroll-view>
</view>
</view>
<!-- 操作栏 -->
<view
class=
"btn-list row verCenter bothSide"
v-if=
"!tallyData.detail"
>
<view
class=
"btn-list row verCenter bothSide"
v-if=
"!tallyData.detail"
>
<navigator
url=
"/pages/tally/fixBox"
class=
"box row rowCenter verCenter"
hover-class=
"none"
>
合 箱
</navigator>
<navigator
url=
"/pages/tally/fixBox"
class=
"box row rowCenter verCenter"
hover-class=
"none"
>
合 箱
</navigator>
<navigator
url=
"/pages/tally/unboxing"
class=
"box row rowCenter verCenter"
hover-class=
"none"
>
重新开箱
</navigator>
<navigator
url=
"/pages/tally/unboxing"
class=
"box row rowCenter verCenter"
hover-class=
"none"
>
重新开箱
</navigator>
...
@@ -185,6 +192,8 @@
...
@@ -185,6 +192,8 @@
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
step
:
1
,
keyword
:
''
,
curr
:
-
1
,
//当前打开的是哪个产地
curr
:
-
1
,
//当前打开的是哪个产地
fixBoxStyle
:
''
,
fixBoxStyle
:
''
,
noexebshowFalg
:
true
,
//控制是否会触发生命周期
noexebshowFalg
:
true
,
//控制是否会触发生命周期
...
@@ -192,6 +201,7 @@
...
@@ -192,6 +201,7 @@
index
:
0
,
index
:
0
,
item
:
[
'其他'
,
'digikey'
,
'mouser'
,
'future'
,
'TI'
],
item
:
[
'其他'
,
'digikey'
,
'mouser'
,
'future'
,
'TI'
],
box_sn
:
''
,
//箱号信息
box_sn
:
''
,
//箱号信息
wsty_id
:
''
,
//箱子id
erp_order_sn
:
''
,
//入仓号
erp_order_sn
:
''
,
//入仓号
goods_type
:
''
,
//商品型号
goods_type
:
''
,
//商品型号
tallyData
:
{},
//理货信息
tallyData
:
{},
//理货信息
...
@@ -199,9 +209,19 @@
...
@@ -199,9 +209,19 @@
filter_status
:
[],
//控制状态
filter_status
:
[],
//控制状态
origin_list
:
[],
//产地
origin_list
:
[],
//产地
origin
:
''
,
//搜索国家携带的参数
origin
:
''
,
//搜索国家携带的参数
form
:
{}
form
:
{},
isRequestSent
:
false
,
isStopRequest
:
false
};
};
},
},
watch
:
{
image_list
(
arr
)
{
arr
.
forEach
((
item
,
index
)
=>
{
// 将数组元素用逗号连接成字符串,并赋值给对应的 form 中的 goods_check_pic 字段
this
.
form
[
index
].
goods_check_pic
=
item
.
length
>
0
?
item
.
join
(
','
)
:
''
;
});
}
},
created
()
{
created
()
{
this
.
getOrigin
();
this
.
getOrigin
();
},
},
...
@@ -261,7 +281,7 @@
...
@@ -261,7 +281,7 @@
/**
/**
* 选择图片
* 选择图片
*/
*/
chooseImageChange
()
{
chooseImageChange
(
key
)
{
this
.
noexebshowFalg
=
false
;
this
.
noexebshowFalg
=
false
;
// 使用 chooseImage选择图片
// 使用 chooseImage选择图片
uni
.
chooseMedia
({
uni
.
chooseMedia
({
...
@@ -316,7 +336,7 @@
...
@@ -316,7 +336,7 @@
uni
.
hideLoading
();
uni
.
hideLoading
();
let
data
=
JSON
.
parse
(
uploadFileRes
.
data
);
let
data
=
JSON
.
parse
(
uploadFileRes
.
data
);
if
(
data
.
code
===
0
)
{
if
(
data
.
code
===
0
)
{
this
.
image_list
.
push
(
data
.
data
.
oss_image_url
);
this
.
image_list
[
key
]
.
push
(
data
.
data
.
oss_image_url
);
}
else
{
}
else
{
uni
.
showToast
({
uni
.
showToast
({
title
:
data
.
msg
,
title
:
data
.
msg
,
...
@@ -357,8 +377,57 @@
...
@@ -357,8 +377,57 @@
* 删除图片
* 删除图片
* @param {Object} index
* @param {Object} index
*/
*/
deletePic
(
index
)
{
deletePic
(
index
,
i
)
{
this
.
image_list
.
splice
(
index
,
1
);
this
.
image_list
[
index
].
splice
(
i
,
1
);
},
/**
* 识别
*/
identifyQrCodeNumAndSn
(
type
)
{
if
(
!
this
.
box_sn
)
{
uni
.
showModal
({
title
:
''
,
content
:
'请先取箱号!并将打印的箱号贴于外箱上'
,
showCancel
:
false
});
return
false
;
}
if
(
this
.
index
==
0
)
{
//区分其他
this
.
getTallyData
(
type
);
}
else
{
let
codeTypeByIndex
=
{
3
:
'DigiKey'
,
4
:
'Rochester'
,
5
:
'TME'
,
6
:
'Chip1stop'
,
7
:
'Mouser'
};
let
codeType
=
codeTypeByIndex
[
this
.
index
]
||
''
;
let
device
=
uni
.
getDeviceInfo
();
//匹配到内容才开始调接口
if
(
!
this
.
isRequestSent
)
{
this
.
isRequestSent
=
true
;
// 设置标志,防止重复发送请求
this
.
request
(
API
.
identifyQrCodeNumAndSn
,
'POST'
,
{
data
:
this
.
keyword
,
type
:
codeType
,
device
:
device
.
deviceModel
},
true
).
then
(
res
=>
{
this
.
isRequestSent
=
false
;
// 请求完成后重置标志
if
(
res
.
code
===
0
)
{
//如果后台搜索到型号则替换输入框的值
if
(
res
.
data
.
model
)
{
this
.
keyword
=
res
.
data
.
model
;
}
this
.
goods_type
=
res
.
data
.
model
;
//赋值检索出来的型号
this
.
getTallyData
(
type
);
}
else
{
uni
.
showToast
({
title
:
res
.
msg
,
icon
:
'none'
});
}
});
}
}
},
},
/**
/**
* 获取箱号
* 获取箱号
...
@@ -367,6 +436,7 @@
...
@@ -367,6 +436,7 @@
this
.
request
(
API
.
getBoxSn
,
'POST'
,
{},
true
).
then
(
res
=>
{
this
.
request
(
API
.
getBoxSn
,
'POST'
,
{},
true
).
then
(
res
=>
{
if
(
res
.
err_code
===
0
)
{
if
(
res
.
err_code
===
0
)
{
this
.
box_sn
=
res
.
data
.
box_sn
;
this
.
box_sn
=
res
.
data
.
box_sn
;
this
.
wsty_id
=
res
.
data
.
wsty_id
;
}
else
{
}
else
{
uni
.
showToast
({
uni
.
showToast
({
title
:
res
.
err_msg
,
title
:
res
.
err_msg
,
...
@@ -393,8 +463,9 @@
...
@@ -393,8 +463,9 @@
},
},
/**
/**
* 获取锁定理货信息
* 获取锁定理货信息
* @param {Object} type 1 锁定理货 2 其他及供应商
*/
*/
getTallyData
()
{
getTallyData
(
type
)
{
if
(
!
this
.
box_sn
)
{
if
(
!
this
.
box_sn
)
{
uni
.
showModal
({
uni
.
showModal
({
title
:
''
,
title
:
''
,
...
@@ -403,14 +474,16 @@
...
@@ -403,14 +474,16 @@
});
});
return
false
;
return
false
;
}
}
if
(
!
this
.
erp_order_sn
)
{
if
(
type
==
1
)
{
uni
.
showToast
({
if
(
!
this
.
erp_order_sn
)
{
title
:
'请输入入仓号'
,
uni
.
showToast
({
icon
:
'none'
title
:
'请输入入仓号'
,
});
icon
:
'none'
return
false
;
});
return
false
;
}
}
}
this
.
step
=
type
;
//记录当前哪个按钮操作
this
.
request
(
API
.
getTallyData
,
'POST'
,
{
erp_order_sn
:
this
.
erp_order_sn
,
goods_type
:
this
.
goods_type
},
true
).
then
(
res
=>
{
this
.
request
(
API
.
getTallyData
,
'POST'
,
{
erp_order_sn
:
this
.
erp_order_sn
,
goods_type
:
this
.
goods_type
},
true
).
then
(
res
=>
{
if
(
res
.
err_code
===
0
)
{
if
(
res
.
err_code
===
0
)
{
this
.
tallyData
=
res
.
data
;
this
.
tallyData
=
res
.
data
;
...
@@ -420,11 +493,13 @@
...
@@ -420,11 +493,13 @@
tally_num
:
''
,
// 入库数量
tally_num
:
''
,
// 入库数量
origin
:
''
,
// 原产地
origin
:
''
,
// 原产地
net_weight
:
''
,
// 净重
net_weight
:
''
,
// 净重
wstydl_id
:
''
,
// 理货明细ID
goods_check_pic
:
''
,
// 商检的必须上传图片
erp_order_sn
:
''
,
// 入仓号
wstydl_id
:
item
.
wstydl_id
,
// 理货明细ID
wsty_id
:
''
,
// 箱子id
erp_order_sn
:
this
.
erp_order_sn
,
// 入仓号
goods_check_pic
:
''
// 商检的必须上传图片
wsty_id
:
this
.
wsty_id
,
// 箱子id
is_goods_check_cn
:
item
.
is_goods_check_cn
//是否商检
}));
}));
this
.
image_list
=
res
.
data
.
detail
.
map
(()
=>
new
Array
());
//图片特殊处理
}
}
}
else
{
}
else
{
uni
.
showToast
({
uni
.
showToast
({
...
@@ -433,6 +508,54 @@
...
@@ -433,6 +508,54 @@
});
});
}
}
});
});
},
/**
* 理货明细提交
*/
submitTallyDetail
(
index
)
{
if
(
!
this
.
form
[
index
].
tally_num
)
{
uni
.
showToast
({
title
:
'入库数量必填'
,
icon
:
'none'
});
return
false
;
}
if
(
!
this
.
form
[
index
].
origin
)
{
uni
.
showToast
({
title
:
'原产地必填'
,
icon
:
'none'
});
return
false
;
}
if
(
!
this
.
form
[
index
].
net_weight
)
{
uni
.
showToast
({
title
:
'净重必填'
,
icon
:
'none'
});
return
false
;
}
if
(
this
.
form
[
index
].
is_goods_check_cn
)
{
if
(
!
this
.
form
[
index
].
goods_check_pic
)
{
uni
.
showToast
({
title
:
'商检图片必须要上传图片'
,
icon
:
'none'
});
return
false
;
}
}
this
.
request
(
API
.
submitTallyDetail
,
'POST'
,
this
.
form
[
index
],
true
).
then
(
res
=>
{
if
(
res
.
err_code
===
0
)
{
}
else
{
uni
.
showToast
({
title
:
res
.
err_msg
,
icon
:
'none'
});
}
});
}
}
}
}
};
};
...
...
util/api.js
View file @
9111c8a4
...
@@ -6,6 +6,7 @@ const API_BASE = 'http://api.liexin.com';
...
@@ -6,6 +6,7 @@ const API_BASE = 'http://api.liexin.com';
const
API_BASE_OSS
=
'http://image.liexindev.net'
;
const
API_BASE_OSS
=
'http://image.liexindev.net'
;
const
API_BASE_WMS
=
'http://wms.liexindev.net'
;
//WMS系统
const
API_BASE_WMS
=
'http://wms.liexindev.net'
;
//WMS系统
const
API
=
{
const
API
=
{
/**
/**
* 上传数据
* 上传数据
...
@@ -282,7 +283,11 @@ const API = {
...
@@ -282,7 +283,11 @@ const API = {
/**
/**
* 合箱
* 合箱
*/
*/
fixBox
:
API_BASE
+
'/supplywechatwms/fixBox'
fixBox
:
API_BASE
+
'/supplywechatwms/fixBox'
,
/**
* 识别二维码的数量和型号
* */
identifyQrCodeNumAndSn
:
API_BASE_WMS
+
'/api/stockIn/identifyQrCodeNumAndSn'
,
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment