Merge branch 'shadi/develop' of https://git2.tavasi.ir/front/base_ui into main

This commit is contained in:
mustafa-rezae 2025-02-27 13:19:29 +03:30
commit cab508f69a
28 changed files with 155 additions and 118 deletions

View File

@ -1,5 +1,7 @@
@import "src/assets/common/scss/mixin"; // @import "src/assets/common/scss/mixin";
@import "src/assets/common/scss/placeholder"; // @import "src/assets/common/scss/placeholder";
@import "@/assets/common/scss/mixin";
@import "@/assets/common/scss/placeholder";
.admin-system,.task-system,.admin-panel{ .admin-system,.task-system,.admin-panel{
//@import "main"; //@import "main";

View File

@ -1,5 +1,7 @@
@import "src/assets/common/scss/mixin"; // @import "src/assets/common/scss/mixin";
@import "src/assets/common/scss/placeholder"; // @import "src/assets/common/scss/placeholder";
@import "@/assets/common/scss/mixin";
@import "@/assets/common/scss/placeholder";
.admin-panel { .admin-panel {
.pages-content-container { .pages-content-container {

View File

@ -106,7 +106,9 @@
<script> <script>
import authMixin from "~/mixins/authMixin"; import authMixin from "~/mixins/authMixin";
import { required, minLength } from "vuelidate/lib/validators"; import { required,minLength } from '@vuelidate/validators'
import useVuelidate from '@vuelidate/core'
import { mapState } from "pinia"; import { mapState } from "pinia";

View File

@ -106,7 +106,8 @@
<script> <script>
import authMixin from "~/mixins/authMixin"; import authMixin from "~/mixins/authMixin";
import { required, minLength } from "vuelidate/lib/validators";
import { required, minLength } from "@vuelidate/validators";
import { useCommonStore } from "~/stores/commonStore"; import { useCommonStore } from "~/stores/commonStore";
import { useAuthStore } from "~/stores/authStore"; import { useAuthStore } from "~/stores/authStore";
import { mapState } from "pinia"; import { mapState } from "pinia";
@ -147,7 +148,11 @@ export default {
}; };
}, },
computed: { computed: {
...mapState(useAuthStore,["getMobile", "getFullName", "getResetPasswordState"]), ...mapState(useAuthStore, [
"getMobile",
"getFullName",
"getResetPasswordState",
]),
}, },
methods: { methods: {
resetErrors() { resetErrors() {
@ -187,7 +192,7 @@ export default {
const { $eventBus } = useNuxtApp(); const { $eventBus } = useNuxtApp();
$eventBus.emit( $eventBus.emit(
'authenticated-by-modal', "authenticated-by-modal",
this.$route.query["invite-id"] this.$route.query["invite-id"]
); );

View File

@ -43,7 +43,7 @@ import {
minLength, minLength,
maxLength, maxLength,
between, between,
} from "vuelidate/lib/validators"; } from "@vuelidate/validators";
export default { export default {
name: "forget", name: "forget",

View File

@ -156,7 +156,7 @@ import {
minLength, minLength,
maxLength, maxLength,
between, between,
} from "vuelidate/lib/validators"; } from "@vuelidate/validators";
export default { export default {
mounted() { mounted() {

View File

@ -116,7 +116,7 @@ import {
minLength, minLength,
maxLength, maxLength,
between, between,
} from "vuelidate/lib/validators"; } from "@vuelidate/validators";
import { mapState, mapActions } from "pinia"; import { mapState, mapActions } from "pinia";
import { useCommonStore } from "~/stores/commonStore"; import { useCommonStore } from "~/stores/commonStore";

View File

@ -207,7 +207,7 @@ import {
maxLength, maxLength,
between, between,
sameAs, sameAs,
} from "vuelidate/lib/validators"; } from "@vuelidate/validators";
export default { export default {
mounted(){ mounted(){

View File

@ -93,7 +93,7 @@ import {
maxLength, maxLength,
between, between,
sameAs, sameAs,
} from "vuelidate/lib/validators"; } from "@vuelidate/validators";
export default { export default {
validations: { validations: {

View File

@ -110,7 +110,7 @@ import {
required, required,
minLength, minLength,
sameAs, sameAs,
} from "vuelidate/lib/validators"; } from "@vuelidate/validators";
import { mapState, mapActions } from "pinia"; import { mapState, mapActions } from "pinia";
import { useCommonStore } from "~/stores/commonStore"; import { useCommonStore } from "~/stores/commonStore";
import { useAuthStore } from "~/stores/authStore"; import { useAuthStore } from "~/stores/authStore";

View File

@ -34,12 +34,8 @@
<script> <script>
import authMixin from "~/mixins/authMixin"; import authMixin from "~/mixins/authMixin";
import {
required, import { required, minLength, maxLength, between } from "@vuelidate/validators";
minLength,
maxLength,
between,
} from "vuelidate/lib/validators";
export default { export default {
name: "forget", name: "forget",

View File

@ -116,7 +116,7 @@ import {
minLength, minLength,
maxLength, maxLength,
between, between,
} from "vuelidate/lib/validators"; } from "@vuelidate/validators";
import { mapState, mapActions } from "pinia"; import { mapState, mapActions } from "pinia";
import { useCommonStore } from "~/stores/commonStore"; import { useCommonStore } from "~/stores/commonStore";

View File

@ -146,7 +146,7 @@ import {
maxLength, maxLength,
between, between,
sameAs, sameAs,
} from "vuelidate/lib/validators"; } from "@vuelidate/validators";
export default { export default {
validations: { validations: {

View File

@ -107,7 +107,7 @@ import {
required, required,
minLength, minLength,
sameAs, sameAs,
} from "vuelidate/lib/validators"; } from "@vuelidate/validators";
import { mapState, mapActions } from "pinia"; import { mapState, mapActions } from "pinia";
export default { export default {

View File

@ -44,7 +44,7 @@ import {
minLength, minLength,
maxLength, maxLength,
between, between,
} from "vuelidate/lib/validators"; } from "@vuelidate/validators";
export default { export default {
validations: { validations: {

View File

@ -63,8 +63,8 @@
<div class="row"> <div class="row">
<div class="col-sm-6 mb-2 mb-sm-0 col-md mb-sm-2 mb-md-0"> <div class="col-sm-6 mb-2 mb-sm-0 col-md mb-sm-2 mb-md-0">
<div class="link-item-container"> <div class="link-item-container">
<a <NuxtLink
:href="urlResolver('qq309202')" :to="urlResolver('qq309202')"
target="_blank" target="_blank"
class="btn link-item" class="btn link-item"
> >
@ -80,13 +80,13 @@
<div class="more-text-container"> <div class="more-text-container">
<span class="more-text"> مشاهده بیشتر </span> <span class="more-text"> مشاهده بیشتر </span>
</div> </div>
</a> </NuxtLink>
</div> </div>
</div> </div>
<div class="col-sm-6 mb-2 mb-sm-0 col-md mb-sm-2 mb-md-0"> <div class="col-sm-6 mb-2 mb-sm-0 col-md mb-sm-2 mb-md-0">
<div class="link-item-container"> <div class="link-item-container">
<a <NuxtLink
:href="urlResolver('qq308235')" :to="urlResolver('qq308235')"
target="_blank" target="_blank"
class="btn link-item" class="btn link-item"
> >
@ -100,13 +100,13 @@
<div class="more-text-container"> <div class="more-text-container">
<span class="more-text"> مشاهده بیشتر </span> <span class="more-text"> مشاهده بیشتر </span>
</div> </div>
</a> </NuxtLink>
</div> </div>
</div> </div>
<div class="col-sm-6 mb-2 mb-sm-0 col-md"> <div class="col-sm-6 mb-2 mb-sm-0 col-md">
<div class="link-item-container"> <div class="link-item-container">
<a <NuxtLink
:href="urlResolver('qq38162')" :to="urlResolver('qq38162')"
target="_blank" target="_blank"
class="btn link-item" class="btn link-item"
> >
@ -120,13 +120,13 @@
<div class="more-text-container"> <div class="more-text-container">
<span class="more-text"> مشاهده بیشتر </span> <span class="more-text"> مشاهده بیشتر </span>
</div> </div>
</a> </NuxtLink>
</div> </div>
</div> </div>
<div class="col-sm-6 mb-2 mb-sm-0 col-md"> <div class="col-sm-6 mb-2 mb-sm-0 col-md">
<div class="link-item-container"> <div class="link-item-container">
<a <NuxtLink
:href="urlResolver('qq233930')" :to="urlResolver('qq233930')"
target="_blank" target="_blank"
class="btn link-item" class="btn link-item"
> >
@ -140,7 +140,7 @@
<div class="more-text-container"> <div class="more-text-container">
<span class="more-text"> مشاهده بیشتر </span> <span class="more-text"> مشاهده بیشتر </span>
</div> </div>
</a> </NuxtLink>
</div> </div>
</div> </div>
</div> </div>
@ -156,7 +156,8 @@ import searchApi from "~/apis/searchApi";
import { mapState, mapActions } from "pinia"; import { mapState, mapActions } from "pinia";
import { useCommonStore } from "~/stores/commonStore"; import { useCommonStore } from "~/stores/commonStore";
import { useStorage } from "@vueuse/core"; import { useStorage } from "@vueuse/core";
import {clearBodyClass} from "@manuals/utilities" import { clearBodyClass } from "@manuals/utilities";
import { useRouter } from "vue-router";
export default { export default {
beforeMount() { beforeMount() {
@ -255,7 +256,9 @@ export default {
}, },
urlResolver(_id) { urlResolver(_id) {
return ""; const router = `search/qasection/${_id}/show`;
return router;
// const routeData = this.$router.resolve({ // const routeData = this.$router.resolve({
// path: "navigation", // path: "navigation",
// params: { // params: {
@ -272,7 +275,6 @@ export default {
<style lang="scss"> <style lang="scss">
@import "../../../assets/majles/scss/majles"; @import "../../../assets/majles/scss/majles";
.custom-class { .custom-class {
.dropdown-toggle { .dropdown-toggle {
color: rgba(0, 0, 0, 0.5) !important; color: rgba(0, 0, 0, 0.5) !important;

View File

@ -4,7 +4,7 @@
>{{ getLabel() }}:</label >{{ getLabel() }}:</label
> >
<div> <div>
<codemirror <!-- <codemirror
:options="cmOptions" :options="cmOptions"
class="markdown-preview" class="markdown-preview"
v-model="textValue" v-model="textValue"
@ -12,7 +12,7 @@
:id="localFormElement.key" :id="localFormElement.key"
:name="localFormElement.key" :name="localFormElement.key"
ref="myCm" ref="myCm"
></codemirror> ></codemirror> -->
</div> </div>
</div> </div>
</template> </template>
@ -21,20 +21,20 @@
import { mapState } from "pinia"; import { mapState } from "pinia";
import formBuilderMixin from "@mixins/formBuilderMixin"; import formBuilderMixin from "@mixins/formBuilderMixin";
import { codemirror } from "vue-codemirror"; // import { codemirror } from "vue-codemirror";
import "vue-codemirror/node_modules/codemirror/lib/codemirror.css"; // import "vue-codemirror/node_modules/codemirror/lib/codemirror.css";
import "vue-codemirror/node_modules/codemirror/mode/markdown/markdown.js"; // import "vue-codemirror/node_modules/codemirror/mode/markdown/markdown.js";
import "vue-codemirror/node_modules/codemirror/mode/javascript/javascript.js"; // import "vue-codemirror/node_modules/codemirror/mode/javascript/javascript.js";
import "vue-codemirror/node_modules/codemirror/mode/css/css.js"; // import "vue-codemirror/node_modules/codemirror/mode/css/css.js";
import "vue-codemirror/node_modules/codemirror/mode/vue/vue.js"; // import "vue-codemirror/node_modules/codemirror/mode/vue/vue.js";
import "vue-codemirror/node_modules/codemirror/mode/htmlmixed/htmlmixed.js"; // import "vue-codemirror/node_modules/codemirror/mode/htmlmixed/htmlmixed.js";
import "vue-codemirror/node_modules/codemirror/addon/edit/closebrackets.js"; // import "vue-codemirror/node_modules/codemirror/addon/edit/closebrackets.js";
import "vue-codemirror/node_modules/codemirror/addon/edit/matchbrackets.js"; // import "vue-codemirror/node_modules/codemirror/addon/edit/matchbrackets.js";
import "vue-codemirror/node_modules/codemirror/addon/edit/closetag.js"; // import "vue-codemirror/node_modules/codemirror/addon/edit/closetag.js";
import "vue-codemirror/node_modules/codemirror/addon/display/placeholder.js"; // import "vue-codemirror/node_modules/codemirror/addon/display/placeholder.js";
import "vue-codemirror/node_modules/codemirror/addon/scroll/simplescrollbars.js"; // import "vue-codemirror/node_modules/codemirror/addon/scroll/simplescrollbars.js";
import "vue-codemirror/node_modules/codemirror/addon/scroll/simplescrollbars.css"; // import "vue-codemirror/node_modules/codemirror/addon/scroll/simplescrollbars.css";
import "vue-codemirror/node_modules/codemirror/addon/selection/active-line.js"; // import "vue-codemirror/node_modules/codemirror/addon/selection/active-line.js";
export default { export default {
mixins: [formBuilderMixin], mixins: [formBuilderMixin],

View File

@ -1,8 +1,8 @@
<template> <template>
<div class="row form-group" :key="$attrs.key"> <div class="row form-group" :key="$attrs.key">
<label :for="localFormElement?.key" class="col-md-3">{{ <label :for="localFormElement?.key" class="col-md-3"
localFormElement?.label >{{ localFormElement?.label }}:</label
}}:</label> >
<div v-if="isInitial" class="dropbox"> <div v-if="isInitial" class="dropbox">
<input <input
@ -58,7 +58,7 @@ const STATUS_INITIAL = 0,
STATUS_FAILED = 3; STATUS_FAILED = 3;
import { upload } from "@services/fileUploadService"; import { upload } from "@services/fileUploadService";
import { wait } from "@utilities/utilities.js"; import { wait } from "~/manuals/utilities.js";
import formBuilderMixin from "@mixins/formBuilderMixin"; import formBuilderMixin from "@mixins/formBuilderMixin";
export default { export default {

View File

@ -92,7 +92,7 @@ export default {
// datePicker: VuePersianDatetimePicker, // datePicker: VuePersianDatetimePicker,
datePicker: () => datePicker: () =>
import( import(
"vue-persian-datetime-picker" "vue3-persian-datetime-picker"
), ),
}, },
}; };

View File

@ -86,13 +86,13 @@ import repoApi from "~/apis/repoApi";
import { mapState } from "pinia"; import { mapState } from "pinia";
import { useCommonStore } from "~/stores/commonStore"; import { useCommonStore } from "~/stores/commonStore";
import SelectComponentDefault from "~/components/SelectComponentDefault.vue"; import SelectComponentDefault from "~/components/other/SelectComponentDefault.vue";
import SelectComponent from "~/components/SelectComponent.vue"; import SelectComponent from "~/components/other/SelectComponent.vue";
import InputComponent from "~/components/InputComponent.vue"; import InputComponent from "~/components/other/InputComponent.vue";
import LabelComponent from "~/components/LabelComponent.vue"; import LabelComponent from "~/components/other/LabelComponent.vue";
import tagsComponent from "~/components/tagsComponent.vue"; import tagsComponent from "~/components/other/tagsComponent.vue";
import DateComponent from "~/components/DateComponent.vue"; import DateComponent from "~/components/other/DateComponent.vue";
import TextareaComponent from "~/components/TextareaComponent.vue"; import TextareaComponent from "~/components/other/TextareaComponent.vue";
/** /**
* @vue-data {Object} [listUpdatedText = {}] - متنهای بهروزشده در لیست. * @vue-data {Object} [listUpdatedText = {}] - متنهای بهروزشده در لیست.
* @vue-data {undefined} [httpService = undefined] - سرویس HTTP برای درخواستها. * @vue-data {undefined} [httpService = undefined] - سرویس HTTP برای درخواستها.

View File

@ -28,8 +28,8 @@
<button <button
class="navbar-toggler" class="navbar-toggler"
type="button" type="button"
data-toggle="collapse" data-bs-toggle="collapse"
data-target="#navbarSupportedContent" data-bs-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-expanded="false"
aria-label="Toggle navigation" aria-label="Toggle navigation"
@ -50,10 +50,10 @@
</div> </div>
<button <button
class="btn p-0 mr-auto" class="btn p-0 me-auto"
type="button" type="button"
data-toggle="collapse" data-bs-toggle="collapse"
data-target="#navbarSupportedContent" data-bs-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-expanded="false"
aria-label="Toggle navigation" aria-label="Toggle navigation"
@ -63,7 +63,7 @@
</svg> </svg>
</button> </button>
</div> </div>
<ul class="navbar-nav ml-auto mr-md-5"> <ul class="navbar-nav ms-auto me-md-5">
<!-- <li class="nav-item active"> <!-- <li class="nav-item active">
<a class="nav-link" href="#" <a class="nav-link" href="#"
>پیشخوان <span class="sr-only">(current)</span></a >پیشخوان <span class="sr-only">(current)</span></a
@ -77,7 +77,7 @@
class="nav-link dropdown-toggle" class="nav-link dropdown-toggle"
id="navbarDropdown" id="navbarDropdown"
role="button" role="button"
data-toggle="dropdown" data-bs-toggle="dropdown"
aria-haspopup="true" aria-haspopup="true"
aria-expanded="false" aria-expanded="false"
> >
@ -93,7 +93,7 @@
href="#" href="#"
id="navbarDropdown" id="navbarDropdown"
role="button" role="button"
data-toggle="dropdown" data-bs-toggle="dropdown"
aria-haspopup="true" aria-haspopup="true"
aria-expanded="false" aria-expanded="false"
> >
@ -128,7 +128,7 @@
</li> </li>
</ul> </ul>
<ul class="navbar-nav ml-md-3 mr-auto"> <ul class="navbar-nav ms-md-3 me-auto">
<li class="nav-item"> <li class="nav-item">
<notification></notification> <notification></notification>
</li> </li>
@ -151,12 +151,14 @@
<the-sidebar <the-sidebar
:showUserAvatar="true" :showUserAvatar="true"
:menu="$attrs.menu" :menu="$attrs.menu"
@statusPag="statusPag"
></the-sidebar> ></the-sidebar>
<main class="main-page__content" :class="{ expanded: !isSidebarCollapsed }"> <main class="main-page__content" :class="{ expanded: !isSidebarCollapsed }">
<!-- <div class="pages list-page"> --> <!-- <div class="pages list-page"> -->
<!-- <div class="pages-content align-items-stretch p-0"> --> <!-- <div class="pages-content align-items-stretch p-0"> -->
<!-- <div class="flex-grow-1"> --> <!-- <div class="flex-grow-1"> -->
<slot></slot> <slot></slot>
<!-- </div> --> <!-- </div> -->
<!-- </div> --> <!-- </div> -->
@ -169,7 +171,7 @@
import { mapState, mapActions } from "pinia"; import { mapState, mapActions } from "pinia";
import { useCommonStore } from "~/stores/commonStore"; import { useCommonStore } from "~/stores/commonStore";
import {clearBodyClass} from "@manuals/utilities" import { clearBodyClass } from "@manuals/utilities";
export default { export default {
mounted() { mounted() {
// this.setBodyClass("default-dashboard"); // this.setBodyClass("default-dashboard");

View File

@ -1,5 +1,5 @@
import { mapState, mapActions } from "pinia"; import { mapState, mapActions } from "pinia";
import { useCommonStore } from "@stores/commonStore"; import { useCommonStore } from "~/stores/commonStore";
export default { export default {
created() { created() {

32
package-lock.json generated
View File

@ -17,6 +17,7 @@
"@vueup/vue-quill": "^1.2.0", "@vueup/vue-quill": "^1.2.0",
"axios": "^1.7.7", "axios": "^1.7.7",
"bootstrap": "^5.3.3", "bootstrap": "^5.3.3",
"codemirror": "^6.0.1",
"docx": "^9.1.1", "docx": "^9.1.1",
"echarts": "^5.5.1", "echarts": "^5.5.1",
"echarts-wordcloud": "^2.1.0", "echarts-wordcloud": "^2.1.0",
@ -667,7 +668,6 @@
"resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.18.3.tgz", "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.18.3.tgz",
"integrity": "sha512-1dNIOmiM0z4BIBwxmxEfA1yoxh1MF/6KPBbh20a5vphGV0ictKlgQsbJs6D6SkR6iJpGbpwRsa6PFMNlg9T9pQ==", "integrity": "sha512-1dNIOmiM0z4BIBwxmxEfA1yoxh1MF/6KPBbh20a5vphGV0ictKlgQsbJs6D6SkR6iJpGbpwRsa6PFMNlg9T9pQ==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@codemirror/language": "^6.0.0", "@codemirror/language": "^6.0.0",
"@codemirror/state": "^6.0.0", "@codemirror/state": "^6.0.0",
@ -712,7 +712,6 @@
"resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.8.3.tgz", "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.8.3.tgz",
"integrity": "sha512-GSGfKxCo867P7EX1k2LoCrjuQFeqVgPGRRsSl4J4c0KMkD+k1y6WYvTQkzv0iZ8JhLJDujEvlnMchv4CZQLh3Q==", "integrity": "sha512-GSGfKxCo867P7EX1k2LoCrjuQFeqVgPGRRsSl4J4c0KMkD+k1y6WYvTQkzv0iZ8JhLJDujEvlnMchv4CZQLh3Q==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@codemirror/state": "^6.0.0", "@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.35.0", "@codemirror/view": "^6.35.0",
@ -724,7 +723,6 @@
"resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.8.tgz", "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.8.tgz",
"integrity": "sha512-PoWtZvo7c1XFeZWmmyaOp2G0XVbOnm+fJzvghqGAktBW3cufwJUWvSCcNG0ppXiBEM05mZu6RhMtXPv2hpllig==", "integrity": "sha512-PoWtZvo7c1XFeZWmmyaOp2G0XVbOnm+fJzvghqGAktBW3cufwJUWvSCcNG0ppXiBEM05mZu6RhMtXPv2hpllig==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@codemirror/state": "^6.0.0", "@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0", "@codemirror/view": "^6.0.0",
@ -6845,7 +6843,6 @@
"resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz", "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz",
"integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==", "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@codemirror/autocomplete": "^6.0.0", "@codemirror/autocomplete": "^6.0.0",
"@codemirror/commands": "^6.0.0", "@codemirror/commands": "^6.0.0",
@ -7112,8 +7109,7 @@
"version": "1.0.6", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz",
"integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==",
"license": "MIT", "license": "MIT"
"peer": true
}, },
"node_modules/croner": { "node_modules/croner": {
"version": "9.0.0", "version": "9.0.0",
@ -11913,6 +11909,8 @@
}, },
"node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": {
"version": "5.1.2", "version": "5.1.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
"integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"inBundle": true, "inBundle": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -12571,6 +12569,8 @@
}, },
"node_modules/npm/node_modules/cross-spawn/node_modules/which": { "node_modules/npm/node_modules/cross-spawn/node_modules/which": {
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -13192,6 +13192,8 @@
}, },
"node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": {
"version": "3.3.6", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
"integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -13214,6 +13216,8 @@
}, },
"node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": {
"version": "3.3.6", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
"integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -13236,6 +13240,8 @@
}, },
"node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": {
"version": "3.3.6", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
"integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -13261,6 +13267,8 @@
}, },
"node_modules/npm/node_modules/minizlib/node_modules/minipass": { "node_modules/npm/node_modules/minizlib/node_modules/minipass": {
"version": "3.3.6", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
"integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -13395,6 +13403,8 @@
}, },
"node_modules/npm/node_modules/nopt/node_modules/abbrev": { "node_modules/npm/node_modules/nopt/node_modules/abbrev": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
"integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"engines": { "engines": {
@ -14015,6 +14025,8 @@
}, },
"node_modules/npm/node_modules/tar/node_modules/fs-minipass": { "node_modules/npm/node_modules/tar/node_modules/fs-minipass": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
"integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -14026,6 +14038,8 @@
}, },
"node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": {
"version": "3.3.6", "version": "3.3.6",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
"integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@ -14037,6 +14051,8 @@
}, },
"node_modules/npm/node_modules/tar/node_modules/minipass": { "node_modules/npm/node_modules/tar/node_modules/minipass": {
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
"integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
"inBundle": true, "inBundle": true,
"license": "ISC", "license": "ISC",
"engines": { "engines": {
@ -14198,6 +14214,8 @@
}, },
"node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
"version": "4.3.0", "version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"inBundle": true, "inBundle": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -14232,6 +14250,8 @@
}, },
"node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": {
"version": "5.1.2", "version": "5.1.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
"integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"inBundle": true, "inBundle": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {

View File

@ -25,6 +25,7 @@
"@vueup/vue-quill": "^1.2.0", "@vueup/vue-quill": "^1.2.0",
"axios": "^1.7.7", "axios": "^1.7.7",
"bootstrap": "^5.3.3", "bootstrap": "^5.3.3",
"codemirror": "^6.0.1",
"docx": "^9.1.1", "docx": "^9.1.1",
"echarts": "^5.5.1", "echarts": "^5.5.1",
"echarts-wordcloud": "^2.1.0", "echarts-wordcloud": "^2.1.0",

View File

@ -5,7 +5,7 @@
<!-- majles dashbaord --> <!-- majles dashbaord -->
<search-section v-if="buildName() == 'majles'"></search-section> <search-section v-if="buildName() == 'majles'"></search-section>
<!-- monir dashboard --> <!-- monir dashboard -->
<default-dashboard></default-dashboard> <default-dashboard v-else></default-dashboard>
<!-- </ClientOnly> --> <!-- </ClientOnly> -->
</NuxtLayout> </NuxtLayout>
</div> </div>

View File

@ -4,23 +4,28 @@
// createApp.use(Vuelidate); // createApp.use(Vuelidate);
import { useVuelidate } from '@vuelidate/core' import { useVuelidate } from '@vuelidate/core'
import { required, minLength } from '@vuelidate/validators' // import { required, minLength } from '@vuelidate/validators'
export default defineNuxtPlugin((nuxtApp) => { // export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(() => { // nuxtApp.vueApp.use((useVuelidate) => {
// // Example of global setup, but typically you'd handle this in the component // // // Example of global setup, but typically you'd handle this in the component
// const state = reactive({ // // const state = reactive({
// firstName: '' // // firstName: ''
// // })
// // const rules = {
// // firstName: {
// // required,
// // minLength: minLength(2)
// // }
// // }
// // const v$ = useVuelidate(rules, state)
// // return v$;
// // // Return the v$ instance or any other necessary setup
// })
// }) // })
// const rules = {
// firstName: {
// required,
// minLength: minLength(2)
// }
// }
// const v$ = useVuelidate(rules, state)
// return v$;
// // Return the v$ instance or any other necessary setup
})
})
export default defineNuxtPlugin(nuxtApp => {
nuxtApp.provide('vuelidate', useVuelidate)
})

@ -1 +1 @@
Subproject commit 9a5f23287ffa2b970b17f5d1ab83cf8e6f5cc025 Subproject commit 0825fefd58df634196a1f7cf49446db73547c961

View File

@ -3192,7 +3192,7 @@ cluster-key-slot@^1.1.0:
cmd-shim@^7.0.0: cmd-shim@^7.0.0:
version "7.0.0" version "7.0.0"
codemirror@6.x: codemirror@^6.0.1, codemirror@6.x:
version "6.0.1" version "6.0.1"
resolved "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz" resolved "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz"
integrity sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg== integrity sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==