Showing
1 changed file
with
41 additions
and
22 deletions
| 1 | <!-- | 1 | <!-- |
| 2 | * @Date: 2022-09-02 10:46:03 | 2 | * @Date: 2022-09-02 10:46:03 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2022-09-07 16:03:00 | 4 | + * @LastEditTime: 2022-11-18 11:08:29 |
| 5 | * @FilePath: /data-table/src/components/PhoneField/index.vue | 5 | * @FilePath: /data-table/src/components/PhoneField/index.vue |
| 6 | * @Description: 文件描述 | 6 | * @Description: 文件描述 |
| 7 | --> | 7 | --> |
| 8 | <template> | 8 | <template> |
| 9 | <div class="phone-field-page"> | 9 | <div class="phone-field-page"> |
| 10 | - <div class="label">{{ item.component_props.label }}<span v-if="item.component_props.required"> *</span></div> | 10 | + <div class="label"> |
| 11 | - <van-field v-model="item.value" :name="item.name" type="digit" maxlength="11" :placeholder="item.component_props.placeholder" | 11 | + {{ item.component_props.label }} |
| 12 | - :rules="rules" :required="item.component_props.required" :readonly="readonly" @touchstart.stop="show = true" :border="false"> | 12 | + <span v-if="item.component_props.required"> *</span> |
| 13 | + </div> | ||
| 14 | + <van-field | ||
| 15 | + v-model="item.value" | ||
| 16 | + :name="item.name" | ||
| 17 | + type="digit" | ||
| 18 | + maxlength="11" | ||
| 19 | + :placeholder="item.component_props.placeholder" | ||
| 20 | + :rules="rules" | ||
| 21 | + :required="item.component_props.required" | ||
| 22 | + :readonly="readonly" | ||
| 23 | + @touchstart.stop="show = true" | ||
| 24 | + :border="false" | ||
| 25 | + > | ||
| 13 | </van-field> | 26 | </van-field> |
| 14 | - <van-number-keyboard v-model="item.value" :show="show" :maxlength="11" @blur="show = false" /> | 27 | + <van-number-keyboard |
| 28 | + v-model="item.value" | ||
| 29 | + :show="show" | ||
| 30 | + :maxlength="11" | ||
| 31 | + @blur="show = false" | ||
| 32 | + /> | ||
| 15 | </div> | 33 | </div> |
| 16 | </template> | 34 | </template> |
| 17 | 35 | ||
| 18 | <script setup> | 36 | <script setup> |
| 19 | -import { wxInfo } from '@/utils/tools' | 37 | +import { wxInfo } from "@/utils/tools"; |
| 20 | 38 | ||
| 21 | const props = defineProps({ | 39 | const props = defineProps({ |
| 22 | - item: Object | 40 | + item: Object, |
| 23 | }); | 41 | }); |
| 24 | 42 | ||
| 25 | // web端判断 | 43 | // web端判断 |
| 26 | -const readonly = computed(() => wxInfo().isMobile) | 44 | +const readonly = computed(() => wxInfo().isMobile); |
| 27 | 45 | ||
| 28 | // 校验函数返回 true 表示校验通过,false 表示不通过 | 46 | // 校验函数返回 true 表示校验通过,false 表示不通过 |
| 29 | const validator = (val) => { | 47 | const validator = (val) => { |
| 30 | - if (!props.item.required) { // 非必填 | 48 | + if (!props.item.component_props.required) { |
| 31 | - return true | 49 | + // 非必填 |
| 50 | + return true; | ||
| 32 | } else { | 51 | } else { |
| 33 | return /1\d{10}/.test(val); | 52 | return /1\d{10}/.test(val); |
| 34 | } | 53 | } |
| ... | @@ -36,25 +55,25 @@ const validator = (val) => { | ... | @@ -36,25 +55,25 @@ const validator = (val) => { |
| 36 | // 错误提示文案 | 55 | // 错误提示文案 |
| 37 | const validatorMessage = (val, rule) => { | 56 | const validatorMessage = (val, rule) => { |
| 38 | if (!val) { | 57 | if (!val) { |
| 39 | - return '手机号码不能为空'; | 58 | + return "手机号码不能为空"; |
| 40 | } else if (!/1\d{10}/.test(val)) { | 59 | } else if (!/1\d{10}/.test(val)) { |
| 41 | - return '请输入正确手机号码'; | 60 | + return "请输入正确手机号码"; |
| 42 | } | 61 | } |
| 43 | -} | 62 | +}; |
| 44 | -const rules = [{ validator, message: validatorMessage }] | 63 | +const rules = [{ validator, message: validatorMessage }]; |
| 45 | 64 | ||
| 46 | const show = ref(false); | 65 | const show = ref(false); |
| 47 | </script> | 66 | </script> |
| 48 | 67 | ||
| 49 | <style lang="less" scoped> | 68 | <style lang="less" scoped> |
| 50 | - .phone-field-page { | 69 | +.phone-field-page { |
| 51 | - .label { | 70 | + .label { |
| 52 | - padding: 1rem 1rem 0 1rem; | 71 | + padding: 1rem 1rem 0 1rem; |
| 53 | - font-size: 0.9rem; | 72 | + font-size: 0.9rem; |
| 54 | - font-weight: bold; | 73 | + font-weight: bold; |
| 55 | - span { | 74 | + span { |
| 56 | - color: red; | 75 | + color: red; |
| 57 | - } | ||
| 58 | } | 76 | } |
| 59 | } | 77 | } |
| 78 | +} | ||
| 60 | </style> | 79 | </style> | ... | ... |
-
Please register or login to post a comment