Pārlūkot izejas kodu

Merge branch 'pre' of http://git.dgtis.com/sunlupeng/pointsMall-admin

sunlupeng 1 gadu atpakaļ
vecāks
revīzija
597701a06a

+ 2 - 1
config/dev.env.js

@@ -3,8 +3,9 @@ module.exports = {
 	ENV_CONFIG: '"dev"',
   // 本地数据库:登录用户名 admin123,密码 admin123
   BASE_API: '"http://192.168.100.208:9083/admin"',
-  // BASE_API: '"http://47.103.79.143:9085/admin"',
   OS_API: '"http://192.168.100.208:9083/admin"',
+  // BASE_API: '"http://47.103.79.143:9085/admin"',
+  // OS_API: '"http://47.103.79.143:9085/admin"',
   // OS_API: '"https://xiaoyou.dgtis.com/admin"',
   // BASE_API: '"https://xiaoyou.dgtis.com/admin"',
   

+ 4 - 4
config/prod.env.js

@@ -2,9 +2,9 @@ module.exports = {
 	NODE_ENV: '"production"',
 	ENV_CONFIG: '"prod"',
 	// 阿里云环境
-  // BASE_API: '"http://47.103.79.143:9085/admin"',
-  // OS_API: '"http://47.103.79.143:9085/admin"'
+  BASE_API: '"http://47.103.79.143:9085/admin"',
+  OS_API: '"http://47.103.79.143:9085/admin"'
   //正式环境
-  BASE_API: '"https://xiaoyou.dgtis.com/admin"',
-  OS_API: '"https://xiaoyou.dgtis.com/admin"'
+  // BASE_API: '"https://xiaoyou.dgtis.com/admin"',
+  // OS_API: '"https://xiaoyou.dgtis.com/admin"'
 }

+ 1 - 1
package.json

@@ -15,7 +15,7 @@
     "axios": "0.17.1",
     "clipboard": "1.7.1",
     "echarts": "3.8.5",
-    "element-ui": "2.0.8",
+    "element-ui": "^2.15.12",
     "file-saver": "1.3.3",
     "font-awesome": "4.7.0",
     "js-cookie": "2.2.0",

+ 60 - 0
src/api/postManage.js

@@ -0,0 +1,60 @@
+import request from '@/utils/request'
+
+export function create(data) {
+  return request({
+    url: '/mall-post/add',
+    method: 'post',
+    data
+  })
+}
+
+export function update(query) {
+  return request({
+    url: '/mall-post/edit',
+    method: 'post',
+    data:query
+  })
+}
+
+export function getList(query) {
+  return request({
+    url: '/mall-post/list',
+    method: 'get',
+    params:query
+  })
+}
+
+export function changeState(query) {
+  return request({
+    url: '/mall-post/modify/status',
+    method: 'post',
+    params:query
+  })
+}
+
+export function approvalList(query) {
+  return request({
+    url: '/mall-post/complete/list',
+    method: 'get',
+    params:query
+  })
+}
+
+export function getDetailInfo(query) {
+  return request({
+    url: '/mall-post/answer/info',
+    method: 'get',
+    params:query
+  })
+}
+
+export function complete(data) {
+  return request({
+    url: '/mall-post/complete/answer',
+    method: 'post',
+    data
+  })
+}
+
+
+

+ 20 - 1
src/api/rankingList.js

@@ -1,7 +1,7 @@
 import request from '@/utils/request'
 
 
-
+// 积分排行
 export function list(query) {
   return request({
     url: '/mall-integral/sys/top',
@@ -9,3 +9,22 @@ export function list(query) {
     params:query
   })
 }
+
+// 答题排行
+export function answerList(query) {
+  return request({
+    url: '/answer/admin/top',
+    method: 'get',
+    params:query
+  })
+}
+
+// 游戏排行
+export function gameList(query) {
+  return request({
+    url: '/MoonFestival/admin/top',
+    method: 'get',
+    params:query
+  })
+}
+

+ 2 - 2
src/main.js

@@ -17,9 +17,9 @@ import './permission' // permission control
 Vue.use(Element, {
   size: 'medium' // set element-ui default size
 })
-const prodUrl = 'https://xiaoyou.dgtis.com/admin/storage/create';//正式地址
+// const prodUrl = 'https://xiaoyou.dgtis.com/admin/storage/create';//正式地址
 
-// const prodUrl = 'http://47.103.79.143:9085/admin/storage/create';//阿里云测试地址
+const prodUrl = 'http://47.103.79.143:9085/admin/storage/create';//阿里云测试地址
 
 const devUrl = 'http://47.103.79.143:9085/admin/storage/create';//本地测试地址
 

+ 12 - 5
src/permission.js

@@ -89,10 +89,17 @@ const myRoles = [
   'dictManage', 
   'dictList', 
   'dictDataList', 
+
+  'postManage',
+  'postList',
+  'postApprovalList',
+
+  'rankingManage',
+  'answerRanking',
+  'gameRanking'
 ]
 
 router.beforeEach((to, from, next) => {
-  debugger
   NProgress.start() // start progress bar
   // store.dispatch('SetToken', 'y8evar5b5yecmr6hjrhyokxw5tiqizw9');
   // setToken('y8evar5b5yecmr6hjrhyokxw5tiqizw9');
@@ -122,9 +129,9 @@ router.beforeEach((to, from, next) => {
         }).catch(() => {
           store.dispatch('FedLogOut').then(() => {
             Message.error('Verification failed, please login again')
-            const prodHref = 'http://dgt.dgtis.com/oneportal/login';//正式地址
+            // const prodHref = 'http://dgt.dgtis.com/oneportal/login';//正式地址
 
-            // const prodHref = 'http://dgtcloud.dgtis.com/oneportal/login';//阿里云地址
+            const prodHref = 'http://dgtcloud.dgtis.com/oneportal/login';//阿里云地址
             
             const devHref = 'http://192.168.100.208:8080/oneportal/login';//测试地址
 
@@ -147,9 +154,9 @@ router.beforeEach((to, from, next) => {
     if (whiteList.indexOf(to.path) !== -1) { // 在免登录白名单,直接进入
       next()
     } else {
-      const prodHref = 'http://dgt.dgtis.com/oneportal/login';//正式地址
+      // const prodHref = 'http://dgt.dgtis.com/oneportal/login';//正式地址
 
-      // const prodHref = 'http://dgtcloud.dgtis.com/oneportal/login';//阿里云地址
+      const prodHref = 'http://dgtcloud.dgtis.com/oneportal/login';//阿里云地址
       
       const devHref = 'http://192.168.100.208:8080/oneportal/login';//测试地址
 

+ 28 - 0
src/router/index.js

@@ -299,7 +299,35 @@ export const asyncRouterMap = [
     ]
   },
 
+  {
+    path: '/postManage',
+    component: Layout,
+    redirect: 'noredirect',
+    name: 'postManage',
+    meta: {
+      title: '帖子管理',
+      icon: 'fuli'
+    },
+    children: [
+      { path: 'postList', component: _import('postManage/postList'), name: 'postList', meta: { title: '帖子列表', noCache: true }},
+      { path: 'postApprovalList', component: _import('postManage/postApprovalList'), name: 'postApprovalList', meta: { title: '回复列表', noCache: true}},
+    ]
+  },
 
+  {
+    path: '/rankingManage',
+    component: Layout,
+    redirect: 'noredirect',
+    name: 'rankingManage',
+    meta: {
+      title: '排行管理',
+      icon: 'zhengshu'
+    },
+    children: [
+      { path: 'answerRanking', component: _import('rankingManage/answerRanking'), name: 'answerRanking', meta: { title: '答题排行', noCache: true }},
+      { path: 'gameRanking', component: _import('rankingManage/gameRanking'), name: 'gameRanking', meta: { title: '游戏排行', noCache: true}},
+    ]
+  },
 
 
 

+ 2 - 2
src/utils/request.js

@@ -34,9 +34,9 @@ service.interceptors.response.use(
           type: 'error'
         }).then(() => {
           store.dispatch('FedLogOut').then(() => {
-            const prodHref = 'http://dgt.dgtis.com/oneportal/login';//正式地址
+            // const prodHref = 'http://dgt.dgtis.com/oneportal/login';//正式地址
 
-            // const prodHref = 'http://dgtcloud.dgtis.com/oneportal/login';//阿里云地址
+            const prodHref = 'http://dgtcloud.dgtis.com/oneportal/login';//阿里云地址
             
             const devHref = 'http://192.168.100.208:8080/oneportal/login';//测试地址
 

+ 2 - 2
src/views/commendManage/ceoCiteList.vue

@@ -144,7 +144,7 @@
         </div>
         <h3></h3>
         <el-form-item label="表彰描述">
-          <el-input disabled type="textarea" v-model="detailData.content" style="width: 100%"></el-input>
+          <el-input disabled type="textarea" :rows="5" v-model="detailData.content" style="width: 100%"></el-input>
         </el-form-item>
       </el-form>
       <h4>表彰人员</h4>
@@ -169,7 +169,7 @@
           <el-input disabled class="filter-item" v-model="dataForm.typeName"></el-input>
         </el-form-item> -->
         <el-form-item label="奖励积分" prop="integral">
-          <el-input-number style="width: 100%;" :min="10" :step="1" v-model="dataForm.integral"></el-input-number>
+          <el-input-number style="width: 100%;" :min="1" :step="1" v-model="dataForm.integral"></el-input-number>
         </el-form-item>
         <el-form-item label="审批内容" prop="content">
           <el-input type="textarea" :rows="4" placeholder="请输入审批内容" v-model="dataForm.content"></el-input>

+ 1 - 1
src/views/commendManage/citeList.vue

@@ -149,7 +149,7 @@
         </div>
         <h3></h3>
         <el-form-item label="表彰描述">
-          <el-input disabled type="textarea" v-model="detailData.content" style="width: 100%"></el-input>
+          <el-input disabled type="textarea" :rows="5" v-model="detailData.content" style="width: 100%"></el-input>
         </el-form-item>
       </el-form>
       <h4>表彰人员</h4>

+ 1 - 1
src/views/commendManage/operateCiteList.vue

@@ -139,7 +139,7 @@
         </div>
         <h3></h3>
         <el-form-item label="表彰描述">
-          <el-input disabled type="textarea" v-model="detailData.content" style="width: 100%"></el-input>
+          <el-input disabled type="textarea" :rows="5" v-model="detailData.content" style="width: 100%"></el-input>
         </el-form-item>
       </el-form>
       <h4>表彰人员</h4>

+ 451 - 0
src/views/postManage/postApprovalList.vue

@@ -0,0 +1,451 @@
+<template>
+  <div class="app-container calendar-list-container">
+
+    <!-- 查询和其他操作 -->
+    <div class="filter-container">
+      <el-input clearable class="filter-item" style="width: 200px;" placeholder="请输入帖子Id"
+        v-model="listQuery.topicId"></el-input>
+      <el-input clearable class="filter-item" style="width: 200px;" placeholder="请输入帖子标题"
+        v-model="listQuery.title"></el-input>
+      <el-input clearable class="filter-item" style="width: 200px;" placeholder="请输入姓名"
+        v-model="listQuery.userName"></el-input>
+      <el-select v-model="listQuery.status" clearable placeholder="审批状态" class="filter-item" style="width: 200px">
+        <el-option :key="item.type" v-for="item in typeList" :label="item.name" :value="item.type">
+        </el-option>
+      </el-select>
+      <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleFilter">查找</el-button>
+      <!-- <el-button class="filter-item" type="warning" icon="el-icon-delete" @click="completeAll">批量审批</el-button> -->
+    </div>
+
+    <!-- 查询结果 -->
+    <el-table size="small" :data="list" @selection-change="handleSelectionChange" v-loading="listLoading"
+      element-loading-text="正在查询中。。。" border fit highlight-current-row>
+      <!-- <el-table-column type="selection" width="55px"> </el-table-column> -->
+      <el-table-column align="center" min-width="100px" label="帖子Id" prop="postId">
+      </el-table-column>
+      <el-table-column align="center" min-width="200px" label="部门" prop="deptName">
+      </el-table-column>
+      <el-table-column align="center" min-width="100px" label="姓名" prop="userName">
+      </el-table-column>
+      <el-table-column align="center" min-width="200px" label="帖子标题" prop="title">
+      </el-table-column>
+      <el-table-column align="center" min-width="150px" label="回复时间" prop="createTime">
+      </el-table-column>
+      <el-table-column align="center" min-width="100px" label="审批状态" prop="statusName">
+      </el-table-column>
+      <el-table-column align="center" label="操作" width="240px" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button type="primary" size="small" @click="handleView(scope.row,'view')">查看</el-button>
+          <el-button type="success" size="small" @click="handleView(scope.row,'complete')">处理</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <!-- 分页 -->
+    <div class="pagination-container">
+      <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
+        :current-page="listQuery.page" :page-sizes="[10, 20, 30, 50]" :page-size="listQuery.limit"
+        layout="total, sizes, prev, pager, next, jumper" :total="total">
+      </el-pagination>
+    </div>
+
+    <!-- 添加或修改对话框 -->
+    <el-dialog :close-on-click-modal="false" :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="40%">
+      <div class="dialog-body">
+        <div class="quesList">
+          <div class="listItem" v-for="(item,index) in data" :key="index">
+            <div v-if="item.type=='SCQ'">
+              <div class="itemTitle">{{ index+1 }}. {{item.description}}(单选)</div>
+              <el-radio-group v-model="item.comment">
+                <el-radio v-for="(childItem,childIndex) in item.options" :key="childIndex" :label="childItem.id" disabled>{{ childItem.name }}</el-radio>
+              </el-radio-group>
+            </div>
+
+            <div v-if="item.type=='MCQ'">
+              <div class="itemTitle">{{ index+1 }}. {{item.description}}(多选)</div>
+              <el-checkbox-group v-model="item.comment">
+                <el-checkbox v-for="(childItem,childIndex) in item.options" :key="childIndex" :label="childItem.id" disabled>{{ childItem.name }}</el-checkbox>
+              </el-checkbox-group>
+            </div>
+            <div v-if="item.type=='SAQ'">
+              <div class="itemTitle">{{ index+1 }}. {{item.description}}(问答)</div>
+              <el-input disabled type="textarea" :rows="4" placeholder="请输入内容" v-model="item.comment"></el-input>
+            </div>
+          </div>
+          <div v-if="dialogStatus=='complete'" class="listItem">
+              <div class="itemTitle">审批意见</div>
+              <el-input type="textarea" :rows="4" placeholder="请输入审批意见" v-model="comment"></el-input>
+          </div>
+        </div>
+      </div>
+      <div v-if="dialogStatus=='complete'" slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="complete(true)">同意</el-button>
+                <el-button type="danger" @click="complete(false)">驳回</el-button>
+            </div>
+    </el-dialog>
+
+  </div>
+</template>
+  
+<style>
+.listItem{
+  margin-bottom: 30px;
+}
+.itemTitle{
+  margin-bottom: 10px;
+}
+.demo-table-expand {
+  font-size: 0;
+}
+
+.demo-table-expand label {
+  width: 200px;
+  color: #99a9bf;
+}
+
+.demo-table-expand .el-form-item {
+  margin-right: 0;
+  margin-bottom: 0;
+}
+</style>
+  
+<script>
+import { approvalList,getDetailInfo,complete } from "@/api/postManage";
+import waves from "@/directive/waves"; // 水波纹指令
+import Tinymce from '@/components/Tinymce'
+
+export default {
+  components: { Tinymce },
+  directives: { waves },
+  data() {
+    return {
+      comment:'',
+      data: [
+            {
+              "id": 1,
+              "postId": 1,
+              "description": "最帅的人,请选择以下选项",
+              "type": "SCQ",
+              "createTime": "2023-10-31 16:35:07",
+              "modifyTime": "2023-10-31 16:35:07",
+              "options": [
+                {
+                  "id": 1,
+                  "postId": 1,
+                  "questionId": 1,
+                  "name": "金城武",
+                  "num": 0
+                },
+                {
+                  "id": 2,
+                  "postId": 1,
+                  "questionId": 1,
+                  "name": "刘德华",
+                  "num": 0
+                },
+                {
+                  "id": 3,
+                  "postId": 1,
+                  "questionId": 1,
+                  "name": "张三",
+                  "num": 0
+                }
+              ],
+              "comment": 1
+            },
+            {
+              "id": 1,
+              "postId": 1,
+              "description": "帅的人,请选择以下选项",
+              "type": "MCQ",
+              "createTime": "2023-10-31 16:35:07",
+              "modifyTime": "2023-10-31 16:35:07",
+              "options": [
+                {
+                  "id": 1,
+                  "postId": 1,
+                  "questionId": 1,
+                  "name": "金城武",
+                  "num": 0
+                },
+                {
+                  "id": 2,
+                  "postId": 1,
+                  "questionId": 1,
+                  "name": "刘德华",
+                  "num": 0
+                },
+                {
+                  "id": 3,
+                  "postId": 1,
+                  "questionId": 1,
+                  "name": "张三",
+                  "num": 0
+                }
+              ],
+              "comment": [1,2],
+            },
+            {
+              "id": 2,
+              "postId": 1,
+              "description": "请问今年是什么年",
+              "type": "SAQ",
+              "createTime": "2023-11-02 14:34:03",
+              "modifyTime": "2023-11-02 14:34:03",
+              "options": [],
+              "comment": "兔年"
+            }
+          ],
+      typeList: [
+        {
+          type: 1,
+          name: "待审批",
+        },
+        {
+          type: 2,
+          name: "作废",
+        },
+        {
+          type: 3,
+          name: "通过",
+        },
+      ],
+      list: [
+        {
+          "id": 1,
+          "loginId": "root",
+          "topicId": 0,
+          "discussId": 0,
+          "title": "谁是世界上最帅的人",
+          "content": "请评价谁是最帅的人",
+          "media": null,
+          "readCount": 0,
+          "postTop": 0,
+          "type": 4,
+          "address": null,
+          "longitude": 0,
+          "latitude": 0,
+          "status": 0,
+          "statusName": "待审批",
+          "createTime": "2023-10-31 16:35:07",
+          "modifyTime": "2023-11-02 14:32:49",
+          "deadline": null,
+          "integral": 1000,
+          "cut1": "0",
+          "cut2": "0",
+          "cut3": null,
+          "userName": "系统管理员",
+          "employeeNo": null,
+          "deptName": "神州通誉",
+          "data": [
+            {
+              "id": 1,
+              "postId": 1,
+              "description": "最帅的人,请选择以下选项",
+              "type": "SCQ",
+              "createTime": "2023-10-31 16:35:07",
+              "modifyTime": "2023-10-31 16:35:07",
+              "options": [
+                {
+                  "id": 1,
+                  "postId": 1,
+                  "questionId": 1,
+                  "name": "金城武",
+                  "num": 0
+                },
+                {
+                  "id": 2,
+                  "postId": 1,
+                  "questionId": 1,
+                  "name": "刘德华",
+                  "num": 0
+                },
+                {
+                  "id": 3,
+                  "postId": 1,
+                  "questionId": 1,
+                  "name": "张三",
+                  "num": 0
+                }
+              ],
+              "comment": "1"
+            },
+            {
+              "id": 2,
+              "postId": 1,
+              "description": "请问今年是什么年",
+              "type": "SAQ",
+              "createTime": "2023-11-02 14:34:03",
+              "modifyTime": "2023-11-02 14:34:03",
+              "options": [],
+              "comment": "兔年"
+            }
+          ]
+        },
+      ],
+      delarr: [],
+      multipleSelection: [],
+      total: 0,
+      listLoading: false,
+      listQuery: {
+        page: 1,
+        limit: 10,
+        dictName: '',
+        dictType: '',
+        status: '',
+      },
+      dialogFormVisible: false,
+      dialogStatus: '',
+      textMap: {
+        complete: "审批",
+        view: "详情",
+      },
+      
+     
+    }
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    checked(val){
+            if(val.flag == false){
+                if(!val.comment){
+                    this.$alert("请输入审批内容", "提示", {
+                        confirmButtonText: "确定",
+                    });
+                    return false;
+                }
+            }
+            return true;
+        },
+    complete(flag) {
+            const parms = {
+                postId:this.postId,
+                comment: this.comment,
+                flag:flag,
+            }
+            const isChecked = this.checked(parms);
+            if(isChecked){
+                complete(parms).then((response) => {
+                    this.$notify({
+                        title: "成功",
+                        message: "操作成功",
+                        type: "success",
+                        duration: 2000,
+                    });
+                    this.dialogVisible = false;
+                    this.getList();
+                })
+                .catch(() => { });
+            }
+            
+        },
+    getList() {
+      this.listLoading = true
+      approvalList(this.listQuery).then(response => {
+        this.list = response.data.data.items
+        this.total = response.data.data.total
+        this.listLoading = false
+      }).catch(() => {
+        this.list = []
+        this.total = 0
+        this.listLoading = false
+      })
+    },
+
+    handleFilter() {
+      this.listQuery.page = 1
+      this.getList()
+    },
+
+    handleSizeChange(val) {
+      this.listQuery.limit = val
+      this.getList()
+    },
+
+    handleCurrentChange(val) {
+      this.listQuery.page = val
+      this.getList()
+    },
+    handleView(row,val){
+      this.postId = row.postId,
+      getDetailInfo({postId:row.postId}).then(response => {
+        this.data = response.data.data.data;
+        this.data.forEach(item => {
+          if (item.type == "MCQ") {
+            item.comment = item.comment.split(',');
+          }
+        });
+        this.dialogStatus = val;
+        this.dialogFormVisible = true;
+      }).catch(() => {})
+    },
+    completeAll() {
+      this.$confirm("确认删除吗?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          const length = this.multipleSelection.length;
+
+          if (length > 0) {
+            for (let i = 0; i < length; i++) {
+              this.delarr.push(this.multipleSelection[i].postId);
+            }
+            const postIds = this.delarr.join(",");
+            deleteitem({ postIds: postIds })
+              .then(() => {
+                this.$notify({
+                  title: "成功",
+                  message: "删除成功",
+                  type: "success",
+                  duration: 2000,
+                });
+                this.getList();
+              })
+              .catch(() => { });
+          } else {
+            this.$notify({
+              title: "警告提示",
+              message: "请选择要删除的信息!",
+              type: "warning",
+            });
+          }
+        })
+        .catch(() => { });
+    },
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
+  }
+}
+</script>
+<style>
+.ad-avatar-uploader .el-upload {
+  border: 1px dashed #d9d9d9;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  overflow: hidden;
+}
+
+.ad-avatar-uploader .el-upload:hover {
+  border-color: #409EFF;
+}
+
+.ad-avatar-uploader-icon {
+  font-size: 28px;
+  color: #8c939d;
+  width: 178px;
+  height: 178px;
+  line-height: 178px;
+  text-align: center;
+}
+
+.ad-avatar {
+  display: block;
+}
+</style>
+  

+ 570 - 0
src/views/postManage/postList.vue

@@ -0,0 +1,570 @@
+<template>
+    <div class="app-container calendar-list-container">
+
+        <!-- 查询和其他操作 -->
+        <div class="filter-container">
+            <el-input clearable class="filter-item" style="width: 200px;" placeholder="标题"
+                v-model="listQuery.title"></el-input>
+            <el-date-picker
+            class="filter-item"
+            value-format="yyyy-MM-dd"
+            v-model="listQuery.createTime"
+            type="date"
+            placeholder="创建日期">
+            </el-date-picker>
+            <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleFilter">查找</el-button>
+            <el-button class="filter-item" type="primary" @click="handleCreate" icon="el-icon-edit">添加</el-button>
+
+        </div>
+
+        <!-- 查询结果 -->
+        <el-table size="small" :data="list" v-loading="listLoading" element-loading-text="正在查询中。。。" border fit
+            highlight-current-row>
+            <el-table-column type="index" label="序号" header-align="center" align="center">
+            </el-table-column>
+
+            <el-table-column align="center" min-width="100px" label="标题" prop="title">
+            </el-table-column>
+            
+            <el-table-column align="center" min-width="80px" label="类型" prop="typeName">
+            </el-table-column>
+            <el-table-column align="center" min-width="80px" label="积分" prop="integral">
+            </el-table-column>
+            <el-table-column align="center" min-width="100px" label="截止日期" prop="deadline">
+            </el-table-column>
+            <el-table-column align="center" min-width="100px" label="创建日期" prop="createTime">
+            </el-table-column>
+            <el-table-column align="center" min-width="80px" label="状态" prop="statusName">
+            </el-table-column>
+            <el-table-column align="center" label="操作" width="240px" class-name="small-padding fixed-width">
+                <template slot-scope="scope">
+                    <el-button type="primary" size="small" @click="handleUpdate(scope.row)">编辑</el-button>
+                    <el-button v-if="scope.row.status == 0" type="success" size="small"
+                        @click="changeState(scope.row.id, 1)">开启</el-button>
+                    <el-button v-if="scope.row.status == 1" type="warning" size="small"
+                        @click="changeState(scope.row.id, 0)">关闭</el-button>
+                    <el-button type="danger" size="small" @click="handleDelete(scope.row.postId, -1)">删除</el-button>
+                </template>
+            </el-table-column>
+        </el-table>
+
+        <!-- 分页 -->
+        <div class="pagination-container">
+            <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                :current-page="listQuery.page" :page-sizes="[10, 20, 30, 50]" :page-size="listQuery.limit"
+                layout="total, sizes, prev, pager, next, jumper" :total="total">
+            </el-pagination>
+        </div>
+        <!-- 添加或修改对话框 -->
+        <el-dialog :close-on-click-modal="false" :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="65%">
+            <el-form :rules="rules" ref="dataForm" :model="dataForm" status-icon label-position="left" label-width="100px" style='width:750px;margin-left:50px;'>
+                <el-form-item label="标题" prop="title">
+                    <el-input v-model="dataForm.title" style="width: 100%"></el-input>
+                </el-form-item>
+                <el-form-item label="类型" prop="type">
+                    <el-select v-model="dataForm.type" placeholder="请选择" style="width: 100%" @change="changeType">
+                        <el-option :key="item.value" v-for="item in typeList" :label="item.name" :value="item.value">
+                        </el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="积分" prop="integral">
+                    <el-input-number style="width: 100%" :min="1" :step="1" v-model="dataForm.integral"></el-input-number>
+                </el-form-item>
+                <el-form-item label="截止日期" prop="deadline">
+                    <el-date-picker value-format="yyyy-MM-dd" v-model="dataForm.deadline" type="date" placeholder="请选择结束时间" style="width: 100%">
+                    </el-date-picker>
+                </el-form-item>
+                <el-form-item label="参与人">
+                    <el-select v-model="dataForm.participants" multiple filterable placeholder="请选择" style="width: 100%">
+                        <el-option :key="item.loginId" v-for="item in participantsList" :label="item.userName+'_'+item.deptName" :value="item.loginId">
+                        </el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="内容" prop="content">
+                    <el-input type="textarea" :rows="4" style="width: 100%" v-model="dataForm.content"></el-input>
+                </el-form-item>
+                <el-form-item label="问题类型" prop="questions">
+                    <el-select v-model="qesType" placeholder="请选择" style="width: 84%">
+                        <el-option :key="item.value" v-for="item in qesTypeList" :label="item.name" :value="item.value">
+                        </el-option>
+                    </el-select>
+                    <el-button type="success" @click="addquest">添加问题</el-button>
+                </el-form-item>
+                <div style="margin: 50px 0;" v-for="(item,index) in dataForm.questions" :key="index">
+                    <el-form-item v-if="item.type=='SCQ'" :label="'问题'+(index+1)+'(单选)'">
+                        <el-input v-model="item.description" style="width: 67%"></el-input>
+                        <el-button type="primary" @click="additem(index)">添加选项</el-button>
+                        <el-button type="danger" @click="delectquest(index)">删除问题</el-button>
+                    </el-form-item>
+                    <el-form-item v-if="item.type=='MCQ'" :label="'问题'+(index+1)+'(多选)'">
+                        <el-input v-model="item.description" style="width: 67%"></el-input>
+                        <el-button type="primary" @click="additem(index)">添加选项</el-button>
+                        <el-button type="danger" @click="delectquest(index)">删除问题</el-button>
+                    </el-form-item>
+                    <el-form-item v-if="item.type=='SAQ'" :label="'问题'+(index+1)+'(问答)'">
+                        <el-input v-model="item.description" style="width: 84%"></el-input>
+                        <el-button type="danger" @click="delectquest(index)">删除问题</el-button>
+                    </el-form-item>
+                    <div v-for="(val,childindex) in item.options" :key="childindex">
+                        <el-form-item :label="'选项'+(childindex+1)">
+                            <el-input v-model="val.name" style="width: 84%"></el-input>
+                            <el-button type="danger" @click="delectitem(index,childindex)">删除选项</el-button>
+                        </el-form-item>
+                    </div>
+                   
+                </div>
+               
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+                <el-button @click="dialogFormVisible = false">取消</el-button>
+                <el-button v-if="dialogStatus == 'create'" type="primary" @click="createData">确定</el-button>
+                <el-button v-else type="primary" @click="updateData">确定</el-button>
+            </div>
+        </el-dialog>
+
+    </div>
+</template>
+  
+<style>
+.demo-table-expand {
+    font-size: 0;
+}
+
+.demo-table-expand label {
+    width: 200px;
+    color: #99a9bf;
+}
+
+.demo-table-expand .el-form-item {
+    margin-right: 0;
+    margin-bottom: 0;
+}
+</style>
+  
+<script>
+import { create, update, getList, changeState, getDetailInfo } from "@/api/postManage";
+import { allUserList } from "@/api/public";
+import waves from "@/directive/waves"; // 水波纹指令
+import Tinymce from '@/components/Tinymce'
+
+export default {
+    name: 'getList',
+    components: { Tinymce },
+    directives: { waves },
+    data() {
+        return {
+            qesType:'',
+            qesTypeList:[
+                {
+                    value:'SCQ',
+                    name:'单选'
+                },
+                {
+                    value:'MCQ',
+                    name:'多选'
+                },
+                {
+                    value:'SAQ',
+                    name:'问答'
+                },
+            ],
+            typeList:[
+                {
+                    value:4,
+                    name:'投票'
+                },
+                {
+                    value:5,
+                    name:'问卷调查'
+                }
+            ],
+            participantsList: [],
+            list: [
+                {
+                    title:'问卷调查标题',
+                    type:5,
+                    typeName:'问卷调查',
+                    integral:500,
+                    deadline:'2023-11-08',
+                    participants: ["13564541778","13651932750","18616396637","13817835530"],
+                    content: '2222',
+                    questions: [
+                        {
+                            description: "测试—问题1",
+                            type: "SCQ",
+                            options:[
+                                {
+                                    name: "A"
+                                },
+                                {
+                                    name: "B"
+                                },
+                                {
+                                    name: "C"
+                                },
+                                {
+                                    name: "D"
+                                }
+                            ]
+                            
+                        },
+                        {
+                            type: "MCQ",
+                            description: "测试—问题2",
+                            options: [
+                                {
+                                    name: "A"
+                                },
+                                {
+                                    name: "B"
+                                },
+                                {
+                                    name: "C"
+                                },
+                                {
+                                    name: "D"
+                                }
+                            ]
+                        },
+                        {
+                            type: "SAQ",
+                            description: "测试—问题3",
+                            options: []
+                        }
+                    ],
+                },
+                {
+                    title:'投票标题',
+                    type:4,
+                    typeName:'投票',
+                    integral:500,
+                    deadline:'2023-11-08',
+                    participants: ["13564541778","13651932750"],
+                    content: '2222',
+                    questions: [
+                        {
+                            description: "测试—问题1",
+                            type: "SCQ",
+                            options:[
+                                {
+                                    name: "A"
+                                },
+                                {
+                                    name: "B"
+                                },
+                                {
+                                    name: "C"
+                                },
+                                {
+                                    name: "D"
+                                }
+                            ]
+                            
+                        },
+                        {
+                            type: "MCQ",
+                            description: "测试—问题2",
+                            options: [
+                                {
+                                    name: "A"
+                                },
+                                {
+                                    name: "B"
+                                },
+                                {
+                                    name: "C"
+                                },
+                                {
+                                    name: "D"
+                                }
+                            ]
+                        },
+                    ],
+                },
+            ],
+            total: 0,
+            listLoading: false,
+            listQuery: {
+                page: 1,
+                limit: 10,
+                title: '',
+                createTime: '',
+            },
+            dataForm: {
+                title: '',
+                type: '',
+                integral: '',
+                deadline: '',
+                participants: [],
+                content: '',
+                questions: [],
+            },
+            dialogFormVisible: false,
+            dialogStatus: '',
+            textMap: {
+                update: "编辑",
+                create: "创建",
+            },
+            rules: {
+                title: [{ required: true, message: "请填写标题", trigger: "blur" }],
+                type: [{ required: true, message: "请选择类型", trigger: "blur" }],
+                integral: [{ required: true, message: "请填写积分", trigger: "blur" }],
+                deadline: [{ required: true, message: "请选择截止日期", trigger: "blur" }],
+                content: [{ required: true, message: "内容不能为空", trigger: "blur" }],
+                questions: [{ required: true, message: "请添加至少一个问题", trigger: "blur" }],
+            },
+        }
+    },
+    created() {
+        this.getAllUserList(); 
+        this.getList();
+    },
+    methods: {
+        //改变类型
+        changeType(val){
+            if(val==5){
+                this.qesTypeList = [
+                    {
+                        value:'SCQ',
+                        name:'单选'
+                    },
+                    {
+                        value:'MCQ',
+                        name:'多选'
+                    },
+                    {
+                        value:'SAQ',
+                        name:'问答'
+                    },
+                ];
+            }
+            if(val==4){
+                this.qesTypeList = [
+                    {
+                        value:'SCQ',
+                        name:'单选'
+                    },
+                    {
+                        value:'MCQ',
+                        name:'多选'
+                    },
+                ];
+            }
+        },
+        //添加问题
+        addquest(){
+            let tempArray = this.dataForm.questions;
+            if(this.qesType){
+                var temp0 = {
+                    type: this.qesType,
+                    description: '',
+                    options:[],
+                };
+                tempArray.push(temp0);
+                this.dataForm.questions = tempArray;
+            }else{
+                this.$message.error('请选择问题类型');
+            }
+            this.qesType = '';
+        },
+        //删除问题
+        delectquest(index){
+            let qusetion = this.dataForm.questions;
+            qusetion.splice(index, 1);
+            this.dataForm.questions = qusetion;
+        },
+        //添加选项
+        additem(index){
+            console.log(index);
+            let qusetion = this.dataForm.questions;
+            let options = qusetion[index].options;
+            options.push({ name:''});
+            this.dataForm.questions = qusetion;
+        },
+         //删除选项
+        delectitem(index,childindex){
+            console.log(index,childindex);
+            let qusetion = this.dataForm.questions;
+            let options = qusetion[index].options;
+            options.splice(childindex, 1);
+            this.dataForm.questions = qusetion;
+        },
+        resetForm() {
+            this.dataForm = {
+                title: '',
+                type: '',
+                integral: '',
+                deadline: '',
+                participants: [],
+                content: '',
+                questions: [],
+            };
+        },
+        handleCreate() {
+
+            this.resetForm();
+            this.dialogFormVisible = true;
+            this.dialogStatus = "create";
+            this.$nextTick(() => {
+                this.$refs["dataForm"].clearValidate();
+            });
+        },
+        //验证是否为空的函数
+        ifnone_data() {
+            let stati_top = 200;
+            let qusetion = this.dataForm.questions;
+            for (let i = 0; i < qusetion.length; i++) {
+            if (qusetion[i].description == '') { 
+                stati_top = '请填写问题'; break; 
+            }
+            if (qusetion[i].type != 'SAQ') {
+                if (qusetion[i].options.length == 0) { 
+                    stati_top = '请添加选项'; break; 
+                }
+                for (let j = 0; j < qusetion[i].options.length; j++) {
+                    if (qusetion[i].options[j].name == '') { 
+                        stati_top = '请填写选项'; break; 
+                    }
+                }
+            }
+
+            }
+            return stati_top;
+        },
+        createData() {
+            this.$refs["dataForm"].validate((valid) => {
+                let ifnone_data = this.ifnone_data();
+                if (valid&&ifnone_data==200) {
+                    console.log(this.dataForm);
+                    create(this.dataForm)
+                            .then((response) => {
+                                this.getList();
+                                this.dialogFormVisible = false;
+                                this.$notify({
+                                    title: "成功",
+                                    message: "创建成功",
+                                    type: "success",
+                                    duration: 2000,
+                                });
+                                this.getList();
+                            })
+                            .catch(() => { });
+                }else{
+                    this.$message.error(ifnone_data);
+                }
+            });
+        },
+        handleUpdate(row) {
+            getDetailInfo({postId:row.id}).then(response => {
+                this.dataForm = response.data.data;
+                this.dataForm.questions = response.data.data.data;
+                this.dialogStatus = 'update'
+                this.dialogFormVisible = true
+            }).catch(() => {})
+        },
+        updateData() {
+            this.$refs['dataForm'].validate((valid) => {
+                if (valid) {
+                    update(this.dataForm).then(() => {
+                            this.dialogFormVisible = false
+                            this.$notify({
+                                title: '成功',
+                                message: '更新成功',
+                                type: 'success',
+                                duration: 2000
+                            })
+                            this.getList()
+                        })
+
+                }
+
+            })
+        },
+        changeState(postId, index) {
+            changeState({ postId: postId, status: index }).then(response => {
+                this.$notify({
+                    title: '成功',
+                    message: '状态修改成功',
+                    type: 'success',
+                    duration: 2000
+                })
+                this.getList()
+            })
+        },
+        handleDelete(postId, index) {
+            this.$confirm('确认删除吗?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                changeState({ postId: postId, status: index }).then(response => {
+                    this.$notify({
+                        title: '成功',
+                        message: '删除成功',
+                        type: 'success',
+                        duration: 2000
+                    })
+                    this.getList();
+                })
+            }).catch(() => {})
+
+        },
+        getAllUserList() {
+            allUserList().then(response => {
+                this.participantsList = response.data.data;
+            }).catch(() => {});
+        },
+        getList() {
+            this.listLoading = true
+            getList(this.listQuery).then(response => {
+                this.list = response.data.data.items
+                this.total = response.data.data.total
+                this.listLoading = false
+            }).catch(() => {})
+        },
+       
+
+        handleFilter() {
+            this.listQuery.page = 1
+            this.getList()
+        },
+        handleSizeChange(val) {
+            this.listQuery.limit = val
+            this.getList()
+        },
+        handleCurrentChange(val) {
+            this.listQuery.page = val
+            this.getList()
+        },
+
+        
+    }
+}
+</script>
+<style>
+.ad-avatar-uploader .el-upload {
+    border: 1px dashed #d9d9d9;
+    border-radius: 6px;
+    cursor: pointer;
+    position: relative;
+    overflow: hidden;
+}
+
+.ad-avatar-uploader .el-upload:hover {
+    border-color: #409EFF;
+}
+
+.ad-avatar-uploader-icon {
+    font-size: 28px;
+    color: #8c939d;
+    width: 178px;
+    height: 178px;
+    line-height: 178px;
+    text-align: center;
+}
+
+.ad-avatar {
+    display: block;
+}
+</style>
+  

+ 149 - 0
src/views/rankingManage/answerRanking.vue

@@ -0,0 +1,149 @@
+<template>
+    <div class="app-container calendar-list-container exchangeView">
+        <!-- 查询和其他操作 -->
+        <div class="filter-container">
+            <el-input clearable class="filter-item" style="width: 200px;" placeholder="员工名称"
+                v-model="listQuery.userName"></el-input>
+                <el-date-picker
+            class="filter-item"
+            value-format="yyyy-MM-dd"
+            v-model="listQuery.createTime"
+            type="date"
+            placeholder="创建日期">
+            </el-date-picker>
+            <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleFilter">查找</el-button>
+            <!-- <el-button class="filter-item" type="primary" v-waves icon="el-icon-download" @click="handleDownLoad">导出</el-button> -->
+
+        </div>
+
+        <!-- 查询结果 -->
+        <el-table size="small" :data="list" v-loading="listLoading" element-loading-text="正在查询中。。。" border fit
+            highlight-current-row>
+            <el-table-column align="center" min-width="50px" label="排行" prop="rownum">
+            </el-table-column>
+            <el-table-column align="center" min-width="80px" label="员工名称" prop="userName">
+            </el-table-column>
+            <el-table-column align="center" min-width="150px" label="部门名称" prop="deptName">
+            </el-table-column>
+            <el-table-column align="center" min-width="80px" label="正确数" prop="rightQuantities">
+            </el-table-column>
+            <el-table-column align="center" min-width="80px" label="用时(毫秒)" prop="answerTime">
+            </el-table-column>
+            <el-table-column align="center" min-width="150px" label="答题时间" prop="answerDate">
+            </el-table-column>
+        </el-table>
+
+        <!-- 分页 -->
+        <div class="pagination-container">
+            <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                :current-page="listQuery.page" :page-sizes="[10, 20, 30, 50]" :page-size="listQuery.limit"
+                layout="total, sizes, prev, pager, next, jumper" :total="total">
+            </el-pagination>
+        </div>
+    </div>
+</template>
+  
+<style>
+.demo-table-expand {
+    font-size: 0;
+}
+
+.demo-table-expand label {
+    width: 200px;
+    color: #99a9bf;
+}
+
+.demo-table-expand .el-form-item {
+    margin-right: 0;
+    margin-bottom: 0;
+}
+</style>
+  
+<script>
+import { answerList } from "@/api/rankingList";
+import waves from "@/directive/waves"; // 水波纹指令
+import Tinymce from '@/components/Tinymce'
+
+export default {
+    components: { Tinymce },
+    directives: { waves },
+    data() {
+        return {
+            httpFile:'',
+            list: [
+            ],
+            total: 0,
+            listLoading: false,
+            listQuery: {
+                page: 1,
+                limit: 10,
+                createTime: this.getCurrentDate(),
+                userName: '',
+            },
+        }
+    },
+    created() {
+        this.getList();
+    },
+    methods: {
+        getCurrentDate() {
+            let now = new Date();
+            let year = now.getFullYear();
+            let month = now.getMonth() + 1;
+            let day = now.getDate();
+            return year + "-" + month + "-" + day;
+        },
+        handleDownLoad(){
+            window.location.href = process.env.BASE_API + '/mall-order/exportOrderLog?userName=' + this.listQuery.userName + '&orderSeq=' + this.listQuery.orderSeq + '&orderType=' + this.listQuery.orderType + '&title=' + this.listQuery.title;
+        },
+        getList() {
+            this.listLoading = true
+            answerList(this.listQuery).then(response => {
+                this.httpFile = response.data.data.httpFile
+                this.list = response.data.data.items
+                this.total = response.data.data.total
+                this.listLoading = false
+            }).catch(() => {})
+        },
+        handleFilter() {
+            this.listQuery.page = 1
+            this.getList()
+        },
+        handleSizeChange(val) {
+            this.listQuery.limit = val
+            this.getList()
+        },
+        handleCurrentChange(val) {
+            this.listQuery.page = val
+            this.getList()
+        },
+    }
+}
+</script>
+<style>
+.ad-avatar-uploader .el-upload {
+    border: 1px dashed #d9d9d9;
+    border-radius: 6px;
+    cursor: pointer;
+    position: relative;
+    overflow: hidden;
+}
+
+.ad-avatar-uploader .el-upload:hover {
+    border-color: #409EFF;
+}
+
+.ad-avatar-uploader-icon {
+    font-size: 28px;
+    color: #8c939d;
+    width: 178px;
+    height: 178px;
+    line-height: 178px;
+    text-align: center;
+}
+
+.ad-avatar {
+    display: block;
+}
+</style>
+  

+ 145 - 0
src/views/rankingManage/gameRanking.vue

@@ -0,0 +1,145 @@
+<template>
+    <div class="app-container calendar-list-container exchangeView">
+        <!-- 查询和其他操作 -->
+        <div class="filter-container">
+            <el-input clearable class="filter-item" style="width: 200px;" placeholder="员工名称"
+                v-model="listQuery.userName"></el-input>
+                <el-date-picker
+                        style="width: 220px; margin-right: 30px;"
+                        class="filter-item"
+                        v-model="listQuery.createTime"
+                        value-format="yyyy-MM-dd"
+                        type="week"
+                        format="yyyy 第 WW 周"
+                        placeholder="选择周">
+                        </el-date-picker>
+            <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleFilter">查找</el-button>
+            <!-- <el-button class="filter-item" type="primary" v-waves icon="el-icon-download" @click="handleDownLoad">导出</el-button> -->
+
+        </div>
+
+        <!-- 查询结果 -->
+        <el-table size="small" :data="list" v-loading="listLoading" element-loading-text="正在查询中。。。" border fit
+            highlight-current-row>
+            <el-table-column align="center" min-width="50px" label="排行" prop="rownum">
+            </el-table-column>
+            <el-table-column align="center" min-width="80px" label="员工名称" prop="userName">
+            </el-table-column>
+            <el-table-column align="center" min-width="150px" label="部门名称" prop="deptName">
+            </el-table-column>
+            <el-table-column align="center" min-width="120px" label="得分" prop="actuaMoney">
+            </el-table-column>
+            <el-table-column align="center" min-width="120px" label="游戏时间" prop="createTime">
+            </el-table-column>
+        </el-table>
+
+        <!-- 分页 -->
+        <div class="pagination-container">
+            <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                :current-page="listQuery.page" :page-sizes="[10, 20, 30, 50]" :page-size="listQuery.limit"
+                layout="total, sizes, prev, pager, next, jumper" :total="total">
+            </el-pagination>
+        </div>
+    </div>
+</template>
+  
+<style>
+.demo-table-expand {
+    font-size: 0;
+}
+
+.demo-table-expand label {
+    width: 200px;
+    color: #99a9bf;
+}
+
+.demo-table-expand .el-form-item {
+    margin-right: 0;
+    margin-bottom: 0;
+}
+</style>
+  
+<script>
+import { gameList } from "@/api/rankingList";
+import waves from "@/directive/waves"; // 水波纹指令
+import Tinymce from '@/components/Tinymce'
+
+export default {
+    components: { Tinymce },
+    directives: { waves },
+    data() {
+        return {
+            httpFile:'',
+            orderTypeList: [
+            ],
+            list: [
+
+            ],
+            total: 0,
+            listLoading: false,
+            listQuery: {
+                page: 1,
+                limit: 10,
+                createTime: '',
+                userName: '',
+            },
+        }
+    },
+    created() {
+        this.getList();
+    },
+    methods: {
+        handleDownLoad(){
+            window.location.href = process.env.BASE_API + '/mall-order/exportOrderLog?userName=' + this.listQuery.userName + '&orderSeq=' + this.listQuery.orderSeq + '&orderType=' + this.listQuery.orderType + '&title=' + this.listQuery.title;
+        },
+        getList() {
+            this.listLoading = true
+            gameList(this.listQuery).then(response => {
+                this.httpFile = response.data.data.httpFile
+                this.list = response.data.data.items
+                this.total = response.data.data.total
+                this.listLoading = false
+            }).catch(() => {})
+        },
+        handleFilter() {
+            this.listQuery.page = 1
+            this.getList()
+        },
+        handleSizeChange(val) {
+            this.listQuery.limit = val
+            this.getList()
+        },
+        handleCurrentChange(val) {
+            this.listQuery.page = val
+            this.getList()
+        },
+    }
+}
+</script>
+<style>
+.ad-avatar-uploader .el-upload {
+    border: 1px dashed #d9d9d9;
+    border-radius: 6px;
+    cursor: pointer;
+    position: relative;
+    overflow: hidden;
+}
+
+.ad-avatar-uploader .el-upload:hover {
+    border-color: #409EFF;
+}
+
+.ad-avatar-uploader-icon {
+    font-size: 28px;
+    color: #8c939d;
+    width: 178px;
+    height: 178px;
+    line-height: 178px;
+    text-align: center;
+}
+
+.ad-avatar {
+    display: block;
+}
+</style>
+  

+ 2 - 2
src/views/trainManage/ceoTrainList.vue

@@ -182,10 +182,10 @@
       </el-table>
       <el-form style="margin-top: 20px;" :rules="rules" ref="dataForm" :model="dataForm" status-icon label-position="left" label-width="100px">
                 <el-form-item label="讲师积分" prop="lecturerIntegral">
-                  <el-input-number style="width: 100%;" :min="10" :step="1" v-model="dataForm.lecturerIntegral"></el-input-number>
+                  <el-input-number style="width: 100%;" :min="1" :step="1" v-model="dataForm.lecturerIntegral"></el-input-number>
                 </el-form-item>
                 <el-form-item label="参加人积分" prop="traineeIntegral">
-                  <el-input-number style="width: 100%;" :min="10" :step="1" v-model="dataForm.traineeIntegral"></el-input-number>
+                  <el-input-number style="width: 100%;" :min="1" :step="1" v-model="dataForm.traineeIntegral"></el-input-number>
                 </el-form-item>
                 <el-form-item label="审批意见" prop="content">
                   <el-input type="textarea" :rows="2" placeholder="请输入审批意见" v-model="dataForm.content"></el-input>

+ 16 - 4
yarn.lock

@@ -2760,14 +2760,16 @@ electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30:
   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.30.tgz#0f75a1dce26dffbd5a0f7212e5b87fe0b61cbc76"
   integrity sha512-609z9sIMxDHg+TcR/VB3MXwH+uwtrYyeAwWc/orhnr90ixs6WVGSrt85CDLGUdNnLqCA7liv426V20EecjvflQ==
 
-element-ui@2.0.8:
-  version "2.0.8"
-  resolved "https://registry.yarnpkg.com/element-ui/-/element-ui-2.0.8.tgz#cee493530a8e7a3c69bb83dc22f252a5b9ce0a11"
-  integrity sha512-Y0eiOhJZl4lgrGaGK6z02YtLsWljochxKud6IX4q2ju/NraZfexTah3GH+6x8D0IhplVP+QxHZ1+gSqnIbnmmQ==
+element-ui@^2.15.12:
+  version "2.15.14"
+  resolved "https://registry.npmmirror.com/element-ui/-/element-ui-2.15.14.tgz#3c34df79467636592812d720d2e6784e7a6ec2ea"
+  integrity sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==
   dependencies:
     async-validator "~1.8.1"
     babel-helper-vue-jsx-merge-props "^2.0.0"
     deepmerge "^1.2.0"
+    normalize-wheel "^1.0.1"
+    resize-observer-polyfill "^1.5.0"
     throttle-debounce "^1.0.1"
 
 elliptic@^6.5.3:
@@ -5678,6 +5680,11 @@ normalize-url@^1.4.0:
     query-string "^4.1.0"
     sort-keys "^1.0.0"
 
+normalize-wheel@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.npmmirror.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz#aec886affdb045070d856447df62ecf86146ec45"
+  integrity sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==
+
 normalize.css@7.0.0:
   version "7.0.0"
   resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-7.0.0.tgz#abfb1dd82470674e0322b53ceb1aaf412938e4bf"
@@ -7107,6 +7114,11 @@ requires-port@^1.0.0:
   resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
   integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
 
+resize-observer-polyfill@^1.5.0:
+  version "1.5.1"
+  resolved "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"
+  integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==
+
 resolve-cwd@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"