Merge branch 'nice' into develop

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-08-14 15:22:52 +07:00
commit 9c2a299197
6 changed files with 195 additions and 130 deletions

View file

@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, ref, computed, reactive, watch } from "vue"; import { onMounted, ref, computed, reactive, watch } from "vue";
import { checkPermission } from "@/utils/permissions";
import { useQuasar, QForm } from "quasar"; import { useQuasar, QForm } from "quasar";
import http from "@/plugins/http"; import http from "@/plugins/http";
import config from "@/app.config"; import config from "@/app.config";
@ -14,6 +14,7 @@ import DialogPopupReason from "@/components/Dialogs/PopupReason.vue";
import DialogInformation from "@/components/Dialogs/Information.vue"; import DialogInformation from "@/components/Dialogs/Information.vue";
import DialogHeader from "@/components/DialogHeader.vue"; import DialogHeader from "@/components/DialogHeader.vue";
import btnDownloadFile from "@/modules/07_insignia/components/2_Manage/downloadFile.vue"; import btnDownloadFile from "@/modules/07_insignia/components/2_Manage/downloadFile.vue";
import PopupPersonal from "@/components/Dialogs/PopupPersonalNew.vue";
/** import Stores*/ /** import Stores*/
import { useInsigniaDataStore } from "@/modules/07_insignia/store"; import { useInsigniaDataStore } from "@/modules/07_insignia/store";
@ -49,6 +50,7 @@ const dialogTitle = ref<string>("");
const dialogDesc = ref<string>(""); const dialogDesc = ref<string>("");
const typeinsigniaOptions = ref<any>(DataStore.typeinsigniaOptions); const typeinsigniaOptions = ref<any>(DataStore.typeinsigniaOptions);
const employeeClassOps = ref<any>(DataStore.employeeClassOps); const employeeClassOps = ref<any>(DataStore.employeeClassOps);
const modalPersonal = ref<boolean>(false);
/**แจ้งเตือน*/ /**แจ้งเตือน*/
const dialogWarn = ref<boolean>(false); const dialogWarn = ref<boolean>(false);
@ -334,40 +336,6 @@ async function fecthlistperson(id: string = "") {
.finally(() => { .finally(() => {
hideLoader(); hideLoader();
}); });
// let data = [{}];
// data = [
// {
// criteriaType: "is_retire",
// criteriaValue: "false",
// },
// {
// criteriaType: "is_probation",
// criteriaValue: "false",
// },
// ];
// await http
// .post(config.API.profileSearchNewOcIdType(id, "officer"), {
// criterias: data,
// })
// .then((res) => {
// let data = res.data.result.map((e: any) => ({
// id: e.id,
// citizenId: e.citizenId,
// fullname: e.fullname == null ? "-" : e.fullname,
// position: e.position == null ? "-" : e.position,
// level: e.positionEmployeeLevel == null ? "-" : e.positionEmployeeLevel,
// organizationOrganization: e.oc == null ? "-" : e.oc,
// }));
// modalAdd.value = true;
// rows2.value = data;
// })
// .catch((e) => {
// messageError($q, e);
// })
// .finally(() => {
// hideLoader();
// });
} }
/** update ค่า เเถวข้อมูล */ /** update ค่า เเถวข้อมูล */
@ -692,12 +660,21 @@ async function fecthInsignia() {
}); });
} }
function onclickViewinfo(id: string) {}
const personId = ref<string>("");
/** /**
* function redirect to ทะเบยนประว * function redirect to ทะเบยนประว
* @param id profileId * @param id profileId
*/ */
function nextPage(id: string) { function nextPage(id: string) {
router.push(`/registry-officer/${id}`); modalPersonal.value = true;
personId.value = id;
// router.push(`/registry-officer/${id}`);
}
function updatemodalPersonal(modal: boolean) {
modalPersonal.value = modal;
} }
/** ค้นหาข้อมุล table*/ /** ค้นหาข้อมุล table*/
@ -994,11 +971,11 @@ onMounted(async () => {
<q-space /> <q-space />
<div> <div>
<q-btn <q-btn
v-if="checkPermission($route)?.attrIsGet"
:disable=" :disable="
DataStore.employeeClass === 'all' || DataStore.employeeClass === 'all' ||
DataStore.typeinsignia === 'all' DataStore.typeinsignia === 'all'
" "
size="md"
icon="mdi-download" icon="mdi-download"
flat flat
round round
@ -1008,7 +985,6 @@ onMounted(async () => {
<q-tooltip>ดาวนโหลด</q-tooltip> <q-tooltip>ดาวนโหลด</q-tooltip>
</q-btn> </q-btn>
<q-btn <q-btn
size="12px"
flat flat
round round
color="add" color="add"
@ -1018,7 +994,7 @@ onMounted(async () => {
(DataStore.isLock == false && (DataStore.isLock == false &&
DataStore.requestStatus == 'st5' && DataStore.requestStatus == 'st5' &&
roleDataStore.adminRole) || roleDataStore.adminRole) ||
checkStatus == true (checkStatus == true && checkPermission($route)?.attrIsCreate)
" "
> >
<q-tooltip>เพ</q-tooltip> <q-tooltip>เพ</q-tooltip>
@ -1051,6 +1027,7 @@ onMounted(async () => {
checkStatus == true checkStatus == true
" "
/> />
<q-th v-else auto-width></q-th>
<q-th auto-width></q-th> <q-th auto-width></q-th>
<q-th v-for="col in props.cols" :key="col.name" :props="props"> <q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span> <span class="text-weight-medium">{{ col.label }}</span>
@ -1058,13 +1035,8 @@ onMounted(async () => {
</q-tr> </q-tr>
</template> </template>
<template v-slot:body="props"> <template v-slot:body="props">
<q-tr <q-tr :props="props">
:props="props"
class="cursor-pointer"
@click.stop="nextPage(props.row.profileId)"
>
<q-td <q-td
v-close-popup
auto-width auto-width
v-if=" v-if="
(DataStore.isLock == false && (DataStore.isLock == false &&
@ -1077,46 +1049,57 @@ onMounted(async () => {
v-if=" v-if="
roleDataStore.adminRole || roleDataStore.adminRole ||
(roleDataStore.insignia1Role && (roleDataStore.insignia1Role &&
(requestStatus == 'st1' || requestStatus == 'st4')) (requestStatus == 'st1' || requestStatus == 'st4') &&
(checkPermission($route)?.attrIsGet ||
checkPermission($route)?.attrIsUpdate))
" "
icon="mdi-dots-vertical"
size="12px"
color="grey-7"
flat flat
round
dense dense
@click.stop color="secondary"
icon="mdi-dots-horizontal-circle-outline"
round
> >
<q-menu transition-show="jump-down" transition-hide="jump-up"> <q-menu transition-show="jump-down" transition-hide="jump-up">
<q-list dense style="min-width: 250px"> <q-list dense>
<!-- อมลทะเบยนประว -->
<q-item <q-item
v-if="checkPermission($route)?.attrIsGet"
clickable
@click.stop="nextPage(props.row.profileId)"
v-close-popup
>
<q-item-section style="min-width: 0px" avatar>
<q-icon color="info" size="xs" name="mdi-eye" />
</q-item-section>
<q-item-section>อมลทะเบยนประว</q-item-section>
</q-item>
<!-- แกไขเครองราชฯ นขอ -->
<q-item
v-if="
checkPermission($route)?.attrIsGet &&
checkPermission($route)?.attrIsUpdate
"
clickable clickable
@click.stop="clickmodalEdit(props.row)" @click.stop="clickmodalEdit(props.row)"
v-close-popup v-close-popup
> >
<q-item-section <q-item-section style="min-width: 0px" avatar>
style="min-width: 0px" <q-icon color="edit" size="xs" name="edit" />
avatar
class="q-py-sm"
>
<q-tooltip>แกไขเครองราชฯ นขอ</q-tooltip>
<q-icon color="primary" size="xs" name="mdi-pencil" />
</q-item-section> </q-item-section>
<q-item-section <q-item-section
>แกไขเครองราชฯ นขอ</q-item-section >แกไขเครองราชฯ นขอ</q-item-section
> >
</q-item> </q-item>
<!-- ไมนขอ -->
<q-item <q-item
v-if="checkPermission($route)?.attrIsUpdate"
clickable clickable
@click.stop="clickReject(props.row.id)" @click.stop="clickReject(props.row.id)"
v-close-popup v-close-popup
> >
<q-item-section <q-item-section style="min-width: 0px" avatar>
style="min-width: 0px"
avatar
class="q-py-sm"
>
<q-tooltip>ไมนขอ</q-tooltip>
<q-icon <q-icon
color="blue" color="blue"
size="xs" size="xs"
@ -1125,18 +1108,16 @@ onMounted(async () => {
</q-item-section> </q-item-section>
<q-item-section>ไมนขอ</q-item-section> <q-item-section>ไมนขอ</q-item-section>
</q-item> </q-item>
<!-- ลบออก -->
<q-item <q-item
v-if="checkPermission($route)?.attrIsUpdate"
clickable clickable
@click.stop="clickDelete(props.row.id)" @click.stop="clickDelete(props.row.id)"
v-close-popup v-close-popup
> >
<q-item-section <q-item-section style="min-width: 0px" avatar>
style="min-width: 0px" <q-icon color="red" size="xs" name="delete" />
avatar
class="q-py-sm"
>
<q-tooltip>ลบออก</q-tooltip>
<q-icon color="red" size="xs" name="mdi-delete" />
</q-item-section> </q-item-section>
<q-item-section>ลบออก</q-item-section> <q-item-section>ลบออก</q-item-section>
</q-item> </q-item>
@ -1145,9 +1126,26 @@ onMounted(async () => {
</q-btn> </q-btn>
</q-td> </q-td>
<q-td v-else auto-width>
<q-btn
v-if="checkPermission($route)?.attrIsGet"
icon="mdi-eye"
color="info"
flat
round
dense
@click.stop="nextPage(props.row.profileId)"
>
<q-tooltip>อมลทะเบยนประว</q-tooltip>
</q-btn>
</q-td>
<q-td auto-width> <q-td auto-width>
<btnDownloadFile <btnDownloadFile
v-if="props.row.insigniaSend == 'เหรียญจักรพรรดิมาลา'" v-if="
props.row.insigniaSend == 'เหรียญจักรพรรดิมาลา' &&
checkPermission($route)?.attrIsGet
"
:profileId="props.row.profileId" :profileId="props.row.profileId"
:round="DataStore.roundId" :round="DataStore.roundId"
:optionRound="DataStore.optionRound" :optionRound="DataStore.optionRound"
@ -1189,9 +1187,8 @@ onMounted(async () => {
</q-td> </q-td>
<q-td key="note" class="text-center"> <q-td key="note" class="text-center">
<q-btn <q-btn
v-if="props.row.reason" v-if="props.row.reason && checkPermission($route)?.attrIsGet"
icon="mdi-information-outline" icon="mdi-information-outline"
size="12px"
color="blue" color="blue"
flat flat
round round
@ -1203,9 +1200,10 @@ onMounted(async () => {
</q-td> </q-td>
<q-td key="warn" class="text-center"> <q-td key="warn" class="text-center">
<q-btn <q-btn
v-if="props.row.statusMark" v-if="
props.row.statusMark && checkPermission($route)?.attrIsGet
"
icon="mdi-information-outline" icon="mdi-information-outline"
size="12px"
color="red" color="red"
flat flat
round round
@ -1231,25 +1229,9 @@ onMounted(async () => {
<q-dialog v-model="modalAdd" persistent> <q-dialog v-model="modalAdd" persistent>
<q-card style="width: 900px; max-width: 80vw"> <q-card style="width: 900px; max-width: 80vw">
<DialogHeader tittle="เพิ่มรายชื่อ" :close="onCloseModalAdd" /> <DialogHeader tittle="เพิ่มรายชื่อ" :close="onCloseModalAdd" />
<!-- <q-toolbar class="q-py-md">
<q-toolbar-title class="text-h6"> </q-toolbar-title>
<q-btn
icon="close"
unelevated
round
dense
@click="
(modalAdd = false),
(formFilter.page = 1),
(formFilter.pageSize = 10),
(formFilter.searchField = 'citizenId'),
(formFilter.searchKeyword = '')
"
style="color: #ff8080; background-color: #ffdede"
/>
</q-toolbar> -->
<q-separator /> <q-separator />
<q-card-section class="q-pa-sm bg-grey-1"> <q-card-section class="q-pa-sm bg-grey-1">
<div class="row col-12 q-col-gutter-sm"> <div class="row col-12 q-col-gutter-sm">
<div class="col-xs-12 col-sm-7"> <div class="col-xs-12 col-sm-7">
@ -1425,6 +1407,7 @@ onMounted(async () => {
</div> </div>
</div> </div>
</q-card-section> </q-card-section>
<q-separator /> <q-separator />
<q-card-actions align="right"> <q-card-actions align="right">
<q-btn unelevated label="บันทึก" color="public" @click="clickAdd"> <q-btn unelevated label="บันทึก" color="public" @click="clickAdd">
@ -1544,4 +1527,10 @@ onMounted(async () => {
</div> </div>
</q-card> </q-card>
</q-dialog> </q-dialog>
<PopupPersonal
:modal="modalPersonal"
:id="personId"
@update:modal="updatemodalPersonal"
/>
</template> </template>

View file

@ -1,12 +1,14 @@
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, ref, watch, reactive } from "vue"; import { onMounted, ref } from "vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { checkPermission } from "@/utils/permissions";
/** import Type*/ /** import Type*/
import type { QTableProps } from "quasar"; import type { QTableProps } from "quasar";
/** import components*/ /** import components*/
import DialogInformation from "@/components/Dialogs/Information.vue"; import DialogInformation from "@/components/Dialogs/Information.vue";
import PopupPersonal from "@/components/Dialogs/PopupPersonalNew.vue";
/** import Stores */ /** import Stores */
import { useInsigniaDataStore } from "@/modules/07_insignia/store"; import { useInsigniaDataStore } from "@/modules/07_insignia/store";
@ -167,12 +169,21 @@ function changtypeOc() {
DataStore.typeOc = organization.value; DataStore.typeOc = organization.value;
} }
const modalPersonal = ref<boolean>(false);
const personId = ref<string>("");
/** /**
* function redirect ทะเบยนประว * function redirect ทะเบยนประว
* @param id profileId * @param id profileId
*/ */
function nextPage(id: string) { function nextPage(id: string) {
router.push(`/registry-officer/${id}`); modalPersonal.value = true;
personId.value = id;
// router.push(`/registry-officer/${id}`);
}
function updatemodalPersonal(modal: boolean) {
modalPersonal.value = modal;
} }
/** filter table*/ /** filter table*/
@ -450,26 +461,22 @@ onMounted(async () => {
<q-th v-for="col in props.cols" :key="col.name" :props="props"> <q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span> <span class="text-weight-medium">{{ col.label }}</span>
</q-th> </q-th>
<q-th auto-width />
</q-tr> </q-tr>
</template> </template>
<template v-slot:body="props"> <template v-slot:body="props">
<q-tr <q-tr :props="props">
:props="props" <q-td auto-width>
class="cursor-pointer"
@click="nextPage(props.row.profileId)"
>
<q-td v-if="props.row.requestNote != null" auto-width>
<q-btn <q-btn
v-if="checkPermission($route)?.attrIsGet"
dense dense
size="12px"
flat flat
round round
color="blue" color="info"
@click.stop @click="nextPage(props.row.profileId)"
@click="showReson(props.row.name, props.row.requestNote)" icon="mdi-eye"
icon="mdi-information-outline"
> >
<q-tooltip>เหตผลการไมนขอ</q-tooltip> <q-tooltip>อมลทะเบยนประว</q-tooltip>
</q-btn> </q-btn>
</q-td> </q-td>
<q-td key="no" :props="props"> <q-td key="no" :props="props">
@ -502,6 +509,21 @@ onMounted(async () => {
<q-td key="insigniaLevel" :props="props"> <q-td key="insigniaLevel" :props="props">
{{ props.row.insigniaLevel }} {{ props.row.insigniaLevel }}
</q-td> </q-td>
<q-td auto-width>
<q-btn
v-if="props.row.requestNote != null && checkPermission($route)?.attrIsGet"
dense
flat
round
color="blue"
@click.pervent="
showReson(props.row.name, props.row.requestNote)
"
icon="mdi-information-outline"
>
<q-tooltip>เหตผลการไมนขอ</q-tooltip>
</q-btn>
</q-td>
</q-tr> </q-tr>
</template> </template>
</d-table> </d-table>
@ -515,4 +537,10 @@ onMounted(async () => {
</div> </div>
</div> </div>
</div> </div>
<PopupPersonal
:modal="modalPersonal"
:id="personId"
@update:modal="updatemodalPersonal"
/>
</template> </template>

View file

@ -2,12 +2,14 @@
import { onMounted, ref, watch, reactive } from "vue"; import { onMounted, ref, watch, reactive } from "vue";
import { useQuasar } from "quasar"; import { useQuasar } from "quasar";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { checkPermission } from "@/utils/permissions";
/** import Type*/ /** import Type*/
import type { QTableProps } from "quasar"; import type { QTableProps } from "quasar";
/** import components*/ /** import components*/
import DialogInformation from "@/components/Dialogs/Information.vue"; import DialogInformation from "@/components/Dialogs/Information.vue";
import PopupPersonal from "@/components/Dialogs/PopupPersonalNew.vue";
/** import Stores */ /** import Stores */
import { useInsigniaDataStore } from "@/modules/07_insignia/store"; import { useInsigniaDataStore } from "@/modules/07_insignia/store";
@ -167,12 +169,21 @@ async function changtypeOc() {
DataStore.typeOc = organization.value; DataStore.typeOc = organization.value;
} }
const modalPersonal = ref<boolean>(false);
const personId = ref<string>("");
/** /**
* function redirect ทะเบยนประว * function redirect ทะเบยนประว
* @param id profileId * @param id profileId
*/ */
function nextPage(id: string) { function nextPage(id: string) {
router.push(`/registry-officer/${id}`); modalPersonal.value = true;
personId.value = id;
// router.push(`/registry-officer/${id}`);
}
function updatemodalPersonal(modal: boolean) {
modalPersonal.value = modal;
} }
/** ข้อมูล Table*/ /** ข้อมูล Table*/
@ -449,25 +460,22 @@ onMounted(async () => {
<q-th v-for="col in props.cols" :key="col.name" :props="props"> <q-th v-for="col in props.cols" :key="col.name" :props="props">
<span class="text-weight-medium">{{ col.label }}</span> <span class="text-weight-medium">{{ col.label }}</span>
</q-th> </q-th>
<q-th auto-width />
</q-tr> </q-tr>
</template> </template>
<template v-slot:body="props"> <template v-slot:body="props">
<q-tr <q-tr :props="props">
:props="props" <q-td auto-width>
class="cursor-pointer"
@click="nextPage(props.row.profileId)"
>
<q-td v-if="props.row.requestNote != null" auto-width>
<q-btn <q-btn
v-if="checkPermission($route)?.attrIsGet"
dense dense
size="12px"
flat flat
round round
color="blue" color="info"
@click.stop="showNote(props.row)" @click="nextPage(props.row.profileId)"
icon="mdi-information-outline" icon="mdi-eye"
> >
<q-tooltip>เหตผลการลบออก</q-tooltip> <q-tooltip>อมลทะเบยนประว</q-tooltip>
</q-btn> </q-btn>
</q-td> </q-td>
<q-td key="no" :props="props"> <q-td key="no" :props="props">
@ -501,6 +509,22 @@ onMounted(async () => {
<q-td key="insigniaLevel" :props="props"> <q-td key="insigniaLevel" :props="props">
{{ props.row.insigniaLevel }} {{ props.row.insigniaLevel }}
</q-td> </q-td>
<q-td auto-width>
<q-btn
v-if="
props.row.requestNote != null &&
checkPermission($route)?.attrIsGet
"
dense
flat
round
color="blue"
@click.stop="showNote(props.row)"
icon="mdi-information-outline"
>
<q-tooltip>เหตผลการลบออก</q-tooltip>
</q-btn>
</q-td>
</q-tr> </q-tr>
</template> </template>
</d-table> </d-table>
@ -513,4 +537,10 @@ onMounted(async () => {
:desc="note" :desc="note"
:click-close="closeReson" :click-close="closeReson"
/> />
<PopupPersonal
:modal="modalPersonal"
:id="personId"
@update:modal="updatemodalPersonal"
/>
</template> </template>

View file

@ -107,7 +107,7 @@ onMounted(async () => {
</q-tr> </q-tr>
</template> </template>
<template v-slot:body="props"> <template v-slot:body="props">
<q-tr :props="props" class="cursor-pointer"> <q-tr :props="props">
<q-td key="no" style="width: 50px" :props="props"> <q-td key="no" style="width: 50px" :props="props">
{{ props.rowIndex + 1 }} {{ props.rowIndex + 1 }}
</q-td> </q-td>

View file

@ -1,6 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, ref } from "vue"; import { onMounted, ref } from "vue";
import { useQuasar } from "quasar"; import { useQuasar } from "quasar";
import { checkPermission } from "@/utils/permissions";
import http from "@/plugins/http"; import http from "@/plugins/http";
import config from "@/app.config"; import config from "@/app.config";
@ -449,7 +450,10 @@ onMounted(async () => {
<q-btn <q-btn
v-if=" v-if="
roleDataStore.adminRole && DataStore.isLock !== true && hideBottom roleDataStore.adminRole &&
DataStore.isLock !== true &&
hideBottom &&
checkPermission($route)?.attrIsUpdate
" "
dense dense
unelevated unelevated
@ -576,9 +580,12 @@ onMounted(async () => {
<tab4 :tab="tab" :roundId="round" /> <tab4 :tab="tab" :roundId="round" />
</q-tab-panel> </q-tab-panel>
</q-tab-panels> </q-tab-panels>
<q-toolbar class="q-py-md text-right"> <q-toolbar class="q-py-md text-right">
<q-file <q-file
v-if="roleDataStore.insignia1Role" v-if="
roleDataStore.insignia1Role && checkPermission($route)?.attrIsUpdate
"
bg-color="white" bg-color="white"
clearable clearable
outlined outlined
@ -609,14 +616,16 @@ onMounted(async () => {
flat flat
round round
color="primary" color="primary"
v-if="roleDataStore.insignia1Role" v-if="
roleDataStore.insignia1Role && checkPermission($route)?.attrIsGet
"
:href="document" :href="document"
target="_blank" target="_blank"
> >
<q-tooltip>ดาวนโหลด</q-tooltip> <q-tooltip>ดาวนโหลด</q-tooltip>
</q-btn> </q-btn>
<q-btn <q-btn
v-else v-else-if="checkPermission($route)?.attrIsGet"
color="primary" color="primary"
icon-right="mdi-download" icon-right="mdi-download"
label="ดาวน์โหลดไฟล์" label="ดาวน์โหลดไฟล์"
@ -631,7 +640,8 @@ onMounted(async () => {
<q-btn <q-btn
v-if=" v-if="
roleDataStore.insignia1Role && roleDataStore.insignia1Role &&
(requestStatus == 'st1' || requestStatus == 'st4') (requestStatus == 'st1' || requestStatus == 'st4') &&
checkPermission($route)?.attrIsUpdate
" "
dense dense
unelevated unelevated
@ -643,7 +653,8 @@ onMounted(async () => {
<q-btn <q-btn
v-if=" v-if="
roleDataStore.insignia2Role && roleDataStore.insignia2Role &&
(requestStatus == 'st3' || requestStatus == 'st5') (requestStatus == 'st3' || requestStatus == 'st5') &&
checkPermission($route)?.attrIsUpdate
" "
dense dense
unelevated unelevated
@ -653,7 +664,11 @@ onMounted(async () => {
@click="popupBackToEdit" @click="popupBackToEdit"
/> />
<q-btn <q-btn
v-if="roleDataStore.insignia2Role && requestStatus == 'st3'" v-if="
roleDataStore.insignia2Role &&
requestStatus == 'st3' &&
checkPermission($route)?.attrIsUpdate
"
dense dense
unelevated unelevated
label="อนุมัติ" label="อนุมัติ"
@ -663,7 +678,10 @@ onMounted(async () => {
/> />
<q-btn <q-btn
v-if=" v-if="
requestStatus == 'st6' && roleDataStore.adminRole && !DataStore.isLock requestStatus == 'st6' &&
roleDataStore.adminRole &&
!DataStore.isLock &&
checkPermission($route)?.attrIsUpdate
" "
dense dense
unelevated unelevated

View file

@ -64,7 +64,7 @@ export const useInsigniaDataStore = defineStore("insignia", () => {
(item: any) => item.name === e.lastInsignia (item: any) => item.name === e.lastInsignia
)?.shortName || "" )?.shortName || ""
})` })`
: "", : "-",
insigniaCheck: e.requestInsignia, insigniaCheck: e.requestInsignia,
insigniaSend: e.requestInsignia insigniaSend: e.requestInsignia
? `${e.requestInsignia} (${ ? `${e.requestInsignia} (${