feat(components): 添加表单组件重置按钮和取消事件支持
- 在 CuteFormDialog、CuteFormDialogPro 和 CuteFormDrawer 组件中添加 showReset 属性控制重置按钮显示 - 为表单组件添加 reset 事件发射功能 - 为表单组件添加 cancel 事件发射功能 - 修改 CuteFormDialog 的 title 属性为非必需,默认值为'默认标题' - 在 CuteFormDialogPro 中为输入框、选择框、日期范围和日期时间范围组件添加 disabled 状态支持 - 更新 CuteEditTableDemo 的文档描述,说明 disabled 字段功能 - 创建并添加 CuteFormDialogDemo、CuteFormDialogProDemo 和 CuteFormDrawerDemo 示例页面
This commit is contained in:
@@ -22,7 +22,7 @@
|
|||||||
<el-divider />
|
<el-divider />
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<el-button type="danger" @click="hidden">取 消</el-button>
|
<el-button type="danger" @click="hidden">取 消</el-button>
|
||||||
<!--<el-button @click="resetForm('form')">重 置</el-button>-->
|
<el-button v-if="showReset" @click="resetForm('form')">重 置</el-button>
|
||||||
<el-button v-prevent-re-click type="primary" @click="submitForm('form')">提 交</el-button>
|
<el-button v-prevent-re-click type="primary" @click="submitForm('form')">提 交</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@@ -35,7 +35,7 @@ export default {
|
|||||||
props: {
|
props: {
|
||||||
title: {
|
title: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true,
|
required: false,
|
||||||
default: '默认标题'
|
default: '默认标题'
|
||||||
},
|
},
|
||||||
width: {
|
width: {
|
||||||
@@ -60,11 +60,15 @@ export default {
|
|||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 是否平铺表单
|
|
||||||
inline: {
|
inline: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
required: false,
|
required: false,
|
||||||
default: false
|
default: false
|
||||||
|
},
|
||||||
|
showReset: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@@ -91,9 +95,11 @@ export default {
|
|||||||
},
|
},
|
||||||
resetForm(formName) {
|
resetForm(formName) {
|
||||||
this.$refs[formName].resetFields()
|
this.$refs[formName].resetFields()
|
||||||
|
this.$emit('reset')
|
||||||
},
|
},
|
||||||
beforeClose() {
|
beforeClose() {
|
||||||
this.hidden()
|
this.hidden()
|
||||||
|
this.$emit('cancel')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
v-if="item.type === 'input'"
|
v-if="item.type === 'input'"
|
||||||
v-model="model[item.name]"
|
v-model="model[item.name]"
|
||||||
:placeholder="`请输入${item.title}`"
|
:placeholder="`请输入${item.title}`"
|
||||||
|
:disabled="model.disabled === true"
|
||||||
clearable
|
clearable
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
/>
|
/>
|
||||||
@@ -30,6 +31,7 @@
|
|||||||
v-model="model[item.name]"
|
v-model="model[item.name]"
|
||||||
clearable
|
clearable
|
||||||
:placeholder="`请选择${item.title}`"
|
:placeholder="`请选择${item.title}`"
|
||||||
|
:disabled="model.disabled === true"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
@@ -46,6 +48,7 @@
|
|||||||
type="daterange"
|
type="daterange"
|
||||||
align="right"
|
align="right"
|
||||||
unlink-panels
|
unlink-panels
|
||||||
|
:disabled="model.disabled === true"
|
||||||
clearable
|
clearable
|
||||||
range-separator="至"
|
range-separator="至"
|
||||||
start-placeholder="开始日期"
|
start-placeholder="开始日期"
|
||||||
@@ -62,6 +65,7 @@
|
|||||||
type="datetimerange"
|
type="datetimerange"
|
||||||
align="right"
|
align="right"
|
||||||
clearable
|
clearable
|
||||||
|
:disabled="model.disabled === true"
|
||||||
range-separator="至"
|
range-separator="至"
|
||||||
start-placeholder="开始日期"
|
start-placeholder="开始日期"
|
||||||
end-placeholder="结束日期"
|
end-placeholder="结束日期"
|
||||||
@@ -77,7 +81,7 @@
|
|||||||
<el-divider />
|
<el-divider />
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<el-button type="danger" @click="hidden">取 消</el-button>
|
<el-button type="danger" @click="hidden">取 消</el-button>
|
||||||
<!--<el-button @click="resetForm('form')">重 置</el-button>-->
|
<el-button v-if="showReset" @click="resetForm('form')">重 置</el-button>
|
||||||
<el-button v-prevent-re-click type="primary" @click="submitForm('form')">提 交</el-button>
|
<el-button v-prevent-re-click type="primary" @click="submitForm('form')">提 交</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@@ -128,6 +132,11 @@ export default {
|
|||||||
model: {
|
model: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
|
},
|
||||||
|
showReset: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@@ -214,9 +223,11 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.model = { ...model }
|
this.model = { ...model }
|
||||||
|
this.$emit('reset')
|
||||||
},
|
},
|
||||||
beforeClose() {
|
beforeClose() {
|
||||||
this.hidden()
|
this.hidden()
|
||||||
|
this.$emit('cancel')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ export default {
|
|||||||
props: {
|
props: {
|
||||||
title: {
|
title: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true,
|
required: false,
|
||||||
default: '默认标题'
|
default: '默认标题'
|
||||||
},
|
},
|
||||||
width: {
|
width: {
|
||||||
@@ -58,11 +58,15 @@ export default {
|
|||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 是否平铺表单
|
|
||||||
inline: {
|
inline: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
required: false,
|
required: false,
|
||||||
default: false
|
default: false
|
||||||
|
},
|
||||||
|
showReset: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@@ -89,9 +93,11 @@ export default {
|
|||||||
},
|
},
|
||||||
resetForm(formName) {
|
resetForm(formName) {
|
||||||
this.$refs[formName].resetFields()
|
this.$refs[formName].resetFields()
|
||||||
|
this.$emit('reset')
|
||||||
},
|
},
|
||||||
beforeClose() {
|
beforeClose() {
|
||||||
this.hidden()
|
this.hidden()
|
||||||
|
this.$emit('cancel')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,47 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<!-- 工具栏 -->
|
|
||||||
<div class="head-container">
|
|
||||||
<el-form
|
|
||||||
ref="searchForm"
|
|
||||||
:inline="true"
|
|
||||||
:model="form.model"
|
|
||||||
label-position="right"
|
|
||||||
label-width="80px"
|
|
||||||
:rules="form.rules"
|
|
||||||
size="mini"
|
|
||||||
>
|
|
||||||
<el-form-item label="模糊查询" prop="blurry">
|
|
||||||
<el-input v-model="form.model.blurry" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item>
|
|
||||||
<el-button type="primary" @click="onFormSubmit('searchForm')">查询</el-button>
|
|
||||||
<el-button @click="onFormReset('searchForm')">重置</el-button>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item>
|
|
||||||
<el-button type="primary" @click="onDialogClick">演示:表单对话框</el-button>
|
|
||||||
<el-button type="primary" @click="onDialogProClick">演示:表单对话框Pro</el-button>
|
|
||||||
<el-button type="primary" @click="onDrawerClick">演示:表单抽屉</el-button>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
</div>
|
|
||||||
<cute-form-dialog
|
|
||||||
ref="dialogForm"
|
|
||||||
:model="createFormModel"
|
|
||||||
:rules="createFormRules"
|
|
||||||
title="演示:表单对话框"
|
|
||||||
@submit="onDialogFormSubmit"
|
|
||||||
>
|
|
||||||
<el-form-item label="活动名称" prop="name" label-width="100px">
|
|
||||||
<el-input v-model="createFormModel.name" placeholder="请输入" style="width: 100%" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="活动区域" prop="region" label-width="100px">
|
|
||||||
<el-select v-model="createFormModel.region" placeholder="请选择" style="width: 100%">
|
|
||||||
<el-option label="区域一" value="shanghai" />
|
|
||||||
<el-option label="区域二" value="beijing" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</cute-form-dialog>
|
|
||||||
<cute-form-drawer
|
<cute-form-drawer
|
||||||
ref="drawerFrom"
|
ref="drawerFrom"
|
||||||
:model="createFormModel"
|
:model="createFormModel"
|
||||||
@@ -65,31 +23,17 @@
|
|||||||
<el-table-column prop="description" label="备注" />
|
<el-table-column prop="description" label="备注" />
|
||||||
</cute-transfer>
|
</cute-transfer>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="可编辑表格" prop="editValues" label-width="100px">
|
|
||||||
<cute-edit-table v-model="editTableDataSource" primary-key="id" :schema="editTableSchema" />
|
|
||||||
</el-form-item>
|
|
||||||
</cute-form-drawer>
|
</cute-form-drawer>
|
||||||
<cute-form-pro-dialog
|
|
||||||
ref="dialogProForm"
|
|
||||||
:model="createFormProModel"
|
|
||||||
:schema="createFormProSchema"
|
|
||||||
title="演示:表单对话框Pro"
|
|
||||||
@submit="onDialogFormSubmit"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import CuteFormDialog from '@/views/components/advanced/CuteFormDialog.vue'
|
|
||||||
import CuteFormDrawer from '@/views/components/advanced/CuteFormDrawer.vue'
|
import CuteFormDrawer from '@/views/components/advanced/CuteFormDrawer.vue'
|
||||||
import { FormatRowDateTimeStr } from '@/utils/KitUtil'
|
|
||||||
import CuteTransfer from '@/views/components/dev/CuteTransfer.vue'
|
import CuteTransfer from '@/views/components/dev/CuteTransfer.vue'
|
||||||
import CuteEditTable from '@/views/components/advanced/CuteEditTable.vue'
|
|
||||||
import CuteFormDialogPro from '@/views/components/advanced/CuteFormDialogPro.vue'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'CuteSimpleTableDemo',
|
name: 'CuteSimpleTableDemo',
|
||||||
components: { CuteFormProDialog: CuteFormDialogPro, CuteEditTable: CuteEditTable, CuteTransfer, CuteFormDrawer, CuteFormDialog },
|
components: { CuteTransfer, CuteFormDrawer },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
modeDataSource: [
|
modeDataSource: [
|
||||||
@@ -118,30 +62,7 @@ export default {
|
|||||||
blurry: ''
|
blurry: ''
|
||||||
},
|
},
|
||||||
rules: {}
|
rules: {}
|
||||||
},
|
}
|
||||||
// CuteFormDialog
|
|
||||||
createFormModel: {
|
|
||||||
name: '',
|
|
||||||
region: '',
|
|
||||||
modeList: []
|
|
||||||
},
|
|
||||||
createFormRules: {
|
|
||||||
name: [
|
|
||||||
{ required: true, message: '请输入活动名称', trigger: 'blur' },
|
|
||||||
{ min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
|
|
||||||
],
|
|
||||||
region: [
|
|
||||||
{ required: true, message: '请选择活动区域', trigger: 'change' }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
// CuteFormDialogPro
|
|
||||||
createFormProModel: {},
|
|
||||||
createFormProSchema: [
|
|
||||||
{ name: 'name', title: '姓名', type: 'input', required: true },
|
|
||||||
{ name: 'sex', title: '性别', type: 'select', required: true, dataSource: [{ label: '男', value: 'nn' }, { label: '女', value: 'mm' }] },
|
|
||||||
{ name: 'createDate', title: '创建日期', type: 'date', required: false },
|
|
||||||
{ name: 'createTime', title: '创建时间', type: 'datetime', required: false }
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@@ -174,9 +95,6 @@ export default {
|
|||||||
onDialogProClick() {
|
onDialogProClick() {
|
||||||
this.$refs.dialogProForm.show()
|
this.$refs.dialogProForm.show()
|
||||||
},
|
},
|
||||||
onDialogFormSubmit(values) {
|
|
||||||
console.log('onDialogFormSubmit', values)
|
|
||||||
},
|
|
||||||
onDrawerClick() {
|
onDrawerClick() {
|
||||||
this.$refs.drawerFrom.show()
|
this.$refs.drawerFrom.show()
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ export default {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
apiData: [
|
apiData: [
|
||||||
{ name: 'value', remark: '绑定的值', type: 'array', defaultValue: '-', required: '否' },
|
{ name: 'value', remark: '绑定的值。当数据源中包含disabled字段时,当前行会随着disabled的值禁用与启用', type: 'array', defaultValue: '-', required: '否' },
|
||||||
{ name: 'primary-key', remark: '对象中的哪个字段设置为主键', type: 'string', defaultValue: 'id', required: '是' },
|
{ name: 'primary-key', remark: '对象中的哪个字段设置为主键', type: 'string', defaultValue: 'id', required: '是' },
|
||||||
{ name: 'height', remark: '表格高度', type: 'number', defaultValue: 'height', required: '否' },
|
{ name: 'height', remark: '表格高度', type: 'number', defaultValue: 'height', required: '否' },
|
||||||
{ name: 'schema', remark: '表格定义', type: 'array', defaultValue: '[]', required: '是' },
|
{ name: 'schema', remark: '表格定义', type: 'array', defaultValue: '[]', required: '是' },
|
||||||
@@ -77,7 +77,7 @@ export default {
|
|||||||
{ name: 'name', remark: '表单项名称', type: 'string', defaultValue: '-', required: '是' },
|
{ name: 'name', remark: '表单项名称', type: 'string', defaultValue: '-', required: '是' },
|
||||||
{ name: 'title', remark: '表单项标题', type: 'string', defaultValue: '-', required: '是' },
|
{ name: 'title', remark: '表单项标题', type: 'string', defaultValue: '-', required: '是' },
|
||||||
{ name: 'type', remark: '表单项类型。input 输入框 | select 单选框', type: 'string', defaultValue: '-', required: '是' },
|
{ name: 'type', remark: '表单项类型。input 输入框 | select 单选框', type: 'string', defaultValue: '-', required: '是' },
|
||||||
{ name: 'dataSource', remark: '数据源。当type=select时必填。当数据源中包含disabled字段时,当前行会随着disabled的值禁用与启用', type: 'array', defaultValue: '[]', required: '否' }
|
{ name: 'dataSource', remark: '数据源,当type=select时必填。', type: 'array', defaultValue: '[]', required: '否' }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -0,0 +1,104 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<h4>何时使用</h4>
|
||||||
|
<ul class="description">
|
||||||
|
<li>不离开当前场景完成增删改操作</li>
|
||||||
|
<li>需要确认用户的操作,明确操作会产生的结果,提醒告知用户</li>
|
||||||
|
<li>作为配置型功能及信息的容器</li>
|
||||||
|
<li>在使用过程中有任何问题,咨询 @Odboy(前端)</li>
|
||||||
|
</ul>
|
||||||
|
<h4>基础用法</h4>
|
||||||
|
<cute-button type="primary" @click="showDialogForm">显示对话框表单</cute-button>
|
||||||
|
<cute-form-dialog
|
||||||
|
ref="formDialog"
|
||||||
|
:model="model"
|
||||||
|
:rules="rules"
|
||||||
|
title="表单对话框"
|
||||||
|
@submit="onSubmit"
|
||||||
|
>
|
||||||
|
<el-form-item label="活动名称" prop="name" label-width="100px">
|
||||||
|
<el-input v-model="model.name" placeholder="请输入" style="width: 100%" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="活动区域" prop="region" label-width="100px">
|
||||||
|
<el-select v-model="model.region" placeholder="请选择" style="width: 100%">
|
||||||
|
<el-option label="区域一" value="shanghai" />
|
||||||
|
<el-option label="区域二" value="beijing" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</cute-form-dialog>
|
||||||
|
<h4>API</h4>
|
||||||
|
<el-table :data="apiData">
|
||||||
|
<el-table-column prop="name" label="参数" width="220" />
|
||||||
|
<el-table-column prop="remark" label="说明" width="450" />
|
||||||
|
<el-table-column prop="type" label="类型" />
|
||||||
|
<el-table-column prop="defaultValue" label="默认值" />
|
||||||
|
<el-table-column prop="required" label="是否必填" />
|
||||||
|
</el-table>
|
||||||
|
<h4>方法</h4>
|
||||||
|
<el-table :data="methodData">
|
||||||
|
<el-table-column prop="name" label="函数" width="220" />
|
||||||
|
<el-table-column prop="remark" label="说明" width="450" />
|
||||||
|
<el-table-column prop="inputArgs" label="入参" />
|
||||||
|
<el-table-column prop="outArgs" label="出参" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import CuteFormDialog from '@/views/components/advanced/CuteFormDialog.vue'
|
||||||
|
import CuteButton from '@/views/components/dev/CuteButton.vue'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'CuteFormDialogDemo',
|
||||||
|
components: { CuteButton, CuteFormDialog },
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
model: {
|
||||||
|
name: '',
|
||||||
|
region: '',
|
||||||
|
modeList: []
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
name: [
|
||||||
|
{ required: true, message: '请输入活动名称', trigger: 'blur' },
|
||||||
|
{ min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
region: [
|
||||||
|
{ required: true, message: '请选择活动区域', trigger: 'change' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
apiData: [
|
||||||
|
{ name: 'title', remark: '弹窗的标题', type: 'string', defaultValue: '默认标题', required: '否' },
|
||||||
|
{ name: 'width', remark: '弹窗的宽度', type: 'string', defaultValue: '40%', required: '否' },
|
||||||
|
{ name: 'fullscreen', remark: '是否全屏', type: 'boolean', defaultValue: 'false', required: '否' },
|
||||||
|
{ name: 'model', remark: '绑定的表单对象', type: 'object', defaultValue: '-', required: '是' },
|
||||||
|
{ name: 'rules', remark: '表单校验规则', type: 'object', defaultValue: '-', required: '否' },
|
||||||
|
{ name: 'inline', remark: '是否平铺显示。默认是垂直排列', type: 'boolean', defaultValue: 'false', required: '否' },
|
||||||
|
{ name: 'showReset', remark: '是否显示重置按钮', type: 'boolean', defaultValue: 'false', required: '否' },
|
||||||
|
{ name: 'submit', remark: '提交按钮被点击回调事件', type: '(values) => {}', defaultValue: '-', required: '否' },
|
||||||
|
{ name: 'cancel', remark: '取消按钮被点击回调事件', type: '() => {}', defaultValue: '-', required: '否' },
|
||||||
|
{ name: 'reset', remark: '重置按钮被点击回调事件', type: '() => {}', defaultValue: '-', required: '否' }
|
||||||
|
],
|
||||||
|
methodData: [
|
||||||
|
{ name: 'show', remark: '显示对话框', inputArgs: '-', outArgs: '-' },
|
||||||
|
{ name: 'hidden', remark: '隐藏对话框', inputArgs: '-', outArgs: '-' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
showDialogForm() {
|
||||||
|
this.$refs.formDialog.show()
|
||||||
|
},
|
||||||
|
onSubmit(values) {
|
||||||
|
console.log('onSubmit', values)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
ul {
|
||||||
|
padding-left: 20px;
|
||||||
|
}
|
||||||
|
.description > li{
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,101 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<h4>何时使用</h4>
|
||||||
|
<ul class="description">
|
||||||
|
<li>不离开当前场景完成增删改操作</li>
|
||||||
|
<li>需要确认用户的操作,明确操作会产生的结果,提醒告知用户</li>
|
||||||
|
<li>作为配置型功能及信息的容器</li>
|
||||||
|
<li>在使用过程中有任何问题,咨询 @Odboy(前端)</li>
|
||||||
|
</ul>
|
||||||
|
<h4>基础用法</h4>
|
||||||
|
<cute-button type="primary" @click="showDialogForm">显示对话框表单</cute-button>
|
||||||
|
<cute-form-dialog-pro
|
||||||
|
ref="formDialogPro"
|
||||||
|
:model="model"
|
||||||
|
:schema="schema"
|
||||||
|
title="表单对话框Pro"
|
||||||
|
@submit="onSubmit"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<h4>API</h4>
|
||||||
|
<el-table :data="apiData">
|
||||||
|
<el-table-column prop="name" label="参数" width="220" />
|
||||||
|
<el-table-column prop="remark" label="说明" width="450" />
|
||||||
|
<el-table-column prop="type" label="类型" />
|
||||||
|
<el-table-column prop="defaultValue" label="默认值" />
|
||||||
|
<el-table-column prop="required" label="是否必填" />
|
||||||
|
</el-table>
|
||||||
|
<h4>Schema属性</h4>
|
||||||
|
<el-table :data="schemaData">
|
||||||
|
<el-table-column prop="name" label="属性名" width="220" />
|
||||||
|
<el-table-column prop="remark" label="说明" width="450" />
|
||||||
|
<el-table-column prop="type" label="类型" />
|
||||||
|
<el-table-column prop="required" label="是否必填" />
|
||||||
|
</el-table>
|
||||||
|
<h4>方法</h4>
|
||||||
|
<el-table :data="methodData">
|
||||||
|
<el-table-column prop="name" label="函数" width="220" />
|
||||||
|
<el-table-column prop="remark" label="说明" width="450" />
|
||||||
|
<el-table-column prop="inputArgs" label="入参" />
|
||||||
|
<el-table-column prop="outArgs" label="出参" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import CuteFormDialogPro from '@/views/components/advanced/CuteFormDialogPro.vue'
|
||||||
|
import CuteButton from '@/views/components/dev/CuteButton.vue'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'CuteFormDialogProDemo',
|
||||||
|
components: { CuteButton, CuteFormDialogPro },
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
model: {},
|
||||||
|
schema: [
|
||||||
|
{ name: 'name', title: '姓名', type: 'input', required: true },
|
||||||
|
{ name: 'sex', title: '性别', type: 'select', required: true, dataSource: [{ label: '男', value: 'nn' }, { label: '女', value: 'mm' }] },
|
||||||
|
{ name: 'createDate', title: '创建日期', type: 'date', required: false },
|
||||||
|
{ name: 'createTime', title: '创建时间', type: 'datetime', required: false }
|
||||||
|
],
|
||||||
|
apiData: [
|
||||||
|
{ name: 'title', remark: '弹窗的标题', type: 'string', defaultValue: '默认标题', required: '否' },
|
||||||
|
{ name: 'width', remark: '弹窗的宽度', type: 'string', defaultValue: '40%', required: '否' },
|
||||||
|
{ name: 'fullscreen', remark: '是否全屏', type: 'boolean', defaultValue: 'false', required: '否' },
|
||||||
|
{ name: 'model', remark: '绑定的表单对象', type: 'object', defaultValue: '-', required: '是' },
|
||||||
|
{ name: 'schema', remark: '表单定义', type: 'object', defaultValue: '-', required: '是' },
|
||||||
|
{ name: 'showReset', remark: '是否显示重置按钮', type: 'boolean', defaultValue: 'false', required: '否' },
|
||||||
|
{ name: 'submit', remark: '提交按钮被点击回调事件', type: '(values) => {}', defaultValue: '-', required: '否' },
|
||||||
|
{ name: 'cancel', remark: '取消按钮被点击回调事件', type: '() => {}', defaultValue: '-', required: '否' },
|
||||||
|
{ name: 'reset', remark: '重置按钮被点击回调事件', type: '() => {}', defaultValue: '-', required: '否' }
|
||||||
|
],
|
||||||
|
schemaData: [
|
||||||
|
{ name: 'name', remark: '表单项名称', type: 'string', defaultValue: '-', required: '是' },
|
||||||
|
{ name: 'title', remark: '表单项标题', type: 'string', defaultValue: '-', required: '是' },
|
||||||
|
{ name: 'type', remark: '表单项类型。input 输入框 | select 单选框 | date 日期选择框 | datetime 日期时间选择框', type: 'string', defaultValue: '-', required: '是' },
|
||||||
|
{ name: 'required', remark: '是否必填', type: 'boolean', defaultValue: 'false', required: '否' },
|
||||||
|
{ name: 'dataSource', remark: '数据源,当type=select时必填', type: 'array', defaultValue: '[]', required: '否' }
|
||||||
|
],
|
||||||
|
methodData: [
|
||||||
|
{ name: 'show', remark: '显示对话框', inputArgs: '-', outArgs: '-' },
|
||||||
|
{ name: 'hidden', remark: '隐藏对话框', inputArgs: '-', outArgs: '-' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
showDialogForm() {
|
||||||
|
this.$refs.formDialogPro.show()
|
||||||
|
},
|
||||||
|
onSubmit(values) {
|
||||||
|
console.log('onSubmit', values)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
ul {
|
||||||
|
padding-left: 20px;
|
||||||
|
}
|
||||||
|
.description > li{
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<h4>何时使用</h4>
|
||||||
|
<ul class="description">
|
||||||
|
<li>不离开当前场景完成增删改操作</li>
|
||||||
|
<li>作为配置型功能及信息的容器</li>
|
||||||
|
<li>在使用过程中有任何问题,咨询 @Odboy(前端)</li>
|
||||||
|
</ul>
|
||||||
|
<h4>基础用法</h4>
|
||||||
|
<cute-button type="primary" @click="showDialogForm">显示对话框表单</cute-button>
|
||||||
|
<cute-form-drawer
|
||||||
|
ref="formDrawer"
|
||||||
|
:model="model"
|
||||||
|
:rules="rules"
|
||||||
|
title="表单抽屉"
|
||||||
|
@submit="onSubmit"
|
||||||
|
>
|
||||||
|
<el-form-item label="活动名称" prop="name" label-width="100px">
|
||||||
|
<el-input v-model="model.name" placeholder="请输入" style="width: 100%" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="活动区域" prop="region" label-width="100px">
|
||||||
|
<el-select v-model="model.region" placeholder="请选择" style="width: 100%">
|
||||||
|
<el-option label="区域一" value="shanghai" />
|
||||||
|
<el-option label="区域二" value="beijing" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</cute-form-drawer>
|
||||||
|
<h4>API</h4>
|
||||||
|
<el-table :data="apiData">
|
||||||
|
<el-table-column prop="name" label="参数" width="220" />
|
||||||
|
<el-table-column prop="remark" label="说明" width="450" />
|
||||||
|
<el-table-column prop="type" label="类型" />
|
||||||
|
<el-table-column prop="defaultValue" label="默认值" />
|
||||||
|
<el-table-column prop="required" label="是否必填" />
|
||||||
|
</el-table>
|
||||||
|
<h4>方法</h4>
|
||||||
|
<el-table :data="methodData">
|
||||||
|
<el-table-column prop="name" label="函数" width="220" />
|
||||||
|
<el-table-column prop="remark" label="说明" width="450" />
|
||||||
|
<el-table-column prop="inputArgs" label="入参" />
|
||||||
|
<el-table-column prop="outArgs" label="出参" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import CuteButton from '@/views/components/dev/CuteButton.vue'
|
||||||
|
import CuteFormDrawer from '@/views/components/advanced/CuteFormDrawer.vue'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'CuteFormDrawerDemo',
|
||||||
|
components: { CuteFormDrawer, CuteButton },
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
model: {
|
||||||
|
name: '',
|
||||||
|
region: '',
|
||||||
|
modeList: []
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
name: [
|
||||||
|
{ required: true, message: '请输入活动名称', trigger: 'blur' },
|
||||||
|
{ min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
region: [
|
||||||
|
{ required: true, message: '请选择活动区域', trigger: 'change' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
apiData: [
|
||||||
|
{ name: 'title', remark: '弹窗的标题', type: 'string', defaultValue: '默认标题', required: '否' },
|
||||||
|
{ name: 'width', remark: '弹窗的宽度', type: 'string', defaultValue: '40%', required: '否' },
|
||||||
|
{ name: 'model', remark: '绑定的表单对象', type: 'object', defaultValue: '-', required: '是' },
|
||||||
|
{ name: 'rules', remark: '表单校验规则', type: 'object', defaultValue: '-', required: '否' },
|
||||||
|
{ name: 'inline', remark: '是否平铺显示。默认是垂直排列', type: 'boolean', defaultValue: 'false', required: '否' },
|
||||||
|
{ name: 'showReset', remark: '是否显示重置按钮', type: 'boolean', defaultValue: 'false', required: '否' },
|
||||||
|
{ name: 'submit', remark: '提交按钮被点击回调事件', type: '(values) => {}', defaultValue: '-', required: '否' },
|
||||||
|
{ name: 'cancel', remark: '取消按钮被点击回调事件', type: '() => {}', defaultValue: '-', required: '否' },
|
||||||
|
{ name: 'reset', remark: '重置按钮被点击回调事件', type: '() => {}', defaultValue: '-', required: '否' }
|
||||||
|
],
|
||||||
|
methodData: [
|
||||||
|
{ name: 'show', remark: '显示对话框', inputArgs: '-', outArgs: '-' },
|
||||||
|
{ name: 'hidden', remark: '隐藏对话框', inputArgs: '-', outArgs: '-' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
showDialogForm() {
|
||||||
|
this.$refs.formDrawer.show()
|
||||||
|
},
|
||||||
|
onSubmit(values) {
|
||||||
|
console.log('onSubmit', values)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
ul {
|
||||||
|
padding-left: 20px;
|
||||||
|
}
|
||||||
|
.description > li{
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -136,10 +136,10 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
FormatRowDateTimeStr,
|
FormatRowDateTimeStr,
|
||||||
onTableEditClick(row) {
|
onTableEditClick(row) {
|
||||||
console.log('编辑', row)
|
console.log('onTableEditClick', row)
|
||||||
},
|
},
|
||||||
onTableDeleteClick(row) {
|
onTableDeleteClick(row) {
|
||||||
console.log('删除', row)
|
console.log('onTableDeleteClick', row)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,8 @@
|
|||||||
<el-button type="primary" @click="submitForm('form')">提 交</el-button>
|
<el-button type="primary" @click="submitForm('form')">提 交</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<h4>与CuteFormDialog集成 <el-button type="text" @click="showFormDialog">显示对话框</el-button></h4>
|
<h4>与CuteFormDialog集成</h4>
|
||||||
|
<cute-button type="primary" @click="showFormDialog">显示对话框</cute-button>
|
||||||
<cute-form-dialog ref="formDialog" title="与CuteFormDialog集成" :model="form">
|
<cute-form-dialog ref="formDialog" title="与CuteFormDialog集成" :model="form">
|
||||||
<el-form-item label="活动名称" prop="name" label-width="80px">
|
<el-form-item label="活动名称" prop="name" label-width="80px">
|
||||||
<el-input v-model="form.name" style="width: 100%" />
|
<el-input v-model="form.name" style="width: 100%" />
|
||||||
@@ -39,7 +40,8 @@
|
|||||||
<cute-file-drag-upload v-model="form" mode="local" />
|
<cute-file-drag-upload v-model="form" mode="local" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</cute-form-dialog>
|
</cute-form-dialog>
|
||||||
<h4>与CuteFormDrawer集成 <el-button type="text" @click="showFormDrawer">显示抽屉</el-button></h4>
|
<h4>与CuteFormDrawer集成</h4>
|
||||||
|
<cute-button type="primary" @click="showFormDrawer">显示抽屉</cute-button>
|
||||||
<cute-form-drawer ref="formDrawer" title="与CuteFormDrawer集成" :model="form">
|
<cute-form-drawer ref="formDrawer" title="与CuteFormDrawer集成" :model="form">
|
||||||
<el-form-item label="活动名称" prop="name" label-width="80px">
|
<el-form-item label="活动名称" prop="name" label-width="80px">
|
||||||
<el-input v-model="form.name" style="width: 100%" />
|
<el-input v-model="form.name" style="width: 100%" />
|
||||||
@@ -68,10 +70,11 @@
|
|||||||
import CuteFormDialog from '@/views/components/advanced/CuteFormDialog.vue'
|
import CuteFormDialog from '@/views/components/advanced/CuteFormDialog.vue'
|
||||||
import CuteFileDragUpload from '@/views/components/business/CuteFileDragUpload.vue'
|
import CuteFileDragUpload from '@/views/components/business/CuteFileDragUpload.vue'
|
||||||
import CuteFormDrawer from '@/views/components/advanced/CuteFormDrawer.vue'
|
import CuteFormDrawer from '@/views/components/advanced/CuteFormDrawer.vue'
|
||||||
|
import CuteButton from '@/views/components/dev/CuteButton.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'CuteFileDragUploadDemo',
|
name: 'CuteFileDragUploadDemo',
|
||||||
components: { CuteFormDrawer, CuteFormDialog, CuteFileDragUpload },
|
components: { CuteButton, CuteFormDrawer, CuteFormDialog, CuteFileDragUpload },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
form: {
|
form: {
|
||||||
|
|||||||
@@ -24,7 +24,8 @@
|
|||||||
<el-button type="primary" @click="submitForm('form')">提 交</el-button>
|
<el-button type="primary" @click="submitForm('form')">提 交</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<h4>与CuteFormDialog集成 <el-button type="text" @click="showFormDialog">显示对话框</el-button></h4>
|
<h4>与CuteFormDialog集成</h4>
|
||||||
|
<cute-button type="primary" @click="showFormDialog">显示对话框</cute-button>
|
||||||
<cute-form-dialog ref="formDialog" title="与CuteFormDialog集成" :model="form">
|
<cute-form-dialog ref="formDialog" title="与CuteFormDialog集成" :model="form">
|
||||||
<el-form-item label="活动名称" prop="name" label-width="80px">
|
<el-form-item label="活动名称" prop="name" label-width="80px">
|
||||||
<el-input v-model="form.name" style="width: 100%" />
|
<el-input v-model="form.name" style="width: 100%" />
|
||||||
@@ -39,7 +40,8 @@
|
|||||||
<cute-file-upload v-model="form" mode="local" />
|
<cute-file-upload v-model="form" mode="local" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</cute-form-dialog>
|
</cute-form-dialog>
|
||||||
<h4>与CuteFormDrawer集成 <el-button type="text" @click="showFormDrawer">显示抽屉</el-button></h4>
|
<h4>与CuteFormDrawer集成</h4>
|
||||||
|
<cute-button type="primary" @click="showFormDrawer">显示抽屉</cute-button>
|
||||||
<cute-form-drawer ref="formDrawer" title="与CuteFormDrawer集成" :model="form">
|
<cute-form-drawer ref="formDrawer" title="与CuteFormDrawer集成" :model="form">
|
||||||
<el-form-item label="活动名称" prop="name" label-width="80px">
|
<el-form-item label="活动名称" prop="name" label-width="80px">
|
||||||
<el-input v-model="form.name" style="width: 100%" />
|
<el-input v-model="form.name" style="width: 100%" />
|
||||||
@@ -68,10 +70,11 @@
|
|||||||
import CuteFileUpload from '@/views/components/business/CuteFileUpload.vue'
|
import CuteFileUpload from '@/views/components/business/CuteFileUpload.vue'
|
||||||
import CuteFormDialog from '@/views/components/advanced/CuteFormDialog.vue'
|
import CuteFormDialog from '@/views/components/advanced/CuteFormDialog.vue'
|
||||||
import CuteFormDrawer from '@/views/components/advanced/CuteFormDrawer.vue'
|
import CuteFormDrawer from '@/views/components/advanced/CuteFormDrawer.vue'
|
||||||
|
import CuteButton from '@/views/components/dev/CuteButton.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'CuteFileUploadDemo',
|
name: 'CuteFileUploadDemo',
|
||||||
components: { CuteFormDrawer, CuteFormDialog, CuteFileUpload },
|
components: { CuteButton, CuteFormDrawer, CuteFormDialog, CuteFileUpload },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
form: {
|
form: {
|
||||||
|
|||||||
@@ -99,9 +99,18 @@
|
|||||||
<el-collapse-item title="可拖拽排序的数据表格 CuteDragTable" name="CuteDragTable">
|
<el-collapse-item title="可拖拽排序的数据表格 CuteDragTable" name="CuteDragTable">
|
||||||
<CuteDragTableDemo />
|
<CuteDragTableDemo />
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
<el-collapse-item title="可编辑表格 CuteEditTable" name="CuteEditTable">
|
<el-collapse-item title="可编辑表格(Schema版) CuteEditTable" name="CuteEditTable">
|
||||||
<CuteEditTableDemo />
|
<CuteEditTableDemo />
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
|
<el-collapse-item title="表单弹窗 CuteFormDialog" name="CuteFormDialog">
|
||||||
|
<CuteFormDialogDemo />
|
||||||
|
</el-collapse-item>
|
||||||
|
<el-collapse-item title="表单弹窗(Schema版) CuteFormDialogPro" name="CuteFormDialogPro">
|
||||||
|
<CuteFormDialogProDemo />
|
||||||
|
</el-collapse-item>
|
||||||
|
<el-collapse-item title="表单抽屉 CuteFormDrawer" name="CuteFormDrawer">
|
||||||
|
<CuteFormDrawerDemo />
|
||||||
|
</el-collapse-item>
|
||||||
</el-collapse>
|
</el-collapse>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
@@ -139,10 +148,16 @@ import CuteFileDragUploadDemo from '@/views/componentsDemo/business/CuteFileDrag
|
|||||||
import CuteSimpleTableDemo from '@/views/componentsDemo/CuteSimpleTableDemo.vue'
|
import CuteSimpleTableDemo from '@/views/componentsDemo/CuteSimpleTableDemo.vue'
|
||||||
import CuteDragTableDemo from '@/views/componentsDemo/advanced/CuteDragTableDemo.vue'
|
import CuteDragTableDemo from '@/views/componentsDemo/advanced/CuteDragTableDemo.vue'
|
||||||
import CuteEditTableDemo from '@/views/componentsDemo/advanced/CuteEditTableDemo.vue'
|
import CuteEditTableDemo from '@/views/componentsDemo/advanced/CuteEditTableDemo.vue'
|
||||||
|
import CuteFormDialogDemo from '@/views/componentsDemo/advanced/CuteFormDialogDemo.vue'
|
||||||
|
import CuteFormDialogProDemo from '@/views/componentsDemo/advanced/CuteFormDialogProDemo.vue'
|
||||||
|
import CuteFormDrawerDemo from '@/views/componentsDemo/advanced/CuteFormDrawerDemo.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'SystemComponents',
|
name: 'SystemComponents',
|
||||||
components: {
|
components: {
|
||||||
|
CuteFormDrawerDemo,
|
||||||
|
CuteFormDialogProDemo,
|
||||||
|
CuteFormDialogDemo,
|
||||||
CuteEditTableDemo,
|
CuteEditTableDemo,
|
||||||
CuteDragTableDemo,
|
CuteDragTableDemo,
|
||||||
CuteSimpleTableDemo,
|
CuteSimpleTableDemo,
|
||||||
|
|||||||
Reference in New Issue
Block a user