@robot-admin/naive-ui-components 0.13.9 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +42 -1
  3. package/README_EN.md +42 -1
  4. package/dist/C_ActionBar.css +11 -10
  5. package/dist/C_AntV.css +247 -246
  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 +2 -1
  14. package/dist/C_Code.css +15 -14
  15. package/dist/C_CollapsePanel.css +12 -11
  16. package/dist/C_ContextMenu.css +29 -29
  17. package/dist/C_Cron.cjs +1 -1
  18. package/dist/C_Cron.css +475 -253
  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 +12 -10
  26. package/dist/C_Editor.css +2 -1
  27. package/dist/C_FilePreview.css +216 -214
  28. package/dist/C_Form.base.css +207 -205
  29. package/dist/C_Form.css +206 -205
  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 +428 -271
  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 +69 -67
  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 +272 -270
  49. package/dist/C_OrgChart.css +6 -5
  50. package/dist/C_PageLoading.css +8 -6
  51. package/dist/C_Progress.css +1 -1
  52. package/dist/C_QRCode.css +7 -5
  53. package/dist/C_Signature.css +7 -5
  54. package/dist/C_Skeleton.css +8 -6
  55. package/dist/C_SplitPane.css +2 -1
  56. package/dist/C_Steps.css +7 -5
  57. package/dist/C_Table.base.css +409 -410
  58. package/dist/C_Table.css +367 -369
  59. package/dist/C_Tabs.css +78 -1
  60. package/dist/C_TagsView.css +8 -8
  61. package/dist/C_Theme.css +9 -7
  62. package/dist/C_Time.css +3 -1
  63. package/dist/C_Timeline.css +9 -8
  64. package/dist/C_Transfer.css +10 -9
  65. package/dist/C_Tree.css +18 -16
  66. package/dist/C_Upload.css +152 -150
  67. package/dist/C_VideoPlayer.css +223 -221
  68. package/dist/C_VtableGantt.css +2 -1
  69. package/dist/C_WaterFall.css +19 -17
  70. package/dist/C_WorkFlow.css +1047 -1047
  71. package/dist/constants.d.cts +15 -20
  72. package/dist/constants.d.ts +15 -20
  73. package/dist/constants2.d.cts +44 -19
  74. package/dist/constants2.d.ts +44 -19
  75. package/dist/constants4.d.cts +5 -5
  76. package/dist/constants4.d.ts +5 -5
  77. package/dist/constants5.d.cts +2 -2
  78. package/dist/constants5.d.ts +2 -2
  79. package/dist/data.d.cts +6 -6
  80. package/dist/data.d.ts +6 -6
  81. package/dist/index.cjs +1 -1
  82. package/dist/index.d.cts +3 -3
  83. package/dist/index.d.ts +3 -3
  84. package/dist/index.js +1 -1
  85. package/dist/index.vue.d.cts +1 -1
  86. package/dist/index.vue.d.ts +1 -1
  87. package/dist/index10.vue.d.cts +6 -6
  88. package/dist/index10.vue.d.ts +3 -3
  89. package/dist/index11.vue.d.cts +3 -3
  90. package/dist/index11.vue.d.ts +5 -5
  91. package/dist/index12.vue.d.cts +5 -5
  92. package/dist/index12.vue.d.ts +2 -2
  93. package/dist/index13.vue.d.cts +2 -2
  94. package/dist/index13.vue.d.ts +5 -5
  95. package/dist/index14.vue.d.cts +5 -5
  96. package/dist/index14.vue.d.ts +5 -5
  97. package/dist/index15.vue.d.cts +5 -5
  98. package/dist/index15.vue.d.ts +1 -1
  99. package/dist/index16.vue.d.cts +1 -1
  100. package/dist/index17.vue.d.ts +1 -1
  101. package/dist/index18.vue.d.cts +1 -1
  102. package/dist/index18.vue.d.ts +4 -4
  103. package/dist/index19.vue.d.cts +4 -4
  104. package/dist/index19.vue.d.ts +3 -3
  105. package/dist/index2.vue.d.cts +2 -2
  106. package/dist/index2.vue.d.ts +2 -2
  107. package/dist/index21.vue.d.cts +2 -2
  108. package/dist/index21.vue.d.ts +2 -2
  109. package/dist/index22.vue.d.cts +2 -2
  110. package/dist/index22.vue.d.ts +2 -2
  111. package/dist/index23.vue.d.cts +2 -2
  112. package/dist/index23.vue.d.ts +2 -2
  113. package/dist/index25.vue.d.cts +4 -4
  114. package/dist/index25.vue.d.ts +4 -4
  115. package/dist/index27.vue.d.cts +3 -3
  116. package/dist/index27.vue.d.ts +3 -3
  117. package/dist/index28.vue.d.cts +3 -3
  118. package/dist/index28.vue.d.ts +3 -3
  119. package/dist/index3.vue.d.cts +3 -3
  120. package/dist/index3.vue.d.ts +3 -3
  121. package/dist/index4.vue.d.cts +3 -3
  122. package/dist/index6.vue.d.ts +2 -2
  123. package/dist/index7.vue.d.cts +2 -2
  124. package/dist/index8.vue.d.ts +3 -3
  125. package/dist/index9.vue.d.cts +3 -3
  126. package/dist/index9.vue.d.ts +6 -6
  127. package/dist/mapUtils.d.cts +4 -4
  128. package/dist/mapUtils.d.ts +4 -4
  129. package/dist/presets.d.cts +1 -1
  130. package/dist/presets.d.ts +1 -1
  131. package/dist/style.css +9875 -9705
  132. package/dist/useCalendarEvents.d.cts +1 -1
  133. package/dist/useCalendarEvents.d.ts +1 -1
  134. package/dist/useCollapsePanel.d.cts +2 -2
  135. package/dist/useCollapsePanel.d.ts +2 -2
  136. package/dist/useCropperCore.d.cts +10 -10
  137. package/dist/useCropperCore.d.ts +10 -10
  138. package/dist/useDraggableLayout.d.cts +6 -6
  139. package/dist/useDraggableLayout.d.ts +6 -6
  140. package/dist/useEdgeInteraction.d.cts +3 -3
  141. package/dist/useEdgeInteraction.d.ts +3 -3
  142. package/dist/useFormulaEvaluator.cjs +2 -0
  143. package/dist/useFormulaEvaluator.js +2 -0
  144. package/dist/useSearchState.d.cts +13 -13
  145. package/dist/useSearchState.d.ts +13 -13
  146. package/dist/useSignatureHistory.d.cts +5 -5
  147. package/dist/useSignatureHistory.d.ts +5 -5
  148. package/dist/useSplitResize.d.cts +3 -3
  149. package/dist/useSplitResize.d.ts +3 -3
  150. package/dist/useTableQuery.d.cts +1 -1
  151. package/dist/useTableQuery.d.ts +1 -1
  152. package/dist/useTimeSelection.d.cts +2 -2
  153. package/dist/useTimeSelection.d.ts +2 -2
  154. package/dist/useTreeOperations.d.cts +6 -6
  155. package/dist/useTreeOperations.d.ts +6 -6
  156. package/dist/useWorkflowValidation.d.cts +3 -3
  157. package/dist/useWorkflowValidation.d.ts +3 -3
  158. package/package.json +1 -1
  159. package/dist/C_FormulaEditor2.cjs +0 -2
  160. 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,730 +67,628 @@
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;
427
- }
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
-
444
- /* unplugin-vue-components disabled */.copy-node[data-v-010e7ec8] {
445
- position: relative;
350
+ @keyframes dashdraw-b2b17129 {
351
+ to {
352
+ stroke-dashoffset: -10;
446
353
  }
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;
457
354
  }
458
- .status-indicator.completed[data-v-010e7ec8] {
459
- background: #52c41a;
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);
460
359
  }
461
- .status-indicator.active[data-v-010e7ec8] {
462
- background: #1890ff;
360
+ [data-theme=dark][data-v-b2b17129] {
361
+ /* 添加节点菜单文字 */
463
362
  }
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;
472
- border-radius: 50%;
473
- background: #ff4d4f;
363
+ [data-theme=dark] .add-menu-item span[data-v-b2b17129] {
474
364
  color: white;
475
- display: flex;
476
- align-items: center;
477
- 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);
485
365
  }
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);
366
+ [data-theme=dark] .validation-success[data-v-b2b17129] {
367
+ color: #52c41a;
490
368
  }
491
- .delete-btn[data-v-010e7ec8]:active {
492
- transform: scale(0.95);
369
+ [data-theme=dark] .validation-success h3[data-v-b2b17129] {
370
+ color: #52c41a;
493
371
  }
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);
372
+ [data-theme=dark] .validation-success p[data-v-b2b17129] {
373
+ color: var(--n-text-color-2);
498
374
  }
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;
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);
508
378
  }
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;
379
+ [data-theme=dark] .validation-errors .error-summary h3[data-v-b2b17129] {
380
+ color: #ff4d4f;
513
381
  }
514
- .node-header[data-v-010e7ec8] {
515
- padding: 12px 16px;
516
- background: #f6ffed;
517
- border-bottom: 1px solid #d9f7be;
518
- display: flex;
519
- align-items: center;
520
- gap: 8px;
382
+ [data-theme=dark] .validation-errors .error-summary p[data-v-b2b17129] {
383
+ color: var(--n-text-color-2);
521
384
  }
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;
531
- font-size: 12px;
385
+ [data-theme=dark] .validation-errors .error-item[data-v-b2b17129] {
386
+ background: var(--n-card-color);
387
+ border-color: var(--n-border-color);
532
388
  }
533
- .node-title[data-v-010e7ec8] {
534
- font-weight: 600;
535
- color: #262626;
536
- font-size: 14px;
537
- flex: 1;
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);
538
392
  }
539
- .node-badge[data-v-010e7ec8] {
540
- background: #52c41a;
541
- color: white;
542
- padding: 2px 6px;
543
- border-radius: 10px;
544
- font-size: 11px;
545
- font-weight: 600;
546
- min-width: 16px;
547
- text-align: center;
393
+ [data-theme=dark] .validation-errors .error-item .error-info .error-node[data-v-b2b17129] {
394
+ color: var(--n-text-color-1);
548
395
  }
549
- .node-content[data-v-010e7ec8] {
550
- padding: 16px;
396
+ [data-theme=dark] .validation-errors .error-item .error-info .error-field[data-v-b2b17129] {
397
+ color: var(--n-text-color-3);
551
398
  }
552
- .copy-users-list[data-v-010e7ec8] {
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);
429
+ }
430
+
431
+ /* ─── 流程预览抽屉样式 ────────────────────────────────────── */
432
+ .preview-stats[data-v-b2b17129] {
553
433
  display: flex;
434
+ gap: 12px;
435
+ margin-bottom: 24px;
554
436
  flex-wrap: wrap;
555
- gap: 6px;
556
- align-items: center;
557
437
  }
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;
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;
568
447
  }
569
- .more-count[data-v-010e7ec8] {
570
- background: #f0f0f0;
571
- color: #8c8c8c;
572
- padding: 4px 8px;
573
- border-radius: 12px;
574
- font-size: 12px;
575
- font-weight: 500;
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);
576
453
  }
577
- .placeholder[data-v-010e7ec8] {
578
- display: flex;
579
- align-items: center;
580
- gap: 6px;
581
- color: #8c8c8c;
454
+ .preview-stats .stat-item .stat-label[data-v-b2b17129] {
455
+ display: block;
582
456
  font-size: 12px;
583
- padding: 8px 0;
457
+ color: var(--n-text-color-3);
458
+ margin-top: 4px;
584
459
  }
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;
598
- display: flex;
599
- align-items: center;
600
- 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;
460
+ .preview-stats .stat-item.approval .stat-value[data-v-b2b17129] {
461
+ color: #ff6b35;
607
462
  }
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);
463
+ .preview-stats .stat-item.copy .stat-value[data-v-b2b17129] {
464
+ color: #1890ff;
611
465
  }
612
- .add-node-btn[data-v-010e7ec8]:focus-visible {
613
- outline: 2px solid #52c41a;
614
- outline-offset: 2px;
466
+ .preview-stats .stat-item.condition .stat-value[data-v-b2b17129] {
467
+ color: #faad14;
615
468
  }
616
- .delete-btn[data-v-010e7ec8]:focus-visible {
617
- opacity: 1;
618
- outline: 2px solid #52c41a;
619
- outline-offset: 2px;
469
+ .preview-stats .stat-item.edge .stat-value[data-v-b2b17129] {
470
+ color: #52c41a;
620
471
  }
621
- /* unplugin-vue-components disabled */
622
- /* layer: default */
623
- .absolute[data-v-010e7ec8]{position:absolute;}
624
- .relative[data-v-010e7ec8]{position:relative;}
625
- .hidden[data-v-010e7ec8]{display:none;}
626
- .flex[data-v-010e7ec8]{display:flex;}
627
- .flex-wrap[data-v-010e7ec8]{flex-wrap:wrap;}
628
- .transform[data-v-010e7ec8]{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));}
629
- .border[data-v-010e7ec8]{border-width:1px;}
630
- .outline[data-v-010e7ec8]{outline-style:solid;}
631
- .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
- .ease[data-v-010e7ec8]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
633
-
634
- /* unplugin-vue-components disabled */.condition-node[data-v-5ede8782] {
472
+ .preview-timeline[data-v-b2b17129] {
635
473
  position: relative;
474
+ padding: 0 0 0 8px;
636
475
  }
637
- .status-indicator[data-v-5ede8782] {
638
- position: absolute;
639
- top: -4px;
640
- right: -4px;
641
- width: 12px;
642
- height: 12px;
643
- border-radius: 50%;
644
- border: 2px solid white;
645
- z-index: 2;
646
- background: #faad14;
476
+ .preview-timeline .preview-step[data-v-b2b17129] {
477
+ display: flex;
478
+ gap: 16px;
479
+ position: relative;
480
+ padding-bottom: 8px;
647
481
  }
648
- .status-indicator.completed[data-v-5ede8782] {
649
- background: #52c41a;
482
+ .preview-timeline .preview-step:last-child .step-line[data-v-b2b17129] {
483
+ display: none;
650
484
  }
651
- .status-indicator.active[data-v-5ede8782] {
652
- background: #fa8c16;
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;
653
491
  }
654
- .delete-btn[data-v-5ede8782] {
655
- appearance: none;
656
- padding: 0;
657
- position: absolute;
658
- top: -10px;
659
- right: -10px;
660
- width: 24px;
661
- height: 24px;
492
+ .preview-timeline .step-connector .step-dot[data-v-b2b17129] {
493
+ width: 32px;
494
+ height: 32px;
662
495
  border-radius: 50%;
663
- background: #ff4d4f;
664
- color: white;
665
496
  display: flex;
666
497
  align-items: center;
667
498
  justify-content: center;
668
- cursor: pointer;
669
- z-index: 100;
670
- opacity: 0;
671
- transform: scale(0.8);
672
- transition: all 0.2s ease;
673
- border: 2px solid white;
674
- 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;
675
503
  }
676
- .delete-btn[data-v-5ede8782]:hover {
677
- transform: scale(1);
678
- background: #ff7875;
679
- 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);
680
509
  }
681
- .delete-btn[data-v-5ede8782]:active {
682
- transform: scale(0.95);
510
+ .preview-timeline[data-v-b2b17129] {
511
+ /* 不同节点类型的圆点颜色 */
683
512
  }
684
- .condition-node:hover .delete-btn[data-v-5ede8782],
685
- .condition-node:focus-within .delete-btn[data-v-5ede8782] {
686
- opacity: 1;
687
- transform: scale(1);
513
+ .preview-timeline .start .step-dot[data-v-b2b17129] {
514
+ background: linear-gradient(135deg, #667eea, #764ba2);
688
515
  }
689
- .node-card[data-v-5ede8782] {
690
- background: white;
691
- border-radius: 12px;
692
- min-width: 220px;
693
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
694
- border: 2px solid transparent;
695
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
696
- overflow: hidden;
697
- cursor: pointer;
516
+ .preview-timeline .approval .step-dot[data-v-b2b17129] {
517
+ background: linear-gradient(135deg, #ff6b35, #ff4500);
698
518
  }
699
- .node-card[data-v-5ede8782]:hover {
700
- transform: translateY(-2px);
701
- box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
702
- border-color: #fa8c16;
519
+ .preview-timeline .copy .step-dot[data-v-b2b17129] {
520
+ background: linear-gradient(135deg, #1890ff, #096dd9);
703
521
  }
704
- .node-header[data-v-5ede8782] {
705
- padding: 12px 16px;
706
- background: #fff7e6;
707
- border-bottom: 1px solid #ffe7ba;
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] {
708
531
  display: flex;
709
532
  align-items: center;
710
533
  gap: 8px;
534
+ margin-bottom: 6px;
711
535
  }
712
- .node-icon[data-v-5ede8782] {
713
- width: 24px;
714
- height: 24px;
715
- border-radius: 50%;
716
- background: #fa8c16;
717
- color: white;
718
- display: flex;
719
- align-items: center;
720
- justify-content: center;
536
+ .preview-timeline .step-content .step-header .step-order[data-v-b2b17129] {
721
537
  font-size: 12px;
538
+ color: var(--n-text-color-3);
539
+ font-weight: 500;
722
540
  }
723
- .node-title[data-v-5ede8782] {
541
+ .preview-timeline .step-content .step-header .step-type-badge[data-v-b2b17129] {
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;
724
551
  font-weight: 600;
725
- color: #262626;
726
- font-size: 14px;
727
- flex: 1;
552
+ color: var(--n-text-color-1);
553
+ margin-bottom: 8px;
728
554
  }
729
- .node-badge[data-v-5ede8782] {
730
- background: #fa8c16;
731
- color: white;
732
- padding: 2px 6px;
733
- border-radius: 10px;
734
- font-size: 11px;
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);
560
+ }
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;
566
+ display: flex;
567
+ align-items: flex-start;
568
+ flex-wrap: wrap;
569
+ gap: 4px;
570
+ }
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;
575
+ }
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);
581
+ font-size: 12px;
582
+ flex-shrink: 0;
583
+ line-height: 24px;
584
+ }
585
+ .preview-timeline .step-content .step-details .step-detail-item .mode-badge[data-v-b2b17129] {
586
+ display: inline-block;
587
+ font-size: 12px;
735
588
  font-weight: 600;
736
- min-width: 16px;
737
- text-align: center;
589
+ padding: 2px 10px;
590
+ border-radius: 12px;
591
+ line-height: 20px;
738
592
  }
739
- .node-content[data-v-5ede8782] {
740
- padding: 16px;
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);
741
597
  }
742
- .conditions-list[data-v-5ede8782] {
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] {
743
616
  display: flex;
744
617
  flex-direction: column;
745
- gap: 6px;
618
+ align-items: center;
619
+ justify-content: center;
620
+ padding: 60px 0;
746
621
  }
747
- .condition-tag[data-v-5ede8782] {
622
+ .preview-empty p[data-v-b2b17129] {
623
+ margin-top: 12px;
624
+ color: var(--n-text-color-3);
625
+ font-size: 14px;
626
+ }
627
+ .preview-footer[data-v-b2b17129] {
628
+ display: flex;
629
+ justify-content: flex-end;
630
+ gap: 12px;
631
+ }
632
+ /* unplugin-vue-components disabled */
633
+ /* layer: default */
634
+ .absolute[data-v-6fb2df95]{position:absolute;}
635
+ .relative[data-v-6fb2df95]{position:relative;}
636
+ .flex[data-v-6fb2df95]{display:flex;}
637
+ .flex-shrink[data-v-6fb2df95]{flex-shrink:1;}
638
+ .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));}
639
+ .border[data-v-6fb2df95]{border-width:1px;}
640
+ .italic[data-v-6fb2df95]{font-style:italic;}
641
+ .outline[data-v-6fb2df95]{outline-style:solid;}
642
+ .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;}
643
+
644
+ /* unplugin-vue-components disabled */.start-node[data-v-6fb2df95] {
645
+ position: relative;
646
+ }
647
+ .node-content[data-v-6fb2df95] {
648
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
649
+ color: white;
650
+ padding: 16px 20px;
651
+ border-radius: 12px;
748
652
  display: flex;
749
653
  align-items: center;
750
- gap: 6px;
751
- background: #fff7e6;
752
- color: #fa8c16;
753
- padding: 6px 10px;
754
- border-radius: 8px;
755
- font-size: 12px;
756
- border: 1px solid #ffd591;
757
- transition: all 0.2s ease;
654
+ justify-content: center;
655
+ gap: 12px;
656
+ min-width: 160px;
657
+ box-shadow: 0 4px 20px rgba(102, 126, 234, 0.3);
658
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
659
+ cursor: pointer;
758
660
  }
759
- .condition-tag[data-v-5ede8782]:hover {
760
- background: #ffe7ba;
761
- transform: translateX(2px);
661
+ .node-content[data-v-6fb2df95]:hover {
662
+ transform: translateY(-2px);
663
+ box-shadow: 0 8px 30px rgba(102, 126, 234, 0.4);
762
664
  }
763
- .condition-icon[data-v-5ede8782] {
764
- font-weight: bold;
765
- color: #d48806;
665
+ .node-icon[data-v-6fb2df95] {
666
+ font-size: 16px;
667
+ flex-shrink: 0;
766
668
  }
767
- .more-count[data-v-5ede8782] {
768
- background: #f0f0f0;
769
- color: #8c8c8c;
770
- padding: 4px 8px;
771
- border-radius: 12px;
772
- font-size: 12px;
773
- font-weight: 500;
669
+ .node-info[data-v-6fb2df95] {
670
+ display: flex;
671
+ flex-direction: column;
672
+ gap: 4px;
774
673
  text-align: center;
775
- margin-top: 4px;
776
674
  }
777
- .placeholder[data-v-5ede8782] {
778
- display: flex;
779
- align-items: center;
780
- gap: 6px;
781
- color: #8c8c8c;
675
+ .node-text[data-v-6fb2df95] {
676
+ font-weight: 600;
677
+ font-size: 14px;
678
+ }
679
+ .initiator-name[data-v-6fb2df95] {
782
680
  font-size: 12px;
783
- padding: 8px 0;
681
+ opacity: 0.9;
682
+ background: rgba(255, 255, 255, 0.2);
683
+ padding: 2px 8px;
684
+ border-radius: 8px;
784
685
  }
785
- .add-node-btn[data-v-5ede8782] {
686
+ .placeholder-text[data-v-6fb2df95] {
687
+ font-size: 11px;
688
+ opacity: 0.7;
689
+ font-style: italic;
690
+ }
691
+ .add-node-btn[data-v-6fb2df95] {
786
692
  appearance: none;
787
693
  border: 0;
788
694
  padding: 0;
@@ -793,29 +699,24 @@
793
699
  width: 32px;
794
700
  height: 32px;
795
701
  border-radius: 50%;
796
- background: linear-gradient(135deg, #fa8c16, #d48806);
702
+ background: linear-gradient(135deg, #1890ff, #722ed1);
797
703
  color: white;
798
704
  display: flex;
799
705
  align-items: center;
800
706
  justify-content: center;
801
707
  cursor: pointer;
802
- box-shadow: 0 4px 12px rgba(250, 140, 22, 0.3);
708
+ box-shadow: 0 4px 12px rgba(24, 144, 255, 0.3);
803
709
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
804
710
  font-size: 16px;
805
711
  font-weight: bold;
806
712
  z-index: 10;
807
713
  }
808
- .add-node-btn[data-v-5ede8782]:hover {
714
+ .add-node-btn[data-v-6fb2df95]:hover {
809
715
  transform: translateX(-50%) scale(1.1);
810
- box-shadow: 0 6px 20px rgba(250, 140, 22, 0.4);
811
- }
812
- .add-node-btn[data-v-5ede8782]:focus-visible {
813
- outline: 2px solid #fa8c16;
814
- outline-offset: 2px;
716
+ box-shadow: 0 6px 20px rgba(24, 144, 255, 0.4);
815
717
  }
816
- .delete-btn[data-v-5ede8782]:focus-visible {
817
- opacity: 1;
818
- outline: 2px solid #fa8c16;
718
+ .add-node-btn[data-v-6fb2df95]:focus-visible {
719
+ outline: 2px solid #1890ff;
819
720
  outline-offset: 2px;
820
721
  }
821
722
  /* unplugin-vue-components disabled */
@@ -830,567 +731,666 @@
830
731
  .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
732
  .ease[data-v-5ede8782]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
832
733
 
833
- /* unplugin-vue-components disabled *//* C_WorkFlow 组件样式 */
834
- .approval-workflow-container[data-v-b2b17129] {
835
- width: 100%;
836
- height: 600px;
734
+ /* unplugin-vue-components disabled */
735
+ /* layer: default */
736
+ .absolute[data-v-e6968a42]{position:absolute;}
737
+ .relative[data-v-e6968a42]{position:relative;}
738
+ .start-1[data-v-e6968a42]{inset-inline-start:0.25rem;}
739
+ .inline-block[data-v-e6968a42]{display:inline-block;}
740
+ .hidden[data-v-e6968a42]{display:none;}
741
+ .flex[data-v-e6968a42]{display:flex;}
742
+ .flex-shrink[data-v-e6968a42]{flex-shrink:1;}
743
+ .flex-wrap[data-v-e6968a42]{flex-wrap:wrap;}
744
+ .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));}
745
+ .border[data-v-e6968a42]{border-width:1px;}
746
+ .outline[data-v-e6968a42]{outline-style:solid;}
747
+ .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;}
748
+ .ease[data-v-e6968a42]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
749
+
750
+ /* unplugin-vue-components disabled */.condition-node[data-v-5ede8782] {
837
751
  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
752
  }
843
- .floating-toolbar[data-v-b2b17129] {
753
+ .status-indicator[data-v-5ede8782] {
844
754
  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%;
755
+ top: -4px;
756
+ right: -4px;
757
+ width: 12px;
758
+ height: 12px;
759
+ border-radius: 50%;
760
+ border: 2px solid white;
761
+ z-index: 2;
762
+ background: #faad14;
867
763
  }
868
- .add-node-menu[data-v-b2b17129] {
869
- position: fixed;
870
- z-index: 1000;
871
- pointer-events: none;
764
+ .status-indicator.completed[data-v-5ede8782] {
765
+ background: #52c41a;
872
766
  }
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;
767
+ .status-indicator.active[data-v-5ede8782] {
768
+ background: #fa8c16;
883
769
  }
884
- .add-menu-item[data-v-b2b17129] {
770
+ .delete-btn[data-v-5ede8782] {
885
771
  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;
772
+ padding: 0;
773
+ position: absolute;
774
+ top: -10px;
775
+ right: -10px;
776
+ width: 24px;
777
+ height: 24px;
909
778
  border-radius: 50%;
779
+ background: #ff4d4f;
780
+ color: white;
910
781
  display: flex;
911
782
  align-items: center;
912
783
  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;
965
- }
966
- .validation-errors .error-summary .error-icon[data-v-b2b17129] {
967
- margin-bottom: 12px;
784
+ cursor: pointer;
785
+ z-index: 100;
786
+ opacity: 0;
787
+ transform: scale(0.8);
788
+ transition: all 0.2s ease;
789
+ border: 2px solid white;
790
+ box-shadow: 0 2px 8px rgba(255, 77, 79, 0.3);
968
791
  }
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;
792
+ .delete-btn[data-v-5ede8782]:hover {
793
+ transform: scale(1);
794
+ background: #ff7875;
795
+ box-shadow: 0 4px 12px rgba(255, 77, 79, 0.5);
974
796
  }
975
- .validation-errors .error-summary p[data-v-b2b17129] {
976
- margin: 0;
977
- color: var(--n-text-color-2);
978
- font-size: 14px;
797
+ .delete-btn[data-v-5ede8782]:active {
798
+ transform: scale(0.95);
979
799
  }
980
- .validation-errors .error-list[data-v-b2b17129] {
981
- display: flex;
982
- flex-direction: column;
983
- gap: 12px;
800
+ .condition-node:hover .delete-btn[data-v-5ede8782],
801
+ .condition-node:focus-within .delete-btn[data-v-5ede8782] {
802
+ opacity: 1;
803
+ transform: scale(1);
984
804
  }
985
- .validation-errors .error-item[data-v-b2b17129] {
805
+ .node-card[data-v-5ede8782] {
986
806
  background: white;
987
- border: 1px solid #f0f0f0;
988
- border-radius: 8px;
989
- padding: 16px;
990
- transition: all 0.2s ease;
807
+ border-radius: 12px;
808
+ min-width: 220px;
809
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
810
+ border: 2px solid transparent;
811
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
812
+ overflow: hidden;
813
+ cursor: pointer;
991
814
  }
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);
815
+ .node-card[data-v-5ede8782]:hover {
816
+ transform: translateY(-2px);
817
+ box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
818
+ border-color: #fa8c16;
995
819
  }
996
- .validation-errors .error-item .error-header[data-v-b2b17129] {
820
+ .node-header[data-v-5ede8782] {
821
+ padding: 12px 16px;
822
+ background: #fff7e6;
823
+ border-bottom: 1px solid #ffe7ba;
997
824
  display: flex;
998
825
  align-items: center;
999
- gap: 12px;
1000
- margin-bottom: 8px;
826
+ gap: 8px;
1001
827
  }
1002
- .validation-errors .error-item .error-header .error-number[data-v-b2b17129] {
828
+ .node-icon[data-v-5ede8782] {
1003
829
  width: 24px;
1004
830
  height: 24px;
1005
- background: #ff4d4f;
1006
- color: white;
1007
831
  border-radius: 50%;
832
+ background: #fa8c16;
833
+ color: white;
1008
834
  display: flex;
1009
835
  align-items: center;
1010
836
  justify-content: center;
1011
837
  font-size: 12px;
1012
- font-weight: 600;
1013
- flex-shrink: 0;
1014
838
  }
1015
- .validation-errors .error-item .error-header .error-info[data-v-b2b17129] {
1016
- flex: 1;
1017
- min-width: 0;
1018
- }
1019
- .validation-errors .error-item .error-header .error-info .error-node[data-v-b2b17129] {
1020
- display: block;
1021
- color: var(--n-text-color-1);
839
+ .node-title[data-v-5ede8782] {
840
+ font-weight: 600;
841
+ color: #262626;
1022
842
  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;
843
+ flex: 1;
1028
844
  }
1029
- .validation-errors .error-item .error-header .error-type[data-v-b2b17129] {
1030
- padding: 2px 8px;
1031
- border-radius: 4px;
845
+ .node-badge[data-v-5ede8782] {
846
+ background: #fa8c16;
847
+ color: white;
848
+ padding: 2px 6px;
849
+ border-radius: 10px;
1032
850
  font-size: 11px;
1033
- font-weight: 500;
851
+ font-weight: 600;
852
+ min-width: 16px;
853
+ text-align: center;
1034
854
  }
1035
- .validation-errors .error-item .error-header .error-type.required[data-v-b2b17129] {
1036
- background: #fff2f0;
1037
- color: #ff4d4f;
1038
- border: 1px solid #ffccc7;
855
+ .node-content[data-v-5ede8782] {
856
+ padding: 16px;
1039
857
  }
1040
- .validation-errors .error-item .error-header .error-type.incomplete[data-v-b2b17129] {
858
+ .conditions-list[data-v-5ede8782] {
859
+ display: flex;
860
+ flex-direction: column;
861
+ gap: 6px;
862
+ }
863
+ .condition-tag[data-v-5ede8782] {
864
+ display: flex;
865
+ align-items: center;
866
+ gap: 6px;
1041
867
  background: #fff7e6;
1042
868
  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;
869
+ padding: 6px 10px;
1064
870
  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
- font-weight: 600;
871
+ font-size: 12px;
872
+ border: 1px solid #ffd591;
873
+ transition: all 0.2s ease;
1072
874
  }
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;
875
+ .condition-tag[data-v-5ede8782]:hover {
876
+ background: #ffe7ba;
877
+ transform: translateX(2px);
1079
878
  }
1080
- .validation-errors .validation-tips ul li[data-v-b2b17129] {
1081
- margin-bottom: 6px;
879
+ .condition-icon[data-v-5ede8782] {
880
+ font-weight: bold;
881
+ color: #d48806;
1082
882
  }
1083
- .validation-errors .validation-tips ul li strong[data-v-b2b17129] {
1084
- color: var(--n-text-color-1);
883
+ .more-count[data-v-5ede8782] {
884
+ background: #f0f0f0;
885
+ color: #8c8c8c;
886
+ padding: 4px 8px;
887
+ border-radius: 12px;
888
+ font-size: 12px;
889
+ font-weight: 500;
890
+ text-align: center;
891
+ margin-top: 4px;
1085
892
  }
1086
- .validation-footer[data-v-b2b17129] {
893
+ .placeholder[data-v-5ede8782] {
1087
894
  display: flex;
1088
- 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
- /* 添加节点菜单文字 */
895
+ align-items: center;
896
+ gap: 6px;
897
+ color: #8c8c8c;
898
+ font-size: 12px;
899
+ padding: 8px 0;
1120
900
  }
1121
- [data-theme=dark] .add-menu-item span[data-v-b2b17129] {
901
+ .add-node-btn[data-v-5ede8782] {
902
+ appearance: none;
903
+ border: 0;
904
+ padding: 0;
905
+ position: absolute;
906
+ left: 50%;
907
+ bottom: -20px;
908
+ transform: translateX(-50%);
909
+ width: 32px;
910
+ height: 32px;
911
+ border-radius: 50%;
912
+ background: linear-gradient(135deg, #fa8c16, #d48806);
1122
913
  color: white;
914
+ display: flex;
915
+ align-items: center;
916
+ justify-content: center;
917
+ cursor: pointer;
918
+ box-shadow: 0 4px 12px rgba(250, 140, 22, 0.3);
919
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
920
+ font-size: 16px;
921
+ font-weight: bold;
922
+ z-index: 10;
1123
923
  }
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);
1132
- }
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);
1136
- }
1137
- [data-theme=dark] .validation-errors .error-summary h3[data-v-b2b17129] {
1138
- color: #ff4d4f;
924
+ .add-node-btn[data-v-5ede8782]:hover {
925
+ transform: translateX(-50%) scale(1.1);
926
+ box-shadow: 0 6px 20px rgba(250, 140, 22, 0.4);
1139
927
  }
1140
- [data-theme=dark] .validation-errors .error-summary p[data-v-b2b17129] {
1141
- color: var(--n-text-color-2);
928
+ .add-node-btn[data-v-5ede8782]:focus-visible {
929
+ outline: 2px solid #fa8c16;
930
+ outline-offset: 2px;
1142
931
  }
1143
- [data-theme=dark] .validation-errors .error-item[data-v-b2b17129] {
1144
- background: var(--n-card-color);
1145
- border-color: var(--n-border-color);
932
+ .delete-btn[data-v-5ede8782]:focus-visible {
933
+ opacity: 1;
934
+ outline: 2px solid #fa8c16;
935
+ outline-offset: 2px;
1146
936
  }
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);
937
+ /* unplugin-vue-components disabled */
938
+ /* layer: default */
939
+ .absolute[data-v-010e7ec8]{position:absolute;}
940
+ .relative[data-v-010e7ec8]{position:relative;}
941
+ .hidden[data-v-010e7ec8]{display:none;}
942
+ .flex[data-v-010e7ec8]{display:flex;}
943
+ .flex-wrap[data-v-010e7ec8]{flex-wrap:wrap;}
944
+ .transform[data-v-010e7ec8]{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));}
945
+ .border[data-v-010e7ec8]{border-width:1px;}
946
+ .outline[data-v-010e7ec8]{outline-style:solid;}
947
+ .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;}
948
+ .ease[data-v-010e7ec8]{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);}
949
+
950
+ /* unplugin-vue-components disabled */.approval-node[data-v-e6968a42] {
951
+ position: relative;
1150
952
  }
1151
- [data-theme=dark] .validation-errors .error-item .error-info .error-node[data-v-b2b17129] {
1152
- color: var(--n-text-color-1);
953
+ .status-indicator[data-v-e6968a42] {
954
+ position: absolute;
955
+ top: -4px;
956
+ right: -4px;
957
+ width: 12px;
958
+ height: 12px;
959
+ border-radius: 50%;
960
+ border: 2px solid white;
961
+ z-index: 2;
962
+ background: #faad14;
1153
963
  }
1154
- [data-theme=dark] .validation-errors .error-item .error-info .error-field[data-v-b2b17129] {
1155
- color: var(--n-text-color-3);
964
+ .status-indicator.approved[data-v-e6968a42] {
965
+ background: #52c41a;
1156
966
  }
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);
967
+ .status-indicator.rejected[data-v-e6968a42] {
968
+ background: #ff4d4f;
1161
969
  }
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);
970
+ .status-indicator.pending[data-v-e6968a42] {
971
+ background: #1890ff;
1166
972
  }
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);
973
+ .delete-btn[data-v-e6968a42] {
974
+ appearance: none;
975
+ padding: 0;
976
+ position: absolute;
977
+ top: -10px;
978
+ right: -10px;
979
+ width: 24px;
980
+ height: 24px;
981
+ border-radius: 50%;
982
+ background: #ff4d4f;
983
+ color: white;
984
+ display: flex;
985
+ align-items: center;
986
+ justify-content: center;
987
+ cursor: pointer;
988
+ z-index: 100; /* 确保在所有元素之上 */
989
+ opacity: 0;
990
+ transform: scale(0.8);
991
+ transition: all 0.2s ease;
992
+ border: 2px solid white;
993
+ box-shadow: 0 2px 8px rgba(255, 77, 79, 0.3);
1171
994
  }
1172
- [data-theme=dark] .validation-errors .error-item .error-message[data-v-b2b17129] {
1173
- color: var(--n-text-color-2);
995
+ .delete-btn[data-v-e6968a42]:hover {
996
+ transform: scale(1);
997
+ background: #ff7875;
998
+ box-shadow: 0 4px 12px rgba(255, 77, 79, 0.5);
1174
999
  }
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);
1000
+ .delete-btn[data-v-e6968a42]:active {
1001
+ transform: scale(0.95);
1178
1002
  }
1179
- [data-theme=dark] .validation-errors .validation-tips h4[data-v-b2b17129] {
1180
- color: #73d13d;
1003
+ .approval-node:hover .delete-btn[data-v-e6968a42],
1004
+ .approval-node:focus-within .delete-btn[data-v-e6968a42] {
1005
+ opacity: 1;
1006
+ transform: scale(1);
1181
1007
  }
1182
- [data-theme=dark] .validation-errors .validation-tips ul[data-v-b2b17129] {
1183
- color: var(--n-text-color-2);
1008
+ .node-card[data-v-e6968a42] {
1009
+ background: white;
1010
+ border-radius: 12px;
1011
+ min-width: 240px;
1012
+ max-width: 300px;
1013
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
1014
+ border: 2px solid transparent;
1015
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1016
+ overflow: hidden;
1017
+ cursor: pointer;
1184
1018
  }
1185
- [data-theme=dark] .validation-errors .validation-tips ul li strong[data-v-b2b17129] {
1186
- color: var(--n-text-color-1);
1019
+ .node-card[data-v-e6968a42]:hover {
1020
+ transform: translateY(-2px);
1021
+ box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
1022
+ border-color: #1890ff;
1187
1023
  }
1188
-
1189
- /* ─── 流程预览抽屉样式 ────────────────────────────────────── */
1190
- .preview-stats[data-v-b2b17129] {
1024
+ .node-header[data-v-e6968a42] {
1025
+ padding: 12px 16px;
1026
+ background: linear-gradient(135deg, #e6f7ff, #f0f9ff);
1027
+ border-bottom: 1px solid #91d5ff;
1191
1028
  display: flex;
1192
- gap: 12px;
1193
- margin-bottom: 24px;
1029
+ align-items: center;
1030
+ gap: 8px;
1194
1031
  flex-wrap: wrap;
1195
1032
  }
1196
- .preview-stats .stat-item[data-v-b2b17129] {
1033
+ .node-icon[data-v-e6968a42] {
1034
+ width: 24px;
1035
+ height: 24px;
1036
+ border-radius: 50%;
1037
+ background: #1890ff;
1038
+ color: white;
1039
+ display: flex;
1040
+ align-items: center;
1041
+ justify-content: center;
1042
+ }
1043
+ .node-title[data-v-e6968a42] {
1044
+ font-weight: 600;
1045
+ color: var(--n-text-color-1);
1046
+ font-size: 14px;
1197
1047
  flex: 1;
1198
- min-width: 70px;
1199
- text-align: center;
1200
- padding: 12px 8px;
1048
+ }
1049
+ .node-badge[data-v-e6968a42] {
1050
+ background: #1890ff;
1051
+ color: white;
1052
+ padding: 2px 6px;
1201
1053
  border-radius: 10px;
1202
- background: var(--n-action-color);
1203
- border: 1px solid var(--n-border-color);
1204
- transition: all 0.2s;
1054
+ font-size: 11px;
1055
+ font-weight: 600;
1056
+ min-width: 16px;
1057
+ text-align: center;
1205
1058
  }
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);
1059
+ .approval-mode-badge[data-v-e6968a42] {
1060
+ background: #f0f0f0;
1061
+ color: #666;
1062
+ padding: 2px 6px;
1063
+ border-radius: 8px;
1064
+ font-size: 10px;
1065
+ font-weight: 500;
1211
1066
  }
1212
- .preview-stats .stat-item .stat-label[data-v-b2b17129] {
1213
- display: block;
1214
- font-size: 12px;
1215
- color: var(--n-text-color-3);
1216
- margin-top: 4px;
1067
+ .node-content[data-v-e6968a42] {
1068
+ padding: 16px;
1217
1069
  }
1218
- .preview-stats .stat-item.approval .stat-value[data-v-b2b17129] {
1219
- color: #ff6b35;
1070
+ .approvers-list[data-v-e6968a42] {
1071
+ display: flex;
1072
+ flex-direction: column;
1073
+ gap: 8px;
1220
1074
  }
1221
- .preview-stats .stat-item.copy .stat-value[data-v-b2b17129] {
1222
- color: #1890ff;
1075
+ .approver-tag[data-v-e6968a42] {
1076
+ background: linear-gradient(135deg, #e6f7ff, #f0f9ff);
1077
+ border: 1px solid #91d5ff;
1078
+ border-radius: 8px;
1079
+ padding: 8px 12px;
1080
+ transition: all 0.2s ease;
1223
1081
  }
1224
- .preview-stats .stat-item.condition .stat-value[data-v-b2b17129] {
1225
- color: #faad14;
1082
+ .approver-tag[data-v-e6968a42]:hover {
1083
+ transform: translateX(2px);
1084
+ box-shadow: 0 2px 8px rgba(24, 144, 255, 0.2);
1226
1085
  }
1227
- .preview-stats .stat-item.edge .stat-value[data-v-b2b17129] {
1228
- color: #52c41a;
1086
+ .approver-tag .approver-info[data-v-e6968a42] {
1087
+ display: flex;
1088
+ align-items: center;
1089
+ gap: 8px;
1229
1090
  }
1230
- .preview-timeline[data-v-b2b17129] {
1231
- position: relative;
1232
- padding: 0 0 0 8px;
1091
+ .approver-tag .approver-info .approver-avatar[data-v-e6968a42] {
1092
+ flex-shrink: 0;
1233
1093
  }
1234
- .preview-timeline .preview-step[data-v-b2b17129] {
1094
+ .approver-tag .approver-info .approver-details[data-v-e6968a42] {
1235
1095
  display: flex;
1236
- gap: 16px;
1237
- position: relative;
1238
- padding-bottom: 8px;
1096
+ flex-direction: column;
1097
+ gap: 2px;
1098
+ min-width: 0;
1239
1099
  }
1240
- .preview-timeline .preview-step:last-child .step-line[data-v-b2b17129] {
1241
- display: none;
1100
+ .approver-tag .approver-info .approver-details .approver-name[data-v-e6968a42] {
1101
+ font-weight: 600;
1102
+ color: #1890ff;
1103
+ font-size: 13px;
1242
1104
  }
1243
- .preview-timeline .step-connector[data-v-b2b17129] {
1105
+ .approver-tag .approver-info .approver-details .approver-dept[data-v-e6968a42] {
1106
+ font-size: 11px;
1107
+ color: #666;
1108
+ background: rgba(0, 0, 0, 0.05);
1109
+ padding: 1px 4px;
1110
+ border-radius: 4px;
1111
+ display: inline-block;
1112
+ }
1113
+ .approver-tag .approver-info .approver-details .approver-role[data-v-e6968a42] {
1114
+ font-size: 10px;
1115
+ color: #999;
1116
+ }
1117
+ .more-count[data-v-e6968a42] {
1118
+ background: #f0f0f0;
1119
+ color: #8c8c8c;
1120
+ padding: 6px 8px;
1121
+ border-radius: 12px;
1122
+ font-size: 12px;
1123
+ font-weight: 500;
1124
+ text-align: center;
1125
+ border: 1px dashed #d9d9d9;
1126
+ }
1127
+ .placeholder[data-v-e6968a42] {
1244
1128
  display: flex;
1245
1129
  flex-direction: column;
1246
1130
  align-items: center;
1247
- flex-shrink: 0;
1248
- width: 32px;
1131
+ justify-content: center;
1132
+ gap: 8px;
1133
+ color: #8c8c8c;
1134
+ font-size: 12px;
1135
+ padding: 20px 0;
1136
+ border: 1px dashed #d9d9d9;
1137
+ border-radius: 8px;
1138
+ background: #fafafa;
1249
1139
  }
1250
- .preview-timeline .step-connector .step-dot[data-v-b2b17129] {
1140
+ .placeholder span[data-v-e6968a42] {
1141
+ font-weight: 500;
1142
+ }
1143
+ .add-node-btn[data-v-e6968a42] {
1144
+ appearance: none;
1145
+ border: 0;
1146
+ padding: 0;
1147
+ position: absolute;
1148
+ left: 50%;
1149
+ bottom: -20px;
1150
+ transform: translateX(-50%);
1251
1151
  width: 32px;
1252
1152
  height: 32px;
1253
1153
  border-radius: 50%;
1154
+ background: linear-gradient(135deg, #1890ff, #722ed1);
1155
+ color: white;
1254
1156
  display: flex;
1255
1157
  align-items: center;
1256
1158
  justify-content: center;
1257
- color: white;
1258
- flex-shrink: 0;
1259
- z-index: 1;
1260
- background: #999;
1159
+ cursor: pointer;
1160
+ box-shadow: 0 4px 12px rgba(24, 144, 255, 0.3);
1161
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1162
+ z-index: 10;
1261
1163
  }
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);
1164
+ .add-node-btn[data-v-e6968a42]:hover {
1165
+ transform: translateX(-50%) scale(1.1);
1166
+ box-shadow: 0 6px 20px rgba(24, 144, 255, 0.4);
1267
1167
  }
1268
- .preview-timeline[data-v-b2b17129] {
1269
- /* 不同节点类型的圆点颜色 */
1168
+ .add-node-btn[data-v-e6968a42]:focus-visible {
1169
+ outline: 2px solid #1890ff;
1170
+ outline-offset: 2px;
1171
+ }
1172
+ .delete-btn[data-v-e6968a42]:focus-visible {
1173
+ opacity: 1;
1174
+ outline: 2px solid #1890ff;
1175
+ outline-offset: 2px;
1176
+ }
1177
+ /* unplugin-vue-components disabled */.copy-node[data-v-010e7ec8] {
1178
+ position: relative;
1179
+ }
1180
+ .status-indicator[data-v-010e7ec8] {
1181
+ position: absolute;
1182
+ top: -4px;
1183
+ right: -4px;
1184
+ width: 12px;
1185
+ height: 12px;
1186
+ border-radius: 50%;
1187
+ border: 2px solid white;
1188
+ z-index: 2;
1189
+ background: #faad14;
1190
+ }
1191
+ .status-indicator.completed[data-v-010e7ec8] {
1192
+ background: #52c41a;
1193
+ }
1194
+ .status-indicator.active[data-v-010e7ec8] {
1195
+ background: #1890ff;
1196
+ }
1197
+ .delete-btn[data-v-010e7ec8] {
1198
+ appearance: none;
1199
+ padding: 0;
1200
+ position: absolute;
1201
+ top: -10px;
1202
+ right: -10px;
1203
+ width: 24px;
1204
+ height: 24px;
1205
+ border-radius: 50%;
1206
+ background: #ff4d4f;
1207
+ color: white;
1208
+ display: flex;
1209
+ align-items: center;
1210
+ justify-content: center;
1211
+ cursor: pointer;
1212
+ z-index: 100;
1213
+ opacity: 0;
1214
+ transform: scale(0.8);
1215
+ transition: all 0.2s ease;
1216
+ border: 2px solid white;
1217
+ box-shadow: 0 2px 8px rgba(255, 77, 79, 0.3);
1270
1218
  }
1271
- .preview-timeline .start .step-dot[data-v-b2b17129] {
1272
- background: linear-gradient(135deg, #667eea, #764ba2);
1219
+ .delete-btn[data-v-010e7ec8]:hover {
1220
+ transform: scale(1);
1221
+ background: #ff7875;
1222
+ box-shadow: 0 4px 12px rgba(255, 77, 79, 0.5);
1273
1223
  }
1274
- .preview-timeline .approval .step-dot[data-v-b2b17129] {
1275
- background: linear-gradient(135deg, #ff6b35, #ff4500);
1224
+ .delete-btn[data-v-010e7ec8]:active {
1225
+ transform: scale(0.95);
1276
1226
  }
1277
- .preview-timeline .copy .step-dot[data-v-b2b17129] {
1278
- background: linear-gradient(135deg, #1890ff, #096dd9);
1227
+ .copy-node:hover .delete-btn[data-v-010e7ec8],
1228
+ .copy-node:focus-within .delete-btn[data-v-010e7ec8] {
1229
+ opacity: 1;
1230
+ transform: scale(1);
1279
1231
  }
1280
- .preview-timeline .condition .step-dot[data-v-b2b17129] {
1281
- background: linear-gradient(135deg, #faad14, #d48806);
1232
+ .node-card[data-v-010e7ec8] {
1233
+ background: white;
1234
+ border-radius: 12px;
1235
+ min-width: 200px;
1236
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
1237
+ border: 2px solid transparent;
1238
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1239
+ overflow: hidden;
1240
+ cursor: pointer;
1282
1241
  }
1283
- .preview-timeline .step-content[data-v-b2b17129] {
1284
- flex: 1;
1285
- padding-bottom: 20px;
1286
- min-width: 0;
1242
+ .node-card[data-v-010e7ec8]:hover {
1243
+ transform: translateY(-2px);
1244
+ box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
1245
+ border-color: #52c41a;
1287
1246
  }
1288
- .preview-timeline .step-content .step-header[data-v-b2b17129] {
1247
+ .node-header[data-v-010e7ec8] {
1248
+ padding: 12px 16px;
1249
+ background: #f6ffed;
1250
+ border-bottom: 1px solid #d9f7be;
1289
1251
  display: flex;
1290
1252
  align-items: center;
1291
1253
  gap: 8px;
1292
- margin-bottom: 6px;
1293
1254
  }
1294
- .preview-timeline .step-content .step-header .step-order[data-v-b2b17129] {
1255
+ .node-icon[data-v-010e7ec8] {
1256
+ width: 24px;
1257
+ height: 24px;
1258
+ border-radius: 50%;
1259
+ background: #52c41a;
1260
+ color: white;
1261
+ display: flex;
1262
+ align-items: center;
1263
+ justify-content: center;
1295
1264
  font-size: 12px;
1296
- color: var(--n-text-color-3);
1297
- font-weight: 500;
1298
1265
  }
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);
1266
+ .node-title[data-v-010e7ec8] {
1267
+ font-weight: 600;
1268
+ color: #262626;
1269
+ font-size: 14px;
1270
+ flex: 1;
1306
1271
  }
1307
- .preview-timeline .step-content .step-title[data-v-b2b17129] {
1308
- font-size: 15px;
1272
+ .node-badge[data-v-010e7ec8] {
1273
+ background: #52c41a;
1274
+ color: white;
1275
+ padding: 2px 6px;
1276
+ border-radius: 10px;
1277
+ font-size: 11px;
1309
1278
  font-weight: 600;
1310
- color: var(--n-text-color-1);
1311
- margin-bottom: 8px;
1279
+ min-width: 16px;
1280
+ text-align: center;
1312
1281
  }
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);
1282
+ .node-content[data-v-010e7ec8] {
1283
+ padding: 16px;
1318
1284
  }
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;
1285
+ .copy-users-list[data-v-010e7ec8] {
1324
1286
  display: flex;
1325
- align-items: flex-start;
1326
1287
  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;
1288
+ gap: 6px;
1289
+ align-items: center;
1336
1290
  }
1337
- .preview-timeline .step-content .step-details .step-detail-item .detail-label[data-v-b2b17129] {
1338
- color: var(--n-text-color-3);
1291
+ .copy-user-tag[data-v-010e7ec8] {
1292
+ display: flex;
1293
+ align-items: center;
1294
+ gap: 6px;
1295
+ background: #f6ffed;
1296
+ color: #52c41a;
1297
+ padding: 4px 8px;
1298
+ border-radius: 12px;
1339
1299
  font-size: 12px;
1340
- flex-shrink: 0;
1341
- line-height: 24px;
1300
+ border: 1px solid #b7eb8f;
1342
1301
  }
1343
- .preview-timeline .step-content .step-details .step-detail-item .mode-badge[data-v-b2b17129] {
1344
- display: inline-block;
1345
- font-size: 12px;
1346
- font-weight: 600;
1347
- padding: 2px 10px;
1302
+ .more-count[data-v-010e7ec8] {
1303
+ background: #f0f0f0;
1304
+ color: #8c8c8c;
1305
+ padding: 4px 8px;
1348
1306
  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);
1360
- }
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);
1365
- }
1366
- .preview-timeline .step-content .step-details .step-detail-item .user-tag[data-v-b2b17129] {
1367
- margin: 1px 2px;
1368
- }
1369
- .preview-timeline .step-content .step-details .step-detail-item .warning-text[data-v-b2b17129] {
1370
- color: #faad14;
1307
+ font-size: 12px;
1371
1308
  font-weight: 500;
1372
1309
  }
1373
- .preview-empty[data-v-b2b17129] {
1310
+ .placeholder[data-v-010e7ec8] {
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-010e7ec8] {
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, #52c41a, #389e0d);
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(82, 196, 26, 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-010e7ec8]:hover {
1342
+ transform: translateX(-50%) scale(1.1);
1343
+ box-shadow: 0 6px 20px rgba(82, 196, 26, 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-010e7ec8]:focus-visible {
1346
+ outline: 2px solid #52c41a;
1347
+ outline-offset: 2px;
1348
+ }
1349
+ .delete-btn[data-v-010e7ec8]:focus-visible {
1350
+ opacity: 1;
1351
+ outline: 2px solid #52c41a;
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;}