461 lines
13 KiB
Vue
461 lines
13 KiB
Vue
<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>
|
||
<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>
|
||
<!-- <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: [{
|
||
imge: 'https://czg-invoicing.oss-cn-beijing.aliyuncs.com/static/item2.png',
|
||
name: '后台管理',
|
||
show: true,
|
||
text: 'houtai',
|
||
url: 'electric/index',
|
||
type: 2 //1是内链 2是外链 类型
|
||
},
|
||
{
|
||
imge: 'https://czg-invoicing.oss-cn-beijing.aliyuncs.com/static/item1.png',
|
||
name: '开票记录',
|
||
show: true,
|
||
text: 'jilu',
|
||
url: 'electric/index',
|
||
type: 1 //1是内链 2是外链 类型
|
||
}, {
|
||
imge: 'https://czg-invoicing.oss-cn-beijing.aliyuncs.com/static/item6.png',
|
||
name: '绑定通知',
|
||
show: true,
|
||
text: 'tongzhi',
|
||
url: 'electric/index',
|
||
type: 1 //1是内链 2是外链 类型
|
||
}, {
|
||
imge: 'https://czg-invoicing.oss-cn-beijing.aliyuncs.com/static/item5.png',
|
||
name: '开票员列表',
|
||
show: true,
|
||
text: 'kaipiaoyuan',
|
||
url: 'electric/index',
|
||
type: 1 //1是内链 2是外链 类型
|
||
}, {
|
||
imge: 'https://czg-invoicing.oss-cn-beijing.aliyuncs.com/static/item7.png',
|
||
name: '开票码',
|
||
show: true,
|
||
text: 'kaipiaoma',
|
||
url: 'electric/index',
|
||
type: 1 //1是内链 2是外链 类型
|
||
}, {
|
||
imge: 'https://czg-invoicing.oss-cn-beijing.aliyuncs.com/static/item8.png',
|
||
name: '审核开票',
|
||
show: true,
|
||
text: 'shenhe',
|
||
url: 'electric/index',
|
||
type: 1 //1是内链 2是外链 类型
|
||
}, {
|
||
imge: 'https://czg-invoicing.oss-cn-beijing.aliyuncs.com/static/item10.png',
|
||
name: '退出登录',
|
||
show: true,
|
||
text: 'tuchu',
|
||
url: 'electric/index',
|
||
type: 3 //1是内链 2是外链 3退出 类型
|
||
}
|
||
]
|
||
};
|
||
},
|
||
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.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
|
||
}
|
||
|
||
// 总?
|
||
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')
|
||
})
|
||
if (res.code == 1 && uni.cache.get('store_status') == 1) {
|
||
this.improveinformationform = res.data.store
|
||
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');
|
||
}
|
||
}
|
||
}
|
||
|
||
},
|
||
// 监听跳转
|
||
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.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() {}
|
||
});
|
||
},
|
||
// 跳转
|
||
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.removeStorageSync('logintoken');
|
||
uni.removeStorageSync('token');
|
||
uni.reLaunch({
|
||
url: '/pages/login/login'
|
||
})
|
||
} else if (res.cancel) {
|
||
console.log('用户点击取消');
|
||
}
|
||
}
|
||
})
|
||
break;
|
||
}
|
||
},
|
||
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);
|
||
},
|
||
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> |