12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <template>
- <view @click="handleClick">
- <slot>复制</slot>
- </view>
- </template>
- <script>
- export default {
- name: "up-copy",
- props: {
- content: {
- type: String,
- default: ''
- },
- alertStyle: {
- type: String,
- default: 'toast'
- },
- notice: {
- type: String,
- default: '复制成功'
- }
- },
- emits: ['success'],
- methods: {
- handleClick() {
- let content = this.content;
- if (!content) {
- uni.showToast({
- title: '暂无',
- icon: 'none',
- duration: 2000,
- });
- return false;
- }
- content = typeof content === 'string' ? content : content.toString() // 复制内容,必须字符串,数字需要转换为字符串
- /**
- * 小程序端 和 app端的复制逻辑
- */
- let that = this;
- uni.setClipboardData({
- data: content,
- success: function() {
- if (that.alertStyle == 'modal') {
- uni.showModal({
- title: '提示',
- content: that.notice
- });
- } else {
- uni.showToast({
- title: that.notice,
- icon: 'none'
- });
- }
- that.$emit('success');
- },
- fail:function(){
- uni.showToast({
- title: '复制失败',
- icon: 'none',
- duration:3000,
- });
- }
- });
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- </style>
|