putModal.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <template>
  2. <BasicModal
  3. v-bind="$attrs"
  4. @register="register"
  5. title="设备入库"
  6. @visible-change="handleVisibleChange"
  7. @cancel="resetFields"
  8. @ok="handleSubmit"
  9. :min-height="0"
  10. >
  11. <div class="pt-2px pr-3px">
  12. <BasicForm @register="registerForm" :model="model">
  13. <template #text="{ model, field }">
  14. {{ model[field] }}
  15. </template>
  16. </BasicForm>
  17. </div>
  18. </BasicModal>
  19. </template>
  20. <script lang="ts">
  21. import { defineComponent, ref, nextTick, onMounted, reactive } from 'vue';
  22. import { BasicModal, useModalInner } from '/@/components/Modal';
  23. import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
  24. import { useMessage } from '/@/hooks/web/useMessage';
  25. import { cameraIn } from '/@/api/device';
  26. import { companyUploadExcel, downTemplate } from '/@/api/customer';
  27. import { useI18n } from '/@/hooks/web/useI18n';
  28. const { t } = useI18n();
  29. export default defineComponent({
  30. components: { BasicModal, BasicForm },
  31. props: {
  32. userData: { type: Object },
  33. },
  34. emits: ['reload'],
  35. setup(_, { emit }) {
  36. const modelRef = ref({});
  37. const fileFlow = reactive({
  38. file: null,
  39. });
  40. const { createMessage } = useMessage();
  41. const schemas: FormSchema[] = [
  42. {
  43. field: 'authorizeCode ',
  44. component: 'Input',
  45. label: '相机授权码',
  46. colProps: {
  47. span: 18,
  48. },
  49. required: true,
  50. // helpMessage: 'wifi名称需包含前缀,如““4DKKPRO_”。',
  51. // defaultValue: '4DKKPRO_',
  52. // rules: [
  53. // {
  54. // required: true,
  55. // // @ts-ignore
  56. // validator: async (rule, value) => {
  57. // // var reg = /\S+@\S+\.\S+/;
  58. // if (!value) {
  59. // return Promise.reject('请输入wifi名称');
  60. // }
  61. // var list: string[] = ['4DKKPRO_'];
  62. // const some = list.some((item) => {
  63. // return value.indexOf(item) != -1;
  64. // });
  65. // console.log('validator', some);
  66. // if (!some) {
  67. // return Promise.reject('wifi名称需包含前缀,如“4DKKPRO_”。');
  68. // }
  69. // return Promise.resolve();
  70. // },
  71. // trigger: 'change',
  72. // },
  73. // ],
  74. },
  75. ];
  76. const [registerForm, { validate, resetFields, setFieldsValue }] = useForm({
  77. labelWidth: 120,
  78. schemas,
  79. showActionButtonGroup: false,
  80. actionColOptions: {
  81. span: 24,
  82. },
  83. });
  84. onMounted(() => {});
  85. let addListFunc = () => {};
  86. const [register, { closeModal }] = useModalInner((data) => {
  87. // console.log(data);
  88. data && onDataReceive(data);
  89. });
  90. function onDataReceive(data) {
  91. modelRef.value = data;
  92. resetFields();
  93. setFieldsValue({
  94. type: data.sceneName,
  95. });
  96. }
  97. function handleVisibleChange() {}
  98. const handleSubmit = async () => {
  99. try {
  100. const params = await validate();
  101. await cameraIn(params);
  102. closeModal();
  103. resetFields();
  104. createMessage.success(t('common.optSuccess'));
  105. emit('reload');
  106. } catch (error) {
  107. console.log('not passing', error);
  108. }
  109. };
  110. return {
  111. register,
  112. schemas,
  113. registerForm,
  114. model: modelRef,
  115. fileFlow,
  116. handleVisibleChange,
  117. handleSubmit,
  118. addListFunc,
  119. resetFields,
  120. t,
  121. };
  122. },
  123. });
  124. </script>