alphah 2 päivää sitten
vanhempi
sitoutus
2cc5a2a576
100 muutettua tiedostoa jossa 229 lisäystä ja 45 poistoa
  1. 182 0
      .claude/plan/java-deployment.md
  2. 1 0
      frontend/dist/css/ConfigInfoDrawer.BmTkjO7p.css
  3. 1 0
      frontend/dist/css/EmployeeForm.BDzwqJRv.css
  4. 0 1
      frontend/dist/css/EmployeeForm.Ch0qQOsN.css
  5. 0 0
      frontend/dist/css/EnterpriseForm.DjLUeW2a.css
  6. 0 0
      frontend/dist/css/index.B4JTNYXL.css
  7. 0 0
      frontend/dist/css/index.BK3BJv-z.css
  8. 0 0
      frontend/dist/css/index.DAYUx1DD.css
  9. 0 0
      frontend/dist/css/index.DMEQt3bI.css
  10. 0 0
      frontend/dist/css/index.DnySoipk.css
  11. 0 0
      frontend/dist/css/index.q6Bwakt4.css
  12. 0 0
      frontend/dist/css/tenant.DvKWAMp1.css
  13. 0 0
      frontend/dist/css/tenant.ytcDopxd.css
  14. 0 0
      frontend/dist/css/tree.sp6bqO9U.css
  15. 0 0
      frontend/dist/css/wechat.BzmjZvX7.css
  16. 4 4
      frontend/dist/index.html
  17. 0 0
      frontend/dist/js/401.1GVmTnJz.js
  18. 0 0
      frontend/dist/js/404.jGGqf-Bk.js
  19. 1 1
      frontend/dist/js/@vueuse.0G3dmZIi.js
  20. 0 0
      frontend/dist/js/AccountOverview.BBKKhao7.js
  21. 0 0
      frontend/dist/js/ChatInput.CCkqhLeH.js
  22. 0 0
      frontend/dist/js/ChatMessages.ryFOumSn.js
  23. 0 0
      frontend/dist/js/ChatNavbar.Rhos6aSa.js
  24. 0 0
      frontend/dist/js/ConfigInfoDrawer.BdEJ-C1T.js
  25. 0 36
      frontend/dist/js/ConfigInfoDrawer.DVlO7z8y.js
  26. 0 0
      frontend/dist/js/ConsumeDetail.D7Jsli3I.js
  27. 0 0
      frontend/dist/js/CreateTableDialog.DXvLw4pJ.js
  28. 0 0
      frontend/dist/js/CreateTableDialog.TTKnAEsW.js
  29. 0 0
      frontend/dist/js/DataDrawer.C2TV6Prq.js
  30. 0 0
      frontend/dist/js/DataDrawer.C3DIlm_T.js
  31. 0 0
      frontend/dist/js/DepartmentDetail.BcImO-yg.js
  32. 0 0
      frontend/dist/js/DepartmentForm.DUzPCbfL.js
  33. 0 0
      frontend/dist/js/DeptTree.CwbByd5C.js
  34. 0 0
      frontend/dist/js/EdgeConfigPanel.Cz_UeH2N.js
  35. 0 0
      frontend/dist/js/EmployeeForm.B7yI1uwE.js
  36. 0 0
      frontend/dist/js/EmployeeForm.CNU79c3R.js
  37. 0 0
      frontend/dist/js/EnterpriseDetail.Bewwlj42.js
  38. 36 0
      frontend/dist/js/EnterpriseForm.DEsU47HX.js
  39. 1 1
      frontend/dist/js/ExternalLink.CUMMTDCE.js
  40. 0 0
      frontend/dist/js/GenBasicStep.Xb_I93fF.js
  41. 0 0
      frontend/dist/js/GenCodeDrawer.CGStgJG8.js
  42. 0 0
      frontend/dist/js/GenCodeDrawer.D_483Wv-.js
  43. 0 0
      frontend/dist/js/GenColumnsStep.Bd6P7BAW.js
  44. 0 0
      frontend/dist/js/GenPreviewStep.BsnYd59L.js
  45. 0 0
      frontend/dist/js/GencodeHelpPanel.KUMGY9dl.js
  46. 0 0
      frontend/dist/js/ImportDbTableDialog.B1KTncev.js
  47. 0 0
      frontend/dist/js/ImportDbTableDialog.CeUsah1p.js
  48. 0 0
      frontend/dist/js/InstitutionDetail.BNXUdM0J.js
  49. 0 0
      frontend/dist/js/InstitutionDetail.DLIeosVN.js
  50. 0 0
      frontend/dist/js/InstitutionForm.Dit1bVuP.js
  51. 0 0
      frontend/dist/js/InviteDialog.0Oj4Bznu.js
  52. 0 0
      frontend/dist/js/IssueBatchForm.BY3rGrep.js
  53. 0 0
      frontend/dist/js/Login.CUwJqToR.js
  54. 0 0
      frontend/dist/js/MessageItem.By6J5tZ0.js
  55. 0 0
      frontend/dist/js/NodeConfigPanel.DuLS71iX.js
  56. 0 0
      frontend/dist/js/PageContent.DzqpeyM-.js
  57. 0 0
      frontend/dist/js/PageContent.v2drBSrF.js
  58. 0 0
      frontend/dist/js/QuotaList.ByZhMORf.js
  59. 0 0
      frontend/dist/js/QuotaList.LcNG8iiy.js
  60. 0 0
      frontend/dist/js/RuleForm.DnGWCEBb.js
  61. 0 0
      frontend/dist/js/RuleList.a3TLOePp.js
  62. 0 0
      frontend/dist/js/ScopeDialog.BIT-MMd2.js
  63. 0 0
      frontend/dist/js/Sidebar.mhqYMlYn.js
  64. 0 0
      frontend/dist/js/TransferDetail.CUeTCyLP.js
  65. 0 0
      frontend/dist/js/UserTableSelect.CMDoGaZ7.js
  66. 0 0
      frontend/dist/js/WelcomeScreen.UyVub-b0.js
  67. 0 0
      frontend/dist/js/WorkflowDesignDrawer.Bau-Pi0u.js
  68. 0 0
      frontend/dist/js/element-plus.DYHj_7Hl.js
  69. 0 0
      frontend/dist/js/github.BAawUF0h.js
  70. 0 0
      frontend/dist/js/github.y2-yT1xr.js
  71. 0 1
      frontend/dist/js/index copy.BSfS3puX.js
  72. 1 0
      frontend/dist/js/index copy.T_E5O_pe.js
  73. 0 0
      frontend/dist/js/index.-DA4GtWd.js
  74. 0 0
      frontend/dist/js/index.4cEjYFHB.js
  75. 0 0
      frontend/dist/js/index.B-bV_5rr.js
  76. 0 0
      frontend/dist/js/index.B1CvNv-2.js
  77. 0 0
      frontend/dist/js/index.B70yBXsV.js
  78. 0 0
      frontend/dist/js/index.BEGDoSsW.js
  79. 0 0
      frontend/dist/js/index.BMDjE5Ff.js
  80. 0 0
      frontend/dist/js/index.BQOrLvg8.js
  81. 0 0
      frontend/dist/js/index.BW-pSpbH.js
  82. 1 1
      frontend/dist/js/index.Bf-VFHtj.js
  83. 0 0
      frontend/dist/js/index.BlMUMSZ_.js
  84. 0 0
      frontend/dist/js/index.BqG6x82c.js
  85. 0 0
      frontend/dist/js/index.BtbIlcon.js
  86. 1 0
      frontend/dist/js/index.BxqZrY66.js
  87. 0 0
      frontend/dist/js/index.C0R-8slU.js
  88. 0 0
      frontend/dist/js/index.C31tVbdp.js
  89. 0 0
      frontend/dist/js/index.C97mG9oZ.js
  90. 0 0
      frontend/dist/js/index.CDN6EbM6.js
  91. 0 0
      frontend/dist/js/index.CEwU1iOS.js
  92. 0 0
      frontend/dist/js/index.CKa_MHEx.js
  93. 0 0
      frontend/dist/js/index.CMIfwlfu.js
  94. 0 0
      frontend/dist/js/index.CMuDvXBN.js
  95. 0 0
      frontend/dist/js/index.CNMbDudn.js
  96. 0 0
      frontend/dist/js/index.CRJTIMgJ.js
  97. 0 0
      frontend/dist/js/index.CRk-zhVu.js
  98. 0 0
      frontend/dist/js/index.CUZywEG4.js
  99. 0 0
      frontend/dist/js/index.CWgYqFcm.js
  100. 0 0
      frontend/dist/js/index.C_8Q-PDA.js

+ 182 - 0
.claude/plan/java-deployment.md

@@ -0,0 +1,182 @@
+# Plan: Java 版本上线 — 精确步骤
+
+## 服务器拓扑
+
+```
+qcsj88888.com / api.qcsj88888.com (HTTPS, Let's Encrypt)
+    ↓ NPM (nginx-proxy-manager, deploy_app-tier)
+    ├── /api/v1/* → 172.20.205.37:8001 (Python, unhealthy)    ← 改成 8081
+    └── 其余 → 172.20.205.37:5173 (frontend, xjz/frontend:2.5.4)
+
+容器:
+- backend: xjz/backend:2.4.0-fix, port 8001, unhealthy
+- frontend: xjz/frontend:2.5.4, port 5173→80
+- postgres: postgres:18.3, 127.0.0.1:5432
+- redis: redis:8.6.2-alpine, deploy_app-tier 网络
+- NPM: deploy_app-tier 网络
+
+网络:payment-platform_app-tier (backend+frontend) + deploy_app-tier (NPM+redis+postgres)
+宿主机IP:172.20.205.37
+Compose文件:/root/payments/code/payment-platform/docker-compose.yml
+```
+
+---
+
+## Step 1: 创建 application-prod.yml(本地)
+
+新建 `java/src/main/resources/application-prod.yml`,覆盖 dev 的 DB/Redis:
+
+```yaml
+spring:
+  datasource:
+    druid:
+      url: jdbc:postgresql://172.20.205.37:5432/payment_platform_prod?currentSchema=public
+      username: admin
+      password: 'xjz#123321'
+  data:
+    redis:
+      host: redis
+      port: 6379
+      database: 0
+      password: '123456#xjz'
+
+logging:
+  level:
+    com.payment.platform: info
+    org.springframework.security: info
+```
+
+注意:Redis host 是 `redis`(容器名),不是宿主机 IP — Java 容器要加入 `deploy_app-tier` 网络才能解析 `redis`。
+
+---
+
+## Step 2: 推送代码到服务器
+
+本地:
+```bash
+cd D:\project2\payment-platform
+git add java/src/main/resources/application-prod.yml
+git commit -m "chore: add application-prod.yml for production deployment"
+git push origin java
+```
+
+服务器:
+```bash
+cd /root/payments/code/payment-platform
+git fetch origin java
+git checkout java
+```
+
+---
+
+## Step 3: 数据库迁移
+
+```bash
+cd /root/payments/code/payment-platform/java/sql
+
+# 逐个执行增量迁移
+for f in 002 003 004 005 006; do
+  docker exec -i postgres psql -U admin -d payment_platform_prod < ${f}_*.sql
+done
+```
+
+---
+
+## Step 4: 构建 Java 镜像
+
+```bash
+cd /root/payments/code/payment-platform/java
+docker run --rm \
+  -v "$PWD":/app \
+  -v "$HOME/.m2":/root/.m2 \
+  -w /app \
+  maven:3.9-eclipse-temurin-21-alpine \
+  mvn package -DskipTests
+
+docker build -t xjz/java-backend:1.0.0 .
+```
+
+---
+
+## Step 5: 更新 docker-compose.yml
+
+在 `/root/payments/code/payment-platform/docker-compose.yml` 中添加 java-backend 服务(**端口用 8001,平替 Python**):
+
+```yaml
+  java-backend:
+    container_name: java-backend
+    image: xjz/java-backend:1.0.0
+    restart: always
+    environment:
+      TZ: "Asia/Shanghai"
+      SPRING_PROFILES_ACTIVE: prod
+      JAVA_OPTS: "-Xms256m -Xmx512m"
+    ports:
+      - "8001:8081"                      # 宿主机 8001 → 容器 8081
+    networks:
+      - app-tier
+      - deploy_app-tier
+    healthcheck:
+      test: ["CMD", "curl", "-f", "http://localhost:8081/api/v1/payment/notify/health"]
+      interval: 30s
+      timeout: 10s
+      retries: 3
+      start_period: 60s
+```
+
+---
+
+## Step 6: 停 Python → 起 Java
+
+```bash
+cd /root/payments/code/payment-platform
+
+# 停掉 Python backend
+docker stop backend
+
+# 起 Java
+docker compose up -d java-backend
+
+# 检查健康状态
+docker compose logs java-backend --tail 30
+```
+
+**NPM 路由不用改** — 目标端口 8001 没变。
+
+---
+
+## Step 7: 验证
+
+```bash
+# 健康检查
+curl https://qcsj88888.com/api/v1/payment/notify/health
+
+# 确认 Java 日志正常
+docker logs java-backend --tail 20
+```
+
+登录 `https://qcsj88888.com`,走一遍核心流程:首页统计、转账记录、消费记录。
+
+---
+
+## Step 8: 观察 & 清理
+
+Step 6 已经停了 Python,确认 Java 稳定后删掉 Python 容器:
+```bash
+docker rm backend
+```
+镜像 `xjz/backend:2.4.0-fix` 保留,不影响回滚。
+
+---
+
+## 回滚
+
+```bash
+docker stop java-backend
+docker rm java-backend
+cd /root/payments/code/payment-platform
+docker compose up -d backend    # 重新起 Python
+```
+NPM 路由没改过,端口也没变,直接起 Python 即可。
+
+数据库迁移是纯加法,不影响 Python 版本。

+ 1 - 0
frontend/dist/css/ConfigInfoDrawer.BmTkjO7p.css

@@ -0,0 +1 @@
+@charset "UTF-8";[data-v-1ced9db4]:root{--menu-background: #fff;--sidebar-logo-background: var(--menu-background);--layout-logo-bg: var(--menu-background);--menu-text: #212121;--menu-active-text: var( --el-menu-active-color );--menu-hover: #e6f4ff;--sidebar-logo-text-color: #333}html.sidebar-color-blue[data-v-1ced9db4]{--menu-background: #304156;--menu-text: #bfcbd9;--menu-active-text: var(--el-menu-active-color);--menu-hover: #263445;--el-menu-hover-bg-color: var(--menu-hover);--sidebar-logo-text-color: #fff}html.dark[data-v-1ced9db4]{--menu-background: var(--layout-nav-bg);--menu-text: #fff;--menu-active-text: var(--el-menu-active-color);--menu-hover: var(--el-menu-hover-bg-color);--sidebar-logo-background: var(--layout-sidebar-logo-bg);--layout-logo-bg: var(--layout-sidebar-logo-bg);--sidebar-logo-text-color: #fff;--w-e-textarea-bg-color: var(--el-bg-color);--w-e-textarea-color: var(--el-text-color-primary);--w-e-textarea-border-color: var(--el-border-color);--w-e-textarea-slight-border-color: var(--el-border-color-lighter);--w-e-textarea-slight-color: var(--el-text-color-secondary);--w-e-textarea-slight-bg-color: var(--el-bg-color-overlay);--w-e-textarea-selected-border-color: var(--el-color-info-light-5);--w-e-textarea-handler-bg-color: var(--el-color-primary);--w-e-toolbar-color: var(--el-text-color-regular);--w-e-toolbar-bg-color: var(--el-bg-color);--w-e-toolbar-active-color: var(--el-text-color-primary);--w-e-toolbar-active-bg-color: var(--el-fill-color-light);--w-e-toolbar-disabled-color: var(--el-text-color-secondary);--w-e-toolbar-border-color: var(--el-border-color-base);--w-e-modal-button-bg-color: var(--el-bg-color-light-3);--w-e-modal-button-border-color: var(--el-border-color-light)}.flex[data-v-1ced9db4]{display:flex}.items-center[data-v-1ced9db4]{align-items:center}.justify-end[data-v-1ced9db4]{justify-content:flex-end}.gap-4[data-v-1ced9db4]{gap:1rem}.mt-6[data-v-1ced9db4]{margin-top:1.5rem}

+ 1 - 0
frontend/dist/css/EmployeeForm.BDzwqJRv.css

@@ -0,0 +1 @@
+.employee-form[data-v-1341037e]{width:100%;max-width:600px;margin:0 auto}.employee-form__inner[data-v-1341037e]{padding:20px}.employee-form__hint[data-v-1341037e]{font-size:12px;color:#909399;margin-top:4px}.employee-form__actions[data-v-1341037e]{display:flex;justify-content:flex-end;gap:12px;margin-top:30px;padding-top:20px;border-top:1px solid #ebeef5}

+ 0 - 1
frontend/dist/css/EmployeeForm.Ch0qQOsN.css

@@ -1 +0,0 @@
-.employee-form[data-v-6e83820d]{width:100%;max-width:600px;margin:0 auto}.employee-form__inner[data-v-6e83820d]{padding:20px}.employee-form__hint[data-v-6e83820d]{font-size:12px;color:#909399;margin-top:4px}.employee-form__actions[data-v-6e83820d]{display:flex;justify-content:flex-end;gap:12px;margin-top:30px;padding-top:20px;border-top:1px solid #ebeef5}

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/css/EnterpriseForm.DjLUeW2a.css


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/css/index.B4JTNYXL.css


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/css/index.BK3BJv-z.css


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/css/index.DAYUx1DD.css


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/css/index.DMEQt3bI.css


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/css/index.DnySoipk.css


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/css/index.q6Bwakt4.css


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/css/tenant.DvKWAMp1.css


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/css/tenant.ytcDopxd.css


+ 0 - 0
frontend/dist/css/system.sp6bqO9U.css → frontend/dist/css/tree.sp6bqO9U.css


+ 0 - 0
frontend/dist/css/xml.BzmjZvX7.css → frontend/dist/css/wechat.BzmjZvX7.css


+ 4 - 4
frontend/dist/index.html

@@ -10,7 +10,7 @@
       content=""
     />
     <title>Pyament Platform</title>
-    <script type="module" crossorigin src="/js/index.B1CvNv-2.js"></script>
+    <script type="module" crossorigin src="/js/index.KDUAIHt0.js"></script>
     <link rel="modulepreload" crossorigin href="/js/dayjs.DCWbrgJ0.js">
     <link rel="modulepreload" crossorigin href="/js/@vue.DbmRtknU.js">
     <link rel="modulepreload" crossorigin href="/js/lodash-es.DaM9m3L-.js">
@@ -20,9 +20,9 @@
     <link rel="modulepreload" crossorigin href="/js/memoize-one.BAtLgO95.js">
     <link rel="modulepreload" crossorigin href="/js/normalize-wheel-es.TzhA1irr.js">
     <link rel="modulepreload" crossorigin href="/js/@floating-ui.8vigAAFV.js">
-    <link rel="modulepreload" crossorigin href="/js/element-plus.DUy1TWHM.js">
+    <link rel="modulepreload" crossorigin href="/js/element-plus.DYHj_7Hl.js">
     <link rel="modulepreload" crossorigin href="/js/pinia.BlfmsheH.js">
-    <link rel="modulepreload" crossorigin href="/js/@vueuse.Dnsd2JKX.js">
+    <link rel="modulepreload" crossorigin href="/js/@vueuse.0G3dmZIi.js">
     <link rel="modulepreload" crossorigin href="/js/@intlify.DPMNdUn_.js">
     <link rel="modulepreload" crossorigin href="/js/vue-i18n.DXLOBfKS.js">
     <link rel="modulepreload" crossorigin href="/js/nprogress.BTjJXJ-u.js">
@@ -30,6 +30,7 @@
     <link rel="modulepreload" crossorigin href="/js/codemirror.CYSLATvI.js">
     <link rel="modulepreload" crossorigin href="/js/vue.MGxsMDTR.js">
     <link rel="modulepreload" crossorigin href="/js/vue-web-terminal.D-rog7dz.js">
+    <link rel="modulepreload" crossorigin href="/js/vue-router.yxIMtaxH.js">
     <link rel="modulepreload" crossorigin href="/js/axios.Da-QW0H8.js">
     <link rel="modulepreload" crossorigin href="/js/es-errors.DTEWvbA_.js">
     <link rel="modulepreload" crossorigin href="/js/object-inspect.DvQZIv3_.js">
@@ -50,7 +51,6 @@
     <link rel="modulepreload" crossorigin href="/js/side-channel-weakmap.DpSeWE6i.js">
     <link rel="modulepreload" crossorigin href="/js/side-channel.4q28KFJj.js">
     <link rel="modulepreload" crossorigin href="/js/qs.BQjOrGHM.js">
-    <link rel="modulepreload" crossorigin href="/js/vue-router.yxIMtaxH.js">
     <link rel="modulepreload" crossorigin href="/js/pinia-plugin-persistedstate.COWkwNh5.js">
     <link rel="stylesheet" crossorigin href="/css/element-plus.C5wfcs9c.css">
     <link rel="stylesheet" crossorigin href="/css/nprogress.BgDCIyLK.css">

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/401.1GVmTnJz.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/404.jGGqf-Bk.js


+ 1 - 1
frontend/dist/js/@vueuse.Dnsd2JKX.js → frontend/dist/js/@vueuse.0G3dmZIi.js

@@ -17,4 +17,4 @@ function ne(e,t={}){const{controls:n=!1,navigator:a=Z}=t,l=X(()=>a&&"permissions
 // @__NO_SIDE_EFFECTS__
 function he(t,n,a,l={}){var r,i,u;const{clone:c=!1,passive:d=!1,eventName:v,deep:p=!1,defaultValue:g,shouldEmit:w}=l,h=m(),y=a||(null==h?void 0:h.emit)||(null==(r=null==h?void 0:h.$emit)?void 0:r.bind(h))||(null==(u=null==(i=null==h?void 0:h.proxy)?void 0:i.$emit)?void 0:u.bind(null==h?void 0:h.proxy));let b=v;b=b||`update:${n.toString()}`;const S=e=>{return c?"function"==typeof c?c(e):(t=e,JSON.parse(JSON.stringify(t))):e;var t},F=()=>void 0!==t[n]?S(t[n]):g,D=e=>{w?w(e)&&y(b,e):y(b,e)};if(d){const e=F(),a=f(e);let l=!1;return o(()=>t[n],e=>{l||(l=!0,a.value=S(e),s(()=>l=!1))}),o(a,e=>{l||e===t[n]&&!p||D(e)},{deep:p}),a}return e({get:()=>F(),set(e){D(e)}})}
 // @__NO_SIDE_EFFECTS__
-function ye(t={}){const{window:n=_,initialWidth:a=Number.POSITIVE_INFINITY,initialHeight:l=Number.POSITIVE_INFINITY,listenOrientation:u=!0,includeScrollbar:s=!0,type:c="inner"}=t,d=r(a),v=r(l),f=()=>{if(n)if("outer"===c)d.value=n.outerWidth,v.value=n.outerHeight;else if("visual"===c&&n.visualViewport){const{width:e,height:t,scale:a}=n.visualViewport;d.value=Math.round(e*a),v.value=Math.round(t*a)}else s?(d.value=n.innerWidth,v.value=n.innerHeight):(d.value=n.document.documentElement.clientWidth,v.value=n.document.documentElement.clientHeight)};f(),Y(f);const m={passive:!0};if(G("resize",f,m),n&&"visual"===c&&n.visualViewport&&G(n.visualViewport,"resize",f,m),u){const t=function(t,n={}){const{window:a=_,ssrWidth:l=te()}=n,o=X(()=>a&&"matchMedia"in a&&"function"==typeof a.matchMedia),u=r("number"==typeof l),s=r(),c=r(!1);return b(()=>{if(u.value){u.value=!o.value;const e=i(t).split(",");return void(c.value=e.some(e=>{const t=e.includes("not all"),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),a=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let o=Boolean(n||a);return n&&o&&(o=l>=x(n[1])),a&&o&&(o=l<=x(a[1])),t?!o:o}))}o.value&&(s.value=a.matchMedia(i(t)),c.value=s.value.matches)}),G(s,"change",e=>{c.value=e.matches},{passive:!0}),e(()=>c.value)}("(orientation: portrait)");o(t,()=>f())}return{width:d,height:v}}export{de as a,ae as b,we as c,W as d,L as e,ye as f,fe as g,ce as h,j as i,K as o,Y as t,he as u};
+function ye(t={}){const{window:n=_,initialWidth:a=Number.POSITIVE_INFINITY,initialHeight:l=Number.POSITIVE_INFINITY,listenOrientation:u=!0,includeScrollbar:s=!0,type:c="inner"}=t,d=r(a),v=r(l),f=()=>{if(n)if("outer"===c)d.value=n.outerWidth,v.value=n.outerHeight;else if("visual"===c&&n.visualViewport){const{width:e,height:t,scale:a}=n.visualViewport;d.value=Math.round(e*a),v.value=Math.round(t*a)}else s?(d.value=n.innerWidth,v.value=n.innerHeight):(d.value=n.document.documentElement.clientWidth,v.value=n.document.documentElement.clientHeight)};f(),Y(f);const m={passive:!0};if(G("resize",f,m),n&&"visual"===c&&n.visualViewport&&G(n.visualViewport,"resize",f,m),u){const t=function(t,n={}){const{window:a=_,ssrWidth:l=te()}=n,o=X(()=>a&&"matchMedia"in a&&"function"==typeof a.matchMedia),u=r("number"==typeof l),s=r(),c=r(!1);return b(()=>{if(u.value){u.value=!o.value;const e=i(t).split(",");return void(c.value=e.some(e=>{const t=e.includes("not all"),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),a=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let o=Boolean(n||a);return n&&o&&(o=l>=x(n[1])),a&&o&&(o=l<=x(a[1])),t?!o:o}))}o.value&&(s.value=a.matchMedia(i(t)),c.value=s.value.matches)}),G(s,"change",e=>{c.value=e.matches},{passive:!0}),e(()=>c.value)}("(orientation: portrait)");o(t,()=>f())}return{width:d,height:v}}export{de as a,ae as b,we as c,W as d,L as e,ye as f,fe as g,j as h,ce as i,K as o,Y as t,he as u};

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/AccountOverview.BBKKhao7.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/ChatInput.CCkqhLeH.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/ChatMessages.ryFOumSn.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/ChatNavbar.Rhos6aSa.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/ConfigInfoDrawer.BdEJ-C1T.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 36
frontend/dist/js/ConfigInfoDrawer.DVlO7z8y.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/ConsumeDetail.D7Jsli3I.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/CreateTableDialog.DXvLw4pJ.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/CreateTableDialog.TTKnAEsW.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/DataDrawer.C2TV6Prq.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/DataDrawer.C3DIlm_T.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/DepartmentDetail.BcImO-yg.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/DepartmentForm.DUzPCbfL.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/DeptTree.CwbByd5C.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/EdgeConfigPanel.Cz_UeH2N.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/EmployeeForm.B7yI1uwE.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/EmployeeForm.CNU79c3R.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/EnterpriseDetail.Bewwlj42.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 36 - 0
frontend/dist/js/EnterpriseForm.DEsU47HX.js


+ 1 - 1
frontend/dist/js/ExternalLink.DMc8sdse.js → frontend/dist/js/ExternalLink.CUMMTDCE.js

@@ -1 +1 @@
-import{u as s}from"./vue-router.yxIMtaxH.js";import{M as i,aL as r,u as t,v as o,q as e}from"./@vue.DbmRtknU.js";import{_ as p}from"./index.B1CvNv-2.js";import"./dayjs.DCWbrgJ0.js";import"./element-plus.DUy1TWHM.js";import"./lodash-es.DaM9m3L-.js";import"./async-validator.j0i5Y79Y.js";import"./@popperjs.DxtSUbXb.js";import"./@ctrl.BEgk5vdO.js";import"./memoize-one.BAtLgO95.js";import"./normalize-wheel-es.TzhA1irr.js";import"./@floating-ui.8vigAAFV.js";import"./pinia.BlfmsheH.js";import"./@vueuse.Dnsd2JKX.js";import"./vue-i18n.DXLOBfKS.js";import"./@intlify.DPMNdUn_.js";import"./nprogress.BTjJXJ-u.js";import"./codemirror.CYSLATvI.js";import"./diff-match-patch.DkK4wJpa.js";import"./vue-web-terminal.D-rog7dz.js";import"./vue.MGxsMDTR.js";/* empty css                    */import"./axios.Da-QW0H8.js";import"./qs.BQjOrGHM.js";import"./side-channel.4q28KFJj.js";import"./es-errors.DTEWvbA_.js";import"./object-inspect.DvQZIv3_.js";import"./side-channel-list.Do0-XmF5.js";import"./side-channel-map.DNHQ53lO.js";import"./get-intrinsic.Bbe5x-9b.js";import"./es-object-atoms.CyiuHMUS.js";import"./math-intrinsics.pM-JTNwN.js";import"./gopd.BudZp56J.js";import"./es-define-property.F0aoeP8o.js";import"./has-symbols.BcO-SUVM.js";import"./get-proto.Cb_fpw-j.js";import"./dunder-proto.WEH3rgQR.js";import"./call-bind-apply-helpers.DJjIjCF_.js";import"./function-bind.DrnB-baK.js";import"./hasown.BXcyoiLU.js";import"./call-bound.22gFUC2Q.js";import"./side-channel-weakmap.DpSeWE6i.js";import"./pinia-plugin-persistedstate.COWkwNh5.js";const m={class:"external-link-container"},a=["src"],n=p(i({__name:"ExternalLink",setup(i){const p=s(),n=e(()=>{var s;const i=null==(s=p.meta)?void 0:s.params,r=null==i?void 0:i.find(s=>"url"===s.key);return(null==r?void 0:r.value)||""});return(s,i)=>(r(),t("div",m,[o("iframe",{src:n.value,class:"external-link-iframe",frameborder:"0",width:"100%",height:"100%"},null,8,a)]))}}),[["__scopeId","data-v-ddb74517"]]);export{n as default};
+import{u as s}from"./vue-router.yxIMtaxH.js";import{M as i,aL as r,u as t,v as o,q as e}from"./@vue.DbmRtknU.js";import{_ as p}from"./index.KDUAIHt0.js";import"./dayjs.DCWbrgJ0.js";import"./element-plus.DYHj_7Hl.js";import"./lodash-es.DaM9m3L-.js";import"./async-validator.j0i5Y79Y.js";import"./@popperjs.DxtSUbXb.js";import"./@ctrl.BEgk5vdO.js";import"./memoize-one.BAtLgO95.js";import"./normalize-wheel-es.TzhA1irr.js";import"./@floating-ui.8vigAAFV.js";import"./pinia.BlfmsheH.js";import"./@vueuse.0G3dmZIi.js";import"./vue-i18n.DXLOBfKS.js";import"./@intlify.DPMNdUn_.js";import"./nprogress.BTjJXJ-u.js";import"./codemirror.CYSLATvI.js";import"./diff-match-patch.DkK4wJpa.js";import"./vue-web-terminal.D-rog7dz.js";import"./vue.MGxsMDTR.js";/* empty css                    */import"./axios.Da-QW0H8.js";import"./qs.BQjOrGHM.js";import"./side-channel.4q28KFJj.js";import"./es-errors.DTEWvbA_.js";import"./object-inspect.DvQZIv3_.js";import"./side-channel-list.Do0-XmF5.js";import"./side-channel-map.DNHQ53lO.js";import"./get-intrinsic.Bbe5x-9b.js";import"./es-object-atoms.CyiuHMUS.js";import"./math-intrinsics.pM-JTNwN.js";import"./gopd.BudZp56J.js";import"./es-define-property.F0aoeP8o.js";import"./has-symbols.BcO-SUVM.js";import"./get-proto.Cb_fpw-j.js";import"./dunder-proto.WEH3rgQR.js";import"./call-bind-apply-helpers.DJjIjCF_.js";import"./function-bind.DrnB-baK.js";import"./hasown.BXcyoiLU.js";import"./call-bound.22gFUC2Q.js";import"./side-channel-weakmap.DpSeWE6i.js";import"./pinia-plugin-persistedstate.COWkwNh5.js";const m={class:"external-link-container"},a=["src"],n=p(i({__name:"ExternalLink",setup(i){const p=s(),n=e(()=>{var s;const i=null==(s=p.meta)?void 0:s.params,r=null==i?void 0:i.find(s=>"url"===s.key);return(null==r?void 0:r.value)||""});return(s,i)=>(r(),t("div",m,[o("iframe",{src:n.value,class:"external-link-iframe",frameborder:"0",width:"100%",height:"100%"},null,8,a)]))}}),[["__scopeId","data-v-ddb74517"]]);export{n as default};

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/GenBasicStep.Xb_I93fF.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/GenCodeDrawer.CGStgJG8.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/GenCodeDrawer.D_483Wv-.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/GenColumnsStep.Bd6P7BAW.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/GenPreviewStep.BsnYd59L.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/GencodeHelpPanel.KUMGY9dl.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/ImportDbTableDialog.B1KTncev.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/ImportDbTableDialog.CeUsah1p.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/InstitutionDetail.BNXUdM0J.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/InstitutionDetail.DLIeosVN.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/InstitutionForm.Dit1bVuP.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/InviteDialog.0Oj4Bznu.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/IssueBatchForm.BY3rGrep.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/Login.CUwJqToR.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/MessageItem.By6J5tZ0.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/NodeConfigPanel.DuLS71iX.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/PageContent.DzqpeyM-.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/PageContent.v2drBSrF.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/QuotaList.ByZhMORf.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/QuotaList.LcNG8iiy.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/RuleForm.DnGWCEBb.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/RuleList.a3TLOePp.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/ScopeDialog.BIT-MMd2.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/Sidebar.mhqYMlYn.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/TransferDetail.CUeTCyLP.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/UserTableSelect.CMDoGaZ7.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/WelcomeScreen.UyVub-b0.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/WorkflowDesignDrawer.Bau-Pi0u.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/element-plus.DYHj_7Hl.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/github.BAawUF0h.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/github.y2-yT1xr.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 1
frontend/dist/js/index copy.BSfS3puX.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1 - 0
frontend/dist/js/index copy.T_E5O_pe.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.-DA4GtWd.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.4cEjYFHB.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.B-bV_5rr.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.B1CvNv-2.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.B70yBXsV.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.BEGDoSsW.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.BMDjE5Ff.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.BQOrLvg8.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.BW-pSpbH.js


+ 1 - 1
frontend/dist/js/index.URLtcgh2.js → frontend/dist/js/index.Bf-VFHtj.js

@@ -1 +1 @@
-import{e,f as a}from"./element-plus.DUy1TWHM.js";import{M as t,bq as i,bE as u,aL as l,s as n,bJ as o,v as p,I as s,au as r,aq as d}from"./@vue.DbmRtknU.js";import{_ as g}from"./index.B1CvNv-2.js";const m=g(t({__name:"index",props:d({total:{type:Number,default:0},pageSizes:{type:Array,default:()=>[10,20,30,50]},layout:{type:String,default:"total, sizes, prev, pager, next, jumper"},background:{type:Boolean,default:!0},autoScroll:{type:Boolean,default:!0},hidden:{type:Boolean,default:!1}},{page:{type:Number,required:!0,default:1},pageModifiers:{},limit:{type:Number,required:!0,default:10},limitModifiers:{}}),emits:d(["pagination"],["update:page","update:limit"]),setup(t,{emit:d}){const g=t,m=d,c=i(t,"page"),f=i(t,"limit");function v(e){c.value=1,m("pagination",{page:c.value,limit:e})}function y(e){m("pagination",{page:e,limit:f.value})}return u(()=>g.total,e=>{const a=Math.ceil(e/f.value);e>0&&c.value>a&&(c.value=a,m("pagination",{page:c.value,limit:f.value}))}),(i,u)=>{const d=a,g=e;return l(),n(g,null,{default:o(()=>[p("div",{class:r([{hidden:t.hidden},"pagination"])},[s(d,{"current-page":c.value,"onUpdate:currentPage":u[0]||(u[0]=e=>c.value=e),"page-size":f.value,"onUpdate:pageSize":u[1]||(u[1]=e=>f.value=e),background:t.background,layout:t.layout,"page-sizes":t.pageSizes,total:t.total,onSizeChange:v,onCurrentChange:y},null,8,["current-page","page-size","background","layout","page-sizes","total"])],2)]),_:1})}}}),[["__scopeId","data-v-02079684"]]);export{m as _};
+import{e,f as a}from"./element-plus.DYHj_7Hl.js";import{M as t,bq as i,bE as u,aL as l,s as n,bJ as o,v as p,I as s,au as r,aq as d}from"./@vue.DbmRtknU.js";import{_ as g}from"./index.KDUAIHt0.js";const m=g(t({__name:"index",props:d({total:{type:Number,default:0},pageSizes:{type:Array,default:()=>[10,20,30,50]},layout:{type:String,default:"total, sizes, prev, pager, next, jumper"},background:{type:Boolean,default:!0},autoScroll:{type:Boolean,default:!0},hidden:{type:Boolean,default:!1}},{page:{type:Number,required:!0,default:1},pageModifiers:{},limit:{type:Number,required:!0,default:10},limitModifiers:{}}),emits:d(["pagination"],["update:page","update:limit"]),setup(t,{emit:d}){const g=t,m=d,c=i(t,"page"),f=i(t,"limit");function v(e){c.value=1,m("pagination",{page:c.value,limit:e})}function y(e){m("pagination",{page:e,limit:f.value})}return u(()=>g.total,e=>{const a=Math.ceil(e/f.value);e>0&&c.value>a&&(c.value=a,m("pagination",{page:c.value,limit:f.value}))}),(i,u)=>{const d=a,g=e;return l(),n(g,null,{default:o(()=>[p("div",{class:r([{hidden:t.hidden},"pagination"])},[s(d,{"current-page":c.value,"onUpdate:currentPage":u[0]||(u[0]=e=>c.value=e),"page-size":f.value,"onUpdate:pageSize":u[1]||(u[1]=e=>f.value=e),background:t.background,layout:t.layout,"page-sizes":t.pageSizes,total:t.total,onSizeChange:v,onCurrentChange:y},null,8,["current-page","page-size","background","layout","page-sizes","total"])],2)]),_:1})}}}),[["__scopeId","data-v-02079684"]]);export{m as _};

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.BlMUMSZ_.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.BqG6x82c.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.BtbIlcon.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1 - 0
frontend/dist/js/index.BxqZrY66.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.C0R-8slU.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.C31tVbdp.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.C97mG9oZ.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.CDN6EbM6.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.CEwU1iOS.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.CKa_MHEx.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.CMIfwlfu.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.CMuDvXBN.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.CNMbDudn.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.CRJTIMgJ.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.CRk-zhVu.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.CUZywEG4.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.CWgYqFcm.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
frontend/dist/js/index.C_8Q-PDA.js


Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä