RejectButton.vue 981 B

12345678910111213141516171819202122232425262728293031323334353637
  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. //获取驳回原因
  14. const rejectReasons = ref([]);
  15. const getRejectReason = async () => {
  16. const res = await uni.$u.http.get('/app/sysDict/getDict?key=route_exception_reason ');
  17. if (res.code == 200) {
  18. rejectReasons.value = res.data.map(item => item.dictValue);
  19. }
  20. };
  21. getRejectReason()
  22. const handleReject = () => {
  23. showRejectPicker.value = true;
  24. };
  25. const confirmReject = (e) => {
  26. const reason = e.value[0];
  27. emit('reject', reason);
  28. showRejectPicker.value = false;
  29. };
  30. </script>