【feat】 初始化会员模块

This commit is contained in:
Kris 2024-12-01 01:30:56 +08:00
parent 61d8605d43
commit ef7b5a3571
27 changed files with 4755 additions and 1086 deletions

44
src/api/account/card.js Normal file
View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询会员证件信息列表
export function listCard(query) {
return request({
url: '/account/card/list',
method: 'get',
params: query
})
}
// 查询会员证件信息详细
export function getCard(uid) {
return request({
url: '/account/card/' + uid,
method: 'get'
})
}
// 新增会员证件信息
export function addCard(data) {
return request({
url: '/account/card',
method: 'post',
data: data
})
}
// 修改会员证件信息
export function updateCard(data) {
return request({
url: '/account/card',
method: 'put',
data: data
})
}
// 删除会员证件信息
export function delCard(uid) {
return request({
url: '/account/card/' + uid,
method: 'delete'
})
}

44
src/api/account/fans.js Normal file
View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询会员微信粉丝列表
export function listFans(query) {
return request({
url: '/account/fans/list',
method: 'get',
params: query
})
}
// 查询会员微信粉丝详细
export function getFans(uid) {
return request({
url: '/account/fans/' + uid,
method: 'get'
})
}
// 新增会员微信粉丝
export function addFans(data) {
return request({
url: '/account/fans',
method: 'post',
data: data
})
}
// 修改会员微信粉丝
export function updateFans(data) {
return request({
url: '/account/fans',
method: 'put',
data: data
})
}
// 删除会员微信粉丝
export function delFans(uid) {
return request({
url: '/account/fans/' + uid,
method: 'delete'
})
}

44
src/api/account/group.js Normal file
View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询会员标签组列表
export function listGroup(query) {
return request({
url: '/account/group/list',
method: 'get',
params: query
})
}
// 查询会员标签组详细
export function getGroup(uid) {
return request({
url: '/account/group/' + uid,
method: 'get'
})
}
// 新增会员标签组
export function addGroup(data) {
return request({
url: '/account/group',
method: 'post',
data: data
})
}
// 修改会员标签组
export function updateGroup(data) {
return request({
url: '/account/group',
method: 'put',
data: data
})
}
// 删除会员标签组
export function delGroup(uid) {
return request({
url: '/account/group/' + uid,
method: 'delete'
})
}

44
src/api/account/locus.js Normal file
View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询会员轨迹信息列表
export function listLocus(query) {
return request({
url: '/account/locus/list',
method: 'get',
params: query
})
}
// 查询会员轨迹信息详细
export function getLocus(uid) {
return request({
url: '/account/locus/' + uid,
method: 'get'
})
}
// 新增会员轨迹信息
export function addLocus(data) {
return request({
url: '/account/locus',
method: 'post',
data: data
})
}
// 修改会员轨迹信息
export function updateLocus(data) {
return request({
url: '/account/locus',
method: 'put',
data: data
})
}
// 删除会员轨迹信息
export function delLocus(uid) {
return request({
url: '/account/locus/' + uid,
method: 'delete'
})
}

44
src/api/account/member.js Normal file
View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询会员信息列表
export function listMember(query) {
return request({
url: '/account/member/list',
method: 'get',
params: query
})
}
// 查询会员信息详细
export function getMember(uid) {
return request({
url: '/account/member/' + uid,
method: 'get'
})
}
// 新增会员信息
export function addMember(data) {
return request({
url: '/account/member',
method: 'post',
data: data
})
}
// 修改会员信息
export function updateMember(data) {
return request({
url: '/account/member',
method: 'put',
data: data
})
}
// 删除会员信息
export function delMember(uid) {
return request({
url: '/account/member/' + uid,
method: 'delete'
})
}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询会员关系列表
export function listRelation(query) {
return request({
url: '/account/relation/list',
method: 'get',
params: query
})
}
// 查询会员关系详细
export function getRelation(uid) {
return request({
url: '/account/relation/' + uid,
method: 'get'
})
}
// 新增会员关系
export function addRelation(data) {
return request({
url: '/account/relation',
method: 'post',
data: data
})
}
// 修改会员关系
export function updateRelation(data) {
return request({
url: '/account/relation',
method: 'put',
data: data
})
}
// 删除会员关系
export function delRelation(uid) {
return request({
url: '/account/relation/' + uid,
method: 'delete'
})
}

44
src/api/account/sign.js Normal file
View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询会员签到记录列表
export function listSign(query) {
return request({
url: '/account/sign/list',
method: 'get',
params: query
})
}
// 查询会员签到记录详细
export function getSign(uid) {
return request({
url: '/account/sign/' + uid,
method: 'get'
})
}
// 新增会员签到记录
export function addSign(data) {
return request({
url: '/account/sign',
method: 'post',
data: data
})
}
// 修改会员签到记录
export function updateSign(data) {
return request({
url: '/account/sign',
method: 'put',
data: data
})
}
// 删除会员签到记录
export function delSign(uid) {
return request({
url: '/account/sign/' + uid,
method: 'delete'
})
}

44
src/api/account/source.js Normal file
View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询会员微信来源信息列表
export function listSource(query) {
return request({
url: '/account/source/list',
method: 'get',
params: query
})
}
// 查询会员微信来源信息详细
export function getSource(uid) {
return request({
url: '/account/source/' + uid,
method: 'get'
})
}
// 新增会员微信来源信息
export function addSource(data) {
return request({
url: '/account/source',
method: 'post',
data: data
})
}
// 修改会员微信来源信息
export function updateSource(data) {
return request({
url: '/account/source',
method: 'put',
data: data
})
}
// 删除会员微信来源信息
export function delSource(uid) {
return request({
url: '/account/source/' + uid,
method: 'delete'
})
}

44
src/api/account/tag.js Normal file
View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询会员标签列表
export function listTag(query) {
return request({
url: '/account/tag/list',
method: 'get',
params: query
})
}
// 查询会员标签详细
export function getTag(uid) {
return request({
url: '/account/tag/' + uid,
method: 'get'
})
}
// 新增会员标签
export function addTag(data) {
return request({
url: '/account/tag',
method: 'post',
data: data
})
}
// 修改会员标签
export function updateTag(data) {
return request({
url: '/account/tag',
method: 'put',
data: data
})
}
// 删除会员标签
export function delTag(uid) {
return request({
url: '/account/tag/' + uid,
method: 'delete'
})
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

View File

@ -1,46 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 100 21" style="enable-background:new 0 0 100 21;" xml:space="preserve">
<style type="text/css">
.st0{fill:#6BB4AB;}
.st1{fill:#168AFF;}
.st2{fill:#FFFFFF;}
.st3{fill:#FFFFFF;stroke:#FFFFFF;stroke-width:0.25;stroke-miterlimit:10;}
</style>
<g>
<g>
<path class="st2" d="M12,0C5.4,0,0,4.6,0,10.2v0.1h3.2c0.1,4,3.9,7.4,8.7,7.4v2.7H12c6.6,0,12-4.6,12-10.2C24,4.5,18.6,0,12,0z
M13.3,19.2v-2.7H12c-4,0-7.3-2.8-7.4-6.2h16.2v-0.1c0-4.1-4-7.6-8.8-7.6c-4.4,0-8.1,2.8-8.7,6.4H1.5C2.2,4.5,6.6,1.2,12,1.2
c5.8,0,10.6,4,10.6,9C22.6,14.8,18.6,18.6,13.3,19.2z M4.7,9.1c0.7-3,3.7-5.1,7.3-5.1c3.6,0,6.6,2.2,7.3,5.1H4.7z"/>
<path class="st2" d="M11.3,19.6L11.3,19.6c-2-0.1-3.8-0.6-5.3-1.5c-0.2-0.1-0.6-0.3-2.3,0.5c0.7-1.4,0.5-1.8,0.3-2
c-1.6-1.6-2.5-3.5-2.6-5.5H0c0.1,2.3,1,4.4,2.8,6.2c-0.1,0.4-0.6,1.5-1.2,2.6c-0.1,0.2-0.1,0.5,0.2,0.7c0.2,0.2,0.5,0.2,0.8,0.1
c1.2-0.6,2.5-1.2,2.9-1.3c1.6,0.9,3.4,1.4,5.2,1.6c0.4,0,0.6,0,0.6,0v-0.1l0,0l0,0v-0.4C11.3,20.5,11.3,19.6,11.3,19.6z"/>
</g>
<path class="st2" d="M38.5,7.3c-0.9,0-1.9,0.3-2.9,0.9l-0.1,0.1l0.6,1l0.1-0.1c0.7-0.5,1.4-0.7,2.1-0.7c0.9,0,1.3,0.5,1.3,1.6
c-3.1,0.4-4.4,1.2-4.4,2.8c0,1.3,0.9,2.1,2.2,2.1c0.7,0,1.5-0.3,2.3-0.9l0.1,0.8H41v-4.5C41,8.4,40.1,7.3,38.5,7.3z M39.6,11.1v1.8
c-0.7,0.6-1.2,0.9-1.8,0.9c-0.5,0-1.1-0.2-1.1-1C36.7,12.2,37,11.5,39.6,11.1z"/>
<path class="st2" d="M45.4,10.5l-0.2-0.1c-0.7-0.3-1.4-0.5-1.4-1.1s0.4-0.9,1.2-0.9c0.7,0,1.1,0.3,1.6,0.6l0.1,0.1l0.7-1L47.3,8
c-0.7-0.5-1.5-0.8-2.3-0.8c-1.5,0-2.6,0.9-2.6,2.1c0,1.4,1.4,1.9,2.2,2.2c0.7,0.3,1.5,0.6,1.5,1.2c0,0.6-0.5,1-1.3,1
c-0.7,0-1.3-0.2-2-0.8l-0.1-0.1l-0.7,1l0.1,0.1c0.8,0.6,1.8,1,2.7,1c1.9,0,2.7-1.1,2.7-2.2C47.6,11.4,46.4,10.9,45.4,10.5z"/>
<path class="st2" d="M51.9,11.5c-0.1,0.4-0.2,0.8-0.4,1.2c-0.1,0.2-0.1,0.4-0.2,0.5c-0.2-0.5-0.3-0.9-0.5-1.4l-1.6-4.3V7.4h-1.5
l2.9,7.2l-0.1,0.5c-0.2,0.7-0.6,1.4-1.5,1.4c-0.1,0-0.3,0-0.5-0.1h-0.1l-0.3,1.2h0.1c0.2,0.1,0.5,0.2,0.9,0.2
c1.7,0,2.4-1.5,2.8-2.6l2.7-7.8h-1.4L51.9,11.5z"/>
<path class="st2" d="M63.3,10.3c-0.2,0.9-0.3,1.7-0.5,2.6c-0.2-0.8-0.4-1.7-0.6-2.6L60.8,5h-1.3l-1.3,5.3v0.2
c-0.2,0.8-0.4,1.6-0.5,2.4c-0.1-0.4-0.1-0.7-0.2-1.1c-0.1-0.5-0.2-1-0.3-1.5l-1-5.3h-1.5l2.1,9.7v0.1h1.6l1.4-5.9
c0.1-0.4,0.2-0.8,0.3-1.2c0-0.2,0.1-0.3,0.1-0.5v0.1c0.1,0.5,0.2,1,0.3,1.6l1.4,5.8v0.1h1.6l2-9.8h-1.4L63.3,10.3z"/>
<path class="st2" d="M69.7,7.3c-2.2,0-3.3,2-3.3,3.9c0,2.3,1.4,3.8,3.5,3.8c0.9,0,1.6-0.2,2.4-0.8l0.1-0.1l-0.6-1l-0.1,0.1
c-0.5,0.4-1.1,0.6-1.7,0.6c-1.2,0-2.1-0.9-2.2-2.2h4.8v-0.1c0-0.1,0.1-0.4,0.1-0.7C72.6,8.6,71.5,7.3,69.7,7.3z M71.3,10.5h-3.5
c0.2-1.2,0.9-2,1.9-2C70.7,8.5,71.3,9.2,71.3,10.5z"/>
<path class="st2" d="M31.2,7.3c-2.2,0-3.3,2-3.3,3.9c0,2.3,1.4,3.8,3.5,3.8c0.9,0,1.6-0.2,2.4-0.8l0.1-0.1l-0.6-1l-0.1,0.1
c-0.5,0.4-1.1,0.6-1.7,0.6c-1.2,0-2.1-0.9-2.2-2.2h4.8v-0.1c0-0.1,0.1-0.4,0.1-0.7C34.1,8.6,33,7.3,31.2,7.3z M32.8,10.5h-3.5
c0.2-1.2,0.9-2,1.9-2C32.2,8.5,32.8,9.2,32.8,10.5z"/>
<path class="st2" d="M80,12.7c-0.6,0.7-1.3,1-2.1,1c-1.8,0-2.9-1.5-2.9-3.8s1.1-3.8,2.9-3.8c0.7,0,1.3,0.3,1.9,0.9l0.1,0.1l0.8-1
L80.6,6c-0.3-0.3-1.2-1.2-2.7-1.2c-2.6,0-4.4,2-4.4,5.1c0,3,1.7,5.1,4.3,5.1c1.2,0,2.2-0.5,3-1.4l0.1-0.1L80,12.7L80,12.7z"/>
<path class="st2" d="M85.1,7.3c-1.7,0-3.4,1.3-3.4,3.9c0,2.5,1.7,3.8,3.4,3.8s3.4-1.3,3.4-3.8C88.5,8.6,86.8,7.3,85.1,7.3z
M87,11.2c0,1.5-0.8,2.6-1.9,2.6c-1.2,0-1.9-1-1.9-2.6s0.8-2.6,1.9-2.6C86.2,8.6,87,9.6,87,11.2z"/>
<path class="st2" d="M97.7,7.3c-0.9,0-1.7,0.6-2.3,1.3c-0.4-0.8-1-1.3-2-1.3c-0.7,0-1.4,0.4-2.1,1.1l-0.1-0.9H90v7.3h1.4V9.6
c0.6-0.7,1.2-1,1.7-1c0.8,0,1.2,0.5,1.2,1.8v4.4h1.4V9.6c0.6-0.7,1.2-1,1.7-1c0.8,0,1.2,0.5,1.2,1.8v4.4h1.4v-4.6
C100,8.3,99.2,7.3,97.7,7.3z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
<style type="text/css">
.st0{fill:#6BB4AB;}
.st1{fill:#168AFF;}
.st2{fill:#FFFFFF;}
.st3{fill:#FFFFFF;stroke:#FFFFFF;stroke-width:0.25;stroke-miterlimit:10;}
</style>
<circle class="st0" cx="12" cy="12" r="12"/>
<g>
<path class="st2" d="M12,4.7c-4.6,0-8.4,3.2-8.4,7.2V12h2.2c0.1,2.8,2.8,5,6,5.1v1.8H12c4.6,0,8.4-3.2,8.4-7.2
C20.4,7.8,16.6,4.7,12,4.7z M13,17.9V16h-1c-2.6,0-4.8-1.8-5-4h11.1v-0.2c0-2.9-2.8-5.3-6.2-5.3c-3,0-5.6,1.9-6.1,4.4h-1
c0.5-3,3.5-5.2,7.1-5.2c3.9,0,7.2,2.7,7.2,6C19.2,14.8,16.5,17.4,13,17.9z M12,7.6c2.3,0,4.3,1.4,4.9,3.3H7.1C7.7,9,9.7,7.6,12,7.6
z"/>
<path class="st2" d="M7.9,17.1c-0.1-0.1-0.4-0.2-1.4,0.2c0.3-0.8,0.2-1,0-1.2c-1.1-1-1.7-2.4-1.8-3.7l0-0.1H3.6l0,0.1
c0.1,1.6,0.7,3.1,1.9,4.3c-0.1,0.3-0.4,0.9-0.8,1.7c-0.1,0.2-0.1,0.5,0.2,0.6c0.2,0.2,0.4,0.2,0.7,0.1c0.9-0.4,1.6-0.8,1.9-0.9
c1,0.6,2.2,0.9,3.6,1.1c0.1,0,0.2,0,0.2,0c0.1,0,0.2,0,0.2,0l0.1,0v-1.2l-0.2,0C10.1,18.1,8.9,17.7,7.9,17.1z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -9,13 +9,6 @@
<template v-if="device!=='mobile'">
<search id="header-search" class="right-menu-item" />
<el-tooltip content="源码地址" effect="dark" placement="bottom">
<ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />
</el-tooltip>
<el-tooltip content="文档地址" effect="dark" placement="bottom">
<ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />
</el-tooltip>
<screenfull id="screenfull" class="right-menu-item hover-effect" />

View File

@ -0,0 +1,311 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="会员ID" prop="memberUid">
<el-input
v-model="queryParams.memberUid"
placeholder="请输入会员ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="证件号码" prop="cardId">
<el-input
v-model="queryParams.cardId"
placeholder="请输入证件号码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input
v-model="queryParams.createUserId"
placeholder="请输入创建人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input
v-model="queryParams.updateUserId"
placeholder="请输入修改人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<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>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['account:card:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['account:card:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['account:card:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['account:card:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="cardList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="证件ID" align="center" prop="uid" />
<el-table-column label="会员ID" align="center" prop="memberUid" />
<el-table-column label="证件类型" align="center" prop="cardType" />
<el-table-column label="证件号码" align="center" prop="cardId" />
<el-table-column label="创建人ID" align="center" prop="createUserId" />
<el-table-column label="修改人ID" align="center" prop="updateUserId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['account:card:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['account:card:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改会员证件信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="会员ID" prop="memberUid">
<el-input v-model="form.memberUid" placeholder="请输入会员ID" />
</el-form-item>
<el-form-item label="证件号码" prop="cardId">
<el-input v-model="form.cardId" placeholder="请输入证件号码" />
</el-form-item>
<el-form-item label="有效标识0有效1失效" prop="delFlag">
<el-input v-model="form.delFlag" placeholder="请输入有效标识0有效1失效" />
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input v-model="form.createUserId" placeholder="请输入创建人ID" />
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input v-model="form.updateUserId" placeholder="请输入修改人ID" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listCard, getCard, delCard, addCard, updateCard } from "@/api/account/card";
export default {
name: "Card",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
cardList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
memberUid: null,
cardType: null,
cardId: null,
createUserId: null,
updateUserId: null
},
//
form: {},
//
rules: {
createTime: [
{ required: true, message: "创建时间不能为空", trigger: "blur" }
],
updateTime: [
{ required: true, message: "修改时间不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "有效标识0有效1失效不能为空", trigger: "blur" }
],
createUserId: [
{ required: true, message: "创建人ID不能为空", trigger: "blur" }
],
updateUserId: [
{ required: true, message: "修改人ID不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询会员证件信息列表 */
getList() {
this.loading = true;
listCard(this.queryParams).then(response => {
this.cardList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
uid: null,
memberUid: null,
cardType: null,
cardId: null,
createTime: null,
updateTime: null,
delFlag: null,
createUserId: null,
updateUserId: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.uid)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加会员证件信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const uid = row.uid || this.ids
getCard(uid).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改会员证件信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.uid != null) {
updateCard(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addCard(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const uids = row.uid || this.ids;
this.$modal.confirm('是否确认删除会员证件信息编号为"' + uids + '"的数据项?').then(function() {
return delCard(uids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('account/card/export', {
...this.queryParams
}, `card_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,453 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="会员ID" prop="memberUid">
<el-input
v-model="queryParams.memberUid"
placeholder="请输入会员ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="公众号ID" prop="appId">
<el-input
v-model="queryParams.appId"
placeholder="请输入公众号ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="公众号名称" prop="appName">
<el-input
v-model="queryParams.appName"
placeholder="请输入公众号名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="绑定时间" prop="bindTime">
<el-date-picker clearable
v-model="queryParams.bindTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择绑定时间">
</el-date-picker>
</el-form-item>
<el-form-item label="微信昵称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入微信昵称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="微信头像URL" prop="imageUrl">
<el-input
v-model="queryParams.imageUrl"
placeholder="请输入微信头像URL"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="微信unionID" prop="unionId">
<el-input
v-model="queryParams.unionId"
placeholder="请输入微信unionID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="微信openID" prop="openId">
<el-input
v-model="queryParams.openId"
placeholder="请输入微信openID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="订阅时间" prop="subscribeTime">
<el-date-picker clearable
v-model="queryParams.subscribeTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择订阅时间">
</el-date-picker>
</el-form-item>
<el-form-item label="取消订阅时间" prop="unsubscribeTime">
<el-date-picker clearable
v-model="queryParams.unsubscribeTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择取消订阅时间">
</el-date-picker>
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input
v-model="queryParams.createUserId"
placeholder="请输入创建人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input
v-model="queryParams.updateUserId"
placeholder="请输入修改人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<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>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['account:fans:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['account:fans:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['account:fans:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['account:fans:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="fansList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="会员微信粉丝ID" align="center" prop="uid" />
<el-table-column label="会员ID" align="center" prop="memberUid" />
<el-table-column label="公众号ID" align="center" prop="appId" />
<el-table-column label="公众号名称" align="center" prop="appName" />
<el-table-column label="绑定时间" align="center" prop="bindTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.bindTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="微信昵称" align="center" prop="name" />
<el-table-column label="微信头像URL" align="center" prop="imageUrl" />
<el-table-column label="微信unionID" align="center" prop="unionId" />
<el-table-column label="微信openID" align="center" prop="openId" />
<el-table-column label="订阅状态0订阅1未订阅" align="center" prop="subscribeStatus" />
<el-table-column label="订阅时间" align="center" prop="subscribeTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.subscribeTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="取消订阅时间" align="center" prop="unsubscribeTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.unsubscribeTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="创建人ID" align="center" prop="createUserId" />
<el-table-column label="修改人ID" align="center" prop="updateUserId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['account:fans:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['account:fans:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改会员微信粉丝对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="会员ID" prop="memberUid">
<el-input v-model="form.memberUid" placeholder="请输入会员ID" />
</el-form-item>
<el-form-item label="公众号ID" prop="appId">
<el-input v-model="form.appId" placeholder="请输入公众号ID" />
</el-form-item>
<el-form-item label="公众号名称" prop="appName">
<el-input v-model="form.appName" placeholder="请输入公众号名称" />
</el-form-item>
<el-form-item label="绑定时间" prop="bindTime">
<el-date-picker clearable
v-model="form.bindTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择绑定时间">
</el-date-picker>
</el-form-item>
<el-form-item label="微信昵称" prop="name">
<el-input v-model="form.name" placeholder="请输入微信昵称" />
</el-form-item>
<el-form-item label="微信头像URL" prop="imageUrl">
<el-input v-model="form.imageUrl" placeholder="请输入微信头像URL" />
</el-form-item>
<el-form-item label="微信unionID" prop="unionId">
<el-input v-model="form.unionId" placeholder="请输入微信unionID" />
</el-form-item>
<el-form-item label="微信openID" prop="openId">
<el-input v-model="form.openId" placeholder="请输入微信openID" />
</el-form-item>
<el-form-item label="订阅时间" prop="subscribeTime">
<el-date-picker clearable
v-model="form.subscribeTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择订阅时间">
</el-date-picker>
</el-form-item>
<el-form-item label="取消订阅时间" prop="unsubscribeTime">
<el-date-picker clearable
v-model="form.unsubscribeTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择取消订阅时间">
</el-date-picker>
</el-form-item>
<el-form-item label="有效标识0有效1无效" prop="delFlag">
<el-input v-model="form.delFlag" placeholder="请输入有效标识0有效1无效" />
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input v-model="form.createUserId" placeholder="请输入创建人ID" />
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input v-model="form.updateUserId" placeholder="请输入修改人ID" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listFans, getFans, delFans, addFans, updateFans } from "@/api/account/fans";
export default {
name: "Fans",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
fansList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
memberUid: null,
appId: null,
appName: null,
bindTime: null,
name: null,
imageUrl: null,
unionId: null,
openId: null,
subscribeStatus: null,
subscribeTime: null,
unsubscribeTime: null,
createUserId: null,
updateUserId: null
},
//
form: {},
//
rules: {
subscribeStatus: [
{ required: true, message: "订阅状态0订阅1未订阅不能为空", trigger: "change" }
],
createTime: [
{ required: true, message: "创建时间不能为空", trigger: "blur" }
],
updateTime: [
{ required: true, message: "更新时间不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "有效标识0有效1无效不能为空", trigger: "blur" }
],
createUserId: [
{ required: true, message: "创建人ID不能为空", trigger: "blur" }
],
updateUserId: [
{ required: true, message: "修改人ID不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询会员微信粉丝列表 */
getList() {
this.loading = true;
listFans(this.queryParams).then(response => {
this.fansList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
uid: null,
memberUid: null,
appId: null,
appName: null,
bindTime: null,
name: null,
imageUrl: null,
unionId: null,
openId: null,
subscribeStatus: null,
subscribeTime: null,
unsubscribeTime: null,
createTime: null,
updateTime: null,
delFlag: null,
createUserId: null,
updateUserId: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.uid)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加会员微信粉丝";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const uid = row.uid || this.ids
getFans(uid).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改会员微信粉丝";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.uid != null) {
updateFans(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addFans(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const uids = row.uid || this.ids;
this.$modal.confirm('是否确认删除会员微信粉丝编号为"' + uids + '"的数据项?').then(function() {
return delFans(uids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('account/fans/export', {
...this.queryParams
}, `fans_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,308 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="标签组名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入标签组名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="标签组备注" prop="mark">
<el-input
v-model="queryParams.mark"
placeholder="请输入标签组备注"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input
v-model="queryParams.createUserId"
placeholder="请输入创建人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input
v-model="queryParams.updateUserId"
placeholder="请输入修改人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<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>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['account:group:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['account:group:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['account:group:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['account:group:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="groupList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="标签组ID" align="center" prop="uid" />
<el-table-column label="标签组名称" align="center" prop="name" />
<el-table-column label="标签组备注" align="center" prop="mark" />
<el-table-column label="创建人ID" align="center" prop="createUserId" />
<el-table-column label="修改人ID" align="center" prop="updateUserId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['account:group:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['account:group:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改会员标签组对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="标签组名称" prop="name">
<el-input v-model="form.name" placeholder="请输入标签组名称" />
</el-form-item>
<el-form-item label="标签组备注" prop="mark">
<el-input v-model="form.mark" placeholder="请输入标签组备注" />
</el-form-item>
<el-form-item label="有效标识0有效1无效" prop="delFlag">
<el-input v-model="form.delFlag" placeholder="请输入有效标识0有效1无效" />
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input v-model="form.createUserId" placeholder="请输入创建人ID" />
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input v-model="form.updateUserId" placeholder="请输入修改人ID" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listGroup, getGroup, delGroup, addGroup, updateGroup } from "@/api/account/group";
export default {
name: "Group",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
groupList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
name: null,
mark: null,
createUserId: null,
updateUserId: null
},
//
form: {},
//
rules: {
createTime: [
{ required: true, message: "创建时间不能为空", trigger: "blur" }
],
updateTime: [
{ required: true, message: "更新时间不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "有效标识0有效1无效不能为空", trigger: "blur" }
],
createUserId: [
{ required: true, message: "创建人ID不能为空", trigger: "blur" }
],
updateUserId: [
{ required: true, message: "修改人ID不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询会员标签组列表 */
getList() {
this.loading = true;
listGroup(this.queryParams).then(response => {
this.groupList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
uid: null,
name: null,
mark: null,
createTime: null,
updateTime: null,
delFlag: null,
createUserId: null,
updateUserId: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.uid)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加会员标签组";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const uid = row.uid || this.ids
getGroup(uid).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改会员标签组";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.uid != null) {
updateGroup(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addGroup(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const uids = row.uid || this.ids;
this.$modal.confirm('是否确认删除会员标签组编号为"' + uids + '"的数据项?').then(function() {
return delGroup(uids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('account/group/export', {
...this.queryParams
}, `group_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,326 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="会员ID" prop="memberUid">
<el-input
v-model="queryParams.memberUid"
placeholder="请输入会员ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="处理日期" prop="createDate">
<el-date-picker clearable
v-model="queryParams.createDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择处理日期">
</el-date-picker>
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input
v-model="queryParams.createUserId"
placeholder="请输入创建人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input
v-model="queryParams.updateUserId"
placeholder="请输入修改人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<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>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['account:locus:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['account:locus:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['account:locus:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['account:locus:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="locusList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="会员轨迹ID" align="center" prop="uid" />
<el-table-column label="会员ID" align="center" prop="memberUid" />
<el-table-column label="轨迹类型(1:信息动态;2:社交动态;3:活动规则;4:待办动态)" align="center" prop="trajectoryType" />
<el-table-column label="文案内容" align="center" prop="content" />
<el-table-column label="处理日期" align="center" prop="createDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="创建人ID" align="center" prop="createUserId" />
<el-table-column label="修改人ID" align="center" prop="updateUserId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['account:locus:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['account:locus:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改会员轨迹信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="会员ID" prop="memberUid">
<el-input v-model="form.memberUid" placeholder="请输入会员ID" />
</el-form-item>
<el-form-item label="文案内容">
<editor v-model="form.content" :min-height="192"/>
</el-form-item>
<el-form-item label="处理日期" prop="createDate">
<el-date-picker clearable
v-model="form.createDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择处理日期">
</el-date-picker>
</el-form-item>
<el-form-item label="有效标识0有效1无效" prop="delFlag">
<el-input v-model="form.delFlag" placeholder="请输入有效标识0有效1无效" />
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input v-model="form.createUserId" placeholder="请输入创建人ID" />
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input v-model="form.updateUserId" placeholder="请输入修改人ID" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listLocus, getLocus, delLocus, addLocus, updateLocus } from "@/api/account/locus";
export default {
name: "Locus",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
locusList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
memberUid: null,
trajectoryType: null,
content: null,
createDate: null,
createUserId: null,
updateUserId: null
},
//
form: {},
//
rules: {
createTime: [
{ required: true, message: "创建时间不能为空", trigger: "blur" }
],
updateTime: [
{ required: true, message: "更新时间不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "有效标识0有效1无效不能为空", trigger: "blur" }
],
createUserId: [
{ required: true, message: "创建人ID不能为空", trigger: "blur" }
],
updateUserId: [
{ required: true, message: "修改人ID不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询会员轨迹信息列表 */
getList() {
this.loading = true;
listLocus(this.queryParams).then(response => {
this.locusList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
uid: null,
memberUid: null,
trajectoryType: null,
content: null,
createDate: null,
createTime: null,
updateTime: null,
delFlag: null,
createUserId: null,
updateUserId: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.uid)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加会员轨迹信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const uid = row.uid || this.ids
getLocus(uid).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改会员轨迹信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.uid != null) {
updateLocus(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addLocus(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const uids = row.uid || this.ids;
this.$modal.confirm('是否确认删除会员轨迹信息编号为"' + uids + '"的数据项?').then(function() {
return delLocus(uids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('account/locus/export', {
...this.queryParams
}, `locus_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,495 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="姓名" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入姓名"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="生日" prop="birthday">
<el-input
v-model="queryParams.birthday"
placeholder="请输入生日"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input
v-model="queryParams.email"
placeholder="请输入邮箱"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="地址" prop="address">
<el-input
v-model="queryParams.address"
placeholder="请输入地址"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号码" prop="phone">
<el-input
v-model="queryParams.phone"
placeholder="请输入手机号码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="会员卡号" prop="memberId">
<el-input
v-model="queryParams.memberId"
placeholder="请输入会员卡号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="会员等级" prop="memberLevel">
<el-input
v-model="queryParams.memberLevel"
placeholder="请输入会员等级"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="城市" prop="city">
<el-input
v-model="queryParams.city"
placeholder="请输入城市"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="地区" prop="area">
<el-input
v-model="queryParams.area"
placeholder="请输入地区"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="渠道来源" prop="source">
<el-input
v-model="queryParams.source"
placeholder="请输入渠道来源"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="注销时间" prop="logoutTime">
<el-date-picker clearable
v-model="queryParams.logoutTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择注销时间">
</el-date-picker>
</el-form-item>
<el-form-item label="冻结时间" prop="freezeTime">
<el-date-picker clearable
v-model="queryParams.freezeTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择冻结时间">
</el-date-picker>
</el-form-item>
<el-form-item label="发卡时间" prop="cardTime">
<el-date-picker clearable
v-model="queryParams.cardTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择发卡时间">
</el-date-picker>
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input
v-model="queryParams.createUserId"
placeholder="请输入创建人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input
v-model="queryParams.updateUserId"
placeholder="请输入修改人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<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>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['account:member:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['account:member:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['account:member:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['account:member:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="memberList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="会员ID" align="center" prop="uid" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="生日" align="center" prop="birthday" />
<el-table-column label="性别" align="center" prop="sex" />
<el-table-column label="邮箱" align="center" prop="email" />
<el-table-column label="地址" align="center" prop="address" />
<el-table-column label="手机号码" align="center" prop="phone" />
<el-table-column label="会员卡号" align="center" prop="memberId" />
<el-table-column label="会员等级" align="center" prop="memberLevel" />
<el-table-column label="城市" align="center" prop="city" />
<el-table-column label="地区" align="center" prop="area" />
<el-table-column label="渠道来源" align="center" prop="source" />
<el-table-column label="会员状态" align="center" prop="status" />
<el-table-column label="注销时间" align="center" prop="logoutTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.logoutTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="冻结时间" align="center" prop="freezeTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.freezeTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="发卡时间" align="center" prop="cardTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.cardTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="创建人ID" align="center" prop="createUserId" />
<el-table-column label="修改人ID" align="center" prop="updateUserId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['account:member:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['account:member:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改会员信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
<el-form-item label="生日" prop="birthday">
<el-input v-model="form.birthday" placeholder="请输入生日" />
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input v-model="form.email" placeholder="请输入邮箱" />
</el-form-item>
<el-form-item label="地址" prop="address">
<el-input v-model="form.address" placeholder="请输入地址" />
</el-form-item>
<el-form-item label="手机号码" prop="phone">
<el-input v-model="form.phone" placeholder="请输入手机号码" />
</el-form-item>
<el-form-item label="会员卡号" prop="memberId">
<el-input v-model="form.memberId" placeholder="请输入会员卡号" />
</el-form-item>
<el-form-item label="会员等级" prop="memberLevel">
<el-input v-model="form.memberLevel" placeholder="请输入会员等级" />
</el-form-item>
<el-form-item label="城市" prop="city">
<el-input v-model="form.city" placeholder="请输入城市" />
</el-form-item>
<el-form-item label="地区" prop="area">
<el-input v-model="form.area" placeholder="请输入地区" />
</el-form-item>
<el-form-item label="渠道来源" prop="source">
<el-input v-model="form.source" placeholder="请输入渠道来源" />
</el-form-item>
<el-form-item label="注销时间" prop="logoutTime">
<el-date-picker clearable
v-model="form.logoutTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择注销时间">
</el-date-picker>
</el-form-item>
<el-form-item label="冻结时间" prop="freezeTime">
<el-date-picker clearable
v-model="form.freezeTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择冻结时间">
</el-date-picker>
</el-form-item>
<el-form-item label="发卡时间" prop="cardTime">
<el-date-picker clearable
v-model="form.cardTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择发卡时间">
</el-date-picker>
</el-form-item>
<el-form-item label="有效标识0有效1无效" prop="delFlag">
<el-input v-model="form.delFlag" placeholder="请输入有效标识0有效1无效" />
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input v-model="form.createUserId" placeholder="请输入创建人ID" />
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input v-model="form.updateUserId" placeholder="请输入修改人ID" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listMember, getMember, delMember, addMember, updateMember } from "@/api/account/member";
export default {
name: "Member",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
memberList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
name: null,
birthday: null,
sex: null,
email: null,
address: null,
phone: null,
memberId: null,
memberLevel: null,
city: null,
area: null,
source: null,
status: null,
logoutTime: null,
freezeTime: null,
cardTime: null,
createUserId: null,
updateUserId: null
},
//
form: {},
//
rules: {
createTime: [
{ required: true, message: "创建时间不能为空", trigger: "blur" }
],
updateTime: [
{ required: true, message: "更新时间不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "有效标识0有效1无效不能为空", trigger: "blur" }
],
createUserId: [
{ required: true, message: "创建人ID不能为空", trigger: "blur" }
],
updateUserId: [
{ required: true, message: "修改人ID不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询会员信息列表 */
getList() {
this.loading = true;
listMember(this.queryParams).then(response => {
this.memberList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
uid: null,
name: null,
birthday: null,
sex: null,
email: null,
address: null,
phone: null,
memberId: null,
memberLevel: null,
city: null,
area: null,
source: null,
status: null,
createTime: null,
updateTime: null,
logoutTime: null,
freezeTime: null,
cardTime: null,
delFlag: null,
createUserId: null,
updateUserId: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.uid)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加会员信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const uid = row.uid || this.ids
getMember(uid).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改会员信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.uid != null) {
updateMember(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addMember(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const uids = row.uid || this.ids;
this.$modal.confirm('是否确认删除会员信息编号为"' + uids + '"的数据项?').then(function() {
return delMember(uids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('account/member/export', {
...this.queryParams
}, `member_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,336 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="会员ID" prop="memberUid">
<el-input
v-model="queryParams.memberUid"
placeholder="请输入会员ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="关系" prop="relation">
<el-input
v-model="queryParams.relation"
placeholder="请输入关系"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="关系会员ID" prop="memberRelationUid">
<el-input
v-model="queryParams.memberRelationUid"
placeholder="请输入关系会员ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备注" prop="mark">
<el-input
v-model="queryParams.mark"
placeholder="请输入备注"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input
v-model="queryParams.createUserId"
placeholder="请输入创建人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input
v-model="queryParams.updateUserId"
placeholder="请输入修改人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<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>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['account:relation:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['account:relation:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['account:relation:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['account:relation:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="relationList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="会员关系ID" align="center" prop="uid" />
<el-table-column label="会员ID" align="center" prop="memberUid" />
<el-table-column label="关系" align="center" prop="relation" />
<el-table-column label="关系会员ID" align="center" prop="memberRelationUid" />
<el-table-column label="备注" align="center" prop="mark" />
<el-table-column label="创建人ID" align="center" prop="createUserId" />
<el-table-column label="修改人ID" align="center" prop="updateUserId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['account:relation:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['account:relation:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改会员关系对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="会员ID" prop="memberUid">
<el-input v-model="form.memberUid" placeholder="请输入会员ID" />
</el-form-item>
<el-form-item label="关系" prop="relation">
<el-input v-model="form.relation" placeholder="请输入关系" />
</el-form-item>
<el-form-item label="关系会员ID" prop="memberRelationUid">
<el-input v-model="form.memberRelationUid" placeholder="请输入关系会员ID" />
</el-form-item>
<el-form-item label="备注" prop="mark">
<el-input v-model="form.mark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="有效标识0有效1无效" prop="delFlag">
<el-input v-model="form.delFlag" placeholder="请输入有效标识0有效1无效" />
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input v-model="form.createUserId" placeholder="请输入创建人ID" />
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input v-model="form.updateUserId" placeholder="请输入修改人ID" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listRelation, getRelation, delRelation, addRelation, updateRelation } from "@/api/account/relation";
export default {
name: "Relation",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
relationList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
memberUid: null,
relation: null,
memberRelationUid: null,
mark: null,
createUserId: null,
updateUserId: null
},
//
form: {},
//
rules: {
createTime: [
{ required: true, message: "创建时间不能为空", trigger: "blur" }
],
updateTime: [
{ required: true, message: "更新时间不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "有效标识0有效1无效不能为空", trigger: "blur" }
],
createUserId: [
{ required: true, message: "创建人ID不能为空", trigger: "blur" }
],
updateUserId: [
{ required: true, message: "修改人ID不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询会员关系列表 */
getList() {
this.loading = true;
listRelation(this.queryParams).then(response => {
this.relationList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
uid: null,
memberUid: null,
relation: null,
memberRelationUid: null,
mark: null,
createTime: null,
updateTime: null,
delFlag: null,
createUserId: null,
updateUserId: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.uid)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加会员关系";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const uid = row.uid || this.ids
getRelation(uid).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改会员关系";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.uid != null) {
updateRelation(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addRelation(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const uids = row.uid || this.ids;
this.$modal.confirm('是否确认删除会员关系编号为"' + uids + '"的数据项?').then(function() {
return delRelation(uids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('account/relation/export', {
...this.queryParams
}, `relation_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,320 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="用户ID" prop="memberUid">
<el-input
v-model="queryParams.memberUid"
placeholder="请输入用户ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="签到日期" prop="createDay">
<el-date-picker clearable
v-model="queryParams.createDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择签到日期">
</el-date-picker>
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input
v-model="queryParams.createUserId"
placeholder="请输入创建人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input
v-model="queryParams.updateUserId"
placeholder="请输入修改人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<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>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['account:sign:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['account:sign:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['account:sign:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['account:sign:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="signList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="签到记录ID" align="center" prop="uid" />
<el-table-column label="用户ID" align="center" prop="memberUid" />
<el-table-column label="签到日期" align="center" prop="createDay" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createDay, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="创建人ID" align="center" prop="createUserId" />
<el-table-column label="修改人ID" align="center" prop="updateUserId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['account:sign:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['account:sign:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改会员签到记录对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="用户ID" prop="memberUid">
<el-input v-model="form.memberUid" placeholder="请输入用户ID" />
</el-form-item>
<el-form-item label="签到日期" prop="createDay">
<el-date-picker clearable
v-model="form.createDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择签到日期">
</el-date-picker>
</el-form-item>
<el-form-item label="有效标识0有效1无效" prop="delFlag">
<el-input v-model="form.delFlag" placeholder="请输入有效标识0有效1无效" />
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input v-model="form.createUserId" placeholder="请输入创建人ID" />
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input v-model="form.updateUserId" placeholder="请输入修改人ID" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listSign, getSign, delSign, addSign, updateSign } from "@/api/account/sign";
export default {
name: "Sign",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
signList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
memberUid: null,
createDay: null,
createUserId: null,
updateUserId: null
},
//
form: {},
//
rules: {
createDay: [
{ required: true, message: "签到日期不能为空", trigger: "blur" }
],
createTime: [
{ required: true, message: "创建时间不能为空", trigger: "blur" }
],
updateTime: [
{ required: true, message: "修改时间不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "有效标识0有效1无效不能为空", trigger: "blur" }
],
createUserId: [
{ required: true, message: "创建人ID不能为空", trigger: "blur" }
],
updateUserId: [
{ required: true, message: "修改人ID不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询会员签到记录列表 */
getList() {
this.loading = true;
listSign(this.queryParams).then(response => {
this.signList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
uid: null,
memberUid: null,
createDay: null,
createTime: null,
updateTime: null,
delFlag: null,
createUserId: null,
updateUserId: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.uid)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加会员签到记录";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const uid = row.uid || this.ids
getSign(uid).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改会员签到记录";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.uid != null) {
updateSign(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addSign(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const uids = row.uid || this.ids;
this.$modal.confirm('是否确认删除会员签到记录编号为"' + uids + '"的数据项?').then(function() {
return delSign(uids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('account/sign/export', {
...this.queryParams
}, `sign_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,423 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="微信unionID" prop="unionId">
<el-input
v-model="queryParams.unionId"
placeholder="请输入微信unionID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="微信openID" prop="openId">
<el-input
v-model="queryParams.openId"
placeholder="请输入微信openID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入姓名"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="头像url" prop="imageUrl">
<el-input
v-model="queryParams.imageUrl"
placeholder="请输入头像url"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="生日" prop="birthday">
<el-input
v-model="queryParams.birthday"
placeholder="请输入生日"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input
v-model="queryParams.email"
placeholder="请输入邮箱"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="地址" prop="address">
<el-input
v-model="queryParams.address"
placeholder="请输入地址"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号码" prop="phone">
<el-input
v-model="queryParams.phone"
placeholder="请输入手机号码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="城市" prop="city">
<el-input
v-model="queryParams.city"
placeholder="请输入城市"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="地区" prop="area">
<el-input
v-model="queryParams.area"
placeholder="请输入地区"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input
v-model="queryParams.createUserId"
placeholder="请输入创建人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input
v-model="queryParams.updateUserId"
placeholder="请输入修改人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<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>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['account:source:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['account:source:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['account:source:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['account:source:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="sourceList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="会员来源ID" align="center" prop="uid" />
<el-table-column label="微信unionID" align="center" prop="unionId" />
<el-table-column label="微信openID" align="center" prop="openId" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="头像url" align="center" prop="imageUrl" />
<el-table-column label="生日" align="center" prop="birthday" />
<el-table-column label="性别0未知1男2女3保密" align="center" prop="sex" />
<el-table-column label="邮箱" align="center" prop="email" />
<el-table-column label="地址" align="center" prop="address" />
<el-table-column label="手机号码" align="center" prop="phone" />
<el-table-column label="城市" align="center" prop="city" />
<el-table-column label="地区" align="center" prop="area" />
<el-table-column label="创建人ID" align="center" prop="createUserId" />
<el-table-column label="修改人ID" align="center" prop="updateUserId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['account:source:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['account:source:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改会员微信来源信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="微信unionID" prop="unionId">
<el-input v-model="form.unionId" placeholder="请输入微信unionID" />
</el-form-item>
<el-form-item label="微信openID" prop="openId">
<el-input v-model="form.openId" placeholder="请输入微信openID" />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
<el-form-item label="头像url" prop="imageUrl">
<el-input v-model="form.imageUrl" placeholder="请输入头像url" />
</el-form-item>
<el-form-item label="生日" prop="birthday">
<el-input v-model="form.birthday" placeholder="请输入生日" />
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input v-model="form.email" placeholder="请输入邮箱" />
</el-form-item>
<el-form-item label="地址" prop="address">
<el-input v-model="form.address" placeholder="请输入地址" />
</el-form-item>
<el-form-item label="手机号码" prop="phone">
<el-input v-model="form.phone" placeholder="请输入手机号码" />
</el-form-item>
<el-form-item label="城市" prop="city">
<el-input v-model="form.city" placeholder="请输入城市" />
</el-form-item>
<el-form-item label="地区" prop="area">
<el-input v-model="form.area" placeholder="请输入地区" />
</el-form-item>
<el-form-item label="有效标识0有效1无效" prop="delFlag">
<el-input v-model="form.delFlag" placeholder="请输入有效标识0有效1无效" />
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input v-model="form.createUserId" placeholder="请输入创建人ID" />
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input v-model="form.updateUserId" placeholder="请输入修改人ID" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listSource, getSource, delSource, addSource, updateSource } from "@/api/account/source";
export default {
name: "Source",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
sourceList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
unionId: null,
openId: null,
name: null,
imageUrl: null,
birthday: null,
sex: null,
email: null,
address: null,
phone: null,
city: null,
area: null,
createUserId: null,
updateUserId: null
},
//
form: {},
//
rules: {
createTime: [
{ required: true, message: "创建时间不能为空", trigger: "blur" }
],
updateTime: [
{ required: true, message: "更新时间不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "有效标识0有效1无效不能为空", trigger: "blur" }
],
createUserId: [
{ required: true, message: "创建人ID不能为空", trigger: "blur" }
],
updateUserId: [
{ required: true, message: "修改人ID不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询会员微信来源信息列表 */
getList() {
this.loading = true;
listSource(this.queryParams).then(response => {
this.sourceList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
uid: null,
unionId: null,
openId: null,
name: null,
imageUrl: null,
birthday: null,
sex: null,
email: null,
address: null,
phone: null,
city: null,
area: null,
createTime: null,
updateTime: null,
delFlag: null,
createUserId: null,
updateUserId: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.uid)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加会员微信来源信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const uid = row.uid || this.ids
getSource(uid).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改会员微信来源信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.uid != null) {
updateSource(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addSource(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const uids = row.uid || this.ids;
this.$modal.confirm('是否确认删除会员微信来源信息编号为"' + uids + '"的数据项?').then(function() {
return delSource(uids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('account/source/export', {
...this.queryParams
}, `source_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,322 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="标签名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入标签名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="标签备注" prop="mark">
<el-input
v-model="queryParams.mark"
placeholder="请输入标签备注"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="标签组ID" prop="tagGroupUid">
<el-input
v-model="queryParams.tagGroupUid"
placeholder="请输入标签组ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input
v-model="queryParams.createUserId"
placeholder="请输入创建人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input
v-model="queryParams.updateUserId"
placeholder="请输入修改人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<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>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['account:tag:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['account:tag:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['account:tag:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['account:tag:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="tagList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="标签ID" align="center" prop="uid" />
<el-table-column label="标签名称" align="center" prop="name" />
<el-table-column label="标签备注" align="center" prop="mark" />
<el-table-column label="标签组ID" align="center" prop="tagGroupUid" />
<el-table-column label="创建人ID" align="center" prop="createUserId" />
<el-table-column label="修改人ID" align="center" prop="updateUserId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['account:tag:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['account:tag:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改会员标签对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="标签名称" prop="name">
<el-input v-model="form.name" placeholder="请输入标签名称" />
</el-form-item>
<el-form-item label="标签备注" prop="mark">
<el-input v-model="form.mark" placeholder="请输入标签备注" />
</el-form-item>
<el-form-item label="标签组ID" prop="tagGroupUid">
<el-input v-model="form.tagGroupUid" placeholder="请输入标签组ID" />
</el-form-item>
<el-form-item label="有效标识0有效1无效" prop="delFlag">
<el-input v-model="form.delFlag" placeholder="请输入有效标识0有效1无效" />
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input v-model="form.createUserId" placeholder="请输入创建人ID" />
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input v-model="form.updateUserId" placeholder="请输入修改人ID" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listTag, getTag, delTag, addTag, updateTag } from "@/api/account/tag";
export default {
name: "Tag",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
tagList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
name: null,
mark: null,
tagGroupUid: null,
createUserId: null,
updateUserId: null
},
//
form: {},
//
rules: {
createTime: [
{ required: true, message: "创建时间不能为空", trigger: "blur" }
],
updateTime: [
{ required: true, message: "更新时间不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "有效标识0有效1无效不能为空", trigger: "blur" }
],
createUserId: [
{ required: true, message: "创建人ID不能为空", trigger: "blur" }
],
updateUserId: [
{ required: true, message: "修改人ID不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询会员标签列表 */
getList() {
this.loading = true;
listTag(this.queryParams).then(response => {
this.tagList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
uid: null,
name: null,
mark: null,
tagGroupUid: null,
createTime: null,
updateTime: null,
delFlag: null,
createUserId: null,
updateUserId: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.uid)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加会员标签";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const uid = row.uid || this.ids
getTag(uid).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改会员标签";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.uid != null) {
updateTag(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addTag(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const uids = row.uid || this.ids;
this.$modal.confirm('是否确认删除会员标签编号为"' + uids + '"的数据项?').then(function() {
return delTag(uids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('account/tag/export', {
...this.queryParams
}, `tag_${new Date().getTime()}.xlsx`)
}
}
};
</script>

File diff suppressed because it is too large Load Diff

320
src/views/sign/index.vue Normal file
View File

@ -0,0 +1,320 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="用户ID" prop="memberUid">
<el-input
v-model="queryParams.memberUid"
placeholder="请输入用户ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="签到日期" prop="createDay">
<el-date-picker clearable
v-model="queryParams.createDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择签到日期">
</el-date-picker>
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input
v-model="queryParams.createUserId"
placeholder="请输入创建人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input
v-model="queryParams.updateUserId"
placeholder="请输入修改人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<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>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['account:sign:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['account:sign:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['account:sign:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['account:sign:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="signList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="签到记录ID" align="center" prop="uid" />
<el-table-column label="用户ID" align="center" prop="memberUid" />
<el-table-column label="签到日期" align="center" prop="createDay" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createDay, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="创建人ID" align="center" prop="createUserId" />
<el-table-column label="修改人ID" align="center" prop="updateUserId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['account:sign:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['account:sign:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改会员签到记录对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="用户ID" prop="memberUid">
<el-input v-model="form.memberUid" placeholder="请输入用户ID" />
</el-form-item>
<el-form-item label="签到日期" prop="createDay">
<el-date-picker clearable
v-model="form.createDay"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择签到日期">
</el-date-picker>
</el-form-item>
<el-form-item label="有效标识0有效1无效" prop="delFlag">
<el-input v-model="form.delFlag" placeholder="请输入有效标识0有效1无效" />
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input v-model="form.createUserId" placeholder="请输入创建人ID" />
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input v-model="form.updateUserId" placeholder="请输入修改人ID" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listSign, getSign, delSign, addSign, updateSign } from "@/api/account/sign";
export default {
name: "Sign",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
signList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
memberUid: null,
createDay: null,
createUserId: null,
updateUserId: null
},
//
form: {},
//
rules: {
createDay: [
{ required: true, message: "签到日期不能为空", trigger: "blur" }
],
createTime: [
{ required: true, message: "创建时间不能为空", trigger: "blur" }
],
updateTime: [
{ required: true, message: "修改时间不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "有效标识0有效1无效不能为空", trigger: "blur" }
],
createUserId: [
{ required: true, message: "创建人ID不能为空", trigger: "blur" }
],
updateUserId: [
{ required: true, message: "修改人ID不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询会员签到记录列表 */
getList() {
this.loading = true;
listSign(this.queryParams).then(response => {
this.signList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
uid: null,
memberUid: null,
createDay: null,
createTime: null,
updateTime: null,
delFlag: null,
createUserId: null,
updateUserId: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.uid)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加会员签到记录";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const uid = row.uid || this.ids
getSign(uid).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改会员签到记录";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.uid != null) {
updateSign(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addSign(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const uids = row.uid || this.ids;
this.$modal.confirm('是否确认删除会员签到记录编号为"' + uids + '"的数据项?').then(function() {
return delSign(uids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('account/sign/export', {
...this.queryParams
}, `sign_${new Date().getTime()}.xlsx`)
}
}
};
</script>

423
src/views/source/index.vue Normal file
View File

@ -0,0 +1,423 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="微信unionID" prop="unionId">
<el-input
v-model="queryParams.unionId"
placeholder="请输入微信unionID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="微信openID" prop="openId">
<el-input
v-model="queryParams.openId"
placeholder="请输入微信openID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入姓名"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="头像url" prop="imageUrl">
<el-input
v-model="queryParams.imageUrl"
placeholder="请输入头像url"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="生日" prop="birthday">
<el-input
v-model="queryParams.birthday"
placeholder="请输入生日"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input
v-model="queryParams.email"
placeholder="请输入邮箱"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="地址" prop="address">
<el-input
v-model="queryParams.address"
placeholder="请输入地址"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号码" prop="phone">
<el-input
v-model="queryParams.phone"
placeholder="请输入手机号码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="城市" prop="city">
<el-input
v-model="queryParams.city"
placeholder="请输入城市"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="地区" prop="area">
<el-input
v-model="queryParams.area"
placeholder="请输入地区"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input
v-model="queryParams.createUserId"
placeholder="请输入创建人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input
v-model="queryParams.updateUserId"
placeholder="请输入修改人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<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>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['account:source:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['account:source:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['account:source:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['account:source:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="sourceList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="会员来源ID" align="center" prop="uid" />
<el-table-column label="微信unionID" align="center" prop="unionId" />
<el-table-column label="微信openID" align="center" prop="openId" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="头像url" align="center" prop="imageUrl" />
<el-table-column label="生日" align="center" prop="birthday" />
<el-table-column label="性别0未知1男2女3保密" align="center" prop="sex" />
<el-table-column label="邮箱" align="center" prop="email" />
<el-table-column label="地址" align="center" prop="address" />
<el-table-column label="手机号码" align="center" prop="phone" />
<el-table-column label="城市" align="center" prop="city" />
<el-table-column label="地区" align="center" prop="area" />
<el-table-column label="创建人ID" align="center" prop="createUserId" />
<el-table-column label="修改人ID" align="center" prop="updateUserId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['account:source:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['account:source:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改会员微信来源信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="微信unionID" prop="unionId">
<el-input v-model="form.unionId" placeholder="请输入微信unionID" />
</el-form-item>
<el-form-item label="微信openID" prop="openId">
<el-input v-model="form.openId" placeholder="请输入微信openID" />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
<el-form-item label="头像url" prop="imageUrl">
<el-input v-model="form.imageUrl" placeholder="请输入头像url" />
</el-form-item>
<el-form-item label="生日" prop="birthday">
<el-input v-model="form.birthday" placeholder="请输入生日" />
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input v-model="form.email" placeholder="请输入邮箱" />
</el-form-item>
<el-form-item label="地址" prop="address">
<el-input v-model="form.address" placeholder="请输入地址" />
</el-form-item>
<el-form-item label="手机号码" prop="phone">
<el-input v-model="form.phone" placeholder="请输入手机号码" />
</el-form-item>
<el-form-item label="城市" prop="city">
<el-input v-model="form.city" placeholder="请输入城市" />
</el-form-item>
<el-form-item label="地区" prop="area">
<el-input v-model="form.area" placeholder="请输入地区" />
</el-form-item>
<el-form-item label="有效标识0有效1无效" prop="delFlag">
<el-input v-model="form.delFlag" placeholder="请输入有效标识0有效1无效" />
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input v-model="form.createUserId" placeholder="请输入创建人ID" />
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input v-model="form.updateUserId" placeholder="请输入修改人ID" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listSource, getSource, delSource, addSource, updateSource } from "@/api/account/source";
export default {
name: "Source",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
sourceList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
unionId: null,
openId: null,
name: null,
imageUrl: null,
birthday: null,
sex: null,
email: null,
address: null,
phone: null,
city: null,
area: null,
createUserId: null,
updateUserId: null
},
//
form: {},
//
rules: {
createTime: [
{ required: true, message: "创建时间不能为空", trigger: "blur" }
],
updateTime: [
{ required: true, message: "更新时间不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "有效标识0有效1无效不能为空", trigger: "blur" }
],
createUserId: [
{ required: true, message: "创建人ID不能为空", trigger: "blur" }
],
updateUserId: [
{ required: true, message: "修改人ID不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询会员微信来源信息列表 */
getList() {
this.loading = true;
listSource(this.queryParams).then(response => {
this.sourceList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
uid: null,
unionId: null,
openId: null,
name: null,
imageUrl: null,
birthday: null,
sex: null,
email: null,
address: null,
phone: null,
city: null,
area: null,
createTime: null,
updateTime: null,
delFlag: null,
createUserId: null,
updateUserId: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.uid)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加会员微信来源信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const uid = row.uid || this.ids
getSource(uid).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改会员微信来源信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.uid != null) {
updateSource(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addSource(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const uids = row.uid || this.ids;
this.$modal.confirm('是否确认删除会员微信来源信息编号为"' + uids + '"的数据项?').then(function() {
return delSource(uids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('account/source/export', {
...this.queryParams
}, `source_${new Date().getTime()}.xlsx`)
}
}
};
</script>

322
src/views/tag/index.vue Normal file
View File

@ -0,0 +1,322 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="标签名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入标签名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="标签备注" prop="mark">
<el-input
v-model="queryParams.mark"
placeholder="请输入标签备注"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="标签组ID" prop="tagGroupUid">
<el-input
v-model="queryParams.tagGroupUid"
placeholder="请输入标签组ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input
v-model="queryParams.createUserId"
placeholder="请输入创建人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input
v-model="queryParams.updateUserId"
placeholder="请输入修改人ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<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>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['account:tag:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['account:tag:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['account:tag:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['account:tag:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="tagList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="标签ID" align="center" prop="uid" />
<el-table-column label="标签名称" align="center" prop="name" />
<el-table-column label="标签备注" align="center" prop="mark" />
<el-table-column label="标签组ID" align="center" prop="tagGroupUid" />
<el-table-column label="创建人ID" align="center" prop="createUserId" />
<el-table-column label="修改人ID" align="center" prop="updateUserId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['account:tag:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['account:tag:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改会员标签对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="标签名称" prop="name">
<el-input v-model="form.name" placeholder="请输入标签名称" />
</el-form-item>
<el-form-item label="标签备注" prop="mark">
<el-input v-model="form.mark" placeholder="请输入标签备注" />
</el-form-item>
<el-form-item label="标签组ID" prop="tagGroupUid">
<el-input v-model="form.tagGroupUid" placeholder="请输入标签组ID" />
</el-form-item>
<el-form-item label="有效标识0有效1无效" prop="delFlag">
<el-input v-model="form.delFlag" placeholder="请输入有效标识0有效1无效" />
</el-form-item>
<el-form-item label="创建人ID" prop="createUserId">
<el-input v-model="form.createUserId" placeholder="请输入创建人ID" />
</el-form-item>
<el-form-item label="修改人ID" prop="updateUserId">
<el-input v-model="form.updateUserId" placeholder="请输入修改人ID" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listTag, getTag, delTag, addTag, updateTag } from "@/api/account/tag";
export default {
name: "Tag",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
tagList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
name: null,
mark: null,
tagGroupUid: null,
createUserId: null,
updateUserId: null
},
//
form: {},
//
rules: {
createTime: [
{ required: true, message: "创建时间不能为空", trigger: "blur" }
],
updateTime: [
{ required: true, message: "更新时间不能为空", trigger: "blur" }
],
delFlag: [
{ required: true, message: "有效标识0有效1无效不能为空", trigger: "blur" }
],
createUserId: [
{ required: true, message: "创建人ID不能为空", trigger: "blur" }
],
updateUserId: [
{ required: true, message: "修改人ID不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询会员标签列表 */
getList() {
this.loading = true;
listTag(this.queryParams).then(response => {
this.tagList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
uid: null,
name: null,
mark: null,
tagGroupUid: null,
createTime: null,
updateTime: null,
delFlag: null,
createUserId: null,
updateUserId: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.uid)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加会员标签";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const uid = row.uid || this.ids
getTag(uid).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改会员标签";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.uid != null) {
updateTag(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addTag(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const uids = row.uid || this.ids;
this.$modal.confirm('是否确认删除会员标签编号为"' + uids + '"的数据项?').then(function() {
return delTag(uids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('account/tag/export', {
...this.queryParams
}, `tag_${new Date().getTime()}.xlsx`)
}
}
};
</script>