|
|
@ -8,9 +8,9 @@ |
|
|
|
style="width: 220px" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item prop="area" label="地区"> |
|
|
|
<el-form-item prop="deptName" label="地区"> |
|
|
|
<el-select |
|
|
|
v-model="detailY.area" |
|
|
|
v-model="detailY.deptName" |
|
|
|
placeholder="请选择所属地区" |
|
|
|
style="width: 240px" |
|
|
|
clearable |
|
|
@ -23,14 +23,14 @@ |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item prop="order" label="订单号"> |
|
|
|
<el-form-item prop="orderNo" label="订单号"> |
|
|
|
<el-input |
|
|
|
v-model="detailY.order" |
|
|
|
v-model="detailY.orderNo" |
|
|
|
placeholder="请输入订单号" |
|
|
|
style="width: 220px" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item prop="type" label="充值类型"> |
|
|
|
<!-- <el-form-item prop="type" label="充值类型"> |
|
|
|
<el-select |
|
|
|
v-model="detailY.type" |
|
|
|
placeholder="请选择充值类型" |
|
|
@ -44,10 +44,10 @@ |
|
|
|
:value="item" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item prop="platform" label="充值平台"> |
|
|
|
</el-form-item> --> |
|
|
|
<el-form-item prop="payStyle" label="充值平台"> |
|
|
|
<el-select |
|
|
|
v-model="detailY.platform" |
|
|
|
v-model="detailY.payStyle" |
|
|
|
placeholder="请选择充值平台" |
|
|
|
style="width: 240px" |
|
|
|
clearable |
|
|
@ -95,30 +95,22 @@ |
|
|
|
}}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column fixed="left" prop="username" label="姓名" width="150" /> |
|
|
|
<el-table-column fixed="left" prop="name" label="姓名" width="150" /> |
|
|
|
<el-table-column fixed="left" prop="jwcode" label="精网号" width="120" /> |
|
|
|
<el-table-column prop="area" label="地区" width="120" /> |
|
|
|
<el-table-column prop="order" label="订单号" width="120" /> |
|
|
|
<el-table-column prop="been" label="金豆数量" width="120"> |
|
|
|
<el-table-column prop="deptName" label="地区" width="120" /> |
|
|
|
<el-table-column prop="orderNo" label="订单号" width="120" /> |
|
|
|
<el-table-column prop="count" label="金豆数量" width="120"> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="paybeen" label="付费金豆" width="120"> |
|
|
|
<!-- <el-table-column prop="paybeen" label="付费金豆" width="120"> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="freebeen" label="免费金豆" width="120"> |
|
|
|
</el-table-column> --> |
|
|
|
<el-table-column prop="price" label="金额"></el-table-column> |
|
|
|
<el-table-column prop="payStyle" label="充值平台" width="140"> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="count" label="金额"></el-table-column> |
|
|
|
<el-table-column prop="consumePlatform" label="充值平台" width="140"> |
|
|
|
<template #default="scope"> |
|
|
|
<!-- 使用非严格相等比较 --> |
|
|
|
<span v-if="scope.row.consumePlatform == 0">初始化金币</span> |
|
|
|
<span v-if="scope.row.consumePlatform == 1">ERP系统</span> |
|
|
|
<span v-if="scope.row.consumePlatform == 3">Homily Link</span> |
|
|
|
<span v-if="scope.row.consumePlatform == 2">Homily Chart</span> |
|
|
|
<span v-if="scope.row.consumePlatform == 4">金币系统</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="notes" label="备注" width="210"></el-table-column> |
|
|
|
<!-- <el-table-column prop="notes" label="备注" width="210"></el-table-column> --> |
|
|
|
<el-table-column |
|
|
|
prop="createTime" |
|
|
|
prop="successTime" |
|
|
|
sortable="“custom”" |
|
|
|
label="充值时间" |
|
|
|
width="210" |
|
|
@ -126,7 +118,9 @@ |
|
|
|
> |
|
|
|
<template #default="scope"> |
|
|
|
<span>{{ |
|
|
|
moment(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') |
|
|
|
!!scope.row.successTime |
|
|
|
? moment(scope.row.successTime).format('YYYY-MM-DD HH:mm:ss') |
|
|
|
: '-' |
|
|
|
}}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
@ -151,6 +145,12 @@ |
|
|
|
title="请选择导出条件" |
|
|
|
width="500" |
|
|
|
:close-on-click-modal="false" |
|
|
|
@close=" |
|
|
|
() => { |
|
|
|
dialogVisible = false |
|
|
|
isExport = false |
|
|
|
} |
|
|
|
" |
|
|
|
> |
|
|
|
<template #footer> |
|
|
|
<el-form |
|
|
@ -220,9 +220,12 @@ const dialogVisible = ref(false) |
|
|
|
const excelData = reactive({ |
|
|
|
jwcode: '', |
|
|
|
area: '', |
|
|
|
timegap: '' |
|
|
|
timegap: '', |
|
|
|
startTime: '', |
|
|
|
endTime: '' |
|
|
|
}) |
|
|
|
const areaList = ref<string[]>([]) |
|
|
|
const isExport = ref<boolean>(false) |
|
|
|
const rules = ref({ |
|
|
|
jwcode: [{ required: true, message: '请输入精网号', trigger: 'blur' }], |
|
|
|
area: [{ required: true, message: '请选择所属地区', trigger: 'change' }] |
|
|
@ -237,12 +240,12 @@ const handleCurrentChange = function (val) { |
|
|
|
getInit({}) |
|
|
|
} |
|
|
|
const platformList = ref<string[]>([ |
|
|
|
'stripe', |
|
|
|
'ios', |
|
|
|
'FirstData', |
|
|
|
'paymentasia', |
|
|
|
'system', |
|
|
|
'金币系统' |
|
|
|
// 'stripe', |
|
|
|
// 'ios', |
|
|
|
// 'FirstData', |
|
|
|
// 'paymentasia', |
|
|
|
// 'system', |
|
|
|
// '金币系统' |
|
|
|
]) |
|
|
|
const typeList = ref<string[]>([ |
|
|
|
'金币换金豆', |
|
|
@ -254,11 +257,11 @@ const typeList = ref<string[]>([ |
|
|
|
//搜索表单数据 |
|
|
|
const detailY = ref({ |
|
|
|
jwcode: '', |
|
|
|
area: '', |
|
|
|
order: '', |
|
|
|
platform: '', |
|
|
|
createTime: '', |
|
|
|
type: '' |
|
|
|
deptName: '', |
|
|
|
orderNo: '', |
|
|
|
payStyle: '', |
|
|
|
type: '', |
|
|
|
createTime: '' |
|
|
|
}) |
|
|
|
const getObj = ref({ |
|
|
|
pageNum: 1, |
|
|
@ -266,23 +269,58 @@ const getObj = ref({ |
|
|
|
}) |
|
|
|
const exportExcel = function () { |
|
|
|
dialogVisible.value = true |
|
|
|
// console.log('导出excel', excelData) |
|
|
|
// API({ |
|
|
|
// url: '/dou/getYve', |
|
|
|
// method: 'post', |
|
|
|
// data: { |
|
|
|
// ...excelData |
|
|
|
// } |
|
|
|
// }) |
|
|
|
// ElMessage.success('导出成功') |
|
|
|
isExport.value = true |
|
|
|
} |
|
|
|
const exportConfirm = function () { |
|
|
|
const data = [ |
|
|
|
{ 姓名: '张三', 年龄: 28, 城市: '北京' }, |
|
|
|
{ 姓名: '李四', 年龄: 32, 城市: '上海' }, |
|
|
|
{ 姓名: '王五', 年龄: 25, 城市: '广州' } |
|
|
|
] |
|
|
|
|
|
|
|
if (excelData.timegap == '1') { |
|
|
|
excelData.startTime = moment().startOf('day').format('YYYY-MM-DD') |
|
|
|
excelData.endTime = moment().endOf('day').format('YYYY-MM-DD') |
|
|
|
} else if (excelData.timegap == '3') { |
|
|
|
excelData.startTime = moment() |
|
|
|
.subtract(3, 'days') |
|
|
|
.startOf('day') |
|
|
|
.format('YYYY-MM-DD') |
|
|
|
excelData.endTime = moment().endOf('day').format('YYYY-MM-DD') |
|
|
|
} else if (excelData.timegap == '7') { |
|
|
|
excelData.startTime = moment() |
|
|
|
.subtract(7, 'days') |
|
|
|
.startOf('day') |
|
|
|
.format('YYYY-MM-DD') |
|
|
|
excelData.endTime = moment().endOf('day').format('YYYY-MM-DD') |
|
|
|
} else if (excelData.timegap == '30') { |
|
|
|
excelData.startTime = moment() |
|
|
|
.subtract(30, 'days') |
|
|
|
.startOf('day') |
|
|
|
.format('YYYY-MM-DD') |
|
|
|
excelData.endTime = moment().endOf('day').format('YYYY-MM-DD') |
|
|
|
} |
|
|
|
getInit( |
|
|
|
{ |
|
|
|
sortField: '', |
|
|
|
sortOrder: '' |
|
|
|
}, |
|
|
|
(data) => { |
|
|
|
console.log('导出数据', data) |
|
|
|
//导出的数据将字段映射 |
|
|
|
data = data.map((item) => { |
|
|
|
return { |
|
|
|
姓名: item.name, |
|
|
|
精网号: item.jwcode, |
|
|
|
地区: item.deptName, |
|
|
|
订单号: item.orderNo, |
|
|
|
充值平台: item.payStyle, |
|
|
|
金豆数量: item.count, |
|
|
|
充值时间: moment(item.successTime).format('YYYY-MM-DD'), |
|
|
|
金额: item.price |
|
|
|
} |
|
|
|
}) |
|
|
|
console.log('导出数据', data) |
|
|
|
//excelExport(data) |
|
|
|
} |
|
|
|
) |
|
|
|
} |
|
|
|
//数据导出excel |
|
|
|
const excelExport = async function (data) { |
|
|
|
const worksheet = utils.json_to_sheet(data) |
|
|
|
const workbook = utils.book_new() |
|
|
|
utils.book_append_sheet(workbook, worksheet, 'Sheet1') |
|
|
@ -295,28 +333,45 @@ const exportConfirm = function () { |
|
|
|
} |
|
|
|
const ruleFormRef = ref<FormInstance>() |
|
|
|
//初始化 |
|
|
|
const getInit = async function ({ |
|
|
|
sortField = '', |
|
|
|
sortOrder = '' |
|
|
|
}: { |
|
|
|
sortField?: string |
|
|
|
sortOrder?: string |
|
|
|
}) { |
|
|
|
const getInit = async function ( |
|
|
|
{ |
|
|
|
sortField = '', |
|
|
|
sortOrder = '' |
|
|
|
}: { |
|
|
|
sortField?: string |
|
|
|
sortOrder?: string |
|
|
|
}, |
|
|
|
callback?: Function |
|
|
|
) { |
|
|
|
try { |
|
|
|
console.log('搜索参数', getObj.value) |
|
|
|
const [startTime, endTime] = detailY.value.createTime |
|
|
|
console.log(startTime, endTime) |
|
|
|
// 发送POST请求 |
|
|
|
const result = await API({ |
|
|
|
url: '/detailY', |
|
|
|
method: 'post', |
|
|
|
url: '/dou/getPay', |
|
|
|
data: { |
|
|
|
...getObj.value, |
|
|
|
detailY: { ...detailY.value }, |
|
|
|
sortField, |
|
|
|
sortOrder |
|
|
|
pay: { |
|
|
|
jwcode: isExport.value ? excelData.jwcode : detailY.value.jwcode, |
|
|
|
deptName: isExport.value ? excelData.area : detailY.value.deptName, |
|
|
|
startTime: isExport.value ? excelData.startTime : startTime || '', |
|
|
|
endTime: isExport.value ? excelData.endTime : endTime || '', |
|
|
|
payStyle: isExport.value ? '' : detailY.value.payStyle, |
|
|
|
orderNo: isExport.value ? '' : detailY.value.orderNo, |
|
|
|
sortField, |
|
|
|
sortOrder |
|
|
|
}, |
|
|
|
pageNum: isExport.value ? '' : getObj.value.pageNum, |
|
|
|
pageSize: isExport.value ? '' : getObj.value.pageSize |
|
|
|
} |
|
|
|
}) |
|
|
|
tableData.value = result.data.list |
|
|
|
total.value = result.data.total |
|
|
|
|
|
|
|
if (isExport.value) { |
|
|
|
!!callback && callback(result.data.list) |
|
|
|
} else { |
|
|
|
tableData.value = result.data.list |
|
|
|
total.value = result.data.total |
|
|
|
} |
|
|
|
} catch (error) { |
|
|
|
console.log('请求失败', error) |
|
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
@ -332,8 +387,6 @@ const handleSortChange = (column) => { |
|
|
|
} |
|
|
|
// 搜索 |
|
|
|
const search = function () { |
|
|
|
const [startTime, endTime] = detailY.value.createTime |
|
|
|
console.log(startTime, endTime) |
|
|
|
getObj.value.pageNum = 1 |
|
|
|
getInit({}) |
|
|
|
} |
|
|
@ -341,9 +394,32 @@ const search = function () { |
|
|
|
const reset = function (formEl) { |
|
|
|
formEl.resetFields() |
|
|
|
} |
|
|
|
|
|
|
|
// 挂载 |
|
|
|
//获取地区接口 |
|
|
|
const getArea = async () => { |
|
|
|
try { |
|
|
|
const result = await API({ |
|
|
|
url: '/dou/getPayIp' |
|
|
|
}) |
|
|
|
areaList.value = result.data |
|
|
|
} catch (error) { |
|
|
|
console.log('请求失败', error) |
|
|
|
} |
|
|
|
} |
|
|
|
//获取支付方式接口 |
|
|
|
const getPayType = async () => { |
|
|
|
try { |
|
|
|
const result = await API({ |
|
|
|
url: '/dou/getStyle' |
|
|
|
}) |
|
|
|
platformList.value = result.data |
|
|
|
// typeList.value = result.data |
|
|
|
} catch (error) { |
|
|
|
console.log('请求失败', error) |
|
|
|
} |
|
|
|
} |
|
|
|
getInit({}) |
|
|
|
getArea() |
|
|
|
getPayType() |
|
|
|
</script> |
|
|
|
<style scoped lang="scss"> |
|
|
|
.filter-box { |
|
|
|