@chenchaolong/plugin-trade-compliance-workbench 1.0.44 → 1.0.45
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.
- package/dist/lib/remote-components/trade-compliance-workbench/app.css +1 -1
- package/dist/lib/remote-components/trade-compliance-workbench/app.js +5 -5
- package/dist/lib/remote-ui/pages/analytics.d.ts.map +1 -1
- package/dist/lib/remote-ui/pages/analytics.js +52 -29
- package/dist/lib/remote-ui/pages/analytics.js.map +1 -1
- package/dist/lib/remote-ui/styles.css +73 -45
- package/dist/lib/workbench.service.js +16 -2
- package/dist/lib/workbench.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -537,8 +537,8 @@ button:disabled, input:disabled, select:disabled, textarea:disabled { cursor: no
|
|
|
537
537
|
.tcw-contract-source-preview { grid-column: auto; }
|
|
538
538
|
}
|
|
539
539
|
|
|
540
|
-
.tcw-page-analytics .tcw-content { padding:
|
|
541
|
-
.tcw-analytics-page { display: grid; min-width: 0; gap:
|
|
540
|
+
.tcw-page-analytics .tcw-content { padding: 16px 24px 18px; background: #fbfcff; }
|
|
541
|
+
.tcw-analytics-page { display: grid; min-width: 0; gap: 9px; }
|
|
542
542
|
.tcw-analytics-overview-header { display: flex; min-width: 0; align-items: flex-end; justify-content: space-between; gap: 12px; }
|
|
543
543
|
.tcw-analytics-overview-header .tcw-page-tabs { min-width: 0; flex: 1 1 auto; }
|
|
544
544
|
.tcw-analytics-summary { display: grid; min-width: 0; gap: 8px; }
|
|
@@ -686,10 +686,10 @@ button:disabled, input:disabled, select:disabled, textarea:disabled { cursor: no
|
|
|
686
686
|
.tcw-analytics-chip--refresh { color: #667085; font-weight: 500; }
|
|
687
687
|
.tcw-analytics-period button { min-width: 92px; }
|
|
688
688
|
.tcw-analytics-period button[aria-pressed="true"] { color: #1769ff; background: #eaf4ff; font-weight: 700; }
|
|
689
|
-
.tcw-analytics-cockpit { display: grid; min-width: 0; gap:
|
|
690
|
-
.tcw-analytics-kpi-grid { display: grid; grid-template-columns: repeat(10, minmax(118px, 1fr)); gap:
|
|
691
|
-
.tcw-analytics-kpi-grid button { position: relative; display: grid; min-width: 0; min-height:
|
|
692
|
-
.tcw-analytics-kpi-grid button i { grid-column: 2; grid-row: 1 / 3; width:
|
|
689
|
+
.tcw-analytics-cockpit { display: grid; min-width: 0; gap: 9px; }
|
|
690
|
+
.tcw-analytics-kpi-grid { display: grid; grid-template-columns: repeat(10, minmax(118px, 1fr)); gap: 8px; min-width: 0; }
|
|
691
|
+
.tcw-analytics-kpi-grid button { position: relative; display: grid; min-width: 0; min-height: 90px; grid-template-columns: minmax(0, 1fr) 24px; gap: 4px 7px; align-content: center; padding: 10px 10px 8px; overflow: hidden; border: 1px solid #e2e8f0; border-left: 3px solid #1769ff; border-radius: 5px; background: #fff; text-align: left; box-shadow: 0 3px 10px rgba(15, 23, 42, .045); }
|
|
692
|
+
.tcw-analytics-kpi-grid button i { grid-column: 2; grid-row: 1 / 3; width: 23px; height: 23px; border-radius: 5px; display: inline-flex; align-items: center; justify-content: center; color: #1769ff; background: #eff6ff; font-size: 15px; }
|
|
693
693
|
.tcw-analytics-kpi-grid button.is-success { border-left-color: #18a058; }
|
|
694
694
|
.tcw-analytics-kpi-grid button.is-success i { color: #18a058; background: #eaf8f0; }
|
|
695
695
|
.tcw-analytics-kpi-grid button.is-warn { border-left-color: #ff8a00; }
|
|
@@ -706,31 +706,35 @@ button:disabled, input:disabled, select:disabled, textarea:disabled { cursor: no
|
|
|
706
706
|
.tcw-analytics-kpi-grid small { grid-column: 1 / -1; display: inline-flex; min-width: 0; gap: 5px; overflow: hidden; color: #667085; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
|
|
707
707
|
.tcw-analytics-kpi-grid small em { color: #667085; font-style: normal; }
|
|
708
708
|
.tcw-analytics-kpi-grid small b { color: #12b76a; font-weight: 700; }
|
|
709
|
-
.tcw-analytics-cockpit-layout { display: grid;
|
|
710
|
-
.tcw-analytics-
|
|
711
|
-
.tcw-analytics-
|
|
712
|
-
.tcw-analytics-
|
|
713
|
-
.tcw-analytics-panel
|
|
714
|
-
.tcw-analytics-
|
|
715
|
-
.tcw-analytics-
|
|
716
|
-
.tcw-analytics-
|
|
717
|
-
.tcw-analytics-panel
|
|
718
|
-
.tcw-analytics-panel--source { grid-column: 4; }
|
|
719
|
-
.tcw-analytics-panel--customer { grid-column: 1; }
|
|
720
|
-
.tcw-analytics-panel--receivable { grid-column: 2; }
|
|
721
|
-
.tcw-analytics-panel--supplier { grid-column: 3; }
|
|
722
|
-
.tcw-analytics-panel--queue, .tcw-analytics-panel--trend, .tcw-analytics-panel--capital, .tcw-analytics-panel--risk { min-height: 252px; }
|
|
723
|
-
.tcw-analytics-panel > header { display: flex; min-width: 0; align-items: center; justify-content: space-between; padding-bottom: 8px; border-bottom: 1px solid #edf2f7; }
|
|
709
|
+
.tcw-analytics-cockpit-layout { display: grid; gap: 10px; min-width: 0; }
|
|
710
|
+
.tcw-analytics-layout-row { display: grid; min-width: 0; gap: 10px; align-items: stretch; }
|
|
711
|
+
.tcw-analytics-layout-row--charts { grid-template-columns: minmax(280px, .86fr) minmax(430px, 1.28fr) minmax(340px, 1fr) minmax(380px, 1.08fr); }
|
|
712
|
+
.tcw-analytics-layout-row--top5, .tcw-analytics-layout-row--bottom { grid-template-columns: repeat(3, minmax(0, 1fr)); }
|
|
713
|
+
.tcw-analytics-panel { display: grid; min-width: 0; grid-template-rows: auto minmax(0, 1fr); align-content: stretch; gap: 7px; min-height: 0; padding: 9px 12px; overflow: hidden; border: 1px solid #e1e7ef; border-radius: 6px; background: #fff; box-shadow: 0 3px 12px rgba(15, 23, 42, .035); }
|
|
714
|
+
.tcw-analytics-layout-row--charts .tcw-analytics-panel { height: 226px; }
|
|
715
|
+
.tcw-analytics-layout-row--top5 .tcw-analytics-panel { height: 216px; }
|
|
716
|
+
.tcw-analytics-layout-row--bottom .tcw-analytics-panel { height: 206px; }
|
|
717
|
+
.tcw-analytics-panel > header { display: flex; min-width: 0; align-items: center; justify-content: space-between; min-height: 23px; padding-bottom: 7px; border-bottom: 1px solid #edf2f7; }
|
|
724
718
|
.tcw-analytics-panel > header strong { display: inline-flex; min-width: 0; align-items: center; gap: 7px; overflow: hidden; color: #1f334c; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
|
|
725
719
|
.tcw-analytics-panel > header i { color: #2d7dd2; font-size: 16px; }
|
|
726
720
|
.tcw-analytics-panel-link { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 2px; padding: 0; border: 0; color: #2d7dd2; background: transparent; text-decoration: none; font-size: 12px; font-weight: 650; white-space: nowrap; cursor: pointer; }
|
|
727
721
|
.tcw-analytics-panel-link:hover { color: #185da4; text-decoration: underline; }
|
|
728
722
|
.tcw-analytics-todo-list, .tcw-analytics-table-list, .tcw-analytics-file-list, .tcw-analytics-source-list { display: grid; min-width: 0; gap: 6px; }
|
|
723
|
+
.tcw-analytics-todo-board { display: grid; min-width: 0; align-content: start; font-size: 11px; }
|
|
724
|
+
.tcw-analytics-todo-head, .tcw-analytics-todo-row { display: grid; grid-template-columns: minmax(0, 1.25fr) 34px minmax(76px, .86fr) 40px; align-items: center; gap: 5px; min-width: 0; }
|
|
725
|
+
.tcw-analytics-todo-head { height: 22px; padding: 0 4px; color: #6d7b8f; background: #f8fbff; font-weight: 650; }
|
|
726
|
+
.tcw-analytics-todo-row { height: 27px; padding: 0 4px; border: 0; border-bottom: 1px solid #edf2f7; background: transparent; color: #26364a; text-align: left; cursor: pointer; }
|
|
727
|
+
.tcw-analytics-todo-row:hover { background: #fbfdff; }
|
|
728
|
+
.tcw-analytics-todo-row span { display: inline-flex; min-width: 0; align-items: center; gap: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
729
|
+
.tcw-analytics-todo-row span i { color: #1769ff; font-size: 12px; }
|
|
730
|
+
.tcw-analytics-todo-row b, .tcw-analytics-todo-row em { min-width: 0; overflow: hidden; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
|
|
731
|
+
.tcw-analytics-todo-row em { color: #344054; font-style: normal; }
|
|
729
732
|
.tcw-analytics-todo-table { width: 100%; min-width: 0; border-collapse: collapse; table-layout: fixed; color: #26364a; font-size: 12px; }
|
|
730
733
|
.tcw-analytics-todo-table th, .tcw-analytics-todo-table td { overflow: hidden; padding: 7px 6px; border-bottom: 1px solid #edf2f7; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
|
|
731
734
|
.tcw-analytics-todo-table th { color: #6d7b8f; background: #f8fbff; font-weight: 650; }
|
|
732
735
|
.tcw-analytics-todo-table td:nth-child(2), .tcw-analytics-todo-table th:nth-child(2) { width: 58px; text-align: right; }
|
|
733
736
|
.tcw-analytics-todo-table td:nth-child(3), .tcw-analytics-todo-table th:nth-child(3) { width: 68px; text-align: center; }
|
|
737
|
+
.tcw-analytics-todo-table td:nth-child(4), .tcw-analytics-todo-table th:nth-child(4) { width: 70px; text-align: right; }
|
|
734
738
|
.tcw-analytics-todo-list article { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 8px; padding: 7px 8px; border: 1px solid #edf2f7; border-left: 3px solid #2d7dd2; border-radius: 5px; background: #fbfdff; }
|
|
735
739
|
.tcw-analytics-todo-list article.is-high { border-left-color: #d95040; }
|
|
736
740
|
.tcw-analytics-todo-list article.is-medium { border-left-color: #e69f2a; }
|
|
@@ -743,17 +747,23 @@ button:disabled, input:disabled, select:disabled, textarea:disabled { cursor: no
|
|
|
743
747
|
.tcw-analytics-month-chart .is-purchase { background: #91b8e6; }
|
|
744
748
|
.tcw-analytics-month-chart .is-sales { background: #2d7dd2; }
|
|
745
749
|
.tcw-analytics-month-chart span { grid-column: 1 / -1; color: var(--tcw-muted); text-align: center; font-size: 10px; }
|
|
746
|
-
.tcw-analytics-line-chart { min-width: 0; height:
|
|
750
|
+
.tcw-analytics-line-chart { position: relative; min-width: 0; height: 138px; border: 1px solid #edf2f7; border-radius: 5px; background: linear-gradient(180deg, #ffffff, #fbfdff); }
|
|
747
751
|
.tcw-analytics-line-chart svg { display: block; width: 100%; height: 100%; }
|
|
748
752
|
.tcw-analytics-line-chart line { stroke: #edf2f7; stroke-width: 1; }
|
|
749
|
-
.tcw-analytics-line-chart polyline { fill: none; stroke-width:
|
|
753
|
+
.tcw-analytics-line-chart polyline { fill: none; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
|
|
750
754
|
.tcw-analytics-line-chart polyline.is-purchase { stroke: #91b8e6; }
|
|
751
755
|
.tcw-analytics-line-chart polyline.is-sales { stroke: #2d7dd2; }
|
|
752
756
|
.tcw-analytics-line-chart polyline.is-profit { stroke: #31a776; }
|
|
753
757
|
.tcw-analytics-line-chart polyline.is-received { stroke: #f97316; }
|
|
758
|
+
.tcw-analytics-line-chart circle { stroke: #fff; stroke-width: 1.4; }
|
|
759
|
+
.tcw-analytics-line-chart circle.is-purchase { fill: #91b8e6; }
|
|
760
|
+
.tcw-analytics-line-chart circle.is-sales { fill: #2d7dd2; }
|
|
761
|
+
.tcw-analytics-line-chart circle.is-profit { fill: #31a776; }
|
|
762
|
+
.tcw-analytics-line-chart circle.is-received { fill: #f97316; }
|
|
754
763
|
.tcw-analytics-line-chart text { fill: #8a97a9; text-anchor: middle; font-size: 10px; }
|
|
755
764
|
.tcw-analytics-line-chart .tcw-analytics-trend-axis { text-anchor: end; font-size: 10px; }
|
|
756
|
-
.tcw-analytics-chart-
|
|
765
|
+
.tcw-analytics-line-chart .tcw-analytics-trend-unit { position: absolute; top: 7px; left: 11px; z-index: 1; color: #667085; font-size: 10px; font-weight: 600; line-height: 1; pointer-events: none; }
|
|
766
|
+
.tcw-analytics-chart-legend { display: flex; flex-wrap: wrap; gap: 5px 14px; color: #66758a; font-size: 11px; }
|
|
757
767
|
.tcw-analytics-chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
|
|
758
768
|
.tcw-analytics-chart-legend b { color: #667085; font-size: 11px; font-weight: 500; }
|
|
759
769
|
.tcw-analytics-chart-legend i { width: 9px; height: 9px; border-radius: 50%; background: #2d7dd2; }
|
|
@@ -761,51 +771,65 @@ button:disabled, input:disabled, select:disabled, textarea:disabled { cursor: no
|
|
|
761
771
|
.tcw-analytics-chart-legend .is-profit { background: #31a776; }
|
|
762
772
|
.tcw-analytics-chart-legend .is-received { background: #f97316; }
|
|
763
773
|
.tcw-analytics-trend-summary { display: none; }
|
|
764
|
-
.tcw-analytics-money-structure { display: grid; min-width: 0; align-content:
|
|
765
|
-
.tcw-analytics-money-
|
|
766
|
-
.tcw-analytics-money-
|
|
774
|
+
.tcw-analytics-money-structure { display: grid; min-width: 0; align-content: start; gap: 6px; height: 100%; font-size: 11px; }
|
|
775
|
+
.tcw-analytics-money-head, .tcw-analytics-money-row { display: grid; grid-template-columns: 70px minmax(0, 1fr) 70px 48px; align-items: center; gap: 7px; min-width: 0; }
|
|
776
|
+
.tcw-analytics-money-head { color: #6d7b8f; }
|
|
777
|
+
.tcw-analytics-money-head span:first-child { grid-column: 1 / 4; }
|
|
778
|
+
.tcw-analytics-money-head span:last-child { text-align: right; }
|
|
779
|
+
.tcw-analytics-money-row { min-height: 22px; }
|
|
780
|
+
.tcw-analytics-money-structure span { display: inline-flex; align-items: center; gap: 6px; color: #56677f; font-size: 11px; }
|
|
767
781
|
.tcw-analytics-money-structure span i { width: 8px; height: 8px; border-radius: 50%; }
|
|
768
|
-
.tcw-analytics-money-structure b { color: #17283f; }
|
|
769
|
-
.tcw-analytics-money-structure
|
|
782
|
+
.tcw-analytics-money-structure b, .tcw-analytics-money-structure strong { min-width: 0; overflow: hidden; color: #17283f; text-align: right; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
|
|
783
|
+
.tcw-analytics-money-structure strong { color: #667085; font-weight: 500; }
|
|
784
|
+
.tcw-analytics-money-structure em { display: block; height: 9px; overflow: hidden; border-radius: 999px; background: #eef3f8; }
|
|
770
785
|
.tcw-analytics-money-structure em i { display: block; height: 100%; border-radius: inherit; }
|
|
771
|
-
.tcw-analytics-risk-distribution { display: grid; grid-template-columns:
|
|
772
|
-
.tcw-analytics-risk-distribution .tcw-analytics-donut { width:
|
|
786
|
+
.tcw-analytics-risk-distribution { display: grid; grid-template-columns: 142px minmax(0, 1fr); align-items: center; gap: 12px; min-width: 0; height: 100%; }
|
|
787
|
+
.tcw-analytics-risk-distribution .tcw-analytics-donut { width: 132px; height: 132px; background: radial-gradient(circle, #fff 0 47%, transparent 48%), var(--risk-donut); }
|
|
773
788
|
.tcw-analytics-risk-distribution .tcw-analytics-donut strong { font-size: 13px; }
|
|
774
|
-
.tcw-analytics-risk-distribution .tcw-analytics-donut span { color: #101828; font-size:
|
|
775
|
-
.tcw-analytics-risk-distribution dl { display: grid; gap:
|
|
776
|
-
.tcw-analytics-risk-distribution button { display: grid; min-width: 0; gap:
|
|
789
|
+
.tcw-analytics-risk-distribution .tcw-analytics-donut span { color: #101828; font-size: 20px; font-weight: 700; }
|
|
790
|
+
.tcw-analytics-risk-distribution dl { display: grid; gap: 5px; margin: 0; min-width: 0; }
|
|
791
|
+
.tcw-analytics-risk-distribution button { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; min-width: 0; gap: 8px; padding: 0; border: 0; background: transparent; text-align: left; cursor: pointer; }
|
|
777
792
|
.tcw-analytics-risk-distribution button:hover dt { color: #2d7dd2; text-decoration: underline; }
|
|
778
793
|
.tcw-analytics-risk-distribution dt, .tcw-analytics-risk-distribution dd { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
779
|
-
.tcw-analytics-risk-distribution dt { display: inline-flex; align-items: center; gap: 6px; color: #56677f; }
|
|
794
|
+
.tcw-analytics-risk-distribution dt { display: inline-flex; align-items: center; gap: 6px; color: #56677f; font-size: 11px; }
|
|
780
795
|
.tcw-analytics-risk-distribution dt i { width: 8px; height: 8px; border-radius: 50%; }
|
|
781
|
-
.tcw-analytics-risk-distribution dd { margin: 0
|
|
782
|
-
.tcw-analytics-table-list article, .tcw-analytics-file-list article, .tcw-analytics-source-list article, .tcw-analytics-source-list button { display: grid; min-width: 0; gap: 3px; padding:
|
|
796
|
+
.tcw-analytics-risk-distribution dd { margin: 0; color: #1f334c; font-size: 11px; font-weight: 700; }
|
|
797
|
+
.tcw-analytics-table-list article, .tcw-analytics-file-list article, .tcw-analytics-source-list article, .tcw-analytics-source-list button { display: grid; min-width: 0; gap: 3px; padding: 8px 8px; border: 0; border-bottom: 1px solid #edf2f7; background: transparent; color: inherit; text-align: left; text-decoration: none; cursor: pointer; }
|
|
783
798
|
.tcw-analytics-table-list article:last-child, .tcw-analytics-file-list article:last-child, .tcw-analytics-source-list article:last-child, .tcw-analytics-source-list button:last-child { border-bottom: 0; }
|
|
784
|
-
.tcw-analytics-source-list { align-content:
|
|
785
|
-
.tcw-analytics-source-list button { grid-template-columns:
|
|
786
|
-
.tcw-analytics-source-list button > i { grid-row: 1 / span 2; align-self:
|
|
799
|
+
.tcw-analytics-source-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; gap: 0 18px; height: 100%; }
|
|
800
|
+
.tcw-analytics-source-list button { grid-template-columns: 18px minmax(0, 1fr); align-content: center; min-height: 32px; padding: 3px 0; }
|
|
801
|
+
.tcw-analytics-source-list button > i { grid-row: 1 / span 2; align-self: start; margin-top: 2px; color: #2d7dd2; font-size: 14px; }
|
|
787
802
|
.tcw-analytics-source-list button:hover strong { color: #2d7dd2; text-decoration: underline; }
|
|
788
|
-
.tcw-analytics-table-list span, .tcw-analytics-file-list strong, .tcw-analytics-source-list strong { min-width: 0; overflow: hidden; color: #1f334c; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; }
|
|
803
|
+
.tcw-analytics-table-list span, .tcw-analytics-file-list strong, .tcw-analytics-source-list strong { min-width: 0; overflow: hidden; color: #1f334c; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 700; }
|
|
789
804
|
.tcw-analytics-table-list span { white-space: normal; line-height: 1.35; }
|
|
790
805
|
.tcw-analytics-table-list b { color: #2d7dd2; }
|
|
791
|
-
.tcw-analytics-table-list small, .tcw-analytics-file-list span, .tcw-analytics-file-list small, .tcw-analytics-source-list span { min-width: 0; overflow: hidden; color: var(--tcw-muted); text-overflow: ellipsis; white-space: nowrap; font-size:
|
|
806
|
+
.tcw-analytics-table-list small, .tcw-analytics-file-list span, .tcw-analytics-file-list small, .tcw-analytics-source-list span { min-width: 0; overflow: hidden; color: var(--tcw-muted); text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
|
|
792
807
|
.tcw-analytics-info-list { width: 100%; border-collapse: collapse; table-layout: fixed; color: #26364a; font-size: 12px; }
|
|
793
808
|
.tcw-analytics-info-list th, .tcw-analytics-info-list td { overflow: hidden; padding: 9px 8px; border-bottom: 1px solid #edf2f7; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
|
|
794
809
|
.tcw-analytics-info-list th { color: #6d7b8f; background: #f8fbff; font-weight: 650; }
|
|
795
810
|
.tcw-analytics-info-list th:first-child, .tcw-analytics-info-list td:first-child { width: 30%; }
|
|
796
811
|
.tcw-analytics-info-list th:last-child, .tcw-analytics-info-list td:last-child { width: 86px; text-align: right; }
|
|
797
812
|
.tcw-analytics-info-action { display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-height: 26px; padding: 0 9px; border: 1px solid #cfe0f2; border-radius: 4px; color: #1769ff; background: #f0f7ff; font-size: 12px; font-weight: 650; cursor: pointer; }
|
|
813
|
+
.tcw-analytics-row-action, .tcw-analytics-todo-action { display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-height: 24px; padding: 0 7px; border: 1px solid #cfe0f2; border-radius: 4px; color: #1769ff; background: #f0f7ff; font-size: 11px; font-weight: 650; cursor: pointer; white-space: nowrap; }
|
|
798
814
|
.tcw-analytics-risk-orders { display: grid; min-width: 0; gap: 6px; }
|
|
799
815
|
.tcw-analytics-risk-orders article { display: grid; grid-template-columns: minmax(96px, .75fr) minmax(0, 1fr) minmax(80px, .7fr) auto auto; align-items: center; gap: 8px; min-width: 0; padding: 8px; border: 1px solid #edf2f7; border-radius: 5px; background: #fbfdff; }
|
|
800
816
|
.tcw-analytics-risk-orders span, .tcw-analytics-risk-orders b, .tcw-analytics-risk-orders em { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
801
817
|
.tcw-analytics-risk-orders em { color: #d95040; font-style: normal; }
|
|
802
818
|
.tcw-analytics-risk-orders strong { color: #1f334c; white-space: nowrap; }
|
|
803
819
|
.tcw-analytics-risk-orders small { padding: 2px 7px; border-radius: 999px; color: #265f9b; background: #eaf4ff; white-space: nowrap; }
|
|
804
|
-
.tcw-analytics-dashboard-table { width: 100%; min-width: 0; border-collapse: collapse; table-layout: fixed; color: #26364a; font-size:
|
|
805
|
-
.tcw-analytics-dashboard-table th, .tcw-analytics-dashboard-table td { overflow: hidden; padding:
|
|
820
|
+
.tcw-analytics-dashboard-table { width: 100%; min-width: 0; border-collapse: collapse; table-layout: fixed; color: #26364a; font-size: 10px; }
|
|
821
|
+
.tcw-analytics-dashboard-table th, .tcw-analytics-dashboard-table td { overflow: hidden; padding: 5px 6px; border-bottom: 1px solid #edf2f7; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
|
|
806
822
|
.tcw-analytics-dashboard-table th { color: #6d7b8f; background: #f8fbff; font-weight: 650; }
|
|
807
823
|
.tcw-analytics-dashboard-table td:nth-child(n+2), .tcw-analytics-dashboard-table th:nth-child(n+2) { text-align: right; }
|
|
808
|
-
.tcw-analytics-dashboard-table td:first-child, .tcw-analytics-dashboard-table th:first-child { width:
|
|
824
|
+
.tcw-analytics-dashboard-table td:first-child, .tcw-analytics-dashboard-table th:first-child { width: auto; }
|
|
825
|
+
.tcw-analytics-table--customer th:nth-child(1), .tcw-analytics-table--customer td:nth-child(1) { width: 20px; color: #1769ff; text-align: center; }
|
|
826
|
+
.tcw-analytics-table--customer th:nth-child(2), .tcw-analytics-table--customer td:nth-child(2) { width: 26%; text-align: left; }
|
|
827
|
+
.tcw-analytics-table--customer th:nth-child(7), .tcw-analytics-table--customer td:nth-child(7) { width: 52px; }
|
|
828
|
+
.tcw-analytics-table--receivable th:nth-child(1), .tcw-analytics-table--receivable td:nth-child(1) { width: 36%; text-align: left; }
|
|
829
|
+
.tcw-analytics-table--supplier th:nth-child(1), .tcw-analytics-table--supplier td:nth-child(1) { width: 30%; text-align: left; }
|
|
830
|
+
.tcw-analytics-table--supplier th:nth-child(3), .tcw-analytics-table--supplier td:nth-child(3) { width: 64px; text-align: center; }
|
|
831
|
+
.tcw-analytics-table--files th:nth-child(1), .tcw-analytics-table--files td:nth-child(1) { width: 28%; text-align: left; }
|
|
832
|
+
.tcw-analytics-table--files th:nth-child(4), .tcw-analytics-table--files td:nth-child(4) { width: 25%; text-align: left; }
|
|
809
833
|
.tcw-analytics-dashboard-table tbody tr:hover { background: #fbfdff; }
|
|
810
834
|
.tcw-analytics-dashboard-table em { color: #d95040; font-style: normal; font-weight: 650; }
|
|
811
835
|
.tcw-analytics-dashboard-table.tcw-analytics-risk-orders { display: table; }
|
|
@@ -813,6 +837,10 @@ button:disabled, input:disabled, select:disabled, textarea:disabled { cursor: no
|
|
|
813
837
|
.tcw-analytics-risk-badge.is-high { color: #a83225; background: #fff0ed; }
|
|
814
838
|
.tcw-analytics-risk-badge.is-medium { color: #94600e; background: #fff7e8; }
|
|
815
839
|
.tcw-analytics-risk-badge.is-low { color: #20785b; background: #eaf8f2; }
|
|
840
|
+
.tcw-analytics-status { display: inline-flex; align-items: center; justify-content: center; min-height: 18px; padding: 0 6px; border-radius: 999px; font-size: 10px; font-weight: 650; }
|
|
841
|
+
.tcw-analytics-status.is-ok { color: #20785b; background: #eaf8f2; }
|
|
842
|
+
.tcw-analytics-status.is-warn { color: #1769ff; background: #eaf4ff; }
|
|
843
|
+
.tcw-analytics-status.is-danger { color: #c2412f; background: #fff0ed; }
|
|
816
844
|
.tcw-analytics-empty { display: grid; min-height: 92px; place-items: center; color: var(--tcw-muted); border: 1px dashed #dbe5ef; border-radius: 5px; background: #fbfdff; }
|
|
817
845
|
.tcw-analytics-detail-modal { display: grid; min-width: 0; gap: 10px; }
|
|
818
846
|
.tcw-analytics-detail-note { display: inline-flex; min-width: 0; align-items: center; gap: 7px; padding: 8px 10px; border: 1px solid #cfe0f2; border-radius: 5px; color: #285c91; background: #f0f7ff; font-size: 12px; }
|
|
@@ -4177,8 +4177,15 @@ function analyticsDashboardJsonSql(query, tenant, organization, from, to) {
|
|
|
4177
4177
|
'riskOrders', (SELECT COALESCE(jsonb_agg(risk_item.item), '[]'::jsonb) FROM (SELECT jsonb_build_object('orderKey', 'sales:' || sales_scope."purchaseOrderId"::text, 'orderNo', sales_scope."salesOrderNo", 'partyName', sales_scope."customerName", 'riskType', '未收款风险', 'riskAmountCny', sales_scope."unreceivedCny", 'status', '待跟进') AS item, sales_scope."unreceivedCny" AS amount FROM sales_scope WHERE sales_scope."unreceivedCny" > 0 UNION ALL SELECT jsonb_build_object('orderKey', 'purchase:' || purchase_scope.id::text, 'orderNo', purchase_scope."contractNo", 'partyName', purchase_scope."supplierName", 'riskType', '未付款风险', 'riskAmountCny', purchase_scope."unpaidCny", 'status', '待跟进') AS item, purchase_scope."unpaidCny" AS amount FROM purchase_scope WHERE purchase_scope."unpaidCny" > 0 ORDER BY amount DESC LIMIT 5) risk_item),
|
|
4178
4178
|
'dataSources', jsonb_build_array(
|
|
4179
4179
|
jsonb_build_object('label', '采购订单', 'description', '采购金额、付款记录、退税记录'),
|
|
4180
|
+
jsonb_build_object('label', '采购商品明细', 'description', '采购商品金额、商品风险命中'),
|
|
4181
|
+
jsonb_build_object('label', '客户合同审核结果', 'description', '客户合同风险、待审核合同'),
|
|
4182
|
+
jsonb_build_object('label', '公司制裁目录匹配结果', 'description', '客户/供应商制裁命中'),
|
|
4183
|
+
jsonb_build_object('label', '付款记录', 'description', '已付款、未付款金额'),
|
|
4180
4184
|
jsonb_build_object('label', '销售订单', 'description', '销售金额、收款记录、客户合同关联'),
|
|
4181
|
-
jsonb_build_object('label', '
|
|
4185
|
+
jsonb_build_object('label', '销售商品明细', 'description', '销售商品金额、管控商品命中'),
|
|
4186
|
+
jsonb_build_object('label', '管控商品目录匹配结果', 'description', '商品风险命中与处理状态'),
|
|
4187
|
+
jsonb_build_object('label', '收款记录', 'description', '已收款、未收款金额'),
|
|
4188
|
+
jsonb_build_object('label', '退税记录', 'description', '已退税、未退税金额')
|
|
4182
4189
|
)
|
|
4183
4190
|
))`;
|
|
4184
4191
|
}
|
|
@@ -4326,8 +4333,15 @@ function parseAnalyticsDashboard(value) {
|
|
|
4326
4333
|
function defaultAnalyticsDataSources() {
|
|
4327
4334
|
return [
|
|
4328
4335
|
{ label: '采购订单', description: '采购金额、付款记录、退税记录' },
|
|
4336
|
+
{ label: '采购商品明细', description: '采购商品金额、商品风险命中' },
|
|
4337
|
+
{ label: '客户合同审核结果', description: '客户合同风险、待审核合同' },
|
|
4338
|
+
{ label: '公司制裁目录匹配结果', description: '客户/供应商制裁命中' },
|
|
4339
|
+
{ label: '付款记录', description: '已付款、未付款金额' },
|
|
4329
4340
|
{ label: '销售订单', description: '销售金额、收款记录、客户合同关联' },
|
|
4330
|
-
{ label: '
|
|
4341
|
+
{ label: '销售商品明细', description: '销售商品金额、管控商品命中' },
|
|
4342
|
+
{ label: '管控商品目录匹配结果', description: '商品风险命中与处理状态' },
|
|
4343
|
+
{ label: '收款记录', description: '已收款、未收款金额' },
|
|
4344
|
+
{ label: '退税记录', description: '已退税、未退税金额' }
|
|
4331
4345
|
];
|
|
4332
4346
|
}
|
|
4333
4347
|
function safeJsonParse(value) { try {
|