<template>
  <view class="container" @touchmove.stop.prevent>
    <view class="container_head">
      数量
    </view>
    <view class="container_form">
      <view class="content">
        <template v-if="selectType === 'editConsumable' || selectType === 'addConsumable'">
          {{ selectData.consumableName }}
          <template v-if="selectData.consumableBrandModel">({{ selectData.consumableBrandModel }})</template>
          {{ selectData.consumableEndPrice }}元
        </template>
        <template v-else-if="selectType === 'editWorkHourManagement'">
          {{ selectData.workName }}
          {{ selectData.wage }}元
        </template>
      </view>
      
      <view class="number">
        <uni-number-box v-model="pageData.num" :background="primaryColor" color="#fff" :min="1" :max="10000" />
      </view>
    </view>
    <view class="container_foot">
      <view class="foot_btns">
        <view class="cancel btn" @click="cancel">取消</view>
        <view v-if="showRemove" class="remove btn" @click="remove">移除</view>
        <view class="confirm btn" @click="confirm">确认</view>
      </view>
    </view>
  </view>
  <view class="mask" @touchmove.stop.prevent></view>
</template>

<script setup>
  import { defineEmits, ref, reactive, defineProps } from 'vue'
  import { onLoad } from '@dcloudio/uni-app'
  import { defaultColor } from '@/static/js/theme.js'
  
  const emit = defineEmits(['cancelEmit', 'confirmEmit', 'removeEmit']);
  const { selectData, selectType, evtNumber, showRemove } = defineProps({
    selectData: Object,
    selectType: String,
    evtNumber: {
      type: Number,
      default: 1,
    },
    showRemove: {
      type: Boolean,
      default: false,
    }
  });
  
  // 主题颜色
  const primaryColor = ref(defaultColor)
  
  // 页面数据
  const pageData = reactive({
    num: 1,
  });
  
  // 取消
  function cancel(){
    emit('cancelEmit')
  }
  
  // 确认
  function confirm(){
    emit('confirmEmit', pageData.num);
  }
  
  // 移除
  function remove(){
    emit('removeEmit', pageData.num);
  }
  
  onLoad((option) => {
    pageData.num = evtNumber;
  })
</script>

<style lang="scss" scoped>
.mask{
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.4);
  z-index: 999;
}
.container{
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 9999;
  width: 690rpx;
  background-color: #fff;
  border-radius: 10rpx;
  
  .container_head{
    padding: 55rpx;
    font-size: 32rpx;
    color: #333;
    text-align: center;
  }
  
  .container_form{
    padding: 0 55rpx;
    .content{
      text-align: center;
      font-size: 28rpx;
    }
    .number{
      padding: 24rpx 0;
      display: flex;
      justify-content: center;
    }
  }
  
  .container_foot{
    .foot_btns{
      display: flex;
      border-top: 1rpx solid #DDDDDD;
      .btn{
        border-right: 1rpx solid #E3E3E3;
        &:last-of-type{
          border-right: none;
        }
      }
      .confirm{
        flex: 1;
        font-size: 32rpx;
        padding: 30rpx;
        display: flex;
        justify-content: center;
        color: $uni-primary;
      }
      
      .remove{
        flex: 1;
        font-size: 32rpx;
        padding: 30rpx;
        display: flex;
        justify-content: center;
        color: red;
      }
      
      .cancel{
        flex: 1;
        background-color: #fff;
        font-size: 32rpx;
        padding: 30rpx;
        display: flex;
        justify-content: center;
      }
    }
  }
}
</style>