Merge branch 'develop' into dev-tee
This commit is contained in:
commit
7d3c48142c
8 changed files with 1038 additions and 847 deletions
|
|
@ -30,10 +30,8 @@ const orderId = ref<string>("");
|
|||
onUnmounted(() => {
|
||||
destroyLocalStorage();
|
||||
});
|
||||
|
||||
//
|
||||
const nextStep = async () => {
|
||||
// stepper.value!.next();
|
||||
|
||||
localStorage.setItem("currentStep", step.value.toString());
|
||||
if (orderId.value) {
|
||||
await http
|
||||
|
|
@ -47,7 +45,6 @@ const nextStep = async () => {
|
|||
}
|
||||
};
|
||||
const previousStep = async () => {
|
||||
// stepper.value!.previous();
|
||||
localStorage.setItem("currentStep", step.value.toString());
|
||||
if (orderId.value) {
|
||||
await http
|
||||
|
|
@ -75,7 +72,6 @@ onMounted(() => {
|
|||
step.value = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (orderId_params !== undefined) {
|
||||
orderId.value = orderId_params.toString();
|
||||
}
|
||||
|
|
|
|||
516
src/modules/10_order/components/Main.vue
Normal file
516
src/modules/10_order/components/Main.vue
Normal file
|
|
@ -0,0 +1,516 @@
|
|||
<script setup lang="ts">
|
||||
import { onMounted, reactive, ref, useAttrs, computed } from "vue";
|
||||
import type { QTableProps } from "quasar";
|
||||
import type { FormOrderPlacementMainData } from "@/modules/10_order/interface/request/Main";
|
||||
import type {
|
||||
DataOption,
|
||||
DataOption1,
|
||||
} from "@/modules/10_order/interface/index/Main";
|
||||
import { useCounterMixin } from "@/stores/mixin";
|
||||
import { useOrderPlacementDataStore } from "@/modules/10_order/store";
|
||||
import router from "@/router";
|
||||
import { useQuasar } from "quasar";
|
||||
import http from "@/plugins/http";
|
||||
import config from "@/app.config";
|
||||
import PopupHistory from "./PopupHistory.vue";
|
||||
const $q = useQuasar(); //ใช้ noti quasar
|
||||
const mixin = useCounterMixin();
|
||||
const { showLoader, hideLoader, messageError, date2Thai } = mixin;
|
||||
const DataStore = useOrderPlacementDataStore();
|
||||
|
||||
const pagination = ref({
|
||||
// sortBy: "OrderDate,OrderType",
|
||||
descending: true,
|
||||
page: 1,
|
||||
rowsPerPage: 10,
|
||||
});
|
||||
|
||||
const visibleColumns = ref<string[]>([
|
||||
"Order",
|
||||
"OrderType",
|
||||
"OrderNum",
|
||||
"OrderDate",
|
||||
"OrderBy",
|
||||
"Signer",
|
||||
"OrderStatus",
|
||||
]);
|
||||
|
||||
// หัวตาราง
|
||||
const columns = ref<QTableProps["columns"]>([
|
||||
{
|
||||
name: "Order",
|
||||
align: "left",
|
||||
label: "คำสั่ง",
|
||||
sortable: true,
|
||||
field: "Order",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "OrderNum",
|
||||
align: "left",
|
||||
label: "เลขที่คำสั่ง",
|
||||
sortable: true,
|
||||
field: "OrderNum",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
{
|
||||
name: "OrderType",
|
||||
align: "left",
|
||||
label: "ประเภท",
|
||||
sortable: false,
|
||||
field: "OrderType",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "OrderDate",
|
||||
align: "left",
|
||||
label: "สั่ง ณ วันที่/วันที่คำสั่งมีผล",
|
||||
sortable: true,
|
||||
field: "OrderDate",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a, b) => parseInt(a) - parseInt(b),
|
||||
},
|
||||
{
|
||||
name: "OrderBy",
|
||||
align: "left",
|
||||
label: "คำสั่งโดย",
|
||||
sortable: true,
|
||||
field: "OrderBy",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "Signer",
|
||||
align: "left",
|
||||
label: "ผู้ลงนาม",
|
||||
sortable: false,
|
||||
field: "Signer",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "OrderStatus",
|
||||
align: "center",
|
||||
label: "สถานะคำสั่ง",
|
||||
sortable: false,
|
||||
field: "OrderStatus",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "fiscalYear",
|
||||
align: "left",
|
||||
label: "ปีงบประมาณ",
|
||||
sortable: true,
|
||||
field: "fiscalYear",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
},
|
||||
]);
|
||||
// ข้อมูลตาราง (จำลอง)
|
||||
const rows = ref<FormOrderPlacementMainData[]>([]);
|
||||
|
||||
let OriginalData = ref<FormOrderPlacementMainData[]>([]);
|
||||
let UpdataData = ref<FormOrderPlacementMainData[]>([]);
|
||||
|
||||
onMounted(async () => {
|
||||
await OriginalDataFetch();
|
||||
fiscalYearFilter();
|
||||
searchFilterTable();
|
||||
OrderStatusFilter();
|
||||
OrderTypeFilter();
|
||||
});
|
||||
// เรียกรายการออกคำสั่ง
|
||||
const OriginalDataFetch = async () => {
|
||||
showLoader();
|
||||
await http
|
||||
.get(config.API.listOrder())
|
||||
.then((res: any) => {
|
||||
rows.value = res.data.result.map((e: any) => ({
|
||||
orderId: e.orderId,
|
||||
Order: e.orderName,
|
||||
OrderNum:
|
||||
e.orderNo == "" ? "-" : `${e.orderNo}/${Number(e.fiscalYear) + 543}`,
|
||||
fiscalYear: Number(e.fiscalYear),
|
||||
OrderDate: date2Thai(e.orderDate),
|
||||
OrderBy: e.orderBy,
|
||||
Signer: e.signatoryBy,
|
||||
OrderStatus: e.orderStatusName,
|
||||
orderStatusValue: e.orderStatusValue,
|
||||
OrderType: e.orderTypeName,
|
||||
orderTypeValue: e.orderTypeValue,
|
||||
}));
|
||||
})
|
||||
.catch((e: any) => {
|
||||
messageError($q, e);
|
||||
})
|
||||
.finally(async () => {
|
||||
hideLoader();
|
||||
});
|
||||
await DataStore.DataMainOrder(rows.value);
|
||||
OriginalData.value = await DataStore.DataMainOrigOrder;
|
||||
UpdataData.value = OriginalData.value;
|
||||
};
|
||||
|
||||
// ดูรายการหน้าต่อไป
|
||||
const redirectToPage = (id?: string, status?: string) => {
|
||||
let step = 1;
|
||||
switch (status) {
|
||||
case "จัดทำร่างคำสั่ง":
|
||||
step = 1;
|
||||
break;
|
||||
case "บัญชีแนบท้าย":
|
||||
step = 2;
|
||||
break;
|
||||
case "เลือกผู้ได้รับสำเนาคำสั่ง":
|
||||
step = 3;
|
||||
break;
|
||||
default:
|
||||
step = 4;
|
||||
break;
|
||||
}
|
||||
router.push(`/order/detail/${id}?step=${step}`);
|
||||
};
|
||||
// เพิ่มออกคำสั่ง
|
||||
const clickAdd = () => {
|
||||
router.push({ name: "OrderAdd" });
|
||||
};
|
||||
|
||||
// เลือกปีงบประมาณ
|
||||
const fiscalyear = ref<number | null>(0);
|
||||
const fiscalyearOP = reactive<DataOption[]>([{ id: 0, name: "ทั้งหมด" }]);
|
||||
const fiscalYearFilter = async () => {
|
||||
await http.get(config.API.yearOptionsOrder()).then((res) => {
|
||||
const response = res.data.result;
|
||||
fiscalyearOP.push(...response);
|
||||
});
|
||||
};
|
||||
// เรียกประเภทคำสั่ง
|
||||
const OrderType = ref<string>("");
|
||||
const OrderTypeOption = reactive<DataOption1[]>([{ id: "", name: "ทั้งหมด" }]);
|
||||
const OrderTypeFilter = async () => {
|
||||
await http
|
||||
.get(config.API.typeOrder())
|
||||
.then((res) => {
|
||||
const response = res.data.result;
|
||||
OrderTypeOption.push(...response);
|
||||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e);
|
||||
});
|
||||
};
|
||||
const OrderStatus = ref<string>("");
|
||||
const OrderStatusOption = reactive<DataOption1[]>([
|
||||
{ id: "", name: "ทั้งหมด" },
|
||||
]);
|
||||
const addedOrderStatusValues: string[] = [];
|
||||
const OrderStatusFilter = async () => {
|
||||
for (let data of OriginalData.value) {
|
||||
const OrderStatusValue = data.OrderStatus;
|
||||
if (
|
||||
OrderStatusValue === null ||
|
||||
parseInt(OrderStatusValue) > parseInt(OrderStatusValue)
|
||||
) {
|
||||
OrderStatus.value = OrderStatusValue;
|
||||
}
|
||||
|
||||
if (!addedOrderStatusValues.includes(OrderStatusValue)) {
|
||||
OrderStatusOption.push({
|
||||
// id: OrderStatusValue,
|
||||
id: OrderStatusOption.length.toString(),
|
||||
name: OrderStatusValue,
|
||||
});
|
||||
addedOrderStatusValues.push(OrderStatusValue);
|
||||
}
|
||||
}
|
||||
};
|
||||
// ค้นหาในตาราง
|
||||
const filterKeyword = ref<string>("");
|
||||
const filterRef = ref<any>(null);
|
||||
const resetFilter = () => {
|
||||
filterKeyword.value = "";
|
||||
filterRef.value.focus();
|
||||
};
|
||||
|
||||
const attrs = ref<any>(useAttrs());
|
||||
// ค้นหาประเภท และ สถานะ
|
||||
const searchFilterTable = async () => {
|
||||
if (OrderType.value == "ทั้งหมด") {
|
||||
OrderType.value = "";
|
||||
}
|
||||
if (OrderStatus.value == "ทั้งหมด") {
|
||||
OrderStatus.value = "";
|
||||
}
|
||||
await DataStore.DataUpdateOrder(
|
||||
OrderType.value,
|
||||
OrderStatus.value,
|
||||
fiscalyear.value
|
||||
);
|
||||
UpdataData.value = DataStore.DataMainUpdateOrder;
|
||||
};
|
||||
|
||||
const paging = ref<boolean>(true);
|
||||
const paginationLabel = (start: string, end: string, total: string) => {
|
||||
if (paging.value == true) return " " + start + "-" + end + " ใน " + total;
|
||||
else return start + "-" + end + " ใน " + total;
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="toptitle text-dark col-12 row items-center">ออกคำสั่ง</div>
|
||||
<div>
|
||||
<q-card flat bordered class="col-12 q-mt-sm q-pa-md">
|
||||
<div class="row q-col-gutter-sm">
|
||||
<div class="row col-12 q-col-gutter-sm">
|
||||
<q-select
|
||||
class="col-xs-12 col-sm-3 col-md-"
|
||||
v-model="fiscalyear"
|
||||
label="ปีงบประมาณ"
|
||||
dense
|
||||
emit-value
|
||||
map-options
|
||||
:options="fiscalyearOP"
|
||||
option-value="id"
|
||||
option-label="name"
|
||||
lazy-rules
|
||||
hide-bottom-space
|
||||
:readonly="false"
|
||||
:borderless="false"
|
||||
:outlined="true"
|
||||
:hide-dropdown-icon="false"
|
||||
@update:model-value="searchFilterTable"
|
||||
/>
|
||||
<div>
|
||||
<q-btn
|
||||
size="12px"
|
||||
flat
|
||||
round
|
||||
color="add"
|
||||
icon="mdi-plus"
|
||||
@click="clickAdd"
|
||||
>
|
||||
<q-tooltip>เพิ่มข้อมูล</q-tooltip>
|
||||
</q-btn>
|
||||
</div>
|
||||
<q-space />
|
||||
|
||||
<q-input
|
||||
class="col-xs-12 col-sm-3 col-md-2"
|
||||
standout
|
||||
dense
|
||||
v-model="filterKeyword"
|
||||
ref="filterRef"
|
||||
outlined
|
||||
debounce="300"
|
||||
placeholder="ค้นหา"
|
||||
>
|
||||
<template v-slot:append>
|
||||
<q-icon v-if="filterKeyword == ''" name="search" />
|
||||
<q-icon
|
||||
v-if="filterKeyword !== ''"
|
||||
name="clear"
|
||||
class="cursor-pointer"
|
||||
@click="resetFilter"
|
||||
/>
|
||||
</template>
|
||||
</q-input>
|
||||
|
||||
<q-select
|
||||
v-model="visibleColumns"
|
||||
multiple
|
||||
outlined
|
||||
dense
|
||||
options-dense
|
||||
:display-value="$q.lang.table.columns"
|
||||
emit-value
|
||||
map-options
|
||||
:options="columns"
|
||||
option-value="name"
|
||||
options-cover
|
||||
style="min-width: 150px"
|
||||
class="col-xs-12 col-sm-3 col-md-2"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<q-card bordered class="col-12 filter-card q-pa-sm">
|
||||
<div class="row col-12 q-col-gutter-sm">
|
||||
<div class="col-xs-12 col-sm-3 col-md-4">
|
||||
<q-select
|
||||
v-model="OrderType"
|
||||
label="ประเภท"
|
||||
dense
|
||||
emit-value
|
||||
map-options
|
||||
option-label="name"
|
||||
:options="OrderTypeOption"
|
||||
option-value="name"
|
||||
lazy-rules
|
||||
hide-bottom-space
|
||||
:readonly="false"
|
||||
:borderless="false"
|
||||
:outlined="true"
|
||||
:hide-dropdown-icon="false"
|
||||
@update:model-value="searchFilterTable"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-3 col-md-2">
|
||||
<q-select
|
||||
v-model="OrderStatus"
|
||||
label="สถานะ"
|
||||
dense
|
||||
emit-value
|
||||
map-options
|
||||
option-label="name"
|
||||
:options="OrderStatusOption"
|
||||
option-value="name"
|
||||
lazy-rules
|
||||
hide-bottom-space
|
||||
:readonly="false"
|
||||
:borderless="false"
|
||||
:outlined="true"
|
||||
:hide-dropdown-icon="false"
|
||||
@update:model-value="searchFilterTable"
|
||||
/>
|
||||
</div>
|
||||
<q-space />
|
||||
<div><PopupHistory :OrderTypeOption="OrderTypeOption" /></div>
|
||||
</div>
|
||||
</q-card>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<q-table
|
||||
ref="table"
|
||||
:columns="columns"
|
||||
:rows="UpdataData"
|
||||
:filter="filterKeyword"
|
||||
row-key="Order"
|
||||
flat
|
||||
bordered
|
||||
:paging="true"
|
||||
dense
|
||||
class="custom-header-table"
|
||||
v-bind="attrs"
|
||||
:visible-columns="visibleColumns"
|
||||
:pagination-label="paginationLabel"
|
||||
v-model:pagination="pagination"
|
||||
>
|
||||
<template v-slot:header="props">
|
||||
<q-tr :props="props">
|
||||
<q-th v-for="col in props.cols" :key="col.name" :props="props">
|
||||
<span class="text-weight-medium">{{ col.label }}</span>
|
||||
</q-th>
|
||||
<!-- <q-th auto-width /> -->
|
||||
</q-tr>
|
||||
</template>
|
||||
<template v-slot:body="props">
|
||||
<q-tr
|
||||
:props="props"
|
||||
class="cursor-pointer"
|
||||
@click="
|
||||
redirectToPage(props.row.orderId, props.row.OrderStatus)
|
||||
"
|
||||
>
|
||||
<q-td key="Order" :props="props">
|
||||
{{ props.row.Order }}
|
||||
</q-td>
|
||||
<q-td key="OrderNum" :props="props">
|
||||
{{ props.row.OrderNum }}
|
||||
</q-td>
|
||||
<q-td key="OrderType" :props="props">
|
||||
{{ props.row.OrderType }}
|
||||
</q-td>
|
||||
<q-td key="OrderDate" :props="props">
|
||||
{{ props.row.OrderDate }}
|
||||
</q-td>
|
||||
<q-td key="OrderBy" :props="props">
|
||||
{{ props.row.OrderBy }}
|
||||
</q-td>
|
||||
<q-td key="Signer" :props="props">
|
||||
{{ props.row.Signer }}
|
||||
</q-td>
|
||||
<q-td key="OrderStatus" :props="props">
|
||||
{{ props.row.OrderStatus }}
|
||||
</q-td>
|
||||
</q-tr>
|
||||
</template>
|
||||
<template v-slot:pagination="scope">
|
||||
<q-pagination
|
||||
v-model="pagination.page"
|
||||
active-color="primary"
|
||||
color="dark"
|
||||
:max="scope.pagesNumber"
|
||||
:max-pages="5"
|
||||
size="sm"
|
||||
boundary-links
|
||||
direction-links
|
||||
></q-pagination>
|
||||
</template>
|
||||
</q-table>
|
||||
</div>
|
||||
</div>
|
||||
</q-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="scss" scope>
|
||||
.filter-card {
|
||||
background-color: #f1f1f1b0;
|
||||
}
|
||||
|
||||
.toggle-expired-account {
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
font-size: 15px;
|
||||
line-height: 150%;
|
||||
color: #35373c;
|
||||
}
|
||||
|
||||
.icon-color {
|
||||
color: #4154b3;
|
||||
}
|
||||
|
||||
.custom-header-table {
|
||||
max-height: 64vh;
|
||||
|
||||
.q-table tr:nth-child(odd) td {
|
||||
background: white;
|
||||
}
|
||||
|
||||
.q-table tr:nth-child(even) td {
|
||||
background: #f8f8f8;
|
||||
}
|
||||
|
||||
.q-table thead tr {
|
||||
background: #ecebeb;
|
||||
}
|
||||
|
||||
.q-table thead tr th {
|
||||
position: sticky;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* this will be the loading indicator */
|
||||
.q-table thead tr:last-child th {
|
||||
/* height of all previous header rows */
|
||||
top: 48px;
|
||||
}
|
||||
|
||||
.q-table thead tr:first-child th {
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
<script setup lang="ts">
|
||||
import { ref } from "vue";
|
||||
import type { DataOption } from "@/modules/04_registry/components/profileType";
|
||||
import http from "@/plugins/http";
|
||||
import config from "@/app.config";
|
||||
import type { QForm } from "quasar";
|
||||
|
|
@ -10,7 +9,7 @@ import { useRouter } from "vue-router";
|
|||
|
||||
const myForm = ref<QForm>();
|
||||
const mixin = useCounterMixin();
|
||||
const { showLoader, hideLoader, messageError, date2Thai, notifyError } = mixin;
|
||||
const { showLoader, hideLoader, messageError } = mixin;
|
||||
const $q = useQuasar();
|
||||
const router = useRouter();
|
||||
|
||||
|
|
@ -69,7 +68,7 @@ const columns = ref<any["columns"]>([
|
|||
},
|
||||
]);
|
||||
const rows = ref<any>([]);
|
||||
|
||||
// เปิด popup ประวัติ
|
||||
const clickOpenpopup = () => {
|
||||
modal.value = true;
|
||||
employeeClass.value = "";
|
||||
|
|
@ -85,6 +84,7 @@ const clickOpenpopup = () => {
|
|||
reportNo.value = "";
|
||||
}
|
||||
};
|
||||
// ค้นหาประวัติออกคำสั่ง
|
||||
const clickSearch = async () => {
|
||||
await myForm.value!.validate().then((result: boolean) => {
|
||||
if (result) {
|
||||
|
|
@ -98,7 +98,6 @@ const clickSearch = async () => {
|
|||
.post(config.API.searchOrderprofile(), body)
|
||||
.then((res) => {
|
||||
let data = res.data.result;
|
||||
|
||||
if (data.length !== 0) {
|
||||
rows.value = data.map((e: any) => ({
|
||||
id: e.id,
|
||||
|
|
@ -108,7 +107,6 @@ const clickSearch = async () => {
|
|||
position: e.position,
|
||||
}));
|
||||
} else {
|
||||
// notifyError($q, "ไม่มีข้อมูลที่ต้องการค้นหา");
|
||||
rows.value = [];
|
||||
}
|
||||
})
|
||||
|
|
@ -122,12 +120,12 @@ const clickSearch = async () => {
|
|||
}
|
||||
});
|
||||
};
|
||||
// Redirect to ทะเบียนประวัติ
|
||||
const clickRedirect = (id: string) => {
|
||||
router.push(`/registry/${id}`);
|
||||
};
|
||||
const paging = ref<boolean>(true);
|
||||
const pagination = ref({
|
||||
sortBy: "citizenId",
|
||||
descending: false,
|
||||
page: 1,
|
||||
rowsPerPage: 10,
|
||||
|
|
@ -319,10 +317,6 @@ const paginationLabel = (start: number, end: number, total: number) => {
|
|||
</template>
|
||||
</q-table>
|
||||
</q-card-section>
|
||||
|
||||
<!-- <q-card-actions align="right">
|
||||
<q-btn flat label="OK" color="primary" v-close-popup />
|
||||
</q-card-actions> -->
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
</template>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -109,7 +109,7 @@ const conditionData = async () => {
|
|||
await fetchOrder(id);
|
||||
}
|
||||
};
|
||||
|
||||
// เรียกรายชื่อออกคำสั่ง
|
||||
const getData = async (id: string) => {
|
||||
showLoader();
|
||||
await http
|
||||
|
|
@ -141,6 +141,7 @@ const getData = async (id: string) => {
|
|||
hideLoader();
|
||||
});
|
||||
};
|
||||
//เรียกรายละเอียดของคำสั่ง
|
||||
const fetchOrder = async (id: string) => {
|
||||
await http
|
||||
.get(config.API.detailOrder(id))
|
||||
|
|
@ -152,6 +153,7 @@ const fetchOrder = async (id: string) => {
|
|||
messageError($q, err);
|
||||
});
|
||||
};
|
||||
// เช็คคำสั่ง
|
||||
const statuscode = computed(() => {
|
||||
if (
|
||||
orderTypeCode.value === "c-pm-01" ||
|
||||
|
|
@ -170,10 +172,11 @@ const statuscode = computed(() => {
|
|||
}
|
||||
return true;
|
||||
});
|
||||
// ยืนยันลบข้อมูลราชชื่อ
|
||||
const dialogDeleteData = async (id: string) => {
|
||||
dialogRemove($q, () => deleteData(id));
|
||||
};
|
||||
|
||||
// ลบข้อมูลราชชื่อ API
|
||||
const deleteData = async (id: string) => {
|
||||
await http
|
||||
.delete(config.API.personsOrder(id))
|
||||
|
|
@ -188,9 +191,8 @@ const deleteData = async (id: string) => {
|
|||
await conditionData();
|
||||
});
|
||||
};
|
||||
|
||||
// ปรับราชชื่อขึ้น
|
||||
const swapUp = async (id: string) => {
|
||||
// id = personalId
|
||||
await http
|
||||
.put(config.API.swapUpOrder(id))
|
||||
.catch((e) => {
|
||||
|
|
@ -201,9 +203,8 @@ const swapUp = async (id: string) => {
|
|||
hideLoader();
|
||||
});
|
||||
};
|
||||
|
||||
// ปรับราชชื่อลง
|
||||
const swapDown = async (id: string) => {
|
||||
// id = personalId
|
||||
await http
|
||||
.put(config.API.swapDownOrder(id))
|
||||
.catch((e) => {
|
||||
|
|
@ -216,14 +217,13 @@ const swapDown = async (id: string) => {
|
|||
};
|
||||
|
||||
const upDown = async (value: any, up: boolean = true) => {
|
||||
const indexCurrent = value.rowIndex;
|
||||
if (up) {
|
||||
await swapUp(value.row.personalId);
|
||||
} else {
|
||||
await swapDown(value.row.personalId);
|
||||
}
|
||||
};
|
||||
|
||||
// บันทึกเงินเดือน
|
||||
const saveModal = () => {
|
||||
if (myForm.value !== null) {
|
||||
myForm.value.validate().then(async (result: boolean) => {
|
||||
|
|
@ -234,12 +234,13 @@ const saveModal = () => {
|
|||
}
|
||||
};
|
||||
const personalId = ref<string>("");
|
||||
// เปิด popup เงินเดือน
|
||||
const selectModal = (e: any) => {
|
||||
titleName.value = e.name;
|
||||
personalId.value = e.personalId;
|
||||
modalOpenClose(e.personalId);
|
||||
};
|
||||
|
||||
// เปิด popup เงินเดือน
|
||||
const modalOpenClose = async (personalId: string) => {
|
||||
modal.value = !modal.value;
|
||||
if (modal.value) {
|
||||
|
|
@ -249,6 +250,7 @@ const modalOpenClose = async (personalId: string) => {
|
|||
}
|
||||
myForm.value?.reset();
|
||||
};
|
||||
// เรียกข้อมูลเงินเดือนตาม personalId
|
||||
const fetchSalary = async (personalId: string) => {
|
||||
showLoader();
|
||||
await http
|
||||
|
|
@ -283,7 +285,7 @@ const fetchSalary = async (personalId: string) => {
|
|||
hideLoader();
|
||||
});
|
||||
};
|
||||
|
||||
// ยืนยันการแก้ไขข้อมูลเงินเดือน
|
||||
const putSalary = async (salary: any) => {
|
||||
dialogConfirm($q, async () => {
|
||||
showLoader();
|
||||
|
|
@ -298,7 +300,7 @@ const putSalary = async (salary: any) => {
|
|||
}
|
||||
await http
|
||||
.put(config.API.salaryOrder(personalId.value), modalData.value)
|
||||
.then((res: any) => {
|
||||
.then((any) => {
|
||||
success($q, "บันทึกข้อมูลสำเร็จ");
|
||||
})
|
||||
.catch((e) => {
|
||||
|
|
@ -311,7 +313,7 @@ const putSalary = async (salary: any) => {
|
|||
});
|
||||
});
|
||||
};
|
||||
|
||||
// เปิด popup เพิ่มข้อมูลราชชื่อ
|
||||
const modalAddChange = async () => {
|
||||
modalAdd.value = !modalAdd.value;
|
||||
if (modalAdd.value == true) {
|
||||
|
|
@ -325,7 +327,7 @@ const modalAddChange = async () => {
|
|||
}
|
||||
} else await conditionData();
|
||||
};
|
||||
|
||||
// เรียกข้อมูลราขชื่อที่จะเพิ่ม
|
||||
const fetchaddlist = async (id: string) => {
|
||||
showLoader();
|
||||
await http
|
||||
|
|
@ -344,7 +346,6 @@ const fetchaddlist = async (id: string) => {
|
|||
}));
|
||||
rows2.value = list;
|
||||
selected.value = rows.value;
|
||||
// rows2.value = list.filter((e: any) => e.selectStatus === false);
|
||||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e);
|
||||
|
|
@ -353,7 +354,7 @@ const fetchaddlist = async (id: string) => {
|
|||
hideLoader();
|
||||
});
|
||||
};
|
||||
|
||||
// ยืนยันการเพิ่มรายชื่อออกคำสั่ง
|
||||
const saveModalAdd = () => {
|
||||
if (myFormAdd.value !== null) {
|
||||
myFormAdd.value.validate().then(async (result: boolean) => {
|
||||
|
|
@ -372,7 +373,7 @@ const saveModalAdd = () => {
|
|||
});
|
||||
}
|
||||
};
|
||||
|
||||
// เพิ่มราชชื่อ API
|
||||
const addlist = async (data: Object) => {
|
||||
const id = route.params.orderid
|
||||
? route.params.orderid.toString()
|
||||
|
|
@ -393,7 +394,7 @@ const addlist = async (data: Object) => {
|
|||
});
|
||||
}
|
||||
};
|
||||
|
||||
// บันทึกข้อมูล step 2
|
||||
const save = async () => {
|
||||
const check = rows.value.find((x: any) => x.salaryAmount == 0);
|
||||
if (
|
||||
|
|
@ -725,8 +726,7 @@ const pagination = ref({
|
|||
color="public"
|
||||
@click="saveModalAdd"
|
||||
class="q-px-md"
|
||||
><!-- icon="mdi-content-save-outline"
|
||||
<q-tooltip>บันทึก</q-tooltip> -->
|
||||
>
|
||||
</q-btn>
|
||||
</q-card-actions>
|
||||
</q-form>
|
||||
|
|
|
|||
|
|
@ -187,7 +187,7 @@ const listModal = async (id: string) => {
|
|||
hideLoader();
|
||||
});
|
||||
};
|
||||
|
||||
// เช็คค่า orderid
|
||||
const conditionId = async () => {
|
||||
const id = route.params.orderid
|
||||
? route.params.orderid.toString()
|
||||
|
|
@ -198,7 +198,7 @@ const conditionId = async () => {
|
|||
await getData(id);
|
||||
}
|
||||
};
|
||||
|
||||
// เรียก้อมูลใน Table
|
||||
const getData = async (id: string) => {
|
||||
showLoader();
|
||||
await http
|
||||
|
|
@ -214,7 +214,6 @@ const getData = async (id: string) => {
|
|||
if (r.inboxChannel) {
|
||||
selectCopyOrder.push(2);
|
||||
}
|
||||
|
||||
list.push({
|
||||
personalId: r.personalId ?? "",
|
||||
name: r.name ?? "",
|
||||
|
|
@ -243,7 +242,7 @@ const getData = async (id: string) => {
|
|||
hideLoader();
|
||||
});
|
||||
};
|
||||
|
||||
// เลือกราชชื่อจากหน่วยงาน
|
||||
const saveData = async () => {
|
||||
const id = route.params.orderid
|
||||
? route.params.orderid.toString()
|
||||
|
|
@ -281,7 +280,7 @@ const getClass = (val: boolean) => {
|
|||
const clickClose = async () => {
|
||||
modal.value = false;
|
||||
};
|
||||
|
||||
// เปิด popup เพิ่มข้อมูล
|
||||
const clickAdd = async () => {
|
||||
await nodeTree();
|
||||
selected.value = "";
|
||||
|
|
@ -292,11 +291,11 @@ const clickAdd = async () => {
|
|||
myForm.value.reset();
|
||||
}
|
||||
};
|
||||
|
||||
// ยืนยันการลบข้อมูล
|
||||
const clickDelete = (id: string) => {
|
||||
dialogRemove($q, () => deleteData(id));
|
||||
};
|
||||
|
||||
// โหลดโครงสร้าง tree
|
||||
const nodeTree = async () => {
|
||||
showLoader();
|
||||
await http
|
||||
|
|
@ -315,11 +314,11 @@ const nodeTree = async () => {
|
|||
hideLoader();
|
||||
});
|
||||
};
|
||||
|
||||
// เลือกหน่วยงาน
|
||||
const onSelected = async (id: string) => {
|
||||
await listModal(id);
|
||||
};
|
||||
|
||||
// ลบข้อมูลราชชื่อ
|
||||
const deleteData = async (id: string) => {
|
||||
await http
|
||||
.delete(config.API.copyOrderId(id))
|
||||
|
|
@ -334,7 +333,7 @@ const deleteData = async (id: string) => {
|
|||
await conditionId();
|
||||
});
|
||||
};
|
||||
|
||||
// บันทึกข้อมูล step 3
|
||||
const saveDataCopyOrder = async () => {
|
||||
if (myForm.value !== null) {
|
||||
myForm.value.validate().then(async (result: boolean) => {
|
||||
|
|
@ -344,7 +343,7 @@ const saveDataCopyOrder = async () => {
|
|||
});
|
||||
}
|
||||
};
|
||||
|
||||
// บันทึกข้อมูล step 3 API
|
||||
const fetchSaveCopyOrder = async () => {
|
||||
let list: RequestCopyOrder[] = [];
|
||||
rows.value.map((r: DataCopyOrder) => {
|
||||
|
|
@ -522,12 +521,8 @@ const updateData = (row: DataCopyOrder) => {
|
|||
color="public"
|
||||
@click="saveDataCopyOrder"
|
||||
class="q-px-md"
|
||||
><!-- icon="mdi-content-save-outline"
|
||||
<q-tooltip>บันทึก</q-tooltip> -->
|
||||
>
|
||||
</q-btn>
|
||||
<!-- <q-btn flat round color="primary" icon="chevron_right" @click="next">
|
||||
<q-tooltip>ต่อไป</q-tooltip>
|
||||
</q-btn> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -626,20 +621,6 @@ const updateData = (row: DataCopyOrder) => {
|
|||
</template>
|
||||
|
||||
<template v-slot:body-selection="scope">
|
||||
<!-- <q-checkbox
|
||||
keep-color
|
||||
color="primary"
|
||||
dense
|
||||
:model-value="scope.selected"
|
||||
@update:model-value="
|
||||
(val, evt) => {
|
||||
Object.getOwnPropertyDescriptor(scope, 'selected').set(
|
||||
val,
|
||||
evt
|
||||
);
|
||||
}
|
||||
"
|
||||
/> -->
|
||||
<q-checkbox
|
||||
keep-color
|
||||
color="primary"
|
||||
|
|
@ -665,15 +646,6 @@ const updateData = (row: DataCopyOrder) => {
|
|||
</q-card-section>
|
||||
<q-separator />
|
||||
<q-card-actions align="right">
|
||||
<!-- <q-btn
|
||||
flat
|
||||
round
|
||||
color="public"
|
||||
icon="mdi-content-save-outline"
|
||||
@click="clickClose"
|
||||
>
|
||||
<q-tooltip>บันทึก</q-tooltip>
|
||||
</q-btn> -->
|
||||
<q-btn
|
||||
dense
|
||||
unelevated
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ onMounted(async () => {
|
|||
hideLoader();
|
||||
}
|
||||
});
|
||||
|
||||
// เรียกข้อมูลคำสั่ง
|
||||
const getCommandDetail = async () => {
|
||||
await http
|
||||
.get(config.API.detailOrder(orderId.value))
|
||||
|
|
@ -85,7 +85,7 @@ const getCommandDetail = async () => {
|
|||
messageError($q, e);
|
||||
});
|
||||
};
|
||||
|
||||
// โหลดคำสั่ง
|
||||
const downloadCover = async (type: string) => {
|
||||
showLoader();
|
||||
await http
|
||||
|
|
@ -102,7 +102,7 @@ const downloadCover = async (type: string) => {
|
|||
hideLoader();
|
||||
});
|
||||
};
|
||||
|
||||
// โหลด เอกสารแนบท้าย
|
||||
const downloadAttachment = async (type: string) => {
|
||||
showLoader();
|
||||
await http
|
||||
|
|
@ -119,7 +119,7 @@ const downloadAttachment = async (type: string) => {
|
|||
hideLoader();
|
||||
});
|
||||
};
|
||||
|
||||
// เรียกไฟล์ คำสั่ง
|
||||
const fetchReportCover = async (type: string, orderId: string) => {
|
||||
await http
|
||||
.get(config.API.reportOrderCover(type, orderId, code.value), {
|
||||
|
|
@ -137,7 +137,7 @@ const fetchReportCover = async (type: string, orderId: string) => {
|
|||
messageError($q, e);
|
||||
});
|
||||
};
|
||||
|
||||
// เรียกไฟล์ เอกสารแนบท้าย
|
||||
const fetchReportAttachment = async (type: string, orderId: string) => {
|
||||
await http
|
||||
.get(config.API.reportOrderAttachment(type, orderId, code.value), {
|
||||
|
|
@ -159,7 +159,6 @@ const fetchAttachment = async (orderId: string) => {
|
|||
.get(config.API.attachmentOrder(orderId))
|
||||
.then(async (res) => {
|
||||
let response = res.data.result;
|
||||
|
||||
order.value = response.orderNo;
|
||||
years.value = Number(response.orderYear);
|
||||
if (response.date !== undefined) {
|
||||
|
|
@ -176,7 +175,7 @@ const fetchAttachment = async (orderId: string) => {
|
|||
messageError($q, e);
|
||||
});
|
||||
};
|
||||
|
||||
// สถานะคำสั่ง
|
||||
const fecthstatusOrder = async () => {
|
||||
await http
|
||||
.get(config.API.orderReady(orderId.value))
|
||||
|
|
@ -188,7 +187,7 @@ const fecthstatusOrder = async () => {
|
|||
messageError($q, e);
|
||||
});
|
||||
};
|
||||
|
||||
// แสดงไฟล์ PDF
|
||||
const viewPDF = async (pdf: string) => {
|
||||
const pdfData = await usePDF(`${pdf}`);
|
||||
showLoader();
|
||||
|
|
@ -198,7 +197,7 @@ const viewPDF = async (pdf: string) => {
|
|||
hideLoader();
|
||||
}, 1500);
|
||||
};
|
||||
|
||||
// แสดงไฟล์อัพโหล PDF
|
||||
const viewPDFUpload = async (pdf: string) => {
|
||||
const pdfData = await usePDF(`${pdf}`);
|
||||
showLoader();
|
||||
|
|
@ -246,7 +245,7 @@ const onchangePage = (val: any) => {
|
|||
vuePDFRef.value.reload();
|
||||
}
|
||||
};
|
||||
|
||||
// ดาวน์โหลดไฟล์
|
||||
const downloadFile = (response: any, filename: string) => {
|
||||
const link = document.createElement("a");
|
||||
var fileName = filename;
|
||||
|
|
@ -317,7 +316,6 @@ const saveDetail = () => {
|
|||
// แสดงผลส่วนของแนบท้ายใหม่
|
||||
await viewPDF(orderAttachmentPdf.value);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// ดึงข้อมูลสถานะการออกคำสั่ง (Y = ออกคำสั่งได้แล้ว, N = เงื่อนไขยังไม่ครบไม่สามารถกดออกคำสั่งได้)
|
||||
|
|
@ -346,7 +344,7 @@ const putOrderData = async () => {
|
|||
messageError($q, e);
|
||||
});
|
||||
};
|
||||
|
||||
// บันทึกไฟล์คำสั่ง
|
||||
const postfileOrder = async () => {
|
||||
const formData = new FormData();
|
||||
formData.append("File", fileOrder.value);
|
||||
|
|
@ -359,7 +357,7 @@ const postfileOrder = async () => {
|
|||
messageError($q, e);
|
||||
});
|
||||
};
|
||||
|
||||
//บันทึกไฟล์ เอกสารแนบท้าย
|
||||
const postfileTailer = async () => {
|
||||
const formData = new FormData();
|
||||
formData.append("File", fileTailer.value);
|
||||
|
|
@ -372,7 +370,7 @@ const postfileTailer = async () => {
|
|||
messageError($q, e);
|
||||
});
|
||||
};
|
||||
|
||||
// การออกคำสั่ง
|
||||
const clickExecute = async (id: string) => {
|
||||
dialogConfirm(
|
||||
$q,
|
||||
|
|
@ -396,7 +394,6 @@ const clickExecute = async (id: string) => {
|
|||
"ต้องการยืนยันการออกคำสั่งนี้ใช่หรือไม่?"
|
||||
);
|
||||
};
|
||||
|
||||
const validateFormUpload = () => {
|
||||
if (
|
||||
code.value != "c-pm-10" &&
|
||||
|
|
@ -446,61 +443,108 @@ const viewFileUpload = async (url: string) => {
|
|||
<template>
|
||||
<div>
|
||||
<div style="min-height: 70vh">
|
||||
<q-splitter v-model="splitterModel" style="height: 70vh" @update:model-value="onchangePage">
|
||||
<q-splitter
|
||||
v-model="splitterModel"
|
||||
style="height: 70vh"
|
||||
@update:model-value="onchangePage"
|
||||
>
|
||||
<template v-slot:before>
|
||||
<div class="space">
|
||||
<div @click="setTab('main')" :class="getClass(tab == 'main')">
|
||||
<div class="q-pr-sm">คำสั่ง</div>
|
||||
<q-btn v-if="orderStatusName != 'ออกคำสั่งแล้ว'" size="12px" flat dense icon="mdi-download"
|
||||
:disable="tab !== 'main'" :color="tab !== 'main' ? 'grey' : 'add'">
|
||||
<q-btn
|
||||
v-if="orderStatusName != 'ออกคำสั่งแล้ว'"
|
||||
size="12px"
|
||||
flat
|
||||
dense
|
||||
icon="mdi-download"
|
||||
:disable="tab !== 'main'"
|
||||
:color="tab !== 'main' ? 'grey' : 'add'"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลด</q-tooltip>
|
||||
<q-menu>
|
||||
<q-list style="min-width: 150px">
|
||||
<q-item clickable v-close-popup @click="downloadCover('pdf')">
|
||||
<q-item
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="downloadCover('pdf')"
|
||||
>
|
||||
<!-- type="a"
|
||||
:href="orderCoverPdf"
|
||||
target="_blank" -->
|
||||
<q-item-section avatar><q-icon color="red" name="mdi-file-pdf" /></q-item-section>
|
||||
<q-item-section avatar
|
||||
><q-icon color="red" name="mdi-file-pdf"
|
||||
/></q-item-section>
|
||||
<q-item-section>ไฟล์ .PDF</q-item-section>
|
||||
</q-item>
|
||||
<q-item clickable v-close-popup @click="downloadCover('docx')">
|
||||
<q-item
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="downloadCover('docx')"
|
||||
>
|
||||
<!-- type="a"
|
||||
:href="orderCoverDocs"
|
||||
target="_blank" -->
|
||||
<q-item-section avatar><q-icon color="blue" name="mdi-file-word" /></q-item-section>
|
||||
<q-item-section avatar
|
||||
><q-icon color="blue" name="mdi-file-word"
|
||||
/></q-item-section>
|
||||
<q-item-section>ไฟล์ .docx</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-menu>
|
||||
</q-btn>
|
||||
</div>
|
||||
<div v-if="code != 'c-pm-10' &&
|
||||
code != 'c-pm-11' &&
|
||||
code != 'c-pm-12' &&
|
||||
code != 'c-pm-16' &&
|
||||
code != 'c-pm-18' &&
|
||||
code != 'c-pm-19' &&
|
||||
code != 'c-pm-20' &&
|
||||
code != 'c-pm-21'
|
||||
" @click="setTab('second')" :class="getClass(tab == 'second')">
|
||||
<div
|
||||
v-if="
|
||||
code != 'c-pm-10' &&
|
||||
code != 'c-pm-11' &&
|
||||
code != 'c-pm-12' &&
|
||||
code != 'c-pm-16' &&
|
||||
code != 'c-pm-18' &&
|
||||
code != 'c-pm-19' &&
|
||||
code != 'c-pm-20' &&
|
||||
code != 'c-pm-21'
|
||||
"
|
||||
@click="setTab('second')"
|
||||
:class="getClass(tab == 'second')"
|
||||
>
|
||||
<div class="q-pr-sm">เอกสารแนบท้าย</div>
|
||||
<q-btn v-if="orderStatusName != 'ออกคำสั่งแล้ว'" size="12px" flat dense
|
||||
:color="tab !== 'second' ? 'grey' : 'add'" icon="mdi-download" :disable="tab !== 'second'">
|
||||
<q-btn
|
||||
v-if="orderStatusName != 'ออกคำสั่งแล้ว'"
|
||||
size="12px"
|
||||
flat
|
||||
dense
|
||||
:color="tab !== 'second' ? 'grey' : 'add'"
|
||||
icon="mdi-download"
|
||||
:disable="tab !== 'second'"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลด</q-tooltip>
|
||||
<q-menu>
|
||||
<q-list style="min-width: 150px">
|
||||
<q-item clickable v-close-popup @click="downloadAttachment('pdf')">
|
||||
<q-item
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="downloadAttachment('pdf')"
|
||||
>
|
||||
<!-- type="a"
|
||||
:href="orderAttachmentPdf"
|
||||
target="_blank" -->
|
||||
<q-item-section avatar><q-icon color="red" name="mdi-file-pdf" /></q-item-section>
|
||||
<q-item-section avatar
|
||||
><q-icon color="red" name="mdi-file-pdf"
|
||||
/></q-item-section>
|
||||
<q-item-section>ไฟล์ .PDF</q-item-section>
|
||||
</q-item>
|
||||
<q-item clickable v-close-popup @click="downloadAttachment('xlsx')">
|
||||
<q-item
|
||||
clickable
|
||||
v-close-popup
|
||||
@click="downloadAttachment('xlsx')"
|
||||
>
|
||||
<!-- type="a"
|
||||
:href="orderAttachmentXlsx"
|
||||
target="_blank" -->
|
||||
<q-item-section avatar><q-icon color="green-7" name="mdi-file-excel" /></q-item-section>
|
||||
<q-item-section avatar
|
||||
><q-icon color="green-7" name="mdi-file-excel"
|
||||
/></q-item-section>
|
||||
<q-item-section>ไฟล์ .xls</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
|
|
@ -508,12 +552,24 @@ const viewFileUpload = async (url: string) => {
|
|||
</q-btn>
|
||||
</div>
|
||||
<q-space />
|
||||
<q-btn class="text-dark" flat dense icon="mdi-fullscreen" color="add" @click="dialog = true" />
|
||||
<q-btn
|
||||
class="text-dark"
|
||||
flat
|
||||
dense
|
||||
icon="mdi-fullscreen"
|
||||
color="add"
|
||||
@click="dialog = true"
|
||||
/>
|
||||
</div>
|
||||
<q-separator style="margin-top: -1px; z-index: 1" />
|
||||
<q-card bordered class="card-pdf q-ma-md q-pa-md">
|
||||
<div class="justify-between items-center align-center q-pb-sm row">
|
||||
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page > 1 ? page - 1 : page">
|
||||
<q-btn
|
||||
class="text-dark bg-grey-4"
|
||||
flat
|
||||
dense
|
||||
@click="page = page > 1 ? page - 1 : page"
|
||||
>
|
||||
<q-icon name="mdi-chevron-left" />
|
||||
</q-btn>
|
||||
|
||||
|
|
@ -521,7 +577,12 @@ const viewFileUpload = async (url: string) => {
|
|||
หน้าที่ {{ page }} จาก {{ numOfPages }}
|
||||
</span>
|
||||
|
||||
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page < numOfPages ? page + 1 : page">
|
||||
<q-btn
|
||||
class="text-dark bg-grey-4"
|
||||
flat
|
||||
dense
|
||||
@click="page = page < numOfPages ? page + 1 : page"
|
||||
>
|
||||
<q-icon name="mdi-chevron-right" />
|
||||
</q-btn>
|
||||
</div>
|
||||
|
|
@ -530,7 +591,12 @@ const viewFileUpload = async (url: string) => {
|
|||
<!-- <VuePdf :key="page" :src="pdfSrc" :page="page" /> -->
|
||||
</div>
|
||||
<div class="justify-between items-center align-center q-pt-sm row">
|
||||
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page > 1 ? page - 1 : page">
|
||||
<q-btn
|
||||
class="text-dark bg-grey-4"
|
||||
flat
|
||||
dense
|
||||
@click="page = page > 1 ? page - 1 : page"
|
||||
>
|
||||
<q-icon name="mdi-chevron-left" />
|
||||
</q-btn>
|
||||
|
||||
|
|
@ -538,7 +604,12 @@ const viewFileUpload = async (url: string) => {
|
|||
หน้าที่ {{ page }} จาก {{ numOfPages }}
|
||||
</span>
|
||||
|
||||
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page < numOfPages ? page + 1 : page">
|
||||
<q-btn
|
||||
class="text-dark bg-grey-4"
|
||||
flat
|
||||
dense
|
||||
@click="page = page < numOfPages ? page + 1 : page"
|
||||
>
|
||||
<q-icon name="mdi-chevron-right" />
|
||||
</q-btn>
|
||||
</div>
|
||||
|
|
@ -546,7 +617,12 @@ const viewFileUpload = async (url: string) => {
|
|||
</template>
|
||||
|
||||
<template v-slot:separator>
|
||||
<q-avatar color="primary" text-color="white" size="30px" icon="drag_indicator" />
|
||||
<q-avatar
|
||||
color="primary"
|
||||
text-color="white"
|
||||
size="30px"
|
||||
icon="drag_indicator"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<template v-slot:after>
|
||||
|
|
@ -558,47 +634,94 @@ const viewFileUpload = async (url: string) => {
|
|||
<div>
|
||||
<label class="text-file">คำสั่ง</label>
|
||||
<div v-if="OrderPDFUpload != ''" class="text-right">
|
||||
<q-btn size="12px" flat dense color="primary" icon="mdi-eye"
|
||||
@click="viewFileUpload(OrderPDFUpload)">
|
||||
<q-btn
|
||||
size="12px"
|
||||
flat
|
||||
dense
|
||||
color="primary"
|
||||
icon="mdi-eye"
|
||||
@click="viewFileUpload(OrderPDFUpload)"
|
||||
>
|
||||
<q-tooltip>ดูไฟล์คำสั่ง</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn type="a" :href="OrderPDFUpload" download="คำสั่ง.pdf" size="12px" flat dense color="red" icon="mdi-download"
|
||||
target="_blank">
|
||||
<q-btn
|
||||
type="a"
|
||||
:href="OrderPDFUpload"
|
||||
size="12px"
|
||||
flat
|
||||
dense
|
||||
color="red"
|
||||
icon="mdi-download"
|
||||
target="_blank"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลดไฟล์คำสั่ง</q-tooltip>
|
||||
</q-btn>
|
||||
</div>
|
||||
<q-file v-if="orderStatusName != 'ออกคำสั่งแล้ว'" outlined dense v-model="fileOrder"
|
||||
label="เลือกไฟล์คำสั่ง" hide-bottom-space lazy-rules
|
||||
:rules="[(val) => val || 'กรุณาเลือกไฟล์ไฟล์คำสั่ง']" accept=".pdf">
|
||||
<q-file
|
||||
v-if="orderStatusName != 'ออกคำสั่งแล้ว'"
|
||||
outlined
|
||||
dense
|
||||
v-model="fileOrder"
|
||||
label="เลือกไฟล์คำสั่ง"
|
||||
hide-bottom-space
|
||||
lazy-rules
|
||||
:rules="[(val) => val || 'กรุณาเลือกไฟล์ไฟล์คำสั่ง']"
|
||||
accept=".pdf"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="attach_file" />
|
||||
</template>
|
||||
</q-file>
|
||||
</div>
|
||||
<div v-if="code != 'c-pm-10' &&
|
||||
code != 'c-pm-11' &&
|
||||
code != 'c-pm-12' &&
|
||||
code != 'c-pm-16' &&
|
||||
code != 'c-pm-18' &&
|
||||
code != 'c-pm-19' &&
|
||||
code != 'c-pm-20' &&
|
||||
code != 'c-pm-21'
|
||||
">
|
||||
<div
|
||||
v-if="
|
||||
code != 'c-pm-10' &&
|
||||
code != 'c-pm-11' &&
|
||||
code != 'c-pm-12' &&
|
||||
code != 'c-pm-16' &&
|
||||
code != 'c-pm-18' &&
|
||||
code != 'c-pm-19' &&
|
||||
code != 'c-pm-20' &&
|
||||
code != 'c-pm-21'
|
||||
"
|
||||
>
|
||||
<label class="text-file">เอกสารแนบท้าย</label>
|
||||
<div v-if="TailerPDFUpload != ''" class="text-right">
|
||||
<q-btn size="12px" flat dense color="primary" icon="mdi-eye"
|
||||
@click="viewFileUpload(TailerPDFUpload)">
|
||||
<q-btn
|
||||
size="12px"
|
||||
flat
|
||||
dense
|
||||
color="primary"
|
||||
icon="mdi-eye"
|
||||
@click="viewFileUpload(TailerPDFUpload)"
|
||||
>
|
||||
<q-tooltip>ดูเอกสารแนบท้าย</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn type="a" :href="TailerPDFUpload" download="เอกสารแนบท้าย.pdf" size="12px" flat dense color="red" icon="mdi-download"
|
||||
target="_blank">
|
||||
<q-btn
|
||||
type="a"
|
||||
:href="TailerPDFUpload"
|
||||
size="12px"
|
||||
flat
|
||||
dense
|
||||
color="red"
|
||||
icon="mdi-download"
|
||||
target="_blank"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลดเอกสารแนบท้าย</q-tooltip>
|
||||
</q-btn>
|
||||
</div>
|
||||
|
||||
<q-file v-if="orderStatusName != 'ออกคำสั่งแล้ว'" outlined dense v-model="fileTailer"
|
||||
label="เลือกไฟล์เอกสารแนบท้าย" hide-bottom-space lazy-rules
|
||||
:rules="[(val) => val || 'กรุณาเลือกไฟล์เอกสารแนบท้าย']" accept=".pdf">
|
||||
<q-file
|
||||
v-if="orderStatusName != 'ออกคำสั่งแล้ว'"
|
||||
outlined
|
||||
dense
|
||||
v-model="fileTailer"
|
||||
label="เลือกไฟล์เอกสารแนบท้าย"
|
||||
hide-bottom-space
|
||||
lazy-rules
|
||||
:rules="[(val) => val || 'กรุณาเลือกไฟล์เอกสารแนบท้าย']"
|
||||
accept=".pdf"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="attach_file" />
|
||||
</template>
|
||||
|
|
@ -606,15 +729,26 @@ const viewFileUpload = async (url: string) => {
|
|||
</div>
|
||||
|
||||
<!-- บันทึกอัพโหลดเอกสาร -->
|
||||
<div v-if="orderStatusName != 'ออกคำสั่งแล้ว'" class="row col-12 q-mt-md">
|
||||
<div
|
||||
v-if="orderStatusName != 'ออกคำสั่งแล้ว'"
|
||||
class="row col-12 q-mt-md"
|
||||
>
|
||||
<q-space></q-space>
|
||||
<q-btn unelevated label="บันทึก" :color="validateFormUpload() &&
|
||||
orderStatusName != 'ออกคำสั่งแล้ว'
|
||||
? 'public'
|
||||
: 'grey'
|
||||
" :disable="!validateFormUpload() ||
|
||||
orderStatusName == 'ออกคำสั่งแล้ว'
|
||||
" @click="saveUpload">
|
||||
<q-btn
|
||||
unelevated
|
||||
label="บันทึก"
|
||||
:color="
|
||||
validateFormUpload() &&
|
||||
orderStatusName != 'ออกคำสั่งแล้ว'
|
||||
? 'public'
|
||||
: 'grey'
|
||||
"
|
||||
:disable="
|
||||
!validateFormUpload() ||
|
||||
orderStatusName == 'ออกคำสั่งแล้ว'
|
||||
"
|
||||
@click="saveUpload"
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -627,25 +761,54 @@ const viewFileUpload = async (url: string) => {
|
|||
<div class="q-gutter-y-md q-mb-md">
|
||||
<div>
|
||||
<label class="text-file">เลขที่คำสั่ง</label>
|
||||
<q-input :outlined="true" dense lazy-rules :readonly="!true" :borderless="!true" v-model="order"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอกเลขที่คำสั่ง'}`]" hide-bottom-space
|
||||
:label="`${'เลขที่คำสั่ง'}`" :disable="orderStatusName == 'ออกคำสั่งแล้ว'" />
|
||||
<q-input
|
||||
:outlined="true"
|
||||
dense
|
||||
lazy-rules
|
||||
:readonly="!true"
|
||||
:borderless="!true"
|
||||
v-model="order"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอกเลขที่คำสั่ง'}`]"
|
||||
hide-bottom-space
|
||||
:label="`${'เลขที่คำสั่ง'}`"
|
||||
:disable="orderStatusName == 'ออกคำสั่งแล้ว'"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label class="text-file">ปีที่ออกคำสั่ง</label>
|
||||
<datepicker :disabled="orderStatusName == 'ออกคำสั่งแล้ว'" menu-class-name="modalfix" v-model="years"
|
||||
:locale="'th'" autoApply year-picker :enableTimePicker="false" week-start="0">
|
||||
<datepicker
|
||||
:disabled="orderStatusName == 'ออกคำสั่งแล้ว'"
|
||||
menu-class-name="modalfix"
|
||||
v-model="years"
|
||||
:locale="'th'"
|
||||
autoApply
|
||||
year-picker
|
||||
:enableTimePicker="false"
|
||||
week-start="0"
|
||||
>
|
||||
<template #year="{ year }">{{ year + 543 }}</template>
|
||||
<template #year-overlay-value="{ value }">{{
|
||||
parseInt(value + 543)
|
||||
}}</template>
|
||||
<template #trigger>
|
||||
<q-input :disable="orderStatusName == 'ออกคำสั่งแล้ว'" outlined dense lazy-rules
|
||||
:model-value="years + 543" :rules="[
|
||||
<q-input
|
||||
:disable="orderStatusName == 'ออกคำสั่งแล้ว'"
|
||||
outlined
|
||||
dense
|
||||
lazy-rules
|
||||
:model-value="years + 543"
|
||||
:rules="[
|
||||
(val) => !!val || `${'กรุณาเลือกปีที่ออกคำสั่ง'}`,
|
||||
]" hide-bottom-space :label="`${'ปีที่ออกคำสั่ง'}`">
|
||||
]"
|
||||
hide-bottom-space
|
||||
:label="`${'ปีที่ออกคำสั่ง'}`"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="event" class="cursor-pointer" style="color: var(--q-grey)">
|
||||
<q-icon
|
||||
name="event"
|
||||
class="cursor-pointer"
|
||||
style="color: var(--q-grey)"
|
||||
>
|
||||
</q-icon>
|
||||
</template>
|
||||
</q-input>
|
||||
|
|
@ -654,8 +817,16 @@ const viewFileUpload = async (url: string) => {
|
|||
</div>
|
||||
<div>
|
||||
<label class="text-file">วันที่ลงนาม</label>
|
||||
<datepicker :disabled="orderStatusName == 'ออกคำสั่งแล้ว'" menu-class-name="modalfix" v-model="date"
|
||||
:locale="'th'" autoApply borderless :enableTimePicker="false" week-start="0">
|
||||
<datepicker
|
||||
:disabled="orderStatusName == 'ออกคำสั่งแล้ว'"
|
||||
menu-class-name="modalfix"
|
||||
v-model="date"
|
||||
:locale="'th'"
|
||||
autoApply
|
||||
borderless
|
||||
:enableTimePicker="false"
|
||||
week-start="0"
|
||||
>
|
||||
<template #year="{ year }">
|
||||
{{ year + 543 }}
|
||||
</template>
|
||||
|
|
@ -663,13 +834,24 @@ const viewFileUpload = async (url: string) => {
|
|||
{{ parseInt(value + 543) }}
|
||||
</template>
|
||||
<template #trigger>
|
||||
<q-input :disable="orderStatusName == 'ออกคำสั่งแล้ว'" outlined dense
|
||||
class="full-width datepicker" hide-bottom-space
|
||||
:model-value="date != null ? date2Thai(date) : null" :label="`${'วันที่ลงนาม'}`" :rules="[
|
||||
<q-input
|
||||
:disable="orderStatusName == 'ออกคำสั่งแล้ว'"
|
||||
outlined
|
||||
dense
|
||||
class="full-width datepicker"
|
||||
hide-bottom-space
|
||||
:model-value="date != null ? date2Thai(date) : null"
|
||||
:label="`${'วันที่ลงนาม'}`"
|
||||
:rules="[
|
||||
(val) => !!val || `${'กรุณาเลือกวันที่ลงนาม'}`,
|
||||
]">
|
||||
]"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="event" class="cursor-pointer" style="color: var(--q-grey)">
|
||||
<q-icon
|
||||
name="event"
|
||||
class="cursor-pointer"
|
||||
style="color: var(--q-grey)"
|
||||
>
|
||||
</q-icon>
|
||||
</template>
|
||||
</q-input>
|
||||
|
|
@ -678,13 +860,24 @@ const viewFileUpload = async (url: string) => {
|
|||
</div>
|
||||
|
||||
<!-- บันทึกรายละเอียดคำสั่ง -->
|
||||
<div v-if="orderStatusName != 'ออกคำสั่งแล้ว'" class="row col-12 q-mt-md">
|
||||
<div
|
||||
v-if="orderStatusName != 'ออกคำสั่งแล้ว'"
|
||||
class="row col-12 q-mt-md"
|
||||
>
|
||||
<q-space></q-space>
|
||||
<q-btn unelevated label="บันทึก" :color="validateForm() && orderStatusName != 'ออกคำสั่งแล้ว'
|
||||
? 'public'
|
||||
: 'grey'
|
||||
" :disable="!validateForm() || orderStatusName == 'ออกคำสั่งแล้ว'
|
||||
" @click="saveDetail">
|
||||
<q-btn
|
||||
unelevated
|
||||
label="บันทึก"
|
||||
:color="
|
||||
validateForm() && orderStatusName != 'ออกคำสั่งแล้ว'
|
||||
? 'public'
|
||||
: 'grey'
|
||||
"
|
||||
:disable="
|
||||
!validateForm() || orderStatusName == 'ออกคำสั่งแล้ว'
|
||||
"
|
||||
@click="saveDetail"
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -696,13 +889,26 @@ const viewFileUpload = async (url: string) => {
|
|||
</div>
|
||||
<q-separator />
|
||||
<div class="flex justify-end q-pa-sm q-gutter-sm">
|
||||
<q-btn v-if="orderStatusName !== 'ออกคำสั่งแล้ว'" dense outline color="primary" icon="chevron_left"
|
||||
@click="previous" class="q-pr-md" label="เลือกรายชื่อส่งสำเนา">
|
||||
<q-btn
|
||||
v-if="orderStatusName !== 'ออกคำสั่งแล้ว'"
|
||||
dense
|
||||
outline
|
||||
color="primary"
|
||||
icon="chevron_left"
|
||||
@click="previous"
|
||||
class="q-pr-md"
|
||||
label="เลือกรายชื่อส่งสำเนา"
|
||||
>
|
||||
</q-btn>
|
||||
|
||||
<!-- ออกคำสั่ง -->
|
||||
<q-btn v-if="orderStatusName !== 'ออกคำสั่งแล้ว'" :disable="statusOrder == 'N'" unelevated label="ออกคำสั่ง"
|
||||
:color="statusOrder == 'Y' ? 'public' : 'grey'">
|
||||
<q-btn
|
||||
v-if="orderStatusName !== 'ออกคำสั่งแล้ว'"
|
||||
:disable="statusOrder == 'N'"
|
||||
unelevated
|
||||
label="ออกคำสั่ง"
|
||||
:color="statusOrder == 'Y' ? 'public' : 'grey'"
|
||||
>
|
||||
<q-menu>
|
||||
<q-list style="min-width: 150px">
|
||||
<q-item clickable v-close-popup @click="clickExecute(orderId)">
|
||||
|
|
@ -715,18 +921,42 @@ const viewFileUpload = async (url: string) => {
|
|||
</q-menu>
|
||||
</q-btn>
|
||||
|
||||
<q-btn v-else disable unelevated label="ออกคำสั่งเสร็จสิ้น" color="green"></q-btn>
|
||||
<q-btn
|
||||
v-else
|
||||
disable
|
||||
unelevated
|
||||
label="ออกคำสั่งเสร็จสิ้น"
|
||||
color="green"
|
||||
></q-btn>
|
||||
</div>
|
||||
|
||||
<q-dialog v-model="dialog" persistent :maximized="true" transition-show="slide-up" transition-hide="slide-down">
|
||||
<q-dialog
|
||||
v-model="dialog"
|
||||
persistent
|
||||
:maximized="true"
|
||||
transition-show="slide-up"
|
||||
transition-hide="slide-down"
|
||||
>
|
||||
<q-card class="bg-white text-white">
|
||||
<div class="flex justify-end items-center align-center q-mr-md q-mt-sm">
|
||||
<q-btn icon="close" unelevated round dense style="color: #ff8080; background-color: #ffdede" size="12px"
|
||||
v-close-popup />
|
||||
<q-btn
|
||||
icon="close"
|
||||
unelevated
|
||||
round
|
||||
dense
|
||||
style="color: #ff8080; background-color: #ffdede"
|
||||
size="12px"
|
||||
v-close-popup
|
||||
/>
|
||||
</div>
|
||||
<q-card-section bordered class="card-pdf q-ma-md q-pa-md">
|
||||
<div class="justify-between items-center align-center q-pb-sm row">
|
||||
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page > 1 ? page - 1 : page">
|
||||
<q-btn
|
||||
class="text-dark bg-grey-4"
|
||||
flat
|
||||
dense
|
||||
@click="page = page > 1 ? page - 1 : page"
|
||||
>
|
||||
<q-icon name="mdi-chevron-left" />
|
||||
</q-btn>
|
||||
|
||||
|
|
@ -734,16 +964,32 @@ const viewFileUpload = async (url: string) => {
|
|||
หน้าที่ {{ page }} จาก {{ numOfPages }}
|
||||
</span>
|
||||
|
||||
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page < numOfPages ? page + 1 : page">
|
||||
<q-btn
|
||||
class="text-dark bg-grey-4"
|
||||
flat
|
||||
dense
|
||||
@click="page = page < numOfPages ? page + 1 : page"
|
||||
>
|
||||
<q-icon name="mdi-chevron-right" />
|
||||
</q-btn>
|
||||
</div>
|
||||
<div class="pdfWidth">
|
||||
<VuePDF ref="vuePDFRef" :pdf="pdfSrc" :page="page" fit-parent :scale="0.1" />
|
||||
<VuePDF
|
||||
ref="vuePDFRef"
|
||||
:pdf="pdfSrc"
|
||||
:page="page"
|
||||
fit-parent
|
||||
:scale="0.1"
|
||||
/>
|
||||
<!-- <VuePdf :key="page" :src="pdfSrc" :page="page" /> -->
|
||||
</div>
|
||||
<div class="justify-between items-center align-center q-pt-sm row">
|
||||
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page > 1 ? page - 1 : page">
|
||||
<q-btn
|
||||
class="text-dark bg-grey-4"
|
||||
flat
|
||||
dense
|
||||
@click="page = page > 1 ? page - 1 : page"
|
||||
>
|
||||
<q-icon name="mdi-chevron-left" />
|
||||
</q-btn>
|
||||
|
||||
|
|
@ -751,7 +997,12 @@ const viewFileUpload = async (url: string) => {
|
|||
หน้าที่ {{ page }} จาก {{ numOfPages }}
|
||||
</span>
|
||||
|
||||
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page < numOfPages ? page + 1 : page">
|
||||
<q-btn
|
||||
class="text-dark bg-grey-4"
|
||||
flat
|
||||
dense
|
||||
@click="page = page < numOfPages ? page + 1 : page"
|
||||
>
|
||||
<q-icon name="mdi-chevron-right" />
|
||||
</q-btn>
|
||||
</div>
|
||||
|
|
@ -759,16 +1010,33 @@ const viewFileUpload = async (url: string) => {
|
|||
</q-card>
|
||||
</q-dialog>
|
||||
|
||||
<q-dialog v-model="dialogFileUpload" persistent :maximized="true" transition-show="slide-up"
|
||||
transition-hide="slide-down">
|
||||
<q-dialog
|
||||
v-model="dialogFileUpload"
|
||||
persistent
|
||||
:maximized="true"
|
||||
transition-show="slide-up"
|
||||
transition-hide="slide-down"
|
||||
>
|
||||
<q-card class="bg-white text-white">
|
||||
<div class="flex justify-end items-center align-center q-mr-md q-mt-sm">
|
||||
<q-btn icon="close" unelevated round dense style="color: #ff8080; background-color: #ffdede" size="12px"
|
||||
v-close-popup />
|
||||
<q-btn
|
||||
icon="close"
|
||||
unelevated
|
||||
round
|
||||
dense
|
||||
style="color: #ff8080; background-color: #ffdede"
|
||||
size="12px"
|
||||
v-close-popup
|
||||
/>
|
||||
</div>
|
||||
<q-card-section bordered class="card-pdf q-ma-md q-pa-md">
|
||||
<div class="justify-between items-center align-center q-pb-sm row">
|
||||
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page > 1 ? page - 1 : page">
|
||||
<q-btn
|
||||
class="text-dark bg-grey-4"
|
||||
flat
|
||||
dense
|
||||
@click="page = page > 1 ? page - 1 : page"
|
||||
>
|
||||
<q-icon name="mdi-chevron-left" />
|
||||
</q-btn>
|
||||
|
||||
|
|
@ -776,16 +1044,32 @@ const viewFileUpload = async (url: string) => {
|
|||
หน้าที่ {{ page }} จาก {{ numOfPages }}
|
||||
</span>
|
||||
|
||||
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page < numOfPages ? page + 1 : page">
|
||||
<q-btn
|
||||
class="text-dark bg-grey-4"
|
||||
flat
|
||||
dense
|
||||
@click="page = page < numOfPages ? page + 1 : page"
|
||||
>
|
||||
<q-icon name="mdi-chevron-right" />
|
||||
</q-btn>
|
||||
</div>
|
||||
<div class="pdfWidth">
|
||||
<VuePDF ref="vuePDFRef" :pdf="pdfFileUploadSrc" :page="page" fit-parent :scale="0.1" />
|
||||
<VuePDF
|
||||
ref="vuePDFRef"
|
||||
:pdf="pdfFileUploadSrc"
|
||||
:page="page"
|
||||
fit-parent
|
||||
:scale="0.1"
|
||||
/>
|
||||
<!-- <VuePdf :key="page" :src="pdfSrc" :page="page" /> -->
|
||||
</div>
|
||||
<div class="justify-between items-center align-center q-pt-sm row">
|
||||
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page > 1 ? page - 1 : page">
|
||||
<q-btn
|
||||
class="text-dark bg-grey-4"
|
||||
flat
|
||||
dense
|
||||
@click="page = page > 1 ? page - 1 : page"
|
||||
>
|
||||
<q-icon name="mdi-chevron-left" />
|
||||
</q-btn>
|
||||
|
||||
|
|
@ -793,7 +1077,12 @@ const viewFileUpload = async (url: string) => {
|
|||
หน้าที่ {{ page }} จาก {{ numOfPages }}
|
||||
</span>
|
||||
|
||||
<q-btn class="text-dark bg-grey-4" flat dense @click="page = page < numOfPages ? page + 1 : page">
|
||||
<q-btn
|
||||
class="text-dark bg-grey-4"
|
||||
flat
|
||||
dense
|
||||
@click="page = page < numOfPages ? page + 1 : page"
|
||||
>
|
||||
<q-icon name="mdi-chevron-right" />
|
||||
</q-btn>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -87,6 +87,55 @@ export const useOrderPlacementDataStore = defineStore("placementOrder", () => {
|
|||
}
|
||||
};
|
||||
|
||||
const nameOrderFilter = (selectOrder: any) => {
|
||||
switch (selectOrder) {
|
||||
case "C-PM-01":
|
||||
return "บรรจุและแต่งตั้งผู้สอบแข่งขันได้";
|
||||
case "C-PM-02":
|
||||
return "บรรจุและแต่งตั้งผู้ได้รับคัดเลือก";
|
||||
case "C-PM-03":
|
||||
return "แต่งตั้งข้าราชการ";
|
||||
case "C-PM-04":
|
||||
return "ย้ายข้าราชการ";
|
||||
case "C-PM-05":
|
||||
return "แต่งตั้งข้าราชการ";
|
||||
case "C-PM-06":
|
||||
return "แต่งตั้งข้าราชการ";
|
||||
case "C-PM-07":
|
||||
return "ย้ายข้าราชการ";
|
||||
case "C-PM-08":
|
||||
return "บรรจุและแต่งตั้งข้าราชการกรุงเทพมหานครสามัญกลับเข้ารับราชการ";
|
||||
case "C-PM-09":
|
||||
return "บรรจุและแต่งตั้งผู้ออกไปรับราชการทหารกลับเข้ารับราชการ";
|
||||
case "C-PM-10":
|
||||
return "แต่งตั้งคณะกรรมการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ";
|
||||
case "C-PM-11":
|
||||
return "ให้ข้าราชการกรุงเทพมหานครสามัญซึ่งมีผลการทดลองปฏิบัติหน้าที่ราชการไม่ต่ำกว่ามาตรฐานที่กำหนดรับราชการต่อไป";
|
||||
case "C-PM-12":
|
||||
return "ให้ข้าราชการกรุงเทพมหานครสามัญออกจากราชการเพราะผลการทดลองปฏิบัติหน้าที่ราชการต่ำกว่ามาตรฐานที่กำหนด";
|
||||
case "C-PM-13":
|
||||
return "ให้โอนข้าราชการกรุงเทพมหานครสามัญ";
|
||||
case "C-PM-14":
|
||||
return "รับโอนข้าราชการกรุงเทพมหานครสามัญ";
|
||||
case "C-PM-15":
|
||||
return "ให้ข้าราชการช่วยราชการ";
|
||||
case "C-PM-16":
|
||||
return "ให้ข้าราชการกลับไปปฎิบัติงานทางต้นสังกัดเดิม";
|
||||
case "C-PM-17":
|
||||
return "อนุญาตให้ข้าราชการลาออกจากราชการ";
|
||||
case "C-PM-18":
|
||||
return "ลงโทษให้ออกจากราชการ";
|
||||
case "C-PM-19":
|
||||
return "ลงโทษปลดออกจากราชการ";
|
||||
case "C-PM-20":
|
||||
return "ลงโทษไล่ออกจากราชการ";
|
||||
case "C-PM-21":
|
||||
return "จ้างและแต่งตั้งลูกจ้างประจำ";
|
||||
default:
|
||||
return "error";
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
placementOrderData,
|
||||
changePlacementColumns,
|
||||
|
|
@ -96,5 +145,6 @@ export const useOrderPlacementDataStore = defineStore("placementOrder", () => {
|
|||
DataUpdateOrder,
|
||||
DataMainYearSetOrder,
|
||||
DataMainOrder,
|
||||
nameOrderFilter
|
||||
};
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue