<template>
  <view class="container">
    <view class="containerBody">
      <VNavigationBar background-color="#fff" title="工单详情" title-color="#333"></VNavigationBar>
      <view class="body">
        <view v-if="carInfo" class="card cardInfo carCard">
          <view :class="{'end': orderInfo.flag == 5}" class="orderFlag">
            <template>
              <image v-if="orderInfo.flag == 5" mode="aspectFit" src="/static/icons/orderEnd.png"
                     style="width: 48rpx;height: 48rpx"></image>
              <image v-else mode="aspectFit" src="/static/icons/orderIng.png"
                     style="width: 48rpx;height: 48rpx"></image>
              <view class="flagBody">
                <text>{{ orderInfo.flag == 5 ? '已完成' : '待处理' }}</text>
                <text class="flagDesc">当前工单维修项目{{ orderInfo.flag == 5 ? '已全部完成' : '正在进行维修' }}</text>
              </view>
            </template>
          </view>
          <view class="carTitle">车辆信息</view>
          <view class="carDetail">
            <view class="carHeader">
              <image :src="carInfo.image" class="carImage" mode="aspectFill"></image>
              <view class="carHeaderRight">
                <text class="carNumber">{{ carInfo.licenseNumber }}</text>
                <text class="carType">{{ carInfo.carCategory }}</text>
              </view>
            </view>
            <view class="carBody">
              <view style="display: flex;align-items: center">
                <view class="infoItem" style="flex: 1">
                  <view class="label">车架号</view>
                  <view class="value">{{ carInfo.cjNo }}</view>
                </view>
                <view class="infoItem" style="flex: 1">
                  <view class="label">发动机号</view>
                  <view class="value">{{ carInfo.fdjNo }}</view>
                </view>
              </view>
              <template v-if="carInfo.showAll">
                <view style="display: flex;align-items: center">
                  <view class="infoItem" style="flex: 1">
                    <view class="label">年检时间</view>
                    <view class="value">{{ carInfo.njDate }}</view>
                  </view>
                  <view class="infoItem" style="flex: 1">
                    <view class="label">保险时间</view>
                    <view class="value">{{ carInfo.bxDate }}</view>
                  </view>
                </view>
                <view class="infoItem">
                  <view class="label">注册日期</view>
                  <view class="value">{{ carInfo.zcrqDate }}</view>
                </view>
              </template>
            </view>
            <view class="carFoot">
              <template v-if="!carInfo.showAll">
                <text @click="() => $set(carInfo, 'showAll', true)">展开</text>
                <image mode="aspectFit" src="/static/icons/bottom.png" style="width: 28rpx;height: 28rpx"></image>
              </template>
              <template v-else>
                <text @click="() => carInfo.showAll = false">收起</text>
                <!--<image mode="aspectFit" src="/static/icons/bottom.png" style="width: 28rpx;height: 28rpx"></image>-->
              </template>
            </view>
          </view>
        </view>

        <view v-if="userInfo" class="card cardInfo userCard">
          <view class="userTitle">客户信息</view>
          <view class="userContainer">
            <view style="display: flex;align-items: center">
              <view class="infoItem" style="flex: 1">
                <text class="label">姓名</text>
                <text class="value">{{ userInfo.name }}</text>
              </view>
              <view class="infoItem" style="flex: 1">
                <text class="label">性别</text>
                <text class="value">{{ userInfo.sex === '1' ? '女' : '男' }}</text>
              </view>
            </view>
            <template v-if="userInfo.showAll">
              <view style="display: flex;align-items: center">
                <view class="infoItem" style="flex: 1">
                  <text class="label">联系方式</text>
                  <text class="value">{{ userInfo.phone }}</text>
                </view>
                <view class="infoItem" style="flex: 1">
                  <text class="label">出生年月</text>
                  <text class="value">{{ userInfo.birthday }}</text>
                </view>
              </view>
              <view class="infoItem">
                <text class="label">联系地址</text>
                <text class="value">
                  {{ userInfo.provinceName }} {{ userInfo.cityName }} {{ userInfo.areaName }} {{ userInfo.address }}
                </text>
              </view>
            </template>
          </view>
          <view class="userFoot">
            <template v-if="!userInfo.showAll">
              <text @click="() => $set(userInfo, 'showAll', true)">展开</text>
              <image mode="aspectFit" src="/static/icons/bottom.png" style="width: 28rpx;height: 28rpx"></image>
            </template>
            <template v-else>
              <text @click="() => userInfo.showAll = false">收起</text>
              <!--<image mode="aspectFit" src="/static/icons/bottom.png" style="width: 28rpx;height: 28rpx"></image>-->
            </template>
          </view>
        </view>
        <view v-if="selectedProj && selectedProj.length > 0" class="card cardInfo projCard">
          <view class="projTitle">维修项目</view>
          <view class="projList">
            <template v-if="isDetail == '1'">
              <view v-for="item in selectedProj" :key="item.id" class="projItem">
                <view class="projTop">
                  <text class="projName">{{ item.projName }}</text>
                  <text class="projAmount">${{ item.amount }}</text>
                </view>
                <view class="projBody">
                  <view class="projDate">
                    <image mode="aspectFit" src="/static/icons/date.png" style="width: 24rpx;height: 24rpx"></image>
                    <text class="projDateText">{{ item.date }}</text>
                  </view>
                  <view v-if="item.hasNoReviewPart" class="noReviewPart" @click="showReviewList(item.id)">
                    <u-icon color="#E8A321" name="error-circle-fill" size="14"></u-icon>
                    <text class="messageText">当前项目有待审批的配件申请单！</text>
                    <u-icon color="#E8A321" name="arrow-right" size="14"></u-icon>
                  </view>
                  <template v-else>
                    <view class="projDesc">
                      {{ item.desc }}
                    </view>
                    <view class="projImg">
                      <image v-for="(img, imgIndex) in item.imageList" :key="imgIndex" :src="img.filePath"
                             class="projImgItem"></image>
                    </view>
                    <view class="projSend">
                      <template v-if="item.isSend">
                        <image mode="aspectFit" src="/static/icons/sendSuccess.png"
                               style="width: 28rpx;height: 28rpx"></image>
                        <text style="color: #858BA0">已发送客户</text>
                      </template>
                      <template v-else>
                        <image mode="aspectFit" src="/static/icons/send.png" style="width: 28rpx;height: 28rpx"></image>
                        <text style="color: #0174F6">发送给客户</text>
                      </template>
                    </view>
                  </template>

                </view>
              </view>
            </template>
            <template v-else>
              <view v-for="item in selectedProj" :key="item.id" class="projEditItem">
                <view class="projEditLine1">
                  <text>{{ item.projName }}</text>
                  <text class="projAmount">￥{{ item.amount }}</text>
                </view>
                <view class="projBaseInfo">
                  <view>规格：{{ '轿车' }}</view>
                  <view>售价：{{ '280' }}</view>
                  <view>数量：{{ '1' }}</view>
                  <view>单位：{{ '辆' }}</view>
                  <view>折扣：{{ '10' }}</view>
                  <view>金额：{{ '280.00' }}</view>
                </view>
                <view class="projEditFoot">
                  <view class="block1">
                    <template v-if="item.salesman && item.salesman.length > 0">
                      <view class="editPeople">
                        <view class="editForm">
                          <text class="label">销售人员</text>
                          <text v-if="item.salesman">{{
                              item.salesman && item.salesman.map(m => m.name).join(',')
                            }}
                          </text>
                        </view>
                        <image src="/static/icons/edit.png" style="width: 28rpx;height: 28rpx"
                               @click="editPeople('xs', item)"></image>
                      </view>
                    </template>
                    <template v-else>
                      <image src="/pages-order/static/addIcon.png" style="width: 28rpx;height: 28rpx"></image>
                      <text class="addText" @click="editPeople('xs', item)">添加销售人员</text>
                    </template>
                  </view>
                  <view class="line"></view>
                  <view class="block2">
                    <template v-if="item.constructor && item.constructor.length > 0">
                      <view class="editPeople">
                        <view class="editForm">
                          <text class="label">施工人员</text>
                          <text v-if="item.constructor">{{ item.constructor.map(m => m.name).join(',') }}</text>
                        </view>
                        <image src="/static/icons/edit.png" style="width: 28rpx;height: 28rpx"
                               @click="editPeople('sg', item)"></image>
                      </view>
                    </template>
                    <template v-else>
                      <image src="/pages-order/static/addIcon.png" style="width: 28rpx;height: 28rpx"></image>
                      <text class="addText" @click="editPeople('sg', item)">添加施工人员</text>
                    </template>

                  </view>
                </view>
              </view>
            </template>
          </view>
        </view>
      </view>

      <view class="foot">
        <view class="submit">保存工单</view>
      </view>
    </view>
  </view>
</template>

<script>
import VNavigationBar from '@/components/VNavigationBar.vue'
import {bus} from "@/utils/eventBus";

export default {
  components: {
    VNavigationBar,
  },
  data() {
    return {
      //是否详情页(0否1是)
      isDetail:'1',
      // role: 'yewu',
      orderId: '',
      orderInfo: {},
      carInfo: {
        licenseNumber: '川A 184AO1',
        carCategory: '一汽奥迪 2024款 A6L',
        cjNo: '124105112425',
        fdjNo: '124109581905',
        njDate: '2024年',
        bxDate: '2024年',
        zcrqDate: '2023-10-20',
        image: ''
      },
      userInfo: {
        name: '2其',
        sex: '1',
        phone: '131111111',
        birthday: '2000-01-01',
        provinceName: '山东省',
        cityName: '泰安市',
        areaName: 'xx区',
        address: 'xxxxxx'
      },
      selectedProj: [
        {
          projName: '清洗内饰',
          amount: '280',
          date: '2024-10-20 12:00',
          desc: '车辆已到维修厂，工作人员正准备开始维修',
          imageList: [{filePath: ''}, {filePath: ''}, {filePath: ''}, {filePath: ''}, {filePath: ''}],
          isSend: true,
          // 待审核部件
          examinePart: [],
          id: 'projId1',
          // 销售
          salesman: [
            {
              name: '魏书豪',
              id: '11111'
            }
          ],
          // 施工
          constructor: []
        },
        {
          projName: '清洗内饰',
          amount: '280',
          date: '2024-10-20 12:00',
          desc: '车辆已到维修厂，工作人员正准备开始维修',
          imageList: [{filePath: ''}, {filePath: ''}, {filePath: ''}, {filePath: ''}, {filePath: ''}],
          isSend: false,
          // 待审核部件
          hasNoReviewPart: false,
          id: 'projId2',
          salesman: [],
          constructor: []
        },
        {
          projName: '清洗内饰',
          amount: '280',
          date: '2024-10-20 12:00',
          desc: '车辆已到维修厂，工作人员正准备开始维修',
          imageList: [],
          isSend: false,
          // 待审核部件
          hasNoReviewPart: true,
          id: 'projId3',
          salesman: [],
          constructor: []
        }
      ]
    };
  },
  onLoad(data) {
    if (data.id) {
      this.orderId = data.id
    }
    if (data.isDetail){
      this.isDetail = data.isDetail
    }
  },
  methods: {
    

    editPeople(type, proj) {
      bus.$off('choosePeople')
      bus.$on('choosePeople', (data) => {
        console.log('choosePeople', data)
        console.log('type', type)
        if (type === 'xs') {
          proj.salesman = data
        } else if (type === 'sg') {
          proj.constructor = data
        }
        console.log('proj', proj)
      })
      uni.navigateTo({
        url: `/pages-order/choosePeople/choosePeople?type=${type}`
      })
    },
    showReviewList(projId) {
      uni.navigateTo({
        url: `/pages-order/reviewList/reviewList?projId=${projId}`
      })
    }
  }
}
</script>

<style lang="less" scoped>
.container {
  height: 100%;
  background-color: #F3F5F7;

  .containerBody {
    height: 100%;
    display: flex;
    flex-direction: column;
  }

  .body {
    flex: 1;
    height: 0;
    overflow: auto;
  }

  .card {
    background: #FFFFFF;
    border-radius: 8rpx 8rpx 8rpx 8rpx;
    margin: 20rpx 32rpx;
  }

  .phone {
    background: #0174F6;

    .phoneHeader {
      padding: 20rpx 30rpx;

      .title {
        font-weight: bold;
        font-size: 32rpx;
        color: #FFFFFF;
        margin-bottom: 10rpx;
      }

      .desc {
        font-weight: 500;
        font-size: 24rpx;
        color: rgba(255, 255, 255, 0.7);
      }
    }

    .phoneBody {
      background: #FFFFFF;
      border-radius: 8rpx 8rpx 8rpx 8rpx;
      padding: 0 30rpx;

      .searchBox {
        padding: 40rpx 0;
        border-bottom: 1rpx solid #EEEEEE;
      }

      .btn {
        padding: 40rpx 0;

        display: flex;
        align-items: center;
        justify-content: center;
        column-gap: 10rpx;

        font-weight: 500;
        font-size: 32rpx;
        color: #0174F6;

        .btnIcon {
          width: 32rpx;
          height: 32rpx;
        }
      }
    }
  }

  .cardInfo {
    &.none {
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: center;

      .cardNoneIcon {
        width: 336rpx;
      }

      .btn {
        position: absolute;
        bottom: 40rpx;
        left: 50%;
        transform: translateX(-50%);

        display: flex;
        align-items: center;
        column-gap: 10rpx;

        font-weight: 500;
        font-size: 28rpx;
        color: #0174F6;
      }
    }
  }

  .projTitle, .userTitle, .carTitle {
    padding: 30rpx;
    font-weight: bold;
    font-size: 32rpx;
    color: #333333;
  }

  .carCard {
    .orderFlag {
      display: flex;
      align-items: center;
      column-gap: 14rpx;
      padding: 40rpx 30rpx;
      background: #FFFBF3;
      border-radius: 8rpx 8rpx 0rpx 0rpx;
      border-top: 8rpx solid #E8A321;

      &.end {
        border-top: 8rpx solid #17DBB1;
        background-color: #E3FFF9;
      }

      .flagBody {
        display: flex;
        flex-direction: column;
        row-gap: 10rpx;
        font-weight: bold;
        font-size: 32rpx;
        color: #333333;

        .flagDesc {
          font-weight: 500;
          font-size: 24rpx;
          color: #999999;
        }
      }

    }

    .carDetail {
      background-size: 100% 184rpx;
      padding: 0 30rpx;

      .carHeader {
        border-radius: 8rpx 8rpx 8rpx 8rpx;

        display: flex;
        align-items: center;
        column-gap: 20rpx;

        padding-bottom: 30rpx;

        .carImage {
          width: 192rpx;
          height: 120rpx;
          background: #F2F2F7;
          border-radius: 8rpx 8rpx 8rpx 8rpx;
        }

        .carHeaderRight {
          display: flex;
          flex-direction: column;
          row-gap: 20rpx;
          font-weight: bold;
          font-size: 32rpx;
          color: #333333;

          .carType {
            font-weight: 500;
            font-size: 28rpx;
            color: #858BA0;
          }
        }
      }

      .carBody {
        display: flex;
        flex-direction: column;
        row-gap: 30rpx;
        padding-top: 30rpx;
        border-top: 1rpx solid #DDDDDD;
      }

      .carFoot {

      }
    }
  }

  .projCard {
    padding-bottom: 30rpx;

    .projList {
      padding: 0 30rpx;
      display: flex;
      flex-direction: column;
      gap: 20rpx;

      .projItem {
        background: #FFFFFF;
        border-radius: 4rpx 4rpx 4rpx 4rpx;
        border: 2rpx solid #DDDDDD;
        padding: 0 20rpx;

        .projTop {
          padding: 20rpx 0;
          border-bottom: 1rpx solid #DDDDDD;
          display: flex;
          align-items: center;
          justify-content: space-between;
          font-weight: 500;
          font-size: 28rpx;
          color: #333333;

          .projAmount {
            font-weight: bold;
            color: #0174F6;
          }
        }

        .projBody {
          padding-bottom: 20rpx;

          .projDate {
            font-weight: 500;
            font-size: 24rpx;
            color: #858BA0;

            display: flex;
            align-items: center;
            column-gap: 10rpx;

            padding: 20rpx 0;
          }

          .projDesc {
            font-weight: 500;
            font-size: 24rpx;
            color: #858BA0;
          }

          .projImg {
            width: 100%;
            display: grid;
            grid-template-columns: repeat(auto-fill, 120rpx);
            justify-content: space-between;
            gap: 20rpx;
            padding: 20rpx 0;

            .projImgItem {
              width: 120rpx;
              height: 120rpx;
              background-color: #efefef;
            }
          }

          .noReviewPart {
            padding: 20rpx 36rpx 20rpx 10rpx;
            display: flex;
            align-items: center;
            column-gap: 10rpx;

            background: #FFF6E7;
            border-radius: 4rpx 4rpx 4rpx 4rpx;

            font-weight: 500;
            font-size: 28rpx;
            color: #E8A321;

            .messageText {
              flex: 1;
              width: 0;
            }
          }

          .projSend {
            display: flex;
            align-items: center;
            font-weight: 500;
            font-size: 28rpx;
            column-gap: 8rpx;
          }

        }
      }

      .projEditItem {
        padding: 0 20rpx;
        background: #F2F2F7;
        border-radius: 4rpx 4rpx 4rpx 4rpx;

        .projEditLine1 {
          display: flex;
          align-items: center;
          justify-content: space-between;

          font-weight: 500;
          font-size: 28rpx;
          color: #333333;

          padding: 30rpx 0;

          .projAmount {
            color: #0174F6;
          }
        }

        .projBaseInfo {
          display: grid;
          grid-template-columns: 1fr 1fr;
          font-size: 24rpx;
          color: #999999;
          gap: 20rpx;
          margin-bottom: 20rpx;
        }

        .projEditFoot {
          padding: 30rpx 0;
          border-top: 1px solid #DDDDDD;

          display: flex;
          align-items: center;
          column-gap: 10rpx;

          .block1, .block2 {
            flex: 1;
            width: 0;

            display: flex;
            align-items: center;
            justify-content: center;
            column-gap: 8rpx;

            font-size: 28rpx;
            color: #0174F6;
            line-height: 28rpx;

            .editPeople {
              flex: 1;
              width: 0;

              display: flex;
              justify-content: space-between;
              align-items: center;

              .editForm {
                display: flex;
                flex-direction: column;
                row-gap: 10rpx;
                font-size: 28rpx;
                color: #333333;

                .label {
                  font-size: 24rpx;
                  color: #999999;
                }
              }
            }
          }

          .line {
            height: 28rpx;
            width: 2rpx;
            background-color: #DDDDDD;
          }

        }
      }
    }
  }

  .userCard {
    .userContainer {
      display: flex;
      flex-direction: column;
      row-gap: 30rpx;
      margin: 0 30rpx;
    }
  }

  .infoItem {
    display: flex;
    flex-direction: column;

    .label {
      font-weight: 500;
      font-size: 28rpx;
      color: #858BA0;
    }

    .value {
      font-weight: 500;
      font-size: 28rpx;
      color: #333333;
    }
  }

  .projFoot, .userFoot, .carFoot {
    padding: 30rpx;
    font-weight: 500;
    font-size: 28rpx;
    color: #0174F6;
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 6rpx;
  }

  .foot {
    padding: 30rpx;
    background-color: #fff;

    .submit {
      margin: 0 auto;

      width: 510rpx;
      height: 76rpx;
      background: #0174F6;
      border-radius: 38rpx 38rpx 38rpx 38rpx;

      display: flex;
      align-items: center;
      justify-content: center;

      font-size: 32rpx;
      color: #FFFFFF;
    }
  }
}
</style>
