fix update user

parent 5d62be61
......@@ -27,7 +27,7 @@ export type UserObject = {
mobileNumber: null | string;
sex: number;
address: null | string;
unit: null | number;
unit: null | string;
status: number;
isAdmin: null | number;
createTime: null | string;
......
import { defineComponent } from 'vue';
import { defineComponent, PropType } from 'vue';
import { i18n } from 'src/boot/i18n';
import { isEmail } from '../../../boot/functions';
import { isMobilePhone } from '../../../boot/functions';
import { GroupInfoType } from 'src/pages/nhom-nguoi-dung/UserGroup';
export default defineComponent({
props: {
......@@ -20,7 +21,7 @@ export default defineComponent({
sex: { type: Number, required: true },
sexOptions: { type: Array, required: true },
birthday: { type: String, required: true },
group: { type: Array, required: true },
group: { type: Array as PropType<GroupInfoType[]>, required: true },
listGroup: { type: Array, required: true },
scheduleAccess: { type: String, required: true },
listScheduleAccess: { type: Array, required: true },
......
......@@ -144,24 +144,15 @@
:rules="groupRules"
hide-bottom-space
></q-select>
<!-- <q-select
:model-value="scheduleAccess"
@update:model-value="$emit('update:scheduleAccess', $event)"
:label="$t('userPage.dialogLabel.fieldLabels.scheduleAccess')"
:options="listScheduleAccess"
outlined
></q-select> -->
</div>
<q-space></q-space>
<div class="col-6">
<span class="text-body1">{{
$t('userPage.dialogLabel.fieldLabels.status')
}}</span
><q-toggle
:model-value="status"
@update:model-value="$emit('update:status', $event)"
/>
<div class="q-ml-md q-mt-md">
<span class="text-body1">{{
$t('userPage.dialogLabel.fieldLabels.status')
}}</span
><q-toggle
:model-value="status"
@update:model-value="$emit('update:status', $event)"
/>
</div>
</div>
</div>
</q-card-section>
......
import { defineComponent } from 'vue';
import { defineComponent, PropType } from 'vue';
import { i18n } from 'src/boot/i18n';
import { isEmail } from '../../../boot/functions';
import { isMobilePhone } from '../../../boot/functions';
import { GroupInfoType } from 'src/pages/nhom-nguoi-dung/UserGroup';
export default defineComponent({
props: {
......@@ -18,7 +19,7 @@ export default defineComponent({
sex: { type: Number, required: true },
sexOptions: { type: Array, required: true },
birthday: { type: String, required: true },
group: { type: Array, required: true },
group: { type: Array as PropType<GroupInfoType[]>, required: true },
listGroup: { type: Array, required: true },
scheduleAccess: { type: String, required: true },
listScheduleAccess: { type: Array, required: true },
......@@ -50,11 +51,6 @@ export default defineComponent({
(val && val.trim().length) ||
i18n.global.t('userPage.validateMessages.requireBirthday'),
];
const addressRules = [
(val?: string) =>
(val && val.trim().length) ||
i18n.global.t('userPage.validateMessages.requireAddress'),
];
const unitRules = [
(val?: string) =>
(val && val.trim().length) ||
......@@ -66,14 +62,13 @@ export default defineComponent({
i18n.global.t('userPage.validateMessages.requireSex'),
];
const groupRules = [
(val?: Array<unknown>) =>
(val?: Array<GroupInfoType>) =>
val?.length || i18n.global.t('userPage.validateMessages.requiredGroup'),
];
return {
fullNameRules,
emailRules,
mobileNumberRules,
addressRules,
unitRules,
sexRules,
groupRules,
......
......@@ -93,6 +93,7 @@
:rules="sexRules"
hide-bottom-space
></q-select>
<q-input
:model-value="birthday"
@update:model-value="$emit('update:birthday', $event)"
......@@ -116,32 +117,22 @@
:options="listGroup"
option-value="id"
option-label="groupName"
multiple
use-input
use-chips
map-options
emit-value
multiple
:rules="groupRules"
hide-bottom-space
></q-select>
<!-- <q-select
:model-value="scheduleAccess"
@update:model-value="$emit('update:scheduleAccess', $event)"
:label="$t('userPage.dialogLabel.fieldLabels.scheduleAccess')"
:options="listScheduleAccess"
outlined
></q-select> -->
</div>
<q-space></q-space>
<div class="col-6">
<span class="text-body1">{{
$t('userPage.dialogLabel.fieldLabels.status')
}}</span
><q-toggle
:model-value="status"
@update:model-value="$emit('update:status', $event)"
/>
<div class="q-ml-sm q-mt-md">
<span class="text-body1">{{
$t('userPage.dialogLabel.fieldLabels.status')
}}</span
><q-toggle
:model-value="status"
@update:model-value="$emit('update:status', $event)"
/>
</div>
</div>
</div>
</q-card-section>
......
......@@ -11,7 +11,7 @@ import AddNewUserDialogComponent from '../../components/user-management/add-new-
import UpdateUserDialogComponent from '../../components/user-management/update-user-dialog/index.vue';
import { GroupInfoType } from '../nhom-nguoi-dung/UserGroup';
import Pagination from 'components/pagination/index.vue';
// import moment from 'moment';
import moment from 'moment';
export default defineComponent({
components: {
......@@ -107,10 +107,10 @@ export default defineComponent({
{ id: 2, text: 'Nữ' },
]);
const address: Ref<string | undefined> = ref();
const unit: Ref<number | undefined> = ref();
const unit: Ref<string | null> = ref(null);
const status: Ref<boolean | number> = ref(true);
const listGroup: Ref<{ id: number; groupName: string }[]> = ref([]);
const group: Ref<number[]> = ref([]);
const group: Ref<GroupInfoType[]> = ref([]);
const scheduleAccess = ref('Chưa có lịch truy cập');
const listScheduleAccess = ref(['Chưa có lịch truy cập']);
const $store = useStore();
......@@ -163,7 +163,7 @@ export default defineComponent({
mobileNumber.value = '';
sex.value = undefined;
address.value = '';
unit.value = undefined;
unit.value = null;
status.value = true;
group.value = [];
};
......@@ -188,7 +188,7 @@ export default defineComponent({
mobileNumber: mobileNumber.value.trim(),
sex: sex.value,
address: address.value?.trim(),
unit: unit.value,
unit: unit.value?.trim(),
status: status.value ? 1 : 0,
},
groups: groups,
......@@ -305,21 +305,23 @@ export default defineComponent({
if (response.data.error.code === config.API_RES_CODE.OK.code) {
console.log(response.data.data);
const userInfo = response.data.data.user;
const groupInfo = response.data.data.groups;
// const groupInfo = response.data.data.groups;
group.value = response.data.data.groups;
address.value = userInfo.address as string;
id.value = userInfo.id;
birthday.value = userInfo.birthday as string;
// birthday.value = moment(userInfo.birthday).format('YYYY-MM-DD') as string;
birthday.value = moment(
userInfo.birthday,
'DD/MM/YYYY HH:mm:ss'
).format('YYYY-MM-DD');
email.value = userInfo.email as string;
fullName.value = userInfo.fullName as string;
mobileNumber.value = userInfo.mobileNumber as string;
phoneNumber.value = userInfo.phoneNumber as string;
sex.value = userInfo.sex;
status.value = userInfo.status ? true : false;
unit.value = userInfo.unit as number;
unit.value = userInfo.unit;
userName.value = userInfo.userName;
groupInfo.map((item) => {
group.value.push(item.id);
});
}
} catch (error) {}
};
......@@ -327,10 +329,6 @@ export default defineComponent({
const updateUser = async () => {
console.log('updateUser');
try {
const groups: { id: number }[] = [];
group.value.map((item) => {
groups.push({ id: item as unknown as number });
});
const response = (await api({
url: API_PATHS.updateUser,
method: 'POST',
......@@ -346,10 +344,10 @@ export default defineComponent({
mobileNumber: mobileNumber.value.trim(),
sex: sex.value,
address: address.value?.trim(),
unit: unit.value,
unit: unit.value?.trim(),
status: status.value ? 1 : 0,
},
groups: groups,
groups: group.value,
pageRoles: [],
},
})) as AxiosResponse<BaseResponseBody<unknown>>;
......
......@@ -143,8 +143,6 @@
v-model:birthday="birthday"
v-model:group="group"
:list-group="listGroup"
v-model:schedule-access="scheduleAccess"
:list-schedule-access="listScheduleAccess"
v-model:status="status"
@click:CloseBtn="showDialogUpdate = false"
@updateUser="updateUser"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment