From df1f1db7a62a717d528ef5aa78bebc9486105ceb Mon Sep 17 00:00:00 2001 From: BoBoooooo <17746714@qq.com> Date: Sat, 9 Jan 2021 12:00:00 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=96=B0=E5=A2=9EreadOnly=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E6=8E=A7=E5=88=B6=E8=A1=A8=E6=A0=BC=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=85=A8=E5=B1=80=E5=8F=AA=E8=AF=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- src/component/crud-table/src/CrudTable.vue | 15 ++- .../crud-table/src/GenerateFormDialog.vue | 13 +- .../form-designer/src/GenerateForm.vue | 35 +----- .../form-designer/src/GenerateFormItem.vue | 117 ++++++------------ src/demo/App.vue | 2 +- 6 files changed, 61 insertions(+), 123 deletions(-) diff --git a/README.md b/README.md index 4e10e36..714c456 100644 --- a/README.md +++ b/README.md @@ -149,7 +149,7 @@ npm i element-pro-crud -S | :--------------------: | :---------------------------------------------------------------: | :-------------: | :-------------------------------------: | :-------: | | `el-table props` | el-table原生属性见文档 | https://element.eleme.cn/#/zh-CN/component/table | | listField | response 中数据位置 | String | data/data.list | data.list | -| setReadOnly | GenerateFormDialog 中的表单禁用.null 表示均可编辑;{}表示全部只读; | Object | null/{}/{whiteList:{},blackList:{}} | null | | +| readOnly | GenerateFormDialog 中的表单禁用.null 表示均可编辑;{}表示全部只读; | Boolean | true/false | false | | | isMultiple | 是否开启多选 | Boolean | true,false | false | | emptyText | 列表数据为空时显示文字 | String | - | 暂无数据 | | prefill | 表单预填项(赋值初始值) | Object | - | null | diff --git a/src/component/crud-table/src/CrudTable.vue b/src/component/crud-table/src/CrudTable.vue index 75574d3..6051847 100644 --- a/src/component/crud-table/src/CrudTable.vue +++ b/src/component/crud-table/src/CrudTable.vue @@ -196,7 +196,7 @@ :formTableConfig="formTableConfig" :remoteFuncs="remoteFuncs" :visibleList="view" - :setReadOnly="setReadOnly" + :readOnly="readOnly" :append-to-body="dialogAppendToBody" :close_on_click_modal="dialogCloseOnClickModal" :fullscreen="dialogFullscreen" @@ -288,7 +288,7 @@ export default class CrudTable extends Vue { listField!: string; // 设置只读 - @Prop({ default: null, type: Object }) setReadOnly!: any; + @Prop({ default: false, type: Boolean }) readOnly!: any; // 添加对话框预填项 @Prop({ default: null, type: Object }) prefill!: any; @@ -501,7 +501,7 @@ export default class CrudTable extends Vue { // 内部元素显示控制 get view() { - return { + const viewObj = { searchForm: true, tableTitle: false, btnAdd: true, @@ -515,6 +515,15 @@ export default class CrudTable extends Vue { btnAddOnColumnHeader: false, ...this.visibleList, }; + // 只读模式隐藏添加编辑删除按钮 + if (this.readOnly) { + viewObj.btnAdd = false; + viewObj.btnAddOnColumnHeader = false; + viewObj.actionColumnBtnDel = false; + viewObj.actionColumnBtnEdit = false; + viewObj.actionColumnBtnDetail = true; + } + return viewObj; } diff --git a/src/component/crud-table/src/GenerateFormDialog.vue b/src/component/crud-table/src/GenerateFormDialog.vue index 7b7d0e1..182d714 100644 --- a/src/component/crud-table/src/GenerateFormDialog.vue +++ b/src/component/crud-table/src/GenerateFormDialog.vue @@ -18,7 +18,7 @@ -