From 9e7ad4cfae73cb49560c456308475f9febb8dcde Mon Sep 17 00:00:00 2001 From: gaozl Date: Mon, 28 Feb 2022 09:51:34 +0800 Subject: [PATCH 01/11] 11 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 08b813d..fa733cc 100644 --- a/README.md +++ b/README.md @@ -25,4 +25,4 @@ `git config core.hooksPath .githooks` mac和linux下 `chmod 700 .githooks/*` -4. 开发 见具体文档 \ No newline at end of file +4. 开发 见具体文档 111 \ No newline at end of file From 8e363e6b08308db6e96901efda462b02bb39b8b4 Mon Sep 17 00:00:00 2001 From: jiangx Date: Mon, 28 Feb 2022 10:45:57 +0800 Subject: [PATCH 02/11] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=BB=9A?= =?UTF-8?q?=E5=8A=A8=E6=9D=A1=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/base/ScrollView/ScrollView.vue | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/base/ScrollView/ScrollView.vue b/src/base/ScrollView/ScrollView.vue index 39f94d1..0fe03a0 100644 --- a/src/base/ScrollView/ScrollView.vue +++ b/src/base/ScrollView/ScrollView.vue @@ -8,13 +8,13 @@ import { ref, onMounted, onBeforeUnmount, watch, computed } from 'vue' import { useStore } from '@/store' import BScroll, { BScrollInstance } from '@better-scroll/core' -import ScrollBar from '@better-scroll/scroll-bar' +import ScrollBar, { ScrollbarOptions } from '@better-scroll/scroll-bar' BScroll.use(ScrollBar) type Props = { list: any[] | string - scrollbar: boolean + scrollbar: ScrollbarOptions pullUp: boolean scrollX: boolean beforeScroll: boolean @@ -26,7 +26,9 @@ type Props = { const props = withDefaults(defineProps(), { list: () => [], - scrollbar: false, + scrollbar: () => ({ + fade: false + }), pullUp: false, scrollX: false, beforeScroll: false, @@ -52,8 +54,8 @@ const _initScroll = () => { disableMouse: false, disableTouch: false, scrollX: props.scrollX, - probeType: props.probeType - // scrollbar: props.scrollbar + probeType: props.probeType, + scrollbar: props.scrollbar }) if (props.listenScroll) { From a6a88723999adbf4ce9942bf9b76196179e0ccb9 Mon Sep 17 00:00:00 2001 From: jiangx Date: Mon, 28 Feb 2022 11:10:11 +0800 Subject: [PATCH 03/11] =?UTF-8?q?feat:=20=E5=88=A0=E9=99=A4=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E8=AF=AD=E8=A8=80hooks=20=E6=B7=BB=E5=8A=A0=E5=85=B3?= =?UTF-8?q?=E9=94=AE=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Written/Written.vue | 11 +++++++--- src/composables/useLanguage.ts | 33 ------------------------------ 2 files changed, 8 insertions(+), 36 deletions(-) delete mode 100644 src/composables/useLanguage.ts diff --git a/src/components/Written/Written.vue b/src/components/Written/Written.vue index 9c26e6d..7979f52 100644 --- a/src/components/Written/Written.vue +++ b/src/components/Written/Written.vue @@ -71,10 +71,10 @@ const state = reactive({ oldX: 0, oldY: 0, timer: 0, - list: [] //返回汉子 + list: [] //返回汉字列表 }) -const inkCanvas = ref() +const inkCanvas = ref(null) const ctx = computed(() => (inkCanvas.value as HTMLCanvasElement).getContext('2d')) function updateBound() { @@ -151,7 +151,7 @@ function _getHandWriting() { getHandWriting(params) .then(res => { const { data } = res - state.list = data + state.list = data as string[] }) .catch(err => { console.log(err) @@ -177,4 +177,9 @@ onBeforeUnmount(() => { ;(inkCanvas.value as HTMLElement).removeEventListener('touchmove', move) ;(inkCanvas.value as HTMLElement).removeEventListener('touchend', mouseUp) }) + +defineExpose({ + updateBound, + reload +}) diff --git a/src/composables/useLanguage.ts b/src/composables/useLanguage.ts deleted file mode 100644 index 603900d..0000000 --- a/src/composables/useLanguage.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { useStore, Language } from '@/store' -import { chineseLanguageLoader } from '@/i18n/util' - -export const useSetLanguage = () => { - return { - setLanguage(language: Language) { - const store = useStore() - store.setLanguage(language) - } - } -} - -export const useSwitchLanguage = () => { - return { - switchLanguage(map: Record, key: string) { - const store = useStore() - const language = store.language - if (language === 'zh') { - return map[key] - } - - if (language === 'en' && map[key + 'En']) { - return map[key + 'En'] - } else if (language === 'en' && !map[key + 'En']) { - return map[key] - } - - if (language === 'tw') { - return chineseLanguageLoader(map[key]) - } - } - } -} From 2013c64431f7578ed4c568220d9fa50e3019c21d Mon Sep 17 00:00:00 2001 From: jiangx Date: Mon, 28 Feb 2022 17:51:08 +0800 Subject: [PATCH 04/11] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E7=AE=A1=E7=90=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/actions.ts | 50 ++++++++++++++++++++++++ src/store/index.ts | 68 +++------------------------------ src/store/state.ts | 23 +++++++++++ src/store/storeID.ts | 3 ++ src/utils/initMapAndMallInfo.ts | 48 +++++++++++------------ 5 files changed, 104 insertions(+), 88 deletions(-) create mode 100644 src/store/actions.ts create mode 100644 src/store/state.ts create mode 100644 src/store/storeID.ts diff --git a/src/store/actions.ts b/src/store/actions.ts new file mode 100644 index 0000000..9c52ea3 --- /dev/null +++ b/src/store/actions.ts @@ -0,0 +1,50 @@ +import { UnwrapRef } from 'vue' +import { Language, State } from './state' +import { i18n } from '@/i18n' +import { PiniaCustomProperties, _StoreWithGetters, _StoreWithState } from 'pinia' +import { GlobalType } from './storeID' + +/* eslint-disable no-unused-vars */ +export interface Actions { + SET_SHOP_LIST(list: any[]): void + SET_SELECTED_MODULE(moduleName: string): void + SET_LANGUAGE(language: Language): void + SET_CURRENT_FLOOR(currentFloor: Record): void + SET_SHOP(shop: Record): void + SET_CONFIG(config: Record): void + SET_IS_USE_FACE(flag: boolean): void + SET_IS_USE_SPEECH(flag: boolean): void +} + +type __StoreWithState = _StoreWithState, Actions> +type __StoreWithGetters = _StoreWithGetters> + +type MyThis = Actions & ThisType & __StoreWithState & __StoreWithGetters & PiniaCustomProperties> + +export const actions: MyThis = { + SET_LANGUAGE(language) { + i18n.global.locale = language + this.language = language + }, + SET_CONFIG(config) { + this.config = config + }, + SET_SHOP_LIST(list) { + this.shopList = list + }, + SET_SELECTED_MODULE(moduleName) { + this.selectedModule = moduleName + }, + SET_CURRENT_FLOOR(currentFloor) { + this.currentFloor = currentFloor + }, + SET_SHOP(shop) { + this.shop = shop + }, + SET_IS_USE_FACE(flag) { + this.isUseFace = flag + }, + SET_IS_USE_SPEECH(flag) { + this.isUseSpeech = flag + } +} diff --git a/src/store/index.ts b/src/store/index.ts index 5078cba..86b66db 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -1,65 +1,9 @@ import { defineStore } from 'pinia' -import { i18n } from '@/i18n' -export type Language = 'zh' | 'en' | 'tw' +import { state, State } from './state' +import { Actions, actions } from './actions' +import { GLOBAL_STORE_ID, GlobalType } from './storeID' -interface State { - shopList: any[] - selectedModule: string - language: Language - currentFloor: Record - shop: Record - config: Record - isUseFace: boolean - isUseSpeech: boolean -} -/* eslint-disable no-unused-vars */ -interface Actions { - SET_SHOP_LIST(list: any[]): void - SET_SELECTED_MODULE(moduleName: string): void - SET_LANGUAGE(language: Language): void - SET_CURRENT_FLOOR(currentFloor: Record): void - SET_SHOP(shop: Record): void - SET_CONFIG(config: Record): void - SET_IS_USE_FACE(flag: boolean): void - SET_IS_USE_SPEECH(flag: boolean): void -} - -export const useStore = defineStore, Actions>('globalStore', { - state: () => ({ - shopList: [], - selectedModule: '', - language: 'zh', - config: {}, - shop: {}, - currentFloor: {}, - isUseFace: false, - isUseSpeech: false - }), - actions: { - SET_LANGUAGE(language) { - i18n.global.locale = language - this.language = language - }, - SET_CONFIG(config) { - this.config = config - }, - SET_SHOP_LIST(list) { - this.shopList = list - }, - SET_SELECTED_MODULE(moduleName) { - this.selectedModule = moduleName - }, - SET_CURRENT_FLOOR(currentFloor) { - this.currentFloor = currentFloor - }, - SET_SHOP(shop) { - this.shop = shop - }, - SET_IS_USE_FACE(flag) { - this.isUseFace = flag - }, - SET_IS_USE_SPEECH(flag) { - this.isUseSpeech = flag - } - } +export const useStore = defineStore, Actions>(GLOBAL_STORE_ID, { + state, + actions }) diff --git a/src/store/state.ts b/src/store/state.ts new file mode 100644 index 0000000..1125387 --- /dev/null +++ b/src/store/state.ts @@ -0,0 +1,23 @@ +export type Language = 'zh' | 'en' | 'tw' + +export interface State { + shopList: any[] + selectedModule: string + language: Language + currentFloor: Record + shop: Record + config: Record + isUseFace: boolean + isUseSpeech: boolean +} + +export const state = (): State => ({ + shopList: [], + selectedModule: '', + language: 'zh', + config: {}, + shop: {}, + currentFloor: {}, + isUseFace: false, + isUseSpeech: false +}) diff --git a/src/store/storeID.ts b/src/store/storeID.ts new file mode 100644 index 0000000..f7b982c --- /dev/null +++ b/src/store/storeID.ts @@ -0,0 +1,3 @@ +export const GLOBAL_STORE_ID = 'globalStore' + +export type GlobalType = typeof GLOBAL_STORE_ID diff --git a/src/utils/initMapAndMallInfo.ts b/src/utils/initMapAndMallInfo.ts index fee3f72..e805db8 100644 --- a/src/utils/initMapAndMallInfo.ts +++ b/src/utils/initMapAndMallInfo.ts @@ -5,36 +5,32 @@ import { getCurrentFloor, getShopList, getFloorsList, getMapErrorLogToSend } fro type Map = { floorOrder: number - yaxis: number - angle: number + yaxis: string + angle: string } -export const setInitMapAndMallInfo = function () { - Promise.all([getCurrentFloor(), getShopList(), getFloorsList()]).then(res => { - const [currentFloor, shopList, floorsList] = res - const store = useStore() - - store.$patch(state => ({ - ...state, - shopList: shopList.data, - currentFloor: currentFloor.data, - floorsList: floorsList.data - })) - - //初始化地图 - onReady(currentFloor.data as Map, () => { - const facilityList = (window as any).Map_QM.getAllIcon().flat(Infinity) - - const list = facilityList.map((item: { imgUrl: string }) => { - item.imgUrl.replace('./', '/') - return item - }) - - ;(window as any).Map_QM.addEventListener('shop', onClickShop, false) +export const setInitMapAndMallInfo = async function () { + const res = await Promise.all([getCurrentFloor(), getShopList(), getFloorsList()]) + const [currentFloor, shopList, floorsList] = res + const store = useStore() + store.$patch(state => ({ + ...state, + shopList: shopList.data, + currentFloor: currentFloor.data, + floorsList: floorsList.data + })) + //初始化地图 + onReady(currentFloor.data as Map, () => { + const facilityList = (window as any).Map_QM.getAllIcon().flat(Infinity) - store.SET_FACILITY_LIST(uniqBy(list, 'type')) - ;(window as any).Map_QM.renderer.domElement.addEventListener('webglcontextlost', onContextLost) + const list = facilityList.map((item: { imgUrl: string }) => { + item.imgUrl.replace('./', '/') + return item }) + ;(window as any).Map_QM.addEventListener('shop', onClickShop, false) + + store.SET_FACILITY_LIST(uniqBy(list, 'type')) + ;(window as any).Map_QM.renderer.domElement.addEventListener('webglcontextlost', onContextLost) }) } From 8b60aa6fb309b1f28940b1d181980f0398efffcc Mon Sep 17 00:00:00 2001 From: jiangx Date: Tue, 1 Mar 2022 10:49:58 +0800 Subject: [PATCH 05/11] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E8=B7=B3=E8=BD=AC=E7=BB=84=E4=BB=B6=20=E5=85=A8?= =?UTF-8?q?=E5=B1=80window=E5=A3=B0=E6=98=8E=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/index.html | 2 ++ src/App.vue | 1 - src/composables/useDay.ts | 26 ++++++++++++-------------- src/composables/useHandleScreen.ts | 6 +++--- src/directives/language.ts | 5 ----- src/index.d.ts | 6 ++++++ src/main.ts | 2 +- src/router/index.ts | 5 +++++ src/store/actions.ts | 4 ++++ src/store/state.ts | 4 +++- src/utils/initMapAndMallInfo.ts | 12 ++++++------ src/utils/utils.ts | 2 +- src/views/Nav/Nav.vue | 20 ++++++++++---------- src/views/Transfer/Transfer.vue | 15 +++++++++++++++ 14 files changed, 68 insertions(+), 42 deletions(-) create mode 100644 src/index.d.ts create mode 100644 src/views/Transfer/Transfer.vue diff --git a/public/index.html b/public/index.html index 3e5a139..c506c21 100644 --- a/public/index.html +++ b/public/index.html @@ -6,6 +6,8 @@ <%= htmlWebpackPlugin.options.title %> + +