centaline-data-driven 1.2.80 → 1.2.81

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.
@@ -3,7 +3,6 @@ const paths = {
3
3
  "dynamicD": "./src/centaline/dynamicD/index.js",//日期组件
4
4
  "dynamicGp": "./src/centaline/dynamicGp/index.js",//分组标签组件
5
5
  "dynamicIti": "./src/centaline/dynamicIti/index.js",//数字区域组件
6
- "dynamicLs": "./src/centaline/dynamicLs/index.js",//表单列表组件
7
6
  "dynamicMt": "./src/centaline/dynamicMt/index.js",//多行文本组件
8
7
  "dynamicSo": "./src/centaline/dynamicSo/index.js",//单选下拉菜单
9
8
  "dynamicSos": "./src/centaline/dynamicSos/index.js",//单选搜索下拉菜单
@@ -11,7 +10,6 @@ const paths = {
11
10
  "dynamicT": "./src/centaline/dynamicT/index.js",//文本input组件
12
11
  "dynamicL": "./src/centaline/dynamicL/index.js",//文本label组件
13
12
  "dynamicTags": "./src/centaline/dynamicTags/index.js",//多选搜索下拉菜单组件
14
- "dynamicLabel": "./src/centaline/dynamicLabel/index.js",//标签组件
15
13
  "dynamicForm": "./src/centaline/dynamicForm/index.js",//表单组件
16
14
  "dynamicDrop": "./src/centaline/dynamicDrop/index.js",//快捷下拉输入组件
17
15
  "dynamicSearchList": "./src/centaline/dynamicSearchList/index.js",//查询表单组件
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "centaline-data-driven",
3
- "version": "1.2.80",
3
+ "version": "1.2.81",
4
4
  "description": "ccai",
5
5
  "author": "hjc <3226136347@qq.com>",
6
6
  "private": false,
@@ -248,4 +248,7 @@
248
248
  .max.el-button.el-button--mini{
249
249
  height: 26px;
250
250
  }
251
-
251
+ .ct-text .showLabel label{
252
+ display: inline-block;
253
+ line-height: 27px!important;
254
+ }
@@ -1,7 +1,5 @@
1
1
  import dynamicForm from './src/dynamicForm'
2
2
  import dynamicInput from '../dynamicInput/index'
3
- import dynamicLabel from '../dynamicLabel/index'
4
- import dynamicLs from '../dynamicLs/index'
5
3
  import api from '../api/index'
6
4
  import common from '../common/index'
7
5
  import validate from '../validate/index'
@@ -9,8 +7,6 @@ import validate from '../validate/index'
9
7
  dynamicForm.install = function (Vue) {
10
8
  Vue.component(dynamicForm.name, dynamicForm);
11
9
  Vue.component(dynamicInput.name, dynamicInput);
12
- Vue.component(dynamicLabel.name, dynamicLabel);
13
- Vue.component(dynamicLs.name, dynamicLs);
14
10
 
15
11
  Vue.use(api);
16
12
  Vue.use(common);
@@ -30,6 +30,13 @@
30
30
  <span v-else-if="v.is=='ct-sensitiveeye'">
31
31
  <component v-if ref="Fields" :is="v.is" :vmodel="scope.row[v.id]" :vrowmodel="scope.row" :api="model.OptApi"></component>
32
32
  </span>
33
+ <!--可点击的列-->
34
+ <!-- <span v-else-if="v.routers" :class="'cell'" style="display: flex;">
35
+ <component v-for="(router, routerIndex) in v.routers" :key="routerIndex" :ref="'router'+router.id+scope.$index" :rowData="scope.row" :rowindex="scope.$index"
36
+ v-if="!router.rightField || !scope.row[router.rightField] || scope.row[router.rightField] == 1"
37
+ :is="router.is" :vmodel="router" :api="model.optionApi" @click="rolRouterClickHandler">
38
+ </component>
39
+ </span> -->
33
40
  <ct-span v-else :vmodel="scope.row[v.id]" :rowNum="scope.row.$sourceIndex" ref="FieldsLabel"></ct-span>
34
41
  </template>
35
42
  </el-table-column>
@@ -1,409 +1,41 @@
1
1
  <template>
2
- <div v-loading="loading" class="ct-Layout" v-if="Layout !== null && !loading">
3
- <ct-layoutchildren :ref="'layout'+rowindex" :rowindex="rowindex" :vmodel="Layout" @click="rolRouterClickHandler"></ct-layoutchildren>
4
- </div>
2
+ <el-container :direction="model.orientation" :style="model.styleObject" ref="layoutchildren">
3
+ <component v-for="(item, index) in model.fields" :key="index" :is="item.is" :vmodel="item" :rowindex="rowindex" :forname="forname" :forrowindex="forrowindex" @click="clickHandler"></component>
4
+ </el-container>
5
5
  </template>
6
6
  <script>
7
7
  import dynamicElement from '../../mixins/dynamicElement'
8
+ import dynamicLayoutLabel from './dynamicLayoutLabel.vue';
9
+ import dynamicLayoutLine from './dynamicLayoutLine.vue';
10
+ import dynamicLayoutImage from './dynamicLayoutImage.vue';
8
11
  import dynamicLayoutChildren from './dynamicLayoutChildren.vue';
9
12
  export default {
10
13
  name: 'ct-layout',
11
14
  mixins: [dynamicElement],
12
15
  components: {
16
+ 'ct-layoutlabel': dynamicLayoutLabel,
17
+ 'ct-layoutline': dynamicLayoutLine,
18
+ 'ct-layoutimage': dynamicLayoutImage,
13
19
  'ct-layoutchildren': dynamicLayoutChildren
14
20
  },
15
21
  props: {
16
- api: String,
17
- cellLayout: String,
18
22
  vmodel: Object,
19
23
  rowindex: Number,
20
- actionRouter: Array,
21
- listData: Array,
22
- apiParam: Object
24
+ forname: String,
25
+ forrowindex: String
23
26
  },
24
27
  data() {
25
28
  return {
26
- Layout: []
29
+ forindex: 0
27
30
  };
28
31
  },
29
32
  created() {
30
- this.init();
33
+ this.model = this.loaderObj.CellLayout(this.vmodel);
31
34
  },
32
35
  methods: {
33
- init() {
34
- var self = this;
35
- //初始化
36
- this.loading = true;
37
- this.$nextTick(function () {
38
- if (typeof self.api !== 'undefined') {
39
- self.loaderObj.CellLayout(self.api, self.load, this.apiParam, self.failLoad);
40
- }
41
- else if (typeof self.vmodel !== 'undefined') {
42
- self.load(self.vmodel, self.cellLayout);
43
- }
44
- });
45
- },
46
- failLoad() {
47
- this.$emit('failLoad', this.model);
48
- },
49
- load(data, cellLayout) {
50
- var str = '';
51
- if (cellLayout.indexOf("for=") != -1) {
52
- var cellxmlDOM = this.loadXML(cellLayout);
53
- var listxml = this.getxmlForStr(cellxmlDOM);
54
-
55
- if (typeof listxml !== 'undefined') {
56
- for (var j = 0; j < listxml.attributes.length; j++) {
57
- var attribute = listxml.attributes.item(j);
58
- if (attribute.nodeName.toLowerCase() == "for".toLowerCase()) {
59
- var liststr = "";
60
- var celllist = this.xmlToString(listxml)
61
-
62
- var celllistNew = this.loadXML(celllist);
63
- var newAtt = celllistNew.createAttribute("forrowindex");
64
- newAtt.nodeValue = "{{forrowindex}}";
65
- var x = celllistNew.getElementsByTagName("Layout");
66
- x[0].setAttributeNode(newAtt);
67
- var cellstr = this.xmlToString(celllistNew)
68
- var list = data[attribute.nodeValue];
69
- if (typeof list !== 'undefined') {
70
- for (var i = 0; i < list.length; i++) {
71
- list[i].forrowindex = i;
72
- liststr += cellstr.replace(/\{\{(.+?)\}\}/g, (...args) => {
73
- return this.getValue(list[i], args[1])
74
- });
75
- }
76
- }
77
- cellLayout = cellLayout.replace(/\n/g, '').trim() //去除换行 和头尾空格
78
- let replacer = function (match, p1, p2, p3, offset) {
79
- return p1 + p3
80
- }
81
- cellLayout = cellLayout.replace(/(>)(\s*)(<)/g, replacer) //把 > 和 < 之间的空格去除
82
- cellLayout = cellLayout.replace(/ +/g, ' ')
83
- cellLayout = cellLayout.replace(celllist, liststr)
84
- }
85
- }
86
- }
87
- }
88
- if (typeof data !== 'undefined') {
89
- str = cellLayout.replace(/\{\{(.+?)\}\}/g, (...args) => {
90
- return this.getValue(data, args[1])
91
- });
92
- }
93
- var xmlDOM = this.loadXML(str);
94
- console.log(xmlDOM)
95
- this.Layout = this.xmlToJson(xmlDOM);
96
- this.model = this.loaderObj.CellLayout(this.Layout);
97
- this.loading = false;
98
- },
99
- getValue(data, val) {
100
- return val.split('.').reduce((data, currentVal) => {
101
- var rtn = data[currentVal];
102
- if (rtn.toString().indexOf('"') != -1) {
103
- rtn = rtn.replace(/"/g, "'");
104
- rtn = rtn.replace(/>/g, "&gt;");
105
- rtn = rtn.replace(/</g, "&lt;");
106
- }
107
- return rtn
108
- }, data)
109
- },
110
- loadXML(xmlString) {
111
- xmlString = xmlString.replace(/\n/g, '').trim()
112
- let replacer = function (match, p1, p2, p3, offset) {
113
- return p1 + p3
114
- }
115
- xmlString = xmlString.replace(/(>)(\s*)(<)/g, replacer)
116
- if (document.all) {
117
- var xmlDom = new ActiveXObject("Microsoft.XMLDOM");
118
- xmlDom.loadXML(xmlString)
119
- return xmlDom
120
- }
121
- else {
122
- return new DOMParser().parseFromString(xmlString, "text/xml");
123
- }
124
- },
125
- xmlToString(xmlObj) {
126
- if (document.all) //IE浏览器
127
- {
128
- return xmlObj.xml;
129
- }
130
- else //其他浏览器
131
- {
132
- return (new XMLSerializer()).serializeToString(xmlObj);
133
- }
134
- },
135
- getxmlForStr(xml) {
136
- if (xml.nodeType == 1) { // element
137
- // do attributes
138
- if (xml.attributes.length > 0) {
139
- for (var j = 0; j < xml.attributes.length; j++) {
140
- var attribute = xml.attributes.item(j);
141
- if (attribute.nodeName.toLowerCase() == "for".toLowerCase()) {
142
- return xml
143
- }
144
- }
145
- }
146
- }
147
- if (xml.hasChildNodes()) {
148
- for (var i = 0; i < xml.childNodes.length; i++) {
149
- var item = xml.childNodes.item(i);
150
- var result = this.getxmlForStr(item);
151
- if (result) {
152
- return result;
153
- }
154
- }
155
- }
156
- },
157
-
158
- xmlToJson(xml) {
159
- var self = this;
160
- // Create the return object
161
- var obj = {};
162
- if (xml.nodeName.toLowerCase() == "Layout".toLowerCase() || xml.nodeName.toLowerCase() == "StackLayout".toLowerCase()) {
163
- obj["is"] = "ct-layoutchildren";
164
- }
165
- else if (xml.nodeName.toLowerCase() == "Label".toLowerCase()) {
166
- obj["is"] = "ct-layoutlabel";
167
- }
168
- else if (xml.nodeName.toLowerCase() == "Line".toLowerCase()) {
169
- obj["is"] = "ct-layoutline";
170
- }
171
- else if (xml.nodeName.toLowerCase() == "Image".toLowerCase()) {
172
- obj["is"] = "ct-layoutimage";
173
- }
174
- if (xml.nodeType == 1) { // element
175
- // do attributes
176
- if (xml.attributes.length > 0) {
177
- for (var j = 0; j < xml.attributes.length; j++) {
178
- var attribute = xml.attributes.item(j);
179
- obj[attribute.nodeName] = attribute.nodeValue;
180
- if (attribute.nodeName.toLowerCase() == "for".toLowerCase()) {
181
- obj["is"] = "ct-layoutchildrenfor";
182
- }
183
- if (attribute.nodeName.toLowerCase() == "routerKey".toLowerCase()) {
184
- var actionRouter = self.actionRouter;
185
- let field = actionRouter.find(b => {
186
- return b.id === attribute.nodeValue;
187
- });
188
- if (typeof field !== "undefined") {
189
- if (!field.rightField || self.vmodel[field.rightField] == 1) {
190
- obj["rightRouter"] = true;
191
- }
192
-
193
- }
194
- }
195
- }
196
- }
197
- }
198
-
199
- // do children
200
- if (xml.hasChildNodes()) {
201
- for (var i = 0; i < xml.childNodes.length; i++) {
202
- var item = xml.childNodes.item(i);
203
- if (typeof (obj["fields"]) == "undefined") {
204
- obj["fields"] = [];
205
- obj["fields"].push(this.xmlToJson(item));
206
- } else {
207
- if (typeof (obj["fields"].push) == "undefined") {
208
- var old = obj["fields"];
209
- obj["fields"] = [];
210
- obj["fields"].push(old);
211
- }
212
- obj["fields"].push(this.xmlToJson(item));
213
- }
214
- }
215
- }
216
- return obj;
217
- },
218
- rolRouterClickHandler(routerKey, rowindex, forname, forrowindex) {
219
- var self = this;
220
- var submitData = {};
221
- var rowData = self.vmodel;
222
- var actionRouter = self.actionRouter;
223
- let field = actionRouter.find(b => {
224
- return b.id === routerKey;
225
- });
226
- if (typeof forname !== "undefined") {
227
- field.submitListField.forEach((k) => {
228
- submitData[k] = rowData[forname][forrowindex][k];
229
- });
230
- }
231
- else {
232
- field.submitListField.forEach((k) => {
233
- submitData[k] = rowData[k];
234
- });
235
- }
236
- let action = field.action;
237
- if (field.actionField) {
238
- action = rowData[field.actionField];
239
- }
240
- this.routerClickHandler(field, submitData, action, rowindex,forname, forrowindex);
241
- },
242
- routerClickHandler(field, submitData, action, rowindex, forname, forrowindex) {
243
- let self = this;
244
- action = action || field.action;
245
-
246
- var clickAcion = function () {
247
- //若不是客户端方法,则直接访问接口
248
- if (!field.isClientFuntion) {
249
- // 外部框架tab页打开
250
- if (field.isFormPageInTab) {
251
- submitData = field.getActionPara(submitData).para;
252
- if (field.pageStyle) {
253
- submitData.pageStyle = field.pageStyle;
254
- }
255
- self.$common.getDataDrivenOpts().handler.openTab(action, submitData, field.pageTitle, self.model, field.dialogWidth);
256
- }
257
- else if (field.isSearchPageInTab) {// 外部框架tab页打开
258
- submitData = field.getActionPara(submitData).para;
259
- self.$common.getDataDrivenOpts().handler.openTabSearch(field, submitData);
260
- }
261
- else if (field.isBrowserNewTab) {// 浏览器打开
262
- submitData = field.getActionPara(submitData).para;
263
- let query = self.$common.objectToQueryStr(submitData);
264
- window.open(action + query, "_blank");
265
- }
266
- else {
267
- //self.operationLoading = true;
268
-
269
- //Form
270
- if (field.isOpenForm) {
271
- var dialogOption = {
272
- title: field.pageTitle,
273
- pane: self.$common.getParentPane(self),
274
- content: [{
275
- component: field.navToNewPageName,
276
- attrs: {
277
- //source: data.content,
278
- api: action,
279
- apiParam: field.getActionPara(submitData).para,
280
- showTitle: false,
281
- width: field.dialogWidth + 'px',
282
- height: field.dialogHeight + 'px'
283
- },
284
- on: {
285
- submit(ev) {
286
- if (!field.flagFreshCurrentRow && !field.flagAddRowAfterAction) {
287
- self.model.doAction(ev);
288
- }
289
- self.$forceUpdate();
290
- self.$refs.footer.$forceUpdate();
291
- self.$common.closeDialog(dialogOption.dialog);
292
- self.updateCurrentRow(field, ev);
293
- },
294
- refreshParent() {
295
- self.getPage(1);
296
- self.$common.closeDialog(dialogOption.dialog);
297
- },
298
- closeDialog() {
299
- self.updateCurrentRow(field);
300
- }
301
- }
302
- }]
303
- };
304
- self.$common.openDialog(dialogOption);
305
- }
306
- //SearchList
307
- else if (field.isOpenList) {
308
- var dialogOption = {
309
- title: field.pageTitle,
310
- pane: self.$common.getParentPane(self),
311
- content: [{
312
- component: field.navToNewPageName,
313
- attrs: {
314
- searchConditionApi: field.actionForSearchLayout,
315
- searchDataApi: field.actionForSearch,
316
- apiParam: submitData,
317
- width: field.dialogWidth + 'px',
318
- height: field.dialogHeight + 'px'
319
- },
320
- on: {
321
- refreshParent() {
322
- self.getPage(1);
323
- self.$common.closeDialog(dialogOption.dialog);
324
- },
325
- closeDialog() {
326
- self.updateCurrentRow(field);
327
- }
328
- }
329
- }]
330
- };
331
- self.$common.openDialog(dialogOption);
332
- }
333
- //Tabs
334
- else if (field.isOpenTabs) {
335
- var dialogOption = {
336
- title: field.pageTitle,
337
- pane: self.$common.getParentPane(self),
338
- content: [{
339
- component: field.navToNewPageName,
340
- attrs: {
341
- searchConditionApi: field.actionForSearchLayout,
342
- searchDataApi: field.actionForSearch,
343
- apiParam: submitData,
344
- width: field.dialogWidth + 'px',
345
- height: field.dialogHeight + 'px'
346
- },
347
- on: {
348
- }
349
- }]
350
- };
351
- self.$common.openDialog(dialogOption);
352
- }
353
- else {
354
- field.doAction(submitData, (data) => {
355
- self.model.doAction(data, field);
356
- if (field.actionType === 19) {
357
- self.callTelClick(self.$refs['layout' + rowindex].$refs.layoutchildren, data, forname, forrowindex)
358
- }
359
- })
360
- }
361
- }
362
- }
363
- //执行客户端脚本
364
- else {
365
- // let parm={submitData:submitData,field:field}
366
- // self.$common.excuteFunStr.call(self.model.scripts, field.action,parm);
367
- let title = field.pageTitle == undefined ? field.label : field.pageTitle;
368
- submitData.actionType = field.actionType;
369
- var fun = self.$common.getDataDrivenOpts().handler[action];
370
- fun(submitData, title, self.model);
371
- // var fun = self.model.scripts.formData[action];
372
- // fun(submitData,field);
373
- }
374
- }
375
-
376
- if (field.alert) {
377
- self.$common.confirm(field.alertMsg, field.alertCaption, {
378
- confirmButtonText: field.alertOKButtonText,
379
- cancelButtonText: field.alertCancelButtonText,
380
- //type: 'warning'
381
- center: field.alertCenter
382
- }).then(() => {
383
- clickAcion();
384
- }).catch(() => {
385
- });
386
- }
387
- else {
388
- clickAcion();
389
- }
390
- },
391
- callTelClick(VueCom, data, forname, forrowindex) {
392
- if (typeof VueCom.$refs['router' + forname + forrowindex] !== "undefined") {
393
- VueCom.callTelClick(data);
394
- return true;
395
- }
396
- if (VueCom.$children.length>0) {
397
- for (var i = 0; i < VueCom.$children.length; i++) {
398
- var item = VueCom.$children[i];
399
- var result = this.callTelClick(item, data,forname, forrowindex);
400
- if (result) {
401
- return result;
402
- }
403
- }
404
- }
405
- },
406
-
36
+ clickHandler(routerKey, rowindex, forname, forrowindex) {
37
+ this.$emit('click', routerKey, rowindex, forname, forrowindex);
38
+ }
407
39
  },
408
40
  mounted() {
409
41
 
@@ -411,7 +43,4 @@
411
43
  }
412
44
  </script>
413
45
  <style>
414
- .ct-Layout {
415
- font-size: 12px;
416
- }
417
46
  </style>
@@ -1,32 +1,24 @@
1
1
  <template>
2
- <el-container :direction="model.orientation" :style="model.styleObject" ref="layoutchildren">
3
- <component v-for="(item, index) in model.fields" :key="index" :is="item.is" :vmodel="item" :rowindex="rowindex" :forname="forname" :forrowindex="forrowindex" @click="clickHandler"></component>
2
+ <el-container :direction="model.orientation" :style="model.styleObject">
3
+ <ct-layout v-for="(item, index) in model.fields" :key="index" :rowindex="rowindex" :forrowindex="model.forrowindex" :vmodel="item" :forname="model.forname" @click="clickHandler"></ct-layout>
4
4
  </el-container>
5
5
  </template>
6
6
  <script>
7
7
  import dynamicElement from '../../mixins/dynamicElement'
8
- import dynamicLayoutLabel from './dynamicLayoutLabel.vue';
9
- import dynamicLayoutLine from './dynamicLayoutLine.vue';
10
- import dynamicLayoutImage from './dynamicLayoutImage.vue';
11
- import dynamicLayoutChildrenFor from './dynamicLayoutChildrenFor.vue';
12
8
  export default {
13
9
  name: 'ct-layoutchildren',
14
10
  mixins: [dynamicElement],
15
11
  components: {
16
- 'ct-layoutlabel': dynamicLayoutLabel,
17
- 'ct-layoutline': dynamicLayoutLine,
18
- 'ct-layoutimage': dynamicLayoutImage,
19
- 'ct-layoutchildrenfor': dynamicLayoutChildrenFor
12
+ 'ct-layout': () => import('./dynamicLayout.vue'),
20
13
  },
21
14
  props: {
22
15
  vmodel: Object,
23
- rowindex: Number,
24
- forname: String,
25
- forrowindex: String
16
+ rowindex: Number
26
17
  },
27
18
  data() {
28
19
  return {
29
- forindex:0
20
+ forname: '',
21
+ forwindex: 0
30
22
  };
31
23
  },
32
24
  created() {
@@ -43,5 +35,4 @@
43
35
  }
44
36
  </script>
45
37
  <style>
46
-
47
38
  </style>
@@ -1,18 +1,17 @@
1
1
  <template>
2
2
  <div v-if="model.routerKey">
3
- <div :ref="'router'+forname+forrowindex" :style="model.styleObject">
3
+ <div v-if="model.rightRouter&&model.value!=''" :ref="'router'+forname+forrowindex" :style="model.styleObject">
4
4
  <el-popover class="Stats-popover" :popper-class="'el-popoverCallTel'" :placement="option.placement?option.placement:'left'"
5
5
  v-model="visible" :trigger="option.trigger?option.trigger:''">
6
6
  <div style="border-bottom:none">
7
7
  <div style="color: #388cd3;text-align: center;">{{message}}</div>
8
8
  <img v-show="qrCode" :src="qrCode" style="margin-top: 5px;" :style="{'width':width+'px','height':height+'px'}" />
9
9
  </div>
10
- <el-image :src="tellImgUrl?tellImgUrl:model.value"
11
- fit="fit" slot="reference" @click="clickHandler($event)" style="cursor:pointer;"></el-image>
10
+ <img :src="tellImgUrl?tellImgUrl:model.value" slot="reference" @click="clickHandler($event)" style="cursor:pointer;width:100%" />
12
11
  </el-popover>
13
12
  </div>
14
13
  </div>
15
- <div v-else :style="model.styleObject">
14
+ <div v-else-if="model.value!=''" :style="model.styleObject">
16
15
  <el-image :src="model.value"
17
16
  fit="fit"></el-image>
18
17
  </div>
@@ -1,12 +1,12 @@
1
1
  <template>
2
2
  <div v-if="model.routerKey">
3
- <div :style="model.styleObject">
3
+ <div v-if="model.rightRouter&&model.value!=''" :style="model.styleObject">
4
4
  <a href="javascript:void(0);" @click="clickHandler($event)" class="ct-tablecurrencyItem">
5
5
  {{model.value}}
6
6
  </a>
7
7
  </div>
8
8
  </div>
9
- <div v-else :style="model.styleObject" v-html="model.value">
9
+ <div v-else-if="model.value!=''" :style="model.styleObject" v-html="model.value">
10
10
  </div>
11
11
  </template>
12
12
 
@@ -17,7 +17,9 @@
17
17
  mixins: [dynamicElement],
18
18
  props: {
19
19
  vmodel: Object,
20
- rowindex: Number
20
+ rowindex: Number,
21
+ forname: String,
22
+ forrowindex: String
21
23
  },
22
24
  data() {
23
25
  return {
@@ -29,7 +31,7 @@
29
31
 
30
32
  methods: {
31
33
  clickHandler(ev) {
32
- this.$emit('click', this.model.routerKey, this.rowindex);
34
+ this.$emit('click', this.model.routerKey, this.rowindex, this.forname, this.forrowindex);
33
35
  }
34
36
  },
35
37
  computed: {
@@ -9,7 +9,9 @@
9
9
  mixins: [dynamicElement],
10
10
  props: {
11
11
  vmodel: Object,
12
- rowindex: Number
12
+ rowindex: Number,
13
+ forname: String,
14
+ forrowindex: String
13
15
  },
14
16
  data() {
15
17
  return {