putModal.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  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: 'wifiName',
  44. component: 'Input',
  45. label: 'wifi名称',
  46. colProps: {
  47. span: 18,
  48. },
  49. // helpMessage:'wifi名称需包含前缀,如““4DKKMI_”。',
  50. // defaultValue:'4DKKMI_',
  51. helpMessage:'wifi名称需包含前缀,如“4DKKPRO_”、“4DKKMI_”、“4DSS_”、“4DKK_”、“4DSG_”。',
  52. defaultValue:'',
  53. rules: [
  54. {
  55. required: true,
  56. // @ts-ignore
  57. validator: async (rule, value) => {
  58. // var reg = /\S+@\S+\.\S+/;
  59. if (!value) {
  60. return Promise.reject('请输入wifi名称');
  61. }
  62. var list:string[] = ['4DKKMI_','4DKKPRO_','4DSS_','4DSG_','4DKK_'];
  63. const some = list.some(item=>{
  64. return value.indexOf(item) != -1
  65. })
  66. console.log('validator',some)
  67. if(!some){
  68. // return Promise.reject('wifi名称需包含前缀,如“4DKKMI_”。');
  69. return Promise.reject('wifi名称需包含前缀,如“4DKKPRO_”、“4DKKMI_”、“4DSS_”、“4DKK_”、“4DSG_”。');
  70. }
  71. return Promise.resolve();
  72. },
  73. trigger: 'change',
  74. },
  75. ],
  76. }
  77. ];
  78. const [registerForm, { validate, resetFields, setFieldsValue }] = useForm({
  79. labelWidth: 120,
  80. schemas,
  81. showActionButtonGroup: false,
  82. actionColOptions: {
  83. span: 24,
  84. },
  85. });
  86. onMounted(() => {});
  87. let addListFunc = () => {};
  88. const [register, { closeModal }] = useModalInner((data) => {
  89. // console.log(data);
  90. data && onDataReceive(data);
  91. });
  92. function onDataReceive(data) {
  93. modelRef.value = data;
  94. resetFields();
  95. setFieldsValue({
  96. type: data.sceneName,
  97. });
  98. }
  99. function handleVisibleChange() {
  100. }
  101. const handleSubmit = async () => {
  102. try {
  103. const params = await validate();
  104. await cameraIn(params);
  105. closeModal();
  106. resetFields();
  107. createMessage.success(t('common.optSuccess'));
  108. emit('reload');
  109. } catch (error) {
  110. console.log('not passing', error);
  111. }
  112. };
  113. return {
  114. register,
  115. schemas,
  116. registerForm,
  117. model: modelRef,
  118. fileFlow,
  119. handleVisibleChange,
  120. handleSubmit,
  121. addListFunc,
  122. resetFields,
  123. t,
  124. };
  125. },
  126. });
  127. </script>