Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 

1 zeile
14 KiB

  1. {"ast":null,"code":"import Layout from \"@/layout/custom.vue\";\nimport moment from \"jalali-moment\";\nimport axios from \"../../../components\";\nimport { onMounted, ref } from \"vue\";\nexport default {\n name: \"Dashboard\",\n components: {\n Layout\n },\n setup() {\n const token = localStorage.getItem(\"token\");\n const url = process.env.VUE_APP_ROOT_URL;\n const meets = ref();\n const privateMeets = ref();\n const getMeet = () => {\n axios.get(`${url}/today-meetings`, {\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token} `\n }\n }).then(resp => {\n console.log(resp.data.meetings);\n meets.value = resp.data.meetings;\n privateMeets.value = resp.data.private_meetings;\n });\n };\n const convertToJalali = date => {\n return moment(date, \"YYYY-MM-DD HH:mm:ss\").locale(\"fa\").format(\"YYYY/MM/DD\");\n };\n onMounted(() => {\n getMeet();\n });\n return {\n meets,\n convertToJalali,\n privateMeets\n };\n }\n};","map":{"version":3,"names":["Layout","moment","axios","onMounted","ref","name","components","setup","token","localStorage","getItem","url","process","env","VUE_APP_ROOT_URL","meets","privateMeets","getMeet","get","headers","Authorization","then","resp","console","log","data","meetings","value","private_meetings","convertToJalali","date","locale","format"],"sources":["C:\\Users\\hp\\Desktop\\satari\\Vue\\Admin\\src\\views\\live-preview\\pages\\dashpage\\dashPage.vue"],"sourcesContent":["<template>\r\n <Layout>\r\n <BRow>\r\n <BCol md=\"12\" class=\"d-flex flex-column\" style=\"margin-top: 20px\">\r\n <BCard\r\n class=\"flex-fill mb-3 shadow-sm\"\r\n style=\"border-radius: 12px; padding: 20px; position: relative\"\r\n >\r\n <BCardBody>\r\n <div class=\"text-center mb-4\">\r\n <i\r\n class=\"ph-duotone ph-calendar\"\r\n style=\"font-size: 48px; color: #007bff\"\r\n ></i>\r\n <h4 class=\"fw-bold mt-2\" style=\"color: #4a4a4a\">جلسات امروز</h4>\r\n </div>\r\n\r\n <hr\r\n class=\"my-3\"\r\n style=\"border-top: 2px solid #e9ecef; width: 80%; margin: 0 auto\"\r\n />\r\n\r\n <ul class=\"list-unstyled\">\r\n <li\r\n v-for=\"meet in meets\"\r\n :key=\"meet.id\"\r\n class=\"meeting-item mb-4 p-3 hover-effect\"\r\n style=\"\r\n border-radius: 8px;\r\n background-color: #f8f9fa;\r\n position: relative;\r\n \"\r\n >\r\n <div\r\n class=\"d-flex align-items-center justify-content-between mb-2\"\r\n >\r\n <div class=\"text-start\">\r\n <i\r\n class=\"ph-duotone ph-file-text\"\r\n style=\"font-size: 1.5rem; color: #6c757d\"\r\n ></i>\r\n <strong class=\"text-dark ms-2\" style=\"font-size: 1.2rem\">{{\r\n meet?.subject?.subject || \"بدون عنوان\"\r\n }}</strong>\r\n </div>\r\n <small class=\"text-muted\"\r\n >تاریخ ایجاد :\r\n {{ convertToJalali(meet?.created_at) }}</small\r\n >\r\n </div>\r\n\r\n <div\r\n class=\"text-start text-muted mb-2\"\r\n style=\"font-size: 0.9rem\"\r\n >\r\n <i\r\n class=\"ph-duotone ph-clock\"\r\n style=\"font-size: 1.2rem; color: #28a745\"\r\n ></i>\r\n <span class=\"ms-2\"\r\n >از {{ meet?.az_hour }} تا {{ meet?.ta_hour }}</span\r\n >\r\n </div>\r\n\r\n <div class=\"text-start text-muted\" style=\"font-size: 0.9rem\">\r\n <small\r\n >📅 تاریخ: {{ convertToJalali(meet?.date_meeting) }}</small\r\n ><br />\r\n <small\r\n >📍 مکان:\r\n {{ meet?.location?.address || \"مکان نامشخص\" }}</small\r\n >\r\n </div>\r\n\r\n <div class=\"mt-2\">\r\n <span\r\n :class=\"{\r\n 'badge bg-success': meet.status === 1,\r\n 'badge bg-primary': meet.status === 2,\r\n 'badge bg-danger': meet.status === 3,\r\n 'badge bg-warning': meet.status === 4,\r\n }\"\r\n style=\"padding: 6px 12px; border-radius: 5px\"\r\n >\r\n <template v-if=\"meet.status === 1\">برگزار شده</template>\r\n <template v-else-if=\"meet.status === 2\"\r\n >برنامه‌ریزی شده</template\r\n >\r\n <template v-else-if=\"meet.status === 3\">لغو شده</template>\r\n <template v-else-if=\"meet.status === 4\"\r\n >منتظر برگزاری</template\r\n >\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n\r\n <ul class=\"list-unstyled\">\r\n <li\r\n v-for=\"meet in privateMeets\"\r\n :key=\"meet.id\"\r\n class=\"meeting-item mb-4 p-3 hover-effect\"\r\n style=\"\r\n position: relative;\r\n border-radius: 8px;\r\n background-color: #f8f9fa;\r\n \"\r\n >\r\n <div\r\n class=\"d-flex align-items-center justify-content-between mb-2\"\r\n >\r\n <div class=\"text-start\">\r\n <i\r\n class=\"ph-duotone ph-file-text\"\r\n style=\"font-size: 1.5rem; color: #6c757d\"\r\n ></i>\r\n <strong class=\"text-dark ms-2\" style=\"font-size: 1.2rem\">\r\n {{ meet?.subject?.subject || \"بدون عنوان\" }}\r\n </strong>\r\n </div>\r\n <small class=\"text-muted\"\r\n >تاریخ ایجاد :\r\n {{ convertToJalali(meet?.created_at) }}</small\r\n >\r\n </div>\r\n\r\n <div\r\n class=\"text-start text-muted mb-2\"\r\n style=\"font-size: 0.9rem\"\r\n >\r\n <i\r\n class=\"ph-duotone ph-clock\"\r\n style=\"font-size: 1.2rem; color: #28a745\"\r\n ></i>\r\n <span class=\"ms-2\"\r\n >از {{ meet?.az_hour }} تا {{ meet?.ta_hour }}</span\r\n >\r\n </div>\r\n\r\n <div class=\"text-start text-muted\" style=\"font-size: 0.9rem\">\r\n <small\r\n >📅 تاریخ: {{ convertToJalali(meet?.date_meeting) }}</small\r\n ><br />\r\n <small\r\n >📍 مکان:\r\n {{ meet?.location?.address || \"مکان نامشخص\" }}</small\r\n ><br />\r\n <i\r\n class=\"ph-duotone ph-user\"\r\n style=\"font-size: 1rem; color: #6c757d\"\r\n ></i>\r\n <small> ملاقات با: {{ meet?.visit_name || \"نامشخص\" }}</small\r\n ><br />\r\n <small>🏢 شرکت: {{ meet?.visit_company || \"نامشخص\" }}</small>\r\n <!-- Added company name here -->\r\n </div>\r\n\r\n <div class=\"mt-2\">\r\n <span\r\n :class=\"{\r\n 'badge bg-success': meet.status === 1,\r\n 'badge bg-primary': meet.status === 2,\r\n 'badge bg-danger': meet.status === 3,\r\n 'badge bg-warning': meet.status === 4,\r\n }\"\r\n style=\"padding: 6px 12px; border-radius: 5px\"\r\n >\r\n <template v-if=\"meet.status === 1\">برگزار شده</template>\r\n <template v-else-if=\"meet.status === 2\"\r\n >برنامه‌ریزی شده</template\r\n >\r\n <template v-else-if=\"meet.status === 3\">لغو شده</template>\r\n <template v-else-if=\"meet.status === 4\"\r\n >منتظر برگزاری</template\r\n >\r\n </span>\r\n </div>\r\n\r\n <!-- Curtain Hover Effect -->\r\n <div class=\"curtain-hover\">\r\n <span class=\"curtain-text\">ملاقات</span>\r\n </div>\r\n </li>\r\n </ul>\r\n\r\n <div\r\n style=\"\r\n position: absolute;\r\n bottom: 10px;\r\n right: 10px;\r\n opacity: 0.1;\r\n \"\r\n >\r\n <i\r\n class=\"ph-duotone ph-calendar-blank\"\r\n style=\"font-size: 64px; color: #4a4a4a\"\r\n ></i>\r\n </div>\r\n </BCardBody>\r\n </BCard>\r\n </BCol>\r\n </BRow>\r\n </Layout>\r\n</template>\r\n\r\n<script>\r\nimport Layout from \"@/layout/custom.vue\";\r\nimport moment from \"jalali-moment\";\r\nimport axios from \"../../../components\";\r\nimport { onMounted, ref } from \"vue\";\r\n\r\nexport default {\r\n name: \"Dashboard\",\r\n components: {\r\n Layout,\r\n },\r\n setup() {\r\n const token = localStorage.getItem(\"token\");\r\n const url = process.env.VUE_APP_ROOT_URL;\r\n const meets = ref();\r\n const privateMeets = ref();\r\n const getMeet = () => {\r\n axios\r\n .get(`${url}/today-meetings`, {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token} `,\r\n },\r\n })\r\n .then((resp) => {\r\n console.log(resp.data.meetings);\r\n meets.value = resp.data.meetings;\r\n privateMeets.value = resp.data.private_meetings;\r\n });\r\n };\r\n\r\n const convertToJalali = (date) => {\r\n return moment(date, \"YYYY-MM-DD HH:mm:ss\")\r\n .locale(\"fa\")\r\n .format(\"YYYY/MM/DD\");\r\n };\r\n\r\n onMounted(() => {\r\n getMeet();\r\n });\r\n return {\r\n meets,\r\n convertToJalali,\r\n privateMeets,\r\n };\r\n },\r\n};\r\n</script>\r\n\r\n<style scoped>\r\n.hover-effect {\r\n transition: background-color 0.3s, box-shadow 0.3s;\r\n}\r\n.hover-effect:hover {\r\n background-color: #e2e6ea;\r\n box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);\r\n}\r\n/* Base styles for the meeting item */\r\n.meeting-item {\r\n position: relative;\r\n overflow: hidden;\r\n border-radius: 8px;\r\n background-color: #f8f9fa;\r\n transition: all 0.3s ease;\r\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n/* Curtain hover effect */\r\n.curtain-hover {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: linear-gradient(\r\n 135deg,\r\n rgba(0, 0, 0, 0.6),\r\n rgba(180, 180, 180, 0.4)\r\n );\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n opacity: 0;\r\n visibility: hidden;\r\n transition: opacity 0.4s ease, visibility 0.4s ease, transform 0.3s ease;\r\n transform: scale(1.05); /* Slight zoom-in effect */\r\n border-radius: 8px;\r\n cursor: pointer;\r\n}\r\n\r\n/* Text styling for the curtain effect */\r\n.curtain-text {\r\n color: #f0f0f0; /* Soft light gray text */\r\n font-size: 2rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 2px;\r\n text-shadow: 0 0 5px rgba(255, 255, 255, 0.5); /* Subtle glow effect */\r\n opacity: 0;\r\n transform: translateY(30px); /* Initial position for the text */\r\n transition: opacity 0.4s ease, transform 0.3s ease;\r\n}\r\n\r\n/* Hover effect: reveal the curtain and animate the text */\r\n.meeting-item:hover .curtain-hover {\r\n opacity: 1;\r\n visibility: visible;\r\n transform: scale(1); /* Remove the zoom effect */\r\n}\r\n\r\n.meeting-item:hover .curtain-text {\r\n opacity: 1;\r\n transform: translateY(0); /* Move the text into place */\r\n}\r\n\r\n/* Additional effect for a subtle \"lift\" when hovered */\r\n.meeting-item:hover {\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1), 0 4px 10px rgba(0, 0, 0, 0.05);\r\n transform: translateY(-5px); /* Lift effect */\r\n}\r\n</style>\r\n"],"mappings":"AA8MA,OAAOA,MAAK,MAAO,qBAAqB;AACxC,OAAOC,MAAK,MAAO,eAAe;AAClC,OAAOC,KAAI,MAAO,qBAAqB;AACvC,SAASC,SAAS,EAAEC,GAAE,QAAS,KAAK;AAEpC,eAAe;EACbC,IAAI,EAAE,WAAW;EACjBC,UAAU,EAAE;IACVN;EACF,CAAC;EACDO,KAAKA,CAAA,EAAG;IACN,MAAMC,KAAI,GAAIC,YAAY,CAACC,OAAO,CAAC,OAAO,CAAC;IAC3C,MAAMC,GAAE,GAAIC,OAAO,CAACC,GAAG,CAACC,gBAAgB;IACxC,MAAMC,KAAI,GAAIX,GAAG,CAAC,CAAC;IACnB,MAAMY,YAAW,GAAIZ,GAAG,CAAC,CAAC;IAC1B,MAAMa,OAAM,GAAIA,CAAA,KAAM;MACpBf,KAAI,CACDgB,GAAG,CAAC,GAAGP,GAAG,iBAAiB,EAAE;QAC5BQ,OAAO,EAAE;UACP,cAAc,EAAE,kBAAkB;UAClCC,aAAa,EAAE,UAAUZ,KAAK;QAChC;MACF,CAAC,EACAa,IAAI,CAAEC,IAAI,IAAK;QACdC,OAAO,CAACC,GAAG,CAACF,IAAI,CAACG,IAAI,CAACC,QAAQ,CAAC;QAC/BX,KAAK,CAACY,KAAI,GAAIL,IAAI,CAACG,IAAI,CAACC,QAAQ;QAChCV,YAAY,CAACW,KAAI,GAAIL,IAAI,CAACG,IAAI,CAACG,gBAAgB;MACjD,CAAC,CAAC;IACN,CAAC;IAED,MAAMC,eAAc,GAAKC,IAAI,IAAK;MAChC,OAAO7B,MAAM,CAAC6B,IAAI,EAAE,qBAAqB,EACtCC,MAAM,CAAC,IAAI,EACXC,MAAM,CAAC,YAAY,CAAC;IACzB,CAAC;IAED7B,SAAS,CAAC,MAAM;MACdc,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACF,OAAO;MACLF,KAAK;MACLc,eAAe;MACfb;IACF,CAAC;EACH;AACF,CAAC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}