Files
FE_CPONE/test/vuex/cpone-resultentry-so-others-v6-ui-all/components/dialogs/PrintLangDialog.vue
2026-04-27 10:13:31 +07:00

95 lines
2.5 KiB
Vue

<template>
<v-dialog v-model="show" max-width="500px">
<v-card>
<v-card-title class="headline">
Pilih Bahasa untuk Cetak
</v-card-title>
<v-card-text>
<v-layout row wrap>
<v-flex xs12>
<v-list>
<v-list-tile v-for="(lang, index) in langs" :key="lang.id">
<v-list-tile-action>
<v-checkbox v-model="lang.chex" :value="'Y'"
@change="$emit('change', $event, index)"></v-checkbox>
</v-list-tile-action>
<v-list-tile-content>
<v-list-tile-title>{{ lang.name }}</v-list-tile-title>
</v-list-tile-content>
</v-list-tile>
</v-list>
</v-flex>
</v-layout>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="grey darken-1" flat @click="show = false">
Batal
</v-btn>
<v-btn color="primary" @click="$emit('print')">
Cetak
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</template>
<script>
const _ = require('lodash')
module.exports = {
name: 'PrintLangDialog',
props: {
value: {
type: Boolean,
default: false
},
langs: {
type: Array,
default: function () { return [] }
}
},
computed: {
show: {
get: function () {
return this.value
},
set: function (value) {
this.$emit('input', value)
}
}
},
watch: {
'value': function (newVal) {
if (!newVal) {
// Reset selections when dialog closes
this.langs.forEach(function (lang) {
lang.chex = lang.default === 'Y' ? 'Y' : 'N'
})
}
}
},
methods: {
changeSwitch: function (value, index) {
this.$emit('change', value, index)
},
doPrint: function () {
this.$emit('print')
}
}
}
</script>
<style scoped>
.v-input--selection-controls {
margin: 0;
padding: 0;
}
</style>