[HTML] 纯文本查看 复制代码
修改rpgsave存档
class=”upload-demo”
drag
:auto-upload=”1==2″
:on-change=”upload”
:on-preview=”clickFile”
action=”#”
>
将文件拖到此处,或 点击上传
原文:
解码:
金钱
姓名
等级
生命
魔力
攻击
魔攻
敏捷
占位
var app = new Vue({
el: ‘#app’,
data: {
文件路径: null,
加密内容: null,
解密内容: null,
json内容: null,
json对象: {},
角色列表: []
},
computed: {
金钱: {
get: function () {
try {
var _ = this.json对象[“party”][“_gold”]
} catch (error) {
console.log(error)
_ = “未取到值”
}
return _
},
set: function (value){
try {
this.json对象[“party”][“_gold”] = value
} catch (error) {
console.log(error)
}
}
}
},
watch: {
加密内容(新值, 旧值) {
this.解密内容 = this.读取解密内容(新值)
},
解密内容(新值, 旧值) {
this.json内容 = this.读取json内容(新值)
},
json内容(新值, 旧值) {
this.json对象 = this.to_json_obj(新值)
try {
this.角色列表 = this.json对象[“actors”][“_data”][“@a”]
} catch (error) {
console.log(error)
this.角色列表 = []
}
}
},
methods: {
// (1)
upload: function (file, fileList) {
this.文件路径 = file.name
file.文件路径 = this.文件路径
this.读取加密内容(file.raw)
},
clickFile: function (file) {
this.读取加密内容(file.raw)
this.文件路径 = file.文件路径
},
// (2)
读取加密内容: function (file) {
var _this = this
var reader = new FileReader()
reader.readAsText(file)
reader.onload = function(){
_this.加密内容 = this.result
}
},
// (3)
decodeText_to_encodeText: function () {
this.加密内容 = this.encode(this.解密内容)
this.ctrl_c(this.加密内容)
},
// (4)
读取解密内容: function (加密内容) {
return this.decode(加密内容)
},
// (5)
读取json内容: function (解密内容) {
return JSON.stringify(JSON.parse(解密内容),null,2)
},
// (6)
change_and_encode_and_save: function (obj) {
this.change_and_encode(obj)
this.save(this.加密内容, this.文件路径)
},
change_and_encode_and_ctrlC: function (obj) {
this.change_and_encode(obj)
this.ctrl_c(this.加密内容)
},
// ———— 辅助方法 ————
change_and_encode: function (obj) {
let _ = this.to_json_str(obj)
this.加密内容 = this.encode(_)
},
ctrl_c: function (text) {
this.copyText(text)
this.$message(‘已复制’);
},
// ———— 工具方法 ————
to_json_obj: function (obj) {
return JSON.parse(obj)
},
to_json_str: function (obj) {
if(typeof(obj) == “string”){
return JSON.stringify(JSON.parse(obj))
}
return JSON.stringify(obj)
},
encode: function (text) {
return LZString.compressToBase64(text)let _ = this.to_json_str(obj)
this.加密内容 = this.encode(_)
},
ctrl_c: function (text) {
this.copyText(text)
this.$message(‘已复制’);
},
// ———— 工具方法 ————
to_json_obj: function (obj) {
return JSON.parse(obj)
},
to_json_str: function (obj) {
if(typeof(obj) == “string”){
return JSON.stringify(JSON.parse(obj))
}
return JSON.stringify(obj)
},
encode: function (text) {
return LZString.compressToBase64(text)
},
decode: function (text) {
return LZString.decompressFromBase64(text)
},
save: function (text, 文件名 = “a1.txt”) {
let pos = 文件名.lastIndexOf(“/”)
文件名 = 文件名.substring(pos+1)
var file = new File([text], 文件名, { type: “text/plain;charset=utf-8” })
saveAs(file)
},
// 复制的方法
copyText: function(text, callback){ // text: 要复制的内容, callback: 回调
var tag = document.createElement(‘input’);
tag.setAttribute(‘id’, ‘cp_hgz_input’);
tag.value = text;
document.getElementsByTagName(‘body’)[0].appendChild(tag);
document.getElementById(‘cp_hgz_input’).select();
document.execCommand(‘copy’);
document.getElementById(‘cp_hgz_input’).remove();
if(callback) {callback(text)}
}
}
})