Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
biz-trina5-app
Project
Project
Details
Activity
Releases
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
贺双
biz-trina5-app
Commits
c02bee8e
You need to sign in or sign up before continuing.
Commit
c02bee8e
authored
May 19, 2025
by
贺世双
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增回单界面
parent
90f65b22
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
700 additions
and
237 deletions
+700
-237
apiList.js
api/apiList.js
+8
-6
orderPodItem.vue
components/orderPodItem/orderPodItem.vue
+147
-0
pages.json
pages.json
+2
-2
order.vue
pages/order/order.vue
+0
-4
order_pod.vue
pages/order_pod/order_pod.vue
+135
-20
orderAllPodSign.vue
subpkg/orderAllPodSign/orderAllPodSign.vue
+408
-0
transferChange.vue
subpkg/transferChange/transferChange.vue
+0
-205
No files found.
api/apiList.js
View file @
c02bee8e
...
@@ -113,12 +113,14 @@ export function getMassShipmentTruckList(data) {
...
@@ -113,12 +113,14 @@ export function getMassShipmentTruckList(data) {
return
Request
(
`/api/entry/{mini}/m-action/getMassShipmentTruckList`
,
data
);
return
Request
(
`/api/entry/{mini}/m-action/getMassShipmentTruckList`
,
data
);
}
}
//查询运单途径站点
//查询回单未签收信息
export
function
findShipmentStops
(
data
)
{
export
function
getOrderPodList
(
data
)
{
return
Request
(
return
Request
(
`/api/entry/{mini}/m-action/getOrderPodList`
,
data
);
`/api/entry/{mini}/m-action/biz.tm.ShipmentStop.tm_shipmentstop_m_carrier.paging`
,
}
data
);
//查询回单已签收信息
export
function
getOrderPodSingList
(
data
)
{
return
Request
(
`/api/entry/{mini}/m-action/getOrderPodSingList`
,
data
);
}
}
// 查询货量明细
// 查询货量明细
...
...
components/orderPodItem/orderPodItem.vue
0 → 100644
View file @
c02bee8e
<
template
>
<view
class=
"orderPodItem box_shadow_card"
>
<view
class=
"shipment-header flex_sb"
style=
"padding: 28rpx 24rpx 0;"
>
<view
class=
"consumer_code flex_center"
>
<text
selectable
>
回单号:
{{
propData
[
'pod_no'
]
||
''
}}
</text>
</view>
<view
:class=
"propData.execute_bu == null ? 'shipment-state' : 'shipment-state shipmenting'"
>
{{
propData
.
execute_bu
}}
</view>
</view>
<u-line
color=
"#E5E5E5"
margin=
"20rpx 0"
/>
<view
style=
"padding: 0 24rpx 32rpx;"
>
<view
class=
" flex_sb"
>
<view
style=
"width: 50%;float: left;"
>
<bs-customCell
label=
"回单类型 :"
:value=
"propData.pod_type_label"
labelCol=
"5"
wrapCol=
"6"
/>
</view>
<view
style=
"width: 50%;float: left;"
>
<bs-customCell
label=
"承运商 :"
:value=
"propData.servprov_name"
labelCol=
"4"
wrapCol=
"8"
/>
</view>
</view>
<view
class=
" flex_sb"
>
<view
style=
"width: 50%;float: left;"
>
<bs-customCell
label=
"始发地 :"
:value=
"propData.source_location_name"
labelCol=
"4.5"
wrapCol=
"6"
/>
</view>
<view
style=
"width: 50%;float: left;"
>
<bs-customCell
label=
"目的地 :"
:value=
"propData.dest_location_name"
labelCol=
"4.5"
wrapCol=
"6"
/>
</view>
</view>
<bs-customCell
label=
"订舱/托书号 :"
:value=
"propData.sp__booking_no"
labelCol=
"3.5"
wrapCol=
"6"
/>
<bs-customCell
label=
"运单号 :"
:value=
"propData.shipment_no"
labelCol=
"2"
wrapCol=
"6"
/>
<bs-customCell
label=
"车牌号 :"
:value=
"propData.truck_no"
labelCol=
"2"
wrapCol=
"6"
/>
<bs-customCell
label=
"回单数量 :"
:value=
"propData.pod_count"
labelCol=
"2.5"
wrapCol=
"6"
/>
</view>
<view
class=
"flex_cen flex_center orderItemButtonGroup"
v-if=
"propData.sign_status != '正常签收' && propData.sign_status != '异常签收'"
>
<button
class=
"flex_cen flex_center"
@
click=
"onDetailPodSign()"
>
明细上传
</button>
<button
class=
"flex_cen flex_center"
@
click=
"onAllPodSign()"
>
整单上传
</button>
</view>
</view>
</
template
>
<
script
>
import
{
formatGMT
}
from
'../../utils/util'
export
default
{
name
:
'orderPodItem'
,
options
:
{
styleIsolation
:
'shared'
},
props
:
{
propData
:
{
type
:
Object
,
default
:
{}
},
},
methods
:
{
//跳转明细签收界面
onDetailPodSign
()
{
getApp
().
globalData
.
changeShippingDate
=
this
.
propData
uni
.
navigateTo
({
url
:
`/subpkg/changeShippingDate/changeShippingDate`
,
})
},
//跳转整单签收界面
onAllPodSign
()
{
getApp
().
globalData
.
orderAllPodSign
=
this
.
propData
uni
.
navigateTo
({
url
:
`/subpkg/orderAllPodSign/orderAllPodSign`
,
})
},
},
}
</
script
>
<
style
lang=
"scss"
>
.orderPodItem
{
position
:
relative
;
margin
:
24rpx
24rpx
0
;
padding
:
0
;
padding-bottom
:
32rpx
;
&
/
deep
/
.custom-cell-row
{
margin-top
:
20rpx
;
}
.consumer_code
{
line-height
:
40rpx
;
text-shadow
:
1rpx
3rpx
12rpx
rgba
(
0
,
0
,
0
,
0
.04
);
}
.shipment-state
{
font-size
:
24rpx
;
color
:
#F7A64A
;
line-height
:
33rpx
;
padding
:
6rpx
24rpx
;
border-radius
:
8rpx
;
background
:
rgba
(
247
,
166
,
74
,
.1
);
text-shadow
:
1rpx
3rpx
12rpx
rgba
(
0
,
0
,
0
,
0
.04
);
}
.shipmenting
{
color
:
#66CCCC
;
background
:
rgba
(
61
,
204
,
185
,
.1
);
}
.start-station
,
.end-station
{
margin
:
20rpx
0
;
font-size
:
30rpx
;
font-weight
:
bolder
;
.start-icon
,
.end-icon
{
width
:
40rpx
;
height
:
40rpx
;
font-size
:
24rpx
;
padding
:
8rpx
;
border-radius
:
50%
;
color
:
#FFFFFF
;
background-color
:
#2E75E6
;
margin-right
:
20rpx
;
}
.end-icon
{
background-color
:
#F7A64A
;
}
}
.orderItemButtonGroup
{
justify-content
:
space-between
;
padding
:
0
24rpx
;
flex-wrap
:
wrap
;
button
{
font-size
:
32rpx
;
font-weight
:
500
;
color
:
#FFFFFF
;
width
:
315rpx
;
height
:
80rpx
;
margin
:
0
;
border-radius
:
44rpx
;
background
:
linear-gradient
(
90deg
,
#2E75E6
0%
,
#5E58EE
100%
);
box-shadow
:
1rpx
3rpx
12rpx
0rpx
rgba
(
0
,
0
,
0
,
0
.04
);
}
}
}
</
style
>
\ No newline at end of file
pages.json
View file @
c02bee8e
...
@@ -71,9 +71,9 @@
...
@@ -71,9 +71,9 @@
"enablePullDownRefresh"
:
false
"enablePullDownRefresh"
:
false
}
}
},
{
},
{
"path"
:
"
transferChange/transferChange
"
,
"path"
:
"
orderAllPodSign/orderAllPodSign
"
,
"style"
:
{
"style"
:
{
"navigationBarTitleText"
:
"
中转换车
"
,
"navigationBarTitleText"
:
"
整单签收
"
,
"enablePullDownRefresh"
:
false
"enablePullDownRefresh"
:
false
}
}
},
{
},
{
...
...
pages/order/order.vue
View file @
c02bee8e
...
@@ -54,8 +54,6 @@
...
@@ -54,8 +54,6 @@
let
reqData
=
{
let
reqData
=
{
"args"
:
{
pageNum
,
pageSize
}
"args"
:
{
pageNum
,
pageSize
}
}
}
console
.
log
(
'2222============='
)
console
.
log
(
reqData
)
if
(
this
.
searchValue
){
if
(
this
.
searchValue
){
reqData
.
args
.
restrictions
=
[{
reqData
.
args
.
restrictions
=
[{
"field"
:
'order_base_no'
,
"field"
:
'order_base_no'
,
...
@@ -84,8 +82,6 @@
...
@@ -84,8 +82,6 @@
</
script
>
</
script
>
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
.orderList
{
.orderList
{
.search-input
{
.search-input
{
width
:
100%
;
width
:
100%
;
...
...
pages/order_pod/order_pod.vue
View file @
c02bee8e
<
template
>
<
template
>
<view
class=
"orderList content_box"
>
<view
class=
"orderPod content_box"
>
<orderItem
v-for=
"( order, index ) in orderList"
:propData=
"order"
:key=
"index"
/>
<view
class=
"search-input flex_center"
>
<u-search
searchIconSize=
"50"
searchIconColor=
"#FFFFFF"
placeholderColor=
'#FFFFFF'
color=
"#FFFFFF"
:showAction=
"false"
:placeholder=
"'请输入回单号'"
v-model=
"searchValue"
@
clickIcon=
"onSearch"
@
search=
"onSearch"
@
clear=
"onSearch"
/>
</view>
<view
class=
"tabs-outer"
>
<view
class=
"tabs flex"
>
<text
:class=
"['tab',
{'active' : tabActive==='空'}]" @click="switchTab('空')">未回单
</text>
<text
:class=
"['tab',
{'active' : tabActive==='非空'}]" @click="switchTab('非空')">已回单
</text>
</view>
</view>
<view
class=
"select-options"
>
<orderPodItem
v-for=
"( order, index ) in orderPod"
:propData=
"order"
:key=
"index"
/>
</view>
<!-- 空状态 -->
<!-- 空状态 -->
<view
class=
"emptyImg flex_col"
v-if=
"!order
List
.length"
>
<view
class=
"emptyImg flex_col"
v-if=
"!order
Pod
.length"
>
<image
mode=
"aspectFit"
src=
"../../static/img/empty/shipmentEmpty.png"
/>
<image
mode=
"aspectFit"
src=
"../../static/img/empty/shipmentEmpty.png"
/>
<text
class=
"empty-text"
>
暂时没有
订
单
</text>
<text
class=
"empty-text"
>
暂时没有
回
单
</text>
</view>
</view>
</view>
</view>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
getOrder
Base
List
}
from
'../../api/apiList.js'
import
{
getOrder
PodList
,
getOrderPodSing
List
}
from
'../../api/apiList.js'
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
pageNum
:
1
,
//页码
pageNum
:
1
,
//页码
pageSize
:
10
,
//每页条数
pageSize
:
10
,
//每页条数
order
List
:
[],
order
Pod
:
[],
//回单数据
loadMore
:
true
,
//加载更多
loadMore
:
true
,
//加载更多
searchValue
:
""
,
//搜索值
tabActive
:
"空"
,
};
};
},
},
onLoad
()
{
/*
onLoad() {
this.initData()
this.initData()
},*/
onShow
()
{
this
.
pageNum
=
1
this
.
orderPod
=
[]
this
.
initData
()
},
},
//下拉刷新
//下拉刷新
onPullDownRefresh
()
{
onPullDownRefresh
()
{
this
.
pageNum
=
1
this
.
pageNum
=
1
this
.
order
List
=
[]
this
.
order
Pod
=
[]
this
.
initData
()
this
.
initData
()
},
},
// 触底加载更多
// 触底加载更多
...
@@ -36,28 +56,94 @@
...
@@ -36,28 +56,94 @@
this
.
loadMore
=
false
this
.
loadMore
=
false
}
}
},
},
methods
:{
methods
:{
initData
(){
initData
(){
const
{
pageNum
,
pageSize
}
=
this
const
{
pageNum
,
pageSize
}
=
this
let
d
ata
=
{
let
reqD
ata
=
{
"args"
:
{
pageNum
,
pageSize
}
"args"
:
{
pageNum
,
pageSize
}
}
}
getOrderBaseList
(
data
).
then
(
res
=>
{
if
(
this
.
searchValue
){
uni
.
stopPullDownRefresh
()
reqData
.
args
.
restrictions
=
[{
const
data
=
res
.
list
"field"
:
'pod_no'
,
if
(
data
.
length
>
0
)
{
"type"
:
"like"
,
//EQ精准匹配,LK模糊匹配
this
.
orderList
=
this
.
orderList
.
concat
(
data
)
"value"
:
this
.
searchValue
this
.
pageNum
+=
1
}]
this
.
loadMore
=
true
}
}
if
(
this
.
tabActive
==
'空'
)
{
})
getOrderPodList
(
reqData
).
then
(
res
=>
{
}
uni
.
stopPullDownRefresh
()
const
data
=
res
.
data
.
data
.
datas
if
(
data
.
length
>
0
)
{
this
.
orderPod
=
this
.
orderPod
.
concat
(
data
)
this
.
pageNum
+=
1
this
.
loadMore
=
true
}
})
}
else
{
getOrderPodSingList
(
reqData
).
then
(
res
=>
{
uni
.
stopPullDownRefresh
()
const
data
=
res
.
data
.
data
.
datas
if
(
data
.
length
>
0
)
{
this
.
orderPod
=
this
.
orderPod
.
concat
(
data
)
this
.
pageNum
+=
1
this
.
loadMore
=
true
}
})
}
},
//初始化数据
switchTab
(
key
)
{
if
(
this
.
tabActive
!==
key
)
{
uni
.
pageScrollTo
({
scrollTop
:
0
})
this
.
tabActive
=
key
this
.
onReload
()
}
},
// 刷新页面
onReload
()
{
this
.
orderPod
=
[]
this
.
pageNum
=
1
this
.
initData
()
},
// 搜索功能
onSearch
()
{
this
.
pageNum
=
1
this
.
orderPod
=
[]
this
.
initData
()
},
}
}
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
.orderList
{
.orderPod
{
.search-input
{
width
:
100%
;
top
:
0
;
z-index
:
999
;
height
:
100rpx
;
background
:
linear-gradient
(
to
bottom
,
#005BB5
0%
,
#005BB5
50%
);
/
deep
/
.u-search__content
{
height
:
80rpx
;
margin
:
24rpx
;
background-color
:
rgba
(
240
,
240
,
240
,
.5
)
!
important
;
.u-search__content__input
{
width
:
50rpx
;
background-color
:
transparent
!
important
;
}
}
}
/
deep
/
.select-options
{
//margin-top: 35px
}
.emptyImg
{
.emptyImg
{
position
:
absolute
;
position
:
absolute
;
left
:
50%
;
left
:
50%
;
...
@@ -69,5 +155,34 @@
...
@@ -69,5 +155,34 @@
text-align
:
center
;
text-align
:
center
;
}
}
}
}
.tabs-outer
{
background
:
#FAFAFA
;
position
:
-
webkit-sticky
;
position
:
sticky
;
top
:
0
;
z-index
:
1
;
.tabs
{
color
:
#8C8C8C
;
font-weight
:
400
;
margin
:
24rpx
24rpx
0
;
background
:
#FFFFFF
;
border-radius
:
40rpx
;
justify-content
:
space-between
;
align-items
:
center
;
line-height
:
48rpx
;
.tab
{
padding
:
14rpx
95rpx
;
border-radius
:
40rpx
;
}
.active
{
font-weight
:
500
;
color
:
#2E75E6
;
background
:
rgba
(
46
,
117
,
230
,
0
.15
);
border-radius
:
40rpx
;
}
}
}
}
}
</
style
>
</
style
>
subpkg/orderAllPodSign/orderAllPodSign.vue
0 → 100644
View file @
c02bee8e
<
template
>
<view
class=
"orderAllPodSign-list content_box"
>
<view
class=
"orderAllPodSign-item"
>
<!-- 基本信息 -->
<view
class=
"module-title flex"
>
<text
class=
"font_bolder"
>
基本信息
</text>
</view>
<bs-customCell
label=
"基础订单号 :"
:value=
"podList.pod_no"
labelCol=
"3"
wrapCol=
"6"
/>
<bs-customCell
label=
"回单类型 :"
:value=
"podList.pod_type_label"
labelCol=
"3"
wrapCol=
"6"
/>
<bs-customCell
label=
"回单数量 :"
:value=
"podList.pod_count"
labelCol=
"2.5"
wrapCol=
"6"
/>
<view
class=
" flex_sb"
>
<view
style=
"width: 50%;float: left;"
>
<bs-customCell
label=
"始发地 :"
:value=
"podList.source_location_name"
labelCol=
"4.5"
wrapCol=
"6"
/>
</view>
<view
style=
"width: 50%;float: left;"
>
<bs-customCell
label=
"目的地 :"
:value=
"podList.dest_location_name"
labelCol=
"4.5"
wrapCol=
"6"
/>
</view>
</view>
<bs-customCell
label=
"承运商 :"
:value=
"podList.servprov_name"
labelCol=
"2"
wrapCol=
"8"
/>
<!-- 拖车信息 -->
<view
class=
"module-title flex"
>
<text
class=
"font_bolder"
>
拖车信息
</text>
</view>
<bs-customCell
label=
"运单号 :"
:value=
"podList.shipment_no"
labelCol=
"2"
wrapCol=
"6"
/>
<bs-customCell
label=
"订舱/托书号 :"
:value=
"podList.sp__booking_no"
labelCol=
"3"
wrapCol=
"6"
/>
<bs-customCell
label=
"车牌号 :"
:value=
"podList.truck_no"
labelCol=
"2"
wrapCol=
"6"
/>
<view
class=
" flex_sb"
>
<view
style=
"width: 50%;float: left;"
>
<bs-customCell
label=
"计划提货 :"
:value=
"podList.sp__local_etd"
labelCol=
"4.5"
wrapCol=
"6"
/>
</view>
<view
style=
"width: 50%;float: left;"
>
<bs-customCell
label=
"实际提货 :"
:value=
"podList.sp__local_atd"
labelCol=
"4.5"
wrapCol=
"6"
/>
</view>
</view>
<view
class=
" flex_sb"
>
<view
style=
"width: 50%;float: left;"
>
<bs-customCell
label=
"计划进港 :"
:value=
"podList.sp__local_eta"
labelCol=
"4.5"
wrapCol=
"6"
/>
</view>
<view
style=
"width: 50%;float: left;"
>
<bs-customCell
label=
"实际进港 :"
:value=
"podList.sp__local_ata"
labelCol=
"4.5"
wrapCol=
"6"
/>
</view>
</view>
<!-- 上传回单 -->
<view
class=
"module-title flex"
>
<text
class=
"font_bolder"
>
上传回单
</text>
</view>
<!-- 注册内容 -->
<u--form
:model=
"formData"
:rules=
"rules"
ref=
"myForm"
errorType=
'none'
>
<view
class=
"basic-info"
>
<u-form-item
prop=
"sign_time"
required
label=
"签收时间"
labelWidth=
"35%"
borderBottom
>
<view
@
click=
"onVisibleDate('sign_time')"
>
<u-input
:disabledColor=
"'#ffffff'"
disabled
border=
"none"
readonly
placeholder=
"请选择签收时间"
:value=
"convertTime(formData.sign_time)"
/>
</view>
</u-form-item>
<u-form-item
prop=
"m_vsl_voy"
label=
"应签收数量"
labelWidth=
"25%"
borderBottom
>
<u-input
:disabledColor=
"'#ffffff'"
border=
"none"
v-model=
"formData.m_vsl_voy"
/>
</u-form-item>
<u-form-item
prop=
"f_vsl_voy"
label=
"签收数量"
labelWidth=
"35%"
borderBottom
>
<u-input
:disabledColor=
"'#ffffff'"
border=
"none"
v-model=
"formData.f_vsl_voy"
/>
</u-form-item>
</view>
</u--form>
<!-- 上传图片 -->
<view
class=
"uploader-img"
>
<bs-uploader
ref=
"myUploadImg"
:required=
"requiredStatus"
uploadTitle=
"上传图片"
/>
</view>
</view>
<!-- 底部按钮 -->
<view
class=
"operation-btn flex_sb"
>
<button
class=
"backBtn common_btn"
@
click=
"onNavBack"
>
返回
</button>
<button
class=
"submitBtn common_btn"
@
click=
"onSubmitForm"
>
确认
</button>
</view>
<!-- 类型选择动作面板 -->
<bs-selectPopup
:popTitle=
"popTitle"
:selectEnum=
"optionEnums"
:visible=
"visible2"
@
onVisible=
"onVisible"
@
onConfirm=
"onConfirmPicker"
/>
<!-- 时间选择 -->
<bs-datetimePicker
ref=
"myTimePicker"
:visible=
"showPopup"
@
onVisible=
"onVisibleDate"
@
onSelsectDate=
"onSelsectDate"
/>
</view>
</
template
>
<
script
>
import
{
queryShipownerAll
,
updateTmBlEvent
,
OMOrderDetail
,
OROrderDetail
}
from
'../../api/apiList.js'
import
{
formatGMT
}
from
'../../utils/util'
export
default
{
name
:
'orderAllPodSign'
,
options
:
{
styleIsolation
:
'shared'
},
data
()
{
return
{
pageNum
:
1
,
//页码
pageSize
:
10
,
//每页条数
podList
:
''
,
//订单列表,当默认为{}时,小程序会自动转结构
rows
:
[],
//当前展开面板
formData
:
{
sign_time
:
""
,
//签收时间
sign_qty
:
""
,
//签收数量
plan_qty
:
""
,
//应签收数量
},
rules
:
{
'sign_time'
:
{
required
:
true
},
//签收时间
'sign_qty'
:
{
required
:
true
},
//签收数量
},
showPopup
:
false
,
//时间选择
visibleKey
:
''
,
//当前显示字段的key
optionEnums
:
[],
//候选项枚举
popTitle
:
''
,
//弹窗标题
visible
:
false
,
//类型选择
viewEnums
:[],
//船公司枚举视图
searchValue
:
""
,
//搜索值--船公司
selectEnum
:[],
//接受返回值
}
},
onLoad
(
options
)
{
const
data
=
getApp
().
globalData
.
orderAllPodSign
const
isEmpty
=
!
Object
.
keys
(
data
).
length
// this.podList.sp__local_etd = data.sp__local_etd==""?"":formatGMT(data.sp__local_etd, 'D') ;
// this.podList.sp__local_atd = data.sp__local_atd==""?"":formatGMT(data.sp__local_atd, 'D');
// this.podList.sp__local_eta = data.sp__local_eta==""?"":formatGMT(data.sp__local_eta, 'D') ;
// this.podList.sp__local_ata = data.sp__local_ata==""?"":formatGMT(data.sp__local_ata, 'D');
this
.
podList
=
data
;
this
.
isEmpty
=
isEmpty
if
(
!
isEmpty
)
{
this
.
activeNames
=
[
data
.
id
]
}
},
methods
:
{
showProcess
()
{
this
.
visible
=
true
},
// 时间选择
onSelsectDate
(
dateInfo
)
{
const
{
timestamp
}
=
dateInfo
this
.
setFormData
(
timestamp
)
this
.
showPopup
=
false
},
//关闭时间选择框
onVisibleDate
(
type
)
{
if
(
type
)
{
this
.
visibleKey
=
type
}
this
.
showPopup
=
!
this
.
showPopup
},
onSearchclear
(){
this
.
selectEnum
=
[]
this
.
searchValue
=
''
},
//类型选择
async
onVisible
(
type
)
{
if
(
this
.
visible2
)
{
this
.
visible2
=
false
}
else
{
let
optionEnums
=
[]
let
setKey
=
'viewEnums'
//要设置的字段Key
if
(
type
==
'multimodal_transport'
)
{
setKey
=
'genderViewEnums'
optionEnums
=
[{
label
:
'陆改铁含短驳'
,
value
:
'land_to_railway'
},
{
label
:
'陆改水含短驳'
,
value
:
'land_to_water'
},
{
label
:
'全程拖车'
,
value
:
'road'
},
{
label
:
'第六港'
,
value
:
'sixth_port'
},
{
label
:
'内装'
,
value
:
'interior'
}]
}
if
(
type
==
"shipowner"
)
{
const
res
=
await
queryShipownerAll
()
optionEnums
=
res
.
data
.
data
.
datas
}
this
.
setViewEnums
(
optionEnums
,
setKey
)
this
.
optionEnums
=
optionEnums
this
.
visibleKey
=
type
this
.
visible2
=
true
}
},
// 提交表单数据
onSubmitForm
()
{
const
rows
=
getApp
().
globalData
.
orderAllPodSign
;
this
.
formData
.
rows
=
rows
;
this
.
formData
.
bl_event_code
=
"booking_confirmed"
;
var
baseData
=
{
"aux"
:
{
"rows"
:
rows
,
"aux"
:
this
.
formData
,
},
}
//订舱委托确认操作
updateTmBlEvent
(
baseData
).
then
(
res
=>
{
if
(
res
.
data
.
data
.
messageType
===
'success'
)
{
uni
.
showToast
({
title
:
'确认成功!'
,
duration
:
1000
})
setTimeout
(()
=>
{
uni
.
navigateBack
()
},
1500
)
}
})
},
//设置显示枚举
setViewEnums
(
optionEnums
,
key
)
{
let
viewEnums
=
{}
optionEnums
.
map
(
item
=>
{
viewEnums
[
item
.
value
]
=
item
.
label
})
this
[
key
]
=
viewEnums
},
//确认选择
onConfirmPicker
(
value
)
{
this
.
setFormData
(
value
)
this
.
visible
=
false
},
//页面展示时间戳转换为日期
convertTime
(
timestamp
)
{
if
(
!
timestamp
)
return
const
nowDate
=
new
Date
(
timestamp
)
var
year
=
nowDate
.
getFullYear
();
var
month
=
nowDate
.
getMonth
()
+
1
;
var
date
=
nowDate
.
getDate
();
return
`
${
year
}
-
${
month
}
-
${
date
}
`
},
//设置formData
setFormData
(
value
)
{
const
key
=
this
.
visibleKey
if
(
key
.
includes
(
'.'
))
{
//对象特殊处理
const
keys
=
key
.
split
(
'.'
)
this
.
formData
[
keys
[
0
]][
keys
[
1
]]
=
value
}
else
{
this
.
formData
[
key
]
=
value
}
},
}
}
</
script
>
<
style
lang=
"scss"
>
.orderAllPodSign-list
{
.module-title
{
margin-top
:
20rpx
;
//padding: 15rpx 0rpx 16rpx;
//background-color:#a2a2a2;
.vertical-separate
{
height
:
40rpx
;
border-left
:
7rpx
solid
#797979
;
margin-right
:
20rpx
;
}
}
.select-container
{
min-width
:
70vw
;
height
:
50vh
;
padding
:
30rpx
;
font-weight
:
400
;
.popTitle
{
color
:
#8C8C8C
;
font-size
:
32rpx
;
text-align
:
center
;
margin-bottom
:
44rpx
;
}
.select-list
{
height
:
460rpx
;
}
}
.orderAllPodSign-item
{
padding
:
32rpx
;
margin-bottom
:
24rpx
;
background
:
#FFFFFF
;
.detail-title
{
font-size
:
28rpx
;
padding
:
8rpx
0
30rpx
;
border-bottom
:
1rpx
solid
#E5E5E5
;
.t-icon-order
{
width
:
50rpx
;
height
:
50rpx
;
margin-right
:
20rpx
;
}
}
/
deep
/
.custom-cell-row
{
margin-top
:
10rpx
;
.custom-cell-label
{
color
:
#8C8C8C
;
}
}
.outer-frame
{
margin-top
:
32rpx
;
border-radius
:
16rpx
;
border
:
2rpx
solid
#F0F0F0
;
overflow
:
hidden
;
.foldPanel-title
{
color
:
#2E75E6
;
font-size
:
28rpx
;
padding-left
:
20rpx
;
height
:
96rpx
;
background
:
rgba
(
46
,
117
,
230
,
.1
);
.foldPanel-right-icon
{
margin-right
:
20rpx
;
}
}
/
deep
/
.cargo-detail-table
{
background
:
#FFFFFF
;
padding-bottom
:
10rpx
;
.detail-row-title
{
color
:
#8C8C8C
;
background
:
#FAFAFA
;
padding
:
20rpx
0
;
}
.detail-col-item
{
margin
:
20rpx
;
.cargo-title
{
font-size
:
28rpx
;
padding-left
:
20rpx
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
}
}
}
}
.snapshoot
image
{
margin
:
20rpx
15rpx
;
width
:
140rpx
;
height
:
140rpx
;
}
/
deep
/
.basic-info
,
/
deep
/
.driving-license
{
padding
:
0
10rpx
;
background-color
:
#ffffff
;
.input-tip
{
font-size
:
28rpx
;
color
:
#BFBFBF
;
}
.u-form-item__body__left__content__label
{
color
:
#8C8C8C
;
font-size
:
28rpx
;
}
.u-form-item__body
{
padding
:
25rpx
0
;
}
.u-icon
{
margin-left
:
20rpx
;
}
.u-upload__wrap
>
view
{
width
:
100%
;
}
.previewImages
{
width
:
100%
;
.previewImg
{
width
:
100%
!
important
;
height
:
240rpx
!
important
;
}
}
.uploadeBtn
{
width
:
100%
!
important
;
height
:
240rpx
!
important
;
margin-bottom
:
30rpx
;
margin-left
:
0
!
important
;
}
.orderTotal
{
display
:
none
;
}
}
}
</
style
>
subpkg/transferChange/transferChange.vue
deleted
100644 → 0
View file @
90f65b22
<
template
>
<view
class=
"transferChange content_box "
>
<u-toast
ref=
"uToast"
/>
<bs-pageHeader-orderNo
:shipmentNo=
"shipmentNo"
/>
<!-- 中转明细-->
<view
class=
"transfer-datail"
>
<u--form
:model=
"formData"
:rules=
"rules"
ref=
"myForm"
errorType=
'none'
>
<u-form-item
prop=
"stop"
required
label=
"中转地址"
labelWidth=
"30%"
:borderBottom=
"isTransfer"
>
<view
@
click=
"onNavTransferDetail"
>
<u-input
border=
"none"
readonly
inputAlign=
"left"
placeholder=
"选择中转地址"
placeholderClass=
"input-tip"
:value=
"transferAddress.name"
/>
</view>
<u-icon
slot=
"right"
name=
"arrow-right"
@
click=
"onNavTransferDetail"
/>
</u-form-item>
<!-- 中转换车显示司机信息 -->
<template
v-if=
"isTransfer"
>
<u-form-item
prop=
"truckName"
required
label=
"车牌号"
labelWidth=
"30%"
borderBottom
>
<u-input
border=
"none"
required
inputAlign=
"left"
placeholder=
"输入车牌号"
placeholderClass=
"input-tip"
v-model=
"formData.truckName"
holdKeyboard
/>
</u-form-item>
<u-form-item
prop=
"driver1Name"
required
label=
"司机姓名"
labelWidth=
"30%"
borderBottom
>
<u-input
border=
"none"
required
inputAlign=
"left"
placeholder=
"输入姓名"
placeholderClass=
"input-tip"
v-model=
"formData.driver1Name"
holdKeyboard
/>
</u-form-item>
<u-form-item
prop=
"driver1Tel"
required
label=
"司机电话"
labelWidth=
"30%"
>
<u-input
border=
"none"
required
type=
"number"
inputAlign=
"left"
placeholder=
"输入手机号"
placeholderClass=
"input-tip"
v-model=
"formData.driver1Tel"
holdKeyboard
/>
</u-form-item>
</
template
>
</u--form>
</view>
<!-- 底部按钮 -->
<view
class=
"operation-btn flex_sb"
>
<button
class=
"backBtn common_btn"
@
click=
"onNavBack"
>
返回
</button>
<button
class=
"submitBtn common_btn"
@
click=
"onSubmitForm"
>
确认
</button>
</view>
</view>
</template>
<
script
>
import
{
reportInfo
,
searchTransferAddress
}
from
'../../api/apiList'
import
{
formatGMT
}
from
'../../utils/util'
const
getUserLocation
=
require
(
'../../mixins/getUserLocation'
)
const
app
=
getApp
()
export
default
{
mixins
:
[
getUserLocation
],
data
()
{
return
{
formData
:
{
stop
:
""
,
//中转地址id
driver1Name
:
""
,
//司机姓名
driver1Tel
:
""
,
//司机手机号
truckName
:
""
,
//车牌号
},
rules
:
{
'stop'
:
{
required
:
true
},
'driver1Name'
:
{
required
:
true
},
'driver1Tel'
:
{
required
:
true
},
'truckName'
:
{
required
:
true
}
},
isTransfer
:
false
,
//是否为中转换车
action
:
''
,
//当前操作类型
selectedIds
:
[],
//当前运单id
shipmentNo
:
''
,
//运单号
transferAddress
:
{},
//中转地址
}
},
onLoad
:
function
(
options
)
{
const
data
=
JSON
.
parse
(
options
.
data
)
const
isTransfer
=
data
.
action
===
'transferAndChangeTruck'
//判断是否为中转换车
this
.
selectedIds
=
[
data
.
selectedId
]
this
.
action
=
data
.
action
this
.
isTransfer
=
isTransfer
this
.
shipmentNo
=
app
.
globalData
.
shipmentInfo
.
shipmentNo
const
title
=
isTransfer
?
'中转换车'
:
'中转卸货'
this
.
setNavTitle
(
title
)
this
.
getUserSetting
()
},
onShow
()
{
//自定义分配信息
const
{
transferAddress
}
=
app
.
globalData
this
.
formData
.
stop
=
transferAddress
.
id
this
.
transferAddress
=
transferAddress
},
methods
:
{
//设置页面头部标题
setNavTitle
(
title
)
{
uni
.
setNavigationBarTitle
({
title
:
title
,
})
},
// 提交表单数据
onSubmitForm
()
{
this
.
$refs
.
myForm
.
validate
().
then
(
res
=>
{
const
{
stop
,
driver1Name
,
driver1Tel
,
truckName
}
=
this
.
formData
const
{
longitude
,
latitude
,
address
,
time
}
=
this
.
locationInfo
const
{
isTransfer
,
action
}
=
this
let
baseData
=
{
"aux"
:
{
stop
,
longitude
,
latitude
,
address
,
time
,
eventSource
:
'CarrierApp'
},
'args'
:
{
"selectedIds"
:
this
.
selectedIds
}
}
if
(
isTransfer
)
{
baseData
.
aux
=
{
...
baseData
.
aux
,
driver1Name
,
driver1Tel
,
truckName
,
}
}
reportInfo
(
action
,
baseData
).
then
(
res
=>
{
if
(
res
.
data
.
messageType
===
'success'
)
{
uni
.
showToast
({
title
:
'操作成功'
,
duration
:
3000
})
setTimeout
(()
=>
{
uni
.
navigateBack
()
},
1500
)
}
})
}).
catch
(
errors
=>
{
this
.
$refs
.
uToast
.
show
({
message
:
'请完善必填信息'
,
})
})
},
//返回上一级页面
onNavBack
()
{
uni
.
navigateBack
()
},
//跳转地址详情
onNavTransferDetail
()
{
const
title
=
this
.
isTransfer
?
'中转换车'
:
'中转卸货'
const
data
=
{
title
,
id
:
this
.
formData
.
stop
}
uni
.
navigateTo
({
url
:
`/subpkg/transferAddressDetail/transferAddressDetail?data=
${
JSON
.
stringify
(
data
)}
`
,
})
}
}
}
</
script
>
<
style
lang=
"scss"
>
.transferChange
{
.location
{
.t-icon-current-location
{
min-width
:
50rpx
;
min-height
:
50rpx
;
}
.t-icon-location
{
min-width
:
45rpx
;
min-height
:
45rpx
;
}
.address
{
margin
:
0
20rpx
}
}
/
deep
/
.transfer-datail
{
padding
:
0
40rpx
;
background-color
:
#ffffff
;
margin
:
25rpx
0
;
.input-tip
{
font-size
:
28rpx
;
color
:
#BFBFBF
;
}
.u-form-item__body__left__content__label
{
color
:
#8C8C8C
;
font-size
:
28rpx
;
}
.u-form-item__body
{
padding
:
30rpx
0
;
}
.u-icon
{
margin-left
:
20rpx
;
}
}
.operation-btn
{
min-height
:
500rpx
;
}
/
deep
/
.u-form-item__body__left__content__required
{
left
:
-16rpx
!
important
;
line-height
:
150%
!
important
;
font-size
:
28rpx
!
important
;
top
:
0
!
important
;
}
}
</
style
>
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