Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
X
x-training-admin
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
x-training-admin
Commits
321e0a16
提交
321e0a16
authored
12月 24, 2020
作者:
王诒正
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
触达方案
上级
cf45d84b
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
441 行增加
和
2 行删除
+441
-2
cgroups.js
src/api/cgroups.js
+1
-1
reach.js
src/api/reach.js
+26
-0
index.vue
src/pages/yhfq/albj/index.vue
+7
-0
index.vue
src/pages/yhfq/cgroup/index.vue
+1
-1
index.vue
src/pages/yhfq/reach/index.vue
+405
-0
routes.js
src/router/routes.js
+1
-0
没有找到文件。
src/api/cgroups.js
浏览文件 @
321e0a16
import
httpRequest
from
'@/utils/axios'
// 用户群列表
export
function
groupList
(
params
)
{
export
function
groupList
(
params
=
{}
)
{
return
httpRequest
.
get
(
'/api/opera/v1/oprations/cgroups'
,
{
params
})
}
...
...
src/api/reach.js
0 → 100644
浏览文件 @
321e0a16
import
httpRequest
from
'@/utils/axios'
// 添加触达
export
function
reachCreate
(
data
)
{
return
httpRequest
.
post
(
'/api/opera/v1/oprations/reach'
,
data
)
}
// 触达列表
export
function
reachList
(
params
=
{})
{
return
httpRequest
.
get
(
'/api/opera/v1/oprations/reachs'
,
{
params
})
}
// 触达详情
export
function
reachInfo
(
id
,
params
=
{})
{
return
httpRequest
.
get
(
`/api/opera/v1/oprations/
${
id
}
}/reach`
,
{
params
})
}
// 触达更新
export
function
reachUpdate
(
id
,
data
=
{})
{
return
httpRequest
.
put
(
`/api/opera/v1/oprations/
${
id
}
}/reach`
,
data
)
}
// 触达删除
export
function
reachDelete
(
id
,
params
=
{})
{
return
httpRequest
.
delete
(
`/api/opera/v1/oprations/
${
id
}
}/reach`
,
{
params
})
}
src/pages/yhfq/albj/index.vue
浏览文件 @
321e0a16
...
...
@@ -205,6 +205,13 @@ export default {
console
.
log
(
opera
.
row
)
switch
(
opera
.
tag
)
{
case
'reach'
:
this
.
$router
.
push
({
name
:
'reach-list'
,
query
:
{
id
:
opera
.
row
.
id
,
level
:
opera
.
row
.
level
}
})
break
case
'group'
:
this
.
$router
.
push
({
...
...
src/pages/yhfq/cgroup/index.vue
浏览文件 @
321e0a16
...
...
@@ -4,7 +4,7 @@
<el-card
class=
"box-card"
>
<el-breadcrumb
separator-class=
"el-icon-arrow-right"
>
<el-breadcrumb-item
:to=
"
{ path: '/' }">首页
</el-breadcrumb-item>
<el-breadcrumb-item
:to=
"
{ name: 'case-list', query: { level: this.case.level
.toString()
} }">案例背景
</el-breadcrumb-item>
<el-breadcrumb-item
:to=
"
{ name: 'case-list', query: { level: this.case.level
+ ''
} }">案例背景
</el-breadcrumb-item>
<el-breadcrumb-item
:to=
"
{ name: 'group-list' }">用户群
</el-breadcrumb-item>
</el-breadcrumb>
</el-card>
...
...
src/pages/yhfq/reach/index.vue
0 → 100644
浏览文件 @
321e0a16
<
template
>
<div>
<div>
<el-card
class=
"box-card"
>
<el-breadcrumb
separator-class=
"el-icon-arrow-right"
>
<el-breadcrumb-item
:to=
"
{ path: '/' }">首页
</el-breadcrumb-item>
<el-breadcrumb-item
:to=
"
{ name: 'case-list', query: { level: this.case.level + '' } }">案例背景
</el-breadcrumb-item>
<el-breadcrumb-item
:to=
"
{ name: 'reach-list' }">触达方案
</el-breadcrumb-item>
</el-breadcrumb>
</el-card>
</div>
<div>
<div>
<el-card
class=
"box-card"
>
<span><strong>
当前案例:
</strong>
{{
this
.
case
.
name
}}
</span>
</el-card>
</div>
<div>
<el-card
class=
"box-card"
>
<el-row>
<el-button
size=
"mini"
icon=
"el-icon-plus"
type=
"success"
@
click=
"dialogAddVisible = true"
>
添 加
</el-button>
</el-row>
</el-card>
</div>
<div>
<el-card
class=
"box-card"
>
<el-table
:data=
"tableData"
border
style=
"width: 100%"
>
<el-table-column
fixed
prop=
"created_at"
label=
"日期"
>
</el-table-column>
<el-table-column
fixed
label=
"用户群名称"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
group
.
name
}}
</
template
>
</el-table-column>
<el-table-column
fixed
label=
"触达方式"
>
<
template
slot-scope=
"scope"
>
<el-tag
size=
"mini"
type=
""
>
{{
scope
.
row
.
way
.
option
}}
</el-tag>
{{
scope
.
row
.
way
.
context
}}
</
template
>
</el-table-column>
<el-table-column
fixed
label=
"触达时间点"
>
<
template
slot-scope=
"scope"
>
<el-tag
size=
"mini"
type=
""
>
{{
scope
.
row
.
date
.
option
}}
</el-tag>
{{
scope
.
row
.
date
.
context
}}
</
template
>
</el-table-column>
<el-table-column
fixed
label=
"关键词"
>
<
template
slot-scope=
"scope"
>
<el-tag
v-for=
"(item, index) in JSON.parse(scope.row.keywords)"
size=
"mini"
type=
""
:key=
"index"
>
{{
item
}}
</el-tag>
</
template
>
</el-table-column>
<el-table-column
fixed
prop=
"operator"
label=
"编辑人"
>
</el-table-column>
<el-table-column
fixed
prop=
"updated_at"
label=
"更新时间"
>
</el-table-column>
<el-table-column
fixed=
"right"
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-edit"
circle
@
click=
"showEditView(scope.row.id)"
></el-button>
<el-button
size=
"mini"
type=
"danger"
icon=
"el-icon-delete"
circle
@
click=
"deleteData(scope.row.id)"
></el-button>
</
template
>
</el-table-column>
</el-table>
</el-card>
</div>
</div>
<div>
<el-dialog
title=
"添加触达方案"
:visible
.
sync=
"dialogAddVisible"
:modal=
"true"
>
<el-form
size=
"mini"
:model=
"addForm"
>
<el-form-item
label=
"用户群名称"
label-width=
"100px"
>
<el-select
v-model=
"addForm.cgroup_id"
placeholder=
"请选择用户群名称"
>
<el-option
v-for=
"(item, index) in groupList"
:key=
"index"
:label=
"item.name"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"触达方式"
label-width=
"100px"
>
<el-select
v-model=
"addForm.reach_way_id"
placeholder=
"请选择触达方式"
>
<el-option
v-for=
"(item, index) in wayList"
:key=
"index"
:label=
"item.context"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"触达时间点"
label-width=
"100px"
>
<el-select
v-model=
"addForm.reach_date_id"
placeholder=
"请选择触达时间点"
>
<el-option
v-for=
"(item, index) in dateList"
:key=
"index"
:label=
"item.context"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"关键词"
label-width=
"100px"
>
<el-input
type=
"textarea"
:autosize=
"{ minRows: 5, maxRows: 15}"
placeholder=
"请输入关键词,一行一个"
v-model=
"addForm.keywordsStr"
>
</el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"mini"
@
click=
"dialogAddVisible = false"
>
取 消
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"addData"
>
保 存
</el-button>
</div>
</el-dialog>
</div>
<div>
<el-dialog
title=
"编辑触达方案"
:visible
.
sync=
"dialogUpdateVisible"
:modal=
"true"
>
<el-form
size=
"mini"
:model=
"updateForm"
>
<el-form-item
label=
"用户群名称"
label-width=
"100px"
>
<el-select
v-model=
"updateForm.cgroup_id"
placeholder=
"请选择用户群名称"
>
<el-option
v-for=
"(item, index) in groupList"
:key=
"index"
:label=
"item.name"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"触达方式"
label-width=
"100px"
>
<el-select
v-model=
"updateForm.reach_way_id"
placeholder=
"请选择触达方式"
>
<el-option
v-for=
"(item, index) in wayList"
:key=
"index"
:label=
"item.context"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"触达时间点"
label-width=
"100px"
>
<el-select
v-model=
"updateForm.reach_date_id"
placeholder=
"请选择触达时间点"
>
<el-option
v-for=
"(item, index) in dateList"
:key=
"index"
:label=
"item.context"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"关键词"
label-width=
"100px"
>
<el-input
type=
"textarea"
:autosize=
"{ minRows: 5, maxRows: 15}"
placeholder=
"请输入关键词,一行一个"
v-model=
"updateForm.keywordsStr"
>
</el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"mini"
@
click=
"dialogUpdateVisible = false"
>
取 消
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"updateData"
>
保 存
</el-button>
</div>
</el-dialog>
</div>
</div>
</template>
<
script
>
import
*
as
reachApi
from
'@/api/reach'
import
*
as
casesApi
from
'@/api/cases'
import
*
as
groupApi
from
'@/api/cgroups'
import
*
as
triggerApi
from
'@/api/triggerEdit'
export
default
{
name
:
'reach'
,
mounted
()
{
var
caseId
=
this
.
$route
.
query
.
id
casesApi
.
caseInfo
(
caseId
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
case
=
res
.
data
this
.
addForm
.
case_id
=
this
.
case
.
id
reachApi
.
reachList
({
case_id
:
caseId
}).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
tableData
=
res
.
data
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
}).
catch
(
error
=>
{
console
.
log
(
error
)
return
false
})
triggerApi
.
getTriggerWayList
().
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
wayList
=
res
.
data
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
})
triggerApi
.
getTriggerDateList
().
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
dateList
=
res
.
data
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
})
groupApi
.
groupList
({
case_id
:
this
.
case
.
id
}).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
groupList
=
res
.
data
reachApi
.
reachList
({
case_id
:
this
.
case
.
id
}).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
tableData
=
res
.
data
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
}).
catch
(
error
=>
{
console
.
log
(
error
)
return
false
})
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
})
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
}).
catch
(
error
=>
{
console
.
log
(
error
)
return
false
})
},
data
()
{
return
{
dialogAddVisible
:
false
,
dialogUpdateVisible
:
false
,
tableData
:
[],
case
:
{},
addForm
:
{
cgroup_id
:
''
,
case_id
:
''
,
reach_way_id
:
''
,
reach_date_id
:
''
,
keywords
:
[],
keywordsStr
:
''
},
updateForm
:
{
id
:
''
,
cgroup_id
:
''
,
case_id
:
''
,
reach_way_id
:
''
,
reach_date_id
:
''
,
keywords
:
[],
keywordsStr
:
''
},
groupList
:
[],
wayList
:
[],
dateList
:
[]
}
},
methods
:
{
addData
()
{
this
.
addForm
.
keywords
=
this
.
strToArr
(
this
.
addForm
.
keywordsStr
)
reachApi
.
reachCreate
(
this
.
addForm
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
dialogAddVisible
=
false
this
.
$message
.
success
(
res
.
message
)
this
.
addForm
=
{
cgroup_id
:
''
,
case_id
:
''
,
reach_way_id
:
''
,
reach_date_id
:
''
,
keywords
:
[],
keywordsStr
:
''
}
reachApi
.
reachList
({
case_id
:
this
.
case
.
id
}).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
tableData
=
res
.
data
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
}).
catch
(
error
=>
{
console
.
log
(
error
)
return
false
})
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
}).
catch
(
error
=>
{
console
.
log
(
error
)
this
.
$message
.
error
(
'创建触达方案失败'
)
return
false
})
},
showEditView
(
id
)
{
this
.
dialogUpdateVisible
=
true
reachApi
.
reachInfo
(
id
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
console
.
log
(
res
.
data
)
var
reach
=
res
.
data
this
.
updateForm
.
id
=
id
this
.
updateForm
.
cgroup_id
=
reach
.
cgroup_id
this
.
updateForm
.
case_id
=
reach
.
case_id
this
.
updateForm
.
reach_way_id
=
reach
.
reach_way_id
this
.
updateForm
.
reach_date_id
=
reach
.
reach_date_id
this
.
updateForm
.
keywords
=
JSON
.
parse
(
reach
.
keywords
)
this
.
updateForm
.
keywordsStr
=
this
.
updateForm
.
keywords
.
join
(
'
\
r
\
n'
)
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
})
},
updateData
()
{
if
(
this
.
updateForm
.
id
)
{
this
.
updateForm
.
keywords
=
this
.
strToArr
(
this
.
updateForm
.
keywordsStr
)
reachApi
.
reachUpdate
(
this
.
updateForm
.
id
,
this
.
updateForm
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
dialogUpdateVisible
=
false
this
.
$message
.
success
(
res
.
message
)
reachApi
.
reachList
({
case_id
:
this
.
case
.
id
}).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
tableData
=
res
.
data
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
}).
catch
(
error
=>
{
console
.
log
(
error
)
return
false
})
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
}).
catch
(
error
=>
{
console
.
log
(
error
)
this
.
$message
.
error
(
'创建触达方案失败'
)
return
false
})
}
},
deleteData
(
id
)
{
this
.
$confirm
(
'确认删除?'
,
'提示'
).
then
(
_
=>
{
reachApi
.
reachDelete
(
id
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
$message
.
success
(
res
.
message
)
reachApi
.
reachList
({
case_id
:
this
.
case
.
id
}).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
tableData
=
res
.
data
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
}).
catch
(
error
=>
{
console
.
log
(
error
)
return
false
})
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
}).
catch
(
error
=>
{
console
.
log
(
error
)
this
.
$message
.
error
(
'创建触达方案失败'
)
return
false
})
}).
catch
(
_
=>
{
return
false
})
},
strToArr
(
str
)
{
// 转换成数组
var
snsArr
=
str
.
split
(
/
[
(
\r\n
)
\r\n]
+/
)
snsArr
.
forEach
((
item
,
index
)
=>
{
if
(
!
item
)
{
snsArr
.
splice
(
index
,
1
)
}
})
return
snsArr
}
}
}
</
script
>
src/router/routes.js
浏览文件 @
321e0a16
...
...
@@ -10,6 +10,7 @@ const userGroup = [
{
path
:
'/yhfq/groups'
,
name
:
'group-list'
,
component
:
()
=>
import
(
/* webpackChunkName: "usergroup" */
'@/pages/yhfq/cgroup/index'
)
},
{
path
:
'/yhfq/groups/add'
,
name
:
'group-add'
,
component
:
()
=>
import
(
/* webpackChunkName: "usergroup" */
'@/pages/yhfq/cgroup/add'
)
},
{
path
:
'/yhfq/groups/edit'
,
name
:
'group-edit'
,
component
:
()
=>
import
(
/* webpackChunkName: "usergroup" */
'@/pages/yhfq/cgroup/edit'
)
},
{
path
:
'/yhfq/reach'
,
name
:
'reach-list'
,
component
:
()
=>
import
(
/* webpackChunkName: "usergroup" */
'@/pages/yhfq/reach/index'
)
},
{
path
:
'/albj'
,
component
:
()
=>
import
(
/* webpackChunkName: "usergroup" */
'@/pages/yhfq/albj'
)
},
{
path
:
'/yhfq/alfx'
,
component
:
()
=>
import
(
/* webpackChunkName: "usergroup" */
'@/pages/yhfq/alfx'
)
},
{
path
:
'/yhfq/yhqfx'
,
component
:
()
=>
import
(
/* webpackChunkName: "usergroup" */
'@/pages/yhfq/yhqfx'
)
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论