瀏覽代碼

切换菜单到顶部,待完成国际化操作

Huanyi 1 周之前
父節點
當前提交
d1360272d8

+ 18 - 0
src/api/system/user/index.ts

@@ -110,6 +110,23 @@ export const changeUserStatus = (userId: number | string, status: string) => {
   });
 };
 
+/**
+ * 用户小程序状态修改
+ * @param userId 用户ID
+ * @param appletStatus 小程序状态
+ */
+export const changeUserAppletStatus = (userId: number | string, appletStatus: number) => {
+  const data = {
+    userId,
+    appletStatus
+  };
+  return request({
+    url: '/system/user/changeAppletStatus',
+    method: 'put',
+    data: data
+  });
+};
+
 /**
  * 查询用户个人信息
  */
@@ -218,6 +235,7 @@ export default {
   delUser,
   resetUserPwd,
   changeUserStatus,
+  changeUserAppletStatus,
   getUserProfile,
   updateUserProfile,
   updateUserPwd,

+ 1 - 0
src/api/system/user/types.ts

@@ -38,6 +38,7 @@ export interface UserVO extends BaseEntity {
   sex: string;
   avatar: string;
   status: string;
+  appletStatus: number;
   delFlag: string;
   loginIp: string;
   loginDate: string;

+ 5 - 0
src/lang/modules/system/user/en_US.ts

@@ -40,6 +40,7 @@ export default {
     deptName: 'Department',
     phonenumber: 'Phone Number',
     status: 'Status',
+    appletStatus: 'Applet Status',
     createTime: 'Create Time',
     operation: 'Operation'
   },
@@ -101,6 +102,10 @@ export default {
     statusDisable: 'Disable',
     statusChangeConfirm: 'Are you sure to "{text}" user "{userName}"?',
     statusChangeSuccess: '{text} successfully',
+    appletStatusEnable: 'Enable',
+    appletStatusDisable: 'Disable',
+    appletStatusChangeConfirm: 'Are you sure to {text} applet access for user "{userName}"?',
+    appletStatusChangeSuccess: '{text} successfully',
     resetPwdTitle: 'Prompt',
     resetPwdText: 'Please enter new password for "{userName}"',
     resetPwdSuccess: 'Modified successfully, new password is: {password}',

+ 5 - 0
src/lang/modules/system/user/zh_CN.ts

@@ -40,6 +40,7 @@ export default {
     deptName: '部门',
     phonenumber: '手机号码',
     status: '状态',
+    appletStatus: '小程序状态',
     createTime: '创建时间',
     operation: '操作'
   },
@@ -101,6 +102,10 @@ export default {
     statusDisable: '停用',
     statusChangeConfirm: '确认要"{text}""{userName}"用户吗?',
     statusChangeSuccess: '{text}成功',
+    appletStatusEnable: '启用',
+    appletStatusDisable: '禁用',
+    appletStatusChangeConfirm: '确认要{text}"{userName}"的小程序权限吗?',
+    appletStatusChangeSuccess: '{text}成功',
     resetPwdTitle: '提示',
     resetPwdText: '请输入"{userName}"的新密码',
     resetPwdSuccess: '修改成功,新密码是:{password}',

+ 3 - 3
src/layout/components/Navbar.vue

@@ -81,9 +81,9 @@
               <router-link v-if="!dynamic" to="/user/profile">
                 <el-dropdown-item>{{ proxy.$t('navbar.personalCenter') }}</el-dropdown-item>
               </router-link>
-<!--              <el-dropdown-item v-if="settingsStore.showSettings" command="setLayout">-->
-<!--                <span>{{ proxy.$t('navbar.layoutSetting') }}</span>-->
-<!--              </el-dropdown-item>-->
+              <el-dropdown-item v-if="settingsStore.showSettings" command="setLayout">
+                <span>{{ proxy.$t('navbar.layoutSetting') }}</span>
+              </el-dropdown-item>
               <el-dropdown-item divided command="logout">
                 <span>{{ proxy.$t('navbar.logout') }}</span>
               </el-dropdown-item>

+ 21 - 2
src/views/system/user/index.vue

@@ -108,7 +108,13 @@
               </template>
             </el-table-column>
 
-            <el-table-column v-if="columns[6].visible" :label="t('user.table.createTime')" align="center" prop="createTime" width="160">
+            <el-table-column v-if="columns[6].visible" key="appletStatus" :label="t('user.table.appletStatus')" align="center">
+              <template #default="scope">
+                <el-switch v-hasPermi="['system:user:edit']" v-model="scope.row.appletStatus" :active-value="0" :inactive-value="1" @change="handleAppletStatusChange(scope.row)"></el-switch>
+              </template>
+            </el-table-column>
+
+            <el-table-column v-if="columns[7].visible" :label="t('user.table.createTime')" align="center" prop="createTime" width="160">
               <template #default="scope">
                 <span>{{ scope.row.createTime }}</span>
               </template>
@@ -343,7 +349,8 @@ const columns = ref<FieldOption[]>([
   { key: 3, label: t('user.table.deptName'), visible: true, children: [] },
   { key: 4, label: t('user.table.phonenumber'), visible: true, children: [] },
   { key: 5, label: t('user.table.status'), visible: true, children: [] },
-  { key: 6, label: t('user.table.createTime'), visible: true, children: [] }
+  { key: 6, label: t('user.table.appletStatus'), visible: true, children: [] },
+  { key: 7, label: t('user.table.createTime'), visible: true, children: [] }
 ]);
 
 const deptTreeRef = ref<ElTreeInstance>();
@@ -512,6 +519,18 @@ const handleStatusChange = async (row: UserVO) => {
     row.status = row.status === '0' ? '1' : '0';
   }
 };
+
+/** 小程序状态修改  */
+const handleAppletStatusChange = async (row: UserVO) => {
+  const text = row.appletStatus === 0 ? t('user.message.appletStatusEnable') : t('user.message.appletStatusDisable');
+  try {
+    await proxy?.$modal.confirm(t('user.message.appletStatusChangeConfirm', { text, userName: row.userName }));
+    await api.changeUserAppletStatus(row.userId, row.appletStatus);
+    proxy?.$modal.msgSuccess(t('user.message.appletStatusChangeSuccess', { text }));
+  } catch (err) {
+    row.appletStatus = row.appletStatus === 0 ? 1 : 0;
+  }
+};
 /** 跳转角色分配 */
 const handleAuthRole = (row: UserVO) => {
   const userId = row.userId;