centaline-data-driven 1.6.16 → 1.6.17

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.
@@ -67,6 +67,7 @@ const paths = {
67
67
  "dynamicImage": "./src/centaline/dynamicImage/index.js", //图片
68
68
  "dynamicAppContainer": "./src/centaline/dynamicAppContainer/index.js", //
69
69
  "dynamicSteps": "./src/centaline/dynamicSteps/index.js", //步骤控件
70
+ "dynamicLocation": "./src/centaline/dynamicLocation/index.js", //经纬度获取控件
70
71
  },
71
72
  "plugs": {
72
73
  "api": "./src/centaline/api/index.js", //调用API插件
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "centaline-data-driven",
3
- "version": "1.6.16",
3
+ "version": "1.6.17",
4
4
  "description": "ccai",
5
5
  "author": "hjc <3226136347@qq.com>",
6
6
  "private": false,
package/release-log.md CHANGED
@@ -1,3 +1,15 @@
1
+ # v1.6.17
2
+ 2024-08-14
3
+ 新增
4
+
5
+ 经纬度获取控件
6
+
7
+ 优化
8
+
9
+ 查询条件支持onChanged事件
10
+
11
+ 附件浏览支持之定义路由跳转
12
+
1
13
  # v1.6.16
2
14
  2024-07-15
3
15
 
package/src/Form.vue CHANGED
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div id="form-app" class="data-driven" style="width:100%;height:100%;overflow:auto">
3
3
  <!-- <ct-form :source="formdata.content" :apiParam="apiParam"></ct-form> -->
4
- <ct-form :api="'/saleconfigurationmanagement/personnelcommissionallocationmethod/getLayoutOfNew'" :apiParam="apiParam" :topHeight="topHeight" :documentHeight="'600px'"></ct-form>
4
+ <ct-form :api="'/estatemanage/estate/getEstateInfo'" :apiParam="apiParam" :topHeight="topHeight" :documentHeight="'600px'"></ct-form>
5
5
  <ct-dialog-list></ct-dialog-list>
6
6
  </div>
7
7
  </template>
@@ -31,9 +31,10 @@
31
31
 
32
32
  <!-- CCES -->
33
33
  <!-- <ct-searchlist :apiParam="para" :searchConditionApi="'/salemattersmanage/agentuserlist/getLayoutOfSearch'" :searchDataApi="'/salemattersmanage/agentuserlist/getList'"></ct-searchlist> -->
34
- <!-- <ct-searchlist :apiParam="para" :searchConditionApi="'/contractmanage/ContractList/getLayoutOfSearch'" :searchDataApi="'/contractmanage/ContractList/getList'"></ct-searchlist> -->
35
- <ct-searchlist :apiParam="para" :searchConditionApi="'/sunexpensemanage/sunexpenserecordlist/getLayoutOfSearch'" :searchDataApi="'/sunexpensemanage/sunexpenserecordlist/getList'"></ct-searchlist>
34
+ <ct-searchlist :apiParam="para" :searchConditionApi="'/contractmanage/ContractList/getLayoutOfSearch'" :searchDataApi="'/contractmanage/ContractList/getList'"></ct-searchlist>
35
+ <!-- <ct-searchlist :apiParam="para" :searchConditionApi="'/sunexpensemanage/sunexpenserecordlist/getLayoutOfSearch'" :searchDataApi="'/sunexpensemanage/sunexpenserecordlist/getList'"></ct-searchlist> -->
36
36
  <!-- <ct-searchlist :apiParam="para" :searchConditionApi="'/customermanage/ProjectCustomerList/getLayoutOfSearch'" :searchDataApi="'/customermanage/ProjectCustomerList/getList'"></ct-searchlist> -->
37
+ <!-- <ct-searchlist :apiParam="para" :searchConditionApi="'/workwxmanage/WorkWXApplicationList/getLayoutOfSearch'" :searchDataApi="'/workwxmanage/WorkWXApplicationList/getList'"></ct-searchlist> -->
37
38
  <!-- CCES -->
38
39
 
39
40
  <!-- <ct-searchlist :apiParam="para"
@@ -155,6 +155,20 @@ html {
155
155
  .ct-iti .el-input__inner,.ct-text .el-input__inner,.ct-so .ct-input_inner{
156
156
  border: 1px solid var(--bagGray);
157
157
  }
158
+ .ct-location .el-location-input{
159
+ border: 1px solid var(--bagGray);
160
+ line-height: 24px;
161
+ padding-left: 5px;
162
+ color: var(--centalineBlue);
163
+ border-radius: 6px !important;
164
+ font-size: inherit;
165
+ }
166
+ .ct-location .el-location-input:hover{
167
+ border-color: var(--centalineBlue);
168
+ }
169
+ .ct-location .el-location-input:focus{
170
+ outline:0;
171
+ }
158
172
  .ct-dialog_wrapper {
159
173
  /*position: absolute;*/
160
174
  position: fixed;
@@ -54,8 +54,7 @@ export default {
54
54
  }
55
55
  });
56
56
  },
57
- load(data) {
58
- console.log('data',data);
57
+ load(data) {
59
58
  this.data = data;
60
59
  this.model = data;
61
60
  this.model.self = this;
@@ -175,14 +175,12 @@
175
175
  <span class="Public-classification" style="color: #fff;border-radius: 0px 0px 4px 4px;text-align: left;line-height: 26px;display: inline-flex;overflow: hidden;" v-if="(model.lock) || model.paramName">
176
176
  <!--锁定-->
177
177
  <span v-if="model.lock" class="el-dropdown-link">
178
- <span style="width: 80px; height: 26px; display: inline-flex;overflow: hidden;">&nbsp;{{ model.mediaLabe.mediaLabelName
179
- }}</span>
178
+ <span style="width: 80px; height: 26px; display: inline-flex;overflow: hidden;">&nbsp;{{ model.mediaLabe.mediaLabelName}}</span>
180
179
  </span>
181
180
  <!--复杂分类-->
182
181
  <span v-else-if="model.isComplexClassify" class="el-dropdown-link"
183
182
  @click.stop="classifyFormClickHandle(model.mediaLabe)">
184
- <span style="width: 80px; height: 26px; display: inline-flex;overflow: hidden;">&nbsp;{{ model.mediaLabe.mediaLabelName
185
- }}</span>
183
+ <span style="width: 80px; height: 26px; display: inline-flex;overflow: hidden;">&nbsp;{{ model.mediaLabe.mediaLabelName}}</span>
186
184
  <i class="el-icon-arrow-down el-icon--right"></i>
187
185
  </span>
188
186
  <!--简单分类-->
@@ -191,8 +189,7 @@
191
189
 
192
190
 
193
191
  <span class="el-dropdown-link" @click.stop="classifyClickHandle">
194
- <span style="width: 80px; height: 26px; display: inline-flex;overflow: hidden;">&nbsp;{{ model.mediaLabe.mediaLabelName
195
- }}</span>
192
+ <span style="width: 80px; height: 26px; display: inline-flex;overflow: hidden;">&nbsp;{{ model.mediaLabe.mediaLabelName}}</span>
196
193
  <i class="el-icon-arrow-down el-icon--right" style="color: #fff;"></i>
197
194
  </span>
198
195
  <el-dropdown-menu slot="dropdown" class="el-upload-list__item-preview">
@@ -387,7 +384,17 @@ export default {
387
384
  var index = MediaAlbum[0].medias.findIndex(
388
385
  (v) => (v === file.source)
389
386
  );
390
- self.$common.viewerfile((this.model.label || "预览媒体"), MediaAlbum, 0, index, self.model.mediaViewPageType);
387
+
388
+ if(self.model.moreActionRouter){
389
+ let submitData = {};
390
+ submitData = self.model.form.self.getFileData(self.model.moreActionRouter);
391
+ submitData.index=index;
392
+ submitData = self.model.moreActionRouter.getActionPara(submitData).para;
393
+ self.$emit('tableButtonClick',self.model.moreActionRouter,submitData);
394
+ }
395
+ else{
396
+ self.$common.viewerfile((this.model.label || "预览媒体"), MediaAlbum, 0, index, self.model.mediaViewPageType);
397
+ }
391
398
  },
392
399
  handleEdit(file) {
393
400
  var self = this;
@@ -18,6 +18,7 @@
18
18
  @click="fieldClickHandler(col,$event)" @change="changeHandler(col,$event)" @enter="enterHandler(col,$event)"
19
19
  @input="inputHandler(col,$event)" @importComplete="importComplete" @blur="blurHandler(col,$event)"
20
20
  @popupSearchList="popupSearchListHandler" @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
21
+ @popupLocation="popupLocationHandler"
21
22
  @tableButtonClick="clickHandler"></component>
22
23
  </el-col>
23
24
  </template>
@@ -28,6 +29,7 @@
28
29
  @click="fieldClickHandler(col,$event)" @change="changeHandler(col,$event)" @enter="enterHandler(col,$event)"
29
30
  @input="inputHandler(col,$event)" @importComplete="importComplete" @blur="blurHandler(col,$event)"
30
31
  @popupSearchList="popupSearchListHandler" @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
32
+ @popupLocation="popupLocationHandler"
31
33
  @tableButtonClick="clickHandler"></component>
32
34
  </el-col>
33
35
  </template>
@@ -48,6 +50,7 @@
48
50
  @click="fieldClickHandler(col,$event)" @change="changeHandler(col,$event)" @enter="enterHandler(col,$event)"
49
51
  @input="inputHandler(col,$event)" @importComplete="importComplete" @blur="blurHandler(col,$event)"
50
52
  @popupSearchList="popupSearchListHandler" @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
53
+ @popupLocation="popupLocationHandler"
51
54
  @tableButtonClick="clickHandler"></component>
52
55
  </el-col>
53
56
  </template>
@@ -57,7 +60,8 @@
57
60
  :fileData="getFileData(col)" :from="'form'" :documentHeight="documentHeight" :documentWidth="documentWidth"
58
61
  @click="fieldClickHandler(col,$event)" @change="changeHandler(col,$event)" @enter="enterHandler(col,$event)"
59
62
  @input="inputHandler(col,$event)" @importComplete="importComplete" @blur="blurHandler(col,$event)"
60
- @popupSearchList="popupSearchListHandler" @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
63
+ @popupSearchList="popupSearchListHandler" @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
64
+ @popupLocation="popupLocationHandler"
61
65
  @tableButtonClick="clickHandler"></component>
62
66
  </el-col>
63
67
  </template>
@@ -82,7 +86,8 @@
82
86
  :fileData="getFileData(col)" :from="'form'" :documentHeight="documentHeight" :documentWidth="documentWidth"
83
87
  @click="fieldClickHandler(col,$event)" @change="changeHandler(col,$event)" @enter="enterHandler(col,$event)"
84
88
  @input="inputHandler(col,$event)" @importComplete="importComplete" @blur="blurHandler(col,$event)"
85
- @popupSearchList="popupSearchListHandler" @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
89
+ @popupSearchList="popupSearchListHandler" @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
90
+ @popupLocation="popupLocationHandler"
86
91
  @tableButtonClick="clickHandler"></component>
87
92
  </el-col>
88
93
  </template>
@@ -93,6 +98,7 @@
93
98
  @click="fieldClickHandler(col,$event)" @change="changeHandler(col,$event)" @enter="enterHandler(col,$event)"
94
99
  @input="inputHandler(col,$event)" @importComplete="importComplete" @blur="blurHandler(col,$event)"
95
100
  @popupSearchList="popupSearchListHandler" @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
101
+ @popupLocation="popupLocationHandler"
96
102
  @tableButtonClick="clickHandler"></component>
97
103
  </el-col>
98
104
  </template>
@@ -112,6 +118,7 @@
112
118
  @click="fieldClickHandler(col,$event)" @change="changeHandler(col,$event)" @enter="enterHandler(col,$event)"
113
119
  @input="inputHandler(col,$event)" @importComplete="importComplete" @blur="blurHandler(col,$event)"
114
120
  @popupSearchList="popupSearchListHandler" @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
121
+ @popupLocation="popupLocationHandler"
115
122
  @tableButtonClick="clickHandler"></component>
116
123
  </el-col>
117
124
  </template>
@@ -122,6 +129,7 @@
122
129
  @click="fieldClickHandler(col,$event)" @change="changeHandler(col,$event)" @enter="enterHandler(col,$event)"
123
130
  @input="inputHandler(col,$event)" @importComplete="importComplete" @blur="blurHandler(col,$event)"
124
131
  @popupSearchList="popupSearchListHandler" @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
132
+ @popupLocation="popupLocationHandler"
125
133
  @tableButtonClick="clickHandler"></component>
126
134
  </el-col>
127
135
  </template>
@@ -1269,6 +1277,43 @@
1269
1277
  };
1270
1278
  this.$common.openDialog(dialogOption);
1271
1279
  },
1280
+ popupLocationHandler(field, router, callBack) {
1281
+ var self = this;
1282
+ var submitData = self.getFileData(router);
1283
+ var tempFormData = self.model.getFormObj();
1284
+ submitData.lng=field.code1;
1285
+ submitData.lat=field.code2;
1286
+ submitData = router.getActionPara(submitData).para;
1287
+
1288
+ var dialogOption = {
1289
+ title: router.pageTitle || router.label,
1290
+ pane: self.$common.getParentPane(self),
1291
+ content: [{
1292
+ component: "ct-mapBaidu",
1293
+ attrs: {
1294
+ field: router,
1295
+ apiParam: submitData,
1296
+ width: router.dialogWidth + "px",
1297
+ height: router.dialogHeight + "px",
1298
+ documentHeight: self.documentHeight,
1299
+ documentWidth: self.documentWidth,
1300
+ openType : 'Location'
1301
+ },
1302
+ on: {
1303
+ submit(ev) {
1304
+ if (callBack) {
1305
+ callBack(ev);
1306
+ }
1307
+ self.$common.closeDialog(dialogOption.dialog);
1308
+ },
1309
+ closeDialog(ev) {
1310
+ self.$common.closeDialog(dialogOption.dialog);
1311
+ }
1312
+ }
1313
+ }]
1314
+ };
1315
+ this.$common.openDialog(dialogOption);
1316
+ },
1272
1317
  validExcute() {
1273
1318
  var self = this;
1274
1319
  var rtnBool = true;
@@ -0,0 +1,11 @@
1
+ import dynamicLocation from './src/dynamicLocation';
2
+
3
+ dynamicLocation.install = function (Vue) {
4
+ Vue.component(dynamicLocation.name, dynamicLocation);
5
+ }
6
+
7
+ if (typeof window !== 'undefined' && window.Vue) {
8
+ window.Vue.use(dynamicLocation);
9
+ }
10
+
11
+ export default dynamicLocation;
@@ -0,0 +1,69 @@
1
+ <template>
2
+ <div class="field-top">
3
+ <div v-if="model !== null" class="ct-location" style="width:100%;display:flex">
4
+ <div class="el-input el-input--mini el-input-group el-input-group--prepend el-input--suffix showLabel lableinput text-justify">
5
+ <div v-if="model.showLabel && model.label" class="el-input-group__prepend">
6
+ <div slot="prepend" class="label-ellipsis" :class="[model.labelClass]" :title="model.label">
7
+ {{model.label}}
8
+ </div>
9
+ </div>
10
+ <div style="display:inline-flex;padding-left:0px;" v-bind="model.attrs" :class="model.locked ? 'ct-is-disabled' : ''">
11
+ <input style="text-align:left;width:100%" class="el-location-input hoverColor" :placeholder="model.attrs.placeholder1"
12
+ v-model="model.value" @change="changeHandler($event)"/>
13
+ <input style="text-align:left;width:100%;margin-left:5px;" class="el-location-input hoverColor" :placeholder="model.attrs.placeholder2"
14
+ v-model="model.value1" @change="changeHandler($event);"/>
15
+ </div>
16
+ <div v-if="model.moreActionRouter" style="display: inline-block;margin-left: 5px;">
17
+ <img v-if="model.moreActionRouter.imgUrl" class="ct-tablecurrencyImg ct-tablecurrencyItem"
18
+ :src="model.moreActionRouter.imgUrl" :title="model.moreActionRouter.label" @click="popupLocationHandler($event)"/>
19
+ <el-button v-else size="mini" type="primary" class="h26" @click="popupLocationHandler($event)">
20
+ {{model.moreActionRouter.label}}
21
+ </el-button>
22
+ </div>
23
+ </div>
24
+ <transition name="el-fade-in">
25
+ <span v-show="!valid" class="errorMessage">
26
+ {{validMessage}}
27
+ </span>
28
+ </transition>
29
+ </div>
30
+ </div>
31
+ </template>
32
+ <script>
33
+ import dynamicElement from '../../mixins/dynamicElement';
34
+ export default {
35
+ name: 'ct-Location',
36
+ mixins: [dynamicElement],
37
+ props: {
38
+ vmodel: Object
39
+ },
40
+ data() {
41
+ return {
42
+ }
43
+ },
44
+ created() {
45
+ if (typeof this.vmodel === 'undefined') {
46
+ this.model = this.loaderObj.Location(this.source);
47
+ }
48
+ else {
49
+ this.model = this.vmodel;
50
+ }
51
+ this.model.self=this;
52
+ },
53
+ methods: {
54
+ popupLocationHandler: function (e) {
55
+ var self = this;
56
+ self.showDrop=false;
57
+ self.$emit('popupLocation', self.model, self.model.moreActionRouter, (data) => {
58
+ if(data){
59
+ self.model.value=data.lng;
60
+ self.model.value1=data.lat;
61
+ }
62
+ });
63
+ },
64
+ }
65
+ }
66
+ </script>
67
+ <style scoped>
68
+
69
+ </style>
@@ -1,7 +1,21 @@
1
1
  <template>
2
2
  <div>
3
- <baidu-map :center="center" :zoom="zoom" @ready="handler" :style="{height:mapHeight + 'px'}">
3
+ <div v-if="openType=='Location'" style="text-align: right;padding-right:10px;">
4
+ <el-button size="mini" type="primary" class="h26" @click="closeHandler($event)">
5
+ 取消
6
+ </el-button>
7
+ <el-button size="mini" type="primary" class="h26" @click="submitHandler($event)">
8
+ 确定
9
+ </el-button>
10
+ </div>
11
+ <baidu-map :center="center" :zoom="zoom"
12
+ :scroll-wheel-zoom="scroll_wheel_zoom" :double-click-zoom="double_click_zoom"
13
+ @ready="handler" @dragend="dragendHandler" @tilesloaded="tilesloadedHandler"
14
+ :style="{height:mapHeight + 'px'}">
4
15
  <bm-navigation v-if="flagShowZoom" anchor="BMAP_ANCHOR_TOP_RIGHT"></bm-navigation>
16
+ <bm-marker :position="markerPosition" :dragging="markerDragging" :animation="markerAnimation" @dragend="markerDragendHandler">
17
+ <bm-label :content="markerLabel" :offset="{width: -35, height: 30}"/>
18
+ </bm-marker>
5
19
  </baidu-map>
6
20
  </div>
7
21
  </template>
@@ -24,13 +38,24 @@
24
38
  type: Number,
25
39
  default: -1
26
40
  },
41
+ openType: {
42
+ String,
43
+ default: 'Browse',
44
+ },
27
45
  },
28
46
  data() {
29
47
  return {
30
- center: {lng: 0, lat: 0},// 定位位置
48
+ center: {lng: 0, lat: 0},// 定位位置
31
49
  zoom: 3,// 地图放大等级
32
50
  flagShowZoom:false,//是否显示缩放控件
33
51
  mapHeight:100,
52
+ scroll_wheel_zoom:false,
53
+ double_click_zoom:false,
54
+ markerDragging:false,
55
+ markerPosition: {lng: 0, lat: 0},// 定位位置
56
+ markerLabel:"",
57
+ markerAnimation:'',
58
+ rtnPoint:null,
34
59
  };
35
60
  },
36
61
  methods: {
@@ -50,6 +75,13 @@
50
75
  this.mapHeight=document.documentElement.clientHeight - this.topHeight;
51
76
  }
52
77
 
78
+ if(this.openType=='Location'){
79
+ this.flagShowZoom=true;
80
+ this.markerDragging=true;
81
+ this.mapHeight=this.mapHeight-28;
82
+ this.markerAnimation='BMAP_ANIMATION_BOUNCE';
83
+ }
84
+
53
85
  if(this.apiParam){
54
86
  if(this.apiParam.zoom){
55
87
  this.zoom=Number(this.apiParam.zoom);
@@ -57,13 +89,25 @@
57
89
  if(this.apiParam.flagShowZoom && this.apiParam.flagShowZoom=='1'){
58
90
  this.flagShowZoom=true;
59
91
  }
60
- if(this.apiParam.address && this.apiParam.city){
61
- var myGeo = new BMap.Geocoder();
92
+ if(this.apiParam.address){
93
+ this.markerLabel=this.apiParam.address;
94
+ }
95
+
96
+ if(this.apiParam.lng && this.apiParam.lat){
97
+ setTimeout(() => {
98
+ //偏移处理
99
+ self.center.lng = self.apiParam.lng;
100
+ self.center.lat = self.apiParam.lat;
101
+ self.markerPosition.lng = self.apiParam.lng;
102
+ self.markerPosition.lat = self.apiParam.lat;
103
+ },500)
104
+ }
105
+ else if(this.apiParam.address && this.apiParam.city){
106
+ let myGeo = new BMap.Geocoder();
62
107
  myGeo.getPoint(this.apiParam.address, function(point){
63
108
  if(point){
64
109
  self.center=point;
65
- map.addOverlay(new BMap.Marker(point, {title:self.apiParam.address}));
66
- map.addOverlay(new BMap.Label(self.apiParam.address, {position: point,offset: new BMap.Size(-25, 5)}));
110
+ self.markerPosition=point;
67
111
  }
68
112
  else{
69
113
  alert('您选择的地址没有解析到结果!');
@@ -74,8 +118,20 @@
74
118
  this.center=this.apiParam.city;
75
119
  }
76
120
  }
77
-
78
- }
121
+ },
122
+ dragendHandler(event){
123
+ },
124
+ tilesloadedHandler(event){
125
+ },
126
+ markerDragendHandler(event){
127
+ this.rtnPoint=event.point;
128
+ },
129
+ submitHandler(){
130
+ this.$emit('submit',this.rtnPoint || this.markerPosition);
131
+ },
132
+ closeHandler(){
133
+ this.$emit('closeDialog');
134
+ },
79
135
  }
80
136
  }
81
137
  </script>
@@ -723,11 +723,13 @@ import dynamicElement from '../../mixins/dynamicElement';
723
723
  self.loadScreen();
724
724
  self.loadHighScreen();
725
725
  self.setScreenShow();
726
- if (self.model.onload) {
726
+ if(self.model.scripts){
727
727
  self.model.scripts.formData = self.model.formData;
728
728
  self.model.scripts.formData.form = self.model;
729
729
  self.model.scripts.formData.excuteData = self.model.screen;
730
730
  self.model.scripts.formData.fieldsDic = self.model.screenDic;
731
+ }
732
+ if (self.model.onload) {
731
733
  self.$common.excute.call(self.model.scripts, self.model.onload);
732
734
  }
733
735
  self.isLoading = false;
@@ -763,8 +765,9 @@ import dynamicElement from '../../mixins/dynamicElement';
763
765
  // if (typeof this.model.scripts !== 'undefined') {
764
766
  // this.model.scripts.formData.setExcuteListData(this.model.fields);
765
767
  // }
766
- // this.model.scripts.$fd = field.id;
767
- // this.$common.excute.call(this.model.scripts, field.change);
768
+
769
+ this.model.scripts.$fd = field.id;
770
+ this.$common.excute.call(this.model.scripts, field.change);
768
771
  }
769
772
 
770
773
  this.model.isChanged = true;
@@ -772,12 +775,12 @@ import dynamicElement from '../../mixins/dynamicElement';
772
775
  // self.model.requiredHandle(field);
773
776
  //self.model.validMrf(field);
774
777
 
775
- // if (field.onAfterChanged && field.type !== 4) {
776
- // var router = self.model.actionRouters.find((v) => {
777
- // return v.id === field.onAfterChanged;
778
- // });
779
- // self.clickHandler(router);
780
- // }
778
+ if (field.onAfterChanged && field.type !== 4) {
779
+ var router = self.model.actionRouters.find((v) => {
780
+ return v.id === field.onAfterChanged;
781
+ });
782
+ self.clickHandlerfield(router);
783
+ }
781
784
 
782
785
  self.$forceUpdate();
783
786
  },
@@ -2465,7 +2465,6 @@ export default {
2465
2465
  // 判断是否包括样式
2466
2466
  hasClass(el, className) {
2467
2467
  let reg = new RegExp("(^|\\s)" + className + "($|\\s)");
2468
- console.log(reg.test(el.className));
2469
2468
  return reg.test(el.className);
2470
2469
  },
2471
2470
  // 添加样式
@@ -5,11 +5,12 @@ import Vue from 'vue';
5
5
  import common from '../../../common';
6
6
  import valid from '../../../validate/index';
7
7
  //元数据、附件列表元数据、对应router、下拉框数据api
8
- const box = function (source, fileSourceList, router, optionApi,videoPlayIconUrl) {
8
+ const box = function (source, fileSourceList, router, optionApi,videoPlayIconUrl,moreActionRouter) {
9
9
  var self = this;
10
10
  var init = function (data) {
11
11
  var rtn = {
12
12
  QRCodeStatusAction:'',
13
+ moreActionRouter: moreActionRouter,
13
14
  get min2() {
14
15
  return source.minValue2;
15
16
  },
@@ -397,11 +398,10 @@ const box = function (source, fileSourceList, router, optionApi,videoPlayIconUrl
397
398
  }
398
399
  rtn.fileList.push(awaitfile);
399
400
  },
400
- jsSetFile(data)
401
- {
401
+ jsSetFile(data){
402
402
  var photos = JSON.parse(data);
403
- photos.forEach((v) => {
404
- if(rtn.fileList.length<parseInt(rtn.max || 999)){
403
+ photos.forEach((v) => {
404
+ if(rtn.fileList.length<parseInt(rtn.max || 999)){
405
405
  v.videoCoverFileName=v.videoCoverFileName||null;
406
406
  v.thumbnailUrl=v.thumbnailUrl||'';
407
407
  v.mediaSourceTypeID=v.mediaSourceTypeID||null;
@@ -420,12 +420,11 @@ const box = function (source, fileSourceList, router, optionApi,videoPlayIconUrl
420
420
  FileData.width=v.width;
421
421
  FileData.height=v.height;
422
422
  rtn.fileList.push(FileData);
423
- rtn.self.handleChange();
424
-
425
- }
426
- });
427
- },
428
- setByPieces(res, Progress, file) {
423
+ rtn.self.handleChange();
424
+ }
425
+ });
426
+ },
427
+ setByPieces(res, Progress, file) {
429
428
  if (res.rtnCode === Enum.ReturnCode.Successful) {
430
429
  //下面的方式绑定,会有一些问题 todo 不强与页面关联
431
430
  var data = {
@@ -0,0 +1,11 @@
1
+ import base from '../../index';
2
+ import Base from './Base';
3
+ const Location = function (source,moreActionRouter) {
4
+ var rtn = {
5
+ moreActionRouter: moreActionRouter,
6
+ };
7
+ rtn = base.copy(Base(source), rtn);
8
+ return rtn;
9
+ };
10
+
11
+ export default Location;
@@ -129,8 +129,8 @@ const SearchScreen = function (source, callBack, screenPara, prevParam) {
129
129
  return rtn._scripts;
130
130
  }
131
131
  else {
132
- if (typeof source.scripts !== 'undefined') {
133
- rtn._scripts = base.common.eval(source.scripts);
132
+ if (typeof source.content.scripts !== 'undefined') {
133
+ rtn._scripts = base.common.eval(source.content.scripts);
134
134
  return rtn._scripts;
135
135
  }
136
136
  else {
@@ -286,6 +286,11 @@ const Enum = {
286
286
  /// </summary>
287
287
  Steps: 57,
288
288
 
289
+ /// <summary>
290
+ /// 标签集合控件,每个标签是一个 ModelListItem 对象,可以拖动改变每个标签的顺序,locked 状态下不能拖动
291
+ /// </summary>
292
+ Tags: 58,
293
+
289
294
  },
290
295
 
291
296
  //返回状态码
@@ -40,6 +40,7 @@ import Contact from '../Contact';
40
40
  import LH from '../LH';
41
41
  import Image from '../Image';
42
42
  import Steps from '../Steps';
43
+ import Location from '../Location';
43
44
 
44
45
  const LibFunction = {
45
46
  install(Vue) {},
@@ -315,7 +316,8 @@ const LibFunction = {
315
316
  }
316
317
  })
317
318
  }
318
- item = File(field, files, router, source.parameterAction,source.videoPlayIconUrl);
319
+ moreActionRouter = LibFunction.getRouter(source.actionRouters, field.moreActionRouterKey);
320
+ item = File(field, files, router, source.parameterAction,source.videoPlayIconUrl,moreActionRouter);
319
321
  item.is = 'ct-file';
320
322
  break;
321
323
  case Enum.ControlType.PhotoSelect: //图片选择
@@ -394,6 +396,11 @@ const LibFunction = {
394
396
  item = Steps(field);
395
397
  item.is = 'ct-Steps';
396
398
  break;
399
+ case Enum.ControlType.Location: //位置获取控件
400
+ moreActionRouter = LibFunction.getRouter(source.actionRouters, field.moreActionRouterKey);
401
+ item = Location(field,moreActionRouter);
402
+ item.is = 'ct-Location';
403
+ break;
397
404
  default:
398
405
  item = L(field);
399
406
  item.is = 'ct-labelText';
@@ -434,7 +441,7 @@ const LibFunction = {
434
441
  return field.singleLine === true || field.controlType === Enum.ControlType.GroupSplitLine || field.controlType === Enum.ControlType.Repeat
435
442
  || field.controlType === Enum.ControlType.List || field.controlType === Enum.ControlType.File
436
443
  || field.controlType === Enum.ControlType.SliceUpload || field.controlType === Enum.ControlType.PhoneDial
437
- || field.controlType === Enum.ControlType.Steps
444
+ || field.controlType === Enum.ControlType.Steps || field.controlType === Enum.ControlType.Location
438
445
  || field.controlType === Enum.ControlType.SearchPage;
439
446
  },
440
447
  showLabel: showLabel
@@ -48,6 +48,7 @@ const loader = {
48
48
  Image: require("./ctl/Image.js").default,
49
49
  AppContainer: require("./ctl/AppContainer.js").default,
50
50
  Steps: require("./ctl/Steps.js").default,
51
+ Location: require("./ctl/Location.js").default,
51
52
  };
52
53
 
53
54
  export default loader;
@@ -41,7 +41,9 @@
41
41
  props: {
42
42
  router: Object,
43
43
  rowData: Object,
44
- colValue: String,
44
+ colValue: {
45
+ type: [String, Number], // 现在 colValue 可以是对象或数字
46
+ },
45
47
  columnName: String,
46
48
  rowindex: Number,
47
49
  isOperationalColumn: {