|
|
@ -2,24 +2,24 @@ |
|
|
<el-card style="margin-bottom: 0.5vh;background-color: rgb(243,250,254);"> |
|
|
<el-card style="margin-bottom: 0.5vh;background-color: rgb(243,250,254);"> |
|
|
<div class="condition1"> |
|
|
<div class="condition1"> |
|
|
<div class="search"> |
|
|
<div class="search"> |
|
|
<el-text size="large" style="width:4vw;">姓名</el-text> |
|
|
|
|
|
<el-input v-model="searchForm.name" placeholder="请输入姓名" style="width:9vw;" clearable /> |
|
|
|
|
|
|
|
|
<el-text size="large" style="width:4vw;">{{ t('common.name') }}</el-text> |
|
|
|
|
|
<el-input v-model="searchForm.name" :placeholder="t('common.pleaseInputName')" style="width:9vw;" clearable /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="search"> |
|
|
<div class="search"> |
|
|
<el-text size="large" style="width:4vw;">精网号</el-text> |
|
|
|
|
|
<el-input v-model="searchForm.jwcode" placeholder="请输入精网号" style="width:9vw;" clearable /> |
|
|
|
|
|
|
|
|
<el-text size="large" style="width:4vw;">{{ t('common.jwcode') }}</el-text> |
|
|
|
|
|
<el-input v-model="searchForm.jwcode" :placeholder="t('common.jwcodePlaceholder')" style="width:9vw;" clearable /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="search"> |
|
|
<div class="search"> |
|
|
<el-text size="large" style="width:4vw;">产品名称</el-text> |
|
|
|
|
|
|
|
|
<el-text size="large" style="width:4vw;">{{ t('common.productName') }}</el-text> |
|
|
<el-cascader v-model="searchForm.goodsName" :options="productList" style="width: 10vw;" clearable /> |
|
|
<el-cascader v-model="searchForm.goodsName" :options="productList" style="width: 10vw;" clearable /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="search" v-if="adminData.markets === '总部'"> |
|
|
|
|
|
<el-text size="large" style="width:4vw;">所属地区</el-text> |
|
|
|
|
|
<el-cascader style="width: 9vw;" v-model="searchForm.markets" :options="market" placeholder="请选择所属地区" |
|
|
|
|
|
|
|
|
<div class="search" v-if="adminData.markets === t('common.markets.headquarter')"> |
|
|
|
|
|
<el-text size="large" style="width:4vw;">{{ t('common.market') }}</el-text> |
|
|
|
|
|
<el-cascader style="width: 9vw;" v-model="searchForm.markets" :options="market" :placeholder="t('common.marketPlaceholder')" |
|
|
clearable /> |
|
|
clearable /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="search"> |
|
|
<div class="search"> |
|
|
<el-text size="large" style="width:4vw;">退款币种</el-text> |
|
|
|
|
|
|
|
|
<el-text size="large" style="width:4vw;">{{ t('common.refundCurrency') }}</el-text> |
|
|
<el-select v-model="searchForm.refundCurrency" style="width:9vw;" clearable> |
|
|
<el-select v-model="searchForm.refundCurrency" style="width:9vw;" clearable> |
|
|
<el-option v-for="item in currencies" :key="item" :label="item" :value="item" /> |
|
|
<el-option v-for="item in currencies" :key="item" :label="item" :value="item" /> |
|
|
</el-select> |
|
|
</el-select> |
|
|
@ -27,96 +27,97 @@ |
|
|
</div> |
|
|
</div> |
|
|
<div class="condition1"> |
|
|
<div class="condition1"> |
|
|
<div class="search2"> |
|
|
<div class="search2"> |
|
|
<el-text size="large" style="width:4vw;">退款途径</el-text> |
|
|
|
|
|
|
|
|
<el-text size="large" style="width:4vw;">{{ t('common.refundMethod') }}</el-text> |
|
|
<el-select v-model="searchForm.refundChannels" style="width:9vw;" clearable> |
|
|
<el-select v-model="searchForm.refundChannels" style="width:9vw;" clearable> |
|
|
<el-option v-for="item in channelOptions" :key="item" :label="item" :value="item" /> |
|
|
<el-option v-for="item in channelOptions" :key="item" :label="item" :value="item" /> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</div> |
|
|
</div> |
|
|
<div class="search2"> |
|
|
<div class="search2"> |
|
|
<el-text size="large" style="width:4vw;">订单状态</el-text> |
|
|
|
|
|
|
|
|
<el-text size="large" style="width:4vw;">{{ t('common.orderStatus') }}</el-text> |
|
|
<el-select v-model="searchForm.statuses" style="width:9vw;" clearable> |
|
|
<el-select v-model="searchForm.statuses" style="width:9vw;" clearable> |
|
|
<el-option v-for="item in statusList" :label="item" :value="item" :key="item" /> |
|
|
<el-option v-for="item in statusList" :label="item" :value="item" :key="item" /> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</div> |
|
|
</div> |
|
|
<div class="search2" style="width: 25.5vw;"> |
|
|
<div class="search2" style="width: 25.5vw;"> |
|
|
<el-text size="large" style="width:4vw;">退款时间</el-text> |
|
|
|
|
|
<el-date-picker v-model="dateRange" type="datetimerange" range-separator="至" start-placeholder="起始时间" |
|
|
|
|
|
end-placeholder="结束时间" style="width:18vw;" clearable :disabled-date="disabledDate" |
|
|
|
|
|
|
|
|
<el-text size="large" style="width:4vw;">{{ t('common.refundTime') }}</el-text> |
|
|
|
|
|
<el-date-picker v-model="dateRange" type="datetimerange" :range-separator="t('common.to')" |
|
|
|
|
|
:start-placeholder="t('common.startTime')" |
|
|
|
|
|
:end-placeholder="t('common.endTime')" style="width:18vw;" clearable :disabled-date="disabledDate" |
|
|
:default-time="defaultTime" /> |
|
|
:default-time="defaultTime" /> |
|
|
</div> |
|
|
</div> |
|
|
<div> |
|
|
<div> |
|
|
<el-button type="primary" size="medium" @click="getRefund">查询</el-button> |
|
|
|
|
|
<el-button type="success" size="medium" @click="reset">重置</el-button> |
|
|
|
|
|
|
|
|
<el-button type="primary" size="medium" @click="getRefund">{{ t('common.search') }}</el-button> |
|
|
|
|
|
<el-button type="success" size="medium" @click="reset">{{ t('common.reset') }}</el-button> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</el-card> |
|
|
</el-card> |
|
|
|
|
|
|
|
|
<el-card style="background-color: rgb(231,244,253);height:80vh;"> |
|
|
<el-card style="background-color: rgb(231,244,253);height:80vh;"> |
|
|
<el-table :data="tableData" style="height:70vh;width:82vw;"> |
|
|
<el-table :data="tableData" style="height:70vh;width:82vw;"> |
|
|
<el-table-column type="index" label="序号" width="60" fixed="left"> |
|
|
|
|
|
|
|
|
<el-table-column type="index" :label="t('common_list.id')" width="60" fixed="left"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
{{ scope.$index + 1 + (pagination.pageNum - 1) * pagination.pageSize }} |
|
|
{{ scope.$index + 1 + (pagination.pageNum - 1) * pagination.pageSize }} |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column prop="jwcode" label="Homily ID" width="120" fixed="left" /> |
|
|
<el-table-column prop="jwcode" label="Homily ID" width="120" fixed="left" /> |
|
|
<el-table-column prop="name" label="姓名" width="120" fixed="left" show-overflow-tooltip /> |
|
|
|
|
|
<el-table-column prop="marketName" label="所属地区" width="120" /> |
|
|
|
|
|
<el-table-column prop="goodsName" label="产品名称" width="120" /> |
|
|
|
|
|
<el-table-column prop="goodsNum" label="产品数量" width="120" /> |
|
|
|
|
|
<el-table-column prop="refundModel" label="退款方式" width="120"> |
|
|
|
|
|
|
|
|
<el-table-column prop="name" :label="t('common_list.name')" width="120" fixed="left" show-overflow-tooltip /> |
|
|
|
|
|
<el-table-column prop="marketName" :label="t('common_list.market')" width="120" /> |
|
|
|
|
|
<el-table-column prop="goodsName" :label="t('common_list.productName')" width="120" /> |
|
|
|
|
|
<el-table-column prop="goodsNum" :label="t('common_list.productNum')" width="120" /> |
|
|
|
|
|
<el-table-column prop="refundModel" :label="t('common_list.refundModel')" width="120"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
{{ scope.row.refundModel === 1 ? '部分退款' : '全部退款' }} |
|
|
|
|
|
|
|
|
{{ scope.row.refundModel === 1 ? t('common_list.refundModelPart') : t('common_list.refundModelAll') }} |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column prop="refundCurrency" label="退款币种" width="120"> |
|
|
|
|
|
|
|
|
<el-table-column prop="refundCurrency" :label="t('common_list.refundCurrency')" width="120"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
<div v-if="!scope.row.refundCurrency"> |
|
|
<div v-if="!scope.row.refundCurrency"> |
|
|
<text style="color: #FA5A1E;">待补充</text> |
|
|
|
|
|
|
|
|
<text style="color: #FA5A1E;">{{ t('common_list.toSupply') }}</text> |
|
|
</div> |
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column prop="refundAmount" label="退款金额" width="120"> |
|
|
|
|
|
|
|
|
<el-table-column prop="refundAmount" :label="t('common_list.refundAmount')" width="120"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
<div v-if="!scope.row.refundAmount"> |
|
|
<div v-if="!scope.row.refundAmount"> |
|
|
<text style="color: #FA5A1E;">待补充</text> |
|
|
|
|
|
|
|
|
<text style="color: #FA5A1E;">{{ t('common_list.toSupply') }}</text> |
|
|
</div> |
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column prop="refundChannels" label="退款途径" width="120"> |
|
|
|
|
|
|
|
|
<el-table-column prop="refundChannels" :label="t('common_list.refundChannels')" width="120"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
<div v-if="!scope.row.refundChannels"> |
|
|
<div v-if="!scope.row.refundChannels"> |
|
|
<text style="color: #FA5A1E;">待补充</text> |
|
|
|
|
|
|
|
|
<text style="color: #FA5A1E;">{{ t('common_list.toSupply') }}</text> |
|
|
</div> |
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column prop="refundVoucher" label="退款截图" width="120"> |
|
|
|
|
|
|
|
|
<el-table-column prop="refundVoucher" :label="t('common_list.refundVoucher')" width="120"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
<el-image v-if="scope.row.refundVoucher" :src="scope.row.refundVoucher" |
|
|
<el-image v-if="scope.row.refundVoucher" :src="scope.row.refundVoucher" |
|
|
@click="previewImage(scope.row.refundVoucher)" |
|
|
@click="previewImage(scope.row.refundVoucher)" |
|
|
style="width: 40px; height: 40px; cursor: pointer;z-index: 99999;" fit="cover" /> |
|
|
style="width: 40px; height: 40px; cursor: pointer;z-index: 99999;" fit="cover" /> |
|
|
<span v-else style="color: #FA5A1E;">待补充</span> |
|
|
|
|
|
|
|
|
<span v-else style="color: #FA5A1E;">{{ t('common_list.toSupply') }}</span> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column prop="refundTime" label="退款时间" width="180"> |
|
|
|
|
|
|
|
|
<el-table-column prop="refundTime" :label="t('common_list.refundTime')" width="180"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
<div v-if="!scope.row.refundTime"> |
|
|
<div v-if="!scope.row.refundTime"> |
|
|
<text style="color: #FA5A1E;">待补充</text> |
|
|
|
|
|
|
|
|
<text style="color: #FA5A1E;">{{ t('common_list.toSupply') }}</text> |
|
|
</div> |
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column prop="status" label="订单状态" width="120"> |
|
|
|
|
|
|
|
|
<el-table-column prop="status" :label="t('common_list.orderStatus')" width="120"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
{{ scope.row.status === 41 ? '退款成功' : '待处理' }} |
|
|
|
|
|
|
|
|
{{ scope.row.status === 41 ? t('common_list.refundSuccess') : t('common_list.pending') }} |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column prop="operation" label="操作" fixed="right" width="100px"> |
|
|
|
|
|
|
|
|
<el-table-column prop="operation" :label="t('common_list.operation')" fixed="right" width="100px"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
<div class="operation"> |
|
|
<div class="operation"> |
|
|
<el-button v-if="scope.row.status === 40" type="primary" text @click="showEditDialog(scope.row)"> |
|
|
<el-button v-if="scope.row.status === 40" type="primary" text @click="showEditDialog(scope.row)"> |
|
|
提交 |
|
|
|
|
|
|
|
|
{{ t('common.submit') }} |
|
|
</el-button> |
|
|
</el-button> |
|
|
<el-button v-else type="primary" text @click="showEditDialog(scope.row)"> |
|
|
<el-button v-else type="primary" text @click="showEditDialog(scope.row)"> |
|
|
编辑 |
|
|
|
|
|
|
|
|
{{ t('common.edit') }} |
|
|
</el-button> |
|
|
</el-button> |
|
|
</div> |
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
@ -132,86 +133,86 @@ |
|
|
<div style="display: flex;"> |
|
|
<div style="display: flex;"> |
|
|
<div class="left"> |
|
|
<div class="left"> |
|
|
<div class="dialog-item"> |
|
|
<div class="dialog-item"> |
|
|
<el-text style="width:4vw;">精网号</el-text> |
|
|
|
|
|
|
|
|
<el-text style="width:4vw;">{{ t('common_add.jwcode') }}</el-text> |
|
|
<el-input v-model="editRow.jwcode" style="width:10vw;" disabled /> |
|
|
<el-input v-model="editRow.jwcode" style="width:10vw;" disabled /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="dialog-item"> |
|
|
<div class="dialog-item"> |
|
|
<el-text style="width:4vw;">客户姓名</el-text> |
|
|
|
|
|
|
|
|
<el-text style="width:4vw;">{{ t('common_add.customerName') }}</el-text> |
|
|
<el-input v-model="editRow.name" style="width:10vw;" disabled /> |
|
|
<el-input v-model="editRow.name" style="width:10vw;" disabled /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="dialog-item"> |
|
|
<div class="dialog-item"> |
|
|
<el-text style="width:4vw;">所属地区</el-text> |
|
|
|
|
|
|
|
|
<el-text style="width:4vw;">{{ t('common_add.market') }}</el-text> |
|
|
<el-input v-model="editRow.marketName" style="width:10vw;" disabled /> |
|
|
<el-input v-model="editRow.marketName" style="width:10vw;" disabled /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="dialog-item"> |
|
|
<div class="dialog-item"> |
|
|
<el-text style="width:4vw;">产品名称</el-text> |
|
|
|
|
|
|
|
|
<el-text style="width:4vw;">{{ t('common_add.productName') }}</el-text> |
|
|
<el-input v-model="editRow.goodsName" style="width:10vw;" disabled /> |
|
|
<el-input v-model="editRow.goodsName" style="width:10vw;" disabled /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="dialog-item"> |
|
|
<div class="dialog-item"> |
|
|
<el-text style="width:4vw;">退款类型</el-text> |
|
|
|
|
|
|
|
|
<el-text style="width:4vw;">{{ t('common_add.refundModel') }}</el-text> |
|
|
<el-select v-model="editRow.refundModel" style="width:10vw;" disabled> |
|
|
<el-select v-model="editRow.refundModel" style="width:10vw;" disabled> |
|
|
<el-option label="全部退款" :value="0"></el-option> |
|
|
|
|
|
<el-option label="部分退款" :value="1"></el-option> |
|
|
|
|
|
|
|
|
<el-option :label="t('common_add.refundModelAll')" :value="0"></el-option> |
|
|
|
|
|
<el-option :label="t('common_add.refundModelPart')" :value="1"></el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</div> |
|
|
</div> |
|
|
<div class="dialog-item"> |
|
|
<div class="dialog-item"> |
|
|
<el-text style="width:4vw;">付款币种</el-text> |
|
|
|
|
|
|
|
|
<el-text style="width:4vw;">{{ t('common_add.payCurrency') }}</el-text> |
|
|
<el-input v-model="editRow.paymentCurrency" style="width:10vw;" disabled /> |
|
|
<el-input v-model="editRow.paymentCurrency" style="width:10vw;" disabled /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="dialog-item"> |
|
|
<div class="dialog-item"> |
|
|
<el-text style="width:4vw;">付款金额</el-text> |
|
|
|
|
|
|
|
|
<el-text style="width:4vw;">{{ t('common_add.payAmount') }}</el-text> |
|
|
<el-input v-model="editRow.paymentAmount" style="width:10vw;" disabled /> |
|
|
<el-input v-model="editRow.paymentAmount" style="width:10vw;" disabled /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="dialog-item"> |
|
|
<div class="dialog-item"> |
|
|
<el-text style="width:4vw;">支付方式</el-text> |
|
|
|
|
|
|
|
|
<el-text style="width:4vw;">{{ t('common_add.payMethod') }}</el-text> |
|
|
<el-input v-model="editRow.payType" style="width:10vw;" disabled /> |
|
|
<el-input v-model="editRow.payType" style="width:10vw;" disabled /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="dialog-item"> |
|
|
<div class="dialog-item"> |
|
|
<el-text style="width:4vw;">付款时间</el-text> |
|
|
|
|
|
|
|
|
<el-text style="width:4vw;">{{ t('common_add.payTime') }}</el-text> |
|
|
<el-input v-model="editRow.payTime" style="width:10vw;" disabled /> |
|
|
<el-input v-model="editRow.payTime" style="width:10vw;" disabled /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="dialog-item"> |
|
|
<div class="dialog-item"> |
|
|
<el-text style="width:4vw;">提交人</el-text> |
|
|
|
|
|
|
|
|
<el-text style="width:4vw;">{{ t('common_add.submitter') }}</el-text> |
|
|
<el-input v-model="editRow.submitter" style="width:10vw;" disabled /> |
|
|
<el-input v-model="editRow.submitter" style="width:10vw;" disabled /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="dialog-item"> |
|
|
<div class="dialog-item"> |
|
|
<el-text style="width:4vw;">转账凭证</el-text> |
|
|
|
|
|
|
|
|
<el-text style="width:4vw;">{{ t('common_add.transferVoucher') }}</el-text> |
|
|
<img v-if="editRow.payVoucher" :src="editRow.payVoucher" |
|
|
<img v-if="editRow.payVoucher" :src="editRow.payVoucher" |
|
|
style="width: 80px; height: 80px; object-fit: cover;"> |
|
|
style="width: 80px; height: 80px; object-fit: cover;"> |
|
|
<div v-else> |
|
|
<div v-else> |
|
|
无转账凭证 |
|
|
|
|
|
|
|
|
{{ t('common_add.noTransferVoucher') }} |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="dialog-item"> |
|
|
<div class="dialog-item"> |
|
|
<el-text style="width:4vw;">备注</el-text> |
|
|
|
|
|
|
|
|
<el-text style="width:4vw;">{{ t('common_add.remark') }}</el-text> |
|
|
<el-input v-model="editRow.payRemark" style="width:10vw;" :row="3" disabled maxlength="100" type="textarea" |
|
|
<el-input v-model="editRow.payRemark" style="width:10vw;" :row="3" disabled maxlength="100" type="textarea" |
|
|
show-word-limit clearable /> |
|
|
show-word-limit clearable /> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="right"> |
|
|
<div class="right"> |
|
|
<div class="dialog-item"> |
|
|
<div class="dialog-item"> |
|
|
<el-text style="width:4vw;">退款币种</el-text> |
|
|
|
|
|
<el-select v-model="editForm.refundCurrency" placeholder="请选择退款币种" style="width:10vw;"> |
|
|
|
|
|
|
|
|
<el-text style="width:4vw;">{{ t('common_add.refundCurrency') }}</el-text> |
|
|
|
|
|
<el-select v-model="editForm.refundCurrency" :placeholder="t('common_add.refundCurrencyPlaceholder')" style="width:10vw;"> |
|
|
<el-option v-for="item in currencies" :key="item" :label="item" :value="item" /> |
|
|
<el-option v-for="item in currencies" :key="item" :label="item" :value="item" /> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</div> |
|
|
</div> |
|
|
<div class="dialog-item"> |
|
|
<div class="dialog-item"> |
|
|
<el-text style="width:4vw;">退款金额</el-text> |
|
|
|
|
|
<el-input v-model="editForm.refundAmount" placeholder="请输入退款金额" style="width:10vw;" clearable /> |
|
|
|
|
|
|
|
|
<el-text style="width:4vw;">{{ t('common_add.refundAmount') }}</el-text> |
|
|
|
|
|
<el-input v-model="editForm.refundAmount" :placeholder="t('common_add.refundAmountPlaceholder')" style="width:10vw;" clearable /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="dialog-item"> |
|
|
<div class="dialog-item"> |
|
|
<el-text style="width:4vw;">退款途径</el-text> |
|
|
|
|
|
<el-select v-model="editForm.refundChannels" placeholder="请选择退款途径" style="width:10vw;"> |
|
|
|
|
|
|
|
|
<el-text style="width:4vw;">{{ t('common_add.refundChannels') }}</el-text> |
|
|
|
|
|
<el-select v-model="editForm.refundChannels" :placeholder="t('common_add.refundChannelsPlaceholder')" style="width:10vw;"> |
|
|
<el-option v-for="item in channelOptions" :key="item" :label="item" :value="item" /> |
|
|
<el-option v-for="item in channelOptions" :key="item" :label="item" :value="item" /> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</div> |
|
|
</div> |
|
|
<div class="dialog-item"> |
|
|
<div class="dialog-item"> |
|
|
<el-text style="width:4vw;">退款时间</el-text> |
|
|
|
|
|
<el-date-picker v-model="editForm.refundTime" type="datetime" placeholder="请选择退款时间" style="width:10vw;" |
|
|
|
|
|
|
|
|
<el-text style="width:4vw;">{{ t('common_add.refundTime') }}</el-text> |
|
|
|
|
|
<el-date-picker v-model="editForm.refundTime" type="datetime" :placeholder="t('common_add.refundTimePlaceholder')" style="width:10vw;" |
|
|
clearable /> |
|
|
clearable /> |
|
|
</div> |
|
|
</div> |
|
|
<div class="dialog-item"> |
|
|
<div class="dialog-item"> |
|
|
<el-text style="width:4vw;">退款截图</el-text> |
|
|
|
|
|
|
|
|
<el-text style="width:4vw;">{{ t('common_add.refundVoucher') }}</el-text> |
|
|
<el-upload ref="uploadRef" :http-request="customUpload" list-type="picture-card" :auto-upload="false" |
|
|
<el-upload ref="uploadRef" :http-request="customUpload" list-type="picture-card" :auto-upload="false" |
|
|
:on-change="handleImageChange" :before-upload="beforeUpload" :show-file-list="false"> |
|
|
:on-change="handleImageChange" :before-upload="beforeUpload" :show-file-list="false"> |
|
|
<template #default> |
|
|
<template #default> |
|
|
@ -224,13 +225,13 @@ |
|
|
</el-upload> |
|
|
</el-upload> |
|
|
</div> |
|
|
</div> |
|
|
<div class="dialog-item"> |
|
|
<div class="dialog-item"> |
|
|
<el-text style="width:4vw;">备注</el-text> |
|
|
|
|
|
<el-input v-model="editForm.refundRemark" placeholder="请输入备注" style="width:10vw;" :rows="3" maxlength="100" |
|
|
|
|
|
|
|
|
<el-text style="width:4vw;">{{ t('common_add.remark') }}</el-text> |
|
|
|
|
|
<el-input v-model="editForm.refundRemark" :placeholder="t('common_add.remarkPlaceholder')" style="width:10vw;" :rows="3" maxlength="100" |
|
|
show-word-limit type="textarea" clearable /> |
|
|
show-word-limit type="textarea" clearable /> |
|
|
</div> |
|
|
</div> |
|
|
<div style="display:flex;justify-content: center;margin-top: 5vh;"> |
|
|
<div style="display:flex;justify-content: center;margin-top: 5vh;"> |
|
|
<el-button type="default" @click="hideEditDialog" style="margin-right: 2vw;">取消</el-button> |
|
|
|
|
|
<el-button type="primary" @click="submitRefund">提交</el-button> |
|
|
|
|
|
|
|
|
<el-button type="default" @click="hideEditDialog" style="margin-right: 2vw;">{{ t('common.cancel') }}</el-button> |
|
|
|
|
|
<el-button type="primary" @click="submitRefund">{{ t('common.submit') }}</el-button> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
@ -250,12 +251,15 @@ const { adminData, menuTree } = storeToRefs(adminStore) |
|
|
import { permissionMapping, findMenuById } from "@/utils/menuTreePermission.js" |
|
|
import { permissionMapping, findMenuById } from "@/utils/menuTreePermission.js" |
|
|
import moment from 'moment' |
|
|
import moment from 'moment' |
|
|
import { isNumber } from 'lodash' |
|
|
import { isNumber } from 'lodash' |
|
|
|
|
|
// 国际化 |
|
|
|
|
|
import { useI18n } from 'vue-i18n' |
|
|
|
|
|
const { t } = useI18n() |
|
|
|
|
|
|
|
|
const uploadUrl = 'https://api.homilychart.com/hljw/api/aws/upload' |
|
|
const uploadUrl = 'https://api.homilychart.com/hljw/api/aws/upload' |
|
|
const dateRange = ref([]) |
|
|
const dateRange = ref([]) |
|
|
const tableData = ref([]) |
|
|
const tableData = ref([]) |
|
|
const editRow = ref({})// 编辑回显 |
|
|
const editRow = ref({})// 编辑回显 |
|
|
const statusList = ref(['待处理', '退款成功']) |
|
|
|
|
|
|
|
|
const statusList = ref([t('cash.pending'), t('cash.refundSuccess')]) |
|
|
const pagination = ref({ |
|
|
const pagination = ref({ |
|
|
pageNum: 1, |
|
|
pageNum: 1, |
|
|
pageSize: 50, |
|
|
pageSize: 50, |
|
|
@ -289,13 +293,13 @@ const getRefund = async function () { |
|
|
if (searchForm.value.jwcode) { |
|
|
if (searchForm.value.jwcode) { |
|
|
const isPositiveInteger = /^[1-9]\d*$/.test(searchForm.value.jwcode); |
|
|
const isPositiveInteger = /^[1-9]\d*$/.test(searchForm.value.jwcode); |
|
|
if (!isPositiveInteger) { |
|
|
if (!isPositiveInteger) { |
|
|
ElMessage.error('请输入正确的精网号') |
|
|
|
|
|
|
|
|
ElMessage.error(t('elmessage.checkJwcodeFormat')) |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
// 增加精网号长度限制,防止后端400错误 |
|
|
// 增加精网号长度限制,防止后端400错误 |
|
|
if (searchForm.value.jwcode.length > 8) { |
|
|
if (searchForm.value.jwcode.length > 8) { |
|
|
ElMessage.error('精网号长度不能超过8位') |
|
|
|
|
|
|
|
|
ElMessage.error(t('elmessage.limitJwcodeLength')) |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -330,7 +334,7 @@ const getRefund = async function () { |
|
|
tableData.value = result.data.list || [] |
|
|
tableData.value = result.data.list || [] |
|
|
pagination.value.total = result.data.total || 0 |
|
|
pagination.value.total = result.data.total || 0 |
|
|
} catch (error) { |
|
|
} catch (error) { |
|
|
ElMessage.error(error.message || '查询失败') |
|
|
|
|
|
|
|
|
ElMessage.error(error.message || t('elmessage.searchFailed')) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
// 提交 |
|
|
// 提交 |
|
|
@ -338,7 +342,7 @@ const submitRefund = async function () { |
|
|
try { |
|
|
try { |
|
|
const numberReg = /^[0-9]+(\.[0-9]+)?$/ |
|
|
const numberReg = /^[0-9]+(\.[0-9]+)?$/ |
|
|
if (!numberReg.test(editForm.value.refundAmount)) { |
|
|
if (!numberReg.test(editForm.value.refundAmount)) { |
|
|
ElMessage.error('请输入数字或小数') |
|
|
|
|
|
|
|
|
ElMessage.error(t('elmessage.checkNumberOrDecimal')) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
const params = { |
|
|
const params = { |
|
|
@ -358,14 +362,14 @@ const submitRefund = async function () { |
|
|
data: params |
|
|
data: params |
|
|
}) |
|
|
}) |
|
|
if (result.code === 200) { |
|
|
if (result.code === 200) { |
|
|
ElMessage.success('提交成功') |
|
|
|
|
|
|
|
|
ElMessage.success(t('elmessage.submitSuccess')) |
|
|
hideEditDialog() |
|
|
hideEditDialog() |
|
|
getRefund() |
|
|
getRefund() |
|
|
} else { |
|
|
} else { |
|
|
ElMessage.error(result.msg || '提交失败') |
|
|
|
|
|
|
|
|
ElMessage.error(result.msg || t('elmessage.submitFailed')) |
|
|
} |
|
|
} |
|
|
} catch (error) { |
|
|
} catch (error) { |
|
|
ElMessage.error(error.message || '提交失败') |
|
|
|
|
|
|
|
|
ElMessage.error(error.message || t('elmessage.submitFailed')) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
const getMarket = async function () { |
|
|
const getMarket = async function () { |
|
|
@ -413,8 +417,32 @@ const hideEditDialog = () => { |
|
|
jwcode: '' |
|
|
jwcode: '' |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
const currencies = ref(['美元(USD)', '港币(HKD)', '新币(SGD)', '马币(MYR)', '泰铢(THB)', '加币(CAD)', '越南盾(VDN)', '韩元(KRW)']) |
|
|
|
|
|
const channelOptions = ref(["Stripe-链接收款", "PaymentAsia-链接收款", "Ipay88-链接收款", "银行转账", "刷卡", "现金", "支票", "Grabpay", "Nets", "E-Transfer", "Paypal"]) |
|
|
|
|
|
|
|
|
// const currencies = ref(['美元(USD)', '港币(HKD)', '新币(SGD)', '马币(MYR)', '泰铢(THB)', '加币(CAD)', '越南盾(VDN)', '韩元(KRW)']) |
|
|
|
|
|
const currencies = ref([ |
|
|
|
|
|
t('cash.currency.usd'), // 美元(USD) |
|
|
|
|
|
t('cash.currency.hkd'), // 港币(HKD) |
|
|
|
|
|
t('cash.currency.sgd'), // 新币(SGD) |
|
|
|
|
|
t('cash.currency.myr'), // 马币(MYR) |
|
|
|
|
|
t('cash.currency.thb'), // 泰铢(THB) |
|
|
|
|
|
t('cash.currency.cad'), // 加币(CAD) |
|
|
|
|
|
t('cash.currency.vnd'), // 越南盾(VDN) |
|
|
|
|
|
t('cash.currency.krw') // 韩元(KRW) |
|
|
|
|
|
]) |
|
|
|
|
|
// const channelOptions = ref(["Stripe-链接收款", "PaymentAsia-链接收款", "Ipay88-链接收款", "银行转账", "刷卡", "现金", "支票", "Grabpay", "Nets", "E-Transfer", "Paypal"]) |
|
|
|
|
|
const channelOptions = ref([ |
|
|
|
|
|
t('cash.payMethods.stripe'), |
|
|
|
|
|
t('cash.payMethods.paymentAsia'), |
|
|
|
|
|
t('cash.payMethods.ipay88'), |
|
|
|
|
|
t('cash.payMethods.bankTransfer'), |
|
|
|
|
|
t('cash.payMethods.card'), |
|
|
|
|
|
t('cash.payMethods.cash'), |
|
|
|
|
|
t('cash.payMethods.check'), |
|
|
|
|
|
t('cash.payMethods.grabpay'), |
|
|
|
|
|
t('cash.payMethods.nets'), |
|
|
|
|
|
t('cash.payMethods.transfer'), |
|
|
|
|
|
t('cash.payMethods.paypal'), |
|
|
|
|
|
]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 预览图片函数 |
|
|
// 预览图片函数 |
|
|
const previewImage = (imageUrl) => { |
|
|
const previewImage = (imageUrl) => { |
|
|
@ -453,11 +481,11 @@ const beforeUpload = (file) => { |
|
|
const isPNG = file.type === 'image/png' |
|
|
const isPNG = file.type === 'image/png' |
|
|
const isLt1 = file.size / 1024 < 2048 |
|
|
const isLt1 = file.size / 1024 < 2048 |
|
|
if (!isJPG && !isPNG) { |
|
|
if (!isJPG && !isPNG) { |
|
|
ElMessage.error('上传图片只能是 JPG 或 PNG 格式') |
|
|
|
|
|
|
|
|
ElMessage.error(t('elmessage.onlyUploadJPGPNG')) |
|
|
return false |
|
|
return false |
|
|
} |
|
|
} |
|
|
if (!isLt1) { |
|
|
if (!isLt1) { |
|
|
ElMessage.error('上传图片大小不能超过2MB') |
|
|
|
|
|
|
|
|
ElMessage.error(t('elmessage.limitImageSize2MB')) |
|
|
return false |
|
|
return false |
|
|
} |
|
|
} |
|
|
return true |
|
|
return true |
|
|
@ -476,13 +504,13 @@ const customUpload = async (options) => { |
|
|
}) |
|
|
}) |
|
|
if (response.code === 200 && response.data) { |
|
|
if (response.code === 200 && response.data) { |
|
|
editForm.value.imageUrl = response.data.url |
|
|
editForm.value.imageUrl = response.data.url |
|
|
ElMessage.success(response.msg || '上传成功') |
|
|
|
|
|
|
|
|
ElMessage.success(response.msg || t('elmessage.uploadSuccess')) |
|
|
} else { |
|
|
} else { |
|
|
ElMessage.error(response.msg || '上传失败') |
|
|
|
|
|
|
|
|
ElMessage.error(response.msg || t('elmessage.uploadFailed')) |
|
|
} |
|
|
} |
|
|
} catch (error) { |
|
|
} catch (error) { |
|
|
console.error('上传错误:', error) |
|
|
console.error('上传错误:', error) |
|
|
ElMessage.error(`上传失败: ${error.msg || error.message || '网络异常'}`) |
|
|
|
|
|
|
|
|
ElMessage.error(t('elmessage.uploadFailed') + `: ${error.msg || error.message || t('elmessage.inNetworkError')}`) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
const defaultTime = [ |
|
|
const defaultTime = [ |
|
|
|