List.vue 3.0 KB
Newer Older
aaronchen2k2k's avatar
aaronchen2k2k 已提交
1 2 3
<template>
  <div>
    <div class="head">
aaronchen2k2k's avatar
aaronchen2k2k 已提交
4
      <div class="title">字段列表</div>
5 6 7
      <div class="filter">
        <a-input-search v-model="keywords" @change="onSearch" :allowClear="true" placeholder="输入关键字检索" style="width: 300px" />
      </div>
aaronchen2k2k's avatar
aaronchen2k2k 已提交
8 9 10 11 12
      <div class="buttons">
        <a-button type="primary" @click="create()">新建</a-button>
      </div>
    </div>

13
    <a-table :columns="columns" :data-source="models" :pagination="false" rowKey="id">
aaronchen2k2k's avatar
aaronchen2k2k 已提交
14 15 16 17 18 19 20 21
      <span slot="folderWithPath" slot-scope="text, record">
        <a-tooltip placement="top" overlayClassName="tooltip-light">
          <template slot="title">
            <span>{{record.path}}</span>
          </template>
          {{record.folder}}
        </a-tooltip>
      </span>
aaronchen2k2k's avatar
aaronchen2k2k 已提交
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

      <span slot="action" slot-scope="record">
        <a @click="edit(record)">编辑</a> |

        <a-popconfirm
            title="确认删除?"
            ok-text="是"
            cancel-text="否"
            @confirm="remove(record)"
        >
          <a href="#">删除</a>
        </a-popconfirm>
      </span>
    </a-table>

37 38 39 40
    <div class="pagination-wrapper">
      <a-pagination @change="onPageChange" :current="page" :total="total" :defaultPageSize="15" />
    </div>

aaronchen2k2k's avatar
aaronchen2k2k 已提交
41 42 43 44 45 46
  </div>
</template>

<script>

import {listConfig, removeConfig} from "../../../../api/manage";
47 48
import {PageSize} from "../../../../api/utils";
import debounce from "lodash.debounce"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
49 50 51 52 53 54 55

const columns = [
  {
    title: '名称',
    dataIndex: 'title',
  },
  {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
56 57
    title: '引用名',
    dataIndex: 'referName',
aaronchen2k2k's avatar
aaronchen2k2k 已提交
58 59
  },
  {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
60 61 62
    title: '目录',
    dataIndex: 'folder',
    scopedSlots: { customRender: 'folderWithPath' },
aaronchen2k2k's avatar
aaronchen2k2k 已提交
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
  },
  {
    title: '操作',
    key: 'action',
    scopedSlots: { customRender: 'action' },
  },
];

export default {
  name: 'ConfigList',
  components: {
  },
  data() {
    return {
      models: [],
      columns,

      designVisible: false,
      designModel: {},
      time: 0,
83 84 85 86 87

      keywords: '',
      page: 1,
      total: 0,
      pageSize: PageSize,
aaronchen2k2k's avatar
aaronchen2k2k 已提交
88 89 90 91 92 93 94 95 96 97 98 99
    };
  },
  computed: {

  },
  created () {
    this.loadData()
  },
  mounted () {
  },
  methods: {
    create() {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
100
      this.$router.push({path: '/data/buildin/config/edit/0'});
aaronchen2k2k's avatar
aaronchen2k2k 已提交
101 102
    },
    loadData() {
103
      listConfig(this.keywords, this.page).then(json => {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
104 105
        console.log('listConfig', json)
        this.models = json.data
106
        this.total = json.total
aaronchen2k2k's avatar
aaronchen2k2k 已提交
107 108 109 110
      })
    },
    edit(record) {
      console.log(record)
aaronchen2k2k's avatar
aaronchen2k2k 已提交
111
      this.$router.push({path: `/data/buildin/config/edit/${record.id}`});
aaronchen2k2k's avatar
aaronchen2k2k 已提交
112 113 114 115 116 117 118 119
    },
    remove(record) {
      console.log(record)
      removeConfig(record.id).then(json => {
        console.log('removeConfig', json)
        this.loadData()
      })
    },
120

aaronchen2k2k's avatar
aaronchen2k2k 已提交
121 122 123
    onPageChange(page, pageSize) {
      console.log('onPageChange', page, pageSize)
      this.page= page
124 125 126 127 128 129
      this.loadData()
    },
    onSearch: debounce(function() {
      console.log('onSearch', this.keywords)
      this.loadData()
    }, 500),
aaronchen2k2k's avatar
aaronchen2k2k 已提交
130 131 132 133 134 135 136
  }
}
</script>

<style scoped>

</style>