Merge branch 'develop' into feat/issue
* develop: fix: edit email fix:tooltip card organization-chart fix: delete import defineProps fix:disable organization-chart ปิดตารางประวัติตำแหน่งไปก่อน ปิดไม่แสดงข้อมูลตำแหน่งและเงินเดือน feat: add position and salary review # Conflicts: # src/api/org/api.org.ts
This commit is contained in:
commit
85738041cf
15 changed files with 1677 additions and 158 deletions
|
|
@ -54,7 +54,8 @@ const items = ref<MenuMainList[]>([
|
|||
icon: "mdi-account-group-outline",
|
||||
title: "แผนผังองค์กร",
|
||||
sub: "ดูแผนผังองค์กร",
|
||||
color: "blue-3",
|
||||
// color: "blue-3",
|
||||
color: "grey-3",
|
||||
path: "/organization-chart",
|
||||
active: false,
|
||||
},
|
||||
|
|
@ -305,8 +306,14 @@ onMounted(async () => {
|
|||
<q-card
|
||||
v-else
|
||||
bordered
|
||||
@click="goToPage(item.path)"
|
||||
class="noactive col-12"
|
||||
@click="
|
||||
item.path === '/organization-chart' ? null : goToPage(item.path)
|
||||
"
|
||||
:class="
|
||||
item.path === '/organization-chart'
|
||||
? 'disabledcard col-12'
|
||||
: 'noactive col-12'
|
||||
"
|
||||
>
|
||||
<div class="col-12">
|
||||
<q-avatar
|
||||
|
|
@ -330,6 +337,9 @@ onMounted(async () => {
|
|||
>
|
||||
{{ item.sub }}
|
||||
</div>
|
||||
<q-tooltip v-if="item.path === '/organization-chart'">
|
||||
อยู่ระหว่างปรับปรุง</q-tooltip
|
||||
>
|
||||
</q-card>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -511,7 +521,7 @@ 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;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { ref, reactive, defineProps, watch } from "vue";
|
||||
import { ref, reactive, watch } from "vue";
|
||||
import { useQuasar } from "quasar";
|
||||
|
||||
import { useCounterMixin } from "@/stores/mixin";
|
||||
|
|
@ -145,7 +145,7 @@ function onSubmit(data: FormDataType) {
|
|||
props.onSubmit(data);
|
||||
},
|
||||
"ยืนยันการบันทึกข้อมูล",
|
||||
"ต้องการยืนยันการบันทึกข้อมูลนี้หรือไม่ ?"
|
||||
"ต้องการยืนยันการบันทึกข้อมูลนี้หรือไม่ ?",
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -160,7 +160,7 @@ watch(
|
|||
formData.position = newValue.position;
|
||||
}
|
||||
},
|
||||
{ deep: true }
|
||||
{ deep: true },
|
||||
);
|
||||
|
||||
watch(
|
||||
|
|
@ -185,7 +185,7 @@ watch(
|
|||
formData.historyStatus = props.data.historyStatus;
|
||||
}
|
||||
},
|
||||
{ deep: true }
|
||||
{ deep: true },
|
||||
);
|
||||
</script>
|
||||
|
||||
|
|
@ -255,7 +255,7 @@ watch(
|
|||
lazy-rules
|
||||
hide-bottom-space
|
||||
/>
|
||||
<q-skeleton v-else type="QSelect" height="40px" />
|
||||
<q-skeleton v-else type="QInput" height="40px" />
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-3">
|
||||
<q-input
|
||||
|
|
|
|||
|
|
@ -351,7 +351,7 @@ async function onSavePhone() {
|
|||
getData();
|
||||
});
|
||||
},
|
||||
"ยืนยันการแก้ไขเบอร์โทร"
|
||||
"ยืนยันการแก้ไขเบอร์โทร",
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -381,7 +381,7 @@ async function onSaveEmail() {
|
|||
})
|
||||
.finally(() => {});
|
||||
},
|
||||
"ยืนยันการแก้ไขอีเมล"
|
||||
"ยืนยันการแก้ไขอีเมล",
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -588,7 +588,18 @@ onMounted(async () => {
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4 text-grey-6 text-weight-medium">อีเมล</div>
|
||||
<div class="col-4 text-grey-6 text-weight-medium">
|
||||
อีเมล
|
||||
|
||||
<q-icon
|
||||
if="emailVerify == 'NOT_VERIFIED'"
|
||||
name="mdi-alert-box"
|
||||
color="warning"
|
||||
size="sm"
|
||||
>
|
||||
<q-tooltip>รอยืนยันอีเมล</q-tooltip>
|
||||
</q-icon>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<div class="row q-col-gutter-sm">
|
||||
<div class="col-9">
|
||||
|
|
@ -606,62 +617,50 @@ onMounted(async () => {
|
|||
@change="isValidEmail = true"
|
||||
/>
|
||||
</div>
|
||||
<div v-if="emailVerify == null" class="self-center col-3">
|
||||
<div v-if="editEmail == false">
|
||||
<q-btn
|
||||
dense
|
||||
flat
|
||||
round
|
||||
icon="edit"
|
||||
color="edit"
|
||||
@click="() => (editEmail = true)"
|
||||
>
|
||||
<q-tooltip>แก้ไขข้อมูล</q-tooltip>
|
||||
</q-btn>
|
||||
</div>
|
||||
<div v-else class="self-center">
|
||||
<q-btn
|
||||
:disable="isCheckEmail"
|
||||
:color="isCheckEmail ? 'grey-6' : 'primary'"
|
||||
dense
|
||||
flat
|
||||
round
|
||||
icon="save"
|
||||
@click="onSaveEmail"
|
||||
>
|
||||
<q-tooltip>บันทึก</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
dense
|
||||
flat
|
||||
round
|
||||
icon="undo"
|
||||
color="red"
|
||||
@click="
|
||||
() => {
|
||||
editEmail = false;
|
||||
formDataInformation.email = email;
|
||||
isValidEmail = true;
|
||||
}
|
||||
"
|
||||
>
|
||||
<q-tooltip>ยกเลิก</q-tooltip>
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-else-if="emailVerify == 'NOT_VERIFIED'"
|
||||
class="self-center col-3"
|
||||
>
|
||||
<q-icon
|
||||
name="mdi-alert-box"
|
||||
color="warning"
|
||||
size="sm"
|
||||
class="selft-center"
|
||||
|
||||
<!-- <div v-if="emailVerify == null" class="self-center col-3"> -->
|
||||
<div v-if="editEmail == false">
|
||||
<q-btn
|
||||
dense
|
||||
flat
|
||||
round
|
||||
icon="edit"
|
||||
color="edit"
|
||||
@click="() => (editEmail = true)"
|
||||
>
|
||||
<q-tooltip>รอยืนยันอีเมล</q-tooltip>
|
||||
</q-icon>
|
||||
<q-tooltip>แก้ไขข้อมูล</q-tooltip>
|
||||
</q-btn>
|
||||
</div>
|
||||
<div v-else class="self-center">
|
||||
<q-btn
|
||||
:disable="isCheckEmail"
|
||||
:color="isCheckEmail ? 'grey-6' : 'primary'"
|
||||
dense
|
||||
flat
|
||||
round
|
||||
icon="save"
|
||||
@click="onSaveEmail"
|
||||
>
|
||||
<q-tooltip>บันทึก</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
dense
|
||||
flat
|
||||
round
|
||||
icon="undo"
|
||||
color="red"
|
||||
@click="
|
||||
() => {
|
||||
editEmail = false;
|
||||
formDataInformation.email = email;
|
||||
isValidEmail = true;
|
||||
}
|
||||
"
|
||||
>
|
||||
<q-tooltip>ยกเลิก</q-tooltip>
|
||||
</q-btn>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ const {
|
|||
} = useCounterMixin();
|
||||
|
||||
const checkType = ref<boolean>(
|
||||
dataPerson.officerType == "OFFICER" ? true : false
|
||||
dataPerson.officerType == "OFFICER" ? true : false,
|
||||
); // เช็คประเภทผู้ใช้งาน
|
||||
const mode = ref<boolean>($q.screen.gt.xs); // เช็คขนาดหน้าจอ ถ้าเป็นขนาดใหญ่กว่า xs จะเป็นโหมดแสดงตาราง
|
||||
const isLoading = reactive({
|
||||
|
|
@ -320,25 +320,25 @@ const columns = computed<QTableColumn[]>(() => {
|
|||
(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<String[]>(
|
||||
baseVisibleColumns.value.filter(
|
||||
(e: string) => e !== "lastUpdateFullName" && e !== "lastUpdatedAt"
|
||||
)
|
||||
(e: string) => e !== "lastUpdateFullName" && e !== "lastUpdatedAt",
|
||||
),
|
||||
);
|
||||
const columnsHistory = computed<QTableColumn[]>(() => {
|
||||
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 () => {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row col-12">
|
||||
<!-- <div class="row col-12">
|
||||
<q-space />
|
||||
<q-input
|
||||
v-if="mode"
|
||||
|
|
@ -522,9 +522,9 @@ onMounted(async () => {
|
|||
:options="columns"
|
||||
:display-value="$q.lang.table.columns"
|
||||
/>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div class="col-12 q-mt-sm">
|
||||
<!-- <div class="col-12 q-mt-sm">
|
||||
<d-table
|
||||
flat
|
||||
dense
|
||||
|
|
@ -649,7 +649,7 @@ onMounted(async () => {
|
|||
</div>
|
||||
</template>
|
||||
</d-table>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
<DialogHistory
|
||||
|
|
|
|||
1061
src/modules/10_registry/components/PositionReview/Table.vue
Normal file
1061
src/modules/10_registry/components/PositionReview/Table.vue
Normal file
File diff suppressed because it is too large
Load diff
76
src/modules/10_registry/interface/review/Edit.ts
Normal file
76
src/modules/10_registry/interface/review/Edit.ts
Normal file
|
|
@ -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 };
|
||||
155
src/modules/10_registry/interface/review/Main.ts
Normal file
155
src/modules/10_registry/interface/review/Main.ts
Normal file
|
|
@ -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,
|
||||
};
|
||||
|
|
@ -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],
|
||||
},
|
||||
},
|
||||
];
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ const {} = mixin;
|
|||
export const useGovernmentPosDataStore = defineStore("GovernmentPos", () => {
|
||||
// commandCode ขอตำแหน่ง
|
||||
const positionCode = ref<number[]>([
|
||||
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<DataOption[]>([]);
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ const router = useRouter();
|
|||
</div>
|
||||
|
||||
<div :class="`row q-my-sm ${$q.screen.gt.xs ? '' : 'mobileClass'}`">
|
||||
<Salary />
|
||||
<!-- <Salary /> -->
|
||||
<Nopaid />
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
/>
|
||||
ข้อมูลทะเบียนประวัติ <q-space />
|
||||
<q-btn
|
||||
color="blue-6"
|
||||
icon="mdi-eye"
|
||||
label="ตรวจสอบข้อมูลตำแหน่งและเงินเดือน"
|
||||
class="q-mr-sm"
|
||||
@click="() => router.push('/registry/position-review')"
|
||||
>
|
||||
<q-tooltip>ไปยังหน้าตรวจสอบข้อมูลตำแหน่งและเงินเดือน</q-tooltip>
|
||||
</q-btn>
|
||||
|
||||
<q-btn
|
||||
color="primary"
|
||||
label="ยื่นคำร้องขอแก้ไขข้อมูล"
|
||||
@click="redirectToPagePetition"
|
||||
@click="() => router.push('/registry/request-edit')"
|
||||
>
|
||||
<q-tooltip>ยื่นคำร้องขอแก้ไขข้อมูล</q-tooltip>
|
||||
</q-btn>
|
||||
|
|
|
|||
197
src/modules/10_registry/views/positionReview.vue
Normal file
197
src/modules/10_registry/views/positionReview.vue
Normal file
|
|
@ -0,0 +1,197 @@
|
|||
<script setup lang="ts">
|
||||
import { ref, onMounted } from "vue";
|
||||
// import { useQuasar } from "quasar";
|
||||
|
||||
// import http from "@/plugins/http";
|
||||
// import config from "@/app.config";
|
||||
// import { useCounterMixin } from "@/stores/mixin";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
// import { useDataStore } from "@/stores/data";
|
||||
|
||||
/** importType*/
|
||||
// import type { DataProfile } from "@/modules/04_registryPerson/interface/index/Edit";
|
||||
|
||||
import Table from "@/modules/10_registry/components/PositionReview/Table.vue";
|
||||
// import DialogEdit from "@/modules/04_registryPerson/views/edit/components/DialogEdit.vue";
|
||||
|
||||
// const dataStore = useDataStore();
|
||||
// const $q = useQuasar();
|
||||
// const { showLoader, hideLoader, messageError, dialogConfirm, success } =
|
||||
// useCounterMixin();
|
||||
// const route = useRoute();
|
||||
const router = useRouter();
|
||||
|
||||
const tabs = ref<string>("CHECKED");
|
||||
const statusCheckEdit = ref<string>("");
|
||||
// const empType = ref<string>(dataStore.officerType);
|
||||
// const profileId = ref<string>(dataStore.profileId);
|
||||
const isConfirmEdit = ref<boolean>(false); //สิทธิ์การแก้ไขข้อมูล
|
||||
// const isConfirmDone = ref<boolean>(false); //สิทธิ์การยืนยันข้อมูล
|
||||
// const modalEdit = ref<boolean>(false);
|
||||
// const modalHistory = ref<boolean>(false);
|
||||
|
||||
/** function ยืนยันเสร็จสิ้นการแก้ไข*/
|
||||
// function onConfirmEdit() {
|
||||
// dialogConfirm(
|
||||
// $q,
|
||||
// () => {
|
||||
// showLoader();
|
||||
// http
|
||||
// .post(config.API.salaryTemp + `/confirm-edit`, {
|
||||
// profileId: profileId.value,
|
||||
// type: empType.value?.toLocaleUpperCase(),
|
||||
// })
|
||||
// .then(async () => {
|
||||
// success($q, "ยืนยันเสร็จสิ้นการแก้ไขสำเร็จ");
|
||||
// })
|
||||
// .catch((err) => {
|
||||
// messageError($q, err);
|
||||
// })
|
||||
// .finally(() => {
|
||||
// hideLoader();
|
||||
// });
|
||||
// },
|
||||
// "ยืนยันเสร็จสิ้นการแก้ไข",
|
||||
// "ต้องการยืนยันเสร็จสิ้นการแก้ไขใช่หรือไม่?",
|
||||
// );
|
||||
// }
|
||||
|
||||
/** function ยืนยันข้อมูลถูกต้อง*/
|
||||
// function onConfirmDone() {
|
||||
// dialogConfirm(
|
||||
// $q,
|
||||
// () => {
|
||||
// showLoader();
|
||||
// http
|
||||
// .post(config.API.salaryTemp + `/confirm-done`, {
|
||||
// profileId: profileId.value,
|
||||
// type: empType.value?.toLocaleUpperCase(),
|
||||
// })
|
||||
// .then(async () => {
|
||||
// success($q, "ยืนยันข้อมูลถูกต้องสำเร็จ");
|
||||
// })
|
||||
// .catch((err) => {
|
||||
// messageError($q, err);
|
||||
// })
|
||||
// .finally(() => {
|
||||
// hideLoader();
|
||||
// });
|
||||
// },
|
||||
// "ยืนยันข้อมูลถูกต้อง",
|
||||
// "ต้องการยืนยันข้อมูลถูกต้องใช่หรือไม่",
|
||||
// );
|
||||
// }
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="row items-center q-gutter-sm q-mb-xs">
|
||||
<div class="toptitle text-white row items-center q-py-xs">
|
||||
<q-btn
|
||||
icon="mdi-arrow-left"
|
||||
unelevated
|
||||
round
|
||||
dense
|
||||
flat
|
||||
color="primary"
|
||||
class="q-mr-sm"
|
||||
@click="router.go(-1)"
|
||||
/>
|
||||
รายการประวัติตำแหน่ง/เงินเดือน
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<q-card flat bordered>
|
||||
<!-- <q-separator v-if="isConfirmEdit || isConfirmDone" />
|
||||
|
||||
<q-card-section v-if="isConfirmEdit || isConfirmDone">
|
||||
<div class="row q-col-gutter-sm justify-center">
|
||||
<div class="row items-center" v-if="isConfirmEdit">
|
||||
<q-btn
|
||||
:disable="
|
||||
statusCheckEdit === 'EDITED' || statusCheckEdit === 'CHECKED'
|
||||
"
|
||||
:color="
|
||||
statusCheckEdit === 'EDITED' || statusCheckEdit === 'CHECKED'
|
||||
? 'grey'
|
||||
: 'public'
|
||||
"
|
||||
outline
|
||||
label="ยืนยันการแก้ไขสำเร็จ"
|
||||
@click.stop.prevent="onConfirmEdit"
|
||||
/>
|
||||
<q-btn
|
||||
flat
|
||||
label="ประวัติการดำเนินการ"
|
||||
class="q-ml-md"
|
||||
color="blue"
|
||||
@click="modalHistory = true"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
class="row items-center"
|
||||
v-if="isConfirmDone && statusCheckEdit === 'EDITED'"
|
||||
>
|
||||
<q-btn
|
||||
color="public"
|
||||
outline
|
||||
label="ยืนยันข้อมูลถูกต้อง"
|
||||
@click.stop.prevent="onConfirmDone"
|
||||
/>
|
||||
<q-btn
|
||||
flat
|
||||
label="ตีกลับให้แก้ไข"
|
||||
class="q-ml-md"
|
||||
color="blue"
|
||||
@click="modalEdit = true"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section> -->
|
||||
|
||||
<q-separator />
|
||||
|
||||
<q-card-section>
|
||||
<!-- <q-tabs
|
||||
v-model="tabs"
|
||||
dense
|
||||
align="left"
|
||||
inline-label
|
||||
class="bg-white text-grey"
|
||||
active-color="primary"
|
||||
indicator-color="primary"
|
||||
>
|
||||
<q-tab name="PENDING" label="รายการตำแหน่ง/เงินเดือนที่กำลังแก้ไข" />
|
||||
<q-tab
|
||||
name="CHECKED"
|
||||
label="แสดงรายการตำแหน่ง/เงินเดือนหลังจากแก้ไขแล้ว"
|
||||
/>
|
||||
</q-tabs>
|
||||
<q-separator />
|
||||
|
||||
<q-tab-panels v-model="tabs" animated>
|
||||
<q-tab-panel name="PENDING">
|
||||
<Table
|
||||
:tabs="tabs"
|
||||
:status-check-edit="statusCheckEdit"
|
||||
:is-confirm-edit="isConfirmEdit"
|
||||
/>
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="CHECKED"> -->
|
||||
<Table
|
||||
:tabs="tabs"
|
||||
:status-check-edit="statusCheckEdit"
|
||||
:is-confirm-edit="isConfirmEdit"
|
||||
/>
|
||||
<!-- </q-tab-panel>
|
||||
</q-tab-panels> -->
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
||||
<!-- <DialogEdit
|
||||
v-model:modal="modalEdit"
|
||||
:emp-type="empType"
|
||||
:fetch-data="fetchDataProfile"
|
||||
/> -->
|
||||
</template>
|
||||
|
||||
<style scoped></style>
|
||||
Loading…
Add table
Add a link
Reference in a new issue