ChildGoodEditModal.vue 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <script setup lang="ts">
  2. import { useVModel } from '@vueuse/core';
  3. import { ElDialog } from 'element-plus';
  4. import { goodColumns } from '../config/columns';
  5. import BasicDescriptions from "/@/components/BasicDescriptions";
  6. import { NumberInput } from "/@/components/Input"
  7. import { ref, watch} from 'vue';
  8. const props = defineProps<{
  9. visible: boolean;
  10. index: any;
  11. data: any;
  12. }>()
  13. const emit = defineEmits(['submit'])
  14. const visible = useVModel(props, 'visible')
  15. const child_num = ref(0)
  16. watch(() => visible.value, () => {
  17. if(!visible.value){ return }
  18. child_num.value = props.data.child_num
  19. })
  20. function handleSubmit(){
  21. emit('submit', props.index, { ...props.data, child_num: child_num.value })
  22. visible.value = false
  23. }
  24. </script>
  25. <template>
  26. <ElDialog
  27. v-model="visible"
  28. title="编辑子商品"
  29. center
  30. >
  31. <BasicDescriptions style="overflow: hidden;" v-if="props.data" :data="props.data" :columns="goodColumns" />
  32. <div class="flex justify-between mt-[10px]">
  33. <div class="flex items-center">
  34. <p style="width: 110px">子商品比例:</p>
  35. <NumberInput v-model="child_num" placeholder="子商品比例" />
  36. </div>
  37. <ElButton type="primary" @click="handleSubmit">保存</ElButton>
  38. </div>
  39. </ElDialog>
  40. </template>