主要使用说明参考:
主要实现功能:
table里的列上使用JPopup,同时需要根据行上的数据条件控制列上的操作是否可编辑。最开始的在defColumns中列直接使用Popup无法达到控制是否可编辑的功能,所以需要使用slot方式实现。但是slot方式的话,JPopup默认回调的结果中并不能包含当前行的其他数据,需要把当前行的相关数据作为入参传入JPopup中,在弹出框选择JPopup后,回调函数的值中可以定位当前行标识。
定义列上配置:
//列定义
defColumns: [{
title: '物料编码',
key: 'itExternalId',
type: FormTypes.slot,
slotName: 'itExternalId'
}]
页面添加template,主要增加参数 :pRowId="props.rowId",在JPopup.vue中定义参数。
props: {
pRowId: {//父级页面行id
type: String,
default: '',
required: false
}
//在callBack函数中增加参数返回
callBack(rows) {
if (this.triggerChange) {
//v-dec时即triggerChange为true时 将整个对象给form页面 让他自己setFieldsValue
res['pRowId'] = this.pRowId//追加参数 pRowId
this.$emit('callback', res)
} else {
//v-model时 需要传一个参数field 表示当前这个字段 从而根据这个字段的顺序找到原始值
res['pRowId'] = this.pRowId//追加参数 pRowId
this.$emit('input', this.showText, res)
}
}
<!--物料编码 选择物料-->
<template v-slot:itExternalId="props">
<j-popup
:disabled="model_itemStatus[props.index] == '20' || model_itemStatus[props.index] == 20"
v-model="model_itExternalId[props.index]"
:pRowId="props.rowId"
v-decorator="['itCode','itName','itExternalId','itAbc','itPaType','itUom','itReturnAttr']"
:trigger-change="true"
@callback="popupCallback"
code='FSM_item'
field='itExternalId'
org-fields='itCode,itName,itExternalId,itAbc,itPaType,itUom,itReturnAttr'
dest-fields='itCode,itName,itExternalId,itAbc,itPaType,itUom,itReturnAttr'></j-popup>
</template>
//在使用JPopup的页面增加回调函数
popupCallback(row) {
console.log('popop cb', row)
let rowKey = row['pRowId']
let editTable = this.$refs.editableTable
let rowData = editTable.getValuesSync({ rowIds: [rowKey] }).values[0]
}
本文档介绍如何在JeecgBoot低代码平台上使用JPopup组件,特别是如何在表格列上根据行数据控制操作的编辑权限。通过使用slot方式,可以将当前行的数据传递给JPopup,以便在回调函数中定位行标识,从而实现动态控制编辑功能。
http://doc.jeecg.com/2044000
6322

被折叠的 条评论
为什么被折叠?



