场景
当在【教育经历明细】中录入【教育经历】信息时,自动筛选【是否最高学历】为【是】的学历的【最高学历】、【最高学历形式】、【最高学历院校名称】、【最高学历院校专业】,并填入主表单对应控件中,简化填写步骤
模板设计如下
最高学历:单选框 对应【教育经历明细】中的【学历】最高学历形式:单选框 对应【教育经历明细】中的【学历形式】最高学历院校名称:单行文本框 对应【教育经历明细】中的【院校】最高学历院校专业:单行文本框 对应【教育经历明细】中的【专业】
<script type="text/javascript">
cf.ready(function(){
var formInfo = {}
cf.flow.getFormInfo().then(function (res) {
formInfo = res
setUp()
})
// 值改变时判断应该给文事会关联控件设置什么状态
function assignWidgets (highOne) {
// 最高学历
cf.form.setFieldValue('Ra_4', findWidgetOptionLabel("Ra_18", highOne.Ra_18, "Ra_4"))
// 最高学历形式
cf.form.setFieldValue('Ra_5', findWidgetOptionLabel("Ra_16", highOne.Ra_16, "Ra_5"))
// 最高学历院校名称
cf.form.setFieldValue('Te_19', highOne.Te_20)
// 最高学历院校专业
cf.form.setFieldValue('Te_67', highOne.Te_21)
}
function findWidgetOptionLabel (widgetCodeId, key, targetCodeId) {
var widgetsMap = formInfo.widgetsMap
var options = widgetsMap[widgetCodeId].options || []
var yesOption = cf.find(options, function (o) {
return o.key === key
})
return yesOption ?
findMatchWidgetOptionValue(targetCodeId, yesOption.value) : ""
}
function findMatchWidgetOptionValue (widgetCodeId, value) {
var widgetsMap = formInfo.widgetsMap
var options = widgetsMap[widgetCodeId].options || []
var yesOption = cf.find(options, function (o) {
return o.value === value
})
return yesOption ? yesOption.key : ""
}
function setUp () {
var widgetsMap = formInfo.widgetsMap
// 监听教育经历改变
cf.form.subscribeFieldValueChange("Dd_0", (eventValue) => {
var widgetValue = eventValue.widgetValue || []
// 找到最高学历
var highOne = cf.find(widgetValue, function (row) {
var options = widgetsMap.Ra_15.options || []
var yesOption = cf.find(options, function (o) {
return o.value === "是"
})
// 判断是否最高学历
return row.Ra_15 && row.Ra_15 === yesOption.key
})
if (highOne) {
assignWidgets(highOne)
}
})
}
})
</script>
欢迎关注我的个人公众号「「小枫学幽默」」一起成长,一起分享生活!!