mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-15 22:22:51 +00:00
1458 lines
69 KiB
Plaintext
1458 lines
69 KiB
Plaintext
{
|
||
version: '1.0.0',
|
||
componentsMap: [
|
||
{
|
||
devMode: 'lowcode',
|
||
componentName: 'Slot',
|
||
},
|
||
{
|
||
package: '@alilc/antd-lowcode-materials',
|
||
version: '0.11.0',
|
||
exportName: 'Button',
|
||
main: 'dist/antd-lowcode.esm.js',
|
||
destructuring: true,
|
||
componentName: 'Button',
|
||
},
|
||
{
|
||
package: '@alife/mc-assets-1935',
|
||
version: '0.1.43',
|
||
exportName: 'AliAutoDiv',
|
||
main: 'build/lowcode/index.js',
|
||
destructuring: true,
|
||
subName: 'default',
|
||
componentName: 'AliAutoDivDefault',
|
||
},
|
||
{
|
||
package: '@alilc/antd-lowcode-materials',
|
||
version: '0.11.0',
|
||
exportName: 'Typography',
|
||
main: 'dist/antd-lowcode.esm.js',
|
||
destructuring: true,
|
||
subName: 'Text',
|
||
componentName: 'Typography.Text',
|
||
},
|
||
{
|
||
package: '@alilc/antd-lowcode-materials',
|
||
version: '0.11.0',
|
||
exportName: 'Typography',
|
||
main: 'dist/antd-lowcode.esm.js',
|
||
destructuring: true,
|
||
subName: 'Link',
|
||
componentName: 'Typography.Link',
|
||
},
|
||
{
|
||
package: '@alilc/antd-lowcode-materials',
|
||
version: '0.11.0',
|
||
exportName: 'Modal',
|
||
main: 'dist/antd-lowcode.esm.js',
|
||
destructuring: true,
|
||
componentName: 'Modal',
|
||
},
|
||
{
|
||
package: '@alilc/antd-lowcode-materials',
|
||
version: '0.11.0',
|
||
exportName: 'Select',
|
||
main: 'dist/antd-lowcode.esm.js',
|
||
destructuring: true,
|
||
componentName: 'Select',
|
||
},
|
||
{
|
||
package: '@alilc/antd-lowcode-materials',
|
||
version: '0.11.0',
|
||
exportName: 'Form',
|
||
main: 'dist/antd-lowcode.esm.js',
|
||
destructuring: true,
|
||
subName: 'Item',
|
||
componentName: 'Form.Item',
|
||
},
|
||
{
|
||
package: '@alilc/antd-lowcode-materials',
|
||
version: '0.11.0',
|
||
exportName: 'Input',
|
||
main: 'dist/antd-lowcode.esm.js',
|
||
destructuring: true,
|
||
componentName: 'Input',
|
||
},
|
||
{
|
||
package: '@alilc/antd-lowcode-materials',
|
||
version: '0.11.0',
|
||
exportName: 'Form',
|
||
main: 'dist/antd-lowcode.esm.js',
|
||
destructuring: true,
|
||
componentName: 'Form',
|
||
},
|
||
{
|
||
package: '@alife/container',
|
||
version: '0.3.7',
|
||
exportName: 'P',
|
||
main: 'lib/index.js',
|
||
destructuring: true,
|
||
subName: '',
|
||
componentName: 'NextP',
|
||
},
|
||
{
|
||
package: '@alife/container',
|
||
version: '0.3.7',
|
||
exportName: 'Block',
|
||
main: 'lib/index.js',
|
||
destructuring: true,
|
||
subName: 'Cell',
|
||
componentName: 'NextBlockCell',
|
||
},
|
||
{
|
||
package: '@alife/container',
|
||
version: '0.3.7',
|
||
exportName: 'Block',
|
||
main: 'lib/index.js',
|
||
destructuring: true,
|
||
subName: '',
|
||
componentName: 'NextBlock',
|
||
},
|
||
{
|
||
package: '@alilc/antd-lowcode-materials',
|
||
version: '0.11.0',
|
||
exportName: 'Tooltip',
|
||
main: 'dist/antd-lowcode.esm.js',
|
||
destructuring: true,
|
||
componentName: 'Tooltip',
|
||
},
|
||
{
|
||
package: '@alilc/antd-lowcode-materials',
|
||
version: '0.11.0',
|
||
exportName: 'Icon',
|
||
main: 'dist/antd-lowcode.esm.js',
|
||
destructuring: true,
|
||
componentName: 'Icon',
|
||
},
|
||
{
|
||
package: '@alife/mc-assets-1935',
|
||
version: '0.1.43',
|
||
exportName: 'AliAutoSearchTable',
|
||
main: 'build/lowcode/index.js',
|
||
destructuring: true,
|
||
subName: 'default',
|
||
componentName: 'AliAutoSearchTableDefault',
|
||
},
|
||
{
|
||
package: '@alilc/antd-lowcode-materials',
|
||
version: '0.11.0',
|
||
exportName: 'Empty',
|
||
main: 'dist/antd-lowcode.esm.js',
|
||
destructuring: true,
|
||
componentName: 'Empty',
|
||
},
|
||
{
|
||
package: '@alife/container',
|
||
version: '0.3.7',
|
||
exportName: 'Page',
|
||
main: 'lib/index.js',
|
||
destructuring: true,
|
||
subName: '',
|
||
componentName: 'NextPage',
|
||
},
|
||
{
|
||
devMode: 'lowcode',
|
||
componentName: 'Page',
|
||
},
|
||
],
|
||
componentsTree: [
|
||
{
|
||
componentName: 'Page',
|
||
id: 'node_dockcviv8fo1',
|
||
props: {
|
||
ref: 'outterView',
|
||
style: {
|
||
height: '100%',
|
||
},
|
||
},
|
||
fileName: 'test',
|
||
dataSource: {
|
||
list: [],
|
||
},
|
||
css: 'body {\n font-size: 12px;\n}\n\n.botton {\n width: 100px;\n color: #ff00ff\n}',
|
||
lifeCycles: {
|
||
constructor: {
|
||
type: 'JSFunction',
|
||
value: "function() {\n this.__jp__init();\n this.statusDesc = {\n 0: '失败',\n 1: '成功',\n 2: '构建中',\n 3: '构建超时',\n };\n this.pageParams = {};\n this.searchParams = {};\n this.userTimeout = null;\n this.currentUser = null;\n this.notFoundContent = null;\n this.projectTimeout = null;\n this.currentProject = null;\n }",
|
||
},
|
||
componentDidMount: {
|
||
type: 'JSFunction',
|
||
value: "function() {\n this.$ds.resolve('PROJECTS');\n if (this.userTimeout) {\n clearTimeout(this.userTimeout);\n this.userTimeout = null;\n }\n if (this.projectTimeout) {\n clearTimeout(this.projectTimeout);\n this.projectTimeout = null;\n }\n }",
|
||
},
|
||
componentDidUpdate: {
|
||
type: 'JSFunction',
|
||
value: 'function(prevProps, prevState, snapshot) {}',
|
||
},
|
||
componentWillUnmount: {
|
||
type: 'JSFunction',
|
||
value: 'function() {}',
|
||
},
|
||
},
|
||
methods: {
|
||
__jp__init: {
|
||
type: 'JSFunction',
|
||
value: 'function() {\n this.__jp__initEnv && this.__jp__initEnv();\n this.__jp__initConfig && this.__jp__initConfig();\n this.__jp__initDataSource && this.__jp__initDataSource();\n this.__jp__initRouter && this.__jp__initRouter();\n this.__jp__initUtils && this.__jp__initUtils();\n}',
|
||
},
|
||
__jp__initRouter: {
|
||
type: 'JSFunction',
|
||
value: 'function() {\n if (window.arsenal) {\n this.$router = new window.jianpin.ArsenalRouter({\n app: this.props.microApp,\n });\n } else {\n this.$router = new window.jianpin.ArsenalRouter();\n }\n}',
|
||
},
|
||
__jp__initDataSource: {
|
||
type: 'JSFunction',
|
||
value: "function() {\n this.$apis = {\n PKG_LIST: {\n name: '打包列表',\n code: 'PKG_LIST',\n url: 'https://auto-nvwa.amap.com/ws/nvwa/cpp5x/packages/',\n method: 'GET',\n dataHandler: res => res.data,\n },\n PROJECTS: {\n name: '项目名称/渠道号',\n code: 'PROJECTS',\n url:\n 'http://auto-nvwa-staging.alibaba.com/ws/nvwa/cpp/select_projects/',\n method: 'GET',\n state: 'projects',\n params: {\n size: 5000,\n },\n dataHandler: res => {\n return res.data.data.result.map(d => {\n const { id, channelId, project_name } = d;\n return {\n label: `${project_name} / ${channelId}`,\n value: id,\n };\n });\n },\n },\n RELOAD: {\n name: '重新执行',\n code: 'RELOAD',\n url: 'https://auto-nvwa.amap.com/cpp/configbuild/rebuild/',\n method: 'GET',\n },\n BUILD_RESULT: {\n name: '打包结果',\n code: 'BUILD_RESULT',\n url:\n 'https://auto-nvwa.amap.com/cpp/api/configbuild/get_build_result/',\n method: 'GET',\n state: 'results',\n dataHandler: res => {\n return res.data.result;\n },\n },\n BUC_USER: {\n name: '搜索用户',\n code: 'BUC_USER',\n url: 'https://auto-nvwa.amap.com/ws/nvwa/sso_users/',\n method: 'GET',\n dataHandler: res => res.data.items,\n },\n};\n this.$ds = new window.jianpin.DataSource(this, {});\n}",
|
||
},
|
||
__jp__initEnv: {
|
||
type: 'JSFunction',
|
||
value: "function() {\n const hostname = window.location.hostname;\n let env = 'prod';\n\n if (window.jianpin && window.jianpin.env === 'dev') {\n env = 'dev';\n } else if (window.arsenalConfig) {\n env = window.arsenalConfig.env;\n }\n\n const urlSearchParams = new URLSearchParams(window.location.search);\n const searchParams = {};\n for (const [key, value] of urlSearchParams) {\n searchParams[key] = value;\n }\n this.$env = env;\n this.$searchParams = searchParams;\n\n if (window.arsenal && window.arsenal.store) {\n this.$user = window.arsenal.store.getState('user');\n this.$store = window.arsenal.store;\n window.arsenal.store.subscribe('user', () => {\n this.$user = window.arsenal.store.getState('user');\n });\n } else {\n this.$store = {\n subscribe: () => {},\n getState: () => {},\n };\n this.$user = this.__jp__mockUser || {};\n }\n}",
|
||
},
|
||
__jp__initConfig: {
|
||
type: 'JSFunction',
|
||
value: 'function() {\n const __config = {\n "default": {},\n "dev": {},\n "daily": {},\n "pre": {},\n "prod": {}\n};\n\n this.$config = window.jianpin.utils.extend(true, {}, __config.default, __config[this.$env]);\n}',
|
||
},
|
||
__jp__initUtils: {
|
||
type: 'JSFunction',
|
||
value: 'function() {\n this.$utils = {\n message: window.jianpin.utils.message,\n axios: window.jianpin.utils.axios,\n moment: window.jianpin.utils.moment,\n };\n}',
|
||
},
|
||
setSearchItem: {
|
||
type: 'JSFunction',
|
||
value: 'function(item) {\n const searchState = this.state.searchValues;\n const reducer = (pre, key) => {\n let value = searchState[key];\n if (item.hasOwnProperty(key)) {\n value = item[key];\n }\n return {\n ...pre,\n [key]: value || null,\n };\n };\n const searchValues = Object.keys(searchState).reduce(reducer, {});\n this.setState({\n searchValues,\n });\n }',
|
||
},
|
||
fetchProject: {
|
||
type: 'JSFunction',
|
||
value: "function(value, callback) {\n if (this.projectTimeout) {\n clearTimeout(this.projectTimeout);\n this.projectTimeout = null;\n }\n this.currentProject = value;\n\n const fake = () => {\n this.$ds\n .resolve('PROJECTS', {\n params: { search_param: value },\n })\n .then(res => {\n if (this.currentProject !== value) {\n return;\n }\n callback(res || []);\n });\n };\n this.projectTimeout = setTimeout(fake, 300);\n }",
|
||
},
|
||
handleProjectSearch: {
|
||
type: 'JSFunction',
|
||
value: 'function(value) {\n if (value) {\n this.fetchProject(value, projects => {\n this.setState({ projects });\n });\n } else {\n this.setState({ projects: [] });\n }\n }',
|
||
},
|
||
handleProjectChange: {
|
||
type: 'JSFunction',
|
||
value: 'function(id) {\n this.setSearchItem({\n channel_id: id,\n });\n }',
|
||
},
|
||
fetchUser: {
|
||
type: 'JSFunction',
|
||
value: "function(value, callback) {\n if (this.userTimeout) {\n clearTimeout(this.userTimeout);\n this.userTimeout = null;\n }\n this.currentUser = value;\n\n const fake = () => {\n this.$ds\n .resolve('BUC_USER', {\n params: { q: value },\n })\n .then(res => {\n if (this.currentUser !== value) {\n return;\n }\n const data = res.slice(0, 8).map(r => ({\n label: `${r.id} / ${r.label}`,\n value: r.id,\n }));\n callback(data);\n });\n };\n this.userTimeout = setTimeout(fake, 300);\n }",
|
||
},
|
||
handleUserSearch: {
|
||
type: 'JSFunction',
|
||
value: 'function(value) {\n if (value) {\n this.fetchUser(value, userOptions => {\n this.setState({ userOptions });\n });\n } else {\n this.setState({ userOptions: [] });\n }\n }',
|
||
},
|
||
handleUserChange: {
|
||
type: 'JSFunction',
|
||
value: "function(user) {\n console.log('debug user', user);\n this.setSearchItem({\n user_id: user,\n });\n }",
|
||
},
|
||
fetchPkgs: {
|
||
type: 'JSFunction',
|
||
value: "function() {\n const { pageIndex, pageSize } = this.pageParams;\n this.$ds\n .resolve('PKG_LIST', {\n params: {\n ...this.searchParams,\n page: pageIndex,\n size: pageSize,\n },\n })\n .then(res => {\n const { result, page } = res.data;\n const { count } = page;\n this.setState({\n isSearch: true,\n pkgs: result,\n total: count,\n });\n });\n }",
|
||
},
|
||
onPageChange: {
|
||
type: 'JSFunction',
|
||
value: 'function(pageIndex, pageSize) {\n this.pageParams = {\n pageIndex,\n pageSize,\n };\n this.fetchPkgs();\n }',
|
||
},
|
||
renderTime: {
|
||
type: 'JSFunction',
|
||
value: "function(time) {\n return this.$utils.moment(time).format('YYYY-MM-DD HH:mm');\n }",
|
||
},
|
||
renderUserName: {
|
||
type: 'JSFunction',
|
||
value: 'function(user) {\n return user.user_name;\n }',
|
||
},
|
||
reload: {
|
||
type: 'JSFunction',
|
||
value: "function(id) {\n if (!confirm('确实要重新执行?')) {\n return;\n }\n this.$ds\n .resolve('RELOAD', {\n params: {\n build_id: id,\n },\n })\n .then(res => {\n const { code, message } = res.data.status;\n if (code == 0) {\n this.$utils.message.error(message);\n } else {\n const { pageIndex, pageSize } = this.pageParams;\n this.onPageChange(pageIndex, pageSize);\n }\n })\n .catch(err => {\n this.$utils.message.error(err.message);\n });\n }",
|
||
},
|
||
handleResult: {
|
||
type: 'JSFunction',
|
||
value: "function(e) {\n // e.persist();\n e.preventDefault();\n e.stopPropagation();\n let href;\n let tagName;\n let target = e.target;\n do {\n tagName = target.tagName.toUpperCase();\n href = target.getAttribute('href');\n target = target.parentNode;\n } while (!href && tagName !== 'TD');\n if (!href) {\n return;\n }\n\n this.$ds\n .resolve('BUILD_RESULT', {\n params: {\n build_id: href,\n },\n })\n .then(res => {\n this.setState({\n resultVisible: true,\n });\n })\n .catch(err => {\n this.$utils.message.error(`打包结果获取失败: ${err.message}`);\n });\n }",
|
||
},
|
||
handleDetail: {
|
||
type: 'JSFunction',
|
||
value: 'function() {\n // 跳转详情页面 TODO\n }',
|
||
},
|
||
onResultCancel: {
|
||
type: 'JSFunction',
|
||
value: 'function() {\n this.setState({\n resultVisible: false,\n });\n }',
|
||
},
|
||
formatResult: {
|
||
type: 'JSFunction',
|
||
value: "function(item) {\n if (!item) {\n return '暂无结果';\n }\n const { channel, plat, version, status } = item;\n return [channel, plat, version, status].join('-');\n }",
|
||
},
|
||
handleDownload: {
|
||
type: 'JSFunction',
|
||
value: "function() {\n const { results } = this.state;\n if (!results || results.length < 1) {\n return;\n }\n let link = document.createElement('a');\n link.style.display = 'none';\n document.body.appendChild(link);\n results.forEach(r => {\n link.href = r.download_link;\n link.click();\n });\n document.body.removeChild(link);\n link = null;\n }",
|
||
},
|
||
onFinish: {
|
||
type: 'JSFunction',
|
||
value: 'function(f) {\n const params = Object.keys(f).reduce((pre, key) => {\n const value = f[key];\n if (value === undefined) {\n return pre;\n }\n return {\n ...pre,\n [key]: value,\n };\n }, {});\n this.searchParams = params;\n this.fetchPkgs();\n }',
|
||
},
|
||
},
|
||
state: {
|
||
pkgs: [],
|
||
total: 0,
|
||
isSearch: false,
|
||
projects: [],
|
||
results: [],
|
||
resultVisible: false,
|
||
userOptions: [],
|
||
searchValues: {
|
||
user_id: '',
|
||
channel_id: '',
|
||
},
|
||
},
|
||
children: [
|
||
{
|
||
componentName: 'Modal',
|
||
id: 'node_ocksh9yppxb',
|
||
props: {
|
||
title: '查看结果',
|
||
visible: {
|
||
type: 'JSExpression',
|
||
value: 'this.state.resultVisible',
|
||
},
|
||
footer: {
|
||
type: 'JSSlot',
|
||
value: [
|
||
{
|
||
componentName: 'Button',
|
||
id: 'node_ocksh9yppxf',
|
||
props: {
|
||
type: 'primary',
|
||
children: '确定',
|
||
__events: {
|
||
eventDataList: [
|
||
{
|
||
type: 'componentEvent',
|
||
name: 'onClick',
|
||
relatedEventName: 'onResultCancel',
|
||
},
|
||
],
|
||
eventList: [
|
||
{
|
||
name: 'onClick',
|
||
disabled: true,
|
||
},
|
||
],
|
||
},
|
||
onClick: {
|
||
type: 'JSFunction',
|
||
value: 'function(){this.onResultCancel.apply(this,Array.prototype.slice.call(arguments).concat([])) }',
|
||
},
|
||
},
|
||
},
|
||
],
|
||
},
|
||
__events: {
|
||
eventDataList: [
|
||
{
|
||
type: 'componentEvent',
|
||
name: 'onCancel',
|
||
relatedEventName: 'onResultCancel',
|
||
},
|
||
],
|
||
eventList: [
|
||
{
|
||
name: 'onCancel',
|
||
disabled: true,
|
||
},
|
||
{
|
||
name: 'onOk',
|
||
disabled: false,
|
||
},
|
||
],
|
||
},
|
||
onCancel: {
|
||
type: 'JSFunction',
|
||
value: 'function(){this.onResultCancel.apply(this,Array.prototype.slice.call(arguments).concat([])) }',
|
||
},
|
||
width: '720px',
|
||
centered: true,
|
||
closable: true,
|
||
keyboard: true,
|
||
mask: true,
|
||
maskClosable: true,
|
||
},
|
||
hidden: true,
|
||
children: [
|
||
{
|
||
componentName: 'AliAutoDivDefault',
|
||
id: 'node_ockshazuxa4',
|
||
props: {
|
||
style: {
|
||
width: '100%',
|
||
},
|
||
},
|
||
children: [
|
||
{
|
||
componentName: 'AliAutoDivDefault',
|
||
id: 'node_ockshazuxai',
|
||
props: {
|
||
style: {
|
||
width: '100%',
|
||
textAlign: 'left',
|
||
marginBottom: '16px',
|
||
},
|
||
},
|
||
condition: {
|
||
type: 'JSExpression',
|
||
value: 'this.state.results && this.state.results.length > 0',
|
||
},
|
||
children: [
|
||
{
|
||
componentName: 'Button',
|
||
id: 'node_ockshazuxah',
|
||
props: {
|
||
type: 'primary',
|
||
children: '下载全部',
|
||
size: 'small',
|
||
__events: {
|
||
eventDataList: [
|
||
{
|
||
type: 'componentEvent',
|
||
name: 'onClick',
|
||
relatedEventName: 'handleDownload',
|
||
},
|
||
],
|
||
eventList: [
|
||
{
|
||
name: 'onClick',
|
||
disabled: true,
|
||
},
|
||
],
|
||
},
|
||
onClick: {
|
||
type: 'JSFunction',
|
||
value: 'function(){this.handleDownload.apply(this,Array.prototype.slice.call(arguments).concat([])) }',
|
||
},
|
||
},
|
||
},
|
||
],
|
||
},
|
||
{
|
||
componentName: 'AliAutoDivDefault',
|
||
id: 'node_ockt2muyfi4',
|
||
props: {
|
||
style: {
|
||
width: '100%',
|
||
marginTop: '10px',
|
||
},
|
||
},
|
||
loop: {
|
||
type: 'JSExpression',
|
||
value: 'this.state.results',
|
||
},
|
||
children: [
|
||
{
|
||
componentName: 'Typography.Text',
|
||
id: 'node_ockshazuxa5',
|
||
props: {
|
||
children: {
|
||
type: 'JSExpression',
|
||
value: 'this.formatResult(this.item)',
|
||
},
|
||
},
|
||
},
|
||
{
|
||
componentName: 'Typography.Link',
|
||
id: 'node_ockshazuxa6',
|
||
props: {
|
||
href: {
|
||
type: 'JSExpression',
|
||
value: 'this.item.download_link',
|
||
},
|
||
target: '_blank',
|
||
children: ' - 点击下载',
|
||
},
|
||
condition: {
|
||
type: 'JSExpression',
|
||
value: 'this.item.download_link',
|
||
},
|
||
},
|
||
{
|
||
componentName: 'Typography.Link',
|
||
id: 'node_ockshazuxa7',
|
||
props: {
|
||
href: {
|
||
type: 'JSExpression',
|
||
value: 'this.item.release_notes',
|
||
},
|
||
target: '_blank',
|
||
children: ' - 跳转发布节点',
|
||
},
|
||
condition: {
|
||
type: 'JSExpression',
|
||
value: 'this.item.release_notes',
|
||
},
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
{
|
||
componentName: 'NextPage',
|
||
id: 'node_ocko19zplh1',
|
||
props: {
|
||
columns: 12,
|
||
headerDivider: true,
|
||
placeholderStyle: {
|
||
gridRowEnd: 'span 1',
|
||
gridColumnEnd: 'span 12',
|
||
},
|
||
placeholder: '页面主体内容:拖拽Block布局组件到这里',
|
||
header: {
|
||
type: 'JSSlot',
|
||
title: 'header',
|
||
},
|
||
headerProps: {
|
||
background: 'surface',
|
||
style: {
|
||
padding: '',
|
||
},
|
||
},
|
||
footer: {
|
||
type: 'JSSlot',
|
||
title: 'footer',
|
||
},
|
||
minHeight: '100vh',
|
||
contentProps: {
|
||
noPadding: false,
|
||
background: 'transparent',
|
||
},
|
||
},
|
||
title: '页面',
|
||
children: [
|
||
{
|
||
componentName: 'NextBlock',
|
||
id: 'node_ockt3t4q8565',
|
||
props: {
|
||
childTotalColumns: 12,
|
||
},
|
||
title: '区块',
|
||
children: [
|
||
{
|
||
componentName: 'NextBlockCell',
|
||
id: 'node_ockt3t4q8566',
|
||
props: {
|
||
isAutoContainer: true,
|
||
colSpan: 12,
|
||
rowSpan: 1,
|
||
},
|
||
title: '子区块',
|
||
children: [
|
||
{
|
||
componentName: 'NextP',
|
||
id: 'node_ockt3t4q8567',
|
||
props: {
|
||
wrap: false,
|
||
type: 'body2',
|
||
verAlign: 'middle',
|
||
textSpacing: true,
|
||
align: 'left',
|
||
flex: true,
|
||
},
|
||
title: '段落',
|
||
children: [
|
||
{
|
||
componentName: 'AliAutoDivDefault',
|
||
id: 'node_ockt3t4q8568',
|
||
props: {
|
||
style: {
|
||
width: '100%',
|
||
display: 'flex',
|
||
},
|
||
},
|
||
children: [
|
||
{
|
||
componentName: 'AliAutoDivDefault',
|
||
id: 'node_ockt3t4q857a',
|
||
props: {
|
||
style: {
|
||
flex: '1',
|
||
},
|
||
},
|
||
children: [
|
||
{
|
||
componentName: 'Form',
|
||
id: 'node_ocks8dtt1mt',
|
||
props: {
|
||
labelCol: {
|
||
span: 10,
|
||
},
|
||
wrapperCol: {
|
||
span: 14,
|
||
},
|
||
onFinish: {
|
||
type: 'JSFunction',
|
||
value: 'function(){this.onFinish.apply(this,Array.prototype.slice.call(arguments).concat([])) }',
|
||
},
|
||
name: 'basic',
|
||
layout: 'inline',
|
||
__events: {
|
||
eventDataList: [
|
||
{
|
||
type: 'componentEvent',
|
||
name: 'onFinish',
|
||
relatedEventName: 'onFinish',
|
||
},
|
||
],
|
||
eventList: [
|
||
{
|
||
name: 'onFinish',
|
||
disabled: true,
|
||
},
|
||
{
|
||
name: 'onFinishFailed',
|
||
disabled: false,
|
||
},
|
||
{
|
||
name: 'onFieldsChange',
|
||
disabled: false,
|
||
},
|
||
{
|
||
name: 'onValuesChange',
|
||
disabled: false,
|
||
},
|
||
],
|
||
},
|
||
colon: true,
|
||
labelAlign: 'right',
|
||
preserve: true,
|
||
scrollToFirstError: true,
|
||
size: 'middle',
|
||
values: {
|
||
type: 'JSExpression',
|
||
value: 'this.state.searchValues',
|
||
},
|
||
},
|
||
children: [
|
||
{
|
||
componentName: 'Form.Item',
|
||
id: 'node_ocks8dtt1mz',
|
||
props: {
|
||
label: '项目名称/渠道号',
|
||
name: 'channel_id',
|
||
labelAlign: 'right',
|
||
colon: true,
|
||
},
|
||
children: [
|
||
{
|
||
componentName: 'Select',
|
||
id: 'node_ocksfuhwhsd',
|
||
props: {
|
||
style: {
|
||
width: '320px',
|
||
},
|
||
options: {
|
||
type: 'JSExpression',
|
||
value: 'this.state.projects',
|
||
},
|
||
showArrow: false,
|
||
tokenSeparators: [],
|
||
showSearch: true,
|
||
defaultActiveFirstOption: true,
|
||
size: 'middle',
|
||
bordered: true,
|
||
filterOption: true,
|
||
optionFilterProp: 'label',
|
||
allowClear: true,
|
||
placeholder: '请输入项目名称/渠道号',
|
||
__events: {
|
||
eventDataList: [
|
||
{
|
||
type: 'componentEvent',
|
||
name: 'onChange',
|
||
relatedEventName: 'handleProjectChange',
|
||
},
|
||
{
|
||
type: 'componentEvent',
|
||
name: 'onSearch',
|
||
relatedEventName: 'handleProjectSearch',
|
||
},
|
||
],
|
||
eventList: [
|
||
{
|
||
name: 'onBlur',
|
||
disabled: false,
|
||
},
|
||
{
|
||
name: 'onChange',
|
||
disabled: true,
|
||
},
|
||
{
|
||
name: 'onDeselect',
|
||
disabled: false,
|
||
},
|
||
{
|
||
name: 'onFocus',
|
||
disabled: false,
|
||
},
|
||
{
|
||
name: 'onInputKeyDown',
|
||
disabled: false,
|
||
},
|
||
{
|
||
name: 'onMouseEnter',
|
||
disabled: false,
|
||
},
|
||
{
|
||
name: 'onMouseLeave',
|
||
disabled: false,
|
||
},
|
||
{
|
||
name: 'onPopupScroll',
|
||
disabled: false,
|
||
},
|
||
{
|
||
name: 'onSearch',
|
||
disabled: true,
|
||
},
|
||
{
|
||
name: 'onSelect',
|
||
disabled: false,
|
||
},
|
||
{
|
||
name: 'onDropdownVisibleChange',
|
||
disabled: false,
|
||
},
|
||
],
|
||
},
|
||
onChange: {
|
||
type: 'JSFunction',
|
||
value: 'function(){this.handleProjectChange.apply(this,Array.prototype.slice.call(arguments).concat([])) }',
|
||
},
|
||
onSearch: {
|
||
type: 'JSFunction',
|
||
value: 'function(){this.handleProjectSearch.apply(this,Array.prototype.slice.call(arguments).concat([])) }',
|
||
},
|
||
},
|
||
},
|
||
],
|
||
},
|
||
{
|
||
componentName: 'Form.Item',
|
||
id: 'node_ocks8dtt1m12',
|
||
props: {
|
||
label: '版本号',
|
||
name: 'buildId',
|
||
},
|
||
children: [
|
||
{
|
||
componentName: 'Input',
|
||
id: 'node_ocksfuhwhs3',
|
||
props: {
|
||
placeholder: '请输入版本号',
|
||
style: {
|
||
width: '180px',
|
||
},
|
||
size: 'middle',
|
||
bordered: true,
|
||
},
|
||
},
|
||
],
|
||
},
|
||
{
|
||
componentName: 'Form.Item',
|
||
id: 'node_ocks8dtt1m18',
|
||
props: {
|
||
label: '构建人',
|
||
name: 'user_id',
|
||
},
|
||
children: [
|
||
{
|
||
componentName: 'Select',
|
||
id: 'node_ocksfuhwhsi',
|
||
props: {
|
||
style: {
|
||
width: '210px',
|
||
},
|
||
options: {
|
||
type: 'JSExpression',
|
||
value: 'this.state.userOptions',
|
||
},
|
||
showSearch: true,
|
||
defaultActiveFirstOption: false,
|
||
size: 'middle',
|
||
bordered: true,
|
||
filterOption: true,
|
||
optionFilterProp: 'label',
|
||
notFoundContent: {
|
||
type: 'JSExpression',
|
||
value: 'this.userNotFoundContent',
|
||
},
|
||
showArrow: false,
|
||
placeholder: '请输入构建人',
|
||
__events: {
|
||
eventDataList: [
|
||
{
|
||
type: 'componentEvent',
|
||
name: 'onChange',
|
||
relatedEventName: 'handleUserChange',
|
||
},
|
||
{
|
||
type: 'componentEvent',
|
||
name: 'onSearch',
|
||
relatedEventName: 'handleUserSearch',
|
||
},
|
||
],
|
||
eventList: [
|
||
{
|
||
name: 'onBlur',
|
||
disabled: false,
|
||
},
|
||
{
|
||
name: 'onChange',
|
||
disabled: true,
|
||
},
|
||
{
|
||
name: 'onDeselect',
|
||
disabled: false,
|
||
},
|
||
{
|
||
name: 'onFocus',
|
||
disabled: false,
|
||
},
|
||
{
|
||
name: 'onInputKeyDown',
|
||
disabled: false,
|
||
},
|
||
{
|
||
name: 'onMouseEnter',
|
||
disabled: false,
|
||
},
|
||
{
|
||
name: 'onMouseLeave',
|
||
disabled: false,
|
||
},
|
||
{
|
||
name: 'onPopupScroll',
|
||
disabled: false,
|
||
},
|
||
{
|
||
name: 'onSearch',
|
||
disabled: true,
|
||
},
|
||
{
|
||
name: 'onSelect',
|
||
disabled: false,
|
||
},
|
||
{
|
||
name: 'onDropdownVisibleChange',
|
||
disabled: false,
|
||
},
|
||
],
|
||
},
|
||
onChange: {
|
||
type: 'JSFunction',
|
||
value: 'function(){this.handleUserChange.apply(this,Array.prototype.slice.call(arguments).concat([])) }',
|
||
},
|
||
onSearch: {
|
||
type: 'JSFunction',
|
||
value: 'function(){this.handleUserSearch.apply(this,Array.prototype.slice.call(arguments).concat([])) }',
|
||
},
|
||
allowClear: true,
|
||
},
|
||
},
|
||
],
|
||
},
|
||
{
|
||
componentName: 'Form.Item',
|
||
id: 'node_ocks8dtt1m19',
|
||
props: {
|
||
label: 'ID',
|
||
name: 'id',
|
||
labelAlign: 'right',
|
||
colon: true,
|
||
},
|
||
children: [
|
||
{
|
||
componentName: 'Input',
|
||
id: 'node_ocksfuhwhs8',
|
||
props: {
|
||
placeholder: '请输入ID',
|
||
style: {
|
||
width: '180px',
|
||
},
|
||
bordered: true,
|
||
size: 'middle',
|
||
},
|
||
},
|
||
],
|
||
},
|
||
{
|
||
componentName: 'Form.Item',
|
||
id: 'node_ocks8dtt1mw',
|
||
props: {
|
||
wrapperCol: {
|
||
offset: 6,
|
||
},
|
||
labelAlign: 'right',
|
||
colon: true,
|
||
style: {
|
||
flex: '1',
|
||
textAlign: 'right',
|
||
},
|
||
},
|
||
children: [
|
||
{
|
||
componentName: 'Button',
|
||
id: 'node_ocks8dtt1mx',
|
||
props: {
|
||
type: 'primary',
|
||
children: '查询',
|
||
htmlType: 'submit',
|
||
shape: 'default',
|
||
size: 'middle',
|
||
},
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
{
|
||
componentName: 'AliAutoDivDefault',
|
||
id: 'node_ockt3t4q856b',
|
||
props: {
|
||
style: {},
|
||
},
|
||
children: [
|
||
{
|
||
componentName: 'Button',
|
||
id: 'node_ockt3t4q85y',
|
||
props: {
|
||
type: 'link',
|
||
children: '新增打包',
|
||
htmlType: 'button',
|
||
shape: 'default',
|
||
size: 'middle',
|
||
},
|
||
condition: true,
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
{
|
||
componentName: 'NextBlock',
|
||
id: 'node_ockshc4ifn1b',
|
||
props: {
|
||
childTotalColumns: 12,
|
||
mode: 'inset',
|
||
layoutmode: 'O',
|
||
autolayout: '(12|1)',
|
||
},
|
||
title: '区块',
|
||
children: [
|
||
{
|
||
componentName: 'NextBlockCell',
|
||
id: 'node_ockshc4ifn1c',
|
||
props: {
|
||
isAutoContainer: true,
|
||
colSpan: 12,
|
||
rowSpan: 1,
|
||
},
|
||
title: '子区块',
|
||
children: [
|
||
{
|
||
componentName: 'NextP',
|
||
id: 'node_ockshc4ifn1d',
|
||
props: {
|
||
wrap: false,
|
||
type: 'body2',
|
||
verAlign: 'middle',
|
||
textSpacing: true,
|
||
align: 'left',
|
||
flex: true,
|
||
},
|
||
title: '段落',
|
||
children: [
|
||
{
|
||
componentName: 'AliAutoSearchTableDefault',
|
||
id: 'node_ocksfuhwhsx',
|
||
props: {
|
||
rowKey: 'key',
|
||
dataSource: {
|
||
type: 'JSExpression',
|
||
value: 'this.state.pkgs',
|
||
},
|
||
columns: [
|
||
{
|
||
title: 'ID',
|
||
dataIndex: 'id',
|
||
key: 'name',
|
||
width: 80,
|
||
},
|
||
{
|
||
title: '渠道号',
|
||
dataIndex: 'channels',
|
||
key: 'age',
|
||
width: 142,
|
||
render: {
|
||
type: 'JSSlot',
|
||
params: ['text', 'record', 'index'],
|
||
value: [
|
||
{
|
||
componentName: 'Typography.Text',
|
||
id: 'node_ocksh2bq0428',
|
||
props: {
|
||
children: {
|
||
type: 'JSExpression',
|
||
value: 'this.item',
|
||
},
|
||
style: {
|
||
display: 'block',
|
||
},
|
||
},
|
||
loop: {
|
||
type: 'JSExpression',
|
||
value: "this.text.split(',')",
|
||
},
|
||
},
|
||
],
|
||
},
|
||
},
|
||
{
|
||
title: '版本号',
|
||
dataIndex: 'dic_version',
|
||
key: 'address',
|
||
render: {
|
||
type: 'JSSlot',
|
||
params: ['text', 'record', 'index'],
|
||
value: [
|
||
{
|
||
componentName: 'Tooltip',
|
||
id: 'node_ocksts0jqgj',
|
||
props: {
|
||
title: {
|
||
type: 'JSSlot',
|
||
value: [
|
||
{
|
||
componentName: 'Typography.Text',
|
||
id: 'node_ocksts0jqgn',
|
||
props: {
|
||
children: {
|
||
type: 'JSExpression',
|
||
value: "this.item. channelId + ' / ' + this.item.version",
|
||
},
|
||
style: {
|
||
display: 'block',
|
||
color: '#FFFFFF',
|
||
},
|
||
},
|
||
loop: {
|
||
type: 'JSExpression',
|
||
value: 'this.text || []',
|
||
},
|
||
},
|
||
],
|
||
},
|
||
},
|
||
children: [
|
||
{
|
||
componentName: 'Typography.Text',
|
||
id: 'node_ocksts0jqgm',
|
||
props: {
|
||
children: {
|
||
type: 'JSExpression',
|
||
value: 'this.text[0].version',
|
||
},
|
||
},
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
width: 120,
|
||
},
|
||
{
|
||
title: '构建Job',
|
||
dataIndex: 'job_name',
|
||
width: 180,
|
||
},
|
||
{
|
||
title: '构建类型',
|
||
dataIndex: 'packaging_type',
|
||
width: 94,
|
||
},
|
||
{
|
||
title: '构建状态',
|
||
dataIndex: 'status',
|
||
render: {
|
||
type: 'JSSlot',
|
||
params: ['text', 'record', 'index'],
|
||
value: [
|
||
{
|
||
componentName: 'Typography.Text',
|
||
id: 'node_ocksh3jkxzw',
|
||
props: {
|
||
children: {
|
||
type: 'JSExpression',
|
||
value: 'this.statusDesc[this.text]',
|
||
},
|
||
},
|
||
},
|
||
{
|
||
componentName: 'Icon',
|
||
id: 'node_ocksh3jkxzx',
|
||
props: {
|
||
type: 'SyncOutlined',
|
||
size: 16,
|
||
spin: true,
|
||
style: {
|
||
marginLeft: '10px',
|
||
},
|
||
},
|
||
condition: {
|
||
type: 'JSExpression',
|
||
value: 'this.text === 2',
|
||
},
|
||
},
|
||
],
|
||
},
|
||
width: 100,
|
||
},
|
||
{
|
||
title: '构建时间',
|
||
dataIndex: 'start_time',
|
||
render: {
|
||
type: 'JSFunction',
|
||
value: 'function(){ return this.renderTime.apply(this,Array.prototype.slice.call(arguments).concat([])) }',
|
||
},
|
||
width: 148,
|
||
},
|
||
{
|
||
title: '构建人',
|
||
dataIndex: 'user',
|
||
render: {
|
||
type: 'JSFunction',
|
||
value: 'function(){ return this.renderUserName.apply(this,Array.prototype.slice.call(arguments).concat([])) }',
|
||
},
|
||
width: 80,
|
||
},
|
||
{
|
||
title: 'Jenkins 链接',
|
||
dataIndex: 'jenkins_link',
|
||
render: {
|
||
type: 'JSSlot',
|
||
params: ['text', 'record', 'index'],
|
||
value: [
|
||
{
|
||
componentName: 'Typography.Link',
|
||
id: 'node_ocksh64kbx21',
|
||
props: {
|
||
href: {
|
||
type: 'JSExpression',
|
||
value: 'this.text',
|
||
},
|
||
target: '_blank',
|
||
children: '查看',
|
||
},
|
||
condition: {
|
||
type: 'JSExpression',
|
||
value: 'this.text',
|
||
},
|
||
},
|
||
{
|
||
componentName: 'Typography.Text',
|
||
id: 'node_ocksh64kbx22',
|
||
props: {
|
||
children: '暂无',
|
||
},
|
||
condition: {
|
||
type: 'JSExpression',
|
||
value: '!this.text',
|
||
},
|
||
},
|
||
],
|
||
},
|
||
width: 120,
|
||
},
|
||
{
|
||
title: '测试平台链接',
|
||
dataIndex: 'is_run_testing',
|
||
width: 120,
|
||
render: {
|
||
type: 'JSSlot',
|
||
params: ['text', 'record', 'index'],
|
||
value: [
|
||
{
|
||
componentName: 'Typography.Link',
|
||
id: 'node_ocksh3jkxz3e',
|
||
props: {
|
||
href: 'http://rivermap.alibaba.net/dashboard/testExecute',
|
||
target: '_blank',
|
||
children: '查看',
|
||
},
|
||
condition: {
|
||
type: 'JSExpression',
|
||
value: 'this.text',
|
||
},
|
||
},
|
||
{
|
||
componentName: 'Typography.Text',
|
||
id: 'node_ocksh3jkxz3f',
|
||
props: {
|
||
children: '暂无',
|
||
},
|
||
condition: {
|
||
type: 'JSExpression',
|
||
value: '!this.text',
|
||
},
|
||
},
|
||
],
|
||
},
|
||
},
|
||
{
|
||
title: '触发源',
|
||
dataIndex: 'source',
|
||
width: 120,
|
||
},
|
||
{
|
||
title: '详情',
|
||
dataIndex: 'id',
|
||
render: {
|
||
type: 'JSSlot',
|
||
params: ['text', 'record', 'index'],
|
||
value: [
|
||
{
|
||
componentName: 'Button',
|
||
id: 'node_ocksh8yryw7',
|
||
props: {
|
||
type: 'link',
|
||
children: '查看',
|
||
size: 'small',
|
||
style: {
|
||
padding: '0px',
|
||
},
|
||
__events: {
|
||
eventDataList: [
|
||
{
|
||
type: 'componentEvent',
|
||
name: 'onClick',
|
||
relatedEventName: 'handleDetail',
|
||
},
|
||
],
|
||
eventList: [
|
||
{
|
||
name: 'onClick',
|
||
disabled: true,
|
||
},
|
||
],
|
||
},
|
||
onClick: {
|
||
type: 'JSFunction',
|
||
value: 'function(){this.handleDetail.apply(this,Array.prototype.slice.call(arguments).concat([])) }',
|
||
},
|
||
},
|
||
},
|
||
],
|
||
},
|
||
width: 80,
|
||
fixed: 'right',
|
||
},
|
||
{
|
||
title: '结果',
|
||
dataIndex: 'id',
|
||
render: {
|
||
type: 'JSSlot',
|
||
params: ['text', 'record', 'index'],
|
||
value: [
|
||
{
|
||
componentName: 'Button',
|
||
id: 'node_ocksh9v6jw7',
|
||
props: {
|
||
type: 'link',
|
||
children: '查看',
|
||
size: 'small',
|
||
style: {
|
||
padding: '0px',
|
||
},
|
||
__events: {
|
||
eventDataList: [
|
||
{
|
||
type: 'componentEvent',
|
||
name: 'onClick',
|
||
relatedEventName: 'handleResult',
|
||
paramStr: 'this.text',
|
||
},
|
||
],
|
||
eventList: [
|
||
{
|
||
name: 'onClick',
|
||
disabled: true,
|
||
},
|
||
],
|
||
},
|
||
onClick: {
|
||
type: 'JSFunction',
|
||
value: 'function(){this.handleResult.apply(this,Array.prototype.slice.call(arguments).concat([])) }',
|
||
},
|
||
ghost: false,
|
||
href: {
|
||
type: 'JSExpression',
|
||
value: 'this.text',
|
||
},
|
||
},
|
||
},
|
||
],
|
||
},
|
||
width: 80,
|
||
fixed: 'right',
|
||
},
|
||
{
|
||
title: '重新执行',
|
||
dataIndex: 'id',
|
||
width: 92,
|
||
render: {
|
||
type: 'JSSlot',
|
||
params: ['text', 'record', 'index'],
|
||
value: [
|
||
{
|
||
componentName: 'Button',
|
||
id: 'node_ocksh96rad1g',
|
||
props: {
|
||
type: 'text',
|
||
children: '',
|
||
icon: {
|
||
type: 'JSSlot',
|
||
value: [
|
||
{
|
||
componentName: 'Icon',
|
||
id: 'node_ocksh96rad1j',
|
||
props: {
|
||
type: 'ReloadOutlined',
|
||
size: 14,
|
||
color: '#0593d3',
|
||
style: {
|
||
padding: '3px',
|
||
border: '1px solid #0593d3',
|
||
borderRadius: '14px',
|
||
cursor: 'pointer',
|
||
height: '22px',
|
||
},
|
||
spin: false,
|
||
},
|
||
},
|
||
],
|
||
},
|
||
shape: 'circle',
|
||
__events: {
|
||
eventDataList: [
|
||
{
|
||
type: 'componentEvent',
|
||
name: 'onClick',
|
||
relatedEventName: 'reload',
|
||
},
|
||
],
|
||
eventList: [
|
||
{
|
||
name: 'onClick',
|
||
disabled: true,
|
||
},
|
||
],
|
||
},
|
||
onClick: {
|
||
type: 'JSFunction',
|
||
value: 'function(){this.reload.apply(this,Array.prototype.slice.call(arguments).concat([])) }',
|
||
},
|
||
},
|
||
},
|
||
],
|
||
},
|
||
fixed: 'right',
|
||
},
|
||
],
|
||
actions: [],
|
||
pagination: {
|
||
total: {
|
||
type: 'JSExpression',
|
||
value: 'this.state.total',
|
||
},
|
||
defaultPageSize: 10,
|
||
onPageChange: {
|
||
type: 'JSFunction',
|
||
value: 'function(){ return this.onPageChange.apply(this,Array.prototype.slice.call(arguments).concat([])) }',
|
||
},
|
||
defaultPageIndex: 1,
|
||
},
|
||
scrollX: 1200,
|
||
isPagination: true,
|
||
},
|
||
condition: {
|
||
type: 'JSExpression',
|
||
value: '!this.state.isSearch || (this.state.isSearch && this.state.pkgs.length > 0)',
|
||
},
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
{
|
||
componentName: 'NextBlock',
|
||
id: 'node_ocksk6f8fa3b',
|
||
props: {
|
||
childTotalColumns: 12,
|
||
mode: 'inset',
|
||
layoutmode: 'O',
|
||
autolayout: '(12|1)',
|
||
},
|
||
title: '区块',
|
||
children: [
|
||
{
|
||
componentName: 'NextBlockCell',
|
||
id: 'node_ocksk6f8fa3c',
|
||
props: {
|
||
isAutoContainer: true,
|
||
colSpan: 12,
|
||
rowSpan: 1,
|
||
},
|
||
title: '子区块',
|
||
children: [
|
||
{
|
||
componentName: 'NextP',
|
||
id: 'node_ocksk6f8fa3d',
|
||
props: {
|
||
wrap: false,
|
||
type: 'body2',
|
||
verAlign: 'middle',
|
||
textSpacing: true,
|
||
align: 'left',
|
||
flex: true,
|
||
},
|
||
title: '段落',
|
||
children: [
|
||
{
|
||
componentName: 'Empty',
|
||
id: 'node_ocksk6f8fa3e',
|
||
props: {
|
||
description: '暂无数据',
|
||
},
|
||
condition: {
|
||
type: 'JSExpression',
|
||
value: 'this.state.pkgs.length < 1 && this.state.isSearch',
|
||
},
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
],
|
||
i18n: {},
|
||
}
|