@ -1,6 +1,6 @@
< template >
< div class = "app-container" >
< el -descriptions size= "medium ">
< el -descriptions class= "margin-top" style = "font-size: 1.5em; ">
< el -descriptions -item label = "用户总数" > { { count . userNum } } < / e l - d e s c r i p t i o n s - i t e m >
< el -descriptions -item label = "已注册用户" > { { count . userRegisterNum } } < / e l - d e s c r i p t i o n s - i t e m >
< el -descriptions -item label = "已绑定仪器用户数" > { { count . userDeviceNum } } < / e l - d e s c r i p t i o n s - i t e m >
@ -21,22 +21,28 @@
@ keyup . enter . native = "handleQuery"
/ >
< / e l - f o r m - i t e m >
< el -form -item label = "手机号码" prop = "mobile" >
< el -input
v - model = "queryParams.mobile"
placeholder = "搜索多个请用英文逗号隔开"
clearable
@ keyup . enter . native = "handleQuery"
/ >
< / e l - f o r m - i t e m >
< el -form -item label = "用户编号" prop = "id" >
< el -input
v - model = "queryParams.id"
placeholder = "搜索多个请用英文逗号隔开"
clearable
@ keyup . enter . native = "handleQuery"
/ >
< / e l - f o r m - i t e m >
< el -popover placement = "top-start" width = "200" trigger = "click"
content = "手机号码和用户编号,满足其中之一内容即可" >
< el -form -item label = "手机号码" prop = "mobile" slot = "reference" >
< el -input
v - model = "queryParams.mobile"
placeholder = "搜索多个请用英文逗号隔开"
clearable
@ keyup . enter . native = "handleQuery"
/ >
< / e l - f o r m - i t e m >
< / e l - p o p o v e r >
< el -popover placement = "top-start" width = "200" trigger = "click"
content = "手机号码和用户编号,满足其中之一内容即可" >
< el -form -item label = "用户编号" prop = "id" slot = "reference" >
< el -input
v - model = "queryParams.id"
placeholder = "搜索多个请用英文逗号隔开"
clearable
@ keyup . enter . native = "handleQuery"
/ >
< / e l - f o r m - i t e m >
< / e l - p o p o v e r >
< el -form -item label = "生日" prop = "birthday" >
< el -date -picker
clearable
@ -89,62 +95,69 @@
align = "right" >
< / e l - d a t e - p i c k e r >
< / e l - f o r m - i t e m >
< el -form -item label = "仪器数量" prop = "credit" >
< el -input -number v-model ="queryParams.deviceNumStart" @keyup.enter.native="handleQuery" > < / el -input -number >
至
< el -input -number v-model ="queryParams.deviceNumEnd" @keyup.enter.native="handleQuery" > < / el -input -number >
< / e l - f o r m - i t e m >
< el -form -item label = "积分范围" prop = "credit" >
< el -input -number v-model ="queryParams.creditStart" @keyup.enter.native="handleQuery" > < / el -input -number >
至
< el -input -number v-model ="queryParams.creditEnd" @keyup.enter.native="handleQuery" > < / el -input -number >
< / e l - f o r m - i t e m >
<!-- < el -form -item label = "仪器绑定" prop = "devicesTags" > -- >
<!-- < el -select v-model ="queryParams.devicesTags" multiple placeholder="请选择" > - - >
<!-- < el -option - - >
<!-- v - for = "item in devicesTags" -- >
<!-- : key = "item.value" -- >
<!-- : label = "item.label" -- >
<!-- : value = "item.value" > -- >
<!-- < / e l - o p t i o n > - - >
<!-- < / e l - s e l e c t > - - >
<!-- < / e l - f o r m - i t e m > - - >
<!-- < el -form -item label = "购买渠道" prop = "purchaseChannels" > -- >
<!-- < el -select v-model ="queryParams.purchaseChannels" multiple placeholder="请选择" > - - >
<!-- < el -select v-model ="queryParams.devicesName" multiple placeholder="请选择" > - - >
<!-- < el -option - - >
<!-- v - for = "item in purchaseChannels "-- >
<!-- v - for = "item in devicesName" -- >
<!-- : key = "item.value" -- >
<!-- : label = "item.label" -- >
<!-- : value = "item.value" > -- >
<!-- < / e l - o p t i o n > - - >
<!-- < / e l - s e l e c t > - - >
<!-- < / e l - f o r m - i t e m > - - >
< el -form -item label = "企微标签" prop = "wecomTags" >
< el -select v-model ="queryParams.wecomTags" multiple placeholder="请选择" >
< el -option
v - for = "item in wecomTags"
: key = "item.value"
: label = "item.label"
: value = "item.value" >
< / e l - o p t i o n >
< / e l - s e l e c t >
< el -form -item label = "仪器数量" prop = "credit" >
< el -input -number v-model ="queryParams.deviceNumStart" @keyup.enter.native="handleQuery" > < / el -input -number >
至
< el -input -number v-model ="queryParams.deviceNumEnd" @keyup.enter.native="handleQuery" > < / el -input -number >
< / e l - f o r m - i t e m >
< el -form -item label = "小程序标签" prop = "miniProgramTags" >
< el -select v-model ="queryParams.miniProgramTags" multiple placeholder="请选择" >
< el -option
v - for = "item in miniProgramTags"
: key = "item.value"
: label = "item.label"
: value = "item.value" >
< / e l - o p t i o n >
< / e l - s e l e c t >
< el -form -item label = "积分范围" prop = "credit" >
< el -input -number v-model ="queryParams.creditStart" @keyup.enter.native="handleQuery" > < / el -input -number >
至
< el -input -number v-model ="queryParams.creditEnd" @keyup.enter.native="handleQuery" > < / el -input -number >
< / e l - f o r m - i t e m >
<!-- < el -form -item label = "购买渠道" prop = "purchaseChannels" > -- >
<!-- < el -select v-model ="queryParams.purchaseChannels" multiple placeholder="请选择" > - - >
<!-- < el -option - - >
<!-- v - for = "item in purchaseChannels" -- >
<!-- : key = "item.value" -- >
<!-- : label = "item.label" -- >
<!-- : value = "item.value" > -- >
<!-- < / e l - o p t i o n > - - >
<!-- < / e l - s e l e c t > - - >
<!-- < / e l - f o r m - i t e m > - - >
< el -popover placement = "top-start" width = "200" trigger = "click"
content = "企微标签和小程序标签,同时满足所选内容" >
< el -form -item label = "企微标签" prop = "wecomTags" slot = "reference" >
< el -select v-model ="queryParams.wecomTags" multiple placeholder="请选择" >
< el -option
v - for = "item in wecomTags"
: key = "item.value"
: label = "item.label"
: value = "item.value" >
< / e l - o p t i o n >
< / e l - s e l e c t >
< / e l - f o r m - i t e m >
< / e l - p o p o v e r >
< el -popover placement = "top-start" width = "200" trigger = "click"
content = "企微标签和小程序标签,同时满足所选内容" >
< el -form -item label = "小程序标签" prop = "miniProgramTags" slot = "reference" >
< el -select v-model ="queryParams.miniProgramTags" multiple placeholder="请选择" >
< el -option
v - for = "item in miniProgramTags"
: key = "item.value"
: label = "item.label"
: value = "item.value" >
< / e l - o p t i o n >
< / e l - s e l e c t >
< / e l - f o r m - i t e m >
< / e l - p o p o v e r >
< el -form -item >
< el -button type = "primary" icon = "el-icon-search" size = "mini" @click ="handleQuery" > 搜 索 < / el -button >
< el -button icon = "el-icon-refresh" size = "mini" @click ="resetQuery" > 重 置 < / el -button >
< / e l - f o r m - i t e m >
< / e l - f o r m >
<!-- 批量操作下拉选项 -- >
< el -row :gutter ="10" class = "mb8" >
< el -col :span ="1.5" >
< el -select v -model = " batchOperateValue " placeholder = "批量操作" size = "mini" clearable >
@ -173,19 +186,10 @@
> 确认
< / e l - b u t t o n >
< / e l - c o l >
<!-- < el -col :span ="1.5" > -- >
<!-- < el -button - - >
<!-- type = "warning" -- >
<!-- plain -- >
<!-- icon = "el-icon-download" -- >
<!-- size = "mini" -- >
<!-- @ click = "handleExport" -- >
<!-- v - hasPermi = "['system:member:export']" -- >
<!-- > 导出 < / e l - b u t t o n > - - >
<!-- < / e l - c o l > - - >
< right -toolbar :showSearch.sync ="showSearch" @queryTable ="getList" > < / right -toolbar >
< / e l - r o w >
<!-- 显示表格 -- >
< el -table v-loading ="loading" :data="memberList" @selection-change="handleSelectionChange" >
< el -table -column type = "selection" width = "55" align = "center" / >
< el -table -column label = "头像" align = "center" >
@ -240,7 +244,7 @@
< / e l - b u t t o n >
< / template >
< / e l - t a b l e - c o l u m n >
< el -table -column label = "即将过期积分" align = "center" prop = " "/ >
< el -table -column label = "即将过期积分" align = "center" prop = " expireCredit "/ >
< el -table -column label = "用户类型" align = "center" prop = "userType" >
< template slot -scope = " scope " >
< span v-show ="scope.row.userType == 0" > 游 客 < / span >
@ -623,8 +627,8 @@
< el -table -column type = "index" width = "50" > < / e l - t a b l e - c o l u m n >
< el -table -column prop = "source" label = "类型" width = "100px" >
< template slot -scope = " scope " >
< span v-show ="scope.row.source == 0" > 减 少 积 分 < / span >
< span v-show ="scope.row.source == 1" > 增 加 积 分 < / span >
< span v-show ="scope.row.source == 2" > 减 少 积 分 < / span >
< / template >
< / e l - t a b l e - c o l u m n >
< el -table -column prop = "floatScore" label = "变动积分"
@ -642,6 +646,61 @@
@ pagination = "getUserIntegralLogList"
/ >
< / e l - d i a l o g >
<!-- 导出字段选择弹窗 -- >
< el -dialog title = "自定义导出字段" :visible.sync ="exportFieldsVisible" width = "50%"
: before - close = "cancelExportFieldsDialog" >
< el -form ref = "form" label -width = " 150px " >
< el -form -item label = "全部字段" prop = "allFields" >
< el -switch v -model = " allFields " @click.native ="isExportAllFields()" / >
< / e l - f o r m - i t e m >
< / e l - f o r m >
< el -form :inline ="true" ref = "form" :model ="exportFieldList" label -width = " 150px " >
< el -form -item label = "会员昵称" prop = "nickname" >
< el -switch v -model = " exportFieldList.nickname " :active-value ="'nickname'" :inactive-value ="null" / >
< / e l - f o r m - i t e m >
< el -form -item label = "用户编号 " prop = "id" >
< el -switch v -model = " exportFieldList.id " active -value = " id " :inactive-value ="null" / >
< / e l - f o r m - i t e m >
< el -form -item label = "手机号 " prop = "mobile" >
< el -switch v -model = " exportFieldList.mobile " active -value = " mobile " :inactive-value ="null" / >
< / e l - f o r m - i t e m >
< el -form -item label = "生日 " prop = "birthday" >
< el -switch v -model = " exportFieldList.birthday " active -value = " birthday " :inactive-value ="null" / >
< / e l - f o r m - i t e m >
< el -form -item label = "地区 " prop = "province" @click.native ="exportArea()" >
< el -switch v -model = " exportFieldList.province " active -value = " province " :inactive-value ="null" / >
< / e l - f o r m - i t e m >
< el -form -item label = "用户注册时间 " prop = "createTime" >
< el -switch v -model = " exportFieldList.createTime " active -value = " createTime " :inactive-value ="null" / >
< / e l - f o r m - i t e m >
< el -form -item label = "仪器数量 " prop = "devicesNum" >
< el -switch v -model = " exportFieldList.devicesNum " active -value = " devicesNum " :inactive-value ="null" / >
< / e l - f o r m - i t e m >
< el -form -item label = "仪器名称 " prop = "devicesName" >
< el -switch v -model = " exportFieldList.devicesName " active -value = " devicesName " :inactive-value ="null" / >
< / e l - f o r m - i t e m >
< el -form -item label = "小程序标签 " prop = "miniProgramTags" >
< el -switch v -model = " exportFieldList.miniProgramTags " active -value = " miniProgramTags " :inactive-value ="null" / >
< / e l - f o r m - i t e m >
< el -form -item label = "企微标签 " prop = "wecomTags" >
< el -switch v -model = " exportFieldList.wecomTags " active -value = " wecomTags " :inactive-value ="null" / >
< / e l - f o r m - i t e m >
< el -form -item label = "积分 " prop = "credit" >
< el -switch v -model = " exportFieldList.credit " active -value = " credit " :inactive-value ="null" / >
< / e l - f o r m - i t e m >
< el -form -item label = "即将过期积分 " prop = "expireCredit" >
< el -switch v -model = " exportFieldList.expireCredit " active -value = " expireCredit " :inactive-value ="null" / >
< / e l - f o r m - i t e m >
< el -form -item label = "unionid " prop = "unionid" >
< el -switch v -model = " exportFieldList.unionid " active -value = " unionid " :inactive-value ="null" / >
< / e l - f o r m - i t e m >
< / e l - f o r m >
< div slot = "footer" class = "dialog-footer" >
< el -button @click ="cancelExportFieldsDialog()" > 取 消 < / el -button >
< el -button type = "primary" @click ="submitBatchOperate" > 确 定 < / el -button >
< / div >
< / e l - d i a l o g >
< / div >
< / template >
@ -650,7 +709,6 @@ import {
listMember ,
getMember ,
delMember ,
addMember ,
updateMember ,
selectUserCount ,
getMiniProgramTags ,
@ -681,23 +739,6 @@ export default {
components : { Treeselect } ,
data ( ) {
return {
tableData : [ {
date : '2016-05-02' ,
name : '王小虎' ,
address : '上海市普陀区金沙江路 1518 弄'
} , {
date : '2016-05-04' ,
name : '王小虎' ,
address : '上海市普陀区金沙江路 1517 弄'
} , {
date : '2016-05-01' ,
name : '王小虎' ,
address : '上海市普陀区金沙江路 1519 弄'
} , {
date : '2016-05-03' ,
name : '王小虎' ,
address : '上海市普陀区金沙江路 1516 弄'
} ] ,
/ / 遮 罩 层
loading : true ,
/ / 选 中 数 组
@ -811,6 +852,31 @@ export default {
orderByColumn : "createTime" ,
isAsc : "desc"
} ,
/ / 导 出 数 据 选 择 字 段
exportFieldsVisible : false ,
exportFieldsForm : {
userIdList : null ,
exportFields : null ,
} ,
allFields : false ,
exportFieldList : {
id : null ,
nickname : null ,
credit : null ,
expireCredit : null ,
unionid : null ,
mobile : null ,
province : null ,
city : null ,
area : null ,
birthday : null ,
devicesNum : null ,
devicesName : null ,
createTime : null ,
wecomTags : null ,
miniProgramTags : null ,
} ,
/ / 查 询 参 数
queryParams : {
pageNum : 1 ,
@ -846,7 +912,7 @@ export default {
loginTime : null ,
status : null ,
/ / c r e a t e T i m e : [ ] ,
devices Tags : [ ] , / / 仪 器 绑 定 标 签
devices Name : [ ] , / / 仪 器 绑 定
wecomTags : [ ] , / / 企 微 标 签
miniProgramTags : [ ] , / / 小 程 序 标 签
purchaseChannels : [ ] , / / 购 买 渠 道
@ -941,26 +1007,20 @@ export default {
this . reset ( ) ;
} ,
/ / 关 闭 添 加 小 程 序 标 签 窗 口
cancelMiniProgramDialog ( isclose ) {
cancelMiniProgramDialog ( ) {
this . title = null ;
this . tagIdArray = [ ] ;
if ( isclose ) {
this . batchMiniProgramVisible = false ;
}
this . batchMiniProgramVisible = false ;
} ,
cancelIntegralDialog ( isclose ) {
cancelIntegralDialog ( ) {
this . integralForm . source = null ;
this . integralForm . floatScore = null ;
this . integralForm . remarkContent = "后台操作" ;
if ( isclose ) {
this . batchIntegralVisible = false ;
}
this . batchIntegralVisible = false ;
} ,
cancelRemarkDialog ( isclose ) {
cancelRemarkDialog ( ) {
this . remarkForm . content = null ;
if ( isclose ) {
this . batchRemarkVisible = false ;
}
this . batchRemarkVisible = false ;
} ,
cancelUserScriptLogDialog ( ) {
this . userScriptLogVisible = false ;
@ -978,7 +1038,26 @@ export default {
this . userIntegralLogQuery . userId = null ;
this . userIntegralLogQuery . userIntegralLogList = null ;
} ,
cancelscriptDialog ( isclose ) {
cancelExportFieldsDialog ( ) {
this . allFields = false ;
this . exportFieldList . nickname = null ;
this . exportFieldList . id = null ;
this . exportFieldList . credit = null ;
this . exportFieldList . expireCredit = null ;
this . exportFieldList . unionid = null ;
this . exportFieldList . mobile = null ;
this . exportFieldList . province = null ;
this . exportFieldList . city = null ;
this . exportFieldList . area = null ;
this . exportFieldList . birthday = null ;
this . exportFieldList . devicesNum = null ;
this . exportFieldList . devicesName = null ;
this . exportFieldList . createTime = null ;
this . exportFieldList . wecomTags = null ;
this . exportFieldList . miniProgramTags = null ;
this . exportFieldsVisible = false
} ,
cancelscriptDialog ( ) {
this . scriptForm . isCustom = null ;
this . scriptForm . scriptName = null ;
this . scriptForm . titile = null ;
@ -997,9 +1076,7 @@ export default {
this . tagIdArray = [ ] ;
this . scriptForm . scriptTemplateId = null ;
this . scriptForm . scriptContent = null ;
if ( isclose ) {
this . batchScriptVisible = false ;
}
this . batchScriptVisible = false ;
} ,
/** 查询部门下拉树结构 */
getDeptTree ( ) {
@ -1213,9 +1290,11 @@ export default {
} )
return
}
this . exportFieldsVisible = true ;
}
if ( this . batchOperateValue == 13 ) {
console . log ( "导出全量数据" ) ;
this . exportFieldsVisible = true ;
}
}
} ,
@ -1413,6 +1492,32 @@ export default {
this . cancelRemarkDialog ( true ) ;
} )
}
/ / 导 出 用 户 数 据
if ( this . batchOperateValue == 12 ) {
let exportFields = Object . values ( this . exportFieldList ) . filter ( val => val != null ) ;
if ( exportFields . length == 0 ) {
this . $modal . msgError ( "请选择导出字段" ) ;
return ;
}
this . exportFieldsForm . userIdList = this . ids ;
this . exportFieldsForm . exportFields = exportFields ;
this . download ( '/system/member/batchExport' , {
... this . exportFieldsForm
} , ` 微信会员_ ${ new Date ( ) . getTime ( ) } .xlsx ` ) ;
this . cancelExportFieldsDialog ( ) ;
}
if ( this . batchOperateValue == 13 ) {
let exportFields = Object . values ( this . exportFieldList ) . filter ( val => val != null ) ;
if ( exportFields . length == 0 ) {
this . $modal . msgError ( "请选择导出字段" ) ;
return ;
}
this . download ( '/system/member/allExport' , {
... Object . assign ( { } , this . queryParams , { exportFields : exportFields } )
} , ` 微信会员_ ${ new Date ( ) . getTime ( ) } .xlsx ` )
this . cancelExportFieldsDialog ( ) ;
}
} ,
/ / 打 开 用 户 备 注 修 改
ocEditRemarkDialog ( row ) {
@ -1471,12 +1576,6 @@ export default {
} ) . catch ( ( ) => {
} ) ;
} ,
/** 导出按钮操作 */
handleExport ( ) {
this . download ( 'system/member/export' , {
... this . queryParams
} , ` member_ ${ new Date ( ) . getTime ( ) } .xlsx ` )
} ,
/ / 打 开 用 户 消 息 列 表 窗 口
viewMessageDetail ( row ) {
this . userScriptLogQuery . wxUserId = row . id ;
@ -1518,8 +1617,52 @@ export default {
this . userIntegralLogQuery . orderByColumn = prop ;
this . userIntegralLogQuery . isAsc = column . order == 'ascending' ? 'asc' : 'desc' ;
this . getUserIntegralLogList ( ) ;
} ,
isExportAllFields ( ) {
if ( this . allFields ) {
this . exportFieldList . nickname = "nickname" ;
this . exportFieldList . id = "id" ;
this . exportFieldList . credit = "credit" ;
this . exportFieldList . expireCredit = "expireCredit" ;
this . exportFieldList . unionid = "unionid" ;
this . exportFieldList . mobile = "mobile" ;
this . exportFieldList . province = "province" ;
this . exportFieldList . city = "city" ;
this . exportFieldList . area = "area" ;
this . exportFieldList . birthday = "birthday" ;
this . exportFieldList . devicesNum = "devicesNum" ;
this . exportFieldList . devicesName = "devicesName" ;
this . exportFieldList . createTime = "createTime" ;
this . exportFieldList . wecomTags = "wecomTags" ;
this . exportFieldList . miniProgramTags = "miniProgramTags" ;
} else {
this . exportFieldList . nickname = null ;
this . exportFieldList . id = null ;
this . exportFieldList . credit = null ;
this . exportFieldList . expireCredit = null ;
this . exportFieldList . unionid = null ;
this . exportFieldList . mobile = null ;
this . exportFieldList . province = null ;
this . exportFieldList . city = null ;
this . exportFieldList . area = null ;
this . exportFieldList . birthday = null ;
this . exportFieldList . devicesNum = null ;
this . exportFieldList . devicesName = null ;
this . exportFieldList . createTime = null ;
this . exportFieldList . wecomTags = null ;
this . exportFieldList . miniProgramTags = null ;
}
} ,
exportArea ( ) {
if ( this . exportFieldList . province != null ) {
this . exportFieldList . city = "city" ;
this . exportFieldList . area = "area" ;
} else {
this . exportFieldList . city = null ;
this . exportFieldList . area = null ;
}
}
}
} ,
}
;
< / script >