Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
self-support
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
李俊赕
self-support
Commits
37caa8cc
Commit
37caa8cc
authored
Apr 28, 2021
by
李超鹏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update:add、update
scope:self-support body:完工页面交互调试
parent
02d04def
Changes
11
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
798 additions
and
725 deletions
+798
-725
order.js
src/common/api/order.js
+19
-2
XhCheckbox.vue
src/components/createCom/XhCheckbox.vue
+17
-17
XhFiles.vue
src/components/createCom/XhFiles.vue
+122
-102
XhInput.vue
src/components/createCom/XhInput.vue
+3
-4
XhLocation.vue
src/components/createCom/XhLocation.vue
+27
-28
XhPicker.vue
src/components/createCom/XhPicker.vue
+1
-1
XhRadio.vue
src/components/createCom/XhRadio.vue
+20
-20
XhSelect.vue
src/components/createCom/XhSelect.vue
+11
-6
XhTime.vue
src/components/createCom/XhTime.vue
+6
-10
complete.vue
src/pages/order/complete.vue
+569
-534
detail.vue
src/pages/order/detail.vue
+3
-1
No files found.
src/common/api/order.js
View file @
37caa8cc
...
@@ -73,6 +73,21 @@ let orderApiFun = function(vm){
...
@@ -73,6 +73,21 @@ let orderApiFun = function(vm){
*/
*/
let
getWatermark
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
'wxh-worker-rest/rest/'
+
vm
.
vuex_token
+
'/photo/watermark'
,
params
);
let
getWatermark
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
'wxh-worker-rest/rest/'
+
vm
.
vuex_token
+
'/photo/watermark'
,
params
);
/**
* 获取订单的完工项目(配置+数据)
*/
let
getCompleteConfigAndData
=
async
(
orderId
)
=>
await
vm
.
$u
.
get
(
'wxh-worker-rest/rest/'
+
vm
.
vuex_token
+
'/order/'
+
orderId
+
'/maintain/info'
);
/**
* 查询措施
*/
let
getMeasure
=
async
(
params
=
{})
=>
await
vm
.
$u
.
get
(
'wxh-worker-rest/rest/service/'
+
vm
.
vuex_token
+
'/measure/queryMeasureItems'
,
params
);
/**
* 保存售后记录
*/
let
saveCompleteData
=
async
(
params
=
{},
orderId
)
=>
await
vm
.
$u
.
post
(
'wxh-worker-rest/rest/'
+
vm
.
vuex_token
+
'/order/'
+
orderId
+
'/maintain/saveMaintainInfoV2'
,
params
);
const
orderApi
=
{
const
orderApi
=
{
listByRecommendOrder
,
listByRecommendOrder
,
listOrderCount
,
listOrderCount
,
...
@@ -84,13 +99,15 @@ let orderApiFun = function(vm){
...
@@ -84,13 +99,15 @@ let orderApiFun = function(vm){
listOrderRecord
,
listOrderRecord
,
orderAccept
,
orderAccept
,
orderGan
,
orderGan
,
maintainWorkerCheckin
,
feedbackConfig
,
feedbackConfig
,
traceAndAppointment
,
traceAndAppointment
,
rejectOrder
,
rejectOrder
,
orderStandard
,
orderStandard
,
saveImage
,
saveImage
,
getWatermark
getWatermark
,
getCompleteConfigAndData
,
getMeasure
,
saveCompleteData
}
}
return
orderApi
return
orderApi
}
}
...
...
src/components/createCom/XhCheckbox.vue
View file @
37caa8cc
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<
template
>
<
template
>
<view
class=
"list"
>
<view
class=
"list"
>
<view
v-for=
"(item,index) in settings"
:key=
"index"
<view
v-for=
"(item,index) in settings"
:key=
"index"
:class=
"
{'txt':true,'active':checkStatus(item
)}" @click="setValue(item)">
{{
item
}}
:class=
"
{'txt':true,'active':checkStatus(item
.key)}" @click="setValue(item.key)">
{{
item
.
label
}}
</view>
</view>
</view>
</view>
</
template
>
</
template
>
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
},
},
computed
:
{
computed
:
{
settings
()
{
settings
()
{
return
this
.
item
.
setting
s
||
[]
return
this
.
item
.
fieldsOption
s
||
[]
}
}
},
},
watch
:
{},
watch
:
{},
...
...
src/components/createCom/XhFiles.vue
View file @
37caa8cc
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
<view
class=
"icon-del rotate"
></view>
<view
class=
"icon-del rotate"
></view>
</view>
</view>
</view>
</view>
<view
class=
"img-list"
@
click=
"choose"
>
<view
class=
"img-list"
>
<u-image
class=
"pic"
width=
"170rpx"
height=
"170"
@
click=
"selectUpload"
src=
"https://gitee.com/xuqu/uView/blob/master/static/uview/example/min_button.png"
></u-image>
<u-image
class=
"pic"
width=
"170rpx"
height=
"170"
@
click=
"selectUpload"
src=
"https://gitee.com/xuqu/uView/blob/master/static/uview/example/min_button.png"
></u-image>
</view>
</view>
<!--
<u-image
class=
"pic"
v-for=
"item in 6"
width=
"170rpx"
height=
"170"
src=
"'https://cdn.uviewui.com/uview/example/fade.jpg"
></u-image>
-->
<!--
<u-image
class=
"pic"
v-for=
"item in 6"
width=
"170rpx"
height=
"170"
src=
"'https://cdn.uviewui.com/uview/example/fade.jpg"
></u-image>
-->
...
@@ -23,12 +23,12 @@
...
@@ -23,12 +23,12 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
objMixin
from
'./obj
Mixin'
import
arrMixin
from
'./arr
Mixin'
import
baseFile
from
'@/components/upload/index'
;
import
baseFile
from
'@/components/upload/index'
;
export
default
{
export
default
{
name
:
'XhFiles'
,
name
:
'XhFiles'
,
components
:
{},
components
:
{},
mixins
:
[
obj
Mixin
,
baseFile
],
mixins
:
[
arr
Mixin
,
baseFile
],
props
:
{
props
:
{
files
:
{
files
:
{
type
:
Array
,
type
:
Array
,
...
@@ -60,17 +60,37 @@
...
@@ -60,17 +60,37 @@
},
},
'files'
:
{
// 处理相机拍照返回的图片
'files'
:
{
// 处理相机拍照返回的图片
handler
(
val
)
{
handler
(
val
)
{
this
.
imgList
=
val
.
map
(
v
=>
{
if
(
val
&&
val
.
length
>
0
){
v
.
path
=
v
.
src
val
.
forEach
((
item
,
index
,
array
)
=>
{
return
v
item
.
path
=
item
.
src
this
.
imgList
.
push
(
item
)
})
})
// this.imgList = val.map(v => {
// v.path = v.src
// return v
// })
this
.
setValue
()
this
.
setValue
()
}
},
},
deep
:
true
,
deep
:
true
,
immediate
:
true
,
immediate
:
true
,
},
// 'value'(val, oldVal){
// if(val){
// this.imgList = val.map(img =>{
// return {path:img}
// })
// }
// }
},
mounted
()
{
if
(
this
.
value
){
this
.
imgList
=
this
.
value
.
map
(
img
=>
{
return
{
path
:
img
}
})
}
}
this
.
setValue
()
},
},
mounted
()
{},
methods
:
{
methods
:
{
selectUpload
(){
selectUpload
(){
// 弹窗展示
// 弹窗展示
...
@@ -90,7 +110,7 @@
...
@@ -90,7 +110,7 @@
let
config
=
{
let
config
=
{
options
:{
options
:{
sourceType
:[
'album'
],
//['album', 'camera']
sourceType
:[
'album'
],
//['album', 'camera']
count
:
5
,
count
:
10
,
sizeType
:
[
'compressed'
]
sizeType
:
[
'compressed'
]
}
}
}
}
...
@@ -104,9 +124,8 @@
...
@@ -104,9 +124,8 @@
setValue
()
{
setValue
()
{
const
dataValue
=
[]
const
dataValue
=
[]
this
.
imgList
.
map
(
item
=>
{
this
.
imgList
.
map
(
item
=>
{
dataValue
.
push
(
item
.
key
)
dataValue
.
push
(
item
.
src
)
})
})
console
.
log
(
this
.
imgList
)
this
.
valueChange
(
dataValue
)
this
.
valueChange
(
dataValue
)
},
},
prviewImage
(
url
,
index
)
{
prviewImage
(
url
,
index
)
{
...
@@ -117,14 +136,15 @@
...
@@ -117,14 +136,15 @@
},
},
delFile
(
index
)
{
delFile
(
index
)
{
this
.
imgList
.
splice
(
index
,
1
)
this
.
imgList
.
splice
(
index
,
1
)
this
.
setValue
()
}
}
}
}
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.pic
{
.pic
{
margin-right
:
15rpx
;
//
margin-right: 15rpx;
margin-bottom
:
15rpx
;
//
margin-bottom: 15rpx;
&
:nth-child
(
3n
)
{
&
:nth-child
(
3n
)
{
margin-right
:
0
;
margin-right
:
0
;
}
}
...
...
src/components/createCom/XhInput.vue
View file @
37caa8cc
...
@@ -17,7 +17,6 @@
...
@@ -17,7 +17,6 @@
},
},
computed
:
{
computed
:
{
type
()
{
type
()
{
console
.
log
(
this
.
item
)
if
(
this
.
item
&&
this
.
item
.
fieldsType
==
'password'
||
this
.
item
.
fieldsType
==
'textarea'
)
{
if
(
this
.
item
&&
this
.
item
.
fieldsType
==
'password'
||
this
.
item
.
fieldsType
==
'textarea'
)
{
return
this
.
item
.
fieldsType
return
this
.
item
.
fieldsType
}
else
{
}
else
{
...
...
src/components/createCom/XhLocation.vue
View file @
37caa8cc
...
@@ -4,7 +4,6 @@
...
@@ -4,7 +4,6 @@
<view
class=
"list u-flex u-row-between"
>
<view
class=
"list u-flex u-row-between"
>
<image
class=
"item-image"
:src=
"mixingImage"
v-if=
"item.required"
></image>
<image
class=
"item-image"
:src=
"mixingImage"
v-if=
"item.required"
></image>
<view
class=
"u-m-r-20"
>
{{
item
.
fieldsTitle
}}
</view>
<view
class=
"u-m-r-20"
>
{{
item
.
fieldsTitle
}}
</view>
<!--
<u-button
type=
"primary"
size=
"mini"
@
click=
"$u.debounce(getLocation,1000)"
>
自动定位
</u-button>
-->
<view
class=
"u-flex-1 location-name"
>
<view
class=
"u-flex-1 location-name"
>
<u-icon
name=
"map"
color=
"#2979ff"
size=
"30"
></u-icon>
自动定位
<u-icon
name=
"map"
color=
"#2979ff"
size=
"30"
></u-icon>
自动定位
</view>
</view>
...
@@ -14,11 +13,11 @@
...
@@ -14,11 +13,11 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
objMixin
from
'./obj
Mixin'
import
arrMixin
from
'./arr
Mixin'
export
default
{
export
default
{
name
:
'XhLocation'
,
name
:
'XhLocation'
,
components
:
{},
components
:
{},
mixins
:
[
obj
Mixin
],
mixins
:
[
arr
Mixin
],
props
:
{},
props
:
{},
filters
:{},
filters
:{},
data
()
{
data
()
{
...
...
src/components/createCom/XhPicker.vue
View file @
37caa8cc
<!-- *******************
单级/多级 选择
******************* -->
<!-- *******************
服务措施
******************* -->
<
template
>
<
template
>
<view
class=
"picker-box"
>
<view
class=
"picker-box"
>
<view
class=
"u-flex u-row-between"
@
click=
"openPicker"
>
<view
class=
"u-flex u-row-between"
@
click=
"openPicker"
>
...
...
src/components/createCom/XhRadio.vue
View file @
37caa8cc
<!-- ******************* 单选框 ******************* -->
<!-- ******************* 单选框 ******************* -->
<
template
>
<
template
>
<view
class=
"list"
>
<view
class=
"list"
>
<view
v-for=
"(item,index) in settings"
:key=
"index"
:class=
"
{'txt':true,'active':item===dataValue}"
<view
v-for=
"(item,index) in settings"
:key=
"index"
:class=
"
{'txt':true,'active':item
.key
===dataValue}"
@click="setValue(item
)">
{{
item
}}
</view>
@click="setValue(item
.key)">
{{
item
.
label
}}
</view>
</view>
</view>
</
template
>
</
template
>
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
},
},
computed
:
{
computed
:
{
settings
(){
settings
(){
return
this
.
item
.
setting
s
||
[]
return
this
.
item
.
fieldsOption
s
||
[]
}
}
},
},
watch
:
{},
watch
:
{},
...
...
src/components/createCom/XhSelect.vue
View file @
37caa8cc
<!-- ******************* 单个下拉选择 ******************* -->
<!-- ******************* 单个下拉选择 ******************* -->
<
template
>
<
template
>
<view>
<view>
<u-input
v-model=
"dataValue
"
readOnly
@
click=
"show=true"
type=
"select"
/>
<u-input
:value=
"text
"
readOnly
@
click=
"show=true"
type=
"select"
/>
<u-action-sheet
:list=
"settings"
v-model=
"show"
@
click=
"actionSheetCallback"
></u-action-sheet>
<u-action-sheet
:list=
"settings"
v-model=
"show"
@
click=
"actionSheetCallback"
></u-action-sheet>
</view>
</view>
</
template
>
</
template
>
...
@@ -28,22 +28,27 @@
...
@@ -28,22 +28,27 @@
},
},
settings
()
{
settings
()
{
let
result
=
[]
let
result
=
[]
let
settings
=
this
.
item
.
setting
s
||
[]
let
settings
=
this
.
item
.
fieldsOption
s
||
[]
result
=
settings
.
map
(
item
=>
{
result
=
settings
.
map
(
item
=>
{
return
{
return
{
text
:
item
text
:
item
.
label
,
id
:
item
.
key
}
}
})
})
return
result
return
result
},
text
(){
let
option
=
this
.
item
.
fieldsOptions
.
find
(
a
=>
{
return
a
.
key
===
this
.
dataValue
})
return
option
?
option
.
label
:
''
}
}
},
},
watch
:
{},
watch
:
{},
mounted
()
{},
mounted
()
{},
methods
:
{
methods
:
{
actionSheetCallback
(
index
)
{
actionSheetCallback
(
index
)
{
let
txt
=
this
.
settings
[
index
].
text
;
let
id
=
this
.
settings
[
index
].
id
;
this
.
dataValue
=
txt
this
.
dataValue
=
id
this
.
valueChange
(
txt
)
this
.
valueChange
(
id
)
}
}
}
}
}
}
...
...
src/components/createCom/XhTime.vue
View file @
37caa8cc
...
@@ -2,8 +2,8 @@
...
@@ -2,8 +2,8 @@
<
template
>
<
template
>
<view
class=
"picker-box"
>
<view
class=
"picker-box"
>
<view
class=
"u-flex u-row-between"
@
click=
"openPicker"
>
<view
class=
"u-flex u-row-between"
@
click=
"openPicker"
>
<
view
class=
"txt"
>
{{
item
.
fieldsTitle
}}
</view
>
<
!--
<view
class=
"txt"
>
{{
item
.
fieldsTitle
}}
</view>
--
>
<view
class=
"txt u-flex-1"
>
{{
dataValue
}}
</view>
<view
class=
"txt u-flex-1"
>
{{
dataValue
||
'请选择时间'
}}
</view>
<u-icon
name=
"arrow-right"
color=
"#666"
size=
"28"
></u-icon>
<u-icon
name=
"arrow-right"
color=
"#666"
size=
"28"
></u-icon>
</view>
</view>
<u-picker
:params=
"params"
v-model=
"showPicker"
mode=
"time"
@
confirm=
"pickerConfirm"
></u-picker>
<u-picker
:params=
"params"
v-model=
"showPicker"
mode=
"time"
@
confirm=
"pickerConfirm"
></u-picker>
...
@@ -25,10 +25,9 @@
...
@@ -25,10 +25,9 @@
year
:
true
,
year
:
true
,
month
:
true
,
month
:
true
,
day
:
true
,
day
:
true
,
hour
:
true
,
hour
:
false
,
minute
:
true
,
minute
:
false
,
second
:
true
,
second
:
false
,
// 选择时间的时间戳
timestamp
:
true
,
timestamp
:
true
,
}
}
}
}
...
@@ -49,11 +48,8 @@
...
@@ -49,11 +48,8 @@
this
.
showPicker
=
true
this
.
showPicker
=
true
},
},
pickerConfirm
(
data
)
{
pickerConfirm
(
data
)
{
console
.
log
(
data
,
'DATA'
)
let
result
=
[]
let
result
=
[]
let
dataValue
=
data
.
year
+
'-'
+
data
.
month
+
'-'
+
data
.
day
+
' '
+
data
.
hour
+
':'
+
data
.
minute
+
let
dataValue
=
data
.
year
+
'-'
+
data
.
month
+
'-'
+
data
.
day
':'
+
data
.
second
console
.
log
(
dataValue
,
'dataValue'
)
this
.
dataValue
=
dataValue
this
.
dataValue
=
dataValue
this
.
valueChange
(
dataValue
)
this
.
valueChange
(
dataValue
)
},
},
...
...
src/pages/order/complete.vue
View file @
37caa8cc
This diff is collapsed.
Click to expand it.
src/pages/order/detail.vue
View file @
37caa8cc
...
@@ -378,6 +378,8 @@
...
@@ -378,6 +378,8 @@
// 去完工
// 去完工
uni
.
navigateTo
({
uni
.
navigateTo
({
url
:
'pages/order/complete?orderId='
+
this
.
order
.
orderId
url
:
'pages/order/complete?orderId='
+
this
.
order
.
orderId
+
"&categoryId="
+
this
.
order
.
categoryId
+
"&orderServiceType="
+
this
.
order
.
orderServiceType
})
})
},
},
/**
/**
...
...
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