cloud-web-corejs 1.0.67 → 1.0.68

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 (32) hide show
  1. package/package.json +1 -1
  2. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +3 -2
  3. package/src/components/xform/form-designer/form-widget/field-widget/date-range-widget.vue +1 -0
  4. package/src/components/xform/form-designer/form-widget/field-widget/echart-bar-widget.vue +1 -1
  5. package/src/components/xform/form-designer/form-widget/field-widget/echart-category-widget.vue +1 -1
  6. package/src/components/xform/form-designer/form-widget/field-widget/echart-pie-widget.vue +1 -1
  7. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +1 -1
  8. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-bar-mixin.js +12 -1
  9. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-category-mixin.js +6 -0
  10. package/src/components/xform/form-designer/form-widget/field-widget/mixins/echart-pie-mixin.js +6 -0
  11. package/src/components/xform/form-designer/form-widget/field-widget/table-export-button-widget.vue +5 -1
  12. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload-widget.vue +77 -0
  13. package/src/components/xform/form-designer/indexMixin.js +1 -1
  14. package/src/components/xform/form-designer/setting-panel/form-setting.vue +40 -3
  15. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onAfterConfirmFile-editor.vue +30 -0
  16. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onClick-editor.vue +2 -2
  17. package/src/components/xform/form-designer/setting-panel/property-editor/field-date-range/date-range-defaultTime-editor.vue +27 -0
  18. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-bar-editor.vue +160 -69
  19. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-category-editor.vue +184 -82
  20. package/src/components/xform/form-designer/setting-panel/property-editor/field-echart/echart-pie-editor.vue +84 -39
  21. package/src/components/xform/form-designer/setting-panel/property-editor/placeholder-editor.vue +1 -1
  22. package/src/components/xform/form-designer/setting-panel/property-editor/showRuleFlag-editor.vue +223 -0
  23. package/src/components/xform/form-designer/setting-panel/property-editor/textFlag-editor.vue +62 -0
  24. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +4 -0
  25. package/src/components/xform/form-designer/setting-panel/wfObjConfigDialog.vue +189 -0
  26. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +286 -33
  27. package/src/store/modules/permission.js +1 -1
  28. package/src/views/bd/setting/form_template/batchWfObjConfigDialog.vue +105 -0
  29. package/src/views/bd/setting/form_template/mixins/batchWfObjConfigDialog.js +4 -0
  30. package/src/views/bd/setting/form_template/mixins/wf_list.js +12 -0
  31. package/src/views/bd/setting/form_template/wfObjConfigDialog.vue +254 -0
  32. package/src/views/bd/setting/form_template/wf_list.vue +127 -0
@@ -0,0 +1,223 @@
1
+ <template>
2
+ <div v-show="false">
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.showRuleEnabled"></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.showRules && optionModel.showRules.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="false"
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
+ >
33
+ <div class="cont">
34
+ <el-table
35
+ ref="singleTable"
36
+ width="100%"
37
+ :data="tableData"
38
+ height="500"
39
+ border=""
40
+ row-key="columnId"
41
+ stripe=""
42
+ >
43
+ <el-table-column type="index" width="35" fixed="left"></el-table-column>
44
+ <el-table-column :label="i18nt('匹配规则')" width="250" prop="label">
45
+ <template slot-scope="scope">
46
+ <el-select v-model="scope.row.ruleType" @change="changeRuleType(scope.row)">
47
+ <el-option :value="1" label="用户"></el-option>
48
+ <el-option :value="2" label="机构"></el-option>
49
+ <el-option :value="3" label="角色"></el-option>
50
+ </el-select>
51
+ </template>
52
+ </el-table-column>
53
+ <el-table-column :label="i18nt('值')" width="300" prop="prop">
54
+ <template slot-scope="scope">
55
+ <el-input
56
+ class="search-input"
57
+ :value="getRowValueName(scope.row)"
58
+ clearable
59
+ @clear="
60
+ scope.row.value = [];
61
+ "
62
+ v-el-readonly
63
+ >
64
+ <i slot="suffix" class="el-input__icon el-icon-search"
65
+ @click="openRowValueDialog(scope.row, scope.$index )"></i>
66
+ </el-input>
67
+
68
+ </template>
69
+ </el-table-column>
70
+ <el-table-column :label="i18nt('是否可见')" width="150" prop="prop">
71
+ <template slot-scope="scope">
72
+ <el-switch v-model="scope.row.show"></el-switch>
73
+ </template>
74
+ </el-table-column>
75
+ <el-table-column :label="i18nt('designer.setting.actionColumn')" width="100" align="center">
76
+ <template #header>
77
+ <span>{{ i18nt('designer.setting.actionColumn') }}</span>
78
+ <el-button :title="i18nt('designer.setting.addTableColumn')" size="mini" type="" circle=""
79
+ icon="el-icon-plus" @click="addItem"></el-button>
80
+ </template>
81
+ <template slot-scope="scope">
82
+ <el-button
83
+ :title="i18nt('designer.setting.deleteTableColumn')"
84
+ size="mini"
85
+ type=""
86
+ circle=""
87
+ icon="el-icon-minus"
88
+ @click="tableData.splice(scope.$index,1)"
89
+ ></el-button>
90
+ </template>
91
+ </el-table-column>
92
+
93
+ </el-table>
94
+ </div>
95
+ <div class="dialog-footer" slot="footer">
96
+ <el-button @click="dialogVisible = false" class="button-sty" icon="el-icon-close">
97
+ {{ i18nt('designer.hint.cancel') }}
98
+ </el-button>
99
+ <el-button type="primary" @click="colSubmit" class="button-sty" icon="el-icon-check">
100
+ {{ i18nt('designer.hint.confirm') }}
101
+ </el-button>
102
+ </div>
103
+ </el-dialog>
104
+ <userDialog v-if="showUserDialog" :visiable.sync="showUserDialog" @confirm="confirmUserDialog"
105
+ multi="true" :rows="operateRows"/>
106
+ <saleOrgDialog v-if="showSaleOrgDialog" :visiable.sync="showSaleOrgDialog" @confirm="confirmSaleOrgDialog"
107
+ multi="true" :rows="operateRows"/>
108
+ <roleDialog v-if="showRoleDialog" :visiable.sync="showRoleDialog" @confirm="confirmRoleDialog"
109
+ multi="true" :rows="operateRows"/>
110
+ </div>
111
+ </template>
112
+
113
+ <script>
114
+ import i18n from "../../../../../components/xform/utils/i18n"
115
+ import userDialog from "@base/views/user/user/dialog.vue";
116
+ import saleOrgDialog from "@base/views/user/sale_org/dialog.vue";
117
+ import roleDialog from "@base/views/user/role/dialog.vue";
118
+
119
+
120
+ export default {
121
+ name: "showRuleFlag-editor",
122
+ components: {
123
+ userDialog,
124
+ saleOrgDialog,
125
+ roleDialog
126
+ },
127
+ mixins: [i18n],
128
+ props: {
129
+ designer: Object,
130
+ selectedWidget: Object,
131
+ optionModel: Object,
132
+ },
133
+ inject: ["getReportTemplate"],
134
+ data() {
135
+ return {
136
+ dialogVisible: false,
137
+ tableData: [],
138
+ wfDefItems: [],
139
+ wfNodeMap: {},
140
+ showUserDialog: false,
141
+ showSaleOrgDialog: false,
142
+ showRoleDialog: false,
143
+ operateRows: [],
144
+ operateIndex: 0
145
+ }
146
+ },
147
+ computed: {
148
+ current_prefix() {
149
+ let reportTemplate = this.getReportTemplate();
150
+ return "/" + reportTemplate.serviceName;
151
+ }
152
+ },
153
+ methods: {
154
+ openDialog() {
155
+ let reportTemplate = this.getReportTemplate();
156
+ let showRules = this.optionModel.showRules || [];
157
+ this.dialogVisible = true;
158
+ this.tableData = this.$baseLodash.cloneDeep(showRules)
159
+ },
160
+
161
+ addItem() {
162
+ this.tableData.push({
163
+ ruleType: 1,
164
+ value: [],
165
+ show: true
166
+ });
167
+ },
168
+ colSubmit() {
169
+ this.dialogVisible = !1;
170
+ this.optionModel.showRules = this.tableData;
171
+ },
172
+ changeRuleType(row) {
173
+ row.value = [];
174
+ },
175
+ getRowValueName(row) {
176
+ let ruleType = row.ruleType;
177
+ let nameField = null;
178
+ if (ruleType == 1) {
179
+ nameField = 'nickName';
180
+ } else if (ruleType == 2) {
181
+ nameField = 'name';
182
+ } else if (ruleType == 3) {
183
+ nameField = 'name';
184
+ }
185
+ let rows = row.value || []
186
+ return rows.map(item => {
187
+ return item[nameField];
188
+ }).join(',');
189
+ },
190
+ openRowValueDialog(row, rowIndex) {
191
+ let ruleType = row.ruleType;
192
+ this.operateIndex = rowIndex;
193
+ this.operateRows = this.$baseLodash.cloneDeep(row.value || []);
194
+ if (ruleType == 1) {
195
+ this.showUserDialog = true;
196
+ } else if (ruleType == 2) {
197
+ this.showSaleOrgDialog = true;
198
+ } else if (ruleType == 3) {
199
+ this.showRoleDialog = true;
200
+ }
201
+ },
202
+ confirmUserDialog(rows) {
203
+ let item = this.tableData[this.operateIndex]
204
+ item.value.length = 0;
205
+ item.value.push(...rows)
206
+ },
207
+ confirmSaleOrgDialog(rows) {
208
+ let item = this.tableData[this.operateIndex]
209
+ item.value.length = 0;
210
+ item.value.push(...rows)
211
+ },
212
+ confirmRoleDialog(rows) {
213
+ let item = this.tableData[this.operateIndex]
214
+ item.value.length = 0;
215
+ item.value.push(...rows)
216
+ },
217
+ }
218
+ }
219
+ </script>
220
+
221
+ <style scoped>
222
+
223
+ </style>
@@ -0,0 +1,62 @@
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.textRule1" @change="changeTextRule1"></el-switch>
8
+ </el-form-item>
9
+ <el-form-item :label="i18nt('前面明文,其他为*')">
10
+ <el-switch v-model="optionModel.textRule2" @change="changeTextRule2"></el-switch>
11
+ </el-form-item>
12
+ <el-form-item :label="i18nt('前面明文位数')">
13
+ <base-input-number v-model="optionModel.textRule2Number" :scale="0"></base-input-number>
14
+ </el-form-item>
15
+ <el-form-item :label="i18nt('后面明文,其他为*')">
16
+ <el-switch v-model="optionModel.textRule3" @change="changeTextRule3"></el-switch>
17
+ </el-form-item>
18
+ <el-form-item :label="i18nt('后面明文位数')">
19
+ <base-input-number v-model="optionModel.textRule3Number" :scale="0"></base-input-number>
20
+ </el-form-item>
21
+ <el-form-item label-width="0">
22
+ <el-divider class="custom-divider-margin-top"></el-divider>
23
+ </el-form-item>
24
+ </div>
25
+ </template>
26
+
27
+ <script>
28
+ import i18n from "../../../../../components/xform/utils/i18n"
29
+
30
+ export default {
31
+ name: "textFlag-editor",
32
+ mixins: [i18n],
33
+ props: {
34
+ designer: Object,
35
+ selectedWidget: Object,
36
+ optionModel: Object,
37
+ },
38
+ data() {
39
+ return {
40
+
41
+ }
42
+ },
43
+ methods: {
44
+ changeTextRule1(val) {
45
+ this.optionModel.textRule2 = false;
46
+ this.optionModel.textRule3 = false;
47
+ this.optionModel.textRule2Number = null;
48
+ this.optionModel.textRule3Number = null;
49
+ },
50
+ changeTextRule2(val) {
51
+ this.optionModel.textRule1 = false;
52
+ },
53
+ changeTextRule3(val) {
54
+ this.optionModel.textRule1 = false;
55
+ }
56
+ }
57
+ }
58
+ </script>
59
+
60
+ <style scoped>
61
+
62
+ </style>
@@ -42,6 +42,7 @@ const COMMON_PROPERTIES = {
42
42
  'htmlContent': 'htmlContent-editor',
43
43
  'format': 'format-editor',
44
44
  'valueFormat': 'valueFormat-editor',
45
+ 'defaultTime': 'defaultTime-editor',
45
46
  'filterable': 'filterable-editor',
46
47
  'allowCreate': 'allowCreate-editor',
47
48
  'remote': 'remote-editor',
@@ -105,6 +106,8 @@ const COMMON_PROPERTIES = {
105
106
  'h5Card': 'h5-card-editor',
106
107
  'listH5': 'list-h5-editor',
107
108
  'formScriptEnabled': 'formScriptEnabled-editor',
109
+ 'textFlag': 'textFlag-editor',
110
+ 'showRuleFlag': 'showRuleFlag-editor',
108
111
 
109
112
  //弹框
110
113
  title: "title-editor",
@@ -210,6 +213,7 @@ const EVENT_PROPERTIES = {
210
213
  'onAppendButtonClick': 'onAppendButtonClick-editor',
211
214
  'onSearchConfirm': 'onSearchConfirm-editor',
212
215
  'onSearchClear': 'onSearchClear-editor',
216
+ 'onAfterConfirmFile': 'onAfterConfirmFile-editor',
213
217
 
214
218
  //容器
215
219
  'onSubFormRowAdd': 'onSubFormRowAdd-editor',
@@ -0,0 +1,189 @@
1
+ <template>
2
+ <el-dialog
3
+ custom-class="dialog-style list-dialog"
4
+ title="流程单据定义"
5
+ :visible.sync="dialogVisible"
6
+ :show-close="!0"
7
+ :append-to-body="false"
8
+ :modal="false"
9
+ :close-on-click-modal="!1"
10
+ :close-on-press-escape="!1"
11
+ :destroy-on-close="!0"
12
+ width="1220px"
13
+ top="5vh"
14
+ v-dialog-drag
15
+ @close="closeDialog"
16
+ >
17
+ <div class="cont">
18
+ <el-form ref="editForm" :model="formData">
19
+ <el-table
20
+ ref="singleTable"
21
+ width="100%"
22
+ :data="formData.wfObjConfigDTOs"
23
+ height="500"
24
+ border=""
25
+ row-key="columnId"
26
+ stripe=""
27
+ >
28
+ <el-table-column type="index" width="35" fixed="left"></el-table-column>
29
+ <el-table-column :label="i18nt('表单类型名称')" width="150" prop="objTypeName">
30
+ <template slot-scope="scope">
31
+ <el-form-item :prop="'wfObjConfigDTOs.'+scope.$index+'.objTypeName'"
32
+ :rules="[{ required: true, trigger: 'blur' }]">
33
+ <el-input v-model="scope.row.objTypeName"></el-input>
34
+ </el-form-item>
35
+ </template>
36
+ </el-table-column>
37
+ <el-table-column :label="i18nt('组织名称')" width="150" prop="companyCode">
38
+ <template slot-scope="scope">
39
+ {{ scope.row.companyName }}
40
+ </template>
41
+ </el-table-column>
42
+ <el-table-column :label="i18nt('表单类型编码')" width="200" prop="objTypeCode"></el-table-column>
43
+ <el-table-column :label="i18nt('服务名')" width="150" prop="serviceId"></el-table-column>
44
+ <el-table-column :label="i18nt('designer.setting.actionColumn')" width="100" align="center">
45
+ <template #header>
46
+ <span>{{ i18nt('designer.setting.actionColumn') }}</span>
47
+ <el-button :title="i18nt('designer.setting.addTableColumn')" size="mini" type="" circle=""
48
+ icon="el-icon-plus" @click="openCompanyDialog"></el-button>
49
+ </template>
50
+ <template slot-scope="scope">
51
+ <el-button
52
+ :title="i18nt('designer.setting.deleteTableColumn')"
53
+ size="mini"
54
+ type=""
55
+ circle=""
56
+ icon="el-icon-minus"
57
+ @click="formData.wfObjConfigDTOs.splice(scope.$index,1)"
58
+ ></el-button>
59
+ </template>
60
+ </el-table-column>
61
+
62
+ </el-table>
63
+ </el-form>
64
+ </div>
65
+ <div class="dialog-footer" slot="footer">
66
+ <el-button @click="closeDialog" class="button-sty" icon="el-icon-close">
67
+ {{ i18nt('designer.hint.cancel') }}
68
+ </el-button>
69
+ <el-button type="primary" @click="saveData" class="button-sty" icon="el-icon-check">
70
+ {{ i18nt('designer.hint.confirm') }}
71
+ </el-button>
72
+ </div>
73
+ <companyInfoDialog v-if="showCompanyInfoDialog" :visiable.sync="showCompanyInfoDialog"
74
+ @confirm="confirmCompanyDialog" multi="false"/>
75
+ </el-dialog>
76
+ </template>
77
+ <script>
78
+ import i18n from '../../../../components/xform/utils/i18n';
79
+ import companyInfoDialog from "@base/views/user/company_info/dialog.vue";
80
+
81
+ export default {
82
+ components: {companyInfoDialog},
83
+ props: ['formTemplate'],
84
+ mixins: [i18n],
85
+ data() {
86
+ return {
87
+ dialogVisible: true,
88
+ formData: {
89
+ objTypeCode: null,
90
+ wfObjConfigDTOs: []
91
+ },
92
+ operateIndex: 0,
93
+ showCompanyInfoDialog: false
94
+ }
95
+ },
96
+ created() {
97
+
98
+ },
99
+ mounted() {
100
+ this.formData.objTypeCode = this.formTemplate.objTypeCode;
101
+ this.getListByObjTypeCode();
102
+ },
103
+ methods: {
104
+ getListByObjTypeCode(callback) {
105
+ let formTemplate = this.formTemplate
106
+ this.$http({
107
+ url: `/${formTemplate.serviceName}/wf_obj_config/listByObjTypeCode`,
108
+ method: `post`,
109
+ data: {
110
+ stringOne: formTemplate.objTypeCode
111
+ },
112
+ isLoading: true,
113
+ success: res => {
114
+ let rows = res.objx || [];
115
+ this.formData.wfObjConfigDTOs = rows;
116
+ callback && callback(rows)
117
+ }
118
+ });
119
+ },
120
+ saveData() {
121
+ this.$refs.editForm.$baseValidate(valid => {
122
+ if (valid) {
123
+ this.$baseConfirm(this.$t1('您确定要保存吗?')).then(() => {
124
+ var url = `/${this.formTemplate.serviceName}/wf_obj_config/saveUpdates`;
125
+ this.$http({
126
+ url: url,
127
+ method: `post`,
128
+ data: this.formData,
129
+ isLoading: true,
130
+ success: res => {
131
+ this.$message({
132
+ message: res.content,
133
+ type: 'success',
134
+ duration: 1000
135
+ });
136
+ this.getListByObjTypeCode(rows => {
137
+ this.$emit('confirm', rows)
138
+ this.closeDialog();
139
+ })
140
+ }
141
+ });
142
+ });
143
+ }
144
+ });
145
+ },
146
+ addItem() {
147
+ let formTemplate = this.formTemplate;
148
+ let row = {
149
+ objTypeCode: formTemplate.objTypeCode,
150
+ objTypeName: formTemplate.objTypeName,
151
+ serviceId: formTemplate.serviceName,
152
+ url: "form",
153
+ companyCode: null,
154
+ companyName: null
155
+ }
156
+ this.formData.wfObjConfigDTOs.push(row);
157
+ },
158
+ closeDialog() {
159
+ this.dialogVisible = false;
160
+ this.$emit("update:visiable", false);
161
+ },
162
+ openCompanyDialog() {
163
+ this.showCompanyInfoDialog = true;
164
+ },
165
+ confirmCompanyDialog(rows) {
166
+ if (rows.length) {
167
+ let row = rows[0];
168
+ let formTemplate = this.formTemplate;
169
+ if (!this.formData.wfObjConfigDTOs.find(item => item.companyCode == row.companyCode)) {
170
+ let newrow = {
171
+ objTypeCode: formTemplate.objTypeCode,
172
+ objTypeName: formTemplate.formName,
173
+ serviceId: formTemplate.serviceName,
174
+ url: "form",
175
+ companyCode: row.companyCode,
176
+ companyName: row.companyName
177
+ }
178
+ this.formData.wfObjConfigDTOs.push(newrow);
179
+ }
180
+ }
181
+ }
182
+ }
183
+ }
184
+ </script>
185
+
186
+
187
+ <style scoped>
188
+
189
+ </style>