齐采药WEB端项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

337 lines
8.2 KiB

<template>
<!-- 我的积分 -->
<div class="integral">
<div class="user-com-titl">
<div class="l">
我的积分
<div class="xxtext">
<img src="~assets/images/xx.png" alt srcset />
当前积分{{ IntegralInfo.point }}
</div>
</div>
<div class="r" @click="clickgz">
<img src="~assets/images/gz.png" alt />
积分规则
</div>
</div>
<div style="margin: 20px 0">
<el-date-picker
v-model="value1"
type="datetimerange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['12:00:00']"
></el-date-picker>
</div>
<div>
<el-table
:data="tableData"
border
style="width: 100%"
:header-cell-style="{ background: '#FAFAFA' }"
>
<el-table-column
prop="type_name"
label="收入/支出"
align="center"
></el-table-column>
<el-table-column prop="create_time" label="时间" align="center" width="160">
<template slot-scope="scope">{{
$dayjs(scope.row.create_time * 1000).format("YYYY-MM-DD HH:mm:ss")
}}</template>
</el-table-column>
<el-table-column
prop="account_data"
label="积分数量"
show-overflow-tooltip
align="center"
></el-table-column>
</el-table>
</div>
<!-- 分页 -->
<Page
@currentChange="currentChange"
:total="total"
:pageSize="limit"
:currentPage="page"
></Page>
<el-dialog
title="提示"
:visible.sync="dialogRuler"
width="30%"
:show-close="false"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<div slot="title" style="display: flex; margin-top: 20px">
<img
style="width: 24px; height: 24px; margin-right: 10px"
src="~assets/images/Tips.png"
alt
/>
<div class="tipsTexe">签到规则</div>
</div>
<div class="gz">
<div class="gztext">
<p>
1.连续签到{{
awardData.cycle
}}天为一个周期,连续签到天数签满一个周期或者签到中断,将清空连签天数重新计算签到天数
</p>
<div v-for="(item, index) in awardData.reward" :key="index">
<p v-if="index == 0">
2.每{{ item.day == 1 ? "日" : item.day }}天签到奖励: {{ item.point }}积分
{{ item.growth }}成长值
<span></span>
</p>
<p v-if="index == 1">
3.连续签到{{ item.day }}天额外奖励: {{ item.point }}积分
{{ item.growth }}成长值
</p>
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogRuler = false" size="small">知道了</el-button>
</span>
</el-dialog>
<Dialog
ref="dialog"
:contentText="contentText"
:cancleBtnShow="cancleBtnShow"
></Dialog>
</div>
</template>
<script>
export default {
name: "integral",
auth: "guest",
data() {
return {
dialogRuler: false,
awardData: {},
cancleBtnShow: false,
value1: "",
contentText:
"规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容规则内容",
page: 1,
limit: 5,
total: 0,
IntegralInfo: {},
tableData: [
{
date: "签到",
name: "1984-08-02 19:23:12",
address: "+230",
},
{
date: "签到",
name: "1984-08-02 19:23:12",
address: "+230",
},
],
};
},
fetch({ store }) {
store.commit("isHeader", true);
store.commit("isFooter", true);
},
head() {
return {
title: "我的积分-" + this.$store.state.titleCon,
};
},
created() {
this.getIntegralList();
this.getIntegralInfo();
this.getAward();
},
mounted() {},
methods: {
// 获取规则
getAward() {
this.$axios
.post(`/membersignin/award`)
.then((res) => {
this.awardData = res.data;
console.log(res.data, `award`);
})
.catch((err) => {
this.$message.error(err);
});
},
getIntegralInfo() {
let obj = {
account_type: "point",
};
this.$axios.post("/memberaccount/info", obj).then((res) => {
this.IntegralInfo = res.data;
console.log(this.IntegralInfo, `pointInfo`);
});
},
getIntegralList() {
let obj = {
page: this.page,
page_size: this.limit,
account_type: "point",
};
this.$axios
.post(`/memberaccount/page`, obj)
.then((res) => {
this.tableData = res.data.list;
this.total = res.data.count;
console.log(res, `point`);
})
.catch((err) => {
this.$message.error(err);
});
},
clickgz() {
this.dialogRuler = true;
// this.$refs.dialog.dialogShow = true;
},
// 分页点击
currentChange(e) {
this.page = e;
this.getIntegralList();
},
},
};
</script>
<style lang="scss" scoped>
.integral {
padding: 0 30px;
.user-com-titl {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #ececec;
.l {
display: flex;
height: 60px;
font-size: 18px;
color: #282828;
display: flex;
align-items: center;
.xxtext {
display: flex;
align-items: center;
margin-left: 20px;
img {
width: 20px;
height: 20px;
margin-right: 5px;
}
font-size: 16px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #ff7d02;
}
}
.r {
display: flex;
align-items: center;
cursor: pointer;
img {
width: 17px;
height: 17px;
margin-right: 8px;
}
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #999999;
}
}
ul {
display: flex;
flex-flow: wrap;
justify-content: space-between;
margin-top: 20px;
li {
width: 290px;
height: 142px;
background: #fbfbfb;
border-radius: 8px;
border: 1px solid #e7e7e7;
padding: 15px;
box-sizing: border-box;
display: flex;
margin-bottom: 20px;
cursor: pointer;
.left {
img {
width: 80px;
height: 80px;
}
}
.right {
margin-left: 20px;
.title {
width: 160px;
font-size: 16px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #222222;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
// 必须加不然隐藏不了
/*! autoprefixer: ignore next */
-webkit-box-orient: vertical;
}
p {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #585858;
margin-top: 10px;
}
.cad {
margin-top: 13px;
display: flex;
justify-content: space-between;
align-items: center;
.l {
font-size: 14px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #585858;
span {
color: #ff1919;
}
}
}
}
}
}
.gz {
p {
margin: 20px 0 10px;
font-size: 14px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #222222;
line-height: 20px;
}
.gztext {
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
padding-bottom: 20px;
line-height: 22px;
p {
color: #999999;
}
}
}
}
</style>