@dhccmobile/vue3-lo-form 2.1.1 → 2.1.3

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 (160) hide show
  1. package/README.md +5 -4
  2. package/dist/vue3-lo-form.common.js +30 -29
  3. package/dist/vue3-lo-form.common.js.map +1 -1
  4. package/dist/vue3-lo-form.css +1 -1
  5. package/dist/vue3-lo-form.umd.js +30 -29
  6. package/dist/vue3-lo-form.umd.js.map +1 -1
  7. package/dist/vue3-lo-form.umd.min.js +1 -1
  8. package/dist/vue3-lo-form.umd.min.js.map +1 -1
  9. package/package.json +3 -2
  10. package/src/App.vue +115 -121
  11. package/src/UserInfoForm.vue +177 -0
  12. package/src/components/form/DvFormLayout.vue +1 -2
  13. package/src/components/index.js +4 -0
  14. package/src/components/index.js.map +1 -0
  15. package/src/constants/config/form-template.config.js +33 -0
  16. package/src/constants/config/form-template.config.js.map +1 -0
  17. package/src/constants/config/form.config.js +5 -0
  18. package/src/constants/config/form.config.js.map +1 -0
  19. package/src/constants/config/storage.config.js +5 -0
  20. package/src/constants/config/storage.config.js.map +1 -0
  21. package/src/constants/encode-assets/icons.js +2 -0
  22. package/src/constants/encode-assets/icons.js.map +1 -0
  23. package/src/constants/encode-assets/svg.js +8 -0
  24. package/src/constants/encode-assets/svg.js.map +1 -0
  25. package/src/constants/enum/builtIn-label.enum.js +6 -0
  26. package/src/constants/enum/builtIn-label.enum.js.map +1 -0
  27. package/src/constants/enum/cache-type.enum.js +8 -0
  28. package/src/constants/enum/cache-type.enum.js.map +1 -0
  29. package/src/constants/enum/control-format-type.enum.js +10 -0
  30. package/src/constants/enum/control-format-type.enum.js.map +1 -0
  31. package/src/constants/enum/dynamic-option-type.enum.js +7 -0
  32. package/src/constants/enum/dynamic-option-type.enum.js.map +1 -0
  33. package/src/constants/enum/form-bus-attr.enum.js +9 -0
  34. package/src/constants/enum/form-bus-attr.enum.js.map +1 -0
  35. package/src/constants/enum/form-field-class.enum.js +8 -0
  36. package/src/constants/enum/form-field-class.enum.js.map +1 -0
  37. package/src/constants/enum/form-field-type.enum.js +24 -0
  38. package/src/constants/enum/form-field-type.enum.js.map +1 -0
  39. package/src/constants/enum/form-type.enum.js +6 -0
  40. package/src/constants/enum/form-type.enum.js.map +1 -0
  41. package/src/constants/enum/index.js +20 -0
  42. package/src/constants/enum/index.js.map +1 -0
  43. package/src/constants/enum/lateral-arrangement.enum.js +10 -0
  44. package/src/constants/enum/lateral-arrangement.enum.js.map +1 -0
  45. package/src/constants/enum/money-unit.enum.js +7 -0
  46. package/src/constants/enum/money-unit.enum.js.map +1 -0
  47. package/src/constants/enum/option-type.enum.js +6 -0
  48. package/src/constants/enum/option-type.enum.js.map +1 -0
  49. package/src/constants/enum/submitted-type.enum.js +35 -0
  50. package/src/constants/enum/submitted-type.enum.js.map +1 -0
  51. package/src/constants/enum/support-upload-type.enum.js +6 -0
  52. package/src/constants/enum/support-upload-type.enum.js.map +1 -0
  53. package/src/constants/enum/switch.enum.js +6 -0
  54. package/src/constants/enum/switch.enum.js.map +1 -0
  55. package/src/constants/enum/upload-type.enum.js +18 -0
  56. package/src/constants/enum/upload-type.enum.js.map +1 -0
  57. package/src/constants/enum/validate-rules.enum.js +26 -0
  58. package/src/constants/enum/validate-rules.enum.js.map +1 -0
  59. package/src/constants/enum/validate-status.enum.js +9 -0
  60. package/src/constants/enum/validate-status.enum.js.map +1 -0
  61. package/src/constants/enum/vertical-arrangement.enum.js +8 -0
  62. package/src/constants/enum/vertical-arrangement.enum.js.map +1 -0
  63. package/src/constants/enum/zoom-type.js +7 -0
  64. package/src/constants/enum/zoom-type.js.map +1 -0
  65. package/src/constants/index.js +4 -0
  66. package/src/constants/index.js.map +1 -0
  67. package/src/core/FormApi.js +1241 -0
  68. package/src/core/FormApi.js.map +1 -0
  69. package/src/core/FormApi.ts +4 -3
  70. package/src/core/index.js +2 -0
  71. package/src/core/index.js.map +1 -0
  72. package/src/domain/AbstractControl.js +4 -0
  73. package/src/domain/AbstractControl.js.map +1 -0
  74. package/src/domain/Control.js +2 -0
  75. package/src/domain/Control.js.map +1 -0
  76. package/src/domain/CustomFormat.js +2 -0
  77. package/src/domain/CustomFormat.js.map +1 -0
  78. package/src/domain/DesForm.js +29 -0
  79. package/src/domain/DesForm.js.map +1 -0
  80. package/src/domain/DesFormControl.js +163 -0
  81. package/src/domain/DesFormControl.js.map +1 -0
  82. package/src/domain/DesFormLayout.js +33 -0
  83. package/src/domain/DesFormLayout.js.map +1 -0
  84. package/src/domain/FieldChangeHistory.js +2 -0
  85. package/src/domain/FieldChangeHistory.js.map +1 -0
  86. package/src/domain/FormConfig.js +2 -0
  87. package/src/domain/FormConfig.js.map +1 -0
  88. package/src/domain/FormControl.js +102 -0
  89. package/src/domain/FormControl.js.map +1 -0
  90. package/src/domain/FormEnum.js +2 -0
  91. package/src/domain/FormEnum.js.map +1 -0
  92. package/src/domain/FormGroup.js +38 -0
  93. package/src/domain/FormGroup.js.map +1 -0
  94. package/src/domain/FormRestfulResponse.js +2 -0
  95. package/src/domain/FormRestfulResponse.js.map +1 -0
  96. package/src/domain/ProvideInjectData.js +2 -0
  97. package/src/domain/ProvideInjectData.js.map +1 -0
  98. package/src/domain/SysDictDetail.js +25 -0
  99. package/src/domain/SysDictDetail.js.map +1 -0
  100. package/src/domain/SysDictInfo.js +25 -0
  101. package/src/domain/SysDictInfo.js.map +1 -0
  102. package/src/domain/SysDictTreeDetail.js +35 -0
  103. package/src/domain/SysDictTreeDetail.js.map +1 -0
  104. package/src/domain/index.js +13 -0
  105. package/src/domain/index.js.map +1 -0
  106. package/src/filtres/amount-capitalization.filter.js +150 -0
  107. package/src/filtres/amount-capitalization.filter.js.map +1 -0
  108. package/src/filtres/extract-options.filter.js +54 -0
  109. package/src/filtres/extract-options.filter.js.map +1 -0
  110. package/src/filtres/generate-grid-column-end.filter.js +18 -0
  111. package/src/filtres/generate-grid-column-end.filter.js.map +1 -0
  112. package/src/filtres/generate-grid-template-columns.filter.js +20 -0
  113. package/src/filtres/generate-grid-template-columns.filter.js.map +1 -0
  114. package/src/filtres/switch-enum-convert.filter.js +18 -0
  115. package/src/filtres/switch-enum-convert.filter.js.map +1 -0
  116. package/src/filtres/zoom-multiple.filter.js +31 -0
  117. package/src/filtres/zoom-multiple.filter.js.map +1 -0
  118. package/src/index.js +69 -0
  119. package/src/index.js.map +1 -0
  120. package/src/main.js +22 -0
  121. package/src/main.js.map +1 -0
  122. package/src/main.ts +2 -3
  123. package/src/services/api.service.js +74 -0
  124. package/src/services/api.service.js.map +1 -0
  125. package/src/services/clean-local-forage.service.js +53 -0
  126. package/src/services/clean-local-forage.service.js.map +1 -0
  127. package/src/services/date-format.service.js +76 -0
  128. package/src/services/date-format.service.js.map +1 -0
  129. package/src/services/dict-local-forage.service.js +53 -0
  130. package/src/services/dict-local-forage.service.js.map +1 -0
  131. package/src/services/form-bean-utils.service.js +39 -0
  132. package/src/services/form-bean-utils.service.js.map +1 -0
  133. package/src/services/form-local-forage.service.js +53 -0
  134. package/src/services/form-local-forage.service.js.map +1 -0
  135. package/src/services/form-tools.service.js +750 -0
  136. package/src/services/form-tools.service.js.map +1 -0
  137. package/src/services/form-tree-node-convert.service.js +174 -0
  138. package/src/services/form-tree-node-convert.service.js.map +1 -0
  139. package/src/services/form-validate.service.js +100 -0
  140. package/src/services/form-validate.service.js.map +1 -0
  141. package/src/services/index.js +10 -0
  142. package/src/services/index.js.map +1 -0
  143. package/src/services/router.service.js +94 -0
  144. package/src/services/router.service.js.map +1 -0
  145. package/src/services/validate-generator.service.js +688 -0
  146. package/src/services/validate-generator.service.js.map +1 -0
  147. package/src/store/dict.store.js +52 -0
  148. package/src/store/dict.store.js.map +1 -0
  149. package/src/store/form.store.js +26 -0
  150. package/src/store/form.store.js.map +1 -0
  151. package/src/store/index.js +3 -0
  152. package/src/store/index.js.map +1 -0
  153. package/src/styles/theme2.scss +1 -1
  154. package/src/types/formTheme.js +2 -0
  155. package/src/types/formTheme.js.map +1 -0
  156. package/src/types/formTheme.ts +8 -0
  157. package/src/types/vfForm.js +2 -0
  158. package/src/types/vfForm.js.map +1 -0
  159. package/types/core/FormApi.d.ts +1 -1
  160. package/types/types/formTheme.d.ts +8 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dhccmobile/vue3-lo-form",
3
- "version": "2.1.1",
3
+ "version": "2.1.3",
4
4
  "description": "VUE3动态表单",
5
5
  "private": false,
6
6
  "main": "dist/vue3-lo-form.umd.js",
@@ -14,7 +14,8 @@
14
14
  "clean:lib": "rimraf types && rimraf dist",
15
15
  "build:lib": "npm run clean:lib && npm run tsc && npm run lib && npm pack",
16
16
  "publish": "npm publish --registry https://registry.npmjs.org --access public",
17
- "publish:lib": "npm run build:lib && npm run publish"
17
+ "publish:lib": "npm run build:lib && npm run publish",
18
+ "publish:lib1": "npm run publish"
18
19
  },
19
20
  "dependencies": {
20
21
  "@ant-design/icons-vue": "^6.1.0",
package/src/App.vue CHANGED
@@ -1,140 +1,138 @@
1
1
  <template>
2
- <div class="lo-container" ref="scrollView">
3
- <div class="lo-content">
4
- <div class="lo-title">form API测试</div>
5
- <div class="lo-ins">
6
- <div class="lo-api">
7
- <div class="lo-api-item">
8
- <div class="lo-item-title">编辑模式:</div>
9
- <div class="lo-item-opts">
10
- <a-switch v-model:checked="formApi.edit" checked-children="开" un-checked-children="关" />
11
- </div>
2
+ <div class="lo-content p-3">
3
+ <user-info-form />
4
+ <div class="lo-title">form API测试</div>
5
+ <div class="lo-ins">
6
+ <div class="lo-api" v-if="false">
7
+ <div class="lo-api-item">
8
+ <div class="lo-item-title">编辑模式:</div>
9
+ <div class="lo-item-opts">
10
+ <a-switch v-model:checked="formApi.edit" checked-children="开" un-checked-children="关" />
12
11
  </div>
13
12
  </div>
14
- <div class="lo-api">
15
- <div class="lo-api-item">
16
- <div class="lo-item-title">控件对象key值:</div>
17
- <div class="lo-item-opts">
18
- <a-input v-model:value="controlKey" placeholder="请输入控件key值" />
19
- </div>
13
+ </div>
14
+ <div class="lo-api" v-if="false">
15
+ <div class="lo-api-item">
16
+ <div class="lo-item-title">控件对象key值:</div>
17
+ <div class="lo-item-opts">
18
+ <a-input v-model:value="controlKey" placeholder="请输入控件key值" />
20
19
  </div>
21
- <div class="lo-api-item">
22
- <div class="lo-item-title">目标属性:</div>
23
- <div class="lo-item-opts">
24
- <a-select v-model:value="controlAttr" show-search :filter-option="filterOption" style="width: 150px">
25
- <a-select-option :value="''">请选择</a-select-option>
26
- <a-select-option v-for="(propName, i) of Object.keys(attribute)" :value="attribute[propName]" :key="i" placeholder="属性名称">
27
- {{ propName }}
28
- </a-select-option>
29
- </a-select>
30
- </div>
20
+ </div>
21
+ <div class="lo-api-item">
22
+ <div class="lo-item-title">目标属性:</div>
23
+ <div class="lo-item-opts">
24
+ <a-select v-model:value="controlAttr" show-search :filter-option="filterOption" style="width: 150px">
25
+ <a-select-option :value="''">请选择</a-select-option>
26
+ <a-select-option v-for="(propName, i) of Object.keys(attribute)" :value="attribute[propName]" :key="i" placeholder="属性名称">
27
+ {{ propName }}
28
+ </a-select-option>
29
+ </a-select>
31
30
  </div>
32
- <div class="lo-api-item">
33
- <div class="lo-item-title">设置值:</div>
34
- <div class="lo-item-opts">
35
- <a-input v-model:value="controlvalue" placeholder="相关值" />
36
- </div>
31
+ </div>
32
+ <div class="lo-api-item">
33
+ <div class="lo-item-title">设置值:</div>
34
+ <div class="lo-item-opts">
35
+ <a-input v-model:value="controlvalue" placeholder="相关值" />
37
36
  </div>
38
- <div class="lo-api-item">
39
- <div class="lo-item-title">读操作:</div>
40
- <div class="lo-item-opts">
41
- <a-button type="primary" class="ml-5" @click="getControl()">获取控件对象</a-button>
42
- <a-button type="primary" class="ml-5" @click="getControlEl()">获取控件dom对象</a-button>
43
- <a-button type="primary" class="ml-5" @click="getValue()">获取值</a-button>
44
- <a-button type="primary" class="ml-5" @click="getText()">获取文本</a-button>
45
- <a-button type="primary" class="ml-5" @click="getOptions()">获取可选项</a-button>
46
- <a-button type="primary" class="ml-5" @click="getValidate()">获取校验</a-button>
47
- <a-button type="primary" class="ml-5" @click="removeValidate()">移除校验</a-button>
48
- <a-button type="primary" class="ml-5" @click="getValidates()">获取校验集合</a-button>
49
- <a-button type="primary" class="ml-5" @click="refreshValidate()">校验指定控件</a-button>
50
- <a-button type="primary" class="ml-5" @click="validateReport()">校验表单</a-button>
51
- <a-button type="primary" class="ml-5" @click="validateTips()">校验表单并弹出提示</a-button>
52
- </div>
37
+ </div>
38
+ <div class="lo-api-item">
39
+ <div class="lo-item-title">读操作:</div>
40
+ <div class="lo-item-opts">
41
+ <a-button type="primary" class="ml-5" @click="getControl()">获取控件对象</a-button>
42
+ <a-button type="primary" class="ml-5" @click="getControlEl()">获取控件dom对象</a-button>
43
+ <a-button type="primary" class="ml-5" @click="getValue()">获取值</a-button>
44
+ <a-button type="primary" class="ml-5" @click="getText()">获取文本</a-button>
45
+ <a-button type="primary" class="ml-5" @click="getOptions()">获取可选项</a-button>
46
+ <a-button type="primary" class="ml-5" @click="getValidate()">获取校验</a-button>
47
+ <a-button type="primary" class="ml-5" @click="removeValidate()">移除校验</a-button>
48
+ <a-button type="primary" class="ml-5" @click="getValidates()">获取校验集合</a-button>
49
+ <a-button type="primary" class="ml-5" @click="refreshValidate()">校验指定控件</a-button>
50
+ <a-button type="primary" class="ml-5" @click="validateReport()">校验表单</a-button>
51
+ <a-button type="primary" class="ml-5" @click="validateTips()">校验表单并弹出提示</a-button>
53
52
  </div>
54
53
  </div>
55
- <div class="lo-api">
56
- <div class="lo-api-item">
57
- <div class="lo-item-title">写操作:</div>
58
- <div class="lo-item-opts">
59
- <a-button type="primary" class="ml-5" @click="setValue()">设置值</a-button>
60
- <a-button type="primary" class="ml-5" @click="setOptions()">设置可选项</a-button>
61
- <a-button type="primary" class="ml-5" @click="setAttribute()">设置常规属性</a-button>
62
- <a-button type="primary" class="ml-5" @click="setValidate()">设置校验</a-button>
63
- <div style="display: inline-block; margin: 0 10px 0 15px">|</div>
64
- <a-button type="primary" class="ml-5" @click="setFormData()">赋值整个表单</a-button>
65
- <a-button type="primary" class="ml-5" @click="setFormOldData()">赋值整个表单-新旧值对比</a-button>
66
- <a-button type="primary" class="ml-5" @click="resetValue()">重置整个表单</a-button>
67
- <a-button type="primary" class="ml-5" @click="refreshAndUpdateData()">刷新与更新整个表单</a-button>
68
- <a-button type="primary" class="ml-5" @click="resetFormValidateState()">重置表单校验状态</a-button>
69
- <div style="display: inline-block; margin: 0 10px 0 15px">|</div>
70
- <a-button type="primary" class="ml-5" @click="setFieldChangeHistory()">设置变更历史</a-button>
71
- <div style="display: inline-block; margin: 0 10px 0 15px">|</div>
72
- <a-button type="primary" class="ml-5" @click="setAutoCompleteOptions()">设置自动完成数据</a-button>
73
- <div style="display: inline-block; margin: 0 10px 0 15px">|</div>
74
- <a-button type="primary" class="ml-5" @click="setControl()">api方式新增控件对象</a-button>
75
- </div>
54
+ </div>
55
+ <div class="lo-api" v-if="false">
56
+ <div class="lo-api-item">
57
+ <div class="lo-item-title">写操作:</div>
58
+ <div class="lo-item-opts">
59
+ <a-button type="primary" class="ml-5" @click="setValue()">设置值</a-button>
60
+ <a-button type="primary" class="ml-5" @click="setOptions()">设置可选项</a-button>
61
+ <a-button type="primary" class="ml-5" @click="setAttribute()">设置常规属性</a-button>
62
+ <a-button type="primary" class="ml-5" @click="setValidate()">设置校验</a-button>
63
+ <div style="display: inline-block; margin: 0 10px 0 15px">|</div>
64
+ <a-button type="primary" class="ml-5" @click="setFormData()">赋值整个表单</a-button>
65
+ <a-button type="primary" class="ml-5" @click="setFormOldData()">赋值整个表单-新旧值对比</a-button>
66
+ <a-button type="primary" class="ml-5" @click="resetValue()">重置整个表单</a-button>
67
+ <a-button type="primary" class="ml-5" @click="refreshAndUpdateData()">刷新与更新整个表单</a-button>
68
+ <a-button type="primary" class="ml-5" @click="resetFormValidateState()">重置表单校验状态</a-button>
69
+ <div style="display: inline-block; margin: 0 10px 0 15px">|</div>
70
+ <a-button type="primary" class="ml-5" @click="setFieldChangeHistory()">设置变更历史</a-button>
71
+ <div style="display: inline-block; margin: 0 10px 0 15px">|</div>
72
+ <a-button type="primary" class="ml-5" @click="setAutoCompleteOptions()">设置自动完成数据</a-button>
73
+ <div style="display: inline-block; margin: 0 10px 0 15px">|</div>
74
+ <a-button type="primary" class="ml-5" @click="setControl()">api方式新增控件对象</a-button>
76
75
  </div>
77
76
  </div>
78
- <div class="lo-api">
79
- <div class="lo-api-item">
80
- <div class="lo-item-title">写操作:</div>
81
- <div class="lo-item-opts">
82
- <a-button type="primary" class="ml-5" @click="getAttribute()">获取常规属性</a-button>
83
- <a-button type="primary" class="ml-5" @click="setAttribute()">设置常规属性</a-button>
84
- </div>
77
+ </div>
78
+ <div class="lo-api" v-if="false">
79
+ <div class="lo-api-item">
80
+ <div class="lo-item-title">写操作:</div>
81
+ <div class="lo-item-opts">
82
+ <a-button type="primary" class="ml-5" @click="getAttribute()">获取常规属性</a-button>
83
+ <a-button type="primary" class="ml-5" @click="setAttribute()">设置常规属性</a-button>
85
84
  </div>
86
85
  </div>
87
- <div class="lo-api">
88
- <div class="lo-api-item">
89
- <div class="lo-item-title">自定义类型:</div>
90
- <div class="lo-item-opts">
91
- <a-input v-model:value="controlCustomType" placeholder="相关值" />
92
- </div>
86
+ </div>
87
+ <div class="lo-api" v-if="false">
88
+ <div class="lo-api-item">
89
+ <div class="lo-item-title">自定义类型:</div>
90
+ <div class="lo-item-opts">
91
+ <a-input v-model:value="controlCustomType" placeholder="相关值" />
93
92
  </div>
94
- <div class="lo-api-item">
95
- <div class="lo-item-title">操作:</div>
96
- <div class="lo-item-opts">
97
- <a-button type="primary" class="ml-5" @click="setFormatDisplayAndOutput()">设置自定义控件格式化显示和输出</a-button>
98
- |
99
- <a-button type="primary" class="ml-5" @click="submit()">提交表单显示</a-button>
100
- </div>
93
+ </div>
94
+ <div class="lo-api-item">
95
+ <div class="lo-item-title">操作:</div>
96
+ <div class="lo-item-opts">
97
+ <a-button type="primary" class="ml-5" @click="setFormatDisplayAndOutput()">设置自定义控件格式化显示和输出</a-button>
98
+ |
99
+ <a-button type="primary" class="ml-5" @click="submit()">提交表单显示</a-button>
101
100
  </div>
102
101
  </div>
103
- <div class="lo-input">
104
- <!--styleMode="credit-rd" :formId="'773549593606574080'"-->
105
- <dy-form v-if="showForm" :formId="'1153352233392410624'" v-model:edit="formApi.edit" :formApi="formApi" @change="onChange($event)" @click="onClick($event)" @focus="onFocus($event)" @blur="onBlur($event)" @addon-before="onAddonBeforeHandler($event)" @addon-after="onAddonAfterHandler($event)" @add-item="selectAddItem($event)">
106
- <template #combinationSelector="{ control, onChange }">
107
- <div class="lo-custom-control-box">
108
- <a-input v-model:value="control.formControl.value" @input="onChange(control.formControl)" v-if="control && control.formControl" />
109
- <!-- <a-input-number style="flex-grow: 1" v-model="control.formControl.value" :min="1" :max="100" @change="onChange(control)" />
102
+ </div>
103
+ <div class="lo-input">
104
+ <!--styleMode="credit-rd" :formId="'984119606230257664'"-->
105
+ <dy-form v-if="showForm" :formId="'984119606230257664'" v-model:edit="formApi.edit" :formApi="formApi" @change="onChange($event)" @click="onClick($event)" @focus="onFocus($event)" @blur="onBlur($event)" @addon-before="onAddonBeforeHandler($event)" @addon-after="onAddonAfterHandler($event)" @add-item="selectAddItem($event)">
106
+ <template #combinationSelector="{ control, onChange }">
107
+ <div class="lo-custom-control-box">
108
+ <a-input v-model:value="control.formControl.value" @input="onChange(control.formControl)" v-if="control && control.formControl" />
109
+ <!-- <a-input-number style="flex-grow: 1" v-model="control.formControl.value" :min="1" :max="100" @change="onChange(control)" />
110
110
  <a-select style="flex-basis: 100px; max-width: 100px">
111
111
  <a-select-option value="jack"> Jack </a-select-option>
112
112
  <a-select-option value="lucy"> Lucy </a-select-option>
113
113
  </a-select>-->
114
- </div>
115
- </template>
116
- <!--<template v-slot:input:prefix:testx1-1>¥</template>
114
+ </div>
115
+ </template>
116
+ <!--<template v-slot:input:prefix:testx1-1>¥</template>
117
117
  <template v-slot:input:suffix:testx1-1>RMB</template>
118
118
  <template v-slot:input:addonBefore:testx1-1>https://</template>
119
119
  <template v-slot:input:addonAfter:testx1-1>.cn</template>
120
120
  <template v-slot:select:suffixIcon:testx1-1-1>哇哈哈</template>-->
121
- <!--<template v-slot:select:suffixIcon:testx1-1-1>哇哈哈</template>-->
122
- <template v-slot:select:suffixIcon:productName>
123
- <div class="lo-multiple-select-suffix-icon" @click="handleMultiChoiceEmbeddedCustomization">
124
- <img :src="dropDownListSvg" />
125
- </div>
126
- </template>
127
- </dy-form>
128
- </div>
129
- <div class="lo-value">
130
- <span class="lo-title">输出: {{ formApi.formData }}</span>
131
- </div>
132
- <div>
133
- <pre>
121
+ <!--<template v-slot:select:suffixIcon:testx1-1-1>哇哈哈</template>-->
122
+ <template v-slot:select:suffixIcon:productName>
123
+ <div class="lo-multiple-select-suffix-icon" @click="handleMultiChoiceEmbeddedCustomization">
124
+ <img :src="dropDownListSvg" />
125
+ </div>
126
+ </template>
127
+ </dy-form>
128
+ </div>
129
+ <div class="lo-value" v-if="false">
130
+ <span class="lo-title">输出: {{ formApi.formData }}</span>
131
+ </div>
132
+ <div v-if="false">
133
+ <pre>
134
134
  {{ dictionaryFormatCollection.sysDictTreeDetailOptions }}
135
- </pre
136
- >
137
- </div>
135
+ </pre>
138
136
  </div>
139
137
  </div>
140
138
  </div>
@@ -152,9 +150,12 @@ import { DROP_DOWN_LIST_SVG_XML } from "./constants/encode-assets/svg";
152
150
  import { formTemplate } from "./constants/config/form-template.config";
153
151
  import { DictionaryFormatCollection, formToolsService } from "./services/form-tools.service";
154
152
  import { Options, Vue } from "vue-property-decorator";
153
+ import UserInfoForm from "@/UserInfoForm.vue";
154
+
155
155
  @Options({
156
156
  name: "vf-app",
157
157
  components: {
158
+ UserInfoForm,
158
159
  DyForm,
159
160
  [Switch.name]: Switch,
160
161
  [Button.name]: Button,
@@ -274,20 +275,13 @@ export default class App extends Vue {
274
275
  this.$formToolsService.init().then((res: FormRestfulResponse) => {
275
276
  this.showForm = true;
276
277
  setTimeout(() => {
277
- this.formApi.setFormData({ phoneNo: "138****0000", phoneNoEnc: "13800000000" });
278
+ this.formApi.setFormData({ phoneNo: "138****0000", phoneNoEnc: "13800000000", appIcon: "2021" });
278
279
  }, 1000);
279
280
  // this.formApi.setAttribute("testx1-1-1", Attribute.TextFold, true);
280
281
  // this.formApi.setAttribute("testx1-1-1", Attribute.HiddenDropdown, true);
281
282
  });
282
283
  // this.dictLocalcConvert();
283
284
  }
284
-
285
- created() {
286
- setTimeout(() => {
287
- // this.formApi.setFormData({ liubo: "1000w", email: "100@dhcc.com.cn" });
288
- }, 2000);
289
- }
290
-
291
285
  onChange(e: any): void {
292
286
  if (e instanceof FormControl) {
293
287
  e.formControl = e;
@@ -0,0 +1,177 @@
1
+ <template>
2
+ <div class="lo-form-container lo-form-theme-default">
3
+ <a-form :model="formState" class="ant-form ant-form-horizontal w-100 lo-empty-layout-container lo-form-layout-root" layout="horizontal" :style="formStyle">
4
+ <!-- 应用名称 + 英文名称 -->
5
+ <div class="lo-control-container">
6
+ <div class="lo-control-box">
7
+ <a-form-item required label="应用名称">
8
+ <a-input v-model:value="formState.appName" placeholder="请输入应用名称" />
9
+ </a-form-item>
10
+ </div>
11
+ </div>
12
+ <div class="lo-control-container">
13
+ <div class="lo-control-box">
14
+ <a-form-item required label="英文名称">
15
+ <a-input v-model:value="formState.englishName" placeholder="请输入英文名称" />
16
+ </a-form-item>
17
+ </div>
18
+ </div>
19
+
20
+ <!-- 应用分类 + 业务分类 -->
21
+ <div class="lo-control-container">
22
+ <div class="lo-control-box">
23
+ <a-form-item required label="应用分类">
24
+ <a-select v-model:value="formState.appCategory" placeholder="请选择">
25
+ <a-select-option value="category1">分类1</a-select-option>
26
+ <a-select-option value="category2">分类2</a-select-option>
27
+ </a-select>
28
+ </a-form-item>
29
+ </div>
30
+ </div>
31
+ <div class="lo-control-container">
32
+ <div class="lo-control-box">
33
+ <a-form-item required label="业务分类">
34
+ <a-select v-model:value="formState.businessCategory" placeholder="请选择" disabled>
35
+ <a-select-option value="trust">信托</a-select-option>
36
+ </a-select>
37
+ </a-form-item>
38
+ </div>
39
+ </div>
40
+
41
+ <!-- 是否管理菜单 + 是否管理按钮 -->
42
+ <div class="lo-control-container">
43
+ <div class="lo-control-box">
44
+ <a-form-item required label="是否管理菜单">
45
+ <a-radio-group v-model:value="formState.manageMenu">
46
+ <a-radio value="yes">是</a-radio>
47
+ <a-radio value="no">否</a-radio>
48
+ </a-radio-group>
49
+ </a-form-item>
50
+ </div>
51
+ </div>
52
+ <div class="lo-control-container">
53
+ <div class="lo-control-box">
54
+ <a-form-item required label="是否管理按钮">
55
+ <a-radio-group v-model:value="formState.manageButton">
56
+ <a-radio value="yes">是</a-radio>
57
+ <a-radio value="no">否</a-radio>
58
+ </a-radio-group>
59
+ </a-form-item>
60
+ </div>
61
+ </div>
62
+
63
+ <!-- 挂载规则 + 部署地址 -->
64
+ <div class="lo-control-container">
65
+ <div class="lo-control-box">
66
+ <a-form-item required label="挂载规则">
67
+ <a-input v-model:value="formState.mountRule" placeholder="请输入挂载规则" />
68
+ </a-form-item>
69
+ </div>
70
+ </div>
71
+ <div class="lo-control-container">
72
+ <div class="lo-control-box">
73
+ <a-form-item required label="部署地址">
74
+ <a-input v-model:value="formState.deployUrl" placeholder="请输入部署地址" />
75
+ </a-form-item>
76
+ </div>
77
+ </div>
78
+
79
+ <!-- 首页地址 + 应用图标 -->
80
+ <div class="lo-control-container">
81
+ <div class="lo-control-box">
82
+ <a-form-item required label="首页地址">
83
+ <a-input v-model:value="formState.homeUrl" placeholder="请输入首页地址" />
84
+ </a-form-item>
85
+ </div>
86
+ </div>
87
+ <div class="lo-control-container">
88
+ <div class="lo-control-box">
89
+ <a-form-item required label="应用图标">
90
+ <a-date-picker v-model:value="formState.appIcon" placeholder="请选择日期" style="width: 100%" />
91
+ </a-form-item>
92
+ </div>
93
+ </div>
94
+
95
+ <!-- 使用状态 -->
96
+ <div class="lo-control-container">
97
+ <div class="lo-control-box">
98
+ <a-form-item required label="使用状态">
99
+ <a-radio-group v-model:value="formState.status">
100
+ <a-radio value="valid">有效</a-radio>
101
+ <a-radio value="invalid">无效</a-radio>
102
+ </a-radio-group>
103
+ </a-form-item>
104
+ </div>
105
+ </div>
106
+ <div class="lo-control-container">
107
+ <div class="lo-control-box"></div>
108
+ </div>
109
+
110
+ <!-- 备注(跨两列) -->
111
+ <div class="lo-control-container" style="grid-column: span 2">
112
+ <div class="lo-control-box">
113
+ <a-form-item label="备注">
114
+ <a-textarea v-model:value="formState.remark" placeholder="请输入备注" :rows="3" :maxlength="150" show-count />
115
+ </a-form-item>
116
+ </div>
117
+ </div>
118
+
119
+ <!-- 按钮区域 -->
120
+ <div class="lo-form-actions">
121
+ <a-button type="primary">保存</a-button>
122
+ <a-button>取消</a-button>
123
+ </div>
124
+ </a-form>
125
+ </div>
126
+ </template>
127
+
128
+ <script setup lang="ts">
129
+ import { reactive } from "vue";
130
+ import { Form as AForm, FormItem as AFormItem } from "ant-design-vue";
131
+ import { Input as AInput } from "ant-design-vue";
132
+ import { Select as ASelect, SelectOption as ASelectOption } from "ant-design-vue";
133
+ import { DatePicker as ADatePicker } from "ant-design-vue";
134
+ import { Radio as ARadio, RadioGroup as ARadioGroup } from "ant-design-vue";
135
+ import { Textarea as ATextarea } from "ant-design-vue";
136
+ import { Button as AButton } from "ant-design-vue";
137
+ import type { Dayjs } from "dayjs";
138
+
139
+ // Grid 布局配置
140
+ const formStyle = "grid-template-columns: 12fr 12fr;";
141
+
142
+ interface FormState {
143
+ appName: string;
144
+ englishName: string;
145
+ appCategory: string;
146
+ businessCategory: string;
147
+ manageMenu: string;
148
+ manageButton: string;
149
+ mountRule: string;
150
+ deployUrl: string;
151
+ homeUrl: string;
152
+ appIcon: Dayjs | null;
153
+ status: string;
154
+ remark: string;
155
+ }
156
+
157
+ const formState = reactive<FormState>({
158
+ appName: "",
159
+ englishName: "",
160
+ appCategory: "",
161
+ businessCategory: "trust",
162
+ manageMenu: "",
163
+ manageButton: "",
164
+ mountRule: "",
165
+ deployUrl: "",
166
+ homeUrl: "",
167
+ appIcon: null,
168
+ status: "valid",
169
+ remark: "",
170
+ });
171
+ </script>
172
+
173
+ <style scoped lang="scss">
174
+ .lo-form-container.lo-form-theme-default {
175
+ @import "./styles/theme2";
176
+ }
177
+ </style>
@@ -884,7 +884,6 @@ export default class DvFormLayout extends Vue {
884
884
  */
885
885
  get treeSelectOptions(): any[] {
886
886
  const value: any[] = this.options;
887
- console.log(value);
888
887
  if (value && value.length > 0) {
889
888
  const items = formBeanUtilsService.copy(value);
890
889
  this.treeSelectRecursion(items);
@@ -1565,7 +1564,7 @@ export default class DvFormLayout extends Vue {
1565
1564
  const params: any = { ...formApi.desParams };
1566
1565
  params.ciphertext = encData; // 密文
1567
1566
  params.desensField = formControl.key; // 脱敏的字段
1568
- console.error(params);
1567
+ params.desensFieldNm = formControl.controlAttr?.formFieldDescribe; // 脱敏的字段的中文label
1569
1568
  this.getFieldPlaintext(path, params).then((res: any) => {
1570
1569
  if (res.code === 1) {
1571
1570
  formControl.value = res.data;
@@ -0,0 +1,4 @@
1
+ export * from "./form/DvForm.vue";
2
+ export * from "./form/DvFormLayout.vue";
3
+ export * from "./form/StretchText.vue";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,33 @@
1
+ const formTemplate = {
2
+ formId: "1",
3
+ appId: "1",
4
+ domainClassId: "",
5
+ objectId: "1",
6
+ formType: "1",
7
+ formName: "test",
8
+ formAlias: "test",
9
+ formDescribe: "",
10
+ useState: "1",
11
+ desDomainClass: null,
12
+ desFormLayouts: [
13
+ {
14
+ layoutId: "1",
15
+ formId: "1",
16
+ parentLayoutId: "",
17
+ layoutName: "",
18
+ layoutType: "101",
19
+ gridSpace: 1,
20
+ gridColumnConfig: '[{"value":12,"order":1},{"value":12,"order":2}]',
21
+ gridLateralArrangement: "1",
22
+ gridVerticalArrangement: "1",
23
+ layoutOrder: 1,
24
+ labelSpan: "",
25
+ controlSpan: "",
26
+ subDesFormLayout: null,
27
+ desFormControls: [],
28
+ },
29
+ ],
30
+ desBusObject: null,
31
+ };
32
+ export { formTemplate };
33
+ //# sourceMappingURL=form-template.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-template.config.js","sourceRoot":"","sources":["form-template.config.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG;IACnB,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,GAAG;IACV,aAAa,EAAE,EAAE;IACjB,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,MAAM;IAChB,SAAS,EAAE,MAAM;IACjB,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE,GAAG;IACb,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE;QACd;YACE,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,GAAG;YACX,cAAc,EAAE,EAAE;YAClB,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,CAAC;YACZ,gBAAgB,EAAE,iDAAiD;YACnE,sBAAsB,EAAE,GAAG;YAC3B,uBAAuB,EAAE,GAAG;YAC5B,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,EAAE;YACf,gBAAgB,EAAE,IAAI;YACtB,eAAe,EAAE,EAAE;SACpB;KACF;IACD,YAAY,EAAE,IAAI;CACnB,CAAC;AACF,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ const DEFAULT_FORM_FILE_NAME = "form-design.json";
2
+ const DEFAULT_DICT_FILE_NAME = "dict.json";
3
+ const DEFAULT_DICT_URL = "./resources/json/" + DEFAULT_DICT_FILE_NAME;
4
+ export { DEFAULT_FORM_FILE_NAME, DEFAULT_DICT_FILE_NAME, DEFAULT_DICT_URL };
5
+ //# sourceMappingURL=form.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.config.js","sourceRoot":"","sources":["form.config.ts"],"names":[],"mappings":"AAAA,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAClD,MAAM,sBAAsB,GAAG,WAAW,CAAC;AAC3C,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,sBAAsB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ const NAME = "vue-lo";
2
+ const STORE_NAME = "form:";
3
+ const DICT_STORE_NAME = "dict:";
4
+ export { NAME, STORE_NAME, DICT_STORE_NAME };
5
+ //# sourceMappingURL=storage.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.config.js","sourceRoot":"","sources":["storage.config.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,QAAQ,CAAC;AACtB,MAAM,UAAU,GAAG,OAAO,CAAC;AAC3B,MAAM,eAAe,GAAG,OAAO,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.js","sourceRoot":"","sources":["icons.ts"],"names":[],"mappings":""}