Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xoadoPlatform
Project
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
yaohui
xoadoPlatform
Commits
ee240893
Commit
ee240893
authored
Dec 15, 2021
by
吕海涛
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
司机端语音配置
parent
0c9bf88c
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
384 additions
and
10 deletions
+384
-10
set-request.js
src/port/set-request.js
+13
-0
index.js
src/router/index.js
+17
-9
voicePage.vue
src/views/Voice/voicePage.vue
+353
-0
addDialog.vue
src/views/disposition/componenets/disposition/addDialog.vue
+1
-1
No files found.
src/port/set-request.js
View file @
ee240893
...
...
@@ -12,6 +12,7 @@ const targetBaseUrl = process.env.VUE_APP_BASE_API5
const
targetBaseUrl1
=
process
.
env
.
VUE_APP_BASE_API6
const
targetBaseUrl2
=
process
.
env
.
VUE_APP_BASE_API7
const
targetBaseUrl5
=
process
.
env
.
VUE_APP_BASE_API15
const
targetBaseUrl6
=
process
.
env
.
VUE_APP_BASE_API16
/* 获取车型列表 */
export
function
getXoadodAllCarTYpeList
(
data
=
{})
{
const
url
=
targetBaseUrl2
+
'/carType'
...
...
@@ -1153,4 +1154,15 @@ export function complaintAdd(data) {
export
function
complaintUpdate
(
data
)
{
const
url
=
targetBaseUrl5
+
`/complaint/label`
return
put
(
url
,
data
)
}
/* 投诉原因---修改 */
export
function
voicePage
()
{
const
url
=
process
.
env
.
VUE_APP_BASE_API6
+
`/dispatchconfig/driver/mesconf`
return
get
(
url
)
}
/* 投诉原因---修改 */
export
function
PutvoicePage
(
data
)
{
const
url
=
process
.
env
.
VUE_APP_BASE_API6
+
`/dispatchconfig/driver/mesconf`
return
put
(
url
,
data
)
}
\ No newline at end of file
src/router/index.js
View file @
ee240893
...
...
@@ -275,14 +275,14 @@ export const routes = [{
import
(
'@/views/transports/transport.vue'
),
meta
:
{
title
:
'运力方管理'
,
icon
:
'el-icon-s-home'
}
},
{
path
:
'transport-detail'
,
name
:
'transportDetail'
,
component
:
()
=>
import
(
'@/views/transports/transportDetail.vue'
),
meta
:
{
title
:
'运力方管理'
,
icon
:
'el-icon-s-home'
},
hidden
:
true
},
{
path
:
'transport-detail'
,
name
:
'transportDetail'
,
component
:
()
=>
import
(
'@/views/transports/transportDetail.vue'
),
meta
:
{
title
:
'运力方管理'
,
icon
:
'el-icon-s-home'
},
hidden
:
true
},
{
path
:
'car'
,
name
:
'Car'
,
...
...
@@ -331,6 +331,13 @@ export const routes = [{
import
(
'@/views/disposition/disposition.vue'
),
meta
:
{
title
:
'控诉原因配置'
,
icon
:
'el-icon-s-home'
}
},
{
path
:
'Voice'
,
name
:
'Voice'
,
component
:
()
=>
import
(
'@/views/Voice/voicePage.vue'
),
meta
:
{
title
:
'司机端语音配置'
,
icon
:
'el-icon-s-home'
}
},
]
}
...
...
@@ -399,4 +406,4 @@ router.beforeEach(async(to, from, next) => {
}
})
export
default
router
export
default
router
\ No newline at end of file
src/views/Voice/voicePage.vue
0 → 100644
View file @
ee240893
<
template
>
<el-card>
<el-row>
<div
class=
"title-left"
style=
"padding-left: 10px; font-weight: 800"
>
司机端语音配置
</div>
</el-row>
<el-table
:data=
"data"
stripe
v-loading=
"tableLoading"
:header-cell-style=
"tableHeaderColor"
style=
"width: 100%; margin-top: 20px"
border
sty
>
<el-table-column
label=
"操作节点"
align=
"center"
width=
"120"
:formatter=
"operationNodeText"
>
</el-table-column>
<el-table-column
label=
"检测数据"
align=
"center"
:formatter=
"inspectDataText"
width=
"200"
>
</el-table-column>
<el-table-column
label=
"提醒方式"
align=
"center"
:formatter=
"remindTypeText"
width=
"120"
>
</el-table-column>
<el-table-column
label=
"可配置提醒内容"
align=
"center"
>
<template
slot-scope=
"
{ row }">
<span
v-html=
"remindContentText(row)"
></span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
width=
"120"
>
<
template
slot-scope=
"{ row }"
>
<el-button
type=
"text"
@
click=
"showDialog(
{ row })"
style="padding: 0 2px"
>编辑内容
</el-button
>
</
template
>
</el-table-column>
</el-table>
<el-dialog
:visible
.
sync=
"dialogVisible"
title=
"编辑提醒内容"
width=
"40%"
class=
"form-dialog"
@
close=
"clearInfo"
:close-on-click-modal=
"false"
:close-on-press-escape=
"false"
>
<el-form
ref=
"form"
label-position=
"right"
label-width=
"150px"
:model=
"form"
:rules=
"rules"
>
<el-form-item
label=
"操作节点:"
prop=
"operationNode"
>
<div
v-text=
"operationNodeText(form)"
></div>
</el-form-item>
<el-form-item
label=
"检测数据:"
prop=
"inspectData"
>
<div
v-text=
"inspectDataText(form)"
></div>
</el-form-item>
<el-form-item
label=
"提醒方式:"
prop=
"remindType"
>
<div
v-text=
"remindTypeText(form)"
></div>
</el-form-item>
<el-form-item
label=
"语音配置:"
prop=
"remindContent"
>
<div
style=
"border: 1px solid #ccc"
>
<div
v-html=
"remindContentText(form)"
contentEditable=
"true"
ref=
"remindText"
style=
"
height: 100px;
overflow-y: scroll;
border-bottom: 1px solid #ccc;
padding-left: 5px;
"
id=
"obj"
></div>
<div
style=
"
padding: 0 5px;
padding: 0px 5px;
display: flex;
align-items: center;
"
>
<el-button
type=
"text"
@
click=
"setText('PHONE')"
>
#乘客手机尾号#
</el-button
>
<el-button
type=
"text"
@
click=
"setText('STARTADDRESS')"
>
#乘客上车地址#
</el-button
>
<el-button
type=
"text"
@
click=
"setText('ENDADDRESS')"
>
#乘客目的地#
</el-button
>
<el-button
type=
"text"
@
click=
"setText('APPOINTTIME')"
>
#乘客预约时间#
</el-button
>
</div>
</div>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"small "
@
click=
"clearInfo"
>
取 消
</el-button>
<el-button
size=
"small"
type=
"primary"
@
click=
"complaintLable"
>
确 定
</el-button
>
</span>
</el-dialog>
</el-card>
</template>
<
script
>
import
{
voicePage
,
PutvoicePage
}
from
"@/port/set-request"
;
export
default
{
name
:
"voicePage"
,
data
()
{
return
{
tableLoading
:
true
,
data
:
[],
form
:
{
operationNode
:
""
,
inspectData
:
""
,
remindContent
:
""
,
remindType
:
""
,
},
dialogVisible
:
false
,
operationNodeobj
:
[
"开始听单"
,
"司机接单"
,
"未开始"
,
"开始行程"
,
"已到达"
,
"已上车"
,
"已送达"
,
"抢单成功"
,
"信息变更"
,
"抢单推送"
,
"改派成功"
,
"取消订单"
,
"订单支付"
,
"结束行程"
,
"申请转单"
,
],
rules
:
{
operationNode
:
[
{
required
:
true
,
message
:
"请填写活动形式"
,
trigger
:
"blur"
},
],
inspectData
:
[
{
required
:
true
,
message
:
"请填写活动形式"
,
trigger
:
"blur"
},
],
remindType
:
[
{
required
:
true
,
message
:
"请填写活动形式"
,
trigger
:
"blur"
},
],
remindContent
:
[
{
required
:
true
,
message
:
"请填写活动形式"
,
trigger
:
"blur"
},
],
},
inspectDataonj
:
[
"开始听单"
,
"新订单消息推送"
,
"行程未开始消息推送"
,
"开始行程前"
,
"开始行程后"
,
"到达乘车点"
,
"乘客上车后"
,
"乘客已送达"
,
"抢单成功"
,
"信息变更"
,
"抢单推送"
,
"改派成功"
,
"订单取消消息推送"
,
"订单支付成功"
,
"运单完成"
,
"申请转单前"
,
"申请转单后"
,
"未上传网约车驾驶证"
,
"未上传车辆道路运输证"
,
"当前听单车辆与运单不符"
,
"未开启听单模式"
,
],
};
},
async
created
()
{
await
this
.
initTable
();
},
methods
:
{
setText
(
I
)
{
I
=
this
.
remindContentText2
(
I
);
this
.
$refs
.
remindText
.
innerHTML
+=
" "
+
I
;
},
clearInfo
()
{
this
.
$refs
.
form
.
resetFields
();
this
.
dialogVisible
=
false
;
},
operationNodeText
(
row
)
{
return
this
.
operationNodeobj
[
row
.
operationNode
-
1
];
},
showDialog
(
row
)
{
this
.
form
=
JSON
.
parse
(
JSON
.
stringify
(
row
.
row
));
this
.
dialogVisible
=
true
;
},
inspectDataText
(
row
)
{
return
this
.
inspectDataonj
[
row
.
inspectData
-
1
];
},
remindTypeText
(
row
)
{
return
row
.
remindType
*
1
==
1
?
"语音提醒"
:
"模态弹窗"
;
},
remindContentText2
(
text
)
{
let
t
=
text
;
t
=
t
.
replace
(
/PHONE/g
,
"<span contentEditable='false' style='color:#409EFF'>#乘客手机尾号#</span>"
);
t
=
t
.
replace
(
/STARTADDRESS/g
,
"<span contentEditable='false' style='color:#409EFF'>#乘客上车地址#</span>"
);
t
=
t
.
replace
(
/ENDADDRESS/g
,
"<span contentEditable='false' style='color:#409EFF'>#乘客目的地#</span>"
);
t
=
t
.
replace
(
/APPOINTTIME/g
,
"<span contentEditable='false' style='color:#409EFF'>#乘客预约时间#</span>"
);
return
t
;
},
remindContentText
(
row
)
{
let
t
=
row
.
remindContent
;
t
=
t
.
replace
(
/PHONE/g
,
"<span contentEditable='false' style='color:#409EFF' >#乘客手机尾号#</span>"
);
t
=
t
.
replace
(
/STARTADDRESS/g
,
"<span contentEditable='false' style='color:#409EFF'>#乘客上车地址#</span>"
);
t
=
t
.
replace
(
/ENDADDRESS/g
,
"<span contentEditable='false' style='color:#409EFF'>#乘客目的地#</span>"
);
t
=
t
.
replace
(
/APPOINTTIME/g
,
"<span contentEditable='false' style='color:#409EFF'>#乘客预约时间#</span>"
);
return
t
;
},
initTable
()
{
voicePage
().
then
((
res
)
=>
{
if
(
res
.
status
==
200
)
{
this
.
data
=
res
.
data
;
}
else
{
this
.
data
=
[];
}
this
.
tableLoading
=
false
;
});
},
tableRowStyle
({
row
,
rowIndex
})
{
if
(
rowIndex
%
2
!==
0
)
{
return
{
"background-color"
:
"#e3f4ff"
};
}
},
// table变色,头
tableHeaderColor
({
row
,
column
,
rowIndex
,
columnIndex
})
{
return
{
"background-color"
:
"#0099ff"
,
color
:
"#ffffff"
};
},
complaintLable
()
{
let
t
=
this
.
$refs
.
remindText
.
innerHTML
;
t
=
t
.
replace
(
/<span
(\s
+
[^
="'
]
+=
([
'"
])
.*
?\2)
*
\s
*>#乘客手机尾号#<
\/
span>/g
,
"PHONE"
);
t
=
t
.
replace
(
/<span
(\s
+
[^
="'
]
+=
([
'"
])
.*
?\2)
*
\s
*>#乘客目的地#<
\/
span>/g
,
"ENDADDRESS"
);
t
=
t
.
replace
(
/<span
(\s
+
[^
="'
]
+=
([
'"
])
.*
?\2)
*
\s
*>#乘客预约时间#<
\/
span>/g
,
"APPOINTTIME"
);
t
=
t
.
replace
(
/<span
(\s
+
[^
="'
]
+=
([
'"
])
.*
?\2)
*
\s
*>#乘客上车地址#<
\/
span>/g
,
"STARTADDRESS"
);
let
json
=
{
id
:
this
.
form
.
id
,
inspectData
:
this
.
form
.
inspectData
,
operationNode
:
this
.
form
.
operationNode
,
remindType
:
this
.
form
.
remindType
,
remindContent
:
t
.
replace
(
/<
[^
>
]
+>/g
,
" "
),
operation
:
this
.
form
.
operation
,
};
if
(
json
.
remindContent
.
length
>=
100
)
{
this
.
$message
({
message
:
"语音配置文字不能超过100个字符!"
,
type
:
"warning"
,
});
return
;
}
PutvoicePage
(
json
).
then
((
res
)
=>
{
if
(
res
.
status
==
200
)
{
this
.
$message
.
success
(
"修改成功"
);
this
.
initTable
();
this
.
clearInfo
();
}
else
{
this
.
$message
.
error
(
res
.
msg
);
}
this
.
tableLoading
=
false
;
});
},
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
.search-form
{
margin
:
5px
0
5px
0
;
.el-form-item
{
margin-bottom
:
5px
;
}
}
.pagination
{
margin-top
:
16px
;
text-align
:
right
;
}
.itemBtn
{
display
:
flex
;
align-items
:
center
;
justify-content
:
flex-end
;
margin
:
10px
0
;
}
</
style
>
src/views/disposition/componenets/disposition/addDialog.vue
View file @
ee240893
...
...
@@ -97,7 +97,7 @@ export default {
],
labelName
:
[
{
required
:
true
,
message
:
"请输入控诉原因"
,
trigger
:
"blur"
},
{
max
:
1
0
,
message
:
"最多可输入五十个字"
},
{
max
:
5
0
,
message
:
"最多可输入五十个字"
},
],
},
complaintModelist
:
[
...
...
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