Procházet zdrojové kódy

添加活动列表页

庄逸洲 před 5 roky
rodič
revize
b23c4d4406

+ 5 - 1
src/lang/en.js Zobrazit soubor

@@ -109,7 +109,11 @@ export default {
109 109
     RescueRecord: 'Rescue Record',
110 110
     special_permission_manage: 'Special Permission Manage',
111 111
     schedule_print: 'Print Schudule',
112
-    dialysis_batch_print: 'Batch Print Order'
112
+    dialysis_batch_print: 'Batch Print Order',
113
+
114
+    marketingTool: "marketing tools",
115
+    activityList: "activity list",
116
+    activityPublish: "publish activity",
113 117
   },
114 118
   navbar: {
115 119
     logOut: 'Log Out',

+ 4 - 1
src/lang/zh.js Zobrazit soubor

@@ -157,8 +157,11 @@ export default {
157 157
     salesReturnDetail: '退货单详情',
158 158
     stockOutDetail: '出库单详情',
159 159
     cancelStockDetail: '退库单详情',
160
-    stockDetail: '出入库明细查询'
160
+    stockDetail: '出入库明细查询',
161 161
 
162
+    marketingTool: "营销工具",
163
+    activityList: "活动列表",
164
+    activityPublish: "发布活动",
162 165
   },
163 166
   navbar: {
164 167
     logOut: '退出登录',

+ 2 - 0
src/router/index.js Zobrazit soubor

@@ -10,6 +10,7 @@ import role from './modules/role'
10 10
 import article from './modules/article'
11 11
 import member from './modules/member'
12 12
 import org from './modules/org'
13
+import marketing_tool from './modules/marketing_tool'
13 14
 
14 15
 /** note: submenu only apppear when children.length>=1
15 16
  *   detail see  https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html
@@ -72,6 +73,7 @@ var _constant_router_map = [{
72 73
 var _asy_router_map = [
73 74
   member,
74 75
   article,
76
+  marketing_tool,
75 77
   org,
76 78
   role
77 79
 ]

+ 32 - 0
src/router/modules/marketing_tool.js Zobrazit soubor

@@ -0,0 +1,32 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+  alwaysShow: true,
5
+  path: '/activity',
6
+  component: Layout,
7
+  redirect: 'noredirect',
8
+  name: 'marketingTool',
9
+  meta: {
10
+    title: 'marketingTool',
11
+    icon: 'component'
12
+  },
13
+  children: [{
14
+      path: '/activity/publish',
15
+      component: () => import('@/scrm_pages/marketing_tool/activity_publish'),
16
+      name: 'activityPublish',
17
+      meta: {
18
+        title: 'activityPublish',
19
+        noCache: true
20
+      }
21
+    },
22
+    {
23
+      path: '/activity/list',
24
+      component: () => import('@/scrm_pages/marketing_tool/activity_list'),
25
+      name: 'activityList',
26
+      meta: {
27
+        title: 'activityList',
28
+        noCache: true
29
+      }
30
+    },
31
+  ]
32
+}

+ 91 - 0
src/scrm_pages/marketing_tool/activity_list.vue Zobrazit soubor

@@ -0,0 +1,91 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+      <el-button
6
+        :disabled="$store.getters.xt_user.subscibe.state==3?true:false"
7
+        @click="$router.push({path:'/activity/publish'})"
8
+        class="filter-item"
9
+        style="float:right;"
10
+        type="primary"
11
+        icon="el-icon-circle-plus-outline"
12
+        size="small"
13
+      >创建活动</el-button>
14
+    </div>
15
+    <div class="app-container">
16
+      <div class="cell clearfix">
17
+        <el-input v-model="keyword" placeholder="请输入您要搜索的活动" class="keyword_input"></el-input>
18
+        <el-button type="primary" icon="el-icon-search">搜索</el-button>
19
+      </div>
20
+      <div class="cell clearfix">
21
+        <label class="title">
22
+          <span class="name">状态</span> :
23
+        </label>
24
+        <div class="time">
25
+          <ul>
26
+            <li :class="{ active: selecting_status == 0 }">全部</li>
27
+            <li :class="{ active: selecting_status == 1 }">已发布</li>
28
+            <li :class="{ active: selecting_status == 2 }">待发布</li>
29
+            <li :class="{ active: selecting_status == 3 }">未通过</li>
30
+            <li :class="{ active: selecting_status == 4 }">已结束</li>
31
+          </ul>
32
+        </div>
33
+      </div>
34
+      <div>
35
+          <published-cell></published-cell>
36
+          <unapproved-cell></unapproved-cell>
37
+          <drafts-cell></drafts-cell>
38
+      </div>
39
+      <div class="cell clearfix" style="padding-top: 15px;">
40
+          <el-pagination :total="activity_total" :current-page.sync="current_page" :page-size="10" layout="total, prev, pager, next"></el-pagination>
41
+      </div>
42
+    </div>
43
+  </div>
44
+</template>
45
+
46
+<script>
47
+import BreadCrumb from "@/scrm_pages/components/bread-crumb";
48
+import PublishedCell from "@/scrm_pages/marketing_tool/components/published_cell"
49
+import UnapprovedCell from "@/scrm_pages/marketing_tool/components/unapproved_cell"
50
+import DraftsCell from "@/scrm_pages/marketing_tool/components/drafts_cell"
51
+
52
+export default {
53
+  name: "ActivityList",
54
+  components: {
55
+    BreadCrumb,
56
+    PublishedCell,
57
+    UnapprovedCell,
58
+    DraftsCell,
59
+  },
60
+  data() {
61
+    return {
62
+      crumbs: [
63
+        { path: false, name: "营销工具" },
64
+        { path: false, name: "活动列表" }
65
+      ],
66
+      keyword: "",
67
+      selecting_status: 0,
68
+      
69
+      activity_total: 0,
70
+      current_page: 1,
71
+    };
72
+  },
73
+  mounted() {
74
+      
75
+  },
76
+  methods: {
77
+
78
+  },
79
+};
80
+</script>
81
+
82
+<style scoped>
83
+.keyword_input {
84
+  width: 330px;
85
+}
86
+</style>
87
+
88
+<style scoped rel="stylesheet/scss" lang="scss">
89
+</style>
90
+
91
+

+ 13 - 0
src/scrm_pages/marketing_tool/activity_publish.vue Zobrazit soubor

@@ -0,0 +1,13 @@
1
+<template>
2
+    <div></div>    
3
+</template>
4
+
5
+<script>
6
+export default {
7
+    name: "ActivityPublish",
8
+}
9
+</script>
10
+
11
+<style scoped>
12
+
13
+</style>

+ 117 - 0
src/scrm_pages/marketing_tool/components/drafts_cell.vue Zobrazit soubor

@@ -0,0 +1,117 @@
1
+<template>
2
+<div class="clearfix">
3
+    <div class="drafts-cell">
4
+        <div class="activity-image-panel">
5
+            <span class="status-text">待发布</span>
6
+            <img src="https://images.shengws.com/2019/6/12/activity_223718617.png" />
7
+        </div>
8
+        <div class="activity-info-panel">
9
+            <h3 class="title">
10
+                <a href="http://www.baidu.com">哈哈哈哈哈哈哈</a>
11
+            </h3>
12
+            <div class="operation">
13
+                <el-button type="primary" size="small" icon="el-icon-edit-outline">编辑</el-button>
14
+                <el-button type="danger" size="small" icon="el-icon-delete">删除</el-button>
15
+            </div>
16
+        </div>
17
+    </div>
18
+</div>
19
+</template>
20
+
21
+<script>
22
+export default {
23
+    name: "DraftsActivityCell",
24
+    data() {
25
+        return {
26
+            
27
+        }
28
+    },
29
+}
30
+</script>
31
+
32
+<style scoped rel="stylesheet/scss" lang="scss">
33
+.drafts-cell {
34
+    padding: 20px 15px;
35
+    border: none;
36
+    border-bottom: 1px solid #e5e8ea;
37
+    float: left;
38
+    margin: 0;
39
+    width: 100%;
40
+    border-radius: 0;
41
+    position: relative;
42
+
43
+    .activity-image-panel {
44
+        width: 155px;
45
+        height: 122px;
46
+        border: 1px #dee2e5 solid;
47
+        display: flex;
48
+        justify-content: center;
49
+        position: relative;
50
+        -webkit-border-radius: 4px;
51
+        -moz-border-radius: 4px;
52
+        border-radius: 4px;
53
+        overflow: hidden;
54
+        float: left;
55
+
56
+        .status-text {
57
+            position: absolute;
58
+            font-size: 12px;
59
+            color: #fff;
60
+            top: 14px;
61
+            left: 3px;
62
+            -webkit-transform: rotate(316deg);
63
+            transform: rotate(316deg);
64
+        }
65
+
66
+        img {
67
+            width: 100%;
68
+            height: 100%;
69
+            object-fit: cover;
70
+            object-position: center;
71
+        }
72
+    }
73
+    .activity-image-panel::before {
74
+        border-top: 28px solid #65d3e3;
75
+        border-right: 28px solid transparent;
76
+        border-bottom: 28px solid transparent;
77
+        border-left: 28px solid #65d3e3;
78
+        position: absolute;
79
+        top: 0;
80
+        left: 0;
81
+        width: 0;
82
+        height: 0;
83
+        display: block;
84
+        content: "";
85
+    }
86
+
87
+    .activity-info-panel {
88
+        padding: 7px 20px;
89
+        width: 60%;
90
+        float: left;
91
+
92
+        .title {
93
+            padding-bottom: 5px;
94
+
95
+            a {
96
+                color: #495060;
97
+                font-size: 19px;
98
+                max-width: 100%;
99
+                font-weight: 500;
100
+                overflow: hidden;
101
+                white-space: nowrap;
102
+                text-overflow: ellipsis;
103
+                display: inline-block;
104
+            }
105
+        }
106
+
107
+        .operation {
108
+            padding: 10px 0 0;
109
+        }
110
+    }
111
+}
112
+</style>
113
+
114
+
115
+
116
+
117
+

+ 153 - 0
src/scrm_pages/marketing_tool/components/published_cell.vue Zobrazit soubor

@@ -0,0 +1,153 @@
1
+<template>
2
+<div class="clearfix">
3
+    <div class="published-cell">
4
+        <div class="activity-image-panel">
5
+            <span class="status-text">{{ status_text }}</span>
6
+            <img src="https://images.shengws.com/2019/6/12/activity_223718617.png" />
7
+        </div>
8
+        <div class="activity-info-panel">
9
+            <h3 class="title">
10
+                <a href="http://www.baidu.com">哈哈哈哈哈哈哈</a>
11
+            </h3>
12
+            <div class="statistics">
13
+                阅读:0 丨 评论:0 丨 点赞:0
14
+            </div>
15
+            <div class="progress">
16
+                <div class="progress-bar">
17
+                    <el-progress :percentage="80" :stroke-width="5" color="#409eff" :show-text="false" ></el-progress>
18
+                </div>
19
+                <span class="progress-text">0 / 10</span>
20
+            </div>
21
+        </div>
22
+        <div class="activity-time-panel">
23
+            <span class="time">2019-01-01</span>
24
+        </div>
25
+    </div>
26
+</div>
27
+</template>
28
+
29
+<script>
30
+export default {
31
+    name: "PublishedActivityCell",
32
+    data() {
33
+        return {
34
+            
35
+        }
36
+    },
37
+    computed: {
38
+        status_text: function() {
39
+            return "已发布"
40
+        }
41
+    },
42
+}
43
+</script>
44
+
45
+<style scoped rel="stylesheet/scss" lang="scss">
46
+.published-cell {
47
+    padding: 20px 15px;
48
+    border: none;
49
+    border-bottom: 1px solid #e5e8ea;
50
+    float: left;
51
+    margin: 0;
52
+    width: 100%;
53
+    border-radius: 0;
54
+    position: relative;
55
+
56
+    .activity-image-panel {
57
+        width: 155px;
58
+        height: 122px;
59
+        border: 1px #dee2e5 solid;
60
+        display: flex;
61
+        justify-content: center;
62
+        position: relative;
63
+        -webkit-border-radius: 4px;
64
+        -moz-border-radius: 4px;
65
+        border-radius: 4px;
66
+        overflow: hidden;
67
+        float: left;
68
+
69
+        .status-text {
70
+            position: absolute;
71
+            font-size: 12px;
72
+            color: #fff;
73
+            top: 14px;
74
+            left: 3px;
75
+            -webkit-transform: rotate(316deg);
76
+            transform: rotate(316deg);
77
+        }
78
+
79
+        img {
80
+            width: 100%;
81
+            height: 100%;
82
+            object-fit: cover;
83
+            object-position: center;
84
+        }
85
+    }
86
+    .activity-image-panel::before {
87
+        border-top: 28px solid #5bd18b;
88
+        border-right: 28px solid transparent;
89
+        border-bottom: 28px solid transparent;
90
+        border-left: 28px solid #5bd18b;
91
+        position: absolute;
92
+        top: 0;
93
+        left: 0;
94
+        width: 0;
95
+        height: 0;
96
+        display: block;
97
+        content: "";
98
+    }
99
+
100
+    .activity-info-panel {
101
+        padding: 7px 20px;
102
+        width: 60%;
103
+        float: left;
104
+
105
+        .title {
106
+            padding-bottom: 5px;
107
+
108
+            a {
109
+                color: #495060;
110
+                font-size: 19px;
111
+                max-width: 100%;
112
+                font-weight: 500;
113
+                overflow: hidden;
114
+                white-space: nowrap;
115
+                text-overflow: ellipsis;
116
+                display: inline-block;
117
+            }
118
+        }
119
+
120
+        .statistics {
121
+            color: #a8b3ba;
122
+            font-size: 15px;
123
+            justify-content: space-between;
124
+            line-height: 30px;
125
+        }
126
+
127
+        .progress {
128
+            padding: 5px 0;
129
+
130
+            .progress-bar {
131
+                width: 60%;
132
+                display: inline-block;
133
+            }
134
+            .progress-text {
135
+                margin-left: 10px;
136
+                font-size: 15px;
137
+                color: #409eff;
138
+            }
139
+        }
140
+    }
141
+
142
+    .activity-time-panel {
143
+        float: right;
144
+        padding: 7px 0;
145
+
146
+        .time {
147
+            font-size: 15px;
148
+            color: #a8b3ba;
149
+        }
150
+    }
151
+}
152
+</style>
153
+

+ 138 - 0
src/scrm_pages/marketing_tool/components/unapproved_cell.vue Zobrazit soubor

@@ -0,0 +1,138 @@
1
+<template>
2
+<div class="clearfix">
3
+    <div class="unapproved-cell">
4
+        <div class="activity-image-panel">
5
+            <span class="status-text">未通过</span>
6
+            <img src="https://images.shengws.com/2019/6/12/activity_223718617.png" />
7
+        </div>
8
+        <div class="activity-info-panel">
9
+            <h3 class="title">
10
+                <a href="http://www.baidu.com">哈哈哈哈哈哈哈</a>
11
+            </h3>
12
+            <div class="reason">
13
+                审核未通过:不给过
14
+            </div>
15
+            <div class="operation">
16
+                <el-button type="primary" size="small" icon="el-icon-edit-outline">编辑</el-button>
17
+                <el-button type="danger" size="small" icon="el-icon-delete">删除</el-button>
18
+            </div>
19
+        </div>
20
+        <div class="activity-time-panel">
21
+            <span class="time">2019-01-01</span>
22
+        </div>
23
+    </div>
24
+</div>
25
+</template>
26
+
27
+<script>
28
+export default {
29
+    name: "UnapprovedActivityCell",
30
+    data() {
31
+        return {
32
+            
33
+        }
34
+    },
35
+}
36
+</script>
37
+
38
+<style scoped rel="stylesheet/scss" lang="scss">
39
+.unapproved-cell {
40
+    padding: 20px 15px;
41
+    border: none;
42
+    border-bottom: 1px solid #e5e8ea;
43
+    float: left;
44
+    margin: 0;
45
+    width: 100%;
46
+    border-radius: 0;
47
+    position: relative;
48
+
49
+    .activity-image-panel {
50
+        width: 155px;
51
+        height: 122px;
52
+        border: 1px #dee2e5 solid;
53
+        display: flex;
54
+        justify-content: center;
55
+        position: relative;
56
+        -webkit-border-radius: 4px;
57
+        -moz-border-radius: 4px;
58
+        border-radius: 4px;
59
+        overflow: hidden;
60
+        float: left;
61
+
62
+        .status-text {
63
+            position: absolute;
64
+            font-size: 12px;
65
+            color: #fff;
66
+            top: 14px;
67
+            left: 3px;
68
+            -webkit-transform: rotate(316deg);
69
+            transform: rotate(316deg);
70
+        }
71
+
72
+        img {
73
+            width: 100%;
74
+            height: 100%;
75
+            object-fit: cover;
76
+            object-position: center;
77
+        }
78
+    }
79
+    .activity-image-panel::before {
80
+        border-top: 28px solid #ff7979;
81
+        border-right: 28px solid transparent;
82
+        border-bottom: 28px solid transparent;
83
+        border-left: 28px solid #ff7979;
84
+        position: absolute;
85
+        top: 0;
86
+        left: 0;
87
+        width: 0;
88
+        height: 0;
89
+        display: block;
90
+        content: "";
91
+    }
92
+
93
+    .activity-info-panel {
94
+        padding: 7px 20px;
95
+        width: 60%;
96
+        float: left;
97
+
98
+        .title {
99
+            padding-bottom: 5px;
100
+
101
+            a {
102
+                color: #495060;
103
+                font-size: 19px;
104
+                max-width: 100%;
105
+                font-weight: 500;
106
+                overflow: hidden;
107
+                white-space: nowrap;
108
+                text-overflow: ellipsis;
109
+                display: inline-block;
110
+            }
111
+        }
112
+
113
+        .reason {
114
+            color: #ff7979;
115
+            font-size: 14px;
116
+            justify-content: space-between;
117
+            line-height: 30px;
118
+        }
119
+
120
+        .operation {
121
+            padding: 10px 0 0;
122
+        }
123
+    }
124
+
125
+    .activity-time-panel {
126
+        float: right;
127
+        padding: 7px 0;
128
+
129
+        .time {
130
+            font-size: 15px;
131
+            color: #a8b3ba;
132
+        }
133
+    }
134
+}
135
+</style>
136
+
137
+
138
+