Browse Source

Merge branch 'master' of http://git.shengws.com/zhangbj/scrm-vue

庄逸洲 5 years ago
parent
commit
3dce549847

+ 2 - 1
config/dev.env.js View File

@@ -1,7 +1,8 @@
1 1
 module.exports = {
2 2
   NODE_ENV: '"development"',
3 3
   ENV_CONFIG: '"dev"',
4
-  BASE_API: '"http://api.test1.sgjyun.com"', // // http://localhost:8090
4
+  BASE_API:'"http://api.test1.sgjyun.com"',//'"http://localhost:9534"'
5
+  //BASE_API:'"http://localhost:9534"'
5 6
 
6 7
   SSO_HOST: '"http://testsso.sgjyun.com"',
7 8
   SRCM_HOST: '"http://test1.sgjyun.com"',

+ 2 - 1
config/index.js View File

@@ -19,7 +19,8 @@ module.exports = {
19 19
 
20 20
     // host: 'test1.sgjyun.com',
21 21
     // host: 'jk.kuyicloud.com',
22
-    host: 'test1.sgjyun.com',
22
+    //host: 'test1.sgjyun.com',
23
+    host:'localhost',
23 24
     port: 8090, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
24 25
     autoOpenBrowser: true,
25 26
     errorOverlay: true,

+ 9 - 4
package-lock.json View File

@@ -4706,7 +4706,8 @@
4706 4706
         "ansi-regex": {
4707 4707
           "version": "2.1.1",
4708 4708
           "bundled": true,
4709
-          "dev": true
4709
+          "dev": true,
4710
+          "optional": true
4710 4711
         },
4711 4712
         "aproba": {
4712 4713
           "version": "1.2.0",
@@ -5121,7 +5122,8 @@
5121 5122
         "safe-buffer": {
5122 5123
           "version": "5.1.2",
5123 5124
           "bundled": true,
5124
-          "dev": true
5125
+          "dev": true,
5126
+          "optional": true
5125 5127
         },
5126 5128
         "safer-buffer": {
5127 5129
           "version": "2.1.2",
@@ -5177,6 +5179,7 @@
5177 5179
           "version": "3.0.1",
5178 5180
           "bundled": true,
5179 5181
           "dev": true,
5182
+          "optional": true,
5180 5183
           "requires": {
5181 5184
             "ansi-regex": "^2.0.0"
5182 5185
           }
@@ -5220,12 +5223,14 @@
5220 5223
         "wrappy": {
5221 5224
           "version": "1.0.2",
5222 5225
           "bundled": true,
5223
-          "dev": true
5226
+          "dev": true,
5227
+          "optional": true
5224 5228
         },
5225 5229
         "yallist": {
5226 5230
           "version": "3.0.3",
5227 5231
           "bundled": true,
5228
-          "dev": true
5232
+          "dev": true,
5233
+          "optional": true
5229 5234
         }
5230 5235
       }
5231 5236
     },

+ 19 - 0
src/api/act/submitinfo.js View File

@@ -0,0 +1,19 @@
1
+import request from '@/utils/request'
2
+
3
+export function submitForm (params){
4
+    console.log("文章列表",params)
5
+    return request({
6
+        url: '/api/acticle/createacticle',
7
+        method: 'Get',
8
+        params: params
9
+    })
10
+}
11
+
12
+export function getArticleType(params){
13
+     console.log("分类信息")
14
+     return request({
15
+         url:'/api/acticle/getArticleType',
16
+         method: 'Get',
17
+         params: params
18
+     })
19
+}

+ 1 - 0
src/api/qiniu.js View File

@@ -1,6 +1,7 @@
1 1
 import request from '@/utils/request'
2 2
 
3 3
 export function getToken() {
4
+  console.log("加地址")
4 5
   return request({
5 6
     url: '/api/qiniu/uptoken', // 假地址 自行替换
6 7
     method: 'get'

+ 2 - 1
src/lang/en.js View File

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

+ 2 - 0
src/lang/zh.js View File

@@ -162,6 +162,8 @@ export default {
162 162
     marketingTool: "营销工具",
163 163
     activityList: "活动列表",
164 164
     activityPublish: "发布活动",
165
+    systemsetting:'系统设置',
166
+    staffmanagement:'员工管理'
165 167
   },
166 168
   navbar: {
167 169
     logOut: '退出登录',

+ 3 - 1
src/router/index.js View File

@@ -11,6 +11,7 @@ import article from './modules/article'
11 11
 import member from './modules/member'
12 12
 import org from './modules/org'
13 13
 import marketing_tool from './modules/marketing_tool'
14
+import system from './modules/system'
14 15
 
15 16
 /** note: submenu only apppear when children.length>=1
16 17
  *   detail see  https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html
@@ -75,7 +76,8 @@ var _asy_router_map = [
75 76
   article,
76 77
   marketing_tool,
77 78
   org,
78
-  role
79
+  role,
80
+  system
79 81
 ]
80 82
 
81 83
 var is_asy_router = process.env.NODE_ENV === 'production' // true; 设置为 true 强制进行路由验证

+ 21 - 0
src/router/modules/system.js View File

@@ -0,0 +1,21 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default{
4
+    alwaysShow: true,
5
+    path: '/Systemsetting',
6
+    component: Layout,
7
+    redirect: 'noredirect',
8
+    name: 'Systemsetting',
9
+    meta: {
10
+        title: 'systemsetting',
11
+        icon: 'peoples'
12
+      },
13
+      children: [
14
+        {
15
+          path: '/Systemsetting/staffmanagement',
16
+          component: () => import('@/scrm_pages/Systemsetting/staffmanagement'),
17
+          name: 'memberslist',
18
+          meta: { title: 'staffmanagement', noCache: true }
19
+        },
20
+      ]  
21
+}

+ 4 - 0
src/scrm_pages/article/articleList.vue View File

@@ -34,6 +34,10 @@
34 34
             <el-button size="small" icon="el-icon-delete" @click="batchDelete">删除</el-button>
35 35
           </div>
36 36
           <el-table ref="multipleTable" :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)'}" :data="tableData" border fit highlight-current-row  style="width: 100%;margin-top: 10px;">
37
+              <el-table-column
38
+                type="selection"
39
+                width="55">
40
+              </el-table-column> 
37 41
              <el-table-column label="文章图片" align="center">
38 42
                <template slot-scope="scope">
39 43
 

+ 241 - 39
src/scrm_pages/article/createArticle.vue View File

@@ -7,17 +7,17 @@
7 7
     <div class="app-container">
8 8
     <el-tabs type="border-card">
9 9
       <el-tab-pane label="文章">
10
-        <el-form label-width="80px" class="clearfix">
10
+        <el-form label-width="80px" class="clearfix" :model="form" ref="form"  :element-loading-text="loadingText">
11 11
           <el-row>
12
-            <el-col :span="24">
12
+            <el-col :span="23">
13 13
                 <el-form-item label="文章标题:">
14
-                    <el-input placeholder="文章标题"></el-input>
14
+                    <el-input v-model="form.act_name"  placeholder="文章标题"></el-input>
15 15
                 </el-form-item>
16
-              <el-form-item label="文章内容:" prop="org_introduction">
16
+              <el-form-item label="文章内容:">
17 17
                 <keep-alive>
18 18
                   <neditor ref="neditor"
19 19
                            id="editor"
20
-                           v-bind:r_content="form.org_introduction">
20
+                           v-bind:r_content="form.act_content">
21 21
                   </neditor>
22 22
                 </keep-alive>
23 23
               </el-form-item>
@@ -25,39 +25,66 @@
25 25
                   <el-radio v-model="radio" label="1" @click.native.prevent="select()" >单图</el-radio>
26 26
                   <el-radio v-model="radio" label="2" @click.native.prevent="clickitem()" >三图</el-radio>
27 27
               </el-form-item>
28
-              <el-form-item>
28
+              <el-form-item prop="org_log">
29 29
                 <el-col :span="3">
30 30
                   <div>
31
-                    <el-upload  class="avatar-uploader":show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
31
+                    <el-upload
32
+                      v-loading="uploading"
33
+                      :element-loading-text="loadingText"
34
+                      class="avatar-uploader"
35
+                      :data="uploadData"
36
+                      action="https://upload.qiniup.com"
37
+                      :show-file-list="false"
38
+                      :on-error="handleAvatarError"
39
+                      :on-success="handleAvatarSuccess"
40
+                      :before-upload="beforeAvatarUpload">
32 41
                       <img v-if="imageUrl" :src="imageUrl" class="avatar">
33 42
                       <i v-else class="el-icon-plus avatar-uploader-icon"></i>
34 43
                     </el-upload>
35 44
                   </div>
36 45
                 </el-col>
37 46
                 <el-col :span="3">
38
-                  <div class="elupload" v-if="show">
39
-                    <el-upload  class="avatar-uploader":show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
40
-                      <img v-if="imageUrl" :src="imageUrl" class="avatar">
47
+                  <div v-if="show">
48
+                    <el-upload
49
+                      v-loading="guploading"
50
+                      :element-loading-text="loadingText"
51
+                      class="avatar-uploader"
52
+                      :data="uploadData"
53
+                      action="https://upload.qiniup.com"
54
+                      :show-file-list="false"
55
+                      :on-error="handleAvatartwoError"
56
+                      :on-success="handleAvatartwoSuccess"
57
+                      :before-upload="beforeAvatartwoUpload">
58
+                      <img v-if="imageUrlSecond" :src="imageUrlSecond" class="avatar">
41 59
                       <i v-else class="el-icon-plus avatar-uploader-icon"></i>
42 60
                     </el-upload>
43 61
                   </div>
44 62
                 </el-col>
45 63
                 <el-col :span="3">
46 64
                   <div v-if="show">
47
-                    <el-upload  class="avatar-uploader":show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
48
-                      <img v-if="imageUrl" :src="imageUrl" class="avatar">
65
+                    <el-upload
66
+                      v-loading="uploading"
67
+                      :element-loading-text="loadingText"
68
+                      class="avatar-uploader"
69
+                      :data="uploadData"
70
+                      action="https://upload.qiniup.com"
71
+                      :show-file-list="false"
72
+                      :on-error="handleAvatarlastError"
73
+                      :on-success="handleAvatarlastSuccess"
74
+                      :before-upload="beforeAvatarlastUpload">
75
+                      <img v-if="imageUrlLast" :src="imageUrlLast" class="avatar">
49 76
                       <i v-else class="el-icon-plus avatar-uploader-icon"></i>
50 77
                     </el-upload>
51 78
                   </div>
52 79
                 </el-col>
53 80
               </el-form-item>
54 81
                <el-form-item label="所属分类:">
55
-                 <el-select v-model="value" placeholder="请先选择文章所属分类">
82
+                 <el-select v-model="value" placeholder="请先选择文章所属分类" prop="act_type">
56 83
                    <el-option
57 84
                      v-for="item in options"
58
-                     :key="item.value"
59
-                     :label="item.label"
60
-                     :value="item.value">
85
+                     :key="item.id"
86
+                     :label="item.Name"
87
+                     :value="item.id">
61 88
                    </el-option>
62 89
                  </el-select>
63 90
                </el-form-item>
@@ -67,7 +94,7 @@
67 94
           <el-row :span="24">
68 95
             <el-col :span="24">
69 96
                 <el-form-item>
70
-                      <el-button size="small" type="primary" style="width: 100px">发布</el-button>
97
+                      <el-button size="small" type="primary" style="width: 100px"  @click="submitForm" :disabled="formsubmit">发布</el-button>
71 98
                       <el-button size="small" style="width: 100px">预览</el-button>
72 99
                       <el-button size="small" style="width: 100px">保存草稿</el-button>
73 100
                   <el-button size="small" style="width: 100px">取消</el-button>
@@ -85,7 +112,7 @@
85 112
                  <div class="video-select">
86 113
                    <el-upload
87 114
                    class="upload-demo"
88
-                   action="https://jsonplaceholder.typicode.com/posts/"
115
+                   action="https://upload.qiniup.com"
89 116
                    :on-preview="handlePreview"
90 117
                    :on-remove="handleRemove"
91 118
                    :before-remove="beforeRemove"
@@ -112,18 +139,18 @@
112 139
                  </el-form-item>
113 140
                  <el-form-item label="视频封面:"></el-form-item>
114 141
                  <el-form-item>
115
-                   <el-upload  class="avatar-uploader":show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
142
+                   <el-upload  class="avatar-uploader" :show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
116 143
                      <img v-if="imageUrl" :src="imageUrl" class="avatar">
117 144
                      <i v-else class="el-icon-plus avatar-uploader-icon"></i>
118 145
                    </el-upload>
119 146
                  </el-form-item>
120 147
                   <el-form-item label="所属分类:">
121
-                    <el-select v-model="value" placeholder="请选择">
148
+                    <el-select v-model="form.act_type" placeholder="请选择">
122 149
                       <el-option
123
-                      v-for="item in options"
124
-                      :key="item.value"
125
-                      :label="item.label"
126
-                      :value="item.value">
150
+                         v-for="item in options"
151
+                         :key="item.value"
152
+                        :label="item.label"
153
+                         :value="item.value">
127 154
                       </el-option>
128 155
                       </el-select>
129 156
                   </el-form-item>
@@ -153,6 +180,9 @@
153 180
   import 'quill/dist/quill.snow.css'
154 181
   import 'quill/dist/quill.bubble.css'
155 182
   import Neditor from '@/components/Neditor'
183
+  import {submitForm,getArticleType} from '@/api/act/submitinfo'
184
+  import { getToken } from '@/api/qiniu'
185
+  import { getFileExtension} from '@/utils/tools'
156 186
   export default {
157 187
     name: 'createArticle',
158 188
     components:{
@@ -166,17 +196,7 @@
166 196
           { path: '/articles/createArticle', name: '发布文章' }
167 197
         ],
168 198
          radio:'1',
169
-        imageUrl: '',
170
-        options: [{
171
-          value: '选项1',
172
-          label: '科普教育'
173
-        }, {
174
-          value: '选项2',
175
-          label: '肾病常识'
176
-        }, {
177
-          value: '选项3',
178
-          label: '食物库'
179
-        }],
199
+        options: [],
180 200
         value: '',
181 201
         show:false,
182 202
         content: '',
@@ -188,13 +208,53 @@
188 208
         company:"",
189 209
         fileList: [{name: '123', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'}],
190 210
         form:{
191
-          org_introduction:'',
192
-        }
211
+          act_name:'',
212
+          act_content:'',
213
+          act_picture:'',
214
+          act_category:'',
215
+          org_logo:'',
216
+          act_type:'',
217
+        },
218
+         acttypes:[],
219
+         imageUrl:'',
220
+         imageUrlSecond:'',
221
+         imageUrlLast:'',
222
+         formloading:false,
223
+         formsubmit:false,
224
+         qiniuDomain: 'https://images.shengws.com/',
225
+         uploading:false,
226
+         loadingText:'',
227
+         uploadData: { token: '', key: '' },
228
+         myConfig: {
229
+                // 如果需要上传功能,找后端小伙伴要服务器接口地址
230
+                serverUrl: '/api/web/upload/ueditor',
231
+                // 你的UEditor资源存放的路径,相对于打包后的index.html
232
+                UEDITOR_HOME_URL: '/NEditor/',
233
+                // 编辑器不自动被内容撑高
234
+                autoHeightEnabled: false,
235
+                // 初始容器高度
236
+                initialFrameHeight: 240,
237
+                // 初始容器宽度
238
+                initialFrameWidth: '100%',
239
+                // 关闭自动保存
240
+                enableAutoSave: false
241
+            },
193 242
       }
194 243
     },
244
+    created(){
245
+        this.getArticleType()
246
+    },
195 247
     methods: {
248
+      //第一个图片
196 249
       handleAvatarSuccess(res, file) {
197 250
         this.imageUrl = URL.createObjectURL(file.raw);
251
+        this.form.org_logo = this.qiniuDomain + res.url;
252
+        this.uploading = false
253
+      },
254
+       handleAvatarError(err, file, fileList) {
255
+            this.$message.error(err);
256
+            this.uploading = false;
257
+            return false
198 258
       },
199 259
       beforeAvatarUpload(file) {
200 260
         const isJPG = file.type === 'image/jpeg';
@@ -206,8 +266,120 @@
206 266
         if (!isLt2M) {
207 267
           this.$message.error('上传头像图片大小不能超过 2MB!');
208 268
         }
209
-        return isJPG && isLt2M;
269
+
270
+            var date = new Date()
271
+            var ext = getFileExtension(file.name)
272
+            var key = date.getFullYear() + (date.getMonth() + 1) + date.getDate() + date.getHours()  + date.getMinutes()  + date.getSeconds()  +'_o_' + file.uid + '.' + ext;
273
+            this.uploading = true;
274
+            this.loadingText = '封面图片上传中'
275
+
276
+            const _self = this
277
+            return new Promise((resolve, reject) => {
278
+                getToken().then(response => {
279
+                    const token = response.data.data.uptoken
280
+                    console.log("token是什么?",token)
281
+                    _self._data.uploadData.token = token
282
+                    _self._data.uploadData.key = key
283
+                    resolve(true)
284
+                }).catch(err => {
285
+                    reject(false)
286
+                    this.uploading = false;
287
+                })
288
+            })
289
+
290
+          //return isJPG && isLt2M;
291
+      },
292
+      //第二个图片
293
+      handleAvatartwoSuccess(res, file) {
294
+        this.imageUrlSecond = URL.createObjectURL(file.raw);
295
+        this.form.org_logo = this.qiniuDomain + res.url;
296
+        this.uploading = false
297
+      },
298
+       handleAvatartwoError(err, file, fileList) {
299
+            this.$message.error(err);
300
+            this.uploading = false;
301
+            return false
302
+      },
303
+      beforeAvatartwoUpload(file) {
304
+        const isJPG = file.type === 'image/jpeg';
305
+        const isLt2M = file.size / 1024 / 1024 < 2;
306
+
307
+        if (!isJPG) {
308
+          this.$message.error('上传头像图片只能是 JPG 格式!');
309
+        }
310
+        if (!isLt2M) {
311
+          this.$message.error('上传头像图片大小不能超过 2MB!');
312
+        }
313
+
314
+            var date = new Date()
315
+            var ext = getFileExtension(file.name)
316
+            var key = date.getFullYear() + (date.getMonth() + 1) + date.getDate() + date.getHours()  + date.getMinutes()  + date.getSeconds()  +'_o_' + file.uid + '.' + ext;
317
+            this.uploading = true;
318
+            this.loadingText = '封面图片上传中'
319
+
320
+            const _self = this
321
+            return new Promise((resolve, reject) => {
322
+                getToken().then(response => {
323
+                    const token = response.data.data.uptoken
324
+                    console.log("token是什么?",token)
325
+                    _self._data.uploadData.token = token
326
+                    _self._data.uploadData.key = key
327
+                    resolve(true)
328
+                }).catch(err => {
329
+                    reject(false)
330
+                    this.uploading = false;
331
+                })
332
+            })
333
+
334
+          //return isJPG && isLt2M;
335
+      },
336
+
337
+      //第三张图片
338
+      //第二个图片
339
+      handleAvatarlastSuccess(res, file) {
340
+        this.imageUrlLast = URL.createObjectURL(file.raw);
341
+        this.form.org_logo = this.qiniuDomain + res.url;
342
+        this.uploading = false
343
+      },
344
+       handleAvatarlastError(err, file, fileList) {
345
+            this.$message.error(err);
346
+            this.uploading = false;
347
+            return false
210 348
       },
349
+      beforeAvatarlastUpload(file) {
350
+        const isJPG = file.type === 'image/jpeg';
351
+        const isLt2M = file.size / 1024 / 1024 < 2;
352
+
353
+        if (!isJPG) {
354
+          this.$message.error('上传头像图片只能是 JPG 格式!');
355
+        }
356
+        if (!isLt2M) {
357
+          this.$message.error('上传头像图片大小不能超过 2MB!');
358
+        }
359
+
360
+            var date = new Date()
361
+            var ext = getFileExtension(file.name)
362
+            var key = date.getFullYear() + (date.getMonth() + 1) + date.getDate() + date.getHours()  + date.getMinutes()  + date.getSeconds()  +'_o_' + file.uid + '.' + ext;
363
+            this.uploading = true;
364
+            this.loadingText = '封面图片上传中'
365
+
366
+            const _self = this
367
+            return new Promise((resolve, reject) => {
368
+                getToken().then(response => {
369
+                    const token = response.data.data.uptoken
370
+                    console.log("token是什么?",token)
371
+                    _self._data.uploadData.token = token
372
+                    _self._data.uploadData.key = key
373
+                    resolve(true)
374
+                }).catch(err => {
375
+                    reject(false)
376
+                    this.uploading = false;
377
+                })
378
+            })
379
+
380
+          //return isJPG && isLt2M;
381
+      },
382
+
211 383
       beforeUpload(file) {
212 384
         var testmsg=file.name.substring(file.name.lastIndexOf('.')+1)
213 385
         const extension = testmsg === 'mp4'
@@ -245,7 +417,37 @@
245 417
       beforeRemove(file, fileList) {
246 418
         return this.$confirm(`确定移除 ${ file.name }?`);
247 419
       },
248
-
420
+      submitForm(){
421
+        var params  = new Object()
422
+        params.act_name = this.form.act_name
423
+        params.act_content = this.$refs.neditor.content
424
+        params.org_logo = this.form.org_logo
425
+        this.formloading=true
426
+        this.submitForm =true
427
+        console.log("文章标题",params.act_name)
428
+        console.log("文章内容",params.act_content)
429
+        console.log("富文本编辑器的内容",params.act_content)
430
+        console.log("图片",params.org_logo)
431
+        submitForm(params).then(response => {
432
+           if(response.data.state === 1){
433
+             this.$message({
434
+               type: 'success',
435
+               message: '成功!'
436
+             })
437
+           }
438
+        })
439
+      },
440
+      getArticleType(){
441
+        getArticleType().then(response =>{
442
+            console.log("好嗨我")
443
+            if(response.data.state === 1){
444
+            var category = response.data.data.category
445
+            this.options = response.data.data.category
446
+             console.log("文章内容:",category)
447
+             console.log("文章",this.options)
448
+            }
449
+        })
450
+      }
249 451
     },
250 452
   }
251 453
 </script>

+ 262 - 0
src/scrm_pages/systemsetting/staffmanagement.vue View File

@@ -0,0 +1,262 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+       <el-button  style="float:right;" type="primary" size="small" icon="el-icon-circle-plus-outline" @click="centerDialogVisible = true" >添加员工</el-button>
6
+    </div>
7
+    <div class="app-container">
8
+         <div>
9
+             <el-row :gutter="24">
10
+                <el-col :span="8">
11
+                  <el-input style="width: 300px"  placeholder="请输入您需要搜索的内容"></el-input>
12
+                  <el-button type="primary"  icon="el-icon-search" @click="changeKey">搜索</el-button>
13
+                </el-col>
14
+             </el-row>
15
+         </div>
16
+         <div class="filter-container" style="margin-top: 10px;margin-left: 5px">
17
+            <el-checkbox style="width: 30px" v-model="checked" @change="changeAllSelected">全选</el-checkbox>
18
+            <el-button size="small" icon="el-icon-delete" @click="batchDelete">删除</el-button>
19
+          </div>
20
+              <el-table ref="multipleTable" :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)'}" :data="tableData" border fit highlight-current-row  style="width: 100%;margin-top: 10px;">
21
+              <el-table-column
22
+                type="selection"
23
+                width="55">
24
+              </el-table-column>
25
+              <el-table-column label="员工" align="center">
26
+               <template slot-scope="scope">
27
+
28
+               </template>
29
+             </el-table-column>
30
+            <el-table-column label="职称" align="center">
31
+              <template slot-scope="scope">
32
+
33
+              </template>
34
+            </el-table-column>
35
+            <el-table-column label="介绍" align="center">
36
+              <template slot-scope="scope">
37
+
38
+              </template>
39
+            </el-table-column>
40
+            <el-table-column label="手机号" align="center">
41
+              <template slot-scope="scope">
42
+
43
+              </template>
44
+            </el-table-column>
45
+            <el-table-column label="创建时间" align="center">
46
+              <template slot-scope="scope">
47
+
48
+              </template>
49
+            </el-table-column>
50
+            <el-table-column label="操作" align="center">
51
+              <template slot-scope="scope">
52
+                <el-tooltip class="item" effect="dark" content="编辑" placement="top">
53
+                  <el-button
54
+                    size="mini"
55
+                    type="primary"
56
+                    icon="el-icon-edit-outline"
57
+                    >
58
+                  </el-button>
59
+                  </el-tooltip>
60
+              </template>
61
+            </el-table-column>
62
+          </el-table>
63
+          <el-pagination
64
+            @size-change="handleSizeChange"
65
+            @current-change="handleCurrentChange"
66
+            :page-sizes="[10,20,50,100]"
67
+            :page-size="10"
68
+            background
69
+            style="margin-top:20px;float: right"
70
+            layout="total, sizes, prev, pager, next, jumper"
71
+            :total="total">
72
+          </el-pagination>
73
+
74
+          <el-dialog
75
+              title="添加会员"
76
+              :visible.sync="centerDialogVisible"
77
+              width="50%"
78
+              center>
79
+              <el-form label-width="80px" class="clearfix" :model="form" ref="form">
80
+                 <el-row>
81
+                   <el-col :span="12">
82
+                      <el-form-item label="姓名:">
83
+                           <el-input placeholder="请输入姓名">
84
+
85
+                           </el-input>
86
+                      </el-form-item>
87
+                   </el-col>
88
+                   <el-col :span="12">
89
+                     <el-form-item label="手机号:">
90
+                       <el-input placeholder="请输入手机号">
91
+
92
+                       </el-input>
93
+                     </el-form-item>
94
+                   </el-col>
95
+                 </el-row>
96
+                <el-row>
97
+                   <el-col :span="12">
98
+                       <el-form-item label="性别:">
99
+                         <el-radio v-model="radio" label="1">男</el-radio>
100
+                         <el-radio v-model="radio" label="2">女</el-radio>
101
+                       </el-form-item>
102
+                   </el-col>
103
+                  <el-col :span="12">
104
+                    <el-form-item label="生日:">
105
+                          <el-time-select
106
+                            v-model="value"
107
+                            :picker-options="{
108
+                              start: '08:30',
109
+                              step: '00:15',
110
+                              end: '18:30'}"
111
+                            placeholder="选择时间">
112
+                        </el-time-select>
113
+                    </el-form-item>
114
+                  </el-col>
115
+                </el-row>
116
+                <el-row>
117
+                    <el-col :span="8">
118
+                        <el-form-item label="员工职称:">
119
+                          <template>
120
+                            <el-select v-model="value1" multiple placeholder="请选择">
121
+                              <el-option
122
+                                v-for="item in options"
123
+                                :key="item.value"
124
+                                :label="item.label"
125
+                                :value="item.value">
126
+                              </el-option>
127
+                            </el-select>
128
+                          </template>
129
+                        </el-form-item>
130
+                    </el-col>
131
+                  <el-col :span="6">
132
+                      <template>
133
+                        <el-select v-model="value2" multiple placeholder="请选择">
134
+                          <el-option
135
+                            v-for="item in options"
136
+                            :key="item.value"
137
+                            :label="item.label"
138
+                            :value="item.value">
139
+                          </el-option>
140
+                        </el-select>
141
+                      </template>
142
+                  </el-col>
143
+                  <el-col :span="4">
144
+                      <el-form-item label="医生头像:">
145
+                        <el-upload
146
+                          class="avatar-uploader"
147
+                          action="https://jsonplaceholder.typicode.com/posts/"
148
+                          :show-file-list="false"
149
+                          :on-success="handleAvatarSuccess"
150
+                          :before-upload="beforeAvatarUpload">
151
+                          <img v-if="imageUrl" :src="imageUrl" class="avatar">
152
+                          <i v-else class="el-icon-plus avatar-uploader-icon"></i>
153
+                        </el-upload>
154
+                      </el-form-item>
155
+                    </el-col>
156
+                </el-row>
157
+                 <el-row>
158
+                     <el-col :span="24">
159
+                         <el-form-item label="医生简介:">
160
+                           <keep-alive>
161
+                             <neditor ref="neditor"
162
+                                      id="editor">
163
+                             </neditor>
164
+                           </keep-alive>
165
+                         </el-form-item>
166
+                     </el-col>
167
+                 </el-row>
168
+              </el-form>
169
+              <span slot="footer" class="dialog-footer">
170
+              <el-button @click="centerDialogVisible = false">取 消</el-button>
171
+              <el-button type="primary" @click="centerDialogVisible = false">确 定</el-button>
172
+               </span>
173
+          </el-dialog>
174
+
175
+    </div>
176
+  </div>
177
+</template>
178
+
179
+<script>
180
+  import BreadCrumb from '../components/bread-crumb'
181
+  import Neditor from '@/components/Neditor'
182
+  export default {
183
+    name: 'articleComment',
184
+    components:{
185
+      BreadCrumb,
186
+      Neditor,
187
+    },
188
+    data(){
189
+      return{
190
+        crumbs: [
191
+          { path: false, name: '系统设置' },
192
+          { path: '/Systemsetting/staffmanagement', name: '员工管理' }
193
+        ],
194
+         centerDialogVisible: false,
195
+          radio: '1',
196
+          value: '',
197
+          options: [{
198
+          value: '选项1',
199
+          label: '黄金糕'
200
+        }, {
201
+          value: '选项2',
202
+          label: '双皮奶'
203
+        }, {
204
+          value: '选项3',
205
+          label: '蚵仔煎'
206
+        }, {
207
+          value: '选项4',
208
+          label: '龙须面'
209
+        }, {
210
+          value: '选项5',
211
+          label: '北京烤鸭'
212
+        }],
213
+        value1: [],
214
+        value2: [],
215
+        imageUrl: ''
216
+      }
217
+    },
218
+    methods: {
219
+      handleAvatarSuccess(res, file) {
220
+        this.imageUrl = URL.createObjectURL(file.raw);
221
+      },
222
+      beforeAvatarUpload(file) {
223
+        const isJPG = file.type === 'image/jpeg';
224
+        const isLt2M = file.size / 1024 / 1024 < 2;
225
+
226
+        if (!isJPG) {
227
+          this.$message.error('上传头像图片只能是 JPG 格式!');
228
+        }
229
+        if (!isLt2M) {
230
+          this.$message.error('上传头像图片大小不能超过 2MB!');
231
+        }
232
+        return isJPG && isLt2M;
233
+      }
234
+    }
235
+  }
236
+</script>
237
+
238
+<style scoped>
239
+    .avatar-uploader{
240
+      border: 1px solid #d9d9d9;
241
+      border-radius: 1px;
242
+      cursor: pointer;
243
+      position: relative;
244
+      overflow: hidden;
245
+    }
246
+    .avatar-uploader{
247
+      border-color: #d9d9d9;
248
+    }
249
+    .avatar-uploader-icon {
250
+      font-size: 20px;
251
+      color: #8c939d;
252
+      width: 65px;
253
+      height: 50px;
254
+      line-height: 50px;
255
+      text-align: center;
256
+    }
257
+    .avatar {
258
+      width: 50px;
259
+      height: 50px;
260
+      display: block;
261
+    }
262
+</style>

+ 8 - 13
src/xt_permission.js View File

@@ -10,19 +10,14 @@ const permissionWhiteList = loginWhiteList.concat(['/']) // 权限验证白名
10 10
 
11 11
 router.beforeEach((to, from, next) => {
12 12
   // 线上注释
13
-  // if (!store.getters.configlist || store.getters.configlist === undefined || store.getters.configlist.length <= 0) {
14
-  //   store.dispatch('VerifyConfigList', []).then(() => {
15
-  //     next()
16
-  //   })
17
-  // }
18
-  // if (store.getters.permission_routers === undefined) {
19
-  //   store.dispatch('xt_GenerateRoutes', []).then(() => {
20
-  //     next()
21
-  //   })
22
-  // } else {
23
-  //   next()
24
-  // }
25
-  // return
13
+  if (store.getters.permission_routers === undefined) {
14
+    store.dispatch('xt_GenerateRoutes', []).then(() => {
15
+      next()
16
+    })
17
+  } else {
18
+    next()
19
+  }
20
+  return
26 21
   // 线上注释
27 22
 
28 23
   NProgress.start()