| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 | <template>  <!-- 统计分析管理 -->  <div>    <actionBar :operateList="operateList" :formList="formList" :ruleForm="searchRuleForm" @openModel="openModel"      @searchProtocol="searchProtocol"></actionBar>    <div class="card_content_interior">      <div class="left_interior">        <div style="display: flex;margin-bottom: 10px;">          <el-checkbox :indeterminate="isIndeterminate" v-model="checked" @change="checkAll">全选</el-checkbox>          <div class="title_invert center_in" @click="Inverse">反选</div>        </div>        <el-checkbox-group v-model="checkedList" @change="checkboxChange">          <el-checkbox class="card_checkbox_analyse" :label="item.code" :key="index" :checked="item.checked"            v-for="(item,index) in list">            <div class="analyse_title">              <div class="item_title1">{{item.title}}</div>              <div class="item_title2">{{item.code}}</div>            </div>          </el-checkbox>        </el-checkbox-group>      </div>      <div class="right_interior">        <!-- 表单 -->        <tables :tableList="tableList" :tableData="tableData" @buttonData="buttonData"></tables>        <!-- 分页 -->        <div v-if="Total">          <pagination :total="Total" :currentPage="Pagination.PageIndex" @changeSize="changeSize"            @changeCurrent="changeCurrent">          </pagination>        </div>      </div>    </div>  </div></template><script>  import actionBar from '@/components/actionBar'  import tables from '@/components/tables'  import pagination from '@/components/pagination'  import {    employee,  } from "./statistics.js";  export default {    name: 'statisticalManagement',    components: {      actionBar,      tables,      pagination    },    data() {      return {        operateList: [{          type: 'add',          title: '导出Excel',          icon: 'el-icon-plus',          colour: 'warning'        }, {          type: 'import',          title: '下载PDF',          icon: 'el-icon-upload',        }],        formList: [{          type: 'input',          label: '名称',          field: 'name',          placeholder: '请输入名称',        }, {          type: 'input',          label: 'SN',          field: 'sn',          placeholder: 'SN',        }],        searchRuleForm: {          name: '',          sn: '',          status: '',        },        searchValue: {},        checked: '',        checkedList: [],        list: [],        Pagination: {          PageIndex: 1,          PageSize: 10,        },        Total: 1,        tableData: [],        tableList: employee(),        isIndeterminate: true,      }    },    methods: {      // 搜索      searchProtocol(value) {        this.Pagination.PageIndex = 1        this.searchValue = value        // this.getList()      },      openModel(type) {},      buttonData(row, type) {},      checkboxChange(value) {        let checkedCount = value.length;        for (let i = 0; i < this.list.length; i++) {          let flag = value.includes(this.list[i].code);          if (flag) {            this.list[i].checked = true          } else {            this.list[i].checked = false          }        }        this.checkedList = value;        this.isIndeterminate = checkedCount > 0 && checkedCount < this.list.length;      },      // 全选      checkAll() {        this.checkedList = []        for (let i = 0; i < this.list.length; i++) {          this.$set(this.list[i], 'checked', true)        }        this.list.forEach(item => {          if (item.checked) {            this.checkedList.push(item.code)          }        })        this.isIndeterminate = false;      },      // 反选      Inverse() {        this.checkedList = []        for (let i = 0; i < this.list.length; i++) {          let flag = this.list[i].checked;          this.$set(this.list[i], 'checked', !flag)        }        this.list.forEach(item => {          if (item.checked) {            this.checkedList.push(item.code)          }        })      },      changeSize(val) {        this.Pagination.PageSize = val        // this.getList()      },      changeCurrent(val) {        this.Pagination.PageIndex = val        // this.getList()      },    }  }</script><style lang="scss">  .card_content_interior {    display: flex;    background-color: #fff;    border-radius: 5px;    box-shadow: 0 2px 4px rgba(0, 0, 0, .05);    margin-top: 15px;  }  .left_interior {    width: 20%;    padding: 10px;  }  .right_interior {    width: 80%;  }  .span-ellipsis {    width: 100%;    overflow: hidden;    white-space: nowrap;    text-overflow: ellipsis;    margin-right: 20px;  }  .card_checkbox_analyse {    width: 100%;    padding: 10px 0px;    margin-right: 0px !important;  }  .analyse_title {    display: flex;    margin-left: 20rpx;    flex-direction: column;    .item_title1 {      font-size: 16px;    }    .item_title2 {      font-size: 14px;      margin-top: 5px;    }  }  .title_invert {    font-size: 14px;    cursor: pointer;    color: red;    margin-left: 10px;  }</style>
 |