<template> <j-popup v-bind="popupProps" @input="handlePopupInput" /> </template> <script> import JVxeCellMixins, {dispatchEvent, vModel} from '@/components/jeecg/JVxeTable/mixins/JVxeCellMixins' export default { name: 'JVxePopupCell', mixins: [JVxeCellMixins], computed: { popupProps() { const {innerValue, originColumn: col, caseId, cellProps} = this return { ...cellProps, value: innerValue, field: col.field || col.key, code: col.popupCode, orgFields: col.orgFields, destFields: col.destFields, groupId: caseId, param: col.param, sorter: col.sorter, } }, }, methods: { /** popup回调 */ handlePopupInput(value, others) { const {row, originColumn: col} = this // 存储输入的值 let popupValue = value if (others && Object.keys(others).length > 0) { Object.keys(others).forEach(key => { let currentValue = others[key] // 当前列直接赋值,其他列通过vModel赋值 if (key === col.key) { popupValue = currentValue } else { vModel.call(this, currentValue, row, key) } }) } this.handleChangeCommon(popupValue) }, }, // 【组件增强】注释详见:JVxeCellMixins.js enhanced: { aopEvents: { editActived(event) { dispatchEvent.call(this, event, 'ant-input') }, }, }, } </script> <style scoped> </style>