amis2/examples/components/Form/Combo.jsx
2019-09-04 23:36:19 +08:00

677 lines
32 KiB
JavaScript

export default {
$schema: "https://houtai.baidu.com/v2/schemas/page.json#",
title: "Combo 示例",
body: [
{
type: "tabs",
tabs: [
{
title: "基本用法",
hash: 'basic',
body: [
{
type: "form",
api: "/api/mock2/saveForm?waitSeconds=2",
title: "",
mode: "horizontal",
wrapWithPanel: false,
className: "m-t",
// debug: true,
controls: [
{
type: 'text',
label: '文本',
name: 'a'
},
{
type: 'divider'
},
{
type: "combo",
name: "combo1",
label: "组合多条多行",
multiple: true,
multiLine: true,
value: [{}],
controls: [
{
name: "a",
label: "文本",
type: "text",
placeholder: "文本",
value: '',
size: 'full'
},
{
name: "b",
label: "选项",
type: "select",
options: ["a", "b", "c"],
size: 'full'
}
]
},
{
type: "button",
label: "独立排序",
level: "dark",
className: "m-t-n-xs",
size: "sm",
actionType: "dialog",
visibleOn: "data.combo1.length > 1",
dialog: {
title: "对 Combo 进行 拖拽排序",
body: {
type: "form",
controls: [
{
type: "combo",
name: "combo1",
label: false,
multiple: true,
draggable: true,
addable: false,
removable: false,
value: [{}],
controls: [
{
name: "a",
type: "static",
tpl: "${a} - ${b}"
}
]
}
]
},
actions: [
{
type: "submit",
mergeData: true,
label: "确认",
level: "primary"
},
{
type: "button",
actionType: "close",
label: "取消"
}
]
}
},
{
type: "combo",
name: "combo2",
label: "组合多条单行",
multiple: true,
value: [{}],
controls: [
{
name: "a",
type: "text",
placeholder: "文本",
value: ''
},
{
name: "b",
type: "select",
options: ["a", "b", "c"]
}
]
},
{
type: 'divider'
},
{
type: "combo",
name: "combo3",
label: "组合单条多行",
multiLine: true,
controls: [
{
name: "a",
label: "文本",
type: "text",
placeholder: "文本",
value: '',
size: 'full'
},
{
name: "b",
label: "选项",
type: "select",
options: ["a", "b", "c"]
}
]
},
{
type: "combo",
name: "combo4",
label: "组合单条单行",
controls: [
{
name: "a",
type: "text",
placeholder: "文本",
value: '',
size: 'full'
},
{
name: "b",
type: "select",
options: ["a", "b", "c"]
}
]
}
]
}
]
},
{
title: "内联样式",
hash: 'inline',
body: [
{
type: "form",
api: "/api/mock2/saveForm?waitSeconds=2",
title: "",
mode: "horizontal",
wrapWithPanel: false,
className: "m-t",
controls: [
{
type: "combo",
name: "combo11",
label: "组合多条多行内联",
multiple: true,
multiLine: true,
inline: true,
value: [{}],
controls: [
{
name: "a",
label: "文本",
type: "text",
placeholder: "文本",
value: ''
},
{
name: "b",
label: "选项",
type: "select",
options: ["a", "b", "c"]
}
]
},
{
type: "combo",
name: "combo22",
label: "组合多条单行内联",
multiple: true,
inline: true,
value: [{}],
controls: [
{
name: "a",
type: "text",
placeholder: "文本",
value: ''
},
{
name: "b",
type: "select",
options: ["a", "b", "c"]
}
]
},
{
type: 'divider'
},
{
type: "combo",
name: "combo33",
label: "组合单条多行内联",
multiLine: true,
inline: true,
controls: [
{
name: "a",
label: "文本",
type: "text",
placeholder: "文本",
value: ''
},
{
name: "b",
label: "选项",
type: "select",
options: ["a", "b", "c"]
}
]
},
{
type: "combo",
name: "combo44",
label: "组合单条单行内联",
inline: true,
controls: [
{
name: "a",
type: "text",
placeholder: "文本",
value: ''
},
{
name: "b",
type: "select",
options: ["a", "b", "c"]
}
]
}
]
}
]
},
{
title: "唯一验证",
hash: 'unique',
body: [
{
type: "form",
api: "/api/mock2/saveForm?waitSeconds=2",
title: "",
mode: "horizontal",
wrapWithPanel: false,
className: "m-t",
// debug: true,
controls: [
{
type: "combo",
name: "combo666",
label: "组合多条唯一",
multiple: true,
value: [{}],
controls: [
{
name: "a",
type: "text",
placeholder: "文本",
value: '',
unique: true
},
{
name: "b",
type: "select",
options: ["a", "b", "c"],
unique: true
}
]
}
]
}
]
},
{
title: "可拖拽排序",
hash: 'sortable',
body: [
{
type: "form",
api: "/api/mock2/saveForm?waitSeconds=2",
title: "",
mode: "horizontal",
wrapWithPanel: false,
className: "m-t",
// debug: true,
controls: [
{
type: "combo",
name: "combo777",
label: "可拖拽排序",
multiple: true,
value: [{a: '1', b: "a"}, {a: '2', b: "b"}],
draggable: true,
controls: [
{
name: "a",
type: "text",
placeholder: "文本",
unique: true
},
{
name: "b",
type: "select",
options: ["a", "b", "c"],
unique: true
}
]
}
]
}
]
},
{
title: "值打平",
hash: 'flat',
body: [
{
type: "form",
api: "/api/mock2/saveForm?waitSeconds=2",
title: "",
mode: "horizontal",
wrapWithPanel: false,
className: "m-t",
// debug: true,
controls: [
{
type: "combo",
name: "combo888",
label: "可打平只存储值",
multiple: true,
flat: true,
value: ["red", "pink"],
draggable: true,
controls: [
{
name: "a",
type: "color",
placeholder: "选取颜色"
}
]
},
{
type: "static",
name: "combo888",
label: "当前值",
tpl: "<pre>${combo888|json}</pre>"
}
]
}
]
},
{
title: "条件",
hash: 'conditions',
body: [
{
type: "form",
api: "/api/mock2/saveForm?waitSeconds=2",
title: "",
mode: "horizontal",
wrapWithPanel: false,
className: "m-t",
// debug: true,
controls: [
'<p class="m-b-xl">添加时可选择类型,比如这个栗子,可以选择是文本类型还是数字类型</p>',
{
type: 'combo',
name: 'combo-conditions1',
label: '单选',
value: {
type: "number"
},
multiLine: true,
conditions: [
{
label: '文本',
test: 'this.type === "text"',
scaffold: {
type: "text",
label: "文本",
name: ""
},
controls: [
{
label: "名称",
name: "label",
type: "text"
},
{
label: "字段名",
name: "name",
type: "text"
},
]
},
{
label: '数字',
test: 'this.type === "number"',
scaffold: {
type: "number",
label: "数字",
name: ""
},
controls: [
{
label: "名称",
name: "label",
type: "text"
},
{
label: "字段名",
name: "name",
type: "text"
},
{
label: "最小值",
name: "min",
type: "number"
},
{
label: "最大值",
name: "max",
type: "number"
},
{
label: "步长",
name: "step",
type: "number"
}
]
}
],
},
{
type: 'combo',
name: 'combo-conditions2',
label: '多选',
value: [
{
type: "text"
}
],
multiLine: true,
multiple: true,
typeSwitchable: false,
conditions: [
{
label: '文本',
test: 'this.type === "text"',
scaffold: {
type: "text",
label: "文本",
name: ""
},
controls: [
{
label: "名称",
name: "label",
type: "text"
},
{
label: "字段名",
name: "name",
type: "text"
},
]
},
{
label: '数字',
test: 'this.type === "number"',
scaffold: {
type: "number",
label: "数字",
name: ""
},
controls: [
{
label: "名称",
name: "label",
type: "text"
},
{
label: "字段名",
name: "name",
type: "text"
},
{
label: "最小值",
name: "min",
type: "number"
},
{
label: "最大值",
name: "max",
type: "number"
},
{
label: "步长",
name: "step",
type: "number"
}
]
}
],
}
]
}
]
},
{
title: "Tabs",
hash: "tabs",
body: [
{
type: "form",
api: "/api/mock2/saveForm?waitSeconds=2",
title: "",
mode: "horizontal",
wrapWithPanel: false,
className: "m-t",
// debug: true,
controls: [
{
type: "combo",
name: "combo101",
label: "组合多条多行",
multiple: true,
multiLine: true,
value: [{}],
tabsMode: true,
tabsStyle: 'card',
maxLength: 3,
controls: [
{
name: "a",
label: "文本",
type: "text",
placeholder: "文本",
value: '',
size: 'full'
},
{
name: "b",
label: "选项",
type: "select",
options: ["a", "b", "c"],
size: 'full'
}
]
},
]
}
]
},
{
title: "其他",
hash: 'others',
body: [
{
type: "form",
api: "/api/mock2/saveForm?waitSeconds=2",
title: "",
mode: "horizontal",
wrapWithPanel: false,
className: "m-t",
// debug: true,
controls: [
{
type: "text",
disabled: true,
label: "父级值",
name: "a_super",
value: "123"
},
{
type: "combo",
name: "combo999",
label: "可获取父级数据",
multiple: true,
canAccessSuperData: true,
controls: [
{
name: "a_super",
type: "text"
}
]
},
{
type: "combo",
name: "combo9999",
label: "显示序号",
multiple: true,
controls: [
{
type: "tpl",
tpl: "<%= data.index + 1%>",
className: "p-t-xs",
mode: "inline"
},
{
name: "a",
type: "text"
}
]
}
]
}
]
}
]
}
]
};