cloud-web-corejs 1.0.54-dev.164 → 1.0.54-dev.166

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.
@@ -6,12 +6,12 @@
6
6
  :disabled="field.options.disabled" :size="field.options.size"
7
7
  @change="handleChangeEvent">
8
8
  <template v-if="!!field.options.buttonStyle">
9
- <el-checkbox-button v-for="(item, index) in field.options.optionItems" :key="index" :label="item.value"
9
+ <el-checkbox-button v-for="(item, index) in optionItems" :key="index" :label="item.value"
10
10
  :disabled="item.disabled" :border="field.options.border"
11
11
  :style="{display: field.options.displayStyle}">{{ getI18nLabel(item.label) }}</el-checkbox-button>
12
12
  </template>
13
13
  <template v-else>
14
- <el-checkbox v-for="(item, index) in field.options.optionItems" :key="index" :label="item[valueField]"
14
+ <el-checkbox v-for="(item, index) in optionItems" :key="index" :label="item[valueField]"
15
15
  :disabled="item.disabled" :border="field.options.border"
16
16
  :style="{display: field.options.displayStyle}">{{ getI18nLabel(item[labelField]) }}</el-checkbox>
17
17
  </template>
@@ -73,6 +73,9 @@
73
73
  valueField(){
74
74
  return this.field.options.valueKey || "value";
75
75
  },
76
+ optionItems(){
77
+ return this.getOptionItems();
78
+ }
76
79
  },
77
80
  beforeCreate() {
78
81
  /* 这里不能访问方法和属性!! */
@@ -134,7 +134,7 @@ modules = {
134
134
  if (null === this.fieldModel) return "--";
135
135
  var t = "--";
136
136
  return (
137
- this.field.options.optionItems.forEach(function (i) {
137
+ this.getOptionItems().forEach(function (i) {
138
138
  (i.value !== e.fieldModel &&
139
139
  -1 === e.findInArray(e.fieldModel, i.value)) ||
140
140
  (t = "--" === t ? i.label : t + " " + i.label);
@@ -467,6 +467,10 @@ modules = {
467
467
  : delete this.refList[e];
468
468
  }
469
469
  },
470
+ getOptionKey(){
471
+ let key = +"optionItems-"+ this.field.options.name
472
+ return key;
473
+ },
470
474
  async initOptionItems(keepSelected) {
471
475
  var t = this;
472
476
  if (this.designState) {
@@ -483,12 +487,17 @@ modules = {
483
487
  let formCode = reportTemplate.formCode;
484
488
  let formScriptEnabled = this.field.options.formScriptEnabled || false;
485
489
  let scriptCode = this.field.options.formScriptCode || "getList";
490
+ let tableParam = this.tableParam;
486
491
  if (formScriptEnabled) {
487
- let tableParam = this.tableParam;
488
- /*if(tableParam && tableParam.column.params.optionItems){
489
- this.field.options.optionItems = this.$baseLodash.cloneDeep(tableParam.column.params.optionItems);
490
- return
491
- }*/
492
+ if(tableParam){
493
+ // tableParam.column.params.optionItems
494
+ let key = this.getOptionKey();
495
+ let optionItems = tableParam.column.params[key];
496
+ if(optionItems!==undefined){
497
+ return
498
+ }
499
+ tableParam.column.params[key] = null
500
+ }
492
501
  let accessParam = this.handleCustomEvent(
493
502
  this.field.options.formScriptParam
494
503
  );
@@ -515,6 +524,15 @@ modules = {
515
524
  } else if (this.field.options.commonAttributeEnabled) {
516
525
  let commonAttributeCode = this.field.options.commonAttributeCode;
517
526
  if (!commonAttributeCode) return;
527
+ if(tableParam){
528
+ // tableParam.column.params.optionItems
529
+ let key = this.getOptionKey();
530
+ let optionItems = tableParam.column.params[key];
531
+ if(optionItems!==undefined){
532
+ return
533
+ }
534
+ tableParam.column.params[key] = null
535
+ }
518
536
  this.$getBaseDicts({
519
537
  code: commonAttributeCode,
520
538
  success: ({dicts, dictMap}) => {
@@ -526,6 +544,16 @@ modules = {
526
544
  );
527
545
  },
528
546
  });
547
+ }else{
548
+ if(tableParam){
549
+ // tableParam.column.params.optionItems
550
+ let key = this.getOptionKey();
551
+ let optionItems = tableParam.column.params[key];
552
+ if(optionItems!==undefined){
553
+ return
554
+ }
555
+ tableParam.column.params[key] = this.$baseLodash.cloneDeep(this.field.options.optionItems);
556
+ }
529
557
  }
530
558
 
531
559
  return;
@@ -1100,7 +1128,9 @@ modules = {
1100
1128
  this.field.options.optionItems = optionItems
1101
1129
  let tableParam = this.tableParam;
1102
1130
  if(tableParam){
1103
- tableParam.column.params.optionItems = optionItems;
1131
+ let key = this.getOptionKey()
1132
+ tableParam.column.params[key] = optionItems;
1133
+ // tableParam.column.params.optionItems = optionItems;
1104
1134
  }
1105
1135
  },
1106
1136
  reloadOptions: function (e) {
@@ -1110,18 +1140,34 @@ modules = {
1110
1140
  this.field.options.labelKey || "label",
1111
1141
  this.field.options.valueKey || "value"
1112
1142
  );
1143
+ let tableParam = this.tableParam;
1144
+ if(tableParam){
1145
+ let key = this.getOptionKey();
1146
+ tableParam.column.params[key] = optionItems;
1147
+ // tableParam.column.params.optionItems = optionItems;
1148
+ }
1113
1149
  },
1114
1150
  getOptions: function () {
1115
- return this.field.options.optionItems;
1151
+ return this.getOptionItems();
1116
1152
  },
1117
1153
  disableOption: function (e) {
1118
- this.disableOptionOfList(this.field.options.optionItems, e);
1154
+ this.disableOptionOfList(this.getOptionItems(), e);
1119
1155
  },
1120
1156
  enableOption: function (e) {
1121
- this.enableOptionOfList(this.field.options.optionItems, e);
1157
+ this.enableOptionOfList(this.getOptionItems(), e);
1122
1158
  },
1123
1159
  getOptionItems: function () {
1124
- return this.field.options.optionItems;
1160
+ // return this.field.options.optionItems;
1161
+ let tableParam = this.tableParam;
1162
+ let optionItems = this.field.options.optionItems;
1163
+ if(tableParam){
1164
+ let key = this.getOptionKey();
1165
+ let rows = tableParam.column.params[key];
1166
+ if(rows!==undefined){
1167
+ optionItems = rows || []
1168
+ }
1169
+ }
1170
+ return optionItems;
1125
1171
  },
1126
1172
  setUploadHeader: function (e, t) {
1127
1173
  this.$set(this.uploadHeaders, e, t);
@@ -5,7 +5,7 @@
5
5
  :parent-widget="parentWidget" :parent-list="parentList"
6
6
  :index-of-parent-list="indexOfParentList">
7
7
  <el-button type="primary" class="button-sty" size="mini" icon="el-icon-download" @click="importHandle"
8
- :disabled="field.options.disabled">{{ $t1('导入') }}
8
+ :disabled="field.options.disabled">{{ getI18nLabel(field.options.label)}}
9
9
  </el-button>
10
10
  </static-content-wrapper>
11
11
 
@@ -61,16 +61,11 @@ export default {
61
61
 
62
62
  methods: {
63
63
  importHandle() {
64
- let scriptCode = this.field.options.importScriptCode;
65
- let entity = this.field.options.importEntity;
66
- let importAttachCode = this.field.options.importAttachCode;
67
- // let importCodes = this.field.options.importCodes;
68
64
  this.getFormRef().openImportDialog({
69
65
  importOption: this.field.options,
70
- importSaveDisabled: !!this.field.options.importSaveDisabled,
66
+ importFrontOnly: false,
71
67
  callback: (resultData, file, done) => {
72
- // this.getWidgetRef(tableTarget).searchEvent();
73
- this.handleCustomEvent(this.field.options.onConfirmImport, ['resultData', 'file', 'done'], [resultData, file, done])
68
+
74
69
  }
75
70
  });
76
71
  }
@@ -0,0 +1,80 @@
1
+ <template>
2
+ <static-content-wrapper
3
+ :designer="designer" :field="field" :design-state="designState"
4
+ :display-style="field.options.displayStyle"
5
+ :parent-widget="parentWidget" :parent-list="parentList"
6
+ :index-of-parent-list="indexOfParentList">
7
+ <el-button type="primary" class="button-sty" size="mini" icon="el-icon-download" @click="importHandle"
8
+ :disabled="field.options.disabled">{{ getI18nLabel(field.options.label)}}
9
+ </el-button>
10
+ </static-content-wrapper>
11
+
12
+ </template>
13
+ <script>
14
+ import emitter from '../../../../../components/xform/utils/emitter'
15
+ import i18n from "../../../../../components/xform/utils/i18n";
16
+ import fieldMixin from "../../../../../components/xform/form-designer/form-widget/field-widget/fieldMixin";
17
+ import StaticContentWrapper
18
+ from "../../../../../components/xform/form-designer/form-widget/field-widget/static-content-wrapper.vue";
19
+
20
+ export default {
21
+ name: "import2-button-widget",
22
+ components: {StaticContentWrapper},
23
+ componentName: 'FieldWidget', //必须固定为FieldWidget,用于接收父级组件的broadcast事件
24
+ mixins: [emitter, fieldMixin, i18n],
25
+ props: {
26
+ field: Object,
27
+ parentWidget: Object,
28
+ parentList: Array,
29
+ indexOfParentList: Number,
30
+ designer: Object,
31
+ designState: {
32
+ type: Boolean,
33
+ default: false
34
+ }
35
+ },
36
+ data() {
37
+ return {
38
+ exportOption: {}
39
+ }
40
+ },
41
+ beforeCreate() {
42
+ /* 这里不能访问方法和属性!! */
43
+ },
44
+ created() {
45
+
46
+ /* 注意:子组件mounted在父组件created之后、父组件mounted之前触发,故子组件mounted需要用到的prop
47
+ 需要在父组件created中初始化!! */
48
+ this.registerToRefList()
49
+ this.initEventHandler()
50
+
51
+ this.handleOnCreated()
52
+ },
53
+
54
+ mounted() {
55
+ this.handleOnMounted()
56
+ },
57
+
58
+ beforeDestroy() {
59
+ this.unregisterFromRefList()
60
+ },
61
+
62
+ methods: {
63
+ importHandle() {
64
+ this.getFormRef().openImportDialog({
65
+ importOption: this.field.options,
66
+ importFrontOnly: true,
67
+ callback: (resultData, file, done) => {
68
+
69
+ }
70
+ });
71
+ }
72
+ }
73
+
74
+ }
75
+ </script>
76
+
77
+ <style lang="scss" scoped>
78
+ @import "~@/styles/global.scss"; //* static-content-wrapper已引入,还需要重复引入吗? *//
79
+
80
+ </style>
@@ -6,12 +6,12 @@
6
6
  :disabled="field.options.disabled" :size="field.options.size"
7
7
  @change="handleChangeEvent">
8
8
  <template v-if="!!field.options.buttonStyle">
9
- <el-radio-button v-for="(item, index) in field.options.optionItems" :key="index" :label="item.value"
9
+ <el-radio-button v-for="(item, index) in optionItems" :key="index" :label="item.value"
10
10
  :disabled="item.disabled" :border="field.options.border"
11
11
  :style="{display: field.options.displayStyle}">{{ getI18nLabel(item.label) }}</el-radio-button>
12
12
  </template>
13
13
  <template v-else>
14
- <el-radio v-for="(item, index) in field.options.optionItems" :key="index" :label="item[valueField]"
14
+ <el-radio v-for="(item, index) in optionItems" :key="index" :label="item[valueField]"
15
15
  :disabled="item.disabled" :border="field.options.border"
16
16
  :style="{display: field.options.displayStyle}">{{ getI18nLabel(item[labelField]) }}</el-radio>
17
17
  </template>
@@ -73,6 +73,9 @@
73
73
  valueField(){
74
74
  return this.field.options.valueKey || "value";
75
75
  },
76
+ optionItems(){
77
+ return this.getOptionItems();
78
+ }
76
79
  },
77
80
  beforeCreate() {
78
81
  /* 这里不能访问方法和属性!! */
@@ -18,7 +18,7 @@
18
18
  @change="handleChangeEvent"
19
19
  :style="'width:'+field.options.widgetWidth+' !important;'"
20
20
  :class="{'custom-width':field.options.widgetWidth!=null}">
21
- <el-option v-for="(item,index) in field.options.optionItems" :key="index" :label="getI18nLabel(item[labelField])"
21
+ <el-option v-for="(item,index) in optionItems" :key="index" :label="getI18nLabel(item[labelField])"
22
22
  :value="item[valueField]" :disabled="item.disabled">
23
23
  </el-option>
24
24
  </el-select>
@@ -87,6 +87,9 @@ export default {
87
87
  let optionItems = this.field.options.optionItems;
88
88
  let optionItem = optionItems.find(item => item.value === fieldModel)
89
89
  return optionItem && optionItem.label ? optionItem.label : null;
90
+ },
91
+ optionItems(){
92
+ return this.getOptionItems();
90
93
  }
91
94
 
92
95
  },
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div>
3
3
  <el-form-item label-width="0">
4
- <el-divider class="custom-divider">导入设置</el-divider>
4
+ <el-divider class="custom-divider">后端导入设置</el-divider>
5
5
  </el-form-item>
6
6
  <el-form-item label="导入数据表名">
7
7
  <el-input v-model="optionModel.importEntity"></el-input>
@@ -19,18 +19,15 @@
19
19
  <i slot="suffix" class="el-input__icon el-icon-search" @click="showBdAttachSettingDialog = true"></i>
20
20
  </el-input>
21
21
  </el-form-item>
22
- <el-form-item label="执行后台脚本编码">
23
- <el-input v-model="optionModel.importScriptCode"></el-input>
24
- </el-form-item>
25
22
  <el-form-item label="关联表格唯一名称">
26
23
  <el-input v-model="optionModel.tableRef"></el-input>
27
24
  </el-form-item>
25
+ <el-form-item label="执行后台脚本编码">
26
+ <el-input v-model="optionModel.importScriptCode"></el-input>
27
+ </el-form-item>
28
28
  <el-form-item label="启用图片处理">
29
29
  <el-switch v-model="optionModel.enabledImportPreHandle"></el-switch>
30
30
  </el-form-item>
31
- <!-- <el-form-item label="图片处理脚本编码">
32
- <el-input v-model="optionModel.importPreScriptCode"></el-input>
33
- </el-form-item>-->
34
31
  <el-form-item label="导入前数据处理" label-width="150px">
35
32
  <a href="javascript:void(0);" class="a-link link-oneLind"
36
33
  @click="editEventHandler('onBeforeImport', onBeforeImportParams)">
@@ -39,16 +36,13 @@
39
36
  </a>
40
37
  </el-form-item>
41
38
 
42
- <!-- <el-form-item label="不执行导入后台保存">
43
- <el-switch v-model="optionModel.importSaveDisabled"></el-switch>
44
- </el-form-item>
45
- <el-form-item label="确认回调" label-width="150px">
39
+ <el-form-item label="导入完成回调" label-width="150px">
46
40
  <a href="javascript:void(0);" class="a-link link-oneLind"
47
- @click="editEventHandler('onConfirmImport', onConfirmImportParams)">
48
- <span>{{ optionModel.onConfirmImport }}</span>
41
+ @click="editEventHandler('onSuccessImport', onSuccessImportParams)">
42
+ <span>{{ optionModel.onSuccessImport }}</span>
49
43
  <i class="el-icon-edit"></i>
50
44
  </a>
51
- </el-form-item>-->
45
+ </el-form-item>
52
46
 
53
47
  <bdAttachSettingDialog v-if="showBdAttachSettingDialog" :visiable.sync="showBdAttachSettingDialog" :multi="false"
54
48
  @confirm="confirmBdAttachSettingDialog"></bdAttachSettingDialog>
@@ -75,7 +69,8 @@ export default {
75
69
  eventParams: [],
76
70
  showBdAttachSettingDialog: false,
77
71
  onBeforeImportParams: ["dataId", "formCode", 'file', 'resultData', 'done'],
78
- onConfirmImportParams: ["dataId", "formCode", 'resultData', 'file', 'done']
72
+ onConfirmImportParams: ["dataId", "formCode", 'resultData', 'file', 'done'],
73
+ onSuccessImportParams: ["dataId", "formCode", 'resultData', 'file']
79
74
  };
80
75
  },
81
76
  methods: {
@@ -0,0 +1,80 @@
1
+ <template>
2
+ <div>
3
+ <el-form-item label-width="0">
4
+ <el-divider class="custom-divider">前端导入设置</el-divider>
5
+ </el-form-item>
6
+ <el-form-item label="文件大小限制(M)">
7
+ <base-input-number v-model="optionModel.importFileLimitSize" :max="200"></base-input-number>
8
+ </el-form-item>
9
+ <el-form-item label="选择导入模板文件">
10
+ <el-input
11
+ class="search-input"
12
+ max="200"
13
+ v-model="optionModel.importAttachCode"
14
+ clearable
15
+ >
16
+ <i slot="suffix" class="el-input__icon el-icon-search" @click="showBdAttachSettingDialog = true"></i>
17
+ </el-input>
18
+ </el-form-item>
19
+ <el-form-item label="关联表格唯一名称">
20
+ <el-input v-model="optionModel.tableRef"></el-input>
21
+ </el-form-item>
22
+ <el-form-item label="启用确认回调">
23
+ <el-switch v-model="optionModel.onConfirmImportEnabled"></el-switch>
24
+ </el-form-item>
25
+ <el-form-item label="确认回调" label-width="150px" v-if="optionModel.onConfirmImportEnabled">
26
+ <a href="javascript:void(0);" class="a-link link-oneLind"
27
+ @click="editEventHandler('onConfirmImport', onConfirmImportParams)">
28
+ <span>{{ optionModel.onConfirmImport }}</span>
29
+ <i class="el-icon-edit"></i>
30
+ </a>
31
+ </el-form-item>
32
+ <el-form-item label="导入完成回调" label-width="150px">
33
+ <a href="javascript:void(0);" class="a-link link-oneLind"
34
+ @click="editEventHandler('onSuccessImport', onSuccessImportParams)">
35
+ <span>{{ optionModel.onSuccessImport }}</span>
36
+ <i class="el-icon-edit"></i>
37
+ </a>
38
+ </el-form-item>
39
+
40
+ <bdAttachSettingDialog v-if="showBdAttachSettingDialog" :visiable.sync="showBdAttachSettingDialog" :multi="false"
41
+ @confirm="confirmBdAttachSettingDialog"></bdAttachSettingDialog>
42
+ </div>
43
+ </template>
44
+
45
+ <script>
46
+ import i18n from "../../../../../../components/xform/utils/i18n";
47
+ import eventMixin
48
+ from "../../../../../../components/xform/form-designer/setting-panel/property-editor/event-handler/eventMixin";
49
+ import bdAttachSettingDialog from "../../../../../../views/bd/setting/bd_attach_setting/dialog.vue";
50
+
51
+ export default {
52
+ name: "import2-button-editor",
53
+ components: {bdAttachSettingDialog},
54
+ mixins: [i18n, eventMixin],
55
+ props: {
56
+ designer: Object,
57
+ selectedWidget: Object,
58
+ optionModel: Object,
59
+ },
60
+ data() {
61
+ return {
62
+ eventParams: [],
63
+ showBdAttachSettingDialog: false,
64
+ onBeforeImportParams: ["dataId", "formCode", 'file', 'resultData', 'done'],
65
+ onConfirmImportParams: ["dataId", "formCode", 'resultData', 'file', 'done'],
66
+ onSuccessImportParams: ["dataId", "formCode", 'resultData', 'file']
67
+ };
68
+ },
69
+ methods: {
70
+ confirmBdAttachSettingDialog(rows) {
71
+ if (rows.length) {
72
+ let row = rows[0];
73
+ this.optionModel.importAttachCode = row.code;
74
+ }
75
+ }
76
+ }
77
+ };
78
+ </script>
79
+
80
+ <style scoped></style>
@@ -140,6 +140,7 @@ const COMMON_PROPERTIES = {
140
140
 
141
141
  tableExportParam: "table-export-button-editor",
142
142
  importEntity: "import-button-editor",
143
+ frontImportFlag: "import2-button-editor",
143
144
  printTableRef: "print-button-editor",
144
145
  statusParam: "field-status-editor",
145
146
  // searchDialogEventEnabled: "search-dialog-event-editor"
@@ -2793,7 +2793,7 @@ export const advancedFields = [
2793
2793
  label: "导入",
2794
2794
  columnWidth: "200px",
2795
2795
  size: "",
2796
- importFileLimitSize: 200,
2796
+
2797
2797
  // displayStyle: "block",
2798
2798
  disabled: !1,
2799
2799
  hidden: !1,
@@ -2810,14 +2810,57 @@ export const advancedFields = [
2810
2810
  ...defaultSearchDialogConfig
2811
2811
  },
2812
2812
  ...defaultWfConfig,
2813
+
2814
+ importFileLimitSize: 200,
2813
2815
  importEntity: '',
2814
2816
  importAttachCode: '',
2815
2817
  importScriptCode: '',
2816
2818
  onBeforeImport: '',
2817
2819
  enabledImportPreHandle: false,
2820
+ tableRef:'',
2821
+ onSuccessImport:'',
2822
+
2823
+ showRuleFlag: 1,
2824
+ showRuleEnabled: 1,
2825
+ showRules: []
2826
+ },
2827
+ },
2828
+ {
2829
+ type: "import2-button",
2830
+ icon: "button",
2831
+ commonFlag: !0,
2832
+ columnFlag: true,
2833
+ formItemFlag: !1,
2834
+ options: {
2835
+ name: "",
2836
+ label: "明细导入",
2837
+ columnWidth: "200px",
2838
+ size: "",
2818
2839
 
2819
- importSaveDisabled: false,
2840
+ // displayStyle: "block",
2841
+ disabled: !1,
2842
+ hidden: !1,
2843
+ type: "primary",
2844
+ /*plain: !1,
2845
+ round: !1,
2846
+ circle: !1,
2847
+ icon: "el-icon-download",*/
2848
+ customClass: "",
2849
+ onCreated: "",
2850
+ onMounted: "",
2851
+ // clickBindEvent: null,
2852
+ searchDialogConfig: {
2853
+ ...defaultSearchDialogConfig
2854
+ },
2855
+ ...defaultWfConfig,
2856
+
2857
+ frontImportFlag:1,
2858
+ importFileLimitSize: 200,
2859
+ importAttachCode: '',
2860
+ tableRef:'',
2861
+ onConfirmImportEnabled:false,
2820
2862
  onConfirmImport: '',
2863
+ onSuccessImport:'',
2821
2864
 
2822
2865
  showRuleFlag: 1,
2823
2866
  showRuleEnabled: 1,
@@ -69,6 +69,7 @@ export default {
69
69
  "export_button": "导出按钮",
70
70
  "import_button": "导入按钮",
71
71
  "import-button": "导入按钮",
72
+ "import2-button": "明细导入按钮",
72
73
  "print-button": "导出/打印按钮",
73
74
  "rich-editor": "富文本",
74
75
  cascader: "级联选择",