|
|
@ -1,13 +1,11 @@ |
|
|
|
<script setup> |
|
|
|
// 这是退款明细页面 |
|
|
|
import {ref, onMounted, reactive, computed} from 'vue' |
|
|
|
import ElementPlus from 'element-plus' |
|
|
|
import {AiFillRead} from 'vue-icons-plus/ai' |
|
|
|
import {ElMessage, ElMessageBox} from 'element-plus' |
|
|
|
import axios from 'axios' |
|
|
|
import {computed, onMounted, ref} from 'vue' |
|
|
|
import {ElMessage} from 'element-plus' |
|
|
|
import moment from 'moment' |
|
|
|
import API from '@/util/http' |
|
|
|
import request from '@/util/http' |
|
|
|
import {marketMapping, reverseMarketMapping} from "@/utils/marketMap.js"; |
|
|
|
|
|
|
|
// 精网号去空格 |
|
|
|
const trimJwCode = () => { |
|
|
@ -81,14 +79,15 @@ const formatTime = (val) => val ? moment(val).format('YYYY-MM-DD HH:mm:ss') : '' |
|
|
|
const getRefundTypes = async function () { |
|
|
|
try { |
|
|
|
// 发送请求获取退款类型 |
|
|
|
const result = await API({ |
|
|
|
const result = await API({ |
|
|
|
url: '/refund/refundType', //这里应该写上一个退款类型的接口 |
|
|
|
data: {} }) |
|
|
|
data: {} |
|
|
|
}) |
|
|
|
console.log('退款类型请求成功', result) |
|
|
|
// 检查返回的数据是否为数组 |
|
|
|
if (Array.isArray(result.data)) { |
|
|
|
// 将字符串数组转换为 { value, label } 格式 |
|
|
|
refundType.value = result.data.map(item => ({ value: item, label: item })); |
|
|
|
refundType.value = result.data.map(item => ({value: item, label: item})); |
|
|
|
} else { |
|
|
|
console.error('退款类型数据格式错误', result) |
|
|
|
ElMessage.error('退款类型数据格式错误,请联系管理员') |
|
|
@ -130,30 +129,30 @@ const getSelectBy = async function (val) { |
|
|
|
url: '/refund/selectBy', |
|
|
|
data: { |
|
|
|
...getObj.value, |
|
|
|
refundUser: { ...refundUser.value } |
|
|
|
refundUser: {...refundUser.value} |
|
|
|
} |
|
|
|
}) |
|
|
|
// 复制一份 refundUser.value 并移除排序字段和排序方式 |
|
|
|
const detailWithoutSort = { ...refundUser.value } |
|
|
|
const detailWithoutSort = {...refundUser.value} |
|
|
|
delete detailWithoutSort.sortField |
|
|
|
delete detailWithoutSort.sortOrder |
|
|
|
|
|
|
|
const resultTotalGold = await API({ |
|
|
|
url: '/refund/statsGold', |
|
|
|
data: { |
|
|
|
...detailWithoutSort |
|
|
|
...detailWithoutSort |
|
|
|
} |
|
|
|
}) |
|
|
|
// 将响应结果存储到响应式数据中 |
|
|
|
console.log('resultTotalGold请求成功', resultTotalGold) |
|
|
|
console.log('resultTotalGold请求成功', resultTotalGold) |
|
|
|
// 检查响应的 code 是否为 200 且 data 存在 |
|
|
|
if (resultTotalGold.code === 200 && resultTotalGold.data) { |
|
|
|
const data = resultTotalGold.data |
|
|
|
console.log('获取到的金币数据:', data) |
|
|
|
|
|
|
|
permanentGolds.value = (Number(data.permanentGolds) || 0) |
|
|
|
freeGolds.value = (Number(data.freeGolds) || 0) |
|
|
|
taskGolds.value = (Number(data.taskGolds) || 0) |
|
|
|
permanentGolds.value = (Number(data.permanentGolds) || 0) |
|
|
|
freeGolds.value = (Number(data.freeGolds) || 0) |
|
|
|
taskGolds.value = (Number(data.taskGolds) || 0) |
|
|
|
} |
|
|
|
|
|
|
|
// 存储表格数据 |
|
|
@ -189,21 +188,21 @@ const reset = function () { |
|
|
|
sortOrder.value = '' |
|
|
|
getTime.value = {} |
|
|
|
activeTimeRange.value = '' // 清除激活状态 |
|
|
|
|
|
|
|
selectedMarketPath.value = [] |
|
|
|
getSelectBy() |
|
|
|
} |
|
|
|
// 今天 |
|
|
|
const getToday = function () { |
|
|
|
const today = new Date() |
|
|
|
const startTime = new Date( |
|
|
|
today.getFullYear(), |
|
|
|
today.getMonth(), |
|
|
|
today.getDate() |
|
|
|
today.getFullYear(), |
|
|
|
today.getMonth(), |
|
|
|
today.getDate() |
|
|
|
) |
|
|
|
const endTime = new Date( |
|
|
|
today.getFullYear(), |
|
|
|
today.getMonth(), |
|
|
|
today.getDate() + 1 |
|
|
|
today.getFullYear(), |
|
|
|
today.getMonth(), |
|
|
|
today.getDate() + 1 |
|
|
|
) |
|
|
|
getTime.value = [startTime, endTime] |
|
|
|
console.log('getTime', getTime.value) |
|
|
@ -216,14 +215,14 @@ const getYesterday = function () { |
|
|
|
const yesterday = new Date() |
|
|
|
yesterday.setDate(yesterday.getDate() - 1) |
|
|
|
const startTime = new Date( |
|
|
|
yesterday.getFullYear(), |
|
|
|
yesterday.getMonth(), |
|
|
|
yesterday.getDate() |
|
|
|
yesterday.getFullYear(), |
|
|
|
yesterday.getMonth(), |
|
|
|
yesterday.getDate() |
|
|
|
) |
|
|
|
const endTime = new Date( |
|
|
|
yesterday.getFullYear(), |
|
|
|
yesterday.getMonth(), |
|
|
|
yesterday.getDate() + 1 |
|
|
|
yesterday.getFullYear(), |
|
|
|
yesterday.getMonth(), |
|
|
|
yesterday.getDate() + 1 |
|
|
|
) |
|
|
|
getTime.value = [startTime, endTime] |
|
|
|
console.log('getTime', getTime.value) |
|
|
@ -235,14 +234,14 @@ const getYesterday = function () { |
|
|
|
const get7Days = function () { |
|
|
|
const today = new Date() |
|
|
|
const startTime = new Date( |
|
|
|
today.getFullYear(), |
|
|
|
today.getMonth(), |
|
|
|
today.getDate() - 6 |
|
|
|
today.getFullYear(), |
|
|
|
today.getMonth(), |
|
|
|
today.getDate() - 6 |
|
|
|
) |
|
|
|
const endTime = new Date( |
|
|
|
today.getFullYear(), |
|
|
|
today.getMonth(), |
|
|
|
today.getDate() + 1 |
|
|
|
today.getFullYear(), |
|
|
|
today.getMonth(), |
|
|
|
today.getDate() + 1 |
|
|
|
) |
|
|
|
getTime.value = [startTime, endTime] |
|
|
|
console.log('getTime', getTime.value) |
|
|
@ -266,18 +265,43 @@ const handleClick = function (tab, event) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 获取地区列表的方法 |
|
|
|
// 获取地区,修改为级联下拉框 |
|
|
|
const getMarket = async function () { |
|
|
|
console.log('获取地区adminid', adminData.value) |
|
|
|
try { |
|
|
|
// 发送POST请求 |
|
|
|
const result = await API({ url: '/general/adminMarkets', data: { |
|
|
|
account:adminData.value.account, |
|
|
|
} }) |
|
|
|
const result = await API({ |
|
|
|
|
|
|
|
url: '/market/selectMarket', |
|
|
|
data: {account: adminData.value.account} |
|
|
|
}); |
|
|
|
// 将响应结果存储到响应式数据中 |
|
|
|
console.log('请求成功', result) |
|
|
|
|
|
|
|
// 递归转换树形结构为级联选择器需要的格式 |
|
|
|
const transformTree = (nodes) => { |
|
|
|
return nodes.map(node => { |
|
|
|
const children = node.children && node.children.length |
|
|
|
? transformTree(node.children) |
|
|
|
: null; |
|
|
|
// 如果有子节点,添加“全部”选项 |
|
|
|
if (children) { |
|
|
|
children.unshift({ |
|
|
|
value: `${node.name}_all`, // 唯一标识 |
|
|
|
label: '全部', |
|
|
|
children: null |
|
|
|
}); |
|
|
|
} |
|
|
|
return { |
|
|
|
value: node.name, //使用地区名称作为值 |
|
|
|
label: node.name, //显示名称 |
|
|
|
children |
|
|
|
}; |
|
|
|
}); |
|
|
|
} |
|
|
|
// 存储地区信息 |
|
|
|
market.value = result.data |
|
|
|
console.log('地区', market.value) |
|
|
|
market.value = transformTree(result.data) |
|
|
|
console.log('转换后的地区树', market.value) |
|
|
|
} catch (error) { |
|
|
|
console.log('请求失败', error) |
|
|
|
} |
|
|
@ -359,7 +383,7 @@ const handleSortChange = (column) => { |
|
|
|
sortField.value = 'createTime' |
|
|
|
} else if (column.prop === 'auditTime') { |
|
|
|
sortField.value = 'auditTime' |
|
|
|
} else if (column.prop === 'sumGold') { |
|
|
|
} else if (column.prop === 'sumGold') { |
|
|
|
sortField.value = 'sumGold' |
|
|
|
} |
|
|
|
sortOrder.value = column.order === 'ascending' ? 'ASC' : 'DESC' |
|
|
@ -374,23 +398,23 @@ const handleCurrentChange = function (val) { |
|
|
|
getSelectBy() |
|
|
|
} |
|
|
|
|
|
|
|
const exportExcel = async function () { |
|
|
|
const exportExcel = async function () { |
|
|
|
const params = { |
|
|
|
refundUser: { |
|
|
|
jwcode: refundUser.value.jwcode || '', |
|
|
|
refundModel : refundUser.value.refundModel || '', |
|
|
|
refundUser: { |
|
|
|
jwcode: refundUser.value.jwcode || '', |
|
|
|
refundModel: refundUser.value.refundModel || '', |
|
|
|
market: refundUser.value.market || '', |
|
|
|
startTime: refundUser.value.startTime || '', |
|
|
|
endTime: refundUser.value.endTime || '', |
|
|
|
goodsName: refundUser.value.goodsName || '', |
|
|
|
}, |
|
|
|
page:getObj.pageNum, |
|
|
|
size:total.value |
|
|
|
}, |
|
|
|
page: getObj.pageNum, |
|
|
|
size: total.value |
|
|
|
} |
|
|
|
|
|
|
|
try{ |
|
|
|
const res = await API({ url: '/export/exportRefund', data: params }) |
|
|
|
if (res.code === 200) { |
|
|
|
try { |
|
|
|
const res = await API({url: '/export/exportRefund', data: params}) |
|
|
|
if (res.code === 200) { |
|
|
|
ElMessage.success('导出成功') |
|
|
|
} else { |
|
|
|
ElMessage.error(res.message || '导出失败,请稍后重试') |
|
|
@ -399,7 +423,7 @@ const exportExcel = async function () { |
|
|
|
console.log('请求失败', error) |
|
|
|
ElMessage.error('导出失败,请稍后重试') |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
const exportListVisible = ref(false) |
|
|
|
|
|
|
@ -417,7 +441,7 @@ const exportListLoading = ref(false) |
|
|
|
const getExportList = async () => { |
|
|
|
exportListLoading.value = true |
|
|
|
try { |
|
|
|
const result = await API({ url: '/export/export' }) |
|
|
|
const result = await API({url: '/export/export'}) |
|
|
|
if (result.code === 200) { |
|
|
|
const filteredData = result.data.filter(item => { |
|
|
|
return item.type === 3; //3表示金币退款列表 |
|
|
@ -451,8 +475,8 @@ const getTagType = (state) => { |
|
|
|
return 'info'; |
|
|
|
case 1: |
|
|
|
return 'primary'; |
|
|
|
case 2: |
|
|
|
return'success'; |
|
|
|
case 2: |
|
|
|
return 'success'; |
|
|
|
case 3: |
|
|
|
return 'danger'; |
|
|
|
default: |
|
|
@ -466,14 +490,32 @@ const getTagText = (state) => { |
|
|
|
return '待执行'; |
|
|
|
case 1: |
|
|
|
return '执行中'; |
|
|
|
case 2: |
|
|
|
return'执行完成'; |
|
|
|
case 2: |
|
|
|
return '执行完成'; |
|
|
|
case 3: |
|
|
|
return '执行出错'; |
|
|
|
default: |
|
|
|
return '未知状态'; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 存储地区选择变化 |
|
|
|
const selectedMarketPath = ref([]) |
|
|
|
//处理地区选择变化 |
|
|
|
const handleMarketChange = (value) => { |
|
|
|
if (value && value.length > 0) { |
|
|
|
const lastValue = value[value.length - 1]; |
|
|
|
let selectedName = lastValue.endsWith('_all') |
|
|
|
? lastValue.replace('_all', '') |
|
|
|
: lastValue; |
|
|
|
|
|
|
|
// 反向映射 |
|
|
|
refundUser.value.market = reverseMarketMapping[selectedName] || ''; |
|
|
|
} else { |
|
|
|
refundUser.value.market = ''; |
|
|
|
} |
|
|
|
}; |
|
|
|
</script> |
|
|
|
|
|
|
|
<template> |
|
|
@ -483,26 +525,26 @@ const getTagText = (state) => { |
|
|
|
<el-row style="margin-bottom: 10px"> |
|
|
|
<el-col :span="5"> |
|
|
|
<div class="head-card-element"> |
|
|
|
<el-text class="mx-1" >精网号:</el-text> |
|
|
|
<el-text class="mx-1">精网号:</el-text> |
|
|
|
<el-input |
|
|
|
v-model="refundUser.jwcode" |
|
|
|
placeholder="请输入精网号" |
|
|
|
style="width: 150px" |
|
|
|
clearable |
|
|
|
v-model="refundUser.jwcode" |
|
|
|
placeholder="请输入精网号" |
|
|
|
style="width: 150px" |
|
|
|
clearable |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="6"> |
|
|
|
<div class="head-card-element"> |
|
|
|
<el-text class="mx-1" >商品名称:</el-text> |
|
|
|
<el-text class="mx-1">商品名称:</el-text> |
|
|
|
<el-select |
|
|
|
v-model="refundUser.goodsName" |
|
|
|
placeholder="请选择商品名称" |
|
|
|
|
|
|
|
style="width: 180px" |
|
|
|
clearable |
|
|
|
|
|
|
|
v-model="refundUser.goodsName" |
|
|
|
placeholder="请选择商品名称" |
|
|
|
|
|
|
|
style="width: 180px" |
|
|
|
clearable |
|
|
|
|
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in goods" |
|
|
@ -514,40 +556,32 @@ const getTagText = (state) => { |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
|
|
<div class="head-card-element"> |
|
|
|
<el-text class="mx-1" >所属地区:</el-text> |
|
|
|
<el-select |
|
|
|
v-model="refundUser.market" |
|
|
|
<el-text class="mx-1" size="large">所属地区:</el-text> |
|
|
|
<el-cascader |
|
|
|
v-model="selectedMarketPath" |
|
|
|
:options="market" |
|
|
|
placeholder="请选择所属地区" |
|
|
|
|
|
|
|
style="width: 180px" |
|
|
|
clearable |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in market" |
|
|
|
:key="item" |
|
|
|
:label="item" |
|
|
|
:value="item" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
style="width:180px" |
|
|
|
@change="handleMarketChange" |
|
|
|
/> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
|
|
<div class="head-card-element"> |
|
|
|
<el-text class="mx-1" >退款类型:</el-text> |
|
|
|
<el-text class="mx-1">退款类型:</el-text> |
|
|
|
<el-select |
|
|
|
v-model="refundUser.refundType" |
|
|
|
placeholder="请选择退款类型" |
|
|
|
|
|
|
|
style="width: 180px" |
|
|
|
clearable |
|
|
|
v-model="refundUser.refundType" |
|
|
|
placeholder="请选择退款类型" |
|
|
|
|
|
|
|
style="width: 180px" |
|
|
|
clearable |
|
|
|
> |
|
|
|
<!-- todo 这需要改--> |
|
|
|
<!-- todo 这需要改--> |
|
|
|
<el-option |
|
|
|
v-for="item in refundType" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value" |
|
|
|
v-for="item in refundType" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
@ -556,11 +590,18 @@ const getTagText = (state) => { |
|
|
|
<el-row> |
|
|
|
<el-col :span="24"> |
|
|
|
<div class="head-card-element"> |
|
|
|
<el-text class="mx-1" >退款时间:</el-text> |
|
|
|
<el-date-picker v-model="getTime" type="datetimerange" range-separator="至" start-placeholder="起始时间" end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange"/> |
|
|
|
<el-button @click="getToday()" style="margin-left: 10px" :type="activeTimeRange === 'today' ? 'primary' : ''"> 今</el-button> |
|
|
|
<el-button @click="getYesterday()" style="margin-left: 10px" :type="activeTimeRange === 'yesterday' ? 'primary' : ''"> 昨</el-button> |
|
|
|
<el-button @click="get7Days()" style="margin-left: 10px" :type="activeTimeRange === '7days' ? 'primary' : ''"> 近7天</el-button> |
|
|
|
<el-text class="mx-1">退款时间:</el-text> |
|
|
|
<el-date-picker v-model="getTime" type="datetimerange" range-separator="至" start-placeholder="起始时间" |
|
|
|
end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange"/> |
|
|
|
<el-button @click="getToday()" style="margin-left: 10px" |
|
|
|
:type="activeTimeRange === 'today' ? 'primary' : ''"> 今 |
|
|
|
</el-button> |
|
|
|
<el-button @click="getYesterday()" style="margin-left: 10px" |
|
|
|
:type="activeTimeRange === 'yesterday' ? 'primary' : ''"> 昨 |
|
|
|
</el-button> |
|
|
|
<el-button @click="get7Days()" style="margin-left: 10px" |
|
|
|
:type="activeTimeRange === '7days' ? 'primary' : ''"> 近7天 |
|
|
|
</el-button> |
|
|
|
|
|
|
|
<el-button type="success" @click="reset()">重置</el-button> |
|
|
|
<el-button type="primary" @click="search()">查询</el-button> |
|
|
@ -604,10 +645,10 @@ const getTagText = (state) => { |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
prop="name" |
|
|
|
label="姓名" |
|
|
|
fixed="left" |
|
|
|
width="130px" |
|
|
|
prop="name" |
|
|
|
label="姓名" |
|
|
|
fixed="left" |
|
|
|
width="130px" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
prop="jwcode" |
|
|
@ -615,9 +656,13 @@ const getTagText = (state) => { |
|
|
|
fixed="left" |
|
|
|
width="110px" |
|
|
|
/> |
|
|
|
<el-table-column prop="market" label="所属地区" width="110px" /> |
|
|
|
<el-table-column prop="goodsName" label="商品名称" width="110px" show-overflow-tooltip /> |
|
|
|
<el-table-column prop="refundType" label="退款类型" width="100px" /> |
|
|
|
<el-table-column prop="market" label="所属地区" width="110px"> |
|
|
|
<template #default="scope"> |
|
|
|
{{ marketMapping[scope.row.market] || scope.row.market }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="goodsName" label="商品名称" width="110px" show-overflow-tooltip/> |
|
|
|
<el-table-column prop="refundType" label="退款类型" width="100px"/> |
|
|
|
|
|
|
|
<!-- <el-table-column label="金额总数" width="110px"> |
|
|
|
<template #default="scope"> |
|
|
@ -628,10 +673,10 @@ const getTagText = (state) => { |
|
|
|
</el-table-column> --> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
prop="sumGold" |
|
|
|
label="金额总数" |
|
|
|
width="110px" |
|
|
|
sortable="custom" |
|
|
|
prop="sumGold" |
|
|
|
label="金额总数" |
|
|
|
width="110px" |
|
|
|
sortable="custom" |
|
|
|
/> |
|
|
|
|
|
|
|
<el-table-column prop="refundModel" label="退款方式" width="110px"> |
|
|
@ -640,22 +685,22 @@ const getTagText = (state) => { |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
prop="permanentGold" |
|
|
|
label="永久金币" |
|
|
|
width="110px" |
|
|
|
sortable="custom" |
|
|
|
prop="permanentGold" |
|
|
|
label="永久金币" |
|
|
|
width="110px" |
|
|
|
sortable="custom" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
prop="freeGold" |
|
|
|
sortable="custom" |
|
|
|
label="免费金币" |
|
|
|
width="110px" |
|
|
|
prop="freeGold" |
|
|
|
sortable="custom" |
|
|
|
label="免费金币" |
|
|
|
width="110px" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
prop="taskGold" |
|
|
|
sortable="custom" |
|
|
|
label="任务金币" |
|
|
|
width="110px" |
|
|
|
prop="taskGold" |
|
|
|
sortable="custom" |
|
|
|
label="任务金币" |
|
|
|
width="110px" |
|
|
|
/> |
|
|
|
<!-- 修改prop为taskGold --> |
|
|
|
<el-table-column |
|
|
@ -664,13 +709,13 @@ const getTagText = (state) => { |
|
|
|
width="160px" |
|
|
|
show-overflow-tooltip |
|
|
|
/> |
|
|
|
<el-table-column prop="adminName" label="提交人" width="100px" /> |
|
|
|
|
|
|
|
<el-table-column prop="adminName" label="提交人" width="100px"/> |
|
|
|
|
|
|
|
<el-table-column |
|
|
|
prop="createTime" |
|
|
|
sortable="custom" |
|
|
|
label="提交时间" |
|
|
|
width="180px" |
|
|
|
prop="createTime" |
|
|
|
sortable="custom" |
|
|
|
label="提交时间" |
|
|
|
width="180px" |
|
|
|
> |
|
|
|
<template #default="scope"> |
|
|
|
{{ moment(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }} |
|
|
@ -698,36 +743,36 @@ const getTagText = (state) => { |
|
|
|
|
|
|
|
<!-- 导出弹窗 --> |
|
|
|
<el-dialog v-model="exportListVisible" title="导出列表" width="80%"> |
|
|
|
<el-table :data="exportList" style="width: 100%" :loading="exportListLoading"> |
|
|
|
<el-table-column prop="fileName" label="文件名" /> |
|
|
|
<el-table-column prop="state" label="状态"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-tag :type="getTagType(scope.row.state)" |
|
|
|
:effect="scope.row.state === 3 ? 'light' : 'plain'"> |
|
|
|
{{ getTagText(scope.row.state) }} |
|
|
|
</el-tag> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="createTime" label="创建时间"> |
|
|
|
<template #default="scope"> |
|
|
|
{{ moment(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="操作"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-button type="primary" size="small" @click="downloadExportFile(scope.row)" |
|
|
|
:disabled="scope.row.state !== 2"> |
|
|
|
下载 |
|
|
|
</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<template #footer> |
|
|
|
<div class="dialog-footer"> |
|
|
|
<el-button text @click="exportListVisible = false">关闭</el-button> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-dialog> |
|
|
|
<el-table :data="exportList" style="width: 100%" :loading="exportListLoading"> |
|
|
|
<el-table-column prop="fileName" label="文件名"/> |
|
|
|
<el-table-column prop="state" label="状态"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-tag :type="getTagType(scope.row.state)" |
|
|
|
:effect="scope.row.state === 3 ? 'light' : 'plain'"> |
|
|
|
{{ getTagText(scope.row.state) }} |
|
|
|
</el-tag> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="createTime" label="创建时间"> |
|
|
|
<template #default="scope"> |
|
|
|
{{ moment(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="操作"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-button type="primary" size="small" @click="downloadExportFile(scope.row)" |
|
|
|
:disabled="scope.row.state !== 2"> |
|
|
|
下载 |
|
|
|
</el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<template #footer> |
|
|
|
<div class="dialog-footer"> |
|
|
|
<el-button text @click="exportListVisible = false">关闭</el-button> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-dialog> |
|
|
|
</template> |
|
|
|
|
|
|
|
<style scoped> |
|
|
|