export const pasteTable = function (e, columns, dataSource, index, key, callback, add, obj) {
e.preventDefault() // 阻止默认粘贴事件
// var isMac = /macintosh|mac os x/i.test(navigator.userAgent)
const DataList = e.clipboardData.getData('Text').replace(/\r\n/g, '\n').split('\n').map(a => a.split('\t'))
// if (!isMac) {
// DataList.pop()
// }
// console.log(index, 'index')
// console.log(DataList, 'DataList')
const keyList = []
const getKeyArr = function (cols, arr) {
cols.forEach(a => {
if (a.dataIndex) {
arr.push(a.dataIndex)
}
if (a.children && a.children.length) {
getKeyArr(a.children, arr)
}
})
}
getKeyArr(columns, keyList)
// console.log(keyList, 'keyList')
const keyIndex = keyList.indexOf(key) // 下标三
// console.log(keyIndex, 'keyIndex')
// console.log(DataList, keyList)
DataList.forEach((a, b) => {
const newIndex = index + b
a.forEach((c, d) => {
const newKeyIndex = keyIndex + d
const backData = callback(dataSource[newIndex], newIndex, keyList[newKeyIndex], c)
// if (!(keyList[newKeyIndex])) return
if (getObjType(backData) == 'boolean') {
dataSource[newIndex][keyList[newKeyIndex]] = backData ? c : dataSource[newIndex][keyList[newKeyIndex]]
} else {
dataSource[newIndex][keyList[newKeyIndex]] = backData
}
})
})
}
<a-input
v-model="record[obj.productionCompanyCode + 'applyConfirmNum']"
placeholder=""
:key="i"
@paste="pasteTable($event, table_COLUMNS, businessDetailList_Computed, index, (obj.productionCompanyCode + 'applyConfirmNum'), copyCallback)"
@input="checkNum(record,(obj.productionCompanyCode + 'applyConfirmNum'),index)"
@blur="toNumBlur(record,(obj.productionCompanyCode + 'applyConfirmNum'),index)"
style="width:100%;"
/>
pasteTable,
copyCallback (row, index, key, str) {
if (!isNaN(Number(str))) {
return true
} else {
return false
}
},