Browse Source

添加复制json功能

master
安虹睿 1 year ago
parent
commit
4531e7a9d3
  1. 52
      Code/Fe/src/components/umyTable/index.vue

52
Code/Fe/src/components/umyTable/index.vue

@ -345,6 +345,26 @@
{{ showDetailData ? showDetailData + "" : showDetailData }}
</el-dialog>
<!-- json弹窗复制的json内容 -->
<el-dialog
:visible.sync="showJsonCopy"
:modal-append-to-body="false"
:append-to-body="true"
:show-close="true"
:close-on-click-modal="true"
:close-on-press-escape="true"
:title="'JSON详情'"
>
<el-input
ref="copyJsonTextarea_ref"
type="textarea"
readonly
autosize
placeholder="请输入内容"
v-model="showJsonData_str">
</el-input>
</el-dialog>
<!-- 点开查看Json转换后table弹窗 -->
<el-dialog
:visible.sync="showJsonDialog"
@ -355,6 +375,11 @@
:close-on-press-escape="true"
:title="'内容详情'"
>
<el-button
@click="copyJsonHandle()"
type="primary"
style="margin-bottom: 10px;float: right;"
>复制JSON</el-button>
<el-table
:data="showJsonData"
:border="true"
@ -369,7 +394,7 @@
>
<template slot-scope="scope">
<!-- DETAILS todo:DETAILS判断条件需要优化使用传参的方式 -->
<span v-if="(scope.row.name).toUpperCase != 'DETAILS'">{{scope.row.value}}</span>
<span v-if="(scope.row.name).toUpperCase() != 'DETAILS'">{{scope.row.value}}</span>
<el-table
v-else
height="300"
@ -502,6 +527,8 @@ export default {
showDetailData:null,//
showJsonDialog:false,//Jsontable
showJsonData:null,//Json
showJsonData_str:null,//Json
showJsonCopy:false,//jsonDialog
};
},
computed: {
@ -795,7 +822,7 @@ export default {
//
if(Array.isArray(_json[item])){
// DETAILS todo:DETAILS使
let _value = (item).toUpperCase == 'DETAILS' ? __initJson(_json[item][0]) : (_json[item]).join(",")
let _value = (item).toUpperCase() == 'DETAILS' ? __initJson(_json[item][0]) : (_json[item]).join(",")
_arr.push({name:item,value:_value})
}
//
@ -812,8 +839,29 @@ export default {
}
}
this.showJsonData = _arr
this.showJsonData_str = JSON.stringify(JSON.parse(JSON.stringify(this.showJsonData)), null, '\t')
this.$emit("showJsonTable", row);
},
// Json
copyJsonHandle(){
this.showJsonCopy = true
// this.$refs.copyJsonTextarea_ref.focus()
navigator.clipboard.writeText(this.showJsonData_str)
.then(() => {
this.$message.success('复制成功');
})
.catch(err => {
this.$message.error('复制失败');
});
this.$nextTick(()=>{
if(this.$refs.copyJsonTextarea_ref){
this.$refs.copyJsonTextarea_ref.focus()
// this.$nextTick(()=>{
// this.$refs.copyJsonTextarea_ref.scrollTop = 0
// })
}
})
},
//
buttonClick(row, index, label) {
this.$emit("buttonClick", row, index, label);

Loading…
Cancel
Save