You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
2.6 KiB
TypeScript
107 lines
2.6 KiB
TypeScript
import { Component, PropsWithChildren, useEffect, useState } from "react";
|
|
import Taro from "@tarojs/taro";
|
|
// 引入 Swiper, SwiperItem 组件
|
|
import { View, Text, Image } from "@tarojs/components";
|
|
|
|
/*** redux ***/
|
|
import { connect } from "react-redux";
|
|
import { otherSettingRefresh } from "../../store/features/otherSetting";
|
|
/*** redux end ***/
|
|
|
|
import "taro-ui/dist/style/components/button.scss"; // 按需引入
|
|
import "./shop.less";
|
|
|
|
import { GetOtherSetting } from "../../utils/Interface";
|
|
|
|
import type CustomTabBar from "../../custom-tab-bar";
|
|
class Shop extends Component<any, any> {
|
|
pageCtx = Taro.getCurrentInstance().page;
|
|
constructor(props) {
|
|
super(props);
|
|
this.state = {
|
|
name: "shop",
|
|
otherSetting: {
|
|
...this.props.otherSetting,
|
|
},
|
|
};
|
|
}
|
|
|
|
async onLoad() {}
|
|
componentDidMount() {}
|
|
|
|
componentWillUnmount() {}
|
|
|
|
componentDidShow() {
|
|
const tabbar = Taro.getTabBar<CustomTabBar>(this.pageCtx);
|
|
tabbar?.setSelected(3);
|
|
this.showInit();
|
|
}
|
|
|
|
componentDidHide() {}
|
|
|
|
async initData() {}
|
|
|
|
showInit() {
|
|
let { otherSetting } = this.state;
|
|
if (otherSetting.skipAppid) {
|
|
this.goMiniProgram();
|
|
} else {
|
|
this.GetOtherSetting(); // 获取小程序设置:商城地址和版本
|
|
}
|
|
}
|
|
|
|
goMiniProgram() {
|
|
let { otherSetting } = this.state;
|
|
Taro.navigateToMiniProgram({
|
|
appId: otherSetting.skipAppid,
|
|
path: otherSetting.skipPath,
|
|
// sysVersion: otherSetting.sysVersion,
|
|
success(res) {
|
|
// 打开成功
|
|
Taro.reLaunch({
|
|
url: "/pages/index/index",
|
|
});
|
|
},
|
|
fail(res) {
|
|
Taro.reLaunch({
|
|
url: "/pages/index/index",
|
|
});
|
|
},
|
|
});
|
|
}
|
|
|
|
// 获取小程序设置
|
|
GetOtherSetting = async () => {
|
|
Taro.showLoading({
|
|
title: "请求中...",
|
|
mask: true,
|
|
});
|
|
let res = await GetOtherSetting();
|
|
Taro.hideLoading();
|
|
if (res.data.code === 200) {
|
|
this.props.otherSettingRefresh(res.data.data);
|
|
|
|
let { otherSetting } = this.state;
|
|
otherSetting.skipAppid = res.data.data.skipAppid;
|
|
otherSetting.skipPath = res.data.data.skipPath;
|
|
otherSetting.sysVersion = res.data.data.sysVersion;
|
|
this.setState({ otherSetting });
|
|
this.goMiniProgram();
|
|
}
|
|
};
|
|
|
|
render() {
|
|
return <View></View>;
|
|
}
|
|
}
|
|
|
|
const mapStateToProps = (state) => ({
|
|
otherSetting: state.otherSetting,
|
|
});
|
|
const mapDispatchToProps = (dispatch) => ({
|
|
otherSettingRefresh(data) {
|
|
dispatch(otherSettingRefresh(data));
|
|
},
|
|
});
|
|
export default connect(mapStateToProps, mapDispatchToProps)(Shop);
|