Author: 唐溢泓、江炜
表单
表单主要可以实现字段的操作

const ext_customEntity65__c_Form_ = new xsyrpa.FormExtensionPoint("customEntity65__c.Form#*#");
ext_customEntity65__c_Form_.on("loaded", async (data) => {
const ext_account_form_address = new xsyrpa.FormTextInputExtensionPoint("account.form#*#address");
ext_account_form_address.setValue("上海,北京");
ext_account_form_address.setReadOnly(true);
ext_account_form_address.setRequired(true);
ext_account_form_address.setVisible(true);
ext_account_form_address.setError("错误信息");
ext_account_form_address.setPlaceholder("新的placeholder");
ext_account_form_address.setInlineStyle({
selector: ".ui-spinner",
style: { "border": "1px solid red", "border-radius": "4px" },
});
ext_account_form_address.on("onChange", (data) => {
});
});
const ext_customEntity65__c_Form_ = new xsyrpa.FormExtensionPoint("customEntity65__c.Form#*#");
ext_customEntity65__c_Form_.on("loaded", async (data) => {
const ext_customEntity65__c_Form_ButtonGroup = new xsyrpa.ButtonGroupExtensionPoint("customEntity65__c.Form#*#ButtonGroup");
const newButton = await ext_customEntity65__c_Form_ButtonGroup.addButton({
extId: "newButtonInForm",
text: "新按钮"
});
newButton.on("onClick", () => {
});
const ext_customEntity65__c_Form_draft = new xsyrpa.ButtonExtensionPoint("customEntity65__c.Form#*#draft");
ext_customEntity65__c_Form_draft.setText("新文本");
ext_customEntity65__c_Form_draft.setVisible(true);
});
ext_customEntity65__c_Form_.on("beforeSave", (data, resolve, reject) => {
});
明细的扩展点列表示意图(以商机明细为例, 自定义实体相同)



明细Picker自定义
const ext_opportunityProduct_Form_opportunityProduct = new xsyrpa.FormSubEntityTableExtensionPoint("opportunityProduct.Form#*#opportunityProduct-919228631532061");
const ext_SystemUtils = new xsyrpa.SystemUtils();
ext_opportunityProduct_Form_opportunityProduct.on('pickerClick', function(data){
console.log(data);
ext_SystemUtils.openDialog({
url: 'https://www.reynanote.com/?id=963469313770032',
windowSize:2,
title: "自定义选择产品"
}).then(function(data){
ext_opportunityProduct_Form_opportunityProduct.afterPickerSelected({ids: data});
});
});
ext_opportunityProduct_Form_opportunityProduct.on('rowDataChanged', function(rowData){
if(rowData.data.amount > 20){
ext_opportunityProduct_Form_opportunityProduct.setCellError({rowIndex:rowData.index, apiKey:'amount', messages:'数量不能超过20'});
}
});
function(){
let msg = {
isvData: 1,2,3
doClose: true
};
window.top.postMessage(msg, '*');
}
商机设置必须含有明细,列表自定义搜索条件
const ext_opportunity_SubForm_opportunityProduct = new xsyrpa.FormSubEntityTableExtensionPoint("opportunity.SubForm#*#opportunityProduct");
const ext_opportunity_ListPage_ListPage = new xsyrpa.EntityListPageExtensionPoint("opportunity.ListPage#*#ListPage");
ext_opportunity_SubForm_opportunityProduct.on('loaded', async function(){
ext_opportunity_SubForm_opportunityProduct.allowEmptyDetailData({entityApiKey:'opportunityProduct', enabled:true});
const newButton = await ext_opportunity_ListPage_ListPage.addButtonItem({
extId:"newButtonId",
text:"新按钮"
});
newButton.on("onClick", function(){
var conditions = [{"id":"11","item":"26905910","type":"1","value":"123"},{"id":"12","item":"26905910","type":"1","value":"testr5"}]
ext_opportunity_ListPage_ListPage.addFilterConditions({expression:"11 OR 12", conditions:conditions, refresh:true});
});
});
批量新增编辑商机明细及全量数据获取
ext_opportunity_Form_.on('beforeSave', (data, resolve, reject)=>{
var needConfirm = false;
console.log(data);
var jsonEntity = JSON.parse(data.detailEntityMap);
const ext__SubForm_opportunityProduct = new xsyrpa.FormSubEntityTableExtensionPoint("opportunityProduct.SubForm#*#opportunityProduct");
const fullData = await ext__SubForm_opportunityProduct.getDetailData({fullData:true});
});
const ext_opportunityProduct_Form_ = new xsyrpa.FormExtensionPoint("opportunityProduct.Form#*#");
ext_opportunityProduct_Form_.on('beforeSave', async function(data,resolve, reject){
console.log("原生数据", data);
const ext__SubForm_opportunityProduct = new xsyrpa.FormSubEntityTableExtensionPoint("opportunityProduct.SubForm#*#opportunityProduct");
const fullData = await ext__SubForm_opportunityProduct.getDetailData({fullData:true});
console.log("全明细数据", fullData);
});
明细设置字段可编辑及触发计算
const ext_quote_CPQPriceSetsExtensionPoint = new xsyrpa.CPQPriceSetsExtensionPoint("quote_CPQPriceSetsExtensionPoint");
ext_quote_CPQPriceSetsExtensionPoint.on('afterAddDetail', function(){
ext_quote_CPQPriceSetsExtensionPoint.getDetailData().then(function(data){
for(var i = 0; i<data.length;i++){
if(data[i] && data[i]['quotationDetailEntityRelProduct-label'] === "B3"){
ext_quote_CPQPriceSetsExtensionPoint.setCellEditable({detailUuid: data[i].detailUuid, detailId: data[i].id, itemApiKey: 'priceUnit', editable:true});
}
}
});
});
ext_quote_CPQPriceSetsExtensionPoint.on('afterEditDetail', function(data){
if(data.itemApiKey == 'priceUnit'){
ext_quote_CPQPriceSetsExtensionPoint.getDetailData({detailUuid: data.detailUuid}).then(function(detail){
ext_quote_CPQPriceSetsExtensionPoint.detailCalculate({detailUuid: detail.detailUuid, detailId: detail.id, itemApiKey:'price', newValue: detail.price});
});
}
});
const ext_opportunityProduct_SubForm_EntityType_opportunityProduct_549175303520276 = new xsyrpa.FormSubEntityTableExtensionPoint("opportunityProduct.SubForm.EntityType#*#opportunityProduct_549175303520276");
ext_opportunityProduct_SubForm_EntityType_opportunityProduct_549175303520276.on('afterAddDetail', function(data){
console.log(data.data);
if(data.data.productId.label === 'B3' || data.data['productId-label'] == 'B3'){
ext_opportunityProduct_SubForm_EntityType_opportunityProduct_549175303520276.setCellEditable({
rowIndex: data.index,
cellIndex:'',
itemApiKey: 'standardPrice',
editable:true
});
}
});
ext_opportunityProduct_SubForm_EntityType_opportunityProduct_549175303520276.on('rowDataChanged', function(data){
if(data.itemApiKey === 'standardPrice'){
ext_opportunityProduct_SubForm_EntityType_opportunityProduct_549175303520276.detailCalculate({
rowIndex: data.index,
cellIndex:'',
itemApiKey: 'priceUnit',
newValue: data.data.priceUnit
})
}
});
关联字段使用自定义数据选择页面

const ext_SystemUtils = new xsyrpa.SystemUtils();
const ext_TestButton__c_Form_Account__c = new xsyrpa.FormRelatedFieldExtensionPoint("TestButton__c.Form#*#Account__c");
ext_TestButton__c_Form_Account__c.on("pickerHookTrigger",(data, resolve, reject)=>{
ext_SystemUtils.openDialog({
url: 'https://www.reynanote.com/?id=963469313770032',
windowSize:2,
title: "自定义选择实体"
}).then(function(data){
resolve(data);
});
});