diff --git a/user-dashboard/src/app/assets/src/components/PageHeader/index.less b/user-dashboard/src/app/assets/src/components/PageHeader/index.less index ae0fddc38..6552f0656 100644 --- a/user-dashboard/src/app/assets/src/components/PageHeader/index.less +++ b/user-dashboard/src/app/assets/src/components/PageHeader/index.less @@ -18,7 +18,7 @@ } .tabs { - margin: 0 0 -17px -8px; + margin: 0 0 -1px -8px; :global { .ant-tabs-bar { diff --git a/user-dashboard/src/app/assets/src/routes/SmartContract/Info/deploy.js b/user-dashboard/src/app/assets/src/routes/SmartContract/Info/deploy.js index e3eb2cc55..b843b7eae 100644 --- a/user-dashboard/src/app/assets/src/routes/SmartContract/Info/deploy.js +++ b/user-dashboard/src/app/assets/src/routes/SmartContract/Info/deploy.js @@ -147,8 +147,11 @@ export default class Deploy extends Component { render() { const { stepDirection, current, version, versionId, chainName, chainId, installing, instantiating } = this.state; - const { chains, codes } = this.props; + const { chains, codes, currentSmartContract } = this.props; const { getFieldDecorator } = this.props.form; + const defaultValues = currentSmartContract.default || {}; + const defaultParameters = defaultValues.parameters || {}; + const defaultInstantiateParameters = defaultParameters.instantiate ? defaultParameters.instantiate.join(",") : ""; const versionOptions = codes.map(code => ); const chainOptions = chains.map(chain => ); const versionDesc = ( @@ -221,7 +224,7 @@ export default class Deploy extends Component { extra="Must use ',' separate arguments." > {getFieldDecorator('args', { - initialValue: '', + initialValue: defaultInstantiateParameters, rules: [ { required: true, diff --git a/user-dashboard/src/app/assets/src/routes/SmartContract/InvokeQuery/index.js b/user-dashboard/src/app/assets/src/routes/SmartContract/InvokeQuery/index.js index 727248923..0b0dbeabe 100644 --- a/user-dashboard/src/app/assets/src/routes/SmartContract/InvokeQuery/index.js +++ b/user-dashboard/src/app/assets/src/routes/SmartContract/InvokeQuery/index.js @@ -148,12 +148,14 @@ export default class AdvancedProfile extends Component { operation: 'invoke', onSubmit: this.operateAPI, submitting: operating, + currentDeploy, }; const queryProps = { operation: 'query', onSubmit: this.operateAPI, submitting: operating, result: queryResult, + currentDeploy, }; const contentList = { diff --git a/user-dashboard/src/app/assets/src/routes/SmartContract/InvokeQuery/operate.js b/user-dashboard/src/app/assets/src/routes/SmartContract/InvokeQuery/operate.js index 4fd0684d2..0ede06f8c 100644 --- a/user-dashboard/src/app/assets/src/routes/SmartContract/InvokeQuery/operate.js +++ b/user-dashboard/src/app/assets/src/routes/SmartContract/InvokeQuery/operate.js @@ -37,7 +37,14 @@ export default class OperateDeploy extends Component { }); }; render() { - const { form: { getFieldDecorator }, operation, submitting, result } = this.props; + const { form: { getFieldDecorator }, operation, submitting, result, currentDeploy } = this.props; + const smartContract = currentDeploy.smartContract || {}; + const defaultValues = smartContract.default || {}; + const parameters = defaultValues.parameters || {}; + const functions = defaultValues.functions || {}; + const functionName = operation === "query" ? functions.query || "" : functions.invoke || ""; + const parameter = operation === "query" ? parameters.query || [] : parameters.invoke || []; + const parameterStr = parameter.join(","); const formItemLayout = { labelCol: { xs: { span: 24 }, @@ -74,7 +81,7 @@ export default class OperateDeploy extends Component { label="Function Name" > {getFieldDecorator('functionName', { - initialValue: '', + initialValue: functionName, rules: [ { required: true, @@ -89,7 +96,7 @@ export default class OperateDeploy extends Component { extra="Must use ',' separate arguments." > {getFieldDecorator('args', { - initialValue: '', + initialValue: parameterStr, rules: [ { required: true, diff --git a/user-dashboard/src/app/model/smart-contract.js b/user-dashboard/src/app/model/smart-contract.js index 8b12f3011..98acf24df 100644 --- a/user-dashboard/src/app/model/smart-contract.js +++ b/user-dashboard/src/app/model/smart-contract.js @@ -14,6 +14,7 @@ module.exports = app => { description: { type: String }, path: { type: String }, createTime: { type: Date, default: Date.now }, + default: { type: Schema.Types.Mixed }, }); SmartContractSchema.post('remove', function(doc) { diff --git a/user-dashboard/src/app/service/deploy.js b/user-dashboard/src/app/service/deploy.js index 437b903b0..218fe237c 100644 --- a/user-dashboard/src/app/service/deploy.js +++ b/user-dashboard/src/app/service/deploy.js @@ -29,7 +29,7 @@ class DeployService extends Service { } async query(id) { const { ctx } = this; - const deploy = await ctx.model.SmartContractDeploy.findOne({ _id: id }, '_id name status deployTime').populate('smartContractCode chain smartContract', '_id version name chainId type size'); + const deploy = await ctx.model.SmartContractDeploy.findOne({ _id: id }, '_id name status deployTime').populate('smartContractCode chain smartContract', '_id version name chainId type size default'); if (!deploy) { return { success: false, diff --git a/user-dashboard/src/app/service/smart_contract.js b/user-dashboard/src/app/service/smart_contract.js index 58847ed95..d0096657b 100644 --- a/user-dashboard/src/app/service/smart_contract.js +++ b/user-dashboard/src/app/service/smart_contract.js @@ -36,6 +36,7 @@ class SmartContractService extends Service { name: smartContract.name, description: smartContract.description, path: smartContractPath, + default: smartContract.default, user: userId, }); await ctx.model.SmartContractCode.create({ @@ -145,7 +146,7 @@ class SmartContractService extends Service { } async querySmartContract(id) { const { ctx } = this; - const smartContract = await ctx.model.SmartContract.findOne({ _id: id }, '_id description name createTime'); + const smartContract = await ctx.model.SmartContract.findOne({ _id: id }, '_id description name createTime default'); if (!smartContract) { return { success: false, diff --git a/user-dashboard/src/config/config.default.js b/user-dashboard/src/config/config.default.js index b1d25e5c1..bf5095e90 100644 --- a/user-dashboard/src/config/config.default.js +++ b/user-dashboard/src/config/config.default.js @@ -44,7 +44,18 @@ module.exports = appInfo => { name: 'chaincode_example02', path: '/var/www/resource/smart_contract/fabric/chaincode_example02', version: 'v1.0', - description: 'This is a demo smart contract example02.', + description: 'This is a demo smart contract example02 for fabric v1.0, can not install&instantiate on fabric v1.2', + default: { + parameters: { + instantiate: ['a', '100', 'b', '100'], + invoke: ['a', 'b', '1'], + query: ['a'], + }, + functions: { + invoke: 'invoke', + query: 'query', + }, + }, }, ], },