Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
haoban-3
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
office
haoban-3
Commits
e9bcfe76
Commit
e9bcfe76
authored
Jul 18, 2022
by
crushh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update: temp
parent
6a9bfeea
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
237 additions
and
4 deletions
+237
-4
proxyList.js
config/proxyList.js
+7
-0
actCode.js
src/api/actCode.js
+9
-0
selectShop.vue
src/components/common/selectShop.vue
+1
-1
detail.vue
...views/salesleads/actCodeManage/attractFlowLink/detail.vue
+5
-1
newAddChart.vue
.../salesleads/actCodeManage/attractFlowLink/newAddChart.vue
+11
-0
operateLog.vue
src/views/salesleads/actCodeManage/operateLog.vue
+204
-0
welcomesItem.vue
src/views/salesleads/components/welcomesItem.vue
+0
-2
No files found.
config/proxyList.js
View file @
e9bcfe76
...
@@ -15,6 +15,13 @@ module.exports = {
...
@@ -15,6 +15,13 @@ module.exports = {
'^/haoban-manage3-web'
:
''
'^/haoban-manage3-web'
:
''
}
}
},
},
'/gic-member-tag-web/'
:
{
target
:
'https://haoban.gicdev.com/gic-member-tag-web/'
,
changeOrigin
:
true
,
pathRewrite
:
{
'^/gic-member-tag-web'
:
''
}
},
'/api-plug/'
:
{
'/api-plug/'
:
{
target
:
'https://www.gicdev.com/api-plug/'
,
target
:
'https://www.gicdev.com/api-plug/'
,
changeOrigin
:
true
,
changeOrigin
:
true
,
...
...
src/api/actCode.js
View file @
e9bcfe76
...
@@ -62,3 +62,12 @@ export const statisticsClerk = params => postJsonRequest('/haoban-manage3-web/hm
...
@@ -62,3 +62,12 @@ export const statisticsClerk = params => postJsonRequest('/haoban-manage3-web/hm
// 【活码链接】-- 门店列表
// 【活码链接】-- 门店列表
export
const
storeListApi
=
params
=>
getRequest
(
'/haoban-manage3-web/hm/store-list'
,
params
);
export
const
storeListApi
=
params
=>
getRequest
(
'/haoban-manage3-web/hm/store-list'
,
params
);
// 日志查询列表
export
const
logList
=
params
=>
getRequest
(
'/haoban-manage3-web/log-record/list'
,
params
);
// 获取 业务模块
export
const
businessType
=
params
=>
getRequest
(
'/haoban-manage3-web/log-record/business-types'
,
params
);
// 获取 操作类型
export
const
optTypes
=
params
=>
getRequest
(
'/haoban-manage3-web/log-record/opt-types'
,
params
);
src/components/common/selectShop.vue
View file @
e9bcfe76
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
</div>
</div>
</dm-simple-transfer>
</dm-simple-transfer>
<div
class=
"show-select-num cursor-pointer w-250"
slot=
"reference"
>
<div
class=
"show-select-num cursor-pointer w-250"
slot=
"reference"
>
已经选择
{{
selected
.
length
}}
家门店
已经选择
{{
selected
&&
selected
.
length
}}
家门店
<span
class=
"el-input__suffix"
<span
class=
"el-input__suffix"
><span
class=
"el-input__suffix-inner"
><i
:class=
"['el-select__caret el-input__icon el-icon-arrow-up', departmentVisible ? 'is-reverse' : '']"
></i></span
><span
class=
"el-input__suffix-inner"
><i
:class=
"['el-select__caret el-input__icon el-icon-arrow-up', departmentVisible ? 'is-reverse' : '']"
></i></span
></span>
></span>
...
...
src/views/salesleads/actCodeManage/attractFlowLink/detail.vue
View file @
e9bcfe76
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
<el-form-item
label=
"链接标签"
required
prop=
"memberLabelId"
>
<el-form-item
label=
"链接标签"
required
prop=
"memberLabelId"
>
<el-button
plain
v-if=
"!form.memberLabelId"
@
click=
"tagsDialogVisible = true"
><i
class=
"iconfont-components3 icon-cp-PlusOutlined addPic"
></i>
添加标签
</el-button>
<el-button
plain
v-if=
"!form.memberLabelId"
@
click=
"tagsDialogVisible = true"
><i
class=
"iconfont-components3 icon-cp-PlusOutlined addPic"
></i>
添加标签
</el-button>
<el-tag
v-else
closable
@
close=
"handleTagCloseTag"
>
{{
form
.
memberLabelName
}}
</el-tag>
<el-tag
v-else
closable
@
close=
"handleTagCloseTag"
>
{{
form
.
memberLabelName
}}
</el-tag>
<dm-memberTag-group
:visiable
.
sync=
"tagsDialogVisible"
projectName=
"haobao-3"
@
save=
"saveTagPop"
></dm-memberTag-group>
<dm-memberTag-group
:visiable
.
sync=
"tagsDialogVisible"
isHb
projectName=
"haobao-3"
@
save=
"saveTagPop"
></dm-memberTag-group>
</el-form-item>
</el-form-item>
</div>
</div>
<dm-sub-title
type=
"line"
>
分配规则
</dm-sub-title>
<dm-sub-title
type=
"line"
>
分配规则
</dm-sub-title>
...
@@ -264,6 +264,7 @@ export default {
...
@@ -264,6 +264,7 @@ export default {
const
{
link
,
page
}
=
result
;
const
{
link
,
page
}
=
result
;
link
.
storeRuleJson
=
JSON
.
parse
(
link
.
storeRuleJson
);
link
.
storeRuleJson
=
JSON
.
parse
(
link
.
storeRuleJson
);
link
.
customRuleJson
=
JSON
.
parse
(
link
.
customRuleJson
);
link
.
customRuleJson
=
JSON
.
parse
(
link
.
customRuleJson
);
link
.
storeList
=
link
.
storeList
?
link
.
storeList
:
[];
this
.
form
=
link
;
this
.
form
=
link
;
this
.
landingForm
=
page
;
this
.
landingForm
=
page
;
this
.
getStoreList
();
this
.
getStoreList
();
...
@@ -485,4 +486,7 @@ export default {
...
@@ -485,4 +486,7 @@ export default {
justify-content
:
center
;
justify-content
:
center
;
z-index
:
100
;
z-index
:
100
;
}
}
.el-pagination
{
padding
:
0
!important
;
}
</
style
>
</
style
>
src/views/salesleads/actCodeManage/attractFlowLink/newAddChart.vue
View file @
e9bcfe76
...
@@ -49,6 +49,17 @@ export default {
...
@@ -49,6 +49,17 @@ export default {
width
:
this
.
width
,
width
:
this
.
width
,
padding
:
[
20
,
40
,
80
,
80
]
padding
:
[
20
,
40
,
80
,
80
]
});
});
this
.
charData
=
[
{
addNum
:
1
,
bizDate
:
'2022-07-11'
,
clickNum
:
11
,
clickTimes
:
12
},
{
addNum
:
2
,
bizDate
:
'2022-07-12'
,
clickNum
:
22
,
clickTimes
:
13
},
{
addNum
:
3
,
bizDate
:
'2022-07-13'
,
clickNum
:
33
,
clickTimes
:
14
},
{
addNum
:
4
,
bizDate
:
'2022-07-14'
,
clickNum
:
44
,
clickTimes
:
15
},
{
addNum
:
5
,
bizDate
:
'2022-07-15'
,
clickNum
:
55
,
clickTimes
:
15
},
{
addNum
:
6
,
bizDate
:
'2022-07-16'
,
clickNum
:
66
,
clickTimes
:
14
},
{
addNum
:
7
,
bizDate
:
'2022-07-17'
,
clickNum
:
77
,
clickTimes
:
14
},
{
addNum
:
8
,
bizDate
:
'2022-07-18'
,
clickNum
:
88
,
clickTimes
:
10
},
{
addNum
:
9
,
bizDate
:
'2022-07-19'
,
clickNum
:
99
,
clickTimes
:
120
}
];
this
.
chart
.
data
(
this
.
charData
,
{
this
.
chart
.
data
(
this
.
charData
,
{
bizDate
:
{
bizDate
:
{
// type: 'cat', //分类
// type: 'cat', //分类
...
...
src/views/salesleads/actCodeManage/operateLog.vue
0 → 100644
View file @
e9bcfe76
<
template
>
<div
class=
"right-wrap"
>
<div
class=
"right-box"
v-loading=
"loading"
>
<div
style=
"font-size: 0"
>
<el-select
placeholder=
"选择业务模块"
v-model=
"search.businessType"
style=
"width: 160px"
clearable
@
change=
"onSearch"
>
<el-option
v-for=
"el in moduleList"
:key=
"el.key"
:label=
"el.value"
:value=
"el.key"
></el-option>
</el-select>
<el-select
placeholder=
"选择操作事项"
v-model=
"search.optType"
style=
"width: 160px;margin-left: 10px"
clearable
@
change=
"onSearch"
>
<el-option
v-for=
"el in businessList"
:key=
"el.key"
:label=
"el.value"
:value=
"el.key"
></el-option>
</el-select>
<el-select
placeholder=
"操作人姓名/手机号"
v-model=
"search.optUser"
style=
"width: 170px;margin-left: 10px"
popper-class=
"operate-clerk-list"
clearable
filterable
:filter-method=
"searchClerk"
v-select-loadmore=
"loadMoreClerk"
@
change=
"onSearch"
>
<el-option
v-for=
"el in userList"
:key=
"el.clerkId"
:value=
"el.clerkId"
:label=
"el.clerkName"
>
<p>
{{
el
.
clerkName
}}
</p>
<p>
{{
el
.
phoneNumber
}}
</p>
</el-option>
</el-select>
<el-input
placeholder=
"操作内容"
v-model=
"search.search"
style=
"width: 260px;margin-left: 10px"
clearable
prefix-icon=
"el-icon-search"
@
change=
"onSearch"
></el-input>
<el-date-picker
v-model=
"search.dateRange"
@
change=
"onSearch"
:picker-options=
"pickerOptions"
clearable
style=
"width: 256px;margin-left: 10px"
type=
"daterange"
value-format=
"yyyy-MM-dd"
range-separator=
"~"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
</div>
<el-table
:data=
"tableData"
style=
"margin: 20px 0"
v-loading=
"loading"
>
<el-table-column
label=
"业务模块"
prop=
"businessTypeName"
:formatter=
"(row, col, val) => val || '--'"
></el-table-column>
<el-table-column
label=
"操作事项"
prop=
"optTypeName"
:formatter=
"(row, col, val) => val || '--'"
></el-table-column>
<el-table-column
label=
"操作页面"
prop=
"optPage"
:formatter=
"(row, col, val) => val || '--'"
></el-table-column>
<el-table-column
label=
"操作账号"
show-overflow-tooltip
>
<template
slot-scope=
"
{ row }">
<template
v-if=
"row.userName || row.phoneNumber"
>
<p
class=
"text-overflow"
>
{{
row
.
userName
?
row
.
userName
:
''
}}
<span
v-if=
"row.ywName"
style=
"color: #909399"
>
(
{{
row
.
ywName
}}
)
</span>
</p>
<p>
{{
row
.
phoneNumber
?
row
.
phoneNumber
:
''
}}
</p>
</
template
>
<
template
v-else
>
--
</
template
>
</template>
</el-table-column>
<el-table-column
label=
"操作内容"
prop=
"content"
:formatter=
"(row, col, val) => val || '--'"
show-overflow-tooltip
></el-table-column>
<el-table-column
label=
"操作时间"
prop=
"createTime"
>
<
template
slot-scope=
"{ row }"
v-if=
"row.createTime"
>
{{
row
.
createTime
}}
{{
row
.
createTime
}}
</
template
>
<
template
v-else
>
--
</
template
>
</el-table-column>
</el-table>
<el-pagination
v-if=
"pager.total > 0"
background
style=
"text-align: right"
layout=
"total, sizes, prev, pager, next"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:total=
"pager.total"
:current-page=
"pager.currentPage"
:page-size=
"pager.pageSize"
:page-sizes=
"[20, 40, 60, 80]"
></el-pagination>
</div>
</div>
</template>
<
script
>
import
{
logList
,
businessType
,
optTypes
}
from
'@/api/actCode'
;
export
default
{
name
:
'operateLog'
,
data
()
{
return
{
requestProject
:
'gic-web'
,
loading
:
false
,
search
:
{
businessType
:
''
,
optType
:
''
,
optUser
:
''
,
search
:
''
,
dateRange
:
[]
},
clerkListPager
:
{
searchName
:
''
,
pageNum
:
1
,
pageSize
:
20
,
totalPage
:
1
},
moduleList
:
[],
businessList
:
[],
userList
:
[],
tableData
:
[],
pager
:
{
currentPage
:
1
,
pageSize
:
20
,
total
:
0
},
enterpriseId
:
JSON
.
parse
(
sessionStorage
.
getItem
(
'userInfos'
)).
enterpriseId
,
pickerOptions
:
{
disabledDate
(
date
)
{
const
now
=
new
Date
();
let
start
=
new
Date
();
start
=
new
Date
(
start
.
setMonth
(
now
.
getMonth
()
-
3
));
return
date
.
getTime
()
<
start
.
getTime
()
||
date
.
getTime
()
>
now
.
getTime
();
}
}
};
},
mounted
()
{
this
.
initData
();
this
.
getTableData
();
},
methods
:
{
initData
()
{
const
params
=
{};
params
.
requestProject
=
this
.
requestProject
;
businessType
(
params
).
then
(
res
=>
{
const
{
errorCode
,
result
}
=
res
.
data
||
{};
if
(
errorCode
==
0
)
{
this
.
moduleList
=
(
result
||
[]).
filter
(
el
=>
el
.
key
!=
1001
);
}
});
optTypes
({
params
}).
then
(
res
=>
{
const
{
errorCode
,
result
}
=
res
.
data
||
{};
if
(
errorCode
==
0
)
{
this
.
businessList
=
(
result
||
[]).
filter
(
el
=>
el
.
key
!=
1001
);
}
});
this
.
getClerkList
();
},
loadMoreClerk
()
{
if
(
this
.
clerkListPager
.
pageNum
>=
this
.
clerkListPager
.
totalPage
)
return
;
this
.
clerkListPager
.
pageNum
+=
1
;
this
.
getClerkList
();
},
searchClerk
(
searchName
)
{
this
.
clerkListPager
.
searchName
=
searchName
;
this
.
clerkListPager
.
pageNum
=
1
;
this
.
clerkListPager
.
totalPage
=
1
;
document
.
querySelector
(
'.operate-clerk-list .el-scrollbar__wrap'
).
scrollTop
=
0
;
this
.
getClerkList
();
},
getClerkList
()
{
const
{
pageNum
,
pageSize
,
searchName
}
=
this
.
clerkListPager
;
const
params
=
{
searchName
,
pageNum
,
pageSize
};
params
.
requestProject
=
this
.
requestProject
;
this
.
axios
.
get
(
'/api-admin/list-user-by-search-name'
,
{
params
}).
then
(
res
=>
{
const
{
errorCode
,
result
}
=
res
.
data
||
{};
if
(
pageNum
==
1
)
{
this
.
userList
=
[];
}
if
(
errorCode
==
0
)
{
this
.
userList
=
this
.
userList
.
concat
(
result
.
result
||
[]);
this
.
clerkListPager
.
totalPage
=
result
.
totalPage
;
}
});
},
getTableData
()
{
this
.
loading
=
true
;
const
{
pageSize
,
currentPage
}
=
this
.
pager
;
const
{
businessType
,
optType
,
optUser
,
search
,
dateRange
}
=
this
.
search
;
let
para
=
{
businessType
,
optType
,
optUser
,
search
,
startDate
:
Array
.
isArray
(
dateRange
)
?
dateRange
[
0
]
:
''
,
endDate
:
Array
.
isArray
(
dateRange
)
?
dateRange
[
1
]
:
''
,
pageSize
,
pageNum
:
currentPage
,
enterpriseId
:
this
.
enterpriseId
};
para
.
requestProject
=
this
.
requestProject
;
logList
(
para
).
then
(
res
=>
{
let
data
=
res
.
data
;
if
(
data
.
errorCode
==
0
)
{
this
.
tableData
=
data
.
result
.
result
;
this
.
pager
.
total
=
data
.
result
.
totalCount
;
}
this
.
loading
=
false
;
});
},
onSearch
()
{
this
.
handleCurrentChange
(
1
);
},
handleCurrentChange
(
val
)
{
this
.
pager
.
currentPage
=
val
;
this
.
getTableData
();
},
handleSizeChange
(
val
)
{
this
.
pager
.
pageSize
=
val
;
this
.
handleCurrentChange
(
1
);
}
}
};
</
script
>
<
style
scoped
lang=
"less"
>
.right-wrap
{
height
:
auto
;
}
.text-overflow
{
width
:
100%
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
/
deep
/
.el-table
::before
{
display
:
none
;
}
.operate-clerk-list
.el-select-dropdown__item
{
padding
:
8px
12px
;
height
:
52px
;
line-height
:
normal
;
p
:
first-child
{
line-height
:
20px
;
}
p
:last-child
{
line-height
:
17px
;
}
&
:hover
p
{
color
:
#2f54eb
;
}
}
</
style
>
src/views/salesleads/components/welcomesItem.vue
View file @
e9bcfe76
...
@@ -173,8 +173,6 @@ export default {
...
@@ -173,8 +173,6 @@ export default {
this
.
getWelcomeTable
();
this
.
getWelcomeTable
();
}
}
});
});
}
else
{
this
.
welcomesType
=
2
;
}
}
},
},
immediate
:
true
,
immediate
:
true
,
...
...
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