@utogether/udp-core 1.0.1 → 1.0.2

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 (239) hide show
  1. package/build/plugins.ts +13 -2
  2. package/dist/{403-JWjatlxJ.js → 403-B1rIjAAu.js} +7 -6
  3. package/dist/{404-BcdMJfPb.js → 404-mBqc2y4t.js} +14 -13
  4. package/dist/{500-bsa3F_cc.js → 500-BoI45Zdh.js} +10 -9
  5. package/dist/{AuthorityInfo-CqItgNs5.js → AuthorityInfo-B08NBIIn.js} +1 -1
  6. package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-BLP1SaiH.js +100 -0
  7. package/dist/{AuthorityPanel-BaLMwMgW.js → AuthorityPanel-BeBNiwqc.js} +1 -1
  8. package/dist/{AuthorityPanel.vue_vue_type_style_index_0_lang-C_bkqLD9.js → AuthorityPanel.vue_vue_type_style_index_0_lang-CIYmnP9-.js} +6 -6
  9. package/dist/{Company-DVff9IA7.js → Company-JGGyWEWH.js} +3 -3
  10. package/dist/{CompanyPanel-CNrdq4XE.js → CompanyPanel-BQ_cCmDx.js} +16 -16
  11. package/dist/{Department-CqcpfL4i.js → Department-z2iO6hwM.js} +10 -10
  12. package/dist/{DepartmentPanel-Bvti4LGu.js → DepartmentPanel-BtQe7zwU.js} +108 -78
  13. package/dist/{DesignPanel-CjykspE1.js → DesignPanel-7mhtVWas.js} +1 -1
  14. package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-BK9EERdd.js → DesignPanel.vue_vue_type_style_index_0_lang-4EsHemj_.js} +24 -26
  15. package/dist/DictView-CjchV2Yk.js +109 -0
  16. package/dist/InvOrganization-Pn1O_XP0.js +74 -0
  17. package/dist/Org-BqytV_vi.js +39 -0
  18. package/dist/{Preview-Cm_7RhYU.js → Preview-CLpUUMay.js} +2 -2
  19. package/dist/{ReportDefine-CJVlQ--7.js → ReportDefine-Cz1KtEUF.js} +1 -1
  20. package/dist/{ReportDesign-B0unlrkt.js → ReportDesign-BaORYud4.js} +46 -46
  21. package/dist/{ReportQuery-BKuMCEvF.js → ReportQuery-CPCPXiXz.js} +5 -5
  22. package/dist/{ReportQueryFrom-DAngMJLU.js → ReportQueryFrom-C_AcrfkJ.js} +1 -1
  23. package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-CPpwmztJ.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-Bm67ejay.js} +6 -5
  24. package/dist/{ReportTemplate-8YH3L8Pv.js → ReportTemplate-CFiNMz79.js} +26 -26
  25. package/dist/{Role-MxI30-0W.js → Role-B-XDoJd5.js} +6 -6
  26. package/dist/{RoleAssign-BzUY_y_y.js → RoleAssign-BolW8YVs.js} +9 -9
  27. package/dist/{RolePanel-DS_TErTn.js → RolePanel-2kfs5tw9.js} +1 -1
  28. package/dist/{RolePanel-CXdcvsR5.js → RolePanel-HilSuYns.js} +1 -1
  29. package/dist/RolePanel.vue_vue_type_script_setup_true_lang-CE4gApUY.js +132 -0
  30. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-Ddl-A7Zh.js → RolePanel.vue_vue_type_script_setup_true_lang-DPzgfAyV.js} +42 -36
  31. package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-DnchUgIF.js → ScrollPanel.vue_vue_type_style_index_0_lang-CCTH4RkH.js} +20 -20
  32. package/dist/{Staff-D7tXo_Gn.js → Staff-BTk3whFC.js} +3 -3
  33. package/dist/{StaffInfo-Bk8BY8PO.js → StaffInfo-d3AuSzlA.js} +1 -1
  34. package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-DqKwZi5f.js → StaffInfo.vue_vue_type_script_setup_true_lang-eOL4VlfE.js} +13 -13
  35. package/dist/{StaffPanel-VtpGCTIq.js → StaffPanel-DV-D4jjz.js} +1 -1
  36. package/dist/StaffPanel.vue_vue_type_script_setup_true_lang-4sFq3CEo.js +135 -0
  37. package/dist/{SysUser-D0Q6OvD7.js → SysUser-BnjYytws.js} +2 -2
  38. package/dist/{SysUserPanel-1_vrsANQ.js → SysUserPanel-CBoyD-Qi.js} +1 -1
  39. package/dist/SysUserPanel.vue_vue_type_script_setup_true_lang-PrTlTZR-.js +341 -0
  40. package/dist/{SystemMenu-9PG3vESE.js → SystemMenu-kYB_ZaUt.js} +49 -47
  41. package/dist/{UserInfo-qgXUEGwi.js → UserInfo-4dx97VBL.js} +1 -1
  42. package/dist/{UserInfo.vue_vue_type_style_index_0_lang-CN0C5rVk.js → UserInfo.vue_vue_type_style_index_0_lang-BpbC_ZDm.js} +35 -33
  43. package/dist/{childView-C7ZSA5fR.js → childView-CHPNfTEb.js} +1 -1
  44. package/dist/{childView-yV2QLwfA.js → childView-CKA_JgVZ.js} +1 -1
  45. package/dist/{childView.vue_vue_type_style_index_0_lang-DdKxPGdh.js → childView.vue_vue_type_style_index_0_lang-Bym2fQRd.js} +7 -7
  46. package/dist/childView.vue_vue_type_style_index_0_lang-W7bCtXeu.js +177 -0
  47. package/dist/{code-rule-95K1jr-u.js → code-rule-CbxuZg0-.js} +42 -41
  48. package/dist/core.es.js +19 -10
  49. package/dist/{cron-task-DGrQwOHs.js → cron-task-nTOpqQYf.js} +5 -5
  50. package/dist/flow-task-B07st2aD.js +10 -0
  51. package/dist/{frameView-7SmME93D.js → frameView-Z1tPUyCh.js} +15 -14
  52. package/dist/img/l_img.svg +1 -1
  53. package/dist/img/minicolors.png +0 -0
  54. package/dist/img/v_img.svg +1 -1
  55. package/dist/index-C3q8HoJM.js +4650 -0
  56. package/dist/{layoutView-C6WIVWGZ.js → layoutView--MGA9zUB.js} +1776 -1764
  57. package/dist/{log-in-e7D5Ss1P.js → log-in-CSYJDA6m.js} +36 -29
  58. package/dist/log-out-DiwGCg7p.js +130 -0
  59. package/dist/login-C6Y0ajDp.js +251 -0
  60. package/dist/{login-log-CvVnyGi3.js → login-log-C0V-_l3F.js} +6 -4
  61. package/dist/{lov-view-DoF5LqFQ.js → lov-view-Cmv7wZZ9.js} +9 -9
  62. package/dist/{menuInfo-CNzGQwOD.js → menuInfo-UeutJpOa.js} +1 -1
  63. package/dist/{menuInfo.vue_vue_type_style_index_0_lang-51SYxVc_.js → menuInfo.vue_vue_type_style_index_0_lang-CWX4Mu67.js} +144 -121
  64. package/dist/pda-app-B6w99SJo.js +710 -0
  65. package/dist/redirect-BqegffKC.js +15 -0
  66. package/dist/{resource-gVFFMO9l.js → resource-BybJvUv0.js} +17 -17
  67. package/dist/{su-welcome-BN_s_RX_.js → su-welcome-C1bmxHoY.js} +124 -126
  68. package/dist/sys-config-BnmIDnCj.js +370 -0
  69. package/dist/udp-core.css +1 -9
  70. package/dist/utogether-MlnyYtNS.js +4 -0
  71. package/index.ts +19 -6
  72. package/package.json +18 -17
  73. package/src/App.vue +2 -7
  74. package/src/api/http.ts +1 -4
  75. package/src/api/index.ts +5 -3
  76. package/src/api/user.ts +2 -2
  77. package/src/components/SuCharts/src/UserInfo.vue +3 -3
  78. package/src/components/SuScrollTree/ScrollPanel.vue +4 -9
  79. package/src/components/udp/content/index.vue +88 -0
  80. package/src/components/udp/form/form.vue +109 -0
  81. package/src/components/udp/grid/index.vue +524 -0
  82. package/src/components/udp/index.ts +5 -4
  83. package/src/components/udp/ut-stamp-badge/index.vue +271 -0
  84. package/src/components/udp/utils.ts +408 -40
  85. package/src/directives/permission/index.ts +1 -1
  86. package/src/layout/components/lay-navbar/index.vue +9 -7
  87. package/src/layout/components/lay-panel/index.vue +3 -3
  88. package/src/layout/components/lay-search/index.vue +1 -1
  89. package/src/layout/components/lay-select-org/index.vue +4 -9
  90. package/src/layout/components/lay-setting/index.vue +503 -510
  91. package/src/layout/components/lay-sidebar/breadCrumb.vue +1 -1
  92. package/src/layout/components/lay-sidebar/horizontal.vue +8 -6
  93. package/src/layout/components/lay-sidebar/mixNav.vue +260 -258
  94. package/src/layout/components/lay-sidebar/sidebar-logo.vue +101 -98
  95. package/src/layout/components/lay-tag/index.vue +598 -625
  96. package/src/layout/hooks/useDataThemeChange.ts +1 -1
  97. package/src/layout/hooks/useNav.ts +176 -173
  98. package/src/layout/hooks/useTag.ts +227 -233
  99. package/src/layout/layoutView.vue +215 -215
  100. package/src/layout/types.ts +93 -92
  101. package/src/main.ts +115 -109
  102. package/src/plugins/i18n/en.ts +26 -13
  103. package/src/plugins/i18n/module/u-workflow.ts +1 -1
  104. package/src/plugins/i18n/zh.ts +363 -337
  105. package/src/plugins/vxe-table/index.ts +74 -4
  106. package/src/plugins/vxe-table/render.tsx +186 -58
  107. package/src/router/index.ts +187 -183
  108. package/src/router/modules/flow.ts +35 -0
  109. package/src/router/modules/home.ts +32 -32
  110. package/src/router/modules/remaining.ts +1 -26
  111. package/src/router/utils.ts +420 -377
  112. package/src/store/modules/app.ts +2 -4
  113. package/src/store/modules/epTheme.ts +48 -49
  114. package/src/store/modules/multiTags.ts +15 -14
  115. package/src/store/modules/permission.ts +25 -15
  116. package/src/store/modules/system.ts +1 -3
  117. package/src/style/button.scss +11 -4
  118. package/src/style/login.css +1 -1
  119. package/src/style/tailwind.css +1 -68
  120. package/src/style/vxetable.scss +103 -11
  121. package/src/utils/authority/index.ts +1 -1
  122. package/src/utils/dataFormat/index.ts +223 -223
  123. package/src/utils/index.ts +3 -1
  124. package/src/utils/lifecycle.ts +39 -20
  125. package/src/utils/propTypes.ts +1 -6
  126. package/src/utils/storage/index.ts +2 -2
  127. package/src/utils/{http → udp/http}/index.ts +27 -30
  128. package/src/utils/{http → udp/http}/types.d.ts +2 -6
  129. package/src/views/login/login-view.vue +6 -20
  130. package/src/views/organization/company/CompanyPanel.vue +2 -2
  131. package/src/views/organization/department/Department.vue +58 -58
  132. package/src/views/organization/department/DepartmentPanel.vue +303 -283
  133. package/src/views/organization/inv-org/InvOrganization.vue +23 -9
  134. package/src/views/organization/org/Org.vue +9 -5
  135. package/src/views/organization/staff/StaffInfo.vue +127 -133
  136. package/src/views/organization/staff/StaffPanel.vue +162 -145
  137. package/src/views/system/cron/cron-task.vue +2 -12
  138. package/src/views/system/menu/AuthorityPanel.vue +2 -2
  139. package/src/views/system/menu/SystemMenu.vue +14 -20
  140. package/src/views/system/menu/menuInfo.vue +39 -23
  141. package/src/views/system/role/AuthorityInfo.vue +19 -15
  142. package/src/views/system/role/Role.vue +1 -5
  143. package/src/views/system/role/RolePanel.vue +11 -2
  144. package/src/views/system/role/UserInfo.vue +11 -9
  145. package/src/views/system/role-assign/RoleAssign.vue +2 -2
  146. package/src/views/system/role-assign/RolePanel.vue +12 -9
  147. package/src/views/system/sys/sys-config.vue +70 -21
  148. package/src/views/system/sysUser/SysUserPanel.vue +347 -278
  149. package/src/views/uapp/pda/pda-app.vue +48 -16
  150. package/src/views/udev/coderule/code-rule.vue +132 -121
  151. package/src/views/udev/dict/DictView.vue +118 -106
  152. package/src/views/udev/dict/childView.vue +183 -222
  153. package/src/views/udev/lov/childView.vue +1 -7
  154. package/src/views/ufile/aggregation/File.vue +5 -5
  155. package/src/views/ufile/file/water-mark.vue +14 -14
  156. package/src/views/uhome/components/menu-favorite.vue +314 -331
  157. package/src/views/uhome/su-welcome.vue +319 -339
  158. package/src/views/ulogin/login.vue +325 -316
  159. package/src/views/upms/interface/log-in.vue +100 -106
  160. package/src/views/upms/interface/log-out.vue +104 -107
  161. package/src/views/upms/user/login-log.vue +54 -60
  162. package/src/views/urpt/design/DesignPanel.vue +16 -35
  163. package/src/views/urpt/design/Preview.vue +1 -0
  164. package/src/views/urpt/design/ReportDesign.vue +17 -23
  165. package/src/views/urpt/static-resource/resource.vue +3 -3
  166. package/src/views/urpt/template/ReportTemplate.vue +7 -7
  167. package/src/views/utask/flow-task.vue +18 -0
  168. package/types/global.d.ts +231 -236
  169. package/vite.config.ts +13 -2
  170. package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-32L40GY2.js +0 -102
  171. package/dist/DictView-q7kR9K--.js +0 -95
  172. package/dist/InvOrganization-DI45LqZV.js +0 -260
  173. package/dist/Org-CZju_ZiR.js +0 -35
  174. package/dist/RolePanel.vue_vue_type_script_setup_true_lang-DJKu6PXz.js +0 -126
  175. package/dist/StaffPanel.vue_vue_type_script_setup_true_lang-C3Ixs12y.js +0 -111
  176. package/dist/SysUserPanel.vue_vue_type_script_setup_true_lang-C5XEmxsV.js +0 -288
  177. package/dist/childView.vue_vue_type_style_index_0_lang-bkmucBUL.js +0 -187
  178. package/dist/core.umd.js +0 -173
  179. package/dist/index-OswH7SsT.js +0 -9937
  180. package/dist/log-out--RRncZhN.js +0 -120
  181. package/dist/login-BhCMeCLS.js +0 -251
  182. package/dist/pda-app-nn3llDUx.js +0 -2209
  183. package/dist/redirect-CmMplDV4.js +0 -15
  184. package/dist/sys-config-DGutV-VX.js +0 -277
  185. package/dist/utogether-wFDCI28t.js +0 -182
  186. package/src/assets/images/empty.png +0 -0
  187. package/src/assets/images/logo.png +0 -0
  188. package/src/components/ReCountTo/README.md +0 -2
  189. package/src/components/ReCountTo/index.ts +0 -18
  190. package/src/components/ReCountTo/src/normal/index.tsx +0 -165
  191. package/src/components/ReCountTo/src/normal/props.ts +0 -37
  192. package/src/components/ReCountTo/src/rebound/index.tsx +0 -67
  193. package/src/components/ReCountTo/src/rebound/props.ts +0 -14
  194. package/src/components/ReCountTo/src/rebound/rebound.css +0 -77
  195. package/src/components/ReCropper/index.ts +0 -14
  196. package/src/components/ReCropper/src/index.tsx +0 -141
  197. package/src/components/ReFlicker/index.css +0 -39
  198. package/src/components/ReFlicker/index.ts +0 -50
  199. package/src/components/ReFlop/index.ts +0 -14
  200. package/src/components/ReFlop/src/Filpper.tsx +0 -99
  201. package/src/components/ReFlop/src/filpper.css +0 -184
  202. package/src/components/ReFlop/src/index.vue +0 -126
  203. package/src/components/ReFlowChart/index.ts +0 -24
  204. package/src/components/ReFlowChart/src/Control.vue +0 -139
  205. package/src/components/ReFlowChart/src/DataDialog.vue +0 -12
  206. package/src/components/ReFlowChart/src/NodePanel.vue +0 -151
  207. package/src/components/ReFlowChart/src/adpterForTurbo.ts +0 -160
  208. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.css +0 -49
  209. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.eot +0 -0
  210. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.js +0 -61
  211. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.json +0 -58
  212. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.svg +0 -47
  213. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.ttf +0 -0
  214. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.woff +0 -0
  215. package/src/components/ReFlowChart/src/assets/iconfont/iconfont.woff2 +0 -0
  216. package/src/components/ReFlowChart/src/config.ts +0 -62
  217. package/src/components/ReSplitPane/index.css +0 -49
  218. package/src/components/ReSplitPane/index.tsx +0 -119
  219. package/src/components/ReSplitPane/resizer.css +0 -45
  220. package/src/components/ReSplitPane/resizer.tsx +0 -30
  221. package/src/components/SuCommon/card/components/Card.vue +0 -148
  222. package/src/components/SuCommon/card/components/DialogForm.vue +0 -127
  223. package/src/components/SuCommon/card/index.vue +0 -142
  224. package/src/components/SuCommon/icon-select/index.vue +0 -241
  225. package/src/components/SuCommon/table/index.vue +0 -208
  226. package/src/components/SuCommon/utils/index.ts +0 -103
  227. package/src/components/SuCommon/utils/slot.tsx +0 -50
  228. package/src/components/udp/form-upload.vue +0 -132
  229. package/src/components/udp/modal-form.vue +0 -180
  230. package/src/utils/udp/useRender.ts +0 -420
  231. package/src/views/components/contextmenu/basic.vue +0 -74
  232. package/src/views/components/contextmenu/context-menu.vue +0 -40
  233. package/src/views/components/contextmenu/menuDynamic.vue +0 -99
  234. package/src/views/components/contextmenu/menuGroup.vue +0 -71
  235. package/src/views/components/count-to/index.vue +0 -43
  236. package/src/views/components/cropping/index.vue +0 -59
  237. package/src/views/components/cropping/picture.jpeg +0 -0
  238. package/src/views/components/split-pane/index.vue +0 -82
  239. package/src/views/components/video/index.vue +0 -57
@@ -1,420 +0,0 @@
1
- /*
2
- * @Author: wei.li
3
- * @Date: 2021-11-29 18:18:00
4
- * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-04-18 11:09:01
6
- * @Description: file content
7
- */
8
-
9
- declare interface Fn<T = any, R = T> {
10
- (...arg: T[]): R;
11
- }
12
-
13
- interface IAttrs {
14
- disabled?: boolean;
15
- defaultValue?: string;
16
- code?: string;
17
- [x: string]: any;
18
- }
19
-
20
- interface IEvents {
21
- change?: Fn;
22
- clear?: Fn;
23
- blur?: Fn;
24
- focus?: Fn;
25
- input?: Fn;
26
- filterMethod?: Fn;
27
- }
28
- import { isObject, isEmpty, isString, isFunction } from 'xe-utils';
29
- import { storageLocal } from '@utogether/utils';
30
-
31
- export const useRender = () => {
32
- const optionProps = { value: 'dictCode', label: 'dictName' };
33
- /**
34
- * @description: 字典下拉渲染
35
- * @param {*} attrs string|object string时默认未code
36
- * @param {*} methods fn|object 回调函数 fn默认为onChange
37
- */
38
- const renderDict = (attrs: IAttrs | string, methods?) => {
39
- const events = getEvents(methods);
40
- let props = {
41
- clearable: true,
42
- disabled: false,
43
- showValue: false,
44
- placeholder: null
45
- };
46
- let defaultValue;
47
- let dictCode;
48
- if (isObject(attrs)) {
49
- props = Object.assign(props, attrs);
50
- defaultValue = attrs.defaultValue;
51
- dictCode = attrs?.code;
52
- // keyValue = attrs?.keyValue;
53
- } else {
54
- dictCode = attrs;
55
- }
56
- const opts = storageLocal.getItem('kLov')[dictCode]?.children;
57
- const options = opts ? opts.filter(opt => opt.enabled === '1') : [];
58
- return {
59
- name: '#select',
60
- optionProps,
61
- options,
62
- props,
63
- defaultValue,
64
- events
65
- };
66
- };
67
- /**
68
- * @description: 远程搜索下拉选择-编辑
69
- * @param {*} attrs attrs
70
- * @return {*}
71
- */
72
- const renderSelect = (attrs, methods?) => {
73
- const events = getEvents(methods);
74
- return {
75
- name: '#SuSelect',
76
- optionProps: attrs?.optionProps || { label: 'label', value: 'value' },
77
- props: attrs?.props,
78
- options: attrs?.options || [],
79
- events
80
- };
81
- };
82
- /**
83
- * @description: 查询关联了用户的员工
84
- * @param {*} attr '渲染器属性'
85
- * @param {*} callback 回调函数
86
- * @return {*} 渲染组件
87
- */
88
- const renderUser = (attr?, callback?) => {
89
- const attrs = {
90
- optionProps: { extLabel: 'userName', value: 'employeeName' },
91
- props: {
92
- attrs: { disabled: attr?.disabled },
93
- disabled: attr?.disabled,
94
- defaultValue: attr?.defaultValue,
95
- mapField: attr?.mapField,
96
- code: 'SYS037',
97
- url: '/uums/employee/listEmployeeIsUser',
98
- fetchField: 'employeeName'
99
- }
100
- };
101
- return renderSelect(attrs, callback);
102
- };
103
- /**
104
- * @description: 系统用户下拉
105
- * @param {*} options 映射字段
106
- * @return {*}
107
- */
108
- const renderSysUser = (options?) => {
109
- const attrs = {
110
- optionProps: { extLabel: 'userName', value: 'name' },
111
- props: {
112
- code: 'sys/listUsers',
113
- url: '/uums/user',
114
- fetchField: 'name',
115
- mapField: options?.mapField
116
- }
117
- };
118
- return renderSelect(attrs);
119
- };
120
-
121
- /**
122
- * @description: 查询库存组织
123
- * @param {*} name '渲染器属性'
124
- * @param {*} callback 回调函数
125
- * @return {*} 渲染组件
126
- */
127
- const renderInvOrg = (attrs?, methods?) => {
128
- const optionProps = {
129
- label: 'organizationName',
130
- value: attrs?.field || 'organizationName'
131
- };
132
- const props = {
133
- mapField: {},
134
- defaultParams: attrs?.defaultParams,
135
- url: '/uums/cusOrganization',
136
- fetchField: 'organizationName'
137
- };
138
- const mapField = {
139
- organizationId: 'id',
140
- organizationCode: 'organizationCode'
141
- };
142
- Object.assign(props.mapField, mapField, attrs?.mapField || {});
143
- return { name: '#SuSelect', props, optionProps, options: [], methods };
144
- };
145
- /**
146
- * @description: 查询业务单元
147
- * @param {*} name '渲染器属性'
148
- * @param {*} callback 回调函数
149
- * @return {*} 渲染组件
150
- */
151
- const renderBU = (attrs?, methods?) => {
152
- const optionProps = {
153
- label: 'orgName',
154
- value: attrs?.field || 'orgName'
155
- };
156
- const props = {
157
- mapField: {},
158
- defaultParams: attrs?.defaultParams,
159
- url: '/uums/org',
160
- fetchField: 'orgName'
161
- };
162
- const mapField = { orgId: 'id', orgCode: 'orgCode' };
163
- Object.assign(props.mapField, mapField, attrs?.mapField || {});
164
- return { name: '#SuSelect', props, optionProps, options: [], methods };
165
- };
166
- /**
167
- * @description: item input渲染器
168
- * @param {*} name 渲染器名称
169
- * @param {*} props 渲染的参数(请查看目标渲染的 Props)
170
- * @return {*} item 渲染器
171
- */
172
- const renderInput = (attrs?, methods?) => {
173
- const props = Object.assign({ disabled: false }, attrs);
174
- const defaultValue = props?.defaultValue;
175
- return {
176
- name: 'VxeInput',
177
- props,
178
- defaultValue,
179
- events: getEvents(methods)
180
- };
181
- };
182
- /**
183
- * @description: item input渲染器
184
- * @param {*} name 渲染器名称
185
- * @param {*} props 渲染的参数(请查看目标渲染的 Props)
186
- * @return {*} item 渲染器
187
- */
188
- const renderTextarea = (attrs?, methods?) => {
189
- const props = Object.assign({ disabled: false, rows: 3 }, attrs);
190
- const defaultValue = props?.defaultValue;
191
- return {
192
- name: 'VxeTextarea',
193
- props,
194
- defaultValue,
195
- events: getEvents(methods)
196
- };
197
- };
198
- /**
199
- * @description: checkbox
200
- * @param {*} attrs
201
- * @return {*} checkbox渲染器
202
- */
203
- const renderCheckBox = (attrs, methods?) => {
204
- const name = 'VxeCheckbox';
205
- const { defaultValue, options, props } = commonProps(attrs);
206
- return { name, defaultValue, options, props, events: getEvents(methods) };
207
- };
208
- /**
209
- * @description: radio
210
- * @param {*} attrs
211
- * @param {*} methods 事件
212
- * @return {*} radio渲染器
213
- */
214
- const renderRadio = (attrs: string | IAttrs, methods?) => {
215
- const name = 'VxeRadio';
216
- const { defaultValue, options, props } = commonProps(attrs);
217
- return { name, defaultValue, options, props, events: getEvents(methods) };
218
- };
219
- const commonProps = (attrs: string | IAttrs) => {
220
- let props = { disabled: false };
221
- let defaultValue;
222
- const dictData = storageLocal.getItem('kLov');
223
- let code = '';
224
- if (isObject(attrs)) {
225
- defaultValue = attrs.defaultValue;
226
- code = attrs.code!;
227
- props = Object.assign(props, attrs || {});
228
- } else if (isString(attrs)) {
229
- code = attrs;
230
- }
231
- const options = code
232
- ? dictData[code]?.children.map(m => {
233
- return { label: m.dictName, value: m.dictCode };
234
- })
235
- : [];
236
- return { props, defaultValue, options };
237
- };
238
- /**
239
- * @description: 数值录入
240
- * @param {*} attrs 渲染的参数(请查看目标渲染的props)
241
- * @param {*} methods 渲染目标的events,
242
- * @return {*} editRender
243
- */
244
- const renderNumber = (attrs?, methods?) => {
245
- const events = getEvents(methods);
246
- const props = Object.assign(
247
- { type: 'number', clearable: true, min: 0, controls: false },
248
- attrs || {}
249
- );
250
-
251
- return {
252
- name: 'VxeInput',
253
- props,
254
- defaultValue: attrs?.defaultValue,
255
- events
256
- };
257
- };
258
- /**
259
- * @description: 时间日期
260
- * @param {*} attrs 渲染的参数(请查看目标渲染的props)
261
- * @param {*} methods 渲染目标的events,
262
- * @return {*} editRender
263
- */
264
- const renderDate = (attrs?, methods?) => {
265
- const events = getEvents(methods);
266
- const valueFormat = 'yyyy-MM-dd HH:mm:ss';
267
- const defaultValue = attrs?.defaultValue;
268
- const prop = { type: 'date', valueFormat, clearable: true };
269
- const props = Object.assign(prop, attrs || {});
270
- return { name: 'VxeInput', props, defaultValue, events };
271
- };
272
- /**
273
- * @description: 值集视图
274
- * @param {*} attrs 渲染的参数
275
- * @param {*} methods 渲染目标的events,
276
- * @return {*} editRender
277
- */
278
- const renderLov = (attrs, methods?) => {
279
- const events = getEvents(methods);
280
- const props = Object.assign({}, attrs || {});
281
- return { name: '#lov', props, events };
282
- };
283
- /**
284
- * @description: 本地下拉选择
285
- * @param {*} attrs 同ElSelect
286
- * @param {*} methods 事件, 默认为change事件
287
- * @return {*}
288
- */
289
- const renderSelectLocal = (attrs, methods?) => {
290
- const events = getEvents(methods);
291
- const optionProps = attrs?.optionProps || {
292
- label: 'label',
293
- value: 'value'
294
- };
295
- const props = Object.assign({ clearable: true, disabled: false, showValue: false }, attrs || {});
296
- console.log('itemRender');
297
- return {
298
- name: '#select',
299
- optionProps,
300
- options: attrs?.options || [],
301
- props,
302
- events
303
- };
304
- };
305
- /**
306
- * @description: 渲染成switch
307
- * @param {*} attrs 请查看目标渲染的props
308
- * @param {*} methods 请查看目标渲染的event
309
- * @return {*} switchRender
310
- */
311
- const renderSwitch = (attrs?: string | IAttrs, methods?) => {
312
- let props = {
313
- openLabel: '是',
314
- closeLabel: '否',
315
- openValue: 'Y',
316
- closeValue: 'N'
317
- };
318
- let defaultValue = 'Y';
319
- if (isObject(attrs) && !isFunction(attrs)) {
320
- props = Object.assign(props, attrs || {});
321
- defaultValue = attrs.defaultValue || defaultValue;
322
- } else if (!isEmpty(attrs) && isString(attrs)) {
323
- defaultValue = attrs;
324
- props = Object.assign(props, { defaultValue });
325
- }
326
- // @ts-ignore
327
- const events = isFunction(attrs) ? getEvents(attrs) : getEvents(methods);
328
- return { name: 'VxeSwitch', props, defaultValue, events };
329
- };
330
- /**
331
- * @description: 表格渲染el-tag组件
332
- * @param {*} code 数据字典code
333
- * @param {*} tagMap 渲染tag对应的type {1: 'success'}
334
- * @return {*} table cellRender
335
- */
336
- const renderCellTag = (code, tagMap) => {
337
- return { name: '#tag', props: { code, tagMap } };
338
- };
339
- /**
340
- * @description: cell渲染成el-switch
341
- * @param {*} attrs 请查看目标渲染的props
342
- * @param {*} methods 请查看目标渲染的event
343
- * @return {*} cellRender
344
- */
345
- const renderEnabled = (options?, methods?) => {
346
- const props: IAttrs = {
347
- openLabel: '启用',
348
- closeLabel: '禁用',
349
- openValue: '1',
350
- closeValue: '0',
351
- defaultValue: '1'
352
- };
353
- if (!isFunction(options) && isObject(options)) {
354
- Object.assign(props, options);
355
- }
356
- const fun = isFunction(options) ? options : methods;
357
- return renderSwitch(props, fun);
358
- // return { name: "#switch", props, events };
359
- };
360
- /**
361
- * icon选择器
362
- * @returns render 函数
363
- */
364
- const renderIconSelect = () => {
365
- return { name: '#iconSelect' };
366
- };
367
- /**
368
- * 树形选择器
369
- * @param sourceData 展示数据
370
- * @param props 请查看element plus的TreeSelect渲染的props
371
- * @param events 事件
372
- * @returns render 函数
373
- */
374
- const renderTreeSelect = (sourceData: IRecord[] = [], props = {}, events?) => {
375
- return { name: '#treeSelect', sourceData, props, events };
376
- };
377
-
378
- const getEvents = (methods: IEvents | Fn) => {
379
- let events: any = {};
380
- if (isObject(methods) && !isFunction(methods)) {
381
- events = {
382
- change: methods?.change || cb,
383
- blur: methods?.blur || cb,
384
- focus: methods?.focus || cb,
385
- input: methods?.input || cb,
386
- clear: methods?.clear || cb,
387
- filterMethod: methods?.filterMethod
388
- };
389
- } else if (methods) {
390
- events = { change: methods };
391
- }
392
- return events;
393
- };
394
-
395
- function cb() {}
396
- // 回调函数
397
- // const callback = (e) => cb && cb(e);
398
-
399
- return {
400
- renderDict,
401
- renderSelect,
402
- renderInput,
403
- renderTextarea,
404
- renderCheckBox,
405
- renderRadio,
406
- renderUser,
407
- renderSysUser,
408
- renderInvOrg,
409
- renderBU,
410
- renderNumber,
411
- renderLov,
412
- renderSelectLocal,
413
- renderDate,
414
- renderSwitch,
415
- renderCellTag,
416
- renderEnabled,
417
- renderIconSelect,
418
- renderTreeSelect
419
- };
420
- };
@@ -1,74 +0,0 @@
1
- <template>
2
- <div>
3
- <h1>基本使用</h1>
4
- <div v-contextmenu:contextmenu class="wrapper">
5
- <code>右键点击此区域</code>
6
- </div>
7
-
8
- <v-contextmenu ref="contextmenu">
9
- <v-contextmenu-item>GitHub</v-contextmenu-item>
10
- <v-contextmenu-item>GitLab</v-contextmenu-item>
11
-
12
- <v-contextmenu-divider />
13
-
14
- <v-contextmenu-submenu title="蔬菜菜">
15
- <v-contextmenu-item>土豆</v-contextmenu-item>
16
-
17
- <v-contextmenu-submenu title="青菜">
18
- <v-contextmenu-item>小油菜</v-contextmenu-item>
19
- <v-contextmenu-item>空心菜</v-contextmenu-item>
20
- </v-contextmenu-submenu>
21
-
22
- <v-contextmenu-item>黄瓜</v-contextmenu-item>
23
- </v-contextmenu-submenu>
24
-
25
- <v-contextmenu-item disabled>菠萝蜜</v-contextmenu-item>
26
-
27
- <v-contextmenu-divider />
28
-
29
- <v-contextmenu-item>哈密瓜</v-contextmenu-item>
30
- </v-contextmenu>
31
- </div>
32
- </template>
33
-
34
- <script lang="ts">
35
- import { defineComponent } from 'vue';
36
-
37
- import {
38
- directive,
39
- Contextmenu,
40
- ContextmenuItem,
41
- ContextmenuDivider,
42
- ContextmenuSubmenu,
43
- ContextmenuGroup
44
- } from 'v-contextmenu';
45
-
46
- export default defineComponent({
47
- name: 'ExampleSimple',
48
-
49
- components: {
50
- [Contextmenu.name]: Contextmenu,
51
- [ContextmenuItem.name]: ContextmenuItem,
52
- [ContextmenuDivider.name]: ContextmenuDivider,
53
- [ContextmenuSubmenu.name]: ContextmenuSubmenu,
54
- [ContextmenuGroup.name]: ContextmenuGroup
55
- },
56
-
57
- directives: {
58
- contextmenu: directive
59
- }
60
- });
61
- </script>
62
-
63
- <style scoped>
64
- .wrapper {
65
- display: flex;
66
- align-items: center;
67
- justify-content: center;
68
- width: 300px;
69
- height: 200px;
70
- background-color: rgb(90 167 164 / 20%);
71
- border: 3px dashed rgb(90 167 164 / 90%);
72
- border-radius: 8px;
73
- }
74
- </style>
@@ -1,40 +0,0 @@
1
- <!--
2
- * @Author: wei.li
3
- * @Date: 2022-10-17 11:26:28
4
- * @LastEditors: wei.li
5
- * @LastEditTime: 2022-11-30 07:58:05
6
- * @Description: file content
7
- -->
8
- <script setup lang="ts">
9
- import basic from './basic.vue';
10
- import menuGroup from './menuGroup.vue';
11
- import menuDynamic from './menuDynamic.vue';
12
- import 'v-contextmenu/dist/themes/default.css';
13
- defineOptions({
14
- name: 'ContextMenu'
15
- });
16
- </script>
17
-
18
- <template>
19
- <el-card>
20
- <template #header>
21
- <div class="card-header">
22
- <span class="font-medium">右键菜单组件</span>
23
- </div>
24
- </template>
25
- <el-row :gutter="24">
26
- <el-col :xs="24" :sm="10" :md="10" :lg="8" :xl="10">
27
- <!-- 基本使用 -->
28
- <basic />
29
- </el-col>
30
- <el-col :xs="24" :sm="10" :md="10" :lg="8" :xl="10">
31
- <!-- 按钮组 -->
32
- <menuGroup />
33
- </el-col>
34
- <el-col :xs="24" :sm="10" :md="10" :lg="8" :xl="10">
35
- <!-- 动态菜单 -->
36
- <menuDynamic />
37
- </el-col>
38
- </el-row>
39
- </el-card>
40
- </template>
@@ -1,99 +0,0 @@
1
- <template>
2
- <div>
3
- <h1>动态菜单</h1>
4
- <div v-contextmenu:contextmenu class="wrapper">
5
- <code>右键点击此区域</code>
6
- </div>
7
-
8
- <v-contextmenu ref="contextmenu">
9
- <v-contextmenu-group title="操作">
10
- <v-contextmenu-item :hide-on-click="false" @click="extra.push('item')"
11
- >添加菜单</v-contextmenu-item
12
- >
13
- <v-contextmenu-item :hide-on-click="false" @click="extra.push('group')"
14
- >添加菜单组</v-contextmenu-item
15
- >
16
- <v-contextmenu-item :hide-on-click="false" @click="extra.push('submenu')"
17
- >添加子菜单</v-contextmenu-item
18
- >
19
- <v-contextmenu-item :hide-on-click="false" @click="extra.pop()">删除</v-contextmenu-item>
20
- </v-contextmenu-group>
21
-
22
- <template v-for="(item, index) of extra" :key="index">
23
- <v-contextmenu-divider />
24
-
25
- <v-contextmenu-group v-if="item === 'group'" :title="`菜单组 ${index + 1}`">
26
- <v-contextmenu-item>菜单1</v-contextmenu-item>
27
- <v-contextmenu-item>菜单2</v-contextmenu-item>
28
- <v-contextmenu-item>菜单3</v-contextmenu-item>
29
- </v-contextmenu-group>
30
-
31
- <v-contextmenu-submenu v-else-if="item === 'submenu'" :title="`子菜单 ${index + 1}`">
32
- <v-contextmenu-item>菜单1</v-contextmenu-item>
33
- <v-contextmenu-item>菜单2</v-contextmenu-item>
34
- <v-contextmenu-item>菜单3</v-contextmenu-item>
35
- </v-contextmenu-submenu>
36
-
37
- <v-contextmenu-item v-else>菜单 {{ index + 1 }}</v-contextmenu-item>
38
- </template>
39
- </v-contextmenu>
40
- </div>
41
- </template>
42
-
43
- <script lang="ts">
44
- import { defineComponent } from 'vue';
45
-
46
- import {
47
- directive,
48
- Contextmenu,
49
- ContextmenuItem,
50
- ContextmenuDivider,
51
- ContextmenuSubmenu,
52
- ContextmenuGroup
53
- } from 'v-contextmenu';
54
-
55
- export default defineComponent({
56
- name: 'ExampleDynamic',
57
-
58
- components: {
59
- [Contextmenu.name]: Contextmenu,
60
- [ContextmenuItem.name]: ContextmenuItem,
61
- [ContextmenuDivider.name]: ContextmenuDivider,
62
- [ContextmenuSubmenu.name]: ContextmenuSubmenu,
63
- [ContextmenuGroup.name]: ContextmenuGroup
64
- },
65
-
66
- directives: {
67
- contextmenu: directive
68
- },
69
-
70
- data() {
71
- return {
72
- extra: []
73
- };
74
- },
75
-
76
- methods: {
77
- addItem(type = 'item') {
78
- this.extra.push(type);
79
- },
80
- removeItem() {
81
- this.extra.pop();
82
- }
83
- }
84
- });
85
- </script>
86
-
87
- <style scoped>
88
- .wrapper {
89
- display: flex;
90
- align-items: center;
91
- justify-content: center;
92
- width: 300px;
93
- height: 200px;
94
- margin-bottom: 30px;
95
- background-color: rgb(90 167 164 / 20%);
96
- border: 3px dashed rgb(90 167 164 / 90%);
97
- border-radius: 8px;
98
- }
99
- </style>
@@ -1,71 +0,0 @@
1
- <template>
2
- <div>
3
- <h1>按钮组</h1>
4
- <div v-contextmenu:contextmenu class="wrapper">
5
- <code>右键点击此区域</code>
6
- </div>
7
-
8
- <v-contextmenu ref="contextmenu">
9
- <v-contextmenu-item>菜单</v-contextmenu-item>
10
-
11
- <v-contextmenu-group>
12
- <v-contextmenu-item>Github</v-contextmenu-item>
13
- <v-contextmenu-item>Codepen</v-contextmenu-item>
14
- <v-contextmenu-item disabled>Alipay</v-contextmenu-item>
15
- <v-contextmenu-item>Wechat</v-contextmenu-item>
16
- </v-contextmenu-group>
17
-
18
- <v-contextmenu-divider />
19
-
20
- <v-contextmenu-group title="按钮组">
21
- <v-contextmenu-item>菜单1</v-contextmenu-item>
22
- <v-contextmenu-item>菜单2</v-contextmenu-item>
23
- <v-contextmenu-item disabled>菜单3</v-contextmenu-item>
24
- </v-contextmenu-group>
25
- </v-contextmenu>
26
- </div>
27
- </template>
28
-
29
- <script lang="ts">
30
- import { defineComponent } from 'vue';
31
-
32
- import {
33
- directive,
34
- Contextmenu,
35
- ContextmenuItem,
36
- ContextmenuDivider,
37
- ContextmenuSubmenu,
38
- ContextmenuGroup
39
- } from 'v-contextmenu';
40
-
41
- const ExampleSFC = defineComponent({
42
- name: 'ExampleSFC',
43
-
44
- components: {
45
- [Contextmenu.name]: Contextmenu,
46
- [ContextmenuItem.name]: ContextmenuItem,
47
- [ContextmenuDivider.name]: ContextmenuDivider,
48
- [ContextmenuSubmenu.name]: ContextmenuSubmenu,
49
- [ContextmenuGroup.name]: ContextmenuGroup
50
- },
51
-
52
- directives: {
53
- contextmenu: directive
54
- }
55
- });
56
-
57
- export default ExampleSFC;
58
- </script>
59
-
60
- <style scoped>
61
- .wrapper {
62
- display: flex;
63
- align-items: center;
64
- justify-content: center;
65
- width: 300px;
66
- height: 200px;
67
- background-color: rgb(90 167 164 / 20%);
68
- border: 3px dashed rgb(90 167 164 / 90%);
69
- border-radius: 8px;
70
- }
71
- </style>