Files

245 lines
6.6 KiB
JavaScript
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0, maximum-scale=1.0, minimal-ui" />
<title>input-number widget</title>
<link rel="stylesheet" href="../demo.css" />
<!-- 引入样式 -->
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css" />
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?027aa17f0e14133f0b8aa5f1f0af3ca7";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</head>
<body>
<!--演示区域-->
<div id="demo" v-cloak>
<div v-for="(item, idx) in formSchemas">
<h4 class="demo_title">{{ item.title }}</h4>
<div class="demo_item-wrapper">
<div>
<ncform :form-schema="item.schema" v-model="item.schema.value"></ncform>
<small>value: {{ item.schema.value }}</small>
</div>
<div>
<pre>{{ JSON.stringify(originFormSchemas[idx].schema.properties, null, 2) }}</pre>
</div>
<div>
<pre>{{ item.detail }}</pre>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="../../node_modules/lodash/lodash.min.js"></script>
<script type="text/javascript" src="../../node_modules/axios/dist/axios.min.js"></script>
<script type="text/javascript" src="https://unpkg.com/vue@2.6.10/dist/vue.min.js"></script>
<script type="text/javascript" src="https://unpkg.com/element-ui/lib/index.js"></script>
<script type="text/javascript" src="../../node_modules/@ncform/ncform-common/dist/ncformCommon.min.js"></script>
<script type="text/javascript" src="../../node_modules/@ncform/ncform/dist/vueNcform.js"></script>
<script type="text/javascript" src="../../dist/inputNumber.js"></script>
<script type="text/javascript" src="../../dist/object.js"></script>
<script type="text/javascript">
let lang = 'en';
if (location.search.indexOf('lang=cn') >= 0) {
lang = 'cn';
}
Vue.use(vueNcform, { extComponents: { object: object.default, inputNumber: inputNumber.default }, lang: lang === 'cn' ? 'zh_cn' : 'en' });
let formSchemas = [
{
title: {
cn: '默认状态',
en: 'Default'
},
schema: {
type: 'object',
properties: {
count: {
type: 'number',
ui: {
widget: 'input-number'
}
}
}
}
},
{
title: {
cn: '提供值',
en: 'Provide value'
},
schema: {
type: 'object',
properties: {
count: {
type: 'number',
value: 20,
ui: {
widget: 'input-number'
}
}
},
ui: {
widgetConfig: {
layout: 'h'
}
}
}
},
{
title: {
cn: '[属性] readonly: 只读状态',
en: '[ATTR] readonly: read-only state'
},
schema: {
type: 'object',
properties: {
count: {
type: 'number',
ui: {
widget: 'input-number',
readonly: true
}
}
}
}
},
{
title: {
cn: '[属性] disabled: 禁用状态',
en: '[ATTR] disabled: disable state'
},
schema: {
type: 'object',
properties: {
count: {
type: 'number',
ui: {
widget: 'input-number',
disabled: true
}
}
}
}
},
{
title: {
cn: '[属性] min: 最小值. 默认值: 0',
en: '[ATTR] min: minimum. Default is 0'
},
schema: {
type: 'object',
properties: {
count: {
type: 'number',
ui: {
widget: 'input-number',
widgetConfig: {
min: -2
}
}
}
}
}
},
{
title: {
cn: '[属性] max: 最大值. 默认值: Infinity',
en: '[ATTR] max: maximum. Default is Infinity'
},
schema: {
type: 'object',
properties: {
count: {
type: 'number',
ui: {
widget: 'input-number',
widgetConfig: {
max: 2
}
}
}
}
}
},
{
title: {
cn: '[属性] step: 步长. 默认值: 1',
en: '[ATTR] step: step. Default is 1'
},
schema: {
type: 'object',
properties: {
count: {
type: 'number',
ui: {
widget: 'input-number',
widgetConfig: {
step: 2
}
}
}
}
}
},
{
title: {
cn: '[属性] Size: 尺寸. 可选值:[medium | small | mini]',
en: '[ATTR] Size: Options[medium | small | mini]'
},
schema: {
type: 'object',
properties: {
count: {
type: 'number',
ui: {
widget: 'input-number',
widgetConfig: {
size: 'mini'
}
}
}
},
ui: {
widgetConfig: {
layout: 'h'
}
}
}
}
];
// Bootstrap the app
new Vue({
el: '#demo',
data: {
formSchemas: getFormSchemas(),
originFormSchemas: getFormSchemas()
}
});
function getFormSchemas() {
return formSchemas.map(item => ({
title: item.title[lang],
schema: item.schema,
detail: item.detail ? item.detail[lang] : ''
}));
}
</script>
</body>
</html>