<template>
  <div class="associated-order">
    <h1 class="title">
      {{$t('互斥订单')}}-{{orderDetails.orderNo}}
    </h1>
    <el-divider></el-divider>
    <orde-details-form  :details ="orderDetails" ></orde-details-form>
    <el-divider></el-divider>
    <el-form inline label-width="100px">
      <el-form-item :label="$t('订单号')"><div class="content">
        <el-input v-model.trim="params.mutualOrderNo"></el-input>
      </div></el-form-item>
      <el-form-item><div class="content">
        <el-button @click="getList">{{$t('查询')}}</el-button>
      </div></el-form-item>
    </el-form>
    <el-divider></el-divider>
    <div style="display: flex;align-items: center;">
      <h1 class="title">
        {{$t('已加入互斥订单列表')}}
      </h1>
      <div style="flex: 1;margin-left: 20px;">
        <el-button :disabled="multipleSelection.length === 0" type="primary" @click="batchGuanlianOrderByOrderId(multipleSelection.map(e =>({orderId:orderId,mutualOrderId:e.orderId})))" >{{$t('批量移出')}}</el-button>
      </div>
      <div>
        <el-button type="primary" @click="$router.push('/order/not-mutex-order/'+ orderId)" >{{$t('添加互斥订单')}}</el-button>
      </div>
    </div>
    <el-table :data="list"  @selection-change="handleSelectionChange" >
      <el-table-column
        type="selection"
        width="55">
      </el-table-column>
      <el-table-column type="index" :label="$t('序号')"></el-table-column>
      <el-table-column :label="$t('订单号')" prop="orderBackVO.orderNo"></el-table-column>
      <el-table-column :label="$t('唛头')" prop="orderBackVO.marks"></el-table-column>
      <el-table-column :label="$t('货物数据')">
        <template v-slot="{row}">
          <div>
            {{row.orderBackVO.costVO.totalNum}}{{$t('箱')}}
          </div>
          <div>
            {{row.orderBackVO.costVO.totalVolume}}m³
          </div>
          <div>
            {{row.orderBackVO.costVO.totalWeight}}KG
          </div>
          </template>
      </el-table-column>
      <el-table-column :label="$t('入仓时间')">
        <template v-slot="{row}">
          {{parseTime(row.orderBackVO.rucangTime)}}
        </template>
      </el-table-column>
      <el-table-column :label="$t('状态')" prop="status" >
        <template v-slot:default="scope">
          <dict-tag :value="scope.row.orderBackVO.status" :type="DICT_TYPE.ORDER_STATUS" ></dict-tag>
        </template>
      </el-table-column>
      <el-table-column :label="$t('操作人')">
        <template v-slot="{row}">
          {{userList.find( i => row.creator == i.id).nickname}}
        </template>
      </el-table-column>
      <el-table-column :label="$t('操作时间')" prop="createTime">
        <template v-slot="{row}">{{
            parseTime(row.orderBackVO.createTime)
          }}</template>
      </el-table-column>
      <el-table-column :label="$t('操作')">
        <template v-slot='{row}'>
          <el-button type="text"  @click ="guanlianOrderByOrderId(row)">
            {{$t('移出')}}
          </el-button>
        </template>
      </el-table-column>
    </el-table>
    <pagination v-show="total > 0" :total="total" :page.sync="params.page" :limit.sync="params.rows"
                @pagination="getList" />
  </div>
</template>

<script>
//关联订单
import ordeDetailsForm from "@/views/ecw/order/components/ordeDetailsForm";
import {getOrder} from "@/api/ecw/order";
import {
  deleteBatchGuanlianOrderByOrderId,
  deleteGuanlianOrderByOrderId,
  guanlianList,
} from "@/api/ecw/mutexOrder";
import {getDictDatas,DICT_TYPE} from '@/utils/dict'
import Template from "@/views/cms/template";
import {listSimpleUsers} from "@/api/system/user";
export default {
  name: "mutexOrder",
  props:{
    orderId:[String,Boolean]
  },
  components:{
    Template,
    ordeDetailsForm
  },
  data(){
    return {
      orderDetails:{},
      params:{
        orderId:undefined,
        page:1,
        rows:10,
      },
      total:0,
      list:[],
      DICT_TYPE,
      getDictDatas,
      multipleSelection:[],
      userList:[]
    }
  },
  created() {
    this.params.orderId = this.orderId;
    this.getList();
    getOrder(this.orderId).then( r =>{
      if(r.code === 0){
        this.orderDetails = r.data;
      }
    })
    listSimpleUsers().then(r => this.userList = r.data)
  },
  methods:{
    getList(){
      guanlianList(this.params).then(r => {
        if(r.code === 0){
          this.list = r.data.list;
          this.total = r.data.total;
        }
      })
    },
    guanlianOrderByOrderId(row){
      deleteGuanlianOrderByOrderId({orderId:this.orderId,mutualOrderId:row.mutualOrderId}).then(r =>{
        if(r.code === 0){
          this.getList()
          this.$message.success(this.$t('操作成功'));
        }
      })
    },
    batchGuanlianOrderByOrderId(val){
      deleteBatchGuanlianOrderByOrderId(val).then(r => {
        this.getList()
        this.$message.success(this.$t('操作成功'));
        this.multipleSelection = []
      })
    },
    handleSelectionChange(val) {
      this.multipleSelection = val;
    }
  },

}
</script>

<style scoped lang="scss">
.associated-order{
  padding: 20px;
  box-sizing: border-box;
  .title{
    font-size: 30px;
    font-weight: 600;
  }
}
</style>