From a4d7993d0b44faffe2e548250a9d2bc27c77e521 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期三, 19 七月 2023 12:27:46 +0800 Subject: [PATCH] 集成获取分类接口(包含编码规则码段码值信息) --- Source/UBCS-WEB/dist/src/mixins/crud.js | 209 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 209 insertions(+), 0 deletions(-) diff --git a/Source/UBCS-WEB/dist/src/mixins/crud.js b/Source/UBCS-WEB/dist/src/mixins/crud.js new file mode 100644 index 0000000..0f32858 --- /dev/null +++ b/Source/UBCS-WEB/dist/src/mixins/crud.js @@ -0,0 +1,209 @@ +import {mapGetters} from "vuex"; + +export default (app, option = {}) => { + const mixins = { + data() { + return { + selectionList: [], + data: [], + form: {}, + params: {}, + loading: false, + api: require(`@/api/${option.name}`), + option: require(`@/option/${option.name}`).default, + page: { + pageSizes: [10, 30, 50, 100, 200], + pageSize: 10 + }, + } + }, + computed: { + ...mapGetters(['userInfo', 'permission', 'roles']), + ids() { + const ids = []; + this.selectionList.forEach(ele => { + ids.push(ele[this.rowKey]); + }); + return ids.join(","); + }, + bindVal() { + return { + ref: 'crud', + option: this.option, + data: this.data, + tableLoading: this.loading + } + }, + onEvent() { + return { + 'on-load': this.getList, + 'row-save': this.rowSave, + 'row-update': this.rowUpdate, + 'row-del': this.rowDel, + 'selection-change': this.selectionChange, + 'refresh-change': this.refreshChange, + 'date-change': this.dateChange, + 'search-change': this.searchChange, + 'search-reset': this.searchChange + } + }, + rowKey() { + return this.option.rowKey || option.rowKey || 'id' + } + }, + methods: { + getList() { + const callback = () => { + this.loading = true; + this.api[option.list || 'getList'](this.page.currentPage, this.page.pageSize, this.params).then(res => { + let data; + if (option.res) { + data = option.res(res.data); + } else { + data = res.data.data; + } + this.page.total = data[option.total || 'total'] || 0; + this.data = data[option.records || 'records']; + if (this.listAfter) { + this.listAfter(data); + } + this.loading = false; + }) + } + if (this.listBefore) { + this.listBefore(); + } + callback(); + }, + rowSave(row, done, loading) { + const callback = () => { + delete this.form.params; + this.api[option.add || 'add'](this.form).then((data) => { + this.getList(); + if (this.addAfter) { + this.addAfter(data); + } else { + this.$message.success('鏂板鎴愬姛'); + } + done(); + }).catch(() => { + loading(); + }) + } + if (this.addBefore) { + this.addBefore(); + } + callback(); + }, + rowUpdate(row, index, done, loading) { + const callback = () => { + delete this.form.params; + this.api[option.update || 'update'](this.form).then((data) => { + this.getList(); + if (this.updateAfter) { + this.updateAfter(data); + } else { + this.$message.success('鏇存柊鎴愬姛'); + } + done(); + }).catch(() => { + loading(); + }) + } + if (this.updateBefore) { + this.updateBefore(); + } + callback(); + }, + rowDel(row, index) { + const callback = () => { + this.api[option.del || 'remove'](row[this.rowKey], row).then((data) => { + this.getList(); + if (this.delAfter) { + this.delAfter(data, row, index) + } else { + this.$message.success('鍒犻櫎鎴愬姛'); + } + }) + } + if (this.delBefore) { + this.delBefore(); + callback(); + } else { + this.$confirm('纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + callback(); + }) + } + }, + handleDelete() { + if (this.selectionList.length === 0) { + this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�"); + return; + } + this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }) + .then(() => { + this.api[option.del || 'remove'](this.ids).then((data) => { + this.getList(); + if (this.delMultiAfter) { + this.delMultiAfter(data, this.ids); + } else { + this.$message.success('鍒犻櫎鎴愬姛'); + } + }); + }); + }, + searchChange(params, done) { + if (done) done(); + if (this.validatenull(params)) { + Object.keys(this.params).forEach(ele => { + if (!['createTime_dategt', 'createTime_datelt'].includes(ele)) { + delete this.params[ele]; + } + }) + } else { + Object.keys(params).forEach(ele => { + if (this.validatenull(params[ele])) { + delete this.params[ele]; + delete params[ele]; + } + }) + } + this.params = Object.assign(this.params, params); + this.page.currentPage = 1; + this.getList(); + }, + dateChange(date) { + if (date) { + this.params.createTime_dategt = date[0]; + this.params.createTime_datelt = date[1]; + } else { + delete this.params.createTime_dategt; + delete this.params.createTime_datelt; + } + this.page.currentPage = 1; + this.getList(); + }, + selectionChange(list) { + this.selectionList = list; + }, + selectionClear() { + this.selectionList = []; + this.$refs.crud.toggleSelection(); + }, + refreshChange() { + this.getList(); + } + } + } + app.mixins = app.mixins || []; + app.mixins.push(mixins); + return app; +} -- Gitblit v1.9.3