对比新文件 |
| | |
| | | <template> |
| | | <el-bus-crud ref="crud" v-bind="tableConfig" /> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getPartnerListConfig } from '@/utils/form-item-config' |
| | | export default { |
| | | data() { |
| | | return { |
| | | tableConfig: { |
| | | url: 'flower/v2/report/order/detail/page', |
| | | hasEdit: false, |
| | | hasNew: false, |
| | | hasDelete: false, |
| | | hasView: false, |
| | | hasExport: true, |
| | | hasOperation: false, |
| | | exportUrl: 'flower/v2/report/order/detail/export', |
| | | exportText: '导出', |
| | | columns: [ |
| | | { label: '订单号', prop: 'orderNo', minWidth: 150, fixed: 'left' }, |
| | | { |
| | | label: '下单用户', |
| | | prop: 'customer', |
| | | minWidth: '150px', |
| | | fixed: 'left', |
| | | }, |
| | | { label: '收货人地址', prop: 'address', minWidth: '220px' }, |
| | | { label: '合伙人', prop: 'partnerName', minWidth: '120px' }, |
| | | { label: '下单时间', prop: 'orderDate', minWidth: '180px' }, |
| | | { label: '订单金额', prop: 'orderTotal', minWidth: '120px' }, |
| | | { |
| | | label: '花农底价', |
| | | prop: 'orderSupplierPriceAmount', |
| | | minWidth: '120px', |
| | | }, |
| | | { |
| | | label: '平台区间加价', |
| | | prop: 'orderMarkupOneAmount', |
| | | minWidth: '120px', |
| | | }, |
| | | { |
| | | label: '平台加价', |
| | | prop: 'orderMarkupTwoAmount', |
| | | minWidth: '120px', |
| | | }, |
| | | { |
| | | label: '平台区域加价', |
| | | prop: 'platformAreaFeeAmount', |
| | | minWidth: '120px', |
| | | }, |
| | | { |
| | | label: '合伙人加价', |
| | | prop: 'orderMarkupPartnerAmount', |
| | | minWidth: '120px', |
| | | }, |
| | | { |
| | | label: '合伙人区间加价', |
| | | prop: 'partnerSectionFeeAmount', |
| | | minWidth: '120px', |
| | | }, |
| | | { |
| | | label: '会员折扣', |
| | | prop: 'orderPriceDiscountAmount', |
| | | minWidth: '100px', |
| | | }, |
| | | { |
| | | label: '优惠券', |
| | | prop: 'orderCouponAmountTotal', |
| | | minWidth: '100px', |
| | | }, |
| | | { label: '质检降级扣款', prop: 'orderCheckFee', minWidth: '100px' }, |
| | | { |
| | | label: '质检缺货扣款', |
| | | prop: 'orderLackFeeSupplier', |
| | | minWidth: '100px', |
| | | }, |
| | | { label: '质检补货扣款', prop: 'orderReplaceFee', minWidth: '100px' }, |
| | | { |
| | | label: '售后扣合伙人款', |
| | | prop: 'orderFeePartner', |
| | | minWidth: '120px', |
| | | }, |
| | | { |
| | | label: '售后扣花农款', |
| | | prop: 'orderFeeSupplier', |
| | | minWidth: '100px', |
| | | }, |
| | | { |
| | | label: '售后扣平台款', |
| | | prop: 'orderFeePlatform', |
| | | minWidth: '100px', |
| | | }, |
| | | { |
| | | label: '总包干费', |
| | | prop: 'partnerTotalFeeAmount', |
| | | minWidth: '100px', |
| | | }, |
| | | { label: '销售扎数', prop: 'realSaleNum', minWidth: '100px' }, |
| | | { |
| | | label: '利润', |
| | | prop: 'profitFeeAmount', |
| | | minWidth: '100px', |
| | | fixed: 'right', |
| | | }, |
| | | { |
| | | label: '结算状态', |
| | | prop: 'settleStatusStr', |
| | | minWidth: '120px', |
| | | fixed: 'right', |
| | | }, |
| | | ], |
| | | searchForm: [ |
| | | { |
| | | type: 'row', |
| | | span: 6, |
| | | items: [ |
| | | { |
| | | label: '下单日期', |
| | | id: 'calDate', |
| | | component: 'el-date-picker', |
| | | type: 'date', |
| | | el: { |
| | | valueFormat: 'yyyy-MM-dd', |
| | | style: 'width:100%', |
| | | clearable: false, |
| | | }, |
| | | default: this.$route.params.date, |
| | | }, |
| | | { ...getPartnerListConfig() }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | } |
| | | }, |
| | | head() { |
| | | return { |
| | | title: '订单结算明细', |
| | | } |
| | | }, |
| | | } |
| | | </script> |
对比新文件 |
| | |
| | | <template> |
| | | <div> |
| | | <div v-loading="statisticLoading"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="4" class="mb-10"> |
| | | <el-card> |
| | | <div class="statistic-title">底价合计</div> |
| | | <div class="statistic-num">{{ statistic.orderPartnerPriceAmount || 0 }}</div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="4" class="mb-10"> |
| | | <el-card> |
| | | <div class="statistic-title">合伙人加价</div> |
| | | <div class="statistic-num"> |
| | | {{ statistic.orderMarkupPartnerAmount || 0 }} |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="4" class="mb-10"> |
| | | <el-card> |
| | | <div class="statistic-title">会员折扣合计</div> |
| | | <div class="statistic-num"> |
| | | {{ statistic.orderPriceDiscountAmount || 0 }} |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="4" class="mb-10"> |
| | | <el-card> |
| | | <div class="statistic-title">销售扎数</div> |
| | | <div class="statistic-num"> |
| | | {{ statistic.realSaleNum || 0 }} |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="4" class="mb-10"> |
| | | <el-card> |
| | | <div class="statistic-title">售后扣款合计</div> |
| | | <div class="statistic-num"> |
| | | {{ statistic.orderFeePartner || 0 }} |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="4" class="mb-10"> |
| | | <el-card> |
| | | <div class="statistic-title">优惠券合计</div> |
| | | <div class="statistic-num">{{ statistic.orderCouponAmountTotal || 0 }}</div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="4" class="mb-10"> |
| | | <el-card> |
| | | <div class="statistic-title">包干费合计</div> |
| | | <div class="statistic-num"> |
| | | {{ statistic.partnerTotalFeeAmount || 0 }} |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <el-bus-crud v-bind="tableConfig" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import dayjs from 'dayjs' |
| | | import 'dayjs/locale/zh-cn' |
| | | import { getPartnerListNameWithIdConfig } from '@/utils/form-item-config' |
| | | dayjs.locale('zh-cn') |
| | | export default { |
| | | data() { |
| | | const paymentDateStart = `${dayjs().format('YYYY-MM-DD')}` |
| | | const paymentDateEnd = `${dayjs().format('YYYY-MM-DD')}` |
| | | return { |
| | | statistic: {}, |
| | | statisticLoading: false, |
| | | tableConfig: { |
| | | url: 'flower/v2/report/order/partner/sale/page', |
| | | hasNew: false, |
| | | hasEdit: false, |
| | | hasDelete: false, |
| | | // viewText: '明细', |
| | | hasExport: true, |
| | | hasOperation: false, |
| | | exportUrl: 'flower/v2/report/order/partner/sale/export', |
| | | exportText: '导出', |
| | | onResetView: (row) => { |
| | | const url = this.$router.resolve( |
| | | `/report/finance/${row.orderDate}` |
| | | ).href |
| | | window.open(url, '_blank') |
| | | }, |
| | | operationAttrs: { |
| | | width: 80, |
| | | fixed: 'right', |
| | | }, |
| | | beforeRequest: async (params) => { |
| | | this.statisticLoading = true |
| | | // eslint-disable-next-line |
| | | let { code, data } = await this.$elBusHttp.request( |
| | | `flower/v2/report/order/partner/sale/statis`, |
| | | { params } |
| | | ) |
| | | if (code === 0) { |
| | | data = data || {} |
| | | data.checkTotalFee = Number( |
| | | ( |
| | | (data.orderCheckFee ?? 0) + |
| | | (data.orderLackFeeSupplier ?? 0) + |
| | | (data.orderReplaceFee ?? 0) |
| | | ).toFixed(2) |
| | | ) |
| | | data.saleTotalFee = Number( |
| | | ( |
| | | (data.orderFeePartner ?? 0) + |
| | | (data.orderFeeSupplier ?? 0) + |
| | | (data.orderFeePlatform ?? 0) |
| | | ).toFixed(2) |
| | | ) |
| | | data.discountTotalFee = Number( |
| | | ( |
| | | (data.orderPriceDiscountAmount ?? 0) + |
| | | (data.orderCouponAmountTotal ?? 0) |
| | | ).toFixed(2) |
| | | ) |
| | | this.statistic = data || {} |
| | | } |
| | | this.statisticLoading = false |
| | | }, |
| | | columns: [ |
| | | { |
| | | label: '下单日期', |
| | | prop: 'orderDate', |
| | | minWidth: 120, |
| | | fixed: 'left', |
| | | }, |
| | | { label: '合伙人ID', prop: 'partnerId', minWidth: 120 }, |
| | | { |
| | | label: '合伙人', |
| | | prop: 'partnerName', |
| | | minWidth: 120, |
| | | }, |
| | | { |
| | | label: '底价', |
| | | prop: 'orderPartnerPriceAmount', |
| | | minWidth: 120, |
| | | }, |
| | | { |
| | | label: '合伙人加价', |
| | | prop: 'orderMarkupPartnerAmount', |
| | | minWidth: 120, |
| | | }, |
| | | { |
| | | label: '会员折扣', |
| | | prop: 'orderPriceDiscountAmount', |
| | | minWidth: 120, |
| | | }, |
| | | { label: '优惠券', prop: 'orderCouponAmountTotal', minWidth: 120 }, |
| | | { label: '售后扣合伙人款', prop: 'orderFeePartner', minWidth: 120 }, |
| | | |
| | | { label: '总包干费', prop: 'partnerTotalFeeAmount', minWidth: 120 }, |
| | | { label: '实际销售扎数', prop: 'realSaleNum', minWidth: 120 }, |
| | | ], |
| | | searchForm: [ |
| | | { |
| | | type: 'row', |
| | | items: [ |
| | | { |
| | | label: '下单日期', |
| | | id: 'paymentDateStart', |
| | | component: 'el-bus-date-range', |
| | | el: { |
| | | clearable: false, |
| | | }, |
| | | // commonFormat: true, |
| | | // commonFormatProps: ['paymentDateStart', 'paymentDateEnd'], |
| | | inputFormat: (row) => { |
| | | if ('paymentDateStart' in row || 'paymentDateEnd' in row) { |
| | | return [ |
| | | this.$elBusUtil.toDate(row.paymentDateStart), |
| | | this.$elBusUtil.toDate(row.paymentDateEnd), |
| | | ] |
| | | } |
| | | }, |
| | | outputFormat: (val) => { |
| | | return { |
| | | paymentDateStart: `${this.$elBusUtil.toDate(val[0])}`, |
| | | paymentDateEnd: `${this.$elBusUtil.toDate(val[1])}`, |
| | | } |
| | | }, |
| | | customClass: 'in-bus-form', |
| | | commonRules: true, |
| | | default: [paymentDateStart, paymentDateEnd], |
| | | }, |
| | | { ...getPartnerListNameWithIdConfig(), label: '合伙人' }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | } |
| | | }, |
| | | head() { |
| | | return { |
| | | title: '财务报表', |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .statistic-title { |
| | | text-align: center; |
| | | font-size: 20px; |
| | | color: $main-title-color; |
| | | font-weight: bold; |
| | | margin-bottom: 6px; |
| | | } |
| | | .statistic-num { |
| | | text-align: center; |
| | | font-size: 16px; |
| | | color: $primary-color; |
| | | } |
| | | </style> |
| | |
| | | } |
| | | } |
| | | |
| | | export const getPartnerListNameWithIdConfig = () => { |
| | | return { |
| | | label: '合伙人:', |
| | | id: 'partnerId', |
| | | type: 'bus-select', |
| | | el: { |
| | | interfaceUri: 'flower/api/partner/page', |
| | | extraQuery: { |
| | | current: 1, |
| | | size: 2000, |
| | | status: 'P', |
| | | isEnabled: 1, |
| | | }, |
| | | props: { |
| | | label: 'name', |
| | | value: 'id', |
| | | dataPath: 'records', |
| | | }, |
| | | filterable: true, |
| | | clearable: true, |
| | | style: 'width:100%', |
| | | // 列表返回的是id是int但是存的是string情况 |
| | | filterOptions: (list) => { |
| | | const listFilter= list.map((item) => ({ ...item, id: item.id + '',name:item.name+'(PID:'+item.id +')'})) |
| | | return listFilter |
| | | }, |
| | | }, |
| | | } |
| | | } |
| | | |
| | | |
| | | export const getGoodsCategoryListConfig = ( |
| | | checkStrictly = false, |
| | | multiple = false |