Skip to content

Commit 1ce8426

Browse files
committed
fix: Admin user filterList
1 parent 0794856 commit 1ce8426

File tree

5 files changed

+63
-11
lines changed

5 files changed

+63
-11
lines changed

src/locales/zh/user.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"Normal Role Title Count": "终端角色({{count}})",
1919
"Operation list": "操作列表",
2020
"Edit info": "编辑信息",
21+
"Change password successful": "修改密码成功",
2122
"isv": "应用服务商",
2223
"user": "用户",
2324
"Set permission": "设置权限",
@@ -33,6 +34,8 @@
3334
"Selected": "所选",
3435
"of setting": "的设置",
3536
"ISV": "应用服务商",
37+
"Activation": "激活",
38+
"Not activation": "非激活",
3639
"Parent group groupName": "上一级组织名:{{groupName}}",
3740
"Create role success": "角色创建成功",
3841
"Create_Role_Success_Tip": "新角色默认是停用状态,请完成权限设置后再启用。",

src/portals/admin/pages/Users/ModalActions/index.jsx

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ import { Input, Select } from 'components/Base';
77
import { Dialog } from 'components/Layout';
88
import EnhanceTable from 'components/EnhanceTable';
99

10-
import columns from '../columns';
10+
import columns, { filterList } from '../columns';
11+
1112
import styles from '../index.scss';
1213

1314
const emailRegexp = '^[A-Za-z0-9._%-]+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}$';
@@ -106,7 +107,8 @@ export default class UserModalActions extends Component {
106107
isLoading={groupStore.isLoading}
107108
store={groupStore}
108109
data={users}
109-
columns={columns(t)}
110+
columns={columns()}
111+
filterList={filterList(groupStore)}
110112
/>
111113
</Dialog>
112114
);
@@ -151,7 +153,7 @@ export default class UserModalActions extends Component {
151153
const { userStore, modalStore, t } = this.props;
152154
const { isOpen, hide, item } = modalStore;
153155
const { setRole, roles, userNames } = userStore;
154-
const roleId = _.get(item, 'role');
156+
const roleId = _.get(item, 'role[0].role_id', '');
155157
const userId = _.get(item, 'user_id') || userStore.selectIds.join(',');
156158
const names = userId ? item.username : userNames;
157159
const text = userId
@@ -209,6 +211,7 @@ export default class UserModalActions extends Component {
209211
defaultValue={username}
210212
required
211213
/>
214+
<Input name="user_id" type="hidden" defaultValue={user_id} />
212215
</div>
213216
)}
214217
<div className={styles.formItem}>
@@ -248,6 +251,28 @@ export default class UserModalActions extends Component {
248251
);
249252
}
250253

254+
renderModalResetPassword() {
255+
const { t, modalStore, userStore } = this.props;
256+
const { hide, isOpen, item } = modalStore;
257+
const { changePwd } = userStore;
258+
259+
return (
260+
<Dialog
261+
title={t('Change Password')}
262+
visible={isOpen}
263+
width={744}
264+
onSubmit={changePwd}
265+
onCancel={hide}
266+
>
267+
<div className={styles.formItem}>
268+
<label>{t('Password')}</label>
269+
<Input name="user_id" type="hidden" defaultValue={item.user_id} />
270+
<Input name="password" type="password" maxLength={50} />
271+
</div>
272+
</Dialog>
273+
);
274+
}
275+
251276
renderModalDeleteUser() {
252277
const { t, modalStore, userStore } = this.props;
253278
const { hide, isOpen, item } = modalStore;

src/portals/admin/pages/Users/columns.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ import _ from 'lodash';
55
import Status from 'components/Status';
66
import TimeShow from 'components/TimeShow';
77
import LessText from 'components/LessText';
8+
import { t } from 'i18next';
89

9-
export default (t, renderHandleMenu) => {
10+
export default renderHandleMenu => {
1011
const columns = [
1112
{
1213
title: t('Status'),
@@ -57,3 +58,15 @@ export default (t, renderHandleMenu) => {
5758

5859
return columns;
5960
};
61+
62+
export const filterList = store => [
63+
{
64+
key: 'status',
65+
conditions: [
66+
{ name: t('Activation'), value: 'active' },
67+
{ name: t('Not activation'), value: 'deleted' }
68+
],
69+
onChangeFilter: store.onChangeStatus,
70+
selectValue: store.selectStatus
71+
}
72+
];

src/portals/admin/pages/Users/index.jsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import Layout, {
1515
import EnhanceTable from 'components/EnhanceTable';
1616
import Toolbar from 'components/Toolbar';
1717
import ModalActions from './ModalActions';
18-
import columns from './columns';
18+
import columns, { filterList } from './columns';
1919

2020
import styles from './index.scss';
2121

@@ -148,6 +148,9 @@ export default class Users extends Component {
148148
{_.isArray(group_id) && (
149149
<span onClick={() => leaveGroupOnce(user)}>{t('Leave group')}</span>
150150
)}
151+
<span onClick={() => modalStore.show('renderModalResetPassword', user)}>
152+
{t('Change Password')}
153+
</span>
151154
<span
152155
onClick={() => modalStore.show(
153156
'renderModalDeleteUser',
@@ -276,7 +279,8 @@ export default class Users extends Component {
276279
isLoading={userStore.isLoading}
277280
store={userStore}
278281
data={userStore.users}
279-
columns={columns(t, this.renderUserHandleMenu)}
282+
columns={columns(this.renderUserHandleMenu)}
283+
filterList={filterList(userStore)}
280284
/>
281285
</Card>
282286
</Section>

src/stores/user/index.js

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -178,17 +178,15 @@ export default class UserStore extends Store {
178178
if (!params.email) {
179179
return this.error('Empty email');
180180
}
181-
if (!params.role) {
182-
return this.error('Empty role');
183-
}
184-
185181
if (params.user_id) {
186182
if (!params.password) {
187183
delete params.password;
188184
}
189185
await this.modify(params);
190186
} else {
191-
// create user
187+
if (!params.role) {
188+
return this.error('Empty role');
189+
}
192190
if (!params.password) {
193191
return this.error('Empty password');
194192
}
@@ -238,6 +236,15 @@ export default class UserStore extends Store {
238236
return result;
239237
};
240238

239+
@action
240+
changePwd = async (e, data) => {
241+
const result = await this.changePassword(data);
242+
if (_.get(result, 'user_id')) {
243+
this.success('Change password successful');
244+
this.modal.hide();
245+
}
246+
};
247+
241248
@action
242249
remove = async () => {
243250
const result = await this.request.delete('users', {

0 commit comments

Comments
 (0)