search_ui/components/entity/modals/EntityFishModal.vue

204 lines
5.4 KiB
Vue
Raw Permalink Normal View History

2025-02-01 11:06:10 +00:00
<template>
<div class="position-relative">
<form>
<div class="form-row text__14">
<label for=""> فیش به </label>
<span class="text-overflow">{{
data.value?.title ?? data.value?.summary
}}</span>
</div>
<div class="form-row">
<label for="">منبع: </label>
<div class="input-container">
<input
type="text"
ref="resource"
placeholder="منبع را وارد نمایید."
v-model="value.resource"
/>
<div v-if="errors.resource && errors.resource.length > 0">
<div
class="error-input"
v-for="(error, index) in errors.resource"
:key="index"
>
{{ error }}
</div>
</div>
</div>
</div>
<div class="form-row">
<label for="">تاریخ ایجاد: </label>
<div class="input-container">
<input
type="text"
ref="date_text"
placeholder="30/12/1402"
v-model="value.date_text"
/>
<div v-if="errors.date_text && errors.date_text.length > 0">
<div
class="error-input"
v-for="(error, index) in errors.date_text"
:key="index"
>
{{ error }}
</div>
</div>
</div>
</div>
<div class="form-row">
<label for="description">بیان </label>
<div class="input-container">
<textarea
name="description"
id="description"
v-model="value.description"
cols="30"
rows="10"
placeholder="بیان ای از پاسخ را گویا بیان فرمایید"
></textarea>
<div
v-if="errors['description'] && errors['description'].length > 0"
>
<div
class="error-input"
v-for="(error, index) in errors['description']"
:key="index"
>
{{ error }}
</div>
</div>
</div>
</div>
<div class="form-row">
<label for="text">توضیحات بیشتر </label>
<div class="input-container">
<textarea
name="text"
id="text"
v-model="value.text"
cols="30"
rows="10"
placeholder="توضیحات بیشتر را وارد نمایید."
></textarea>
<div v-if="errors['text'] && errors['text'].length > 0">
<div
class="error-input"
v-for="(error, index) in errors['text']"
:key="index"
>
{{ error }}
</div>
</div>
</div>
</div>
<div class="form-row">
<label for="">لینک: </label>
<div class="input-container">
<input
type="text"
ref="resource"
placeholder="منبع را وارد نمایید."
v-model="value.link"
/>
<div v-if="errors.resource && errors.resource.length > 0">
<div
class="error-input"
v-for="(error, index) in errors.resource"
:key="index"
>
{{ error }}
</div>
</div>
</div>
</div>
<div class="popUp-tab__buttons">
<div class="d-flex justify-content-between flex-grow-1">
<button
class="btn delete-btn btn-outline-danger button_delete_Simple"
@click.prevent="deleteProperty()"
>
حذف
</button>
<div class="d-flex">
<button
title="لغو"
@click.prevent="$emit('close-modal')"
class="popUp-tab__clear btn"
type="button"
>
لغو
</button>
<button
type="button"
class="popUp-tab__submit btn"
@click.prevent="saveProperty(value)"
>
ثبت
</button>
</div>
</div>
</div>
</form>
</div>
</template>
<script>
import { mapState } from "pinia";
import { propertyMixin } from "~/entity/mixins/propertyMixin";
import { commonMixin } from "~/entity/mixins/commonMixin";
import { entityMixin } from "~/entity/mixins/entityMixin";
export default {
mixins: [propertyMixin, commonMixin, entityMixin],
props: {
data: { type: Object, default: () => ({}) },
},
mounted() {
const value = this.getPropertyValue(
this.data.entity,
this.data.keyName,
this.data.index
);
if (value) this.value = value;
},
data() {
return {
value: {
date_text: null,
description: null,
resource: null,
text: null,
},
};
},
computed: {
...mapState("jahat", ["typesGetter"]),
},
mounted() {
if (this.data.entity.fish) {
this.value = {
date_text: this.data.entity.fish[0].date_text,
description: this.data.entity.fish[0].description,
resource: this.data.entity.fish[0].resource,
text: this.data.entity.fish[0].text,
link: this.data.entity.fish[0].link,
};
}
},
};
</script>
<style scoped>
#form {
overflow: auto;
height: 100%;
max-height: 20em;
}
</style>