AddSnModal.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <template>
  2. <BasicModal
  3. v-bind="$attrs"
  4. @register="register"
  5. title="授权相机"
  6. @visible-change="handleVisibleChange"
  7. @cancel="resetFields"
  8. minHeight="900px"
  9. @ok="handleSubmit"
  10. >
  11. <div class="pt-2px pr-3px zdysrk">
  12. <BasicForm @register="registerForm">
  13. <template #text="{ model, field }"> {{ model[field] }}{{ fileFlow.type }} </template>
  14. </BasicForm>
  15. </div>
  16. </BasicModal>
  17. </template>
  18. <script lang="ts">
  19. import { defineComponent, nextTick, onMounted, reactive, computed, h, ref } from 'vue';
  20. import { BasicModal, useModalInner } from '/@/components/Modal';
  21. import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
  22. import { useMessage } from '/@/hooks/web/useMessage';
  23. import { remarkschemas, Addschemas } from './data';
  24. import { InvoiceRegister } from '/@/api/order';
  25. import { useI18n } from '/@/hooks/web/useI18n';
  26. import { uploadApi } from '/@/api/product/index';
  27. import { ResultEnum } from '/@/enums/httpEnum';
  28. import {
  29. DetailsApi,
  30. dincrementList,
  31. AddUserIncrementApi,
  32. UnbindCameraApi,
  33. getAddUserIncrementTime,
  34. currencyList,
  35. } from '/@/api/account';
  36. import dayjs from 'dayjs';
  37. import { otherInfoStore } from '/@/store/modules/other';
  38. import { useUserStore } from '/@/store/modules/user';
  39. const { t } = useI18n();
  40. export default defineComponent({
  41. components: { BasicModal, BasicForm },
  42. props: {
  43. userData: { type: Object },
  44. },
  45. emits: ['update', 'register'],
  46. setup(props, { emit }) {
  47. const otherInfo = otherInfoStore();
  48. const userStore = useUserStore();
  49. const overviewInfo = computed(() => otherInfo.getOverviewInfo);
  50. // const overviewInfo = getOverviewInfo() || {}
  51. const title = ref('新增权益');
  52. const fileFlow = reactive({
  53. file: null,
  54. id: '',
  55. type: 'down', //down-下载,equity-权益
  56. });
  57. const { createMessage, createConfirm } = useMessage();
  58. const schemas: FormSchema[] = [
  59. {
  60. field: 'id',
  61. component: 'Input',
  62. show: false,
  63. label: 'id',
  64. },
  65. {
  66. field: 'userId',
  67. component: 'Input',
  68. show: false,
  69. label: 'userId',
  70. },
  71. {
  72. field: 'snCode',
  73. component: 'Input',
  74. label: '相机SN码',
  75. required: true,
  76. },
  77. ];
  78. const [
  79. registerForm,
  80. { validate, getFieldsValue, resetFields, setFieldsValue, updateSchema, validateFields, scrollToField },
  81. ] = useForm({
  82. labelWidth: 120,
  83. schemas: schemas,
  84. showActionButtonGroup: false,
  85. actionColOptions: {
  86. span: 24,
  87. },
  88. });
  89. onMounted(() => {});
  90. let addListFunc = () => {};
  91. const [register, { closeModal }] = useModalInner((data) => {
  92. data && onDataReceive(data);
  93. });
  94. async function onDataReceive(data) {
  95. setFieldsValue({
  96. ...data,
  97. // incrementEndTime: dayjs(incrementEndTime).add(1, data.incrementTypeId == '3' ? 'month' : 'year').format('YYYY-MM-DD'),
  98. });
  99. }
  100. const handleSubmit = async () => {
  101. const submitUrl = UnbindCameraApi;
  102. try {
  103. const params = await validate();
  104. console.log('validate', params);
  105. const apiData = {
  106. ...params,
  107. incrementId: params.id,
  108. };
  109. const res = await submitUrl(apiData);
  110. closeModal();
  111. resetFields();
  112. createMessage.success(t('common.optSuccess'));
  113. emit('update');
  114. } catch (error) {
  115. console.log('not passing', error);
  116. }
  117. };
  118. function handleVisibleChange(v) {
  119. v && props.userData && nextTick(() => onDataReceive(props.userData));
  120. }
  121. return {
  122. register,
  123. registerForm,
  124. fileFlow,
  125. handleVisibleChange,
  126. handleSubmit,
  127. addListFunc,
  128. resetFields,
  129. t,
  130. title,
  131. };
  132. },
  133. });
  134. </script>
  135. <style lang="less">
  136. .zdysrk {
  137. .ant-calendar-picker {
  138. min-width: 285px;
  139. }
  140. }
  141. </style>