neo-cmp-cli 1.10.17 → 1.10.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/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"),o=require("./utils/neoParams.js"),u=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"),m=require("./utils/cmpUtils/createCmpByTemplate.js"),a=require("./utils/projectUtils/createCmpProjectByTemplate.js"),q=require("./utils/projectUtils/openProject.js"),y=require("./utils/configureNeoBuild.js"),_=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");var C,x;exports.__require=function(){if(x)return C;x=1;const E=e,N=r.__require(),h=i.__require(),w=s.__require(),B=t.__require(),{consoleTag:D}=o.__require(),P=u.__require(),k=l.__require(),M=p.__require(),I=n.__require(),L=c.__require(),U=d.__require(),O=b.__require(),S=m.__require(),R=a.__require(),A=q.__require(),{configureNeoBuild:V}=y.__require(),{errorLog:z,successLog:F}=_.__require(),{validateProjectName:G}=g.__require(),H=j.__require(),J=v.__require(),K=T.__require(),Q=f.__require();function W(e,r){const{entryType:i,cmpType:s}=r;let t=[],o={};try{const{entries:r,cmpTypes:u,defaultExports:l}=O({configEntry:e.entry,disableAutoRegister:e.disableAutoRegister,componentsDir:P.componentsDir,entryType:i,cmpType:s});r&&Object.keys(r).length>0&&(e.entry=r,t=u,console.info("已自动生成 entry 入口配置:",r)),o=l}catch(e){z(e.message||e.msg),process.exit(1)}return{cmpTypes:t,defaultExports:o}}function X(e){return Object.assign(P.build2lib,e)}return C={neoInit:N,neoInitByCopy:h,inspect:w,neoConfigInit:B,projectConfig:P,consoleTag:D,errorLog:z,successLog:F,validateProjectName:G,getCmpTypeByDir:H,NeoService:J,NeoLoginService:K,hasNeoProject:Q,createCmpProjectByTemplate:R,createCmpByTemplate:S,dev:()=>{P.dev||(z("未找到 dev 相关配置。"),process.exit(1)),E.dev(P,D)},previewCmp:e=>{e||(z("请输入要预览的组件名称。"),process.exit(1)),P.preview||(z("未找到 preview 相关配置。"),process.exit(1)),P.dev=Object.assign(P.dev,P.preview),delete P.preview,U(P,e)},linkDebug:()=>{P.linkDebug||(z("未找到 debug 相关配置。"),process.exit(1)),P.dev=Object.assign(P.dev,P.linkDebug),delete P.linkDebug,delete P.dev.ignoreNodeModules,P.webpack.ignoreNodeModules=!1;const{cmpTypes:e,defaultExports:r}=W(P.dev,{entryType:"linkDebug"});V(P,P.dev,{cmpTypes:e,defaultExports:r,verbose:!0,excludeModel:!1}),E.dev(P,D)},build:()=>E.build("build",P,D),build2lib:()=>{W(P.build2lib,{entryType:"widget"}),P.build2lib.removeNeoCommonModules&&V(P,P.build2lib,{cmpTypes:[],defaultExports:[],verbose:!1,excludeModel:!0}),E.build("lib",P,D)},publish2oss:e=>{const r=P.publish2oss;P.build2lib=X(r);const{cmpTypes:i,defaultExports:s}=W(P.build2lib,{entryType:"widget",cmpType:e});V(P,P.build2lib,{cmpTypes:i,defaultExports:s,verbose:!0,excludeModel:!0}),E.build("lib",P,D,()=>{k(r.ossType,r.ossConfig,r.assetsRoot)})},pushCmp:e=>{const{pushCmp:r}=P;P.build2lib=X(r);const{cmpTypes:i,defaultExports:s}=W(P.build2lib,{entryType:"widget",cmpType:e});V(P,P.build2lib,{cmpTypes:i,defaultExports:s,verbose:!1,excludeModel:!0}),E.build("lib",P,D,()=>{M(r,e)})},pullCmp:(e,r)=>{I(e,r)},deleteCmp:(e,r)=>{L(e,r)},build2esm:()=>E.build2esm(P,D),openEditor:A},C};
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"),o=require("./utils/neoParams.js"),u=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"),m=require("./utils/generateEntries.js"),b=require("./utils/cmpUtils/createCmpByTemplate.js"),a=require("./utils/projectUtils/createCmpProjectByTemplate.js"),q=require("./utils/projectUtils/openProject.js"),y=require("./utils/configureNeoBuild.js"),_=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");var C,x;exports.__require=function(){if(x)return C;x=1;const E=e,N=r.__require(),h=i.__require(),D=s.__require(),w=t.__require(),{consoleTag:B}=o.__require(),P=u.__require(),k=l.__require(),M=p.__require(),I=n.__require(),L=c.__require(),U=d.__require(),O=m.__require(),S=b.__require(),R=a.__require(),A=q.__require(),{configureNeoBuild:V}=y.__require(),{errorLog:z,successLog:F}=_.__require(),{validateProjectName:G}=g.__require(),H=j.__require(),J=v.__require(),K=T.__require(),Q=f.__require();function W(e,r){const{entryType:i,cmpType:s}=r;let t=[],o={};try{const{entries:r,cmpTypes:u,defaultExports:l}=O({configEntry:e.entry,disableAutoRegister:e.disableAutoRegister,componentsDir:P.componentsDir,entryType:i,cmpType:s});r&&Object.keys(r).length>0&&(e.entry=r,t=u,console.info("已自动生成 entry 入口配置:",r)),o=l}catch(e){z(e.message||e.msg),process.exit(1)}return{cmpTypes:t,defaultExports:o}}function X(e){return Object.assign(P.build2lib,e)}return C={neoInit:N,neoInitByCopy:h,inspect:D,neoConfigInit:w,projectConfig:P,consoleTag:B,errorLog:z,successLog:F,validateProjectName:G,getCmpTypeByDir:H,NeoService:J,NeoLoginService:K,hasNeoProject:Q,createCmpProjectByTemplate:R,createCmpByTemplate:S,dev:()=>{P.dev||(z("未找到 dev 相关配置。"),process.exit(1)),E.dev(P,B)},previewCmp:e=>{e||(z("请输入要预览的组件名称。"),process.exit(1)),P.preview||(z("未找到 preview 相关配置。"),process.exit(1)),P.dev=Object.assign(P.dev,P.preview),delete P.preview,U(P,e)},linkDebug:()=>{P.linkDebug||(z("未找到 debug 相关配置。"),process.exit(1)),P.dev=Object.assign(P.dev,P.linkDebug),delete P.linkDebug,delete P.dev.ignoreNodeModules,P.webpack.ignoreNodeModules=!1;const{cmpTypes:e,defaultExports:r}=W(P.dev,{entryType:"linkDebug"});V(P,P.dev,{cmpTypes:e,defaultExports:r,verbose:!0,excludeModel:!1}),E.dev(P,B)},build:()=>E.build("build",P,B),build2lib:()=>{W(P.build2lib,{entryType:"widget"}),P.build2lib.removeNeoCommonModules&&V(P,P.build2lib,{cmpTypes:[],defaultExports:[],verbose:!1,excludeModel:!0}),E.build("lib",P,B)},publish2oss:e=>{const r=P.publish2oss;P.build2lib=X(r);const{cmpTypes:i,defaultExports:s}=W(P.build2lib,{entryType:"widget",cmpType:e});V(P,P.build2lib,{cmpTypes:i,defaultExports:s,verbose:!0,excludeModel:!0}),E.build("lib",P,B,()=>{k(r.ossType,r.ossConfig,r.assetsRoot)})},pushCmp:e=>{const{pushCmp:r}=P;P.build2lib=X(r);const{cmpTypes:i,defaultExports:s}=W(P.build2lib,{entryType:"widget",cmpType:e});V(P,P.build2lib,{cmpTypes:i,defaultExports:s,verbose:!1,excludeModel:!0}),E.build("lib",P,B,()=>{M({...r,componentsDir:P.componentsDir},e)})},pullCmp:(e,r)=>{I(e,r)},deleteCmp:(e,r)=>{L(e,r)},build2esm:()=>E.build2esm(P,B),openEditor:A},C};
@@ -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",axios:"^0.27.2",classnames:"^2.3.2",qs:"^6.11.0",lodash:"^4.17.21","neo-open-api":"^1.1.9",amis:"^1.1.5",antd:"4.9.4","antd-mobile":"2.3.4","@ant-design/icons":"^4.8.0",echarts:"5.4.2","neo-ui-component-web":"^1.0.0","neo-ui-component-h5":"^1.0.0","neo-ui-common":"^1.0.0"};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,m={react:"^16.13.1","react-dom":"^16.13.1",mobx:"^6.3.0","mobx-react":"^7.0.0","mobx-state-tree":"^5.4.0",axios:"^0.27.2",classnames:"^2.3.2",qs:"^6.11.0",lodash:"^4.17.21","neo-open-api":"^1.1.9",amis:"^1.1.5","neo-ui-component-web":"^1.0.0","neo-ui-component-h5":"^1.0.0","neo-ui-common":"^1.0.0"};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(m).forEach(o=>{e[o]=`commonjs ${o}`}),o&&o.length>0&&o.forEach(o=>{e[o]=`commonjs ${o}`}),e}}};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("node:fs"),t=require("node:path"),s=require("lodash"),r=require("akfun"),o=require("ora"),i=require("./neoService.js"),a=require("../utils/common.js"),n=require("../utils/pathUtils.js"),c=require("../utils/projectUtils/createCmpProjectZip.js"),l=require("../utils/projectUtils/updatePublishLog.js"),p=require("../utils/cmpTypeValidator.js");var u,g;exports.__require=function(){if(g)return u;g=1;const m=e,d=t,w=s,{getConfigObj:f}=r,y=o,h=i.__require(),{getFramework:b,errorLog:v,successLog:C}=a.__require(),{catchCurPackageJson:T}=n.__require(),q=c.__require(),j=l.__require(),{validateApiName:P}=p.__require(),$=f(T()),_=(e=[])=>e.map(e=>({label:e.label,description:e.description,propSchema:JSON.stringify(e)})),D=(e=[],t)=>e&&0!==e.length?e.map(e=>({...e,componentType:t,eventCategory:e.eventCategory||2,pageType:e.pageType||1,targetDevice:e.targetDevice||1,eventParams:e.eventParams||[]})):[],S=(e=[],t)=>e&&0!==e.length?e.map(e=>({...e,componentType:t,funcScope:e.funcScope||1,pageType:e.pageType||1,targetDevice:e.targetDevice||1,custom:!0,funcInParams:e.funcInParams||[],funcOutParams:e.funcOutParams||[]})):[];return u=async(e,t)=>{const s=y("正在发布组件...").start(),{isValid:r,errors:o}=P(t);r||(v(o.join("\n")),process.exit(1));try{let r,o=new h;await o.ensureValidToken(),s.start("[1/4] 打包源码文件(含单个自定义组件源码)...");try{r=q(t,process.cwd(),e.assetsRoot),r?C(`[1/4] 源码文件打包完成: ${d.basename(r)}。`,s):v("[1/4] 源码文件打包失败,未返回 zip 文件路径。",s)}catch(e){v("[1/4] 源码文件打包失败。",s)}s.start("[2/4] 获取自定义组件构建产物...");const i=await o.getCmpAssets(t);let a;s.start("[3/4] 构建组件数据...");try{a=await(async(e,t)=>{if(!t||!t.cmpType)return v("自定义组件信息或组件名称不能为空"),null;const{cmpType:s}=t;if(!e||!m.existsSync(e))return v(`未找到自定义组件目录: ${e}`),null;const r=w.camelCase(s),o=d.join(e,`${r}Model.js`),i=globalThis.window;globalThis.window||(globalThis.window={console:console,neoRequire:()=>{},postMessage:()=>{}});try{m.existsSync(o)?require(o):(v(`未找到自定义组件模型文件,请检查以下路径是否存在:${o}`),process.exit(1)),globalThis.window&&globalThis.window.NEOEditorCustomModels||(v(`模型文件未导出有效模型方法(CatchCustomCmpModelClass),模型文件地址: ${o} `),process.exit(1));const e=globalThis.window.NEOEditorCustomModels[s];e||(v(`未找到自定义组件模型类(${s}),模型文件地址: ${o} `),process.exit(1));const r=new e;return r||(v(`未找到自定义组件模型信息(${s}),模型文件地址: ${o} `),process.exit(1)),{...t,version:$.version||"1.0.0",framework:$.framework?b($.framework):0,label:r.label||s,description:r.description||"",componentCategory:(r.tags||["自定义组件"]).join(","),targetPage:r.targetPage||["all"],targetObject:r.targetObject||["all"],targetApplication:r.targetApplication||["all"],targetDevice:r.targetDevice||"web",iconUrl:r.iconUrl||r.iconUrl,defaultProps:JSON.stringify(r.defaultComProps||{}),previewProps:JSON.stringify(r.previewComProps||{}),props:_(r.propsSchema||[]),events:D(r.events||[],s),functions:S(r.functions||r.actions||[],s),exposedToDesigner:void 0===r.exposedToDesigner||r.exposedToDesigner,namespace:r.namespace||"neo-cmp-cli",enableDuplicate:void 0===r.enableDuplicate||r.enableDuplicate}}catch(e){return v(`自定义组件模型文件解析失败 (${o||"未知路径"}): ${e.message||e.msg}`),v(e.stack),null}finally{void 0===i?delete globalThis.window:globalThis.window=i}})(e.assetsRoot,i),a?C("[3/4] 组件数据构建完成。",s):v(`[3/4] 未获取到自定义组件模型信息(${t})。`,s)}catch(e){v(`[3/4] 组件数据构建失败: ${e.message||e.msg}`,s)}s.start("[4/4] 保存组件信息到 NeoCRM 平台...");const n=["assetFile","modelAssetFile","cssAssetFile","codeLibFile"],c={...a};n.forEach(e=>{c[e]&&c[e].fileContent&&(c[e]=w.omit(c[e],["fileContent"]))}),j(c);try{await o.updateCustomComponent(a),C("[4/4] 组件信息保存成功",s)}catch(e){v("[4/4] 组件信息保存失败",s)}const{tenant_id:l,instance_uri:p}=o.tokenCache||{};console.log(`\n✅ 自定义组件发布成功!\n(当前租户 ID: ${l||"未返回"},所在租户的 API 域名: ${p||"未返回"}。)`)}catch(e){try{s&&s.isSpinning&&v(`❌ 自定义组件发布失败: ${e.message||e.msg}`,s)}catch{v(`\n❌ 自定义组件发布失败: ${e.message||e.msg}`)}throw e}},u};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("node:fs"),t=require("node:path"),s=require("lodash"),o=require("akfun"),i=require("ora"),r=require("jsdom"),a=require("./neoService.js"),n=require("../utils/common.js"),l=require("../utils/pathUtils.js"),c=require("../utils/projectUtils/createCmpProjectZip.js"),p=require("../utils/projectUtils/updatePublishLog.js"),u=require("../utils/cmpTypeValidator.js");var g,m;exports.__require=function(){if(m)return g;m=1;const d=e,h=t,w=s,{getConfigObj:f}=o,b=i,{JSDOM:T}=r,y=a.__require(),{getFramework:v,errorLog:C,successLog:q}=n.__require(),{catchCurPackageJson:j}=l.__require(),P=c.__require(),$=p.__require(),{validateApiName:_}=u.__require(),x=f(j()),D=(e=[])=>e.map(e=>({label:e.label,description:e.description,propSchema:JSON.stringify(e)})),S=(e=[],t)=>e&&0!==e.length?e.map(e=>({...e,componentType:t,eventCategory:e.eventCategory||2,pageType:e.pageType||1,targetDevice:e.targetDevice||1,eventParams:e.eventParams||[]})):[],O=(e=[],t)=>e&&0!==e.length?e.map(e=>({...e,componentType:t,funcScope:e.funcScope||1,pageType:e.pageType||1,targetDevice:e.targetDevice||1,custom:!0,funcInParams:e.funcInParams||[],funcOutParams:e.funcOutParams||[]})):[];return g=async(e,t)=>{const s=b("正在发布组件...").start(),{isValid:o,errors:i}=_(t);o||(C(i.join("\n")),process.exit(1));try{let o,i=new y;await i.ensureValidToken(),s.start("[1/4] 打包源码文件(含单个自定义组件源码)...");try{o=P(t,process.cwd(),e.assetsRoot),o?q(`[1/4] 源码文件打包完成: ${h.basename(o)}。`,s):C("[1/4] 源码文件打包失败,未返回 zip 文件路径。",s)}catch(e){C("[1/4] 源码文件打包失败。",s)}s.start("[2/4] 获取自定义组件构建产物...");const r=await i.getCmpAssets(t);let a;s.start("[3/4] 构建组件数据...");try{a=await(async(e,t)=>{if(!t||!t.cmpType)return C("自定义组件信息或组件名称不能为空"),null;const{cmpType:s}=t;if(!e||!d.existsSync(e))return C(`未找到自定义组件目录: ${e}`),null;const o=w.camelCase(s),i=h.join(e,`${o}Model.js`);d.existsSync(i)||(C(`未找到自定义组件模型文件,请检查以下路径是否存在:${i}`),process.exit(1));const r=globalThis.window;if(!globalThis.window){const e=new T("<!DOCTYPE html><p>Hello world</p>",{url:"http://localhost",contentType:"text/html",includeNodeLocations:!0,storageQuota:1e5});globalThis.window={...e.window,console:console,neoRequire:()=>{},postMessage:()=>{}},globalThis.document=e.window.document,globalThis.this={}}const a=globalThis.self;globalThis.self||(globalThis.self=globalThis);try{d.existsSync(i)?require(i):(C(`未找到自定义组件模型文件,请检查以下路径是否存在:${i}`),process.exit(1)),globalThis.window&&globalThis.window.NEOEditorCustomModels||(C(`模型文件未导出有效模型方法(CatchCustomCmpModelClass),模型文件地址: ${i} `),process.exit(1));const e=globalThis.window.NEOEditorCustomModels[s];e||(C(`未找到自定义组件模型类(${s}),模型文件地址: ${i} `),process.exit(1));const o=new e;return o||(C(`未找到自定义组件模型信息(${s}),模型文件地址: ${i} `),process.exit(1)),{...t,version:x.version||"1.0.0",framework:x.framework?v(x.framework):0,label:o.label||s,description:o.description||"",componentCategory:(o.tags||["自定义组件"]).join(","),targetPage:o.targetPage||["all"],targetObject:o.targetObject||["all"],targetApplication:o.targetApplication||["all"],targetDevice:o.targetDevice||"web",iconUrl:o.iconUrl||o.iconUrl,defaultProps:JSON.stringify(o.defaultComProps||{}),previewProps:JSON.stringify(o.previewComProps||{}),props:D(o.propsSchema||[]),events:S(o.events||[],s),functions:O(o.functions||o.actions||[],s),exposedToDesigner:void 0===o.exposedToDesigner||o.exposedToDesigner,namespace:o.namespace||"neo-cmp-cli",enableDuplicate:void 0===o.enableDuplicate||o.enableDuplicate}}catch(e){return C(`自定义组件模型文件解析失败 (${i||"未知路径"}): ${e.message||e.msg}`),C(e.stack),null}finally{void 0===r?delete globalThis.window:globalThis.window=r,void 0===a?delete globalThis.self:globalThis.self=a}})(e.assetsRoot,r),a?q("[3/4] 组件数据构建完成。",s):C(`[3/4] 未获取到自定义组件模型信息(${t})。`,s)}catch(e){C(`[3/4] 组件数据构建失败: ${e.message||e.msg}`,s)}s.start("[4/4] 保存组件信息到 NeoCRM 平台...");const n=["assetFile","modelAssetFile","cssAssetFile","codeLibFile"],l={...a};n.forEach(e=>{l[e]&&l[e].fileContent&&(l[e]=w.omit(l[e],["fileContent"]))}),$(l);try{await i.updateCustomComponent(a),q("[4/4] 组件信息保存成功",s)}catch(e){C("[4/4] 组件信息保存失败",s)}const{tenant_id:c,instance_uri:p}=i.tokenCache||{};console.log(`\n✅ 自定义组件发布成功!\n(当前租户 ID: ${c||"未返回"},所在租户的 API 域名: ${p||"未返回"}。)`)}catch(e){try{s&&s.isSpinning&&C(`❌ 自定义组件发布失败: ${e.message||e.msg}`,s)}catch{C(`\n❌ 自定义组件发布失败: ${e.message||e.msg}`)}throw e}},g};
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var e="1.10.17";const o={version:e};exports.default=o,exports.version=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var e="1.10.18";const o={version:e};exports.default=o,exports.version=e;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo-cmp-cli",
3
- "version": "1.10.17",
3
+ "version": "1.10.18",
4
4
  "description": "Neo 自定义组件开发工具,支持react 和 vue2.0技术栈。",
5
5
  "keywords": [
6
6
  "neo-cli",
@@ -56,7 +56,8 @@
56
56
  "ora": "^4.0.4",
57
57
  "portfinder": "^1.0.38",
58
58
  "webpack-sources": "^3.2.3",
59
- "yargs": "^12.0.2"
59
+ "yargs": "^12.0.2",
60
+ "jsdom": "^28.0.0"
60
61
  },
61
62
  "devDependencies": {
62
63
  "@commitlint/cli": "^8.3.5",
@@ -48,7 +48,7 @@
48
48
  "@commitlint/config-conventional": "^9.1.1",
49
49
  "@types/react": "^16.9.11",
50
50
  "@types/react-dom": "^16.9.15",
51
- "neo-cmp-cli": "^1.10.17",
51
+ "neo-cmp-cli": "^1.10.18",
52
52
  "husky": "^4.2.5",
53
53
  "lint-staged": "^10.2.9",
54
54
  "prettier": "^2.0.5"
@@ -48,7 +48,7 @@
48
48
  "@commitlint/config-conventional": "^9.1.1",
49
49
  "@types/react": "^16.9.11",
50
50
  "@types/react-dom": "^16.9.15",
51
- "neo-cmp-cli": "^1.10.17",
51
+ "neo-cmp-cli": "^1.10.18",
52
52
  "husky": "^4.2.5",
53
53
  "lint-staged": "^10.2.9",
54
54
  "prettier": "^2.0.5",
@@ -50,7 +50,7 @@
50
50
  "@types/react": "^16.9.11",
51
51
  "@types/react-dom": "^16.9.15",
52
52
  "@types/axios": "^0.14.0",
53
- "neo-cmp-cli": "^1.10.17",
53
+ "neo-cmp-cli": "^1.10.18",
54
54
  "husky": "^4.2.5",
55
55
  "lint-staged": "^10.2.9",
56
56
  "prettier": "^2.0.5"
@@ -1,5 +1,6 @@
1
1
  // 导入自定义配置项(用于对接复杂自定义配置)
2
2
  import './customStyleConfig';
3
+
3
4
  /**
4
5
  * @file 数值指标组件对接编辑器的描述文件
5
6
  * @description 定义组件在 Neo 平台编辑器中的配置信息
@@ -121,4 +122,4 @@ export class TargetNumberModel {
121
122
  ];
122
123
  }
123
124
 
124
- export default TargetNumberModel;
125
+ export default TargetNumberModel;
@@ -164,3 +164,9 @@
164
164
  }
165
165
  }
166
166
  }
167
+
168
+ .target-number {
169
+ background-color: red;
170
+ }
171
+
172
+
@@ -55,7 +55,7 @@
55
55
  "@types/react": "^16.9.11",
56
56
  "@types/react-dom": "^16.9.15",
57
57
  "@types/axios": "^0.14.0",
58
- "neo-cmp-cli": "^1.10.17",
58
+ "neo-cmp-cli": "^1.10.18",
59
59
  "husky": "^4.2.5",
60
60
  "lint-staged": "^10.2.9",
61
61
  "prettier": "^2.0.5"
@@ -60,7 +60,7 @@ export class EntityCardListModel {
60
60
  type: 'textarea',
61
61
  name: 'title',
62
62
  label: '组件标题',
63
- value: '数据卡片列表'
63
+ value: '数据卡片列表',
64
64
  },
65
65
  {
66
66
  type: 'xObjectDataApi', // 用于获取实体业务数据列表的配置项
@@ -62,13 +62,13 @@ export class EntityDetailModel {
62
62
  name: 'title',
63
63
  label: '标题',
64
64
  value: '实体数据详情',
65
- placeholder: '请输入标题'
65
+ placeholder: '请输入标题',
66
66
  },
67
67
  {
68
68
  type: 'panelSwitch',
69
69
  name: 'showTitle',
70
70
  label: '显示标题栏',
71
- value: true
71
+ value: true,
72
72
  },
73
73
  {
74
74
  type: 'xObjectDetailApi', // 用于选取对象业务详情数据的配置项
@@ -116,7 +116,7 @@ export class EntityDetailModel {
116
116
  label: '4列',
117
117
  value: 4,
118
118
  },
119
- ]
119
+ ],
120
120
  },
121
121
  ];
122
122
  }
@@ -122,7 +122,7 @@ export class EntityFormModel {
122
122
  type: 'panelSwitch',
123
123
  name: 'showResetButton',
124
124
  label: '显示重置按钮',
125
- defaultChecked: true
125
+ defaultChecked: true,
126
126
  },
127
127
  ];
128
128
  }
@@ -142,7 +142,7 @@ export class EntityTableModel {
142
142
  {
143
143
  type: 'panelSwitch',
144
144
  name: 'showAddButton',
145
- label: '显示新增按钮'
145
+ label: '显示新增按钮',
146
146
  },
147
147
  {
148
148
  type: 'panelSwitch',
@@ -153,7 +153,7 @@ export class EntityTableModel {
153
153
  {
154
154
  type: 'panelSwitch',
155
155
  name: 'showDeleteButton',
156
- label: '显示删除按钮'
156
+ label: '显示删除按钮',
157
157
  },
158
158
  ];
159
159
  }
@@ -11,9 +11,9 @@ export class CmpModel {
11
11
  // 分类标签,用于设置在编辑器左侧组件面板哪个分类中展示
12
12
  // tags: string[] = ['自定义组件'];
13
13
 
14
- /**
14
+ /**
15
15
  * 用于设置组件支持的页面类型
16
- *
16
+ *
17
17
  * 当前 NeoCRM 平台存在的页面类型:
18
18
  * all: 1 全页面
19
19
  * entityFormPage: 4 实体表单页
@@ -21,22 +21,22 @@ export class CmpModel {
21
21
  */
22
22
  targetPage: string[] = ['all'];
23
23
 
24
- /**
24
+ /**
25
25
  * 用于设置组件支持的终端类型
26
- *
26
+ *
27
27
  * 当前 NeoCRM 平台存在的终端类型:
28
28
  * web: 网页端
29
29
  * mobile: 移动端
30
30
  */
31
31
  targetDevice: string = 'web';
32
32
 
33
-
34
33
  // 组件图标,用于设置在编辑器左侧组件面板中展示的图标
35
34
  iconUrl: string = 'https://neo-widgets.bj.bcebos.com/custom-widget.svg';
36
35
 
37
36
  // 初次插入页面的默认属性数据
38
37
  defaultComProps = {
39
- description: '营销服全场景智能CRM,帮助企业搭建数字化客户经营平台,实现业绩高质量增长。'
38
+ description:
39
+ '营销服全场景智能CRM,帮助企业搭建数字化客户经营平台,实现业绩高质量增长。',
40
40
  };
41
41
 
42
42
  /**
@@ -46,7 +46,7 @@
46
46
  "@types/react": "^16.9.11",
47
47
  "@types/react-dom": "^16.9.15",
48
48
  "@types/axios": "^0.14.0",
49
- "neo-cmp-cli": "^1.10.17",
49
+ "neo-cmp-cli": "^1.10.18",
50
50
  "husky": "^4.2.5",
51
51
  "lint-staged": "^10.2.9",
52
52
  "prettier": "^2.0.5"
@@ -16,9 +16,6 @@ interface EntityListProps {
16
16
  export default class EntityListCmp extends React.PureComponent<EntityListProps> {
17
17
  constructor(props: EntityListProps) {
18
18
  super(props);
19
-
20
- // 实例化 EntityListStore
21
- // this.entityListStore = EntityListStore.create({});
22
19
  }
23
20
 
24
21
  render() {
@@ -43,7 +43,17 @@ export class EntityListModel {
43
43
  // 初次插入页面的默认属性数据
44
44
  defaultComProps = {
45
45
  entityApiKey: 'account',
46
- disableSearch: true,
46
+ disableTitleView: true, // 隐藏头部view(含视图切换)
47
+ isShowTitlePicker: false, // 视图列表选择器
48
+ disableSearch: false,
49
+ disabledSort: false,
50
+ disabledFilter: false,
51
+ disabledOperationBtn: false,
52
+ showShortcutBtn: false,
53
+ initialListSize: 3,
54
+ tableType: 'list', // list 列表,lookup 下拉框,dashboardList BI 列表
55
+ isNoRefresh: true, // 禁用下拉刷新和上拉加载
56
+ skipExt: true, // 禁用 Nex 扩展
47
57
  };
48
58
 
49
59
  /* 当前数据列表支持的配置属性
@@ -69,23 +79,59 @@ export class EntityListModel {
69
79
  name: 'entityApiKey',
70
80
  label: '实体对象',
71
81
  },
82
+ {
83
+ type: 'dataViewIdSelect',
84
+ name: 'dataViewId',
85
+ xObjectApiKey: 'entityApiKey',
86
+ label: '列表视图',
87
+ },
72
88
  {
73
89
  type: 'panelSwitch',
74
- name: 'disableSearch',
75
- label: '隐藏全局搜索',
90
+ name: 'disableTitleView',
91
+ label: '隐藏头部view(含视图切换)',
76
92
  defaultChecked: true,
77
93
  },
94
+ {
95
+ type: 'panelSwitch',
96
+ name: 'isShowTitlePicker',
97
+ label: 'designer.components.857e98', '显示视图切换',
98
+ defaultChecked: false,
99
+ },
100
+ {
101
+ type: 'panelSwitch',
102
+ name: 'disableSearch',
103
+ label: '隐藏搜索',
104
+ defaultChecked: false,
105
+ },
78
106
  {
79
107
  type: 'panelSwitch',
80
108
  name: 'disabledSort',
81
109
  label: '隐藏排序功能',
82
- defaultChecked: true,
110
+ defaultChecked: false,
83
111
  },
84
112
  {
85
113
  type: 'panelSwitch',
86
114
  name: 'disabledFilter',
87
115
  label: '隐藏过滤功能',
88
- defaultChecked: true,
116
+ defaultChecked: false,
117
+ },
118
+ {
119
+ type: 'panelSwitch',
120
+ name: 'disabledOperationBtn',
121
+ label: '隐藏按钮操作区(含新建、批量操作等)',
122
+ defaultChecked: false,
123
+ },
124
+ {
125
+ type: 'panelSwitch',
126
+ name: 'disabledShortcutBtn',
127
+ label: '隐藏快捷按钮',
128
+ defaultChecked: false,
129
+ },
130
+ {
131
+ type: 'panelNumber',
132
+ name: 'initialListSize',
133
+ label: '初始化展示条数',
134
+ value: 3,
89
135
  },
90
136
  ];
91
137
  }
@@ -47,7 +47,7 @@
47
47
  "@types/react": "^16.9.11",
48
48
  "@types/react-dom": "^16.9.15",
49
49
  "@types/axios": "^0.14.0",
50
- "neo-cmp-cli": "^1.10.17",
50
+ "neo-cmp-cli": "^1.10.18",
51
51
  "husky": "^4.2.5",
52
52
  "lint-staged": "^10.2.9",
53
53
  "prettier": "^2.0.5"
@@ -45,7 +45,7 @@
45
45
  "devDependencies": {
46
46
  "@commitlint/cli": "^8.3.5",
47
47
  "@commitlint/config-conventional": "^9.1.1",
48
- "neo-cmp-cli": "^1.10.17",
48
+ "neo-cmp-cli": "^1.10.18",
49
49
  "husky": "^4.2.5",
50
50
  "lint-staged": "^10.2.9",
51
51
  "prettier": "^2.0.5"
@@ -47,7 +47,7 @@
47
47
  "@commitlint/config-conventional": "^9.1.1",
48
48
  "@types/react": "^16.9.11",
49
49
  "@types/react-dom": "^16.9.15",
50
- "neo-cmp-cli": "^1.10.17",
50
+ "neo-cmp-cli": "^1.10.18",
51
51
  "husky": "^4.2.5",
52
52
  "lint-staged": "^10.2.9",
53
53
  "prettier": "^2.0.5"
@@ -45,7 +45,7 @@
45
45
  "devDependencies": {
46
46
  "@commitlint/cli": "^8.3.5",
47
47
  "@commitlint/config-conventional": "^9.1.1",
48
- "neo-cmp-cli": "^1.10.17",
48
+ "neo-cmp-cli": "^1.10.18",
49
49
  "husky": "^4.2.5",
50
50
  "lint-staged": "^10.2.9",
51
51
  "prettier": "^2.0.5",