neo-cmp-cli 1.13.16 → 1.13.18
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/README.md +2 -1
- package/dist/index2.js +1 -1
- package/dist/main2.js +1 -1
- package/dist/neo/env.js +1 -1
- package/dist/neo/neoLogin.js +1 -1
- package/dist/neo/pushCmp.js +1 -1
- package/dist/package.json.js +1 -1
- package/package.json +3 -2
- package/template/antd-custom-cmp-template/package.json +1 -1
- package/template/asset-manage-template/docs/README.md +1 -232
- package/template/asset-manage-template/package.json +2 -2
- package/template/echarts-custom-cmp-template/package.json +1 -1
- package/template/empty-custom-cmp-template/package.json +2 -2
- package/template/map-custom-cmp-template/package.json +1 -1
- package/template/neo-bi-cmps/neo.config.js +7 -1
- package/template/neo-bi-cmps/package.json +8 -7
- package/template/neo-bi-cmps/public/403.html +77 -0
- package/template/neo-bi-cmps/public/demo.html +2453 -0
- package/template/neo-bi-cmps/src/assets/icon/barChart.svg +1 -0
- package/template/neo-bi-cmps/src/assets/icon/card.svg +1 -0
- package/template/neo-bi-cmps/src/assets/icon/filter.svg +1 -0
- package/template/neo-bi-cmps/src/assets/icon/funnel.svg +1 -0
- package/template/neo-bi-cmps/src/assets/icon/tab.svg +1 -0
- package/template/neo-bi-cmps/src/components/filterBar__c/README.md +3 -14
- package/template/neo-bi-cmps/src/components/filterBar__c/common.scss +29 -0
- package/template/neo-bi-cmps/src/components/filterBar__c/index.tsx +668 -146
- package/template/neo-bi-cmps/src/components/filterBar__c/model.ts +26 -48
- package/template/neo-bi-cmps/src/components/filterBar__c/style.scss +46 -139
- package/template/neo-bi-cmps/src/components/targetNumber__c/customStyleConfig/index.tsx +11 -10
- package/template/neo-bi-cmps/src/components/targetNumber__c/index.tsx +9 -16
- package/template/neo-bi-cmps/src/components/targetNumber__c/model.ts +1 -1
- package/template/neo-bi-cmps/src/utils/common.ts +231 -0
- package/template/neo-bi-cmps/src/utils/filter2chartFilter.ts +268 -0
- package/template/neo-bi-cmps/src/utils/filterBar.ts +140 -0
- package/template/neo-bi-cmps/src/utils/pipelineFunnel.ts +341 -0
- package/template/{neo-h5-cmps/src/utils/queryObjectData.ts → neo-bi-cmps/src/utils/queryByCustomSQL.ts} +18 -13
- package/template/neo-bi-cmps/src/utils/requestDebounce.ts +22 -0
- package/template/neo-bi-cmps/src/utils/simpleTable.tsx +344 -0
- package/template/neo-bi-cmps/src/utils/stageSwitch.ts +15 -0
- package/template/neo-bi-cmps/src/utils/stageTimeChart.ts +90 -0
- package/template/neo-bi-cmps/src/utils/targetNumber.ts +12 -0
- package/template/neo-custom-cmp-template/docs/README.md +0 -231
- package/template/neo-custom-cmp-template/package.json +2 -2
- package/template/neo-h5-cmps/package.json +2 -2
- package/template/neo-h5-cmps/src/components/entityList__c/index.tsx +1 -2
- package/template/neo-h5-cmps/src/components/entityTabs__c/index.tsx +1 -1
- package/template/neo-h5-cmps/src/components/globalSearchInput__c/index.tsx +1 -1
- package/template/neo-h5-cmps/src/components/openChatPageBtn__c/index.tsx +1 -2
- package/template/neo-order-cmps/package.json +2 -2
- package/template/neo-pipeline-cmps/.prettierrc.js +12 -0
- package/template/neo-pipeline-cmps/@types/neo-ui-common.d.ts +36 -0
- package/template/neo-pipeline-cmps/README.md +99 -0
- package/template/neo-pipeline-cmps/commitlint.config.js +59 -0
- package/template/neo-pipeline-cmps/neo.config.js +135 -0
- package/template/neo-pipeline-cmps/package.json +66 -0
- package/template/neo-pipeline-cmps/public/403.html +77 -0
- package/template/neo-pipeline-cmps/public/css/base.css +283 -0
- package/template/neo-pipeline-cmps/public/demo.html +2453 -0
- package/template/neo-pipeline-cmps/public/scripts/app/bluebird.js +6679 -0
- package/template/neo-pipeline-cmps/public/template.html +13 -0
- package/template/neo-pipeline-cmps/src/assets/css/common.scss +127 -0
- package/template/neo-pipeline-cmps/src/assets/css/mixin.scss +47 -0
- package/template/neo-pipeline-cmps/src/assets/icon/barChart.svg +1 -0
- package/template/neo-pipeline-cmps/src/assets/icon/card.svg +1 -0
- package/template/neo-pipeline-cmps/src/assets/icon/filter.svg +1 -0
- package/template/neo-pipeline-cmps/src/assets/icon/funnel.svg +1 -0
- package/template/neo-pipeline-cmps/src/assets/icon/tab.svg +1 -0
- package/template/neo-pipeline-cmps/src/assets/img/AIBtn.gif +0 -0
- package/template/neo-pipeline-cmps/src/assets/img/NeoCRM.jpg +0 -0
- package/template/neo-pipeline-cmps/src/assets/img/aiLogo.png +0 -0
- package/template/neo-pipeline-cmps/src/assets/img/card-list.svg +1 -0
- package/template/neo-pipeline-cmps/src/assets/img/contact-form.svg +1 -0
- package/template/neo-pipeline-cmps/src/assets/img/custom-form.svg +1 -0
- package/template/neo-pipeline-cmps/src/assets/img/custom-widget.svg +1 -0
- package/template/neo-pipeline-cmps/src/assets/img/data-list.svg +1 -0
- package/template/neo-pipeline-cmps/src/assets/img/detail.svg +1 -0
- package/template/neo-pipeline-cmps/src/assets/img/favicon.png +0 -0
- package/template/neo-pipeline-cmps/src/assets/img/map.svg +1 -0
- package/template/neo-pipeline-cmps/src/assets/img/search.svg +1 -0
- package/template/neo-pipeline-cmps/src/assets/img/table.svg +1 -0
- package/template/neo-pipeline-cmps/src/components/filterBar__c/README.md +24 -0
- package/template/neo-pipeline-cmps/src/components/filterBar__c/common.scss +29 -0
- package/template/neo-pipeline-cmps/src/components/filterBar__c/index.tsx +731 -0
- package/template/neo-pipeline-cmps/src/components/filterBar__c/model.ts +52 -0
- package/template/neo-pipeline-cmps/src/components/filterBar__c/style.scss +119 -0
- package/template/neo-pipeline-cmps/src/components/pipelineFunnel__c/README.md +39 -0
- package/template/neo-pipeline-cmps/src/components/pipelineFunnel__c/index.tsx +416 -0
- package/template/neo-pipeline-cmps/src/components/pipelineFunnel__c/model.ts +80 -0
- package/template/neo-pipeline-cmps/src/components/pipelineFunnel__c/style.scss +83 -0
- package/template/neo-pipeline-cmps/src/components/showHealthResult__c/index.tsx +470 -0
- package/template/neo-pipeline-cmps/src/components/showHealthResult__c/model.ts +45 -0
- package/template/neo-pipeline-cmps/src/components/showHealthResult__c/style.scss +137 -0
- package/template/neo-pipeline-cmps/src/components/simpleTable__c/README.md +89 -0
- package/template/neo-pipeline-cmps/src/components/simpleTable__c/common.scss +195 -0
- package/template/neo-pipeline-cmps/src/components/simpleTable__c/index.tsx +667 -0
- package/template/neo-pipeline-cmps/src/components/simpleTable__c/model.ts +124 -0
- package/template/neo-pipeline-cmps/src/components/simpleTable__c/style.scss +192 -0
- package/template/neo-pipeline-cmps/src/components/stageSwitch__c/README.md +36 -0
- package/template/neo-pipeline-cmps/src/components/stageSwitch__c/index.tsx +513 -0
- package/template/neo-pipeline-cmps/src/components/stageSwitch__c/model.ts +71 -0
- package/template/{neo-bi-cmps → neo-pipeline-cmps}/src/components/stageSwitch__c/style.scss +4 -2
- package/template/neo-pipeline-cmps/src/components/stageTimeChart__c/README.md +37 -0
- package/template/neo-pipeline-cmps/src/components/stageTimeChart__c/index.tsx +455 -0
- package/template/neo-pipeline-cmps/src/components/stageTimeChart__c/model.ts +106 -0
- package/template/{neo-bi-cmps → neo-pipeline-cmps}/src/components/stageTimeChart__c/style.scss +3 -2
- package/template/neo-pipeline-cmps/src/utils/common.ts +229 -0
- package/template/neo-pipeline-cmps/src/utils/filter2chartFilter.ts +266 -0
- package/template/neo-pipeline-cmps/src/utils/filterBar.ts +140 -0
- package/template/neo-pipeline-cmps/src/utils/pipelineFunnel.ts +343 -0
- package/template/neo-pipeline-cmps/src/utils/queryByCustomSQL.ts +121 -0
- package/template/neo-pipeline-cmps/src/utils/requestDebounce.ts +22 -0
- package/template/neo-pipeline-cmps/src/utils/simpleTable.tsx +349 -0
- package/template/neo-pipeline-cmps/src/utils/stageSwitch.ts +15 -0
- package/template/neo-pipeline-cmps/src/utils/stageTimeChart.ts +90 -0
- package/template/neo-pipeline-cmps/src/utils/targetNumber.ts +12 -0
- package/template/neo-pipeline-cmps/tsconfig.json +40 -0
- package/template/neo-web-entity-grid/package.json +2 -2
- package/template/neo-web-form/package.json +2 -2
- package/template/neo-web-form/src/components/batchAddTable__c/index.tsx +161 -41
- package/template/neo-web-form/src/components/batchAddTable__c/model.ts +4 -2
- package/template/react-custom-cmp-template/package.json +1 -1
- package/template/react-ts-custom-cmp-template/package.json +1 -1
- package/template/vue2-custom-cmp-template/package.json +1 -1
- package/template/asset-manage-template/src/utils/axiosFetcher.ts +0 -37
- package/template/asset-manage-template/src/utils/queryObjectData.ts +0 -112
- package/template/asset-manage-template/src/utils/xobjects.ts +0 -162
- package/template/neo-bi-cmps/.npmrc copy +0 -1
- package/template/neo-bi-cmps/src/components/aiCommitDrawer__c/README.md +0 -52
- package/template/neo-bi-cmps/src/components/aiCommitDrawer__c/index.tsx +0 -183
- package/template/neo-bi-cmps/src/components/aiCommitDrawer__c/model.ts +0 -90
- package/template/neo-bi-cmps/src/components/aiCommitDrawer__c/style.scss +0 -218
- package/template/neo-bi-cmps/src/components/forecastChart__c/README.md +0 -31
- package/template/neo-bi-cmps/src/components/forecastChart__c/index.tsx +0 -158
- package/template/neo-bi-cmps/src/components/forecastChart__c/model.ts +0 -40
- package/template/neo-bi-cmps/src/components/forecastChart__c/style.scss +0 -154
- package/template/neo-bi-cmps/src/components/forecastGrid__c/README.md +0 -36
- package/template/neo-bi-cmps/src/components/forecastGrid__c/index.tsx +0 -86
- package/template/neo-bi-cmps/src/components/forecastGrid__c/model.ts +0 -62
- package/template/neo-bi-cmps/src/components/forecastGrid__c/style.scss +0 -48
- package/template/neo-bi-cmps/src/components/gapCloser__c/README.md +0 -24
- package/template/neo-bi-cmps/src/components/gapCloser__c/index.tsx +0 -100
- package/template/neo-bi-cmps/src/components/gapCloser__c/model.ts +0 -46
- package/template/neo-bi-cmps/src/components/gapCloser__c/style.scss +0 -60
- package/template/neo-bi-cmps/src/components/kpiCards__c/README.md +0 -35
- package/template/neo-bi-cmps/src/components/kpiCards__c/index.tsx +0 -70
- package/template/neo-bi-cmps/src/components/kpiCards__c/model.ts +0 -50
- package/template/neo-bi-cmps/src/components/kpiCards__c/style.scss +0 -33
- package/template/neo-bi-cmps/src/components/oppList__c/README.md +0 -52
- package/template/neo-bi-cmps/src/components/oppList__c/index.tsx +0 -285
- package/template/neo-bi-cmps/src/components/oppList__c/model.ts +0 -86
- package/template/neo-bi-cmps/src/components/oppList__c/style.scss +0 -133
- package/template/neo-bi-cmps/src/components/pipelineFunnel__c/README.md +0 -39
- package/template/neo-bi-cmps/src/components/pipelineFunnel__c/index.tsx +0 -130
- package/template/neo-bi-cmps/src/components/pipelineFunnel__c/model.ts +0 -66
- package/template/neo-bi-cmps/src/components/pipelineFunnel__c/style.scss +0 -133
- package/template/neo-bi-cmps/src/components/stageSwitch__c/README.md +0 -36
- package/template/neo-bi-cmps/src/components/stageSwitch__c/index.tsx +0 -118
- package/template/neo-bi-cmps/src/components/stageSwitch__c/model.ts +0 -92
- package/template/neo-bi-cmps/src/components/stageTimeChart__c/README.md +0 -37
- package/template/neo-bi-cmps/src/components/stageTimeChart__c/index.tsx +0 -126
- package/template/neo-bi-cmps/src/components/stageTimeChart__c/model.ts +0 -57
- package/template/neo-bi-cmps/src/components/tabSwitch__c/README.md +0 -37
- package/template/neo-bi-cmps/src/components/tabSwitch__c/index.tsx +0 -80
- package/template/neo-bi-cmps/src/components/tabSwitch__c/model.ts +0 -45
- package/template/neo-bi-cmps/src/components/tabSwitch__c/style.scss +0 -37
- package/template/neo-bi-cmps/src/utils/axiosFetcher.ts +0 -37
- package/template/neo-bi-cmps/src/utils/queryObjectData.ts +0 -76
- package/template/neo-bi-cmps/src/utils/xobjects.ts +0 -162
- package/template/neo-custom-cmp-template/src/utils/axiosFetcher.ts +0 -37
- package/template/neo-custom-cmp-template/src/utils/queryObjectData.ts +0 -112
- package/template/neo-custom-cmp-template/src/utils/xobjects.ts +0 -162
- package/template/neo-h5-cmps/src/utils/axiosFetcher.ts +0 -37
- package/template/neo-h5-cmps/src/utils/xobjects.ts +0 -167
- package/template/neo-order-cmps/src/utils/axiosFetcher.ts +0 -37
- package/template/neo-order-cmps/src/utils/queryObjectData.ts +0 -112
- package/template/neo-order-cmps/src/utils/xobjects.ts +0 -162
- package/template/neo-web-entity-grid/src/utils/axiosFetcher.ts +0 -37
- package/template/neo-web-entity-grid/src/utils/queryObjectData.ts +0 -112
- package/template/neo-web-entity-grid/src/utils/xobjects.ts +0 -167
- package/template/neo-web-form/src/utils/axiosFetcher.ts +0 -37
- package/template/neo-web-form/src/utils/queryObjectData.ts +0 -112
- package/template/neo-web-form/src/utils/xobjects.ts +0 -167
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file XObject table component editor descriptor file (simplified version)
|
|
3
|
+
* @description Defines the component configuration for the Neo platform editor
|
|
4
|
+
* @author Neo Custom Widget CLI
|
|
5
|
+
* @version 1.0.0
|
|
6
|
+
*/
|
|
7
|
+
export class SimpleTableModel {
|
|
8
|
+
/**
|
|
9
|
+
* Component type identifier
|
|
10
|
+
* Used to uniquely identify the component; automatically generated from the current component directory name during build
|
|
11
|
+
* Note: This field is automatically replaced during build and does not need to be set manually
|
|
12
|
+
*/
|
|
13
|
+
// cmpType: string = 'simpleTable';
|
|
14
|
+
|
|
15
|
+
/** Component name, displayed in the editor's left component panel */
|
|
16
|
+
label: string = 'Opportunity List';
|
|
17
|
+
|
|
18
|
+
/** Component description, displayed in the editor's left component panel */
|
|
19
|
+
description: string =
|
|
20
|
+
'Data table component based on XObject, supports data display only, does not support CRUD operations';
|
|
21
|
+
|
|
22
|
+
/** Category tags, determines which category the component appears under in the editor's left component panel */
|
|
23
|
+
// tags: string[] = ['Custom Components'];
|
|
24
|
+
|
|
25
|
+
/** Component icon, displayed in the editor's left component panel */
|
|
26
|
+
iconUrl: string = 'https://custom-widgets.bj.bcebos.com/table.svg';
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Sets the page types supported by the component
|
|
30
|
+
*
|
|
31
|
+
* Page types available in the current NeoCRM platform:
|
|
32
|
+
* all: 1 All pages
|
|
33
|
+
* entityFormPage: 4 Entity form page
|
|
34
|
+
* customPage: 6 Custom page
|
|
35
|
+
*/
|
|
36
|
+
targetPage: string[] = ['all'];
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Sets the device types supported by the component
|
|
40
|
+
*
|
|
41
|
+
* Device types available in the current NeoCRM platform:
|
|
42
|
+
* web: Web
|
|
43
|
+
* mobile: Mobile
|
|
44
|
+
*/
|
|
45
|
+
targetDevice: string = 'web';
|
|
46
|
+
|
|
47
|
+
/** Default property data when first inserted into a page */
|
|
48
|
+
defaultComProps = {
|
|
49
|
+
title: 'Opportunity List',
|
|
50
|
+
activeStage: 'Prospecting',
|
|
51
|
+
description: 'Filtered by Close Date, Opportunity Owner, Business Type',
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
// List of functions supported by the current component (other components can trigger these functions)
|
|
55
|
+
functions = [
|
|
56
|
+
{
|
|
57
|
+
apiKey: 'loadData',
|
|
58
|
+
label: 'Refresh Table',
|
|
59
|
+
helpTextKey: 'Refresh the current table data',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
apiKey: 'setFilter',
|
|
63
|
+
label: 'Set Filter Conditions',
|
|
64
|
+
helpTextKey:
|
|
65
|
+
'Set filter conditions consistent with the chart (closeDate / ownerId / entityType), and re-query the table',
|
|
66
|
+
funcInParams: [
|
|
67
|
+
{
|
|
68
|
+
apiKey: 'filter',
|
|
69
|
+
label: 'Filter condition data',
|
|
70
|
+
type: 'Object',
|
|
71
|
+
required: false,
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
apiKey: 'updateActiveStage',
|
|
77
|
+
label: 'Update Active Stage',
|
|
78
|
+
helpTextKey: 'Set the currently active sales stage',
|
|
79
|
+
funcInParams: [
|
|
80
|
+
{
|
|
81
|
+
apiKey: 'activeStage',
|
|
82
|
+
label: 'Current active stage',
|
|
83
|
+
type: 'String',
|
|
84
|
+
required: false,
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
];
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Component property configuration schema
|
|
92
|
+
* Supports static configuration: propsSchema, with lower priority than propsSchemaCreator
|
|
93
|
+
* Defines the configurable properties of the component in the editor
|
|
94
|
+
*/
|
|
95
|
+
propsSchema = [
|
|
96
|
+
{
|
|
97
|
+
type: 'panelInput',
|
|
98
|
+
name: 'title',
|
|
99
|
+
label: 'Table Title',
|
|
100
|
+
placeholder: 'Enter table title',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: 'panelInput',
|
|
104
|
+
name: 'description',
|
|
105
|
+
label: 'Table Description',
|
|
106
|
+
placeholder: 'Description text displayed below the title',
|
|
107
|
+
},
|
|
108
|
+
/*
|
|
109
|
+
{
|
|
110
|
+
type: 'xObjectDataApi', // Configuration item for fetching entity business data list
|
|
111
|
+
name: 'xObjectDataApi',
|
|
112
|
+
label: 'Entity Data Source',
|
|
113
|
+
value: {
|
|
114
|
+
xObjectApiKey: 'customContact__c',
|
|
115
|
+
fields: ['name', 'phone__c'],
|
|
116
|
+
},
|
|
117
|
+
placeholder: 'Select entity data source',
|
|
118
|
+
custom: true,
|
|
119
|
+
},
|
|
120
|
+
*/
|
|
121
|
+
];
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export default SimpleTableModel;
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/** Table header AI icon: same usage as openChatPageBtn's openChatPageBtn-icon (background image) */
|
|
2
|
+
.simpleTable-th-title-with-ai-icon {
|
|
3
|
+
display: inline-flex;
|
|
4
|
+
align-items: center;
|
|
5
|
+
gap: 6px;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.simpleTable-th-ai-icon {
|
|
9
|
+
width: 18px;
|
|
10
|
+
height: 18px;
|
|
11
|
+
flex-shrink: 0;
|
|
12
|
+
background-image: url('../../assets/img/aiLogo.png');
|
|
13
|
+
background-size: contain;
|
|
14
|
+
background-position: center;
|
|
15
|
+
background-repeat: no-repeat;
|
|
16
|
+
display: inline-block;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.simpleTable__c {
|
|
20
|
+
background: #fff;
|
|
21
|
+
border-radius: 8px;
|
|
22
|
+
|
|
23
|
+
.table-wrapper {
|
|
24
|
+
// border: 1px solid #ddd;
|
|
25
|
+
padding: 16px 20px;
|
|
26
|
+
display: flex;
|
|
27
|
+
flex-direction: column;
|
|
28
|
+
overflow: hidden;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.panel-header {
|
|
32
|
+
padding: 12px 0 6px 0;
|
|
33
|
+
background: #fff;
|
|
34
|
+
border-bottom: 1px solid #ddd;
|
|
35
|
+
display: flex;
|
|
36
|
+
justify-content: space-between;
|
|
37
|
+
align-items: flex-start;
|
|
38
|
+
|
|
39
|
+
.panel-header-text {
|
|
40
|
+
flex: 1;
|
|
41
|
+
min-width: 0;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
h3 {
|
|
45
|
+
margin: 0;
|
|
46
|
+
font-size: 14px;
|
|
47
|
+
font-weight: 600;
|
|
48
|
+
color: #262626;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.panel-header-description {
|
|
52
|
+
margin: 6px 0 0;
|
|
53
|
+
font-size: 12px;
|
|
54
|
+
color: #888;
|
|
55
|
+
line-height: 1.5;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.panel-header-summary {
|
|
59
|
+
flex-shrink: 0;
|
|
60
|
+
margin-left: 12px;
|
|
61
|
+
padding-top: 2px;
|
|
62
|
+
font-size: 13px;
|
|
63
|
+
font-weight: 500;
|
|
64
|
+
color: #666;
|
|
65
|
+
line-height: 1.4;
|
|
66
|
+
text-align: right;
|
|
67
|
+
white-space: nowrap;
|
|
68
|
+
|
|
69
|
+
.summary-amount {
|
|
70
|
+
font-weight: 700;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.table-container {
|
|
76
|
+
flex: 1;
|
|
77
|
+
overflow-y: auto;
|
|
78
|
+
|
|
79
|
+
.ant-table {
|
|
80
|
+
.ant-table-thead > tr > th {
|
|
81
|
+
background-color: #f9f9f9;
|
|
82
|
+
font-weight: 600;
|
|
83
|
+
color: #262626;
|
|
84
|
+
border-bottom: 1px solid #eee;
|
|
85
|
+
padding: 10px;
|
|
86
|
+
text-align: left;
|
|
87
|
+
font-size: 13px;
|
|
88
|
+
position: sticky;
|
|
89
|
+
top: 0;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.ant-table-tbody > tr > td {
|
|
93
|
+
border-bottom: 1px solid #eee;
|
|
94
|
+
padding: 10px;
|
|
95
|
+
text-align: left;
|
|
96
|
+
font-size: 13px;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.ant-table-tbody > tr:hover > td {
|
|
100
|
+
background-color: #f5f5f5;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.ant-empty {
|
|
105
|
+
padding: 40px 0;
|
|
106
|
+
|
|
107
|
+
.ant-empty-description {
|
|
108
|
+
color: #8c8c8c;
|
|
109
|
+
font-size: 14px;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.ant-spin {
|
|
115
|
+
.ant-spin-dot {
|
|
116
|
+
font-size: 20px;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.ant-spin-text {
|
|
120
|
+
color: #8c8c8c;
|
|
121
|
+
font-size: 14px;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.simpleTable-opp-name-link {
|
|
126
|
+
color: #1677ff;
|
|
127
|
+
text-decoration: none;
|
|
128
|
+
cursor: pointer;
|
|
129
|
+
|
|
130
|
+
&:hover {
|
|
131
|
+
text-decoration: underline;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.opp-health-tag {
|
|
136
|
+
display: inline-block;
|
|
137
|
+
padding: 2px 10px;
|
|
138
|
+
border-radius: 4px;
|
|
139
|
+
font-size: 12px;
|
|
140
|
+
font-weight: 500;
|
|
141
|
+
line-height: 1.4;
|
|
142
|
+
white-space: nowrap;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.opp-health-tag--green {
|
|
146
|
+
background: #22c55f;
|
|
147
|
+
color: #fff;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.opp-health-tag--yellow {
|
|
151
|
+
background: #f59e0d;
|
|
152
|
+
color: #fff;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.opp-health-tag--red {
|
|
156
|
+
background: #ef4444;
|
|
157
|
+
color: #fff;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Responsive design
|
|
161
|
+
@media (max-width: 768px) {
|
|
162
|
+
.panel-header {
|
|
163
|
+
padding: 12px;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.table-container {
|
|
167
|
+
.ant-table {
|
|
168
|
+
.ant-table-thead > tr > th,
|
|
169
|
+
.ant-table-tbody > tr > td {
|
|
170
|
+
padding: 8px 12px;
|
|
171
|
+
font-size: 12px;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
@media (max-width: 576px) {
|
|
178
|
+
.panel-header {
|
|
179
|
+
padding: 10px;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.table-container {
|
|
183
|
+
.ant-table {
|
|
184
|
+
.ant-table-thead > tr > th,
|
|
185
|
+
.ant-table-tbody > tr > td {
|
|
186
|
+
padding: 6px 8px;
|
|
187
|
+
font-size: 12px;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# StageSwitch Component
|
|
2
|
+
|
|
3
|
+
Stage switch card component that toggles between different sales stage data.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import StageSwitch from './components/stageSwitch__c';
|
|
9
|
+
|
|
10
|
+
<StageSwitch
|
|
11
|
+
stages={[
|
|
12
|
+
{ key: 'Prospecting', name: 'Prospecting', amount: '$3.2M', count: 15 },
|
|
13
|
+
{ key: 'Proposal', name: 'Proposal', amount: '$4.5M', count: 8 },
|
|
14
|
+
]}
|
|
15
|
+
activeStage="Prospecting"
|
|
16
|
+
onStageChange={(stage) => console.log('Changed:', stage.key)}
|
|
17
|
+
/>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Props
|
|
21
|
+
|
|
22
|
+
| Property | Description | Type | Default |
|
|
23
|
+
|----------|-------------|------|---------|
|
|
24
|
+
| stages | Stage data | StageTab[] | [] |
|
|
25
|
+
| activeStage | Current stage | string | First stage |
|
|
26
|
+
| onStageChange | Stage switch callback | (stage: StageTab) => void | - |
|
|
27
|
+
|
|
28
|
+
## StageTab
|
|
29
|
+
|
|
30
|
+
| Property | Description | Type |
|
|
31
|
+
|----------|-------------|------|
|
|
32
|
+
| key | Unique identifier | string |
|
|
33
|
+
| name | Stage name | string |
|
|
34
|
+
| amount | Amount | string |
|
|
35
|
+
| count | Count | number |
|
|
36
|
+
| changes | Change data | { amount, amountDirection, count, countDirection } |
|