|
@@ -1,312 +1,113 @@
|
|
|
<template>
|
|
|
<div class="m-container">
|
|
|
- <h2>乐团列表</h2>
|
|
|
+ <h2>首页 <div class="squrt"></div>
|
|
|
+ </h2>
|
|
|
<div class="m-core">
|
|
|
- <div class="btnList">
|
|
|
- <div class='newBand'>新建乐团</div>
|
|
|
- <div class='newBand'>声部调整</div>
|
|
|
- <div class='newBand'>乐团合并</div>
|
|
|
- <div class='newBand'>乐团加课</div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <el-form :inline="true"
|
|
|
- class="topForm"
|
|
|
- ref="topForm"
|
|
|
- :model="topForm">
|
|
|
- <el-form-item prop='school'>
|
|
|
- <el-select v-model="topForm.school"
|
|
|
- placeholder="请选择学校名称">
|
|
|
- <el-option v-for="(item,index) in schools"
|
|
|
- :key="index"
|
|
|
- :label="item.text"
|
|
|
- :value="item.value"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <!-- 多选 -->
|
|
|
- <el-form-item prop='status'>
|
|
|
- <el-select class='multiple'
|
|
|
- v-model="topForm.status"
|
|
|
- placeholder="请选择收费类型"
|
|
|
- multiple
|
|
|
- collapse-tags>
|
|
|
- <el-option v-for="(item,index) in nowStatus"
|
|
|
- :key="index"
|
|
|
- :label="item.text"
|
|
|
- :value="item.value"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <!-- 收费类型 -->
|
|
|
- <el-form-item prop='payType'>
|
|
|
- <el-select v-model="topForm.payType">
|
|
|
- <el-option label="1.0"
|
|
|
- value="1"></el-option>
|
|
|
- <el-option label="1.5"
|
|
|
- value="2"></el-option>
|
|
|
- <el-option label="2.0"
|
|
|
- value="3"></el-option>
|
|
|
- <el-option label="3.0"
|
|
|
- value="4"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item prop='word'>
|
|
|
- <el-input type="text"
|
|
|
- placeholder="请输入搜索关键字"
|
|
|
- suffix-icon="el-icon-search"
|
|
|
- @focus="gotoSearch"
|
|
|
- v-model="topForm.word" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item>
|
|
|
- <div class='searchBtn'>搜索</div>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <div class="searchWrap">
|
|
|
- <p>查询条件:</p>
|
|
|
- <div class="searchItem"
|
|
|
- @click="closeSearch(item)"
|
|
|
- v-for="(item,index) in searchLsit">
|
|
|
- {{ item.key }}
|
|
|
- <i class="el-icon-close"></i>
|
|
|
+ <div class="itemWrap">
|
|
|
+ <div class="item">
|
|
|
+ <h4>
|
|
|
+ <p>本月收入</p>
|
|
|
+ <img src=""
|
|
|
+ alt="">
|
|
|
+ </h4>
|
|
|
+ <div class="infos">
|
|
|
+ <div class="info">
|
|
|
+ <p class="sub">笔数</p>
|
|
|
+ <p class='msg'>1200</p>
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ <p class="sub">总计</p>
|
|
|
+ <p class='msg'>23,000,000</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- -->
|
|
|
+ <div class="item">
|
|
|
+ <h4>
|
|
|
+ <p>本月收入</p>
|
|
|
+ <img src=""
|
|
|
+ alt="">
|
|
|
+ </h4>
|
|
|
+ <div class="infos">
|
|
|
+ <div class="info">
|
|
|
+ <p class="sub">笔数</p>
|
|
|
+ <p class='msg'>1200</p>
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ <p class="sub">总计</p>
|
|
|
+ <p class='msg'>23,000,000</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- -->
|
|
|
+ <div class="item">
|
|
|
+ <h4>
|
|
|
+ <p>分部乐团数</p>
|
|
|
+ <img src=""
|
|
|
+ alt="">
|
|
|
+ </h4>
|
|
|
+ <div class="infos">
|
|
|
+ <div class="info">
|
|
|
+ <p class="sub">全部</p>
|
|
|
+ <p class='msg'>23</p>
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ <p class="sub">进行中</p>
|
|
|
+ <p class='msg'>23</p>
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ <p class="sub">已完成</p>
|
|
|
+ <p class='msg'>23</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="tableWrap">
|
|
|
- <el-table style="width: 100%"
|
|
|
- :data='tableData'>
|
|
|
- <el-table-column prop="num"
|
|
|
- align='center'
|
|
|
- label="乐团编号">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="name"
|
|
|
- align='center'
|
|
|
- label="乐团名称">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column align='center'
|
|
|
- max-width='274'
|
|
|
- label="学校名称">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="status"
|
|
|
- align='center'
|
|
|
- label="乐团状态">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="type"
|
|
|
- align='center'
|
|
|
- label="收费类型">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="teacher"
|
|
|
- align='center'
|
|
|
- label="教务老师">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="captain"
|
|
|
- align='center'
|
|
|
- label="乐团团长">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="captain"
|
|
|
- align='center'
|
|
|
- label="成团人数">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="readers"
|
|
|
- align='center'
|
|
|
- label="在读人数">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="course"
|
|
|
- align='center'
|
|
|
- label="当前课时">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="timer"
|
|
|
- align='center'
|
|
|
- label="成团时间">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="handle"
|
|
|
- align='center'
|
|
|
- width='200px'
|
|
|
- label="操作">
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <!-- 分页器 -->
|
|
|
- <!-- 分页 -->
|
|
|
- <pagination :total="rules.total"
|
|
|
- :page.sync="rules.page"
|
|
|
- :limit.sync="rules.limit"
|
|
|
- :page-sizes="rules.page_size"
|
|
|
- @pagination="getList" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
-import pagination from '@/components/Pagination/index'
|
|
|
-import { truncate } from 'fs';
|
|
|
export default {
|
|
|
- name: "Main",
|
|
|
- data () {
|
|
|
- return {
|
|
|
- topForm: {
|
|
|
- school: '',
|
|
|
- status: [],
|
|
|
- payType: '',
|
|
|
- word: ''
|
|
|
- },
|
|
|
- schools: [{ // 学校数组
|
|
|
- value: 1, text: '张三团'
|
|
|
- }, {
|
|
|
- value: 2, text: '李四团'
|
|
|
- }],
|
|
|
- nowStatus: [{ // 状态数组
|
|
|
- value: 1, text: '报名中'
|
|
|
- },
|
|
|
- {
|
|
|
- value: 2, text: '缴费中'
|
|
|
- }, {
|
|
|
- value: 3, text: '筹备中'
|
|
|
- },
|
|
|
- {
|
|
|
- value: 4, text: '进行中'
|
|
|
- }, {
|
|
|
- value: 5, text: '失败'
|
|
|
- }, {
|
|
|
- value: 6, text: '已结束'
|
|
|
- },
|
|
|
- {
|
|
|
- value: 7, text: '暂停'
|
|
|
- },
|
|
|
- ],
|
|
|
- searchLsit: [], // 存储选择后的数组
|
|
|
- tableData: [], // table数据
|
|
|
- rules: {
|
|
|
- // 分页规则
|
|
|
- limit: 10, // 限制显示条数
|
|
|
- page: 1, // 当前页
|
|
|
- total: 0, // 总条数
|
|
|
- page_size: [10, 20, 40, 50] // 选择限制显示条数
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- components: {
|
|
|
- pagination
|
|
|
- },
|
|
|
- methods: {
|
|
|
- getList () {
|
|
|
-
|
|
|
- },
|
|
|
- setSearchList (obj) {
|
|
|
- //
|
|
|
- // 没有相同的key=>添加这个对象
|
|
|
- // 有相同的key => 替换这个对象
|
|
|
- if (obj.type == 1) {
|
|
|
- let flag = false;
|
|
|
- this.searchLsit = this.searchLsit.map(item => {
|
|
|
- if (item.id == obj.id) {
|
|
|
- item = obj;
|
|
|
- flag = true;
|
|
|
- }
|
|
|
- return item;
|
|
|
- })
|
|
|
- if (!flag) {
|
|
|
- this.searchLsit.push(obj)
|
|
|
- }
|
|
|
- } else {
|
|
|
- let flag = false;
|
|
|
- this.searchLsit = this.searchLsit.map(item => {
|
|
|
- if (item.key == obj.key) {
|
|
|
- // 多选框的再次点击=> 等于 就是删除
|
|
|
- item = obj;
|
|
|
- flag = true;
|
|
|
- }
|
|
|
- return item;
|
|
|
- })
|
|
|
- if (!flag) {
|
|
|
- this.searchLsit.push(obj)
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- },
|
|
|
- closeSearch (item) {
|
|
|
- // 1.删除search里的元素
|
|
|
- if (item.type == 1) {
|
|
|
- for (let some in this.searchLsit) {
|
|
|
- if (this.searchLsit[some].id == item.id) {
|
|
|
- this.searchLsit.splice(some, 1);
|
|
|
- }
|
|
|
- }
|
|
|
- // 2.清空对应元素所对应的的值
|
|
|
- this.topForm[item.id] = '';
|
|
|
- } else {
|
|
|
- for (let i = 0; i < this.topForm[item.id].length; i++) {
|
|
|
- if (this.topForm[item.id][i] == item.value) {
|
|
|
- this.topForm[item.id].splice(i, 1);
|
|
|
- }
|
|
|
- }
|
|
|
- // 处理search
|
|
|
- for (let some in this.searchLsit) {
|
|
|
- if (this.searchLsit[some].value == item.value && this.searchLsit[some].id == item.id) {
|
|
|
- this.searchLsit.splice(some, 1);
|
|
|
- }
|
|
|
- // id: 'school', key: this.schools[item].text, value: val, type: 1
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
- },
|
|
|
- gotoSearch () {
|
|
|
- this.$refs['topForm'].resetFields();
|
|
|
- this.searchLsit = [];
|
|
|
- }
|
|
|
- },
|
|
|
- watch: {
|
|
|
- chioseSchool (val) {
|
|
|
- if (val != '') {
|
|
|
- // 遍历获取文字
|
|
|
- for (let item in this.schools) {
|
|
|
- if (this.schools[item].value == val) {
|
|
|
- this.setSearchList({ id: 'school', key: this.schools[item].text, value: val, type: 2 })
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- chioseStauts (val, oldval) {
|
|
|
- // 这里取出来是数组 [1,2,3] 添加 删除 修改
|
|
|
- if (val != '') {
|
|
|
- // 遍历获取文字
|
|
|
- for (let i = 0; i < val.length; i++) {
|
|
|
- for (let item in this.nowStatus) {
|
|
|
- // 判断是不是添加还是删除 只有添加才push 否则不管
|
|
|
- if (this.nowStatus[item].value == val[i] && val.length > oldval.length) {
|
|
|
- this.setSearchList({ id: 'status', key: this.nowStatus[item].text, value: val[i], type: 2 })
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- chiosePayType (val) {
|
|
|
- if (val) {
|
|
|
- let arr = ['', '1.0', '1.5', '2.0', '3.0']
|
|
|
- this.setSearchList({ id: 'payType', key: arr[val], value: val, type: 1 })
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- computed: {
|
|
|
- chioseSchool () {
|
|
|
- return this.topForm.school
|
|
|
- },
|
|
|
- chioseStauts () {
|
|
|
- return this.topForm.status
|
|
|
- },
|
|
|
- chiosePayType () {
|
|
|
- return this.topForm.payType
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
</script>
|
|
|
-<style lang="scss" scoped>
|
|
|
-.select {
|
|
|
- font-size: 16px;
|
|
|
-}
|
|
|
-.btnList {
|
|
|
+<style lang="scss" scope>
|
|
|
+.itemWrap {
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
justify-content: flex-start;
|
|
|
align-items: center;
|
|
|
- div {
|
|
|
- margin-right: 15px;
|
|
|
+ .item {
|
|
|
+ width: 303px;
|
|
|
+ height: 137px;
|
|
|
+ padding: 22px 28px 20px;
|
|
|
+ box-shadow: 0px 8px 20px 0px rgba(0, 0, 0, 0.1);
|
|
|
+ border-radius: 6px;
|
|
|
+ margin-right: 30px;
|
|
|
+ h4 {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ justify-content: space-between;
|
|
|
+ margin-bottom: 20px;
|
|
|
+ color: #323c47;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+ .infos {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ justify-content: space-between;
|
|
|
+ .sub {
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 20px;
|
|
|
+ color: #aaa;
|
|
|
+ margin-bottom: 8px;
|
|
|
+ }
|
|
|
+ .msg {
|
|
|
+ font-size: 24px;
|
|
|
+ font-weight: 500;
|
|
|
+ color: rgba(68, 68, 68, 1);
|
|
|
+ line-height: 28px;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-</style>
|
|
|
+</style>
|