wupengfei
5 天以前 7faf1532a00bb886860ea5150cf80939b0b69f81
src/views/UserManage/UserManageList.vue
@@ -22,9 +22,23 @@
        :columns="UserManageColumns"
        :operationBtns="operationBtns"
      >
        <template #status="{ row }">
          <FieldSwitch
            v-model="row.status"
            active-text="启用"
            :active-value="EnumUserStatus.Normal"
            inactive-text="禁用"
            :inactive-value="EnumUserStatus.Disabled"
            :before-change="() => setUserInfoStatus(row)"
          />
        </template>
      </ProTableV2>
    </AppContainer>
    <AddOrEditUserDialog v-bind="dialogProps" />
    <ResetPasswordDialog v-bind="resetPasswordDialogProps"></ResetPasswordDialog>
    <ResetOperatorPasswordDialog
      v-bind="resetOperatorPasswordDialogProps"
    ></ResetOperatorPasswordDialog>
  </LoadingLayout>
</template>
@@ -39,13 +53,16 @@
  useTable,
  useFormDialog,
  defineOperationBtns,
  FieldSwitch,
} from '@bole-core/components';
import * as userServices from '@/services/api/user';
import { UserManageColumns } from './constants';
import { EnumUserStatusText } from '@/constants';
import { EnumUserStatus, EnumUserStatusText } from '@/constants';
import { ModelValueType } from 'element-plus';
import { Message } from '@bole-core/core';
import AddOrEditUserDialog from './components/AddOrEditUserDialog.vue';
import ResetPasswordDialog from './components/ResetPasswordDialog.vue';
import ResetOperatorPasswordDialog from './components/ResetOperatorPasswordDialog.vue';
defineOptions({
  name: 'UserManageList',
@@ -59,6 +76,30 @@
    },
    emits: {
      onClick: (role) => openDialog(role),
    },
  },
  {
    data: {
      enCode: 'resetPasswordBtn',
      name: '重置密码',
    },
    props: {
      type: 'danger',
    },
    emits: {
      onClick: (role) => openResetPasswordDialog(role),
    },
  },
  {
    data: {
      enCode: 'resetOperatorPasswordBtn',
      name: '重置操作密码',
    },
    props: {
      type: 'danger',
    },
    emits: {
      onClick: (role) => openResetOperatorPasswordDialog(role),
    },
  },
]);
@@ -111,7 +152,7 @@
        formatter: (role: API.GetOperationUserInfosQueryResultItem) =>
          role.roles?.length > 0 ? role.roles.map((x) => x.name).join(',') : '',
      },
      status: { type: 'enum', valueEnum: EnumUserStatusText },
      // status: { type: 'enum', valueEnum: EnumUserStatusText },
    },
  }
);
@@ -124,8 +165,10 @@
    userName: '',
    phoneNumber: '',
    remark: '',
    status: '' as any as EnumUserStatus,
    roleIds: [] as string[],
    password: '',
    operatorPassword: '',
  },
});
@@ -138,7 +181,9 @@
      phoneNumber: row.phoneNumber,
      remark: row.remark,
      roleIds: row.roles?.map((x) => x.id) ?? [],
      status: row.status,
      password: '',
      operatorPassword: '',
    });
  } else {
    handleAdd();
@@ -152,10 +197,14 @@
      name: editForm.name,
      userName: editForm.userName,
      phoneNumber: editForm.phoneNumber,
      password: editForm.password,
      roleIds: editForm.roleIds,
      remark: editForm.remark,
      status: editForm.status ? editForm.status : EnumUserStatus.Normal,
    };
    if (!editForm.id) {
      params.password = editForm.password;
      params.operatorPassword = editForm.operatorPassword;
    }
    if (editForm.id) {
      params.id = editForm.id;
    }
@@ -167,4 +216,87 @@
    }
  } catch (error) {}
}
const {
  dialogProps: resetOperatorPasswordDialogProps,
  handleAdd: handleResetOperatorPasswordAdd,
  editForm: resetOperatorPasswordEditForm,
} = useFormDialog({
  onConfirm: resetOperatorPassword,
  defaultFormParams: {
    ids: '',
    operatorPassword: '',
  },
});
function openResetOperatorPasswordDialog(row: API.GetOperationUserInfosQueryResultItem) {
  handleResetOperatorPasswordAdd({
    ids: row.id,
    operatorPassword: '',
  });
}
async function resetOperatorPassword() {
  try {
    let params: API.ResetUserOperatorPasswordsCommand = {
      ids: [resetOperatorPasswordEditForm.ids],
      operatorPassword: resetOperatorPasswordEditForm.operatorPassword,
    };
    let res = await userServices.resetUserOperatorPasswords(params);
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
    }
  } catch (error) {}
}
const {
  dialogProps: resetPasswordDialogProps,
  handleAdd: handleResetPasswordAdd,
  editForm: resetPasswordEditForm,
} = useFormDialog({
  onConfirm: resetPassword,
  defaultFormParams: {
    ids: '',
    password: '',
  },
});
function openResetPasswordDialog(row: API.GetOperationUserInfosQueryResultItem) {
  handleResetPasswordAdd({
    ids: row.id,
    password: '',
  });
}
async function setUserInfoStatus(row: API.GetOperationUserInfosQueryResultItem) {
  try {
    await Message.tipMessage(
      `确认要${row.status === EnumUserStatus.Normal ? '禁用' : '启用'}该用户吗?`
    );
    const res = await userServices.setUserInfoStatus({
      ids: [row.id],
      status:
        row.status === EnumUserStatus.Normal ? EnumUserStatus.Disabled : EnumUserStatus.Normal,
    });
    if (res) {
      getList(paginationState.pageIndex);
      Message.successMessage(`操作成功`);
      return !!res;
    }
  } catch (error) {}
}
async function resetPassword() {
  try {
    let params: API.ResetUserPasswordsCommand = {
      ids: [resetPasswordEditForm.ids],
      password: resetPasswordEditForm.password,
    };
    let res = await userServices.resetUserPasswords(params);
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
    }
  } catch (error) {}
}
</script>