fix update user

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