refactor(components): 统一组件API规范并完善表单重置功能
- 将多个组件的props从具体属性名改为统一的value属性 - 为所有组件添加v-model支持,替换原有的具体属性绑定 - 统一实现resetField方法,确保表单重置功能一致性 - 修正组件内部数据绑定逻辑,使用innerValue替代直接修改prop - 更新文档示例,将API参数说明改为value | v-model格式 - 为代码编辑器、富文本编辑器等组件添加input事件发射 - 调整文件上传组件的值类型定义,从Object改为String - 移除废弃的maxLength回调方法,优化编辑器性能 - 重构双向绑定逻辑,确保父子组件数据同步正确性 - 为树形选择器添加ref引用以便操作内部实例 - 调整组件演示页面的导入路径和标签页名称结构
This commit is contained in:
@@ -44,9 +44,9 @@ export default {
|
||||
dept: null
|
||||
},
|
||||
apiData: [
|
||||
{ name: 'value', remark: '绑定的值', type: 'string', defaultValue: '-', required: '否' },
|
||||
{ name: 'node-click', remark: '部门节点发生改变的时候触发的回调', type: '(value) => {}', defaultValue: '-', required: '否' },
|
||||
{ name: 'search', remark: '搜索部门回调事件', type: '(value) => {}', defaultValue: '-', required: '否' }
|
||||
{ name: 'value | v-model', remark: '绑定的值', type: 'string', defaultValue: '-', required: '否' },
|
||||
{ name: 'search', remark: '搜索部门回调事件', type: '(value) => {}', defaultValue: '-', required: '否' },
|
||||
{ name: 'node-click', remark: '部门节点发生改变的时候触发的回调', type: '(value) => {}', defaultValue: '-', required: '否' }
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="文件上传" prop="fileUrl">
|
||||
<cute-file-drag-upload v-model="form" mode="local" />
|
||||
<cute-file-drag-upload v-model="form.fileUrl" mode="local" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submitForm('form')">提 交</el-button>
|
||||
@@ -37,7 +37,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="文件上传" prop="fileUrl" label-width="80px">
|
||||
<cute-file-drag-upload v-model="form" mode="local" />
|
||||
<cute-file-drag-upload v-model="form.fileUrl" mode="local" />
|
||||
</el-form-item>
|
||||
</cute-form-dialog>
|
||||
<h4>与CuteFormDrawer集成</h4>
|
||||
@@ -53,7 +53,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="文件上传" prop="fileUrl" label-width="80px">
|
||||
<cute-file-drag-upload v-model="form" mode="local" />
|
||||
<cute-file-drag-upload v-model="form.fileUrl" mode="local" />
|
||||
</el-form-item>
|
||||
</cute-form-drawer>
|
||||
<h4>API</h4>
|
||||
@@ -83,7 +83,7 @@ export default {
|
||||
fileUrl: ''
|
||||
},
|
||||
apiData: [
|
||||
{ name: 'value', remark: '上传的文件路径', type: 'string', defaultValue: '-', required: '是' },
|
||||
{ name: 'value | v-model', remark: '上传的文件路径', type: 'string', defaultValue: '-', required: '否' },
|
||||
{ name: 'mode', remark: '上传方式。local本地、oss对象存储', type: 'string', defaultValue: 'local', required: '否' }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="文件上传" prop="fileUrl">
|
||||
<cute-file-upload v-model="form" mode="local" />
|
||||
<cute-file-upload v-model="form.fileUrl" mode="local" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submitForm('form')">提 交</el-button>
|
||||
@@ -37,7 +37,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="文件上传" prop="fileUrl" label-width="80px">
|
||||
<cute-file-upload v-model="form" mode="local" />
|
||||
<cute-file-upload v-model="form.fileUrl" mode="local" />
|
||||
</el-form-item>
|
||||
</cute-form-dialog>
|
||||
<h4>与CuteFormDrawer集成</h4>
|
||||
@@ -53,7 +53,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="文件上传" prop="fileUrl" label-width="80px">
|
||||
<cute-file-upload v-model="form" mode="local" />
|
||||
<cute-file-upload v-model="form.fileUrl" mode="local" />
|
||||
</el-form-item>
|
||||
</cute-form-drawer>
|
||||
<h4>API</h4>
|
||||
|
||||
@@ -40,7 +40,7 @@ export default {
|
||||
productLine: null
|
||||
},
|
||||
apiData: [
|
||||
{ name: 'value', remark: '绑定的值', type: 'string', defaultValue: '-', required: '否' },
|
||||
{ name: 'value | v-model', remark: '绑定的值', type: 'string', defaultValue: '-', required: '否' },
|
||||
{ name: 'disabled', remark: '是否禁用', type: 'boolean', defaultValue: 'false', required: '否' },
|
||||
{ name: 'change', remark: '产品线发生改变的时候触发的回调', type: '(value) => {}', defaultValue: '-', required: '否' },
|
||||
{ name: 'detail', remark: '产品线明细发生改变的时候触发的回调', type: '(value) => {}', defaultValue: '-', required: '否' }
|
||||
|
||||
@@ -41,7 +41,7 @@ export default {
|
||||
productLine: null
|
||||
},
|
||||
apiData: [
|
||||
{ name: 'value', remark: '绑定的值', type: 'string', defaultValue: '-', required: '否' }
|
||||
{ name: 'value | v-model', remark: '绑定的值', type: 'string', defaultValue: '-', required: '否' }
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
@@ -41,7 +41,7 @@ export default {
|
||||
user: ''
|
||||
},
|
||||
apiData: [
|
||||
{ name: 'value', remark: '绑定的值', type: 'string', defaultValue: '-', required: '否' },
|
||||
{ name: 'value | v-model', remark: '绑定的值', type: 'string', defaultValue: '-', required: '否' },
|
||||
{ name: 'change', remark: '选中用户发生改变的时候触发的回调', type: '(value) => {}', defaultValue: '-', required: '否' }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ export default {
|
||||
user: []
|
||||
},
|
||||
apiData: [
|
||||
{ name: 'value', remark: '绑定的值', type: 'array', defaultValue: '[]', required: '否' },
|
||||
{ name: 'value | v-model', remark: '绑定的值', type: 'array', defaultValue: '[]', required: '否' },
|
||||
{ name: 'change', remark: '选中用户发生改变的时候触发的回调', type: '(value) => {}', defaultValue: '-', required: '否' }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
<li>在使用过程中有任何问题,咨询 @Odboy(前端)</li>
|
||||
</ul>
|
||||
<h4>Java编辑器</h4>
|
||||
<cute-code-editor :content="javaContent" mode="java" @change="onJavaChange" />
|
||||
<cute-code-editor v-model="javaContent" mode="java" @change="onJavaChange" />
|
||||
<h4>Yaml编辑器</h4>
|
||||
<cute-code-editor :content="yamlContent" mode="yaml" @change="onYamlChange" />
|
||||
<cute-code-editor v-model="yamlContent" mode="yaml" @change="onYamlChange" />
|
||||
<h4>API</h4>
|
||||
<el-table :data="apiData">
|
||||
<el-table-column prop="name" label="参数" width="220" />
|
||||
@@ -77,7 +77,7 @@ export default {
|
||||
' # IMMEDIATE(立即): 当应用程序以"IMMEDIATE"模式关闭时,它会立即终止,而不管当前是否有任何活动任务或请求。这种方式适用于那些可以立即停止而不会造成严重问题的情况。\n' +
|
||||
' shutdown: graceful\n',
|
||||
apiData: [
|
||||
{ name: 'content', remark: '内容', type: 'string', defaultValue: '-', required: '是' },
|
||||
{ name: 'value | v-model', remark: '内容', type: 'string', defaultValue: '-', required: '否' },
|
||||
{ name: 'height', remark: '编辑框高度', type: 'string', defaultValue: '500px', required: '否' },
|
||||
{ name: 'readonly', remark: '是否只读', type: 'boolean', defaultValue: 'false', required: '否' },
|
||||
{ name: 'mode', remark: '语法模式。支持:yaml | java | go | swift | dockerfile | groovy | lua | perl | python | ruby | sql | xml | vue', type: 'string', defaultValue: 'yaml', required: '否' },
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
</ul>
|
||||
<h4>基础用法</h4>
|
||||
<cute-markdown
|
||||
:content="content"
|
||||
v-model="content"
|
||||
@change="onChange"
|
||||
@save="onSave"
|
||||
/>
|
||||
@@ -38,20 +38,20 @@ export default {
|
||||
'- HTML 标签;\n' +
|
||||
'- 流程图和序列图 \n',
|
||||
apiData: [
|
||||
{ name: 'content', remark: 'markdown格式内容', type: 'string', defaultValue: '-', required: '是' },
|
||||
{ name: 'change', remark: '编辑区发生变化的回调事件', type: '(text, markdown) => {}', defaultValue: '-', required: '否' },
|
||||
{ name: 'save', remark: 'ctrl + s 的回调事件(保存按键,同样触发该回调)', type: '(text, markdown) => {}', defaultValue: '-', required: '否' }
|
||||
{ name: 'value | v-model', remark: 'markdown格式内容', type: 'string', defaultValue: '-', required: '否' },
|
||||
{ name: 'change', remark: '编辑区发生变化的回调事件', type: '(markdown, html) => {}', defaultValue: '-', required: '否' },
|
||||
{ name: 'save', remark: 'ctrl + s 的回调事件(保存按键,同样触发该回调)', type: '(markdown, html) => {}', defaultValue: '-', required: '否' }
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onChange(text, markdown) {
|
||||
console.log('onChange:text', text)
|
||||
onChange(markdown, html) {
|
||||
console.log('onChange:markdown', markdown)
|
||||
console.log('onChange:html', html)
|
||||
},
|
||||
onSave(text, markdown) {
|
||||
console.log('onSave:text', text)
|
||||
onSave(markdown, html) {
|
||||
console.log('onSave:markdown', markdown)
|
||||
console.log('onSave:html', html)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,8 @@
|
||||
<h4>基础用法:clipboard版</h4>
|
||||
<div id="btn" @click="copy">复制</div>
|
||||
<h4>基础用法:OneKeyCopy组件版(推荐)</h4>
|
||||
<cute-one-key-copy :content.sync="msg" />
|
||||
<!-- v-model 会自动绑定元素的 value 属性,并监听 input 事件(某些元素如复选框监听 change 事件)-->
|
||||
<cute-one-key-copy v-model="msg" />
|
||||
<h4>API</h4>
|
||||
<el-table :data="apiData">
|
||||
<el-table-column prop="name" label="参数" width="220" />
|
||||
@@ -30,7 +31,7 @@ export default {
|
||||
return {
|
||||
msg: '来复制我吧',
|
||||
apiData: [
|
||||
{ name: 'content', remark: '待复制的内容', type: 'string', defaultValue: '-', required: '是' }
|
||||
{ name: 'value | v-model', remark: '待复制的内容', type: 'string', defaultValue: '-', required: '否' }
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
@@ -34,7 +34,7 @@ export default {
|
||||
return {
|
||||
content: '',
|
||||
apiData: [
|
||||
{ name: 'content', remark: '内容', type: 'string', defaultValue: '-', required: '是' },
|
||||
{ name: 'value | v-model', remark: '内容', type: 'string', defaultValue: '-', required: '否' },
|
||||
{ name: 'readonly', remark: '是否只读', type: 'boolean', defaultValue: 'false', required: '否' },
|
||||
{ name: 'change', remark: '内容改变回调事件', type: '(html, text) => {}', defaultValue: '-', required: '否' },
|
||||
{ name: 'focus', remark: '编辑器获得焦点回调事件', type: '(editor) => {}', defaultValue: '-', required: '否' },
|
||||
|
||||
@@ -56,7 +56,7 @@ export default {
|
||||
{ id: 18, name: '小王', description: '小王牛P' }
|
||||
],
|
||||
apiData: [
|
||||
{ name: 'value', remark: '右侧已选值', type: 'array', defaultValue: '[]', required: '否' },
|
||||
{ name: 'value | v-model', remark: '右侧数据对象属性值集合', type: 'array', defaultValue: '[]', required: '否' },
|
||||
{ name: 'dataSource', remark: '左侧表格数据', type: 'array', defaultValue: '[]', required: '是' },
|
||||
{ name: 'primary-key', remark: '取对象的哪个值作为value', type: 'string', defaultValue: 'id', required: '否' },
|
||||
{ name: 'loading', remark: '是否加载中', type: 'boolean', defaultValue: 'false', required: '是' },
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="快捷组件" name="kit">
|
||||
<el-tab-pane label="快捷组件" name="util">
|
||||
<el-collapse accordion>
|
||||
<el-collapse-item title="信息提示 KitMessage" name="KitMessage">
|
||||
<KitMessageDemo />
|
||||
@@ -130,10 +130,10 @@
|
||||
|
||||
import CutePage from '@/views/components/dev/CutePage.vue'
|
||||
import CuteButtonDemo from '@/views/componentsDemo/dev/CuteButtonDemo.vue'
|
||||
import KitMessageDemo from '@/views/componentsDemo/dev/KitMessageDemo.vue'
|
||||
import KitNotificationDemo from '@/views/componentsDemo/dev/KitNotificationDemo.vue'
|
||||
import KitDialogDemo from '@/views/componentsDemo/dev/KitDialogDemo.vue'
|
||||
import KitWsClientDemo from '@/views/componentsDemo/dev/KitWsClientDemo.vue'
|
||||
import KitMessageDemo from '@/views/componentsDemo/util/KitMessageDemo.vue'
|
||||
import KitNotificationDemo from '@/views/componentsDemo/util/KitNotificationDemo.vue'
|
||||
import KitDialogDemo from '@/views/componentsDemo/util/KitDialogDemo.vue'
|
||||
import KitWsClientDemo from '@/views/componentsDemo/util/KitWsClientDemo.vue'
|
||||
import CuteLinkDemo from '@/views/componentsDemo/dev/CuteLinkDemo.vue'
|
||||
import CutePageDemo from '@/views/componentsDemo/dev/CutePageDemo.vue'
|
||||
import CuteNoDataDemo from '@/views/componentsDemo/dev/CuteNoDataDemo.vue'
|
||||
|
||||
Reference in New Issue
Block a user