shish 11 månader sedan
förälder
incheckning
ea4e951152
2 ändrade filer med 169 tillägg och 0 borttagningar
  1. 17 0
      hdh5/store/counter.js
  2. 152 0
      hdh5/store/index.js

+ 17 - 0
hdh5/store/counter.js

@@ -0,0 +1,17 @@
+import { defineStore } from 'pinia'
+export const useCounterStore = defineStore('counter', {
+  state: () => ({
+    count: 0
+  }),
+  getters: {
+    doubleCount: (state) => state.count * 2
+  },
+  actions: {
+    increment() {
+      this.count++
+    },
+    decrement() {
+      this.count--
+    }
+  }
+})

+ 152 - 0
hdh5/store/index.js

@@ -0,0 +1,152 @@
+// #ifndef VUE3
+import Vue from 'vue'
+import Vuex from 'vuex'
+Vue.use(Vuex)
+const store = new Vuex.Store({
+// #endif
+
+// #ifdef VUE3
+import { createStore } from 'vuex'
+const store = createStore({
+// #endif
+	state: {
+		hasLogin: false,
+		isUniverifyLogin: false,
+		loginProvider: "",
+		openid: null,
+		testvuex: false,
+		colorIndex: 0,
+		colorList: ['#FF0000', '#00FF00', '#0000FF'],
+		noMatchLeftWindow: true,
+		active: 'componentPage',
+		leftWinActive: '/pages/component/view/view',
+		activeOpen: '',
+		menu: [],
+		univerifyErrorMsg: '',
+		// vuex测试例使用
+		username: "foo",
+		sex: "男",
+		age: 10
+	},
+	mutations: {
+		login(state, provider) {
+			state.hasLogin = true;
+			state.loginProvider = provider;
+		},
+		logout(state) {
+			state.hasLogin = false
+			state.openid = null
+		},
+		setOpenid(state, openid) {
+			state.openid = openid
+		},
+		setTestTrue(state) {
+			state.testvuex = true
+		},
+		setTestFalse(state) {
+			state.testvuex = false
+		},
+		setColorIndex(state, index) {
+			state.colorIndex = index
+		},
+		setMatchLeftWindow(state, matchLeftWindow) {
+			state.noMatchLeftWindow = !matchLeftWindow
+		},
+		setActive(state, tabPage) {
+			state.active = tabPage
+		},
+		setLeftWinActive(state, leftWinActive) {
+			state.leftWinActive = leftWinActive
+		},
+		setActiveOpen(state, activeOpen) {
+			state.activeOpen = activeOpen
+		},
+		setMenu(state, menu) {
+			state.menu = menu
+		},
+		setUniverifyLogin(state, payload) {
+			typeof payload !== 'boolean' ? payload = !!payload : '';
+			state.isUniverifyLogin = payload;
+		},
+		setUniverifyErrorMsg(state,payload = ''){
+			state.univerifyErrorMsg = payload
+		},
+		// vuex测试例使用
+		increment(state) {
+		  state.age++;
+		},
+		incrementTen(state, payload) {
+		  state.age += payload.amount
+		},
+		resetAge(state){
+		  state.age = 10
+		}
+	},
+	getters: {
+		currentColor(state) {
+			return state.colorList[state.colorIndex]
+		},
+		// vuex测试例使用
+		doubleAge(state) {
+		  return state.age * 2;
+		}
+	},
+	actions: {
+		// vuex测试例使用
+		incrementAsync(context , payload) {
+		  context.commit('incrementTen',payload)
+		},
+		// lazy loading openid
+		getUserOpenId: async function({
+			commit,
+			state
+		}) {
+			return await new Promise((resolve, reject) => {
+				if (state.openid) {
+					resolve(state.openid)
+				} else {
+					uni.login({
+						success: (data) => {
+							commit('login')
+							setTimeout(function() { //模拟异步请求服务器获取 openid
+								const openid = '123456789'
+								console.log('uni.request mock openid[' + openid + ']');
+								commit('setOpenid', openid)
+								resolve(openid)
+							}, 1000)
+						},
+						fail: (err) => {
+							console.log('uni.login 接口调用失败,将无法正常使用开放接口等服务', err)
+							reject(err)
+						}
+					})
+				}
+			})
+		},
+		getPhoneNumber: function({
+			commit
+		}, univerifyInfo) {
+			return new Promise((resolve, reject) => {
+				uni.request({
+					url: 'https://97fca9f2-41f6-449f-a35e-3f135d4c3875.bspapp.com/http/univerify-login',
+					method: 'POST',
+					data: univerifyInfo,
+					success: (res) => {
+						const data = res.data
+						if (data.success) {
+							resolve(data.phoneNumber)
+						} else {
+							reject(res)
+						}
+
+					},
+					fail: (err) => {
+						reject(res)
+					}
+				})
+			})
+		}
+	}
+})
+
+export default store