bill 4 kuukautta sitten
vanhempi
commit
721f872808

+ 2 - 2
src/api/setting.ts

@@ -27,10 +27,10 @@ export type Setting = {
   };
   mapType: 'satellite' | 'standard',
   cover: string;
-  back?: string;
+  back?: string | null;
   fov?: number;
   openCompass?: boolean;
-  mapId?: number
+  mapId?: number | null
 };
 
 const toLocal = (serviceSetting: ServeSetting): Setting => ({

+ 94 - 93
src/components/bill-ui/components/slide/index.vue

@@ -1,114 +1,115 @@
 <template>
-    <div class="ui-slide" :class="{'stop-animation': stopAmimation}" v-if="items.length">
-        <Gate :index="extendIndex">
-            <GateContent v-for="(item, i) in extendItems">
-                <slot :raw="item" :active="items[index]" :index="getIndex(i)" />
-            </GateContent>
-        </Gate>
-        <template v-if="showCtrl">
-            <span class="left fun-ctrl" @click="prevHandler"><UIIcon type="left1" /></span>
-            <span class="right fun-ctrl" @click="nextHandler"><UIIcon type="right" /></span>
-        </template>
-        <slot name="attach" :active="items[index]" />
+  <div class="ui-slide" :class="{ 'stop-animation': stopAmimation }" v-if="items.length">
+    <Gate :index="extendIndex">
+      <GateContent v-for="(item, i) in extendItems">
+        <slot :raw="item" :active="items[index]" :index="getIndex(i)" />
+      </GateContent>
+    </Gate>
+    <template v-if="showCtrl">
+      <span class="left fun-ctrl" @click="prevHandler"><UIIcon type="left1" /></span>
+      <span class="right fun-ctrl" @click="nextHandler"><UIIcon type="right" /></span>
+    </template>
+    <slot name="attach" :active="items[index]" />
 
-        <span class="infos" v-if="showInfos">
-            <span class="tj">
-                <span>{{ index + 1 }}</span> / {{ items.length }}
-            </span>
-        </span>
-    </div>
+    <span class="infos" v-if="showInfos">
+      <span class="tj">
+        <span>{{ index + 1 }}</span> / {{ items.length }}
+      </span>
+    </span>
+  </div>
 </template>
 
 <script setup>
-import { Gate, GateContent } from '../gate'
-import { ref, watchEffect, computed } from 'vue'
-import UIIcon from '../icon'
-import { nextTick } from 'vue';
+import { Gate, GateContent } from "../gate";
+import { ref, watchEffect, computed } from "vue";
+import UIIcon from "../icon";
+import { nextTick } from "vue";
 
 const props = defineProps({
-    items: Array,
-    currentIndex: {
-        type: Number,
-        default: 0,
-    },
-    showCtrl: {
-        type: Boolean,
-    },
-    showInfos: {
-        type: Boolean,
-    },
-})
-const emit = defineEmits(['change'])
-const extendIndex = ref()
-const extendLength = computed(() => props.items.length > 1 ? 1 : 0)
+  items: Array,
+  currentIndex: {
+    type: Number,
+    default: 0,
+  },
+  showCtrl: {
+    type: Boolean,
+  },
+  showInfos: {
+    type: Boolean,
+  },
+});
+const emit = defineEmits(["change"]);
+const extendIndex = ref();
+// const extendLength = computed(() => (props.items.length > 1 ? 1 : 0));
+const extendLength = computed(() => 0);
 const getIndex = (extendIndex) => {
-    const len = props.items.length
-    const diff = extendIndex - extendLength.value
+  const len = props.items.length;
+  const diff = extendIndex - extendLength.value;
 
-    if (diff < 0) {
-        return diff + len
-    } else if (diff >= len) {
-        return diff % len
-    } else {
-        return diff
-    }
-}
+  if (diff < 0) {
+    return diff + len;
+  } else if (diff >= len) {
+    return diff % len;
+  } else {
+    return diff;
+  }
+};
 const extendItems = computed(() => {
-    if (extendLength.value) {
-        const reverItems = [...props.items].reverse()
-        return [
-            ...reverItems.slice(0, extendLength.value),
-            ...props.items,
-            ...props.items.slice(0, extendLength.value)
-        ]
-    } else {
-        return props.items
-    }
-})
+  if (extendLength.value) {
+    const reverItems = [...props.items].reverse();
+    return [
+      ...reverItems.slice(0, extendLength.value),
+      ...props.items,
+      ...props.items.slice(0, extendLength.value),
+    ];
+  } else {
+    return props.items;
+  }
+});
 
-const index = computed(() => getIndex(extendIndex.value))
+const index = computed(() => getIndex(extendIndex.value));
 
 watchEffect(() => {
-    extendIndex.value = props.currentIndex + extendLength.value
-})
+  extendIndex.value = props.currentIndex + extendLength.value;
+});
 
-const stopAmimation = ref(false)
-let prevent = false
+const stopAmimation = ref(false);
+let prevent = false;
 const openPrevent = (fn) => {
-    prevent = true
-    setTimeout(() => {
-        stopAmimation.value = true
-        nextTick(() => {
-            fn()
-            setTimeout(() => {
-                stopAmimation.value = false
-                prevent = false
-            }, 50)
-        })
-    }, 300)
-}
+  prevent = true;
+  setTimeout(() => {
+    stopAmimation.value = true;
+    nextTick(() => {
+      fn();
+      setTimeout(() => {
+        stopAmimation.value = false;
+        prevent = false;
+      }, 50);
+    });
+  }, 300);
+};
 const prevHandler = () => {
-    if (prevent) return;
-    if (index.value === 0) {
-        openPrevent(() => {
-            extendIndex.value = extendLength.value + props.items.length  - 1
-        })
-    }
-    extendIndex.value--
-    emit('change', index.value)
-}
+  if (prevent) return;
+  if (index.value === 0) {
+    openPrevent(() => {
+      extendIndex.value = extendLength.value + props.items.length - 1;
+    });
+  }
+  extendIndex.value--;
+  emit("change", index.value);
+};
 const nextHandler = () => {
-    if (prevent) return;
-    if (index.value === props.items.length - 1) {
-        openPrevent(() => {
-            extendIndex.value = extendLength.value
-        })
-    }
-    extendIndex.value++
-    emit('change', index.value)
-}
+  if (prevent) return;
+  if (index.value === props.items.length - 1) {
+    openPrevent(() => {
+      extendIndex.value = extendLength.value;
+    });
+  }
+  extendIndex.value++;
+  emit("change", index.value);
+};
 </script>
 
 <script>
-export default { name: 'ui-slide' }
+export default { name: "ui-slide" };
 </script>

+ 1 - 2
src/views/setting/index.vue

@@ -50,10 +50,9 @@ const enterSetPic = () => {
 let initBack = setting.value!.back;
 let initMapId = setting.value!.mapId;
 let isFirst = true;
-const changeBack = ([back, mapId]: [string | undefined, number | undefined]) => {
+const changeBack = ([back, mapId]: [string | null, number | null]) => {
   setting.value!.back = back;
   setting.value!.mapId = mapId;
-  console.log(back, mapId);
 
   if (isFirst) {
     let isSave = false;

+ 6 - 5
src/views/setting/select-back.vue

@@ -21,8 +21,7 @@
               <MenuItem
                 v-for="item in back.children"
                 @click="
-                  value[1] !== item.value &&
-                    $emit('update:value', [undefined, item.value])
+                  value[1] !== item.value && $emit('update:value', [null, item.value])
                 "
                 :index="item.value.toString()"
               >
@@ -44,7 +43,7 @@
         :label="back.label"
         :url="back.image"
         :active="value[0] === back.value"
-        @click="value[0] !== back.value && $emit('update:value', [back.value, undefined])"
+        @click="value[0] !== back.value && $emit('update:value', [back.value, null])"
       />
     </template>
   </div>
@@ -57,9 +56,11 @@ import BackItem from "./back-item.vue";
 import { fetchMapTiles } from "@/api/map-tile";
 import { sysTiles } from "@/store";
 
-const props = defineProps<{ value: [string | undefined, number | undefined] }>();
+const props = defineProps<{
+  value: [string | null | undefined, number | null | undefined];
+}>();
 defineEmits<{
-  (e: "update:value", value: [string | undefined, number | undefined]): void;
+  (e: "update:value", value: [string | null, number | null]): void;
 }>();
 
 const backs = computed(() => [

+ 1 - 0
src/views/tagging/hot/images.vue

@@ -15,6 +15,7 @@
           @click="inFull && $emit('pull', ndx)"
         >
           <!-- v-if="ndx === index" -->
+          {{ ndx }}
           <ResourceView :data="getFileUrl(raw)" class="p-item" :focus="ndx === index" />
           <!-- <img :src="getResource(getFileUrl(raw))" /> -->
         </div>