perf : 复制功能组件化
This commit is contained in:
12
nezha-fronted/package-lock.json
generated
12
nezha-fronted/package-lock.json
generated
@@ -3988,7 +3988,7 @@
|
|||||||
},
|
},
|
||||||
"clipboard": {
|
"clipboard": {
|
||||||
"version": "2.0.11",
|
"version": "2.0.11",
|
||||||
"resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz",
|
"resolved": "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz",
|
||||||
"integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==",
|
"integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"good-listener": "^1.2.2",
|
"good-listener": "^1.2.2",
|
||||||
@@ -6133,7 +6133,7 @@
|
|||||||
},
|
},
|
||||||
"delegate": {
|
"delegate": {
|
||||||
"version": "3.2.0",
|
"version": "3.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
|
"resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz",
|
||||||
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
|
"integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
|
||||||
},
|
},
|
||||||
"delegates": {
|
"delegates": {
|
||||||
@@ -8445,7 +8445,7 @@
|
|||||||
},
|
},
|
||||||
"good-listener": {
|
"good-listener": {
|
||||||
"version": "1.2.2",
|
"version": "1.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
|
"resolved": "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz",
|
||||||
"integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==",
|
"integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"delegate": "^3.1.2"
|
"delegate": "^3.1.2"
|
||||||
@@ -16361,7 +16361,7 @@
|
|||||||
},
|
},
|
||||||
"select": {
|
"select": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
|
"resolved": "https://registry.npmmirror.com/select/-/select-1.1.2.tgz",
|
||||||
"integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA=="
|
"integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA=="
|
||||||
},
|
},
|
||||||
"select-hose": {
|
"select-hose": {
|
||||||
@@ -17837,7 +17837,7 @@
|
|||||||
},
|
},
|
||||||
"tiny-emitter": {
|
"tiny-emitter": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
|
"resolved": "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
|
||||||
"integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
|
"integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
|
||||||
},
|
},
|
||||||
"tinycolor2": {
|
"tinycolor2": {
|
||||||
@@ -18521,7 +18521,7 @@
|
|||||||
},
|
},
|
||||||
"vue-clipboard2": {
|
"vue-clipboard2": {
|
||||||
"version": "0.3.3",
|
"version": "0.3.3",
|
||||||
"resolved": "https://registry.npmjs.org/vue-clipboard2/-/vue-clipboard2-0.3.3.tgz",
|
"resolved": "https://registry.npmmirror.com/vue-clipboard2/-/vue-clipboard2-0.3.3.tgz",
|
||||||
"integrity": "sha512-aNWXIL2DKgJyY/1OOeITwAQz1fHaCIGvUFHf9h8UcoQBG5a74MkdhS/xqoYe7DNZdQmZRL+TAdIbtUs9OyVjbw==",
|
"integrity": "sha512-aNWXIL2DKgJyY/1OOeITwAQz1fHaCIGvUFHf9h8UcoQBG5a74MkdhS/xqoYe7DNZdQmZRL+TAdIbtUs9OyVjbw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"clipboard": "^2.0.0"
|
"clipboard": "^2.0.0"
|
||||||
|
|||||||
32
nezha-fronted/src/components/common/copy.vue
Normal file
32
nezha-fronted/src/components/common/copy.vue
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<template>
|
||||||
|
<div class="document-copy-block">
|
||||||
|
<span class="document-copy-text">
|
||||||
|
<slot name="copy-text"></slot>
|
||||||
|
</span>
|
||||||
|
<i v-if="copyData" class="nz-icon nz-icon-override" style="visibility: hidden" @click="onCopy(copyData)" :title="$t('overall.copyText')"></i>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'copy',
|
||||||
|
props: {
|
||||||
|
copyData: String
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onCopy (txt) {
|
||||||
|
this.$copyText(txt).then(() => {
|
||||||
|
this.$message.success({ message: this.$t('overall.copySuccess') })
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -39,16 +39,22 @@
|
|||||||
</template>
|
</template>
|
||||||
<template slot-scope="scope" :column="item">
|
<template slot-scope="scope" :column="item">
|
||||||
<template v-if="item.prop === 'name'">
|
<template v-if="item.prop === 'name'">
|
||||||
<div class="document-copy-block">
|
<!-- <div class="document-copy-block">
|
||||||
<span class="document-copy-text">{{scope.row.name ? scope.row.name : '-'}}</span>
|
<span class="document-copy-text">{{scope.row.name ? scope.row.name : '-'}}</span>
|
||||||
<i v-if="scope.row.name" class="nz-icon nz-icon-override" style="visibility: hidden" @click="onCopy(scope.row.name)" :title="$t('overall.copyText')"></i>
|
<i v-if="scope.row.name" class="nz-icon nz-icon-override" style="visibility: hidden" @click="onCopy(scope.row.name)" :title="$t('overall.copyText')"></i>
|
||||||
</div>
|
</div> -->
|
||||||
|
<copy :copyData='scope.row.name'>
|
||||||
|
<template slot="copy-text">
|
||||||
|
{{scope.row.name ? scope.row.name : '-'}}
|
||||||
|
</template>
|
||||||
|
</copy>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="item.prop === 'manageIp'">
|
<template v-else-if="item.prop === 'manageIp'">
|
||||||
<div class="document-copy-block">
|
<copy :copyData='scope.row.manageIp'>
|
||||||
<span class="document-copy-text">{{scope.row.manageIp ? scope.row.manageIp : '-'}}</span>
|
<template slot="copy-text">
|
||||||
<i v-if="scope.row.manageIp" class="nz-icon nz-icon-override" style="visibility: hidden" @click="onCopy(scope.row.manageIp)" :title="$t('overall.copyText')"></i>
|
{{scope.row.manageIp ? scope.row.manageIp : '-'}}
|
||||||
</div>
|
</template>
|
||||||
|
</copy>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="item.prop === 'type'">{{scope.row.type ? scope.row.type.name : '-'}}</template>
|
<template v-else-if="item.prop === 'type'">{{scope.row.type ? scope.row.type.name : '-'}}</template>
|
||||||
<template v-else-if="item.prop === 'state'">{{scope.row.state ? scope.row.state.name : '-'}}</template>
|
<template v-else-if="item.prop === 'state'">{{scope.row.state ? scope.row.state.name : '-'}}</template>
|
||||||
@@ -188,6 +194,7 @@
|
|||||||
import table from '@/components/common/mixin/table'
|
import table from '@/components/common/mixin/table'
|
||||||
import { showTableTooltip, hideTableTooltip } from '@/components/common/js/tools'
|
import { showTableTooltip, hideTableTooltip } from '@/components/common/js/tools'
|
||||||
// import bus from '@/libs/bus'
|
// import bus from '@/libs/bus'
|
||||||
|
import copy from '@/components/common/copy'
|
||||||
import alertLabel from '@/components/common/alert/alertLabel'
|
import alertLabel from '@/components/common/alert/alertLabel'
|
||||||
import alertDaysInfo from '@/components/common/alert/alertDaysInfo'
|
import alertDaysInfo from '@/components/common/alert/alertDaysInfo'
|
||||||
import alertLabelMixin from '@/components/common/mixin/alertLabelMixin'
|
import alertLabelMixin from '@/components/common/mixin/alertLabelMixin'
|
||||||
@@ -196,7 +203,8 @@ export default {
|
|||||||
mixins: [table, alertLabelMixin],
|
mixins: [table, alertLabelMixin],
|
||||||
components: {
|
components: {
|
||||||
alertLabel: alertLabel,
|
alertLabel: alertLabel,
|
||||||
alertDaysInfo
|
alertDaysInfo,
|
||||||
|
copy
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
showOption: {
|
showOption: {
|
||||||
|
|||||||
Reference in New Issue
Block a user