cloud-web-corejs 1.0.93 → 1.0.95

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 (65) hide show
  1. package/package.json +39 -30
  2. package/src/components/wf/content.vue +2 -0
  3. package/src/components/wf/setCandidateDialog.vue +1 -0
  4. package/src/components/wf/wf.js +3 -1
  5. package/src/components/xform/form-designer/designer.js +1 -1
  6. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +2 -1
  7. package/src/components/xform/form-designer/form-widget/dialog/searchFormDialog.vue +3 -0
  8. package/src/components/xform/form-designer/form-widget/field-widget/checkbox-widget.vue +1 -1
  9. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-item-widget.vue +77 -0
  10. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-menu-widget.vue +106 -0
  11. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +7 -2
  12. package/src/components/xform/form-designer/form-widget/field-widget/mixins/vabsearch-mixin.js +176 -0
  13. package/src/components/xform/form-designer/form-widget/field-widget/multiSearch-widget.vue +53 -0
  14. package/src/components/xform/form-designer/form-widget/field-widget/number-widget.vue +1 -1
  15. package/src/components/xform/form-designer/form-widget/field-widget/project-tag-widget.vue +5 -2
  16. package/src/components/xform/form-designer/form-widget/field-widget/radio-widget.vue +1 -1
  17. package/src/components/xform/form-designer/form-widget/field-widget/search_button-widget.vue +1 -1
  18. package/src/components/xform/form-designer/form-widget/field-widget/select-widget.vue +2 -1
  19. package/src/components/xform/form-designer/form-widget/field-widget/singerSearch-widget.vue +53 -0
  20. package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +3 -2
  21. package/src/components/xform/form-designer/form-widget/field-widget/vabSearch-widget.vue +2 -170
  22. package/src/components/xform/form-designer/indexMixin.js +1 -1
  23. package/src/components/xform/form-designer/setting-panel/form-setting.vue +263 -38
  24. package/src/components/xform/form-designer/setting-panel/index.vue +4 -0
  25. package/src/components/xform/form-designer/setting-panel/indexMixin.js +1 -1
  26. package/src/components/xform/form-designer/setting-panel/option-items-setting.vue +8 -3
  27. package/src/components/xform/form-designer/setting-panel/property-editor/a-link-editor.vue +1 -1
  28. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/columnRenderDialog.vue +3 -2
  29. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +0 -8
  30. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +111 -12
  31. package/src/components/xform/form-designer/setting-panel/property-editor/container-list-h5/list-h5-editor.vue +0 -8
  32. package/src/components/xform/form-designer/setting-panel/property-editor/field-button/search-dialog-event-editor.vue +26 -8
  33. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-item-editor.vue +21 -0
  34. package/src/components/xform/form-designer/setting-panel/property-editor/field-dropdown-menu/dropdown-menu-editor.vue +59 -0
  35. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +7 -2
  36. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +8 -2
  37. package/src/components/xform/form-designer/setting-panel/property-editor/field-status/field-status-editor.vue +47 -28
  38. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabSearch/vabSearchName-editor.vue +13 -1
  39. package/src/components/xform/form-designer/setting-panel/property-editor/formula-editor.vue +722 -467
  40. package/src/components/xform/form-designer/setting-panel/property-editor/formulaEnabled-editor.vue +1 -1
  41. package/src/components/xform/form-designer/setting-panel/property-editor/multiple-editor.vue +19 -14
  42. package/src/components/xform/form-designer/setting-panel/property-editor/project-tag-editor.vue +159 -18
  43. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +51 -2
  44. package/src/components/xform/form-designer/setting-panel/property-editor/wfFlag-editor.vue +2 -30
  45. package/src/components/xform/form-designer/setting-panel/property-editor/widgetShowRuleFlag-editor.vue +220 -0
  46. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +5 -0
  47. package/src/components/xform/form-designer/toolbar-panel/index.vue +8 -4
  48. package/src/components/xform/form-designer/widget-panel/index.vue +21 -1
  49. package/src/components/xform/form-designer/widget-panel/indexMixin.js +3 -2
  50. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +489 -132
  51. package/src/components/xform/form-render/container-item/data-table-item.vue +7 -4
  52. package/src/components/xform/form-render/container-item/data-table-mixin.js +4 -1
  53. package/src/components/xform/form-render/container-item/data-table-mixin2.js +2169 -0
  54. package/src/components/xform/form-render/container-item/list-h5-item.vue +1 -9
  55. package/src/components/xform/form-render/container-item/list-h5-item2.vue +1 -8
  56. package/src/components/xform/form-render/indexMixin.js +7 -3
  57. package/src/components/xform/lang/zh-CN.js +13 -3
  58. package/src/components/xform/mixins/defaultHandle.js +1 -1
  59. package/src/components/xform/mixins/scriptHttp.js +1 -1
  60. package/src/components/xform/utils/format.js +21 -30
  61. package/src/components/xform/utils/formula-util.js +669 -0
  62. package/src/components/xform/utils/util.js +1 -1
  63. package/src/mixins/selectDialog/index.js +1 -1
  64. package/src/store/modules/permission.js +1 -1
  65. package/src/store/modules/settings.js +1 -1
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <el-form-item :label="i18nt('designer.setting.formulaEnabled')">
2
+ <el-form-item v-show="false" :label="i18nt('designer.setting.formulaEnabled')">
3
3
  <el-switch v-model="optionModel.formulaEnabled" @change="handleChangeEvent"></el-switch>
4
4
  </el-form-item>
5
5
  </template>
@@ -1,22 +1,27 @@
1
1
  <template>
2
- <el-form-item :label="i18nt('designer.setting.multiple')">
3
- <el-switch v-model="optionModel.multiple" @change="onMultipleSelected"></el-switch>
4
- </el-form-item>
2
+ <div>
3
+ <el-form-item :label="i18nt('designer.setting.multiple')">
4
+ <el-switch v-model="optionModel.multiple" @change="onMultipleSelected"></el-switch>
5
+ </el-form-item>
6
+ <el-form-item :label="i18nt('平铺选项')">
7
+ <el-switch v-model="optionModel.flatCollapseTags"></el-switch>
8
+ </el-form-item>
9
+ </div>
5
10
  </template>
6
11
 
7
12
  <script>
8
- import i18n from "../../../../../components/xform/utils/i18n"
9
- import propertyMixin from "../../../../../components/xform/form-designer/setting-panel/property-editor/propertyMixin"
13
+ import i18n from "../../../../../components/xform/utils/i18n"
14
+ import propertyMixin from "../../../../../components/xform/form-designer/setting-panel/property-editor/propertyMixin"
10
15
 
11
- export default {
12
- name: "multiple-editor",
13
- mixins: [i18n, propertyMixin],
14
- props: {
15
- designer: Object,
16
- selectedWidget: Object,
17
- optionModel: Object,
18
- },
19
- }
16
+ export default {
17
+ name: "multiple-editor",
18
+ mixins: [i18n, propertyMixin],
19
+ props: {
20
+ designer: Object,
21
+ selectedWidget: Object,
22
+ optionModel: Object,
23
+ },
24
+ }
20
25
  </script>
21
26
 
22
27
  <style scoped>
@@ -3,9 +3,16 @@
3
3
  <el-form-item label-width="0">
4
4
  <el-divider class="custom-divider-margin-top">项目标签设置</el-divider>
5
5
  </el-form-item>
6
- <el-form-item label="表单编码">
6
+ <el-form-item label="弹框表单编码">
7
7
  <el-input v-model="optionModel.tagFormCode" clearable></el-input>
8
8
  </el-form-item>
9
+ <el-form-item label="弹框查询参数">
10
+ <a href="javascript:void(0);" class="a-link link-oneLind"
11
+ @click="editEventHandler('tagFormParam', ['dataId', 'formCode'])">
12
+ <span>{{ optionModel.tagFormParam }}</span>
13
+ <i class="el-icon-edit"></i>
14
+ </a>
15
+ </el-form-item>
9
16
  <el-form-item label="展示字段">
10
17
  <el-input v-model="optionModel.tagLabelField" clearable></el-input>
11
18
  </el-form-item>
@@ -18,13 +25,7 @@
18
25
  <el-form-item label="来源唯一关键字段">
19
26
  <el-input v-model="optionModel.tagFormUniqueField" clearable></el-input>
20
27
  </el-form-item>
21
- <el-form-item label="表单参数">
22
- <a href="javascript:void(0);" class="a-link link-oneLind"
23
- @click="editEventHandler('tagFormParam', ['dataId', 'formCode'])">
24
- <span>{{ optionModel.cf_vendor_item }}</span>
25
- <i class="el-icon-edit"></i>
26
- </a>
27
- </el-form-item>
28
+
28
29
  <el-form-item label="明细字段回填">
29
30
  <a href="javascript:void(0);" class="a-link link-oneLind"
30
31
  @click="openDialog">
@@ -33,7 +34,7 @@
33
34
  </a>
34
35
  </el-form-item>
35
36
  <el-form-item label="确认回调">
36
- <!-- <el-input v-model="optionModel.tagConfirmCallback" clearable></el-input>-->
37
+ <!-- <el-input v-model="optionModel.tagConfirmCallback" clearable></el-input>-->
37
38
  <a href="javascript:void(0);" class="a-link link-oneLind"
38
39
  @click="editEventHandler('tagConfirmCallback', ['dataId', 'formCode','rows'])">
39
40
  <span>{{ optionModel.tagConfirmCallback }}</span>
@@ -41,7 +42,7 @@
41
42
  </a>
42
43
  </el-form-item>
43
44
  <el-form-item label="删除回调">
44
- <!-- <el-input v-model="optionModel.tagDeleteCallback" clearable></el-input>-->
45
+ <!-- <el-input v-model="optionModel.tagDeleteCallback" clearable></el-input>-->
45
46
  <a href="javascript:void(0);" class="a-link link-oneLind"
46
47
  @click="editEventHandler('tagDeleteCallback', ['dataId', 'formCode'])">
47
48
  <span>{{ optionModel.tagDeleteCallback }}</span>
@@ -52,13 +53,13 @@
52
53
  <el-switch v-model="optionModel.tabDeleteEnabled" clearable></el-switch>
53
54
  </el-form-item>
54
55
 
55
- <!-- <el-form-item label="查询参数">
56
- <a href="javascript:void(0);" class="a-link link-oneLind"
57
- @click="editEventHandler('formScriptParam', ['dataId', 'formCode'])">
58
- <span>{{ optionModel.formScriptParam }}</span>
59
- <i class="el-icon-edit"></i>
60
- </a>
61
- </el-form-item>-->
56
+ <!-- <el-form-item label="查询参数">
57
+ <a href="javascript:void(0);" class="a-link link-oneLind"
58
+ @click="editEventHandler('formScriptParam', ['dataId', 'formCode'])">
59
+ <span>{{ optionModel.formScriptParam }}</span>
60
+ <i class="el-icon-edit"></i>
61
+ </a>
62
+ </el-form-item>-->
62
63
  <el-dialog
63
64
  custom-class="dialog-style list-dialog"
64
65
  title="数据回填"
@@ -133,6 +134,120 @@
133
134
  </el-button>
134
135
  </div>
135
136
  </el-dialog>
137
+ <el-dialog
138
+ v-if="dialogVisible"
139
+ custom-class="dialog-style list-dialog"
140
+ :title="i18nt('流程节点信息')"
141
+ :visible.sync="dialogVisible"
142
+ :show-close="!0"
143
+ :append-to-body="true"
144
+ :modal="false"
145
+ :close-on-click-modal="!1"
146
+ :close-on-press-escape="!1"
147
+ :destroy-on-close="!0"
148
+ width="1220px"
149
+ top="5vh"
150
+ v-dialog-drag
151
+ :fullscreen="true"
152
+ >
153
+ <div class="cont" style="padding-bottom: 8px;">
154
+ <el-table
155
+ ref="singleTable"
156
+ width="100%"
157
+ :data="tableData"
158
+ height="100%"
159
+ border=""
160
+ row-key="columnId"
161
+ stripe=""
162
+ style="margin-bottom: 0px;"
163
+ >
164
+ <el-table-column type="index" width="35" fixed="left"></el-table-column>
165
+ <el-table-column :label="i18nt('服务')" width="150">
166
+ <template slot-scope="{row}">
167
+ <el-select v-model="row.serveType" @change="changeServeType(row)">
168
+ <el-option :value="1" label="正式"></el-option>
169
+ <el-option :value="2" label="UAT"></el-option>
170
+ <el-option :value="3" label="测试"></el-option>
171
+ <el-option :value="4" label="自定义"></el-option>
172
+ </el-select>
173
+ </template>
174
+ </el-table-column>
175
+ <el-table-column :label="i18nt('自定义服务')" width="150">
176
+ <template slot-scope="{row}">
177
+ <el-input v-model="row.serveName" clearable :disabled="row.serveType!==4"></el-input>
178
+ </template>
179
+ </el-table-column>
180
+ <el-table-column :label="i18nt('组织编码')" width="250">
181
+ <template slot-scope="{row,$index}">
182
+ <el-input v-model="row.companyCodes" clearable></el-input>
183
+ </template>
184
+ </el-table-column>
185
+ <el-table-column :label="i18nt('流程模板编码')" width="150">
186
+ <template slot-scope="{row}">
187
+ <el-input v-model="row.modelKey" clearable></el-input>
188
+ </template>
189
+ </el-table-column>
190
+ <el-table-column :label="i18nt('节点步骤')" width="250">
191
+ <template slot-scope="{row}">
192
+ <el-input v-model="row.taskSteps" clearable></el-input>
193
+ </template>
194
+ </el-table-column>
195
+ <el-table-column :label="i18nt('设置')" width="150">
196
+ <template slot-scope="{row}">
197
+ <el-select v-model="row.type" clearable>
198
+ <el-option :value="1" label="可编辑"></el-option>
199
+ <el-option :value="2" label="仅显示"></el-option>
200
+ <el-option :value="3" label="隐藏"></el-option>
201
+ </el-select>
202
+ </template>
203
+ </el-table-column>
204
+ <!-- <el-table-column :label="i18nt('流程模板')" width="250" prop="label">
205
+ <template slot-scope="scope">
206
+ <el-select v-model="scope.row.modelId" @change="changeModelId">
207
+ <el-option v-for="(wfDefItem,index) in wfDefItems" :key="index" :value="wfDefItem.modelId"
208
+ :label="wfDefItem.modelName"></el-option>
209
+ </el-select>
210
+
211
+ </template>
212
+ </el-table-column>
213
+ <el-table-column :label="i18nt('流程节点')" width="550" prop="prop">
214
+ <template slot-scope="scope">
215
+ <el-checkbox-group v-model="scope.row.nodeIds" v-if="!!wfNodeMap[scope.row.modelId]">
216
+ <el-checkbox v-for="(node,index) in wfNodeMap[scope.row.modelId]" :key="index"
217
+ :label="node.nodeId">{{ node.nodeName }}
218
+ </el-checkbox>
219
+ </el-checkbox-group>
220
+ </template>
221
+ </el-table-column>-->
222
+ <el-table-column :label="i18nt('designer.setting.actionColumn')" width="100" align="center">
223
+ <template #header>
224
+ <span>{{ i18nt('designer.setting.actionColumn') }}</span>
225
+ <el-button :title="i18nt('designer.setting.addTableColumn')" size="mini" type="" circle=""
226
+ icon="el-icon-plus" @click="addItem"></el-button>
227
+ </template>
228
+ <template slot-scope="scope">
229
+ <el-button
230
+ :title="i18nt('designer.setting.deleteTableColumn')"
231
+ size="mini"
232
+ type=""
233
+ circle=""
234
+ icon="el-icon-minus"
235
+ @click="tableData.splice(scope.$index,1)"
236
+ ></el-button>
237
+ </template>
238
+ </el-table-column>
239
+
240
+ </el-table>
241
+ </div>
242
+ <div class="dialog-footer" slot="footer">
243
+ <el-button @click="dialogVisible = false" class="button-sty" icon="el-icon-close">
244
+ {{ i18nt('designer.hint.cancel') }}
245
+ </el-button>
246
+ <el-button type="primary" @click="colSubmit" class="button-sty" icon="el-icon-check">
247
+ {{ i18nt('designer.hint.confirm') }}
248
+ </el-button>
249
+ </div>
250
+ </el-dialog>
136
251
  </div>
137
252
  </template>
138
253
 
@@ -154,6 +269,9 @@ export default {
154
269
  formScriptEnabledTypes: ['select', 'checkbox', 'radio', 'census'],
155
270
  showDialog: false,
156
271
  tableData: [],
272
+
273
+ dialogVisible: false,
274
+ wfConfigData: [],
157
275
  }
158
276
  },
159
277
  methods: {
@@ -167,7 +285,30 @@ export default {
167
285
  confirmDialog() {
168
286
  this.optionModel.tagFillConfig = this.$baseLodash.cloneDeep(this.tableData);
169
287
  this.showDialog = false;
170
- }
288
+ },
289
+
290
+ openDialog() {
291
+ let reportTemplate = this.getReportTemplate();
292
+ let objTypeCode = reportTemplate.objTypeCode;
293
+ let wfConfigData = this.optionModel.wfConfigData || [];
294
+ this.dialogVisible = true;
295
+ this.tableData = this.$baseLodash.cloneDeep(wfConfigData)
296
+ },
297
+ addItem() {
298
+ let newItem = {
299
+ type: null,
300
+ serveType: null,
301
+ serveName: null,
302
+ modelKey: null,
303
+ taskSteps: null,
304
+ companyCodes: null
305
+ }
306
+ this.tableData.push(newItem);
307
+ },
308
+ colSubmit() {
309
+ this.dialogVisible = !1;
310
+ this.optionModel.wfConfigData = this.tableData;
311
+ },
171
312
  }
172
313
  }
173
314
  </script>
@@ -3,11 +3,20 @@
3
3
  <el-form-item label-width="0">
4
4
  <el-divider class="custom-divider-margin-top">显示设置</el-divider>
5
5
  </el-form-item>
6
+ <el-form-item :label="i18nt('显示超链接')">
7
+ <el-switch v-model="optionModel.showLinkTextEnabled" @change="changeShowLinkTextEnabled"></el-switch>
8
+ </el-form-item>
9
+ <el-form-item :label="i18nt('超链接配置')">
10
+ <a href="javascript:void(0);" class="a-link link-oneLind" @click="openLinkConfig">
11
+ <span></span>
12
+ <i class="el-icon-edit"></i>
13
+ </a>
14
+ </el-form-item>
6
15
  <el-form-item :label="i18nt('仅显示明文文本')">
7
- <el-switch v-model="optionModel.showTextEnabled" @change="optionModel.showEncryptTextEnabled=false"></el-switch>
16
+ <el-switch v-model="optionModel.showTextEnabled" @change="optionModel.showEncryptTextEnabled=false;optionModel.showLinkTextEnabled=false;"></el-switch>
8
17
  </el-form-item>
9
18
  <el-form-item :label="i18nt('仅显示密文文本')">
10
- <el-switch v-model="optionModel.showEncryptTextEnabled" @change="optionModel.showTextEnabled=false"></el-switch>
19
+ <el-switch v-model="optionModel.showEncryptTextEnabled" @change="optionModel.showTextEnabled=false;optionModel.showLinkTextEnabled=false;"></el-switch>
11
20
  </el-form-item>
12
21
  <el-form-item :label="i18nt('启用特定用户显示规则设置')">
13
22
  <el-switch v-model="optionModel.userTextRuleEnabled"></el-switch>
@@ -111,6 +120,7 @@
111
120
  <el-option :value="1" label="明文文本显示"></el-option>
112
121
  <el-option :value="2" label="密文文本显示"></el-option>
113
122
  <el-option :value="0" label="组件显示"></el-option>
123
+ <el-option :value="3" label="超链接显示"></el-option>
114
124
  </el-select>
115
125
  </template>
116
126
  </el-table-column>
@@ -157,6 +167,7 @@ export default {
157
167
  selectedWidget: Object,
158
168
  optionModel: Object,
159
169
  },
170
+ inject: ["openWidgetPropertyDialog"],
160
171
  data() {
161
172
  return {
162
173
  dialogVisible: false,
@@ -203,6 +214,44 @@ export default {
203
214
  this.dialogVisible = !1;
204
215
  this.optionModel.userTextRuleConfig = this.tableData;
205
216
  },
217
+ changeShowLinkTextEnabled(val){
218
+ this.optionModel.widgetTextLinkConfig = null;''
219
+ this.optionModel.showEncryptTextEnabled=false;
220
+ this.optionModel.showTextEnabled=false;
221
+ if(val){
222
+ this.initLinkWidget();
223
+ }
224
+ },
225
+ initLinkWidget(){
226
+ let widget = null
227
+ let keyName = this.optionModel.keyName;
228
+ let label = this.optionModel.label;
229
+ if(!this.optionModel.widgetTextLinkConfig){
230
+ widget = this.designer.copyNewFieldWidget(this.designer.getFieldWidgetByType("a-link2"));
231
+ this.$set(this.optionModel,'widgetTextLinkConfig',widget)
232
+ widget.options.underline = true;
233
+ }else{
234
+ widget = this.optionModel.widgetTextLinkConfig
235
+ }
236
+ // widget.options.label = label;
237
+ // widget.options.keyName = keyName;
238
+ // widget.options.labelHidden = true
239
+ // widget.options.isFormLabel = true
240
+ return widget;
241
+ },
242
+ openLinkConfig(){
243
+ let widget = this.initLinkWidget();
244
+ this.openWidgetPropertyDialog({
245
+ // row: row,
246
+ columnSelectedWidget: widget,
247
+ // index: index,
248
+ // columnEditFields: columnEditFields,
249
+ callback: (columnOption) => {
250
+ widget.options = columnOption
251
+ // this.confirmFormatConfigDialog(columnOption, row);
252
+ },
253
+ });
254
+ }
206
255
  }
207
256
  }
208
257
  </script>
@@ -1,11 +1,11 @@
1
1
  <template>
2
2
  <div>
3
- <el-form-item :label="i18nt('有流程可编辑')">
3
+ <!-- <el-form-item :label="i18nt('有流程可编辑')">
4
4
  <el-switch v-model="optionModel.enabledByWf" @change="changeEnabledByWf"></el-switch>
5
5
  </el-form-item>
6
6
  <el-form-item :label="i18nt('有流程隐藏')">
7
7
  <el-switch v-model="optionModel.hiddenByWf" @change="changeHiddenByWf"></el-switch>
8
- </el-form-item>
8
+ </el-form-item>-->
9
9
  <el-form-item :label="i18nt('特定流程节点设置')">
10
10
  <el-switch v-model="optionModel.wfEdit" @change="changeWfEdit"></el-switch>
11
11
  </el-form-item>
@@ -24,16 +24,6 @@
24
24
  <i class="el-icon-edit"></i>
25
25
  </a>
26
26
  </el-form-item>
27
-
28
- <!-- <el-form-item :label="i18nt('特定流程节点显隐')">
29
- <el-switch v-model="optionModel.wfEdit" @change="changeWfEdit"></el-switch>
30
- </el-form-item>
31
- <el-form-item :label="i18nt('流程节点信息')">
32
- <a href="javascript:void(0);" class="a-link link-oneLind" @click="openDialog">
33
- <span>{{ optionModel.wfConfigData && optionModel.wfConfigData.length ? "已维护" : "" }}</span>
34
- <i class="el-icon-edit"></i>
35
- </a>
36
- </el-form-item>-->
37
27
  <el-dialog
38
28
  v-if="dialogVisible"
39
29
  custom-class="dialog-style list-dialog"
@@ -101,24 +91,6 @@
101
91
  </el-select>
102
92
  </template>
103
93
  </el-table-column>
104
- <!-- <el-table-column :label="i18nt('流程模板')" width="250" prop="label">
105
- <template slot-scope="scope">
106
- <el-select v-model="scope.row.modelId" @change="changeModelId">
107
- <el-option v-for="(wfDefItem,index) in wfDefItems" :key="index" :value="wfDefItem.modelId"
108
- :label="wfDefItem.modelName"></el-option>
109
- </el-select>
110
-
111
- </template>
112
- </el-table-column>
113
- <el-table-column :label="i18nt('流程节点')" width="550" prop="prop">
114
- <template slot-scope="scope">
115
- <el-checkbox-group v-model="scope.row.nodeIds" v-if="!!wfNodeMap[scope.row.modelId]">
116
- <el-checkbox v-for="(node,index) in wfNodeMap[scope.row.modelId]" :key="index"
117
- :label="node.nodeId">{{ node.nodeName }}
118
- </el-checkbox>
119
- </el-checkbox-group>
120
- </template>
121
- </el-table-column>-->
122
94
  <el-table-column :label="i18nt('designer.setting.actionColumn')" width="100" align="center">
123
95
  <template #header>
124
96
  <span>{{ i18nt('designer.setting.actionColumn') }}</span>
@@ -0,0 +1,220 @@
1
+ <template>
2
+ <div>
3
+ <el-form-item label-width="0">
4
+ <el-divider class="custom-divider-margin-top">显隐规则</el-divider>
5
+ </el-form-item>
6
+ <el-form-item :label="i18nt('启用显隐规则')">
7
+ <el-switch v-model="optionModel.widgetShowRuleEnabled"></el-switch>
8
+ </el-form-item>
9
+ <el-form-item :label="i18nt('显隐规则设置')">
10
+ <a href="javascript:void(0);" class="a-link link-oneLind" @click="openDialog">
11
+ <span>{{ optionModel.widgetShowRuleConfig && optionModel.widgetShowRuleConfig.length ? "已维护" : "" }}</span>
12
+ <i class="el-icon-edit"></i>
13
+ </a>
14
+ </el-form-item>
15
+ <el-form-item label-width="0">
16
+ <el-divider class="custom-divider-margin-top"></el-divider>
17
+ </el-form-item>
18
+ <el-dialog
19
+ v-if="dialogVisible"
20
+ custom-class="dialog-style list-dialog"
21
+ :title="i18nt('显隐规则设置')"
22
+ :visible.sync="dialogVisible"
23
+ :show-close="!0"
24
+ :append-to-body="true"
25
+ :modal="false"
26
+ :close-on-click-modal="!1"
27
+ :close-on-press-escape="!1"
28
+ :destroy-on-close="!0"
29
+ width="1220px"
30
+ top="5vh"
31
+ v-dialog-drag
32
+ :fullscreen="true"
33
+ >
34
+ <div class="cont" style="padding-bottom: 8px;">
35
+ <el-table
36
+ ref="singleTable"
37
+ width="100%"
38
+ :data="tableData"
39
+ height="100%"
40
+ border=""
41
+ stripe=""
42
+ style="margin-bottom: 0px;"
43
+ >
44
+ <el-table-column type="index" width="35" fixed="left"></el-table-column>
45
+ <el-table-column :label="i18nt('服务类型')" width="150">
46
+ <template slot-scope="{row}">
47
+ <el-select v-model="row.serveType" @change="changeServeType(row)">
48
+ <el-option :value="1" label="正式"></el-option>
49
+ <el-option :value="2" label="UAT"></el-option>
50
+ <el-option :value="3" label="测试"></el-option>
51
+ <el-option :value="4" label="自定义"></el-option>
52
+ <el-option :value="5" label="默认"></el-option>
53
+ </el-select>
54
+ </template>
55
+ </el-table-column>
56
+ <el-table-column :label="i18nt('服务名称')" width="150">
57
+ <template slot-scope="{row}">
58
+ <el-input v-model="row.serveName" clearable :disabled="row.serveType!==4"></el-input>
59
+ </template>
60
+ </el-table-column>
61
+ <el-table-column :label="i18nt('组织编码')" width="250">
62
+ <template slot-scope="{row,$index}">
63
+ <el-input v-model="row.companyCodes" clearable :disabled="row.serveType==5"></el-input>
64
+ </template>
65
+ </el-table-column>
66
+ <el-table-column :label="i18nt('角色编码')" width="250">
67
+ <template slot-scope="{row}">
68
+ <el-input v-model="row.roleCodes" clearable></el-input>
69
+ </template>
70
+ </el-table-column>
71
+ <el-table-column :label="i18nt('设置')" width="150">
72
+ <template slot-scope="{row}">
73
+ <el-select v-model="row.type">
74
+ <el-option :value="1" label="显示"></el-option>
75
+ <el-option :value="2" label="隐藏"></el-option>
76
+ </el-select>
77
+ </template>
78
+ </el-table-column>
79
+ <el-table-column :label="i18nt('designer.setting.actionColumn')" width="100" align="center">
80
+ <template #header>
81
+ <span>{{ i18nt('designer.setting.actionColumn') }}</span>
82
+ <el-button :title="i18nt('designer.setting.addTableColumn')" size="mini" type="" circle=""
83
+ icon="el-icon-plus" @click="addItem"></el-button>
84
+ </template>
85
+ <template slot-scope="scope">
86
+ <el-button
87
+ :title="i18nt('designer.setting.deleteTableColumn')"
88
+ size="mini"
89
+ type=""
90
+ circle=""
91
+ icon="el-icon-minus"
92
+ @click="tableData.splice(scope.$index,1)"
93
+ ></el-button>
94
+ </template>
95
+ </el-table-column>
96
+
97
+ </el-table>
98
+ </div>
99
+ <div class="dialog-footer" slot="footer">
100
+ <el-button @click="dialogVisible = false" class="button-sty" icon="el-icon-close">
101
+ {{ i18nt('designer.hint.cancel') }}
102
+ </el-button>
103
+ <el-button type="primary" @click="colSubmit" class="button-sty" icon="el-icon-check">
104
+ {{ i18nt('designer.hint.confirm') }}
105
+ </el-button>
106
+ </div>
107
+ </el-dialog>
108
+ </div>
109
+ </template>
110
+ <script>
111
+ import i18n from "@base/components/xform/utils/i18n";
112
+
113
+ export default {
114
+ name: "widgetShowRuleFlag-editor",
115
+ mixins: [i18n],
116
+ props: {
117
+ designer: Object,
118
+ selectedWidget: Object,
119
+ optionModel: Object,
120
+ },
121
+ data() {
122
+ return {
123
+ dialogVisible: false,
124
+ tableData: [],
125
+ }
126
+ },
127
+ methods: {
128
+ openDialog() {
129
+ let tableData = this.optionModel.widgetShowRuleConfig || [];
130
+ this.dialogVisible = true;
131
+ this.tableData = this.$baseLodash.cloneDeep(tableData)
132
+ },
133
+ addItem() {
134
+ let newItem = {
135
+ type: 1,
136
+ serveType: 3,
137
+ serveName: "dev",
138
+ roleCodes: null,
139
+ companyCodes: null
140
+ }
141
+ this.tableData.push(newItem);
142
+ },
143
+ colSubmit() {
144
+
145
+ /*if(this.tableData.some(item=>!item.roleCodes)){
146
+ this.$message({
147
+ type:"error",
148
+ content:"角色编码不能为空"
149
+ })
150
+ return
151
+ }*/
152
+
153
+ let searveNameList = ["prod", "uat", "dev"];
154
+ let tableData = this.tableData;
155
+ let map = {}
156
+ for (let i = 0; i < tableData.length; i++) {
157
+ let item = tableData[i];
158
+ if (!item.roleCodes) {
159
+ this.$message({
160
+ type: "error",
161
+ message: "角色编码不能为空"
162
+ })
163
+ return
164
+ }
165
+ if (item.serveType === 4) {
166
+ if (!item.serveName) {
167
+ this.$message({
168
+ type: "error",
169
+ message: "自定义服务的服务名称不能为空"
170
+ })
171
+ return
172
+ } else if(searveNameList.includes(item.serveName)){
173
+ this.$message({
174
+ type: "error",
175
+ message: "自定义服务的服务名称不能为`prod,uat,dev`"
176
+ })
177
+ return
178
+ }
179
+ }
180
+ let serveName = item.serveName || "";
181
+ if (item.serveType === 5) serveName = "_all";
182
+ let companyCodes = item.companyCodes || "";
183
+ let key = serveName + "_" + companyCodes;
184
+ if (!map[key]) {
185
+ map[key] = true;
186
+ } else {
187
+ this.$message({
188
+ type: "error",
189
+ message: "[服务+组织]不能重复"
190
+ })
191
+ return
192
+ }
193
+ }
194
+
195
+ this.dialogVisible = !1;
196
+ this.optionModel.widgetShowRuleConfig = this.tableData;
197
+ },
198
+ changeServeType(row) {
199
+ // modelKey
200
+ let map = {
201
+ 1: "prod",
202
+ 2: "uat",
203
+ 3: "dev"
204
+ }
205
+ let serveName = null;
206
+ let serveType = row.serveType;
207
+ if (serveType && map[serveType]) {
208
+ serveName = map[row.serveType];
209
+ }
210
+ if (serveType === 5) {
211
+ row.companyCodes = null
212
+ }
213
+ row.serveName = serveName;
214
+ },
215
+ }
216
+ }
217
+ </script>
218
+ <style scoped>
219
+
220
+ </style>
@@ -12,6 +12,7 @@ const COMMON_PROPERTIES = {
12
12
  'formField': 'formField-editor',
13
13
  // 'labelAlign': 'labelAlign-editor',
14
14
  'type': 'type-editor',
15
+ 'buttonTypeFlag': 'button-type-editor',
15
16
  'defaultValue': 'defaultValue-editor',
16
17
  'placeholder': 'placeholder-editor',
17
18
  'startPlaceholder': 'startPlaceholder-editor',
@@ -108,6 +109,10 @@ const COMMON_PROPERTIES = {
108
109
  'formScriptEnabled': 'formScriptEnabled-editor',
109
110
  'textFlag': 'textFlag-editor',
110
111
  'showRuleFlag': 'showRuleFlag-editor',
112
+ 'widgetShowRuleFlag': 'widgetShowRuleFlag-editor',
113
+
114
+ 'dropdownMenuFlag': 'dropdown-menu-editor',
115
+ 'dropdownItemFlag': 'dropdown-item-editor',
111
116
 
112
117
  //弹框
113
118
  title: "title-editor",