base_ui/components/other/SelectComponent.vue

157 lines
4.6 KiB
Vue
Raw Normal View History

2025-02-01 09:34:55 +00:00
<template>
<div class="row form-group mt-3">
<div>
<div class="row form-group mt-3" :key="$attrs.key">
<label
:for="localFormElement.key"
:class="$attrs.labelClass ?? 'col-md-3'"
>{{ localFormElement.label }}:</label
>
<div
class="mt-2"
:class="[$attrs.inputClass ?? ' col-md-9', { error: hasError }]"
>
<select
class="form-control form-select in-advanced-search"
@focus="clearErrors"
@change="validate"
@input="$emit('oninput', $event)"
:placeholder="localFormElement.placeholder"
:id="localFormElement.key"
:name="localFormElement.key"
v-model="textValue"
>
<option
v-for="(option, index) in listOptions"
:value="option.value"
:key="index"
>
{{ option.title ?? option.value }}
</option>
</select>
</div>
</div>
</div>
</div>
</template>
<script>
import formBuilderMixin from "~/extensions/formBuilderExtension.js";
export default {
extends: formBuilderMixin,
beforeMount() {
this.httpService = useNuxtApp()["$http"];
},
mounted() {
this.setOptions();
},
data() {
return {
httpService: undefined,
listOptions: [],
fetchingData: false,
};
},
methods: {
setOptions() {
if (this.localFormElement.options )
this.listOptions = this.localFormElement.options;
else if (this.localFormElement.key == "ts_ref") {
this.listOptions = [
{
value: "مجلس شورای اسلامی",
},
{
value: "شورای عالی انقلاب فرهنگی",
},
{
value: "کمیسیون امور قضایی و حقوقی مجلس",
},
{
value: "مقام معظم رهبری",
},
{
value: "مجمع تشخیص مصلحت نظام",
},
{
value: "شورای نگهبان",
},
{
value:
"کمیسیون مشترک اجتماعی و امنیت ملی و سیاست خارجی و برنامه و بودجه و محاسبات مجلس شورای اسلامی",
},
{
value: "همه پرسی",
},
{
value: "رییس مجلس شورای اسلامی",
},
{
value: "کمیسیون تلفیق مجلس شورای سلامی",
},
{
value: "کمیسیون اقتصادی مجلس شورای اسلامی",
},
{
value: "کمیسیون اجتماعی مجلس",
},
{
value: "کمیسیون برنامه و بودجه و محاسبات مجلس شورای اسلامی",
},
{
value: "کمیسیون صنایع و معادن مجلس شورای اسلامی",
},
{
value: "کمیسیون آموزش و تحقیقات مجلس شورای اسلامی",
},
{
value: "مجلس خبرگان رهبری",
},
{
value: "کمیسیون برنامه مجلس شورای ملی",
},
{
value: "کمیسیون امور دفاعی مجلس شورای اسلامی",
},
{
value: "شورای توسعه فرهنگ قرآنی",
},
{
value: "کمیسیون بهداری مجلس شورای اسلامی",
},
{
value: "کمیسیون امور داخلی مجلس شورای اسلامی",
},
{
value: "کمیسیون های ارشاد اسلامی و قضایی مجلس شورای اسلامی",
},
{
value: "کمیسیون های 1و2 شورای عالی انقلاب فرهنگی",
},
];
} else if (this.localFormElement.url_GET) {
this.getDynamicOption();
}
},
getDynamicOption(url) {
if (this.fetchingData) return;
this.fetchingData = true;
// url = url.replace("{{index_key}}", _entityType);
// url = url.replace("{{entity_id}}", _entityId);
this.httpService.getRequest(url).then((res) => {
this.listOptions = res.data;
this.fetchingData = false;
});
},
},
};
</script>
<style scoped lang="scss">
.form-select {
background-position: left 0.25em center;
}
</style>