Merge branch 'develop' into dev

* develop:
  update manage web services list add access
  fix: default profileImg
  fix(issues): statusOptions value
  fix
  reafactor(issues): add status HELPDESK_IN_PROGRESS and REPLIED
This commit is contained in:
Warunee Tamkoo 2026-05-28 09:53:24 +07:00
commit 0420b4cdbd
5 changed files with 80 additions and 33 deletions

View file

@ -37,6 +37,7 @@ const visibleColumns = ref<string[]>([
"amount", "amount",
"createdAt", "createdAt",
"createdFullName", "createdFullName",
"accessType",
]); ]);
const columns = ref<QTableProps["columns"]>([ const columns = ref<QTableProps["columns"]>([
{ {
@ -62,6 +63,22 @@ 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",
@ -147,7 +164,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 : [],
); );
} }

View file

@ -13,8 +13,10 @@ export const useIssueStore = defineStore("issue", () => {
const statusOptions = ref<Options[]>([ const statusOptions = ref<Options[]>([
{ label: "ทั้งหมด", value: "" }, { label: "ทั้งหมด", value: "" },
{ label: "ใหม่", value: "NEW" }, { label: "ใหม่", value: "NEW" },
{ label: "กำลังดำเนินการ", value: "IN_PROGRESS" }, { label: "Dev กำลังดำเนินการ", value: "IN_PROGRESS" },
{ label: "แก้ไขแล้ว", value: "RESOLVED" }, { label: "แก้ไขแล้ว", value: "RESOLVED" },
{ label: "Helpdesk กำลังดำเนินการ", value: "HELPDESK_IN_PROGRESS" },
{ label: "แจ้งกลับแล้ว", value: "REPLIED" },
{ label: "ปิดแล้ว", value: "CLOSED" }, { label: "ปิดแล้ว", value: "CLOSED" },
]); ]);
@ -24,11 +26,15 @@ export const useIssueStore = defineStore("issue", () => {
case "NEW": case "NEW":
return "ใหม่"; return "ใหม่";
case "IN_PROGRESS": case "IN_PROGRESS":
return "กำลังดำเนินการ"; return "Dev กำลังดำเนินการ";
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 "-";
} }

View file

@ -22,6 +22,7 @@ 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",
@ -34,6 +35,43 @@ 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",
@ -71,16 +109,6 @@ 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",
@ -100,25 +128,6 @@ 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",
@ -194,6 +203,7 @@ 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">
@ -231,6 +241,7 @@ 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"

View file

@ -187,5 +187,18 @@ 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

View file

@ -357,7 +357,7 @@ async function fetchKeycloakPosition() {
}); });
} }
const profileImg = ref<string>(""); const profileImg = ref<string>(avatar);
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))