feat:add checkbox control menu
This commit is contained in:
+3
-2
@@ -164,8 +164,9 @@
|
|||||||
<i></i>
|
<i></i>
|
||||||
<div class="options">
|
<div class="options">
|
||||||
<ul>
|
<ul>
|
||||||
<li data-control='text'>文本型</li>
|
<li data-control='text'>文本</li>
|
||||||
<li data-control="select">列举型</li>
|
<li data-control="select">列举</li>
|
||||||
|
<li data-control="checkbox">复选框</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -274,6 +274,7 @@ export class Control {
|
|||||||
const elementList = this.getElementList()
|
const elementList = this.getElementList()
|
||||||
const startElement = elementList[startIndex]
|
const startElement = elementList[startIndex]
|
||||||
const control = startElement.control!
|
const control = startElement.control!
|
||||||
|
if (!control.placeholder) return
|
||||||
const placeholderStrList = control.placeholder.split('')
|
const placeholderStrList = control.placeholder.split('')
|
||||||
for (let p = 0; p < placeholderStrList.length; p++) {
|
for (let p = 0; p < placeholderStrList.length; p++) {
|
||||||
const value = placeholderStrList[p]
|
const value = placeholderStrList[p]
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ export interface IControlCheckbox {
|
|||||||
export interface IControlBasic {
|
export interface IControlBasic {
|
||||||
type: ControlType;
|
type: ControlType;
|
||||||
value: IElement[] | null;
|
value: IElement[] | null;
|
||||||
placeholder: string;
|
placeholder?: string;
|
||||||
conceptId?: string;
|
conceptId?: string;
|
||||||
prefix?: string;
|
prefix?: string;
|
||||||
postfix?: string;
|
postfix?: string;
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ export function formatElementList(elementList: IElement[], options: IFormatEleme
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else if (placeholder) {
|
||||||
// placeholder
|
// placeholder
|
||||||
const thePlaceholderArgs: Pick<IElement, 'color'> = {}
|
const thePlaceholderArgs: Pick<IElement, 'color'> = {}
|
||||||
if (editorOptions && editorOptions.control) {
|
if (editorOptions && editorOptions.control) {
|
||||||
|
|||||||
+34
-2
@@ -415,7 +415,7 @@ window.onload = function () {
|
|||||||
switch (type) {
|
switch (type) {
|
||||||
case ControlType.TEXT:
|
case ControlType.TEXT:
|
||||||
new Dialog({
|
new Dialog({
|
||||||
title: '文本型控件',
|
title: '文本控件',
|
||||||
data: [{
|
data: [{
|
||||||
type: 'text',
|
type: 'text',
|
||||||
label: '占位符',
|
label: '占位符',
|
||||||
@@ -449,7 +449,7 @@ window.onload = function () {
|
|||||||
break
|
break
|
||||||
case ControlType.SELECT:
|
case ControlType.SELECT:
|
||||||
new Dialog({
|
new Dialog({
|
||||||
title: '列举型控件',
|
title: '列举控件',
|
||||||
data: [{
|
data: [{
|
||||||
type: 'text',
|
type: 'text',
|
||||||
label: '占位符',
|
label: '占位符',
|
||||||
@@ -487,6 +487,38 @@ window.onload = function () {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
break
|
break
|
||||||
|
case ControlType.CHECKBOX:
|
||||||
|
new Dialog({
|
||||||
|
title: '复选框控件',
|
||||||
|
data: [{
|
||||||
|
type: 'text',
|
||||||
|
label: '默认值',
|
||||||
|
name: 'code',
|
||||||
|
placeholder: '请输入默认值,多个值以英文逗号分割'
|
||||||
|
}, {
|
||||||
|
type: 'textarea',
|
||||||
|
label: '值集',
|
||||||
|
name: 'valueSets',
|
||||||
|
height: 100,
|
||||||
|
placeholder: `请输入值集JSON,例:\n[{\n"value":"有",\n"code":"98175"\n}]`
|
||||||
|
}],
|
||||||
|
onConfirm: (payload) => {
|
||||||
|
const valueSets = payload.find(p => p.name === 'valueSets')?.value
|
||||||
|
if (!valueSets) return
|
||||||
|
const code = payload.find(p => p.name === 'code')?.value
|
||||||
|
instance.command.executeInsertElementList([{
|
||||||
|
type: ElementType.CONTROL,
|
||||||
|
value: '',
|
||||||
|
control: {
|
||||||
|
type,
|
||||||
|
code,
|
||||||
|
value: null,
|
||||||
|
valueSets: JSON.parse(valueSets)
|
||||||
|
}
|
||||||
|
}])
|
||||||
|
}
|
||||||
|
})
|
||||||
|
break
|
||||||
default:
|
default:
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user