@utogether/udp-core 1.0.1-beta.2 → 1.0.1-beta.21

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 (159) hide show
  1. package/build/plugins.ts +8 -1
  2. package/dist/{403-BBQoJwTM.js → 403-B_l9Q9w_.js} +1 -1
  3. package/dist/{404-BbJPSIWM.js → 404-33KZO3Vz.js} +1 -1
  4. package/dist/{500-BtFL9R4M.js → 500-oI74ZkQH.js} +1 -1
  5. package/dist/{AuthorityInfo-DhiwCeLN.js → AuthorityInfo-CNoxrmPS.js} +1 -1
  6. package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-CO01EWKQ.js +100 -0
  7. package/dist/{Company-CGqmslx-.js → Company-DOCRUvUs.js} +3 -3
  8. package/dist/{CompanyPanel-hlDsxD-6.js → CompanyPanel-Do2JlJ3U.js} +26 -26
  9. package/dist/{Department-BZyJtacc.js → Department-BAlx8Am2.js} +3 -3
  10. package/dist/{DepartmentPanel-D-a_EBFt.js → DepartmentPanel-BvQUkRaM.js} +25 -25
  11. package/dist/{DesignPanel-Bl4luWDV.js → DesignPanel-BMr-c76z.js} +1 -1
  12. package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-I8C3iGvz.js → DesignPanel.vue_vue_type_style_index_0_lang-COERxrYp.js} +28 -30
  13. package/dist/DictView-DkG5lo6m.js +109 -0
  14. package/dist/InvOrganization-D_PuTpPt.js +74 -0
  15. package/dist/Org-CtVfZAjI.js +39 -0
  16. package/dist/{Preview-pHD84xqI.js → Preview-Cuj_akRk.js} +2 -2
  17. package/dist/{ReportDefine-DnnCNQWS.js → ReportDefine-CM2aNEVp.js} +1 -1
  18. package/dist/{ReportDesign-BnI_Q4pg.js → ReportDesign-B1y79NKM.js} +43 -43
  19. package/dist/{ReportQuery-Dby2MmtM.js → ReportQuery-CZEfKCWP.js} +1 -1
  20. package/dist/{ReportQueryFrom-Blm1N8P1.js → ReportQueryFrom-C_cUB8bs.js} +1 -1
  21. package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-CnG_Ybnt.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-DBqJnvTQ.js} +1 -1
  22. package/dist/{ReportTemplate-D65RXRY_.js → ReportTemplate-BprAuCb1.js} +28 -28
  23. package/dist/{Role-eFZoTpXc.js → Role-CAaLVGNy.js} +6 -6
  24. package/dist/{RoleAssign-D9-Y3UNz.js → RoleAssign-DuFp2Ty7.js} +9 -9
  25. package/dist/{RolePanel-DlFw6HSf.js → RolePanel-BRStoO0e.js} +1 -1
  26. package/dist/{RolePanel-CoUOc3sX.js → RolePanel-FnyN7LiS.js} +1 -1
  27. package/dist/RolePanel.vue_vue_type_script_setup_true_lang-CNIA7zdk.js +132 -0
  28. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-Clwk-MHw.js → RolePanel.vue_vue_type_script_setup_true_lang-CS7drFhn.js} +44 -38
  29. package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-M2FQJwPU.js → ScrollPanel.vue_vue_type_style_index_0_lang-CEnqhlSE.js} +23 -23
  30. package/dist/{Staff-DFBLCsAd.js → Staff-D493jHwR.js} +3 -3
  31. package/dist/{StaffInfo-d2CK0oBA.js → StaffInfo-suU_pcyD.js} +1 -1
  32. package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-4m8wK9tq.js → StaffInfo.vue_vue_type_script_setup_true_lang-DV16a2Nz.js} +16 -16
  33. package/dist/{StaffPanel-D6aWLKN3.js → StaffPanel-BbYWu-xZ.js} +1 -1
  34. package/dist/{StaffPanel.vue_vue_type_script_setup_true_lang-C7YT2CVb.js → StaffPanel.vue_vue_type_script_setup_true_lang-CfRIanr5.js} +2 -2
  35. package/dist/{SysUser-BdZvYxQH.js → SysUser-YXOsIVpJ.js} +2 -2
  36. package/dist/{SysUserPanel-BIVa6LLr.js → SysUserPanel-C1tQzih_.js} +1 -1
  37. package/dist/SysUserPanel.vue_vue_type_script_setup_true_lang-BfT40pDr.js +298 -0
  38. package/dist/{SystemMenu-C-5VKlHK.js → SystemMenu-DzKl8RAz.js} +33 -33
  39. package/dist/{UserInfo-DqXCRZts.js → UserInfo-CYeYQNq8.js} +1 -1
  40. package/dist/{UserInfo.vue_vue_type_style_index_0_lang-N3TwfpPx.js → UserInfo.vue_vue_type_style_index_0_lang-DYVdi2Ck.js} +41 -39
  41. package/dist/{childView-B2lSsqS3.js → childView-BNYdfnMx.js} +1 -1
  42. package/dist/{childView-DRUNqgjI.js → childView-C6rHVrT6.js} +1 -1
  43. package/dist/{childView.vue_vue_type_style_index_0_lang-B9XBDDU_.js → childView.vue_vue_type_style_index_0_lang-6o00J0a7.js} +1 -1
  44. package/dist/{childView.vue_vue_type_style_index_0_lang-oGriyFTv.js → childView.vue_vue_type_style_index_0_lang-O_zWFjYY.js} +43 -43
  45. package/dist/{code-rule-DZC9T6cl.js → code-rule-MxcRbYZR.js} +13 -15
  46. package/dist/core.es.js +18 -10
  47. package/dist/{cron-task-BJwPeA5F.js → cron-task-B0yfTtm6.js} +11 -11
  48. package/dist/{frameView-C6wkvok-.js → frameView-DtHY5dLd.js} +1 -1
  49. package/dist/img/l_img.svg +1 -1
  50. package/dist/img/minicolors.png +0 -0
  51. package/dist/img/v_img.svg +1 -1
  52. package/dist/index-BWtOrjW2.js +4603 -0
  53. package/dist/{layoutView-CeJBpZb_.js → layoutView-D0Q7EG0u.js} +1564 -1559
  54. package/dist/{log-in-e7D5Ss1P.js → log-in-CpGqc33f.js} +5 -4
  55. package/dist/{log-out--RRncZhN.js → log-out-D1b4VRMZ.js} +30 -24
  56. package/dist/login-CuO8YgN1.js +249 -0
  57. package/dist/{login-log-CvVnyGi3.js → login-log-BNRXLeMi.js} +4 -3
  58. package/dist/{lov-view-DRF-99U4.js → lov-view-DcRVGqsD.js} +5 -5
  59. package/dist/{menuInfo-3Sjvs9nM.js → menuInfo-ccOqhCC8.js} +1 -1
  60. package/dist/{menuInfo.vue_vue_type_style_index_0_lang-DrQ560nm.js → menuInfo.vue_vue_type_style_index_0_lang-DTBPgTe_.js} +34 -32
  61. package/dist/{pda-app-B9tn7jdv.js → pda-app-D7n4oxyn.js} +202 -188
  62. package/dist/{resource-BqnxbQNe.js → resource-_h2OtsKS.js} +18 -18
  63. package/dist/{su-welcome-VwifUK_O.js → su-welcome-Co6e4akE.js} +118 -120
  64. package/dist/sys-config-C6Es9vZl.js +355 -0
  65. package/dist/udp-core.css +1 -9
  66. package/dist/utogether-MlnyYtNS.js +4 -0
  67. package/index.ts +17 -5
  68. package/package.json +1 -1
  69. package/src/App.vue +2 -7
  70. package/src/api/http.ts +1 -4
  71. package/src/api/index.ts +5 -3
  72. package/src/api/user.ts +2 -2
  73. package/src/components/SuCharts/src/UserInfo.vue +3 -3
  74. package/src/components/SuScrollTree/ScrollPanel.vue +170 -175
  75. package/src/components/udp/form/form.vue +109 -0
  76. package/src/components/udp/grid/index.vue +509 -0
  77. package/src/components/udp/index.ts +4 -4
  78. package/src/components/udp/utils.ts +405 -40
  79. package/src/directives/permission/index.ts +1 -1
  80. package/src/layout/components/lay-navbar/index.vue +9 -7
  81. package/src/layout/components/lay-panel/index.vue +3 -3
  82. package/src/layout/components/lay-search/index.vue +1 -1
  83. package/src/layout/components/lay-select-org/index.vue +4 -9
  84. package/src/layout/components/lay-sidebar/breadCrumb.vue +1 -1
  85. package/src/layout/components/lay-sidebar/horizontal.vue +4 -5
  86. package/src/layout/components/lay-sidebar/mixNav.vue +6 -4
  87. package/src/layout/components/lay-sidebar/sidebar-logo.vue +94 -98
  88. package/src/layout/components/lay-tag/index.vue +596 -625
  89. package/src/layout/hooks/useTag.ts +223 -233
  90. package/src/layout/layoutView.vue +215 -215
  91. package/src/layout/types.ts +3 -2
  92. package/src/main.ts +39 -31
  93. package/src/plugins/i18n/en.ts +26 -13
  94. package/src/plugins/i18n/zh.ts +35 -16
  95. package/src/plugins/vxe-table/index.ts +65 -2
  96. package/src/plugins/vxe-table/render.tsx +945 -817
  97. package/src/router/index.ts +186 -183
  98. package/src/router/modules/remaining.ts +1 -26
  99. package/src/router/utils.ts +393 -377
  100. package/src/store/modules/app.ts +1 -3
  101. package/src/store/modules/multiTags.ts +110 -109
  102. package/src/store/modules/permission.ts +113 -103
  103. package/src/store/modules/system.ts +1 -3
  104. package/src/style/button.scss +10 -3
  105. package/src/style/login.css +1 -1
  106. package/src/style/tailwind.css +1 -68
  107. package/src/style/vxetable.scss +348 -256
  108. package/src/utils/authority/index.ts +1 -1
  109. package/src/utils/index.ts +3 -1
  110. package/src/utils/propTypes.ts +1 -6
  111. package/src/views/login/login-view.vue +6 -20
  112. package/src/views/organization/company/CompanyPanel.vue +2 -2
  113. package/src/views/organization/department/DepartmentPanel.vue +269 -283
  114. package/src/views/organization/inv-org/InvOrganization.vue +23 -9
  115. package/src/views/organization/org/Org.vue +9 -5
  116. package/src/views/system/menu/SystemMenu.vue +183 -197
  117. package/src/views/system/menu/menuInfo.vue +8 -18
  118. package/src/views/system/role/AuthorityInfo.vue +19 -15
  119. package/src/views/system/role/Role.vue +1 -5
  120. package/src/views/system/role/RolePanel.vue +11 -2
  121. package/src/views/system/role/UserInfo.vue +11 -9
  122. package/src/views/system/role-assign/RoleAssign.vue +2 -2
  123. package/src/views/system/role-assign/RolePanel.vue +12 -9
  124. package/src/views/system/sys/sys-config.vue +66 -21
  125. package/src/views/system/sysUser/SysUserPanel.vue +44 -43
  126. package/src/views/uapp/pda/pda-app.vue +48 -16
  127. package/src/views/udev/coderule/code-rule.vue +120 -121
  128. package/src/views/udev/dict/DictView.vue +16 -4
  129. package/src/views/udev/dict/childView.vue +8 -8
  130. package/src/views/ufile/aggregation/File.vue +5 -5
  131. package/src/views/ufile/file/water-mark.vue +14 -14
  132. package/src/views/uhome/components/menu-favorite.vue +314 -331
  133. package/src/views/uhome/su-welcome.vue +3 -3
  134. package/src/views/ulogin/login.vue +19 -12
  135. package/src/views/upms/interface/log-in.vue +100 -106
  136. package/src/views/upms/interface/log-out.vue +2 -8
  137. package/src/views/upms/user/login-log.vue +54 -60
  138. package/src/views/urpt/design/DesignPanel.vue +16 -35
  139. package/src/views/urpt/design/Preview.vue +1 -0
  140. package/src/views/urpt/design/ReportDesign.vue +17 -23
  141. package/src/views/urpt/static-resource/resource.vue +3 -3
  142. package/src/views/urpt/template/ReportTemplate.vue +7 -7
  143. package/types/global.d.ts +4 -9
  144. package/vite.config.ts +6 -2
  145. package/dist/AuthorityInfo.vue_vue_type_style_index_0_lang-Duyweh89.js +0 -102
  146. package/dist/DictView-B4a7Hs1X.js +0 -95
  147. package/dist/InvOrganization-q4T3y8dQ.js +0 -260
  148. package/dist/Org-BTGTrAVz.js +0 -35
  149. package/dist/RolePanel.vue_vue_type_script_setup_true_lang-DKHgNWQP.js +0 -126
  150. package/dist/SysUserPanel.vue_vue_type_script_setup_true_lang-BsBKpYR7.js +0 -288
  151. package/dist/index-DZc3qRTx.js +0 -2650
  152. package/dist/login-BOxwzwdB.js +0 -252
  153. package/dist/sys-config-C0-gSBFO.js +0 -277
  154. package/dist/utogether-Di1byIum.js +0 -182
  155. package/src/components/udp/form-upload.vue +0 -183
  156. package/src/components/udp/modal-form.vue +0 -180
  157. package/src/utils/http/index.ts +0 -297
  158. package/src/utils/http/types.d.ts +0 -46
  159. package/src/utils/udp/useRender.ts +0 -420
@@ -2,7 +2,7 @@
2
2
  * @Author: levi7754 levi7754@163.com
3
3
  * @Date: 2023-11-02 10:04:05
4
4
  * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-04-29 17:04:36
5
+ * @LastEditTime: 2025-08-06 14:47:34
6
6
  * @FilePath: /front-web-mes/src/views/uhome/su-welcome.vue
7
7
  * @Description: 欢迎页面
8
8
  -->
@@ -38,7 +38,7 @@
38
38
  </div>
39
39
  <div class="flex flex-col">
40
40
  <span class="text-4xl">
41
- <ut-countdown :show-days="false" :show-labels="false" />
41
+ <ut-flip-down :show-days="false" :show-labels="false" />
42
42
  </span>
43
43
  <div class="mt-1 ml-3">{{ getLunarDay() }}</div>
44
44
  </div>
@@ -233,7 +233,7 @@ const onClickMenu = item => {
233
233
  };
234
234
 
235
235
  const getUserLog = () => {
236
- const url = '/upms/v1/userMonitor';
236
+ const url = '/upfm/v1/userMonitor';
237
237
  const query = { pageSize: 8, pageNum: 1, employeeName: systemHook.getUserInfo?.name };
238
238
  getServiceApi()
239
239
  .get(url, query)
@@ -2,16 +2,11 @@
2
2
  <!-- <img :src="bg" class="wave" /> -->
3
3
  <div :key="refreshKey" class="login-container" :style="bgStyle">
4
4
  <div v-if="!bgStyle.backgroundImage" class="img pr-24">
5
- <!-- <bg /> -->
6
5
  <img :src="welcome" />
7
6
  </div>
8
7
  <div class="login-box">
9
8
  <div class="login-form">
10
- <h2
11
- v-motion
12
- :initial="{ opacity: 0, y: 100 }"
13
- :enter="{ opacity: 1, y: 0, transition: { delay: 100 } }"
14
- >
9
+ <h2 v-motion :initial="{ opacity: 0, y: 100 }" :enter="{ opacity: 1, y: 0, transition: { delay: 100 } }">
15
10
  {{ sysConfig['title'] }}
16
11
  </h2>
17
12
  <div
@@ -73,7 +68,7 @@
73
68
  </button>
74
69
  </div>
75
70
  </div>
76
- <div class="absolute flex justify-center w-full font-bold bottom-1">
71
+ <div v-if="sysConfig.techSupport === 'Y'" class="absolute flex justify-center w-full font-bold bottom-1">
77
72
  <img :src="utogether" class="!h-10" style="height: 40px" />
78
73
  <span class="flex flex-row justify-center" style="width: 300px">
79
74
  <span style="font-size: 0; text-align: center">
@@ -81,7 +76,8 @@
81
76
  href="http://www.u-together.cn/"
82
77
  target="_blank"
83
78
  class="!inline-block"
84
- style="margin-bottom: -5px; font-size: 17px; color: #59d8d8"
79
+ style="margin-bottom: -5px; font-size: 17px; color: #fff; mix-blend-mode: difference"
80
+ :style="{ color: sysConfig.baseColor || '#FFF' }"
85
81
  >
86
82
  深圳友聚信息技术有限公司
87
83
  </a>
@@ -89,7 +85,8 @@
89
85
  href="http://www.u-together.cn/"
90
86
  target="_blank"
91
87
  class="!inline-block"
92
- style="font-size: 12px; color: #d9d9d9"
88
+ style="font-size: 12px; color: #fff; mix-blend-mode: difference"
89
+ :style="{ color: sysConfig.baseColor || '#FFF' }"
93
90
  >
94
91
  SHENZHEN U-TOGETHER CO. LTD
95
92
  </a>
@@ -113,6 +110,7 @@ import { useFavicon } from '@vueuse/core';
113
110
  import { isEmpty, toDateString } from 'xe-utils';
114
111
  import { removeClass, storageLocal, errorMessage, cookies, delay } from '@utogether/utils';
115
112
  import to from 'await-to-js';
113
+ // import JSEencrypt from 'jsencrypt';
116
114
  import { useSystemStoreHook } from '../../store/modules/system';
117
115
  import { useLayout } from '../../layout/hooks/useLayout';
118
116
  import { useDataThemeChange } from '../../layout/hooks/useDataThemeChange';
@@ -162,7 +160,7 @@ const bgStyle = ref({
162
160
  });
163
161
  const refreshKey = ref(0);
164
162
 
165
- const sysConfig = ref({});
163
+ const sysConfig = ref<IRecord>({});
166
164
  const router = useRouter();
167
165
  const { t } = useI18n();
168
166
  const serviceApi = getServiceApi();
@@ -187,6 +185,13 @@ const onLogin = async () => {
187
185
  const rsakeypair = new RSAKeyPair(publicRSA.publicKeyExponent, '', publicRSA.publicKeyModulus);
188
186
  // @ts-ignore
189
187
  const password = encryptedString(rsakeypair, passWord.split('').reverse().join(''));
188
+ // const key = new JSEencrypt();
189
+ // key.setPublicKey(
190
+ // '-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQChJwirJjZ+FxG9dn9rsfKa+9hTgBhXI9e0kiMOJWfJXPVxjsp0XaBkNADKYZ++7Ikt9hq+H3GtO4ItB27YMQgMU3gu34wGJ+6VxX4r7hL+VdorPK3sWZR6dczMu/Nvs7eByTtL9RSJeJ8cCEn5AjoW7HC+9BpQR4XhCCtvE1iOKQIDAQAB-----END PUBLIC KEY-----'
191
+ // );
192
+ // const password = key.encrypt(passWord);
193
+ // // console.log('password1 ===', password1);
194
+ // console.log('password ===', password);
190
195
  const param = {
191
196
  username,
192
197
  password,
@@ -233,6 +238,7 @@ const cacheToken = token => {
233
238
  const cache = {
234
239
  accessToken: access_token,
235
240
  refreshToken: refresh_token,
241
+ // expires: Date.now() + expires_in
236
242
  expires: Date.now() + expires_in * 1000
237
243
  };
238
244
 
@@ -275,7 +281,7 @@ const insertLoginInfo = username => {
275
281
  browserVersion,
276
282
  operatingSystem: getPlatform(userAgent)
277
283
  };
278
- serviceApi.post('/upms/v1/userMonitor', obj);
284
+ serviceApi.post('/upfm/v1/userMonitor', obj);
279
285
  };
280
286
 
281
287
  const getSysConfig = async () => {
@@ -292,7 +298,8 @@ const getSysConfig = async () => {
292
298
  config['title'] = title || 'U-DP';
293
299
  sysConfig.value = config;
294
300
  bgStyle.value = {
295
- backgroundImage: config['backgroundImg'] ? `url(${config['backgroundImg']})` : '',
301
+ backgroundImage: config['backgroundImg'] ? `url(${config['backgroundImg']})` : ``,
302
+ // backgroundImage: config['backgroundImg'] ? `url(${config['backgroundImg']})` : `url1(${welcome})`,
296
303
  backgroundRepeat: 'no-repeat',
297
304
  backgroundPosition: 'center'
298
305
  };
@@ -1,106 +1,100 @@
1
- <!--
2
- * @Author: wei.li
3
- * @Date: 2021-12-23 11:22:51
4
- * @LastEditors: wei.li
5
- * @LastEditTime: 2024-07-04 09:39:31
6
- * @Description: 入站接口日志
7
- -->
8
-
9
- <template>
10
- <div>
11
- <ut-grid
12
- ref="xgrid"
13
- :items="formItems"
14
- :columns="columns"
15
- url="/upms/v1/invokeInbound"
16
- :editable="false"
17
- />
18
- <ut-modal-form
19
- v-if="data.showModal"
20
- ref="suModalRef"
21
- :record="data.record"
22
- :items="items"
23
- :width="640"
24
- :height="480"
25
- :title="data.title"
26
- @close="data.showModal = false"
27
- />
28
- </div>
29
- </template>
30
- <script lang="tsx">
31
- export default {
32
- name: 'LoginLog'
33
- };
34
- </script>
35
- <script setup lang="tsx">
36
- import { ref, reactive } from 'vue';
37
- // import { useRouter } from 'vue-router';
38
- // import to from 'await-to-js';
39
- // import { clone } from 'xe-utils';
40
- import { useRender } from '@utogether/utils';
41
-
42
- const renderHook = useRender();
43
- // const renderOption = renderOptions();
44
-
45
- // const router = useRouter();
46
-
47
- const data = reactive({
48
- showModal: false,
49
- record: {},
50
- title: ''
51
- });
52
-
53
- const formItems = [
54
- { field: 'interfaceName' },
55
- { field: 'interfaceUrl' },
56
- { field: 'requestBodyParameter', title: 'message.requestParameter' },
57
- { field: 'responseContent' },
58
- { field: 'ip' },
59
- { field: 'requestDate', itemRender: { name: '#SuDateRange', props: { type: 'daterange' } } },
60
- { field: 'requestStatus', itemRender: renderHook.renderDict('SU.REQUEST.STATUS') }
61
- ];
62
-
63
- const items = [
64
- {
65
- field: 'requestBodyParameter',
66
- title: 'message.requestParameter',
67
- itemRender: renderHook.renderTextarea({ rows: 8 })
68
- },
69
- { field: 'responseContent', itemRender: renderHook.renderTextarea({ rows: 6 }) },
70
- { field: 'stacktrace', itemRender: renderHook.renderTextarea({ rows: 3 }) }
71
- ];
72
-
73
- // 列字段
74
- const xgrid = ref(null);
75
- const columns = [
76
- { field: 'interfaceName', minWidth: 120 },
77
- { field: 'interfaceUrl', minWidth: 150 },
78
- { field: 'ip', width: 120 },
79
- { field: 'requestDate', width: 160 },
80
- { field: 'responseTimeConsume', width: 120 },
81
- { field: 'requestStatus', width: 90, formatter: ['formatDict', 'SU.REQUEST.STATUS'] },
82
- {
83
- field: 'operate',
84
- width: 70,
85
- slots: {
86
- default: ({ row }) => {
87
- if (!row.id) return null;
88
- return [
89
- <>
90
- <ut-button content="detail" icon="ri-eye-line" onTap={() => handleShowDetail(row)} />
91
- </>
92
- ];
93
- }
94
- }
95
- }
96
- ];
97
- // 详情
98
- const handleShowDetail = record => {
99
- const resContent = JSON.parse(record.responseContent);
100
- record.resContent = resContent?.data?.list || resContent?.data;
101
- record.resContent = record.resContent ? JSON.stringify(record.resContent) : '';
102
- data.record = record;
103
- data.showModal = true;
104
- data.title = `【${record.interfaceName}】接口明细`;
105
- };
106
- </script>
1
+ <!--
2
+ * @Author: wei.li
3
+ * @Date: 2021-12-23 11:22:51
4
+ * @LastEditors: wei.li
5
+ * @LastEditTime: 2024-07-04 09:39:31
6
+ * @Description: 入站接口日志
7
+ -->
8
+
9
+ <template>
10
+ <div>
11
+ <ut-grid ref="xgrid" :items="formItems" :columns="columns" url="/upms/v1/invokeInbound" :editable="false" />
12
+ <ut-modal-form
13
+ v-if="data.showModal"
14
+ ref="suModalRef"
15
+ :record="data.record"
16
+ :items="items"
17
+ :width="640"
18
+ :height="480"
19
+ :title="data.title"
20
+ @close="data.showModal = false"
21
+ />
22
+ </div>
23
+ </template>
24
+ <script lang="tsx">
25
+ export default {
26
+ name: 'LoginLog'
27
+ };
28
+ </script>
29
+ <script setup lang="tsx">
30
+ import { ref, reactive } from 'vue';
31
+ // import { useRouter } from 'vue-router';
32
+ // import to from 'await-to-js';
33
+ // import { clone } from 'xe-utils';
34
+ import { useRender } from '@utogether/utils';
35
+
36
+ const renderHook = useRender();
37
+ // const renderOption = renderOptions();
38
+
39
+ // const router = useRouter();
40
+
41
+ const data = reactive({
42
+ showModal: false,
43
+ record: {},
44
+ title: ''
45
+ });
46
+
47
+ const formItems = [
48
+ { field: 'interfaceName' },
49
+ { field: 'interfaceUrl' },
50
+ { field: 'requestBodyParameter', title: 'message.requestParameter' },
51
+ { field: 'responseContent' },
52
+ { field: 'ip', title: 'message.udp.ip' },
53
+ { field: 'requestDate', itemRender: { name: '#SuDateRange', props: { type: 'daterange' } } },
54
+ { field: 'requestStatus', itemRender: renderHook.renderDict('SU.REQUEST.STATUS') }
55
+ ];
56
+
57
+ const items = [
58
+ {
59
+ field: 'requestBodyParameter',
60
+ title: 'message.requestParameter',
61
+ itemRender: renderHook.renderTextarea({ rows: 8 })
62
+ },
63
+ { field: 'responseContent', itemRender: renderHook.renderTextarea({ rows: 6 }) },
64
+ { field: 'stacktrace', itemRender: renderHook.renderTextarea({ rows: 3 }) }
65
+ ];
66
+
67
+ // 列字段
68
+ const xgrid = ref(null);
69
+ const columns = [
70
+ { field: 'interfaceName', minWidth: 120 },
71
+ { field: 'interfaceUrl', minWidth: 150 },
72
+ { field: 'ip', width: 120 },
73
+ { field: 'requestDate', width: 160 },
74
+ { field: 'responseTimeConsume', width: 120 },
75
+ { field: 'requestStatus', width: 90, formatter: ['formatDict', 'SU.REQUEST.STATUS'] },
76
+ {
77
+ field: 'operate',
78
+ width: 70,
79
+ slots: {
80
+ default: ({ row }) => {
81
+ if (!row.id) return null;
82
+ return [
83
+ <>
84
+ <ut-button content="detail" icon="ri-eye-line" onTap={() => handleShowDetail(row)} />
85
+ </>
86
+ ];
87
+ }
88
+ }
89
+ }
90
+ ];
91
+ // 详情
92
+ const handleShowDetail = record => {
93
+ const resContent = JSON.parse(record.responseContent);
94
+ record.resContent = resContent?.data?.list || resContent?.data;
95
+ record.resContent = record.resContent ? JSON.stringify(record.resContent) : '';
96
+ data.record = record;
97
+ data.showModal = true;
98
+ data.title = `【${record.interfaceName}】接口明细`;
99
+ };
100
+ </script>
@@ -8,13 +8,7 @@
8
8
 
9
9
  <template>
10
10
  <div>
11
- <ut-grid
12
- ref="SuGridRef"
13
- :items="formItems"
14
- :columns="columns"
15
- url="/upms/v1/invokeOutbound"
16
- :editable="false"
17
- />
11
+ <ut-grid ref="SuGridRef" :items="formItems" :columns="columns" url="/upms/v1/invokeOutbound" :editable="false" />
18
12
 
19
13
  <ut-modal-form
20
14
  v-if="data.showModal"
@@ -56,7 +50,7 @@ const formItems = [
56
50
  { field: 'interfaceUrl' },
57
51
  { field: 'requestParameter' },
58
52
  { field: 'responseContent' },
59
- { field: 'ip' },
53
+ // { field: 'ip', },
60
54
  { field: 'requestDate', itemRender: { name: '#SuDateRange', props: { type: 'daterange' } } },
61
55
  { field: 'requestStatus', itemRender: renderHook.renderDict('SU.REQUEST.STATUS') }
62
56
  ];
@@ -1,60 +1,54 @@
1
- <!--
2
- * @Author: wei.li
3
- * @Date: 2021-12-23 11:22:51
4
- * @LastEditors: wei.li
5
- * @LastEditTime: 2024-06-28 10:13:13
6
- * @Description: 用户登录日志
7
- -->
8
-
9
- <template>
10
- <div>
11
- <ut-grid
12
- ref="xgrid"
13
- :items="formItems"
14
- :columns="columns"
15
- url="/upms/v1/userMonitor"
16
- :editable="false"
17
- />
18
- </div>
19
- </template>
20
- <script lang="tsx">
21
- export default {
22
- name: 'LoginLog'
23
- };
24
- </script>
25
- <script setup lang="tsx">
26
- import { ref } from 'vue';
27
- // import { useRouter } from 'vue-router';
28
- // import to from 'await-to-js';
29
- // import { clone } from 'xe-utils';
30
- // import { useRender } from '@utogether/utils';
31
-
32
- // const renderHook = useRender();
33
- // const renderOption = renderOptions();
34
-
35
- // const router = useRouter();
36
-
37
- const formItems = [
38
- { field: 'employeeName' },
39
- { field: 'userName' },
40
- { field: 'operatingSystem', title: 'message.udp.operatingSystem' },
41
- { field: 'browserVersion', title: 'message.udp.browserVersion' },
42
- {
43
- field: 'loginTime',
44
- title: 'message.udp.loginTime',
45
- itemRender: { name: '#SuDateRange', props: { type: 'daterange' } }
46
- }
47
- ];
48
-
49
- // 列字段
50
- const xgrid = ref(null);
51
- const columns = [
52
- { field: 'employeeName', minWidth: 120 },
53
- { field: 'userName', width: 150 },
54
- { field: 'loginTime', title: 'message.udp.loginTime', width: 160 },
55
- { field: 'operatingSystem', title: 'message.udp.operatingSystem', width: 120 },
56
- { field: 'browser', title: 'message.udp.browser', width: 110 },
57
- { field: 'browserVersion', title: 'message.udp.browserVersion', width: 110 },
58
- { field: 'ip', title: 'message.udp.ip', width: 150 }
59
- ];
60
- </script>
1
+ <!--
2
+ * @Author: wei.li
3
+ * @Date: 2021-12-23 11:22:51
4
+ * @LastEditors: wei.li
5
+ * @LastEditTime: 2024-06-28 10:13:13
6
+ * @Description: 用户登录日志
7
+ -->
8
+
9
+ <template>
10
+ <div>
11
+ <ut-grid ref="xgrid" :items="formItems" :columns="columns" url="/upfm/v1/userMonitor" :editable="false" />
12
+ </div>
13
+ </template>
14
+ <script lang="tsx">
15
+ export default {
16
+ name: 'LoginLog'
17
+ };
18
+ </script>
19
+ <script setup lang="tsx">
20
+ import { ref } from 'vue';
21
+ // import { useRouter } from 'vue-router';
22
+ // import to from 'await-to-js';
23
+ // import { clone } from 'xe-utils';
24
+ // import { useRender } from '@utogether/utils';
25
+
26
+ // const renderHook = useRender();
27
+ // const renderOption = renderOptions();
28
+
29
+ // const router = useRouter();
30
+
31
+ const formItems = [
32
+ { field: 'employeeName' },
33
+ { field: 'userName' },
34
+ { field: 'operatingSystem', title: 'message.udp.operatingSystem' },
35
+ { field: 'browserVersion', title: 'message.udp.browserVersion' },
36
+ {
37
+ field: 'loginTime',
38
+ title: 'message.udp.loginTime',
39
+ itemRender: { name: '#SuDateRange', props: { type: 'daterange' } }
40
+ }
41
+ ];
42
+
43
+ // 列字段
44
+ const xgrid = ref(null);
45
+ const columns = [
46
+ { field: 'employeeName', minWidth: 120 },
47
+ { field: 'userName', title: 'message.udp.userName', width: 150 },
48
+ { field: 'loginTime', title: 'message.udp.loginTime', width: 160 },
49
+ { field: 'operatingSystem', title: 'message.udp.operatingSystem', width: 120 },
50
+ { field: 'browser', title: 'message.udp.browser', width: 110 },
51
+ { field: 'browserVersion', title: 'message.udp.browserVersion', width: 110 },
52
+ { field: 'ip', title: 'message.udp.ip', width: 150 }
53
+ ];
54
+ </script>
@@ -2,7 +2,7 @@
2
2
  * @Author: wei.li
3
3
  * @Date: 2022-03-21 10:36:15
4
4
  * @LastEditors: levi7754 levi7754@163.com
5
- * @LastEditTime: 2025-04-08 15:38:16
5
+ * @LastEditTime: 2025-08-12 09:57:22
6
6
  * @Description: 设计面板
7
7
  -->
8
8
  <template>
@@ -45,21 +45,12 @@
45
45
  <div class="flex justify-center mb-1" style="width: 100%">
46
46
  <vxe-input v-model="paperSize.width" type="number" class="w-40" placeholder="宽(mm)" />
47
47
  <div class="flex items-center justify-center w-8">~</div>
48
- <vxe-input
49
- v-model="paperSize.height"
50
- type="number"
51
- class="w-40"
52
- placeholder="高(mm)"
53
- />
48
+ <vxe-input v-model="paperSize.height" type="number" class="w-40" placeholder="高(mm)" />
54
49
  </div>
55
50
  <ut-button style="width: 100%" content="confirm" @tap="handleCustomSize" />
56
51
  </div>
57
52
  <template #reference>
58
- <ut-button
59
- icon="ri-font-size"
60
- content="customSize"
61
- @click.stop="paperPopVisible = true"
62
- />
53
+ <ut-button icon="ri-font-size" content="customSize" @tap.stop="paperPopVisible = true" />
63
54
  </template>
64
55
  </el-popover>
65
56
  <ut-button
@@ -69,22 +60,9 @@
69
60
  auth="import"
70
61
  @tap="handleShowImport()"
71
62
  />
72
- <vxe-button
73
- icon="ri-indeterminate-circle-line "
74
- class="design-custom-button"
75
- @click="handleScale('N')"
76
- />
77
- <vxe-input
78
- v-model="scale.ration"
79
- disabled
80
- align="center"
81
- style="width: 70px; margin-left: 10px"
82
- />
83
- <vxe-button
84
- icon="ri-add-circle-fill "
85
- class="design-custom-button"
86
- @click="handleScale('Y')"
87
- />
63
+ <vxe-button icon="ri-indeterminate-circle-line " class="design-custom-button" @click="handleScale('N')" />
64
+ <vxe-input v-model="scale.ration" disabled align="center" style="width: 70px; margin-left: 10px" />
65
+ <vxe-button icon="ri-add-circle-fill " class="design-custom-button" @click="handleScale('Y')" />
88
66
  <ut-button
89
67
  status="danger"
90
68
  icon="ri-delete-bin-5-fill"
@@ -99,8 +77,7 @@
99
77
  </div>
100
78
  </div>
101
79
  <div style="font-size: 12px; color: red; text-align: center">
102
- 温馨提示:
103
- 蓝色线(页眉)以下,每张纸打印都会重复打印到页面底部;红色线(页尾)以下,每张纸打印都会重复打印到页面底部
80
+ 温馨提示: 蓝色线(页眉)以下,每张纸打印都会重复打印到页面底部;红色线(页尾)以下,每张纸打印都会重复打印到页面底部
104
81
  </div>
105
82
  </el-space>
106
83
  <el-row>
@@ -118,7 +95,7 @@
118
95
  </a>
119
96
  </div>
120
97
  </el-col>
121
- <el-col :span="12" class="drag_item_box" tid="defaultModule.text">
98
+ <el-col :span="12" class="drag_item_box">
122
99
  <div>
123
100
  <a class="ep-draggable-item" tid="defaultModule.image">
124
101
  <span class="ri-image-line" ariel-hidden="true" />
@@ -136,7 +113,7 @@
136
113
  </a>
137
114
  </div>
138
115
  </el-col>
139
- <el-col :span="12" class="drag_item_box" tid="defaultModule.text">
116
+ <el-col :span="12" class="drag_item_box">
140
117
  <div>
141
118
  <a class="ep-draggable-item" tid="defaultModule.table">
142
119
  <span class="ri-table-line" ariel-hidden="true" />
@@ -216,7 +193,7 @@
216
193
 
217
194
  <script setup lang="ts">
218
195
  import { onMounted, reactive, ref, nextTick, onBeforeUnmount } from 'vue';
219
- import { VXETable } from 'vxe-table';
196
+ import { VxeUI } from 'vxe-pc-ui';
220
197
  import { useGlobal } from '@utogether/utils';
221
198
  import to from 'await-to-js';
222
199
  import { clone } from 'xe-utils';
@@ -320,7 +297,7 @@ const handleScale = max => {
320
297
  * @Desc: 参数设置drawer回调,将参数设置dom添加到弹出层中
321
298
  */
322
299
  const handleClearPaper = async () => {
323
- const type = await VXETable.modal.confirm('重绘操作不可逆,您确定继续吗?', '温馨提示');
300
+ const type = await VxeUI.modal.confirm('重绘操作不可逆,您确定继续吗?', '温馨提示');
324
301
  if (type === 'confirm') {
325
302
  hiprintTemplate.clear();
326
303
  }
@@ -329,7 +306,7 @@ const handleShowImport = async () => {
329
306
  showImportView.value = true;
330
307
  };
331
308
  const handleImportJson = async () => {
332
- const type = await VXETable.modal.confirm('导入后将覆盖原有的模板,您确定继续吗?', '温馨提示');
309
+ const type = await VxeUI.modal.confirm('导入后将覆盖原有的模板,您确定继续吗?', '温馨提示');
333
310
  if (type === 'confirm') {
334
311
  handleSave(handleClose);
335
312
  showImportView.value = false;
@@ -523,4 +500,8 @@ onBeforeUnmount(() => {
523
500
  overflow: hidden;
524
501
  overflow: auto;
525
502
  }
503
+
504
+ .hiprint-printElement-image-content img {
505
+ content: url('/logo.png');
506
+ }
526
507
  </style>
@@ -38,6 +38,7 @@ const hanldePreview = (template, data) => {
38
38
  loading.value = true;
39
39
  printerTemplate.value = template;
40
40
  printerData.value = data;
41
+ console.log(template);
41
42
  nextTick(() => {
42
43
  $('#preview_content').html(template.getHtml(data));
43
44
  loading.value = false;