Merge branch 'dev' of ssh://git.codelfi.com:2202/TelemedPro/hgh_admin into dev

This commit is contained in:
Inshal 2024-06-12 20:10:02 +05:00
commit 8c088ba169
9 changed files with 228 additions and 6 deletions

View File

@ -49,7 +49,7 @@ export default [
{ {
title: 'Prodcuts', title: 'Prodcuts',
icon: { icon: 'ri-medicine-bottle-line' }, icon: { icon: 'ri-medicine-bottle-line' },
to: 'admin-medicines', to: 'admin-products',
}, },
{ {

View File

@ -1,6 +1,6 @@
<script setup> <script setup>
const profile = ref(0) const profile = ref(0)
const color = ref(0) const color = ref(null)
const props = defineProps({ const props = defineProps({
userData: { userData: {
type: Object, type: Object,

View File

@ -0,0 +1,211 @@
<script setup>
const props = defineProps({
userData: {
type: Object,
required: true,
},
})
import { onBeforeMount, onMounted, onUnmounted, ref } from 'vue';
import { useRoute, useRouter } from 'vue-router';
import { useStore } from 'vuex';
const store = useStore();
const router = useRouter();
const route = useRoute();
const editDialog = ref(false);
const deleteDialog = ref(false);
const search = ref('');
const appointmentId = ref('');
const defaultItem = ref({
id: -1,
avatar: '',
name: '',
email: '',
dob: '',
phone_no: '',
});
const editedItem = ref({ ...defaultItem.value });
const editedIndex = ref(-1);
const patientLabList = ref([]);
const isLoading = ref(false);
// Status options
const selectedOptions = [
{ text: 'Active', value: 1 },
{ text: 'InActive', value: 2 },
];
const refVForm = ref(null);
// Headers
const headers = [
// { title: 'Appointment Id', key: 'id' },
{ title: 'Lab Kit Name', key: 'name' },
// { key: 'appointment_date', sortable: false, title: 'Date' },
{ key: 'address', title: 'Address' },
{ key: 'amount', title: 'Amount' },
{ key: 'status', title: 'Status' },
// { title: 'ACTIONS', key: 'actions' },
];
const formatDate = (date) => {
const messageDate = new Date(date);
const options = {
year: 'numeric',
month: 'numeric',
day: 'numeric',
hour: 'numeric', // Change from '2-digit' to 'numeric'
minute: '2-digit',
hour12: true, // Add hour12: true to get 12-hour format with AM/PM
};
const formattedDate = messageDate.toLocaleString('en-US', options).replace(/\//g, '-');
return `${formattedDate} `;
};
// Fetch and process the patient meeting list
const getPatientLabList = async () => {
//store.dispatch('updateIsLoading', true);
//await store.dispatch('patientMeetingList', { id: route.params.id });
// store.dispatch('updateIsLoading', false);
let list = props.userData.labkit;
patientLabList.value = list
console.log(list);
};
// Lifecycle hooks
onBeforeMount(() => {});
onMounted(async () => {
await getPatientLabList();
});
onUnmounted(() => {});
const historyDetail = (item, value) => {
console.log('item',item.id ,value)
if(value == 'notes')
router.push('/admin/patient/meeting/notes/' + route.params.id + '/' + item.id);
if(value == 'prescription')
router.push('/admin/patient/meeting/prescription/' + route.params.id + '/' + item.id);
}
const menusVariant = [
'primary'
];
const options = [
{
title: 'Notes',
key: 'notes',
},
{
title: 'Prescription',
key: 'prescription',
},
]
const getStatusColor = (status) => {
switch (status) {
case 'pending':
return 'warning'; // Use Vuetify's warning color (typically yellow)
case 'shipped':
return '#45B8AC'; // Use Vuetify's primary color (typically blue)
case 'delivered':
return 'success';
case 'returned':
return 'red';
case 'results':
return 'blue';
default:
return 'grey'; // Use Vuetify's grey color for any other status
}
};
</script>
<template>
<v-row>
<v-col cols="12" md="12" >
<v-card title="Lab Kits">
<v-card-text>
<v-row>
<v-col cols="12" offset-md="8" md="4">
<v-text-field
v-model="search"
label="Search"
placeholder="Search ..."
append-inner-icon="ri-search-line"
single-line
hide-details
dense
outlined
/>
</v-col>
</v-row>
</v-card-text>
<v-data-table
:headers="headers"
:items="patientLabList"
:search="search"
:items-per-page="5"
class="text-no-wrap"
>
<template #item.id="{ item }">{{ item.id }}</template>
<template #item.provider_name="{ item }">
<div class="d-flex flex-column ms-3">
<router-link
:to="{ name: 'admin-provider-profile', params: { id: item.provider_id } }"
class="highlighted"
>
<span class="d-block font-weight-medium text-truncate">{{ item.provider_name }}</span>
</router-link>
</div>
</template>
<template #item.status="{ item }">
<VChip
:color="getStatusColor(item.status)"
density="comfortable"
>
{{ item.status}}
</VChip>
</template>
<template #item.address="{ item }">{{ item.shipping_address1 }} <br/>{{ item.shipping_city }} {{ item.shipping_state }} {{ item.shipping_zipcode }}</template>
<!-- Actions -->
<template #item.actions="{ item }">
<div class="demo-space-x">
<VMenu
v-for="menu in menusVariant"
:key="menu"
>
<template #activator="{ props }">
<i class="ri-more-2-line cursor-pointer" style="font-size: 32px;" v-bind="props"></i>
</template>
<v-list>
<v-list-item
v-for="opt in options"
:key="opt.value"
@click="historyDetail(item, opt.key)"
>
{{ opt.title }}
</v-list-item>
</v-list>
</VMenu>
</div>
<!-- <div class="d-flex gap-1">
<VBtn class="text-capitalize text-white" @click="historyDetail(item)"> Detail
</VBtn>
</div> -->
</template>
</v-data-table>
</v-card>
</v-col>
</v-row>
</template>

View File

@ -2,6 +2,7 @@
import NotesPanel from '@/pages/patients/NotesPanel.vue' import NotesPanel from '@/pages/patients/NotesPanel.vue'
import PatienTabOverview from '@/pages/patients/PatienTabOverview.vue' import PatienTabOverview from '@/pages/patients/PatienTabOverview.vue'
import PatientBioPanel from '@/pages/patients/PatientBioPanel.vue' import PatientBioPanel from '@/pages/patients/PatientBioPanel.vue'
import PatientLabTest from '@/pages/patients/PatientLabTest.vue'
import PatientQuestionProfile from '@/pages/patients/PatientQuestionProfile.vue' import PatientQuestionProfile from '@/pages/patients/PatientQuestionProfile.vue'
import PrescriptionPanel from '@/pages/patients/PrescriptionPanel.vue' import PrescriptionPanel from '@/pages/patients/PrescriptionPanel.vue'
@ -24,6 +25,10 @@ const tabs = [
{ {
icon: 'ri-bookmark-line', icon: 'ri-bookmark-line',
title: 'Prescriptions', title: 'Prescriptions',
},
{
icon: 'ri-flask-line',
title: 'Lab Test',
}, },
{ {
icon: 'ri-survey-line', icon: 'ri-survey-line',
@ -98,6 +103,10 @@ onMounted(async () => {
<PrescriptionPanel :prescription-data="patientDtail"/> <PrescriptionPanel :prescription-data="patientDtail"/>
</VWindowItem> </VWindowItem>
<VWindowItem>
<PatientLabTest :user-data="patientDtail"/>
</VWindowItem>
<VWindowItem> <VWindowItem>
<PatientQuestionProfile /> <PatientQuestionProfile />
</VWindowItem> </VWindowItem>

View File

@ -110,8 +110,8 @@ export const routes = [
}, },
{ {
path: '/admin/products', path: '/admin/products',
name: 'admin-medicines', name: 'admin-products',
component: () => import('@/pages/medicines/medicines.vue'), component: () => import('@/pages/products/product.vue'),
}, },
{ {
path: '/admin/profile', path: '/admin/profile',

View File

@ -159,6 +159,7 @@
"Patients": "Patients", "Patients": "Patients",
"Lab Kites": "Lab Kites", "Lab Kites": "Lab Kites",
"Providers": "Providers", "Providers": "Providers",
"Prodcuts": "Prodcuts",
"Labs": "Labs", "Labs": "Labs",
"Medicines": "Medicines", "Medicines": "Medicines",
"Profile": "Profile", "Profile": "Profile",

View File

@ -13,7 +13,7 @@ export const { themeConfig, layoutConfig } = defineThemeConfig({
title: '', title: '',
// ❗ if you have SVG logo and want it to adapt according to theme color, you have to apply color as `color: rgb(var(--v-global-theme-primary))` // ❗ if you have SVG logo and want it to adapt according to theme color, you have to apply color as `color: rgb(var(--v-global-theme-primary))`
logo: h('div', { innerHTML: `<img src="${logoImage}" alt="Logo" style="width:150px;">` }), logo: h('div', { innerHTML: `<img src="${logoImage}" alt="Logo" style="width:170px;">` }),
contentWidth: ContentWidth.Boxed, contentWidth: ContentWidth.Boxed,
contentLayoutNav: AppContentLayoutNav.Vertical, contentLayoutNav: AppContentLayoutNav.Vertical,
overlayNavFromBreakpoint: breakpointsVuetify.md + 16, // 16 for scrollbar. Docs: https://next.vuetifyjs.com/en/features/display-and-platform/ overlayNavFromBreakpoint: breakpointsVuetify.md + 16, // 16 for scrollbar. Docs: https://next.vuetifyjs.com/en/features/display-and-platform/

3
typed-router.d.ts vendored
View File

@ -121,7 +121,6 @@ declare module 'vue-router/auto/routes' {
'labs-labs': RouteRecordInfo<'labs-labs', '/labs/labs', Record<never, never>, Record<never, never>>, 'labs-labs': RouteRecordInfo<'labs-labs', '/labs/labs', Record<never, never>, Record<never, never>>,
'labs-labs-kit': RouteRecordInfo<'labs-labs-kit', '/labs/labs-kit', Record<never, never>, Record<never, never>>, 'labs-labs-kit': RouteRecordInfo<'labs-labs-kit', '/labs/labs-kit', Record<never, never>, Record<never, never>>,
'login': RouteRecordInfo<'login', '/login', Record<never, never>, Record<never, never>>, 'login': RouteRecordInfo<'login', '/login', Record<never, never>, Record<never, never>>,
'medicines-medicines': RouteRecordInfo<'medicines-medicines', '/medicines/medicines', Record<never, never>, Record<never, never>>,
'not-authorized': RouteRecordInfo<'not-authorized', '/not-authorized', Record<never, never>, Record<never, never>>, 'not-authorized': RouteRecordInfo<'not-authorized', '/not-authorized', Record<never, never>, Record<never, never>>,
'pages-account-settings-tab': RouteRecordInfo<'pages-account-settings-tab', '/pages/account-settings/:tab', { tab: ParamValue<true> }, { tab: ParamValue<false> }>, 'pages-account-settings-tab': RouteRecordInfo<'pages-account-settings-tab', '/pages/account-settings/:tab', { tab: ParamValue<true> }, { tab: ParamValue<false> }>,
'pages-authentication-forgot-password-v1': RouteRecordInfo<'pages-authentication-forgot-password-v1', '/pages/authentication/forgot-password-v1', Record<never, never>, Record<never, never>>, 'pages-authentication-forgot-password-v1': RouteRecordInfo<'pages-authentication-forgot-password-v1', '/pages/authentication/forgot-password-v1', Record<never, never>, Record<never, never>>,
@ -161,10 +160,12 @@ declare module 'vue-router/auto/routes' {
'patients-patient-profile': RouteRecordInfo<'patients-patient-profile', '/patients/patient-profile', Record<never, never>, Record<never, never>>, 'patients-patient-profile': RouteRecordInfo<'patients-patient-profile', '/patients/patient-profile', Record<never, never>, Record<never, never>>,
'patients-patien-tab-overview': RouteRecordInfo<'patients-patien-tab-overview', '/patients/PatienTabOverview', Record<never, never>, Record<never, never>>, 'patients-patien-tab-overview': RouteRecordInfo<'patients-patien-tab-overview', '/patients/PatienTabOverview', Record<never, never>, Record<never, never>>,
'patients-patient-bio-panel': RouteRecordInfo<'patients-patient-bio-panel', '/patients/PatientBioPanel', Record<never, never>, Record<never, never>>, 'patients-patient-bio-panel': RouteRecordInfo<'patients-patient-bio-panel', '/patients/PatientBioPanel', Record<never, never>, Record<never, never>>,
'patients-patient-lab-test': RouteRecordInfo<'patients-patient-lab-test', '/patients/PatientLabTest', Record<never, never>, Record<never, never>>,
'patients-patient-question-profile': RouteRecordInfo<'patients-patient-question-profile', '/patients/PatientQuestionProfile', Record<never, never>, Record<never, never>>, 'patients-patient-question-profile': RouteRecordInfo<'patients-patient-question-profile', '/patients/PatientQuestionProfile', Record<never, never>, Record<never, never>>,
'patients-patients': RouteRecordInfo<'patients-patients', '/patients/patients', Record<never, never>, Record<never, never>>, 'patients-patients': RouteRecordInfo<'patients-patients', '/patients/patients', Record<never, never>, Record<never, never>>,
'patients-prescription-panel': RouteRecordInfo<'patients-prescription-panel', '/patients/PrescriptionPanel', Record<never, never>, Record<never, never>>, 'patients-prescription-panel': RouteRecordInfo<'patients-prescription-panel', '/patients/PrescriptionPanel', Record<never, never>, Record<never, never>>,
'patients-question-progress-bar': RouteRecordInfo<'patients-question-progress-bar', '/patients/QuestionProgressBar', Record<never, never>, Record<never, never>>, 'patients-question-progress-bar': RouteRecordInfo<'patients-question-progress-bar', '/patients/QuestionProgressBar', Record<never, never>, Record<never, never>>,
'products-product': RouteRecordInfo<'products-product', '/products/product', Record<never, never>, Record<never, never>>,
'providers-completed-meeting-tab': RouteRecordInfo<'providers-completed-meeting-tab', '/providers/CompletedMeetingTab', Record<never, never>, Record<never, never>>, 'providers-completed-meeting-tab': RouteRecordInfo<'providers-completed-meeting-tab', '/providers/CompletedMeetingTab', Record<never, never>, Record<never, never>>,
'providers-meeting-details': RouteRecordInfo<'providers-meeting-details', '/providers/meeting-details', Record<never, never>, Record<never, never>>, 'providers-meeting-details': RouteRecordInfo<'providers-meeting-details', '/providers/meeting-details', Record<never, never>, Record<never, never>>,
'providers-meetings': RouteRecordInfo<'providers-meetings', '/providers/meetings', Record<never, never>, Record<never, never>>, 'providers-meetings': RouteRecordInfo<'providers-meetings', '/providers/meetings', Record<never, never>, Record<never, never>>,