tianheng-ui 0.1.0 → 0.1.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 (254) hide show
  1. package/README.md +9 -18
  2. package/lib/039af9192b9bb277966ceb4e4ce29c41.js +16 -0
  3. package/lib/2d84c80112a372bc149cad3464e90fa3.js +1617 -0
  4. package/lib/5977b934a4c6b480790864ea01303173.js +10834 -0
  5. package/lib/7745f3e776488705a38e62f85adad54d.js +16 -0
  6. package/lib/de8dee841ffdaaede3a2254deef30376.js +15395 -0
  7. package/lib/e78eab250e7f8ccac3d918dfdb06ca10.js +8904 -0
  8. package/lib/theme-chalk/fonts/PingFang.ttf +0 -0
  9. package/lib/theme-chalk/fonts/bpmn.eot +0 -0
  10. package/lib/theme-chalk/fonts/bpmn.svg +224 -0
  11. package/lib/theme-chalk/fonts/bpmn.ttf +0 -0
  12. package/lib/theme-chalk/fonts/bpmn.woff +0 -0
  13. package/lib/theme-chalk/fonts/bpmn.woff2 +0 -0
  14. package/lib/theme-chalk/fonts/fontawesome-webfont.eot +0 -0
  15. package/lib/theme-chalk/fonts/fontawesome-webfont.svg +2671 -0
  16. package/lib/theme-chalk/fonts/fontawesome-webfont.ttf +0 -0
  17. package/lib/theme-chalk/fonts/fontawesome-webfont.woff +0 -0
  18. package/lib/theme-chalk/fonts/fontawesome-webfont.woff2 +0 -0
  19. package/lib/theme-chalk/fonts/iconfont.eot +0 -0
  20. package/lib/theme-chalk/fonts/iconfont.svg +155 -0
  21. package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
  22. package/lib/theme-chalk/fonts/iconfont.woff +0 -0
  23. package/lib/theme-chalk/fonts/iconfont.woff2 +0 -0
  24. package/lib/theme-chalk/images/notData.png +0 -0
  25. package/lib/theme-chalk/index.scss +31 -0
  26. package/lib/theme-chalk/js/Log.js +99 -0
  27. package/lib/theme-chalk/js/axios.js +86 -0
  28. package/lib/theme-chalk/js/store/getters.js +5 -0
  29. package/lib/theme-chalk/js/store/modules/makingForm.js +21 -0
  30. package/lib/theme-chalk/js/store/store.js +26 -0
  31. package/lib/theme-chalk/styles/button.scss +501 -0
  32. package/lib/theme-chalk/styles/card.scss +29 -0
  33. package/lib/theme-chalk/styles/cell.scss +54 -0
  34. package/lib/theme-chalk/styles/codeEditor.scss +9 -0
  35. package/lib/theme-chalk/styles/col.scss +151 -0
  36. package/lib/theme-chalk/styles/dialog.scss +56 -0
  37. package/lib/theme-chalk/styles/empty.scss +22 -0
  38. package/lib/theme-chalk/styles/feature.scss +46 -0
  39. package/lib/theme-chalk/styles/font.css +7 -0
  40. package/lib/theme-chalk/styles/grid.scss +41 -0
  41. package/lib/theme-chalk/styles/icon.css +1944 -0
  42. package/lib/theme-chalk/styles/imagePreview.scss +113 -0
  43. package/lib/theme-chalk/styles/img.scss +35 -0
  44. package/lib/theme-chalk/styles/reset.scss +17 -0
  45. package/lib/theme-chalk/styles/root.css +64 -0
  46. package/lib/theme-chalk/styles/row.scss +23 -0
  47. package/lib/theme-chalk/styles/upload.scss +744 -0
  48. package/lib/theme-chalk/styles/variable.scss +80 -0
  49. package/lib/tianheng-ui.js +116 -0
  50. package/package.json +86 -48
  51. package/packages/Button/index.js +8 -0
  52. package/packages/Button/index.vue +80 -0
  53. package/packages/Card/index.js +8 -0
  54. package/packages/Card/index.vue +37 -0
  55. package/packages/Cell/index.js +8 -0
  56. package/packages/Cell/index.vue +68 -0
  57. package/packages/CodeEditor/index.js +8 -0
  58. package/packages/CodeEditor/index.vue +177 -0
  59. package/packages/Col/index.js +8 -0
  60. package/packages/Col/index.vue +43 -0
  61. package/packages/Dialog/index.js +8 -0
  62. package/packages/Dialog/index.vue +129 -0
  63. package/packages/Empty/index.js +8 -0
  64. package/packages/Empty/index.vue +35 -0
  65. package/packages/FormMaking/FormConfig.vue +60 -0
  66. package/packages/FormMaking/GenerateForm.vue +308 -0
  67. package/packages/FormMaking/GenerateFormItem.vue +887 -0
  68. package/packages/FormMaking/GenerateFormItemH5.vue +825 -0
  69. package/packages/FormMaking/Upload/index.vue +572 -0
  70. package/packages/FormMaking/WidgetConfig.vue +472 -0
  71. package/packages/FormMaking/WidgetForm.vue +159 -0
  72. package/packages/FormMaking/WidgetFormItem.vue +187 -0
  73. package/packages/FormMaking/custom/config.js +762 -0
  74. package/packages/FormMaking/custom/configs/alliance.vue +0 -0
  75. package/packages/FormMaking/custom/configs/blank.vue +54 -0
  76. package/packages/FormMaking/custom/configs/button.vue +172 -0
  77. package/packages/FormMaking/custom/configs/cascader.vue +175 -0
  78. package/packages/FormMaking/custom/configs/cell.vue +81 -0
  79. package/packages/FormMaking/custom/configs/checkbox.vue +234 -0
  80. package/packages/FormMaking/custom/configs/color.vue +137 -0
  81. package/packages/FormMaking/custom/configs/date.vue +158 -0
  82. package/packages/FormMaking/custom/configs/divider.vue +61 -0
  83. package/packages/FormMaking/custom/configs/editor.vue +71 -0
  84. package/packages/FormMaking/custom/configs/filler.vue +57 -0
  85. package/packages/FormMaking/custom/configs/grid.vue +103 -0
  86. package/packages/FormMaking/custom/configs/image.vue +138 -0
  87. package/packages/FormMaking/custom/configs/input.vue +176 -0
  88. package/packages/FormMaking/custom/configs/number.vue +140 -0
  89. package/packages/FormMaking/custom/configs/radio.vue +211 -0
  90. package/packages/FormMaking/custom/configs/rate.vue +109 -0
  91. package/packages/FormMaking/custom/configs/select.vue +305 -0
  92. package/packages/FormMaking/custom/configs/slider.vue +142 -0
  93. package/packages/FormMaking/custom/configs/switch.vue +130 -0
  94. package/packages/FormMaking/custom/configs/table.vue +105 -0
  95. package/packages/FormMaking/custom/configs/table_h5.vue +102 -0
  96. package/packages/FormMaking/custom/configs/tabs.vue +175 -0
  97. package/packages/FormMaking/custom/configs/text.vue +71 -0
  98. package/packages/FormMaking/custom/configs/textarea.vue +167 -0
  99. package/packages/FormMaking/custom/configs/time.vue +153 -0
  100. package/packages/FormMaking/custom/configs/upload.vue +155 -0
  101. package/packages/FormMaking/custom/index.js +32 -0
  102. package/packages/FormMaking/custom/items/alliance.vue +132 -0
  103. package/packages/FormMaking/custom/items/blank.vue +16 -0
  104. package/packages/FormMaking/custom/items/button.vue +27 -0
  105. package/packages/FormMaking/custom/items/cascader.vue +29 -0
  106. package/packages/FormMaking/custom/items/cell.vue +18 -0
  107. package/packages/FormMaking/custom/items/checkbox.vue +46 -0
  108. package/packages/FormMaking/custom/items/color.vue +19 -0
  109. package/packages/FormMaking/custom/items/date.vue +29 -0
  110. package/packages/FormMaking/custom/items/divider.vue +14 -0
  111. package/packages/FormMaking/custom/items/editor.vue +22 -0
  112. package/packages/FormMaking/custom/items/filler.vue +17 -0
  113. package/packages/FormMaking/custom/items/grid.vue +130 -0
  114. package/packages/FormMaking/custom/items/image.vue +70 -0
  115. package/packages/FormMaking/custom/items/input.vue +33 -0
  116. package/packages/FormMaking/custom/items/login.vue +13 -0
  117. package/packages/FormMaking/custom/items/number.vue +24 -0
  118. package/packages/FormMaking/custom/items/radio.vue +44 -0
  119. package/packages/FormMaking/custom/items/rate.vue +20 -0
  120. package/packages/FormMaking/custom/items/select.vue +32 -0
  121. package/packages/FormMaking/custom/items/slider.vue +34 -0
  122. package/packages/FormMaking/custom/items/switch.vue +22 -0
  123. package/packages/FormMaking/custom/items/table.vue +106 -0
  124. package/packages/FormMaking/custom/items/table_h5.vue +126 -0
  125. package/packages/FormMaking/custom/items/tabs.vue +145 -0
  126. package/packages/FormMaking/custom/items/text.vue +18 -0
  127. package/packages/FormMaking/custom/items/textarea.vue +37 -0
  128. package/packages/FormMaking/custom/items/time.vue +32 -0
  129. package/packages/FormMaking/custom/items/upload.vue +102 -0
  130. package/packages/FormMaking/custom/mixins/index.js +61 -0
  131. package/packages/FormMaking/custom/register.js +18 -0
  132. package/packages/FormMaking/generate.js +5 -0
  133. package/packages/FormMaking/iconfont/demo.css +539 -0
  134. package/packages/FormMaking/iconfont/demo_index.html +1159 -0
  135. package/packages/FormMaking/iconfont/iconfont.css +189 -0
  136. package/packages/FormMaking/iconfont/iconfont.eot +0 -0
  137. package/packages/FormMaking/iconfont/iconfont.js +1 -0
  138. package/packages/FormMaking/iconfont/iconfont.svg +155 -0
  139. package/packages/FormMaking/iconfont/iconfont.ttf +0 -0
  140. package/packages/FormMaking/iconfont/iconfont.woff +0 -0
  141. package/packages/FormMaking/iconfont/iconfont.woff2 +0 -0
  142. package/packages/FormMaking/index.js +33 -0
  143. package/packages/FormMaking/index.vue +807 -0
  144. package/packages/FormMaking/lang/en-US.js +187 -0
  145. package/packages/FormMaking/lang/zh-CN.js +187 -0
  146. package/packages/FormMaking/making.js +9 -0
  147. package/packages/FormMaking/styles/cover.scss +41 -0
  148. package/packages/FormMaking/styles/index.scss +785 -0
  149. package/packages/FormMaking/util/generateCode.js +163 -0
  150. package/packages/FormMaking/util/index.js +33 -0
  151. package/packages/FormMaking/util/request.js +28 -0
  152. package/packages/Grid/index.js +8 -0
  153. package/packages/Grid/index.vue +21 -0
  154. package/packages/GridItem/index.js +8 -0
  155. package/packages/GridItem/index.vue +69 -0
  156. package/packages/Icons/index.js +8 -0
  157. package/packages/Icons/index.vue +377 -0
  158. package/packages/Image/index.js +8 -0
  159. package/packages/Image/index.vue +146 -0
  160. package/packages/ImagePreview/index.js +8 -0
  161. package/packages/ImagePreview/index.vue +386 -0
  162. package/packages/Row/index.js +8 -0
  163. package/packages/Row/index.vue +33 -0
  164. package/packages/Table/action.js +8 -0
  165. package/packages/Table/action.vue +168 -0
  166. package/packages/Table/column.vue +63 -0
  167. package/packages/Table/index.js +8 -0
  168. package/packages/Table/index.vue +327 -0
  169. package/packages/Table/search.js +8 -0
  170. package/packages/Table/search.vue +163 -0
  171. package/packages/Table/tools.js +8 -0
  172. package/packages/Table/tools.vue +49 -0
  173. package/packages/TableMaking/custom/configs/fieldSearch.vue +17 -0
  174. package/packages/TableMaking/custom/configs/fieldTable.vue +15 -0
  175. package/packages/TableMaking/custom/items/search/index.vue +158 -0
  176. package/packages/TableMaking/custom/items/tools/index.vue +49 -0
  177. package/packages/TableMaking/generate.js +5 -0
  178. package/packages/TableMaking/generateTable.vue +560 -0
  179. package/packages/TableMaking/index.vue +234 -0
  180. package/packages/TableMaking/making.js +5 -0
  181. package/packages/TableMaking/util/index.js +433 -0
  182. package/packages/TableMaking/widgetConfig.vue +390 -0
  183. package/packages/TableMaking/widgetTable.vue +305 -0
  184. package/packages/Upload/ajax.js +85 -0
  185. package/packages/Upload/index.js +8 -0
  186. package/packages/Upload/index.vue +325 -0
  187. package/packages/Upload/upload-dragger.vue +70 -0
  188. package/packages/Upload/upload-list.vue +121 -0
  189. package/packages/Upload/upload.vue +193 -0
  190. package/packages/VueEditor/index.js +8 -0
  191. package/packages/VueEditor/index.vue +38 -0
  192. package/packages/Workflow/Log.js +99 -0
  193. package/packages/Workflow/designer/ProcessDesigner.vue +628 -0
  194. package/packages/Workflow/designer/index.js +7 -0
  195. package/packages/Workflow/designer/plugins/content-pad/contentPadProvider.js +390 -0
  196. package/packages/Workflow/designer/plugins/content-pad/index.js +6 -0
  197. package/packages/Workflow/designer/plugins/defaultEmpty.js +24 -0
  198. package/packages/Workflow/designer/plugins/descriptor/activitiDescriptor.json +1071 -0
  199. package/packages/Workflow/designer/plugins/descriptor/camundaDescriptor.json +1087 -0
  200. package/packages/Workflow/designer/plugins/descriptor/flowableDescriptor.json +1215 -0
  201. package/packages/Workflow/designer/plugins/extension-moddle/activiti/activitiExtension.js +74 -0
  202. package/packages/Workflow/designer/plugins/extension-moddle/activiti/index.js +9 -0
  203. package/packages/Workflow/designer/plugins/extension-moddle/camunda/extension.js +148 -0
  204. package/packages/Workflow/designer/plugins/extension-moddle/camunda/index.js +6 -0
  205. package/packages/Workflow/designer/plugins/extension-moddle/flowable/flowableExtension.js +74 -0
  206. package/packages/Workflow/designer/plugins/extension-moddle/flowable/index.js +9 -0
  207. package/packages/Workflow/designer/plugins/palette/CustomPalette.js +156 -0
  208. package/packages/Workflow/designer/plugins/palette/index.js +6 -0
  209. package/packages/Workflow/designer/plugins/palette/paletteProvider.js +160 -0
  210. package/packages/Workflow/designer/plugins/translate/customTranslate.js +41 -0
  211. package/packages/Workflow/designer/plugins/translate/zh.js +238 -0
  212. package/packages/Workflow/highlight/index.js +5 -0
  213. package/packages/Workflow/index.js +34 -0
  214. package/packages/Workflow/index.vue +399 -0
  215. package/packages/Workflow/modules/auto-place/CustomAutoPlace.js +81 -0
  216. package/packages/Workflow/modules/auto-place/index.js +6 -0
  217. package/packages/Workflow/modules/custom-renderer/CustomRenderer.js +17 -0
  218. package/packages/Workflow/modules/custom-renderer/index.js +6 -0
  219. package/packages/Workflow/modules/rules/CustomRules.js +16 -0
  220. package/packages/Workflow/modules/rules/index.js +6 -0
  221. package/packages/Workflow/palette/ProcessPalette.vue +106 -0
  222. package/packages/Workflow/palette/index.js +7 -0
  223. package/packages/Workflow/penal/PropertiesPanel.vue +245 -0
  224. package/packages/Workflow/penal/base/ElementBaseInfo.vue +80 -0
  225. package/packages/Workflow/penal/flow-condition/FlowCondition.vue +142 -0
  226. package/packages/Workflow/penal/form/ElementForm.vue +367 -0
  227. package/packages/Workflow/penal/index.js +7 -0
  228. package/packages/Workflow/penal/listeners/ElementListeners.vue +299 -0
  229. package/packages/Workflow/penal/listeners/UserTaskListeners.vue +322 -0
  230. package/packages/Workflow/penal/listeners/template.js +178 -0
  231. package/packages/Workflow/penal/listeners/utilSelf.js +64 -0
  232. package/packages/Workflow/penal/multi-instance/ElementMultiInstance.vue +200 -0
  233. package/packages/Workflow/penal/other/ElementOtherConfig.vue +59 -0
  234. package/packages/Workflow/penal/properties/ElementProperties.vue +135 -0
  235. package/packages/Workflow/penal/signal-message/SignalAndMessage.vue +104 -0
  236. package/packages/Workflow/penal/task/ElementTask.vue +73 -0
  237. package/packages/Workflow/penal/task/task-components/ReceiveTask.vue +97 -0
  238. package/packages/Workflow/penal/task/task-components/ScriptTask.vue +85 -0
  239. package/packages/Workflow/penal/task/task-components/UserTask.vue +535 -0
  240. package/packages/Workflow/theme/element-variables.scss +70 -0
  241. package/packages/Workflow/theme/index.scss +2 -0
  242. package/packages/Workflow/theme/process-designer.scss +157 -0
  243. package/packages/Workflow/theme/process-panel.scss +107 -0
  244. package/packages/Workflow/translations.js +25 -0
  245. package/packages/Workflow/utils.js +71 -0
  246. package/packages/index.js +160 -0
  247. package/babel.config.js +0 -15
  248. package/index.js +0 -11
  249. package/public/favicon.ico +0 -0
  250. package/public/index.html +0 -17
  251. package/src/App.vue +0 -28
  252. package/src/assets/logo.png +0 -0
  253. package/src/components/HelloWorld.vue +0 -58
  254. package/src/main.js +0 -8
@@ -0,0 +1,535 @@
1
+ <template>
2
+ <div>
3
+ <el-checkbox-group
4
+ class="taskMenus"
5
+ v-model="taskMenusSelect"
6
+ @change="taskMenusCheckboxChange"
7
+ >
8
+ <div
9
+ class="taskMenus-item"
10
+ v-for="menu in Object.values(taskMenus)"
11
+ :key="menu.name"
12
+ >
13
+ <el-checkbox :label="menu.name" :disabled="menu.disabled">{{
14
+ menu.label
15
+ }}</el-checkbox>
16
+ <el-select
17
+ v-if="menu.name === 'person'"
18
+ v-model="menu.value"
19
+ placeholder="请选择"
20
+ multiple
21
+ clearable
22
+ @change="taskMenusCheckboxChange"
23
+ >
24
+ <el-option
25
+ v-for="item in personOptions"
26
+ :key="item.value"
27
+ :label="item.label"
28
+ :value="item.value"
29
+ >
30
+ </el-option>
31
+ </el-select>
32
+ <el-select
33
+ v-if="menu.name === 'role'"
34
+ v-model="menu.value"
35
+ placeholder="请选择"
36
+ multiple
37
+ clearable
38
+ @change="taskMenusCheckboxChange"
39
+ >
40
+ <el-option
41
+ v-for="item in [{ label: '管理员', value: 'admin' }]"
42
+ :key="item.value"
43
+ :label="item.label"
44
+ :value="item.value"
45
+ >
46
+ </el-option>
47
+ </el-select>
48
+ <el-cascader
49
+ v-if="menu.name === 'department'"
50
+ style="width: 100%"
51
+ v-model="menu.value"
52
+ :options="departmentOptions"
53
+ :props="{ checkStrictly: true }"
54
+ :show-all-levels="false"
55
+ clearable
56
+ @change="taskMenusCheckboxChange"
57
+ ></el-cascader>
58
+ <!-- <el-input
59
+ v-if="menu.name === 'leader'"
60
+ :value="menu.value"
61
+ placeholder="请输入"
62
+ readonly
63
+ ></el-input>
64
+ <el-input
65
+ v-if="menu.name === 'leaderList'"
66
+ :value="JSON.stringify(menu.value)"
67
+ placeholder="请输入"
68
+ readonly
69
+ ></el-input>
70
+ <el-input
71
+ v-if="menu.name === 'select'"
72
+ :value="menu.value"
73
+ placeholder="请输入"
74
+ >
75
+ </el-input>
76
+ <el-input
77
+ v-if="menu.name === 'oneself'"
78
+ :value="menu.value"
79
+ placeholder="请输入"
80
+ readonly
81
+ ></el-input> -->
82
+ </div>
83
+ </el-checkbox-group>
84
+
85
+ <!-- <template>
86
+ <el-form-item label="处理用户">
87
+ <el-select
88
+ v-model="userTaskForm.assignee"
89
+ @change="updateElementTask('assignee')"
90
+ >
91
+ <el-option
92
+ v-for="ak in mockData"
93
+ :key="'ass-' + ak"
94
+ :label="`用户${ak}`"
95
+ :value="`user${ak}`"
96
+ />
97
+ </el-select>
98
+ </el-form-item>
99
+ <el-form-item label="候选用户">
100
+ <el-select
101
+ v-model="userTaskForm.candidateUsers"
102
+ multiple
103
+ collapse-tags
104
+ @change="updateElementTask('candidateUsers')"
105
+ >
106
+ <el-option
107
+ v-for="uk in mockData"
108
+ :key="'user-' + uk"
109
+ :label="`用户${uk}`"
110
+ :value="`user${uk}`"
111
+ />
112
+ </el-select>
113
+ </el-form-item>
114
+ <el-form-item label="候选分组">
115
+ <el-select
116
+ v-model="userTaskForm.candidateGroups"
117
+ multiple
118
+ collapse-tags
119
+ @change="updateElementTask('candidateGroups')"
120
+ >
121
+ <el-option
122
+ v-for="gk in mockData"
123
+ :key="'ass-' + gk"
124
+ :label="`分组${gk}`"
125
+ :value="`group${gk}`"
126
+ />
127
+ </el-select>
128
+ </el-form-item>
129
+ <el-form-item label="到期时间">
130
+ <el-input
131
+ v-model="userTaskForm.dueDate"
132
+ clearable
133
+ @change="updateElementTask('dueDate')"
134
+ />
135
+ </el-form-item>
136
+ <el-form-item label="跟踪时间">
137
+ <el-input
138
+ v-model="userTaskForm.followUpDate"
139
+ clearable
140
+ @change="updateElementTask('followUpDate')"
141
+ />
142
+ </el-form-item>
143
+ <el-form-item label="优先级">
144
+ <el-input
145
+ v-model="userTaskForm.priority"
146
+ clearable
147
+ @change="updateElementTask('priority')"
148
+ />
149
+ </el-form-item>
150
+ </template> -->
151
+ </div>
152
+ </template>
153
+
154
+ <script>
155
+ export default {
156
+ name: "UserTask",
157
+ props: {
158
+ id: String,
159
+ type: String,
160
+ },
161
+ inject: {
162
+ prefix: "prefix",
163
+ },
164
+ data() {
165
+ return {
166
+ taskMenus: {},
167
+ defaultTaskForm: {
168
+ assignee: "",
169
+ candidateUsers: [],
170
+ candidateGroups: [],
171
+ // dueDate: "",
172
+ // followUpDate: "",
173
+ // priority: "",
174
+ },
175
+ userTaskForm: {},
176
+ mockData: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
177
+ taskMenusSelect: [],
178
+
179
+ personOptions: [],
180
+ departmentOptions: [],
181
+
182
+ bpmnElement: null,
183
+ otherExtensionList: null,
184
+ };
185
+ },
186
+ watch: {
187
+ id: {
188
+ immediate: true,
189
+ handler() {
190
+ this.bpmnElement = window.bpmnInstances.bpmnElement;
191
+ this.otherExtensionList =
192
+ this.bpmnElement.businessObject?.extensionElements?.values?.filter(
193
+ (ex) => ex.$type === `${this.prefix}:Property`
194
+ ) ?? [];
195
+
196
+ console.log(this.bpmnElement, this.otherExtensionList);
197
+ this.initTaskMenus();
198
+ this.$nextTick(() => this.resetTaskForm());
199
+ },
200
+ },
201
+ },
202
+ mounted() {
203
+ this.getData();
204
+ },
205
+ methods: {
206
+ getData() {
207
+ setTimeout(() => {
208
+ this.personOptions = [
209
+ { label: "张三", value: "张三" },
210
+ { label: "李四", value: "李四" },
211
+ { label: "王武", value: "王武" },
212
+ ];
213
+ this.departmentOptions = [
214
+ {
215
+ value: "事业部",
216
+ label: "事业部",
217
+ children: [
218
+ { value: "事业1部", label: "事业1部" },
219
+ { value: "事业2部", label: "事业2部" },
220
+ ],
221
+ },
222
+ {
223
+ value: "综合部",
224
+ label: "综合部",
225
+ children: [
226
+ {
227
+ value: "综合1部",
228
+ label: "综合1部",
229
+ },
230
+ {
231
+ value: "综合2部",
232
+ label: "综合2部",
233
+ },
234
+ ],
235
+ },
236
+ {
237
+ value: "研发部",
238
+ label: "研发部",
239
+ children: [
240
+ {
241
+ value: "研发1部",
242
+ label: "研发1部",
243
+ },
244
+ {
245
+ value: "研发2部",
246
+ label: "研发2部",
247
+ },
248
+ ],
249
+ },
250
+ ];
251
+ }, 1000);
252
+ },
253
+ initTaskMenus() {
254
+ this.taskMenus = {
255
+ person: {
256
+ label: "指定人员",
257
+ name: "person",
258
+ key: "candidateUsers",
259
+ value: "",
260
+ disabled: false,
261
+ },
262
+ // role: {
263
+ // label: "指定角色",
264
+ // name: 'role',
265
+ // key: "candidateGroups",
266
+ // value: [],
267
+ // disabled: false,
268
+ // },
269
+ department: {
270
+ label: "指定部门",
271
+ name: "department",
272
+ key: "candidateGroups",
273
+ value: [],
274
+ disabled: false,
275
+ },
276
+ leader: {
277
+ label: "直属领导",
278
+ name: "leader",
279
+ key: "assignee",
280
+ value: "${superiorLeader}",
281
+ disabled: false,
282
+ },
283
+ leaderList: {
284
+ label: "连续多级主管",
285
+ name: "leaderList",
286
+ key: "collection",
287
+ value: "superiorLeaderList",
288
+ disabled: this.bpmnElement?.businessObject.loopCharacteristics
289
+ ? this.bpmnElement.businessObject.loopCharacteristics.$type !=
290
+ "bpmn:MultiInstanceLoopCharacteristics"
291
+ : true,
292
+ },
293
+ select: {
294
+ label: "发起人自选",
295
+ name: "select",
296
+ key: "assignee",
297
+ value: "${selectUser}",
298
+ disabled: true,
299
+ },
300
+ oneself: {
301
+ label: "发起人自己",
302
+ name: "oneself",
303
+ key: "assignee",
304
+ value: "${initiator}",
305
+ disabled: false,
306
+ },
307
+ };
308
+ this.taskMenusSelect = [];
309
+ },
310
+ resetTaskForm() {
311
+ const businessObject = this.bpmnElement?.businessObject;
312
+ if (businessObject.candidateUsers === `u_${this.bpmnElement.id}`) {
313
+ this.taskMenusSelect.push("person");
314
+ this.taskMenus.leaderList.disabled = true;
315
+ }
316
+ if (businessObject.candidateGroups === `g_${this.bpmnElement.id}`) {
317
+ this.taskMenusSelect.push("department");
318
+ this.taskMenus.leaderList.disabled = true;
319
+ }
320
+
321
+ if (businessObject.assignee === "${superiorLeader}") {
322
+ this.taskMenusSelect.push("leader");
323
+ this.taskMenus.oneself.disabled = true;
324
+ }
325
+ if (businessObject.assignee === "${initiator}") {
326
+ this.taskMenusSelect.push("oneself");
327
+ this.taskMenus.leader.disabled = true;
328
+ }
329
+
330
+ this.otherExtensionList.forEach((item) => {
331
+ if (item.name === `u_${this.bpmnElement.id}`) {
332
+ this.taskMenus.person.value.push(item.value);
333
+ } else if (item.name === `g_${this.bpmnElement.id}`) {
334
+ this.taskMenus.department.value = item.value.split(",");
335
+ }
336
+ });
337
+
338
+ // for (let key in this.defaultTaskForm) {
339
+ // let value;
340
+ // if (key === "candidateUsers") {
341
+ // value = this.bpmnElement?.businessObject[key]
342
+ // ? this.bpmnElement.businessObject[key].split(",")
343
+ // : [];
344
+ // if (value.includes("${superiorLeaderList}")) {
345
+ // this.taskMenusSelect.push("leaderList");
346
+ // this.taskMenus.person.disabled = true;
347
+ // } else if (key === "candidateGroups" && value.length) {
348
+ // this.taskMenusSelect.push("department");
349
+ // this.taskMenus.department.value = value;
350
+ // } else if (key === "candidateUsers" && value.length) {
351
+ // this.taskMenusSelect.push("person");
352
+ // this.taskMenus.person.value = value;
353
+ // this.taskMenus.leaderList.disabled = true;
354
+ // }
355
+ // } else if (key === "candidateGroups") {
356
+ // } else {
357
+ // value =
358
+ // this.bpmnElement?.businessObject[key] || this.defaultTaskForm[key];
359
+ // if (value === "${superiorLeader}") {
360
+ // this.taskMenusSelect.push("leader");
361
+ // this.taskMenus.oneself.disabled = true;
362
+ // } else if (value === "${selectUser}") {
363
+ // this.taskMenusSelect.push("select");
364
+ // } else if (value === "${initiator}") {
365
+ // this.taskMenusSelect.push("oneself");
366
+ // this.taskMenus.leader.disabled = true;
367
+ // }
368
+ // }
369
+ // }
370
+ this.taskMenusCheckboxChange();
371
+ },
372
+ updateElementTask(name, taskAttr) {
373
+ const menu = this.taskMenus[name];
374
+ console.log(menu);
375
+ if (this.taskMenusSelect.includes(name) == false) {
376
+ return;
377
+ }
378
+ const key = menu.key;
379
+ const value = menu.value;
380
+
381
+ if (menu.name === "department") {
382
+ const candidateGroupsName = `g_${this.bpmnElement.id}`;
383
+ const newPropertyObject = window.bpmnInstances.moddle.create(
384
+ `${this.prefix}:Property`,
385
+ { name: candidateGroupsName, value: value.join() }
386
+ );
387
+ taskAttr.extensionElements =
388
+ taskAttr.extensionElements.concat(newPropertyObject);
389
+ taskAttr.candidateGroups = candidateGroupsName;
390
+ } else if (menu.name === "person") {
391
+ const candidateUsersName = `u_${this.bpmnElement.id}`;
392
+ let values = [];
393
+ value.forEach((element) => {
394
+ const newPropertyObject = window.bpmnInstances.moddle.create(
395
+ `${this.prefix}:Property`,
396
+ { name: candidateUsersName, value: element }
397
+ );
398
+ values.push(newPropertyObject);
399
+ });
400
+ taskAttr.extensionElements = taskAttr.extensionElements.concat(values);
401
+ taskAttr.candidateUsers = candidateUsersName;
402
+ } else if (menu.name === "leaderList") {
403
+ // const newPropertyObject = window.bpmnInstances.moddle.create(
404
+ // `${this.prefix}:Property`,
405
+ // { collection: "superiorLeaderList", elementVariable: "ele" }
406
+ // );
407
+ // taskAttr.extensionElements = taskAttr.extensionElements.concat([
408
+ // newPropertyObject,
409
+ // ]);
410
+ window.bpmnInstances.modeling.updateModdleProperties(
411
+ this.bpmnElement,
412
+ this.bpmnElement.businessObject.loopCharacteristics,
413
+ { collection: "superiorLeaderList", elementVariable: "ele" }
414
+ );
415
+ } else {
416
+ taskAttr[key] = value || null;
417
+ }
418
+ },
419
+ taskMenusCheckboxChange() {
420
+ this.resetElementTask();
421
+ window.bpmnInstances.modeling.updateProperties(this.bpmnElement, {
422
+ assignee: null,
423
+ candidateUsers: null,
424
+ candidateGroups: null,
425
+ extensionElements: null,
426
+ });
427
+ if (this.bpmnElement.businessObject.loopCharacteristics) {
428
+ window.bpmnInstances.modeling.updateModdleProperties(
429
+ this.bpmnElement,
430
+ this.bpmnElement.businessObject.loopCharacteristics,
431
+ { collection: null, elementVariable: null }
432
+ );
433
+ }
434
+
435
+ let taskAttr = {
436
+ assignee: null,
437
+ candidateUsers: null,
438
+ candidateGroups: null,
439
+ extensionElements: [],
440
+ };
441
+ this.taskMenusSelect.map((val) => {
442
+ this.updateElementTask(val, taskAttr);
443
+
444
+ if (val === "person") {
445
+ this.taskMenus.leaderList.disabled = true;
446
+ return;
447
+ }
448
+ if (val === "department") {
449
+ this.taskMenus.leaderList.disabled = true;
450
+ return;
451
+ }
452
+ if (val === "leader") {
453
+ this.taskMenus.oneself.disabled = true;
454
+ this.taskMenus.leaderList.disabled = true;
455
+ return;
456
+ }
457
+ if (val === "leaderList") {
458
+ this.taskMenus.person.disabled = true;
459
+ this.taskMenus.department.disabled = true;
460
+ this.taskMenus.leader.disabled = true;
461
+ this.taskMenus.oneself.disabled = true;
462
+ return;
463
+ }
464
+ if (val === "oneself") {
465
+ this.taskMenus.leader.disabled = true;
466
+ this.taskMenus.leaderList.disabled = true;
467
+ return;
468
+ }
469
+ });
470
+
471
+ if (this.taskMenusSelect.length) {
472
+ console.log(taskAttr.extensionElements);
473
+ const propertiesObject = window.bpmnInstances.moddle.create(
474
+ `${this.prefix}:Properties`,
475
+ {
476
+ values: taskAttr.extensionElements,
477
+ }
478
+ );
479
+
480
+ const extensions = window.bpmnInstances.moddle.create(
481
+ "bpmn:ExtensionElements",
482
+ { values: [propertiesObject] }
483
+ );
484
+
485
+ window.bpmnInstances.modeling.updateProperties(this.bpmnElement, {
486
+ ...taskAttr,
487
+ extensionElements: extensions,
488
+ });
489
+ }
490
+ },
491
+
492
+ resetElementTask() {
493
+ this.taskMenus.person.disabled = false;
494
+ this.taskMenus.department.disabled = false;
495
+ this.taskMenus.leader.disabled = false;
496
+ this.taskMenus.leaderList.disabled = this.bpmnElement?.businessObject
497
+ .loopCharacteristics
498
+ ? this.bpmnElement.businessObject.loopCharacteristics.$type !=
499
+ "bpmn:MultiInstanceLoopCharacteristics"
500
+ : true;
501
+ this.taskMenus.select.disabled = true;
502
+ this.taskMenus.oneself.disabled = false;
503
+
504
+ // Object.values(this.taskMenus).forEach((item) => {
505
+ // if (
506
+ // item.name === "select" ||
507
+ // (item.name === "leaderList" &&
508
+ // this.bpmnElement.businessObject.loopCharacteristics)
509
+ // ) {
510
+ // item.disabled = true;
511
+ // } else {
512
+ // item.disabled = false;
513
+ // }
514
+ // });
515
+ },
516
+ },
517
+ beforeDestroy() {
518
+ this.bpmnElement = null;
519
+ },
520
+ };
521
+ </script>
522
+
523
+ <style lang="less" scoped>
524
+ .taskMenus {
525
+ &-item {
526
+ display: flex;
527
+ align-items: center;
528
+ height: 40px;
529
+ }
530
+
531
+ /deep/ .el-checkbox {
532
+ margin-right: 20px;
533
+ }
534
+ }
535
+ </style>
@@ -0,0 +1,70 @@
1
+ /* 改变主题色变量 */
2
+ $--color-primary: #1890ff;
3
+ $--color-danger: #ff4d4f;
4
+
5
+ /* 改变 icon 字体路径变量,必需 */
6
+ $--font-path: '~element-ui/lib/theme-chalk/fonts';
7
+
8
+ @import "~element-ui/packages/theme-chalk/src/index";
9
+
10
+ .el-table td,
11
+ .el-table th {
12
+ color: #333;
13
+ }
14
+ .el-drawer__header {
15
+ padding: 16px 16px 8px 16px;
16
+ margin: 0;
17
+ line-height: 24px;
18
+ font-size: 18px;
19
+ color: #303133;
20
+ box-sizing: border-box;
21
+ border-bottom: 1px solid #e8e8e8;
22
+ }
23
+ div[class^="el-drawer"]:focus,
24
+ span:focus {
25
+ outline: none;
26
+ }
27
+ .el-drawer__body {
28
+ box-sizing: border-box;
29
+ padding: 16px;
30
+ width: 100%;
31
+ overflow-y: auto;
32
+ }
33
+
34
+ .el-dialog {
35
+ margin-top: 50vh !important;
36
+ transform: translateY(-50%);
37
+ overflow: hidden;
38
+ }
39
+ .el-dialog__wrapper {
40
+ overflow: hidden;
41
+ max-height: 100vh;
42
+ }
43
+ .el-dialog__header {
44
+ padding: 16px 16px 8px 16px;
45
+ box-sizing: border-box;
46
+ border-bottom: 1px solid #e8e8e8;
47
+ }
48
+ .el-dialog__body {
49
+ padding: 16px;
50
+ max-height: 80vh;
51
+ box-sizing: border-box;
52
+ overflow-y: auto;
53
+ }
54
+ .el-dialog__footer {
55
+ padding: 16px;
56
+ box-sizing: border-box;
57
+ border-top: 1px solid #e8e8e8;
58
+ }
59
+ .el-dialog__close {
60
+ font-weight: 600;
61
+ }
62
+ .el-select {
63
+ width: 100%;
64
+ }
65
+ .el-divider:not(.el-divider--horizontal) {
66
+ margin: 0 8px ;
67
+ }
68
+ .el-divider.el-divider--horizontal {
69
+ margin: 16px 0;
70
+ }
@@ -0,0 +1,2 @@
1
+ @import "./process-designer.scss";
2
+ @import "./process-panel.scss";