#93 门户首页QHSE跳转

Birleştirildi
yanghao shuzhihua/master 1 gün önce içindeki shuzhihua/qhse_ptw işlemelerini 10 ile birleştirdi

+ 1 - 0
package.json

@@ -41,6 +41,7 @@
     "@types/echarts": "^5.0.0",
     "@types/js-base64": "^3.3.1",
     "@videojs-player/vue": "^1.0.0",
+    "@vuepic/vue-datepicker": "^14.0.0",
     "@vueuse/core": "^10.9.0",
     "@wangeditor/editor": "^5.1.23",
     "@wangeditor/editor-for-vue": "^5.1.10",

+ 92 - 19
pnpm-lock.yaml

@@ -56,6 +56,9 @@ importers:
       '@videojs-player/vue':
         specifier: ^1.0.0
         version: 1.0.0(@types/video.js@7.3.58)(video.js@7.21.6)(vue@3.5.12(typescript@5.3.3))
+      '@vuepic/vue-datepicker':
+        specifier: ^14.0.0
+        version: 14.0.0(vue@3.5.12(typescript@5.3.3))
       '@vueuse/core':
         specifier: ^10.9.0
         version: 10.11.1(vue@3.5.12(typescript@5.3.3))
@@ -1137,6 +1140,9 @@ packages:
     resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==}
     engines: {node: '>=10'}
 
+  '@date-fns/tz@1.5.0':
+    resolution: {integrity: sha512-lwYN/vDPeNRULcepoE/LO2Pgx+7/RV+S9ARfbc9lr2DtGkOD7pAiruHvbR1RX3Qyf6ja47EWJDMsNK5vK08DJg==}
+
   '@dual-bundle/import-meta-resolve@4.1.0':
     resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==}
 
@@ -1309,12 +1315,24 @@ packages:
   '@floating-ui/core@1.6.8':
     resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==}
 
+  '@floating-ui/core@1.7.5':
+    resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==}
+
   '@floating-ui/dom@1.6.12':
     resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==}
 
+  '@floating-ui/dom@1.7.6':
+    resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==}
+
+  '@floating-ui/utils@0.2.11':
+    resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==}
+
   '@floating-ui/utils@0.2.8':
     resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==}
 
+  '@floating-ui/vue@1.1.11':
+    resolution: {integrity: sha512-HzHKCNVxnGS35r9fCHBc3+uCnjw9IWIlCPL683cGgM9Kgj2BiAl8x1mS7vtvP6F9S/e/q4O6MApwSHj8hNLGfw==}
+
   '@form-create/component-elm-checkbox@3.2.14':
     resolution: {integrity: sha512-VtjRvNxbKpjp0bNYQ2BuLRVIQHZdPpYn3Hy0xSuzv6QjEDnffMdmawHImPSlp8wAW3b94wZdHMLMqpyMew8bBw==}
 
@@ -1570,42 +1588,36 @@ packages:
     engines: {node: '>= 10.0.0'}
     cpu: [arm]
     os: [linux]
-    libc: [glibc]
 
   '@parcel/watcher-linux-arm-musl@2.5.0':
     resolution: {integrity: sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==}
     engines: {node: '>= 10.0.0'}
     cpu: [arm]
     os: [linux]
-    libc: [musl]
 
   '@parcel/watcher-linux-arm64-glibc@2.5.0':
     resolution: {integrity: sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==}
     engines: {node: '>= 10.0.0'}
     cpu: [arm64]
     os: [linux]
-    libc: [glibc]
 
   '@parcel/watcher-linux-arm64-musl@2.5.0':
     resolution: {integrity: sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==}
     engines: {node: '>= 10.0.0'}
     cpu: [arm64]
     os: [linux]
-    libc: [musl]
 
   '@parcel/watcher-linux-x64-glibc@2.5.0':
     resolution: {integrity: sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==}
     engines: {node: '>= 10.0.0'}
     cpu: [x64]
     os: [linux]
-    libc: [glibc]
 
   '@parcel/watcher-linux-x64-musl@2.5.0':
     resolution: {integrity: sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==}
     engines: {node: '>= 10.0.0'}
     cpu: [x64]
     os: [linux]
-    libc: [musl]
 
   '@parcel/watcher-win32-arm64@2.5.0':
     resolution: {integrity: sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==}
@@ -1714,55 +1726,46 @@ packages:
     resolution: {integrity: sha512-9OwUnK/xKw6DyRlgx8UizeqRFOfi9mf5TYCw1uolDaJSbUmBxP85DE6T4ouCMoN6pXw8ZoTeZCSEfSaYo+/s1w==}
     cpu: [arm]
     os: [linux]
-    libc: [glibc]
 
   '@rollup/rollup-linux-arm-musleabihf@4.27.4':
     resolution: {integrity: sha512-Vgdo4fpuphS9V24WOV+KwkCVJ72u7idTgQaBoLRD0UxBAWTF9GWurJO9YD9yh00BzbkhpeXtm6na+MvJU7Z73A==}
     cpu: [arm]
     os: [linux]
-    libc: [musl]
 
   '@rollup/rollup-linux-arm64-gnu@4.27.4':
     resolution: {integrity: sha512-pleyNgyd1kkBkw2kOqlBx+0atfIIkkExOTiifoODo6qKDSpnc6WzUY5RhHdmTdIJXBdSnh6JknnYTtmQyobrVg==}
     cpu: [arm64]
     os: [linux]
-    libc: [glibc]
 
   '@rollup/rollup-linux-arm64-musl@4.27.4':
     resolution: {integrity: sha512-caluiUXvUuVyCHr5DxL8ohaaFFzPGmgmMvwmqAITMpV/Q+tPoaHZ/PWa3t8B2WyoRcIIuu1hkaW5KkeTDNSnMA==}
     cpu: [arm64]
     os: [linux]
-    libc: [musl]
 
   '@rollup/rollup-linux-powerpc64le-gnu@4.27.4':
     resolution: {integrity: sha512-FScrpHrO60hARyHh7s1zHE97u0KlT/RECzCKAdmI+LEoC1eDh/RDji9JgFqyO+wPDb86Oa/sXkily1+oi4FzJQ==}
     cpu: [ppc64]
     os: [linux]
-    libc: [glibc]
 
   '@rollup/rollup-linux-riscv64-gnu@4.27.4':
     resolution: {integrity: sha512-qyyprhyGb7+RBfMPeww9FlHwKkCXdKHeGgSqmIXw9VSUtvyFZ6WZRtnxgbuz76FK7LyoN8t/eINRbPUcvXB5fw==}
     cpu: [riscv64]
     os: [linux]
-    libc: [glibc]
 
   '@rollup/rollup-linux-s390x-gnu@4.27.4':
     resolution: {integrity: sha512-PFz+y2kb6tbh7m3A7nA9++eInGcDVZUACulf/KzDtovvdTizHpZaJty7Gp0lFwSQcrnebHOqxF1MaKZd7psVRg==}
     cpu: [s390x]
     os: [linux]
-    libc: [glibc]
 
   '@rollup/rollup-linux-x64-gnu@4.27.4':
     resolution: {integrity: sha512-Ni8mMtfo+o/G7DVtweXXV/Ol2TFf63KYjTtoZ5f078AUgJTmaIJnj4JFU7TK/9SVWTaSJGxPi5zMDgK4w+Ez7Q==}
     cpu: [x64]
     os: [linux]
-    libc: [glibc]
 
   '@rollup/rollup-linux-x64-musl@4.27.4':
     resolution: {integrity: sha512-5AeeAF1PB9TUzD+3cROzFTnAJAcVUGLuR8ng0E0WXGkYhp6RD6L+6szYVX+64Rs0r72019KHZS1ka1q+zU/wUw==}
     cpu: [x64]
     os: [linux]
-    libc: [musl]
 
   '@rollup/rollup-win32-arm64-msvc@4.27.4':
     resolution: {integrity: sha512-yOpVsA4K5qVwu2CaS3hHxluWIK5HQTjNV4tWjQXluMiiiu4pJj4BN98CvxohNCpcjMeTXk/ZMJBRbgRg8HBB6A==}
@@ -1808,28 +1811,24 @@ packages:
     engines: {node: '>=10'}
     cpu: [arm64]
     os: [linux]
-    libc: [glibc]
 
   '@swc/core-linux-arm64-musl@1.9.3':
     resolution: {integrity: sha512-tzVH480RY6RbMl/QRgh5HK3zn1ZTFsThuxDGo6Iuk1MdwIbdFYUY034heWUTI4u3Db97ArKh0hNL0xhO3+PZdg==}
     engines: {node: '>=10'}
     cpu: [arm64]
     os: [linux]
-    libc: [musl]
 
   '@swc/core-linux-x64-gnu@1.9.3':
     resolution: {integrity: sha512-ivXXBRDXDc9k4cdv10R21ccBmGebVOwKXT/UdH1PhxUn9m/h8erAWjz5pcELwjiMf27WokqPgaWVfaclDbgE+w==}
     engines: {node: '>=10'}
     cpu: [x64]
     os: [linux]
-    libc: [glibc]
 
   '@swc/core-linux-x64-musl@1.9.3':
     resolution: {integrity: sha512-ILsGMgfnOz1HwdDz+ZgEuomIwkP1PHT6maigZxaCIuC6OPEhKE8uYna22uU63XvYcLQvZYDzpR3ms47WQPuNEg==}
     engines: {node: '>=10'}
     cpu: [x64]
     os: [linux]
-    libc: [musl]
 
   '@swc/core-win32-arm64-msvc@1.9.3':
     resolution: {integrity: sha512-e+XmltDVIHieUnNJHtspn6B+PCcFOMYXNJB1GqoCcyinkEIQNwC8KtWgMqUucUbEWJkPc35NHy9k8aCXRmw9Kg==}
@@ -2041,6 +2040,9 @@ packages:
   '@types/web-bluetooth@0.0.20':
     resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
 
+  '@types/web-bluetooth@0.0.21':
+    resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==}
+
   '@types/ws@8.18.1':
     resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
 
@@ -2421,15 +2423,34 @@ packages:
   '@vue/shared@3.5.13':
     resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==}
 
+  '@vuepic/vue-datepicker@14.0.0':
+    resolution: {integrity: sha512-zDl1U2MRk+udu0gYA3pdY2f0O+ckqUPiKgWmp7qQV3D7CRgDKYvUXFpnt+rgMQ+uLydtlRqzy4eS6nvtVjNS4A==}
+    engines: {node: '>=18.12.0'}
+    peerDependencies:
+      vue: '>=3.5.0'
+
   '@vueuse/core@10.11.1':
     resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==}
 
+  '@vueuse/core@14.3.0':
+    resolution: {integrity: sha512-aHfz47g0ZhMtTVHmIzMVpJy8ePhhOy68GY5bv110+5DVtZ+W7BsOx+m61UNQqfrWyPztIHIanWa3E2tib3NFIw==}
+    peerDependencies:
+      vue: ^3.5.0
+
   '@vueuse/metadata@10.11.1':
     resolution: {integrity: sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==}
 
+  '@vueuse/metadata@14.3.0':
+    resolution: {integrity: sha512-BwxmbAzwAVF50+MW57GXOUEV61nFBGnlBvrTqj49PqWJu3uw7hdu72ztXeZ33RdZtDY6kO+bfCAE1PCn88Tktw==}
+
   '@vueuse/shared@10.11.1':
     resolution: {integrity: sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==}
 
+  '@vueuse/shared@14.3.0':
+    resolution: {integrity: sha512-bZpge9eSXwa4ToSiqJ7j6KRwhAsneMFoSz3LMWKQDkqimm3D/tbFlrklrs/IOqC8tEcYmXQZJ6N0UrjhBirVCg==}
+    peerDependencies:
+      vue: ^3.5.0
+
   '@wangeditor/basic-modules@1.1.7':
     resolution: {integrity: sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==}
     peerDependencies:
@@ -3266,6 +3287,9 @@ packages:
   date-fns@4.1.0:
     resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==}
 
+  date-fns@4.4.0:
+    resolution: {integrity: sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==}
+
   date.js@0.3.3:
     resolution: {integrity: sha512-HgigOS3h3k6HnW011nAb43c5xx5rBXk8P2v/WIT9Zv4koIaVXiH2BURguI78VVp+5Qc076T7OR378JViCnZtBw==}
 
@@ -7588,6 +7612,8 @@ snapshots:
 
   '@ctrl/tinycolor@3.6.1': {}
 
+  '@date-fns/tz@1.5.0': {}
+
   '@dual-bundle/import-meta-resolve@4.1.0': {}
 
   '@element-plus/icons-vue@2.3.1(vue@3.5.12(typescript@5.3.3))':
@@ -7694,13 +7720,33 @@ snapshots:
     dependencies:
       '@floating-ui/utils': 0.2.8
 
+  '@floating-ui/core@1.7.5':
+    dependencies:
+      '@floating-ui/utils': 0.2.11
+
   '@floating-ui/dom@1.6.12':
     dependencies:
       '@floating-ui/core': 1.6.8
       '@floating-ui/utils': 0.2.8
 
+  '@floating-ui/dom@1.7.6':
+    dependencies:
+      '@floating-ui/core': 1.7.5
+      '@floating-ui/utils': 0.2.11
+
+  '@floating-ui/utils@0.2.11': {}
+
   '@floating-ui/utils@0.2.8': {}
 
+  '@floating-ui/vue@1.1.11(vue@3.5.12(typescript@5.3.3))':
+    dependencies:
+      '@floating-ui/dom': 1.7.6
+      '@floating-ui/utils': 0.2.11
+      vue-demi: 0.14.10(vue@3.5.12(typescript@5.3.3))
+    transitivePeerDependencies:
+      - '@vue/composition-api'
+      - vue
+
   '@form-create/component-elm-checkbox@3.2.14':
     dependencies:
       '@form-create/utils': 3.2.14
@@ -8409,6 +8455,8 @@ snapshots:
 
   '@types/web-bluetooth@0.0.20': {}
 
+  '@types/web-bluetooth@0.0.21': {}
+
   '@types/ws@8.18.1':
     dependencies:
       '@types/node': 20.17.9
@@ -9025,6 +9073,16 @@ snapshots:
 
   '@vue/shared@3.5.13': {}
 
+  '@vuepic/vue-datepicker@14.0.0(vue@3.5.12(typescript@5.3.3))':
+    dependencies:
+      '@date-fns/tz': 1.5.0
+      '@floating-ui/vue': 1.1.11(vue@3.5.12(typescript@5.3.3))
+      '@vueuse/core': 14.3.0(vue@3.5.12(typescript@5.3.3))
+      date-fns: 4.4.0
+      vue: 3.5.12(typescript@5.3.3)
+    transitivePeerDependencies:
+      - '@vue/composition-api'
+
   '@vueuse/core@10.11.1(vue@3.5.12(typescript@5.3.3))':
     dependencies:
       '@types/web-bluetooth': 0.0.20
@@ -9035,8 +9093,17 @@ snapshots:
       - '@vue/composition-api'
       - vue
 
+  '@vueuse/core@14.3.0(vue@3.5.12(typescript@5.3.3))':
+    dependencies:
+      '@types/web-bluetooth': 0.0.21
+      '@vueuse/metadata': 14.3.0
+      '@vueuse/shared': 14.3.0(vue@3.5.12(typescript@5.3.3))
+      vue: 3.5.12(typescript@5.3.3)
+
   '@vueuse/metadata@10.11.1': {}
 
+  '@vueuse/metadata@14.3.0': {}
+
   '@vueuse/shared@10.11.1(vue@3.5.12(typescript@5.3.3))':
     dependencies:
       vue-demi: 0.14.10(vue@3.5.12(typescript@5.3.3))
@@ -9044,6 +9111,10 @@ snapshots:
       - '@vue/composition-api'
       - vue
 
+  '@vueuse/shared@14.3.0(vue@3.5.12(typescript@5.3.3))':
+    dependencies:
+      vue: 3.5.12(typescript@5.3.3)
+
   '@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2)':
     dependencies:
       '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.8)(slate@0.72.8)(snabbdom@3.6.2)
@@ -9994,6 +10065,8 @@ snapshots:
 
   date-fns@4.1.0: {}
 
+  date-fns@4.4.0: {}
+
   date.js@0.3.3:
     dependencies:
       debug: 3.1.0

+ 24 - 0
src/layout/components/Menu/src/components/useRenderMenuItem.tsx

@@ -77,6 +77,30 @@ export const useRenderMenuItem = () =>
             return (
               !v.meta?.hidden && ['生产运营双周会', '数据填报', '数据汇总'].includes(v.meta?.title)
             )
+          } else if (currentSource === 'qhse_nav') {
+            return (
+              !v.meta?.hidden &&
+              [
+                'QHSE',
+                'QHSE看板',
+                '计量器具',
+                '台账管理',
+                '仪器检测',
+                '使用记录',
+                '证书管理',
+                '危险源辨识',
+                '事故事件上报',
+                '环境因素识别',
+                '隐患排查',
+                '隐患排查分类',
+                '隐患排查记录',
+                'SOC管理',
+                'SOC卡分析数据源',
+                'SOC卡汇总',
+                'JSA',
+                'PTW'
+              ].includes(v.meta?.title)
+            )
           } else {
             return !v.meta?.hidden
           }

+ 5 - 0
src/permission.ts

@@ -201,6 +201,11 @@ router.beforeEach(async (to, from, next) => {
         next({ path: '/qhse/qhse_kanban' })
       }
 
+      if (source && source === 'qhse_nav') {
+        sessionStorage.setItem('LOGIN_SOURCE', source as string)
+        next({ path: '/qhse/qhse_kanban' })
+      }
+
       if (source && source === 'yyhy') {
         sessionStorage.setItem('LOGIN_SOURCE', source as string)
         next({ path: '/operation-meeting/fill' })

+ 666 - 0
src/styles/qhse_kb.scss

@@ -0,0 +1,666 @@
+@font-face {
+  font-family: YouSheBiaoTiHei;
+  font-style: normal;
+  font-weight: normal;
+  src: url('@/assets/font/YouSheBiaoTiHei.ttf') format('truetype');
+  font-display: swap;
+}
+
+.bg {
+  --fvs-theme-color-1-2: #f5f9ff;
+
+  background: url('@/assets/kb/bg.png') center center / 100% 100% no-repeat;
+  background-color: #fff;
+}
+
+.header {
+  height: calc(52px * var(--kb-scale, 1));
+  font-family: YouSheBiaoTiHei, sans-serif;
+  font-size: calc(32px * var(--kb-scale, 1));
+  color: var(--fvs-theme-color-1-2);
+  text-align: center;
+  background: url('@/assets/kb/header.png') center center / 100% 100% no-repeat;
+}
+
+.panel {
+  background: linear-gradient(180deg, rgb(235 243 255 / 76%) 0%, rgb(221 233 251 / 58%) 100%);
+  border: 1px solid rgb(255 255 255 / 58%);
+  border-radius: calc(20px * var(--kb-scale, 1));
+  box-shadow:
+    inset 0 1px 0 rgb(255 255 255 / 72%),
+    0 18px 36px rgb(46 90 164 / 12%);
+  backdrop-filter: blur(12px);
+}
+
+.panel-title {
+  position: relative;
+  display: flex;
+  height: calc(36px * var(--kb-scale, 1));
+  padding: 0 calc(16px * var(--kb-scale, 1)) 0 calc(36px * var(--kb-scale, 1));
+  font-family: YouSheBiaoTiHei, sans-serif;
+  font-size: calc(24px * var(--kb-scale, 1));
+  letter-spacing: 1px;
+  color: #03409b;
+  align-items: center;
+
+  &::after {
+    position: absolute;
+    right: calc(10px * var(--kb-scale, 1));
+    bottom: 0;
+    left: calc(10px * var(--kb-scale, 1));
+    height: calc(2px * var(--kb-scale, 1));
+    background: linear-gradient(
+      to right,
+      rgb(3 64 155 / 15%) 0%,
+      rgb(3 64 155 / 15%) calc(100% - 80px),
+      #03409b calc(100% - 80px),
+      #03409b 100%
+    );
+    content: '';
+  }
+
+  &::before {
+    position: absolute;
+    right: calc(10px * var(--kb-scale, 1));
+    bottom: 0;
+    z-index: 1;
+    width: calc(80px * var(--kb-scale, 1));
+    height: calc(4px * var(--kb-scale, 1));
+    background: #03409b;
+    border-radius: calc(2px * var(--kb-scale, 1)) calc(2px * var(--kb-scale, 1)) 0 0;
+    content: '';
+  }
+
+  .icon-decorator {
+    position: absolute;
+    left: calc(14px * var(--kb-scale, 1));
+    display: flex;
+    align-items: center;
+    gap: calc(3px * var(--kb-scale, 1));
+
+    span {
+      width: calc(4px * var(--kb-scale, 1));
+      height: calc(18px * var(--kb-scale, 1));
+      background: #03409b;
+      border-radius: calc(2px * var(--kb-scale, 1));
+
+      &:last-child {
+        height: calc(12px * var(--kb-scale, 1));
+        opacity: 0.5;
+      }
+    }
+  }
+}
+
+.panel-title--lg {
+  height: calc(48px * var(--kb-scale, 1));
+}
+
+.panel-title--md {
+  height: calc(40px * var(--kb-scale, 1));
+}
+
+.kb-panel-title-text {
+  font-family: YouSheBiaoTiHei, sans-serif;
+  font-size: calc(24px * var(--kb-scale, 1));
+  font-weight: normal;
+  line-height: 1;
+  letter-spacing: 1px;
+  color: #03409b;
+}
+
+.summary-panel {
+  height: calc(112px * var(--kb-scale, 1));
+}
+
+.summary-panel__title {
+  height: calc(32px * var(--kb-scale, 1));
+}
+
+.summary-panel__grid {
+  padding: calc(6px * var(--kb-scale, 1)) calc(10px * var(--kb-scale, 1));
+  gap: calc(10px * var(--kb-scale, 1));
+}
+
+.summary-card {
+  gap: calc(8px * var(--kb-scale, 1));
+  padding: calc(8px * var(--kb-scale, 1));
+}
+
+.device-list-panel {
+  height: calc(280px * var(--kb-scale, 1));
+  margin-top: calc(12px * var(--kb-scale, 1));
+}
+
+.device-list-panel__body {
+  padding: calc(8px * var(--kb-scale, 1)) calc(16px * var(--kb-scale, 1));
+}
+
+.device-list-panel__picker {
+  display: flex;
+  width: calc(260px * var(--kb-scale, 1));
+  align-items: center;
+}
+
+.device-list-panel__picker-input {
+  width: calc(260px * var(--kb-scale, 1)) !important;
+
+  :deep(.el-input__wrapper) {
+    min-height: calc(28px * var(--kb-scale, 1));
+    padding: 0 calc(10px * var(--kb-scale, 1));
+  }
+
+  :deep(.el-range-input),
+  :deep(.el-range-separator) {
+    font-size: calc(14px * var(--kb-scale, 1));
+  }
+
+  :deep(.el-range__icon),
+  :deep(.el-range__close-icon) {
+    font-size: calc(14px * var(--kb-scale, 1));
+  }
+}
+
+.kb-inline-picker {
+  display: flex;
+  width: var(--kb-picker-width);
+  align-items: center;
+}
+
+.kb-inline-picker--260 {
+  --kb-picker-width: calc(260px * var(--kb-scale, 1));
+}
+
+.kb-inline-picker__input {
+  width: var(--kb-picker-width) !important;
+
+  :deep(.el-input__wrapper) {
+    min-height: calc(28px * var(--kb-scale, 1));
+    padding: 0 calc(10px * var(--kb-scale, 1));
+  }
+
+  :deep(.el-range-input),
+  :deep(.el-range-separator) {
+    font-size: calc(14px * var(--kb-scale, 1));
+  }
+
+  :deep(.el-range__icon),
+  :deep(.el-range__close-icon) {
+    font-size: calc(14px * var(--kb-scale, 1));
+  }
+}
+
+.summary-card {
+  position: relative;
+  cursor: default;
+  background: linear-gradient(180deg, rgb(255 255 255 / 52%) 0%, rgb(213 227 249 / 38%) 100%);
+  border: 1px solid rgb(255 255 255 / 74%);
+  box-shadow:
+    inset 0 1px 0 rgb(255 255 255 / 78%),
+    0 6px 14px rgb(63 103 171 / 7%);
+  transition:
+    transform 0.28s ease,
+    box-shadow 0.28s ease,
+    border-color 0.28s ease,
+    background 0.28s ease;
+  isolation: isolate;
+}
+
+.summary-card::before {
+  position: absolute;
+  z-index: 0;
+  pointer-events: none;
+  background: linear-gradient(
+    135deg,
+    rgb(255 255 255 / 0%) 0%,
+    rgb(255 255 255 / 0%) 58%,
+    rgb(255 255 255 / 18%) 100%
+  );
+  content: '';
+  inset: 0;
+}
+
+.summary-card::after {
+  position: absolute;
+  right: calc(-16px * var(--kb-scale, 1));
+  bottom: calc(-28px * var(--kb-scale, 1));
+  z-index: 0;
+  width: calc(84px * var(--kb-scale, 1));
+  height: calc(84px * var(--kb-scale, 1));
+  pointer-events: none;
+  background: radial-gradient(circle, var(--card-glow) 0%, rgb(255 255 255 / 0%) 70%);
+  content: '';
+  opacity: 0.86;
+  transition:
+    transform 0.28s ease,
+    opacity 0.28s ease;
+}
+
+.summary-card:hover {
+  background: linear-gradient(180deg, rgb(255 255 255 / 72%) 0%, rgb(219 233 255 / 46%) 100%);
+  border-color: rgb(255 255 255 / 90%);
+  transform: translateY(-3px);
+  box-shadow:
+    inset 0 1px 0 rgb(255 255 255 / 85%),
+    0 10px 18px rgb(41 89 164 / 13%);
+}
+
+.summary-card:hover::after {
+  opacity: 1;
+  transform: scale(1.08);
+}
+
+.summary-card__shine {
+  position: absolute;
+  top: 0;
+  left: -130%;
+  z-index: 1;
+  width: 60%;
+  height: 100%;
+  pointer-events: none;
+  background: linear-gradient(
+    90deg,
+    rgb(255 255 255 / 0%) 0%,
+    rgb(255 255 255 / 18%) 45%,
+    rgb(255 255 255 / 45%) 50%,
+    rgb(255 255 255 / 18%) 55%,
+    rgb(255 255 255 / 0%) 100%
+  );
+  transform: skewX(-22deg);
+}
+
+.summary-card:hover .summary-card__shine {
+  left: 150%;
+  transition: left 0.8s ease;
+}
+
+.summary-card__icon {
+  position: relative;
+  z-index: 2;
+  display: flex;
+  width: calc(48px * var(--kb-scale, 1));
+  height: calc(48px * var(--kb-scale, 1));
+  background: linear-gradient(180deg, rgb(255 255 255 / 96%) 0%, rgb(242 247 255 / 92%) 100%);
+  border: 1px solid rgb(255 255 255 / 88%);
+  border-radius: calc(12px * var(--kb-scale, 1));
+  box-shadow:
+    inset 0 1px 0 rgb(255 255 255 / 95%),
+    0 6px 12px rgb(152 181 230 / 15%);
+  flex-shrink: 0;
+  align-items: center;
+  justify-content: center;
+  transition:
+    transform 0.28s ease,
+    box-shadow 0.28s ease;
+}
+
+.summary-card__icon::after {
+  position: absolute;
+  right: calc(-3px * var(--kb-scale, 1));
+  bottom: calc(-3px * var(--kb-scale, 1));
+  width: calc(15px * var(--kb-scale, 1));
+  height: calc(15px * var(--kb-scale, 1));
+  background: radial-gradient(
+    circle at 30% 30%,
+    rgb(255 255 255 / 96%) 0%,
+    var(--card-glow) 58%,
+    rgb(255 255 255 / 0%) 75%
+  );
+  border-radius: 999px;
+  content: '';
+  opacity: 0.95;
+}
+
+.summary-card:hover .summary-card__icon {
+  transform: translateY(-2px) scale(1.03);
+  box-shadow:
+    inset 0 1px 0 rgb(255 255 255 / 95%),
+    0 8px 14px rgb(120 158 221 / 20%);
+}
+
+.summary-card__icon-glyph {
+  position: relative;
+  z-index: 1;
+  font-size: calc(25px * var(--kb-scale, 1));
+  color: var(--card-accent);
+  transition:
+    transform 0.28s ease,
+    filter 0.28s ease;
+}
+
+.summary-card:hover .summary-card__icon-glyph {
+  filter: drop-shadow(0 4px 8px rgb(0 0 0 / 8%));
+  transform: scale(1.08);
+}
+
+.summary-card__body {
+  position: relative;
+  z-index: 2;
+  display: flex;
+  min-height: calc(48px * var(--kb-scale, 1));
+  min-width: 0;
+  flex-direction: column;
+  justify-content: center;
+}
+
+.summary-card__label {
+  overflow: hidden;
+  font-size: calc(14px * var(--kb-scale, 1));
+  font-weight: 600;
+  color: #24364f;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+  transition:
+    transform 0.28s ease,
+    color 0.28s ease;
+}
+
+.summary-card__value {
+  margin-top: calc(4px * var(--kb-scale, 1));
+  font-family: YouSheBiaoTiHei, sans-serif;
+  font-size: calc(19px * var(--kb-scale, 1));
+  line-height: 1;
+  letter-spacing: 1px;
+  color: #1f5bb8;
+  transition:
+    transform 0.28s ease,
+    text-shadow 0.28s ease;
+}
+
+.summary-card:hover .summary-card__label {
+  color: #173b72;
+  transform: translateX(1px);
+}
+
+.summary-card:hover .summary-card__value {
+  text-shadow: 0 4px 10px rgb(31 91 184 / 16%);
+  transform: translateX(1px);
+}
+
+.summary-card__corner {
+  position: absolute;
+  top: 0;
+  right: 0;
+  z-index: 1;
+  width: calc(36px * var(--kb-scale, 1));
+  height: calc(36px * var(--kb-scale, 1));
+  pointer-events: none;
+  background: linear-gradient(135deg, rgb(255 255 255 / 30%) 0%, rgb(255 255 255 / 0%) 70%);
+  opacity: 0.85;
+  clip-path: polygon(100% 0, 0 0, 100% 100%);
+}
+
+.summary-card {
+  animation: card-in 0.5s ease both;
+}
+
+.summary-card:nth-child(1) {
+  animation-delay: 0.05s;
+}
+
+.summary-card:nth-child(2) {
+  animation-delay: 0.1s;
+}
+
+.summary-card:nth-child(3) {
+  animation-delay: 0.15s;
+}
+
+.summary-card:nth-child(4) {
+  animation-delay: 0.2s;
+}
+
+.summary-card:nth-child(5) {
+  animation-delay: 0.25s;
+}
+
+.summary-card:nth-child(6) {
+  animation-delay: 0.3s;
+}
+
+.summary-card:nth-child(7) {
+  animation-delay: 0.35s;
+}
+
+.summary-card:nth-child(8) {
+  animation-delay: 0.4s;
+}
+
+.summary-card:nth-child(9) {
+  animation-delay: 0.4s;
+}
+
+.summary-card:nth-child(10) {
+  animation-delay: 0.4s;
+}
+
+@keyframes card-in {
+  from {
+    opacity: 0;
+    transform: translateY(12px);
+  }
+
+  to {
+    opacity: 1;
+    transform: translateY(0);
+  }
+}
+
+.summary-card__placeholder {
+  display: inline-block;
+  font-family: YouSheBiaoTiHei, sans-serif;
+  font-size: calc(19px * var(--kb-scale, 1));
+  line-height: 1;
+  letter-spacing: 1px;
+  color: rgb(31 91 184 / 45%);
+}
+
+.device-list-table,
+.team-list-table {
+  --el-table-border-color: rgb(31 91 184 / 12%);
+  --el-table-border: 1px solid rgb(31 91 184 / 12%);
+  --el-table-header-bg-color: rgb(255 255 255 / 82%);
+  --el-table-tr-bg-color: transparent;
+  --el-table-bg-color: transparent;
+  --el-table-row-hover-bg-color: rgb(31 91 184 / 6%);
+  --el-fill-color-lighter: rgb(255 255 255 / 55%);
+
+  background: transparent;
+
+  :deep(.el-table__inner-wrapper::before) {
+    display: none;
+  }
+
+  :deep(.el-table__header-wrapper th.el-table__cell) {
+    // font-family: YouSheBiaoTiHei, sans-serif;
+    font-size: calc(20px * var(--kb-scale, 1));
+    font-weight: 500;
+    letter-spacing: 0.5px;
+    color: #03409b;
+    background: linear-gradient(180deg, rgb(255 255 255 / 92%) 0%, rgb(231 240 255 / 82%) 100%);
+    border-bottom: 1px solid rgb(31 91 184 / 16%);
+  }
+
+  :deep(.el-table__body td.el-table__cell) {
+    padding: calc(8px * var(--kb-scale, 1)) 0;
+    // font-family: YouSheBiaoTiHei, sans-serif;
+    font-size: calc(16px * var(--kb-scale, 1));
+    color: #24364f;
+    background: rgb(255 255 255 / 16%);
+    border-bottom: 1px solid rgb(31 91 184 / 8%);
+  }
+
+  :deep(.el-table__body tr:nth-child(2n) td.el-table__cell) {
+    background: rgb(255 255 255 / 28%);
+  }
+
+  :deep(.el-table__row:hover > td.el-table__cell) {
+    background: rgb(31 91 184 / 8%) !important;
+  }
+
+  :deep(.el-scrollbar__bar.is-vertical) {
+    width: calc(8px * var(--kb-scale, 1));
+  }
+
+  :deep(.el-scrollbar__bar.is-horizontal) {
+    height: calc(8px * var(--kb-scale, 1));
+  }
+
+  :deep(.el-scrollbar__thumb) {
+    background: rgb(31 91 184 / 26%);
+    border-radius: 999px;
+  }
+}
+
+.device-list-table {
+  :deep(.el-table__row) {
+    cursor: pointer;
+  }
+}
+
+.kb-stage-card {
+  --panel-delay: 0s;
+  --panel-glow: rgb(31 91 184 / 12%);
+
+  position: relative;
+  opacity: 0;
+  transform: translateY(22px) scale(0.985);
+  animation: kb-panel-enter 0.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
+  animation-delay: var(--panel-delay);
+  isolation: isolate;
+  will-change: transform, opacity;
+}
+
+.kb-stage-card::before {
+  position: absolute;
+  z-index: 0;
+  pointer-events: none;
+  background: linear-gradient(
+    112deg,
+    rgb(255 255 255 / 0%) 0%,
+    rgb(255 255 255 / 0%) 34%,
+    rgb(255 255 255 / 26%) 48%,
+    rgb(255 255 255 / 8%) 56%,
+    rgb(255 255 255 / 0%) 68%,
+    rgb(255 255 255 / 0%) 100%
+  );
+  border-radius: calc(20px * var(--kb-scale, 1));
+  content: '';
+  opacity: 0;
+  transform: translateX(-140%) skewX(-22deg);
+  animation: kb-panel-sheen 1.05s ease-out forwards;
+  animation-delay: calc(var(--panel-delay) + 0.18s);
+  inset: 0;
+}
+
+.kb-stage-card::after {
+  position: absolute;
+  right: calc(-24px * var(--kb-scale, 1));
+  bottom: calc(-30px * var(--kb-scale, 1));
+  z-index: 0;
+  width: calc(120px * var(--kb-scale, 1));
+  height: calc(120px * var(--kb-scale, 1));
+  pointer-events: none;
+  background: radial-gradient(circle, var(--panel-glow) 0%, rgb(255 255 255 / 0%) 72%);
+  content: '';
+  opacity: 0.88;
+  transition:
+    transform 0.32s ease,
+    opacity 0.32s ease;
+}
+
+.kb-stage-card:hover {
+  transform: translateY(-4px) scale(1.005);
+  transition:
+    transform 0.28s ease,
+    box-shadow 0.28s ease;
+}
+
+.kb-stage-card:hover::after {
+  opacity: 1;
+  transform: scale(1.08);
+}
+
+.kb-stage-card--list {
+  --panel-glow: rgb(45 124 248 / 14%);
+}
+
+.kb-stage-card--1 {
+  --panel-delay: 0.02s;
+}
+
+.kb-stage-card--2 {
+  --panel-delay: 0.08s;
+}
+
+.kb-stage-card--3 {
+  --panel-delay: 0.14s;
+}
+
+.kb-stage-card--4 {
+  --panel-delay: 0.2s;
+}
+
+.kb-stage-card--5 {
+  --panel-delay: 0.26s;
+}
+
+.kb-stage-card--6 {
+  --panel-delay: 0.32s;
+}
+
+.kb-stage-card--7 {
+  --panel-delay: 0.38s;
+}
+
+.kb-stage-card--8 {
+  --panel-delay: 0.46s;
+}
+
+@keyframes kb-panel-enter {
+  0% {
+    opacity: 0;
+    filter: blur(4px);
+    transform: translateY(22px) scale(0.985);
+  }
+
+  100% {
+    opacity: 1;
+    filter: blur(0);
+    transform: translateY(0) scale(1);
+  }
+}
+
+@keyframes kb-panel-sheen {
+  0% {
+    opacity: 0;
+    transform: translateX(-140%) skewX(-22deg);
+  }
+
+  18% {
+    opacity: 0.85;
+  }
+
+  100% {
+    opacity: 0;
+    transform: translateX(165%) skewX(-22deg);
+  }
+}
+
+@media (prefers-reduced-motion: reduce) {
+  .kb-stage-card,
+  .kb-stage-card::before,
+  .kb-stage-card::after {
+    animation: none;
+    transition: none;
+  }
+
+  .kb-stage-card {
+    opacity: 1;
+    transform: none;
+  }
+
+  .kb-stage-card:hover {
+    transform: none;
+  }
+}

Dosya farkı çok büyük olduğundan ihmal edildi
+ 463 - 243
src/views/pms/qhse/kanban/index.vue


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor