Files
Hfive/pages/index/index.vue
2025-06-16 17:50:50 +08:00

468 lines
12 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<view class="content">
<!-- 占位符导航栏 -->
<navseat :opacity="false" :title="'首页'" :titleshow="true" :iconshow="false" :heightshow="true" :namecolor="'#fff'" iconcolor="#fff"></navseat>
<view class="topswiper" v-if="restype == 2">
<u-swiper :list="swiperlist" height="166"></u-swiper>
<view class="onetopswiper">发票服务</view>
<view class="towtopswiper flex-between" @click="wodekaifapiao">
<view class="flex-colum-start" style="color: #2b378a">我的发票</view>
<view class="towtopswipertow"></view>
</view>
<view style="margin-top: 80rpx; text-align: center; color: #3088fd; position: fixed; bottom: 40rpx; left: 50%; transform: translate(-50%, -50%)" @click="qushangjia()">
我是商家
</view>
</view>
<view class="Box flex-between" v-if="restype == 1 && improveinformation">
<view class="content flex-colum" @click="merchantindex" v-if="store_status == 2">
<image src="https://czg-invoicing.oss-cn-beijing.aliyuncs.com/static/item3.png" mode="aspectFill"></image>
<text>固定开票</text>
</view>
<view class="content flex-colum" @click="indexInvoicing" v-if="store_status == 1">
<image src="https://czg-invoicing.oss-cn-beijing.aliyuncs.com/static/item3.png" mode="aspectFill"></image>
<text>极速开票</text>
</view>
<view class="content flex-colum" v-for="(item, index) in list" @click="clickcontent(item)" :key="index" v-if="item.show">
<image :src="item.imge" mode="aspectFill"></image>
<text>{{ item.name }}</text>
</view>
<!-- <view class="content flex-colum" @click="jumpToMiniProgram" v-if="improveinformation">
<image src="https://czg-invoicing.oss-cn-beijing.aliyuncs.com/static/item8.png" mode="aspectFill"></image>
<text>跳转小程序</text>
</view>
<wx-open-launch-weapp class="content flex-colum" id="launch-btn" @launch="handleLaunch" @error="handleError"
username="gh_fa9286427a5b" path="pages/index/index.html">
<script type="text/wxtag-template">
<style>
.btn { padding: 12px;opacity:0 }
</style>
<button class="btn">打开小程序</button>
</script>
</wx-open-launch-weapp> -->
<view
class="flex-colum"
style="
width: 100%;
margin-top: 80rpx;
text-align: center;
position: fixed;
font-size: 24rpx;
bottom: 40rpx;
left: 50%;
transform: translate(-50%, -50%);
padding: 0 40rpx;
"
>
<text>{{ improveinformationform.store.title }}</text>
<text v-if="improveinformationform.is_tax == 1" style="margin-top: 20rpx; text-align: center; color: #3088fd; margin-left: 10rpx" @click="clickswitch()">
切换商户
</text>
</view>
</view>
<!-- <view class="setClipboardDataclass" @click="setClipboardData" v-if="infos.deviceType != 'pc'">
网页版地址:https://h5-invoice.sxczgkj.cn
</view> -->
<!-- <pdf style="width: 400px; height: 400px;"
src="https://dppt.shaanxi.chinatax.gov.cn:8443/kpfw/fpjfzz/v1/exportDzfpwjEwm?Wjgs=PDF&Jym=124C&Fphm=24612000000037614300&Kprq=20240430152603&Czsj=1714461964182">
</pdf> -->
<!-- <iframe width="100%" height="100%" src="https://dppt.shaanxi.chinatax.gov.cn:8443/kpfw/fpjfzz/v1/exportDzfpwjEwm?Wjgs=PDF&Jym=124C&Fphm=24612000000037614300&Kprq=20240430152603&Czsj=1714461964182" frameborder="0"></iframe> -->
</view>
</template>
<script>
import wx from 'weixin-js-sdk';
import navseat from '@/components/navseat.vue';
export default {
components: {
navseat
},
data() {
return {
restype: 1,
swiperlist: ['https://shuzu-download.oss-cn-shanghai.aliyuncs.com/advertise/2024-05-08-10-52-th-663ae8fc73220.png'],
improveinformation: false,
improveinformationlist: {},
onLoaduserId: '',
infos: uni.getSystemInfoSync(),
store_status: uni.cache.get('store_status'),
list: [],
is_k_list: '', // 开票员列表 1 显示 2不显示
improveinformationform: {
is_tax: '',
store: {
title: ''
}
}
};
},
async onLoad(e) {
await this.$onLaunched;
// // #ifdef MP-WEIXIN
// // 判断商家还是个体
// let restype = await this.api.judgeuseridentity({
// open_id: uni.cache.get('open_id') //临时登录凭证
// })
// console.log(restype.data)
// this.restype = restype.data.type
// if (this.restype == 1 && !uni.getStorageSync('logintoken')) {
// uni.reLaunch({
// url: '/pages/login/login'
// })
// return false;
// }
// // #endif
try {
if (e.restype) {
this.restype = e.restype;
}
} catch (e) {
//TODO handle the exception
}
// try {
// if (e.userId) {
// uni.cache.set('Type', e.type);
// uni.cache.set('userId', e.userId);
// // 传参进来肯定是极速开票固然store_status=1
// uni.cache.set('store_status', 1);
// }
// } catch (e) {
// //TODO handle the exception
// }
if (this.restype == 1) {
if (uni.cache.get('userId')) {
// 总?
let token = await this.api.h5encryption({
store_id: uni.cache.get('userId')
});
if (token.code == 1) {
uni.cache.set('token', token.data.token);
}
let res = await this.api.storestorestatus({
store_id: uni.cache.get('userId')
});
// try {
// this.is_k_list = res.data.is_k_list
// } catch (e) {
// //TODO handle the exception
// }
if (res.code == 1 && uni.cache.get('store_status') == 1) {
this.improveinformationform = res.data;
uni.cache.set('form', this.improveinformationform);
if (res.data.sz_status == 0) {
uni.reLaunch({
url: '/pages/index/information'
});
} else {
this.improveinformation = true;
}
} else {
// 这是固定开票的判断
if (res.data.status == 4) {
//如果极速开票和固定开票共存的情况下 直接跳转到极速开票的上传信息
this.improveinformation = true;
return false;
} else {
if (res.data.status == -1 || res.data.status == 2 || res.data.status == 0) {
uni.pro.navigateTo('merchant/information', res.data.store);
} else {
uni.pro.navigateTo('merchant/index');
}
}
}
} else {
uni.reLaunch({
url: '/pages/login/login'
});
}
} else {
this.restype == 2;
}
},
// 监听跳转
handleLaunch() {
console.log('跳转');
},
// 监听错误
handleError() {
console.log('失败');
},
async onShow() {
try {
let res = await this.api.getrulelist();
this.list = res.data;
} catch (e) {
//TODO handle the exception
}
},
methods: {
async jumpToMiniProgram() {
let res = await this.api.userttwechat({
url: location.href.split('#')[0]
});
console.log(res);
// plus.share.getServices(function (res) {
// var sweixin = null;
// for (var i = 0; i < res.length; i++) {
// var t = res[i];
// if (t.id == 'weixin') {
// sweixin = t;
// }
// }
// if (sweixin) {
// sweixin.launchMiniProgram({
// id:'gh_fa9286427a5b', //这里写你的小程序原始id以gh开头
// type: 0, // //小程序版本 0-正式版; 1-测试版; 2-体验版
// path: 'pages/index/index' //这里是指定页的路径,如需传参直接字符串拼接(首页可以省略)
// });
// }
// });
// wx.config({
// "debug": true,
// "beta": false,
// "jsApiList": ['wx-open-launch-weapp'],
// openTagList: ['wx-open-launch-weapp'], // 跳转小程序时必填
// "appId": res.data.wechat_mini.appId,
// "nonceStr": res.data.wechat_mini.nonceStr,
// "timestamp": res.data.wechat_mini.timestamp,
// "url": res.data.wechat_mini.url,
// "signature": res.data.wechat_mini.signature,
// });
wx.config(res.data.wechat_mini);
// res.data.wechat_mini
// 在wx.ready内调用
wx.ready((res) => {
console.log(res);
this.$nextTick(() => {
let btn = document.getElementById('launch-btn');
btn.addEventListener('launch', (e) => {
console.log('success');
});
btn.addEventListener('error', (e) => {
alert('小程序打开失败');
console.log('fail', e.detail);
});
});
});
wx.error(function (res) {
console.log('err', res);
});
// // #ifdef H5
// // 在H5环境中调用此函数来跳转到小程序
// wx.navigateToMiniProgram({
// appId: 'wxd88fffa983758a30', // 小程序的appid
// path: 'pages/index/index', // 打开的页面路径,若为空则打开首页
// extraData: {}, // 需要传递给小程序的数据
// success(res) {
// // 打开成功的回调
// console.log('跳转成功');
// },
// fail(err) {
// // 打开失败的回调
// console.error('跳转失败', err);
// }
// });
// // jumpToMiniProgram('小程序的appid', '小程序页面路径');
// // #endif
},
async quit() {
uni.showModal({
title: '提示',
content: '确定退出开票系统吗?',
success: async (res) => {
if (res.confirm) {
await this.api.userlogout();
uni.clearStorageSync();
// uni.removeStorageSync('logintoken');
// uni.removeStorageSync('token');
uni.reLaunch({
url: '/pages/login/login'
});
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
},
setClipboardData() {
uni.setClipboardData({
data: 'https://h5-invoice.sxczgkj.cn/?userId=' + uni.cache.get('userId'),
success: function () {}
});
},
clickswitch() {
uni.navigateTo({
url: '/pages/login/switch'
});
},
// 跳转
async clickcontent(item) {
switch (item.type) {
case 1:
uni.pro.navigateTo(item.url);
break;
case 2:
uni.navigateTo({
url: '/pages/webview/webview?tape=' + 1
});
break;
case 3:
uni.showModal({
title: '提示',
content: '确定退出开票系统吗?',
success: async (res) => {
if (res.confirm) {
await this.api.userlogout();
uni.clearStorageSync();
// uni.removeStorageSync('logintoken');
// uni.removeStorageSync('token');
uni.reLaunch({
url: '/pages/login/login'
});
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
break;
}
},
qushangjia() {
uni.showModal({
title: '提示',
content: '确定去商家开票系统吗?',
success: (res) => {
if (res.confirm) {
uni.removeStorageSync('logintoken');
uni.removeStorageSync('token');
uni.reLaunch({
url: '/pages/login/login'
});
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
},
auditbilling() {
uni.pro.navigateTo('index/auditbilling');
},
billingcode() {
uni.pro.navigateTo('index/billingcode');
},
drawer() {
uni.pro.navigateTo('index/drawerlist');
},
merchant() {
uni.pro.navigateTo('index/merchant');
},
information() {
uni.pro.navigateTo('index/information', this.improveinformationform.store);
},
notification() {
uni.pro.navigateTo('index/notification');
},
indexInvoicing() {
uni.pro.navigateTo('index/Invoicing');
},
merchantindex() {
uni.pro.navigateTo('merchant/index');
},
wodekaifapiao() {
uni.pro.navigateTo('hindex/involist');
},
async webview() {
// uni.pro.navigateTo('electric/index');
let res = await this.api.szzpyhurl({
store_id: uni.getStorageSync('userId')
});
if (res) {
uni.pro.navigateTo('webview/webview', {
url: res.data.url,
tape: 1
});
}
},
indexorder() {
uni.pro.navigateTo('index/order');
}
}
};
</script>
<style lang="scss">
page {
background: #f9f9f9;
}
.content {
.setClipboardDataclass {
width: 100%;
text-align: center;
margin-top: 90rpx;
color: #2f87fd;
font-weight: bold;
font-size: 28rpx;
}
.topswiper {
width: 100%;
padding: 32rpx 32rpx 0 32rpx;
.onetopswiper {
font-weight: bold;
margin-top: 32rpx;
}
.towtopswiper {
margin-top: 32rpx;
width: 100%;
padding: 24rpx 32rpx;
border-radius: 16rpx;
background: #d8eafe;
.towtopswipertow {
padding: 24rpx;
color: #fff;
background: #2a3aa1;
font-size: 40rpx;
width: 90rpx;
height: 90rpx;
text-align: center;
line-height: 45rpx;
border-radius: 45rpx;
}
}
}
.Box {
padding: 0rpx 28rpx;
.content {
margin-top: 32rpx;
width: 30%;
height: 218rpx;
background: #ffffff;
image {
width: 60rpx;
height: 60rpx;
}
text {
margin-top: 16rpx;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400;
font-size: 28rpx;
color: #333333;
}
}
}
.Box::after {
content: '';
width: 30%;
display: inline-block;
}
}
</style>