neo-cmp-cli 1.10.7 → 1.10.8
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/config/default.config.js +1 -1
- package/dist/main2.js +1 -1
- package/dist/neo/neoRequire.js +1 -1
- package/dist/package.json.js +1 -1
- package/dist/plugins/babel-plugin-add-data-scope.js +1 -0
- package/package.json +1 -1
- package/template/antd-custom-cmp-template/package.json +1 -1
- package/template/antd-custom-cmp-template/src/components/dataDashboard__c/index.tsx +1 -1
- package/template/antd-custom-cmp-template/src/components/dataDashboard__c/style.scss +5 -5
- package/template/antd-custom-cmp-template/src/components/infoCard__c/index.tsx +1 -1
- package/template/antd-custom-cmp-template/src/components/infoCard__c/style.scss +1 -1
- package/template/antd-custom-cmp-template/tsconfig.json +1 -1
- package/template/echarts-custom-cmp-template/package.json +1 -1
- package/template/echarts-custom-cmp-template/src/components/chartWidget__c/index.tsx +1 -1
- package/template/echarts-custom-cmp-template/src/components/chartWidget__c/style.scss +3 -3
- package/template/echarts-custom-cmp-template/src/components/mapWidget__c/index.tsx +1 -1
- package/template/echarts-custom-cmp-template/src/components/mapWidget__c/style.scss +2 -2
- package/template/echarts-custom-cmp-template/tsconfig.json +1 -1
- package/template/empty-custom-cmp-template/tsconfig.json +9 -1
- package/template/neo-custom-cmp-template/package.json +1 -1
- package/template/neo-custom-cmp-template/src/components/entityCardList__c/index.tsx +1 -1
- package/template/neo-custom-cmp-template/src/components/entityCardList__c/style.scss +1 -1
- package/template/neo-custom-cmp-template/src/components/entityDetail__c/README.md +1 -1
- package/template/neo-custom-cmp-template/src/components/entityDetail__c/index.tsx +1 -1
- package/template/neo-custom-cmp-template/src/components/entityDetail__c/style.scss +2 -2
- package/template/neo-custom-cmp-template/src/components/entityForm__c/index.tsx +1 -1
- package/template/neo-custom-cmp-template/src/components/entityForm__c/style.scss +1 -1
- package/template/neo-custom-cmp-template/src/components/entityTable__c/index.tsx +1 -1
- package/template/neo-custom-cmp-template/src/components/entityTable__c/style.scss +1 -1
- package/template/neo-custom-cmp-template/src/components/simpleCmp__c/index.tsx +1 -1
- package/template/neo-custom-cmp-template/src/components/simpleCmp__c/style.scss +1 -1
- package/template/neo-custom-cmp-template/tsconfig.json +1 -1
- package/template/react-custom-cmp-template/package.json +1 -1
- package/template/react-custom-cmp-template/src/components/infoCard__c/index.jsx +1 -1
- package/template/react-custom-cmp-template/src/components/infoCard__c/style.scss +1 -1
- package/template/react-ts-custom-cmp-template/package.json +1 -1
- package/template/react-ts-custom-cmp-template/src/components/listWidget__c/index.tsx +1 -1
- package/template/react-ts-custom-cmp-template/src/components/listWidget__c/style.scss +3 -3
- package/template/react-ts-custom-cmp-template/tsconfig.json +2 -1
- package/template/vue2-custom-cmp-template/package.json +1 -1
- package/template/vue2-custom-cmp-template/src/components/vueInfoCard__c/index.vue +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("akfun"),s=require("node:path");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("akfun"),s=require("node:path"),t=require("../plugins/babel-plugin-add-data-scope.js");var o,a;exports.__require=function(){if(a)return o;a=1;const{resolve:r}=e,i=s,n=t.__require(),l=c("../loaders/component-scope-style-loader.js");function c(e){return i.resolve(__dirname,e)}const u={settings:{enableESLint:!1,enableESLintFix:!1,enableStyleLint:!1,enableStyleLintFix:!1},webpack:{resolve:{extensions:[".js",".jsx",".ts",".tsx",".vue",".min.js",".json"],alias:{"@":r("src")}},createDeclaration:!1,ignoreNodeModules:!1,allowList:[],externals:{},projectDir:["src"],template:c("../../template/initData/defaultTemplate.html"),sassResources:[],babelPlugins:[["import",{libraryName:"antd",style:"css"}],[n,{scopeKey:"data-scope"}]],moduleRules:[{enforce:"pre",test:/(index|style)\.(scss|less)$/i,use:[{loader:l,options:{scopeKey:"data-scope"}}]}]},envParams:{common:{"#version#":"20221229.1"},local:{"#dataApiBase#":"http://localhost:1024","#assetsPublicPath#":"http://localhost:1024","#routeBasePath#":"/"},online:{"#dataApiBase#":"/","#assetsPublicPath#":"","#routeBasePath#":"/"}},dev:{NODE_ENV:"development",port:80,autoOpenBrowser:!0,assetsPublicPath:"/",assetsSubDirectory:"",hostname:"localhost",proxyTable:{},cssSourceMap:!0},build:{NODE_ENV:"production",assetsRoot:r("dist"),assetsPublicPath:"/",assetsSubDirectory:"",productionSourceMap:!1,productionGzip:!1,productionGzipExtensions:["js","css","json"],bundleAnalyzerReport:!1},build2lib:{NODE_ENV:"production",libraryName:"",assetsRoot:r("dist"),assetsPublicPath:"/",assetsSubDirectory:"",productionSourceMap:!1,productionGzip:!1,productionGzipExtensions:["js","css","json"],bundleAnalyzerReport:!1},linkDebug:{NODE_ENV:"development",closeHtmlWebpackPlugin:!0,autoOpenBrowser:!1,cssExtract:!1,consoleInfo:"当前自定义组件可用外链地址"},publish2oss:{output:{filename:"[name].js",library:{type:"var",export:"default"},globalObject:"this"},cssExtract:!1,ossType:"ali",ossConfig:{endpoint:"https://oss-cn-beijing.aliyuncs.com",AccessKeyId:"xx",AccessKeySecret:"xx",bucket:"neo-widgets"},assetsRoot:r("dist")},pushCmp:{output:{filename:"[name].js",library:{type:"var",export:"default"},globalObject:"this"},cssExtract:!1,assetsRoot:r("dist")}};return o=u};
|
package/dist/main2.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("akfun");require("lodash");const r=require("./module/neoInit.js"),i=require("./module/neoInitByCopy.js"),s=require("./module/inspect.js"),t=require("./utils/neoConfigInit.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("akfun");require("lodash");const r=require("./module/neoInit.js"),i=require("./module/neoInitByCopy.js"),s=require("./module/inspect.js"),t=require("./utils/neoConfigInit.js"),u=require("./utils/neoParams.js"),o=require("./config/index.js"),l=require("./oss/publish2oss.js"),p=require("./neo/pushCmp.js"),n=require("./neo/pullCmp.js"),c=require("./neo/deleteCmp.js"),d=require("./utils/cmpUtils/previewCmp.js"),b=require("./utils/generateEntries.js"),a=require("./utils/cmpUtils/createCmpByTemplate.js"),m=require("./utils/projectUtils/createCmpProjectByTemplate.js"),q=require("./utils/projectUtils/openProject.js"),_=require("./utils/configureNeoBuild.js"),y=require("./utils/common.js"),g=require("./utils/projectNameValidator.js"),j=require("./utils/cmpUtils/getCmpTypeByDir.js"),v=require("./neo/neoService.js"),T=require("./neo/neoLogin.js"),f=require("./utils/projectUtils/hasNeoProject.js"),C=require("./plugins/babel-plugin-add-data-scope.js");var x,h;exports.__require=function(){if(h)return x;h=1;const E=e,N=r.__require(),w=i.__require(),B=s.__require(),D=t.__require(),{consoleTag:P}=u.__require(),k=o.__require(),I=l.__require(),L=p.__require(),M=n.__require(),S=c.__require(),U=d.__require(),O=b.__require(),A=a.__require(),R=m.__require(),V=q.__require(),{configureNeoBuild:z}=_.__require(),{errorLog:F,successLog:G}=y.__require(),{validateProjectName:H}=g.__require(),J=j.__require(),K=v.__require(),Q=T.__require(),W=f.__require(),X=C.__require();function Y(e,r){const{entryType:i,cmpType:s}=r;let t=[],u={};try{const{entries:r,cmpTypes:o,defaultExports:l}=O({configEntry:e.entry,disableAutoRegister:e.disableAutoRegister,componentsDir:k.componentsDir,entryType:i,cmpType:s});r&&Object.keys(r).length>0&&(e.entry=r,t=o,console.info("已自动生成 entry 入口配置:",r)),u=l}catch(e){F(e.message||e.msg),process.exit(1)}return{cmpTypes:t,defaultExports:u}}function Z(e){return Object.assign(k.build2lib,e)}return x={babelPluginAddDataScope:X,neoInit:N,neoInitByCopy:w,inspect:B,neoConfigInit:D,projectConfig:k,consoleTag:P,errorLog:F,successLog:G,validateProjectName:H,getCmpTypeByDir:J,NeoService:K,NeoLoginService:Q,hasNeoProject:W,createCmpProjectByTemplate:R,createCmpByTemplate:A,dev:()=>{k.dev||(F("未找到 dev 相关配置。"),process.exit(1)),E.dev(k,P)},previewCmp:e=>{e||(F("请输入要预览的组件名称。"),process.exit(1)),k.preview||(F("未找到 preview 相关配置。"),process.exit(1)),k.dev=Object.assign(k.dev,k.preview),delete k.preview,U(k,e)},linkDebug:()=>{k.linkDebug||(F("未找到 debug 相关配置。"),process.exit(1)),k.dev=Object.assign(k.dev,k.linkDebug),delete k.linkDebug,delete k.dev.ignoreNodeModules,k.webpack.ignoreNodeModules=!1;const{cmpTypes:e,defaultExports:r}=Y(k.dev,{entryType:"linkDebug"});z(k.dev,{cmpTypes:e,defaultExports:r,verbose:!0,excludeModel:!1}),E.dev(k,P)},build:()=>E.build("build",k,P),build2lib:()=>{Y(k.build2lib,{entryType:"widget"}),E.build("lib",k,P)},publish2oss:e=>{const r=k.publish2oss;k.build2lib=Z(r);const{cmpTypes:i,defaultExports:s}=Y(k.build2lib,{entryType:"widget",cmpType:e});z(k.build2lib,{cmpTypes:i,defaultExports:s,verbose:!0,excludeModel:!0}),E.build("lib",k,P,()=>{I(r.ossType,r.ossConfig,r.assetsRoot)})},pushCmp:e=>{const{pushCmp:r}=k;k.build2lib=Z(r);const{cmpTypes:i,defaultExports:s}=Y(k.build2lib,{entryType:"widget",cmpType:e});z(k.build2lib,{cmpTypes:i,defaultExports:s,verbose:!1,excludeModel:!0}),E.build("lib",k,P,()=>{L(r,e)})},pullCmp:(e,r)=>{M(e,r)},deleteCmp:(e,r)=>{S(e,r)},build2esm:()=>E.build2esm(k,P),openEditor:V},x};
|
package/dist/neo/neoRequire.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("lodash");var e,n;exports.__require=function(){if(n)return e;n=1;const s=o,d={react:"^16.13.1","react-dom":"^16.13.1",mobx:"^6.3.0","mobx-react":"^7.0.0","mobx-state-tree":"^5.4.0",echarts:"5.4.2",antd:"4.9.4","antd-mobile":"2.3.4","@ant-design/icons":"^4.8.0","video-react":"0.14.1",axios:"^0.27.2",classnames:"^2.3.2",qs:"^6.11.0",lodash:"^4.17.21","neo-ui-component-web":"^1.0.0","neo-ui-common":"^1.0.0","neo-open-api":"^1.1.9",amis:"^1.1.5"};return e={initNeoRequire:()=>{window.neoRequire||(window.neoRequire=o=>window.__NeoCommonModules[o]||window[o])},addNeoCommonModules:o=>{if(window.__NeoCommonModules||(window.__NeoCommonModules={}),isPlainObject(o)){Object.keys(o).forEach(e=>{const n=o[e],s=window.__NeoCommonModules[e];if(!Object.isFrozen(s)&&s&&Object.keys(s).length<3)try{window.__NeoCommonModules[e]=Object.assign(s,n),void 0!==n.__esModule&&(window.__NeoCommonModules[e].__esModule=n.__esModule),void 0!==n.default&&(window.__NeoCommonModules[e].default=n.default)}catch(o){console.warn(`window.__NeoCommonModules[${e}] Object.assign error:`,o),window.__NeoCommonModules[e]=n}else window.__NeoCommonModules[e]=n})}},addNeoRemoteDeps:o=>{window.__NeoCommonModules||(window.__NeoCommonModules={}),window.__NeoCommonModules.__neoRemoteDeps||(window.__NeoCommonModules.__neoRemoteDeps={}),s.isPlainObject(o)&&(window.__NeoCommonModules.__neoRemoteDeps=Object.assign(window.__NeoCommonModules.__neoRemoteDeps,o))},getExternalsByNeoCommonModules:o=>{const e={};return Object.keys(d).forEach(o=>{e[o]=`commonjs ${o}`}),o&&o.length>0&&o.forEach(o=>{e[o]=`commonjs ${o}`}),e}}};
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("lodash");var e,n;exports.__require=function(){if(n)return e;n=1;const s=o,d={react:"^16.13.1","react-dom":"^16.13.1",mobx:"^6.3.0","mobx-react":"^7.0.0","mobx-state-tree":"^5.4.0",echarts:"5.4.2",antd:"4.9.4","antd-mobile":"2.3.4","@ant-design/icons":"^4.8.0","video-react":"0.14.1",axios:"^0.27.2",classnames:"^2.3.2",qs:"^6.11.0",lodash:"^4.17.21","neo-ui-component-web":"^1.0.0","neo-ui-component-h5":"^1.0.0","neo-ui-common":"^1.0.0","neo-open-api":"^1.1.9",amis:"^1.1.5"};return e={initNeoRequire:()=>{window.neoRequire||(window.neoRequire=o=>window.__NeoCommonModules[o]||window[o])},addNeoCommonModules:o=>{if(window.__NeoCommonModules||(window.__NeoCommonModules={}),isPlainObject(o)){Object.keys(o).forEach(e=>{const n=o[e],s=window.__NeoCommonModules[e];if(!Object.isFrozen(s)&&s&&Object.keys(s).length<3)try{window.__NeoCommonModules[e]=Object.assign(s,n),void 0!==n.__esModule&&(window.__NeoCommonModules[e].__esModule=n.__esModule),void 0!==n.default&&(window.__NeoCommonModules[e].default=n.default)}catch(o){console.warn(`window.__NeoCommonModules[${e}] Object.assign error:`,o),window.__NeoCommonModules[e]=n}else window.__NeoCommonModules[e]=n})}},addNeoRemoteDeps:o=>{window.__NeoCommonModules||(window.__NeoCommonModules={}),window.__NeoCommonModules.__neoRemoteDeps||(window.__NeoCommonModules.__neoRemoteDeps={}),s.isPlainObject(o)&&(window.__NeoCommonModules.__neoRemoteDeps=Object.assign(window.__NeoCommonModules.__neoRemoteDeps,o))},getExternalsByNeoCommonModules:o=>{const e={};return Object.keys(d).forEach(o=>{e[o]=`commonjs ${o}`}),o&&o.length>0&&o.forEach(o=>{e[o]=`commonjs ${o}`}),e}}};
|
package/dist/package.json.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var e="1.10.
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var e="1.10.8";const o={version:e};exports.default=o,exports.version=e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("node:path");var t,n;exports.__require=function(){if(n)return t;n=1;const r=e;return t=function(e,t){const{types:n}=e,i=(t||{}).scopeKey||"data-scope";function s(e){if(!e)return"";try{const t=r.dirname(e);return r.basename(t)||""}catch(e){return""}}const o=new Set(["jsx","jsxs","jsxDEV","_jsx","_jsxs","_jsxDEV"]);function a(e){if(!e||!e.isCallExpression())return!1;const t=e.get("callee");return function(e){return!!e&&(!!(e.isMemberExpression()&&n.isIdentifier(e.get("object").node,{name:"React"})&&n.isIdentifier(e.get("property").node,{name:"createElement"}))||e.isIdentifier({name:"createElement"}))}(t)||function(e){return e&&e.isIdentifier()&&o.has(e.node.name)}(t)}function c(e){const t=n.isValidIdentifier(i)?n.identifier(i):n.stringLiteral(i);return n.objectProperty(t,n.stringLiteral(e))}function u(e,t){if(e)if(e.isNullLiteral()||e.isIdentifier({name:"undefined"}))e.replaceWith(n.objectExpression([c(t)]));else if(e.isObjectExpression()){if(e.node.properties.some(e=>!(!n.isObjectProperty(e)||e.computed)&&(!(!n.isIdentifier(e.key)||e.key.name!==i)||n.isStringLiteral(e.key)&&e.key.value===i)))return;e.node.properties.unshift(c(t))}else{e.replaceWith(n.callExpression(n.memberExpression(n.identifier("Object"),n.identifier("assign")),[n.objectExpression([c(t)]),e.node]))}}function f(e,t){if(!a(e))return!1;const r=e.get("arguments"),i=function(e){return!!(e&&e.node&&(n.isIdentifier(e.node,{name:"Fragment"})||n.isMemberExpression(e.node)&&n.isIdentifier(e.node.object,{name:"React"})&&n.isIdentifier(e.node.property,{name:"Fragment"})))}(r[0]);if(i){const r=function(e,t){const r=e.get("arguments"),i=r[1];if(i&&i.isObjectExpression()){const e=i.get("properties");for(const r of e)if(r.isObjectProperty()&&!r.node.computed&&(n.isIdentifier(r.node.key)&&"children"===r.node.key.name||n.isStringLiteral(r.node.key)&&"children"===r.node.key.value)){const e=r.get("value");if(Array.isArray(e))continue;if(m(e,t))return!0}}for(let e=2;e<r.length;e++)if(m(r[e],t))return!0;return!1}(e,t);if(r)return!0}r[1]||(e.node.arguments[1]=n.objectExpression([]));return u(e.get("arguments")[1],t),!0}function d(e){return!(!e||!e.node)&&(!(!e.isJSXElement()&&!e.isJSXFragment())||(e.isArrayExpression()?e.get("elements").some(e=>d(e)):e.isConditionalExpression()?d(e.get("consequent"))||d(e.get("alternate")):e.isLogicalExpression()?d(e.get("left"))||d(e.get("right")):!!e.isCallExpression()&&(!!a(e)||e.get("arguments").some(e=>d(e)))))}function m(e,t){if(!e||!e.node)return!1;if(e.isJSXElement())return function(e,t=""){const r=e.openingElement.attributes;if(!r.some(e=>n.isJSXAttribute(e)&&e.name.name===i)){const e=n.jsxAttribute(n.jsxIdentifier(i),n.stringLiteral(t));r.unshift(e)}}(e.node,t),!0;if(e.isJSXFragment()){const n=e.get("children");for(const e of n)if(m(e,t))return!0;return!1}if(e.isArrayExpression()){const n=e.get("elements");for(const e of n)if(m(e,t))return!0;return!1}if(e.isConditionalExpression()){const n=m(e.get("consequent"),t),r=m(e.get("alternate"),t);return n||r}if(e.isLogicalExpression()){const n=m(e.get("left"),t),r=m(e.get("right"),t);return n||r}return!!e.isCallExpression()&&f(e,t)}function l(e,t){const n=e.get("argument");n.node&&m(n,t)}return{visitor:{Function(e){if(!function(e){const t=e.get("body");if(t.isBlockStatement()){let e=!1;return t.traverse({ReturnStatement(t){const n=t.get("argument");n.node&&d(n)&&(e=!0,t.stop())}}),e}return!!d(t)}(e))return;const t=s(e.hub?.file?.opts?.filename||""),n=e.get("body");n.isBlockStatement()?n.traverse({ReturnStatement(e){l(e,t)}}):m(n,t)},Class(e){const t=e.node.superClass;if(!t)return;if(!(n.isIdentifier(t)&&("Component"===t.name||"PureComponent"===t.name||"BaseCmp"===t.name)||n.isMemberExpression(t)&&n.isIdentifier(t.object)&&"React"===t.object.name))return;const r=s(e.hub?.file?.opts?.filename||"");e.traverse({ClassMethod(e){const t=e.node.key;if("method"===e.node.kind&&n.isIdentifier(t)&&"render"===t.name){const t=e.get("body");t.isBlockStatement()&&t.traverse({ReturnStatement(e){l(e,r)}})}}})},ClassMethod(e){const t=e.node.key;if("method"===e.node.kind&&n.isIdentifier(t)&&"render"===t.name){const t=s(e.hub?.file?.opts?.filename||""),n=e.get("body");n.isBlockStatement()&&n.traverse({ReturnStatement(e){l(e,t)}})}}}}}};
|
package/package.json
CHANGED
|
@@ -183,7 +183,7 @@ export default class DataDashboard extends React.PureComponent<DataDashboardProp
|
|
|
183
183
|
|
|
184
184
|
return (
|
|
185
185
|
<div
|
|
186
|
-
className={`
|
|
186
|
+
className={`dataDashboard__c ${theme} ${
|
|
187
187
|
isAnimating ? 'animating' : ''
|
|
188
188
|
}`}
|
|
189
189
|
>
|
|
@@ -214,7 +214,7 @@
|
|
|
214
214
|
}
|
|
215
215
|
|
|
216
216
|
// 主容器 - 现代化设计
|
|
217
|
-
.
|
|
217
|
+
.dataDashboard__c {
|
|
218
218
|
position: relative;
|
|
219
219
|
min-height: 100vh;
|
|
220
220
|
padding: var(--space-lg);
|
|
@@ -1307,7 +1307,7 @@
|
|
|
1307
1307
|
|
|
1308
1308
|
// 响应式设计 - 现代化移动端适配
|
|
1309
1309
|
@media (max-width: 1200px) {
|
|
1310
|
-
.
|
|
1310
|
+
.dataDashboard__c {
|
|
1311
1311
|
padding: var(--space-md);
|
|
1312
1312
|
}
|
|
1313
1313
|
|
|
@@ -1330,7 +1330,7 @@
|
|
|
1330
1330
|
}
|
|
1331
1331
|
|
|
1332
1332
|
@media (max-width: 768px) {
|
|
1333
|
-
.
|
|
1333
|
+
.dataDashboard__c {
|
|
1334
1334
|
padding: var(--space-sm);
|
|
1335
1335
|
}
|
|
1336
1336
|
|
|
@@ -1409,7 +1409,7 @@
|
|
|
1409
1409
|
}
|
|
1410
1410
|
|
|
1411
1411
|
@media (max-width: 480px) {
|
|
1412
|
-
.
|
|
1412
|
+
.dataDashboard__c {
|
|
1413
1413
|
padding: var(--space-xs);
|
|
1414
1414
|
}
|
|
1415
1415
|
|
|
@@ -1501,7 +1501,7 @@
|
|
|
1501
1501
|
}
|
|
1502
1502
|
|
|
1503
1503
|
// 额外的交互元素和微动画
|
|
1504
|
-
.
|
|
1504
|
+
.dataDashboard__c {
|
|
1505
1505
|
// 添加全局悬停效果
|
|
1506
1506
|
.metric-card,
|
|
1507
1507
|
.products-card,
|
|
@@ -40,7 +40,7 @@ export default class InfoCard extends React.PureComponent<InfoCardProps> {
|
|
|
40
40
|
const curBackgroundImage =
|
|
41
41
|
backgroundImage || 'https://neo-widgets.bj.bcebos.com/NeoCRM.jpg';
|
|
42
42
|
return (
|
|
43
|
-
<div className={`
|
|
43
|
+
<div className={`infoCard__c ${className}`}>
|
|
44
44
|
<div className="news-title">
|
|
45
45
|
{title ||
|
|
46
46
|
'营销服全场景智能CRM,帮助企业搭建数字化客户经营平台,实现业绩高质量增长。'}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// "lib": [], /* Specify library files to be included in the compilation. */
|
|
9
9
|
"allowJs": false /* 指定是否允许编译JS文件,默认false,即不编译JS文件. */,
|
|
10
10
|
// "checkJs": true, /* 指定是否检查和报告JS文件中的错误,默认false */
|
|
11
|
-
"jsx": "
|
|
11
|
+
"jsx": "preserve" /* 保留 JSX 交由 Babel(含 data-scope 插件)处理,确保作用域属性可注入 */,
|
|
12
12
|
"declaration": false /* 指定是否在编译的时候生成相的d.ts声明文件 */,
|
|
13
13
|
// "declarationMap": true, /* 指定编译时是否生成.map文件 */
|
|
14
14
|
// "sourceMap": true, /* 指定编译时是否生成.map文件 */
|
|
@@ -699,7 +699,7 @@ export default class ChartWidget extends React.PureComponent<ChartWidgetProps> {
|
|
|
699
699
|
const systemInfo = curAmisData.__NeoSystemInfo || {};
|
|
700
700
|
|
|
701
701
|
return (
|
|
702
|
-
<div className="
|
|
702
|
+
<div className="chartWidget__c">
|
|
703
703
|
{/* 显示当前用户信息 */}
|
|
704
704
|
{userInfo && userInfo.name && (
|
|
705
705
|
<div className="user-info">
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.
|
|
1
|
+
.chartWidget__c {
|
|
2
2
|
position: relative;
|
|
3
3
|
width: 100%;
|
|
4
4
|
height: 100%;
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
// 图表类型特定样式
|
|
133
|
-
.
|
|
133
|
+
.chartWidget__c {
|
|
134
134
|
&.line-chart {
|
|
135
135
|
.chart-container {
|
|
136
136
|
background: linear-gradient(135deg, rgba(102, 126, 234, 0.1), rgba(118, 75, 162, 0.1));
|
|
@@ -181,7 +181,7 @@
|
|
|
181
181
|
}
|
|
182
182
|
|
|
183
183
|
// 全局图表样式覆盖
|
|
184
|
-
.
|
|
184
|
+
.chartWidget__c {
|
|
185
185
|
.chart-container {
|
|
186
186
|
// 确保 ECharts 图表在容器内正确显示
|
|
187
187
|
canvas {
|
|
@@ -350,7 +350,7 @@ export default class MapWidget extends React.PureComponent<
|
|
|
350
350
|
console.log('this.props:', this.props);
|
|
351
351
|
|
|
352
352
|
return (
|
|
353
|
-
<div className={`
|
|
353
|
+
<div className={`mapWidget__c ${className}`}>
|
|
354
354
|
{/*
|
|
355
355
|
// 地图头部: 显示地图标题和当前位置地址
|
|
356
356
|
<div className="map-widget-header">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// 地图组件样式文件
|
|
2
|
-
.
|
|
2
|
+
.mapWidget__c {
|
|
3
3
|
width: 100%;
|
|
4
4
|
background: #fff;
|
|
5
5
|
border-radius: 8px;
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
|
|
154
154
|
// 响应式适配
|
|
155
155
|
@media (max-width: 768px) {
|
|
156
|
-
.
|
|
156
|
+
.mapWidget__c {
|
|
157
157
|
.map-widget-header {
|
|
158
158
|
padding: 12px 16px;
|
|
159
159
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// "lib": [], /* Specify library files to be included in the compilation. */
|
|
9
9
|
"allowJs": false /* 指定是否允许编译JS文件,默认false,即不编译JS文件. */,
|
|
10
10
|
// "checkJs": true, /* 指定是否检查和报告JS文件中的错误,默认false */
|
|
11
|
-
"jsx": "
|
|
11
|
+
"jsx": "preserve" /* 保留 JSX 交由 Babel(含 data-scope 插件)处理,确保作用域属性可注入 */,
|
|
12
12
|
"declaration": false /* 指定是否在编译的时候生成相的d.ts声明文件 */,
|
|
13
13
|
// "declarationMap": true, /* 指定编译时是否生成.map文件 */
|
|
14
14
|
// "sourceMap": true, /* 指定编译时是否生成.map文件 */
|
|
@@ -8,7 +8,15 @@
|
|
|
8
8
|
// "lib": [], /* Specify library files to be included in the compilation. */
|
|
9
9
|
"allowJs": false /* 指定是否允许编译JS文件,默认false,即不编译JS文件. */,
|
|
10
10
|
// "checkJs": true, /* 指定是否检查和报告JS文件中的错误,默认false */
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* jsx 常见取值与含义:
|
|
13
|
+
* preserve:保留 JSX,不转成 JS 调用,交给后续工具(如 Babel、SWC)处理;输出仍含 JSX。
|
|
14
|
+
* react:老版转换,编译为 React.createElement,并插入 __source/__self 等帮助信息(仅在开发模式)。
|
|
15
|
+
* react-jsx:React 17+ 新转换(自动引入 jsx/jsxs from react/jsx-runtime),无需显式 import React from 'react';用于生产构建。
|
|
16
|
+
* react-jsxdev:同上,但带额外调试信息(开发模式)。
|
|
17
|
+
* react-native:保留 JSX 但针对 React Native 打包器的特殊行为(不加 React.createElement),通常配合 React Native 工具链。
|
|
18
|
+
*/
|
|
19
|
+
"jsx": "preserve" /* 保留 JSX,不转成 JS 调用,交给后续工具(如 Babel、SWC)处理;输出仍含 JSX。 */,
|
|
12
20
|
"declaration": false /* 指定是否在编译的时候生成相的d.ts声明文件 */,
|
|
13
21
|
// "declarationMap": true, /* 指定编译时是否生成.map文件 */
|
|
14
22
|
// "sourceMap": true, /* 指定编译时是否生成.map文件 */
|
|
@@ -164,7 +164,7 @@ export default class EntityCardList extends BaseCmp<
|
|
|
164
164
|
console.log('this.props:', this.props);
|
|
165
165
|
|
|
166
166
|
return (
|
|
167
|
-
<div className={`
|
|
167
|
+
<div className={`entityCardList__c ${className}`}>
|
|
168
168
|
<div className="card-list-header">
|
|
169
169
|
<div className="header-content">
|
|
170
170
|
<h3 className="header-title">
|
|
@@ -278,7 +278,7 @@ export default class EntityDetail extends React.PureComponent<
|
|
|
278
278
|
console.log('this.props:', this.props);
|
|
279
279
|
|
|
280
280
|
return (
|
|
281
|
-
<div className={`
|
|
281
|
+
<div className={`entityDetail__c ${className}`}>
|
|
282
282
|
{showTitle && (
|
|
283
283
|
<div className="detail-header">
|
|
284
284
|
<div className="header-content">
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.
|
|
1
|
+
.entityDetail__c {
|
|
2
2
|
position: relative;
|
|
3
3
|
box-sizing: border-box;
|
|
4
4
|
height: 100%;
|
|
@@ -269,7 +269,7 @@
|
|
|
269
269
|
}
|
|
270
270
|
|
|
271
271
|
// 自定义滚动条样式
|
|
272
|
-
.
|
|
272
|
+
.entityDetail__c .detail-content {
|
|
273
273
|
&::-webkit-scrollbar {
|
|
274
274
|
width: 6px;
|
|
275
275
|
height: 6px;
|
|
@@ -574,7 +574,7 @@ export default class EntityForm extends React.PureComponent<
|
|
|
574
574
|
const displayTitle = formTitle || title || '新增数据';
|
|
575
575
|
|
|
576
576
|
return (
|
|
577
|
-
<div className="
|
|
577
|
+
<div className="entityForm__c">
|
|
578
578
|
<Card>
|
|
579
579
|
<div className="form-header">
|
|
580
580
|
<h3 className="form-title">
|
|
@@ -713,7 +713,7 @@ export default class EntityTable extends BaseCmp<
|
|
|
713
713
|
console.log('this.props:', this.props, columns, this);
|
|
714
714
|
|
|
715
715
|
return (
|
|
716
|
-
<div className={`
|
|
716
|
+
<div className={`entityTable__c ${className}`}>
|
|
717
717
|
<Card>
|
|
718
718
|
<div className="table-header">
|
|
719
719
|
<div className="header-content">
|
|
@@ -31,7 +31,7 @@ export default class CustomCmp extends BaseCmp<CustomCmpProps, CustomCmpStates>
|
|
|
31
31
|
console.log('当前自定义组件:', this.props);
|
|
32
32
|
|
|
33
33
|
return (
|
|
34
|
-
<div className={`
|
|
34
|
+
<div className={`simpleCmp__c ${className}`}>
|
|
35
35
|
<div className="news-title">
|
|
36
36
|
{languageCode === 'zh-CN' ? '你好,销售易!' : 'Hello NeoCRM!'}
|
|
37
37
|
</div>
|
|
@@ -19,7 +19,7 @@ export default class InfoCard extends React.PureComponent {
|
|
|
19
19
|
const curBackgroundImage =
|
|
20
20
|
backgroundImage || 'https://neo-widgets.bj.bcebos.com/NeoCRM.jpg';
|
|
21
21
|
return (
|
|
22
|
-
<div className={`
|
|
22
|
+
<div className={`infoCard__c ${className}`}>
|
|
23
23
|
<div className="news-title">
|
|
24
24
|
{title ||
|
|
25
25
|
'营销服全场景智能CRM,帮助企业搭建数字化客户经营平台,实现业绩高质量增长。'}
|
|
@@ -192,7 +192,7 @@ export default class ListWidget extends React.PureComponent<ListWidgetProps> {
|
|
|
192
192
|
const mockData = this.generateMockData(itemCount);
|
|
193
193
|
|
|
194
194
|
return (
|
|
195
|
-
<div className={`
|
|
195
|
+
<div className={`listWidget__c ${className}`}>
|
|
196
196
|
<div className="list-header">
|
|
197
197
|
<h2 className="list-title">
|
|
198
198
|
{title || '内容列表'}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
--list-hover-shadow: 0 4px 12px rgb(0 0 0 / 15%);
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
.
|
|
8
|
+
.listWidget__c {
|
|
9
9
|
position: relative;
|
|
10
10
|
box-sizing: border-box;
|
|
11
11
|
margin: 12px;
|
|
@@ -276,7 +276,7 @@
|
|
|
276
276
|
|
|
277
277
|
// 响应式设计
|
|
278
278
|
@media (max-width: 768px) {
|
|
279
|
-
.
|
|
279
|
+
.listWidget__c {
|
|
280
280
|
margin: 8px;
|
|
281
281
|
padding: 12px;
|
|
282
282
|
|
|
@@ -306,7 +306,7 @@
|
|
|
306
306
|
|
|
307
307
|
// 暗色主题支持
|
|
308
308
|
@media (prefers-color-scheme: dark) {
|
|
309
|
-
.
|
|
309
|
+
.listWidget__c {
|
|
310
310
|
background-color: #1f1f1f;
|
|
311
311
|
color: #fff;
|
|
312
312
|
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
// "lib": [], /* Specify library files to be included in the compilation. */
|
|
9
9
|
"allowJs": false /* 指定是否允许编译JS文件,默认false,即不编译JS文件. */,
|
|
10
10
|
// "checkJs": true, /* 指定是否检查和报告JS文件中的错误,默认false */
|
|
11
|
-
"jsx": "react" /* 指定jsx代码用于的开发环境:'preserve','react-native', or 'react'. */,
|
|
11
|
+
// "jsx": "react" /* 指定jsx代码用于的开发环境:'preserve','react-native', or 'react'. */,
|
|
12
|
+
"jsx": "preserve" /* 保留 JSX 交由 Babel(含 data-scope 插件)处理,确保作用域属性可注入 */,
|
|
12
13
|
"declaration": false /* 指定是否在编译的时候生成相的d.ts声明文件 */,
|
|
13
14
|
// "declarationMap": true, /* 指定编译时是否生成.map文件 */
|
|
14
15
|
// "sourceMap": true, /* 指定编译时是否生成.map文件 */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="
|
|
2
|
+
<div class="vueInfoCard__c">
|
|
3
3
|
<div class="news-title">
|
|
4
4
|
{{ title }}
|
|
5
5
|
</div>
|
|
@@ -60,8 +60,8 @@ export default {
|
|
|
60
60
|
},
|
|
61
61
|
};
|
|
62
62
|
</script>
|
|
63
|
-
<style lang="scss">
|
|
64
|
-
.
|
|
63
|
+
<style lang="scss" scoped>
|
|
64
|
+
.vueInfoCard__c {
|
|
65
65
|
position: relative;
|
|
66
66
|
box-sizing: border-box;
|
|
67
67
|
// border-bottom: 1px solid #ececec;
|