star-horse-lowcode 2.7.62 → 2.7.65

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 (221) hide show
  1. package/.env.development +3 -0
  2. package/.env.production +3 -0
  3. package/.eslintrc-auto-import.json +77 -0
  4. package/.gitignore +27 -0
  5. package/.idea/.gitignore +5 -0
  6. package/.idea/MarsCodeWorkspaceAppSettings.xml +6 -0
  7. package/.idea/inspectionProfiles/Project_Default.xml +7 -0
  8. package/.idea/modules.xml +8 -0
  9. package/.idea/testcode.iml +12 -0
  10. package/.idea/vcs.xml +6 -0
  11. package/.idea/watcherTasks.xml +4 -0
  12. package/.idea/workspace.xml +207 -0
  13. package/.npmignore +21 -0
  14. package/.prettierignore +26 -0
  15. package/README.md +2 -0
  16. package/auto-imports.d.ts +137 -0
  17. package/components.d.ts +189 -0
  18. package/dist/assets/index.css +1 -1
  19. package/dist/index.es.js +941 -720
  20. package/dist/types/index.d.ts +8 -8
  21. package/eslint.config.js +37 -0
  22. package/index.html +14 -0
  23. package/package-lock.json +8276 -0
  24. package/package.json +6 -6
  25. package/prettier.config.js +20 -0
  26. package/public/logo.svg +660 -0
  27. package/src/App.vue +11 -0
  28. package/src/api/date_utils.ts +219 -0
  29. package/src/api/finger_utils.ts +71 -0
  30. package/src/api/form_utils.ts +281 -0
  31. package/src/api/jquery.min.js +2 -0
  32. package/src/api/pcas-code.json +1 -0
  33. package/src/api/settings.ts +81 -0
  34. package/src/api/star_horse_apis.ts +196 -0
  35. package/src/api/star_horse_utils.ts +797 -0
  36. package/src/api/system.ts +351 -0
  37. package/src/api/user_func.ts +147 -0
  38. package/src/api/valid_utils.ts +165 -0
  39. package/src/assets/css/index.scss +908 -0
  40. package/src/assets/icons.css +574 -0
  41. package/src/assets/star-horse-icons.woff +0 -0
  42. package/src/components/comp/ShDynamicForm.vue +160 -0
  43. package/src/components/comp/ShForm.vue +30 -0
  44. package/src/components/comp/ShTableListColumn.vue +61 -0
  45. package/src/components/comp/StarHorseDataSelector.vue +139 -0
  46. package/src/components/comp/StarHorseDataView.vue +110 -0
  47. package/src/components/comp/StarHorseDataViewItems.vue +61 -0
  48. package/src/components/comp/StarHorseDataViewTable.vue +102 -0
  49. package/src/components/comp/StarHorseDialog.vue +383 -0
  50. package/src/components/comp/StarHorseDraggable.vue +401 -0
  51. package/src/components/comp/StarHorseForm.vue +458 -0
  52. package/src/components/comp/StarHorseFormItem.vue +82 -0
  53. package/src/components/comp/StarHorseFormList.vue +516 -0
  54. package/src/components/comp/StarHorseFormTable.vue +56 -0
  55. package/src/components/comp/StarHorseIcon.vue +76 -0
  56. package/src/components/comp/StarHorseItem.vue +302 -0
  57. package/src/components/comp/StarHorseJsonEditor.vue +115 -0
  58. package/src/components/comp/StarHorsePopover.vue +66 -0
  59. package/src/components/comp/StarHorseSearchComp.vue +253 -0
  60. package/src/components/comp/StarHorseStaticTable.vue +395 -0
  61. package/src/components/comp/StarHorseTableColumn.vue +249 -0
  62. package/src/components/comp/StarHorseTableComp.vue +1193 -0
  63. package/src/components/comp/StarHorseTableViewColumn.vue +61 -0
  64. package/src/components/comp/StarHorseTree.vue +494 -0
  65. package/src/components/comp/index.ts +22 -0
  66. package/src/components/comp/items/UTableColumn.vue +65 -0
  67. package/src/components/comp/items/boxItem.vue +98 -0
  68. package/src/components/comp/items/callitem.ts +9 -0
  69. package/src/components/comp/items/cardItem.vue +152 -0
  70. package/src/components/comp/items/collapseItem.vue +134 -0
  71. package/src/components/comp/items/dytableItem.vue +135 -0
  72. package/src/components/comp/items/otherItem.vue +65 -0
  73. package/src/components/comp/items/tabItem.vue +155 -0
  74. package/src/components/comp/items/tabPanelItem.vue +110 -0
  75. package/src/components/comp/items/tableColumn.vue +129 -0
  76. package/src/components/comp/items/tableItem.vue +97 -0
  77. package/src/components/comp/items/tablebtn.vue +158 -0
  78. package/src/components/comp/items/viewBoxItem.vue +55 -0
  79. package/src/components/comp/items/viewCardItem.vue +47 -0
  80. package/src/components/comp/items/viewCollapseItem.vue +71 -0
  81. package/src/components/comp/items/viewDytableItem.vue +77 -0
  82. package/src/components/comp/items/viewOtherItem.vue +55 -0
  83. package/src/components/comp/items/viewTabItem.vue +77 -0
  84. package/src/components/comp/items/viewTabPanelItem.vue +54 -0
  85. package/src/components/comp/items/viewTableItem.vue +74 -0
  86. package/src/components/comp/selfcomp.ts +9 -0
  87. package/src/components/comp/utils/DataPicker.vue +302 -0
  88. package/src/components/comp/utils/DataTag.vue +51 -0
  89. package/src/components/cron/Crontab-Day.vue +230 -0
  90. package/src/components/cron/Crontab-Hour.vue +165 -0
  91. package/src/components/cron/Crontab-Min.vue +166 -0
  92. package/src/components/cron/Crontab-Month.vue +166 -0
  93. package/src/components/cron/Crontab-Result.vue +615 -0
  94. package/src/components/cron/Crontab-Second.vue +185 -0
  95. package/src/components/cron/Crontab-Week.vue +208 -0
  96. package/src/components/cron/Crontab-Year.vue +183 -0
  97. package/src/components/cron/Crontab.vue +474 -0
  98. package/src/components/enums/ModuleEnums.ts +10 -0
  99. package/src/components/enums/ServiceEnums.ts +18 -0
  100. package/src/components/formcomp/container/box-container.vue +162 -0
  101. package/src/components/formcomp/container/callitem.ts +9 -0
  102. package/src/components/formcomp/container/card-container.vue +170 -0
  103. package/src/components/formcomp/container/collapse-container.vue +133 -0
  104. package/src/components/formcomp/container/dytable-col.vue +448 -0
  105. package/src/components/formcomp/container/dytable-container.vue +57 -0
  106. package/src/components/formcomp/container/dytableUtils.ts +358 -0
  107. package/src/components/formcomp/container/group-box-container.vue +331 -0
  108. package/src/components/formcomp/container/index.ts +6 -0
  109. package/src/components/formcomp/container/tab-container.vue +153 -0
  110. package/src/components/formcomp/container/table-container.vue +249 -0
  111. package/src/components/formcomp/items/allitem.ts +9 -0
  112. package/src/components/formcomp/items/area-item.vue +116 -0
  113. package/src/components/formcomp/items/audio-item.vue +163 -0
  114. package/src/components/formcomp/items/autocomplete-item.vue +118 -0
  115. package/src/components/formcomp/items/barcode-item.vue +87 -0
  116. package/src/components/formcomp/items/base-json-item.vue +207 -0
  117. package/src/components/formcomp/items/button-item.vue +228 -0
  118. package/src/components/formcomp/items/cascade-item.vue +113 -0
  119. package/src/components/formcomp/items/checkbox-item.vue +97 -0
  120. package/src/components/formcomp/items/color-item.vue +70 -0
  121. package/src/components/formcomp/items/cron-item.vue +115 -0
  122. package/src/components/formcomp/items/datetime-item.vue +99 -0
  123. package/src/components/formcomp/items/depart-item.vue +51 -0
  124. package/src/components/formcomp/items/dialog-input-item.vue +207 -0
  125. package/src/components/formcomp/items/divider-item.vue +66 -0
  126. package/src/components/formcomp/items/html-item.vue +65 -0
  127. package/src/components/formcomp/items/htmleditor-item.vue +104 -0
  128. package/src/components/formcomp/items/icon-item.vue +195 -0
  129. package/src/components/formcomp/items/image-item.vue +247 -0
  130. package/src/components/formcomp/items/index.ts +44 -0
  131. package/src/components/formcomp/items/input-item.vue +150 -0
  132. package/src/components/formcomp/items/json-array-item.vue +67 -0
  133. package/src/components/formcomp/items/json-item.vue +66 -0
  134. package/src/components/formcomp/items/markdown-item.vue +77 -0
  135. package/src/components/formcomp/items/number-item.vue +94 -0
  136. package/src/components/formcomp/items/number-range-item.vue +278 -0
  137. package/src/components/formcomp/items/page-select-item.vue +407 -0
  138. package/src/components/formcomp/items/password-item.vue +71 -0
  139. package/src/components/formcomp/items/qrcode-item.vue +84 -0
  140. package/src/components/formcomp/items/radio-item.vue +112 -0
  141. package/src/components/formcomp/items/rate-item.vue +68 -0
  142. package/src/components/formcomp/items/select-item.vue +133 -0
  143. package/src/components/formcomp/items/signature-item.vue +216 -0
  144. package/src/components/formcomp/items/slider-item.vue +68 -0
  145. package/src/components/formcomp/items/starhorse-form-item.vue +334 -0
  146. package/src/components/formcomp/items/switch-item.vue +77 -0
  147. package/src/components/formcomp/items/tag-item.vue +77 -0
  148. package/src/components/formcomp/items/text-item.vue +75 -0
  149. package/src/components/formcomp/items/textarea-item.vue +85 -0
  150. package/src/components/formcomp/items/time-item.vue +77 -0
  151. package/src/components/formcomp/items/time-picker-item.vue +74 -0
  152. package/src/components/formcomp/items/transfer-item.vue +93 -0
  153. package/src/components/formcomp/items/tselect-item.vue +121 -0
  154. package/src/components/formcomp/items/unknown-item.vue +51 -0
  155. package/src/components/formcomp/items/upload-item.vue +189 -0
  156. package/src/components/formcomp/items/user-item.vue +177 -0
  157. package/src/components/formcomp/items/usercomp-item.vue +85 -0
  158. package/src/components/formcomp/items/view-markdown-item.vue +77 -0
  159. package/src/components/formcomp/utils/EditDataDialog.vue +67 -0
  160. package/src/components/formcomp/utils/FieldList.vue +125 -0
  161. package/src/components/formcomp/utils/ItemRelationEventUtils.ts +284 -0
  162. package/src/components/help.vue +31 -0
  163. package/src/components/menu/MenuItem.vue +95 -0
  164. package/src/components/menu/SubMenu.vue +68 -0
  165. package/src/components/menu/SubSystemMenu.vue +142 -0
  166. package/src/components/register.ts +24 -0
  167. package/src/components/system/ContentMenu.vue +260 -0
  168. package/src/components/system/StarHorseButtonList.vue +344 -0
  169. package/src/components/system/StarHorseMenu.vue +97 -0
  170. package/src/components/system/StarHorseSvg.vue +62 -0
  171. package/src/components/system/SystemComp.ts +9 -0
  172. package/src/components/system/index.ts +4 -0
  173. package/src/components/types/ApiUrls.ts +168 -0
  174. package/src/components/types/BtnAction.ts +51 -0
  175. package/src/components/types/BtnAuth.ts +43 -0
  176. package/src/components/types/CompInfo.ts +81 -0
  177. package/src/components/types/DialogProps.ts +55 -0
  178. package/src/components/types/DyCompField.ts +23 -0
  179. package/src/components/types/DynamicNode.ts +42 -0
  180. package/src/components/types/MenusInfo.ts +45 -0
  181. package/src/components/types/PageFieldInfo.ts +530 -0
  182. package/src/components/types/PageProps.ts +25 -0
  183. package/src/components/types/Params.ts +93 -0
  184. package/src/components/types/RuleType.ts +10 -0
  185. package/src/components/types/SearchProps.ts +42 -0
  186. package/src/components/types/ShortKey.ts +30 -0
  187. package/src/components/types/StarHorseType.ts +18 -0
  188. package/src/components/types/index.ts +15 -0
  189. package/src/config/element.ts +15 -0
  190. package/src/config/styles.ts +4 -0
  191. package/src/index.ts +98 -0
  192. package/src/install.ts +33 -0
  193. package/src/lang/en_US.ts +81 -0
  194. package/src/lang/index.ts +35 -0
  195. package/src/lang/zh_CN.ts +84 -0
  196. package/src/main.ts +57 -0
  197. package/src/plugins/AblesPlugin.ts +618 -0
  198. package/src/plugins/registerCompPlugin.ts +15 -0
  199. package/src/sample/test.vue +9 -0
  200. package/src/store/ButtonPermission.ts +101 -0
  201. package/src/store/ConsumerView.ts +52 -0
  202. package/src/store/ContinusConfig.ts +78 -0
  203. package/src/store/CopyerOperation.ts +74 -0
  204. package/src/store/DesignForm.ts +481 -0
  205. package/src/store/DesignPage.ts +59 -0
  206. package/src/store/DynamicForm.ts +241 -0
  207. package/src/store/GlobalConfig.ts +90 -0
  208. package/src/store/SelfOperation.ts +95 -0
  209. package/src/store/UserInfo.ts +88 -0
  210. package/src/store/index.ts +6 -0
  211. package/src/theme/localStorge.ts +16 -0
  212. package/src/theme/theme.ts +27 -0
  213. package/src/utils/FieldOperationUtils.ts +91 -0
  214. package/src/utils/auth.ts +83 -0
  215. package/src/utils/message.ts +69 -0
  216. package/src/utils/preview.ts +125 -0
  217. package/tsconfig.json +39 -0
  218. package/tsconfig.node.json +10 -0
  219. package/vite-env.d.ts +16 -0
  220. package/vite.config.ts +162 -0
  221. package/yarn.lock +4627 -0
@@ -0,0 +1,68 @@
1
+ <template>
2
+ <starhorse-form-item
3
+ :showFormItem="showFormItem"
4
+ :isDesign="isDesign"
5
+ :disabled="disabled"
6
+ :bareFlag="bareFlag"
7
+ :formItem="field"
8
+ :parentField="parentField"
9
+ >
10
+ <el-rate
11
+ :fid="field.fieldName"
12
+ v-bind="field.preps"
13
+ :disabled="checkIsDisabled(props)"
14
+ @change="itemAction"
15
+ v-model="formData[field.fieldName]"
16
+ />
17
+ </starhorse-form-item>
18
+ </template>
19
+ <script setup lang="ts">
20
+ import { onMounted, PropType } from "vue";
21
+ import {
22
+ allAction,
23
+ checkIsDisabled,
24
+ } from "@/components/formcomp/utils/ItemRelationEventUtils";
25
+
26
+ const props = defineProps({
27
+ isDesign: {
28
+ type: Boolean,
29
+ default: false,
30
+ },
31
+ disabled: {
32
+ type: Boolean,
33
+ default: false,
34
+ },
35
+ showFormItem: {
36
+ type: Boolean,
37
+ default: false,
38
+ },
39
+ bareFlag: {
40
+ type: Boolean,
41
+ default: false,
42
+ },
43
+ isSearch: {
44
+ type: Boolean,
45
+ default: false,
46
+ },
47
+ field: {
48
+ type: Object as PropType<any>,
49
+ required: true,
50
+ },
51
+ parentField: {
52
+ type: Object as PropType<any>,
53
+ },
54
+ formInfo: {
55
+ type: Object as PropType<any>,
56
+ },
57
+ });
58
+ const emits = defineEmits(["selfFunc", "selectItem"]);
59
+ const formData = defineModel("formData");
60
+
61
+ const itemAction = () => {
62
+ allAction(props, emits, formData, "change");
63
+ };
64
+ onMounted(() => {
65
+ allAction(props, emits, formData, "change", true);
66
+ });
67
+ </script>
68
+ <style scoped></style>
@@ -0,0 +1,133 @@
1
+ <template>
2
+ <starhorse-form-item
3
+ :showFormItem="showFormItem"
4
+ :isDesign="isDesign"
5
+ :disabled="disabled"
6
+ :bareFlag="bareFlag"
7
+ :formItem="field"
8
+ :parentField="parentField"
9
+ >
10
+ <el-select
11
+ :fid="field.fieldName"
12
+ :disabled="checkIsDisabled(props)"
13
+ v-bind="field.preps"
14
+ :remote-method="remoteMethod"
15
+ v-on="getDynamicEvents(props, itemAction)"
16
+ v-model="formData[field.fieldName]"
17
+ >
18
+ <el-option
19
+ :disabled="items['disabled']"
20
+ :label="items[field.preps?.props?.label || 'name']"
21
+ :value="items[field.preps?.props?.value || 'value']"
22
+ :key="items[field.preps?.props?.value || 'value']"
23
+ v-for="items in field.preps?.values"
24
+ />
25
+ </el-select>
26
+ </starhorse-form-item>
27
+ </template>
28
+ <script setup lang="ts">
29
+ import { onMounted, PropType, watch } from "vue";
30
+ import {
31
+ compDynamicData,
32
+ createFilter,
33
+ dynamicUrlOperation,
34
+ } from "@/api/star_horse_utils";
35
+ import { SearchParams } from "@/components/types/Params";
36
+ import {
37
+ allAction,
38
+ checkIsDisabled,
39
+ initCompCallEvent,
40
+ } from "@/components/formcomp/utils/ItemRelationEventUtils";
41
+ import { getDynamicEvents } from "@/api/system";
42
+
43
+ const props = defineProps({
44
+ isDesign: {
45
+ type: Boolean,
46
+ default: false,
47
+ },
48
+ disabled: {
49
+ type: Boolean,
50
+ default: false,
51
+ },
52
+ showFormItem: {
53
+ type: Boolean,
54
+ default: false,
55
+ },
56
+ bareFlag: {
57
+ type: Boolean,
58
+ default: false,
59
+ },
60
+ isSearch: {
61
+ type: Boolean,
62
+ default: false,
63
+ },
64
+ field: {
65
+ type: Object as PropType<any>,
66
+ required: true,
67
+ },
68
+ parentField: {
69
+ type: Object as PropType<any>,
70
+ },
71
+ formInfo: {
72
+ type: Object as PropType<any>,
73
+ },
74
+ });
75
+ const emits = defineEmits(["selfFunc", "selectItem"]);
76
+ const formData = defineModel("formData");
77
+ const itemAction = (prep: any) => {
78
+ allAction(props, emits, formData, prep);
79
+ };
80
+ /**
81
+ * 动态获取数据
82
+ */
83
+ const initData = async () => {
84
+ const dataa = await compDynamicData(props.field);
85
+ if (dataa?.length) {
86
+ props.field.preps["values"] = dataa;
87
+ }
88
+ };
89
+ const remoteMethod = async (queryString: string) => {
90
+ let temp = props.field.preps;
91
+ let dataSource = temp["dataSource"];
92
+ if (dataSource == "url") {
93
+ let searchParams: SearchParams[] = [];
94
+ searchParams.push({
95
+ propertyName: temp["selectLabel"],
96
+ value: queryString,
97
+ operation: "lk",
98
+ });
99
+ temp["values"] = await dynamicUrlOperation(temp, searchParams);
100
+ } else {
101
+ temp["values"] = queryString
102
+ ? temp["values"]?.filter(createFilter(queryString))
103
+ : temp["values"];
104
+ }
105
+ };
106
+ onMounted(() => {
107
+ if (!props.field.preps) {
108
+ props.field.preps = {};
109
+ }
110
+ props.field.preps["remote"] =
111
+ props.field.preps["remote"] || props.field.preps["dataSource"] == "url";
112
+ props.field.preps["filterable"] = true;
113
+ props.field.preps["collapseTags"] = true;
114
+ initData();
115
+ initCompCallEvent(props, emits, formData);
116
+ });
117
+ watch(
118
+ () => formData.value[props.field.fieldName + "OptionList"],
119
+ (val) => {
120
+ if (val?.length > 0) {
121
+ props.field.preps["values"] = val;
122
+ }
123
+ },
124
+ {
125
+ immediate: true,
126
+ },
127
+ );
128
+ </script>
129
+ <style lang="scss" scoped>
130
+ .el-select {
131
+ width: 100%;
132
+ }
133
+ </style>
@@ -0,0 +1,216 @@
1
+ <script setup lang="ts">
2
+ import { nextTick, onMounted, onUpdated, PropType, ref, shallowRef } from "vue";
3
+ import SmoothSignature from "smooth-signature";
4
+ import { warning } from "@/utils/message";
5
+ import StarHorseIcon from "@/components/comp/StarHorseIcon.vue";
6
+ import StarHorseDialog from "@/components/comp/StarHorseDialog.vue";
7
+
8
+ defineProps({
9
+ isDesign: {
10
+ type: Boolean,
11
+ default: false,
12
+ },
13
+ disabled: {
14
+ type: Boolean,
15
+ default: false,
16
+ },
17
+ showFormItem: {
18
+ type: Boolean,
19
+ default: false,
20
+ },
21
+ bareFlag: {
22
+ type: Boolean,
23
+ default: false,
24
+ },
25
+ isSearch: {
26
+ type: Boolean,
27
+ default: false,
28
+ },
29
+ field: {
30
+ type: Object as PropType<any>,
31
+ required: true,
32
+ },
33
+ parentField: {
34
+ type: Object as PropType<any>,
35
+ },
36
+ formInfo: {
37
+ type: Object as PropType<any>,
38
+ },
39
+ });
40
+ const emits = defineEmits(["selfFunc", "selectItem"]);
41
+ // const formData = defineModel("formData");
42
+ let previewDialog = shallowRef<boolean>(false);
43
+ let signature = ref<SmoothSignature>(null);
44
+ // 明确声明 ref 类型为 HTMLCanvasElement 或 null
45
+ const signatureCanvas = ref<any>(null);
46
+ const options = {
47
+ width: Math.min(window.innerWidth, 1000),
48
+ height: 600,
49
+ minWidth: 4,
50
+ maxWidth: 12,
51
+ // color: '#1890ff',
52
+ bgColor: "#f6f6f6",
53
+ };
54
+ const init = async () => {
55
+ await nextTick(() => {
56
+ if (!signature.value && signatureCanvas.value) {
57
+ signature.value = new SmoothSignature(signatureCanvas.value, options);
58
+ }
59
+ });
60
+ };
61
+ const clear = (evt: MouseEvent) => {
62
+ evt && evt.defaultPrevented;
63
+ signature.value && signature.value.clear();
64
+ };
65
+ const undo = (evt: MouseEvent) => {
66
+ evt && evt.defaultPrevented;
67
+ signature.value && signature.value.undo();
68
+ };
69
+
70
+ const handleColor = (evt: MouseEvent) => {
71
+ evt && evt.defaultPrevented;
72
+ signature.value.color = "#" + Math.random().toString(16).slice(-6);
73
+ };
74
+ const handlePreview = (evt: MouseEvent) => {
75
+ evt && evt.defaultPrevented;
76
+ const isEmpty = signature.value.isEmpty();
77
+ if (isEmpty) {
78
+ warning("请先签名");
79
+ return;
80
+ }
81
+ previewDialog.value = true;
82
+ // const pngUrl = signature.value.getPNG();
83
+ // imagesPreview(pngUrl);
84
+ // window.previewImage(pngUrl);
85
+ };
86
+ onMounted(() => {
87
+ init();
88
+ });
89
+ onUpdated(() => {
90
+ init();
91
+ });
92
+ </script>
93
+ <template>
94
+ <star-horse-dialog
95
+ :dialog-visible="previewDialog"
96
+ :source="3"
97
+ :self-func="true"
98
+ @closeAction="previewDialog = false"
99
+ >
100
+ <el-image :src="signature?.getPNG()" />
101
+ </star-horse-dialog>
102
+ <starhorse-form-item
103
+ :showFormItem="showFormItem"
104
+ :isDesign="isDesign"
105
+ :disabled="disabled"
106
+ :bareFlag="bareFlag"
107
+ :formItem="field"
108
+ :parentField="parentField"
109
+ >
110
+ <div class="pcDemo">
111
+ <div class="inner_button">
112
+ <el-menu mode="horizontal" style="height: inherit; width: 100%">
113
+ <el-menu-item @click="clear">
114
+ <el-tooltip content="清除">
115
+ <star-horse-icon icon-class="reset" />
116
+ </el-tooltip>
117
+ </el-menu-item>
118
+ <el-menu-item @click="undo">
119
+ <el-tooltip content="后退">
120
+ <star-horse-icon icon-class="undo" />
121
+ </el-tooltip>
122
+ </el-menu-item>
123
+ <el-menu-item @click="handleColor">
124
+ <el-tooltip content="修改颜色">
125
+ <star-horse-icon icon-class="color" />
126
+ </el-tooltip>
127
+ </el-menu-item>
128
+ <el-menu-item @click="handlePreview">
129
+ <el-tooltip content="预览">
130
+ <star-horse-icon icon-class="preview" />
131
+ </el-tooltip>
132
+ </el-menu-item>
133
+ </el-menu>
134
+ </div>
135
+ <canvas ref="signatureCanvas" />
136
+ </div>
137
+ </starhorse-form-item>
138
+ </template>
139
+ <style lang="scss" scoped>
140
+ .pcDemo {
141
+ button {
142
+ margin-right: 10px;
143
+ font-size: 18px;
144
+ }
145
+
146
+ canvas {
147
+ border: 2px dashed #ccc;
148
+ cursor: crosshair;
149
+ }
150
+
151
+ .actions {
152
+ margin: 30px 0;
153
+ }
154
+
155
+ .tip {
156
+ color: #108eff;
157
+ }
158
+ }
159
+
160
+ li {
161
+ border: none;
162
+ }
163
+
164
+ .mbDemo {
165
+ position: fixed;
166
+ left: 0;
167
+ right: 0;
168
+ top: 0;
169
+ bottom: 0;
170
+
171
+ button {
172
+ font-size: 18px;
173
+ }
174
+
175
+ canvas {
176
+ border-radius: 10px;
177
+ border: 2px dashed #ccc;
178
+ }
179
+
180
+ .wrap1 {
181
+ margin-top: 100px;
182
+
183
+ .actions {
184
+ margin-bottom: 20px;
185
+ }
186
+ }
187
+
188
+ .wrap2 {
189
+ position: fixed;
190
+ left: 0;
191
+ right: 0;
192
+ top: 0;
193
+ bottom: 0;
194
+ padding: 15px;
195
+ display: flex;
196
+ justify-content: center;
197
+
198
+ .actionsWrap {
199
+ width: 50px;
200
+ display: flex;
201
+ justify-content: center;
202
+ align-items: center;
203
+ }
204
+
205
+ .canvas {
206
+ flex: 1;
207
+ }
208
+
209
+ .actions {
210
+ margin-right: 10px;
211
+ white-space: nowrap;
212
+ transform: rotate(90deg);
213
+ }
214
+ }
215
+ }
216
+ </style>
@@ -0,0 +1,68 @@
1
+ <template>
2
+ <starhorse-form-item
3
+ :showFormItem="showFormItem"
4
+ :isDesign="isDesign"
5
+ :disabled="disabled"
6
+ :bareFlag="bareFlag"
7
+ :formItem="field"
8
+ :parentField="parentField"
9
+ >
10
+ <el-slider
11
+ :fid="field.fieldName"
12
+ :disabled="checkIsDisabled(props)"
13
+ v-bind="field.preps"
14
+ :step="field.preps?.step ?? 1"
15
+ @change="itemAction"
16
+ v-model="formData[field.fieldName]"
17
+ />
18
+ </starhorse-form-item>
19
+ </template>
20
+ <script setup lang="ts">
21
+ import { ModelRef, onMounted, PropType } from "vue";
22
+ import {
23
+ allAction,
24
+ checkIsDisabled,
25
+ } from "@/components/formcomp/utils/ItemRelationEventUtils";
26
+
27
+ const props = defineProps({
28
+ isDesign: {
29
+ type: Boolean,
30
+ default: false,
31
+ },
32
+ disabled: {
33
+ type: Boolean,
34
+ default: false,
35
+ },
36
+ showFormItem: {
37
+ type: Boolean,
38
+ default: false,
39
+ },
40
+ bareFlag: {
41
+ type: Boolean,
42
+ default: false,
43
+ },
44
+ isSearch: {
45
+ type: Boolean,
46
+ default: false,
47
+ },
48
+ field: {
49
+ type: Object as PropType<any>,
50
+ required: true,
51
+ },
52
+ parentField: {
53
+ type: Object as PropType<any>,
54
+ },
55
+ formInfo: {
56
+ type: Object as PropType<any>,
57
+ },
58
+ });
59
+ const emits = defineEmits(["selfFunc", "selectItem"]);
60
+ const formData: ModelRef<any> = defineModel("formData");
61
+ const itemAction = () => {
62
+ allAction(props, emits, formData, "change");
63
+ };
64
+ onMounted(() => {
65
+ allAction(props, emits, formData, "change", true);
66
+ });
67
+ </script>
68
+ <style scoped></style>