mirror of
https://git.meshkee.com/cssd/cssd-front.git
synced 2026-10-13 12:03:16 +03:30
fix : duplicate in package & cycle- show items details
This commit is contained in:
@@ -2,9 +2,9 @@
|
|||||||
<v-container grid-list-xs>
|
<v-container grid-list-xs>
|
||||||
<material-card id="printMe" color="black" title="Show Cycle">
|
<material-card id="printMe" color="black" title="Show Cycle">
|
||||||
<v-layout align-left justify-left wrap class="px-3 my-3">
|
<v-layout align-left justify-left wrap class="px-3 my-3">
|
||||||
<h3 class="mt-0">Cycle - {{
|
<h3 class="mt-0">
|
||||||
(data.user && data.user.medical_center) ? data.user.medical_center.name : ""
|
Cycle - {{ (data.user && data.user.medical_center) ? data.user.medical_center.name : "" }}
|
||||||
}}</h3>
|
</h3>
|
||||||
<v-flex xs12>
|
<v-flex xs12>
|
||||||
<hr class="v-divider theme--light">
|
<hr class="v-divider theme--light">
|
||||||
</v-flex>
|
</v-flex>
|
||||||
@@ -18,9 +18,8 @@
|
|||||||
<v-flex xs12 sm6 md4>
|
<v-flex xs12 sm6 md4>
|
||||||
<div>
|
<div>
|
||||||
<span class="title">Sterilizer ID :</span>
|
<span class="title">Sterilizer ID :</span>
|
||||||
<span class="headline ml-1" style="letter-spacing:0 !important">{{
|
<span class="headline ml-1"
|
||||||
data.sterilizer_id
|
style="letter-spacing:0 !important">{{ data.sterilizer_id }}</span>
|
||||||
}}</span>
|
|
||||||
</div>
|
</div>
|
||||||
</v-flex>
|
</v-flex>
|
||||||
<v-flex xs12 sm6 md4>
|
<v-flex xs12 sm6 md4>
|
||||||
@@ -33,9 +32,8 @@
|
|||||||
<v-flex xs12 sm6 md4>
|
<v-flex xs12 sm6 md4>
|
||||||
<div>
|
<div>
|
||||||
<span class="title">Cycle Number :</span>
|
<span class="title">Cycle Number :</span>
|
||||||
<span class="headline ml-2" style="letter-spacing:0 !important">{{
|
<span class="headline ml-2"
|
||||||
data.cycle_number
|
style="letter-spacing:0 !important">{{ data.cycle_number }}</span>
|
||||||
}}</span>
|
|
||||||
</div>
|
</div>
|
||||||
</v-flex>
|
</v-flex>
|
||||||
<v-flex xs12 sm6 md4>
|
<v-flex xs12 sm6 md4>
|
||||||
@@ -81,7 +79,18 @@
|
|||||||
<v-expansion-panel class="WM-Panel" v-for="(label, key) in data.labels" :key="key">
|
<v-expansion-panel class="WM-Panel" v-for="(label, key) in data.labels" :key="key">
|
||||||
<v-expansion-panel-content>
|
<v-expansion-panel-content>
|
||||||
<template v-slot:header>
|
<template v-slot:header>
|
||||||
<div>{{ label.id }} ({{ label.pivot.count }})</div>
|
<v-layout row class="CSSD-font">
|
||||||
|
<span class="item-counter">{{ key + 1 }}</span>
|
||||||
|
<v-layout row class="pl-2">
|
||||||
|
<v-flex xs12 sm6 md4>
|
||||||
|
<span class="sub-text">Label ID:</span> {{ label.id }}
|
||||||
|
</v-flex>
|
||||||
|
<v-flex xs12 sm6 md4 v-if="label.pivot">
|
||||||
|
<span class="sub-text">Label Pivot counter:</span>
|
||||||
|
{{ label.pivot.count }}
|
||||||
|
</v-flex>
|
||||||
|
</v-layout>
|
||||||
|
</v-layout>
|
||||||
</template>
|
</template>
|
||||||
<v-card>
|
<v-card>
|
||||||
<v-card-text> Package :
|
<v-card-text> Package :
|
||||||
@@ -99,7 +108,25 @@
|
|||||||
:key="item.key">
|
:key="item.key">
|
||||||
<v-expansion-panel-content>
|
<v-expansion-panel-content>
|
||||||
<template v-slot:header>
|
<template v-slot:header>
|
||||||
<div>{{ item.name }} ({{ item.pivot.count }})</div>
|
<v-layout row class="CSSD-font">
|
||||||
|
<span class="item-counter">{{ key + 1 }}</span>
|
||||||
|
<v-layout row class="pl-2">
|
||||||
|
<v-flex xs12 sm6 md4>
|
||||||
|
<span class="sub-text">Item ID:</span>
|
||||||
|
{{ item.id }}
|
||||||
|
</v-flex>
|
||||||
|
<v-flex xs12 sm6 md4>
|
||||||
|
<span class="sub-text">Item Name:</span>
|
||||||
|
{{item.name}}
|
||||||
|
</v-flex>
|
||||||
|
<v-flex xs12 sm6 md4 v-if="item.pivot">
|
||||||
|
<span class="sub-text">
|
||||||
|
Item Pivot counter:
|
||||||
|
</span>
|
||||||
|
{{ item.pivot.count }}
|
||||||
|
</v-flex>
|
||||||
|
</v-layout>
|
||||||
|
</v-layout>
|
||||||
</template>
|
</template>
|
||||||
<v-card>
|
<v-card>
|
||||||
<v-card-text>note : {{ item.note }}</v-card-text>
|
<v-card-text>note : {{ item.note }}</v-card-text>
|
||||||
@@ -230,4 +257,21 @@ export default {
|
|||||||
.v-expansion-panel.WM-Panel .v-expansion-panel__body > .v-card {
|
.v-expansion-panel.WM-Panel .v-expansion-panel__body > .v-card {
|
||||||
margin: 5px 0 8px 0 !important;
|
margin: 5px 0 8px 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<style scoped>
|
||||||
|
.item-counter {
|
||||||
|
font-size: 44px;
|
||||||
|
opacity: .3;
|
||||||
|
font-family: 'Montserrat-Bold';
|
||||||
|
line-height: 44px;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
color: #b7b7b7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sub-text {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -15,38 +15,38 @@
|
|||||||
<v-layout row wrap class="">
|
<v-layout row wrap class="">
|
||||||
<v-flex xs12 md12 sm12>
|
<v-flex xs12 md12 sm12>
|
||||||
<div class="WM-d-flex">
|
<div class="WM-d-flex">
|
||||||
<span class="headline ml-1 mb-1" style="letter-spacing:0 !important">{{
|
<span class="headline ml-1 mb-1" style="letter-spacing:0 !important">
|
||||||
(data.user && data.user.medical_center) ? data.user.medical_center.name : ""
|
{{(data.user && data.user.medical_center) ? data.user.medical_center.name : ""}}
|
||||||
}}</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</v-flex>
|
</v-flex>
|
||||||
<v-flex xs12 md12 sm12 class="">
|
<v-flex xs12 md12 sm12 class="">
|
||||||
<div class="WM-d-flex">
|
<div class="WM-d-flex">
|
||||||
<v-icon class="WMi-location"></v-icon>
|
<v-icon class="WMi-location"/>
|
||||||
<span class="headline ml-1 mb-1"
|
<span class="headline ml-1 mb-1"
|
||||||
style="letter-spacing:0 !important">{{ data.package.name }}</span>
|
style="letter-spacing:0 !important">{{ data.package.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
</v-flex>
|
</v-flex>
|
||||||
<v-flex xs12 md12 sm12>
|
<v-flex xs12 md12 sm12>
|
||||||
<div class="WM-d-flex">
|
<div class="WM-d-flex">
|
||||||
<v-icon class="WMi-Industry"></v-icon>
|
<v-icon class="WMi-Industry"/>
|
||||||
<span class="headline ml-2 mb-1"
|
<span class="headline ml-2 mb-1"
|
||||||
style="letter-spacing:0 !important">{{ data.sterile_date }}</span>
|
style="letter-spacing:0 !important">{{ data.sterile_date }}</span>
|
||||||
</div>
|
</div>
|
||||||
</v-flex>
|
</v-flex>
|
||||||
<v-flex xs12 md12 sm12>
|
<v-flex xs12 md12 sm12>
|
||||||
<div class="WM-d-flex">
|
<div class="WM-d-flex">
|
||||||
<v-icon class="WMi-hourglass"></v-icon>
|
<v-icon class="WMi-hourglass"/>
|
||||||
<span class="headline ml-2 mb-1"
|
<span class="headline ml-2 mb-1"
|
||||||
style="letter-spacing:0 !important">{{ data.expire_date }}</span>
|
style="letter-spacing:0 !important">{{ data.expire_date }}</span>
|
||||||
</div>
|
</div>
|
||||||
</v-flex>
|
</v-flex>
|
||||||
<v-flex xs12 md12 sm12>
|
<v-flex xs12 md12 sm12>
|
||||||
<div class="WM-d-flex">
|
<div class="WM-d-flex">
|
||||||
<v-icon class="WMi-user"></v-icon>
|
<v-icon class="WMi-user"/>
|
||||||
<span class="headline ml-2 mb-1" style="letter-spacing:0 !important">{{
|
<span class="headline ml-2 mb-1" style="letter-spacing:0 !important">
|
||||||
data.user ? data.user.name : ''
|
{{data.user ? data.user.name : ''}}
|
||||||
}}</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</v-flex>
|
</v-flex>
|
||||||
</v-layout>
|
</v-layout>
|
||||||
@@ -57,7 +57,9 @@
|
|||||||
<v-layout row wrap class="WM-Align-R mt-2">
|
<v-layout row wrap class="WM-Align-R mt-2">
|
||||||
<v-flex xs12 v-if="QRCodeimg">
|
<v-flex xs12 v-if="QRCodeimg">
|
||||||
<a :href="'https://www.cssd-doc.com/Show/Label/'+data.id+''"
|
<a :href="'https://www.cssd-doc.com/Show/Label/'+data.id+''"
|
||||||
target="_blank"><img :src="QRCodeimg" class="WM-Width-120"></a>
|
target="_blank">
|
||||||
|
<img :src="QRCodeimg" class="WM-Width-120">
|
||||||
|
</a>
|
||||||
</v-flex>
|
</v-flex>
|
||||||
<v-flex xs12 md12 sm12>
|
<v-flex xs12 md12 sm12>
|
||||||
<div class>
|
<div class>
|
||||||
@@ -107,16 +109,40 @@
|
|||||||
<v-expansion-panel class="WM-Panel">
|
<v-expansion-panel class="WM-Panel">
|
||||||
<v-expansion-panel-content>
|
<v-expansion-panel-content>
|
||||||
<template v-slot:header>
|
<template v-slot:header>
|
||||||
<div>{{ data.package.name }}</div>
|
<v-layout row class="CSSD-font">
|
||||||
|
<v-layout row class="pl-2">
|
||||||
|
<v-flex xs12 sm6 md6>
|
||||||
|
<span class="sub-text">Package ID:</span> {{ data.package.id }}
|
||||||
|
</v-flex>
|
||||||
|
<v-flex xs12 sm6 md6>
|
||||||
|
<span class="sub-text">Package Name:</span> {{ data.package.name }}
|
||||||
|
</v-flex>
|
||||||
|
</v-layout>
|
||||||
|
</v-layout>
|
||||||
</template>
|
</template>
|
||||||
<v-card>
|
<v-card>
|
||||||
<v-card-text>note : {{ data.package.note }}</v-card-text>
|
<v-card-text>note : {{ data.package.note }}</v-card-text>
|
||||||
<v-card-text> Items :
|
<v-card-text> Items :
|
||||||
<v-expansion-panel class="WM-Panel" v-for="item in data.package.items"
|
<v-expansion-panel class="WM-Panel" v-for="(item, key) in data.package.items"
|
||||||
:key="item.key">
|
:key="key">
|
||||||
<v-expansion-panel-content>
|
<v-expansion-panel-content>
|
||||||
<template v-slot:header>
|
<template v-slot:header>
|
||||||
<div>{{ item.name }} ({{ item.pivot.count }})</div>
|
<v-layout row class="CSSD-font">
|
||||||
|
<span class="item-counter">{{ key + 1 }}</span>
|
||||||
|
<v-layout row class="pl-2">
|
||||||
|
<v-flex xs12 sm6 md4>
|
||||||
|
<span class="sub-text">Item ID:</span> {{ item.id }}
|
||||||
|
</v-flex>
|
||||||
|
<v-flex xs12 sm6 md4>
|
||||||
|
<span class="sub-text">Item Name:</span> {{ item.name }}
|
||||||
|
</v-flex>
|
||||||
|
<v-flex xs12 sm6 md4 v-if="item.pivot">
|
||||||
|
<span class="sub-text">Item Pivot counter:</span>
|
||||||
|
{{ item.pivot.count }}
|
||||||
|
</v-flex>
|
||||||
|
</v-layout>
|
||||||
|
</v-layout>
|
||||||
|
<!-- <div>{{ item.name }} ({{ item.pivot.count }})</div>-->
|
||||||
</template>
|
</template>
|
||||||
<v-card>
|
<v-card>
|
||||||
<v-card-text>note : {{ item.note }}</v-card-text>
|
<v-card-text>note : {{ item.note }}</v-card-text>
|
||||||
@@ -227,3 +253,20 @@ export default {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.item-counter {
|
||||||
|
font-size: 44px;
|
||||||
|
opacity: .3;
|
||||||
|
font-family: 'Montserrat-Bold';
|
||||||
|
line-height: 44px;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
color: #b7b7b7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sub-text {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
</v-flex>
|
</v-flex>
|
||||||
<v-flex xs12 sm6 md4 class="WM-FlexCenter">
|
<v-flex xs12 sm6 md4 class="WM-FlexCenter">
|
||||||
<v-icon class="far fa-calendar-alt mr-2"/>
|
<v-icon class="far fa-calendar-alt mr-2"/>
|
||||||
<v-menu
|
<v-menu class="WM-Width-Full"
|
||||||
lazy
|
lazy
|
||||||
:close-on-content-click="true"
|
:close-on-content-click="true"
|
||||||
transition="v-scale-transition"
|
transition="v-scale-transition"
|
||||||
@@ -48,6 +48,9 @@
|
|||||||
<div class="Inner">
|
<div class="Inner">
|
||||||
<v-icon class="fa fa-check mr-2 WM-Margin-B-8"></v-icon>
|
<v-icon class="fa fa-check mr-2 WM-Margin-B-8"></v-icon>
|
||||||
<v-autocomplete
|
<v-autocomplete
|
||||||
|
@keydown.enter.native.prevent="duplicateForm(key)"
|
||||||
|
@change="duplicateForm(key)"
|
||||||
|
:ref="`selectItem-${key}`"
|
||||||
color="black"
|
color="black"
|
||||||
:items="labels"
|
:items="labels"
|
||||||
item-text="id"
|
item-text="id"
|
||||||
@@ -132,6 +135,7 @@ export default {
|
|||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.loadLabels();
|
this.loadLabels();
|
||||||
|
console.log()
|
||||||
if (this.$route.params.cycle) {
|
if (this.$route.params.cycle) {
|
||||||
this.load(this.$route.params.cycle);
|
this.load(this.$route.params.cycle);
|
||||||
}
|
}
|
||||||
@@ -159,6 +163,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
async submitForm() {
|
async submitForm() {
|
||||||
|
this.formData.labels = this.formData.labels.filter(label => label.id);
|
||||||
let result;
|
let result;
|
||||||
if (this.$route.params.cycle) {
|
if (this.$route.params.cycle) {
|
||||||
result = await ApiService.put(urls.updateCycle(this.$route.params.cycle), this.formData);
|
result = await ApiService.put(urls.updateCycle(this.$route.params.cycle), this.formData);
|
||||||
@@ -170,8 +175,15 @@ export default {
|
|||||||
this.$router.push({name: "AllCycle"});
|
this.$router.push({name: "AllCycle"});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
duplicateForm(infoIndex) {
|
duplicateForm() {
|
||||||
this.formData.labels.push({name: "",});
|
this.formData.labels.push({name: "",});
|
||||||
|
this.$nextTick( () => {
|
||||||
|
const newIndex = this.formData.labels.length - 1;
|
||||||
|
const ref = this.$refs[`selectItem-${newIndex}`];
|
||||||
|
if (ref && ref[0]) {
|
||||||
|
ref[0].focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
removeForm(infoIndex) {
|
removeForm(infoIndex) {
|
||||||
this.formData.labels.splice(infoIndex, 1);
|
this.formData.labels.splice(infoIndex, 1);
|
||||||
|
|||||||
@@ -199,9 +199,15 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
duplicateForm(infoIndex) {
|
duplicateForm() {
|
||||||
this.formData.items.push({name: "",});
|
this.formData.items.push({name: "",});
|
||||||
this.$refs[`selectItem-${infoIndex}`][0].focus();
|
this.$nextTick( () => {
|
||||||
|
const newIndex = this.formData.items.length - 1;
|
||||||
|
const ref = this.$refs[`selectItem-${newIndex}`];
|
||||||
|
if (ref && ref[0]) {
|
||||||
|
ref[0].focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
removeForm(infoIndex) {
|
removeForm(infoIndex) {
|
||||||
this.formData.items.splice(infoIndex, 1);
|
this.formData.items.splice(infoIndex, 1);
|
||||||
|
|||||||
Reference in New Issue
Block a user