更新:登录功能
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
@import '../common/abstracts/variable';
|
||||
@import '../common/abstracts/mixin';
|
||||
|
||||
.wot-theme-dark {
|
||||
@include b(form-item) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@include b(form-item) {
|
||||
@include e(error-message){
|
||||
color: $-form-item-error-message-color;
|
||||
font-size: $-form-item-error-message-font-size;
|
||||
line-height: $-form-item-error-message-line-height;
|
||||
text-align: left;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
16
uni_modules/wot-design-uni/components/wd-form-item/types.ts
Normal file
16
uni_modules/wot-design-uni/components/wd-form-item/types.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import type { ExtractPropTypes } from 'vue'
|
||||
import { baseProps, makeArrayProp, makeBooleanProp, makeRequiredProp, makeStringProp } from '../common/props'
|
||||
import type { FormItemRule } from '../wd-form/types'
|
||||
|
||||
export const formItemProps = {
|
||||
...baseProps,
|
||||
prop: makeRequiredProp(String),
|
||||
rules: makeArrayProp<FormItemRule>(),
|
||||
required: Boolean,
|
||||
center: makeBooleanProp(false),
|
||||
label: String,
|
||||
labelWidth: makeStringProp('100px'),
|
||||
isLink: Boolean
|
||||
}
|
||||
|
||||
export type FormItemProps = ExtractPropTypes<typeof formItemProps>
|
||||
@@ -0,0 +1,65 @@
|
||||
<!--
|
||||
* @Author: weisheng
|
||||
* @Date: 2023-12-14 11:21:58
|
||||
* @LastEditTime: 2024-03-15 21:29:33
|
||||
* @LastEditors: weisheng
|
||||
* @Description:
|
||||
* @FilePath: /wot-design-uni/src/uni_modules/wot-design-uni/components/wd-form-item/wd-form-item.vue
|
||||
* 记得注释
|
||||
-->
|
||||
<template>
|
||||
<wd-cell
|
||||
custom-class="wd-form-item"
|
||||
:required="required"
|
||||
:title="label"
|
||||
:center="center"
|
||||
:border="border"
|
||||
:title-width="labelWidth"
|
||||
:is-link="isLink"
|
||||
>
|
||||
<slot></slot>
|
||||
<view v-if="errorMessage" class="wd-form-item__error-message">{{ errorMessage }}</view>
|
||||
</wd-cell>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
export default {
|
||||
name: 'wd-form-item',
|
||||
options: {
|
||||
addGlobalClass: true,
|
||||
virtualHost: true,
|
||||
styleIsolation: 'shared'
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed } from 'vue'
|
||||
import { useParent } from '../composables/useParent'
|
||||
import WdCell from '../wd-cell/wd-cell.vue'
|
||||
import { FORM_KEY } from '../wd-form/types'
|
||||
import { formItemProps } from './types'
|
||||
|
||||
const props = defineProps(formItemProps)
|
||||
|
||||
const { parent: form, index } = useParent(FORM_KEY)
|
||||
|
||||
const errorMessage = computed(() => {
|
||||
if (form && props.prop && form.errorMessages && form.errorMessages[props.prop]) {
|
||||
return form.errorMessages[props.prop]
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
})
|
||||
|
||||
const border = computed(() => {
|
||||
if (index.value > 0 && form && form.props.border) {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './index.scss';
|
||||
</style>
|
||||
Reference in New Issue
Block a user