cloud-battery-vue/src/views/order/account/baldetails.vue
2025-03-29 17:25:47 +08:00

452 lines
16 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div>
<div style="padding:10px 0 20px;">
<el-button
type="primary"
plain
icon="Plus"
@click="showpop(1)">新增</el-button>
<el-table
style="width:100%;margin-top: 10px;"
:data="yysList"
border
stripe
highlight-current-row
max-height="620px"
>
<el-table-column label="交易编码" min-width="280" align="center" prop="tradeNo" :show-overflow-tooltip="true" />
<el-table-column label="交易前账户总金额(元)" min-width="160" align="center" prop="preTotalAmount" :show-overflow-tooltip="true">
<template #default="scope">
<div>{{scope.row.preTotalAmount/100}}</div>
</template>
</el-table-column>
<el-table-column label="交易前充值余额(元)" min-width="150" align="center" prop="preRechargeAmount" :show-overflow-tooltip="true">
<template #default="scope">
<div>{{scope.row.preRechargeAmount/100}}</div>
</template>
</el-table-column>
<el-table-column label="交易前赠送金额(元)" min-width="150" align="center" prop="preGiftAmount" :show-overflow-tooltip="true">
<template #default="scope">
<div>{{scope.row.preGiftAmount/100}}</div>
</template>
</el-table-column>
<el-table-column label="交易总金额(元)" min-width="140" align="center" prop="tradeTotalAmount" :show-overflow-tooltip="true">
<template #default="scope">
<div>{{scope.row.tradeTotalAmount/100}}</div>
</template>
</el-table-column>
<el-table-column label="交易充值余额(元)" min-width="140" align="center" prop="tradeRechargeAmount" :show-overflow-tooltip="true">
<template #default="scope">
<div>{{scope.row.tradeRechargeAmount/100}}</div>
</template>
</el-table-column>
<el-table-column label="交易赠送金额(元)" min-width="140" align="center" prop="tradeGiftAmount" :show-overflow-tooltip="true">
<template #default="scope">
<div>{{scope.row.tradeGiftAmount/100}}</div>
</template>
</el-table-column>
<el-table-column label="交易后总金额(元)" min-width="150" align="center" prop="afterTotalAmount" :show-overflow-tooltip="true">
<template #default="scope">
<div>{{scope.row.afterTotalAmount/100}}</div>
</template>
</el-table-column>
<el-table-column label="交易后充值余额(元)" min-width="150" align="center" prop="afterRechargeAmount" :show-overflow-tooltip="true">
<template #default="scope">
<div>{{scope.row.afterRechargeAmount/100}}</div>
</template>
</el-table-column>
<el-table-column label="交易后赠送金额(元)" min-width="150" align="center" prop="afterGiftAmount" :show-overflow-tooltip="true">
<template #default="scope">
<div>{{scope.row.afterGiftAmount/100}}</div>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="150" fixed="right">
<template #default="scope">
<!-- <el-button link type="primary" icon="Edit" @click="showpop(2,scope.row)">修改</el-button> -->
<el-button link type="danger" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div v-if="total > 10" style="display: flex;justify-content: right;">
<el-pagination
v-model:current-page="queryParams.pageNo"
v-model:page-size="queryParams.pageSize"
:page-sizes="[10, 20, 30, 40]"
background
size="small"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
@size-change="handleSizeChange"
@current-change="getyys"
/>
</div>
<!-- 添加或修改用户配置对话框 -->
<el-dialog
v-model="openpop"
:title="ystit"
width="500px"
append-to-body
:close-on-click-modal="false"
>
<el-form
ref="yysRef"
:model="addata"
:rules="rules"
label-width="180px">
<el-row :gutter="30">
<!-- <el-col :span="12">
<el-form-item label="结束时间" prop="timeEnd">
<el-time-picker
v-model="addata.timeEnd"
placeholder="请选择结束时间"
value-format="YYYY-MM-DD"
style="width: 100%;"
/>
</el-form-item>
</el-col> -->
<el-col :span="24">
<el-form-item label="交易编码" prop="tradeNo">
<el-input
v-model="addata.tradeNo"
placeholder="请输入交易编码"
maxlength="50"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="交易前账户总金额(元)" prop="preTotalAmount">
<el-input
v-model="addata.preTotalAmount"
placeholder="请输入交易前账户总金额"
maxlength="50"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="交易前充值余额(元)" prop="preRechargeAmount">
<el-input
v-model="addata.preRechargeAmount"
placeholder="请输入交易前充值余额"
maxlength="50"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="交易前赠送金额(元)" prop="preGiftAmount">
<el-input
v-model="addata.preGiftAmount"
placeholder="请输入交易前赠送金额"
maxlength="50"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="交易总金额(元)" prop="tradeTotalAmount">
<el-input
v-model="addata.tradeTotalAmount"
placeholder="请输入交易总金额"
maxlength="50"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="交易充值余额(元)" prop="tradeRechargeAmount">
<el-input
v-model="addata.tradeRechargeAmount"
placeholder="请输入交易充值余额"
maxlength="50"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="交易赠送金额(元)" prop="tradeGiftAmount">
<el-input
v-model="addata.tradeGiftAmount"
placeholder="请输入交易赠送金额"
maxlength="50"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="交易后总金额(元)" prop="afterTotalAmount">
<el-input
v-model="addata.afterTotalAmount"
placeholder="请输入交易后总金额"
maxlength="50"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="交易后充值余额(元)" prop="afterRechargeAmount">
<el-input
v-model="addata.afterRechargeAmount"
placeholder="请输入交易后充值余额"
maxlength="50"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="交易后赠送金额(元)" prop="afterGiftAmount">
<el-input
v-model="addata.afterGiftAmount"
placeholder="请输入交易后赠送金额"
maxlength="50"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="handleAdd">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup lang="ts" name="UserPage">
import {
getmxlist,
addhdz,
delhdz
} from '@/api/order/accdetails'
import { setNum } from '@/utils/validate'
import { ref,reactive,watch} from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
const props = defineProps<{
code:string
}>()
let queryParams = reactive({
pageSize:20, //每页条数,示例值(10)
pageNo:1, //页数,示例值
ownerType:'', //户主类型1-个人2-企业
ownerId:'', //户主ID
code:props.code, //编码
stationCode:'' //引入站点
})
//查询
let yysList = ref<any>([])
// if(props.list.length > 0){
// yysList.value = props.list
// }
let total = ref(0)
function getyys() {
yysList.value.splice(0)
getmxlist(queryParams).then(rps => {
if(rps.data){
total.value = (rps.data as any).total
let list = (rps.data as any).records
yysList.value = list?list:[]
}
})
}
function handleSizeChange(val:number) {
queryParams.pageSize = val
getyys()
}
//新增、修改
let type = ref(1)
let openpop = ref(false)
let ystit = ref('添加账户明细')
let yysRef = ref()
let addata = reactive({
code:'', //编码 ??
tradeType:'1', //交易类型 ??
tradeNo:'', //交易编码 ??
preTotalAmount:'', //交易前账户总金额,分:总金额=充值金额+赠送金额
preRechargeAmount:'', //交易前充值余额,分
preGiftAmount:'', //交易前赠送金额,分
tradeTotalAmount:'', //交易总金额,分:总金额=充值金额+赠送金额
tradeRechargeAmount:'', //交易充值余额,分
tradeGiftAmount:'', //交易赠送金额,分
afterTotalAmount:'', //交易后总金额,分:总金额=充值金额+赠送金额
afterRechargeAmount:'', //交易后充值余额,分
afterGiftAmount:'' //交易后赠送金额,分
})
const rules = ref({
tradeNo:[
{ required: true, message: "请输入交易编码", trigger: "blur" }
],
preTotalAmount:[
{ required: true, message: "请输入交易前账户总金额", trigger: "blur" }
],
preRechargeAmount:[
{ required: true, message: "请输入交易前充值余额", trigger: "blur" },
],
preGiftAmount:[
{ required: true, message: "请输入交易前赠送金额", trigger: "blur" },
],
tradeTotalAmount:[
{ required: true, message: "请输入交易总金额", trigger: "blur" },
],
tradeRechargeAmount:[
{ required: true, message: "请输入交易充值余额", trigger: "blur" },
],
tradeGiftAmount:[
{ required: true, message: "请输入交易赠送金额", trigger: "blur" },
],
afterTotalAmount:[
{ required: true, message: "请输入交易后总金额", trigger: "blur" },
],
afterRechargeAmount:[
{ required: true, message: "请输入交易后充值余额", trigger: "blur" },
],
afterGiftAmount:[
{ required: true, message: "请输入交易后赠送金额", trigger: "blur" },
]
})
watch(() => addata.preTotalAmount,v => {
addata.preTotalAmount = setNum(addata.preTotalAmount)
})
watch(() => addata.preRechargeAmount,v => {
addata.preRechargeAmount = setNum(addata.preRechargeAmount)
})
watch(() => addata.preGiftAmount,v => {
addata.preGiftAmount = setNum(addata.preGiftAmount)
})
watch(() => addata.tradeTotalAmount,v => {
addata.tradeTotalAmount = setNum(addata.tradeTotalAmount)
})
watch(() => addata.tradeRechargeAmount,v => {
addata.tradeRechargeAmount = setNum(addata.tradeRechargeAmount)
})
watch(() => addata.tradeGiftAmount,v => {
addata.tradeGiftAmount = setNum(addata.tradeGiftAmount)
})
watch(() => addata.afterTotalAmount,v => {
addata.afterTotalAmount = setNum(addata.afterTotalAmount)
})
watch(() => addata.afterRechargeAmount,v => {
addata.afterRechargeAmount = setNum(addata.afterRechargeAmount)
})
watch(() => addata.afterGiftAmount,v => {
addata.afterGiftAmount = setNum(addata.afterGiftAmount)
})
function showpop(num:any,row?:any){
type.value = num
openpop.value = true
ystit.value = num == 1?'添加账户明细':'修改账户明细'
yysRef.value?.resetFields()
if(row){
//addata.code = //??
addata.tradeNo = row.tradeNo
addata.preTotalAmount = row.preTotalAmount
addata.preRechargeAmount = row.preRechargeAmount
addata.preGiftAmount = row.preGiftAmount
addata.tradeTotalAmount = row.tradeTotalAmount
addata.tradeRechargeAmount = row.tradeRechargeAmount
addata.tradeGiftAmount = row.tradeGiftAmount
addata.afterTotalAmount = row.afterTotalAmount
addata.afterRechargeAmount = row.afterRechargeAmount
addata.afterGiftAmount = row.afterGiftAmount
}else{
//addata.code = //??
addata.tradeNo = ''
addata.preTotalAmount = ''
addata.preRechargeAmount = ''
addata.preGiftAmount = ''
addata.tradeTotalAmount = ''
addata.tradeRechargeAmount = ''
addata.tradeGiftAmount = ''
addata.afterTotalAmount = ''
addata.afterRechargeAmount = ''
addata.afterGiftAmount = ''
}
}
function savehand() {
if(type.value == 1){
return addhdz(addata)
}
return addhdz(addata) //??
}
//保存
function handleAdd() {
yysRef.value?.validate((valid:Boolean) => {
if (valid) {
addata.code = props.code
savehand().then(() => {
ElMessage({
type: 'success',
message: type.value == 1?'添加成功':'修改成功'
})
setTimeout(()=> {
openpop.value = false
getyys()
},600)
})
}
})
}
//取消
function cancel() {
openpop.value = false
}
//删除
function handleDelete(row:any) {
ElMessageBox.confirm(
`确定删除?`,
'温馨提示',
{
// confirmButtonText: '',
// cancelButtonText: 'Cancel',
type: 'warning',
}
).then(() => {
delhdz(row.pkId,props.code).then(() => {
ElMessage({
type: 'success',
message: '删除成功'
})
getyys()
})
})
}
getyys()
</script>
<style scoped>
.el-divider--horizontal{
border-color:#5b98cd;
}
</style>