Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
梁建民
/
wmsApp
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
79a04d13
authored
Jul 20, 2023
by
LJM
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
bug
parent
bd603d15
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
444 additions
and
242 deletions
assets/css/picking/record.scss
assets/css/stockRecheck/record.scss
manifest.json
pages/picking/index.vue
pages/picking/me.vue
pages/picking/record.vue
pages/picking/sort.vue
pages/putaway/index.vue
pages/stockRecheck/index.vue
pages/stockRecheck/record.vue
pages/stockRecheck/sort.vue
util/api.js
util/util.js
assets/css/picking/record.scss
View file @
79a04d13
.picking-record
{
padding
:
15rpx
22rpx
;
.search-box
{
height
:
60rpx
;
background
:
#ffffff
;
border-radius
:
10rpx
;
padding
:
0
18rpx
0
0
;
.sn
{
width
:
164rpx
;
height
:
35rpx
;
border-right
:
1px
solid
#f0f0f2
;
.uni-input
{
font-size
:
18rpx
;
color
:
#292b33
;
font-weight
:
bold
;
}
.uni-arrow
{
width
:
14rpx
;
height
:
9rpx
;
background
:
url('https://img.ichunt.com/images/ichunt/202304/10/e4c72319ad41ce1425f71cc6ec35f111.png')
no-repeat
center
;
background-size
:
contain
;
margin-left
:
12rpx
;
}
}
.search-bar
{
width
:
calc
(
100%
-
164rpx
);
.icon-juxing1
{
font-size
:
30rpx
;
color
:
#919399
;
margin-left
:
17rpx
;
margin-right
:
13rpx
;
}
.uni-input
{
font-size
:
18rpx
;
color
:
#484b59
;
}
.icon-a-juxing11
{
font-size
:
30rpx
;
color
:
#c6c7cc
;
}
}
}
.list
{
margin-top
:
15rpx
;
padding-bottom
:
100rpx
;
.box
{
position
:
relative
;
...
...
assets/css/stockRecheck/record.scss
View file @
79a04d13
.stockRecheck-record
{
padding
:
15rpx
22rpx
;
.search-box
{
height
:
60rpx
;
background
:
#ffffff
;
border-radius
:
10rpx
;
padding
:
0
18rpx
0
0
;
.sn
{
width
:
164rpx
;
height
:
35rpx
;
border-right
:
1px
solid
#f0f0f2
;
.uni-input
{
font-size
:
18rpx
;
color
:
#292b33
;
font-weight
:
bold
;
}
.uni-arrow
{
width
:
14rpx
;
height
:
9rpx
;
background
:
url('https://img.ichunt.com/images/ichunt/202304/10/e4c72319ad41ce1425f71cc6ec35f111.png')
no-repeat
center
;
background-size
:
contain
;
margin-left
:
12rpx
;
}
}
.search-bar
{
width
:
calc
(
100%
-
164rpx
);
.icon-juxing1
{
font-size
:
30rpx
;
color
:
#919399
;
margin-left
:
17rpx
;
margin-right
:
13rpx
;
}
.uni-input
{
font-size
:
18rpx
;
color
:
#484b59
;
}
.icon-a-juxing11
{
font-size
:
30rpx
;
color
:
#c6c7cc
;
}
}
}
.list
{
margin-top
:
15rpx
;
padding-bottom
:
100rpx
;
.box
{
position
:
relative
;
...
...
manifest.json
View file @
79a04d13
{
"name"
:
"wms"
,
"appid"
:
"__UNI__655E80D"
,
"description"
:
""
,
"versionName"
:
"1.0.0
"
,
"versionCode"
:
"100"
,
"transformPx"
:
false
,
"name"
:
"wms"
,
"appid"
:
"__UNI__655E80D"
,
"description"
:
""
,
"versionName"
:
"1.0.1
"
,
"versionCode"
:
"100"
,
"transformPx"
:
false
,
/*
5
+App特有相关
*/
"app-plus"
:
{
"usingComponents"
:
true
,
"nvueStyleCompiler"
:
"uni-app"
,
"compilerVersion"
:
3
,
"splashscreen"
:
{
"alwaysShowBeforeRender"
:
true
,
"waiting"
:
true
,
"autoclose"
:
true
,
"delay"
:
0
"app-plus"
:
{
"usingComponents"
:
true
,
"nvueStyleCompiler"
:
"uni-app"
,
"compilerVersion"
:
3
,
"splashscreen"
:
{
"alwaysShowBeforeRender"
:
true
,
"waiting"
:
true
,
"autoclose"
:
true
,
"delay"
:
0
},
/*
模块配置
*/
"modules"
:
{
"Camera"
:
{},
"Barcode"
:
{},
"Bluetooth"
:
{}
"modules"
:
{
"Camera"
:
{},
"Barcode"
:
{},
"Bluetooth"
:
{}
},
/*
应用发布信息
*/
"distribute"
:
{
"distribute"
:
{
/*
android打包配置
*/
"android"
:
{
"permissions"
:
[
"android"
:
{
"permissions"
:
[
"<uses-permission android:name=
\"
android.permission.CHANGE_NETWORK_STATE
\"
/>"
,
"<uses-permission android:name=
\"
android.permission.MOUNT_UNMOUNT_FILESYSTEMS
\"
/>"
,
"<uses-permission android:name=
\"
android.permission.VIBRATE
\"
/>"
,
...
...
@@ -45,85 +45,86 @@
]
},
/*
ios打包配置
*/
"ios"
:
{
"dSYMs"
:
false
"ios"
:
{
"dSYMs"
:
false
},
/*
SDK配置
*/
"sdkConfigs"
:
{
"ad"
:
{}
"sdkConfigs"
:
{
"ad"
:
{}
},
"icons"
:
{
"android"
:
{
"hdpi"
:
"unpackage/res/icons/72x72.png"
,
"xhdpi"
:
"unpackage/res/icons/96x96.png"
,
"xxhdpi"
:
"unpackage/res/icons/144x144.png"
,
"xxxhdpi"
:
"unpackage/res/icons/192x192.png"
"icons"
:
{
"android"
:
{
"hdpi"
:
"unpackage/res/icons/72x72.png"
,
"xhdpi"
:
"unpackage/res/icons/96x96.png"
,
"xxhdpi"
:
"unpackage/res/icons/144x144.png"
,
"xxxhdpi"
:
"unpackage/res/icons/192x192.png"
},
"ios"
:
{
"appstore"
:
"unpackage/res/icons/1024x1024.png"
,
"ipad"
:
{
"app"
:
"unpackage/res/icons/76x76.png"
,
"app@2x"
:
"unpackage/res/icons/152x152.png"
,
"notification"
:
"unpackage/res/icons/20x20.png"
,
"notification@2x"
:
"unpackage/res/icons/40x40.png"
,
"proapp@2x"
:
"unpackage/res/icons/167x167.png"
,
"settings"
:
"unpackage/res/icons/29x29.png"
,
"settings@2x"
:
"unpackage/res/icons/58x58.png"
,
"spotlight"
:
"unpackage/res/icons/40x40.png"
,
"spotlight@2x"
:
"unpackage/res/icons/80x80.png"
"ios"
:
{
"appstore"
:
"unpackage/res/icons/1024x1024.png"
,
"ipad"
:
{
"app"
:
"unpackage/res/icons/76x76.png"
,
"app@2x"
:
"unpackage/res/icons/152x152.png"
,
"notification"
:
"unpackage/res/icons/20x20.png"
,
"notification@2x"
:
"unpackage/res/icons/40x40.png"
,
"proapp@2x"
:
"unpackage/res/icons/167x167.png"
,
"settings"
:
"unpackage/res/icons/29x29.png"
,
"settings@2x"
:
"unpackage/res/icons/58x58.png"
,
"spotlight"
:
"unpackage/res/icons/40x40.png"
,
"spotlight@2x"
:
"unpackage/res/icons/80x80.png"
},
"iphone"
:
{
"app@2x"
:
"unpackage/res/icons/120x120.png"
,
"app@3x"
:
"unpackage/res/icons/180x180.png"
,
"notification@2x"
:
"unpackage/res/icons/40x40.png"
,
"notification@3x"
:
"unpackage/res/icons/60x60.png"
,
"settings@2x"
:
"unpackage/res/icons/58x58.png"
,
"settings@3x"
:
"unpackage/res/icons/87x87.png"
,
"spotlight@2x"
:
"unpackage/res/icons/80x80.png"
,
"spotlight@3x"
:
"unpackage/res/icons/120x120.png"
"iphone"
:
{
"app@2x"
:
"unpackage/res/icons/120x120.png"
,
"app@3x"
:
"unpackage/res/icons/180x180.png"
,
"notification@2x"
:
"unpackage/res/icons/40x40.png"
,
"notification@3x"
:
"unpackage/res/icons/60x60.png"
,
"settings@2x"
:
"unpackage/res/icons/58x58.png"
,
"settings@3x"
:
"unpackage/res/icons/87x87.png"
,
"spotlight@2x"
:
"unpackage/res/icons/80x80.png"
,
"spotlight@3x"
:
"unpackage/res/icons/120x120.png"
}
}
}
},
"nvueLaunchMode"
:
""
"nvueLaunchMode"
:
""
},
/*
快应用特有相关
*/
"quickapp"
:
{},
"quickapp"
:
{},
/*
小程序特有相关
*/
"mp-weixin"
:
{
"appid"
:
"wx060bcd34e30d0db2"
,
"setting"
:
{
"urlCheck"
:
false
,
"postcss"
:
true
,
"es6"
:
false
,
"minified"
:
true
"mp-weixin"
:
{
"appid"
:
"wx060bcd34e30d0db2"
,
"setting"
:
{
"urlCheck"
:
false
,
"postcss"
:
true
,
"es6"
:
false
,
"minified"
:
true
},
"usingComponents"
:
true
"usingComponents"
:
true
},
"mp-alipay"
:
{
"usingComponents"
:
true
"mp-alipay"
:
{
"usingComponents"
:
true
},
"mp-baidu"
:
{
"usingComponents"
:
true
"mp-baidu"
:
{
"usingComponents"
:
true
},
"mp-toutiao"
:
{
"usingComponents"
:
true
"mp-toutiao"
:
{
"usingComponents"
:
true
},
"uniStatistics"
:
{
"enable"
:
false
"uniStatistics"
:
{
"enable"
:
false
},
"vueVersion"
:
"2"
,
"quickapp-webview"
:
{
"icon"
:
"wms"
,
"package"
:
"com.liexin.wms"
,
"versionName"
:
"1.0"
,
"minPlatformVersion"
:
"1.0"
"vueVersion"
:
"2"
,
"quickapp-webview"
:
{
"icon"
:
"wms"
,
"package"
:
"com.liexin.wms"
,
"versionName"
:
"1.0"
,
"minPlatformVersion"
:
"1.0"
},
"fallbackLocale"
:
"zh-Hans"
,
"softinput"
:
{
"fallbackLocale"
:
"zh-Hans"
,
"softinput"
:
{
//可选,JSON对象,软键盘相关配置
"navBar"
:
"auto"
,
//可选,字符串类型,iOS平台软键盘上导航条的显示模式,可取值auto、none
"auxiliary"
:
true
,
//可选,Boolean类型,是否开启辅助输入功能
"mode"
:
"adjustPan"
//可选,字符串类型,弹出系统软键盘模式,可取值adjustResize、adjustPan
}
}
"navBar"
:
"auto"
,
//可选,字符串类型,iOS平台软键盘上导航条的显示模式,可取值auto、none
"auxiliary"
:
true
,
//可选,Boolean类型,是否开启辅助输入功能
"mode"
:
"adjustPan"
//可选,字符串类型,弹出系统软键盘模式,可取值adjustResize、adjustPan
},
"locale"
:
"zh-Hans"
}
\ No newline at end of file
pages/picking/index.vue
View file @
79a04d13
...
...
@@ -27,6 +27,10 @@
<text
class=
"label"
>
状 态:
</text>
<text
class=
"t1"
>
{{
item
.
stock_out_status_val
}}
</text>
</view>
<view
class=
"text-item row verCenter"
>
<text
class=
"label"
style=
"white-space: nowrap;width: 100rpx;"
>
待拣货任务:
</text>
<text
class=
"t1"
>
{{
item
.
no_pick_task_num
}}
</text>
</view>
<view
class=
"bor row"
></view>
<view
class=
"text-item row verCenter"
>
<text
class=
"label"
>
任 务 数:
</text>
...
...
pages/picking/me.vue
View file @
79a04d13
...
...
@@ -27,6 +27,10 @@
<text
class=
"label"
>
状 态:
</text>
<text
class=
"t1"
>
{{
item
.
stock_out_status_val
}}
</text>
</view>
<view
class=
"text-item row verCenter"
>
<text
class=
"label"
style=
"white-space: nowrap;width:100rpx;"
>
待拣货任务:
</text>
<text
class=
"t1"
>
{{
item
.
no_pick_task_num
}}
</text>
</view>
<view
class=
"bor row"
></view>
<view
class=
"text-item row verCenter"
>
<text
class=
"label"
>
任 务 数:
</text>
...
...
@@ -37,7 +41,7 @@
<text
class=
"tt"
>
{{
item
.
total_qty
}}
</text>
</view>
<view
class=
"text-item row verCenter"
>
<text
class=
"label"
>
上游
备注:
</text>
<text
class=
"label"
style=
"white-space: nowrap;width: 110rpx;"
>
主单仓库
备注:
</text>
<text
class=
"tt"
>
{{
item
.
upstream_remark
}}
</text>
</view>
<view
class=
"text-item row verCenter"
>
...
...
pages/picking/record.vue
View file @
79a04d13
<
template
>
<view
class=
"picking-record"
>
<view
class=
"search-box row bothSide verCenter"
>
<view
class=
"sn row rowCenter verCenter"
>
<picker
@
change=
"bindPickerChange"
:value=
"index"
:range=
"array"
>
<view
class=
"row verCenter"
>
<view
class=
"uni-input"
>
{{
array
[
index
]
}}
</view>
<view
class=
"uni-arrow"
></view>
</view>
</picker>
</view>
<view
class=
"search-bar row bothSide verCenter"
>
<view
class=
"row verCenter"
>
<text
class=
"iconfont icon-juxing1"
></text>
<input
class=
"uni-input"
placeholder=
"请输入查询"
placeholder-style=
"color:#919399"
focus
v-model=
"searchParams.all_search_keyword"
@
input=
"handleInput"
/>
</view>
<text
class=
"iconfont icon-a-juxing11"
@
click=
"clearInput()"
v-if=
"input_flag"
></text>
</view>
</view>
<view
class=
"list"
v-if=
"list.length > 0"
>
<view
class=
"box row"
v-for=
"(item, index) in list"
:key=
"index"
:class=
"
{ curr: filter_list[index] }">
<view
class=
"check-box-icon"
@
click=
"filterChange(index)"
></view>
...
...
@@ -78,7 +95,7 @@
</view>
<view
class=
"input-box row"
style=
"flex: 0 0 100%;"
>
<text
class=
"label"
>
拣货照片:
</text>
<view
class=
"pick_img_list row"
><image
@
click=
"previewChange(item.pick_img_list, i)"
class=
"img_list"
:src=
"v.small_image_url"
v-for=
"(v, i) in item.pick_img_list"
:key=
"i"
mode=
"aspectFill"
></image></view>
<view
class=
"pick_img_list row"
><image
:lazy-load=
"true"
@
click=
"previewChange(item.pick_img_list, i)"
class=
"img_list"
:src=
"v.small_image_url"
v-for=
"(v, i) in item.pick_img_list"
:key=
"i"
mode=
"aspectFill"
></image></view>
</view>
</view>
</view>
...
...
@@ -105,6 +122,8 @@ import debounce from 'lodash/debounce';
export
default
{
data
()
{
return
{
index
:
0
,
array
:
[
'全量搜索'
],
noexebshowFalg
:
true
,
//控制是否会触发生命周期
input_flag
:
false
,
all_flag
:
false
,
//全选标记
...
...
@@ -115,7 +134,8 @@ export default {
filter_list
:
[],
//筛选已选中的列表
filter_id
:
[],
//过滤id
searchParams
:
{
stock_out_sn
:
''
stock_out_sn
:
''
,
all_search_keyword
:
''
}
};
},
...
...
@@ -127,7 +147,7 @@ export default {
this
.
getData
();
},
onLoad
(
options
)
{
this
.
searchParams
.
stock_out_sn
=
options
.
stock_out_sn
;
this
.
searchParams
.
stock_out_sn
=
options
.
stock_out_sn
||
''
;
},
onShow
()
{
if
(
this
.
noexebshowFalg
)
{
...
...
@@ -136,6 +156,10 @@ export default {
}
},
methods
:
{
bindPickerChange
:
function
(
e
)
{
console
.
log
(
'picker发送选择改变,携带值为'
,
e
.
detail
.
value
);
this
.
index
=
e
.
detail
.
value
;
},
/**
* 全选
*/
...
...
@@ -177,11 +201,28 @@ export default {
*/
clearInput
()
{
this
.
resetChange
();
this
.
input_flag
=
false
;
this
.
searchParams
.
all_search_keyword
=
''
;
this
.
searchParams
.
stock_out_sn
=
''
;
this
.
input_flag
=
false
;
this
.
getData
();
},
/**
* 全量搜索
* @param {Object} event
*/
handleInput
:
debounce
(
function
(
event
)
{
this
.
resetChange
();
var
val
=
event
.
target
.
value
;
if
(
val
)
{
this
.
input_flag
=
true
;
this
.
searchParams
.
all_search_keyword
=
val
;
}
else
{
this
.
input_flag
=
false
;
this
.
searchParams
.
all_search_keyword
=
''
;
}
this
.
getData
();
},
500
),
/**
* 预览图片
* @param {Object} img
* @param {Object} index
...
...
@@ -197,20 +238,6 @@ export default {
});
},
/**
* 单号搜索
* @param {Object} event
*/
handleInput
:
debounce
(
function
(
event
)
{
this
.
resetChange
();
var
val
=
event
.
target
.
value
;
if
(
val
)
{
this
.
input_flag
=
true
;
}
else
{
this
.
input_flag
=
false
;
}
this
.
getData
();
},
500
),
/**
* 取消拣货
*/
cancelPicking
()
{
...
...
pages/picking/sort.vue
View file @
79a04d13
...
...
@@ -545,52 +545,60 @@ export default {
//入库批次号 开启批量扫描
if
(
this
.
is_batch
)
{
this
.
input_flag_stock_in_batch_sn
=
false
;
//记录历史搜索批次号
if
(
!
this
.
history_id
.
includes
(
val
))
{
this
.
history_id
.
push
(
val
);
}
this
.
searchParams
.
stock_in_batch_sn
=
this
.
history_id
.
join
(
','
);
this
.
getData
(
data
=>
{
this
.
getData
((
data
,
msg
)
=>
{
//如果后台有消息返回,就提示
if
(
msg
)
{
uni
.
showModal
({
title
:
'提示'
,
content
:
msg
,
confirmText
:
'关闭'
,
showCancel
:
false
,
success
:
res
=>
{
let
index_history_id
=
this
.
history_id
.
indexOf
(
val
);
this
.
history_id
.
splice
(
index_history_id
,
1
);
try
{
//再次获取焦点
this
.
isFocus
=
false
;
setTimeout
(()
=>
{
this
.
isFocus
=
true
;
this
.
search_keyword
=
''
;
//清空入库批次号
this
.
$forceUpdate
();
},
500
);
}
catch
(
e
)
{
//TODO handle the exception
}
}
});
return
false
;
}
//回调data里数据,加是否选中交互
if
(
data
.
length
>
0
)
{
const
list
=
data
;
this
.
is_batch_active
=
true
;
const
list
=
data
;
list
.
forEach
((
item
,
index
)
=>
{
this
.
filterChange
(
index
);
});
this
.
search_keyword
=
''
;
//若识别物料标签不在上架任务中,则弹窗提示:该物料不在上架任务中,需关闭弹窗才可继续操作
let
isInList
=
list
.
some
(
function
(
item
)
{
return
item
.
stock_in_batch_sn
===
val
;
});
if
(
!
isInList
)
{
uni
.
showModal
({
title
:
'提示'
,
content
:
'该物料不在拣货任务中'
,
confirmText
:
'关闭'
,
showCancel
:
false
,
success
:
res
=>
{
var
index_history_id
=
this
.
history_id
.
indexOf
(
val
);
this
.
history_id
.
splice
(
index_history_id
,
1
);
}
});
}
else
{
uni
.
showToast
({
icon
:
'success'
});
}
}
try
{
//再次获取焦点
this
.
isFocus
=
false
;
setTimeout
(()
=>
{
this
.
isFocus
=
true
;
this
.
$forceUpdate
();
},
500
);
}
catch
(
e
)
{
//TODO handle the exception
}
//执行最后再次获取焦点
try
{
this
.
isFocus
=
false
;
setTimeout
(()
=>
{
this
.
isFocus
=
true
;
this
.
search_keyword
=
''
;
//清空入库批次号
this
.
$forceUpdate
(
);
}
,
500
);
}
catch
(
e
)
{
//TODO handle the exception
}
});
}
else
{
...
...
@@ -850,15 +858,19 @@ export default {
* 获取列表数据
*/
getData
(
callback
)
{
var
URL
=
''
;
if
(
this
.
curr
==
0
)
{
URL
=
API
.
getLockedList
;
//按货品拣货
var
URL
=
API
.
getLockedList
;
}
else
if
(
this
.
curr
==
1
)
{
URL
=
API
.
getLockedContainerList
;
//按容器拣货
var
URL
=
API
.
getLockedContainerList
;
}
//赋值title
uni
.
setNavigationBarTitle
({
title
:
this
.
stock_out_sn
+
'拣货'
});
this
.
request
(
URL
,
'POST'
,
{
page
:
this
.
page
,
limit
:
this
.
limit
,
...
this
.
searchParams
},
false
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
//过滤出应拣数量不为0的数据
...
...
@@ -869,8 +881,8 @@ export default {
var
filteredList
=
res
.
data
.
list
.
filter
(
item
=>
item
.
total_lock_num
-
item
.
total_pick_num
>
0
);
this
.
list
=
filteredList
;
}
this
.
filter_list
=
createArray
(
this
.
list
.
length
,
false
);
typeof
callback
==
'function'
&&
callback
(
res
.
data
.
list
);
this
.
filter_list
=
createArray
(
this
.
list
.
length
,
false
);
//创建状态数组
typeof
callback
==
'function'
&&
callback
(
res
.
data
.
list
,
res
.
data
.
notice_msg
);
}
else
{
uni
.
showToast
({
title
:
res
.
msg
,
...
...
pages/putaway/index.vue
View file @
79a04d13
...
...
@@ -327,52 +327,61 @@ export default {
this
.
search_keyword
=
''
;
this
.
search_keyword
=
val
;
this
.
input_flag
=
false
;
//记录历史搜索批次号
if
(
!
this
.
history_id
.
includes
(
val
))
{
this
.
history_id
.
push
(
val
);
}
this
.
searchParams
.
search_keyword
=
this
.
history_id
.
join
(
','
);
//搜索之后添加选择状态
this
.
getData
(
data
=>
{
this
.
getData
((
data
,
msg
)
=>
{
//如果后台有消息返回,就提示
if
(
msg
)
{
uni
.
showModal
({
title
:
'提示'
,
content
:
msg
,
confirmText
:
'关闭'
,
showCancel
:
false
,
success
:
res
=>
{
let
index_history_id
=
this
.
history_id
.
indexOf
(
val
);
this
.
history_id
.
splice
(
index_history_id
,
1
);
try
{
//再次获取焦点
this
.
isFocus
=
false
;
setTimeout
(()
=>
{
this
.
isFocus
=
true
;
this
.
search_keyword
=
''
;
//清空入库批次号
this
.
$forceUpdate
();
},
500
);
}
catch
(
e
)
{
//TODO handle the exception
}
}
});
return
false
;
}
//回调data里数据,加是否选中交互
if
(
data
.
length
>
0
)
{
this
.
is_batch_active
=
true
;
const
list
=
data
;
list
.
forEach
((
item
,
index
)
=>
{
this
.
filterChange
(
index
);
});
this
.
search_keyword
=
''
;
//若识别物料标签不在上架任务中,则弹窗提示:该物料不在上架任务中,需关闭弹窗才可继续操作
let
isInList
=
list
.
some
(
function
(
item
)
{
return
item
.
stock_in_batch_sn
===
val
;
});
if
(
!
isInList
)
{
uni
.
showModal
({
title
:
'提示'
,
content
:
'该物料不在上架任务中'
,
confirmText
:
'关闭'
,
showCancel
:
false
,
success
:
res
=>
{
var
index_history_id
=
this
.
history_id
.
indexOf
(
val
);
this
.
history_id
.
splice
(
index_history_id
,
1
);
}
});
}
else
{
uni
.
showToast
({
icon
:
'success'
});
}
}
try
{
//再次获取焦点
this
.
isFocus
=
false
;
setTimeout
(()
=>
{
this
.
isFocus
=
true
;
this
.
$forceUpdate
();
},
500
);
}
catch
(
e
)
{
//TODO handle the exception
}
//执行最后再次获取焦点
try
{
this
.
isFocus
=
false
;
setTimeout
(()
=>
{
this
.
isFocus
=
true
;
this
.
search_keyword
=
''
;
//清空入库批次号
this
.
$forceUpdate
(
);
}
,
500
);
}
catch
(
e
)
{
//TODO handle the exception
}
});
}
else
{
...
...
@@ -410,7 +419,7 @@ export default {
if
(
res
.
code
===
0
)
{
this
.
list
=
res
.
data
.
list
;
this
.
filter_list
=
createArray
(
this
.
list
.
length
,
false
);
typeof
callback
==
'function'
&&
callback
(
res
.
data
.
list
);
typeof
callback
==
'function'
&&
callback
(
res
.
data
.
list
,
res
.
data
.
msg
);
}
else
{
uni
.
showToast
({
title
:
res
.
msg
,
...
...
pages/stockRecheck/index.vue
View file @
79a04d13
...
...
@@ -32,6 +32,10 @@
<text
class=
"label"
>
复核确认:
</text>
<text
class=
"t1"
>
{{
item
.
stock_out_status
!=
8
?
'待确认'
:
'已确认'
}}
</text>
</view>
<view
class=
"text-item row verCenter"
>
<text
class=
"label"
style=
"white-space: nowrap;width: 100rpx;"
>
待复核任务:
</text>
<text
class=
"t1"
>
{{
item
.
no_checked_task_num
}}
</text>
</view>
<view
class=
"bor row"
></view>
<view
class=
"text-item row verCenter"
>
<text
class=
"label"
>
任 务 数:
</text>
...
...
pages/stockRecheck/record.vue
View file @
79a04d13
<
template
>
<view
class=
"stockRecheck-record"
>
<view
class=
"search-box row bothSide verCenter"
>
<view
class=
"sn row rowCenter verCenter"
>
<picker
@
change=
"bindPickerChange"
:value=
"index"
:range=
"array"
>
<view
class=
"row verCenter"
>
<view
class=
"uni-input"
>
{{
array
[
index
]
}}
</view>
<view
class=
"uni-arrow"
></view>
</view>
</picker>
</view>
<view
class=
"search-bar row bothSide verCenter"
>
<view
class=
"row verCenter"
>
<text
class=
"iconfont icon-juxing1"
></text>
<input
class=
"uni-input"
placeholder=
"请输入查询"
placeholder-style=
"color:#919399"
focus
v-model=
"searchParams.all_search_keyword"
@
input=
"handleInput"
/>
</view>
<text
class=
"iconfont icon-a-juxing11"
@
click=
"clearInput()"
v-if=
"input_flag"
></text>
</view>
</view>
<view
class=
"list"
v-if=
"list.length > 0"
>
<view
class=
"box row"
v-for=
"(item, index) in list"
:key=
"index"
:class=
"
{ curr: filter_list[index] }">
<view
class=
"check-box-icon"
@
click=
"filterChange(index)"
></view>
...
...
@@ -99,18 +116,25 @@
<
script
>
import
{
API
}
from
'@/util/api.js'
;
import
{
createArray
}
from
'@/util/util.js'
;
import
debounce
from
'lodash/debounce'
;
export
default
{
data
()
{
return
{
index
:
0
,
array
:
[
'全量搜索'
],
input_flag
:
false
,
noexebshowFalg
:
true
,
//控制是否会触发生命周期
page
:
1
,
limit
:
50
,
list
:
[],
stock_out_sn
:
''
,
hasMoreData
:
true
,
//是否分页加载
filter_list
:
[],
//筛选已选中的列表
filter_id
:
[]
//过滤处理的id
filter_id
:
[],
//过滤处理的id
searchParams
:
{
stock_out_sn
:
''
,
all_search_keyword
:
''
}
};
},
onNavigationBarButtonTap
(
e
)
{
...
...
@@ -128,7 +152,7 @@ export default {
this
.
getData
();
},
onLoad
(
options
)
{
this
.
s
tock_out_sn
=
options
.
stock_out_sn
;
this
.
s
earchParams
.
stock_out_sn
=
options
.
stock_out_sn
||
''
;
},
onShow
()
{
if
(
this
.
noexebshowFalg
)
{
...
...
@@ -137,6 +161,35 @@ export default {
}
},
methods
:
{
bindPickerChange
:
function
(
e
)
{
console
.
log
(
'picker发送选择改变,携带值为'
,
e
.
detail
.
value
);
this
.
index
=
e
.
detail
.
value
;
},
/**
* 清空数据
*/
clearInput
()
{
this
.
resetChange
();
this
.
searchParams
.
all_search_keyword
=
''
;
this
.
input_flag
=
false
;
this
.
getData
();
},
/**
* 全量搜索
* @param {Object} event
*/
handleInput
:
debounce
(
function
(
event
)
{
this
.
resetChange
();
var
val
=
event
.
target
.
value
;
if
(
val
)
{
this
.
input_flag
=
true
;
this
.
searchParams
.
all_search_keyword
=
val
;
}
else
{
this
.
input_flag
=
false
;
this
.
searchParams
.
all_search_keyword
=
''
;
}
this
.
getData
();
},
500
),
/**
* 找出false对应的下标
* @param {Object} arr
...
...
@@ -192,7 +245,7 @@ export default {
* 获取列表数据
*/
getData
()
{
this
.
request
(
API
.
getAllCheckedItemList
,
'POST'
,
{
page
:
this
.
page
,
limit
:
this
.
limit
,
stock_out_sn
:
this
.
stock_out_sn
},
tru
e
).
then
(
res
=>
{
this
.
request
(
API
.
getAllCheckedItemList
,
'POST'
,
{
page
:
this
.
page
,
limit
:
this
.
limit
,
...
this
.
searchParams
},
fals
e
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
if
(
res
.
data
.
list
.
length
>
0
)
{
this
.
hasMoreData
=
true
;
...
...
pages/stockRecheck/sort.vue
View file @
79a04d13
...
...
@@ -895,46 +895,53 @@ export default {
this
.
searchParams
.
stock_in_batch_sn
=
this
.
history_id
.
join
(
','
);
this
.
getData
(
data
=>
{
this
.
getData
((
data
,
msg
)
=>
{
//如果后台有消息返回,就提示
if
(
msg
)
{
uni
.
showModal
({
title
:
'提示'
,
content
:
msg
,
confirmText
:
'关闭'
,
showCancel
:
false
,
success
:
res
=>
{
let
index_history_id
=
this
.
history_id
.
indexOf
(
val
);
this
.
history_id
.
splice
(
index_history_id
,
1
);
try
{
//再次获取焦点
this
.
isFocus
=
false
;
setTimeout
(()
=>
{
this
.
isFocus
=
true
;
this
.
search_keyword
=
''
;
//清空入库批次号
this
.
$forceUpdate
();
},
500
);
}
catch
(
e
)
{
//TODO handle the exception
}
}
});
return
false
;
}
//回调data里数据,加是否选中交互
if
(
data
.
length
>
0
)
{
this
.
is_batch_active
=
true
;
const
list
=
data
;
list
.
forEach
((
item
,
index
)
=>
{
this
.
filterChange
(
index
);
});
this
.
search_keyword
=
''
;
//若识别物料标签不在上架任务中,则弹窗提示:该物料不在上架任务中,需关闭弹窗才可继续操作
let
isInList
=
list
.
some
(
function
(
item
)
{
return
item
.
stock_in_batch_sn
===
val
;
});
if
(
!
isInList
)
{
uni
.
showModal
({
title
:
'提示'
,
content
:
'该物料不在复核任务中'
,
confirmText
:
'关闭'
,
showCancel
:
false
,
success
:
res
=>
{
var
index_history_id
=
this
.
history_id
.
indexOf
(
val
);
this
.
history_id
.
splice
(
index_history_id
,
1
);
}
});
}
else
{
uni
.
showToast
({
icon
:
'success'
});
}
}
try
{
//再次获取焦点
this
.
isFocus
=
false
;
setTimeout
(()
=>
{
this
.
isFocus
=
true
;
this
.
$forceUpdate
();
},
500
);
}
catch
(
e
)
{
//TODO handle the exception
}
//执行最后再次获取焦点
try
{
this
.
isFocus
=
false
;
setTimeout
(()
=>
{
this
.
isFocus
=
true
;
this
.
search_keyword
=
''
;
//清空入库批次号
this
.
$forceUpdate
(
);
}
,
500
);
}
catch
(
e
)
{
//TODO handle the exception
}
});
}
else
{
...
...
@@ -974,32 +981,29 @@ export default {
* 获取列表数据
*/
getData
(
callback
)
{
var
URL
=
''
;
if
(
this
.
curr
==
0
)
{
URL
=
API
.
getRecheckTaskItems
;
//按货品复核
var
URL
=
API
.
getRecheckTaskItems
;
}
else
if
(
this
.
curr
==
1
)
{
URL
=
API
.
getContainerTaskList
;
//按容器复核
var
URL
=
API
.
getContainerTaskList
;
}
//赋值title
uni
.
setNavigationBarTitle
({
title
:
this
.
stock_out_sn
+
'复核'
});
this
.
request
(
URL
,
'POST'
,
{
page
:
this
.
page
,
limit
:
this
.
limit
,
...
this
.
searchParams
},
false
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
if
(
res
.
data
.
list
.
length
>
0
)
{
//过滤出待复核不为0的数据
if
(
this
.
curr
==
0
)
{
var
filteredList
=
res
.
data
.
list
.
filter
(
item
=>
item
.
no_recheck_qty
>
0
);
this
.
list
=
filteredList
;
}
else
if
(
this
.
curr
==
1
)
{
var
filteredList
=
res
.
data
.
list
.
filter
(
item
=>
item
.
total_check_num
>
0
);
this
.
list
=
filteredList
;
}
this
.
filter_list
=
createArray
(
filteredList
.
length
,
false
);
typeof
callback
==
'function'
&&
callback
(
filteredList
);
}
else
{
this
.
list
=
[];
//过滤出待复核不为0的数据
if
(
this
.
curr
==
0
)
{
var
filteredList
=
res
.
data
.
list
.
filter
(
item
=>
item
.
no_recheck_qty
>
0
);
this
.
list
=
filteredList
;
}
else
if
(
this
.
curr
==
1
)
{
var
filteredList
=
res
.
data
.
list
.
filter
(
item
=>
item
.
total_check_num
>
0
);
this
.
list
=
filteredList
;
}
this
.
filter_list
=
createArray
(
filteredList
.
length
,
false
);
//创建状态数组
typeof
callback
==
'function'
&&
callback
(
filteredList
,
res
.
data
.
notice_msg
);
}
else
{
uni
.
showToast
({
title
:
res
.
msg
,
...
...
util/api.js
View file @
79a04d13
//
const API_BASE_USER = 'http://user.liexindev.net'; //用户系统
//
const API_BASE_PUR = 'http://pur.liexindev.net'; //采购系统
//
const API_BASE = 'http://wms.liexindev.net'; //WMS系统
//
const API_BASE_OSS = 'http://image.liexindev.net'; //oss系统
const
API_BASE_USER
=
'http://user.liexindev.net'
;
//用户系统
const
API_BASE_PUR
=
'http://pur.liexindev.net'
;
//采购系统
const
API_BASE
=
'http://wms.liexindev.net'
;
//WMS系统
const
API_BASE_OSS
=
'http://image.liexindev.net'
;
//oss系统
const
API_BASE_USER
=
'https://user.ichunt.net'
;
//用户系统
const
API_BASE_PUR
=
'https://purchase.ichunt.net'
;
//采购系统
const
API_BASE
=
'https://wms.ichunt.net'
;
//WMS系统
const
API_BASE_OSS
=
'https://image.ichunt.net'
;
//oss系统
//
const API_BASE_USER = 'https://user.ichunt.net'; //用户系统
//
const API_BASE_PUR = 'https://purchase.ichunt.net'; //采购系统
//
const API_BASE = 'https://wms.ichunt.net'; //WMS系统
//
const API_BASE_OSS = 'https://image.ichunt.net'; //oss系统
const
API
=
{
...
...
util/util.js
View file @
79a04d13
...
...
@@ -32,6 +32,7 @@ const request = (url = '', type = 'GET', param = {}, Loading) => {
dataType
:
'json'
,
}).
then
((
response
)
=>
{
let
[
error
,
res
]
=
response
;
//未登录拦截
if
(
res
.
data
.
code
==
101
)
{
uni
.
navigateTo
({
url
:
'/pages/mine/login'
...
...
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