2022-02-16 11:20:17 +08:00

1458 lines
69 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
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: {},
}