centaline-data-driven-v3 0.0.65 → 0.0.66

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "centaline-data-driven-v3",
3
- "version": "0.0.65",
3
+ "version": "0.0.66",
4
4
  "private": false,
5
5
  "description": "centaline-data-driven-v3",
6
6
  "main": "dist/centaline-data-driven-v3.umd.js",
@@ -16,7 +16,7 @@
16
16
  "moment": "^2.30.1",
17
17
  "photo-sphere-viewer": "^4.8.1",
18
18
  "sortablejs": "^1.15.6",
19
- "vant": "^4.8.0",
19
+ "vant": "^4.8.0",
20
20
  "vite-plugin-css-injected-by-js": "^3.3.0",
21
21
  "vue": "^3.3.4",
22
22
  "vue-cropper": "^1.1.1",
@@ -358,50 +358,6 @@ body {
358
358
  color: var(--centalineBlack);
359
359
  }
360
360
 
361
- /* 查询搜索 */
362
- .search-btn,
363
- .more-btn {
364
- height: 26px;
365
- background: var(--chinaRed) !important;
366
- border-color: var(--chinaRed) !important;
367
- box-shadow: 0px 2px 4px 0px rgba(238, 107, 107, 0.25);
368
- border-radius: 6px;
369
- color: #fff !important;
370
- }
371
-
372
- /* 重置按钮 更多按钮*/
373
- .reset-btn {
374
- height: 26px;
375
- background: #FFFFFF !important;
376
- border-color: var(--chinaRed) !important;
377
- border-radius: 6px;
378
- color: var(--chinaRed) !important;
379
- }
380
-
381
- /* 搜索按钮,重置按钮和更多按钮的hover */
382
- .search-btn:hover,
383
- .reset-btn:hover,
384
- .more-btn:hover {
385
- background-color: var(--btnHoverRed) !important;
386
- border-color: var(--btnHoverRed) !important;
387
- color: #fff !important;
388
- }
389
-
390
- .more-btn:hover .open,
391
- .more-btn:hover .fold {
392
- background-color: var(--btnHoverRed) !important;
393
- }
394
-
395
- .search-btn:active,
396
- .search-btn:focus,
397
- .reset-btn:active.reset-btn:focus,
398
- .more-btn:active.more-btn:focus {
399
- background-color: var(--btnFocusRed);
400
- border-color: var(--btnFocusRed);
401
- color: #fff !important;
402
- }
403
-
404
-
405
361
  .subdiv_allinline {
406
362
  margin: 0;
407
363
  padding: 0;
@@ -1067,7 +1023,7 @@ body {
1067
1023
  .el-tag--small {
1068
1024
  height: auto;
1069
1025
  line-height: 16px;
1070
- padding: 3px 9px;
1026
+ padding: 3px 5px;
1071
1027
  }
1072
1028
 
1073
1029
  .el-checkbox.el-checkbox--small {
@@ -16,7 +16,7 @@
16
16
  :style="{ color: model.textColor, backgroundColor: model.imgUrl ? 'transparent' : model.bgColor, borderColor: model.imgUrl ? 'transparent' : model.borderColor, padding: model.imgUrl ? '0px' : null }"
17
17
  @click="clickHandle">{{ model.controlLabel }}</el-link>
18
18
  <el-upload v-else-if="model.isImport" :action="model.action" :data="uploadData" :headers="headers" :multiple="false"
19
- :show-file-list="false" :on-success="handleAvatarSuccess" :on-error="handleAvatarError">
19
+ :show-file-list="false" :on-success="handleAvatarSuccess" :on-error="handleAvatarError" :before-upload="handleAvatarBeforeUpload">
20
20
  <el-button type="primary" v-bind="model.attrs"
21
21
  :style="{ color: model.textColor, backgroundColor: model.imgUrl ? 'transparent' : model.bgColor, borderColor: model.imgUrl ? 'transparent' : model.borderColor, padding: model.imgUrl ? '0px' : null }"
22
22
  :disabled="model.disabled || model.locked">
@@ -97,6 +97,19 @@ function clickHandle() {
97
97
  emit('fieldClick', model.value);
98
98
  }
99
99
 
100
+ function handleAvatarBeforeUpload(file) {
101
+ if(model.value.form && model.value.form.$vue){
102
+ let submitData = model.value.form.$vue.getFileData(model.value);
103
+ for (var key in submitData) {
104
+ if (typeof submitData[key] === "object") {
105
+ uploadData.value[key] = JSON.stringify(submitData[key]);
106
+ }
107
+ else {
108
+ uploadData.value[key] = submitData[key];
109
+ }
110
+ }
111
+ }
112
+ }
100
113
  function handleAvatarSuccess(res) {
101
114
  emit('importComplete', res, model.value);
102
115
  }
@@ -124,4 +137,47 @@ function commandClick(code) {
124
137
  color: var(--chinaRed);
125
138
  font-weight: 700;
126
139
  }
140
+ /* 查询搜索 */
141
+ .search-btn,
142
+ .more-btn {
143
+ height: 26px;
144
+ background: var(--chinaRed);
145
+ border-color: var(--chinaRed);
146
+ box-shadow: 0px 2px 4px 0px rgba(238, 107, 107, 0.25);
147
+ border-radius: 6px;
148
+ color: #fff;
149
+ }
150
+
151
+ /* 重置按钮 更多按钮*/
152
+ .reset-btn {
153
+ height: 26px;
154
+ background: #FFFFFF;
155
+ border-color: var(--chinaRed);
156
+ border-radius: 6px;
157
+ color: var(--chinaRed);
158
+ }
159
+
160
+ /* 搜索按钮,重置按钮和更多按钮的hover */
161
+ .search-btn:hover,
162
+ .reset-btn:hover,
163
+ .more-btn:hover {
164
+ background-color: var(--btnHoverRed);
165
+ border-color: var(--btnHoverRed);
166
+ color: #fff;
167
+ }
168
+
169
+ .more-btn:hover .open,
170
+ .more-btn:hover .fold {
171
+ background-color: var(--btnHoverRed);
172
+ }
173
+
174
+ .search-btn:active,
175
+ .search-btn:focus,
176
+ .reset-btn:active.reset-btn:focus,
177
+ .more-btn:active.more-btn:focus {
178
+ background-color: var(--btnFocusRed);
179
+ border-color: var(--btnFocusRed);
180
+ color: #fff;
181
+ }
182
+
127
183
  </style>
@@ -13,7 +13,7 @@
13
13
  </el-tooltip>
14
14
  </template>
15
15
  <template #prefix
16
- v-if="(model.isList && model.value && !model.multiple) || (model.multiple && model.isList && model.labelValue && model.labelValue.length > 0 && model.placeholder)">
16
+ v-if="((model.isList && model.value && !model.multiple) || (model.multiple && model.isList && model.labelValue && model.labelValue.length > 0 && model.placeholder)) && model.prefix">
17
17
  <span>{{ model.prefix }}</span>
18
18
  </template>
19
19
  <template #tag>
@@ -181,7 +181,7 @@ function setminWidth() {
181
181
  }
182
182
  }
183
183
  }
184
-
184
+
185
185
  let span = document.createElement('span');
186
186
  span.innerText = text;
187
187
  span.style.whiteSpace = 'nowrap';
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div ref="refForm" v-loading="loading">
2
+ <div ref="refForm" v-loading="loading" :style="{'min-height': minHeight}">
3
3
  <div v-if="model !== null && !loading" class="ct-form">
4
4
  <el-affix target=".ct-form" v-if="model.tip" :offset="62">
5
5
  <div class="ct-form-tip">
@@ -138,7 +138,7 @@
138
138
  </div>
139
139
  </template>
140
140
  <script lang="ts" setup>
141
- import { ref, nextTick, onUpdated,onDeactivated } from 'vue'
141
+ import { ref, nextTick, onUpdated,onDeactivated , onMounted } from 'vue'
142
142
  import { RouterClickHandler } from '../../utils/mixins';
143
143
  import common from '../../utils/common'
144
144
  import Form from '../../loader/src/Form'
@@ -205,6 +205,7 @@ const Fields = ref()
205
205
  const refForm = ref()
206
206
  const qrtimer = ref(null)
207
207
  const downloadUrl = ref('')
208
+ const minHeight = ref('auto')
208
209
  onUpdated(() => {
209
210
  nextTick(() => {
210
211
  qrtimer.value = setTimeout(getisScroll, 100);
@@ -213,6 +214,9 @@ onUpdated(() => {
213
214
  onDeactivated(() => {
214
215
  downloadUrl.value=''
215
216
  })
217
+ onMounted(() => {
218
+ setCss();
219
+ })
216
220
  init()
217
221
  //初始化数据
218
222
  function init() {
@@ -535,4 +539,9 @@ function flagNotificationParentAfterContentChanged() {
535
539
  function updateFields(data) {
536
540
  Form.updateFields(data, model.value)
537
541
  }
542
+ function setCss() {
543
+ if (props.topHeight > -1) {
544
+ minHeight.value = (document.documentElement.clientHeight - props.topHeight - 20) + 'px';
545
+ }
546
+ }
538
547
  </script>
@@ -48,12 +48,12 @@
48
48
  </div>
49
49
  </div>
50
50
  <iframe :src="downloadUrl"
51
- style="height:0px;width:0px;border-width: 0px;position: absolute;bottom: 0px;display: none;">
52
- </iframe>
51
+ style="height:0px;width:0px;border-width: 0px;position: absolute;bottom: 0px;display: none;">
52
+ </iframe>
53
53
  </div>
54
54
  </template>
55
55
  <script setup lang="ts">
56
- import { ref, nextTick,onDeactivated } from 'vue'
56
+ import { ref, nextTick, onDeactivated } from 'vue'
57
57
  import SearchScreen from '../../loader/src/SearchScreen'
58
58
  import Form from '../../loader/src/Form'
59
59
  import Enum from '../../utils/Enum'
@@ -88,7 +88,7 @@ const Fields = ref()
88
88
  const downloadUrl = ref('')
89
89
 
90
90
  onDeactivated(() => {
91
- downloadUrl.value=''
91
+ downloadUrl.value = ''
92
92
  })
93
93
 
94
94
  searchComplate()
@@ -178,11 +178,15 @@ function searchHandler(field) {
178
178
  //组件数据验证
179
179
  function validExcute() {
180
180
  var rtnBool = true;
181
+ var i = 0;
181
182
  if (Fields.value) {
182
183
  Fields.value.forEach((f) => {
183
184
  if (f.model && typeof f.model.validExcute !== 'undefined') {
184
185
  if (!f.model.validExcute()) {
185
- common.message(f.model.displayValidMessage)
186
+ if (i === 0) {
187
+ common.message(f.model.displayValidMessage)
188
+ }
189
+ i++
186
190
  rtnBool = false;
187
191
  }
188
192
  }
@@ -2,7 +2,7 @@
2
2
  <ct-field :vmodel="model">
3
3
  <template #Control>
4
4
  <span class="eyelabel">{{ showLable == true ? model.code1 : model.name1 }}</span>
5
- <el-icon size="16" v-if="model.name1" @click="onSensitiveEye()" style="margin-top: -2px;">
5
+ <el-icon size="16" v-if="model.name1" @click="onSensitiveEye()" style="margin-top: 5px;">
6
6
  <View v-if="showLable" />
7
7
  <Hide v-else />
8
8
  </el-icon>
@@ -57,6 +57,7 @@ defineExpose({
57
57
  </script>
58
58
  <style scoped>
59
59
  .eyelabel {
60
- min-width: 80px;
60
+ min-width: 80px;
61
+ line-height: 26px;
61
62
  }
62
63
  </style>
@@ -2,7 +2,7 @@
2
2
  <ct-field :vmodel="model">
3
3
  <template #Control>
4
4
  <div v-if="model.controlType === Enum.ControlType.MultiLineText" style="width: 100%;">
5
- <el-input :type="model.inputType" v-model="model.code1" v-bind="model.attrs" @input="change()"
5
+ <el-input :type="model.inputType" v-model="model.code1" v-bind="model.attrs" @input="input()" @change="change()"
6
6
  :disabled="model.locked" :rows="model.rows" :readonly="model.readonly"
7
7
  :show-password="model.inputType == 'password'" autocomplete="on" :maxlength="model.maxValue1"
8
8
  :show-word-limit="model.showWordLimit" clearable @keyup.enter.native="search()" class="fieldControl">
@@ -12,7 +12,7 @@
12
12
  </el-input>
13
13
  <span v-if="model.sufLabel1" class="sufLabel" v-html="model.sufLabel1"></span>
14
14
  </div>
15
- <el-input v-else :type="model.inputType" v-model="model.code1" v-bind="model.attrs" @input="change()"
15
+ <el-input v-else :type="model.inputType" v-model="model.code1" v-bind="model.attrs" @input="input()" @change="change()"
16
16
  :disabled="model.locked" :rows="model.rows" :readonly="model.readonly"
17
17
  :show-password="model.inputType == 'password'" autocomplete="on" :maxlength="model.maxValue1"
18
18
  :show-word-limit="model.showWordLimit" clearable @keyup.enter.native="search()" class="fieldControl">
@@ -51,10 +51,16 @@ function search() {
51
51
  emit('search');
52
52
  }
53
53
  }
54
-
54
+ function input() {
55
+ if(model.value.controlType===Enum.ControlType.MultiLineText || model.value.controlType===Enum.ControlType.TextBox){
56
+ }
57
+ else{
58
+ change();
59
+ }
60
+ }
55
61
  function change() {
56
- changeHandler(model.value, emit);
57
- if (props.from == 'tree') { emit('search'); }
62
+ changeHandler(model.value, emit);
63
+ if (props.from == 'tree') { emit('search'); }
58
64
  }
59
65
  //弹出选择列表
60
66
  function popupSearchListHandle() {
@@ -7,15 +7,15 @@ const Button = function (source) {
7
7
  let rtn = {
8
8
  icon: '',
9
9
  get bgColor() {
10
- if (source.controlType == Enum.ControlType.ButtonReset) {
11
- return '#519DA6'
12
- }
10
+ // if (source.controlType == Enum.ControlType.ButtonReset) {
11
+ // return '#519DA6'
12
+ // }
13
13
  return source.bgColor
14
14
  },
15
15
  get borderColor() {
16
- if (source.controlType == Enum.ControlType.ButtonReset) {
17
- return '#519DA6'
18
- }
16
+ // if (source.controlType == Enum.ControlType.ButtonReset) {
17
+ // return '#519DA6'
18
+ // }
19
19
  return source.borderColor
20
20
  },
21
21
  get action() {
@@ -135,16 +135,16 @@ function loadSearchScreenModel(source, prevParam) {
135
135
  var advIndex = rtn.sourceFieldsArr.findIndex((v) => {
136
136
  return v.controlType === Enum.ControlType.ButtonAdvancedSearch;
137
137
  });
138
- if (advIndex === -1) {
139
- advIndex = rtn.sourceFieldsArr.findIndex((v) => {
140
- return v.controlType === Enum.ControlType.ButtonReset;
141
- });
142
- }
143
- if (advIndex === -1) {
144
- advIndex = rtn.sourceFieldsArr.findIndex((v) => {
145
- return v.controlType === Enum.ControlType.ButtonSearch;
146
- });
147
- }
138
+ // if (advIndex === -1) {
139
+ // advIndex = rtn.sourceFieldsArr.findIndex((v) => {
140
+ // return v.controlType === Enum.ControlType.ButtonReset;
141
+ // });
142
+ // }
143
+ // if (advIndex === -1) {
144
+ // advIndex = rtn.sourceFieldsArr.findIndex((v) => {
145
+ // return v.controlType === Enum.ControlType.ButtonSearch;
146
+ // });
147
+ // }
148
148
  var screens = rtn.sourceFieldsArr.filter((v, i) => {
149
149
  return (advIndex !== -1 && i > advIndex) && v.controlType !== Enum.ControlType.From;
150
150
  });
@@ -598,6 +598,9 @@ function loadSearchTableModel(source, searchModel, defaultSearchData, action, se
598
598
  get dataDictionary() {
599
599
  return rtn._dataDictionary;
600
600
  },
601
+ get rowColorColumn() { //行字体颜色列
602
+ return source.content.rowColorColumn;
603
+ },
601
604
  //设置行样式
602
605
  setRow(rows) {
603
606
  rtn.setStyleRow(rows);
@@ -610,10 +613,10 @@ function loadSearchTableModel(source, searchModel, defaultSearchData, action, se
610
613
  row.rowStyle = "";
611
614
  }
612
615
  if (rtn.rowColorColumn && row[rtn.rowColorColumn]) {
613
- row.rowStyle = row.rowStyle + "color:" + row[rtn.rowColorColumn] + ";";
616
+ row.rowStyle = row.rowStyle + ";color:" + row[rtn.rowColorColumn] + ";";
614
617
  }
615
618
  if (row.flagDrag && row.flagDrag == '1') {
616
- row.rowStyle = row.rowStyle + "cursor:move;";
619
+ row.rowStyle = row.rowStyle + "cursor:move;";
617
620
  }
618
621
  });
619
622
  },
package/src/main.js CHANGED
@@ -64,7 +64,7 @@ app.use(centaline, {
64
64
  //authObject: '{token:"aplus eyJhbGciOiJIUzI1NiIsInppcCI6IkRFRiJ9.eNrEjjsOwjAQBe-ydVay1xvvOl3sJA2HiPIxElSIJBIIcXdAQEfPFK-YZt4Nlm2EChqtDafOYWqpRG6kxLoTxZhUTSRxHLUPH_DHfOmt5SDWt1gHScieHapNiol94q5pXYoNFJAvJ6isGHWmNMYVcBjWtyCr_iW2JZ93-fqPc8f18MwGIqFRCIO1GXmWGYd9npCZJ6N5JjYZ7g8AAAD__w.HgtNKtHWooj8c9Hy_vB8CfKq-qOeHMp0irnW0DfXtHo"}',
65
65
  //oldToken: 'd92d4a3b-2274-42e8-96f0-100ffb579b6e',
66
66
  //authObject: '{token:"1-a7289bb2-9f1e-4a04-9016-1e555bf39188"}',
67
- authObject: '{EmpID:"Token_77affd14-db50-46dd-be3f-4354dfe6ff07",MachineCode:"e1f39b75-7069-4c4f-b5d5-c590da2d9aa2",SSO_Token:"SSOToken_77affd14-db50-46dd-be3f-4354dfe6ff07",Platform:"IOS"}',
67
+ authObject: '{EmpID:"Token_052cca91-c75e-45cc-b549-90730d12f6bc",MachineCode:"e1f39b75-7069-4c4f-b5d5-c590da2d9aa2",SSO_Token:"SSOToken_052cca91-c75e-45cc-b549-90730d12f6bc",Platform:"IOS"}',
68
68
  };
69
69
  },
70
70
  // 请求完成事件,可判断是否登录过期执行响应操作