1. 首先需要在視圖標簽中增加 opcode 屬性,屬性值是一個有效的后端操作碼,比如后端開發人員已經定義好了一個查詢庫存的表單操作,操作碼為“querystock”,那么前端視圖可以這樣來寫:
`<button opcode="querystock">查詢庫存</button>`
到此為止,當鼠標點擊以上按鈕時,系統就能自動向服務器發起一個請求了。
。。。。。。
那么問題來了
(1) 怎么向服務器傳遞參數呢?比如:查詢某個商品的庫存量,需要傳遞一個商品Id。
(2) 怎么接收服務器返回給我數據呢?比如:我要拿到服務器返回的庫存量后渲染在另外一個html標簽上面。
2. 設置請求參數 和 獲取響應數據,在前端 js 插件中提供了兩個事件
(1) 表單按鈕操作前事件 onBeforeDoOperation ,可以在此事件中設置請求參數,事件定義如下:

(2) 表單按鈕操作后事件 onAfterDoOperation ,可以在此事件中獲取響應數據,事件定義如下:

那怎么來使用呢?
只需要在我們的前端 js 插件中重寫這兩個事件,然后在事件中處理即可,如下圖所示:

完整的前端 js 插件代碼如下:
~~~
///<reference path="/fw/js/consts.js" />
/*
@ sourceURL=/fw/js/ydj/bas/bas_product.js
*/
; (function () {
var bas_product = (function (_super) {
var _child = function (args) {
var that = this;
_super.call(this, args);
};
__extends(_child, _super);
//表單按鈕操作前事件
_child.prototype.onBeforeDoOperation = function (e) {
if (!e || !e.opcode) return;
var that = this;
switch (e.opcode) {
//對特定的操作設置請求參數
case 'querystock':
//設置商品Id
e.result = { productId: '商品Id' };
break;
}
};
//表單按鈕操作后事件
_child.prototype.onAfterDoOperation = function (e) {
if (!e || !e.opcode) return;
var that = this;
var isSuccess = e.result.operationResult.isSuccess; //成功標志位
var srvData = e.result.operationResult.srvData; //srvData 數據結構以后端返回為準,此處假定后端返回的是商品庫存量
switch (e.opcode) {
//獲取特定操作的響應數據
case 'querystock':
if (isSuccess) {
//比如將后端返回的庫存量用一個對話框來顯示:螺絲刀的庫存量為:666
yiDialog.a('螺絲刀的庫存量為:{1}'.format(srvData));
}
break;
}
};
return _child;
})(BasePlugIn);
window.bas_product = window.bas_product || bas_product;
})();
~~~
- 業務開發詳解系列
- 基礎名稱概念解釋
- 開發調試環境搭建
- 基礎資料開發詳解
- 單據開發詳解
- 動態表單開發詳解
- 業務報表開發詳解
- 單據轉換流程開發詳解
- 套打功能設計詳解
- K3Cloud系統集成配置詳解
- 系統集成開發詳解系列
- 基礎介紹
- 接口設計原則
- 接口訪問授權
- 數據字典介紹
- 接口調用示例
- 業務應用開發Q&A
- 項目整體介紹
- 如何鎖定或解鎖某個字段?
- 如何鎖定或解鎖某個菜單按鈕?
- 如何顯示或隱藏某個字段?
- 如何顯示或隱藏某個菜單按鈕?
- 如何實現(金額=單價*數量)這樣表達式計算?
- 如何使一個視圖元素(按鈕,標簽等)具備發起一個服務請求?
- 如何向操作中傳遞固定參數?
- 如何向操作中傳遞可變或動態參數?
- 如何讓一個操作具備確認交互能力?
- 如何讓一個操作具備復雜交互界面能力?
- 如何設置一個字段為必錄?
- 選擇基礎資料,如何攜帶出其它字段信息
- 如何進行字段校驗(手機號,郵箱,身份證)?
- 如何作一個列表式報表?
- 表頭字段唯一驗證