centaline-data-driven 1.2.16 → 1.2.19

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/config/dev.env.js CHANGED
@@ -5,7 +5,7 @@ const prodEnv = require('./prod.env')
5
5
  module.exports = merge(prodEnv, {
6
6
  NODE_ENV: '"development"',
7
7
  // BASE_API: '"http://10.88.1.151:8085/v1/form/router"',//aplus黄兰
8
- BASE_API: '"http://10.88.22.13:7070/v1/form/router"',//max本地
8
+ BASE_API: '"http://10.88.22.50:7070/v1/form/router"',//max本地
9
9
  //BASE_API: '"http://10.88.22.71:5008/api/doaction/router"',
10
10
  // BASE_API: '"http://tjcptest.centaline.com.cn/v1/form/router"',
11
11
  // BASE_API: '"http://10.88.200.31:5000/gateway/redirect"',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "centaline-data-driven",
3
- "version": "1.2.16",
3
+ "version": "1.2.19",
4
4
  "description": "ccai",
5
5
  "author": "hjc <3226136347@qq.com>",
6
6
  "private": false,
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -92,7 +92,7 @@
92
92
  </div>
93
93
  </div>
94
94
  </div>
95
- </div>
95
+ </div>
96
96
  </div>
97
97
  <div class="hous-b">
98
98
  <img src="../../../assets/ewm.png" alt="" class="code-ewm">
@@ -162,7 +162,7 @@
162
162
  </div>
163
163
  </div>
164
164
  <div class="open-mero" @click="allInfo=!allInfo">{{allInfo?'收起全部':'查看全部'}}
165
- <img src="../../../assets/mero.png" alt="" class="mero" > <!--:class="allInfo?'more-colose':'more-open'" -->
165
+ <!--<img src="../../../assets/mero.png" alt="" class="mero" > :class="allInfo?'more-colose':'more-open'" -->
166
166
 
167
167
 
168
168
  </div>
@@ -343,7 +343,7 @@
343
343
  <el-tab-pane label="楼主" name="second">楼主</el-tab-pane>
344
344
  </el-tabs>
345
345
  <div class="open-mero" @click="allIn=!allIn">{{allIn?'收起全部':'查看全部'}}
346
- <img src="../../../assets/mero.png" alt="" class="mero" > <!--:class="allIn?'more-colose':'more-open'" -->
346
+ <!--<img src="../../../assets/mero.png" alt="" class="mero" > :class="allIn?'more-colose':'more-open'" -->
347
347
  </div>
348
348
  </div>
349
349
  <div class="operation-list p0">
@@ -30,15 +30,17 @@
30
30
  <div>
31
31
  <component v-if="model.otherTradeActionRouter!==null" v-bind="model.otherTradeActionRouter" class="max-default"
32
32
  :is="model.otherTradeActionRouter.is" :vmodel="model.otherTradeActionRouter" :api="model.optionApi" @click="fieldClickHandler(model.otherTradeActionRouter,$event)"></component>
33
- <component class="max-report" v-if="model.actionRouters!==null && model.actionRouters[0]!==null"
34
- :is="model.actionRouters[0].is" :vmodel="model.actionRouters[0]" :api="model.optionApi" @click="fieldClickHandler(model.actionRouters[0],$event)"></component>
33
+ <img src="../../../assets/T.png" alt="" style="width: 26px;height: 26px;vertical-align: bottom;margin-left:11px">
34
+ <img src="../../../assets/B.png" alt="" style="width: 26px;height: 26px;vertical-align: bottom;margin-left:8px">
35
35
  </div>
36
36
  <div class="mt5">
37
+ <component class="max-report w93" v-if="model.actionRouters!==null && model.actionRouters[0]!==null"
38
+ :is="model.actionRouters[0].is" :vmodel="model.actionRouters[0]" :api="model.optionApi" @click="fieldClickHandler(model.actionRouters[0],$event)"></component>
37
39
  <component class="max-report" v-if="model.actionRouters!==null && model.actionRouters[1]!==null"
38
40
  :is="model.actionRouters[1].is" :vmodel="model.actionRouters[1]" :api="model.optionApi" @click="fieldClickHandler(model.actionRouters[1],$event)"></component>
39
41
  </div>
40
42
  <div class="mt5">
41
- <button type="button" class="el-button el-button--info el-button--mini max-report rel"
43
+ <button type="button" class="el-button el-button--info el-button--mini max-report rel w64"
42
44
  v-if="model.actionRoutersMoreList !== null">
43
45
  <img src="../../../assets/dian.png" alt="" class="report">
44
46
  <ul class="report-cont">
@@ -105,7 +107,7 @@
105
107
  <img :src="model.fields1Dic.ewmUrl.value" alt="" class="code-ewm">
106
108
  <div class="info-row mb20 mt5">
107
109
  <div class="row-i"><span>{{model.fields1Dic.Price.label}}</span><span class="base-clolr expand-f">{{model.fields1Dic.Price.value}}</span><span class="base-clolr">{{model.fields1Dic.Price.unitName}}</span>
108
- <img src="" alt="">
110
+ <img src="../../../assets/jsq.png" class="img-jsq" alt="">
109
111
  </div>
110
112
  <div class="row-i"><span>{{model.fields1Dic.PriceUnit.label}}</span><span class="base-clolr">{{model.fields1Dic.PriceUnit.value}}</span><span class="base-clolr">{{model.fields1Dic.PriceUnit.unitName}}</span></div>
111
113
  <div class="row-i"><span>{{model.fields1Dic.PriceLine.label}}</span><div>{{model.fields1Dic.PriceLine.value}}{{model.fields1Dic.PriceLine.unitName}}</div></div></div>
@@ -132,7 +134,8 @@
132
134
  </div>
133
135
  </div>
134
136
  <div class="open-mero" @click="allInfo=!allInfo">{{allInfo?'收起全部':'查看全部'}}
135
- <img src="../../../assets/mero.png" alt="" class="mero" > <!--:class="allInfo?'more-colose':'more-open'" -->
137
+ <!-- <img src="../../../assets/mero.png" alt="" class="mero" > :class="allInfo?'more-colose':'more-open'" -->
138
+ <i :class="allInfo?'more-colose':'mero-open'"></i>
136
139
  </div>
137
140
  </div>
138
141
  <div class="contacts-info base-box">
@@ -247,7 +250,8 @@
247
250
  <div class="text">{{info.mobileNo}}</div>
248
251
  </div>
249
252
  <div class="open-mero" @click="allIn=!allIn">{{allIn?'收起全部':'查看全部'}}
250
- <img src="../../../assets/mero.png" alt="" class="mero" > <!--:class="allIn?'more-colose':'more-open'" -->
253
+ <!-- <img src="../../../assets/mero.png" alt="" class="mero" > :class="allIn?'more-colose':'more-open'" -->
254
+ <i :class="allIn?'more-colose':'mero-open'"></i>
251
255
  </div>
252
256
  </div>
253
257
  </div>
@@ -262,7 +266,7 @@
262
266
  <div class="t-item">
263
267
  <span class="i">{{col.operationName}}</span>
264
268
  </div>
265
- <div class="t-item"><span class="i">{{col.desc}}</span></div>
269
+ <div class="t-item"><span class="i" :class="'operation'+col.flagKey">{{col.desc}}</span></div>
266
270
  <div class="t-item" style="height: 50px;">
267
271
  <component class="el-button t-but el-button--info max-info" v-if="col.router && col.router.show" :is="col.router.is" :vmodel="col.router" :api="model.optionApi" @click="fieldClickHandler(col.router,$event)"></component>
268
272
  </div>
@@ -502,7 +506,6 @@
502
506
  loadOperation() {
503
507
  this.model._operationList=null;
504
508
  this.model._operationRouters=[];
505
- this.model.operationKey=this.model.operationKey+1;
506
509
  this.model.getOperationList();
507
510
  },
508
511
  lookOwner() {
@@ -657,11 +660,9 @@
657
660
  }
658
661
  else{
659
662
  field.doAction(submitData, (data) => {
660
- if (!field.flagFreshCurrentRow) {
661
- self.model.doAction({ responseData: data });
662
- if(callBack){
663
- callBack();
664
- }
663
+ self.model.doAction(data,field);
664
+ if(callBack){
665
+ callBack();
665
666
  }
666
667
  })
667
668
  }
@@ -699,9 +700,17 @@
699
700
  }
700
701
  </script>
701
702
  <style lang="scss" scoped>
703
+ .operation0{
704
+ color: #000000;
705
+ }
706
+ .operation1{
707
+ color: #ff503f;
708
+ }
709
+ .operation2{
710
+ color: #388cd3;
711
+ }
702
712
  .main{
703
- background: #ECEFF2;
704
-
713
+ background: #ECEFF2;
705
714
  }
706
715
  .rel{
707
716
  position: relative;
@@ -710,6 +719,8 @@
710
719
  overflow-y: auto;
711
720
  overflow-x: auto;
712
721
  }
722
+ .w64{width: 64px!important}
723
+ .w93{width: 93px!important}
713
724
  .w300 {
714
725
  width: 300px;
715
726
  }
@@ -871,6 +882,12 @@
871
882
  font-size: 18px;
872
883
  font-weight: bold;
873
884
  }
885
+ .img-jsq{
886
+ width: 14px;
887
+ height: 14px;
888
+ display: inline-block;
889
+ margin-left: 10px;
890
+ }
874
891
  .info-conten {
875
892
  display: flex;
876
893
  .info-row {
@@ -989,12 +1006,25 @@
989
1006
  text-align: center;
990
1007
  padding: 3px 0;
991
1008
  }
992
- .mero{
993
- width: 12px;
994
- height: 6px;
995
- vertical-align: 2px;
996
- overflow: hidden;
997
- margin-left: 5px;
1009
+ // .mero{
1010
+
1011
+ // vertical-align: 2px;
1012
+ // overflow: hidden;
1013
+ // margin-left: 5px;
1014
+ // }
1015
+ .more-colose{
1016
+ background: url('../../../assets/mero-colose.png')no-repeat;
1017
+ background-size: 100% 100%;
1018
+ width: 18px;
1019
+ height: 9px;
1020
+ display: inline-block;
1021
+ }
1022
+ .mero-open{
1023
+ background: url('../../../assets/more-open.png')no-repeat;
1024
+ background-size: 100% 100%;
1025
+ width: 18px;
1026
+ height: 9px;
1027
+ display: inline-block;
998
1028
  }
999
1029
  .hous-mero {
1000
1030
  display: flex;
@@ -1156,12 +1186,19 @@
1156
1186
  text-align: center;
1157
1187
  padding: 3px 0;
1158
1188
  }
1159
- .mero{
1160
- width: 12px;
1161
- height: 6px;
1162
- vertical-align: 2px;
1163
- overflow: hidden;
1164
- margin-left: 5px;
1189
+ .more-colose{
1190
+ background: url('../../../assets/mero-colose.png')no-repeat;
1191
+ background-size: 100% 100%;
1192
+ width: 18px;
1193
+ height: 9px;
1194
+ display: inline-block;
1195
+ }
1196
+ .mero-open{
1197
+ background: url('../../../assets/more-open.png')no-repeat;
1198
+ background-size: 100% 100%;
1199
+ width: 18px;
1200
+ height: 9px;
1201
+ display: inline-block;
1165
1202
  }
1166
1203
  .hous-mero {
1167
1204
  display: flex;
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div style="width:100%" v-if="model !== null" class="block ct-file" :class="[model.attrs.size?'ct-checkbox-'+model.attrs.size:'']">
3
- <el-upload :class="model.lock?'ct-upload-display-none':''"
3
+ <el-upload :class="disableUpload?'ct-upload-display-none':''"
4
4
  :disabled="model.lock"
5
5
  :accept="model.fileAccept"
6
6
  :on-change="handleChange"
@@ -14,9 +14,11 @@
14
14
  :before-upload="beforeUploadProcess"
15
15
  :on-success="handleAvatarSuccess"
16
16
  :on-progress="uploadProcess"
17
+ :limit="parseInt(model.max||999)"
18
+ :on-exceed="handleExceed"
17
19
  >
18
20
  <i slot="default" class="el-icon-plus"></i>
19
- <div slot="tip" class="el-upload__tip errorMessage" v-show="!imgValid">{{validMessage}}</div>
21
+ <div slot="tip" class="el-upload__tip errorMessage" v-show="!valid">{{validMessage}}</div>
20
22
  <div slot="file" slot-scope="{file}" :title="file.fileName">
21
23
  <div class="cover-list-item">
22
24
  <el-image fit="fill" :src="file.url"
@@ -66,7 +68,7 @@
66
68
  },
67
69
  data() {
68
70
  return {
69
- imgValid:true,
71
+ disableUpload:false,
70
72
  };
71
73
  },
72
74
  computed: {
@@ -90,12 +92,18 @@
90
92
  self.load(data);
91
93
  });
92
94
  }
95
+ this.disableUpload=this.model.lock;
93
96
  });
94
97
  },
95
98
  methods: {
96
99
  load(data) {
97
100
  this.model = data;
98
101
  },
102
+ handleExceed()
103
+ {
104
+ this.validMessage = "附件数量最多" + this.model.max+ "个";
105
+ this.valid = false;
106
+ },
99
107
  //删除
100
108
  handleRemove(file) {
101
109
  this.$common.confirm("确定删除该附件?", "提示", {
@@ -104,6 +112,7 @@
104
112
  //type: 'warning'
105
113
  }).then(() => {
106
114
  this.model.deleteFile(file, false);
115
+ this.selfValidExcute();
107
116
  }).catch(() => {
108
117
  });
109
118
  },
@@ -156,16 +165,19 @@
156
165
  //上传之前的钩子
157
166
  beforeUploadProcess(files) {
158
167
  let that=this;
159
- if (this.model.max) {
160
- if (this.model.getfileListLength() >= this.model.max) {
161
- this.validMessage = "附件最多" + this.model.max + "个";
162
- this.imgValid = false;
163
- setTimeout(() => {
164
- that.imgValid = true;
165
- }, 3000)
166
- return false;
167
- }
168
- }
168
+
169
+ // if (this.model.max) {
170
+ // console.log('beforeUploadProcess')
171
+ // console.log(this.model.fileList)
172
+ // if (this.model.getfileListLength() >= this.model.max) {
173
+ // this.validMessage = "附件最多" + this.model.max + "个";
174
+ // this.valid = false;
175
+ // setTimeout(() => {
176
+ // that.valid = true;
177
+ // }, 3000)
178
+ // return false;
179
+ // }
180
+ // }
169
181
  return true;
170
182
  },
171
183
  //文件上传时的钩子
@@ -185,6 +197,7 @@
185
197
  },
186
198
  //不能共用的数据校验
187
199
  selfValidExcute: function (eventName) {
200
+
188
201
  if (this.model.required) {
189
202
  if (this.model.getfileListLength() === 0) {
190
203
  this.validMessage = "必须上传附件";
@@ -194,15 +207,33 @@
194
207
  }
195
208
 
196
209
  if (this.model.max) {
210
+
211
+ if(this.model.getfileListLength() >= this.model.max)
212
+ {
213
+ this.disableUpload=true;
214
+ }else
215
+ {
216
+ this.disableUpload=false;
217
+ }
218
+
197
219
  if (this.model.getfileListLength() > this.model.max) {
198
- this.validMessage = "附件最多" + this.model.max+ "个";
220
+ this.validMessage = "附件数量";
221
+ if(this.model.min)
222
+ {
223
+ this.validMessage += "最少" + this.model.min + "个"+",";
224
+ }
225
+ this.validMessage += "最多" + this.model.max+ "个";
199
226
  this.valid = false;
200
227
  return false;
201
228
  }
202
229
  }
203
230
  if (this.model.min) {
204
231
  if (this.model.getfileListLength() < this.model.min) {
205
- this.validMessage = "附件最少" + this.model.min + "个";
232
+ this.validMessage = "附件数量最少" + this.model.min + "个";
233
+ if(this.model.max)
234
+ {
235
+ this.validMessage += ",最多" + this.model.max + "个"+"";
236
+ }
206
237
  this.valid = false;
207
238
  return false;
208
239
  }
@@ -41,7 +41,10 @@ const box = function (source, fileSourceList, router, optionApi) {
41
41
  return rtn._fileList;
42
42
  },
43
43
  getfileListLength() {
44
- return rtn.fileList.length;
44
+ let fileList = fileSourceList.filter(item=>{
45
+ return item.flagDeleted != true
46
+ })
47
+ return fileList.length;
45
48
  },
46
49
  optionModel: {
47
50
  options: [],
@@ -210,6 +213,7 @@ const box = function (source, fileSourceList, router, optionApi) {
210
213
  classify.file.source.mediaLabelID = classify.option[rtn.optionModel.optionAttrs.value];
211
214
  },
212
215
  handleAvatarSuccess(res, file, fileList) {
216
+
213
217
  if (res.rtnCode === Enum.ReturnCode.Successful) {
214
218
  //下面的方式绑定,会有一些问题 todo 不强与页面关联
215
219
  fileSourceList.push(res.content[0]);
@@ -238,6 +242,7 @@ const box = function (source, fileSourceList, router, optionApi) {
238
242
  }
239
243
  },
240
244
  deleteFile(file, forceDelete) {
245
+
241
246
  for (let i = 0; i < rtn.fileList.length; i++) {
242
247
  if (rtn.fileList[i].uid === file.uid) {
243
248
  if (forceDelete) {
@@ -268,6 +273,7 @@ const box = function (source, fileSourceList, router, optionApi) {
268
273
  break;
269
274
  }
270
275
  }
276
+ console.log(rtn.fileList)
271
277
  },
272
278
  getFormObj() {
273
279
  var rtnFormObj = {};
@@ -218,7 +218,7 @@ const Enum = {
218
218
  /*带标签的超链接列表*/
219
219
  HyperlinkListWithLabel: 44,
220
220
  /// <summary>
221
- /// 图片
221
+ /// 图片选择
222
222
  /// </summary>
223
223
  PhotoSelect: 45,
224
224
  },
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div class="ct-quickInput">
3
3
 
4
- <el-popover ref="pop" placement="bottom-start" v-model="showDrop" trigger="click">
4
+ <el-popover ref="pop" placement="bottom-start" v-model="showDrop" trigger="click" @show="searchInputHandle">
5
5
  <div>
6
6
  <div>
7
7
  <el-input ref="searchInput" size="mini" suffix-icon="el-icon-search" v-model="searchText" @input="searchInputHandle"></el-input>
@@ -42,7 +42,6 @@
42
42
  else {
43
43
  this.model = this.vmodel;
44
44
  }
45
- this.searchInputHandle();
46
45
  },
47
46
  data() {
48
47
  return {
@@ -125,7 +125,16 @@ const actions = {
125
125
  } else {
126
126
  return false;
127
127
  }
128
- }
128
+ },
129
+ requiredFile(v, o) {
130
+ debugger
131
+ if (v.fileList === undefined || v.fileList === null || v.fileList === ''||v.getfileListLength()<=0) {
132
+ return false;
133
+ }
134
+ else {
135
+ return true;
136
+ }
137
+ },
129
138
  };
130
139
 
131
140
  const valid = {
@@ -162,6 +171,11 @@ const valid = {
162
171
  message: '值必须是数字',
163
172
  ticker:'input'
164
173
  },
174
+ requiredFile: {
175
+ action: actions.requiredFile,
176
+ message: '必须上传附件',
177
+ ticker: 'input'
178
+ },
165
179
  //numberDecimal: {
166
180
  // action: actions.numberDecimal,
167
181
  // message: '小数点位数错误',
@@ -232,6 +246,7 @@ const valid = {
232
246
  this._validate = v;
233
247
  },
234
248
  validating(ticker, old1, old2) {
249
+ debugger
235
250
  var rtnValidate = [];
236
251
  switch (model.type) {
237
252
  case Enum.ControlType.NumericTextBox:
@@ -262,6 +277,9 @@ const valid = {
262
277
  case Enum.ControlType.Address:
263
278
  rtnValidate.push(valid.requiredMultiCombo);
264
279
  break;
280
+ case Enum.ControlType.File:
281
+ rtnValidate.push(valid.requiredFile);
282
+ break;
265
283
  default:
266
284
  rtnValidate.push(valid.required);
267
285
  break;