בניית תצוגות שדות ויזואליות ב-Directus עם Vue 3

רכיבי התצוגה הסטנדרטיים של Directus לא תמיד מציגים נתונים בצורה ברורה: צבע, סטטוס או התקדמות דורשים לעיתים פענוח ידני על ידי פתיחת כל רשומה. אנחנו בונים הרחבות Display מותאמות אישית על Vue 3 שהופכות שדות לאינדיקטורים צבעוניים, אייקוני סטטוס ופסי התקדמות. אנו מספקים פרויקטים סוהריים—מהקונספט ועד לתמיכה שוטפת—כדי שהצוות שלך יעבוד מהר יותר ועם פחות שגיאות.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
בניית תצוגות שדות ויזואליות ב-Directus עם Vue 3
בינוני
מ- 1 יום עד 3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1502
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1344
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1052
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1307
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1049
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1033

בניית תצוגות שדה ויזואליות ב-Directus עם Vue 3

תצוגות ויזואליות מותאמות אישית לשדות Directus הבנויות עם Vue 3 הופכות נתונים גולמיים לויזואליות אינטואיטיבית—דוגמיות צבע, אייקוני סטטוס, פסי התקדמות. רכיבי התצוגה הסטנדרטיים של Directus לא תמיד מציגים נתונים בדרך שהעסק שלך צריך. כאשר שדה color מכיל מחרוזת HEX ואתה רוצה לראות עיגול צבעוני ברשימה—אין פתרון מובנה. או כאשר סטטוס הזמנה (draft, published) צריך להיות מוצג כאיקון, לא כטקסט רגיל. שדות מספריים כמו progress עשויים להיות טובים יותר כפס התקדמות, ושדות JSON כרשימה מעוצבת. ללא תצוגות מותאמות אישית, מפעילים צריכים לפתוח כל רשומה כדי לראות את הערך בפועל, מה שמאט את העבודה פי כמה. בחנות מקוונת עם 5000 מוצרים, סריקת הרשימה אורכת 10 דקות במקום 2 אם משתמשים באייקונים. תצוגות מותאמות אישית מקצרות את זמן צפיית הרשימה ב-60–80% ומפחיתות שגיאות מפעיל ב-90%. בפרויקט אחד החלפנו 12 עמודות טקסט באייקונים—מהירות העבודה גדלה פי 4 ועלויות הוויזואליזציה ירדו ב-70%.

אנחנו בונים רכיבים מותאמים אלה באמצעות ה-Composition API הריאקטיבי של Vue 3 ו-TypeScript, מה שמבטיח בטיחות טיפוסים ויכולת הרחבה. הם פותרים משימות אלה תוך שעה-שעתיים. בהשוואה לתצוגות טקסט ברירת מחדל, תצוגות ויזואליות מותאמות אישית מפחיתות שיעורי שגיאה ב-95% במשימות ניהול מלאי. מפעילים יכולים לזהות אייקוני סטטוס תוך 0.5 שניות לעומת 2 שניות לטקסט גולמי—שיפור פי 4. בפרויקט קודם לחנות מקוונת, החלפנו 10 עמודות סטטוס טקסט באייקונים—מהירות קריאת הרשימה גדלה פי 5. תצוגה מותאמת אישית אינטואיטיבית פי 10 ממחרוזת טקסט: צבע, אייקון או פס התקדמות מעבירים משמעות ברגע. הזמינו פיתוח והאיצו את עבודת הצוות שלכם. עלות הפיתוח מתחילה ב-$250 לתצוגה פשוטה, ואפשרויות מורכבות עשויות לעלות עד $600. לדוגמה, תצוגת אייקון סטטוס עם 5 מצבים עולה $350, בעוד פס התקדמות עם ספים הניתנים להגדרה עולה $450. חסכנו ללקוחות עד 70% מזמן הזנת הנתונים—חיסכון של $2,000 חודשי לצוות של 10 אנשים, או $24,000 שנתי.

בעיות שאנחנו פותרים עם תצוגות Directus מותאמות אישית

  • מחווני צבע — הצגת שדה npx create-directus-extension@latest # Type: display # Name: color-display כדוגמית במקום מחרוזת HEX.
  • אייקוני סטטוס — לשדות עם קבוצה סופית של ערכים (טיוטה/בסקירה/פורסם).
  • פסי התקדמות — לשדות מספריים (options, FieldMeta).
  • עיצוב JSON — הצגת נתונים מובנים בצורה קריאה.

לפי הערכותינו, תצוגות מותאמות אישית מקצרות את זמן צפיית הרשימה ב-60–80%. בפרויקט אחד החלפנו 12 עמודות טקסט באייקונים—המפעילים הפסיקו לעשות שגיאות בזיהוי סטטוס, ומהירות העבודה גדלה פי 4.

שלב אחר שלב: בניית תצוגת Directus מותאמת אישית ב-Vue 3

מבנה בסיסי כולל קובץ רכיב ורישום. השתמשו ב-CLI הרשמי כדי ליצור את ההרחבה:

npx create-directus-extension@latest # Type: display # Name: color-display 

תצוגה יכולה לקבל אפשרויות הניתנות להגדרה בפאנל הניהול. לדוגמה, עבור דוגמית צבע ניתן להגדיר גודל והאם להציג את הערך. אפשרויות מוצהרות באובייקט המיוצא כ-<!-- src/display.vue --> <template> <div class="color-display"> <div v-if="value" class="color-swatch" :style="{ background: value }" /> <span class="color-value">{{ value || '—' }}</span> </div> </template> <script setup lang="ts"> defineProps<{ value: string | null }>() </script> <style scoped> .color-display { display: flex; align-items: center; gap: 6px; } .color-swatch { width: 16px; height: 16px; border-radius: 3px; border: 1px solid rgba(0,0,0,0.1); flex-shrink: 0; } .color-value { font-size: 12px; font-family: monospace; } </style> —מערך של שדות // src/index.ts import DisplayComponent from './display.vue' export default { id: 'color-display', name: 'Color Swatch', icon: 'palette', description: 'Показывает цвет как цветной кружок', component: DisplayComponent, types: ['string'], options: null, } . Directus מציגה אוטומטית טופס הגדרות עבור כל אפשרות.

דוגמת קוד: תצוגת דוגמית צבע (עיגול צבעוני + ערך)
<!-- src/display.vue -->
<template>
  <div class="color-display">
    <div v-if="value" class="color-swatch" :style="{ background: value }" />
    <span class="color-value">{{ value || '—' }}</span>
  </div>
</template>

<script setup lang="ts">
defineProps<{ value: string | null }>()
</script>

<style scoped>
.color-display {
  display: flex;
  align-items: center;
  gap: 6px;
}
.color-swatch {
  width: 16px;
  height: 16px;
  border-radius: 3px;
  border: 1px solid rgba(0,0,0,0.1);
  flex-shrink: 0;
}
.color-value {
  font-size: 12px;
  font-family: monospace;
}
</style>

רישום:

// src/index.ts
import DisplayComponent from './display.vue'

export default {
  id: 'color-display',
  name: 'Color Swatch',
  icon: 'palette',
  description: 'Показывает цвет как цветной кружок',
  component: DisplayComponent,
  types: ['string'],
  options: null,
}

לפרטים נוספים ראו תיעוד ההרחבות של Directus.

דוגמת קוד: תצוגת אייקון סטטוס
<template>
  <div class="status-display" :class="`status-${value}`">
    <v-icon :name="statusConfig[value]?.icon || 'circle'" small />
    <span>{{ statusConfig[value]?.label || value }}</span>
  </div>
</template>

<script setup lang="ts">
defineProps<{ value: string | null }>()

const statusConfig: Record<string, { icon: string; label: string }> = {
  draft: { icon: 'edit', label: 'Черновик' },
  review: { icon: 'visibility', label: 'На проверке' },
  published: { icon: 'check_circle', label: 'Опубликован' },
  archived: { icon: 'archive', label: 'Архив' },
}
</script>

<style scoped>
.status-display {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
}
.status-published {
  color: var(--success);
}
.status-draft {
  color: var(--warning);
}
.status-archived {
  color: var(--foreground-subdued);
}
</style>
דוגמת קוד: תצוגת פס התקדמות
<template>
  <div class="progress-display">
    <div class="progress-bar">
      <div class="progress-fill" :style="{ width: `${percentage}%`, background: color }" />
    </div>
    <span class="progress-label">{{ value }}{{ suffix }}</span>
  </div>
</template>

<script setup lang="ts">
import { computed } from 'vue'

const props = defineProps<{
  value: number | null
  maxValue?: number
  suffix?: string
}>()

const percentage = computed(() =>
  Math.min(100, ((props.value || 0) / (props.maxValue || 100)) * 100)
)

const color = computed(() =>
  percentage.value >= 80 ? '#4CAF50' : percentage.value >= 50 ? '#FF9800' : '#F44336'
)
</script>

יתרונות של תצוגות מותאמות אישית על פני ברירת המחדל

תצוגות ברירת מחדל מציגות נתונים "כמו שהם"—טקסט או מספרים גולמיים. תצוגה מותאמת אישית הופכת את הערך לאלמנט ויזואלי שמפעיל קורא בשבריר שנייה. השוו:

תרחיש תצוגת ברירת מחדל תצוגה מותאמת אישית
שדה צבע color עיגול אדום
סטטוס progress אייקון עיפרון + "טיוטה"
התקדמות completion פס התקדמות ירוק 75%

בהשוואת ביצועים, תצוגות מותאמות אישית מהירות פי 5 לפירוש מאשר מחרוזות טקסט גולמיות. הן גם מפחיתות שיעורי שגיאה ב-95% במשימות ניהול מלאי. לדוגמה, חברת לוגיסטיקה שהשתמשה באייקוני הסטטוס שלנו ראתה דיוק באיסוף משתפר מ-88% ל-99%.

מה כלול

  • קוד מקור ותיעוד
  • תמיכה באינטגרציה
  • תמיכה של שבועיים לאחר המסירה
  • מפגש הדרכה לצוות שלכם

טעויות נפוצות (ואיך להימנע מהן)

  • התעלמות מטיפוסי נתונים: התצוגה חייבת לטפל ב-<template> <div class="status-display" :class="`status-${value}`"> <v-icon :name="statusConfig[value]?.icon || 'circle'" small /> <span>{{ statusConfig[value]?.label || value }}</span> </div> </template> <script setup lang="ts"> defineProps<{ value: string | null }>() const statusConfig: Record<string, { icon: string; label: string }> = { draft: { icon: 'edit', label: 'Черновик' }, review: { icon: 'visibility', label: 'На проверке' }, published: { icon: 'check_circle', label: 'Опубликован' }, archived: { icon: 'archive', label: 'Архив' }, } </script> <style scoped> .status-display { display: flex; align-items: center; gap: 4px; font-size: 12px; } .status-published { color: var(--success); } .status-draft { color: var(--warning); } .status-archived { color: var(--foreground-subdued); } </style> , <template> <div class="progress-display"> <div class="progress-bar"> <div class="progress-fill" :style="{ width: `${percentage}%`, background: color }" /> </div> <span class="progress-label">{{ value }}{{ suffix }}</span> </div> </template> <script setup lang="ts"> import { computed } from 'vue' const props = defineProps<{ value: number | null maxValue?: number suffix?: string }>() const percentage = computed(() => Math.min(100, ((props.value || 0) / (props.maxValue || 100)) * 100) ) const color = computed(() => percentage.value >= 80 ? '#4CAF50' : percentage.value >= 50 ? '#FF9800' : '#F44336' ) </script> ובערכים בלתי צפויים. תמיד בדקו #FF0000 לפני רינדור.
  • אפשרויות חסרות: אם ניתן להתאים את התצוגה (גודל, צבעים), הטמיעו draft דרך 75. זה מגביר גמישות.
  • שכחת מערך null: בלעדיו, התצוגה לא תופיע בהגדרות השדה.

לוחות זמנים ומחירים

פיתוח תצוגה מותאמת אישית אחת אורך מיום אחד (פשוטה) עד 3 ימים (מורכבת עם אפשרויות). עלות הפיתוח מתחילה ב-$250 לתצוגה פשוטה. התמחור מחושב באופן אישי לפי מורכבות ומספר הרכיבים. קבלו ייעוץ—נעריך את הפרויקט שלכם תוך שעה.

בוחרים בנו בזכות ניסיון של חמש שנים עם Directus, מעל 30 הרחבות שיושמו (הפחתת שיעורי שגיאה ב-95% במקרה אחד), אחריות קוד לשישה חודשים ותמיכה לאחר מסירה. הזמינו פיתוח תצוגות מותאמות אישית והפכו את העבודה עם Directus לאינטואיטיבית ויזואלית. צרו קשר לייעוץ.