Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
mes-pda-scan
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ximai
mes-pda-scan
Commits
0b30b8ee
Commit
0b30b8ee
authored
Jul 09, 2024
by
何远江
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化
parent
2583d394
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
211 additions
and
194 deletions
+211
-194
index.vue
pages/sendOutGoodsOff/index.vue
+10
-5
index.js
uview-ui/libs/request/index.js
+201
-189
No files found.
pages/sendOutGoodsOff/index.vue
View file @
0b30b8ee
...
@@ -3,6 +3,7 @@
...
@@ -3,6 +3,7 @@
<StickyNavBar>
<StickyNavBar>
<NavBar
title=
"发货下架"
></NavBar>
<NavBar
title=
"发货下架"
></NavBar>
<view
class=
"btn"
>
<view
class=
"btn"
>
<uni-easyinput
class=
"boxSelect"
prefixIcon=
"search"
v-model=
"lgort"
placeholder=
"请扫描目标仓位"
></uni-easyinput>
<uni-easyinput
prefixIcon=
"search"
:disabled=
"isDisabled"
v-model=
"wxparams"
:focus=
"isFocus"
<uni-easyinput
prefixIcon=
"search"
:disabled=
"isDisabled"
v-model=
"wxparams"
:focus=
"isFocus"
placeholder=
"请扫描产品包装条码/外箱码"
@
input=
"handleInputPlnr"
></uni-easyinput>
placeholder=
"请扫描产品包装条码/外箱码"
@
input=
"handleInputPlnr"
></uni-easyinput>
</view>
</view>
...
@@ -40,6 +41,7 @@
...
@@ -40,6 +41,7 @@
data
()
{
data
()
{
return
{
return
{
wxparams
:
""
,
wxparams
:
""
,
lgort
:
''
,
isDisabled
:
false
,
isDisabled
:
false
,
isFocus
:
false
,
isFocus
:
false
,
goodsList
:
[],
goodsList
:
[],
...
@@ -108,10 +110,13 @@
...
@@ -108,10 +110,13 @@
if
(
!
this
.
goodsList
.
length
)
{
if
(
!
this
.
goodsList
.
length
)
{
return
this
.
$u
.
toast
(
'请扫描需要下架的箱条码/外箱码'
)
return
this
.
$u
.
toast
(
'请扫描需要下架的箱条码/外箱码'
)
}
}
const
DATUM
=
parseTime
(
new
Date
(),
'{y}{m}{d}'
),
if
(
!
this
.
lgort
)
{
UNAME
=
this
.
vuex_user
.
nickName
,
return
this
.
$u
.
toast
(
'请选择目标仓位'
)
UZEIT
=
parseTime
(
new
Date
(),
'{h}{i}{s}'
);
}
const
arr
=
this
.
goodsList
const
arr
=
this
.
goodsList
.
map
((
item
)
=>
{
item
.
LGORT
=
this
.
lgort
return
item
})
this
.
$u
.
api
.
sapApi
this
.
$u
.
api
.
sapApi
.
sapCasePlnr2
(
arr
)
.
sapCasePlnr2
(
arr
)
.
then
((
res
)
=>
{
.
then
((
res
)
=>
{
...
@@ -184,4 +189,4 @@
...
@@ -184,4 +189,4 @@
font-weight
:
600
;
font-weight
:
600
;
}
}
}
}
</
style
>
</
style
>
uview-ui/libs/request/index.js
View file @
0b30b8ee
import
deepMerge
from
"../function/deepMerge"
;
import
deepMerge
from
"../function/deepMerge"
;
import
validate
from
"../function/test"
;
import
validate
from
"../function/test"
;
class
Request
{
import
store
from
'@/store/index.js'
// 设置全局默认配置
class
Request
{
setConfig
(
customConfig
)
{
// 设置全局默认配置
// 深度合并对象,否则会造成对象深层属性丢失
setConfig
(
customConfig
)
{
this
.
config
=
deepMerge
(
this
.
config
,
customConfig
);
// 深度合并对象,否则会造成对象深层属性丢失
}
this
.
config
=
deepMerge
(
this
.
config
,
customConfig
);
}
// 主要请求部分
request
(
options
=
{})
{
// 主要请求部分
// 检查请求拦截
request
(
options
=
{})
{
if
(
this
.
interceptor
.
request
&&
typeof
this
.
interceptor
.
request
===
'function'
)
{
// 检查请求拦截
let
tmpConfig
=
{};
if
(
this
.
interceptor
.
request
&&
typeof
this
.
interceptor
.
request
===
'function'
)
{
let
interceptorRequest
=
this
.
interceptor
.
request
(
options
);
let
tmpConfig
=
{};
if
(
interceptorRequest
===
false
)
{
let
interceptorRequest
=
this
.
interceptor
.
request
(
options
);
// 返回一个处于pending状态中的Promise,来取消原promise,避免进入then()回调
if
(
interceptorRequest
===
false
)
{
return
new
Promise
(()
=>
{});
// 返回一个处于pending状态中的Promise,来取消原promise,避免进入then()回调
}
return
new
Promise
(()
=>
{});
this
.
options
=
interceptorRequest
;
}
}
this
.
options
=
interceptorRequest
;
options
.
dataType
=
options
.
dataType
||
this
.
config
.
dataType
;
}
options
.
responseType
=
options
.
responseType
||
this
.
config
.
responseType
;
options
.
dataType
=
options
.
dataType
||
this
.
config
.
dataType
;
options
.
url
=
options
.
url
||
''
;
options
.
responseType
=
options
.
responseType
||
this
.
config
.
responseType
;
options
.
params
=
options
.
params
||
{};
options
.
url
=
options
.
url
||
''
;
options
.
header
=
Object
.
assign
({},
this
.
config
.
header
,
options
.
header
);
options
.
params
=
options
.
params
||
{};
options
.
method
=
options
.
method
||
this
.
config
.
method
;
options
.
header
=
Object
.
assign
({},
this
.
config
.
header
,
options
.
header
);
options
.
method
=
options
.
method
||
this
.
config
.
method
;
return
new
Promise
((
resolve
,
reject
)
=>
{
options
.
complete
=
(
response
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
// 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading)
options
.
complete
=
(
response
)
=>
{
uni
.
hideLoading
();
// 请求返回后,隐藏loading(如果请求返回快的话,可能会没有loading)
// 清除定时器,如果请求回来了,就无需loading
uni
.
hideLoading
();
clearTimeout
(
this
.
config
.
timer
);
// 清除定时器,如果请求回来了,就无需loading
this
.
config
.
timer
=
null
;
clearTimeout
(
this
.
config
.
timer
);
// 判断用户对拦截返回数据的要求,如果originalData为true,返回所有的数据(response)到拦截器,否则只返回response.data
this
.
config
.
timer
=
null
;
if
(
this
.
config
.
originalData
)
{
// 判断用户对拦截返回数据的要求,如果originalData为true,返回所有的数据(response)到拦截器,否则只返回response.data
// 判断是否存在拦截器
if
(
this
.
config
.
originalData
)
{
if
(
this
.
interceptor
.
response
&&
typeof
this
.
interceptor
.
response
===
'function'
)
{
// 判断是否存在拦截器
let
resInterceptors
=
this
.
interceptor
.
response
(
response
);
if
(
this
.
interceptor
.
response
&&
typeof
this
.
interceptor
.
response
===
'function'
)
{
// 如果拦截器不返回false,就将拦截器返回的内容给this.$u.post的then回调
let
resInterceptors
=
this
.
interceptor
.
response
(
response
);
if
(
resInterceptors
!==
false
)
{
// 如果拦截器不返回false,就将拦截器返回的内容给this.$u.post的then回调
resolve
(
resInterceptors
);
if
(
resInterceptors
!==
false
)
{
}
else
{
resolve
(
resInterceptors
);
// 如果拦截器返回false,意味着拦截器定义者认为返回有问题,直接接入catch回调
}
else
{
reject
(
response
);
// 如果拦截器返回false,意味着拦截器定义者认为返回有问题,直接接入catch回调
}
reject
(
response
);
}
else
{
}
// 如果要求返回原始数据,就算没有拦截器,也返回最原始的数据
}
else
{
resolve
(
response
);
// 如果要求返回原始数据,就算没有拦截器,也返回最原始的数据
}
resolve
(
response
);
}
else
{
}
if
(
response
.
statusCode
==
200
)
{
}
else
{
if
(
this
.
interceptor
.
response
&&
typeof
this
.
interceptor
.
response
===
if
(
response
.
statusCode
==
200
)
{
'function'
)
{
if
(
this
.
interceptor
.
response
&&
typeof
this
.
interceptor
.
response
===
let
resInterceptors
=
this
.
interceptor
.
response
(
response
.
data
);
'function'
)
{
if
(
resInterceptors
!==
false
)
{
let
resInterceptors
=
this
.
interceptor
.
response
(
response
.
data
);
resolve
(
resInterceptors
);
if
(
resInterceptors
!==
false
)
{
}
else
{
resolve
(
resInterceptors
);
reject
(
response
.
data
);
}
else
{
}
reject
(
response
.
data
);
}
else
{
}
// 如果不是返回原始数据(originalData=false),且没有拦截器的情况下,返回纯数据给then回调
}
else
{
resolve
(
response
.
data
);
// 如果不是返回原始数据(originalData=false),且没有拦截器的情况下,返回纯数据给then回调
}
resolve
(
response
.
data
);
}
else
{
}
// 不返回原始数据的情况下,服务器状态码不为200,modal弹框提示
}
else
{
// if(response.errMsg) {
// 不返回原始数据的情况下,服务器状态码不为200,modal弹框提示
// uni.showModal({
// if(response.errMsg) {
// title: response.errMsg
// uni.showModal({
// });
// title: response.errMsg
// }
// });
reject
(
response
)
// }
}
reject
(
response
)
}
}
}
}
// 处理sap接口
}
let
url
=
this
.
config
.
baseUrl
// 处理sap接口
if
(
options
.
url
.
indexOf
(
'sap'
)
>
-
1
){
let
url
=
this
.
config
.
baseUrl
// console.log('sap')
if
(
options
.
url
.
indexOf
(
'sap'
)
>
-
1
)
{
// #ifdef APP-PLUS
url
=
'http://192.168.3.109:8000'
url
=
'http://192.168.3.109:8000'
options
.
header
=
{
// #endif
...
options
.
header
,
'content-type'
:
'application/json;charset=UTF-8'
,
options
.
header
=
{
'Authorization'
:
'Basic cmVzdF91c2VyOkJzbjEyMzQ1Ng=='
,
...
options
.
header
,
}
'content-type'
:
'application/json;charset=UTF-8'
,
}
else
if
(
options
.
url
.
indexOf
(
'apiPda'
)
>
-
1
){
'Authorization'
:
'Basic cmVzdF91c2VyOkJzbjEyMzQ1Ng=='
,
options
.
header
=
{
}
...
options
.
header
,
'content-type'
:
'application/json;charset=UTF-8'
,
// 设置公共参数
}
if
(
Object
.
prototype
.
toString
.
call
(
options
.
data
)
!=
'[object Array]'
)
{
url
=
'http://192.168.3.91:8100'
options
.
data
=
{
}
else
{
...
options
.
data
,
// console.log('mobile')
werks
:
store
.
state
.
vuex_user_factory
url
=
'http://192.168.3.91:8100'
}
}
}
// 判断用户传递的URL是否/开头,如果不是,加上/,这里使用了uView的test.js验证库的url()方法
options
.
url
=
validate
.
url
(
options
.
url
)
?
options
.
url
:
(
url
+
(
options
.
url
.
indexOf
(
'/'
)
==
0
?
}
else
if
(
options
.
url
.
indexOf
(
'apiPda'
)
>
-
1
)
{
options
.
url
:
'/'
+
options
.
url
));
options
.
header
=
{
...
options
.
header
,
// 是否显示loading
'content-type'
:
'application/json;charset=UTF-8'
,
// 加一个是否已有timer定时器的判断,否则有两个同时请求的时候,后者会清除前者的定时器id
}
// 而没有清除前者的定时器,导致前者超时,一直显示loading
url
=
'http://192.168.3.91:8100'
if
(
this
.
config
.
showLoading
&&
!
this
.
config
.
timer
)
{
}
else
{
this
.
config
.
timer
=
setTimeout
(()
=>
{
// console.log('mobile')
uni
.
showLoading
({
url
=
'http://192.168.3.91:8100'
title
:
this
.
config
.
loadingText
,
}
mask
:
this
.
config
.
loadingMask
// 判断用户传递的URL是否/开头,如果不是,加上/,这里使用了uView的test.js验证库的url()方法
})
options
.
url
=
validate
.
url
(
options
.
url
)
?
options
.
url
:
(
url
+
(
options
.
url
.
indexOf
(
'/'
)
==
0
?
this
.
config
.
timer
=
null
;
options
.
url
:
'/'
+
options
.
url
));
},
this
.
config
.
loadingTime
);
}
// 是否显示loading
console
.
log
(
'请求参数'
,
options
)
// 加一个是否已有timer定时器的判断,否则有两个同时请求的时候,后者会清除前者的定时器id
uni
.
request
(
options
);
// 而没有清除前者的定时器,导致前者超时,一直显示loading
})
if
(
this
.
config
.
showLoading
&&
!
this
.
config
.
timer
)
{
// .catch(res => {
this
.
config
.
timer
=
setTimeout
(()
=>
{
// // 如果返回reject(),不让其进入this.$u.post().then().catch()后面的catct()
uni
.
showLoading
({
// // 因为很多人都会忘了写后面的catch(),导致报错捕获不到catch
title
:
this
.
config
.
loadingText
,
// return new Promise(()=>{});
mask
:
this
.
config
.
loadingMask
// })
})
}
this
.
config
.
timer
=
null
;
},
this
.
config
.
loadingTime
);
constructor
()
{
}
this
.
config
=
{
console
.
log
(
'请求参数'
,
options
)
baseUrl
:
''
,
// 请求的根域名
uni
.
request
(
options
);
// 默认的请求头
})
header
:
{},
// .catch(res => {
method
:
'POST'
,
// // 如果返回reject(),不让其进入this.$u.post().then().catch()后面的catct()
// 设置为json,返回后uni.request会对数据进行一次JSON.parse
// // 因为很多人都会忘了写后面的catch(),导致报错捕获不到catch
dataType
:
'json'
,
// return new Promise(()=>{});
// 此参数无需处理,因为5+和支付宝小程序不支持,默认为text即可
// })
responseType
:
'text'
,
}
showLoading
:
true
,
// 是否显示请求中的loading
loadingText
:
'请求中...'
,
constructor
()
{
loadingTime
:
800
,
// 在此时间内,请求还没回来的话,就显示加载中动画,单位ms
this
.
config
=
{
timer
:
null
,
// 定时器
baseUrl
:
''
,
// 请求的根域名
originalData
:
false
,
// 是否在拦截器中返回服务端的原始数据,见文档说明
// 默认的请求头
loadingMask
:
true
,
// 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透
header
:
{},
}
method
:
'POST'
,
// 设置为json,返回后uni.request会对数据进行一次JSON.parse
// 拦截器
dataType
:
'json'
,
this
.
interceptor
=
{
// 此参数无需处理,因为5+和支付宝小程序不支持,默认为text即可
// 请求前的拦截
responseType
:
'text'
,
request
:
null
,
showLoading
:
true
,
// 是否显示请求中的loading
// 请求后的拦截
loadingText
:
'请求中...'
,
response
:
null
loadingTime
:
800
,
// 在此时间内,请求还没回来的话,就显示加载中动画,单位ms
}
timer
:
null
,
// 定时器
originalData
:
false
,
// 是否在拦截器中返回服务端的原始数据,见文档说明
// get请求
loadingMask
:
true
,
// 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透
this
.
get
=
(
url
,
data
=
{},
header
=
{})
=>
{
}
return
this
.
request
({
method
:
'GET'
,
// 拦截器
url
,
this
.
interceptor
=
{
header
,
// 请求前的拦截
data
request
:
null
,
})
// 请求后的拦截
}
response
:
null
}
// post请求
this
.
post
=
(
url
,
data
=
{},
header
=
{})
=>
{
// get请求
return
this
.
request
({
this
.
get
=
(
url
,
data
=
{},
header
=
{})
=>
{
url
,
return
this
.
request
({
method
:
'POST'
,
method
:
'GET'
,
header
,
url
,
data
header
,
})
data
}
})
}
// put请求,不支持支付宝小程序(HX2.6.15)
this
.
put
=
(
url
,
data
=
{},
header
=
{})
=>
{
// post请求
return
this
.
request
({
this
.
post
=
(
url
,
data
=
{},
header
=
{})
=>
{
url
,
return
this
.
request
({
method
:
'PUT'
,
url
,
header
,
method
:
'POST'
,
data
header
,
})
data
}
})
}
// delete请求,不支持支付宝和头条小程序(HX2.6.15)
this
.
delete
=
(
url
,
data
=
{},
header
=
{})
=>
{
// put请求,不支持支付宝小程序(HX2.6.15)
return
this
.
request
({
this
.
put
=
(
url
,
data
=
{},
header
=
{})
=>
{
url
,
return
this
.
request
({
method
:
'DELETE'
,
url
,
header
,
method
:
'PUT'
,
data
header
,
})
data
}
})
}
}
}
export
default
new
Request
// delete请求,不支持支付宝和头条小程序(HX2.6.15)
\ No newline at end of file
this
.
delete
=
(
url
,
data
=
{},
header
=
{})
=>
{
return
this
.
request
({
url
,
method
:
'DELETE'
,
header
,
data
})
}
}
}
export
default
new
Request
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