EditOrderRemark.vue 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <template>
  2. <vxe-modal v-model="dialogVisible" :title="title" show-zoom resize show-footer destroy-on-close transfer @hide="close" :width="width" :z-index="100">
  3. <template #default>
  4. <el-form ref="formRef" :model="form" label-width="auto">
  5. <el-form-item label="订单备注:" prop="remark">
  6. <el-input v-model="form.remark" :rows="4" type="textarea" placeholder="请输入订单备注" clearable style="width: 100%" />
  7. </el-form-item>
  8. </el-form>
  9. </template>
  10. <template #footer>
  11. <el-button @click="close">取消</el-button>
  12. <el-button type="primary" @click="submitForm">确认添加</el-button>
  13. </template>
  14. </vxe-modal>
  15. </template>
  16. <script setup name="EditOrderRemark" lang="ts">
  17. import { testOrderRemark } from '@/api/cdt/orders';
  18. import { editValidityDate } from '@/api/dgtmedicine/member/index';
  19. import { propTypes } from '@/utils/propTypes';
  20. import { FormInstance } from 'element-plus';
  21. const emit = defineEmits(['update:show', 'close', 'success']);
  22. const props = defineProps({
  23. show: propTypes.bool.def(false),
  24. title: propTypes.string.def('添加备注'),
  25. width: propTypes.number.def(560),
  26. info: propTypes.any.def(null),
  27. dict: propTypes.object.def({}),
  28. });
  29. const { proxy } = getCurrentInstance() as ComponentInternalInstance;
  30. const dialogVisible = ref(false);
  31. const form = ref<any>({
  32. remark: ''
  33. });
  34. const formRef = ref<FormInstance>();
  35. const close = () => {
  36. formRef.value?.resetFields();
  37. emit('update:show', false);
  38. emit('close', false);
  39. };
  40. const submitForm = async () => {
  41. try {
  42. await formRef.value?.validate();
  43. const res = await testOrderRemark({ ...form.value, orderId: props.info?.id });
  44. if (res) {
  45. close();
  46. emit('success', true);
  47. }
  48. } catch (error) {
  49. console.error(error);
  50. }
  51. };
  52. watch(
  53. () => props.show,
  54. (val) => {
  55. dialogVisible.value = val;
  56. },
  57. { immediate: true }
  58. );
  59. watch(
  60. () => props.info,
  61. (val) => {
  62. form.value = { remark: val?.remark };
  63. },
  64. { immediate: true }
  65. );
  66. </script>