|  | @@ -53,38 +53,18 @@
 | 
	
		
			
			| 53 | 53 |              </template>
 | 
	
		
			
			| 54 | 54 |            </el-table-column>
 | 
	
		
			
			| 55 | 55 |        </el-table>
 | 
	
		
			
			| 56 |  | -      <el-table :data="combine" v-loading.body="listLoading" element-loading-text="Loading" border fit highlight-current-row>
 | 
	
		
			
			|  | 56 | +      <el-table show-summary :summary-method="getSummaries" :data="combine" v-loading.body="listLoading" element-loading-text="Loading" border fit highlight-current-row>
 | 
	
		
			
			| 57 | 57 |          <el-table-column :label="`${this.data.secondLayer.GambleMember.name}的會員`" align="center">
 | 
	
		
			
			| 58 | 58 |            <el-table-column label="名稱" align="center">
 | 
	
		
			
			| 59 | 59 |              <template slot-scope="scope">
 | 
	
		
			
			| 60 | 60 |                <span>{{scope.row.name}}</span>
 | 
	
		
			
			| 61 | 61 |              </template>
 | 
	
		
			
			| 62 | 62 |            </el-table-column>
 | 
	
		
			
			| 63 |  | -          <el-table-column label="會員當前分數" align="center">
 | 
	
		
			
			| 64 |  | -            <template slot-scope="scope">
 | 
	
		
			
			| 65 |  | -              <span>{{scope.row.chips}}</span>
 | 
	
		
			
			| 66 |  | -            </template>
 | 
	
		
			
			| 67 |  | -          </el-table-column>
 | 
	
		
			
			| 68 |  | -          <el-table-column label="總上分額" align="center">
 | 
	
		
			
			| 69 |  | -            <template slot-scope="scope">
 | 
	
		
			
			| 70 |  | -              <span>{{scope.row.totalUp}}</span>
 | 
	
		
			
			| 71 |  | -            </template>
 | 
	
		
			
			| 72 |  | -          </el-table-column>
 | 
	
		
			
			| 73 |  | -          <el-table-column label="總下分額" align="center">
 | 
	
		
			
			| 74 |  | -            <template slot-scope="scope">
 | 
	
		
			
			| 75 |  | -              <span>{{scope.row.totalDown}}</span>
 | 
	
		
			
			| 76 |  | -            </template>
 | 
	
		
			
			| 77 |  | -          </el-table-column>
 | 
	
		
			
			| 78 |  | -          <el-table-column label="總獎勵" align="center">
 | 
	
		
			
			| 79 |  | -            <template slot-scope="scope">
 | 
	
		
			
			| 80 |  | -              <span>{{scope.row.totalReward}}</span>
 | 
	
		
			
			| 81 |  | -            </template>
 | 
	
		
			
			| 82 |  | -          </el-table-column>
 | 
	
		
			
			| 83 |  | -          <el-table-column label="總懲罰" align="center">
 | 
	
		
			
			| 84 |  | -            <template slot-scope="scope">
 | 
	
		
			
			| 85 |  | -              <span>{{scope.row.totalPunishment}}</span>
 | 
	
		
			
			| 86 |  | -            </template>
 | 
	
		
			
			| 87 |  | -          </el-table-column>
 | 
	
		
			
			|  | 63 | +          <el-table-column label="會員當前分數" prop="chips" align="center"></el-table-column>
 | 
	
		
			
			|  | 64 | +          <el-table-column label="總上分額" prop="totalUp" align="center"></el-table-column>
 | 
	
		
			
			|  | 65 | +          <el-table-column label="總下分額" prop="totalDown" align="center"></el-table-column>
 | 
	
		
			
			|  | 66 | +          <el-table-column label="總獎勵" prop="totalReward" align="center"></el-table-column>
 | 
	
		
			
			|  | 67 | +          <el-table-column label="總懲罰" prop="totalPunishment" align="center"></el-table-column>
 | 
	
		
			
			| 88 | 68 |            <el-table-column label="有效投注量" align="center">
 | 
	
		
			
			| 89 | 69 |              <template slot-scope="scope">
 | 
	
		
			
			| 90 | 70 |                <span>{{0}}</span>
 | 
	
	
		
			
			|  | @@ -100,44 +80,16 @@
 | 
	
		
			
			| 100 | 80 |                <span :style="moneyColor(scope.row.memberEarned)">{{scope.row.memberEarned}}</span>
 | 
	
		
			
			| 101 | 81 |              </template>
 | 
	
		
			
			| 102 | 82 |            </el-table-column> -->
 | 
	
		
			
			| 103 |  | -          <el-table-column label="莊家總投注量抽水" align="center">
 | 
	
		
			
			| 104 |  | -            <template slot-scope="scope">
 | 
	
		
			
			| 105 |  | -              <span>{{scope.row.bookieWagerFee}}</span>
 | 
	
		
			
			| 106 |  | -            </template>
 | 
	
		
			
			| 107 |  | -          </el-table-column>
 | 
	
		
			
			| 108 |  | -          <el-table-column label="莊家總投注量退水" align="center">
 | 
	
		
			
			| 109 |  | -            <template slot-scope="scope">
 | 
	
		
			
			| 110 |  | -              <span>{{scope.row.feeRatio.times(scope.row.bookieWagerFee).valueOf()}}</span>
 | 
	
		
			
			| 111 |  | -            </template>
 | 
	
		
			
			| 112 |  | -          </el-table-column>
 | 
	
		
			
			| 113 |  | -          <el-table-column label="莊家總抽水" align="center">
 | 
	
		
			
			| 114 |  | -            <template slot-scope="scope">
 | 
	
		
			
			| 115 |  | -              <span>{{scope.row.bookieServiceFees}}</span>
 | 
	
		
			
			| 116 |  | -            </template>
 | 
	
		
			
			| 117 |  | -          </el-table-column>
 | 
	
		
			
			| 118 |  | -          <el-table-column label="莊家退水" align="center">
 | 
	
		
			
			| 119 |  | -            <template slot-scope="scope">
 | 
	
		
			
			| 120 |  | -              <span>{{scope.row.feeRatio.times(scope.row.bookieServiceFees).valueOf()}}</span>
 | 
	
		
			
			| 121 |  | -            </template>
 | 
	
		
			
			| 122 |  | -          </el-table-column>
 | 
	
		
			
			| 123 |  | -          <el-table-column label="閒家總抽水" align="center">
 | 
	
		
			
			| 124 |  | -            <template slot-scope="scope">
 | 
	
		
			
			| 125 |  | -              <span>{{scope.row.memberServiceFees}}</span>
 | 
	
		
			
			| 126 |  | -            </template>
 | 
	
		
			
			| 127 |  | -          </el-table-column>
 | 
	
		
			
			| 128 |  | -          <el-table-column label="閒家退水" align="center">
 | 
	
		
			
			| 129 |  | -            <template slot-scope="scope">
 | 
	
		
			
			| 130 |  | -              <span>{{scope.row.feeRatio.times(scope.row.memberServiceFees).valueOf()}}</span>
 | 
	
		
			
			| 131 |  | -            </template>
 | 
	
		
			
			| 132 |  | -          </el-table-column>
 | 
	
		
			
			| 133 |  | -          <el-table-column label="總退水" align="center">
 | 
	
		
			
			| 134 |  | -            <template slot-scope="scope">
 | 
	
		
			
			| 135 |  | -              <span>{{scope.row.totalServiceFees}}</span>
 | 
	
		
			
			| 136 |  | -            </template>
 | 
	
		
			
			| 137 |  | -          </el-table-column>
 | 
	
		
			
			| 138 |  | -          <el-table-column label="會員結帳" align="center">
 | 
	
		
			
			|  | 83 | +          <el-table-column label="莊家總投注量抽水" prop="bookieWagerFee" align="center"></el-table-column>
 | 
	
		
			
			|  | 84 | +          <el-table-column label="莊家總投注量退水" prop="bookieWagerFeeRatio" align="center"></el-table-column>
 | 
	
		
			
			|  | 85 | +          <el-table-column label="莊家總抽水" prop="bookieServiceFees" align="center"></el-table-column>
 | 
	
		
			
			|  | 86 | +          <el-table-column label="莊家退水" prop="bookieServiceFeesRatio" align="center"></el-table-column>
 | 
	
		
			
			|  | 87 | +          <el-table-column label="閒家總抽水" prop="memberServiceFees" align="center"></el-table-column>
 | 
	
		
			
			|  | 88 | +          <el-table-column label="閒家退水" prop="memberServiceFeesRatio" align="center"></el-table-column>
 | 
	
		
			
			|  | 89 | +          <el-table-column label="總退水" prop="totalServiceFees" align="center"></el-table-column>
 | 
	
		
			
			|  | 90 | +          <el-table-column label="會員結帳" prop="memberCheckOut" align="center">
 | 
	
		
			
			| 139 | 91 |              <template slot-scope="scope">
 | 
	
		
			
			| 140 |  | -              <span :style="moneyColor((scope.row.memberCheckOut)*(-1))">{{(scope.row.memberCheckOut)*(-1)}}</span>
 | 
	
		
			
			|  | 92 | +              <span :style="moneyColor((scope.row.memberCheckOut))">{{(scope.row.memberCheckOut)}}</span>
 | 
	
		
			
			| 141 | 93 |              </template>
 | 
	
		
			
			| 142 | 94 |            </el-table-column>
 | 
	
		
			
			| 143 | 95 |            <el-table-column align="center" label="操作" width="100">
 | 
	
	
		
			
			|  | @@ -224,11 +176,11 @@ export default {
 | 
	
		
			
			| 224 | 176 |        'SetVisible',
 | 
	
		
			
			| 225 | 177 |        'SetData',
 | 
	
		
			
			| 226 | 178 |      ]),
 | 
	
		
			
			| 227 |  | -    getList() {
 | 
	
		
			
			|  | 179 | +    async getList() {
 | 
	
		
			
			| 228 | 180 |        this.listLoading = true
 | 
	
		
			
			| 229 | 181 |        this.allCombine = []
 | 
	
		
			
			| 230 | 182 |        this.combine = []
 | 
	
		
			
			| 231 |  | -      fetchMemberList(this.data.secondLayer, this.listQuery).then(response => {
 | 
	
		
			
			|  | 183 | +      await fetchMemberList(this.data.secondLayer, this.listQuery).then(response => {
 | 
	
		
			
			| 232 | 184 |          response.data.rows.map(member => {
 | 
	
		
			
			| 233 | 185 |            let row = {
 | 
	
		
			
			| 234 | 186 |              id: member.id,
 | 
	
	
		
			
			|  | @@ -241,8 +193,11 @@ export default {
 | 
	
		
			
			| 241 | 193 |              bookieEarned: 0,
 | 
	
		
			
			| 242 | 194 |              memberEarned: 0,
 | 
	
		
			
			| 243 | 195 |              bookieWagerFee: 0,
 | 
	
		
			
			|  | 196 | +            bookieWagerFeeRatio: 0,
 | 
	
		
			
			| 244 | 197 |              bookieServiceFees: 0,
 | 
	
		
			
			|  | 198 | +            bookieServiceFeesRatio: 0,
 | 
	
		
			
			| 245 | 199 |              memberServiceFees: 0,
 | 
	
		
			
			|  | 200 | +            memberServiceFeesRatio: 0,
 | 
	
		
			
			| 246 | 201 |              totalServiceFees: 0,
 | 
	
		
			
			| 247 | 202 |              memberCheckOut: 0,
 | 
	
		
			
			| 248 | 203 |              feeRatio: new Decimal(this.data.secondLayer.feeRatio/100),
 | 
	
	
		
			
			|  | @@ -255,17 +210,21 @@ export default {
 | 
	
		
			
			| 255 | 210 |              });
 | 
	
		
			
			| 256 | 211 |              console.log('membeEarned', row.memberEarned)
 | 
	
		
			
			| 257 | 212 |              row.memberServiceFees = _.sumBy(bookie.false, 'serviceFees');
 | 
	
		
			
			|  | 213 | +            row.memberServiceFeesRatio = row.feeRatio.times(row.memberServiceFees).valueOf()
 | 
	
		
			
			|  | 214 | +            
 | 
	
		
			
			| 258 | 215 |            }
 | 
	
		
			
			| 259 | 216 |            if (bookie.true) {
 | 
	
		
			
			| 260 | 217 |              row.bookieWagerFee = _.sumBy(bookie.true, (item) => {
 | 
	
		
			
			| 261 | 218 |                return item.wagerServiceFees
 | 
	
		
			
			| 262 | 219 |              });
 | 
	
		
			
			|  | 220 | +            row.bookieWagerFeeRatio = row.feeRatio.times(row.bookieWagerFee).valueOf()
 | 
	
		
			
			| 263 | 221 |              console.log('eeee', bookie.true)
 | 
	
		
			
			| 264 | 222 |              row.bookieEarned = _.sumBy(bookie.true, item => {
 | 
	
		
			
			| 265 | 223 |                return Math.abs(item.earned)
 | 
	
		
			
			| 266 | 224 |              });
 | 
	
		
			
			| 267 | 225 |              console.log('bookieEarned' , row.bookieEarned)
 | 
	
		
			
			| 268 | 226 |              row.bookieServiceFees = _.sumBy(bookie.true, (item) => { return item.serviceFees});
 | 
	
		
			
			|  | 227 | +            row.bookieServiceFeesRatio = row.feeRatio.times(row.bookieServiceFees).valueOf()
 | 
	
		
			
			| 269 | 228 |            }
 | 
	
		
			
			| 270 | 229 |            row.totalServiceFees = Number(new Decimal(row.bookieServiceFees).plus(row.memberServiceFees).plus(row.bookieWagerFee).times(row.feeRatio).valueOf())
 | 
	
		
			
			| 271 | 230 |            let chipsLog = _.groupBy(member.GambleMemberChipsLogs, 'type')
 | 
	
	
		
			
			|  | @@ -281,7 +240,7 @@ export default {
 | 
	
		
			
			| 281 | 240 |              })
 | 
	
		
			
			| 282 | 241 |  
 | 
	
		
			
			| 283 | 242 |            }
 | 
	
		
			
			| 284 |  | -          row.memberCheckOut = row.totalUp + row.totalDown - row.chips
 | 
	
		
			
			|  | 243 | +          row.memberCheckOut = (row.totalUp + row.totalDown - row.chips)*(-1)
 | 
	
		
			
			| 285 | 244 |            // TODO CHECK 是否需要
 | 
	
		
			
			| 286 | 245 |            if(chipsLog['1']) {
 | 
	
		
			
			| 287 | 246 |              row.totalReward = _.sumBy(chipsLog['1'], (item) => { 
 | 
	
	
		
			
			|  | @@ -359,7 +318,34 @@ export default {
 | 
	
		
			
			| 359 | 318 |      },
 | 
	
		
			
			| 360 | 319 |      all(scope) {
 | 
	
		
			
			| 361 | 320 |        return (scope.row.allUp+scope.row.allDown-scope.row.allChips-scope.row.allServiceFees)*(-1)
 | 
	
		
			
			| 362 |  | -    }
 | 
	
		
			
			|  | 321 | +    },
 | 
	
		
			
			|  | 322 | +    getSummaries(param) {
 | 
	
		
			
			|  | 323 | +        const { columns, data } = param;
 | 
	
		
			
			|  | 324 | +        const sums = [];
 | 
	
		
			
			|  | 325 | +        console.log('cl', columns)
 | 
	
		
			
			|  | 326 | +        columns.forEach((column, index) => {
 | 
	
		
			
			|  | 327 | +          if (index === 0) {
 | 
	
		
			
			|  | 328 | +            sums[index] = '合計';
 | 
	
		
			
			|  | 329 | +            return;
 | 
	
		
			
			|  | 330 | +          }
 | 
	
		
			
			|  | 331 | +          const values = data.map(item => Number(item[column.property]));
 | 
	
		
			
			|  | 332 | +          if (!values.every(value => isNaN(value))) {
 | 
	
		
			
			|  | 333 | +            sums[index] = values.reduce((prev, curr) => {
 | 
	
		
			
			|  | 334 | +              const value = Number(curr);
 | 
	
		
			
			|  | 335 | +              if (!isNaN(value)) {
 | 
	
		
			
			|  | 336 | +                return prev + curr;
 | 
	
		
			
			|  | 337 | +              } else {
 | 
	
		
			
			|  | 338 | +                return prev;
 | 
	
		
			
			|  | 339 | +              }
 | 
	
		
			
			|  | 340 | +            }, 0);
 | 
	
		
			
			|  | 341 | +            sums[index];
 | 
	
		
			
			|  | 342 | +          } else {
 | 
	
		
			
			|  | 343 | +            sums[index] = 'N/A';
 | 
	
		
			
			|  | 344 | +          }
 | 
	
		
			
			|  | 345 | +        });
 | 
	
		
			
			|  | 346 | +
 | 
	
		
			
			|  | 347 | +        return sums;
 | 
	
		
			
			|  | 348 | +      }
 | 
	
		
			
			| 363 | 349 |    },
 | 
	
		
			
			| 364 | 350 |    destroyed() {
 | 
	
		
			
			| 365 | 351 |      this.SetVisible(1)
 |