Compare commits

..

26 Commits

Author SHA1 Message Date
liaozetao
7d915d59f3 修复渠道展示问题 2023-11-21 14:57:34 +08:00
liaozetao
8c9af40427 修复跳转类型 2023-11-21 12:02:35 +08:00
liaozetao
d3082e3390 修复开屏跳转类型 2023-11-21 11:57:49 +08:00
liaozetao
35d01b2afd 开屏设置默认开启 2023-11-21 11:54:43 +08:00
liaozetao
5360a54da1 修复闪屏逻辑 2023-11-20 18:44:09 +08:00
liaozetao
f600e089a2 修复上传按钮 2023-11-20 18:34:13 +08:00
liaozetao
365263162b 手机授权页面增加字段 2023-11-20 18:25:55 +08:00
liaozetao
2b326dbaba 上传文件增加遮罩层 2023-11-20 16:20:36 +08:00
liaozetao
f50ba76de7 修改file文件上传判断 2023-11-20 16:11:10 +08:00
liaozetao
2a32c0dbb9 补充 2023-11-20 16:05:25 +08:00
liaozetao
7b7f38d5cb 修复展示类型 2023-11-20 15:38:58 +08:00
liaozetao
1c5f7e927c 判断不允许重复发请求 2023-11-20 14:51:52 +08:00
liaozetao
20ea616755 删除日志 2023-11-20 12:35:56 +08:00
liaozetao
0e3591c1f0 修复按钮展示问题 2023-11-20 12:19:17 +08:00
liaozetao
96e96d09ae 修复上传问题 2023-11-20 12:08:25 +08:00
liaozetao
3e66a6c467 补充 2023-11-20 12:00:51 +08:00
liaozetao
395e3917f8 修改上传逻辑 2023-11-20 11:58:36 +08:00
liaozetao
518842aca2 修復時間格式化 2023-11-20 11:34:20 +08:00
liaozetao
1fea5ed803 修復圖片上傳 2023-11-20 11:19:50 +08:00
liaozetao
091adb4093 修复下拉框字段 2023-11-20 11:14:23 +08:00
liaozetao
99cd6320b6 修复按钮判断 2023-11-20 10:59:07 +08:00
liaozetao
87de178799 修复时间格式化问题 2023-11-20 10:52:30 +08:00
liaozetao
1568ebb36c 新增开屏设置 2023-11-17 17:52:47 +08:00
liaozetao
96871a60ff 新增资源位管理 2023-11-16 14:35:46 +08:00
liaozetao
7383842e7f 去除unmounted 2023-11-14 17:59:51 +08:00
liaozetao
baa2cfcb8c 修复table组件问题 2023-11-14 17:57:20 +08:00
21 changed files with 388 additions and 1260 deletions

1
package-lock.json generated
View File

@@ -42,6 +42,7 @@
"unplugin-auto-import": "^0.16.7",
"unplugin-vue-components": "^0.25.2",
"vue": "^3.2.13",
"webpack-bundle-analyzer": "^4.9.1",
"webpack-cli": "^5.1.4"
}
},

View File

@@ -3,7 +3,7 @@
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "vue-cli-service serve --mode development",
"dev": "vue-cli-service serve --mode development --report",
"build": "vue-cli-service build --mode production",
"lint": "vue-cli-service lint"
},
@@ -42,6 +42,7 @@
"unplugin-auto-import": "^0.16.7",
"unplugin-vue-components": "^0.25.2",
"vue": "^3.2.13",
"webpack-bundle-analyzer": "^4.9.1",
"webpack-cli": "^5.1.4"
}
}

View File

@@ -1,65 +0,0 @@
import request from '@/utils/request';
import qs from 'qs';
// ==================================地区限制====================================
// 地区列表
export const recordPage = query => {
return request({
url: '/admin/ip/region/limit/record/page',
method: 'get',
params: query
});
};
// 加入白名单
export const addWhite = query => {
return request({
url: '/admin/ip/region/limit/record/addWhite',
method: 'get',
params: query
});
};
// 解除限制
export const relieve = query => {
return request({
url: '/admin/ip/region/limit/record/relieve',
method: 'get',
params: query
});
};
// 添加地区访问限制
export const recordSave = query => {
return request({
url: '/admin/ip/region/limit/record/save',
headers:{"Content-Type": 'application/x-www-form-urlencoded'},
method: 'post',
data: query
});
};
// ==================================访问白名单====================================
// 白名单列表
export const whitePage = query => {
return request({
url: '/admin/ip/region/white/page',
method: 'get',
params: query
});
};
// 移除白名单
export const whiteDel = query => {
return request({
url: '/admin/ip/region/white/del',
method: 'get',
params: query
});
};
// 添加白名单
export const whiteSave = query => {
return request({
url: '/admin/ip/region/white/save',
headers:{"Content-Type": 'application/x-www-form-urlencoded'},
method: 'post',
data: query
});
};

View File

@@ -6,11 +6,3 @@ export function getSysConfList() {
method: 'get'
});
}
export const getConfigValueByKey = query => {
return request({
url: '/admin/sysConf/key',
method: 'get',
params: query,
});
}

View File

@@ -131,12 +131,17 @@ export default {
},
methods: {
getMenu() {
this.parentMenus = getStore({ name: 'parent_menus' });
this.childMenus = getStore({ name: 'child_menus' });
let parentMenus = getStore({ name: 'parent_menus' });
let childMenus = getStore({ name: 'child_menus' });
if (parentMenus && childMenus && parentMenus.length > 0 && childMenus.length > 0) {
this.parentMenus = parentMenus;
this.childMenus = childMenus;
} else {
store.dispatch('getMenu').then(res => {
this.parentMenus = res.parents;
this.childMenus = res.childs;
});
}
},
getChilds(parentId) {
return this.childMenus.filter(v => v.parentid == parentId);
@@ -166,7 +171,9 @@ export default {
parentIds.push(v.id);
});
}
console.log(parentIds);
this.parentMenus = store.getters.parentMenus.filter(v1 => parentIds.filter(v2 => v1.id == v2).length > 0);
this.childMenus = store.getters.childMenus.filter(v1 => parentIds.filter(v2 => v1.parentid == v2).length > 0);
}
}
},

View File

@@ -1,355 +0,0 @@
<template>
<div class="outer">
<div class="search">
<div class="searchLeft">
<span>用户平台ID</span>
<el-input
v-model="userId"
size="default"
placeholder="用户平台ID"
class="input"
></el-input>
</div>
</div>
<!-- 按钮 -->
<div class="buttonBox">
<el-button class="primary" type="primary" size="default" @click="add()"
>新增</el-button
>
<el-button class="primary" type="primary" size="default" @click="search()"
>查询</el-button
>
</div>
<!-- 列表 -->
<el-table
v-loading="loading"
:data="tableData"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column prop="erbanNo" align="center" label="用戶id" />
<el-table-column prop="nick" align="center" label="用戶昵称" />
<el-table-column prop="phone" align="center" label="手机号" />
<el-table-column prop="signTime" align="center" label="注册时间" />
<el-table-column prop="createTime" align="center" label="进入访问限制时间" />
<el-table-column prop="inviteCode" align="center" label="邀请码" />
<el-table-column prop="signDeviceId" align="center" label="注册设备" />
<el-table-column prop="deviceIds" align="center" label="访问设备" />
<el-table-column prop="lastCheckIpRegion" align="center" label="最近一次访问地点" />
<el-table-column align="center" label="平台"
><template v-slot="scope">{{
scope.row.os == "android" ? "安卓" : "苹果"
}}</template>
</el-table-column>
<el-table-column align="center" label="sim卡信息" width="150"
><template v-slot="scope">
<div v-html="tableArrFormat(scope.row)"></div>
</template>
</el-table-column>
<el-table-column align="center" label="系统语言" width="200">
<template v-slot="scope">
{{langFormat(scope.row.lang)}}
</template>
</el-table-column>
<el-table-column align="center" label="操作" width="300">
<template v-slot="scope">
<el-button
@click="unfreeze(scope.row)"
class="primary"
type="primary"
size="default"
>解除限制</el-button
>
<el-button
@click="addWhite(scope.row)"
class="primary"
type="primary"
size="default"
>加入白名单</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
style="margin-top: 10px"
class="paginationClass"
v-model:current-page="currentPage"
v-model:page-size="pageSize"
:page-sizes="[10, 20, 30, 40, 50, 100, 200, 300, 400, 500]"
:small="small"
:disabled="disabled"
:background="background"
layout="sizes, prev, pager, next"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
<!-- 公共二次确认删除弹窗 -->
<el-dialog v-model="delDialog" title="提示" width="30%" center>
<span> {{ delDialogText }}</span>
<template #footer>
<span class="dialog-footer">
<el-button @click="delDialog = false">取消</el-button>
<el-button type="primary" @click="sureClick(val, type)"> 确认 </el-button>
</span>
</template>
</el-dialog>
<!-- 添加弹窗 -->
<el-dialog v-model="addSure" title="提示" width="30%" center>
<div class="selectBox">
<span class="left" style="margin-right: 20px">用户ID</span>
<el-input
v-model="selectUserId"
size="default"
placeholder="用户平台ID"
class="right"
style="width: 70%"
></el-input>
</div>
<template #footer>
<span class="dialog-footer">
<el-button @click="addSure = false">取消</el-button>
<el-button type="primary" @click="addSureClick()"> 添加 </el-button>
</span>
</template>
</el-dialog>
</div>
</template>
<script>
import {
recordPage,
addWhite,
relieve,
recordSave,
} from "@/api/AccessRestriction.vue/AccessRestriction.js";
import { ElMessage } from "element-plus";
export default {
name: "AccessRestriction",
data() {
return {
userId: "", //用戶id
loading: false, //列表loading
tableData: [
{
erbanNo: "123123123",
},
], //列表数据
total: 10, //总页数
currentPage: 1, //页码
pageSize: 10, //条数
delDialog: false, //控制公共弹窗展示
delDialogText: "确定要解除限制吗?", //公共弹窗标题
type: null, //1解除限制 2加入白名单
obj: {}, //存放公共参数
addSure: false, //控制确认添加弹窗展示
selectUserId: "", //添加用户id
};
},
created() {
this.getData();
},
methods: {
// 初始化
getData() {
this.loading = true;
recordPage({
page: this.currentPage,
pageSize: this.pageSize,
userErBanNo: this.userId,
}).then((res) => {
this.tableData = res.data.records;
this.loading = false;
this.total = res.data.total;
});
},
// 搜索
search() {
this.getData();
},
// 新增
add() {
this.addSure = true;
},
// 确认新增
addSureClick() {
this.addSure = false;
this.delDialogText = "确定要添加地区限制访问吗?";
this.delDialog = true;
this.type = 3;
},
// 解除限制按钮
unfreeze(row) {
console.log(row);
this.delDialogText = "确定要解除限制吗?";
this.delDialog = true;
this.type = 1;
this.obj = row;
},
// 加入白名单
addWhite(row) {
console.log(row);
this.delDialogText = "确定要加入白名单吗?";
this.delDialog = true;
this.type = 2;
this.obj = row;
},
// 二次确认
sureClick() {
if (this.type == 1) {
relieve({ uid: this.obj.uid }).then((res) => {
if (res.code == 200) {
ElMessage({
showClose: true,
message: res.message,
type: "success",
});
this.getData();
} else {
ElMessage({
showClose: true,
message: res.message,
type: "error",
});
}
});
} else if (this.type == 2) {
addWhite({ uid: this.obj.uid }).then((res) => {
if (res.code == 200) {
ElMessage({
showClose: true,
message: res.message,
type: "success",
});
this.getData();
} else {
ElMessage({
showClose: true,
message: res.message,
type: "error",
});
}
});
}
if (this.type == 3) {
recordSave({ erBanNoStr: this.selectUserId }).then((res) => {
if (res.code == 200) {
this.selectUserId = "";
ElMessage({
showClose: true,
message: res.message,
type: "success",
});
this.getData();
} else {
ElMessage({
showClose: true,
message: res.message,
type: "error",
});
}
});
}
this.getData();
this.delDialog = false;
},
// 分页导航
handleSizeChange(val) {
this.getData();
},
handleCurrentChange(val) {
this.getData();
},
// sim格式化
tableArrFormat(val) {
// console.log("aaaaaaaaaaaaa", val.simCards);
var str = "";
if (!val.simCards) {
return;
}
val.simCards.forEach((res, i) => {
str += `
sim卡${i + 1}: ${
res == 452
? "越南"
: res == 454
? "香港"
: res == 460
? "中国"
: res == 466
? "台湾"
: res == 456
? "柬埔寨"
: res == 502
? "马来西亚"
: res == 525
? "新加坡"
: res == 510
? "印尼"
: res == 414
? "缅甸"
: res == 515
? "菲律宾"
: res == 520
? "泰国"
: res == 457
? "老挝"
: res
}<br>
`;
});
return str;
},
// sim格式化
langFormat(val) {
var str = "";
if (val == null) {
str = "空";
}else if(val.match(/cn/gi)||val.match(/hans/gi)){
str = `${val}【简体中文】`;
}else if(val.match(/tw/gi)||val.match(/hant/gi)||val.match(/hk/gi)||val.match(/mo/gi)){
str = `${val}【繁体中文】`;
}else{
str = val;
}
return str;
},
},
};
</script>
<style lang="less" scoped>
.outer {
padding-top: 20px;
background: #ecf0f5;
border-top: 3px solid #d2d6de;
.search {
width: 100%;
height: 41px;
.searchLeft,
.searchRight {
width: 20%;
float: left;
span {
margin-right: 10px;
}
.input {
width: 75%;
}
}
}
.buttonBox {
margin-top: 10px;
}
.authorityBox {
.authoritySpan {
margin-right: 20px;
}
.authorityInpput {
width: 50%;
}
}
.dialogTableVisibleBut {
margin: -25px 0 20px 0px;
}
}
</style>

View File

@@ -1,354 +0,0 @@
<template>
<div class="outer">
<!-- 搜索 -->
<div class="search">
<div class="searchLeft">
<span>用户平台ID</span>
<el-input
v-model="userId"
size="default"
placeholder="用户平台ID"
class="input"
></el-input>
</div>
<div class="searchRight">
<span>用户手机号</span>
<el-input
v-model="userPhone"
size="default"
placeholder="用户手机号"
class="input"
></el-input>
</div>
</div>
<!-- 按钮 -->
<div class="buttonBox">
<el-button class="primary" type="primary" size="default" @click="add()"
>新增</el-button
>
<el-button class="primary" type="primary" size="default" @click="search()"
>查询</el-button
>
</div>
<!-- 列表 -->
<el-table
v-loading="loading"
:data="tableData"
border
style="width: 100%; margin-top: 25px"
>
<el-table-column prop="erbanNo" align="center" label="用戶id" />
<el-table-column prop="phone" align="center" label="用戶手机号" />
<el-table-column prop="nick" align="center" label="昵称" />
<el-table-column prop="signTime" align="center" label="注册时间" />
<el-table-column prop="roleName" align="center" label="身份" />
<el-table-column prop="createTime" align="center" label="进入白名单时间" />
<el-table-column prop="lastCheckTime" align="center" label="最近一次访问时间" />
<el-table-column align="center" label="进入白名单来源">
<template v-slot="scope">
{{
scope.row.source == 1
? "手动添加"
: scope.row.source == 2
? "手机号申请通过"
: scope.row.source == 3
? "限制访问记录添加"
: "未知来源"
}}
</template>
</el-table-column>
<el-table-column align="center" label="操作" width="400">
<template v-slot="scope">
<el-button
@click="delWhite(scope.row)"
class="primary"
type="primary"
size="default"
>移除白名单</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
style="margin-top: 10px"
class="paginationClass"
v-model:current-page="currentPage"
v-model:page-size="pageSize"
:page-sizes="[10, 20, 30, 40, 50, 100, 200, 300, 400, 500]"
:small="small"
:disabled="disabled"
:background="background"
layout="sizes, prev, pager, next"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
<!-- 公共二次确认删除弹窗 -->
<el-dialog v-model="delDialog" title="提示" width="30%" center>
<span> {{ delDialogText }}</span>
<template #footer>
<span class="dialog-footer">
<el-button @click="delDialog = false">取消</el-button>
<el-button type="primary" @click="sureClick(val, type)"> 确认 </el-button>
</span>
</template>
</el-dialog>
<!-- 添加弹窗 -->
<el-dialog v-model="addSure" title="提示" width="30%" center>
<div class="selectBox">
<span class="left">添加号码类型</span>
<el-select
v-model="value"
fit-input-width="true"
placeholder="请选择"
class="right"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</div>
<div class="selectBox" v-if="value == 1">
<span class="left">用户ID</span>
<el-input
v-model="selectUserId"
size="default"
placeholder="用户平台ID"
class="right"
></el-input>
</div>
<div class="selectBox" v-else>
<span class="left">手机号</span>
<el-input
v-model="selectUserPhone"
size="default"
placeholder=""
class="right"
style="width: 56%"
>
</el-input>
<b>+86</b>
</div>
<template #footer>
<span class="dialog-footer">
<el-button @click="addSure = false">取消</el-button>
<el-button type="primary" @click="addSureClick()"> 添加 </el-button>
</span>
</template>
</el-dialog>
</div>
</template>
<script>
import {
whitePage,
whiteDel,
whiteSave,
} from "@/api/AccessRestriction.vue/AccessRestriction.js";
import { ElMessage } from "element-plus";
export default {
name: "AccessWhitelist",
data() {
return {
userId: "", //用戶id
userPhone: "", //用戶手机号
loading: false, //列表loading
tableData: [], //列表数据
total: 10, //总页数
currentPage: 1, //页码
pageSize: 10, //条数
delDialog: false, //控制公共弹窗展示
delDialogText: "确定要移除白名单吗?", //公共弹窗标题
addSure: false, //控制确认添加弹窗展示
value: "1", //选择器
options: [
{
value: "1",
label: "用户id",
},
{
value: "2",
label: "用户手机号",
},
],
selectUserId: "", //添加弹窗用户id
selectUserPhone: "", //添加弹窗用户手机号
obj: {}, //存放公共参数
};
},
created() {
this.getData();
},
methods: {
// 初始化
getData() {
this.loading = true;
whitePage({
page: this.currentPage,
pageSize: this.pageSize,
userErBanNo: this.userId,
phone: this.userPhone,
}).then((res) => {
this.tableData = res.data.records;
this.loading = false;
this.total = res.data.total;
});
},
// 新增
add() {
this.addSure = true;
},
// 搜索
search() {
this.getData();
},
// 移除白名单
delWhite(row) {
console.log(row);
this.obj = row;
this.delDialog = true;
},
// 二次确认
sureClick() {
whiteDel({ id: this.obj.id }).then((res) => {
if (res.code == 200) {
ElMessage({
showClose: true,
message: res.message,
type: "success",
});
this.getData();
} else {
ElMessage({
showClose: true,
message: res.message,
type: "error",
});
}
this.delDialog = false;
});
},
// 添加确认
addSureClick() {
var objs = {};
if (this.value == 1) {
objs = {
userErBanNoStr: this.selectUserId,
};
} else {
let phone = this.selectUserPhone;
if (phone) {
phone = '86' + phone;
}
objs = {
phone: phone,
};
}
whiteSave(objs).then((res) => {
this.selectUserId = "";
this.selectUserPhone = "";
if (res.code == 200) {
ElMessage({
showClose: true,
message: res.message,
type: "success",
});
this.getData();
} else {
ElMessage({
showClose: true,
message: res.message,
type: "error",
});
}
this.getData();
});
this.addSure = false;
},
// 分页导航
handleSizeChange(val) {
this.getData();
},
handleCurrentChange(val) {
this.getData();
},
},
};
</script>
<style lang="less" scoped>
.outer {
padding-top: 20px;
background: #ecf0f5;
border-top: 3px solid #d2d6de;
.search {
width: 100%;
height: 41px;
.searchLeft,
.searchRight {
width: 20%;
float: left;
span {
margin-right: 10px;
}
.input {
width: 75%;
}
}
}
.buttonBox {
margin-top: 10px;
}
.authorityBox {
.authoritySpan {
margin-right: 20px;
}
.authorityInpput {
width: 50%;
}
}
.dialogTableVisibleBut {
margin: -25px 0 20px 0px;
}
.selectBox {
margin-bottom: 10px;
display: flex;
justify-content: space-between;
width: 70%;
.left {
display: block;
margin-right: 25px;
white-space: nowrap;
}
.right {
width: 70%;
position: relative;
}
b {
font-style: normal;
position: absolute;
left: 135px;
width: 54px;
height: 32px;
line-height: 32px;
text-align: center;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
border-right: 1px solid #dcdfe6;
border-left: 1px solid #dcdfe6;
border-bottom: 1px solid #dcdfe6;
border-top: 1px solid #dcdfe6;
background: #fff;
}
}
}
input[type="file"] {
display: none;
}
</style>

View File

@@ -288,7 +288,7 @@ export default {
$("#tipMsg").text("保存成功");
$("#tipModal").modal('show');
TableHelper.doRefresh("#table");
$("#updateCapModal").modal('hide');
$("#updateItemModal").modal('hide');
} else {
$("#tipMsg").text("保存失败." + json.message);
$("#tipModal").modal('show');
@@ -334,7 +334,6 @@ export default {
$("#tipMsg").text("保存成功");
$("#tipModal").modal('show');
TableHelper.doRefresh("#table");
$("#addCapModal").modal('hide');
} else {
$("#tipMsg").text("保存失败." + json.message);
$("#tipModal").modal('show');

View File

@@ -341,7 +341,7 @@ export default {
$("#tipMsg").text("保存成功");
$("#tipModal").modal('show');
TableHelper.doRefresh("#table");
$("#updateJoinHandModal").modal('hide');
$("#updateItemModal").modal('hide');
} else {
$("#tipMsg").text("保存失败." + json.message);
$("#tipModal").modal('show');
@@ -387,7 +387,6 @@ export default {
$("#tipMsg").text("保存成功");
$("#tipModal").modal('show');
TableHelper.doRefresh("#table");
$("#addJoinHandModal").modal('hide');
} else {
$("#tipMsg").text("保存失败." + json.message);
$("#tipModal").modal('show');

View File

@@ -256,21 +256,6 @@ export default {
return date.format('yyyy-MM-dd hh:mm:ss');
}
},
{
field: 'source',
title: '邀请码填写类型',
align: 'center',
width: '5%',
formatter: function (val) {
let value = '';
if (val == 0) {
value = '自填';
} else if (val == 1) {
value = '补填';
}
return value;
}
},
{
field: 'memberId',
title: '操作',

View File

@@ -179,7 +179,6 @@
<script>
import TableHelper from '@/utils/bootstrap-table-helper';
import { getConfigValueByKey } from '@/api/system/sysconf';
export default {
name: "NameplateInfoView",
@@ -604,26 +603,14 @@ function setStatusSelectOption() {
}
function setStyleTypeSelectOption() {
getConfigValueByKey({
'configId': 'heartbeat_nameplate',
}).then(res => {
let sysConf = res.data;
if (sysConf && sysConf.configValue) {
let data = JSON.parse(sysConf.configValue);
let floor = 52000;
let upper = 131400;
if (data.length == 2) {
floor = data[0];
upper = data[1];
}
var rows = {
'1': floor + '~' + (upper - 1) + '送出',
'2': floor + '~' + (upper - 1) + '收到',
'3': upper + '+送出',
'4': upper + '+收到',
'5': 'CP铭牌审核送出',
'6': '粉丝团铭牌送出',
'7': '贵族等级铭牌送出'
"1": '3344~8887送出',
"2": '3344~8887收到',
"3": '8887+送出',
"4": '8887+收到',
"5": 'CP铭牌审核送出',
"6": '粉丝团铭牌送出',
"7": '贵族等级铭牌送出'
};
console.log(rows);
for (var key in rows) {
@@ -631,8 +618,6 @@ function setStyleTypeSelectOption() {
$('#type1').append('<option value="' + key + '">' + rows[key] + '</option>');
}
}
});
}
function setTypeSelectOption() {
var rows = {

View File

@@ -51,9 +51,9 @@
<label for="qChannel">app渠道</label>
<input type="text" class="form-control" name="appChannel" id="qAppChannel">
</div>
</form>
<button id="btnSearch" class="btn btn-sm btn-primary">查询</button>
<button id="btnExport" class="btn btn-sm btn-primary">导出</button>
</form>
</div>
<!-- .content -->
<div class="content" id="table"></div>

View File

@@ -327,14 +327,12 @@ export default {
this.resource.endTime = row.endTime;
this.resource.seqNo = row.seqNo;
let ruleValue = row.ruleValue;
for (let i = 0, len = this.rules.length; i < len; i++) {
let ruleCode = this.rules[i].ruleCode;
let rule = null;
if (ruleValue) {
let ruleObj = JSON.parse(ruleValue);
rule = ruleObj[ruleCode];
for (let i = 0, len = this.rules.length; i < len; i++) {
let ruleCode = this.rules[i].ruleCode;
this.resource.ruleValue[ruleCode] = ruleObj[ruleCode];
}
this.resource.ruleValue[ruleCode] = rule;
}
this.editDialog = true;
},

View File

@@ -270,14 +270,12 @@ export default {
this.resource.endTime = row.endTime;
this.resource.seqNo = row.seqNo;
let ruleValue = row.ruleValue;
for (let i = 0, len = this.rules.length; i < len; i++) {
let ruleCode = this.rules[i].ruleCode;
let rule = null;
if (ruleValue) {
let ruleObj = JSON.parse(ruleValue);
rule = ruleObj[ruleCode];
for (let i = 0, len = this.rules.length; i < len; i++) {
let ruleCode = this.rules[i].ruleCode;
this.resource.ruleValue[ruleCode] = ruleObj[ruleCode];
}
this.resource.ruleValue[ruleCode] = rule;
}
this.editDialog = true;
},

View File

@@ -11,21 +11,17 @@
数据量过大不再默认加载所有的数据请先选择时间后再点查询按钮
</div>
<form id="searchForm" action="/admin/roomSerial/export.action" method="POST">
房主平台号(多个查询以英文逗号分隔):
<input type="text" name="erbanNos" id="erbanNos" class="input-sm" style="margin-right: 40px;display: inline-block;"/> 选择时间:
<input type="text" name="startTime" id="startTime" class="input-sm" />
<input type="text" id="endTime" name="endTime" class="input-sm" />
<br />
<div style="width: 60%">
房主平台号(多个查询以英文逗号分隔): <input type="text" name="erbanNos" id="erbanNos" class="input-sm">
选择时间: <input type="text" name="startTime" id="startTime" class="input-sm">
<input type="text" id="endTime" name="endTime" class="input-sm">
房间类型:
<select name="isPermit" id="isPermit" class="input-sm" style="width: 30%;display: inline-block;">
<select name="isPermit" id="isPermit" data-btn-class="btn-warning">
<option value="0">全部</option>
<option value="1">牌照房</option>
<option value="3">新秀房</option>
<!--<option value="4">个播房</option>-->
<option value="4">个播房</option>
</select>
</div>
</form>
</div>
<div class="col-sm-8">
@@ -37,16 +33,9 @@
</button>
</div>
</div>
</section>
<!-- .content -->
</section><!-- .content -->
<div
class="modal fade"
id="tipModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel"
>
<div class="modal fade" id="tipModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
@@ -57,18 +46,13 @@
</div>
</div>
<div
class="modal fade"
id="roomGiftSerialDetailModal"
tabindex="-1"
role="dialog"
aria-labelledby="modalLabel"
>
<div class="modal fade" id="roomGiftSerialDetailModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="roomGiftSerialDetailModalTitle">房间明细</h4>
</div>
@@ -97,15 +81,16 @@
<h4 id="roundDetailModalFooter"></h4>
<button type="button" class="btn btn-default" data-dismiss="modal">确定</button>
</div>
</div>
</div>
</div>
</template>
<script>
import TableHelper from "@/utils/bootstrap-table-helper";
import ComboboxHelper from "@/assets/plugins/bootstrap-combobox/js/bootstrap-combobox-helper";
import { serverError } from "@/utils/maintainer";
import TableHelper from '@/utils/bootstrap-table-helper';
import ComboboxHelper from '@/assets/plugins/bootstrap-combobox/js/bootstrap-combobox-helper';
import { serverError } from '@/utils/maintainer';
export default {
name: "RoomSerialView",
@@ -119,49 +104,34 @@ export default {
},
methods: {
initData() {
// ComboboxHelper.build(null, '#isPermit');
ComboboxHelper.build(null, '#isPermit');
$(function () {
$("#table").bootstrapTable("destroy");
$("#table").bootstrapTable({
$('#table').bootstrapTable('destroy');
$('#table').bootstrapTable({
columns: [
{ field: "userNick", title: "用户名称", align: "center", width: "20%" },
{ field: "userErbanNo", title: "房主平台号", align: "center", width: "15%" },
{ field: "totalGold", title: "总流水", align: "center", width: "10%" },
{ field: 'userNick', title: '用户名称', align: 'center', width: '20%' },
{ field: 'userErbanNo', title: '房主平台号', align: 'center', width: '15%' },
{ field: 'totalGold', title: '总流水', align: 'center', width: '10%' },
{ field: 'normalTotalGold', title: '普通礼物流水', align: 'center', width: '10%' },
{ field: 'backpackTotalGold', title: '背包礼物流水', align: 'center', width: '10%' },
{ field: 'totalRadish', title: '萝卜流水', align: 'center', width: '10%' },
{ field: 'roomTitle', title: '房间标题', align: 'center', width: '10%' },
{ field: 'executionTime', title: '统计时间', align: 'center', width: '15%' },
{ field: 'executionTime', title: '统计时间', align: 'center', width: '15%' },
{
field: "normalTotalGold",
title: "普通礼物流水",
align: "center",
width: "10%",
},
{
field: "backpackTotalGold",
title: "背包礼物流水",
align: "center",
width: "10%",
},
{ field: "totalRadish", title: "萝卜流水", align: "center", width: "10%" },
{ field: "roomTitle", title: "房间标题", align: "center", width: "10%" },
{ field: "executionTime", title: "统计时间", align: "center", width: "15%" },
{ field: "executionTime", title: "统计时间", align: "center", width: "15%" },
{
field: "id",
title: "操作",
align: "center",
width: "10%",
field: 'id',
title: '操作',
align: 'center',
width: '10%',
formatter: function (val, row, index) {
const roomUid = row.roomUid;
console.log("roomUid", roomUid);
return (
'<button id="btnDetail" name="btnDetail" class="btn btn-sm btn-info opt-detail" roomUid=' +
roomUid +
">" +
console.log("roomUid", roomUid)
return '<button id="btnDetail" name="btnDetail" class="btn btn-sm btn-info opt-detail" roomUid=' + roomUid + '>' +
'<i class="glyphicon glyphicon-file"></i> 查看明细</button>' +
'<button id="btnExport" name="btnExport" class="btn btn-sm btn-success opt-export" roomUid=' +
roomUid +
'><i class="glyphicon glyphicon-export"></i>导出明细</button>'
);
},
},
'<button id="btnExport" name="btnExport" class="btn btn-sm btn-success opt-export" roomUid=' + roomUid +
'><i class="glyphicon glyphicon-export"></i>导出明细</button>';
}
}
],
undefinedText: 0,
cache: false,
@@ -175,8 +145,7 @@ export default {
//设置为undefined可以获取pageNumberpageSizesearchTextsortNamesortOrder
//设置为limit可以获取limit, offset, search, sort, order
queryParamsType: "undefined",
queryParams: function queryParams(params) {
//设置查询参数
queryParams: function queryParams(params) { //设置查询参数
var param = {
pageNumber: params.pageNumber,
pageSize: params.pageSize,
@@ -184,91 +153,84 @@ export default {
erbanNos: $("#erbanNos").val(),
startTime: $("#startTime").val(),
endTime: $("#endTime").val(),
isPermit: ComboboxHelper.getSelected("#isPermit"),
isPermit: ComboboxHelper.getSelected("#isPermit")
};
return param;
},
toolbar: "#toolbar",
url: "",
onLoadSuccess: function () {
//加载成功时执行
toolbar: '#toolbar',
url: '',
onLoadSuccess: function () { //加载成功时执行
console.log("load success");
enableRefreshBtn();
},
onLoadError: function () {
//加载失败时执行
onLoadError: function () { //加载失败时执行
console.log("load fail");
},
}
});
$("#startTime").datetimepicker({
$('#startTime').datetimepicker({
todayBtn: true,
format: "yyyy-mm-dd hh:ii:00",
language: "zh-CN",
autoclose: true,
});
format: 'yyyy-mm-dd hh:ii:00',
language: 'zh-CN',
autoclose: true
})
$("#endTime").datetimepicker({
todayBtn: true,
format: "yyyy-mm-dd hh:ii:00",
language: "zh-CN",
autoclose: true,
format: 'yyyy-mm-dd hh:ii:00',
language: 'zh-CN',
autoclose: true
});
$("#room-serial-refresh").click(function () {
disableRefreshBtn();
$("#table").bootstrapTable("refresh", { url: "/admin/roomSerial/listByPage" });
});
$("#table").bootstrapTable('refresh', { url: '/admin/roomSerial/listByPage' });
})
$("#room-serial-export").click(function () {
$("#searchForm").submit();
});
})
$("#erbanNos").change(function () {
ComboboxHelper.setDef("#isPermit", "0");
if ($(this).val() == "") {
$("#isPermit").btComboBox("enable");
ComboboxHelper.setDef("#isPermit", '0');
if ($(this).val() == '') {
$("#isPermit").btComboBox('enable');
} else {
$("#isPermit").btComboBox("disable");
$("#isPermit").btComboBox('disable');
}
});
})
function disableRefreshBtn() {
$("#room-serial-refresh").attr("disabled", "true");
$('#room-serial-refresh').attr("disabled", "true");
}
function enableRefreshBtn() {
$("#room-serial-refresh").removeAttr("disabled");
$('#room-serial-refresh').removeAttr("disabled");
}
// 导出房间流水明细
$("#table").on("click", ".opt-export", function () {
$('#table').on('click', '.opt-export', function () {
const roomUid = $(this).attr("roomUid");
const start = $("#startTime").val();
const end = $("#endTime").val();
const start = $('#startTime').val();
const end = $('#endTime').val();
console.log("--------roomUid", roomUid, start, end);
window.location.href = `/admin/roomSerial/exportRoomRevenueDetail?roomUid=${roomUid}&start=${start}&end=${end}`;
window.location.href = `/admin/roomSerial/exportRoomRevenueDetail?roomUid=${roomUid}&start=${start}&end=${end}`
});
$("#table").on("click", ".opt-detail", function () {
$('#table').on('click', '.opt-detail', function () {
const roomUid = $(this).attr("roomUid");
const start = $("#startTime").val();
const end = $("#endTime").val();
$("#roomGiftSerialDetailTable").bootstrapTable("destroy");
$("#roomGiftSerialDetailTable").bootstrapTable({
const start = $('#startTime').val();
const end = $('#endTime').val();
$('#roomGiftSerialDetailTable').bootstrapTable('destroy');
$('#roomGiftSerialDetailTable').bootstrapTable({
columns: [
{ field: "num", title: "序号", align: "center", width: "5%" },
{ field: "erbanNo", title: "平台号", align: "center", width: "5%" },
{ field: "nick", title: "昵称", align: "center", width: "5%" },
{ field: "amount", title: "收礼总钻石", align: "center", width: "5%" },
{
field: "cutDiamonds",
title: "房间抽成钻石",
align: "center",
width: "5%",
},
{ field: "bigAmount", title: "大光礼物价值", align: "center", width: "5%" },
{ field: "bigNum", title: "大光礼物数量", align: "center", width: "5%" },
{ field: 'num', title: '序号', align: 'center', width: '5%' },
{ field: 'erbanNo', title: '平台号', align: 'center', width: '5%' },
{ field: 'nick', title: '昵称', align: 'center', width: '5%' },
{ field: 'amount', title: '收礼总钻石', align: 'center', width: '5%' },
{ field: 'cutDiamonds', title: '房间抽成钻石', align: 'center', width: '5%' },
{ field: 'bigAmount', title: '大光礼物价值', align: 'center', width: '5%', },
{ field: 'bigNum', title: '大光礼物数量', align: 'center', width: '5%', }
],
undefinedText: 0,
cache: false,
@@ -280,8 +242,7 @@ export default {
search: false,
sidePagination: "server", //表示服务端请求
queryParamsType: "undefined",
queryParams: function queryParams(params) {
//设置查询参数
queryParams: function queryParams(params) { //设置查询参数
var param = {
page: params.pageNumber,
pageSize: params.pageSize,
@@ -291,16 +252,15 @@ export default {
};
return param;
},
ajax: function (request) {
//使用ajax请求
ajax: function (request) { //使用ajax请求
$.ajax({
type: "GET",
url: "/admin/roomSerial/listRoomRevenueDetail.action",
contentType: "application/json;charset=utf-8",
dataType: "json",
url: '/admin/roomSerial/listRoomRevenueDetail.action',
contentType: 'application/json;charset=utf-8',
dataType: 'json',
data: request.data,
success: function (res) {
console.log("res-------", res);
console.log('res-------', res)
apiResult(res);
request.success({
rows: res.data.rows,
@@ -310,35 +270,35 @@ export default {
$("#roomTitle").html(res.data.roomTitle);
$("#totalDiamonds").html(res.data.totalDiamonds);
$("#cutDiamonds").html(res.data.cutDiamonds);
$("#roomGiftSerialDetailModal").modal("show");
$("#roomGiftSerialDetailModal").modal('show');
},
error: function (req) {
serverError(req);
}
})
},
});
},
onLoadSuccess: function (res) {
//加载成功时执行
onLoadSuccess: function (res) { //加载成功时执行
console.log("load success");
},
onLoadError: function () {
//加载失败时执行
onLoadError: function () { //加载失败时执行
console.log("load fail");
},
}
});
});
function apiResult(json) {
if (json.code == 200 && json.message == "success") {
if (json.code == 200 && json.message == 'success') {
return true;
}
$("#tipMsg").text("请求失败,错误信息:" + json.message);
$("#tipModal").modal("show");
$("#tipModal").modal('show');
return false;
}
});
}
},
},
};
</script>

View File

@@ -144,9 +144,9 @@ export default {
data: request.data,
success: function (res) {
apiResult(res);
if (res.data == null || res.data.length > 0) {
console.log("res.data", res.data);
console.log("res.data.length()", res.data.length);
if (res.data == null || res.data.length > 0) {
$("#btnSearch").attr("disabled", false);
if (getCacheDataTimer) {
clearInterval(getCacheDataTimer);

View File

@@ -435,8 +435,8 @@ export default {
}
TableHelper.doRefresh('#table');
$("#editModal").modal('hide');
showPoolCount();
});
showPoolCount();
}
},

View File

@@ -56,13 +56,10 @@
<option value="2">普通面板礼物</option>
<option value="3">福袋礼物</option>
<option value="5">福袋奖池礼物</option>
<option value="1">轻聊或者竞拍房</option>
<option value="4">卡片</option>
<option value="7">贵族礼物</option>
<option value="8">周星榜礼物</option>
<option value="9">合成礼物</option>
<option value="10">涂鸦礼物</option>
<option value="11">个播人气礼物</option>
<option value="15">线性福袋礼物</option>
</select>
</div>
@@ -167,8 +164,8 @@
<div class="form-group">
<label for="giftType" class="col-sm-2 control-label">礼物类型</label>
<div class="col-sm-10">
<select name="giftType" id="giftType" class="form-control" data-btn-class="btn-warning">
<option value="2" selected>普通面板礼物</option>
<select name="giftType" id="giftType" data-btn-class="btn-warning">
<option value="2">普通面板礼物</option>
<option value="3">福袋礼物</option>
<option value="5">福袋奖池礼物</option>
<option value="1">轻聊或者竞拍房</option>
@@ -177,7 +174,6 @@
<option value="8">周星榜礼物</option>
<option value="9">合成礼物</option>
<option value="10">涂鸦礼物</option>
<option value="11">个播人气礼物</option>
<option value="15">线性福袋礼物</option>
</select>
</div>
@@ -552,6 +548,7 @@ import TableHelper from '@/utils/bootstrap-table-helper';
import ComboboxHelper from '@/assets/plugins/bootstrap-combobox/js/bootstrap-combobox-helper';
import { formatTime, showLoading, hideLoading } from '@/utils/maintainer';
//ComboboxHelper.build(null, '#giftType');
//ComboboxHelper.build(null, '#condition_type');
//ComboboxHelper.build(null, '#nobleId');
export default {
@@ -565,7 +562,7 @@ export default {
$('.noble').removeClass("hidden");
}
if (val == 3) {
$('#giftType').val(2);
ComboboxHelper.setDef("#giftType", 2);
$("#giftType").attr('readonly', true);
$('#roomFreeGift').removeClass("hidden");
} else {
@@ -852,14 +849,7 @@ export default {
// $("#goldPrice").attr('readonly', false);
$("#nobleId").btComboBox('disable');
ComboboxHelper.setDef("#nobleId", '0');
$('#giftType').val(2);
$("input:radio[name='giftStatus']")[1].checked = true;
$("input:radio[name='hasEffect']")[1].checked = true;
$("input:radio[name='hasVggPic']")[1].checked = true;
$("input:radio[name='hasSvga']")[0].checked = true;
$("input:radio[name='isLatest']")[1].checked = true;
$("input:radio[name='isTimeLimit']")[1].checked = true;
$("input:radio[name='roomExclude']")[0].checked = true;
ComboboxHelper.setDef("#giftType", '2');
$('#giftType').val('');
$("#notifyStaySecond").val('');
$("#isSkipRoom").val('');
@@ -1134,6 +1124,7 @@ export default {
$("#consumeType").val(consumeType);
$("#consumeType").attr("disabled", true);
ComboboxHelper.setDef("#giftType", json.entity.giftType);
$('#giftType').val(json.entity.giftType);
if (consumeType == 1) {
ComboboxHelper.setDef("#nobleId", '0');

View File

@@ -7,30 +7,21 @@
</section>
<section class="content">
<div id="table"></div>
<div id="toolbar">
<label for="erbanNum" class="col-sm-2 control-label">消息类型:</label>
<div class="col-sm-3">
<span>
<select name="msgType" id="type" class="form-control input-m">
<div id="toolbar">消息类型:<select name="msgType" id="type" class="input-m">
<option value="0">文本</option>
<option value="1">图片</option>
<option value="100">图文</option>
</select>
</span>
</div>
<label for="erbanNum" class="col-sm-2 control-label">平台号:</label>
<div class="col-sm-3">
<span>
<input type="text" class="form-control validate[required]" name="erbanNo" id="erbanNum">
</span>
<span><input type="text" class="form-control validate[required]" name="erbanNo"
id="erbanNum"></span>
</div>
<div class="col-sm-12">
<button id="btnSearch" class="btn btn-sm btn-primary">查询</button>
<button id="add" class="btn btn-sm btn-default">
<button id="add" class="btn btn-default">
<i class="glyphicon glyphicon-plus"></i>增加
</button>
</div>
</div>
</section>
</div>
</div>
@@ -49,7 +40,7 @@
<div class="form-group">
<label for="receiver" class="col-sm-3 control-label">接收者</label>
<div class="col-sm-8">
<select name="receivers" id="receiver" class="col-sm-3 form-control">
<select name="receivers" id="receiver" class="col-sm-3">
<option value=1>所有用户</option>
<option value=0>指定用户</option>
</select>
@@ -59,7 +50,7 @@
<div class="form-group" id="appIdDiv">
<label for="appId" class="col-sm-3 control-label">渠道</label>
<div class="col-sm-8">
<select name="appId" id="appId" class="col-sm-3 form-control">
<select name="appId" id="appId" class="col-sm-3">
<option value="">全部</option>
<option value="official">安卓官方包</option>
<option value="google">安卓谷歌包</option>
@@ -72,7 +63,7 @@
<div class="form-group">
<label for="msgType" class="col-sm-3 control-label">消息类型</label>
<div class="col-sm-8">
<select name="msgTypeList" id="msgType" class="col-sm-3 form-control">
<select name="msgTypeList" id="msgType" class="col-sm-3">
<option value="0">文本</option>
<option value="1">图片</option>
<option value="100">图文</option>
@@ -83,14 +74,13 @@
<div class="form-group" id="skipUrlDiv">
<label for="skip" class="col-sm-3 control-label">跳转来源</label>
<div class="col-sm-8">
<select name="skip" id="skip" class="col-sm-3 form-control">
<select name="skip" id="skip" class="col-sm-3">
<option value=""></option>
<option value="2">跳H5页面</option>
<option value="1" id="skipRoomType">跳转房间</option>
</select>
</div>
<label for="skipUrlContent" class="col-sm-3 control-label"></label>
<div class="col-sm-8">
<div class="col-sm-6">
<input type="text" class="form-control" name="skipUri" id="skipUrlContent">
</div>
</div>
@@ -135,24 +125,13 @@
class="form-control validate[required]" />
</div>
</div>
<div class="form-group">
<label for="pushTime" class="col-sm-3 control-label">推送时间(非必填)</label>
<div class="col-sm-8">
<div class="col-sm-9">
<input type="text" class="input-sm form-control datetime" name="pushTime" id="pushTime">
</div>
</div>
<div class="form-group">
<label for="ignoreVersion" class="col-sm-3 control-label">不接收用户版本(非必填)</label>
<div class="col-sm-8">
<input type="text" class="input-sm form-control" name="ignoreVersion" id="ignoreVersion">
</div>
</div>
<div class="form-group">
<label for="ignoreChannel" class="col-sm-3 control-label">不接收用户渠道(非必填)</label>
<div class="col-sm-8">
<input type="text" class="input-sm form-control" name="ignoreChannel" id="ignoreChannel">
</div>
</div>
</form>
</div>
<div class="modal-footer">
@@ -388,9 +367,7 @@ export default {
skipType: $('#skip').val(),
skipContent: $('#skipUrlContent').val(),
appId: $("#appId").val(),
pushTime: $("#pushTime").val(),
ignoreVersion: $('#ignoreVersion').val(),
ignoreChannel: $('#ignoreChannel').val(),
pushTime: $("#pushTime").val()
},
dataType: 'json',
success: function (data) {

View File

@@ -23,7 +23,7 @@
<div class="col-sm-2">
<select name="status" id="status" data-btn-class="btn-warning" class="form-control">
<option value="" selected="selected">全部</option>
<option value="1">未处理</option>
<option value="1">待审核</option>
<option value="2">通过</option>
<option value="3">拒绝</option>
</select>
@@ -87,6 +87,24 @@
<script>
import TableHelper from '@/utils/bootstrap-table-helper';
var picker1 = $("#beginDate").datetimepicker({
format: 'yyyy-mm-dd hh:ii:00',
autoclose: true,
todayBtn: true
});
var picker2 = $("#endDate").datetimepicker({
format: 'yyyy-mm-dd hh:ii:00',
autoclose: true,
todayBtn: true
});
// picker1.on('changeDate', function () {
// var date = $('#beginDate').datetimepicker('getDate');
// picker2.datetimepicker('setStartDate', date);
// });
// picker2.on('changeDate', function () {
// var date = $('#endDate').datetimepicker('getDate');
// picker1.datetimepicker('setEndDate', date);
// });
export default {
name: "PhoneAuthApplyAdminView",
setup() {
@@ -100,16 +118,6 @@ export default {
methods: {
initData() {
$(function () {
$("#beginDate").datetimepicker({
format: 'yyyy-mm-dd hh:ii:00',
autoclose: true,
todayBtn: true
});
$("#endDate").datetimepicker({
format: 'yyyy-mm-dd hh:ii:00',
autoclose: true,
todayBtn: true
});
$('#table').bootstrapTable('destroy');
$('#table').bootstrapTable({
columns: [
@@ -121,6 +129,7 @@ export default {
}
},
{ field: 'phone', title: '申请手机号', align: 'center', width: '5%' },
{ field: 'authCode', title: '授权码', align: 'center', width: '5%' },
{
field: 'status',
title: '授权状态',

View File

@@ -3,6 +3,7 @@ var webpack = require('webpack')
var AutoImport = require('unplugin-auto-import/webpack')
var Components = require('unplugin-vue-components/webpack')
var { ElementPlusResolver } = require('unplugin-vue-components/resolvers')
var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
module.exports = defineConfig({
transpileDependencies: true,
chainWebpack: config => {
@@ -27,6 +28,9 @@ module.exports = defineConfig({
Components({
resolvers: [ElementPlusResolver()],
}),
new BundleAnalyzerPlugin({
openAnalyzer: false
})
],
},
devServer: {
@@ -43,9 +47,5 @@ module.exports = defineConfig({
}
}
},
client: {
//当出现编译错误或警告时,在浏览器中是否显示全屏覆盖。 示例为只显示错误信息
overlay:false
},
},
})