import { createApp } from 'vue' import './style.css' import App from './App.vue' import '@unocss/reset/sanitize/sanitize.css' import '@unocss/reset/sanitize/assets.css' import 'virtual:uno.css' import "vant/es/image-preview/style"; import { ImagePreview } from 'vant'; import Vconsole from 'vconsole' new Vconsole() import router from "./router/index.js"; const app = createApp(App); app.use(router); app.use(ImagePreview); app.directive('no-space', { mounted(el) { el.addEventListener('input', (e) => { const originalValue = e.target.value; const newValue = originalValue.replace(/\s/g, ''); if (originalValue !== newValue) { e.target.value = newValue; e.target.dispatchEvent(new Event('input')); } }); } }) app.directive('number-only', { mounted(el) { el.addEventListener('input', (event) => { const { value } = event.target; // 使用正则表达式限制输入格式 event.target.value = value.replace(/[^0-9.]/g, ''); // 只保留数字和小数点 if (event.target.value.indexOf('.') !== -1) { // 如果已经包含小数点 const parts = event.target.value.split('.'); event.target.value = `${parts[0]}.${parts[1].slice(0, 1)}`; // 只保留一位小数 } }); }, }); app.mount('#app');