fix : title of pages

This commit is contained in:
zeinab.ashrafi
2025-04-10 12:39:48 +03:30
parent 78dfba9b24
commit fc029045bc
28 changed files with 1582 additions and 1427 deletions
+12 -9
View File
@@ -11,12 +11,12 @@ import Vue from 'vue'
// import VueAnalytics from 'vue-analytics'
import Router from 'vue-router'
import Meta from 'vue-meta'
import { TokenService } from '@/services'
import {TokenService} from '@/services'
// Routes
import paths from './paths'
function route (options) {
function route(options) {
let path = options.path;
let view = options.view;
let name = options.name;
@@ -37,20 +37,23 @@ Vue.use(Router)
const router = new Router({
mode: 'history',
routes: paths.map(path => route(path)).concat([
{ path: '*', redirect: '/dashboard' }
{path: '*', redirect: '/dashboard'}
]),
scrollBehavior (to, from, savedPosition) {
scrollBehavior(to, from, savedPosition) {
if (savedPosition) {
return savedPosition
}
if (to.hash) {
return { selector: to.hash }
return {selector: to.hash}
}
return { x: 0, y: 0 }
return {x: 0, y: 0}
}
})
Vue.use(Meta)
Vue.use(Meta, {
refreshOnceOnNavigation: true
})
import {$hasRole} from '@/services/acl/role';
@@ -64,13 +67,13 @@ router.beforeEach((to, from, next) => {
}
if (!isPublic && !loggedIn) {
return next({
path:'/login',
path: '/login',
query: {redirect: to.fullPath} // Store the full path to redirect the user to after login
});
}
// Do not allow user to visit login page or register page if they are logged in
if (loggedIn && onlyWhenLoggedOut ) {
if (loggedIn && onlyWhenLoggedOut) {
return next('/')
}
+58 -58
View File
@@ -9,7 +9,7 @@ export default [
name: 'Dashboard',
view: 'Dashboard',
meta: {
title:'CSSD Dashboard'
title: 'CSSD Dashboard'
}
},
{
@@ -17,7 +17,7 @@ export default [
name: 'MyInfo',
view: 'User/MyInfo',
meta: {
title:'My Inf | CSSD Dashboard'
title: 'My Info | CSSD Dashboard'
}
},
{
@@ -26,7 +26,7 @@ export default [
view: 'User/List',
meta: {
roles: 'Admin|Supervisor',
title:'Manage User | CSSD Dashboard'
title: 'Manage User | CSSD Dashboard'
}
},
{
@@ -34,7 +34,7 @@ export default [
name: 'AddTestType',
view: 'TestType/AddEdit',
meta: {
title:'Add Test Typ | CSSD Dashboard'
title: 'Add Test Typ | CSSD Dashboard'
}
},
{
@@ -43,7 +43,7 @@ export default [
view: 'TestType/AddEdit',
meta: {
roles: 'Admin',
title:'Edit Test Typ | CSSD Dashboard'
title: 'Edit Test Typ | CSSD Dashboard'
}
},
{
@@ -52,7 +52,7 @@ export default [
view: 'TestType/List',
meta: {
roles: 'Admin',
title:'List Test Typ | CSSD Dashboard'
title: 'List Test Typ | CSSD Dashboard'
}
},
{
@@ -60,7 +60,7 @@ export default [
name: 'ManageMedicalCenter',
view: 'MedicalCenter/List',
meta: {
title:'Manage Medical Center | CSSD Dashboard',
title: 'Manage Medical Center | CSSD Dashboard',
roles: 'Admin'
}
},
@@ -69,7 +69,7 @@ export default [
name: 'AddMedicalCenter',
view: 'MedicalCenter/AddEdit',
meta: {
title:'Add Medical Center | CSSD Dashboard',
title: 'Add Medical Center | CSSD Dashboard',
roles: 'Admin'
}
},
@@ -78,7 +78,7 @@ export default [
name: 'EditMedicalCenter',
view: 'MedicalCenter/AddEdit',
meta: {
title:'Edit Medical Center | CSSD Dashboard',
title: 'Edit Medical Center | CSSD Dashboard',
roles: 'Admin'
}
},
@@ -87,7 +87,7 @@ export default [
name: 'AddOperator',
view: 'Auth/Register',
meta: {
title:'Add Operator | CSSD Dashboard',
title: 'Add Operator | CSSD Dashboard',
roles: 'Admin'
}
},
@@ -96,7 +96,7 @@ export default [
name: 'OperatorList',
view: 'MedicalCenter/OperatorList',
meta: {
title:'Operator List | CSSD Dashboard',
title: 'Operator List | CSSD Dashboard',
roles: 'Admin'
}
},
@@ -105,7 +105,7 @@ export default [
name: 'Login',
view: 'Auth/Login',
meta: {
title:'Login | CSSD Dashboard',
title: 'Login | CSSD Dashboard',
public: true, // Allow access to even if not logged in
onlyWhenLoggedOut: true
}
@@ -115,7 +115,7 @@ export default [
name: 'Register',
view: 'Auth/Register',
meta: {
title:'Register | CSSD Dashboard',
title: 'Register | CSSD Dashboard',
public: true, // Allow access to even if not logged in
onlyWhenLoggedOut: true,
roles: 'Admin'
@@ -126,7 +126,7 @@ export default [
name: 'ForgotPassword',
view: 'Auth/ForgotPassword',
meta: {
title:'Forgot Password | CSSD Dashboard',
title: 'Forgot Password | CSSD Dashboard',
public: true, // Allow access to even if not logged in
onlyWhenLoggedOut: true
},
@@ -136,7 +136,7 @@ export default [
name: 'ShowTestResult',
view: 'TestResult/Show',
meta: {
title:'Show Test Result | CSSD Dashboard',
title: 'Show Test Result | CSSD Dashboard',
public: true,
},
},
@@ -144,163 +144,163 @@ export default [
path: '/result-test',
name: 'AllResultTest',
view: 'TestResult/List',
meta:{
title:'All Result Test | CSSD Dashboard',
meta: {
title: 'All Result Test | CSSD Dashboard',
}
},
{
path: '/add-test-result',
name: 'SubmitTestResult',
view: 'TestResult/AddEdit',
meta:{
title:'Submit Test Result | CSSD Dashboard',
meta: {
title: 'Submit Test Result | CSSD Dashboard',
}
},
{
path: '/test-result/:testResult/edit',
name: 'EditTestResult',
view: 'TestResult/AddEdit',
meta:{
title:'Edit Test Result | CSSD Dashboard',
meta: {
title: 'Edit Test Result | CSSD Dashboard',
}
},
{
path: '/test-result/NotVerified',
name: 'NotVerifyTestResult',
view: 'TestResult/List',
meta:{
title:'Not Verify Test Resul | CSSD Dashboard'
meta: {
title: 'Not Verify Test Resul | CSSD Dashboard'
}
},
{
path: '/statistics',
name: 'Statistics',
view: 'Statistics/Chart',
meta:{
title:'Statistics | CSSD Dashboard',
meta: {
title: 'Statistics | CSSD Dashboard',
}
},
{
path: '/add-package',
name: 'AddPackage',
view: 'Package/AddEdit',
meta:{
title:'Add Package | CSSD Dashboard',
meta: {
title: 'Add Package | CSSD Dashboard',
}
},
{
path: '/packages',
name: 'AllPackage',
view: 'Package/List',
meta:{
title:'All Package | CSSD Dashboard',
meta: {
title: 'All Package | CSSD Dashboard',
}
},
{
path: '/packages/:package/edit',
name: 'EditPackage',
view: 'Package/AddEdit',
meta:{
title:'Edit Package | CSSD Dashboard',
meta: {
title: 'Edit Package | CSSD Dashboard',
}
},
{
path: '/add-label',
name: 'AddLabel',
view: 'Label/AddEdit',
meta:{
title:'Add Label | CSSD Dashboard',
meta: {
title: 'Add Label | CSSD Dashboard',
}
},
{
path: '/labels',
name: 'AllLabels',
view: 'Label/List',
meta:{
title:'All Labels | CSSD Dashboard',
meta: {
title: 'All Labels | CSSD Dashboard',
}
},
{
path: '/label/:label/edit',
name: 'EditLabel',
view: 'Label/AddEdit',
meta:{
title:'Edit Label | CSSD Dashboard',
meta: {
title: 'Edit Label | CSSD Dashboard',
}
},
{
path: '/add-cycle',
name: 'AddCycle',
view: 'Cycle/AddEdit',
meta:{
title:'Add Cycle | CSSD Dashboard',
meta: {
title: 'Add Cycle | CSSD Dashboard',
}
},
{
path: '/cycles',
name: 'AllCycle',
view: 'Cycle/List',
meta:{
title:'All Cycle | CSSD Dashboard',
meta: {
title: 'All Cycle | CSSD Dashboard',
}
},
{
path: '/cycle/:cycle/edit',
name: 'EditCycle',
view: 'Cycle/AddEdit',
meta:{
title:'Edit Cycle | CSSD Dashboard',
meta: {
title: 'Edit Cycle | CSSD Dashboard',
}
},
{
path: '/add-Item',
name: 'AddItem',
view: 'Item/AddEdit',
meta:{
title:'Add Item | CSSD Dashboard',
meta: {
title: 'Add Item | CSSD Dashboard',
}
},
{
path: '/Items',
name: 'AllItem',
view: 'Item/List',
meta:{
title:'All Item | CSSD Dashboard',
meta: {
title: 'All Item | CSSD Dashboard',
}
},
{
path: '/Item/:Item/edit',
name: 'EditItem',
view: 'Item/AddEdit',
meta:{
title:'Edit Item | CSSD Dashboard',
meta: {
title: 'Edit Item | CSSD Dashboard',
}
},
{
path: '/my-Items',
name: 'MyItem',
view: 'MyItem/List',
meta:{
title:'My Item | CSSD Dashboard',
meta: {
title: 'My Item | CSSD Dashboard',
}
},
{
path: '/my-Package',
name: 'MyPackage',
view: 'MyPackage/List',
meta:{
title:'My Package | CSSD Dashboard',
meta: {
title: 'My Package | CSSD Dashboard',
}
},
{
path: '/tickets',
name: 'Tickets',
view: 'Tickets/List',
meta:{
title:'Tickets | CSSD Dashboard',
meta: {
title: 'Tickets | CSSD Dashboard',
}
},
/* {
/* {
path: '/ShowPackage/:package',
name: 'ShowPackage',
view: 'Package/ShowPackage',
@@ -312,8 +312,8 @@ export default [
path: '/Intro',
name: 'Intro',
view: 'Intro/Intro',
meta:{
title:'Intro | CSSD Dashboard',
meta: {
title: 'Intro | CSSD Dashboard',
}
},
]
+12 -5
View File
@@ -43,13 +43,20 @@
</v-form>
</template>
<script>
import { mapActions, mapMutations } from "vuex";
import { ApiService } from "@/services";
import { urls } from "@/config/urls";
import {mapActions, mapMutations} from "vuex";
import {ApiService} from "@/services";
import {urls} from "@/config/urls";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data() {
return {
form :{
form: {
cell_number: ""
},
rules: {
@@ -62,7 +69,7 @@ export default {
...mapActions("auth", ["forgotPassword"]),
async handleSubmit() {
if (this.$refs.form.validate()) {
this.forgotPassword({form : this.form});
this.forgotPassword({form: this.form});
}
}
}
+11 -3
View File
@@ -1,5 +1,5 @@
<template>
<v-form ref="form" >
<v-form ref="form">
<v-container grid-list-xs>
<v-layout row wrap class="justify-center">
<v-flex xs12 md3 sm3 class="WM-WidthScreen-SM WM-WidthScreen-XS">
@@ -44,7 +44,8 @@
<v-layout row wrap class="text-md-left text-sm-center text-xs-center">
<v-flex xs12 md12 sm12 class="px-4 py-3">
<router-link :to="{name: 'ForgotPassword'}">
<span class="black--text" style="border-bottom:1px solid #000;">Forgot Password ?</span>
<span class="black--text"
style="border-bottom:1px solid #000;">Forgot Password ?</span>
</router-link>
</v-flex>
</v-layout>
@@ -55,8 +56,15 @@
</v-form>
</template>
<script>
import { mapGetters, mapActions } from "vuex";
import {mapGetters, mapActions} from "vuex";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data() {
return {
cell_number: "",
+8 -2
View File
@@ -90,9 +90,15 @@
</v-form>
</template>
<script>
import { TokenService, ApiService } from "@/services";
import {TokenService, ApiService} from "@/services";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data() {
const defaultForm = Object.freeze({
cell_number: "",
@@ -123,7 +129,7 @@ export default {
var result = await ApiService.post(`register`, this.form);
if (result && result.status == 200) {
this.$router.push(
{name:`OperatorList`, params: { medicalCenter: this.form.medical_center_id }}
{name: `OperatorList`, params: {medicalCenter: this.form.medical_center_id}}
);
}
}
+6
View File
@@ -111,6 +111,12 @@ import {urls} from "@/config/urls";
import {mapMutations} from "vuex";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data() {
return {
fromMenuDate: false,
+6
View File
@@ -143,6 +143,12 @@ import {urls} from "@/config/urls";
import {mapMutations, mapGetters} from "vuex";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data: () => ({
headers: [
{sortable: false, text: "ID", value: "Cycle ID"},
+6
View File
@@ -54,6 +54,12 @@
<script>
// import { UserService } from '@/services';
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data() {
return {
AdminCards: [
+31 -40
View File
@@ -5,7 +5,9 @@
</v-toolbar>
<!-- _______________ Section 2::Begin _______________ -->
<section>
<v-parallax src="https://images.squarespace-cdn.com/content/v1/5bf5d5da506fbea76ffa4abe/1547249524951-CQ5U440SQYT23ODKL23G/ke17ZwdGBToddI8pDm48kKAwwdAfKsTlKsCcElEApLR7gQa3H78H3Y0txjaiv_0fDoOvxcdMmMKkDsyUqMSsMWxHk725yiiHCCLfrh8O1z5QPOohDIaIeljMHgDF5CVlOqpeNLcJ80NK65_fV7S1UegTYNQkRo-Jk4EWsyBNhwKrKLo5CceA1-Tdpfgyxoog5ck0MD3_q0rY3jFJjjoLbQ/yenyi.jpg" height="600">
<v-parallax
src="https://images.squarespace-cdn.com/content/v1/5bf5d5da506fbea76ffa4abe/1547249524951-CQ5U440SQYT23ODKL23G/ke17ZwdGBToddI8pDm48kKAwwdAfKsTlKsCcElEApLR7gQa3H78H3Y0txjaiv_0fDoOvxcdMmMKkDsyUqMSsMWxHk725yiiHCCLfrh8O1z5QPOohDIaIeljMHgDF5CVlOqpeNLcJ80NK65_fV7S1UegTYNQkRo-Jk4EWsyBNhwKrKLo5CceA1-Tdpfgyxoog5ck0MD3_q0rY3jFJjjoLbQ/yenyi.jpg"
height="600">
<v-layout
column
align-center
@@ -14,8 +16,11 @@
>
<!-- <img src="assets/vuetify.png" alt="Vuetify.js" height="200"> -->
<p class="display-4 mb-5">CSSD-DOC</p>
<h1 class="white--text mb-2 mt-5 display-1 text-center">Central Sterile Supply Department App & Software</h1>
<div class="subheading mb-4 text-center">Management & Traceability & Documentation solution for CSSD / SPD</div>
<h1 class="white--text mb-2 mt-5 display-1 text-center">Central Sterile Supply Department App &
Software</h1>
<div class="subheading mb-4 text-center">Management & Traceability & Documentation solution for CSSD
/ SPD
</div>
</v-layout>
</v-parallax>
</section>
@@ -49,18 +54,19 @@
</v-flex>
<v-flex xs12 md4>
<v-card flat class="transparent">
<p v-for="(item , i) in items.items3" :key="i" class="headline text-left" v-text="item"></p>
<p v-for="(item , i) in items.items3" :key="i" class="headline text-left"
v-text="item"></p>
</v-card>
</v-flex>
</v-layout>
</v-container>
</v-flex>
</v-layout>
</section>
<!-- _______________ Section 2::End _______________ -->
</section>
<!-- _______________ Section 2::End _______________ -->
<!-- _______________ Section 7::Begin _______________ -->
<section>
<!-- _______________ Section 7::Begin _______________ -->
<section>
<v-layout
column
wrap
@@ -101,8 +107,10 @@
</v-card-title>
<v-card-text>
Cras facilisis mi vitae nunc lobortis pharetra. Nulla volutpat tincidunt ornare.
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
Nullam in aliquet odio. Aliquam eu est vitae tellus bibendum tincidunt. Suspendisse potenti.
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac
turpis egestas.
Nullam in aliquet odio. Aliquam eu est vitae tellus bibendum tincidunt.
Suspendisse potenti.
</v-card-text>
</v-card>
</v-flex>
@@ -116,45 +124,30 @@
</v-card-title>
<v-card-text>
Cras facilisis mi vitae nunc lobortis pharetra. Nulla volutpat tincidunt ornare.
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
Nullam in aliquet odio. Aliquam eu est vitae tellus bibendum tincidunt. Suspendisse potenti.
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac
turpis egestas.
Nullam in aliquet odio. Aliquam eu est vitae tellus bibendum tincidunt.
Suspendisse potenti.
</v-card-text>
</v-card>
</v-flex>
</v-layout>
</v-container>
</v-flex>
</v-layout>
</section>
</v-layout>
</section>
</div>
</div>
</template>
<script>
export default {
data: () => ({
items: [
{
items1 : [
'aaaaa',
'aaaaa',
'aaaaaa'
],
},
{
items2 : [
'aaaaa',
'aaaaa',
'aaaaaa'
],
},
{
items3 : [
'aaaaa',
'aaaaa',
'aaaaaa'
],
},
{items1: ['aaaaa', 'aaaaa', 'aaaaaa'],},
{items2: ['aaaaa', 'aaaaa', 'aaaaaa'],},
{items3: ['aaaaa', 'aaaaa', 'aaaaaa'],},
],
disabled: false,
dense: false,
@@ -169,10 +162,8 @@ export default {
avatar: false,
rounded: false,
}),
components: {
},
created(){
components: {},
created() {
},
}
</script>
+6
View File
@@ -79,6 +79,12 @@ import {mapMutations} from 'vuex';
import Dropzone from '@/components/core/Dropzone'
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
components: {
'wm-Dropzone': Dropzone,
},
+6
View File
@@ -157,6 +157,12 @@ import {mapMutations, mapGetters} from "vuex";
import toast from "@/services/global/toast.service";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data: () => ({
headers: [
// {sortable: true,text: "ID",value: "id"},
+14 -5
View File
@@ -10,7 +10,8 @@
</v-flex>
<v-flex xs12 sm6 md4 lg3 class="WM-FlexCenter pl-3">
<v-icon class="fas fa-sort-numeric-up mr-2 WM-Margin-B-8"/>
<v-text-field name="cycle_number" label="Preferred Cycle Number" color="black" v-model="formData.cycle_number"
<v-text-field name="cycle_number" label="Preferred Cycle Number" color="black"
v-model="formData.cycle_number"
class="py-3 pr-3"/>
</v-flex>
<v-flex xs12 sm6 md4 lg3 class="WM-FlexCenter pl-3">
@@ -48,7 +49,8 @@
v-model="fromMenuExpire" style="width: 100%">
<v-text-field required slot="activator" label="Expire Date" color="black" class="pr-3"
v-model="formData.expire_date"/>
<v-date-picker :show-current="showCurrent" :min="formData.sterile_date" color="pink" no-title
<v-date-picker :show-current="showCurrent" :min="formData.sterile_date" color="pink"
no-title
v-model="formData.expire_date"
:date-format="date => new Date(date).toDateString()"/>
</v-menu>
@@ -77,9 +79,16 @@
</template>
<script>
import { ApiService } from "@/services";
import { urls } from "@/config/urls";
import {ApiService} from "@/services";
import {urls} from "@/config/urls";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data() {
return {
showCurrent: false,
@@ -149,7 +158,7 @@ export default {
}
if (result && result.status == 200) {
this.$router.push({ name: 'AllLabels' });
this.$router.push({name: 'AllLabels'});
}
}
}
+6
View File
@@ -145,6 +145,12 @@ import {urls} from "@/config/urls";
import {mapMutations, mapGetters} from "vuex";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data: () => ({
headers: [
{sortable: false, text: "ID", value: "Label ID"},
+6
View File
@@ -71,6 +71,12 @@ import {ApiService} from "@/services";
import {urls} from "@/config/urls";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data() {
return {
medicalCenter: {
+17 -7
View File
@@ -28,7 +28,7 @@
<v-flex md12>
<v-data-table :headers="headers" :items="items" hide-actions>
<template slot="headerCell" slot-scope="{ header }">
<span class="subheading font-weight-light text-white text--darken-3" v-text="header.text" />
<span class="subheading font-weight-light text-white text--darken-3" v-text="header.text"/>
</template>
<template slot="items" slot-scope="{ item }">
<td class="title font-weight-light WM-NoLetterSpacing">{{ item.name }}</td>
@@ -49,8 +49,10 @@
</v-tooltip>
<v-tooltip bottom open-on-hover>
<template v-slot:activator="{ on, attrs }">
<router-link class="LinkBtn" :to="{ name: 'OperatorList', params: { medicalCenter: item.id } }">
<v-btn v-bind="attrs" v-on="on" color="orange darken-1" class="mr-2 WM-ActionButton">
<router-link class="LinkBtn"
:to="{ name: 'OperatorList', params: { medicalCenter: item.id } }">
<v-btn v-bind="attrs" v-on="on" color="orange darken-1"
class="mr-2 WM-ActionButton">
<v-icon class="white--text mr-2 caption">fas fa-user</v-icon>
<span>Operator</span>
</v-btn>
@@ -60,7 +62,8 @@
</v-tooltip>
<v-tooltip bottom open-on-hover>
<template v-slot:activator="{ on, attrs }">
<v-btn v-bind="attrs" v-on="on" color="pink" @click="remove(item.id)" class="WM-ActionButton">
<v-btn v-bind="attrs" v-on="on" color="pink" @click="remove(item.id)"
class="WM-ActionButton">
<v-icon class="white--text mr-2 caption">fas fa-trash</v-icon>
<span>Remove</span>
</v-btn>
@@ -89,10 +92,17 @@
</template>
<script>
import { ApiService } from "@/services";
import { urls } from "@/config/urls";
import { mapMutations } from 'vuex'
import {ApiService} from "@/services";
import {urls} from "@/config/urls";
import {mapMutations} from 'vuex'
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data: () => ({
headers: [
{sortable: false, text: "Hospital Name", value: "name"},
+25 -36
View File
@@ -3,13 +3,16 @@
<material-card class color="black" :title="`Operator List`" text>
<v-layout row wrap class="px-5 mb-3">
<v-flex xs12 md3 xs3>
<v-text-field name="Name" v-model="filter.name" label="Name" class="pa-2" color="black"></v-text-field>
<v-text-field name="Name" v-model="filter.name" label="Name" class="pa-2"
color="black"></v-text-field>
</v-flex>
<v-flex xs12 md3 xs3>
<v-text-field name="cell_number" v-model="filter.cell_number" label="Cell Number" class="pa-2" color="black"></v-text-field>
<v-text-field name="cell_number" v-model="filter.cell_number" label="Cell Number" class="pa-2"
color="black"></v-text-field>
</v-flex>
<v-flex xs12 md2 xs3>
<v-select :items="roles" name="roles" v-model="filter.role" label="Roles" class="pa-2" color="black"></v-select>
<v-select :items="roles" name="roles" v-model="filter.role" label="Roles" class="pa-2"
color="black"></v-select>
</v-flex>
<v-flex xs12 md2 sm2 class="text-xs-right">
<v-btn class="WM-CyanBlueGradient-BG" @click="load" style="padding:10px 30px">
@@ -88,39 +91,25 @@
</v-container>
</template>
<script>
import { ApiService } from "@/services";
import { mapMutations, mapGetters } from "vuex";
import { urls } from "@/config/urls";
import { roles } from "@/config/utils";
import {ApiService} from "@/services";
import {mapMutations, mapGetters} from "vuex";
import {urls} from "@/config/urls";
import {roles} from "@/config/utils";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data: () => ({
headers: [
{
sortable: true,
text: "Operator Name",
value: "name"
},
{
sortable: false,
text: "Role",
value: "role"
},
{
sortable: false,
text: "Number",
value: "number"
},
{
sortable: false,
text: "Status",
value: "status"
},
{
sortable: false,
text: "Action",
value: "action",
align: "right"
}
{sortable: false, text: "Operator Name", value: "name"},
{sortable: false, text: "Role", value: "role"},
{sortable: false, text: "Number", value: "number"},
{sortable: false, text: "Status", value: "status"},
{sortable: false, text: "Action", value: "action", align: "right"}
],
filter: {
name: '',
@@ -151,7 +140,7 @@ export default {
if (result && result.status == 200) {
this.items = result.data.data.users;
} else {
this.$router.push({name:`Dashboard`});
this.$router.push({name: `Dashboard`});
}
},
async changeStatus(userId) {
@@ -163,14 +152,14 @@ export default {
}
}
} else {
this.$router.push({name:`Dashboard`});
this.$router.push({name: `Dashboard`});
}
},
...mapMutations("modal", ["changeCurrentModal"]),
changeRoleModal(user) {
this.changeCurrentModal({
modal: "modal-user-role",
properties: { user }
properties: {user}
});
},
async remove(userId) {
+6
View File
@@ -167,6 +167,12 @@ import {mapMutations, mapGetters, mapActions} from "vuex";
import toast from "@/services/global/toast.service";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data: () => ({
headers: [
// {sortable: true,text: "ID",value: "id"},
+21 -9
View File
@@ -56,10 +56,16 @@
<td class="title font-weight-light">{{ item.status }}</td>
<td class="text-xs-right FlexBtn Height-MD-60 justify-self-end">
<template v-if="$hasRole('Admin|Supervisor')">
<v-tooltip v-for="status in getStatus(item)" :key="status.label" bottom open-on-hover>
<v-tooltip v-for="status in getStatus(item)" :key="status.label" bottom
open-on-hover>
<template v-slot:activator="{ on, attrs }">
<v-btn :color="status.color" class="mr-2" @click="changeStatus(item, status.status)" v-bind="attrs" v-on="on">
<v-icon class="white--text mr-1 caption">fas {{ status.icon }}</v-icon>
<v-btn :color="status.color" class="mr-2"
@click="changeStatus(item, status.status)" v-bind="attrs"
v-on="on">
<v-icon class="white--text mr-1 caption">fas {{
status.icon
}}
</v-icon>
<span>{{ status.label }}</span>
</v-btn>
</template>
@@ -154,6 +160,12 @@ import {mapMutations, mapGetters} from "vuex";
import toast from "@/services/global/toast.service";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data: () => ({
headers: [
{sortable: false, text: "ID", value: "Package ID"},
@@ -161,7 +173,7 @@ export default {
{sortable: false, text: "Hospital", value: "Hospital"},
{sortable: false, text: "Description", value: "description"},
{sortable: false, text: "Status", value: "status"},
{sortable: false, text: "Action", value: "action", align: "center",width:'20%'}
{sortable: false, text: "Action", value: "action", align: "center", width: '20%'}
],
filter: {
name: '',
@@ -191,8 +203,8 @@ export default {
if (result && result.status == 200) {
const {data, meta} = result.data;
this.items = data;
this.currentPage = meta? meta.current_page : 1;
this.lastPage =meta? meta.last_page : 1;
this.currentPage = meta ? meta.current_page : 1;
this.lastPage = meta ? meta.last_page : 1;
}
this.loadMedicalCenters();
},
@@ -227,8 +239,8 @@ export default {
getStatus(item) {
if (item.status === 'pending') {
return [
{ status: 'rejected', label: 'reject', color: 'red', icon: 'fa-close' },
{ status: 'approved', label: 'approve', color: 'green', icon: 'fa-check' }
{status: 'rejected', label: 'reject', color: 'red', icon: 'fa-close'},
{status: 'approved', label: 'approve', color: 'green', icon: 'fa-check'}
]
} else {
const nextStatus = item.status === 'rejected' ? 'approved' : 'rejected'
@@ -243,7 +255,7 @@ export default {
}
},
async changeStatus(item, status) {
const result = await ApiService.post(urls.changePackageStatus(item.id), { status })
const result = await ApiService.post(urls.changePackageStatus(item.id), {status})
if (result?.data?.data?.status) {
const newStatus = result.data.data.status
+6
View File
@@ -118,6 +118,12 @@ import {urls} from "@/config/urls";
import {mapMutations} from "vuex";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data() {
return {
formData: {
+6
View File
@@ -160,6 +160,12 @@ import {mapMutations, mapGetters} from "vuex";
import toast from "@/services/global/toast.service";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data: () => ({
headers: [
{sortable: false, text: "ID", value: "Package ID"},
+28 -11
View File
@@ -6,27 +6,35 @@
<v-layout align-center justify-center wrap class="px-5 my-3">
<v-flex xs12 sm4 md4 class="WM-FlexCenter pl-3">
<v-icon class="fa fa-align-left mr-2 WM-Margin-B-8"></v-icon>
<v-autocomplete :items="medicalCenters" item-text="name" item-value="id" v-model="form.medicalCenterId" @change="fillUsers" label="Hospital" color="black" class="pa-2"></v-autocomplete>
<v-autocomplete :items="medicalCenters" item-text="name" item-value="id"
v-model="form.medicalCenterId" @change="fillUsers" label="Hospital"
color="black" class="pa-2"></v-autocomplete>
</v-flex>
<v-flex xs12 sm4 md4 class="WM-FlexCenter pl-3">
<v-icon class="fa fa-user mr-2 WM-Margin-B-8"></v-icon>
<v-autocomplete :items="users" item-text="name" item-value="id" v-model="form.userId" label="User" color="black" class="py-3 pr-3"></v-autocomplete>
<v-autocomplete :items="users" item-text="name" item-value="id" v-model="form.userId"
label="User" color="black" class="py-3 pr-3"></v-autocomplete>
</v-flex>
<v-flex xs12 sm4 md4 class="WM-FlexCenter pl-3">
<v-icon class="fas fa-sort-numeric-up mr-2 WM-Margin-B-8"></v-icon>
<v-autocomplete :items="testTypes" item-text="name" item-value="id" v-model="form.testTypeId" label="TestType" color="black" class="py-3 pr-3"></v-autocomplete>
<v-autocomplete :items="testTypes" item-text="name" item-value="id"
v-model="form.testTypeId" label="TestType" color="black"
class="py-3 pr-3"></v-autocomplete>
</v-flex>
<v-flex xs12 sm4 md4 class="WM-FlexCenter pl-3">
<v-icon class="fas fa-angle-right mr-2 WM-Margin-B-8"></v-icon>
<v-autocomplete :items="result" v-model="form.result" label="Result" color="black" class="py-3 pr-3"></v-autocomplete>
<v-autocomplete :items="result" v-model="form.result" label="Result" color="black"
class="py-3 pr-3"></v-autocomplete>
</v-flex>
<v-flex xs12 sm4 md4 class="WM-FlexCenter pl-3">
<v-icon class="fas fa-angle-right mr-2 WM-Margin-B-8"></v-icon>
<v-autocomplete :items="verify" v-model="form.verify" label="Verify" color="black" class="py-3 pr-3"></v-autocomplete>
<v-autocomplete :items="verify" v-model="form.verify" label="Verify" color="black"
class="py-3 pr-3"></v-autocomplete>
</v-flex>
<v-flex xs12 sm4 md4 class="WM-FlexCenter pl-3">
<v-icon class="fas fa-line-chart mr-2 WM-Margin-B-8"></v-icon>
<v-autocomplete :items="type" v-model="form.type" label="Type" color="black" class="py-3 pr-3"></v-autocomplete>
<v-autocomplete :items="type" v-model="form.type" label="Type" color="black"
class="py-3 pr-3"></v-autocomplete>
</v-flex>
<v-flex xs12 sm6 md2 class="WM-FlexCenter pl-3">
<v-icon class="far fa-calendar-alt mr-2"></v-icon>
@@ -104,10 +112,16 @@
<script>
import BarChart from "@/plugins/chart/BarChart.js";
import PieChart from "@/plugins/chart/PieChart.js";
import { ApiService } from "@/services";
import { urls } from "@/config/urls";
import {ApiService} from "@/services";
import {urls} from "@/config/urls";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
components: {
BarChart,
PieChart
@@ -183,13 +197,16 @@ export default {
max-width: 600px;
margin: 150px auto;
}
.v-btn--floating {
padding: 0!important;
padding: 0 !important;
}
.theme--light.v-btn.v-btn--flat {
color: rgba(0,0,0,.87)!important;
color: rgba(0, 0, 0, .87) !important;
}
.v-btn--floating, .v-btn--icon:before {
border-radius: 50%!important;
border-radius: 50% !important;
}
</style>
+6
View File
@@ -416,6 +416,12 @@ import {ApiService} from "@/services";
import {urls} from "@/config/urls";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
components: {
'wm-Dropzone': Dropzone,
},
+6
View File
@@ -186,6 +186,12 @@ import {
} from "vuex";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data: () => ({
headers: [
{sortable: false, text: "ID", value: "name"},
+6
View File
@@ -126,6 +126,12 @@ import { mapGetters, mapMutations } from "vuex";
import { ApiService } from "@/services";
import { urls } from "@/config/urls";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data: () => ({
data: {
user: {
+8 -1
View File
@@ -266,7 +266,8 @@
<v-icon class="white--text mr-2 caption">fas fa-times</v-icon>
REMOVE
</v-btn>
<v-layout row wrap align-center justify-center class="mt-4" v-if="(form.info.length -1) == keyForm">
<v-layout row wrap align-center justify-center class="mt-4"
v-if="(form.info.length -1) == keyForm">
<v-btn absolute right bottom small @click="addInput" color="pink" class="mb-2">
<v-icon class="white--text mr-2 caption">fas fa-plus</v-icon>
<span class="white--text">Add</span>
@@ -301,6 +302,12 @@ import {ApiService} from "@/services";
import {urls} from "@/config/urls";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data() {
return {
form: {
+6
View File
@@ -150,6 +150,12 @@ import {urls} from "@/config/urls";
import {mapMutations, mapGetters} from "vuex";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data: () => ({
headers: [
{sortable: false, text: "TestType Name", value: "name"},
+6
View File
@@ -144,6 +144,12 @@ import {mapMutations, mapGetters} from "vuex";
import {roles} from "@/config/utils";
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data: () => ({
headers: [
{
+6
View File
@@ -96,6 +96,12 @@ import {urls} from "@/config/urls";
import {mapMutations} from 'vuex';
export default {
metaInfo() {
return {
title: this.$route.meta.title,
meta: this.$route.meta.metaTags || []
}
},
data() {
return {
user: {