yuantianjiao il y a 6 ans
Parent
révision
61065eb96d

+ 1
- 1
config/index.js Voir le fichier

@@ -12,7 +12,7 @@ module.exports = {
12 12
     proxyTable: {
13 13
       '/api': {
14 14
         // target: 'https://dp.huiju360.com.cn/hj_operations',
15
-        // target: 'http://192.168.0.62:8080/api',
15
+        // target: 'http://192.168.0.62:8080', //wf
16 16
         target: 'http://192.168.0.11:8088', //zys
17 17
         changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
18 18
         // pathRewrite: {

+ 13
- 14
src/pages/login/index.vue Voir le fichier

@@ -62,21 +62,20 @@ export default {
62 62
           password: passWord,
63 63
           token: token
64 64
         }
65
-      })
66
-        .then(res => {
67
-          console.log(res)
68
-          this.saveToken(res.token)
69
-          this.$message({
70
-            message: '登陆成功',
71
-            type: 'success',
72
-            duration: 1000
73
-          })
74
-          setTimeout(() => {
75
-            this.$router.push({ name: 'system' })
76
-          }, 1000)
77
-        }).catch(msg => {
78
-
65
+      }).then(res => {
66
+        console.log(res)
67
+        this.saveToken(res.token)
68
+        this.$message({
69
+          message: '登陆成功',
70
+          type: 'success',
71
+          duration: 1000
79 72
         })
73
+        setTimeout(() => {
74
+          this.$router.push({ name: 'system' })
75
+        }, 1000)
76
+      }).catch(msg => {
77
+
78
+      })
80 79
     },
81 80
 
82 81
     // 初始化登陆逻辑

+ 55
- 44
src/pages/system/cmsManager/bannerManager/add.vue Voir le fichier

@@ -6,8 +6,8 @@
6 6
           <span>跳转类型:</span>
7 7
           <div class="flex-item">
8 8
             <div style="width:50%" class="radio">
9
-                <el-radio v-model="postData.jumpType" label='0' >连接</el-radio>
10
-                <el-radio v-model="postData.jumpType" label='1' >课程</el-radio>
9
+                <el-radio v-model="postData.ForwardType" label='1' >链接</el-radio>
10
+                <el-radio v-model="postData.ForwardType" label='0' >课程</el-radio>
11 11
             </div>
12 12
           </div>
13 13
         </li>
@@ -17,7 +17,7 @@
17 17
             <div style="width:50%">
18 18
               <el-input
19 19
                 placeholder="请输入链接"
20
-                v-model="postData.link"
20
+                v-model="postData.ForwardUrl"
21 21
                 clearable>
22 22
               </el-input>
23 23
             </div>
@@ -27,8 +27,8 @@
27 27
           <span>是否发布:</span>
28 28
           <div class="flex-item">
29 29
             <div style="width:50%" class="radio">
30
-              <el-radio v-model="postData.release" label='0' >是</el-radio>
31
-                <el-radio v-model="postData.release" label='1' >否</el-radio>
30
+              <el-radio v-model="postData.status" label='1' >是</el-radio>
31
+              <el-radio v-model="postData.status" label='0' >否</el-radio>
32 32
             </div>
33 33
           </div>
34 34
         </li>
@@ -36,7 +36,7 @@
36 36
           <span>图片位置:</span>
37 37
           <div class="flex-item">
38 38
             <div style="width:50%">
39
-              <el-select v-model="postData.position" placeholder="请选择">
39
+              <el-select v-model="postData.LocationId" placeholder="请选择">
40 40
                 <el-option
41 41
                   v-for="item in positionList"
42 42
                   :key="item.value"
@@ -53,7 +53,7 @@
53 53
             <div style="width:50%">
54 54
               <el-input
55 55
                 placeholder="请输入标题"
56
-                v-model="postData.realName"
56
+                v-model="postData.Title"
57 57
                 clearable>
58 58
               </el-input>
59 59
             </div>
@@ -62,13 +62,15 @@
62 62
         <li class="flex-h">
63 63
           <span>图片:</span>
64 64
           <div class="flex-item">
65
-            <div>
66
-              <a class="formImg">
67
-                <img src="" class="centerLabel contain" alt="">
68
-                <i class="iconfont icon-quxiao"></i>
69
-              </a>
70
-              <el-button type="success" size="mini">上传图片</el-button>
71
-            </div>
65
+            <el-upload
66
+              class="avatar-uploader"
67
+              :action='$api.file.image.url'
68
+              :show-file-list="false"
69
+              :on-success="handleAvatarSuccess"
70
+              :before-upload="beforeAvatarUpload">
71
+              <img v-if="postData.ImageUrl" :src="postData.ImageUrl" class="avatar">
72
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
73
+            </el-upload>
72 74
           </div>
73 75
         </li>
74 76
         <li style="text-align:center">
@@ -81,50 +83,59 @@
81 83
 </template>
82 84
 
83 85
 <script>
86
+import { mapState, createNamespacedHelpers } from 'vuex'
87
+const { mapActions: mapCmsActions } = createNamespacedHelpers('cms')
84 88
 export default {
85 89
   name: '',
86 90
   data () {
87 91
     return {
88 92
       postData: {
89
-        jumpType: '0',
90
-        link: '',
91
-        release: '0',
92
-        position: ''
93
-      },
94
-      positionList: [{
95
-        value: '0',
96
-        label: '首页'
97
-      }, {
98
-        value: '1',
99
-        label: '精选'
100
-      }, {
101
-        value: '2',
102
-        label: '健康'
103
-      }, {
104
-        value: '3',
105
-        label: '社交'
106
-      }, {
107
-        value: '4',
108
-        label: '教育'
109
-      }, {
110
-        value: '5',
111
-        label: '健身'
112
-      }, {
113
-        value: '6',
114
-        label: '艺术'
115
-      }],
93
+        ForwardType: '1',
94
+        ForwardUrl: '',
95
+        ForwardResource: '',
96
+        status: '1',
97
+        LocationId: '',
98
+        ImageUrl: '',
99
+        Title: '',
100
+        OrgId: '',
101
+        CaseId: ''
102
+      }
116 103
     }
117 104
   },
118 105
   components: {},
106
+  created () {
107
+    this.updateLocationInfo()
108
+  },
109
+  computed: {
110
+    ...mapState({
111
+      positionList: x => x.cms.location,
112
+      OrgId: x => x.app.user.OrgId,
113
+      CaseId: x => x.app.case.CaseId
114
+    })
115
+  },
119 116
   methods: {
120 117
     submit () {
121 118
       console.log(this.postData)
119
+      this.$ajax(this.$api.cms.addImage.url, {
120
+        method: this.$api.cms.addImage.method,
121
+        data: this.postData
122
+      }).then(res => {
123
+        console.log(res)
124
+      }).catch(msg => {
125
+
126
+      })
122 127
     },
123 128
     cancel () {
124 129
       this.$router.go(-1)
125
-    }
126
-  },
127
-  mounted () {}
130
+    },
131
+    handleAvatarSuccess (res, file) {
132
+      console.log(res)
133
+      console.log(file)
134
+      this.postData.ImageUrl = res.result.url
135
+    },
136
+    beforeAvatarUpload (file) { },
137
+    ...mapCmsActions(['updateLocationInfo']),
138
+  }
128 139
 }
129 140
 </script>
130 141
 

+ 15
- 0
src/pages/system/cmsManager/bannerManager/index.vue Voir le fichier

@@ -98,6 +98,9 @@ export default {
98 98
   components: {
99 99
     tableSearch,
100 100
   },
101
+  mounted () {
102
+    this.initList()
103
+  },
101 104
   methods: {
102 105
     handleSizeChange (val) {
103 106
       console.log(`每页 ${val} 条`)
@@ -132,6 +135,18 @@ export default {
132 135
     },
133 136
     addBanner () {
134 137
       this.$router.push({ name: 'addBanner' })
138
+    },
139
+    initList () {
140
+      this.$ajax(this.$api.cms.image.url, {
141
+        method: this.$api.cms.image.method,
142
+        data: {
143
+          pagenum: '1'
144
+        }
145
+      }).then(res => {
146
+        console.log(res)
147
+      }).catch(msg => {
148
+
149
+      })
135 150
     }
136 151
   }
137 152
 }

+ 22
- 0
src/store/cms/index.js Voir le fichier

@@ -0,0 +1,22 @@
1
+
2
+export default {
3
+  namespaced: true,
4
+  state: {
5
+    location: []
6
+  },
7
+  mutations: {
8
+    init (state, data) { // 这里的state对应着上面这个state
9
+      state.location = data
10
+    }
11
+  },
12
+  actions: {
13
+    updateLocationInfo (context) { // 这里的context和我们使用的$store拥有相同的对象和方法
14
+      this.$ajax(this.$api.cms.location.url, {
15
+        method: this.$api.cms.location.method
16
+      })
17
+        .then(res => {
18
+          context.commit('init', res)
19
+        })
20
+    }
21
+  }
22
+}

+ 2
- 1
src/store/index.js Voir le fichier

@@ -12,7 +12,8 @@ const store = new Vuex.Store({
12 12
 Vuex.Store.prototype.$api = api
13 13
 Vuex.Store.prototype.$ajax = Ajax
14 14
 export const modules = {
15
-  app: () => require('./app').default
15
+  app: () => require('./app').default,
16
+  cms: () => require('./cms').default
16 17
 }
17 18
 
18 19
 Object.keys(modules).forEach((modKey) => {

+ 23
- 1
src/style/main.css Voir le fichier

@@ -292,7 +292,29 @@ select:focus {
292 292
   align-items: center;
293 293
 }
294 294
 
295
-
295
+.avatar-uploader .el-upload {
296
+  border: 1px dashed #d9d9d9;
297
+  border-radius: 6px;
298
+  cursor: pointer;
299
+  position: relative;
300
+  overflow: hidden;
301
+}
302
+.avatar-uploader .el-upload:hover {
303
+  border-color: #409EFF;
304
+}
305
+.avatar-uploader-icon {
306
+  font-size: 28px;
307
+  color: #8c939d;
308
+  width: 178px;
309
+  height: 178px;
310
+  line-height: 178px;
311
+  text-align: center;
312
+}
313
+.avatar {
314
+  width: 178px;
315
+  height: 178px;
316
+  display: block;
317
+}
296 318
 
297 319
 
298 320
 

+ 1
- 0
src/util/ajax.js Voir le fichier

@@ -68,6 +68,7 @@ Axios.interceptors.request.use((config) => {
68 68
 const ajax = (...args) => {
69 69
   return new Promise((resolve, reject) => {
70 70
     Axios(...args).then(({ data }) => {
71
+      // console.log(111)
71 72
       const { code, message, result } = data
72 73
       if (code === 200) {
73 74
         resolve(result)

+ 20
- 0
src/util/api.js Voir le fichier

@@ -11,6 +11,26 @@ const $api = {
11 11
       method: 'get',
12 12
       url: `${baseUrl}/common/system/env`
13 13
     }
14
+  },
15
+  cms: {
16
+    location: { // 图片位置
17
+      method: 'get',
18
+      url: `${baseUrl}/common/cms/location`
19
+    },
20
+    imageList: { // 轮播图列表
21
+      method: 'get',
22
+      url: `${baseUrl}/common/cms/image`
23
+    },
24
+    addImage: { // 添加轮播图
25
+      method: 'get',
26
+      url: `${baseUrl}/common/cms/image`
27
+    }
28
+  },
29
+  file: {
30
+    image: { // 图片上传
31
+      method: 'post',
32
+      url: `${baseUrl}/common/file`
33
+    }
14 34
   }
15 35
 }
16 36
 export default $api