From 1693e11dcccb02806029a5556ce041cfced5d3a1 Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 2 Apr 2020 13:36:25 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20=E4=BF=AE=E6=94=B9table=20=E6=B8=B2?= =?UTF-8?q?=E6=9F=93formatter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../el-data-table/el-data-table.vue | 39 ++++++++++-- .../DataTable/formatters/DetailFormatter.vue | 34 ++++++++++ src/components/DataTable/index.vue | 10 +-- src/components/ListTable/TableAction.vue | 2 +- src/components/ListTable/index.vue | 63 ++----------------- src/utils/request.js | 4 +- src/views/users/UserGroupList.vue | 14 +++-- 7 files changed, 91 insertions(+), 75 deletions(-) create mode 100644 src/components/DataTable/formatters/DetailFormatter.vue diff --git a/src/components/DataTable/compenents/el-data-table/el-data-table.vue b/src/components/DataTable/compenents/el-data-table/el-data-table.vue index 07445d388..d40f6180c 100644 --- a/src/components/DataTable/compenents/el-data-table/el-data-table.vue +++ b/src/components/DataTable/compenents/el-data-table/el-data-table.vue @@ -74,9 +74,7 @@ class="tree-ctrl" @click="toggleExpanded(scope.$index)" > - + {{ scope.row[columns[0].prop] }} @@ -92,11 +90,25 @@ @@ -119,6 +131,7 @@ v[this.id]).join(',') : data[this.id] - return this.$axios.delete(this.url + '/' + ids, this.axiosConfig) + return this.$axios.delete(this.url + '/' + ids + '/', this.axiosConfig) } }, /** @@ -750,6 +770,14 @@ export default { extraPaginationAttrs: { type: Object, default: () => {} + }, + hasSelection: { + type: Boolean, + default: true + }, + hasDetail: { + type: Boolean, + default: true } }, data() { @@ -775,6 +803,7 @@ export default { }, computed: { hasSelect() { + console.log(this.columns.length && this.columns[0].type === 'selection') return this.columns.length && this.columns[0].type === 'selection' }, selectable() { diff --git a/src/components/DataTable/formatters/DetailFormatter.vue b/src/components/DataTable/formatters/DetailFormatter.vue new file mode 100644 index 000000000..a596307f0 --- /dev/null +++ b/src/components/DataTable/formatters/DetailFormatter.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/components/DataTable/index.vue b/src/components/DataTable/index.vue index d2726d19f..f340ba139 100644 --- a/src/components/DataTable/index.vue +++ b/src/components/DataTable/index.vue @@ -30,12 +30,14 @@ export default { totalPath: 'count', saveQuery: false, // 关闭路径保存查询参数 persistSelection: true, // 切换页面 已勾选项不会丢失 - hasEdit: false, // 有编辑按钮 - hasDelete: false, - hasAction: false, // 是否有更多操作 - hasUpload: false, + hasEdit: true, // 有编辑按钮 + hasDelete: true, hasNew: false, // editText: this.$t('action.update'), // 编辑按钮文案 + operationAttrs: { + align: 'center', + width: '150px' + }, tableAttrs: { stripe: true, // 斑马纹表格 border: true, // 表格边框 diff --git a/src/components/ListTable/TableAction.vue b/src/components/ListTable/TableAction.vue index e3b9c6f31..05249bcd4 100644 --- a/src/components/ListTable/TableAction.vue +++ b/src/components/ListTable/TableAction.vue @@ -90,7 +90,7 @@ export default { console.log('Search: ', keyword) }, handleActionClick(item) { - console.log('Action: ', item) + this.$emit('clickAction', item) } } } diff --git a/src/components/ListTable/index.vue b/src/components/ListTable/index.vue index 48525fb03..a14857a8e 100644 --- a/src/components/ListTable/index.vue +++ b/src/components/ListTable/index.vue @@ -1,8 +1,8 @@ @@ -24,30 +24,9 @@ export default { default: () => {} }, // 是否显示table左侧的action - - createTitle: { - type: String, - default() { - return this.$tc('Create') - } - }, - createAction: { + actionConfig: { type: Object, - default() { - return { - type: 'primary', - name: 'create', - title: this.createTitle - } - } - }, - moreActions: { - type: Array, - default: () => [] - }, - actions: { - type: Array, - default: () => [] + default: () => ({ }) } }, data() { @@ -56,46 +35,16 @@ export default { } }, computed: { - totalActions() { - let actions = this.actions - if (this.hasCreate) { - actions = [ - this.createAction, - ... actions - ] - } - return actions - } }, methods: { handleSelectionChange(val) { - console.log('lIst table', val) this.selectRows = val this.multipleSelection = val; (val.length > 0) ? (this.selectDisable = false) : (this.selectDisable = true) }, - handleEdit: function (index, row) { - try { - this.$router.push({name: this.action.hasEdit, params: {id: row.id}}) - } catch (error) { - console.log(error) - } - }, - handleHeaderActionClick(item) { - this.$emit('headerActionClick', item, this.selectRows) - }, - handleDelete: (index, row) => { - }, - get(draw, limit, offset) { - this.loading = true - // this.getData({ draw, limit, offset }, { row: 1 }).then(response => { - // console.log(response) - // this.tabledata = response.results - // this.total = response.count - // this.loading = false - // }) + handleActionClick(item) { + console.log('Handle ', item, this.selectRows) } - } } diff --git a/src/utils/request.js b/src/utils/request.js index 8a5a56cbc..e2261db4a 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -53,9 +53,9 @@ service.interceptors.response.use( const res = response.data // if the custom code is not 20000, it is judged as an error. - if (response.status !== 200 && response.status !== 201) { + if (response.status < 200 || response.status > 300) { Message({ - message: res.message || 'Error', + message: res.message || res.error || 'Error', type: 'error', duration: 5 * 1000 }) diff --git a/src/views/users/UserGroupList.vue b/src/views/users/UserGroupList.vue index 5a3f8c0fc..f24d733c9 100644 --- a/src/views/users/UserGroupList.vue +++ b/src/views/users/UserGroupList.vue @@ -1,13 +1,15 @@