@@ -1,11 +1,34 @@ | |||||
<!-- | <!-- | ||||
* @Date: 2021-11-29 11:14:13 | * @Date: 2021-11-29 11:14:13 | ||||
* @LastEditors: JinxChen | * @LastEditors: JinxChen | ||||
* @LastEditTime: 2022-08-06 16:05:38 | |||||
* @FilePath: \telpoAdminTemplate\README.md | |||||
* @LastEditTime: 2022-08-08 11:10:32 | |||||
* @FilePath: \TelpoUserManageAdmin\README.md | |||||
* @description: | * @description: | ||||
--> | --> | ||||
##TELPO_ADMIN_TELMALATE | |||||
##TELPO_USER_MANAGE_ADMIN | |||||
## Project setup | |||||
``` | |||||
npm install | |||||
``` | |||||
### Compiles and hot-reloads for development | |||||
``` | |||||
npm run dev | |||||
``` | |||||
### Compiles and minifies for production | |||||
``` | |||||
npm run build | |||||
``` | |||||
### Lints and fixes files | |||||
``` | |||||
npm run lint | |||||
``` | |||||
### Customize configuration | |||||
See [Configuration Reference](https://cli.vuejs.org/config/). | |||||
## 版本号管理 | ## 版本号管理 | ||||
- 版本格式:主版本号.次版本号.修订号 | - 版本格式:主版本号.次版本号.修订号 | ||||
1.主版本号:当你做了不兼容的 API 修改( 一般项目发生重大功能改变) | 1.主版本号:当你做了不兼容的 API 修改( 一般项目发生重大功能改变) | ||||
@@ -34,4 +57,12 @@ fix | |||||
##备注 | ##备注 | ||||
- 此项目仅仅集成了一些element-admin的功能,具体可前往官网查看 | - 此项目仅仅集成了一些element-admin的功能,具体可前往官网查看 | ||||
- 官网地址 https://panjiachen.gitee.io/vue-element-admin-site/zh/guide/ | |||||
- 官网地址 https://panjiachen.gitee.io/vue-element-admin-site/zh/guide/ | |||||
##项目 | |||||
## v1.0.0 | |||||
`2022.8.8` | |||||
feat | |||||
- 增加 收单系统,众筹拼单系统,消息管理和系统管理路由配置 |
@@ -38,7 +38,7 @@ export default { | |||||
const script = document.createElement("script"); | const script = document.createElement("script"); | ||||
script.src = "//cdn.jsdelivr.net/npm/eruda"; | script.src = "//cdn.jsdelivr.net/npm/eruda"; | ||||
document.body.appendChild(script); | document.body.appendChild(script); | ||||
script.onload = function(eruda) { | |||||
script.onload = function() { | |||||
eruda.init(); | eruda.init(); | ||||
}; | }; | ||||
} | } | ||||
@@ -1,14 +1,14 @@ | |||||
<!-- | <!-- | ||||
* @Date: 2021-11-30 17:19:51 | * @Date: 2021-11-30 17:19:51 | ||||
* @LastEditors: JinxChen | * @LastEditors: JinxChen | ||||
* @LastEditTime: 2022-08-06 15:58:24 | |||||
* @FilePath: \telpoAdminTemplate\src\components\TTable\TTable.vue | |||||
* @LastEditTime: 2022-08-08 16:11:03 | |||||
* @FilePath: \TelpoUserManageAdmin\src\components\TTable\TTable.vue | |||||
* @description: 封装通用的table组件 | * @description: 封装通用的table组件 | ||||
--> | --> | ||||
<template> | <template> | ||||
<div class="app-container"> | <div class="app-container"> | ||||
<!-- 表格 --> | <!-- 表格 --> | ||||
<el-table :data="tableData" border fit highlight-current-row @sort-change="sortChange" > | |||||
<el-table :data="tableData" border fit highlight-current-row @sort-change="sortChange" :height="400" > | |||||
<template v-for="column in columns"> | <template v-for="column in columns"> | ||||
<!-- 标题 --> | <!-- 标题 --> | ||||
<el-table-column | <el-table-column | ||||
@@ -1,8 +1,8 @@ | |||||
<!-- | <!-- | ||||
* @Date: 2021-11-29 11:20:35 | * @Date: 2021-11-29 11:20:35 | ||||
* @LastEditors: JinxChen | * @LastEditors: JinxChen | ||||
* @LastEditTime: 2022-08-06 10:29:09 | |||||
* @FilePath: \telpoAdminTemplate\src\layout\components\Sidebar\Logo.vue | |||||
* @LastEditTime: 2022-08-08 10:55:55 | |||||
* @FilePath: \TelpoUserManageAdmin\src\layout\components\Sidebar\Logo.vue | |||||
* @description: | * @description: | ||||
--> | --> | ||||
<template> | <template> | ||||
@@ -31,7 +31,7 @@ export default { | |||||
}, | }, | ||||
data() { | data() { | ||||
return { | return { | ||||
title: '天波后台管理模板', | |||||
title: '用户运营管理系统', | |||||
logo: require('@/assets/telpo.png') | logo: require('@/assets/telpo.png') | ||||
} | } | ||||
} | } | ||||
@@ -1,5 +1,12 @@ | |||||
<!-- | |||||
* @Date: 2022-08-06 16:22:32 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 16:53:58 | |||||
* @FilePath: \TelpoUserManageAdmin\src\layout\components\TagsView\ScrollPane.vue | |||||
* @description: | |||||
--> | |||||
<template> | <template> | ||||
<el-scrollbar ref="scrollContainer" :vertical="false" class="scroll-container" @wheel.native.prevent="handleScroll"> | |||||
<el-scrollbar ref="scrollContainer" :vertical="true" class="scroll-container" @wheel.native.prevent="handleScroll"> | |||||
<slot /> | <slot /> | ||||
</el-scrollbar> | </el-scrollbar> | ||||
</template> | </template> | ||||
@@ -87,7 +94,7 @@ export default { | |||||
bottom: 0px; | bottom: 0px; | ||||
} | } | ||||
.el-scrollbar__wrap { | .el-scrollbar__wrap { | ||||
height: 49px; | |||||
height: 65px; | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -205,7 +205,6 @@ export default { | |||||
border-bottom: 1px solid #d8dce5; | border-bottom: 1px solid #d8dce5; | ||||
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04); | box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04); | ||||
.tags-view-wrapper { | .tags-view-wrapper { | ||||
margin-left: 25px; | |||||
.tags-view-item { | .tags-view-item { | ||||
display: inline-block; | display: inline-block; | ||||
position: relative; | position: relative; | ||||
@@ -218,7 +217,7 @@ export default { | |||||
padding: 0 8px; | padding: 0 8px; | ||||
font-size: 12px; | font-size: 12px; | ||||
margin-left: 5px; | margin-left: 5px; | ||||
margin-top: 4px; | |||||
margin-top: 5px; | |||||
margin-bottom: 10px; | margin-bottom: 10px; | ||||
border-radius: 5px; | border-radius: 5px; | ||||
&:first-of-type { | &:first-of-type { | ||||
@@ -228,9 +227,9 @@ export default { | |||||
margin-right: 15px; | margin-right: 15px; | ||||
} | } | ||||
&.active { | &.active { | ||||
background-color: #42b983; | |||||
background-color: /* #42b983 */#409EFF; | |||||
color: #fff; | color: #fff; | ||||
border-color: #42b983; | |||||
border-color: /* #42b983 */#409EFF; | |||||
&::before { | &::before { | ||||
content: ''; | content: ''; | ||||
background: #fff; | background: #fff; | ||||
@@ -61,13 +61,193 @@ export const constantRoutes = [{ | |||||
component: () => import('@/views/dashboard/index'), | component: () => import('@/views/dashboard/index'), | ||||
meta: { | meta: { | ||||
title: '首页', | title: '首页', | ||||
icon: 'dashboard', | |||||
icon: 'el-icon-s-home', | |||||
affix: true | affix: true | ||||
} | } | ||||
}] | }] | ||||
}, | }, | ||||
// 禁入区域管理 | |||||
// 收单系统 todo | |||||
{ | { | ||||
path: '/collection-order-system', | |||||
component: Layout, | |||||
redirect: 'collection-order-system/collection-order-list', | |||||
name: 'collection-order-system', | |||||
meta: { | |||||
title: '收单系统', | |||||
icon: 'el-icon-s-help' | |||||
}, | |||||
children: [ | |||||
{ | |||||
path: '/collection-order-list', | |||||
name: 'collection-order-list', | |||||
component: () => import('@/views/collection-order-system/main/collection-order-list/index'), | |||||
meta: { | |||||
title: '收单系统', //收单列表 | |||||
icon: 'el-icon-s-order' | |||||
} | |||||
}, | |||||
] | |||||
}, | |||||
// 众筹拼单系统 | |||||
{ | |||||
path: 'crowd-funding-otrder-system', | |||||
component: Layout, | |||||
redirect: 'crowd-funding-otrder-system/package-manage', | |||||
name: 'crowd-funding-otrder-system', | |||||
meta: { | |||||
title: '众筹拼单系统', | |||||
icon: 'el-icon-s-help' | |||||
}, | |||||
children: [ | |||||
{ | |||||
path: '/package-manage', | |||||
name: 'package-manage', | |||||
component: () => import('@/views/crowd-funding-otrder-system/main/package-manage/index'), | |||||
meta: { | |||||
title: '套餐管理', | |||||
icon: 'el-icon-burger' | |||||
} | |||||
}, | |||||
{ | |||||
path: '/crowd-funding-otrder-manage', | |||||
name: 'crowd-funding-otrder-manage', | |||||
component: () => import('@/views/crowd-funding-otrder-system/main/crowd-funding-otrder-manage/index'), | |||||
meta: { | |||||
title: '拼单管理', | |||||
icon: 'el-icon-c-scale-to-original' | |||||
} | |||||
}, | |||||
{ | |||||
path: '/participants-manage', | |||||
name: 'participants-manage', | |||||
component: () => import('@/views/crowd-funding-otrder-system/main/participants-manage/index'), | |||||
meta: { | |||||
title: '参与人管理', | |||||
icon: 'el-icon-s-custom' | |||||
} | |||||
}, | |||||
{ | |||||
path: '/order-fulfillment', | |||||
name: 'order-fulfillment', | |||||
component: () => import('@/views/crowd-funding-otrder-system/main/order-fulfillment/index'), | |||||
meta: { | |||||
title: '订单执行', | |||||
icon: 'el-icon-s-ticket' | |||||
} | |||||
}, | |||||
{ | |||||
path: '/customer-statistics', | |||||
name: 'customer-statistics', | |||||
component: () => import('@/views/crowd-funding-otrder-system/main/customer-statistics/index'), | |||||
meta: { | |||||
title: '客户统计', | |||||
icon: 'el-icon-s-data' | |||||
} | |||||
}, | |||||
{ | |||||
path: '/rules-setting', | |||||
name: 'rules-setting', | |||||
component: () => import('@/views/crowd-funding-otrder-system/main/rules-setting/index'), | |||||
meta: { | |||||
title: '规则设置', | |||||
icon: 'el-icon-s-unfold' | |||||
} | |||||
}, | |||||
] | |||||
}, | |||||
// 公众号消息管理 | |||||
{ | |||||
path: 'message-manage', | |||||
component: Layout, | |||||
redirect: 'message-manage/wechat-fans', | |||||
name: 'message-manage', | |||||
meta: { | |||||
title: '消息管理', | |||||
icon: 'el-icon-message-solid' | |||||
}, | |||||
children: [ | |||||
{ | |||||
path: '/wechat-fans', | |||||
name: 'wechat-fans', | |||||
component: () => import('@/views/message-manage/main/wechat-fans/index'), | |||||
meta: { | |||||
title: '公众号粉丝', | |||||
icon: 'el-icon-user-solid' | |||||
} | |||||
}, | |||||
{ | |||||
path: '/add-articles', | |||||
name: 'add-articles', | |||||
component: () => import('@/views/message-manage/main/add-articles/index'), | |||||
meta: { | |||||
title: '添加文章', | |||||
icon: 'el-icon-edit' | |||||
} | |||||
}, | |||||
{ | |||||
path: '/add-mass', | |||||
name: 'add-mass', | |||||
component: () => import('@/views/message-manage/main/add-mass/index'), | |||||
meta: { | |||||
title: '添加群发', | |||||
icon: 'el-icon-s-promotion' | |||||
} | |||||
}, | |||||
{ | |||||
path: '/mass-list', | |||||
name: 'mass-list', | |||||
component: () => import('@/views/message-manage/main/mass-list/index'), | |||||
meta: { | |||||
title: '群发列表', | |||||
icon: 'el-icon-document' | |||||
} | |||||
}, | |||||
{ | |||||
path: '/unsubscribe-list', | |||||
name: 'unsubscribe-list', | |||||
component: () => import('@/views/message-manage/main/unsubscribe-list/index'), | |||||
meta: { | |||||
title: '退订列表', | |||||
icon: 'el-icon-notebook-2' | |||||
} | |||||
}, | |||||
] | |||||
}, | |||||
// 系统管理 todo | |||||
{ | |||||
path: '/system-manage', | |||||
component: Layout, | |||||
redirect: 'system-manage/system-setting', | |||||
name: 'system-manage', | |||||
meta: { | |||||
title: '系统管理', | |||||
icon: 'el-icon-s-tools' | |||||
}, | |||||
children: [ | |||||
{ | |||||
path: '/system-setting', | |||||
name: 'system-setting', | |||||
component: () => import('@/views/system-manage/main/system-setting/index'), | |||||
meta: { | |||||
title: '系统管理', //系统设置 | |||||
icon: 'el-icon-s-tools' | |||||
} | |||||
}, | |||||
] | |||||
}, | |||||
// 测试,例子 | |||||
/* { | |||||
path: '/off-limits-manage', | path: '/off-limits-manage', | ||||
component: Layout, | component: Layout, | ||||
redirect: '/off-limits-manage/off-limits-type', | redirect: '/off-limits-manage/off-limits-type', | ||||
@@ -87,8 +267,7 @@ export const constantRoutes = [{ | |||||
} | } | ||||
}, | }, | ||||
] | ] | ||||
}, | |||||
}, */ | |||||
// 404 page must be placed at the end !!! | // 404 page must be placed at the end !!! | ||||
{ | { | ||||
path: '*', | path: '*', | ||||
@@ -7,7 +7,7 @@ | |||||
*/ | */ | ||||
module.exports = { | module.exports = { | ||||
title: '天波后台管理模板', | |||||
title: '用户运营管理系统', | |||||
/** | /** | ||||
* @type {boolean} true | false | * @type {boolean} true | false | ||||
@@ -14,7 +14,9 @@ | |||||
.el-upload__input { | .el-upload__input { | ||||
display: none; | display: none; | ||||
} | } | ||||
.el-radio { | |||||
margin-right: 15px; | |||||
} | |||||
// to fixed https://github.com/ElemeFE/element/issues/2461 | // to fixed https://github.com/ElemeFE/element/issues/2461 | ||||
.el-dialog { | .el-dialog { | ||||
@@ -58,11 +58,25 @@ div:focus { | |||||
height: 0; | height: 0; | ||||
} | } | ||||
} | } | ||||
// main-container global css | |||||
.app-container { | .app-container { | ||||
padding: 20px 20px; | |||||
padding: 20px; | |||||
} | |||||
// main-container global css | |||||
.home-container { | |||||
position: relative; | |||||
margin: 60px 20px 0 20px; | |||||
padding: 10px 0; | |||||
border: 1px solid #d8dce5; | |||||
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04); | |||||
.top-container { | .top-container { | ||||
padding: 30px 0 0 0px; | |||||
display: inline-block; | |||||
padding: 0 20px 0 20px; | |||||
span { | |||||
font-size: 14px; | |||||
} | |||||
} | |||||
.main-container { | |||||
width: 100%; | |||||
} | } | ||||
.top-input-container { | .top-input-container { | ||||
padding-left: 10px; | padding-left: 10px; | ||||
@@ -7,7 +7,7 @@ | |||||
*/ | */ | ||||
import defaultSettings from '@/settings' | import defaultSettings from '@/settings' | ||||
const title = defaultSettings.title || '天波后台管理模板' | |||||
const title = defaultSettings.title || '用户运营管理系统' | |||||
export default function getPageTitle(pageTitle) { | export default function getPageTitle(pageTitle) { | ||||
if (pageTitle) { | if (pageTitle) { | ||||
@@ -1,8 +1,8 @@ | |||||
/* | /* | ||||
* @Date: 2021-11-30 15:09:25 | * @Date: 2021-11-30 15:09:25 | ||||
* @LastEditors: JinxChen | * @LastEditors: JinxChen | ||||
* @LastEditTime: 2022-02-14 22:33:51 | |||||
* @FilePath: \GpsCardAdmin\src\utils\model.js | |||||
* @LastEditTime: 2022-08-08 11:10:59 | |||||
* @FilePath: \TelpoUserManageAdmin\src\utils\model.js | |||||
* @description: 版本号 | * @description: 版本号 | ||||
*/ | */ | ||||
export const VersionModel = '1.2.4'; | |||||
export const VersionModel = '1.0.0'; |
@@ -0,0 +1,38 @@ | |||||
<!-- | |||||
* @Date: 2022-08-08 10:47:18 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 16:07:14 | |||||
* @FilePath: \TelpoUserManageAdmin\src\views\collection-order-system\main\collection-order-list\index.vue | |||||
* @description: 收单列表 | |||||
--> | |||||
<template> | |||||
<div class="app-container"> | |||||
<!-- 顶部内容 --> | |||||
<div class="top-container"> | |||||
<TopMenu :buttonList="buttonList"/> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import TopMenu from "@/components/TopMenu/index"; | |||||
export default { | |||||
name: 'collection-order-list', | |||||
components: { TopMenu }, | |||||
data(){ | |||||
return { | |||||
buttonList: [], // 头部按钮,例子: {name: '添加', type: 'primary', icon: 'el-icon-circle-plus', click: () => { this.AddDialog();}} | |||||
} | |||||
}, | |||||
mounted() {}, | |||||
created() {}, | |||||
methods: { | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
</style> |
@@ -0,0 +1,31 @@ | |||||
<!-- | |||||
* @Date: 2022-08-08 10:43:28 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 10:43:40 | |||||
* @FilePath: \TelpoUserManageAdmin\src\views\collection-order-system\main\index.vue | |||||
* @description: 收单系统 | |||||
--> | |||||
<template> | |||||
<div style="padding:30px;"> | |||||
<el-alert :closable="false" title="menu 1"> | |||||
<router-view /> | |||||
</el-alert> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
export default { | |||||
name:'', | |||||
data(){ | |||||
return { | |||||
} | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped> | |||||
</style> |
@@ -0,0 +1,37 @@ | |||||
<!-- | |||||
* @Date: 2022-08-08 09:28:25 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 16:07:22 | |||||
* @FilePath: \TelpoUserManageAdmin\src\views\crowd-funding-otrder-system\main\crowd-funding-otrder-manage\index.vue | |||||
* @description: 拼单管理 | |||||
--> | |||||
<template> | |||||
<div class="app-container"> | |||||
<!-- 顶部内容 --> | |||||
<div class="top-container"> | |||||
<TopMenu :buttonList="buttonList"/> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import TopMenu from "@/components/TopMenu/index"; | |||||
export default { | |||||
name: 'vue-template', | |||||
components: { TopMenu }, | |||||
data(){ | |||||
return { | |||||
buttonList: [], // 头部按钮,例子: {name: '添加', type: 'primary', icon: 'el-icon-circle-plus', click: () => { this.AddDialog();}} | |||||
} | |||||
}, | |||||
mounted() {}, | |||||
created() {}, | |||||
methods: { | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
</style> |
@@ -0,0 +1,37 @@ | |||||
<!-- | |||||
* @Date: 2022-08-08 09:28:25 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 16:07:29 | |||||
* @FilePath: \TelpoUserManageAdmin\src\views\crowd-funding-otrder-system\main\customer-statistics\index.vue | |||||
* @description: 客户统计 | |||||
--> | |||||
<template> | |||||
<div class="app-container"> | |||||
<!-- 顶部内容 --> | |||||
<div class="top-container"> | |||||
<TopMenu :buttonList="buttonList"/> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import TopMenu from "@/components/TopMenu/index"; | |||||
export default { | |||||
name: 'customer-statistics', | |||||
components: { TopMenu }, | |||||
data(){ | |||||
return { | |||||
buttonList: [], // 头部按钮,例子: {name: '添加', type: 'primary', icon: 'el-icon-circle-plus', click: () => { this.AddDialog();}} | |||||
} | |||||
}, | |||||
mounted() {}, | |||||
created() {}, | |||||
methods: { | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
</style> |
@@ -0,0 +1,30 @@ | |||||
<!-- | |||||
* @Date: 2022-08-08 09:59:56 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 10:00:17 | |||||
* @FilePath: \TelpoUserManageAdmin\src\views\crowd-funding-otrder-system\main\index.vue | |||||
* @description: 众筹拼单系统 | |||||
--> | |||||
<template> | |||||
<div style="padding:30px;"> | |||||
<el-alert :closable="false" title="menu 1"> | |||||
<router-view /> | |||||
</el-alert> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
export default { | |||||
name:'', | |||||
data(){ | |||||
return { | |||||
} | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped> | |||||
</style> |
@@ -0,0 +1,37 @@ | |||||
<!-- | |||||
* @Date: 2022-08-08 09:28:25 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 16:07:37 | |||||
* @FilePath: \TelpoUserManageAdmin\src\views\crowd-funding-otrder-system\main\order-fulfillment\index.vue | |||||
* @description: 订单执行 | |||||
--> | |||||
<template> | |||||
<div class="app-container"> | |||||
<!-- 顶部内容 --> | |||||
<div class="top-container"> | |||||
<TopMenu :buttonList="buttonList"/> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import TopMenu from "@/components/TopMenu/index"; | |||||
export default { | |||||
name: 'order-fulfillment', | |||||
components: { TopMenu }, | |||||
data(){ | |||||
return { | |||||
buttonList: [], // 头部按钮,例子: {name: '添加', type: 'primary', icon: 'el-icon-circle-plus', click: () => { this.AddDialog();}} | |||||
} | |||||
}, | |||||
mounted() {}, | |||||
created() {}, | |||||
methods: { | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
</style> |
@@ -0,0 +1,37 @@ | |||||
<!-- | |||||
* @Date: 2022-08-08 09:28:25 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 16:07:43 | |||||
* @FilePath: \TelpoUserManageAdmin\src\views\crowd-funding-otrder-system\main\package-manage\index.vue | |||||
* @description: 套餐管理 | |||||
--> | |||||
<template> | |||||
<div class="app-container"> | |||||
<!-- 顶部内容 --> | |||||
<div class="top-container"> | |||||
<TopMenu :buttonList="buttonList"/> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import TopMenu from "@/components/TopMenu/index"; | |||||
export default { | |||||
name: 'package-manage', | |||||
components: { TopMenu }, | |||||
data(){ | |||||
return { | |||||
buttonList: [], // 头部按钮,例子: {name: '添加', type: 'primary', icon: 'el-icon-circle-plus', click: () => { this.AddDialog();}} | |||||
} | |||||
}, | |||||
mounted() {}, | |||||
created() {}, | |||||
methods: { | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
</style> |
@@ -0,0 +1,37 @@ | |||||
<!-- | |||||
* @Date: 2022-08-08 09:28:25 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 16:07:48 | |||||
* @FilePath: \TelpoUserManageAdmin\src\views\crowd-funding-otrder-system\main\participants-manage\index.vue | |||||
* @description: 参与人管理 | |||||
--> | |||||
<template> | |||||
<div class="app-container"> | |||||
<!-- 顶部内容 --> | |||||
<div class="top-container"> | |||||
<TopMenu :buttonList="buttonList"/> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import TopMenu from "@/components/TopMenu/index"; | |||||
export default { | |||||
name: 'participants-manage', | |||||
components: { TopMenu }, | |||||
data(){ | |||||
return { | |||||
buttonList: [], // 头部按钮,例子: {name: '添加', type: 'primary', icon: 'el-icon-circle-plus', click: () => { this.AddDialog();}} | |||||
} | |||||
}, | |||||
mounted() {}, | |||||
created() {}, | |||||
methods: { | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
</style> |
@@ -0,0 +1,37 @@ | |||||
<!-- | |||||
* @Date: 2022-08-08 09:28:25 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 16:07:54 | |||||
* @FilePath: \TelpoUserManageAdmin\src\views\crowd-funding-otrder-system\main\rules-setting\index.vue | |||||
* @description: 规则设置 | |||||
--> | |||||
<template> | |||||
<div class="app-container"> | |||||
<!-- 顶部内容 --> | |||||
<div class="top-container"> | |||||
<TopMenu :buttonList="buttonList"/> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import TopMenu from "@/components/TopMenu/index"; | |||||
export default { | |||||
name: 'rules-setting', | |||||
components: { TopMenu }, | |||||
data(){ | |||||
return { | |||||
buttonList: [], // 头部按钮,例子: {name: '添加', type: 'primary', icon: 'el-icon-circle-plus', click: () => { this.AddDialog();}} | |||||
} | |||||
}, | |||||
mounted() {}, | |||||
created() {}, | |||||
methods: { | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
</style> |
@@ -7,7 +7,7 @@ | |||||
--> | --> | ||||
<template> | <template> | ||||
<div class="dashboard-container"> | <div class="dashboard-container"> | ||||
<div class="dashboard-text">欢迎来到天波后台管理模板</div> | |||||
<div class="dashboard-text">欢迎来到用户运营管理系统</div> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
@@ -0,0 +1,38 @@ | |||||
<!-- | |||||
* @Date: 2022-08-08 10:09:45 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 16:08:00 | |||||
* @FilePath: \TelpoUserManageAdmin\src\views\message-manage\main\add-articles\index.vue | |||||
* @description: 添加文章 | |||||
--> | |||||
<template> | |||||
<div class="app-container"> | |||||
<!-- 顶部内容 --> | |||||
<div class="top-container"> | |||||
<TopMenu :buttonList="buttonList"/> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import TopMenu from "@/components/TopMenu/index"; | |||||
export default { | |||||
name: 'wechat-fans', | |||||
components: { TopMenu }, | |||||
data(){ | |||||
return { | |||||
buttonList: [], // 头部按钮,例子: {name: '添加', type: 'primary', icon: 'el-icon-circle-plus', click: () => { this.AddDialog();}} | |||||
} | |||||
}, | |||||
mounted() {}, | |||||
created() {}, | |||||
methods: { | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
</style> |
@@ -0,0 +1,38 @@ | |||||
<!-- | |||||
* @Date: 2022-08-08 10:09:47 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 16:08:07 | |||||
* @FilePath: \TelpoUserManageAdmin\src\views\message-manage\main\add-mass\index.vue | |||||
* @description: 添加群发 | |||||
--> | |||||
<template> | |||||
<div class="app-container"> | |||||
<!-- 顶部内容 --> | |||||
<div class="top-container"> | |||||
<TopMenu :buttonList="buttonList"/> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import TopMenu from "@/components/TopMenu/index"; | |||||
export default { | |||||
name: 'add-mass', | |||||
components: { TopMenu }, | |||||
data(){ | |||||
return { | |||||
buttonList: [], // 头部按钮,例子: {name: '添加', type: 'primary', icon: 'el-icon-circle-plus', click: () => { this.AddDialog();}} | |||||
} | |||||
}, | |||||
mounted() {}, | |||||
created() {}, | |||||
methods: { | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
</style> |
@@ -0,0 +1,30 @@ | |||||
<!-- | |||||
* @Date: 2022-08-08 09:59:56 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 10:08:19 | |||||
* @FilePath: \TelpoUserManageAdmin\src\views\message-manage\main\index.vue | |||||
* @description: 公众号消息管理 | |||||
--> | |||||
<template> | |||||
<div style="padding:30px;"> | |||||
<el-alert :closable="false" title="menu 1"> | |||||
<router-view /> | |||||
</el-alert> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
export default { | |||||
name:'', | |||||
data(){ | |||||
return { | |||||
} | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped> | |||||
</style> |
@@ -0,0 +1,38 @@ | |||||
<!-- | |||||
* @Date: 2022-08-08 10:09:50 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 16:08:15 | |||||
* @FilePath: \TelpoUserManageAdmin\src\views\message-manage\main\mass-list\index.vue | |||||
* @description: 群发列表 | |||||
--> | |||||
<template> | |||||
<div class="app-container"> | |||||
<!-- 顶部内容 --> | |||||
<div class="top-container"> | |||||
<TopMenu :buttonList="buttonList"/> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import TopMenu from "@/components/TopMenu/index"; | |||||
export default { | |||||
name: 'mass-list', | |||||
components: { TopMenu }, | |||||
data(){ | |||||
return { | |||||
buttonList: [], // 头部按钮,例子: {name: '添加', type: 'primary', icon: 'el-icon-circle-plus', click: () => { this.AddDialog();}} | |||||
} | |||||
}, | |||||
mounted() {}, | |||||
created() {}, | |||||
methods: { | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
</style> |
@@ -0,0 +1,38 @@ | |||||
<!-- | |||||
* @Date: 2022-08-08 10:09:53 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 16:08:20 | |||||
* @FilePath: \TelpoUserManageAdmin\src\views\message-manage\main\unsubscribe-list\index.vue | |||||
* @description: 退订列表 | |||||
--> | |||||
<template> | |||||
<div class="app-container"> | |||||
<!-- 顶部内容 --> | |||||
<div class="top-container"> | |||||
<TopMenu :buttonList="buttonList"/> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import TopMenu from "@/components/TopMenu/index"; | |||||
export default { | |||||
name: 'unsubscribe-list', | |||||
components: { TopMenu }, | |||||
data(){ | |||||
return { | |||||
buttonList: [], // 头部按钮,例子: {name: '添加', type: 'primary', icon: 'el-icon-circle-plus', click: () => { this.AddDialog();}} | |||||
} | |||||
}, | |||||
mounted() {}, | |||||
created() {}, | |||||
methods: { | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
</style> |
@@ -0,0 +1,146 @@ | |||||
<!-- | |||||
* @Date: 2022-08-08 10:08:58 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 16:11:42 | |||||
* @FilePath: \TelpoUserManageAdmin\src\views\message-manage\main\wechat-fans\index.vue | |||||
* @description: 公众号粉丝 | |||||
--> | |||||
<template> | |||||
<div class="home-container"> | |||||
<!-- 顶部内容 --> | |||||
<div class="top-container"> | |||||
<!-- <TopMenu :buttonList="buttonList"/> --> | |||||
<span >会员类型:</span> | |||||
<el-radio-group v-model="searchParams.radioValue" @change="onRadio"> | |||||
<el-radio :label="item.label" v-for="(item, index) in radioArray" :key="index">{{item.value}}</el-radio> | |||||
</el-radio-group> | |||||
<!-- 选择省份 --> | |||||
<el-select v-model="searchParams.selectValue" filterable placeholder="请选择省份" class="select" @change="onSelect"> | |||||
<el-option | |||||
v-for="(item, index) in provinceOptions" | |||||
:key="index" | |||||
:label="item.label" | |||||
:value="item.value"> | |||||
</el-option> | |||||
</el-select> | |||||
<!-- 搜索 --> | |||||
<el-input :placeholder="placeholder" v-model="searchParams.inputValue" class="search-input"/> | |||||
<el-button icon="el-icon-search" @click="onSearch" type="primary" class="search-btn">搜索</el-button> | |||||
</div> | |||||
<TTable | |||||
:tableData="dataList" | |||||
:columns="columns" | |||||
></TTable> | |||||
<!-- 分页 --> | |||||
<pagination | |||||
v-show="total > 0" | |||||
ref="pages" | |||||
:total="total" | |||||
:page.sync="page" | |||||
:limit.sync="limit" | |||||
/> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
/* import TopMenu from "@/components/TopMenu/index"; */ | |||||
import TTable from "@/components/TTable/TTable"; | |||||
import Pagination from "@/components/Pagination"; | |||||
export default { | |||||
name: 'add-articles', | |||||
/* components: { TopMenu }, */ | |||||
components: { TTable, Pagination }, | |||||
data(){ | |||||
return { | |||||
// 头部按钮,例子: {name: '添加', type: 'primary', icon: 'el-icon-circle-plus', click: () => { this.AddDialog();}} | |||||
buttonList: [], | |||||
//搜索的参数 | |||||
searchParams: { | |||||
radioValue: 0, | |||||
selectValue: '全部省份', | |||||
inputValue: '' | |||||
}, | |||||
// 单选框数组 | |||||
radioArray: [ | |||||
{ label: 0, value: '全部' }, | |||||
{ label: 1, value: '访客' }, | |||||
{ label: 2, value: '粉丝' }, | |||||
{ label: 3, value: '会员' }, | |||||
], | |||||
// 省份 | |||||
provinceOptions: [ | |||||
{ label: '全部省份', value: '全部省份' }, | |||||
{ label: '北京', value: '北京' }, | |||||
{ label: '上海', value: '上海' }, | |||||
{ label: '广东', value: '广东' }, | |||||
{ label: '深圳', value: '深圳' }, | |||||
], | |||||
// placeholder | |||||
placeholder: '请输入姓名,昵称或者手机号码搜索', | |||||
// 表格数据 | |||||
dataList: [ | |||||
{ nickName: 'wqwr', userName: 'wwfq', phone: '18277426712', area: '广东省', cardNumber: '11', wxAccount: '18277426712', antAccount: '18277426712' }, | |||||
{ nickName: 'wqwr', userName: 'wwfq', phone: '18277426712', area: '广东省', cardNumber: '11', wxAccount: '18277426712', antAccount: '18277426712' }, | |||||
{ nickName: 'wqwr', userName: 'wwfq', phone: '18277426712', area: '广东省', cardNumber: '11', wxAccount: '18277426712', antAccount: '18277426712' }, | |||||
], | |||||
// 表格columns | |||||
columns: [ | |||||
{ prop: "nickName", title: "昵称", fixed: 'left' }, | |||||
{ prop: "userName", title: "姓名"}, | |||||
{ prop: "phone", title: "手机号码" }, | |||||
{ prop: "area", title: "地区" }, | |||||
{ prop: "cardNumber", title: "卡号" }, | |||||
{ prop: "wxAccount", title: "微信账号" }, | |||||
{ prop: "antAccount", title: "支付宝账号" }, | |||||
], | |||||
// 表格总条据 | |||||
total: 1, | |||||
// 第几页 | |||||
page: 1, | |||||
// 多少条 | |||||
limit: 10, | |||||
} | |||||
}, | |||||
mounted() {}, | |||||
created() {}, | |||||
methods: { | |||||
// 选中的radio发生变化 | |||||
onRadio(value) { | |||||
if(value) { | |||||
this.searchParams.radioValue = value; | |||||
} | |||||
}, | |||||
// 选中的select发生变化 | |||||
onSelect(value) { | |||||
if(value) { | |||||
this.searchParams.selectValue = value; | |||||
console.log(this.searchParams.selectValue); | |||||
} | |||||
}, | |||||
// 搜索 | |||||
onSearch() { | |||||
console.log("searchParams", this.searchParams); | |||||
}, | |||||
// 获取表格数据 | |||||
getList() { | |||||
} | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
.select { | |||||
padding-left: 20px; | |||||
width: 250px | |||||
} | |||||
.search-input { | |||||
width: 350px; | |||||
margin-left: 20px; | |||||
} | |||||
.search-btn { | |||||
margin-left: 20px; | |||||
width: 100px; | |||||
} | |||||
</style> |
@@ -0,0 +1,31 @@ | |||||
<!-- | |||||
* @Date: 2022-08-08 10:14:16 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 10:14:33 | |||||
* @FilePath: \TelpoUserManageAdmin\src\views\system-manage\main\index.vue | |||||
* @description: 系统管理 | |||||
--> | |||||
<template> | |||||
<div style="padding:30px;"> | |||||
<el-alert :closable="false" title="menu 1"> | |||||
<router-view /> | |||||
</el-alert> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
export default { | |||||
name:'', | |||||
data(){ | |||||
return { | |||||
} | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped> | |||||
</style> |
@@ -0,0 +1,39 @@ | |||||
<!-- | |||||
* @Date: 2022-08-08 10:48:01 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 16:08:28 | |||||
* @FilePath: \TelpoUserManageAdmin\src\views\system-manage\main\system-setting\index.vue | |||||
* @description: 系统设置 | |||||
--> | |||||
<template> | |||||
<div class="app-container"> | |||||
<!-- 顶部内容 --> | |||||
<div class="top-container"> | |||||
<TopMenu :buttonList="buttonList"/> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import TopMenu from "@/components/TopMenu/index"; | |||||
export default { | |||||
name: 'system-setting', | |||||
components: { TopMenu }, | |||||
data(){ | |||||
return { | |||||
buttonList: [], // 头部按钮,例子: {name: '添加', type: 'primary', icon: 'el-icon-circle-plus', click: () => { this.AddDialog();}} | |||||
} | |||||
}, | |||||
mounted() {}, | |||||
created() {}, | |||||
methods: { | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
</style> |
@@ -0,0 +1,37 @@ | |||||
<!-- | |||||
* @Date: 2022-08-08 09:28:25 | |||||
* @LastEditors: JinxChen | |||||
* @LastEditTime: 2022-08-08 16:08:32 | |||||
* @FilePath: \TelpoUserManageAdmin\src\views\vue-template.vue | |||||
* @description: | |||||
--> | |||||
<template> | |||||
<div class="app-container"> | |||||
<!-- 顶部内容 --> | |||||
<div class="top-container"> | |||||
<TopMenu :buttonList="buttonList"/> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import TopMenu from "@/components/TopMenu/index"; | |||||
export default { | |||||
name: 'vue-template', | |||||
components: { TopMenu }, | |||||
data(){ | |||||
return { | |||||
buttonList: [], // 头部按钮,例子: {name: '添加', type: 'primary', icon: 'el-icon-circle-plus', click: () => { this.AddDialog();}} | |||||
} | |||||
}, | |||||
mounted() {}, | |||||
created() {}, | |||||
methods: { | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
</style> |
@@ -6,7 +6,7 @@ function resolve(dir) { | |||||
return path.join(__dirname, dir) | return path.join(__dirname, dir) | ||||
} | } | ||||
const name = defaultSettings.title || '天波后台管理模板' // page title | |||||
const name = defaultSettings.title || '用户运营管理系统' // page title | |||||
// If your port is set to 80, | // If your port is set to 80, | ||||
// use administrator privileges to execute the command line. | // use administrator privileges to execute the command line. | ||||