AddModal.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <template>
  2. <BasicModal
  3. v-bind="$attrs"
  4. @register="register"
  5. title="新增子账号"
  6. @visible-change="handleVisibleChange"
  7. @ok="handleSubmit"
  8. >
  9. <div class="pt-2px pr-3px">
  10. <BasicForm @register="registerForm" :model="model" />
  11. </div>
  12. </BasicModal>
  13. </template>
  14. <script lang="ts">
  15. import { defineComponent, ref, nextTick } from 'vue';
  16. import { BasicModal, useModalInner } from '/@/components/Modal';
  17. import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
  18. import { useMessage } from '/@/hooks/web/useMessage';
  19. import { checkUserAddAble } from '/@/api/corporation/modal';
  20. const schemas: FormSchema[] = [
  21. {
  22. field: 'memoName',
  23. component: 'Input',
  24. label: '姓名',
  25. colProps: {
  26. span: 24,
  27. },
  28. },
  29. {
  30. field: 'phone',
  31. component: 'Input',
  32. label: '手机号',
  33. colProps: {
  34. span: 24,
  35. },
  36. },
  37. ];
  38. export default defineComponent({
  39. components: { BasicModal, BasicForm },
  40. props: {
  41. userData: { type: Object },
  42. },
  43. emits: ['register'],
  44. setup(props) {
  45. const modelRef = ref({});
  46. const { createMessage } = useMessage();
  47. const [
  48. registerForm,
  49. {
  50. getFieldsValue,
  51. // setFieldsValue,
  52. // setProps
  53. },
  54. ] = useForm({
  55. labelWidth: 120,
  56. schemas,
  57. showActionButtonGroup: false,
  58. actionColOptions: {
  59. span: 24,
  60. },
  61. });
  62. let addListFunc = () => {};
  63. const [register, { closeModal }] = useModalInner((data) => {
  64. data && onDataReceive(data);
  65. });
  66. function onDataReceive(data) {
  67. console.log('Data Received', data);
  68. const { addList } = data;
  69. if (typeof addList === 'function') {
  70. //是函数 其中 FunName 为函数名称
  71. addListFunc = addList;
  72. }
  73. }
  74. const handleSubmit = async () => {
  75. console.log('getFieldsValue()', getFieldsValue());
  76. var reg_tel =
  77. /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
  78. let { phone, memoName } = getFieldsValue();
  79. if (phone == '') {
  80. createMessage.error('请填写您的手机号码!');
  81. return false;
  82. } else if (!reg_tel.test(phone)) {
  83. createMessage.error('请正确填写您的手机号码!');
  84. return false;
  85. }
  86. let res = await checkUserAddAble({ phone });
  87. if (res.result == false) {
  88. addListFunc({ phone, memoName });
  89. closeModal();
  90. } else {
  91. createMessage.error('子账号已被该企业绑定');
  92. }
  93. };
  94. function handleVisibleChange(v) {
  95. v && props.userData && nextTick(() => onDataReceive(props.userData));
  96. }
  97. return {
  98. register,
  99. schemas,
  100. registerForm,
  101. model: modelRef,
  102. handleVisibleChange,
  103. handleSubmit,
  104. addListFunc,
  105. closeModal,
  106. };
  107. },
  108. });
  109. </script>