182 lines
4.6 KiB
Vue
182 lines
4.6 KiB
Vue
<template>
|
|
<ai-detail>
|
|
<template slot="title">
|
|
<ai-title title="详情" isShowBack isShowBottomBorder @onBackClick="cancel(false)">
|
|
</ai-title>
|
|
</template>
|
|
<template slot="content">
|
|
<el-row style="margin-bottom: 16px;">
|
|
<div class="card_list">
|
|
<div class="card">
|
|
<h2>姓名</h2>
|
|
<p class="color1">{{ info.userName }}</p>
|
|
</div>
|
|
<div class="card">
|
|
<h2>积分余额</h2>
|
|
<p class="color2">{{ info.integral || 0 }}</p>
|
|
</div>
|
|
<div class="card">
|
|
<h2>已用积分</h2>
|
|
<p class="color3">{{ info.usedIntegral || 0 }}</p>
|
|
</div>
|
|
</div>
|
|
</el-row>
|
|
<ai-card>
|
|
<ai-title slot="title" title="余额变动明细"/>
|
|
<template #content>
|
|
<ai-search-bar>
|
|
<template #left>
|
|
<ai-select v-model="search.type" placeholder="请选择类型" @change="search.current = 1, getList()" :selectList="dict.getDict('integralType')"/>
|
|
</template>
|
|
<template #right>
|
|
<ai-download
|
|
:instance="instance"
|
|
:url="`/app/appintegraluser/changeIntegralExport?id=${params.id}`"
|
|
:params="search"
|
|
fileName="余额变动明细"
|
|
:disabled="tableData.length == 0">
|
|
<el-button size="small">导出</el-button>
|
|
</ai-download>
|
|
</template>
|
|
</ai-search-bar>
|
|
<ai-table :tableData="tableData" :total="total" :current.sync="search.current" :size.sync="search.size"
|
|
@getList="getList" :col-configs="colConfigs" :dict="dict">
|
|
<el-table-column slot="changeIntegral" label="变动积分" align="center">
|
|
<template slot-scope="{ row }">
|
|
<span>{{ row.integralCalcType == 0 ? '-' : '+' }}{{ row.changeIntegral }}</span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column slot="eventDesc" label='事件' align="center" show-overflow-tooltip>
|
|
<template slot-scope="{ row }">
|
|
<span>{{ row.eventDesc || row.eventName }}</span>
|
|
</template>
|
|
</el-table-column>
|
|
</ai-table>
|
|
</template>
|
|
</ai-card>
|
|
</template>
|
|
</ai-detail>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
name: 'Detail',
|
|
|
|
props: {
|
|
instance: Function,
|
|
dict: Object,
|
|
params: Object
|
|
},
|
|
|
|
data () {
|
|
return {
|
|
info: {},
|
|
id: '',
|
|
search: {
|
|
current: 1,
|
|
size: 10,
|
|
type: ''
|
|
},
|
|
total: 0,
|
|
tableData: []
|
|
}
|
|
},
|
|
|
|
computed: {
|
|
colConfigs() {
|
|
return [
|
|
{prop: "doTime", label: '时间', align: "left", width: "200px"},
|
|
{prop: "integralType", label: '类型', align: "center", dict: "integralType"},
|
|
{slot: "changeIntegral"},
|
|
{prop: "nowIntegral", label: '剩余积分', align: "center" },
|
|
{slot: "eventDesc"},
|
|
]
|
|
}
|
|
},
|
|
|
|
created () {
|
|
console.log(this.params)
|
|
this.dict.load('integralType').then(() => {
|
|
this.getInfo()
|
|
this.getList()
|
|
})
|
|
},
|
|
|
|
methods: {
|
|
getInfo (id) {
|
|
this.instance.post(`/app/appintegraluser/girdDetail?id=${this.params.id}`).then(res => {
|
|
if (res.code === 0) {
|
|
this.info = res.data
|
|
}
|
|
})
|
|
},
|
|
|
|
getList () {
|
|
this.instance.post(`/app/appintegraluser/getChangeDetail`, null, {
|
|
params: {
|
|
...this.search,
|
|
id: this.params.id
|
|
}
|
|
}).then(res => {
|
|
if (res.code === 0) {
|
|
this.tableData = res.data.records
|
|
this.total = res.data.total
|
|
}
|
|
})
|
|
},
|
|
|
|
cancel (isRefresh) {
|
|
this.$emit('change', {
|
|
type: 'List',
|
|
isRefresh: !!isRefresh
|
|
})
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.card_list {
|
|
display: flex;
|
|
|
|
.card {
|
|
flex: 1;
|
|
height: 96px;
|
|
background: #FFFFFF;
|
|
box-shadow: 0px 4px 6px -2px rgba(15, 15, 21, 0.1500);
|
|
border-radius: 4px;
|
|
margin-right: 20px;
|
|
padding: 16px 24px;
|
|
box-sizing: border-box;
|
|
|
|
h2 {
|
|
color: #888888;
|
|
font-weight: 600;
|
|
font-size: 16px;
|
|
}
|
|
|
|
p {
|
|
margin-top: 8px;
|
|
font-size: 24px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.color1 {
|
|
color: #2891FF;
|
|
}
|
|
|
|
.color2 {
|
|
color: #22AA99;
|
|
}
|
|
|
|
.color3 {
|
|
color: #F8B425;
|
|
}
|
|
}
|
|
|
|
.card:last-child {
|
|
margin-right: 0;
|
|
}
|
|
}
|
|
</style>
|