SourceList.vue 5.6 KB
<template>
  <a-card :bordered="false">
    <a-page-header
      class="demo-page-header"
      title="数据批次"
      @back="goBack"
    ></a-page-header>

    <!-- table区域-begin -->
    <div>
      <a-table
        ref="table"
        size="middle"
        :scroll="{x:true}"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        class="j-table-force-nowrap"
        @change="handleTableChange">


        <span slot="action" slot-scope="text, record">
         <a @click="handleDetail(record)">查看</a>
        </span>

      </a-table>
    </div>

  </a-card>
</template>

<script>

  import '@/assets/less/TableExpand.less'
  import { mixinDevice } from '@/utils/mixin'
  import { getAction } from '@api/manage'
  import { filterObj } from '@/utils/util'

  export default {
    name: 'SourceStatistics',
    mixins:[ mixinDevice],
    components: {

    },
    data () {
      return {
        description: '来源数据管理管理页面',
        // 表头
        columns: [
          {
            title:'数据批次',
            align:"center",
            dataIndex: 'batch'
          },
          {
            title:'单位名称',
            align:"center",
            dataIndex: 'name_dictText'
          },
          {
            title:'更新时间',
            align:"center",
            dataIndex: 'createTime'
          },
          {
            title:'数据条数',
            align:"center",
            dataIndex: 'total'
          }
        ],
        url: {
          list: "/sys/source/list",
          delete: "/sys/source/delete",
          deleteBatch: "/sys/source/deleteBatch",
          exportXlsUrl: "/sys/source/exportXls",
          importExcelUrl: "sys/source/importExcel",

        },
        dictOptions:{},
        superFieldList:[],
        /* 排序参数 */
        isorter:{
          column: 'createTime',
          order: 'desc',
        },
        /* 筛选参数 */
        filters: {},
        /* 查询条件-请不要在queryParam中声明非字符串值的属性 */
        queryParam: {},
        /* 分页参数 */
        ipagination:{
          current: 1,
          pageSize: 10,
          pageSizeOptions: ['10', '20', '30'],
          showTotal: (total, range) => {
            return range[0] + "-" + range[1] + " 共" + total + "条"
          },
          showQuickJumper: true,
          showSizeChanger: true,
          total: 0
        },
        /* 数据源 */
        dataSource:[],
        /* table加载状态 */
        loading:false,
        /* table选中keys*/
        selectedRowKeys: [],
        /* table选中records*/
        selectionRows: [],
        /* 查询折叠 */
        toggleSearchStatus:false,
      }
    },
    created() {
    },
    computed: {
      importExcelUrl: function(){
        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
      },
    },
    methods: {
      getData(unitName){
        this.queryParam={
          name:unitName
        }
        this.loadData(1)
      },
      goBack(){
        this.$emit('to_statistics');
      },
      loadData(arg) {
        if(!this.url.list){
          this.$message.error("请设置url.list属性!")
          return
        }
        //加载数据 若传入参数1则加载第一页的内容
        if (arg === 1) {
          this.ipagination.current = 1;
        }
        var params = this.getQueryParams();//查询条件
        this.loading = true;
        getAction(this.url.list, params).then((res) => {
          if (res.success) {
            //update-begin---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
            this.dataSource = res.result.records||res.result;
            if(res.result.total)
            {
              this.ipagination.total = res.result.total;
            }else{
              this.ipagination.total = 0;
            }
            //update-end---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
          }
          if(res.code===510){
            this.$message.warning(res.message)
          }
          this.loading = false;
        })
      },
      getQueryParams() {
        //获取查询条件
        let sqp = {}
        var param = Object.assign(sqp, this.queryParam, this.isorter ,this.filters);
        param.field = this.getQueryField();
        param.pageNo = this.ipagination.current;
        param.pageSize = this.ipagination.pageSize;
        return filterObj(param);
      },
      getQueryField() {
        //TODO 字段权限控制
        var str = "id,";
        this.columns.forEach(function (value) {
          str += "," + value.dataIndex;
        });
        return str;
      },
      handleTableChange(pagination, filters, sorter) {
        //分页、排序、筛选变化时触发
        //TODO 筛选
        console.log(pagination)
        if (Object.keys(sorter).length > 0) {
          this.isorter.column = sorter.field;
          this.isorter.order = "ascend" == sorter.order ? "asc" : "desc"
        }
        this.ipagination = pagination;
        this.loadData();
      },
      initDictConfig(){
      },
      getSuperFieldList(){
        let fieldList=[];
        fieldList.push({type:'string',value:'name',text:'单位名称',dictCode:''})
        fieldList.push({type:'int',value:'batch',text:'数据批次',dictCode:''})
        fieldList.push({type:'int',value:'total',text:'总条数',dictCode:''})
        this.superFieldList = fieldList
      }
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
  .demo-page-header{
    opacity: 0.6;
  }

</style>