<template>
|
<el-dialog :title="title" :visible.sync="visible" width="800px" :append-to-body="true" @close="handClose">
|
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()"
|
label-width="250px">
|
<el-form-item label="币种名称" prop="name">
|
<el-input type="string" v-model="dataForm.name"></el-input>
|
</el-form-item>
|
|
<el-form-item label="代币符号(例如 BTC, ETH)" prop="symbol">
|
<el-input type="string" v-model="dataForm.symbol"></el-input>
|
</el-form-item>
|
|
<el-form-item label="数据源编码" prop="symbolData">
|
<el-input type="string" v-model="dataForm.symbolData"></el-input>
|
</el-form-item>
|
|
<el-form-item label="最小浮动(对应引用币种的小数点)" prop="pips">
|
<el-input type="number" v-model="dataForm.pips"></el-input>
|
</el-form-item>
|
|
<el-form-item label="最小浮动金额(以交易金额计算)" prop="pipsAmount">
|
<el-input type="number" v-model="dataForm.pipsAmount"></el-input>
|
</el-form-item>
|
|
<el-form-item label="调整值" prop="adjustmentValue">
|
<el-input type="number" v-model="dataForm.adjustmentValue"></el-input>
|
</el-form-item>
|
|
<el-form-item label="每张金额" prop="unitAmount">
|
<el-input type="number" v-model="dataForm.unitAmount"></el-input>
|
</el-form-item>
|
|
<el-form-item label="每张手续费" prop="unitFee">
|
<el-input type="number" v-model="dataForm.unitFee"></el-input>
|
</el-form-item>
|
|
<el-form-item label="小数位精度(小数位)" prop="decimals">
|
<el-input type="number" v-model="dataForm.decimals"></el-input>
|
</el-form-item>
|
|
<el-form-item label="交易量倍数" prop="multiple">
|
<el-input type="number" v-model="dataForm.multiple"></el-input>
|
</el-form-item>
|
|
<el-form-item label="借贷利率" prop="borrowingRate">
|
<el-input type="number" v-model="dataForm.borrowingRate"></el-input>
|
</el-form-item>
|
|
<el-form-item label="发行价" prop="issuePrice">
|
<el-input type="number" v-model="dataForm.issuePrice"></el-input>
|
</el-form-item>
|
|
<el-form-item label="接受的支付货币" prop="currency">
|
<el-input type="string" v-model="dataForm.currency"></el-input>
|
</el-form-item>
|
|
<el-form-item label="最低投资额" prop="minContribution">
|
<el-input type="number" v-model="dataForm.minContribution"></el-input>
|
</el-form-item>
|
|
<el-form-item label="最高投资额" prop="maxContribution">
|
<el-input type="number" v-model="dataForm.maxContribution"></el-input>
|
</el-form-item>
|
|
<el-form-item label="项目描述" prop="description">
|
<el-input type="string" v-model="dataForm.description"></el-input>
|
</el-form-item>
|
|
<el-form-item label="官方网站" prop="websiteUrl">
|
<el-input type="string" v-model="dataForm.websiteUrl"></el-input>
|
</el-form-item>
|
|
<el-form-item label="白皮书链接" prop="whitepaperUrl">
|
<el-input type="string" v-model="dataForm.whitepaperUrl"></el-input>
|
</el-form-item>
|
|
<el-form-item label="申购开始时间" prop="startDate">
|
<el-date-picker v-model="dataForm.startDate" type="datetime" placeholder="选择日期" format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd HH:mm:ss">
|
</el-date-picker>
|
</el-form-item>
|
|
<el-form-item label="申购结束时间" prop="endDate">
|
<el-date-picker v-model="dataForm.endDate" type="datetime" placeholder="选择日期" format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd HH:mm:ss">
|
</el-date-picker>
|
</el-form-item>
|
|
<el-form-item label="上市开始时间" prop="marketDate">
|
<el-date-picker v-model="dataForm.marketDate" type="datetime" placeholder="选择日期" format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd HH:mm:ss">
|
</el-date-picker>
|
</el-form-item>
|
|
<el-form-item label="货币图片地址" prop="imgUrl">
|
<!-- <el-input type="string" v-model="dataForm.imgUrl"></el-input> -->
|
<el-upload class="avatar-uploader" :action="$http.adornUrl('/api/uploadFile')"
|
:headers="{ Authorization: $cookie.get('Authorization') }" :show-file-list="false"
|
:on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload"
|
:data="{ moduleName: 'icon', fileName: dataForm.symbolData }">
|
<img v-if="dataForm.imgUrl" :src="dataForm.imgUrl" class="avatar" />
|
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
</el-upload>
|
</el-form-item>
|
|
<el-form-item label="是否开放合约交易" prop="isContractTrading">
|
<el-select v-model="dataForm.isContractTrading" placeholder="请选择">
|
<el-option v-for="i in options" :key="i.value" :label="i.label" :value="i.value"></el-option>
|
</el-select>
|
</el-form-item>
|
|
<el-form-item label="是否预支付" prop="isPayDown">
|
<el-select v-model="dataForm.isPayDown" placeholder="请选择">
|
<el-option v-for="i in options" :key="i.value" :label="i.label" :value="i.value"></el-option>
|
</el-select>
|
</el-form-item>
|
|
<el-form-item label="进度" prop="progressRate">
|
<el-input type="number" v-model="dataForm.progressRate">
|
<el-button slot="append" >%</el-button>
|
</el-input>
|
</el-form-item>
|
</el-form>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="visible = false">取消</el-button>
|
<el-button type="primary" @click="dataFormSubmit()">确定</el-button>
|
</span>
|
</el-dialog>
|
</template>
|
<script>
|
import { Debounce } from "@/utils/debounce";
|
import MulPicUpload from '@/components/mul-pic-upload'
|
import { encrypt } from "@/utils/crypto";
|
export default {
|
data() {
|
return {
|
visible: false,
|
title: "",
|
isShow: "", //标题显示内同
|
dataForm: {
|
name: "", //币种名称
|
symbol: "", //代币符号
|
symbolData: "", //数据源编码
|
pips: 0, //最小浮动
|
pipsAmount: 0, //最小浮动金额
|
adjustmentValue: 0, // 调整值
|
unitAmount: 0, //每张金额
|
unitFee: 0, //每张手续费
|
decimals: 0, //小数位精度
|
multiple: 0, //交易量倍数
|
borrowingRate: 0, //借贷利率
|
issuePrice: 0, //发行价
|
currency: "", //接受的支付货币
|
minContribution: 0, //最低投资额
|
maxContribution: 0, //最高投资额
|
description: "", //项目描述
|
websiteUrl: "", //官方网站
|
whitepaperUrl: "", //白皮书链接
|
startDate: "", //申购开始时间
|
endDate: "", //申购结束时间
|
marketDate: "", //上市开始时间
|
imgUrl: "", //货币图片地址
|
isContractTrading: "", //是否开放合约交易
|
isPayDown: "", //是否预支付
|
progressRate: "", //进度
|
},
|
options: [
|
{
|
value: 0,
|
label: "否",
|
},
|
{
|
value: 1,
|
label: "是",
|
},
|
],
|
dataRule: {
|
name: [{ required: true, message: "请输入", trigger: "blur" }],
|
symbol: [{ required: true, message: "请输入", trigger: "blur" }],
|
symbolData: [{ required: true, message: "请输入", trigger: "blur" }],
|
pips: [{ required: true, message: "请输入", trigger: "blur" }],
|
pipsAmount: [{ required: true, message: "请输入", trigger: "blur" }],
|
adjustmentValue: [
|
{ required: true, message: "请输入", trigger: "blur" },
|
],
|
unitAmount: [{ required: true, message: "请输入", trigger: "blur" }],
|
unitFee: [{ required: true, message: "请输入", trigger: "blur" }],
|
decimals: [{ required: true, message: "请输入", trigger: "blur" }],
|
multiple: [{ required: true, message: "请输入", trigger: "blur" }],
|
borrowingRate: [{ required: true, message: "请输入", trigger: "blur" }],
|
issuePrice: [{ required: true, message: "请输入", trigger: "blur" }],
|
currency: [{ required: true, message: "请输入", trigger: "blur" }],
|
minContribution: [
|
{ required: true, message: "请输入", trigger: "blur" },
|
],
|
maxContribution: [
|
{ required: true, message: "请输入", trigger: "blur" },
|
],
|
description: [{ required: true, message: "请输入", trigger: "blur" }],
|
websiteUrl: [{ required: true, message: "请输入", trigger: "blur" }],
|
whitepaperUrl: [{ required: true, message: "请输入", trigger: "blur" }],
|
startDate: [{ required: true, message: "请输入", trigger: "blur" }],
|
endDate: [{ required: true, message: "请输入", trigger: "blur" }],
|
marketDate: [{ required: true, message: "请输入", trigger: "blur" }],
|
imgUrl: [{ required: true, message: "请输入", trigger: "blur" }],
|
progressRate: [{ required: true, message: "请输入", trigger: "blur" }],
|
isContractTrading: [
|
{ required: true, message: "请选择", trigger: "blur" },
|
],
|
isPayDown: [{ required: true, message: "请选择", trigger: "blur" }],
|
},
|
};
|
},
|
components: {
|
MulPicUpload,
|
},
|
computed: {
|
mainTabs: {
|
get() {
|
return this.$store.state.common.mainTabs;
|
},
|
set(val) {
|
this.$store.commit("common/updateMainTabs", val);
|
},
|
},
|
},
|
methods: {
|
// 初始化
|
init(m, data = {}) {
|
this.title = m;
|
this.visible = true;
|
|
this.clear();
|
if (!!data.id)
|
this.dataForm = {
|
...this.dataForm,
|
...data,
|
};
|
},
|
clear() {
|
this.dataForm = {
|
name: "", //币种名称
|
symbol: "", //代币符号
|
symbolData: "", //数据源编码
|
pips: 0, //最小浮动
|
pipsAmount: 0, //最小浮动金额
|
adjustmentValue: 0, // 调整值
|
unitAmount: 0, //每张金额
|
unitFee: 0, //每张手续费
|
decimals: 0, //小数位精度
|
multiple: 0, //交易量倍数
|
borrowingRate: 0, //借贷利率
|
issuePrice: 0, //发行价
|
currency: "", //接受的支付货币
|
minContribution: 0, //最低投资额
|
maxContribution: 0, //最高投资额
|
description: "", //项目描述
|
websiteUrl: "", //官方网站
|
whitepaperUrl: "", //白皮书链接
|
startDate: "", //申购开始时间
|
endDate: "", //申购结束时间
|
marketDate: "", //上市开始时间
|
imgUrl: "", //货币图片地址
|
isContractTrading: "", //是否开放合约交易
|
isPayDown: "", //是否预支付
|
};
|
},
|
handClose() {
|
this.$nextTick(() => {
|
this.$refs["dataForm"].clearValidate(); // 清除表单验证
|
});
|
},
|
handleAvatarSuccess(res, file) {
|
console.log("handleAvatarSuccess = " + JSON.stringify(res));
|
this.dataForm.imgUrl = URL.createObjectURL(file.raw); //显示地址
|
|
if (res.code == 0) {
|
this.dataForm.imgUrl = res.data.httpUrl; //接口传递
|
console.log(this.dataForm.imgUrl);
|
} else {
|
this.$message.error(res.msg);
|
}
|
},
|
beforeAvatarUpload(file) {
|
const isLt2M = file.size / 1024 / 1024 < 10;
|
if (!isLt2M) {
|
this.$message.error("上传图片大小不能超过 10MB!");
|
}
|
return isLt2M;
|
},
|
// 表单提交
|
dataFormSubmit: Debounce(function () {
|
console.log(this.dataForm.safePassword);
|
this.$refs["dataForm"].validate((valid) => {
|
if (valid) {
|
// console.log(this.dataForm);
|
// return;
|
|
this.$http({
|
url: this.$http.adornUrl("/normal/adminIcoAction!/save"),
|
method: "post",
|
data: this.$http.adornData({
|
...this.dataForm,
|
}),
|
}).then(({ data }) => {
|
console.log(data);
|
if (data.code == 1) {
|
this.$message({
|
message: data.msg,
|
type: "error",
|
});
|
} else {
|
this.$message({
|
message: "操作成功",
|
type: "success",
|
duration: 1000,
|
onClose: () => {
|
this.visible = false;
|
this.$nextTick(() => {
|
this.$emit("refreshDataList");
|
});
|
},
|
});
|
}
|
});
|
}
|
});
|
}),
|
},
|
};
|
</script>
|
<style scoped>
|
.spanselect {
|
width: 600px;
|
}
|
</style>
|