Compare commits
No commits in common. "dev" and "v1.1.0" have entirely different histories.
7 changed files with 39 additions and 135 deletions
|
|
@ -16,6 +16,4 @@ export default {
|
||||||
|
|
||||||
/** กำหนดสิทธิ์*/
|
/** กำหนดสิทธิ์*/
|
||||||
managementPermission,
|
managementPermission,
|
||||||
|
|
||||||
resetPassword: `${management}/user/reset-password`,
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -36,11 +36,8 @@ const {
|
||||||
hideLoader,
|
hideLoader,
|
||||||
success,
|
success,
|
||||||
dialogConfirm,
|
dialogConfirm,
|
||||||
dialogMessage,
|
|
||||||
} = useCounterMixin();
|
} = useCounterMixin();
|
||||||
|
|
||||||
const NODE_ENV = ref<string>(process.env.NODE_ENV || "development");
|
|
||||||
|
|
||||||
/** Tree*/
|
/** Tree*/
|
||||||
const activeId = ref<string>(""); // id ของโครงสร้างที่ใช้งานอยู่
|
const activeId = ref<string>(""); // id ของโครงสร้างที่ใช้งานอยู่
|
||||||
const orgId = ref<string | null>(null); // id ของ node ที่เลือก
|
const orgId = ref<string | null>(null); // id ของ node ที่เลือก
|
||||||
|
|
@ -198,12 +195,6 @@ const itemMenu = ref<ItemsMenu[]>([
|
||||||
color: "blue-9",
|
color: "blue-9",
|
||||||
type: "managementRole",
|
type: "managementRole",
|
||||||
},
|
},
|
||||||
{
|
|
||||||
label: "รีเซ็ตรหัสผ่าน",
|
|
||||||
icon: "mdi-lock-reset",
|
|
||||||
color: "teal-4",
|
|
||||||
type: "resetPassword",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
label: "ลบ",
|
label: "ลบ",
|
||||||
icon: "delete",
|
icon: "delete",
|
||||||
|
|
@ -290,7 +281,7 @@ async function fetchListUsers() {
|
||||||
e.name === "STAFF" ||
|
e.name === "STAFF" ||
|
||||||
e.name === "SUPER_ADMIN" ||
|
e.name === "SUPER_ADMIN" ||
|
||||||
e.name === "ADMIN" ||
|
e.name === "ADMIN" ||
|
||||||
e.name === "USER",
|
e.name === "USER"
|
||||||
)
|
)
|
||||||
: [],
|
: [],
|
||||||
}));
|
}));
|
||||||
|
|
@ -328,8 +319,6 @@ function onClickAction(type: string, data: Users) {
|
||||||
// เปลี่ยนสถานะเปิด/ปิดของผู้ใช้งาน
|
// เปลี่ยนสถานะเปิด/ปิดของผู้ใช้งาน
|
||||||
const status = type === "open" ? true : false;
|
const status = type === "open" ? true : false;
|
||||||
onLockUser(data.id, status);
|
onLockUser(data.id, status);
|
||||||
} else if (type === "resetPassword") {
|
|
||||||
onReSetPassword(data.id);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -357,7 +346,7 @@ async function onDeleteUser(id: string) {
|
||||||
currentPage.value = await updateCurrentPage(
|
currentPage.value = await updateCurrentPage(
|
||||||
currentPage.value,
|
currentPage.value,
|
||||||
maxPage.value,
|
maxPage.value,
|
||||||
rows.value.length,
|
rows.value.length
|
||||||
);
|
);
|
||||||
await fetchListUsers();
|
await fetchListUsers();
|
||||||
success($q, "ลบข้อมูลสำเร็จ");
|
success($q, "ลบข้อมูลสำเร็จ");
|
||||||
|
|
@ -396,7 +385,7 @@ function onLockUser(id: string, type: boolean) {
|
||||||
type ? "ยืนยันการเปิดใช้" : "ยืนยันการระงับใช้งาน",
|
type ? "ยืนยันการเปิดใช้" : "ยืนยันการระงับใช้งาน",
|
||||||
type
|
type
|
||||||
? "ต้องการยืนยันการเปิดใช้นี้หรือไม่ ?"
|
? "ต้องการยืนยันการเปิดใช้นี้หรือไม่ ?"
|
||||||
: "ต้องการยืนยันระงับการใช้งานนี้หรือไม่ ?",
|
: "ต้องการยืนยันระงับการใช้งานนี้หรือไม่ ?"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -421,7 +410,7 @@ function filterFnOptions(val: string, update: Function, type: string) {
|
||||||
case "employeeClass":
|
case "employeeClass":
|
||||||
update(() => {
|
update(() => {
|
||||||
employeeClassOption.value = employeeClassMain.value.filter(
|
employeeClassOption.value = employeeClassMain.value.filter(
|
||||||
(v: DataOption) => v.name.indexOf(val) > -1,
|
(v: DataOption) => v.name.indexOf(val) > -1
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|
@ -441,42 +430,6 @@ async function onSearchData() {
|
||||||
await fetchListUsers();
|
await fetchListUsers();
|
||||||
}
|
}
|
||||||
|
|
||||||
function onReSetPassword(id: string) {
|
|
||||||
dialogConfirm(
|
|
||||||
$q,
|
|
||||||
async () => {
|
|
||||||
try {
|
|
||||||
showLoader();
|
|
||||||
const messsage =
|
|
||||||
NODE_ENV.value === "production"
|
|
||||||
? "รหัสผ่านจะถูกเปลี่ยนเป็น วันเดือนปีพุทธศักราชเกิด ของผู้ใช้งาน (รูปแบบ ววดดปปปป เช่น 14042533)"
|
|
||||||
: "ระบบจะตั้งรหัสผ่านใหม่เป็น P@ssw0rd";
|
|
||||||
await http.post(config.API.resetPassword, {
|
|
||||||
keycloak: id,
|
|
||||||
});
|
|
||||||
// success($q, "รีเซ็ตรหัสผ่านสำเร็จ");
|
|
||||||
dialogMessage(
|
|
||||||
$q,
|
|
||||||
"รีเซ็ตรหัสผ่านสำเร็จ",
|
|
||||||
messsage,
|
|
||||||
"mdi-check-circle",
|
|
||||||
"ตกลง",
|
|
||||||
"green",
|
|
||||||
() => {},
|
|
||||||
() => {},
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
} catch (error) {
|
|
||||||
messageError($q, error);
|
|
||||||
} finally {
|
|
||||||
hideLoader();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ยืนยันการรีเซ็ตรหัสผ่าน",
|
|
||||||
"ต้องการยืนยันการรีเซ็ตรหัสผ่านนี้หรือไม่ ?",
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ดูการเปลี่ยนแปลงของจำนวนข้อมูลต่อหน้า
|
* ดูการเปลี่ยนแปลงของจำนวนข้อมูลต่อหน้า
|
||||||
* ดึงข้อมูลรายชื่อผู้ใช้งานตามจำนวนข้อมูลต่อหน้า
|
* ดึงข้อมูลรายชื่อผู้ใช้งานตามจำนวนข้อมูลต่อหน้า
|
||||||
|
|
@ -485,7 +438,7 @@ watch(
|
||||||
() => pageSize.value,
|
() => pageSize.value,
|
||||||
() => {
|
() => {
|
||||||
fetchListUsers();
|
fetchListUsers();
|
||||||
},
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
const tokenParsedData = ref<string[]>([]);
|
const tokenParsedData = ref<string[]>([]);
|
||||||
|
|
@ -520,7 +473,7 @@ onMounted(async () => {
|
||||||
<template>
|
<template>
|
||||||
<div class="row items-center">
|
<div class="row items-center">
|
||||||
<div class="toptitle text-dark row items-center q-py-xs">
|
<div class="toptitle text-dark row items-center q-py-xs">
|
||||||
จัดการผู้ใช้งาน {{ NODE_ENV }}
|
จัดการผู้ใช้งาน
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,6 @@ const visibleColumns = ref<string[]>([
|
||||||
"amount",
|
"amount",
|
||||||
"createdAt",
|
"createdAt",
|
||||||
"createdFullName",
|
"createdFullName",
|
||||||
"accessType",
|
|
||||||
]);
|
]);
|
||||||
const columns = ref<QTableProps["columns"]>([
|
const columns = ref<QTableProps["columns"]>([
|
||||||
{
|
{
|
||||||
|
|
@ -63,22 +62,6 @@ const columns = ref<QTableProps["columns"]>([
|
||||||
.join("");
|
.join("");
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: "accessType",
|
|
||||||
align: "left",
|
|
||||||
label: "การเข้าถึง",
|
|
||||||
sortable: true,
|
|
||||||
field: "accessType",
|
|
||||||
headerStyle: "font-size: 14px",
|
|
||||||
style: "font-size: 14px",
|
|
||||||
format(val, row) {
|
|
||||||
if (val === "ALL") {
|
|
||||||
return `ทั้งหมด`;
|
|
||||||
} else {
|
|
||||||
return `${val} (${row.orgName})`;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: "amount",
|
name: "amount",
|
||||||
align: "left",
|
align: "left",
|
||||||
|
|
@ -164,7 +147,7 @@ function serchDataTable() {
|
||||||
rows.value = onSearchDataTable(
|
rows.value = onSearchDataTable(
|
||||||
keyword.value,
|
keyword.value,
|
||||||
rowsMain.value,
|
rowsMain.value,
|
||||||
columns.value ? columns.value : [],
|
columns.value ? columns.value : []
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,10 +13,8 @@ export const useIssueStore = defineStore("issue", () => {
|
||||||
const statusOptions = ref<Options[]>([
|
const statusOptions = ref<Options[]>([
|
||||||
{ label: "ทั้งหมด", value: "" },
|
{ label: "ทั้งหมด", value: "" },
|
||||||
{ label: "ใหม่", value: "NEW" },
|
{ label: "ใหม่", value: "NEW" },
|
||||||
{ label: "Dev กำลังดำเนินการ", value: "IN_PROGRESS" },
|
{ label: "กำลังดำเนินการ", value: "IN_PROGRESS" },
|
||||||
{ label: "แก้ไขแล้ว", value: "RESOLVED" },
|
{ label: "แก้ไขแล้ว", value: "RESOLVED" },
|
||||||
{ label: "Helpdesk กำลังดำเนินการ", value: "HELPDESK_IN_PROGRESS" },
|
|
||||||
{ label: "แจ้งกลับแล้ว", value: "REPLIED" },
|
|
||||||
{ label: "ปิดแล้ว", value: "CLOSED" },
|
{ label: "ปิดแล้ว", value: "CLOSED" },
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
@ -26,15 +24,11 @@ export const useIssueStore = defineStore("issue", () => {
|
||||||
case "NEW":
|
case "NEW":
|
||||||
return "ใหม่";
|
return "ใหม่";
|
||||||
case "IN_PROGRESS":
|
case "IN_PROGRESS":
|
||||||
return "Dev กำลังดำเนินการ";
|
return "กำลังดำเนินการ";
|
||||||
case "RESOLVED":
|
case "RESOLVED":
|
||||||
return "แก้ไขแล้ว";
|
return "แก้ไขแล้ว";
|
||||||
case "CLOSED":
|
case "CLOSED":
|
||||||
return "ปิดแล้ว";
|
return "ปิดแล้ว";
|
||||||
case "HELPDESK_IN_PROGRESS":
|
|
||||||
return "Helpdesk กำลังดำเนินการ";
|
|
||||||
case "REPLIED":
|
|
||||||
return "แจ้งกลับแล้ว";
|
|
||||||
default:
|
default:
|
||||||
return "-";
|
return "-";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ const { convertStatus, convertSystem } = store;
|
||||||
const { systemOptions, statusOptions } = storeToRefs(store);
|
const { systemOptions, statusOptions } = storeToRefs(store);
|
||||||
|
|
||||||
const visibleColumns = ref<string[]>([
|
const visibleColumns = ref<string[]>([
|
||||||
"codeIssue",
|
|
||||||
"title",
|
"title",
|
||||||
"description",
|
"description",
|
||||||
"system",
|
"system",
|
||||||
|
|
@ -35,43 +34,6 @@ const visibleColumns = ref<string[]>([
|
||||||
"status",
|
"status",
|
||||||
]);
|
]);
|
||||||
const columns = ref<QTableProps["columns"]>([
|
const columns = ref<QTableProps["columns"]>([
|
||||||
{
|
|
||||||
name: "codeIssue",
|
|
||||||
align: "left",
|
|
||||||
label: "รหัส",
|
|
||||||
sortable: false,
|
|
||||||
field: "codeIssue",
|
|
||||||
headerStyle: "font-size: 14px",
|
|
||||||
style: "font-size: 14px",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "createdAt",
|
|
||||||
align: "left",
|
|
||||||
label: "วันที่สร้าง",
|
|
||||||
sortable: false,
|
|
||||||
field: "createdAt",
|
|
||||||
headerStyle: "font-size: 14px",
|
|
||||||
style: "font-size: 14px",
|
|
||||||
format: (val: string) => date2Thai(new Date(val), false, true),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "createdFullName",
|
|
||||||
align: "left",
|
|
||||||
label: "ชื่อผู้สร้าง",
|
|
||||||
sortable: false,
|
|
||||||
field: "createdFullName",
|
|
||||||
headerStyle: "font-size: 14px",
|
|
||||||
style: "font-size: 14px",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "org",
|
|
||||||
align: "left",
|
|
||||||
label: "หน่วยงาน",
|
|
||||||
sortable: false,
|
|
||||||
field: "org",
|
|
||||||
headerStyle: "font-size: 14px",
|
|
||||||
style: "font-size: 14px",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
name: "title",
|
name: "title",
|
||||||
align: "left",
|
align: "left",
|
||||||
|
|
@ -109,6 +71,16 @@ const columns = ref<QTableProps["columns"]>([
|
||||||
headerStyle: "font-size: 14px",
|
headerStyle: "font-size: 14px",
|
||||||
style: "font-size: 14px",
|
style: "font-size: 14px",
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
name: "org",
|
||||||
|
align: "left",
|
||||||
|
label: "หน่วยงาน",
|
||||||
|
sortable: false,
|
||||||
|
field: "org",
|
||||||
|
headerStyle: "font-size: 14px",
|
||||||
|
style: "font-size: 14px",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "email",
|
name: "email",
|
||||||
align: "left",
|
align: "left",
|
||||||
|
|
@ -128,6 +100,25 @@ const columns = ref<QTableProps["columns"]>([
|
||||||
style: "font-size: 14px",
|
style: "font-size: 14px",
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
name: "createdAt",
|
||||||
|
align: "left",
|
||||||
|
label: "วันที่สร้าง",
|
||||||
|
sortable: false,
|
||||||
|
field: "createdAt",
|
||||||
|
headerStyle: "font-size: 14px",
|
||||||
|
style: "font-size: 14px",
|
||||||
|
format: (val: string) => date2Thai(new Date(val), false, true),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "createdFullName",
|
||||||
|
align: "left",
|
||||||
|
label: "ชื่อผู้สร้าง",
|
||||||
|
sortable: false,
|
||||||
|
field: "createdFullName",
|
||||||
|
headerStyle: "font-size: 14px",
|
||||||
|
style: "font-size: 14px",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "status",
|
name: "status",
|
||||||
align: "left",
|
align: "left",
|
||||||
|
|
@ -203,7 +194,6 @@ onMounted(async () => {
|
||||||
await fetchListIssues();
|
await fetchListIssues();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="row items-center">
|
<div class="row items-center">
|
||||||
<div class="toptitle text-dark row items-center q-py-xs">
|
<div class="toptitle text-dark row items-center q-py-xs">
|
||||||
|
|
@ -241,7 +231,6 @@ onMounted(async () => {
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||||
<q-select
|
<q-select
|
||||||
class="select_ellipsis2"
|
|
||||||
dense
|
dense
|
||||||
outlined
|
outlined
|
||||||
v-model="statusFilter"
|
v-model="statusFilter"
|
||||||
|
|
|
||||||
|
|
@ -187,18 +187,5 @@ h3.resigtry-tab-title
|
||||||
text-overflow: ellipsis
|
text-overflow: ellipsis
|
||||||
width: 200px
|
width: 200px
|
||||||
|
|
||||||
.select_ellipsis2 .q-field__native > span
|
|
||||||
white-space: nowrap
|
|
||||||
overflow: hidden
|
|
||||||
text-overflow: ellipsis
|
|
||||||
width: 300px
|
|
||||||
|
|
||||||
.select_ellipsis3 .q-field__native > span
|
|
||||||
white-space: nowrap
|
|
||||||
overflow: hidden
|
|
||||||
text-overflow: ellipsis
|
|
||||||
width: auto
|
|
||||||
max-width: 60ch
|
|
||||||
|
|
||||||
.dialog-content-top .q-dialog__inner
|
.dialog-content-top .q-dialog__inner
|
||||||
align-items: start
|
align-items: start
|
||||||
|
|
|
||||||
|
|
@ -357,7 +357,7 @@ async function fetchKeycloakPosition() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const profileImg = ref<string>(avatar);
|
const profileImg = ref<string>("");
|
||||||
async function getImg(id: string, pathName: string) {
|
async function getImg(id: string, pathName: string) {
|
||||||
await http
|
await http
|
||||||
.get(config.API.fileByFile("ทะเบียนประวัติ", "โปรไฟล์", id, pathName))
|
.get(config.API.fileByFile("ทะเบียนประวัติ", "โปรไฟล์", id, pathName))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue