centaline-data-driven 1.5.60 → 1.5.62

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.
Files changed (30) hide show
  1. package/.vs/Centaline.Front_End.DataDriven/DesignTimeBuild/.dtbcache +0 -0
  2. package/.vs/Centaline.Front_End.DataDriven/v16/Server/sqlite3/db.lock +0 -0
  3. package/.vs/Centaline.Front_End.DataDriven/v16/Server/sqlite3/storage.ide +0 -0
  4. package/obj/Centaline.Front_End.DataDriven.csproj.nuget.dgspec.json +11 -10
  5. package/obj/Centaline.Front_End.DataDriven.csproj.nuget.g.props +11 -14
  6. package/obj/Centaline.Front_End.DataDriven.csproj.nuget.g.targets +7 -7
  7. package/obj/project.assets.json +11 -52
  8. package/package.json +1 -1
  9. package/release-log.md +23 -0
  10. package/src/Detail.vue +3 -3
  11. package/src/Form.vue +2 -3
  12. package/src/SearchList.vue +29 -23
  13. package/src/SearchTree.vue +2 -2
  14. package/src/centaline/dynamicHyperLink/index.js +1 -1
  15. package/src/centaline/dynamicLayout/src/dynamicLayoutChildren.vue +17 -17
  16. package/src/centaline/dynamicMo/src/dynamicMo.vue +6 -5
  17. package/src/centaline/dynamicPlaceHolder/index.js +1 -1
  18. package/src/centaline/dynamicRepeat/src/dynamicRepeat.vue +6 -9
  19. package/src/centaline/dynamicSos/src/dynamicSos.vue +8 -8
  20. package/src/centaline/dynamicT/src/dynamicT.vue +38 -25
  21. package/src/centaline/loader/src/ctl/Button.js +16 -16
  22. package/src/centaline/loader/src/ctl/PlaceHolder.js +2 -2
  23. package/src/centaline/loader/src/ctl/Sos.js +2 -2
  24. package/src/centaline/templateControls/src/dynamicTableCurrency.vue +5 -5
  25. package/src/main.js +10 -7
  26. package/wwwroot/static/centaline/centaline-data-driven.js +52 -42
  27. package/wwwroot/static/centaline/centaline-data-driven.js.map +1 -1
  28. package/.vs/Centaline.Front_End.DataDriven/DesignTimeBuild/.dtbcache.v2 +0 -0
  29. package/.vs/Centaline.Front_End.DataDriven/config/applicationhost.config +0 -1034
  30. package/obj/Debug/netcoreapp2.1/Centaline.Front_End.DataDriven.csproj.FileListAbsolute.txt +0 -6
@@ -1,13 +1,21 @@
1
1
  <template>
2
2
  <div id="app-search" style="width:100%;height:100%;position: fixed;">
3
+
3
4
  <!-- <ct-searchlist :searchConditionApi="'/api/third-dept-tran/transaction-workflow/getLayoutOfSearch'" :searchDataApi="'/api/third-dept-tran/transaction-workflow/list'"></ct-searchlist> -->
4
5
 
5
- <ct-searchlist :searchConditionApi="'/PropertyRETList/getLayoutOfSearch'" :searchDataApi="'/PropertyRETList/getListOfSearchModel'" :searchCategoryApi="'/PropertyRETList/getLayoutOfSearchCategory'"></ct-searchlist>
6
+ <!-- <ct-searchlist :apiParam="para" :searchConditionApi="'/api/third-dept-tran/tran-list/layout'" :searchDataApi="'/api/third-dept-tran/tran-list'"></ct-searchlist> -->
6
7
 
7
- <!-- <ct-searchlist :apiParam="para"
8
- :searchConditionApi="'/api/third-dept-tran/tran-list/layout'"
9
- :searchDataApi="'/api/third-dept-tran/tran-list'">
10
- </ct-searchlist> -->
8
+ <!-- <ct-searchlist :apiParam="para" :searchConditionApi="'/api/third-dept-tran/profit-return/layout'" :searchDataApi="'/api/third-dept-tran/profit-return'"></ct-searchlist> -->
9
+
10
+ <!-- <ct-searchlist :apiParam="para" :searchConditionApi="'/api/third-dept-tran/tran-list/tran-emp-achievement-layout'" :searchDataApi="'/api/third-dept-tran/tran-list/tran-emp-achievement-list'"></ct-searchlist> -->
11
+
12
+ <!-- <ct-searchlist :apiParam="para" :searchConditionApi="'/api/finance/tran-commission-allocate/process-layout'" :searchDataApi="'/api/finance/tran-commission-allocate/process-list'"></ct-searchlist> -->
13
+
14
+ <!-- <ct-searchlist :apiParam="para" :searchConditionApi="'/api/shift-approver/layout'" :searchDataApi="'/api/shift-approver/list'"></ct-searchlist> -->
15
+
16
+
17
+ <!-- <ct-searchlist :apiParam="para" :searchConditionApi="'/filemanage/batchdownlist/getLayoutOfSearch'" :searchDataApi="'/filemanage/batchdownlist/getList'"></ct-searchlist> -->
18
+
11
19
 
12
20
  <!-- <ct-searchlist :apiParam="para"
13
21
  :searchConditionApi="'/api/transaction/adjustRecord/getLayoutOfSearch'"
@@ -37,16 +45,12 @@
37
45
  :searchStatsApi="'/ProfileWorklistList/getListStats'">
38
46
  </ct-searchlist> -->
39
47
 
40
- <!--<ct-searchlist :apiParam="para"
41
- :searchConditionApi="'/CallTaskList/getLayoutOfSearch'"
42
- :searchDataApi="'/CallTaskList/getListOfSearchModel'">
43
- </ct-searchlist>-->
48
+ <!-- <ct-searchlist :apiParam="para"
49
+ :searchConditionApi="'/RightValueList/getLayoutOfSearch'"
50
+ :searchDataApi="'/RightValueList/getListOfSearchModel'">
51
+ </ct-searchlist> -->
44
52
 
45
- <!--<ct-searchlist
46
- :searchCategoryApi="'/PropertyPublishList/getLayoutOfSearchCategory'"
47
- :searchConditionApi="'/PropertyPublishList/getLayoutOfSearchForRET'" :searchStatsApi="'/PropertyPublishList/getListStatsForRET'"
48
- :searchDataApi="'/PropertyPublishList/getListOfSearchModelForRET'">
49
- </ct-searchlist>-->
53
+ <ct-searchlist :searchCategoryApi="'/PropertyPublishList/getLayoutOfSearchCategory'" :searchConditionApi="'/PropertyPublishList/getLayoutOfSearchForRET'" :searchStatsApi="'/PropertyPublishList/getListStatsForRET'" :searchDataApi="'/PropertyPublishList/getListOfSearchModelForRET'"></ct-searchlist>
50
54
 
51
55
  <!-- <ct-searchlist :searchConditionApi="'/PropertyRETList/getLayoutOfSearch'"
52
56
  :searchDataApi="'/PropertyRETList/getListOfSearchModel'"
@@ -60,19 +64,21 @@
60
64
  :searchStatsApi="'/PropertyOFIList/getListStats'">
61
65
  </ct-searchlist> -->
62
66
 
63
- <!-- <ct-searchlist :searchConditionApi="'/EstateList/getLayoutOfSearch'"
64
- :searchDataApi="'/EstateList/getListOfSearchModel'">
65
- </ct-searchlist> -->
67
+ <!-- <ct-searchlist :searchConditionApi="'/EstateList/getLayoutOfSearch'" :searchDataApi="'/EstateList/getListOfSearchModel'"></ct-searchlist> -->
66
68
 
67
- <!-- <ct-searchlist :searchConditionApi="'/EstateBuildingList/getLayoutOfSearch'"
68
- :searchDataApi="'/EstateBuildingList/getListOfSearchModel'">
69
- </ct-searchlist> -->
69
+ <!-- <ct-searchlist :searchConditionApi="'/EstateBuildingList/getLayoutOfSearch'" :searchDataApi="'/EstateBuildingList/getListOfSearchModel'"></ct-searchlist> -->
70
70
 
71
- <!-- <ct-searchlist :searchConditionApi="'/DistrictList/getLayoutOfSearch'"
72
- :searchDataApi="'/DistrictList/getListOfSearchModel'">
73
- </ct-searchlist> -->
71
+ <!-- <ct-searchlist :searchConditionApi="'/DistrictList/getLayoutOfSearch'" :searchDataApi="'/DistrictList/getListOfSearchModel'"></ct-searchlist> -->
72
+
73
+ <!-- <ct-searchlist :searchConditionApi="'/CustomerImportList/getLayoutOfSearch'" :searchDataApi="'/CustomerImportList/getListOfSearchModel'"></ct-searchlist> -->
74
+
75
+ <!-- <ct-searchlist :searchConditionApi="'/CustomerList/getLayoutOfSearch'" :searchStatsApi="'/CustomerList/getListStats'" :searchDataApi="'/CustomerList/getListOfSearchModel'"></ct-searchlist> -->
76
+
77
+ <!-- <ct-searchlist :searchConditionApi="'/CallTaskList/getLayoutOfSearch'" :searchDataApi="'/CallTaskList/getListOfSearchModel'"></ct-searchlist> -->
74
78
 
75
79
  <!-- <ct-searchlist :searchConditionApi="'/RoleList/getLayoutOfSearch'" :searchStatsApi="'/RoleList/getListStats'" :searchDataApi="'/RoleList/getListOfSearchModel'"></ct-searchlist> -->
80
+
81
+ <!-- <ct-searchlist :searchConditionApi="'/TaskList/getLayoutOfSearch'" :searchStatsApi="'/TaskList/getListStats'" :searchDataApi="'/TaskList/getListOfSearchModel'"></ct-searchlist> -->
76
82
 
77
83
  <ct-dialog-list></ct-dialog-list>
78
84
  </div>
@@ -1,8 +1,8 @@
1
1
  <template>
2
2
  <div id="app-Tree" style="height:100%;position: fixed;width:100%">
3
3
  <ct-treelist :flagsearch="true" :apiParam="apiParam" :leftWidth="'280'"
4
- :searchConditionApi="'/DepartmentList/getLayoutOfSearch'"
5
- :searchDataApi="'/DepartmentList/getListOfSearchModel'" @loaded="loaded"></ct-treelist>
4
+ :searchConditionApi="'/SystemParameterCatalogList/getLayoutOfSearch'"
5
+ :searchDataApi="'/SystemParameterCatalogList/getListOfSearchModel'" @loaded="loaded"></ct-treelist>
6
6
  <ct-dialog-list></ct-dialog-list>
7
7
  </div>
8
8
  </template>
@@ -8,4 +8,4 @@ if (typeof window !== 'undefined' && window.Vue) {
8
8
  window.Vue.use(dynamicHyperLink);
9
9
  }
10
10
 
11
- export default dynamicHyperLink
11
+ export default dynamicHyperLink
@@ -1,12 +1,12 @@
1
- <template>
2
- <el-container v-if="model.routerKey&&model.visibility!='0'&&model.rightRouter&&model.value!=''" :direction="model.orientation" :style="model.styleObject" ref="layoutchildren">
3
- <div @click="clickHandlerLayout($event)">
4
- <component v-for="(item, index) in model.fields" :actionRouter="actionRouter" :rowdata="rowdata" :key="index" :is="item.is" :vmodel="item" :rowindex="rowindex" :forname="forname" :forrowindex="forrowindex" @click="clickHandler"></component>
5
- </div>
6
- </el-container>
7
- <el-container v-else-if="model.value!=''&&model.visibility!='0'" :direction="model.orientation" :style="model.styleObject" ref="layoutchildren">
8
- <component v-for="(item, index) in model.fields" :actionRouter="actionRouter" :rowdata="rowdata" :key="index" :is="item.is" :vmodel="item" :rowindex="rowindex" :forname="forname" :forrowindex="forrowindex" @click="clickHandler"></component>
9
- </el-container>
1
+ <template>
2
+ <el-container v-if="model.routerKey&&model.visibility!='0'&&model.rightRouter&&model.value!=''" :direction="model.orientation" :style="model.styleObject" ref="layoutchildren">
3
+ <div @click="clickHandlerLayout($event)">
4
+ <component v-for="(item, index) in model.fields" :actionRouter="actionRouter" :rowdata="rowdata" :key="index" :is="item.is" :vmodel="item" :rowindex="rowindex" :forname="forname" :forrowindex="forrowindex" @click="clickHandler"></component>
5
+ </div>
6
+ </el-container>
7
+ <el-container v-else-if="model.value!=''&&model.visibility!='0'" :direction="model.orientation" :style="model.styleObject" ref="layoutchildren">
8
+ <component v-for="(item, index) in model.fields" :actionRouter="actionRouter" :rowdata="rowdata" :key="index" :is="item.is" :vmodel="item" :rowindex="rowindex" :forname="forname" :forrowindex="forrowindex" @click="clickHandler"></component>
9
+ </el-container>
10
10
  </template>
11
11
  <script>
12
12
  import dynamicElement from '../../mixins/dynamicElement'
@@ -37,13 +37,13 @@
37
37
  };
38
38
  },
39
39
  created() {
40
- this.model = this.loaderObj.CellLayout(this.vmodel);
40
+ this.model = this.loaderObj.CellLayout(this.vmodel);
41
41
  },
42
42
  methods: {
43
43
  clickHandler(routerKey, rowindex, forname, forrowindex,flagHaveAlert) {
44
44
  this.$emit('click', routerKey, rowindex, forname, forrowindex,flagHaveAlert);
45
- },
46
- clickHandlerLayout(ev) {
45
+ },
46
+ clickHandlerLayout(ev) {
47
47
  this.$emit(
48
48
  "click",
49
49
  this.model.routerKey,
@@ -64,16 +64,16 @@
64
64
  for (const vn of vnodes) {
65
65
  destroyDeep(vn)
66
66
  }
67
- }
68
- if (typeof vnode.componentInstance !== 'undefined') {
69
- vnode.componentInstance.$destroy()
67
+ }
68
+ if (typeof vnode.componentInstance !== 'undefined') {
69
+ vnode.componentInstance.$destroy()
70
70
  }
71
71
  setTimeout(() => {
72
72
  vnode.componentInstance = undefined
73
73
  vnode.elm.innerHTML = ''
74
74
  }, 0)
75
75
  }
76
- destroyDeep(this._vnode)
76
+ destroyDeep(this._vnode)
77
77
  },
78
78
  }
79
- </script>
79
+ </script>
@@ -9,9 +9,9 @@
9
9
  </div>
10
10
  <div ref="cttags" class="el-select__tags" :style="{'max-width':tagsWidth + 'px'}" @click="clickHandle">
11
11
  <span>
12
- <span class="ct-mo-value-label">{{model.valueLabel}}</span>
12
+ <span class="ct-mo-value-label" v-if="model.valueLabel">{{model.valueLabel}}</span>
13
13
  <span class="el-tag el-tag--info" :class="[model.attrs.size?'el-tag--'+model.attrs.size:'']" v-for="item in model.value">
14
- <span class="el-select__tags-text">{{getOptionText(item)}}</span>
14
+ <span class="el-select__tags-text" style="margin-left: -6px;">{{getOptionText(item)}}</span>
15
15
  <i v-if="!model.lock" class="el-tag__close el-icon-close" @click="deleteOption(item,$event)"></i>
16
16
  </span>
17
17
  </span>
@@ -361,7 +361,6 @@
361
361
  cursor: pointer;
362
362
  z-index: 2000;
363
363
  }
364
-
365
364
  .ct-mo .ct-input_inner::-webkit-input-placeholder {
366
365
  color: var(--bagGray);
367
366
  }
@@ -373,9 +372,11 @@
373
372
  .ct-mo .ct-input_inner:-ms-input-placeholder {
374
373
  color: var(--bagGray);
375
374
  }
376
-
375
+ .ct-mo:hover .ct-input_inner{
376
+ border-color: var(--centalineBlue);
377
+ }
377
378
  .ct-mo .ct-input_inner:hover {
378
- border-color: var(--bagGray); /*border-color:#c0c4cc*/
379
+ border-color: var(--centalineBlue); /*border-color:#c0c4cc*/
379
380
  }
380
381
 
381
382
  .ct-mo.isfocus .ct-input_inner:hover {
@@ -8,4 +8,4 @@ if (typeof window !== 'undefined' && window.Vue) {
8
8
  window.Vue.use(dynamicPlaceHolder);
9
9
  }
10
10
 
11
- export default dynamicPlaceHolder
11
+ export default dynamicPlaceHolder
@@ -184,21 +184,18 @@ export default {
184
184
  fieldsValidExcute() {
185
185
  var self = this;
186
186
  var rtnBool = true;
187
- self.validMessage='';
188
187
  if (typeof self.$refs.Fields !== "undefined") {
189
188
  self.$refs.Fields.forEach((f) => {
190
189
  if (typeof f.validExcute !== "undefined") {
191
190
  if (!f.validExcute()) {
192
- if(!self.validMessage){
193
- if (f.validMessage) {
194
- if (f.validMessage == "必填") {
195
- self.validMessage= "【"+self.model.label+"-" + f.model.label + "】" + f.validMessage;
196
- } else {
197
- self.validMessage= f.validMessage;
198
- }
191
+ if (f.validMessage) {
192
+ if (f.validMessage == "必填") {
193
+ self.validMessage= "【"+self.model.label+"-" + f.model.label + "" + f.validMessage;
199
194
  } else {
200
- self.validMessage="【"+self.model.label+"-" + f.model.label + "】不能为空!";
195
+ self.validMessage= f.validMessage;
201
196
  }
197
+ } else {
198
+ self.validMessage="【"+self.model.label+"-" + f.model.label + "】不能为空!";
202
199
  }
203
200
  rtnBool = false;
204
201
  }
@@ -78,12 +78,12 @@
78
78
  else {
79
79
  this.model = this.vmodel;
80
80
  }
81
- this.$watch('model.value', (n, o) => {
82
- if (typeof this.model.child !== 'undefined' && this.model.enableRelationFields) {
83
- for (var item of this.model.child) {
81
+ this.$watch('model.value', (n, o) => {
82
+ if (typeof this.model.child !== 'undefined' && this.model.enableRelationFields) {
83
+ for (var item of this.model.child) {
84
84
  item.value = item.defaultValue || '';
85
- item.text = item.defaultText || '';
86
- item.enableRelationFields = this.model.enableRelationFields;
85
+ item.text = item.defaultText || '';
86
+ item.enableRelationFields = this.model.enableRelationFields;
87
87
  }
88
88
  }
89
89
  });
@@ -147,11 +147,11 @@
147
147
  var self = this;
148
148
  this.model.getOptions(this.api, self.searchText);
149
149
  },
150
- soChange: function () {
151
- var self = this;
150
+ soChange: function () {
151
+ var self = this;
152
152
  this.model.enableRelationFields = true;
153
153
  if (typeof this.model.child !== 'undefined') {
154
- for (var item of this.model.child) {
154
+ for (var item of this.model.child) {
155
155
  item.value = item.defaultValue || '';
156
156
  item.text = item.defaultText || '';
157
157
  }
@@ -8,9 +8,6 @@
8
8
  <span>{{model.label}}</span>
9
9
  </div>
10
10
 
11
- <div ref="highlights" v-if="model.forbiddenWords" class="backdrop" :style="{width:forbiddenWordsWidth+'px',height:forbiddenWordsHeight+'px',left:forbiddenWordsLeft+'px',top:forbiddenWordsTop+'px'}">
12
- <div class="highlights" v-html="forbiddenWordsValue"></div>
13
- </div>
14
11
 
15
12
  <el-popover v-if="model.autoFill && model.paramName" placement="bottom-start" v-model="showDrop" :trigger="'manual'" class="autoFill">
16
13
  <div>
@@ -32,23 +29,26 @@
32
29
  </el-input>
33
30
  </el-popover>
34
31
 
35
- <div v-else class="textarea-box" ref="input">
36
- <el-input :title="model.lock?model.value:''" :type="model.rows==1 ? '':model.inputType" v-model="model.value" v-bind="model.attrs" @input="inputHandler($event);isShowClear();applyHighlights()" @change="changeHandler($event)"
32
+ <div v-else class="textarea-box" ref="input">
33
+ <div ref="highlights" v-if="model.forbiddenWords" class="backdrop hoverColor" :style="{width:forbiddenWordsWidth+'px',height:forbiddenWordsHeight+'px',left:forbiddenWordsLeft+'px',top:forbiddenWordsTop+'px'}">
34
+ <div class="highlights" v-html="forbiddenWordsValue"></div>
35
+ </div>
36
+ <el-input ref="inputText" :title="model.lock?model.value:''" :type="model.rows==1 ? '':model.inputType" v-model="model.value" v-bind="model.attrs" @input="inputHandler($event);isShowClear();applyHighlights()" @change="changeHandler($event)"
37
37
  class="ct-flex-div-input max-input" :class="[model.showLabel?'showLabel':'',!valid?'inputError':'',model.forbiddenWords?'inputHighlights':'']"
38
38
  :disabled="model.lock" :rows="model.rows"
39
39
  :readonly="model.readonly" :show-password="model.isPassword" autocomplete="on" :maxlength="model.max"
40
40
  @keyup.enter.native="search()" style="z-index: 3;background-color: transparent;">
41
- <span slot="suffix" v-if="model.unitName" class="ct-unitname" :class="showClear?'unitName-20':'unitName-0'">{{model.unitName}}</span>
41
+ <span slot="suffix" v-if="model.unitName" class="ct-unitname" :class="showClear?'unitName-20':'unitName-0'">{{model.unitName}}</span>
42
42
 
43
- <span slot="suffix" class="el-input__suffix el-input--mini is-show-Span" v-if="!model.isPassword&&showClear" :class="model.unitName?'ct-right-10':'ct-right-0'">
44
- <span class="el-input__suffix-inner ct-close">
45
- <i class="el-select__caret el-input__icon el-icon-circle-close is-show-close" @click="clearClickHandle($event)"></i>
43
+ <span slot="suffix" class="el-input__suffix el-input--mini is-show-Span" v-if="!model.isPassword&&showClear" :class="model.unitName?'ct-right-10':'ct-right-0'">
44
+ <span class="el-input__suffix-inner ct-close">
45
+ <i class="el-select__caret el-input__icon el-icon-circle-close is-show-close" @click="clearClickHandle($event)"></i>
46
+ </span>
46
47
  </span>
47
- </span>
48
- </el-input>
49
- <span v-if="this.minText" class="textarea-tip">{{this.minText}}</span>
50
- <span v-if="model.showWordLimit" class="textarea-count">{{model.value.length}}/{{ model.max }}</span>
51
- <span v-if="!model.forbiddenWords" class="textarea-icon"></span>
48
+ </el-input>
49
+ <span v-if="this.minText" class="textarea-tip">{{this.minText}}</span>
50
+ <span v-if="model.showWordLimit" class="textarea-count">{{model.value.length}}/{{ model.max }}</span>
51
+ <span v-if="!model.forbiddenWords" class="textarea-icon"></span>
52
52
  </div>
53
53
  <!-- <span v-if="this.minText" :style="{left: minTextLeft+'px'}" style="color: #909399;background: #FFF;position: absolute;font-size: 12px;bottom: 5px;z-index: 3;">{{this.minText}}</span> -->
54
54
  <span v-if="model.sufLabel" class="spanMessage ct-flex-div-span">{{model.sufLabel}}</span>
@@ -97,6 +97,7 @@
97
97
  forbiddenWordsHeight:0,
98
98
  forbiddenWordsLeft:0,
99
99
  forbiddenWordsTop:0,
100
+ forbiddenWordsReg:'',
100
101
  showDrop:false,
101
102
  searchText:'',
102
103
  }
@@ -118,14 +119,14 @@
118
119
  else{
119
120
  this.minText='至少需要'+this.model.min+'个字';
120
121
  }
121
- this.minTextLeft=this.$refs.input.$el.offsetLeft+10;
122
+ // this.minTextLeft=this.$refs.inputText.$el.offsetLeft+10;
122
123
  }
123
124
  if(this.model.forbiddenWords){
124
- this.forbiddenWordsWidth=this.$refs.input.$el.offsetWidth;
125
- this.forbiddenWordsHeight=this.$refs.input.$el.offsetHeight;
126
- this.forbiddenWordsLeft=this.$refs.input.$el.offsetLeft;
127
- this.forbiddenWordsTop=this.$refs.input.$el.offsetTop;
128
- this.$refs.input.$el.addEventListener('scroll',this.scrollHandler,true);
125
+ this.forbiddenWordsWidth=this.$refs.inputText.$el.offsetWidth;
126
+ this.forbiddenWordsHeight=this.$refs.inputText.$el.offsetHeight;
127
+ this.forbiddenWordsLeft=this.$refs.inputText.$el.offsetLeft;
128
+ this.forbiddenWordsTop=this.$refs.inputText.$el.offsetTop;
129
+ this.$refs.inputText.$el.addEventListener('scroll',this.scrollHandler,true);
129
130
  }
130
131
  },
131
132
  methods: {
@@ -221,7 +222,7 @@
221
222
  });
222
223
  },
223
224
  scrollHandler() {
224
- var scrollTop = this.$refs.input.$el.children[0].scrollTop;
225
+ var scrollTop = this.$refs.inputText.$el.children[0].scrollTop;
225
226
  this.$refs.highlights.scrollTop=scrollTop;
226
227
  },
227
228
  applyHighlights() {
@@ -229,10 +230,21 @@
229
230
  if(self.model.forbiddenWords){
230
231
  self.forbiddenWordsValue=self.model.value;
231
232
  let joinChar=self.model.joinChar || ',';
233
+ this.forbiddenWordsReg='';
232
234
  self.model.forbiddenWords.split(joinChar).forEach(w => {
235
+ if(self.forbiddenWordsValue.indexOf(w)>-1){
236
+ if(this.forbiddenWordsReg==''){
237
+ this.forbiddenWordsReg+='(';
238
+ this.forbiddenWordsReg+=w;
239
+ }
240
+ else{
241
+ this.forbiddenWordsReg+=','+w;
242
+ }
243
+ }
233
244
  let reg1=new RegExp(w,'g');
234
245
  self.forbiddenWordsValue=self.forbiddenWordsValue.replace(reg1,'<span style="background-color: #ffff00;color: transparent;">'+w+'</span>');
235
246
  });
247
+ if(this.forbiddenWordsReg)this.forbiddenWordsReg+=')';
236
248
  // let h=this.$refs.input.$el.children[0].offsetHeight;
237
249
  // let hs=this.$refs.input.$el.children[0].scrollHeight;
238
250
  // let ht=this.$refs.input.$el.children[0].scrollTop;
@@ -250,10 +262,10 @@
250
262
  let flag=true;
251
263
  if(this.model.forbiddenWords && this.model.value){
252
264
  let reg1=new RegExp('#ffff00','g');
253
- let res=this.forbiddenWordsValue.match(reg1)
265
+ let res=this.forbiddenWordsValue.match(reg1);
254
266
  if(res && res.length>0){
255
267
  flag=false;
256
- this.validMessage = (this.validMessage?this.validMessage+" ":"") + "输入文字中包含"+res.length+"个违禁词";
268
+ this.validMessage = (this.validMessage?this.validMessage+" ":"") + "输入文字中包含"+res.length+"个违禁词"+this.forbiddenWordsReg;
257
269
  }
258
270
  this.valid = flag;
259
271
  }
@@ -278,7 +290,8 @@
278
290
  .backdrop {
279
291
  position: absolute;
280
292
  z-index: 1;
281
- border: 1px solid var(--bagGray);
293
+ /* border: 1px solid var(--bagGray); */
294
+ border: none;
282
295
  background-color: #fff;
283
296
  pointer-events: none;
284
297
  overflow-y: auto;
@@ -292,7 +305,7 @@
292
305
  white-space: pre-wrap;
293
306
  word-wrap: break-word;
294
307
  color: transparent;
295
- padding: 5px 15px 5px 15px;
308
+ padding: 5px 15px 5px 5px;
296
309
  line-height: 1.5;
297
310
  font-family: monospace;
298
311
  }
@@ -1,7 +1,7 @@
1
1
  import base from '../../index';
2
- import Base from './Base';
3
- import common from '../../../common';
4
- import Router from './Router';
2
+ import Base from './Base';
3
+ import common from '../../../common';
4
+ import Router from './Router';
5
5
  import Vue from 'vue';
6
6
  const Button = function (source, router) {
7
7
  var rtn = {
@@ -15,7 +15,7 @@ const Button = function (source, router) {
15
15
  },
16
16
  set label(v) {
17
17
  source.controlLabel = v;
18
- },
18
+ },
19
19
  get routerKey() {
20
20
  return source.routerKey;
21
21
  },
@@ -24,8 +24,8 @@ const Button = function (source, router) {
24
24
  return router.isHyperLink;
25
25
  }
26
26
  return false;
27
- },
28
- get isSearchRouterKey() {
27
+ },
28
+ get isSearchRouterKey() {
29
29
  if (source.controlType == 16 && source.routerKey) {
30
30
  return true;
31
31
  }
@@ -48,10 +48,10 @@ const Button = function (source, router) {
48
48
  get borderColor() {
49
49
  return source.borderColor ? source.borderColor + '' : (source.bgColor ? source.bgColor + '' : '');
50
50
  },
51
- icon: '',
52
- getApiData(callback, field) {
51
+ icon: '',
52
+ getApiData(callback, field) {
53
53
  var params = {
54
- action: field.actionForSearch,
54
+ action: field.actionForSearch,
55
55
  para: {
56
56
  searchFields: field.getSearchPara(),
57
57
  pageAttribute: {
@@ -59,11 +59,11 @@ const Button = function (source, router) {
59
59
  },
60
60
  flagSearch: true
61
61
  }
62
- };
62
+ };
63
63
  Vue.prototype.$api.postHandler(common.globalUri(), params).then((response) => {
64
- if (response.rtnCode === 200) {
65
- var Buttons = [];
66
- if (response.content.toolButtons) {
64
+ if (response.rtnCode === 200) {
65
+ var Buttons = [];
66
+ if (response.content.toolButtons) {
67
67
  response.content.toolButtons.forEach((v) => {
68
68
  var button = Router(v);
69
69
  button.is = "ct-btn";
@@ -72,11 +72,11 @@ const Button = function (source, router) {
72
72
  class: 'max-btn-gray'
73
73
  }
74
74
  Buttons.push(button);
75
- });
76
- }
75
+ });
76
+ }
77
77
  callback(response.content, Buttons);
78
78
  }
79
- });
79
+ });
80
80
  },
81
81
  };
82
82
  if(router){
@@ -1,5 +1,5 @@
1
1
  import base from '../../index';
2
- import Base from './Base';
2
+ import Base from './Base';
3
3
 
4
4
  const PlaceHolder = function (source) {
5
5
  var rtn = {
@@ -14,4 +14,4 @@ const PlaceHolder = function (source) {
14
14
  return rtn;
15
15
  };
16
16
 
17
- export default PlaceHolder;
17
+ export default PlaceHolder;
@@ -6,7 +6,7 @@ import common from '../../../common';
6
6
  import Vue from 'vue';
7
7
  const Sos = function (source, moreActionRouter) {
8
8
  var rtn = {
9
- options: [{ code: source.code1, name: source.name1 }],
9
+ options: [{ code: source.code1, name: source.name1 }],
10
10
  enableRelationFields: true,
11
11
  get text() {
12
12
  if (source.isList && source.name1 && rtn.attrs.placeholder && rtn.displayLabelAfterSelected) {
@@ -31,7 +31,7 @@ const Sos = function (source, moreActionRouter) {
31
31
  },
32
32
  get parentName() {
33
33
  return source.parentField;
34
- },
34
+ },
35
35
  reset() {
36
36
  this.value = this.defaultValue;
37
37
  this.text = this.defaultText;
@@ -34,7 +34,7 @@
34
34
  </div>
35
35
  </template>
36
36
 
37
- <script>
37
+ <script>
38
38
  import Cookies from 'js-cookie';
39
39
  export default {
40
40
  name: 'ct-tablecurrency',
@@ -67,8 +67,8 @@
67
67
  return false;
68
68
  },
69
69
  },
70
- created() {
71
- this.isVisited();
70
+ created() {
71
+ this.isVisited();
72
72
  },
73
73
  data() {
74
74
  return {
@@ -98,8 +98,8 @@
98
98
  }
99
99
  this.labelColor='mazarine'
100
100
 
101
- },
102
- isVisited() {
101
+ },
102
+ isVisited() {
103
103
  var key = this.router.action + this.rowData.chanceID;
104
104
  if (typeof Cookies.get(key) !== "undefined") {
105
105
  this.labelColor = 'mazarine'
package/src/main.js CHANGED
@@ -14,14 +14,14 @@ Vue.use(ElementUI, { size: 'mini'});
14
14
  // 关闭生产模式下给出的提示
15
15
  Vue.config.productionTip = false;
16
16
  Vue.use(centaline, {
17
- baseUrl: "http://10.88.22.66:17070/max-uplink-api/",
17
+ baseUrl: "http://10.88.22.46:17070/max-uplink-api/",
18
18
  // baseUrl: "http://10.88.22.13:17070/max-uplink-api/",
19
19
  // baseUrl: "http://10.6.1.163:9000/max-uplink-api/v1/form/router",
20
- // baseUrl: "http://10.25.10.67:9999/service-api/v1/form/router",
20
+ // baseUrl: "http://10.25.10.63:9999/service-api/v1/form/router",
21
21
  // baseUrl: "http://10.25.10.67:8080/",
22
22
  // baseUrl: "http://10.88.22.42:9999/service-api/v1/form/router",
23
23
  // baseUrl: "http://10.88.22.69:8080/api/",
24
- // baseUrl: "http://10.88.22.40:8080/api/",
24
+ // baseUrl: "http://10.88.22.16:8080/",
25
25
  // baseUrl: "http://10.58.2.108:8080/",
26
26
  // baseUrl: "http://tjcptest.centaline.com.cn/",
27
27
  // baseUrl: "http://tjcpuat.centaline.com.cn:9090/",
@@ -37,6 +37,9 @@ Vue.use(centaline, {
37
37
  openTabSearch: function (field, submitData) {
38
38
  alert("打开tab页Search:" + field.action)
39
39
  },
40
+ openTabSearchRouter: function (action) {
41
+ alert("打开tab页:" + action)
42
+ },
40
43
  openDetail: function (action) {
41
44
  alert("打开tab页:" + action)
42
45
  },
@@ -53,16 +56,16 @@ Vue.use(centaline, {
53
56
  // 获取请求头
54
57
  getRequestHeaders: function () {
55
58
  return {
56
- oldToken: '11c12506-253c-4995-83fb-84cf51cb23a0',
59
+ oldToken: 'aed9a1f3-c668-4d9e-aa6d-47ebe2b4eedb',
57
60
  token:'aplus eyJhbGciOiJIUzI1NiIsInppcCI6IkRFRiJ9.eNrEjjsOwjAQRO_iOiv5s1570zn-NBwiIuBIoUIkkUCIuxMEdPRMMRq95s1dzOsgWmHIccikIFr0gKQsMJYCURKxKdKYlHr-BH7UNz26yCFkByg7Aiw2A-tYwLDtEubgUibRiHo9i1aRRy-dtdSIab-8gdNKvcA618uu3v5x7rRMm3YkOZAfR6BtAWp_3LQHBNI8KHbkqlHi8QQAAP__.RrBgBqaFlp478oO3g5k_EEtjPt_o8qpJBkzgSP78Wa4',
58
- authObject: '{token:"aplus eyJhbGciOiJIUzI1NiIsInppcCI6IkRFRiJ9.eNrEjrsOgkAQRf9laibZx7A7Qwez0PgRBGFNsDICicb472rUzt5T3OI0595g2fZQQeLakHYetXUlUool1l1kbJTZNC56ariXD_hjvvTWkkQbWqwlKlIgj2yVUSkodan12iQoIF9OUNkgnmJJxhQwD-tbeBbzEtuSz7t8_ce54zo_sy6MPHkJmMkOSG6aULwzGETyQcxI1ka4PwAAAP__.JHGPVLXu2vkxt79ZfugBlTdpl7tarN5jqYRkEyWZ8Kc"}',
61
+ authObject: '{token:"aplus eyJhbGciOiJIUzI1NiIsInppcCI6IkRFRiJ9.eNrEjjEOwjAQBP_iOifl7PP5nC62k4ZHRAk2ElSIJBII8XeCgI6eKaaYZveu5nVSjUrS1hR7A7HTFig5C23vBEIUqYN2hoIM_gP80JcBkbxD7qD1LgIxGRCMApE4Up86E0NSlSrXs2qQvRHHtdWVOo7LOzjx_ArrXC67cvvHudNy3GZZ70eTyYI7TAYIfYZJMgJKJi5c6s3q8QQAAP__.ufrQpM9yM_OKbLBN3IOjInFco7uijiTIijl57f2jdYE"}',
59
62
 
60
63
  originalRequestURL: 'http://10.88.22.67:8080',
61
64
  EstateInfo: '{"estateId":"201806071109550C867184E8BCA56EC3","estateName":"C%E5%BE%A1%E6%9E%97%E5%B1%B1%E6%99%AF%E6%A5%BC"}',
62
65
  estateId: '201806071109550C867184E8BCA56EC3',
63
66
 
64
- // authObject: '{"currentEstate":{"estateId":"20191114134322C29C9B83A84F192964","estateName":"C%E5%BE%A1%E6%9E%97%E5%B1%B1%E6%99%AF%E6%A5%BC"},"platform":1,"osVersion":"","clientVersion":"","machineCode":"ce04f173da7df2e78a9da25595111387","token":"","random":"XNEYyu","time":1683686365201,"sign":"79be68006872c6a088eb49f7e3dab45a"}',
65
- AuthorizationCode:'Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjYyOTk5ZDhjLTYwY2MtNGM0OS05MzM4LWY1MTBhNjI5OGVjYiJ9.A7lCMb4mBHjse6DlvFLVV5jEQSWzREtlbeZJ6StCW4kVyyRG4RlkhRl2FJvaBZEdtoEItI52IEgBsX4X_H1m4w',
67
+ // authObject: '{"currentEstate":{},"platform":1,"osVersion":"","clientVersion":"","machineCode":"470cac848b892484b949c6135dff97d6","token":"","random":"IVMfRJ","time":1689822719042,"sign":"19a04c54292bd44dfa5187983e27c530"}',
68
+ AuthorizationCode:'Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijc5OTlkYWY4LTAzN2ItNDMyMi1iMTRmLTA1OGU4OTgxMzk3OCJ9.6ltiN_svSpuTIi45IHktKTVZLpP2Y1w3oJsjPGFKaNaZ51XDvhhqkEe_0GhnNsJWLxQc4FX4Lpfhgne0SmJjHA',
66
69
  };
67
70
  },
68
71
  // 请求完成事件,可判断是否登录过期执行响应操作