@gindow/vant-go 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +157 -0
- package/dist/resolver.cjs +1 -0
- package/dist/resolver.d.ts +1 -0
- package/dist/resolver.mjs +16 -0
- package/dist/style.css +2 -0
- package/dist/vant-go.cjs +1 -0
- package/dist/vant-go.d.ts +1 -0
- package/dist/vant-go.mjs +1059 -0
- package/package.json +57 -0
- package/src/assets/avatar.png +0 -0
- package/src/components/VaxAssetPreview.vue +38 -0
- package/src/components/VaxAvatar.vue +16 -0
- package/src/components/VaxButton.vue +21 -0
- package/src/components/VaxCaptcha.vue +60 -0
- package/src/components/VaxCell.vue +35 -0
- package/src/components/VaxCellGroup.vue +50 -0
- package/src/components/VaxEmpty.vue +18 -0
- package/src/components/VaxField.vue +69 -0
- package/src/components/VaxIcon.vue +31 -0
- package/src/components/VaxLoading.vue +32 -0
- package/src/components/VaxNavBar.vue +28 -0
- package/src/components/VaxPage.vue +9 -0
- package/src/components/VaxSelect.vue +78 -0
- package/src/components/VaxTabbar.vue +49 -0
- package/src/components/VaxTabs.vue +66 -0
- package/src/env.d.ts +7 -0
- package/src/hooks/useCaptcha.ts +27 -0
- package/src/hooks/useMessage.ts +19 -0
- package/src/index.ts +73 -0
- package/src/libs/auto-imports.d.ts +84 -0
- package/src/libs/components.d.ts +51 -0
- package/src/locale/en-US.ts +24 -0
- package/src/locale/index.ts +65 -0
- package/src/locale/zh-CN.ts +24 -0
- package/src/resolver.ts +26 -0
- package/src/style.css +46 -0
- package/src/types/index.ts +15 -0
- package/src/utils/validate.ts +23 -0
package/README.md
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# vant-go
|
|
2
|
+
|
|
3
|
+
> 基于 [Vant 4](https://vant-ui.github.io/vant/) 的 Vue 3 + TypeScript 移动端业务组件扩展库。
|
|
4
|
+
|
|
5
|
+
## 组件列表
|
|
6
|
+
|
|
7
|
+
| 组件名 | 说明 | 主要 Props |
|
|
8
|
+
|--------|------|------------|
|
|
9
|
+
| `VaxAvatar` | 头像组件,基于 Vant Image 封装 | `src` 头像地址, `size` 尺寸(small/normal/large/number), `round` 是否圆形 |
|
|
10
|
+
| `VaxButton` | 按钮组件,扩展 van-button 集成图标 | `icon` 图标名, `iconSize` 图标尺寸, `iconColor` 图标颜色, `iconStrokeWidth` 图标线宽 |
|
|
11
|
+
| `VaxCaptcha` | 验证码输入组件,支持短信/WhatsApp 双通道 | `phone` 手机号(v-model), `captcha` 验证码(v-model), `whatsApp` 是否启用WhatsApp, `onSend` 发送接口 |
|
|
12
|
+
| `VaxCell` | 单行单元格,扩展 van-cell 集成 VaxIcon + slots | `icon` 图标名, `iconSize/iconColor/iconBackground/iconStrokeWidth` 图标配置, `title` 标题, `value` 值, `label` 描述, `to` 路由跳转, `onClick` 点击回调, `titleClass/valueClass/labelClass` 样式类 |
|
|
13
|
+
| `VaxCellGroup` | 卡片容器,数据驱动渲染 VaxCell 列表 | `title` 标题, `items` 数据数组, `iconSize/iconColor/iconBackground/iconStrokeWidth` 全局图标配置, `titleClass/valueClass/labelClass` 全局样式类, `isLink` 全局链接, `compact` 紧凑模式 |
|
|
14
|
+
| `VaxEmpty` | 空状态组件,基于 Vant Empty 封装 | `image` 图片类型, `imageSize` 图片尺寸, `description` 描述文字 |
|
|
15
|
+
| `VaxField` | 表单字段组件,支持文本/日期/选择器 | `icon` 图标, `label` 标签, `type` 类型(text/date/select), `readonly` 只读, `columns` 选择器选项 |
|
|
16
|
+
| `VaxIcon` | 图标组件,基于 Iconify 图标库 | `icon` 图标名, `vendor` 图标库, `size` 尺寸, `color` 颜色, `background` 背景色, `round` 圆形背景, `strokeWidth` 线宽 |
|
|
17
|
+
| `VaxLoading` | 加载组件,支持全屏遮罩 | `type` 类型, `size` 尺寸, `color` 颜色, `text` 文字, `fullscreen` 是否全屏 |
|
|
18
|
+
| `VaxNavBar` | 导航栏组件,基于 Vant NavBar 封装 | `back` 返回上一页, `leftArrow` 返回箭头, `leftText` 左侧文字, `clickLeft` 自定义返回处理 |
|
|
19
|
+
| `VaxPage` | 页面容器,提供统一内边距 | — |
|
|
20
|
+
| `VaxSelect` | 选择器组件,支持单选/多选 | `multiple` 是否多选, `options` 选项数组 |
|
|
21
|
+
| `VaxTabbar` | 底部标签栏组件,支持路由切换 | `menu` 菜单配置数组, `flash` 是否启用闪光效果 |
|
|
22
|
+
| `VaxTabs` | 选项卡切换组件,胶囊式 UI | `tabs` 选项卡数组(IVaxTab), `sticky` 是否吸顶, `v-model:active` 当前选中 |
|
|
23
|
+
| `VaxAssetPreview` | 资源预览组件,支持图片/视频 | `asset` 单个资源, `assets` 资源数组, `v-model:show` 显示状态 |
|
|
24
|
+
|
|
25
|
+
### VaxCellGroup items 数据结构
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
interface IVaxCardItem {
|
|
29
|
+
icon?: string
|
|
30
|
+
iconSize?: number
|
|
31
|
+
iconColor?: string
|
|
32
|
+
iconBackground?: string
|
|
33
|
+
iconStrokeWidth?: number
|
|
34
|
+
title: string
|
|
35
|
+
value?: string | number
|
|
36
|
+
label?: string
|
|
37
|
+
to?: string
|
|
38
|
+
titleClass?: string
|
|
39
|
+
valueClass?: string
|
|
40
|
+
labelClass?: string
|
|
41
|
+
isLink?: boolean
|
|
42
|
+
onClick?: () => void
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### VaxCell Slots
|
|
47
|
+
|
|
48
|
+
| Slot 名 | 说明 |
|
|
49
|
+
|---------|------|
|
|
50
|
+
| `icon` | 自定义图标区(默认渲染 VaxIcon) |
|
|
51
|
+
| `title` | 自定义标题 |
|
|
52
|
+
| `value` | 自定义右侧值 |
|
|
53
|
+
| `label` | 自定义描述 |
|
|
54
|
+
| `default` | 自定义内容 |
|
|
55
|
+
|
|
56
|
+
### VaxCellGroup Slots
|
|
57
|
+
|
|
58
|
+
| Slot 名 | 说明 |
|
|
59
|
+
|---------|------|
|
|
60
|
+
| `title` | 自定义标题区 |
|
|
61
|
+
| `default` | 在 items 渲染前插入自定义内容 |
|
|
62
|
+
|
|
63
|
+
## 安装
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
pnpm add vant-go vant vue
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
> `vant` 与 `vue` 是 peer 依赖,必须由消费项目自行安装(避免重复打包与版本冲突)。
|
|
70
|
+
|
|
71
|
+
## 使用
|
|
72
|
+
|
|
73
|
+
### A. 全量注册
|
|
74
|
+
|
|
75
|
+
```ts
|
|
76
|
+
import { createApp } from 'vue'
|
|
77
|
+
import VantGo from 'vant-go'
|
|
78
|
+
import 'vant-go/style.css'
|
|
79
|
+
import App from './App.vue'
|
|
80
|
+
|
|
81
|
+
createApp(App).use(VantGo).mount('#app')
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### B. 按需 + 自动导入(推荐)
|
|
85
|
+
|
|
86
|
+
配合 [`unplugin-vue-components`](https://github.com/unplugin/unplugin-vue-components) 使用 `VantGoResolver`,模板里裸写组件即可,无需手动 import。
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
// vite.config.ts
|
|
90
|
+
import { defineConfig } from 'vite'
|
|
91
|
+
import vue from '@vitejs/plugin-vue'
|
|
92
|
+
import Components from 'unplugin-vue-components/vite'
|
|
93
|
+
import { VantResolver } from '@vant/auto-import-resolver'
|
|
94
|
+
import { VantGoResolver } from 'vant-go/resolver'
|
|
95
|
+
|
|
96
|
+
export default defineConfig({
|
|
97
|
+
plugins: [
|
|
98
|
+
vue(),
|
|
99
|
+
Components({
|
|
100
|
+
resolvers: [
|
|
101
|
+
VantResolver(),
|
|
102
|
+
VantGoResolver(),
|
|
103
|
+
],
|
|
104
|
+
}),
|
|
105
|
+
],
|
|
106
|
+
})
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### 使用示例
|
|
110
|
+
|
|
111
|
+
```vue
|
|
112
|
+
<template>
|
|
113
|
+
<!-- 数据驱动:VaxCellGroup + items -->
|
|
114
|
+
<vax-cell-group inset title="Send money" :items="channels"
|
|
115
|
+
icon-color="var(--color-violet-600)" icon-background="var(--color-violet-50)" />
|
|
116
|
+
|
|
117
|
+
<!-- 混合模式:VaxCellGroup 包裹自定义内容 + items -->
|
|
118
|
+
<vax-cell-group inset>
|
|
119
|
+
<template #title>
|
|
120
|
+
<div class="flex-center-between">
|
|
121
|
+
<span>Recent</span>
|
|
122
|
+
<span @click="go('transactions')">View all</span>
|
|
123
|
+
</div>
|
|
124
|
+
</template>
|
|
125
|
+
<van-cell v-for="t in recent" :key="t.id" :title="t.party" center />
|
|
126
|
+
</vax-cell-group>
|
|
127
|
+
|
|
128
|
+
<!-- 单行:VaxCell 独立使用 -->
|
|
129
|
+
<vax-cell icon="check" title="Approvals" :value="3" label="Tap to review" to="approvals" />
|
|
130
|
+
</template>
|
|
131
|
+
|
|
132
|
+
<script setup lang="ts">
|
|
133
|
+
const channels = [
|
|
134
|
+
{ icon: 'thunderbolt', title: 'Pesalink', label: 'Instant · 38 banks', to: 'transfer.new' },
|
|
135
|
+
{ icon: 'iphone', title: 'M-Pesa', label: 'Daraja API', to: 'transfer.new' },
|
|
136
|
+
]
|
|
137
|
+
</script>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
`VantGoResolver` 默认会自动导入 `vant-go/style.css`(去重处理),如要手动管理样式:
|
|
141
|
+
|
|
142
|
+
```ts
|
|
143
|
+
VantGoResolver({ importStyle: false })
|
|
144
|
+
// 然后在应用入口手动 import 'vant-go/style.css'
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## 开发
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
pnpm install
|
|
151
|
+
pnpm build # vue-tsc 类型检查 + vite 构建
|
|
152
|
+
pnpm pack # 生成 tarball 用于发布前烟测
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## License
|
|
156
|
+
|
|
157
|
+
[MIT](./LICENSE) © joming
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});function e(e={}){let{importStyle:t=!0,prefix:n=`Vax`}=e;return{type:`component`,resolve(e){if(e.startsWith(n))return{name:e,from:`vant-go`,sideEffects:t?`vant-go/style.css`:void 0}}}}exports.VantGoResolver=e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { }
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/resolver.ts
|
|
2
|
+
function e(e = {}) {
|
|
3
|
+
let { importStyle: t = !0, prefix: n = "Vax" } = e;
|
|
4
|
+
return {
|
|
5
|
+
type: "component",
|
|
6
|
+
resolve(e) {
|
|
7
|
+
if (e.startsWith(n)) return {
|
|
8
|
+
name: e,
|
|
9
|
+
from: "vant-go",
|
|
10
|
+
sideEffects: t ? "vant-go/style.css" : void 0
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { e as VantGoResolver };
|
package/dist/style.css
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
[data-v-6189029e] g,[data-v-6189029e] path{stroke-width:var(--v496a5aae)}.vax-loading--fullscreen{z-index:2000;background:#00000073;padding:0;position:fixed;inset:0}.van-nav-bar[data-v-8a17da5a] .van-nav-bar__content>div{position:static}.van-nav-bar[data-v-8a17da5a] .van-nav-bar__title{max-width:100%;text-align:var(--v6f4c100a);padding-left:var(--v48c2d52c);flex:1}.vax-page[data-v-f691f6ba]{padding:var(--ex-page-padding,16px) 0}.van-tabbar .van-tabbar-item[data-v-6c3a1eb3]{--van-tabbar-item-icon-margin-bottom:0}.van-tabbar .flashed[data-v-6c3a1eb3]{margin-top:0;font-size:14px}.vax-tabs[data-v-c166075f]{background:var(--van-gray-2);scrollbar-width:none;border-radius:10px;gap:4px;margin:12px 16px;padding:4px;display:flex;overflow-x:auto}.vax-tabs[data-v-c166075f]::-webkit-scrollbar{display:none}.vax-tabs--sticky[data-v-c166075f]{z-index:10;background:var(--van-gray-2);position:sticky;top:0}.vax-tab[data-v-c166075f]{min-width:max-content;color:var(--van-text-color-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:8px;flex:1;padding:8px 14px;font-size:13px;font-weight:500;line-height:1.25;transition:background .18s,color .18s,box-shadow .18s;position:relative}.vax-tab[data-v-c166075f]:active{transform:scale(.98)}.vax-tab.active[data-v-c166075f]{background:var(--van-background-2);color:var(--van-text-color);font-weight:600}.vax-tab .badge[data-v-c166075f]{--van-badge-background:var(--van-primary-color)}.vax-tab .badge[data-v-c166075f] .van-badge--top-right{right:-8px}
|
|
2
|
+
/*$vite$:1*/
|
package/dist/vant-go.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let e=require("vue"),t=require("vant/es");require("vant/es/image-preview/style/index"),require("vant/es/image/style/index");let n=require("@iconify/vue");require("vant/es/button/style/index"),require("vant/es/action-sheet/style/index"),require("vant/es/field/style/index");let r=require("vant");require("vant/es/cell/style/index"),require("vant/es/cell-group/style/index"),require("vant/es/empty/style/index"),require("vant/es/picker/style/index"),require("vant/es/popup/style/index"),require("vant/es/date-picker/style/index"),require("vant/es/dialog/style/index"),require("vant/es/loading/style/index"),require("vant/es/nav-bar/style/index");let i=require("vue-router");require("vant/es/checkbox-group/style/index"),require("vant/es/checkbox/style/index"),require("vant/es/space/style/index"),require("vant/es/tag/style/index"),require("vant/es/badge/style/index");var a={cancel:`取消`,confirm:`确认`,auth:{phone:`手机号`,otp:`验证码`,enterPhone:`请输入手机号`,enterOTP:`请输入验证码`,getOTP:`获取验证码`,viaWhatsApp:`通过WhatsApp发送`,viaPhone:`通过短信发送`},message:{otpSent:`验证码已发送`,phoneInvalid:`手机号格式不正确`},empty:{noData:`暂无数据`},dialog:{tip:`操作提示`,confirm:`操作确认`}},o={cancel:`Cancel`,confirm:`Confirm`,auth:{phone:`Phone`,otp:`OTP`,enterPhone:`Enter Phone Number`,enterOTP:`Enter OTP`,getOTP:`Get OTP`,viaWhatsApp:`Via WhatsApp`,viaPhone:`Via SMS`},message:{otpSent:`OTP sent`,phoneInvalid:`Invalid phone number`},empty:{noData:`No data`},dialog:{tip:`Tip`,confirm:`Confirm`}},s=()=>{let e=[`en`,`zh-CN`],t=localStorage.getItem(`locale`),n=navigator.language;return t&&e.includes(t)?t:n&&e.includes(n)?n:n&&e.includes(n.split(`-`)[0])?n.split(`-`)[0]:e[0]??`zh-CN`},c=Symbol(`vant-go-locale`),l=(0,e.ref)(s()),u={en:o,"en-US":o,"zh-CN":a},d=(0,e.reactive)({en:o,"zh-CN":a}),f=e=>e.toLowerCase().startsWith(`zh`)?`zh-CN`:`en-US`,p=(e,t)=>{let n=e;for(let e of t)if(n=n?.[e],n===void 0)return;return n},m=t=>{if(t?.locale&&(l.value=t.locale),t?.messages)for(let[e,n]of Object.entries(t.messages))d[e]=n;return(0,e.getCurrentInstance)()&&(0,e.provide)(c,{locale:l,messages:d}),{locale:l,messages:d}},h=()=>{let t=(0,e.inject)(c,void 0),n=t?.locale??l,r=t?.messages??d;return{locale:n,t:(e,t)=>{let i=e.replace(/\[(\d+)]/g,`.$1`).split(`.`),a=p(r[n.value],i);a===void 0&&(a=p(u[f(n.value)],i));let o=a??e;return t&&typeof o==`string`&&(o=o.replace(/\{(\w+)\}/g,(e,n)=>t[n]===void 0?`{${n}}`:String(t[n]))),o}}},g=e=>l.value=e,_=()=>l.value,v=(0,e.defineComponent)({__name:`VaxIcon`,props:{vendor:{type:String,default:`icon-park-outline`},icon:{type:String,default:``},size:{type:Number,default:16},strokeWidth:{type:Number,default:3},color:{type:String},background:{type:String},padding:{type:String},round:{type:Boolean},disabled:{type:Boolean}},setup(t){(0,e.useCssVars)(e=>({v496a5aae:t.strokeWidth}));let r=t,i=(0,e.computed)(()=>r.icon.indexOf(`:`)===-1?`${r.vendor}:${r.icon}`:r.icon),a=(0,e.computed)(()=>r.disabled?`var(--van-text-color-3)`:r.color||(r.background?`#FFF`:void 0)),o=r.round||!!r.background,s=r.padding?parseInt(r.padding)+`px`:r.background?`8px`:`0`;return(r,c)=>t.icon?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,{key:0,class:(0,e.normalizeClass)([`i-icon inline-flex items-center gap-1`,{"rounded-full":(0,e.unref)(o)}]),style:(0,e.normalizeStyle)({background:t.background,color:(0,e.unref)(a),padding:(0,e.unref)(s)})},[(0,e.createVNode)((0,e.unref)(n.Icon),{icon:(0,e.unref)(i),width:t.size,height:t.size,"aria-hidden":null},null,8,[`icon`,`width`,`height`]),(0,e.renderSlot)(r.$slots,`default`,{},void 0,!0)],6)):(0,e.createCommentVNode)(``,!0)}}),y=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},b=y(v,[[`__scopeId`,`data-v-6189029e`]]),x={class:`flex flex-col justify-center items-center`},S=(0,e.defineComponent)({__name:`VaxAssetPreview`,props:(0,e.mergeModels)({asset:{type:Object,default:()=>({})},assets:{type:Array,default:()=>[]}},{show:{type:Boolean,default:!1},showModifiers:{}}),emits:[`update:show`],setup(n){let r=(0,e.useModel)(n,`show`),i=n,a=(0,e.computed)(()=>i.assets.map(e=>e.shrink??e?.url)),o=(0,e.computed)(()=>i.assets.findIndex(e=>e.id===i.asset?.id)??0),s=(0,e.ref)(o.value===-1?0:o.value),c=(0,e.computed)(()=>i.assets[s.value]),l=e=>s.value=e;return(n,i)=>{let s=b,u=t.Image,d=t.ImagePreview;return(0,e.openBlock)(),(0,e.createBlock)(d,{show:r.value,"onUpdate:show":i[0]||=e=>r.value=e,images:a.value,"start-position":o.value,onChange:l},{image:(0,e.withCtx)(({src:t})=>[(0,e.createVNode)(u,{fit:`contain`,src:t,class:`w-full`},{error:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`div`,x,[(0,e.createVNode)(s,{icon:`file-question`,size:40,color:`#093`}),(0,e.createElementVNode)(`div`,null,(0,e.toDisplayString)(c.value?.title),1)])]),_:1},8,[`src`])]),_:1},8,[`show`,`images`,`start-position`])}}}),C=(0,e.defineComponent)({__name:`VaxAvatar`,props:{src:{type:String,default:`data:image/png;base64,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`},size:{type:[String,Number],default:`normal`},round:{type:Boolean,default:!0}},setup(n){let r={small:24,normal:48,large:72},i=(0,e.computed)(()=>typeof n.size==`number`?n.size:r[n.size]||r.normal);return(r,a)=>{let o=t.Image;return(0,e.openBlock)(),(0,e.createBlock)(o,{src:n.src,round:n.round,width:(0,e.unref)(i),height:(0,e.unref)(i)},null,8,[`src`,`round`,`width`,`height`])}}}),w={class:`flex-center gap-2`},T=(0,e.defineComponent)({__name:`VaxButton`,props:{icon:{type:String,default:``},iconSize:{type:Number,default:14},iconColor:{type:String,default:``},iconStrokeWidth:{type:Number}},setup(n){let r=n,i=(0,e.computed)(()=>r.iconSize),a=(0,e.computed)(()=>r.iconColor),o=(0,e.computed)(()=>r.iconStrokeWidth);return(r,s)=>{let c=b,l=t.Button;return(0,e.openBlock)(),(0,e.createBlock)(l,(0,e.normalizeProps)((0,e.guardReactiveProps)(r.$attrs)),{default:(0,e.withCtx)(()=>[(0,e.createElementVNode)(`span`,w,[n.icon?((0,e.openBlock)(),(0,e.createBlock)(c,{key:0,icon:n.icon,size:(0,e.unref)(i),color:(0,e.unref)(a),strokeWidth:(0,e.unref)(o)},null,8,[`icon`,`size`,`color`,`strokeWidth`])):(0,e.createCommentVNode)(``,!0),(0,e.renderSlot)(r.$slots,`default`)])]),_:3},16)}}}),E=class e{static{this.country=``}static{this.set=e=>this.country=e}static get phone_pattern(){return this.country.toUpperCase()===`CN`?/([1][3,4,5,6,7,8,9][0-9]{9})$/:/^(?:\+?[1-9]\d{7,14}|\d{6,11})$/}static{this.email_pattern=/^([a-zA-Z0-9_\.-]+)@([\da-zA-Z\.-]+)\.([a-zA-Z\.]{2,6})$/}static{this.idcard_pattern=/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/}static{this.cname_pattern=/^(?:[\u4e00-\u9fa5·]{2,16})$/}static{this.password_pattern=/^(?![A-Za-z]+$)(?![0-9]+$)(?![^A-Za-z0-9]+$).{8,20}$/}static{this.phone=t=>e.phone_pattern.test(t)}static{this.email=t=>e.email_pattern.test(t)}static{this.idcard=t=>e.idcard_pattern.test(t)}static{this.cname=t=>e.cname_pattern.test(t)}},D=t=>{let n=(0,e.ref)(0),r=(0,e.ref)(!1),i=(e={})=>new Promise((n,i)=>{r.value||(r.value=!0,t(e).then(()=>{a(),n(!0)}).catch(e=>i(e)).finally(()=>r.value=!1))}),a=()=>{n.value=60;let e=setInterval(()=>{n.value--,n.value||clearTimeout(e)},1e3)};return{waiting:n,send:i}},O=()=>{let{t:e}=h();return{message:(e,t={})=>(0,r.showToast)({message:e,...t}),success:(e,t={})=>(0,r.showSuccessToast)({message:e,...t}),error:(e,t={})=>(0,r.showFailToast)({message:e,...t}),warning:(e,t={})=>(0,r.showFailToast)({message:e,...t}),dialog:(t,n,i={})=>(0,r.showDialog)({message:t,title:n??e(`dialog.tip`),...i}),confirm:(t,n,i={})=>(0,r.showConfirmDialog)({message:t,title:n??e(`dialog.confirm`),...i}),loading:e=>(0,r.showLoadingToast)(e)}},k=(0,e.defineComponent)({__name:`VaxCaptcha`,props:(0,e.mergeModels)({method:{type:String,default:``},label:{type:Boolean,default:!1},whatsApp:{type:Boolean,default:!1},onSend:{type:Function,required:!0}},{phone:{type:String,required:!0},phoneModifiers:{},captcha:{type:String,required:!0},captchaModifiers:{}}),emits:[`update:phone`,`update:captcha`],setup(n){let r=(0,e.useModel)(n,`phone`),i=(0,e.useModel)(n,`captcha`),{t:a}=h(),{success:o,error:s}=O(),{waiting:c,send:l}=D(n.onSend),u=(0,e.ref)(`sms`),d=(0,e.ref)(!1),f=(0,e.ref)(!1),p=(0,e.computed)(()=>[{name:a(`auth.viaWhatsApp`),value:`whatsapp`},{name:a(`auth.viaPhone`),value:`sms`}]);function m(){return l({method:n.method,phone:r.value,channel:u.value}).then(()=>{i.value=``,d.value=!0,o(a(`message.otpSent`))}).catch(({message:e})=>s(e))}function g(){if(!E.phone(r.value))return s(a(`message.phoneInvalid`));n.whatsApp?f.value=!0:m()}function _({value:e}){u.value=e,f.value=!1,m()}return(o,s)=>{let l=t.Button,u=t.Field,d=t.ActionSheet;return(0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,null,[(0,e.createVNode)(u,{type:`tel`,modelValue:r.value,"onUpdate:modelValue":s[0]||=e=>r.value=e,name:`phone`,label:n.label?(0,e.unref)(a)(`auth.phone`):``,placeholder:(0,e.unref)(a)(`auth.enterPhone`),center:``,required:``,clearable:``,rules:[{required:!0}]},{button:(0,e.withCtx)(()=>[(0,e.createVNode)(l,{class:`captcha`,type:`primary`,disabled:!!(0,e.unref)(c),onClick:(0,e.withModifiers)(g,[`stop`])},{default:(0,e.withCtx)(()=>[(0,e.createTextVNode)((0,e.toDisplayString)((0,e.unref)(c)>0?(0,e.unref)(c):(0,e.unref)(a)(`auth.getOTP`)),1)]),_:1},8,[`disabled`])]),_:1},8,[`modelValue`,`label`,`placeholder`]),(0,e.createVNode)(u,{type:`number`,modelValue:i.value,"onUpdate:modelValue":s[1]||=e=>i.value=e,label:n.label?(0,e.unref)(a)(`auth.otp`):``,placeholder:(0,e.unref)(a)(`auth.enterOTP`),center:``,required:``,clearable:``,rules:[{required:!0}]},null,8,[`modelValue`,`label`,`placeholder`]),(0,e.createVNode)(d,{show:(0,e.unref)(f),"onUpdate:show":s[2]||=t=>(0,e.isRef)(f)?f.value=t:null,actions:(0,e.unref)(p),"cancel-text":(0,e.unref)(a)(`cancel`),onSelect:_},null,8,[`show`,`actions`,`cancel-text`])],64)}}}),A=(0,e.defineComponent)({__name:`VaxCell`,props:{icon:{type:String},iconSize:{type:Number},iconColor:{type:String},iconBackground:{type:String},iconStrokeWidth:{type:Number},title:{type:String},label:{type:String},value:{type:[String,Number]},titleClass:{type:String},valueClass:{type:String},labelClass:{type:String},isLink:{type:Boolean},to:{type:String},onClick:{type:Function}},setup(n){let r=n,i=(0,e.computed)(()=>r.isLink||!!r.to);return(r,a)=>{let o=b,s=t.Cell;return(0,e.openBlock)(),(0,e.createBlock)(s,{center:``,title:n.title,value:n.value,label:n.label,to:n.to,titleClass:n.titleClass,valueClass:n.valueClass,labelClass:n.labelClass,isLink:(0,e.unref)(i),onClick:n.onClick},(0,e.createSlots)({_:2},[r.$slots.icon||n.icon?{name:`icon`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(r.$slots,`icon`,{},()=>[n.icon?((0,e.openBlock)(),(0,e.createBlock)(o,{key:0,icon:n.icon,size:n.iconSize,color:n.iconColor,background:n.iconBackground,"stroke-width":n.iconStrokeWidth},null,8,[`icon`,`size`,`color`,`background`,`stroke-width`])):(0,e.createCommentVNode)(``,!0)])]),key:`0`}:void 0,r.$slots.title?{name:`title`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(r.$slots,`title`)]),key:`1`}:void 0,r.$slots.label?{name:`label`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(r.$slots,`label`)]),key:`2`}:void 0,r.$slots.value?{name:`value`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(r.$slots,`value`)]),key:`3`}:void 0]),1032,[`title`,`value`,`label`,`to`,`titleClass`,`valueClass`,`labelClass`,`isLink`,`onClick`])}}}),j=(0,e.defineComponent)({__name:`VaxCellGroup`,props:{title:{type:String,default:``},iconSize:{type:Number},iconColor:{type:String},iconBackground:{type:String},iconStrokeWidth:{type:Number},items:{type:Array,default:()=>[]},titleClass:{type:String},valueClass:{type:String},labelClass:{type:String},isLink:{type:Boolean},compact:{type:Boolean,default:!1}},setup(n){return(r,i)=>{let a=t.CellGroup;return(0,e.openBlock)(),(0,e.createBlock)(a,{class:(0,e.normalizeClass)([`vax-card menu`,{compact:n.compact}]),title:n.title},(0,e.createSlots)({default:(0,e.withCtx)(()=>[(0,e.renderSlot)(r.$slots,`default`),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(n.items,(t,r)=>((0,e.openBlock)(),(0,e.createBlock)(A,(0,e.mergeProps)({key:r},{ref_for:!0},t,{"is-link":t.isLink??n.isLink,"title-class":t.titleClass??n.titleClass,"value-class":t.valueClass??n.valueClass,"label-class":t.labelClass??n.labelClass,"icon-size":t.iconSize??n.iconSize,"icon-color":t.iconColor??n.iconColor,"icon-background":t.iconBackground??n.iconBackground,"icon-stroke-width":t.iconStrokeWidth??n.iconStrokeWidth}),null,16,[`is-link`,`title-class`,`value-class`,`label-class`,`icon-size`,`icon-color`,`icon-background`,`icon-stroke-width`]))),128))]),_:2},[r.$slots.title?{name:`title`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(r.$slots,`title`)]),key:`0`}:void 0]),1032,[`class`,`title`])}}}),M=(0,e.defineComponent)({__name:`VaxEmpty`,props:{image:{type:String,default:`default`},imageSize:{type:Number},description:{type:String}},setup(n){let r=n,{t:i}=h(),a=(0,e.computed)(()=>r.description??i(`empty.noData`));return(r,i)=>{let o=t.Empty;return(0,e.openBlock)(),(0,e.createBlock)(o,{image:n.image,imageSize:n.imageSize,description:(0,e.unref)(a)},{default:(0,e.withCtx)(()=>[(0,e.renderSlot)(r.$slots,`default`)]),_:3},8,[`image`,`imageSize`,`description`])}}}),N=(0,e.defineComponent)({__name:`VaxField`,props:(0,e.mergeModels)({icon:{type:String},label:{type:String},type:{type:String,default:`text`},readonly:{type:Boolean,default:!1},columns:{type:Array,default:()=>[]}},{modelValue:{},modelModifiers:{}}),emits:(0,e.mergeModels)([`update:modelValue`],[`update:modelValue`]),setup(n,{emit:r}){let i=(0,e.useModel)(n,`modelValue`),a=(0,e.computed)(()=>n.type===`select`?n.columns.find(e=>e.value===i.value)?.text||``:i.value),o=(0,e.ref)(!1),s=(0,e.ref)(i.value),c=()=>s.value=i.value,l=()=>i.value=s.value,u=()=>{n.readonly||(n.type===`date`?d.value=!0:n.type===`select`?m.value=!0:o.value=!0)},d=(0,e.ref)(!1),f=(0,e.computed)(()=>{let e=new Date;return[String(e.getFullYear()),String(e.getMonth()+1),String(e.getDate())]}),p=({selectedValues:e})=>{i.value=e.join(`-`),d.value=!1},m=(0,e.ref)(!1),h=({selectedValues:e})=>{i.value=e[0],m.value=!1};return(r,i)=>{let g=b,_=t.Cell,v=t.Field,y=t.Dialog,x=t.DatePicker,S=t.Popup,C=t.Picker;return(0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,null,[(0,e.createVNode)(_,{title:n.label,value:(0,e.unref)(a),center:``,"is-link":``,onClick:u},{icon:(0,e.withCtx)(()=>[(0,e.createVNode)(g,{icon:n.icon,class:`mr-2`},null,8,[`icon`])]),_:1},8,[`title`,`value`]),(0,e.createVNode)(y,{show:(0,e.unref)(o),"onUpdate:show":i[1]||=t=>(0,e.isRef)(o)?o.value=t:null,title:n.label,"show-cancel-button":``,onConfirm:l,onCancel:c},{default:(0,e.withCtx)(()=>[(0,e.createVNode)(v,{modelValue:(0,e.unref)(s),"onUpdate:modelValue":i[0]||=t=>(0,e.isRef)(s)?s.value=t:null,type:n.type},null,8,[`modelValue`,`type`])]),_:1},8,[`show`,`title`]),(0,e.createVNode)(S,{show:(0,e.unref)(d),"onUpdate:show":i[3]||=t=>(0,e.isRef)(d)?d.value=t:null,position:`bottom`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)(x,{"model-value":(0,e.unref)(f),title:n.label,onConfirm:p,onCancel:i[2]||=e=>d.value=!1},null,8,[`model-value`,`title`])]),_:1},8,[`show`]),(0,e.createVNode)(S,{show:(0,e.unref)(m),"onUpdate:show":i[5]||=t=>(0,e.isRef)(m)?m.value=t:null,position:`bottom`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)(C,{columns:n.columns,title:n.label,onConfirm:h,onCancel:i[4]||=e=>m.value=!1},null,8,[`columns`,`title`])]),_:1},8,[`show`])],64)}}}),P=(0,e.defineComponent)({__name:`VaxLoading`,props:{type:{type:String,default:`circular`},size:{type:Number,default:48},color:{type:String,default:`#ccc`},vertical:{type:Boolean,default:!1},text:{type:String,default:``},fullscreen:{type:Boolean,default:!1}},setup(n){return(r,i)=>{let a=t.Loading;return(0,e.openBlock)(),(0,e.createBlock)(e.Teleport,{to:`body`,disabled:!n.fullscreen},[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`vax-loading flex-center p-4`,{"vax-loading--fullscreen":n.fullscreen}])},[(0,e.createVNode)(a,{type:n.type,size:n.size,color:n.color,vertical:n.vertical},{default:(0,e.withCtx)(()=>[(0,e.renderSlot)(r.$slots,`default`,{},()=>[(0,e.createTextVNode)((0,e.toDisplayString)(n.text),1)])]),_:3},8,[`type`,`size`,`color`,`vertical`])],2)],8,[`disabled`])}}}),F=y((0,e.defineComponent)({__name:`VaxNavBar`,props:{back:{type:Boolean,default:!1},leftArrow:{type:Boolean,default:!1},leftText:{type:String,default:``},clickLeft:{type:Function,default:()=>{}}},setup(n){(0,e.useCssVars)(t=>({v6f4c100a:(0,e.unref)(a),v48c2d52c:(0,e.unref)(s)}));let r=n,a=(0,e.computed)(()=>r.leftText?`center`:`left`),o=(0,e.computed)(()=>r.leftArrow||r.back),s=(0,e.computed)(()=>r.leftText||o.value?`0`:`16px`),c=(0,i.useRouter)(),l=()=>r.back?c.back():r.clickLeft();return(r,i)=>{let a=t.NavBar;return(0,e.openBlock)(),(0,e.createBlock)(a,{leftArrow:(0,e.unref)(o),leftText:n.leftText,onClickLeft:l},(0,e.createSlots)({_:2},[r.$slots.right?{name:`right`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(r.$slots,`right`,{},void 0,!0)]),key:`0`}:void 0]),1032,[`leftArrow`,`leftText`])}}}),[[`__scopeId`,`data-v-8a17da5a`]]),I={},L={class:`vax-page`};function R(t,n){return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,L,[(0,e.renderSlot)(t.$slots,`default`,{},void 0,!0)])}var z=y(I,[[`render`,R],[`__scopeId`,`data-v-f691f6ba`]]),B={key:0},V={class:`van-picker__toolbar`},H=(0,e.defineComponent)({__name:`VaxSelect`,props:(0,e.mergeModels)({multiple:{type:Boolean,default:!1},options:{type:Array,default:()=>[]}},{modelValue:{type:[String,Number,Array]},modelModifiers:{}}),emits:[`update:modelValue`],setup(n){let r=(0,e.useModel)(n,`modelValue`),i=(0,e.computed)(()=>n.multiple?Array.isArray(r.value)?r.value.join(`,`):``:r.value),{t:a}=h(),o=(0,e.ref)(!1),s=()=>{n.multiple?d.value=r.value??[]:c.value=r.value?[r.value]:[],o.value=!0},c=(0,e.ref)([]),l=(0,e.computed)(()=>n.options?.map(e=>({text:e,value:e}))||[]),u=({selectedValues:e})=>{o.value=!1,r.value=e[0]},d=(0,e.ref)([]),f=(0,e.ref)([]),p=e=>f.value[e]?.toggle(),m=()=>{o.value=!1,r.value=d.value};return(h,g)=>{let _=t.Tag,v=t.Space,y=t.Field,b=t.Picker,x=t.Button,S=t.Checkbox,C=t.Cell,w=t.CellGroup,T=t.CheckboxGroup,E=t.Popup;return(0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,null,[(0,e.createVNode)(y,(0,e.mergeProps)(h.$attrs,{"model-value":i.value,colon:``,readonly:``,"is-link":``,onClick:s}),{input:(0,e.withCtx)(()=>[n.multiple?((0,e.openBlock)(),(0,e.createBlock)(v,{key:1},{default:(0,e.withCtx)(()=>[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(r.value,t=>((0,e.openBlock)(),(0,e.createBlock)(_,{plain:``,type:`primary`},{default:(0,e.withCtx)(()=>[(0,e.createTextVNode)((0,e.toDisplayString)(t),1)]),_:2},1024))),256))]),_:1})):((0,e.openBlock)(),(0,e.createElementBlock)(`span`,B,(0,e.toDisplayString)(r.value),1))]),_:1},16,[`model-value`]),(0,e.createVNode)(E,{show:o.value,"onUpdate:show":g[5]||=e=>o.value=e,"destroy-on-close":``,position:`bottom`,round:``},{default:(0,e.withCtx)(()=>[n.multiple?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:1},[(0,e.createElementVNode)(`div`,V,[(0,e.createVNode)(x,{class:`border-none! bg-white!`,onClick:g[2]||=e=>o.value=!1},{default:(0,e.withCtx)(()=>[(0,e.createTextVNode)((0,e.toDisplayString)((0,e.unref)(a)(`cancel`)),1)]),_:1}),(0,e.createVNode)(x,{class:`border-none! bg-white!`,plain:``,type:`primary`,onClick:m},{default:(0,e.withCtx)(()=>[(0,e.createTextVNode)((0,e.toDisplayString)((0,e.unref)(a)(`confirm`)),1)]),_:1})]),(0,e.createVNode)(T,{modelValue:d.value,"onUpdate:modelValue":g[4]||=e=>d.value=e,direction:`vertical`,class:`h-[264px] overflow-auto`},{default:(0,e.withCtx)(()=>[(0,e.createVNode)(w,null,{default:(0,e.withCtx)(()=>[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(n.options,(t,n)=>((0,e.openBlock)(),(0,e.createBlock)(C,{clickable:``,title:t,onClick:e=>p(n)},{"right-icon":(0,e.withCtx)(()=>[(0,e.createVNode)(S,{ref_for:!0,ref:e=>f.value[n]=e,name:t,onClick:g[3]||=(0,e.withModifiers)(()=>{},[`stop`])},null,8,[`name`])]),_:2},1032,[`title`,`onClick`]))),256))]),_:1})]),_:1},8,[`modelValue`])],64)):((0,e.openBlock)(),(0,e.createBlock)(b,{key:0,modelValue:c.value,"onUpdate:modelValue":g[0]||=e=>c.value=e,columns:l.value,onConfirm:u,onCancel:g[1]||=e=>o.value=!1},null,8,[`modelValue`,`columns`]))]),_:1},8,[`show`])],64)}}}),U=y((0,e.defineComponent)({__name:`VaxTabbar`,props:{menu:{type:Array,required:!0,default:()=>[]},flash:{type:Boolean,default:!1}},setup(t){let n=t,a=(0,e.computed)(()=>n.menu.map(e=>({title:e.title,to:e.to,name:e.to,icon:e.icon,flashed:n.flash&&e.title&&c.value===e.to,dot:e.dot}))),o=(0,i.useRoute)(),s=(0,e.computed)(()=>{let e=``;return n.menu.forEach(({to:t})=>{(o.path+`/`).indexOf(t)!==-1&&t.length>e.length&&(e=t)}),e}),c=(0,e.ref)(s.value),l=(0,e.computed)(()=>n.flash?22:20);return(0,e.watchEffect)(()=>c.value=s.value),(n,i)=>((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(r.Tabbar),{modelValue:(0,e.unref)(c),"onUpdate:modelValue":i[0]||=t=>(0,e.isRef)(c)?c.value=t:null,placeholder:``,"safe-area-inset-bottom":``},{default:(0,e.withCtx)(()=>[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(a),({to:n,name:i,icon:a,title:o,flashed:s,dot:c})=>((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(r.TabbarItem),{replace:``,to:n,name:i,dot:c},(0,e.createSlots)({default:(0,e.withCtx)(()=>[!t.flash||s?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:(0,e.normalizeClass)([{flashed:s},`mt-1.5 font-bold`])},(0,e.toDisplayString)(o),3)):(0,e.createCommentVNode)(``,!0)]),_:2},[s?void 0:{name:`icon`,fn:(0,e.withCtx)(()=>[(0,e.createVNode)(b,{icon:a,size:(0,e.unref)(l)},null,8,[`icon`,`size`])]),key:`0`}]),1032,[`to`,`name`,`dot`]))),256))]),_:1},8,[`modelValue`]))}}),[[`__scopeId`,`data-v-6c3a1eb3`]]),W=[`onClick`],G=y((0,e.defineComponent)({__name:`VaxTabs`,props:(0,e.mergeModels)({tabs:{type:Array,required:!0},sticky:{type:Boolean,default:!1}},{active:{required:!0},activeModifiers:{}}),emits:[`update:active`],setup(n){let r=(0,e.useModel)(n,`active`);function i(e){r.value!==e&&(r.value=e)}return(a,o)=>{let s=t.Badge;return(0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`vax-tabs`,{"vax-tabs--sticky":n.sticky}])},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(n.tabs,({name:t,label:n,badge:a})=>((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:t,type:`button`,class:(0,e.normalizeClass)([`vax-tab`,{active:t===r.value}]),onClick:e=>i(t)},[(0,e.createVNode)(s,{content:a,class:`badge`},{default:(0,e.withCtx)(()=>[(0,e.createTextVNode)((0,e.toDisplayString)(n),1)]),_:2},1032,[`content`])],10,W))),128))],2)}}}),[[`__scopeId`,`data-v-c166075f`]]),K=[S,C,T,k,A,j,M,N,b,P,F,z,H,U,G];K.forEach(e=>{e.install=t=>{let n=e.name??e.__name;n&&t.component(n,e)}});var q={install(e,t){m(t),K.forEach(t=>e.use(t))}};exports.VaxAssetPreview=S,exports.VaxAvatar=C,exports.VaxButton=T,exports.VaxCaptcha=k,exports.VaxCell=A,exports.VaxCellGroup=j,exports.VaxEmpty=M,exports.VaxField=N,exports.VaxIcon=b,exports.VaxLoading=P,exports.VaxNavBar=F,exports.VaxPage=z,exports.VaxSelect=H,exports.VaxTabbar=U,exports.VaxTabs=G,exports.default=q,exports.getLocale=_,exports.provider=m,exports.setLocale=g,exports.useLocale=h;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { }
|