���Root Mod By V1rus_Alfa
User / IP
:
216.73.217.78
Host / Server
:
195.214.235.115 / npln.ir
System
:
Linux damavand.pws-dns.net 5.14.0-503.35.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Apr 4 05:23:43 EDT 2025 x86_64
Command
|
Upload
|
Mass Deface
|
Create
:
/
home2
/
cutunixc
/
.trash
/
pages.1
/
projects
/
Viewing: [id].vue
<template> <div class="text-center" v-if="loading"> <SharedLoading /> </div> <div class=" mt-1 mb-10 px-2" v-else> <section :dir="locale == 'en' ? 'ltr' : 'rtl'"> <h2 class=" inline-block mb-5 text-gray-800 border-b border-main-700 text-center bold p-2"> {{ t('project_information') }} </h2> <div class=" w-full flex-wrap flex justify-between items-start"> <div class=" w-full mb-5 flex justify-start items-start"> <span :class="locale == 'en' ? ' text-left' : ' text-right'" class="block pl-2 text-gray-800 bg-white"> {{ t('project_name') }} : </span> <span :class="locale == 'en' ? ' text-left' : ' text-right'" class="block text-gray-500 bg-white"> {{ project.name }} </span> </div> <div class=" w-full mb-5 flex justify-start items-start"> <span :class="locale == 'en' ? ' text-left' : ' text-right'" class="block pl-2 text-gray-800 bg-white"> {{ t('employer_name') }} : </span> <span :class="locale == 'const project = ref({' + 'id: null,en' ? ' text-left' : ' text-right'" class="block text-gray-500 bg-white"> {{ project.name_employer }} </span> </div> </div> </section> <section :dir="locale == 'en' ? 'ltr' : 'rtl'" v-if="0 < project.groups.length"> <h2 class=" inline-block mb-3 text-gray-800 border-b border-main-700 text-center bold p-2"> {{ t('exports') }} </h2> <ul> <li class="w-full border-b-2" v-for="(row, gpIdx) in project.groups" :key="gpIdx"> <div @click="toggleCollapse(row.id)" class="cursor-pointer flex justify-between items-center"> <div class="py-1 mt-1 px-2 cursor-pointer w-full flex justify-between items-center"> <label class=" block mr-2 pb-2 w-full text-main-700 cursor-pointer"> {{ row.wood_type }} </label> <div class="flex justify-end items-center pb-2"> <UIcon :id="'header_collapse_'+row.id" name="i-heroicons-chevron-down-20-solid" class="text-gray-500 transition-all text-2xl"/> </div> </div> </div> <div :id="'body_collapse_'+row.id" class=" border-t transition-all"> <div class="w-full border-b py-3 flex justify-start items-center"> <template v-if="row.order_form"> <ULink :to="'https://app.cutunix.com/'+row.order_form" target="_blank" square :class="locale == 'en' ? 'mr-1' : ' ml-1'" class=" flex text-white rounded hover:bg-main-600 bg-main-700 items-center justify-center"> <span class=" block py-1 px-2 truncate "> {{ t('View order form') }} </span> </ULink> </template> <template v-if="row.opticut == 'size_part' || row.opticut == 'size_panel'"> <span :class="locale == 'en' ? 'mr-1' : ' ml-1'" class=" flex py-1 px-2 truncate text-white rounded hover:bg-red-600 bg-red-700 items-center justify-center"> {{ t('order size') }} </span> </template> <template v-else-if="row.opticut == 'not_run' "> <span :class="locale == 'en' ? 'mr-1' : ' ml-1'" class=" flex py-1 px-2 truncate text-white rounded hover:bg-red-600 bg-red-700 items-center justify-center"> {{ t('Allowed to exit') }} </span> </template> <template v-else-if="row.opticut == 'pending' || row.opticut == 'do' "> <span :class="locale == 'en' ? 'mr-1' : ' ml-1'" class=" flex py-1 px-2 truncate text-white rounded hover:bg-red-600 bg-red-700 items-center justify-center"> {{ row.opti_percent }}% {{ t('preparing') }} </span> </template> <template v-else-if="row.opticut == 'done'"> <ULink :to="'https://shemshetaraz.com/cutunix/'+row.cut_master_pdf" target="_blank" square :class="locale == 'en' ? 'mr-1' : ' ml-1'" class=" flex rounded bg-[#f6f7eb] text-gray-900 items-center justify-center"> <span class=" block py-1 px-2 truncate "> {{ t('View cutting map') }} </span> </ULink> <ULink :to="'https://shemshetaraz.com/cutunix/'+row.opticut_file" target="_blank" square class="flex text-white rounded hover:bg-main-600 bg-main-700 items-center justify-center"> <span class="block py-1 px-2 truncate"> {{ t('Download Opticut output') }} </span> </ULink> </template> </div> </div> </li> </ul> </section> <UnitDetailsFooter :project_id="project.id"/> </div> </template> <script setup lang="ts"> const {t, locale} = useI18n() const {id} = useRoute().params const loading = ref(true); const project = ref({ id: null, name_employer: null, name: null, groups: [ { id: null, order_form: null, wood_type: null, opticut: null, opticut_file: null, opti_percent: null, cut_master_pdf: null, } ], }) async function getProject() { loading.value = true; const {data} = await useAPI('/analyze/project/single', { immediate: true, server: true, query: { project_id: id }, method: 'POST' }); project.value = data.value?.project; console.log('project', project.value); loading.value = false; } await getProject(); const toggleCollapse = (id: any) => { document.querySelector('#body_collapse_' + id)!.classList.toggle('hidden'); document.querySelector('#header_collapse_' + id)!.classList.toggle('rotate-90'); } definePageMeta({ title: 'Project Details', layout: 'with-out-footer', middleware: ['auth'], }) useHead({ title: t('Project Details') }) onMounted(() => { loading.value = false; }) </script>
Coded With 💗 by
0x6ick Mod By V1rus_Alfa