@utogether/udp-core 1.0.1-beta.13 → 1.0.1-beta.15

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 (75) hide show
  1. package/dist/{403-CYdgejwn.js → 403-DpJevH-h.js} +1 -1
  2. package/dist/{404-CblgDc5z.js → 404-BpqJK3YD.js} +1 -1
  3. package/dist/{500-BZ6wCwWc.js → 500-DyvRbMD_.js} +1 -1
  4. package/dist/{AuthorityInfo-C7ssheq6.js → AuthorityInfo-Cyu4XHXx.js} +1 -1
  5. package/dist/{AuthorityInfo.vue_vue_type_style_index_0_lang-DiFYQyk8.js → AuthorityInfo.vue_vue_type_style_index_0_lang-BxmnEEFq.js} +1 -1
  6. package/dist/{Company-ECS1Fe1S.js → Company-BLygcYrI.js} +3 -3
  7. package/dist/{CompanyPanel-Bka7k-uP.js → CompanyPanel-D5Tgw6LF.js} +1 -1
  8. package/dist/{Department-DGKkYUdS.js → Department-qI9OninZ.js} +3 -3
  9. package/dist/{DepartmentPanel-C17CZmjl.js → DepartmentPanel-P-P8fPZQ.js} +1 -1
  10. package/dist/{DesignPanel-BWvmkPpc.js → DesignPanel-BxjD0AZi.js} +1 -1
  11. package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-CIrAgdYO.js → DesignPanel.vue_vue_type_style_index_0_lang-DN_OKxCu.js} +2 -2
  12. package/dist/{DictView-B969z8wA.js → DictView-PWL_Vf0T.js} +1 -1
  13. package/dist/{InvOrganization-6bVuN-NP.js → InvOrganization-JXBXyn3G.js} +1 -1
  14. package/dist/{Org-kNkuyf89.js → Org-DcTJn6YQ.js} +1 -1
  15. package/dist/{Preview-CNn9UAsy.js → Preview-IKvbHI8a.js} +2 -2
  16. package/dist/{ReportDefine-Cjv4aRVy.js → ReportDefine-_G7ts7Ch.js} +1 -1
  17. package/dist/{ReportDesign-BrCobVSd.js → ReportDesign-7h5oFklh.js} +3 -3
  18. package/dist/{ReportQuery-Gr87UX2I.js → ReportQuery-dj0BQUyi.js} +1 -1
  19. package/dist/{ReportQueryFrom-CX6cb9GY.js → ReportQueryFrom-6WaZPg9i.js} +1 -1
  20. package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-Dz3ZapUS.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-ChhcBPqa.js} +1 -1
  21. package/dist/{ReportTemplate-BDRw8aY4.js → ReportTemplate-DIvJ3RrB.js} +1 -1
  22. package/dist/{Role-B2uHACAG.js → Role-ia_3qAZU.js} +3 -3
  23. package/dist/{RoleAssign-Cpwz3ZND.js → RoleAssign-D0zVl4y3.js} +3 -3
  24. package/dist/{RolePanel-CHlQBMqq.js → RolePanel-BiGGmP2w.js} +1 -1
  25. package/dist/{RolePanel-0G7e5LC8.js → RolePanel-CQxOiAzj.js} +1 -1
  26. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-Cuyr3Z0F.js → RolePanel.vue_vue_type_script_setup_true_lang-BYDLRS_x.js} +1 -1
  27. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-C_vBaRyr.js → RolePanel.vue_vue_type_script_setup_true_lang-Dwv5LFbf.js} +3 -3
  28. package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-B_W_v3j5.js → ScrollPanel.vue_vue_type_style_index_0_lang-gPP4duO8.js} +1 -1
  29. package/dist/{Staff-BALciFZu.js → Staff-Bf_oUqF6.js} +3 -3
  30. package/dist/{StaffInfo-BNzGN-gJ.js → StaffInfo-D5aisjx2.js} +1 -1
  31. package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-BSYVizqX.js → StaffInfo.vue_vue_type_script_setup_true_lang-6PX7Bx6A.js} +1 -1
  32. package/dist/{StaffPanel-xWUgRJqR.js → StaffPanel--zKzd4rt.js} +1 -1
  33. package/dist/{StaffPanel.vue_vue_type_script_setup_true_lang-duZSwgoN.js → StaffPanel.vue_vue_type_script_setup_true_lang-BWZSIFpq.js} +2 -2
  34. package/dist/{SysUser-q114FdeD.js → SysUser-BelbESLR.js} +2 -2
  35. package/dist/{SysUserPanel-CognKMl5.js → SysUserPanel-BixKqQcA.js} +1 -1
  36. package/dist/{SysUserPanel.vue_vue_type_script_setup_true_lang-CMbUdk6A.js → SysUserPanel.vue_vue_type_script_setup_true_lang-BhaWZEfo.js} +1 -1
  37. package/dist/{SystemMenu-DVGGSkBO.js → SystemMenu-D40tzcSj.js} +2 -2
  38. package/dist/{UserInfo-Dug8S6IS.js → UserInfo-DTyk071j.js} +1 -1
  39. package/dist/{UserInfo.vue_vue_type_style_index_0_lang-GUvWUfH6.js → UserInfo.vue_vue_type_style_index_0_lang-p9MByikC.js} +1 -1
  40. package/dist/{childView-DC4St5Yu.js → childView-so5qSxr0.js} +1 -1
  41. package/dist/{childView-DgwW1_pS.js → childView-xL3iE1yN.js} +1 -1
  42. package/dist/{childView.vue_vue_type_style_index_0_lang-CHB4aljD.js → childView.vue_vue_type_style_index_0_lang-CKcXpSqa.js} +1 -1
  43. package/dist/{childView.vue_vue_type_style_index_0_lang-C6ns1H7X.js → childView.vue_vue_type_style_index_0_lang-DK1ei5uM.js} +1 -1
  44. package/dist/{code-rule-DrnZAXq6.js → code-rule-DC35y76w.js} +1 -1
  45. package/dist/core.es.js +1 -1
  46. package/dist/{cron-task-8TSn9qgc.js → cron-task-BhjQ4S68.js} +1 -1
  47. package/dist/{frameView-DsJ7Niwn.js → frameView-G_zhG9pf.js} +1 -1
  48. package/dist/{index-ChmJT--N.js → index-C6ehxLLO.js} +52 -49
  49. package/dist/{layoutView-JchyMwjZ.js → layoutView-CO2U8qCQ.js} +2 -2
  50. package/dist/{log-out--RRncZhN.js → log-out-D1b4VRMZ.js} +30 -24
  51. package/dist/{login-BXkivLFZ.js → login-DzyK2soP.js} +146 -121
  52. package/dist/{lov-view-Ck-gMZAO.js → lov-view-Cr929NMD.js} +2 -2
  53. package/dist/{menuInfo-u432VWl_.js → menuInfo-BWuROp7u.js} +1 -1
  54. package/dist/{menuInfo.vue_vue_type_style_index_0_lang-JMkwMJ9n.js → menuInfo.vue_vue_type_style_index_0_lang-9nouHUjO.js} +1 -1
  55. package/dist/{pda-app-BeqyF-LQ.js → pda-app-CQP1sMAI.js} +3 -3
  56. package/dist/{resource-DkNbG8D8.js → resource-BDQLrMpK.js} +1 -1
  57. package/dist/{su-welcome-DEVHyaQ4.js → su-welcome-CZysrZQ1.js} +1 -1
  58. package/dist/sys-config-BiGNMYSA.js +355 -0
  59. package/dist/udp-core.css +2 -2
  60. package/dist/{utogether-N0mpFm7j.js → utogether-BRirriOz.js} +1 -1
  61. package/package.json +18 -18
  62. package/src/components/udp/form.vue +2 -2
  63. package/src/components/udp/utils.ts +11 -7
  64. package/src/main.ts +113 -113
  65. package/src/plugins/i18n/zh.ts +6 -1
  66. package/src/store/modules/system.ts +1 -3
  67. package/src/style/vxetable.scss +19 -0
  68. package/src/views/system/sys/sys-config.vue +50 -1
  69. package/src/views/uapp/pda/pda-app.vue +1 -1
  70. package/src/views/udev/dict/DictView.vue +1 -1
  71. package/src/views/ulogin/login.vue +6 -4
  72. package/src/views/upms/interface/log-out.vue +101 -107
  73. package/src/views/urpt/design/Preview.vue +1 -0
  74. package/src/views/urpt/design/ReportDesign.vue +2 -4
  75. package/dist/sys-config-8MIo11zU.js +0 -290
@@ -1,6 +1,6 @@
1
1
  import { computed as W, ref as L } from "vue";
2
2
  import { useGlobal as g, storageLocal as u, deviceDetection as H, cookies as C, storageSession as M } from "@utogether/utils";
3
- import { y as P, j as E, s as j, g as h, v as d, z as J, l as K, m as R, n as V, u as S, r as G, o as O, A as x, B as Z } from "./index-ChmJT--N.js";
3
+ import { y as P, j as E, s as j, g as h, v as d, z as J, l as K, m as R, n as V, u as S, r as G, o as O, A as x, B as Z } from "./index-C6ehxLLO.js";
4
4
  import { useI18n as f } from "vue-i18n";
5
5
  import { defineStore as v } from "pinia";
6
6
  function I() {
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
- {
2
- "name": "@utogether/udp-core",
3
- "private": false,
4
- "version": "1.0.1-beta.13",
5
- "description": "",
6
- "type": "module",
7
- "main1": "index.ts",
8
- "main": "dist/core.es.js",
9
- "scripts": {
10
- "dev": "vite",
11
- "build": "vite build",
12
- "preview:build": "pnpm build && vite preview",
13
- "report": "rimraf dist && vite build"
14
- },
15
- "keywords": [],
16
- "author": "",
17
- "license": "ISC"
18
- }
1
+ {
2
+ "name": "@utogether/udp-core",
3
+ "private": false,
4
+ "version": "1.0.1-beta.15",
5
+ "description": "",
6
+ "type": "module",
7
+ "main1": "index.ts",
8
+ "main": "dist/core.es.js",
9
+ "scripts": {
10
+ "dev": "vite",
11
+ "build": "vite build",
12
+ "preview:build": "pnpm build && vite preview",
13
+ "report": "rimraf dist && vite build"
14
+ },
15
+ "keywords": [],
16
+ "author": "",
17
+ "license": "ISC"
18
+ }
@@ -2,7 +2,7 @@
2
2
  * @Author: wei.li
3
3
  * @Date: 2022-03-02 17:07:59
4
4
  * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-08-19 10:19:16
5
+ * @LastEditTime: 2025-09-10 15:35:12
6
6
  * @Description: SuForm
7
7
  -->
8
8
 
@@ -84,7 +84,7 @@ const rules = computed(() => {
84
84
 
85
85
  const formItems = computed(() => {
86
86
  if (!props.items.length) return props.items;
87
- return formatItems(clone(props.items, true), 'edit', 6);
87
+ return formatItems(clone(props.items, true), 'edit', t, 6);
88
88
  });
89
89
 
90
90
  const onChange = () => {
@@ -2,7 +2,7 @@
2
2
  * @Author: levi7754 levi7754@163.com
3
3
  * @Date: 2025-07-14 17:38:38
4
4
  * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-08-21 10:57:00
5
+ * @LastEditTime: 2025-09-10 15:38:34
6
6
  * @FilePath: \udp-front\packages\udp-core\src\components\udp\utils.ts
7
7
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8
8
  */
@@ -261,7 +261,7 @@ export const getToolBarConfig = (data, props, attrs, hasAuthority) => {
261
261
  // reverse的原因是: 保持现有按钮顺序, 新增,保存,删除
262
262
  toolButtons.reverse().forEach(btn => {
263
263
  !buttons.some(s => s.code === btn.code) && buttons.unshift(btn);
264
- if (attrs.authPrefix && !['print', 'export'].includes(btn.auth)) {
264
+ if (attrs.authPrefix && !['printer', 'export'].includes(btn.auth)) {
265
265
  btn.auth = attrs.authPrefix + btn.auth.slice(0, 1).toLocaleUpperCase() + btn.auth.slice(1).toLocaleLowerCase();
266
266
  }
267
267
  });
@@ -381,11 +381,11 @@ export const getAttrs = attrs => {
381
381
  return data;
382
382
  };
383
383
 
384
- export const formatItems = (items, status, span = 24) => {
384
+ export const formatItems = (items, status, t, span = 24) => {
385
385
  if (!items.length) return items;
386
386
  return items.map(item => {
387
387
  if (item.children?.length) {
388
- item.children = formatItems(item.children, status, span);
388
+ item.children = formatItems(item.children, status, t, span);
389
389
  return item;
390
390
  } else {
391
391
  item.title = item.title || `message.${item.field}`;
@@ -396,23 +396,27 @@ export const formatItems = (items, status, span = 24) => {
396
396
  item.titleWidth = 0;
397
397
  }
398
398
  let disabled = false;
399
+ let placeholder = t(`message.udp.placeholder`) + t(item.title);
399
400
  if (status === 'detail') {
400
401
  disabled = true;
401
- item.placeholder = null;
402
+ placeholder = '';
402
403
  } else {
403
404
  disabled = item.disabled === false ? item.disabled : item.disabled || item.itemRender?.props?.disabled;
404
405
  }
405
406
  let itemRender = {
406
407
  name: 'VxeInput',
407
- props: { disabled, placeholder: disabled ? '' : item.placeholder }
408
+ props: { disabled, placeholder: disabled ? '' : placeholder }
408
409
  };
409
410
  if (item.code && !item.itemRender) {
410
411
  itemRender = renderHook.renderDict(item.code);
411
412
  }
412
413
  item.itemRender = item.itemRender || itemRender;
414
+
413
415
  item.itemRender['props'] = Object.assign(item.itemRender.props || {}, {
414
- disabled
416
+ disabled,
417
+ placeholder: disabled ? '' : placeholder
415
418
  });
419
+ console.log('--------------', { item });
416
420
  return item;
417
421
  }
418
422
  });
package/src/main.ts CHANGED
@@ -1,113 +1,113 @@
1
- /*
2
- * @Author: levi7754 levi7754@163.com
3
- * @Date: 2025-07-25 13:38:20
4
- * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-09-05 13:48:25
6
- * @FilePath: \udp-front\packages\udp-core\src\main.ts
7
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8
- */
9
- import { createApp, type Directive } from 'vue';
10
- import App from './App.vue';
11
- // import router from './router';
12
- import { setViews } from './router';
13
- import { setupStore } from './store';
14
- import { setConfig, setSystemEnv } from './config';
15
- import { useI18n } from '../src/plugins/i18n';
16
- import { setTableConfig } from '../src/plugins/vxe-table';
17
- import { injectResponsiveStorage } from './utils/storage';
18
- import hasAuthority from './utils/authority';
19
- import { getServiceApi, getBaseURL, setRouter, setBaseUrl } from './api';
20
-
21
- import 'nprogress/nprogress.css';
22
- // 一定要在main.ts中导入tailwind.css,防止vite每次hmr都会请求src/style/index.scss整体css文件导致热更新慢的问题
23
- import './style/tailwind.css';
24
- // // 引入重置样式
25
- import './style/reset.scss';
26
- // 导入公共样式
27
- import './style/index.scss';
28
-
29
- import 'viewerjs/dist/viewer.css';
30
-
31
- import VueViewer from 'v-viewer';
32
-
33
- // import SuTable from './components/SuTable/SuTable.vue';
34
-
35
- // import {
36
- // UtButton,
37
- // utLov2,
38
- // UGrid,
39
- // UtDivider,
40
- // UtModalForm2
41
- // FormUpload2,
42
- // UtForm2
43
- // UtGrid2
44
- // UtContent,
45
- // UtModalGrid2
46
- // UtUpload2
47
- // UtIconSelect,
48
- // UtCalendar
49
- // uAttachment
50
- // } from './components/udp';
51
-
52
- const app = createApp(App);
53
-
54
- // 全局注册`@iconify/vue`图标库
55
- import { IconifyIconOffline, FontIcon } from './components/ReIcon';
56
- // 全局注册`vue-tippy`
57
- import 'tippy.js/dist/tippy.css';
58
- import 'tippy.js/animations/perspective.css';
59
- import VueTippy from 'vue-tippy';
60
-
61
- app.use(VueTippy, {
62
- defaultProps: { animation: 'perspective' }
63
- });
64
-
65
- // 自定义指令
66
- import * as directives from './directives';
67
-
68
- const setGlobal = app => {
69
- app.config.globalProperties.$hasAuthority = hasAuthority;
70
- app.config.globalProperties.$serviceApi = getServiceApi();
71
- app.config.globalProperties.$url = getBaseURL();
72
- };
73
-
74
- const setGlobalDirective = app => {
75
- Object.keys(directives).forEach(key => {
76
- app.directive(key, (directives as { [key: string]: Directive })[key]);
77
- });
78
- };
79
-
80
- const init = ({ router, config, lang, views, env, tableConfig }) => {
81
- setViews(views, router);
82
- app.use(router);
83
- setRouter(router);
84
- setConfig(app, config);
85
- setSystemEnv(env);
86
- setTableConfig(tableConfig);
87
- return new Promise(resolve => {
88
- useI18n(app, lang);
89
- app.component('IconifyIconOffline', IconifyIconOffline);
90
- app.component('FontIcon', FontIcon);
91
- // app.component('uAttachment', uAttachment).component('UGrid', UGrid);
92
- // .component('UtDivider', UtDivider)
93
- // app.component('UtModalForm2', UtModalForm2);
94
- // app.component('UtGrid2', UtGrid2);
95
- // app.component('UtForm2', UtForm2);
96
- // app.component('UtModalGrid2', UtModalGrid2);
97
- // .component('UtIconSelect', UtIconSelect)
98
- // app.component('FormUpload2', FormUpload2);
99
- // .component('UtCalendar', UtCalendar)
100
- // .component('UtModalGrid', UtModalGrid);
101
- app.use(VueViewer, { defaultOptions: { zIndex: 9999 } });
102
- setGlobal(app);
103
- setBaseUrl(getBaseURL());
104
- setGlobalDirective(app);
105
- // 全局组件
106
- setupStore(app);
107
- injectResponsiveStorage(app, config);
108
- const result = { app, router };
109
- resolve(result);
110
- });
111
- };
112
-
113
- export default init;
1
+ /*
2
+ * @Author: levi7754 levi7754@163.com
3
+ * @Date: 2025-07-25 13:38:20
4
+ * @LastEditors: levi7754 levi7754@163.com
5
+ * @LastEditTime: 2025-09-05 13:48:25
6
+ * @FilePath: \udp-front\packages\udp-core\src\main.ts
7
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
8
+ */
9
+ import { createApp, type Directive } from 'vue';
10
+ import App from './App.vue';
11
+ // import router from './router';
12
+ import { setViews } from './router';
13
+ import { setupStore } from './store';
14
+ import { setConfig, setSystemEnv } from './config';
15
+ import { useI18n } from '../src/plugins/i18n';
16
+ import { setTableConfig } from '../src/plugins/vxe-table';
17
+ import { injectResponsiveStorage } from './utils/storage';
18
+ import hasAuthority from './utils/authority';
19
+ import { getServiceApi, getBaseURL, setRouter, setBaseUrl } from './api';
20
+
21
+ import 'nprogress/nprogress.css';
22
+ // 一定要在main.ts中导入tailwind.css,防止vite每次hmr都会请求src/style/index.scss整体css文件导致热更新慢的问题
23
+ import './style/tailwind.css';
24
+ // // 引入重置样式
25
+ import './style/reset.scss';
26
+ // 导入公共样式
27
+ import './style/index.scss';
28
+
29
+ import 'viewerjs/dist/viewer.css';
30
+
31
+ import VueViewer from 'v-viewer';
32
+
33
+ // import SuTable from './components/SuTable/SuTable.vue';
34
+
35
+ // import {
36
+ // UtButton,
37
+ // utLov2,
38
+ // UGrid,
39
+ // UtDivider,
40
+ // UtModalForm2
41
+ // FormUpload2,
42
+ // UtForm2
43
+ // UtGrid2
44
+ // UtContent,
45
+ // UtModalGrid2
46
+ // UtUpload2
47
+ // UtIconSelect,
48
+ // UtCalendar
49
+ // uAttachment
50
+ // } from './components/udp';
51
+
52
+ const app = createApp(App);
53
+
54
+ // 全局注册`@iconify/vue`图标库
55
+ import { IconifyIconOffline, FontIcon } from './components/ReIcon';
56
+ // 全局注册`vue-tippy`
57
+ import 'tippy.js/dist/tippy.css';
58
+ import 'tippy.js/animations/perspective.css';
59
+ import VueTippy from 'vue-tippy';
60
+
61
+ app.use(VueTippy, {
62
+ defaultProps: { animation: 'perspective' }
63
+ });
64
+
65
+ // 自定义指令
66
+ import * as directives from './directives';
67
+
68
+ const setGlobal = app => {
69
+ app.config.globalProperties.$hasAuthority = hasAuthority;
70
+ app.config.globalProperties.$serviceApi = getServiceApi();
71
+ app.config.globalProperties.$url = getBaseURL();
72
+ };
73
+
74
+ const setGlobalDirective = app => {
75
+ Object.keys(directives).forEach(key => {
76
+ app.directive(key, (directives as { [key: string]: Directive })[key]);
77
+ });
78
+ };
79
+
80
+ const init = ({ router, config, lang, views, env, tableConfig }) => {
81
+ setViews(views, router);
82
+ app.use(router);
83
+ setRouter(router);
84
+ setConfig(app, config);
85
+ setSystemEnv(env);
86
+ setTableConfig(tableConfig);
87
+ return new Promise(resolve => {
88
+ useI18n(app, lang);
89
+ app.component('IconifyIconOffline', IconifyIconOffline);
90
+ app.component('FontIcon', FontIcon);
91
+ // app.component('uAttachment', uAttachment).component('UGrid', UGrid);
92
+ // .component('UtDivider', UtDivider)
93
+ // app.component('UtModalForm2', UtModalForm2);
94
+ // app.component('UtGrid2', UtGrid2);
95
+ // app.component('UtForm2', UtForm2);
96
+ // app.component('UtModalGrid2', UtModalGrid2);
97
+ // .component('UtIconSelect', UtIconSelect)
98
+ // app.component('FormUpload2', FormUpload2);
99
+ // .component('UtCalendar', UtCalendar)
100
+ // .component('UtModalGrid', UtModalGrid);
101
+ app.use(VueViewer, { defaultOptions: { zIndex: 9999 } });
102
+ setGlobal(app);
103
+ setBaseUrl(getBaseURL());
104
+ setGlobalDirective(app);
105
+ // 全局组件
106
+ setupStore(app);
107
+ injectResponsiveStorage(app, config);
108
+ const result = { app, router };
109
+ resolve(result);
110
+ });
111
+ };
112
+
113
+ export default init;
@@ -43,6 +43,8 @@ export default {
43
43
  copyright: '版权信息',
44
44
  i18nEnabled: '国际化',
45
45
  orgTaggle: '启用组织切换',
46
+ baseColor: '基准色',
47
+ techSupport: '技术支持',
46
48
  defaultLanguage: '默认语言',
47
49
  roleName: '角色名称',
48
50
  roleCode: '角色编码',
@@ -89,6 +91,7 @@ export default {
89
91
  downloadUrl: 'APK文件',
90
92
  forceUpdate: '强制更新',
91
93
  freeUpdate: '自主更新',
94
+ placeholder: '请录入',
92
95
 
93
96
  userName: '用户姓名',
94
97
  userCode: '用户编码',
@@ -103,7 +106,9 @@ export default {
103
106
  orgDesc: '业务实体描述',
104
107
 
105
108
  organizationName: '组织名称',
106
- organizationCode: '组织编码'
109
+ organizationCode: '组织编码',
110
+ appupper: '已上架',
111
+ applower: '已下架'
107
112
  },
108
113
  btn: {
109
114
  passwordReset: '密码重置',
@@ -166,9 +166,7 @@ export const useSystemStore = defineStore('udp-system', {
166
166
  organizationId: systemInfo.organizationId
167
167
  };
168
168
  cookies.set('kCookies_param', JSON.stringify(query));
169
- this.isAdminRole = this.employee.sysRoles.some(
170
- s => s.roleCode === 'admin' || ['管理员'].includes(s.roleName)
171
- );
169
+ this.isAdminRole = this.employee.sysRoles.some(s => s.roleCode === 'admin' || ['管理员'].includes(s.roleName));
172
170
  // 缓存按钮数据权限
173
171
  usePermissionStoreHook().setAuthButton(systemInfo.dataMenus);
174
172
  }
@@ -33,31 +33,50 @@ html[data-vxe-ui-theme='light'] {
33
33
 
34
34
  /** 必填录入框颜色 */
35
35
  .vxe-form--item.is--required {
36
+ // 输入框必填
36
37
  .vxe-input > .vxe-input--wrapper > .vxe-input--inner:not(:disabled) {
37
38
  background-color: #fffbdf;
38
39
  }
39
40
 
41
+ // 数字框框必填
40
42
  .vxe-input:not(.is--disabled) > .vxe-input--wrapper {
41
43
  .vxe-input--control-icon {
42
44
  background-color: #fffbdf;
43
45
  }
44
46
  }
45
47
 
48
+ // 输入框必填
46
49
  .vxe-input--suffix {
47
50
  background-color: #fffbdf;
48
51
  }
49
52
 
53
+ // 下拉选择必填
50
54
  .el-select__wrapper:not(.is-disabled) {
51
55
  background-color: #fffbdf;
52
56
  }
53
57
 
58
+ // 输入框必填
54
59
  .el-input:not(.is-disabled) > .el-input__wrapper {
55
60
  background-color: #fffbdf;
56
61
  }
57
62
 
63
+ // 文本域必填
58
64
  .vxe-textarea:not(.is--disabled) > .vxe-textarea--inner {
59
65
  background-color: #fffbdf;
60
66
  }
67
+
68
+ // 日期必填
69
+ .vxe-date-picker {
70
+ .vxe-date-picker--inner,
71
+ .vxe-input--suffix {
72
+ background-color: #fffbdf;
73
+ }
74
+
75
+ .vxe-date-picker--prefix,
76
+ .vxe-date-picker--suffix {
77
+ background-color: #fffbdf;
78
+ }
79
+ }
61
80
  }
62
81
 
63
82
  /** 分页组件:当前页颜色 */
@@ -23,6 +23,20 @@
23
23
  <el-form-item :label="$t('message.udp.orgTaggle')" prop="orgTaggle">
24
24
  <el-switch v-model="record.orgTaggle" active-value="Y" inactive-value="N" />
25
25
  </el-form-item>
26
+ <el-form-item
27
+ v-if="['liwei', 'yanhuaijun', 'phr', 'zhonglijun', 'ccl'].includes(cookies.get(kLOGINER))"
28
+ :label="$t('message.udp.techSupport')"
29
+ prop="techSupport"
30
+ >
31
+ <el-switch v-model="record.techSupport" active-value="Y" inactive-value="N" />
32
+ </el-form-item>
33
+ <el-form-item
34
+ v-if="['liwei', 'yanhuaijun', 'phr', 'zhonglijun', 'ccl'].includes(cookies.get(kLOGINER))"
35
+ :label="$t('message.udp.baseColor')"
36
+ prop="baseColor"
37
+ >
38
+ <vxe-color-picker v-model="record.baseColor" :colors="colorList" type="hex" clearable transfer />
39
+ </el-form-item>
26
40
  <el-form-item :label="$t('message.udp.systemLogo')">
27
41
  <el-upload
28
42
  v-model:file-list="record.logo"
@@ -105,7 +119,7 @@ import { useI18n } from 'vue-i18n';
105
119
  import to from 'await-to-js';
106
120
  import { successMessage, cookies, warnMessage } from '@utogether/utils';
107
121
  import { isArray } from 'xe-utils';
108
- import { kTOKEN } from '../../../contant';
122
+ import { kTOKEN, kLOGINER } from '../../../contant';
109
123
  import { getServiceApi, getBaseURL } from '../../../api';
110
124
 
111
125
  const xfrom = ref<FormInstance>();
@@ -114,8 +128,10 @@ const record = reactive({
114
128
  defaultLanguage: 'zh',
115
129
  title: 'U-DP',
116
130
  ispTitle: 'U-DP',
131
+ baseColor: '#FFF',
117
132
  i18nEnabled: 'N',
118
133
  orgTaggle: 'Y',
134
+ techSupport: 'Y',
119
135
  copyright: '深圳友聚信息技术有限公司',
120
136
  logo: [],
121
137
  backgroundImg: [],
@@ -130,6 +146,39 @@ const baseUrl = ref(getBaseURL());
130
146
  const url = '/upfm/v1/sysConfig';
131
147
  let dataList = [];
132
148
 
149
+ const colorList = [
150
+ '#DC143C',
151
+ '#FF1493',
152
+ '#FF00FF',
153
+ '#9932CC',
154
+ '#6A5ACD',
155
+ '#0000FF',
156
+ '#00008B',
157
+ '#778899',
158
+ '#1E90FF',
159
+ '#00BFFF',
160
+ '#5F9EA0',
161
+ '#00FFFF',
162
+ '#008080',
163
+ '#7FFFAA',
164
+ '#3CB371',
165
+ '#8FBC8F',
166
+ '#008000',
167
+ '#7CFC00',
168
+ '#556B2F',
169
+ '#FFFFE0',
170
+ '#FFFF00',
171
+ '#808000',
172
+ '#EEE8AA',
173
+ '#FFD700',
174
+ '#FFA500',
175
+ '#FF4500',
176
+ '#FA8072',
177
+ '#FF0000',
178
+ '#800000',
179
+ '#C0C0C0'
180
+ ];
181
+
133
182
  const rules = reactive<FormRules>({
134
183
  defaultLanguage: [
135
184
  {
@@ -71,7 +71,7 @@ const columns = [
71
71
  field: 'enabled',
72
72
  title: 'message.status',
73
73
  width: 90,
74
- formatter: ({ row }) => (row.enabled === '1' ? t('message.appupper') : t('message.applower'))
74
+ formatter: ({ row }) => (row.enabled === '1' ? t('message.udp.appupper') : t('message.udp.applower'))
75
75
  },
76
76
  { field: 'creationDate', width: 140 },
77
77
  {
@@ -2,7 +2,7 @@
2
2
  * @Author: wei.li
3
3
  * @Date: 2021-12-23 17:33:21
4
4
  * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-07-24 10:16:17
5
+ * @LastEditTime: 2025-09-08 10:27:39
6
6
  * @Description: 数据字典
7
7
  -->
8
8
  <template>
@@ -69,7 +69,7 @@
69
69
  </button>
70
70
  </div>
71
71
  </div>
72
- <div class="absolute flex justify-center w-full font-bold bottom-1">
72
+ <div v-if="sysConfig.techSupport === 'Y'" class="absolute flex justify-center w-full font-bold bottom-1">
73
73
  <img :src="utogether" class="!h-10" style="height: 40px" />
74
74
  <span class="flex flex-row justify-center" style="width: 300px">
75
75
  <span style="font-size: 0; text-align: center">
@@ -78,6 +78,7 @@
78
78
  target="_blank"
79
79
  class="!inline-block"
80
80
  style="margin-bottom: -5px; font-size: 17px; color: #fff; mix-blend-mode: difference"
81
+ :style="{ color: sysConfig.baseColor || '#FFF' }"
81
82
  >
82
83
  深圳友聚信息技术有限公司
83
84
  </a>
@@ -86,6 +87,7 @@
86
87
  target="_blank"
87
88
  class="!inline-block"
88
89
  style="font-size: 12px; color: #fff; mix-blend-mode: difference"
90
+ :style="{ color: sysConfig.baseColor || '#FFF' }"
89
91
  >
90
92
  SHENZHEN U-TOGETHER CO. LTD
91
93
  </a>
@@ -159,7 +161,7 @@ const bgStyle = ref({
159
161
  });
160
162
  const refreshKey = ref(0);
161
163
 
162
- const sysConfig = ref({});
164
+ const sysConfig = ref<IRecord>({});
163
165
  const router = useRouter();
164
166
  const { t } = useI18n();
165
167
  const serviceApi = getServiceApi();
@@ -237,8 +239,8 @@ const cacheToken = token => {
237
239
  const cache = {
238
240
  accessToken: access_token,
239
241
  refreshToken: refresh_token,
240
- expires: Date.now() + expires_in
241
- // expires: Date.now() + expires_in * 1000
242
+ // expires: Date.now() + expires_in
243
+ expires: Date.now() + expires_in * 1000
242
244
  };
243
245
 
244
246
  cookies.set(kCKTOKEN, token.access_token);