@robot-admin/naive-ui-components 0.13.8 → 0.14.0

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 (180) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +63 -5
  3. package/README_EN.md +63 -5
  4. package/dist/C_ActionBar.css +11 -10
  5. package/dist/C_AntV.css +206 -204
  6. package/dist/C_AudioPlayer.css +11 -10
  7. package/dist/C_AvatarGroup.css +7 -5
  8. package/dist/C_Barcode.css +3 -1
  9. package/dist/C_Breadcrumb.css +17 -16
  10. package/dist/C_Captcha.css +14 -13
  11. package/dist/C_Cascade.css +7 -5
  12. package/dist/C_Chat.css +9 -8
  13. package/dist/C_City.css +8 -6
  14. package/dist/C_Code.css +15 -14
  15. package/dist/C_CollapsePanel.css +12 -11
  16. package/dist/C_ContextMenu.css +28 -28
  17. package/dist/C_Cron.cjs +1 -1
  18. package/dist/C_Cron.css +472 -251
  19. package/dist/C_Cron.d.cts +2 -2
  20. package/dist/C_Cron.d.ts +2 -2
  21. package/dist/C_Cron.js +1 -1
  22. package/dist/C_Cron2.cjs +1 -1
  23. package/dist/C_Cron2.js +1 -1
  24. package/dist/C_Date.css +2 -1
  25. package/dist/C_Draggable.css +2 -1
  26. package/dist/C_Editor.css +2 -1
  27. package/dist/C_FilePreview.css +185 -184
  28. package/dist/C_Form.base.css +334 -332
  29. package/dist/C_Form.css +333 -332
  30. package/dist/C_FormModal.css +13 -11
  31. package/dist/C_FormSearch.css +2 -1
  32. package/dist/C_FormulaEditor.cjs +1 -1
  33. package/dist/C_FormulaEditor.css +430 -273
  34. package/dist/C_FormulaEditor.d.cts +2 -2
  35. package/dist/C_FormulaEditor.d.ts +2 -2
  36. package/dist/C_FormulaEditor.js +1 -1
  37. package/dist/C_FullCalendar.css +12 -11
  38. package/dist/C_GlobalSearch.css +13 -11
  39. package/dist/C_Guide.css +8 -8
  40. package/dist/C_Icon.css +9 -7
  41. package/dist/C_ImageCropper.css +70 -68
  42. package/dist/C_Language.css +8 -8
  43. package/dist/C_Loading.css +10 -8
  44. package/dist/C_Login.css +20 -21
  45. package/dist/C_Map.css +24 -22
  46. package/dist/C_Markdown.css +8 -6
  47. package/dist/C_Menu.css +2 -1
  48. package/dist/C_NotificationCenter.css +362 -360
  49. package/dist/C_OrgChart.css +6 -5
  50. package/dist/C_PageLoading.cjs +1 -0
  51. package/dist/C_PageLoading.css +153 -0
  52. package/dist/C_PageLoading.d.cts +2 -0
  53. package/dist/C_PageLoading.d.ts +2 -0
  54. package/dist/C_PageLoading.js +1 -0
  55. package/dist/C_Progress.css +1 -1
  56. package/dist/C_QRCode.css +7 -5
  57. package/dist/C_Signature.css +7 -5
  58. package/dist/C_Skeleton.css +8 -6
  59. package/dist/C_SplitPane.css +25 -23
  60. package/dist/C_Steps.css +7 -5
  61. package/dist/C_Table.base.css +536 -537
  62. package/dist/C_Table.css +536 -538
  63. package/dist/C_Tabs.css +78 -1
  64. package/dist/C_TagsView.css +8 -8
  65. package/dist/C_Theme.css +9 -7
  66. package/dist/C_Time.css +3 -1
  67. package/dist/C_Timeline.css +9 -8
  68. package/dist/C_Transfer.css +10 -9
  69. package/dist/C_Tree.css +2 -1
  70. package/dist/C_Upload.css +176 -174
  71. package/dist/C_VideoPlayer.css +186 -184
  72. package/dist/C_VtableGantt.css +2 -1
  73. package/dist/C_WaterFall.css +19 -17
  74. package/dist/C_WorkFlow.css +976 -976
  75. package/dist/constants.d.cts +15 -20
  76. package/dist/constants.d.ts +15 -20
  77. package/dist/constants2.d.cts +44 -19
  78. package/dist/constants2.d.ts +44 -19
  79. package/dist/constants3.d.cts +4 -4
  80. package/dist/constants3.d.ts +4 -4
  81. package/dist/constants4.d.cts +6 -6
  82. package/dist/constants4.d.ts +6 -6
  83. package/dist/constants5.d.cts +2 -2
  84. package/dist/constants5.d.ts +2 -2
  85. package/dist/createPageLoading.cjs +1 -0
  86. package/dist/createPageLoading.d.cts +32 -0
  87. package/dist/createPageLoading.d.ts +32 -0
  88. package/dist/createPageLoading.js +1 -0
  89. package/dist/data.d.cts +8 -8
  90. package/dist/data.d.ts +8 -8
  91. package/dist/index.cjs +1 -1
  92. package/dist/index.d.cts +24 -23
  93. package/dist/index.d.ts +24 -23
  94. package/dist/index.js +1 -1
  95. package/dist/index.vue.d.cts +4 -4
  96. package/dist/index.vue.d.ts +4 -4
  97. package/dist/index10.vue.d.cts +3 -3
  98. package/dist/index10.vue.d.ts +1 -1
  99. package/dist/index11.vue.d.cts +1 -1
  100. package/dist/index11.vue.d.ts +2 -2
  101. package/dist/index12.vue.d.cts +2 -2
  102. package/dist/index12.vue.d.ts +2 -2
  103. package/dist/index13.vue.d.cts +2 -2
  104. package/dist/index13.vue.d.ts +5 -5
  105. package/dist/index14.vue.d.cts +5 -5
  106. package/dist/index14.vue.d.ts +6 -6
  107. package/dist/index15.vue.d.cts +6 -6
  108. package/dist/index15.vue.d.ts +1 -1
  109. package/dist/index16.vue.d.cts +1 -1
  110. package/dist/index17.vue.d.ts +1 -1
  111. package/dist/index18.vue.d.cts +1 -1
  112. package/dist/index18.vue.d.ts +5 -5
  113. package/dist/index19.vue.d.cts +5 -5
  114. package/dist/index19.vue.d.ts +1 -1
  115. package/dist/index2.vue.d.cts +2 -2
  116. package/dist/index2.vue.d.ts +2 -2
  117. package/dist/index20.vue.d.cts +1 -1
  118. package/dist/index20.vue.d.ts +1 -1
  119. package/dist/index21.vue.d.cts +1 -1
  120. package/dist/index21.vue.d.ts +1 -1
  121. package/dist/index22.vue.d.cts +1 -1
  122. package/dist/index22.vue.d.ts +1 -1
  123. package/dist/index23.vue.d.cts +2 -2
  124. package/dist/index23.vue.d.ts +2 -2
  125. package/dist/index25.vue.d.cts +4 -4
  126. package/dist/index25.vue.d.ts +4 -4
  127. package/dist/index27.vue.d.cts +2 -2
  128. package/dist/index27.vue.d.ts +2 -2
  129. package/dist/index28.vue.d.cts +1 -1
  130. package/dist/index28.vue.d.ts +1 -1
  131. package/dist/index3.vue.d.cts +4 -4
  132. package/dist/index3.vue.d.ts +4 -4
  133. package/dist/index4.vue.d.cts +1 -1
  134. package/dist/index6.vue.d.ts +2 -2
  135. package/dist/index7.vue.d.cts +2 -2
  136. package/dist/index8.vue.d.ts +3 -3
  137. package/dist/index9.vue.d.cts +3 -3
  138. package/dist/index9.vue.d.ts +3 -3
  139. package/dist/mapUtils.d.cts +2 -2
  140. package/dist/mapUtils.d.ts +2 -2
  141. package/dist/presets.d.cts +1 -1
  142. package/dist/presets.d.ts +1 -1
  143. package/dist/resolver.cjs +1 -1
  144. package/dist/resolver.d.cts +1 -1
  145. package/dist/resolver.d.ts +1 -1
  146. package/dist/resolver.js +1 -1
  147. package/dist/style.css +9976 -9652
  148. package/dist/useCropperCore.d.cts +9 -9
  149. package/dist/useCropperCore.d.ts +9 -9
  150. package/dist/useDraggableLayout.d.cts +6 -6
  151. package/dist/useDraggableLayout.d.ts +6 -6
  152. package/dist/useDynamicFormState.d.cts +2 -2
  153. package/dist/useDynamicFormState.d.ts +2 -2
  154. package/dist/useEdgeInteraction.d.cts +2 -2
  155. package/dist/useEdgeInteraction.d.ts +2 -2
  156. package/dist/useFormulaEvaluator.cjs +2 -0
  157. package/dist/useFormulaEvaluator.js +2 -0
  158. package/dist/useInfiniteScroll.d.cts +2 -2
  159. package/dist/useInfiniteScroll.d.ts +2 -2
  160. package/dist/useQRCode.d.cts +4 -4
  161. package/dist/useQRCode.d.ts +4 -4
  162. package/dist/useSearchState.d.cts +8 -8
  163. package/dist/useSearchState.d.ts +8 -8
  164. package/dist/useSignatureHistory.d.cts +3 -3
  165. package/dist/useSignatureHistory.d.ts +3 -3
  166. package/dist/useSplitResize.d.cts +4 -4
  167. package/dist/useSplitResize.d.ts +4 -4
  168. package/dist/useTableQuery.d.cts +1 -1
  169. package/dist/useTableQuery.d.ts +1 -1
  170. package/dist/useTimeSelection.d.cts +1 -1
  171. package/dist/useTimeSelection.d.ts +1 -1
  172. package/dist/useTreeOperations.d.cts +5 -5
  173. package/dist/useTreeOperations.d.ts +5 -5
  174. package/dist/useWorkflowValidation.d.cts +4 -4
  175. package/dist/useWorkflowValidation.d.ts +4 -4
  176. package/dist/verification.d.cts +4 -4
  177. package/dist/verification.d.ts +4 -4
  178. package/package.json +1 -1
  179. package/dist/C_FormulaEditor2.cjs +0 -2
  180. package/dist/C_FormulaEditor2.js +0 -2
@@ -1,3 +1,11 @@
1
+ :root{--c-primary: var(--primary-color, #2080f0);--c-primary-hover: var(--primary-color-hover, #4098fc);--c-primary-pressed: var(--primary-color-pressed, #1060c9);--c-success: var(--success-color, #18a058);--c-warning: var(--warning-color, #f0a020);--c-error: var(--error-color, #d03050);--c-info: var(--info-color, #2080f0);--c-bg-body: var(--body-color, #ffffff);--c-bg-card: var(--card-color, #ffffff);--c-bg-surface: var(--popover-color, #ffffff);--c-text-1: var(--text-color-1, #262626);--c-text-2: var(--text-color-2, #525252);--c-text-3: var(--text-color-3, #a3a3a3);--c-text-4: var(--text-color-4, #c0c0c0);--c-border: var(--border-color, #e5e7eb);--c-radius-sm: var(--border-radius-small, 4px);--c-radius: var(--border-radius, 6px);--c-transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);--c-transition-base: 0.3s cubic-bezier(0.4, 0, 0.2, 1);--c-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);--c-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);--c-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1)}
2
+
3
+ /* unplugin-vue-components disabled */
4
+ /* layer: default */
5
+ .inline-flex[data-v-075758a0]{display:inline-flex;}
6
+ .transform[data-v-075758a0]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
7
+ .px[data-v-075758a0]{padding-left:1rem;padding-right:1rem;}
8
+
1
9
  /* unplugin-vue-components disabled */.c-icon[data-v-075758a0] {
2
10
  display: inline-flex;
3
11
  align-items: center;
@@ -59,564 +67,567 @@
59
67
  }
60
68
  /* unplugin-vue-components disabled */
61
69
  /* layer: default */
62
- .inline-flex[data-v-075758a0]{display:inline-flex;}
63
- .transform[data-v-075758a0]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
64
- .px[data-v-075758a0]{padding-left:1rem;padding-right:1rem;}
65
-
66
-
67
- /* unplugin-vue-components disabled */
68
- /* layer: default */
69
- .visible[data-v-3d6434f4]{visibility:visible;}
70
- .start-1[data-v-3d6434f4]{inset-inline-start:0.25rem;}
71
- .mb-2[data-v-3d6434f4]{margin-bottom:0.5rem;}
72
- .mb-3[data-v-3d6434f4]{margin-bottom:0.75rem;}
73
- .mb-4[data-v-3d6434f4]{margin-bottom:1rem;}
74
- .ml-auto[data-v-3d6434f4]{margin-left:auto;}
75
- .mt-4[data-v-3d6434f4]{margin-top:1rem;}
76
- .block[data-v-3d6434f4]{display:block;}
77
- .max-h-50[data-v-3d6434f4]{max-height:12.5rem;}
78
- .max-h-60vh[data-v-3d6434f4]{max-height:60vh;}
79
- .min-h-10[data-v-3d6434f4]{min-height:2.5rem;}
80
- .w-full[data-v-3d6434f4]{width:100%;}
81
- .flex[data-v-3d6434f4]{display:flex;}
82
- .flex-shrink-0[data-v-3d6434f4]{flex-shrink:0;}
83
- .flex-col[data-v-3d6434f4]{flex-direction:column;}
84
- .flex-wrap[data-v-3d6434f4]{flex-wrap:wrap;}
85
- .flex-nowrap[data-v-3d6434f4]{flex-wrap:nowrap;}
86
- .table[data-v-3d6434f4]{display:table;}
87
- .items-center[data-v-3d6434f4]{align-items:center;}
88
- .gap-1[data-v-3d6434f4]{gap:0.25rem;}
89
- .gap-2[data-v-3d6434f4]{gap:0.5rem;}
90
- .gap-3[data-v-3d6434f4]{gap:0.75rem;}
91
- .space-y-3[data-v-3d6434f4]>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-top:calc(0.75rem * calc(1 - var(--un-space-y-reverse)));margin-bottom:calc(0.75rem * var(--un-space-y-reverse));}
92
- .overflow-y-auto[data-v-3d6434f4]{overflow-y:auto;}
93
- .border[data-v-3d6434f4]{border-width:1px;}
94
- .border-gray-200[data-v-3d6434f4]{--un-border-opacity:1;border-color:rgb(229 231 235 / var(--un-border-opacity));}
95
- .hover\:border-gray-300[data-v-3d6434f4]:hover{--un-border-opacity:1;border-color:rgb(209 213 219 / var(--un-border-opacity));}
96
- .rounded[data-v-3d6434f4]{border-radius:0.25rem;}
97
- .rounded-lg[data-v-3d6434f4]{border-radius:0.5rem;}
98
- .p-2[data-v-3d6434f4]{padding:0.5rem;}
99
- .p-3[data-v-3d6434f4]{padding:0.75rem;}
100
- .p-4[data-v-3d6434f4]{padding:1rem;}
101
- .px-1\.5[data-v-3d6434f4]{padding-left:0.375rem;padding-right:0.375rem;}
102
- .py-0\.5[data-v-3d6434f4]{padding-top:0.125rem;padding-bottom:0.125rem;}
103
- .text-base[data-v-3d6434f4]{font-size:1rem;line-height:1.5rem;}
104
- .text-sm[data-v-3d6434f4]{font-size:0.875rem;line-height:1.25rem;}
105
- .text-xs[data-v-3d6434f4]{font-size:0.75rem;line-height:1rem;}
106
- .font-medium[data-v-3d6434f4]{font-weight:500;}
107
- .font-semibold[data-v-3d6434f4]{font-weight:600;}
108
- .filter[data-v-3d6434f4]{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
109
- .transition-colors[data-v-3d6434f4]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
70
+ .start-1[data-v-b2b17129]{inset-inline-start:0.25rem;}
71
+ .table[data-v-b2b17129]{display:table;}
72
+ .px[data-v-b2b17129]{padding-left:1rem;padding-right:1rem;}
73
+ .filter[data-v-b2b17129]{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
110
74
 
111
- /* unplugin-vue-components disabled */.start-node[data-v-6fb2df95] {
75
+ /* unplugin-vue-components disabled *//* C_WorkFlow 组件样式 */
76
+ .approval-workflow-container[data-v-b2b17129] {
77
+ width: 100%;
78
+ height: 600px;
112
79
  position: relative;
113
- }
114
- .node-content[data-v-6fb2df95] {
115
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
116
- color: white;
117
- padding: 16px 20px;
80
+ background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
118
81
  border-radius: 12px;
82
+ overflow: hidden;
83
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
84
+ }
85
+ .floating-toolbar[data-v-b2b17129] {
86
+ position: absolute;
87
+ top: 16px;
88
+ left: 16px;
89
+ z-index: 10;
119
90
  display: flex;
120
91
  align-items: center;
121
- justify-content: center;
122
- gap: 12px;
123
- min-width: 160px;
124
- box-shadow: 0 4px 20px rgba(102, 126, 234, 0.3);
125
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
126
- cursor: pointer;
92
+ gap: 8px;
93
+ background: var(--n-card-color);
94
+ backdrop-filter: blur(10px);
95
+ padding: 8px 12px;
96
+ border-radius: 8px;
97
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
98
+ border: 1px solid var(--n-border-color);
127
99
  }
128
- .node-content[data-v-6fb2df95]:hover {
129
- transform: translateY(-2px);
130
- box-shadow: 0 8px 30px rgba(102, 126, 234, 0.4);
100
+ .floating-toolbar .toolbar-divider[data-v-b2b17129] {
101
+ width: 1px;
102
+ height: 20px;
103
+ background: var(--n-border-color);
104
+ margin: 0 4px;
131
105
  }
132
- .node-icon[data-v-6fb2df95] {
133
- font-size: 16px;
134
- flex-shrink: 0;
106
+ .workflow-canvas[data-v-b2b17129] {
107
+ width: 100%;
108
+ height: 100%;
135
109
  }
136
- .node-info[data-v-6fb2df95] {
137
- display: flex;
138
- flex-direction: column;
139
- gap: 4px;
140
- text-align: center;
110
+ .add-node-menu[data-v-b2b17129] {
111
+ position: fixed;
112
+ z-index: 1000;
113
+ pointer-events: none;
141
114
  }
142
- .node-text[data-v-6fb2df95] {
143
- font-weight: 600;
144
- font-size: 14px;
115
+ .add-node-menu .add-menu-content[data-v-b2b17129] {
116
+ background: var(--n-card-color);
117
+ border-radius: 12px;
118
+ padding: 12px;
119
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
120
+ border: 1px solid var(--n-border-color);
121
+ display: flex;
122
+ gap: 8px;
123
+ pointer-events: auto;
124
+ animation: menuSlideUp-b2b17129 0.3s ease;
145
125
  }
146
- .initiator-name[data-v-6fb2df95] {
147
- font-size: 12px;
148
- opacity: 0.9;
149
- background: rgba(255, 255, 255, 0.2);
150
- padding: 2px 8px;
126
+ .add-menu-item[data-v-b2b17129] {
127
+ appearance: none;
128
+ border: 0;
129
+ color: inherit;
130
+ font: inherit;
131
+ display: flex;
132
+ flex-direction: column;
133
+ align-items: center;
134
+ padding: 12px 8px;
151
135
  border-radius: 8px;
136
+ cursor: pointer;
137
+ transition: all 0.2s ease;
138
+ min-width: 70px;
139
+ background: var(--n-color-embedded);
152
140
  }
153
- .placeholder-text[data-v-6fb2df95] {
154
- font-size: 11px;
155
- opacity: 0.7;
156
- font-style: italic;
141
+ .add-menu-item[data-v-b2b17129]:hover {
142
+ background: var(--n-color-hover);
157
143
  }
158
- .add-node-btn[data-v-6fb2df95] {
159
- appearance: none;
160
- border: 0;
161
- padding: 0;
162
- position: absolute;
163
- left: 50%;
164
- bottom: -20px;
165
- transform: translateX(-50%);
144
+ .add-menu-item[data-v-b2b17129]:focus-visible {
145
+ outline: 2px solid var(--n-color-target, #18a058);
146
+ outline-offset: 2px;
147
+ }
148
+ .menu-icon[data-v-b2b17129] {
166
149
  width: 32px;
167
150
  height: 32px;
168
151
  border-radius: 50%;
169
- background: linear-gradient(135deg, #1890ff, #722ed1);
170
- color: white;
171
152
  display: flex;
172
153
  align-items: center;
173
154
  justify-content: center;
174
- cursor: pointer;
175
- box-shadow: 0 4px 12px rgba(24, 144, 255, 0.3);
176
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
177
- font-size: 16px;
178
- font-weight: bold;
179
- z-index: 10;
155
+ margin-bottom: 6px;
156
+ color: white;
180
157
  }
181
- .add-node-btn[data-v-6fb2df95]:hover {
182
- transform: translateX(-50%) scale(1.1);
183
- box-shadow: 0 6px 20px rgba(24, 144, 255, 0.4);
158
+ .menu-icon.approval-icon[data-v-b2b17129] {
159
+ background: linear-gradient(135deg, #1890ff, #722ed1);
184
160
  }
185
- .add-node-btn[data-v-6fb2df95]:focus-visible {
186
- outline: 2px solid #1890ff;
187
- outline-offset: 2px;
161
+ .menu-icon.copy-icon[data-v-b2b17129] {
162
+ background: linear-gradient(135deg, #52c41a, #389e0d);
188
163
  }
189
- /* unplugin-vue-components disabled */
190
- /* layer: default */
191
- .absolute[data-v-6fb2df95]{position:absolute;}
192
- .relative[data-v-6fb2df95]{position:relative;}
193
- .flex[data-v-6fb2df95]{display:flex;}
194
- .flex-shrink[data-v-6fb2df95]{flex-shrink:1;}
195
- .transform[data-v-6fb2df95]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
196
- .border[data-v-6fb2df95]{border-width:1px;}
197
- .italic[data-v-6fb2df95]{font-style:italic;}
198
- .outline[data-v-6fb2df95]{outline-style:solid;}
199
- .transition[data-v-6fb2df95]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
200
-
201
- /* unplugin-vue-components disabled */.approval-node[data-v-e6968a42] {
202
- position: relative;
164
+ .menu-icon.condition-icon[data-v-b2b17129] {
165
+ background: linear-gradient(135deg, #fa8c16, #d48806);
203
166
  }
204
- .status-indicator[data-v-e6968a42] {
205
- position: absolute;
206
- top: -4px;
207
- right: -4px;
208
- width: 12px;
209
- height: 12px;
210
- border-radius: 50%;
211
- border: 2px solid white;
212
- z-index: 2;
213
- background: #faad14;
167
+ .menu-text[data-v-b2b17129] {
168
+ font-size: 12px;
169
+ font-weight: 500;
214
170
  }
215
- .status-indicator.approved[data-v-e6968a42] {
216
- background: #52c41a;
171
+ @keyframes menuSlideUp-b2b17129 {
172
+ from {
173
+ opacity: 0;
174
+ transform: translateY(10px);
217
175
  }
218
- .status-indicator.rejected[data-v-e6968a42] {
219
- background: #ff4d4f;
176
+ to {
177
+ opacity: 1;
178
+ transform: translateY(0);
220
179
  }
221
- .status-indicator.pending[data-v-e6968a42] {
222
- background: #1890ff;
223
180
  }
224
- .delete-btn[data-v-e6968a42] {
225
- appearance: none;
226
- padding: 0;
227
- position: absolute;
228
- top: -10px;
229
- right: -10px;
230
- width: 24px;
231
- height: 24px;
232
- border-radius: 50%;
233
- background: #ff4d4f;
234
- color: white;
235
- display: flex;
236
- align-items: center;
237
- justify-content: center;
238
- cursor: pointer;
239
- z-index: 100; /* 确保在所有元素之上 */
240
- opacity: 0;
241
- transform: scale(0.8);
242
- transition: all 0.2s ease;
243
- border: 2px solid white;
244
- box-shadow: 0 2px 8px rgba(255, 77, 79, 0.3);
181
+ /* 流程/数据校验结果显示样式 */
182
+ .validation-success[data-v-b2b17129] {
183
+ text-align: center;
184
+ padding: 40px 20px;
185
+ color: #52c41a;
245
186
  }
246
- .delete-btn[data-v-e6968a42]:hover {
247
- transform: scale(1);
248
- background: #ff7875;
249
- box-shadow: 0 4px 12px rgba(255, 77, 79, 0.5);
187
+ .validation-success .success-icon[data-v-b2b17129] {
188
+ margin-bottom: 16px;
250
189
  }
251
- .delete-btn[data-v-e6968a42]:active {
252
- transform: scale(0.95);
190
+ .validation-success h3[data-v-b2b17129] {
191
+ margin: 0 0 8px 0;
192
+ font-size: 18px;
193
+ font-weight: 600;
253
194
  }
254
- .approval-node:hover .delete-btn[data-v-e6968a42],
255
- .approval-node:focus-within .delete-btn[data-v-e6968a42] {
256
- opacity: 1;
257
- transform: scale(1);
195
+ .validation-success p[data-v-b2b17129] {
196
+ margin: 0;
197
+ color: #666;
198
+ font-size: 14px;
258
199
  }
259
- .node-card[data-v-e6968a42] {
200
+ .validation-errors .error-summary[data-v-b2b17129] {
201
+ text-align: center;
202
+ padding: 20px;
203
+ background: #fff2f0;
204
+ border-radius: 8px;
205
+ margin-bottom: 20px;
206
+ border: 1px solid #ffccc7;
207
+ }
208
+ .validation-errors .error-summary .error-icon[data-v-b2b17129] {
209
+ margin-bottom: 12px;
210
+ }
211
+ .validation-errors .error-summary h3[data-v-b2b17129] {
212
+ margin: 0 0 8px 0;
213
+ color: #ff4d4f;
214
+ font-size: 16px;
215
+ font-weight: 600;
216
+ }
217
+ .validation-errors .error-summary p[data-v-b2b17129] {
218
+ margin: 0;
219
+ color: var(--n-text-color-2);
220
+ font-size: 14px;
221
+ }
222
+ .validation-errors .error-list[data-v-b2b17129] {
223
+ display: flex;
224
+ flex-direction: column;
225
+ gap: 12px;
226
+ }
227
+ .validation-errors .error-item[data-v-b2b17129] {
260
228
  background: white;
261
- border-radius: 12px;
262
- min-width: 240px;
263
- max-width: 300px;
264
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
265
- border: 2px solid transparent;
266
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
267
- overflow: hidden;
268
- cursor: pointer;
229
+ border: 1px solid #f0f0f0;
230
+ border-radius: 8px;
231
+ padding: 16px;
232
+ transition: all 0.2s ease;
269
233
  }
270
- .node-card[data-v-e6968a42]:hover {
271
- transform: translateY(-2px);
272
- box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
273
- border-color: #1890ff;
234
+ .validation-errors .error-item[data-v-b2b17129]:hover {
235
+ border-color: #d9d9d9;
236
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
274
237
  }
275
- .node-header[data-v-e6968a42] {
276
- padding: 12px 16px;
277
- background: linear-gradient(135deg, #e6f7ff, #f0f9ff);
278
- border-bottom: 1px solid #91d5ff;
238
+ .validation-errors .error-item .error-header[data-v-b2b17129] {
279
239
  display: flex;
280
240
  align-items: center;
281
- gap: 8px;
282
- flex-wrap: wrap;
241
+ gap: 12px;
242
+ margin-bottom: 8px;
283
243
  }
284
- .node-icon[data-v-e6968a42] {
244
+ .validation-errors .error-item .error-header .error-number[data-v-b2b17129] {
285
245
  width: 24px;
286
246
  height: 24px;
287
- border-radius: 50%;
288
- background: #1890ff;
247
+ background: #ff4d4f;
289
248
  color: white;
249
+ border-radius: 50%;
290
250
  display: flex;
291
251
  align-items: center;
292
252
  justify-content: center;
293
- }
294
- .node-title[data-v-e6968a42] {
253
+ font-size: 12px;
295
254
  font-weight: 600;
255
+ flex-shrink: 0;
256
+ }
257
+ .validation-errors .error-item .error-header .error-info[data-v-b2b17129] {
258
+ flex: 1;
259
+ min-width: 0;
260
+ }
261
+ .validation-errors .error-item .error-header .error-info .error-node[data-v-b2b17129] {
262
+ display: block;
296
263
  color: var(--n-text-color-1);
297
264
  font-size: 14px;
298
- flex: 1;
265
+ margin-bottom: 2px;
299
266
  }
300
- .node-badge[data-v-e6968a42] {
301
- background: #1890ff;
302
- color: white;
303
- padding: 2px 6px;
304
- border-radius: 10px;
305
- font-size: 11px;
306
- font-weight: 600;
307
- min-width: 16px;
308
- text-align: center;
267
+ .validation-errors .error-item .error-header .error-info .error-field[data-v-b2b17129] {
268
+ color: var(--n-text-color-3);
269
+ font-size: 12px;
309
270
  }
310
- .approval-mode-badge[data-v-e6968a42] {
311
- background: #f0f0f0;
312
- color: #666;
313
- padding: 2px 6px;
314
- border-radius: 8px;
315
- font-size: 10px;
271
+ .validation-errors .error-item .error-header .error-type[data-v-b2b17129] {
272
+ padding: 2px 8px;
273
+ border-radius: 4px;
274
+ font-size: 11px;
316
275
  font-weight: 500;
317
276
  }
318
- .node-content[data-v-e6968a42] {
319
- padding: 16px;
320
- }
321
- .approvers-list[data-v-e6968a42] {
322
- display: flex;
323
- flex-direction: column;
324
- gap: 8px;
277
+ .validation-errors .error-item .error-header .error-type.required[data-v-b2b17129] {
278
+ background: #fff2f0;
279
+ color: #ff4d4f;
280
+ border: 1px solid #ffccc7;
325
281
  }
326
- .approver-tag[data-v-e6968a42] {
327
- background: linear-gradient(135deg, #e6f7ff, #f0f9ff);
328
- border: 1px solid #91d5ff;
329
- border-radius: 8px;
330
- padding: 8px 12px;
331
- transition: all 0.2s ease;
282
+ .validation-errors .error-item .error-header .error-type.incomplete[data-v-b2b17129] {
283
+ background: #fff7e6;
284
+ color: #fa8c16;
285
+ border: 1px solid #ffd591;
332
286
  }
333
- .approver-tag[data-v-e6968a42]:hover {
334
- transform: translateX(2px);
335
- box-shadow: 0 2px 8px rgba(24, 144, 255, 0.2);
287
+ .validation-errors .error-item .error-header .error-type.warning[data-v-b2b17129] {
288
+ background: #fffbe6;
289
+ color: #faad14;
290
+ border: 1px solid #ffe58f;
336
291
  }
337
- .approver-tag .approver-info[data-v-e6968a42] {
338
- display: flex;
339
- align-items: center;
340
- gap: 8px;
292
+ .validation-errors .error-item .error-message[data-v-b2b17129] {
293
+ color: var(--n-text-color-2);
294
+ font-size: 13px;
295
+ line-height: 1.5;
296
+ margin-bottom: 12px;
297
+ padding-left: 36px;
341
298
  }
342
- .approver-tag .approver-info .approver-avatar[data-v-e6968a42] {
343
- flex-shrink: 0;
299
+ .validation-errors .error-item .error-actions[data-v-b2b17129] {
300
+ padding-left: 36px;
344
301
  }
345
- .approver-tag .approver-info .approver-details[data-v-e6968a42] {
346
- display: flex;
347
- flex-direction: column;
348
- gap: 2px;
349
- min-width: 0;
302
+ .validation-errors .validation-tips[data-v-b2b17129] {
303
+ margin-top: 24px;
304
+ padding: 16px;
305
+ background: #f6ffed;
306
+ border-radius: 8px;
307
+ border: 1px solid #b7eb8f;
350
308
  }
351
- .approver-tag .approver-info .approver-details .approver-name[data-v-e6968a42] {
309
+ .validation-errors .validation-tips h4[data-v-b2b17129] {
310
+ margin: 0 0 12px 0;
311
+ color: #389e0d;
312
+ font-size: 14px;
352
313
  font-weight: 600;
353
- color: #1890ff;
354
- font-size: 13px;
355
314
  }
356
- .approver-tag .approver-info .approver-details .approver-dept[data-v-e6968a42] {
357
- font-size: 11px;
358
- color: #666;
359
- background: rgba(0, 0, 0, 0.05);
360
- padding: 1px 4px;
361
- border-radius: 4px;
362
- display: inline-block;
315
+ .validation-errors .validation-tips ul[data-v-b2b17129] {
316
+ margin: 0;
317
+ padding-left: 16px;
318
+ color: var(--n-text-color-2);
319
+ font-size: 13px;
320
+ line-height: 1.6;
363
321
  }
364
- .approver-tag .approver-info .approver-details .approver-role[data-v-e6968a42] {
365
- font-size: 10px;
366
- color: #999;
322
+ .validation-errors .validation-tips ul li[data-v-b2b17129] {
323
+ margin-bottom: 6px;
367
324
  }
368
- .more-count[data-v-e6968a42] {
369
- background: #f0f0f0;
370
- color: #8c8c8c;
371
- padding: 6px 8px;
372
- border-radius: 12px;
373
- font-size: 12px;
374
- font-weight: 500;
375
- text-align: center;
376
- border: 1px dashed #d9d9d9;
325
+ .validation-errors .validation-tips ul li strong[data-v-b2b17129] {
326
+ color: var(--n-text-color-1);
377
327
  }
378
- .placeholder[data-v-e6968a42] {
328
+ .validation-footer[data-v-b2b17129] {
379
329
  display: flex;
380
- flex-direction: column;
381
- align-items: center;
382
- justify-content: center;
383
330
  gap: 8px;
384
- color: #8c8c8c;
385
- font-size: 12px;
386
- padding: 20px 0;
387
- border: 1px dashed #d9d9d9;
388
- border-radius: 8px;
389
- background: #fafafa;
331
+ justify-content: flex-end;
390
332
  }
391
- .placeholder span[data-v-e6968a42] {
392
- font-weight: 500;
333
+
334
+ /* 边的样式(Vue Flow) */
335
+ [data-v-b2b17129] .vue-flow__edge {
336
+ stroke: #1890ff;
337
+ stroke-width: 2px;
393
338
  }
394
- .add-node-btn[data-v-e6968a42] {
395
- appearance: none;
396
- border: 0;
397
- padding: 0;
398
- position: absolute;
399
- left: 50%;
400
- bottom: -20px;
401
- transform: translateX(-50%);
402
- width: 32px;
403
- height: 32px;
404
- border-radius: 50%;
405
- background: linear-gradient(135deg, #1890ff, #722ed1);
406
- color: white;
407
- display: flex;
408
- align-items: center;
409
- justify-content: center;
410
- cursor: pointer;
411
- box-shadow: 0 4px 12px rgba(24, 144, 255, 0.3);
412
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
413
- z-index: 10;
339
+ [data-v-b2b17129] .vue-flow__edge-path {
340
+ stroke: #1890ff;
341
+ stroke-width: 2px;
414
342
  }
415
- .add-node-btn[data-v-e6968a42]:hover {
416
- transform: translateX(-50%) scale(1.1);
417
- box-shadow: 0 6px 20px rgba(24, 144, 255, 0.4);
343
+ [data-v-b2b17129] .vue-flow__arrowhead {
344
+ fill: #1890ff;
418
345
  }
419
- .add-node-btn[data-v-e6968a42]:focus-visible {
420
- outline: 2px solid #1890ff;
421
- outline-offset: 2px;
346
+ [data-v-b2b17129] .vue-flow__edge.animated {
347
+ stroke-dasharray: 5;
348
+ animation: dashdraw-b2b17129 0.5s linear infinite;
422
349
  }
423
- .delete-btn[data-v-e6968a42]:focus-visible {
424
- opacity: 1;
425
- outline: 2px solid #1890ff;
426
- outline-offset: 2px;
350
+ @keyframes dashdraw-b2b17129 {
351
+ to {
352
+ stroke-dashoffset: -10;
353
+ }
354
+ }
355
+ /* 暗色主题适配 */
356
+ [data-theme=dark] .approval-workflow-container[data-v-b2b17129] {
357
+ background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
358
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
359
+ }
360
+ [data-theme=dark][data-v-b2b17129] {
361
+ /* 添加节点菜单文字 */
362
+ }
363
+ [data-theme=dark] .add-menu-item span[data-v-b2b17129] {
364
+ color: white;
365
+ }
366
+ [data-theme=dark] .validation-success[data-v-b2b17129] {
367
+ color: #52c41a;
368
+ }
369
+ [data-theme=dark] .validation-success h3[data-v-b2b17129] {
370
+ color: #52c41a;
371
+ }
372
+ [data-theme=dark] .validation-success p[data-v-b2b17129] {
373
+ color: var(--n-text-color-2);
374
+ }
375
+ [data-theme=dark] .validation-errors .error-summary[data-v-b2b17129] {
376
+ background: rgba(255, 77, 79, 0.1);
377
+ border-color: rgba(255, 77, 79, 0.3);
378
+ }
379
+ [data-theme=dark] .validation-errors .error-summary h3[data-v-b2b17129] {
380
+ color: #ff4d4f;
381
+ }
382
+ [data-theme=dark] .validation-errors .error-summary p[data-v-b2b17129] {
383
+ color: var(--n-text-color-2);
384
+ }
385
+ [data-theme=dark] .validation-errors .error-item[data-v-b2b17129] {
386
+ background: var(--n-card-color);
387
+ border-color: var(--n-border-color);
388
+ }
389
+ [data-theme=dark] .validation-errors .error-item[data-v-b2b17129]:hover {
390
+ border-color: rgba(255, 255, 255, 0.2);
391
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
392
+ }
393
+ [data-theme=dark] .validation-errors .error-item .error-info .error-node[data-v-b2b17129] {
394
+ color: var(--n-text-color-1);
395
+ }
396
+ [data-theme=dark] .validation-errors .error-item .error-info .error-field[data-v-b2b17129] {
397
+ color: var(--n-text-color-3);
398
+ }
399
+ [data-theme=dark] .validation-errors .error-item .error-type.required[data-v-b2b17129] {
400
+ background: rgba(255, 77, 79, 0.15);
401
+ color: #ff7875;
402
+ border-color: rgba(255, 77, 79, 0.3);
403
+ }
404
+ [data-theme=dark] .validation-errors .error-item .error-type.incomplete[data-v-b2b17129] {
405
+ background: rgba(250, 140, 22, 0.15);
406
+ color: #ffa940;
407
+ border-color: rgba(250, 140, 22, 0.3);
408
+ }
409
+ [data-theme=dark] .validation-errors .error-item .error-type.warning[data-v-b2b17129] {
410
+ background: rgba(250, 173, 20, 0.15);
411
+ color: #ffc53d;
412
+ border-color: rgba(250, 173, 20, 0.3);
413
+ }
414
+ [data-theme=dark] .validation-errors .error-item .error-message[data-v-b2b17129] {
415
+ color: var(--n-text-color-2);
416
+ }
417
+ [data-theme=dark] .validation-errors .validation-tips[data-v-b2b17129] {
418
+ background: rgba(82, 196, 26, 0.1);
419
+ border-color: rgba(82, 196, 26, 0.3);
420
+ }
421
+ [data-theme=dark] .validation-errors .validation-tips h4[data-v-b2b17129] {
422
+ color: #73d13d;
423
+ }
424
+ [data-theme=dark] .validation-errors .validation-tips ul[data-v-b2b17129] {
425
+ color: var(--n-text-color-2);
426
+ }
427
+ [data-theme=dark] .validation-errors .validation-tips ul li strong[data-v-b2b17129] {
428
+ color: var(--n-text-color-1);
427
429
  }
428
- /* unplugin-vue-components disabled */
429
- /* layer: default */
430
- .absolute[data-v-e6968a42]{position:absolute;}
431
- .relative[data-v-e6968a42]{position:relative;}
432
- .start-1[data-v-e6968a42]{inset-inline-start:0.25rem;}
433
- .inline-block[data-v-e6968a42]{display:inline-block;}
434
- .hidden[data-v-e6968a42]{display:none;}
435
- .flex[data-v-e6968a42]{display:flex;}
436
- .flex-shrink[data-v-e6968a42]{flex-shrink:1;}
437
- .flex-wrap[data-v-e6968a42]{flex-wrap:wrap;}
438
- .transform[data-v-e6968a42]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
439
- .border[data-v-e6968a42]{border-width:1px;}
440
- .outline[data-v-e6968a42]{outline-style:solid;}
441
- .transition[data-v-e6968a42]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
442
- .ease[data-v-e6968a42]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
443
430
 
444
- /* unplugin-vue-components disabled */.copy-node[data-v-010e7ec8] {
431
+ /* ─── 流程预览抽屉样式 ────────────────────────────────────── */
432
+ .preview-stats[data-v-b2b17129] {
433
+ display: flex;
434
+ gap: 12px;
435
+ margin-bottom: 24px;
436
+ flex-wrap: wrap;
437
+ }
438
+ .preview-stats .stat-item[data-v-b2b17129] {
439
+ flex: 1;
440
+ min-width: 70px;
441
+ text-align: center;
442
+ padding: 12px 8px;
443
+ border-radius: 10px;
444
+ background: var(--n-action-color);
445
+ border: 1px solid var(--n-border-color);
446
+ transition: all 0.2s;
447
+ }
448
+ .preview-stats .stat-item .stat-value[data-v-b2b17129] {
449
+ display: block;
450
+ font-size: 22px;
451
+ font-weight: 700;
452
+ color: var(--n-text-color-1);
453
+ }
454
+ .preview-stats .stat-item .stat-label[data-v-b2b17129] {
455
+ display: block;
456
+ font-size: 12px;
457
+ color: var(--n-text-color-3);
458
+ margin-top: 4px;
459
+ }
460
+ .preview-stats .stat-item.approval .stat-value[data-v-b2b17129] {
461
+ color: #ff6b35;
462
+ }
463
+ .preview-stats .stat-item.copy .stat-value[data-v-b2b17129] {
464
+ color: #1890ff;
465
+ }
466
+ .preview-stats .stat-item.condition .stat-value[data-v-b2b17129] {
467
+ color: #faad14;
468
+ }
469
+ .preview-stats .stat-item.edge .stat-value[data-v-b2b17129] {
470
+ color: #52c41a;
471
+ }
472
+ .preview-timeline[data-v-b2b17129] {
445
473
  position: relative;
474
+ padding: 0 0 0 8px;
446
475
  }
447
- .status-indicator[data-v-010e7ec8] {
448
- position: absolute;
449
- top: -4px;
450
- right: -4px;
451
- width: 12px;
452
- height: 12px;
453
- border-radius: 50%;
454
- border: 2px solid white;
455
- z-index: 2;
456
- background: #faad14;
476
+ .preview-timeline .preview-step[data-v-b2b17129] {
477
+ display: flex;
478
+ gap: 16px;
479
+ position: relative;
480
+ padding-bottom: 8px;
457
481
  }
458
- .status-indicator.completed[data-v-010e7ec8] {
459
- background: #52c41a;
482
+ .preview-timeline .preview-step:last-child .step-line[data-v-b2b17129] {
483
+ display: none;
460
484
  }
461
- .status-indicator.active[data-v-010e7ec8] {
462
- background: #1890ff;
485
+ .preview-timeline .step-connector[data-v-b2b17129] {
486
+ display: flex;
487
+ flex-direction: column;
488
+ align-items: center;
489
+ flex-shrink: 0;
490
+ width: 32px;
463
491
  }
464
- .delete-btn[data-v-010e7ec8] {
465
- appearance: none;
466
- padding: 0;
467
- position: absolute;
468
- top: -10px;
469
- right: -10px;
470
- width: 24px;
471
- height: 24px;
492
+ .preview-timeline .step-connector .step-dot[data-v-b2b17129] {
493
+ width: 32px;
494
+ height: 32px;
472
495
  border-radius: 50%;
473
- background: #ff4d4f;
474
- color: white;
475
496
  display: flex;
476
497
  align-items: center;
477
498
  justify-content: center;
478
- cursor: pointer;
479
- z-index: 100;
480
- opacity: 0;
481
- transform: scale(0.8);
482
- transition: all 0.2s ease;
483
- border: 2px solid white;
484
- box-shadow: 0 2px 8px rgba(255, 77, 79, 0.3);
499
+ color: white;
500
+ flex-shrink: 0;
501
+ z-index: 1;
502
+ background: #999;
485
503
  }
486
- .delete-btn[data-v-010e7ec8]:hover {
487
- transform: scale(1);
488
- background: #ff7875;
489
- box-shadow: 0 4px 12px rgba(255, 77, 79, 0.5);
504
+ .preview-timeline .step-connector .step-line[data-v-b2b17129] {
505
+ width: 2px;
506
+ flex: 1;
507
+ min-height: 20px;
508
+ background: var(--n-border-color);
490
509
  }
491
- .delete-btn[data-v-010e7ec8]:active {
492
- transform: scale(0.95);
510
+ .preview-timeline[data-v-b2b17129] {
511
+ /* 不同节点类型的圆点颜色 */
493
512
  }
494
- .copy-node:hover .delete-btn[data-v-010e7ec8],
495
- .copy-node:focus-within .delete-btn[data-v-010e7ec8] {
496
- opacity: 1;
497
- transform: scale(1);
513
+ .preview-timeline .start .step-dot[data-v-b2b17129] {
514
+ background: linear-gradient(135deg, #667eea, #764ba2);
498
515
  }
499
- .node-card[data-v-010e7ec8] {
500
- background: white;
501
- border-radius: 12px;
502
- min-width: 200px;
503
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
504
- border: 2px solid transparent;
505
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
506
- overflow: hidden;
507
- cursor: pointer;
516
+ .preview-timeline .approval .step-dot[data-v-b2b17129] {
517
+ background: linear-gradient(135deg, #ff6b35, #ff4500);
508
518
  }
509
- .node-card[data-v-010e7ec8]:hover {
510
- transform: translateY(-2px);
511
- box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
512
- border-color: #52c41a;
519
+ .preview-timeline .copy .step-dot[data-v-b2b17129] {
520
+ background: linear-gradient(135deg, #1890ff, #096dd9);
513
521
  }
514
- .node-header[data-v-010e7ec8] {
515
- padding: 12px 16px;
516
- background: #f6ffed;
517
- border-bottom: 1px solid #d9f7be;
522
+ .preview-timeline .condition .step-dot[data-v-b2b17129] {
523
+ background: linear-gradient(135deg, #faad14, #d48806);
524
+ }
525
+ .preview-timeline .step-content[data-v-b2b17129] {
526
+ flex: 1;
527
+ padding-bottom: 20px;
528
+ min-width: 0;
529
+ }
530
+ .preview-timeline .step-content .step-header[data-v-b2b17129] {
518
531
  display: flex;
519
532
  align-items: center;
520
533
  gap: 8px;
534
+ margin-bottom: 6px;
521
535
  }
522
- .node-icon[data-v-010e7ec8] {
523
- width: 24px;
524
- height: 24px;
525
- border-radius: 50%;
526
- background: #52c41a;
527
- color: white;
528
- display: flex;
529
- align-items: center;
530
- justify-content: center;
536
+ .preview-timeline .step-content .step-header .step-order[data-v-b2b17129] {
531
537
  font-size: 12px;
538
+ color: var(--n-text-color-3);
539
+ font-weight: 500;
532
540
  }
533
- .node-title[data-v-010e7ec8] {
534
- font-weight: 600;
535
- color: #262626;
536
- font-size: 14px;
537
- flex: 1;
538
- }
539
- .node-badge[data-v-010e7ec8] {
540
- background: #52c41a;
541
- color: white;
542
- padding: 2px 6px;
543
- border-radius: 10px;
541
+ .preview-timeline .step-content .step-header .step-type-badge[data-v-b2b17129] {
544
542
  font-size: 11px;
543
+ padding: 1px 8px;
544
+ border-radius: 10px;
545
+ background: var(--n-action-color);
546
+ color: var(--n-text-color-2);
547
+ border: 1px solid var(--n-border-color);
548
+ }
549
+ .preview-timeline .step-content .step-title[data-v-b2b17129] {
550
+ font-size: 15px;
545
551
  font-weight: 600;
546
- min-width: 16px;
547
- text-align: center;
552
+ color: var(--n-text-color-1);
553
+ margin-bottom: 8px;
548
554
  }
549
- .node-content[data-v-010e7ec8] {
550
- padding: 16px;
555
+ .preview-timeline .step-content .step-details[data-v-b2b17129] {
556
+ background: var(--n-action-color);
557
+ border-radius: 8px;
558
+ padding: 10px 14px;
559
+ border: 1px solid var(--n-border-color);
551
560
  }
552
- .copy-users-list[data-v-010e7ec8] {
561
+ .preview-timeline .step-content .step-details .step-detail-item[data-v-b2b17129] {
562
+ font-size: 13px;
563
+ color: var(--n-text-color-2);
564
+ line-height: 1.8;
565
+ word-break: break-all;
553
566
  display: flex;
567
+ align-items: flex-start;
554
568
  flex-wrap: wrap;
555
- gap: 6px;
556
- align-items: center;
569
+ gap: 4px;
557
570
  }
558
- .copy-user-tag[data-v-010e7ec8] {
559
- display: flex;
560
- align-items: center;
561
- gap: 6px;
562
- background: #f6ffed;
563
- color: #52c41a;
564
- padding: 4px 8px;
565
- border-radius: 12px;
566
- font-size: 12px;
567
- border: 1px solid #b7eb8f;
571
+ .preview-timeline .step-content .step-details .step-detail-item[data-v-b2b17129]:not(:last-child) {
572
+ border-bottom: 1px dashed var(--n-border-color);
573
+ padding-bottom: 8px;
574
+ margin-bottom: 8px;
568
575
  }
569
- .more-count[data-v-010e7ec8] {
570
- background: #f0f0f0;
571
- color: #8c8c8c;
572
- padding: 4px 8px;
573
- border-radius: 12px;
576
+ .preview-timeline .step-content .step-details .step-detail-item.is-warning[data-v-b2b17129] {
577
+ color: #faad14;
578
+ }
579
+ .preview-timeline .step-content .step-details .step-detail-item .detail-label[data-v-b2b17129] {
580
+ color: var(--n-text-color-3);
574
581
  font-size: 12px;
575
- font-weight: 500;
582
+ flex-shrink: 0;
583
+ line-height: 24px;
576
584
  }
577
- .placeholder[data-v-010e7ec8] {
578
- display: flex;
579
- align-items: center;
580
- gap: 6px;
581
- color: #8c8c8c;
585
+ .preview-timeline .step-content .step-details .step-detail-item .mode-badge[data-v-b2b17129] {
586
+ display: inline-block;
582
587
  font-size: 12px;
583
- padding: 8px 0;
588
+ font-weight: 600;
589
+ padding: 2px 10px;
590
+ border-radius: 12px;
591
+ line-height: 20px;
584
592
  }
585
- .add-node-btn[data-v-010e7ec8] {
586
- appearance: none;
587
- border: 0;
588
- padding: 0;
589
- position: absolute;
590
- left: 50%;
591
- bottom: -20px;
592
- transform: translateX(-50%);
593
- width: 32px;
594
- height: 32px;
595
- border-radius: 50%;
596
- background: linear-gradient(135deg, #52c41a, #389e0d);
597
- color: white;
593
+ .preview-timeline .step-content .step-details .step-detail-item .mode-badge.any[data-v-b2b17129] {
594
+ background: rgba(24, 144, 255, 0.1);
595
+ color: #1890ff;
596
+ border: 1px solid rgba(24, 144, 255, 0.25);
597
+ }
598
+ .preview-timeline .step-content .step-details .step-detail-item .mode-badge.all[data-v-b2b17129] {
599
+ background: rgba(255, 77, 79, 0.1);
600
+ color: #ff4d4f;
601
+ border: 1px solid rgba(255, 77, 79, 0.25);
602
+ }
603
+ .preview-timeline .step-content .step-details .step-detail-item .mode-badge.sequence[data-v-b2b17129] {
604
+ background: rgba(114, 46, 209, 0.1);
605
+ color: #722ed1;
606
+ border: 1px solid rgba(114, 46, 209, 0.25);
607
+ }
608
+ .preview-timeline .step-content .step-details .step-detail-item .user-tag[data-v-b2b17129] {
609
+ margin: 1px 2px;
610
+ }
611
+ .preview-timeline .step-content .step-details .step-detail-item .warning-text[data-v-b2b17129] {
612
+ color: #faad14;
613
+ font-weight: 500;
614
+ }
615
+ .preview-empty[data-v-b2b17129] {
598
616
  display: flex;
617
+ flex-direction: column;
599
618
  align-items: center;
600
619
  justify-content: center;
601
- cursor: pointer;
602
- box-shadow: 0 4px 12px rgba(82, 196, 26, 0.3);
603
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
604
- font-size: 16px;
605
- font-weight: bold;
606
- z-index: 10;
607
- }
608
- .add-node-btn[data-v-010e7ec8]:hover {
609
- transform: translateX(-50%) scale(1.1);
610
- box-shadow: 0 6px 20px rgba(82, 196, 26, 0.4);
620
+ padding: 60px 0;
611
621
  }
612
- .add-node-btn[data-v-010e7ec8]:focus-visible {
613
- outline: 2px solid #52c41a;
614
- outline-offset: 2px;
622
+ .preview-empty p[data-v-b2b17129] {
623
+ margin-top: 12px;
624
+ color: var(--n-text-color-3);
625
+ font-size: 14px;
615
626
  }
616
- .delete-btn[data-v-010e7ec8]:focus-visible {
617
- opacity: 1;
618
- outline: 2px solid #52c41a;
619
- outline-offset: 2px;
627
+ .preview-footer[data-v-b2b17129] {
628
+ display: flex;
629
+ justify-content: flex-end;
630
+ gap: 12px;
620
631
  }
621
632
  /* unplugin-vue-components disabled */
622
633
  /* layer: default */
@@ -631,10 +642,38 @@
631
642
  .transition[data-v-010e7ec8]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
632
643
  .ease[data-v-010e7ec8]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
633
644
 
634
- /* unplugin-vue-components disabled */.condition-node[data-v-5ede8782] {
645
+ /* unplugin-vue-components disabled */
646
+ /* layer: default */
647
+ .absolute[data-v-e6968a42]{position:absolute;}
648
+ .relative[data-v-e6968a42]{position:relative;}
649
+ .start-1[data-v-e6968a42]{inset-inline-start:0.25rem;}
650
+ .inline-block[data-v-e6968a42]{display:inline-block;}
651
+ .hidden[data-v-e6968a42]{display:none;}
652
+ .flex[data-v-e6968a42]{display:flex;}
653
+ .flex-shrink[data-v-e6968a42]{flex-shrink:1;}
654
+ .flex-wrap[data-v-e6968a42]{flex-wrap:wrap;}
655
+ .transform[data-v-e6968a42]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
656
+ .border[data-v-e6968a42]{border-width:1px;}
657
+ .outline[data-v-e6968a42]{outline-style:solid;}
658
+ .transition[data-v-e6968a42]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
659
+ .ease[data-v-e6968a42]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
660
+
661
+ /* unplugin-vue-components disabled */
662
+ /* layer: default */
663
+ .absolute[data-v-6fb2df95]{position:absolute;}
664
+ .relative[data-v-6fb2df95]{position:relative;}
665
+ .flex[data-v-6fb2df95]{display:flex;}
666
+ .flex-shrink[data-v-6fb2df95]{flex-shrink:1;}
667
+ .transform[data-v-6fb2df95]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
668
+ .border[data-v-6fb2df95]{border-width:1px;}
669
+ .italic[data-v-6fb2df95]{font-style:italic;}
670
+ .outline[data-v-6fb2df95]{outline-style:solid;}
671
+ .transition[data-v-6fb2df95]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
672
+
673
+ /* unplugin-vue-components disabled */.copy-node[data-v-010e7ec8] {
635
674
  position: relative;
636
675
  }
637
- .status-indicator[data-v-5ede8782] {
676
+ .status-indicator[data-v-010e7ec8] {
638
677
  position: absolute;
639
678
  top: -4px;
640
679
  right: -4px;
@@ -645,13 +684,13 @@
645
684
  z-index: 2;
646
685
  background: #faad14;
647
686
  }
648
- .status-indicator.completed[data-v-5ede8782] {
687
+ .status-indicator.completed[data-v-010e7ec8] {
649
688
  background: #52c41a;
650
689
  }
651
- .status-indicator.active[data-v-5ede8782] {
652
- background: #fa8c16;
690
+ .status-indicator.active[data-v-010e7ec8] {
691
+ background: #1890ff;
653
692
  }
654
- .delete-btn[data-v-5ede8782] {
693
+ .delete-btn[data-v-010e7ec8] {
655
694
  appearance: none;
656
695
  padding: 0;
657
696
  position: absolute;
@@ -673,61 +712,61 @@
673
712
  border: 2px solid white;
674
713
  box-shadow: 0 2px 8px rgba(255, 77, 79, 0.3);
675
714
  }
676
- .delete-btn[data-v-5ede8782]:hover {
715
+ .delete-btn[data-v-010e7ec8]:hover {
677
716
  transform: scale(1);
678
717
  background: #ff7875;
679
718
  box-shadow: 0 4px 12px rgba(255, 77, 79, 0.5);
680
719
  }
681
- .delete-btn[data-v-5ede8782]:active {
720
+ .delete-btn[data-v-010e7ec8]:active {
682
721
  transform: scale(0.95);
683
722
  }
684
- .condition-node:hover .delete-btn[data-v-5ede8782],
685
- .condition-node:focus-within .delete-btn[data-v-5ede8782] {
723
+ .copy-node:hover .delete-btn[data-v-010e7ec8],
724
+ .copy-node:focus-within .delete-btn[data-v-010e7ec8] {
686
725
  opacity: 1;
687
726
  transform: scale(1);
688
727
  }
689
- .node-card[data-v-5ede8782] {
728
+ .node-card[data-v-010e7ec8] {
690
729
  background: white;
691
730
  border-radius: 12px;
692
- min-width: 220px;
731
+ min-width: 200px;
693
732
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
694
733
  border: 2px solid transparent;
695
734
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
696
735
  overflow: hidden;
697
736
  cursor: pointer;
698
737
  }
699
- .node-card[data-v-5ede8782]:hover {
738
+ .node-card[data-v-010e7ec8]:hover {
700
739
  transform: translateY(-2px);
701
740
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
702
- border-color: #fa8c16;
741
+ border-color: #52c41a;
703
742
  }
704
- .node-header[data-v-5ede8782] {
743
+ .node-header[data-v-010e7ec8] {
705
744
  padding: 12px 16px;
706
- background: #fff7e6;
707
- border-bottom: 1px solid #ffe7ba;
745
+ background: #f6ffed;
746
+ border-bottom: 1px solid #d9f7be;
708
747
  display: flex;
709
748
  align-items: center;
710
749
  gap: 8px;
711
750
  }
712
- .node-icon[data-v-5ede8782] {
751
+ .node-icon[data-v-010e7ec8] {
713
752
  width: 24px;
714
753
  height: 24px;
715
754
  border-radius: 50%;
716
- background: #fa8c16;
755
+ background: #52c41a;
717
756
  color: white;
718
757
  display: flex;
719
758
  align-items: center;
720
759
  justify-content: center;
721
760
  font-size: 12px;
722
761
  }
723
- .node-title[data-v-5ede8782] {
762
+ .node-title[data-v-010e7ec8] {
724
763
  font-weight: 600;
725
764
  color: #262626;
726
765
  font-size: 14px;
727
766
  flex: 1;
728
767
  }
729
- .node-badge[data-v-5ede8782] {
730
- background: #fa8c16;
768
+ .node-badge[data-v-010e7ec8] {
769
+ background: #52c41a;
731
770
  color: white;
732
771
  padding: 2px 6px;
733
772
  border-radius: 10px;
@@ -736,45 +775,35 @@
736
775
  min-width: 16px;
737
776
  text-align: center;
738
777
  }
739
- .node-content[data-v-5ede8782] {
778
+ .node-content[data-v-010e7ec8] {
740
779
  padding: 16px;
741
780
  }
742
- .conditions-list[data-v-5ede8782] {
781
+ .copy-users-list[data-v-010e7ec8] {
743
782
  display: flex;
744
- flex-direction: column;
783
+ flex-wrap: wrap;
745
784
  gap: 6px;
785
+ align-items: center;
746
786
  }
747
- .condition-tag[data-v-5ede8782] {
787
+ .copy-user-tag[data-v-010e7ec8] {
748
788
  display: flex;
749
789
  align-items: center;
750
790
  gap: 6px;
751
- background: #fff7e6;
752
- color: #fa8c16;
753
- padding: 6px 10px;
754
- border-radius: 8px;
791
+ background: #f6ffed;
792
+ color: #52c41a;
793
+ padding: 4px 8px;
794
+ border-radius: 12px;
755
795
  font-size: 12px;
756
- border: 1px solid #ffd591;
757
- transition: all 0.2s ease;
758
- }
759
- .condition-tag[data-v-5ede8782]:hover {
760
- background: #ffe7ba;
761
- transform: translateX(2px);
762
- }
763
- .condition-icon[data-v-5ede8782] {
764
- font-weight: bold;
765
- color: #d48806;
796
+ border: 1px solid #b7eb8f;
766
797
  }
767
- .more-count[data-v-5ede8782] {
798
+ .more-count[data-v-010e7ec8] {
768
799
  background: #f0f0f0;
769
800
  color: #8c8c8c;
770
801
  padding: 4px 8px;
771
802
  border-radius: 12px;
772
803
  font-size: 12px;
773
804
  font-weight: 500;
774
- text-align: center;
775
- margin-top: 4px;
776
805
  }
777
- .placeholder[data-v-5ede8782] {
806
+ .placeholder[data-v-010e7ec8] {
778
807
  display: flex;
779
808
  align-items: center;
780
809
  gap: 6px;
@@ -782,7 +811,7 @@
782
811
  font-size: 12px;
783
812
  padding: 8px 0;
784
813
  }
785
- .add-node-btn[data-v-5ede8782] {
814
+ .add-node-btn[data-v-010e7ec8] {
786
815
  appearance: none;
787
816
  border: 0;
788
817
  padding: 0;
@@ -793,604 +822,575 @@
793
822
  width: 32px;
794
823
  height: 32px;
795
824
  border-radius: 50%;
796
- background: linear-gradient(135deg, #fa8c16, #d48806);
825
+ background: linear-gradient(135deg, #52c41a, #389e0d);
797
826
  color: white;
798
827
  display: flex;
799
828
  align-items: center;
800
829
  justify-content: center;
801
830
  cursor: pointer;
802
- box-shadow: 0 4px 12px rgba(250, 140, 22, 0.3);
831
+ box-shadow: 0 4px 12px rgba(82, 196, 26, 0.3);
803
832
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
804
833
  font-size: 16px;
805
834
  font-weight: bold;
806
835
  z-index: 10;
807
836
  }
808
- .add-node-btn[data-v-5ede8782]:hover {
837
+ .add-node-btn[data-v-010e7ec8]:hover {
809
838
  transform: translateX(-50%) scale(1.1);
810
- box-shadow: 0 6px 20px rgba(250, 140, 22, 0.4);
839
+ box-shadow: 0 6px 20px rgba(82, 196, 26, 0.4);
811
840
  }
812
- .add-node-btn[data-v-5ede8782]:focus-visible {
813
- outline: 2px solid #fa8c16;
841
+ .add-node-btn[data-v-010e7ec8]:focus-visible {
842
+ outline: 2px solid #52c41a;
814
843
  outline-offset: 2px;
815
844
  }
816
- .delete-btn[data-v-5ede8782]:focus-visible {
845
+ .delete-btn[data-v-010e7ec8]:focus-visible {
817
846
  opacity: 1;
818
- outline: 2px solid #fa8c16;
847
+ outline: 2px solid #52c41a;
819
848
  outline-offset: 2px;
820
849
  }
821
- /* unplugin-vue-components disabled */
822
- /* layer: default */
823
- .absolute[data-v-5ede8782]{position:absolute;}
824
- .relative[data-v-5ede8782]{position:relative;}
825
- .hidden[data-v-5ede8782]{display:none;}
826
- .flex[data-v-5ede8782]{display:flex;}
827
- .transform[data-v-5ede8782]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
828
- .border[data-v-5ede8782]{border-width:1px;}
829
- .outline[data-v-5ede8782]{outline-style:solid;}
830
- .transition[data-v-5ede8782]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
831
- .ease[data-v-5ede8782]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
832
-
833
- /* unplugin-vue-components disabled *//* C_WorkFlow 组件样式 */
834
- .approval-workflow-container[data-v-b2b17129] {
835
- width: 100%;
836
- height: 600px;
850
+ /* unplugin-vue-components disabled */.approval-node[data-v-e6968a42] {
837
851
  position: relative;
838
- background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
839
- border-radius: 12px;
840
- overflow: hidden;
841
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
842
852
  }
843
- .floating-toolbar[data-v-b2b17129] {
853
+ .status-indicator[data-v-e6968a42] {
844
854
  position: absolute;
845
- top: 16px;
846
- left: 16px;
847
- z-index: 10;
848
- display: flex;
849
- align-items: center;
850
- gap: 8px;
851
- background: var(--n-card-color);
852
- backdrop-filter: blur(10px);
853
- padding: 8px 12px;
854
- border-radius: 8px;
855
- box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
856
- border: 1px solid var(--n-border-color);
857
- }
858
- .floating-toolbar .toolbar-divider[data-v-b2b17129] {
859
- width: 1px;
860
- height: 20px;
861
- background: var(--n-border-color);
862
- margin: 0 4px;
863
- }
864
- .workflow-canvas[data-v-b2b17129] {
865
- width: 100%;
866
- height: 100%;
867
- }
868
- .add-node-menu[data-v-b2b17129] {
869
- position: fixed;
870
- z-index: 1000;
871
- pointer-events: none;
872
- }
873
- .add-node-menu .add-menu-content[data-v-b2b17129] {
874
- background: var(--n-card-color);
875
- border-radius: 12px;
876
- padding: 12px;
877
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
878
- border: 1px solid var(--n-border-color);
879
- display: flex;
880
- gap: 8px;
881
- pointer-events: auto;
882
- animation: menuSlideUp-b2b17129 0.3s ease;
883
- }
884
- .add-menu-item[data-v-b2b17129] {
885
- appearance: none;
886
- border: 0;
887
- color: inherit;
888
- font: inherit;
889
- display: flex;
890
- flex-direction: column;
891
- align-items: center;
892
- padding: 12px 8px;
893
- border-radius: 8px;
894
- cursor: pointer;
895
- transition: all 0.2s ease;
896
- min-width: 70px;
897
- background: var(--n-color-embedded);
898
- }
899
- .add-menu-item[data-v-b2b17129]:hover {
900
- background: var(--n-color-hover);
901
- }
902
- .add-menu-item[data-v-b2b17129]:focus-visible {
903
- outline: 2px solid var(--n-color-target, #18a058);
904
- outline-offset: 2px;
905
- }
906
- .menu-icon[data-v-b2b17129] {
907
- width: 32px;
908
- height: 32px;
855
+ top: -4px;
856
+ right: -4px;
857
+ width: 12px;
858
+ height: 12px;
909
859
  border-radius: 50%;
910
- display: flex;
911
- align-items: center;
912
- justify-content: center;
913
- margin-bottom: 6px;
914
- color: white;
915
- }
916
- .menu-icon.approval-icon[data-v-b2b17129] {
917
- background: linear-gradient(135deg, #1890ff, #722ed1);
918
- }
919
- .menu-icon.copy-icon[data-v-b2b17129] {
920
- background: linear-gradient(135deg, #52c41a, #389e0d);
921
- }
922
- .menu-icon.condition-icon[data-v-b2b17129] {
923
- background: linear-gradient(135deg, #fa8c16, #d48806);
924
- }
925
- .menu-text[data-v-b2b17129] {
926
- font-size: 12px;
927
- font-weight: 500;
928
- }
929
- @keyframes menuSlideUp-b2b17129 {
930
- from {
931
- opacity: 0;
932
- transform: translateY(10px);
933
- }
934
- to {
935
- opacity: 1;
936
- transform: translateY(0);
937
- }
938
- }
939
- /* 流程/数据校验结果显示样式 */
940
- .validation-success[data-v-b2b17129] {
941
- text-align: center;
942
- padding: 40px 20px;
943
- color: #52c41a;
944
- }
945
- .validation-success .success-icon[data-v-b2b17129] {
946
- margin-bottom: 16px;
947
- }
948
- .validation-success h3[data-v-b2b17129] {
949
- margin: 0 0 8px 0;
950
- font-size: 18px;
951
- font-weight: 600;
952
- }
953
- .validation-success p[data-v-b2b17129] {
954
- margin: 0;
955
- color: #666;
956
- font-size: 14px;
957
- }
958
- .validation-errors .error-summary[data-v-b2b17129] {
959
- text-align: center;
960
- padding: 20px;
961
- background: #fff2f0;
962
- border-radius: 8px;
963
- margin-bottom: 20px;
964
- border: 1px solid #ffccc7;
860
+ border: 2px solid white;
861
+ z-index: 2;
862
+ background: #faad14;
965
863
  }
966
- .validation-errors .error-summary .error-icon[data-v-b2b17129] {
967
- margin-bottom: 12px;
864
+ .status-indicator.approved[data-v-e6968a42] {
865
+ background: #52c41a;
968
866
  }
969
- .validation-errors .error-summary h3[data-v-b2b17129] {
970
- margin: 0 0 8px 0;
971
- color: #ff4d4f;
972
- font-size: 16px;
973
- font-weight: 600;
867
+ .status-indicator.rejected[data-v-e6968a42] {
868
+ background: #ff4d4f;
974
869
  }
975
- .validation-errors .error-summary p[data-v-b2b17129] {
976
- margin: 0;
977
- color: var(--n-text-color-2);
978
- font-size: 14px;
870
+ .status-indicator.pending[data-v-e6968a42] {
871
+ background: #1890ff;
979
872
  }
980
- .validation-errors .error-list[data-v-b2b17129] {
873
+ .delete-btn[data-v-e6968a42] {
874
+ appearance: none;
875
+ padding: 0;
876
+ position: absolute;
877
+ top: -10px;
878
+ right: -10px;
879
+ width: 24px;
880
+ height: 24px;
881
+ border-radius: 50%;
882
+ background: #ff4d4f;
883
+ color: white;
981
884
  display: flex;
982
- flex-direction: column;
983
- gap: 12px;
885
+ align-items: center;
886
+ justify-content: center;
887
+ cursor: pointer;
888
+ z-index: 100; /* 确保在所有元素之上 */
889
+ opacity: 0;
890
+ transform: scale(0.8);
891
+ transition: all 0.2s ease;
892
+ border: 2px solid white;
893
+ box-shadow: 0 2px 8px rgba(255, 77, 79, 0.3);
984
894
  }
985
- .validation-errors .error-item[data-v-b2b17129] {
895
+ .delete-btn[data-v-e6968a42]:hover {
896
+ transform: scale(1);
897
+ background: #ff7875;
898
+ box-shadow: 0 4px 12px rgba(255, 77, 79, 0.5);
899
+ }
900
+ .delete-btn[data-v-e6968a42]:active {
901
+ transform: scale(0.95);
902
+ }
903
+ .approval-node:hover .delete-btn[data-v-e6968a42],
904
+ .approval-node:focus-within .delete-btn[data-v-e6968a42] {
905
+ opacity: 1;
906
+ transform: scale(1);
907
+ }
908
+ .node-card[data-v-e6968a42] {
986
909
  background: white;
987
- border: 1px solid #f0f0f0;
988
- border-radius: 8px;
989
- padding: 16px;
990
- transition: all 0.2s ease;
910
+ border-radius: 12px;
911
+ min-width: 240px;
912
+ max-width: 300px;
913
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
914
+ border: 2px solid transparent;
915
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
916
+ overflow: hidden;
917
+ cursor: pointer;
991
918
  }
992
- .validation-errors .error-item[data-v-b2b17129]:hover {
993
- border-color: #d9d9d9;
994
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
919
+ .node-card[data-v-e6968a42]:hover {
920
+ transform: translateY(-2px);
921
+ box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
922
+ border-color: #1890ff;
995
923
  }
996
- .validation-errors .error-item .error-header[data-v-b2b17129] {
924
+ .node-header[data-v-e6968a42] {
925
+ padding: 12px 16px;
926
+ background: linear-gradient(135deg, #e6f7ff, #f0f9ff);
927
+ border-bottom: 1px solid #91d5ff;
997
928
  display: flex;
998
929
  align-items: center;
999
- gap: 12px;
1000
- margin-bottom: 8px;
930
+ gap: 8px;
931
+ flex-wrap: wrap;
1001
932
  }
1002
- .validation-errors .error-item .error-header .error-number[data-v-b2b17129] {
933
+ .node-icon[data-v-e6968a42] {
1003
934
  width: 24px;
1004
935
  height: 24px;
1005
- background: #ff4d4f;
1006
- color: white;
1007
936
  border-radius: 50%;
937
+ background: #1890ff;
938
+ color: white;
1008
939
  display: flex;
1009
940
  align-items: center;
1010
941
  justify-content: center;
1011
- font-size: 12px;
1012
- font-weight: 600;
1013
- flex-shrink: 0;
1014
- }
1015
- .validation-errors .error-item .error-header .error-info[data-v-b2b17129] {
1016
- flex: 1;
1017
- min-width: 0;
1018
942
  }
1019
- .validation-errors .error-item .error-header .error-info .error-node[data-v-b2b17129] {
1020
- display: block;
943
+ .node-title[data-v-e6968a42] {
944
+ font-weight: 600;
1021
945
  color: var(--n-text-color-1);
1022
946
  font-size: 14px;
1023
- margin-bottom: 2px;
1024
- }
1025
- .validation-errors .error-item .error-header .error-info .error-field[data-v-b2b17129] {
1026
- color: var(--n-text-color-3);
1027
- font-size: 12px;
947
+ flex: 1;
1028
948
  }
1029
- .validation-errors .error-item .error-header .error-type[data-v-b2b17129] {
1030
- padding: 2px 8px;
1031
- border-radius: 4px;
949
+ .node-badge[data-v-e6968a42] {
950
+ background: #1890ff;
951
+ color: white;
952
+ padding: 2px 6px;
953
+ border-radius: 10px;
1032
954
  font-size: 11px;
1033
- font-weight: 500;
1034
- }
1035
- .validation-errors .error-item .error-header .error-type.required[data-v-b2b17129] {
1036
- background: #fff2f0;
1037
- color: #ff4d4f;
1038
- border: 1px solid #ffccc7;
1039
- }
1040
- .validation-errors .error-item .error-header .error-type.incomplete[data-v-b2b17129] {
1041
- background: #fff7e6;
1042
- color: #fa8c16;
1043
- border: 1px solid #ffd591;
1044
- }
1045
- .validation-errors .error-item .error-header .error-type.warning[data-v-b2b17129] {
1046
- background: #fffbe6;
1047
- color: #faad14;
1048
- border: 1px solid #ffe58f;
1049
- }
1050
- .validation-errors .error-item .error-message[data-v-b2b17129] {
1051
- color: var(--n-text-color-2);
1052
- font-size: 13px;
1053
- line-height: 1.5;
1054
- margin-bottom: 12px;
1055
- padding-left: 36px;
1056
- }
1057
- .validation-errors .error-item .error-actions[data-v-b2b17129] {
1058
- padding-left: 36px;
1059
- }
1060
- .validation-errors .validation-tips[data-v-b2b17129] {
1061
- margin-top: 24px;
1062
- padding: 16px;
1063
- background: #f6ffed;
1064
- border-radius: 8px;
1065
- border: 1px solid #b7eb8f;
1066
- }
1067
- .validation-errors .validation-tips h4[data-v-b2b17129] {
1068
- margin: 0 0 12px 0;
1069
- color: #389e0d;
1070
- font-size: 14px;
1071
955
  font-weight: 600;
956
+ min-width: 16px;
957
+ text-align: center;
1072
958
  }
1073
- .validation-errors .validation-tips ul[data-v-b2b17129] {
1074
- margin: 0;
1075
- padding-left: 16px;
1076
- color: var(--n-text-color-2);
1077
- font-size: 13px;
1078
- line-height: 1.6;
1079
- }
1080
- .validation-errors .validation-tips ul li[data-v-b2b17129] {
1081
- margin-bottom: 6px;
959
+ .approval-mode-badge[data-v-e6968a42] {
960
+ background: #f0f0f0;
961
+ color: #666;
962
+ padding: 2px 6px;
963
+ border-radius: 8px;
964
+ font-size: 10px;
965
+ font-weight: 500;
1082
966
  }
1083
- .validation-errors .validation-tips ul li strong[data-v-b2b17129] {
1084
- color: var(--n-text-color-1);
967
+ .node-content[data-v-e6968a42] {
968
+ padding: 16px;
1085
969
  }
1086
- .validation-footer[data-v-b2b17129] {
970
+ .approvers-list[data-v-e6968a42] {
1087
971
  display: flex;
972
+ flex-direction: column;
1088
973
  gap: 8px;
1089
- justify-content: flex-end;
1090
- }
1091
-
1092
- /* 边的样式(Vue Flow) */
1093
- [data-v-b2b17129] .vue-flow__edge {
1094
- stroke: #1890ff;
1095
- stroke-width: 2px;
1096
- }
1097
- [data-v-b2b17129] .vue-flow__edge-path {
1098
- stroke: #1890ff;
1099
- stroke-width: 2px;
1100
- }
1101
- [data-v-b2b17129] .vue-flow__arrowhead {
1102
- fill: #1890ff;
1103
- }
1104
- [data-v-b2b17129] .vue-flow__edge.animated {
1105
- stroke-dasharray: 5;
1106
- animation: dashdraw-b2b17129 0.5s linear infinite;
1107
- }
1108
- @keyframes dashdraw-b2b17129 {
1109
- to {
1110
- stroke-dashoffset: -10;
1111
- }
1112
- }
1113
- /* 暗色主题适配 */
1114
- [data-theme=dark] .approval-workflow-container[data-v-b2b17129] {
1115
- background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
1116
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
1117
- }
1118
- [data-theme=dark][data-v-b2b17129] {
1119
- /* 添加节点菜单文字 */
1120
974
  }
1121
- [data-theme=dark] .add-menu-item span[data-v-b2b17129] {
1122
- color: white;
1123
- }
1124
- [data-theme=dark] .validation-success[data-v-b2b17129] {
1125
- color: #52c41a;
1126
- }
1127
- [data-theme=dark] .validation-success h3[data-v-b2b17129] {
1128
- color: #52c41a;
1129
- }
1130
- [data-theme=dark] .validation-success p[data-v-b2b17129] {
1131
- color: var(--n-text-color-2);
975
+ .approver-tag[data-v-e6968a42] {
976
+ background: linear-gradient(135deg, #e6f7ff, #f0f9ff);
977
+ border: 1px solid #91d5ff;
978
+ border-radius: 8px;
979
+ padding: 8px 12px;
980
+ transition: all 0.2s ease;
1132
981
  }
1133
- [data-theme=dark] .validation-errors .error-summary[data-v-b2b17129] {
1134
- background: rgba(255, 77, 79, 0.1);
1135
- border-color: rgba(255, 77, 79, 0.3);
982
+ .approver-tag[data-v-e6968a42]:hover {
983
+ transform: translateX(2px);
984
+ box-shadow: 0 2px 8px rgba(24, 144, 255, 0.2);
1136
985
  }
1137
- [data-theme=dark] .validation-errors .error-summary h3[data-v-b2b17129] {
1138
- color: #ff4d4f;
986
+ .approver-tag .approver-info[data-v-e6968a42] {
987
+ display: flex;
988
+ align-items: center;
989
+ gap: 8px;
1139
990
  }
1140
- [data-theme=dark] .validation-errors .error-summary p[data-v-b2b17129] {
1141
- color: var(--n-text-color-2);
991
+ .approver-tag .approver-info .approver-avatar[data-v-e6968a42] {
992
+ flex-shrink: 0;
1142
993
  }
1143
- [data-theme=dark] .validation-errors .error-item[data-v-b2b17129] {
1144
- background: var(--n-card-color);
1145
- border-color: var(--n-border-color);
994
+ .approver-tag .approver-info .approver-details[data-v-e6968a42] {
995
+ display: flex;
996
+ flex-direction: column;
997
+ gap: 2px;
998
+ min-width: 0;
1146
999
  }
1147
- [data-theme=dark] .validation-errors .error-item[data-v-b2b17129]:hover {
1148
- border-color: rgba(255, 255, 255, 0.2);
1149
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
1000
+ .approver-tag .approver-info .approver-details .approver-name[data-v-e6968a42] {
1001
+ font-weight: 600;
1002
+ color: #1890ff;
1003
+ font-size: 13px;
1150
1004
  }
1151
- [data-theme=dark] .validation-errors .error-item .error-info .error-node[data-v-b2b17129] {
1152
- color: var(--n-text-color-1);
1005
+ .approver-tag .approver-info .approver-details .approver-dept[data-v-e6968a42] {
1006
+ font-size: 11px;
1007
+ color: #666;
1008
+ background: rgba(0, 0, 0, 0.05);
1009
+ padding: 1px 4px;
1010
+ border-radius: 4px;
1011
+ display: inline-block;
1153
1012
  }
1154
- [data-theme=dark] .validation-errors .error-item .error-info .error-field[data-v-b2b17129] {
1155
- color: var(--n-text-color-3);
1013
+ .approver-tag .approver-info .approver-details .approver-role[data-v-e6968a42] {
1014
+ font-size: 10px;
1015
+ color: #999;
1156
1016
  }
1157
- [data-theme=dark] .validation-errors .error-item .error-type.required[data-v-b2b17129] {
1158
- background: rgba(255, 77, 79, 0.15);
1159
- color: #ff7875;
1160
- border-color: rgba(255, 77, 79, 0.3);
1017
+ .more-count[data-v-e6968a42] {
1018
+ background: #f0f0f0;
1019
+ color: #8c8c8c;
1020
+ padding: 6px 8px;
1021
+ border-radius: 12px;
1022
+ font-size: 12px;
1023
+ font-weight: 500;
1024
+ text-align: center;
1025
+ border: 1px dashed #d9d9d9;
1161
1026
  }
1162
- [data-theme=dark] .validation-errors .error-item .error-type.incomplete[data-v-b2b17129] {
1163
- background: rgba(250, 140, 22, 0.15);
1164
- color: #ffa940;
1165
- border-color: rgba(250, 140, 22, 0.3);
1027
+ .placeholder[data-v-e6968a42] {
1028
+ display: flex;
1029
+ flex-direction: column;
1030
+ align-items: center;
1031
+ justify-content: center;
1032
+ gap: 8px;
1033
+ color: #8c8c8c;
1034
+ font-size: 12px;
1035
+ padding: 20px 0;
1036
+ border: 1px dashed #d9d9d9;
1037
+ border-radius: 8px;
1038
+ background: #fafafa;
1166
1039
  }
1167
- [data-theme=dark] .validation-errors .error-item .error-type.warning[data-v-b2b17129] {
1168
- background: rgba(250, 173, 20, 0.15);
1169
- color: #ffc53d;
1170
- border-color: rgba(250, 173, 20, 0.3);
1040
+ .placeholder span[data-v-e6968a42] {
1041
+ font-weight: 500;
1171
1042
  }
1172
- [data-theme=dark] .validation-errors .error-item .error-message[data-v-b2b17129] {
1173
- color: var(--n-text-color-2);
1043
+ .add-node-btn[data-v-e6968a42] {
1044
+ appearance: none;
1045
+ border: 0;
1046
+ padding: 0;
1047
+ position: absolute;
1048
+ left: 50%;
1049
+ bottom: -20px;
1050
+ transform: translateX(-50%);
1051
+ width: 32px;
1052
+ height: 32px;
1053
+ border-radius: 50%;
1054
+ background: linear-gradient(135deg, #1890ff, #722ed1);
1055
+ color: white;
1056
+ display: flex;
1057
+ align-items: center;
1058
+ justify-content: center;
1059
+ cursor: pointer;
1060
+ box-shadow: 0 4px 12px rgba(24, 144, 255, 0.3);
1061
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1062
+ z-index: 10;
1174
1063
  }
1175
- [data-theme=dark] .validation-errors .validation-tips[data-v-b2b17129] {
1176
- background: rgba(82, 196, 26, 0.1);
1177
- border-color: rgba(82, 196, 26, 0.3);
1064
+ .add-node-btn[data-v-e6968a42]:hover {
1065
+ transform: translateX(-50%) scale(1.1);
1066
+ box-shadow: 0 6px 20px rgba(24, 144, 255, 0.4);
1178
1067
  }
1179
- [data-theme=dark] .validation-errors .validation-tips h4[data-v-b2b17129] {
1180
- color: #73d13d;
1068
+ .add-node-btn[data-v-e6968a42]:focus-visible {
1069
+ outline: 2px solid #1890ff;
1070
+ outline-offset: 2px;
1181
1071
  }
1182
- [data-theme=dark] .validation-errors .validation-tips ul[data-v-b2b17129] {
1183
- color: var(--n-text-color-2);
1072
+ .delete-btn[data-v-e6968a42]:focus-visible {
1073
+ opacity: 1;
1074
+ outline: 2px solid #1890ff;
1075
+ outline-offset: 2px;
1184
1076
  }
1185
- [data-theme=dark] .validation-errors .validation-tips ul li strong[data-v-b2b17129] {
1186
- color: var(--n-text-color-1);
1077
+ /* unplugin-vue-components disabled */.start-node[data-v-6fb2df95] {
1078
+ position: relative;
1187
1079
  }
1188
-
1189
- /* ─── 流程预览抽屉样式 ────────────────────────────────────── */
1190
- .preview-stats[data-v-b2b17129] {
1080
+ .node-content[data-v-6fb2df95] {
1081
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
1082
+ color: white;
1083
+ padding: 16px 20px;
1084
+ border-radius: 12px;
1191
1085
  display: flex;
1086
+ align-items: center;
1087
+ justify-content: center;
1192
1088
  gap: 12px;
1193
- margin-bottom: 24px;
1194
- flex-wrap: wrap;
1089
+ min-width: 160px;
1090
+ box-shadow: 0 4px 20px rgba(102, 126, 234, 0.3);
1091
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1092
+ cursor: pointer;
1195
1093
  }
1196
- .preview-stats .stat-item[data-v-b2b17129] {
1197
- flex: 1;
1198
- min-width: 70px;
1094
+ .node-content[data-v-6fb2df95]:hover {
1095
+ transform: translateY(-2px);
1096
+ box-shadow: 0 8px 30px rgba(102, 126, 234, 0.4);
1097
+ }
1098
+ .node-icon[data-v-6fb2df95] {
1099
+ font-size: 16px;
1100
+ flex-shrink: 0;
1101
+ }
1102
+ .node-info[data-v-6fb2df95] {
1103
+ display: flex;
1104
+ flex-direction: column;
1105
+ gap: 4px;
1199
1106
  text-align: center;
1200
- padding: 12px 8px;
1201
- border-radius: 10px;
1202
- background: var(--n-action-color);
1203
- border: 1px solid var(--n-border-color);
1204
- transition: all 0.2s;
1205
1107
  }
1206
- .preview-stats .stat-item .stat-value[data-v-b2b17129] {
1207
- display: block;
1208
- font-size: 22px;
1209
- font-weight: 700;
1210
- color: var(--n-text-color-1);
1108
+ .node-text[data-v-6fb2df95] {
1109
+ font-weight: 600;
1110
+ font-size: 14px;
1211
1111
  }
1212
- .preview-stats .stat-item .stat-label[data-v-b2b17129] {
1213
- display: block;
1112
+ .initiator-name[data-v-6fb2df95] {
1214
1113
  font-size: 12px;
1215
- color: var(--n-text-color-3);
1216
- margin-top: 4px;
1114
+ opacity: 0.9;
1115
+ background: rgba(255, 255, 255, 0.2);
1116
+ padding: 2px 8px;
1117
+ border-radius: 8px;
1217
1118
  }
1218
- .preview-stats .stat-item.approval .stat-value[data-v-b2b17129] {
1219
- color: #ff6b35;
1119
+ .placeholder-text[data-v-6fb2df95] {
1120
+ font-size: 11px;
1121
+ opacity: 0.7;
1122
+ font-style: italic;
1220
1123
  }
1221
- .preview-stats .stat-item.copy .stat-value[data-v-b2b17129] {
1222
- color: #1890ff;
1124
+ .add-node-btn[data-v-6fb2df95] {
1125
+ appearance: none;
1126
+ border: 0;
1127
+ padding: 0;
1128
+ position: absolute;
1129
+ left: 50%;
1130
+ bottom: -20px;
1131
+ transform: translateX(-50%);
1132
+ width: 32px;
1133
+ height: 32px;
1134
+ border-radius: 50%;
1135
+ background: linear-gradient(135deg, #1890ff, #722ed1);
1136
+ color: white;
1137
+ display: flex;
1138
+ align-items: center;
1139
+ justify-content: center;
1140
+ cursor: pointer;
1141
+ box-shadow: 0 4px 12px rgba(24, 144, 255, 0.3);
1142
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1143
+ font-size: 16px;
1144
+ font-weight: bold;
1145
+ z-index: 10;
1223
1146
  }
1224
- .preview-stats .stat-item.condition .stat-value[data-v-b2b17129] {
1225
- color: #faad14;
1147
+ .add-node-btn[data-v-6fb2df95]:hover {
1148
+ transform: translateX(-50%) scale(1.1);
1149
+ box-shadow: 0 6px 20px rgba(24, 144, 255, 0.4);
1226
1150
  }
1227
- .preview-stats .stat-item.edge .stat-value[data-v-b2b17129] {
1228
- color: #52c41a;
1151
+ .add-node-btn[data-v-6fb2df95]:focus-visible {
1152
+ outline: 2px solid #1890ff;
1153
+ outline-offset: 2px;
1229
1154
  }
1230
- .preview-timeline[data-v-b2b17129] {
1155
+ /* unplugin-vue-components disabled */
1156
+ /* layer: default */
1157
+ .absolute[data-v-5ede8782]{position:absolute;}
1158
+ .relative[data-v-5ede8782]{position:relative;}
1159
+ .hidden[data-v-5ede8782]{display:none;}
1160
+ .flex[data-v-5ede8782]{display:flex;}
1161
+ .transform[data-v-5ede8782]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
1162
+ .border[data-v-5ede8782]{border-width:1px;}
1163
+ .outline[data-v-5ede8782]{outline-style:solid;}
1164
+ .transition[data-v-5ede8782]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
1165
+ .ease[data-v-5ede8782]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
1166
+
1167
+ /* unplugin-vue-components disabled */.condition-node[data-v-5ede8782] {
1231
1168
  position: relative;
1232
- padding: 0 0 0 8px;
1233
1169
  }
1234
- .preview-timeline .preview-step[data-v-b2b17129] {
1235
- display: flex;
1236
- gap: 16px;
1237
- position: relative;
1238
- padding-bottom: 8px;
1170
+ .status-indicator[data-v-5ede8782] {
1171
+ position: absolute;
1172
+ top: -4px;
1173
+ right: -4px;
1174
+ width: 12px;
1175
+ height: 12px;
1176
+ border-radius: 50%;
1177
+ border: 2px solid white;
1178
+ z-index: 2;
1179
+ background: #faad14;
1239
1180
  }
1240
- .preview-timeline .preview-step:last-child .step-line[data-v-b2b17129] {
1241
- display: none;
1181
+ .status-indicator.completed[data-v-5ede8782] {
1182
+ background: #52c41a;
1242
1183
  }
1243
- .preview-timeline .step-connector[data-v-b2b17129] {
1244
- display: flex;
1245
- flex-direction: column;
1246
- align-items: center;
1247
- flex-shrink: 0;
1248
- width: 32px;
1184
+ .status-indicator.active[data-v-5ede8782] {
1185
+ background: #fa8c16;
1249
1186
  }
1250
- .preview-timeline .step-connector .step-dot[data-v-b2b17129] {
1251
- width: 32px;
1252
- height: 32px;
1187
+ .delete-btn[data-v-5ede8782] {
1188
+ appearance: none;
1189
+ padding: 0;
1190
+ position: absolute;
1191
+ top: -10px;
1192
+ right: -10px;
1193
+ width: 24px;
1194
+ height: 24px;
1253
1195
  border-radius: 50%;
1196
+ background: #ff4d4f;
1197
+ color: white;
1254
1198
  display: flex;
1255
1199
  align-items: center;
1256
1200
  justify-content: center;
1257
- color: white;
1258
- flex-shrink: 0;
1259
- z-index: 1;
1260
- background: #999;
1261
- }
1262
- .preview-timeline .step-connector .step-line[data-v-b2b17129] {
1263
- width: 2px;
1264
- flex: 1;
1265
- min-height: 20px;
1266
- background: var(--n-border-color);
1267
- }
1268
- .preview-timeline[data-v-b2b17129] {
1269
- /* 不同节点类型的圆点颜色 */
1201
+ cursor: pointer;
1202
+ z-index: 100;
1203
+ opacity: 0;
1204
+ transform: scale(0.8);
1205
+ transition: all 0.2s ease;
1206
+ border: 2px solid white;
1207
+ box-shadow: 0 2px 8px rgba(255, 77, 79, 0.3);
1270
1208
  }
1271
- .preview-timeline .start .step-dot[data-v-b2b17129] {
1272
- background: linear-gradient(135deg, #667eea, #764ba2);
1209
+ .delete-btn[data-v-5ede8782]:hover {
1210
+ transform: scale(1);
1211
+ background: #ff7875;
1212
+ box-shadow: 0 4px 12px rgba(255, 77, 79, 0.5);
1273
1213
  }
1274
- .preview-timeline .approval .step-dot[data-v-b2b17129] {
1275
- background: linear-gradient(135deg, #ff6b35, #ff4500);
1214
+ .delete-btn[data-v-5ede8782]:active {
1215
+ transform: scale(0.95);
1276
1216
  }
1277
- .preview-timeline .copy .step-dot[data-v-b2b17129] {
1278
- background: linear-gradient(135deg, #1890ff, #096dd9);
1217
+ .condition-node:hover .delete-btn[data-v-5ede8782],
1218
+ .condition-node:focus-within .delete-btn[data-v-5ede8782] {
1219
+ opacity: 1;
1220
+ transform: scale(1);
1279
1221
  }
1280
- .preview-timeline .condition .step-dot[data-v-b2b17129] {
1281
- background: linear-gradient(135deg, #faad14, #d48806);
1222
+ .node-card[data-v-5ede8782] {
1223
+ background: white;
1224
+ border-radius: 12px;
1225
+ min-width: 220px;
1226
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
1227
+ border: 2px solid transparent;
1228
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1229
+ overflow: hidden;
1230
+ cursor: pointer;
1282
1231
  }
1283
- .preview-timeline .step-content[data-v-b2b17129] {
1284
- flex: 1;
1285
- padding-bottom: 20px;
1286
- min-width: 0;
1232
+ .node-card[data-v-5ede8782]:hover {
1233
+ transform: translateY(-2px);
1234
+ box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
1235
+ border-color: #fa8c16;
1287
1236
  }
1288
- .preview-timeline .step-content .step-header[data-v-b2b17129] {
1237
+ .node-header[data-v-5ede8782] {
1238
+ padding: 12px 16px;
1239
+ background: #fff7e6;
1240
+ border-bottom: 1px solid #ffe7ba;
1289
1241
  display: flex;
1290
1242
  align-items: center;
1291
1243
  gap: 8px;
1292
- margin-bottom: 6px;
1293
1244
  }
1294
- .preview-timeline .step-content .step-header .step-order[data-v-b2b17129] {
1245
+ .node-icon[data-v-5ede8782] {
1246
+ width: 24px;
1247
+ height: 24px;
1248
+ border-radius: 50%;
1249
+ background: #fa8c16;
1250
+ color: white;
1251
+ display: flex;
1252
+ align-items: center;
1253
+ justify-content: center;
1295
1254
  font-size: 12px;
1296
- color: var(--n-text-color-3);
1297
- font-weight: 500;
1298
1255
  }
1299
- .preview-timeline .step-content .step-header .step-type-badge[data-v-b2b17129] {
1300
- font-size: 11px;
1301
- padding: 1px 8px;
1302
- border-radius: 10px;
1303
- background: var(--n-action-color);
1304
- color: var(--n-text-color-2);
1305
- border: 1px solid var(--n-border-color);
1256
+ .node-title[data-v-5ede8782] {
1257
+ font-weight: 600;
1258
+ color: #262626;
1259
+ font-size: 14px;
1260
+ flex: 1;
1306
1261
  }
1307
- .preview-timeline .step-content .step-title[data-v-b2b17129] {
1308
- font-size: 15px;
1262
+ .node-badge[data-v-5ede8782] {
1263
+ background: #fa8c16;
1264
+ color: white;
1265
+ padding: 2px 6px;
1266
+ border-radius: 10px;
1267
+ font-size: 11px;
1309
1268
  font-weight: 600;
1310
- color: var(--n-text-color-1);
1311
- margin-bottom: 8px;
1269
+ min-width: 16px;
1270
+ text-align: center;
1312
1271
  }
1313
- .preview-timeline .step-content .step-details[data-v-b2b17129] {
1314
- background: var(--n-action-color);
1315
- border-radius: 8px;
1316
- padding: 10px 14px;
1317
- border: 1px solid var(--n-border-color);
1272
+ .node-content[data-v-5ede8782] {
1273
+ padding: 16px;
1318
1274
  }
1319
- .preview-timeline .step-content .step-details .step-detail-item[data-v-b2b17129] {
1320
- font-size: 13px;
1321
- color: var(--n-text-color-2);
1322
- line-height: 1.8;
1323
- word-break: break-all;
1275
+ .conditions-list[data-v-5ede8782] {
1324
1276
  display: flex;
1325
- align-items: flex-start;
1326
- flex-wrap: wrap;
1327
- gap: 4px;
1328
- }
1329
- .preview-timeline .step-content .step-details .step-detail-item[data-v-b2b17129]:not(:last-child) {
1330
- border-bottom: 1px dashed var(--n-border-color);
1331
- padding-bottom: 8px;
1332
- margin-bottom: 8px;
1333
- }
1334
- .preview-timeline .step-content .step-details .step-detail-item.is-warning[data-v-b2b17129] {
1335
- color: #faad14;
1336
- }
1337
- .preview-timeline .step-content .step-details .step-detail-item .detail-label[data-v-b2b17129] {
1338
- color: var(--n-text-color-3);
1339
- font-size: 12px;
1340
- flex-shrink: 0;
1341
- line-height: 24px;
1277
+ flex-direction: column;
1278
+ gap: 6px;
1342
1279
  }
1343
- .preview-timeline .step-content .step-details .step-detail-item .mode-badge[data-v-b2b17129] {
1344
- display: inline-block;
1280
+ .condition-tag[data-v-5ede8782] {
1281
+ display: flex;
1282
+ align-items: center;
1283
+ gap: 6px;
1284
+ background: #fff7e6;
1285
+ color: #fa8c16;
1286
+ padding: 6px 10px;
1287
+ border-radius: 8px;
1345
1288
  font-size: 12px;
1346
- font-weight: 600;
1347
- padding: 2px 10px;
1348
- border-radius: 12px;
1349
- line-height: 20px;
1350
- }
1351
- .preview-timeline .step-content .step-details .step-detail-item .mode-badge.any[data-v-b2b17129] {
1352
- background: rgba(24, 144, 255, 0.1);
1353
- color: #1890ff;
1354
- border: 1px solid rgba(24, 144, 255, 0.25);
1355
- }
1356
- .preview-timeline .step-content .step-details .step-detail-item .mode-badge.all[data-v-b2b17129] {
1357
- background: rgba(255, 77, 79, 0.1);
1358
- color: #ff4d4f;
1359
- border: 1px solid rgba(255, 77, 79, 0.25);
1289
+ border: 1px solid #ffd591;
1290
+ transition: all 0.2s ease;
1360
1291
  }
1361
- .preview-timeline .step-content .step-details .step-detail-item .mode-badge.sequence[data-v-b2b17129] {
1362
- background: rgba(114, 46, 209, 0.1);
1363
- color: #722ed1;
1364
- border: 1px solid rgba(114, 46, 209, 0.25);
1292
+ .condition-tag[data-v-5ede8782]:hover {
1293
+ background: #ffe7ba;
1294
+ transform: translateX(2px);
1365
1295
  }
1366
- .preview-timeline .step-content .step-details .step-detail-item .user-tag[data-v-b2b17129] {
1367
- margin: 1px 2px;
1296
+ .condition-icon[data-v-5ede8782] {
1297
+ font-weight: bold;
1298
+ color: #d48806;
1368
1299
  }
1369
- .preview-timeline .step-content .step-details .step-detail-item .warning-text[data-v-b2b17129] {
1370
- color: #faad14;
1300
+ .more-count[data-v-5ede8782] {
1301
+ background: #f0f0f0;
1302
+ color: #8c8c8c;
1303
+ padding: 4px 8px;
1304
+ border-radius: 12px;
1305
+ font-size: 12px;
1371
1306
  font-weight: 500;
1307
+ text-align: center;
1308
+ margin-top: 4px;
1372
1309
  }
1373
- .preview-empty[data-v-b2b17129] {
1310
+ .placeholder[data-v-5ede8782] {
1311
+ display: flex;
1312
+ align-items: center;
1313
+ gap: 6px;
1314
+ color: #8c8c8c;
1315
+ font-size: 12px;
1316
+ padding: 8px 0;
1317
+ }
1318
+ .add-node-btn[data-v-5ede8782] {
1319
+ appearance: none;
1320
+ border: 0;
1321
+ padding: 0;
1322
+ position: absolute;
1323
+ left: 50%;
1324
+ bottom: -20px;
1325
+ transform: translateX(-50%);
1326
+ width: 32px;
1327
+ height: 32px;
1328
+ border-radius: 50%;
1329
+ background: linear-gradient(135deg, #fa8c16, #d48806);
1330
+ color: white;
1374
1331
  display: flex;
1375
- flex-direction: column;
1376
1332
  align-items: center;
1377
1333
  justify-content: center;
1378
- padding: 60px 0;
1334
+ cursor: pointer;
1335
+ box-shadow: 0 4px 12px rgba(250, 140, 22, 0.3);
1336
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1337
+ font-size: 16px;
1338
+ font-weight: bold;
1339
+ z-index: 10;
1379
1340
  }
1380
- .preview-empty p[data-v-b2b17129] {
1381
- margin-top: 12px;
1382
- color: var(--n-text-color-3);
1383
- font-size: 14px;
1341
+ .add-node-btn[data-v-5ede8782]:hover {
1342
+ transform: translateX(-50%) scale(1.1);
1343
+ box-shadow: 0 6px 20px rgba(250, 140, 22, 0.4);
1384
1344
  }
1385
- .preview-footer[data-v-b2b17129] {
1386
- display: flex;
1387
- justify-content: flex-end;
1388
- gap: 12px;
1345
+ .add-node-btn[data-v-5ede8782]:focus-visible {
1346
+ outline: 2px solid #fa8c16;
1347
+ outline-offset: 2px;
1348
+ }
1349
+ .delete-btn[data-v-5ede8782]:focus-visible {
1350
+ opacity: 1;
1351
+ outline: 2px solid #fa8c16;
1352
+ outline-offset: 2px;
1389
1353
  }
1390
1354
  /* unplugin-vue-components disabled */
1391
1355
  /* layer: default */
1392
- .start-1[data-v-b2b17129]{inset-inline-start:0.25rem;}
1393
- .table[data-v-b2b17129]{display:table;}
1394
- .px[data-v-b2b17129]{padding-left:1rem;padding-right:1rem;}
1395
- .filter[data-v-b2b17129]{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
1396
-
1356
+ .visible[data-v-3d6434f4]{visibility:visible;}
1357
+ .start-1[data-v-3d6434f4]{inset-inline-start:0.25rem;}
1358
+ .mb-2[data-v-3d6434f4]{margin-bottom:0.5rem;}
1359
+ .mb-3[data-v-3d6434f4]{margin-bottom:0.75rem;}
1360
+ .mb-4[data-v-3d6434f4]{margin-bottom:1rem;}
1361
+ .ml-auto[data-v-3d6434f4]{margin-left:auto;}
1362
+ .mt-4[data-v-3d6434f4]{margin-top:1rem;}
1363
+ .block[data-v-3d6434f4]{display:block;}
1364
+ .max-h-50[data-v-3d6434f4]{max-height:12.5rem;}
1365
+ .max-h-60vh[data-v-3d6434f4]{max-height:60vh;}
1366
+ .min-h-10[data-v-3d6434f4]{min-height:2.5rem;}
1367
+ .w-full[data-v-3d6434f4]{width:100%;}
1368
+ .flex[data-v-3d6434f4]{display:flex;}
1369
+ .flex-shrink-0[data-v-3d6434f4]{flex-shrink:0;}
1370
+ .flex-col[data-v-3d6434f4]{flex-direction:column;}
1371
+ .flex-wrap[data-v-3d6434f4]{flex-wrap:wrap;}
1372
+ .flex-nowrap[data-v-3d6434f4]{flex-wrap:nowrap;}
1373
+ .table[data-v-3d6434f4]{display:table;}
1374
+ .items-center[data-v-3d6434f4]{align-items:center;}
1375
+ .gap-1[data-v-3d6434f4]{gap:0.25rem;}
1376
+ .gap-2[data-v-3d6434f4]{gap:0.5rem;}
1377
+ .gap-3[data-v-3d6434f4]{gap:0.75rem;}
1378
+ .space-y-3[data-v-3d6434f4]>:not([hidden])~:not([hidden]){--un-space-y-reverse:0;margin-top:calc(0.75rem * calc(1 - var(--un-space-y-reverse)));margin-bottom:calc(0.75rem * var(--un-space-y-reverse));}
1379
+ .overflow-y-auto[data-v-3d6434f4]{overflow-y:auto;}
1380
+ .border[data-v-3d6434f4]{border-width:1px;}
1381
+ .border-gray-200[data-v-3d6434f4]{--un-border-opacity:1;border-color:rgb(229 231 235 / var(--un-border-opacity));}
1382
+ .hover\:border-gray-300[data-v-3d6434f4]:hover{--un-border-opacity:1;border-color:rgb(209 213 219 / var(--un-border-opacity));}
1383
+ .rounded[data-v-3d6434f4]{border-radius:0.25rem;}
1384
+ .rounded-lg[data-v-3d6434f4]{border-radius:0.5rem;}
1385
+ .p-2[data-v-3d6434f4]{padding:0.5rem;}
1386
+ .p-3[data-v-3d6434f4]{padding:0.75rem;}
1387
+ .p-4[data-v-3d6434f4]{padding:1rem;}
1388
+ .px-1\.5[data-v-3d6434f4]{padding-left:0.375rem;padding-right:0.375rem;}
1389
+ .py-0\.5[data-v-3d6434f4]{padding-top:0.125rem;padding-bottom:0.125rem;}
1390
+ .text-base[data-v-3d6434f4]{font-size:1rem;line-height:1.5rem;}
1391
+ .text-sm[data-v-3d6434f4]{font-size:0.875rem;line-height:1.25rem;}
1392
+ .text-xs[data-v-3d6434f4]{font-size:0.75rem;line-height:1rem;}
1393
+ .font-medium[data-v-3d6434f4]{font-weight:500;}
1394
+ .font-semibold[data-v-3d6434f4]{font-weight:600;}
1395
+ .filter[data-v-3d6434f4]{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
1396
+ .transition-colors[data-v-3d6434f4]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}