Browse Source

一些下一期的

lihuilin/feature-20251212182509-多语言二期
lihuilin 4 weeks ago
parent
commit
add02a414a
  1. BIN
      src/assets/images/refund-approved.png
  2. BIN
      src/assets/images/refund-approving.png
  3. 15
      src/views/moneyManage/executor/executor.vue
  4. 6
      src/views/moneyManage/receiveDetail/receiveService.vue
  5. 31
      src/views/moneyManage/refundDetail/refundCharge.vue
  6. 35
      src/views/moneyManage/refundDetail/refundFinance.vue
  7. 16
      src/views/moneyManage/refundDetail/refundHeader.vue
  8. 31
      src/views/moneyManage/refundDetail/refundService.vue
  9. 2
      src/views/refund/gold/addCoinRefund.vue

BIN
src/assets/images/refund-approved.png

Before

Width: 46  |  Height: 46  |  Size: 2.9 KiB

After

Width: 46  |  Height: 46  |  Size: 2.7 KiB

BIN
src/assets/images/refund-approving.png

Before

Width: 46  |  Height: 46  |  Size: 2.8 KiB

After

Width: 46  |  Height: 46  |  Size: 2.5 KiB

15
src/views/moneyManage/executor/executor.vue

@ -154,6 +154,14 @@
<el-option label="部分退款" :value="1"></el-option>
</el-select>
</div>
<div class="dialog-item" v-if="editRow.goodsName === '金币充值'">
<el-text style="width:4vw;">永久金币</el-text>
<el-input v-model="editRow.permanentGold" style="width:10vw;" disabled />
</div>
<div class="dialog-item" v-if="editRow.goodsName === '金币充值'">
<el-text style="width:4vw;">免费金币</el-text>
<el-input v-model="editRow.freeGold" style="width:10vw;" disabled />
</div>
<div class="dialog-item">
<el-text style="width:4vw;">付款币种</el-text>
<el-input v-model="editRow.paymentCurrency" style="width:10vw;" disabled />
@ -187,6 +195,11 @@
<el-input v-model="editRow.payRemark" style="width:10vw;" :row="3" disabled maxlength="100" type="textarea"
show-word-limit clearable />
</div>
<div class="dialog-item">
<el-text style="width:4vw;">退款理由</el-text>
<el-input v-model="editRow.rejectReason" style="width:10vw;" :row="3" disabled maxlength="100" type="textarea"
show-word-limit clearable />
</div>
</div>
<div class="right">
<div class="dialog-item">
@ -567,7 +580,7 @@ onMounted(() => {
.edit {
.left {
width: 45%;
height: 60vh;
height: auto;
padding: 0 2vw;
.dialog-item {

6
src/views/moneyManage/receiveDetail/receiveService.vue

@ -14,11 +14,11 @@
<el-input v-model="searchData.name" placeholder="请输入客户姓名" style="width:10vw;"
clearable></el-input>
</div>
<div class="rowItem">
<!-- <div class="rowItem">
<el-text style="width: 4vw;">所属地区</el-text>
<el-cascader style="width: 9vw;" v-model="searchData.markets" :options="market"
placeholder="请选择所属地区" clearable @change="handleMarketChange" />
</div>
</div> -->
<div class="rowItem">
<el-text style="width: 4vw;">订单状态</el-text>
<el-select v-model="searchData.status" placeholder="请选择订单状态" style="width: 10vw;" clearable>
@ -134,7 +134,7 @@
<template #default=scope>
<el-link v-if="scope.row.status == 4" style="color: #FA5A1E;"
@click="openConfirm('refund', scope.row)">退款</el-link>
<el-link v-else-if="scope.row.status == 1" style="color: #2741DE;">填写手续费</el-link>
<el-link v-else-if="scope.row.status == 1" style="color: #2741DE;">到账</el-link>
<el-link v-else-if="scope.row.status == 5" style="color: #2741DE;"
@click="openAddForm(scope.row)">编辑</el-link>
<el-link v-else-if="scope.row.status == 0" style="color: #FA5A1E;"

31
src/views/moneyManage/refundDetail/refundCharge.vue

@ -15,38 +15,33 @@
<el-cascader v-model="searchForm.goodsName" :options="productList" style="width: 10vw;"
placeholder="请选择产品名称" clearable />
</div>
<div class="item1" 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="请选择所属地区"
clearable @change="handleMarketChange" />
</div>
<div class="item1">
<el-text size="large" style="width:4vw;">订单状态</el-text>
<el-select v-model="searchForm.statuses" style="width:9vw;" placeholder="请选择订单状态" clearable>
<el-option v-for="item in statusList" :label="item" :value="item" :key="item" />
</el-select>
</div>
</div>
<div class="condition">
<div class="item2">
<div class="item1">
<el-text size="large" style="width:4vw;">付款币种</el-text>
<el-select v-model="searchForm.paymentCurrency" style="width:9vw;" placeholder="请选择付款币种" clearable>
<el-option v-for="item in currencies" :key="item" :label="item" :value="item" />
</el-select>
</div>
</div>
<div class="condition">
<div class="item2">
<el-text size="large" style="width:4vw;">支付方式</el-text>
<el-select v-model="searchForm.payType" style="width:9vw;" placeholder="请选择支付方式" clearable>
<el-option v-for="item in channelOptions" :key="item" :label="item" :value="item" />
</el-select>
</div>
<div class="item2" style="width: 28.5vw;">
<div class="item2" style="width: 29.2vw;">
<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:22vw;" @change="handleDatePickerChange" clearable
:disabled-date="disabledDate" :default-time="defaultTime" />
</div>
<div>
<div style="margin-left: 1vw;">
<el-button type="primary" @click="getRefund">查询</el-button>
<el-button type="warning" @click="exportExcel()">导出excel</el-button>
<el-button type="primary" @click="openExportList">查看导出列表</el-button>
@ -85,7 +80,7 @@
}}
</template>
</el-table-column>
<el-table-column prop="operation" label="操作" fixed="right" width="100px">
<el-table-column prop="operation" label="操作" fixed="right" width="120px">
<template #default="scope">
<div class="operation">
<el-button v-if="scope.row.status === 20" type="primary" text @click="showAudit(scope.row)">
@ -223,7 +218,7 @@
</div>
</el-dialog>
<el-dialog v-model="showSteps" title="退款进度" overflow draggable width="1206px" height="506px" :style="{
<el-dialog v-model="showSteps" overflow draggable width="1206px" height="506px" :style="{
backgroundImage: `url(${RefundChargeBackground})`,
backgroundSize: 'cover',
backgroundPosition: 'center'
@ -299,6 +294,7 @@
</el-step>
</el-steps>
</div>
<div class="reject-reason" v-if="isReject">驳回理由{{ rejectReason }}</div>
<div class="steps-btn">
<el-button type="primary" @click="showSteps = false">确定</el-button>
</div>
@ -358,6 +354,7 @@ const searchForm = ref({
markets: []
})
const isReject = ref(false)//
const rejectReason = ref('此用户非常喜欢我们的产品,并表示要充值永久会员.......')//
const addForm = ref({
remark: ''
})
@ -535,6 +532,7 @@ const showStep = function (row) {
return
}
rejectReason.value = row.rejectReason || ''
isReject.value = false
submitter.value = row.submitter || ''
areaFinance.value = row.areaFinance || ''
@ -880,6 +878,15 @@ onMounted(() => {
justify-content: center;
}
.reject-reason {
margin-top: 2vh;
width: 40%;
margin-left: 30%;
background-color: white;
padding: 1vh;
border-radius: 10px;
}
.steps-btn {
height: 15vh;
display: flex;

35
src/views/moneyManage/refundDetail/refundFinance.vue

@ -14,38 +14,33 @@
<el-text size="large" style="width:4vw;">产品名称</el-text>
<el-cascader v-model="searchForm.goodsName" :options="productList" style="width: 10vw;" clearable />
</div>
<div class="item1" 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="请选择所属地区"
clearable @change="handleMarketChange" />
</div>
<div class="item1">
<el-text size="large" style="width:4vw;">订单状态</el-text>
<el-select v-model="searchForm.statuses" style="width:9vw;" clearable>
<el-option v-for="item in statusList" :label="item" :value="item" :key="item" />
</el-select>
</div>
</div>
<div class="condition">
<div class="item2">
<div class="item1">
<el-text size="large" style="width:4vw;">付款币种</el-text>
<el-select v-model="searchForm.paymentCurrency" style="width:9vw;" clearable>
<el-option v-for="item in currencies" :key="item" :label="item" :value="item" />
</el-select>
</div>
</div>
<div class="condition">
<div class="item2">
<el-text size="large" style="width:4vw;">支付方式</el-text>
<el-select v-model="searchForm.payType" style="width:9vw;" clearable>
<el-option v-for="item in channelOptions" :key="item" :label="item" :value="item" />
</el-select>
</div>
<div class="item2" style="width: 28.5vw;">
<div class="item2" style="width: 29.2vw;">
<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:22vw;" @change="handleDatePickerChange" clearable
:disabled-date="disabledDate" :default-time="defaultTime" />
</div>
<div>
<div style="margin-left: 1vw;">
<el-button type="primary" @click="getRefund">查询</el-button>
<el-button type="warning" @click="exportExcel()">导出excel</el-button>
<el-button type="primary" @click="openExportList">查看导出列表</el-button>
@ -84,7 +79,7 @@
}}
</template>
</el-table-column>
<el-table-column prop="operation" label="操作" fixed="right" width="100px">
<el-table-column prop="operation" label="操作" fixed="right" width="120px">
<template #default="scope">
<div class="operation">
<el-button v-if="scope.row.status === 10" type="primary" text @click="showAudit2(scope.row)">
@ -222,7 +217,7 @@
</div>
</el-dialog>
<el-dialog v-model="showSteps" title="退款进度" overflow draggable width="1206px" height="506px" :style="{
<el-dialog v-model="showSteps" overflow draggable width="1206px" height="506px" :style="{
backgroundImage: `url(${RefundFinanceBackground})`,
backgroundSize: 'cover',
backgroundPosition: 'center'
@ -298,6 +293,7 @@
</el-step>
</el-steps>
</div>
<div class="reject-reason" v-if="isReject">驳回理由{{ rejectReason }}</div>
<div class="steps-btn">
<el-button type="primary" @click="showSteps = false">确定</el-button>
</div>
@ -365,6 +361,7 @@ const auditForm = ref({
})
const isReject = ref(false)//
const showReject = ref(false)
const rejectReason = ref('此用户非常喜欢我们的产品,并表示要充值永久会员.......')//
const pagination = ref({
pageNum: 1,
pageSize: 50,
@ -464,7 +461,7 @@ const getRefund = async function () {
return
}
try {
const statusParam = ref([10, 20, 22, 30, 32, 40, 41])
const statusParam = ref([10, 12, 20, 22, 30, 32, 40, 41])
if (searchForm.value.statuses === '审核通过') {
statusParam.value = [20, 30, 40]
} else if (searchForm.value.statuses === '已驳回') {
@ -474,7 +471,7 @@ const getRefund = async function () {
} else if (searchForm.value.statuses === '退款成功') {
statusParam.value = [41]
} else {
statusParam.value = [10, 20, 22, 30, 32, 40, 41]
statusParam.value = [10, 12, 20, 22, 30, 32, 40, 41]
}
const goodsName = searchForm.value.goodsName && searchForm.value.goodsName.length > 0
@ -621,6 +618,7 @@ const showStep = function (row) {
return
}
rejectReason.value = row.rejectReason || ''
isReject.value = false
submitter.value = row.submitter || ''
areaFinance.value = row.areaFinance || ''
@ -920,6 +918,15 @@ onMounted(() => {
padding-top: 15vw;
}
.reject-reason {
margin-top: 2vh;
width: 40%;
margin-left: 30%;
background-color: white;
padding: 1vh;
border-radius: 10px;
}
.steps-status {
display: flex;
align-items: center;

16
src/views/moneyManage/refundDetail/refundHeader.vue

@ -85,7 +85,7 @@
}}
</template>
</el-table-column>
<el-table-column prop="operation" label="操作" fixed="right" width="100px">
<el-table-column prop="operation" label="操作" fixed="right" width="120px">
<template #default="scope">
<div class="operation">
<el-button v-if="scope.row.status === 30" type="primary" text @click="showAudit(scope.row)">
@ -234,7 +234,7 @@
</div>
</el-dialog>
<el-dialog v-model="showSteps" title="退款进度" overflow draggable width="1206px" height="506px" :style="{
<el-dialog v-model="showSteps" overflow draggable width="1206px" height="506px" :style="{
backgroundImage: `url(${BackgroundSvg})`,
backgroundSize: 'cover',
backgroundPosition: 'center'
@ -310,6 +310,7 @@
</el-step>
</el-steps>
</div>
<div class="reject-reason" v-if="isReject">驳回理由{{ rejectReason }}</div>
<div class="steps-btn">
<el-button type="primary" @click="showSteps = false">确定</el-button>
</div>
@ -381,6 +382,7 @@ const searchForm = ref({
statuses: []
})
const isReject = ref(false)//
const rejectReason = ref('此用户非常喜欢我们的产品,并表示要充值永久会员.......')//
const addForm = ref({
remark: ''
})
@ -752,6 +754,7 @@ const showStep = function (row) {
return
}
rejectReason.value = row.rejectReason || ''
isReject.value = false
submitter.value = row.submitter || ''
areaFinance.value = row.areaFinance || ''
@ -929,6 +932,15 @@ onMounted(() => {
justify-content: center;
}
.reject-reason {
margin-top: 2vh;
width: 40%;
margin-left: 30%;
background-color: white;
padding: 1vh;
border-radius: 10px;
}
.steps-btn {
height: 15vh;
display: flex;

31
src/views/moneyManage/refundDetail/refundService.vue

@ -14,10 +14,11 @@
<el-text size="large" style="width:4vw;">产品名称</el-text>
<el-cascader v-model="searchForm.goodsName" :options="productList" style="width: 10vw;" clearable />
</div>
<div class="item1" v-if="adminData.markets === '总部'">
<el-text size="large" style="width:4vw;">所属地区</el-text>
<el-cascader style="width: 9vw;" v-model="searchForm.market" :options="market" placeholder="请选择所属地区"
clearable @change="handleMarketChange" />
<div class="item1">
<el-text size="large" style="width:4vw;">付款币种</el-text>
<el-select v-model="searchForm.paymentCurrency" style="width:9vw;" clearable>
<el-option v-for="item in currencies" :key="item" :label="item" :value="item" />
</el-select>
</div>
<div class="item1">
<el-text size="large" style="width:4vw;" multiple>订单状态</el-text>
@ -28,27 +29,19 @@
</div>
<div class="condition">
<div class="item2">
<el-text size="large" style="width:4vw;">付款币种</el-text>
<el-select v-model="searchForm.paymentCurrency" style="width:9vw;" clearable>
<el-option v-for="item in currencies" :key="item" :label="item" :value="item" />
</el-select>
</div>
<div class="item2">
<el-text size="large" style="width:4vw;">支付方式</el-text>
<el-select v-model="searchForm.payType" style="width:9vw;" clearable>
<el-option v-for="item in channelOptions" :key="item" :label="item" :value="item" />
</el-select>
</div>
<div class="item2" style="width: 28.5vw;">
<div class="item2" style="width: 29.2vw;">
<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:22vw;" :disabled-date="disabledDate" :default-time="defaultTime"
end-placeholder="结束时间" :disabled-date="disabledDate" :default-time="defaultTime"
clearable />
</div>
<div>
<div style="margin-left: 1vw;">
<el-button type="primary" @click="getRefund">查询</el-button>
<!-- <el-button type="warning">导出excel</el-button>
<el-button type="primary">查看导出列表</el-button> -->
<el-button type="success" @click="reset">重置</el-button>
</div>
</div>
@ -375,7 +368,7 @@ const submitEdit = async function () {
}else if(!editForm.value.refundReason) {
ElMessage.error('请输入退款理由')
return
}else if(editForm.value.refundModel == 1 && (!editForm.value.partRefundGold || !editForm.value.partRefundFree)) {
}else if(editRow.value.goodsName === '金币充值' && editForm.value.refundModel == 1 && (!editForm.value.partRefundGold || !editForm.value.partRefundFree)) {
ElMessage.error('请输入退款金币数和免费金币数')
return
}else if (editForm.value.refundModel == 1 && (editForm.value.partRefundGold || editForm.value.partRefundFree)) {
@ -515,6 +508,12 @@ const reset = function () {
getRefund()
}
const showBackDialog = function (row) {
editForm.value = {
refundModel: '',
refundReason: '',
partRefundGold: '',
partRefundFree: ''
}
backRow.value = row
showBack.value = true
}

2
src/views/refund/gold/addCoinRefund.vue

@ -279,7 +279,7 @@ const getUser = async function (jwcode) {
// 退退
const refundType = ref([
{ value: '商品退款', label: t('refund.refundTypeOptions.商品退款') },
{ value: '金币退款', label: t('refund.refundTypeOptions.金币退款') }
//{ value: '退', label: t('refund.refundTypeOptions.退') }
])
//

Loading…
Cancel
Save