├── src ├── vite-env.d.ts ├── assets │ ├── logo.png │ └── css │ │ ├── chat.less │ │ ├── main.less │ │ └── base.css ├── pinia │ ├── index.ts │ └── modules │ │ └── main.ts ├── directive │ ├── focus.ts │ ├── index.ts │ └── pin.ts ├── views │ ├── address │ │ ├── address.d.ts │ │ ├── AddressList.tsx │ │ └── AddressEdit.tsx │ ├── chat │ │ ├── chat.d.ts │ │ ├── map-list.ts │ │ └── index.tsx │ ├── AboutView.vue │ ├── HomeView.vue │ ├── TodoList.vue │ └── LuckDraw.vue ├── utils │ ├── validate │ │ ├── mobile.ts │ │ ├── date.ts │ │ ├── email.ts │ │ ├── number.ts │ │ └── system.ts │ ├── dom.ts │ ├── storage.ts │ ├── cookie.ts │ ├── deep-clone.ts │ └── index.ts ├── components │ ├── base │ │ ├── index.ts │ │ ├── Select.vue │ │ └── Button.vue │ ├── HelloWorld.vue │ ├── Loading.ts │ └── city-picker │ │ └── index.tsx ├── composition │ └── use-rect.ts ├── global.d.ts ├── main.ts ├── App.vue └── router │ └── index.ts ├── docs ├── assets │ ├── HomeView-fd842f66.css │ ├── logo-03d6d6da.png │ ├── use-expose-41792aad.js │ ├── index-7d2359eb.js │ ├── TodoList-cac1908c.css │ ├── index-63a49186.js │ ├── index-638285ce.css │ ├── index-f5dcfc9b.css │ ├── main-fe8e16d0.js │ ├── LuckDraw-5dee1264.css │ ├── index-54895d77.js │ ├── TodoList-bcd89d1b.js │ ├── main-0b26ea44.css │ ├── HomeView-f739d803.js │ ├── index-d930f8b5.js │ ├── LuckDraw-92ad1ec2.js │ ├── AboutView-47a85c28.css │ ├── AboutView-edd756f1.js │ ├── AddressList-a57a79bf.js │ ├── dayjs.min-40a0aa38.js │ ├── AddressList-c2108b03.css │ ├── index-c09a8951.js │ ├── AddressEdit-5fb61db4.css │ └── index-dcbfa81f.css └── index.html ├── .vscode └── extensions.json ├── postcss.config.cjs ├── tsconfig.node.json ├── .gitignore ├── vite.config.ts ├── package.json ├── tsconfig.json ├── components.d.ts ├── index.html └── README.md /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /docs/assets/HomeView-fd842f66.css: -------------------------------------------------------------------------------- 1 | .text-color{color:var(--f12e12a8)} 2 | -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vincentzyc/vue3-demo/HEAD/src/assets/logo.png -------------------------------------------------------------------------------- /src/pinia/index.ts: -------------------------------------------------------------------------------- 1 | import useMainStore from './modules/main' 2 | 3 | export { 4 | useMainStore 5 | } -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] 3 | } 4 | -------------------------------------------------------------------------------- /docs/assets/logo-03d6d6da.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vincentzyc/vue3-demo/HEAD/docs/assets/logo-03d6d6da.png -------------------------------------------------------------------------------- /docs/assets/use-expose-41792aad.js: -------------------------------------------------------------------------------- 1 | import{e as t,Q as s}from"./index-97037613.js";function r(n){const e=s();e&&t(e.proxy,n)}export{r as u}; 2 | -------------------------------------------------------------------------------- /src/directive/focus.ts: -------------------------------------------------------------------------------- 1 | const focus = { 2 | mounted(el: HTMLInputElement, binding: any) { 3 | el.focus(); 4 | el.style.width = binding.value + 'px' 5 | } 6 | } 7 | 8 | export default focus -------------------------------------------------------------------------------- /docs/assets/index-7d2359eb.js: -------------------------------------------------------------------------------- 1 | function n(o,t){const e=window.JSON.stringify(t);window.localStorage.setItem(o,e)}function a(o){let t;return t=window.localStorage.getItem(o),t&&(t=window.JSON.parse(t)),t}export{a as g,n as s}; 2 | -------------------------------------------------------------------------------- /src/views/address/address.d.ts: -------------------------------------------------------------------------------- 1 | export interface AddressInfo { 2 | id: number; 3 | name: string; 4 | tel: string; 5 | address: string; 6 | ads: string; 7 | city: [string, string, string]; 8 | isDefault: boolean 9 | } -------------------------------------------------------------------------------- /src/utils/validate/mobile.ts: -------------------------------------------------------------------------------- 1 | export function isMobile(value: string): boolean { 2 | value = value.replace(/[^-|\d]/g, ''); 3 | return ( 4 | /^((\+86)|(86))?(1)\d{10}$/.test(value) || /^0[0-9-]{10,13}$/.test(value) 5 | ); 6 | } 7 | -------------------------------------------------------------------------------- /postcss.config.cjs: -------------------------------------------------------------------------------- 1 | const autoprefixer = require('autoprefixer'); 2 | const px2rem = require('postcss-pxtorem'); 3 | 4 | module.exports = { 5 | plugins: [ 6 | autoprefixer(), 7 | px2rem({ rootValue: 50, propList: ['*'] }) 8 | ] 9 | }; 10 | -------------------------------------------------------------------------------- /src/utils/validate/date.ts: -------------------------------------------------------------------------------- 1 | import { isNaN } from './number'; 2 | import { getType } from '../index' 3 | 4 | export function isDate(val: Date): val is Date { 5 | return ( 6 | getType(val) === 'Date' && 7 | !isNaN(val.getTime()) 8 | ); 9 | } 10 | -------------------------------------------------------------------------------- /src/directive/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import focus from './focus' 3 | import pin from './pin' 4 | 5 | const install = function (app: App) { 6 | app.directive('focus', focus) 7 | app.directive('pin', pin) 8 | } 9 | 10 | export default install -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true 8 | }, 9 | "include": ["vite.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /src/utils/validate/email.ts: -------------------------------------------------------------------------------- 1 | export function isEmail(value: string): boolean { 2 | const reg = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 3 | return reg.test(value); 4 | } 5 | -------------------------------------------------------------------------------- /src/components/base/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import Button from './Button.vue'; 3 | import Select from './Select.vue'; 4 | 5 | const install = function (app: App): void { 6 | app.component('YuiButton', Button) 7 | app.component('YuiSelect', Select) 8 | } 9 | 10 | export default install -------------------------------------------------------------------------------- /src/components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /src/utils/validate/number.ts: -------------------------------------------------------------------------------- 1 | export function isNumeric(val: string): boolean { 2 | return /^\d+(\.\d+)?$/.test(val); 3 | } 4 | 5 | export function isNaN(val: number): val is typeof NaN { 6 | if (Number.isNaN) { 7 | return Number.isNaN(val); 8 | } 9 | 10 | // eslint-disable-next-line no-self-compare 11 | return val !== val; 12 | } 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /src/views/chat/chat.d.ts: -------------------------------------------------------------------------------- 1 | export interface QuestionList { 2 | [k: string]: string 3 | } 4 | 5 | export interface AnswerList { 6 | [k: string]: string 7 | } 8 | 9 | export interface MapList { 10 | [k: string]: string | { 11 | [k: string]: string 12 | } 13 | } 14 | 15 | export interface MsgList { 16 | message: string 17 | direction: string 18 | } 19 | 20 | -------------------------------------------------------------------------------- /src/composition/use-rect.ts: -------------------------------------------------------------------------------- 1 | import { Ref, ref, unref } from 'vue'; 2 | 3 | export const useRect = (element: Element | Ref) => { 4 | return unref(element)?.getBoundingClientRect(); 5 | }; 6 | 7 | export const useHeight = (element: Element | Ref) => { 8 | const height = ref(); 9 | 10 | height.value = useRect(element)?.height || 0; 11 | 12 | return height; 13 | }; 14 | -------------------------------------------------------------------------------- /src/components/Loading.ts: -------------------------------------------------------------------------------- 1 | import { Toast } from "vant"; 2 | 3 | export function openLoading(text: string): void { 4 | Toast.loading({ 5 | message: text || '', 6 | duration: 0, // 持续展示 toast 7 | forbidClick: true, // 禁用背景点击 8 | overlay: true, 9 | loadingType: 'spinner' //默认 circular 10 | }); 11 | } 12 | 13 | export function closeLoading(): void { 14 | Toast.clear() 15 | } -------------------------------------------------------------------------------- /src/components/base/Select.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | -------------------------------------------------------------------------------- /src/utils/validate/system.ts: -------------------------------------------------------------------------------- 1 | export const inBrowser = typeof window !== 'undefined' 2 | 3 | export function isAndroid(): boolean { 4 | /* istanbul ignore next */ 5 | return inBrowser ? /android/.test(navigator.userAgent.toLowerCase()) : false; 6 | } 7 | 8 | export function isIOS(): boolean { 9 | /* istanbul ignore next */ 10 | return inBrowser 11 | ? /ios|iphone|ipad|ipod/.test(navigator.userAgent.toLowerCase()) 12 | : false; 13 | } 14 | -------------------------------------------------------------------------------- /src/global.d.ts: -------------------------------------------------------------------------------- 1 | interface Window { 2 | scroll2Bottom(): void; 3 | } 4 | 5 | declare module '@vant/area-data' { 6 | export declare const areaList: { 7 | province_list: Record; 8 | city_list: Record; 9 | county_list: Record; 10 | }; 11 | type CascaderOption = { 12 | text: string; 13 | value: string; 14 | children?: CascaderOption[]; 15 | }; 16 | export declare function useCascaderAreaData(): CascaderOption[]; 17 | export {}; 18 | } 19 | -------------------------------------------------------------------------------- /src/directive/pin.ts: -------------------------------------------------------------------------------- 1 | // const pin = { 2 | // mounted(el: HTMLInputElement, binding: any) { 3 | // el.style.position = 'fixed' 4 | // const s = binding.arg || 'top' 5 | // el.style[s] = binding.value + 'px' 6 | // }, 7 | // updated(el: HTMLInputElement, binding: any) { 8 | // const s = binding.arg || 'top' 9 | // el.style[s] = binding.value + 'px' 10 | // } 11 | // } 12 | 13 | const pin = (el: HTMLInputElement, binding: any) => { 14 | el.style.position = 'fixed' 15 | const s = binding.arg || 'top' 16 | el.style[s] = binding.value + 'px' 17 | } 18 | 19 | export default pin -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | import router from './router' 4 | import './assets/css/base.css' 5 | import './assets/css/main.less' 6 | import BaseComponents from './components/base' 7 | import BaseDirective from './directive' 8 | import { createPinia } from 'pinia' 9 | // import 'vant/lib/index.css'; 10 | import 'vant/es/dialog/style'; 11 | import 'vant/es/toast/style'; 12 | 13 | // import 'vant/es/nav-bar/style'; // 使用了 tsx 14 | 15 | 16 | const app = createApp(App) 17 | 18 | app.use(BaseComponents) 19 | app.use(BaseDirective) 20 | app.use(createPinia()) 21 | 22 | app.use(router).mount('#app') 23 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import vue from '@vitejs/plugin-vue'; 3 | import Components from 'unplugin-vue-components/vite'; 4 | import { VantResolver } from 'unplugin-vue-components/resolvers'; 5 | import vueJsx from '@vitejs/plugin-vue-jsx'; 6 | 7 | // https://vitejs.dev/config/ 8 | export default defineConfig({ 9 | base: './', 10 | server: { 11 | host: true, 12 | port: 8010, 13 | }, 14 | build: { 15 | outDir: 'docs', 16 | }, 17 | plugins: [ 18 | vue(), 19 | vueJsx(), 20 | Components({ 21 | resolvers: [VantResolver()], 22 | }), 23 | ], 24 | resolve: { 25 | alias: { 26 | '@': '/src', 27 | }, 28 | }, 29 | }); 30 | -------------------------------------------------------------------------------- /src/utils/dom.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * 滑动到底部 3 | */ 4 | export function easeBottom() { 5 | let position = window.pageYOffset 6 | const destination = document.documentElement.offsetHeight - document.documentElement.clientHeight 7 | // 不存在原生`requestAnimationFrame`,用`setTimeout`模拟替代 8 | if (!window.requestAnimationFrame) { 9 | window.requestAnimationFrame = function (fn) { 10 | return setTimeout(fn, 17); 11 | }; 12 | } 13 | function step() { 14 | position = position + (destination - position) / 8; 15 | if (Math.abs(destination - position) < 2) { 16 | //动画结束 17 | window.scrollTo(0, destination) 18 | return; 19 | } 20 | window.scrollTo(0, position) 21 | requestAnimationFrame(step); 22 | } 23 | step(); 24 | } -------------------------------------------------------------------------------- /src/utils/storage.ts: -------------------------------------------------------------------------------- 1 | export function setSessionStorage(key: string, value: any): void { 2 | const str = window.JSON.stringify(value); 3 | window.sessionStorage.setItem(key, str); 4 | } 5 | 6 | export function getSessionStorage(key: string): any { 7 | let json: string | null; 8 | json = window.sessionStorage.getItem(key); 9 | if (json) json = window.JSON.parse(json); 10 | return json; 11 | } 12 | 13 | export function setLocalStorage(key: string, value: any): void { 14 | const str = window.JSON.stringify(value); 15 | window.localStorage.setItem(key, str); 16 | } 17 | 18 | export function getLocalStorage(key: string): any { 19 | let json: string | null; 20 | json = window.localStorage.getItem(key); 21 | if (json) json = window.JSON.parse(json); 22 | return json; 23 | } -------------------------------------------------------------------------------- /src/components/base/Button.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 14 | 15 | -------------------------------------------------------------------------------- /src/utils/cookie.ts: -------------------------------------------------------------------------------- 1 | export function setCookie(key: string, value: string, time: number): void { 2 | const cur = new Date(); 3 | cur.setTime(cur.getTime() + time * 24 * 3600 * 1000); 4 | document.cookie = `${key}=${encodeURIComponent(value)};expires=${time ? cur.toUTCString() : ''}}` 5 | } 6 | 7 | export function getCookie(key: string): string { 8 | const data = document.cookie; 9 | let startIndex = data.indexOf(key + '='); 10 | if (startIndex > -1) { 11 | startIndex = startIndex + key.length + 1; 12 | let endIndex = data.indexOf(';', startIndex); 13 | endIndex = endIndex < 0 ? data.length : endIndex; 14 | return decodeURIComponent(data.substring(startIndex, endIndex)); 15 | } else { 16 | return ''; 17 | } 18 | } 19 | 20 | export function delCookie(key: string): void { 21 | setCookie(key, '', -1); 22 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-demo", 3 | "version": "1.2.0", 4 | "private": true, 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vue-tsc && vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "@vant/area-data": "^1.4.1", 13 | "dayjs": "^1.11.7", 14 | "pinia": "^2.0.36", 15 | "vant": "^4.3.1", 16 | "vue": "^3.2.47", 17 | "vue-router": "^4.2.0" 18 | }, 19 | "devDependencies": { 20 | "@vitejs/plugin-vue": "^4.1.0", 21 | "@vitejs/plugin-vue-jsx": "^3.0.1", 22 | "autoprefixer": "^10.4.14", 23 | "less": "^4.1.3", 24 | "less-loader": "^11.1.0", 25 | "postcss-pxtorem": "^6.0.0", 26 | "typescript": "^5.0.2", 27 | "unplugin-vue-components": "^0.24.1", 28 | "vite": "^4.3.2", 29 | "vue-tsc": "^1.4.2" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": "./", 4 | "target": "ES2020", 5 | "useDefineForClassFields": true, 6 | "module": "ESNext", 7 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 8 | "skipLibCheck": true, 9 | "paths": { 10 | "@/*": ["src/*"] 11 | }, 12 | 13 | /* Bundler mode */ 14 | "moduleResolution": "bundler", 15 | "allowImportingTsExtensions": true, 16 | "resolveJsonModule": true, 17 | "isolatedModules": true, 18 | "noEmit": true, 19 | "jsx": "preserve", 20 | 21 | /* Linting */ 22 | "strict": true, 23 | "noUnusedLocals": true, 24 | "noUnusedParameters": true, 25 | "noFallthroughCasesInSwitch": true 26 | }, 27 | "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], 28 | "references": [{ "path": "./tsconfig.node.json" }] 29 | } 30 | -------------------------------------------------------------------------------- /docs/assets/TodoList-cac1908c.css: -------------------------------------------------------------------------------- 1 | :root{--van-cell-group-background: var(--van-background-2);--van-cell-group-title-color: var(--van-text-color-2);--van-cell-group-title-padding: var(--van-padding-md) var(--van-padding-md);--van-cell-group-title-font-size: var(--van-font-size-md);--van-cell-group-title-line-height: .32rem;--van-cell-group-inset-padding: 0 var(--van-padding-md);--van-cell-group-inset-radius: var(--van-radius-lg);--van-cell-group-inset-title-padding: var(--van-padding-md) var(--van-padding-md)}.van-cell-group{background:var(--van-cell-group-background)}.van-cell-group--inset{margin:var(--van-cell-group-inset-padding);border-radius:var(--van-cell-group-inset-radius);overflow:hidden}.van-cell-group__title{padding:var(--van-cell-group-title-padding);color:var(--van-cell-group-title-color);font-size:var(--van-cell-group-title-font-size);line-height:var(--van-cell-group-title-line-height)}.van-cell-group__title--inset{padding:var(--van-cell-group-inset-title-padding)} 2 | -------------------------------------------------------------------------------- /src/pinia/modules/main.ts: -------------------------------------------------------------------------------- 1 | import { defineStore } from 'pinia'; 2 | 3 | // main is the name of the store. It is unique across your application 4 | // and will appear in devtools 5 | export const useMainStore = defineStore('main', { 6 | // a function that returns a fresh state 7 | state: () => ({ 8 | counter: 0, 9 | name: 'Eduardo', 10 | selectAddress: null, 11 | undoneTodoList: [ 12 | { 13 | id: Date.now(), 14 | name: '吃饭', 15 | }, 16 | ], 17 | }), 18 | // optional getters 19 | getters: { 20 | // getters receive the state as first parameter 21 | doubleCount: state => state.counter * 2, 22 | // use getters in other getters 23 | doubleCountPlusOne(): number { 24 | return this.doubleCount * 2 + 1; 25 | }, 26 | }, 27 | // optional actions 28 | actions: { 29 | reset() { 30 | // `this` is the store instance 31 | this.counter = 0; 32 | }, 33 | }, 34 | }); 35 | 36 | export default useMainStore; 37 | -------------------------------------------------------------------------------- /src/utils/deep-clone.ts: -------------------------------------------------------------------------------- 1 | import { isDef, isObject } from './index'; 2 | 3 | type ObjectIndex = Record; 4 | 5 | const { hasOwnProperty } = Object.prototype; 6 | 7 | 8 | function assignKey(to: ObjectIndex, from: ObjectIndex, key: string) { 9 | const val = from[key]; 10 | 11 | if (!isDef(val)) return; 12 | 13 | if (!hasOwnProperty.call(to, key) || !isObject(val)) { 14 | to[key] = val; 15 | } else { 16 | to[key] = deepAssign(Object(to[key]), from[key]); 17 | } 18 | } 19 | 20 | function deepAssign(to: ObjectIndex, from: ObjectIndex): ObjectIndex { 21 | Object.keys(from).forEach((key) => { 22 | assignKey(to, from, key); 23 | }); 24 | 25 | return to; 26 | } 27 | 28 | 29 | export function deepClone(obj: Record): Record { 30 | if (Array.isArray(obj)) { 31 | return obj.map((item) => deepClone(item)); 32 | } 33 | 34 | if (typeof obj === 'object') { 35 | return deepAssign({}, obj); 36 | } 37 | 38 | return obj; 39 | } 40 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 32 | -------------------------------------------------------------------------------- /components.d.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | /* prettier-ignore */ 3 | // @ts-nocheck 4 | // Generated by unplugin-vue-components 5 | // Read more: https://github.com/vuejs/core/pull/3399 6 | import '@vue/runtime-core' 7 | 8 | export {} 9 | 10 | declare module '@vue/runtime-core' { 11 | export interface GlobalComponents { 12 | Button: typeof import('./src/components/base/Button.vue')['default'] 13 | HelloWorld: typeof import('./src/components/HelloWorld.vue')['default'] 14 | RouterLink: typeof import('vue-router')['RouterLink'] 15 | RouterView: typeof import('vue-router')['RouterView'] 16 | Select: typeof import('./src/components/base/Select.vue')['default'] 17 | VanButton: typeof import('vant/es')['Button'] 18 | VanCell: typeof import('vant/es')['Cell'] 19 | VanCellGroup: typeof import('vant/es')['CellGroup'] 20 | VanNoticeBar: typeof import('vant/es')['NoticeBar'] 21 | VanStep: typeof import('vant/es')['Step'] 22 | VanSteps: typeof import('vant/es')['Steps'] 23 | VanTabbar: typeof import('vant/es')['Tabbar'] 24 | VanTabbarItem: typeof import('vant/es')['TabbarItem'] 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /docs/assets/index-63a49186.js: -------------------------------------------------------------------------------- 1 | import{j as m,d as R,l as b,aF as A,Z as C,N as s,c as r,a1 as o,aU as w,I as N,ag as P,D as L}from"./index-97037613.js";const[S,t]=m("nav-bar"),y={title:String,fixed:Boolean,zIndex:C,border:s,leftText:String,rightText:String,leftArrow:Boolean,placeholder:Boolean,safeAreaInsetTop:Boolean,clickable:s};var D=R({name:S,props:y,emits:["clickLeft","clickRight"],setup(e,{emit:l,slots:a}){const c=b(),f=A(c,t),d=n=>l("clickLeft",n),h=n=>l("clickRight",n),g=()=>a.left?a.left():[e.leftArrow&&r(N,{class:t("arrow"),name:"arrow-left"},null),e.leftText&&r("span",{class:t("text")},[e.leftText])],x=()=>a.right?a.right():r("span",{class:t("text")},[e.rightText]),i=()=>{const{title:n,fixed:u,border:v,zIndex:T}=e,k=P(T),B=e.leftArrow||e.leftText||a.left,I=e.rightText||a.right;return r("div",{ref:c,style:k,class:[t({fixed:u}),{[w]:v,"van-safe-area-top":e.safeAreaInsetTop}]},[r("div",{class:t("content")},[B&&r("div",{class:[t("left"),e.clickable?o:""],onClick:d},[g()]),r("div",{class:[t("title"),"van-ellipsis"]},[a.title?a.title():n]),I&&r("div",{class:[t("right"),e.clickable?o:""],onClick:h},[x()])])])};return()=>e.fixed&&e.placeholder?f(i):i()}});const O=L(D);export{O as N}; 2 | -------------------------------------------------------------------------------- /docs/assets/index-638285ce.css: -------------------------------------------------------------------------------- 1 | .chat-wrapper .avatar{flex:none;margin-right:.1rem;background:url(https://img.yzcdn.cn/vant/logo.png) no-repeat 0 0 / 100% 100%;width:1rem;height:1rem;border-radius:.6rem}.chat-wrapper .bubble{padding:.2rem .3rem;color:#333;font-size:.28rem;line-height:.44rem;background:#fff;border:.02rem solid #41b883;border-radius:.1rem;position:relative;min-width:1.6rem;margin:0 .3rem 0 .1rem}.chat-wrapper .bubble img{width:100%}.chat-wrapper .bubble:before{content:"";border-style:solid;border-width:.16rem;position:absolute;top:.16rem}.chat-wrapper .bubble-left:before{border-color:transparent #41b883 transparent transparent;left:-.34rem}.chat-wrapper .bubble-right:before{border-color:transparent transparent transparent #16b5eb;right:-.34rem}.chat-wrapper .bubble-right{color:#fff;background:#16b5eb;border:.02rem solid transparent}.answers-wrapper{position:fixed;bottom:0;width:100%;padding:.2rem;background:#fff}.answers-wrapper .btnbox{flex:0 0 50%}.answers-wrapper .btnbox .btn{background:#16b5eb;margin:.1rem;padding:.16rem .2rem;border-radius:.1rem;color:#fff;cursor:pointer;font-size:.24rem;line-height:.36rem;transition:.2s;width:100%}.answers-wrapper .btnbox .btn:active{background:#1296c3}.answers-wrapper .loadingtxt{color:#16b5eb} 2 | -------------------------------------------------------------------------------- /src/components/city-picker/index.tsx: -------------------------------------------------------------------------------- 1 | import { defineComponent, ref } from 'vue'; 2 | import { Popup, Area } from 'vant'; 3 | import 'vant/es/popup/style'; 4 | import 'vant/es/picker/style'; 5 | import 'vant/es/area/style'; 6 | import { areaList } from '@vant/area-data'; 7 | 8 | export default defineComponent({ 9 | props: { 10 | modelValue: { 11 | type: Array, 12 | default: () => [], 13 | }, 14 | }, 15 | setup(_props, { emit, expose }) { 16 | const showPicker = ref(false); 17 | const valuesArr = ref(['', '', '']); 18 | 19 | function confirm({ selectedOptions }: { selectedOptions: any[] }) { 20 | showPicker.value = false; 21 | valuesArr.value = selectedOptions.map(v => v.text); 22 | emit('close', valuesArr.value); 23 | emit('update:modelValue', valuesArr.value); 24 | } 25 | function cancel() { 26 | showPicker.value = false; 27 | emit('close', valuesArr.value); 28 | } 29 | 30 | function open() { 31 | showPicker.value = true; 32 | } 33 | 34 | expose({ open, close }); 35 | 36 | return () => ( 37 | 38 | 39 | 40 | ); 41 | }, 42 | }); 43 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vue3 Vite TS Demo 8 | 14 | 29 | 30 | 31 |
32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /docs/assets/index-f5dcfc9b.css: -------------------------------------------------------------------------------- 1 | :root{--van-nav-bar-height: .92rem;--van-nav-bar-background: var(--van-background-2);--van-nav-bar-arrow-size: .32rem;--van-nav-bar-icon-color: var(--van-primary-color);--van-nav-bar-text-color: var(--van-primary-color);--van-nav-bar-title-font-size: var(--van-font-size-lg);--van-nav-bar-title-text-color: var(--van-text-color);--van-nav-bar-z-index: 1}.van-nav-bar{position:relative;z-index:var(--van-nav-bar-z-index);line-height:var(--van-line-height-lg);text-align:center;background:var(--van-nav-bar-background);-webkit-user-select:none;-moz-user-select:none;user-select:none}.van-nav-bar--fixed{position:fixed;top:0;left:0;width:100%}.van-nav-bar--safe-area-inset-top{padding-top:constant(safe-area-inset-top);padding-top:env(safe-area-inset-top)}.van-nav-bar .van-icon{color:var(--van-nav-bar-icon-color)}.van-nav-bar__content{position:relative;display:flex;align-items:center;height:var(--van-nav-bar-height)}.van-nav-bar__arrow{margin-right:var(--van-padding-base);font-size:var(--van-nav-bar-arrow-size)}.van-nav-bar__title{max-width:60%;margin:0 auto;color:var(--van-nav-bar-title-text-color);font-weight:var(--van-font-bold);font-size:var(--van-nav-bar-title-font-size)}.van-nav-bar__left,.van-nav-bar__right{position:absolute;top:0;bottom:0;display:flex;align-items:center;padding:0 var(--van-padding-md);font-size:var(--van-font-size-md)}.van-nav-bar__left{left:0}.van-nav-bar__right{right:0}.van-nav-bar__text{color:var(--van-nav-bar-text-color)} 2 | -------------------------------------------------------------------------------- /src/utils/index.ts: -------------------------------------------------------------------------------- 1 | type StringObj = { [k: string]: string } 2 | type UrlParamBack = null | string | StringObj 3 | 4 | /** 5 | * 获取数据类型 6 | * @param {any} value 需要判断的值 7 | * @return "String","Object","Array"... 8 | */ 9 | export function getType(value: any) { 10 | return Object.prototype.toString.call(value).slice(8, -1) 11 | } 12 | 13 | export function isDef(val: unknown): boolean { 14 | return val !== undefined && val !== null; 15 | } 16 | 17 | export function isObject(val: unknown): val is Record { 18 | return Object.prototype.toString.call(val).slice(8, -1) === 'Object'; 19 | } 20 | 21 | export function isArray(val: unknown): boolean { 22 | return Object.prototype.toString.call(val).slice(8, -1) === 'Array'; 23 | } 24 | 25 | export function isString(val: unknown): boolean { 26 | return Object.prototype.toString.call(val).slice(8, -1) === 'String'; 27 | } 28 | 29 | /** 30 | * 获取url参数值 31 | * @param {String} name 参数名称(不传则返回一个全部参数对象) 32 | */ 33 | export function getUrlParam(name = ''): UrlParamBack { 34 | const href = window.location.href, i = href.indexOf("?"); 35 | if (i < 0) return null; 36 | const str = href.slice(i); 37 | if (!str) return null; 38 | const arr = str.match(/([^?&=#]+)=([^?&=#/]*)/g); 39 | if (!arr) return null; 40 | const obj: StringObj = {} 41 | arr.forEach(v => { 42 | const temp = v.split('='); 43 | if (temp.length > 0) { 44 | obj[temp[0]] = temp[1]; 45 | } 46 | }) 47 | if (name) return obj[name] 48 | return obj 49 | } -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vue3 Vite TS Demo 8 | 14 | 29 | 30 | 31 | 32 | 33 |
34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vue3-demo 2 | 3 | This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` -------------------------------------------------------------------------------- /src/views/address/AddressList.tsx: -------------------------------------------------------------------------------- 1 | import { ref, reactive, defineComponent } from "vue"; 2 | import { useRouter } from "vue-router"; 3 | import { AddressList, NavBar } from "vant"; 4 | import { getLocalStorage, setLocalStorage } from '@/utils/storage'; 5 | import { AddressInfo } from "./address" 6 | import { useMainStore } from '@/pinia'; 7 | import 'vant/es/nav-bar/style'; 8 | import 'vant/es/address-list/style'; 9 | 10 | export default defineComponent(() => { 11 | const router = useRouter() 12 | const mainStore = useMainStore(); 13 | const chosenAddressId = ref() 14 | const localAddress = getLocalStorage('addressList') 15 | 16 | const list: Array = reactive(localAddress || [ 17 | { 18 | id: 1, 19 | name: '张三', 20 | tel: '13012345678', 21 | address: '浙江省杭州市西湖区文三路138号东方通信大厦7楼501室', 22 | ads: "文三路 138 号东方通信大厦7楼501室", 23 | city: ["浙江省", "杭州市", "西湖区"], 24 | isDefault: true, 25 | }, 26 | { 27 | id: 2, 28 | name: '李四', 29 | tel: '13112345678', 30 | address: '浙江省杭州市拱墅区莫干山路50号', 31 | ads: "莫干山路 50 号", 32 | city: ["浙江省", "杭州市", "拱墅区"], 33 | isDefault: false, 34 | }, 35 | { 36 | id: 3, 37 | name: '王五', 38 | tel: '13212345678', 39 | address: '浙江省杭州市滨江区江南大道15号', 40 | ads: "江南大道 15 号", 41 | city: ["浙江省", "杭州市", "滨江区"], 42 | isDefault: false, 43 | } 44 | ]) 45 | 46 | if (!localAddress) setLocalStorage('addressList', list) 47 | 48 | const onAdd = () => { 49 | router.push('/address/edit') 50 | } 51 | const onEdit = (item: any) => { 52 | mainStore.selectAddress = item 53 | router.push('/address/edit') 54 | } 55 | 56 | const onClickLeft = () => { 57 | router.back() 58 | } 59 | 60 | return () => { 61 | return ( 62 |
63 | 64 | 71 |
72 | ); 73 | } 74 | }) -------------------------------------------------------------------------------- /docs/assets/LuckDraw-5dee1264.css: -------------------------------------------------------------------------------- 1 | .luckdraw-content[data-v-9a630300]{margin-top:.4rem;width:100%;padding-bottom:1rem}.luckdraw-content .luckdraw-scroll .bg-scroll[data-v-9a630300]{position:relative;width:90%;height:.74rem;line-height:.74rem;font-size:.35rem;border-radius:.4rem;overflow:hidden;list-style:none;padding:0;margin:0 auto;text-align:center;letter-spacing:.03rem;background:linear-gradient(to right,#bcbcc1,#cdcdcd,#bcbcc1)}.luckdraw-content .luckdraw-scroll .lkq-name[data-v-9a630300]{margin:0 auto;color:#fff;font-size:.28rem}.luckdraw-content .luckdraw-scroll .anim[data-v-9a630300]{transition:all .5s linear;margin-top:-.74rem}.luckdraw-content .turntable[data-v-9a630300]{position:relative;margin:.4rem auto;width:6rem;height:6rem;background:#fed479;border-radius:.4rem;box-sizing:border-box;padding:5%}.luckdraw-content .turntable .bulb[data-v-9a630300]{position:absolute;width:100%;height:100%;top:0;left:0}.luckdraw-content .turntable .bulb .bulb-1[data-v-9a630300]{animation:bulb-animation-9a630300 .5s -.25s infinite}.luckdraw-content .turntable .bulb .bulb-2[data-v-9a630300]{animation:bulb-animation-9a630300 .5s infinite}.luckdraw-content .turntable .awards-list[data-v-9a630300]{margin:0;padding:0;list-style:none;width:100%;height:100%}.luckdraw-content .turntable .awards-item[data-v-9a630300]{width:32%;height:32%;margin:.66%;float:left;display:flex;justify-content:center;align-items:center;flex-direction:column;box-sizing:border-box;border:.06rem solid #fff;border-radius:25%;font-size:.24rem;background:#fff;color:#d65c23;border-color:#fff;background-color:#fff;transition:border-color .1s}.luckdraw-content .turntable .awards-item-draw[data-v-9a630300]{background:#963434;border:none;overflow:hidden}.luckdraw-content .turntable .draw-btn[data-v-9a630300]{position:relative;display:flex;justify-content:center;align-items:center;border-radius:25%;height:100%;width:100%;color:#fff;font-size:.28rem;border:.06rem solid #ff7051;background:#ff7051;animation:draw-btn-jump-9a630300 .5s infinite}.luckdraw-content .turntable .run-item[data-v-9a630300]{position:relative;border-color:#ff7051}@keyframes bulb-animation-9a630300{0%{color:#fff}50%{color:#ffe37f}to{color:#fff}}@keyframes draw-btn-jump-9a630300{0%{top:-.12rem}50%{top:0}to{top:-.12rem}} 2 | -------------------------------------------------------------------------------- /docs/assets/index-54895d77.js: -------------------------------------------------------------------------------- 1 | import{j as m,c as t,d as v,H as p,e as B,aS as w,Z as y,E as c,a3 as L,D as z,ar as N,aG as U,aT as $,I as q,a8 as E}from"./index-97037613.js";const[O,s]=m("loading"),j=Array(12).fill(null).map((e,a)=>t("i",{class:s("line",String(a+1))},null)),A=t("svg",{class:s("circular"),viewBox:"25 25 50 50"},[t("circle",{cx:"50",cy:"50",r:"20",fill:"none"},null)]),G={size:y,type:c("circular"),color:String,vertical:Boolean,textSize:y,textColor:String};var H=v({name:O,props:G,setup(e,{slots:a}){const o=p(()=>B({color:e.color},w(e.size))),u=()=>{const i=e.type==="spinner"?j:A;return t("span",{class:s("spinner",e.type),style:o.value},[a.icon?a.icon():i])},g=()=>{var i;if(a.default)return t("span",{class:s("text"),style:{fontSize:L(e.textSize),color:(i=e.textColor)!=null?i:e.color}},[a.default()])};return()=>{const{type:i,vertical:f}=e;return t("div",{class:s([i,{vertical:f}]),"aria-live":"polite","aria-busy":!0},[u(),g()])}}});const V=z(H),[Z,r]=m("button"),F=B({},N,{tag:c("button"),text:String,icon:String,type:c("default"),size:c("normal"),color:String,block:Boolean,plain:Boolean,round:Boolean,square:Boolean,loading:Boolean,hairline:Boolean,disabled:Boolean,iconPrefix:String,nativeType:c("button"),loadingSize:y,loadingText:String,loadingType:String,iconPosition:c("left")});var J=v({name:Z,props:F,emits:["click"],setup(e,{emit:a,slots:o}){const u=U(),g=()=>o.loading?o.loading():t(V,{size:e.loadingSize,type:e.loadingType,class:r("loading")},null),i=()=>{if(e.loading)return g();if(o.icon)return t("div",{class:r("icon")},[o.icon()]);if(e.icon)return t(q,{name:e.icon,class:r("icon"),classPrefix:e.iconPrefix},null)},f=()=>{let n;if(e.loading?n=e.loadingText:n=o.default?o.default():e.text,n)return t("span",{class:r("text")},[n])},P=()=>{const{color:n,plain:d}=e;if(n){const l={color:d?n:"white"};return d||(l.background=n),n.includes("gradient")?l.border=0:l.borderColor=n,l}},I=n=>{e.loading?E(n):e.disabled||(a("click",n),u())};return()=>{const{tag:n,type:d,size:l,block:T,round:k,plain:C,square:h,loading:D,disabled:S,hairline:x,nativeType:R,iconPosition:b}=e,_=[r([d,l,{plain:C,block:T,round:k,square:h,loading:D,disabled:S,hairline:x}]),{[$]:x}];return t(n,{type:R,class:_,style:P(),disabled:S,onClick:I},{default:()=>[t("div",{class:r("content")},[b==="left"&&i(),f(),b==="right"&&i()])]})}}});const M=z(J);export{M as B,V as L}; 2 | -------------------------------------------------------------------------------- /src/views/HomeView.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | 77 | 78 | 83 | -------------------------------------------------------------------------------- /docs/assets/TodoList-bcd89d1b.js: -------------------------------------------------------------------------------- 1 | import{j as A,d as w,c as t,M as g,N as I,m as M,O as R,D as V,l as x,n as G,a as h,b as n,w as $,v as j,g as e,h as E,P as F,Q,o as p,f as _,R as B,S as b,t as D,L as U}from"./index-97037613.js";import{u as q,C as H}from"./main-fe8e16d0.js";import{B as J}from"./index-54895d77.js";const[K,L]=A("cell-group"),W={title:String,inset:Boolean,border:I};var X=w({name:K,inheritAttrs:!1,props:W,setup(c,{slots:d,attrs:f}){const r=()=>{var a;return t("div",M({class:[L({inset:c.inset}),{[R]:c.border&&!c.inset}]},f),[(a=d.default)==null?void 0:a.call(d)])},v=()=>t("div",{class:L("title",{inset:c.inset})},[d.title?d.title():c.title]);return()=>c.title||d.title?t(g,null,[v(),r()]):r()}});const Y=V(X);const Z={class:"todo-list text-center mg20"},ee=n("h3",{class:"mg10"},"Todo List",-1),te={class:"flex flex-center"},ne=n("h3",{class:"mg10"},"任务清单",-1),oe={class:"done-todo-area"},se=n("h3",{class:"mg10"},"已完成的任务清单",-1),le={class:"mg10"},ae={class:"mg10 mg-t20"},re=w({__name:"TodoList",setup(c){const d=q(),f=F(),r=Q(),v=x(),a=x(""),u=d.undoneTodoList,m=G([{id:Date.now(),name:"睡觉"}]),N=()=>{var l;if(a.value==="")return((l=r==null?void 0:r.refs)==null?void 0:l.todoinput).focus();const i={id:Date.now(),name:a.value};u.push(i),a.value=""},k=(i,l)=>{l?u.splice(u.findIndex(o=>o.id===i.id),1):m.splice(m.findIndex(o=>o.id===i.id),1)},O=i=>{u.splice(u.findIndex(l=>l.id===i.id),1),m.push(i)};function P(){f.push("/address/list")}function S(){f.push("/chat/list")}return(i,l)=>{const o=J,C=H,T=Y,z=E("focus");return p(),h("div",Z,[ee,n("div",te,[$(n("input",{ref_key:"todoinput",ref:v,"onUpdate:modelValue":l[0]||(l[0]=s=>a.value=s)},null,512),[[z,200],[j,a.value]]),t(o,{onClick:N,size:"small",type:"primary"},{default:e(()=>[_("新增清单")]),_:1})]),n("div",null,[ne,t(T,null,{default:e(()=>[(p(!0),h(g,null,B(U(u),s=>(p(),b(C,{key:s.id},{title:e(()=>[n("span",null,"---"+D(s.name)+"---",1)]),"right-icon":e(()=>[t(o,{onClick:y=>O(s),size:"small",type:"success"},{default:e(()=>[_("已完成")]),_:2},1032,["onClick"]),t(o,{onClick:y=>k(s,!0),size:"small",type:"danger"},{default:e(()=>[_("删除")]),_:2},1032,["onClick"])]),_:2},1024))),128))]),_:1})]),n("div",oe,[se,t(T,null,{default:e(()=>[(p(!0),h(g,null,B(m,s=>(p(),b(C,{key:s.id},{title:e(()=>[n("span",null,"---"+D(s.name)+"---",1)]),"right-icon":e(()=>[t(o,{onClick:y=>k(s,!1),size:"small",type:"danger"},{default:e(()=>[_("删除")]),_:2},1032,["onClick"])]),_:2},1024))),128))]),_:1})]),n("div",le,[t(o,{onClick:P,block:"",type:"primary"},{default:e(()=>[_("地址列表")]),_:1})]),n("div",ae,[t(o,{onClick:S,block:"",type:"primary"},{default:e(()=>[_("聊天室")]),_:1})])])}}});export{re as default}; 2 | -------------------------------------------------------------------------------- /docs/assets/main-0b26ea44.css: -------------------------------------------------------------------------------- 1 | :root{--van-cell-font-size: var(--van-font-size-md);--van-cell-line-height: .48rem;--van-cell-vertical-padding: .2rem;--van-cell-horizontal-padding: var(--van-padding-md);--van-cell-text-color: var(--van-text-color);--van-cell-background: var(--van-background-2);--van-cell-border-color: var(--van-border-color);--van-cell-active-color: var(--van-active-color);--van-cell-required-color: var(--van-danger-color);--van-cell-label-color: var(--van-text-color-2);--van-cell-label-font-size: var(--van-font-size-sm);--van-cell-label-line-height: var(--van-line-height-sm);--van-cell-label-margin-top: var(--van-padding-base);--van-cell-value-color: var(--van-text-color-2);--van-cell-icon-size: .32rem;--van-cell-right-icon-color: var(--van-gray-6);--van-cell-large-vertical-padding: var(--van-padding-sm);--van-cell-large-title-font-size: var(--van-font-size-lg);--van-cell-large-label-font-size: var(--van-font-size-md)}.van-cell{position:relative;display:flex;box-sizing:border-box;width:100%;padding:var(--van-cell-vertical-padding) var(--van-cell-horizontal-padding);overflow:hidden;color:var(--van-cell-text-color);font-size:var(--van-cell-font-size);line-height:var(--van-cell-line-height);background:var(--van-cell-background)}.van-cell:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;right:var(--van-padding-md);bottom:0;left:var(--van-padding-md);border-bottom:.02rem solid var(--van-cell-border-color);transform:scaleY(.5)}.van-cell:last-child:after,.van-cell--borderless:after{display:none}.van-cell__label{margin-top:var(--van-cell-label-margin-top);color:var(--van-cell-label-color);font-size:var(--van-cell-label-font-size);line-height:var(--van-cell-label-line-height)}.van-cell__title,.van-cell__value{flex:1}.van-cell__value{position:relative;overflow:hidden;color:var(--van-cell-value-color);text-align:right;vertical-align:middle;word-wrap:break-word}.van-cell__left-icon,.van-cell__right-icon{height:var(--van-cell-line-height);font-size:var(--van-cell-icon-size);line-height:var(--van-cell-line-height)}.van-cell__left-icon{margin-right:var(--van-padding-base)}.van-cell__right-icon{margin-left:var(--van-padding-base);color:var(--van-cell-right-icon-color)}.van-cell--clickable{cursor:pointer}.van-cell--clickable:active{background-color:var(--van-cell-active-color)}.van-cell--required{overflow:visible}.van-cell--required:before{position:absolute;left:var(--van-padding-xs);color:var(--van-cell-required-color);font-size:var(--van-cell-font-size);content:"*"}.van-cell--center{align-items:center}.van-cell--large{padding-top:var(--van-cell-large-vertical-padding);padding-bottom:var(--van-cell-large-vertical-padding)}.van-cell--large .van-cell__title{font-size:var(--van-cell-large-title-font-size)}.van-cell--large .van-cell__label{font-size:var(--van-cell-large-label-font-size)} 2 | -------------------------------------------------------------------------------- /docs/assets/HomeView-f739d803.js: -------------------------------------------------------------------------------- 1 | import{e as C,i as $,c as l,m as A,d as B,_ as w,o as r,a as c,b as o,t as a,u as D,w as p,f as n,g as _,v as H,r as f,h as T}from"./index-97037613.js";import{d as h}from"./dayjs.min-40a0aa38.js";import{m as V,u as F,s as O,a as W}from"./index-c09a8951.js";import{B as M}from"./index-54895d77.js";import"./use-expose-41792aad.js";let u;const N={title:"",width:"",theme:null,message:"",overlay:!0,callback:null,teleport:"body",className:"",allowHtml:!1,lockScroll:!0,transition:void 0,beforeClose:null,overlayClass:"",overlayStyle:void 0,messageAlign:"",cancelButtonText:"",cancelButtonColor:null,cancelButtonDisabled:!1,confirmButtonText:"",confirmButtonColor:null,confirmButtonDisabled:!1,showConfirmButton:!0,showCancelButton:!1,closeOnPopstate:!0,closeOnClickOverlay:!1};let U=C({},N);function I(){({instance:u}=V({setup(){const{state:t,toggle:s}=F();return()=>l(O,A(t,{"onUpdate:show":s}),null)}}))}function j(e){return $?new Promise((t,s)=>{u||I(),u.open(C({},U,e,{callback:i=>{(i==="confirm"?t:s)(i)}}))}):Promise.resolve()}const L=B({name:"HelloWorld",props:{msg:String}}),z={class:"hello"};function R(e,t,s,i,E,b){return r(),c("div",z,[o("h1",null,a(e.msg),1)])}const y=w(L,[["render",R]]),m=B({name:"HomePgae",components:{HelloWorld:y},data(){return{direction:"top",pinPadding:0,time:"",timer:0,color:"red",city:["","",""]}},methods:{changeColor(){W("字体颜色已改蓝色"),this.color="blue"},handleClick(){j({title:"标题",message:"这是一个全局按钮组件"})},initTime(){this.time=h().format("YYYY-MM-DD HH:mm:ss"),this.timer=setInterval(()=>{this.time=h().format("YYYY-MM-DD HH:mm:ss")},1e3)}},created(){this.initTime()},beforeUnmount(){clearInterval(this.timer)}}),g=()=>{D(e=>({f12e12a8:e.color}))},v=m.setup;m.setup=v?(e,t)=>(g(),v(e,t)):g;const q=m,G=""+new URL("logo-03d6d6da.png",import.meta.url).href;const J={class:"home text-center"},K={style:{width:"100%","text-align":"center"},class:"max640"},Q={class:"text-color"},X={class:"mg20 text-color"},Z=o("img",{alt:"Vue logo",src:G},null,-1),ee=o("p",{class:"mg10 text-color"},"以下是自定义全局组件",-1),te={class:"mg-b20"},oe={class:"mg-b20"},se={class:"mg-b20 flex flex-center"};function ne(e,t,s,i,E,b){const Y=y,k=f("YuiButton"),x=f("YuiSelect"),P=M,S=T("pin");return r(),c("div",J,[p((r(),c("header",K,[o("p",null,[n(" Stick me "),o("span",Q,a(e.pinPadding),1),n(" px from the "+a(e.direction)+" of the page ",1)])])),[[S,e.pinPadding,e.direction]]),o("p",X,a(e.time),1),Z,l(Y,{msg:"Welcome to Your Vue.js + TypeScript App"}),ee,o("div",te,[l(k,{onClick:t[0]||(t[0]=d=>e.handleClick())},{default:_(()=>[n("自定义全局按钮")]),_:1})]),o("div",oe,[l(x)]),o("div",se,[n(" 自定义指令: "),p(o("input",{type:"range",min:"0",max:"500","onUpdate:modelValue":t[1]||(t[1]=d=>e.pinPadding=d),style:{"z-index":"9"}},null,512),[[H,e.pinPadding]])]),l(P,{type:"success",onClick:e.changeColor},{default:_(()=>[n("更改字体颜色")]),_:1},8,["onClick"])])}const ue=w(q,[["render",ne]]);export{ue as default}; 2 | -------------------------------------------------------------------------------- /docs/assets/index-d930f8b5.js: -------------------------------------------------------------------------------- 1 | import{l as c,L as j,d as k,n as p,K as C,aE as D,c as s,w as H,y as F,P as R,T as q}from"./index-97037613.js";import{N as z}from"./index-63a49186.js";const E={Q1:'

这是第1个问题哈哈自定义html

',Q2:'图片图片',Q3:"这是第3个问题这是第3个问题这是第3个问题",Q4:"这是第4个这这是第4个问题题问题",Q5:'

这是第5个问题

ipad',Q6:"这是第6个问第7个题",Q7:"这是第7个问题第7个第7个",Q8:"问题结束",Q9:"结束语"},h={A1:"这是第1个回答选项",A2:"这是第2个答选项回答选项",A3:"这是第3个回答选项",A4:"这是第4个回答选项答",A5:"这答选项是第5个回答选项答选项",A6:"这是第6个回答选项",A7:"这是第7个回答选项这是第7个回答选项",A8:"这是第8个回答选项",A9:"这是第9个回答选项答选项",A10:"这是第10个回答选项",A11:"这是第11个回答选项答选项答选项",A12:"这是第12个回答选项",A13:"这是第13个回答选项答选项答选项答选项",A14:"这是第14个回答选项",A15:"这是第15个回答选项答选项",A16:"这是第16个回答选项"},w={Q1:{A1:"Q6",A2:"Q3",A3:"Q7",A4:"Q5"},Q2:{A5:"Q4",A6:"Q3",A7:"Q8",A8:"Q1"},Q3:{A9:"Q2",A10:"Q4",A11:"Q8"},Q4:{A5:"Q1",A7:"Q8",A2:"Q3",A8:"Q4"},Q5:{A1:"Q5",A3:"Q6",A9:"Q7",A11:"Q8"},Q6:{A4:"Q2",A6:"Q6",A10:"Q4",A12:"Q7"},Q7:"Q8",Q8:"Q9"};function N(){let n=window.pageYOffset;const e=document.documentElement.offsetHeight-document.documentElement.clientHeight;window.requestAnimationFrame||(window.requestAnimationFrame=function(l){return setTimeout(l,17)});function o(){if(n=n+(e-n)/8,Math.abs(e-n)<2){window.scrollTo(0,e);return}window.scrollTo(0,n),requestAnimationFrame(o)}o()}const O=n=>{var e;return(e=j(n))==null?void 0:e.getBoundingClientRect()},v=n=>{var o;const e=c();return e.value=((o=O(n))==null?void 0:o.height)||0,e},S=k(()=>{const n=R(),e=c(),o=p([]),l=v(e),m=c(!0),r=c("对方正在输入中...");let u=0,f=0,i=p([]),a=w.Q1;window.scroll2Bottom=()=>N();const Q=()=>Math.ceil((Math.random()*2+1.5)*1e3),x=()=>Math.ceil(Math.random()+.5*1e3),b=()=>{n.back()},g=async()=>{await q(),l.value=v(e).value,window.scroll2Bottom()},T=()=>{console.log("聊天结束"),m.value=!1},A=(t,M)=>{o.push({message:t,direction:M})},d=t=>{if(A(E[t],"left"),a=w[t],!a)return T();typeof a=="string"?u=setTimeout(()=>{d(a),g()},Q()):i=Object.keys(a)},y=t=>{A(h[t],"right"),i=[],r.value="请稍等...",f=setTimeout(()=>{r.value="对方正在输入中..."},x()),u=setTimeout(()=>{d(typeof a=="string"?a:a[t]),g()},Q())},B=()=>o.length>0&&s("div",{class:"chat-wrapper",style:{marginBottom:l.value+50+"px"}},[o.map(t=>s("li",{class:["flex pd10 align-start",t.direction==="left"?"justify-start":"justify-end"]},[t.direction==="left"?s("div",{class:"avatar"},null):null,s("div",{class:["mg-l10 bubble",t.direction==="left"?"bubble-left":"bubble-right"]},[s("p",{class:"bgfff lh20 fs12",innerHTML:t.message},null)]),t.direction==="right"?s("div",{class:"avatar"},null):null]))]),L=()=>i.length>0?s("div",{class:"answers-wrapper flex flex-wrap max640",ref:e},[i.map(t=>s("div",{class:"btnbox col-6 flex"},[s("div",{class:"flex flex-center btn",onClick:()=>y(t)},[h[t]])]))]):s("div",{class:"answers-wrapper max640"},[H(s("div",{class:"loadingtxt fs12 lh20 mg10 text-center"},[r.value]),[[F,m.value]])]);return C(()=>{d("Q1")}),D(()=>{clearTimeout(u),clearTimeout(f)}),()=>s("div",{class:"pd-nav"},[s(z,{fixed:!0,title:"聊天室","left-arrow":!0,"onClick-left":b},null),B(),L()])});export{S as default}; 2 | -------------------------------------------------------------------------------- /src/assets/css/main.less: -------------------------------------------------------------------------------- 1 | input { 2 | border: 1px solid #dedede; 3 | border-radius: 5px; 4 | outline: none; 5 | text-indent: 2px; 6 | height: 30px; 7 | line-height: 26px; 8 | } 9 | 10 | .mg5 { 11 | margin: 5px; 12 | } 13 | 14 | .mg10 { 15 | margin: 10px; 16 | } 17 | 18 | .mg15 { 19 | margin: 15px; 20 | } 21 | 22 | .mg20 { 23 | margin: 20px; 24 | } 25 | 26 | .mg-t0 { 27 | margin-top: 0; 28 | } 29 | 30 | .mg-r0 { 31 | margin-right: 0; 32 | } 33 | 34 | .mg-b0 { 35 | margin-bottom: 0; 36 | } 37 | 38 | .mg-l0 { 39 | margin-left: 0; 40 | } 41 | 42 | .mg-t5 { 43 | margin-top: 5px; 44 | } 45 | 46 | .mg-r5 { 47 | margin-right: 5px; 48 | } 49 | 50 | .mg-b5 { 51 | margin-bottom: 5px; 52 | } 53 | 54 | .mg-l5 { 55 | margin-left: 5px; 56 | } 57 | 58 | .mg-t10 { 59 | margin-top: 10px; 60 | } 61 | 62 | .mg-r10 { 63 | margin-right: 10px; 64 | } 65 | 66 | .mg-b10 { 67 | margin-bottom: 10px; 68 | } 69 | 70 | .mg-l10 { 71 | margin-left: 10px; 72 | } 73 | 74 | .mg-t15 { 75 | margin-top: 15px; 76 | } 77 | 78 | .mg-r15 { 79 | margin-right: 15px; 80 | } 81 | 82 | .mg-b15 { 83 | margin-bottom: 15px; 84 | } 85 | 86 | .mg-l15 { 87 | margin-left: 15px; 88 | } 89 | 90 | .mg-t20 { 91 | margin-top: 20px; 92 | } 93 | 94 | .mg-r20 { 95 | margin-right: 20px; 96 | } 97 | 98 | .mg-b20 { 99 | margin-bottom: 20px; 100 | } 101 | 102 | .mg-l20 { 103 | margin-left: 20px; 104 | } 105 | 106 | .pd5 { 107 | padding: 5px; 108 | } 109 | 110 | .pd10 { 111 | padding: 10px; 112 | } 113 | 114 | .pd15 { 115 | padding: 15px; 116 | } 117 | 118 | .pd20 { 119 | padding: 20px; 120 | } 121 | 122 | .pd-t0 { 123 | padding-top: 0; 124 | } 125 | 126 | .pd-r0 { 127 | padding-right: 0; 128 | } 129 | 130 | .pd-b0 { 131 | padding-bottom: 0; 132 | } 133 | 134 | .pd-l0 { 135 | padding-left: 0; 136 | } 137 | 138 | .pd-t5 { 139 | padding-top: 5px; 140 | } 141 | 142 | .pd-r5 { 143 | padding-right: 5px; 144 | } 145 | 146 | .pd-b5 { 147 | padding-bottom: 5px; 148 | } 149 | 150 | .pd-l5 { 151 | padding-left: 5px; 152 | } 153 | 154 | .pd-t10 { 155 | padding-top: 10px; 156 | } 157 | 158 | .pd-r10 { 159 | padding-right: 10px; 160 | } 161 | 162 | .pd-b10 { 163 | padding-bottom: 10px; 164 | } 165 | 166 | .pd-l10 { 167 | padding-left: 10px; 168 | } 169 | 170 | .pd-t15 { 171 | padding-top: 15px; 172 | } 173 | 174 | .pd-r15 { 175 | padding-right: 15px; 176 | } 177 | 178 | .pd-b15 { 179 | padding-bottom: 15px; 180 | } 181 | 182 | .pd-l15 { 183 | padding-left: 15px; 184 | } 185 | 186 | .pd-t20 { 187 | padding-top: 20px; 188 | } 189 | 190 | .pd-r20 { 191 | padding-right: 20px; 192 | } 193 | 194 | .pd-b20 { 195 | padding-bottom: 20px; 196 | } 197 | 198 | .pd-l20 { 199 | padding-left: 20px; 200 | } 201 | 202 | .fs12 { 203 | font-size: 12px; 204 | } 205 | 206 | .cred { 207 | color: red; 208 | } 209 | 210 | .pd-nav { 211 | padding-top: 46px; 212 | } 213 | 214 | .fade-enter-active, .fade-leave-active { 215 | transition: opacity 0.5s ease; 216 | } 217 | 218 | .fade-enter-from, .fade-leave-to { 219 | opacity: 0; 220 | } -------------------------------------------------------------------------------- /src/views/TodoList.vue: -------------------------------------------------------------------------------- 1 | 43 | 44 | -------------------------------------------------------------------------------- /src/assets/css/base.css: -------------------------------------------------------------------------------- 1 | /*reset css*/ 2 | @charset "utf-8"; 3 | 4 | html,body,div,span,iframe,h1,h2,h3,h4,h5,h6,p,ol,ul,li,footer,header,menu,nav,audio,video,input { 5 | margin: 0; 6 | padding: 0; 7 | border: 0; 8 | font-weight: normal; 9 | vertical-align: baseline; 10 | -webkit-tap-highlight-color: transparent; 11 | -ms-tap-highlight-color: transparent; 12 | -moz-box-sizing: border-box; 13 | -webkit-box-sizing: border-box; 14 | box-sizing: border-box; 15 | } 16 | ::-webkit-scrollbar { 17 | display: none; 18 | } 19 | a { 20 | text-decoration: none; 21 | } 22 | li { 23 | list-style: none; 24 | } 25 | h1, h2, h3, h4, h5, h6 { 26 | font-size: 100%; 27 | font-weight: 500 28 | } 29 | /*reset css end*/ 30 | 31 | .container { 32 | position: relative; 33 | } 34 | .row { 35 | position: relative; 36 | width: 100%; 37 | } 38 | .relative { 39 | position: relative; 40 | } 41 | .text-left { 42 | text-align: left; 43 | } 44 | .text-center { 45 | text-align: center; 46 | } 47 | .text-right { 48 | text-align: right; 49 | } 50 | .pull-right { 51 | float: right !important; 52 | } 53 | .pull-left { 54 | float: left !important; 55 | } 56 | .block { 57 | display: block !important; 58 | } 59 | .inline { 60 | display: inline !important; 61 | } 62 | .inline-block { 63 | display: inline-block !important; 64 | } 65 | .clearfix:before, 66 | .clearfix:after { 67 | display: table; 68 | content: ' '; 69 | } 70 | .clearfix:after { 71 | clear: both; 72 | } 73 | 74 | /*flex*/ 75 | 76 | .flex { 77 | display: flex !important; 78 | } 79 | .flex-inline { 80 | display: inline-flex !important; 81 | } 82 | 83 | /*flex-direction*/ 84 | 85 | .flex-row { 86 | flex-direction: row; 87 | } 88 | .flex-column { 89 | flex-direction: column; 90 | } 91 | .row-reverse { 92 | flex-direction: row-reverse; 93 | } 94 | .column-reverse { 95 | flex-direction: column-reverse; 96 | } 97 | 98 | /*flex-wrap*/ 99 | 100 | .flex-wrap { 101 | flex-wrap: wrap; 102 | } 103 | .flex-nowrap { 104 | flex-wrap: nowrap; 105 | } 106 | 107 | /*justify-content*/ 108 | .space-around { 109 | justify-content: space-around; 110 | } 111 | .space-between { 112 | justify-content: space-between; 113 | } 114 | .justify-start { 115 | justify-content: flex-start; 116 | } 117 | .justify-end { 118 | justify-content: flex-end; 119 | } 120 | .justify-center { 121 | justify-content: center; 122 | } 123 | 124 | /*align-items*/ 125 | 126 | .stretch { 127 | align-items: stretch; 128 | } 129 | .align-start { 130 | align-items: flex-start; 131 | } 132 | .align-end { 133 | align-items: flex-end; 134 | } 135 | .align-middle { 136 | align-items: center; 137 | } 138 | .flex-center { 139 | justify-content: center; 140 | align-items: center; 141 | } 142 | 143 | /*order*/ 144 | 145 | .flex-first { 146 | order: -1; 147 | } 148 | .flex-last { 149 | order: 1; 150 | } 151 | 152 | /*flex*/ 153 | 154 | .flex-auto { 155 | flex: auto; 156 | } 157 | .flex-none { 158 | flex: none; 159 | } 160 | 161 | /*align-self*/ 162 | 163 | .selft-stretch { 164 | align-self: stretch; 165 | } 166 | .align-self-start { 167 | align-self: flex-start; 168 | } 169 | .align-self-end { 170 | align-self: flex-end; 171 | } 172 | .align-self-middle { 173 | align-self: center; 174 | } 175 | 176 | /*flex end*/ 177 | 178 | /*超出部分省略号*/ 179 | 180 | .txtover { 181 | overflow: hidden; 182 | white-space: nowrap; 183 | text-overflow: ellipsis; 184 | } 185 | .txtover1 { 186 | overflow: hidden; 187 | text-overflow: ellipsis; 188 | display: -webkit-box; 189 | -webkit-line-clamp: 1; 190 | -webkit-box-orient: vertical; 191 | } 192 | .txtover2 { 193 | overflow: hidden; 194 | text-overflow: ellipsis; 195 | display: -webkit-box; 196 | -webkit-line-clamp: 2; 197 | -webkit-box-orient: vertical; 198 | } 199 | .txtover3 { 200 | overflow: hidden; 201 | text-overflow: ellipsis; 202 | display: -webkit-box; 203 | -webkit-line-clamp: 3; 204 | -webkit-box-orient: vertical; 205 | } 206 | 207 | /*end*/ -------------------------------------------------------------------------------- /docs/assets/LuckDraw-92ad1ec2.js: -------------------------------------------------------------------------------- 1 | import{d as L,l as _,n as x,H as N,K as $,T as M,_ as A,a as t,b as n,M as w,R as h,U as C,o as i,V as g,t as I,W as R,X as V}from"./index-97037613.js";const F=L({name:"LuckDraw",setup(){let l=0,r,e=0,a=!1;const o=_(!1),u=_(0),v=x([{phone:"186****2336抽中0元话费"},{phone:"166****2336抽中1元话费"},{phone:"156****2336抽中2元话费"}]),m=x([{id:1,runId:0,name:"潘多拉音箱"},{id:2,runId:1,name:"小酷M1耳机"},{id:3,runId:2,name:"酷狗VIP会员"},{id:4,runId:7,name:"8元话费"},{id:5,runId:3,name:"12元话费"},{id:6,runId:6,name:"谢谢参与1"},{id:7,runId:5,name:"4元话费"},{id:8,runId:4,name:"谢谢参与2"}]),b=N(()=>{const s=JSON.parse(JSON.stringify(m));return s.splice(4,0,{name:"drawBtn"}),s}),T=()=>{o.value=!0,setTimeout(()=>{v.push(v[0]),v.shift(),o.value=!1},500)},f=()=>{const s=setTimeout(()=>{if(u.value++,u.value>7&&(u.value=0),r!=null&&r.id&&(Date.now()-e)/1e3>2.5){if(console.log("奖品出来了"),l+=20,(Date.now()-e)/1e3>5&&r.runId===u.value){clearTimeout(s),setTimeout(()=>{a=!1;const d=m.find(p=>p.id===r.id);d&&console.log(`您抽中的奖品是${d.name},奖品id是${d.id}`)},400);return}}else l>=50&&(l-=20);f()},l)},B=()=>{setTimeout(()=>{const s=Math.ceil(Math.random()*8),d=m.find(p=>p.id===s);d&&(r=d),console.log("返回的抽奖结果是",r)},2e3),f()},D=()=>{if(a){console.log("正在抽奖中...");return}if(isNaN(200))return!1;l=200,a=!0,e=Date.now(),B(),console.log("开始抽奖")};return $(async()=>{await M(),setInterval(T,2e3)}),{awards:m,awardList:b,animate:o,list:v,current:u,handleStart:D}}});const J=c=>(R("data-v-9a630300"),c=c(),V(),c),O={class:"luckdraw-content"},q={class:"luckdraw-scroll"},z={class:"bg-scroll"},E={class:"lkq-name"},H={class:"turntable"},K=C('',1),P={class:"awards-list"},U=J(()=>n("span",{class:"draw-btn-text"},"点击抽奖",-1)),W=[U],X={key:1};function j(c,y,k,S,l,r){return i(),t("div",O,[n("div",q,[n("ul",z,[(i(!0),t(w,null,h(c.list,(e,a)=>(i(),t("li",{key:a,class:g({anim:c.animate&&a==0})},[n("span",E,I(e.phone),1)],2))),128))])]),n("div",H,[K,n("ul",P,[(i(!0),t(w,null,h(c.awardList,(e,a)=>(i(),t("li",{key:e.id,class:g(["awards-item",{"awards-item-draw":a===4,"run-item":e.runId===c.current}])},[a===4?(i(),t("div",{key:0,onClick:y[0]||(y[0]=(...o)=>c.handleStart&&c.handleStart(...o)),class:"draw-btn svelte-ecndpu"},W)):(i(),t("div",X,I(e.name),1))],2))),128))])])])}const Q=A(F,[["render",j],["__scopeId","data-v-9a630300"]]);export{Q as default}; 2 | -------------------------------------------------------------------------------- /src/views/chat/index.tsx: -------------------------------------------------------------------------------- 1 | import { defineComponent, ref, reactive, nextTick, onMounted, onUnmounted } from "vue"; 2 | import { useRouter } from "vue-router"; 3 | import { NavBar } from "vant"; 4 | import { questionList, answerList, mapList } from "./map-list" 5 | import "@/assets/css/chat.less" 6 | import { easeBottom } from '@/utils/dom'; 7 | import { MsgList } from "./chat" 8 | import { useHeight } from '@/composition/use-rect'; 9 | 10 | export default defineComponent(() => { 11 | const router = useRouter() 12 | const answerRef = ref(); 13 | const msgList: Array = reactive([]) 14 | const chatBottomHeight = useHeight(answerRef); 15 | const showLoading = ref(true) 16 | const loadingText = ref('对方正在输入中...') 17 | 18 | let timer = 0 19 | let loadingTimer = 0 20 | let ansList: Array = reactive([]) 21 | let answers = mapList.Q1 22 | 23 | window.scroll2Bottom = () => easeBottom() 24 | 25 | const getDelayTime = () => Math.ceil((Math.random() * 2 + 1.5) * 1000) //1.5-3.5秒 26 | const getLoadingDelayTime = () => Math.ceil(Math.random() + 0.5 * 1000) //0.5-1.5秒 27 | 28 | const onClickLeft = () => { 29 | router.back() 30 | } 31 | 32 | const scrollPageBottom = async () => { 33 | await nextTick() 34 | chatBottomHeight.value = useHeight(answerRef).value; 35 | window.scroll2Bottom() 36 | } 37 | 38 | const chatFinish = () => { 39 | console.log('聊天结束'); 40 | showLoading.value = false 41 | } 42 | 43 | const setMsg = (message: string, direction: 'left' | 'right') => { 44 | msgList.push({ 45 | message: message, 46 | direction: direction 47 | }) 48 | } 49 | 50 | const setQuestion = (question: string) => { 51 | setMsg(questionList[question], 'left') 52 | answers = mapList[question] 53 | if (!answers) return chatFinish() 54 | if (typeof answers === 'string') { 55 | timer = setTimeout(() => { 56 | setQuestion(answers as string) 57 | scrollPageBottom() 58 | }, getDelayTime()); 59 | } else { 60 | ansList = Object.keys(answers) 61 | } 62 | } 63 | 64 | const addAnswer = (item: string) => { 65 | setMsg(answerList[item], 'right') 66 | ansList = [] 67 | loadingText.value = '请稍等...' 68 | loadingTimer = setTimeout(() => { 69 | loadingText.value = '对方正在输入中...' 70 | }, getLoadingDelayTime()); 71 | timer = setTimeout(() => { 72 | setQuestion(typeof answers === 'string' ? answers : answers[item]) 73 | scrollPageBottom() 74 | }, getDelayTime()); 75 | } 76 | 77 | const messageDom = () => msgList.length > 0 && ( 78 |
79 | {msgList.map(item => ( 80 |
  • 81 | {item.direction === 'left' ?
    : null} 82 |
    83 |

    84 |
    85 | {item.direction === 'right' ?
    : null} 86 |
  • 87 | ))} 88 |
    ) 89 | 90 | const answerDom = () => ansList.length > 0 ? ( 91 |
    92 | {ansList.map((item: string) => ( 93 |
    94 |
    addAnswer(item)}>{answerList[item]}
    95 |
    96 | ))} 97 |
    98 | ) : ( 99 |
    100 |
    {loadingText.value}
    101 |
    102 | ) 103 | 104 | onMounted(() => { 105 | setQuestion('Q1') 106 | }) 107 | onUnmounted(() => { 108 | clearTimeout(timer) 109 | clearTimeout(loadingTimer) 110 | }) 111 | 112 | return () => ( 113 |
    114 | 115 | {messageDom()} 116 | {answerDom()} 117 |
    118 | ) 119 | }) -------------------------------------------------------------------------------- /docs/assets/AboutView-47a85c28.css: -------------------------------------------------------------------------------- 1 | :root{--van-steps-background: var(--van-background-2)}.van-steps{overflow:hidden;background-color:var(--van-steps-background)}.van-steps--horizontal{padding:.2rem .2rem 0}.van-steps--horizontal .van-steps__items{position:relative;display:flex;margin:0 0 .2rem;padding-bottom:.44rem}.van-steps--vertical{padding:0 0 0 var(--van-padding-xl)}:root{--van-step-text-color: var(--van-text-color-2);--van-step-active-color: var(--van-primary-color);--van-step-process-text-color: var(--van-text-color);--van-step-font-size: var(--van-font-size-md);--van-step-line-color: var(--van-border-color);--van-step-finish-line-color: var(--van-primary-color);--van-step-finish-text-color: var(--van-text-color);--van-step-icon-size: .24rem;--van-step-circle-size: .1rem;--van-step-circle-color: var(--van-gray-6);--van-step-horizontal-title-font-size: var(--van-font-size-sm)}.van-step{position:relative;flex:1;color:var(--van-step-text-color);font-size:var(--van-step-font-size)}.van-step__circle{display:block;width:var(--van-step-circle-size);height:var(--van-step-circle-size);background-color:var(--van-step-circle-color);border-radius:50%}.van-step__line{position:absolute;background-color:var(--van-step-line-color);transition:background-color var(--van-duration-base)}.van-step--horizontal{float:left}.van-step--horizontal:first-child .van-step__title{margin-left:0;transform:none}.van-step--horizontal:last-child{position:absolute;right:.02rem;width:auto}.van-step--horizontal:last-child .van-step__title{margin-left:0;transform:none}.van-step--horizontal:last-child .van-step__circle-container{right:-.18rem;left:auto}.van-step--horizontal .van-step__circle-container{position:absolute;top:.6rem;left:calc(var(--van-padding-xs) * -1);z-index:1;padding:0 var(--van-padding-xs);background-color:var(--van-background-2);transform:translateY(-50%)}.van-step--horizontal .van-step__title{display:inline-block;margin-left:.06rem;font-size:var(--van-step-horizontal-title-font-size);transform:translate(-50%)}.van-step--horizontal .van-step__line{top:.6rem;left:0;width:100%;height:.02rem}.van-step--horizontal .van-step__icon{display:block;font-size:var(--van-step-icon-size)}.van-step--horizontal .van-step--process{color:var(--van-step-process-text-color)}.van-step--vertical{display:block;float:none;padding:.2rem .2rem .2rem 0;line-height:var(--van-line-height-sm)}.van-step--vertical:not(:last-child):after{border-bottom-width:.02rem}.van-step--vertical .van-step__circle-container{position:absolute;top:.38rem;left:-.3rem;z-index:1;font-size:var(--van-step-icon-size);line-height:1;transform:translate(-50%,-50%)}.van-step--vertical .van-step__line{top:.32rem;left:-.3rem;width:.02rem;height:100%}.van-step:last-child .van-step__line{width:0}.van-step--finish{color:var(--van-step-finish-text-color)}.van-step--finish .van-step__circle,.van-step--finish .van-step__line{background-color:var(--van-step-finish-line-color)}.van-step__icon,.van-step__title{transition:color var(--van-duration-base)}.van-step__icon--active,.van-step__title--active,.van-step__icon--finish,.van-step__title--finish{color:var(--van-step-active-color)}:root{--van-notice-bar-height: .8rem;--van-notice-bar-padding: 0 var(--van-padding-md);--van-notice-bar-wrapable-padding: var(--van-padding-xs) var(--van-padding-md);--van-notice-bar-text-color: var(--van-orange-dark);--van-notice-bar-font-size: var(--van-font-size-md);--van-notice-bar-line-height: .48rem;--van-notice-bar-background: var(--van-orange-light);--van-notice-bar-icon-size: .32rem;--van-notice-bar-icon-min-width: .48rem}.van-notice-bar{position:relative;display:flex;align-items:center;height:var(--van-notice-bar-height);padding:var(--van-notice-bar-padding);color:var(--van-notice-bar-text-color);font-size:var(--van-notice-bar-font-size);line-height:var(--van-notice-bar-line-height);background:var(--van-notice-bar-background)}.van-notice-bar__left-icon,.van-notice-bar__right-icon{min-width:var(--van-notice-bar-icon-min-width);font-size:var(--van-notice-bar-icon-size)}.van-notice-bar__right-icon{text-align:right;cursor:pointer}.van-notice-bar__wrap{position:relative;display:flex;flex:1;align-items:center;height:100%;overflow:hidden}.van-notice-bar__content{position:absolute;white-space:nowrap;transition-timing-function:linear}.van-notice-bar__content.van-ellipsis{max-width:100%}.van-notice-bar--wrapable{height:auto;padding:var(--van-notice-bar-wrapable-padding)}.van-notice-bar--wrapable .van-notice-bar__wrap{height:auto}.van-notice-bar--wrapable .van-notice-bar__content{position:relative;white-space:normal;word-wrap:break-word} 2 | -------------------------------------------------------------------------------- /docs/assets/AboutView-edd756f1.js: -------------------------------------------------------------------------------- 1 | import{j as M,k as $,d as P,l as D,n as L,p as K,q as O,s as F,x as G,w as I,y as J,c as e,I as y,z as H,A as V,B as X,C as Q,D as N,E as A,F as Z,G as ee,H as W,J as te,K as ne,a as oe,b as i,v as Y,t as C,g as b,o as ie,f as se,L as R}from"./index-97037613.js";import{d as B}from"./dayjs.min-40a0aa38.js";import{u as ae}from"./use-expose-41792aad.js";import{B as ce}from"./index-54895d77.js";const[le,w]=M("notice-bar"),re={text:String,mode:String,color:String,delay:$(1),speed:$(60),leftIcon:String,wrapable:Boolean,background:String,scrollable:{type:Boolean,default:null}};var ue=P({name:le,props:re,emits:["close","replay"],setup(n,{emit:c,slots:s}){let d=0,a=0,l;const o=D(),p=D(),t=L({show:!0,offset:0,duration:0}),r=()=>{if(s["left-icon"])return s["left-icon"]();if(n.leftIcon)return e(y,{class:w("left-icon"),name:n.leftIcon},null)},g=()=>{if(n.mode==="closeable")return"cross";if(n.mode==="link")return"arrow"},u=v=>{n.mode==="closeable"&&(t.show=!1,c("close",v))},f=()=>{if(s["right-icon"])return s["right-icon"]();const v=g();if(v)return e(y,{name:v,class:w("right-icon"),onClick:u},null)},x=()=>{t.offset=d,t.duration=0,X(()=>{V(()=>{t.offset=-a,t.duration=(a+d)/+n.speed,c("replay")})})},m=()=>{const v=n.scrollable===!1&&!n.wrapable,S={transform:t.offset?`translateX(${t.offset}px)`:"",transitionDuration:`${t.duration}s`};return e("div",{ref:o,role:"marquee",class:w("wrap")},[e("div",{ref:p,style:S,class:[w("content"),{"van-ellipsis":v}],onTransitionend:x},[s.default?s.default():n.text])])},_=()=>{const{delay:v,speed:S,scrollable:k}=n,z=Q(v)?+v*1e3:0;d=0,a=0,t.offset=0,t.duration=0,clearTimeout(l),l=setTimeout(()=>{if(!o.value||!p.value||k===!1)return;const T=H(o).width,E=H(p).width;(k||E>T)&&V(()=>{d=T,a=E,t.offset=-a,t.duration=a/+S})},z)};return K(_),O(_),F("pageshow",_),ae({reset:_}),G(()=>[n.text,n.scrollable],_),()=>{const{color:v,wrapable:S,background:k}=n;return I(e("div",{role:"alert",class:w({wrapable:S}),style:{color:v,background:k}},[r(),m(),f()]),[[J,t.show]])}}});const de=N(ue),[U,q]=M("steps"),fe={active:$(0),direction:A("horizontal"),activeIcon:A("checked"),iconPrefix:String,finishIcon:String,activeColor:String,inactiveIcon:String,inactiveColor:String},j=Symbol(U);var me=P({name:U,props:fe,emits:["clickStep"],setup(n,{emit:c,slots:s}){const{linkChildren:d}=Z(j);return d({props:n,onClickStep:l=>c("clickStep",l)}),()=>{var l;return e("div",{class:q([n.direction])},[e("div",{class:q("items")},[(l=s.default)==null?void 0:l.call(s)])])}}});const[ve,h]=M("step");var pe=P({name:ve,setup(n,{slots:c}){const{parent:s,index:d}=ee(j);if(!s)return;const a=s.props,l=()=>{const u=+a.active;return d.valuel()==="process",p=W(()=>({background:l()==="finish"?a.activeColor:a.inactiveColor})),t=W(()=>{if(o())return{color:a.activeColor};if(l()==="waiting")return{color:a.inactiveColor}}),r=()=>s.onClickStep(d.value),g=()=>{const{iconPrefix:u,finishIcon:f,activeIcon:x,activeColor:m,inactiveIcon:_}=a;return o()?c["active-icon"]?c["active-icon"]():e(y,{class:h("icon","active"),name:x,color:m,classPrefix:u},null):l()==="finish"&&(f||c["finish-icon"])?c["finish-icon"]?c["finish-icon"]():e(y,{class:h("icon","finish"),name:f,color:m,classPrefix:u},null):c["inactive-icon"]?c["inactive-icon"]():_?e(y,{class:h("icon"),name:_,classPrefix:u},null):e("i",{class:h("circle"),style:p.value},null)};return()=>{var u;const f=l();return e("div",{class:[te,h([a.direction,{[f]:f}])]},[e("div",{class:h("title",{active:o()}),style:t.value,onClick:r},[(u=c.default)==null?void 0:u.call(c)]),e("div",{class:h("circle-container"),onClick:r},[g()]),e("div",{class:h("line"),style:p.value},null)])}}});const _e=N(pe),he=N(me);const ge=i("p",{class:"mg20"},"This is a root element",-1),xe={class:"flex flex-column"},Se={class:"flex flex-center mg-t10"},be=i("label",null,"姓名:",-1),we={class:"flex flex-center mg-t10"},ye=i("label",null,"手机号:",-1),ke={class:"flex flex-center mg-t10"},Ce=i("label",null,"验证码:",-1),Ie={class:"mg-t10"},De=i("h3",null,"商品已下单",-1),Pe=i("h3",null,"快件已被揽收",-1),Ye=i("h3",null,"快件已发货",-1),Ne=P({__name:"AboutView",setup(n){const c=D(),s=D(),d=B().subtract(2,"day").format("YYYY-MM-DD HH:mm:ss"),a=B().format("YYYY-MM-DD HH:mm:ss"),l=B().add(2,"day").format("YYYY-MM-DD HH:mm:ss"),o=L({name:"",phone:"",code:""});ne(()=>{s.value.focus()});const p=()=>{const t=s.value.selectionStart;typeof t=="number"&&(o.name=o.name.slice(0,t)+"哈哈"+o.name.slice(t))};return(t,r)=>{const g=de,u=ce,f=_e,x=he;return ie(),oe("div",{ref_key:"root",ref:c,class:"text-center"},[e(g,{"left-icon":"volume-o",text:"在代码阅读过程中人们说脏话的频率是衡量代码质量的唯一标准。"}),ge,i("div",xe,[i("div",Se,[be,I(i("input",{ref_key:"nameinput",ref:s,"onUpdate:modelValue":r[0]||(r[0]=m=>o.name=m),maxlength:"16"},null,512),[[Y,o.name,void 0,{trim:!0}]])]),i("div",we,[ye,I(i("input",{type:"tel","onUpdate:modelValue":r[1]||(r[1]=m=>o.phone=m),maxlength:"11"},null,512),[[Y,o.phone,void 0,{trim:!0}]])]),i("div",ke,[Ce,I(i("input",{type:"tel","onUpdate:modelValue":r[2]||(r[2]=m=>o.code=m),maxlength:"6"},null,512),[[Y,o.code,void 0,{trim:!0}]])])]),i("p",Ie,C(o),1),e(u,{type:"primary",onClick:r[3]||(r[3]=m=>p())},{default:b(()=>[se("姓名插入哈哈")]),_:1}),e(x,{direction:"vertical",active:1},{default:b(()=>[e(f,null,{default:b(()=>[De,i("p",null,C(R(d)),1)]),_:1}),e(f,null,{default:b(()=>[Pe,i("p",null,C(R(a)),1)]),_:1}),e(f,null,{default:b(()=>[Ye,i("p",null,C(R(l)),1)]),_:1})]),_:1})],512)}}});export{Ne as default}; 2 | -------------------------------------------------------------------------------- /docs/assets/AddressList-a57a79bf.js: -------------------------------------------------------------------------------- 1 | import{j as h,d as f,F as E,x as R,Y as G,c as l,Z as P,$ as T,D as S,a0 as N,N as V,E as D,a1 as F,I as $,e as L,a2 as I,l as _,H as x,a3 as j,G as O,a4 as H,m as K,a5 as y,n as U,P as Y}from"./index-97037613.js";import{g as q,s as M}from"./index-7d2359eb.js";import{C as Z,u as J}from"./main-fe8e16d0.js";import{N as Q}from"./index-63a49186.js";import{B as W}from"./index-54895d77.js";const[w,X]=h("radio-group"),p={disabled:Boolean,iconSize:P,direction:String,modelValue:T,checkedColor:String},A=Symbol(w);var ee=f({name:w,props:p,emits:["change","update:modelValue"],setup(e,{emit:n,slots:a}){const{linkChildren:i}=E(A),c=d=>n("update:modelValue",d);return R(()=>e.modelValue,d=>n("change",d)),i({props:e,updateValue:c}),G(()=>e.modelValue),()=>{var d;return l("div",{class:X([e.direction]),role:"radiogroup"},[(d=a.default)==null?void 0:d.call(a)])}}});const ae=S(ee),[te,B]=h("tag"),le={size:String,mark:Boolean,show:V,type:D("default"),color:String,plain:Boolean,round:Boolean,textColor:String,closeable:Boolean};var ne=f({name:te,props:le,emits:["close"],setup(e,{slots:n,emit:a}){const i=t=>{t.stopPropagation(),a("close",t)},c=()=>e.plain?{color:e.textColor||e.color,borderColor:e.color}:{color:e.textColor,background:e.color},d=()=>{var t;const{type:o,mark:s,plain:u,round:m,size:r,closeable:g}=e,b={mark:s,plain:u,round:m};r&&(b[r]=r);const v=g&&l($,{name:"cross",class:[B("close"),F],onClick:i},null);return l("span",{style:c(),class:B([b,o])},[(t=n.default)==null?void 0:t.call(n),v])};return()=>l(N,{name:e.closeable?"van-fade":void 0},{default:()=>[e.show?d():null]})}});const de=S(ne),z={name:T,shape:D("round"),disabled:Boolean,iconSize:P,modelValue:T,checkedColor:String,labelPosition:String,labelDisabled:Boolean};var oe=f({props:L({},z,{bem:I(Function),role:String,parent:Object,checked:Boolean,bindGroup:V}),emits:["click","toggle"],setup(e,{emit:n,slots:a}){const i=_(),c=r=>{if(e.parent&&e.bindGroup)return e.parent.props[r]},d=x(()=>c("disabled")||e.disabled),t=x(()=>c("direction")),o=x(()=>{const r=e.checkedColor||c("checkedColor");if(r&&e.checked&&!d.value)return{borderColor:r,backgroundColor:r}}),s=r=>{const{target:g}=r,b=i.value,v=b===g||(b==null?void 0:b.contains(g));!d.value&&(v||!e.labelDisabled)&&n("toggle"),n("click",r)},u=()=>{const{bem:r,shape:g,checked:b}=e,v=e.iconSize||c("iconSize");return l("div",{ref:i,class:r("icon",[g,{disabled:d.value,checked:b}]),style:{fontSize:j(v)}},[a.icon?a.icon({checked:b,disabled:d.value}):l($,{name:"success",style:o.value},null)])},m=()=>{if(a.default)return l("span",{class:e.bem("label",[e.labelPosition,{disabled:d.value}])},[a.default()])};return()=>{const r=e.labelPosition==="left"?[m(),u()]:[u(),m()];return l("div",{role:e.role,class:e.bem([{disabled:d.value,"label-disabled":e.labelDisabled},t.value]),tabindex:d.value?void 0:0,"aria-checked":e.checked,onClick:s},[r])}}});const[se,ie]=h("radio");var ce=f({name:se,props:z,emits:["update:modelValue"],setup(e,{emit:n,slots:a}){const{parent:i}=O(A),c=()=>(i?i.props.modelValue:e.modelValue)===e.name,d=()=>{i?i.updateValue(e.name):n("update:modelValue",e.name)};return()=>l(oe,K({bem:ie,role:"radio",parent:i,checked:c(),onToggle:d},e),H(a,["default","icon"]))}});const re=S(ce),[ue,k]=h("address-item");var me=f({name:ue,props:{address:I(Object),disabled:Boolean,switchable:Boolean,defaultTagText:String},emits:["edit","click","select"],setup(e,{slots:n,emit:a}){const i=()=>{e.switchable&&a("select"),a("click")},c=()=>l($,{name:"edit",class:k("edit"),onClick:o=>{o.stopPropagation(),a("edit"),a("click")}},null),d=()=>{if(n.tag)return n.tag(e.address);if(e.address.isDefault&&e.defaultTagText)return l(de,{type:"primary",round:!0,class:k("tag")},{default:()=>[e.defaultTagText]})},t=()=>{const{address:o,disabled:s,switchable:u}=e,m=[l("div",{class:k("name")},[`${o.name} ${o.tel}`,d()]),l("div",{class:k("address")},[o.address])];return u&&!s?l(re,{name:o.id,iconSize:18},{default:()=>[m]}):m};return()=>{var o;const{disabled:s}=e;return l("div",{class:k({disabled:s}),onClick:i},[l(Z,{border:!1,titleClass:k("title")},{title:t,"right-icon":c}),(o=n.bottom)==null?void 0:o.call(n,L({},e.address,{disabled:s}))])}}});const[be,C,fe]=h("address-list"),ge={list:y(),modelValue:P,switchable:V,disabledText:String,disabledList:y(),addButtonText:String,defaultTagText:String};var ke=f({name:be,props:ge,emits:["add","edit","select","clickItem","editDisabled","selectDisabled","update:modelValue"],setup(e,{slots:n,emit:a}){const i=(t,o,s)=>{const u=()=>a(s?"editDisabled":"edit",t,o),m=()=>a("clickItem",t,o),r=()=>{a(s?"selectDisabled":"select",t,o),s||a("update:modelValue",t.id)};return l(me,{key:t.id,address:t,disabled:s,switchable:e.switchable,defaultTagText:e.defaultTagText,onEdit:u,onClick:m,onSelect:r},{bottom:n["item-bottom"],tag:n.tag})},c=(t,o)=>{if(t)return t.map((s,u)=>i(s,u,o))},d=()=>l("div",{class:[C("bottom"),"van-safe-area-bottom"]},[l(W,{round:!0,block:!0,type:"primary",text:e.addButtonText||fe("add"),class:C("add"),onClick:()=>a("add")},null)]);return()=>{var t,o;const s=c(e.list),u=c(e.disabledList,!0),m=e.disabledText&&l("div",{class:C("disabled-text")},[e.disabledText]);return l("div",{class:C()},[(t=n.top)==null?void 0:t.call(n),l(ae,{modelValue:e.modelValue},{default:()=>[s]}),m,u,(o=n.default)==null?void 0:o.call(n),d()])}}});const ve=S(ke);const Pe=f(()=>{const e=Y(),n=J(),a=_(),i=q("addressList"),c=U(i||[{id:1,name:"张三",tel:"13012345678",address:"浙江省杭州市西湖区文三路138号东方通信大厦7楼501室",ads:"文三路 138 号东方通信大厦7楼501室",city:["浙江省","杭州市","西湖区"],isDefault:!0},{id:2,name:"李四",tel:"13112345678",address:"浙江省杭州市拱墅区莫干山路50号",ads:"莫干山路 50 号",city:["浙江省","杭州市","拱墅区"],isDefault:!1},{id:3,name:"王五",tel:"13212345678",address:"浙江省杭州市滨江区江南大道15号",ads:"江南大道 15 号",city:["浙江省","杭州市","滨江区"],isDefault:!1}]);i||M("addressList",c);const d=()=>{e.push("/address/edit")},t=s=>{n.selectAddress=s,e.push("/address/edit")},o=()=>{e.back()};return()=>l("div",{class:"pd-nav",style:"background:#f7f8fa;min-height:100vh"},[l(Q,{fixed:!0,title:"地址管理","left-text":"返回","left-arrow":!0,onClickLeft:o},null),l(ve,{modelValue:a.value,"onUpdate:modelValue":s=>a.value=s,list:c,defaultTagText:"默认",onAdd:d,onEdit:t},null)])});export{Pe as default}; 2 | -------------------------------------------------------------------------------- /src/views/address/AddressEdit.tsx: -------------------------------------------------------------------------------- 1 | import { defineComponent, ref, reactive, computed, onUnmounted } from 'vue'; 2 | import { useRouter } from 'vue-router'; 3 | import { Form, Field, NavBar, Button, Dialog, Cell, Switch, showToast } from 'vant'; 4 | import { openLoading, closeLoading } from '@/components/Loading'; 5 | import { getLocalStorage, setLocalStorage } from '@/utils/storage'; 6 | import { AddressInfo } from './address'; 7 | import CityPicker from '@/components/city-picker'; 8 | import { useMainStore } from '@/pinia'; 9 | import 'vant/es/form/style'; 10 | import 'vant/es/field/style'; 11 | import 'vant/es/nav-bar/style'; 12 | import 'vant/es/button/style'; 13 | import 'vant/es/cell/style'; 14 | import 'vant/es/switch/style'; 15 | 16 | export default defineComponent({ 17 | setup() { 18 | const router = useRouter(); 19 | const mainStore = useMainStore(); 20 | 21 | const cityPicker = ref(); 22 | const vanForm = ref(); 23 | 24 | let form = reactive({ 25 | id: Date.now(), 26 | name: '', 27 | tel: '', 28 | address: '', 29 | ads: '', 30 | city: [], 31 | isDefault: false, 32 | }); 33 | 34 | const patterns = { 35 | phone: /^1[0-9]{10}$/, 36 | name: /^[\u4e00-\u9fa5]{2,20}$/, 37 | ads: /^[\u4E00-\u9FA5A-Za-z0-9_—()()-]+$/, 38 | }; 39 | 40 | const messages = { 41 | phone: (val: string) => { 42 | if (val === '') return '请输入手机号'; 43 | return '手机号不正确'; 44 | }, 45 | name: (val: string) => { 46 | if (val === '') return '请输入姓名'; 47 | return '姓名输入有误'; 48 | }, 49 | ads: (val: string) => { 50 | if (val === '') return '请输入详细地址'; 51 | return '详细地址输入有误'; 52 | }, 53 | }; 54 | 55 | const cityValue = computed(() => { 56 | if (form.city.length > 0) return form.city.join(' '); 57 | return ''; 58 | }); 59 | 60 | const openCity = () => { 61 | cityPicker.value.open(); 62 | }; 63 | 64 | const routerBack = () => { 65 | router.back(); 66 | }; 67 | 68 | const onSubmit = () => { 69 | vanForm.value 70 | .validate() 71 | .then(() => { 72 | openLoading('正在保存'); 73 | console.log('submit', form); 74 | let addressList = getLocalStorage('addressList'); 75 | if (addressList && Array.isArray(addressList)) { 76 | form.address = form.city.join('') + form.ads; 77 | const index = addressList.findIndex(v => { 78 | return v.id === form.id; 79 | }); 80 | if (form.isDefault) { 81 | addressList.forEach(v => (v.isDefault = false)); 82 | } 83 | if (index >= 0) { 84 | addressList.splice(index, 1, form); 85 | } else { 86 | addressList.push(form); 87 | } 88 | } else { 89 | addressList = [form]; 90 | } 91 | setLocalStorage('addressList', addressList); 92 | setTimeout(() => { 93 | closeLoading(); 94 | showToast('保存成功'); 95 | routerBack(); 96 | }, 1000); 97 | }) 98 | .catch((err: []) => { 99 | console.log(err); 100 | }); 101 | }; 102 | 103 | const handleDelete = () => { 104 | Dialog.confirm({ 105 | title: '提示', 106 | message: '确定删除此地址?', 107 | }) 108 | .then(() => { 109 | // on confirm 110 | let localAddress = getLocalStorage('addressList'); 111 | localAddress = localAddress?.filter((v: AddressInfo) => v.id !== form.id); 112 | if (form.isDefault) { 113 | if (Array.isArray(localAddress) && localAddress.length > 0) localAddress[0].isDefault = true; 114 | } 115 | setLocalStorage('addressList', localAddress); 116 | showToast('删除成功'); 117 | router.back(); 118 | }) 119 | .catch(() => { 120 | // on cancel 121 | }); 122 | }; 123 | 124 | const SwitchSlots = { 125 | 'right-icon': () => , 126 | }; 127 | 128 | const initAddress = () => { 129 | if (mainStore.selectAddress) form = mainStore.selectAddress; 130 | }; 131 | initAddress(); 132 | 133 | onUnmounted(() => { 134 | mainStore.selectAddress = null; 135 | }); 136 | 137 | return () => ( 138 |
    139 | 140 |
    141 |
    142 | 148 | 156 | 165 | 171 | 172 | {' '} 173 | 174 |
    175 | 178 | 181 |
    182 | 183 |
    184 | 185 | 186 |
    187 | ); 188 | }, 189 | }); 190 | -------------------------------------------------------------------------------- /docs/assets/dayjs.min-40a0aa38.js: -------------------------------------------------------------------------------- 1 | var P=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},F={},Q={get exports(){return F},set exports(j){F=j}};(function(j,K){(function(A,b){j.exports=b()})(P,function(){var A=1e3,b=6e4,J=36e5,k="millisecond",D="second",S="minute",w="hour",M="day",H="week",$="month",Z="quarter",y="year",O="date",z="Invalid Date",E=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,q=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,B={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(i){var e=["th","st","nd","rd"],t=i%100;return"["+i+(e[(t-20)%10]||e[t]||e[0])+"]"}},I=function(i,e,t){var r=String(i);return!r||r.length>=e?i:""+Array(e+1-r.length).join(t)+i},G={s:I,z:function(i){var e=-i.utcOffset(),t=Math.abs(e),r=Math.floor(t/60),n=t%60;return(e<=0?"+":"-")+I(r,2,"0")+":"+I(n,2,"0")},m:function i(e,t){if(e.date()1)return i(s[0])}else{var a=e.name;p[a]=e,n=a}return!r&&n&&(T=n),n||!r&&T},c=function(i,e){if(N(i))return i.clone();var t=typeof e=="object"?e:{};return t.date=i,t.args=arguments,new W(t)},o=G;o.l=L,o.i=N,o.w=function(i,e){return c(i,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var W=function(){function i(t){this.$L=L(t.locale,null,!0),this.parse(t)}var e=i.prototype;return e.parse=function(t){this.$d=function(r){var n=r.date,u=r.utc;if(n===null)return new Date(NaN);if(o.u(n))return new Date;if(n instanceof Date)return new Date(n);if(typeof n=="string"&&!/Z$/i.test(n)){var s=n.match(E);if(s){var a=s[2]-1||0,h=(s[7]||"0").substring(0,3);return u?new Date(Date.UTC(s[1],a,s[3]||1,s[4]||0,s[5]||0,s[6]||0,h)):new Date(s[1],a,s[3]||1,s[4]||0,s[5]||0,s[6]||0,h)}}return new Date(n)}(t),this.$x=t.x||{},this.init()},e.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},e.$utils=function(){return o},e.isValid=function(){return this.$d.toString()!==z},e.isSame=function(t,r){var n=c(t);return this.startOf(r)<=n&&n<=this.endOf(r)},e.isAfter=function(t,r){return c(t) 2 |
    3 | 4 |
    5 |
      6 |
    • 7 | {{ item.phone }} 8 |
    • 9 |
    10 |
    11 | 12 |
    13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 |
      50 |
    • 56 |
      57 | 点击抽奖 58 |
      59 |
      {{ item.name }}
      60 |
    • 61 |
    62 |
    63 |
    64 | 65 | 66 | 236 | 237 | 384 | -------------------------------------------------------------------------------- /docs/assets/index-c09a8951.js: -------------------------------------------------------------------------------- 1 | import{j as E,d as _,l as C,aF as ge,F as Ce,N as I,c,D as L,e as z,ar as Be,aG as be,G as we,H as j,Z as T,$,q as ke,ac as ee,ad as Oe,x as D,aH as Se,a8 as te,s as ne,a0 as oe,ag as Ie,C as X,w as ae,y as le,E as P,K as se,al as xe,as as Pe,aI as Te,M as ze,aJ as Ae,aK as De,m as F,T as Ee,ao as ce,a1 as _e,I as ie,aE as Le,a4 as re,aL as Re,aM as Ne,n as ue,i as $e,ax as Me,Q as Ke,a3 as He,aN as Fe,aO as V,az as Ye,aP as je,aQ as Ue}from"./index-97037613.js";import{u as p}from"./use-expose-41792aad.js";import{B as U,L as Xe}from"./index-54895d77.js";const[de,Z]=E("action-bar"),fe=Symbol(de),pe={placeholder:Boolean,safeAreaInsetBottom:I};var Ge=_({name:de,props:pe,setup(e,{slots:t}){const n=C(),l=ge(n,Z),{linkChildren:o}=Ce(fe);o();const s=()=>{var a;return c("div",{ref:n,class:[Z(),{"van-safe-area-bottom":e.safeAreaInsetBottom}]},[(a=t.default)==null?void 0:a.call(t)])};return()=>e.placeholder?l(s):s()}});const Ve=L(Ge),[Ze,qe]=E("action-bar-button"),Qe=z({},Be,{type:String,text:String,icon:String,color:String,loading:Boolean,disabled:Boolean});var Je=_({name:Ze,props:Qe,setup(e,{slots:t}){const n=be(),{parent:l,index:o}=we(fe),s=j(()=>{if(l){const i=l.children[o.value-1];return!(i&&"isButton"in i)}}),a=j(()=>{if(l){const i=l.children[o.value+1];return!(i&&"isButton"in i)}});return p({isButton:!0}),()=>{const{type:i,icon:m,text:v,color:y,loading:f,disabled:u}=e;return c(U,{class:qe([i,{last:a.value,first:s.value}]),size:"large",type:i,icon:m,color:y,loading:f,disabled:u,onClick:n},{default:()=>[t.default?t.default():v]})}}});const q=L(Je),G={show:Boolean,zIndex:T,overlay:I,duration:T,teleport:[String,Object],lockScroll:I,lazyRender:I,beforeClose:Function,overlayStyle:Object,overlayClass:$,transitionAppear:Boolean,closeOnClickOverlay:I},We=Object.keys(G);function et(e,t){return e>t?"horizontal":t>e?"vertical":""}function tt(){const e=C(0),t=C(0),n=C(0),l=C(0),o=C(0),s=C(0),a=C(""),i=()=>a.value==="vertical",m=()=>a.value==="horizontal",v=()=>{n.value=0,l.value=0,o.value=0,s.value=0,a.value=""};return{move:u=>{const g=u.touches[0];n.value=(g.clientX<0?0:g.clientX)-e.value,l.value=g.clientY-t.value,o.value=Math.abs(n.value),s.value=Math.abs(l.value);const b=10;(!a.value||o.value{v(),e.value=u.touches[0].clientX,t.value=u.touches[0].clientY},reset:v,startX:e,startY:t,deltaX:n,deltaY:l,offsetX:o,offsetY:s,direction:a,isVertical:i,isHorizontal:m}}let R=0;const Q="van-overflow-hidden";function nt(e,t){const n=tt(),l="01",o="10",s=y=>{n.move(y);const f=n.deltaY.value>0?o:l,u=Se(y.target,e.value),{scrollHeight:g,offsetHeight:b,scrollTop:x}=u;let S="11";x===0?S=b>=g?"00":"01":x+b>=g&&(S="10"),S!=="11"&&n.isVertical()&&!(parseInt(S,2)&parseInt(f,2))&&te(y,!0)},a=()=>{document.addEventListener("touchstart",n.start),document.addEventListener("touchmove",s,{passive:!1}),R||document.body.classList.add(Q),R++},i=()=>{R&&(document.removeEventListener("touchstart",n.start),document.removeEventListener("touchmove",s),R--,R||document.body.classList.remove(Q))},m=()=>t()&&a(),v=()=>t()&&i();ke(m),ee(v),Oe(v),D(t,y=>{y?a():i()})}function ve(e){const t=C(!1);return D(e,n=>{n&&(t.value=n)},{immediate:!0}),n=>()=>t.value?n():null}const[ot,at]=E("overlay"),lt={show:Boolean,zIndex:T,duration:T,className:$,lockScroll:I,lazyRender:I,customStyle:Object};var st=_({name:ot,props:lt,setup(e,{slots:t}){const n=C(),l=ve(()=>e.show||!e.lazyRender),o=a=>{e.lockScroll&&te(a,!0)},s=l(()=>{var a;const i=z(Ie(e.zIndex),e.customStyle);return X(e.duration)&&(i.animationDuration=`${e.duration}s`),ae(c("div",{ref:n,style:i,class:[at(),e.className]},[(a=t.default)==null?void 0:a.call(t)]),[[le,e.show]])});return ne("touchmove",o,{target:n}),()=>c(oe,{name:"van-fade",appear:!0},{default:s})}});const ct=L(st),it=z({},G,{round:Boolean,position:P("center"),closeIcon:P("cross"),closeable:Boolean,transition:String,iconPrefix:String,closeOnPopstate:Boolean,closeIconPosition:P("top-right"),safeAreaInsetTop:Boolean,safeAreaInsetBottom:Boolean}),[rt,J]=E("popup");var ut=_({name:rt,inheritAttrs:!1,props:it,emits:["open","close","opened","closed","keydown","update:show","clickOverlay","clickCloseIcon"],setup(e,{emit:t,attrs:n,slots:l}){let o,s;const a=C(),i=C(),m=ve(()=>e.show||!e.lazyRender),v=j(()=>{const d={zIndex:a.value};if(X(e.duration)){const B=e.position==="center"?"animationDuration":"transitionDuration";d[B]=`${e.duration}s`}return d}),y=()=>{o||(o=!0,a.value=e.zIndex!==void 0?+e.zIndex:Ae(),t("open"))},f=()=>{o&&ce(e.beforeClose,{done(){o=!1,t("close"),t("update:show",!1)}})},u=d=>{t("clickOverlay",d),e.closeOnClickOverlay&&f()},g=()=>{if(e.overlay)return c(ct,{show:e.show,class:e.overlayClass,zIndex:a.value,duration:e.duration,customStyle:e.overlayStyle,role:e.closeOnClickOverlay?"button":void 0,tabindex:e.closeOnClickOverlay?0:void 0,onClick:u},{default:l["overlay-content"]})},b=d=>{t("clickCloseIcon",d),f()},x=()=>{if(e.closeable)return c(ie,{role:"button",tabindex:0,name:e.closeIcon,class:[J("close-icon",e.closeIconPosition),_e],classPrefix:e.iconPrefix,onClick:b},null)},S=()=>t("opened"),r=()=>t("closed"),h=d=>t("keydown",d),O=m(()=>{var d;const{round:B,position:M,safeAreaInsetTop:Y,safeAreaInsetBottom:he}=e;return ae(c("div",F({ref:i,style:v.value,role:"dialog",tabindex:0,class:[J({round:B,[M]:M}),{"van-safe-area-top":Y,"van-safe-area-bottom":he}],onKeydown:h},n),[(d=l.default)==null?void 0:d.call(l),x()]),[[le,e.show]])}),w=()=>{const{position:d,transition:B,transitionAppear:M}=e,Y=d==="center"?"van-fade":`van-popup-slide-${d}`;return c(oe,{name:B||Y,appear:M,onAfterEnter:S,onAfterLeave:r},{default:O})};return D(()=>e.show,d=>{d&&!o&&(y(),n.tabindex===0&&Ee(()=>{var B;(B=i.value)==null||B.focus()})),!d&&o&&(o=!1,t("close"))}),p({popupRef:i}),nt(i,()=>e.show&&e.lockScroll),ne("popstate",()=>{e.closeOnPopstate&&(f(),s=!1)}),se(()=>{e.show&&y()}),xe(()=>{s&&(t("update:show",!0),s=!1)}),ee(()=>{e.show&&e.teleport&&(f(),s=!0)}),Pe(De,()=>e.show),()=>e.teleport?c(Te,{to:e.teleport},{default:()=>[g(),w()]}):c(ze,null,[g(),w()])}});const me=L(ut);let N=0;function dt(e){e?(N||document.body.classList.add("van-toast--unclickable"),N++):N&&(N--,N||document.body.classList.remove("van-toast--unclickable"))}const[ft,A]=E("toast"),vt=["show","overlay","teleport","transition","overlayClass","overlayStyle","closeOnClickOverlay"],mt={icon:String,show:Boolean,type:P("text"),overlay:Boolean,message:T,iconSize:T,duration:Re(2e3),position:P("middle"),teleport:[String,Object],wordBreak:String,className:$,iconPrefix:String,transition:P("van-fade"),loadingType:String,forbidClick:Boolean,overlayClass:$,overlayStyle:Object,closeOnClick:Boolean,closeOnClickOverlay:Boolean};var ye=_({name:ft,props:mt,emits:["update:show"],setup(e,{emit:t,slots:n}){let l,o=!1;const s=()=>{const f=e.show&&e.forbidClick;o!==f&&(o=f,dt(o))},a=f=>t("update:show",f),i=()=>{e.closeOnClick&&a(!1)},m=()=>clearTimeout(l),v=()=>{const{icon:f,type:u,iconSize:g,iconPrefix:b,loadingType:x}=e;if(f||u==="success"||u==="fail")return c(ie,{name:f||u,size:g,class:A("icon"),classPrefix:b},null);if(u==="loading")return c(Xe,{class:A("loading"),size:g,type:x},null)},y=()=>{const{type:f,message:u}=e;if(n.message)return c("div",{class:A("text")},[n.message()]);if(X(u)&&u!=="")return f==="html"?c("div",{key:0,class:A("text"),innerHTML:String(u)},null):c("div",{class:A("text")},[u])};return D(()=>[e.show,e.forbidClick],s),D(()=>[e.show,e.type,e.message,e.duration],()=>{m(),e.show&&e.duration>0&&(l=setTimeout(()=>{a(!1)},e.duration))}),se(s),Le(s),()=>c(me,F({class:[A([e.position,e.wordBreak==="normal"?"break-normal":e.wordBreak,{[e.type]:!e.icon}]),e.className],lockScroll:!1,onClick:i,onClosed:m,"onUpdate:show":a},re(e,vt)),{default:()=>[v(),y()]})}});function yt(){const e=ue({show:!1}),t=o=>{e.show=o},n=o=>{z(e,o,{transitionAppear:!0}),t(!0)},l=()=>t(!1);return p({open:n,close:l,toggle:t}),{open:n,close:l,state:e,toggle:t}}function ht(e){const t=Ne(e),n=document.createElement("div");return document.body.appendChild(n),{instance:t.mount(n),unmount(){t.unmount(),document.body.removeChild(n)}}}const gt={icon:"",type:"text",message:"",className:"",overlay:!1,onClose:void 0,onOpened:void 0,duration:2e3,teleport:"body",iconSize:void 0,iconPrefix:void 0,position:"middle",transition:"van-fade",forbidClick:!1,loadingType:void 0,overlayClass:"",overlayStyle:void 0,closeOnClick:!1,closeOnClickOverlay:!1};let K=[],Ct=!1,W=z({},gt);const Bt=new Map;function bt(e){return Me(e)?e:{message:e}}function wt(){const{instance:e,unmount:t}=ht({setup(){const n=C(""),{open:l,state:o,close:s,toggle:a}=yt(),i=()=>{},m=()=>c(ye,F(o,{onClosed:i,"onUpdate:show":a}),null);return D(n,v=>{o.message=v}),Ke().render=m,{open:l,close:s,message:n}}});return e}function kt(){if(!K.length||Ct){const e=wt();K.push(e)}return K[K.length-1]}function At(e={}){if(!$e)return{};const t=kt(),n=bt(e);return t.open(z({},W,Bt.get(n.type||W.type),n)),t}const Dt=L(ye),[Ot,k,H]=E("dialog"),St=z({},G,{title:String,theme:String,width:T,message:[String,Function],callback:Function,allowHtml:Boolean,className:$,transition:P("van-dialog-bounce"),messageAlign:String,closeOnPopstate:I,showCancelButton:Boolean,cancelButtonText:String,cancelButtonColor:String,cancelButtonDisabled:Boolean,confirmButtonText:String,confirmButtonColor:String,confirmButtonDisabled:Boolean,showConfirmButton:I,closeOnClickOverlay:Boolean}),It=[...We,"transition","closeOnPopstate"];var xt=_({name:Ot,props:St,emits:["confirm","cancel","keydown","update:show"],setup(e,{emit:t,slots:n}){const l=C(),o=ue({confirm:!1,cancel:!1}),s=r=>t("update:show",r),a=r=>{var h;s(!1),(h=e.callback)==null||h.call(e,r)},i=r=>()=>{e.show&&(t(r),e.beforeClose?(o[r]=!0,ce(e.beforeClose,{args:[r],done(){a(r),o[r]=!1},canceled(){o[r]=!1}})):a(r))},m=i("cancel"),v=i("confirm"),y=Fe(r=>{var h,O;if(r.target!==((O=(h=l.value)==null?void 0:h.popupRef)==null?void 0:O.value))return;({Enter:e.showConfirmButton?v:V,Escape:e.showCancelButton?m:V})[r.key](),t("keydown",r)},["enter","esc"]),f=()=>{const r=n.title?n.title():e.title;if(r)return c("div",{class:k("header",{isolated:!e.message&&!n.default})},[r])},u=r=>{const{message:h,allowHtml:O,messageAlign:w}=e,d=k("message",{"has-title":r,[w]:w}),B=Ye(h)?h():h;return O&&typeof B=="string"?c("div",{class:d,innerHTML:B},null):c("div",{class:d},[B])},g=()=>{if(n.default)return c("div",{class:k("content")},[n.default()]);const{title:r,message:h,allowHtml:O}=e;if(h){const w=!!(r||n.title);return c("div",{key:O?1:0,class:k("content",{isolated:!w})},[u(w)])}},b=()=>c("div",{class:[Ue,k("footer")]},[e.showCancelButton&&c(U,{size:"large",text:e.cancelButtonText||H("cancel"),class:k("cancel"),style:{color:e.cancelButtonColor},loading:o.cancel,disabled:e.cancelButtonDisabled,onClick:m},null),e.showConfirmButton&&c(U,{size:"large",text:e.confirmButtonText||H("confirm"),class:[k("confirm"),{[je]:e.showCancelButton}],style:{color:e.confirmButtonColor},loading:o.confirm,disabled:e.confirmButtonDisabled,onClick:v},null)]),x=()=>c(Ve,{class:k("footer")},{default:()=>[e.showCancelButton&&c(q,{type:"warning",text:e.cancelButtonText||H("cancel"),class:k("cancel"),color:e.cancelButtonColor,loading:o.cancel,disabled:e.cancelButtonDisabled,onClick:m},null),e.showConfirmButton&&c(q,{type:"danger",text:e.confirmButtonText||H("confirm"),class:k("confirm"),color:e.confirmButtonColor,loading:o.confirm,disabled:e.confirmButtonDisabled,onClick:v},null)]}),S=()=>n.footer?n.footer():e.theme==="round-button"?x():b();return()=>{const{width:r,title:h,theme:O,message:w,className:d}=e;return c(me,F({ref:l,role:"dialog",class:[k([O]),d],style:{width:He(r)},tabindex:0,"aria-labelledby":h||w,onKeydown:y,"onUpdate:show":s},re(e,It)),{default:()=>[f(),g(),S()]})}}});const Et=L(xt);export{Et as D,me as P,Dt as T,At as a,tt as b,ht as m,xt as s,yt as u}; 2 | -------------------------------------------------------------------------------- /docs/assets/AddressEdit-5fb61db4.css: -------------------------------------------------------------------------------- 1 | :root{--van-sticky-z-index: 99}.van-sticky--fixed{position:fixed;z-index:var(--van-sticky-z-index)}:root{--van-swipe-indicator-size: .12rem;--van-swipe-indicator-margin: var(--van-padding-sm);--van-swipe-indicator-active-opacity: 1;--van-swipe-indicator-inactive-opacity: .3;--van-swipe-indicator-active-background: var(--van-primary-color);--van-swipe-indicator-inactive-background: var(--van-border-color)}.van-swipe{position:relative;overflow:hidden;transform:translateZ(0);cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.van-swipe__track{display:flex;height:100%}.van-swipe__track--vertical{flex-direction:column}.van-swipe__indicators{position:absolute;bottom:var(--van-swipe-indicator-margin);left:50%;display:flex;transform:translate(-50%)}.van-swipe__indicators--vertical{top:50%;bottom:auto;left:var(--van-swipe-indicator-margin);flex-direction:column;transform:translateY(-50%)}.van-swipe__indicators--vertical .van-swipe__indicator:not(:last-child){margin-bottom:var(--van-swipe-indicator-size)}.van-swipe__indicator{width:var(--van-swipe-indicator-size);height:var(--van-swipe-indicator-size);background-color:var(--van-swipe-indicator-inactive-background);border-radius:100%;opacity:var(--van-swipe-indicator-inactive-opacity);transition:opacity var(--van-duration-fast),background-color var(--van-duration-fast)}.van-swipe__indicator:not(:last-child){margin-right:var(--van-swipe-indicator-size)}.van-swipe__indicator--active{background-color:var(--van-swipe-indicator-active-background);opacity:var(--van-swipe-indicator-active-opacity)}.van-swipe-item{position:relative;flex-shrink:0;width:100%;height:100%}:root{--van-tab-text-color: var(--van-gray-7);--van-tab-active-text-color: var(--van-text-color);--van-tab-disabled-text-color: var(--van-text-color-3);--van-tab-font-size: var(--van-font-size-md);--van-tab-line-height: var(--van-line-height-md);--van-tabs-default-color: var(--van-primary-color);--van-tabs-line-height: .88rem;--van-tabs-card-height: .6rem;--van-tabs-nav-background: var(--van-background-2);--van-tabs-bottom-bar-width: .8rem;--van-tabs-bottom-bar-height: .06rem;--van-tabs-bottom-bar-color: var(--van-primary-color)}.van-tab{position:relative;display:flex;flex:1;align-items:center;justify-content:center;box-sizing:border-box;padding:0 var(--van-padding-base);color:var(--van-tab-text-color);font-size:var(--van-tab-font-size);line-height:var(--van-tab-line-height);cursor:pointer}.van-tab--active{color:var(--van-tab-active-text-color);font-weight:var(--van-font-bold)}.van-tab--disabled{color:var(--van-tab-disabled-text-color);cursor:not-allowed}.van-tab--grow{flex:1 0 auto;padding:0 var(--van-padding-sm)}.van-tab--shrink{flex:none;padding:0 var(--van-padding-xs)}.van-tab--card{color:var(--van-tabs-default-color);border-right:var(--van-border-width) solid var(--van-tabs-default-color)}.van-tab--card:last-child{border-right:none}.van-tab--card.van-tab--active{color:var(--van-white);background-color:var(--van-tabs-default-color)}.van-tab--card--disabled{color:var(--van-tab-disabled-text-color)}.van-tab__text--ellipsis{display:-webkit-box;overflow:hidden;-webkit-line-clamp:1;-webkit-box-orient:vertical}.van-tabs{position:relative}.van-tabs__wrap{overflow:hidden}.van-tabs__wrap--page-top{position:fixed}.van-tabs__wrap--content-bottom{top:auto;bottom:0}.van-tabs__nav{position:relative;display:flex;background:var(--van-tabs-nav-background);-webkit-user-select:none;-moz-user-select:none;user-select:none}.van-tabs__nav--complete{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.van-tabs__nav--complete::-webkit-scrollbar{display:none}.van-tabs__nav--line{box-sizing:content-box;height:100%;padding-bottom:.3rem}.van-tabs__nav--line.van-tabs__nav--shrink,.van-tabs__nav--line.van-tabs__nav--complete{padding-right:var(--van-padding-xs);padding-left:var(--van-padding-xs)}.van-tabs__nav--card{box-sizing:border-box;height:var(--van-tabs-card-height);margin:0 var(--van-padding-md);border:var(--van-border-width) solid var(--van-tabs-default-color);border-radius:var(--van-border-radius-sm)}.van-tabs__nav--card.van-tabs__nav--shrink{display:inline-flex}.van-tabs__line{position:absolute;bottom:.3rem;left:0;z-index:1;width:var(--van-tabs-bottom-bar-width);height:var(--van-tabs-bottom-bar-height);background:var(--van-tabs-bottom-bar-color);border-radius:var(--van-tabs-bottom-bar-height)}.van-tabs__track{position:relative;display:flex;width:100%;height:100%;will-change:left}.van-tabs__content--animated{overflow:hidden}.van-tabs--line .van-tabs__wrap{height:var(--van-tabs-line-height)}.van-tabs--card>.van-tabs__wrap{height:var(--van-tabs-card-height)}.van-tab__panel,.van-tab__panel-wrapper{flex-shrink:0;box-sizing:border-box;width:100%}.van-tab__panel-wrapper--inactive{height:0;overflow:visible}:root{--van-picker-group-background: var(--van-background-2)}.van-picker-group{background:var(--van-picker-group-background)}.van-picker-group__tabs{margin-top:var(--van-padding-base)}.van-picker-group__tab-title{margin-right:.32rem}:root{--van-picker-background: var(--van-background-2);--van-picker-toolbar-height: .88rem;--van-picker-title-font-size: var(--van-font-size-lg);--van-picker-title-line-height: var(--van-line-height-md);--van-picker-action-padding: 0 var(--van-padding-md);--van-picker-action-font-size: var(--van-font-size-md);--van-picker-confirm-action-color: var(--van-primary-color);--van-picker-cancel-action-color: var(--van-text-color-2);--van-picker-option-font-size: var(--van-font-size-lg);--van-picker-option-padding: 0 var(--van-padding-base);--van-picker-option-text-color: var(--van-text-color);--van-picker-option-disabled-opacity: .3;--van-picker-loading-icon-color: var(--van-primary-color);--van-picker-loading-mask-color: rgba(255, 255, 255, .9);--van-picker-mask-color: linear-gradient(180deg, rgba(255, 255, 255, .9), rgba(255, 255, 255, .4)), linear-gradient(0deg, rgba(255, 255, 255, .9), rgba(255, 255, 255, .4))}.van-theme-dark{--van-picker-loading-mask-color: rgba(0, 0, 0, .6);--van-picker-mask-color: linear-gradient(180deg, rgba(0, 0, 0, .6), rgba(0, 0, 0, .1)), linear-gradient(0deg, rgba(0, 0, 0, .6), rgba(0, 0, 0, .1))}.van-picker{position:relative;background:var(--van-picker-background);-webkit-user-select:none;-moz-user-select:none;user-select:none}.van-picker__toolbar{position:relative;display:flex;align-items:center;justify-content:space-between;height:var(--van-picker-toolbar-height)}.van-picker__cancel,.van-picker__confirm{height:100%;padding:var(--van-picker-action-padding);font-size:var(--van-picker-action-font-size);background-color:transparent;border:none}.van-picker__confirm{color:var(--van-picker-confirm-action-color)}.van-picker__cancel{color:var(--van-picker-cancel-action-color)}.van-picker__title{position:absolute;left:50%;color:var(--van-text-color);max-width:50%;font-weight:var(--van-font-bold);font-size:var(--van-picker-title-font-size);line-height:var(--van-picker-title-line-height);text-align:center;transform:translate(-50%)}.van-picker__columns{position:relative;display:flex;cursor:grab}.van-picker__loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;align-items:center;justify-content:center;color:var(--van-picker-loading-icon-color);background:var(--van-picker-loading-mask-color)}.van-picker__frame{position:absolute;top:50%;right:var(--van-padding-md);left:var(--van-padding-md);z-index:2;transform:translateY(-50%);pointer-events:none}.van-picker__mask{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;background-image:var(--van-picker-mask-color);background-repeat:no-repeat;background-position:top,bottom;transform:translateZ(0);pointer-events:none}.van-picker-column{flex:1;overflow:hidden;font-size:var(--van-picker-option-font-size)}.van-picker-column__wrapper{transition-timing-function:cubic-bezier(.23,1,.68,1)}.van-picker-column__item{display:flex;align-items:center;justify-content:center;padding:var(--van-picker-option-padding);color:var(--van-picker-option-text-color)}.van-picker-column__item--disabled{cursor:not-allowed;opacity:var(--van-picker-option-disabled-opacity)}:root{--van-field-label-width: 6.2em;--van-field-label-color: var(--van-text-color);--van-field-label-margin-right: var(--van-padding-sm);--van-field-input-text-color: var(--van-text-color);--van-field-input-error-text-color: var(--van-danger-color);--van-field-input-disabled-text-color: var(--van-text-color-3);--van-field-placeholder-text-color: var(--van-text-color-3);--van-field-icon-size: .36rem;--van-field-clear-icon-size: .36rem;--van-field-clear-icon-color: var(--van-gray-5);--van-field-right-icon-color: var(--van-gray-6);--van-field-error-message-color: var(--van-danger-color);--van-field-error-message-font-size: .24rem;--van-field-text-area-min-height: 1.2rem;--van-field-word-limit-color: var(--van-gray-7);--van-field-word-limit-font-size: var(--van-font-size-sm);--van-field-word-limit-line-height: .32rem;--van-field-disabled-text-color: var(--van-text-color-3);--van-field-required-mark-color: var(--van-red)}.van-field{flex-wrap:wrap}.van-field__label{flex:none;box-sizing:border-box;width:var(--van-field-label-width);margin-right:var(--van-field-label-margin-right);color:var(--van-field-label-color);text-align:left;word-wrap:break-word}.van-field__label--center{text-align:center}.van-field__label--right{text-align:right}.van-field__label--top{display:flex;width:100%;text-align:left;margin-bottom:var(--van-padding-base);word-break:break-word}.van-field__label--required:before{margin-right:.04rem;color:var(--van-field-required-mark-color);content:"*"}.van-field--disabled .van-field__label{color:var(--van-field-disabled-text-color)}.van-field__value{overflow:visible}.van-field__body{display:flex;align-items:center}.van-field__control{display:block;box-sizing:border-box;width:100%;min-width:0;margin:0;padding:0;color:var(--van-field-input-text-color);line-height:inherit;text-align:left;background-color:transparent;border:0;resize:none;-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.van-field__control::-moz-placeholder{color:var(--van-field-placeholder-text-color)}.van-field__control::placeholder{color:var(--van-field-placeholder-text-color)}.van-field__control:-moz-read-only{cursor:default}.van-field__control:read-only{cursor:default}.van-field__control:disabled{color:var(--van-field-input-disabled-text-color);cursor:not-allowed;opacity:1;-webkit-text-fill-color:var(--van-field-input-disabled-text-color)}.van-field__control--center{justify-content:center;text-align:center}.van-field__control--right{justify-content:flex-end;text-align:right}.van-field__control--custom{display:flex;align-items:center;min-height:var(--van-cell-line-height)}.van-field__control--error::-moz-placeholder{color:var(--van-field-input-error-text-color);-webkit-text-fill-color:currentColor}.van-field__control--error,.van-field__control--error::placeholder{color:var(--van-field-input-error-text-color);-webkit-text-fill-color:currentColor}.van-field__control--min-height{min-height:var(--van-field-text-area-min-height)}.van-field__control[type=date],.van-field__control[type=time],.van-field__control[type=datetime-local]{min-height:var(--van-cell-line-height)}.van-field__control[type=search]{-webkit-appearance:none}.van-field__clear,.van-field__icon,.van-field__button,.van-field__right-icon{flex-shrink:0}.van-field__clear,.van-field__right-icon{margin-right:calc(var(--van-padding-xs) * -1);padding:0 var(--van-padding-xs);line-height:inherit}.van-field__clear{color:var(--van-field-clear-icon-color);font-size:var(--van-field-clear-icon-size);cursor:pointer}.van-field__left-icon .van-icon,.van-field__right-icon .van-icon{display:block;font-size:var(--van-field-icon-size);line-height:inherit}.van-field__left-icon{margin-right:var(--van-padding-base)}.van-field__right-icon{color:var(--van-field-right-icon-color)}.van-field__button{padding-left:var(--van-padding-xs)}.van-field__error-message{color:var(--van-field-error-message-color);font-size:var(--van-field-error-message-font-size);text-align:left}.van-field__error-message--center{text-align:center}.van-field__error-message--right{text-align:right}.van-field__word-limit{margin-top:var(--van-padding-base);color:var(--van-field-word-limit-color);font-size:var(--van-field-word-limit-font-size);line-height:var(--van-field-word-limit-line-height);text-align:right}:root{--van-switch-size: .52rem;--van-switch-width:calc(1.8em + .08rem);--van-switch-height:calc(1em + .08rem);--van-switch-node-size: 1em;--van-switch-node-background: var(--van-white);--van-switch-node-shadow: 0 .06rem .02rem 0 rgba(0, 0, 0, .05);--van-switch-background: rgba(120, 120, 128, .16);--van-switch-on-background: var(--van-primary-color);--van-switch-duration: var(--van-duration-base);--van-switch-disabled-opacity: var(--van-disabled-opacity)}.van-theme-dark{--van-switch-background: rgba(120, 120, 128, .32)}.van-switch{position:relative;display:inline-block;box-sizing:content-box;width:var(--van-switch-width);height:var(--van-switch-height);font-size:var(--van-switch-size);background:var(--van-switch-background);border-radius:var(--van-switch-node-size);cursor:pointer;transition:background-color var(--van-switch-duration)}.van-switch__node{position:absolute;top:.04rem;left:.04rem;width:var(--van-switch-node-size);height:var(--van-switch-node-size);font-size:inherit;background:var(--van-switch-node-background);border-radius:100%;box-shadow:var(--van-switch-node-shadow);transition:transform var(--van-switch-duration) cubic-bezier(.3,1.05,.4,1.05)}.van-switch__loading{top:25%;left:25%;width:50%;height:50%;line-height:1}.van-switch--on{background:var(--van-switch-on-background)}.van-switch--on .van-switch__node{transform:translate(calc(var(--van-switch-width) - var(--van-switch-node-size) - .08rem))}.van-switch--on .van-switch__loading{color:var(--van-switch-on-background)}.van-switch--disabled{cursor:not-allowed;opacity:var(--van-switch-disabled-opacity)}.van-switch--loading{cursor:default} 2 | -------------------------------------------------------------------------------- /docs/assets/index-dcbfa81f.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";:root{--van-black: #000;--van-white: #fff;--van-gray-1: #f7f8fa;--van-gray-2: #f2f3f5;--van-gray-3: #ebedf0;--van-gray-4: #dcdee0;--van-gray-5: #c8c9cc;--van-gray-6: #969799;--van-gray-7: #646566;--van-gray-8: #323233;--van-red: #ee0a24;--van-blue: #1989fa;--van-orange: #ff976a;--van-orange-dark: #ed6a0c;--van-orange-light: #fffbe8;--van-green: #07c160;--van-gradient-red: linear-gradient(to right, #ff6034, #ee0a24);--van-gradient-orange: linear-gradient(to right, #ffd01e, #ff8917);--van-primary-color: var(--van-blue);--van-success-color: var(--van-green);--van-danger-color: var(--van-red);--van-warning-color: var(--van-orange);--van-text-color: var(--van-gray-8);--van-text-color-2: var(--van-gray-6);--van-text-color-3: var(--van-gray-5);--van-active-color: var(--van-gray-2);--van-active-opacity: .6;--van-disabled-opacity: .5;--van-background: var(--van-gray-1);--van-background-2: var(--van-white);--van-background-3: var(--van-white);--van-padding-base: .08rem;--van-padding-xs: .16rem;--van-padding-sm: .24rem;--van-padding-md: .32rem;--van-padding-lg: .48rem;--van-padding-xl: .64rem;--van-font-bold: 600;--van-font-size-xs: .2rem;--van-font-size-sm: .24rem;--van-font-size-md: .28rem;--van-font-size-lg: .32rem;--van-line-height-xs: .28rem;--van-line-height-sm: .36rem;--van-line-height-md: .4rem;--van-line-height-lg: .44rem;--van-base-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Segoe UI, Arial, Roboto, "PingFang SC", "miui", "Hiragino Sans GB", "Microsoft Yahei", sans-serif;--van-price-font: avenir-heavy, "PingFang SC", helvetica neue, arial, sans-serif;--van-duration-base: .3s;--van-duration-fast: .2s;--van-ease-out: ease-out;--van-ease-in: ease-in;--van-border-color: var(--van-gray-3);--van-border-width: .02rem;--van-radius-sm: .04rem;--van-radius-md: .08rem;--van-radius-lg: .16rem;--van-radius-max: 19.98rem}.van-theme-dark{--van-text-color: #f5f5f5;--van-text-color-2: #707070;--van-text-color-3: #4d4d4d;--van-border-color: #3a3a3c;--van-active-color: #3a3a3c;--van-background: #000;--van-background-2: #1c1c1e;--van-background-3: #37363b}html{-webkit-tap-highlight-color:transparent}body{margin:0;font-family:var(--van-base-font)}input,button,textarea{color:inherit;font:inherit}a:focus,input:focus,button:focus,textarea:focus,[class*=van-]:focus{outline:none}ol,ul{margin:0;padding:0;list-style:none}@keyframes van-slide-up-enter{0%{transform:translate3d(0,100%,0)}}@keyframes van-slide-up-leave{to{transform:translate3d(0,100%,0)}}@keyframes van-slide-down-enter{0%{transform:translate3d(0,-100%,0)}}@keyframes van-slide-down-leave{to{transform:translate3d(0,-100%,0)}}@keyframes van-slide-left-enter{0%{transform:translate3d(-100%,0,0)}}@keyframes van-slide-left-leave{to{transform:translate3d(-100%,0,0)}}@keyframes van-slide-right-enter{0%{transform:translate3d(100%,0,0)}}@keyframes van-slide-right-leave{to{transform:translate3d(100%,0,0)}}@keyframes van-fade-in{0%{opacity:0}to{opacity:1}}@keyframes van-fade-out{0%{opacity:1}to{opacity:0}}@keyframes van-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.van-fade-enter-active{animation:var(--van-duration-base) van-fade-in both var(--van-ease-out)}.van-fade-leave-active{animation:var(--van-duration-base) van-fade-out both var(--van-ease-in)}.van-slide-up-enter-active{animation:van-slide-up-enter var(--van-duration-base) both var(--van-ease-out)}.van-slide-up-leave-active{animation:van-slide-up-leave var(--van-duration-base) both var(--van-ease-in)}.van-slide-down-enter-active{animation:van-slide-down-enter var(--van-duration-base) both var(--van-ease-out)}.van-slide-down-leave-active{animation:van-slide-down-leave var(--van-duration-base) both var(--van-ease-in)}.van-slide-left-enter-active{animation:van-slide-left-enter var(--van-duration-base) both var(--van-ease-out)}.van-slide-left-leave-active{animation:van-slide-left-leave var(--van-duration-base) both var(--van-ease-in)}.van-slide-right-enter-active{animation:van-slide-right-enter var(--van-duration-base) both var(--van-ease-out)}.van-slide-right-leave-active{animation:van-slide-right-leave var(--van-duration-base) both var(--van-ease-in)}.van-clearfix:after{display:table;clear:both;content:""}.van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:3;-webkit-box-orient:vertical}.van-safe-area-top{padding-top:constant(safe-area-inset-top);padding-top:env(safe-area-inset-top)}.van-safe-area-bottom{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.van-haptics-feedback{cursor:pointer}.van-haptics-feedback:active{opacity:var(--van-active-opacity)}[class*=van-hairline]:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid var(--van-border-color);transform:scale(.5)}.van-hairline,.van-hairline--top,.van-hairline--left,.van-hairline--right,.van-hairline--bottom,.van-hairline--surround,.van-hairline--top-bottom{position:relative}.van-hairline--top:after{border-top-width:var(--van-border-width)}.van-hairline--left:after{border-left-width:var(--van-border-width)}.van-hairline--right:after{border-right-width:var(--van-border-width)}.van-hairline--bottom:after{border-bottom-width:var(--van-border-width)}.van-hairline--top-bottom:after,.van-hairline-unset--top-bottom:after{border-width:var(--van-border-width) 0}.van-hairline--surround:after{border-width:var(--van-border-width)}:root{--van-tabbar-height: 1rem;--van-tabbar-z-index: 1;--van-tabbar-background: var(--van-background-2)}.van-tabbar{z-index:var(--van-tabbar-z-index);display:flex;box-sizing:content-box;width:100%;height:var(--van-tabbar-height);background:var(--van-tabbar-background)}.van-tabbar--fixed{position:fixed;bottom:0;left:0}:root{--van-badge-size: .32rem;--van-badge-color: var(--van-white);--van-badge-padding: 0 .06rem;--van-badge-font-size: var(--van-font-size-sm);--van-badge-font-weight: var(--van-font-bold);--van-badge-border-width: var(--van-border-width);--van-badge-background: var(--van-danger-color);--van-badge-dot-color: var(--van-danger-color);--van-badge-dot-size: .16rem;--van-badge-font: -apple-system-font, helvetica neue, arial, sans-serif}.van-badge{display:inline-block;box-sizing:border-box;min-width:var(--van-badge-size);padding:var(--van-badge-padding);color:var(--van-badge-color);font-weight:var(--van-badge-font-weight);font-size:var(--van-badge-font-size);font-family:var(--van-badge-font);line-height:1.2;text-align:center;background:var(--van-badge-background);border:var(--van-badge-border-width) solid var(--van-background-2);border-radius:var(--van-radius-max)}.van-badge--fixed{position:absolute;transform-origin:100%}.van-badge--top-left{top:0;left:0;transform:translate(-50%,-50%)}.van-badge--top-right{top:0;right:0;transform:translate(50%,-50%)}.van-badge--bottom-left{bottom:0;left:0;transform:translate(-50%,50%)}.van-badge--bottom-right{bottom:0;right:0;transform:translate(50%,50%)}.van-badge--dot{width:var(--van-badge-dot-size);min-width:0;height:var(--van-badge-dot-size);background:var(--van-badge-dot-color);border-radius:100%;border:none;padding:0}.van-badge__wrapper{position:relative;display:inline-block}.van-icon{position:relative;display:inline-block;font:.28rem/1 vant-icon;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased}.van-icon:before{display:inline-block}.van-icon-exchange:before{content:""}.van-icon-eye:before{content:""}.van-icon-enlarge:before{content:""}.van-icon-expand-o:before{content:""}.van-icon-eye-o:before{content:""}.van-icon-expand:before{content:""}.van-icon-filter-o:before{content:""}.van-icon-fire:before{content:""}.van-icon-fail:before{content:""}.van-icon-failure:before{content:""}.van-icon-fire-o:before{content:""}.van-icon-flag-o:before{content:""}.van-icon-font:before{content:""}.van-icon-font-o:before{content:""}.van-icon-gem-o:before{content:""}.van-icon-flower-o:before{content:""}.van-icon-gem:before{content:""}.van-icon-gift-card:before{content:""}.van-icon-friends:before{content:""}.van-icon-friends-o:before{content:""}.van-icon-gold-coin:before{content:""}.van-icon-gold-coin-o:before{content:""}.van-icon-good-job-o:before{content:""}.van-icon-gift:before{content:""}.van-icon-gift-o:before{content:""}.van-icon-gift-card-o:before{content:""}.van-icon-good-job:before{content:""}.van-icon-home-o:before{content:""}.van-icon-goods-collect:before{content:""}.van-icon-graphic:before{content:""}.van-icon-goods-collect-o:before{content:""}.van-icon-hot-o:before{content:""}.van-icon-info:before{content:""}.van-icon-hotel-o:before{content:""}.van-icon-info-o:before{content:""}.van-icon-hot-sale-o:before{content:""}.van-icon-hot:before{content:""}.van-icon-like:before{content:""}.van-icon-idcard:before{content:""}.van-icon-invitation:before{content:""}.van-icon-like-o:before{content:""}.van-icon-hot-sale:before{content:""}.van-icon-location-o:before{content:""}.van-icon-location:before{content:""}.van-icon-label:before{content:""}.van-icon-lock:before{content:""}.van-icon-label-o:before{content:""}.van-icon-map-marked:before{content:""}.van-icon-logistics:before{content:""}.van-icon-manager:before{content:""}.van-icon-more:before{content:""}.van-icon-live:before{content:""}.van-icon-manager-o:before{content:""}.van-icon-medal:before{content:""}.van-icon-more-o:before{content:""}.van-icon-music-o:before{content:""}.van-icon-music:before{content:""}.van-icon-new-arrival-o:before{content:""}.van-icon-medal-o:before{content:""}.van-icon-new-o:before{content:""}.van-icon-free-postage:before{content:""}.van-icon-newspaper-o:before{content:""}.van-icon-new-arrival:before{content:""}.van-icon-minus:before{content:""}.van-icon-orders-o:before{content:""}.van-icon-new:before{content:""}.van-icon-paid:before{content:""}.van-icon-notes-o:before{content:""}.van-icon-other-pay:before{content:""}.van-icon-pause-circle:before{content:""}.van-icon-pause:before{content:""}.van-icon-pause-circle-o:before{content:""}.van-icon-peer-pay:before{content:""}.van-icon-pending-payment:before{content:""}.van-icon-passed:before{content:""}.van-icon-plus:before{content:""}.van-icon-phone-circle-o:before{content:""}.van-icon-phone-o:before{content:""}.van-icon-printer:before{content:""}.van-icon-photo-fail:before{content:""}.van-icon-phone:before{content:""}.van-icon-photo-o:before{content:""}.van-icon-play-circle:before{content:""}.van-icon-play:before{content:""}.van-icon-phone-circle:before{content:""}.van-icon-point-gift-o:before{content:""}.van-icon-point-gift:before{content:""}.van-icon-play-circle-o:before{content:""}.van-icon-shrink:before{content:""}.van-icon-photo:before{content:""}.van-icon-qr:before{content:""}.van-icon-qr-invalid:before{content:""}.van-icon-question-o:before{content:""}.van-icon-revoke:before{content:""}.van-icon-replay:before{content:""}.van-icon-service:before{content:""}.van-icon-question:before{content:""}.van-icon-search:before{content:""}.van-icon-refund-o:before{content:""}.van-icon-service-o:before{content:""}.van-icon-scan:before{content:""}.van-icon-share:before{content:""}.van-icon-send-gift-o:before{content:""}.van-icon-share-o:before{content:""}.van-icon-setting:before{content:""}.van-icon-points:before{content:""}.van-icon-photograph:before{content:""}.van-icon-shop:before{content:""}.van-icon-shop-o:before{content:""}.van-icon-shop-collect-o:before{content:""}.van-icon-shop-collect:before{content:""}.van-icon-smile:before{content:""}.van-icon-shopping-cart-o:before{content:""}.van-icon-sign:before{content:""}.van-icon-sort:before{content:""}.van-icon-star-o:before{content:""}.van-icon-smile-comment-o:before{content:""}.van-icon-stop:before{content:""}.van-icon-stop-circle-o:before{content:""}.van-icon-smile-o:before{content:""}.van-icon-star:before{content:""}.van-icon-success:before{content:""}.van-icon-stop-circle:before{content:""}.van-icon-records:before{content:""}.van-icon-shopping-cart:before{content:""}.van-icon-tosend:before{content:""}.van-icon-todo-list:before{content:""}.van-icon-thumb-circle-o:before{content:""}.van-icon-thumb-circle:before{content:""}.van-icon-umbrella-circle:before{content:""}.van-icon-underway:before{content:""}.van-icon-upgrade:before{content:""}.van-icon-todo-list-o:before{content:""}.van-icon-tv-o:before{content:""}.van-icon-underway-o:before{content:""}.van-icon-user-o:before{content:""}.van-icon-vip-card-o:before{content:""}.van-icon-vip-card:before{content:""}.van-icon-send-gift:before{content:""}.van-icon-wap-home:before{content:""}.van-icon-wap-nav:before{content:""}.van-icon-volume-o:before{content:""}.van-icon-video:before{content:""}.van-icon-wap-home-o:before{content:""}.van-icon-volume:before{content:""}.van-icon-warning:before{content:""}.van-icon-weapp-nav:before{content:""}.van-icon-wechat-pay:before{content:""}.van-icon-warning-o:before{content:""}.van-icon-wechat:before{content:""}.van-icon-setting-o:before{content:""}.van-icon-youzan-shield:before{content:""}.van-icon-warn-o:before{content:""}.van-icon-smile-comment:before{content:""}.van-icon-user-circle-o:before{content:""}.van-icon-video-o:before{content:""}.van-icon-add-square:before{content:""}.van-icon-add:before{content:""}.van-icon-arrow-down:before{content:""}.van-icon-arrow-up:before{content:""}.van-icon-arrow:before{content:""}.van-icon-after-sale:before{content:""}.van-icon-add-o:before{content:""}.van-icon-alipay:before{content:""}.van-icon-ascending:before{content:""}.van-icon-apps-o:before{content:""}.van-icon-aim:before{content:""}.van-icon-award:before{content:""}.van-icon-arrow-left:before{content:""}.van-icon-award-o:before{content:""}.van-icon-audio:before{content:""}.van-icon-bag-o:before{content:""}.van-icon-balance-list:before{content:""}.van-icon-back-top:before{content:""}.van-icon-bag:before{content:""}.van-icon-balance-pay:before{content:""}.van-icon-balance-o:before{content:""}.van-icon-bar-chart-o:before{content:""}.van-icon-bars:before{content:""}.van-icon-balance-list-o:before{content:""}.van-icon-birthday-cake-o:before{content:""}.van-icon-bookmark:before{content:""}.van-icon-bill:before{content:""}.van-icon-bell:before{content:""}.van-icon-browsing-history-o:before{content:""}.van-icon-browsing-history:before{content:""}.van-icon-bookmark-o:before{content:""}.van-icon-bulb-o:before{content:""}.van-icon-bullhorn-o:before{content:""}.van-icon-bill-o:before{content:""}.van-icon-calendar-o:before{content:""}.van-icon-brush-o:before{content:""}.van-icon-card:before{content:""}.van-icon-cart-o:before{content:""}.van-icon-cart-circle:before{content:""}.van-icon-cart-circle-o:before{content:""}.van-icon-cart:before{content:""}.van-icon-cash-on-deliver:before{content:""}.van-icon-cash-back-record:before{content:""}.van-icon-cashier-o:before{content:""}.van-icon-chart-trending-o:before{content:""}.van-icon-certificate:before{content:""}.van-icon-chat:before{content:""}.van-icon-clear:before{content:""}.van-icon-chat-o:before{content:""}.van-icon-checked:before{content:""}.van-icon-clock:before{content:""}.van-icon-clock-o:before{content:""}.van-icon-close:before{content:""}.van-icon-closed-eye:before{content:""}.van-icon-circle:before{content:""}.van-icon-cluster-o:before{content:""}.van-icon-column:before{content:""}.van-icon-comment-circle-o:before{content:""}.van-icon-cluster:before{content:""}.van-icon-comment:before{content:""}.van-icon-comment-o:before{content:""}.van-icon-comment-circle:before{content:""}.van-icon-completed:before{content:""}.van-icon-credit-pay:before{content:""}.van-icon-coupon:before{content:""}.van-icon-debit-pay:before{content:""}.van-icon-coupon-o:before{content:""}.van-icon-contact:before{content:""}.van-icon-descending:before{content:""}.van-icon-desktop-o:before{content:""}.van-icon-diamond-o:before{content:""}.van-icon-description:before{content:""}.van-icon-delete:before{content:""}.van-icon-diamond:before{content:""}.van-icon-delete-o:before{content:""}.van-icon-cross:before{content:""}.van-icon-edit:before{content:""}.van-icon-ellipsis:before{content:""}.van-icon-down:before{content:""}.van-icon-discount:before{content:""}.van-icon-ecard-pay:before{content:""}.van-icon-envelop-o:before{content:""}.van-icon-shield-o:before{content:""}.van-icon-guide-o:before{content:""}.van-icon-cash-o:before{content:""}.van-icon-qq:before{content:""}.van-icon-wechat-moments:before{content:""}.van-icon-weibo:before{content:""}.van-icon-link-o:before{content:""}.van-icon-miniprogram-o:before{content:""}@font-face{font-weight:400;font-family:vant-icon;font-style:normal;font-display:auto;src:url(data:font/woff2;charset=utf-8;base64,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) format("woff2"),url(//at.alicdn.com/t/c/font_2553510_ovbl29ce9ud.woff?t=1672541115585) format("woff")}.van-icon__image{display:block;width:1em;height:1em;-o-object-fit:contain;object-fit:contain}:root{--van-tabbar-item-font-size: var(--van-font-size-sm);--van-tabbar-item-text-color: var(--van-text-color);--van-tabbar-item-active-color: var(--van-primary-color);--van-tabbar-item-active-background: var(--van-background-2);--van-tabbar-item-line-height: 1;--van-tabbar-item-icon-size: .44rem;--van-tabbar-item-icon-margin-bottom: var(--van-padding-base)}.van-tabbar-item{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;color:var(--van-tabbar-item-text-color);font-size:var(--van-tabbar-item-font-size);line-height:var(--van-tabbar-item-line-height);cursor:pointer}.van-tabbar-item__icon{margin-bottom:var(--van-tabbar-item-icon-margin-bottom);font-size:var(--van-tabbar-item-icon-size)}.van-tabbar-item__icon .van-icon{display:block}.van-tabbar-item__icon .van-badge{margin-top:var(--van-padding-base)}.van-tabbar-item__icon img{display:block;height:.4rem}.van-tabbar-item--active{color:var(--van-tabbar-item-active-color);background-color:var(--van-tabbar-item-active-background)}html,body,div,span,iframe,h1,h2,h3,h4,h5,h6,p,ol,ul,li,footer,header,menu,nav,audio,video,input{margin:0;padding:0;border:0;font-weight:400;vertical-align:baseline;-webkit-tap-highlight-color:transparent;-ms-tap-highlight-color:transparent;box-sizing:border-box}::-webkit-scrollbar{display:none}a{text-decoration:none}li{list-style:none}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:500}.container{position:relative}.row{position:relative;width:100%}.relative{position:relative}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.pull-right{float:right!important}.pull-left{float:left!important}.block{display:block!important}.inline{display:inline!important}.inline-block{display:inline-block!important}.clearfix:before,.clearfix:after{display:table;content:" "}.clearfix:after{clear:both}.flex{display:flex!important}.flex-inline{display:inline-flex!important}.flex-row{flex-direction:row}.flex-column{flex-direction:column}.row-reverse{flex-direction:row-reverse}.column-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.space-around{justify-content:space-around}.space-between{justify-content:space-between}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.stretch{align-items:stretch}.align-start{align-items:flex-start}.align-end{align-items:flex-end}.align-middle{align-items:center}.flex-center{justify-content:center;align-items:center}.flex-first{order:-1}.flex-last{order:1}.flex-auto{flex:auto}.flex-none{flex:none}.selft-stretch{align-self:stretch}.align-self-start{align-self:flex-start}.align-self-end{align-self:flex-end}.align-self-middle{align-self:center}.txtover{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.txtover1{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.txtover2{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.txtover3{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}input{border:.02rem solid #dedede;border-radius:.1rem;outline:none;text-indent:.04rem;height:.6rem;line-height:.52rem}.mg5{margin:.1rem}.mg10{margin:.2rem}.mg15{margin:.3rem}.mg20{margin:.4rem}.mg-t0{margin-top:0}.mg-r0{margin-right:0}.mg-b0{margin-bottom:0}.mg-l0{margin-left:0}.mg-t5{margin-top:.1rem}.mg-r5{margin-right:.1rem}.mg-b5{margin-bottom:.1rem}.mg-l5{margin-left:.1rem}.mg-t10{margin-top:.2rem}.mg-r10{margin-right:.2rem}.mg-b10{margin-bottom:.2rem}.mg-l10{margin-left:.2rem}.mg-t15{margin-top:.3rem}.mg-r15{margin-right:.3rem}.mg-b15{margin-bottom:.3rem}.mg-l15{margin-left:.3rem}.mg-t20{margin-top:.4rem}.mg-r20{margin-right:.4rem}.mg-b20{margin-bottom:.4rem}.mg-l20{margin-left:.4rem}.pd5{padding:.1rem}.pd10{padding:.2rem}.pd15{padding:.3rem}.pd20{padding:.4rem}.pd-t0{padding-top:0}.pd-r0{padding-right:0}.pd-b0{padding-bottom:0}.pd-l0{padding-left:0}.pd-t5{padding-top:.1rem}.pd-r5{padding-right:.1rem}.pd-b5{padding-bottom:.1rem}.pd-l5{padding-left:.1rem}.pd-t10{padding-top:.2rem}.pd-r10{padding-right:.2rem}.pd-b10{padding-bottom:.2rem}.pd-l10{padding-left:.2rem}.pd-t15{padding-top:.3rem}.pd-r15{padding-right:.3rem}.pd-b15{padding-bottom:.3rem}.pd-l15{padding-left:.3rem}.pd-t20{padding-top:.4rem}.pd-r20{padding-right:.4rem}.pd-b20{padding-bottom:.4rem}.pd-l20{padding-left:.4rem}.fs12{font-size:.24rem}.cred{color:red}.pd-nav{padding-top:.92rem}.fade-enter-active,.fade-leave-active{transition:opacity .5s ease}.fade-enter-from,.fade-leave-to{opacity:0}.yui-button[data-v-ae1f8451]{border:none;outline:0;padding:.16rem .24rem;border-radius:.1rem;color:#fff;background-color:#409eff;display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;text-align:center;box-sizing:border-box;margin:0;transition:.1s;font-weight:500}:root{--van-action-bar-background: var(--van-background-2);--van-action-bar-height: 1rem}.van-action-bar{position:fixed;right:0;bottom:0;left:0;display:flex;align-items:center;box-sizing:content-box;height:var(--van-action-bar-height);background:var(--van-action-bar-background)}:root{--van-loading-text-color: var(--van-text-color-2);--van-loading-text-font-size: var(--van-font-size-md);--van-loading-spinner-color: var(--van-gray-5);--van-loading-spinner-size: .6rem;--van-loading-spinner-duration: .8s}.van-loading{position:relative;color:var(--van-loading-spinner-color);font-size:0;vertical-align:middle}.van-loading__spinner{position:relative;display:inline-block;width:var(--van-loading-spinner-size);max-width:100%;height:var(--van-loading-spinner-size);max-height:100%;vertical-align:middle;animation:van-rotate var(--van-loading-spinner-duration) linear infinite}.van-loading__spinner--spinner{animation-timing-function:steps(12)}.van-loading__spinner--circular{animation-duration:2s}.van-loading__line{position:absolute;top:0;left:0;width:100%;height:100%}.van-loading__line:before{display:block;width:.04rem;height:25%;margin:0 auto;background-color:currentColor;border-radius:40%;content:" "}.van-loading__circular{display:block;width:100%;height:100%}.van-loading__circular circle{animation:van-circular 1.5s ease-in-out infinite;stroke:currentColor;stroke-width:3;stroke-linecap:round}.van-loading__text{display:inline-block;margin-left:var(--van-padding-xs);color:var(--van-loading-text-color);font-size:var(--van-loading-text-font-size);vertical-align:middle}.van-loading--vertical{display:flex;flex-direction:column;align-items:center}.van-loading--vertical .van-loading__text{margin:var(--van-padding-xs) 0 0}@keyframes van-circular{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40}to{stroke-dasharray:90,150;stroke-dashoffset:-120}}.van-loading__line--1{transform:rotate(30deg);opacity:1}.van-loading__line--2{transform:rotate(60deg);opacity:.9375}.van-loading__line--3{transform:rotate(90deg);opacity:.875}.van-loading__line--4{transform:rotate(120deg);opacity:.8125}.van-loading__line--5{transform:rotate(150deg);opacity:.75}.van-loading__line--6{transform:rotate(180deg);opacity:.6875}.van-loading__line--7{transform:rotate(210deg);opacity:.625}.van-loading__line--8{transform:rotate(240deg);opacity:.5625}.van-loading__line--9{transform:rotate(270deg);opacity:.5}.van-loading__line--10{transform:rotate(300deg);opacity:.4375}.van-loading__line--11{transform:rotate(330deg);opacity:.375}.van-loading__line--12{transform:rotate(360deg);opacity:.3125}:root{--van-button-mini-height: .48rem;--van-button-mini-padding: 0 var(--van-padding-base);--van-button-mini-font-size: var(--van-font-size-xs);--van-button-small-height: .64rem;--van-button-small-padding: 0 var(--van-padding-xs);--van-button-small-font-size: var(--van-font-size-sm);--van-button-normal-padding: 0 .3rem;--van-button-normal-font-size: var(--van-font-size-md);--van-button-large-height: 1rem;--van-button-default-height: .88rem;--van-button-default-line-height: 1.2;--van-button-default-font-size: var(--van-font-size-lg);--van-button-default-color: var(--van-text-color);--van-button-default-background: var(--van-background-2);--van-button-default-border-color: var(--van-gray-4);--van-button-primary-color: var(--van-white);--van-button-primary-background: var(--van-primary-color);--van-button-primary-border-color: var(--van-primary-color);--van-button-success-color: var(--van-white);--van-button-success-background: var(--van-success-color);--van-button-success-border-color: var(--van-success-color);--van-button-danger-color: var(--van-white);--van-button-danger-background: var(--van-danger-color);--van-button-danger-border-color: var(--van-danger-color);--van-button-warning-color: var(--van-white);--van-button-warning-background: var(--van-warning-color);--van-button-warning-border-color: var(--van-warning-color);--van-button-border-width: var(--van-border-width);--van-button-radius: var(--van-radius-md);--van-button-round-radius: var(--van-radius-max);--van-button-plain-background: var(--van-white);--van-button-disabled-opacity: var(--van-disabled-opacity);--van-button-icon-size: 1.2em;--van-button-loading-icon-size: .4rem}.van-theme-dark{--van-button-plain-background: transparent}.van-button{position:relative;display:inline-block;box-sizing:border-box;height:var(--van-button-default-height);margin:0;padding:0;font-size:var(--van-button-default-font-size);line-height:var(--van-button-default-line-height);text-align:center;border-radius:var(--van-button-radius);cursor:pointer;transition:opacity var(--van-duration-fast);-webkit-appearance:none;-webkit-font-smoothing:auto}.van-button:before{position:absolute;top:50%;left:50%;width:100%;height:100%;background:var(--van-black);border:inherit;border-color:var(--van-black);border-radius:inherit;transform:translate(-50%,-50%);opacity:0;content:" "}.van-button:active:before{opacity:.1}.van-button--loading:before,.van-button--disabled:before{display:none}.van-button--default{color:var(--van-button-default-color);background:var(--van-button-default-background);border:var(--van-button-border-width) solid var(--van-button-default-border-color)}.van-button--primary{color:var(--van-button-primary-color);background:var(--van-button-primary-background);border:var(--van-button-border-width) solid var(--van-button-primary-border-color)}.van-button--success{color:var(--van-button-success-color);background:var(--van-button-success-background);border:var(--van-button-border-width) solid var(--van-button-success-border-color)}.van-button--danger{color:var(--van-button-danger-color);background:var(--van-button-danger-background);border:var(--van-button-border-width) solid var(--van-button-danger-border-color)}.van-button--warning{color:var(--van-button-warning-color);background:var(--van-button-warning-background);border:var(--van-button-border-width) solid var(--van-button-warning-border-color)}.van-button--plain{background:var(--van-button-plain-background)}.van-button--plain.van-button--primary{color:var(--van-button-primary-background)}.van-button--plain.van-button--success{color:var(--van-button-success-background)}.van-button--plain.van-button--danger{color:var(--van-button-danger-background)}.van-button--plain.van-button--warning{color:var(--van-button-warning-background)}.van-button--large{width:100%;height:var(--van-button-large-height)}.van-button--normal{padding:var(--van-button-normal-padding);font-size:var(--van-button-normal-font-size)}.van-button--small{height:var(--van-button-small-height);padding:var(--van-button-small-padding);font-size:var(--van-button-small-font-size)}.van-button__loading{color:inherit;font-size:inherit}.van-button__loading .van-loading__spinner{color:currentColor;width:var(--van-button-loading-icon-size);height:var(--van-button-loading-icon-size)}.van-button--mini{height:var(--van-button-mini-height);padding:var(--van-button-mini-padding);font-size:var(--van-button-mini-font-size)}.van-button--mini+.van-button--mini{margin-left:var(--van-padding-base)}.van-button--block{display:block;width:100%}.van-button--disabled{cursor:not-allowed;opacity:var(--van-button-disabled-opacity)}.van-button--loading{cursor:default}.van-button--round{border-radius:var(--van-button-round-radius)}.van-button--square{border-radius:0}.van-button__content{display:flex;align-items:center;justify-content:center;height:100%}.van-button__content:before{content:" "}.van-button__icon{font-size:var(--van-button-icon-size);line-height:inherit}.van-button__icon+.van-button__text,.van-button__loading+.van-button__text,.van-button__text+.van-button__icon,.van-button__text+.van-button__loading{margin-left:var(--van-padding-base)}.van-button--hairline{border-width:0}.van-button--hairline:after{border-color:inherit;border-radius:calc(var(--van-button-radius) * 2)}.van-button--hairline.van-button--round:after{border-radius:var(--van-button-round-radius)}.van-button--hairline.van-button--square:after{border-radius:0}:root{--van-action-bar-button-height: .8rem;--van-action-bar-button-warning-color: var(--van-gradient-orange);--van-action-bar-button-danger-color: var(--van-gradient-red)}.van-action-bar-button{flex:1;height:var(--van-action-bar-button-height);font-weight:var(--van-font-bold);font-size:var(--van-font-size-md);border:none;border-radius:0}.van-action-bar-button--first{margin-left:.1rem;border-top-left-radius:var(--van-radius-max);border-bottom-left-radius:var(--van-radius-max)}.van-action-bar-button--last{margin-right:.1rem;border-top-right-radius:var(--van-radius-max);border-bottom-right-radius:var(--van-radius-max)}.van-action-bar-button--warning{background:var(--van-action-bar-button-warning-color)}.van-action-bar-button--danger{background:var(--van-action-bar-button-danger-color)}@media (max-width: 321px){.van-action-bar-button{font-size:.26rem}}:root{--van-overlay-z-index: 1;--van-overlay-background: rgba(0, 0, 0, .7)}.van-overlay{position:fixed;top:0;left:0;z-index:var(--van-overlay-z-index);width:100%;height:100%;background:var(--van-overlay-background)}:root{--van-popup-background: var(--van-background-2);--van-popup-transition: transform var(--van-duration-base);--van-popup-round-radius: .32rem;--van-popup-close-icon-size: .44rem;--van-popup-close-icon-color: var(--van-gray-5);--van-popup-close-icon-margin: .32rem;--van-popup-close-icon-z-index: 1}.van-overflow-hidden{overflow:hidden!important}.van-popup{position:fixed;max-height:100%;overflow-y:auto;box-sizing:border-box;background:var(--van-popup-background);transition:var(--van-popup-transition);-webkit-overflow-scrolling:touch}.van-popup--center{top:50%;left:0;right:0;width:-moz-fit-content;width:fit-content;max-width:calc(100vw - var(--van-padding-md) * 2);margin:0 auto;transform:translateY(-50%)}.van-popup--center.van-popup--round{border-radius:var(--van-popup-round-radius)}.van-popup--top{top:0;left:0;width:100%}.van-popup--top.van-popup--round{border-radius:0 0 var(--van-popup-round-radius) var(--van-popup-round-radius)}.van-popup--right{top:50%;right:0;transform:translate3d(0,-50%,0)}.van-popup--right.van-popup--round{border-radius:var(--van-popup-round-radius) 0 0 var(--van-popup-round-radius)}.van-popup--bottom{bottom:0;left:0;width:100%}.van-popup--bottom.van-popup--round{border-radius:var(--van-popup-round-radius) var(--van-popup-round-radius) 0 0}.van-popup--left{top:50%;left:0;transform:translate3d(0,-50%,0)}.van-popup--left.van-popup--round{border-radius:0 var(--van-popup-round-radius) var(--van-popup-round-radius) 0}.van-popup-slide-top-enter-active,.van-popup-slide-left-enter-active,.van-popup-slide-right-enter-active,.van-popup-slide-bottom-enter-active{transition-timing-function:var(--van-ease-out)}.van-popup-slide-top-leave-active,.van-popup-slide-left-leave-active,.van-popup-slide-right-leave-active,.van-popup-slide-bottom-leave-active{transition-timing-function:var(--van-ease-in)}.van-popup-slide-top-enter-from,.van-popup-slide-top-leave-active{transform:translate3d(0,-100%,0)}.van-popup-slide-right-enter-from,.van-popup-slide-right-leave-active{transform:translate3d(100%,-50%,0)}.van-popup-slide-bottom-enter-from,.van-popup-slide-bottom-leave-active{transform:translate3d(0,100%,0)}.van-popup-slide-left-enter-from,.van-popup-slide-left-leave-active{transform:translate3d(-100%,-50%,0)}.van-popup__close-icon{position:absolute;z-index:var(--van-popup-close-icon-z-index);color:var(--van-popup-close-icon-color);font-size:var(--van-popup-close-icon-size)}.van-popup__close-icon--top-left{top:var(--van-popup-close-icon-margin);left:var(--van-popup-close-icon-margin)}.van-popup__close-icon--top-right{top:var(--van-popup-close-icon-margin);right:var(--van-popup-close-icon-margin)}.van-popup__close-icon--bottom-left{bottom:var(--van-popup-close-icon-margin);left:var(--van-popup-close-icon-margin)}.van-popup__close-icon--bottom-right{right:var(--van-popup-close-icon-margin);bottom:var(--van-popup-close-icon-margin)}:root{--van-dialog-width: 6.4rem;--van-dialog-small-screen-width: 90%;--van-dialog-font-size: var(--van-font-size-lg);--van-dialog-transition: var(--van-duration-base);--van-dialog-radius: .32rem;--van-dialog-background: var(--van-background-2);--van-dialog-header-font-weight: var(--van-font-bold);--van-dialog-header-line-height: .48rem;--van-dialog-header-padding-top: .52rem;--van-dialog-header-isolated-padding: var(--van-padding-lg) 0;--van-dialog-message-padding: var(--van-padding-lg);--van-dialog-message-font-size: var(--van-font-size-md);--van-dialog-message-line-height: var(--van-line-height-md);--van-dialog-message-max-height: 60vh;--van-dialog-has-title-message-text-color: var(--van-gray-7);--van-dialog-has-title-message-padding-top: var(--van-padding-xs);--van-dialog-button-height: .96rem;--van-dialog-round-button-height: .72rem;--van-dialog-confirm-button-text-color: var(--van-primary-color)}.van-dialog{top:45%;width:var(--van-dialog-width);overflow:hidden;font-size:var(--van-dialog-font-size);background:var(--van-dialog-background);border-radius:var(--van-dialog-radius);backface-visibility:hidden;transition:var(--van-dialog-transition);transition-property:transform,opacity}@media (max-width: 321px){.van-dialog{width:var(--van-dialog-small-screen-width)}}.van-dialog__header{color:var(--van-text-color);padding-top:var(--van-dialog-header-padding-top);font-weight:var(--van-dialog-header-font-weight);line-height:var(--van-dialog-header-line-height);text-align:center}.van-dialog__header--isolated{padding:var(--van-dialog-header-isolated-padding)}.van-dialog__content--isolated{display:flex;align-items:center;min-height:2.08rem}.van-dialog__message{color:var(--van-text-color);flex:1;max-height:var(--van-dialog-message-max-height);padding:.52rem var(--van-dialog-message-padding);overflow-y:auto;font-size:var(--van-dialog-message-font-size);line-height:var(--van-dialog-message-line-height);white-space:pre-wrap;text-align:center;word-wrap:break-word;-webkit-overflow-scrolling:touch}.van-dialog__message--has-title{padding-top:var(--van-dialog-has-title-message-padding-top);color:var(--van-dialog-has-title-message-text-color)}.van-dialog__message--left{text-align:left}.van-dialog__message--right{text-align:right}.van-dialog__message--justify{text-align:justify}.van-dialog__footer{display:flex;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.van-dialog__confirm,.van-dialog__cancel{flex:1;height:var(--van-dialog-button-height);margin:0;border:0}.van-dialog__confirm,.van-dialog__confirm:active{color:var(--van-dialog-confirm-button-text-color)}.van-dialog--round-button .van-dialog__footer{position:relative;height:auto;padding:var(--van-padding-xs) var(--van-padding-lg) var(--van-padding-md)}.van-dialog--round-button .van-dialog__message{padding-bottom:var(--van-padding-md);color:var(--van-text-color)}.van-dialog--round-button .van-dialog__confirm,.van-dialog--round-button .van-dialog__cancel{height:var(--van-dialog-round-button-height)}.van-dialog--round-button .van-dialog__confirm{color:var(--van-white)}.van-dialog-bounce-enter-from{transform:translate3d(0,-50%,0) scale(.7);opacity:0}.van-dialog-bounce-leave-active{transform:translate3d(0,-50%,0) scale(.9);opacity:0}:root{--van-toast-max-width: 70%;--van-toast-font-size: var(--van-font-size-md);--van-toast-text-color: var(--van-white);--van-toast-loading-icon-color: var(--van-white);--van-toast-line-height: var(--van-line-height-md);--van-toast-radius: var(--van-radius-lg);--van-toast-background: rgba(0, 0, 0, .7);--van-toast-icon-size: .72rem;--van-toast-text-min-width: 1.92rem;--van-toast-text-padding: var(--van-padding-xs) var(--van-padding-sm);--van-toast-default-padding: var(--van-padding-md);--van-toast-default-width: 1.76rem;--van-toast-default-min-height: 1.76rem;--van-toast-position-top-distance: 20%;--van-toast-position-bottom-distance: 20%}.van-toast{display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:content-box;transition:all var(--van-duration-fast);width:var(--van-toast-default-width);max-width:var(--van-toast-max-width);min-height:var(--van-toast-default-min-height);padding:var(--van-toast-default-padding);color:var(--van-toast-text-color);font-size:var(--van-toast-font-size);line-height:var(--van-toast-line-height);white-space:pre-wrap;word-break:break-all;text-align:center;background:var(--van-toast-background);border-radius:var(--van-toast-radius)}.van-toast--break-normal{word-break:normal;word-wrap:normal}.van-toast--break-word{word-break:normal;word-wrap:break-word}.van-toast--unclickable{overflow:hidden;cursor:not-allowed}.van-toast--unclickable *{pointer-events:none}.van-toast--text,.van-toast--html{width:-moz-fit-content;width:fit-content;min-width:var(--van-toast-text-min-width);min-height:0;padding:var(--van-toast-text-padding)}.van-toast--text .van-toast__text,.van-toast--html .van-toast__text{margin-top:0}.van-toast--top{top:var(--van-toast-position-top-distance)}.van-toast--bottom{top:auto;bottom:var(--van-toast-position-bottom-distance)}.van-toast__icon{font-size:var(--van-toast-icon-size)}.van-toast__loading{padding:var(--van-padding-base);color:var(--van-toast-loading-icon-color)}.van-toast__text{margin-top:var(--van-padding-xs)} 2 | --------------------------------------------------------------------------------