logologo
शुरू करें
मार्गदर्शिका
विकास
प्लगइन
API
होम
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
शुरू करें
मार्गदर्शिका
विकास
प्लगइन
API
होम
logologo
अवलोकन

ब्लॉक

अवलोकन

डेटा ब्लॉक

तालिका
फ़ॉर्म
विवरण
सूची
ग्रिड कार्ड
चार्ट

फ़िल्टर ब्लॉक

फ़ॉर्म

अन्य ब्लॉक

ऑपरेशन पैनल
Iframe
Markdown
JS Block

ब्लॉक सेटिंग आइटम

डेटा दायरा
डेटा लोडिंग विधि
लेआउट
ब्लॉक लिंकेज नियम
फ़ील्ड लिंकेज नियम
सॉर्टिंग नियम
ड्रैग-एंड-ड्रॉप सॉर्टिंग
ब्लॉक हटाना
ब्लॉक शीर्षक
ब्लॉक ऊंचाई
फ़ॉर्म ड्राफ़्ट

फ़ील्ड

अवलोकन

सामान्य कॉन्फ़िगरेशन आइटम

तालिका फ़ील्ड
विवरण फ़ील्ड
फ़िल्टर फ़ॉर्म फ़ील्ड
फ़ॉर्म फ़ील्ड

विशिष्ट कॉन्फ़िगरेशन आइटम

तिथि
फ़ाइल मैनेजर
सब-फ़ॉर्म
ड्रॉपडाउन सेलेक्टर
डेटा सेलेक्टर
कैस्केडिंग सेलेक्टर
सब-तालिका (इन-लाइन एडिट)
सब-तालिका (पॉप-अप एडिट)
सब-विवरण
शीर्षक
JS Field
JS Item
JS Column

फ़ील्ड कॉन्फ़िगरेशन आइटम

डिफ़ॉल्ट मान
फ़ील्ड लेबल
लेबल दिखाएँ
फ़ील्ड टूलटिप
डेटा दायरा
फ़ील्ड कंपोनेंट
संख्या फ़ॉर्मेटिंग
पैटर्न
आवश्यक
शीर्षक फ़ील्ड
सत्यापन नियम
संबंध फ़ील्ड कंपोनेंट

ऑपरेशन

अवलोकन

ऑपरेशन कॉन्फ़िगरेशन आइटम

एडिट बटन
द्वितीयक पुष्टि
फ़ील्ड असाइनमेंट
वर्कफ़्लो बाइंड करें
एडिट पॉप-अप
ऑपरेशन लिंकेज नियम

ऑपरेशन प्रकार

नया जोड़ें
देखें
हटाएँ
एडिट करें
डुप्लिकेट
इम्पोर्ट करें
इम्पोर्ट Pro
एक्सपोर्ट करें
एक्सपोर्ट Pro
अटैचमेंट एक्सपोर्ट करें
फ़िल्टर करें
लिंक
पॉप-अप खोलें
रीफ़्रेश करें
डेटा सबमिट करें
वर्कफ़्लो ट्रिगर करें
रिकॉर्ड अपडेट करें
बैच अपडेट
बैच एडिट
सब-रिकॉर्ड जोड़ें
JS Action
ऑपरेशन अनुमति

उन्नत

लिंकेज नियम
इवेंट फ्लो
वैरिएबल
RunJS
UI टेम्पलेट
Previous Pageसब-रिकॉर्ड जोड़ें
Next Pageऑपरेशन अनुमति
AI अनुवाद सूचना

यह दस्तावेज़ AI द्वारा अनुवादित है। सटीक जानकारी के लिए कृपया अंग्रेज़ी संस्करण देखें।

#JS Action

#परिचय

JS Action का उपयोग बटन क्लिक करने पर JavaScript निष्पादित करने और किसी भी व्यावसायिक व्यवहार को अनुकूलित करने के लिए किया जाता है। इसका उपयोग फ़ॉर्म टूलबार, टेबल टूलबार (संग्रह स्तर), टेबल पंक्ति (रिकॉर्ड स्तर) आदि जैसे स्थानों पर सत्यापन, संकेत, इंटरफ़ेस कॉल, पॉपअप/ड्रॉअर खोलने, डेटा रीफ़्रेश करने आदि जैसे कार्यों को करने के लिए किया जा सकता है।

jsaction-add-20251029

#रनटाइम कॉन्टेक्स्ट API (अक्सर उपयोग किए जाने वाले)

  • ctx.api.request(options): HTTP अनुरोध शुरू करें;

  • ctx.openView(viewUid, options): कॉन्फ़िगर किए गए व्यू (ड्रॉअर/डायलॉग/पेज) को खोलें;

  • ctx.message / ctx.notification: वैश्विक संकेत और सूचनाएं;

  • ctx.t() / ctx.i18n.t(): अंतर्राष्ट्रीयकरण;

  • ctx.resource: संग्रह-स्तर संदर्भ का डेटा संसाधन (जैसे टेबल टूलबार, जिसमें getSelectedRows(), refresh() आदि शामिल हैं);

  • ctx.record: रिकॉर्ड-स्तर संदर्भ का वर्तमान पंक्ति रिकॉर्ड (जैसे टेबल पंक्ति बटन);

  • ctx.form: फ़ॉर्म-स्तर संदर्भ का AntD Form इंस्टेंस (जैसे फ़ॉर्म टूलबार बटन);

  • ctx.collection: वर्तमान संग्रह की मेटा-जानकारी;

  • कोड एडिटर Snippets और Run प्री-रन का समर्थन करता है (नीचे देखें)।

  • ctx.requireAsync(url): URL द्वारा AMD/UMD लाइब्रेरी को एसिंक्रोनस रूप से लोड करें;

  • ctx.importAsync(url): URL द्वारा ESM मॉड्यूल को गतिशील रूप से इम्पोर्ट करें;

  • ctx.libs.React / ctx.libs.ReactDOM / ctx.libs.antd / ctx.libs.antdIcons / ctx.libs.dayjs / ctx.libs.lodash / ctx.libs.math / ctx.libs.formula: अंतर्निहित React / ReactDOM / Ant Design / Ant Design Icons / dayjs / lodash / math.js / formula.js आदि सामान्य लाइब्रेरी, जिनका उपयोग JSX रेंडरिंग, समय प्रसंस्करण, डेटा संचालन और गणितीय गणनाओं के लिए किया जाता है।

वास्तविक उपलब्ध वेरिएबल बटन के स्थान के आधार पर भिन्न होंगे, ऊपर सामान्य क्षमताओं का अवलोकन दिया गया है।

#एडिटर और स्निपेट्स

  • Snippets: अंतर्निहित कोड स्निपेट सूची खोलें, जिसे खोजा जा सकता है और एक क्लिक के साथ वर्तमान कर्सर स्थिति पर डाला जा सकता है।
  • Run: वर्तमान कोड को सीधे चलाएं और रनिंग लॉग को नीचे Logs पैनल में आउटपुट करें; यह console.log/info/warn/error और त्रुटि हाइलाइटिंग का समर्थन करता है।

jsaction-toolbars-20251029

  • आप AI कर्मचारी के साथ मिलकर स्क्रिप्ट बना/संशोधित कर सकते हैं: AI कर्मचारी · Nathan: फ्रंटएंड इंजीनियर

#सामान्य उपयोग (सरलीकृत उदाहरण)

#1) इंटरफ़ेस अनुरोध और संकेत

const resp = await ctx.api.request({ url: 'users:list', method: 'get', params: { pageSize: 10 } });
ctx.message.success(ctx.t('Request finished'));
console.log(ctx.t('Response data:'), resp?.data);

#2) संग्रह बटन: चयन को सत्यापित करें और संसाधित करें

const rows = ctx.resource?.getSelectedRows?.() || [];
if (!rows.length) {
  ctx.message.warning(ctx.t('Please select records'));
  return;
}
// TODO: व्यावसायिक लॉजिक निष्पादित करें…
ctx.message.success(ctx.t('Selected {n} items', { n: rows.length }));

#3) रिकॉर्ड बटन: वर्तमान पंक्ति रिकॉर्ड पढ़ें

if (!ctx.record) {
  ctx.message.error(ctx.t('No record'));
} else {
  ctx.message.success(ctx.t('Record ID: {id}', { id: ctx.record.id }))
}

#4) व्यू खोलें (ड्रॉअर/डायलॉग)

const popupUid = ctx.model.uid + '-open'; // स्थिरता के लिए वर्तमान बटन से बाइंड करें
await ctx.openView(popupUid, { mode: 'drawer', title: ctx.t('Details'), size: 'large' });

#5) सबमिशन के बाद डेटा रीफ़्रेश करें

// सामान्य रीफ़्रेश: टेबल/सूची संसाधनों को प्राथमिकता दें, उसके बाद फ़ॉर्म वाले ब्लॉक के संसाधन को
if (ctx.resource?.refresh) await ctx.resource.refresh();
else if (ctx.blockModel?.resource?.refresh) await ctx.blockModel.resource.refresh();

#ध्यान देने योग्य बातें

  • क्रियाओं की स्थिरता (Idempotency): बार-बार क्लिक करने से होने वाले कई सबमिशन से बचें, आप लॉजिक में स्थिति स्विच जोड़ सकते हैं या बटन को अक्षम कर सकते हैं।
  • त्रुटि प्रबंधन: इंटरफ़ेस कॉल के लिए try/catch जोड़ें और उपयोगकर्ता को संकेत दें।
  • व्यू लिंकेज: ctx.openView के माध्यम से पॉपअप/ड्रॉअर खोलते समय, स्पष्ट रूप से पैरामीटर पास करने का सुझाव दिया जाता है, और यदि आवश्यक हो, तो सफल सबमिशन के बाद पैरेंट संसाधन को सक्रिय रूप से रीफ़्रेश करें।

#संबंधित दस्तावेज़

  • वैरिएबल और कॉन्टेक्स्ट
  • लिंकेज नियम
  • व्यू और पॉप-अप