Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
X
x-training-admin
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
x-training-admin
Commits
41b9df6d
提交
41b9df6d
authored
12月 23, 2020
作者:
王诒正
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加触达,编辑触达,删除触达,触达列表
上级
8cd88b96
显示空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
552 行增加
和
11 行删除
+552
-11
triggerEdit.js
src/api/triggerEdit.js
+47
-2
aside.vue
src/components/layout/aside.vue
+3
-4
index.vue
src/pages/characteristicsEditor/index.vue
+15
-0
index.vue
src/pages/triggerEditor/index.vue
+16
-2
list.vue
src/pages/triggerEditor/list.vue
+464
-0
detail.vue
src/pages/yhfq/albj/detail.vue
+1
-1
index.vue
src/pages/yhfq/cgroup/index.vue
+1
-1
routes.js
src/router/routes.js
+5
-1
没有找到文件。
src/api/triggerEdit.js
浏览文件 @
41b9df6d
...
...
@@ -4,7 +4,52 @@ import httpRequest from '@/utils/axios'
export
function
bindWechat
(
data
)
{
return
httpRequest
.
post
(
'/api/passport/rest/wechat/bind-unionid'
,
data
)
}
// 获取
用户信息
export
function
getTriggerList
()
{
// 获取
触达方式列表
export
function
getTrigger
Way
List
()
{
return
httpRequest
.
get
(
'/api/opera/v1/oprations/reach/ways'
)
}
// 获取触达方式详情
export
function
triggerWay
(
id
)
{
return
httpRequest
.
get
(
`/api/opera/v1/oprations/reach/
${
id
}
/way`
)
}
// 编辑触达方式
export
function
triggerWayUpdate
(
id
,
data
)
{
return
httpRequest
.
put
(
`/api/opera/v1/oprations/reach/
${
id
}
/way`
,
data
)
}
// 创建触达方式
export
function
triggerWayCreate
(
data
)
{
return
httpRequest
.
post
(
'/api/opera/v1/oprations/reach/way'
,
data
)
}
// 删除触达方式
export
function
triggerWayDelete
(
id
,
params
=
{})
{
return
httpRequest
.
delete
(
`/api/opera/v1/oprations/reach/
${
id
}
/way`
,
{
params
})
}
// 获取触达时间列表
export
function
getTriggerDateList
()
{
return
httpRequest
.
get
(
'/api/opera/v1/oprations/reach/dates'
)
}
// 获取触达时间详情
export
function
triggerDate
(
id
)
{
return
httpRequest
.
get
(
`/api/opera/v1/oprations/reach/
${
id
}
/date`
)
}
// 编辑触达时间
export
function
triggerDateUpdate
(
id
,
data
)
{
return
httpRequest
.
put
(
`/api/opera/v1/oprations/reach/
${
id
}
/date`
,
data
)
}
// 创建触达时间
export
function
triggerDateCreate
(
data
)
{
return
httpRequest
.
post
(
'/api/opera/v1/oprations/reach/date'
,
data
)
}
// 删除触达时间
export
function
triggerDateDelete
(
id
,
params
=
{})
{
return
httpRequest
.
delete
(
`/api/opera/v1/oprations/reach/
${
id
}
/date`
,
{
params
})
}
src/components/layout/aside.vue
浏览文件 @
41b9df6d
...
...
@@ -26,7 +26,7 @@ export default {
return
{
defaultMenus
:
[
{
title
:
'案例背景'
,
title
:
'案例背景
编辑
'
,
icon
:
''
,
path
:
'/yhfq/albj'
// children: [
...
...
@@ -35,9 +35,8 @@ export default {
// // { title: '用户群分析', path: '/yhfq/yhqfx' }
// ]
},
{
title
:
'用户触达编辑'
,
icon
:
''
,
path
:
'/triggerEditor'
},
{
title
:
'用户群分析'
,
icon
:
''
,
path
:
'/'
},
{
title
:
'用户触达'
,
icon
:
''
,
path
:
'/'
}
{
title
:
'用户群特征编辑'
,
icon
:
''
,
path
:
'/characteristicsEditor'
},
{
title
:
'用户触达编辑'
,
icon
:
''
,
path
:
'/triggerEditor'
}
]
}
},
...
...
src/pages/characteristicsEditor/index.vue
0 → 100644
浏览文件 @
41b9df6d
<
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>
用户群特征编辑
</el-breadcrumb-item>
</el-breadcrumb>
</el-card>
</div>
</div>
</
template
>
<
script
>
</
script
>
src/pages/triggerEditor/index.vue
浏览文件 @
41b9df6d
...
...
@@ -40,7 +40,7 @@
</el-row>
<template
#
footer
>
<div
class=
"app-container-ft"
>
<el-button
type=
"primary"
size=
"mini"
>
确定
</el-button>
<el-button
type=
"primary"
size=
"mini"
@
click=
"cli"
>
确定
</el-button>
</div>
</
template
>
</app-container>
...
...
@@ -91,9 +91,12 @@ export default {
}
return
result
},
cli
()
{
console
.
log
(
this
.
triggerMode
)
},
getList
()
{
api
.
getTriggerList
()
.
getTrigger
Way
List
()
.
then
(
response
=>
{
if
(
response
.
data
.
length
!==
0
)
{
this
.
triggerMode
=
response
.
data
...
...
@@ -102,6 +105,17 @@ export default {
.
finally
(()
=>
{
this
.
submitLoading
=
false
})
api
.
getTriggerDateList
()
.
then
(
response
=>
{
if
(
response
.
data
.
length
!==
0
)
{
this
.
triggerTime
=
response
.
data
}
})
.
finally
(()
=>
{
this
.
submitLoading
=
false
})
}
}
}
...
...
src/pages/triggerEditor/list.vue
0 → 100644
浏览文件 @
41b9df6d
<
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>
用户触达编辑
</el-breadcrumb-item>
</el-breadcrumb>
</el-card>
</div>
<div>
<el-tabs
v-model=
"triggerName"
type=
"border-card"
@
tab-click=
"handleClick"
>
<div>
<el-card
class=
"box-card"
>
<el-row>
<el-button
size=
"mini"
icon=
"el-icon-plus"
@
click=
"showAddView"
type=
"success"
>
添 加
</el-button>
</el-row>
</el-card>
</div>
<el-tab-pane
label=
"触达方式"
name=
"way"
>
<div>
<el-card
class=
"box-card"
>
<el-table
:data=
"wayTableData"
border
style=
"width: 100%"
>
<el-table-column
fixed
prop=
"created_at"
label=
"日期"
>
</el-table-column>
<el-table-column
fixed
prop=
"option"
label=
"选项"
>
</el-table-column>
<el-table-column
fixed
prop=
"context"
label=
"触达方式"
>
</el-table-column>
<el-table-column
fixed=
"right"
label=
"操作"
>
<template
slot-scope=
"scope"
>
<el-button
type=
"primary"
icon=
"el-icon-edit"
circle
@
click=
"shoWayEditView(scope.row.id)"
></el-button>
<el-button
type=
"danger"
icon=
"el-icon-delete"
circle
@
click=
"deleteWay(scope.row.id)"
></el-button>
</
template
>
</el-table-column>
</el-table>
</el-card>
</div>
</el-tab-pane>
<el-tab-pane
label=
"触达时间"
name=
"date"
>
<div>
<el-card
class=
"box-card"
>
<el-table
:data=
"dateTableData"
border
style=
"width: 100%"
>
<el-table-column
fixed
prop=
"created_at"
label=
"日期"
>
</el-table-column>
<el-table-column
fixed
prop=
"option"
label=
"选项"
>
</el-table-column>
<el-table-column
fixed
prop=
"context"
label=
"触达方式"
>
</el-table-column>
<el-table-column
fixed=
"right"
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"primary"
icon=
"el-icon-edit"
circle
@
click=
"shoDateEditView(scope.row.id)"
></el-button>
<el-button
type=
"danger"
icon=
"el-icon-delete"
circle
@
click=
"deleteDate(scope.row.id)"
></el-button>
</
template
>
</el-table-column>
</el-table>
</el-card>
</div>
</el-tab-pane>
</el-tabs>
</div>
<div>
<el-dialog
title=
"添加触达方式"
:visible
.
sync=
"dialogWayFormVisible"
>
<el-form
size=
"mini"
:model=
"wayForm"
>
<el-form-item
label=
"选项"
label-width=
"100px"
>
<el-select
v-model=
"wayForm.option"
placeholder=
"请选择"
>
<el-option
v-for=
"(item, index) in optionsList"
:label=
"item"
:value=
"item"
:key=
"index"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"触达方式"
label-width=
"100px"
>
<el-input
v-model=
"wayForm.context"
></el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"mini"
@
click=
"dialogWayFormVisible = false"
>
取 消
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"saveWay"
>
保 存
</el-button>
</div>
</el-dialog>
</div>
<div>
<el-dialog
title=
"编辑触达方式"
:visible
.
sync=
"dialogWayUpdateVisible"
>
<el-form
size=
"mini"
:model=
"wayEditForm"
>
<el-form-item
label=
"选项"
label-width=
"100px"
>
<el-select
v-model=
"wayEditForm.option"
disabled
>
<el-option
:label=
"wayEditForm.option"
:value=
"wayEditForm.option"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"触达方式"
label-width=
"100px"
>
<el-input
v-model=
"wayEditForm.context"
></el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"mini"
@
click=
"dialogWayUpdateVisible = false"
>
取 消
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"updateWay"
>
保 存
</el-button>
</div>
</el-dialog>
</div>
<div>
<el-dialog
title=
"添加触达时间"
:visible
.
sync=
"dialogDateFormVisible"
>
<el-form
size=
"mini"
:model=
"dateForm"
>
<el-form-item
label=
"选项"
label-width=
"100px"
>
<el-select
v-model=
"dateForm.option"
placeholder=
"请选择"
>
<el-option
v-for=
"(item, index) in optionsList"
:label=
"item"
:value=
"item"
:key=
"index"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"触达时间"
label-width=
"100px"
>
<el-input
v-model=
"dateForm.context"
></el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"mini"
@
click=
"dialogDateFormVisible = false"
>
取 消
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"saveDate"
>
保 存
</el-button>
</div>
</el-dialog>
</div>
<div>
<el-dialog
title=
"编辑触达时间"
:visible
.
sync=
"dialogDateUpdateVisible"
>
<el-form
size=
"mini"
:model=
"dateEditForm"
>
<el-form-item
label=
"选项"
label-width=
"100px"
>
<el-select
v-model=
"dateEditForm.option"
disabled
>
<el-option
:label=
"dateEditForm.option"
:value=
"dateEditForm.option"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"触达方式"
label-width=
"100px"
>
<el-input
v-model=
"dateEditForm.context"
></el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"mini"
@
click=
"dialogDateUpdateVisible = false"
>
取 消
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"updateDate"
>
保 存
</el-button>
</div>
</el-dialog>
</div>
</div>
</template>
<
script
>
import
*
as
trrigerApi
from
'@/api/triggerEdit'
export
default
{
name
:
'trigger'
,
data
()
{
return
{
triggerName
:
'way'
,
dialogWayFormVisible
:
false
,
dialogWayUpdateVisible
:
false
,
dialogDateFormVisible
:
false
,
dialogDateUpdateVisible
:
false
,
optionsList
:
[],
wayForm
:
{
option
:
''
,
context
:
''
},
wayEditForm
:
{
id
:
''
,
option
:
''
,
context
:
''
},
dateForm
:
{
option
:
''
,
context
:
''
},
dateEditForm
:
{
id
:
''
,
option
:
''
,
context
:
''
},
wayTableData
:
[],
dateTableData
:
[]
}
},
mounted
()
{
this
.
optionsList
=
this
.
A_Z
()
if
(
this
.
triggerName
===
'way'
)
{
trrigerApi
.
getTriggerWayList
().
then
(
res
=>
{
console
.
log
(
res
)
if
(
res
.
code
===
0
)
{
this
.
wayTableData
=
res
.
data
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
})
}
else
if
(
this
.
triggerName
===
'date'
)
{
trrigerApi
.
getTriggerDateList
().
then
(
res
=>
{
console
.
log
(
res
)
if
(
res
.
code
===
0
)
{
this
.
TableData
=
res
.
data
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
})
}
},
methods
:
{
handleClick
(
tab
,
event
)
{
if
(
this
.
triggerName
===
'way'
)
{
trrigerApi
.
getTriggerWayList
().
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
wayTableData
=
res
.
data
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
})
}
else
if
(
this
.
triggerName
===
'date'
)
{
trrigerApi
.
getTriggerDateList
().
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
dateTableData
=
res
.
data
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
})
}
},
showAddView
()
{
switch
(
this
.
triggerName
)
{
case
'way'
:
this
.
dialogWayFormVisible
=
true
break
case
'date'
:
this
.
dialogDateFormVisible
=
true
break
default
:
return
false
}
},
saveWay
()
{
trrigerApi
.
triggerWayCreate
(
this
.
wayForm
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
$message
.
success
(
res
.
message
)
this
.
dialogWayFormVisible
=
false
trrigerApi
.
getTriggerWayList
().
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
wayTableData
=
res
.
data
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
})
},
saveDate
()
{
trrigerApi
.
triggerDateCreate
(
this
.
dateForm
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
$message
.
success
(
res
.
message
)
this
.
dialogDateFormVisible
=
false
trrigerApi
.
getTriggerDateList
().
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
dateTableData
=
res
.
data
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
})
},
deleteWay
(
id
)
{
this
.
$confirm
(
'确认删除?'
,
'提示'
).
then
(
_
=>
{
trrigerApi
.
triggerWayDelete
(
id
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
$message
.
success
(
res
.
message
)
trrigerApi
.
getTriggerWayList
().
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
wayTableData
=
res
.
data
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
)
this
.
$message
.
error
(
'删除失败'
)
return
false
})
return
true
}).
catch
(
_
=>
{
return
false
})
},
deleteDate
(
id
)
{
this
.
$confirm
(
'确认删除?'
,
'提示'
).
then
(
_
=>
{
trrigerApi
.
triggerDateDelete
(
id
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
$message
.
success
(
res
.
message
)
trrigerApi
.
getTriggerDateList
().
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
dateTableData
=
res
.
data
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
)
this
.
$message
.
error
(
'删除失败'
)
return
false
})
}).
catch
(
_
=>
{
return
false
})
},
shoWayEditView
(
id
)
{
this
.
dialogWayUpdateVisible
=
true
trrigerApi
.
triggerWay
(
id
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
var
way
=
res
.
data
this
.
wayEditForm
.
option
=
way
.
option
this
.
wayEditForm
.
context
=
way
.
context
this
.
wayEditForm
.
id
=
way
.
id
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
})
},
updateWay
(
id
)
{
this
.
dialogWayUpdateVisible
=
false
trrigerApi
.
triggerWayUpdate
(
this
.
wayEditForm
.
id
,
this
.
wayEditForm
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
$message
.
success
(
res
.
message
)
trrigerApi
.
getTriggerWayList
().
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
wayTableData
=
res
.
data
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
})
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
})
},
shoDateEditView
(
id
)
{
this
.
dialogDateUpdateVisible
=
true
trrigerApi
.
triggerDate
(
id
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
var
date
=
res
.
data
this
.
dateEditForm
.
option
=
date
.
option
this
.
dateEditForm
.
context
=
date
.
context
this
.
dateEditForm
.
id
=
date
.
id
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
})
},
updateDate
(
id
)
{
this
.
dialogDateUpdateVisible
=
false
trrigerApi
.
triggerDateUpdate
(
this
.
dateEditForm
.
id
,
this
.
dateEditForm
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
$message
.
success
(
res
.
message
)
trrigerApi
.
getTriggerDateList
().
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
dateTableData
=
res
.
data
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
})
return
true
}
else
{
this
.
$message
.
error
(
res
.
message
)
return
false
}
})
},
// 获取a-z的数组
A_Z
()
{
const
result
=
[]
for
(
let
i
=
0
;
i
<
26
;
i
++
)
{
result
.
push
(
String
.
fromCharCode
(
65
+
i
))
}
return
result
}
}
}
</
script
>
src/pages/yhfq/albj/detail.vue
浏览文件 @
41b9df6d
...
...
@@ -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', params: { level: this.level
.toStirng()
} }">案例背景
</el-breadcrumb-item>
<el-breadcrumb-item
:to=
"
{ name: 'case-list', params: { level: this.level } }">案例背景
</el-breadcrumb-item>
<el-breadcrumb-item
:to=
"
{ path: '/yhfq/albj/detail' }">案例背景
</el-breadcrumb-item>
</el-breadcrumb>
</el-card>
...
...
src/pages/yhfq/cgroup/index.vue
浏览文件 @
41b9df6d
...
...
@@ -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.
$route.query.level
} }">案例背景
</el-breadcrumb-item>
<el-breadcrumb-item
:to=
"
{ name: 'case-list', query: { level: this.
case.level.toString()
} }">案例背景
</el-breadcrumb-item>
<el-breadcrumb-item
:to=
"
{ name: 'group-list' }">用户群
</el-breadcrumb-item>
</el-breadcrumb>
</el-card>
...
...
src/router/routes.js
浏览文件 @
41b9df6d
...
...
@@ -31,7 +31,11 @@ export default [
},
{
path
:
'/triggerEditor'
,
component
:
()
=>
import
(
/* webpackChunkName: "triggerEditor" */
'@/pages/triggerEditor/index'
)
component
:
()
=>
import
(
/* webpackChunkName: "triggerEditor" */
'@/pages/triggerEditor/list'
)
},
{
path
:
'/characteristicsEditor'
,
component
:
()
=>
import
(
/* webpackChunkName: "triggerEditor" */
'@/pages/characteristicsEditor/index'
)
},
...
userGroup
]
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论