diff --git a/src/components/Dialogs/DialogOrgSelect.vue b/src/components/Dialogs/DialogOrgSelect.vue index 15a41eac6..e0173febc 100644 --- a/src/components/Dialogs/DialogOrgSelect.vue +++ b/src/components/Dialogs/DialogOrgSelect.vue @@ -7,7 +7,6 @@ import http from "@/plugins/http"; import config from "@/app.config"; import { useCounterMixin } from "@/stores/mixin"; import { useStructureTree } from "@/stores/structureTree"; -import { formatPosmasterNo } from "@/utils/function"; import type { QTableProps } from "quasar"; import type { @@ -283,12 +282,12 @@ async function getDataTable(id: string, level: number = 0) { const listPosNo: DataPositionNo[] = dataMain.map((e: PositionMain) => ({ id: e.id, isPosition: e.isPosition, - posMasterNo: formatPosmasterNo( - e.orgShortname, - e.posMasterNoPrefix, - e.posMasterNo.toString(), - e.posMasterNoSuffix - ), + posMasterNo: + e.orgShortname + + (e.posMasterNoPrefix != null ? e.posMasterNoPrefix : "") + + " " + + e.posMasterNo + + (e.posMasterNoSuffix != null ? e.posMasterNoSuffix : ""), positionName: e.positionName, posTypeName: e.posTypeName, posLevelName: e.posLevelName, diff --git a/src/components/Dialogs/DialogOrgSelectEmployee.vue b/src/components/Dialogs/DialogOrgSelectEmployee.vue index 7bd4dde9d..b9a7b1ee5 100644 --- a/src/components/Dialogs/DialogOrgSelectEmployee.vue +++ b/src/components/Dialogs/DialogOrgSelectEmployee.vue @@ -7,7 +7,6 @@ import http from "@/plugins/http"; import config from "@/app.config"; import { useCounterMixin } from "@/stores/mixin"; import { useStructureTree } from "@/stores/structureTree"; -import { formatPosmasterNo } from "@/utils/function"; import type { QTableProps } from "quasar"; import type { @@ -264,12 +263,12 @@ async function getDataTable(id: string, level: number = 0) { const listPosNo: DataPositionNo[] = dataMain.map((e: PositionMain) => ({ id: e.id, isPosition: e.isPosition, - posMasterNo: formatPosmasterNo( - e.orgShortname, - e.posMasterNoPrefix, - e.posMasterNo.toString(), - e.posMasterNoSuffix - ), + posMasterNo: + e.orgShortname + + (e.posMasterNoPrefix != null ? e.posMasterNoPrefix : "") + + " " + + e.posMasterNo + + (e.posMasterNoSuffix != null ? e.posMasterNoSuffix : ""), positionName: e.positionName, posTypeName: e.posTypeName, posLevelName: e.posLevelName, diff --git a/src/modules/02_organization/components/DialogMovePos.vue b/src/modules/02_organization/components/DialogMovePos.vue index 1cf149379..e19999482 100644 --- a/src/modules/02_organization/components/DialogMovePos.vue +++ b/src/modules/02_organization/components/DialogMovePos.vue @@ -48,7 +48,7 @@ const modal = defineModel("modal", { required: true }); let reqMaster = defineModel("reqMaster", { required: true }); const totalPage = defineModel("totalPage", { required: true }); const nodeTree = defineModel("nodeTree", { required: true }); -const columns = defineModel("columns", {}); +const columns = defineModel("columns", {}); const rows = defineModel("rows", { required: true }); const props = defineProps({ fetchDataTree: { diff --git a/src/modules/02_organization/components/TableMain.vue b/src/modules/02_organization/components/TableMain.vue index b307970f0..7d8a2756b 100644 --- a/src/modules/02_organization/components/TableMain.vue +++ b/src/modules/02_organization/components/TableMain.vue @@ -9,7 +9,6 @@ import { checkPermission } from "@/utils/permissions"; import { updateCurrentPage } from "@/utils/function"; import { useOrganizational } from "@/modules/02_organization/store/organizational"; import { useCounterMixin } from "@/stores/mixin"; -import { formatPosmasterNo } from "@/utils/function"; /** importType*/ import type { QTableProps } from "quasar"; @@ -206,14 +205,6 @@ const columns = ref([ sortable: false, field: "posMasterNo", headerStyle: "font-size: 14px", - format(val, row) { - return formatPosmasterNo( - row.orgShortname, - row.posMasterNoPrefix, - row.posMasterNoMain, - row.posMasterNoSuffix - ); - }, style: "font-size: 14px", }, { @@ -1133,7 +1124,7 @@ watch( { posLevelName: e.isSit ? e.profilePoslevel : e.posLevelName, posExecutiveName: e.posExecutiveName, isSit: e.isSit, - orgShortname: e.orgShortname, - posMasterNoPrefix: e.posMasterNoPrefix, - posMasterNoSuffix: e.posMasterNoSuffix, - posMasterNoMain: e.posMasterNo, - })); return newPosMaster || []; diff --git a/src/modules/05_placement/stores/storeSelect.ts b/src/modules/05_placement/stores/storeSelect.ts index 1d98e0b40..c07f26fcb 100644 --- a/src/modules/05_placement/stores/storeSelect.ts +++ b/src/modules/05_placement/stores/storeSelect.ts @@ -1,5 +1,5 @@ import { defineStore } from "pinia"; -import { formatPosmasterNo } from "@/utils/function"; +import { ref } from "vue"; /** importType*/ import type { PositionMaim } from "@/modules/05_placement/interface/response/SelectOrg"; import type { DataPositionNo } from "@/modules/05_placement/interface/index/SelectOrg"; @@ -12,13 +12,12 @@ export const useSelectOrgStore = defineStore("selectorg", () => { const listPosNo: DataPositionNo[] = data.map((e: PositionMaim) => ({ id: e.id, isPosition: e.isPosition, - posMasterNo: formatPosmasterNo( - e.orgShortname, - e.posMasterNoPrefix, - e.posMasterNo.toString(), - e.posMasterNoSuffix - ), - + posMasterNo: + e.orgShortname + + (e.posMasterNoPrefix != null ? e.posMasterNoPrefix : "") + + " " + + e.posMasterNo + + (e.posMasterNoSuffix != null ? e.posMasterNoSuffix : ""), positionName: e.positionName, posTypeName: e.posTypeName, posLevelName: e.posLevelName, diff --git a/src/modules/05_placement/views/04_helpGovernmentMain.vue b/src/modules/05_placement/views/04_helpGovernmentMain.vue index 5e3ab0059..6c167b6a7 100644 --- a/src/modules/05_placement/views/04_helpGovernmentMain.vue +++ b/src/modules/05_placement/views/04_helpGovernmentMain.vue @@ -77,7 +77,7 @@ const columns = ref([ headerStyle: "font-size: 14px", style: "font-size: 14px", format(val, row) { - return row.positionNumberOld ?? "-"; + return findPosMasterNoOld(row); }, }, { diff --git a/src/modules/08_registryEmployee/components/DialogSelectPos.vue b/src/modules/08_registryEmployee/components/DialogSelectPos.vue index 222890238..7602cb043 100644 --- a/src/modules/08_registryEmployee/components/DialogSelectPos.vue +++ b/src/modules/08_registryEmployee/components/DialogSelectPos.vue @@ -5,7 +5,6 @@ import { useQuasar } from "quasar"; import { useRoute } from "vue-router"; import { useCounterMixin } from "@/stores/mixin"; import { useStructureTree } from "@/stores/structureTree"; -import { formatPosmasterNo } from "@/utils/function"; import http from "@/plugins/http"; import config from "@/app.config"; @@ -75,12 +74,7 @@ const columns = ref([ sortable: true, field: "posMasterNo", format(val, row) { - return formatPosmasterNo( - row.orgShortname, - row.posMasterNoPrefix, - row.posMasterNo.toString(), - row.posMasterNoSuffix - ); + return `${row.orgShortname} ${row.posMasterNo}`; }, headerStyle: "font-size: 14px", style: "font-size: 14px", diff --git a/src/modules/12_evaluatePersonal/components/Detail/Tab1.vue b/src/modules/12_evaluatePersonal/components/Detail/Tab1.vue index db954abf1..854f43546 100644 --- a/src/modules/12_evaluatePersonal/components/Detail/Tab1.vue +++ b/src/modules/12_evaluatePersonal/components/Detail/Tab1.vue @@ -50,7 +50,7 @@ const id = ref(route.params.id as string); // id รายการป const isLoadView = ref(false); //แสดง view const modalHistory = ref(false); //แสดง popup ประวัติการประเมิน // ข้อมูลผู้เซ็นเอกสาร -const formCommand = reactive({ +const formCommand = reactive({ elementaryFullName: "", //ชื่อผู้บังคับบัญชาชั้นต้น elementaryPosition: "", //ตำแหน่งผู้บังคับบัญชาชั้นต้น abovelevelFullname: "", //ชื่อผู้บังคับบัญชาเหนือขึ้นไป 1 ระดับ diff --git a/src/modules/12_evaluatePersonal/store/Evaluate.ts b/src/modules/12_evaluatePersonal/store/Evaluate.ts index e0c57c316..96e37b202 100644 --- a/src/modules/12_evaluatePersonal/store/Evaluate.ts +++ b/src/modules/12_evaluatePersonal/store/Evaluate.ts @@ -58,7 +58,6 @@ export const useEvalutuonStore = defineStore("EvalutuonStore", () => { const dataList: EvaluateList[] = data.map( (data: EvaluateRes) => ({ - ...data, id: data.id, citizenId: data.citizenId, fullName: data.fullName, @@ -134,7 +133,7 @@ export const useEvalutuonStore = defineStore("EvalutuonStore", () => { align: "left", label: "เลขที่ตำแหน่ง", sortable: true, - field: "posNo", + field: "positionNumber", headerStyle: "font-size: 14px", style: "font-size: 14px", }, diff --git a/src/modules/12_evaluatePersonal/views/MainPage.vue b/src/modules/12_evaluatePersonal/views/MainPage.vue index c58d47d0f..98676a9fa 100644 --- a/src/modules/12_evaluatePersonal/views/MainPage.vue +++ b/src/modules/12_evaluatePersonal/views/MainPage.vue @@ -351,7 +351,7 @@ onMounted(async () => {
- {{ col.value ? col.value : "-" }} + {{ !col.value ? "-" : col.value }}
diff --git a/src/modules/13_salary/components/04_salaryLists/DialogAddPerson.vue b/src/modules/13_salary/components/04_salaryLists/DialogAddPerson.vue index 77f843078..7804d91fc 100644 --- a/src/modules/13_salary/components/04_salaryLists/DialogAddPerson.vue +++ b/src/modules/13_salary/components/04_salaryLists/DialogAddPerson.vue @@ -5,7 +5,6 @@ import { useQuasar } from "quasar"; import { useCounterMixin } from "@/stores/mixin"; import { useSalaryListSDataStore } from "@/modules/13_salary/store/SalaryListsStore"; import { usePagination } from "@/composables/usePagination"; -import { formatPosmasterNo } from "@/utils/function"; import config from "@/app.config"; import http from "@/plugins/http"; @@ -73,12 +72,9 @@ const columns = ref([ headerStyle: "font-size: 14px", style: "font-size: 14px", format(val, row) { - return formatPosmasterNo( - row.orgShortName, - row.posMasterNoPrefix, - row.posMasterNo, - row.posMasterNoSuffix - ); + return row.orgShortName && row.posMasterNo + ? `${row.orgShortName} ${row.posMasterNo}` + : "-"; }, }, { diff --git a/src/modules/13_salary/components/04_salaryLists/TableTypeOther.vue b/src/modules/13_salary/components/04_salaryLists/TableTypeOther.vue index fadcd0acc..2de930508 100644 --- a/src/modules/13_salary/components/04_salaryLists/TableTypeOther.vue +++ b/src/modules/13_salary/components/04_salaryLists/TableTypeOther.vue @@ -19,7 +19,6 @@ import DialogMoveLevel from "@/modules/13_salary/components/04_salaryLists/Dialo /** importStore*/ import { useCounterMixin } from "@/stores/mixin"; import { useSalaryListSDataStore } from "@/modules/13_salary/store/SalaryListsStore"; -import { formatPosmasterNo } from "@/utils/function"; /** use*/ const $q = useQuasar(); @@ -88,12 +87,9 @@ const baseColumns = ref([ headerStyle: "font-size: 14px", style: "font-size: 14px", format(val, row) { - return formatPosmasterNo( - row.orgShortName, - row.posMasterNoPrefix, - row.posMasterNo, - row.posMasterNoSuffix - ); + return row.orgShortName && row.posMasterNo + ? `${row.orgShortName} ${row.posMasterNo}` + : "-"; }, }, { diff --git a/src/modules/13_salary/components/04_salaryLists/TableTypePending.vue b/src/modules/13_salary/components/04_salaryLists/TableTypePending.vue index c6b5fd7d2..dde372515 100644 --- a/src/modules/13_salary/components/04_salaryLists/TableTypePending.vue +++ b/src/modules/13_salary/components/04_salaryLists/TableTypePending.vue @@ -19,7 +19,6 @@ import DialogInfo from "@/modules/13_salary/components/DialogInfoMain.vue"; /** importStore*/ import { useCounterMixin } from "@/stores/mixin"; import { useSalaryListSDataStore } from "@/modules/13_salary/store/SalaryListsStore"; -import { formatPosmasterNo } from "@/utils/function"; import http from "@/plugins/http"; import config from "@/app.config"; @@ -99,12 +98,9 @@ const columns = ref([ headerStyle: "font-size: 14px", style: "font-size: 14px", format(val, row) { - return formatPosmasterNo( - row.orgShortName, - row.posMasterNoPrefix, - row.posMasterNo, - row.posMasterNoSuffix - ); + return row.orgShortName && row.posMasterNo + ? `${row.orgShortName} ${row.posMasterNo}` + : "-"; }, }, { diff --git a/src/modules/13_salary/components/05_salaryListsEmployee/DialogAddPerson.vue b/src/modules/13_salary/components/05_salaryListsEmployee/DialogAddPerson.vue index 82f7ef43e..e39563a7e 100644 --- a/src/modules/13_salary/components/05_salaryListsEmployee/DialogAddPerson.vue +++ b/src/modules/13_salary/components/05_salaryListsEmployee/DialogAddPerson.vue @@ -5,7 +5,6 @@ import { useQuasar } from "quasar"; import { useCounterMixin } from "@/stores/mixin"; import { useSalaryEmployeeListSDataStore } from "@/modules/13_salary/store/SalaryEmployeeListsStore"; import { usePagination } from "@/composables/usePagination"; -import { formatPosmasterNo } from "@/utils/function"; import config from "@/app.config"; import http from "@/plugins/http"; @@ -72,12 +71,9 @@ const columns = ref([ headerStyle: "font-size: 14px", style: "font-size: 14px", format(val, row) { - return formatPosmasterNo( - row.orgShortName, - row.posMasterNoPrefix, - row.posMasterNo, - row.posMasterNoSuffix - ); + return row.orgShortName && row.posMasterNo + ? `${row.orgShortName} ${row.posMasterNo}` + : "-"; }, }, { diff --git a/src/modules/13_salary/components/05_salaryListsEmployee/TableTypeOther.vue b/src/modules/13_salary/components/05_salaryListsEmployee/TableTypeOther.vue index db57d2c78..b2e24205c 100644 --- a/src/modules/13_salary/components/05_salaryListsEmployee/TableTypeOther.vue +++ b/src/modules/13_salary/components/05_salaryListsEmployee/TableTypeOther.vue @@ -5,7 +5,6 @@ import { useQuasar } from "quasar"; import { checkPermission } from "@/utils/permissions"; import { useCounterMixin } from "@/stores/mixin"; import { useSalaryEmployeeListSDataStore } from "@/modules/13_salary/store/SalaryEmployeeListsStore"; -import { formatPosmasterNo } from "@/utils/function"; import config from "@/app.config"; import http from "@/plugins/http"; @@ -85,14 +84,6 @@ const baseColumns = ref([ field: "orgShortName", headerStyle: "font-size: 14px", style: "font-size: 14px", - format(val, row) { - return formatPosmasterNo( - row.orgShortName, - row.posMasterNoPrefix, - row.posMasterNo, - row.posMasterNoSuffix - ); - }, }, { name: "position", diff --git a/src/modules/13_salary/components/05_salaryListsEmployee/TableTypePending.vue b/src/modules/13_salary/components/05_salaryListsEmployee/TableTypePending.vue index a9559193f..addcdb8e8 100644 --- a/src/modules/13_salary/components/05_salaryListsEmployee/TableTypePending.vue +++ b/src/modules/13_salary/components/05_salaryListsEmployee/TableTypePending.vue @@ -6,7 +6,6 @@ import { checkPermission } from "@/utils/permissions"; import { useCounterMixin } from "@/stores/mixin"; import { useSalaryEmployeeListSDataStore } from "@/modules/13_salary/store/SalaryEmployeeListsStore"; -import { formatPosmasterNo } from "@/utils/function"; import http from "@/plugins/http"; import config from "@/app.config"; @@ -99,12 +98,9 @@ const columns = ref([ headerStyle: "font-size: 14px", style: "font-size: 14px", format(val, row) { - return formatPosmasterNo( - row.orgShortName, - row.posMasterNoPrefix, - row.posMasterNo, - row.posMasterNoSuffix - ); + return row.orgShortName && row.posMasterNo + ? `${row.orgShortName} ${row.posMasterNo}` + : "-"; }, }, diff --git a/src/modules/16_positionEmployee/components/DialogSuccession.vue b/src/modules/16_positionEmployee/components/DialogSuccession.vue index ab23c6dd1..7674c2df8 100644 --- a/src/modules/16_positionEmployee/components/DialogSuccession.vue +++ b/src/modules/16_positionEmployee/components/DialogSuccession.vue @@ -5,7 +5,6 @@ import { useQuasar } from "quasar"; import { useRoute } from "vue-router"; import { useCounterMixin } from "@/stores/mixin"; import { usePositionEmp } from "@/modules/16_positionEmployee/store/organizational"; -import { formatPosmasterNo } from "@/utils/function"; import http from "@/plugins/http"; import config from "@/app.config"; @@ -136,12 +135,11 @@ async function fetchTable() { const data = res.data.result.data; const list = data.map((e: PosMaster) => ({ ...e, - posMasterNo: formatPosmasterNo( - e.orgShortname, - e.posMasterNoPrefix, - e.posMasterNo.toString(), - e.posMasterNoSuffix ?? "" - ), + posMasterNo: + (e.orgShortname !== null ? e.orgShortname : "") + + (e.posMasterNoPrefix ? e.posMasterNoPrefix : "") + + (e.posMasterNo !== null ? e.posMasterNo : "") + + (e.posMasterNoSuffix !== null ? e.posMasterNoPrefix : ""), })); rows.value = list; }) @@ -159,7 +157,7 @@ function updatePagination(newPagination: NewPagination) { reqMaster.page = 1; } -/** +/** funcion ค้นหาข้อมูลใน Table */ async function filterKeyword() { diff --git a/src/modules/16_positionEmployee/components/TableMain.vue b/src/modules/16_positionEmployee/components/TableMain.vue index cd8e93380..8943c2423 100644 --- a/src/modules/16_positionEmployee/components/TableMain.vue +++ b/src/modules/16_positionEmployee/components/TableMain.vue @@ -5,7 +5,7 @@ import { useQuasar } from "quasar"; import { usePositionEmp } from "@/modules/16_positionEmployee/store/organizational"; import { useCounterMixin } from "@/stores/mixin"; import { checkPermission } from "@/utils/permissions"; -import { updateCurrentPage, formatPosmasterNo } from "@/utils/function"; +import { updateCurrentPage } from "@/utils/function"; import genreport from "@/plugins/genreportxlsx"; import config from "@/app.config"; import http from "@/plugins/http"; @@ -145,13 +145,6 @@ const columns = ref([ label: "ตำแหน่งเลขที่", sortable: false, field: "posMasterNo", - format: (val: any, row: any) => - formatPosmasterNo( - row.orgShortname, - row.posMasterNoPrefix, - row.posMasterNoMain, - row.posMasterNoSuffix - ), headerStyle: "font-size: 14px", style: "font-size: 14px", }, diff --git a/src/modules/16_positionEmployee/store/organizational.ts b/src/modules/16_positionEmployee/store/organizational.ts index 9640493a9..a42db6646 100644 --- a/src/modules/16_positionEmployee/store/organizational.ts +++ b/src/modules/16_positionEmployee/store/organizational.ts @@ -80,10 +80,6 @@ export const usePositionEmp = defineStore("positionEmpStore", () => { posLevelName: e.isSit ? e.profilePoslevel : e.posLevelName, posExecutiveName: e.posExecutiveName, isSit: e.isSit, - orgShortname: e.orgShortname, - posMasterNoPrefix: e.posMasterNoPrefix, - posMasterNoMain: e.posMasterNo, - posMasterNoSuffix: e.posMasterNoSuffix, })); return newPosMaster; diff --git a/src/modules/19_condition/view/Main.vue b/src/modules/19_condition/view/Main.vue index 9eb28f71f..585e60005 100644 --- a/src/modules/19_condition/view/Main.vue +++ b/src/modules/19_condition/view/Main.vue @@ -6,7 +6,6 @@ import { storeToRefs } from "pinia"; import { useCounterMixin } from "@/stores/mixin"; import { useRoute } from "vue-router"; import { useStructureTree } from "@/stores/structureTree"; -import { formatPosmasterNo } from "@/utils/function"; import http from "@/plugins/http"; import config from "@/app.config"; @@ -72,18 +71,8 @@ const columns = ref([ field: "posMasterNo", format(val, row) { return row.isSit - ? formatPosmasterNo( - row.orgShortname, - row.posMasterNoPrefix, - row.posMasterNo, - row.posMasterNoSuffix - ) + " (นั่งทับตำแหน่ง)" - : formatPosmasterNo( - row.orgShortname, - row.posMasterNoPrefix, - row.posMasterNo, - row.posMasterNoSuffix - ); + ? `${row.orgShortname} ${row.posMasterNo}(นั่งทับตำแหน่ง)` + : `${row.orgShortname} ${row.posMasterNo}`; }, headerStyle: "font-size: 14px", style: "font-size: 14px", @@ -218,7 +207,7 @@ async function fetchDataTree() { function onSelectedOrgTree(data: OrgTree) { orgTreeId.value = data.orgTreeId; orgLevel.value = data.orgLevel; - onSearchDataTable(); + fetchDataTable(); } /** diff --git a/src/modules/20_positionTemp/components/DialogMovePos.vue b/src/modules/20_positionTemp/components/DialogMovePos.vue index e00d143b8..c3815f1c3 100644 --- a/src/modules/20_positionTemp/components/DialogMovePos.vue +++ b/src/modules/20_positionTemp/components/DialogMovePos.vue @@ -50,7 +50,7 @@ const modal = defineModel("modal", { required: true }); let reqMaster = defineModel("reqMaster", { required: true }); const totalPage = defineModel("totalPage", { required: true }); const nodeTree = defineModel("nodeTree", { required: true }); -const columns = defineModel("columns", {}); +const columns = defineModel("columns", {}); const rows = defineModel("rows", { required: true }); const props = defineProps({ fetchDataTree: { diff --git a/src/modules/20_positionTemp/components/DialogSuccession.vue b/src/modules/20_positionTemp/components/DialogSuccession.vue index 7bd6d3868..ae11d089c 100644 --- a/src/modules/20_positionTemp/components/DialogSuccession.vue +++ b/src/modules/20_positionTemp/components/DialogSuccession.vue @@ -5,7 +5,6 @@ import { useQuasar } from "quasar"; import { useRoute } from "vue-router"; import { useCounterMixin } from "@/stores/mixin"; import { usePositionEmp } from "@/modules/20_positionTemp/store/organizational"; -import { formatPosmasterNo } from "@/utils/function"; import http from "@/plugins/http"; import config from "@/app.config"; @@ -136,12 +135,11 @@ async function fetchTable() { const data = res.data.result.data; const list = data.map((e: PosMaster) => ({ ...e, - posMasterNo: formatPosmasterNo( - e.orgShortname, - e.posMasterNoPrefix, - e.posMasterNo.toString(), - e.posMasterNoSuffix ?? "" - ), + posMasterNo: + (e.orgShortname !== null ? e.orgShortname : "") + + (e.posMasterNoPrefix ? e.posMasterNoPrefix : "") + + (e.posMasterNo !== null ? e.posMasterNo : "") + + (e.posMasterNoSuffix !== null ? e.posMasterNoPrefix : ""), })); rows.value = list; }) diff --git a/src/modules/20_positionTemp/components/TableMain.vue b/src/modules/20_positionTemp/components/TableMain.vue index f19377051..8de8c9db3 100644 --- a/src/modules/20_positionTemp/components/TableMain.vue +++ b/src/modules/20_positionTemp/components/TableMain.vue @@ -719,7 +719,7 @@ watch(