mirror of
https://github.com/ialley-workshop-open/uni-halo.git
synced 2026-06-12 21:29:31 +08:00
feat: 新增投票功能
This commit is contained in:
+122
-83
@@ -1,93 +1,132 @@
|
||||
<template>
|
||||
<view class="app-page"></view>
|
||||
<view class="app-page flex flex-center">
|
||||
<PluginUnavailable v-if="!uniHaloPluginAvailable" :pluginId="uniHaloPluginId"
|
||||
:error-text="uniHaloPluginAvailableError" />
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
const homePagePath = '/pages/tabbar/home/home'
|
||||
const startPagePath = '/pagesA/start/start'
|
||||
const articleDetailPath = '/pagesA/article-detail/article-detail';
|
||||
export default {
|
||||
computed: {
|
||||
configs() {
|
||||
return this.$tm.vx.getters().getConfigs;
|
||||
}
|
||||
},
|
||||
onLoad: function (options) {
|
||||
uni.$tm.vx.actions('config/fetchConfigs').then(async (res) => {
|
||||
if (options.scene) {
|
||||
if ('' !== options.scene) {
|
||||
const postId = await this.getPostIdByQRCode(options.scene);
|
||||
if (postId) {
|
||||
uni.redirectTo({
|
||||
url: articleDetailPath + `?name=${postId}`,
|
||||
animationType: 'slide-in-right'
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
import pluginAvailable from "@/common/mixins/pluginAvailable.js"
|
||||
|
||||
// #ifdef MP-WEIXIN
|
||||
// uni.$tm.vx.commit('setWxShare', res.shareConfig);
|
||||
// #endif
|
||||
const homePagePath = '/pages/tabbar/home/home'
|
||||
const startPagePath = '/pagesA/start/start'
|
||||
const articleDetailPath = '/pagesA/article-detail/article-detail';
|
||||
|
||||
// 获取mockjson
|
||||
if (res.auditConfig.auditModeEnabled) {
|
||||
if (res.auditConfig.auditModeData.jsonUrl) {
|
||||
await uni.$tm.vx.actions('config/fetchMockJson')
|
||||
} else {
|
||||
const mockJson = uni.$utils.checkJsonAndParse(res.auditConfig.auditModeData.jsonData)
|
||||
if (mockJson.ok) {
|
||||
uni.$tm.vx.commit('config/setMockJson', mockJson.jsonData)
|
||||
}
|
||||
}
|
||||
}
|
||||
const _DEV_ = false
|
||||
const _DEV_TO_TYPE_ = "page"
|
||||
const _DEV_TO_PATH_ = "/pagesA/votes/votes"
|
||||
|
||||
// 进入检查
|
||||
this.fnCheckShowStarted();
|
||||
}).catch((err) => {
|
||||
uni.switchTab({
|
||||
url: homePagePath
|
||||
});
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
fnCheckShowStarted() {
|
||||
if (!this.configs.appConfig.startConfig.enabled) {
|
||||
uni.switchTab({
|
||||
url: homePagePath
|
||||
});
|
||||
return;
|
||||
}
|
||||
export default {
|
||||
mixins: [pluginAvailable],
|
||||
computed: {
|
||||
configs() {
|
||||
return this.$tm.vx.getters().getConfigs;
|
||||
}
|
||||
},
|
||||
async onLoad(options) {
|
||||
// 检查插件
|
||||
this.setPluginId(this.NeedPluginIds.PluginUniHalo)
|
||||
this.setPluginError("阿偶,检测到当前插件没有安装或者启用,无法启动 uni-halo 哦,请联系管理员")
|
||||
if (!await this.checkPluginAvailable()) return
|
||||
|
||||
// 是否每次都显示启动页
|
||||
if (this.configs.appConfig.startConfig.alwaysShow) {
|
||||
uni.removeStorageSync('APP_HAS_STARTED')
|
||||
uni.redirectTo({
|
||||
url: startPagePath
|
||||
});
|
||||
return;
|
||||
}
|
||||
// 获取配置
|
||||
uni.$tm.vx.actions('config/fetchConfigs').then(async (res) => {
|
||||
if (options.scene) {
|
||||
if ('' !== options.scene) {
|
||||
const postId = await this.getPostIdByQRCode(options.scene);
|
||||
if (postId) {
|
||||
uni.redirectTo({
|
||||
url: articleDetailPath + `?name=${postId}`,
|
||||
animationType: 'slide-in-right'
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 只显示一次启动页
|
||||
if (uni.getStorageSync('APP_HAS_STARTED')) {
|
||||
uni.switchTab({
|
||||
url: homePagePath
|
||||
});
|
||||
} else {
|
||||
uni.redirectTo({
|
||||
url: startPagePath
|
||||
});
|
||||
}
|
||||
},
|
||||
async getPostIdByQRCode(key) {
|
||||
const response = await this.$httpApi.v2.getQRCodeInfo(key);
|
||||
if (response) {
|
||||
if (response && response.postId) {
|
||||
return response.postId;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
};
|
||||
// #ifdef MP-WEIXIN
|
||||
// uni.$tm.vx.commit('setWxShare', res.shareConfig);
|
||||
// #endif
|
||||
|
||||
// 获取mockjson
|
||||
if (res.auditConfig.auditModeEnabled) {
|
||||
if (res.auditConfig.auditModeData.jsonUrl) {
|
||||
await uni.$tm.vx.actions('config/fetchMockJson')
|
||||
} else {
|
||||
const mockJson = uni.$utils.checkJsonAndParse(res.auditConfig.auditModeData
|
||||
.jsonData)
|
||||
if (mockJson.ok) {
|
||||
uni.$tm.vx.commit('config/setMockJson', mockJson.jsonData)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 进入检查
|
||||
this.fnCheckShowStarted();
|
||||
}).catch((err) => {
|
||||
uni.switchTab({
|
||||
url: homePagePath
|
||||
});
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
fnCheckShowStarted() {
|
||||
// 本地开发,快速跳转页面,发布请设置 _DEV_ = false
|
||||
if (_DEV_) {
|
||||
if (_DEV_TO_TYPE_ == 'tabbar') {
|
||||
uni.switchTab({
|
||||
url: _DEV_TO_PATH_
|
||||
});
|
||||
} else if (_DEV_TO_TYPE_ == 'page') {
|
||||
uni.navigateTo({
|
||||
url: _DEV_TO_PATH_
|
||||
});
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
if (!this.configs.appConfig.startConfig.enabled) {
|
||||
uni.switchTab({
|
||||
url: homePagePath
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// 是否每次都显示启动页
|
||||
if (this.configs.appConfig.startConfig.alwaysShow) {
|
||||
uni.removeStorageSync('APP_HAS_STARTED')
|
||||
uni.redirectTo({
|
||||
url: startPagePath
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// 只显示一次启动页
|
||||
if (uni.getStorageSync('APP_HAS_STARTED')) {
|
||||
uni.switchTab({
|
||||
url: homePagePath
|
||||
});
|
||||
} else {
|
||||
uni.redirectTo({
|
||||
url: startPagePath
|
||||
});
|
||||
}
|
||||
},
|
||||
async getPostIdByQRCode(key) {
|
||||
const response = await this.$httpApi.v2.getQRCodeInfo(key);
|
||||
if (response) {
|
||||
if (response && response.postId) {
|
||||
return response.postId;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.app-page {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user