Files

295 lines
8.2 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>date-picker 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/datePicker.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, datePicker: datePicker.default }, lang: lang === 'cn' ? 'zh_cn' : 'en' });
let formSchemas = [
{
title: {
cn: '默认状态',
en: 'Default'
},
schema: {
type: 'object',
properties: {
date: {
type: 'string',
ui: {
widget: 'date-picker'
}
}
}
},
detail: {
cn: `支持的数据类型: string`,
en: `Only support "string" type`
}
},
{
title: {
cn: '提供值',
en: 'Provide value'
},
schema: {
type: 'object',
properties: {
date: {
type: 'string',
value: '1512284108066',
ui: {
widget: 'date-picker'
}
}
},
ui: {
widgetConfig: {
layout: 'h'
}
}
}
},
{
title: {
cn: '[属性] disabled: 禁用状态',
en: '[ATTR] disabled: disable state'
},
schema: {
type: 'object',
properties: {
date: {
type: 'string',
ui: {
widget: 'date-picker',
disabled: true
}
}
}
}
},
{
title: {
cn: '[属性] readonly: 只读状态',
en: '[ATTR] readonly: read-only state'
},
schema: {
type: 'object',
properties: {
date: {
type: 'string',
value: '1512284108066',
ui: {
widget: 'date-picker',
readonly: true
}
}
}
}
},
{
title: {
cn: '[属性] placeholder: 占位显示',
en: '[ATTR] placeholder: placeholder display'
},
schema: {
type: 'object',
properties: {
date: {
type: 'string',
ui: {
widget: 'date-picker',
placeholder: 'Click here to choose date'
}
}
}
}
},
{
title: {
cn: '[属性] type: 日期控件类型. 可选项:[ year | month | date | week | datetime ]',
en: '[ATTR] type: date control type. Optional: [ year | month | date | week | datetime ]'
},
schema: {
type: 'object',
properties: {
date: {
type: 'string',
ui: {
widget: 'date-picker',
widgetConfig: {
type: 'datetime'
}
}
}
}
}
},
{
title: {
cn: '[属性] clearable: 是否显示清除按钮',
en: '[ATTR] clearable: Whether to display the clear button'
},
schema: {
type: 'object',
properties: {
date: {
type: 'string',
ui: {
widget: 'date-picker',
widgetConfig: {
clearable: false
}
}
}
}
}
},
{
title: {
cn: '[属性] format: 显示格式. ',
en: '[ATTR] format: display format. '
},
schema: {
type: 'object',
properties: {
date: {
type: 'string',
value: '1512284108066',
ui: {
widget: 'date-picker',
widgetConfig: {
type: 'date',
format: 'yyyy-MM-dd'
}
}
}
}
},
detail: {
cn: '年 yyyy,月 MM,日 dd,小时 HH,分 mm,秒 ss',
en: 'Year yyyy, month MM, day dd, hour HH, minute mm, second ss'
}
},
{
title: {
cn: '[属性] valueFormat: 输出值的格式。空为毫秒数字符串',
en: '[ATTR] valueFormat: The format of the output value. Empty means a millisecond string'
},
schema: {
type: 'object',
properties: {
date: {
type: 'string',
value: '2019-12-12',
ui: {
widget: 'date-picker',
widgetConfig: {
valueFormat: 'yyyy-MM-dd'
}
}
}
}
}
},
{
title: {
cn: '[属性] Size: 尺寸. 可选值:[medium | small | mini]',
en: '[ATTR] Size: Options[medium | small | mini]'
},
schema: {
type: 'object',
properties: {
count: {
type: 'string',
ui: {
widget: 'date-picker',
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>