This commit is contained in:
f.shokouhi
2020-01-09 10:43:27 +03:30
52 changed files with 1450 additions and 413 deletions
+2 -2
View File
@@ -82,9 +82,9 @@ export default {
]),
async handleSubmit() {
// Perform a simple validation that cell_number and password have been typed in
if (this.$refs.form.validate()) {
if (this.$refs.form.validate()) {
const response = await this.login({cell_number: this.cell_number, password: this.password});
if (!response.status || response.status !== 200) {
this.password = "";
}
+3 -3
View File
@@ -29,7 +29,7 @@
</v-flex>
<v-flex xs2 md2 sm2>
<v-text-field
v-model="country_code"
v-model="form.country_code"
name="country_code"
label="Country Code"
color="black"
@@ -39,7 +39,7 @@
</v-flex>
<v-flex xs10 md10 sm10>
<v-text-field
v-model="cell_number"
v-model="form.cell_number"
name="cellnumber"
label="Cell Number"
color="black"
@@ -130,4 +130,4 @@ export default {
}
}
};
</script>
</script>
+6 -6
View File
@@ -3,7 +3,7 @@
<v-container grid-list-xs fluid>
<material-card color="black" title="Add Cycle">
<v-layout wrap class="px-5 my-3">
<v-flex xs12 sm6 md4 class="WM-FlexCenter pl-3">
<v-icon class="fas fa-sort-numeric-up mr-2 WM-Margin-B-8"></v-icon>
<v-text-field
@@ -53,21 +53,21 @@
<v-flex xs12 sm6 md4 class="WM-FlexCenter WM-DuplicateInput" style="position: relative" v-for="(label, key) in formData.labels" :key="key">
<div class="Inner">
<v-icon class="fa fa-check mr-2 WM-Margin-B-8"></v-icon>
<!-- <v-autocomplete
<v-autocomplete
color="black"
:items="labels"
item-text="name"
item-text="id"
item-value="id"
v-model="label.id"
label="Select Label For Cycle"
></v-autocomplete> -->
<v-text-field
></v-autocomplete>
<!-- <v-text-field
name="labels"
label="Label ID"
color="black"
v-model="label.id"
class="py-3 pr-3"
></v-text-field>
></v-text-field> -->
<v-btn
absolute
+3 -3
View File
@@ -109,7 +109,7 @@
<v-icon class="white--text mr-2 caption">fas fa-times</v-icon>
<span>Remove</span>
</v-btn>
<v-btn color="orange darken-1" @click="generateBarcode(item.unique_id)">
<v-btn color="orange darken-1" @click="generateBarcode(item.id, 'Cycle')">
<v-icon class="white--text mr-1 caption">fas fa-barcode</v-icon>
<span>Generate Barcode</span>
</v-btn>
@@ -208,8 +208,8 @@ export default {
});
}
},
async generateBarcode(code) {
const result = await ApiService.post(urls.Barcode(code));
async generateBarcode(code, type) {
const result = await ApiService.post(urls.Barcode(code, type));
if (result && result.status == 200) {
this.changeCurrentModal({
modal: "modal-barcode-barcode",
+2 -3
View File
@@ -1,12 +1,11 @@
<template>
<v-container fluid>
<material-card class=""
v-if="$hasRole('Admin')"
color="black"
title="Admin"
text=""
>
text="">
<v-layout row wrap >
<template v-for="(AdminCard, Key ) in AdminCards">
<v-flex v-if="!AdminCard.role || $hasRole(AdminCard.role)" :class="[AdminCard.column , 'pa-2']" :key="Key">
+6 -6
View File
@@ -3,7 +3,7 @@
<v-container grid-list-xs fluid>
<material-card color="black" title="Add Instrument">
<v-layout align-center justify-center wrap class="px-5 my-3">
<v-flex xs12 md3 sm3 class="WM-FlexCenter">
<v-flex xs12 md4 sm4 class="WM-FlexCenter">
<v-icon class="fa fa-align-left mr-2 WM-Margin-B-8"></v-icon>
<v-text-field
name="name"
@@ -14,18 +14,18 @@
class="py-3 pr-3"
></v-text-field>
</v-flex>
<v-flex xs12 md3 sm3 class="WM-FlexCenter pl-3">
<!-- <v-flex xs12 md3 sm3 class="WM-FlexCenter pl-3">
<v-icon class="fas fa-sort-numeric-up mr-2 WM-Margin-B-8"></v-icon>
<v-text-field
name="unique_id"
label="ID"
label="Item ID"
color="black"
v-model="formData.unique_id"
:rules="[rules.required]"
class="py-3 pr-3"
></v-text-field>
</v-flex>
<v-flex xs12 md3 sm3 class="WM-FlexCenter pl-3">
</v-flex> -->
<v-flex xs12 md4 sm4 class="WM-FlexCenter pl-3">
<v-icon class="fas fa-check mr-2 WM-Margin-B-8"></v-icon>
<v-text-field
name="size"
@@ -35,7 +35,7 @@
class="py-3 pr-3"
></v-text-field>
</v-flex>
<v-flex xs12 md3 sm3 class="WM-FlexCenter pl-3">
<v-flex xs12 md4 sm4 class="WM-FlexCenter pl-3">
<v-icon class="fas fa-check mr-2 WM-Margin-B-8"></v-icon>
<v-text-field
name="specific"
+23 -6
View File
@@ -3,6 +3,15 @@
<v-container fluid>
<material-card class color="black" title="All Instrument" text>
<v-layout align-center wrap class="my-3">
<v-flex xs12 md3 sm3 class="WM-FlexCenter pl-3">
<v-icon class="fas fa-sort-numeric-up mr-2 WM-Margin-B-8"></v-icon>
<v-text-field
class="py-3 pr-3"
v-model="filter.item_id"
label="Item ID"
color="black"
></v-text-field>
</v-flex>
<v-flex xs12 md3 sm3 class="WM-FlexCenter pl-3">
<v-icon class="fa fa-align-left mr-2 WM-Margin-B-8"></v-icon>
<v-text-field
@@ -49,6 +58,7 @@
</template>
<template slot="items" slot-scope="{ item }">
<td class="title font-weight-light">{{ item.id }}</td>
<!-- <td class="title font-weight-light">{{ item.unique_id }}</td> -->
<td class="title font-weight-light">{{ item.name }}</td>
<td class="title font-weight-light">{{ item.size }}</td>
<td class="text-xs-right">
@@ -74,7 +84,7 @@
<v-icon class="white--text mr-2 caption">fas fa-times</v-icon>
<span>Remove</span>
</v-btn>
<v-btn color="orange darken-1" @click="generateBarcode(item.id)">
<v-btn color="orange darken-1" @click="generateBarcode(item.id, 'Item')">
<v-icon class="white--text mr-1 caption">fas fa-barcode</v-icon>
<span>Generate Barcode</span>
</v-btn>
@@ -107,9 +117,14 @@ import { mapMutations, mapGetters } from "vuex";
export default {
data: () => ({
headers: [
// {
// sortable: true,
// text: "ID",
// value: "id"
// },
{
sortable: true,
text: "ID",
text: "Item ID",
value: "id"
},
{
@@ -132,10 +147,12 @@ export default {
filter: {
name: '',
size: '',
item_id : ''
},
items: [],
currentPage: 1,
lastPage: 1,
}),
created() {
this.load();
@@ -159,12 +176,12 @@ export default {
this.lastPage = result.data.data.last_page;
}
},
async generateBarcode(code) {
const result = await ApiService.post(urls.Barcode(code));
async generateBarcode(code, type = null) {
const result = await ApiService.post(urls.Barcode(code, type));
if (result && result.status == 200) {
this.changeCurrentModal({
modal: "modal-barcode-barcode",
properties: { result }
properties: { result },
});
}
},
@@ -175,7 +192,7 @@ export default {
if (result && result.status == 200) {
this.changeCurrentModal({
modal: "modal-item-show",
properties: { result }
properties: { result },
});
}
},
+13 -4
View File
@@ -30,8 +30,8 @@
name="lot_number"
label="Lot Number"
color="black"
v-model="formData.lot_number"
readonly
v-model="lotNumber"
class="py-3 pr-3"
></v-text-field>
</v-flex>
@@ -136,7 +136,10 @@ export default {
formData: {
result: "",
package_id: "",
expire_date : "2020-01-01"
expire_date : "2020-01-01",
sterilizer_id : '',
cycle_number : '',
sterile_date : new Date().toISOString().substr(0, 10)
},
items: [],
rules: {
@@ -155,6 +158,11 @@ export default {
}
this.loadItems();
},
computed:{
lotNumber(){
return this.formData.sterilizer_id + ' - ' + this.formData.cycle_number;
}
},
methods: {
async load(id) {
const result = await ApiService.get(urls.editLabel(id));
@@ -170,6 +178,7 @@ export default {
},
async submitForm() {
let result;
this.formData['lot_number'] = this.lotNumber;
if (this.$route.params.label) {
result = await ApiService.put(
urls.updateLabel(this.$route.params.label),
@@ -183,7 +192,7 @@ export default {
}
if (result && result.status == 200) {
this.$router.push({ name: "AllLabels" });
window.location.href = "/Show/Label/" + result.data.data.id;
}
}
}
+15 -9
View File
@@ -7,7 +7,8 @@
<v-icon class="fas fa-sort-numeric-up mr-2 WM-Margin-B-8"></v-icon>
<v-text-field class="py-3" v-model="filter.label_id" label="Label ID" color="black"></v-text-field>
</v-flex>
<v-flex xs12 md3 sm3 class="WM-FlexCenter pl-3">
<v-flex xs12 md3 sm3 class="WM-FlexCenter pl-3" v-if="$hasRole('Admin')">
<v-icon class="fa fa-hospital-o mr-2 WM-Margin-B-8"></v-icon>
<v-autocomplete
class="py-3 pr-3"
@@ -21,8 +22,8 @@
></v-autocomplete>
</v-flex>
<v-flex xs12 md3 sm3 class="WM-FlexCenter pl-3">
<v-icon class="fa fa-user mr-2 WM-Margin-B-8"></v-icon>
<v-autocomplete
<v-icon class="fas fa-sort-numeric-up mr-2 WM-Margin-B-8"></v-icon>
<!-- <v-autocomplete
class="py-3 pr-3"
v-model="filter.user_id"
item-text="name"
@@ -30,7 +31,8 @@
label="Users"
color="black"
:items="users"
></v-autocomplete>
></v-autocomplete> -->
<v-text-field class="py-3" v-model="filter.sterilizer_id" label="Sterilizer ID" color="black"></v-text-field>
</v-flex>
<v-flex xs12 md3 sm3 class="WM-FlexCenter pl-3">
<v-icon class="fas fa-sort-numeric-up mr-2 WM-Margin-B-8"></v-icon>
@@ -90,7 +92,7 @@
<v-icon class="white--text mr-2 caption">fas fa-times</v-icon>
<span>Remove</span>
</v-btn>
<v-btn color="orange darken-1" @click="generateBarcode(item.id)">
<v-btn color="orange darken-1" @click="generateBarcode(item.id, 'Label')">
<v-icon class="white--text mr-1 caption">fas fa-barcode</v-icon>
<span>Generate Barcode</span>
</v-btn>
@@ -125,8 +127,8 @@ export default {
headers: [
{
sortable: true,
text: "LabelID",
value: "LabelID"
text: "Label ID",
value: "Label ID"
},
{
sortable: true,
@@ -202,7 +204,11 @@ export default {
if (result && result.status == 200) {
this.changeCurrentModal({
modal: "modal-label-show",
<<<<<<< HEAD
properties: { result, width: 40 }
=======
properties: { result, width :40 }
>>>>>>> 86a3479c9adec43de28cf80cee1fa1522b2bdd01
});
}
},
@@ -221,8 +227,8 @@ export default {
}
}
},
async generateBarcode(code) {
const result = await ApiService.post(urls.Barcode(code));
async generateBarcode(code, type) {
const result = await ApiService.post(urls.Barcode(code, type));
if (result && result.status == 200) {
this.changeCurrentModal({
modal: "modal-barcode-barcode",
@@ -12,6 +12,33 @@
:rules="[rules.required, rules.counter]"
></v-text-field>
</v-flex>
<v-flex xs12 md3 xs3>
<v-select
:items="cities"
item-text="name_en"
item-value="id"
v-model="medicalCenter.city_id"
label="Select City"
></v-select>
</v-flex>
<v-flex xs12 md3 xs3>
<v-text-field
v-model="medicalCenter.address"
label="Address"
color="black"
class="pa-2"
:rules="[rules.required]"
></v-text-field>
</v-flex>
<v-flex xs12 md3 xs3>
<v-text-field
v-model="medicalCenter.phone_number"
label="Phone Number"
color="black"
class="pa-2"
:rules="[rules.required]"
></v-text-field>
</v-flex>
</v-layout>
<v-layout row wrap align-center justify-center class="mt-3">
<v-btn class="WM-CyanBlueGradient-BG" @click="AddMedicalCenter" style="padding:10px 60px">
@@ -42,18 +69,23 @@ export default {
data() {
return {
medicalCenter: {
name: ""
name: "",
address : "",
city_id : "",
phone_number : ""
},
rules: {
required: value => !!value || "Required.",
counter: value => value.length <= 30 || "Max 30 characters"
}
},
cities : []
};
},
created() {
if (this.$route.params.medicalCenter) {
this.load(this.$route.params.medicalCenter);
}
}
this.loadCities();
},
methods: {
async load(id) {
@@ -62,6 +94,12 @@ export default {
this.medicalCenter = result.data.data;
}
},
async loadCities() {
const result = await ApiService.get(urls.allCities);
if (result.status == 200) {
this.cities = result.data.data;
}
},
async AddMedicalCenter() {
if (this.$refs.form.validate()) {
if (this.$route.params.medicalCenter) {
@@ -14,6 +14,17 @@
class="py-3 pr-3"
></v-text-field>
</v-flex>
<!-- <v-flex xs12 md3 sm3 class="WM-FlexCenter">
<v-icon class="fa fa-align-left mr-2 WM-Margin-B-8"></v-icon>
<v-text-field
name="unique_id"
label="Package ID"
color="black"
v-model="formData.unique_id"
:rules="[rules.required, rules.counter]"
class="py-3 pr-3"
></v-text-field>
</v-flex> -->
<v-flex xs12 md12 sm12></v-flex>
<!-- <v-row style="position: relative" v-for="(item, key) in formData.items" :key="key"> -->
<v-flex xs12 md3 sm3 class="WM-FlexCenter WM-DuplicateInput" style="position: relative" v-for="(item, key) in formData.items" :key="key">
+22 -7
View File
@@ -3,6 +3,15 @@
<v-container fluid>
<material-card class color="black" title="All Packages" text>
<v-layout align-center wrap class="my-3">
<v-flex xs12 md3 sm3 class="WM-FlexCenter pl-3">
<v-icon class="fas fa-sort-numeric-up mr-2 WM-Margin-B-8"></v-icon>
<v-text-field
class="py-3 pr-3"
v-model="filter.package_id"
label="Package ID"
color="black"
></v-text-field>
</v-flex>
<v-flex xs12 md3 sm3 class="WM-FlexCenter pl-3">
<v-icon class="fa fa-align-left mr-2 WM-Margin-B-8"></v-icon>
<v-text-field
@@ -48,7 +57,8 @@
/>
</template>
<template slot="items" slot-scope="{ item }">
<td class="title font-weight-light">{{ item.unique_id }}</td>
<td class="title font-weight-light">{{ item.id }}</td>
<!-- <td class="title font-weight-light">{{ item.unique_id }}</td> -->
<td class="title font-weight-light">{{ item.name }}</td>
<td class="title font-weight-light">{{ item.user.name }}</td>
<td class="title font-weight-light">{{ item.description }}</td>
@@ -75,7 +85,7 @@
<v-icon class="white--text mr-2 caption">fas fa-times</v-icon>
<span>Remove</span>
</v-btn>
<v-btn color="orange darken-1" @click="generateBarcode(item.unique_id)">
<v-btn color="orange darken-1" @click="generateBarcode(item.id, 'Package')">
<v-icon class="white--text mr-1 caption">fas fa-barcode</v-icon>
<span>Generate Barcode</span>
</v-btn>
@@ -108,10 +118,15 @@ import { mapMutations, mapGetters } from "vuex";
export default {
data: () => ({
headers: [
// {
// sortable: true,
// text: " ID",
// value: " ID"
// },
{
sortable: true,
text: "Unique ID",
value: "Unique ID"
text: "Package ID",
value: "Package ID"
},
{
sortable: true,
@@ -138,7 +153,7 @@ export default {
filter: {
unique_id: '',
name: '',
result: '',
package_id : ''
},
result: ['Pass', 'Fail'],
items: [],
@@ -193,8 +208,8 @@ export default {
}
}
},
async generateBarcode(code) {
const result = await ApiService.post(urls.packageBarcode(code));
async generateBarcode(code, type) {
const result = await ApiService.post(urls.Barcode(code, type));
if (result && result.status == 200) {
this.changeCurrentModal({
modal: "modal-barcode-barcode",
@@ -1,176 +0,0 @@
<template>
<v-container grid-list-xs>
<material-card color="black" title="Show Package">
<v-layout id="printMe" align-left justify-left wrap class="px-5 my-3">
<h3 class="ml-3">Info</h3>
<v-flex xs12>
<hr class="v-divider theme--light">
</v-flex>
<v-layout row wrap class="ml-4">
<!-- <v-flex xs12 md6 sm6>
<div class>
<v-flex xs12 md6 sm6 v-if="QRCodeimg">
<img :src="QRCodeimg">
</v-flex>
</div>
</v-flex> -->
<v-flex xs12 md6 sm6>
<div class>
<span class="title">Name :</span>
<span class="headline ml-1" style="letter-spacing:0 !important">{{ data.name }}</span>
</div>
</v-flex>
<v-flex xs12 md6 sm6>
<div class>
<span class="title">Description :</span>
<span class="headline ml-1" style="letter-spacing:0 !important">{{ data.note }}</span>
</div>
</v-flex>
<v-flex xs12 md6 sm6>
<div class>
<span class="title">Register User :</span>
<span class="headline ml-2" style="letter-spacing:0 !important">{{ (typeof data.user != 'undefined') ? data.user.name : '' }}</span>
</div>
</v-flex>
<v-flex xs12 md6 sm6>
<div class>
<span class="title">Date :</span>
<span class="headline ml-2" style="letter-spacing:0 !important">{{ data.created_at }}</span>
</div>
</v-flex>
</v-layout>
<v-layout align-left justify-left wrap class="px-5 my-3">
<h3 class="ml-3">Barcode And QRCode Image</h3>
<v-flex xs12>
<hr class="v-divider theme--light">
</v-flex>
<v-layout row wrap class="ml-4">
<v-flex xs12 md6 sm6 v-if="barcodeimg">
<img :src="barcodeimg"><br />
<span>{{data.unique_id}}</span>
</v-flex>
</v-layout>
<v-layout row wrap class="ml-4">
<v-flex xs12 md6 sm6 v-if="QRCodeimg">
<img :src="QRCodeimg">
</v-flex>
</v-layout>
</v-layout>
</v-layout>
<v-layout align-left justify-left wrap class="px-5 my-3">
<h3 class="ml-3">Items</h3>
<v-flex xs12>
<hr class="v-divider theme--light">
</v-flex>
<v-layout row wrap class="ml-4">
<template>
<v-expansion-panel class="WM-Panel">
<v-expansion-panel-content
v-for="(item, key) in data.items" :key="key"
>
<template v-slot:header>
<div>{{ key+1 + ": " + item.name }} ({{ item.pivot.count }})</div>
</template>
<v-card>
<v-card-text>note : {{ item.note }}</v-card-text>
</v-card>
</v-expansion-panel-content>
</v-expansion-panel>
</template>
</v-layout>
</v-layout>
<v-layout row wrap align-center justify-center>
<v-flex class xs12 md2 sm2 @click="print" >
<v-btn class="WM-CyanBlueGradient-BG" style="padding:10px 60px">
<v-icon class="white--text mr-2 caption">fas fa-print</v-icon>
<span class="white--text">Print</span>
</v-btn>
</v-flex>
</v-layout>
</material-card>
</v-container>
</template>
<script>
import { mapGetters, mapMutations } from "vuex";
import { ApiService } from "@/services";
import { urls } from "@/config/urls";
export default {
data: () => ({
data : {},
barcodeimg : '',
QRCodeimg : ''
}),
methods: {
...mapMutations("modal", ["closeModal", "setResultModal"]),
async load(id) {
const result = await ApiService.get(urls.showPackage(id));
if (result.status == 200) {
this.data = result.data.data;
this.generateBarcode(this.data.unique_id);
}
},
async verify(id) {
const result = await ApiService.post(urls.verifyPackage(id));
if (result && result.status == 200) {
this.setResultModal(result.data.data);
this.closeModal();
}
},
async generateBarcode(packageId) {
const result = await ApiService.post(urls.Barcode(packageId));
if (result && result.status == 200) {
this.QRCodeimg = result.data.data.QRCode ? result.data.data.QRCode : null;
this.barcodeimg = result.data.data.Barcode ? result.data.data.Barcode : null;
}
},
print() {
const prtHtml = document.getElementById("printMe").innerHTML;
// Get all stylesheets HTML
let stylesHtml = "";
for (const node of [
...document.querySelectorAll('link[rel="stylesheet"], style')
]) {
stylesHtml += node.outerHTML;
}
// Open the print window
const WinPrint = window.open(
"",
"",
"left=0,top=0,width=800,height=900,toolbar=0,scrollbars=0,status=0"
);
WinPrint.document.write(`<!DOCTYPE html>
<html>
<head>
${stylesHtml}
</head>
<body>
${prtHtml}
</body>
</html>`);
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
}
},
created() {
if (this.$route.params.package) {
this.load(this.$route.params.package);
}
},
computed: {
...mapGetters("modal", ["getModalProperties"])
}
};
</script>
@@ -68,9 +68,11 @@
slot="activator"
label="Date"
v-model="formData.date"
color="black"
></v-text-field>
<v-date-picker
min="2020-01-01"
color="pink"
no-title
v-model="formData.date"
@@ -83,8 +85,8 @@
</v-flex>
<v-spacer></v-spacer>
<v-flex xs12 sm2 md2>
<div class="WM-Align-R">
<input type="file" class="inputfile" @change="onFileChange" multiple />
<div class="WM-Align-R" style="position:relative">
<input type="file" class="inputfile" @change="onFileChange" multiple style="position:absolute;left:0;height:100px"/>
<label for="file">
<v-icon class="v-icon greylighten-3--text mr-2 caption IconHover">fas fa-chevron-right</v-icon>Choose a file
</label>
@@ -407,7 +409,7 @@
<v-icon class="white--text mr-2 caption">fas fa-check</v-icon>
<span class="white--text">SAVE</span>
</v-btn>
<router-link :to="{name: 'Dashboard'}">
<router-link :to="{name: 'AllResultTest'}">
<v-btn class="WM-NoShadow WM-Outline-Btn WM-Border WM-Border-Black ml-5">
<v-icon class="black--text mr-2 caption">fas fa-chevron-left</v-icon>
<span class="black--text">Back</span>
@@ -438,7 +440,8 @@ export default {
device_label: "ID",
result: "Reject",
img: null,
test_type_id: ""
test_type_id: "",
date : "2020-01-01"
},
images: [],
menu: "",
+3 -3
View File
@@ -141,7 +141,7 @@
<v-icon class="white--text mr-1 caption">fas fa-eye</v-icon>
<span>Show</span>
</v-btn>
<v-btn color="orange" class="mr-2" @click="generateBarcode(item.id)">
<v-btn color="orange" class="mr-2" @click="generateBarcode(item.id, 'TestResult')">
<v-icon class="white--text mr-1 caption">fas fa-eye</v-icon>
<span>generate Barcode</span>
</v-btn>
@@ -313,8 +313,8 @@ export default {
this.testTypes = result.data.data.TestTypes;
}
},
async generateBarcode(id) {
const result = await ApiService.post(urls.TestResultQRcode(id));
async generateBarcode(id, type) {
const result = await ApiService.post(urls.Barcode(id, type));
if (result && result.status == 200) {
this.changeCurrentModal({
modal: "modal-barcode-barcode",
+3 -4
View File
@@ -1,4 +1,3 @@
<template>
<v-container grid-list-xs>
<material-card color="black" title="Show Test Result" id="printMe">
@@ -58,13 +57,13 @@
</v-flex>
<v-layout row wrap class="ml-4">
<template v-if="data.inputs">
<v-flex xs12 md12 sm12 v-for="(inputData, keyInputs) in data.inputs" :key="keyInputs">
<v-flex xs12 md6 sm6 v-for="(inputData, keyInputs) in data.inputs" :key="keyInputs">
<span class="title">{{keyInputs}} :</span>
<span class="headline ml-2" style="letter-spacing:0 !important">{{inputData}}</span>
</v-flex>
</template>
<template v-if="data.options">
<v-flex xs12 md12 sm12 v-for="(optionData, keyOptions) in data.options" :key="keyOptions">
<v-flex xs12 md6 sm6 v-for="(optionData, keyOptions) in data.options" :key="keyOptions">
<span class="title">{{keyOptions}} :</span>
<span
style="letter-spacing:0 !important"
@@ -75,7 +74,7 @@
</v-flex>
</template>
<template v-if="data.children">
<v-flex xs12 md12 sm12 v-for="(formData, keyForm) in data.children" :key="keyForm">
<v-flex xs12 md6 sm6 v-for="(formData, keyForm) in data.children" :key="keyForm">
<h3 class="ml-3">{{keyForm}}</h3>
<div v-for="(childData, keyChild) in formData" :key="keyChild">
<div class="ml-4">
+1 -1
View File
@@ -364,7 +364,7 @@
<v-icon class="white--text mr-2 caption">fas fa-check</v-icon>
<span class="white--text">Generate Form</span>
</v-btn>
<router-link to="/dashboard">
<router-link :to="{name : 'ListTestType'}">
<v-btn class="WM-NoShadow WM-Outline-Btn WM-Border WM-Border-Black ml-5">
<v-icon class="black--text mr-2 caption">fas fa-chevron-left</v-icon>
<span class="black--text">Back</span>
+16
View File
@@ -116,6 +116,10 @@
<v-icon class="white--text mr-1 caption">fas fa-folder</v-icon>
<span>Archive</span>
</v-btn>
<v-btn color="orange darken-1" @click="generateBarcode(item.id, 'TestType')">
<v-icon class="white--text mr-1 caption">fas fa-barcode</v-icon>
<span>Generate Barcode</span>
</v-btn>
</td>
</template>
</v-data-table>
@@ -140,6 +144,8 @@
<script>
import { ApiService } from "@/services";
import { urls } from "@/config/urls";
import { mapMutations, mapGetters } from "vuex";
export default {
data: () => ({
headers: [
@@ -187,6 +193,7 @@ export default {
this.load();
},
methods: {
...mapMutations("modal", ["changeCurrentModal"]),
async load(page = 1) {
let filter = "?";
for (const key in this.filter) {
@@ -215,6 +222,15 @@ export default {
}
}
},
async generateBarcode(code, type) {
const result = await ApiService.post(urls.Barcode(code, type));
if (result && result.status == 200) {
this.changeCurrentModal({
modal: "modal-barcode-barcode",
properties: { result }
});
}
}
},
watch: {
currentPage(page) {