Browse Source

1.0.0:完善user

master
penny 4 years ago
parent
commit
575f6d8d47
  1. 9
      src/api/img/banner.js
  2. 53
      src/api/img/tiktokUser.js
  3. 13
      src/router/index.js
  4. 314
      src/views/img/banner/index.vue
  5. 543
      src/views/img/tiktokUser/index.vue
  6. 5
      src/views/img/type/index.vue
  7. 2
      src/views/login.vue

9
src/api/img/banner.js

@ -52,3 +52,12 @@ export function changeStatus(data) {
}) })
} }
// 图片上传
export function uploadImg(data) {
return request({
url: '/file/upload',
method: 'post' ,
data: data
})
}

53
src/api/img/tiktokUser.js

@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询tiktok用户分页列表
export function listTiktokUser(data) {
return request({
url: '/img/img/tiktokUser/page',
method: 'post',
data: data
})
}
// 新增tiktok用户
export function addTiktokUser(data) {
return request({
url: '/img/img/tiktokUser/insert',
method: 'post' ,
data: data
})
}
// 修改tiktok用户
export function editTiktokUser(data) {
return request({
url: '/img/img/tiktokUser/update',
method: 'post' ,
data: data
})
}
// 删除tiktok用户
export function delTiktokUser(ids) {
return request({
url: '/img/img/tiktokUser/delete/' + ids,
method: 'delete'
})
}
// 获取tiktok用户详情
export function getTiktokUserDetails(id) {
return request({
url: '/img/img/tiktokUser/details/' + id,
method: 'get'
})
}
// 变更类型显示状态
export function changeStatus(data) {
return request({
url: '/img/img/tiktokUser/changeStatus',
method: 'post' ,
data: data
})
}

13
src/router/index.js

@ -113,6 +113,19 @@ export const constantRoutes = [
} }
] ]
}, },
{
path: '/tiktokUser',
component: Layout,
redirect: 'index',
children: [
{
path: 'index',
component: () => import('@/views/img/tiktokUser'),
name: 'TiktokUser',
meta: { title: 'tiktokUser', icon: 'dashboard', affix: true }
}
]
},
{ {
path: '/user', path: '/user',
component: Layout, component: Layout,

314
src/views/img/banner/index.vue

@ -1,37 +1,37 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-row :gutter="20"> <el-row :gutter="20">
<!--用户数据--> <!--banner数据-->
<el-col :span="20" :xs="24"> <el-col :span="20" :xs="24">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
<el-form-item label="用户名称" prop="userName"> <el-form-item label="banner名称" prop="bannerName">
<el-input <el-input
v-model="queryParams.userName" v-model="queryParams.bannerName"
placeholder="请输入用户名称" placeholder="请输入banner名称"
clearable clearable
style="width: 240px" style="width: 200px"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="手机号码" prop="phonenumber"> <el-form-item label="来源平台" prop="source" label-width="80px">
<el-input <el-select v-model="queryParams.source" placeholder="来源渠道" clearable>
v-model="queryParams.phonenumber" <el-option
placeholder="请输入手机号码" v-for="item in source"
clearable :key="item.value"
style="width: 240px" :label="item.label"
@keyup.enter.native="handleQuery" :value="item.value"
/> />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="创建时间"> <el-form-item label="是否显示" prop="isShow" label-width="80px">
<el-date-picker <el-select v-model="queryParams.isShow" placeholder="是否显示" clearable>
v-model="dateRange" <el-option
style="width: 240px" v-for="item in isShow"
value-format="yyyy-MM-dd" :key="item.value"
type="daterange" :label="item.label"
range-separator="-" :value="item.value"
start-placeholder="开始日期" />
end-placeholder="结束日期" </el-select>
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@ -47,20 +47,9 @@
icon="el-icon-plus" icon="el-icon-plus"
size="mini" size="mini"
@click="handleAdd" @click="handleAdd"
v-hasPermi="['system:user:add']" v-hasPermi="['img:banner:add']"
>新增</el-button> >新增</el-button>
</el-col> </el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:user:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="danger" type="danger"
@ -69,7 +58,7 @@
size="mini" size="mini"
:disabled="multiple" :disabled="multiple"
@click="handleDelete" @click="handleDelete"
v-hasPermi="['system:user:remove']" v-hasPermi="['img:banner:remove']"
>删除</el-button> >删除</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
@ -77,12 +66,21 @@
<el-table v-loading="loading" :data="bannerList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="bannerList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center" /> <el-table-column type="selection" width="50" align="center" />
<el-table-column label="编号" align="center" key="id" prop="userId" v-if="columns[0].visible" /> <el-table-column label="编号" align="center" key="id" prop="id" v-if="columns[0].visible" />
<el-table-column label="banner名称" align="center" key="bannerName" prop="bannerName" v-if="columns[1].visible" :show-overflow-tooltip="true" /> <el-table-column label="banner名称" align="center" key="bannerName" prop="bannerName" v-if="columns[1].visible" :show-overflow-tooltip="true" width="150"/>
<el-table-column label="跳转地址" align="center" key="bannerUrl" prop="bannerUrl" v-if="columns[2].visible" :show-overflow-tooltip="true" /> <el-table-column label="跳转地址" align="center" key="bannerUrl" prop="bannerUrl" v-if="columns[2].visible" :show-overflow-tooltip="true" />
<el-table-column label="来源平台" align="center" key="source" prop="source" v-if="columns[3].visible" /> <el-table-column label="来源平台" align="center" key="source" prop="source" v-if="columns[3].visible">
<el-table-column label="banner图片" align="center" key="bannerImg" prop="bannerImg" v-if="columns[4].visible" width="120" /> <template slot-scope="scope">
<el-table-column label="是否显示" align="center" key="isShow" v-if="columns[5].visible"> {{scope.row.source == '0' ? "通用" : scope.row.source == '1' ? "抖音": scope.row.source == '2' ? "快手": scope.row.source == '3' ? "微信": ''}}
</template>
</el-table-column>
<el-table-column label="banner图片" align="center" key="bannerImg" prop="bannerImg" v-if="columns[4].visible" width="120">
<template slot-scope="scope">
<el-image :src="scope.row.bannerImg" :preview-src-list="bigImgList" @click="getBigImg(scope.row)" style="width: 160px; height: 60px"/>
</template>
</el-table-column>
<el-table-column label="序号" align="center" key="sort" prop="sort" v-if="columns[5].visible"/>
<el-table-column label="是否显示" align="center" key="isShow" v-if="columns[6].visible">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch
v-model="scope.row.isShow" v-model="scope.row.isShow"
@ -92,43 +90,37 @@
></el-switch> ></el-switch>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160"> <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[7].visible" width="160">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ parseTime(scope.row.createTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="更新时间" align="center" prop="updateTime" v-if="columns[8].visible" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.updateTime) }}</span>
</template>
</el-table-column>
<el-table-column <el-table-column
label="操作" label="操作"
align="center" align="center"
width="160" width="160"
class-name="small-padding fixed-width" class-name="small-padding fixed-width"
> >
<template slot-scope="scope" v-if="scope.row.userId !== 1"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['system:user:edit']" v-hasPermi="['img:banner:edit']"
>修改</el-button> >修改</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-delete" icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['system:user:remove']" v-hasPermi="['img:banner:remove']"
>删除</el-button> >删除</el-button>
<el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:user:resetPwd', 'system:user:edit']">
<span class="el-dropdown-link">
<i class="el-icon-d-arrow-right el-icon--right"></i>更多
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="handleResetPwd" icon="el-icon-key"
v-hasPermi="['system:user:resetPwd']">重置密码</el-dropdown-item>
<el-dropdown-item command="handleAuthRole" icon="el-icon-circle-check"
v-hasPermi="['system:user:edit']">分配角色</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -143,76 +135,70 @@
</el-col> </el-col>
</el-row> </el-row>
<!-- 添加或修改用户配置对话框 --> <!-- 添加或修改banner对话框 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="用户昵称" prop="nickName"> <el-form-item label="banner名称" prop="bannerName">
<el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" /> <el-input v-model="form.bannerName" placeholder="请输入banner名称" maxlength="30" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="手机号码" prop="phonenumber"> <el-form-item label="跳转地址" prop="bannerUrl">
<el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" /> <el-input v-model="form.bannerUrl" placeholder="请输入跳转地址" maxlength="100" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮箱" prop="email">
<el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName"> <el-form-item label="来源平台" prop="source" label-width="80px">
<el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" /> <el-select v-model="form.source" placeholder="来源平台" clearable>
<el-option
v-for="item in source"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> <el-col :span="15">
</el-form> <el-form-item label="banner上传" prop="bannerImg">
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 用户导入对话框 -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload <el-upload
ref="upload" ref="upload"
:action="upload.url"
:limit="1" :limit="1"
accept=".xlsx, .xls" accept=".jpg, .jpeg, .png"
:headers="upload.headers" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess" :on-success="handleFileSuccess"
:auto-upload="false" :file-list="fileList"
drag :auto-upload="true"
> list-type="picture"
drag>
<i class="el-icon-upload"></i> <i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div> <div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip"> <div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip"> <span>仅允许上传jpg,jpeg,png格式图片</span>
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
</div>
<span>仅允许导入xlsxlsx格式文件</span>
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
</div> </div>
</el-upload> </el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="upload.open = false"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { listBanner, addBanner, editBanner, delBanner, getBannerDetails, changeStatus } from "@/api/img/banner"; import { listBanner, addBanner, editBanner, delBanner, getBannerDetails, changeStatus, uploadImg } from "@/api/img/banner";
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
export default { export default {
@ -235,87 +221,74 @@ export default {
bannerList: null, bannerList: null,
// //
title: "", title: "",
//
deptOptions: undefined,
// //
open: false, open: false,
//
deptName: undefined,
//
initPassword: undefined,
// //
dateRange: [], dateRange: [],
// //
postOptions: [], fileList:[],
// //
roleOptions: [], bigImgList:[],
//
source: [
{ value:'0',label:'通用'},
{ value:'1',label:'抖音'},
{ value:'2',label:'快手'},
{ value:'3',label:'微信'},
],
//
isShow: [
{ value: '0', label: ``},
{ value: '1', label: ``}
],
// //
form: {}, form: {},
defaultProps: { defaultProps: {
children: "children", children: "children",
label: "label" label: "label"
}, },
// //
upload: { upload: {
// //
open: false, open: false,
// //
title: "", title: "",
// //
isUploading: false, isUploading: false,
//
updateSupport: 0,
// //
headers: { Authorization: "Bearer " + getToken() }, headers: { Authorization: "Bearer " + getToken() },
// //
url: process.env.VUE_APP_BASE_API + "/system/user/importData" url: process.env.VUE_APP_BASE_API + "/file/upload" //http://localhost:7010/file/upload
}, },
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
userName: undefined, bannerName: undefined,
phonenumber: undefined, source: undefined,
status: undefined, isShow: undefined
deptId: undefined
}, },
// //
columns: [ columns: [
{ key: 0, label: `用户编号`, visible: true }, { key: 0, label: `编号`, visible: true },
{ key: 1, label: `用户名称`, visible: true }, { key: 1, label: `banner名称`, visible: true },
{ key: 2, label: `用户昵称`, visible: true }, { key: 2, label: `跳转地址`, visible: true },
{ key: 3, label: `部门`, visible: true }, { key: 3, label: `来源平台`, visible: true },
{ key: 4, label: `手机号码`, visible: true }, { key: 4, label: `banner图片`, visible: true },
{ key: 5, label: `状态`, visible: true }, { key: 5, label: `序号`, visible: true },
{ key: 6, label: `创建时间`, visible: true } { key: 6, label: `是否显示`, visible: true },
{ key: 7, label: `创建时间`, visible: true },
{ key: 8, label: `更新时间`, visible: true }
], ],
// //
rules: { rules: {
userName: [ bannerName: [
{ required: true, message: "用户名称不能为空", trigger: "blur" }, { required: true, message: "banner名称不能为空", trigger: "blur" },
{ min: 2, max: 20, message: '用户名称长度必须介于 2 和 20 之间', trigger: 'blur' } { min: 2, max: 20, message: 'banner名称长度必须介于 2 和 20 之间', trigger: 'blur' }
],
nickName: [
{ required: true, message: "用户昵称不能为空", trigger: "blur" }
],
password: [
{ required: true, message: "用户密码不能为空", trigger: "blur" },
{ min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
], ],
email: [ bannerUrl: [
{ { required: true, message: "bannerUrl不能为空", trigger: "blur" },
type: "email",
message: "请输入正确的邮箱地址",
trigger: ["blur", "change"]
}
], ],
phonenumber: [
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码",
trigger: "blur"
}
]
} }
}; };
}, },
@ -341,8 +314,12 @@ export default {
// //
handleStatusChange(row) { handleStatusChange(row) {
let text = row.isShow === "1" ? "启用" : "停用"; let text = row.isShow === "1" ? "启用" : "停用";
this.$modal.confirm('确认要"' + text + '""' + row.id + '"banner吗?').then(function() { this.$modal.confirm('确认要' + text + 'id为' + row.id + '的banner吗?').then(function() {
return changeUserStatus(row.id, row.isShow); let data = {
id: row.id,
status: row.isShow
}
return changeStatus(data);
}).then(() => { }).then(() => {
this.$modal.msgSuccess(text + "成功"); this.$modal.msgSuccess(text + "成功");
}).catch(function() { }).catch(function() {
@ -357,16 +334,10 @@ export default {
// //
reset() { reset() {
this.form = { this.form = {
userId: undefined, bannerName: undefined,
deptId: undefined, bannerUrl: undefined,
userName: undefined, bannerImg: undefined,
nickName: undefined, source: undefined,
password: undefined,
phonenumber: undefined,
email: undefined,
sex: undefined,
status: "0",
remark: undefined,
}; };
this.resetForm("form"); this.resetForm("form");
}, },
@ -387,22 +358,26 @@ export default {
this.single = selection.length != 1; this.single = selection.length != 1;
this.multiple = !selection.length; this.multiple = !selection.length;
}, },
/** 查看大图 */
getBigImg(row){
this.bigImgList.push(row.bannerImg)
},
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.reset(); this.reset();
getUser().then(response => {
this.open = true; this.open = true;
this.title = "添加banner"; this.title = "添加banner";
}); this.fileList = []
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
const id = row.id || this.ids; const id = row.id || this.ids;
getUser(id).then(response => { getBannerDetails(id).then(response => {
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;
this.title = "修改banner"; this.title = "修改banner";
this.fileList = []
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */
@ -410,13 +385,13 @@ export default {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.id != undefined) { if (this.form.id != undefined) {
updateUser(this.form).then(response => { editBanner(this.form).then(response => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.open = false; this.open = false;
this.getList(); this.getList();
}); });
} else { } else {
addUser(this.form).then(response => { addBanner(this.form).then(response => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
this.open = false; this.open = false;
this.getList(); this.getList();
@ -428,8 +403,8 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const id = row.id || this.ids; const id = row.id || this.ids;
this.$modal.confirm('是否确认删除用户编号为"' + id + '"的数据项?').then(function() { this.$modal.confirm('是否确认删除编号为"' + id + '"的banner?').then(function() {
return delUser(id); return delBanner(id);
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功");
@ -441,15 +416,14 @@ export default {
}, },
// //
handleFileSuccess(response, file, fileList) { handleFileSuccess(response, file, fileList) {
this.form.bannerImg = response.data
this.fileList.url = response.data
this.fileList.name = '图片上传结果'
this.upload.open = false; this.upload.open = false;
this.upload.isUploading = false; this.upload.isUploading = false;
this.$refs.upload.clearFiles(); //this.$refs.upload.clearFiles();
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true }); //this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.data + "</div>", "", { dangerouslyUseHTMLString: true });
this.getList(); //this.getList();
},
//
submitFileForm() {
this.$refs.upload.submit();
} }
} }
}; };

543
src/views/img/tiktokUser/index.vue

@ -0,0 +1,543 @@
<template>
<div class="app-container">
<el-row :gutter="20">
<!--用户数据-->
<el-col :span="20" :xs="24">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="70px">
<el-form-item label="用户名称" prop="username">
<el-input
v-model="queryParams.username"
placeholder="请输入用户名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="抖音号" prop="tiktokNumber">
<el-input
v-model="queryParams.tiktokNumber"
placeholder="请输入抖音号"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号" prop="phone">
<el-input
v-model="queryParams.phone"
placeholder="请输入手机号"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="搜索码" prop="scanCode">
<el-input
v-model="queryParams.scanCode"
placeholder="请输入搜索码"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="邀请码" prop="inviteCode">
<el-input
v-model="queryParams.inviteCode"
placeholder="请输入邀请码"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否活跃" prop="isHot">
<el-select v-model="queryParams.isHot" placeholder="是否活跃" clearable>
<el-option
v-for="item in isHot"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="是否为艺术家" prop="isCreator">
<el-select v-model="queryParams.isCreator" placeholder="是否为艺术家" clearable>
<el-option
v-for="item in isCreator"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="是否显示" prop="isShow">
<el-select v-model="queryParams.isShow" placeholder="是否显示" clearable>
<el-option
v-for="item in isShow"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</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="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['img:tiktok:remove']"
>删除</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="编号" align="center" key="id" prop="id" v-if="columns[0].visible" />
<el-table-column label="用户名称" align="center" key="username" prop="username" v-if="columns[1].visible" :show-overflow-tooltip="true" />
<el-table-column label="头像地址" align="center" key="img" prop="img" v-if="columns[2].visible">
<template slot-scope="scope">
<el-image :src="scope.row.img" :preview-src-list="bigImgList" @click="getBigImg(scope.row)" style="width: 50px; height: 50px"/>
</template>
</el-table-column>
<el-table-column label="抖音id" align="center" key="tiktokCode" prop="tiktokCode" v-if="columns[3].visible" :show-overflow-tooltip="true" />
<el-table-column label="抖音号" align="center" key="tiktokNumber" prop="tiktokNumber" v-if="columns[4].visible" :show-overflow-tooltip="true" />
<el-table-column label="手机号码" align="center" key="phone" prop="phone" v-if="columns[5].visible" width="120" />
<el-table-column label="搜索码" align="center" key="scanCode" prop="scanCode" v-if="columns[6].visible"/>
<el-table-column label="邀请码" align="center" key="inviteCode" prop="inviteCode" v-if="columns[7].visible" />
<el-table-column label="个人简介" align="center" key="intro" prop="intro" v-if="columns[8].visible" :show-overflow-tooltip="true" />
<el-table-column label="是否活跃" align="center" key="isHot" prop="isHot" v-if="columns[9].visible">
<template slot-scope="scope">
{{scope.row.isHot == '0' ? "否" : scope.row.isHot == '1' ? "是":''}}
</template>
</el-table-column>
<el-table-column label="是否为艺术家" align="center" key="isCreator" prop="isCreator" v-if="columns[10].visible" width="120">
<template slot-scope="scope">
{{scope.row.isCreator == '0' ? "否" : scope.row.isCreator == '1' ? "是":''}}
</template>
</el-table-column>
<el-table-column label="序号" align="center" key="sort" prop="sort" v-if="columns[11].visible" :show-overflow-tooltip="true" />
<el-table-column label="是否显示" align="center" key="isShow" v-if="columns[12].visible">
<template slot-scope="scope">
<el-switch
v-model="scope.row.isShow"
active-value="1"
inactive-value="0"
@change="handleStatusChange(scope.row)"
></el-switch>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[13].visible" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="更新时间" align="center" prop="updateTime" v-if="columns[14].visible" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.updateTime) }}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
width="160"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
v-if="scope.row.isCreator == '0'"
size="mini"
type="text"
icon="el-icon-plus"
@click="handleAdd(scope.row)"
v-hasPermi="['img:tiktok:add']"
>升级</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['img:tiktok:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['img:tiktok: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-col>
</el-row>
<!-- 升级艺术家对话框 -->
<el-dialog :title="title" :visible.sync="updateOpen" width="600px" append-to-body>
<el-form ref="updateForm" :model="updateForm" :rules="rules" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item label="抖音号" prop="tiktokNum">
<el-input v-model="updateForm.tiktokNum" placeholder="请输入抖音号" maxlength="40" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="手机号" prop="phone">
<el-input v-model="updateForm.phone" placeholder="请输入手机号" maxlength="11" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="搜索码" prop="scanCode">
<el-input v-model="updateForm.scanCode" placeholder="请输入搜索码" maxlength="50" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邀请码" prop="inviteCode">
<el-input v-model="updateForm.inviteCode" placeholder="请输入邀请码" maxlength="50" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="个人简介">
<el-input v-model="updateForm.intro" type="textarea" placeholder="请输入个人简介"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="updateCreator"> </el-button>
<el-button @click="cancelUpdate"> </el-button>
</div>
</el-dialog>
<!-- 修改艺术家对话框 -->
<el-dialog :title="title" :visible.sync="editOpen" width="600px" append-to-body>
<el-form ref="editForm" :model="editForm" :rules="rules" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item label="抖音号" prop="tiktokNum">
<el-input v-model="editForm.tiktokNum" placeholder="请输入抖音号" maxlength="40" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="手机号" prop="phone">
<el-input v-model="editForm.phone" placeholder="请输入手机号" maxlength="11" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="搜索码" prop="scanCode">
<el-input v-model="editForm.scanCode" placeholder="请输入搜索码" maxlength="50" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="个人简介">
<el-input v-model="editForm.intro" type="textarea" placeholder="请输入个人简介"></el-input>
</el-form-item>
</el-col>
<el-col :span="15">
<el-form-item label="头像上传" prop="img">
<el-upload
ref="upload"
:action="upload.url"
:limit="1"
accept=".jpg, .jpeg, .png"
:headers="upload.headers"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:file-list="fileList"
:auto-upload="true"
list-type="picture"
drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许上传jpg,jpeg,png格式图片</span>
</div>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="editCreator"> </el-button>
<el-button @click="cancelEdit"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listTiktokUser, addTiktokUser, editTiktokUser, delTiktokUser, getTiktokUserDetails, changeStatus } from "@/api/img/tiktokUser";
import { getToken } from "@/utils/auth";
export default {
name: "TikTokUser",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
userList: null,
//
title: "",
//
updateOpen: false,
//
editOpen: false,
//
fileList:[],
//
isHot:[
{ value: '0', label: '否'},
{ value: '1', label: '是'}
],
//
isCreator:[
{ value: '0', label: '否'},
{ value: '1', label: '是'}
],
//
isShow: [
{ value: '0', label: '否'},
{ value: '1', label: '是'}
],
//
bigImgList:[],
//
dateRange: [],
//
updateForm: {},
//
editForm: {},
defaultProps: {
children: "children",
label: "label"
},
//
upload: {
//
open: false,
//
title: "",
//
isUploading: false,
//
headers: { Authorization: "Bearer " + getToken() },
//
url: process.env.VUE_APP_BASE_API + "/file/upload" //http://localhost:7010/file/upload
},
//
queryParams: {
pageNum: 1,
pageSize: 10,
userName: undefined,
phonenumber: undefined,
status: undefined,
deptId: undefined
},
//
columns: [
{ key: 0, label: `用户编号`, visible: true },
{ key: 1, label: `用户名称`, visible: true },
{ key: 2, label: `头像地址`, visible: true },
{ key: 3, label: `抖音id`, visible: true },
{ key: 4, label: `抖音号`, visible: true },
{ key: 5, label: `手机号码`, visible: true },
{ key: 6, label: `搜索码`, visible: true },
{ key: 7, label: `邀请码`, visible: true },
{ key: 8, label: `个人简介`, visible: true },
{ key: 9, label: `是否活跃`, visible: true },
{ key: 10, label: `是否为艺术家`, visible: true },
{ key: 11, label: `序号`, visible: true },
{ key: 12, label: `是否显示`, visible: true },
{ key: 13, label: `创建时间`, visible: true },
{ key: 14, label: `更新时间`, visible: true }
],
//
rules: {
userName: [
{ required: true, message: "用户名称不能为空", trigger: "blur" },
{ min: 2, max: 20, message: '用户名称长度必须介于 2 和 20 之间', trigger: 'blur' }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询用户列表 */
getList() {
this.loading = true;
listTiktokUser(this.queryParams).then(response => {
this.userList = response.rows;
this.total = response.total;
this.loading = false;
}
);
},
//
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
//
handleNodeClick(data) {
this.queryParams.deptId = data.id;
this.handleQuery();
},
//
handleStatusChange(row) {
let text = row.isShow === "1" ? "启用" : "停用";
this.$modal.confirm('确认要"' + text + '"id为"' + row.id + '"的用户吗?').then(function() {
let data = {
id: row.id,
status: row.isShow
}
return changeStatus(data);
}).then(() => {
this.$modal.msgSuccess(text + "成功");
}).catch(function() {
row.isShow = row.isShow === "0" ? "1" : "0";
});
},
//
cancelUpdate() {
this.updateOpen = false;
this.reset();
},
//
cancelEdit() {
this.editOpen = false;
this.reset();
},
//
reset() {
this.form = {
tiktokNum: undefined,
scanCode: undefined,
inviteCode: undefined,
phone: undefined,
intro: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id);
this.single = selection.length != 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd(row) {
this.reset();
const id = row.id || this.ids;
this.updateForm.id = id;
this.updateOpen = true;
this.title = "升级艺术家";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getTiktokUserDetails(id).then(response => {
this.editForm = response.data;
this.editOpen = true;
this.title = "修改艺术家";
});
},
/** 升级艺术家 */
updateCreator:function(){
this.$refs["updateForm"].validate(valid =>{
if(valid) {
addTiktokUser(this.updateForm).then(response => {
this.$modal.msgSuccess("升级成功");
this.updateOpen = false;
this.getList();
});
}
})
},
/** 修改艺术家 */
editCreator:function(){
this.$refs["editForm"].validate(valid =>{
if(valid) {
editTiktokUser(this.editForm).then(response => {
this.$modal.msgSuccess("修改成功");
this.editOpen = false;
this.getList();
});
}
})
},
/** 删除按钮操作 */
handleDelete(row) {
const id = row.id || this.ids;
this.$modal.confirm('是否确认删除编号为"' + id + '"的用户吗?').then(function() {
return delTiktokUser(id);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
//
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
//
handleFileSuccess(response, file, fileList) {
this.form.bannerImg = response.data
this.fileList.url = response.data
this.fileList.name = '图片上传结果'
this.upload.open = false;
this.upload.isUploading = false;
}
}
};
</script>

5
src/views/img/type/index.vue

@ -166,9 +166,10 @@ export default {
children: "children", children: "children",
label: "label" label: "label"
}, },
//
isShow: [ isShow: [
{ value: 0, label: ``}, { value: '0', label: '否'},
{ value: 1, label: ``} { value: '1', label: '是'}
], ],
// //
queryParams: { queryParams: {

2
src/views/login.vue

@ -1,7 +1,7 @@
<template> <template>
<div class="login"> <div class="login">
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
<h3 class="title">若依后台管理系统</h3> <h3 class="title">bnyer后台管理系统</h3>
<el-form-item prop="username"> <el-form-item prop="username">
<el-input <el-input
v-model="loginForm.username" v-model="loginForm.username"

Loading…
Cancel
Save