diff --git a/templates/Project/components/_mdfComponent/buttonComp.js b/templates/Project/components/_mdfComponent/buttonComp.js
deleted file mode 100644
index d9fda26..0000000
--- a/templates/Project/components/_mdfComponent/buttonComp.js
+++ /dev/null
@@ -1,28 +0,0 @@
-import React from 'react';
-import compUtils from './common';
-export default (WrapComponent, model) => {
- return class ButtonComp extends React.Component {
- componentDidMount () {
- console.log('%c container didMount', 'color:red');
- compUtils.bind(this);
- }
-
- componentWillUnmount () {
- console.log('%c container Unmount', 'color:red');
- compUtils.unbind(this);
- }
-
- afterClick () {
- const currentModel = this.props.model;
- currentModel?.fireEvent('click');
- }
-
- render () {
- const allProps = {
- ...this.props,
- ...this.state
- }
- return
- }
- }
-}
diff --git a/templates/Project/components/_mdfComponent/common.js b/templates/Project/components/_mdfComponent/common.js
deleted file mode 100644
index 51a6eee..0000000
--- a/templates/Project/components/_mdfComponent/common.js
+++ /dev/null
@@ -1,38 +0,0 @@
-const type2models = {
- simple: 'SimpleModel',
- list: 'ListModel',
- grid: 'GridModel',
- tag: 'TagModel',
- tree: 'TreeModel',
- refer: 'ReferModel'
-}
-
-const compUtils = {
- bind: function (oThis, model) {
- const newModelType = type2models[model];
- if (newModelType && typeof cb !== 'undefined') {
- const viewModel = oThis.props.viewModel || oThis.props.pageModel
- const cItemName = oThis.props.cItemName;
- oThis.newModel = new cb.models[newModelType](oThis.modelData || {});
- if (cItemName) {
- viewModel.removeProperty(cItemName)
- viewModel.addProperty(cItemName, oThis.newModel)
- }
- }
- const currentModel = oThis.newModel || oThis.props.model;
- if (currentModel) currentModel.addListener(oThis);
- },
- unbind: function (oThis) {
- const currentModel = oThis.newModel || oThis.props.model;
- if (currentModel) currentModel.removeListener(oThis);
- },
- setModelConfig: function (oThis, data) {
- // if (!(typeof cb == 'undefined')) {
- // const currentModel = oThis.newModel || oThis.props.model;
- // cb.models.BaseModel.call(currentModel, data);
- // }
- oThis.modelData = data;
- }
-}
-
-export default compUtils
diff --git a/templates/Project/components/_mdfComponent/containerComp.js b/templates/Project/components/_mdfComponent/containerComp.js
deleted file mode 100644
index ea425da..0000000
--- a/templates/Project/components/_mdfComponent/containerComp.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import React from 'react';
-import compUtils from './common';
-export default (WrapComponent, model) => {
- return class ControlComp extends React.Component {
- constructor (props) {
- super();
- }
-
- componentDidMount () {
- console.log('%c container didMount', 'color:red');
- compUtils.bind(this, model);
- const { viewModel, meta } = this.props;
- viewModel.on('updateViewMeta', args => {
- const { code, visible } = args;
- if (code == meta.cGroupCode) {
- this.setState({ visible });
- }
- }, undefined, true);
- }
-
- componentWillUnmount () {
- console.log('%c container Unmount', 'color:red');
- compUtils.unbind(this);
- }
-
- setModelConfig = (data) => {
- compUtils.setModelConfig(this, data)
- }
-
- render () {
- const allProps = {
- ...this.props,
- ...this.state,
- setModelConfig: this.setModelConfig
- }
- return
- }
- }
-}
diff --git a/templates/Project/components/_mdfComponent/controlComp.js b/templates/Project/components/_mdfComponent/controlComp.js
deleted file mode 100644
index bc3cee2..0000000
--- a/templates/Project/components/_mdfComponent/controlComp.js
+++ /dev/null
@@ -1,53 +0,0 @@
-import React from 'react';
-import compUtils from './common';
-export default (WrapComponent, model) => {
- return class ControlComp extends React.Component {
- constructor (props) {
- super();
- }
-
- componentDidMount () {
- console.log('%c container didMount', 'color:red');
- compUtils.bind(this, model);
- }
-
- componentWillUnmount () {
- console.log('%c container Unmount', 'color:red');
- compUtils.unbind(this);
- }
-
- /**
- * 输入值改变之后出发事件
- * @param {*} value 当前输入框值
- */
- afterValueChange = (value) => {
- const currentModel = this.newModel || this.props.model;
- currentModel.setValue(value);
- }
-
- /**
- * 模型校验后的回调事件
- * @param {*} val 当前校验信息
- */
- validate (val) {
- this.setState({
- err: 'has-feedback has-' + val.type,
- msg: val.message
- });
- }
-
- setModelConfig = (data) => {
- compUtils.setModelConfig(this, data)
- }
-
- render () {
- const allProps = {
- ...this.props,
- ...this.state,
- afterValueChange: this.afterValueChange,
- setModelConfig: this.setModelConfig
- }
- return
- }
- }
-}
diff --git a/templates/Project/components/_mdfComponent/demo.jsx b/templates/Project/components/_mdfComponent/demo.jsx
deleted file mode 100644
index adcec98..0000000
--- a/templates/Project/components/_mdfComponent/demo.jsx
+++ /dev/null
@@ -1,58 +0,0 @@
-import React from 'react';
-import { Input } from 'yonui-ys';
-
-import MDFComponent from './index';
-import MetaConfig from './metaConfig';
-
-// api 说明
-// {
-// name: 字段属性名,
-// type: 属性类型,[array, bool, func, number, string, element, node ]
-// defaultValue: 默认值,
-// isMust: 是否必填,
-// desc: 属性描述
-// }
-const api = [
- {
- name: 'value',
- defaultValue: 1,
- isMust: true,
- desc: '代表输入框值'
- },
- {
- name: 'className',
- defaultValue: 'default-class',
- isMust: false,
- desc: '控件样式名称'
- }
-]
-
-@MDFComponent({type: 'control'}) // @mdf 标识,参数改成对象模式,type,绑定模型是什么
-@MetaConfig({name: '控件名字', api: api})
-class Demo extends React.Component {
- constructor (props) {
- super(props)
- this.state = {}
- }
-
- open = () => {
- this.setState({
- open:true
- })
- this.props.onOpen()
- }
-
- handleChange = (e) => {
- const value = e && e.target ? e.target.value : e;
- const { afterValueChange } = this.props
- if (typeof afterValueChange == 'function')
- afterValueChange(value);
- }
-
- render () {
- const { value } = this.props;
- return
Demo hello!!!
- }
-}
-
-export default Demo
diff --git a/templates/Project/components/_mdfComponent/factory.js b/templates/Project/components/_mdfComponent/factory.js
deleted file mode 100644
index 323d872..0000000
--- a/templates/Project/components/_mdfComponent/factory.js
+++ /dev/null
@@ -1,28 +0,0 @@
-
-import ControlComp from './controlComp'
-import ButtonComp from './buttonComp'
-import ContainerComp from './containerComp'
-
-function createComp (compInfo = {}) {
- return function (targetCompent, name, descriptor) {
- console.log(targetCompent, name, descriptor)
- return getAbstractCompFactory(compInfo, targetCompent)
- }
-}
-
-function getAbstractCompFactory (compInfo, targetCompent) {
- const { type, model } = compInfo
- console.log('type', type);
- switch (type) {
- case 'control':
- return ControlComp(targetCompent, model);
- case 'container':
- return ContainerComp(targetCompent, model);
- case 'button':
- return ButtonComp(targetCompent);
- default:
- console.log('%c 依赖基类不存在', 'color:red');
- }
-}
-
-export default createComp
diff --git a/templates/Project/components/_mdfComponent/index.js b/templates/Project/components/_mdfComponent/index.js
deleted file mode 100644
index b089416..0000000
--- a/templates/Project/components/_mdfComponent/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import MDFComponent from './factory';
-import MetaConfig from './metaConfig';
-export {MDFComponent, MetaConfig}
\ No newline at end of file
diff --git a/templates/Project/components/_mdfComponent/metaConfig.js b/templates/Project/components/_mdfComponent/metaConfig.js
deleted file mode 100644
index 79d21ae..0000000
--- a/templates/Project/components/_mdfComponent/metaConfig.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// import React from 'react';
-
-export default function MetaConfig (metaInfo = {}) {
- const { name, api } = metaInfo
- console.log('name', name, 'api', api);
- return function (targetComponent, name, descriptor) {
- console.log(targetComponent, name, descriptor)
- const {defaultProps, propTypes} = aynalyProps(api)
- targetComponent.defaultProps = defaultProps;
- targetComponent.propTypes = propTypes;
- }
-}
-/**
- * 解析api,将默认的属性同步到类上
- * @param {array} api
- * api 中每个元素item说明
- * {
- * name: 字段属性名,
- * type: 属性类型,[array, bool, func, number, string, element, node ]
- * defaultValue: 默认值,
- * isMust: 是否必填,
- * desc: 属性描述
- * }
- */
-function aynalyProps (api = []) {
- const defaultProps = {};
- const propTypes = {};
- api.forEach(item => {
- const name = item?.name
- if (name) {
- const { type, defaultValue } = item;
- if (defaultValue || defaultValue == 0)
- defaultProps[name] = defaultValue
- if (type) {
- propTypes[name] = type
- }
- }
- })
- return {defaultProps, propTypes};
-}
diff --git a/templates/Project/package.json b/templates/Project/package.json
index f874b3a..445d307 100644
--- a/templates/Project/package.json
+++ b/templates/Project/package.json
@@ -42,6 +42,7 @@
"bee-tag": "0.0.3",
"eslint": "^6.8.0",
"eslint-config-standard": "^14.1.0",
+ "yonui-mdf-comp-factory": "^0.0.1",
"eslint-config-standard-with-typescript": "^16.0.0",
"eslint-plugin-import": "^2.20.1",
"eslint-plugin-node": "^11.0.0",