Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xinrenli-app
Overview
Overview
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
郑云飞
xinrenli-app
Commits
3014828d
Commit
3014828d
authored
Mar 16, 2023
by
honghong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
发布页面修改,我的需求接口对接
parent
b992107c
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
320 additions
and
175 deletions
+320
-175
api/system/index.js
+20
-1
components/chengpeng-audio/free-audio.vue
+21
-12
components/form.vue
+128
-55
css/form.css
+0
-1
demand/index/index.vue
+34
-58
home/index/index.vue
+23
-13
main.js
+3
-0
my/feedback/index.vue
+3
-3
pages/demand/components/index.vue
+26
-18
pages/demand/index.vue
+29
-5
pages/home/index.vue
+15
-3
pages/release/index.vue
+12
-5
static/startStatus.png
+0
-0
static/stopStatus.png
+0
-0
utils/common.css
+6
-0
utils/request.js
+0
-1
utils/utils.js
+0
-0
No files found.
api/system/index.js
View file @
3014828d
...
...
@@ -11,7 +11,25 @@ const orderDetailMsg = (params) => {
return
ApiHttp
(
'/xinrenli/order/'
,
params
,
'GET'
)
}
//我的需求
const
myNeedList
=
(
params
)
=>
{
return
ApiHttp
(
'/xinrenli/order/MyNeeds'
,
params
,
'GET'
)
}
// 新增订单(发布)
const
addOrderFunction
=
(
params
)
=>
{
return
ApiHttp
(
'/xinrenli/order'
,
params
,
'POST'
)
}
// 修改订单(发布)
const
updateOrderFunction
=
(
params
)
=>
{
return
ApiHttp
(
'/xinrenli/order'
,
params
,
'PUT'
)
}
export
{
userNeedSquare
,
orderDetailMsg
orderDetailMsg
,
myNeedList
,
addOrderFunction
,
updateOrderFunction
}
\ No newline at end of file
components/chengpeng-audio/free-audio.vue
View file @
3014828d
<
template
>
<!-- 音频播放器组件 -->
<view
v-if=
'url'
class=
'flex justify-between align-center audio j-sb'
>
<view
class=
"d-flex a-center"
>
<view
class=
'mr-3'
@
click=
'start(audioId)'
>
<view
v-if=
'url'
class=
'flex justify-between a-center audio j-sb'
>
<view
class=
"d-flex"
>
<view
:class=
"status ? 'timeCheck' : ''"
class=
"font"
v-if=
"duration != 0"
>
{{
duration
.
toFixed
(
0
)
}}
</view>
<view
class=
''
@
click=
'start(audioId)'
>
<image
:src=
'startPic'
class=
'icon'
v-show=
'!status'
></image>
<image
:src=
'endPic'
class=
'icon'
v-show=
'status'
></image>
</view>
<!--
<view
class=
'flex-1'
>
<slider
@
change=
'changeAudio'
:activeColor=
'activeColor'
:min=
'0'
:max=
'duration.toFixed(0)'
:value=
'currentTime.toFixed(0)'
:step=
'0.1'
></slider>
<slider
@
change=
'changeAudio'
:activeColor=
'activeColor'
:min=
'0'
:max=
'duration.toFixed(0)'
:value=
'currentTime.toFixed(0)'
:step=
'0.1'
></slider>
</view>
-->
<
view>
{{
getTime
(
Math
.
round
(
currentTime
))
}}
</view
>
<
!--
<view>
{{
getTime
(
Math
.
round
(
currentTime
))
}}
</view>
--
>
</view>
<view
@
click=
"handleIconDel"
>
<view>
{{
getTime
(
Math
.
round
(
currentTime
))
}}
</view>
<view
@
click=
"handleIconDel"
v-show=
"isDel"
>
<u-icon
name=
"close-circle-fill"
color=
"#D9001B"
size=
"32"
></u-icon>
</view>
</view>
...
...
@@ -23,7 +26,7 @@
return
{
context
:
null
,
currentTime
:
0
,
duration
:
10
0
,
duration
:
0
,
status
:
false
}
},
...
...
@@ -35,7 +38,8 @@
},
startPic
:
String
,
endPic
:
String
,
audioId
:
[
String
,
Number
]
audioId
:
[
String
,
Number
],
isDel
:
true
},
created
()
{
this
.
context
=
uni
.
createInnerAudioContext
();
...
...
@@ -54,7 +58,7 @@
})
},
methods
:
{
handleIconDel
(){
handleIconDel
()
{
this
.
$emit
(
'delete'
)
},
start
(
id
)
{
//点击播放
...
...
@@ -120,12 +124,17 @@
<
style
>
.audio
{
background
:
#F4F4F4
;
padding
:
20
rpx
;
height
:
68
rpx
;
padding
:
0
20
rpx
;
font-size
:
24
rpx
;
}
.timeCheck
{
color
:
#2C66FF
;
}
.icon
{
width
:
30
rpx
;
height
:
30
rpx
;
width
:
28
rpx
;
height
:
28
rpx
;
}
.flex
{
...
...
components/form.vue
View file @
3014828d
<
template
>
<view>
<view
class=
"d-flex a-center j-sb form-item-height paddding-x-three"
>
<view
class=
"form-item-name"
>
标题
<span
class=
"must-sign"
>
*
</span></view>
<view
class=
"input-box"
>
<input
type=
"text"
placeholder=
"请输入标题"
>
</view>
</view>
<view
class=
"d-flex a-center j-sb form-item-height"
>
<view
class=
"form-item-name"
>
联系人
<span
class=
"must-sign"
>
*
</span></view>
<view
class=
"input-box"
>
<input
type=
"text"
placeholder=
"请输入联系人姓名"
>
</view>
</view>
<view
class=
"d-flex a-center j-sb form-item-height"
>
<view
class=
"form-item-name"
>
联系电话
<span
class=
"must-sign"
>
*
</span></view>
<view
class=
"input-box"
>
<input
type=
"text"
placeholder=
"请输入联系人手机号"
>
</view>
</view>
<view
class=
"d-flex a-center j-sb form-item-height"
>
<view
class=
"form-item-name"
>
维修时间
<span
class=
"must-sign"
>
*
</span></view>
<view
class=
"content"
>
<view
class=
"content-form"
>
<u--form
:label-style=
"
{'font-size':'26rpx'}" label-position="top" labelWidth="150" :model="formInfo" ref="form" :rules="rules">
<u-form-item
required
label=
"标题"
prop=
"title"
borderBottom
:customStyle=
"
{
'flex-direction': 'row !important'}">
<u--input
fontSize=
"24rpx"
placeholderStyle=
"color: #999"
inputAlign=
"right"
border=
"none"
v-model=
"formInfo.title"
placeholder=
"请填写标题"
>
</u--input>
</u-form-item>
<u-form-item
required
label=
"联系人"
prop=
"linkman"
borderBottom
:customStyle=
"
{
'flex-direction': 'row !important',}">
<u--input
fontSize=
"24rpx"
placeholderStyle=
"color: #999"
inputAlign=
"right"
border=
"none"
v-model=
"formInfo.linkman"
placeholder=
"请输入联系人姓名"
>
</u--input>
</u-form-item>
<u-form-item
required
label=
"联系电话"
prop=
"phone"
borderBottom
:customStyle=
"
{
'flex-direction': 'row !important',
}">
<u--input
fontSize=
"24rpx"
placeholderStyle=
"color: #999"
inputAlign=
"right"
border=
"none"
v-model=
"formInfo.phone"
placeholder=
"请输入联系人手机号"
>
</u--input>
</u-form-item>
<u-form-item
required
label=
"维修时间"
prop=
"repairTime"
borderBottom
:customStyle=
"
{
'flex-direction': 'row !important',
}">
<view
class=
"input-box d-flex a-center"
@
click=
"showTime = true"
>
<u-datetime-picker
ref=
"datePicker"
:formatter=
"formatter"
v-model=
"time"
:show=
"showTime"
mode=
"date"
@
confirm=
"handleConfirmDate"
@
cancel=
"handleClose"
></u-datetime-picker>
<input
type=
"text"
v-model=
"time"
placeholder=
"请选择时间"
>
<u-datetime-picker
ref=
"datePicker"
:formatter=
"formatter"
v-model=
"formInfo.repairTime"
:show=
"showTime"
mode=
"date"
@
confirm=
"handleConfirmDate"
@
cancel=
"handleClose"
>
</u-datetime-picker>
<input
type=
"text"
v-model=
"formInfo.repairTime"
placeholder=
"请选择时间"
>
<u-icon
name=
"arrow-down-fill"
color=
"#000000"
size=
"28"
></u-icon>
</view>
</view>
<view
class=
"d-flex a-center j-sb form-item-height"
>
<view
class=
"form-item-name"
>
维修地址
<span
class=
"must-sign"
>
*
</span></view>
<view
class=
"input-box"
>
<input
type=
"text"
placeholder=
"请填写维修地址"
>
</view>
</view>
<view
class=
"d-flex a-center j-sb form-item-height"
>
<view
class=
"form-item-name"
>
预算金额
<span
class=
"must-sign"
>
*
</span></view>
<view
class=
"input-box"
>
<input
type=
"text"
placeholder=
"请填写预算金额"
>
</view>
</view>
</u--input>
</u-form-item>
<u-form-item
required
label=
"维修地址"
prop=
"repairAddress"
borderBottom
:customStyle=
"
{
'flex-direction': 'row !important',
}">
<u--input
fontSize=
"24rpx"
placeholderStyle=
"color: #999"
inputAlign=
"right"
border=
"none"
v-model=
"formInfo.repairAddress"
placeholder=
"请填写维修地址"
>
</u--input>
</u-form-item>
<u-form-item
required
label=
"预算金额"
prop=
"budget"
borderBottom
:customStyle=
"
{
'flex-direction': 'row !important',
}">
<u--input
fontSize=
"24rpx"
placeholderStyle=
"color: #999"
inputAlign=
"right"
border=
"none"
v-model=
"formInfo.budget"
placeholder=
"请填写预算金额"
>
</u--input>
</u-form-item>
<view>
<view>
<view
class=
"d-flex j-sb a-center form-item-height-only"
>
<view
class=
"form-item-name"
>
上传图片
</view>
<view
class=
"form-tips"
>
一下内容三选一必填
</view>
</view>
<view
class=
"paddding-x-three
"
>
<view
class=
"
"
>
<comUpload></comUpload>
</view>
</view>
...
...
@@ -54,7 +62,7 @@
<view
class=
"d-flex j-sb a-center form-item-height-only"
>
<view
class=
"form-item-name"
>
上传视频
</view>
</view>
<view
class=
"paddding-x-three
"
>
<view
class=
"
"
>
<comUpload
:acceptType=
"acceptType"
></comUpload>
</view>
</view>
...
...
@@ -78,11 +86,19 @@
</view>
</u-popup>
</view>
<view
class=
"paddding-x-three"
>
<view
class=
"form-item-name margin-y-two"
>
备注
</view>
<u--textarea
v-model=
"remark"
height=
"128"
placeholder=
"备注说明"
></u--textarea>
</view>
<u-form-item
label=
"备注"
prop=
"remark"
>
<u--textarea
maxlength=
"-1"
:customStyle=
"
{
marginTop: '20rpx',
background: '#F5F5F5',
border: 'none'
}" v-model="formInfo.remark" placeholder="备注说明" height="128rpx">
</u--textarea>
</u-form-item>
</u--form>
</view>
</view>
<view
class=
"submit-btn"
@
click=
"handlePublish"
>
发布需求
</view>
</view>
</
template
>
...
...
@@ -98,14 +114,49 @@
data
()
{
return
{
showTime
:
false
,
//时间选择器是否显示
time
:
undefined
,
//时间选择器的值
remark
:
''
,
acceptType
:
'video'
,
path
:
'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3'
,
voicePath
:
''
,
showPopup
:
false
showPopup
:
false
,
formInfo
:
{
title
:
undefined
,
//标题
linkman
:
undefined
,
//联系人
phone
:
undefined
,
//联系电话
repairTime
:
undefined
,
//维修时间
repairAddress
:
undefined
,
//维修地址
budget
:
undefined
,
//预算金额
remark
:
undefined
,
//备注说明
},
rules
:
{
title
:
{
type
:
'string'
,
required
:
true
,
message
:
'请填写标题'
,
trigger
:
[
'blur'
,
'change'
]
},
linkman
:
{
type
:
'string'
,
required
:
true
,
message
:
'请填写备注说明'
,
trigger
:
[
'blur'
,
'change'
]
},
repairAddress
:
{
type
:
'string'
,
required
:
true
,
message
:
'请填写备注说明'
,
trigger
:
[
'blur'
,
'change'
]
},
budget
:
{
type
:
'string'
,
required
:
true
,
message
:
'请填写备注说明'
,
trigger
:
[
'blur'
,
'change'
]
},
}
};
},
//暂停所有音频(一般用于页面切换时停止正在播放的音频)
onUnload
()
{
//普通页面在 onUnload 生命周期中执行
uni
.
$emit
(
'stop'
)
...
...
@@ -116,9 +167,19 @@
created
()
{
let
that
=
this
// 时间格式化默认值
that
.
t
ime
=
uni
.
$u
.
timeFormat
(
Number
(
new
Date
()),
'yyyy-mm-dd'
);
that
.
formInfo
.
repairT
ime
=
uni
.
$u
.
timeFormat
(
Number
(
new
Date
()),
'yyyy-mm-dd'
);
},
methods
:
{
//发布需求按钮
handlePublish
()
{
this
.
$refs
.
form
.
validate
().
then
(
res
=>
{
uni
.
$u
.
toast
(
'校验通过'
)
}).
catch
(
errors
=>
{
uni
.
$u
.
toast
(
'校验失败'
)
})
// this.$emit('submit', this.formInfo)
},
// 时间选择器确认事件
async
handleConfirmDate
(
e
)
{
// value:返回所选时间戳,mode:当前模式
...
...
@@ -127,7 +188,7 @@
// 时间格式化
const
timeFormat
=
uni
.
$u
.
timeFormat
;
let
timeValue
=
await
timeFormat
(
e
.
value
,
'yyyy-mm-dd'
);
that
.
t
ime
=
timeValue
that
.
formInfo
.
repairT
ime
=
timeValue
},
//时间选择器的关闭按钮事件
handleClose
()
{
...
...
@@ -166,15 +227,27 @@
}
</
script
>
<
style
>
@import
url("@/css/form.css")
;
<
style
lang=
"scss"
scoped
>
.content
{
&-form
{
margin
:
30
rpx
20
rpx
;
width
:
calc
(
100%
-
20
rpx
*
2
);
::v-deep
.u-border
{
border
:
0
!important
;
background
:
#F5F5F5
!important
;
/deep/
.u-form
{
width
:
calc
(
100%
-
20
rpx
*
2
)
;
margin
:
0
rpx
20
rpx
;
}
::v-deep
.u-upload__wrap__preview
{
margin
:
0
6
rpx
10
rpx
0
!important
;
}
}
@import
url("@/css/form.css")
;
//
::v-deep
.u-border
{
//
border
:
0
!important
;
//
background
:
#F5F5F5
!important
;
//
}
//
::v-deep
.u-upload__wrap__preview
{
//
margin
:
0
6
rpx
10
rpx
0
!important
;
//
}
</
style
>
css/form.css
View file @
3014828d
...
...
@@ -5,7 +5,6 @@
}
.form-item-height-only
{
height
:
103
rpx
;
padding
:
0
30
rpx
;
}
.form-item-name
{
font-size
:
26
rpx
;
...
...
demand/index/index.vue
View file @
3014828d
...
...
@@ -2,27 +2,27 @@
<view
class=
"content"
>
<view
class=
"content-textarea"
>
<view
class=
""
>
标题
</view>
<view
class=
""
>
270
</view>
<view
class=
""
>
{{
detailData
.
title
}}
</view>
</view>
<view
class=
"content-textarea"
>
<view
class=
""
>
联系人
</view>
<view
class=
""
>
270
</view>
<view
class=
""
>
{{
detailData
.
linkman
}}
</view>
</view>
<view
class=
"content-textarea"
>
<view
class=
""
>
联系电话
</view>
<view
class=
""
>
270
</view>
<view
class=
""
>
{{
detailData
.
phone
}}
</view>
</view>
<view
class=
"content-textarea"
>
<view
class=
""
>
维修时间
</view>
<view
class=
""
>
270
</view>
<view
class=
""
>
{{
detailData
.
repairTime
|
formatDate
}}
</view>
</view>
<view
class=
"content-textarea"
>
<view
class=
""
>
维修地址
</view>
<view
class=
""
>
270
</view>
<view
class=
""
>
{{
detailData
.
repairAddress
}}
</view>
</view>
<view
class=
"content-textarea"
>
<view
class=
""
>
预算金额
</view>
<view
class=
""
>
270
</view>
<view
class=
""
>
{{
detailData
.
budget
}}
</view>
</view>
<view
class=
"content-photograph"
>
<view
class=
""
>
上传图片
...
...
@@ -47,7 +47,7 @@
<view
class=
""
>
语音描述
</view>
<view
class=
"content-voice-audio"
@
click=
"doPlay()"
>
<view
class=
"content-voice-audio"
>
</view>
</view>
...
...
@@ -55,13 +55,14 @@
<view
class=
""
>
备注
</view>
<u--textarea
v-model=
"
value1
"
placeholder=
"请输入内容"
disabled
></u--textarea>
<u--textarea
v-model=
"
detailData.remark
"
placeholder=
"请输入内容"
disabled
></u--textarea>
</view>
<view
class=
"content-reject"
v-if=
"
subscript
== 1"
>
<view
class=
""
>
<view
class=
"content-reject"
v-if=
"
detailData.status
== 1"
>
<view
class=
"
font-bold
"
>
<text></text>
订单已驳回
</view>
<u--textarea
v-model=
"value1"
placeholder=
"请输入内容"
disabled
></u--textarea>
<view
class=
"paddding-x-two"
>
驳回理由:沟通金额没有谈妥
</view>
<!--
<u--textarea
v-model=
"detailData.value1"
placeholder=
"请输入内容"
disabled
></u--textarea>
-->
</view>
<view
class=
"content-reject"
v-if=
"subscript == 3 && subs== '1'"
>
<view
class=
""
>
...
...
@@ -80,6 +81,7 @@
</
template
>
<
script
>
import
{
orderDetailMsg
}
from
'../../api/system/index.js'
import
apiBaseConfig
from
'@/config/index.js'
;
export
default
{
data
()
{
...
...
@@ -87,61 +89,34 @@
imgBgUrl
:
apiBaseConfig
.
imgBgUrl
,
globalData
:
getApp
().
globalData
,
scrollTopHeader
:
0
,
detailInfo
:{},
//接收的参数
subscript
:
'0'
,
subs
:
'1'
subs
:
'1'
,
detailData
:{}
};
},
onLoad
(
option
)
{
this
.
subscript
=
option
.
subscript
if
(
option
.
detailInfo
){
this
.
detailInfo
=
JSON
.
parse
(
decodeURIComponent
(
option
.
detailInfo
))
console
.
log
(
this
.
detailInfo
,
'结束'
)
}
this
.
getOrder
()
return
this
.
subs
=
option
.
subs
this
.
timer
=
null
;
this
.
innerAudioContext
=
uni
.
createInnerAudioContext
();
// 监听音频进入可以播放状态的事件
this
.
innerAudioContext
.
onCanplay
(()
=>
{
this
.
innerAudioContext
.
duration
;
// 延迟大约300ms以上才能获取音频总时长
setTimeout
(()
=>
{
// 获取音频总时长
this
.
duration
=
this
.
formatSeconds
(
this
.
innerAudioContext
.
duration
);
},
300
)
});
// 监听音频播放
this
.
innerAudioContext
.
onPlay
(()
=>
{
// 获取当前音频的播放时间
this
.
timer
=
setInterval
(()
=>
{
this
.
currentTime
=
this
.
formatSeconds
(
this
.
innerAudioContext
.
currentTime
);
},
1000
)
})
},
methods
:
{
// 播放
doPlay
()
{
if
(
!
this
.
innerAudioContext
.
src
)
{
// 音频地址
this
.
innerAudioContext
.
src
=
"https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3"
;
}
this
.
innerAudioContext
.
play
();
},
// 暂停
doPause
()
{
this
.
innerAudioContext
.
pause
();
// 清除定时器
clearInterval
(
this
.
timer
);
},
// 将秒转换成03:30格式
formatSeconds
(
value
)
{
let
minute
=
parseInt
(
value
/
60
);
let
second
=
parseInt
(
value
%
60
);
if
(
minute
<
10
)
{
minute
=
"0"
+
minute
}
if
(
second
<
10
)
{
second
=
"0"
+
second
}
return
minute
+
":"
+
second
;
//获取订单详情列表
getOrder
(){
let
that
=
this
orderDetailMsg
({
id
:
that
.
detailInfo
.
id
}).
then
(
res
=>
{
console
.
log
(
'订单详情'
,
res
)
if
(
res
.
code
==
200
){
that
.
detailData
=
res
.
data
}
})
},
}
}
</
script
>
...
...
@@ -222,7 +197,7 @@
display
:
flex
;
margin-bottom
:
20
rpx
;
font-size
:
28
rpx
;
font-weight
:
700
;
//
font-weight
:
700
;
color
:
#333333
;
>text
{
...
...
@@ -235,4 +210,5 @@
}
}
}
</
style
>
home/index/index.vue
View file @
3014828d
...
...
@@ -5,7 +5,7 @@
标题
</view>
<view
class=
""
>
{{
orderDetail
.
title
}}
{{
orderDetail
&&
orderDetail
.
title
?
orderDetail
.
title
:
''
}}
</view>
</view>
<view
class=
"content-textarea"
>
...
...
@@ -13,42 +13,47 @@
成交金额
</view>
<view
class=
""
>
{{
orderDetail
.
actualAmount
}}
{{
orderDetail
&&
orderDetail
.
actualAmount
?
orderDetail
.
actualAmount
:
''
}}
</view>
</view>
<view
class=
"content-photograph"
>
<view
class=
"content-photograph"
>
<view
class=
""
>
图片说明
</view>
<view
class=
"content-photograph-photo"
>
<image
class=
"content-photograph-photo-graph"
src=
"../../static/logo.png
"
mode=
""
v-for=
"(v ,index) in
5"
:key=
"index
"
></image>
<image
class=
"content-photograph-photo-graph"
:src=
"v.url
"
mode=
""
v-for=
"(v ,index) in
orderDetail.fileVos"
:key=
"v.id"
v-if=
"v.fileType == 'picture'
"
></image>
</view>
<view
class=
"noData-text"
>
暂无数据
</view>
</view>
<view
class=
"content-frequency"
>
<view
class=
""
>
视频说明
</view>
<view
v-
for=
"(v ,index) in 2"
:key=
"index"
>
<video
id=
"myVideo"
src=
"https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/%E7%AC%AC1%E8%AE%B2%EF%BC%88uni-app%E4%BA%A7%E5%93%81%E4%BB%8B%E7%BB%8D%EF%BC%89-%20DCloud%E5%AE%98%E6%96%B9%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B@20200317.mp4
"
<view
v-
if=
"orderDetail && orderDetail.fileVos.length && v.fileType == 'video'"
v-for=
"(v ,index) in orderDetail.fileVos"
:key=
"v.id"
>
<video
v-if=
"v.fileType == 'video'"
id=
"myVideo"
:src=
"v.url
"
@
error=
"videoErrorCallback"
:danmu-list=
"danmuList"
enable-danmu
controls
:show-fullscreen-btn=
'false'
></video>
</view>
<view
class=
"noData-text"
>
暂无数据
</view>
</view>
<view
class=
"content-voice"
>
<view
class=
""
>
语音说明
</view>
<view
class=
"content-voice-audio"
@
click=
"doPlay()"
>
<view
class=
"margin-top-two"
>
<free-audio
startPic=
'../../static/stopStatus.png'
endPic=
'../../static/startStatus.png'
audioId=
'audio1'
:url=
'path'
:isDel=
"false"
></free-audio>
<view
class=
"noData-text"
>
暂无数据
</view>
</view>
<!--
<view
class=
"content-voice-audio"
@
click=
"doPlay()"
></view>
-->
</view>
<view
class=
"content-remarks"
>
<view
class=
""
>
备注说明
</view>
<u--textarea
v-model=
"
value1
"
placeholder=
"请输入内容"
disabled
></u--textarea>
<u--textarea
v-model=
"
orderDetail.remark
"
placeholder=
"请输入内容"
disabled
></u--textarea>
</view>
</view>
</view>
...
...
@@ -59,13 +64,18 @@
orderDetailMsg
}
from
'../../api/system/index.js'
import
apiBaseConfig
from
'@/config/index.js'
;
import
freeAudio
from
'../../components/chengpeng-audio/free-audio.vue'
export
default
{
components
:{
freeAudio
},
data
()
{
return
{
imgBgUrl
:
apiBaseConfig
.
imgBgUrl
,
globalData
:
getApp
().
globalData
,
scrollTopHeader
:
0
,
orderDetail
:{}
orderDetail
:{},
path
:
'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3'
};
},
onLoad
(
option
)
{
...
...
@@ -176,7 +186,7 @@
padding
:
30
rpx
0
rpx
;
>view
{
display
:
flex
;
//
display
:
flex
;
>video
{
margin-top
:
20
rpx
;
...
...
main.js
View file @
3014828d
...
...
@@ -8,6 +8,9 @@ Vue.use(uView);
import
uniGo
from
'@/utils/unIGO.js'
;
Vue
.
prototype
.
$uniGo
=
uniGo
;
import
checkRules
from
'@/utils/utils.js'
;
Vue
.
prototype
.
$checkRules
=
checkRules
import
utilsMethods
from
'@/utils/utils.js'
;
Vue
.
prototype
.
$utilsMethods
=
utilsMethods
;
// 底部导航
...
...
my/feedback/index.vue
View file @
3014828d
...
...
@@ -5,11 +5,11 @@
<u-form-item
required
label=
"标题"
prop=
"title"
borderBottom
:customStyle=
"
{
'flex-direction': 'row !important'
}">
<u--input
inputAlign=
"right"
maxlength=
"-1"
border=
"none"
v-model=
"model.title"
placeholder=
"请填写标题"
>
<u--input
inputAlign=
"right"
border=
"none"
v-model=
"model.title"
placeholder=
"请填写标题"
>
</u--input>
</u-form-item>
<u-form-item
required
label=
"备注"
prop=
"content"
borderBottom
>
<u--textarea
:customStyle=
"
{
<u-form-item
required
label=
"备注"
prop=
"content"
>
<u--textarea
maxlength=
"-1"
:customStyle=
"
{
marginTop: '20rpx',
background: '#F5F5F5',
border: 'none'
...
...
pages/demand/components/index.vue
View file @
3014828d
<
template
>
<view
class=
"content"
>
<view
class=
"content-matter"
v-for=
"(
v,index) in 20"
@
click=
"jump"
:key=
"index"
>
<view
class=
"content-matter"
v-for=
"(
item,index) in list"
@
click=
"jump(item)"
:key=
"index"
>
<view
class=
"content-matter-lampwick"
>
<view
class=
"content-matter-lampwick-lampw"
>
<view
:class=
"subscript == '1' ? 'only-bg-red' : 'common-bg'"
class=
""
></view>
<view
class=
""
>
灯泡灯芯坏了
</view>
<view
class=
""
>
{{
item
.
title
}}
</view>
</view>
<view
class=
"content-matter-lampwick-wick"
>
维修时间:
2023-02-23
维修时间:
{{
item
.
repairTime
|
formatDate
}}
</view>
</view>
<view
class=
"content-matter-substance"
>
<image
src=
"../../../static/logo.png"
mode=
""
></image>
<image
:src=
"item.fileVos[0].url"
mode=
""
></image>
<view
class=
""
>
<view
class=
""
>
说明:
有一个字不是特别亮,希望换一盏灯希望换一盏灯希望换一盏灯
说明:
{{
item
.
remark
?
item
.
remark
:
'暂无说明'
}}
</view>
<!-- // 已发布 -->
<view
class=
"buttoncolor"
v-if=
"subscript == '0'"
>
...
...
@@ -24,7 +24,7 @@
</view>
<!-- // 已驳回 -->
<view
class=
"d-flex a-end j-sb"
v-if=
"subscript == '1'"
>
<view
class=
"reject flex-1 hiddenMore"
>
<view
class=
"reject flex-1 hiddenMore"
>
驳回理由:没有明确问题描述没有明确问题描述没有明确问题描述没有明确问题描述
</view>
<button
@
click
.
stop=
"handleAgainAdd"
class=
"buttoncl"
style=
"margin-left: 20rpx;"
>
重新发布
</button>
...
...
@@ -34,7 +34,7 @@
<view
class=
"unpaid"
v-if=
"subscript == '2'"
>
<view
class=
"unpaid-paid"
>
<view
class=
""
>
已沟通审核通过,待支付
<text>
300元
</text>
已沟通审核通过,待支付
<text>
{{
item
.
actualAmount
?
item
.
actualAmount
:
0
}}
元
</text>
</view>
<view
class=
""
>
截止1小时内支付完成
<text>
00:59:42
</text>
...
...
@@ -64,6 +64,10 @@
props
:
{
subscript
:
{
type
:
String
,
},
list
:
{
type
:
Array
,
default
:
[]
}
},
components
:
{
...
...
@@ -82,11 +86,13 @@
onLoad
()
{
},
methods
:
{
// 跳转详情页
jump
(
)
{
jump
(
data
)
{
this
.
$uniGo
.
navigateTo
({
url
:
`/demand/index/index?subscript=
${
this
.
subscript
}
`
url
:
`/demand/index/index?detailInfo=
${
encodeURIComponent
(
JSON
.
stringify
(
data
))}
`
// url: `/demand/index/index?subscript=${this.subscript}`
});
},
// 跳转支付界面
...
...
@@ -101,33 +107,33 @@
this
.
title
=
'确认取消订单吗'
this
.
titbut
=
'1'
this
.
show
=
true
}
else
if
(
val
==
2
){
}
else
if
(
val
==
2
)
{
this
.
title
=
'确认提交退款申请吗'
this
.
titbut
=
'2'
this
.
show
=
true
}
else
if
(
val
==
3
){
}
else
if
(
val
==
3
)
{
this
.
$uniGo
.
navigateTo
({
url
:
`/demand/index/index?subscript=
${
this
.
subscript
}
&subs=
${
'1'
}
`
});
}
else
if
(
val
==
4
){
}
else
if
(
val
==
4
)
{
this
.
$uniGo
.
navigateTo
({
url
:
`/demand/index/index?subscript=
${
this
.
subscript
}
&subs=
${
'2'
}
`
});
}
},
//重新发布按钮事件
handleAgainAdd
(){
handleAgainAdd
()
{
let
that
=
this
that
.
$uniGo
.
navigateTo
({
url
:
`/demand/updateForm/updateForm`
url
:
`/demand/updateForm/updateForm`
})
},
// 再看看
aindex
()
{
aindex
()
{
this
.
show
=
false
},
// 取消订单2 立即退款3
aindexst
(
val
)
{
aindexst
(
val
)
{
// console.log(val)
this
.
show
=
false
}
...
...
@@ -165,10 +171,12 @@
border-radius
:
3
rpx
;
margin-right
:
10
rpx
;
}
.common-bg
{
.common-bg
{
background
:
#2C66FF
;
}
.only-bg-red
{
.only-bg-red
{
background
:
#FD0000
;
}
...
...
pages/demand/index.vue
View file @
3014828d
...
...
@@ -10,15 +10,15 @@
<view
v-show=
"subscript == index"
class=
"content-tabs-text-area"
></view>
</view>
</view>
<
!--
<template
v-if=
"arr && arr.length"
>
--
>
<comindex
class=
"content-mindex"
:subscript=
'subscript'
></comindex>
<
!--
</
template
>
--
>
<!--
<view v-else class="diagram">
<
template
v-if=
"statusNeedList && statusNeedList.length"
>
<comindex
:list=
"statusNeedList"
class=
"content-mindex"
:subscript=
'subscript'
></comindex>
<
/
template
>
<view
v-else
class=
"diagram"
>
<image
src=
"@/static/icon/qst.png"
mode=
""
></image>
<view
class=
""
>
暂无数据
</view>
</view>
-->
</view>
<com-tabbar
:list=
" [{
name: '首页',
icon: '/static/tabbar/tb1.png',
...
...
@@ -54,6 +54,7 @@
</template>
<
script
>
import
{
myNeedList
}
from
'../../api/system/index.js'
import
apiBaseConfig
from
'@/config/index.js'
;
import
uniGo
from
'@/utils/unIGO.js'
;
import
comindex
from
'@/pages/demand/components/index.vue'
...
...
@@ -74,6 +75,12 @@
name
:
'已接单'
}],
subscript
:
'0'
,
needInfo
:{
pageSize
:
1
,
pageNum
:
10
,
status
:
0
},
statusNeedList
:[]
}
},
components
:
{
...
...
@@ -84,10 +91,27 @@
if
(
option
.
id
){
this
.
subscript
=
option
.
id
}
this
.
getMyNeedList
()
},
methods
:
{
getMyNeedList
(){
let
that
=
this
that
.
needInfo
.
status
=
that
.
subscript
myNeedList
(
that
.
needInfo
).
then
(
res
=>
{
console
.
log
(
res
,
'我的需求'
)
if
(
res
.
code
==
200
){
if
(
res
.
total
>
0
){
that
.
statusNeedList
=
res
.
rows
}
else
{
that
.
statusNeedList
=
[]
}
}
})
},
jump
(
ind
)
{
let
that
=
this
this
.
subscript
=
ind
that
.
getMyNeedList
()
}
}
}
...
...
pages/home/index.vue
View file @
3014828d
...
...
@@ -24,11 +24,11 @@
{{
v
.
title
}}
</view>
<view
class=
""
>
说明:
{{
v
.
remark
}}
说明:
{{
v
.
remark
?
v
.
remark
:
'暂无说明'
}}
</view>
<view
class=
""
>
<text>
维修时间:
</text>
<text>
{{
v
.
repairTime
}}
</text>
<text>
{{
v
.
repairTime
|
formatDate
}}
</text>
</view>
</view>
</view>
...
...
@@ -86,6 +86,11 @@
type
:
'type'
}],
userNeedList
:[],
//需求广场列表
total
:
0
,
//列表总数
queryParams
:{
pageNum
:
1
,
pageSize
:
10
,
}
}
},
onLoad
()
{
...
...
@@ -95,13 +100,20 @@
// console.log('页面滚动了onPageScroll-app', res.scrollTop);
this
.
scrollTopHeader
=
res
.
scrollTop
;
},
onReachBottom
()
{
let
that
=
this
if
(
that
.
total
<
that
.
queryParams
.
pageNum
*
that
.
queryParams
.
pageSize
){
}
},
methods
:
{
getSquare
(){
userNeedSquare
().
then
(
res
=>
{
userNeedSquare
(
this
.
queryParams
).
then
(
res
=>
{
console
.
log
(
res
,
'需求广场'
)
if
(
res
.
code
==
200
){
if
(
res
.
total
>
0
){
this
.
userNeedList
=
res
.
rows
this
.
total
=
res
.
total
}
}
})
...
...
pages/release/index.vue
View file @
3014828d
...
...
@@ -2,8 +2,8 @@
<view>
<view
:style=
"
{ height: `calc(${globalData.statusBarHeight}rpx + 130rpx)` }">
</view>
<view
class=
"paddding-x-two "
>
<releaseForm></releaseForm>
<view
class=
"submit-btn"
>
发布需求
</view>
<releaseForm
@
submit=
"handleSubmit"
></releaseForm>
</view>
<com-navbar
:leftIcon=
"false"
:homeShow=
"false"
bgColor=
"#fff"
title=
"发布"
:titleStyle=
"
{ color: '#000', fontSize: '32rpx',scrollTopHeader: scrollTopHeader }" />
...
...
@@ -42,6 +42,7 @@
</
template
>
<
script
>
import
{
addOrderFunction
}
from
'@/api/system/index.js'
import
releaseForm
from
'@/components/form.vue'
export
default
{
components
:
{
...
...
@@ -50,15 +51,21 @@
data
()
{
return
{
globalData
:
getApp
().
globalData
,
}
},
onShow
()
{
let
that
=
this
},
methods
:
{
handleSubmit
(
info
){
console
.
log
(
info
,
'拿到表单'
)
},
handleAdd
(){
addOrderFunction
().
then
(
res
=>
{
console
.
log
(
'发布'
)
})
},
}
}
</
script
>
...
...
static/startStatus.png
0 → 100644
View file @
3014828d
1.48 KB
static/stopStatus.png
0 → 100644
View file @
3014828d
1.13 KB
utils/common.css
View file @
3014828d
...
...
@@ -186,3 +186,9 @@
font-size
:
24
rpx
;
}
.noData-text
{
color
:
#989898
;
text-align
:
center
;
margin
:
20
rpx
0
;
}
utils/request.js
View file @
3014828d
...
...
@@ -53,7 +53,6 @@ const ApiHttp = (url, params, method, isToken = true) => {
data
:
params
,
header
,
success
:
(
res
)
=>
{
console
.
log
(
res
,
'封装接口成功'
)
const
{
data
}
=
res
;
...
...
utils/utils.js
View file @
3014828d
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