Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
haoban-4
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-4
Commits
7fbe6c02
Commit
7fbe6c02
authored
Sep 03, 2020
by
无尘
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 修改选择商户和人群
parent
10d18ac8
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
393 additions
and
207 deletions
+393
-207
my-customer-app.js
src/api/my-customer-app.js
+30
-13
customer-assign.vue
src/components/app/my-customer/customer-assign.vue
+11
-11
customer-store-group.vue
src/components/app/my-customer/customer-store-group.vue
+12
-14
customer-store.vue
src/components/app/my-customer/customer-store.vue
+10
-10
edit-tag-dialog.vue
src/components/app/my-customer/edit-tag-dialog.vue
+3
-3
edit-visiable.vue
src/components/app/my-customer/edit-visiable.vue
+22
-19
org-tree.vue
src/components/app/my-customer/org-tree.vue
+3
-3
store-list.vue
src/components/app/my-customer/store-list.vue
+10
-7
sync-crowd-dialog.vue
src/components/app/my-customer/sync-crowd-dialog.vue
+55
-28
tag-classify-dialog.vue
src/components/app/my-customer/tag-classify-dialog.vue
+14
-14
tag-classify-list.vue
src/components/app/my-customer/tag-classify-list.vue
+31
-9
common-alert-tip.vue
src/components/common/common-alert-tip.vue
+8
-1
clerk-tag.vue
src/views/apps/customer-app/clerk-tag.vue
+107
-13
crowd-scene.vue
src/views/apps/customer-app/crowd-scene.vue
+67
-52
customer-data-set.vue
src/views/apps/customer-app/customer-data-set.vue
+4
-4
audit-log.vue
src/views/business/audit-log.vue
+2
-2
auth-merchant.vue
src/views/business/auth-merchant.vue
+2
-2
new-auth-merchant.vue
src/views/business/new-auth-merchant.vue
+2
-2
No files found.
src/api/my-customer-app.js
View file @
7fbe6c02
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
* @Author: 无尘
* @Author: 无尘
* @Date: 2020-08-27 09:29:13
* @Date: 2020-08-27 09:29:13
* @LastEditors: 无尘
* @LastEditors: 无尘
* @LastEditTime: 2020-09-0
1 11:41:14
* @LastEditTime: 2020-09-0
3 14:47:48
*/
*/
import
getFetch
from
'./get-fetch.js'
;
import
getFetch
from
'./get-fetch.js'
;
...
@@ -57,42 +57,44 @@ let api = {
...
@@ -57,42 +57,44 @@ let api = {
useIntercept
:
false
useIntercept
:
false
},
},
// 人群场景
// 人群场景
getGroupData
:
''
,
// 获取人群场景数据
getGroupData
:
'
/member-group-list
'
,
// 获取人群场景数据
getClassifyData
:
''
,
// 获取分类数据
getClassifyData
:
'
/member-group-category-list
'
,
// 获取分类数据
postSortGroup
:
{
postSortGroup
:
{
// 排序
// 排序
url
:
'/'
,
url
:
'/
member-group-sort
'
,
method
:
'post'
,
method
:
'post'
,
useFormData
:
true
,
useFormData
:
true
,
useIntercept
:
false
useIntercept
:
false
},
},
getSyncMemberData
:
''
,
// 获取人群场景同步数据
getSyncMemberData
:
'
/member-group-hb-list
'
,
// 获取人群场景同步数据
saveSync
:
{
saveSync
:
{
// 保存同步
// 保存同步
url
:
'/'
,
url
:
'/
member-group-save
'
,
method
:
'post'
,
method
:
'post'
,
useFormData
:
true
,
useFormData
:
true
,
useIntercept
:
false
useIntercept
:
false
},
},
getVisiable
:
'/member-group-range-view'
,
// 获取可见范围详情
saveVisiable
:
{
saveVisiable
:
{
// 保存
同步
// 保存
可见范围
url
:
'/'
,
url
:
'/
member-group-range-save
'
,
method
:
'post'
,
method
:
'post'
,
useFormData
:
true
,
useFormData
:
true
,
useIntercept
:
false
useIntercept
:
false
},
},
// 导购标签
// 导购标签
getTagClassify
:
''
,
// 获取导购标签分类
getTagClassify
:
'
/tagCategoryList
'
,
// 获取导购标签分类
addClassify
:
''
,
// 新增分类
addClassify
:
'
/tag-category-add
'
,
// 新增分类
delClassify
:
{
delClassify
:
{
// 删除分类
// 删除分类
url
:
'/'
,
url
:
'/
tag-category-del
'
,
method
:
'post'
,
method
:
'post'
,
useFormData
:
true
,
useFormData
:
true
,
useIntercept
:
false
useIntercept
:
false
},
},
getClerkTag
:
''
,
// 获取导购标签
getClerkTag
:
'/member-tag-list'
,
// 获取导购标签
addClerkTag
:
''
,
// 新增导购标签
addClerkTag
:
'/member-tag-add'
,
// 新增导购标签
editClerkTag
:
'/member-tag-edit'
,
// 编辑导购标签
delClerkTag
:
{
delClerkTag
:
{
// 删除导购标签
// 删除导购标签
url
:
'/'
,
url
:
'/'
,
...
@@ -100,6 +102,21 @@ let api = {
...
@@ -100,6 +102,21 @@ let api = {
useFormData
:
true
,
useFormData
:
true
,
useIntercept
:
false
useIntercept
:
false
},
},
sortClerkTag
:
{
// 导购标签排序
url
:
'/'
,
method
:
'post'
,
useFormData
:
true
,
useIntercept
:
false
},
getTagVisiable
:
'/member-tag-range-view'
,
// 获取可见范围详情
saveTagVisiable
:
{
// 保存可见范围
url
:
'/member-tag-range-save'
,
method
:
'post'
,
useFormData
:
true
,
useIntercept
:
false
},
};
};
api
=
getFetch
(
api
,
'/hb-manage-web'
);
api
=
getFetch
(
api
,
'/hb-manage-web'
);
...
...
src/components/app/my-customer/customer-assign.vue
View file @
7fbe6c02
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
* @Author: 无尘
* @Author: 无尘
* @Date: 2020-04-14 09:50:16
* @Date: 2020-04-14 09:50:16
* @LastEditors: 无尘
* @LastEditors: 无尘
* @LastEditTime: 2020-0
8-28 16:11:02
* @LastEditTime: 2020-0
9-03 11:22:53
-->
-->
<!--
<!--
<customer-assign v-if="assignShow" :brand-id="brandId" :clerk-id="clerkId" :search-params="searchInput" :choose-all="selectRadio" :depart-obj="departObj" :multiple-data="multipleSelection" @closeText="closeText" @submitText="submitText"></customer-assign>
<customer-assign v-if="assignShow" :brand-id="brandId" :clerk-id="clerkId" :search-params="searchInput" :choose-all="selectRadio" :depart-obj="departObj" :multiple-data="multipleSelection" @closeText="closeText" @submitText="submitText"></customer-assign>
...
@@ -140,7 +140,7 @@ export default {
...
@@ -140,7 +140,7 @@ export default {
},
},
methods
:
{
methods
:
{
/**
/**
* 单个值改变
*
@description:
单个值改变
* @param {Boolean} e
* @param {Boolean} e
* @param {Object} item
* @param {Object} item
*/
*/
...
@@ -165,7 +165,7 @@ export default {
...
@@ -165,7 +165,7 @@ export default {
});
});
},
},
/**
/**
* 手动分配选择
*
@description:
手动分配选择
* @param {Boolean} e
* @param {Boolean} e
*/
*/
async
changeHand
(
e
)
{
async
changeHand
(
e
)
{
...
@@ -179,14 +179,14 @@ export default {
...
@@ -179,14 +179,14 @@ export default {
}
}
},
},
/**
/**
* 手动值改变,计算总数
*
@description:
手动值改变,计算总数
*/
*/
handleChange
()
{
handleChange
()
{
const
that
=
this
;
const
that
=
this
;
that
.
totalCalc
();
that
.
totalCalc
();
},
},
/**
/**
* 手动值改变,计算总数
*
@description:
手动值改变,计算总数
* @param {Object} e
* @param {Object} e
* @param {Object} item
* @param {Object} item
*/
*/
...
@@ -208,7 +208,7 @@ export default {
...
@@ -208,7 +208,7 @@ export default {
that
.
totalPeople
=
num
;
that
.
totalPeople
=
num
;
},
},
/**
/**
* 单选
*
@description:
单选
* @param {Array} value
* @param {Array} value
*/
*/
async
handleCheckedChange
(
value
)
{
async
handleCheckedChange
(
value
)
{
...
@@ -226,7 +226,7 @@ export default {
...
@@ -226,7 +226,7 @@ export default {
}
}
},
},
/**
/**
* 全选
*
@description:
全选
* @param {Array} value
* @param {Array} value
*/
*/
async
handleCheckAllChange
(
value
)
{
async
handleCheckAllChange
(
value
)
{
...
@@ -265,7 +265,7 @@ export default {
...
@@ -265,7 +265,7 @@ export default {
});
});
},
},
/**
/**
* 获取导购
*
@description:
获取导购
*/
*/
getClerkData
()
{
getClerkData
()
{
const
that
=
this
;
const
that
=
this
;
...
@@ -294,7 +294,7 @@ export default {
...
@@ -294,7 +294,7 @@ export default {
});
});
},
},
/**
/**
* 获取会员数量
*
@description:
获取会员数量
*/
*/
getMemberData
()
{
getMemberData
()
{
const
that
=
this
;
const
that
=
this
;
...
@@ -335,7 +335,7 @@ export default {
...
@@ -335,7 +335,7 @@ export default {
that
.
$emit
(
'closeText'
);
that
.
$emit
(
'closeText'
);
},
},
/**
/**
* 保存
*
@description:
保存
*/
*/
submitForm
:
_debounce
(
function
()
{
submitForm
:
_debounce
(
function
()
{
const
that
=
this
;
const
that
=
this
;
...
@@ -372,7 +372,7 @@ export default {
...
@@ -372,7 +372,7 @@ export default {
});
});
},
},
/**
/**
* 设置人数和获取数量判断
*
@description:
设置人数和获取数量判断
*/
*/
setNum
()
{
setNum
()
{
const
that
=
this
;
const
that
=
this
;
...
...
src/components/app/my-customer/customer-store-group.vue
View file @
7fbe6c02
...
@@ -4,11 +4,11 @@
...
@@ -4,11 +4,11 @@
* @Author: 无尘
* @Author: 无尘
* @Date: 2020-08-28 15:24:12
* @Date: 2020-08-28 15:24:12
* @LastEditors: 无尘
* @LastEditors: 无尘
* @LastEditTime: 2020-0
8-28 16:11:15
* @LastEditTime: 2020-0
9-03 14:17:26
-->
-->
<!--
<!--
门店绑定-选择分组
门店绑定-选择分组
<customer-store-group :
company-id="company
Id" :select-group="selectGroup" @checkGroupIds="checkGroupIds"></customer-store-group>
<customer-store-group :
brand-id="brand
Id" :select-group="selectGroup" @checkGroupIds="checkGroupIds"></customer-store-group>
import customerStoreGroup from '@/components/app/my-customer/customer-store-group.vue';
import customerStoreGroup from '@/components/app/my-customer/customer-store-group.vue';
-->
-->
<
template
>
<
template
>
...
@@ -32,7 +32,7 @@ const { getGroupList } = fetch;
...
@@ -32,7 +32,7 @@ const { getGroupList } = fetch;
export
default
{
export
default
{
name
:
'CustomerStoreGroup'
,
name
:
'CustomerStoreGroup'
,
props
:
{
props
:
{
company
Id
:
{
brand
Id
:
{
type
:
String
,
type
:
String
,
default
:
''
default
:
''
},
},
...
@@ -60,7 +60,7 @@ export default {
...
@@ -60,7 +60,7 @@ export default {
},
},
mounted
()
{
mounted
()
{
const
that
=
this
;
const
that
=
this
;
if
(
that
.
company
Id
)
{
if
(
that
.
brand
Id
)
{
that
.
getGroup
();
that
.
getGroup
();
}
}
if
(
that
.
selectGroup
.
length
)
{
if
(
that
.
selectGroup
.
length
)
{
...
@@ -75,7 +75,7 @@ export default {
...
@@ -75,7 +75,7 @@ export default {
},
},
methods
:
{
methods
:
{
/**
/**
* 过滤搜索
*
@description:
过滤搜索
* @param {String} value
* @param {String} value
* @param {Object} data
* @param {Object} data
* @returns {Boolean}
* @returns {Boolean}
...
@@ -85,7 +85,7 @@ export default {
...
@@ -85,7 +85,7 @@ export default {
return
data
.
label
.
indexOf
(
value
)
!==
-
1
;
return
data
.
label
.
indexOf
(
value
)
!==
-
1
;
},
},
/**
/**
* 输入
*
@description:
输入
* @param {Object} e
* @param {Object} e
* @param {String} value
* @param {String} value
* @returns {Boolean}
* @returns {Boolean}
...
@@ -97,14 +97,14 @@ export default {
...
@@ -97,14 +97,14 @@ export default {
}
}
},
200
),
},
200
),
/**
/**
* 清空
*
@description:
清空
* @returns {Boolean}
* @returns {Boolean}
*/
*/
clearSearch
()
{
clearSearch
()
{
return
false
;
return
false
;
},
},
/**
/**
* 选择 tree 节点,获取选择节点信息
*
@description:
选择 tree 节点,获取选择节点信息
* @param {Object} e
* @param {Object} e
* @param {Array} checkedKeys
* @param {Array} checkedKeys
*/
*/
...
@@ -144,13 +144,13 @@ export default {
...
@@ -144,13 +144,13 @@ export default {
},
},
/**
/**
* 获取门店分组
*
@description:
获取门店分组
*/
*/
getGroup
()
{
getGroup
()
{
const
that
=
this
;
const
that
=
this
;
const
para
=
{
const
para
=
{
type
:
that
.
storeType
,
type
:
that
.
storeType
,
enterpriseId
:
that
.
company
Id
enterpriseId
:
that
.
brand
Id
};
};
getGroupList
(
para
)
getGroupList
(
para
)
...
@@ -166,9 +166,7 @@ export default {
...
@@ -166,9 +166,7 @@ export default {
// 存一份数据自己搜索
// 存一份数据自己搜索
// console.log(that.groupData)
// console.log(that.groupData)
that
.
groupDataCopy
=
JSON
.
parse
(
JSON
.
stringify
(
res
.
result
));
that
.
groupDataCopy
=
JSON
.
parse
(
JSON
.
stringify
(
res
.
result
));
that
.
$nextTick
(()
=>
{
that
.
setSelectCheck
();
});
})
})
.
catch
(
function
(
error
)
{
.
catch
(
function
(
error
)
{
...
@@ -191,7 +189,7 @@ export default {
...
@@ -191,7 +189,7 @@ export default {
});
});
}
}
},
},
company
Id
(
val
)
{
brand
Id
(
val
)
{
const
that
=
this
;
const
that
=
this
;
if
(
!!
val
)
{
if
(
!!
val
)
{
that
.
getGroup
();
that
.
getGroup
();
...
...
src/components/app/my-customer/customer-store.vue
View file @
7fbe6c02
...
@@ -4,10 +4,10 @@
...
@@ -4,10 +4,10 @@
* @Author: 无尘
* @Author: 无尘
* @Date: 2020-08-28 15:24:42
* @Date: 2020-08-28 15:24:42
* @LastEditors: 无尘
* @LastEditors: 无尘
* @LastEditTime: 2020-0
8-31 10:47:30
* @LastEditTime: 2020-0
9-03 14:18:01
-->
-->
<!--
<!--
<customer-store :
company-id="company
Id" :select-store="selectStore" @checkStoreIds="checkStoreIds"></customer-store>
<customer-store :
brand-id="brand
Id" :select-store="selectStore" @checkStoreIds="checkStoreIds"></customer-store>
import customerStore from '@/components/app/my-customer/customer-store.vue';
import customerStore from '@/components/app/my-customer/customer-store.vue';
-->
-->
<
template
>
<
template
>
...
@@ -39,7 +39,7 @@ const { getStoreList } = fetch;
...
@@ -39,7 +39,7 @@ const { getStoreList } = fetch;
export
default
{
export
default
{
name
:
'CustomerStore'
,
name
:
'CustomerStore'
,
props
:
{
props
:
{
company
Id
:
{
brand
Id
:
{
type
:
String
,
type
:
String
,
default
:
''
default
:
''
},
},
...
@@ -68,7 +68,7 @@ export default {
...
@@ -68,7 +68,7 @@ export default {
const
that
=
this
;
const
that
=
this
;
that
.
stores
=
[];
that
.
stores
=
[];
that
.
storesCopy
=
[];
that
.
storesCopy
=
[];
if
(
!!
that
.
company
Id
)
{
if
(
!!
that
.
brand
Id
)
{
that
.
pageNum
=
1
;
that
.
pageNum
=
1
;
that
.
getStoreData
();
that
.
getStoreData
();
}
}
...
@@ -81,7 +81,7 @@ export default {
...
@@ -81,7 +81,7 @@ export default {
methods
:
{
methods
:
{
/**
/**
* 选择改变
*
@description:
选择改变
* @param {Array} value
* @param {Array} value
*/
*/
handleStoresChange
(
value
)
{
handleStoresChange
(
value
)
{
...
@@ -95,7 +95,7 @@ export default {
...
@@ -95,7 +95,7 @@ export default {
that
.
$emit
(
'checkStoreIds'
,
JSON
.
parse
(
JSON
.
stringify
(
arr
)));
that
.
$emit
(
'checkStoreIds'
,
JSON
.
parse
(
JSON
.
stringify
(
arr
)));
},
},
/**
/**
* 输入
*
@description:
输入
* @param {Object} e
* @param {Object} e
* @param {String} value
* @param {String} value
*/
*/
...
@@ -109,7 +109,7 @@ export default {
...
@@ -109,7 +109,7 @@ export default {
},
500
),
},
500
),
/**
/**
* 清空
*
@description:
清空
*/
*/
clearSearch
()
{
clearSearch
()
{
const
that
=
this
;
const
that
=
this
;
...
@@ -119,13 +119,13 @@ export default {
...
@@ -119,13 +119,13 @@ export default {
},
},
/**
/**
* 获取门店
*
@description:
获取门店
*/
*/
getStoreData
()
{
getStoreData
()
{
const
that
=
this
;
const
that
=
this
;
const
para
=
{
const
para
=
{
search
:
that
.
searchSelect
,
search
:
that
.
searchSelect
,
enterpriseId
:
that
.
company
Id
,
enterpriseId
:
that
.
brand
Id
,
type
:
that
.
storeType
,
type
:
that
.
storeType
,
pageNum
:
that
.
pageNum
,
pageNum
:
that
.
pageNum
,
pageSize
:
that
.
pageSize
pageSize
:
that
.
pageSize
...
@@ -162,7 +162,7 @@ export default {
...
@@ -162,7 +162,7 @@ export default {
that
.
dailyRuleForm
.
stores
=
[];
that
.
dailyRuleForm
.
stores
=
[];
}
}
},
},
company
Id
(
val
)
{
brand
Id
(
val
)
{
const
that
=
this
;
const
that
=
this
;
if
(
!!
val
)
{
if
(
!!
val
)
{
that
.
pageNum
=
1
;
that
.
pageNum
=
1
;
...
...
src/components/app/my-customer/edit-tag-dialog.vue
View file @
7fbe6c02
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
* @Author: 无尘
* @Author: 无尘
* @Date: 2020-09-01 17:16:25
* @Date: 2020-09-01 17:16:25
* @LastEditors: 无尘
* @LastEditors: 无尘
* @LastEditTime: 2020-09-0
2 09:25:44
* @LastEditTime: 2020-09-0
3 11:20:52
-->
-->
<!--
<!--
...
@@ -140,7 +140,7 @@ export default {
...
@@ -140,7 +140,7 @@ export default {
that
.
inputValue
=
''
;
that
.
inputValue
=
''
;
},
},
/**
/**
* 关闭弹窗
*
@description:
关闭弹窗
*/
*/
cancel
()
{
cancel
()
{
const
that
=
this
;
const
that
=
this
;
...
@@ -152,7 +152,7 @@ export default {
...
@@ -152,7 +152,7 @@ export default {
that
.
$emit
(
'closeClassify'
,
'close'
);
that
.
$emit
(
'closeClassify'
,
'close'
);
},
},
/**
/**
* 确定保存
*
@description:
确定保存
* @param {String} formName
* @param {String} formName
* @returns {Boolean}
* @returns {Boolean}
*/
*/
...
...
src/components/app/my-customer/edit-visiable.vue
View file @
7fbe6c02
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
* @Author: 无尘
* @Author: 无尘
* @Date: 2020-08-28 11:07:46
* @Date: 2020-08-28 11:07:46
* @LastEditors: 无尘
* @LastEditors: 无尘
* @LastEditTime: 2020-0
8-28 16:11:4
3
* @LastEditTime: 2020-0
9-03 14:23:2
3
-->
-->
<!--
<!--
<edit-visiable :brand-id="brandId" @refreshData="refreshData"></edit-visiable>
<edit-visiable :brand-id="brandId" @refreshData="refreshData"></edit-visiable>
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
<
template
>
<
template
>
<el-dialog
width=
"554px"
title=
"编辑可见范围"
:visible
.
sync=
"setVisible"
append-to-body
:before-close=
"handleClose"
>
<el-dialog
width=
"554px"
title=
"编辑可见范围"
:visible
.
sync=
"setVisible"
append-to-body
:before-close=
"handleClose"
>
<div
class=
"bind-store-body"
>
<div
class=
"bind-store-body"
>
<div
class=
"edit-visiable-tip"
>
<div
class=
"edit-visiable-tip
m-b-20
"
>
<common-alert-tip
:width=
"'100%'"
:tip-content=
"tipContent"
></common-alert-tip>
<common-alert-tip
:width=
"'100%'"
:tip-content=
"tipContent"
></common-alert-tip>
</div>
</div>
<div
class=
"el-form-item el-form-item--large"
>
<div
class=
"el-form-item el-form-item--large"
>
...
@@ -25,14 +25,14 @@
...
@@ -25,14 +25,14 @@
<el-radio
class=
"m-l-40 m-r-8"
v-model=
"formData.sendRange"
label=
"1"
@
change=
"changeRange"
>
选择分组
</el-radio>
<el-radio
class=
"m-l-40 m-r-8"
v-model=
"formData.sendRange"
label=
"1"
@
change=
"changeRange"
>
选择分组
</el-radio>
<el-radio
class=
"m-l-40 m-r-8"
v-model=
"formData.sendRange"
label=
"2"
@
change=
"changeRange"
>
选择门店
</el-radio>
<el-radio
class=
"m-l-40 m-r-8"
v-model=
"formData.sendRange"
label=
"2"
@
change=
"changeRange"
>
选择门店
</el-radio>
<div
v-if=
"(formData.sendRange == '1' || formData.sendRange == '2') && !formData.selectList.length || String(formData.sendRange) == 'null' || formData.sendRange === ''"
class=
"el-form-item__error"
>
请选择绑定门店
</div>
<div
v-if=
"(formData.sendRange == '1' || formData.sendRange == '2') && !formData.selectList.length || String(formData.sendRange) == 'null' || formData.sendRange === ''"
class=
"el-form-item__error"
>
请选择绑定门店
</div>
<customer-store-group
v-if=
"formData.sendRange == '1'"
:
company-id=
"enterprise
Id"
:select-group=
"selectGroupData"
@
checkGroupIds=
"checkGroupIds"
></customer-store-group>
<customer-store-group
v-if=
"formData.sendRange == '1'"
:
brand-id=
"brand
Id"
:select-group=
"selectGroupData"
@
checkGroupIds=
"checkGroupIds"
></customer-store-group>
<customer-store
v-if=
"formData.sendRange == '2'"
:
company-id=
"enterprise
Id"
:select-store=
"selectStoreData"
@
checkStoreIds=
"checkStoreIds"
></customer-store>
<customer-store
v-if=
"formData.sendRange == '2'"
:
brand-id=
"brand
Id"
:select-store=
"selectStoreData"
@
checkStoreIds=
"checkStoreIds"
></customer-store>
</div>
</div>
</div>
</div>
</div>
</div>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click
.
stop=
"cancel"
>
取消
</el-button>
<el-button
@
click
.
stop=
"cancel"
>
取消
</el-button>
<el-button
type=
"primary"
:loading=
"loadingBtn"
@
click
.
stop=
"submitForm"
>
确定
</el-button>
<el-button
type=
"primary"
:loading=
"loadingBtn"
@
click
.
stop=
"submitForm"
>
保存
</el-button>
</div>
</div>
</el-dialog>
</el-dialog>
</
template
>
</
template
>
...
@@ -52,11 +52,12 @@ export default {
...
@@ -52,11 +52,12 @@ export default {
commonAlertTip
commonAlertTip
},
},
props
:
{
props
:
{
isSelectAll
:
{
// crowd: 场景人群; tag: 导购标签
type
:
[
String
,
Number
],
setType
:
{
default
:
'0'
// 0 没有绑定, 1 被绑定,禁用选择所有门店
type
:
String
,
default
:
''
},
},
enterprise
Id
:
{
brand
Id
:
{
type
:
String
,
type
:
String
,
default
:
''
default
:
''
},
},
...
@@ -93,7 +94,7 @@ export default {
...
@@ -93,7 +94,7 @@ export default {
},
},
methods
:
{
methods
:
{
/**
/**
* 改变选择范围
*
@description:
改变选择范围
* @param {String} e
* @param {String} e
*/
*/
changeRange
(
e
)
{
changeRange
(
e
)
{
...
@@ -102,25 +103,25 @@ export default {
...
@@ -102,25 +103,25 @@ export default {
that
.
formData
.
selectList
=
[];
that
.
formData
.
selectList
=
[];
},
},
/**
/**
* 关闭弹窗
*
@description:
关闭弹窗
* @param {Function} done
* @param {Function} done
*/
*/
handleClose
(
done
)
{
handleClose
(
done
)
{
const
that
=
this
;
const
that
=
this
;
done
();
done
();
that
.
$emit
(
'
closeSet
'
,
'close'
);
that
.
$emit
(
'
refreshData
'
,
'close'
);
that
.
selectGroupData
=
[];
that
.
selectGroupData
=
[];
that
.
selectStoreData
=
[];
that
.
selectStoreData
=
[];
},
},
cancel
()
{
cancel
()
{
const
that
=
this
;
const
that
=
this
;
that
.
$emit
(
'
closeSet
'
,
'close'
);
that
.
$emit
(
'
refreshData
'
,
'close'
);
that
.
selectGroupData
=
[];
that
.
selectGroupData
=
[];
that
.
selectStoreData
=
[];
that
.
selectStoreData
=
[];
},
},
/**
/**
* 每次选择分组
*
@description:
每次选择分组
* @param {Array} nodes
* @param {Array} nodes
*/
*/
checkGroupIds
:
function
(
nodes
)
{
checkGroupIds
:
function
(
nodes
)
{
...
@@ -128,7 +129,7 @@ export default {
...
@@ -128,7 +129,7 @@ export default {
that
.
formData
.
selectList
=
JSON
.
parse
(
JSON
.
stringify
(
nodes
));
that
.
formData
.
selectList
=
JSON
.
parse
(
JSON
.
stringify
(
nodes
));
},
},
/**
/**
* 每次选择门店
*
@description:
每次选择门店
* @param {Array} nodes
* @param {Array} nodes
*/
*/
checkStoreIds
:
function
(
nodes
)
{
checkStoreIds
:
function
(
nodes
)
{
...
@@ -136,7 +137,7 @@ export default {
...
@@ -136,7 +137,7 @@ export default {
that
.
formData
.
selectList
=
JSON
.
parse
(
JSON
.
stringify
(
nodes
));
that
.
formData
.
selectList
=
JSON
.
parse
(
JSON
.
stringify
(
nodes
));
},
},
/**
/**
* 确定
*
@description:
确定
* @returns {Boolean}
* @returns {Boolean}
*/
*/
submitForm
:
_debounce
(
function
()
{
submitForm
:
_debounce
(
function
()
{
...
@@ -156,14 +157,16 @@ export default {
...
@@ -156,14 +157,16 @@ export default {
postSave
()
{
postSave
()
{
const
that
=
this
;
const
that
=
this
;
const
params
=
{
const
params
=
{
enterpriseId
:
that
.
brandId
enterpriseId
:
that
.
brandId
,
storeMode
:
that
.
formData
.
sendRange
,
bingRange
:
that
.
formData
.
selectList
};
};
saveVisiable
(
params
)
saveVisiable
(
params
)
.
then
(
res
=>
{
.
then
(
res
=>
{
that
.
loadingBtn
=
false
;
that
.
loadingBtn
=
false
;
if
(
res
.
code
==
'0000'
)
{
if
(
res
.
code
==
'0000'
)
{
showMsg
.
showmsg
(
'
编辑
成功'
,
'success'
);
showMsg
.
showmsg
(
'
保存
成功'
,
'success'
);
that
.
$emit
(
'
closeSet
'
,
'success'
);
that
.
$emit
(
'
refreshData
'
,
'success'
);
}
else
{
}
else
{
showMsg
.
showmsg
(
res
.
message
||
'接口异常'
,
'warning'
);
showMsg
.
showmsg
(
res
.
message
||
'接口异常'
,
'warning'
);
}
}
...
...
src/components/app/my-customer/org-tree.vue
View file @
7fbe6c02
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
* @Author: 无尘
* @Author: 无尘
* @Date: 2020-08-14 16:51:07
* @Date: 2020-08-14 16:51:07
* @LastEditors: 无尘
* @LastEditors: 无尘
* @LastEditTime: 2020-0
8-28 16:11:55
* @LastEditTime: 2020-0
9-03 11:19:46
-->
-->
<!--
<!--
<org-tree v-if="item.children.length" :item-data="item.children" @getSelectData="getSelectData"></org-tree>
<org-tree v-if="item.children.length" :item-data="item.children" @getSelectData="getSelectData"></org-tree>
...
@@ -87,7 +87,7 @@ export default {
...
@@ -87,7 +87,7 @@ export default {
},
},
methods
:
{
methods
:
{
/**
/**
* 获取选中部门/门店数据
*
@description:
获取选中部门/门店数据
* @param {Object} obj
* @param {Object} obj
*/
*/
getSelectData
(
obj
)
{
getSelectData
(
obj
)
{
...
@@ -96,7 +96,7 @@ export default {
...
@@ -96,7 +96,7 @@ export default {
that
.
$emit
(
'getSelectData'
,
obj
);
that
.
$emit
(
'getSelectData'
,
obj
);
},
},
/**
/**
* 展开或者关闭下级
*
@description:
展开或者关闭下级
* @param {Object} item
* @param {Object} item
*/
*/
async
toggleExpand
(
item
)
{
async
toggleExpand
(
item
)
{
...
...
src/components/app/my-customer/store-list.vue
View file @
7fbe6c02
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
* @Author : 无尘
* @Author : 无尘
* @Date : 2020-08-13 14:02:22
* @Date : 2020-08-13 14:02:22
* @LastEditors: 无尘
* @LastEditors: 无尘
* @LastEditTime: 2020-0
8-28 16:12:10
* @LastEditTime: 2020-0
9-03 11:20:32
* @FilePath : haoban-4\src\components\app\my-customer\store-list.vue
* @FilePath : haoban-4\src\components\app\my-customer\store-list.vue
-->
-->
<!--
<!--
...
@@ -107,7 +107,7 @@ export default {
...
@@ -107,7 +107,7 @@ export default {
},
},
methods
:
{
methods
:
{
/**
/**
* 查看会员
*
@description:
查看会员
* @param {Object} item
* @param {Object} item
*/
*/
showMember
(
item
)
{
showMember
(
item
)
{
...
@@ -115,14 +115,17 @@ export default {
...
@@ -115,14 +115,17 @@ export default {
that
.
$emit
(
'getStore'
,
item
);
that
.
$emit
(
'getStore'
,
item
);
},
},
/**
/**
* 输入
*
@description:
输入
*/
*/
toInput
:
_debounce
(
function
()
{
toInput
:
_debounce
(
function
()
{
const
that
=
this
;
const
that
=
this
;
that
.
currentPage
=
1
;
that
.
currentPage
=
1
;
that
.
getTableList
();
that
.
getTableList
();
},
500
),
},
500
),
// 搜索清除
/**
* @description: 搜索清除
* @author: 无尘
*/
clearInput
()
{
clearInput
()
{
const
that
=
this
;
const
that
=
this
;
that
.
currentPage
=
1
;
that
.
currentPage
=
1
;
...
@@ -130,7 +133,7 @@ export default {
...
@@ -130,7 +133,7 @@ export default {
},
},
/**
/**
* 分页---页码变化
*
@description:
分页---页码变化
* @param {Number} val
* @param {Number} val
*/
*/
handleSizeChange
(
val
)
{
handleSizeChange
(
val
)
{
...
@@ -141,7 +144,7 @@ export default {
...
@@ -141,7 +144,7 @@ export default {
},
},
/**
/**
* 分页---当前页变化
*
@description:
分页---当前页变化
* @param {Number} val
* @param {Number} val
*/
*/
handleCurrentChange
(
val
)
{
handleCurrentChange
(
val
)
{
...
@@ -150,7 +153,7 @@ export default {
...
@@ -150,7 +153,7 @@ export default {
that
.
getTableList
();
that
.
getTableList
();
},
},
/**
/**
* 获取列表数据
*
@description:
获取列表数据
*/
*/
getTableList
()
{
getTableList
()
{
const
that
=
this
;
const
that
=
this
;
...
...
src/components/app/my-customer/sync-crowd-dialog.vue
View file @
7fbe6c02
...
@@ -4,23 +4,23 @@
...
@@ -4,23 +4,23 @@
* @Author: 无尘
* @Author: 无尘
* @Date: 2020-08-28 10:31:09
* @Date: 2020-08-28 10:31:09
* @LastEditors: 无尘
* @LastEditors: 无尘
* @LastEditTime: 2020-0
8-28 16:12:21
* @LastEditTime: 2020-0
9-03 14:42:48
-->
-->
<!--
<!--
<sync-crowd-dialog :brand-id="brandId" @refreshData="refreshData"></sync-crowd-dialog>
<sync-crowd-dialog :brand-id="brandId" @refreshData="refreshData"></sync-crowd-dialog>
import syncCrowdDialog from '@/components/app/my-customer/sync-crowd-dialog.vue';
import syncCrowdDialog from '@/components/app/my-customer/sync-crowd-dialog.vue';
-->
-->
<
template
>
<
template
>
<el-dialog
title=
"同步场景人群"
:visible
.
sync=
"dialogVisible"
width=
"
995
px"
:before-close=
"handleClose"
>
<el-dialog
title=
"同步场景人群"
:visible
.
sync=
"dialogVisible"
width=
"
726
px"
:before-close=
"handleClose"
>
<div
class=
"sync-tip"
>
<div
class=
"sync-tip
m-b-20
"
>
<common-alert-tip
:width=
"'100%'"
:tip-content=
"tipContent"
></common-alert-tip>
<common-alert-tip
:width=
"'100%'"
:tip-content=
"tipContent"
></common-alert-tip>
</div>
</div>
<div
class=
"sync-search"
>
<div
class=
"sync-search"
>
<div
class=
"flex flex-space-between"
>
<div
class=
"flex flex-space-between"
>
<div>
<div>
<el-input
placeholder=
"请输入人群名称"
maxlength=
"50"
v-model=
"searchVal"
class=
"w-264"
style=
"width: 217px;"
prefix-icon=
"el-icon-search"
@
keyup
.
native=
"value => toInput(value)"
clearable
@
clear=
"clearInput"
></el-input><el-select
class=
"w-168 m-l-10"
v-model=
"classifyName
"
placeholder=
"所有分类"
@
change=
"changeCondition"
>
<el-input
placeholder=
"请输入人群名称"
maxlength=
"50"
v-model=
"searchVal"
style=
"width: 292px;"
prefix-icon=
"el-icon-search"
@
keyup
.
native=
"value => toInput(value)"
clearable
@
clear=
"clearInput"
></el-input><el-select
class=
"w-165 m-l-10"
v-model=
"classifyId
"
placeholder=
"所有分类"
@
change=
"changeCondition"
>
<el-option
label=
"所有分类"
value=
""
></el-option>
<el-option
label=
"所有分类"
value=
""
></el-option>
<el-option
v-for=
"item in classifyList"
:key=
"item
"
:label=
"item"
:value=
"item
"
>
</el-option>
<el-option
v-for=
"item in classifyList"
:key=
"item
.categoryId"
:label=
"itemcategoryName"
:value=
"item.categoryId
"
>
</el-option>
</el-select>
</el-select>
</div>
</div>
</div>
</div>
...
@@ -30,18 +30,18 @@
...
@@ -30,18 +30,18 @@
<el-table-column
type=
"selection"
width=
"55"
>
</el-table-column>
<el-table-column
type=
"selection"
width=
"55"
>
</el-table-column>
<el-table-column
prop=
""
label=
"人群名称"
show-overflow-tooltip
>
<el-table-column
prop=
""
label=
"人群名称"
show-overflow-tooltip
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
n
ame
||
'--'
}}
{{
scope
.
row
.
memberGroupN
ame
||
'--'
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
""
label=
"所属分类"
show-overflow-tooltip
>
<el-table-column
prop=
""
label=
"所属分类"
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
c
lassif
yName
||
'--'
}}
{{
scope
.
row
.
c
ategor
yName
||
'--'
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
""
label=
"到期时间"
>
<el-table-column
prop=
""
label=
"到期时间"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<div
class=
"color-606266 line-18"
>
{{
scope
.
row
.
createTime
|
timeStampToYmd
}}
</div>
<div
class=
"color-606266 line-18"
>
{{
scope
.
row
.
overTime
|
timeStampToYmd
}}
{{
!
scope
.
row
.
overTime
?
'--'
:
''
}}
</div>
<div
class=
"color-606266 line-18"
>
{{
scope
.
row
.
createTime
|
timeStampToHms
}}
</div>
<div
class=
"color-606266 line-18"
>
{{
scope
.
row
.
overTime
|
timeStampToHms
}}
{{
!
scope
.
row
.
overTime
?
'--'
:
''
}}
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
@@ -77,7 +77,7 @@ export default {
...
@@ -77,7 +77,7 @@ export default {
dialogVisible
:
true
,
dialogVisible
:
true
,
tipContent
:
'从GIC最多可同步20个场景人群'
,
tipContent
:
'从GIC最多可同步20个场景人群'
,
searchVal
:
''
,
searchVal
:
''
,
classify
Name
:
''
,
classify
Id
:
''
,
classifyList
:
[],
classifyList
:
[],
// 分页参数
// 分页参数
loadingPage
:
false
,
loadingPage
:
false
,
...
@@ -91,11 +91,14 @@ export default {
...
@@ -91,11 +91,14 @@ export default {
},
},
mounted
()
{
mounted
()
{
const
that
=
this
;
const
that
=
this
;
that
.
getTableList
();
if
(
that
.
brandId
)
{
that
.
getTableList
();
that
.
getGroupClassify
();
}
},
},
methods
:
{
methods
:
{
/**
/**
* 确定保存
*
@description:
确定保存
* @param {String} form
* @param {String} form
* @returns {Boolean}
* @returns {Boolean}
*/
*/
...
@@ -115,13 +118,15 @@ export default {
...
@@ -115,13 +118,15 @@ export default {
postAdd
()
{
postAdd
()
{
const
that
=
this
;
const
that
=
this
;
const
params
=
{
const
params
=
{
enterpriseId
:
that
.
brandId
enterpriseId
:
that
.
brandId
,
categoryIds
:
that
.
multipleSelection
.
map
(
ele
=>
ele
.
categoryId
).
join
(
','
)
};
};
saveSync
(
params
)
saveSync
(
params
)
.
then
(
res
=>
{
.
then
(
res
=>
{
that
.
loadingBtn
=
false
;
that
.
loadingBtn
=
false
;
if
(
res
.
code
==
'0000'
)
{
if
(
res
.
code
==
'0000'
)
{
showMsg
.
showmsg
(
'同步成功'
,
'success'
);
showMsg
.
showmsg
(
'同步成功'
,
'success'
);
that
.
clearData
();
that
.
$emit
(
'refreshData'
,
'success'
);
that
.
$emit
(
'refreshData'
,
'success'
);
}
else
{
}
else
{
showMsg
.
showmsg
(
res
.
message
||
'接口异常'
,
'warning'
);
showMsg
.
showmsg
(
res
.
message
||
'接口异常'
,
'warning'
);
...
@@ -132,7 +137,7 @@ export default {
...
@@ -132,7 +137,7 @@ export default {
});
});
},
},
/**
/**
* 表格---多选
*
@description:
表格---多选
* @param {Array} val
* @param {Array} val
*/
*/
handleSelectionChange
(
val
)
{
handleSelectionChange
(
val
)
{
...
@@ -140,19 +145,28 @@ export default {
...
@@ -140,19 +145,28 @@ export default {
that
.
multipleSelection
=
val
;
that
.
multipleSelection
=
val
;
},
},
/**
/**
* 关闭
*
@description:
关闭
*/
*/
cancel
()
{
cancel
()
{
const
that
=
this
;
const
that
=
this
;
that
.
$emit
(
'closeTable'
,
'close'
);
that
.
clearData
();
that
.
$emit
(
'refreshData'
,
'close'
);
},
},
handleClose
()
{
handleClose
()
{
const
that
=
this
;
const
that
=
this
;
that
.
clearData
();
that
.
$emit
(
'refreshData'
,
'close'
);
},
clearData
()
{
const
that
=
this
;
that
.
tableData
=
[];
that
.
tableData
=
[];
that
.
$emit
(
'closeTable'
,
'close'
);
that
.
multipleSelection
=
[];
that
.
searchVal
=
''
;
that
.
classifyId
=
''
;
that
.
classifyList
=
[];
},
},
/**
/**
* 搜索输入
*
@description:
搜索输入
*/
*/
toInput
:
_debounce
(
function
()
{
toInput
:
_debounce
(
function
()
{
const
that
=
this
;
const
that
=
this
;
...
@@ -160,7 +174,7 @@ export default {
...
@@ -160,7 +174,7 @@ export default {
that
.
getTableList
();
that
.
getTableList
();
},
500
),
},
500
),
/**
/**
* 搜索清除
*
@description:
搜索清除
*/
*/
clearInput
()
{
clearInput
()
{
const
that
=
this
;
const
that
=
this
;
...
@@ -168,7 +182,7 @@ export default {
...
@@ -168,7 +182,7 @@ export default {
that
.
getTableList
();
that
.
getTableList
();
},
},
/**
/**
* 条件
*
@description:
条件
*/
*/
changeCondition
()
{
changeCondition
()
{
const
that
=
this
;
const
that
=
this
;
...
@@ -177,7 +191,7 @@ export default {
...
@@ -177,7 +191,7 @@ export default {
},
},
/**
/**
* 分页---页码变化
*
@description:
分页---页码变化
* @param {Number} val
* @param {Number} val
*/
*/
handleSizeChange
(
val
)
{
handleSizeChange
(
val
)
{
...
@@ -188,7 +202,7 @@ export default {
...
@@ -188,7 +202,7 @@ export default {
},
},
/**
/**
* 分页---当前页变化
*
@description:
分页---当前页变化
* @param {Number} val
* @param {Number} val
*/
*/
handleCurrentChange
(
val
)
{
handleCurrentChange
(
val
)
{
...
@@ -197,7 +211,7 @@ export default {
...
@@ -197,7 +211,7 @@ export default {
that
.
getTableList
();
that
.
getTableList
();
},
},
/**
/**
* 获取分类
*
@description:
获取分类
*/
*/
getGroupClassify
()
{
getGroupClassify
()
{
const
that
=
this
;
const
that
=
this
;
...
@@ -213,24 +227,34 @@ export default {
...
@@ -213,24 +227,34 @@ export default {
});
});
},
},
/**
/**
* 获取列表数据
*
@description:
获取列表数据
*/
*/
getTableList
()
{
getTableList
()
{
const
that
=
this
;
const
that
=
this
;
let
para
=
{
that
.
loadingPage
=
true
;
enterpriseId
:
that
.
brandId
const
para
=
{
enterpriseId
:
that
.
brandId
,
keyword
:
that
.
searchVal
,
categoryId
:
that
.
classifyId
};
};
getSyncMemberData
(
para
)
getSyncMemberData
(
para
)
.
then
(
res
=>
{
.
then
(
res
=>
{
that
.
loadingPage
=
false
;
that
.
tableData
=
res
.
result
||
[];
that
.
tableData
=
res
.
result
||
[];
})
})
.
catch
(
function
(
error
)
{
.
catch
(
function
(
error
)
{
that
.
loadingPage
=
false
;
});
});
}
}
},
},
watch
:
{
watch
:
{
brandId
(
val
)
{
const
that
=
this
;
if
(
val
)
{
that
.
getTableList
();
that
.
getGroupClassify
();
}
}
}
}
};
};
</
script
>
</
script
>
...
@@ -238,4 +262,7 @@ export default {
...
@@ -238,4 +262,7 @@ export default {
.line-18
{
.line-18
{
line-height
:
18px
;
line-height
:
18px
;
}
}
.w-165
{
width
:
165px
;
}
</
style
>
</
style
>
src/components/app/my-customer/tag-classify-dialog.vue
View file @
7fbe6c02
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
* @Author: 无尘
* @Author: 无尘
* @Date: 2020-09-01 13:53:59
* @Date: 2020-09-01 13:53:59
* @LastEditors: 无尘
* @LastEditors: 无尘
* @LastEditTime: 2020-09-0
1 17:23:01
* @LastEditTime: 2020-09-0
3 14:49:43
-->
-->
<!--
<!--
...
@@ -12,12 +12,12 @@
...
@@ -12,12 +12,12 @@
import tagClassifyDialog from '@/components/app/my-customer/tag-classify-dialog.vue';
import tagClassifyDialog from '@/components/app/my-customer/tag-classify-dialog.vue';
-->
-->
<
template
>
<
template
>
<el-dialog
:title=
"form.
classif
yId ? '编辑分类' : '新建分类'"
width=
"600px"
:visible
.
sync=
"editVisible"
:before-close=
"handleClose"
>
<el-dialog
:title=
"form.
tagCategor
yId ? '编辑分类' : '新建分类'"
width=
"600px"
:visible
.
sync=
"editVisible"
:before-close=
"handleClose"
>
<el-form
:model=
"form"
:rules=
"rules"
ref=
"tagForm"
label-width=
"110px"
>
<el-form
:model=
"form"
:rules=
"rules"
ref=
"tagForm"
label-width=
"110px"
>
<el-form-item
label=
"分类名称"
prop=
"
classif
yName"
>
<el-form-item
label=
"分类名称"
prop=
"
tagCategor
yName"
>
<limit-input
<limit-input
:input-width=
"440"
:input-width=
"440"
:input-value
.
sync=
"form.
classif
yName"
:input-value
.
sync=
"form.
tagCategor
yName"
:holder=
"'请输入分类名称'"
:holder=
"'请输入分类名称'"
:get-by-type=
"'word'"
:get-by-type=
"'word'"
:max-length=
"10"
>
:max-length=
"10"
>
...
@@ -47,8 +47,8 @@ export default {
...
@@ -47,8 +47,8 @@ export default {
type
:
Object
,
type
:
Object
,
default
()
{
default
()
{
return
{
return
{
classif
yId
:
''
,
tagCategor
yId
:
''
,
classif
yName
:
''
tagCategor
yName
:
''
};
};
}
}
}
}
...
@@ -56,11 +56,11 @@ export default {
...
@@ -56,11 +56,11 @@ export default {
data
()
{
data
()
{
return
{
return
{
form
:
{
form
:
{
classif
yId
:
''
,
tagCategor
yId
:
''
,
classif
yName
:
''
tagCategor
yName
:
''
},
},
rules
:
{
rules
:
{
classif
yName
:
[
tagCategor
yName
:
[
{
required
:
true
,
message
:
'请输入分类名称'
,
trigger
:
'blur'
},
{
required
:
true
,
message
:
'请输入分类名称'
,
trigger
:
'blur'
},
]
]
},
},
...
@@ -78,7 +78,7 @@ export default {
...
@@ -78,7 +78,7 @@ export default {
// methods
// methods
methods
:
{
methods
:
{
/**
/**
* 关闭
*
@description:
关闭
*/
*/
cancel
()
{
cancel
()
{
const
that
=
this
;
const
that
=
this
;
...
@@ -90,7 +90,7 @@ export default {
...
@@ -90,7 +90,7 @@ export default {
that
.
$emit
(
'closeClassify'
,
'close'
);
that
.
$emit
(
'closeClassify'
,
'close'
);
},
},
/**
/**
* 确定保存
*
@description:
确定保存
* @param {String} formName
* @param {String} formName
* @returns {Boolean}
* @returns {Boolean}
*/
*/
...
@@ -106,8 +106,8 @@ export default {
...
@@ -106,8 +106,8 @@ export default {
const
that
=
this
;
const
that
=
this
;
that
.
loadBtn
=
true
;
that
.
loadBtn
=
true
;
const
param
=
{
const
param
=
{
classifyId
:
that
.
form
.
classif
yId
,
tagCategoryId
:
that
.
form
.
tagCategor
yId
,
classifyName
:
emojiToStr
(
that
.
form
.
classif
yName
)
tagCategoryName
:
emojiToStr
(
that
.
form
.
tagCategor
yName
)
};
};
addClassify
(
param
)
addClassify
(
param
)
.
then
(
res
=>
{
.
then
(
res
=>
{
...
@@ -115,7 +115,7 @@ export default {
...
@@ -115,7 +115,7 @@ export default {
if
(
res
.
code
==
'0000'
)
{
if
(
res
.
code
==
'0000'
)
{
showMsg
.
showmsg
(
'操作成功'
,
'success'
);
showMsg
.
showmsg
(
'操作成功'
,
'success'
);
that
.
$refs
[
'tagForm'
].
resetFields
();
that
.
$refs
[
'tagForm'
].
resetFields
();
that
.
$emit
(
'closeClassify'
,
that
.
form
.
classif
yName
);
that
.
$emit
(
'closeClassify'
,
that
.
form
.
tagCategor
yName
);
}
else
{
}
else
{
showMsg
.
showmsg
(
res
.
message
||
'未知错误'
,
'warning'
);
showMsg
.
showmsg
(
res
.
message
||
'未知错误'
,
'warning'
);
}
}
...
...
src/components/app/my-customer/tag-classify-list.vue
View file @
7fbe6c02
...
@@ -4,17 +4,17 @@
...
@@ -4,17 +4,17 @@
* @Author: 无尘
* @Author: 无尘
* @Date: 2020-09-01 11:09:16
* @Date: 2020-09-01 11:09:16
* @LastEditors: 无尘
* @LastEditors: 无尘
* @LastEditTime: 2020-09-0
2 12:19:28
* @LastEditTime: 2020-09-0
3 15:24:17
-->
-->
<!--
<!--
<tag-classify-list :brand-id="brandId" @refreshClassify="refreshClassify"></tag-classify-list>
<tag-classify-list :brand-id="brandId" @refreshClassify="refreshClassify"
@changeClass="changeClass"
></tag-classify-list>
import tagClassifyList from '@/components/app/my-customer/tag-classify-list.vue';
import tagClassifyList from '@/components/app/my-customer/tag-classify-list.vue';
-->
-->
<
template
>
<
template
>
<div>
<div>
<ul
class=
"tag-classify-body"
>
<ul
class=
"tag-classify-body"
>
<li
:class=
"['tag-classify-item',
{ active: currentClassifyId == item.
classifyId }]" v-for="(item, index) in tagList" :key="item.classif
yId+index" @click="changeClassify(index, item)">
<li
:class=
"['tag-classify-item',
{ active: currentClassifyId == item.
tagCategoryId }]" v-for="(item, index) in tagList" :key="item.tagCategor
yId+index" @click="changeClassify(index, item)">
<span
class=
"tag-classify-name"
>
{{
item
.
classif
yName
}}
</span>
<span
class=
"tag-classify-name"
>
{{
item
.
tagCategor
yName
}}
</span>
<el-dropdown
placement=
"bottom-start"
>
<el-dropdown
placement=
"bottom-start"
>
<i
class=
"iconfont icongengduo edit-icon"
></i>
<i
class=
"iconfont icongengduo edit-icon"
></i>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-menu
slot=
"dropdown"
>
...
@@ -25,16 +25,21 @@
...
@@ -25,16 +25,21 @@
</li>
</li>
<li
v-if=
"tagList.length == 0"
class=
"no-data"
>
暂无数据
</li>
<li
v-if=
"tagList.length == 0"
class=
"no-data"
>
暂无数据
</li>
</ul>
</ul>
<tag-classify-dialog
v-if=
"showTagClass"
:edit-row=
"editRow"
@
closeClassify=
"closeClassify"
></tag-classify-dialog>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
tagClassifyDialog
from
'@/components/app/my-customer/tag-classify-dialog.vue'
;
import
showMsg
from
'@/common/js/showmsg.js'
;
import
showMsg
from
'@/common/js/showmsg.js'
;
import
api
from
'@/api/my-customer-app.js'
;
import
api
from
'@/api/my-customer-app.js'
;
const
{
delClassify
}
=
api
;
const
{
delClassify
}
=
api
;
export
default
{
export
default
{
name
:
'TagClassify'
,
name
:
'TagClassify'
,
components
:
{
tagClassifyDialog
},
props
:
{
props
:
{
tagList
:
{
tagList
:
{
type
:
Array
,
type
:
Array
,
...
@@ -47,7 +52,8 @@ export default {
...
@@ -47,7 +52,8 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
editRow
:
{},
showTagClass
:
false
};
};
},
},
methods
:
{
methods
:
{
...
@@ -67,7 +73,23 @@ export default {
...
@@ -67,7 +73,23 @@ export default {
* @author: 无尘
* @author: 无尘
*/
*/
toEditClassify
(
index
,
row
)
{
toEditClassify
(
index
,
row
)
{
this
.
$emit
(
'edit-role'
,
row
);
const
that
=
this
;
that
.
editRow
=
row
;
that
.
showTagClass
=
true
;
},
/**
* @description: 关闭分类弹窗
* @param {String} res
* @return {Boolean}
* @author: 无尘
*/
closeClassify
(
res
)
{
const
that
=
this
;
that
.
showTagClass
=
false
;
if
(
res
==
'close'
)
{
return
false
;
}
that
.
editRow
.
tagCategoryName
=
res
;
},
},
/**
/**
* @description: 删除分类
* @description: 删除分类
...
@@ -84,13 +106,13 @@ export default {
...
@@ -84,13 +106,13 @@ export default {
type
:
'warning'
type
:
'warning'
})
})
.
then
(()
=>
{
.
then
(()
=>
{
that
.
delTagData
(
row
.
classif
yId
);
that
.
delTagData
(
row
.
tagCategor
yId
);
})
})
.
catch
(()
=>
{});
.
catch
(()
=>
{});
},
},
delTagData
(
classif
yId
)
{
delTagData
(
tagCategor
yId
)
{
const
that
=
this
;
const
that
=
this
;
const
para
=
{
classif
yId
};
const
para
=
{
tagCategor
yId
};
delClassify
(
para
)
delClassify
(
para
)
.
then
(
res
=>
{
.
then
(
res
=>
{
that
.
$emit
(
'refreshClassify'
);
that
.
$emit
(
'refreshClassify'
);
...
...
src/components/common/common-alert-tip.vue
View file @
7fbe6c02
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
* @Author : 无尘
* @Author : 无尘
* @Date : 2020-02-13 14:02:40
* @Date : 2020-02-13 14:02:40
* @LastEditors: 无尘
* @LastEditors: 无尘
* @LastEditTime: 2020-0
8-27 19:51:06
* @LastEditTime: 2020-0
9-03 13:57:21
* @FilePath : j:\公司\haoban-4\src\components\common\common-alert-tip.vue
* @FilePath : j:\公司\haoban-4\src\components\common\common-alert-tip.vue
-->
-->
<!--
<!--
...
@@ -20,6 +20,9 @@
...
@@ -20,6 +20,9 @@
<span
class=
"el-alert__title color-606266 font-13"
>
<span
class=
"el-alert__title color-606266 font-13"
>
{{
tipContent
}}
{{
tipContent
}}
</span>
</span>
<div
v-if=
"tipTwoContent"
class=
"el-alert__title color-606266 font-13"
>
{{
tipTwoContent
}}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -38,6 +41,10 @@ export default {
...
@@ -38,6 +41,10 @@ export default {
tipContent
:
{
tipContent
:
{
type
:
String
,
type
:
String
,
default
:
''
default
:
''
},
tipTwoContent
:
{
type
:
String
,
default
:
''
}
}
},
},
data
()
{
data
()
{
...
...
src/views/apps/customer-app/clerk-tag.vue
View file @
7fbe6c02
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
* @Author: 无尘
* @Author: 无尘
* @Date: 2020-08-28 16:51:22
* @Date: 2020-08-28 16:51:22
* @LastEditors: 无尘
* @LastEditors: 无尘
* @LastEditTime: 2020-09-0
2 09:23:02
* @LastEditTime: 2020-09-0
3 15:20:25
-->
-->
<
template
>
<
template
>
...
@@ -12,9 +12,9 @@
...
@@ -12,9 +12,9 @@
<div
class=
"clerk-tag-body flex"
>
<div
class=
"clerk-tag-body flex"
>
<div
class=
"clerk-tag-left border-box"
>
<div
class=
"clerk-tag-left border-box"
>
<div
class=
"clerk-tag-add"
>
<div
class=
"clerk-tag-add"
>
<el-button
icon=
"el-icon-plus"
>
新建分类
</el-button>
<el-button
icon=
"el-icon-plus"
@
click=
"toAddCate"
>
新建分类
</el-button>
</div>
</div>
<tag-classify-list
:brand-id=
"brandId"
@
refreshClassify=
"refreshClassify"
@
changeClass=
"changeClass"
></tag-classify-list>
</div>
</div>
<div
class=
"clerk-tag-right p-20 border-box"
>
<div
class=
"clerk-tag-right p-20 border-box"
>
<div
class=
"clerk-tag-search"
>
<div
class=
"clerk-tag-search"
>
...
@@ -26,17 +26,20 @@
...
@@ -26,17 +26,20 @@
<div>
<div>
<el-table
<el-table
:data=
"tagsData"
:data=
"tagsData"
row-key=
"memberTagId"
v-loading=
"loading"
ref=
"tagsData"
style=
"width: 100%"
>
style=
"width: 100%"
>
<el-table-column
prop=
""
label=
""
width=
"
100
"
class-name=
"move-row-cell"
>
<el-table-column
prop=
""
label=
""
width=
"
56
"
class-name=
"move-row-cell"
>
<template>
<template>
<span
class=
"font-22 iconfont icontuozhuaiopen color-c
4c6cf
"
style=
"cursor: move;"
></span>
<span
class=
"font-22 iconfont icontuozhuaiopen color-c
0c4cc
"
style=
"cursor: move;"
></span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
""
prop=
""
label=
"标签名称"
label=
"标签名称"
show-overflow-tooltip
>
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
n
ame
||
'--'
}}
</
template
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
memberTagN
ame
||
'--'
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
""
prop=
""
...
@@ -51,24 +54,38 @@
...
@@ -51,24 +54,38 @@
</div>
</div>
</div>
</div>
</div>
</div>
<tag-classify-dialog
v-if=
"showTagCate"
@
closeClassify=
"closeClassify"
></tag-classify-dialog>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
tagClassifyList
from
'@/components/app/my-customer/tag-classify-list.vue'
;
import
fetch
from
'@/api/my-customer-app.js'
;
import
fetch
from
'@/api/my-customer-app.js'
;
const
{
getTagClassify
,
getClerkTag
,
delClerkTag
}
=
fetch
;
const
{
getTagClassify
,
getClerkTag
,
sortClerkTag
,
delClerkTag
}
=
fetch
;
import
{
_debounce
}
from
'@/common/js/public.js'
;
import
{
_debounce
}
from
'@/common/js/public.js'
;
import
showMsg
from
'@/common/js/showmsg.js'
;
import
showMsg
from
'@/common/js/showmsg.js'
;
import
Sortable
from
'sortablejs'
;
export
default
{
export
default
{
name
:
'ClerkTag'
,
name
:
'ClerkTag'
,
components
:
{},
components
:
{
tagClassifyList
},
props
:
{
brandId
:
{
type
:
String
,
default
:
''
}
},
data
()
{
data
()
{
return
{
return
{
currentClassify
:
''
,
currentClassify
:
''
,
tagsClassifyData
:
[],
tagsClassifyData
:
[],
tagsData
:
[],
tagsData
:
[],
showTagDialog
:
false
,
showTagDialog
:
false
,
showTagVisiable
:
false
showTagVisiable
:
false
,
loading
:
false
,
showTagCate
:
false
};
};
},
},
// 生命周期 - 挂载完成(访问DOM元素)
// 生命周期 - 挂载完成(访问DOM元素)
...
@@ -79,6 +96,79 @@ export default {
...
@@ -79,6 +96,79 @@ export default {
// methods
// methods
methods
:
{
methods
:
{
/**
/**
* @description: 选择分类
* @param {Object} row
* @author: 无尘
*/
changeClass
(
row
)
{
const
that
=
this
;
that
.
currentClassify
=
row
.
tagCategoryId
;
that
.
getTableList
();
},
/**
* @description: 新增分类
* @author: 无尘
*/
toAddCate
()
{
const
that
=
this
;
that
.
showTagCate
=
true
;
},
closeClassify
(
res
)
{
const
that
=
this
;
that
.
showTagCate
=
false
;
if
(
res
==
'close'
)
{
return
false
;
}
that
.
getClassifyList
();
},
/**
* @description: 拖拽排序
* @param {String} data
* @author: 无尘
*/
rowDrop
(
data
)
{
const
tbody
=
this
.
$refs
[
data
].
$el
.
querySelectorAll
(
'.el-table__body-wrapper > table > tbody'
)[
0
];
const
that
=
this
;
Sortable
.
create
(
tbody
,
{
onEnd
({
newIndex
,
oldIndex
})
{
if
(
newIndex
==
oldIndex
)
{
return
false
;
}
let
arr
=
JSON
.
parse
(
JSON
.
stringify
(
that
[
data
]));
const
currRow
=
arr
.
splice
(
oldIndex
,
1
)[
0
];
arr
.
splice
(
newIndex
,
0
,
currRow
);
that
.
setSort
(
arr
);
}
});
},
setSort
()
{
const
that
=
this
;
const
para
=
{
enterpriseId
:
that
.
brandId
};
sortClerkTag
(
para
)
.
then
(
res
=>
{
that
.
getGroupList
();
if
(
res
.
code
==
'0000'
)
{
showMsg
.
showmsg
(
'操作成功'
,
'success'
);
}
else
{
showMsg
.
showmsg
(
res
.
message
||
'接口异常'
,
'warning'
);
}
})
.
catch
(
function
(
error
)
{
});
},
/**
* @description: 刷新分类列表
* @param {String} res
* @author: 无尘
*/
refreshClassify
(
res
)
{
const
that
=
this
;
that
.
getClassifyList
();
},
/**
* 编辑标签
* 编辑标签
* @param {Number} index
* @param {Number} index
* @param {Object} row
* @param {Object} row
...
@@ -157,13 +247,18 @@ export default {
...
@@ -157,13 +247,18 @@ export default {
getTableList
()
{
getTableList
()
{
const
that
=
this
;
const
that
=
this
;
that
.
loading
=
true
;
that
.
loading
=
true
;
const
para
=
{};
const
para
=
{
enterpriseId
:
that
.
brandId
,
keyword
:
that
.
searchVal
,
tagCategoryId
:
that
.
currentClassify
};
getClerkTag
(
para
)
getClerkTag
(
para
)
.
then
(
res
=>
{
.
then
(
res
=>
{
that
.
loading
=
false
;
that
.
tagsData
=
res
.
result
||
[];
that
.
tagsData
=
res
.
result
||
[];
})
})
.
catch
(
function
(
error
)
{
.
catch
(
function
(
error
)
{
that
.
loading
=
false
;
});
});
},
},
/**
/**
...
@@ -171,13 +266,12 @@ export default {
...
@@ -171,13 +266,12 @@ export default {
*/
*/
getClassifyList
()
{
getClassifyList
()
{
const
that
=
this
;
const
that
=
this
;
that
.
loading
=
true
;
const
para
=
{};
const
para
=
{};
getTagClassify
(
para
)
getTagClassify
(
para
)
.
then
(
res
=>
{
.
then
(
res
=>
{
that
.
tagsClassifyData
=
res
.
result
||
[];
that
.
tagsClassifyData
=
res
.
result
||
[];
if
(
res
.
result
&&
res
.
result
.
length
)
{
if
(
res
.
result
&&
res
.
result
.
length
)
{
that
.
currentClassify
=
res
.
result
[
0
].
classifyId
;
that
.
currentClassify
=
that
.
currentClassify
?
that
.
currentClassify
:
res
.
result
[
0
].
classifyId
;
that
.
getTableList
();
that
.
getTableList
();
}
}
})
})
...
...
src/views/apps/customer-app/crowd-scene.vue
View file @
7fbe6c02
...
@@ -4,28 +4,30 @@
...
@@ -4,28 +4,30 @@
* @Author: 无尘
* @Author: 无尘
* @Date: 2020-08-27 10:16:37
* @Date: 2020-08-27 10:16:37
* @LastEditors: 无尘
* @LastEditors: 无尘
* @LastEditTime: 2020-09-0
2 18:02:15
* @LastEditTime: 2020-09-0
3 14:43:34
-->
-->
<
template
>
<
template
>
<div
class=
"common-app-right"
>
<div
class=
"common-app-right"
>
<div
class=
"crowd-scene-tip"
>
<div
class=
"crowd-scene-tip
m-b-20
"
>
<common-alert-tip
:width=
"'100%'"
:tip-content=
"tipContent"
></common-alert-tip>
<common-alert-tip
:width=
"'100%'"
:tip-content=
"tipContent"
:tip-two-content=
"tipTwoContent"
></common-alert-tip>
</div>
</div>
<div
class=
"crowd-scene-search flex flex-space-between"
>
<div
class=
"crowd-scene-search flex flex-space-between
m-b-20
"
>
<div>
<div>
<el-input
placeholder=
"请输入人群名称"
maxlength=
"50"
v-model=
"searchVal"
class=
"w-264"
style=
"width: 217px;"
prefix-icon=
"el-icon-search"
@
keyup
.
native=
"value => toInput(value)"
clearable
@
clear=
"clearInput"
></el-input><el-select
class=
"w-168 m-l-10"
v-model=
"classifyName
"
placeholder=
"所有分类"
@
change=
"changeCondition"
>
<el-input
placeholder=
"请输入人群名称"
maxlength=
"50"
v-model=
"searchVal"
style=
"width: 408px;"
prefix-icon=
"el-icon-search"
@
keyup
.
native=
"value => toInput(value)"
clearable
@
clear=
"clearInput"
></el-input><el-select
class=
"w-162 m-l-10"
v-model=
"classifyId
"
placeholder=
"所有分类"
@
change=
"changeCondition"
>
<el-option
label=
"所有分类"
value=
""
></el-option>
<el-option
label=
"所有分类"
value=
""
></el-option>
<el-option
v-for=
"item in classifyList"
:key=
"item
"
:label=
"item"
:value=
"item
"
>
</el-option>
<el-option
v-for=
"item in classifyList"
:key=
"item
.categoryId"
:label=
"item.categoryName"
:value=
"item.categoryId
"
>
</el-option>
</el-select>
</el-select>
</div>
</div>
<div><el-button
type=
"primary"
@
click=
"toSync"
>
同步场景人群
</el-button></div>
<div><el-button
type=
"primary"
@
click=
"toSync"
>
同步场景人群
</el-button></div>
</div>
</div>
<div
class=
"crowd-scene-table
flex
"
>
<div
class=
"crowd-scene-table"
>
<div
class=
"crowd-scene-table_left"
>
<div
class=
"crowd-scene-table_left"
>
<el-table
<el-table
:data=
"memberCrowdData"
:data=
"memberCrowdData"
v-loading=
"loading"
ref=
"memberCrowdData"
ref=
"memberCrowdData"
row-key=
"memberGroupId"
style=
"width: 100%"
>
style=
"width: 100%"
>
<el-table-column
prop=
""
label=
""
width=
"56"
class-name=
"move-row-cell"
>
<el-table-column
prop=
""
label=
""
width=
"56"
class-name=
"move-row-cell"
>
<template>
<template>
...
@@ -36,36 +38,20 @@
...
@@ -36,36 +38,20 @@
prop=
""
prop=
""
label=
"人群名称"
label=
"人群名称"
show-overflow-tooltip
>
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
n
ame
||
'--'
}}
</
template
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
memberGroupN
ame
||
'--'
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
""
prop=
""
label=
"所属分类"
label=
"所属分类"
show-overflow-tooltip
>
show-overflow-tooltip
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
c
lassif
yName
||
'--'
}}
</
template
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
c
ategor
yName
||
'--'
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
""
prop=
""
label=
"到期时间"
>
label=
"到期时间"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<div
class=
"line-18"
>
{{
scope
.
row
.
effectiveDate
|
timeStampToYmd
}}
{{
scope
.
row
.
effectiveDate
?
scope
.
row
.
effectiveDate
:
'--'
}}
</div>
<div
class=
"line-18"
>
{{
scope
.
row
.
overTime
|
timeStampToYmd
}}
{{
scope
.
row
.
overTime
?
''
:
'--'
}}
</div>
<div
class=
"line-18"
>
{{
scope
.
row
.
effectiveDate
|
timeStampToHms
}}
{{
scope
.
row
.
effectiveDate
?
scope
.
row
.
effectiveDate
:
'--'
}}
</div>
<div
class=
"line-18"
>
{{
scope
.
row
.
overTime
|
timeStampToHms
}}
{{
scope
.
row
.
overTime
?
''
:
'--'
}}
</div>
</
template
>
</el-table-column>
<el-table-column>
<
template
slot=
"header"
>
<el-tooltip
class=
"item"
effect=
"dark"
placement=
"right"
>
<div
slot=
"content"
>
排序越靠上的权重越高,当一家门店拥有多个会员卡时,优先展示排序最靠上的会员卡
</div>
<span
class=
"common-bottom-border"
>
排序
</span>
</el-tooltip>
</
template
>
<
template
slot-scope=
"scope"
>
<i
:class=
"['icon-color', 'el-icon-upload2', scope.$index == 0 ? 'disable' : '']"
@
click=
"toTop(scope.$index, scope.row, memberCrowdData)"
></i>
<i
:class=
"['icon-color', 'el-icon-back', 'icon-to-pre', scope.$index == 0 ? 'disable' : '']"
@
click=
"toPre(scope.$index, scope.row, memberCrowdData)"
></i>
<i
:class=
"['icon-color', 'el-icon-back', 'icon-to-next', scope.$index == memberCrowdData.length - 1 ? 'disable' : '']"
@
click=
"toNext(scope.$index, scope.row, memberCrowdData)"
></i>
<i
:class=
"['icon-color', 'el-icon-download', scope.$index == memberCrowdData.length - 1 ? 'disable' : '']"
@
click=
"toBottom(scope.$index, scope.row, memberCrowdData)"
></i>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
...
@@ -77,11 +63,15 @@
...
@@ -77,11 +63,15 @@
</el-table>
</el-table>
</div>
</div>
</div>
</div>
<sync-crowd-dialog
v-if=
"showSync"
:brand-id=
"brandId"
@
refreshData=
"refreshData"
></sync-crowd-dialog>
<edit-visiable
v-if=
"showSelectStore"
:select-mode=
"selectMode"
:range-data=
"rangeData"
:brand-id=
"brandId"
@
refreshData=
"refreshData"
></edit-visiable>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
commonAlertTip
from
'@/components/common/common-alert-tip.vue'
;
import
commonAlertTip
from
'@/components/common/common-alert-tip.vue'
;
import
syncCrowdDialog
from
'@/components/app/my-customer/sync-crowd-dialog.vue'
;
import
editVisiable
from
'@/components/app/my-customer/edit-visiable.vue'
;
import
fetch
from
'@/api/my-customer-app.js'
;
import
fetch
from
'@/api/my-customer-app.js'
;
const
{
getGroupData
,
getClassifyData
,
postSortGroup
}
=
fetch
;
const
{
getGroupData
,
getClassifyData
,
postSortGroup
}
=
fetch
;
import
{
_debounce
}
from
'@/common/js/public.js'
;
import
{
_debounce
}
from
'@/common/js/public.js'
;
...
@@ -89,7 +79,11 @@ import showMsg from '@/common/js/showmsg.js';
...
@@ -89,7 +79,11 @@ import showMsg from '@/common/js/showmsg.js';
import
Sortable
from
'sortablejs'
;
import
Sortable
from
'sortablejs'
;
export
default
{
export
default
{
name
:
'CrowdScenePage'
,
name
:
'CrowdScenePage'
,
components
:
{
commonAlertTip
},
components
:
{
commonAlertTip
,
syncCrowdDialog
,
editVisiable
},
props
:
{
props
:
{
brandId
:
{
brandId
:
{
type
:
String
,
type
:
String
,
...
@@ -98,13 +92,17 @@ export default {
...
@@ -98,13 +92,17 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
tipContent
:
'GIC设置场景人群后,好办顾客人群列表最多同步20个人群,次日刷新,每日刷新一次;<br/> GIC中设置的场景人群到期后,好办移动端将不再展示该条人群;'
,
tipContent
:
'GIC设置场景人群后,好办顾客人群列表最多同步20个人群,次日刷新,每日刷新一次;'
,
tipTwoContent
:
'GIC中设置的场景人群到期后,好办移动端将不再展示该条人群;'
,
searchVal
:
''
,
searchVal
:
''
,
classify
Name
:
''
,
classify
Id
:
''
,
classifyList
:
[],
classifyList
:
[],
memberCrowdData
:
[],
// 人群
memberCrowdData
:
[],
// 人群
loading
:
false
,
showSync
:
false
,
showSync
:
false
,
showSelectStore
:
false
showSelectStore
:
false
,
selectMode
:
''
,
rangeData
:
[]
};
};
},
},
// 生命周期 - 挂载完成(访问DOM元素)
// 生命周期 - 挂载完成(访问DOM元素)
...
@@ -118,14 +116,31 @@ export default {
...
@@ -118,14 +116,31 @@ export default {
// methods
// methods
methods
:
{
methods
:
{
/**
/**
* 同步
* @description: 刷新数据
* @param {String} res
* @returns {Boolean}
* @author: 无尘
*/
refreshData
(
res
)
{
const
that
=
this
;
that
.
showSync
=
false
;
that
.
showSelectStore
=
false
;
that
.
selectMode
=
''
;
that
.
rangeData
=
[];
if
(
res
==
'close'
)
{
return
false
;
}
that
.
getGroupList
();
},
/**
* @description: 同步
*/
*/
toSync
()
{
toSync
()
{
const
that
=
this
;
const
that
=
this
;
that
.
showSync
=
true
;
that
.
showSync
=
true
;
},
},
/**
/**
* 编辑可见范围
*
@description:
编辑可见范围
* @param {Number} index
* @param {Number} index
* @param {Object} row
* @param {Object} row
*/
*/
...
@@ -135,27 +150,24 @@ export default {
...
@@ -135,27 +150,24 @@ export default {
},
},
/**
/**
* 搜索输入
*
@description:
搜索输入
*/
*/
toInput
:
_debounce
(
function
()
{
toInput
:
_debounce
(
function
()
{
const
that
=
this
;
const
that
=
this
;
that
.
currentPage
=
1
;
that
.
getGroupList
();
that
.
getGroupList
();
},
500
),
},
500
),
/**
/**
* 搜索清除
*
@description:
搜索清除
*/
*/
clearInput
()
{
clearInput
()
{
const
that
=
this
;
const
that
=
this
;
that
.
currentPage
=
1
;
that
.
getGroupList
();
that
.
getGroupList
();
},
},
/**
/**
* 条件
*
@description:
条件
*/
*/
changeCondition
()
{
changeCondition
()
{
const
that
=
this
;
const
that
=
this
;
that
.
currentPage
=
1
;
that
.
getGroupList
();
that
.
getGroupList
();
},
},
/**
/**
...
@@ -197,7 +209,7 @@ export default {
...
@@ -197,7 +209,7 @@ export default {
});
});
},
},
/**
/**
* 获取分类
*
@description:
获取分类
*/
*/
getGroupClassify
()
{
getGroupClassify
()
{
const
that
=
this
;
const
that
=
this
;
...
@@ -218,15 +230,19 @@ export default {
...
@@ -218,15 +230,19 @@ export default {
*/
*/
getGroupList
()
{
getGroupList
()
{
const
that
=
this
;
const
that
=
this
;
that
.
loading
=
true
;
const
para
=
{
const
para
=
{
enterpriseId
:
that
.
brandId
enterpriseId
:
that
.
brandId
,
keyword
:
that
.
searchVal
,
categoryId
:
that
.
classifyId
};
};
getGroupData
(
para
)
getGroupData
(
para
)
.
then
(
res
=>
{
.
then
(
res
=>
{
that
.
loading
=
false
;
that
.
memberCrowdData
=
res
.
result
||
[];
that
.
memberCrowdData
=
res
.
result
||
[];
})
})
.
catch
(
function
(
error
)
{
.
catch
(
function
(
error
)
{
that
.
loading
=
false
;
});
});
}
}
},
},
...
@@ -234,8 +250,11 @@ export default {
...
@@ -234,8 +250,11 @@ export default {
brandId
(
val
)
{
brandId
(
val
)
{
const
that
=
this
;
const
that
=
this
;
if
(
val
)
{
if
(
val
)
{
that
.
getMemberCrad
();
that
.
searchVal
=
''
;
that
.
getServiceNum
();
that
.
classifyId
=
''
;
that
.
classifyList
=
[];
that
.
getGroupClassify
();
that
.
getGroupList
();
}
}
}
}
}
}
...
@@ -247,14 +266,10 @@ export default {
...
@@ -247,14 +266,10 @@ export default {
padding-bottom
:
2px
;
padding-bottom
:
2px
;
border-bottom
:
1px
dashed
#2f54eb
;
border-bottom
:
1px
dashed
#2f54eb
;
}
}
.dcrowd-scene-table
{
.w-162
{
i.icon-color
{
width
:
162px
;
color
:
#606266
;
}
}
.crowd-scene-table
{
i
.disable
{
color
:
#909399
;
cursor
:
not-allowed
;
}
.line-18
{
.line-18
{
line-height
:
18px
;
line-height
:
18px
;
}
}
...
...
src/views/apps/customer-app/customer-data-set.vue
View file @
7fbe6c02
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
* @Author: 无尘
* @Author: 无尘
* @Date: 2020-08-27 10:16:37
* @Date: 2020-08-27 10:16:37
* @LastEditors: 无尘
* @LastEditors: 无尘
* @LastEditTime: 2020-09-0
1 17:57:48
* @LastEditTime: 2020-09-0
3 10:07:59
-->
-->
<
template
>
<
template
>
<div
class=
"common-app-right"
>
<div
class=
"common-app-right"
>
...
@@ -18,9 +18,9 @@
...
@@ -18,9 +18,9 @@
</div>
</div>
<div
class=
"m-b-20"
>
<div
class=
"m-b-20"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"勾选后将会在“顾客详情页”进行显示"
placement=
"top-start"
>
<span
class=
"font-14 color-606266 m-r-20 common-bottom-border"
>
导购联系顾客方式
</span></el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"勾选后将会在“顾客详情页”进行显示"
placement=
"top-start"
>
<span
class=
"font-14 color-606266 m-r-20 common-bottom-border"
>
导购联系顾客方式
</span></el-tooltip>
<el-checkbox
v-model=
"
myCustomData.allowGuideMobile"
>
电话
</el-checkbox>
<el-checkbox
v-model=
"
customerShowData.allowGuideOnlineChat"
>
添加会员/发消息
</el-checkbox>
<el-checkbox
v-model=
"
myCustomData.allowGuideMessage"
>
短信
</el-checkbox>
<el-checkbox
v-model=
"
customerShowData.allowGuideMobile"
>
电话
</el-checkbox>
<el-checkbox
v-model=
"
myCustomData.allowGuideOnlineChat"
>
添加会员/发消息
</el-checkbox>
<el-checkbox
v-model=
"
customerShowData.allowGuideMessage"
>
短信
</el-checkbox>
</div>
</div>
<div
class=
"m-t-46"
>
<div
class=
"m-t-46"
>
<el-button
type=
"primary"
:loading=
"loading"
@
click=
"submit()"
>
保存
</el-button>
<el-button
type=
"primary"
:loading=
"loading"
@
click=
"submit()"
>
保存
</el-button>
...
...
src/views/business/audit-log.vue
View file @
7fbe6c02
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
* @Author: 无尘
* @Author: 无尘
* @Date: 2019-03-20 14:36:37
* @Date: 2019-03-20 14:36:37
* @LastEditors: 无尘
* @LastEditors: 无尘
* @LastEditTime: 2020-0
8-31 14:35
:56
* @LastEditTime: 2020-0
9-03 15:29
:56
-->
-->
<
template
>
<
template
>
<div
class=
"my-customer-wrap common-set-wrap"
>
<div
class=
"my-customer-wrap common-set-wrap"
>
...
@@ -24,7 +24,7 @@
...
@@ -24,7 +24,7 @@
<span
class=
"font-14 color-606266 merchant-name-span"
>
{{
enterpriseObj
.
enterpriseName
||
'--'
}}
</span><el-tag
class=
"m-l-10"
size=
"mini"
type=
"danger"
>
{{
enterpriseObj
.
versionName
||
'4.0'
}}
</el-tag>
<span
class=
"font-14 color-606266 merchant-name-span"
>
{{
enterpriseObj
.
enterpriseName
||
'--'
}}
</span><el-tag
class=
"m-l-10"
size=
"mini"
type=
"danger"
>
{{
enterpriseObj
.
versionName
||
'4.0'
}}
</el-tag>
</div>
</div>
<div
class=
"auth-merchant-name flex"
>
<div
class=
"auth-merchant-name flex"
>
<span
class=
"font-14 color-606266 merchant-name-span"
>
{{
enterpriseObj
.
brand
Name
||
'--'
}}
</span>
<span
class=
"font-14 color-606266 merchant-name-span"
>
{{
enterpriseObj
.
company
Name
||
'--'
}}
</span>
</div>
</div>
</div>
</div>
</div>
</div>
...
...
src/views/business/auth-merchant.vue
View file @
7fbe6c02
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
* @Author: 无尘
* @Author: 无尘
* @Date: 2019-03-20 14:36:37
* @Date: 2019-03-20 14:36:37
* @LastEditors: 无尘
* @LastEditors: 无尘
* @LastEditTime: 2020-0
8-31 14:29:06
* @LastEditTime: 2020-0
9-03 15:29:28
-->
-->
<
template
>
<
template
>
<div
class=
"my-customer-wrap common-set-wrap"
>
<div
class=
"my-customer-wrap common-set-wrap"
>
...
@@ -38,7 +38,7 @@
...
@@ -38,7 +38,7 @@
<span
class=
"gic-name"
>
{{
scope
.
row
.
enterpriseName
||
'--'
}}
</span><span
class=
"gic-version"
>
{{
scope
.
row
.
version
||
'--'
}}
</span>
<span
class=
"gic-name"
>
{{
scope
.
row
.
enterpriseName
||
'--'
}}
</span><span
class=
"gic-version"
>
{{
scope
.
row
.
version
||
'--'
}}
</span>
</div>
</div>
<div
class=
"cell-info-name flex font-14 color-303133"
>
<div
class=
"cell-info-name flex font-14 color-303133"
>
<span
class=
"gic-name"
>
{{
scope
.
row
.
brand
Name
||
'--'
}}
</span>
<span
class=
"gic-name"
>
{{
scope
.
row
.
company
Name
||
'--'
}}
</span>
</div>
</div>
</div>
</div>
</div>
</div>
...
...
src/views/business/new-auth-merchant.vue
View file @
7fbe6c02
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
* @Author: 无尘
* @Author: 无尘
* @Date: 2019-03-20 14:36:37
* @Date: 2019-03-20 14:36:37
* @LastEditors: 无尘
* @LastEditors: 无尘
* @LastEditTime: 2020-0
8-31 16:36:53
* @LastEditTime: 2020-0
9-03 15:30:54
-->
-->
<
template
>
<
template
>
<div
class=
"my-customer-wrap common-set-wrap"
>
<div
class=
"my-customer-wrap common-set-wrap"
>
...
@@ -30,7 +30,7 @@
...
@@ -30,7 +30,7 @@
<div
class=
"flex flex-space-between"
>
<div
class=
"flex flex-space-between"
>
<div
style=
"line-height: 26px;"
>
<div
style=
"line-height: 26px;"
>
<span
class=
"block text-ellipsis"
>
{{
item
.
enterpriseName
||
'--'
}}
</span>
<span
class=
"block text-ellipsis"
>
{{
item
.
enterpriseName
||
'--'
}}
</span>
<div
class=
"text-ellipsis font-12 color-909399"
>
{{
item
.
brand
Name
||
'--'
}}
</div>
<div
class=
"text-ellipsis font-12 color-909399"
>
{{
item
.
company
Name
||
'--'
}}
</div>
</div>
</div>
<span
v-if=
"item.enterpriseId == authForm.enterpriseId"
class=
"font-12 color-2f54eb el-icon-check flex-align-center"
style=
"display:flex;"
></span>
<span
v-if=
"item.enterpriseId == authForm.enterpriseId"
class=
"font-12 color-2f54eb el-icon-check flex-align-center"
style=
"display:flex;"
></span>
</div>
</div>
...
...
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