Sfoglia il codice sorgente

`2022.8.8`

feat
- 增加 收单系统,众筹拼单系统,消息管理和系统管理路由配置
master
JinxChen 2 anni fa
parent
commit
fd624c0c7f
31 ha cambiato i file con 985 aggiunte e 28 eliminazioni
  1. +1
    -1
      src/App.vue
  2. +3
    -3
      src/components/TTable/TTable.vue
  3. +3
    -3
      src/layout/components/Sidebar/Logo.vue
  4. +9
    -2
      src/layout/components/TagsView/ScrollPane.vue
  5. +3
    -4
      src/layout/components/TagsView/index.vue
  6. +183
    -4
      src/router/index.js
  7. +1
    -1
      src/settings.js
  8. +3
    -1
      src/styles/element-ui.scss
  9. +17
    -3
      src/styles/index.scss
  10. +1
    -1
      src/utils/get-page-title.js
  11. +3
    -3
      src/utils/model.js
  12. +38
    -0
      src/views/collection-order-system/main/collection-order-list/index.vue
  13. +31
    -0
      src/views/collection-order-system/main/index.vue
  14. +37
    -0
      src/views/crowd-funding-otrder-system/main/crowd-funding-otrder-manage/index.vue
  15. +37
    -0
      src/views/crowd-funding-otrder-system/main/customer-statistics/index.vue
  16. +30
    -0
      src/views/crowd-funding-otrder-system/main/index.vue
  17. +37
    -0
      src/views/crowd-funding-otrder-system/main/order-fulfillment/index.vue
  18. +37
    -0
      src/views/crowd-funding-otrder-system/main/package-manage/index.vue
  19. +37
    -0
      src/views/crowd-funding-otrder-system/main/participants-manage/index.vue
  20. +37
    -0
      src/views/crowd-funding-otrder-system/main/rules-setting/index.vue
  21. +1
    -1
      src/views/dashboard/index.vue
  22. +38
    -0
      src/views/message-manage/main/add-articles/index.vue
  23. +38
    -0
      src/views/message-manage/main/add-mass/index.vue
  24. +30
    -0
      src/views/message-manage/main/index.vue
  25. +38
    -0
      src/views/message-manage/main/mass-list/index.vue
  26. +38
    -0
      src/views/message-manage/main/unsubscribe-list/index.vue
  27. +146
    -0
      src/views/message-manage/main/wechat-fans/index.vue
  28. +31
    -0
      src/views/system-manage/main/index.vue
  29. +39
    -0
      src/views/system-manage/main/system-setting/index.vue
  30. +37
    -0
      src/views/vue-template.vue
  31. +1
    -1
      vue.config.js

+ 1
- 1
src/App.vue Vedi File

@@ -38,7 +38,7 @@ export default {
const script = document.createElement("script");
script.src = "//cdn.jsdelivr.net/npm/eruda";
document.body.appendChild(script);
script.onload = function(eruda) {
script.onload = function() {
eruda.init();
};
}


+ 3
- 3
src/components/TTable/TTable.vue Vedi File

@@ -1,14 +1,14 @@
<!--
* @Date: 2021-11-30 17:19:51
* @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组件
-->
<template>
<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">
<!-- 标题 -->
<el-table-column


+ 3
- 3
src/layout/components/Sidebar/Logo.vue Vedi File

@@ -1,8 +1,8 @@
<!--
* @Date: 2021-11-29 11:20:35
* @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:
-->
<template>
@@ -31,7 +31,7 @@ export default {
},
data() {
return {
title: '天波后台管理模板',
title: '用户运营管理系统',
logo: require('@/assets/telpo.png')
}
}


+ 9
- 2
src/layout/components/TagsView/ScrollPane.vue Vedi File

@@ -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>
<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 />
</el-scrollbar>
</template>
@@ -87,7 +94,7 @@ export default {
bottom: 0px;
}
.el-scrollbar__wrap {
height: 49px;
height: 65px;
}
}
}


+ 3
- 4
src/layout/components/TagsView/index.vue Vedi File

@@ -205,7 +205,6 @@ export default {
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);
.tags-view-wrapper {
margin-left: 25px;
.tags-view-item {
display: inline-block;
position: relative;
@@ -218,7 +217,7 @@ export default {
padding: 0 8px;
font-size: 12px;
margin-left: 5px;
margin-top: 4px;
margin-top: 5px;
margin-bottom: 10px;
border-radius: 5px;
&:first-of-type {
@@ -228,9 +227,9 @@ export default {
margin-right: 15px;
}
&.active {
background-color: #42b983;
background-color: /* #42b983 */#409EFF;
color: #fff;
border-color: #42b983;
border-color: /* #42b983 */#409EFF;
&::before {
content: '';
background: #fff;


+ 183
- 4
src/router/index.js Vedi File

@@ -61,13 +61,193 @@ export const constantRoutes = [{
component: () => import('@/views/dashboard/index'),
meta: {
title: '首页',
icon: 'dashboard',
icon: 'el-icon-s-home',
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',
component: Layout,
redirect: '/off-limits-manage/off-limits-type',
@@ -87,8 +267,7 @@ export const constantRoutes = [{
}
},
]

},
}, */
// 404 page must be placed at the end !!!
{
path: '*',


+ 1
- 1
src/settings.js Vedi File

@@ -7,7 +7,7 @@
*/
module.exports = {

title: '天波后台管理模板',
title: '用户运营管理系统',

/**
* @type {boolean} true | false


+ 3
- 1
src/styles/element-ui.scss Vedi File

@@ -14,7 +14,9 @@
.el-upload__input {
display: none;
}

.el-radio {
margin-right: 15px;
}

// to fixed https://github.com/ElemeFE/element/issues/2461
.el-dialog {


+ 17
- 3
src/styles/index.scss Vedi File

@@ -58,11 +58,25 @@ div:focus {
height: 0;
}
}
// main-container global css
.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 {
padding: 30px 0 0 0px;
display: inline-block;
padding: 0 20px 0 20px;
span {
font-size: 14px;
}
}
.main-container {
width: 100%;
}
.top-input-container {
padding-left: 10px;


+ 1
- 1
src/utils/get-page-title.js Vedi File

@@ -7,7 +7,7 @@
*/
import defaultSettings from '@/settings'

const title = defaultSettings.title || '天波后台管理模板'
const title = defaultSettings.title || '用户运营管理系统'

export default function getPageTitle(pageTitle) {
if (pageTitle) {


+ 3
- 3
src/utils/model.js Vedi File

@@ -1,8 +1,8 @@
/*
* @Date: 2021-11-30 15:09:25
* @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: 版本号
*/
export const VersionModel = '1.2.4';
export const VersionModel = '1.0.0';

+ 38
- 0
src/views/collection-order-system/main/collection-order-list/index.vue Vedi File

@@ -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>

+ 31
- 0
src/views/collection-order-system/main/index.vue Vedi File

@@ -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>

+ 37
- 0
src/views/crowd-funding-otrder-system/main/crowd-funding-otrder-manage/index.vue Vedi File

@@ -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>

+ 37
- 0
src/views/crowd-funding-otrder-system/main/customer-statistics/index.vue Vedi File

@@ -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>

+ 30
- 0
src/views/crowd-funding-otrder-system/main/index.vue Vedi File

@@ -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>

+ 37
- 0
src/views/crowd-funding-otrder-system/main/order-fulfillment/index.vue Vedi File

@@ -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>

+ 37
- 0
src/views/crowd-funding-otrder-system/main/package-manage/index.vue Vedi File

@@ -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>

+ 37
- 0
src/views/crowd-funding-otrder-system/main/participants-manage/index.vue Vedi File

@@ -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>

+ 37
- 0
src/views/crowd-funding-otrder-system/main/rules-setting/index.vue Vedi File

@@ -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>

+ 1
- 1
src/views/dashboard/index.vue Vedi File

@@ -7,7 +7,7 @@
-->
<template>
<div class="dashboard-container">
<div class="dashboard-text">欢迎来到天波后台管理模板</div>
<div class="dashboard-text">欢迎来到用户运营管理系统</div>
</div>
</template>



+ 38
- 0
src/views/message-manage/main/add-articles/index.vue Vedi File

@@ -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>

+ 38
- 0
src/views/message-manage/main/add-mass/index.vue Vedi File

@@ -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>

+ 30
- 0
src/views/message-manage/main/index.vue Vedi File

@@ -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>

+ 38
- 0
src/views/message-manage/main/mass-list/index.vue Vedi File

@@ -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>

+ 38
- 0
src/views/message-manage/main/unsubscribe-list/index.vue Vedi File

@@ -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>

+ 146
- 0
src/views/message-manage/main/wechat-fans/index.vue Vedi File

@@ -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>

+ 31
- 0
src/views/system-manage/main/index.vue Vedi File

@@ -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>

+ 39
- 0
src/views/system-manage/main/system-setting/index.vue Vedi File

@@ -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>

+ 37
- 0
src/views/vue-template.vue Vedi File

@@ -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>

+ 1
- 1
vue.config.js Vedi File

@@ -6,7 +6,7 @@ function resolve(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,
// use administrator privileges to execute the command line.


Loading…
Annulla
Salva