File tree Expand file tree Collapse file tree 7 files changed +27
-4
lines changed
Expand file tree Collapse file tree 7 files changed +27
-4
lines changed Original file line number Diff line number Diff line change @@ -75,7 +75,7 @@ interface IEditorOption {
7575 lineNumber? : ILineNumberOption // LineNumber option. {size?:number; font?:string; color?:string; disabled?:boolean; right?:number}
7676 pageBorder? : IPageBorderOption // PageBorder option. {color?:string; lineWidth:number; padding?:IPadding; disabled?:boolean;}
7777 badge? : IBadgeOption // Badge option. {top?:number; left?:number}
78- modeRule? : IModeRule // mode rule option. {print:{imagePreviewerDisabled?: boolean}; readonly:{imagePreviewerDisabled?: boolean}}
78+ modeRule? : IModeRule // mode rule option. {print:{imagePreviewerDisabled?: boolean}; readonly:{imagePreviewerDisabled?: boolean}; form:{controlDeletableDisabled?: boolean} }
7979}
8080```
8181
Original file line number Diff line number Diff line change @@ -75,7 +75,7 @@ interface IEditorOption {
7575 lineNumber? : ILineNumberOption // 行号配置。{size?:number; font?:string; color?:string; disabled?:boolean; right?:number}
7676 pageBorder? : IPageBorderOption // 页面边框配置。{color?:string; lineWidth:number; padding?:IPadding; disabled?:boolean;}
7777 badge? : IBadgeOption // 徽章配置。{top?:number; left?:number}
78- modeRule? : IModeRule // 编辑器模式规则配置。{print:{imagePreviewerDisabled?: boolean}; readonly:{imagePreviewerDisabled?: boolean}}
78+ modeRule? : IModeRule // 编辑器模式规则配置。{print:{imagePreviewerDisabled?: boolean}; readonly:{imagePreviewerDisabled?: boolean}; form:{controlDeletableDisabled?: boolean} }
7979}
8080```
8181
Original file line number Diff line number Diff line change @@ -784,7 +784,7 @@ export class Draw {
784784 options ?: ISpliceElementListOption
785785 ) {
786786 const { isIgnoreDeletedRule = false } = options || { }
787- const { group } = this . options
787+ const { group, modeRule } = this . options
788788 if ( deleteCount > 0 ) {
789789 // 当最后元素与开始元素列表信息不一致时:清除当前列表信息
790790 const endIndex = start + deleteCount
@@ -824,6 +824,9 @@ export class Draw {
824824 deleteElement ?. area ?. hide ||
825825 ( tdDeletable !== false &&
826826 deleteElement ?. control ?. deletable !== false &&
827+ ( ! deleteElement . controlId ||
828+ this . mode !== EditorMode . FORM ||
829+ ! modeRule [ this . mode ] . controlDeletableDisabled ) &&
827830 deleteElement ?. title ?. deletable !== false &&
828831 ( group . deletable !== false || ! deleteElement . groupIds ?. length ) &&
829832 ( deleteElement ?. area ?. deletable !== false ||
Original file line number Diff line number Diff line change 33 ControlState ,
44 ControlType
55} from '../../../dataset/enum/Control'
6- import { EditorZone } from '../../../dataset/enum/Editor'
6+ import { EditorMode , EditorZone } from '../../../dataset/enum/Editor'
77import { ElementType } from '../../../dataset/enum/Element'
88import { DeepRequired } from '../../../interface/Common'
99import {
@@ -643,6 +643,14 @@ export class Control {
643643 ) {
644644 const { deletable = true } = startElement . control !
645645 if ( ! deletable ) return null
646+ // 表单模式控件删除权限验证
647+ const mode = this . draw . getMode ( )
648+ if (
649+ mode === EditorMode . FORM &&
650+ this . options . modeRule [ mode ] . controlDeletableDisabled
651+ ) {
652+ return null
653+ }
646654 }
647655 let leftIndex = - 1
648656 let rightIndex = - 1
Original file line number Diff line number Diff line change @@ -11,5 +11,8 @@ export const defaultModeRuleOption: Readonly<DeepRequired<IModeRule>> = {
1111 } ,
1212 readonly : {
1313 imagePreviewerDisabled : false
14+ } ,
15+ form : {
16+ controlDeletableDisabled : false
1417 }
1518}
Original file line number Diff line number Diff line change @@ -145,7 +145,12 @@ export interface IReadonlyModeRule {
145145 imagePreviewerDisabled ?: boolean
146146}
147147
148+ export interface IFormModeRule {
149+ controlDeletableDisabled ?: boolean
150+ }
151+
148152export interface IModeRule {
149153 [ EditorMode . PRINT ] ?: IPrintModeRule
150154 [ EditorMode . READONLY ] ?: IReadonlyModeRule
155+ [ EditorMode . FORM ] ?: IFormModeRule
151156}
Original file line number Diff line number Diff line change @@ -141,6 +141,10 @@ export function mergeOption(
141141 readonly : {
142142 ...defaultModeRuleOption . readonly ,
143143 ...options . modeRule ?. readonly
144+ } ,
145+ form : {
146+ ...defaultModeRuleOption . form ,
147+ ...options . modeRule ?. form
144148 }
145149 }
146150
You can’t perform that action at this time.
0 commit comments