Skip to content

Commit

Permalink
feat(vue3-core): 初始化vue3-core
Browse files Browse the repository at this point in the history
  • Loading branch information
lljj-x committed Jan 6, 2021
1 parent df2c1fe commit f22a51c
Show file tree
Hide file tree
Showing 59 changed files with 3,574 additions and 3 deletions.
2 changes: 1 addition & 1 deletion packages/demo-v3/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
},
"dependencies": {
"@lljj/polyfill": "^0.1.0",
"@lljj/vue-json-schema-form": "0.5.0",
"@lljj/vue3-form-element": "0.5.0",
"demo-common": "0.5.0",
"ajv-i18n": "^3.5.0",
"vue": "^3.0.0",
Expand Down
4 changes: 2 additions & 2 deletions packages/demo-v3/src/pages/index/views/Demo/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,6 @@
<span>生成表单:</span>
</div>
<VueElementForm
v-if="false"
v-model="formData"
:schema="schema"
:ui-schema="uiSchema"
Expand Down Expand Up @@ -202,7 +201,8 @@ const VueElementForm = async () => {
// // iview3 form
// return import('@lljj/vue2-form-iview3/src/index');
// }
return import('@lljj/vue-json-schema-form');
debugger;
return import('@lljj/vue3-form-element/src/index');
};
const typeItems = Object.keys(schemaTypes);
Expand Down
1 change: 1 addition & 0 deletions packages/demo/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
},
"dependencies": {
"@lljj/polyfill": "^0.1.0",
"@lljj/vue2-form-iview3": "0.5.0",
"@lljj/vue-json-schema-form": "0.5.0",
"ajv-i18n": "^3.5.0",
"vue": "^2.6.10",
Expand Down
3 changes: 3 additions & 0 deletions packages/lib/vue3-core/.eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/**/node_modules/*
/**/dist/*
/**/*.css
Empty file removed packages/lib/vue3-core/.keep
Empty file.
46 changes: 46 additions & 0 deletions packages/lib/vue3-core/JsonSchemaForm/FIELDS_MAP.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/**
* Created by Liu.Jun on 2020/4/20 9:55 下午.
*/

// eslint-disable-next-line import/no-cycle
import ObjectField from './fields/ObjectField';

// eslint-disable-next-line import/no-cycle
import StringField from './fields/StringField';

// eslint-disable-next-line import/no-cycle
import NumberField from './fields/NumberField';

// eslint-disable-next-line import/no-cycle
import IntegerField from './fields/IntegerField';

// eslint-disable-next-line import/no-cycle
import BooleanField from './fields/BooleanField';

// eslint-disable-next-line import/no-cycle
import ArrayField from './fields/ArrayField';

// eslint-disable-next-line import/no-cycle
import AnyOfField from './fields/combiningSchemas/AnyOfField';

// eslint-disable-next-line import/no-cycle
import OneOfField from './fields/combiningSchemas/OneOfField';

// 默认类型使用field映射关系
const FIELDS_MAPS = {
array: ArrayField,
boolean: BooleanField,
integer: IntegerField,
number: NumberField,
object: ObjectField,
string: StringField,
null: {
render() {
return null;
}
},
anyOf: AnyOfField,
oneOf: OneOfField
};

export default FIELDS_MAPS;
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<template>
<div class="fieldGroupWrap">
<template>
<h3
v-if="showTitle && title"
class="fieldGroupWrap_title"
>
{{ title }}
</h3>
<p
v-if="showDescription && description"
class="fieldGroupWrap_des"
v-html="description"
>
</p>
</template>
<div class="fieldGroupWrap_box">
<slot></slot>
</div>
</div>
</template>

<script>
export default {
name: 'FieldGroupWrap',
props: {
showTitle: {
type: Boolean,
default: true
},
showDescription: {
type: Boolean,
default: true
},
title: {
type: String,
default: ''
},
description: {
type: String,
default: ''
}
}
};
</script>
50 changes: 50 additions & 0 deletions packages/lib/vue3-core/JsonSchemaForm/components/FormFooter.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/**
* Created by Liu.Jun on 2020/12/27 9:53 下午.
*/

export default {
name: 'FormFooter',
props: {
okBtn: {
type: String,
default: '保存'
},
cancelBtn: {
type: String,
default: '取消'
},
globalOptions: null
},
render(h) {
const self = this;
const { okBtn, cancelBtn, globalOptions: { COMPONENT_MAP } } = this.$props;

return h(COMPONENT_MAP.formItem, {
class: {
formFooter_item: true
}
}, [
h(COMPONENT_MAP.button, {
on: {
click() {
self.$emit('onCancel');
}
}
}, cancelBtn),
h(COMPONENT_MAP.button, {
style: {
marginLeft: '10px'
},
props: {
type: 'primary'
},
on: {
click() {
self.$emit('onSubmit');
}
}
}, okBtn)
]);

}
};
Loading

0 comments on commit f22a51c

Please sign in to comment.