当前位置: 首页 > news >正文

wordpress twenty fourteen主题做的演示网站百度一下 你就知道官网

wordpress twenty fourteen主题做的演示网站,百度一下 你就知道官网,青岛做网站建设的公司哪家好,上海企业服务公司一、效果图 二、组件集成了以下功能 1、输入金额--支持千分号显示、可设置decimalLimit来调整小数点位数 2、金额鼠标移入提示中文--标签添加isTip开启中文提示则不允许开启千分号显示showThousands 3、输入手机号--设置inputTypephone 4、输入整数---设置inputTypeinteger 5、…

一、效果图

在这里插入图片描述

二、组件集成了以下功能

1、输入金额--支持千分号显示、可设置`decimalLimit`来调整小数点位数
2、金额鼠标移入提示中文--标签添加`isTip`开启中文提示则不允许开启千分号显示`showThousands`
3、输入手机号--设置`inputType=phone`
4、输入整数---设置`inputType=integer`
5、输入数字(含小数点)---设置`inputType=decimal`
6、输入身份证号---设置`inputType=idCard`
7、格式化输入内容--`formatter`的情况下显示值,我们通常同时使用 `parser`
8、支持el-input的所有功能

三、参数配置

1、代码示例:

<t-input v-model="inputVlaue" />

2、配置参数(Attributes)继承 el-input Attributes

参数说明类型默认值
v-model绑定值string-
placeholderplaceholder提示语string‘请输入’
decimalLimit小数点位数 (小数、金额类型时生效)Number2
appendTitle插槽append显示文案(金额类型时生效)string‘元’
showThousands是否显示千分号(小数、金额类型时生效)Booleanfalse
isTip是否提示金额中文(金额类型时生效)Booleanfalse
inputType特性类型标注(文字:text,金额:amount,电话:phone,整数:integer,小数:decimal,身份证:idCard’)stringtext

3、继承 el-input 事件、插槽、方法

四、源码

<template><el-tooltip effect="dark" placement="bottom-start" v-if="isTip && !showThousands"><template #content>{{ currencyFilter(modelValue) }}<br />{{ digitUppercase(modelValue) }}</template><el-inputv-model="internalValue"v-bind="{ placeholder, clearable: true, ...$attrs }"@blur="handleBlur"><template v-for="(index, name) in slots" v-slot:[name]="data"><slot :name="name" v-bind="data" /></template><template #append v-if="$slots.append || inputType === 'amount'"><span v-if="inputType === 'amount'">{{ appendTitle }}</span><slot v-else name="append" /></template></el-input></el-tooltip><el-inputv-model="internalValue"v-bind="{ placeholder, clearable: true, ...$attrs }"@blur="handleBlur"v-else><template v-for="(index, name) in slots" v-slot:[name]="data"><slot :name="name" v-bind="data" /></template><template #append v-if="$slots.append || inputType === 'amount'"><span v-if="inputType === 'amount'">{{ appendTitle }}</span><slot v-else name="append" /></template></el-input>
</template><script setup lang="ts" name="TInput">
import { ElMessage } from "element-plus"
import { computed, useSlots } from "vue"
const props = defineProps({modelValue: {type: [String, Number],default: ""},placeholder: {type: String,default: "请输入"},// 小数、金额类型时,小数点后最多几位decimalLimit: {type: Number,default: 2},// inputType含有文字:text、金额:amount、电话:phone、整数:integer、小数:decimal、身份证:idCard类型inputType: {type: String,default: "text"},appendTitle: {type: String,default: "元"},// 是否显示千分号showThousands: {type: Boolean,default: false},// 是否显示金额中文提示isTip: {type: Boolean,default: false}
})
const emits = defineEmits(["update:modelValue"])
const slots = useSlots()
let internalValue = computed({get() {return props.modelValue},set(val) {// console.log(777, val)emits("update:modelValue", val)}
})const handleBlur = () => {let formattedValue = internalValue.valueconst formatValue = (value, formatter) => {if (formatter) {return formatter(value)}return value}switch (props.inputType) {case "amount":case "decimal":formattedValue = formatValue(Number(internalValue.value), value =>formatAmount(value, props.decimalLimit))breakcase "phone":formattedValue = formatValue(internalValue.value.toString(), validatePhone)breakcase "integer":formattedValue = formatValue(internalValue.value.toString(), validateInteger)breakcase "idCard":formattedValue = formatValue(internalValue.value.toString(), validateIdCard)breakdefault:formattedValue = internalValue.value}internalValue.value = formattedValue
}// 手机号码校验
const validatePhone = (value: string) => {const phoneReg = /^1[3456789]\d{9}$/if (phoneReg.test(value as string)) {return value} else {ElMessage.error("请输入正确的手机号码")return ""}
}
// 身份证号码校验
const validateIdCard = (value: string) => {const idCardReg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/if (idCardReg.test(value as string)) {return value} else {ElMessage.error("请输入正确的身份证号码")return ""}
}
// 整数校验
const validateInteger = (value: string) => {const integerReg = /^\d+$/if (integerReg.test(value as string)) {return value} else {ElMessage.error("请输入正确的整数")return ""}
}
// 小数、金额类型转换
const formatAmount = (value: number, decimalLimit: number) => {if (!value) {ElMessage.error(`请输入正确的${props.inputType == "amount" ? "金额" : "数字"}`)return ""}// 格式化千分号if (props.showThousands) {const val = value.toFixed(decimalLimit).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")return val} else {return value.toFixed(decimalLimit)}
}
/*** 数字金额格式过滤 10000 => "¥10,000.00"* @param {number} num 被转换数字* @param {number} n 保留小数位*/
const currencyFilter = (num: any, n: number = 2) => {const reg = /((^[1-9]\d*)|^0)(\.\d+)?$/if (!reg.test(num)) {return ""} else {n = n > 0 && n <= 20 ? n : 2if (num || num === 0) {num = parseFloat((num + "").replace(/^\d\.-/g, "")).toFixed(n) + ""const l = num.split(".")[0].split("").reverse()const r = num.split(".")[1]let t = ""for (let i = 0; i < l.length; i++) {t += l[i] + ((i + 1) % 3 === 0 && i + 1 !== l.length ? "," : "")}return num ? "¥ " + t.split("").reverse().join("") + "." + r : ""} else {return ""}}
}
/*** 数字金额格式过滤(转汉字大写) 12000.34 => "壹万贰千叁角肆分"* @param {number} num 被转换数字*/
const digitUppercase = (num: any) => {const reg = /((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/if (!reg.test(num)) {return "请输入正确的金额格式"} else {let fraction = ["角", "分"]let digit = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"]let unit = [["元", "万", "亿", "兆"],["", "拾", "佰", "仟"]]let head = num < 0 ? "欠" : ""num = Math.abs(num)let s = ""fraction.forEach((item, index) => {s += (digit[Math.floor(num * 10 * Math.pow(10, index)) % 10] + item).replace(/零./, "")})s = s || "整"num = Math.floor(num)for (let i = 0; i < unit[0].length && num > 0; i++) {let p = ""for (let j = 0; j < unit[1].length && num > 0; j++) {p = digit[num % 10] + unit[1][j] + pnum = Math.floor(num / 10)}s = p.replace(/(零.)*零$/, "").replace(/^$/, "零") + unit[0][i] + s}return (head +s.replace(/(零.)*零元/, "元").replace(/(零.)+/g, "零").replace(/^整$/, "零元整"))}
}
</script>

四、组件地址

gitHub组件地址

gitee码云组件地址

五、相关文章

基于ElementUi&antdUi再次封装基础组件文档


vue3+ts基于Element-plus再次封装基础组件文档

http://www.shuangfujiaoyu.com/news/22183.html

相关文章:

  • 先做网站还是先备案淘宝关键词排名查询
  • 做网站有什么js特效热门搜索关键词
  • 福州哪家企业网站建设设计最高端经典软文广告
  • 英语字体设计网站好360地图下载最新版
  • 做独立网站给你如何把网站推广出去
  • 百度做一个网站怎么做呢十大微商推广平台
  • 免费一键生成logo网站广告联盟看广告赚钱
  • 小城市网站建设业务网站整合营销推广
  • 政府网站开发建设方案云南网站建设快速优化
  • 哪里学网站开发营销网站建站公司
  • 不懂代码怎么做网站杭州百度首页排名
  • 权威发布公众号seoer是什么意思
  • http当网站怎么做今日新闻7月1日
  • 建设网站的成本有哪些网络营销策划需要包括哪些内容
  • 网站建设项目方案新郑网络推广
  • 营销型网站制作培训网络营销的三大核心
  • 建设一中校园网站广州网站设计
  • 专业网站建设团队软文发布平台排名
  • 柳市外贸网站建设宁波seo推广哪家好
  • 教学网站系统流程图so导航 抖音
  • 关于学院网站建设的通知怎么在网上推广广告
  • 网站修改后怎么上传怎么学做电商然后自己创业
  • 宜宾做直销会员网站seo综合查询网站源码
  • 建设明星网站的目的网红推广一般怎么收费
  • 哪个网站专门做二手的企业网站推广方案设计
  • 南联网站建设网站推广应该坚持什么策略
  • 箱包外贸订单网国内seo排名
  • 外贸网站推广如何做长沙新媒体营销
  • wordpress网站做app一站传媒seo优化
  • 深圳专业做网站专业当日alexa排名查询统计