ant-desin-vue 표 내부 필드 검증 기능 구현
주문 수량 내용 이 비어 있 으 면 안 됩 니 다주문 수량 은 반드시 정정 수 를 입력 해 야 한다
ant-design-vue 홈 페이지 를 뒤 져 보 니 폼 내 표 필드 검증 방안 은 발견 되 지 않 았 으 나 폼 데 이 터 를 자체 적 으로 처리 하 는 소개 가 있 습 니 다.
그럼 우 리 는 이 방안 을 참고 하여 우리 자신의 업무 수 요 를 실현 할 수 있 습 니까?다음은 실현 방안 을 말씀 드 리 겠 습 니 다.
<a-table
:columns="columns"
bordered
:rowKey="col => col.id"
:dataSource="tableData"
>
<a-form-item
:label-col="{
xs: { span: 0 },
sm: { span: 0 },
}"
:wrapper-col="{
xs: { span: 24 },
sm: { span: 24 },
}"
:validate-status="getFildStatus(record.id).validateStatus"
:help="getFildStatus(record.id).errorMsg"
slot="goodModelCount"
slot-scope="text, record">
<a-input
style="width: 100%"
:min="1"
v-model="text.goodModelCount"
@change="handleChange(text.goodModelCount, record.id)"
/>
</a-form-item>
<div slot="action" slot-scope="text, record">
<a href="javascript:;" rel="external nofollow" ><a-icon type="delete" /></a>
</div>
</a-table>
<script>
const columns = [
{ title: ' ', dataIndex: 'id', align: 'center' },
{ title: ' ', dataIndex: 'account', align: 'center' },
{ title: ' ', dataIndex: 'area', align: 'center' },
{ title: ' ', key: 'goodModelCount', align: 'center', width: '200px', scopedSlots: { customRender: 'goodModelCount' }, align: 'center', },
{ title: ' ', scopedSlots: { customRender: 'action' }, width: '150px', align: 'center',}
]
function validatePrimeNumber(number) {
if (/^[1-9]\d*|0$/.test(number)) {
return {
validateStatus: 'success',
errorMsg: '',
};
}
return {
validateStatus: 'error',
errorMsg: ' ',
};
}
export default {
name: 'order-dialog',
data() {
return {
visible: true,
labelCol: {
xs: { span: 24 },
sm: { span: 7 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 12 },
},
form: this.$form.createForm(this),
validatorRules: {
consigneeName: {
rules: [
{ required: true, message: ' ' }
]
},
consigneePhone: {
rules: [
{ required: true, message: ' ' }
]
},
addresseeAddressDetail: {
rules: [
{ required: true, message: ' ' }
]
}
},
columns: columns,
tableData: [{ id: 1, account: 123, area: 123, goodModelCount: 3434}, { id: 2, account: 123, area: 123, goodModelCount: 111}],
goodModelCountData: []
}
},
methods: {
getFildStatus(id) {
const data = this.goodModelCountData.filter(item => id === item.id)[0]
if (data) {
return data
} else {
return {
errorMsg: '',
validateStatus: 'success'
}
}
},
handleChange(value, id) {
const newData = [...this.tableData];
const target = newData.filter(item => item.id === id)[0]
if (target) {
const { errorMsg, validateStatus } = validatePrimeNumber(value)
let flag = true
this.goodModelCountData.forEach(val => {
if (val.id === id) {
flag = false
val.errorMsg = errorMsg,
val.validateStatus = validateStatus
}
})
if (flag) {
this.goodModelCountData.push({
id,
errorMsg,
validateStatus
})
}
target.goodModelCount = value
this.tableData = newData
}
},
handleOk() {
this.visible = false
}
}
}
</script>
중점 주의 두 속성:vaidate-status 검사 상태,'성공','warning','error','vaidating'을 선택 할 수 있 습 니 다.
help 설정 검사 문안
vue 에 서 는 속성 에서 함수 형식 으로 속성 을 되 돌려 줄 수 있 기 때문에 검증 규칙 을 함수 에 넣 을 수 있 습 니 다.vaidate Prime Number(함수 이름 은 의미 화 를 명확 하 게 하 는 것 이 좋 습 니 다.제 가 직접 복사 한 공식 문서 에 있 습 니 다)
검증 이 필요 한 필드(a-table 탭 내부 에 있어 야 함)
<a-form-item
:label-col="{
xs: { span: 0 },
sm: { span: 0 },
}"
:wrapper-col="{
xs: { span: 24 },
sm: { span: 24 },
}"
:validate-status="getFildStatus(record.id).validateStatus"
:help="getFildStatus(record.id).errorMsg"
slot="goodModelCount"
slot-scope="text, record">
<a-input
style="width: 100%"
:min="1"
v-model="text.goodModelCount"
@change="handleChange(text.goodModelCount, record.id)"
/>
</a-form-item>
입력 상 자 를 입력 할 때 handle Change 방법 을 출발 합 니 다.방법 에서 입력 내용 을 검증 한 다음 id 에 따라 getFildStatus 에서 현재 대상 을 찾 아 검증 합 니 다.목록 에 여러 열 이 검증 되 어야 한다 면 주요 데이터 형식 이 어떻게 정 해 졌 는 지 실제 수요 에 따라 참고 해 야 합 니 다.
총결산
위 에서 말 한 것 은 소 편 이 소개 한 ant-design-vue 가 표 내부 필드 검증 기능 을 실현 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ant 디자인 vue datepicker 날짜 선택기에서 문화 조작ant design vue 공식 설명에 따르면 날짜 선택기를 사용하려면 입구 파일 (main.js) 전역 설정 언어가 필요합니다. 따라서 App을 직접 병합하여 쓸 수 있습니다.vue 날짜 선택기는 어느 모듈에서 사...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.