|
@@ -1,7 +1,20 @@
|
|
|
<template>
|
|
|
<div class="app-container">
|
|
|
+ <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
|
|
|
+ <el-form-item label="门店名称" prop="orgName">
|
|
|
+ <el-input v-model="queryParams.orgName" placeholder="请输入门店名称" clearable @keyup.enter.native="handleQuery" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="状态" prop="status">
|
|
|
+ <el-select v-model="queryParams.status" placeholder="请选择状态" clearable>
|
|
|
+ <el-option v-for="dict in dict.type.settlement_status_type" :key="dict.value" :label="dict.label" :value="dict.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
<el-table v-loading="loading" fit highlight-current-row border stripe :data="billList" @selection-change="handleSelectionChange">
|
|
|
- <el-table-column label="门店名称" align="center" prop="orgName" width="130px"> </el-table-column>
|
|
|
+ <el-table-column label="门店名称" align="center" prop="orgName" width="130px" />
|
|
|
<el-table-column label="账单标题" align="center" prop="title" width="100px" />
|
|
|
<el-table-column label="开始时间" align="center" prop="beginTime" width="100px" />
|
|
|
<el-table-column label="结束时间" align="center" prop="endTime" width="100px" />
|
|
@@ -19,15 +32,20 @@
|
|
|
<el-table-column label="未开卡卡密金额" align="center" prop="unopenedCardPasswordAmount" width="140px" />
|
|
|
<el-table-column label="已付卡密押金" align="center" prop="paidCardPasswordDeposit" width="130px" />
|
|
|
<el-table-column label="已付福利押金" align="center" prop="paidWelfareDeposit" width="100px" />
|
|
|
- <el-table-column label="支付宝/微信" align="center" prop="alipayAndWechatAmount" width="100px" />
|
|
|
+ <el-table-column label="支付宝/微信" align="center" prop="alipayAndWechatAmount" width="130px">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-tag size="mini" type="success">微信实收:¥{{ scope.row.wechatAmount || '0' }}</el-tag>
|
|
|
+ <el-tag size="mini" type="warning">支付宝实收:¥{{ scope.row.alipayAmount || '0' }}</el-tag>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="原材料备用金" align="center" prop="materialImprestAmount" width="100px" />
|
|
|
+ <el-table-column label="原材料剩余金额" align="center" prop="materialImprestRemainAmount" width="120px" />
|
|
|
<el-table-column label="系统维护费" align="center" prop="systemMaintenanceAmount" width="100px" />
|
|
|
<el-table-column label="洗衣费" align="center" prop="washClothAmount" width="100px" />
|
|
|
<el-table-column label="顺丰快递费" align="center" prop="sfExpressAmount" width="100px" />
|
|
|
<el-table-column label="跨店结算金" align="center" prop="crossStoreSettlementAmount" width="100px" />
|
|
|
<el-table-column label="超额订货金额" align="center" prop="overOrderingAmount" width="100px" />
|
|
|
<el-table-column label="结算金额" align="center" prop="settlementAmount" width="100px" />
|
|
|
-
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150">
|
|
|
<template slot-scope="scope">
|
|
|
<el-button type="text" @click="getDetail(scope.row)">详情</el-button>
|
|
@@ -37,169 +55,170 @@
|
|
|
|
|
|
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
|
|
|
|
|
|
- <el-dialog :title="title" :visible.sync="open" size="50%" append-to-body v-if="settlementManageStore">
|
|
|
- <el-row :gutter="15">
|
|
|
- <el-card>
|
|
|
- <el-descriptions :column="3" direction="vertical" border :label-style="{ 'text-align': 'center' }" :content-style="{ 'text-align': 'center', color: '#ff4949', 'font-size': '15px', 'font-weight': 'bold' }">
|
|
|
- <el-descriptions-item label="门店名称" :span="3">{{ sysStore == null ? '--' : sysStore.name }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="开始时间">{{ settlementManageStore == null ? '--' : settlementManageStore.beginTime }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="结束时间">{{ settlementManageStore == null ? '--' : settlementManageStore.endTime }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="会员剩余金额(元)"> {{ settlementManageStore.memberBalance == null ? '0' : settlementManageStore.memberBalance }}</el-descriptions-item>
|
|
|
- <el-descriptions-item>
|
|
|
- <span slot="label">
|
|
|
- <el-tooltip content="应付押金 =会员剩余金额 *费率" placement="top">
|
|
|
- <i class="el-icon-question"></i>
|
|
|
- </el-tooltip>
|
|
|
- 应付押金(元)
|
|
|
- </span>
|
|
|
- {{ settlementManageStore.payableDeposit == null ? '0' : settlementManageStore.payableDeposit }}</el-descriptions-item
|
|
|
- >
|
|
|
- <el-descriptions-item label="已付押金(元)"> {{ settlementManageStore.paidDeposit == null ? '0' : settlementManageStore.paidDeposit }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="福利金额(元)"> {{ settlementManageStore.welfareAmount == null ? '0' : settlementManageStore.welfareAmount }}</el-descriptions-item>
|
|
|
- <el-descriptions-item>
|
|
|
- <span slot="label">
|
|
|
- <el-tooltip content="应付福利押金=福利金额 *费率" placement="top">
|
|
|
- <i class="el-icon-question"></i>
|
|
|
- </el-tooltip>
|
|
|
- 福利押金(元)
|
|
|
- </span>
|
|
|
- {{ settlementManageStore.welfareDeposit == null ? '0' : settlementManageStore.welfareDeposit }}</el-descriptions-item
|
|
|
- >
|
|
|
- <el-descriptions-item>
|
|
|
- <span slot="label">
|
|
|
- <el-tooltip content="应付卡密押金=未开卡卡密金额 *费率" placement="top">
|
|
|
- <i class="el-icon-question"></i>
|
|
|
- </el-tooltip>
|
|
|
- 卡密押金(元)
|
|
|
- </span>
|
|
|
- {{ settlementManageStore.cardPasswordDeposit == null ? '0' : settlementManageStore.cardPasswordDeposit }}</el-descriptions-item
|
|
|
- >
|
|
|
- <el-descriptions-item label="未开卡卡密金额(元)"> {{ settlementManageStore.unopenedCardPasswordAmount == null ? '0' : settlementManageStore.unopenedCardPasswordAmount }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="已付福利押金(元)"> {{ settlementManageStore.paidWelfareDeposit == null ? '0' : settlementManageStore.paidWelfareDeposit }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="已付卡密押金(元)"> {{ settlementManageStore.paidCardPasswordDeposit == null ? '0' : settlementManageStore.paidCardPasswordDeposit }}</el-descriptions-item>
|
|
|
- <el-descriptions-item>
|
|
|
- <span slot="label">
|
|
|
- <el-tooltip content="支付宝/微信=所有收银*(1-费率)" placement="top">
|
|
|
- <i class="el-icon-question"></i>
|
|
|
- </el-tooltip>
|
|
|
- 支付宝/微信(元)
|
|
|
- </span>
|
|
|
- {{ settlementManageStore.alipayAndWechatAmount == null ? '0' : settlementManageStore.alipayAndWechatAmount }}</el-descriptions-item
|
|
|
- >
|
|
|
- <el-descriptions-item>
|
|
|
- <span slot="label">
|
|
|
- <el-tooltip content="原材料备用金=订单金额*费率" placement="top">
|
|
|
- <i class="el-icon-question"></i>
|
|
|
- </el-tooltip>
|
|
|
- 原材料备用金(元)
|
|
|
- </span>
|
|
|
- {{ settlementManageStore.materialImprestAmount == null ? '0' : settlementManageStore.materialImprestAmount }}</el-descriptions-item
|
|
|
- >
|
|
|
- <el-descriptions-item>
|
|
|
- <span slot="label">
|
|
|
- <el-tooltip content="系统维护费=订单金额*费率" placement="top">
|
|
|
- <i class="el-icon-question"></i>
|
|
|
- </el-tooltip>
|
|
|
- 系统维护费(元)
|
|
|
- </span>
|
|
|
- {{ settlementManageStore.systemMaintenanceAmount == null ? '--' : settlementManageStore.systemMaintenanceAmount }}</el-descriptions-item
|
|
|
- >
|
|
|
- <el-descriptions-item>
|
|
|
- <span slot="label">
|
|
|
- <el-tooltip content="洗衣费=洗衣单项总金额*费率" placement="top">
|
|
|
- <i class="el-icon-question"></i>
|
|
|
- </el-tooltip>
|
|
|
- 洗衣费(元)
|
|
|
- </span>
|
|
|
- {{ settlementManageStore.washClothAmount == null ? '0' : settlementManageStore.washClothAmount }}</el-descriptions-item
|
|
|
- >
|
|
|
- <el-descriptions-item>
|
|
|
- <span slot="label">
|
|
|
- <el-tooltip content="顺丰快递费=顺丰订单数*9" placement="top">
|
|
|
- <i class="el-icon-question"></i>
|
|
|
- </el-tooltip>
|
|
|
- 顺丰快递费(元)
|
|
|
- </span>
|
|
|
- {{ settlementManageStore.sfExpressAmount == null ? '0' : settlementManageStore.sfExpressAmount }}</el-descriptions-item
|
|
|
- >
|
|
|
- <el-descriptions-item>
|
|
|
- <span slot="label">
|
|
|
- <el-tooltip content="[跨店结算金=(本店卡:洗衣*费率-异店卡:洗衣*费率)+(本店卡:零售*费率-异店卡:零售*费率)+(本店卡:app*费率-异店卡:app*费率)+(本店卡:第三方*费率-异店卡:第三方*费率)]" placement="top">
|
|
|
- <i class="el-icon-question"></i>
|
|
|
- </el-tooltip>
|
|
|
- 跨店结算金(元)
|
|
|
- </span>
|
|
|
- {{ settlementManageStore.crossStoreSettlementAmount == null ? '0' : settlementManageStore.crossStoreSettlementAmount }}</el-descriptions-item
|
|
|
- >
|
|
|
- <el-descriptions-item label="超额订货金额(元)"> {{ settlementManageStore.overOrderingAmount == null ? '0' : settlementManageStore.overOrderingAmount }}</el-descriptions-item>
|
|
|
- <el-descriptions-item>
|
|
|
- <span slot="label">
|
|
|
- <el-tooltip content="(结算金额=支付宝/微信-(应付押金-已付押金)-(应付福利押金+卡密押金-已付福利押金-已付卡密押金)-原材料备用金-系统维护费-洗衣费-顺丰快递费-跨店结算金-超额订货金额)" placement="top">
|
|
|
- <i class="el-icon-question"></i>
|
|
|
- </el-tooltip>
|
|
|
- 结算金额(元)
|
|
|
- </span>
|
|
|
- {{ settlementManageStore.settlementAmount == null ? '0' : settlementManageStore.settlementAmount }}</el-descriptions-item
|
|
|
- >
|
|
|
- <el-descriptions-item label="是否确认数据符合">{{ getCheckName }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="数据确认时间">{{ settlementManageStore.dataCheckTime == null ? '暂无数据' : settlementManageStore.dataCheckTime }}</el-descriptions-item>
|
|
|
- <el-descriptions-item label="数据确认说明">{{ settlementManageStore.dataCheckDesc == null ? '暂无数据' : settlementManageStore.dataCheckDesc }}</el-descriptions-item>
|
|
|
- </el-descriptions>
|
|
|
- </el-card>
|
|
|
- <el-card>
|
|
|
- <el-form ref="form" :model="form" :rules="rules" label-width="50%" style="margin-top: 10px" v-if="settlementManageStore">
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="收取余额押金" prop="settlePaidDeposit">
|
|
|
- <el-input-number v-model="form.settlePaidDeposit" :controls="false" placeholder="请输入收取余额押金" :disabled="getCanEdit" :max="9999999" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="收取福利押金" prop="settleWelfareDeposit">
|
|
|
- <el-input-number v-model="form.settleWelfareDeposit" :controls="false" placeholder="请输入收取余额押金" :disabled="getCanEdit" :max="9999999" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="收取卡密押金" prop="settleGetCardPasswordDeposit">
|
|
|
- <el-input-number v-model="form.settleGetCardPasswordDeposit" :controls="false" placeholder="请输入收取余额押金" :disabled="getCanEdit" :max="9999999" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="收取材料费" prop="settleMaterialImprestAmount">
|
|
|
- <el-input-number v-model="form.settleMaterialImprestAmount" :controls="false" placeholder="请输入收取余额押金" :disabled="getCanEdit" :max="9999999" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="清算【实际结算金额】" prop="realSettlementAmount">
|
|
|
- <el-input-number v-model="form.realSettlementAmount" :controls="false" placeholder="请输入收取余额押金" :disabled="getCanEdit" :max="9999999" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="清算备注" prop="settleRemark">
|
|
|
- <el-input v-model="form.settleRemark" style="width: auto" type="textarea" :rows="4" placeholder="请输入清算备注" :disabled="getCanEdit" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-form>
|
|
|
- <div>
|
|
|
- <el-button type="primary" @click="restartCountSettlementAmount" v-if="settlementManageStore.status != '1'" style="margin-left: 50%; margin-top: 10px">重新计算实际结算金额</el-button>
|
|
|
- </div>
|
|
|
- </el-card>
|
|
|
+ <el-dialog :title="title" :visible.sync="open" width="80%" append-to-body v-if="settlementManageStore">
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <!-- 基本信息 -->
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-card class="box-card">
|
|
|
+ <div slot="header">
|
|
|
+ <span>基本信息</span>
|
|
|
+ </div>
|
|
|
+ <el-descriptions :column="3" border>
|
|
|
+ <el-descriptions-item label="门店名称">{{ sysStore && sysStore.name || '--' }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="开始时间">{{ settlementManageStore && settlementManageStore.beginTime || '--' }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="结束时间">{{ settlementManageStore && settlementManageStore.endTime || '--' }}</el-descriptions-item>
|
|
|
+ </el-descriptions>
|
|
|
+ </el-card>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <!-- 收支明细 -->
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-card class="box-card">
|
|
|
+ <div slot="header">
|
|
|
+ <span>收支明细</span>
|
|
|
+ </div>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-statistic title="支付宝/微信收入" :value="settlementManageStore.alipayAndWechatAmount" :precision="2">
|
|
|
+ <template slot="suffix">元</template>
|
|
|
+ </el-statistic>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-statistic title="微信实收" :value="settlementManageStore.wechatAmount" :precision="2">
|
|
|
+ <template slot="suffix">元</template>
|
|
|
+ </el-statistic>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-statistic title="支付宝实收" :value="settlementManageStore.alipayAmount" :precision="2">
|
|
|
+ <template slot="suffix">元</template>
|
|
|
+ </el-statistic>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
+ </el-card>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <!-- 押金信息 -->
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-card class="box-card">
|
|
|
+ <div slot="header">
|
|
|
+ <span>押金信息</span>
|
|
|
+ <el-tooltip content="押金 = 会员剩余金额 * 费率" placement="top">
|
|
|
+ <i class="el-icon-question"></i>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ <el-form ref="depositForm" :model="form" label-width="120px">
|
|
|
+ <el-form-item label="会员剩余金额">
|
|
|
+ <el-input-number v-model="settlementManageStore.memberBalance" :disabled="true" :precision="2" :controls="false" style="width: 180px"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="应付押金">
|
|
|
+ <el-input-number v-model="settlementManageStore.payableDeposit" :disabled="true" :precision="2" :controls="false" style="width: 180px"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="收取押金" prop="settlePaidDeposit">
|
|
|
+ <el-input-number v-model="form.settlePaidDeposit" :disabled="getCanEdit" :precision="2" :controls="false" style="width: 180px" @change="handleAmountChange"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-card>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <!-- 福利信息 -->
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-card class="box-card">
|
|
|
+ <div slot="header">
|
|
|
+ <span>福利信息</span>
|
|
|
+ <el-tooltip content="福利押金 = 福利金额 * 费率" placement="top">
|
|
|
+ <i class="el-icon-question"></i>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ <el-form ref="welfareForm" :model="form" label-width="120px">
|
|
|
+ <el-form-item label="福利金额">
|
|
|
+ <el-input-number v-model="settlementManageStore.welfareAmount" :disabled="true" :precision="2" :controls="false" style="width: 180px"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="应付福利押金">
|
|
|
+ <el-input-number v-model="settlementManageStore.welfareDeposit" :disabled="true" :precision="2" :controls="false" style="width: 180px"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="收取福利押金" prop="settleWelfareDeposit">
|
|
|
+ <el-input-number v-model="form.settleWelfareDeposit" :disabled="getCanEdit" :precision="2" :controls="false" style="width: 180px" @change="handleAmountChange"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-card>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <!-- 卡密信息 -->
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-card class="box-card">
|
|
|
+ <div slot="header">
|
|
|
+ <span>卡密信息</span>
|
|
|
+ <el-tooltip content="卡密押金 = 未开卡卡密金额 * 费率" placement="top">
|
|
|
+ <i class="el-icon-question"></i>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ <el-form ref="cardForm" :model="form" label-width="120px">
|
|
|
+ <el-form-item label="未开卡卡密金额">
|
|
|
+ <el-input-number v-model="settlementManageStore.unopenedCardPasswordAmount" :disabled="true" :precision="2" :controls="false" style="width: 180px"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="应付卡密押金">
|
|
|
+ <el-input-number v-model="settlementManageStore.cardPasswordDeposit" :disabled="true" :precision="2" :controls="false" style="width: 180px"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="收取卡密押金" prop="settleGetCardPasswordDeposit">
|
|
|
+ <el-input-number v-model="form.settleGetCardPasswordDeposit" :disabled="getCanEdit" :precision="2" :controls="false" style="width: 180px" @change="handleAmountChange"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-card>
|
|
|
+ </el-col>
|
|
|
|
|
|
- <div slot="footer" class="dialog-footer" v-if="settlementManageStore.status != '1'">
|
|
|
- <el-button type="primary" @click="submitForm" style="margin-left: 5%">确认结算</el-button>
|
|
|
- <el-button @click="cancel">取 消</el-button>
|
|
|
+ <!-- 其他费用 -->
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-card class="box-card">
|
|
|
+ <div slot="header">
|
|
|
+ <span>其他费用</span>
|
|
|
</div>
|
|
|
- </el-dialog>
|
|
|
+ <el-form ref="otherForm" :model="form" label-width="120px">
|
|
|
+ <el-form-item label="原材料备用金">
|
|
|
+ <el-input-number v-model="settlementManageStore.materialImprestAmount" :disabled="true" :precision="2" :controls="false" style="width: 180px"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="收取材料费" prop="settleMaterialImprestAmount">
|
|
|
+ <el-input-number v-model="form.settleMaterialImprestAmount" :disabled="getCanEdit" :precision="2" :controls="false" style="width: 180px" @change="handleAmountChange"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-card>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <!-- 结算金额 -->
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-card class="box-card">
|
|
|
+ <div slot="header">
|
|
|
+ <span>结算金额</span>
|
|
|
+ <el-tooltip content="结算金额 = 支付宝/微信 - 收取押金 - 收取福利押金 - 收取卡密押金 - 收取材料费 - 系统维护费 - 洗衣费 - 顺丰快递费 - 跨店结算金 - 超额订货金额" placement="top">
|
|
|
+ <i class="el-icon-question"></i>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ <el-form ref="settlementForm" :model="form" label-width="120px">
|
|
|
+ <el-form-item label="实际结算金额" prop="realSettlementAmount">
|
|
|
+ <el-input-number v-model="form.realSettlementAmount" :disabled="true" :precision="2" :controls="false" style="width: 180px"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="清算备注" prop="settleRemark">
|
|
|
+ <el-input type="textarea" v-model="form.settleRemark" :rows="3" :disabled="getCanEdit" style="width: 100%"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-card>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="submitForm" v-if="!getCanEdit">确认结算</el-button>
|
|
|
+ <el-button @click="cancel">关 闭</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import { getRate, delRate } from '@/api/settlement/rate'
|
|
|
import { allOrg } from '@/api/system/store'
|
|
|
-import { insertSettlementBill, listFactorySettlement, listSettlementBill, confirmSettlementByFactory, listStoreSettlement, getInfoByStore, submitStoreSettlement } from '@/api/settlement/bill'
|
|
|
+import { listStoreSettlement, getInfoByStore, submitStoreSettlement } from '@/api/settlement/bill'
|
|
|
|
|
|
export default {
|
|
|
- name: 'billSettlementStore',
|
|
|
+ name: 'BillSettlementStore',
|
|
|
dicts: ['settlement_status_type'],
|
|
|
data() {
|
|
|
return {
|
|
@@ -232,7 +251,29 @@ export default {
|
|
|
form: {},
|
|
|
// 表单校验
|
|
|
rules: {
|
|
|
- title: [{ required: true, message: '账单标题不能为空', trigger: 'blur' }]
|
|
|
+ settlePaidDeposit: [
|
|
|
+ { required: true, message: '请输入收取余额押金', trigger: 'blur' },
|
|
|
+ { type: 'number', message: '收取余额押金必须为数字', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ settleWelfareDeposit: [
|
|
|
+ { required: true, message: '请输入收取福利押金', trigger: 'blur' },
|
|
|
+ { type: 'number', message: '收取福利押金必须为数字', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ settleGetCardPasswordDeposit: [
|
|
|
+ { required: true, message: '请输入收取卡密押金', trigger: 'blur' },
|
|
|
+ { type: 'number', message: '收取卡密押金必须为数字', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ settleMaterialImprestAmount: [
|
|
|
+ { required: true, message: '请输入收取材料费', trigger: 'blur' },
|
|
|
+ { type: 'number', message: '收取材料费必须为数字', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ realSettlementAmount: [
|
|
|
+ { required: true, message: '请输入实际结算金额', trigger: 'blur' },
|
|
|
+ { type: 'number', message: '实际结算金额必须为数字', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ settleRemark: [
|
|
|
+ { required: true, message: '请输入清算备注', trigger: 'blur' }
|
|
|
+ ]
|
|
|
},
|
|
|
orgList: [],
|
|
|
storeList: [],
|
|
@@ -287,96 +328,10 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
handleSettleAmount(id) {
|
|
|
- if (this.settlementManageStore.status == '1') {
|
|
|
- this.form.settleRemark = this.settlementManageStore.settleRemark
|
|
|
- //清算收取卡密押金
|
|
|
- this.form.settleGetCardPasswordDeposit = this.settlementManageStore.settleGetCardPasswordDeposit
|
|
|
- //清算福利金额
|
|
|
- this.form.settleWelfareDeposit = this.settlementManageStore.settleWelfareDeposit
|
|
|
- //清算已付押金
|
|
|
- this.form.settlePaidDeposit = this.settlementManageStore.settlePaidDeposit
|
|
|
- //清算原材料备用金(材料费)
|
|
|
- this.form.settleMaterialImprestAmount = this.settlementManageStore.settleMaterialImprestAmount
|
|
|
- this.form.realSettlementAmount = this.settlementManageStore.settleSettlementAmount
|
|
|
- return
|
|
|
- }
|
|
|
- //门店结算Id
|
|
|
- this.form.settleId = id
|
|
|
- this.form.settleRemark = this.settlementManageStore.settleRemark
|
|
|
- //清算收取卡密押金
|
|
|
- this.form.settleGetCardPasswordDeposit = this.settlementManageStore.cardPasswordDeposit - this.settlementManageStore.paidCardPasswordDeposit
|
|
|
- //清算福利金额
|
|
|
- this.form.settleWelfareDeposit = this.settlementManageStore.welfareDeposit - this.settlementManageStore.paidWelfareDeposit
|
|
|
- //清算已付押金
|
|
|
- this.form.settlePaidDeposit = this.settlementManageStore.payableDeposit - this.settlementManageStore.paidDeposit
|
|
|
- //清算原材料备用金(材料费)
|
|
|
- this.form.settleMaterialImprestAmount = this.settlementManageStore.materialImprestAmount
|
|
|
-
|
|
|
- //实际结算金额
|
|
|
- // (结算金额=支付宝/微信-(应付押金-已付押金)-(应付福利押金+卡密押金-已付福利押金-已付卡密押金)-原材料备用金-系统维护费-洗衣费-顺丰快递费-跨店结算金-超额订货金额)
|
|
|
- if (this.settlementManageStore.alipayAndWechatAmount == null) {
|
|
|
- this.form.realSettlementAmount =
|
|
|
- (this.settlementManageStore.alipayAmount * 1000000 +
|
|
|
- this.settlementManageStore.wechatAmount * 1000000 -
|
|
|
- (this.settlementManageStore.cardPasswordDeposit * 1000000 - this.settlementManageStore.paidCardPasswordDeposit * 1000000) -
|
|
|
- (this.settlementManageStore.welfareDeposit * 1000000 - this.settlementManageStore.paidWelfareDeposit * 1000000) -
|
|
|
- (this.settlementManageStore.payableDeposit * 1000000 - this.settlementManageStore.paidDeposit * 1000000) -
|
|
|
- this.settlementManageStore.materialImprestAmount * 1000000 -
|
|
|
- this.settlementManageStore.systemMaintenanceAmount * 1000000 -
|
|
|
- this.settlementManageStore.washClothAmount * 1000000 -
|
|
|
- this.settlementManageStore.sfExpressAmount * 1000000 -
|
|
|
- this.settlementManageStore.crossStoreSettlementAmount * 1000000 -
|
|
|
- this.settlementManageStore.overOrderingAmount * 1000000) /
|
|
|
- 1000000
|
|
|
- } else {
|
|
|
- this.form.realSettlementAmount =
|
|
|
- (this.settlementManageStore.alipayAndWechatAmount * 1000000 -
|
|
|
- (this.settlementManageStore.cardPasswordDeposit * 1000000 - this.settlementManageStore.paidCardPasswordDeposit * 1000000) -
|
|
|
- (this.settlementManageStore.welfareDeposit * 1000000 - this.settlementManageStore.paidWelfareDeposit * 1000000) -
|
|
|
- (this.settlementManageStore.payableDeposit * 1000000 - this.settlementManageStore.paidDeposit * 1000000) -
|
|
|
- this.settlementManageStore.materialImprestAmount * 1000000 -
|
|
|
- this.settlementManageStore.systemMaintenanceAmount * 1000000 -
|
|
|
- this.settlementManageStore.washClothAmount * 1000000 -
|
|
|
- this.settlementManageStore.sfExpressAmount * 1000000 -
|
|
|
- this.settlementManageStore.crossStoreSettlementAmount * 1000000 -
|
|
|
- this.settlementManageStore.overOrderingAmount * 1000000) /
|
|
|
- 1000000
|
|
|
- }
|
|
|
- //清算结算金额, 暂时没有用
|
|
|
- this.form.settleSettlementAmount = this.settlementManageStore.settlementAmount
|
|
|
+ this.initSettlementForm()
|
|
|
},
|
|
|
restartCountSettlementAmount() {
|
|
|
- if (this.settlementManageStore.alipayAndWechatAmount == null) {
|
|
|
- this.form.realSettlementAmount =
|
|
|
- (this.settlementManageStore.alipayAmount * 1000000 +
|
|
|
- this.settlementManageStore.wechatAmount * 1000000 -
|
|
|
- this.form.settleGetCardPasswordDeposit * 1000000 -
|
|
|
- this.form.settleWelfareDeposit * 1000000 -
|
|
|
- this.form.settlePaidDeposit * 1000000 -
|
|
|
- this.form.settleMaterialImprestAmount * 1000000 -
|
|
|
- this.settlementManageStore.systemMaintenanceAmount * 1000000 -
|
|
|
- this.settlementManageStore.washClothAmount * 1000000 -
|
|
|
- this.settlementManageStore.sfExpressAmount * 1000000 -
|
|
|
- this.settlementManageStore.crossStoreSettlementAmount * 1000000 -
|
|
|
- this.settlementManageStore.overOrderingAmount * 1000000) /
|
|
|
- 1000000
|
|
|
- } else {
|
|
|
- this.form.realSettlementAmount =
|
|
|
- (this.settlementManageStore.alipayAndWechatAmount * 1000000 -
|
|
|
- this.form.settleGetCardPasswordDeposit * 1000000 -
|
|
|
- this.form.settleWelfareDeposit * 1000000 -
|
|
|
- this.form.settlePaidDeposit * 1000000 -
|
|
|
- this.form.settleMaterialImprestAmount * 1000000 -
|
|
|
- this.settlementManageStore.systemMaintenanceAmount * 1000000 -
|
|
|
- this.settlementManageStore.washClothAmount * 1000000 -
|
|
|
- this.settlementManageStore.sfExpressAmount * 1000000 -
|
|
|
- this.settlementManageStore.crossStoreSettlementAmount * 1000000 -
|
|
|
- this.settlementManageStore.overOrderingAmount * 1000000) /
|
|
|
- 1000000
|
|
|
- }
|
|
|
- //清算结算金额, 暂时没有用
|
|
|
- this.form.settleSettlementAmount = this.form.realSettlementAmount
|
|
|
- this.$forceUpdate()
|
|
|
+ this.calculateSettlementAmount()
|
|
|
},
|
|
|
/** 查询结算费率列表 */
|
|
|
getList() {
|
|
@@ -456,7 +411,7 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
})
|
|
|
- .catch(() => {})
|
|
|
+ .catch(() => { })
|
|
|
},
|
|
|
/** 删除按钮操作 */
|
|
|
handleDelete(row) {
|
|
@@ -470,7 +425,7 @@ export default {
|
|
|
this.getList()
|
|
|
this.$modal.msgSuccess('删除成功')
|
|
|
})
|
|
|
- .catch(() => {})
|
|
|
+ .catch(() => { })
|
|
|
},
|
|
|
/** 导出按钮操作 */
|
|
|
handleExport() {
|
|
@@ -487,9 +442,105 @@ export default {
|
|
|
.then(function () {
|
|
|
done()
|
|
|
})
|
|
|
- .then(() => {})
|
|
|
- .catch(() => {})
|
|
|
+ .then(() => { })
|
|
|
+ .catch(() => { })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 处理金额变化,重新计算结算金额
|
|
|
+ */
|
|
|
+ handleAmountChange() {
|
|
|
+ this.calculateSettlementAmount()
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 计算实际结算金额
|
|
|
+ */
|
|
|
+ calculateSettlementAmount() {
|
|
|
+ const baseAmount = this.settlementManageStore.alipayAndWechatAmount ||
|
|
|
+ (this.settlementManageStore.alipayAmount + this.settlementManageStore.wechatAmount)
|
|
|
+
|
|
|
+ const result = baseAmount * 1000000 -
|
|
|
+ this.form.settlePaidDeposit * 1000000 -
|
|
|
+ this.form.settleWelfareDeposit * 1000000 -
|
|
|
+ this.form.settleGetCardPasswordDeposit * 1000000 -
|
|
|
+ this.form.settleMaterialImprestAmount * 1000000 -
|
|
|
+ this.settlementManageStore.systemMaintenanceAmount * 1000000 -
|
|
|
+ this.settlementManageStore.washClothAmount * 1000000 -
|
|
|
+ this.settlementManageStore.sfExpressAmount * 1000000 -
|
|
|
+ this.settlementManageStore.crossStoreSettlementAmount * 1000000 -
|
|
|
+ this.settlementManageStore.overOrderingAmount * 1000000
|
|
|
+
|
|
|
+ this.form.realSettlementAmount = Number((result / 1000000).toFixed(2))
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化结算表单数据
|
|
|
+ */
|
|
|
+ initSettlementForm() {
|
|
|
+ if (this.settlementManageStore.status === '1') {
|
|
|
+ // 已结算状态,展示历史数据
|
|
|
+ this.form = {
|
|
|
+ settleRemark: this.settlementManageStore.settleRemark,
|
|
|
+ settleGetCardPasswordDeposit: this.settlementManageStore.settleGetCardPasswordDeposit,
|
|
|
+ settleWelfareDeposit: this.settlementManageStore.settleWelfareDeposit,
|
|
|
+ settlePaidDeposit: this.settlementManageStore.settlePaidDeposit,
|
|
|
+ settleMaterialImprestAmount: this.settlementManageStore.settleMaterialImprestAmount,
|
|
|
+ realSettlementAmount: this.settlementManageStore.settleSettlementAmount
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 未结算状态,计算初始值
|
|
|
+ this.form = {
|
|
|
+ settleId: this.settlementManageStore.id,
|
|
|
+ settleGetCardPasswordDeposit: this.settlementManageStore.cardPasswordDeposit - this.settlementManageStore.paidCardPasswordDeposit,
|
|
|
+ settleWelfareDeposit: this.settlementManageStore.welfareDeposit - this.settlementManageStore.paidWelfareDeposit,
|
|
|
+ settlePaidDeposit: this.settlementManageStore.payableDeposit - this.settlementManageStore.paidDeposit,
|
|
|
+ settleMaterialImprestAmount: this.settlementManageStore.materialImprestAmount,
|
|
|
+ settleRemark: ''
|
|
|
+ }
|
|
|
+ this.calculateSettlementAmount()
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.box-card {
|
|
|
+ margin-bottom: 20px;
|
|
|
+
|
|
|
+ .el-card__header {
|
|
|
+ padding: 10px 20px;
|
|
|
+ font-weight: bold;
|
|
|
+
|
|
|
+ .el-icon-question {
|
|
|
+ margin-left: 5px;
|
|
|
+ color: #909399;
|
|
|
+ cursor: help;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.el-statistic {
|
|
|
+ text-align: center;
|
|
|
+
|
|
|
+ .el-statistic__title {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #606266;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-statistic__content {
|
|
|
+ color: #409EFF;
|
|
|
+ font-size: 20px;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.el-input-number {
|
|
|
+ width: 180px !important;
|
|
|
+}
|
|
|
+
|
|
|
+.dialog-footer {
|
|
|
+ text-align: center;
|
|
|
+ margin-top: 20px;
|
|
|
+}
|
|
|
+</style>
|