132 lines
3.5 KiB
Vue
132 lines
3.5 KiB
Vue
<template>
|
|
<NuxtLayout name="default" :menu="adminMenu">
|
|
<div class="m-2">
|
|
<the-content-loading v-if="fetchingData"></the-content-loading>
|
|
|
|
<!-- <my-quill
|
|
:parentButtonLoading="buttonLoading"
|
|
v-else
|
|
:tinyText="tinyText"
|
|
@input="onSave"
|
|
@on-save="onSave"
|
|
></my-quill> -->
|
|
|
|
<quill-editor
|
|
v-else
|
|
v-model="tinyText"
|
|
content-type="html"
|
|
:options="editorOptions"
|
|
></quill-editor>
|
|
<button @click="onSave" type="button" class="btn btn-primary mt-3">
|
|
ذخیره
|
|
</button>
|
|
</div>
|
|
</NuxtLayout>
|
|
</template>
|
|
|
|
<script>
|
|
import settingsApi from "~/apis/settingsApi";
|
|
import adminMenu from "~/json/admin/json/menu.json";
|
|
|
|
export default {
|
|
name: "dataSettingContactUs",
|
|
setup() {
|
|
definePageMeta({
|
|
name: "dataSettingContactUs",
|
|
layout: false,
|
|
});
|
|
},
|
|
created() {
|
|
this.httpService = useNuxtApp()["$http"];
|
|
},
|
|
mounted() {
|
|
this.getData();
|
|
},
|
|
watch: {
|
|
// $route: {
|
|
// handler: function () {
|
|
// this.$store.state.collapsed = false;
|
|
// },
|
|
// deep: true,
|
|
// immediate: true,
|
|
// },
|
|
},
|
|
data() {
|
|
return {
|
|
adminMenu: adminMenu,
|
|
httpService: {},
|
|
buttonLoading: false,
|
|
tinyText: "",
|
|
fetchingData: false,
|
|
data: undefined,
|
|
editorOptions: {
|
|
theme: "snow", // تم ویرایشگر: 'snow' یا 'bubble'
|
|
placeholder: "متن خود را بنویسید...",
|
|
modules: {
|
|
toolbar: [
|
|
[{ header: [1, 2, 3, false] }], // سطح هدینگها
|
|
["bold", "italic", "underline", "strike"], // دکمههای استایل متن
|
|
[{ color: [] }, { background: [] }], // رنگ متن و پسزمینه
|
|
[{ list: "ordered" }, { list: "bullet" }], // لیستهای شمارهدار و نقطهای
|
|
["blockquote", "code-block"], // نقلقول و کد
|
|
[{ align: [] }], // تراز بندی متن
|
|
["link", "image", "video"], // افزودن لینک، تصویر، و ویدیو
|
|
["clean"], // حذف فرمتها
|
|
],
|
|
},
|
|
},
|
|
};
|
|
},
|
|
|
|
methods: {
|
|
getData() {
|
|
var vm = this;
|
|
this.fetchingData = true;
|
|
|
|
var url = settingsApi.app.getByKey;
|
|
url = url.replace("{{key_option}}", "conect_text");
|
|
|
|
// let url = apis.admin.get.replace('{{system}}', this.$route.meta.apiKey)
|
|
|
|
this.httpService
|
|
.getRequest(url)
|
|
.then((response) => {
|
|
vm.fetchingData = false;
|
|
|
|
this.tinyText = response.data.hits.hits[0]._source.value;
|
|
this.data = response.data.hits.hits[0]._source;
|
|
})
|
|
.catch((error) => {})
|
|
.finally(() => {
|
|
vm.fetchingData = false;
|
|
});
|
|
},
|
|
onSave(newContent) {
|
|
if (this.buttonLoading) return;
|
|
this.buttonLoading = true;
|
|
|
|
// var url = apis.admin.save;
|
|
// const payload = { ...this.data, ...{ value: newContent } }
|
|
|
|
var url = settingsApi.app.saveByKey;
|
|
url = url.replace("{{key_option}}", "conect_text");
|
|
const payload = { value: newContent };
|
|
|
|
this.httpService
|
|
.postRequest(url, payload)
|
|
.then((response) => {
|
|
mySwalToast({
|
|
title: "تبریک",
|
|
html: response.data.message,
|
|
icon: "success",
|
|
});
|
|
})
|
|
.catch((error) => {})
|
|
.finally(() => {
|
|
this.buttonLoading = false;
|
|
});
|
|
},
|
|
},
|
|
};
|
|
</script>
|