RejectButton.vue 783 B

123456789101112131415161718192021222324252627282930313233
  1. <template>
  2. <view style="width:50%">
  3. <u-button type="warning" text="驳回" size="small" @click="handleReject" v-bind="$attrs" />
  4. <!-- 驳回原因选择器 -->
  5. <u-picker :show="showRejectPicker" :columns="[rejectReasons]" @confirm="confirmReject"
  6. @cancel="showRejectPicker = false" />
  7. </view>
  8. </template>
  9. <script setup>
  10. import { ref } from 'vue';
  11. const emit = defineEmits(['reject']);
  12. const showRejectPicker = ref(false);
  13. const rejectReasons = [
  14. '重量不符',
  15. '包装破损',
  16. '货物缺失',
  17. '其他原因'
  18. ];
  19. const handleReject = () => {
  20. showRejectPicker.value = true;
  21. };
  22. const confirmReject = (e) => {
  23. const reason = e.value[0];
  24. emit('reject', reason);
  25. showRejectPicker.value = false;
  26. };
  27. </script>