|
@@ -20,6 +20,9 @@
|
|
|
style="width: 100px"
|
|
|
type="number"
|
|
|
:min="0"
|
|
|
+ :max="30"
|
|
|
+ :precision="0"
|
|
|
+ :onkeyup="(search.value = String(search.value).replace(/\D/g, ''))"
|
|
|
@keyup.enter="getList"
|
|
|
/>
|
|
|
<a-select
|
|
@@ -69,7 +72,7 @@
|
|
|
</a-radio-group>
|
|
|
<a-table
|
|
|
bordered
|
|
|
- :scroll="{ x: 1500 }"
|
|
|
+ :scroll="{ x: 1700 }"
|
|
|
:data-source="list"
|
|
|
:columns="columns"
|
|
|
@change="getList"
|
|
@@ -139,7 +142,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
-<script lang="ts">
|
|
|
+<script lang="tsx">
|
|
|
import usePagination from "@/hooks/usePagination";
|
|
|
import { defineComponent, reactive, toRefs, ref } from "vue";
|
|
|
import { Moment } from "moment";
|
|
@@ -147,10 +150,12 @@ import { TableColumnOfStuffPerformance } from "../_pageOptions/table_data";
|
|
|
//getPromotionList
|
|
|
import { getStuffPerformance } from "@/api";
|
|
|
import { message } from "ant-design-vue";
|
|
|
+import { ColumnProps } from 'ant-design-vue/es/table/interface';
|
|
|
+
|
|
|
const Performance = defineComponent({
|
|
|
components: {},
|
|
|
setup() {
|
|
|
- let { tablePageOptions } = usePagination();
|
|
|
+ let { meta,tablePageOptions } = usePagination();
|
|
|
const state = reactive({
|
|
|
search: {
|
|
|
uname: "", // 推广员名称
|
|
@@ -161,21 +166,69 @@ const Performance = defineComponent({
|
|
|
},
|
|
|
loading: false,
|
|
|
list: ref<any[]>([]),
|
|
|
- columns: TableColumnOfStuffPerformance,
|
|
|
});
|
|
|
-
|
|
|
+ const columns: ColumnProps[] = []
|
|
|
return {
|
|
|
...toRefs(state),
|
|
|
tablePageOptions,
|
|
|
+ meta,
|
|
|
+ columns
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
|
+ this.columnsInit()
|
|
|
// this.getList({ current: 1 });
|
|
|
this.onTypeChange("month");
|
|
|
+ this.columns.push({
|
|
|
+ title: 'user_charge',
|
|
|
+ dataIndex: 'uname',
|
|
|
+ customRender: ({ text, record }) => {
|
|
|
+ return <span>{record.uname}cc<br/><a>dd{text}</a></span>
|
|
|
+ },
|
|
|
+ },)
|
|
|
+ console.log('COLUMNS',this.columns)
|
|
|
},
|
|
|
methods: {
|
|
|
+ // columns初始化
|
|
|
+ columnsInit() {
|
|
|
+ this.columns = [{
|
|
|
+ title: '推广员',
|
|
|
+ dataIndex: 'uname',
|
|
|
+ fixed: 'left',
|
|
|
+ width: 150,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '成本合计(元)',
|
|
|
+ dataIndex: 'cost_amount',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '回本(元)',
|
|
|
+ dataIndex: 'back_amount',
|
|
|
+ sorter: (a: any, b: any) => a.back_amount - b.back_amount,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '提现合计(元)',
|
|
|
+ dataIndex: 'cash_withdrawal_amount',
|
|
|
+ },
|
|
|
+ //
|
|
|
+ {
|
|
|
+ title: '用户充值(元)',
|
|
|
+ dataIndex: 'user_charge_amount_sum',
|
|
|
+ },
|
|
|
+ //
|
|
|
+ {
|
|
|
+ title: '操作',
|
|
|
+ dataIndex: 'operation',
|
|
|
+ slots: { customRender: 'operation' },
|
|
|
+ fixed: 'right',
|
|
|
+ }]
|
|
|
+ },
|
|
|
// 获取推广链接数据
|
|
|
async getList(page?: any, filters?: any, sorter?: any) {
|
|
|
+ if(this.search.value > 30) {
|
|
|
+ message.warning('不能超过30')
|
|
|
+ this.search.value = 30
|
|
|
+ }
|
|
|
console.log("SORT", page, filters, sorter);
|
|
|
this.loading = true;
|
|
|
let param: any = {
|
|
@@ -191,17 +244,13 @@ const Performance = defineComponent({
|
|
|
});
|
|
|
console.log("请求结果", data);
|
|
|
this.list = data.list;
|
|
|
+ this.meta = data.meta;
|
|
|
+ this.customColumns();
|
|
|
this.loading = false;
|
|
|
- // let { data } = await getPromotionList({
|
|
|
- // page: page ? page.current : 1,
|
|
|
- // ...this.search,
|
|
|
- // });
|
|
|
- // this.loading = false;
|
|
|
- // this.list = data.list;
|
|
|
},
|
|
|
// 月、日查询类型改变
|
|
|
onTypeChange(val: string) {
|
|
|
- var date = new Date();
|
|
|
+ var date = new Date((new Date).getTime()-24*60*60*1000);
|
|
|
console.log(val);
|
|
|
if (val === "month") {
|
|
|
this.search.value = 3;
|
|
@@ -218,6 +267,188 @@ const Performance = defineComponent({
|
|
|
}
|
|
|
this.getList();
|
|
|
},
|
|
|
+ // 搜索条件修改后 处理columns
|
|
|
+ customColumns() {
|
|
|
+ this.columnsInit()
|
|
|
+ let withdrawalIndex = 0, chargeIndex = 0;
|
|
|
+ this.columns.forEach((item,index)=> {
|
|
|
+ if(item.dataIndex === 'cash_withdrawal_amount') withdrawalIndex = index
|
|
|
+ if(item.dataIndex === 'user_charge_amount_sum') chargeIndex = index+2
|
|
|
+ })
|
|
|
+ // 选择按月查询 1.自然日从0加起-默认展示M+0、M+1、M+2 \ 2.24小时-从1加起-默认展示M+1、M+2
|
|
|
+ if(this.search.type === 'month') { // 按月查询
|
|
|
+ if(this.search.model === 'natural') { // 自然日
|
|
|
+ if(!this.search.value) {// 默认 未输入自定义月数
|
|
|
+ for(let i = 0; i< 3; i++) {
|
|
|
+ this.columns.splice(withdrawalIndex+(i+1), 0,{
|
|
|
+ title: '提现(元)M+'+ i,
|
|
|
+ dataIndex: 'cash_withdrawal',
|
|
|
+ width: 150,
|
|
|
+ customRender: ({ text, record }) => {
|
|
|
+ return (<div style="color:gray;font-size:13px">
|
|
|
+ <p style="color:black;font-size:14px">{ text[i].amount }</p>
|
|
|
+ <p>累计提现: { text[i].accruing_amount }</p>
|
|
|
+ <p>回本率: { text[i].back_rate }</p>
|
|
|
+ </div>)
|
|
|
+ },
|
|
|
+ })
|
|
|
+ this.columns.splice(chargeIndex+(i*2), 0,{
|
|
|
+ title: '用户充值(元)M+'+ i,
|
|
|
+ dataIndex: 'user_charge',
|
|
|
+ width: 150,
|
|
|
+ customRender: ({ text, record }) => {
|
|
|
+ return (<div style="color:gray;font-size:13px">
|
|
|
+ <p style="color:black;font-size:14px">{ text[i].amount }</p>
|
|
|
+ <p>累计提现: { text[i].accruing_amount }</p>
|
|
|
+ <p>回本率: { text[i].back_rate }</p>
|
|
|
+ </div>)
|
|
|
+ },
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else { // 自定义月数
|
|
|
+ for(let i = 0; i< this.search.value; i++) {
|
|
|
+ this.columns.splice(withdrawalIndex+(i+1), 0,{
|
|
|
+ title: '提现(元)M+'+ i,
|
|
|
+ dataIndex: 'cash_withdrawal',
|
|
|
+ width: 150,
|
|
|
+ customRender: ({ text, record }) => {
|
|
|
+ return (<div style="color:gray;font-size:13px">
|
|
|
+ <p style="color:black;font-size:14px">{ text[i].amount }</p>
|
|
|
+ <p>累计提现: { text[i].accruing_amount }</p>
|
|
|
+ <p>回本率: { text[i].back_rate }</p>
|
|
|
+ </div>)
|
|
|
+ },
|
|
|
+ })
|
|
|
+ this.columns.splice(chargeIndex+(i*2), 0,{
|
|
|
+ title: '用户充值(元)M+'+ i,
|
|
|
+ dataIndex: 'user_charge',
|
|
|
+ width: 150,
|
|
|
+ customRender: ({ text, record }) => {
|
|
|
+ return (<div style="color:gray;font-size:13px">
|
|
|
+ <p style="color:black;font-size:14px">{ text[i].amount }</p>
|
|
|
+ <p>累计提现: { text[i].accruing_amount }</p>
|
|
|
+ <p>回本率: { text[i].back_rate }</p>
|
|
|
+ </div>)
|
|
|
+ },
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else { // 24小时
|
|
|
+ if(!this.search.value) { // 未输入月数 默认
|
|
|
+ for(let i =0; i< 3; i++) {
|
|
|
+ this.columns.splice(withdrawalIndex+(i+1), 0,{
|
|
|
+ title: '提现(元)M+'+ (i+1),
|
|
|
+ dataIndex: 'cash_withdrawal',
|
|
|
+ width: 150,
|
|
|
+ customRender: ({ text, record }) => {
|
|
|
+ return (<div style="color:gray;font-size:13px">
|
|
|
+ <p style="color:black;font-size:14px">{ text[i].amount }</p>
|
|
|
+ <p>累计提现: { text[i].accruing_amount }</p>
|
|
|
+ <p>回本率: { text[i].back_rate }</p>
|
|
|
+ </div>)
|
|
|
+ },
|
|
|
+ })
|
|
|
+ this.columns.splice(chargeIndex+(i*2), 0,{
|
|
|
+ title: '用户充值(元)M+'+ (i+1),
|
|
|
+ dataIndex: 'user_charge',
|
|
|
+ width: 150,
|
|
|
+ customRender: ({ text, record }) => {
|
|
|
+ return (<div style="color:gray;font-size:13px">
|
|
|
+ <p style="color:black;font-size:14px">{ text[i].amount }</p>
|
|
|
+ <p>累计提现: { text[i].accruing_amount }</p>
|
|
|
+ <p>回本率: { text[i].back_rate }</p>
|
|
|
+ </div>)
|
|
|
+ },
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else { // 自定义月数
|
|
|
+ for(let i = 0; i< this.search.value; i++) {
|
|
|
+ this.columns.splice(withdrawalIndex+(i+1), 0,{
|
|
|
+ title: '提现(元)M+'+ (i+1),
|
|
|
+ dataIndex: 'cash_withdrawal',
|
|
|
+ width: 150,
|
|
|
+ customRender: ({ text, record }) => {
|
|
|
+ return (<div style="color:gray;font-size:13px">
|
|
|
+ <p style="color:black;font-size:14px">{ text[i].amount }</p>
|
|
|
+ <p>累计提现: { text[i].accruing_amount }</p>
|
|
|
+ <p>回本率: { text[i].back_rate }</p>
|
|
|
+ </div>)
|
|
|
+ },
|
|
|
+ })
|
|
|
+ this.columns.splice(chargeIndex+(i*2), 0,{
|
|
|
+ title: '用户充值(元)M+'+(i+1),
|
|
|
+ dataIndex: 'user_charge',
|
|
|
+ width: 150,
|
|
|
+ customRender: ({ text, record }) => {
|
|
|
+ return (<div style="color:gray;font-size:13px">
|
|
|
+ <p style="color:black;font-size:14px">{ text[i].amount }</p>
|
|
|
+ <p>累计提现: { text[i].accruing_amount }</p>
|
|
|
+ <p>回本率: { text[i].back_rate }</p>
|
|
|
+ </div>)
|
|
|
+ },
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else { // 选择按日查询 1.自然日从0加起-默认展示T+0、T+2、T+6、T+14、T+29 \ 2.24小时-从1加起-默认展示T+0、T+2、T+6、T+14、T+29
|
|
|
+ if(!this.search.value) {// 默认 未输入自定义月数
|
|
|
+ for(let i = 0; i< 5; i++) {
|
|
|
+ this.columns.splice(withdrawalIndex+(i+1), 0,{
|
|
|
+ title: '提现(元)T+'+ [0,2,6,14,29][i],
|
|
|
+ dataIndex: 'cash_withdrawal',
|
|
|
+ width: 150,
|
|
|
+ customRender: ({ text, record }) => {
|
|
|
+ return (<div style="color:gray;font-size:13px">
|
|
|
+ <p style="color:black;font-size:14px">{ text[i].amount }</p>
|
|
|
+ <p>累计提现: { text[i].accruing_amount }</p>
|
|
|
+ <p>回本率: { text[i].back_rate }</p>
|
|
|
+ </div>)
|
|
|
+ },
|
|
|
+ })
|
|
|
+ this.columns.splice(chargeIndex+(i*2), 0,{
|
|
|
+ title: '用户充值(元)M+'+ [0,2,6,14,29][i],
|
|
|
+ dataIndex: 'user_charge',
|
|
|
+ width: 150,
|
|
|
+ customRender: ({ text, record }) => {
|
|
|
+ return (<div style="color:gray;font-size:13px">
|
|
|
+ <p style="color:black;font-size:14px">{ text[i].amount }</p>
|
|
|
+ <p>累计提现: { text[i].accruing_amount }</p>
|
|
|
+ <p>回本率: { text[i].back_rate }</p>
|
|
|
+ </div>)
|
|
|
+ },
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else { // 自定义月数
|
|
|
+ for(let i = 0; i< this.search.value; i++) {
|
|
|
+ this.columns.splice(withdrawalIndex+(i+1), 0,{
|
|
|
+ title: '提现(元)M+'+ i,
|
|
|
+ dataIndex: 'cash_withdrawal',
|
|
|
+ width: 150,
|
|
|
+ customRender: ({ text, record }) => {
|
|
|
+ return (<div style="color:gray;font-size:13px">
|
|
|
+ <p style="color:black;font-size:14px">{ text[i].amount }</p>
|
|
|
+ <p>累计提现: { text[i].accruing_amount }</p>
|
|
|
+ <p>回本率: { text[i].back_rate }</p>
|
|
|
+ </div>)
|
|
|
+ },
|
|
|
+ })
|
|
|
+ this.columns.splice(chargeIndex+(i*2), 0,{
|
|
|
+ title: '用户充值(元)M+'+ i,
|
|
|
+ dataIndex: 'user_charge',
|
|
|
+ width: 150,
|
|
|
+ customRender: ({ text, record }) => {
|
|
|
+ return (<div style="color:gray;font-size:13px">
|
|
|
+ <p style="color:black;font-size:14px">{ text[i].amount }</p>
|
|
|
+ <p>累计提现: { text[i].accruing_amount }</p>
|
|
|
+ <p>回本率: { text[i].back_rate }</p>
|
|
|
+ </div>)
|
|
|
+ },
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 返回需要添加的列
|
|
|
// 工具函数:获取最近日期
|
|
|
getDateRange(dateNow: any, intervalDays: any, bolPastTime: any) {
|
|
|
let oneDayTime = 24 * 60 * 60 * 1000;
|