Skip to content

Commit b1628fb

Browse files
committed
feat: 按钮文本配置
1 parent ca1379b commit b1628fb

File tree

10 files changed

+92
-36590
lines changed

10 files changed

+92
-36590
lines changed

.babelrc

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
11
{
2-
"presets": ["es2015", "stage-0"]
2+
"presets": ["es2015", "stage-0"],
3+
"plugins": [[
4+
"transform-runtime",
5+
{
6+
"helpers": false,
7+
"polyfill": false,
8+
"regenerator": true,
9+
"moduleName": "babel-runtime"
10+
}
11+
]]
312
}

dist/vue-json-edit.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

example/App.vue

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,13 @@
44
<div class="editor-w clearfix">
55
<div class="w-2">
66
<div class="editor">
7-
<JsonEditor :objData="jsonData" v-model="jsonData" ></JsonEditor>
7+
<JsonEditor
8+
:options="{
9+
confirmText: 'confirm',
10+
cancelText: 'cancel',
11+
}"
12+
:objData="jsonData"
13+
v-model="jsonData" ></JsonEditor>
814
</div>
915
</div>
1016
<div class="w-2">
@@ -47,14 +53,6 @@ export default {
4753
this.drawResCode(c)
4854
}
4955
},
50-
async beforeCreate() {
51-
setTimeout(
52-
(() => {
53-
this.jsonData = { test: 4123 };
54-
}).bind(this),
55-
2000,
56-
);
57-
},
5856
methods: {
5957
//JSON format print
6058
formatJson: function(txt, compress /*是否为压缩模式*/) {

example/dist/index.html

Lines changed: 0 additions & 57 deletions
This file was deleted.

example/dist/main_4d70b9573aa3e07171c0.js

Lines changed: 0 additions & 36494 deletions
This file was deleted.

package-lock.json

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vue-json-edit",
3-
"version": "1.2.0",
3+
"version": "1.3.0",
44
"description": "visual JSON editor built as an vue component",
55
"author": "Jinkin1995 <[email protected]>",
66
"keywords": [
@@ -26,6 +26,7 @@
2626
"devDependencies": {
2727
"babel-core": "^6.26.3",
2828
"babel-loader": "^7.1.5",
29+
"babel-plugin-transform-runtime": "^6.23.0",
2930
"babel-preset-es2015": "^6.24.1",
3031
"babel-preset-stage-0": "^6.24.1",
3132
"css-loader": "^2.1.0",

src/ItemAddForm.vue

Lines changed: 35 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,19 @@
11
<template>
22
<div class="add-form pure-form">
33
<div class="f-input">
4-
<input type="text" v-model="keyName" class="f-input-m" placeholder="name" v-if="needName">
4+
<input
5+
type="text"
6+
v-model="keyName"
7+
v-if="needName"
8+
class="f-input-m"
9+
placeholder="name">
510
<select v-model="formatSelected" class="f-input-m">
6-
<option :value="item" v-for="(item, index) in formats" :key="index">{{item}}</option>
11+
<option
12+
v-for="(item, index) in formats"
13+
:value="item"
14+
:key="index">
15+
{{item}}
16+
</option>
717
</select>
818
<span class="f-input-m">
919
<b>:</b>
@@ -39,33 +49,42 @@
3949
</div>
4050

4151
<div class="f-btns">
42-
<button class="pure-button f-confirm" @click="confirm">确定</button>
43-
<button class="pure-button" @click="cancel">取消</button>
52+
<button
53+
class="pure-button f-confirm"
54+
@click="confirm">
55+
{{ this.formBtnText.confirmText }}
56+
</button>
57+
<button
58+
class="pure-button"
59+
@click="cancel">
60+
{{ this.formBtnText.cancelText }}
61+
</button>
4462
</div>
4563
</div>
4664
</template>
4765

4866
<script>
4967
export default {
50-
name: "ItemAddForm",
51-
data: function() {
68+
name: 'ItemAddForm',
69+
data () {
5270
return {
53-
formats: ["string", "array", "object", "number", "boolean"],
54-
formatSelected: "string",
71+
formats: ['string', 'array', 'object', 'number', 'boolean'],
72+
formatSelected: 'string',
5573
//--
56-
keyName: "",
57-
valName: ""
74+
keyName: '',
75+
valName: ''
5876
};
5977
},
6078
props: {
6179
needName: {
6280
default: true
6381
}
6482
},
83+
inject: ['formBtnText'],
6584
methods: {
6685
confirm: function() {
6786
let val = null;
68-
if (this.formatSelected === "array" || this.formatSelected === "object") {
87+
if (this.formatSelected === 'array' || this.formatSelected === 'object') {
6988
val = [];
7089
} else {
7190
val = this.valName;
@@ -77,14 +96,14 @@ export default {
7796
type: this.formatSelected
7897
};
7998
80-
this.$emit("confirm", objData);
81-
this.keyName = "";
82-
this.valName = "";
83-
this.formatSelected = "string";
99+
this.$emit('confirm', objData);
100+
this.keyName = '';
101+
this.valName = '';
102+
this.formatSelected = 'string';
84103
},
85104
86105
cancel: function() {
87-
this.$emit("cancel");
106+
this.$emit('cancel');
88107
},
89108
90109
dealBoolean: function() {

src/JsonEditor.vue

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,29 @@
22
<json-view :parsedData="parsedData" v-model="parsedData"></json-view>
33
</template>
44

5-
65
<script>
76
export default {
87
name: "JsonEditor",
9-
props: { objData: { required: true } },
10-
data: function() {
8+
props: {
9+
objData: {
10+
type: Object,
11+
required: true
12+
},
13+
options: {
14+
type: Object,
15+
}
16+
},
17+
provide () {
18+
return {
19+
formBtnText: this.options
20+
}
21+
},
22+
data () {
1123
return {
1224
parsedData: []
1325
};
1426
},
15-
created: function() {
27+
created () {
1628
this.lastParsedData = {};
1729
this.parsedData = this.jsonParse(this.objData);
1830
},
@@ -35,7 +47,7 @@ export default {
3547
}
3648
},
3749
methods: {
38-
jsonParse: function(jsonStr) {
50+
jsonParse: function (jsonStr) {
3951
let parseJson = json => {
4052
let result = [];
4153
let keys = Object.keys(json);
@@ -105,7 +117,7 @@ export default {
105117
return parseBody(jsonStr);
106118
},
107119
108-
getType: function(obj) {
120+
getType: function (obj) {
109121
switch (Object.prototype.toString.call(obj)) {
110122
case "[object Array]":
111123
return "array";
@@ -119,7 +131,7 @@ export default {
119131
}
120132
},
121133
122-
makeJson: function(dataArr) {
134+
makeJson: function (dataArr) {
123135
let revertWithObj = function(data) {
124136
let r = {};
125137
for (let i = 0; i < data.length; ++i) {

src/JsonView.vue

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,15 @@
5858
</span>
5959
</span>
6060

61-
<item-add-form v-if="toAddItem" @confirm="newItem" @cancel="cancelNewItem"></item-add-form>
61+
<item-add-form
62+
v-if="toAddItem"
63+
@confirm="newItem"
64+
@cancel="cancelNewItem"></item-add-form>
6265

63-
<div class="block add-key" @click="addItem" v-if="!toAddItem">
66+
<div
67+
class="block add-key"
68+
@click="addItem"
69+
v-if="!toAddItem">
6470
<i class="icon-plus"></i>
6571
</div>
6672
</div>
@@ -72,15 +78,15 @@ import ItemAddForm from "./ItemAddForm.vue";
7278
export default {
7379
name: "JsonView",
7480
props: { parsedData: {} },
75-
data: function() {
81+
data () {
7682
return {
7783
flowData: [],
7884
toAddItem: false,
7985
hideMyBlock: {}
8086
};
8187
},
8288
83-
created: function() {
89+
created () {
8490
this.flowData = this.parsedData;
8591
},
8692
watch: {

0 commit comments

Comments
 (0)