张延森 4 years ago
parent
commit
0c3e1d9df5

+ 1
- 1
package.json View File

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

+ 8
- 0
src/api/activity.js View File

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
 export function saveActivity(data) {
27
 export function saveActivity(data) {
20
   return pureResponseData(request({
28
   return pureResponseData(request({
21
     url: '/api/admin/activity',
29
     url: '/api/admin/activity',

+ 7
- 2
src/views/components/Activity/index.vue View File

53
     <el-form-item label="活动详情" prop="detail">
53
     <el-form-item label="活动详情" prop="detail">
54
       <markdown v-model="form.detail" />
54
       <markdown v-model="form.detail" />
55
     </el-form-item>
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
     <el-form-item label="分享标题" prop="shareTitle">
63
     <el-form-item label="分享标题" prop="shareTitle">
57
       <el-input v-model="form.shareTitle" />
64
       <el-input v-model="form.shareTitle" />
58
     </el-form-item>
65
     </el-form-item>
218
           }
225
           }
219
 
226
 
220
           const [dt1, dt2] = transferBeginEndDay(data.startDate, data.endDate)
227
           const [dt1, dt2] = transferBeginEndDay(data.startDate, data.endDate)
221
-          debugger
222
           data.startDate = dt1
228
           data.startDate = dt1
223
           data.endDate = dt2
229
           data.endDate = dt2
224
 
230
 
229
           const [dt5, dt6] = transferBeginEndDay(data.voteStart, data.voteEnd)
235
           const [dt5, dt6] = transferBeginEndDay(data.voteStart, data.voteEnd)
230
           data.voteStart = dt5
236
           data.voteStart = dt5
231
           data.voteEnd = dt6
237
           data.voteEnd = dt6
232
-          debugger
233
           this.$emit('submit', data)
238
           this.$emit('submit', data)
234
         }
239
         }
235
       })
240
       })

+ 13
- 5
src/views/life/Warm/Detail.vue View File

7
 </template>
7
 </template>
8
 
8
 
9
 <script>
9
 <script>
10
-import { getActivity, saveActivity } from '@/api/activity'
10
+import { getActivity, updateActivity, saveActivity } from '@/api/activity'
11
 
11
 
12
 export default {
12
 export default {
13
   components: {
13
   components: {
16
 
16
 
17
   data() {
17
   data() {
18
     return {
18
     return {
19
+      id: null,
19
       detail: null
20
       detail: null
20
     }
21
     }
21
   },
22
   },
22
 
23
 
23
   mounted() {
24
   mounted() {
24
-    const { id } = this.$router.params
25
+    const { id } = this.$route.query
25
     if (id) {
26
     if (id) {
27
+      this.id = id
26
       // eslint-disable-next-line no-return-assign
28
       // eslint-disable-next-line no-return-assign
27
       getActivity(id).then(res => this.detail = res)
29
       getActivity(id).then(res => this.detail = res)
28
     }
30
     }
30
 
32
 
31
   methods: {
33
   methods: {
32
     handleSubmit(data) {
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
     handleCancel() {
46
     handleCancel() {

+ 18
- 9
src/views/life/Warm/index.vue View File

15
       highlight-current-row
15
       highlight-current-row
16
       stripe
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
       <el-table-column label="活动时间">
19
       <el-table-column label="活动时间">
24
         <template slot-scope="scope">
20
         <template slot-scope="scope">
25
           {{ scope.row.startDate | toDayMini }} - {{ scope.row.endDate | toDayMini }}
21
           {{ scope.row.startDate | toDayMini }} - {{ scope.row.endDate | toDayMini }}
26
         </template>
22
         </template>
27
       </el-table-column>
23
       </el-table-column>
28
       <el-table-column label="活动名称" prop="name" />
24
       <el-table-column label="活动名称" prop="name" />
29
-      <el-table-column label="活动状态">
25
+      <el-table-column label="活动状态" align="center" width="200">
30
         <template slot-scope="scope">
26
         <template slot-scope="scope">
31
           <el-tag
27
           <el-tag
32
-            :type="scope.row.status === 1 ? 'primary' : 'info'"
28
+            :type="scope.row.status | statusTagFormat"
33
             disable-transitions
29
             disable-transitions
34
           >{{ scope.row.status | statusFormat }}</el-tag>
30
           >{{ scope.row.status | statusFormat }}</el-tag>
35
         </template>
31
         </template>
36
       </el-table-column>
32
       </el-table-column>
37
-      <el-table-column label="操作">
33
+      <el-table-column label="操作" align="center" width="200">
38
         <template slot-scope="scope">
34
         <template slot-scope="scope">
39
           <el-button size="mini" type="primary" plain @click="handleEdit(scope.row)">编辑</el-button>
35
           <el-button size="mini" type="primary" plain @click="handleEdit(scope.row)">编辑</el-button>
40
         </template>
36
         </template>
74
         '已过期'
70
         '已过期'
75
       ]
71
       ]
76
       return statusMap[status]
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
   data() {
88
   data() {
118
     },
127
     },
119
 
128
 
120
     handleEdit(row) {
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
     handleSizeChange(size) {
133
     handleSizeChange(size) {