<script setup>
import UniPopup from "@/uni_modules/uni-popup/components/uni-popup/uni-popup.vue";

export default {
  props:{
    value:{
      type:Array,
      default: () => []
    },
    readonly:{
      type:Boolean,
      default:false
    }
  },
  data(){
    return {
      customDraweeList:[]
    }
  },
  onMounted() {
    console.log('drawee')
  },
  methods: {
    open(){
      this.$refs.popup.open()
      if(!this.customDraweeList.length){
        this.loadDictData()
      }
    },
    loadDictData() {
      this.$request.getConfig('custom_drawee').then(res => {
        if(res.code==0&&res.data&&res.data.list.length>0){
          res.data.list.forEach(item => {
            const old = this.value ? this.value.find(it => it.name == item.value) : null
            this.customDraweeList.push({
              name: item.value,
              label: item[this.$lang.label],
              value:  old ? old.value : 1
            })
          })
        }
      })
    },
    changeDrawee(field, e){
      const index = this.customDraweeList.findIndex(item => item.name == field)
      if(index < 0) return
      this.customDraweeList[index].value = e.detail.value
    },
    submit(){
      this.$refs.popup.close()
      this.$emit("confirm", this.customDraweeList)
    },
    close(){
      this.$refs.popup.close()
    },
  }
}
</script>

<template>
  <uni-popup ref="popup" type="center" :mask-click="false">
    <view class="content">
      <view v-for="item in customDraweeList" :key="item.id" class="flex item">
        <view class="name">{{item.label}}</view>
        <radio-group @change="changeDrawee(item.name, $event)" class="flex">
          <label class="flex">
            <view class="checkbox-item">
              <radio value="1" :checked="item.value == 1" :disabled="readonly" style="transform:scale(0.8)"/>
            </view>
            <view>{{$lang.lang.create.consignee}}</view>
          </label>
          <label class="flex">
            <view class="checkbox-item">
              <radio value="2" :checked="item.value == 2" :disabled="readonly" style="transform:scale(0.8)"/>
            </view>
            <view>{{$lang.lang.create.consignor}}</view>
          </label>
        </radio-group>
      </view>
      <view class="flex action">
        <button @click="close">{{readonly ? $lang.lang.order.confirm : $lang.lang.create.cancel}}</button>
        <button @click="submit" type="primary" v-if="!readonly">{{$lang.lang.create.submit}}</button>
      </view>
    </view>
  </uni-popup>
</template>
<style scoped lang="scss">
.content{
  width: 80vw;
  background-color: #fff;
  padding: 10px;
  .item{
    padding: 5px;
    &:nth-child(2n){
      background: #f8f8f8;
    }
    .name{
      width: 100px;
    }
  }
  .action{
    margin-top: 20px;
  }
}
</style>
