Browse Source

提交

master
bellezhuo 6 years ago
parent
commit
8d210f17d1
  1. 2
      src/assets/css/base.css
  2. 30
      src/assets/css/other.css
  3. 26
      src/assets/data/en.js
  4. 28
      src/assets/data/zh.js
  5. BIN
      src/assets/images/bg_default.png
  6. 29
      src/router.js
  7. 2
      src/store/modules/user.js
  8. 26
      src/views/assets/coincoin_assets.vue
  9. 37
      src/views/assets/coincoin_records.vue
  10. 54
      src/views/assets/currency_assets.vue
  11. 37
      src/views/assets/currency_records.vue
  12. 298
      src/views/assets/exchange.vue
  13. 21
      src/views/coincoin/coincoin_order.vue
  14. 17
      src/views/coincoin/coincoin_trade.vue
  15. 9
      src/views/coincoin/components/trade_form.vue
  16. 24
      src/views/coincoin/components/trade_order_list.vue
  17. 6
      src/views/currency/currency_ads.vue
  18. 24
      src/views/currency/currency_deal.vue
  19. 12
      src/views/currency/currency_merchant.vue
  20. 18
      src/views/currency/currency_order.vue
  21. 2
      src/views/currency/currency_order_details.vue
  22. 77
      src/views/currency/currency_release.vue
  23. 27
      src/views/currency/currency_trade.vue
  24. 57
      src/views/index/components/announce.vue
  25. 51
      src/views/index/index.vue
  26. 14
      src/views/login/login.vue
  27. 100
      src/views/news/details.vue
  28. 95
      src/views/news/list.vue
  29. 11
      src/views/news/news.vue
  30. 16
      src/views/register/register.vue
  31. 3
      src/views/user/account.vue
  32. 93
      src/views/user/shop_info.vue

2
src/assets/css/base.css

@ -327,7 +327,7 @@ table {
.hc-breadcrumb span {
margin-left: 30px;
color: #ccc;
cursor: pointer;
/* cursor: pointer; */
}
.hc-breadcrumb-icon {

30
src/assets/css/other.css

@ -2370,9 +2370,13 @@ otc-index-btn:hover {
border-color:#5f97ff;
}
.buy-payment-tips {
color: #333;
}
.buy-payment-tips a {
color: #5f97ff;
}
/**************************法币交易-购买订单详情**************************/
@ -3275,6 +3279,12 @@ otc-index-btn:hover {
padding-top: 20px;
color: #66718f;
}
.userHome-user .trade-detail-left-nickname .edit-nickname {
font-size: 14px;
color: #5f97ff;
margin-left: 5px;
cursor: pointer;
}
.userHome-bottom-ul {
display: inline-block;
@ -3581,7 +3591,7 @@ otc-index-btn:hover {
/* 个人中心-左边 */
.user-top-left {
width: 30%;
/* width: 30%; */
height: 200px;
position: absolute;
bottom: -70px;
@ -3639,8 +3649,8 @@ otc-index-btn:hover {
.user-top-left .user-head-text {
float: left;
margin-left: 5%;
margin-top: 8%;
margin-left: 30px;
margin-top: 20px;
}
/* 个人中心-右边 */
@ -4263,6 +4273,9 @@ otc-index-btn:hover {
display: block;
width: 100%;
color: #ccc;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.helpcenter-problem ul li a.active {
@ -4299,6 +4312,9 @@ otc-index-btn:hover {
color: #ccc;
margin-top: 15px;
}
.article-header .time span {
margin-left: 20px;
}
.article-info {
margin-top: 40px;
@ -4332,6 +4348,7 @@ otc-index-btn:hover {
min-height: 500px;
overflow: hidden;
background: #fff;
padding-bottom: 30px;
}
.news-list-ul {
@ -5618,6 +5635,9 @@ otc-index-btn:hover {
.hc-breadcrumb {
background: #fff;
}
.hc-breadcrumb .hc-color4 {
cursor: pointer;
}
.hc-bgColor3 {
background: #fff;

26
src/assets/data/en.js

@ -97,7 +97,7 @@ module.exports = {
'请输入新登录密码!': '请输入新登录密码!',
'请确认登录新密码!': '请确认登录新密码!',
'找回密码成功,请重新登录!': '找回密码成功,请重新登录!',
'您还未激活账号!': '您还未激活账号!',
'您还未激活账号!激活账号需要10usdt。': '您还未激活账号!激活账号需要10usdt。',
'稍后再说': '稍后再说',
'去激活': '去激活',
'请先激活账号!': '请先激活账号!',
@ -204,7 +204,6 @@ module.exports = {
'请输入谷歌验证码': '请输入谷歌验证码',
'请输入谷歌验证码!': '请输入谷歌验证码!',
'谷歌验证绑定成功!': '谷歌验证绑定成功!',
'系统设置修改': '系统设置修改',
'计费方式': '计费方式',
'涨跌色': '涨跌色',
@ -274,6 +273,8 @@ module.exports = {
'登录密码修改成功,请重新登录!': '登录密码修改成功,请重新登录!',
'支付密码修改成功!': '支付密码修改成功!',
'商户主页': '商户主页',
'设置昵称': '设置昵称',
'昵称修改成功!': '昵称修改成功!',
'认证商家': 'verified merchant',
'总成单': '总成单',
'完成率': '完成率',
@ -323,12 +324,16 @@ module.exports = {
'设置单价': '设置单价',
'请输入单价': '请输入单价',
'付款方式': '付款方式',
'您还未添加收款方式': '您还未添加收款方式',
'立即发布': 'release immediatly',
'您还不是承兑商,不能发布广告!': '您还不是承兑商,不能发布广告!',
'您还未设置支付密码!': '您还未设置支付密码!',
'请输入金额!': '请输入金额!',
'请输入数量!': '请输入数量!',
'请输入单价!': '请输入单价!',
'请输入最小限额!': '请输入最小限额!',
'请选择支付方式!': '请选择支付方式!',
'最小限额不能小于': '最小限额不能小于',
'请输入支付密码!': '请输入支付密码!',
'请输入短信验证码!': '请输入短信验证码!',
'广告发布成功!': '广告发布成功!',
@ -340,6 +345,7 @@ module.exports = {
'类型': 'Type',
'单价': 'Price',
'交易对象': 'Trade Coin',
'下架': '下架',
'您是否确定下架广告!': '您是否确定下架广告!',
'广告下架成功!': '广告下架成功!',
'广告详情': '广告详情',
@ -516,6 +522,19 @@ module.exports = {
'转账数量不能小于最小转账数量': '转账数量不能小于最小转账数量',
'转账数量不能大于最大转账数量': '转账数量不能大于最大转账数量',
'转账成功!': '转账成功!',
'选择兑换币种': '选择兑换币种',
'选择目标币种': '选择目标币种',
'请先选择兑换币种!': '请先选择兑换币种!',
'兑换数量': '兑换数量',
'请输入兑换数量': '请输入兑换数量',
'兑换比例': '兑换比例',
'1. 最小兑换数量为:': '1. 最小兑换数量为:',
',最大兑换数量为:': ',最大兑换数量为:',
',手续费为:': ',手续费为:',
'请选择目标币种!': '请选择目标币种!',
'请输入兑换数量!': '请输入兑换数量!',
'兑换提交成功!': '兑换提交成功!',
'净资产折合': '净资产折合',
'市场': '市场',
'限价交易': '限价交易',
@ -549,6 +568,7 @@ module.exports = {
'当前委托': '当前委托',
'历史委托': '历史委托',
'方向': '方向',
'委托类型': '委托类型',
'委托价格': '委托价格',
'委托数量': '委托数量',
'成交总额': '成交总额',
@ -561,4 +581,6 @@ module.exports = {
'今日交易总量': '今日交易总量',
'可解封卖出': '可解封卖出',
'解封卖出成功!': '解封卖出成功!',
'最新公告': 'Annoucement Updata',
'来源': 'from',
}

28
src/assets/data/zh.js

@ -97,7 +97,7 @@ module.exports = {
'请输入新登录密码!': '请输入新登录密码!',
'请确认登录新密码!': '请确认登录新密码!',
'找回密码成功,请重新登录!': '找回密码成功,请重新登录!',
'您还未激活账号!': '您还未激活账号!',
'您还未激活账号!激活账号需要10usdt。': '您还未激活账号!激活账号需要10usdt。',
'稍后再说': '稍后再说',
'去激活': '去激活',
'请先激活账号!': '请先激活账号!',
@ -202,7 +202,8 @@ module.exports = {
'密钥': '密钥',
'谷歌验证码': '谷歌验证码',
'请输入谷歌验证码': '请输入谷歌验证码',
'请输入谷歌验证码!': '请输入谷歌验证码!',
'谷歌验证绑定成功!': '谷歌验证绑定成功!',
'系统设置修改': '系统设置修改',
'计费方式': '计费方式',
'涨跌色': '涨跌色',
@ -272,6 +273,8 @@ module.exports = {
'登录密码修改成功,请重新登录!': '登录密码修改成功,请重新登录!',
'支付密码修改成功!': '支付密码修改成功!',
'商户主页': '商户主页',
'设置昵称': '设置昵称',
'昵称修改成功!': '昵称修改成功!',
'认证商家': '认证商家',
'总成单': '总成单',
'完成率': '完成率',
@ -321,12 +324,16 @@ module.exports = {
'设置单价': '设置单价',
'请输入单价': '请输入单价',
'付款方式': '付款方式',
'您还未添加收款方式': '您还未添加收款方式',
'立即发布': '立即发布',
'您还不是承兑商,不能发布广告!': '您还不是承兑商,不能发布广告!',
'您还未设置支付密码!': '您还未设置支付密码!',
'请输入金额!': '请输入金额!',
'请输入数量!': '请输入数量!',
'请输入单价!': '请输入单价!',
'请输入最小限额!': '请输入最小限额!',
'请选择支付方式!': '请选择支付方式!',
'最小限额不能小于': '最小限额不能小于',
'请输入支付密码!': '请输入支付密码!',
'请输入短信验证码!': '请输入短信验证码!',
'广告发布成功!': '广告发布成功!',
@ -338,6 +345,7 @@ module.exports = {
'类型': '类型',
'单价': '单价',
'交易对象': '交易对象',
'下架': '下架',
'您是否确定下架广告!': '您是否确定下架广告!',
'广告下架成功!': '广告下架成功!',
'广告详情': '广告详情',
@ -514,6 +522,19 @@ module.exports = {
'转账数量不能小于最小转账数量': '转账数量不能小于最小转账数量',
'转账数量不能大于最大转账数量': '转账数量不能大于最大转账数量',
'转账成功!': '转账成功!',
'选择兑换币种': '选择兑换币种',
'选择目标币种': '选择目标币种',
'请先选择兑换币种!': '请先选择兑换币种!',
'兑换数量': '兑换数量',
'请输入兑换数量': '请输入兑换数量',
'兑换比例': '兑换比例',
'1. 最小兑换数量为:': '1. 最小兑换数量为:',
',最大兑换数量为:': ',最大兑换数量为:',
',手续费为:': ',手续费为:',
'请选择目标币种!': '请选择目标币种!',
'请输入兑换数量!': '请输入兑换数量!',
'兑换提交成功!': '兑换提交成功!',
'净资产折合': '净资产折合',
'市场': '市场',
'限价交易': '限价交易',
@ -547,6 +568,7 @@ module.exports = {
'当前委托': '当前委托',
'历史委托': '历史委托',
'方向': '方向',
'委托类型': '委托类型',
'委托价格': '委托价格',
'委托数量': '委托数量',
'成交总额': '成交总额',
@ -559,4 +581,6 @@ module.exports = {
'今日交易总量': '今日交易总量',
'可解封卖出': '可解封卖出',
'解封卖出成功!': '解封卖出成功!',
'最新公告': '最新公告',
'来源': '来源',
}

BIN
src/assets/images/bg_default.png

After

Width: 540  |  Height: 340  |  Size: 8.1 KiB

29
src/router.js

@ -142,10 +142,29 @@ export default new Router({
{
path: 'news',
name: 'news',
component: () => import('./views/news/list'),
component: () => import('./views/news/news'),
meta: {
title: '公告',
},
redirect: 'news/list',
children: [
{
path: 'list',
name: 'newsList',
component: () => import('./views/news/list'),
meta: {
title: '公告列表',
},
},
{
path: 'details/:id',
name: 'newsDetails',
component: () => import('./views/news/details'),
meta: {
title: '公告详情',
},
}
]
},
{
path: 'assets',
@ -212,6 +231,14 @@ export default new Router({
title: '转账',
},
},
{
path: 'exchange/:type/:id',
name: 'assetsExchange',
component: () => import('./views/assets/exchange'),
meta: {
title: '兑换',
},
},
{
path: 'currency',
name: 'currencyAssets',

2
src/store/modules/user.js

@ -33,7 +33,7 @@ export default {
state.userIsActive = data.check ? false : true;
if(data.check) {
MessageBox.confirm(i18n.t('您还未激活账号!'), i18n.t('提示'), {
MessageBox.confirm(i18n.t('您还未激活账号!激活账号需要10usdt。'), i18n.t('提示'), {
cancelButtonText: i18n.t('稍后再说'),
confirmButtonText: i18n.t('去激活'),
type: 'warning'

26
src/views/assets/coincoin_assets.vue

@ -104,7 +104,7 @@
<div class="cell">
<ul class="operation-ul nav-dropdown">
<li>
<span class="hc-color4 el-dropdown-selfdefine">
<span class="hc-color4 el-dropdown-selfdefine" @click="gotoTrade(item.coinEngName)">
<img src="../../assets/images/icon-deal-with.png">
<span>{{$t('去交易')}}</span>
</span>
@ -140,7 +140,7 @@
</span>
</li>
<li class="chdui">
<span class="hc-color1 el-dropdown-selfdefine">
<span class="hc-color1 el-dropdown-selfdefine" @click="$router.push('/assets/exchange/1/' + item.coinEngName)">
<img src="../../assets/images/dui.png">
<span>{{$t('兑换')}}</span>
</span>
@ -151,6 +151,7 @@
</tr>
</tbody>
<!-- 搜索结果 -->
<tbody v-else>
<tr v-for="(item, index) of searchList" :key="index">
<td>
@ -175,7 +176,7 @@
<div class="cell">
<ul class="operation-ul nav-dropdown">
<li>
<span class="hc-color4 el-dropdown-selfdefine">
<span class="hc-color4 el-dropdown-selfdefine" @click="gotoTrade(item.coinEngName)">
<img src="../../assets/images/icon-deal-with.png">
<span>{{$t('去交易')}}</span>
</span>
@ -187,31 +188,31 @@
</span>
</li>
<li>
<span class="hc-color2 el-dropdown-selfdefine">
<span class="hc-color2 el-dropdown-selfdefine" @click="$router.push('/assets/transfer/1/' + item.coinEngName)">
<img src="../../assets/images/trade/icon-transfer.png">
<span>{{$t('划转')}}</span>
</span>
</li>
<li>
<span class="hc-color2 el-dropdown-selfdefine">
<span class="hc-color2 el-dropdown-selfdefine" @click="$router.push('/assets/carryout/' + item.coinEngName)">
<img src="../../assets/images/icon-coin.png">
<span>{{$t('转账')}}</span>
</span>
</li>
<li>
<span class="hc-color2 el-dropdown-selfdefine">
<span class="hc-color2 el-dropdown-selfdefine" @click="$router.push('/assets/charge/' + item.coinEngName)">
<img src="../../assets/images/icon-coin.png">
<span>{{$t('充币')}}</span>
</span>
</li>
<li>
<span class="hc-color1 el-dropdown-selfdefine">
<span class="hc-color1 el-dropdown-selfdefine" @click="$router.push('/assets/withdraw/' + item.coinEngName)">
<img src="../../assets/images/icon-money.png">
<span>{{$t('提币')}}</span>
</span>
</li>
<li class="chdui">
<span class="hc-color1 el-dropdown-selfdefine">
<span class="hc-color1 el-dropdown-selfdefine" @click="$router.push('/assets/exchange/1/' + item.coinEngName)">
<img src="../../assets/images/dui.png">
<span>{{$t('兑换')}}</span>
</span>
@ -304,6 +305,15 @@
this.$message.warning(this.$t('请换一个关键字进行搜索!'));
}
},
gotoTrade(id) {
this.$router.push({
path: '/coincoin/trade',
query: {
id: id,
}
});
}
},
created() {
this.getAssetsList();

37
src/views/assets/coincoin_records.vue

@ -39,11 +39,6 @@
</tr>
</thead>
<tbody>
<tr v-if="isContent">
<td colspan="6">
<no-content :isText="$t('暂无数据')" :isContent="isContent"></no-content>
</td>
</tr>
<tr v-for="item of recordsList" :key="item.id">
<td>
<div class="cell">{{item.createDatetime | dateFormat('YYYY-MM-DD HH:mm:ss')}}</div>
@ -65,7 +60,10 @@
</tbody>
</table>
<el-pagination class="list-pages" background layout="prev, pager, next" v-show="!isContent" :page-count="pageTotal" :current-page="currentPage" :page-size="5" :pager-count="5" @next-click="pagesChange" @prev-click="pagesChange" @current-change="pagesChange"></el-pagination>
<no-content :isText="$t('暂无数据')" :isContent="isContent"></no-content>
<no-content :isText="$t('请换一个关键字进行搜索!')" :isContent="noResult"></no-content>
<el-pagination class="list-pages" background layout="prev, pager, next" v-show="!isContent && !noResult" :page-count="pageTotal" :current-page="currentPage" :page-size="5" :pager-count="5" @next-click="pagesChange" @prev-click="pagesChange" @current-change="pagesChange"></el-pagination>
</div>
</div>
</div>
@ -85,13 +83,15 @@
coinName: '',
searchKeywords: '',
recordsList: [],
isContent: false,
noResult: false,
pageTotal: 0, //
currentPage: 1, //
}
},
methods: {
getRecords(pages, count) { //
getRecords(pages) { //
let params = {
data: {
assetsType: 'A_I_T_NORMAL',
@ -101,37 +101,46 @@
start: pages,
limit: 10
}
this.currentPage = pages;
this.postAxios('/api/user/assets/flow/page', params)
.then(data => {
this.pageTotal = data.data.pages;
if (count == 0) {
this.recordsList = [];
this.currentPage = 1;
}
if(!this.coinName) { //
if (data.data.total == 0) {
this.isContent = true;
} else {
this.isContent = false;
}
this.noResult = false;
} else { //
if (data.data.total == 0) {
this.noResult = true;
} else {
this.noResult = false;
}
this.isContent = false;
}
this.recordsList = [];
data.data.records.forEach(item => {
this.recordsList.push(item);
})
})
},
pagesChange(pages) {
this.getRecords(pages, 0);
this.getRecords(pages);
this.currentPage = pages;
},
search() { //
this.coinName = this.searchKeywords.toUpperCase();
this.getRecords(1, 0);
this.getRecords(1);
},
},
created() {
this.getRecords(1, 0);
this.getRecords(1);
}
}
</script>

54
src/views/assets/currency_assets.vue

@ -79,10 +79,10 @@
<td class="is-right">
<div class="cell">
<ul class="operation-ul nav-dropdown">
<li class="chdui">
<span class="hc-color1 el-dropdown-selfdefine">
<img src="../../assets/images/dui.png">
<span>{{$t('兑换')}}</span>
<li>
<span class="hc-color4 el-dropdown-selfdefine" @click="gotoTrade(item.coinEngName)">
<img src="../../assets/images/icon-deal-with.png">
<span>{{$t('去交易')}}</span>
</span>
</li>
<li>
@ -91,10 +91,10 @@
<span>{{$t('划转')}}</span>
</span>
</li>
<li>
<span class="hc-color4 el-dropdown-selfdefine">
<img src="../../assets/images/icon-deal-with.png">
<span>{{$t('去交易')}}</span>
<li class="chdui">
<span class="hc-color1 el-dropdown-selfdefine" @click="$router.push('/assets/exchange/2/' + item.coinEngName)">
<img src="../../assets/images/dui.png">
<span>{{$t('兑换')}}</span>
</span>
</li>
</ul>
@ -127,43 +127,19 @@
<div class="cell">
<ul class="operation-ul nav-dropdown">
<li>
<span class="hc-color4 el-dropdown-selfdefine">
<span class="hc-color4 el-dropdown-selfdefine" @click="gotoTrade(item.coinEngName)">
<img src="../../assets/images/icon-deal-with.png">
<span>{{$t('去交易')}}</span>
</span>
</li>
<li>
<span class="hc-color2 el-dropdown-selfdefine">
<img src="../../assets/images/zru.png">
<span>{{$t('转入')}}</span>
</span>
</li>
<li>
<span class="hc-color2 el-dropdown-selfdefine">
<span class="hc-color2 el-dropdown-selfdefine" @click="$router.push('/assets/transfer/2/' + item.coinEngName)">
<img src="../../assets/images/trade/icon-transfer.png">
<span>{{$t('划转')}}</span>
</span>
</li>
<li>
<span class="hc-color2 el-dropdown-selfdefine">
<img src="../../assets/images/icon-coin.png">
<span>{{$t('转账')}}</span>
</span>
</li>
<li>
<span class="hc-color2 el-dropdown-selfdefine">
<img src="../../assets/images/icon-coin.png">
<span>{{$t('充币')}}</span>
</span>
</li>
<li>
<span class="hc-color1 el-dropdown-selfdefine">
<img src="../../assets/images/icon-money.png">
<span>{{$t('提币')}}</span>
</span>
</li>
<li class="chdui">
<span class="hc-color1 el-dropdown-selfdefine">
<span class="hc-color1 el-dropdown-selfdefine" @click="$router.push('/assets/exchange/2/' + item.coinEngName)">
<img src="../../assets/images/dui.png">
<span>{{$t('兑换')}}</span>
</span>
@ -256,6 +232,14 @@
this.$message.warning(this.$t('请换一个关键字进行搜索!'));
}
},
gotoTrade(id) {
this.$router.push({
path: '/currency/trade',
query: {
id: id,
}
});
}
},
created() {
this.getAssetsList();

37
src/views/assets/currency_records.vue

@ -39,11 +39,6 @@
</tr>
</thead>
<tbody>
<tr v-if="isContent">
<td colspan="6">
<no-content :isText="$t('暂无数据')" :isContent="isContent"></no-content>
</td>
</tr>
<tr v-for="item of recordsList" :key="item.id">
<td>
<div class="cell">{{item.createDatetime | dateFormat('YYYY-MM-DD HH:mm:ss')}}</div>
@ -65,7 +60,10 @@
</tbody>
</table>
<el-pagination class="list-pages" background layout="prev, pager, next" v-show="!isContent" :page-count="pageTotal" :current-page="currentPage" :page-size="5" :pager-count="5" @next-click="pagesChange" @prev-click="pagesChange" @current-change="pagesChange"></el-pagination>
<no-content :isText="$t('暂无数据')" :isContent="isContent"></no-content>
<no-content :isText="$t('请换一个关键字进行搜索!')" :isContent="noResult"></no-content>
<el-pagination class="list-pages" background layout="prev, pager, next" v-show="!isContent && !noResult" :page-count="pageTotal" :current-page="currentPage" :page-size="5" :pager-count="5" @next-click="pagesChange" @prev-click="pagesChange" @current-change="pagesChange"></el-pagination>
</div>
</div>
</div>
@ -86,12 +84,14 @@
searchKeywords: '',
recordsList: [],
isContent: false,
noResult: false,
pageTotal: 0, //
currentPage: 1, //
}
},
methods: {
getRecords(pages, count) { //
getRecords(pages) { //
let params = {
data: {
assetsType: 'A_I_T_NORMAL',
@ -101,37 +101,46 @@
start: pages,
limit: 10
}
this.currentPage = pages;
this.postAxios('/api/user/assets/flow/page', params)
.then(data => {
this.pageTotal = data.data.pages;
if (count == 0) {
this.recordsList = [];
this.currentPage = 1;
}
if(!this.coinName) { //
if (data.data.total == 0) {
this.isContent = true;
} else {
this.isContent = false;
}
this.noResult = false;
} else { //
if (data.data.total == 0) {
this.noResult = true;
} else {
this.noResult = false;
}
this.isContent = false;
}
this.recordsList = [];
data.data.records.forEach(item => {
this.recordsList.push(item);
})
})
},
pagesChange(pages) {
this.getRecords(pages, 0);
this.getRecords(pages);
this.currentPage = pages;
},
search() { //
this.coinName = this.searchKeywords.toUpperCase();
this.getRecords(1, 0);
this.getRecords(1);
},
},
created() {
this.getRecords(1, 0);
this.getRecords(1);
}
}
</script>

298
src/views/assets/exchange.vue

@ -0,0 +1,298 @@
<template>
<div class="global-width">
<div class="container">
<!--当前位置-->
<div class="hc-breadcrumb">
<span class="hc-color4">{{$t('币币账户')}}</span>
<i class="hc-breadcrumb-icon"></i>
<span class="margin0">{{$t('兑换')}}</span>
</div>
<div class="hc-breadcrumb second-position">
<span class="hc-color1">
<img src="../../assets/images/icon-money.png" />{{exchangeCoin}} {{$t('兑换')}}
</span>
</div>
<div class="recharge-warp">
<div class="withdrawmoney-box">
<div class="form-box">
<div class="form-group">
<label class="form-label">{{$t('选择兑换币种')}}</label>
<div class="form-control">
<div class="hc-form-warp" @click="showCoin1 = !showCoin1" v-if="exchangeCoin">
<img class="hc-select-img" :src="'data:img/jpg;base64,' + exchangeCoinImg" v-if="exchangeCoinImg">
<span class="hc-select-span1">{{exchangeCoin}}</span>
<span class="hc-form-down-icon">
<i class="fa-caret-down"></i>
</span>
</div>
<div class="hc-form-warp" @click="showCoin1 = !showCoin1" v-else>
<span class="hc-select-span1">{{$t('选择兑换币种')}}</span>
<span class="hc-form-down-icon">
<i class="fa-caret-down"></i>
</span>
</div>
<!-- 选择币种弹框 -->
<div class="choose-currencies" v-if="showCoin1">
<div class="hc-select-options" v-for="item of allCoinList" :key="item.id" @click="chooseCoin(item)">
<img class="hc-select-img" :src="'data:img/jpg;base64,' + item.image" v-if="item.image">
<span class="hc-select-span1">{{item.id}}</span>
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="form-label">{{$t('选择目标币种')}}</label>
<div class="form-control">
<div class="hc-form-warp" @click="showCoin2 = !showCoin2">
<img class="hc-select-img" :src="'data:img/jpg;base64,' + targetCoinImg" v-if="targetCoinImg">
<span class="hc-select-span1">{{targetCoin ? targetCoin : $t('选择目标币种')}}</span>
<span class="hc-form-down-icon">
<i class="fa-caret-down"></i>
</span>
</div>
<!-- 选择币种弹框 -->
<div class="choose-currencies" v-if="showCoin2">
<div class="hc-select-options" v-for="item of targetCoinList" :key="item.id" @click="chooseTargeCoin(item)">
<img class="hc-select-img" :src="'data:img/jpg;base64,' + item.image" v-if="item.image">
<span class="hc-select-span1">{{item.id}}</span>
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="form-label">
{{$t('兑换数量')}}
<span class="hc-color3">( {{$t('可用')}}:{{account}} )</span>
</label>
<div class="form-control">
<el-input class="text-input" :placeholder="$t('请输入兑换数量')" v-model="amount" type="text" clearable autocomplete="off" @keyup.enter.native="submit">
</el-input>
</div>
</div>
<div class="form-group">
<div class="address-form-div2">
<label class="form-label">{{$t('兑换比例')}}</label>
<div class="form-control">
<input type="text" class="text-input" :value="proportion" readonly>
</div>
</div>
<div class="address-form-div3">
<label class="form-label">{{$t('支付密码')}}</label>
<div class="form-control">
<el-input class="text-input" :placeholder="$t('请输入支付密码')" v-model="password" type="password" clearable autocomplete="off" @keyup.enter.native="submit">
</el-input>
</div>
</div>
</div>
<div class="form-group">
<el-button class="form-submit-btn" type="primary" :loading="true" v-if="loading">{{$t('提交中...')}}</el-button>
<el-button class="form-submit-btn" type="primary" @click="submit" v-else>{{$t('确认划转')}}</el-button>
</div>
</div>
</div>
<div class="address-line"></div>
<div class="recharge-reminder">
<div class="recharge-r-top">
<i class="fa-exclamation"></i>
<span>{{$t('温馨提示')}}</span>
</div>
<p>{{$t('1. 最小兑换数量为:')}}{{minAmount}}{{exchangeCoin}}{{$t(',最大兑换数量为:')}}{{maxAmount}}{{exchangeCoin}}{{$t(',手续费为:')}}{{fee}}</p>
<p>{{$t('2. 请务必确认电脑及浏览器安全,防止信息被篡改或泄露。')}}</p>
</div>
</div>
</div>
</div>
</template>
<script>
import { mapState } from 'vuex'
export default {
name: 'exchange',
data() {
return {
assetsCaseCode: 'COIN_TO_COIN', // 1 2
exchangeCoin: '', //
targetCoin: '', //
showCoin1: false, //
showCoin2: false, //
account: 0, //
proportion: 0, //
maxAmount: 0, //
minAmount: 0, //
fee: 0, //
amount: '', //
password: '', //
loading: false,
}
},
computed: {
...mapState('trend', ['allCoinList']),
exchangeCoinImg() { //
let img;
this.allCoinList.forEach(item => {
if (item.id == this.exchangeCoin) {
img = item.image;
}
})
return img;
},
targetCoinImg() { //
let img;
this.allCoinList.forEach(item => {
if (item.id == this.targetCoin) {
img = item.image;
}
})
return img;
},
targetCoinList() {
let list = [];
this.allCoinList.forEach(item => {
if(item.id != this.exchangeCoin) {
list.push(item)
}
});
return list;
},
// summary() { //
// let value = 0;
// let remainder = this.common.accAdd(1, this.fee);
// if(this.amount > 0) {
// if(this.common.accMul(this.fee, this.amount) < this.minFee) { //
// value = this.common.accAdd(this.amount, this.minFee).toFixed(8);
// } else {
// value = this.common.accMul(this.amount, remainder).toFixed(8);
// }
// }
// return value;
// }
},
methods: {
getBalance() { //
this.getAxios('/api/user/assets/list?type=' + this.assetsCaseCode)
.then(data => {
let list = data.data;
list.forEach(item => {
if(item.coinId == this.exchangeCoin) {
this.account = item.normalAmount;
}
})
})
},
getExchangeInfo() { //
let params = {
caseCode: this.assetsCaseCode,
inCoinId: this.exchangeCoin,
outCoinId: this.targetCoin
}
this.postAxios('/api/exchange/coin/info', params)
.then(data => {
this.proportion = data.data.proportion;
this.maxAmount = data.data.maxAmount;
this.minAmount = data.data.minAmount;
this.fee = data.data.exchangeFee;
})
},
chooseCoin(item) { //
this.exchangeCoin = item.id;
this.showCoin1 = false;
this.getBalance();
if(this.targetCoin) {
this.getExchangeInfo();
}
},
chooseTargeCoin(item) { //
if(!this.exchangeCoin) {
this.$message.error(this.$t('请先选择兑换币种!'));
return;
}
this.targetCoin = item.id;
this.showCoin2 = false;
this.getExchangeInfo();
},
submit() {
if(this.loading) {
return;
}
if(!this.targetCoin) {
this.$message.error(this.$t('请选择目标币种!'));
return;
}
if(!this.amount) {
this.$message.error(this.$t('请输入兑换数量!'));
return;
}
if(!this.password) {
this.$message.error(this.$t('请输入支付密码!'));
return;
}
this.loading = true;
let params = {
caseCode: this.assetsCaseCode,
inCoinId: this.exchangeCoin,
outCoinId: this.targetCoin,
exchangeAmount: this.amount,
payPassword: this.password
}
this.postAxios('/api/exchange/coin/exchangeCoin', params)
.then(() => {
this.$message.success(this.$t('兑换提交成功!'));
this.loading = false;
this.getBalance();
this.clearData();
})
.catch(() => {
this.loading = false;
})
},
clearData() {
this.amount = '';
this.password = '';
}
},
created() {
this.exchangeCoin = this.$route.params.id;
this.assetsCaseCode = this.$route.params.type == 1 ? 'COIN_TO_COIN' : 'F_COIN';
this.getBalance();
}
}
</script>
<style scoped>
.address-form-div4 {
width: 32px;
display: inline-block;
margin: 0 9px;
}
</style>

21
src/views/coincoin/coincoin_order.vue

@ -29,7 +29,7 @@
<thead>
<tr>
<th>
<div class="cell">{{$t('时间')}}</div>
<div class="cell">{{$t('编号')}}/{{$t('时间')}}</div>
</th>
<th>
<div class="cell">{{$t('交易对')}}</div>
@ -37,9 +37,15 @@
<th>
<div class="cell">{{$t('方向')}}</div>
</th>
<th>
<div class="cell">{{$t('委托类型')}}</div>
</th>
<th>
<div class="cell">{{$t('委托价格')}}(USDT)</div>
</th>
<th>
<div class="cell">{{$t('触发价')}}(USDT)</div>
</th>
<th>
<div class="cell">{{$t('委托数量')}}</div>
</th>
@ -64,7 +70,10 @@
<tbody>
<tr v-for="item of orderList" :key="item.id">
<td>
<div class="cell">{{item.createDateTime | dateFormat('YYYY-MM-DD HH:mm:ss')}}</div>
<div class="cell">
<p>{{item.id}}</p>
<p class="order-color">{{item.createDateTime | dateFormat('MM-DD HH:mm')}}</p>
</div>
</td>
<td>
<div class="cell" v-if="item.dealType == 'E_I_D_T_BUY'">{{item.intCoinId}}/{{item.outCoinId}}</div>
@ -74,9 +83,17 @@
<div class="cell green-text" v-if="item.dealType == 'E_I_D_T_BUY'">{{$t('买入')}}</div>
<div class="cell red-text" v-if="item.dealType == 'E_I_D_T_SELL'">{{$t('卖出')}}</div>
</td>
<td>
<div class="cell">{{item.priceTypeStr}}</div>
</td>
<td>
<div class="cell">{{item.price}}</div>
</td>
<td>
<div class="cell">
{{item.triggerPrice || '——'}}
</div>
</td>
<td>
<div class="cell">{{item.amount}}</div>
</td>

17
src/views/coincoin/coincoin_trade.vue

@ -87,7 +87,22 @@
this.getAxios('/api/coin/case/all')
.then(data => {
let list = data.data;
let coin = list[0].childen[0].prices[0];
let coin;
if(this.$route.query.id) { //
list.forEach(item => {
item.childen.forEach(item2 => {
item2.prices.forEach(item3 => {
if(item3.dealCoin == this.$route.query.id) {
coin = item3;
}
})
})
});
} else {
coin = list[0].childen[0].prices[0];
}
this.$store.dispatch('trend/getNewPair', coin);
this.getBalance();
})

9
src/views/coincoin/components/trade_form.vue

@ -166,6 +166,7 @@
}
},
computed: {
...mapState('user', ['userInfoData']),
...mapState('trend', ['allPairList', 'allTrendList', 'myCollectList', 'currentPair']),
maxBuyVolumn() { //
@ -267,6 +268,10 @@
if (this.loading1) {
return;
}
if(!this.userInfoData.initPayPwd) {
this.$message.error(this.$t('您还未设置支付密码!'));
return;
}
if (!this.buyPrice) {
this.$message.error(this.$t('请输入买入价格!'));
return;
@ -288,6 +293,10 @@
if (this.loading2) {
return;
}
if(!this.userInfoData.initPayPwd) {
this.$message.error(this.$t('您还未设置支付密码!'));
return;
}
if (!this.sellPrice) {
this.$message.error(this.$t('请输入买入价格!'));
return;

24
src/views/coincoin/components/trade_order_list.vue

@ -14,7 +14,7 @@
<thead>
<tr>
<th>
<div class="cell">{{$t('时间')}}</div>
<div class="cell">{{$t('编号')}}/{{$t('时间')}}</div>
</th>
<th>
<div class="cell">{{$t('交易对')}}</div>
@ -22,9 +22,15 @@
<th>
<div class="cell">{{$t('方向')}}</div>
</th>
<th>
<div class="cell">{{$t('委托类型')}}</div>
</th>
<th>
<div class="cell">{{$t('委托价格')}}(USDT)</div>
</th>
<th>
<div class="cell">{{$t('触发价')}}(USDT)</div>
</th>
<th>
<div class="cell">{{$t('委托数量')}}</div>
</th>
@ -49,7 +55,10 @@
<tbody>
<tr v-for="item of orderList" :key="item.id">
<td>
<div class="cell">{{item.createDateTime | dateFormat('YYYY-MM-DD HH:mm:ss')}}</div>
<div class="cell">
<p>{{item.id}}</p>
<p class="order-color">{{item.createDateTime | dateFormat('MM-DD HH:mm')}}</p>
</div>
</td>
<td>
<div class="cell" v-if="item.dealType == 'E_I_D_T_BUY'">{{item.intCoinId}}/{{item.outCoinId}}</div>
@ -59,9 +68,17 @@
<div class="cell green-text" v-if="item.dealType == 'E_I_D_T_BUY'">{{$t('买入')}}</div>
<div class="cell red-text" v-if="item.dealType == 'E_I_D_T_SELL'">{{$t('卖出')}}</div>
</td>
<td>
<div class="cell">{{item.priceTypeStr}}</div>
</td>
<td>
<div class="cell">{{item.price}}</div>
</td>
<td>
<div class="cell">
{{item.triggerPrice || '——'}}
</div>
</td>
<td>
<div class="cell">{{item.amount}}</div>
</td>
@ -137,11 +154,10 @@
page: pages,
}
let url = this.titleIndex == 1 ? '/api/entrust/info/page' : '/api/entrust/info/page/history';
this.orderList = [];
this.postAxios(url, params)
.then(data => {
this.pageTotal = data.data.pages;
this.orderList = [];
if (data.data.total == 0) {
this.isContent = true;

6
src/views/currency/currency_ads.vue

@ -70,11 +70,11 @@
</div>
</td> -->
<td>
<div class="cell">{{item.statusStr == '正常' ? '交易中': item.statusStr}}</div>
<div class="cell">{{item.status == 'M_O_S_SELL' ? $t('交易中'): item.statusStr}}</div>
</td>
<td>
<div class="cell" v-if="item.statusStr != '已下架'">
<button class="operatione-btn" @click="cancleAds(item.marketOrderId)">下架</button>
<div class="cell" v-if="item.status != 'M_O_S_SOLD_OUT'">
<button class="operatione-btn" @click="cancleAds(item.marketOrderId)">{{$t('下架')}}</button>
</div>
<div class="cell" v-else>--</div>
</td>

24
src/views/currency/currency_deal.vue

@ -102,6 +102,7 @@
<div class="form-box">
<div class="form-group">
<!-- 第一个框 -->
<div class="address-form-div2" v-if="dealWay == 0">
<label class="form-label">
{{dealInfo.dealType == 'E_I_D_T_BUY' ? $t('按金额出售') : $t('按金额购买')}}
@ -114,7 +115,7 @@
<div class="form-control deal-form-control">
<el-input class="text-input" v-model="dealQuantity" type="text" :placeholder="$t('请输入金额')" clearable autocomplete="off" @keyup.enter.native="submit">
</el-input>
<div class="form-control-company">{{dealInfo.dealType == 'E_I_D_T_BUY' ? dealInfo.intCoinId : dealInfo.outCoinId}}</div>
<div class="form-control-company">{{dealInfo.dealType == 'E_I_D_T_BUY' ? dealInfo.outCoinId : dealInfo.intCoinId}}</div>
</div>
</div>
@ -133,17 +134,19 @@
<div class="form-control-company">{{dealInfo.dealType == 'E_I_D_T_BUY' ? dealInfo.intCoinId : dealInfo.outCoinId}}</div>
</div>
</div>
<!-- 第一个框结束 -->
<div class="address-form-div3">
<img src="../../assets/images/trade/icon-equal.png" @click="changeWay">
</div>
<!-- 第二个框 -->
<div class="address-form-div2" v-if="dealWay == 0">
<label class="form-label">{{'付出数量'}}</label>
<div class="form-control deal-form-control">
<el-input class="text-input" v-model="dealTotalQuantity" type="text" readonly>
</el-input>
<div class="form-control-company">CNY</div>
<div class="form-control-company">{{dealInfo.dealType == 'E_I_D_T_BUY' ? dealInfo.intCoinId : dealInfo.outCoinId}}</div>
</div>
</div>
@ -152,9 +155,10 @@
<div class="form-control deal-form-control">
<el-input class="text-input" v-model="dealTotalQuantity" type="text" readonly>
</el-input>
<div class="form-control-company">CNY</div>
<div class="form-control-company">{{dealInfo.dealType == 'E_I_D_T_BUY' ? dealInfo.outCoinId : dealInfo.intCoinId}}</div>
</div>
</div>
<!-- 第二个框结束 -->
<div class="address-form-div4" style="float: right;">
<el-button class="form-submit-btn" type="primary" :loading="true" v-if="loading">{{$t('提交中...')}}</el-button>
@ -203,6 +207,7 @@
</template>
<script>
import { mapState } from 'vuex'
let Countdown;
export default {
name: 'currencyDeal',
@ -225,6 +230,7 @@
}
},
computed: {
...mapState('user', ['userInfoData']),
dealTotalQuantity() {
let num = 0;
if(!this.dealWay && this.dealQuantity && this.dealInfo.amount) {
@ -259,16 +265,28 @@
dealAllQuantity() { //
console.log(this.dealWay)
if(this.dealWay == 1) {
if(this.dealInfo.remainTotalPrice > this.dealInfo.maxAmount) { //
this.dealQuantity = this.common.accDiv(this.dealInfo.maxAmount, this.dealInfo.amount);
} else {
this.dealQuantity = this.dealInfo.surplusAmount;
}
} else if(this.dealWay == 0) {
if(this.dealInfo.remainTotalPrice > this.dealInfo.maxAmount) { //
this.dealQuantity = this.dealInfo.maxAmount;
} else {
this.dealQuantity = this.dealInfo.remainTotalPrice;
}
}
},
openPassword() {
if(this.loading) {
return;
}
if(!this.userInfoData.initPayPwd) {
this.$message.error(this.$t('您还未设置支付密码!'));
return;
}
if(!this.dealQuantity && this.dealWay) {
this.$message.error(this.$t('请输入数量!'));
return;

12
src/views/currency/currency_merchant.vue

@ -17,7 +17,7 @@
</div>
<div class="trade-detail-left-top">
<div class="trade-detail-left-nickname">{{merchantInfo.username || '暂无昵称'}}</div>
<div class="trade-detail-left-nickname">{{merchantInfo.username || $t('暂无昵称')}}</div>
<div class="merchants-tag">
<img src="../../assets/images/trade/icon-authentication.png">
<span class="hc-color">{{$t('认证商家')}}</span>
@ -118,7 +118,7 @@
<td class="is-left">
<div class="trade-business">
<div class="avatar-wrapper">
<img class="trade-center-table-img1" :src="item.avatar" v-if="item.avatar">
<img class="trade-center-table-img1" :src="merchantInfo.avatar" v-if="merchantInfo.avatar">
<img class="trade-center-table-img1" src="../../assets/images/user-head-img.png" v-else>
</div>
@ -171,7 +171,8 @@
<td class="is-left">
<div class="trade-business">
<div class="avatar-wrapper">
<img class="trade-center-table-img1" src="../../assets/images/user-head-img.png">
<img class="trade-center-table-img1" :src="merchantInfo.avatar" v-if="merchantInfo.avatar">
<img class="trade-center-table-img1" src="../../assets/images/user-head-img.png" v-else>
</div>
<div class="nick-name">
@ -248,6 +249,11 @@
this.sellAdsList = data.data.buyList;
})
},
gotoDeal(item) { //
this.$router.push('/currency/deal/'+item.marketOrderId);
this.$set(item, 'userId', this.merchantId);
this.common.setItem('data', item)
}
},
created() {
this.merchantId = this.$route.params.id;

18
src/views/currency/currency_order.vue

@ -31,30 +31,30 @@
<thead>
<tr>
<th>
<div class="cell">编号/时间</div>
<div class="cell">{{$t('编号')}}/{{$t('时间')}}</div>
</th>
<th>
<div class="cell">类型</div>
<div class="cell">{{$t('类型')}}</div>
</th>
<th>
<div class="cell">数量</div>
<div class="cell">{{$t('数量')}}</div>
</th>
<th>
<div class="cell">金额</div>
<div class="cell">{{$t('金额')}}</div>
</th>
<!-- <th>
<div class="cell">手续费</div>
</th> -->
<th>
<div class="cell">交易对象</div>
<div class="cell">{{$t('交易对象')}}</div>
</th>
<!-- <th>
<div class="cell">交易方式</div>
</th> -->
<th>
<div class="cell">状态</div>
<div class="cell">{{$t('状态')}}</div>
</th>
<th>操作</th>
<th>{{$t('操作')}}</th>
</tr>
</thead>
@ -100,7 +100,9 @@
<td>
<div class="cell" v-if="item.status == 'M_O_F_S_CANCEL'">已取消</div>
<div class="cell" v-else-if="item.appeal">申诉中</div>
<div class="cell" :class="{'red-text': item.status == 'M_O_F_S_WAIT_PAY'}" v-else>{{item.statusStr}}</div>
<div class="cell" :class="{'red-text': item.status == 'M_O_F_S_WAIT_PAY'}" v-else-if="item.dealType=='E_I_D_T_BUY'">{{item.statusStr}}</div>
<div class="cell" :class="{'red-text': item.status == 'M_O_F_S_WAIT_PASS'}" v-else-if="item.dealType=='E_I_D_T_SELL'">{{item.statusStr}}</div>
<div class="cell" v-else>{{item.statusStr}}</div>
</td>
<td>

2
src/views/currency/currency_order_details.vue

@ -3,7 +3,7 @@
<div class="container">
<!--当前位置-->
<div class="hc-breadcrumb">
<span class="hc-color4">{{$t('法币订单管理')}}</span>
<span class="hc-color4" @click="$router.push('/order/currency')">{{$t('法币订单管理')}}</span>
<i class="hc-breadcrumb-icon"></i>
<span class="margin0" v-if="orderDetails.dealType == 'E_I_D_T_BUY'">{{$t('购买')}} {{orderDetails.inCoin}}</span>
<span class="margin0" v-if="orderDetails.dealType == 'E_I_D_T_SELL'">{{$t('出售')}} {{orderDetails.outCoin}}</span>

77
src/views/currency/currency_release.vue

@ -159,15 +159,19 @@
<div class="form-control">
<div class="buy-payment">
<div class="buy-payment-choose" :class="{'active': alipay}">
<div class="buy-payment-choose" :class="{'active': alipay}" v-if="hasAlipay">
<span @click="alipay = !alipay">{{$t('支付宝')}}</span>
</div>
<div class="buy-payment-choose" :class="{'active': weixinpay}">
<div class="buy-payment-choose" :class="{'active': weixinpay}" v-if="hasWeixin">
<span @click="weixinpay = !weixinpay">{{$t('微信')}}</span>
</div>
<div class="buy-payment-choose" :class="{'active': unionpay}">
<div class="buy-payment-choose" :class="{'active': unionpay}" v-if="hasUnionpay">
<span @click="unionpay = !unionpay">{{$t('银行卡')}}</span>
</div>
<span class="buy-payment-tips" v-if="hasPayment">
{{$t('您还未添加收款方式')}}
<router-link to="/user/setting">去设置</router-link>
</span>
</div>
</div>
</div>
@ -228,6 +232,7 @@
name: 'currencyRelease',
data() {
return {
dealerId: '',
dealerInfo: {}, //
dealType: 1, //1 0
@ -254,6 +259,10 @@
payPwd: '', //
noteVerifyCode: '', //
hasAlipay: false,
hasWeixin: false,
hasUnionpay: false,
showPassword: false,
iTime: 60, //
isCodeSend: false,
@ -262,10 +271,17 @@
}
},
computed: {
...mapState('user', ['userInfoData']),
...mapState('user', ['userInfoData' ,'merchantStatus']),
dealTypeText() {
let text = this.dealType ? this.$t('购买') : this.$t('出售');
return text;
},
hasPayment() { //
let val = false;
if(!this.hasAlipay && !this.hasWeixin && !this.hasUnionpay) {
val = true;
}
return val;
}
},
watch: {
@ -277,7 +293,16 @@
},
methods: {
getUserInfoData() {
this.postAxios('/api/market/order/business/info/' + this.userInfoData.id)
this.getAxios('/user/api/user/info')
.then(data => {
this.dealerId = data.data.id;
setTimeout(() => {
this.getDealerInfo();
}, 300);
})
},
getDealerInfo() { //
this.postAxios('/api/market/order/business/info/' + this.dealerId)
.then(data => {
this.dealerInfo = data.data;
})
@ -305,6 +330,25 @@
})
})
},
getPayment() { //
this.getAxios('/api/user/payment/list')
.then(data => {
let list = data.data;
list.forEach(item => {
if(item.status == 'U_P_S_NORMAL') {
if(item.paymentType == 1) {
this.hasWeixin = true;
}
if(item.paymentType == 2) {
this.hasAlipay = true;
}
if(item.paymentType == 3) {
this.hasUnionpay = true;
}
}
})
})
},
handleChange(value) { //
console.log(JSON.stringify(value));
@ -370,24 +414,36 @@
if(this.loading) {
return;
}
if(this.merchantStatus != 'M_E_S_PASS') {
this.$message.error(this.$t('您还不是承兑商,不能发布广告!'));
return;
}
if(!this.userInfoData.initPayPwd) {
this.$message.error(this.$t('您还未设置支付密码!'));
return;
}
if(!this.price) {
this.$message.error('请输入单价!');
this.$message.error(this.$t('请输入单价!'));
return;
}
if(!this.totalPrice) {
this.$message.error('请输入金额!');
this.$message.error(this.$t('请输入金额!'));
return;
}
if(!this.quantity) {
this.$message.error('请输入数量!');
this.$message.error(this.$t('请输入数量!'));
return;
}
if(!this.minPrice) {
this.$message.error('请输入最小限额!');
this.$message.error(this.$t('请输入最小限额!'));
return;
}
if(this.minPrice < this.limitMin) {
this.$message.error(this.$t('最小限额不能小于') + this.limitMin);
return;
}
if (!this.alipay && !this.weixinpay && !this.unionpay) {
this.$message.error('请选择支付方式!');
this.$message.error(this.$t('请选择支付方式!'));
return;
}
@ -452,6 +508,7 @@
created() {
this.getCoinList();
this.getUserInfoData();
this.getPayment();
}
}
</script>

27
src/views/currency/currency_trade.vue

@ -145,12 +145,6 @@
currentCoin: '', //
currentCoinID: '', //ID
price: 0, //
limitMin: 0, //
limitMax: 0, //
buyRange: 0, //
sellRange: 0, //
directionType: 1, //1 2
//
@ -181,13 +175,17 @@
.then(data => {
this.coinList = data.data;
if(this.$route.query.id) { //
this.coinList.forEach(item => {
if(item.coinId == this.$route.query.id) {
this.currentCoin = item.coinId;
this.currentCoinID = item.coinId;
}
})
} else {
this.currentCoin = this.coinList[0].coinId;
this.currentCoinID = this.coinList[0].coinId;
this.price = this.coinList[0].price; //
this.buyRange = this.coinList[0].buyRange; //
this.sellRange = this.coinList[0].sellRange; //
this.limitMin = this.coinList[0].minLimit; //
this.limitMax = this.coinList[0].maxLimit; //
}
setTimeout(() => {
this.getAdsList(1); //广
@ -240,11 +238,6 @@
chooseCoin(item) { //
this.currentCoin = item.coinId;
this.currentCoinID = item.coinId;
this.price = item.price;
this.buyRange = item.buyRange;
this.sellRange = item.sellRange;
this.limitMin = item.minLimit;
this.limitMax = item.maxLimit;
this.getAdsList(1);
},
@ -253,7 +246,7 @@
this.getAdsList(1);
},
gotoDeal(item) {
gotoDeal(item) { //
this.$router.push('/currency/deal/'+item.marketOrderId);
this.common.setItem('data', item)
}

57
src/views/index/components/announce.vue

@ -0,0 +1,57 @@
<template>
<div class="home-news">
<div class="home-news-top">
<h2>{{$t('公告')}}</h2>
<router-link to="/news">{{$t('查看更多')}}</router-link>
</div>
<ul class="home-news-ul">
<li v-for="item of announceList" :key="item.id">
<router-link :to="'/news/details/' + item.id">
<div class="news-li-top">{{item.createDatetime | dateFormat('YYYY-MM-DD')}} / {{item.source}}</div>
<div class="news-li-text">
<img src="@/assets/images/bg_bg4-2.png" />
<div class="news-li-content">
<h3>{{item.title}}</h3>
<p>{{item.brief}}</p>
</div>
</div>
</router-link>
</li>
</ul>
</div>
</template>
<script>
export default {
name: 'indexAnnounce',
data() {
return {
announceList: [],
}
},
methods: {
getList() { // 5
let params = {
data: {
newsType: 'T_S_T_ANNO',
},
page: 1,
limit: 3,
}
this.postAxios('/api/news/news/page', params)
.then(data => {
this.announceList = data.data.records;
})
},
},
created() {
this.getList()
}
}
</script>
<style>
</style>

51
src/views/index/index.vue

@ -216,53 +216,7 @@
</div>
<div class="new-section">
<div class="home-news">
<div class="home-news-top">
<h2>{{$t('公告')}}</h2>
<a class="" href="../notice/index.html">{{$t('查看更多')}}</a>
</div>
<ul class="home-news-ul">
<li>
<a href="../notice/details.html">
<div class="news-li-top">2019-09-04 / 金色财经</div>
<div class="news-li-text">
<img src="../../assets/images/bg_bg4-2.png" />
<div class="news-li-content">
<h3>D网DigiFinex与IDAX达成战略合作 将于9月3日10:00互上平台币DFT和IT</h3>
<p>全球 TOP 10 2 大交易所 D网DigiFinex IDAX 达成深度战略合作将首次互上平台币IDAX TOKENIT上线 D网 DigiFinex TokenDFT上线
IDAX9月2日10:00:002</p>
</div>
</div>
</a>
</li>
<li>
<a href="../notice/details.html">
<div class="news-li-top">2019-09-04 / 巴比特</div>
<div class="news-li-text">
<img src="../../assets/images/bg_bg4-2.png" />
<div class="news-li-content">
<h3>力推超级节点计划牌D网DigiFinex打开交易天地</h3>
<p>加密交易所赛道百花齐放厮杀不断有一家交易所却在成立不到2年的时间里成功穿越2018年的熊市以黑马之姿杀入到交易所的第一梯队它就是DigiFinex也是很多朋友所熟知的D网8月12日晚DigiFinex联合创始人前百度技术部</p>
</div>
</div>
</a>
</li>
<li>
<a href="../notice/details.html">
<div class="news-li-top">2019-09-04 / 金色财经</div>
<div class="news-li-text">
<img src="../../assets/images/bg_bg4-2.png" />
<div class="news-li-content">
<h3>D网DigiFinex与IDAX达成战略合作 将于9月3日10:00互上平台币DFT和IT</h3>
<p>全球 TOP 10 2 大交易所 D网DigiFinex IDAX 达成深度战略合作将首次互上平台币IDAX TOKENIT上线 D网 DigiFinex TokenDFT上线
IDAX9月2日10:00:002</p>
</div>
</div>
</a>
</li>
</ul>
</div>
<announce-list></announce-list>
</div>
<div class="home-download">
@ -294,10 +248,11 @@
</template>
<script>
import announceList from './components/announce'
export default {
name: 'home',
components: {
announceList, //
},
data() {
return {

14
src/views/login/login.vue

@ -44,18 +44,18 @@
</div>
<div class="login-form">
<div class="login-label">{{$t('验证码')}}</div>
<el-input class="login-input verify-input" :placeholder="$t('请输入验证码')" v-model="imgVerifyCode" type="text" clearable autocomplete="off" @keyup.enter.native="submit">
<div class="login-label">{{$t('登录密码')}}</div>
<el-input class="login-input" :placeholder="$t('请输入您的登录密码')" v-model="passwd" type="password" clearable autocomplete="off" @keyup.enter.native="submit">
</el-input>
<img class="val" :src="imagesUrl" @click="getImageCode">
<div class="login-div6" @click="$router.push('/findpw')">{{$t('忘记密码')}}</div>
</div>
<div class="login-form">
<div class="login-label">{{$t('登录密码')}}</div>
<el-input class="login-input" :placeholder="$t('请输入您的登录密码')" v-model="passwd" type="password" clearable autocomplete="off" @keyup.enter.native="submit">
<div class="login-label">{{$t('验证码')}}</div>
<el-input class="login-input verify-input" :placeholder="$t('请输入验证码')" v-model="imgVerifyCode" type="text" clearable autocomplete="off" @keyup.enter.native="submit">
</el-input>
<div class="login-div6" @click="$router.push('/findpw')">{{$t('忘记密码')}}</div>
<img class="val" :src="imagesUrl" @click="getImageCode">
</div>
<div class="login-logbtn">

100
src/views/news/details.vue

@ -0,0 +1,100 @@
<template>
<div class="global-width">
<div class="container">
<div class="hc-breadcrumb">
<span class="hc-color4" @click="$router.push('/news')">{{$t('最新公告')}}</span>
<i class="hc-breadcrumb-icon"></i>
<span class="margin0">{{newsDetails.title}}</span>
</div>
<div class="hc-breadcrumb trade-center-top">
<span>{{$t('最新公告')}}</span>
<!-- <div class="helpcenter-soso">
<div class="soso-box">
<input placeholder="搜索"><i class="icon-search"></i>
</div>
</div> -->
</div>
<div class="helpcenter-main">
<div class="helpcenter-l">
<div class="helpcenter-problem">
<h2 class="more">{{$t('公告')}}</h2>
<ul class="more-li open">
<li v-for="item of newsList" :key="item.id">
<router-link :to="'/news/details/' + item.id" class="list-title">{{item.title}}</router-link>
</li>
</ul>
</div>
</div>
<div class="helpcenter-r">
<header class="article-header">
<h1 class="article-title">{{newsDetails.title}}</h1>
<p class="time">
{{newsDetails.createDatetime | dateFormat('YYYY-MM-DD hh:mm:ss')}}
<span>{{$t('来源')}}: {{newsDetails.source}}</span>
</p>
</header>
<div class="article-info" v-html="newsDetails.content"></div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'newsDetails',
data() {
return {
newsList: [], //
id: '', //id
newsDetails: {}, //
}
},
watch: {
$route() {
this.id = this.$route.params.id;
this.getNewsList();
this.getNewsDetails();
}
},
methods: {
getNewsList() { // 5
let params = {
data: {
newsType: 'T_S_T_ANNO',
},
page: 1,
limit: 5,
}
this.postAxios('/api/news/news/page', params)
.then(data => {
this.newsList = data.data.records;
})
},
getNewsDetails() { //
this.getAxios('/api/news/' + this.id)
.then(data => {
this.newsDetails = data.data;
})
}
},
created() {
this.id = this.$route.params.id;
this.getNewsList();
this.getNewsDetails();
}
}
</script>
<style>
</style>

95
src/views/news/list.vue

@ -1,8 +1,101 @@
<template>
<div class="wrap"></div>
<div class="global-width">
<div class="container">
<div class="hc-breadcrumb">
<span>{{$t('公告')}}</span>
</div>
<div class="hc-breadcrumb trade-center-top">
<span>{{$t('最新公告')}}</span>
<!-- <div class="helpcenter-soso">
<div class="soso-box soso-boxs">
<input class="inp" placeholder="搜索">
<i class="icon-search icon-searchs"></i>
</div>
</div> -->
</div>
<div class="news-main">
<ul class="news-list-ul">
<li v-for="item of newsList" :key="item.id">
<div class="list-left" @click="$router.push('/news/details/' + item.id)">
<img :src="item.thumbUrl" v-if="item.thumbUrl">
<img src="../../assets/images/bg_default.png" v-else>
</div>
<div class="list-right">
<router-link :to="'/news/details/' + item.id" class="list-title">{{item.title}}</router-link>
<p class="list-cont">{{item.brief}}</p>
<div class="list-time">
<span>{{item.createDatetime | dateFormat('YYYY-MM-DD hh:mm:ss')}}</span>
<span>{{$t('来源')}}: {{item.source}}</span>
</div>
</div>
</li>
</ul>
<no-content :isText="$t('暂无数据')" :isContent="isContent"></no-content>
<el-pagination class="list-pages" background layout="prev, pager, next" v-show="!isContent" :page-count="pageTotal" :current-page="currentPage" @next-click="pagesChange" @prev-click="pagesChange" @current-change="pagesChange"></el-pagination>
</div>
</div>
</div>
</template>
<script>
import noContent from '@/components/no_content'
export default {
name: 'news',
components: {
noContent,
},
data() {
return {
newsList: [],
isContent: false,
noResult: false,
pageTotal: 0, //
currentPage: 1, //
}
},
methods: {
getNewsList(pages) {
let params = {
data: {
newsType: 'T_S_T_ANNO',
},
page: pages,
limit: 10,
}
this.currentPage = pages;
this.postAxios('/api/news/news/page', params)
.then(data => {
this.pageTotal = data.data.pages;
if (data.data.total == 0) {
this.isContent = true;
} else {
this.isContent = false;
}
this.newsList = [];
data.data.records.forEach(item => {
this.newsList.push(item);
})
})
},
pagesChange(pages) {
this.getNewsList(pages);
},
},
created() {
this.getNewsList(1);
}
}
</script>
<style>

11
src/views/news/news.vue

@ -0,0 +1,11 @@
<template>
<div class="wrap">
<router-view></router-view>
</div>
</template>
<script>
</script>
<style>
</style>

16
src/views/register/register.vue

@ -44,6 +44,14 @@
</el-input>
</div>
<div class="login-form">
<div class="login-label">{{$t('图形验证码')}}</div>
<el-input class="login-input verify-input" :placeholder="$t('请输入图形验证码')" v-model="imgVerifyCode" type="text" clearable autocomplete="off" @keyup.enter.native="submit">
</el-input>
<img class="val" :src="imagesUrl" @click="getImageCode">
</div>
<div class="login-form">
<div class="login-label">{{registerTypeText}}{{$t('验证码')}}</div>
<el-input class="login-input verify-input" :placeholder="$t('请输入验证码')" v-model="verifyCode" type="text" clearable autocomplete="off" @keyup.enter.native="submit">
@ -71,14 +79,6 @@
</el-input>
</div>
<div class="login-form">
<div class="login-label">{{$t('图形验证码')}}</div>
<el-input class="login-input verify-input" :placeholder="$t('请输入图形验证码')" v-model="imgVerifyCode" type="text" clearable autocomplete="off" @keyup.enter.native="submit">
</el-input>
<img class="val" :src="imagesUrl" @click="getImageCode">
</div>
<div class="login-logbtn">
<div class="remember">
<el-checkbox v-model="isRead"></el-checkbox>

3
src/views/user/account.vue

@ -775,9 +775,6 @@
console.log(JSON.stringify(err))
},
},
created() {
}
}
</script>

93
src/views/user/shop_info.vue

@ -13,11 +13,14 @@
<div class="userHome-user">
<div class="user-headimg">
<img class="trade-detail-left-headimg" :src="dealerInfo.avatar" v-if="dealerInfo.avatar">
<img class="trade-detail-left-headimg" src="../../assets/images/user-head-img.png">
<img class="trade-detail-left-headimg" src="../../assets/images/user-head-img.png" v-else>
</div>
<div class="trade-detail-left-top">
<div class="trade-detail-left-nickname">{{dealerInfo.username || $t('暂无昵称')}}</div>
<div class="trade-detail-left-nickname">
{{dealerInfo.username || $t('暂无昵称')}}
<span class="edit-nickname" @click="showEdit = true">[{{$t('修改')}}]</span>
</div>
<div class="merchants-tag">
<img src="../../assets/images/trade/icon-authentication.png">
@ -111,9 +114,9 @@
<th>
<div class="cell">{{$t('单笔交易限额')}}</div>
</th>
<th>
<!-- <th>
<div class="cell">{{$t('操作')}}</div>
</th>
</th> -->
</tr>
</thead>
@ -131,7 +134,8 @@
</div>
<div class="nick-name">
<div class="trade-center-table-div1">{{userInfoData.phone || userInfoData.email}}</div>
<div class="trade-center-table-div1">{{dealerInfo.username || $t('暂无昵称')}}</div>
<div class="merchants-tag">
<img src="../../assets/images/trade/icon-authentication.png">
<span class="hc-color">{{$t('认证商家')}}</span>
@ -160,12 +164,12 @@
<td>
<div class="cell">{{item.minAmount}}-{{item.maxAmount}} CNY</div>
</td>
<td>
<!-- <td>
<div class="cell">
<button class="trade-center-table-btn1 red-btn-bg" @click="gotoDeal(item)" v-if="item.dealType == 'E_I_D_T_BUY'">出售</button>
<button class="trade-center-table-btn1 green-btn-bg" @click="gotoDeal(item)" v-else>购买</button>
</div>
</td>
</td> -->
</tr>
</tbody>
@ -183,7 +187,7 @@
</div>
<div class="nick-name">
<div class="trade-center-table-div1">{{userInfoData.phone || userInfoData.email}}</div>
<div class="trade-center-table-div1">{{dealerInfo.username || $t('暂无昵称')}}</div>
<div class="merchants-tag">
<img src="../../assets/images/trade/icon-authentication.png">
<span class="hc-color">{{$t('认证商家')}}</span>
@ -212,12 +216,12 @@
<td>
<div class="cell">{{item.minAmount}}-{{item.maxAmount}} CNY</div>
</td>
<td>
<!-- <td>
<div class="cell">
<button class="trade-center-table-btn1 red-btn-bg" @click="gotoDeal(item)" v-if="item.dealType == 'E_I_D_T_BUY'">出售</button>
<button class="trade-center-table-btn1 green-btn-bg" @click="gotoDeal(item)" v-else>购买</button>
</div>
</td>
</td> -->
</tr>
</tbody>
</table>
@ -227,37 +231,94 @@
</div>
</div>
</div>
<!-- 设置昵称的弹窗 -->
<el-dialog class="user-dialog" :title="$t('设置昵称')" :visible.sync="showEdit" :before-close="closeEdit">
<div class="title-tips">{{$t('设置昵称')}}</div>
<div class="address-form-input">
<el-input :placeholder="$t('请输入昵称')" v-model="nickname" type="text" clearable autocomplete="off" @keyup.enter.native="submit">
</el-input>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" :loading="true" v-if="loading">{{$t('提交中...')}}</el-button>
<el-button type="primary" @click="submit" v-else>{{$t('确定')}}</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { mapState } from 'vuex'
import noContent from '@/components/no_content'
export default {
name: 'shopInfo',
components: {
noContent,
},
data() {
return {
id: '', //id
dealerInfo: {}, //
listType: 1, //1广 2广
buyAdsList: [],
sellAdsList: [],
nickname: '', //
showEdit: false, //
loading: false,
}
},
computed: {
...mapState('user', ['userInfoData', 'merchantStatus']),
...mapState('user', ['userInfoData']),
},
methods: {
getUserInfoData() {
this.postAxios('/api/market/order/business/info/' + this.userInfoData.id)
getUserInfo() { //
this.getAxios('/user/api/user/info')
.then(data => {
this.id = data.data.id
this.getShopInfo();
})
},
getShopInfo() { //
this.postAxios('/api/market/order/business/info/' + this.id)
.then(data => {
this.dealerInfo = data.data;
this.buyAdsList = data.data.sellList;
this.sellAdsList = data.data.buyList;
this.buyAdsList = data.data.buyList;
this.sellAdsList = data.data.sellList;
})
},
submit() {
if(this.loading) {
return;
}
if(!this.nickname) {
this.$message.error(this.$t('请输入昵称!'));
return;
}
this.loading = true;
this.putAxios('/user/api/user/info', {nickname: this.nickname})
.then(() => {
this.$message.success(this.$t('昵称修改成功!'));
this.getShopInfo();
this.closeEdit();
})
.catch(() => {
this.loading = false;
})
},
closeEdit() {
this.showEdit = false;
this.nickname = '';
this.loading = false;
}
},
created() {
this.getUserInfoData();
this.getUserInfo();
}
}
</script>

Loading…
Cancel
Save