Files
web/app/components/parameter/AllocationRules.vue
2026-03-02 09:45:33 +07:00

48 lines
1.3 KiB
Vue

<template>
<div>
<div class="fixed-grid has-3-cols">
<div class="grid">
<div class="cell" v-for="rule in recordRules" :key="rule.code">
<label class="radio">
<input type="radio" name="answer" :value="rule.code" v-model="recordCurrent" />
{{ isVietnamese ? rule.vi : rule.en }}
</label>
</div>
</div>
</div>
</div>
</template>
<script setup>
const { $updateapi, $snackbar, $getdata, $store } = useNuxtApp();
var props = defineProps({
api: String,
pagename: String,
row: Object,
prefix: String,
});
const isVietnamese = computed(() => $store.lang.toLowerCase() === "vi");
const recordRules = ref([]);
const recordCurrent = ref({});
let current = {};
let foundCurrent = await $getdata(props.api, { category: "system", classify: "current", code: "rule" });
if (foundCurrent !== "error" && foundCurrent.length > 0) {
recordCurrent.value = foundCurrent[0].detail;
current.value = foundCurrent[0];
}
let foundRules = await $getdata(props.api, { category: "system", classify: "rules" });
if (foundRules !== "error" && foundRules.length > 0) {
recordRules.value = foundRules;
}
watch(recordCurrent, async (newVal) => {
current.value.detail = newVal;
let rs = await $updateapi(props.api, current.value, null);
if (rs === "error") return $snackbar(rs);
});
</script>