Skip to content

Commit 86607a4

Browse files
committed
refactor:TTable双击单元格复制功能弃用vue-clipboard2插件
1 parent 1bd4eec commit 86607a4

File tree

3 files changed

+20
-12
lines changed

3 files changed

+20
-12
lines changed

docs/.vuepress/enhanceApp.js

-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import ElementUI from 'element-ui'
77
// import Tui from '../../src/components/baseComponents/index.js'
88
import Tui from '../../packages'
99
import { message } from './public/utils/resetMessage' // 防止重复点击重复弹出message弹框
10-
import vueClipboard from 'vue-clipboard2'
1110
// import * as filters from './public/utils/filters' // global filters
1211
import './public/utils/directives' // 自定义指令
1312
import 'element-ui/lib/theme-chalk/index.css'
@@ -23,7 +22,6 @@ export default ({
2322
Vue.use(VueHighlightJS),
2423
Vue.use(ElementUI),
2524
Vue.use(Tui),
26-
Vue.use(vueClipboard),
2725
Vue.prototype.$messageUpload = message,
2826
Vue.prototype.$message = ElementUI.Message,
2927
Vue.prototype.$loading = ElementUI.Loading.service,

examples/main.js

-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import '@/directive'
1313
import * as filters from './utils/filters' // global filters
1414
import { message } from './utils/resetMessage' // 防止重复点击重复弹出message弹框
1515
import api from '@/api' // 接口api
16-
import VueClipboard from 'vue-clipboard2' // 复制插件
1716
// import { Message } from 'element-ui'
1817

1918
import Tui from '../packages' // 二次封装组件
@@ -24,7 +23,6 @@ Vue.use(vueSeamlessScroll)
2423
Vue.use(Element)
2524
Vue.use(Tui)
2625

27-
Vue.use(VueClipboard)
2826

2927
Vue.prototype.$http = api
3028
Vue.prototype.$messageUpload = message

packages/table/src/index.vue

+20-8
Original file line numberDiff line numberDiff line change
@@ -1263,6 +1263,20 @@ export default {
12631263
</div>
12641264
)
12651265
},
1266+
// 复制内容
1267+
copyDomText(val) {
1268+
// 获取需要复制的元素以及元素内的文本内容
1269+
const text = val
1270+
// 添加一个input元素放置需要的文本内容
1271+
const input = document.createElement('input')
1272+
input.value = text
1273+
document.body.appendChild(input)
1274+
// 选中并复制文本到剪切板
1275+
input.select()
1276+
document.execCommand('copy')
1277+
// 移除input元素
1278+
document.body.removeChild(input)
1279+
},
12661280
// 双击复制单元格内容
12671281
cellDblclick(row, column) {
12681282
if (!this.isCopy) {
@@ -1276,14 +1290,12 @@ export default {
12761290
} else {
12771291
label = row[column.property]
12781292
}
1279-
this.$copyText(label).then(
1280-
() => {
1281-
this.$message.success('已复制')
1282-
},
1283-
() => {
1284-
this.$message.error('复制失败')
1285-
}
1286-
)
1293+
try {
1294+
this.copyDomText(label)
1295+
this.$message.success('已复制')
1296+
} catch (e) {
1297+
this.$message.error('复制失败')
1298+
}
12871299
},
12881300
// 是否显示表格操作按钮
12891301
checkIsShow(scope, item) {

0 commit comments

Comments
 (0)