开始做开票信息编辑
This commit is contained in:
parent
d41978e2e8
commit
ff36356543
2
app.json
2
app.json
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"pages": [
|
||||
"pages/home/index",
|
||||
"pages/invoiceList/index",
|
||||
"pages/invoiceDetail/index",
|
||||
"pages/invoicing/index",
|
||||
"pages/invoiceList/index",
|
||||
"pages/rechargeRecord/index",
|
||||
"pages/member/index",
|
||||
"pages/login/index",
|
||||
|
|
|
@ -4,6 +4,9 @@ Component({
|
|||
/**
|
||||
* 组件的属性列表
|
||||
*/
|
||||
options: {
|
||||
multipleSlots: true // 在组件定义时的选项中启用多slot支持
|
||||
},
|
||||
properties: {
|
||||
title: String,
|
||||
},
|
10
components/card/index.wxml
Normal file
10
components/card/index.wxml
Normal file
|
@ -0,0 +1,10 @@
|
|||
<!--pages/invoicing/components/card/index.wxml-->
|
||||
<view class="cardBox">
|
||||
<view class="title">
|
||||
<view class="titleText"> {{ title }} </view>
|
||||
<slot name="operate" />
|
||||
</view>
|
||||
<view class="content">
|
||||
<slot name="content" />
|
||||
</view>
|
||||
</view>
|
|
@ -14,4 +14,11 @@
|
|||
height: 80rpx;
|
||||
line-height: 80rpx;
|
||||
margin-bottom: 24rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.titleText {
|
||||
flex: 1;
|
||||
}
|
||||
|
|
@ -10,6 +10,7 @@
|
|||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.navigatorTitle {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { getMeterDetail, getMeterList, getTenementMeterList } from "../../service/meter";
|
||||
import { getOwnTenementList } from "../../service/tenement";
|
||||
import { alertInfo } from "../../utils/index";
|
||||
import { alertInfo, alertSuccess } from "../../utils/index";
|
||||
import request from '../../utils/request';
|
||||
import { getDot } from "../../utils/system";
|
||||
import { getUserInfo } from "../../service/user"
|
||||
|
@ -63,7 +63,6 @@ Page({
|
|||
},
|
||||
async refreshMeter() {
|
||||
const { meter } = this.data;
|
||||
console.log('meter', meter)
|
||||
this.handleGetMeterDetail(meter.id);
|
||||
},
|
||||
onOk(e) {
|
||||
|
@ -80,6 +79,7 @@ Page({
|
|||
park: value,
|
||||
tenement: value.tenements?.[0]
|
||||
})
|
||||
wx.setStorageSync('park', park)
|
||||
break;
|
||||
case "tenement":
|
||||
// const currentTenement = this.data.tenement;
|
||||
|
@ -91,6 +91,7 @@ Page({
|
|||
show: false,
|
||||
tenement: value
|
||||
})
|
||||
|
||||
break;
|
||||
case "meter":
|
||||
const { code, id } = e.detail.value;
|
||||
|
@ -126,6 +127,7 @@ Page({
|
|||
},
|
||||
async recharge() {
|
||||
const { user, money, meter, tenement, park } = this.data;
|
||||
const that = this;
|
||||
if (!user || !user.id) {
|
||||
alertInfo("请先登录")
|
||||
return
|
||||
|
@ -139,6 +141,10 @@ Page({
|
|||
alertInfo("没有选择表计")
|
||||
return;
|
||||
}
|
||||
if (money < 0.01) {
|
||||
alertInfo("最少为1分")
|
||||
return
|
||||
}
|
||||
const { code, message, data } = await requestRecharge({ money: Number(money), id: meter.id, tenement: tenement.id, park: park.id })
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
|
@ -152,6 +158,10 @@ Page({
|
|||
signType: 'RSA',
|
||||
success: (res) => {
|
||||
console.log('success', res)
|
||||
alertSuccess("充值成功")
|
||||
that.setData({
|
||||
money: null
|
||||
})
|
||||
},
|
||||
fail: (res) => {
|
||||
console.log('fail', res)
|
||||
|
@ -159,10 +169,9 @@ Page({
|
|||
},
|
||||
complete: (res) => {
|
||||
console.log('complete')
|
||||
|
||||
that.handleGetMeterDetail(meter.id)
|
||||
}
|
||||
})
|
||||
console.log('data', data)
|
||||
},
|
||||
jumpToInvoice() {
|
||||
wx.navigateTo({
|
||||
|
@ -181,6 +190,7 @@ Page({
|
|||
this.setUser();
|
||||
this.getAllList();
|
||||
this.watchTenement();
|
||||
this.watchPark();
|
||||
getDot();
|
||||
},
|
||||
watchTenement() {
|
||||
|
@ -197,10 +207,29 @@ Page({
|
|||
set: function (newVal) {
|
||||
// const oldValue = value;
|
||||
value = newVal;
|
||||
wx.setStorageSync('tenement', newVal)
|
||||
that.getMeters(newVal);
|
||||
}
|
||||
});
|
||||
},
|
||||
watchPark() {
|
||||
const that = this;
|
||||
let value = this.data.park; // 获取被监听属性的当前值
|
||||
|
||||
// 使用 Object.defineProperty 方法在数据对象上定义属性的 getter 和 setter
|
||||
Object.defineProperty(this.data, 'park', {
|
||||
configurable: true, // 可配置
|
||||
enumerable: true, // 可枚举
|
||||
get: function () {
|
||||
return value; // 返回属性的当前值
|
||||
},
|
||||
set: function (newVal) {
|
||||
// const oldValue = value;
|
||||
value = newVal;
|
||||
wx.setStorageSync('park', newVal)
|
||||
}
|
||||
});
|
||||
},
|
||||
async getMeters({ id }) {
|
||||
const { code, message, data } = await getTenementMeterList(id);
|
||||
if (code !== OK) {
|
||||
|
|
|
@ -1,44 +0,0 @@
|
|||
import { throttle } from "../../utils/index"
|
||||
|
||||
Page({
|
||||
data: {
|
||||
motto: 'Hello World',
|
||||
num: 1,
|
||||
staffA: {firstName: 'Hulk', lastName: 'Hu'},
|
||||
staffB: {firstName: 'Shang', lastName: 'You'},
|
||||
staffC: {firstName: 'Gideon', lastName: 'Lin'}
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
onShow() {
|
||||
|
||||
},
|
||||
test: throttle(function() {
|
||||
|
||||
}, 500),
|
||||
payment: function() {
|
||||
wx.requestPayment({
|
||||
timeStamp: data?.time,
|
||||
nonceStr: data?.nonceStr,
|
||||
package: "prepay_id=" + data?.prepay_id,
|
||||
paySign: data?.paySign,
|
||||
signType: 'RSA',
|
||||
success (res) {
|
||||
console.log('success', res);
|
||||
},
|
||||
fail (res) {
|
||||
console.log('res', res)
|
||||
}
|
||||
})
|
||||
},
|
||||
kefu(e) {
|
||||
console.log('e', e);
|
||||
},
|
||||
increment() {
|
||||
// this.data.num = this.data.num +=1 ;
|
||||
this.setData({
|
||||
num: this.data.num + 1
|
||||
})
|
||||
}
|
||||
})
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"usingComponents": {
|
||||
"navigator": "/components/navigator/index"
|
||||
}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
<!--index.wxml-->
|
||||
<!-- <scroll-view class="scrollarea" scroll-y type="list">
|
||||
<view class="usermotto" bind:tap="payment">
|
||||
支付
|
||||
</view>
|
||||
<button open-type="contact" bindcontact="kefu"> 客服 </button>
|
||||
{{num}}
|
||||
<button bindtap="increment"> 增加 </button>
|
||||
</scroll-view> -->
|
||||
<navigator title="充值" />
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
/**index.wxss**/
|
||||
page {
|
||||
height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.usermotto {
|
||||
margin-top: 200px;
|
||||
text-align: center;
|
||||
}
|
|
@ -1,4 +1,6 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
"usingComponents": {
|
||||
"van-button": "@vant/weapp/button/index"
|
||||
}
|
||||
}
|
|
@ -1,2 +1,26 @@
|
|||
<!--pages/invoiceList/components/already/index.wxml-->
|
||||
<text>pages/invoiceList/components/already/index.wxml</text>
|
||||
<view class="card">
|
||||
<view class="left">
|
||||
<view class="title">
|
||||
河北华昌宝能售电有限公司
|
||||
</view>
|
||||
<view class="invoiceContent">
|
||||
发票内容:电费
|
||||
</view>
|
||||
<view class="invoiceType">
|
||||
发票类型:增值税专用发票
|
||||
</view>
|
||||
<view class="time">
|
||||
2024年3月3日 18:00:00
|
||||
</view>
|
||||
</view>
|
||||
<view class="right">
|
||||
<view class="money"> ¥3026 </view>
|
||||
<view class="operate">
|
||||
<view>
|
||||
<van-button type="info" class="save" bind:click="submit" size="small">发票</van-button>
|
||||
</view>
|
||||
<van-button type="info" class="save" bind:click="submit" size="small">明细</van-button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
|
@ -1 +1,20 @@
|
|||
/* pages/invoiceList/components/already/index.wxss */
|
||||
.card {
|
||||
margin-top: 20rpx;
|
||||
margin-bottom: 20rpx;
|
||||
margin-left: 30rpx;
|
||||
margin-right: 30rpx;
|
||||
display: flex;
|
||||
background-color: #fff;
|
||||
border-radius: 26rpx;
|
||||
padding: 20rpx;
|
||||
box-sizing: border-box
|
||||
;
|
||||
}
|
||||
|
||||
.left {
|
||||
flex: 1;
|
||||
}
|
||||
.right {
|
||||
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
import { getInvoiceInfoList } from "../../../../service/invoice"
|
||||
import { getInvoiceInfo, updateInvoiceInfo } from "../../../../service/invoice"
|
||||
import { alertInfo, alertSuccess } from "../../../../utils/index";
|
||||
|
||||
// pages/invoiceList/components/info/index.js
|
||||
Component({
|
||||
|
@ -11,20 +12,92 @@ Component({
|
|||
},
|
||||
lifetimes: {
|
||||
attached() {
|
||||
getInvoiceInfoList()
|
||||
this.getDetail();
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 组件的初始数据
|
||||
*/
|
||||
data: {
|
||||
|
||||
detail: { name: wx.getStorageSync('tenement')?.name, },
|
||||
formData: {headerType: 0,},
|
||||
editType: "detail"
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的方法列表
|
||||
*/
|
||||
methods: {
|
||||
async getDetail() {
|
||||
const { code, message, data } = await getInvoiceInfo()
|
||||
|
||||
this.setData({ detail: {...data, },editType: 'detail', formData: {} })
|
||||
},
|
||||
changeEditType() {
|
||||
this.setData({ editType: 'edit', formData: this.data.detail })
|
||||
},
|
||||
cancelEdit() {
|
||||
this.setData({ editType: 'detail', formData: {} })
|
||||
},
|
||||
onChangeType(e) {
|
||||
const { formData } = this.data;
|
||||
this.setData({ formData: {...formData, type: e.detail} })
|
||||
},
|
||||
onChangeHeaderType(e) {
|
||||
const { formData } = this.data;
|
||||
this.setData({ formData: {...formData, headerType: e.detail} })
|
||||
},
|
||||
onChangeText(e) {
|
||||
const { name } = e.currentTarget.dataset;
|
||||
const { formData } = this.data;
|
||||
this.setData({ formData: {...formData, [name]: e.detail} })
|
||||
},
|
||||
async submit() {
|
||||
const { formData } = this.data;
|
||||
const { tin, address, phone, bank, account, email, type, headerType, name } = formData;
|
||||
if (type !== 0 && type !== 1) {
|
||||
alertInfo("请选择发票类型");
|
||||
return;
|
||||
}
|
||||
if (headerType !== 0 && headerType !== 1) {
|
||||
alertInfo("请选择抬头类型");
|
||||
return;
|
||||
}
|
||||
if (headerType === 1) {
|
||||
if (!name) {
|
||||
alertInfo("请输入发票抬头")
|
||||
return
|
||||
}
|
||||
}
|
||||
if (!email || !/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(email)) {
|
||||
alertInfo("邮箱格式不正确")
|
||||
return;
|
||||
}
|
||||
if (headerType === 0) {
|
||||
if (!tin) {
|
||||
alertInfo("请输入发票税号")
|
||||
return;
|
||||
}
|
||||
// if (!address) {
|
||||
// alertInfo("请输入地址")
|
||||
// return;
|
||||
// }
|
||||
if (!phone) {
|
||||
alertInfo("请输入电话")
|
||||
return;
|
||||
}
|
||||
if (!bank) {
|
||||
alertInfo("请输入开户行")
|
||||
return;
|
||||
}
|
||||
if (!account) {
|
||||
alertInfo("请输入银行账号")
|
||||
return;
|
||||
}
|
||||
}
|
||||
const { code, message } = await updateInvoiceInfo(formData)
|
||||
alertSuccess("编辑成功")
|
||||
this.getDetail()
|
||||
}
|
||||
}
|
||||
})
|
|
@ -1,4 +1,11 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
"usingComponents": {
|
||||
"card": "/components/card/index",
|
||||
"van-icon": "@vant/weapp/icon/index",
|
||||
"van-field": "@vant/weapp/field/index",
|
||||
"van-radio": "@vant/weapp/radio/index",
|
||||
"van-radio-group": "@vant/weapp/radio-group/index",
|
||||
"van-button": "@vant/weapp/button/index"
|
||||
}
|
||||
}
|
|
@ -1,2 +1,240 @@
|
|||
<!--pages/invoiceList/components/info/index.wxml-->
|
||||
<text>pages/invoiceList/components/info/index.wxml</text>
|
||||
<view class="cardWrapper">
|
||||
<card title="发票详情">
|
||||
<view
|
||||
slot="operate"
|
||||
class="cardOperate"
|
||||
wx:if="{{editType === 'detail'}}"
|
||||
bind:tap="changeEditType"
|
||||
>
|
||||
<van-icon name="edit" />
|
||||
<view class="editContent">修改</view>
|
||||
</view>
|
||||
|
||||
<view slot="content">
|
||||
<van-field
|
||||
label="发票类型"
|
||||
readonly="{{editType === 'detail'}}"
|
||||
autosize="{{true}}"
|
||||
type="textarea"
|
||||
custom-style="padding-left: 0; padding-right: 0;"
|
||||
title-width="132rpx"
|
||||
border="{{ editType === 'detail' ? false : true }}"
|
||||
>
|
||||
<view slot="input" style="margin-top: 16rpx;" wx:if="{{editType === 'edit'}}">
|
||||
<van-radio-group direction="horizontal" value="{{formData.type}}" bind:change="onChangeType">
|
||||
<van-radio name="{{0}}" icon-size="30rpx" style="font-size: 30rpx;margin-bottom: 20rpx;">普通电子</van-radio>
|
||||
<van-radio name="{{1}}" icon-size="30rpx" style="font-size: 30rpx;">增值税专用电子</van-radio>
|
||||
</van-radio-group>
|
||||
</view>
|
||||
|
||||
<view wx:else slot="input" style="margin-top: -10rpx;">
|
||||
<view wx:if="{{formData.type === 0}}"> 普通电子发票 </view>
|
||||
<view wx:elif="{{formData.type === 1}}"> 增值税专用电子发票 </view>
|
||||
<view wx:else>-</view>
|
||||
</view>
|
||||
</van-field>
|
||||
<van-field
|
||||
label="抬头类型"
|
||||
readonly="{{editType === 'detail'}}"
|
||||
autosize="{{true}}"
|
||||
type="textarea"
|
||||
custom-style="padding-left: 0; padding-right: 0;"
|
||||
title-width="132rpx"
|
||||
border="{{ editType === 'detail' ? false : true }}"
|
||||
>
|
||||
<view slot="input" style="margin-top: 16rpx;" wx:if="{{editType === 'edit'}}">
|
||||
<van-radio-group direction="horizontal" bind:change="onChangeHeaderType">
|
||||
<van-radio name="{{0}}" icon-size="30rpx" style="font-size: 30rpx;margin-bottom: 20rpx;">企业单位</van-radio>
|
||||
<van-radio name="{{1}}" icon-size="30rpx" style="font-size: 30rpx;">个人/非企业单位</van-radio>
|
||||
</van-radio-group>
|
||||
</view>
|
||||
<view
|
||||
wx:else
|
||||
slot="input"
|
||||
style="margin-top: -10rpx;"
|
||||
>
|
||||
<view wx:if="{{formData.headerType === 0}}"> 企业单位 </view>
|
||||
<view wx:elif="{{formData.headerType === 1}}"> 个人/非企业单位 </view>
|
||||
<view wx:else>-</view>
|
||||
</view>
|
||||
</van-field>
|
||||
<van-field
|
||||
value="{{detail.name}}"
|
||||
label="发票抬头"
|
||||
custom-style="padding-left: 0; padding-right: 0;"
|
||||
readonly="{{editType === 'detail'}}"
|
||||
disabled="{{editType === 'edit' && formData.headerType !== 1}}"
|
||||
autosize="{{true}}"
|
||||
type="textarea"
|
||||
title-width="132rpx"
|
||||
bind:change="onChangeText"
|
||||
data-name="name"
|
||||
bind:change="onChangeText"
|
||||
border="{{ editType === 'detail' ? false : true }}"
|
||||
>
|
||||
<view
|
||||
wx:if="{{editType === 'detail' && !detail.name}}"
|
||||
slot="input"
|
||||
>
|
||||
<view>-</view>
|
||||
</view>
|
||||
</van-field>
|
||||
<van-field
|
||||
value="{{detail.tin}}"
|
||||
label="发票税号"
|
||||
wx:if="{{formData.headerType === 0}}"
|
||||
placeholder="{{editType === 'edit' ? '请输入发票税号' : ''}}"
|
||||
custom-style="padding-left: 0; padding-right: 0;"
|
||||
readonly="{{editType === 'detail'}}"
|
||||
autosize="{{true}}"
|
||||
type="textarea"
|
||||
title-width="132rpx"
|
||||
bind:change="onChangeText"
|
||||
data-name="tin"
|
||||
border="{{ editType === 'detail' ? false : true }}"
|
||||
>
|
||||
<view
|
||||
wx:if="{{editType === 'detail' && !detail.tin}}"
|
||||
slot="input"
|
||||
>
|
||||
<view>-</view>
|
||||
</view>
|
||||
</van-field>
|
||||
<van-field
|
||||
value="{{detail.bank}}"
|
||||
label="开户行"
|
||||
wx:if="{{formData.headerType === 0}}"
|
||||
placeholder="{{editType === 'edit' ? '请输入开户行' : ''}}"
|
||||
custom-style="padding-left: 0; padding-right: 0;"
|
||||
readonly="{{editType === 'detail'}}"
|
||||
autosize="{{bank}}"
|
||||
type="textarea"
|
||||
title-width="132rpx"
|
||||
border="{{ editType === 'detail' ? false : true }}"
|
||||
bind:change="onChangeText"
|
||||
data-name="bank"
|
||||
>
|
||||
<view
|
||||
wx:if="{{editType === 'detail' && !detail.bank}}"
|
||||
slot="input"
|
||||
>
|
||||
<view>-</view>
|
||||
</view>
|
||||
</van-field>
|
||||
<van-field
|
||||
value="{{detail.account}}"
|
||||
label="银行账号"
|
||||
wx:if="{{formData.headerType === 0}}"
|
||||
placeholder="{{editType === 'edit' ? '请输入银行账号' : ''}}"
|
||||
custom-style="padding-left: 0; padding-right: 0;"
|
||||
readonly="{{editType === 'detail'}}"
|
||||
autosize="{{true}}"
|
||||
type="textarea"
|
||||
title-width="132rpx"
|
||||
border="{{ editType === 'detail' ? false : true }}"
|
||||
bind:change="onChangeText"
|
||||
data-name="account"
|
||||
>
|
||||
<view
|
||||
wx:if="{{editType === 'detail' && !detail.account}}"
|
||||
slot="input"
|
||||
>
|
||||
<view>-</view>
|
||||
</view>
|
||||
</van-field>
|
||||
<van-field
|
||||
value="{{detail.address}}"
|
||||
label="地址"
|
||||
wx:if="{{formData.headerType === 0}}"
|
||||
placeholder="{{editType === 'edit' ? '请输入地址' : ''}}"
|
||||
custom-style="padding-left: 0; padding-right: 0;"
|
||||
readonly="{{editType === 'detail'}}"
|
||||
autosize="{{true}}"
|
||||
type="textarea"
|
||||
title-width="132rpx"
|
||||
border="{{ editType === 'detail' ? false : true }}"
|
||||
bind:change="onChangeText"
|
||||
data-name="address"
|
||||
>
|
||||
<view
|
||||
wx:if="{{editType === 'detail' && !detail.address}}"
|
||||
slot="input"
|
||||
>
|
||||
<view>-</view>
|
||||
</view>
|
||||
</van-field>
|
||||
<van-field
|
||||
value="{{detail.phone}}"
|
||||
label="电话"
|
||||
wx:if="{{formData.headerType === 0}}"
|
||||
placeholder="{{editType === 'edit' ? '请输入电话' : ''}}"
|
||||
custom-style="padding-left: 0; padding-right: 0;"
|
||||
readonly="{{editType === 'detail'}}"
|
||||
autosize="{{true}}"
|
||||
type="textarea"
|
||||
title-width="132rpx"
|
||||
border="{{ editType === 'detail' ? false : true }}"
|
||||
bind:change="onChangeText"
|
||||
data-name="phone"
|
||||
>
|
||||
<view
|
||||
wx:if="{{editType === 'detail' && !detail.phone}}"
|
||||
slot="input"
|
||||
>
|
||||
<view>-</view>
|
||||
</view>
|
||||
</van-field>
|
||||
<van-field
|
||||
value="{{detail.remark}}"
|
||||
label="备注"
|
||||
placeholder="{{editType === 'edit' ? '请输入备注' : ''}}"
|
||||
custom-style="padding-left: 0; padding-right: 0;"
|
||||
readonly="{{editType === 'detail'}}"
|
||||
autosize="{{true}}"
|
||||
type="textarea"
|
||||
title-width="132rpx"
|
||||
border="{{ editType === 'detail' ? false : true }}"
|
||||
bind:change="onChangeText"
|
||||
data-name="remark"
|
||||
>
|
||||
<view
|
||||
wx:if="{{editType === 'detail' && !detail.remark}}"
|
||||
slot="input"
|
||||
>
|
||||
<view>-</view>
|
||||
</view>
|
||||
</van-field>
|
||||
</view>
|
||||
</card>
|
||||
</view>
|
||||
<view class="cardWrapper" style="margin-bottom: 40rpx;">
|
||||
<card title="接收信息">
|
||||
<view slot="content">
|
||||
<van-field
|
||||
value="{{detail.email}}"
|
||||
label="电子邮箱"
|
||||
custom-style="padding-left: 0; padding-right: 0;"
|
||||
readonly="{{editType === 'detail'}}"
|
||||
autosize="{{true}}"
|
||||
type="textarea"
|
||||
title-width="132rpx"
|
||||
border="{{ editType === 'detail' ? false : true }}"
|
||||
bind:change="onChangeText"
|
||||
data-name="email"
|
||||
>
|
||||
<view
|
||||
wx:if="{{editType === 'detail' && !detail.email}}"
|
||||
slot="input"
|
||||
>
|
||||
<view>-</view>
|
||||
</view>
|
||||
</van-field>
|
||||
</view>
|
||||
</card>
|
||||
</view>
|
||||
|
||||
<view class="submit" wx:if="{{editType === 'edit'}}">
|
||||
<van-button block class="cancelEdit" bind:click="cancelEdit">取消编辑</van-button>
|
||||
<van-button type="info" block class="save" bind:click="submit">保存</van-button>
|
||||
</view>
|
|
@ -1 +1,34 @@
|
|||
/* pages/invoiceList/components/info/index.wxss */
|
||||
.cardOperate {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 32rpx;
|
||||
}
|
||||
|
||||
.cardWrapper {
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
|
||||
.editContent {
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
|
||||
.van-cell {
|
||||
padding-left: 0rpx !important;
|
||||
padding-right: 0rpx !important;
|
||||
}
|
||||
|
||||
.submit {
|
||||
margin: 32rpx;
|
||||
margin-bottom: 50rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.cancelEdit, .save {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.cancelEdit {
|
||||
margin-right: 40rpx;
|
||||
}
|
|
@ -16,7 +16,8 @@ Page({
|
|||
{ name: '编辑', },
|
||||
{ name: '删除', },
|
||||
],
|
||||
selectData: {}
|
||||
selectData: {},
|
||||
active: 1,
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -68,6 +69,9 @@ Page({
|
|||
break;
|
||||
}
|
||||
},
|
||||
onChange(e) {
|
||||
this.setData({ active: e.detail.index })
|
||||
},
|
||||
async handleDelete() {
|
||||
const { id } = this.data.selectData;
|
||||
await wxModal({ content: "确定要删除当前记录吗?" })
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
<navigator canBack="{{true}}" title="发票管理" />
|
||||
|
||||
<van-tabs active="{{ active }}" bind:change="onChange">
|
||||
<van-tab title="申请开票">
|
||||
<notyet />
|
||||
<notyet wx:if="{{active === 0}}" />
|
||||
</van-tab>
|
||||
<van-tab title="已开发票">
|
||||
<already />
|
||||
<already wx:if="{{active === 1}}" />
|
||||
</van-tab>
|
||||
<van-tab title="开票信息">
|
||||
<info />
|
||||
<info wx:if="{{active === 2}}" />
|
||||
</van-tab>
|
||||
</van-tabs>
|
|
@ -1,7 +0,0 @@
|
|||
<!--pages/invoicing/components/card/index.wxml-->
|
||||
<view class="cardBox">
|
||||
<view class="title"> {{ title }} </view>
|
||||
<view class="content">
|
||||
<slot />
|
||||
</view>
|
||||
</view>
|
|
@ -17,7 +17,6 @@ Page({
|
|||
*/
|
||||
onLoad(options) {
|
||||
const { money = 10, tenement, ids = 'q', count = 10 } = options;
|
||||
console.log('option', options)
|
||||
this.setData({ money, tenement, ids: ids.split(","), count })
|
||||
},
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"usingComponents": {
|
||||
"navigator": "/components/navigator/index",
|
||||
"van-button": "@vant/weapp/button/index",
|
||||
"card": "./components/card/index",
|
||||
"card": "/components/card/index",
|
||||
"van-radio": "@vant/weapp/radio/index",
|
||||
"van-radio-group": "@vant/weapp/radio-group/index",
|
||||
"van-field": "@vant/weapp/field/index",
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
</view>
|
||||
<view>
|
||||
<card title="发票类型">
|
||||
<van-radio-group disabled="{{true}}" direction="horizontal">
|
||||
<van-radio-group disabled="{{true}}" direction="horizontal" slot="content">
|
||||
<van-radio name="1" icon-size="30rpx" style="font-size: 32rpx;margin-bottom: 20rpx;">普通电子发票</van-radio>
|
||||
<van-radio name="2" icon-size="30rpx" style="font-size: 32rpx;">增值税专用电子发票</van-radio>
|
||||
</van-radio-group>
|
||||
|
@ -14,6 +14,7 @@
|
|||
</view>
|
||||
<view class="cardWrapper">
|
||||
<card title="发票详情">
|
||||
<view slot="content">
|
||||
<van-field
|
||||
value="{{ detail.name }}"
|
||||
label="抬头类型"
|
||||
|
@ -76,6 +77,8 @@
|
|||
label="备注说明"
|
||||
title-width="132rpx"
|
||||
/>
|
||||
</view>
|
||||
|
||||
</card>
|
||||
</view>
|
||||
<view class="content">
|
||||
|
|
|
@ -1,63 +0,0 @@
|
|||
import { approveUser, getApproveList } from "../../../../service/user"
|
||||
import { alertInfo, alertSuccess, wxModal } from "../../../../utils/index";
|
||||
import request from "../../../../utils/request"
|
||||
|
||||
const { OK } = request;
|
||||
|
||||
Component({
|
||||
|
||||
/**
|
||||
* 组件的属性列表
|
||||
*/
|
||||
properties: {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的初始数据
|
||||
*/
|
||||
data: {
|
||||
list: []
|
||||
},
|
||||
lifetimes: {
|
||||
attached: function() {
|
||||
// this.setData({
|
||||
// list: []
|
||||
// })
|
||||
this.init();
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 组件的方法列表
|
||||
*/
|
||||
methods: {
|
||||
async init() {
|
||||
const result = await getApproveList()
|
||||
this.setData({
|
||||
list: result.data
|
||||
})
|
||||
},
|
||||
async agree(e) {
|
||||
const { user } = e.currentTarget.dataset;
|
||||
await wxModal({ content: `同意${user.nickName}的申请?` })
|
||||
const { code, message } = await approveUser({ userId: user.id, type: 1 })
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return;
|
||||
}
|
||||
alertSuccess("已同意")
|
||||
this.init()
|
||||
},
|
||||
async disAgree(e) {
|
||||
const { user } = e.currentTarget.dataset;
|
||||
await wxModal({ content: `拒绝${user.nickName}的申请?` })
|
||||
const { code, message } = await approveUser({ userId: user.id, type: 0 })
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return;
|
||||
}
|
||||
alertSuccess("已拒绝")
|
||||
this.init()
|
||||
}
|
||||
}
|
||||
})
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
<!--pages/member/components/approveMember/index.wxml-->
|
||||
<view wx:for="{{list}}" wx:key="index" wx:for-item="item" class="item">
|
||||
<view class="nickName"> {{ item.nickName }} </view>
|
||||
<view class="operate">
|
||||
<view class="primaryTextBtn" data-user="{{item}}" bind:tap="agree"> 同意 </view>
|
||||
<view class="disAgree dangerTextBtn" data-user="{{item}}" bind:tap="disAgree"> 拒绝 </view>
|
||||
</view>
|
||||
</view>
|
|
@ -1,21 +0,0 @@
|
|||
/* pages/member/components/approveMember/index.wxss */
|
||||
.item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-top: 24rpx;
|
||||
padding-bottom: 24rpx;
|
||||
margin-left: 32rpx;
|
||||
margin-right: 32rpx;
|
||||
}
|
||||
|
||||
.nickName {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.operate {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.disAgree {
|
||||
margin-left: 24rpx;
|
||||
}
|
|
@ -1,8 +1,6 @@
|
|||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"van-tab": "@vant/weapp/tab/index",
|
||||
"van-tabs": "@vant/weapp/tabs/index",
|
||||
"avatar": "/components/avatar/index",
|
||||
"van-button": "@vant/weapp/button/index"
|
||||
}
|
||||
|
|
|
@ -1,15 +1,13 @@
|
|||
<van-tabs active="{{ active }}" bind:change="onChange">
|
||||
<van-tab wx:for="{{list}}" wx:key="index" title="{{item.name}}">
|
||||
<view wx:for="{{item.users}}" wx:key="index" wx:for-item="ele" class="item">
|
||||
|
||||
|
||||
<view wx:for="{{list}}" wx:key="index" wx:for-item="ele" class="item">
|
||||
<avatar text="{{ele.name}}" />
|
||||
<view class="info">
|
||||
<view class="nickName"> {{ ele.name }} </view>
|
||||
<view class="phone"> {{ ele.phone }} </view>
|
||||
</view>
|
||||
<view class="operate">
|
||||
<view class="operate" wx:if="{{!ele.isAdmin}}">
|
||||
<van-button type="info" size="small" data-user="{{ele}}" bind:click="setAdmin" data-tenement="{{item.id}}" style="margin-bottom: 16rpx;" class="admin">设为管理员</van-button>
|
||||
<van-button type="danger" size="small" data-user="{{ele}}" bind:click="remove" data-tenement="{{item.id}}" class="remove">移除</van-button>
|
||||
</view>
|
||||
</view>
|
||||
</van-tab>
|
||||
</van-tabs>
|
|
@ -2,7 +2,6 @@
|
|||
"usingComponents": {
|
||||
"van-tab": "@vant/weapp/tab/index",
|
||||
"van-tabs": "@vant/weapp/tabs/index",
|
||||
"approve-member": "./components/approveMember/index",
|
||||
"member-manage": "./components/memberManage/index",
|
||||
"navigator": "/components/navigator/index"
|
||||
},
|
||||
|
|
|
@ -106,7 +106,6 @@ Page({
|
|||
let tenements = [{id: "", name: "全部"}];
|
||||
data.forEach(item => {
|
||||
if (item.tenements) {
|
||||
console.log('item.te', item.tenements)
|
||||
tenements = [...tenements, ...item.tenements]
|
||||
}
|
||||
})
|
||||
|
@ -114,6 +113,10 @@ Page({
|
|||
},
|
||||
async init(year, tenement) {
|
||||
const { code, message, data = [], amount = 0 } = await getRechargeList(year, tenement);
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
list: data,
|
||||
amount
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
import apis from '../utils/request';
|
||||
const { GET, POST, PUT, DELETE } = apis
|
||||
|
||||
// 获取创建的发开票信息列表
|
||||
export const getInvoiceInfoList = async function() {
|
||||
return await GET(`/wx/getInvoiceInfoList`);
|
||||
// 获取当前商户开票信息
|
||||
export const getInvoiceInfo = async function() {
|
||||
return await GET(`/wx/getInvoiceInfo/${wx.getStorageSync('tenement').id}`);
|
||||
}
|
||||
|
||||
// 创建开票信息
|
||||
|
@ -13,7 +13,7 @@ export const createInvoiceInfo = async function(data) {
|
|||
|
||||
// 修改开票信息
|
||||
export const updateInvoiceInfo = async function(data) {
|
||||
return await PUT(`/wx/updateInvoiceInfo/${id}`, data);
|
||||
return await PUT(`/wx/updateInvoiceInfo`, data);
|
||||
}
|
||||
|
||||
// 删除发票信息
|
||||
|
|
|
@ -89,6 +89,7 @@ const parseResponse = function (response, url) {
|
|||
wx.redirectTo({
|
||||
url: '/pages/login/index',
|
||||
})
|
||||
wx.clearStorageSync()
|
||||
return { code: 401, message: '未登录状态' }
|
||||
}
|
||||
if (statusCode === 403) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user