@opentiny/vue-docs 2.0.4 → 2.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/demos/app/alert/close-text-composition-api.vue +2 -3
- package/demos/app/alert/close-text.vue +2 -3
- package/demos/app/anchor/on-change-composition-api.vue +2 -3
- package/demos/app/anchor/on-change.vue +2 -3
- package/demos/app/chart/webdoc/chart.js +13 -13
- package/demos/app/dept/before-confirm-composition-api.vue +2 -3
- package/demos/app/dept/before-confirm.vue +2 -3
- package/demos/app/file-upload/abort-quest-composition-api.vue +2 -3
- package/demos/app/file-upload/abort-quest.vue +2 -3
- package/demos/app/file-upload/custom-prefix-composition-api.vue +3 -4
- package/demos/app/file-upload/custom-prefix.vue +3 -4
- package/demos/app/file-upload/custom-upload-request-composition-api.vue +2 -3
- package/demos/app/file-upload/custom-upload-request.vue +2 -3
- package/demos/app/file-upload/drag-upload-composition-api.vue +2 -3
- package/demos/app/file-upload/drag-upload.vue +2 -3
- package/demos/app/file-upload/jalor-request-composition-api.vue +2 -3
- package/demos/app/file-upload/jalor-request.vue +2 -3
- package/demos/app/file-upload/max-file-count-composition-api.vue +2 -3
- package/demos/app/file-upload/max-file-count.vue +2 -3
- package/demos/app/file-upload/prevent-delete-file-composition-api.vue +2 -3
- package/demos/app/file-upload/prevent-delete-file.vue +2 -3
- package/demos/app/file-upload/prevent-upload-file-composition-api.vue +2 -3
- package/demos/app/file-upload/prevent-upload-file.vue +2 -3
- package/demos/app/file-upload/upload-events-composition-api.vue +9 -10
- package/demos/app/file-upload/upload-events.vue +9 -10
- package/demos/app/file-upload/upload-request-composition-api.vue +2 -3
- package/demos/app/file-upload/upload-request.vue +2 -3
- package/demos/app/form/display-only-composition-api.vue +1 -2
- package/demos/app/form/display-only.vue +1 -2
- package/demos/app/form/form-validate-field-composition-api.vue +151 -0
- package/demos/app/form/form-validate-field.vue +163 -0
- package/demos/app/form/frequently-used-form-composition-api.vue +3 -3
- package/demos/app/form/frequently-used-form.vue +2 -3
- package/demos/app/form/no-validate-to-add-composition-api.vue +4 -4
- package/demos/app/form/no-validate-to-add.vue +4 -4
- package/demos/app/form/size-composition-api.vue +3 -3
- package/demos/app/form/size.vue +2 -3
- package/demos/app/form/webdoc/form.js +12 -1
- package/demos/app/grid/event/toolbar-button-click-event-composition-api.vue +5 -6
- package/demos/app/grid/event/toolbar-button-click-event.vue +1 -2
- package/demos/app/grid/grid_Example/gridValid/before-submit-validation-composition-api.vue +3 -4
- package/demos/app/grid/grid_Example/gridValid/before-submit-validation.vue +3 -4
- package/demos/app/grid/grid_Example/gridValid/select-validation-composition-api.vue +4 -5
- package/demos/app/grid/grid_Example/gridValid/select-validation.vue +4 -5
- package/demos/app/grid/grid_Example/gridValid/validation-scroll-to-col-composition-api.vue +9 -4
- package/demos/app/grid/grid_Example/gridValid/validation-scroll-to-col.vue +3 -4
- package/demos/app/grid/grid_Example/shortcutMenu/footer-menu-composition-api.vue +1 -2
- package/demos/app/grid/grid_Example/shortcutMenu/footer-menu.vue +1 -2
- package/demos/app/grid/grid_Example/shortcutMenu/header-menu-composition-api.vue +1 -2
- package/demos/app/grid/grid_Example/shortcutMenu/header-menu.vue +1 -2
- package/demos/app/grid/grid_Example/shortcutMenu/menu-permissions-composition-api.vue +1 -2
- package/demos/app/grid/grid_Example/shortcutMenu/menu-permissions.vue +1 -2
- package/demos/app/grid/slot/buttons-slot-composition-api.vue +5 -6
- package/demos/app/grid/slot/buttons-slot.vue +5 -6
- package/demos/app/grid/tiny-first-menu/copy-row-data-composition-api.vue +2 -3
- package/demos/app/grid/tiny-first-menu/copy-row-data.vue +2 -3
- package/demos/app/grid/tiny-first-menu/get-row-method-composition-api.vue +6 -7
- package/demos/app/grid/tiny-first-menu/get-row-method.vue +6 -7
- package/demos/app/grid/tiny-first-menu/insert-delete-update-composition-api.vue +3 -4
- package/demos/app/grid/tiny-first-menu/insert-delete-update.vue +3 -4
- package/demos/app/grid/toolbar/toolbar-op-config-composition-api.vue +4 -5
- package/demos/app/grid/toolbar/toolbar-op-config.vue +4 -5
- package/index.html +1 -0
- package/md.extend.config.js +6 -30
- package/package.json +23 -23
- package/playground/App.vue +37 -23
- package/src/views/components/components.vue +8 -1
- package/vite.config.js +0 -3
- package/LICENSE +0 -22
|
@@ -14,8 +14,7 @@
|
|
|
14
14
|
</template>
|
|
15
15
|
|
|
16
16
|
<script lang="jsx">
|
|
17
|
-
import { FileUpload, Button } from '@opentiny/vue'
|
|
18
|
-
import { message } from '@opentiny/vue-modal'
|
|
17
|
+
import { FileUpload, Button, Modal } from '@opentiny/vue'
|
|
19
18
|
|
|
20
19
|
export default {
|
|
21
20
|
components: {
|
|
@@ -39,7 +38,7 @@ export default {
|
|
|
39
38
|
},
|
|
40
39
|
methods: {
|
|
41
40
|
beforeUpload() {
|
|
42
|
-
message('查看请求头示例请打开浏览器开发者工具 network 的 upload 请求')
|
|
41
|
+
Modal.message('查看请求头示例请打开浏览器开发者工具 network 的 upload 请求')
|
|
43
42
|
|
|
44
43
|
return true
|
|
45
44
|
}
|
|
@@ -111,7 +111,6 @@ import {
|
|
|
111
111
|
Option as TinyOption,
|
|
112
112
|
Modal
|
|
113
113
|
} from '@opentiny/vue'
|
|
114
|
-
import { alert } from '@opentiny/vue-modal'
|
|
115
114
|
|
|
116
115
|
const displayOnly = ref(true)
|
|
117
116
|
const top = ref(false)
|
|
@@ -420,7 +419,7 @@ onMounted(() => {
|
|
|
420
419
|
})
|
|
421
420
|
|
|
422
421
|
function submitClick() {
|
|
423
|
-
alert('提交')
|
|
422
|
+
Modal.alert('提交')
|
|
424
423
|
}
|
|
425
424
|
|
|
426
425
|
function querySearch(queryString, cb) {
|
|
@@ -110,7 +110,6 @@ import {
|
|
|
110
110
|
Option,
|
|
111
111
|
Modal
|
|
112
112
|
} from '@opentiny/vue'
|
|
113
|
-
import { alert } from '@opentiny/vue-modal'
|
|
114
113
|
|
|
115
114
|
export default {
|
|
116
115
|
components: {
|
|
@@ -439,7 +438,7 @@ export default {
|
|
|
439
438
|
},
|
|
440
439
|
methods: {
|
|
441
440
|
submitClick() {
|
|
442
|
-
alert('提交')
|
|
441
|
+
Modal.alert('提交')
|
|
443
442
|
},
|
|
444
443
|
querySearch(queryString, cb) {
|
|
445
444
|
let restaurants = this.restaurants
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="demo-form">
|
|
3
|
+
<tiny-form
|
|
4
|
+
ref="ruleFormRef"
|
|
5
|
+
hide-required-asterisk
|
|
6
|
+
:model="createData"
|
|
7
|
+
:rules="rules"
|
|
8
|
+
label-width="100px"
|
|
9
|
+
show-message
|
|
10
|
+
>
|
|
11
|
+
<tiny-form-item label="姓名" prop="users" required :validate-icon="validateIcon">
|
|
12
|
+
<tiny-input v-model="createData.users"></tiny-input>
|
|
13
|
+
</tiny-form-item>
|
|
14
|
+
<tiny-form-item label="日期" prop="datepicker">
|
|
15
|
+
<tiny-date-picker v-model="createData.datepicker"></tiny-date-picker>
|
|
16
|
+
</tiny-form-item>
|
|
17
|
+
<tiny-form-item label="URL" prop="url">
|
|
18
|
+
<tiny-input v-model="createData.url"></tiny-input>
|
|
19
|
+
</tiny-form-item>
|
|
20
|
+
<tiny-form-item label="等级" prop="radio">
|
|
21
|
+
<tiny-radio-group v-model="createData.radio" :options="options"></tiny-radio-group>
|
|
22
|
+
</tiny-form-item>
|
|
23
|
+
<tiny-form-item label="邮件" prop="email">
|
|
24
|
+
<tiny-input v-model="createData.email"></tiny-input>
|
|
25
|
+
</tiny-form-item>
|
|
26
|
+
<tiny-form-item label="文本">
|
|
27
|
+
<tiny-input v-model="createData.textarea" type="textarea" maxlength="15"></tiny-input>
|
|
28
|
+
</tiny-form-item>
|
|
29
|
+
<tiny-form-item label="级联选择器" prop="cascader">
|
|
30
|
+
<tiny-cascader
|
|
31
|
+
v-model="createData.cascader"
|
|
32
|
+
:options="options2"
|
|
33
|
+
:popper-append-to-body="true"
|
|
34
|
+
filterable
|
|
35
|
+
></tiny-cascader>
|
|
36
|
+
</tiny-form-item>
|
|
37
|
+
<tiny-form-item label="Numeric字段" prop="num1">
|
|
38
|
+
<tiny-numeric v-model="createData.num1"></tiny-numeric>
|
|
39
|
+
</tiny-form-item>
|
|
40
|
+
<tiny-form-item label="IP字段" prop="ip">
|
|
41
|
+
<tiny-ip-address v-model="createData.ip"></tiny-ip-address>
|
|
42
|
+
</tiny-form-item>
|
|
43
|
+
<tiny-form-item>
|
|
44
|
+
<tiny-button type="primary" @click="validateSingleField"> 检验单个字段 </tiny-button>
|
|
45
|
+
<tiny-button type="primary" @click="validateFields"> 校验特定字段 </tiny-button>
|
|
46
|
+
</tiny-form-item>
|
|
47
|
+
</tiny-form>
|
|
48
|
+
</div>
|
|
49
|
+
</template>
|
|
50
|
+
|
|
51
|
+
<script setup>
|
|
52
|
+
import { ref, reactive } from 'vue'
|
|
53
|
+
import {
|
|
54
|
+
Form as TinyForm,
|
|
55
|
+
FormItem as TinyFormItem,
|
|
56
|
+
Input as TinyInput,
|
|
57
|
+
DatePicker as TinyDatePicker,
|
|
58
|
+
Button as TinyButton,
|
|
59
|
+
Modal,
|
|
60
|
+
RadioGroup as TinyRadioGroup,
|
|
61
|
+
Cascader as TinyCascader,
|
|
62
|
+
Numeric as TinyNumeric,
|
|
63
|
+
IpAddress as TinyIpAddress
|
|
64
|
+
} from '@opentiny/vue'
|
|
65
|
+
import { iconWarning } from '@opentiny/vue-icon'
|
|
66
|
+
|
|
67
|
+
const ruleFormRef = ref()
|
|
68
|
+
function handleClick() {
|
|
69
|
+
Modal.message({ message: 'click' })
|
|
70
|
+
}
|
|
71
|
+
const validateIcon = ref(iconWarning())
|
|
72
|
+
const options = ref([
|
|
73
|
+
{ label: 'A', text: '很好', events: { click: handleClick } },
|
|
74
|
+
{ label: 'B', text: '一般' }
|
|
75
|
+
])
|
|
76
|
+
const options2 = ref([
|
|
77
|
+
{
|
|
78
|
+
value: 'zhinan',
|
|
79
|
+
label: '指南',
|
|
80
|
+
children: [
|
|
81
|
+
{
|
|
82
|
+
value: 'anzhuang',
|
|
83
|
+
label: '安装'
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
value: 'kaifa',
|
|
87
|
+
label: '开发'
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
])
|
|
92
|
+
const createData = reactive({
|
|
93
|
+
radio: '',
|
|
94
|
+
users: '',
|
|
95
|
+
url: '',
|
|
96
|
+
email: '',
|
|
97
|
+
datepicker: '',
|
|
98
|
+
textarea: '',
|
|
99
|
+
ip: '',
|
|
100
|
+
num1: 0,
|
|
101
|
+
cascader: [] // 注意:级联选择器放在表单中校验时,默认值必须是数组
|
|
102
|
+
})
|
|
103
|
+
const rules = ref({
|
|
104
|
+
radio: [{ required: true, message: '必填', trigger: 'change' }],
|
|
105
|
+
users: [
|
|
106
|
+
{ required: true, message: '必填', trigger: 'blur' },
|
|
107
|
+
{ min: 2, max: 11, message: '长度必须不小于2', trigger: ['change', 'blur'] }
|
|
108
|
+
],
|
|
109
|
+
datepicker: { type: 'date' },
|
|
110
|
+
url: { type: 'url', required: true },
|
|
111
|
+
email: { type: 'email' },
|
|
112
|
+
cascader: [{ required: true, message: '必填', trigger: 'blur' }],
|
|
113
|
+
ip: [
|
|
114
|
+
{
|
|
115
|
+
validator: (rule, value, cb) => (value === '1.1.1.1' ? cb() : cb(new Error('必填1.1.1.1'))),
|
|
116
|
+
trigger: 'change'
|
|
117
|
+
}
|
|
118
|
+
],
|
|
119
|
+
num1: [{ type: 'number', min: 2, max: 11, message: '必填 2~11 之间的数字', trigger: 'change' }]
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
function validateSingleField() {
|
|
123
|
+
ruleFormRef.value.validateField('users', (errMsg, fieldConfig) => {
|
|
124
|
+
if (errMsg) {
|
|
125
|
+
console.log(fieldConfig)
|
|
126
|
+
} else {
|
|
127
|
+
Modal.alert('姓名通过校验')
|
|
128
|
+
}
|
|
129
|
+
})
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
async function validateFields() {
|
|
133
|
+
const errArray = []
|
|
134
|
+
await ruleFormRef.value.validateField(['url', 'datepicker'], (errMsg, fieldConfig) => {
|
|
135
|
+
if (errMsg) {
|
|
136
|
+
errArray.push(fieldConfig)
|
|
137
|
+
}
|
|
138
|
+
})
|
|
139
|
+
if (errArray.length > 0) {
|
|
140
|
+
console.log(errArray)
|
|
141
|
+
} else {
|
|
142
|
+
Modal.alert('日期和url通过校验')
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
</script>
|
|
146
|
+
|
|
147
|
+
<style scoped>
|
|
148
|
+
.demo-form {
|
|
149
|
+
width: 380px;
|
|
150
|
+
}
|
|
151
|
+
</style>
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="demo-form">
|
|
3
|
+
<tiny-form
|
|
4
|
+
ref="ruleFormRef"
|
|
5
|
+
hide-required-asterisk
|
|
6
|
+
:model="createData"
|
|
7
|
+
:rules="rules"
|
|
8
|
+
label-width="100px"
|
|
9
|
+
show-message
|
|
10
|
+
>
|
|
11
|
+
<tiny-form-item label="姓名" prop="users" required :validate-icon="validateIcon">
|
|
12
|
+
<tiny-input v-model="createData.users"></tiny-input>
|
|
13
|
+
</tiny-form-item>
|
|
14
|
+
<tiny-form-item label="日期" prop="datepicker">
|
|
15
|
+
<tiny-date-picker v-model="createData.datepicker"></tiny-date-picker>
|
|
16
|
+
</tiny-form-item>
|
|
17
|
+
<tiny-form-item label="URL" prop="url">
|
|
18
|
+
<tiny-input v-model="createData.url"></tiny-input>
|
|
19
|
+
</tiny-form-item>
|
|
20
|
+
<tiny-form-item label="等级" prop="radio">
|
|
21
|
+
<tiny-radio-group v-model="createData.radio" :options="options"></tiny-radio-group>
|
|
22
|
+
</tiny-form-item>
|
|
23
|
+
<tiny-form-item label="邮件" prop="email">
|
|
24
|
+
<tiny-input v-model="createData.email"></tiny-input>
|
|
25
|
+
</tiny-form-item>
|
|
26
|
+
<tiny-form-item label="文本">
|
|
27
|
+
<tiny-input v-model="createData.textarea" type="textarea" maxlength="15"></tiny-input>
|
|
28
|
+
</tiny-form-item>
|
|
29
|
+
<tiny-form-item label="级联选择器" prop="cascader">
|
|
30
|
+
<tiny-cascader
|
|
31
|
+
v-model="createData.cascader"
|
|
32
|
+
:options="options2"
|
|
33
|
+
:popper-append-to-body="true"
|
|
34
|
+
filterable
|
|
35
|
+
></tiny-cascader>
|
|
36
|
+
</tiny-form-item>
|
|
37
|
+
<tiny-form-item label="Numeric字段" prop="num1">
|
|
38
|
+
<tiny-numeric v-model="createData.num1"></tiny-numeric>
|
|
39
|
+
</tiny-form-item>
|
|
40
|
+
<tiny-form-item label="IP字段" prop="ip">
|
|
41
|
+
<tiny-ip-address v-model="createData.ip"></tiny-ip-address>
|
|
42
|
+
</tiny-form-item>
|
|
43
|
+
<tiny-form-item>
|
|
44
|
+
<tiny-button type="primary" @click="validateSingleField"> 检验单个字段 </tiny-button>
|
|
45
|
+
<tiny-button type="primary" @click="validateFields"> 校验特定字段 </tiny-button>
|
|
46
|
+
</tiny-form-item>
|
|
47
|
+
</tiny-form>
|
|
48
|
+
</div>
|
|
49
|
+
</template>
|
|
50
|
+
|
|
51
|
+
<script>
|
|
52
|
+
import {
|
|
53
|
+
Form,
|
|
54
|
+
FormItem,
|
|
55
|
+
Input,
|
|
56
|
+
DatePicker,
|
|
57
|
+
Button,
|
|
58
|
+
Modal,
|
|
59
|
+
RadioGroup,
|
|
60
|
+
Cascader,
|
|
61
|
+
Numeric,
|
|
62
|
+
IpAddress
|
|
63
|
+
} from '@opentiny/vue'
|
|
64
|
+
import { iconWarning } from '@opentiny/vue-icon'
|
|
65
|
+
|
|
66
|
+
export default {
|
|
67
|
+
components: {
|
|
68
|
+
TinyForm: Form,
|
|
69
|
+
TinyFormItem: FormItem,
|
|
70
|
+
TinyInput: Input,
|
|
71
|
+
TinyDatePicker: DatePicker,
|
|
72
|
+
TinyButton: Button,
|
|
73
|
+
TinyRadioGroup: RadioGroup,
|
|
74
|
+
TinyCascader: Cascader,
|
|
75
|
+
TinyNumeric: Numeric,
|
|
76
|
+
TinyIpAddress: IpAddress
|
|
77
|
+
},
|
|
78
|
+
data() {
|
|
79
|
+
return {
|
|
80
|
+
validateIcon: iconWarning(),
|
|
81
|
+
options: [
|
|
82
|
+
{ label: 'A', text: '很好', events: { click: this.handleClick } },
|
|
83
|
+
{ label: 'B', text: '一般' }
|
|
84
|
+
],
|
|
85
|
+
options2: [
|
|
86
|
+
{
|
|
87
|
+
value: 'zhinan',
|
|
88
|
+
label: '指南',
|
|
89
|
+
children: [
|
|
90
|
+
{
|
|
91
|
+
value: 'anzhuang',
|
|
92
|
+
label: '安装'
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
value: 'kaifa',
|
|
96
|
+
label: '开发'
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
createData: {
|
|
102
|
+
radio: '',
|
|
103
|
+
users: '',
|
|
104
|
+
url: '',
|
|
105
|
+
email: '',
|
|
106
|
+
datepicker: '',
|
|
107
|
+
textarea: '',
|
|
108
|
+
ip: '',
|
|
109
|
+
num1: 0,
|
|
110
|
+
cascader: [] // 注意:级联选择器放在表单中校验时,默认值必须是数组
|
|
111
|
+
},
|
|
112
|
+
rules: {
|
|
113
|
+
radio: [{ required: true, message: '必填', trigger: 'change' }],
|
|
114
|
+
users: [
|
|
115
|
+
{ required: true, message: '必填', trigger: 'blur' },
|
|
116
|
+
{ min: 2, max: 11, message: '长度必须不小于2', trigger: ['change', 'blur'] }
|
|
117
|
+
],
|
|
118
|
+
datepicker: { type: 'date' },
|
|
119
|
+
url: { type: 'url', required: true },
|
|
120
|
+
email: { type: 'email' },
|
|
121
|
+
cascader: [{ required: true, message: '必填', trigger: 'blur' }],
|
|
122
|
+
ip: [
|
|
123
|
+
{
|
|
124
|
+
validator: (rule, value, cb) => (value === '1.1.1.1' ? cb() : cb(new Error('必填1.1.1.1'))),
|
|
125
|
+
trigger: 'change'
|
|
126
|
+
}
|
|
127
|
+
],
|
|
128
|
+
num1: [{ type: 'number', min: 2, max: 11, message: '必填 2~11 之间的数字', trigger: 'change' }]
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
methods: {
|
|
133
|
+
validateSingleField() {
|
|
134
|
+
this.$refs.ruleFormRef.validateField('users', (errMsg, fieldConfig) => {
|
|
135
|
+
if (errMsg) {
|
|
136
|
+
console.log(fieldConfig)
|
|
137
|
+
} else {
|
|
138
|
+
Modal.alert('姓名通过校验')
|
|
139
|
+
}
|
|
140
|
+
})
|
|
141
|
+
},
|
|
142
|
+
async validateFields() {
|
|
143
|
+
const errArray = []
|
|
144
|
+
await this.$refs.ruleFormRef.validateField(['url', 'datepicker'], (errMsg, fieldConfig) => {
|
|
145
|
+
if (errMsg) {
|
|
146
|
+
errArray.push(fieldConfig)
|
|
147
|
+
}
|
|
148
|
+
})
|
|
149
|
+
if (errArray.length > 0) {
|
|
150
|
+
console.log(errArray)
|
|
151
|
+
} else {
|
|
152
|
+
Modal.alert('日期和url通过校验')
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
</script>
|
|
158
|
+
|
|
159
|
+
<style scoped>
|
|
160
|
+
.demo-form {
|
|
161
|
+
width: 380px;
|
|
162
|
+
}
|
|
163
|
+
</style>
|
|
@@ -40,9 +40,9 @@ import {
|
|
|
40
40
|
DropTimes as TinyDropTimes,
|
|
41
41
|
Tooltip as TinyTooltip,
|
|
42
42
|
Input as TinyInput,
|
|
43
|
-
Button as TinyButton
|
|
43
|
+
Button as TinyButton,
|
|
44
|
+
Modal
|
|
44
45
|
} from '@opentiny/vue'
|
|
45
|
-
import { alert } from '@opentiny/vue-modal'
|
|
46
46
|
|
|
47
47
|
const createData = reactive({
|
|
48
48
|
quantity: '',
|
|
@@ -54,7 +54,7 @@ const createData = reactive({
|
|
|
54
54
|
})
|
|
55
55
|
|
|
56
56
|
function submitClick() {
|
|
57
|
-
alert('提交')
|
|
57
|
+
Modal.alert('提交')
|
|
58
58
|
}
|
|
59
59
|
</script>
|
|
60
60
|
|
|
@@ -30,8 +30,7 @@
|
|
|
30
30
|
</template>
|
|
31
31
|
|
|
32
32
|
<script lang="jsx">
|
|
33
|
-
import { Form, FormItem, Numeric, Radio, DatePicker, DropTimes, Tooltip, Input, Button } from '@opentiny/vue'
|
|
34
|
-
import { alert } from '@opentiny/vue-modal'
|
|
33
|
+
import { Form, FormItem, Numeric, Radio, DatePicker, DropTimes, Tooltip, Input, Button, Modal } from '@opentiny/vue'
|
|
35
34
|
|
|
36
35
|
export default {
|
|
37
36
|
components: {
|
|
@@ -59,7 +58,7 @@ export default {
|
|
|
59
58
|
},
|
|
60
59
|
methods: {
|
|
61
60
|
submitClick() {
|
|
62
|
-
alert('提交')
|
|
61
|
+
Modal.alert('提交')
|
|
63
62
|
}
|
|
64
63
|
}
|
|
65
64
|
}
|
|
@@ -53,8 +53,8 @@ import {
|
|
|
53
53
|
Input as TinyInput,
|
|
54
54
|
Select as TinySelect,
|
|
55
55
|
Option as TinyOption
|
|
56
|
-
} from '@opentiny/vue'
|
|
57
|
-
|
|
56
|
+
} from '@opentiny/vue',Modal
|
|
57
|
+
|
|
58
58
|
|
|
59
59
|
const reset = ref(false)
|
|
60
60
|
const ruleForm = reactive({
|
|
@@ -105,9 +105,9 @@ const ruleFormRef = ref()
|
|
|
105
105
|
function submitForm() {
|
|
106
106
|
ruleFormRef.value.validate((valid) => {
|
|
107
107
|
if (valid) {
|
|
108
|
-
alert('submit!')
|
|
108
|
+
Modal.alert('submit!')
|
|
109
109
|
} else {
|
|
110
|
-
alert('error submit!!')
|
|
110
|
+
Modal.alert('error submit!!')
|
|
111
111
|
return false
|
|
112
112
|
}
|
|
113
113
|
})
|
|
@@ -51,9 +51,9 @@ import {
|
|
|
51
51
|
DatePicker,
|
|
52
52
|
Input,
|
|
53
53
|
Select,
|
|
54
|
-
Option
|
|
54
|
+
Option,
|
|
55
|
+
Modal
|
|
55
56
|
} from '@opentiny/vue'
|
|
56
|
-
import { alert } from '@opentiny/vue-modal'
|
|
57
57
|
|
|
58
58
|
export default {
|
|
59
59
|
components: {
|
|
@@ -123,9 +123,9 @@ export default {
|
|
|
123
123
|
submitForm() {
|
|
124
124
|
this.$refs.ruleFormRef.validate((valid) => {
|
|
125
125
|
if (valid) {
|
|
126
|
-
alert('submit!')
|
|
126
|
+
Modal.alert('submit!')
|
|
127
127
|
} else {
|
|
128
|
-
alert('error submit!!')
|
|
128
|
+
Modal.alert('error submit!!')
|
|
129
129
|
return false
|
|
130
130
|
}
|
|
131
131
|
})
|
|
@@ -43,9 +43,9 @@ import {
|
|
|
43
43
|
DropTimes as TinyDropTimes,
|
|
44
44
|
Tooltip as TinyTooltip,
|
|
45
45
|
Input as TinyInput,
|
|
46
|
-
Button as TinyButton
|
|
46
|
+
Button as TinyButton,
|
|
47
|
+
Modal
|
|
47
48
|
} from '@opentiny/vue'
|
|
48
|
-
import { alert } from '@opentiny/vue-modal'
|
|
49
49
|
|
|
50
50
|
const sizeList = ref(['mini', 'small', 'medium'])
|
|
51
51
|
const createData = reactive({
|
|
@@ -58,7 +58,7 @@ const createData = reactive({
|
|
|
58
58
|
})
|
|
59
59
|
|
|
60
60
|
function submitClick() {
|
|
61
|
-
alert('提交')
|
|
61
|
+
Modal.alert('提交')
|
|
62
62
|
}
|
|
63
63
|
</script>
|
|
64
64
|
|
package/demos/app/form/size.vue
CHANGED
|
@@ -33,8 +33,7 @@
|
|
|
33
33
|
</template>
|
|
34
34
|
|
|
35
35
|
<script lang="jsx">
|
|
36
|
-
import { Form, FormItem, Numeric, Radio, DatePicker, DropTimes, Tooltip, Input, Button } from '@opentiny/vue'
|
|
37
|
-
import { alert } from '@opentiny/vue-modal'
|
|
36
|
+
import { Form, FormItem, Numeric, Radio, DatePicker, DropTimes, Tooltip, Input, Button, Modal } from '@opentiny/vue'
|
|
38
37
|
|
|
39
38
|
export default {
|
|
40
39
|
components: {
|
|
@@ -63,7 +62,7 @@ export default {
|
|
|
63
62
|
},
|
|
64
63
|
methods: {
|
|
65
64
|
submitClick() {
|
|
66
|
-
alert('提交')
|
|
65
|
+
Modal.alert('提交')
|
|
67
66
|
}
|
|
68
67
|
}
|
|
69
68
|
}
|
|
@@ -35,6 +35,17 @@ export default {
|
|
|
35
35
|
},
|
|
36
36
|
'codeFiles': ['form-validation.vue']
|
|
37
37
|
},
|
|
38
|
+
{
|
|
39
|
+
'demoId': 'form-validate-field',
|
|
40
|
+
'name': { 'zh-CN': '特定表单项校验', 'en-US': 'Form field Validation' },
|
|
41
|
+
'desc': {
|
|
42
|
+
'zh-CN':
|
|
43
|
+
"<p>用于校验表单中一个或多个特定表单项。</p>\n",
|
|
44
|
+
'en-US':
|
|
45
|
+
'<p>Validate one or several formItems of the form</p>\n'
|
|
46
|
+
},
|
|
47
|
+
'codeFiles': ['form-validate-field.vue']
|
|
48
|
+
},
|
|
38
49
|
{
|
|
39
50
|
'demoId': 'custom-validation-rule',
|
|
40
51
|
'name': { 'zh-CN': '自定义校验规则', 'en-US': 'Customized Verification Rule' },
|
|
@@ -390,7 +401,7 @@ export default {
|
|
|
390
401
|
'type': '',
|
|
391
402
|
'defaultValue': '',
|
|
392
403
|
'desc': { 'zh-CN': '对部分表单字段进行校验的方法', 'en-US': 'Method for verifying some fields in a form' },
|
|
393
|
-
'demoId': 'form-
|
|
404
|
+
'demoId': 'form-validate-field'
|
|
394
405
|
},
|
|
395
406
|
{
|
|
396
407
|
'name': 'resetFields',
|
|
@@ -31,8 +31,7 @@
|
|
|
31
31
|
|
|
32
32
|
<script setup lang="jsx">
|
|
33
33
|
import { ref } from 'vue'
|
|
34
|
-
import { Grid as TinyGrid, GridColumn as TinyGridColumn, GridToolbar as TinyGridToolbar } from '@opentiny/vue'
|
|
35
|
-
import { Modal } from '@opentiny/vue-modal'
|
|
34
|
+
import { Grid as TinyGrid, GridColumn as TinyGridColumn, GridToolbar as TinyGridToolbar, Modal } from '@opentiny/vue'
|
|
36
35
|
|
|
37
36
|
const toolbarButtons = ref([
|
|
38
37
|
{
|
|
@@ -118,19 +117,19 @@ function toolbarButtonClickEvent({ code, $grid }) {
|
|
|
118
117
|
}
|
|
119
118
|
case 'delete': {
|
|
120
119
|
if (data.length === 0) {
|
|
121
|
-
alert('请至少选中一条记录')
|
|
120
|
+
Modal.alert('请至少选中一条记录')
|
|
122
121
|
}
|
|
123
122
|
$grid.removeSelecteds()
|
|
124
123
|
break
|
|
125
124
|
}
|
|
126
125
|
case 'getDelete': {
|
|
127
126
|
const removeRecords = $grid.getRemoveRecords() // 获取删除的数据
|
|
128
|
-
alert('获取删除的数据' + JSON.stringify(removeRecords))
|
|
127
|
+
Modal.alert('获取删除的数据' + JSON.stringify(removeRecords))
|
|
129
128
|
break
|
|
130
129
|
}
|
|
131
130
|
case 'save': {
|
|
132
131
|
if (!updateData.length && !insertData.length && !removeData.length) {
|
|
133
|
-
alert('没有修改记录')
|
|
132
|
+
Modal.alert('没有修改记录')
|
|
134
133
|
} else {
|
|
135
134
|
Modal.message({
|
|
136
135
|
message: '点击保存触发, 新增的数据',
|
|
@@ -144,7 +143,7 @@ function toolbarButtonClickEvent({ code, $grid }) {
|
|
|
144
143
|
}
|
|
145
144
|
case 'getRecordset': {
|
|
146
145
|
const records = $grid.getRecordset()
|
|
147
|
-
alert('增删改记录集合:' + JSON.stringify(records))
|
|
146
|
+
Modal.alert('增删改记录集合:' + JSON.stringify(records))
|
|
148
147
|
break
|
|
149
148
|
}
|
|
150
149
|
}
|
|
@@ -30,8 +30,7 @@
|
|
|
30
30
|
</template>
|
|
31
31
|
|
|
32
32
|
<script lang="jsx">
|
|
33
|
-
import { Grid, GridColumn, GridToolbar } from '@opentiny/vue'
|
|
34
|
-
import { Modal } from '@opentiny/vue-modal'
|
|
33
|
+
import { Grid, GridColumn, GridToolbar, Modal } from '@opentiny/vue'
|
|
35
34
|
|
|
36
35
|
export default {
|
|
37
36
|
components: {
|
|
@@ -20,8 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
<script setup lang="jsx">
|
|
22
22
|
import { ref } from 'vue'
|
|
23
|
-
import { Grid as TinyGrid, GridColumn as TinyGridColumn, GridToolbar as TinyGridToolbar } from '@opentiny/vue'
|
|
24
|
-
import { alert } from '@opentiny/vue-modal'
|
|
23
|
+
import { Grid as TinyGrid, GridColumn as TinyGridColumn, GridToolbar as TinyGridToolbar, Modal } from '@opentiny/vue'
|
|
25
24
|
|
|
26
25
|
const validRules = {
|
|
27
26
|
name: [
|
|
@@ -155,9 +154,9 @@ function toolbarButtonClickEvent({ code }) {
|
|
|
155
154
|
case 'save': {
|
|
156
155
|
basicGridRef.value.validate((valid) => {
|
|
157
156
|
if (valid) {
|
|
158
|
-
alert('校验成功!')
|
|
157
|
+
Modal.alert('校验成功!')
|
|
159
158
|
} else {
|
|
160
|
-
alert('校验不通过')
|
|
159
|
+
Modal.alert('校验不通过')
|
|
161
160
|
}
|
|
162
161
|
})
|
|
163
162
|
break
|
|
@@ -19,8 +19,7 @@
|
|
|
19
19
|
</template>
|
|
20
20
|
|
|
21
21
|
<script lang="jsx">
|
|
22
|
-
import { Grid, GridColumn, GridToolbar } from '@opentiny/vue'
|
|
23
|
-
import { alert } from '@opentiny/vue-modal'
|
|
22
|
+
import { Grid, GridColumn, GridToolbar, Modal } from '@opentiny/vue'
|
|
24
23
|
|
|
25
24
|
export default {
|
|
26
25
|
components: {
|
|
@@ -163,9 +162,9 @@ export default {
|
|
|
163
162
|
case 'save': {
|
|
164
163
|
this.$refs.basicGrid.validate((valid) => {
|
|
165
164
|
if (valid) {
|
|
166
|
-
alert('校验成功!')
|
|
165
|
+
Modal.alert('校验成功!')
|
|
167
166
|
} else {
|
|
168
|
-
alert('校验不通过')
|
|
167
|
+
Modal.alert('校验不通过')
|
|
169
168
|
}
|
|
170
169
|
})
|
|
171
170
|
break
|
|
@@ -21,8 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
<script setup lang="jsx">
|
|
23
23
|
import { ref } from 'vue'
|
|
24
|
-
import { Grid as TinyGrid, GridColumn as TinyGridColumn, GridToolbar as TinyGridToolbar } from '@opentiny/vue'
|
|
25
|
-
import { alert } from '@opentiny/vue-modal'
|
|
24
|
+
import { Grid as TinyGrid, GridColumn as TinyGridColumn, GridToolbar as TinyGridToolbar, Modal } from '@opentiny/vue'
|
|
26
25
|
|
|
27
26
|
const validRules = {
|
|
28
27
|
name: [
|
|
@@ -159,13 +158,13 @@ function toolbarButtonClickEvent({ code }) {
|
|
|
159
158
|
if (selectRecords.length > 0) {
|
|
160
159
|
basicGridRef.value.validate(selectRecords, (valid) => {
|
|
161
160
|
if (valid) {
|
|
162
|
-
alert('校验成功!')
|
|
161
|
+
Modal.alert('校验成功!')
|
|
163
162
|
} else {
|
|
164
|
-
alert('校验不通过')
|
|
163
|
+
Modal.alert('校验不通过')
|
|
165
164
|
}
|
|
166
165
|
})
|
|
167
166
|
} else {
|
|
168
|
-
alert('未选中数据!')
|
|
167
|
+
Modal.alert('未选中数据!')
|
|
169
168
|
}
|
|
170
169
|
break
|
|
171
170
|
}
|
|
@@ -20,8 +20,7 @@
|
|
|
20
20
|
</template>
|
|
21
21
|
|
|
22
22
|
<script lang="jsx">
|
|
23
|
-
import { Grid, GridColumn, GridToolbar } from '@opentiny/vue'
|
|
24
|
-
import { alert } from '@opentiny/vue-modal'
|
|
23
|
+
import { Grid, GridColumn, GridToolbar, Modal } from '@opentiny/vue'
|
|
25
24
|
|
|
26
25
|
export default {
|
|
27
26
|
components: {
|
|
@@ -167,13 +166,13 @@ export default {
|
|
|
167
166
|
if (selectRecords.length > 0) {
|
|
168
167
|
this.$refs.basicGrid.validate(selectRecords, (valid) => {
|
|
169
168
|
if (valid) {
|
|
170
|
-
alert('校验成功!')
|
|
169
|
+
Modal.alert('校验成功!')
|
|
171
170
|
} else {
|
|
172
|
-
alert('校验不通过')
|
|
171
|
+
Modal.alert('校验不通过')
|
|
173
172
|
}
|
|
174
173
|
})
|
|
175
174
|
} else {
|
|
176
|
-
alert('未选中数据!')
|
|
175
|
+
Modal.alert('未选中数据!')
|
|
177
176
|
}
|
|
178
177
|
break
|
|
179
178
|
}
|