doway-coms 1.6.72 → 1.6.74

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 (75) hide show
  1. package/.browserslistrc +2 -2
  2. package/README.md +28 -28
  3. package/dist/css/chunk-vendors.7f83d8f9.css +8 -0
  4. package/dist/css/index.86478f73.css +3 -0
  5. package/dist/favicon.ico +0 -0
  6. package/dist/js/chunk-vendors.307eaa8f.js +347 -0
  7. package/dist/js/index.48e7f7ac.js +2 -0
  8. package/package.json +53 -52
  9. package/packages/BaseButton/index.js +7 -7
  10. package/packages/BaseButton/src/index.vue +241 -241
  11. package/packages/BaseCheckbox/index.js +7 -7
  12. package/packages/BaseCheckbox/src/index.vue +134 -134
  13. package/packages/BaseDate/index.js +7 -7
  14. package/packages/BaseDate/src/index.vue +197 -197
  15. package/packages/BaseDateWeek/index.js +7 -7
  16. package/packages/BaseDateWeek/src/index.vue +163 -163
  17. package/packages/BaseDatetime/index.js +7 -7
  18. package/packages/BaseDatetime/src/index.vue +196 -196
  19. package/packages/BaseForm/index.js +7 -7
  20. package/packages/BaseForm/src/index.vue +688 -688
  21. package/packages/BaseGantt/index.js +9 -9
  22. package/packages/BaseGantt/src/index.vue +608 -608
  23. package/packages/BaseGrid/index.js +9 -9
  24. package/packages/BaseGrid/src/SeqSetting.vue +273 -0
  25. package/packages/BaseGrid/src/index.vue +3117 -2740
  26. package/packages/BaseGridAdjust/index.js +9 -9
  27. package/packages/BaseGridAdjust/src/index.vue +482 -482
  28. package/packages/BaseInput/index.js +7 -7
  29. package/packages/BaseInput/src/index.vue +164 -164
  30. package/packages/BaseIntervalInput/index.js +7 -7
  31. package/packages/BaseIntervalInput/src/index.vue +310 -310
  32. package/packages/BaseKanbanEmpty/index.js +7 -7
  33. package/packages/BaseKanbanEmpty/src/index.vue +176 -176
  34. package/packages/BaseNumberInput/index.js +7 -7
  35. package/packages/BaseNumberInput/src/index.vue +229 -229
  36. package/packages/BasePagination/index.js +7 -7
  37. package/packages/BasePagination/src/index.vue +91 -91
  38. package/packages/BasePictureCard/index.js +7 -7
  39. package/packages/BasePictureCard/src/index.vue +580 -580
  40. package/packages/BasePrintPreview/index.js +7 -7
  41. package/packages/BasePrintPreview/src/index.vue +117 -117
  42. package/packages/BasePulldown/index.js +7 -7
  43. package/packages/BasePulldown/src/index.vue +1136 -1138
  44. package/packages/BaseSearch/index.js +7 -7
  45. package/packages/BaseSearch/src/index.vue +935 -935
  46. package/packages/BaseSelect/index.js +7 -7
  47. package/packages/BaseSelect/src/index.vue +155 -155
  48. package/packages/BaseSelectMulti/index.js +7 -7
  49. package/packages/BaseSelectMulti/src/index.vue +148 -148
  50. package/packages/BaseTextArea/index.js +7 -7
  51. package/packages/BaseTextArea/src/index.vue +178 -178
  52. package/packages/BaseTime/index.js +7 -7
  53. package/packages/BaseTime/src/index.vue +166 -166
  54. package/packages/BaseTool/index.js +7 -7
  55. package/packages/BaseTool/src/index.vue +349 -349
  56. package/packages/BaseToolStatus/index.js +7 -7
  57. package/packages/BaseToolStatus/src/index.vue +388 -388
  58. package/packages/LeaveAMessage/index.js +7 -7
  59. package/packages/LeaveAMessage/src/index.vue +574 -574
  60. package/packages/index.js +167 -167
  61. package/packages/styles/default.less +80 -80
  62. package/packages/styles/icon/drag.svg +1 -0
  63. package/packages/styles/icon/seqConfig.svg +1 -0
  64. package/packages/utils/api.js +88 -88
  65. package/packages/utils/auth.js +38 -38
  66. package/packages/utils/common.js +595 -595
  67. package/packages/utils/dom.js +181 -181
  68. package/packages/utils/enum.js +84 -84
  69. package/packages/utils/filters.js +458 -458
  70. package/packages/utils/gridFormat.js +60 -60
  71. package/packages/utils/msg.js +16 -16
  72. package/packages/utils/patchFiles.js +44 -44
  73. package/packages/utils/request.js +169 -169
  74. package/packages/utils/store.js +261 -261
  75. package/vue.config.js +59 -59
@@ -1,689 +1,689 @@
1
- <template>
2
- <div class="d-form-items">
3
- <!-- <div @click="hiddenDetail = !hiddenDetail">展开</div> -->
4
- <div
5
- class="d-form-item"
6
- v-for="col in internalComputedHiddenCols"
7
- :key="col.field" v-show="(hiddenDetail?colIndex===0:true)"
8
- >
9
- <!-- 文本框输入控件 -->
10
- <BaseInput
11
- v-if="
12
- col.controlType === 'text' &&
13
- (col.isButtonShow == false || col.isButtonShow == undefined)
14
- "
15
- :label="col.title"
16
- v-model="row[col.field]"
17
- :edit="col.edit"
18
- :tooltip="col.tooltip"
19
- :rules="col.rules"
20
- @change="
21
- () => {
22
- inputChange(col);
23
- }
24
- "
25
- @blur="
26
- () => {
27
- blurChange(col);
28
- }
29
- "
30
- />
31
- <!-- 按钮弹出框输入控件 -->
32
- <!-- isButtonShow字段是额外添加字段,用于控制区分输入框控件 -->
33
- <BaseButton
34
- v-if="col.isButtonShow == true"
35
- v-model="row[col.field]"
36
- :colInfo="col"
37
- :row="row"
38
- :formRow="formRow"
39
- @preSearch="preSearch"
40
- @handleOk="
41
- (value) => {
42
- buttonHandleOk(col, value);
43
- }
44
- "
45
- />
46
- <!-- 文本框输入控件 -->
47
- <BaseTextArea
48
- v-if="
49
- col.controlType === 'textarea' &&
50
- (col.isButtonShow == false || col.isButtonShow == undefined)
51
- "
52
- :label="col.title"
53
- v-model="row[col.field]"
54
- :edit="col.edit"
55
- :tooltip="col.tooltip"
56
- :rules="col.rules"
57
- @change="
58
- () => {
59
- inputChange(col);
60
- }
61
- "
62
- />
63
- <!-- 数字输入 -->
64
- <BaseNumberInput
65
- v-if="
66
- col.controlType === 'number' &&
67
- (col.isButtonShow == false || col.isButtonShow == undefined)
68
- "
69
- :label="col.title"
70
- v-model="row[col.field]"
71
- :edit="col.edit"
72
- :rules="col.rules"
73
- :min="col.min"
74
- :tooltip="col.tooltip"
75
- :max="col.max"
76
- :precision="col.precision"
77
- @change="
78
- () => {
79
- numberChange(col);
80
- }
81
- "
82
- @blur="
83
- () => {
84
- blurChange(col);
85
- }
86
- "
87
- />
88
- <BaseIntervalInput
89
- v-if="
90
- col.controlType === 'interval' &&
91
- (col.isButtonShow == false || col.isButtonShow == undefined)
92
- "
93
- :label="col.title"
94
- v-model="row[col.field]"
95
- :edit="col.edit"
96
- :rules="col.rules"
97
- :tooltip="col.tooltip"
98
- :displayType="col.displayType"
99
- :valueType="col.valueType"
100
- @change="
101
- () => {
102
- numberChange(col);
103
- }
104
- "
105
- />
106
- <!-- 日期选择控件 -->
107
- <BaseDate
108
- v-if="
109
- col.controlType === 'date' &&
110
- (col.isButtonShow == false || col.isButtonShow == undefined)
111
- "
112
- :label="col.title"
113
- v-model="row[col.field]"
114
- :edit="col.edit"
115
- :tooltip="col.tooltip"
116
- :pastDate="col.pastDate"
117
- :rules="col.rules"
118
- :disabledDateValue="col.disabledDateValue"
119
- @change="
120
- () => {
121
- inputChange(col);
122
- }
123
- "
124
- />
125
- <!-- 日期时间控件 -->
126
- <BaseDatetime
127
- v-if="
128
- col.controlType === 'datetime' &&
129
- (col.isButtonShow == false || col.isButtonShow == undefined)
130
- "
131
- :label="col.title"
132
- v-model="row[col.field]"
133
- :pastDate="col.pastDate"
134
- :tooltip="col.tooltip"
135
- :edit="col.edit"
136
- :rules="col.rules"
137
- :disabledDateValue="col.disabledDateValue"
138
- @change="
139
- () => {
140
- inputChange(col);
141
- }
142
- "
143
- />
144
- <!-- 单选框 -->
145
- <BaseCheckbox
146
- v-if="
147
- col.controlType === 'checkbox' &&
148
- (col.isButtonShow == false || col.isButtonShow == undefined)
149
- "
150
- :label="col.title"
151
- v-model="row[col.field]"
152
- :edit="col.edit"
153
- :tooltip="col.tooltip"
154
- :rules="col.rules"
155
- @change="
156
- (rowInfo) => {
157
- checkboxChange(col);
158
- }
159
- "
160
- />
161
- <BaseTime
162
- v-if="
163
- col.controlType === 'time' &&
164
- (col.isButtonShow == false || col.isButtonShow == undefined)
165
- "
166
- :label="col.title"
167
- v-model="row[col.field]"
168
- :tooltip="col.tooltip"
169
- :edit="col.edit"
170
- :rules="col.rules"
171
- @change="
172
- () => {
173
- inputChange(col);
174
- }
175
- "
176
- />
177
- <BaseDateWeek
178
- v-if="
179
- col.controlType === 'dateweek' &&
180
- (col.isButtonShow == false || col.isButtonShow == undefined)
181
- "
182
- :label="col.title"
183
- v-model="row[col.field]"
184
- :edit="col.edit"
185
- :tooltip="col.tooltip"
186
- :rules="col.rules"
187
- @change="
188
- () => {
189
- inputChange(col);
190
- }
191
- "
192
- />
193
- <BaseDateMonth
194
- v-if="
195
- col.controlType === 'datemonth' &&
196
- (col.isButtonShow == false || col.isButtonShow == undefined)
197
- "
198
- :label="col.title"
199
- v-model="row[col.field]"
200
- :edit="col.edit"
201
- :tooltip="col.tooltip"
202
- :rules="col.rules"
203
- @change="
204
- () => {
205
- inputChange(col);
206
- }
207
- "
208
- />
209
- <BaseSelect
210
- v-if="
211
- col.controlType === 'select' &&
212
- (col.isButtonShow == false || col.isButtonShow == undefined)
213
- "
214
- :label="col.title"
215
- v-model="row[col.field]"
216
- :edit="col.edit"
217
- :rules="col.rules"
218
- :tooltip="col.tooltip"
219
- :dataSource="col.dataSource"
220
- @change="
221
- (rowInfo) => {
222
- selectChange(col);
223
- }
224
- "
225
- />
226
- <BaseSelectMulti
227
- v-if="
228
- col.controlType === 'dropmulti' &&
229
- (col.isButtonShow == false || col.isButtonShow == undefined)
230
- "
231
- :label="col.title"
232
- v-model="row[col.field]"
233
- :edit="col.edit"
234
- :tooltip="col.tooltip"
235
- :rules="col.rules"
236
- @change="
237
- (rowInfo) => {
238
- selectMultiChange(col);
239
- }
240
- "
241
- :dataSource="col.dataSource"
242
- />
243
- <BasePulldown
244
- v-if="
245
- col.controlType === 'pulldown' &&
246
- (col.isButtonShow == false || col.isButtonShow == undefined)
247
- "
248
- :formRow="formRow"
249
- :isOld="isOld"
250
- :edit="col.edit"
251
- :defaultExpression="col.defaultExpression"
252
- :row="row"
253
- :api="col.api"
254
- :tooltip="col.tooltip"
255
- :optBtns="col.optBtns"
256
- :popupAddName="col.popupAddName"
257
- :popupAddPath="col.popupAddPath"
258
- @pulldownBtnClick="pulldownBtnClick"
259
- :label="col.title"
260
- :rules="col.rules"
261
- :route="col.route"
262
- v-model="row[col.field]"
263
- :field="col.field"
264
- :columns="col.columns"
265
- :pageSize="col.pageSize"
266
- :immediate="col.immediate"
267
- @preSearch="preSearch"
268
- @selectChanged="
269
- (rowInfo) => {
270
- pullDownChange(col, rowInfo);
271
- }
272
- "
273
- />
274
- </div>
275
- <div class="d-form-item-ghost"></div>
276
- <div class="d-form-item-ghost"></div>
277
- <div class="d-form-item-ghost"></div>
278
- <div class="d-form-item-ghost"></div>
279
- </div>
280
- </template>
281
-
282
- <script>
283
- import { sysFormState, sysRowState } from "../../utils/enum";
284
- import BaseInput from "../../BaseInput/index";
285
- import BaseCheckbox from "../../BaseCheckbox/index";
286
- import BaseDate from "../../BaseDate/index";
287
- import BaseDatetime from "../../BaseDatetime/index";
288
- import BaseDateWeek from "../../BaseDateWeek/index";
289
- import BaseTextArea from "../../BaseTextArea/index";
290
- import BaseButton from "../../BaseButton/index";
291
- import BaseSelect from "../../BaseSelect/index";
292
- import BaseSelectMulti from "../../BaseSelectMulti/index";
293
- import BaseTime from "../../BaseTime/index";
294
- import BasePulldown from "../../BasePulldown/index";
295
- import BaseIntervalInput from "../../BaseIntervalInput/index";
296
- import BaseNumberInput from "../../BaseNumberInput/index";
297
-
298
- import moment from "moment";
299
- import BaseDateMonth from "../../BaseDateMonth";
300
- export default {
301
- components: {
302
- BaseInput,
303
- BaseCheckbox,
304
- BaseDate,
305
- BaseDatetime,
306
- BaseDateWeek,
307
- BaseDateMonth,
308
- BaseTextArea,
309
- BaseButton,
310
- BaseSelect,
311
- BaseSelectMulti,
312
- BaseTime,
313
- BasePulldown,
314
- BaseIntervalInput,
315
- BaseNumberInput,
316
- },
317
- name: "BaseForm",
318
- props: {
319
- updateDatas: {
320
- // 更新的数据
321
- type: Object,
322
- default: function () {
323
- return {};
324
- },
325
- },
326
- showLoading: {
327
- // 是否显示加载信息
328
- type: Boolean,
329
- default: false,
330
- },
331
- isOld: {
332
- // 是否老系统
333
- type: Boolean,
334
- default: false,
335
- },
336
- valueState: {
337
- type: Object,
338
- default: function () {
339
- return {};
340
- },
341
- },
342
- formState: {
343
- type: String,
344
- default: sysFormState.view,
345
- },
346
- formRow: {
347
- // 当前页面数据集
348
- type: Object,
349
- default: () => {
350
- return {};
351
- },
352
- },
353
- row: {
354
- // 当前行,如果是表单的话当前行和当前页面数据集是一样的
355
- type: Object,
356
- default: () => {
357
- return {};
358
- },
359
- },
360
- columns: {
361
- // 表格列信息
362
- type: Array,
363
- default: function () {
364
- return [];
365
- },
366
- },
367
- dataName: {
368
- type: String,
369
- default: function () {
370
- return "";
371
- },
372
- },
373
- },
374
- computed: {
375
- internalComputedHiddenCols: function () {
376
- let vm = this;
377
- return this.columns.filter((item) => {
378
- // if (item.isTitle === true) {
379
- // // vm.titleCol = item
380
- // return false
381
- // }
382
- // if (item.controlType === controlType.image) {
383
- // vm.logoCol = item
384
- // return false
385
- // }
386
- return item.visible === true;
387
- });
388
- },
389
- },
390
- filters: {},
391
- data() {
392
- return {
393
- hiddenDetail:false,
394
- moment,
395
- editFormName: "",
396
- internalEdit: false,
397
- internalCols: [],
398
- internalValueState: {},
399
- internalFormState: sysFormState.view,
400
- rules: {},
401
- titleCols: [],
402
- logoCol: null,
403
- isShowEditForm: false,
404
- ref: "",
405
- };
406
- },
407
- watch: {
408
- // row: {
409
- // handler: function (newVal) {
410
- // },
411
- // deep: true
412
- // },
413
- // cols: {
414
- // handler: function (newVal) {
415
- // this.internalCols = newVal
416
- // },
417
- // deep: true
418
- // },
419
- // valueState: { // 表单值状态,更新,还是插入
420
- // handler: function (newVal) {
421
- // this.internalValueState = newVal
422
- // },
423
- // deep: true
424
- // },
425
- // formState: {
426
- // handler: function (newVal) {
427
- // this.internalFormState = newVal
428
- // this.setColState()
429
- // },
430
- // deep: true
431
- // }
432
- },
433
- created() {
434
- for (let i = 0; i < this.columns.length; i++) {
435
- // if (this.columns[i].isLogo === true) {
436
- // this.logoCol = this.columns[i]
437
- // continue
438
- // }
439
- // if (this.columns[i].isTitle === true) {
440
- // this.titleCols.push(this.columns[i])
441
- // continue
442
- // }
443
- if (this.columns[i].controlType === "popup") {
444
- let formUrl =
445
- process.env[
446
- "VUE_APP_" +
447
- this.columns[i].linkModuleData.objectService.toUpperCase() +
448
- "_SERVICE_URL"
449
- ] +
450
- "/" +
451
- this.columns[i].linkModuleData.objectApiVersion +
452
- "/" +
453
- this.columns[i].linkModuleData.objectName +
454
- "/";
455
- this.columns[i]["api"] = this.columns[i].linkModuleData.objectApiRoute
456
- ? formUrl + this.columns[i].linkModuleData.objectApiRoute
457
- : formUrl + "Search";
458
-
459
- this.columns[i]["columns"] = {};
460
-
461
- for (
462
- let x = 0;
463
- x < this.columns[i].linkModuleData.moduleFields.length;
464
- x++
465
- ) {
466
- let tempField = this.columns[i].linkModuleData.moduleFields[x];
467
- this.columns[i]["columns"][tempField.field] = {
468
- title: tempField.caption,
469
- width: tempField.width,
470
- visible: tempField.visible,
471
- linkField: tempField.linkValueField,
472
- filter: tempField.isFilter,
473
- };
474
- if (tempField.field === this.columns[i].linkCaptionField) {
475
- this.columns[i]["columns"][tempField.field].linkField =
476
- this.columns[i].field;
477
- this.columns[i]["columns"][tempField.field].filter = true;
478
- }
479
- }
480
- }
481
-
482
- // this.columns[i]['rules'] = {}
483
- // if (this.columns[i].isRequire === true) {
484
- // this.columns[i].rules['required'] = true
485
- // }
486
- // if (this.columns[i].maxLength) {
487
- // this.columns[i].rules['length'] = [0, this.columns[i].maxLength]
488
- // }
489
- }
490
- },
491
-
492
- mounted() {
493
- //let letterLength = this.$refs.content.value
494
- //letterLength = this.$refs['content'].innerText.substr(0, 6) + '...'
495
- window.addEventListener("beforeunload", (e) => this.beforeunloadHandler(e));
496
- },
497
- destroyed() {
498
- window.removeEventListener("beforeunload", (e) =>
499
- this.beforeunloadHandler(e)
500
- );
501
- },
502
- activated() {},
503
- methods: {
504
- preSearch(searchInfo, repeatRowInfo) {
505
- this.$emit("preSearch", searchInfo, repeatRowInfo);
506
- },
507
- beforeunloadHandler(e) {
508
- if (this.formState !== "view") {
509
- e = e || window.event;
510
- e.returnValue = "提示";
511
- return confirm("确认退出");
512
- } else {
513
- return;
514
- }
515
- },
516
- pulldownBtnClick(btnInfo) {
517
- this.$emit("pulldownBtnClick", btnInfo);
518
- },
519
- showToolTip() {},
520
- fieldCaptionClick(col) {
521
- // 下拉框
522
- if (
523
- col.linkModuleData &&
524
- col.linkModuleData.linkModuleId &&
525
- col.linkModuleData.linkModuleOperate.indexOf(sysFormState.view) >= 0
526
- ) {
527
- // 查找模块信息
528
- let linkModule = this.$store.getters.addRouters.filter((filterItem) => {
529
- return (
530
- filterItem.meta &&
531
- filterItem.meta.moduleId === col.linkModuleData.linkModuleId
532
- );
533
- });
534
- if (linkModule.length > 0) {
535
- this.$router.pushRoute({
536
- name: linkModule[0].name,
537
- query: { id: this.row[col.field] },
538
- });
539
- }
540
- }
541
- },
542
- // selectChange(col) {
543
- // if (col.field.indexOf('.') < 0) {
544
- // this.updateDatas[col.field] = this.row[col.field]
545
- // }
546
- // if (
547
- // this.row['sysRowState'] === sysRowState.add ||
548
- // this.row['sysRowState'] === sysRowState.update
549
- // ) {
550
- // return
551
- // }
552
- // this.row['sysRowState'] = sysRowState.update
553
- // },
554
- pullDownChange(colInfo, row) {
555
- this.$emit("change", colInfo);
556
- },
557
- selectMultiChange(colInfo, row) {
558
- this.$emit("change", colInfo);
559
- },
560
- selectChange(colInfo) {
561
- this.$emit("change", colInfo);
562
- },
563
- checkboxChange(colInfo) {
564
- this.$emit("change", colInfo);
565
- },
566
- checkBoxChange(col) {
567
- if (col.field.indexOf(".") < 0) {
568
- this.updateDatas[col.field] = this.row[col.field];
569
- }
570
- this.$emit("change", col);
571
- if (
572
- this.row["sysRowState"] === sysRowState.add ||
573
- this.row["sysRowState"] === sysRowState.update
574
- ) {
575
- return;
576
- }
577
- this.row["sysRowState"] = sysRowState.update;
578
- },
579
- dateChange(col) {
580
- if (col.field.indexOf(".") < 0) {
581
- this.updateDatas[col.field] = this.row[col.field];
582
- }
583
- this.$emit("change", col);
584
- if (
585
- this.row["sysRowState"] === sysRowState.add ||
586
- this.row["sysRowState"] === sysRowState.update
587
- ) {
588
- return;
589
- }
590
- this.row["sysRowState"] = sysRowState.update;
591
- },
592
- inputChange(colInfo) {
593
- // 输入框改变
594
- this.$emit("change", colInfo);
595
- },
596
- // 按钮弹出组件返回输入的值
597
- buttonHandleOk(colInfo, value) {
598
- // 按钮弹出确定改变内容改变
599
- this.$emit("buttonHandleOk", colInfo, value);
600
- },
601
- blurChange(colInfo) {
602
- // 输入框失去焦点
603
- this.$emit("blur", colInfo);
604
- },
605
- numberChange(colInfo) {
606
- // 输入框改变
607
- this.$emit("change", colInfo);
608
- },
609
- longtimeChange(data, col) {
610
- this.row[col.field] = data;
611
- this.$emit("change", col);
612
- if (
613
- this.row["sysRowState"] === sysRowState.add ||
614
- this.row["sysRowState"] === sysRowState.update
615
- ) {
616
- return;
617
- }
618
- this.row["sysRowState"] = sysRowState.update;
619
- },
620
- changeControlType(field, controlType) {
621
- let col = this.internalComputedHiddenCols.find(col => col.field === field)
622
- col.controlType = controlType
623
- }
624
- },
625
- };
626
- </script>
627
-
628
- <style lang="less" scoped>
629
- .form-head {
630
- display: flex;
631
- flex-flow: row wrap;
632
- margin-bottom: 10px;
633
- .form-title {
634
- margin-left: 10px;
635
- }
636
- }
637
- .input-span {
638
- // line-height: 33px;
639
- color: #0b0b0b;
640
- font-size: 12px;
641
- font-weight: normal;
642
- overflow: hidden;
643
- text-overflow: ellipsis;
644
- -o-text-overflow: ellipsis;
645
- display: inline-block;
646
- width: 100%;
647
- height: 32.8px;
648
- white-space: nowrap;
649
- // font-family: "Arial", "Microsoft YaHei";
650
- }
651
- .title-first-input {
652
- width: 200px;
653
- height: 25px;
654
- font-size: 15px;
655
- margin-left: 10px;
656
- font-weight: 500;
657
- }
658
- .title-second-input {
659
- width: 200px;
660
- height: 25px;
661
- font-size: 15px;
662
- margin-left: 10px;
663
- font-weight: 500;
664
- }
665
- .title-first-value {
666
- width: 200px;
667
- height: 40px;
668
- font-size: 24px;
669
- margin-left: 10px;
670
- font-weight: 700;
671
- }
672
- .title-second-value {
673
- width: 200px;
674
- height: 26px;
675
- font-size: 18px;
676
- margin-left: 10px;
677
- font-weight: 600;
678
- }
679
- .option:hover {
680
- background-color: #219bff;
681
- }
682
- .form {
683
- margin-left: 30px;
684
- }
685
- </style>
686
- <style lang="less">
687
- @import "../../styles/default.less";
688
- </style>
1
+ <template>
2
+ <div class="d-form-items">
3
+ <!-- <div @click="hiddenDetail = !hiddenDetail">展开</div> -->
4
+ <div
5
+ class="d-form-item"
6
+ v-for="col in internalComputedHiddenCols"
7
+ :key="col.field" v-show="(hiddenDetail?colIndex===0:true)"
8
+ >
9
+ <!-- 文本框输入控件 -->
10
+ <BaseInput
11
+ v-if="
12
+ col.controlType === 'text' &&
13
+ (col.isButtonShow == false || col.isButtonShow == undefined)
14
+ "
15
+ :label="col.title"
16
+ v-model="row[col.field]"
17
+ :edit="col.edit"
18
+ :tooltip="col.tooltip"
19
+ :rules="col.rules"
20
+ @change="
21
+ () => {
22
+ inputChange(col);
23
+ }
24
+ "
25
+ @blur="
26
+ () => {
27
+ blurChange(col);
28
+ }
29
+ "
30
+ />
31
+ <!-- 按钮弹出框输入控件 -->
32
+ <!-- isButtonShow字段是额外添加字段,用于控制区分输入框控件 -->
33
+ <BaseButton
34
+ v-if="col.isButtonShow == true"
35
+ v-model="row[col.field]"
36
+ :colInfo="col"
37
+ :row="row"
38
+ :formRow="formRow"
39
+ @preSearch="preSearch"
40
+ @handleOk="
41
+ (value) => {
42
+ buttonHandleOk(col, value);
43
+ }
44
+ "
45
+ />
46
+ <!-- 文本框输入控件 -->
47
+ <BaseTextArea
48
+ v-if="
49
+ col.controlType === 'textarea' &&
50
+ (col.isButtonShow == false || col.isButtonShow == undefined)
51
+ "
52
+ :label="col.title"
53
+ v-model="row[col.field]"
54
+ :edit="col.edit"
55
+ :tooltip="col.tooltip"
56
+ :rules="col.rules"
57
+ @change="
58
+ () => {
59
+ inputChange(col);
60
+ }
61
+ "
62
+ />
63
+ <!-- 数字输入 -->
64
+ <BaseNumberInput
65
+ v-if="
66
+ col.controlType === 'number' &&
67
+ (col.isButtonShow == false || col.isButtonShow == undefined)
68
+ "
69
+ :label="col.title"
70
+ v-model="row[col.field]"
71
+ :edit="col.edit"
72
+ :rules="col.rules"
73
+ :min="col.min"
74
+ :tooltip="col.tooltip"
75
+ :max="col.max"
76
+ :precision="col.precision"
77
+ @change="
78
+ () => {
79
+ numberChange(col);
80
+ }
81
+ "
82
+ @blur="
83
+ () => {
84
+ blurChange(col);
85
+ }
86
+ "
87
+ />
88
+ <BaseIntervalInput
89
+ v-if="
90
+ col.controlType === 'interval' &&
91
+ (col.isButtonShow == false || col.isButtonShow == undefined)
92
+ "
93
+ :label="col.title"
94
+ v-model="row[col.field]"
95
+ :edit="col.edit"
96
+ :rules="col.rules"
97
+ :tooltip="col.tooltip"
98
+ :displayType="col.displayType"
99
+ :valueType="col.valueType"
100
+ @change="
101
+ () => {
102
+ numberChange(col);
103
+ }
104
+ "
105
+ />
106
+ <!-- 日期选择控件 -->
107
+ <BaseDate
108
+ v-if="
109
+ col.controlType === 'date' &&
110
+ (col.isButtonShow == false || col.isButtonShow == undefined)
111
+ "
112
+ :label="col.title"
113
+ v-model="row[col.field]"
114
+ :edit="col.edit"
115
+ :tooltip="col.tooltip"
116
+ :pastDate="col.pastDate"
117
+ :rules="col.rules"
118
+ :disabledDateValue="col.disabledDateValue"
119
+ @change="
120
+ () => {
121
+ inputChange(col);
122
+ }
123
+ "
124
+ />
125
+ <!-- 日期时间控件 -->
126
+ <BaseDatetime
127
+ v-if="
128
+ col.controlType === 'datetime' &&
129
+ (col.isButtonShow == false || col.isButtonShow == undefined)
130
+ "
131
+ :label="col.title"
132
+ v-model="row[col.field]"
133
+ :pastDate="col.pastDate"
134
+ :tooltip="col.tooltip"
135
+ :edit="col.edit"
136
+ :rules="col.rules"
137
+ :disabledDateValue="col.disabledDateValue"
138
+ @change="
139
+ () => {
140
+ inputChange(col);
141
+ }
142
+ "
143
+ />
144
+ <!-- 单选框 -->
145
+ <BaseCheckbox
146
+ v-if="
147
+ col.controlType === 'checkbox' &&
148
+ (col.isButtonShow == false || col.isButtonShow == undefined)
149
+ "
150
+ :label="col.title"
151
+ v-model="row[col.field]"
152
+ :edit="col.edit"
153
+ :tooltip="col.tooltip"
154
+ :rules="col.rules"
155
+ @change="
156
+ (rowInfo) => {
157
+ checkboxChange(col);
158
+ }
159
+ "
160
+ />
161
+ <BaseTime
162
+ v-if="
163
+ col.controlType === 'time' &&
164
+ (col.isButtonShow == false || col.isButtonShow == undefined)
165
+ "
166
+ :label="col.title"
167
+ v-model="row[col.field]"
168
+ :tooltip="col.tooltip"
169
+ :edit="col.edit"
170
+ :rules="col.rules"
171
+ @change="
172
+ () => {
173
+ inputChange(col);
174
+ }
175
+ "
176
+ />
177
+ <BaseDateWeek
178
+ v-if="
179
+ col.controlType === 'dateweek' &&
180
+ (col.isButtonShow == false || col.isButtonShow == undefined)
181
+ "
182
+ :label="col.title"
183
+ v-model="row[col.field]"
184
+ :edit="col.edit"
185
+ :tooltip="col.tooltip"
186
+ :rules="col.rules"
187
+ @change="
188
+ () => {
189
+ inputChange(col);
190
+ }
191
+ "
192
+ />
193
+ <BaseDateMonth
194
+ v-if="
195
+ col.controlType === 'datemonth' &&
196
+ (col.isButtonShow == false || col.isButtonShow == undefined)
197
+ "
198
+ :label="col.title"
199
+ v-model="row[col.field]"
200
+ :edit="col.edit"
201
+ :tooltip="col.tooltip"
202
+ :rules="col.rules"
203
+ @change="
204
+ () => {
205
+ inputChange(col);
206
+ }
207
+ "
208
+ />
209
+ <BaseSelect
210
+ v-if="
211
+ col.controlType === 'select' &&
212
+ (col.isButtonShow == false || col.isButtonShow == undefined)
213
+ "
214
+ :label="col.title"
215
+ v-model="row[col.field]"
216
+ :edit="col.edit"
217
+ :rules="col.rules"
218
+ :tooltip="col.tooltip"
219
+ :dataSource="col.dataSource"
220
+ @change="
221
+ (rowInfo) => {
222
+ selectChange(col);
223
+ }
224
+ "
225
+ />
226
+ <BaseSelectMulti
227
+ v-if="
228
+ col.controlType === 'dropmulti' &&
229
+ (col.isButtonShow == false || col.isButtonShow == undefined)
230
+ "
231
+ :label="col.title"
232
+ v-model="row[col.field]"
233
+ :edit="col.edit"
234
+ :tooltip="col.tooltip"
235
+ :rules="col.rules"
236
+ @change="
237
+ (rowInfo) => {
238
+ selectMultiChange(col);
239
+ }
240
+ "
241
+ :dataSource="col.dataSource"
242
+ />
243
+ <BasePulldown
244
+ v-if="
245
+ col.controlType === 'pulldown' &&
246
+ (col.isButtonShow == false || col.isButtonShow == undefined)
247
+ "
248
+ :formRow="formRow"
249
+ :isOld="isOld"
250
+ :edit="col.edit"
251
+ :defaultExpression="col.defaultExpression"
252
+ :row="row"
253
+ :api="col.api"
254
+ :tooltip="col.tooltip"
255
+ :optBtns="col.optBtns"
256
+ :popupAddName="col.popupAddName"
257
+ :popupAddPath="col.popupAddPath"
258
+ @pulldownBtnClick="pulldownBtnClick"
259
+ :label="col.title"
260
+ :rules="col.rules"
261
+ :route="col.route"
262
+ v-model="row[col.field]"
263
+ :field="col.field"
264
+ :columns="col.columns"
265
+ :pageSize="col.pageSize"
266
+ :immediate="col.immediate"
267
+ @preSearch="preSearch"
268
+ @selectChanged="
269
+ (rowInfo) => {
270
+ pullDownChange(col, rowInfo);
271
+ }
272
+ "
273
+ />
274
+ </div>
275
+ <div class="d-form-item-ghost"></div>
276
+ <div class="d-form-item-ghost"></div>
277
+ <div class="d-form-item-ghost"></div>
278
+ <div class="d-form-item-ghost"></div>
279
+ </div>
280
+ </template>
281
+
282
+ <script>
283
+ import { sysFormState, sysRowState } from "../../utils/enum";
284
+ import BaseInput from "../../BaseInput/index";
285
+ import BaseCheckbox from "../../BaseCheckbox/index";
286
+ import BaseDate from "../../BaseDate/index";
287
+ import BaseDatetime from "../../BaseDatetime/index";
288
+ import BaseDateWeek from "../../BaseDateWeek/index";
289
+ import BaseTextArea from "../../BaseTextArea/index";
290
+ import BaseButton from "../../BaseButton/index";
291
+ import BaseSelect from "../../BaseSelect/index";
292
+ import BaseSelectMulti from "../../BaseSelectMulti/index";
293
+ import BaseTime from "../../BaseTime/index";
294
+ import BasePulldown from "../../BasePulldown/index";
295
+ import BaseIntervalInput from "../../BaseIntervalInput/index";
296
+ import BaseNumberInput from "../../BaseNumberInput/index";
297
+
298
+ import moment from "moment";
299
+ import BaseDateMonth from "../../BaseDateMonth";
300
+ export default {
301
+ components: {
302
+ BaseInput,
303
+ BaseCheckbox,
304
+ BaseDate,
305
+ BaseDatetime,
306
+ BaseDateWeek,
307
+ BaseDateMonth,
308
+ BaseTextArea,
309
+ BaseButton,
310
+ BaseSelect,
311
+ BaseSelectMulti,
312
+ BaseTime,
313
+ BasePulldown,
314
+ BaseIntervalInput,
315
+ BaseNumberInput,
316
+ },
317
+ name: "BaseForm",
318
+ props: {
319
+ updateDatas: {
320
+ // 更新的数据
321
+ type: Object,
322
+ default: function () {
323
+ return {};
324
+ },
325
+ },
326
+ showLoading: {
327
+ // 是否显示加载信息
328
+ type: Boolean,
329
+ default: false,
330
+ },
331
+ isOld: {
332
+ // 是否老系统
333
+ type: Boolean,
334
+ default: false,
335
+ },
336
+ valueState: {
337
+ type: Object,
338
+ default: function () {
339
+ return {};
340
+ },
341
+ },
342
+ formState: {
343
+ type: String,
344
+ default: sysFormState.view,
345
+ },
346
+ formRow: {
347
+ // 当前页面数据集
348
+ type: Object,
349
+ default: () => {
350
+ return {};
351
+ },
352
+ },
353
+ row: {
354
+ // 当前行,如果是表单的话当前行和当前页面数据集是一样的
355
+ type: Object,
356
+ default: () => {
357
+ return {};
358
+ },
359
+ },
360
+ columns: {
361
+ // 表格列信息
362
+ type: Array,
363
+ default: function () {
364
+ return [];
365
+ },
366
+ },
367
+ dataName: {
368
+ type: String,
369
+ default: function () {
370
+ return "";
371
+ },
372
+ },
373
+ },
374
+ computed: {
375
+ internalComputedHiddenCols: function () {
376
+ let vm = this;
377
+ return this.columns.filter((item) => {
378
+ // if (item.isTitle === true) {
379
+ // // vm.titleCol = item
380
+ // return false
381
+ // }
382
+ // if (item.controlType === controlType.image) {
383
+ // vm.logoCol = item
384
+ // return false
385
+ // }
386
+ return item.visible === true;
387
+ });
388
+ },
389
+ },
390
+ filters: {},
391
+ data() {
392
+ return {
393
+ hiddenDetail:false,
394
+ moment,
395
+ editFormName: "",
396
+ internalEdit: false,
397
+ internalCols: [],
398
+ internalValueState: {},
399
+ internalFormState: sysFormState.view,
400
+ rules: {},
401
+ titleCols: [],
402
+ logoCol: null,
403
+ isShowEditForm: false,
404
+ ref: "",
405
+ };
406
+ },
407
+ watch: {
408
+ // row: {
409
+ // handler: function (newVal) {
410
+ // },
411
+ // deep: true
412
+ // },
413
+ // cols: {
414
+ // handler: function (newVal) {
415
+ // this.internalCols = newVal
416
+ // },
417
+ // deep: true
418
+ // },
419
+ // valueState: { // 表单值状态,更新,还是插入
420
+ // handler: function (newVal) {
421
+ // this.internalValueState = newVal
422
+ // },
423
+ // deep: true
424
+ // },
425
+ // formState: {
426
+ // handler: function (newVal) {
427
+ // this.internalFormState = newVal
428
+ // this.setColState()
429
+ // },
430
+ // deep: true
431
+ // }
432
+ },
433
+ created() {
434
+ for (let i = 0; i < this.columns.length; i++) {
435
+ // if (this.columns[i].isLogo === true) {
436
+ // this.logoCol = this.columns[i]
437
+ // continue
438
+ // }
439
+ // if (this.columns[i].isTitle === true) {
440
+ // this.titleCols.push(this.columns[i])
441
+ // continue
442
+ // }
443
+ if (this.columns[i].controlType === "popup") {
444
+ let formUrl =
445
+ process.env[
446
+ "VUE_APP_" +
447
+ this.columns[i].linkModuleData.objectService.toUpperCase() +
448
+ "_SERVICE_URL"
449
+ ] +
450
+ "/" +
451
+ this.columns[i].linkModuleData.objectApiVersion +
452
+ "/" +
453
+ this.columns[i].linkModuleData.objectName +
454
+ "/";
455
+ this.columns[i]["api"] = this.columns[i].linkModuleData.objectApiRoute
456
+ ? formUrl + this.columns[i].linkModuleData.objectApiRoute
457
+ : formUrl + "Search";
458
+
459
+ this.columns[i]["columns"] = {};
460
+
461
+ for (
462
+ let x = 0;
463
+ x < this.columns[i].linkModuleData.moduleFields.length;
464
+ x++
465
+ ) {
466
+ let tempField = this.columns[i].linkModuleData.moduleFields[x];
467
+ this.columns[i]["columns"][tempField.field] = {
468
+ title: tempField.caption,
469
+ width: tempField.width,
470
+ visible: tempField.visible,
471
+ linkField: tempField.linkValueField,
472
+ filter: tempField.isFilter,
473
+ };
474
+ if (tempField.field === this.columns[i].linkCaptionField) {
475
+ this.columns[i]["columns"][tempField.field].linkField =
476
+ this.columns[i].field;
477
+ this.columns[i]["columns"][tempField.field].filter = true;
478
+ }
479
+ }
480
+ }
481
+
482
+ // this.columns[i]['rules'] = {}
483
+ // if (this.columns[i].isRequire === true) {
484
+ // this.columns[i].rules['required'] = true
485
+ // }
486
+ // if (this.columns[i].maxLength) {
487
+ // this.columns[i].rules['length'] = [0, this.columns[i].maxLength]
488
+ // }
489
+ }
490
+ },
491
+
492
+ mounted() {
493
+ //let letterLength = this.$refs.content.value
494
+ //letterLength = this.$refs['content'].innerText.substr(0, 6) + '...'
495
+ window.addEventListener("beforeunload", (e) => this.beforeunloadHandler(e));
496
+ },
497
+ destroyed() {
498
+ window.removeEventListener("beforeunload", (e) =>
499
+ this.beforeunloadHandler(e)
500
+ );
501
+ },
502
+ activated() {},
503
+ methods: {
504
+ preSearch(searchInfo, repeatRowInfo) {
505
+ this.$emit("preSearch", searchInfo, repeatRowInfo);
506
+ },
507
+ beforeunloadHandler(e) {
508
+ if (this.formState !== "view") {
509
+ e = e || window.event;
510
+ e.returnValue = "提示";
511
+ return confirm("确认退出");
512
+ } else {
513
+ return;
514
+ }
515
+ },
516
+ pulldownBtnClick(btnInfo) {
517
+ this.$emit("pulldownBtnClick", btnInfo);
518
+ },
519
+ showToolTip() {},
520
+ fieldCaptionClick(col) {
521
+ // 下拉框
522
+ if (
523
+ col.linkModuleData &&
524
+ col.linkModuleData.linkModuleId &&
525
+ col.linkModuleData.linkModuleOperate.indexOf(sysFormState.view) >= 0
526
+ ) {
527
+ // 查找模块信息
528
+ let linkModule = this.$store.getters.addRouters.filter((filterItem) => {
529
+ return (
530
+ filterItem.meta &&
531
+ filterItem.meta.moduleId === col.linkModuleData.linkModuleId
532
+ );
533
+ });
534
+ if (linkModule.length > 0) {
535
+ this.$router.pushRoute({
536
+ name: linkModule[0].name,
537
+ query: { id: this.row[col.field] },
538
+ });
539
+ }
540
+ }
541
+ },
542
+ // selectChange(col) {
543
+ // if (col.field.indexOf('.') < 0) {
544
+ // this.updateDatas[col.field] = this.row[col.field]
545
+ // }
546
+ // if (
547
+ // this.row['sysRowState'] === sysRowState.add ||
548
+ // this.row['sysRowState'] === sysRowState.update
549
+ // ) {
550
+ // return
551
+ // }
552
+ // this.row['sysRowState'] = sysRowState.update
553
+ // },
554
+ pullDownChange(colInfo, row) {
555
+ this.$emit("change", colInfo);
556
+ },
557
+ selectMultiChange(colInfo, row) {
558
+ this.$emit("change", colInfo);
559
+ },
560
+ selectChange(colInfo) {
561
+ this.$emit("change", colInfo);
562
+ },
563
+ checkboxChange(colInfo) {
564
+ this.$emit("change", colInfo);
565
+ },
566
+ checkBoxChange(col) {
567
+ if (col.field.indexOf(".") < 0) {
568
+ this.updateDatas[col.field] = this.row[col.field];
569
+ }
570
+ this.$emit("change", col);
571
+ if (
572
+ this.row["sysRowState"] === sysRowState.add ||
573
+ this.row["sysRowState"] === sysRowState.update
574
+ ) {
575
+ return;
576
+ }
577
+ this.row["sysRowState"] = sysRowState.update;
578
+ },
579
+ dateChange(col) {
580
+ if (col.field.indexOf(".") < 0) {
581
+ this.updateDatas[col.field] = this.row[col.field];
582
+ }
583
+ this.$emit("change", col);
584
+ if (
585
+ this.row["sysRowState"] === sysRowState.add ||
586
+ this.row["sysRowState"] === sysRowState.update
587
+ ) {
588
+ return;
589
+ }
590
+ this.row["sysRowState"] = sysRowState.update;
591
+ },
592
+ inputChange(colInfo) {
593
+ // 输入框改变
594
+ this.$emit("change", colInfo);
595
+ },
596
+ // 按钮弹出组件返回输入的值
597
+ buttonHandleOk(colInfo, value) {
598
+ // 按钮弹出确定改变内容改变
599
+ this.$emit("buttonHandleOk", colInfo, value);
600
+ },
601
+ blurChange(colInfo) {
602
+ // 输入框失去焦点
603
+ this.$emit("blur", colInfo);
604
+ },
605
+ numberChange(colInfo) {
606
+ // 输入框改变
607
+ this.$emit("change", colInfo);
608
+ },
609
+ longtimeChange(data, col) {
610
+ this.row[col.field] = data;
611
+ this.$emit("change", col);
612
+ if (
613
+ this.row["sysRowState"] === sysRowState.add ||
614
+ this.row["sysRowState"] === sysRowState.update
615
+ ) {
616
+ return;
617
+ }
618
+ this.row["sysRowState"] = sysRowState.update;
619
+ },
620
+ changeControlType(field, controlType) {
621
+ let col = this.internalComputedHiddenCols.find(col => col.field === field)
622
+ col.controlType = controlType
623
+ }
624
+ },
625
+ };
626
+ </script>
627
+
628
+ <style lang="less" scoped>
629
+ .form-head {
630
+ display: flex;
631
+ flex-flow: row wrap;
632
+ margin-bottom: 10px;
633
+ .form-title {
634
+ margin-left: 10px;
635
+ }
636
+ }
637
+ .input-span {
638
+ // line-height: 33px;
639
+ color: #0b0b0b;
640
+ font-size: 12px;
641
+ font-weight: normal;
642
+ overflow: hidden;
643
+ text-overflow: ellipsis;
644
+ -o-text-overflow: ellipsis;
645
+ display: inline-block;
646
+ width: 100%;
647
+ height: 32.8px;
648
+ white-space: nowrap;
649
+ // font-family: "Arial", "Microsoft YaHei";
650
+ }
651
+ .title-first-input {
652
+ width: 200px;
653
+ height: 25px;
654
+ font-size: 15px;
655
+ margin-left: 10px;
656
+ font-weight: 500;
657
+ }
658
+ .title-second-input {
659
+ width: 200px;
660
+ height: 25px;
661
+ font-size: 15px;
662
+ margin-left: 10px;
663
+ font-weight: 500;
664
+ }
665
+ .title-first-value {
666
+ width: 200px;
667
+ height: 40px;
668
+ font-size: 24px;
669
+ margin-left: 10px;
670
+ font-weight: 700;
671
+ }
672
+ .title-second-value {
673
+ width: 200px;
674
+ height: 26px;
675
+ font-size: 18px;
676
+ margin-left: 10px;
677
+ font-weight: 600;
678
+ }
679
+ .option:hover {
680
+ background-color: #219bff;
681
+ }
682
+ .form {
683
+ margin-left: 30px;
684
+ }
685
+ </style>
686
+ <style lang="less">
687
+ @import "../../styles/default.less";
688
+ </style>
689
689