157 lines
4.6 KiB
Vue
157 lines
4.6 KiB
Vue
![]() |
<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>
|