diff --git a/web/src/components/index.js b/web/src/components/index.js index b6e9998..bd9bc1f 100644 --- a/web/src/components/index.js +++ b/web/src/components/index.js @@ -3,6 +3,7 @@ import Vue from 'vue' import d2Container from './d2-container' import tableProgress from './table-progress/lib/table-progress.vue' import cardSelect from '@/components/card-select/index' +import selectorTable from '@/components/selector-table/index' // 注意 有些组件使用异步加载会有影响 Vue.component('d2-container', d2Container) Vue.component('d2-icon', () => import('./d2-icon')) @@ -14,4 +15,5 @@ Vue.component('d2p-tree-selector', () => import('./tree-selector/lib/tree-select Vue.component('dept-format', () => import('./dept-format/lib/dept-format.vue')) Vue.component('dvaHtml2pdf', () => import('./dvaHtml2pdf/index.vue')) Vue.component('table-progress', tableProgress) +Vue.use(selectorTable) Vue.use(cardSelect) diff --git a/web/src/components/selector-table/selector-table.vue b/web/src/components/selector-table/selector-table.vue index 2968875..d76c824 100644 --- a/web/src/components/selector-table/selector-table.vue +++ b/web/src/components/selector-table/selector-table.vue @@ -92,6 +92,7 @@ export default { default () { return { tableConfig: { + pagination: true, multiple: false, columns: [] } @@ -160,10 +161,10 @@ export default { handler (newValue, oldVal) { const { tableConfig } = this._elProps // 是否多选 - if (!tableConfig.multiple) { - this.currentValue = [newValue] - } else { + if (tableConfig.multiple) { this.currentValue = newValue + } else { + this.currentValue = [newValue] } }, deep: true, @@ -196,19 +197,27 @@ export default { methods: { // 设置显示值 setCurrentValue (val) { + const params = {} + if (this._elProps.tableConfig.pagination) { + params.page = this.pageConfig.page + params.limit = this.pageConfig.limit + } if (val.toString().length > 0) { // 在这里对 传入的value值做处理 const { url, value, label } = this.dict - const params = {} params[value] = val + params.query = `{${label},${value}}` return request({ url: url, params: params, method: 'get' }).then(res => { - const { data } = res.data - if (data && data.length > 0) { - this.currentValue = data + const { data, page, limit, total } = res + this.pageConfig.page = page + this.pageConfig.limit = limit + this.pageConfig.total = total + if (data.data && data.data.length > 0) { + this.currentValue = data.data } else { this.currentValue = null } @@ -220,6 +229,7 @@ export default { // 获取数据 getDict () { const that = this + const { value, label } = this.dict let url if (typeof that.dict.url === 'function') { const form = that.d2CrudContext.getForm() @@ -233,7 +243,8 @@ export default { } const params = { page: that.pageConfig.page, - limit: that.pageConfig.limit + limit: that.pageConfig.limit, + query: `{${label},${value}}` } if (that.search) { params.search = that.search @@ -269,6 +280,7 @@ export default { const { tableConfig } = that._elProps if (tableConfig.multiple) { that.$refs.tableRef.clearSelection() // 先清空选择,再赋值选择 + // eslint-disable-next-line no-unused-expressions that.currentValue ? that.currentValue.forEach(item => { that.$refs.tableRef.toggleRowSelection(item, true) }) : null @@ -333,6 +345,7 @@ export default { this.$emit('input', '') this.$emit('change', '') } else { + // eslint-disable-next-line no-unused-expressions this.$refs.tableRef?.toggleRowSelection(obj, false) // const { value } = this.dict // const result = this.currentValue.map((item) => {