centaline-data-driven 1.3.14 → 1.3.15

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/README.md CHANGED
@@ -73,6 +73,15 @@ Vue.use(centaline, {
73
73
  */
74
74
  getValueByFieldName(id, attrKey)
75
75
 
76
+ /**
77
+ * @method 表单列表弹层编辑时,弹层formData添加获取父表单数据方法
78
+ * @param {string} id 指定Field的fieldName1
79
+ * @param {string} attrKey 指定Field的属性attrKey
80
+ * @desc 获取指定Field的指定Field的值
81
+ * @returns {string} 指定Field的指定Field的值
82
+ */
83
+ getValueByFieldNameFromParent(id, attrKey)
84
+
76
85
  /**
77
86
  * @method
78
87
  * @param {string} id 指定Field的fieldName1
@@ -103,6 +112,18 @@ getListCount(tableName)
103
112
  */
104
113
  getListFieldValue(tableName, rowNum, fiedlId, attrName, defaultValue)
105
114
 
115
+ /**
116
+ * @method 表单列表弹层编辑时,弹层formData添加获取父表单数据方法
117
+ * @param {String} tableName 表fieldName1 默认当前表
118
+ * @param {Number} rowNum 行号 默认当前行号(注意 这里第0行是列头)
119
+ * @param {String} fiedlId 列fieldName1 默认当前列fieldName1
120
+ * @param {String} attrName 需要获取attr,如code1,code2 默认code1
121
+ * @param {String} defaultValue 默认值,若该行被删除时,则直接返回这个值,可空
122
+ * @desc 获取指定列表中的指定Field的指定属性值
123
+ * @returns {String} 指定列表中的指定Field的指定属性值
124
+ */
125
+ getListFieldValueFromParent(tableName, rowNum, fiedlId, attrName, defaultValue)
126
+
106
127
  /**
107
128
  * @method
108
129
  * @param {String} value 设置的值
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "centaline-data-driven",
3
- "version": "1.3.14",
3
+ "version": "1.3.15",
4
4
  "description": "ccai",
5
5
  "author": "hjc <3226136347@qq.com>",
6
6
  "private": false,
package/src/Form.vue CHANGED
@@ -2,7 +2,7 @@
2
2
  <div id="app-form" class="data-driven" style="width:100%;height:100%;overflow:auto">
3
3
  <!-- <ct-form :api="'/PropertyRET/getLayoutOfNew'" :apiParam="apiParam"></ct-form> -->
4
4
  <!-- <ct-form :source="formdata.content" :apiParam="apiParam"></ct-form> -->
5
- <ct-form :api="'/api/third-dept-tran/transaction/detail'" :apiParam="apiParam"></ct-form>
5
+ <ct-form :api="'/salemanage/adjust/point/readDetail'" :apiParam="apiParam"></ct-form>
6
6
  <!--<ct-form :api="'api/Form/formdata'"></ct-form>-->
7
7
  <ct-dialog-list></ct-dialog-list>
8
8
  </div>
@@ -14,11 +14,7 @@
14
14
  data() {
15
15
  return {
16
16
  apiParam:{
17
- actionType: 3,
18
- originalTraId: "1530076554013306882",
19
- pageOnly: true,
20
- pageStyle: 2,
21
- pageTitle: "成交报告",
17
+ actionType: 2,
22
18
  }
23
19
  }
24
20
  },
@@ -24,7 +24,7 @@
24
24
  v-for="(item, index) in collapse" v-if="item.show !== false" :key="index">
25
25
  <el-row>
26
26
  <el-col v-for="(col, index) in collapseFieldsRow[index + 1]" :key="index" :span="col.colspan" v-if="col.show !== false" style="padding:5px">
27
- <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" v-bind="col.bindPara" :fileData="getFileData(col)"
27
+ <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model" v-bind="col.bindPara" :fileData="getFileData(col)"
28
28
  @click="fieldClickHandler(col,$event)" @change="changeHandler(col,$event)" @enter="enterHandler(col,$event)"
29
29
  @input="inputHandler(col,$event)" @importComplete="importComplete"
30
30
  @popupSearchList="popupSearchListHandler"
@@ -43,7 +43,7 @@
43
43
  </template>
44
44
  <el-row>
45
45
  <el-col v-for="(col, index) in collapseFieldsRow[index + 1]" :key="index" :span="col.colspan" v-if="col.show !== false" style="padding:5px">
46
- <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'"
46
+ <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model" v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'"
47
47
  @click="fieldClickHandler(col,$event)" @change="changeHandler(col,$event)" @enter="enterHandler(col,$event)"
48
48
  @input="inputHandler(col,$event)" @importComplete="importComplete"
49
49
  @popupSearchList="popupSearchListHandler"
@@ -681,7 +681,7 @@
681
681
  }
682
682
  }
683
683
  return submitData;
684
- },
684
+ },
685
685
  }
686
686
  }
687
687
  </script>
@@ -94,7 +94,8 @@
94
94
  },
95
95
  props: {
96
96
  vmodel: Object,
97
- api: String
97
+ api: String,
98
+ parentModel: Object,
98
99
  },
99
100
  data() {
100
101
  return {
@@ -107,6 +108,7 @@
107
108
  let self = this;
108
109
  this.model = this.vmodel;
109
110
  this.model.OptApi = this.api;
111
+ this.model.$self=self;
110
112
 
111
113
  this.$nextTick(function () {
112
114
  self.model.refField = this.$refs.Fields;
@@ -213,6 +213,12 @@ const Form = function (source, callBack, apiParam, failCallBack, isFormList) {
213
213
  return rtn1.source[attrKey];
214
214
  }
215
215
  },
216
+ getValueByFieldNameFromParent(id, attrKey) {
217
+ if(this.form && this.form.self && this.form.self.$parent){
218
+ return this.form.self.$parent.vmodel.content[0].on.getValueByFieldName(id, attrKey);
219
+ }
220
+ return null;
221
+ },
216
222
  //设置Field的属性attrKey的值
217
223
  setValueByFieldName(id, attrKey, attrValue) {
218
224
  attrKey = this.common.initialsToLowerCase(attrKey);
@@ -228,6 +234,12 @@ const Form = function (source, callBack, apiParam, failCallBack, isFormList) {
228
234
  }
229
235
  }
230
236
  },
237
+ setValueByFieldNameFromParent(id, attrKey, attrValue) {
238
+ if(this.form && this.form.self && this.form.self.$parent){
239
+ return this.form.self.$parent.vmodel.content[0].on.setValueByFieldName(id, attrKey, attrValue);
240
+ }
241
+ return null;
242
+ },
231
243
  //设置Field的v1、v2的值
232
244
  setV1AndV2ByField1(id, code1, code2) {
233
245
  var rtn1 = this.fieldsDic[id];
@@ -348,6 +360,12 @@ const Form = function (source, callBack, apiParam, failCallBack, isFormList) {
348
360
  return data.field.source[attrName];
349
361
  }
350
362
  },
363
+ getListFieldValueFromParent(tableName, rowNum, fiedlId, attrName, defaultValue) {
364
+ if(this.form && this.form.self && this.form.self.$parent){
365
+ return this.form.self.$parent.vmodel.content[0].on.getListFieldValue(tableName, rowNum, fiedlId, attrName, defaultValue);
366
+ }
367
+ return null;
368
+ },
351
369
  //设置表格某行某列的值
352
370
  setListFieldValue(value, tableName, rowNum, fiedlId, attrName) {
353
371
  value = value==undefined?"":value.toString();
@@ -481,6 +499,92 @@ const Form = function (source, callBack, apiParam, failCallBack, isFormList) {
481
499
  });
482
500
  },
483
501
  },
502
+ getValueByFieldName(id, attrKey) {
503
+ attrKey = common.initialsToLowerCase(attrKey);
504
+ var rtn1 = this.fieldsDic[id];
505
+ if (rtn1) {
506
+ return rtn1.source[attrKey];
507
+ }
508
+ },
509
+ setValueByFieldName(id, attrKey, attrValue) {
510
+ attrKey = common.initialsToLowerCase(attrKey);
511
+ var rtn1 = this.fieldsDic[id];
512
+ if (rtn1) {
513
+ rtn1.source[attrKey] = attrValue;
514
+ this.self.hatchHandle(id, attrKey, attrValue, rtn1);
515
+
516
+ //用于处理源数据改动,强制更新视图数据 todo
517
+ if (rtn1.self.$forceUpdate) {
518
+ rtn1.self.$forceUpdate();
519
+ }
520
+ }
521
+ },
522
+ getListField(tableName, rowNum, fiedlId) {
523
+ let listData = this.fields.find((v) => {
524
+ return v.id === tableName;
525
+ });
526
+ if (listData) {
527
+ let field = null;
528
+ //正在编辑的Field
529
+ if (rowNum === null && (fiedlId === null || listData.currentEventField.id === fiedlId)) {
530
+ field = listData.currentEventField;
531
+ }
532
+ //正在编辑的行
533
+ else if (rowNum === null && listData.currentRowIndex === 0) {
534
+ let fields = listData.currentRow.data;
535
+ field = fields[fiedlId];
536
+ }
537
+ //源数据
538
+ else {
539
+ if (rowNum === null && listData.currentRowIndex) {
540
+ rowNum = listData.currentRowIndex;
541
+ }
542
+
543
+ if (rowNum === 0 || (rowNum && fiedlId)) {
544
+ try {
545
+ let fields = listData.rows[rowNum].field;
546
+ field = fields.find((v) => {
547
+ return v.id === fiedlId;
548
+ });
549
+ } catch (e) {
550
+ if (listData.rows.length <= rowNum) {
551
+ var checkMsg = "获取列表行索引超出界限";
552
+ this.message(checkMsg);
553
+ }
554
+ }
555
+ }
556
+ }
557
+
558
+ return { listData: listData, field: field };
559
+ }
560
+ },
561
+ getListFieldValue(tableName, rowNum, fiedlId, attrName, defaultValue) {
562
+ tableName = tableName ? tableName : this.scripts.$fd;
563
+ let data = this.getListField(tableName, rowNum, fiedlId);
564
+
565
+ attrName = common.initialsToLowerCase(attrName);
566
+ attrName = attrName ? attrName : 'code1';
567
+
568
+ if (!fiedlId) {
569
+ fiedlId = data.listData.currentEventField.id;
570
+ }
571
+ if (fiedlId && rowNum === null && fiedlId === data.listData.currentEventField.id) {
572
+ data.field = data.listData.currentEventField;
573
+ }
574
+ rowNum = rowNum !== null ? rowNum : data.listData.currentRowIndex;
575
+
576
+ //若该行正在编辑,则取编辑状态的。
577
+ if (data && data.listData && data.listData.currentRow.data && data.listData.currentRow.data[fiedlId]
578
+ && data.listData.currentRow.data.$sourceIndex === rowNum && data.listData.currentRow.isSet) {
579
+ return data.listData.currentRow.data[fiedlId].source[attrName];
580
+ }
581
+ else if (data && data.field) {
582
+ if (typeof defaultValue !== 'undefined' && data.listData.rows[rowNum].deleted) {//若该行被删除时,则直接返回默认值
583
+ return defaultValue;
584
+ }
585
+ return data.field.source[attrName];
586
+ }
587
+ },
484
588
  getFormObj() {
485
589
  var rtnFormObj = {};
486
590
  rtn.fields.forEach((f) => {
@@ -309,6 +309,7 @@ const FormList = function (source, master) {
309
309
  },
310
310
  editRow(index, callback) {
311
311
  var self = this;
312
+ self.currentRowIndex=index;
312
313
  var dialogOption = {
313
314
  title: '修改',
314
315
  pane: common.getParentPane(self),
@@ -353,7 +354,16 @@ const FormList = function (source, master) {
353
354
  common.closeDialog(dialogOption.dialog);
354
355
  callback();
355
356
  }
356
- }
357
+ },
358
+ getValueByFieldName:function(id, attrKey){
359
+ return self.$self.parentModel.getValueByFieldName(id, attrKey);
360
+ },
361
+ setValueByFieldName:function(id, attrKey, attrValue){
362
+ return self.$self.parentModel.setValueByFieldName(id, attrKey, attrValue);
363
+ },
364
+ getListFieldValue:function(tableName, rowNum, fiedlId, attrName, defaultValue){
365
+ return self.$self.parentModel.getListFieldValue(tableName, rowNum, fiedlId, attrName, defaultValue);
366
+ },
357
367
  }
358
368
  }]
359
369
  };
@@ -425,7 +435,16 @@ const FormList = function (source, master) {
425
435
  common.closeDialog(dialogOption.dialog);
426
436
  callback();
427
437
  }
428
- }
438
+ },
439
+ getValueByFieldName:function(id, attrKey){
440
+ return self.$self.parentModel.getValueByFieldName(id, attrKey);
441
+ },
442
+ setValueByFieldName:function(id, attrKey, attrValue){
443
+ return self.$self.parentModel.setValueByFieldName(id, attrKey, attrValue);
444
+ },
445
+ getListFieldValue:function(tableName, rowNum, fiedlId, attrName, defaultValue){
446
+ return self.$self.parentModel.getListFieldValue(tableName, rowNum, fiedlId, attrName, defaultValue);
447
+ },
429
448
  }
430
449
  }]
431
450
  };
@@ -1,95 +1,120 @@
1
+ <!--
2
+ * @Author: linchunmei 179466780@qq.com~
3
+ * @Date: 2022-06-21 11:29:34
4
+ * @LastEditors: linchunmei 179466780@qq.com~
5
+ * @LastEditTime: 2022-06-24 13:49:53
6
+ * @FilePath: \js-sdk-v3\src\centaline\quickInputSos\src\quickInput.vue
7
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8
+ -->
1
9
  <template>
2
10
  <div class="ct-quickInput">
3
-
4
- <el-popover ref="pop" placement="bottom-start" v-model="showDrop" trigger="click" @show="searchInputHandle">
5
- <div>
6
- <div>
7
- <el-input ref="searchInput" size="mini" suffix-icon="el-icon-search" v-model="searchText" @input="searchInputHandle"></el-input>
8
- </div>
9
- <ctSelectOptionVertical :model="model" @click="selectOption($event)"></ctSelectOptionVertical>
10
- </div>
11
- <i slot="reference" class="el-icon-more"></i>
12
- </el-popover>
11
+ <el-popover
12
+ ref="pop"
13
+ placement="bottom-start"
14
+ v-model="showDrop"
15
+ trigger="click"
16
+ @show="searchInputHandle"
17
+ >
18
+ <div>
19
+ <div>
20
+ <el-input
21
+ ref="searchInput"
22
+ size="mini"
23
+ suffix-icon="el-icon-search"
24
+ v-model="searchText"
25
+ @input="searchInputHandle"
26
+ ></el-input>
27
+ </div>
28
+ <ctSelectOptionVertical
29
+ :model="model"
30
+ @click="selectOption($event)"
31
+ ></ctSelectOptionVertical>
32
+ </div>
33
+ <!-- <i slot="reference" class="el-icon-more"></i> -->
34
+ <span slot="reference" style="font-family: Comic Sans MS; font-size: 14px"
35
+ ><div class="my-icon-more"></div
36
+ ></span>
37
+ </el-popover>
13
38
  </div>
14
39
  </template>
15
40
  <script>
16
-
17
- import selectOption from '../../selectOption/src/selectOption'
18
- import dynamicElement from '../../mixins/dynamicElement'
19
- import ctSelectOptionVertical from '../../selectOption/src/selectOptionVertical'
20
- export default {
21
- name: 'ctQuickInput',
22
- mixins: [dynamicElement],
23
- props: {
24
- pn: String,
25
- action: String
41
+ import selectOption from "../../selectOption/src/selectOption";
42
+ import dynamicElement from "../../mixins/dynamicElement";
43
+ import ctSelectOptionVertical from "../../selectOption/src/selectOptionVertical";
44
+ export default {
45
+ name: "ctQuickInput",
46
+ mixins: [dynamicElement],
47
+ props: {
48
+ pn: String,
49
+ action: String,
50
+ },
51
+ components: {
52
+ ctSelectOption: selectOption,
53
+ ctSelectOptionVertical: ctSelectOptionVertical,
54
+ },
55
+ created() {
56
+ let that = this;
57
+ if (typeof this.vmodel === "undefined") {
58
+ this.model = this.loaderObj.QuickInputSos({
59
+ code1: "",
60
+ name1: "",
61
+ paramName1: that.pn,
62
+ });
63
+ } else {
64
+ this.model = this.vmodel;
65
+ }
66
+ },
67
+ data() {
68
+ return {
69
+ options: [],
70
+ searchText: "",
71
+ showDrop: false,
72
+ };
73
+ },
74
+ methods: {
75
+ getOptions: function () {
76
+ var self = this;
77
+ this.model.getOptions(this.action, self.searchText);
26
78
  },
27
- components: {
28
- 'ctSelectOption': selectOption,
29
- 'ctSelectOptionVertical': ctSelectOptionVertical
79
+ searchInputHandle: function () {
80
+ var currentSeatch = this.searchText;
81
+ this.searchTickControl(currentSeatch);
30
82
  },
31
- created() {
32
- let that=this;
33
- if (typeof this.vmodel === 'undefined') {
34
- this.model = this.loaderObj.QuickInputSos(
35
- {
36
- code1:'',
37
- name1:'',
38
- paramName1:that.pn,
83
+ searchTickControl: function (search) {
84
+ var self = this;
85
+ setTimeout(function () {
86
+ if (search === self.searchText) {
87
+ self.getOptions(self.searchText);
39
88
  }
40
- );
41
- }
42
- else {
43
- this.model = this.vmodel;
44
- }
45
- },
46
- data() {
47
- return {
48
- options:[],
49
- searchText: "",
50
- showDrop: false,
51
-
52
- };
89
+ }, self.model.searchTick);
53
90
  },
54
- methods: {
55
-
56
- getOptions: function () {
57
- var self = this;
58
- this.model.getOptions(this.action, self.searchText);
59
-
60
- },
61
- searchInputHandle: function () {
62
- var currentSeatch = this.searchText;
63
- this.searchTickControl(currentSeatch);
64
- },
65
- searchTickControl: function (search) {
66
- var self = this;
67
- setTimeout(function () {
68
- if (search === self.searchText) {
69
- self.getOptions(self.searchText);
70
- }
71
- }, self.model.searchTick);
72
- },
73
- selectOption(value) {
74
- if (this.model.value === value) {
75
- this.$set(this, 'showDrop', false);
76
- return;
77
- }
78
- else {
79
- this.model.value = value;
80
- }
81
- this.$set(this, 'showDrop', false);
82
- this.$emit('click', value);
83
- },
91
+ selectOption(value) {
92
+ if (this.model.value === value) {
93
+ this.$set(this, "showDrop", false);
94
+ return;
95
+ } else {
96
+ this.model.value = value;
97
+ }
98
+ this.$set(this, "showDrop", false);
99
+ this.$emit("click", value);
84
100
  },
85
- mounted() {
86
-
87
- }
88
- }
101
+ },
102
+ mounted() {},
103
+ };
89
104
  </script>
90
105
  <style>
91
- .ct-quickInput .el-icon-more:hover {
92
- cursor: pointer;
93
- color: #409EFF;
94
- }
106
+ .ct-quickInput .el-icon-more:hover {
107
+ cursor: pointer;
108
+ color: #409eff;
109
+ }
110
+ .my-icon-more {
111
+ width: 16px;
112
+ height: 20px;
113
+ border-top: 4px solid rgb(153, 153, 153);
114
+ border-bottom: 4px solid rgb(153, 153, 153);
115
+ background-color: rgb(153, 153, 153);
116
+ padding: 4px 0;
117
+ background-clip: content-box;
118
+ margin-left: 5px;
119
+ }
95
120
  </style>
package/src/main.js CHANGED
@@ -12,8 +12,8 @@ Vue.use(ElementUI, { size: 'mini'});
12
12
  // 关闭生产模式下给出的提示
13
13
  Vue.config.productionTip = false;
14
14
  Vue.use(centaline, {
15
- baseUrl: "http://10.88.22.46:7070/v1/form/router",
16
- // baseUrl: "http://10.88.23.22:9999/v1/form/router",
15
+ // baseUrl: "http://10.88.22.46:7070/v1/form/router",
16
+ baseUrl: "http://10.88.23.22:9999/v1/form/router",
17
17
  // baseUrl: "http://10.88.22.69:8080/",
18
18
  // flagRouterSelf: true,
19
19
  zindex: 999,
@@ -41,8 +41,8 @@ Vue.use(centaline, {
41
41
  return {
42
42
  oldToken: '059a0de9-385e-49d1-85a7-c04e4c1c0a18',
43
43
  originalRequestURL: 'http://10.88.22.67:8080',
44
- EstateInfo: '{"estateId":"201703020943128D8A8FCF463E4016D6","estateName":"%E4%B8%87%E7%A7%91%E4%BA%91%E5%9F%8E"}',
45
- Authorization:'Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijc4N2U5ZDA1LThlMGItNDY0ZS1iMThjLTQzNjEyZWIyZDQ1ZCJ9.1W1c_YwAF9jfjAtOq9twaB6FH4KiySPuZmWIzcLSDxjfJTgXu7fcf4Cu8kyWcRC2bXrzNQoOYsHAR1vfMAQvGA',
44
+ EstateInfo: ' {"estateId":"201703020943128D8A8FCF463E4016D6","estateName":"%E4%B8%87%E7%A7%91%E4%BA%91%E5%9F%8E"}',
45
+ Authorization:'Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjgxY2I1MTgzLTIyNjAtNDBkNC05N2JhLWNlZDZkZGQ5MjI2MiJ9._ZBywCAxnFXqxugFGFJvcBY1pW7OWnIghqe7F9W0BcATsnsg_80R1GapUXAuXa-55EzkHfPOGEvvhOyhzqgXRA',
46
46
  };
47
47
  },
48
48
  // 请求完成事件,可判断是否登录过期执行响应操作