Browse Source

feat(api): update api 13

gemercheung 3 years ago
parent
commit
9478457069

+ 1 - 0
src/locales/lang/ja/routes/corporation.ts

@@ -26,6 +26,7 @@ export default {
   expirationTime: '有効期限',
   detailed: '詳細',
   modifySubId: 'サブアカウントの変更',
+  addSubId: '新增子账号',
   activeTime: 'アクティベーション時間',
   unBind: '解放する',
   isUnBind: 'バインドを解除するかどうか?',

+ 2 - 0
src/locales/lang/ja/sys.ts

@@ -110,5 +110,7 @@ export default {
     registrationLabel: '免费注册?',
     corporationName: '企业账号',
     corporationMail: '企业邮箱',
+    fillMail: '请填写您的邮箱!',
+    fillMailCorrect: '请正确填写您的邮箱!',
   },
 };

+ 1 - 0
src/locales/lang/zh-CN/routes/corporation.ts

@@ -26,6 +26,7 @@ export default {
   expirationTime: '到期时间',
   detailed: '详细信息',
   modifySubId: '修改子账号',
+  addSubId: '新增子账号',
   activeTime: '激活时间',
   unBind: '解除绑定',
   isUnBind: '是否解除绑定?',

+ 2 - 0
src/locales/lang/zh-CN/sys.ts

@@ -102,5 +102,7 @@ export default {
     registrationLabel: '免费注册?',
     corporationName: '企业账号',
     corporationMail: '企业邮箱',
+    fillMail: '请填写您的邮箱!',
+    fillMailCorrect: '请正确填写您的邮箱!',
   },
 };

+ 26 - 19
src/views/corporation/AddModal.vue

@@ -2,9 +2,10 @@
   <BasicModal
     v-bind="$attrs"
     @register="register"
-    title="新增子账号"
+    :title="t('routes.corporation.addSubId')"
     @visible-change="handleVisibleChange"
     @ok="handleSubmit"
+    @close="nextTick(resetFields)"
   >
     <div class="pt-2px pr-3px">
       <BasicForm @register="registerForm" :model="model" />
@@ -17,34 +18,38 @@
   import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
   import { useMessage } from '/@/hooks/web/useMessage';
   import { checkUserAddAble } from '/@/api/corporation/modal';
+  import { useI18n } from '/@/hooks/web/useI18n';
+
+  const { t } = useI18n();
   const schemas: FormSchema[] = [
     {
       field: 'companyName',
       component: 'Input',
-      label: '姓名',
+      label: t('sys.login.corporationName'),
       colProps: {
         span: 24,
       },
     },
     {
-      field: 'phone',
+      field: 'managerPhone',
       component: 'Input',
-      label: '手机号',
+      label: t('sys.login.corporationMail'),
       rules: [
         {
           required: true,
           // @ts-ignore
           validator: async (rule, value) => {
-            var reg_tel =
-              /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
+            // var reg_tel =
+            //   /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
+            var reg = /\S+@\S+\.\S+/;
             if (!value) {
               /* eslint-disable-next-line */
 
-              return Promise.reject('请填写您的手机号码!');
+              return Promise.reject(t('sys.login.fillMail'));
             }
-            if (!reg_tel.test(value)) {
+            if (!reg.test(value)) {
               /* eslint-disable-next-line */
-              return Promise.reject('请正确填写您的手机号码!');
+              return Promise.reject(t('sys.login.fillMailCorrect'));
             }
             return Promise.resolve();
           },
@@ -61,7 +66,7 @@
     props: {
       userData: { type: Object },
     },
-    emits: ['register', 'update'],
+    emits: ['register', 'submit'],
     setup(props, { emit }) {
       const modelRef = ref({});
       const { createMessage } = useMessage();
@@ -71,6 +76,7 @@
           // getFieldsValue,
           // setFieldsValue,
           // setProps
+          resetFields,
           validate,
         },
       ] = useForm({
@@ -88,11 +94,6 @@
 
       function onDataReceive(data) {
         console.log('Data Received', data);
-        const { addList } = data;
-        if (typeof addList === 'function') {
-          //是函数    其中 FunName 为函数名称
-          addListFunc = addList;
-        }
       }
       const handleSubmit = async () => {
         // console.log('getFieldsValue()', getFieldsValue());
@@ -108,14 +109,17 @@
         // }
 
         const values = await validate();
-        console.log('values', values);
 
         //TODO hack parameter
-        let res = await checkUserAddAble({ phoneNum: values.phone });
-        console.log('res', res);
+        let res = await checkUserAddAble({ phoneNum: values.managerPhone });
+
         if (!res.data) {
           // addListFunc({ phone: values.phone, companyName: values.companyName });
-          emit('update');
+          emit('submit', {
+            managerPhone: values.managerPhone,
+            companyName: values.companyName,
+          });
+          resetFields();
           closeModal();
         } else {
           createMessage.error('子账号已被该企业绑定');
@@ -126,6 +130,7 @@
       }
 
       return {
+        t,
         register,
         schemas,
         registerForm,
@@ -134,6 +139,8 @@
         handleSubmit,
         addListFunc,
         closeModal,
+        resetFields,
+        // nextTick,
       };
     },
   });

+ 3 - 3
src/views/corporation/EditModal.vue

@@ -4,7 +4,7 @@
     @register="register"
     :title="t('routes.corporation.modifySubId')"
     @visible-change="handleVisibleChange"
-    @ok="submitMolad"
+    @ok="submitModal"
   >
     <div class="pt-3px pr-3px">
       <BasicForm @register="registerForm" :model="model" />
@@ -55,7 +55,7 @@
       const [register] = useModalInner((data) => {
         data && onDataReceive(data);
       });
-      function submitMolad() {
+      function submitModal() {
         console.log('handleSubmit', getFieldsValue());
       }
       function onDataReceive(data) {
@@ -72,7 +72,7 @@
 
       return {
         register,
-        submitMolad,
+        submitModal,
         schemas,
         registerForm,
         model: modelRef,

+ 73 - 112
src/views/corporation/SubaccountModal.vue

@@ -8,15 +8,15 @@
     @visible-change="handleVisibleChange"
   >
     <div class="pt-3px pr-3px">
-      <BasicForm @register="registerForm" :model="modelRef">
+      <BasicForm @register="registerForm">
         <template #userName="{ model, field }">
           {{ model[field] }}
         </template>
         <template #name="{ model, field }">
           {{ model[field] }}
         </template>
-        <template #addeduser>
-          {{ myData.pagination.total || 0 }}
+        <template #addeduser="{ model, field }">
+          {{ model[field] || 0 }}
           <a-button @click="openTargetModal()" type="primary" preIcon="ic:outline-person-add">
             新增子账号
           </a-button>
@@ -24,16 +24,9 @@
       </BasicForm>
       <div class="table_list">
         <BasicTable
-          title="子账户列表"
-          ref="tableRef"
-          rowKey="id"
-          :columns="columns"
-          :showIndexColumn="false"
-          :dataSource="myData.TableData"
-          :bordered="true"
-          :pagination="false"
           @register="registerSubtable"
           :beforeEditSubmit="beforeEditSubmit"
+          :searchInfo="searchInfo"
         >
           <template #action="{ record }">
             <TableAction
@@ -52,38 +45,21 @@
             />
           </template>
         </BasicTable>
-        <AddModal @register="register4" @addtable="addTabledata" @update="reloadSubtable" />
+        <AddModal @register="registerModal" @submit="handleAddUser" />
       </div>
     </div>
     <EditModal @register="registerEdit" />
   </BasicModal>
 </template>
 <script lang="ts">
-  import {
-    defineComponent,
-    ref,
-    reactive,
-    nextTick,
-    onMounted,
-    unref,
-    ComponentOptions,
-    shallowRef,
-    computed,
-    // inject,
-  } from 'vue';
+  import { defineComponent, reactive, nextTick } from 'vue';
   import { BasicModal, useModalInner, useModal } from '/@/components/Modal';
-  import {
-    BasicTable,
-    useTable,
-    BasicColumn,
-    TableAction,
-    TableActionType,
-  } from '/@/components/Table';
+  import { BasicTable, useTable, BasicColumn, TableAction } from '/@/components/Table';
   import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
   import { selectUserList, saveSubUsers } from '/@/api/corporation/modal';
   import { useMessage } from '/@/hooks/web/useMessage';
   import EditModal from './EditModal.vue';
-  import { tableState } from './types/hooks';
+  // import { tableState } from './types/hooks';
   import AddModal from './AddModal.vue';
   import { useI18n } from '/@/hooks/web/useI18n';
   export default defineComponent({
@@ -95,37 +71,17 @@
     setup(props, { emit }) {
       const { t } = useI18n();
       const { createConfirm, createMessage } = useMessage();
-      const currentModal = shallowRef<Nullable<ComponentOptions>>(null);
-      const tableRef = ref<Nullable<TableActionType>>(null);
-      const [register4, { openModal: addopenModal }] = useModal();
-      const [registerSubtable, { reloadSubtable }] = useTable();
-      const modelRef = ref({});
-      // const reload = inject('tablereload');
-      // const editList = ref({
-      //   list:[]
-      // })
-      const myData = reactive<tableState>({
-        TableData: [],
-        subNum: null,
-        id: null,
-        pagination: {
-          total: 0,
-          pageSize: 9999,
-          current: 1,
-        },
+
+      const [registerModal, { openModal: addopenModal }] = useModal();
+
+      const modelRef = reactive({
+        id: 0,
+        subNum: 0,
       });
-      const getPagination = computed(() => {
-        const { total, pageSize, current } = myData.pagination;
-        return {
-          total: total,
-          pageSize,
-          //size: 'small',
-          current: unref(current),
-          onChange(page) {
-            myData.pagination.current = page;
-            getApiList();
-          },
-        };
+      const searchInfo = reactive({
+        limit: 9999,
+        id: 0,
+        page: 1,
       });
       const columns: BasicColumn[] = [
         {
@@ -200,26 +156,51 @@
           span: 24,
         },
       });
+
+      const [
+        registerSubtable,
+        { reload: reloadSubtable, deleteTableDataRecord, getDataSource, insertTableDataRecord },
+      ] = useTable({
+        title: '子账户列表',
+        rowKey: 'id',
+        api: selectUserList,
+        immediate: false,
+        columns: columns,
+        showIndexColumn: false,
+        bordered: true,
+        pagination: false,
+      });
+
       const [registerEdit, { openModal: EditModal }] = useModal();
       const [register, { closeModal }] = useModalInner((data) => {
         data && onDataReceive(data);
       });
 
-      function onDataReceive(data) {
+      async function onDataReceive(data) {
         console.log('Data Received', data.record);
         // 方式1;
-        let { id, subNum } = data.record;
+        const { id, subNum } = data.record;
         resetFields();
         setFieldsValue({
           ...data.record,
         });
-        myData.id = id;
-        myData.subNum = subNum;
-        getApiList();
+        modelRef.id = id;
+        modelRef.subNum = subNum;
+
+        searchInfo.id = id;
+        await reloadSubtable();
+
+        const total = getDataSource();
+        console.log('total', total);
+        setFieldsValue({
+          addeduser: total?.length || 0,
+        });
       }
-      function numOnChange(event) {
-        myData.subNum = event;
-        console.log('numOnChange', event);
+      function numOnChange(data) {
+        console.log('data', data);
+        modelRef.subNum = data;
+        // myData.subNum = event;
+        // console.log('numOnChange', event);
       }
       async function handleDelete(item, type) {
         console.log('handleDelete', item, type);
@@ -237,27 +218,13 @@
             title: '提示',
             content: t('routes.devices.unbindWarning'),
             onOk: async () => {
-              tableRef.value.deleteTableDataRecord(item.id);
+              // tableRef.value.deleteTableDataRecord(item.id);
+              deleteTableDataRecord(item.id);
             },
           });
         }
       }
-      function pageChange(page, d, a) {
-        console.log('pageChange', page, d, a);
-        myData.pagination.current = page;
-        getApiList();
-      }
-      async function getApiList() {
-        const { current, pageSize } = myData.pagination;
-        let res = await selectUserList({
-          id: myData.id,
-          page: current || 1,
-          limit: pageSize || 10,
-        });
-        myData.TableData = res.list || [];
-        myData.pagination.total = res.totalCount || 0;
-        console.log('selectUserList', res, myData);
-      }
+
       async function beforeEditSubmit({ _, index, key, value }) {
         myData.TableData[index][key] = value;
         return true;
@@ -267,23 +234,14 @@
       }
       function openTargetModal() {
         console.log('openTargetModal');
-        addopenModal(true, {
-          addList: (val) => {
-            console.log('addList', val, myData.subNum > myData.pagination.total);
-            if (myData.subNum > myData.pagination.total) {
-              myData.TableData.push(val);
-              console.log('addList', val, myData.TableData);
-            } else {
-              createMessage.error(t('routes.devices.excess'));
-            }
-          },
-        });
+        addopenModal(true);
       }
       async function saveTable() {
-        let tableData = tableRef.value.getDataSource() || [];
+        // let tableData = tableRef.value.getDataSource() || [];
+        let tableData = getDataSource();
         let res = await saveSubUsers({
-          id: myData.id,
-          subNum: myData.subNum,
+          id: modelRef.id,
+          subNum: modelRef.subNum,
           subUsers: tableData,
         });
         console.log('saveTable', res);
@@ -295,28 +253,29 @@
       function addTabledata(val) {
         console.log('addTabledata', val);
       }
-      onMounted(async () => {
-        myData.id && getApiList();
-      });
+
+      function handleAddUser(newUser) {
+        console.log('newUser', newUser);
+        insertTableDataRecord({
+          userName: newUser.managerPhone,
+          nickName: newUser.companyName,
+        });
+      }
       return {
-        tableRef,
         register,
         handleDelete,
         registerEdit,
         numOnChange,
-        getApiList,
-        pageChange,
-        myData,
-        getPagination,
+        modelRef,
         schemas,
         columns,
         registerForm,
-        modelRef,
+
         handleVisibleChange,
         beforeEditSubmit,
-        register4,
+        registerModal,
         openTargetModal,
-        currentModal,
+
         addopenModal,
         saveTable,
         closeModal,
@@ -324,6 +283,8 @@
         t,
         registerSubtable,
         reloadSubtable,
+        searchInfo,
+        handleAddUser,
       };
     },
   });

+ 11 - 11
src/views/corporation/detailsModal.vue

@@ -82,21 +82,21 @@
         }
       };
       const schemas: FormSchema[] = [
+        // {
+        //   field: 'name',
+        //   label: t('routes.corporation.name'),
+        //   slot: 'text',
+        //   component: 'Input',
+        // },
         {
-          field: 'name',
-          label: t('routes.corporation.name'),
+          field: 'companyName',
+          label: t('sys.login.corporationName'),
           slot: 'text',
           component: 'Input',
         },
         {
-          field: 'contacts',
-          label: '联系人',
-          slot: 'text',
-          component: 'Input',
-        },
-        {
-          field: 'phone',
-          label: t('routes.corporation.phone'),
+          field: 'managerPhone',
+          label: t('sys.login.corporationMail'),
           slot: 'text',
           component: 'Input',
         },
@@ -121,7 +121,7 @@
         {
           field: 'introduce',
           label: `${t('routes.corporation.introduce')} :`,
-          slot: 'name',
+          slot: 'text',
           component: 'Input',
         },
         {

+ 2 - 2
src/views/corporation/verify.vue

@@ -62,8 +62,8 @@
           width: 230,
         },
         {
-          title: t('routes.corporation.phone'),
-          dataIndex: 'userName',
+          title: t('sys.login.corporationMail'),
+          dataIndex: 'managerPhone',
           width: 120,
         },
         {