feat: 完成申请审批选择器组件封装
This commit is contained in:
parent
871a935ecb
commit
b9230bc394
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<view>
|
<view>
|
||||||
<view class="mx-4 p-2 rounded-2">
|
<view class="bg-white mx-4 p-2 rounded-2">
|
||||||
<Input
|
<Input
|
||||||
:id="0"
|
:id="0"
|
||||||
value="单行"
|
value="单行"
|
||||||
@ -18,6 +18,22 @@
|
|||||||
@change="textareaChange"
|
@change="textareaChange"
|
||||||
></Textarea>
|
></Textarea>
|
||||||
<wd-divider color="#bcbfbe"></wd-divider>
|
<wd-divider color="#bcbfbe"></wd-divider>
|
||||||
|
<SelectPicker
|
||||||
|
:value="1"
|
||||||
|
:id="2"
|
||||||
|
title="单选框"
|
||||||
|
placeholder="单选"
|
||||||
|
:columns="columns"
|
||||||
|
></SelectPicker>
|
||||||
|
<wd-divider color="#bcbfbe"></wd-divider>
|
||||||
|
<SelectPicker
|
||||||
|
:value="[0]"
|
||||||
|
:id="3"
|
||||||
|
title="多选框"
|
||||||
|
placeholder="多选"
|
||||||
|
type="checkbox"
|
||||||
|
:columns="columns"
|
||||||
|
></SelectPicker>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
@ -25,6 +41,22 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import Input from '@/pages/approval/components/Input.vue'
|
import Input from '@/pages/approval/components/Input.vue'
|
||||||
import Textarea from '@/pages/approval/components/Textarea.vue'
|
import Textarea from '@/pages/approval/components/Textarea.vue'
|
||||||
|
import SelectPicker from '@/pages/approval/components/SelectPicker.vue'
|
||||||
|
|
||||||
|
const columns = ref<Record<number, any>>([
|
||||||
|
{
|
||||||
|
value: 0,
|
||||||
|
label: '男装'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 1,
|
||||||
|
label: '奢侈品'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 2,
|
||||||
|
label: '女装'
|
||||||
|
}
|
||||||
|
])
|
||||||
|
|
||||||
const inputChange = e => {
|
const inputChange = e => {
|
||||||
console.log('inputChange', e)
|
console.log('inputChange', e)
|
||||||
|
|||||||
66
src/pages/approval/components/SelectPicker.vue
Normal file
66
src/pages/approval/components/SelectPicker.vue
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
<template>
|
||||||
|
<view class="px-2 text-3.5">
|
||||||
|
<view class="flex flex-items-center pos-relative">
|
||||||
|
<view v-if="required" class="color-#f62933 pos-absolute left--2 mt-1">*</view>
|
||||||
|
<view>{{ title }}</view>
|
||||||
|
</view>
|
||||||
|
<view class="pt-2">
|
||||||
|
<wd-select-picker
|
||||||
|
:type="type"
|
||||||
|
:title="placeholder"
|
||||||
|
:show-confirm="type === 'checkbox'"
|
||||||
|
v-model="picker"
|
||||||
|
:columns="columns"
|
||||||
|
size="large"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
const picker = ref(-1)
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
id: {
|
||||||
|
type: Number,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
type: {
|
||||||
|
type: String,
|
||||||
|
default: 'radio'
|
||||||
|
},
|
||||||
|
required: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
placeholder: {
|
||||||
|
type: String,
|
||||||
|
default: '请输入'
|
||||||
|
},
|
||||||
|
value: {
|
||||||
|
type: [Number, Array, null],
|
||||||
|
default: null
|
||||||
|
},
|
||||||
|
columns: {
|
||||||
|
type: Array,
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
if (props.value) {
|
||||||
|
picker.value = props.value
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
:deep(.wd-select-picker__cell) {
|
||||||
|
padding: var(--wot-cell-wrapper-padding, 10px) 0;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Loading…
x
Reference in New Issue
Block a user