Browse Source

nealy done

xjc 4 years ago
parent
commit
fb5c69df91
7 changed files with 528 additions and 22 deletions
  1. 24 0
      src/api.js
  2. 2 2
      src/router.js
  3. 2 3
      src/views/data/index.vue
  4. 149 0
      src/views/match/group.vue
  5. 159 2
      src/views/match/index.vue
  6. 181 0
      src/views/player/index.vue
  7. 11 15
      src/views/user/index.vue

+ 24 - 0
src/api.js

@@ -143,5 +143,29 @@ export default {
 	getRoleInfo: params => {
 		return axios.get(`${baseURL}/api/admin/role`, { params: params });
 	},
+	// 选手列表
+	getPlayers: params => {
+		return axios.get(`${baseURL}/api/admin/player/list`, { params: params })
+	},
+	// 新增选手
+	addPlayer: params => {
+		return axios.post(`${baseURL}/api/admin/player`, params)
+	},
+	// 编辑选手
+	updatePlayer: params => {
+		return axios.put(`${baseURL}/api/admin/player`, params)
+	},
+	// 用户搜索
+	getUserSearch: params => {
+		return axios.get(`${baseURL}/api/admin/user/search`, { params: params })
+	},
+	// 赛事列表
+	getMatchs: params => {
+		return axios.get(`${baseURL}/api/admin/match/list`, { params: params })
+	},
+	// 分组管理
+	getGroups: params => {
+		return axios.get(`${baseURL}/api/admin/match/group/list`, { params: params })
+	},
 
 }

+ 2 - 2
src/router.js

@@ -35,7 +35,7 @@ export default new Router({
         name: '赛事管理'
       },{
         path: '/group',
-        component: () => import('./views/match/index.vue'),
+        component: () => import('./views/match/group.vue'),
         name: '赛事分组'
       }, ]
     },
@@ -48,7 +48,7 @@ export default new Router({
       isLeaf: 0,
       children: [{
         path: '/player',
-        component: () => import('./views/match/index.vue'),
+        component: () => import('./views/player/index.vue'),
         name: '参数选手'
       } ]
     },

+ 2 - 3
src/views/data/index.vue

@@ -43,8 +43,7 @@
                 <el-col :span="4">
                     <el-form-item label="比赛分组">
                         <el-select v-model="queryParams.groupId" placeholder="请选择比赛分组" size="mini">
-                        <el-option v-for="item in groupList" :key='item.id' :label="item.name" :value="item.id"></el-option>
-
+                            <el-option v-for="item in groupList" :key='item.id' :label="item.name" :value="item.id"></el-option>
                         </el-select>
                     </el-form-item>
                 </el-col>
@@ -107,7 +106,7 @@
                 </el-form-item>
                 <el-form-item label="参赛选手" prop="player_id">
                     <el-select v-model="form.player_id" placeholder="请选择用户代码">
-                            <el-option v-for="item in playerList" :key='item.id' :label="item.username" :value="item.id"></el-option>
+                        <el-option v-for="item in playerList" :key='item.id' :label="item.username" :value="item.id"></el-option>
                     </el-select>
                 </el-form-item>
                 <el-form-item label="持仓日期" prop="stock_date">

+ 149 - 0
src/views/match/group.vue

@@ -0,0 +1,149 @@
+<template>
+    <section class="content">
+        <h4>赛事分组</h4>
+        <el-divider></el-divider>
+        <el-form label-width="80px" class="filter-form">
+            <el-row>
+                <el-col :span="4">
+                    <el-form-item label="赛事名称">
+                        <el-select v-model="queryParams.match_id" placeholder="请选择比赛" size="mini">
+                            <el-option v-for="item in matchList" :key='item.id' :label="item.name" :value="item.id"></el-option>
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="4">
+                    <el-form-item>
+                        <el-button type="primary" @click="getData" size="mini">筛选</el-button>
+                        <el-button
+                        type="primary"
+                        plain
+                        icon="el-icon-plus"
+                        size="mini"
+                        @click="handleAdd"
+                        >新增分组</el-button>
+                    </el-form-item>
+                </el-col>
+            </el-row>   
+        </el-form>
+        <el-table v-loading='loading' :data="list" style="width: 100%;margin-top:10px;" height="50vh">
+                <el-table-column align="center" prop="name" label="分组名称"/>
+                <el-table-column align="center"  prop="join_count" label="参赛人数"/>
+                <el-table-column align="center"  prop="out_count" label="退赛人数"/>
+                <el-table-column align="center"  prop="date" label="操作">
+                    <template slot-scope="scope">
+                        <el-button @click="title='编辑用户',open=true,form=scope.row" size="mini" type="warning">编辑</el-button>
+                    </template>
+                </el-table-column>
+        </el-table>
+        <Page
+            ref="pageButton"
+            :current="form.page"
+            :page_size="form.page_size"
+            :total="total"
+            @pageChange="gopage"
+        />
+        <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+            <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+                <el-form-item label="分组名称" prop="name">
+                    <el-input clearable v-model="form.name" placeholder="请输入分组名称" size="mini"></el-input>
+                </el-form-item>
+                <el-form-item label="比赛名称">
+                    <el-select v-model="form.match_id" placeholder="请选择比赛">
+                        <el-option v-for="item in matchList" :key='item.id' :label="item.name" :value="item.id"></el-option>
+                    </el-select>
+                </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="submitForm">确 定</el-button>
+                <el-button @click="open=false">取 消</el-button>
+            </div>
+        </el-dialog>
+    </section>
+</template>
+<script>
+import Page from "../../components/Page";
+export default {
+    components: {
+        Page,
+    },
+    data(){
+        return{
+            loading:false,
+            queryParams:{
+                page:1
+            },
+            form:{},
+            list:[{},{}],
+            total:0,
+            title:'新增分组',
+            open:false,
+            rules:{
+                username: [
+                    { required: true, message: '请输入用户名', trigger: 'blur' }
+                ],
+                usercode: [
+                    { required: true, message: '请输入用户代码', trigger: 'blur' }
+                ],
+            },
+            matchList:[],
+            groupList:[],
+            userList:[]
+        }
+    },
+    methods:{
+        gopage(size) {
+            if (size) {
+                this.queryParams.page_size = size;
+            }
+            this.queryParams.page = this.$refs.pageButton.page;
+            this.getData();
+        },
+        getData(){
+            this.loading = true;
+            this.$api.getMatchList().then(res=>{
+                this.matchList=res.data.data
+            })
+            this.$api.getGroupList().then(res=>{
+                this.groupList=res.data.data
+            })
+            this.$api.getUserSearch().then(res=>{
+                this.userList=res.data.data
+            })
+            // 
+            this.$api.getGroups(this.queryParams).then(res=>{
+                this.list=res.data.data.list
+                this.total = res.data.data.total;
+                this.loading = false;
+            })
+        },
+        handleAdd(){
+            this.open=true;
+            this.title='新增用户';
+            this.form={}
+        },
+        /** 提交按钮 */
+        submitForm() {
+            this.$refs["form"].validate(valid => {
+                if (valid) {
+                if (this.form.id != null) {
+                    this.$api.updatePlayer(this.form).then(response => {
+                    this.msgSuccess("修改成功");
+                    this.open = false;
+                    this.getData();
+                    });
+                } else {
+                    this.$api.addPlayer(this.form).then(response => {
+                    this.msgSuccess("新增成功");
+                    this.open = false;
+                    this.getData();
+                    });
+                }
+        }
+      });
+    },
+    },
+    created(){
+       this.getData() 
+    }
+}
+</script>

+ 159 - 2
src/views/match/index.vue

@@ -1,3 +1,160 @@
 <template>
-    <section>比赛</section>
-</template>
+    <section class="content">
+        <h4>赛事管理</h4>
+        <el-divider></el-divider>
+        <el-form label-width="80px" class="filter-form">
+            <el-row>
+                <el-col :span="4">
+                    <el-form-item label="赛事名称">
+                        <el-input clearable v-model="queryParams.name" placeholder="请输入赛事名称" size="mini"></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="4">
+                    <el-form-item>
+                        <el-button type="primary" @click="getData" size="mini">筛选</el-button>
+                        <el-button
+                        type="primary"
+                        plain
+                        icon="el-icon-plus"
+                        size="mini"
+                        @click="handleAdd"
+                        >新增赛事</el-button>
+                    </el-form-item>
+                </el-col>
+            </el-row>   
+        </el-form>
+        <el-table v-loading='loading' :data="list" style="width: 100%;margin-top:10px;" height="50vh">
+                <el-table-column align="center" prop="name" label="赛事名称"/>
+                <el-table-column align="center"  prop="join_count" label="参赛人数"/>
+                <el-table-column align="center"  prop="out_count" label="退赛人数"/>
+                <el-table-column align="center"  prop="groups" label="比赛分组"/>
+                <el-table-column align="center"  prop="start_time" label="开始时间"/>
+                <el-table-column align="center"  prop="end_time" label="结束时间"/>
+                <el-table-column align="center"  prop="date" label="操作">
+                    <template slot-scope="scope">
+                        <el-button @click="title='编辑用户',open=true,form=scope.row" size="mini" type="warning">编辑</el-button>
+                    </template>
+                </el-table-column>
+        </el-table>
+        <Page
+            ref="pageButton"
+            :current="form.page"
+            :page_size="form.page_size"
+            :total="total"
+            @pageChange="gopage"
+        />
+        <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+            <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+                <el-form-item label="选手代码" prop="user_id">
+                    <el-select filterable v-model="form.user_id" placeholder="请选择用户代码">
+                        <el-option v-for="item in userList" :key='item.id' :label="item.label" :value="item.id"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="比赛资金" prop="fund">
+                    <el-input clearable v-model="form.fund" placeholder="请输入比赛资金"></el-input>
+                </el-form-item>
+                <el-form-item label="比赛名称">
+                    <el-select v-model="form.match_id" placeholder="请选择比赛">
+                        <el-option v-for="item in matchList" :key='item.id' :label="item.name" :value="item.id"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="比赛分组">
+                    <el-select v-model="form.match_group" placeholder="请选择比赛分组">
+                        <el-option v-for="item in groupList" :key='item.id' :label="item.name" :value="item.id"></el-option>
+                    </el-select>
+                </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="submitForm">确 定</el-button>
+                <el-button @click="open=false">取 消</el-button>
+            </div>
+        </el-dialog>
+    </section>
+</template>
+<script>
+import Page from "../../components/Page";
+export default {
+    components: {
+        Page,
+    },
+    data(){
+        return{
+            loading:false,
+            queryParams:{
+                page:1
+            },
+            form:{},
+            list:[{},{}],
+            total:0,
+            title:'新增选手',
+            open:false,
+            rules:{
+                username: [
+                    { required: true, message: '请输入用户名', trigger: 'blur' }
+                ],
+                usercode: [
+                    { required: true, message: '请输入用户代码', trigger: 'blur' }
+                ],
+            },
+            matchList:[],
+            groupList:[],
+            userList:[]
+        }
+    },
+    methods:{
+        gopage(size) {
+            if (size) {
+                this.queryParams.page_size = size;
+            }
+            this.queryParams.page = this.$refs.pageButton.page;
+            this.getData();
+        },
+        getData(){
+            this.loading = true;
+            this.$api.getMatchList().then(res=>{
+                this.matchList=res.data.data
+            })
+            this.$api.getGroupList().then(res=>{
+                this.groupList=res.data.data
+            })
+            this.$api.getUserSearch().then(res=>{
+                this.userList=res.data.data
+            })
+            // 
+            this.$api.getMatchs(this.queryParams).then(res=>{
+                this.list=res.data.data.list
+                this.total = res.data.data.total;
+                this.loading = false;
+            })
+        },
+        handleAdd(){
+            this.open=true;
+            this.title='新增用户';
+            this.form={}
+        },
+        /** 提交按钮 */
+        submitForm() {
+            this.$refs["form"].validate(valid => {
+                if (valid) {
+                if (this.form.id != null) {
+                    this.$api.updatePlayer(this.form).then(response => {
+                    this.msgSuccess("修改成功");
+                    this.open = false;
+                    this.getData();
+                    });
+                } else {
+                    this.$api.addPlayer(this.form).then(response => {
+                    this.msgSuccess("新增成功");
+                    this.open = false;
+                    this.getData();
+                    });
+                }
+        }
+      });
+    },
+    },
+    created(){
+       this.getData() 
+    }
+}
+</script>

+ 181 - 0
src/views/player/index.vue

@@ -0,0 +1,181 @@
+<template>
+    <section class="content">
+        <h4>选手管理</h4>
+        <el-divider></el-divider>
+        <el-form label-width="80px" class="filter-form">
+            <el-row>
+                <el-col :span="4">
+                    <el-form-item label="用户">
+                        <el-input clearable v-model="queryParams.username" placeholder="请输入用户名/代码" size="mini"></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="4">
+                    <el-form-item label="比赛名称" prop="match_id">
+                        <el-select v-model="queryParams.match_id" placeholder="请选择比赛" size="mini">
+                            <el-option v-for="item in matchList" :key='item.id' :label="item.name" :value="item.id"></el-option>
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="4">
+                    <el-form-item label="比赛分组">
+                        <el-select v-model="queryParams.groupId" placeholder="请选择比赛分组" size="mini">
+                        <el-option v-for="item in groupList" :key='item.id' :label="item.name" :value="item.id"></el-option>
+
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="4">
+                    <el-form-item>
+                        <el-button type="primary" @click="getData" size="mini">筛选</el-button>
+                        <el-button
+                        type="primary"
+                        plain
+                        icon="el-icon-plus"
+                        size="mini"
+                        @click="handleAdd"
+                        >新增选手</el-button>
+                    </el-form-item>
+                </el-col>
+            </el-row>   
+        </el-form>
+        <el-table v-loading='loading' :data="list" style="width: 100%;margin-top:10px;" height="50vh">
+                <el-table-column align="center" prop="usercode" label="选手代码"/>
+                <el-table-column align="center"  prop="username" label="选手名称"/>
+                <el-table-column align="center"  prop="match_name" label="比赛名称"/>
+                <el-table-column align="center"  prop="match_group" label="比赛分组"/>
+                <el-table-column align="center"  prop="fund" label="参赛资金"/>
+                <el-table-column align="center"  prop="date" label="参赛状态">
+                    <template slot-scope="scope">
+                        <span v-if='scope.row.match_status==1'>参赛中</span>
+                        <span v-if='scope.row.match_status==0'>暂停</span>
+                        <span v-if='scope.row.match_status==-1'>退赛</span>
+                    </template>
+                </el-table-column>
+                <el-table-column align="center"  prop="date" label="操作">
+                    <template slot-scope="scope">
+                        <el-button @click="title='编辑用户',open=true,form=scope.row" size="mini" type="warning">编辑</el-button>
+                    </template>
+                </el-table-column>
+        </el-table>
+        <Page
+            ref="pageButton"
+            :current="form.page"
+            :page_size="form.page_size"
+            :total="total"
+            @pageChange="gopage"
+        />
+        <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+            <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+                <el-form-item label="选手代码" prop="user_id">
+                    <el-select filterable v-model="form.user_id" placeholder="请选择用户代码">
+                        <el-option v-for="item in userList" :key='item.id' :label="item.label" :value="item.id"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="比赛资金" prop="fund">
+                    <el-input clearable v-model="form.fund" placeholder="请输入比赛资金"></el-input>
+                </el-form-item>
+                <el-form-item label="比赛名称">
+                    <el-select v-model="form.match_id" placeholder="请选择比赛">
+                        <el-option v-for="item in matchList" :key='item.id' :label="item.name" :value="item.id"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="比赛分组">
+                    <el-select v-model="form.match_group" placeholder="请选择比赛分组">
+                        <el-option v-for="item in groupList" :key='item.id' :label="item.name" :value="item.id"></el-option>
+                    </el-select>
+                </el-form-item>
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="submitForm">确 定</el-button>
+                <el-button @click="open=false">取 消</el-button>
+            </div>
+        </el-dialog>
+    </section>
+</template>
+<script>
+import Page from "../../components/Page";
+export default {
+    components: {
+        Page,
+    },
+    data(){
+        return{
+            loading:false,
+            queryParams:{
+                page:1
+            },
+            form:{},
+            list:[{},{}],
+            total:0,
+            title:'新增选手',
+            open:false,
+            rules:{
+                username: [
+                    { required: true, message: '请输入用户名', trigger: 'blur' }
+                ],
+                usercode: [
+                    { required: true, message: '请输入用户代码', trigger: 'blur' }
+                ],
+            },
+            matchList:[],
+            groupList:[],
+            userList:[]
+        }
+    },
+    methods:{
+        gopage(size) {
+            if (size) {
+                this.queryParams.page_size = size;
+            }
+            this.queryParams.page = this.$refs.pageButton.page;
+            this.getData();
+        },
+        getData(){
+            this.loading = true;
+            this.$api.getMatchList().then(res=>{
+                this.matchList=res.data.data
+            })
+            this.$api.getGroupList().then(res=>{
+                this.groupList=res.data.data
+            })
+            this.$api.getUserSearch().then(res=>{
+                this.userList=res.data.data
+            })
+            // 
+            this.$api.getPlayers(this.queryParams).then(res=>{
+                this.list=res.data.data.list
+                this.total = res.data.data.total;
+                this.loading = false;
+            })
+        },
+        handleAdd(){
+            this.open=true;
+            this.title='新增用户';
+            this.form={}
+        },
+        /** 提交按钮 */
+        submitForm() {
+            this.$refs["form"].validate(valid => {
+                if (valid) {
+                if (this.form.id != null) {
+                    this.$api.updatePlayer(this.form).then(response => {
+                    this.msgSuccess("修改成功");
+                    this.open = false;
+                    this.getData();
+                    });
+                } else {
+                    this.$api.addPlayer(this.form).then(response => {
+                    this.msgSuccess("新增成功");
+                    this.open = false;
+                    this.getData();
+                    });
+                }
+        }
+      });
+    },
+    },
+    created(){
+       this.getData() 
+    }
+}
+</script>

+ 11 - 15
src/views/user/index.vue

@@ -1,32 +1,28 @@
 <template>
     <section class="content">
-        <h1>用户管理</h1>
+        <h4>用户管理</h4>
         <el-divider></el-divider>
         <el-form label-width="40px" class="filter-form">
             <el-row>
-                <el-col :span="9">
+                <el-col :span="4">
                     <el-form-item label="用户">
-                        <el-input clearable v-model="queryParams.username" placeholder="请输入用户名/代码"></el-input>
+                        <el-input clearable v-model="queryParams.username" placeholder="请输入用户名/代码" size="mini"></el-input>
                     </el-form-item>
                 </el-col>
                 <el-col :span="4">
                     <el-form-item>
-                        <el-button type="danger" @click="getData">筛选</el-button>
+                        <el-button type="primary" @click="getData" size="mini">筛选</el-button>
+                        <el-button
+                        type="primary"
+                        plain
+                        icon="el-icon-plus"
+                        size="mini"
+                        @click="handleAdd"
+                        >新增用户</el-button>
                     </el-form-item>
                 </el-col>
             </el-row>   
         </el-form>
-        <el-row :gutter="10" class="mb8">
-            <el-col :span="1.5">
-                <el-button
-                type="primary"
-                plain
-                icon="el-icon-plus"
-                size="mini"
-                @click="handleAdd"
-                >新增</el-button>
-            </el-col>
-        </el-row>
         <el-table v-loading='loading' :data="list" style="width: 100%;margin-top:10px;" height="50vh">
                 <el-table-column align="center" prop="usercode" label="代码"/>
                 <el-table-column align="center"  prop="username" label="用户名"/>