cnhis-design-vue 0.2.17-beta → 0.2.21-beta

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 (71) hide show
  1. package/es/age/index.js +2 -2
  2. package/es/big-table/index.js +402 -178
  3. package/es/big-table/style.css +1 -1
  4. package/es/button/index.js +2299 -1517
  5. package/es/button/style.css +1 -1
  6. package/es/captcha/index.js +3 -3
  7. package/es/checkbox/index.js +1 -1
  8. package/es/color-picker/index.js +1 -1
  9. package/es/drag-layout/index.js +3 -3
  10. package/es/editor/index.js +1 -1
  11. package/es/fabric-chart/index.js +9 -9
  12. package/es/index/index.js +4007 -2563
  13. package/es/index/style.css +1 -1
  14. package/es/input/index.js +1 -1
  15. package/es/map/index.js +1 -1
  16. package/es/multi-chat/index.js +602 -199
  17. package/es/multi-chat/style.css +1 -1
  18. package/es/multi-chat-client/index.js +516 -141
  19. package/es/multi-chat-client/style.css +1 -1
  20. package/es/multi-chat-history/index.js +4 -4
  21. package/es/multi-chat-record/index.js +4 -4
  22. package/es/multi-chat-setting/index.js +328 -77
  23. package/es/multi-chat-setting/style.css +1 -1
  24. package/es/multi-chat-sip/index.js +1 -1
  25. package/es/radio/index.js +1 -1
  26. package/es/scale-view/index.js +436 -362
  27. package/es/scale-view/style.css +1 -1
  28. package/es/select/index.js +3 -3
  29. package/es/select-label/index.js +312 -289
  30. package/es/select-label/style.css +1 -1
  31. package/es/select-person/index.js +2 -2
  32. package/es/table-filter/index.js +2546 -1697
  33. package/es/table-filter/style.css +1 -1
  34. package/es/tag/index.js +1 -1
  35. package/es/utils/UniRTCv2.js +586 -0
  36. package/es/verification-code/index.js +2 -2
  37. package/package.json +2 -2
  38. package/packages/big-table/src/BigTable.vue +72 -16
  39. package/packages/big-table/src/assets/style/table-base.less +10 -0
  40. package/packages/big-table/src/components/TextOverTooltip.vue +24 -11
  41. package/packages/big-table/src/utils/batchEditing.js +1 -1
  42. package/packages/big-table/src/utils/bigTableProps.js +2 -1
  43. package/packages/button/src/ButtonPrint/index.vue +65 -21
  44. package/packages/button/src/ButtonPrint/js/print.es.min.js +1 -2
  45. package/packages/multi-chat/chat/audio.vue +22 -0
  46. package/packages/multi-chat/chat/calling.vue +6 -0
  47. package/packages/multi-chat/chat/chatFooter.vue +43 -3
  48. package/packages/multi-chat/chat/client/clientChat.vue +13 -1
  49. package/packages/multi-chat/chat/index.vue +17 -4
  50. package/packages/multi-chat/chat/mixins/uniRTCAPI.js +77 -0
  51. package/packages/multi-chat/chat/multiVideo.vue +14 -0
  52. package/packages/multi-chat/chat/scrollList.vue +7 -1
  53. package/packages/multi-chat/chat/video.vue +4 -0
  54. package/packages/multi-chat/components/user-status.vue +50 -45
  55. package/packages/multi-chat/setting/baseInfo/index.vue +3 -3
  56. package/packages/multi-chat/setting/configuration/index.vue +38 -1
  57. package/packages/multi-chat/store/actions.js +76 -0
  58. package/packages/multi-chat/store/getters.js +9 -0
  59. package/packages/multi-chat/store/mutation.js +9 -0
  60. package/packages/multi-chat/store/state.js +4 -1
  61. package/packages/scale-view/answerParse.vue +27 -14
  62. package/packages/scale-view/scaleView.vue +51 -10
  63. package/packages/select-label/label-classify.vue +16 -8
  64. package/packages/select-label/labelFormContent.vue +137 -75
  65. package/packages/select-label/select-label.vue +56 -17
  66. package/packages/table-filter/src/base-search-com/BaseSearch.vue +100 -17
  67. package/packages/table-filter/src/classification/Classification-com.vue +49 -59
  68. package/packages/table-filter/src/components/search-modal/set-classification.vue +4 -1
  69. package/packages/table-filter/src/components/table-modal/TableModal.vue +10 -0
  70. package/packages/table-filter/src/quick-search/QuickSearch.vue +37 -23
  71. package/src/utils/UniRTCv2.js +561 -0
@@ -26,14 +26,17 @@
26
26
  <a-icon class="label-close" v-show="!(item.isPublic && item.isPublic == 1)" type="close" @click.native.stop="handleDelLabel(item, classifyItem)" />
27
27
  </template>
28
28
  </a-checkable-tag>
29
- <a-button v-if="isEdit && !classifyItem.isNoAdd && sourceType != 'guage'" type="dashed" class="label-add" v-show="!classifyItem.showAdd" @click="handleAddLabel($event, classifyItem)">
30
- <a-icon type="plus" />
31
- <!-- {{ $t("1.1.2") }} -->
32
- 标签
33
- </a-button>
34
- <a-input v-if="isEdit && !classifyItem.isNoAdd && sourceType != 'guage'" class="label-add add-input" v-model.trim="classifyItem.addVal" v-show="classifyItem.showAdd" @blur="hanldeBlur($event, classifyItem)">
35
- <a-icon slot="suffix" type="close" @click.native.stop="clearaddVal($event, classifyItem)" />
36
- </a-input>
29
+ <template v-if="classifyItem.allowCreateByPersonal == 1 ">
30
+ <a-button v-if="isEdit && !classifyItem.isNoAdd && sourceType != 'guage'" type="dashed" class="label-add" v-show="!classifyItem.showAdd" @click="handleAddLabel($event, classifyItem)">
31
+ <a-icon type="plus" />
32
+ <!-- {{ $t("1.1.2") }} -->
33
+ 标签
34
+ </a-button>
35
+ <!-- 是否允许新增个人标签 allowCreateByPersonal -->
36
+ <a-input v-if="isEdit && !classifyItem.isNoAdd && sourceType != 'guage'" class="label-add add-input" v-model.trim="classifyItem.addVal" v-show="classifyItem.showAdd" @blur="hanldeBlur($event, classifyItem)">
37
+ <a-icon slot="suffix" type="close" @click.native.stop="clearaddVal($event, classifyItem)" />
38
+ </a-input>
39
+ </template>
37
40
  </div>
38
41
  </div>
39
42
  </template>
@@ -118,4 +121,9 @@ export default create({
118
121
  .label-disable-wrap {
119
122
  text-align: center;
120
123
  }
124
+ .label-content {
125
+ /deep/ .ant-tag {
126
+ border: 1px solid #f1f1f1;
127
+ }
128
+ }
121
129
  </style>
@@ -8,7 +8,7 @@
8
8
  <div class="label-wrap">
9
9
  <!-- 表单内嵌打开标签组件的样式 -->
10
10
  <div v-if="explicit" class="explicit-continer">
11
- <a-tabs hideAdd :activeKey="labelAnchorKey" @change="labelAnchorTabsOnChange" tab-position="top">
11
+ <a-tabs hideAdd :activeKey="labelAnchorKey" type="card" @change="labelAnchorTabsOnChange" tab-position="top">
12
12
  <template v-for="(v, i) in labelConfig">
13
13
  <a-tab-pane :key="v.curKey">
14
14
  <span slot="tab">
@@ -198,9 +198,12 @@ export default create({
198
198
  return !labelObj[key].itemList;
199
199
  });
200
200
  },
201
-
201
+ SelectedList() {
202
+ const { labelSelectedList = [], labelSelectedEdit = [] } = this;
203
+ return labelSelectedList.concat(labelSelectedEdit);
204
+ },
202
205
  selectLabelId() {
203
- const list = this?.labelSelectedList || [];
206
+ const list = this?.SelectedList || [];
204
207
  if (Array.isArray(list)) {
205
208
  return list.map(v => v.labelId);
206
209
  }
@@ -248,7 +251,6 @@ export default create({
248
251
  curKey: `${key}_${typeId}~${this.randomId()}`
249
252
  });
250
253
  }
251
-
252
254
  this.$set(this, 'labelConfig', copy);
253
255
  this.$nextTick(() => {
254
256
  this.hanldeBackfill();
@@ -262,8 +264,8 @@ export default create({
262
264
  },
263
265
 
264
266
  hanldeBackfill() {
265
- const { labelConfig, labelSelectedList, selectLabelId } = this;
266
- this.$set(this, 'labelSelectedEdit', labelSelectedList);
267
+ const { labelConfig, SelectedList = [], selectLabelId} = this;
268
+ this.$set(this, 'labelSelectedEdit', SelectedList);
267
269
  if (typeof labelConfig === 'object') {
268
270
  let keys = Object.keys(labelConfig || {});
269
271
  keys.forEach(k => {
@@ -280,76 +282,76 @@ export default create({
280
282
  },
281
283
 
282
284
  // 标签处理
283
- async handleEditLabel(v = {}, update = false) {
284
- try {
285
- if (this.isLock) return;
286
- if (v.labelList && !update) {
287
- this.handleLabelSelected(v.labelList, this.labelSelectedList, v.labelObj);
288
- this.inited = true;
289
- this.editLabelItem = v;
290
- this.setLabelDeafultClick(v.labelObj);
291
- } else {
292
- // TODO:
293
- const { rows, results } = await this.getLabelList(v);
294
- const labelList = rows || [];
295
- const labelObj = {};
296
- const cacheKey = `${v.val_key}_${v.name}`;
297
- // this.labelSelected[d.cacheKey]
298
- let isSelect = false;
299
- const selectList = update ? [...(this.labelSelectedEdit || [])] : [...(this.labelSelectedList || [])];
300
- labelList.forEach(n => {
301
- n.cacheKey = cacheKey;
302
- // 根据 labelId 处理默认选中
303
-
304
- /**
305
- * 回填的值可能不在数据中,但是不能丢失。
306
- */
307
- isSelect = selectList.findIndex(i => i.labelId == n.labelId) !== -1;
308
- n.isSelect = isSelect; // 是否已选
309
- this.$set(n, 'isSelect', isSelect);
310
- /**
311
- * typeName 按照分类处理
312
- * 没有分类创建分类,有则添加
313
- */
314
- if (labelObj[n.typeName]) {
315
- labelObj[n.typeName].itemList.push({ ...n });
316
- } else {
317
- labelObj[n.typeName] = {
318
- itemList: [{ ...n }],
319
- showAdd: false,
320
- addVal: '',
321
- typeName: n.typeName,
322
- typeId: n.typeId
323
- };
324
- }
325
- });
326
- /**
327
- * labelObj 展示的分类值
328
- * labelList 原始数据结构
329
- * selectList 已选的数据
330
- */
331
- this.$set(v, 'labelObj', labelObj);
332
- this.$set(v, 'labelList', labelList);
333
- this.$set(this, 'labelSelectedEdit', selectList);
334
- // 缓存
335
- this.editLabelItem = v;
336
- this.setLabelTypeStatus(results);
337
- for (let key in labelObj) {
338
- Object.assign(labelObj[key], {
339
- curKey: this.randomId()
340
- });
341
- }
342
- this.setLabelDeafultClick(labelObj);
285
+ // async handleEditLabel(v = {}, update = false) {
286
+ // try {
287
+ // if (this.isLock) return;
288
+ // if (v.labelList && !update) {
289
+ // this.handleLabelSelected(v.labelList, this.labelSelectedList, v.labelObj);
290
+ // this.inited = true;
291
+ // this.editLabelItem = v;
292
+ // this.setLabelDeafultClick(v.labelObj);
293
+ // } else {
294
+ // // TODO:
295
+ // const { rows, results } = await this.getLabelList(v);
296
+ // const labelList = rows || [];
297
+ // const labelObj = {};
298
+ // const cacheKey = `${v.val_key}_${v.name}`;
299
+ // // this.labelSelected[d.cacheKey]
300
+ // let isSelect = false;
301
+ // const selectList = update ? [...(this.labelSelectedEdit || [])] : [...(this.labelSelectedList || [])];
302
+ // labelList.forEach(n => {
303
+ // n.cacheKey = cacheKey;
304
+ // // 根据 labelId 处理默认选中
343
305
 
344
- this.inited = true;
345
- }
346
- } catch (error) {
347
- this.$set(v, 'labelObj', {});
348
- this.$set(v, 'labelList', []);
349
- console.log(error);
350
- this.inited = true;
351
- }
352
- },
306
+ // /**
307
+ // * 回填的值可能不在数据中,但是不能丢失。
308
+ // */
309
+ // isSelect = selectList.findIndex(i => i.labelId == n.labelId) !== -1;
310
+ // n.isSelect = isSelect; // 是否已选
311
+ // this.$set(n, 'isSelect', isSelect);
312
+ // /**
313
+ // * typeName 按照分类处理
314
+ // * 没有分类创建分类,有则添加
315
+ // */
316
+ // if (labelObj[n.typeName]) {
317
+ // labelObj[n.typeName].itemList.push({ ...n });
318
+ // } else {
319
+ // labelObj[n.typeName] = {
320
+ // itemList: [{ ...n }],
321
+ // showAdd: false,
322
+ // addVal: '',
323
+ // typeName: n.typeName,
324
+ // typeId: n.typeId
325
+ // };
326
+ // }
327
+ // });
328
+ // /**
329
+ // * labelObj 展示的分类值
330
+ // * labelList 原始数据结构
331
+ // * selectList 已选的数据
332
+ // */
333
+ // this.$set(v, 'labelObj', labelObj);
334
+ // this.$set(v, 'labelList', labelList);
335
+ // this.$set(this, 'labelSelectedEdit', selectList);
336
+ // // 缓存
337
+ // this.editLabelItem = v;
338
+ // this.setLabelTypeStatus(results);
339
+ // for (let key in labelObj) {
340
+ // Object.assign(labelObj[key], {
341
+ // curKey: this.randomId()
342
+ // });
343
+ // }
344
+ // this.setLabelDeafultClick(labelObj);
345
+
346
+ // this.inited = true;
347
+ // }
348
+ // } catch (error) {
349
+ // this.$set(v, 'labelObj', {});
350
+ // this.$set(v, 'labelList', []);
351
+ // console.log(error);
352
+ // this.inited = true;
353
+ // }
354
+ // },
353
355
  // 默认选中第一个分类
354
356
  setLabelDeafultClick(labelObj, deafulteKey) {
355
357
  if (!labelObj) return;
@@ -484,6 +486,8 @@ export default create({
484
486
  let parentColor = '';
485
487
  if (v.itemList?.length) {
486
488
  parentColor = v.itemList[0].parentColor || v.parentColor || '';
489
+ } else {
490
+ parentColor = v?.parentColor || "";
487
491
  }
488
492
 
489
493
  const params = {
@@ -703,6 +707,64 @@ export default create({
703
707
  max-height: calc(100vh - 109px);
704
708
  }
705
709
  }
710
+ .explicit-continer {
711
+ width: 100%;
712
+ border: 1px solid #d5d5d5;
713
+ // background: #F9F9F9;
714
+ /deep/ .ant-tabs-card {
715
+ .ant-tabs-nav-container {
716
+ height: 30px;
717
+ line-height: 30px;
718
+ margin-top: 0px;
719
+ .ant-tabs-tab-prev {
720
+ border-bottom: 1px solid #e8e8e8;
721
+ border-right: 1px solid #e8e8e8;
722
+ }
723
+ .ant-tabs-tab-next {
724
+ border-bottom: 1px solid #e8e8e8;
725
+ border-left: 1px solid #e8e8e8;
726
+ }
727
+ }
728
+ > .ant-tabs-content {
729
+ // height: 120px;
730
+ margin-top: -16px;
731
+
732
+ > .ant-tabs-tabpane {
733
+ background: #fff;
734
+ padding: 16px;
735
+ }
736
+ }
737
+
738
+ // ant-tabs-tab
739
+
740
+ > .ant-tabs-bar {
741
+ border-color: #fff;
742
+ .ant-tabs-tab {
743
+ margin-right:0;
744
+ border-radius:0;
745
+ line-height: 30px;
746
+ height: 30px;
747
+
748
+ border-right: 1px solid #e8e8e8!important;
749
+ border-bottom: 1px solid #e8e8e8;
750
+ border-top: none;
751
+
752
+ // border-color: transparent;
753
+ background: #F9F9F9;
754
+ &:first-of-type{
755
+ border-left: 1px solid #e8e8e8;
756
+ }
757
+ &.ant-tabs-tab-active {
758
+ border-bottom-color: #fff;
759
+ background: #fff;
760
+ }
761
+ }
762
+
763
+ }
764
+
765
+ .ant-tabs-bar;
766
+ }
767
+ }
706
768
  }
707
769
  .edit-label-type {
708
770
  font-size: 12px;
@@ -40,6 +40,7 @@
40
40
  @ok="handleSaveLabel"
41
41
  @cancel="handleLabelCancel"
42
42
  :maskClosable="false"
43
+ :destroyOnClose="true"
43
44
  :width="modalWidth"
44
45
  :cancelText="'取消'"
45
46
  :okText="'确定'"
@@ -124,7 +125,8 @@ export default create({
124
125
  modalWidth: '763px',
125
126
  modalHeight: '404px',
126
127
  maxHeight: '404px',
127
- commonLabelList: []
128
+ commonLabelList: [],
129
+ multipleChoiceConfig: {}
128
130
  };
129
131
  },
130
132
  props: {
@@ -179,7 +181,11 @@ export default create({
179
181
  // 外显初始化
180
182
  if(this.explicit){
181
183
  this.handleEditLabel();
184
+ } else {
185
+ // 获取标签分类
186
+ this.handleGetMultipleChoiceConfig(this.item);
182
187
  }
188
+
183
189
  },
184
190
  watch: {
185
191
  selectedList: {
@@ -227,11 +233,16 @@ export default create({
227
233
  this.hanldeSetLabelItem(d.labelId, false);
228
234
  },
229
235
  handleCommonLabelChange(v, d) {
230
- const selectedList = this.labelSelectedList || [];
236
+ let multipleChoiceConfig = this.multipleChoiceConfig;
237
+ let selectedList = this.labelSelectedList || [];
231
238
  if (v) {
232
239
  if (selectedList.some(n => n.labelId == d.labelId)) {
233
240
  return;
234
241
  }
242
+ // 不允许多选的类型,先删除,再新增
243
+ if('2' == multipleChoiceConfig[d.typeId]){
244
+ selectedList = selectedList.filter(item => item.typeId !== d.typeId);
245
+ }
235
246
  selectedList.push(d);
236
247
  } else {
237
248
  const fdIndex = selectedList.findIndex(n => n.labelId == d.labelId);
@@ -251,9 +262,9 @@ export default create({
251
262
  }
252
263
  });
253
264
  },
254
- handleEditLabel() {
265
+ handleEditLabel(type) {
255
266
  if (this.isLock) return;
256
- if(!this.explicit) {
267
+ if(!this.explicit && type !== 'init') {
257
268
  this.labelVisible = true;
258
269
  }
259
270
  this.handleGetLabelData(this.item)
@@ -331,7 +342,7 @@ export default create({
331
342
  */
332
343
  this.$set(v, 'labelObj', labelObj);
333
344
  this.$set(v, 'labelList', labelList);
334
- this.$set(this, 'labelSelectedEdit', selectList);
345
+ update && this.$set(this, 'labelSelectedEdit', selectList);
335
346
  // 缓存
336
347
  this.editLabelItem = v;
337
348
  this.setLabelTypeStatus(results);
@@ -340,51 +351,63 @@ export default create({
340
351
  setLabelTypeStatus(results) {
341
352
  if (!results) return false;
342
353
  let keys = Object.keys(results);
343
-
354
+ let multipleChoiceConfig ={};
344
355
  let choiceTypes = (results.typeList || []).reduce((obj, item) => {
345
- obj[item.typeName] = item.multipleChoice;
356
+ multipleChoiceConfig[item.typeId] = item.multipleChoice
357
+
358
+ obj[item.typeName] = {
359
+ multipleChoice:item.multipleChoice,
360
+ parentColor: item.parentColor,
361
+ allowCreateByPersonal:item.allowCreateByPersonal
362
+ }
346
363
  return obj;
347
364
  }, {});
365
+
366
+ if(this.explicit){
367
+ this.multipleChoiceConfig = multipleChoiceConfig;
368
+ }
348
369
  keys.forEach(key => {
349
370
  if (key === 'typeList') return;
350
371
  // 空,允许
351
372
  if (key === 'emptyTypes') {
352
373
  results[key].forEach(item => {
353
- this.$set(this.editLabelItem.labelObj, item.typeName, {
354
- multipleChoice: choiceTypes[item.typeName],
374
+ this.$set(this.editLabelItem.labelObj, item.typeName, Object.assign({
355
375
  addVal: '',
356
376
  showAdd: false,
357
377
  itemList: [],
358
378
  typeId: item.typeId,
359
379
  typeName: item.typeName
360
- });
380
+ },choiceTypes[item.typeName] || {}));
361
381
  });
362
382
  return;
363
383
  }
364
384
  if (utils.isPlainObject(results[key])) {
365
385
  // 空,不允许
366
386
  if (!this.editLabelItem.labelObj[key]) {
367
- this.$set(this.editLabelItem.labelObj, key, {
368
- multipleChoice: choiceTypes[key],
387
+ this.$set(this.editLabelItem.labelObj, key, Object.assign({
369
388
  addVal: '',
370
389
  showAdd: false,
371
390
  itemList: false,
372
391
  typeId: '',
373
392
  typeName: key
374
- });
393
+ },{...(choiceTypes[key] || {})}));
375
394
  } else {
376
395
  // 非空,不允许
377
396
  this.$set(this.editLabelItem.labelObj[key], 'isNoAdd', true);
378
- this.$set(this.editLabelItem.labelObj[key], 'multipleChoice', choiceTypes[key]);
397
+ this.$set(this.editLabelItem.labelObj[key], 'multipleChoice', choiceTypes[key]?.multipleChoice);
398
+ this.$set(this.editLabelItem.labelObj[key], 'allowCreateByPersonal', choiceTypes[key]?.allowCreateByPersonal);
399
+ this.$set(this.editLabelItem.labelObj[key], 'parentColor', choiceTypes[key]?.parentColor);
379
400
  }
380
401
  } else {
381
- this.$set(this.editLabelItem.labelObj[key], 'multipleChoice', choiceTypes[key]);
402
+ this.$set(this.editLabelItem.labelObj[key], 'multipleChoice', choiceTypes[key]?.multipleChoice);
403
+ this.$set(this.editLabelItem.labelObj[key], 'allowCreateByPersonal', choiceTypes[key]?.allowCreateByPersonal);
404
+ this.$set(this.editLabelItem.labelObj[key], 'parentColor', choiceTypes[key]?.parentColor);
382
405
  }
383
406
  });
384
- },
407
+ },
385
408
 
386
409
  updateLabelData(){
387
- this.handleGetLabelData(this.item)
410
+ this.handleGetLabelData(this.item, true)
388
411
  },
389
412
 
390
413
  /**
@@ -414,6 +437,18 @@ export default create({
414
437
  this.$refs.labelFormContent?.hanldeSetLabelItem(id, state);
415
438
  })
416
439
  }
440
+ },
441
+
442
+ async handleGetMultipleChoiceConfig(v){
443
+ const { rows, results } = await this.getLabelList(v);
444
+ if (!results) return false;
445
+ let multipleChoiceConfig = (results.typeList || []).reduce((obj, item) => {
446
+ obj[item.typeId] = item.multipleChoice
447
+ return obj;
448
+ }, {});
449
+
450
+ this.multipleChoiceConfig = multipleChoiceConfig;
451
+ this.$set(this,'multipleChoiceConfig',multipleChoiceConfig);
417
452
  }
418
453
  }
419
454
  });
@@ -445,6 +480,10 @@ export default create({
445
480
  .tag-label {
446
481
  /deep/ .ant-tag {
447
482
  margin-bottom: 4px;
483
+ border: 1px solid #f1f1f1;
484
+ .anticon-close {
485
+ color: #fff;
486
+ }
448
487
  }
449
488
  }
450
489
  .common-label {
@@ -44,25 +44,42 @@
44
44
  <li v-if="isShowSetting('hideSearch') && !showRelatedTreeBtn" ref="inputSearchLi" class="baseSearch-input-search">
45
45
  <template v-if="outSearchFieldList && outSearchFieldList.length">
46
46
  <a-input
47
- :style="{ width, margin: '0 8px 8px 0' }"
47
+ :style="{ width: inputSearchW + 'px', margin: '0 8px 8px 0' }"
48
48
  allowClear
49
- placeholder="请输入关键字搜索"
49
+ :placeholder="searchPlaceHolder"
50
50
  :value="currentValue"
51
51
  @input="$emit('input', $event.target.value)"
52
52
  @pressEnter="outFilterChange"
53
+ class="input-search-com"
53
54
  >
55
+ <template slot="prefix" v-if="showPlaceholderPrefix">
56
+ <a-tooltip
57
+ :title="searchPlaceHolder"
58
+ overlayClassName="basesearch-placeholder-tooltip"
59
+ >
60
+ <a-icon type="info-circle" />
61
+ </a-tooltip>
62
+ </template>
54
63
  </a-input>
55
64
  </template>
56
65
  <a-input-search
57
66
  v-else
58
- class="my-input-search"
59
- :style="{ width }"
67
+ class="my-input-search input-search-com"
68
+ :style="{ width: inputSearchW + 'px' }"
60
69
  @search="onSearch"
61
70
  allowClear
62
- placeholder="请输入关键字搜索"
71
+ :placeholder="searchPlaceHolder"
63
72
  :value="currentValue"
64
73
  @input="$emit('input', $event.target.value)"
65
74
  >
75
+ <template slot="prefix" v-if="showPlaceholderPrefix">
76
+ <a-tooltip
77
+ :title="searchPlaceHolder"
78
+ overlayClassName="basesearch-placeholder-tooltip"
79
+ >
80
+ <a-icon type="info-circle" />
81
+ </a-tooltip>
82
+ </template>
66
83
  <a-button slot="enterButton" type="primary">
67
84
  <svg-icon icon-class="xitongtubiaosousuo"></svg-icon>
68
85
  </a-button>
@@ -83,7 +100,7 @@
83
100
 
84
101
  <!-- 平铺列表 tree -->
85
102
  <template v-if="showRelatedTreeBtn">
86
- <li :class="[showRelatedSearchFold ? 'related-search-input' : 'related-search-input-expand']">
103
+ <li v-if="showRelatedSearch" :class="[isRelatedSearchFold ? 'related-search-input' : 'related-search-input-expand']">
87
104
  <a-input-search
88
105
  ref="relatedSearchInput"
89
106
  class="my-input-search my-input-search-related"
@@ -312,6 +329,10 @@
312
329
  >{{ item.name }} {{ countTabCondition == 1 && (item.digital || item.digital === 0) ? '(' + (item.digital || 0) + ')' : '' }}</div
313
330
  >
314
331
  </div>
332
+ <!-- palceholder 文字宽度计算 -->
333
+ <span class="baseSearchPlaceholderSpan" ref="baseSearchPlaceholderSpan">
334
+ {{ searchPlaceHolder }}
335
+ </span>
315
336
  </div>
316
337
  </template>
317
338
 
@@ -535,7 +556,8 @@ export default create({
535
556
  filterApiConfigOutSearch: {
536
557
  type: Object,
537
558
  default: () => ({})
538
- }
559
+ },
560
+ useFieldList: Array
539
561
  },
540
562
  components: {
541
563
  [Button.name]: Button,
@@ -713,6 +735,21 @@ export default create({
713
735
  return function(key) {
714
736
  return this.$attrs.tableOptions?.[key];
715
737
  }
738
+ },
739
+ searchPlaceHolder() {
740
+ if (!this.useFieldList?.length || this.showRelatedTreeBtn) return "请输入关键字搜索";
741
+ let str = "";
742
+ let strList = this.useFieldList
743
+ ?.map(item => {
744
+ if (item.isSearch != 1) return "";
745
+ return item.formTitle || item.alias || item.title;
746
+ })
747
+ .filter(Boolean);
748
+ str = "输入" + strList.join("/");
749
+ return str || "请输入关键字搜索";
750
+ },
751
+ showRelatedSearch() {
752
+ return this.showRelatedTreeBtn && this.isShowSetting('hideSearch')
716
753
  }
717
754
  },
718
755
  data() {
@@ -760,7 +797,9 @@ export default create({
760
797
  groupBtnObj: {},
761
798
  btnObj: BTNOBJ,
762
799
  printBtnStrategys: [], // 打印按钮组策略list
763
- outRelationQuickSearch: [] // 关联表 筛选外显
800
+ outRelationQuickSearch: [], // 关联表 筛选外显
801
+ inputSearchW: 200,
802
+ showPlaceholderPrefix: false
764
803
  };
765
804
  },
766
805
  created() {
@@ -1719,7 +1758,8 @@ export default create({
1719
1758
  const obj = {
1720
1759
  table: i
1721
1760
  };
1722
- paramsArray.push(utils.setParamsValue(setData[0].params, Object.assign(paramsData, { obj })));
1761
+ // paramsArray.push(utils.setParamsValue(setData[0].params, Object.assign(paramsData, { obj })));
1762
+ paramsArray.push(utils.setParamsValue(setData[0].params, Object.assign(paramsData, { obj, table: i })));
1723
1763
  });
1724
1764
 
1725
1765
  return paramsArray;
@@ -1728,13 +1768,23 @@ export default create({
1728
1768
  let cloneList = _.cloneDeep(btnList);
1729
1769
 
1730
1770
  printNumberList.forEach((item, index) => {
1731
- cloneList[index].__printConfig = {
1732
- number: item.number,
1733
- authorizationKey: item.authorizationKey,
1734
- port: item.port,
1735
- versionType: item.versionType,
1736
- hisParams: { reportid: item.number }
1737
- };
1771
+ const i = cloneList.findIndex(v => v.settingObj[0].trigger_id == item.id);
1772
+ if (i > -1) {
1773
+ cloneList[i].__printConfig = {
1774
+ number: item.number,
1775
+ authorizationKey: item.authorizationKey,
1776
+ port: item.port,
1777
+ versionType: item.versionType,
1778
+ hisParams: { reportid: item.number }
1779
+ };
1780
+ }
1781
+ // cloneList[index].__printConfig = {
1782
+ // number: item.number,
1783
+ // authorizationKey: item.authorizationKey,
1784
+ // port: item.port,
1785
+ // versionType: item.versionType,
1786
+ // hisParams: { reportid: item.number }
1787
+ // };
1738
1788
  });
1739
1789
 
1740
1790
  return cloneList;
@@ -1761,7 +1811,8 @@ export default create({
1761
1811
  number: item.number,
1762
1812
  authorizationKey: data.authorizationKey,
1763
1813
  versionType: data.versionType,
1764
- port: data.port
1814
+ port: data.port,
1815
+ id: item.id
1765
1816
  };
1766
1817
  });
1767
1818
  this.setPrintNumberCache({
@@ -2031,6 +2082,26 @@ export default create({
2031
2082
  });
2032
2083
  }
2033
2084
  }
2085
+ },
2086
+ searchPlaceHolder: {
2087
+ immediate: true,
2088
+ handler(val) {
2089
+ if (!val || this.showRelatedTreeBtn) return;
2090
+ this.$nextTick(() => {
2091
+ this.showPlaceholderPrefix = false;
2092
+ let dom = this.$refs.baseSearchPlaceholderSpan;
2093
+ if(!dom) return;
2094
+ let w = dom.offsetWidth;
2095
+ console.log(w, "wwww");
2096
+ let maxW = this.showOutSearch ? 284 : 244;
2097
+ this.inputSearchW = w > maxW ? 300 : w < 200 ? 200 : w;
2098
+ if (w > maxW) {
2099
+ this.showPlaceholderPrefix = true;
2100
+ }
2101
+ this.onResize();
2102
+ console.log(this.inputSearchW);
2103
+ });
2104
+ }
2034
2105
  }
2035
2106
  }
2036
2107
  });
@@ -2202,6 +2273,13 @@ export default create({
2202
2273
  }
2203
2274
  }
2204
2275
  }
2276
+ .baseSearch-input-search {
2277
+ .input-search-com {
2278
+ input {
2279
+ padding: 4px 8px;
2280
+ }
2281
+ }
2282
+ }
2205
2283
  }
2206
2284
  /deep/ .num-picker {
2207
2285
  position: relative;
@@ -2296,6 +2374,11 @@ export default create({
2296
2374
  /* Internet Explorer 10+ */
2297
2375
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
2298
2376
  }
2377
+ .baseSearchPlaceholderSpan {
2378
+ visibility: hidden;
2379
+ position: absolute;
2380
+ z-index: -1;
2381
+ }
2299
2382
  }
2300
2383
  </style>
2301
2384
  <style lang="less">