From 9f5d1f7913a388cd6085aa49b82924c0ec9549ef Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 27 Jan 2026 16:21:25 +0700 Subject: [PATCH 1/7] feat: add position and salary review --- package.json | 133 ++- src/api/org/api.org.ts | 10 +- .../components/PositionReview/Table.vue | 1061 +++++++++++++++++ .../10_registry/interface/review/Edit.ts | 76 ++ .../10_registry/interface/review/Main.ts | 155 +++ src/modules/10_registry/router.ts | 13 + src/modules/10_registry/store/Position.ts | 2 +- src/modules/10_registry/views/main.vue | 21 +- .../10_registry/views/positionReview.vue | 197 +++ 9 files changed, 1589 insertions(+), 79 deletions(-) create mode 100644 src/modules/10_registry/components/PositionReview/Table.vue create mode 100644 src/modules/10_registry/interface/review/Edit.ts create mode 100644 src/modules/10_registry/interface/review/Main.ts create mode 100644 src/modules/10_registry/views/positionReview.vue diff --git a/package.json b/package.json index cdf5646..c0a48c7 100644 --- a/package.json +++ b/package.json @@ -1,68 +1,69 @@ { - "name": "ehr", - "version": "0.0.0", - "private": true, - "scripts": { - "dev": "vite", - "build": "run-p build-only", - "preview": "vite preview", - "test:unit": "vitest --environment jsdom --root src/", - "test:e2e": "start-server-and-test preview :4173 'cypress run --e2e'", - "test:e2e:dev": "start-server-and-test 'vite dev --port 4173' :4173 'cypress open --e2e'", - "build-only": "vite build", - "type-check": "vue-tsc --noEmit -p tsconfig.vitest.json --composite false", - "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore", - "format": "prettier ./src --write" - }, - "dependencies": { - "@fullcalendar/core": "^6.0.1", - "@fullcalendar/daygrid": "^6.0.1", - "@fullcalendar/interaction": "^6.0.2", - "@fullcalendar/list": "^6.0.2", - "@fullcalendar/react": "^6.0.1", - "@fullcalendar/timegrid": "^6.0.2", - "@fullcalendar/vue3": "^6.0.1", - "@quasar/extras": "^1.15.8", - "@tato30/vue-pdf": "^1.5.1", - "@vuepic/vue-datepicker": "^3.6.3", - "bma-org-chart": "^0.0.7", - "dom-to-image-more": "^3.6.0", - "keycloak-js": "^20.0.2", - "moment": "^2.29.4", - "pdf-lib": "^1.17.1", - "pinia": "^2.0.29", - "quasar": "^2.11.1", - "socket.io-client": "^4.7.4", - "structure-chart": "^0.0.9", - "vue": "^3.4.15", - "vue-router": "^4.1.6", - "vue3-datepicker": "^0.3.4", - "vue3-pdfjs": "^0.1.6" - }, - "devDependencies": { - "@quasar/vite-plugin": "^1.3.0", - "@rushstack/eslint-patch": "^1.1.4", - "@types/jsdom": "^20.0.1", - "@types/node": "^18.11.12", - "@vitejs/plugin-vue": "^4.0.0", - "@vitejs/plugin-vue-jsx": "^3.0.0", - "@vue/eslint-config-prettier": "^7.0.0", - "@vue/eslint-config-typescript": "^11.0.0", - "@vue/test-utils": "^2.2.6", - "@vue/tsconfig": "^0.1.3", - "cypress": "^12.0.2", - "eslint": "^8.22.0", - "eslint-plugin-cypress": "^2.12.1", - "eslint-plugin-vue": "^9.3.0", - "jsdom": "^20.0.3", - "npm-run-all": "^4.1.5", - "prettier": "^2.7.1", - "sass": "^1.32.12", - "start-server-and-test": "^1.15.2", - "typescript": "~4.7.4", - "vite": "^4.0.0", - "vitest": "^0.25.6", - "vue-table-to-excel": "^1.0.6", - "vue-tsc": "^1.0.12" - } + "name": "ehr", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "vite", + "build": "run-p build-only", + "preview": "vite preview", + "test:unit": "vitest --environment jsdom --root src/", + "test:e2e": "start-server-and-test preview :4173 'cypress run --e2e'", + "test:e2e:dev": "start-server-and-test 'vite dev --port 4173' :4173 'cypress open --e2e'", + "build-only": "vite build", + "type-check": "vue-tsc --noEmit -p tsconfig.vitest.json --composite false", + "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore", + "format": "prettier ./src --write" + }, + "dependencies": { + "@fullcalendar/core": "^6.0.1", + "@fullcalendar/daygrid": "^6.0.1", + "@fullcalendar/interaction": "^6.0.2", + "@fullcalendar/list": "^6.0.2", + "@fullcalendar/react": "^6.0.1", + "@fullcalendar/timegrid": "^6.0.2", + "@fullcalendar/vue3": "^6.0.1", + "@quasar/extras": "^1.15.8", + "@tato30/vue-pdf": "^1.5.1", + "@vuepic/vue-datepicker": "^3.6.3", + "bma-org-chart": "^0.0.7", + "dom-to-image-more": "^3.6.0", + "keycloak-js": "^20.0.2", + "moment": "^2.29.4", + "pdf-lib": "^1.17.1", + "pinia": "^2.0.29", + "quasar": "^2.11.1", + "socket.io-client": "^4.7.4", + "structure-chart": "^0.0.9", + "vue": "^3.4.15", + "vue-router": "^4.1.6", + "vue3-datepicker": "^0.3.4", + "vue3-pdfjs": "^0.1.6", + "xlsx": "^0.18.5" + }, + "devDependencies": { + "@quasar/vite-plugin": "^1.3.0", + "@rushstack/eslint-patch": "^1.1.4", + "@types/jsdom": "^20.0.1", + "@types/node": "^18.11.12", + "@vitejs/plugin-vue": "^4.0.0", + "@vitejs/plugin-vue-jsx": "^3.0.0", + "@vue/eslint-config-prettier": "^7.0.0", + "@vue/eslint-config-typescript": "^11.0.0", + "@vue/test-utils": "^2.2.6", + "@vue/tsconfig": "^0.1.3", + "cypress": "^12.0.2", + "eslint": "^8.22.0", + "eslint-plugin-cypress": "^2.12.1", + "eslint-plugin-vue": "^9.3.0", + "jsdom": "^20.0.3", + "npm-run-all": "^4.1.5", + "prettier": "^2.7.1", + "sass": "^1.32.12", + "start-server-and-test": "^1.15.2", + "typescript": "~4.7.4", + "vite": "^4.0.0", + "vitest": "^0.25.6", + "vue-table-to-excel": "^1.0.6", + "vue-tsc": "^1.0.12" + } } diff --git a/src/api/org/api.org.ts b/src/api/org/api.org.ts index 3c14fee..40cf317 100644 --- a/src/api/org/api.org.ts +++ b/src/api/org/api.org.ts @@ -3,7 +3,6 @@ import env from "../index"; const metadata = `${env.API_URI}/org/metadata/`; const org = `${env.API_URI}/org`; const profileOrg = `${env.API_URI}/org/profile`; -const report = `${env.API_URI}/org`; const workflow = `${env.API_URI}/org/workflow`; export default { orgCommandCode: `${metadata}commandCode`, @@ -70,9 +69,9 @@ export default { dataUserOtherByType: (type: string) => `${org}/profile${type}/other/user`, profileReportId: (profileId: string, type: string) => - `${report}/${type}/kk1/${profileId}`, + `${org}/${type}/kk1/${profileId}`, profileKp7ShortId: (profileId: string, type: string) => - `${report}/${type}/kp7-short/${profileId}`, + `${org}/${type}/kp7-short/${profileId}`, /** history */ dataUserInformatioHistory: (type: string) => @@ -126,7 +125,7 @@ export default { dataUserCertificateHistoryByType: ( emType: string, type: string, - id: string + id: string, ) => `${org}/profile${emType}/${type}/history/${id}`, dataUserHonorHistory: (type: string, emType: string, id: string) => `${profileOrg}${emType}/${type}/history/${id}`, @@ -176,4 +175,7 @@ export default { changePassword: `${org}/keycloak/user/change-password`, orgAssistance: (id: string) => `${profileOrg}/assistance/${id}`, + + // ตรวจสอบข้อมูลตำแหน่งและเงินเดือน + profileSalaryTemp: `${profileOrg}/salaryTemp`, }; diff --git a/src/modules/10_registry/components/PositionReview/Table.vue b/src/modules/10_registry/components/PositionReview/Table.vue new file mode 100644 index 0000000..d7e6067 --- /dev/null +++ b/src/modules/10_registry/components/PositionReview/Table.vue @@ -0,0 +1,1061 @@ + + + + + diff --git a/src/modules/10_registry/interface/review/Edit.ts b/src/modules/10_registry/interface/review/Edit.ts new file mode 100644 index 0000000..04041b2 --- /dev/null +++ b/src/modules/10_registry/interface/review/Edit.ts @@ -0,0 +1,76 @@ +interface DataSalaryPos { + avatar: string; + avatarName: string; + citizenId: string; + firstName: string; + id: string; + lastName: string; + org: string; + orgRevisionId: string; + orgRootShortName: string; + posExecutive: string; + posLevel: string; + posLevelId: string; + posNo: string; + posType: string; + posTypeId: string; + position: string; + prefix: string; + rank: string; + root: string; + rootId: string; + statusCheckEdit: string; + type: string; +} + +interface DataPosition { + no?: number; + amount: number; + amountSpecial: number; + commandCode: string; + commandDateAffect: Date; + commandDateSign: Date; + commandId: string; + commandName: string; + commandNo: string; + commandYear: number; + createdAt: string; + createdFullName: string; + createdUserId: string; + dateGovernment: string; + id: string; + isDelete: boolean; + isEdit: boolean; + isEntry: boolean; + isGovernment: string; + lastUpdateFullName: string; + lastUpdateUserId: string; + lastUpdatedAt: string; + mouthSalaryAmount: number; + order: number; + orgChild1: string; + orgChild2: string; + orgChild3: string; + orgChild4: string; + orgRoot: string; + posNo: string; + posNoAbb: string; + positionCee: string; + positionExecutive: string; + positionLevel: string; + positionLine: string; + positionName: string; + positionPathSide: string; + positionSalaryAmount: number; + positionType: string; + profileEmployeeId: string; + profileId: string; + refId: number; + remark: string; + salaryId: string; + status: string; + posNumCodeSitAbb: string; + posNumCodeSit: string; +} + +export type { DataSalaryPos, DataPosition }; diff --git a/src/modules/10_registry/interface/review/Main.ts b/src/modules/10_registry/interface/review/Main.ts new file mode 100644 index 0000000..9022d50 --- /dev/null +++ b/src/modules/10_registry/interface/review/Main.ts @@ -0,0 +1,155 @@ +interface Pagination { + rowsPerPage: number; +} + +interface DataOption { + id: string; + name: string; +} +interface DataOption2 { + id: number; + name: string; +} + +interface DataOptionSys { + id: string; + name: string; + system: string; +} +interface DataOptionInsignia { + id: string; + name: string; + typeId: string; + typeName: string; +} + +interface DataOptionEducation { + label: string; + value: boolean; +} + +interface DataOptionEducationLevel { + label: string; + value: string; +} + +interface zipCodeOption { + id: string; + name: string; + zipCode: string; +} + +interface InformationOps { + prefixOps: DataOption[]; + rankOps: DataOption[]; + genderOps: DataOption[]; + bloodOps: DataOption[]; + statusOps: DataOption[]; + religionOps: DataOption[]; + employeeClassOps: DataOption[]; + employeeTypeOps: DataOption[]; +} + +interface AddressOps { + provinceOps: DataOption[]; + districtOps: DataOption[]; + districtCOps: DataOption[]; + subdistrictOps: zipCodeOption[]; + subdistrictCOps: zipCodeOption[]; +} + +interface InsigniaOps { + insigniaOptions: DataOptionInsignia[]; +} + +interface ItemTab { + name: string; + icon: string; + label: string; +} + +interface Request { + createdAt: string; + createdFullName: string; + detail: string; + fullname: string; + id: string; + idcard: string; + lastUpdateFullName: string; + lastUpdatedAt: string; + profileId: string; + remark: string; + status: string; + topic: string; +} + +interface InsigniasType { + id: string; + createdAt: Date; + createdUserId: string; + lastUpdatedAt: Date; + lastUpdateUserId: string; + createdFullName: string; + lastUpdateFullName: string; + name: string; + isActive: boolean; + insignias: InsigniasTypeSub[]; +} + +interface InsigniasTypeSub { + id: string; + createdAt: Date; + createdUserId: string; + lastUpdatedAt: Date; + lastUpdateUserId: string; + createdFullName: string; + lastUpdateFullName: string; + name: string; + shortName: string; + level: string; + isActive: string; + note: string; + insigniaTypeId: string; +} + +interface ResFileData { + downloadUrl: string; + fileName: string; + path: string; + pathname: string; +} + +interface DataHistory { + [key: string]: string | number | Date | boolean; +} + +interface DataCommandCode { + id: string; + createdAt: Date; + lastUpdatedAt: Date; + createdFullName: string; + lastUpdateFullName: string; + name: string; + code: number; +} + +export type { + Pagination, + DataOption, + DataOption2, + DataOptionInsignia, + zipCodeOption, + InformationOps, + AddressOps, + InsigniaOps, + DataOptionSys, + ItemTab, + DataOptionEducation, + DataOptionEducationLevel, + Request, + InsigniasType, + InsigniasTypeSub, + ResFileData, + DataHistory, + DataCommandCode, +}; diff --git a/src/modules/10_registry/router.ts b/src/modules/10_registry/router.ts index 8de71c7..a88c4e2 100644 --- a/src/modules/10_registry/router.ts +++ b/src/modules/10_registry/router.ts @@ -17,6 +17,8 @@ const requestEditMain = () => import("@/modules/10_registry/views/requestEditMain.vue"); const requestEditDetail = () => import("@/modules/10_registry/views/requestEditDetail.vue"); +const positionReviewPage = () => + import("@/modules/10_registry/views/positionReview.vue"); export default [ { @@ -93,4 +95,15 @@ export default [ Key: [10], }, }, + + // ตรวจสอบข้อมูลตำแหน่งและเงินเดือน + { + path: "/registry/position-review", + name: "position-review", + component: positionReviewPage, + meta: { + Auth: true, + Key: [10], + }, + }, ]; diff --git a/src/modules/10_registry/store/Position.ts b/src/modules/10_registry/store/Position.ts index ad14276..8ab3a02 100644 --- a/src/modules/10_registry/store/Position.ts +++ b/src/modules/10_registry/store/Position.ts @@ -12,7 +12,7 @@ const {} = mixin; export const useGovernmentPosDataStore = defineStore("GovernmentPos", () => { // commandCode ขอตำแหน่ง const positionCode = ref([ - 0, 1, 2, 3, 4, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 0, 1, 2, 3, 4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 20, ]); const commandCodeData = ref([]); diff --git a/src/modules/10_registry/views/main.vue b/src/modules/10_registry/views/main.vue index 81d75af..5e3a40c 100644 --- a/src/modules/10_registry/views/main.vue +++ b/src/modules/10_registry/views/main.vue @@ -52,11 +52,11 @@ async function onClickDownloadKp7(type: string) { type === "FULL" ? config.API.profileReportId( store.profileId, - dataStore.officerType == "OFFICER" ? "profile" : "profile-employee" + dataStore.officerType == "OFFICER" ? "profile" : "profile-employee", ) : config.API.profileKp7ShortId( store.profileId, - dataStore.officerType == "OFFICER" ? "profile" : "profile-employee" + dataStore.officerType == "OFFICER" ? "profile" : "profile-employee", ); const fileName = type === "FULL" ? "ทปอ. สามัญ" : "ประวัติแบบย่อ"; await http @@ -78,11 +78,6 @@ const clickBack = () => { router.push(`/`); }; -/** ฟังก์ชัน redirect ไปหน้ารายการคำร้องขอแก้ไขข้อมูล*/ -function redirectToPagePetition() { - router.push(`/registry/request-edit`); -} - function onMobile(type: string) { router.push(`/registry/${type}`); } @@ -103,10 +98,20 @@ function onMobile(type: string) { @click="clickBack" /> ข้อมูลทะเบียนประวัติ + + ไปยังหน้าตรวจสอบข้อมูลตำแหน่งและเงินเดือน + + ยื่นคำร้องขอแก้ไขข้อมูล diff --git a/src/modules/10_registry/views/positionReview.vue b/src/modules/10_registry/views/positionReview.vue new file mode 100644 index 0000000..94387f5 --- /dev/null +++ b/src/modules/10_registry/views/positionReview.vue @@ -0,0 +1,197 @@ + + + + + From f89857e6cc051a94a5bae509cdc0e082ce84f841 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 27 Jan 2026 16:45:37 +0700 Subject: [PATCH 2/7] =?UTF-8?q?=E0=B8=9B=E0=B8=B4=E0=B8=94=E0=B9=84?= =?UTF-8?q?=E0=B8=A1=E0=B9=88=E0=B9=81=E0=B8=AA=E0=B8=94=E0=B8=87=E0=B8=82?= =?UTF-8?q?=E0=B9=89=E0=B8=AD=E0=B8=A1=E0=B8=B9=E0=B8=A5=E0=B8=95=E0=B8=B3?= =?UTF-8?q?=E0=B9=81=E0=B8=AB=E0=B8=99=E0=B9=88=E0=B8=87=E0=B9=81=E0=B8=A5?= =?UTF-8?q?=E0=B8=B0=E0=B9=80=E0=B8=87=E0=B8=B4=E0=B8=99=E0=B9=80=E0=B8=94?= =?UTF-8?q?=E0=B8=B7=E0=B8=AD=E0=B8=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/10_registry/tabs/02_government.vue | 2 +- src/modules/10_registry/tabs/03_salary.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/10_registry/tabs/02_government.vue b/src/modules/10_registry/tabs/02_government.vue index cab0c4a..8f4cc0f 100644 --- a/src/modules/10_registry/tabs/02_government.vue +++ b/src/modules/10_registry/tabs/02_government.vue @@ -31,7 +31,7 @@ const router = useRouter();
- + diff --git a/src/modules/10_registry/tabs/03_salary.vue b/src/modules/10_registry/tabs/03_salary.vue index 22a83ac..12db2d2 100644 --- a/src/modules/10_registry/tabs/03_salary.vue +++ b/src/modules/10_registry/tabs/03_salary.vue @@ -25,7 +25,7 @@ const router = useRouter();
- +
From 23cecba75624d4c14a7d791841f58f254601319b Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 27 Jan 2026 16:48:52 +0700 Subject: [PATCH 3/7] =?UTF-8?q?=E0=B8=9B=E0=B8=B4=E0=B8=94=E0=B8=95?= =?UTF-8?q?=E0=B8=B2=E0=B8=A3=E0=B8=B2=E0=B8=87=E0=B8=9B=E0=B8=A3=E0=B8=B0?= =?UTF-8?q?=E0=B8=A7=E0=B8=B1=E0=B8=95=E0=B8=B4=E0=B8=95=E0=B8=B3=E0=B9=81?= =?UTF-8?q?=E0=B8=AB=E0=B8=99=E0=B9=88=E0=B8=87=E0=B9=84=E0=B8=9B=E0=B8=81?= =?UTF-8?q?=E0=B9=88=E0=B8=AD=E0=B8=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../10_registry/02_Government/07_Position.vue | 22 +++++++++---------- .../10_registry/tabs/02_government.vue | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/modules/10_registry/02_Government/07_Position.vue b/src/modules/10_registry/02_Government/07_Position.vue index 8ee5ed1..f981efb 100644 --- a/src/modules/10_registry/02_Government/07_Position.vue +++ b/src/modules/10_registry/02_Government/07_Position.vue @@ -27,7 +27,7 @@ const { } = useCounterMixin(); const checkType = ref( - dataPerson.officerType == "OFFICER" ? true : false + dataPerson.officerType == "OFFICER" ? true : false, ); // เช็คประเภทผู้ใช้งาน const mode = ref($q.screen.gt.xs); // เช็คขนาดหน้าจอ ถ้าเป็นขนาดใหญ่กว่า xs จะเป็นโหมดแสดงตาราง const isLoading = reactive({ @@ -320,25 +320,25 @@ const columns = computed(() => { (column) => column.name !== "positionExecutive" && column.name !== "lastUpdateFullName" && - column.name !== "lastUpdatedAt" + column.name !== "lastUpdatedAt", ); } } return baseColumns.value.filter( (e: QTableColumn) => - e.name !== "lastUpdateFullName" && e.name !== "lastUpdatedAt" + e.name !== "lastUpdateFullName" && e.name !== "lastUpdatedAt", ); }); const visibleColumns = ref( baseVisibleColumns.value.filter( - (e: string) => e !== "lastUpdateFullName" && e !== "lastUpdatedAt" - ) + (e: string) => e !== "lastUpdateFullName" && e !== "lastUpdatedAt", + ), ); const columnsHistory = computed(() => { if (!checkType.value) { if (baseColumns.value) { return baseColumns.value.filter( - (column) => column.name !== "positionExecutive" + (column) => column.name !== "positionExecutive", ); } } @@ -445,7 +445,7 @@ function onSearch() { rows.value = onSearchDataTable( filter.value, rowsData.value, - columns.value ? columns.value : [] + columns.value ? columns.value : [], ); } @@ -491,7 +491,7 @@ onMounted(async () => { -
+ -
+
- + From c61edb386380fe836f902c58afcc59034eadd51f Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Thu, 29 Jan 2026 11:25:58 +0700 Subject: [PATCH 4/7] fix:disable organization-chart --- src/modules/01_dashboard/views/Dashboard.vue | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/modules/01_dashboard/views/Dashboard.vue b/src/modules/01_dashboard/views/Dashboard.vue index c1b5d02..fa4ac8b 100644 --- a/src/modules/01_dashboard/views/Dashboard.vue +++ b/src/modules/01_dashboard/views/Dashboard.vue @@ -50,7 +50,8 @@ const items = ref([ icon: "mdi-account-group-outline", title: "แผนผังองค์กร", sub: "ดูแผนผังองค์กร", - color: "blue-3", + // color: "blue-3", + color: "grey-3", path: "/organization-chart", active: false, }, @@ -220,7 +221,7 @@ async function onClickOpenPopupDetail(data: InboxDetail) { .get(config.API.msgInboxRead(data.no)) .then(() => { const filterDate = inboxList.value.filter( - (r: InboxDetail) => r.no == data.no + (r: InboxDetail) => r.no == data.no, ); for (const item of filterDate) { item.isOpen = true; @@ -301,8 +302,14 @@ onMounted(async () => {
{ border: 1px solid #6dbdb142; } .disabledcard { - color: rgba(209, 209, 209, 0.733) !important; + color: rgba(105, 104, 104, 0.733) !important; border-color: rgba(207, 207, 207, 0.322) !important; box-shadow: none !important; border-radius: 12px; From 49b3b67edd8d0b3c8df75c455d7f1228959a5432 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Thu, 29 Jan 2026 11:34:16 +0700 Subject: [PATCH 5/7] fix: delete import defineProps --- src/api/index.ts | 4 ++-- src/modules/07_appealComplain/views/Form.vue | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/api/index.ts b/src/api/index.ts index a45d8af..e5e225c 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -12,8 +12,8 @@ export const apiUrlConfigReport = import.meta.env.VITE_API_REPORT_URL; const config = ref({ development: { // API_URI: "https://localhost:7260/api", - API_URI: "https://bma-ehr.frappet.synology.me/api/v1", - API_URL_SUPPORT: "https://bma-ehr.frappet.synology.me/api/v1/support", + API_URI: "https://hrmsbkk.case-collection.com/api/v1", + API_URL_SUPPORT: "https://hrmsbkk.case-collection.com/api/v1/support", MEET_URI: "meet.frappet.com", LINK_EVALUATE_PUBLISH: "https://bma-ehr-publish.frappet.synology.me", API_REPORT_TEMPLATE_URI: diff --git a/src/modules/07_appealComplain/views/Form.vue b/src/modules/07_appealComplain/views/Form.vue index d2b715f..79854eb 100644 --- a/src/modules/07_appealComplain/views/Form.vue +++ b/src/modules/07_appealComplain/views/Form.vue @@ -1,5 +1,5 @@ @@ -255,7 +255,7 @@ watch( lazy-rules hide-bottom-space /> - +
Date: Thu, 29 Jan 2026 12:06:59 +0700 Subject: [PATCH 6/7] fix:tooltip card organization-chart --- src/modules/01_dashboard/views/Dashboard.vue | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/modules/01_dashboard/views/Dashboard.vue b/src/modules/01_dashboard/views/Dashboard.vue index fa4ac8b..b1298d8 100644 --- a/src/modules/01_dashboard/views/Dashboard.vue +++ b/src/modules/01_dashboard/views/Dashboard.vue @@ -333,6 +333,9 @@ onMounted(async () => { > {{ item.sub }}
+ + อยู่ระหว่างปรับปรุง
From 46709c263d0713d13db4119238b9c2918e84b14c Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Fri, 30 Jan 2026 14:56:24 +0700 Subject: [PATCH 7/7] fix: edit email --- .../01_Information/01_Information.vue | 113 +++++++++--------- 1 file changed, 56 insertions(+), 57 deletions(-) diff --git a/src/modules/10_registry/01_Information/01_Information.vue b/src/modules/10_registry/01_Information/01_Information.vue index 9e30df3..89372f8 100644 --- a/src/modules/10_registry/01_Information/01_Information.vue +++ b/src/modules/10_registry/01_Information/01_Information.vue @@ -351,7 +351,7 @@ async function onSavePhone() { getData(); }); }, - "ยืนยันการแก้ไขเบอร์โทร" + "ยืนยันการแก้ไขเบอร์โทร", ); } } @@ -381,7 +381,7 @@ async function onSaveEmail() { }) .finally(() => {}); }, - "ยืนยันการแก้ไขอีเมล" + "ยืนยันการแก้ไขอีเมล", ); } } @@ -588,7 +588,18 @@ onMounted(async () => {
-
อีเมล
+
+ อีเมล + + + รอยืนยันอีเมล + +
@@ -606,62 +617,50 @@ onMounted(async () => { @change="isValidEmail = true" />
-
-
- - แก้ไขข้อมูล - -
-
- - บันทึก - - - ยกเลิก - -
-
-
- --> +
+ - รอยืนยันอีเมล - + แก้ไขข้อมูล +
+
+ + บันทึก + + + ยกเลิก + +
+