Merge branch 'nice' into develop

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2025-01-28 13:31:18 +07:00
commit 4cd90d73e0
21 changed files with 153 additions and 29 deletions

View file

@ -48,6 +48,9 @@ const dataMapToSend = computed(() => {
citizenId: i.citizenId, citizenId: i.citizenId,
rootId: i.rootId, rootId: i.rootId,
remarkVertical: i.reason, remarkVertical: i.reason,
position: i.position,
posType: i.posTypeName,
posLevel: i.posLevelName,
})); }));
}); });
const visibleColumns2 = ref<string[]>([ const visibleColumns2 = ref<string[]>([

View file

@ -57,6 +57,9 @@ const dataMapToSend = computed(() => {
citizenId: i.citizenId, citizenId: i.citizenId,
rootId: i.rootId, rootId: i.rootId,
remarkVertical: i.reason, remarkVertical: i.reason,
position: i.position,
posType: i.posTypeName,
posLevel: i.posLevelName,
})); }));
}); });
const visibleColumns2 = ref<string[]>([ const visibleColumns2 = ref<string[]>([

View file

@ -16,8 +16,13 @@ import DialogCreateCommand from "@/modules/18_command/components/DialogCreateCom
/** use*/ /** use*/
const $q = useQuasar(); const $q = useQuasar();
const { statusText } = useTransferDataStore(); const { statusText } = useTransferDataStore();
const { dialogConfirm, findOrgNameOld, findPosMasterNoOld, date2Thai,onSearchDataTable } = const {
useCounterMixin(); dialogConfirm,
findOrgNameOld,
findPosMasterNoOld,
date2Thai,
onSearchDataTable,
} = useCounterMixin();
/** props*/ /** props*/
const props = defineProps({ const props = defineProps({
@ -26,9 +31,11 @@ const props = defineProps({
getData: Function, getData: Function,
}); });
const rows2 = defineModel<any[]>('rows2',{required:true}) const rows2 = defineModel<any[]>("rows2", { required: true });
const rows2Data = defineModel<any[]>('rows2Data',{required:true}) const rows2Data = defineModel<any[]>("rows2Data", { required: true });
const filterKeyword2 = defineModel<string>('filterKeyword2',{required:true}) const filterKeyword2 = defineModel<string>("filterKeyword2", {
required: true,
});
const emit = defineEmits(["update:filterKeyword2", "update:selected"]); const emit = defineEmits(["update:filterKeyword2", "update:selected"]);
@ -180,6 +187,9 @@ const dataMapToSend = computed(() => {
lastName: i.lastName, lastName: i.lastName,
citizenId: i.citizenId, citizenId: i.citizenId,
remarkVertical: i.reason, remarkVertical: i.reason,
position: i.positionOld,
posType: i.posTypeNameOld,
posLevel: i.posLevelNameOld,
})); }));
}); });
const modalCommand = ref<boolean>(false); const modalCommand = ref<boolean>(false);
@ -219,10 +229,10 @@ watch(
); );
function onSearch() { function onSearch() {
rows2.value= onSearchDataTable( rows2.value = onSearchDataTable(
filterKeyword2.value, filterKeyword2.value,
rows2Data.value, rows2Data.value,
columns2.value? columns2.value: [] columns2.value ? columns2.value : []
); );
} }
</script> </script>

View file

@ -53,6 +53,9 @@ const dataMapToSend = computed(() => {
lastName: i.lastName, lastName: i.lastName,
citizenId: i.citizenId, citizenId: i.citizenId,
remarkVertical: i.reason, remarkVertical: i.reason,
position: i.positionOld,
posType: i.positionTypeOld,
posLevel: i.positionLevelOld,
})); }));
}); });
const visibleColumns2 = ref<string[]>([ const visibleColumns2 = ref<string[]>([

View file

@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, watch } from "vue"; import { ref, watch, computed } from "vue";
import { useQuasar } from "quasar"; import { useQuasar } from "quasar";
import avatar from "@/assets/avatar_user.jpg"; import avatar from "@/assets/avatar_user.jpg";
@ -21,7 +21,7 @@ const mixin = useCounterMixin();
const route = useRoute(); const route = useRoute();
const DataStore = usePlacementDataStore(); const DataStore = usePlacementDataStore();
const storeCommand = useCommandMainStore(); const storeCommand = useCommandMainStore();
const { dialogConfirm, dateText,onSearchDataTable } = mixin; const { dialogConfirm, dateText, onSearchDataTable } = mixin;
const modal = defineModel<boolean>("modal", { required: true }); const modal = defineModel<boolean>("modal", { required: true });
/** props */ /** props */
@ -144,6 +144,22 @@ const columns = ref<QTableProps["columns"]>([
}, },
]); ]);
const dataMapToSend = computed(() => {
return selected.value.map((i: any) => ({
id: i.id,
profileId: i.profileId,
prefix: i.prefix,
firstName: i.firstName,
lastName: i.lastName,
citizenId: i.citizenId,
rootId: i.rootId,
remarkVertical: i.reason,
position: i.positionCandidate,
posType: i.posTypeCandidateName,
posLevel: i.posLevelCandidateName,
}));
});
/** /**
* ลเตอร คำส * ลเตอร คำส
* @param val าจาก Input * @param val าจาก Input
@ -185,7 +201,6 @@ function closeModal() {
commandType.value = ""; commandType.value = "";
} }
function onSearch() { function onSearch() {
rows.value = onSearchDataTable( rows.value = onSearchDataTable(
filter.value, filter.value,
@ -460,6 +475,6 @@ watch(
<DialogCreateCommand <DialogCreateCommand
v-model:modal="modalCommand" v-model:modal="modalCommand"
:command-type-code="commandType" :command-type-code="commandType"
:persons="selected" :persons="dataMapToSend"
/> />
</template> </template>

View file

@ -26,6 +26,9 @@ const dataMapToSend = computed(() => {
citizenId: i.citizenId, citizenId: i.citizenId,
rootId: i.rootId, rootId: i.rootId,
remarkVertical: i.reason, remarkVertical: i.reason,
position: i.position,
posType: i.posTypeName,
posLevel: i.posLevelName,
})); }));
}); });
const mixin = useCounterMixin(); const mixin = useCounterMixin();

View file

@ -43,6 +43,9 @@ const dataMapToSend = computed(() => {
lastName: i.lastName, lastName: i.lastName,
citizenId: i.citizenId, citizenId: i.citizenId,
remarkVertical: i.reason, remarkVertical: i.reason,
position: i.positionOld,
posType: i.posTypeNameOld,
posLevel: i.posLevelNameOld,
})); }));
}); });
const columns2 = ref<QTableProps["columns"]>([ const columns2 = ref<QTableProps["columns"]>([

View file

@ -14,7 +14,7 @@ import DialogCreateCommand from "@/modules/18_command/components/DialogCreateCom
const $q = useQuasar(); const $q = useQuasar();
const mixin = useCounterMixin(); const mixin = useCounterMixin();
const { statusText } = useTransferDataStore(); const { statusText } = useTransferDataStore();
const { dialogConfirm, date2Thai,onSearchDataTable } = mixin; const { dialogConfirm, date2Thai, onSearchDataTable } = mixin;
const modal = defineModel<boolean>("modal", { required: true }); const modal = defineModel<boolean>("modal", { required: true });
/** props */ /** props */
@ -23,8 +23,8 @@ const props = defineProps({
fetchData: Function, fetchData: Function,
}); });
const rows = defineModel<any[]>('rows',{required:true}) const rows = defineModel<any[]>("rows", { required: true });
const rowsData = defineModel<any[]>('rowsData',{required:true}) const rowsData = defineModel<any[]>("rowsData", { required: true });
const modalCommand = ref<boolean>(false); //- modal const modalCommand = ref<boolean>(false); //- modal
//Table //Table
const selected = ref<ResponseData[]>([]); // const selected = ref<ResponseData[]>([]); //
@ -37,6 +37,9 @@ const dataMapToSend = computed(() => {
lastName: i.lastName, lastName: i.lastName,
citizenId: i.citizenId, citizenId: i.citizenId,
remarkVertical: i.reason, remarkVertical: i.reason,
position: i.positionOld,
posType: i.positionTypeOld,
posLevel: i.positionLevelOld,
})); }));
}); });

View file

@ -61,6 +61,9 @@ const dataMapToSend = computed(() => {
firstName: i.firstName, firstName: i.firstName,
lastName: i.lastName, lastName: i.lastName,
citizenId: i.idcard, citizenId: i.idcard,
position: i.positionOld,
posType: i.positionTypeOld,
posLevel: i.positionLevelOld,
})); }));
}); });

View file

@ -27,6 +27,9 @@ const dataMapToSend = computed(() => {
lastName: i.lastName, lastName: i.lastName,
citizenId: i.citizenId, citizenId: i.citizenId,
rootId: i.rootId, rootId: i.rootId,
position: i.positionOld,
posType: i.positionTypeOld,
posLevel: i.positionLevelOld,
})) }))
: []; : [];
}); });

View file

@ -24,7 +24,7 @@ export const useProbationDataStore = defineStore("probationStore", () => {
evaluate.value = await data.evaluate; evaluate.value = await data.evaluate;
tabs.value = await data.evaluate; tabs.value = await data.evaluate;
}; };
const fecthAssignoutput = (data: any) => { const fecthAssignoutput = async (data: any) => {
assignOutput.value = data.assign_output; assignOutput.value = data.assign_output;
director.value = data.director; director.value = data.director;
person.value = data.person; person.value = data.person;

View file

@ -27,6 +27,9 @@ const dataMapToSend = computed(() => {
citizenId: i.citizenId, citizenId: i.citizenId,
remarkVertical: i.reasonResign, remarkVertical: i.reasonResign,
remarkHorizontal: i.remarkHorizontal, remarkHorizontal: i.remarkHorizontal,
position: i.positionOld,
posType: i.positionTypeOld,
posLevel: i.positionLevelOld,
})); }));
}); });
const mixin = useCounterMixin(); const mixin = useCounterMixin();
@ -159,7 +162,7 @@ const modalCommand = ref<boolean>(false);
/** popup ยืนยันส่งัว */ /** popup ยืนยันส่งัว */
function saveOrder() { function saveOrder() {
console.log(selected.value); console.log(selected.value);
dialogConfirm( dialogConfirm(
$q, $q,
() => { () => {

View file

@ -27,6 +27,9 @@ const dataMapToSend = computed(() => {
citizenId: i.citizenId, citizenId: i.citizenId,
remarkVertical: i.reasonResign, remarkVertical: i.reasonResign,
remarkHorizontal: i.remarkHorizontal, remarkHorizontal: i.remarkHorizontal,
position: i.positionOld,
posType: i.positionTypeOld,
posLevel: i.positionLevelOld,
})); }));
}); });
const mixin = useCounterMixin(); const mixin = useCounterMixin();

View file

@ -38,6 +38,9 @@ const dataMapToSend = computed(() => {
lastName: i.lastName, lastName: i.lastName,
citizenId: i.citizenId, citizenId: i.citizenId,
remarkVertical: i.reason, remarkVertical: i.reason,
position: i.positionOld,
posType: i.positionTypeOld,
posLevel: i.positionLevelOld,
})); }));
}); });
const mixin = useCounterMixin(); const mixin = useCounterMixin();

View file

@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, watch } from "vue"; import { ref, watch, computed } from "vue";
import { useQuasar } from "quasar"; import { useQuasar } from "quasar";
import http from "@/plugins/http"; import http from "@/plugins/http";
@ -174,6 +174,22 @@ const visibleColumns = ref<String[]>([
const modalCommand = ref<boolean>(false); // const modalCommand = ref<boolean>(false); //
const dataMapToSend = computed(() => {
return selected.value.map((i: any) => ({
id: i.id,
profileId: i.profileId,
prefix: i.prefix,
firstName: i.firstName,
lastName: i.lastName,
citizenId: i.citizenId,
rootId: i.rootId,
remarkVertical: i.reason,
position: i.position,
posType: i.posType,
posLevel: i.posLevel ? i.posLevel.toString() : "",
}));
});
/** ฟังก์ชันยืนยันการส่งออกคำสั่ง*/ /** ฟังก์ชันยืนยันการส่งออกคำสั่ง*/
function onClickSendOrder() { function onClickSendOrder() {
if (selected.value.length == 0) { if (selected.value.length == 0) {
@ -337,7 +353,7 @@ watch(
<DialogCreateCommand <DialogCreateCommand
v-model:modal="modalCommand" v-model:modal="modalCommand"
:command-type-code="'C-PM-21'" :command-type-code="'C-PM-21'"
:persons="selected" :persons="dataMapToSend"
/> />
</template> </template>

View file

@ -50,6 +50,9 @@ const dataMapToSend = computed(() => {
firstName: i.firstName, firstName: i.firstName,
lastName: i.lastName, lastName: i.lastName,
citizenId: i.idcard, citizenId: i.idcard,
position: i.positionOld,
posType: i.positionTypeOld,
posLevel: i.positionLevelOld,
})); }));
}); });

View file

@ -32,6 +32,9 @@ const dataMapToSend = computed(() => {
firstName: i.firstName, firstName: i.firstName,
lastName: i.lastName, lastName: i.lastName,
citizenId: i.citizenId, citizenId: i.citizenId,
position: i.positionOld,
posType: i.positionTypeOld,
posLevel: i.positionLevelOld,
})); }));
}); });
@ -290,12 +293,12 @@ watch(
{{ props.rowIndex + 1 }} {{ props.rowIndex + 1 }}
</div> </div>
<div v-else-if="col.name === 'profileType'"> <div v-else-if="col.name === 'profileType'">
{{ {{
props.row.profileType props.row.profileType
? convertType(props.row.profileType.toUpperCase()) ? convertType(props.row.profileType.toUpperCase())
: "-" : "-"
}} }}
</div> </div>
<div v-else> <div v-else>
{{ col.value ? col.value : "-" }} {{ col.value ? col.value : "-" }}
</div> </div>

View file

@ -22,6 +22,9 @@ const dataMapToSend = computed(() => {
firstName: i.firstName, firstName: i.firstName,
lastName: i.lastName, lastName: i.lastName,
citizenId: i.idcard, citizenId: i.idcard,
position: i.positionOld,
posType: i.positionTypeOld,
posLevel: i.positionLevelOld,
})); }));
}); });

View file

@ -159,7 +159,7 @@ async function getListCommandDraf() {
function createCommand(isRedirect: boolean) { function createCommand(isRedirect: boolean) {
dialogConfirm($q, async () => { dialogConfirm($q, async () => {
showLoader(); showLoader();
const data = await props?.persons?.map((e: any) => ({ const data = props?.persons?.map((e: any) => ({
refId: e.id, refId: e.id,
prefix: e.prefix, prefix: e.prefix,
firstName: e.firstName, firstName: e.firstName,
@ -167,6 +167,9 @@ function createCommand(isRedirect: boolean) {
citizenId: e.citizenId, citizenId: e.citizenId,
profileId: e.profileId, profileId: e.profileId,
rootId: e.rootId, rootId: e.rootId,
position: e.position,
posType: e.posType,
posLevel: e.posLevel,
...(e.remarkVertical ? { remarkVertical: e.remarkVertical } : {}), ...(e.remarkVertical ? { remarkVertical: e.remarkVertical } : {}),
...(e.remarkHorizontal ? { remarkHorizontal: e.remarkHorizontal } : {}), ...(e.remarkHorizontal ? { remarkHorizontal: e.remarkHorizontal } : {}),
@ -224,6 +227,9 @@ function addPersonalToCommand(isRedirect: boolean) {
citizenId: e.citizenId, citizenId: e.citizenId,
profileId: e.profileId, profileId: e.profileId,
rootId: e.rootId, rootId: e.rootId,
position: e.position,
posType: e.posType,
posLevel: e.posLevel,
...(e.remarkVertical ? { remarkVertical: e.remarkVertical } : {}), ...(e.remarkVertical ? { remarkVertical: e.remarkVertical } : {}),
...(e.remarkHorizontal ? { remarkHorizontal: e.remarkHorizontal } : {}), ...(e.remarkHorizontal ? { remarkHorizontal: e.remarkHorizontal } : {}),
})); }));
@ -284,7 +290,7 @@ function clearValue() {
async function fetchCommandType() { async function fetchCommandType() {
const data = await storeCommand.getCommandTypes(); // get store const data = await storeCommand.getCommandTypes(); // get store
// filter code // filter code
commandOp.value = await data.filter( commandOp.value = data.filter(
(v: ListCommand) => v.code == props.commandTypeCode (v: ListCommand) => v.code == props.commandTypeCode
); );
commandType.value = commandOp.value[0].id; commandType.value = commandOp.value[0].id;
@ -308,9 +314,10 @@ const tabOptions = ref<TabOptions[]>([
/** ฟังก์ชั่นเช็คการแสดงผล ตรวจสอบว่าเป็นประเภทคำสั่งที่เป็นแบบเลือกได้รายการเดียวไหม ถ้าเป็นแบบรายการเดียวจะซ่อนเลือกคำสั่งที่เป็นแบบร่าง*/ /** ฟังก์ชั่นเช็คการแสดงผล ตรวจสอบว่าเป็นประเภทคำสั่งที่เป็นแบบเลือกได้รายการเดียวไหม ถ้าเป็นแบบรายการเดียวจะซ่อนเลือกคำสั่งที่เป็นแบบร่าง*/
async function displayTab() { async function displayTab() {
isHold.value = isHold.value =
(await (props.commandTypeCode !== "C-PM-10" && (props.commandTypeCode !== "C-PM-10" &&
props.commandTypeCode !== "C-PM-11" && props.commandTypeCode !== "C-PM-11" &&
props.commandTypeCode !== "C-PM-12")) ?? false; props.commandTypeCode !== "C-PM-12") ??
false;
tabOptions.value = isHold.value tabOptions.value = isHold.value
? [ ? [
{ label: "สร้างคำสั่งใหม่", value: "NEW" }, { label: "สร้างคำสั่งใหม่", value: "NEW" },

View file

@ -78,6 +78,9 @@ const dataMapToSend = computed(() => {
firstName: i.firstName, firstName: i.firstName,
lastName: i.lastName, lastName: i.lastName,
citizenId: i.citizenId, citizenId: i.citizenId,
position: i.positionOld,
posType: i.positionTypeOld,
posLevel: i.positionLevelOld,
...(props.systemName?.includes("SALARY") && { ...(props.systemName?.includes("SALARY") && {
amount: i.positionSalaryAmount, amount: i.positionSalaryAmount,
amountSpecial: i.amountSpecial, amountSpecial: i.amountSpecial,

View file

@ -95,6 +95,29 @@ const columns = ref<QTableProps["columns"]>([
return `${row.prefix ?? ""}${row.firstName ?? ""} ${row.lastName ?? ""}`; return `${row.prefix ?? ""}${row.firstName ?? ""} ${row.lastName ?? ""}`;
}, },
}, },
{
name: "position",
align: "left",
label: "ตำแหน่ง",
field: "position",
sortable: true,
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "positionType",
align: "left",
label: "ประเภทตำแหน่ง",
field: "positionType",
sortable: true,
headerStyle: "font-size: 14px",
style: "font-size: 14px",
format(val, row) {
return row.posType
? `${row.posType} ${row.posLevel ? `(${row.posLevel})` : ""}`
: "-";
},
},
{ {
name: "amount", name: "amount",
align: "left", align: "left",
@ -107,8 +130,16 @@ const columns = ref<QTableProps["columns"]>([
headerStyle: "font-size: 14px", headerStyle: "font-size: 14px",
style: "font-size: 14px", style: "font-size: 14px",
}, },
]);
const visibleColumns = ref<String[]>([
"no",
"citizenId",
"fullName",
"amount",
"position",
"positionType",
]); ]);
const visibleColumns = ref<String[]>(["no", "citizenId", "fullName", "amount"]);
const modalSalary = ref<boolean>(false); const modalSalary = ref<boolean>(false);
const titleName = ref<string>(""); const titleName = ref<string>("");