<template> <view class="detail-view"> <u-form label-width="150" :model="add_form" ref="uForm"> <view class="form-model-view"> <u-form-item required label="退款单位"> <u-input @click="goPage('/pagesT/customer/selCustomer')" disabled class="dis-input" v-model="add_form.unitName" placeholder="请选择" /> <u-icon name="arrow-right" size="24" color="#6c6c6c"></u-icon> </u-form-item> <u-form-item label="单据日期"> <picker mode="date" @change="bindDateChange"> <view style="width: 524rpx;text-align: right;display: inline-block;margin-right: 10rpx;"> <text v-if="add_form.refundTime">{{ $u.timeFormat(add_form.refundTime, 'yyyy-mm-dd') }}</text> <text style="color:#B8C0C8;" v-else>请选择</text> </view> <u-icon name="arrow-right" size="24" color="#6c6c6c"></u-icon> </picker> </u-form-item> <u-form-item required label="所属店铺"> <u-input @click="goPage('/pagesT/shop/selShop')" disabled class="dis-input" v-model="add_form.shopName" placeholder="请选择" /> <u-icon name="arrow-right" size="24" color="#6c6c6c"></u-icon> </u-form-item> </view> <view class="form-model-view"> <u-form-item label="退款单明细"> <view class="form-value add-btn-go" @click="addAccount"> <u-icon name="plus" size="24"></u-icon> <text>新增</text> </view> </u-form-item> <view class="detail-ul"> <view class="detail-li" v-for="(item, index) in add_form.accountList" :key="index"> <view class="del-icon" @click="delAccount(index)"><u-icon name="minus-circle-fill" size="40" color="#fa3534"></u-icon></view> <u-form-item label="结算账户"> <view class="in-form-item"> <u-input @click="settlementAccount(index)" disabled v-model="item.accountName" placeholder="请选择" /> <view class="icon-arrow-right"><u-icon name="arrow-right" size="24" color="#6c6c6c"></u-icon></view> </view> </u-form-item> <u-form-item label="退款金额"><input placeholder-style="color:#B8C0C8" type="digit" v-model="item.money" placeholder="请输入退款金额" /></u-form-item> <view class="bottom clearfix"><input placeholder-style="color:#B8C0C8" type="text" v-model="item.remark" placeholder="说点什么吧" /></view> </view> </view> </view> </u-form> <view class="detail-bottom"><u-button class="handel-btn" @click="submit" :loading="sub_load" :ripple="true" type="primary">提交</u-button></view> </view> </template> <script> export default { data() { return { sub_load: false, add_form: { unitId: '', unitName: '', sourceNo: '', sourceNoMoney: '', currentAccountName: '', financeType: '销售退款', financeTypeId: 12, shopId: '', money: '', shopName: '', refundTime: '', createTime: '', accountList: [ { accountId: '', accountNumber: '', accountName: '', money: '', discountMoney: '', finalMoney: '', payWay: '', remark: '' } ] }, methods_show: false, account_index: 0, customerData: '', account_id: '', shopData: '', AccountData: '', tag: '' }; }, computed: { userInfo() { return this.$store.state.userInfo; } }, watch: { customerData(val) { if (val) { console.log(val); this.add_form.unitId = val.id; this.add_form.unitName = val.name; this.add_form.money = val.money; this.add_form.type = val.type; } }, // 店铺 shopData(val) { if (val) { this.add_form.shopName = val.name; this.add_form.shopId = val.id; } }, AccountData(val) { if (val) { this.add_form.accountList[this.account_index].accountId = val.id; this.add_form.accountList[this.account_index].accountName = val.name; this.add_form.accountList[this.account_index].accountNumber = val.accountNumber; } } }, onLoad(options) { this.add_form.refundTime = parseInt(new Date().getTime() / 1000); }, methods: { change(e) { this.refundTime = new Date().getTime(); }, addAccount() { this.add_form.receiptOffsetData.push({ collectionAmount: '', preferentialAmount: '', actualAmount: '', settlementMethod: '', remark: '' }); }, delAccount(index) { if (this.add_form.accountList.length === 1) { this.$u.toast('至少保留一条'); return; } this.add_form.accountList.splice(index, 1); }, // 添加 submit() { if (!this.add_form.unitName) { this.$u.toast('请选择退款单位'); return; } if (!this.add_form.shopId) { this.$u.toast('请选择所属店铺'); return; } let isSub = true; for (let i in this.add_form.accountList) { let item = this.add_form.accountList[i]; if (!item.accountName) { isSub = false; this.$u.toast('请选择结算账户'); break; } if (!item.money) { isSub = false; this.$u.toast('请输入退款金额'); break; } } if (!isSub) { return; } this.sub_load = true; this.$u.api .addRefund({ ...this.add_form, currentAccountName: this.userInfo.name }) .then(res => { this.sub_load = false; this.$u.toast('新增成功'); setTimeout(() => { uni.navigateBack(); }, 1500); }) .catch(err => { this.sub_load = false; }); }, settlementAccount(index) { if (!this.add_form.shopId) { this.$u.toast('请先选择商铺'); return; } this.goPage('/pagesT/account/selAccount?shopId=' + this.add_form.shopId); this.account_index = index; }, bindDateChange(e) { this.add_form.refundTime = this.$utils.timeByTimestamp(e.detail.value + ' 00:00:00'); } } }; </script> <style lang="scss" scoped> .detail-ul { .detail-li { padding-left: 60rpx; position: relative; border-bottom: 1px solid #eeeeee; &:last-child { border-bottom: 0 none; } .del-icon { position: absolute; top: 36%; left: 0; transform: translateY(-50%); } .title { line-height: 80rpx; } .money-ul { border-top: 1px solid #eeeeee; padding: 20rpx 0; display: flex; .money-li { flex: 3; border-right: 1px solid #eeeeee; input { height: 80rpx; line-height: 80rpx; text-align: center; } &:last-child { border-right: 0 none; } } } .bottom { // border-top: 1px solid #eeeeee; input { height: 80rpx; line-height: 80rpx; } } } } .in-form-item { position: relative; padding-right: 30rpx; .icon-arrow-right { position: absolute; right: 0; top: 50%; transform: translateY(-50%); } } </style>