Quellcode durchsuchen

游戏结果模块v1.1

李志伟 vor 3 Jahren
Ursprung
Commit
0f670c881b

+ 2
- 1
src/components/GameCharacter/edit.vue Datei anzeigen

@@ -41,7 +41,8 @@ export default {
41 41
         name: undefined,
42 42
         thumb: undefined,
43 43
         desc: undefined,
44
-        characterId: undefined
44
+        characterId: undefined,
45
+        status: 1
45 46
       },
46 47
       rules: {
47 48
         name: [{ required: true, message: '请输入特征名称', trigger: 'blur' }]

+ 14
- 1
src/components/Question/drawer.vue Datei anzeigen

@@ -68,7 +68,9 @@ export default {
68 68
       form: {
69 69
         option: undefined,
70 70
         content: undefined,
71
-        characterList: []
71
+        characterList: [],
72
+        sortNo: 1,
73
+        status: 1
72 74
       },
73 75
       formLabelWidth: '120px',
74 76
       options: [
@@ -134,6 +136,17 @@ export default {
134 136
               data.characterList = list
135 137
             }
136 138
             data.questionId = this.questionId
139
+            switch (data.option) {
140
+              case 'A':data.sortNo = 1; break
141
+              case 'B':data.sortNo = 2; break
142
+              case 'C':data.sortNo = 3; break
143
+              case 'D':data.sortNo = 4; break
144
+              case 'E':data.sortNo = 5; break
145
+              case 'F':data.sortNo = 6; break
146
+              case '对':data.sortNo = 1; break
147
+              case '错':data.sortNo = 2; break
148
+              default:break
149
+            }
137 150
             if (this.answerId) {
138 151
               UpdateAnswer(data, this.answerId).then((res) => {
139 152
                 this.$message('修改成功')

+ 2
- 1
src/components/Question/edit.vue Datei anzeigen

@@ -44,7 +44,7 @@
44 44
           style="float: right"
45 45
           icon="el-icon-plus"
46 46
           @click="onAddAnswer"
47
-        >添加特征</el-button>
47
+        >添加答案</el-button>
48 48
       </div>
49 49
       <ul style="list-style-type: none;margin:24px 0 24px -40px">
50 50
         <li v-for="answer in answerList" :key="answer.answerId" class="answerli">
@@ -187,6 +187,7 @@ export default {
187 187
           if (this.form.optType) {
188 188
             const data = { ...this.form }
189 189
             data.gameId = this.gameId
190
+            data.status = 1
190 191
             if (this.questionId) {
191 192
               if (data.rightAnswer) {
192 193
                 data.rightAnswer = data.rightAnswer.toString()

+ 1
- 1
src/components/Question/index.vue Datei anzeigen

@@ -8,7 +8,7 @@
8 8
           style="float: right"
9 9
           icon="el-icon-plus"
10 10
           @click="handleAdd"
11
-        >添加特征</el-button>
11
+        >添加题目</el-button>
12 12
       </div>
13 13
       <ul style="list-style-type: none;margin:24px 0 0 -40px">
14 14
         <li v-for="item,index in tableData" :key="index" class="questionli" @click="handleEdit(item)">

+ 1
- 0
src/icons/svg/gameAnswer.svg Datei anzeigen

@@ -0,0 +1 @@
1
+<svg t="1641526710072" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5136" width="128" height="128"><path d="M315.597609 894.219711c-62.13867 0-124.393261 0-188.573147 0 0-126.355131 0-252.968887 0-382.249435 63.490354 0 125.046818 0 188.573147 0C315.597609 639.418067 315.597609 765.974062 315.597609 894.219711zM603.685685 893.767018c-60.901509 0-122.853905 0-186.300688 0 0-254.759673 0-508.683912 0-766.051617 62.799822 0 123.42252 0 186.300688 0C603.685685 382.423109 603.685685 637.024689 603.685685 893.767018zM895.189246 894.492526c-62.46245 0-124.032506 0-187.932981 0 0-174.161518 0-348.696784 0-525.524295 61.721953 0 123.860622 0 187.932981 0C895.189246 543.870248 895.189246 718.462275 895.189246 894.492526z" p-id="5137"></path></svg>

+ 13
- 0
src/router/index.js Datei anzeigen

@@ -64,6 +64,19 @@ export const constantRoutes = [
64 64
       }
65 65
     ]
66 66
   },
67
+  {
68
+    path: '/gameAnswer',
69
+    component: Layout,
70
+    meta: { title: '游戏结果管理', icon: 'form' },
71
+    children: [
72
+      {
73
+        path: 'gameAnswer',
74
+        name: '',
75
+        component: () => import('@/views/gameAnswer/index'),
76
+        meta: { title: '游戏结果列表', icon: 'gameAnswer' }
77
+      }
78
+    ]
79
+  },
67 80
 
68 81
   // 微信配置
69 82
 

+ 150
- 0
src/views/gameAnswer/index.vue Datei anzeigen

@@ -0,0 +1,150 @@
1
+<template>
2
+  <div class="body" style="font-size:14px">
3
+    <el-card class="box-card" shadow="never">
4
+      游戏名称:
5
+      <el-input v-model="title" style="width: 200px; margin-right: 20px" />
6
+      用户昵称:
7
+      <el-input v-model="nickName" style="width: 200px; margin-right: 20px" />
8
+      创建时间:
9
+      <el-date-picker
10
+        v-model="daterange"
11
+        type="daterange"
12
+        range-separator="至"
13
+        start-placeholder="开始日期"
14
+        end-placeholder="结束日期"
15
+        value-format="yyyy-MM-dd"
16
+        style="margin-right: 20px"
17
+        @change="dateChange"
18
+      />
19
+      <div style="float:right">
20
+        <el-button type="primary" @click="onSearch">查询</el-button>
21
+        <el-button @click="onReset">重置</el-button>
22
+        <el-button type="primary" icon="el-icon-plus" @click="handleAdd">添加游戏</el-button>
23
+      </div>
24
+    </el-card>
25
+    <el-table stripe :data="tableData" border style="width: 100%">
26
+      <el-table-column prop="title" label="游戏名称" />
27
+      <el-table-column prop="title" label="游戏类型" />
28
+      <!-- <el-table-column prop="nickName" label="用户昵称" /> -->
29
+      <el-table-column prop="score" label="答题分数" />
30
+      <el-table-column prop="resultId" label="实例结果" />
31
+      <el-table-column prop="createDate" label="测试时间">
32
+        <template slot-scope="scope">
33
+          {{
34
+            scope.row.createDate.substr(0, 10)
35
+          }}
36
+        </template>
37
+      </el-table-column>
38
+      <el-table-column fixed="right" label="操作">
39
+        <template slot-scope="scope">
40
+          <el-link :underline="false" style="margin-right:1em" type="primary">
41
+            <router-link
42
+              :to="{name: 'gameEdit', query: { id: scope.row.gameId }}"
43
+            >编辑</router-link>
44
+          </el-link>
45
+          <el-popconfirm
46
+            icon="el-icon-info"
47
+            icon-color="red"
48
+            title="确定删除这个游戏吗?"
49
+            @onConfirm="handleDelete(scope.row)"
50
+          >
51
+            <el-button slot="reference" type="text" style="color:red">删除</el-button>
52
+          </el-popconfirm>
53
+        </template>
54
+      </el-table-column>
55
+    </el-table>
56
+    <el-pagination
57
+      v-show="gameTotal!==0"
58
+      style="float:right; margin:20px 0"
59
+      :total="gameTotal"
60
+      :current-page="currentPage"
61
+      :page-sizes="[4, 10, 20, 50]"
62
+      :page-size="pageSize"
63
+      layout="total, prev, pager, next, sizes"
64
+      @size-change="handleSizeChange"
65
+      @current-change="handleCurrentChange"
66
+    />
67
+  </div>
68
+</template>
69
+<script>
70
+import { getGameList, deleteGame } from '@/api/game'
71
+
72
+export default {
73
+  data() {
74
+    return {
75
+      characterId: undefined,
76
+      title: undefined,
77
+      daterange: undefined,
78
+      tableData: [],
79
+      endDate: undefined,
80
+      startDate: undefined,
81
+      //
82
+      pageSize: 10,
83
+      currentPage: 1,
84
+      gameTotal: 0 // 条目总数
85
+    }
86
+  },
87
+  mounted() {
88
+    this.onSearch()
89
+  },
90
+  methods: {
91
+    // 改变每页显示条数
92
+    handleSizeChange(val) {
93
+      this.pageSize = val
94
+      this.changePagination()
95
+    },
96
+    // 改变页码
97
+    handleCurrentChange(val) {
98
+      this.currentPage = val
99
+      this.changePagination()
100
+    },
101
+    // 改变分页组件重新查询数据
102
+    changePagination() {
103
+      getGameList({
104
+        title: this.title,
105
+        startDate: this.startDate,
106
+        endDate: this.endDate,
107
+        pageNum: this.currentPage,
108
+        pageSize: this.pageSize
109
+      }).then((res) => {
110
+        this.tableData = res.data.records
111
+      })
112
+    },
113
+    handleAdd() {
114
+      this.$router.push({ name: 'gameEdit' })
115
+    },
116
+    handleDelete(row) {
117
+      deleteGame(row.gameId).then(() => {
118
+        this.onSearch()
119
+      })
120
+    },
121
+    onSearch() {
122
+      getGameList({
123
+        title: this.title,
124
+        startDate: this.startDate,
125
+        endDate: this.endDate,
126
+        pageSize: this.pageSize
127
+      }).then((res) => {
128
+        this.tableData = res.data.records
129
+        this.gameTotal = res.data.total
130
+        this.pageSize = res.data.size
131
+      })
132
+    },
133
+    onReset() {
134
+      this.title = undefined
135
+      this.daterange = undefined
136
+      this.startDate = undefined
137
+      this.endDate = undefined
138
+      this.currentPage = 1
139
+      this.pageSize = 10
140
+      this.onSearch()
141
+    },
142
+    dateChange(val) {
143
+      this.startDate = this.daterange[0]
144
+      this.endDate = this.daterange[1]
145
+    }
146
+  }
147
+}
148
+</script>
149
+<style>
150
+</style>

+ 3
- 2
src/views/gameManage/edit.vue Datei anzeigen

@@ -37,7 +37,7 @@
37 37
           </el-form-item>
38 38
         </el-form>
39 39
       </el-tab-pane>
40
-      <el-tab-pane label="关联特征" name="game-character" :disabled="gameId ? false : true">
40
+      <el-tab-pane v-if="gameForm.resultMode!=='examination'" label="关联特征" name="game-character" :disabled="gameId ? false : true">
41 41
         <el-row :gutter="20" style="padding-top: 20px">
42 42
           <el-col :span="12">
43 43
             <GameCharacter
@@ -110,7 +110,8 @@ export default {
110 110
       gameForm: {
111 111
         title: undefined,
112 112
         gameImage: undefined,
113
-        resultMode: undefined
113
+        resultMode: undefined,
114
+        status: 1
114 115
       },
115 116
       resultList: [
116 117
         {

+ 1
- 1
src/views/gameManage/index.vue Datei anzeigen

@@ -2,7 +2,7 @@
2 2
   <div class="body" style="font-size:14px">
3 3
     <el-card class="box-card" shadow="never">
4 4
       游戏名称:
5
-      <el-input v-model="title" style="width: 200px; margin-right: 20px" />创建时间:
5
+      <el-input v-model="title" style="width: 200px; margin-right: 20px" />测试时间:
6 6
       <el-date-picker
7 7
         v-model="daterange"
8 8
         type="daterange"