bill hace 1 año
padre
commit
e6d247e3cb
Se han modificado 5 ficheros con 37 adiciones y 19 borrados
  1. 2 1
      src/components/tex-tooltip.vue
  2. 26 14
      src/view/login.vue
  3. 5 2
      src/view/map/hot.ts
  4. 1 0
      src/view/map/map.vue
  5. 3 2
      src/view/relics-edit.vue

+ 2 - 1
src/components/tex-tooltip.vue

@@ -23,11 +23,12 @@ const initSample = () => {
   clearTimeout(timeId);
   if (dom.value) {
     timeId = setTimeout(() => {
+      if (!dom.value) return;
       sample.value = dom.value!.offsetHeight > 50;
     }, 100);
   }
 };
-watch(props, initSample);
+watch(() => ({ ...props, dom: dom.value }), initSample);
 
 onMounted(initSample);
 onUnmounted(() => {

+ 26 - 14
src/view/login.vue

@@ -31,7 +31,7 @@
             </div>
           </div>
           <el-form class="panel login" :model="form" @submit.stop>
-            <h2>登录</h2>
+            <h2>欢迎登录</h2>
             <el-form-item class="panel-form-item">
               <p class="err-info">{{ verification.phone }}</p>
               <el-input
@@ -126,20 +126,32 @@ const form = reactive({
   psw: import.meta.env.DEV ? "Junpeng123" : "",
 });
 const verification = reactive({ phone: "", psw: "" });
-// 验证
+
+const fromVerification = (verification: { phone: string; psw: string }) => {
+  if (!form.phone) {
+    verification.phone = "请输入手机号";
+  } else if (["88888888888", "99999999999"].includes(form.phone)) {
+    verification.phone = "";
+  } else {
+    verification.phone = PHONE.REG.test(form.phone) ? "" : PHONE.tip;
+  }
+  if (!form.psw) {
+    verification.psw = "请输入密码";
+  } else {
+    verification.psw = "";
+  }
+};
+
 watch(
   form,
   () => {
-    if (!form.phone) {
-      verification.phone = "请输入手机号";
-    } else if (["88888888888", "99999999999"].includes(form.phone)) {
+    const currentVerification = { phone: "", psw: "" };
+    fromVerification(currentVerification);
+
+    if (!currentVerification.phone) {
       verification.phone = "";
-    } else {
-      verification.phone = PHONE.REG.test(form.phone) ? "" : PHONE.tip;
     }
-    if (!form.psw) {
-      verification.psw = "请输入密码";
-    } else {
+    if (!currentVerification.psw) {
       verification.psw = "";
     }
   },
@@ -157,15 +169,15 @@ qrCode.toString(
 
 // 表单提交
 const submitClick = async () => {
-  console.log(verify.value, verify.value.reset);
-  if (!isPassing2.value) {
-    return ElMessage.error("登录需要拖拽验证");
-  }
+  fromVerification(verification);
   if (verification.phone && verification.phone !== "88888888888") {
     return ElMessage.error(verification.phone);
   }
   if (verification.psw) return ElMessage.error(verification.psw);
 
+  if (!isPassing2.value) {
+    return ElMessage.error("登录需要拖拽验证");
+  }
   try {
     await login({ phoneNum: form.phone, password: form.psw });
     router.replace("scene");

+ 5 - 2
src/view/map/hot.ts

@@ -50,8 +50,11 @@ export const dynamicHots = (map: Map) => {
   const bus = mitt<{ active: any; click: any }>();
   const container = map.getTargetElement();
   const getMouseFeature = (ev: MouseEvent) => {
-    const pixel = getRealativeMosePosition(container, [ev.offsetX, ev.offsetY]);
-    console.log(pixel);
+    const ratio = window.devicePixelRatio;
+    const pixel = getRealativeMosePosition(container, [
+      ev.offsetX,
+      ev.offsetY,
+    ]).map((p) => p / ratio);
     return map.forEachFeatureAtPixel(pixel, (feature) => {
       return hotSource.getFeatures().find((f) => f === feature);
     });

+ 1 - 0
src/view/map/map.vue

@@ -95,6 +95,7 @@ const flyUserCenter = () => {
   mapManage.setCenter([116.412611, 39.908866]);
   navigator.geolocation.getCurrentPosition(
     (pos) => {
+      console.log("获取中心位置成功", pos);
       mapManage.setCenter([pos.coords.longitude, pos.coords.latitude]);
     },
     () => console.error("获取中心位置失败"),

+ 3 - 2
src/view/relics-edit.vue

@@ -9,6 +9,7 @@
       />
     </el-form-item>
     <el-form-item label="文物编号:">
+      {{ data.unicode }}
       <el-input
         v-model="data.unicode"
         style="width: 100%"
@@ -63,8 +64,8 @@ watch(
   () => data.value.unicode,
   (newv, oldv) => {
     if (newv && !/^[a-zA-Z0-9]+$/.test(newv)) {
-      data.value.unicode = newv.replace(/[^a-zA-Z0-9]+/gi, "");
-      console.log(oldv);
+      const reg = newv.replace(/[^a-zA-Z0-9]+/gi, "");
+      Promise.resolve().then(() => (data.value.unicode = reg));
       ElMessage.error("文物编号仅支持字母或数字组合");
     }
   }