瀏覽代碼

Merge remote-tracking branch 'origin/master'

chenxiqiang 6 年之前
父節點
當前提交
9d128e7174

+ 150
- 55
hksystem/src/router/router.js 查看文件

@@ -7,7 +7,9 @@ export const loginRouter = {
7 7
     meta: {
8 8
         title: 'Login - 登录'
9 9
     },
10
-    component: resolve => { require(['@/views/login.vue'], resolve); }
10
+    component: resolve => {
11
+        require(['@/views/login.vue'], resolve);
12
+    }
11 13
 };
12 14
 
13 15
 export const page404 = {
@@ -16,7 +18,9 @@ export const page404 = {
16 18
     meta: {
17 19
         title: '404-页面不存在'
18 20
     },
19
-    component: resolve => { require(['@/views/error-page/404.vue'], resolve); }
21
+    component: resolve => {
22
+        require(['@/views/error-page/404.vue'], resolve);
23
+    }
20 24
 };
21 25
 
22 26
 export const page403 = {
@@ -25,7 +29,9 @@ export const page403 = {
25 29
         title: '403-权限不足'
26 30
     },
27 31
     name: 'error-403',
28
-    component: resolve => { require(['@//views/error-page/403.vue'], resolve); }
32
+    component: resolve => {
33
+        require(['@//views/error-page/403.vue'], resolve);
34
+    }
29 35
 };
30 36
 
31 37
 export const page500 = {
@@ -34,13 +40,17 @@ export const page500 = {
34 40
         title: '500-服务端错误'
35 41
     },
36 42
     name: 'error-500',
37
-    component: resolve => { require(['@/views/error-page/500.vue'], resolve); }
43
+    component: resolve => {
44
+        require(['@/views/error-page/500.vue'], resolve);
45
+    }
38 46
 };
39 47
 
40 48
 export const locking = {
41 49
     path: '/locking',
42 50
     name: 'locking',
43
-    component: resolve => { require(['@/views/main-components/lockscreen/components/locking-page.vue'], resolve); }
51
+    component: resolve => {
52
+        require(['@/views/main-components/lockscreen/components/locking-page.vue'], resolve);
53
+    }
44 54
 };
45 55
 
46 56
 // 作为Main组件的子页面展示但是不在左侧菜单显示的路由写在otherRouter里
@@ -49,23 +59,49 @@ export const otherRouter = {
49 59
     name: 'otherRouter',
50 60
     redirect: '/home',
51 61
     component: Main,
52
-    children: [
53
-        { path: 'home', title: {i18n: 'home'}, name: 'home_index', component: resolve => { require(['@/views/home/home.vue'], resolve); } }
54
-    ]
62
+    children: [{
63
+        path: 'home',
64
+        title: {
65
+            i18n: 'home'
66
+        },
67
+        name: 'home_index',
68
+        component: resolve => {
69
+            require(['@/views/home/home.vue'], resolve);
70
+        }
71
+    }]
55 72
 };
56 73
 
57 74
 // 作为Main组件的子页面展示并且在左侧菜单显示的路由写在appRouter里
58
-export const appRouter = [
59
-    {
75
+export const appRouter = [{
60 76
         path: '/order',
61 77
         icon: 'images',
62
-        name: 'comment',
78
+        name: 'order',
63 79
         title: '订单管理',
64 80
         component: Main,
65
-        children: [
66
-            { path: 'housekeeper', title: '保姆订单', name: 'order_housekeeper', component: resolve => { require(['@/views/housekeeper/index.vue'], resolve); } },
67
-            { path: 'matron', title: '月嫂订单', name: 'order_matron', component: resolve => { require(['@/views/matron/index.vue'], resolve); } },
68
-            { path: 'product', title: '产品订单', name: 'order_product', component: resolve => { require(['@/views/product-order/index.vue'], resolve); } },
81
+        children: [{
82
+                path: 'housekeeper',
83
+                title: '通用服务订单',
84
+                name: 'order_housekeeper',
85
+                component: resolve => {
86
+                    require(['@/views/housekeeper/index.vue'], resolve);
87
+                }
88
+            },
89
+            {
90
+                path: 'matron',
91
+                title: '月嫂订单',
92
+                name: 'order_matron',
93
+                component: resolve => {
94
+                    require(['@/views/matron/index.vue'], resolve);
95
+                }
96
+            },
97
+            {
98
+                path: 'product',
99
+                title: '母婴产品订单',
100
+                name: 'order_product',
101
+                component: resolve => {
102
+                    require(['@/views/product-order/index.vue'], resolve);
103
+                }
104
+            }
69 105
             // { path: 'comment', title: '订单评论', name: 'order_comment', component: resolve => { require(['@/views/comment/index.vue'], resolve); } },
70 106
             // { path: 'status', title: '订单状态', name: 'order_status', component: resolve => { require(['@/views/comment/index.vue'], resolve); } }
71 107
         ]
@@ -74,21 +110,31 @@ export const appRouter = [
74 110
         path: '/product',
75 111
         icon: 'images',
76 112
         name: 'product',
77
-        title: '产品管理',
113
+        title: '母婴产品管理',
78 114
         component: Main,
79
-        children: [
80
-            { path: 'index', title: '产品管理', name: 'product_index', component: resolve => { require(['@/views/product/index.vue'], resolve); } }
81
-        ]
115
+        children: [{
116
+            path: 'index',
117
+            title: '产品管理',
118
+            name: 'product_index',
119
+            component: resolve => {
120
+                require(['@/views/product/index.vue'], resolve);
121
+            }
122
+        }]
82 123
     },
83 124
     {
84 125
         path: '/service',
85 126
         icon: 'images',
86 127
         name: 'service',
87
-        title: '分类/服务信息',
128
+        title: '分类管理',
88 129
         component: Main,
89
-        children: [
90
-            { path: 'index', title: '分类/服务信息', name: 'service_index', component: resolve => { require(['@/views/service/index.vue'], resolve); } }
91
-        ]
130
+        children: [{
131
+            path: 'index',
132
+            title: '分类管理',
133
+            name: 'service_index',
134
+            component: resolve => {
135
+                require(['@/views/service/index.vue'], resolve);
136
+            }
137
+        }]
92 138
     },
93 139
     {
94 140
         path: '/reward',
@@ -96,20 +142,60 @@ export const appRouter = [
96 142
         name: 'reward',
97 143
         title: '打赏金额',
98 144
         component: Main,
99
-        children: [
100
-            { path: 'index', title: '打赏金额', name: 'reward_index', component: resolve => { require(['@/views/reward/index.vue'], resolve); } }
101
-        ]
145
+        children: [{
146
+            path: 'index',
147
+            title: '打赏金额',
148
+            name: 'reward_index',
149
+            component: resolve => {
150
+                require(['@/views/reward/index.vue'], resolve);
151
+            }
152
+        }]
102 153
     },
103 154
     {
104
-        path: '/act',
155
+        path: '/introduce',
105 156
         icon: 'images',
106
-        name: 'act',
107
-        title: '活动管理',
157
+        name: 'introduce',
158
+        title: '企业介绍',
108 159
         component: Main,
109
-        children: [
110
-            { path: 'index', title: '活动管理', name: 'act_index', component: resolve => { require(['@/views/act/index.vue'], resolve); } }
111
-        ]
160
+        children: [{
161
+            path: 'index',
162
+            title: '企业介绍',
163
+            name: 'introduce_index',
164
+            component: resolve => {
165
+                require(['@/views/introduce/index.vue'], resolve);
166
+            }
167
+        }]
112 168
     },
169
+    {
170
+        path: '/image',
171
+        icon: 'images',
172
+        name: 'image',
173
+        title: '首页底部图片配置',
174
+        component: Main,
175
+        children: [{
176
+            path: 'index',
177
+            title: '首页图片配置',
178
+            name: 'image_index',
179
+            component: resolve => {
180
+                require(['@/views/image/index.vue'], resolve);
181
+            }
182
+        }]
183
+    }
184
+    // {
185
+    //     path: '/act',
186
+    //     icon: 'images',
187
+    //     name: 'act',
188
+    //     title: '活动管理',
189
+    //     component: Main,
190
+    //     children: [{
191
+    //         path: 'index',
192
+    //         title: '活动管理',
193
+    //         name: 'act_index',
194
+    //         component: resolve => {
195
+    //             require(['@/views/act/index.vue'], resolve);
196
+    //         }
197
+    //     }]
198
+    // },
113 199
     // {
114 200
     //     path: '/product',
115 201
     //     icon: 'images',
@@ -152,28 +238,37 @@ export const appRouter = [
152 238
     // }
153 239
 ];
154 240
 
155
-var other = [
156
-    {
157
-        path: '/banner',
158
-        icon: 'images',
159
-        name: 'banner',
160
-        title: 'banner轮播图',
161
-        component: Main,
162
-        children: [
163
-            { path: 'index', title: 'banner轮播图', name: 'banner_index', component: resolve => { require(['@/views/banner/banner.vue'], resolve); } }
164
-        ]
165
-    },
166
-    {
167
-        path: '/homework',
168
-        icon: 'images',
169
-        name: 'homework',
170
-        title: '家政详情',
171
-        component: Main,
172
-        children: [
173
-            { path: 'index', title: '家政详情', name: 'homework_index', component: resolve => { require(['@/views/homework/homework.vue'], resolve); } }
174
-        ]
175
-    }
176
-];
241
+// var other = [{
242
+//         path: '/banner',
243
+//         icon: 'images',
244
+//         name: 'banner',
245
+//         title: 'banner轮播图',
246
+//         component: Main,
247
+//         children: [{
248
+//             path: 'index',
249
+//             title: 'banner轮播图',
250
+//             name: 'banner_index',
251
+//             component: resolve => {
252
+//                 require(['@/views/banner/banner.vue'], resolve);
253
+//             }
254
+//         }]
255
+//     },
256
+//     {
257
+//         path: '/homework',
258
+//         icon: 'images',
259
+//         name: 'homework',
260
+//         title: '家政详情',
261
+//         component: Main,
262
+//         children: [{
263
+//             path: 'index',
264
+//             title: '家政详情',
265
+//             name: 'homework_index',
266
+//             component: resolve => {
267
+//                 require(['@/views/homework/homework.vue'], resolve);
268
+//             }
269
+//         }]
270
+//     }
271
+// ];
177 272
 
178 273
 // 所有上面定义的路由都要写在下面的routers里
179 274
 export const routers = [
@@ -184,4 +279,4 @@ export const routers = [
184 279
     page500,
185 280
     page403,
186 281
     page404
187
-];
282
+];

+ 99
- 0
hksystem/src/views/image/edit.vue 查看文件

@@ -0,0 +1,99 @@
1
+<style lang="less">
2
+
3
+</style>
4
+
5
+<template>
6
+    <div>
7
+        <Row>
8
+            <Col span="18">
9
+                <Card>
10
+                    <Form :label-width="80">
11
+                        <FormItem label="产品名称">
12
+                            <Input v-model="form.name" icon="android-list"/>
13
+                        </FormItem>
14
+                        <FormItem label="产品款色">
15
+                            <Input v-model="form.color" icon="android-list"/>
16
+                        </FormItem>
17
+                        <FormItem label="产品价格">
18
+                            <Input v-model="form.price" icon="android-list"/>
19
+                        </FormItem>
20
+                        <FormItem label="产品分类">
21
+                            <Input v-model="form.classify" icon="android-list"/>
22
+                        </FormItem>
23
+                        <FormItem label="产品状态">
24
+                            <Select v-model="form.status" style="width: 150px">
25
+                                <Option :value="0">上架</Option>
26
+                                <Option :value="1">下架</Option>
27
+                            </Select>
28
+                        </FormItem>
29
+                        <FormItem label="产品信息">
30
+                            <editor :editor-content="form.info"></editor>
31
+                        </FormItem>
32
+                    </Form>
33
+                    <div class="submit">
34
+                        <Button @click="handlePublish" :loading="publishLoading" icon="ios-checkmark" size="large" type="primary">发布</Button>
35
+                    </div>
36
+                </Card>
37
+            </Col>
38
+        </Row>
39
+    </div>
40
+</template>
41
+
42
+<script>
43
+import tinymce from 'tinymce';
44
+import editor from '../main-components/editor'
45
+export default {
46
+    name: 'edit',
47
+    components: {
48
+        editor
49
+    },
50
+    props: {
51
+        formContent: Object
52
+    },
53
+    watch: {
54
+        formContent() {
55
+            if (!this.formContent.status) {
56
+                this.formContent.status = 0;
57
+            }
58
+            this.form = this.formContent;
59
+        }
60
+    },
61
+    data () {
62
+        return {
63
+            form: this.formContent,
64
+            publishLoading: false
65
+        };
66
+    },
67
+    methods: {
68
+        handlePublish() {
69
+            if (true) {
70
+                this.publishLoading = true;
71
+                let info = tinymce.activeEditor.getContent();
72
+                let data = {
73
+                    name: this.form.name,
74
+                    info: info,
75
+                    color: this.form.color,
76
+                    price: parseFloat(this.form.price),
77
+                    classify: this.form.classify,
78
+                    status: this.form.status
79
+                };
80
+                if (this.form.id) {
81
+                    data.id = this.form.id;
82
+                }
83
+                this.axios.post("/product/store", data).then((res) => {
84
+                    if (res.data.status == 0) {
85
+                        this.$Message.success('操作成功!');
86
+                        this.publishLoading = false;
87
+                        setTimeout(() => {
88
+                            this.$emit("pub-success");
89
+                        }, 1000);
90
+                    }
91
+                });
92
+            } else {
93
+                this.$Message.error('请完善所有信息!');
94
+                this.publishLoading = false;
95
+            }
96
+        }
97
+    }
98
+};
99
+</script>

+ 68
- 0
hksystem/src/views/image/index.vue 查看文件

@@ -0,0 +1,68 @@
1
+<style lang="less">
2
+    @import '../../styles/common.less';
3
+    .ivu-card-head {
4
+        p {
5
+            height: 32px;
6
+            line-height: 32px;
7
+        }
8
+        button {
9
+            float: right;
10
+        }
11
+    }
12
+</style>
13
+
14
+<template>
15
+    <div>
16
+        <Row class="margin-top-10">
17
+            <Col>
18
+                <Card>
19
+                    <p slot="title">
20
+                        <Icon type="android-remove"></Icon>
21
+                        打赏金额
22
+                    </p>
23
+                    <div class="edittable-table-height-con">
24
+                        <Form>
25
+                            <FormItem label="金额">
26
+                                <Input v-model="price" icon="android-list" />
27
+                            </FormItem>
28
+                        </Form>
29
+                        <div class="submit">
30
+                            <Button @click="changePrice" :loading="publishLoading" icon="ios-checkmark" size="large" type="primary"></Button>
31
+                        </div>
32
+                    </div>
33
+                </Card>
34
+            </Col>
35
+        </Row>
36
+    </div>
37
+</template>
38
+
39
+<script>
40
+export default {
41
+    name: 'reward',
42
+    data () {
43
+        return {
44
+            price: 0,
45
+            publishLoading: false
46
+        };
47
+    },
48
+    methods: {
49
+        changePrice() {
50
+            this.publishLoading = true;
51
+            this.axios.post("/reward/price", {
52
+                price: parseFloat(this.price)
53
+            }).then((res) => {
54
+                if (res.data.status == 0) {
55
+                    this.$message.success('操作成功');
56
+                    this.publishLoading = false;
57
+                }
58
+            })
59
+        },
60
+        getData (num) {
61
+            
62
+        }
63
+    },
64
+    created () {
65
+        this.getData();
66
+    }
67
+};
68
+</script>

+ 99
- 0
hksystem/src/views/introduce/edit.vue 查看文件

@@ -0,0 +1,99 @@
1
+<style lang="less">
2
+
3
+</style>
4
+
5
+<template>
6
+    <div>
7
+        <Row>
8
+            <Col span="18">
9
+                <Card>
10
+                    <Form :label-width="80">
11
+                        <FormItem label="产品名称">
12
+                            <Input v-model="form.name" icon="android-list"/>
13
+                        </FormItem>
14
+                        <FormItem label="产品款色">
15
+                            <Input v-model="form.color" icon="android-list"/>
16
+                        </FormItem>
17
+                        <FormItem label="产品价格">
18
+                            <Input v-model="form.price" icon="android-list"/>
19
+                        </FormItem>
20
+                        <FormItem label="产品分类">
21
+                            <Input v-model="form.classify" icon="android-list"/>
22
+                        </FormItem>
23
+                        <FormItem label="产品状态">
24
+                            <Select v-model="form.status" style="width: 150px">
25
+                                <Option :value="0">上架</Option>
26
+                                <Option :value="1">下架</Option>
27
+                            </Select>
28
+                        </FormItem>
29
+                        <FormItem label="产品信息">
30
+                            <editor :editor-content="form.info"></editor>
31
+                        </FormItem>
32
+                    </Form>
33
+                    <div class="submit">
34
+                        <Button @click="handlePublish" :loading="publishLoading" icon="ios-checkmark" size="large" type="primary">发布</Button>
35
+                    </div>
36
+                </Card>
37
+            </Col>
38
+        </Row>
39
+    </div>
40
+</template>
41
+
42
+<script>
43
+import tinymce from 'tinymce';
44
+import editor from '../main-components/editor'
45
+export default {
46
+    name: 'edit',
47
+    components: {
48
+        editor
49
+    },
50
+    props: {
51
+        formContent: Object
52
+    },
53
+    watch: {
54
+        formContent() {
55
+            if (!this.formContent.status) {
56
+                this.formContent.status = 0;
57
+            }
58
+            this.form = this.formContent;
59
+        }
60
+    },
61
+    data () {
62
+        return {
63
+            form: this.formContent,
64
+            publishLoading: false
65
+        };
66
+    },
67
+    methods: {
68
+        handlePublish() {
69
+            if (true) {
70
+                this.publishLoading = true;
71
+                let info = tinymce.activeEditor.getContent();
72
+                let data = {
73
+                    name: this.form.name,
74
+                    info: info,
75
+                    color: this.form.color,
76
+                    price: parseFloat(this.form.price),
77
+                    classify: this.form.classify,
78
+                    status: this.form.status
79
+                };
80
+                if (this.form.id) {
81
+                    data.id = this.form.id;
82
+                }
83
+                this.axios.post("/product/store", data).then((res) => {
84
+                    if (res.data.status == 0) {
85
+                        this.$Message.success('操作成功!');
86
+                        this.publishLoading = false;
87
+                        setTimeout(() => {
88
+                            this.$emit("pub-success");
89
+                        }, 1000);
90
+                    }
91
+                });
92
+            } else {
93
+                this.$Message.error('请完善所有信息!');
94
+                this.publishLoading = false;
95
+            }
96
+        }
97
+    }
98
+};
99
+</script>

+ 68
- 0
hksystem/src/views/introduce/index.vue 查看文件

@@ -0,0 +1,68 @@
1
+<style lang="less">
2
+    @import '../../styles/common.less';
3
+    .ivu-card-head {
4
+        p {
5
+            height: 32px;
6
+            line-height: 32px;
7
+        }
8
+        button {
9
+            float: right;
10
+        }
11
+    }
12
+</style>
13
+
14
+<template>
15
+    <div>
16
+        <Row class="margin-top-10">
17
+            <Col>
18
+                <Card>
19
+                    <p slot="title">
20
+                        <Icon type="android-remove"></Icon>
21
+                        打赏金额
22
+                    </p>
23
+                    <div class="edittable-table-height-con">
24
+                        <Form>
25
+                            <FormItem label="金额">
26
+                                <Input v-model="price" icon="android-list" />
27
+                            </FormItem>
28
+                        </Form>
29
+                        <div class="submit">
30
+                            <Button @click="changePrice" :loading="publishLoading" icon="ios-checkmark" size="large" type="primary"></Button>
31
+                        </div>
32
+                    </div>
33
+                </Card>
34
+            </Col>
35
+        </Row>
36
+    </div>
37
+</template>
38
+
39
+<script>
40
+export default {
41
+    name: 'reward',
42
+    data () {
43
+        return {
44
+            price: 0,
45
+            publishLoading: false
46
+        };
47
+    },
48
+    methods: {
49
+        changePrice() {
50
+            this.publishLoading = true;
51
+            this.axios.post("/reward/price", {
52
+                price: parseFloat(this.price)
53
+            }).then((res) => {
54
+                if (res.data.status == 0) {
55
+                    this.$message.success('操作成功');
56
+                    this.publishLoading = false;
57
+                }
58
+            })
59
+        },
60
+        getData (num) {
61
+            
62
+        }
63
+    },
64
+    created () {
65
+        this.getData();
66
+    }
67
+};
68
+</script>

+ 11
- 3
miniapp/app/pages/home/index.js 查看文件

@@ -42,13 +42,21 @@ new $.Page({
42 42
     },
43 43
     toDetail(e) {
44 44
         const {
45
-            id
45
+            id,
46
+            name
46 47
         } = e.target.dataset;
47 48
         if (id) {
49
+            // $.router.goto({
50
+            //     path: `/pages/detail/index`,
51
+            //     query: {
52
+            //         id
53
+            //     }
54
+            // });
48 55
             $.router.goto({
49
-                path: `/pages/detail/index`,
56
+                path: `/pages/introduce/index`,
50 57
                 query: {
51
-                    id
58
+                    id,
59
+                    name
52 60
                 }
53 61
             });
54 62
         }

+ 3
- 2
miniapp/app/pages/home/index.wxml 查看文件

@@ -1,11 +1,12 @@
1 1
 <import src="/wxParse/wxParse.wxml" />
2 2
 <view class="page">
3
-    <view class="page-hd">
3
+    <view class="page-hd" wx:if="{{top.length > 0}}">
4 4
         <swiper indicator-dots="true" indicator-color="#ffffff" indicator-active-color="#00a0e9" autoplay="true"
5 5
             interval="5000" duration="500">
6 6
             <block wx:for="{{top}}">
7 7
                 <swiper-item>
8
-                    <image src="{{item.photo}}" class="slide-image" data-id="{{item.id}}" bindtap="toDetail" />
8
+                    <image src="{{item.photo}}" class="slide-image" data-name="{{item.server}}" data-id="{{item.id}}"
9
+                        bindtap="toDetail" />
9 10
                 </swiper-item>
10 11
             </block>
11 12
         </swiper>

Loading…
取消
儲存