tianheng-ui 0.0.43 → 0.0.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tianheng-ui",
3
3
  "description": "A Vue.js project",
4
- "version": "0.0.43",
4
+ "version": "0.0.44",
5
5
  "author": "shu lang <403732931@qq.com>",
6
6
  "license": "MIT",
7
7
  "private": false,
@@ -29,6 +29,7 @@
29
29
  "not ie <= 8"
30
30
  ],
31
31
  "devDependencies": {
32
+ "@types/ace": "0.0.42",
32
33
  "babel-core": "^6.26.0",
33
34
  "babel-loader": "^7.1.2",
34
35
  "babel-preset-env": "^1.6.0",
@@ -465,16 +465,16 @@ export default {
465
465
  this.configTab = value;
466
466
  },
467
467
  handleMoveEnd(evt) {
468
- console.log("end", evt);
468
+ // console.log("end", evt);
469
469
  },
470
470
  handleMoveStart({ oldIndex }) {
471
- console.log("start", oldIndex, this.basicComponents);
471
+ // console.log("start", oldIndex, this.basicComponents);
472
472
  },
473
473
  handleMove() {
474
474
  return true;
475
475
  },
476
476
  handlePreview() {
477
- console.log(this.widgetForm);
477
+ // console.log(this.widgetForm);
478
478
  this.previewVisible = true;
479
479
  },
480
480
  handleTest() {
@@ -502,7 +502,7 @@ export default {
502
502
  if (!this.jsonClipboard) {
503
503
  this.jsonClipboard = new Clipboard(".json-btn");
504
504
  this.jsonClipboard.on("success", e => {
505
- this.$message.success('复制成功');
505
+ this.$message.success("复制成功");
506
506
  });
507
507
  }
508
508
  this.jsonCopyValue = JSON.stringify(this.widgetForm);
@@ -566,18 +566,18 @@ export default {
566
566
  }
567
567
  },
568
568
  handleInput(val) {
569
- console.log(val);
569
+ // console.log(val);
570
570
  this.blank = val;
571
571
  },
572
572
  handleDataChange(field, value, data) {
573
- console.log(field, value, data);
573
+ // console.log(field, value, data);
574
574
  }
575
575
  },
576
576
  watch: {
577
577
  widgetForm: {
578
578
  deep: true,
579
579
  handler: function(val) {
580
- console.log(this.$refs.widgetForm);
580
+ // console.log(this.$refs.widgetForm);
581
581
  }
582
582
  },
583
583
  $lang: function(val) {
@@ -1,62 +1,103 @@
1
1
  <template>
2
2
  <div class="widget-form-container">
3
- <div v-if="data.list.length == 0" class="form-empty">从左侧拖拽来添加字段</div>
4
- <el-form :size="data.config.size" label-suffix=":" :label-position="data.config.labelPosition" :label-width="data.config.labelWidth + 'px'">
5
-
6
- <draggable class=""
7
- v-model="data.list"
8
- v-bind="{group:'people', ghostClass: 'ghost',animation: 200, handle: '.drag-widget'}"
3
+ <div v-if="data.list.length == 0" class="form-empty">
4
+ 从左侧拖拽来添加字段
5
+ </div>
6
+ <el-form
7
+ :size="data.config.size"
8
+ label-suffix=":"
9
+ :label-position="data.config.labelPosition"
10
+ :label-width="data.config.labelWidth + 'px'"
11
+ >
12
+ <draggable
13
+ class=""
14
+ v-model="data.list"
15
+ v-bind="{
16
+ group: 'people',
17
+ ghostClass: 'ghost',
18
+ animation: 200,
19
+ handle: '.drag-widget'
20
+ }"
9
21
  @end="handleMoveEnd"
10
22
  @add="handleWidgetAdd"
11
23
  >
12
-
13
24
  <transition-group name="fade" tag="div" class="widget-form-list">
14
25
  <template v-for="(element, index) in data.list">
15
26
  <template v-if="element.type == 'grid'">
16
- <el-row class="widget-col widget-view" v-if="element && element.key" :key="element.key"
17
- type="flex"
18
- :class="{active: selectWidget.key == element.key}"
19
- :gutter="element.options.gutter ? element.options.gutter : 0"
20
- :justify="element.options.justify"
21
- :align="element.options.align"
22
- @click.native="handleSelectWidget(index)">
23
- <el-col v-for="(col, colIndex) in element.columns" :key="colIndex" :span="col.span ? col.span : 0">
24
-
25
- <draggable
26
- v-model="col.list"
27
- :no-transition-on-drag="true"
28
- v-bind="{group:'people', ghostClass: 'ghost',animation: 200, handle: '.drag-widget'}"
29
- @end="handleMoveEnd"
30
- @add="handleWidgetColAdd($event, element, colIndex)"
31
- >
32
- <transition-group name="fade" tag="div" class="widget-col-list">
33
- <template v-for="(el, i) in col.list">
34
- <widget-form-item
35
- :key="el.key"
36
- v-if="el.key"
37
- :element="el"
38
- :select.sync="selectWidget"
39
- :index="i"
40
- :data="col">
41
- </widget-form-item>
42
- </template>
43
-
44
- </transition-group>
45
-
46
- </draggable>
47
- </el-col>
48
- <div class="widget-view-action widget-col-action" v-if="selectWidget.key == element.key">
49
-
50
- <i class="iconfont icon-trash" @click.stop="handleWidgetDelete(index)"></i>
51
- </div>
52
-
53
- <div class="widget-view-drag widget-col-drag" v-if="selectWidget.key == element.key">
54
- <i class="iconfont icon-drag drag-widget"></i>
55
- </div>
56
- </el-row>
27
+ <el-row
28
+ class="widget-col widget-view"
29
+ v-if="element && element.key"
30
+ :key="element.key"
31
+ type="flex"
32
+ :class="{ active: selectWidget.key == element.key }"
33
+ :gutter="element.options.gutter ? element.options.gutter : 0"
34
+ :justify="element.options.justify"
35
+ :align="element.options.align"
36
+ @click.native="handleSelectWidget(index)"
37
+ >
38
+ <el-col
39
+ v-for="(col, colIndex) in element.columns"
40
+ :key="colIndex"
41
+ :span="col.span ? col.span : 0"
42
+ >
43
+ <draggable
44
+ v-model="col.list"
45
+ :no-transition-on-drag="true"
46
+ v-bind="{
47
+ group: 'people',
48
+ ghostClass: 'ghost',
49
+ animation: 200,
50
+ handle: '.drag-widget'
51
+ }"
52
+ @end="handleMoveEnd"
53
+ @add="handleWidgetColAdd($event, element, colIndex)"
54
+ >
55
+ <transition-group
56
+ name="fade"
57
+ tag="div"
58
+ class="widget-col-list"
59
+ >
60
+ <template v-for="(el, i) in col.list">
61
+ <widget-form-item
62
+ :key="el.key"
63
+ v-if="el.key"
64
+ :element="el"
65
+ :select.sync="selectWidget"
66
+ :index="i"
67
+ :data="col"
68
+ >
69
+ </widget-form-item>
70
+ </template>
71
+ </transition-group>
72
+ </draggable>
73
+ </el-col>
74
+ <div
75
+ class="widget-view-action widget-col-action"
76
+ v-if="selectWidget.key == element.key"
77
+ >
78
+ <i
79
+ class="iconfont icon-trash"
80
+ @click.stop="handleWidgetDelete(index)"
81
+ ></i>
82
+ </div>
83
+
84
+ <div
85
+ class="widget-view-drag widget-col-drag"
86
+ v-if="selectWidget.key == element.key"
87
+ >
88
+ <i class="iconfont icon-drag drag-widget"></i>
89
+ </div>
90
+ </el-row>
57
91
  </template>
58
92
  <template v-else>
59
- <widget-form-item v-if="element && element.key" :key="element.key" :element="element" :select.sync="selectWidget" :index="index" :data="data"></widget-form-item>
93
+ <widget-form-item
94
+ v-if="element && element.key"
95
+ :key="element.key"
96
+ :element="element"
97
+ :select.sync="selectWidget"
98
+ :index="index"
99
+ :data="data"
100
+ ></widget-form-item>
60
101
  </template>
61
102
  </template>
62
103
  </transition-group>
@@ -66,59 +107,58 @@
66
107
  </template>
67
108
 
68
109
  <script>
69
- import Draggable from 'vuedraggable'
70
- import WidgetFormItem from './WidgetFormItem'
110
+ import Draggable from "vuedraggable";
111
+ import WidgetFormItem from "./WidgetFormItem";
71
112
 
72
113
  export default {
73
114
  components: {
74
115
  Draggable,
75
116
  WidgetFormItem
76
117
  },
77
- props: ['data', 'select'],
78
- data () {
118
+ props: ["data", "select"],
119
+ data() {
79
120
  return {
80
121
  selectWidget: this.select
81
- }
122
+ };
82
123
  },
83
- mounted () {
84
- document.body.ondrop = function (event) {
85
- let isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1
124
+ mounted() {
125
+ document.body.ondrop = function(event) {
126
+ let isFirefox = navigator.userAgent.toLowerCase().indexOf("firefox") > -1;
86
127
  if (isFirefox) {
87
- event.preventDefault()
88
- event.stopPropagation()
128
+ event.preventDefault();
129
+ event.stopPropagation();
89
130
  }
90
- }
131
+ };
91
132
  },
92
133
  methods: {
93
- handleMoveEnd ({newIndex, oldIndex}) {
94
- console.log('index', newIndex, oldIndex)
95
- },
96
- handleSelectWidget (index) {
97
- console.log(index, '#####')
98
- this.selectWidget = this.data.list[index]
134
+ handleMoveEnd({ newIndex, oldIndex }) {},
135
+ handleSelectWidget(index) {
136
+ this.selectWidget = this.data.list[index];
99
137
  },
100
- handleWidgetAdd (evt) {
101
- console.log('add', evt)
102
- console.log('end', evt)
103
- const newIndex = evt.newIndex
104
- const to = evt.to
105
- console.log(to)
106
-
138
+ handleWidgetAdd(evt) {
139
+ const newIndex = evt.newIndex;
140
+ const to = evt.to;
141
+
107
142
  //为拖拽到容器的元素添加唯一 key
108
- const key = Date.parse(new Date()) + '_' + Math.ceil(Math.random() * 99999)
143
+ const key =
144
+ Date.parse(new Date()) + "_" + Math.ceil(Math.random() * 99999);
109
145
  this.$set(this.data.list, newIndex, {
110
146
  ...this.data.list[newIndex],
111
147
  options: {
112
148
  ...this.data.list[newIndex].options,
113
- remoteFunc: 'func_' + key
149
+ remoteFunc: "func_" + key
114
150
  },
115
151
  key,
116
152
  // 绑定键值
117
- model: this.data.list[newIndex].type + '_' + key,
153
+ model: this.data.list[newIndex].type + "_" + key,
118
154
  rules: []
119
- })
155
+ });
120
156
 
121
- if (this.data.list[newIndex].type === 'radio' || this.data.list[newIndex].type === 'checkbox' || this.data.list[newIndex].type === 'select') {
157
+ if (
158
+ this.data.list[newIndex].type === "radio" ||
159
+ this.data.list[newIndex].type === "checkbox" ||
160
+ this.data.list[newIndex].type === "select"
161
+ ) {
122
162
  this.$set(this.data.list, newIndex, {
123
163
  ...this.data.list[newIndex],
124
164
  options: {
@@ -127,91 +167,102 @@ export default {
127
167
  ...item
128
168
  }))
129
169
  }
130
- })
170
+ });
131
171
  }
132
172
 
133
- if (this.data.list[newIndex].type === 'grid') {
173
+ if (this.data.list[newIndex].type === "grid") {
134
174
  this.$set(this.data.list, newIndex, {
135
175
  ...this.data.list[newIndex],
136
- columns: this.data.list[newIndex].columns.map(item => ({...item}))
137
- })
176
+ columns: this.data.list[newIndex].columns.map(item => ({ ...item }))
177
+ });
138
178
  }
139
179
 
140
- this.selectWidget = this.data.list[newIndex]
180
+ this.selectWidget = this.data.list[newIndex];
141
181
  },
142
- handleWidgetColAdd ($event, row, colIndex) {
143
- console.log('coladd', $event, row, colIndex)
144
- const newIndex = $event.newIndex
145
- const oldIndex = $event.oldIndex
146
- const item = $event.item
182
+ handleWidgetColAdd($event, row, colIndex) {
183
+ console.log("coladd", $event, row, colIndex);
184
+ const newIndex = $event.newIndex;
185
+ const oldIndex = $event.oldIndex;
186
+ const item = $event.item;
147
187
 
148
188
  // 防止布局元素的嵌套拖拽
149
- if (item.className.indexOf('data-grid') >= 0) {
150
-
189
+ if (item.className.indexOf("data-grid") >= 0) {
151
190
  // 如果是列表中拖拽的元素需要还原到原来位置
152
- item.tagName === 'DIV' && this.data.list.splice(oldIndex, 0, row.columns[colIndex].list[newIndex])
191
+ item.tagName === "DIV" &&
192
+ this.data.list.splice(
193
+ oldIndex,
194
+ 0,
195
+ row.columns[colIndex].list[newIndex]
196
+ );
153
197
 
154
- row.columns[colIndex].list.splice(newIndex, 1)
198
+ row.columns[colIndex].list.splice(newIndex, 1);
155
199
 
156
- return false
200
+ return false;
157
201
  }
158
202
 
159
- console.log('from', item)
203
+ console.log("from", item);
160
204
 
161
- const key = Date.parse(new Date()) + '_' + Math.ceil(Math.random() * 99999)
205
+ const key =
206
+ Date.parse(new Date()) + "_" + Math.ceil(Math.random() * 99999);
162
207
 
163
208
  this.$set(row.columns[colIndex].list, newIndex, {
164
209
  ...row.columns[colIndex].list[newIndex],
165
210
  options: {
166
211
  ...row.columns[colIndex].list[newIndex].options,
167
- remoteFunc: 'func_' + key
212
+ remoteFunc: "func_" + key
168
213
  },
169
214
  key,
170
215
  // 绑定键值
171
- model: row.columns[colIndex].list[newIndex].type + '_' + key,
216
+ model: row.columns[colIndex].list[newIndex].type + "_" + key,
172
217
  rules: []
173
- })
218
+ });
174
219
 
175
- if (row.columns[colIndex].list[newIndex].type === 'radio' || row.columns[colIndex].list[newIndex].type === 'checkbox' || row.columns[colIndex].list[newIndex].type === 'select') {
220
+ if (
221
+ row.columns[colIndex].list[newIndex].type === "radio" ||
222
+ row.columns[colIndex].list[newIndex].type === "checkbox" ||
223
+ row.columns[colIndex].list[newIndex].type === "select"
224
+ ) {
176
225
  this.$set(row.columns[colIndex].list, newIndex, {
177
226
  ...row.columns[colIndex].list[newIndex],
178
227
  options: {
179
228
  ...row.columns[colIndex].list[newIndex].options,
180
- options: row.columns[colIndex].list[newIndex].options.options.map(item => ({
181
- ...item
182
- }))
229
+ options: row.columns[colIndex].list[newIndex].options.options.map(
230
+ item => ({
231
+ ...item
232
+ })
233
+ )
183
234
  }
184
- })
235
+ });
185
236
  }
186
237
 
187
- this.selectWidget = row.columns[colIndex].list[newIndex]
238
+ this.selectWidget = row.columns[colIndex].list[newIndex];
188
239
  },
189
- handleWidgetDelete (index) {
240
+ handleWidgetDelete(index) {
190
241
  if (this.data.list.length - 1 === index) {
191
242
  if (index === 0) {
192
- this.selectWidget = {}
243
+ this.selectWidget = {};
193
244
  } else {
194
- this.selectWidget = this.data.list[index - 1]
245
+ this.selectWidget = this.data.list[index - 1];
195
246
  }
196
247
  } else {
197
- this.selectWidget = this.data.list[index + 1]
248
+ this.selectWidget = this.data.list[index + 1];
198
249
  }
199
250
 
200
251
  this.$nextTick(() => {
201
- this.data.list.splice(index, 1)
202
- })
203
- },
252
+ this.data.list.splice(index, 1);
253
+ });
254
+ }
204
255
  },
205
256
  watch: {
206
- select (val) {
207
- this.selectWidget = val
257
+ select(val) {
258
+ this.selectWidget = val;
208
259
  },
209
260
  selectWidget: {
210
- handler (val) {
211
- this.$emit('update:select', val)
261
+ handler(val) {
262
+ this.$emit("update:select", val);
212
263
  },
213
264
  deep: true
214
265
  }
215
266
  }
216
- }
267
+ };
217
268
  </script>