初始化
@@ -1,4 +1,3 @@
|
||||
> 1%
|
||||
last 2 versions
|
||||
Chrome >= 63
|
||||
not dead
|
||||
not ie <= 9
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
VUE_APP_NAME=''
|
||||
VUE_APP_API_BASE_URL=https://market.liche.cn/api
|
||||
#npm run build 加载环境
|
||||
VUE_APP_NAME=Ele Admin
|
||||
VUE_APP_API_BASE_URL=https://v2.eleadmin.com/api
|
||||
|
||||
@@ -1,2 +1 @@
|
||||
VUE_APP_API_BASE_URL=http://market.lc.haodian.cn/api
|
||||
#npm run serve 加载环境
|
||||
VUE_APP_API_BASE_URL=http://agent.admin.haodian.cn/api
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
NODE_ENV=production
|
||||
VUE_APP_API_BASE_URL=https://market.liche.cn/api
|
||||
npm run build:preview 加载环境
|
||||
VUE_APP_API_BASE_URL=https://v2.eleadmin.com/api
|
||||
|
||||
@@ -1,74 +1,29 @@
|
||||
技术文档
|
||||
https://eleadmin.com/doc/eleadmin/#/
|
||||
# ele-admin-template
|
||||
|
||||
1.2.安装运行
|
||||
# 先安装依赖
|
||||
## Project setup
|
||||
|
||||
```
|
||||
npm install
|
||||
```
|
||||
|
||||
# 访问国外网站比较慢的用户可以在后面加--registry
|
||||
npm install --registry=https://registry.npmmirror.com
|
||||
### Compiles and hot-reloads for development
|
||||
|
||||
# 运行项目
|
||||
```
|
||||
npm run serve
|
||||
```
|
||||
|
||||
下载产品时可查看自己的产品授权码并复制,然后需要在 src/config/setting.js 中配置,永久授权用户的授权码没有域名和时长的限制:
|
||||
### Compiles and minifies for production
|
||||
|
||||
// EleAdmin 授权码
|
||||
export const LICENSE_CODE = '这里换成你的授权码'; // 在 main.js 的 Vue.use(EleAdmin, {}) 时引用了此配置
|
||||
```
|
||||
npm run build
|
||||
```
|
||||
|
||||
v1.10.0 授权码 dk9mcwJyetRWQlxWRiojIqJWdzJCLi4Wa4QDN5ojI0NWZIVnI6ICZpJCLiwiI3VkUMNVa6Iibvl2cyVmdQfiATMuEjI0NW==
|
||||
### Lints and fixes files
|
||||
|
||||
```
|
||||
npm run lint
|
||||
```
|
||||
|
||||
安装nodejs
|
||||
https://nodejs.org/en/
|
||||
### Customize configuration
|
||||
|
||||
升级npm
|
||||
npm install -g npm
|
||||
|
||||
|
||||
tinymce编辑器参数设置
|
||||
tinymce.init({
|
||||
selector: '#tinydemo2',
|
||||
//skin:'oxide-dark',
|
||||
language:'zh_CN',
|
||||
plugins: 'print preview searchreplace autolink directionality visualblocks visualchars fullscreen image link media template code codesample table charmap hr pagebreak nonbreaking anchor insertdatetime advlist lists wordcount imagetools textpattern help emoticons autosave bdmap indent2em autoresize formatpainter axupimgs',
|
||||
toolbar: 'code undo redo restoredraft | cut copy paste pastetext | forecolor backcolor bold italic underline strikethrough link anchor | alignleft aligncenter alignright alignjustify outdent indent | \
|
||||
styleselect formatselect fontselect fontsizeselect | bullist numlist | blockquote subscript superscript removeformat | \
|
||||
table image media charmap emoticons hr pagebreak insertdatetime print preview | fullscreen | bdmap indent2em lineheight formatpainter axupimgs',
|
||||
height: 650, //编辑器高度
|
||||
min_height: 400,
|
||||
/*content_css: [ //可设置编辑区内容展示的css,谨慎使用
|
||||
'/static/reset.css',
|
||||
'/static/ax.css',
|
||||
'/static/css.css',
|
||||
],*/
|
||||
fontsize_formats: '12px 14px 16px 18px 24px 36px 48px 56px 72px',
|
||||
font_formats: '微软雅黑=Microsoft YaHei,Helvetica Neue,PingFang SC,sans-serif;苹果苹方=PingFang SC,Microsoft YaHei,sans-serif;宋体=simsun,serif;仿宋体=FangSong,serif;黑体=SimHei,sans-serif;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;',
|
||||
link_list: [
|
||||
{ title: '预置链接1', value: 'http://www.tinymce.com' },
|
||||
{ title: '预置链接2', value: 'http://tinymce.ax-z.cn' }
|
||||
],
|
||||
image_list: [
|
||||
{ title: '预置图片1', value: 'https://www.tiny.cloud/images/glyph-tinymce@2x.png' },
|
||||
{ title: '预置图片2', value: 'https://www.baidu.com/img/bd_logo1.png' }
|
||||
],
|
||||
image_class_list: [
|
||||
{ title: 'None', value: '' },
|
||||
{ title: 'Some class', value: 'class-name' }
|
||||
],
|
||||
importcss_append: true,
|
||||
//自定义文件选择器的回调内容
|
||||
file_picker_callback: function (callback, value, meta) {
|
||||
if (meta.filetype === 'file') {
|
||||
callback('https://www.baidu.com/img/bd_logo1.png', { text: 'My text' });
|
||||
}
|
||||
if (meta.filetype === 'image') {
|
||||
callback('https://www.baidu.com/img/bd_logo1.png', { alt: 'My alt text' });
|
||||
}
|
||||
if (meta.filetype === 'media') {
|
||||
callback('movie.mp4', { source2: 'alt.ogg', poster: 'https://www.baidu.com/img/bd_logo1.png' });
|
||||
}
|
||||
},
|
||||
toolbar_sticky: true,
|
||||
autosave_ask_before_unload: false,
|
||||
});
|
||||
See [Configuration Reference](https://cli.vuejs.org/config/).
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
/sh
|
||||
/sql
|
||||
/node_modules
|
||||
.svn
|
||||
.git
|
||||
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.*.local
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
.pnpm-debug.log
|
||||
.eslintcache
|
||||
|
||||
.idea
|
||||
.vscode
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "ele-admin-template",
|
||||
"version": "1.10.1",
|
||||
"version": "1.11.3",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "ele-admin-template",
|
||||
"version": "1.10.1",
|
||||
"version": "1.11.3",
|
||||
"dependencies": {
|
||||
"@amap/amap-jsapi-loader": "^1.0.1",
|
||||
"@ant-design/colors": "^6.0.0",
|
||||
@@ -20,7 +20,7 @@
|
||||
"cropperjs": "^1.5.12",
|
||||
"echarts": "^5.3.3",
|
||||
"echarts-wordcloud": "^2.0.0",
|
||||
"ele-admin": "^1.10.1",
|
||||
"ele-admin": "^1.11.3",
|
||||
"element-ui": "2.15.7",
|
||||
"github-markdown-css": "^5.1.0",
|
||||
"jsbarcode": "^3.11.5",
|
||||
@@ -5080,9 +5080,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/ele-admin": {
|
||||
"version": "1.10.1",
|
||||
"resolved": "https://registry.npmmirror.com/ele-admin/-/ele-admin-1.10.1.tgz",
|
||||
"integrity": "sha512-M+wpSbyzyF8H27iXRvscq8Gm+wNKPe+rS+sI3ZGBVUJ5AMvu92XUe1KnvUjG+4eD7sQ59nLI810VLYroruD7jg==",
|
||||
"version": "1.11.3",
|
||||
"resolved": "https://registry.npmmirror.com/ele-admin/-/ele-admin-1.11.3.tgz",
|
||||
"integrity": "sha512-1ndKGyGVldR5fSUX/qNLmxWOIcjCxbU9OJp84TKJEuJTal87ZWAOLO0or4LNVVxh0Z0JTEkUdvkwcwOruvaxyg==",
|
||||
"peerDependencies": {
|
||||
"element-ui": ">=2.15.4",
|
||||
"vue": ">=2.6.0 <3.0.0"
|
||||
@@ -16443,9 +16443,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"ele-admin": {
|
||||
"version": "1.10.1",
|
||||
"resolved": "https://registry.npmmirror.com/ele-admin/-/ele-admin-1.10.1.tgz",
|
||||
"integrity": "sha512-M+wpSbyzyF8H27iXRvscq8Gm+wNKPe+rS+sI3ZGBVUJ5AMvu92XUe1KnvUjG+4eD7sQ59nLI810VLYroruD7jg==",
|
||||
"version": "1.11.3",
|
||||
"resolved": "https://registry.npmmirror.com/ele-admin/-/ele-admin-1.11.3.tgz",
|
||||
"integrity": "sha512-1ndKGyGVldR5fSUX/qNLmxWOIcjCxbU9OJp84TKJEuJTal87ZWAOLO0or4LNVVxh0Z0JTEkUdvkwcwOruvaxyg==",
|
||||
"requires": {}
|
||||
},
|
||||
"electron-to-chromium": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ele-admin-template",
|
||||
"version": "1.10.1",
|
||||
"version": "1.11.3",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "vue-cli-service serve",
|
||||
@@ -24,7 +24,7 @@
|
||||
"cropperjs": "^1.5.12",
|
||||
"echarts": "^5.3.3",
|
||||
"echarts-wordcloud": "^2.0.0",
|
||||
"ele-admin": "^1.10.1",
|
||||
"ele-admin": "^1.11.3",
|
||||
"element-ui": "2.15.7",
|
||||
"github-markdown-css": "^5.1.0",
|
||||
"jsbarcode": "^3.11.5",
|
||||
|
||||
@@ -15,5 +15,5 @@ module.exports = {
|
||||
proseWrap: 'never',
|
||||
htmlWhitespaceSensitivity: 'strict',
|
||||
vueIndentScriptAndStyle: true,
|
||||
endOfLine: 'auto'
|
||||
endOfLine: 'lf'
|
||||
};
|
||||
|
||||
|
After Width: | Height: | Size: 503 B |
|
After Width: | Height: | Size: 345 B |
|
After Width: | Height: | Size: 477 B |
|
After Width: | Height: | Size: 294 B |
|
After Width: | Height: | Size: 797 B |
|
After Width: | Height: | Size: 516 B |
|
After Width: | Height: | Size: 550 B |
|
After Width: | Height: | Size: 252 B |
|
After Width: | Height: | Size: 555 B |
|
After Width: | Height: | Size: 314 B |
|
After Width: | Height: | Size: 423 B |
|
After Width: | Height: | Size: 269 B |
|
After Width: | Height: | Size: 434 B |
|
After Width: | Height: | Size: 297 B |
|
After Width: | Height: | Size: 265 B |
|
After Width: | Height: | Size: 168 B |
|
After Width: | Height: | Size: 533 B |
|
After Width: | Height: | Size: 360 B |
|
After Width: | Height: | Size: 524 B |
|
After Width: | Height: | Size: 486 B |
|
After Width: | Height: | Size: 709 B |
|
After Width: | Height: | Size: 414 B |
|
After Width: | Height: | Size: 407 B |
|
After Width: | Height: | Size: 234 B |
|
After Width: | Height: | Size: 390 B |
|
After Width: | Height: | Size: 240 B |
|
After Width: | Height: | Size: 701 B |
|
After Width: | Height: | Size: 306 B |
|
After Width: | Height: | Size: 727 B |
|
After Width: | Height: | Size: 283 B |
|
After Width: | Height: | Size: 406 B |
|
After Width: | Height: | Size: 263 B |
|
After Width: | Height: | Size: 546 B |
|
After Width: | Height: | Size: 360 B |
|
After Width: | Height: | Size: 281 B |
|
After Width: | Height: | Size: 191 B |
|
After Width: | Height: | Size: 361 B |
|
After Width: | Height: | Size: 246 B |
|
After Width: | Height: | Size: 495 B |
|
After Width: | Height: | Size: 267 B |
|
After Width: | Height: | Size: 588 B |
|
After Width: | Height: | Size: 326 B |
|
After Width: | Height: | Size: 334 B |
|
After Width: | Height: | Size: 217 B |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 651 B |
@@ -50,28 +50,6 @@
|
||||
position: fixed;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
window.onload = function(){
|
||||
var hostname=window.location.hostname;
|
||||
if(hostname=='bo.liche.cn'){
|
||||
let link = document.querySelector("link[rel*='icon']") || document.createElement('link');
|
||||
link.type = 'image/x-icon';
|
||||
link.rel = 'shortcut icon';
|
||||
link.href = 'https://bo.liche.cn/favicon_hd.ico';
|
||||
document.getElementsByTagName('head')[0].appendChild(link);
|
||||
}else if(hostname=='dongfeng.haodian.cn'){
|
||||
let link = document.querySelector("link[rel*='icon']") || document.createElement('link');
|
||||
link.type = 'image/x-icon';
|
||||
link.rel = 'shortcut icon';
|
||||
link.href = 'https://dongfeng.haodian.cn/favicon_df.ico';
|
||||
}else{
|
||||
let link = document.querySelector("link[rel*='icon']") || document.createElement('link');
|
||||
link.type = 'image/x-icon';
|
||||
link.rel = 'shortcut icon';
|
||||
link.href = 'https://bo.liche.cn/favicon_hd.ico';
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
|
||||
@@ -1,151 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 分页查询用户
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageUsers(params) {
|
||||
const res = await request.get('/institution/organizationUser/page', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询用户列表
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function listUsers(params) {
|
||||
const res = await request.post('/institution/organizationUser/list', params);
|
||||
if (res.data.code === 0 && res.data.data) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询用户
|
||||
* @param id 用户id
|
||||
*/
|
||||
export async function getUser(id) {
|
||||
const res = await request.get('/institution/organizationUser/' + id);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加用户
|
||||
* @param data 用户信息
|
||||
*/
|
||||
export async function addUser(data) {
|
||||
const res = await request.post('/institution/organizationUser', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户
|
||||
* @param data 用户信息
|
||||
*/
|
||||
export async function updateUser(data) {
|
||||
const res = await request.put('/institution/organizationUser', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除用户
|
||||
* @param id 用户id
|
||||
*/
|
||||
export async function removeUser(id) {
|
||||
return removeUsers([id]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除用户
|
||||
* @param ids 用户id集合
|
||||
*/
|
||||
export async function removeUsers(ids) {
|
||||
const res = await request.delete('/institution/organizationUser/batch', {
|
||||
data: { ids }
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户状态
|
||||
* @param userId 用户id
|
||||
* @param status 状态
|
||||
*/
|
||||
export async function updateUserStatus(userId, status) {
|
||||
const res = await request.put('/institution/organizationUser/status', {
|
||||
userId,
|
||||
status
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置用户密码
|
||||
* @param userId 用户id
|
||||
* @param password 密码
|
||||
* @returns {Promise<string>}
|
||||
*/
|
||||
export async function updateUserPassword(userId, password = '123456') {
|
||||
const res = await request.put('/institution/organizationUser/password', {
|
||||
userId,
|
||||
password
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入用户
|
||||
* @param file excel文件
|
||||
*/
|
||||
export async function importUsers(file) {
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
const res = await request.post(
|
||||
'/institution/organizationUser/import',
|
||||
formData
|
||||
);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查用户是否存在
|
||||
* @param field 检查的字段
|
||||
* @param value 字段的值
|
||||
* @param organizationId 机构id
|
||||
*/
|
||||
export async function checkExistence(field, value, organizationId) {
|
||||
const res = await request.get('/institution/organizationUser/existence', {
|
||||
params: { field, value, organizationId }
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,103 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 分页查询机构
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageOrganizations(params) {
|
||||
const res = await request.get('/institution/organization/page', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询机构列表
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function listOrganizations(params) {
|
||||
const res = await request.get('/institution/organization', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询上级机构列表
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function listOrganizationParent(params) {
|
||||
const res = await request.get('/institution/organization/parent', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加机构
|
||||
* @param data 机构信息
|
||||
*/
|
||||
export async function addOrganization(data) {
|
||||
const res = await request.post('/institution/organization', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改机构
|
||||
* @param data 机构信息
|
||||
*/
|
||||
export async function updateOrganization(data) {
|
||||
const res = await request.put('/institution/organization', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除机构
|
||||
* @param id 机构id
|
||||
*/
|
||||
export async function removeOrganization(id) {
|
||||
return removeOrganizations([id]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除机构
|
||||
* @param data 机构id集合
|
||||
*/
|
||||
export async function removeOrganizations(ids) {
|
||||
const res = await request.delete('/institution/organization/batch', {
|
||||
data: { ids }
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 机构详情
|
||||
* @param organizationId 机构id
|
||||
*/
|
||||
export async function infoOrganization(organizationId) {
|
||||
const res = await request.get('/institution/organization/info', {
|
||||
params: { organizationId }
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,152 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 分页查询用户
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageTeamUser(params) {
|
||||
const res = await request.get('/institution/teamUser/page', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询用户列表
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function listTeamUser(params) {
|
||||
const res = await request.post('/institution/teamUser/list', params);
|
||||
if (res.data.code === 0 && res.data.data) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询用户
|
||||
* @param id 用户id
|
||||
*/
|
||||
export async function getTeamUser(id) {
|
||||
const res = await request.get('/institution/teamUser/' + id);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加用户
|
||||
* @param data 用户信息
|
||||
*/
|
||||
export async function addTeamUser(data) {
|
||||
const res = await request.post('/institution/teamUser', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户
|
||||
* @param data 用户信息
|
||||
*/
|
||||
export async function updateTeamUser(data) {
|
||||
const res = await request.put('/institution/teamUser', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除用户
|
||||
* @param id 用户id
|
||||
*/
|
||||
export async function removeTeamUser(id) {
|
||||
const res = await request.delete('/institution/teamUser/' + id);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除用户
|
||||
* @param data 用户id集合
|
||||
*/
|
||||
export async function removeTeamUsers(data) {
|
||||
const res = await request.delete('/institution/teamUser/batch', {
|
||||
data
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户状态
|
||||
* @param userId 用户id
|
||||
* @param status 状态
|
||||
*/
|
||||
export async function updateTeamUserStatus(userId, status) {
|
||||
const res = await request.put('/institution/teamUser/status', {
|
||||
userId,
|
||||
status
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置用户密码
|
||||
* @param userId 用户id
|
||||
* @param password 密码
|
||||
* @returns {Promise<string>}
|
||||
*/
|
||||
export async function updateTeamUserPassword(userId, password = '123456') {
|
||||
const res = await request.put('/institution/teamUser/password', {
|
||||
userId,
|
||||
password
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入用户
|
||||
* @param file excel文件
|
||||
*/
|
||||
export async function importTeamUser(file) {
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
const res = await request.post('/institution/teamUser/import', formData);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查用户是否存在
|
||||
* @param field 检查的字段
|
||||
* @param value 字段的值
|
||||
* @param id 修改时的id
|
||||
*/
|
||||
export async function checkExistence(field, value, id) {
|
||||
const res = await request.get('/institution/teamUser/existence', {
|
||||
params: { field, value, id }
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 分页查询团队
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageTeams(params) {
|
||||
const res = await request.get('/institution/team/page', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询团队列表
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function listTeams(params) {
|
||||
const res = await request.get('/institution/team', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加团队
|
||||
* @param data 团队信息
|
||||
*/
|
||||
export async function addTeam(data) {
|
||||
const res = await request.post('/institution/team', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改团队
|
||||
* @param data 团队信息
|
||||
*/
|
||||
export async function updateTeam(data) {
|
||||
const res = await request.put('/institution/team', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除团队
|
||||
* @param id 团队id
|
||||
*/
|
||||
export async function removeTeam(id) {
|
||||
const res = await request.delete('/institution/team/' + id);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import { setToken } from '@/utils/token-util';
|
||||
* 登录
|
||||
*/
|
||||
export async function login(data) {
|
||||
//data.tenantId = 1; // 租户id
|
||||
data.tenantId = 1; // 租户id
|
||||
const res = await request.post('/login', data);
|
||||
if (res.data.code === 0) {
|
||||
setToken(res.data.data.access_token, data.remember);
|
||||
@@ -24,27 +24,3 @@ export async function getCaptcha() {
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取手机验证码
|
||||
*/
|
||||
export async function getCode(params) {
|
||||
const res = await request.get('/login/code/', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 忘记密码
|
||||
*/
|
||||
export async function forget(data) {
|
||||
const res = await request.post('/login/forget', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
@@ -1,392 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 分页查询活动
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageActivity(params) {
|
||||
const res = await request.get('/sylive/activity/page', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取活动信息
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function getActivityInfo(params) {
|
||||
const res = await request.get('/sylive/activity/info', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询活动
|
||||
* @param id 活动id
|
||||
*/
|
||||
export async function getActivity(id) {
|
||||
return getActivityInfo({ activityId: id });
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询活动列表
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function listActivity(params) {
|
||||
const res = await request.get('/sylive/activity', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0 && res.data.data) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加活动
|
||||
* @param data 活动信息
|
||||
*/
|
||||
export async function addActivity(data) {
|
||||
const res = await request.post('/sylive/activity', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改活动
|
||||
* @param data 活动信息
|
||||
*/
|
||||
export async function updateActivity(data) {
|
||||
const res = await request.put('/sylive/activity', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 复制活动
|
||||
* @param id 活动id
|
||||
*/
|
||||
export async function copyActivity(id) {
|
||||
const res = await request.get('/sylive/activity/copy/' + id);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改活动商品
|
||||
* @param data 活动信息
|
||||
*/
|
||||
export async function updateActivityItem(data) {
|
||||
const res = await request.put('/sylive/activity/item', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改活动券
|
||||
* @param data 活动信息
|
||||
*/
|
||||
export async function updateActivityCoupon(data) {
|
||||
const res = await request.put('/sylive/activity/coupon', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除活动
|
||||
* @param id 活动id
|
||||
*/
|
||||
export async function removeActivity(id) {
|
||||
return removeActivitys([id]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除活动
|
||||
* @param ids 活动id集合
|
||||
*/
|
||||
export async function removeActivitys(ids) {
|
||||
const res = await request.delete('/sylive/activity/batch', {
|
||||
data: { ids }
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改活动状态
|
||||
* @param userId 活动id
|
||||
* @param status 状态
|
||||
*/
|
||||
export async function updateActivityStatus(activityId, status) {
|
||||
const res = await request.put('/sylive/activity/status', {
|
||||
activityId,
|
||||
status
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询活动机构数据统计
|
||||
* @param id 活动id
|
||||
*/
|
||||
export async function getActivityStatistics(id) {
|
||||
const res = await request.get('/sylive/statistics/biz/' + id);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询活动团队数据统计
|
||||
* @param id 活动id
|
||||
*/
|
||||
export async function getActivityStatisticsTeam(id) {
|
||||
const res = await request.get('/sylive/statistics/team/' + id);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询门店统计
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageStatisticsArea(params) {
|
||||
const res = await request.get('/sylive/statistics/page_area', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 区域统计折线图
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function getStatisticsStackedArea(params) {
|
||||
const res = await request.get('/sylive/statistics/stacked_area', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询门店统计
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageStatisticsBiz(params) {
|
||||
const res = await request.get('/sylive/statistics/page_biz', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询顾问统计
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageStatisticsConsultant(params) {
|
||||
const res = await request.get('/sylive/statistics/page_consultant', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询门店统计
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageTeamStatisticsBiz(params) {
|
||||
const res = await request.get('/sylive/statistics/page_team_biz', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询团员统计
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageTeamStatisticsConsultant(params) {
|
||||
const res = await request.get('/sylive/statistics/page_team_consultant', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取区域饼状数据
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function getActivityPiechart(params) {
|
||||
const res = await request.get('/sylive/statistics/piechart', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0 && res.data.data) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取门店柱状数据
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function getActivityBarchart(params) {
|
||||
const res = await request.get('/sylive/statistics/barchart', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0 && res.data.data) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取顾问柱状数据
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function getActivitystoreBarchart(params) {
|
||||
const res = await request.get('/sylive/statistics/storebarchart', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0 && res.data.data) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取排名数据
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function getStatisticsRanking(params) {
|
||||
const res = await request.get('/sylive/statistics/ranking', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取漏头数据
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function getStatisticsFunnel(params) {
|
||||
const res = await request.get('/sylive/statistics/funnel', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 观看下单统计折线图
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function getStatisticsStackedWatchOrder(params) {
|
||||
const res = await request.get('/sylive/statistics/stacked_watchOrder', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改抽奖配置
|
||||
* @param data 信息
|
||||
*/
|
||||
export async function updateActivityDraw(data) {
|
||||
const res = await request.put('/sylive/activity/draw', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改回访标签
|
||||
* @param data 信息
|
||||
*/
|
||||
export async function updateActivityVisitTag(data) {
|
||||
const res = await request.put('/sylive/activity/visit_tag', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改黑名单
|
||||
* @param data 信息
|
||||
*/
|
||||
export async function updateActivityBlacklist(data) {
|
||||
const res = await request.put('/sylive/activity/blacklist', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入黑名单
|
||||
* @param file excel文件
|
||||
*/
|
||||
export async function importActivityBlacklist(file, activityId) {
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
formData.append('activityId', activityId);
|
||||
const res = await request.post('/sylive/activity/blacklist_import', formData);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 分页查询黑名单
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageBlacklist(params) {
|
||||
const res = await request.get('/sylive/blacklist/page', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加黑名单
|
||||
* @param data 黑名单信息
|
||||
*/
|
||||
export async function addBlacklist(data) {
|
||||
const res = await request.post('/sylive/blacklist', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除黑名单
|
||||
* @param id 黑名单id
|
||||
*/
|
||||
export async function removeBlacklist(id) {
|
||||
return removeBlacklists([id]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除黑名单
|
||||
* @param ids 黑名单id集合
|
||||
*/
|
||||
export async function removeBlacklists(ids) {
|
||||
const res = await request.delete('/sylive/blacklist/batch', {
|
||||
data: { ids }
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入黑名单
|
||||
* @param file excel文件
|
||||
*/
|
||||
export async function importBlacklist(file, activityId) {
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
formData.append('activityId', activityId);
|
||||
const res = await request.post('/sylive/blacklist/import', formData);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,103 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 分页查询商品
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageGoods(params) {
|
||||
const res = await request.get('/sylive/goods/page', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询商品列表
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function listGoods(params) {
|
||||
const res = await request.get('/sylive/goods/items', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0 && res.data.data) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询商品
|
||||
* @param id 商品id
|
||||
*/
|
||||
export async function getGoods(id) {
|
||||
const res = await request.get('/sylive/goods/' + id);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加商品
|
||||
* @param data 商品信息
|
||||
*/
|
||||
export async function addGoods(data) {
|
||||
const res = await request.post('/sylive/goods', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改商品
|
||||
* @param data 商品信息
|
||||
*/
|
||||
export async function updateGoods(data) {
|
||||
const res = await request.put('/sylive/goods', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改商品状态
|
||||
* @param itemId 商品id
|
||||
* @param status 状态
|
||||
*/
|
||||
export async function updateGoodsStatus(itemId, status) {
|
||||
const res = await request.put('/sylive/goods/status', {
|
||||
itemId,
|
||||
status
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除商品
|
||||
* @param id 商品id
|
||||
*/
|
||||
export async function removeGoods(id) {
|
||||
return removeGoodss([id]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除活动
|
||||
* @param ids 商品id集合
|
||||
*/
|
||||
export async function removeGoodss(ids) {
|
||||
const res = await request.delete('/sylive/goods/batch', {
|
||||
data: { ids }
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 查询订单列表
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function listGroupsCustomer(params) {
|
||||
const res = await request.get('/sylive/groupsCustomer', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出订单
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function exportGroupsCustomer(params) {
|
||||
const res = await request.get('/sylive/groupsCustomer/export', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入用户
|
||||
* @param file excel文件
|
||||
*/
|
||||
export async function importGroupsCustomer(file, activityId) {
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
formData.append('activityId', activityId);
|
||||
const res = await request.post('/sylive/groupsCustomer/import', formData);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,69 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 查询订单列表
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function listGroupsExchange(params) {
|
||||
const res = await request.get('/sylive/groupsExchange', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出订单
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function exportGroupsExchange(params) {
|
||||
const res = await request.get('/sylive/groupsExchange/export', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 操作详情
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function getGroupsExchangeDetail(params) {
|
||||
const res = await request.get('/sylive/groupsExchange/detail', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改使用状态
|
||||
* @param data 操作信息
|
||||
*/
|
||||
export async function updateGroupsExchangeUseStatus(data) {
|
||||
const res = await request.put('/sylive/groupsExchange/status', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入用户
|
||||
* @param file excel文件
|
||||
*/
|
||||
export async function importGroupsExchange(file) {
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
const res = await request.post('/sylive/groupsExchange/import', formData);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 查询订单列表
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function listGroupsOrder(params) {
|
||||
const res = await request.get('/sylive/groupsOrder', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出订单
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function exportGroupsOrder(params) {
|
||||
const res = await request.get('/sylive/groupsOrder/export', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入订单
|
||||
* @param file excel文件
|
||||
*/
|
||||
export async function importGroupsOrder(file, activityId) {
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
formData.append('activityId', activityId);
|
||||
const res = await request.post('/sylive/groupsOrder/import', formData);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,141 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 根据活动id查询分组数据统计
|
||||
* @param id 活动id
|
||||
*/
|
||||
export async function getGroupsStatistics(activityId) {
|
||||
const res = await request.get('/sylive/groupsStatistics', {
|
||||
params: { activityId }
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取漏头数据
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function getGroupsStatisticsFunnel(params) {
|
||||
const res = await request.get('/sylive/groupsStatistics/funnel', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取分级数据
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function getGroupsStatisticsLevel(params) {
|
||||
const res = await request.get('/sylive/groupsStatistics/level', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取门店数据
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function getGroupsStatisticsBiz(params) {
|
||||
const res = await request.get('/sylive/groupsStatistics/biz', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取顾问数据
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function getGroupsStatisticsConsultant(params) {
|
||||
const res = await request.get('/sylive/groupsStatistics/consultant', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取客户数据
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function getGroupsStatisticsCustomer(params) {
|
||||
const res = await request.get('/sylive/groupsStatistics/customer', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取观看下单统计折线图数据
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function getGroupsStatisticsWatchOrder(params) {
|
||||
const res = await request.get('/sylive/groupsStatistics/stacked_watchOrder', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出门店
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function exportGroupsStatisticsBiz(params) {
|
||||
const res = await request.get('/sylive/groupsStatistics/biz_export', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出顾问
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function exportGroupsStatisticsConsultant(params) {
|
||||
const res = await request.get('/sylive/groupsStatistics/consultant_export', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出客户
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function exportGroupsStatisticsCustomer(params) {
|
||||
const res = await request.get('/sylive/groupsStatistics/customer_export', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,164 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 分页查询用户
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageGroupsUser(params) {
|
||||
const res = await request.get('/sylive/groupsUser/page', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询用户列表
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function listGroupsUser(params) {
|
||||
const res = await request.get('/sylive/groupsUser', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0 && res.data.data) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询用户
|
||||
* @param id 用户id
|
||||
*/
|
||||
export async function getGroupsUser(id) {
|
||||
const res = await request.get('/sylive/groupsUser/' + id);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加用户
|
||||
* @param data 用户信息
|
||||
*/
|
||||
export async function addGroupsUser(data) {
|
||||
const res = await request.post('/sylive/groupsUser', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户
|
||||
* @param data 用户信息
|
||||
*/
|
||||
export async function updateGroupsUser(data) {
|
||||
const res = await request.put('/sylive/groupsUser', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除用户
|
||||
* @param id 用户id
|
||||
*/
|
||||
export async function removeGroupsUser(id) {
|
||||
return removeGroupsUsers([id]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除用户
|
||||
* @param ids 用户id集合
|
||||
*/
|
||||
export async function removeGroupsUsers(ids) {
|
||||
const res = await request.delete('/sylive/groupsUser/batch', {
|
||||
data: { ids }
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户状态
|
||||
* @param groupsUserId 用户id
|
||||
* @param status 状态
|
||||
*/
|
||||
export async function updateGroupsUserStatus(groupsUserId, status) {
|
||||
const res = await request.put('/sylive/groupsUser/status', {
|
||||
groupsUserId,
|
||||
status
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置用户密码
|
||||
* @param userId 用户id
|
||||
* @param password 密码
|
||||
* @returns {Promise<string>}
|
||||
*/
|
||||
export async function updateGroupsUserPassword(userId, password = '123456') {
|
||||
const res = await request.put('/sylive/groupsUser/password', {
|
||||
userId,
|
||||
password
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入用户
|
||||
* @param file excel文件
|
||||
*/
|
||||
export async function importGroupsUser(file) {
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
const res = await request.post('/sylive/groupsUser/import', formData);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查用户是否存在
|
||||
* @param field 检查的字段
|
||||
* @param value 字段的值
|
||||
* @param id 修改时的id
|
||||
*/
|
||||
export async function checkExistence(field, value, id) {
|
||||
const res = await request.get('/sylive/groupsUser/existence', {
|
||||
params: { field, value, id }
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步原始门店用户
|
||||
* @param groupsId 分组id
|
||||
*/
|
||||
export async function synchronousGroupsUser(groupsId) {
|
||||
const res = await request.get('/sylive/groupsUser/synchronous', {
|
||||
params: { groupsId }
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 查询订单列表
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function listGroupsWin(params) {
|
||||
const res = await request.get('/sylive/groupsWin', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出订单
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function exportGroupsWin(params) {
|
||||
const res = await request.get('/sylive/groupsWin/export', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 中奖类型
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function getGroupsWinType(params) {
|
||||
const res = await request.get('/sylive/groupsWin/win_type', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,95 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 分页查询分组
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageGroups(params) {
|
||||
const res = await request.get('/sylive/groups/page', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询分组列表
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function listGroups(params) {
|
||||
const res = await request.get('/sylive/groups', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询上级分组列表
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function listGroupsParent(params) {
|
||||
const res = await request.get('/sylive/groups/parent', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加分组
|
||||
* @param data 分组信息
|
||||
*/
|
||||
export async function addGroups(data) {
|
||||
const res = await request.post('/sylive/groups', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改分组
|
||||
* @param data 分组信息
|
||||
*/
|
||||
export async function updateGroups(data) {
|
||||
const res = await request.put('/sylive/groups', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除分组
|
||||
* @param id 分组id
|
||||
*/
|
||||
export async function removeGroups(id) {
|
||||
const res = await request.delete('/sylive/groups', {
|
||||
data: { id }
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出分组所有顾问
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function exportGroupsConsultant(params) {
|
||||
const res = await request.get('/sylive/groups/consultant_export', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,77 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 查询直播列表
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function listLive(params) {
|
||||
const res = await request.get('/sylive/live', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0 && res.data.data) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步直播场次数据
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function sessionApi(params) {
|
||||
const res = await request.get('/sylive/live/session_api', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步直播观看详情数据
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function viewApi(params) {
|
||||
const res = await request.get('/sylive/live/view_api', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0 && res.data.data) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出直播
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function exportLive(params) {
|
||||
const res = await request.get('/sylive/live/export', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
export async function listViewlog(params) {
|
||||
const res = await request.get('/sylive/live/viewlog', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
export async function exportViewlog(params) {
|
||||
const res = await request.get('/sylive/live/export_viewlog', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,164 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 分页查询用户
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageMembers(params) {
|
||||
const res = await request.get('/sylive/members/page', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改马甲
|
||||
* @param userId 用户id
|
||||
* @param maJiaId 马甲id
|
||||
*/
|
||||
export async function updateMembersMaJia(userId, maJiaId) {
|
||||
const res = await request.put('/sylive/members/majia', {
|
||||
userId,
|
||||
maJiaId
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询用户列表
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function listMembers(params) {
|
||||
const res = await request.post('/sylive/members/list', params);
|
||||
if (res.data.code === 0 && res.data.data) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询用户
|
||||
* @param id 用户id
|
||||
*/
|
||||
export async function getMembers(id) {
|
||||
const res = await request.get('/sylive/members/' + id);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加用户
|
||||
* @param data 用户信息
|
||||
*/
|
||||
export async function addMembers(data) {
|
||||
const res = await request.post('/sylive/members', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户
|
||||
* @param data 用户信息
|
||||
*/
|
||||
export async function updateMembers(data) {
|
||||
const res = await request.put('/sylive/members', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除用户
|
||||
* @param id 用户id
|
||||
*/
|
||||
export async function removeMembers(id) {
|
||||
return removeMembersBatch([id]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除用户
|
||||
* @param ids 用户id集合
|
||||
*/
|
||||
export async function removeMembersBatch(ids) {
|
||||
const res = await request.delete('/sylive/members/batch', {
|
||||
data: { ids }
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户状态
|
||||
* @param userId 用户id
|
||||
* @param status 状态
|
||||
*/
|
||||
export async function updateMembersStatus(userId, status) {
|
||||
const res = await request.put('/sylive/members/status', {
|
||||
userId,
|
||||
status
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置用户密码
|
||||
* @param membersId 用户id
|
||||
* @param password 密码
|
||||
* @returns {Promise<string>}
|
||||
*/
|
||||
export async function updateMembersPassword(membersId, password = '123456') {
|
||||
const res = await request.put('/sylive/members/password', {
|
||||
membersId,
|
||||
password
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入用户
|
||||
* @param file excel文件
|
||||
*/
|
||||
export async function importMembers(file) {
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
const res = await request.post('/sylive/members/import', formData);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查用户是否存在
|
||||
* @param field 检查的字段
|
||||
* @param value 字段的值
|
||||
* @param organizationId 机构id
|
||||
*/
|
||||
export async function checkExistence(field, value, organizationId) {
|
||||
const res = await request.get('/sylive/members/existence', {
|
||||
params: { field, value, organizationId }
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 查询订单列表
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function listOrder(params) {
|
||||
const res = await request.get('/sylive/order', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0 && res.data.data) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出订单
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function exportOrder(params) {
|
||||
const res = await request.get('/sylive/order/export', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 分页查询专题
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageSyTopicEnroll(params) {
|
||||
const res = await request.get('/sytopic/enroll/page', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
export async function pageSyTopicEnrollTypes() {
|
||||
const res = await request.get('/sytopic/enroll/status', {});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
export async function updateTopicEnrollStatus(id, status) {
|
||||
const res = await request.put('/sytopic/enroll/status', {
|
||||
id,
|
||||
status
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出订单
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function exportTopicEnroll(params) {
|
||||
const res = await request.get('/sytopic/enroll/export', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
export async function pageSyTopicEnrollTopic() {
|
||||
const res = await request.get('/sytopic/enroll/topicList', {});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,114 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 分页查询模块
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageSyTopicModule(params) {
|
||||
const res = await request.get('/sytopic/module/page', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加专题
|
||||
* @param data
|
||||
*/
|
||||
export async function addTopicModule(data) {
|
||||
const res = await request.post('/sytopic/module', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改专题
|
||||
* @param data
|
||||
*/
|
||||
export async function updateTopicModule(data) {
|
||||
const res = await request.put('/sytopic/module', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
* @param ids id集合
|
||||
*/
|
||||
export async function removeTopicModule(ids) {
|
||||
const res = await request.delete('/sytopic/module/delete', {
|
||||
data: { ids }
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取类型列表
|
||||
*/
|
||||
export async function pageTopicModuleTypes(params) {
|
||||
const res = await request.get('/sytopic/module/types', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询模块配置项
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageSyTopicModuleOptions(params) {
|
||||
const res = await request.get('/sytopic/module/options', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加专题配置项
|
||||
* @param data
|
||||
*/
|
||||
export async function addTopicModuleOptions(data) {
|
||||
const res = await request.post('/sytopic/module/options', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除模块配置
|
||||
* @param id id
|
||||
*/
|
||||
export async function removeTopicModuleOption(id) {
|
||||
const res = await request.delete('/sytopic/module/options', {
|
||||
data: { id }
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
export async function updateTopicModuleStatus(data) {
|
||||
const res = await request.put('/sytopic/module/status', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 分页查询专题
|
||||
* @param params 查询条件
|
||||
*/
|
||||
export async function pageSyTopic(params) {
|
||||
const res = await request.get('/sytopic/topic/page', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加专题
|
||||
* @param data
|
||||
*/
|
||||
export async function addTopic(data) {
|
||||
const res = await request.post('/sytopic/topic', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改专题
|
||||
* @param data
|
||||
*/
|
||||
export async function updateTopic(data) {
|
||||
const res = await request.put('/sytopic/topic', data);
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改活动状态
|
||||
* @param id 专题id
|
||||
* @param status 状态
|
||||
*/
|
||||
export async function updateTopicStatus(id, status) {
|
||||
const res = await request.put('/sytopic/topic/status', {
|
||||
id,
|
||||
status
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
* @param ids id集合
|
||||
*/
|
||||
export async function removeTopic(ids) {
|
||||
const res = await request.delete('/sytopic/topic/delete', {
|
||||
data: { ids }
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
|
||||
/**
|
||||
* 专题详情
|
||||
* @param params
|
||||
*/
|
||||
export async function getTopicDetail(params) {
|
||||
const res = await request.get('/sytopic/topic/detail', {
|
||||
params
|
||||
});
|
||||
if (res.data.code === 0) {
|
||||
return res.data.data;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
import { setToken } from '@/utils/token-util';
|
||||
|
||||
/**
|
||||
* 上传图片
|
||||
*/
|
||||
export async function upload(data) {
|
||||
const res = await request.post('/upload', data);
|
||||
//return res;
|
||||
// if (res.data.code === 0) {
|
||||
// //setToken(res.data.data.access_token, data.remember);
|
||||
// return res.data.message;
|
||||
// }
|
||||
// return Promise.reject(new Error(res.data.message));
|
||||
// request({
|
||||
// url: '/upload',
|
||||
// method: 'post',
|
||||
// data: data,
|
||||
// onUploadProgress: (e) => {
|
||||
// if (e.lengthComputable) {
|
||||
// //item.progress = e.loaded / e.total* 100;
|
||||
// }
|
||||
// }
|
||||
// }).then((res) => {
|
||||
// console.log(1111);
|
||||
// console.log(res);
|
||||
// });
|
||||
if (res.data.code === 0) {
|
||||
setToken(res.data.data.access_token, data.remember);
|
||||
return res.data.message;
|
||||
}
|
||||
return Promise.reject(new Error(res.data.message));
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
const BASE_URL = process.env.BASE_URL;
|
||||
import request from '@/utils/request';
|
||||
|
||||
// 默认加载插件
|
||||
const PLUGINS = [
|
||||
@@ -90,31 +89,11 @@ export const DEFAULT_CONFIG = {
|
||||
toolbar_mode: 'sliding',
|
||||
quickbars_insert_toolbar: '',
|
||||
images_upload_handler: (blobInfo, success, error) => {
|
||||
if (blobInfo.blob().size / 1024 > 10000) {
|
||||
error('大小不能超过 10M');
|
||||
if (blobInfo.blob().size / 1024 > 400) {
|
||||
error('大小不能超过 400KB');
|
||||
return;
|
||||
}
|
||||
const formData = new FormData();
|
||||
formData.append('file', blobInfo.blob());
|
||||
request({
|
||||
url: '/upload',
|
||||
method: 'post',
|
||||
data: formData
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.data.code === 0) {
|
||||
success(res.data.data.full_url);
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
error('上传失败!');
|
||||
});
|
||||
|
||||
// if (blobInfo.blob().size / 1024 > 400) {
|
||||
// error('大小不能超过 400KB');
|
||||
// return;
|
||||
// }
|
||||
// success('data:image/jpeg;base64,' + blobInfo.base64());
|
||||
success('data:image/jpeg;base64,' + blobInfo.base64());
|
||||
},
|
||||
file_picker_types: 'media',
|
||||
file_picker_callback: () => {}
|
||||
|
||||
@@ -1,108 +0,0 @@
|
||||
<!-- 上传图片组件 -->
|
||||
<template>
|
||||
<ele-image-upload
|
||||
v-model="imgs"
|
||||
:limit="limit"
|
||||
:drag="true"
|
||||
:multiple="multiple"
|
||||
:upload-handler="onHandler"
|
||||
@upload="onUpload"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import EleImageUpload from 'ele-admin/es/ele-image-upload';
|
||||
import request from '@/utils/request';
|
||||
export default {
|
||||
components: {
|
||||
EleImageUpload
|
||||
},
|
||||
name: 'UploadImg',
|
||||
props: {
|
||||
limit: {
|
||||
type: Number,
|
||||
default: 1
|
||||
},
|
||||
multiple: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
images: {
|
||||
default: null,
|
||||
type: Array
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
imgs: []
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
if (this.images && this.images.length > 0) {
|
||||
this.imgs = this.images;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
emitInput() {
|
||||
this.$emit('input', this.imgs);
|
||||
},
|
||||
onHandler(file) {
|
||||
const item = {
|
||||
file,
|
||||
uid: file.uid,
|
||||
name: file.name,
|
||||
progress: 0,
|
||||
status: null
|
||||
};
|
||||
if (!file.type.startsWith('image')) {
|
||||
this.$message.error('只能选择图片');
|
||||
return;
|
||||
}
|
||||
if (file.size / 1024 / 1024 > 2) {
|
||||
this.$message.error('大小不能超过 2MB');
|
||||
return;
|
||||
}
|
||||
item.url = window.URL.createObjectURL(file);
|
||||
// 关键就是这里要自己 push 添加数据而不是靠 v-modal 自动更新
|
||||
this.imgs.push(item);
|
||||
this.onUpload(item);
|
||||
},
|
||||
/* 上传 item */
|
||||
onUpload(item) {
|
||||
let that = this;
|
||||
item.status = 'uploading';
|
||||
const formData = new FormData();
|
||||
formData.append('file', item.file);
|
||||
request({
|
||||
url: '/upload',
|
||||
method: 'post',
|
||||
data: formData,
|
||||
onUploadProgress: (e) => {
|
||||
if (e.lengthComputable) {
|
||||
item.progress = (e.loaded / e.total) * 100;
|
||||
}
|
||||
}
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.data.code === 0) {
|
||||
item.status = 'done';
|
||||
item.url = res.data.data.full_url;
|
||||
item.fileUrl = res.data.data.url;
|
||||
that.emitInput();
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
item.status = 'exception';
|
||||
});
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
imgs: function () {
|
||||
this.emitInput();
|
||||
},
|
||||
images: function () {
|
||||
this.imgs = this.images;
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@@ -1,6 +1,5 @@
|
||||
// 接口地址
|
||||
export const API_BASE_URL = process.env.VUE_APP_API_BASE_URL;
|
||||
//export const API_BASE_URL = 'http://localhost:8088/system';
|
||||
|
||||
// 项目名称
|
||||
export const PROJECT_NAME = process.env.VUE_APP_NAME;
|
||||
@@ -63,4 +62,4 @@ export const MAP_KEY = '006d995d433058322319fa797f2876f5';
|
||||
|
||||
// EleAdmin 授权码, 自带的只能用于演示, 正式项目请更换为自己的授权码
|
||||
export const LICENSE_CODE =
|
||||
'dk9mcwJyetRWQlxWRiojIqJWdzJCLi4Wa4QDN5ojI0NWZIVnI6ICZpJCLiwiI3VkUMNVa6Iibvl2cyVmdQfiATMuEjI0NW==';
|
||||
'dk9mcwJyetRWQlxWRiojIqJWdzJCLi4WakJCLxojI0NWZkJiOi4Wah12bkFWZsVmLv1WZsISbvNmLulWbkJVUiojIklmI2JCLik3SFZHOiojIu9WazJXZQfgISMx4SM0NW==';
|
||||
|
||||
@@ -10,7 +10,7 @@ export default {
|
||||
website: 'Website',
|
||||
document: 'Document',
|
||||
authorization: 'Authorization',
|
||||
copyright: 'Copyright © 2022 好店云(厦门)科技有限公司'
|
||||
copyright: 'Copyright © 2022 Wuhan EClouds Technology Co., Ltd'
|
||||
},
|
||||
logout: {
|
||||
title: 'Confirm',
|
||||
|
||||
@@ -10,7 +10,7 @@ export default {
|
||||
website: '官网',
|
||||
document: '文档',
|
||||
authorization: '授权',
|
||||
copyright: 'Copyright © 2022 好店云(厦门)科技有限公司'
|
||||
copyright: 'Copyright © 2022 武汉易云智科技有限公司'
|
||||
},
|
||||
logout: {
|
||||
title: '提示',
|
||||
|
||||
@@ -10,7 +10,7 @@ export default {
|
||||
website: '官網',
|
||||
document: '檔案',
|
||||
authorization: '授權',
|
||||
copyright: 'Copyright © 2022 好店云(厦门)科技有限公司'
|
||||
copyright: 'Copyright © 2022 武漢易雲智科技有限公司'
|
||||
},
|
||||
logout: {
|
||||
title: '詢問',
|
||||
|
||||
@@ -13,6 +13,10 @@
|
||||
<div class="ele-admin-header-tool-item">
|
||||
<i18n-icon />
|
||||
</div>
|
||||
<!-- 消息通知 -->
|
||||
<div class="ele-admin-header-tool-item">
|
||||
<header-notice />
|
||||
</div>
|
||||
<!-- 用户信息 -->
|
||||
<div class="ele-admin-header-tool-item">
|
||||
<el-dropdown @command="onUserDropClick">
|
||||
@@ -52,12 +56,14 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// import HeaderNotice from './header-notice.vue';
|
||||
import PasswordModal from './password-modal.vue';
|
||||
import SettingDrawer from './setting-drawer.vue';
|
||||
import I18nIcon from './i18n-icon.vue';
|
||||
import { logout } from '@/utils/page-tab-util';
|
||||
|
||||
export default {
|
||||
// components: { HeaderNotice, PasswordModal, SettingDrawer, I18nIcon },
|
||||
components: { PasswordModal, SettingDrawer, I18nIcon },
|
||||
props: {
|
||||
// 是否是全屏
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!-- 全局页脚 -->
|
||||
<template>
|
||||
<div class="ele-text-center" style="padding: 16px 0">
|
||||
<!-- <div>
|
||||
<div>
|
||||
<a target="_blank" class="ele-text-secondary" href="https://eleadmin.com">
|
||||
{{ $t('layout.footer.website') }}
|
||||
</a>
|
||||
@@ -21,7 +21,7 @@
|
||||
>
|
||||
{{ $t('layout.footer.authorization') }}
|
||||
</a>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="ele-text-secondary" style="margin-top: 8px">
|
||||
{{ $t('layout.footer.copyright') }}
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<template>
|
||||
<!-- 20220923去掉 :project-name="PROJECT_NAME" -->
|
||||
<ele-pro-layout
|
||||
:menus="menus"
|
||||
:tabs="theme.tabs"
|
||||
@@ -21,6 +20,7 @@
|
||||
:colorful-icon="theme.colorfulIcon"
|
||||
:side-unique-open="theme.sideUniqueOpen"
|
||||
:style-responsive="theme.styleResponsive"
|
||||
:project-name="PROJECT_NAME"
|
||||
:hide-footers="HIDE_FOOTERS"
|
||||
:hide-sidebars="HIDE_SIDEBARS"
|
||||
:repeatable-tabs="REPEATABLE_TABS"
|
||||
@@ -28,6 +28,7 @@
|
||||
:home-path="HOME_PATH"
|
||||
:layout-path="LAYOUT_PATH"
|
||||
:redirect-path="REDIRECT_PATH"
|
||||
:tab-sortable="true"
|
||||
:locale="locale"
|
||||
:i18n="i18n"
|
||||
@update:collapse="updateCollapse"
|
||||
@@ -39,6 +40,7 @@
|
||||
@tab-remove-left="removeLeftPageTab"
|
||||
@tab-remove-right="removeRightPageTab"
|
||||
@tab-remove-other="removeOtherPageTab"
|
||||
@tabSortChange="setPageTabs"
|
||||
@reload-page="reloadPageTab"
|
||||
@logo-click="onLogoClick"
|
||||
@screen-size-change="screenSizeChange"
|
||||
@@ -49,8 +51,7 @@
|
||||
<router-layout />
|
||||
<!-- logo 图标 -->
|
||||
<template v-slot:logo>
|
||||
<!-- <img src="@/assets/logo.png" alt="logo" /> -->
|
||||
<img :src="logo" alt="logo" />
|
||||
<img src="@/assets/logo.svg" alt="logo" />
|
||||
</template>
|
||||
<!-- 顶栏右侧区域 -->
|
||||
<template v-slot:right>
|
||||
@@ -107,7 +108,8 @@
|
||||
removeRightPageTab,
|
||||
removeOtherPageTab,
|
||||
reloadPageTab,
|
||||
setHomeComponents
|
||||
setHomeComponents,
|
||||
setPageTabs
|
||||
} from '@/utils/page-tab-util';
|
||||
|
||||
export default {
|
||||
@@ -128,23 +130,9 @@
|
||||
LAYOUT_PATH,
|
||||
REDIRECT_PATH,
|
||||
// 是否全屏
|
||||
fullscreen: false,
|
||||
logo: ''
|
||||
fullscreen: false
|
||||
};
|
||||
},
|
||||
created() {
|
||||
let hostname = window.location.hostname;
|
||||
if (hostname == 'bo.liche.cn') {
|
||||
this.logo =
|
||||
'https://qs.haodian.cn/web/images/project/Admin-ShiYu/logo_hd.png';
|
||||
} else if (hostname == 'dongfeng.haodian.cn') {
|
||||
this.logo =
|
||||
'https://qs.haodian.cn/web/images/project/Admin-ShiYu/logo_df.png';
|
||||
} else {
|
||||
this.logo =
|
||||
'https://qs.haodian.cn/web/images/project/Admin-ShiYu/logo_hd.png';
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
// 当前语言
|
||||
locale() {
|
||||
@@ -241,7 +229,8 @@
|
||||
removeRightPageTab,
|
||||
removeOtherPageTab,
|
||||
reloadPageTab,
|
||||
setHomeComponents
|
||||
setHomeComponents,
|
||||
setPageTabs
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@@ -267,19 +256,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
.ele-admin-header .ele-admin-logo {
|
||||
display: block !important;
|
||||
text-align: left;
|
||||
padding-top: 16px;
|
||||
padding-left: 16px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.ele-admin-header .ele-admin-logo > img {
|
||||
width: 128px !important;
|
||||
height: 40px !important;
|
||||
}
|
||||
|
||||
// 父级菜单标题中右侧多定位一点,避免与箭头重合
|
||||
.el-submenu > .el-submenu__title .ele-menu-badge {
|
||||
right: 36px;
|
||||
|
||||
@@ -73,6 +73,12 @@ export default {
|
||||
setInfo({ commit }, value) {
|
||||
commit('setUserInfo', value);
|
||||
},
|
||||
/**
|
||||
* 更新菜单数据
|
||||
*/
|
||||
setMenus({ commit }, value) {
|
||||
commit('setMenus', value);
|
||||
},
|
||||
/**
|
||||
* 更新菜单的badge
|
||||
*/
|
||||
|
||||
@@ -166,6 +166,14 @@ export function setPageTab(data) {
|
||||
store.dispatch('theme/tabSetItem', data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新页签数据
|
||||
* @param data 页签数据
|
||||
*/
|
||||
export function setPageTabs(data) {
|
||||
store.dispatch('theme/setTabs', data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改页签标题
|
||||
* @param title 标题
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<template>
|
||||
<div class="ele-body">
|
||||
<el-card shadow="never">
|
||||
<el-card shadow="never" header="修改菜单徽章数据">
|
||||
<el-form label-width="90px" style="max-width: 360px; padding-top: 20px">
|
||||
<el-form-item label="菜单:">
|
||||
<ele-tree-select
|
||||
clearable
|
||||
v-model="path"
|
||||
:data="menus"
|
||||
:data="treeData"
|
||||
default-expand-all
|
||||
placeholder="请选择菜单"
|
||||
/>
|
||||
@@ -38,6 +38,21 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<el-card shadow="never" header="分组菜单">
|
||||
<div>
|
||||
<el-button type="primary" @click="toMenuGroup1">
|
||||
一级菜单变为分组形式
|
||||
</el-button>
|
||||
</div>
|
||||
<div style="margin-top: 16px">
|
||||
<el-button type="primary" @click="toMenuGroup2">
|
||||
二级菜单变为分组形式
|
||||
</el-button>
|
||||
</div>
|
||||
<div class="ele-text-secondary" style="margin-top: 6px">
|
||||
二级菜单可查看列表页面/卡片列表的效果
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -50,11 +65,12 @@
|
||||
return {
|
||||
path: '',
|
||||
badge: '',
|
||||
color: ''
|
||||
color: '',
|
||||
orgMenus: JSON.parse(JSON.stringify(this.$store.state.user.menus))
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
menus() {
|
||||
treeData() {
|
||||
return formatTreeData(this.$store.state.user.menus, (m) => {
|
||||
return {
|
||||
...m,
|
||||
@@ -75,6 +91,43 @@
|
||||
value: this.badge,
|
||||
color: this.color || undefined
|
||||
});
|
||||
},
|
||||
/* 一级菜单变为分组形式 */
|
||||
toMenuGroup1() {
|
||||
this.$store.dispatch(
|
||||
'user/setMenus',
|
||||
this.orgMenus.map((m) => {
|
||||
return {
|
||||
...m,
|
||||
meta: {
|
||||
...m.meta,
|
||||
group: true
|
||||
}
|
||||
};
|
||||
})
|
||||
);
|
||||
},
|
||||
/* 二级菜单变为分组形式 */
|
||||
toMenuGroup2() {
|
||||
this.$store.dispatch(
|
||||
'user/setMenus',
|
||||
this.orgMenus.map((m) => {
|
||||
return {
|
||||
...m,
|
||||
children: m.children
|
||||
? m.children.map((c) => {
|
||||
return {
|
||||
...c,
|
||||
meta: {
|
||||
...c.meta,
|
||||
group: true
|
||||
}
|
||||
};
|
||||
})
|
||||
: void 0
|
||||
};
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
<template>
|
||||
<div class="ele-body">
|
||||
<el-card shadow="never">
|
||||
<div>
|
||||
菜单一和菜单二是同一个路由同一个组件, 只是路由参数不同,
|
||||
侧栏会选中各自对应的菜单:
|
||||
</div>
|
||||
<div>参数 id : {{ id }}</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'ExampleMenu',
|
||||
data() {
|
||||
return {
|
||||
id: undefined
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
$route: {
|
||||
handler() {
|
||||
const path = this.$route.path;
|
||||
if (path !== '/example/menu') {
|
||||
return;
|
||||
}
|
||||
this.id = this.$route.query.id;
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,41 @@
|
||||
<template>
|
||||
<div class="ele-body">
|
||||
<el-card shadow="never" header="基本用法">
|
||||
<ele-dashboard type="success" style="margin-right: 18px">
|
||||
<div style="line-height: 1">
|
||||
<span style="font-size: 48px">100</span>
|
||||
<span style="font-size: 12px; margin-left: 4px">分</span>
|
||||
</div>
|
||||
<div style="margin-top: 4px">安全</div>
|
||||
</ele-dashboard>
|
||||
<ele-dashboard type="warning" style="margin-right: 18px">
|
||||
<div style="line-height: 1">
|
||||
<span style="font-size: 48px">70</span>
|
||||
<span style="font-size: 12px; margin-left: 4px">分</span>
|
||||
</div>
|
||||
<div style="margin-top: 4px">待优化</div>
|
||||
</ele-dashboard>
|
||||
<ele-dashboard type="danger">
|
||||
<div style="line-height: 1">
|
||||
<span style="font-size: 48px">40</span>
|
||||
<span style="font-size: 12px; margin-left: 4px">分</span>
|
||||
</div>
|
||||
<div style="margin-top: 4px">高风险</div>
|
||||
</ele-dashboard>
|
||||
</el-card>
|
||||
<el-card shadow="never" header="自定义颜色和尺寸">
|
||||
<ele-dashboard color="#722ED1" style="margin-right: 18px">
|
||||
<div style="font-size: 48px">100</div>
|
||||
</ele-dashboard>
|
||||
<ele-dashboard size="116px" space="12px">
|
||||
<div style="font-size: 38px">100</div>
|
||||
</ele-dashboard>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'ExtensionDashboard'
|
||||
};
|
||||
</script>
|
||||
@@ -63,6 +63,7 @@
|
||||
:destroy-on-close="destroyOnClose"
|
||||
:mask-keep-alive="inner || !destroyOnClose"
|
||||
:position="position"
|
||||
@closed="cancel"
|
||||
>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="82px">
|
||||
<el-form-item label="用户名:" prop="nickname">
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
@sort-change="onSortChange"
|
||||
@update:checked="updateChecked"
|
||||
@item-context-menu="onCtxMenuClick"
|
||||
:icons="icons"
|
||||
:sm-icons="smIcons"
|
||||
>
|
||||
<template v-slot:context-menu="{ item }">
|
||||
<el-dropdown-item command="open">打开</el-dropdown-item>
|
||||
@@ -64,6 +66,7 @@
|
||||
import EleFileList from 'ele-admin/es/ele-file-list';
|
||||
import NameEdit from './name-edit.vue';
|
||||
import { removeUserFile } from '@/api/system/user-file';
|
||||
import { icons, smIcons } from 'ele-admin/es/ele-file-list/icons';
|
||||
|
||||
export default {
|
||||
components: { EleFileList, NameEdit },
|
||||
@@ -83,6 +86,24 @@
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
icons: icons.map((d) => {
|
||||
return {
|
||||
...d,
|
||||
icon: d.icon.replace(
|
||||
'https://cdn.eleadmin.com/20200609/',
|
||||
'/ele-file-list/'
|
||||
)
|
||||
};
|
||||
}),
|
||||
smIcons: smIcons.map((d) => {
|
||||
return {
|
||||
...d,
|
||||
icon: d.icon.replace(
|
||||
'https://cdn.eleadmin.com/20200609/',
|
||||
'/ele-file-list/'
|
||||
)
|
||||
};
|
||||
}),
|
||||
// 图片预览列表
|
||||
previewImages: [],
|
||||
// 图片预览配置
|
||||
|
||||
@@ -28,11 +28,14 @@
|
||||
<div>
|
||||
<div style="margin: 20px 0 10px 0">loading</div>
|
||||
<div class="ele-action-group">
|
||||
<el-button size="small" @click="showLoadingMessage2">
|
||||
带遮罩层 loading
|
||||
</el-button>
|
||||
<el-button size="small" @click="showLoadingMessage1">
|
||||
透明遮罩层
|
||||
Loading
|
||||
</el-button>
|
||||
<el-button size="small" @click="showLoadingMessage2">
|
||||
加遮罩层
|
||||
</el-button>
|
||||
<el-button size="small" @click="showLoadingMessage3">
|
||||
居中显示
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -171,7 +174,17 @@
|
||||
showLoadingMessage2() {
|
||||
const loading = this.$messageLoading({
|
||||
message: '正在加载中..',
|
||||
background: 'rgba(0, 0, 0, .15)'
|
||||
background: true
|
||||
});
|
||||
setTimeout(() => {
|
||||
loading.close();
|
||||
}, 3000);
|
||||
},
|
||||
showLoadingMessage3() {
|
||||
const loading = this.$messageLoading({
|
||||
message: '正在加载中..',
|
||||
background: true,
|
||||
center: true
|
||||
});
|
||||
setTimeout(() => {
|
||||
loading.close();
|
||||
|
||||
@@ -0,0 +1,179 @@
|
||||
<template>
|
||||
<div class="ele-body">
|
||||
<el-card shadow="never" header="基本用法">
|
||||
<div class="option-item">
|
||||
<div>显示折叠按钮:</div>
|
||||
<div class="option-item-body">
|
||||
<el-radio-group v-model="allowCollapse">
|
||||
<el-radio :label="true">是</el-radio>
|
||||
<el-radio :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
</div>
|
||||
<div class="option-item">
|
||||
<div>支持自由拉伸:</div>
|
||||
<div class="option-item-body">
|
||||
<el-radio-group v-model="resizable">
|
||||
<el-radio :label="true">是</el-radio>
|
||||
<el-radio :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
</div>
|
||||
<div class="option-item">
|
||||
<div>上下布局模式:</div>
|
||||
<div class="option-item-body">
|
||||
<el-radio-group v-model="vertical">
|
||||
<el-radio :label="true">是</el-radio>
|
||||
<el-radio :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
</div>
|
||||
<div class="option-item">
|
||||
<div>反转布局方向:</div>
|
||||
<div class="option-item-body">
|
||||
<el-radio-group v-model="reverse">
|
||||
<el-radio :label="true">是</el-radio>
|
||||
<el-radio :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
</div>
|
||||
<ele-split-layout
|
||||
space="0px"
|
||||
:allow-collapse="allowCollapse"
|
||||
:resizable="resizable"
|
||||
:vertical="vertical"
|
||||
:reverse="reverse"
|
||||
:min-size="40"
|
||||
:left-style="{
|
||||
background: 'rgba(185, 182, 229, .4)',
|
||||
overflow: 'hidden'
|
||||
}"
|
||||
:right-style="{
|
||||
background: 'rgba(125, 226, 252, .4)',
|
||||
overflow: 'hidden'
|
||||
}"
|
||||
style="height: 480px; margin-top: 12px"
|
||||
>
|
||||
<div>边栏</div>
|
||||
<template #content>
|
||||
<div>内容</div>
|
||||
</template>
|
||||
</ele-split-layout>
|
||||
</el-card>
|
||||
<el-card shadow="never" header="组合使用">
|
||||
<div style="margin: 0 0 8px 0">先左右再上下</div>
|
||||
<ele-split-layout
|
||||
space="0px"
|
||||
:resizable="true"
|
||||
:min-size="40"
|
||||
:max-size="-40"
|
||||
:left-style="{
|
||||
background: 'rgba(185, 182, 229, .4)',
|
||||
overflow: 'hidden'
|
||||
}"
|
||||
:right-style="{ overflow: 'hidden' }"
|
||||
:responsive="false"
|
||||
style="height: 400px"
|
||||
>
|
||||
<div>边栏</div>
|
||||
<template #content>
|
||||
<ele-split-layout
|
||||
space="0px"
|
||||
width="240px"
|
||||
:min-size="40"
|
||||
:max-size="-40"
|
||||
:resizable="true"
|
||||
:vertical="true"
|
||||
:left-style="{
|
||||
background: 'rgba(171, 199, 255, .5)',
|
||||
overflow: 'hidden'
|
||||
}"
|
||||
:right-style="{
|
||||
background: 'rgba(125, 226, 252, .4)',
|
||||
overflow: 'hidden'
|
||||
}"
|
||||
:responsive="false"
|
||||
style="height: 400px"
|
||||
>
|
||||
<div>内容一</div>
|
||||
<template #content>
|
||||
<div>内容二</div>
|
||||
</template>
|
||||
</ele-split-layout>
|
||||
</template>
|
||||
</ele-split-layout>
|
||||
<div style="margin: 16px 0 8px 0">先上下再左右</div>
|
||||
<ele-split-layout
|
||||
space="0px"
|
||||
width="120px"
|
||||
:min-size="40"
|
||||
:max-size="-40"
|
||||
:vertical="true"
|
||||
:resizable="true"
|
||||
:left-style="{
|
||||
background: 'rgba(185, 182, 229, .4)',
|
||||
overflow: 'hidden'
|
||||
}"
|
||||
:right-style="{ overflow: 'hidden' }"
|
||||
:responsive="false"
|
||||
style="height: 400px"
|
||||
>
|
||||
<div>顶栏</div>
|
||||
<template #content>
|
||||
<ele-split-layout
|
||||
space="0px"
|
||||
:min-size="40"
|
||||
:max-size="-40"
|
||||
:resizable="true"
|
||||
:left-style="{
|
||||
background: 'rgba(171, 199, 255, .5)',
|
||||
overflow: 'hidden'
|
||||
}"
|
||||
:right-style="{
|
||||
background: 'rgba(125, 226, 252, .4)',
|
||||
overflow: 'hidden'
|
||||
}"
|
||||
:responsive="false"
|
||||
style="height: 100%"
|
||||
>
|
||||
<div>边栏</div>
|
||||
<template #content>
|
||||
<div>内容</div>
|
||||
</template>
|
||||
</ele-split-layout>
|
||||
</template>
|
||||
</ele-split-layout>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'ExtensionSplit',
|
||||
data() {
|
||||
return {
|
||||
allowCollapse: true,
|
||||
resizable: false,
|
||||
vertical: false,
|
||||
reverse: false
|
||||
};
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.option-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.option-item-body {
|
||||
flex: 1;
|
||||
padding-left: 12px;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
& + .option-item {
|
||||
margin-top: 6px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -197,7 +197,7 @@
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.ele-status-dot + .ele-status-dot {
|
||||
.ele-dot + .ele-dot {
|
||||
margin-left: 16px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -0,0 +1,150 @@
|
||||
<template>
|
||||
<div class="ele-body">
|
||||
<el-card shadow="never" header="基本用法">
|
||||
<div>
|
||||
<el-button type="primary" @click="onStart1">开始引导</el-button>
|
||||
</div>
|
||||
<div style="margin-top: 20px">
|
||||
<el-button ref="uploadRef1">Upload</el-button>
|
||||
<el-button ref="saveRef1" type="primary">Save</el-button>
|
||||
<el-button ref="moreRef1">More</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card shadow="never" header="不带遮罩层">
|
||||
<div>
|
||||
<el-button type="primary" @click="onStart2">开始引导</el-button>
|
||||
</div>
|
||||
<div style="margin-top: 20px">
|
||||
<el-button ref="uploadRef2">Upload</el-button>
|
||||
<el-button ref="saveRef2" type="primary">Save</el-button>
|
||||
<el-button ref="moreRef2">More</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card shadow="never" header="混合弹窗等多种形式">
|
||||
<div>
|
||||
<el-button type="primary" @click="onStart3">开始引导</el-button>
|
||||
</div>
|
||||
<div style="margin-top: 20px">
|
||||
<el-button ref="uploadRef3">Upload</el-button>
|
||||
<el-button ref="saveRef3" type="primary">Save</el-button>
|
||||
<el-button ref="moreRef3">More</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
<ele-tour v-model="current1" :steps="steps1" />
|
||||
<ele-tour v-model="current2" :steps="steps2" :mask="false" />
|
||||
<ele-tour v-model="current3" :steps="steps3">
|
||||
<template #text="{ step, current }">
|
||||
<template v-if="current === 0">
|
||||
<div style="margin-bottom: 10px">
|
||||
<img
|
||||
src="https://gw.alipayobjects.com/mdn/rms_08e378/afts/img/A*P0S-QIRUbsUAAAAAAAAAAABkARQnAQ"
|
||||
style="height: 184px; width: 100%; object-fit: cover"
|
||||
/>
|
||||
</div>
|
||||
<div>{{ step.description }}</div>
|
||||
</template>
|
||||
</template>
|
||||
</ele-tour>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'ExtensionTour',
|
||||
data() {
|
||||
return {
|
||||
// 当前步骤
|
||||
current1: null,
|
||||
// 步骤
|
||||
steps1: [
|
||||
{
|
||||
target: () => this.$refs.uploadRef1?.$el,
|
||||
title: '如何进行文件上传',
|
||||
description: '点击这个按钮在弹出框中选择想要上传的文件即可.'
|
||||
},
|
||||
{
|
||||
target: () => this.$refs.saveRef1?.$el,
|
||||
title: '如何提交数据',
|
||||
description: '数据录入完成后点击这个按钮即可提交数据到后台.'
|
||||
},
|
||||
{
|
||||
target: () => this.$refs.moreRef1?.$el,
|
||||
title: '如何进行更多的操作',
|
||||
description: '鼠标移入到此按钮上即可展示出更多的操作功能.'
|
||||
}
|
||||
],
|
||||
// 当前步骤
|
||||
current2: null,
|
||||
// 按钮
|
||||
uploadRef2: null,
|
||||
saveRef2: null,
|
||||
moreRef2: null,
|
||||
// 步骤
|
||||
steps2: [
|
||||
{
|
||||
target: () => this.$refs.uploadRef2?.$el,
|
||||
title: '如何进行文件上传',
|
||||
description: '点击这个按钮在弹出框中选择想要上传的文件即可.',
|
||||
popoverProps: { placement: 'top-start' }
|
||||
},
|
||||
{
|
||||
target: () => this.$refs.saveRef2?.$el,
|
||||
title: '如何提交数据',
|
||||
description: '数据录入完成后点击这个按钮即可提交数据到后台.',
|
||||
popoverProps: { placement: 'bottom' }
|
||||
},
|
||||
{
|
||||
target: () => this.$refs.moreRef2?.$el,
|
||||
title: '如何进行更多的操作',
|
||||
description: '鼠标移入到此按钮上即可展示出更多的操作功能.',
|
||||
popoverProps: { placement: 'top-end' }
|
||||
}
|
||||
],
|
||||
// 当前步骤
|
||||
current3: null,
|
||||
// 按钮
|
||||
uploadRef3: null,
|
||||
saveRef3: null,
|
||||
moreRef3: null,
|
||||
// 步骤
|
||||
steps3: [
|
||||
{
|
||||
title: '欢迎使用 EleAdmin 系统',
|
||||
description:
|
||||
'下面将为您介绍一些常用功能的操作说明, 如果之前已经为您介绍过, 您可以直接点击跳过结束指引.'
|
||||
},
|
||||
{
|
||||
target: () => this.$refs.uploadRef3?.$el,
|
||||
title: '如何进行文件上传',
|
||||
description: '点击这个按钮在弹出框中选择想要上传的文件即可.'
|
||||
},
|
||||
{
|
||||
target: () => this.$refs.saveRef3?.$el,
|
||||
title: '如何提交数据',
|
||||
description: '数据录入完成后点击这个按钮即可提交数据到后台.',
|
||||
mask: false
|
||||
},
|
||||
{
|
||||
target: () => this.$refs.moreRef3?.$el,
|
||||
title: '如何进行更多的操作',
|
||||
description: '鼠标移入到此按钮上即可展示出更多的操作功能.'
|
||||
}
|
||||
]
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
/* 开始引导 */
|
||||
onStart1() {
|
||||
this.current1 = 0;
|
||||
},
|
||||
/* 开始引导 */
|
||||
onStart2() {
|
||||
this.current2 = 0;
|
||||
},
|
||||
/* 开始引导 */
|
||||
onStart3() {
|
||||
this.current3 = 0;
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||