提交 707b64d8 authored 作者: 郑伟娜's avatar 郑伟娜

Merge branch 'securityFund' into test

import request from '@/utils/request'
// 获取店铺信息
export const shopInfo = () => {
return request({
url: '/local/getShopInfo',
method: 'get'
})
}
// 获取交易流水
export const bondDetail = (params) => {
return request({
url: '/local/shop/bond/detail',
method: 'get',
params
})
}
// 充值保证金
export const addBond = (data) => {
return request({
url: '/system/addBond',
method: 'post',
data
})
}
// 保证金额度说明
export const bondByCate = (params) => {
return request({
url: '/local/getBondByCate',
method: 'get',
params
})
}
// 账户/列表
export const accountList = (data) => {
return request({
url: '/system/bank/account/list',
method: 'post',
data
})
}
// 申请退保
export const bondApply = (data) => {
return request({
url: '/local/bondApply',
method: 'post',
data
})
}
// 获取支付账户
export const payDetails = (params) => {
return request({
url: '/system/payDetails',
method: 'get',
params
})
}
// 保证金申请详情
export const applyDetail = (params) => {
return request({
url: '/local/bond/apply/detail',
method: 'get',
params
})
}
...@@ -77,6 +77,11 @@ export const constantRoutes = [ ...@@ -77,6 +77,11 @@ export const constantRoutes = [
component: (resolve) => require(['@/views/error/401'], resolve), component: (resolve) => require(['@/views/error/401'], resolve),
hidden: true hidden: true
}, },
{
path: '/returnurl',
component: () => import('@/views/returnurl'),
hidden: true
},
{ {
path: '/', path: '/',
component: (resolve) => require(['@/views/entry/newyuncang'], resolve), component: (resolve) => require(['@/views/entry/newyuncang'], resolve),
......
<template> <template>
<el-row :gutter="40" class="panel-group"> <div>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> <el-row :gutter="40" class="panel-group">
<div class="card-panel" @click="handleSetLineChartData('newVisitis')"> <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel-icon-wrapper icon-people"> <div class="card-panel" @click="handleSetLineChartData('newVisitis')">
<svg-icon icon-class="peoples" class-name="card-panel-icon" /> <div class="card-panel-icon-wrapper icon-people">
</div> <svg-icon icon-class="peoples" class-name="card-panel-icon" />
<div class="card-panel-description">
<div class="card-panel-text">
总商品
</div> </div>
<count-to :start-val="0" :end-val="panelData.goods_total" :duration="2600" class="card-panel-num" /> <div class="card-panel-description">
</div> <div class="card-panel-text">
</div> 总商品
</el-col> </div>
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> <count-to :start-val="0" :end-val="panelData.goods_total" :duration="2600" class="card-panel-num" />
<div class="card-panel" @click="handleSetLineChartData('messages')">
<div class="card-panel-icon-wrapper icon-message">
<svg-icon icon-class="message" class-name="card-panel-icon" />
</div>
<div class="card-panel-description">
<div class="card-panel-text">
总订单
</div> </div>
<count-to :start-val="0" :end-val="panelData.order_total" :duration="3000" class="card-panel-num" />
</div> </div>
</div> </el-col>
</el-col> <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> <div class="card-panel" @click="handleSetLineChartData('messages')">
<div class="card-panel" @click="handleSetLineChartData('purchases')"> <div class="card-panel-icon-wrapper icon-message">
<div class="card-panel-icon-wrapper icon-money"> <svg-icon icon-class="message" class-name="card-panel-icon" />
<svg-icon icon-class="money" class-name="card-panel-icon" /> </div>
</div> <div class="card-panel-description">
<div class="card-panel-description"> <div class="card-panel-text">
<div class="card-panel-text"> 总订单
总收入 </div>
<count-to :start-val="0" :end-val="panelData.order_total" :duration="3000" class="card-panel-num" />
</div> </div>
<count-to :start-val="0" :end-val="panelData.total_price" :decimals="2" :duration="3200" class="card-panel-num" />
</div> </div>
</div> </el-col>
</el-col> <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col"> <div class="card-panel" @click="handleSetLineChartData('purchases')">
<div class="card-panel" @click="handleSetLineChartData('shoppings')"> <div class="card-panel-icon-wrapper icon-money">
<div class="card-panel-icon-wrapper icon-shopping"> <svg-icon icon-class="money" class-name="card-panel-icon" />
<svg-icon icon-class="shopping" class-name="card-panel-icon" /> </div>
<div class="card-panel-description">
<div class="card-panel-text">
总收入
</div>
<count-to :start-val="0" :end-val="panelData.total_price" :decimals="2" :duration="3200" class="card-panel-num" />
</div>
</div> </div>
<div class="xz-tip">{{(panelData.refund_total < 100)? panelData.refund_total : '99+' }}</div> </el-col>
<div class="card-panel-description"> <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel-text"> <div class="card-panel" @click="handleSetLineChartData('shoppings')">
售后订单 <div class="card-panel-icon-wrapper icon-shopping">
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
</div> </div>
<count-to :start-val="0" :end-val="panelData.refund_total" :duration="3600" class="card-panel-num" /> <div class="xz-tip">{{(panelData.refund_total < 100)? panelData.refund_total : '99+' }}</div>
<div class="card-panel-description">
<div class="card-panel-text">
售后订单
</div>
<count-to :start-val="0" :end-val="panelData.refund_total" :duration="3600" class="card-panel-num" />
</div>
</div>
</el-col>
</el-row>
<!-- 保证金充值提醒 -->
<el-dialog
style="margin-top: 200px;"
title="保证金充值提醒"
:visible.sync="dialogVisible"
:destroy-on-close="true"
width="35%"
center
:close-on-click-modal="false"
append-to-body
>
<div>
<div style="background: rgba(58, 160, 255, .05); padding: 20px; line-height: 24px; text-align: center;">
<div>当前保证金余额不足,部分功能受限,请您及时充值保证金</div>
</div> </div>
</div> </div>
</el-col> <span slot="footer" class="dialog-footer">
</el-row> <el-button type="danger" @click="goPay">去充值</el-button>
</span>
</el-dialog>
</div>
</template> </template>
<script> <script>
import CountTo from 'vue-count-to' import CountTo from 'vue-count-to'
import { shopInfo } from '@/api/securityFund';
export default { export default {
data() { data() {
return {} return {
dialogVisible: false
}
}, },
props: { props: {
panelData: { panelData: {
...@@ -73,10 +98,30 @@ export default { ...@@ -73,10 +98,30 @@ export default {
}, },
mounted() { mounted() {
// console.log(75,this.panelData); // console.log(75,this.panelData);
this.getShopInfo()
}, },
methods: { methods: {
// 获取店铺信息
getShopInfo() {
shopInfo().then(res => {
if (res.code == 1) {
// 是否需要缴纳保证金 0否 1是
if (res.data.is_take_bond == 1 || res.data.bond < res.data.cate_bond / 2) {
this.dialogVisible = true
} else {
this.dialogVisible = false
}
}
})
},
handleSetLineChartData(type) { handleSetLineChartData(type) {
this.$emit('handleSetLineChartData', type) this.$emit('handleSetLineChartData', type)
},
goPay() {
this.dialogVisible = false
this.$router.push({
path: '/system/asset/securityFund'
})
} }
} }
} }
......
<template>
</template>
<script>
export default {
name:'returnurl',
created(){
},
mounted() {
window.opener = null
window.open('', self)
window.close()
},
}
</script>
<template>
<div class="securityFund">
<el-card class="box-card">
<div class="header">
<i class="el-icon-warning" style="color: #F1914E; "></i>
这里展示您保证金的交保、退保、补缴、扣除等记录,保证金并不是向云仓付费,而是作为专项资产在您的账户中。保证金余额不支持直接提现,当退出相应服务后可申请退还保证金!
</div>
<div class="securityFund-title">
<i class="title-icon"></i>
保证金
</div>
<div class="securityFund-content">
<div style="display: flex; align-items: center;" v-if="isPay">
<span><i class="el-icon-success" style="color: #67c23a; font-size: 26px;"></i></span>
<span style="margin: 0 20px 0 5px;">已缴纳保证金</span>
<span>合约期内保证金不能提现,合作到期后双方如终止合作则退还保证金。</span>
</div>
<div style="display: flex; align-items: center;" v-if="!isPay">
<span><i class="el-icon-error" style="color: red; font-size: 26px;"></i></span>
<span style="margin: 0 20px 0 5px;">未缴纳保证金</span>
<span>根据您的商品所在类目,需缴纳【5000.00元】保证金,您还未缴纳!保证金用于您的信用保障和消费者的权益保护,如果您有违约责任,平台将根据规定扣除您一定比例的保证金。</span>
</div>
<div style="display: flex; justify-content: space-between; margin-top: 50px;">
<div style="width: 33%; text-align: center; border-right: 2px solid #E8E7E7;">
<div>保证金余额</div>
<div style="font-size: 30px; color: #3AA0FF; margin-top: 20px;">{{ getFixed(bond) }}</div>
</div>
<div style="width: 33%; text-align: center; border-right: 2px solid #E8E7E7;">
<div>冻结金额</div>
<div style="font-size: 30px; color: #3AA0FF; margin-top: 20px;">{{ getFixed(frozen_bond) }}</div>
</div>
<div style="width: 33%; text-align: center; display: flex; justify-content: center; align-items: flex-end;">
<div>
<div>初始应缴</div>
<div style="font-size: 30px; color: #3AA0FF; margin-top: 20px;">{{ getFixed(cate_bond) }}</div>
</div>
<div style="padding: 6px 0 6px 10px; cursor: pointer;" class="desc" @click="limitDialog = true">【保证金额度说明】</div>
<div style="padding: 6px 0; cursor: pointer;" class="desc" @click="ruleDialog = true">【保证金扣减说明】</div>
</div>
</div>
<div style="text-align: center; margin-top: 50px; width: 100%;">
<el-button type="primary" size="mini" style="width: 80px;" @click="payDialog = true" :disabled="isPay || !isShowPay">充值</el-button>
<el-button size="mini" style="width: 80px;" @click="cancellationDialog = true" :disabled="bond == 0">申请退保</el-button>
</div>
</div>
<div class="flowList">
<div>
<div class="flow-title">交易流水</div>
</div>
<el-table
:data="tableData"
tooltip-effect="dark"
style="width: 100%; margin-top: 10px;"
>
<el-table-column
align="center"
label="流水单号"
>
<template slot-scope="scope">
{{ scope.row.sn }}
</template>
</el-table-column>
<el-table-column
align="center"
label="完成时间"
>
<template slot-scope="scope">
{{ formatter(scope.row.updated_time) }}
</template>
</el-table-column>
<el-table-column
align="center"
label="变动类型"
>
<template slot-scope="scope">
<div>
{{ scope.row.type == 1 ? '增加' : '减少' }}
</div>
</template>
</el-table-column>
<el-table-column
align="center"
label="变动金额"
>
<template slot-scope="scope">
<div>
{{ getFixed(scope.row.money) }}
</div>
</template>
</el-table-column>
<el-table-column
align="center"
prop="explain"
label="变动说明"
>
</el-table-column>
</el-table>
<div class="footer_pagination">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[20, 40, 60, 80, 100]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div>
</div>
</el-card>
<!-- 充值弹框 -->
<el-dialog
title="缴纳保证金"
:visible.sync="payDialog"
:destroy-on-close="true"
width="35%"
center
:close-on-click-modal="false"
append-to-body
@close="initData"
>
<div>
<div class="header" style="text-align: center; font-size: 12px; line-height: 20px;">
根据您的商品所在类目,需缴纳5000.00元保证金,【不支持个人转账】
</div>
<el-form ref="payForm" :model="payForm" label-width="110px" style="margin-top: 20px;">
<el-form-item label="应缴纳额度:">
<el-input v-model="payForm.money" :disabled="true"></el-input>
</el-form-item>
<el-form-item label="缴纳方式:">
<el-radio v-model="payRadio" label="1" v-if="isShowPay1">线下转账</el-radio>
<el-radio v-model="payRadio" label="2" v-if="isShowPay2">支付宝</el-radio>
</el-form-item>
<div v-if="payRadio == 1">
<el-form-item label="开户名称:">
<el-input v-model="payForm.name" placeholder="北京胜天半子科技有限公司" :disabled="true"></el-input>
</el-form-item>
<el-form-item label="开户银行:">
<el-input v-model="payForm.bank" placeholder="招商银行北京分行丰台科技园支行" :disabled="true"></el-input>
</el-form-item>
<el-form-item label="银行账号:">
<el-input v-model="payForm.bankNum" placeholder="110945259110901" :disabled="true"></el-input>
</el-form-item>
<el-form-item label="汇款凭证:">
<el-upload
class="avatar-uploader"
action=""
list-type="picture-card"
:http-request="uploadLogo"
:before-upload="beforeUpLogo"
:file-list="ruleFormdialogLogo"
:limit="2"
:on-exceed="limitCount1"
:before-remove="beforeRemoveLogo"
:on-remove="removeLogo"
:on-preview="handleMainImgLogo"
>
<i class="el-icon-plus"></i>
</el-upload>
<span>最多上传2张,支持png/jpg,大小不超过500KB</span>
</el-form-item>
<el-form-item label="汇款公户名称:">
<el-input v-model="payForm.account" placeholder=" 请输入您汇款的账户名称"></el-input>
</el-form-item>
</div>
<div v-if="payRadio == 2">
<el-form-item label="">
<div style="background: rgba(58, 160, 255, .05); padding: 20px;">
<div>温馨提示:</div>
<div>不支持信用卡方式充值</div>
</div>
</el-form-item>
</div>
</el-form>
<div style="text-align: right;">
<el-button type="primary" @click="onSubmit(1)" v-if="payRadio == 1">提交</el-button>
<el-button type="primary" @click="onSubmit(2)" v-if="payRadio == 2">立即付款</el-button>
</div>
</div>
</el-dialog>
<!-- 申请退保 -->
<el-dialog
title="申请退保"
:visible.sync="cancellationDialog"
:destroy-on-close="true"
width="38%"
center
:close-on-click-modal="false"
append-to-body
@close="cancellationinitData"
>
<div v-if="!isSubmit">
<div class="header" style="text-align: center; font-size: 12px; line-height: 20px;">
<div>合约期内保证金不能提现,合作到期后双方如终止合作则退还保证金。</div>
<div>如果您意向停止合作,可在线提交申请,退保后双方自动解约,您的店铺将被关闭,商品将被下架,请知悉!</div>
</div>
<el-form ref="cancellationForm" :model="cancellationForm" label-width="110px" style="margin-top: 20px;">
<el-form-item label="退保金额:">
<el-input v-model="cancellationForm.money" :disabled="true"></el-input>
</el-form-item>
<el-form-item label="退保至:">
<el-select v-model="cancellationForm.account" placeholder="请选择退保的账户" style="width: 100%;">
<el-option :label="item.bank_name" :value="item.id" v-for="item in optionAcount" :key="item.id"/>
</el-select>
<div style="font-size: 12px; color: #FF4D4F;">选择您的提现账户,如果没有请在【资产】页面当中添加</div>
</el-form-item>
<el-form-item label="短信验证码:">
<el-input v-model="cancellationForm.code" style="width: 70%;" :placeholder="`请输入手机${getTel(emergency_tel)}的验证码`"></el-input>
<el-button @click="getCode" v-if="isAccountCode">获取短信验证码</el-button>
<el-button style="width: 109px" :disabled="true" v-if="!isAccountCode">倒计时 {{ accountCountDown }}
S
</el-button>
</el-form-item>
</el-form>
<div style="text-align: right;">
<el-button type="primary" @click="submitCancellation">提交</el-button>
</div>
</div>
<!-- 提交成功提示 -->
<div style="text-align: center;" v-if="isSubmit">
<div><i class="el-icon-success" style="color: #67c23a; font-size: 34px;"></i></div>
<div style="margin: 10px 0 30px;">审请已提交,工作人员将与您联系,请注意来电</div>
<div style="background: rgba(58, 160, 255, .05); padding: 20px; line-height: 30px;">
<div>感谢您使用云仓!</div>
<div>您的退保申请已提交,工作人员将与您取得联系核实情况,大约需要1-3个工作日,请您耐心等待。</div>
<div>在此过程中请确保您的全部订单已发货、无售后订单、账户余额已全部提现!</div>
<div>如果您有其它的问题,可以拔打我们的服务电话与我们联系!</div>
<div>服务电话:<span style="color: #3AA0FF;">4000-188-199</span></div>
</div>
</div>
</el-dialog>
<!-- 保证金扣款说明 -->
<el-dialog
style="margin-top: 200px;"
title="扣减规则"
:visible.sync="ruleDialog"
:destroy-on-close="true"
width="35%"
center
:close-on-click-modal="false"
append-to-body
>
<div>
<div style="background: rgba(58, 160, 255, .05); padding: 20px; line-height: 24px;">
<div>1、订单延迟发货,延迟0-24小时不作处罚,延迟24-72小时,扣除该订单金额的10%作为处罚,超过72小时扣除50%作为处罚</div>
</div>
</div>
</el-dialog>
<!-- 保证金额度说明 -->
<el-dialog
style="margin-top: 200px;"
title="各类目保证金收取标准"
:visible.sync="limitDialog"
:destroy-on-close="true"
width="70%"
center
:close-on-click-modal="false"
append-to-body
>
<div style="height: 500px; overflow-y: auto;">
<el-table
:data="bondByCateList"
tooltip-effect="dark"
style="width: 100%;"
>
<el-table-column
align="center"
label="序号"
width="55">
<template slot-scope="scope">
{{scope.$index + 1}}
</template>
</el-table-column>
<el-table-column
align="center"
label="一级类目"
>
<template slot-scope="scope">
{{ scope.row.cate_name }}
</template>
</el-table-column>
<el-table-column
align="center"
label="保证金额度(元)"
>
<template slot-scope="scope">
{{ getFixed(scope.row.bond) }}
</template>
</el-table-column>
<el-table-column
align="center"
label="额度说明"
>
<template slot-scope="scope">
<div>
采取就高原则,取类目保证金最大值
</div>
</template>
</el-table-column>
</el-table>
<div style="text-align: right; margin-top: 20px;">
<el-button type="primary" @click="limitDialog = false">确定</el-button>
</div>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogVisibleLogo" class="dialog-img-spe">
<img width="100%" :src="dialogImageLogo" alt=""/>
</el-dialog>
</div>
</template>
<script>
import { UploadImg } from '@/api/module/goods'
import { shopInfo, bondDetail, addBond, bondByCate, accountList, bondApply, payDetails, applyDetail } from '@/api/securityFund';
import { getTelphoneCode } from '@/api/module/settings'
import { dateFormat } from '@/utils'
export default {
data() {
return {
bond: 0, // 保证金金额
frozen_bond: 0, // 冻结金额
cate_bond: 0, // 初始应缴
payRadio: '1',
isPay: true, // 是否需要缴纳保证金
isSubmit: false,
cancellationDialog: false,
ruleDialog: false,
limitDialog: false,
payDialog: false,
payForm: {
money: '',
name: '北京胜天半子科技有限公司',
bank: '招商银行北京分行丰台科技园支行',
bankNum: '110945259110901',
account: ''
},
cancellationForm: {
money: '',
account: '',
code: ''
},
currentPage: 1,
pageSize: 20,
total: 0,
tableData: [],
ruleFormdialogLogo: [], // 汇款凭证
dialogVisibleLogo: false,
dialogImageLogo: '',
optionAcount: [],
bondByCateList: [],
seller_id: '',
emergency_tel: '',
isAccountCode: true,
timer: null,
accountCountDown: 60,
isShowPay1: true,
isShowPay2: true,
isShowPay: true
}
},
mounted() {
this.getShopInfo()
this.getBondDetail()
this.getbondByCate()
this.getPayDetails()
},
methods: {
formatter(time) {
return dateFormat(time * 1000, 'Y-m-d H:i:s')
},
// 处理金额
getFixed(value) {
let data = 0
if (value) {
data = (value / 100).toFixed(2)
}
return data
},
getTel(val) {
let tel = ''
tel = val.substring(0, 3) + '****' + val.substring(7, val.length)
return tel
},
// 获取支付账户
getPayDetails() {
payDetails().then(res => {
if (res.code == 1) {
if (res.data) {
// 线下转账-是否开启 0关闭 1开启
if (res.data.BankSettings.is_bank_open) {
this.isShowPay1 = true
} else {
this.isShowPay1 = false
this.payRadio = '2'
}
// 支付宝--是否开启 0关闭 1开启
if (res.data.AlipaySettings.is_alipay_open) {
this.isShowPay2 = true
} else {
this.isShowPay2 = false
this.payRadio = '1'
}
} else { // 没有设置支付账户
this.isShowPay = false
}
}
})
},
// 获取账户列表
getAccountList() {
let params = {
page: 1,
limit: 100,
seller_id: this.seller_id
}
accountList(params).then(res => {
if (res.code == 1) {
this.optionAcount = res.data.data
}
})
},
// 保证金额度说明
getbondByCate() {
bondByCate().then(res => {
if (res.code == 1) {
this.bondByCateList = res.data
}
})
},
// 获取店铺信息
getShopInfo() {
shopInfo().then(res => {
if (res.code == 1) {
this.bond = res.data.bond || 0
this.frozen_bond = res.data.frozen_bond || 0
this.cate_bond = res.data.cate_bond || 0
this.seller_id = res.data.seller_id
this.emergency_tel = res.data.emergency_tel
this.cancellationForm.money = this.getFixed(this.bond)
this.payForm.money = this.getFixed(this.cate_bond - this.bond)
// 是否需要缴纳保证金 0否 1是
if (res.data.is_take_bond == 1 || this.bond < this.cate_bond / 2) {
this.isPay = true
} else {
this.isPay = false
}
this.getAccountList()
}
})
},
// 获取交易流水
getBondDetail() {
let params = {
page: this.currentPage,
limit: this.pageSize
}
bondDetail(params).then(res => {
if (res.code == 1) {
this.tableData = res.data.data
this.total = res.data.count
}
})
},
initData() {
this.ruleFormdialogLogo = []
this.payForm.account = ''
},
// 充值保证金
getAddBond(type) {
let params
if (type == 1) {
params = {
recharge_type: 1,
voucher: this.ruleFormdialogLogo || undefined,
remitting_public_account: this.payForm.account || undefined
}
} else {
params = {
recharge_type: 2
}
}
addBond(params).then(res => {
if (res.code == 1) {
if (type == 1) {
this.$message({
type: 'success',
message: '提交成功'
})
} else {
// 支付宝支付
window.open(res.data.pay_url, '_blank')
this.$confirm('请在支付宝充值页面进行充值。充值完成后,请回到此页面,根据您的情况,点击下方的按钮','充值',{
confirmButtonText: '充值成功',
cancelButtonText: '充值失败',
type: 'warning'
}).then(async () => {
let payResult = await applyDetail({ id: res.data.id })
if(payResult.code === 1) {
if (payResult.data.audit_status == 1) {
this.$message({type: 'success', message: '充值成功!'})
} else {
this.$message({type: 'error', message: '充值失败!'})
}
}
}).catch((err)=> {});
}
this.payDialog = false
this.getShopInfo()
} else {
this.$message({
type: 'error',
message: res.message
})
}
})
},
// 提交凭证
onSubmit(type) {
if (type == 1) {
if (!this.ruleFormdialogLogo.length) {
this.$message({
type: 'warning',
message: '请上传汇款凭证'
})
return
}
if (!this.payForm.account) {
this.$message({
type: 'warning',
message: '请输入汇款的账户名称'
})
return
}
this.getAddBond(1)
} else {
this.getAddBond(2)
}
},
// 获取短信验证码
getCode() {
const TIME_COUNT = 60;
if (!this.timer) {
this.accountCountDown = TIME_COUNT;
this.isAccountCode = false;
this.timer = setInterval(() => {
if (this.accountCountDown > 0 && this.accountCountDown <= TIME_COUNT) {
this.accountCountDown--;
} else {
this.isAccountCode = true;
clearInterval(this.timer);
this.timer = null;
}
}, 1000)
}
// 获取验证码
getTelphoneCode(this.emergency_tel).then(res => {
if(res.code == 1) {
this.$message({type:"success",message: '验证码发送成功'})
}else {
this.$message({type:"error",message: '验证码发送失败'})
}
});
},
// 清空申请退保数据
cancellationinitData() {
this.cancellationForm.account = ''
this.cancellationForm.code = ''
if (this.isSubmit) {
this.isSubmit = false
this.getShopInfo()
}
},
// 申请退保
submitCancellation() {
if (!this.cancellationForm.account) {
this.$message({
type: 'warning',
message: '请选择退保的账户'
})
return
}
if (!this.cancellationForm.code) {
this.$message({
type: 'warning',
message: '请输入短信验证码'
})
return
}
let params = {
money: this.cancellationForm.money * 100,
bank_id: this.cancellationForm.account,
code: this.cancellationForm.code
}
bondApply(params).then(res => {
if (res.code == 1) {
this.$message({
type: 'warning',
message: '提交成功'
})
this.isSubmit = true
} else {
this.$message({
type: 'error',
message: res.message
})
}
})
},
// 商品主图 数量限制
limitCount1(files, fileList) {
this.$message({message: '最多上传2张图片', type: 'warning'});
},
// 顶部logo 大小格式样式校验
beforeUpLogo(file, fileList) {
if (file.type !== "image/png" && file.type !== "image/jpg" && file.type != "image/jpeg") {
this.$message({
message: '上传图片格式只支持png/png格式',
type: "warning"
});
return false;
}
let isImgSize = (file.size / 1024 / 1024) > 2;
if (isImgSize) {
this.$message({
message: '上传图片大小不能超过2MB',
type: "warning"
});
return false;
}
// 图片宽高尺寸限制
// return new Promise(function (resolve, reject) {
// let _URL = window.URL || window.webkitURL;
// let img = new Image();
// img.onload = function () {
// // 图片是否是正方形 宽高比为 1
// let valid = img.width <= 108 && img.height <= 108;
// valid ? resolve() : reject();
// }
// img.src = _URL.createObjectURL(file);
// }).then(() => {
// return file;
// }, () => {
// this.$message({
// message: '界面logo最大尺寸为108*108像素,请重新选择!',
// type: 'warning'
// });
// return Promise.reject();
// });
},
getBase64(file) {
return new Promise(function (resolve, reject) {
let reader = new FileReader();
let imgResult = "";
reader.readAsDataURL(file);
reader.onload = function () {
imgResult = reader.result;
};
reader.onerror = function (error) {
reject(error);
};
reader.onloadend = function () {
resolve(imgResult);
};
});
},
// 上传顶部logo
uploadLogo(param) {
this.getBase64(param.file).then((res) => {
let result = res.split(",");
this.Base64img = result[1];
let data = {"img_data": this.Base64img}
UploadImg(data).then(res => {
if (res && res.code == 1) {
this.ruleFormdialogLogo.push({url: res.data.image_url})
this.$message({message: '上传成功', type: 'success'});
} else {
this.ruleFormdialogLogo = [];
this.$message({message: '上传失败,请重新上传', type: 'error'});
}
})
});
},
// 顶部logo 删除移除前
beforeRemoveLogo(file, fileList) {
if (file.status === "success") {
return new Promise((res, rej) => {
this.$confirm(`是否删除此图片`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
return res();
}).catch(() => {
this.$message({
type: 'success',
message: '取消删除!'
});
return rej();
});
});
}
},
// 顶部logo删除
removeLogo(file) {
if (file.status === "success") {
for (let i = 0; i < this.ruleFormdialogLogo.length; i++) {
if (file.uid === this.ruleFormdialogLogo[i].uid) {
this.ruleFormdialogLogo.splice(i, 1);
}
}
this.$message({
type: 'success',
message: '删除成功!'
});
}
},
// 顶部logo 预览
handleMainImgLogo(file) {
this.dialogImageLogo = file.url;
this.dialogVisibleLogo = true;
},
handleSizeChange(val) {
this.pageSize = val
this.getBondDetail()
},
handleCurrentChange(val) {
this.currentPage = val
this.getBondDetail()
}
}
}
</script>
<style scoped>
.securityFund {
height: 100%;
overflow-y: auto;
}
.securityFund .box-card {
margin: 20px;
}
.header {
border: 1px solid #F1914E;
background: #FFF5ED;
padding: 10px;
font-size: 14px;
margin: 10px auto;
}
.securityFund-title {
display: flex;
align-items: center;
font-weight: bold;
font-size: 15px;
color: #333;
border-bottom: 2px solid #F6F6F8;
padding-bottom: 10px;
margin-top: 40px;
}
.title-icon {
display: inline-block;
width: 3px;
height: 15px;
background: #3AA0FF;
margin-right: 5px;
}
.securityFund-content {
background: #F8FBFD;
height: 300px;
color: #333;
font-weight: bold;
font-size: 14px;
padding: 30px;
margin-top: 30px;
}
.flowList {
margin-top: 20px;
}
.flow-title {
width: 80px;
height: 30px;
line-height: 30px;
text-align: center;
background: #3AA0FF;
border-radius: 2px;
display: inline-block;
color: #fff;
font-size: 14px;
}
.footer_pagination {
text-align: center;
margin-top: 20px;
}
.desc:hover {
color: #3AA0FF;
}
</style>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论