<template>
  <view class="page-receipt-detail">
    <view class="header">
      <view class="left">
        <u-icon class="icon" name="arrow-left" @click="uni.navigateBack()" />
      </view>
      <view class="title">{{ $t('message.Summary_Result') }}</view>
      <view class="right"></view>
    </view>
    <view class="table-wrapper">
      <wyb-table class="table" ref="table" width="100%" show-left-and-right-border :headers="headers" :contents="model.proOrderResultList" :show-vert-border="false"></wyb-table>
    </view>
    <view class="bottom-bar">
      <div class="container">
        <u-row>
          <u-col :span="4">
            <u-button type="primary" @click="onAggregate">
              {{ $t('message.Pi_Summary') }}
            </u-button>
          </u-col>
          <u-col :span="4">
            <u-button type="success" @click="onOrder">
              {{ $t('message.Pi_ByOrder') }}
            </u-button>
          </u-col>
          <!--          <u-col :span="3">-->
          <!--            <u-button type="warning"> 辅料 </u-button>-->
          <!--          </u-col>-->
          <u-col :span="4">
            <u-button type="error" @click="uni.navigateBack()">{{ $t('message.po_Return') }}</u-button>
          </u-col>
        </u-row>
      </div>
    </view>
  </view>
</template>

<script lang="ts">
import { Component } from 'vue-property-decorator';
import { BasePage } from '@/components/base/page';
import model from './model';
import { resultHeaders } from './config';
import { session } from '@/store/modules/session';

@Component
export default class AggregatingResult extends BasePage {
  /**
   * 页面Module
   */
  model = model;

  /**
   * 表头
   */
  headers = resultHeaders;

  /**
   * 汇总
   */
  async onAggregate() {
    const orderOutIdList = this.model.proOrderResultList.map((_: any) => _.orderOutId);
    const params = {
      factoryCode: session.factoryCode,
      loginName: session.loginName,
      orderOutIdList,
    };
    await this.model.queryAggregateList(params);
    this.model.orderOutIdListParams = params;
    this.toPage(this.page.raw.handover.aggregating.summary);
  }

  /**
   * 按单
   */
  async onOrder() {
    const orderOutIdList = this.model.proOrderResultList.map((_: any) => _.orderOutId);
    const params = {
      factoryCode: session.factoryCode,
      loginName: session.loginName,
      orderOutIdList,
    };
    await this.model.queryOrderList({
      queryParams: params,
      proOrderResultList: this.model.proOrderResultList,
    });
    this.model.orderOutIdListParams = params;
    this.toPage(this.page.raw.handover.aggregating.order);
  }

  /**
   * 辅料
   */
  async onAccessory() {
    const orderOutIdList = this.model.proOrderResultList.map((_: any) => _.orderOutId);
    const params = {
      factoryCode: session.factoryCode,
      loginName: session.loginName,
      orderOutIdList,
    };
    await this.model.queryAccessoryList(params);
    this.toPage(this.page.raw.handover.aggregating.accessory);
  }
}
</script>

<style lang="scss" scoped>
.page-receipt-detail {
  background: #f2f2f2 linear-gradient(0deg, #f2f2f2 0%, #4a78ea 51%, #1753ea 100%) no-repeat;
  background-size: 100% 600rpx;
  padding: 30rpx;
  min-height: 100%;
  padding-top: 118rpx;
  padding-bottom: 132rpx;

  .header {
    position: fixed;
    top: 36rpx;
    left: 0;
    right: 0;
    display: flex;
    height: 88rpx;
    line-height: 88rpx;
    color: #fff;
    font-size: 34rpx;
    font-weight: 500;
    text-align: center;
    .title {
      flex: 3;
    }
    .left,
    .right {
      flex: 1;
    }
    .icon {
      display: flex;
      justify-content: center;
      align-items: center;
      width: 88rpx;
      height: 88rpx;
    }
  }

  .table-wrapper {
    background-color: #fff;
  }

  .form {
    background-color: #fff;
    padding: 40rpx;
    border-radius: 10rpx;
  }

  .bottom-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 30;

    .container {
      background: #ffffff;
      box-shadow: 0 1rpx 20rpx 0 rgba(128, 128, 128, 0.2);
      padding: 20rpx;
    }

    .extra {
      background-color: #fff;
      margin: 5px;
      border-radius: 5px;
      padding: 0 10px;
    }
  }
}
</style>
