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
bd209dc6
Commit
bd209dc6
authored
May 24, 2022
by
caoyanzhi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update: 客户展示设置
parent
1e876f6b
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
228 additions
and
11 deletions
+228
-11
button-code.js
menu-data/button-code.js
+10
-4
menu-data.js
menu-data/menu-data.js
+7
-7
index.js
src/router/index.js
+10
-0
add-member-show-rules.vue
src/views/apps/customerApp/add-member-show-rules.vue
+201
-0
memberShowSet.vue
src/views/apps/customerApp/memberShowSet.vue
+0
-0
No files found.
menu-data/button-code.js
View file @
bd209dc6
...
...
@@ -16,10 +16,16 @@ module.exports = {
// 2.待开启同步标签 (按钮,控制“待开启同步标签”所有操作权限)
willSyncTag
:
[
'待开启同步标签'
,
1
,
2
]
},
// TODO 客户展示设置
// TODO 1.特殊策略配置 (按钮,控制“新增特殊策略配置”弹窗内所有操作权限)
// TODO 2.编辑 (按钮,控制“修改特殊策略配置”弹窗内所有操作权限)
// TODO 3.删除 (按钮)
// 客户展示设置
memberShowSet
:
{
// 按钮名称、是否受权限控制0否1是、是否增删改0跳转1是2其他、按钮跳转路径
// 1.特殊策略配置 (按钮,控制“新增特殊策略配置”弹窗内所有操作权限)
addShowRules
:
[
'新增特殊策略'
,
1
,
0
,
'addMemberShowRules'
],
// 2.编辑 (按钮,控制“修改特殊策略配置”弹窗内所有操作权限)
editShowRules
:
[
'编辑'
,
1
,
0
,
'editMemberShowRules'
],
// 3.删除 (按钮)
delShowRules
:
[
'删除'
,
1
,
1
]
},
memberGroupSet
:
{
// 1.会员分组失效后不展示(按钮)
groupExpire
:
[
'分组失效后不展示'
,
1
,
2
],
...
...
menu-data/menu-data.js
View file @
bd209dc6
...
...
@@ -20,13 +20,13 @@ module.exports = [
{
menu
:
[
'客户基础设置'
,
''
,
1
,
'iconkehushezhi'
],
children
:
[
//
{
// menu: ['客户展示设置', '', 1],// TODO 本次新增页面
//
children: [
// { menu: ['新增特殊策略', '', 1] },// TODO 本次新增页面
// { menu: ['编辑特殊策略', '', 1] },// TODO 本次新增页面
//
]
//
},
{
menu
:
[
'客户展示设置'
,
'memberShowSet'
,
1
],
children
:
[
{
menu
:
[
'新增特殊策略'
,
'addMemberShowRules'
,
1
]
},
{
menu
:
[
'编辑特殊策略'
,
'editMemberShowRules'
,
1
]
},
]
},
{
menu
:
[
'客户分组设置'
,
'memberGroupSet'
,
1
],
children
:
[
...
...
src/router/index.js
View file @
bd209dc6
...
...
@@ -217,6 +217,16 @@ export const constantRouterMap = [
component
:
_import
(
'apps/customerApp'
,
'memberShowSet'
)
},
{
path
:
'/addMemberShowRules'
,
name
:
'新增特殊策略'
,
component
:
_import
(
'apps/customerApp'
,
'add-member-show-rules'
)
},
{
path
:
'/editMemberShowRules'
,
name
:
'编辑特殊策略'
,
component
:
_import
(
'apps/customerApp'
,
'add-member-show-rules'
)
},
{
path
:
'/memberGroupSet'
,
name
:
'客户分组设置'
,
component
:
_import
(
'apps/customerApp'
,
'memberGroupSet'
)
...
...
src/views/apps/customerApp/add-member-show-rules.vue
0 → 100644
View file @
bd209dc6
<
template
>
<div
class=
"add-rules"
>
<el-form
:model=
"myCustomData"
:rules=
"rules"
ref=
"myCustomData"
label-width=
"100px"
>
<el-form-item
label=
"策略名称"
prop=
"strategyName"
>
<el-input
v-model=
"myCustomData.strategyName"
style=
"width: 460px"
placeholder=
"请输入策略名称"
maxlength=
"10"
show-word-limit
></el-input>
</el-form-item>
<el-form-item
label=
"门店类型"
prop=
"storeType"
>
<el-checkbox-group
v-model=
"myCustomData.storeType"
>
<el-checkbox
v-for=
"el in storeTypes"
:key=
"el.value"
:disabled=
"selectedTypes.includes(el.value)"
:label=
"el.value"
>
{{
el
.
label
}}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item
label=
"设置项"
prop=
"options"
>
<div
class=
"setting-item"
>
<el-checkbox
v-model=
"myCustomData.mainStoreFlag"
:true-label=
"1"
:false-label=
"0"
@
change=
"onOptionsChange"
>
展示服务门店客户
</el-checkbox>
<div
class=
"set-tip-text"
>
保存勾选项后,门店导购和店长可查看本门店作为服务门店名下客户
</div>
</div>
<div
class=
"setting-item"
>
<el-checkbox
v-model=
"myCustomData.minorStoreFlag"
:true-label=
"1"
:false-label=
"0"
@
change=
"onOptionsChange"
>
展示协管门店客户
</el-checkbox>
<div
class=
"set-tip-text"
>
保存勾选项后,门店导购和店长可查看本门店作为协管门店名下客户
</div>
</div>
<div
class=
"setting-item"
>
<el-checkbox
v-model=
"myCustomData.openCardStoreFlag"
:true-label=
"1"
:false-label=
"0"
@
change=
"onOptionsChange"
>
展示开卡门店客户
</el-checkbox>
<div
class=
"set-tip-text"
>
保存勾选项后,门店导购和店长可查看本门店作为开卡门店名下客户
</div>
</div>
<div
class=
"setting-item"
>
<el-checkbox
v-model=
"myCustomData.showFreezeFlag"
:true-label=
"1"
:false-label=
"0"
@
change=
"onOptionsChange"
>
展示冻结会员
</el-checkbox>
<div
class=
"set-tip-text"
>
保存勾选项后,门店导购和店长可查看本门店冻结会员
</div>
</div>
<div
class=
"setting-item"
>
<el-checkbox
v-model=
"myCustomData.isSeeAuthMember"
:true-label=
"1"
:false-label=
"0"
@
change=
"onOptionsChange"
>
展示已开卡会员
</el-checkbox>
<div
class=
"set-tip-text"
>
保存勾选项后,门店导购和店长可查看本门店微信会员(不含未开卡会员)及POS会员,不勾选将展示微信会员(即微信总量,含未开卡会员)及POS会员
</div>
</div>
<div
class=
"setting-item"
>
<el-checkbox
v-model=
"myCustomData.clerkSeeOtherFlag"
:true-label=
"1"
:false-label=
"0"
@
change=
"onOptionsChange"
>
允许导购查看其他导购客户
</el-checkbox>
<div
class=
"set-tip-text"
>
保存勾选项后,门店导购可查看本门店其他导购名下客户
</div>
</div>
</el-form-item>
</el-form>
<hb-form-bottom>
<el-button
@
click=
"$router.go(-1)"
>
取消
</el-button>
<el-button
type=
"primary"
:loading=
"loading"
@
click=
"onSave"
>
保 存
</el-button>
</hb-form-bottom>
</div>
</
template
>
<
script
>
import
errMsg
from
'@/common/js/error'
;
import
{
postRequest
,
getRequest
}
from
'@/api/api'
;
export
default
{
name
:
'AddMemberShowRules'
,
props
:
{
brandId
:
{
type
:
String
,
default
()
{
return
''
;
}
}
},
data
()
{
const
valiStoreType
=
(
rules
,
value
,
callback
)
=>
{
const
data
=
value
.
filter
(
el
=>
!
this
.
selectedTypes
.
includes
(
el
));
if
(
data
.
length
==
0
)
{
return
callback
(
new
Error
(
'请选择门店类型'
));
}
callback
();
};
return
{
// 门店类型 -1:全部;1:自营;2:联营;3:代理;4:代销;5:托管
storeTypes
:
[
{
label
:
'自营'
,
value
:
'1'
},
{
label
:
'联营'
,
value
:
'2'
},
{
label
:
'代理'
,
value
:
'3'
},
{
label
:
'代销'
,
value
:
'4'
},
{
label
:
'托管'
,
value
:
'5'
}
],
selectedTypes
:
[],
wxEnterpriseRelatedId
:
JSON
.
parse
(
sessionStorage
.
getItem
(
'userInfos'
)).
wxEnterpriseId
,
myCustomData
:
{
memberManageSettingId
:
''
,
// 会员设置id,更新时必传
strategyName
:
''
,
storeType
:
[],
//门店类型 -1:全部;1:自营;2:联营;3:代理;4:代销;5:托管
mainStoreFlag
:
0
,
// 服务门店显示,1显示0不现实
minorStoreFlag
:
0
,
// 协管门店显示,1显示0不显示
openCardStoreFlag
:
0
,
// 开卡门店显示,1显示0不显示
clerkSeeOtherFlag
:
0
,
// 导购查看其他导购,1显示0不显示
showFreezeFlag
:
0
,
isSeeAuthMember
:
0
,
options
:
''
},
rules
:
{
strategyName
:
{
required
:
true
,
message
:
'请输入策略名称'
,
trigger
:
'blur'
},
storeType
:
{
required
:
true
,
validator
:
valiStoreType
,
trigger
:
'blur'
},
options
:
{
required
:
true
,
message
:
'请选择设置项'
,
trigger
:
'blur'
}
},
loading
:
false
};
},
methods
:
{
onOptionsChange
()
{
const
{
mainStoreFlag
,
minorStoreFlag
,
openCardStoreFlag
,
clerkSeeOtherFlag
,
showFreezeFlag
,
isSeeAuthMember
}
=
this
.
myCustomData
;
const
flag
=
mainStoreFlag
==
1
||
minorStoreFlag
==
1
||
openCardStoreFlag
==
1
||
clerkSeeOtherFlag
==
1
||
showFreezeFlag
==
1
||
isSeeAuthMember
==
1
;
this
.
myCustomData
.
options
=
flag
?
1
:
''
;
},
getSettingList
()
{
getRequest
(
'/haoban-app-customer-web/customer/find-member-manage-setting-list'
,
{}).
then
(
res
=>
{
const
{
code
,
result
}
=
res
.
data
||
{};
if
(
code
!=
0
)
{
errMsg
.
errorMsg
(
res
.
data
);
return
;
}
if
(
Array
.
isArray
(
result
))
{
this
.
selectedTypes
=
result
.
reduce
((
types
,
el
)
=>
{
if
(
typeof
el
.
storeType
==
'string'
&&
el
.
memberManageSettingId
!=
this
.
myCustomData
.
memberManageSettingId
)
{
let
storeTypes
=
el
.
storeType
.
split
(
','
);
storeTypes
=
storeTypes
.
filter
(
el
=>
!
types
.
includes
(
el
));
types
=
types
.
concat
(
storeTypes
);
}
return
types
;
},
[]);
this
.
myCustomData
.
storeType
=
this
.
myCustomData
.
storeType
.
concat
(
this
.
selectedTypes
);
setTimeout
(()
=>
{
this
.
rules
.
storeType
.
trigger
=
'change'
;
},
50
);
}
});
},
onSave
()
{
this
.
loading
=
true
;
this
.
$refs
.
myCustomData
.
validate
(
vali
=>
{
if
(
!
vali
)
{
this
.
loading
=
false
;
return
;
}
const
{
memberManageSettingId
,
strategyName
,
storeType
,
mainStoreFlag
,
minorStoreFlag
,
openCardStoreFlag
,
clerkSeeOtherFlag
,
showFreezeFlag
,
isSeeAuthMember
}
=
this
.
myCustomData
;
const
params
=
{
memberManageSettingId
,
strategyName
,
mainStoreFlag
,
minorStoreFlag
,
openCardStoreFlag
,
clerkSeeOtherFlag
,
showFreezeFlag
,
isSeeAuthMember
};
params
.
storeType
=
storeType
.
filter
(
el
=>
!
this
.
selectedTypes
.
includes
(
el
)).
join
(
','
);
postRequest
(
'/haoban-app-customer-web/customer/save-member-show-setting'
,
params
)
.
then
(
res
=>
{
const
{
errorCode
}
=
res
.
data
||
{};
if
(
errorCode
!=
1
)
{
errMsg
.
errorMsg
(
res
.
data
);
return
;
}
this
.
$message
.
success
(
'保存成功'
);
this
.
$router
.
go
(
-
1
);
})
.
finally
(()
=>
(
this
.
loading
=
false
));
});
},
getShowSet
()
{
postRequest
(
'/haoban-app-customer-web/customer/find-member-manage-setting-detail'
,
{
memberManageSettingId
:
this
.
myCustomData
.
memberManageSettingId
}).
then
(
res
=>
{
const
{
code
,
result
}
=
res
.
data
||
{};
if
(
code
!=
0
)
{
errMsg
.
errorMsg
(
res
.
data
);
return
;
}
const
{
strategyName
,
storeType
,
mainStoreFlag
,
minorStoreFlag
,
openCardStoreFlag
,
clerkSeeOtherFlag
,
showFreezeFlag
,
isSeeAuthMember
}
=
result
||
{};
Object
.
assign
(
this
.
myCustomData
,
{
strategyName
,
storeType
:
typeof
storeType
==
'string'
?
storeType
.
split
(
','
)
:
[],
mainStoreFlag
,
minorStoreFlag
,
openCardStoreFlag
,
clerkSeeOtherFlag
,
showFreezeFlag
,
isSeeAuthMember
});
setTimeout
(()
=>
{
this
.
rules
.
options
.
trigger
=
'change'
;
},
50
);
});
}
},
created
()
{
this
.
getSettingList
();
if
(
this
.
$route
.
query
.
id
)
{
this
.
myCustomData
.
memberManageSettingId
=
this
.
$route
.
query
.
id
;
this
.
getShowSet
();
}
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
.add-rules
{
padding
:
20px
;
}
.setting-item
{
&
+
.setting-item
{
margin-top
:
16px
;
}
.set-tip-text
{
padding
:
0
0
0
25px
;
font-size
:
12px
;
font-weight
:
400
;
color
:
#909399
;
line-height
:
17px
;
}
}
</
style
>
src/views/apps/customerApp/memberShowSet.vue
View file @
bd209dc6
This diff is collapsed.
Click to expand it.
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