Преглед изворни кода

fix(#24891): 新增企业---- 增加操作成功

tangning пре 3 година
родитељ
комит
dfe09ec795

+ 1 - 1
src/locales/lang/ja/layout.ts

@@ -19,7 +19,7 @@ export default {
     lockScreenBtn: 'ロック',
 
     home: '首页',
-    personalSetting: '個人設定',
+    personalSetting: 'アカウントの設定',
   },
   multipleTab: {
     reload: 'リロード',

+ 3 - 0
src/locales/lang/ja/routes/devices.ts

@@ -1,7 +1,10 @@
 export default {
+  title: '员工账号',
+  listTile: '従業員アカウントリスト',
   deviceList: 'デバイスリスト',
   device: 'デバイス',
   addDevice: 'デバイスを追加',
+  addBut: '新規従業員アカウント',
   browserDevice: '機器を見る',
   address: '物理アドレス',
   balance: '初期点',

+ 1 - 1
src/locales/lang/ja/routes/personalSetting.ts

@@ -2,7 +2,7 @@ export default {
   basicSetting: '基本設定',
   account: '個人設定',
   accountSetting: 'アカウント設定',
-  updateBtn: '基本情報を更新する',
+  updateBtn: 'パスワードの変更',
   oldPassword: '以前のパスワード',
   newPassword: '新しいパスワード',
 };

+ 2 - 2
src/locales/lang/ja/routes/staff.ts

@@ -1,7 +1,7 @@
 export default {
   deptName: '関係会社',
-  userName: '従業員',
-  nickName: 'ニックネーム',
+  userName: '従業員メールボックス',
+  nickName: '従業員名',
   mobile: '携帯電話',
   createTime: '作成時間',
   staffList: '従業員リスト',

+ 1 - 1
src/locales/lang/zh-CN/layout.ts

@@ -19,7 +19,7 @@ export default {
     lockScreenBtn: '锁定',
 
     home: '首页',
-    personalSetting: '个人设置',
+    personalSetting: '账号设置',
   },
   multipleTab: {
     reload: '重新加载',

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

@@ -20,7 +20,7 @@ export default {
   floorLogo: '加载地面LOGO',
   bgMusic: '背景音乐',
   cameraNum: '设备数量',
-  subNum: '子账号数量',
+  subNum: '已添加员工数',
   sceneNum: '上传场景数',
   point: '余额',
   expirationTime: '到期时间',

+ 5 - 2
src/locales/lang/zh-CN/routes/devices.ts

@@ -1,4 +1,7 @@
 export default {
+  title: '员工账号',
+  addBut: '新增员工账号',
+  listTile: '员工账号列表',
   deviceList: '设备列表',
   device: '设备',
   addDevice: '新增设备',
@@ -41,9 +44,9 @@ export default {
   bindErr: '账号已被该企业绑定',
   excess: '账号数量已满!',
   unbindWarning: '确定要解绑该账号?',
-  addeduser: '已添加账号数',
+  addeduser: '已添加员工数',
   num: '设备数量',
-  subNum: '员工账号',
+  subNum: '可添加员工数',
 
   // normalSales: '正常销售',
   // normalSales: '正常销售',

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

@@ -2,7 +2,7 @@ export default {
   basicSetting: '基本设置',
   account: '个人设置',
   accountSetting: '账户设置',
-  updateBtn: '更新基本信息',
+  updateBtn: '修改密码',
   oldPassword: '旧密码',
   newPassword: '新密码',
 };

+ 2 - 2
src/locales/lang/zh-CN/routes/staff.ts

@@ -1,7 +1,7 @@
 export default {
   deptName: '所属公司',
-  userName: '员工名称',
-  nickName: '员工昵称',
+  userName: '员工邮箱',
+  nickName: '员工姓名',
   mobile: '手机',
   createTime: '创建时间',
   staffList: '员工列表',

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

@@ -81,14 +81,14 @@ export default {
     loginSuccessDesc: '欢迎回来',
 
     // placeholder
-    accountPlaceholder: '请输入账号',
+    accountPlaceholder: '请输入企业邮箱',
     passwordPlaceholder: '请输入密码',
     smsPlaceholder: '请输入验证码',
     mobilePlaceholder: '请输入手机号码',
     policyPlaceholder: '勾选后才能注册',
     diffPwd: '两次输入密码不一致',
 
-    userName: '账号',
+    userName: '企业邮箱',
     password: '密码',
     confirmPassword: '确认密码',
     email: '邮箱',

+ 11 - 1
src/views/corporation/AddModal.vue

@@ -29,6 +29,9 @@
       colProps: {
         span: 24,
       },
+      componentProps: {
+        maxLength: 25,
+      },
     },
     {
       field: 'managerPhone',
@@ -66,7 +69,7 @@
     props: {
       userData: { type: Object },
     },
-    emits: ['register', 'submit'],
+    emits: ['register', 'submit', 'tablelist'],
     setup(props, { emit }) {
       const modelRef = ref({});
       const { createMessage } = useMessage();
@@ -109,7 +112,14 @@
         // }
 
         const values = await validate();
+        let addTips = false;
+        emit('tablelist', (list) => {
+          addTips = list.some((ele) => ele.userName == values.managerPhone);
+        });
 
+        if (addTips) {
+          return createMessage.error('子账号已被该企业绑定');
+        }
         //TODO hack parameter
         let res = await checkUserAddAble({ phoneNum: values.managerPhone });
 

+ 21 - 12
src/views/corporation/SubaccountModal.vue

@@ -2,7 +2,7 @@
   <BasicModal
     v-bind="$attrs"
     @register="register"
-    title="子账号"
+    :title="t('routes.devices.title')"
     @ok="saveTable"
     width="600px"
     @visible-change="handleVisibleChange"
@@ -18,7 +18,7 @@
         <template #addeduser="{ model, field }">
           {{ model[field] || 0 }}
           <a-button @click="openTargetModal()" type="primary" preIcon="ic:outline-person-add">
-            新增子账号
+            {{ t('routes.devices.title') }}
           </a-button>
         </template>
       </BasicForm>
@@ -37,7 +37,7 @@
                 //   onClick: handleDelete.bind(null, record, 'edit'),
                 // },
                 {
-                  label: '解绑',
+                  label: t('common.unbind'),
                   icon: 'mdi:account-multiple-remove-outline',
                   onClick: handleDelete.bind(null, record, 'unbond'),
                 },
@@ -45,14 +45,14 @@
             />
           </template>
         </BasicTable>
-        <AddModal @register="registerModal" @submit="handleAddUser" />
+        <AddModal @tablelist="getTableList" @register="registerModal" @submit="handleAddUser" />
       </div>
     </div>
     <EditModal @register="registerEdit" />
   </BasicModal>
 </template>
 <script lang="ts">
-  import { defineComponent, reactive, nextTick } from 'vue';
+  import { defineComponent, reactive, nextTick, unref } from 'vue';
   import { BasicModal, useModalInner, useModal } from '/@/components/Modal';
   import { BasicTable, useTable, BasicColumn, TableAction } from '/@/components/Table';
   import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
@@ -159,10 +159,16 @@
 
       const [
         registerSubtable,
-        { reload: reloadSubtable, deleteTableDataRecord, getDataSource, insertTableDataRecord },
+        {
+          reload: reloadSubtable,
+          updateTableDataRecord,
+          deleteTableDataRecord,
+          getDataSource,
+          insertTableDataRecord,
+        },
       ] = useTable({
-        title: '子账户列表',
-        rowKey: 'id',
+        title: `${t('routes.devices.listTile')}`,
+        rowKey: 'userName',
         api: selectUserList,
         immediate: false,
         columns: columns,
@@ -225,9 +231,8 @@
         }
       }
 
-      async function beforeEditSubmit({ _, index, key, value }) {
-        myData.TableData[index][key] = value;
-        return true;
+      async function beforeEditSubmit({ record, _, key, value }) {
+        updateTableDataRecord(record.userName, { ...record, [key]: value });
       }
       function handleVisibleChange(v) {
         v && props.userData && nextTick(() => onDataReceive(props.userData));
@@ -253,7 +258,10 @@
       function addTabledata(val) {
         console.log('addTabledata', val);
       }
-
+      function getTableList(callback) {
+        let tableList = unref(getDataSource());
+        callback(tableList);
+      }
       function handleAddUser(newUser) {
         console.log('newUser', newUser);
         insertTableDataRecord({
@@ -285,6 +293,7 @@
         reloadSubtable,
         searchInfo,
         handleAddUser,
+        getTableList,
       };
     },
   });

+ 3 - 0
src/views/corporation/detailsModal.vue

@@ -107,6 +107,7 @@
           field: 'area',
           label: t('routes.corporation.area'),
           slot: 'text',
+          ifShow: false,
           component: 'Input',
         },
         {
@@ -119,6 +120,7 @@
           field: 'website',
           label: t('routes.corporation.website'),
           slot: 'text',
+          ifShow: false,
           component: 'Input',
         },
         {
@@ -137,6 +139,7 @@
           field: 'qualification',
           label: `${t('routes.corporation.qualification')} :`,
           slot: 'image',
+          ifShow: false,
           component: 'Input',
         },
       ];

+ 28 - 2
src/views/corporation/deviceModal.vue

@@ -15,19 +15,31 @@
         <template #name="{ model, field }">
           {{ model[field] }}
         </template>
+        <template #subNum="{ model, field }">
+          <div style="display: flex">
+            <InputNumber v-model:value="model[field]" />
+            <a-button
+              style="margin: 0 20px"
+              @click="changeModal(true)"
+              preIcon="ic:round-add-circle"
+            />
+            <a-button preIcon="ic:round-remove-circle-outline" @click="changeModal(false)" />
+          </div>
+        </template>
       </BasicForm>
     </div>
   </BasicModal>
 </template>
 <script lang="ts">
   import { defineComponent, ref, nextTick } from 'vue';
+  import { InputNumber } from 'ant-design-vue';
   import { BasicModal, useModalInner } from '/@/components/Modal';
   import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
   import { useMessage } from '/@/hooks/web/useMessage';
   import { AddDevice, checkDevice } from '/@/api/corporation/modal';
   import { useI18n } from '/@/hooks/web/useI18n';
   export default defineComponent({
-    components: { BasicModal, BasicForm },
+    components: { BasicModal, BasicForm, InputNumber },
     props: {
       userData: { type: Object },
     },
@@ -90,6 +102,7 @@
         {
           field: 'subNum',
           component: 'InputNumber',
+          slot: 'subNum',
           label: t('routes.corporation.cameraNum'),
           colProps: {
             span: 8,
@@ -122,7 +135,19 @@
           span: 24,
         },
       });
-
+      function changeModal(type) {
+        let { subNum } = getFieldsValue();
+        if (type) {
+          subNum = subNum + 1;
+        } else if (subNum !== 0) {
+          subNum = subNum - 1;
+        }
+        console.log('schemasList增 ', subNum);
+        setFieldsValue({
+          subNum,
+        });
+        numOnChange(subNum);
+      }
       async function submitModal() {
         let formData = {
           ...getFieldsValue(),
@@ -254,6 +279,7 @@
         errorMsg: error,
         handleCloseModal,
         t,
+        changeModal,
       };
     },
   });