增加登录之前的一次传送
This commit is contained in:
@@ -69,7 +69,7 @@ export default {
|
|||||||
return uni.api.post("store/enterprise", data, false);
|
return uni.api.post("store/enterprise", data, false);
|
||||||
},
|
},
|
||||||
storese(data) {
|
storese(data) {
|
||||||
return uni.api.post("store/se", data);
|
return uni.api.post("store/se", data, false);
|
||||||
},
|
},
|
||||||
storesubinvoicing(data) {
|
storesubinvoicing(data) {
|
||||||
return uni.api.post("store/subinvoicing", data);
|
return uni.api.post("store/subinvoicing", data);
|
||||||
@@ -80,7 +80,7 @@ export default {
|
|||||||
szzpyhurl(data) {
|
szzpyhurl(data) {
|
||||||
return uni.api.post("szzpy/h5url", data);
|
return uni.api.post("szzpy/h5url", data);
|
||||||
},
|
},
|
||||||
szzpygetprovinceno(data) {
|
szzpygetprovinceno(data) {//地区
|
||||||
return uni.api.post("szzpy/getprovinceno", data);
|
return uni.api.post("szzpy/getprovinceno", data);
|
||||||
},
|
},
|
||||||
storebindinginvopush(data) {
|
storebindinginvopush(data) {
|
||||||
@@ -98,4 +98,70 @@ export default {
|
|||||||
h5encryption(data) {
|
h5encryption(data) {
|
||||||
return uni.api.post("store/h5encryption", data);
|
return uni.api.post("store/h5encryption", data);
|
||||||
},
|
},
|
||||||
|
hfivegetstoreinfo(data) {
|
||||||
|
return uni.api.post("hfive/getstoreinfo", data, false);
|
||||||
|
},
|
||||||
|
hfivestoreqy(data) {
|
||||||
|
return uni.api.post("hfive/storeqy", data);
|
||||||
|
},
|
||||||
|
hfiveenterprise(data) {
|
||||||
|
return uni.api.post("hfive/enterprise", data, false);
|
||||||
|
},
|
||||||
|
directinvoicingopen(data) { //数电普票开具
|
||||||
|
return uni.api.post("hfive/directinvoicingopen", data);
|
||||||
|
},
|
||||||
|
newissuedbylist(data) { //开票人列表
|
||||||
|
return uni.api.post("hfive/newissuedbylist", data);
|
||||||
|
},
|
||||||
|
hfivelslbs(data) { //税率标识
|
||||||
|
return uni.api.post("hfive/lslbs", data, false);
|
||||||
|
},
|
||||||
|
addinvoicegoods(data) { //税率标识
|
||||||
|
return uni.api.post("hfive/addinvoicegoods", data);
|
||||||
|
},
|
||||||
|
selectencoding(data) { //行业列表 (选择编码)
|
||||||
|
return uni.api.post("hfive/selectencoding", data, false);
|
||||||
|
},
|
||||||
|
invoicecoding(data) { //行业列表 (选择编码)
|
||||||
|
return uni.api.post("hfive/invoicecoding", data, false);
|
||||||
|
},
|
||||||
|
invoicegoodslist(data) { //商品列表
|
||||||
|
return uni.api.post("hfive/invoicegoodslist", data);
|
||||||
|
},
|
||||||
|
invoicedlist(data) { //商品列表
|
||||||
|
return uni.api.post("hfive/invoicedlist", data, false);
|
||||||
|
},
|
||||||
|
addinvoicegoodsdel(data) { //删除商品
|
||||||
|
return uni.api.post("hfive/addinvoicegoodsdel", data);
|
||||||
|
},
|
||||||
|
setdefault(data) { //商品设为默认
|
||||||
|
return uni.api.post("hfive/setdefault", data);
|
||||||
|
},
|
||||||
|
invoicedorderlist(data) { //订单列表
|
||||||
|
return uni.api.post("hfive/invoicedorderlist", data);
|
||||||
|
},
|
||||||
|
hfivestatuslist(data) { //订单列表
|
||||||
|
return uni.api.post("hfive/statuslist", data);
|
||||||
|
},
|
||||||
|
invoicingrecordsthatneed(data) { //审核开票记录
|
||||||
|
return uni.api.post("hfive/invoicingrecordsthatneed", data);
|
||||||
|
},
|
||||||
|
newissuedbyliststatus(data) { //开票人列表(带状态)
|
||||||
|
return uni.api.post("hfive/newissuedbyliststatus", data);
|
||||||
|
},
|
||||||
|
getsendsms(data) { //获取验证码(登录)
|
||||||
|
return uni.api.post("hfive/getsendsms", data);
|
||||||
|
},
|
||||||
|
sensms(data) { //获取验证码(登录)
|
||||||
|
return uni.api.post("hfive/sensms", data);
|
||||||
|
},
|
||||||
|
accountqrcode(data) { //获取人脸识别二维码
|
||||||
|
return uni.api.post("hfive/accountqrcode", data);
|
||||||
|
},
|
||||||
|
kpdefault(data) { //默认开票人
|
||||||
|
return uni.api.post("hfive/kpdefault", data);
|
||||||
|
},
|
||||||
|
invoiceddetail(data) { //发票/订单详情
|
||||||
|
return uni.api.post("hfive/invoiceddetail", data);
|
||||||
|
},
|
||||||
}
|
}
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
"disableHostCheck" : false,
|
"disableHostCheck" : false,
|
||||||
"proxy" : {
|
"proxy" : {
|
||||||
"/api" : {
|
"/api" : {
|
||||||
"target" : "http://192.168.1.13:8888/api/",
|
"target" : "http://192.168.1.24:8888/api/",
|
||||||
"ws" : false,
|
"ws" : false,
|
||||||
"changeOrigin" : true, //是否跨域
|
"changeOrigin" : true, //是否跨域
|
||||||
"secure" : false, // 设置支持https协议的代理
|
"secure" : false, // 设置支持https协议的代理
|
||||||
|
|||||||
32
pages.json
32
pages.json
@@ -121,7 +121,37 @@
|
|||||||
}, {
|
}, {
|
||||||
"path": "pages/electric/index",
|
"path": "pages/electric/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": ""
|
"navigationBarTitleText": "后台管理"
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
"path": "pages/electric/bluetools",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "蓝票开具"
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
"path": "pages/electric/toexamine",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "已开发票"
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
"path": "pages/electric/issuer",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "开票人"
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
"path": "pages/electric/Invoicedgoods",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "开票商品"
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
"path": "pages/electric/orderinquiry",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "订单查询"
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
"path": "pages/electric/auditrecords",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "审核开票"
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
"path": "pages/webview/webview",
|
"path": "pages/webview/webview",
|
||||||
|
|||||||
784
pages/electric/Invoicedgoods.vue
Normal file
784
pages/electric/Invoicedgoods.vue
Normal file
@@ -0,0 +1,784 @@
|
|||||||
|
<template>
|
||||||
|
<view class="content">
|
||||||
|
<view class="contenttop">
|
||||||
|
<view class="flex-start">
|
||||||
|
<input type="text" placeholder="请输入抬头名称" v-model="form.like" @input="onInput" />
|
||||||
|
<!-- <text @click="popupshow = !popupshow">筛选</text> -->
|
||||||
|
<text@click="itemmodify()">新增</text>
|
||||||
|
</view>
|
||||||
|
<view class="contenttopbox flex-center">
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="contentbox">
|
||||||
|
<view class="contentboxitem" v-for="(item,index) in form.list" :key="index">
|
||||||
|
<view class="contentboxitemtop flex-between">
|
||||||
|
<text>*{{item.abbreviation}}*{{item.title}}</text>
|
||||||
|
<!-- <text>删除</text> -->
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitemtext">
|
||||||
|
<text>商品编码</text>
|
||||||
|
<text>{{item.spbm}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitemtext">
|
||||||
|
<text>商品规格</text>
|
||||||
|
<text>{{item.ggxh}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitemtext">
|
||||||
|
<text>单位</text>
|
||||||
|
<text>{{item.dw}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitem_box flex-start">
|
||||||
|
<view class="contentboxitem_boxitem" @click="clickdelete(item,index)">
|
||||||
|
删除
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitem_boxitem" @click="itemmodify(item)">
|
||||||
|
编辑
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitem_boxitem" @click="setdefault(item)">
|
||||||
|
{{item.is_default == 1?'取消默认':'设为默认'}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<u-loadmore :status="form.status" />
|
||||||
|
<u-popup :show="addshow" @close="addshow = false" mode="center" :round="16">
|
||||||
|
<view class="popupaddclass">
|
||||||
|
<view class="addshowbox">
|
||||||
|
<view class="addshowboxinput flex-colum-start">
|
||||||
|
<text class="addshowboxinputtext">*商品编码</text>
|
||||||
|
<view class="addshowboxinput_inp">
|
||||||
|
<input type="text" placeholder="" v-model="addform.spbm" disabled
|
||||||
|
style="background: #f6f6f6;" />
|
||||||
|
<view class="absolute"
|
||||||
|
@click="addtowshow=!addtowshow,selectencoding({selected: true,pid: ''},'index')">
|
||||||
|
选择商品名称
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="addshowboxinput flex-colum-start">
|
||||||
|
<text class="addshowboxinputtext">编码简称</text>
|
||||||
|
<view class="addshowboxinput_inp">
|
||||||
|
<input type="text" placeholder="" v-model="addform.abbreviation" disabled
|
||||||
|
style="background: #f6f6f6;" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="addshowboxinput flex-colum-start">
|
||||||
|
<text class="addshowboxinputtext">*商品名称</text>
|
||||||
|
<view class="addshowboxinput_inp">
|
||||||
|
<input type="text" placeholder="请输入" v-model="addform.title" />
|
||||||
|
<view class="absolute" @click="titlecoding">
|
||||||
|
赋码
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="addshowboxinput flex-colum-start">
|
||||||
|
<text class="addshowboxinputtext">规格型号</text>
|
||||||
|
<view class="addshowboxinput_inp">
|
||||||
|
<input type="text" placeholder="请输入" v-model="addform.spec" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="addshowboxinput flex-colum-start">
|
||||||
|
<text class="addshowboxinputtext">计量单位</text>
|
||||||
|
<view class="addshowboxinput_inp">
|
||||||
|
<input type="text" placeholder="请输入" v-model="addform.unit" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="addshowboxinput flex-colum-start">
|
||||||
|
<text class="addshowboxinputtext">单价(元)</text>
|
||||||
|
<view class="addshowboxinput_inp flex-between">
|
||||||
|
<input style="width: auto;" type="text" placeholder="请输入" v-model="addform.unit_price" />
|
||||||
|
<!-- <view class="flex-start" style="margin-right: 10rpx;">
|
||||||
|
<text
|
||||||
|
style="font-family: Source Han Sans CN, Source Han Sans CN;font-weight: 400;font-size: 28rpx;color: #333333;margin-right: 16rpx;">含税</text>
|
||||||
|
<u-switch v-model="addform.priceswitch" size="18"></u-switch>
|
||||||
|
</view> -->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="addshowboxinput flex-colum-start" @click="selectshowlslbs = !selectshowlslbs">
|
||||||
|
<text class="addshowboxinputtext">免税类型</text>
|
||||||
|
<view class="addshowboxinput_inp flex-between">
|
||||||
|
<view class="listinput_leftrelative">
|
||||||
|
<text class="leftrelativetext">{{addform.lslbsname}}</text>
|
||||||
|
<u-icon style="padding-right: 16rpx;" :name="selectshowlslbs?'arrow-up':'arrow-down'"
|
||||||
|
color="#999999" size="14"></u-icon>
|
||||||
|
<view class="listinput_leftabsolute" v-if="selectshowlslbs">
|
||||||
|
<view v-for="(item,index) in lslbslist.lslbs" :key="index"
|
||||||
|
:class="addform.lslbs == item.id?'class':''" @click="taxexempttype(item,index)">
|
||||||
|
{{ item.name }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="addshowboxinput flex-colum-start"
|
||||||
|
@click="taxrateselectionshow = !taxrateselectionshow">
|
||||||
|
<text class="addshowboxinputtext">*税率</text>
|
||||||
|
<view class="addshowboxinput_inp flex-between">
|
||||||
|
<view class="listinput_leftrelative">
|
||||||
|
<text class="leftrelativetext">{{addform.tax_ratename}}</text>
|
||||||
|
<u-icon style="padding-right: 16rpx;"
|
||||||
|
:name="taxrateselectionshow?'arrow-up':'arrow-down'" color="#999999"
|
||||||
|
size="14"></u-icon>
|
||||||
|
<view class="listinput_leftabsolute" v-if="taxrateselectionshow">
|
||||||
|
<view v-for="(item,index) in lslbslist.taxrateselection" :key="index"
|
||||||
|
:class="addform.tax_rate == item.id?'class':''"
|
||||||
|
@click="taxrateselectiontype(item,index)">
|
||||||
|
{{ item.name }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="addshowboxinput flex-colum-start" @click="zzstsglshow = !zzstsglshow">
|
||||||
|
<text class="addshowboxinputtext">优惠政策类型</text>
|
||||||
|
<view class="addshowboxinput_inp flex-between">
|
||||||
|
<view class="listinput_leftrelative">
|
||||||
|
<text class="leftrelativetext">{{addform.zzstsgl}}</text>
|
||||||
|
<u-icon style="padding-right: 16rpx;" :name="zzstsglshow?'arrow-up':'arrow-down'"
|
||||||
|
color="#999999" size="14"></u-icon>
|
||||||
|
<view class="listinput_leftabsolute" v-if="zzstsglshow">
|
||||||
|
<view v-for="(item,index) in lslbslist.zzstsgl" :key="index"
|
||||||
|
:class="addform.zzstsgl == item.id?'class':''" @click="zzstsgltype(item,index)">
|
||||||
|
{{ item.name }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view
|
||||||
|
style="margin:32rpx 0 32rpx auto;width: 112rpx;height: 56rpx;background: #318AFE;border-radius: 4rpx 4rpx 4rpx 4rpx;font-family: Source Han Sans CN, Source Han Sans CN;font-weight: 400;font-size: 28rpx;color: #FFFFFF;line-height: 56rpx;text-align: center;"
|
||||||
|
@click="addinvoicegoods">
|
||||||
|
保存
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
|
||||||
|
<u-popup :show="addtowshow" @close="addtowshow = false" mode="bottom" :round="16">
|
||||||
|
<view class="addtowshowclass">
|
||||||
|
<view class="addtowshowclasstop">
|
||||||
|
<!-- <text class="addtowshowclassabsolute">x</text> -->
|
||||||
|
商品编码(税局)选择
|
||||||
|
<u-icon class="addtowshowclassabsolutelet" v-if="this.selectencodinglists.length>1"
|
||||||
|
@click="selectencodingicon" name="arrow-left" color="#999999" size="20"></u-icon>
|
||||||
|
<u-icon @click="addtowshow = false" class="addtowshowclassabsolute" name="close" color="#999999"
|
||||||
|
size="20"></u-icon>
|
||||||
|
</view>
|
||||||
|
<view v-if="selectencodingitem.tax_rate">
|
||||||
|
<view class="addtowshowpositionitem flex-between">
|
||||||
|
<view>
|
||||||
|
商品编码
|
||||||
|
</view>
|
||||||
|
<view style="color: #999999;">
|
||||||
|
{{selectencodingitem.pid}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="addtowshowpositionitem flex-between">
|
||||||
|
<view>
|
||||||
|
编码名称
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view style="color: #999999;">
|
||||||
|
{{selectencodingitem.catalog_name}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="addtowshowpositionitem flex-between">
|
||||||
|
<view>
|
||||||
|
编码简称
|
||||||
|
</view>
|
||||||
|
<view style="color: #999999;">
|
||||||
|
{{selectencodingitem.catalog_name_short}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="addtowshowpositionitem flex-between">
|
||||||
|
<view>
|
||||||
|
商品税率
|
||||||
|
</view>
|
||||||
|
<view style="color: #999999;">
|
||||||
|
{{selectencodingitem.tax_rate}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="selecconfirm" @click="selecconfirm">
|
||||||
|
确认选择
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-else class="addtowshowpositionitem flex-between" v-for="(item,index) in selectencodinglist"
|
||||||
|
:key="index" @click="selectencoding(item,index)">
|
||||||
|
<view>
|
||||||
|
{{item.catalog_name}}
|
||||||
|
</view>
|
||||||
|
<view class="flex-start">
|
||||||
|
{{item.tax_rate?item.tax_rate:''}}
|
||||||
|
<u-icon name="arrow-right" color="#999999" size="18"></u-icon>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
addshow: false,
|
||||||
|
addtowshow: false,
|
||||||
|
form: {
|
||||||
|
like: '',
|
||||||
|
page: 1,
|
||||||
|
status: 'loadmore',
|
||||||
|
list: []
|
||||||
|
},
|
||||||
|
addform: {
|
||||||
|
|
||||||
|
},
|
||||||
|
taxrateselectionshow: false, //税率
|
||||||
|
selectshowlslbs: false, //免税类型
|
||||||
|
zzstsglshow: false,
|
||||||
|
lslbslist: {},
|
||||||
|
selectencodingitem: {},
|
||||||
|
selectencodinglists: [], //总数据
|
||||||
|
selectencodinglist: [],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async onLoad() {
|
||||||
|
let {
|
||||||
|
data
|
||||||
|
} = await this.api.hfivelslbs()
|
||||||
|
this.lslbslist = data
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
this.init()
|
||||||
|
},
|
||||||
|
onReachBottom() {
|
||||||
|
if (this.form.status != 'nomore') {
|
||||||
|
this.form.page = ++this.form.page;
|
||||||
|
this.invoicegoodslist()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async clickdelete(item, index) {
|
||||||
|
let res = await this.api.addinvoicegoodsdel({
|
||||||
|
id: item.id
|
||||||
|
})
|
||||||
|
this.form.list.splice(index, 1)
|
||||||
|
|
||||||
|
},
|
||||||
|
// 设置默认
|
||||||
|
async setdefault(item) {
|
||||||
|
let res = await this.api.setdefault({
|
||||||
|
is_default: item.is_default == 0 ? 1 : 0,
|
||||||
|
id: item.id
|
||||||
|
})
|
||||||
|
this.init()
|
||||||
|
},
|
||||||
|
// 初始化
|
||||||
|
init() {
|
||||||
|
this.form.like = ''
|
||||||
|
this.form.page = 1
|
||||||
|
this.form.status = 'loadmore'
|
||||||
|
this.form.list = []
|
||||||
|
this.invoicegoodslist()
|
||||||
|
},
|
||||||
|
// 修改
|
||||||
|
itemmodify(item) {
|
||||||
|
console.log(item)
|
||||||
|
if (item) {
|
||||||
|
this.addform = item
|
||||||
|
this.addform.lslbsname = this.lslbslist.lslbs[item.lslbs].name
|
||||||
|
this.lslbslist.taxrateselection.forEach((i) => {
|
||||||
|
if (i.id == item.tax_rate) {
|
||||||
|
this.addform.tax_ratename = i.name
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.addform = {}
|
||||||
|
}
|
||||||
|
this.addshow = true
|
||||||
|
},
|
||||||
|
//行业列表 (选择编码)列表
|
||||||
|
async selectencoding(item, index) {
|
||||||
|
this.selectencodingitem = {}
|
||||||
|
if (index == 'index') {
|
||||||
|
this.selectencodinglists = []
|
||||||
|
}
|
||||||
|
if (item.selected) {
|
||||||
|
let {
|
||||||
|
data
|
||||||
|
} = await this.api.selectencoding({
|
||||||
|
pid: item.pid
|
||||||
|
})
|
||||||
|
this.selectencodinglist = data
|
||||||
|
this.selectencodinglists.push(this.selectencodinglist) //暂存一个空数组
|
||||||
|
console.log(this.selectencodinglists)
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.selected = false
|
||||||
|
this.selectencodingitem = item
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
//编码简称点击确定
|
||||||
|
selecconfirm() {
|
||||||
|
this.addtowshow = false
|
||||||
|
this.addform.abbreviation = this.selectencodingitem.catalog_name_short
|
||||||
|
this.addform.title = this.selectencodingitem.catalog_name
|
||||||
|
this.addform.spbm = this.selectencodingitem.pid
|
||||||
|
},
|
||||||
|
//返回键
|
||||||
|
selectencodingicon() {
|
||||||
|
this.selectencodingitem = {}
|
||||||
|
this.selectencodinglists.splice(this.selectencodinglists.length - 1, 1)
|
||||||
|
this.selectencodinglist = this.selectencodinglists[this.selectencodinglists.length - 1]
|
||||||
|
},
|
||||||
|
//免税类型
|
||||||
|
taxexempttype(item, index) {
|
||||||
|
console.log(item)
|
||||||
|
this.addform.lslbsname = item.name
|
||||||
|
this.addform.lslbs = item.id
|
||||||
|
},
|
||||||
|
//税率
|
||||||
|
taxrateselectiontype(item, index) {
|
||||||
|
this.addform.tax_ratename = item.name
|
||||||
|
this.addform.tax_rate = item.id
|
||||||
|
},
|
||||||
|
|
||||||
|
//优惠政策类型
|
||||||
|
zzstsgltype(item, index) {
|
||||||
|
this.addform.zzstsglname = item.name
|
||||||
|
this.addform.zzstsgl = item.id
|
||||||
|
},
|
||||||
|
// 搜索
|
||||||
|
onInput(e) {
|
||||||
|
if ([...e.detail.value].length >= 2) {
|
||||||
|
this.form.page = 1
|
||||||
|
this.form.status = 'loadmore'
|
||||||
|
this.form.list = []
|
||||||
|
uni.$u.debounce(this.invoicegoodslist, 500)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//商品列表
|
||||||
|
async invoicegoodslist() {
|
||||||
|
let res = await this.api.invoicegoodslist({
|
||||||
|
page: this.form.page,
|
||||||
|
like: this.form.like
|
||||||
|
})
|
||||||
|
if (this.form.page == 1 && res.data.length == 0) {
|
||||||
|
this.form.list = res.data
|
||||||
|
this.form.status = 'nomore'
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
setTimeout(() => {
|
||||||
|
if (this.form.page == 1) {
|
||||||
|
this.form.list = res.data
|
||||||
|
} else {
|
||||||
|
this.form.list = [...this.form.list, ...res.data]
|
||||||
|
}
|
||||||
|
if (res.data.length < 10) this.form.status = 'nomore';
|
||||||
|
else this.form.status = 'loadmore';
|
||||||
|
}, 500)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 保存
|
||||||
|
async addinvoicegoods() {
|
||||||
|
console.log(this.addform)
|
||||||
|
if (this.addform.title == null || this.addform.title == '') {
|
||||||
|
uni.showToast({
|
||||||
|
title: '请选择商品名称',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (this.addform.spbm == null || this.addform.spbm == '') {
|
||||||
|
uni.showToast({
|
||||||
|
title: '请输入商品编码',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (this.addform.tax_rate == null || this.addform.tax_rate === '') {
|
||||||
|
uni.showToast({
|
||||||
|
title: '请选择税率',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
let res = await this.api.addinvoicegoods({
|
||||||
|
id: this.addform.id,
|
||||||
|
title: this.addform.title,
|
||||||
|
spbm: this.addform.spbm,
|
||||||
|
spec: this.addform.spec,
|
||||||
|
unit: this.addform.unit,
|
||||||
|
unit_price: this.addform.unit_price,
|
||||||
|
tax_rate: this.addform.tax_rate,
|
||||||
|
lslbs: this.addform.lslbs,
|
||||||
|
zzstsgl: this.addform.zzstsgl,
|
||||||
|
priceswitch: this.addform.priceswitch,
|
||||||
|
abbreviation: this.addform.abbreviation,
|
||||||
|
spsl: 1 //初始化数量
|
||||||
|
})
|
||||||
|
this.init()
|
||||||
|
this.addshow = false
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
page {
|
||||||
|
background: #F9F9F9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
.contenttop {
|
||||||
|
width: 100%;
|
||||||
|
background: #FFFFFF;
|
||||||
|
padding: 48rpx 28rpx 32rpx 28rpx;
|
||||||
|
|
||||||
|
.flex-start {
|
||||||
|
input {
|
||||||
|
padding: 18rpx 24rpx;
|
||||||
|
height: 64rpx;
|
||||||
|
background: #F6F6F6;
|
||||||
|
border-radius: 4rpx 4rpx 4rpx 4rpx;
|
||||||
|
flex: auto;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
text {
|
||||||
|
padding: 0 0 0 24rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.contentbox {
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 28rpx;
|
||||||
|
|
||||||
|
.contentboxitem {
|
||||||
|
margin-top: 32rpx;
|
||||||
|
padding: 32rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
||||||
|
|
||||||
|
.contentboxitemtop {
|
||||||
|
text:nth-child(1) {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
text:nth-child(2) {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.contentboxitemtext {
|
||||||
|
margin-top: 24rpx;
|
||||||
|
|
||||||
|
text:nth-child(1) {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
|
||||||
|
text:nth-child(2) {
|
||||||
|
margin-left: 24rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.contentboxitem_box {
|
||||||
|
justify-content: flex-end;
|
||||||
|
|
||||||
|
.contentboxitem_boxitem {
|
||||||
|
margin-left: 12rpx;
|
||||||
|
padding: 8rpx 16rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contentboxitem_boxitem:nth-child(1) {
|
||||||
|
background-color: #faad14;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contentboxitem_boxitem:nth-child(2) {
|
||||||
|
background-color: #5473e8;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contentboxitem_boxitem:nth-child(3) {
|
||||||
|
background-color: #5473e8;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.popupaddclass {
|
||||||
|
|
||||||
|
padding: 32rpx 34rpx;
|
||||||
|
width: 694rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
||||||
|
|
||||||
|
.addshowtop {
|
||||||
|
border-bottom: 2rpx solid #E5E5E5;
|
||||||
|
|
||||||
|
text:nth-child(1) {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
text {
|
||||||
|
padding-bottom: 26rpx;
|
||||||
|
display: inline-block;
|
||||||
|
margin-left: 64rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #318AFE;
|
||||||
|
border-bottom: 1rpx solid #318AFE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.addshowbox {
|
||||||
|
max-height: 750rpx;
|
||||||
|
overflow: auto;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.addshowboxinput {
|
||||||
|
margin-top: 32rpx;
|
||||||
|
|
||||||
|
.addshowboxinputtext {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.addshowboxinput_inp {
|
||||||
|
margin-top: 24rpx;
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
height: 66rpx;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 4rpx 4rpx 4rpx 4rpx;
|
||||||
|
border: 2rpx solid #D9D9D9;
|
||||||
|
|
||||||
|
.listinput_leftrelative {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
flex: auto;
|
||||||
|
height: 100%;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 4rpx 4rpx 4rpx 4rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 26rpx;
|
||||||
|
|
||||||
|
.leftrelativetext {
|
||||||
|
padding: 6rpx 24rpx;
|
||||||
|
color: #6f6f6f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.listinput_leftabsolute {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 999;
|
||||||
|
width: 100%;
|
||||||
|
top: 65rpx;
|
||||||
|
max-height: 250rpx;
|
||||||
|
overflow: auto;
|
||||||
|
background: #fff;
|
||||||
|
border: 1px solid #D9D9D9;
|
||||||
|
|
||||||
|
view {
|
||||||
|
padding: 6rpx 24rpx;
|
||||||
|
color: #6f6f6f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.class {
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333;
|
||||||
|
border-bottom: 1rpx solid #e3d8d8;
|
||||||
|
background: #f1f1f1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 0 16rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.absolute {
|
||||||
|
padding: 8rpx 18rpx;
|
||||||
|
position: absolute;
|
||||||
|
background: #318AFE;
|
||||||
|
border-radius: 4rpx 4rpx 4rpx 4rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
right: 16rpx;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.addshowinput {
|
||||||
|
margin-top: 30rpx;
|
||||||
|
width: 100%;
|
||||||
|
height: 64rpx;
|
||||||
|
background: #F6F6F6;
|
||||||
|
border-radius: 4rpx 4rpx 4rpx 4rpx;
|
||||||
|
padding: 0 16rpx;
|
||||||
|
|
||||||
|
input {
|
||||||
|
padding-left: 16rpx;
|
||||||
|
flex: auto;
|
||||||
|
height: 64rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #999999;
|
||||||
|
line-height: 64rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxaddshowitem {
|
||||||
|
overflow: auto;
|
||||||
|
max-height: 500rpx;
|
||||||
|
|
||||||
|
.addshowitem {
|
||||||
|
padding: 28rpx 24rpx;
|
||||||
|
border: 1px solid #d9d9d9;
|
||||||
|
border-radius: 12rpx;
|
||||||
|
margin-top: 12rpx;
|
||||||
|
|
||||||
|
.addshowitembox {
|
||||||
|
margin-left: 12rpx;
|
||||||
|
width: 80%;
|
||||||
|
|
||||||
|
.addshowitemboxtext {
|
||||||
|
width: 100%;
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 28rpx;
|
||||||
|
overflow: hidden; //超出的文本隐藏
|
||||||
|
text-overflow: ellipsis; //溢出用省略号显示
|
||||||
|
white-space: nowrap; //溢出不换行
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.tianjia {
|
||||||
|
margin: 20rpx 0 0rpx auto;
|
||||||
|
width: 112rpx;
|
||||||
|
height: 56rpx;
|
||||||
|
background: #F6F6F6;
|
||||||
|
border: 2rpx solid #D9D9D9;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
line-height: 56rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.addtowshowclass {
|
||||||
|
height: 750rpx;
|
||||||
|
overflow: auto;
|
||||||
|
padding: 0 24rpx;
|
||||||
|
|
||||||
|
.addtowshowclasstop {
|
||||||
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
padding: 32rpx 0;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.addtowshowclassabsolutelet {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 32rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.addtowshowclassabsolute {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 32rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.selecconfirm {
|
||||||
|
margin: 42rpx auto;
|
||||||
|
width: 524rpx;
|
||||||
|
height: 72rpx;
|
||||||
|
background: #2F87FD;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
line-height: 72rpx;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.addtowshowpositionitem {
|
||||||
|
padding: 24rpx 0;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
border-bottom: 1rpx solid #E5E5E5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
571
pages/electric/auditrecords.vue
Normal file
571
pages/electric/auditrecords.vue
Normal file
@@ -0,0 +1,571 @@
|
|||||||
|
<template>
|
||||||
|
<view class="content">
|
||||||
|
<view class="contenttop">
|
||||||
|
<view class="flex-start">
|
||||||
|
<input type="text" placeholder="请输入抬头名称" v-model="form.user_name" @input="onInput" />
|
||||||
|
<text @click="popupshow = !popupshow">筛选</text>
|
||||||
|
</view>
|
||||||
|
<view class="contenttopbox flex-center">
|
||||||
|
<text @click="form.type = '-1',form.page = '1',form.user_name = '',invoicingrecordsthatneed()"
|
||||||
|
:class="form.type == '-1'?'classtext':''">待处理</text>
|
||||||
|
<text @click="form.type = '1',form.page = '1',form.user_name = '',invoicingrecordsthatneed()"
|
||||||
|
:class="form.type == '1'?'classtext':''">已处理</text>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="contentbox">
|
||||||
|
<view class="contentboxitem" v-for="(item,index) in form.list" :key="index">
|
||||||
|
<view class="contentboxitemtop flex-between">
|
||||||
|
<text>{{item.user_name}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitemtext">
|
||||||
|
<text>发票状态:</text>
|
||||||
|
<text>{{item.status}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitemtext">
|
||||||
|
<text>发票类型:</text>
|
||||||
|
<text>{{item.type}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitemtext">
|
||||||
|
<text>发票金额:</text>
|
||||||
|
<text>{{item.price}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitemtext">
|
||||||
|
<text>创建时间</text>
|
||||||
|
<text>{{item.createtime}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitemtext flex-start" @click="previewImage(item.img)">
|
||||||
|
<text>开票凭证</text>
|
||||||
|
<image :src="item.img" mode="aspectFill"></image>
|
||||||
|
</view>
|
||||||
|
<view v-if="item.status == '-1'" class="contentboxitembutton flex-center">
|
||||||
|
<view class="buttonone" @click="storereviewandinvoicing(item,1)">
|
||||||
|
通过
|
||||||
|
</view>
|
||||||
|
<view class="buttontow" @click="clickconfirmshow = true,no = ''">
|
||||||
|
拒绝
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<u-popup :show="clickconfirmshow" mode="center" :round="10">
|
||||||
|
<view class="popupshow">
|
||||||
|
<view class="Box_box flex-between">
|
||||||
|
<view>拒绝理由:</view>
|
||||||
|
<u--textarea v-model="no" placeholder="请输入拒绝理由"></u--textarea>
|
||||||
|
</view>
|
||||||
|
<view class="content_bottom">
|
||||||
|
<view class="content_bottomone" @click="storereviewandinvoicing(item,6)">
|
||||||
|
确定
|
||||||
|
</view>
|
||||||
|
<view class="content_bottomtow" @click="clickconfirmshow = false,no = ''">
|
||||||
|
取消
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<u-loadmore :status="form.status" />
|
||||||
|
<u-popup :show="popupshow" @close="popupshow = !popupshow" :round="10">
|
||||||
|
<view class="popupshow">
|
||||||
|
<view class="popupshowtop">
|
||||||
|
筛选
|
||||||
|
</view>
|
||||||
|
<view class="popupshowbox">
|
||||||
|
<view class="popupshowboxtitel">
|
||||||
|
按时间筛选
|
||||||
|
</view>
|
||||||
|
<view class="popupshowbox_box flex-between">
|
||||||
|
<view class="popupshowbox_item" v-for="(item,index) in daylist" :key="index"
|
||||||
|
@click="clickday(item,index)" :class="selectshow == index ?'select':''">
|
||||||
|
{{item.name}}
|
||||||
|
</view>
|
||||||
|
<view class="popupshowbox_itemzdy flex-between" v-if="showpickerbox && selectshow == 2">
|
||||||
|
<view class="popupshowbox_item" @click="showpicker=!showpicker,clickshowpicker = 1">
|
||||||
|
{{this.starttime}}
|
||||||
|
</view>
|
||||||
|
-<view class="popupshowbox_item" @click="showpicker=!showpicker,clickshowpicker = 2">
|
||||||
|
{{this.endtime}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="boxboutton flex-between">
|
||||||
|
<view class="boxbouttonitem" @click="reset">
|
||||||
|
重置
|
||||||
|
</view>
|
||||||
|
<view class="boxbouttonitem" @click="clickdetermine">
|
||||||
|
确定
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
<u-datetime-picker :show="showpicker" mode="date" @cancel="showpicker = !showpicker"
|
||||||
|
@confirm="confirmpicker"></u-datetime-picker>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
clickconfirmshow: false,
|
||||||
|
popupshow: false,
|
||||||
|
showpicker: false, //选择时间
|
||||||
|
showpickerbox: false, //是否显示这个盒子
|
||||||
|
clickshowpicker: '',
|
||||||
|
starttime: '', //起始时间
|
||||||
|
endtime: '',
|
||||||
|
selectshow: '', //选中
|
||||||
|
no: '',
|
||||||
|
form: {
|
||||||
|
user_name: '',
|
||||||
|
time: "",
|
||||||
|
page: 1,
|
||||||
|
type: '-1',
|
||||||
|
status: 'loadmore',
|
||||||
|
list: []
|
||||||
|
},
|
||||||
|
daylist: [{
|
||||||
|
id: 1,
|
||||||
|
name: '仅30天'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
name: '近180天'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
name: '自定义'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async onLoad(e) {
|
||||||
|
this.invoicingrecordsthatneed()
|
||||||
|
|
||||||
|
},
|
||||||
|
onReachBottom() {
|
||||||
|
if (this.form.status != 'nomore') {
|
||||||
|
this.form.page = ++this.form.page;
|
||||||
|
this.invoicingrecordsthatneed()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 审核
|
||||||
|
async storereviewandinvoicing(item, i) {
|
||||||
|
let res = await this.api.storereviewandinvoicing({
|
||||||
|
id: item.id,
|
||||||
|
no: this.no,
|
||||||
|
s_type: i
|
||||||
|
})
|
||||||
|
this.reset()
|
||||||
|
},
|
||||||
|
// 查看图片
|
||||||
|
previewImage(url) {
|
||||||
|
uni.previewImage({
|
||||||
|
current: 1,
|
||||||
|
urls: [url]
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 时间
|
||||||
|
clickday(item, index) {
|
||||||
|
const d = new Date()
|
||||||
|
const year = d.getFullYear()
|
||||||
|
let month = d.getMonth() + 1
|
||||||
|
let date = d.getDate()
|
||||||
|
date = date < 10 ? `0${date}` : date
|
||||||
|
switch (index) {
|
||||||
|
case 0:
|
||||||
|
this.starttime = `${(month-1)==0?(year-1):year}-0${(month-1)==0?12:(month-1)}-${date}`
|
||||||
|
this.endtime = `${year}-0${month}-${date}`
|
||||||
|
this.showpickerbox = false
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
this.starttime = `${year}-0${month>6?(month-6):(month+12-6)}-${date}`
|
||||||
|
this.endtime = `${year}-0${month}-${date}`
|
||||||
|
this.showpickerbox = false
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
this.showpickerbox = !this.showpickerbox
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
this.selectshow = index
|
||||||
|
},
|
||||||
|
// 确定时间
|
||||||
|
confirmpicker(e) {
|
||||||
|
console.log(this.clickshowpicker, uni.$u.timeFrom(e.value, 'yyyy-mm-dd'))
|
||||||
|
if (this.clickshowpicker == 1) {
|
||||||
|
this.starttime = uni.$u.timeFrom(e.value, 'yyyy-mm-dd')
|
||||||
|
}
|
||||||
|
if (this.clickshowpicker == 2) {
|
||||||
|
this.endtime = uni.$u.timeFrom(e.value, 'yyyy-mm-dd')
|
||||||
|
}
|
||||||
|
this.showpicker = !this.showpicker
|
||||||
|
},
|
||||||
|
// 确定
|
||||||
|
clickdetermine() {
|
||||||
|
if (!this.starttime == '' || !this.endtime == '') {
|
||||||
|
this.form.time = `${this.starttime} 00:00:00,${this.endtime} 00:00:00`
|
||||||
|
}
|
||||||
|
this.popupshow = false
|
||||||
|
this.invoicingrecordsthatneed()
|
||||||
|
},
|
||||||
|
// 重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
user_name: '',
|
||||||
|
time: "",
|
||||||
|
page: 1,
|
||||||
|
type: '-1',
|
||||||
|
status: 'loadmore',
|
||||||
|
list: []
|
||||||
|
}
|
||||||
|
this.popupshow = false
|
||||||
|
this.invoicingrecordsthatneed()
|
||||||
|
},
|
||||||
|
// 搜索
|
||||||
|
onInput(e) {
|
||||||
|
if ([...e.detail.value].length >= 2) {
|
||||||
|
this.form.page = 1
|
||||||
|
this.form.list = []
|
||||||
|
uni.$u.debounce(this.invoicingrecordsthatneed, 500)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 列表
|
||||||
|
async invoicingrecordsthatneed() {
|
||||||
|
this.form.status = 'loading';
|
||||||
|
let res = await this.api.invoicingrecordsthatneed({
|
||||||
|
user_name: this.form.user_name,
|
||||||
|
time: this.form.time,
|
||||||
|
page: this.form.page,
|
||||||
|
status: this.form.type,
|
||||||
|
})
|
||||||
|
if (this.form.page == 1 && res.data.length == 0) {
|
||||||
|
this.form.list = res.data
|
||||||
|
this.form.status = 'nomore'
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
setTimeout(() => {
|
||||||
|
if (this.form.page == 1) {
|
||||||
|
this.form.list = res.data
|
||||||
|
} else {
|
||||||
|
this.form.list = [...this.form.list, ...res.data]
|
||||||
|
}
|
||||||
|
if (res.data.length < 10) this.form.status = 'nomore';
|
||||||
|
else this.form.status = 'loadmore';
|
||||||
|
}, 500)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
page {
|
||||||
|
background: #F9F9F9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
.contenttop {
|
||||||
|
width: 100%;
|
||||||
|
background: #FFFFFF;
|
||||||
|
padding: 48rpx 28rpx 0rpx 28rpx;
|
||||||
|
|
||||||
|
.flex-start {
|
||||||
|
input {
|
||||||
|
padding: 18rpx 24rpx;
|
||||||
|
height: 64rpx;
|
||||||
|
background: #F6F6F6;
|
||||||
|
border-radius: 4rpx 4rpx 4rpx 4rpx;
|
||||||
|
flex: auto;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
text {
|
||||||
|
padding: 0 0 0 24rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.contenttopbox {
|
||||||
|
text {
|
||||||
|
width: 33%;
|
||||||
|
text-align: center;
|
||||||
|
padding: 32rpx 0 24rpx 0;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.classtext {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
width: 30%;
|
||||||
|
border-bottom: 5rpx solid #318AFE;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
content: '';
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.popupshow {
|
||||||
|
padding: 0 28rpx;
|
||||||
|
|
||||||
|
.popupshowtop {
|
||||||
|
margin-top: 32rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popupshowbox {
|
||||||
|
.popupshowboxtitel {
|
||||||
|
margin-top: 32rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popupshowbox_box {
|
||||||
|
.popupshowbox_item {
|
||||||
|
margin-top: 24rpx;
|
||||||
|
width: 176rpx;
|
||||||
|
height: 56rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 28rpx 28rpx 28rpx 28rpx;
|
||||||
|
border: 2rpx solid #D9D9D9;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 56rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: '';
|
||||||
|
width: 176rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select {
|
||||||
|
border: 1px solid #1b00ff;
|
||||||
|
color: #0600ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popupshowbox_itemzdy {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.popupshowbox_item {
|
||||||
|
margin-top: 24rpx;
|
||||||
|
width: 40%;
|
||||||
|
height: 56rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 28rpx 28rpx 28rpx 28rpx;
|
||||||
|
border: 2rpx solid #D9D9D9;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 56rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxboutton {
|
||||||
|
margin: 400rpx 0 50rpx 0;
|
||||||
|
|
||||||
|
.boxbouttonitem {
|
||||||
|
width: 330rpx;
|
||||||
|
height: 72rpx;
|
||||||
|
border-radius: 50rpx 50rpx 50rpx 50rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxbouttonitem:nth-child(1) {
|
||||||
|
border: 2rpx solid #D9D9D9;
|
||||||
|
background: #FFFFFF;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #333333;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 72rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxbouttonitem:nth-child(2) {
|
||||||
|
background: #2F87FD;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 72rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.contentbox {
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 28rpx;
|
||||||
|
|
||||||
|
.contentboxitem {
|
||||||
|
margin-top: 32rpx;
|
||||||
|
padding: 32rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
||||||
|
|
||||||
|
.contentboxitemtop {
|
||||||
|
text:nth-child(1) {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
text:nth-child(2) {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #F39D52;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.contentboxitemtext {
|
||||||
|
margin-top: 24rpx;
|
||||||
|
|
||||||
|
text:nth-child(1) {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
|
||||||
|
text:nth-child(2) {
|
||||||
|
margin-left: 24rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
image {
|
||||||
|
margin-left: 24rpx;
|
||||||
|
width: 158rpx;
|
||||||
|
height: 94rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
||||||
|
border: 2rpx solid #D9D9D9;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.contentboxitembutton {
|
||||||
|
margin-top: 32rpx;
|
||||||
|
|
||||||
|
.buttonone {
|
||||||
|
width: 244rpx;
|
||||||
|
height: 72rpx;
|
||||||
|
background: #2F87FD;
|
||||||
|
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 72rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttontow {
|
||||||
|
margin-left: 32rpx;
|
||||||
|
width: 244rpx;
|
||||||
|
height: 72rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
||||||
|
border: 2rpx solid #707070;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 72rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.popupshow {
|
||||||
|
width: 600rpx;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
|
||||||
|
.Box_box {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
text-align: right;
|
||||||
|
padding: 24rpx;
|
||||||
|
border-bottom: 1px solid #e5e5e5;
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content_bottom {
|
||||||
|
margin: 70rpx auto 60rpx auto;
|
||||||
|
width: 70%;
|
||||||
|
height: 84rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.content_bottomone {
|
||||||
|
padding: 16rpx 60rpx;
|
||||||
|
background: #288EFB;
|
||||||
|
border-radius: 32rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content_bottomtow {
|
||||||
|
padding: 16rpx 60rpx;
|
||||||
|
background: red;
|
||||||
|
border-radius: 32rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
1860
pages/electric/bluetools.vue
Normal file
1860
pages/electric/bluetools.vue
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,57 +1,75 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="content">
|
<view class="content">
|
||||||
<view class="topswiper">
|
<view class="topswiper">
|
||||||
<u-swiper :list="swiperlist" height="336"></u-swiper>
|
<u-swiper :list="swiperlist" height="166"></u-swiper>
|
||||||
</view>
|
</view>
|
||||||
<view class="contentgrid flex-between">
|
<view class="contentgrid flex-between">
|
||||||
<view class="flex-colum" v-for="(item,index) in 8" :key="index" @click="clicknavigateTo(item,index)">
|
<view class="flex-colum" v-for="(item,index) in blueticket.img" :key="index"
|
||||||
<image src="@/static/logo.png" mode=""></image>
|
@click="clicknavigateTo(item,index)">
|
||||||
<text>蓝票开具</text>
|
<image :src="item.img" mode="aspectFill"></image>
|
||||||
|
<text>{{item.title}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="contentlist" v-for="(item,index) in 3" :key="index">
|
<view class="contentlist">
|
||||||
<view class="contentlisttitle">
|
<view class="contentlisttitle">
|
||||||
企业信息
|
企业信息
|
||||||
</view>
|
</view>
|
||||||
<view class="contentlistitem flex-between" style="margin-top: 32rpx;">
|
<view class="contentlistitem flex-between" style="margin-top: 32rpx;">
|
||||||
<text class="contentlistitemone">企业名称</text>
|
<text class="contentlistitemone">企业名称</text>
|
||||||
<text class="contentlistitemtow">西安市高新区范家大院饭馆</text>
|
<text class="contentlistitemtow">{{blueticket.store.title}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="contentlistitem flex-between">
|
<view class="contentlistitem flex-between">
|
||||||
<text class="contentlistitemone">纳税人税号</text>
|
<text class="contentlistitemone">纳税人税号</text>
|
||||||
<text class="contentlistitemtow">92610131MA6W52456</text>
|
<text class="contentlistitemtow">{{blueticket.store.creditCode}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="contentlistitem flex-between">
|
<view class="contentlistitem flex-between">
|
||||||
<text class="contentlistitemone">纳税人性质</text>
|
<text class="contentlistitemone">地址</text>
|
||||||
<text class="contentlistitemtow">——</text>
|
<text class="contentlistitemtow">{{blueticket.store.businessAddress}}</text>
|
||||||
</view>
|
|
||||||
<view class="contentlistitem flex-between">
|
|
||||||
<text class="contentlistitemone">当前默认开票账号</text>
|
|
||||||
<text class="contentlistitemtow">9261013115897462</text>
|
|
||||||
</view>
|
|
||||||
<view class="contentlistitem flex-between">
|
|
||||||
<text class="contentlistitemone">授信类别</text>
|
|
||||||
<text class="contentlistitemtow">——</text>
|
|
||||||
</view>
|
|
||||||
<view class="contentlistitem flex-between">
|
|
||||||
<text class="contentlistitemone">预警级别</text>
|
|
||||||
<text class="contentlistitemtow">——</text>
|
|
||||||
</view>
|
|
||||||
<view class="contentlistitem flex-between">
|
|
||||||
<text class="contentlistitemone">数电业务到期时间</text>
|
|
||||||
<text class="contentlistitemtow">2025-05-31</text>
|
|
||||||
</view>
|
|
||||||
<view class="contentlistitem flex-between">
|
|
||||||
<text class="contentlistitemone">报税截止日期</text>
|
|
||||||
<text class="contentlistitemtow">2025-05-31</text>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="contentbotton">
|
<view class="contentlist">
|
||||||
|
<view class="contentlisttitle">
|
||||||
|
蓝票数据概况
|
||||||
|
</view>
|
||||||
|
<view class="contentlistitem flex-between">
|
||||||
|
<text class="contentlistitemone">发票合计金额</text>
|
||||||
|
<text class="contentlistitemtow">{{blueticket.xj.fphjje}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentlistitem flex-between">
|
||||||
|
<text class="contentlistitemone">发票合计税额</text>
|
||||||
|
<text class="contentlistitemtow">{{blueticket.xj.fphjse}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentlistitem flex-between">
|
||||||
|
<text class="contentlistitemone">剩余授信额度</text>
|
||||||
|
<text class="contentlistitemtow">{{blueticket.xj.sysxed}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentlistitem flex-between">
|
||||||
|
<text class="contentlistitemone">剩余纸质发票张数</text>
|
||||||
|
<text class="contentlistitemtow">{{blueticket.xj.syzzfpzs}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentlistitem flex-between">
|
||||||
|
<text class="contentlistitemone">已开具蓝票张数</text>
|
||||||
|
<text class="contentlistitemtow">{{blueticket.xj.ykjlpzs}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentlistitem flex-between">
|
||||||
|
<text class="contentlistitemone">已使用发票授信额度</text>
|
||||||
|
<text class="contentlistitemtow">{{blueticket.xj.ysyfpsxed}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentlistitem flex-between">
|
||||||
|
<text class="contentlistitemone">已使用发票张数</text>
|
||||||
|
<text class="contentlistitemtow">{{blueticket.xj.ysyfpzs}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentlistitem flex-between">
|
||||||
|
<text class="contentlistitemone">总授信额度</text>
|
||||||
|
<text class="contentlistitemtow">{{blueticket.xj.zsxed}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- <view class="contentbotton">
|
||||||
<view class="contentbottontitle flex-between">
|
<view class="contentbottontitle flex-between">
|
||||||
<text class="contentbottontitleone">最近开票申请</text>
|
<text class="contentbottontitleone">最近开票申请</text>
|
||||||
<text class="contentbottontitletow">更多申请</text>
|
<text class="contentbottontitletow">更多申请</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view> -->
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -59,71 +77,47 @@
|
|||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
swiperlist: [{
|
swiperlist: [
|
||||||
image: 'https://cdn.uviewui.com/uview/swiper/1.jpg',
|
'https://shuzu-download.oss-cn-shanghai.aliyuncs.com/advertise/2024-05-08-10-52-th-663ae8fc73220.png'
|
||||||
title: '昨夜星辰昨夜风,画楼西畔桂堂东'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
image: 'https://cdn.uviewui.com/uview/swiper/2.jpg',
|
|
||||||
title: '身无彩凤双飞翼,心有灵犀一点通'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
image: 'https://cdn.uviewui.com/uview/swiper/3.jpg',
|
|
||||||
title: '谁念西风独自凉,萧萧黄叶闭疏窗,沉思往事立残阳'
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
|
enterprise: {}, //企业
|
||||||
|
blueticket: {
|
||||||
|
xj: '',
|
||||||
|
store: ''
|
||||||
|
} //蓝票
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async onLoad(e) {
|
async onLoad(e) {
|
||||||
// await this.$onLaunched;
|
let data = await this.api.hfivestoreqy()
|
||||||
// alert(location.href.split('#')[0])
|
this.blueticket = data.data
|
||||||
if (e.userId) {
|
|
||||||
// this.onLoaduserId = e.userId
|
|
||||||
uni.cache.set('Type', e.type);
|
|
||||||
uni.cache.set('userId', e.userId);
|
|
||||||
}
|
|
||||||
let token = await this.api.h5encryption({
|
|
||||||
store_id: uni.cache.get('userId')
|
|
||||||
})
|
|
||||||
if (token.code == 1) {
|
|
||||||
uni.cache.set('token', token.data.token);
|
|
||||||
}
|
|
||||||
console.log(token)
|
|
||||||
let res = await this.api.storestorestatus({
|
|
||||||
store_id: uni.cache.get('userId')
|
|
||||||
})
|
|
||||||
if (res.code == 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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
clicknavigateTo(item, index) {
|
clicknavigateTo(item, index) {
|
||||||
console.log(index)
|
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case '0':
|
case 0:
|
||||||
uni.pro.navigateTo('webview/webview', {
|
// uni.pro.navigateTo('webview/webview', {
|
||||||
url: c
|
// url: c
|
||||||
});
|
// });
|
||||||
|
uni.pro.navigateTo('electric/bluetools');
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
uni.pro.navigateTo('bluetools/index');
|
uni.pro.navigateTo('electric/toexamine');
|
||||||
// uni.pro.navigateTo(b, {
|
// uni.pro.navigateTo(b, {
|
||||||
// url: c
|
// url: c
|
||||||
// });
|
// });
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
uni.pro.navigateTo('issuer/index');
|
uni.pro.navigateTo('electric/Invoicedgoods');
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
uni.pro.navigateTo('toexamine/index');
|
uni.pro.navigateTo('electric/orderinquiry');
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
uni.pro.navigateTo('electric/auditrecords');
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
uni.pro.navigateTo('electric/issuer');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -151,6 +145,12 @@
|
|||||||
background: #FFFFFF;
|
background: #FFFFFF;
|
||||||
border-radius: 24px 24px 24px 24px;
|
border-radius: 24px 24px 24px 24px;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: "";
|
||||||
|
width: 25%;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
.flex-colum {
|
.flex-colum {
|
||||||
width: 25%;
|
width: 25%;
|
||||||
margin-top: 36rpx;
|
margin-top: 36rpx;
|
||||||
@@ -195,6 +195,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.contentlistitemtow {
|
.contentlistitemtow {
|
||||||
|
width: 55%;
|
||||||
|
text-align: right;
|
||||||
|
overflow: hidden; //超出的文本隐藏
|
||||||
|
text-overflow: ellipsis; //溢出用省略号显示
|
||||||
|
white-space: nowrap; //溢出不换行
|
||||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
|
|||||||
774
pages/electric/issuer.vue
Normal file
774
pages/electric/issuer.vue
Normal file
@@ -0,0 +1,774 @@
|
|||||||
|
<template>
|
||||||
|
<view class="content">
|
||||||
|
<view class="contentitem" v-for="(item,index) in form.list" :key="index">
|
||||||
|
<view class="contentitemtop flex-between">
|
||||||
|
<text>{{item.name}}</text>
|
||||||
|
<text v-if="item.dlzh_status == 0">无需登录</text>
|
||||||
|
<text v-if="item.dlzh_status == 1">需要登录</text>
|
||||||
|
<text v-if="item.dlzh_status == 9">未知</text>
|
||||||
|
</view>
|
||||||
|
<text v-if="item.is_default == 1"
|
||||||
|
style="background: #1989fa;color: #fff; padding:0 6rpx; border-radius: 10rpx;font-size: 24rpx;">默认</text>
|
||||||
|
<view class="contentitemtext">
|
||||||
|
电局账号: {{item.dlzh}}
|
||||||
|
</view>
|
||||||
|
<view class="contentitemtext">
|
||||||
|
登录身份: {{item.k_identity}}
|
||||||
|
</view>
|
||||||
|
<view class="contentitemtext">
|
||||||
|
手机号码: {{item.phone}}
|
||||||
|
</view>
|
||||||
|
<view class="contentitembotton flex-between">
|
||||||
|
<view class="flex-colum" @click="login(item,'登录')">
|
||||||
|
<image src="https://czg-invoicing.oss-cn-beijing.aliyuncs.com/issuername5.png" mode="aspectFill">
|
||||||
|
</image>
|
||||||
|
<text>登录</text>
|
||||||
|
</view>
|
||||||
|
<view class="flex-colum" @click="renlian(item,'人脸')">
|
||||||
|
<image src="https://czg-invoicing.oss-cn-beijing.aliyuncs.com/issuername1.png" mode="aspectFill">
|
||||||
|
</image>
|
||||||
|
<text>人脸</text>
|
||||||
|
</view>
|
||||||
|
<view class="flex-colum" @click="modify(item,'修改')">
|
||||||
|
<image src="https://czg-invoicing.oss-cn-beijing.aliyuncs.com/issuername2.png" mode="aspectFill">
|
||||||
|
</image>
|
||||||
|
<text>修改</text>
|
||||||
|
</view>
|
||||||
|
<view class="flex-colum" @click="setdefault(item,'默认')">
|
||||||
|
<image src="https://czg-invoicing.oss-cn-beijing.aliyuncs.com/issuername3.png" mode="aspectFill">
|
||||||
|
</image>
|
||||||
|
<text>默认</text>
|
||||||
|
</view>
|
||||||
|
<!-- <view class="flex-colum">
|
||||||
|
<image src="https://czg-invoicing.oss-cn-beijing.aliyuncs.com/issuername4.png" mode="aspectFill">
|
||||||
|
</image>
|
||||||
|
<text>解绑</text>
|
||||||
|
</view> -->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<u-popup :show="canvasshow" @close="canvasshow = !canvasshow" mode="center" :round="14">
|
||||||
|
<view class="messagebox">
|
||||||
|
<view style="text-align: center; margin: 16rpx;">
|
||||||
|
{{formCode.text}}
|
||||||
|
</view>
|
||||||
|
<view class="Box_item_content_T flex-center" style="padding: 16rpx;">
|
||||||
|
<view style="width:242px; height:242px;"><canvas style="width:100%; height:100%;" id="qrcode"
|
||||||
|
ref="qrcode" canvas-id="qrcode"></canvas></view>
|
||||||
|
</view>
|
||||||
|
<view v-if="textshow == '人脸'"
|
||||||
|
style="padding:10rpx 0; text-align: center; margin: 32rpx auto 0rpx auto; background: #1989fa; width: 200rpx;color: #fff; border-radius: 30rpx;"
|
||||||
|
@click="reset">
|
||||||
|
已认证
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
<u-popup :show="messageshow" @close="messageshow = !messageshow" mode="center" :round="14">
|
||||||
|
<view class="messagebox">
|
||||||
|
<view class="messageboxtop">
|
||||||
|
短信验证
|
||||||
|
</view>
|
||||||
|
<view class="messageboxtoptext">
|
||||||
|
成功:验证码已发送到手机号:{{codephone}}
|
||||||
|
</view>
|
||||||
|
<view class="messageboxtoptext flex-between">
|
||||||
|
<input type="mobile" v-model="codelang" placeholder="请输入短信验证码" maxlength="6" />
|
||||||
|
<view class="repeats">
|
||||||
|
<view v-if="showText == true"
|
||||||
|
style="padding: 8rpx 16rpx 6rpx 16rpx;background: #288EFB; border-radius: 15rpx;color: #fff;"
|
||||||
|
@click="clickfasongyanzhengm">{{ Recapture }}</view>
|
||||||
|
<view v-else
|
||||||
|
style="color: #ccc; background-color: #f9f9f9; padding: 8rpx 16rpx 6rpx 16rpx; border-radius: 15rpx;">
|
||||||
|
{{ second }}s重新发送
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="box" @click="queding">
|
||||||
|
确定
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
<u-popup :show="showpopup" @close="showpopup = !showpopup" mode="center" :round="14">
|
||||||
|
<view class="popupbox">
|
||||||
|
<view class="popupboxtop">
|
||||||
|
开票人登记信息
|
||||||
|
<u-icon style="position: absolute;right:22rpx;top: 40rpx; " name="close" color="#999999"
|
||||||
|
@click="showpopup = false" size="20"></u-icon>
|
||||||
|
</view>
|
||||||
|
<view class="popupboxform">
|
||||||
|
<view class="addshowboxinput flex-colum-start" @click="selectshowlslbs = !selectshowlslbs">
|
||||||
|
<text class="addshowboxinputtext">*选择等录身份</text>
|
||||||
|
<view class="addshowboxinput_inp flex-between">
|
||||||
|
<view class="listinput_leftrelative">
|
||||||
|
<text class="leftrelativetext">{{addform.dlsfname}}</text>
|
||||||
|
<u-icon style="padding-right: 16rpx;" :name="selectshowlslbs?'arrow-up':'arrow-down'"
|
||||||
|
color="#999999" size="14"></u-icon>
|
||||||
|
<view class="listinput_leftabsolute" v-if="selectshowlslbs">
|
||||||
|
<view v-for="(item,index) in columnsdlsf" :key="index"
|
||||||
|
:class="addform.dlsf == item.id?'class':''" @click="taxexempttype(item,index)">
|
||||||
|
{{ item.name }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="addshowboxinput flex-colum-start">
|
||||||
|
<text class="addshowboxinputtext">*电子税务局账号</text>
|
||||||
|
<view class="addshowboxinput_inp">
|
||||||
|
<input type="text" disabled style="background: #f6f6f6;" placeholder="请输入"
|
||||||
|
v-model="addform.dlzh" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="addshowboxinput flex-colum-start">
|
||||||
|
<text class="addshowboxinputtext">*电子税务局登录密码</text>
|
||||||
|
<view class="addshowboxinput_inp">
|
||||||
|
<input type="text" placeholder="请输入" v-model="addform.dlmm" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="addshowboxinput flex-colum-start">
|
||||||
|
<text class="addshowboxinputtext">*电子税务局地区</text>
|
||||||
|
<view class="addshowboxinput_inp flex-between">
|
||||||
|
<view class="listinput_leftrelative" disabled style="background: #f6f6f6;">
|
||||||
|
<text class="leftrelativetext">{{addform.dqbmname}}</text>
|
||||||
|
<u-icon style="padding-right: 16rpx;" :name="regionshow?'arrow-up':'arrow-down'"
|
||||||
|
color="#999999" size="14"></u-icon>
|
||||||
|
<!-- <view class="listinput_leftabsolute" v-if="regionshow">
|
||||||
|
<view v-for="(item,index) in region" :key="index"
|
||||||
|
:class="addform.region == item.code?'class':''"
|
||||||
|
@click="regionclick(item,index)">
|
||||||
|
{{ item.name }}
|
||||||
|
</view>
|
||||||
|
</view> -->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="addshowboxinput flex-colum-start">
|
||||||
|
<text class="addshowboxinputtext">*办税人姓名</text>
|
||||||
|
<view class="addshowboxinput_inp">
|
||||||
|
<input type="text" placeholder="请输入" v-model="addform.taxname" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="addshowboxinput flex-colum-start">
|
||||||
|
<text class="addshowboxinputtext">*办税人手机号码</text>
|
||||||
|
<view class="addshowboxinput_inp">
|
||||||
|
<input type="text" disabled placeholder="请输入" v-model="addform.taxphone" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="addshowbox_box">
|
||||||
|
<view class="addshowbox_boxitem" @click="showpopup = false">
|
||||||
|
取消
|
||||||
|
</view>
|
||||||
|
<view class="addshowbox_boxitem" @click="szzpyaddinvoicer">
|
||||||
|
保存
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import uQRCode from '@/uni_modules/Sansnn-uQRCode/js_sdk/uqrcode/uqrcode.js'; // npm install uqrcodejs
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
formCode: {
|
||||||
|
text: '',
|
||||||
|
url: 'www.baidu.com'
|
||||||
|
}, //成功后
|
||||||
|
text: 'uQRCode',
|
||||||
|
size: 242,
|
||||||
|
codephone: '', //公共手机号
|
||||||
|
codelang: '', //公共验证码
|
||||||
|
textshow: '', //判断显示那个
|
||||||
|
loginid: '', //公共id
|
||||||
|
showpopup: false,
|
||||||
|
messageshow: false, //短信
|
||||||
|
canvasshow: false, //二维码
|
||||||
|
columnsdlsf: [],
|
||||||
|
selectshowlslbs: false, //免税类型
|
||||||
|
regionshow: false, //省份显示
|
||||||
|
// 注册定时器 初始值
|
||||||
|
second: 60,
|
||||||
|
showText: true,
|
||||||
|
Recapture: '发送验证码',
|
||||||
|
form: {
|
||||||
|
user_name: '',
|
||||||
|
time: "",
|
||||||
|
page: 1,
|
||||||
|
type: '-1',
|
||||||
|
status: 'loadmore',
|
||||||
|
list: []
|
||||||
|
},
|
||||||
|
addform: {},
|
||||||
|
region: [], //省份
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async onLoad() {
|
||||||
|
this.newissuedbyliststatus()
|
||||||
|
let res = await this.api.szzpygetprovinceno()
|
||||||
|
this.region = res.data
|
||||||
|
this.onShowdatadlsf()
|
||||||
|
},
|
||||||
|
onReachBottom() {
|
||||||
|
if (this.form.status != 'nomore') {
|
||||||
|
this.form.page = ++this.form.page;
|
||||||
|
this.invoicingrecordsthatneed()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 设置默认
|
||||||
|
async setdefault(item) {
|
||||||
|
uni.showModal({
|
||||||
|
title: '设置默认开票人',
|
||||||
|
content: `确定设置办税员【${item.name}】为默认吗?`,
|
||||||
|
success: async (res) => {
|
||||||
|
if (res.confirm) {
|
||||||
|
let resdata = await this.api.kpdefault({
|
||||||
|
is_default: item.is_default == 0 ? 1 : 0,
|
||||||
|
id: item.id
|
||||||
|
})
|
||||||
|
if (resdata.code == 1) {
|
||||||
|
this.reset()
|
||||||
|
}
|
||||||
|
} else if (res.cancel) {
|
||||||
|
console.log('用户点击取消');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
// 二维码
|
||||||
|
async merchantStoreshowMerchantStoreReceipt(lane) {
|
||||||
|
// 获取uQRCode实例
|
||||||
|
var qr = new uQRCode();
|
||||||
|
// 设置二维码内容
|
||||||
|
qr.data = this.formCode.url;
|
||||||
|
// 设置二维码大小,必须与canvas设置的宽高一致
|
||||||
|
qr.size = this.size;
|
||||||
|
// 调用制作二维码方法
|
||||||
|
qr.make();
|
||||||
|
// 获取canvas上下文
|
||||||
|
var canvasContext = uni.createCanvasContext('qrcode', this); // 如果是组件,this必须传入
|
||||||
|
// 设置uQRCode实例的canvas上下文
|
||||||
|
qr.canvasContext = canvasContext;
|
||||||
|
// 调用绘制方法将二维码图案绘制到canvas上
|
||||||
|
qr.drawCanvas();
|
||||||
|
},
|
||||||
|
// 人脸
|
||||||
|
renlian(item, textshow) {
|
||||||
|
this.textshow = textshow
|
||||||
|
this.loginid = item.id
|
||||||
|
uni.showModal({
|
||||||
|
title: '人脸验证',
|
||||||
|
content: `确定使用办税员【${item.name}】进行人脸吗?`,
|
||||||
|
success: (res) => {
|
||||||
|
if (res.confirm) {
|
||||||
|
this.accountqrcode()
|
||||||
|
} else if (res.cancel) {
|
||||||
|
console.log('用户点击取消');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 人脸前获取验证码
|
||||||
|
async accountqrcode() {
|
||||||
|
await this.api.accountqrcode({
|
||||||
|
id: this.loginid
|
||||||
|
})
|
||||||
|
this.messageshow = true
|
||||||
|
},
|
||||||
|
//登录获取验证码
|
||||||
|
login(item, textshow) {
|
||||||
|
this.textshow = textshow
|
||||||
|
this.loginid = item.id
|
||||||
|
uni.showModal({
|
||||||
|
title: '登录验证',
|
||||||
|
content: `确定使用办税员【${item.name}】进行登录验证吗?`,
|
||||||
|
success: (res) => {
|
||||||
|
if (res.confirm) {
|
||||||
|
this.getsendsms()
|
||||||
|
} else if (res.cancel) {
|
||||||
|
console.log('用户点击取消');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 登录前获取验证码
|
||||||
|
async getsendsms() {
|
||||||
|
await this.api.getsendsms({
|
||||||
|
id: this.loginid
|
||||||
|
})
|
||||||
|
this.messageshow = true
|
||||||
|
},
|
||||||
|
// 登录成功上传
|
||||||
|
async sensms() {
|
||||||
|
let res = await this.api.sensms({
|
||||||
|
id: this.loginid,
|
||||||
|
code: this.codelang,
|
||||||
|
})
|
||||||
|
if (res.code == 1) {
|
||||||
|
this.formCode = res.data
|
||||||
|
uni.showToast({
|
||||||
|
title: '登录成功',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
this.messageshow = false
|
||||||
|
this.reset() //重置
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//开票员类型列表
|
||||||
|
async onShowdatadlsf() {
|
||||||
|
let res = await this.api.szzpytypeofinvoicer()
|
||||||
|
this.columnsdlsf = res.data
|
||||||
|
},
|
||||||
|
taxexempttype(item, index) {
|
||||||
|
this.addform.dlsfname = item.name
|
||||||
|
this.addform.dlsf = item.id
|
||||||
|
},
|
||||||
|
regionclick(item, index) {
|
||||||
|
this.addform.regionname = item.name
|
||||||
|
this.addform.region = item.code
|
||||||
|
},
|
||||||
|
// 修改
|
||||||
|
modify(item, textshow) {
|
||||||
|
this.textshow = textshow
|
||||||
|
this.addform = item
|
||||||
|
this.addform.taxname = item.name
|
||||||
|
this.addform.taxphone = item.phone
|
||||||
|
this.addform.dlsf = item.dlsf
|
||||||
|
// 税务地区
|
||||||
|
this.region.forEach((i) => {
|
||||||
|
if (i.code == item.dqbm) {
|
||||||
|
this.addform.dqbmname = i.name
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// 开票人类型
|
||||||
|
this.columnsdlsf.forEach((i) => {
|
||||||
|
if (i.id == item.dlsf) {
|
||||||
|
this.addform.dlsfname = i.name
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.showpopup = true
|
||||||
|
},
|
||||||
|
// 修改开票人
|
||||||
|
async szzpyaddinvoicer() {
|
||||||
|
if (this.addform.dlsfname == null || this.addform.dlsfname == '') {
|
||||||
|
uni.showToast({
|
||||||
|
title: '选择等录身份不能为空',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (this.addform.dlmm == null || this.addform.dlmm == '') {
|
||||||
|
uni.showToast({
|
||||||
|
title: '电子税务局登录密码不能为空',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (this.addform.taxname == null || this.addform.taxname == '') {
|
||||||
|
uni.showToast({
|
||||||
|
title: '办税人姓名不能为空',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (this.addform.taxphone == null || this.addform.taxphone == '') {
|
||||||
|
uni.showToast({
|
||||||
|
title: '办税人手机号码不能为空',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
this.addform.taxphone = this.codephone
|
||||||
|
let res = await this.api.szzpyaddinvoicer(this.addform)
|
||||||
|
if (res.code == 1) {
|
||||||
|
this.showpopup = false
|
||||||
|
this.messageshow = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 修改后的下一步
|
||||||
|
async szzpyaddinvoicersendsms() {
|
||||||
|
this.codelang = this.addform.code
|
||||||
|
let res = await this.api.szzpyaddinvoicersendsms(this.addform)
|
||||||
|
if (res.code == 1) {
|
||||||
|
this.showpopup = false
|
||||||
|
uni.showToast({
|
||||||
|
title: '修改成功',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
this.messageshow = false
|
||||||
|
this.reset() //重置
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//再次获取验证码
|
||||||
|
async clickfasongyanzhengm() {
|
||||||
|
switch (this.textshow) {
|
||||||
|
case '修改':
|
||||||
|
await this.szzpyaddinvoicer()
|
||||||
|
break;
|
||||||
|
case '登录':
|
||||||
|
await this.getsendsms()
|
||||||
|
break;
|
||||||
|
case '人脸':
|
||||||
|
await this.accountqrcode()
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
this.yanzhengm() //验证码
|
||||||
|
},
|
||||||
|
//点击确定
|
||||||
|
queding() {
|
||||||
|
switch (this.textshow) {
|
||||||
|
case '修改':
|
||||||
|
this.szzpyaddinvoicersendsms()
|
||||||
|
break;
|
||||||
|
case '登录':
|
||||||
|
this.sensms()
|
||||||
|
break;
|
||||||
|
case '人脸':
|
||||||
|
this.sensms()
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
// 验证码
|
||||||
|
yanzhengm() {
|
||||||
|
uni.showToast({
|
||||||
|
title: '验证码发送成功',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
// 定时器
|
||||||
|
this.showText = false;
|
||||||
|
this.Recapture = '重新获取';
|
||||||
|
var interval = setInterval(() => {
|
||||||
|
let times = --this.second;
|
||||||
|
this.second = times < 10 ? '0' + times : times; //小于10秒补 0
|
||||||
|
}, 1000);
|
||||||
|
setTimeout(() => {
|
||||||
|
clearInterval(interval);
|
||||||
|
this.second = 60;
|
||||||
|
this.showText = true;
|
||||||
|
}, 60000);
|
||||||
|
},
|
||||||
|
// 重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
user_name: '',
|
||||||
|
time: "",
|
||||||
|
page: 1,
|
||||||
|
type: '-1',
|
||||||
|
status: 'loadmore',
|
||||||
|
list: []
|
||||||
|
}
|
||||||
|
this.textshow = ''
|
||||||
|
this.loginid = ''
|
||||||
|
this.codelang = ''
|
||||||
|
this.codephone = ''
|
||||||
|
this.popupshow = false
|
||||||
|
this.newissuedbyliststatus()
|
||||||
|
},
|
||||||
|
// 列表
|
||||||
|
async newissuedbyliststatus() {
|
||||||
|
this.form.status = 'loading';
|
||||||
|
let res = await this.api.newissuedbyliststatus({
|
||||||
|
user_name: this.form.user_name,
|
||||||
|
time: this.form.time,
|
||||||
|
page: this.form.page,
|
||||||
|
status: this.form.type,
|
||||||
|
})
|
||||||
|
if (this.form.page == 1 && res.data.length == 0) {
|
||||||
|
this.form.list = res.data
|
||||||
|
this.form.status = 'nomore'
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
setTimeout(() => {
|
||||||
|
if (this.form.page == 1) {
|
||||||
|
this.form.list = res.data
|
||||||
|
} else {
|
||||||
|
this.form.list = [...this.form.list, ...res.data]
|
||||||
|
}
|
||||||
|
if (res.data.length < 10) this.form.status = 'nomore';
|
||||||
|
else this.form.status = 'loadmore';
|
||||||
|
}, 500)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
page {
|
||||||
|
background: #F9F9F9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
padding: 0 28rpx;
|
||||||
|
|
||||||
|
.contentitem {
|
||||||
|
margin-top: 32rpx;
|
||||||
|
padding: 32rpx;
|
||||||
|
width: 100%;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
||||||
|
|
||||||
|
.contentitemtop {
|
||||||
|
text:nth-child(1) {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
text:nth-child(2) {
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #F39D52;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.contentitemtext {
|
||||||
|
margin-top: 26rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contentitembotton {
|
||||||
|
margin-top: 34rpx;
|
||||||
|
border-top: 1rpx solid #E5E5E5;
|
||||||
|
padding-top: 30rpx;
|
||||||
|
|
||||||
|
.flex-colum {
|
||||||
|
padding: 0 22rpx;
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 37.89rpx;
|
||||||
|
height: 37.89rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
text {
|
||||||
|
margin-top: 8rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.messagebox {
|
||||||
|
width: 694rpx;
|
||||||
|
max-height: 870rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
||||||
|
padding: 28rpx 32rpx;
|
||||||
|
|
||||||
|
.messageboxtop {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
border-bottom: 2rpx solid #E5E5E5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.messageboxtoptext {
|
||||||
|
position: relative;
|
||||||
|
margin-top: 28rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 300;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #666;
|
||||||
|
|
||||||
|
input {
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.repeat {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
right: 26rpx;
|
||||||
|
width: 25rpx;
|
||||||
|
height: 17rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.repeats {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
right: 26rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #ffffff;
|
||||||
|
border-radius: 12rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.box {
|
||||||
|
width: 300rpx;
|
||||||
|
margin: 100rpx auto 0rpx auto;
|
||||||
|
text-align: center;
|
||||||
|
padding: 8rpx 16rpx 6rpx 16rpx;
|
||||||
|
background: #288EFB;
|
||||||
|
border-radius: 15rpx;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.popupbox {
|
||||||
|
width: 694rpx;
|
||||||
|
max-height: 870rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
||||||
|
|
||||||
|
.popupboxtop {
|
||||||
|
position: relative;
|
||||||
|
padding: 32rpx 0 26rpx 38rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
border-bottom: 2rpx solid #E5E5E5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popupboxform {
|
||||||
|
padding: 0rpx 32rpx 30rpx 32rpx;
|
||||||
|
overflow: auto;
|
||||||
|
height: 74%;
|
||||||
|
|
||||||
|
.addshowboxinput {
|
||||||
|
margin-top: 32rpx;
|
||||||
|
|
||||||
|
.addshowboxinputtext {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.addshowboxinput_inp {
|
||||||
|
margin-top: 24rpx;
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
height: 66rpx;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 4rpx 4rpx 4rpx 4rpx;
|
||||||
|
border: 2rpx solid #D9D9D9;
|
||||||
|
|
||||||
|
.listinput_leftrelative {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
flex: auto;
|
||||||
|
height: 100%;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 4rpx 4rpx 4rpx 4rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 26rpx;
|
||||||
|
|
||||||
|
.leftrelativetext {
|
||||||
|
padding: 6rpx 24rpx;
|
||||||
|
color: #6f6f6f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.listinput_leftabsolute {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 999;
|
||||||
|
width: 100%;
|
||||||
|
top: 65rpx;
|
||||||
|
max-height: 250rpx;
|
||||||
|
overflow: auto;
|
||||||
|
background: #fff;
|
||||||
|
border: 1px solid #D9D9D9;
|
||||||
|
|
||||||
|
view {
|
||||||
|
padding: 6rpx 24rpx;
|
||||||
|
color: #6f6f6f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.class {
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333;
|
||||||
|
border-bottom: 1rpx solid #e3d8d8;
|
||||||
|
background: #f1f1f1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 0 16rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.absolute {
|
||||||
|
padding: 8rpx 18rpx;
|
||||||
|
position: absolute;
|
||||||
|
background: #318AFE;
|
||||||
|
border-radius: 4rpx 4rpx 4rpx 4rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
right: 16rpx;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.addshowbox_box {
|
||||||
|
padding-top: 32rpx;
|
||||||
|
padding-right: 16rpx;
|
||||||
|
width: 100%;
|
||||||
|
border-top: 2rpx solid #E5E5E5;
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
align-items: flex-start;
|
||||||
|
|
||||||
|
.addshowbox_boxitem {
|
||||||
|
width: 112rpx;
|
||||||
|
height: 56rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
line-height: 56rpx;
|
||||||
|
margin-left: 16rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.addshowbox_boxitem:nth-child(1) {
|
||||||
|
text-align: center;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border: 2rpx solid #D9D9D9;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.addshowbox_boxitem:nth-child(2) {
|
||||||
|
text-align: center;
|
||||||
|
background: #318AFE;
|
||||||
|
border: 2rpx solid #D9D9D9;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
618
pages/electric/orderinquiry.vue
Normal file
618
pages/electric/orderinquiry.vue
Normal file
@@ -0,0 +1,618 @@
|
|||||||
|
<template>
|
||||||
|
<view class="content">
|
||||||
|
<view class="contenttop">
|
||||||
|
<view class="flex-start">
|
||||||
|
<input type="text" placeholder="请输入抬头名称" v-model="form.user_name" @input="onInput" />
|
||||||
|
<text @click="popupshow = !popupshow">筛选</text>
|
||||||
|
</view>
|
||||||
|
<view class="contenttopbox flex-center">
|
||||||
|
<text @click="form.type = '全部',form.page = '1',form.user_name = '',invoicedorderlist()"
|
||||||
|
:class="form.type == '全部'?'classtext':''">全部发票</text>
|
||||||
|
<text @click="form.type = '普票',form.page = '1',form.user_name = '',invoicedorderlist()"
|
||||||
|
:class="form.type == '普票'?'classtext':''">普通发票</text>
|
||||||
|
<text @click="form.type = '专票',form.page = '1',form.user_name = '',invoicedorderlist()"
|
||||||
|
:class="form.type == '专票'?'classtext':''">专用发票</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="contentbox">
|
||||||
|
<view class="contentboxitem" v-for="(item,index) in form.list" :key="index" @click.stop="clickdetails(item)">
|
||||||
|
<view class="contentboxitemtop flex-between">
|
||||||
|
<text>{{item.user_name}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitemtext">
|
||||||
|
<text>发票状态:</text>
|
||||||
|
<text>{{item.status}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitemtext">
|
||||||
|
<text>发票类型:</text>
|
||||||
|
<text>{{item.type}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitemtext">
|
||||||
|
<text>发票金额:</text>
|
||||||
|
<text>{{item.price}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitemtext">
|
||||||
|
<text>创建时间</text>
|
||||||
|
<text>{{item.createtime}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<u-loadmore :status="form.status" />
|
||||||
|
<u-popup :show="detailsshow" @close="detailsshow = !detailsshow" mode="bottom" :round="10">
|
||||||
|
<view class="detailsclass">
|
||||||
|
<view class="detailsclasstop">
|
||||||
|
<text> 详情</text>
|
||||||
|
<u-icon class="icon" name="close" @click="detailsshow = false" color="#999999" size="20"></u-icon>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassbox">
|
||||||
|
<view class="detailsclassboxitem">
|
||||||
|
<text>购方名称</text>
|
||||||
|
<text>{{details.user_name}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxitem">
|
||||||
|
<text>购方税号</text>
|
||||||
|
<text>{{details.user_duty}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxtext">
|
||||||
|
发票信息
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassbox">
|
||||||
|
<view class="detailsclassboxitem">
|
||||||
|
<text>发票类型</text>
|
||||||
|
<text>{{details.type}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxitem">
|
||||||
|
<text>发票号码</text>
|
||||||
|
<text>{{details.fphm}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxitem">
|
||||||
|
<text>开票日期</text>
|
||||||
|
<text>{{details.ktime}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxitem">
|
||||||
|
<text>开票金额</text>
|
||||||
|
<text>{{details.price}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxitem">
|
||||||
|
<text>开票税额</text>
|
||||||
|
<text>{{details.tax_amount}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxitem">
|
||||||
|
<text>发票状态</text>
|
||||||
|
<text>{{details.status}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxtext">
|
||||||
|
发票信息
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassbox">
|
||||||
|
<view class="detailsclassboxitem" @click="downloadFile(details.pdfUrl)">
|
||||||
|
<text>PDF版式文件</text>
|
||||||
|
<text>下载</text>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxitem" @click="downloadFile(details.ofdUrl)">
|
||||||
|
<text>OFD版式文件</text>
|
||||||
|
<text>下载</text>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxitem" @click="downloadFile(details.xmlUrl)">
|
||||||
|
<text>XML版式文件</text>
|
||||||
|
<text>下载</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
<u-popup :show="popupshow" @close="popupshow = !popupshow" :round="10">
|
||||||
|
<view class="popupshow">
|
||||||
|
<view class="popupshowtop">
|
||||||
|
筛选
|
||||||
|
</view>
|
||||||
|
<view class="popupshowbox">
|
||||||
|
<view class="popupshowboxtitel">
|
||||||
|
按时间筛选
|
||||||
|
</view>
|
||||||
|
<view class="popupshowbox_box flex-between">
|
||||||
|
<view class="popupshowbox_item" v-for="(item,index) in daylist" :key="index"
|
||||||
|
@click="clickday(item,index)" :class="selectshow == index ?'select':''">
|
||||||
|
{{item.name}}
|
||||||
|
</view>
|
||||||
|
<view class="popupshowbox_itemzdy flex-between" v-if="showpickerbox && selectshow == 2">
|
||||||
|
<view class="popupshowbox_item" @click="showpicker=!showpicker,clickshowpicker = 1">
|
||||||
|
{{this.starttime}}
|
||||||
|
</view>
|
||||||
|
-<view class="popupshowbox_item" @click="showpicker=!showpicker,clickshowpicker = 2">
|
||||||
|
{{this.endtime}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="popupshowbox">
|
||||||
|
<view class="popupshowboxtitel">
|
||||||
|
按订单状态选择
|
||||||
|
</view>
|
||||||
|
<view class="popupshowbox_box flex-between">
|
||||||
|
<view class="popupshowbox_item" v-for="(item,index) in datastatuslist" :key="index"
|
||||||
|
@click="clickdatastatuslist(item,index)"
|
||||||
|
:class="datastatuslistshow == item.id ?'select':''">
|
||||||
|
{{item.text}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="boxboutton flex-between">
|
||||||
|
<view class="boxbouttonitem" @click="reset">
|
||||||
|
重置
|
||||||
|
</view>
|
||||||
|
<view class="boxbouttonitem" @click="clickdetermine">
|
||||||
|
确定
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
<u-datetime-picker :show="showpicker" mode="date" @cancel="showpicker = !showpicker"
|
||||||
|
@confirm="confirmpicker"></u-datetime-picker>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
detailsshow: false, //详情
|
||||||
|
popupshow: false,
|
||||||
|
showpicker: false, //选择时间
|
||||||
|
showpickerbox: false, //是否显示这个盒子
|
||||||
|
clickshowpicker: '',
|
||||||
|
starttime: '', //起始时间
|
||||||
|
endtime: '',
|
||||||
|
selectshow: '', //选中
|
||||||
|
datastatuslistshow: '',
|
||||||
|
details:{},
|
||||||
|
form: {
|
||||||
|
user_name: '',
|
||||||
|
time: "",
|
||||||
|
page: 1,
|
||||||
|
type: '全部',
|
||||||
|
status: 'loadmore',
|
||||||
|
list: []
|
||||||
|
},
|
||||||
|
daylist: [{
|
||||||
|
id: 1,
|
||||||
|
name: '仅30天'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
name: '近180天'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
name: '自定义'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
datastatuslist: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async onLoad(e) {
|
||||||
|
this.invoicedorderlist()
|
||||||
|
let res = await this.api.hfivestatuslist()
|
||||||
|
this.datastatuslist = res.data
|
||||||
|
},
|
||||||
|
onReachBottom() {
|
||||||
|
if (this.form.status != 'nomore') {
|
||||||
|
this.form.page = ++this.form.page;
|
||||||
|
this.invoicedorderlist()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async clickdetails(item) {
|
||||||
|
console.log(item)
|
||||||
|
let res = await this.api.invoiceddetail({
|
||||||
|
id: item.id
|
||||||
|
})
|
||||||
|
if(res.code == 1){
|
||||||
|
this.details = res.data
|
||||||
|
this.detailsshow = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 下载
|
||||||
|
downloadFile(url){
|
||||||
|
uni.downloadFile({
|
||||||
|
url: url, //仅为示例,并非真实的资源
|
||||||
|
success: (res) => {
|
||||||
|
if (res.statusCode === 200) {
|
||||||
|
console.log('下载成功');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
clickdatastatuslist(item, index) {
|
||||||
|
this.datastatuslistshow = item.id
|
||||||
|
},
|
||||||
|
// 时间
|
||||||
|
clickday(item, index) {
|
||||||
|
const d = new Date()
|
||||||
|
const year = d.getFullYear()
|
||||||
|
let month = d.getMonth() + 1
|
||||||
|
let date = d.getDate()
|
||||||
|
date = date < 10 ? `0${date}` : date
|
||||||
|
switch (index) {
|
||||||
|
case 0:
|
||||||
|
this.starttime = `${(month-1)==0?(year-1):year}-0${(month-1)==0?12:(month-1)}-${date}`
|
||||||
|
this.endtime = `${year}-0${month}-${date}`
|
||||||
|
this.showpickerbox = false
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
this.starttime = `${year}-0${month>6?(month-6):(month+12-6)}-${date}`
|
||||||
|
this.endtime = `${year}-0${month}-${date}`
|
||||||
|
this.showpickerbox = false
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
this.showpickerbox = !this.showpickerbox
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
this.selectshow = index
|
||||||
|
},
|
||||||
|
// 确定时间
|
||||||
|
confirmpicker(e) {
|
||||||
|
console.log(this.clickshowpicker, uni.$u.timeFrom(e.value, 'yyyy-mm-dd'))
|
||||||
|
if (this.clickshowpicker == 1) {
|
||||||
|
this.starttime = uni.$u.timeFrom(e.value, 'yyyy-mm-dd')
|
||||||
|
}
|
||||||
|
if (this.clickshowpicker == 2) {
|
||||||
|
this.endtime = uni.$u.timeFrom(e.value, 'yyyy-mm-dd')
|
||||||
|
}
|
||||||
|
this.showpicker = !this.showpicker
|
||||||
|
},
|
||||||
|
// 确定
|
||||||
|
clickdetermine() {
|
||||||
|
if (!this.starttime == '' || !this.endtime == '') {
|
||||||
|
this.form.time = `${this.starttime} 00:00:00,${this.endtime} 00:00:00`
|
||||||
|
}
|
||||||
|
this.popupshow = false
|
||||||
|
this.invoicedorderlist()
|
||||||
|
},
|
||||||
|
// 重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
user_name: '',
|
||||||
|
time: "",
|
||||||
|
page: 1,
|
||||||
|
type: '全部',
|
||||||
|
status: 'loadmore',
|
||||||
|
list: []
|
||||||
|
}
|
||||||
|
this.datastatuslistshow = ''
|
||||||
|
this.popupshow = false
|
||||||
|
this.invoicedorderlist()
|
||||||
|
},
|
||||||
|
// 搜索
|
||||||
|
onInput(e) {
|
||||||
|
if ([...e.detail.value].length >= 2) {
|
||||||
|
this.form.page = 1
|
||||||
|
this.form.list = []
|
||||||
|
this.datastatuslistshow = ''
|
||||||
|
uni.$u.debounce(this.invoicedorderlist, 500)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 列表
|
||||||
|
async invoicedorderlist() {
|
||||||
|
this.form.status = 'loading';
|
||||||
|
let res = await this.api.invoicedorderlist({
|
||||||
|
user_name: this.form.user_name,
|
||||||
|
time: this.form.time,
|
||||||
|
page: this.form.page,
|
||||||
|
type: this.form.type,
|
||||||
|
status: this.datastatuslistshow
|
||||||
|
})
|
||||||
|
if (this.form.page == 1 && res.data.length == 0) {
|
||||||
|
this.form.list = res.data
|
||||||
|
this.form.status = 'nomore'
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
setTimeout(() => {
|
||||||
|
if (this.form.page == 1) {
|
||||||
|
this.form.list = res.data
|
||||||
|
} else {
|
||||||
|
this.form.list = [...this.form.list, ...res.data]
|
||||||
|
}
|
||||||
|
if (res.data.length < 10) this.form.status = 'nomore';
|
||||||
|
else this.form.status = 'loadmore';
|
||||||
|
}, 500)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
page {
|
||||||
|
background: #F9F9F9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
.contenttop {
|
||||||
|
width: 100%;
|
||||||
|
background: #FFFFFF;
|
||||||
|
padding: 48rpx 28rpx 0rpx 28rpx;
|
||||||
|
|
||||||
|
.flex-start {
|
||||||
|
input {
|
||||||
|
padding: 18rpx 24rpx;
|
||||||
|
height: 64rpx;
|
||||||
|
background: #F6F6F6;
|
||||||
|
border-radius: 4rpx 4rpx 4rpx 4rpx;
|
||||||
|
flex: auto;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
text {
|
||||||
|
padding: 0 0 0 24rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.contenttopbox {
|
||||||
|
text {
|
||||||
|
width: 33%;
|
||||||
|
text-align: center;
|
||||||
|
padding: 32rpx 0 24rpx 0;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.classtext {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
width: 30%;
|
||||||
|
border-bottom: 5rpx solid #318AFE;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
content: '';
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.popupshow {
|
||||||
|
padding: 0 28rpx;
|
||||||
|
|
||||||
|
.popupshowtop {
|
||||||
|
margin-top: 32rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popupshowbox {
|
||||||
|
.popupshowboxtitel {
|
||||||
|
margin-top: 32rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popupshowbox_box {
|
||||||
|
.popupshowbox_item {
|
||||||
|
margin-top: 24rpx;
|
||||||
|
width: 176rpx;
|
||||||
|
height: 56rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 28rpx 28rpx 28rpx 28rpx;
|
||||||
|
border: 2rpx solid #D9D9D9;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 56rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
content: '';
|
||||||
|
width: 176rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select {
|
||||||
|
border: 1px solid #1b00ff;
|
||||||
|
color: #0600ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popupshowbox_itemzdy {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.popupshowbox_item {
|
||||||
|
margin-top: 24rpx;
|
||||||
|
width: 40%;
|
||||||
|
height: 56rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 28rpx 28rpx 28rpx 28rpx;
|
||||||
|
border: 2rpx solid #D9D9D9;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 56rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxboutton {
|
||||||
|
margin: 400rpx 0 50rpx 0;
|
||||||
|
|
||||||
|
.boxbouttonitem {
|
||||||
|
width: 330rpx;
|
||||||
|
height: 72rpx;
|
||||||
|
border-radius: 50rpx 50rpx 50rpx 50rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxbouttonitem:nth-child(1) {
|
||||||
|
border: 2rpx solid #D9D9D9;
|
||||||
|
background: #FFFFFF;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #333333;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 72rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxbouttonitem:nth-child(2) {
|
||||||
|
background: #2F87FD;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 72rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.detailsclass {
|
||||||
|
max-height: 74vh;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-top-right-radius: 40rpx;
|
||||||
|
border-top-left-radius: 40rpx;
|
||||||
|
overflow: auto;
|
||||||
|
|
||||||
|
.detailsclasstop {
|
||||||
|
position: relative;
|
||||||
|
padding: 32rpx 0 48rpx 0;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
position: absolute;
|
||||||
|
right: 32rpx;
|
||||||
|
top: 32rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.detailsclassbox {
|
||||||
|
padding: 32rpx 28rpx;
|
||||||
|
|
||||||
|
.detailsclassboxitem {
|
||||||
|
margin-top: 48rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
text:nth-child(1) {
|
||||||
|
width: 30%;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
text:nth-child(2) {
|
||||||
|
width: 70%;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #999999;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.detailsclassboxitem:nth-child(1) {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.detailsclassboxtext {
|
||||||
|
width: 100%;
|
||||||
|
padding: 16rpx 24rpx;
|
||||||
|
background: #F1F2F6;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.contentbox {
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 28rpx;
|
||||||
|
|
||||||
|
.contentboxitem {
|
||||||
|
margin-top: 32rpx;
|
||||||
|
padding: 32rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
||||||
|
|
||||||
|
.contentboxitemtop {
|
||||||
|
text:nth-child(1) {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
text:nth-child(2) {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #F39D52;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.contentboxitemtext {
|
||||||
|
margin-top: 24rpx;
|
||||||
|
|
||||||
|
text:nth-child(1) {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
|
||||||
|
text:nth-child(2) {
|
||||||
|
margin-left: 24rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
image {
|
||||||
|
margin-left: 24rpx;
|
||||||
|
width: 158rpx;
|
||||||
|
height: 94rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
||||||
|
border: 2rpx solid #D9D9D9;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
594
pages/electric/toexamine.vue
Normal file
594
pages/electric/toexamine.vue
Normal file
@@ -0,0 +1,594 @@
|
|||||||
|
<template>
|
||||||
|
<view class="content">
|
||||||
|
<view class="contenttop">
|
||||||
|
<view class="flex-start">
|
||||||
|
<input type="text" placeholder="请输入抬头名称" v-model="form.user_name" @input="onInput" />
|
||||||
|
<text @click="popupshow = !popupshow">筛选</text>
|
||||||
|
</view>
|
||||||
|
<view class="contenttopbox flex-center">
|
||||||
|
<text @click="form.type = '全部',form.page = '1',form.user_name = '',invoicedlist()"
|
||||||
|
:class="form.type == '全部'?'classtext':''">全部发票</text>
|
||||||
|
<text @click="form.type = '普票',form.page = '1',form.user_name = '',invoicedlist()"
|
||||||
|
:class="form.type == '普票'?'classtext':''">普通发票</text>
|
||||||
|
<text @click="form.type = '专票',form.page = '1',form.user_name = '',invoicedlist()"
|
||||||
|
:class="form.type == '专票'?'classtext':''">专用发票</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="contentbox">
|
||||||
|
<view class="contentboxitem" v-for="(item,index) in form.list" :key="index" @click.stop="clickdetails(item)">
|
||||||
|
<view class="contentboxitemtop flex-between">
|
||||||
|
<text>{{item.user_name}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitemtext">
|
||||||
|
<text>发票状态:</text>
|
||||||
|
<text>{{item.status}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitemtext">
|
||||||
|
<text>发票类型:</text>
|
||||||
|
<text>{{item.type}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitemtext">
|
||||||
|
<text>发票金额:</text>
|
||||||
|
<text>{{item.price}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="contentboxitemtext">
|
||||||
|
<text>创建时间</text>
|
||||||
|
<text>{{item.createtime}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<u-loadmore :status="form.status" />
|
||||||
|
<u-popup :show="detailsshow" @close="detailsshow = !detailsshow" mode="bottom" :round="10">
|
||||||
|
<view class="detailsclass">
|
||||||
|
<view class="detailsclasstop">
|
||||||
|
<text> 详情</text>
|
||||||
|
<u-icon class="icon" name="close" @click="detailsshow = false" color="#999999" size="20"></u-icon>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassbox">
|
||||||
|
<view class="detailsclassboxitem">
|
||||||
|
<text>购方名称</text>
|
||||||
|
<text>{{details.user_name}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxitem">
|
||||||
|
<text>购方税号</text>
|
||||||
|
<text>{{details.user_duty}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxtext">
|
||||||
|
发票信息
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassbox">
|
||||||
|
<view class="detailsclassboxitem">
|
||||||
|
<text>发票类型</text>
|
||||||
|
<text>{{details.type}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxitem">
|
||||||
|
<text>发票号码</text>
|
||||||
|
<text>{{details.fphm}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxitem">
|
||||||
|
<text>开票日期</text>
|
||||||
|
<text>{{details.ktime}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxitem">
|
||||||
|
<text>开票金额</text>
|
||||||
|
<text>{{details.price}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxitem">
|
||||||
|
<text>开票税额</text>
|
||||||
|
<text>{{details.tax_amount}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxitem">
|
||||||
|
<text>发票状态</text>
|
||||||
|
<text>{{details.status}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxtext">
|
||||||
|
发票信息
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassbox">
|
||||||
|
<view class="detailsclassboxitem" @click="downloadFile(details.pdfUrl)">
|
||||||
|
<text>PDF版式文件</text>
|
||||||
|
<text>下载</text>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxitem" @click="downloadFile(details.ofdUrl)">
|
||||||
|
<text>OFD版式文件</text>
|
||||||
|
<text>下载</text>
|
||||||
|
</view>
|
||||||
|
<view class="detailsclassboxitem" @click="downloadFile(details.xmlUrl)">
|
||||||
|
<text>XML版式文件</text>
|
||||||
|
<text>下载</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
<u-popup :show="popupshow" @close="popupshow = !popupshow" :round="10">
|
||||||
|
<view class="popupshow">
|
||||||
|
<view class="popupshowtop">
|
||||||
|
筛选
|
||||||
|
</view>
|
||||||
|
<view class="popupshowbox">
|
||||||
|
<view class="popupshowboxtitel">
|
||||||
|
按时间筛选
|
||||||
|
</view>
|
||||||
|
<view class="popupshowbox_box flex-between">
|
||||||
|
<view class="popupshowbox_item" v-for="(item,index) in daylist" :key="index"
|
||||||
|
@click="clickday(item,index)" :class="selectshow == index ?'select':''">
|
||||||
|
{{item.name}}
|
||||||
|
</view>
|
||||||
|
<view class="popupshowbox_itemzdy flex-between" v-if="showpickerbox && selectshow == 2">
|
||||||
|
<view class="popupshowbox_item" @click="showpicker=!showpicker,clickshowpicker = 1">
|
||||||
|
{{this.starttime}}
|
||||||
|
</view>
|
||||||
|
-<view class="popupshowbox_item" @click="showpicker=!showpicker,clickshowpicker = 2">
|
||||||
|
{{this.endtime}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="boxboutton flex-between">
|
||||||
|
<view class="boxbouttonitem" @click="reset">
|
||||||
|
重置
|
||||||
|
</view>
|
||||||
|
<view class="boxbouttonitem" @click="clickdetermine">
|
||||||
|
确定
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
<u-datetime-picker :show="showpicker" mode="date" @cancel="showpicker = !showpicker"
|
||||||
|
@confirm="confirmpicker"></u-datetime-picker>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
detailsshow: false, //详情
|
||||||
|
popupshow: false,
|
||||||
|
showpicker: false, //选择时间
|
||||||
|
showpickerbox: false, //是否显示这个盒子
|
||||||
|
clickshowpicker: '',
|
||||||
|
starttime: '', //起始时间
|
||||||
|
endtime: '',
|
||||||
|
selectshow: '', //选中
|
||||||
|
form: {
|
||||||
|
user_name: '',
|
||||||
|
time: "",
|
||||||
|
page: 1,
|
||||||
|
type: '全部',
|
||||||
|
status: 'loadmore',
|
||||||
|
list: []
|
||||||
|
},
|
||||||
|
daylist: [{
|
||||||
|
id: 1,
|
||||||
|
name: '仅30天'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
name: '近180天'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
name: '自定义'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
details: {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async onLoad(e) {
|
||||||
|
this.invoicedlist()
|
||||||
|
},
|
||||||
|
onReachBottom() {
|
||||||
|
if (this.form.status != 'nomore') {
|
||||||
|
this.form.page = ++this.form.page;
|
||||||
|
this.invoicedlist()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async clickdetails(item) {
|
||||||
|
console.log(item)
|
||||||
|
let res = await this.api.invoiceddetail({
|
||||||
|
id: item.id
|
||||||
|
})
|
||||||
|
if(res.code == 1){
|
||||||
|
this.details = res.data
|
||||||
|
this.detailsshow = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 时间
|
||||||
|
clickday(item, index) {
|
||||||
|
const d = new Date()
|
||||||
|
const year = d.getFullYear()
|
||||||
|
let month = d.getMonth() + 1
|
||||||
|
let date = d.getDate()
|
||||||
|
date = date < 10 ? `0${date}` : date
|
||||||
|
switch (index) {
|
||||||
|
case 0:
|
||||||
|
this.starttime = `${(month-1)==0?(year-1):year}-0${(month-1)==0?12:(month-1)}-${date}`
|
||||||
|
this.endtime = `${year}-0${month}-${date}`
|
||||||
|
this.showpickerbox = false
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
this.starttime = `${year}-0${month>6?(month-6):(month+12-6)}-${date}`
|
||||||
|
this.endtime = `${year}-0${month}-${date}`
|
||||||
|
this.showpickerbox = false
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
this.showpickerbox = !this.showpickerbox
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
this.selectshow = index
|
||||||
|
},
|
||||||
|
// 确定时间
|
||||||
|
confirmpicker(e) {
|
||||||
|
console.log(this.clickshowpicker, uni.$u.timeFrom(e.value, 'yyyy-mm-dd'))
|
||||||
|
if (this.clickshowpicker == 1) {
|
||||||
|
this.starttime = uni.$u.timeFrom(e.value, 'yyyy-mm-dd')
|
||||||
|
}
|
||||||
|
if (this.clickshowpicker == 2) {
|
||||||
|
this.endtime = uni.$u.timeFrom(e.value, 'yyyy-mm-dd')
|
||||||
|
}
|
||||||
|
this.showpicker = !this.showpicker
|
||||||
|
},
|
||||||
|
// 确定
|
||||||
|
clickdetermine() {
|
||||||
|
if (!this.starttime == '' || !this.endtime == '') {
|
||||||
|
this.form.time = `${this.starttime} 00:00:00,${this.endtime} 00:00:00`
|
||||||
|
}
|
||||||
|
this.popupshow = false
|
||||||
|
this.invoicedlist()
|
||||||
|
},
|
||||||
|
// 重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
user_name: '',
|
||||||
|
time: "",
|
||||||
|
page: 1,
|
||||||
|
type: '全部',
|
||||||
|
status: 'loadmore',
|
||||||
|
list: []
|
||||||
|
}
|
||||||
|
this.popupshow = false
|
||||||
|
this.invoicedlist()
|
||||||
|
},
|
||||||
|
// 搜索
|
||||||
|
onInput(e) {
|
||||||
|
if ([...e.detail.value].length >= 2) {
|
||||||
|
this.form.page = 1
|
||||||
|
this.form.list = []
|
||||||
|
uni.$u.debounce(this.invoicedlist, 500)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 列表
|
||||||
|
async invoicedlist() {
|
||||||
|
this.form.status = 'loading';
|
||||||
|
let res = await this.api.invoicedlist({
|
||||||
|
user_name: this.form.user_name,
|
||||||
|
time: this.form.time,
|
||||||
|
page: this.form.page,
|
||||||
|
type: this.form.type
|
||||||
|
})
|
||||||
|
console.log(res)
|
||||||
|
if (this.form.page == 1 && res.data.length == 0) {
|
||||||
|
this.form.list = res.data
|
||||||
|
this.form.status = 'nomore'
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
setTimeout(() => {
|
||||||
|
if (this.form.page == 1) {
|
||||||
|
this.form.list = res.data
|
||||||
|
} else {
|
||||||
|
this.form.list = [...this.form.list, ...res.data]
|
||||||
|
}
|
||||||
|
if (res.data.length < 10) this.form.status = 'nomore';
|
||||||
|
else this.form.status = 'loadmore';
|
||||||
|
}, 500)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 下载
|
||||||
|
downloadFile(url){
|
||||||
|
uni.downloadFile({
|
||||||
|
url: url, //仅为示例,并非真实的资源
|
||||||
|
success: (res) => {
|
||||||
|
if (res.statusCode === 200) {
|
||||||
|
console.log('下载成功');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
page {
|
||||||
|
background: #F9F9F9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
.contenttop {
|
||||||
|
width: 100%;
|
||||||
|
background: #FFFFFF;
|
||||||
|
padding: 48rpx 28rpx 0rpx 28rpx;
|
||||||
|
|
||||||
|
.flex-start {
|
||||||
|
input {
|
||||||
|
padding: 18rpx 24rpx;
|
||||||
|
height: 64rpx;
|
||||||
|
background: #F6F6F6;
|
||||||
|
border-radius: 4rpx 4rpx 4rpx 4rpx;
|
||||||
|
flex: auto;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
text {
|
||||||
|
padding: 0 0 0 24rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.contenttopbox {
|
||||||
|
text {
|
||||||
|
width: 33%;
|
||||||
|
text-align: center;
|
||||||
|
padding: 32rpx 0 24rpx 0;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.classtext {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
width: 30%;
|
||||||
|
border-bottom: 5rpx solid #318AFE;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
content: '';
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.detailsclass {
|
||||||
|
max-height: 74vh;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-top-right-radius: 40rpx;
|
||||||
|
border-top-left-radius: 40rpx;
|
||||||
|
overflow: auto;
|
||||||
|
|
||||||
|
.detailsclasstop {
|
||||||
|
position: relative;
|
||||||
|
padding: 32rpx 0 48rpx 0;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
position: absolute;
|
||||||
|
right: 32rpx;
|
||||||
|
top: 32rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.detailsclassbox {
|
||||||
|
padding: 32rpx 28rpx;
|
||||||
|
|
||||||
|
.detailsclassboxitem {
|
||||||
|
margin-top: 48rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
text:nth-child(1) {
|
||||||
|
width: 30%;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
text:nth-child(2) {
|
||||||
|
width: 70%;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #999999;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.detailsclassboxitem:nth-child(1) {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.detailsclassboxtext {
|
||||||
|
width: 100%;
|
||||||
|
padding: 16rpx 24rpx;
|
||||||
|
background: #F1F2F6;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.popupshow {
|
||||||
|
padding: 0 28rpx;
|
||||||
|
|
||||||
|
.popupshowtop {
|
||||||
|
margin-top: 32rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popupshowbox {
|
||||||
|
.popupshowboxtitel {
|
||||||
|
margin-top: 32rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popupshowbox_box {
|
||||||
|
.popupshowbox_item {
|
||||||
|
margin-top: 24rpx;
|
||||||
|
width: 176rpx;
|
||||||
|
height: 56rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 28rpx 28rpx 28rpx 28rpx;
|
||||||
|
border: 2rpx solid #D9D9D9;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 56rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select {
|
||||||
|
border: 1px solid #1b00ff;
|
||||||
|
color: #0600ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popupshowbox_itemzdy {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.popupshowbox_item {
|
||||||
|
margin-top: 24rpx;
|
||||||
|
width: 40%;
|
||||||
|
height: 56rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 28rpx 28rpx 28rpx 28rpx;
|
||||||
|
border: 2rpx solid #D9D9D9;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 56rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxboutton {
|
||||||
|
margin: 400rpx 0 50rpx 0;
|
||||||
|
|
||||||
|
.boxbouttonitem {
|
||||||
|
width: 330rpx;
|
||||||
|
height: 72rpx;
|
||||||
|
border-radius: 50rpx 50rpx 50rpx 50rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxbouttonitem:nth-child(1) {
|
||||||
|
border: 2rpx solid #D9D9D9;
|
||||||
|
background: #FFFFFF;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #333333;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 72rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxbouttonitem:nth-child(2) {
|
||||||
|
background: #2F87FD;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 72rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.contentbox {
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 28rpx;
|
||||||
|
|
||||||
|
.contentboxitem {
|
||||||
|
margin-top: 32rpx;
|
||||||
|
padding: 32rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
||||||
|
|
||||||
|
.contentboxitemtop {
|
||||||
|
text:nth-child(1) {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
text:nth-child(2) {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #F39D52;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.contentboxitemtext {
|
||||||
|
margin-top: 24rpx;
|
||||||
|
|
||||||
|
text:nth-child(1) {
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
|
||||||
|
text:nth-child(2) {
|
||||||
|
margin-left: 24rpx;
|
||||||
|
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
image {
|
||||||
|
margin-left: 24rpx;
|
||||||
|
width: 158rpx;
|
||||||
|
height: 94rpx;
|
||||||
|
background: #FFFFFF;
|
||||||
|
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
||||||
|
border: 2rpx solid #D9D9D9;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -202,15 +202,16 @@
|
|||||||
uni.pro.navigateTo('index/Invoicing');
|
uni.pro.navigateTo('index/Invoicing');
|
||||||
},
|
},
|
||||||
async webview() {
|
async webview() {
|
||||||
let res = await this.api.szzpyhurl({
|
uni.pro.navigateTo('electric/index');
|
||||||
store_id: uni.getStorageSync('userId')
|
// let res = await this.api.szzpyhurl({
|
||||||
})
|
// store_id: uni.getStorageSync('userId')
|
||||||
if (res) {
|
// })
|
||||||
uni.pro.navigateTo('webview/webview', {
|
// if (res) {
|
||||||
url: res.data.url,
|
// uni.pro.navigateTo('webview/webview', {
|
||||||
tape: 1
|
// url: res.data.url,
|
||||||
});
|
// tape: 1
|
||||||
}
|
// });
|
||||||
|
// }
|
||||||
},
|
},
|
||||||
indexorder() {
|
indexorder() {
|
||||||
uni.pro.navigateTo('index/order');
|
uni.pro.navigateTo('index/order');
|
||||||
|
|||||||
@@ -28,8 +28,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="empty-wrap">
|
<view class="empty-wrap">
|
||||||
<view class="empty" v-if="!list.length"><u-empty text="暂无数据"
|
<u-loadmore :status="form.status" fontSize="16" color="#999" iconSize="16" />
|
||||||
:icon="require('@/static/icon_empty.png')"></u-empty></view>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
@@ -38,12 +37,28 @@
|
|||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
list: []
|
list: [],
|
||||||
|
form: {
|
||||||
|
page: 1,
|
||||||
|
status: 'loadmore',
|
||||||
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
onShow() {
|
onShow() {
|
||||||
this.storeinvoicelist()
|
this.list = []
|
||||||
|
this.form = {
|
||||||
|
page: 1,
|
||||||
|
status: 'loadmore',
|
||||||
|
},
|
||||||
|
this.storeinvoicelist()
|
||||||
|
},
|
||||||
|
onReachBottom() {
|
||||||
|
if (this.form.status != 'nomore') {
|
||||||
|
this.form.page = ++this.form.page;
|
||||||
|
this.storeinvoicelist()
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
clickoange(e) {
|
clickoange(e) {
|
||||||
@@ -61,10 +76,25 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
async storeinvoicelist() {
|
async storeinvoicelist() {
|
||||||
|
this.form.status = 'loading';
|
||||||
let res = await this.api.storeinvoicelist({
|
let res = await this.api.storeinvoicelist({
|
||||||
store_id: uni.getStorageSync('userId')
|
store_id: uni.getStorageSync('userId'),
|
||||||
|
page: this.form.page
|
||||||
|
|
||||||
})
|
})
|
||||||
this.list = res.data
|
if (this.form.page == 1 && res.data.list.length == 0) {
|
||||||
|
this.form.status = 'nomore'
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.list = [...this.list, ...res.data.list];
|
||||||
|
if (res.data.list.length < 10) {
|
||||||
|
this.form.status = 'nomore';
|
||||||
|
} else {
|
||||||
|
this.form.status = 'loadmore';
|
||||||
|
}
|
||||||
|
}, 500)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
static/electric/type1.png
Normal file
BIN
static/electric/type1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 289 B |
2
unpackage/dist/build/web/index.html
vendored
2
unpackage/dist/build/web/index.html
vendored
@@ -3,4 +3,4 @@
|
|||||||
document.write(
|
document.write(
|
||||||
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
|
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
|
||||||
(coverSupport ? ', viewport-fit=cover' : '') +
|
(coverSupport ? ', viewport-fit=cover' : '') +
|
||||||
'" />')</script><link rel=stylesheet href=/static/index.2da1efab.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/static/js/chunk-vendors.41073de1.js></script><script src=/static/js/index.caeea1e4.js></script></body></html>
|
'" />')</script><link rel=stylesheet href=/static/index.2da1efab.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/static/js/chunk-vendors.41073de1.js></script><script src=/static/js/index.60872a45.js></script></body></html>
|
||||||
Reference in New Issue
Block a user