<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>