|
|
@@ -20,7 +20,95 @@
|
|
|
{{typeMap.find(item => item.value === row.type)?.text}}
|
|
|
</template>
|
|
|
<template #status="{ row }">
|
|
|
- <OrderStatusMachineCell :row="row" @cancel="handleOrderCancel" @action="handleOrderAction" />
|
|
|
+ <view class="status-box">
|
|
|
+ <view v-if="row.type == 1">
|
|
|
+ <text v-if="
|
|
|
+ row.status == 1 &&
|
|
|
+ row.callbackStatus == 0 &&
|
|
|
+ (row.expireTime == null || time < row.expireTime)
|
|
|
+ " class="status-tag status-pending" v-t="'State.ToBeProcessed'"></text>
|
|
|
+ <text v-if="
|
|
|
+ row.status == 2 &&
|
|
|
+ row.executionStatus == 2 &&
|
|
|
+ row.callbackStatus == 1
|
|
|
+ " class="status-tag status-completed" v-t="'State.Completed'"></text>
|
|
|
+ <text v-if="
|
|
|
+ row.status == 2 &&
|
|
|
+ (row.executionStatus == 1 || row.executionStatus == 0) &&
|
|
|
+ row.callbackStatus != 2 &&
|
|
|
+ (row.expireTime == null || time < row.expireTime)
|
|
|
+ " class="status-tag status-processing" v-t="'State.InTheProcessing'"></text>
|
|
|
+ <text v-if="
|
|
|
+ row.callbackStatus == 2 ||
|
|
|
+ row.status == 3 ||
|
|
|
+ row.executionStatus == 3
|
|
|
+ " class="status-tag status-failed" v-t="'State.Refused'"></text>
|
|
|
+ <text v-if="
|
|
|
+ !(
|
|
|
+ row.status == 2 &&
|
|
|
+ row.executionStatus == 2 &&
|
|
|
+ row.callbackStatus == 1
|
|
|
+ ) &&
|
|
|
+ !(
|
|
|
+ row.callbackStatus == 2 ||
|
|
|
+ row.status == 3 ||
|
|
|
+ row.executionStatus == 3
|
|
|
+ ) &&
|
|
|
+ row.expireTime != null &&
|
|
|
+ time > row.expireTime
|
|
|
+ " class="status-tag status-expired" v-t="'State.expireTime'"></text>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view v-if="row.type == 2">
|
|
|
+ <text v-if="
|
|
|
+ row.status == 1 &&
|
|
|
+ row.callbackStatus == 0 &&
|
|
|
+ (row.expireTime == null || time < row.expireTime)
|
|
|
+ " class="status-tag status-pending" v-t="'State.ToBeProcessed'"></text>
|
|
|
+ <text v-if="
|
|
|
+ row.status == 2 &&
|
|
|
+ row.executionStatus == 2 &&
|
|
|
+ row.submitStatus == 2
|
|
|
+ " class="status-tag status-completed" v-t="'State.Completed'"></text>
|
|
|
+ <text v-if="
|
|
|
+ (row.status == 2 &&
|
|
|
+ (row.executionStatus == 1 || row.executionStatus == 0) &&
|
|
|
+ row.callbackStatus != 2) ||
|
|
|
+ (row.status == 2 &&
|
|
|
+ row.executionStatus == 2 &&
|
|
|
+ row.callbackStatus == 0 &&
|
|
|
+ row.type == 2 &&
|
|
|
+ row.submitStatus != 2)
|
|
|
+ " class="status-tag status-processing" v-t="'State.InTheProcessing'"></text>
|
|
|
+ <text v-if="
|
|
|
+ row.callbackStatus == 2 ||
|
|
|
+ row.status == 3 ||
|
|
|
+ row.executionStatus == 3
|
|
|
+ " class="status-tag status-failed" v-t="'State.Refused'"></text>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <text v-if="row.status == 5" class="status-tag status-cancelled" v-t="'State.Cancelled'"></text>
|
|
|
+
|
|
|
+ <!-- 取消按钮(保留原有功能,不添加状态类名) -->
|
|
|
+ <view v-if="
|
|
|
+ row.status == 1 &&
|
|
|
+ row.callbackStatus == 0 &&
|
|
|
+ (row.expireTime == null || time < row.expireTime) &&
|
|
|
+ row.type == 2
|
|
|
+ ">
|
|
|
+ <text class="status-tag btn crm-cursor status-cancelled" v-t="'Btn.Cancel'"
|
|
|
+ @click.stop="cancleConfirm(row.id, 1)"></text>
|
|
|
+ </view>
|
|
|
+ <view v-if="
|
|
|
+ row.status == 2 &&
|
|
|
+ row.executionStatus == 2 &&
|
|
|
+ row.backstageStatus == 1 &&
|
|
|
+ row.type == 2
|
|
|
+ ">
|
|
|
+ <text class="status-tag btn crm-cursor status-cancelled" v-t="'Btn.Cancel'"
|
|
|
+ @click.stop="cancleConfirm(row.id, 2)"></text>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
</template>
|
|
|
<template #btn="{ row }">
|
|
|
<text :class="['operation-btn', row.status !== 4 ? 'disabled' : '']" @click="openAddFile(row)">
|
|
|
@@ -38,7 +126,8 @@ import { computed, ref } from 'vue';
|
|
|
import { useI18n } from 'vue-i18n';
|
|
|
const { t, locale } = useI18n();
|
|
|
import { financialApi } from '@/service/financial';
|
|
|
-import OrderStatusMachineCell from './components/OrderStatusMachineCell.vue'
|
|
|
+import { useConfirm } from '@/hooks/useConfirm'
|
|
|
+
|
|
|
const search = ref({})
|
|
|
const typeMap = computed(() => ([
|
|
|
{ value: null, text: t('Custom.PaymentHistory.All') },
|
|
|
@@ -54,11 +143,6 @@ const orderStatusMap = computed(() => ([
|
|
|
{ value: 5, text: t('State.expireTime') },
|
|
|
{ value: 6, text: t('State.Cancelled') },
|
|
|
]));
|
|
|
-
|
|
|
-const handleOrderCancel = (row) => {
|
|
|
- console.log('取消订单:', row)
|
|
|
-}
|
|
|
-
|
|
|
const isZh = computed(() => ['cn', 'zh', 'zhHant'].includes(locale.value));
|
|
|
// 表格列配置
|
|
|
const columns = ref([
|
|
|
@@ -144,6 +228,46 @@ const mobilePrimaryFields = ref([
|
|
|
])
|
|
|
const listApi = ref(null)
|
|
|
listApi.value = financialApi.BalanceList
|
|
|
+const confirm = useConfirm()
|
|
|
+
|
|
|
+const cancleConfirm = async (id, type) => {
|
|
|
+ try {
|
|
|
+ await confirm({
|
|
|
+ title: t('Msg.SystemPrompt'),
|
|
|
+ content: t('Msg.Cancle'),
|
|
|
+ confirmText: t('Btn.item6'),
|
|
|
+ cancelText: t('Btn.item7')
|
|
|
+ })
|
|
|
+ cancle(id, type)
|
|
|
+ } catch (error) {
|
|
|
+ }
|
|
|
+}
|
|
|
+const tableRef = ref(null)
|
|
|
+const cancle = async (id, type) => {
|
|
|
+ try {
|
|
|
+ let api
|
|
|
+ if (type == 1) {
|
|
|
+ api = financialApi.withdrawCancel
|
|
|
+ } else {
|
|
|
+ api = financialApi.withdrawCancelBackstage
|
|
|
+ }
|
|
|
+ let res = await api({ id: id });
|
|
|
+ if (res.code == 200) {
|
|
|
+ uni.showToast({
|
|
|
+ title: t("Msg.Success"),
|
|
|
+ icon: 'success'
|
|
|
+ });
|
|
|
+ tableRef.value.refreshTable()
|
|
|
+ } else {
|
|
|
+ uni.showToast({
|
|
|
+ title: res.msg,
|
|
|
+ icon: 'error'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.log('取消删除')
|
|
|
+ }
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
@@ -192,7 +316,7 @@ listApi.value = financialApi.BalanceList
|
|
|
}
|
|
|
|
|
|
.operation-btn {
|
|
|
- :deep(span) {
|
|
|
+ :deep(text) {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: center;
|