メインコンテンツまでスキップ

フォームでデータソースからマスタデータを取得してサブテーブルに表示します

このケースは三者開発者「jing」から来た

1. 使用シーン

このケースは、メインテーブルのデータをサブフォームに入力する必要がある場合に使用できます。

2. 機能を実現する

2.1. 学生情報テーブルの設定

2.2. 構成表ページ

2.3. データソースにリモートデータソースを追加します

参考ドキュメント:条件に基づいてフォームインスタンスの詳細リストを検索します

データソースのアドレス:

`/${window.pageConfig.appType || window.g_config.appKey}/v1/form/searchFormDatas.json`

インタフェース構成図:

2.4. ドロップダウン・ラジオ・コンポーネントの設定

2.5. ドロップダウン・ラジオ・コンポーネント・イベントの設定

実際の状況に応じてコンポーネントの一意のidを変更することに注意してください。インタフェースのパフォーマンスによって制限されます。この例では、1回のクエリで最大100のインスタンスをサポートしています。

export function onClassChange({ value, actionType, item }) {
if (value) {
const loading = this.utils.toast({
title: '数据获取中...',
type: 'loading'
});
this.dataSourceMap.getData.load({
formUuid: 'FORM-4G8667A15KZAZ18LC189F769PN0R2IOTMNZHLG1',
searchFieldJson: JSON.stringify({
textField_lbfwjvxw: value
}),
pageSize: 100
}).then(res => {
loading();
const { data = [] } = res;
const tableData = data.map(item => {
const { formData } = item;
return {
textField_lbfx2ifr: formData.textField_lbfwjvxx, // 姓名
numberField_lbfx2ifs: formData.numberField_lbfwjvxy, // 年龄
numberField_lc72rbdk: formData.numberField_lc72oufl // 总分
};
});
// _.sumBy:lodash方法,宜搭已默认内置,具体可见:https://www.lodashjs.com/docs/lodash.sumBy#_sumbyarray-iteratee_identity
const totalScore = _.sumBy(tableData, 'numberField_lc72rbdk'); // 班级总分
// 班级平均分
const aveScore = totalScore / tableData.length;
this.$('numberField_lc72rbdp').setValue(totalScore); // 班级总分
this.$('numberField_lc72rbdq').setValue(aveScore); // 班级平均分
this.$('tableField_lbfx2ifq').setValue(tableData);
}).catch(error => {
loading();
this.utils.toast({
title: error.message,
type: 'error'
});
});
} else {
this.$('tableField_lbfx2ifq').reset();
this.$('numberField_lc72rbdp').reset();
this.$('numberField_lc72rbdq').reset();
};
}

3. 効果を実現する

4. オンラインで試遊する

この文書は機械翻訳により生成されています。翻訳により生じた齟齬や相違点は拘束力を持たず、コンプライアンスや執行目的において法的効力はありません。
© DingTalk (Singapore) Private Limited