张延森 4 år sedan
förälder
incheckning
0c3e1d9df5

+ 1
- 1
package.json Visa fil

@@ -18,7 +18,7 @@
18 18
     "axios": "0.18.1",
19 19
     "codemirror": "^5.56.0",
20 20
     "core-js": "^3.6.5",
21
-    "dayjs": "^1.8.32",
21
+    "dayjs": "^1.8.33",
22 22
     "element-ui": "2.13.2",
23 23
     "md5": "^2.3.0",
24 24
     "normalize.css": "7.0.0",

+ 8
- 0
src/api/activity.js Visa fil

@@ -16,6 +16,14 @@ export function getActivityList(params) {
16 16
   }))
17 17
 }
18 18
 
19
+export function updateActivity(data) {
20
+  return pureResponseData(request({
21
+    url: `/api/admin/activity/${data.activityId}`,
22
+    method: 'put',
23
+    data
24
+  }))
25
+}
26
+
19 27
 export function saveActivity(data) {
20 28
   return pureResponseData(request({
21 29
     url: '/api/admin/activity',

+ 7
- 2
src/views/components/Activity/index.vue Visa fil

@@ -53,6 +53,13 @@
53 53
     <el-form-item label="活动详情" prop="detail">
54 54
       <markdown v-model="form.detail" />
55 55
     </el-form-item>
56
+    <el-form-item label="活动状态" prop="status">
57
+      <el-select v-model="form.status" placeholder="请选择">
58
+        <el-option label="未发布" :value="0" />
59
+        <el-option label="已发布" :value="1" />
60
+        <el-option label="已过期" :value="2" />
61
+      </el-select>
62
+    </el-form-item>
56 63
     <el-form-item label="分享标题" prop="shareTitle">
57 64
       <el-input v-model="form.shareTitle" />
58 65
     </el-form-item>
@@ -218,7 +225,6 @@ export default {
218 225
           }
219 226
 
220 227
           const [dt1, dt2] = transferBeginEndDay(data.startDate, data.endDate)
221
-          debugger
222 228
           data.startDate = dt1
223 229
           data.endDate = dt2
224 230
 
@@ -229,7 +235,6 @@ export default {
229 235
           const [dt5, dt6] = transferBeginEndDay(data.voteStart, data.voteEnd)
230 236
           data.voteStart = dt5
231 237
           data.voteEnd = dt6
232
-          debugger
233 238
           this.$emit('submit', data)
234 239
         }
235 240
       })

+ 13
- 5
src/views/life/Warm/Detail.vue Visa fil

@@ -7,7 +7,7 @@
7 7
 </template>
8 8
 
9 9
 <script>
10
-import { getActivity, saveActivity } from '@/api/activity'
10
+import { getActivity, updateActivity, saveActivity } from '@/api/activity'
11 11
 
12 12
 export default {
13 13
   components: {
@@ -16,13 +16,15 @@ export default {
16 16
 
17 17
   data() {
18 18
     return {
19
+      id: null,
19 20
       detail: null
20 21
     }
21 22
   },
22 23
 
23 24
   mounted() {
24
-    const { id } = this.$router.params
25
+    const { id } = this.$route.query
25 26
     if (id) {
27
+      this.id = id
26 28
       // eslint-disable-next-line no-return-assign
27 29
       getActivity(id).then(res => this.detail = res)
28 30
     }
@@ -30,9 +32,15 @@ export default {
30 32
 
31 33
   methods: {
32 34
     handleSubmit(data) {
33
-      saveActivity(data).then(res => {
34
-        this.$router.push({ name: 'warm.detail', params: { id: res.activityId }})
35
-      })
35
+      if (this.id) {
36
+        updateActivity(data).then(() => {
37
+          this.$message({ type: 'success', message: '更新成功' })
38
+        })
39
+      } else {
40
+        saveActivity(data).then(res => {
41
+          this.$router.push({ name: 'warm.detail', query: { id: res.activityId }})
42
+        })
43
+      }
36 44
     },
37 45
 
38 46
     handleCancel() {

+ 18
- 9
src/views/life/Warm/index.vue Visa fil

@@ -15,26 +15,22 @@
15 15
       highlight-current-row
16 16
       stripe
17 17
     >
18
-      <el-table-column align="center" label="ID" width="95">
19
-        <template slot-scope="scope">
20
-          {{ scope.$index + 1 }}
21
-        </template>
22
-      </el-table-column>
18
+      <el-table-column align="center" label="ID" width="100" prop="activityId" />
23 19
       <el-table-column label="活动时间">
24 20
         <template slot-scope="scope">
25 21
           {{ scope.row.startDate | toDayMini }} - {{ scope.row.endDate | toDayMini }}
26 22
         </template>
27 23
       </el-table-column>
28 24
       <el-table-column label="活动名称" prop="name" />
29
-      <el-table-column label="活动状态">
25
+      <el-table-column label="活动状态" align="center" width="200">
30 26
         <template slot-scope="scope">
31 27
           <el-tag
32
-            :type="scope.row.status === 1 ? 'primary' : 'info'"
28
+            :type="scope.row.status | statusTagFormat"
33 29
             disable-transitions
34 30
           >{{ scope.row.status | statusFormat }}</el-tag>
35 31
         </template>
36 32
       </el-table-column>
37
-      <el-table-column label="操作">
33
+      <el-table-column label="操作" align="center" width="200">
38 34
         <template slot-scope="scope">
39 35
           <el-button size="mini" type="primary" plain @click="handleEdit(scope.row)">编辑</el-button>
40 36
         </template>
@@ -74,6 +70,19 @@ export default {
74 70
         '已过期'
75 71
       ]
76 72
       return statusMap[status]
73
+    },
74
+
75
+    statusTagFormat(status) {
76
+      if (status === null || status === undefined) {
77
+        return undefined
78
+      }
79
+
80
+      const statusMap = [
81
+        'warning',
82
+        'success',
83
+        'info'
84
+      ]
85
+      return statusMap[status]
77 86
     }
78 87
   },
79 88
   data() {
@@ -118,7 +127,7 @@ export default {
118 127
     },
119 128
 
120 129
     handleEdit(row) {
121
-      this.$router.push({ name: 'warm.detail', params: { id: row.activityId }})
130
+      this.$router.push({ name: 'warm.detail', query: { id: row.activityId }})
122 131
     },
123 132
 
124 133
     handleSizeChange(size) {