Browse Source

更新

master
j1ack 2 years ago
parent
commit
e43608a511
  1. 2
      .env.staging
  2. 2
      package.json
  3. 53
      src/api/otc/OtcStoreBondConfig.js
  4. 12
      src/api/otc/otcAppealOrder.js
  5. 53
      src/api/otc/otcCurrencyCoin.js
  6. 53
      src/api/otc/otcStoreBond.js
  7. 2
      src/api/system/user.js
  8. 78
      src/api/user/ad.js
  9. 63
      src/api/user/position.js
  10. 53
      src/api/user/walletAssetsRecord.js
  11. 369
      src/views/otc/OtcStoreBondConfig/index.vue
  12. 64
      src/views/otc/otcAppealConfig/index.vue
  13. 258
      src/views/otc/otcAppealOrder/index.vue
  14. 96
      src/views/otc/otcCoin/index.vue
  15. 339
      src/views/otc/otcCurrencyCoin/index.vue
  16. 300
      src/views/otc/otcOrder/index.vue
  17. 215
      src/views/otc/otcPaymentType/index.vue
  18. 340
      src/views/otc/otcStoreBond/index.vue
  19. 249
      src/views/otc/otcStoreOrder/index.vue
  20. 20
      src/views/otc/otcStorePledge/index.vue
  21. 5
      src/views/otc/otcStoreRechargeOrder/index.vue
  22. 94
      src/views/otc/otcSysDict/index.vue
  23. 2
      src/views/system/role/index.vue
  24. 2
      src/views/system/user/index.vue
  25. 14
      src/views/user/UserCertification/index.vue
  26. 802
      src/views/user/ad/index.vue
  27. 312
      src/views/user/position/index.vue
  28. 11
      src/views/user/userCustomer/index.vue
  29. 21
      src/views/user/wallet/index.vue
  30. 381
      src/views/user/walletAssetsRecord/index.vue
  31. 4
      vue.config.js

2
.env.staging

@ -1,8 +1,6 @@
# 页面标题
VUE_APP_TITLE = 若依管理系统
NODE_ENV = production
# 测试环境配置
ENV = 'staging'

2
package.json

@ -45,8 +45,10 @@
"file-saver": "2.0.5",
"fuse.js": "6.4.3",
"highlight.js": "9.18.5",
"jquery": "^3.7.0",
"js-beautify": "1.13.0",
"js-cookie": "3.0.1",
"js-md5": "^0.7.3",
"jsencrypt": "3.0.0-rc.1",
"nprogress": "0.2.0",
"quill": "1.3.7",

53
src/api/otc/OtcStoreBondConfig.js

@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询承兑商质押金费率配置列表
export function listOtcStoreBondConfig(query) {
return request({
url: '/otc/OtcStoreBondConfig/list',
method: 'get',
params: query
})
}
// 查询承兑商质押金费率配置详细
export function getOtcStoreBondConfig(id) {
return request({
url: '/otc/OtcStoreBondConfig/' + id,
method: 'get'
})
}
// 新增承兑商质押金费率配置
export function addOtcStoreBondConfig(data) {
return request({
url: '/otc/OtcStoreBondConfig',
method: 'post',
data: data
})
}
// 修改承兑商质押金费率配置
export function updateOtcStoreBondConfig(data) {
return request({
url: '/otc/OtcStoreBondConfig',
method: 'put',
data: data
})
}
// 删除承兑商质押金费率配置
export function delOtcStoreBondConfig(id) {
return request({
url: '/otc/OtcStoreBondConfig/' + id,
method: 'delete'
})
}
// 导出承兑商质押金费率配置
export function exportOtcStoreBondConfig(query) {
return request({
url: '/otc/OtcStoreBondConfig/export',
method: 'get',
params: query
})
}

12
src/api/otc/otcAppealOrder.js

@ -35,6 +35,16 @@ export function updateOtcAppealOrder(data) {
})
}
// 审核OTC申诉订单
export function appleOtcAppealOrder(data) {
return request({
url: '/otc/otcAppealOrder/audit',
method: 'put',
data: data
})
}
// 删除OTC申诉订单
export function delOtcAppealOrder(id) {
return request({
@ -50,4 +60,4 @@ export function exportOtcAppealOrder(query) {
method: 'get',
params: query
})
}
}

53
src/api/otc/otcCurrencyCoin.js

@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询法币信息列表
export function listOtcCurrencyCoin(query) {
return request({
url: '/otc/otcCurrencyCoin/list',
method: 'get',
params: query
})
}
// 查询法币信息详细
export function getOtcCurrencyCoin(coin) {
return request({
url: '/otc/otcCurrencyCoin/' + coin,
method: 'get'
})
}
// 新增法币信息
export function addOtcCurrencyCoin(data) {
return request({
url: '/otc/otcCurrencyCoin',
method: 'post',
data: data
})
}
// 修改法币信息
export function updateOtcCurrencyCoin(data) {
return request({
url: '/otc/otcCurrencyCoin',
method: 'put',
data: data
})
}
// 删除法币信息
export function delOtcCurrencyCoin(coin) {
return request({
url: '/otc/otcCurrencyCoin/' + coin,
method: 'delete'
})
}
// 导出法币信息
export function exportOtcCurrencyCoin(query) {
return request({
url: '/otc/otcCurrencyCoin/export',
method: 'get',
params: query
})
}

53
src/api/otc/otcStoreBond.js

@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询承兑商保证金记录列表
export function listOtcStoreBond(query) {
return request({
url: '/otc/otcStoreBond/list',
method: 'get',
params: query
})
}
// 查询承兑商保证金记录详细
export function getOtcStoreBond(id) {
return request({
url: '/otc/otcStoreBond/' + id,
method: 'get'
})
}
// 新增承兑商保证金记录
export function addOtcStoreBond(data) {
return request({
url: '/otc/otcStoreBond',
method: 'post',
data: data
})
}
// 修改承兑商保证金记录
export function updateOtcStoreBond(data) {
return request({
url: '/otc/otcStoreBond',
method: 'put',
data: data
})
}
// 删除承兑商保证金记录
export function delOtcStoreBond(id) {
return request({
url: '/otc/otcStoreBond/' + id,
method: 'delete'
})
}
// 导出承兑商保证金记录
export function exportOtcStoreBond(query) {
return request({
url: '/otc/otcStoreBond/export',
method: 'get',
params: query
})
}

2
src/api/system/user.js

@ -129,7 +129,7 @@ export function updateAuthRole(data) {
// 查询部门下拉树结构
export function deptTreeSelect() {
return request({
url: '/system/user/deptTree',
url: '/system/dept/treeselect',
method: 'get'
})
}

78
src/api/user/ad.js

@ -0,0 +1,78 @@
import request from '@/utils/request'
// 查询广告文本内容列表
export function listAd(query) {
return request({
url: '/user/ad/list',
method: 'get',
params: query
})
}
// 查询广告文本内容列表
export function listHelp(query) {
return request({
url: '/user/adHelp/list',
method: 'get',
params: query
})
}
// 查询广告文本内容详细
export function getAd(id) {
return request({
url: '/user/ad/' + id,
method: 'get'
})
}
// 新增广告文本内容
export function addAd(data) {
return request({
url: '/user/ad/add',
method: 'post',
data: data
})
}
// 修改广告文本内容
export function updateAd(data) {
return request({
url: '/user/ad/edit',
method: 'put',
data: data
})
}
// 修改广告文本内容
export function changeStatus(id,dataStatus) {
const data={
id,
dataStatus
}
return request({
url: '/user/ad/edit',
method: 'put',
data: data
})
}
// 删除广告文本内容
export function delAd(id) {
return request({
url: '/user/ad/' + id,
method: 'delete'
})
}
// 导出广告文本内容
export function exportAd(query) {
return request({
url: '/user/ad/export',
method: 'get',
params: query
})
}

63
src/api/user/position.js

@ -0,0 +1,63 @@
import request from '@/utils/request'
// 查询广告位列表
export function listAdPosition(query) {
return request({
url: '/user/position/list',
method: 'get',
params: query
})
}
// 查询广告位列表
export function listAdPositionAll(query) {
return request({
url: '/user/position/listAll',
method: 'get',
params: query
})
}
// 查询广告位详细
export function getAdPosition(id) {
return request({
url: '/user/position/' + id,
method: 'get'
})
}
// 新增广告位
export function addAdPosition(data) {
return request({
url: '/user/position',
method: 'post',
data: data
})
}
// 修改广告位
export function updateAdPosition(data) {
return request({
url: '/user/position',
method: 'put',
data: data
})
}
// 删除广告位
export function delAdPosition(id) {
return request({
url: '/user/position/' + id,
method: 'delete'
})
}
// 导出广告位
export function exportAdPosition(query) {
return request({
url: '/user/positionposition/export',
method: 'get',
params: query
})
}

53
src/api/user/walletAssetsRecord.js

@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询钱包资金流水记录列表
export function listWalletAssetsRecord(query) {
return request({
url: '/user/walletAssetsRecord/list',
method: 'get',
params: query
})
}
// 查询钱包资金流水记录详细
export function getWalletAssetsRecord(id) {
return request({
url: '/user/walletAssetsRecord/' + id,
method: 'get'
})
}
// 新增钱包资金流水记录
export function addWalletAssetsRecord(data) {
return request({
url: '/user/walletAssetsRecord',
method: 'post',
data: data
})
}
// 修改钱包资金流水记录
export function updateWalletAssetsRecord(data) {
return request({
url: '/user/walletAssetsRecord',
method: 'put',
data: data
})
}
// 删除钱包资金流水记录
export function delWalletAssetsRecord(id) {
return request({
url: '/user/walletAssetsRecord/' + id,
method: 'delete'
})
}
// 导出钱包资金流水记录
export function exportWalletAssetsRecord(query) {
return request({
url: '/user/walletAssetsRecord/export',
method: 'get',
params: query
})
}

369
src/views/otc/OtcStoreBondConfig/index.vue

@ -0,0 +1,369 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="质押币种" prop="pledgeCoin">
<el-input
v-model="queryParams.pledgeCoin"
placeholder="请输入质押币种"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="手续费类型" prop="feeType">-->
<!-- <el-select v-model="queryParams.feeType" placeholder="请选择手续费类型:" clearable size="small">-->
<!-- <el-option-->
<!-- v-for="dict in feeTypeOptions"-->
<!-- :key="dict.dictValue"-->
<!-- :label="dict.dictLabel"-->
<!-- :value="dict.dictValue"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="手续费" prop="fee">-->
<!-- <el-input-->
<!-- v-model="queryParams.fee"-->
<!-- placeholder="请输入手续费"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择数据状态Y有效N无效" clearable size="small">
<el-option
v-for="dict in statusOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="质押标识" prop="code">-->
<!-- <el-input-->
<!-- v-model="queryParams.code"-->
<!-- placeholder="请输入质押标识"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- @click="handleAdd"-->
<!-- v-hasPermi="['otc:OtcStoreBondConfig:add']"-->
<!-- >新增</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['otc:OtcStoreBondConfig:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['otc:OtcStoreBondConfig:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['otc:OtcStoreBondConfig:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="OtcStoreBondConfigList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键" align="center" prop="id" />
<el-table-column label="质押币种" align="center" prop="pledgeCoin" />
<el-table-column label="最低质押数量" align="center" prop="pledgeMinNum" />
<!-- <el-table-column label="手续费类型" align="center" prop="feeType" :formatter="feeTypeFormat" />-->
<!-- <el-table-column label="手续费" align="center" prop="fee" />-->
<el-table-column label="是否开启" align="center" prop="status" :formatter="statusFormat" />
<el-table-column label="质押标识" align="center" prop="code" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['otc:OtcStoreBondConfig:edit']"
>修改</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['otc:OtcStoreBondConfig:remove']"-->
<!-- >删除</el-button>-->
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改承兑商质押金费率配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="质押币种" prop="pledgeCoin">
<el-input v-model="form.pledgeCoin" placeholder="请输入质押币种" disabled="disabled" />
</el-form-item>
<el-form-item label="质押币种最低数量" prop="pledgeMinNum">
<el-input v-model="form.pledgeMinNum" placeholder="请输入质押币种最低数量" />
</el-form-item>
<!-- <el-form-item label="手续费类型" prop="feeType">-->
<!-- <el-select v-model="form.feeType" placeholder="请选择类型:pen:按笔,percentage:百分比">-->
<!-- <el-option-->
<!-- v-for="dict in feeTypeOptions"-->
<!-- :key="dict.dictValue"-->
<!-- :label="dict.dictLabel"-->
<!-- :value="dict.dictValue"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="手续费" prop="fee">-->
<!-- <el-input v-model="form.fee" placeholder="请输入手续费" />-->
<!-- </el-form-item>-->
<el-form-item label="是否开启">
<!-- <el-radio-group v-model="form.status">-->
<!-- <el-radio label="1">请选择字典生成</el-radio>-->
<!-- </el-radio-group>-->
<el-select v-model="form.status" placeholder="请选择">
<el-option
v-for="dict in statusOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="创建时间" prop="createTime">-->
<!-- <el-date-picker clearable size="small"-->
<!-- v-model="form.createTime"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="选择创建时间">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<el-form-item label="质押标识" prop="code">
<el-input v-model="form.code" placeholder="请输入质押标识" disabled="disabled"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listOtcStoreBondConfig, getOtcStoreBondConfig, delOtcStoreBondConfig, addOtcStoreBondConfig, updateOtcStoreBondConfig, exportOtcStoreBondConfig } from "@/api/otc/OtcStoreBondConfig";
export default {
name: "OtcStoreBondConfig",
components: {
},
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
OtcStoreBondConfigList: [],
feeTypeOptions: [],
statusOptions: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
pledgeCoin: null,
pledgeMinNum: null,
feeType: null,
fee: null,
status: null,
code: null
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
this.getDicts("sys_yes_no").then(response => {
this.statusOptions = response.data;
});
this.getDicts("fee_type").then(response => {
this.feeTypeOptions = response.data;
});
},
methods: {
/** 查询承兑商质押金费率配置列表 */
getList() {
this.loading = true;
listOtcStoreBondConfig(this.queryParams).then(response => {
this.OtcStoreBondConfigList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
feeTypeFormat(row, column) {
return this.selectDictLabel(this.feeTypeOptions, row.feeType);
},
statusFormat(row, column) {
return this.selectDictLabel(this.statusOptions, row.status);
},
//
reset() {
this.form = {
id: null,
pledgeCoin: null,
pledgeMinNum: null,
feeType: null,
fee: null,
status: "0",
createTime: null,
updateTime: null,
code: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加承兑商质押金费率配置";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getOtcStoreBondConfig(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改承兑商质押金费率配置";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateOtcStoreBondConfig(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addOtcStoreBondConfig(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$confirm('是否确认删除承兑商质押金费率配置编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delOtcStoreBondConfig(ids);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
})
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有承兑商质押金费率配置数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return exportOtcStoreBondConfig(queryParams);
}).then(response => {
this.download(response.msg);
})
}
}
};
</script>

64
src/views/otc/otcAppealConfig/index.vue

@ -68,8 +68,8 @@
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="流水编号" align="center" prop="id" />
<el-table-column label="申诉描述" align="center" prop="remark" />
<el-table-column label="申诉终端" align="center" prop="terminalSource" />
<el-table-column label="状态" align="center" prop="status" :formatter="statusFormat" />
<el-table-column label="申诉终端" align="center" prop="terminalSource" :formatter="terminalSourceFormat" />
<el-table-column label="状态" align="center" prop="status" :formatter="statusFormat" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -105,21 +105,37 @@
<el-input v-model="form.remark" placeholder="请输入申诉描述" />
</el-form-item>
<el-form-item label="申诉终端" prop="terminalSource">
<el-input v-model="form.terminalSource" placeholder="请输入申诉终端" />
</el-form-item>
<el-form-item label="是否启用YN">
<el-radio-group v-model="form.status">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
<!-- <el-input v-model="form.terminalSource" placeholder="请输入申诉终端" />-->
<el-select v-model="form.terminalSource" placeholder="请申诉终端" clearable size="small">
<el-option
v-for="dict in terminalSourceOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="添加时间" prop="createTime">
<el-date-picker clearable size="small"
v-model="form.createTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择添加时间">
</el-date-picker>
<el-form-item label="是否">
<!-- <el-radio-group v-model="form.status">-->
<!-- <el-radio label="1">请选择字典生成</el-radio>-->
<!-- </el-radio-group>-->
<el-select v-model="form.status" placeholder="请选择状态" clearable size="small">
<el-option
v-for="dict in statusOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="添加时间" prop="createTime">-->
<!-- <el-date-picker clearable size="small"-->
<!-- v-model="form.createTime"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="选择添加时间">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -152,7 +168,8 @@ export default {
total: 0,
//
otcAppealConfigList: [],
statusOptions: [],
statusOptions: [],
terminalSourceOptions: [],
//
title: "",
//
@ -176,6 +193,10 @@ export default {
this.getDicts("sys_yes_no").then(response => {
this.statusOptions = response.data;
});
this.getDicts("terminal_source").then(response => {
this.terminalSourceOptions = response.data;
});
},
methods: {
/** 查询申诉类型配置列表 */
@ -187,9 +208,10 @@ export default {
this.loading = false;
});
},
terminalSourceFormat(row, column) {
return this.selectDictLabel(this.terminalSourceOptions, row.terminalSource);
},
statusFormat(row, column) {
return this.selectDictLabel(this.statusOptions, row.status);
},
//
@ -203,7 +225,7 @@ export default {
id: null,
remark: null,
terminalSource: null,
status: "0",
status: "Y",
createTime: null
};
this.resetForm("form");
@ -246,13 +268,13 @@ export default {
if (valid) {
if (this.form.id != null) {
updateOtcAppealConfig(this.form).then(response => {
this.msgSuccess("修改成功");
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addOtcAppealConfig(this.form).then(response => {
this.msgSuccess("新增成功");
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});

258
src/views/otc/otcAppealOrder/index.vue

@ -61,17 +61,17 @@
v-hasPermi="['otc:otcAppealOrder:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['otc:otcAppealOrder:remove']"
>删除</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['otc:otcAppealOrder:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
@ -92,28 +92,49 @@
<el-table-column label="订单号" align="center" prop="otcOrderNo" />
<el-table-column label="本申诉订单号" align="center" prop="otcAppealNo" />
<el-table-column label="申诉备注" align="center" prop="appealRemark" />
<el-table-column label="申诉图片" align="center" prop="appealImgUrl" />
<!-- <el-table-column label="申诉图片" align="center" prop="appealImgUrl" >-->
<!-- <template slot-scope="scope">-->
<!-- <el-image v-if="scope.row.appealImgUrl!=null && scope.row.appealImgUrl!=''"-->
<!-- style="width: 120px; height: 120px"-->
<!-- :src="scope.row.appealImgUrl"-->
<!-- @click="previewImage(scope.row.appealImgUrl)"-->
<!-- :preview-src-list="srcList"-->
<!-- ></el-image>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="申诉状态" align="center" prop="appealStatus" :formatter="appealStatusFormat" />
<el-table-column label="申诉终端" align="center" prop="terminalSource" />
<el-table-column label="申诉方用户编号" align="center" prop="appealUserId" />
<el-table-column label="被申诉方编号" align="center" prop="beAppealUserId" />
<el-table-column label="申诉终端" align="center" prop="terminalSource" :formatter="terminalSourceFormat" />
<el-table-column label="申诉方用户" align="center" prop="appealUserName" />
<el-table-column label="被申诉方用户" align="center" prop="beAppealUserName" />
<el-table-column label="审核描述" align="center" prop="appealDesc" />
<el-table-column label="添加时间" align="center" prop="crateTime" width="180">
<template slot-scope="scope">
<span>{{parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
<el-button v-if="scope.row.appealImgUrl!=''"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['otc:otcAppealOrder:edit']"
>修改</el-button>
<el-button
>查询图片</el-button>
<el-button v-if="scope.row.appealStatus=='in_appeal'"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['otc:otcAppealOrder:remove']"
>删除</el-button>
icon="el-icon-edit"
@click="handleApple(scope.row)"
v-hasPermi="['otc:otcAppealOrder:edit']"
>审核处理</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['otc:otcAppealOrder:remove']"-->
<!-- >删除</el-button>-->
</template>
</el-table-column>
</el-table>
@ -127,59 +148,91 @@
/>
<!-- 添加或修改OTC申诉订单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="订单编号" prop="otcOrderId">
<el-input v-model="form.otcOrderId" placeholder="请输入订单编号" />
</el-form-item>
<el-form-item label="订单号" prop="otcOrderNo">
<el-input v-model="form.otcOrderNo" placeholder="请输入订单号" />
</el-form-item>
<el-form-item label="本申诉订单号" prop="otcAppealNo">
<el-input v-model="form.otcAppealNo" placeholder="请输入本申诉订单号" />
</el-form-item>
<el-form-item label="申诉备注" prop="appealRemark">
<el-input v-model="form.appealRemark" type="textarea" placeholder="请输入内容" />
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<!-- <el-form-item label="订单编号" prop="otcOrderId">-->
<!-- <el-input v-model="form.otcOrderId" placeholder="请输入订单编号" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="订单号" prop="otcOrderNo">-->
<!-- <el-input v-model="form.otcOrderNo" placeholder="请输入订单号" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="本申诉订单号" prop="otcAppealNo">-->
<!-- <el-input v-model="form.otcAppealNo" placeholder="请输入本申诉订单号" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="申诉备注" prop="appealRemark">-->
<!-- <el-input v-model="form.appealRemark" type="textarea" placeholder="请输入内容" />-->
<!-- </el-form-item>-->
<el-form-item label="申诉图片" prop="appealImgUrl" >
<img v-image-preview v-for="dict in form.listUrl" v-if="form.appealImgUrl" :src="dict"
class="avatar" style="width: 150px" height="150px" @click="previewImage(dict)" >
<!-- <el-input v-model="form.appealImgUrl" type="textarea" placeholder="请输入内容" />-->
</el-form-item>
<el-form-item label="申诉图片" prop="appealImgUrl">
<el-input v-model="form.appealImgUrl" type="textarea" placeholder="请输入内容" />
<!-- <el-form-item label="申诉状态">-->
<!-- <el-radio-group v-model="form.appealStatus">-->
<!-- <el-radio label="1">请选择字典生成</el-radio>-->
<!-- </el-radio-group>-->
<!-- <el-select v-model="form.appealStatus" placeholder="请选择申诉状态" clearable size="small">-->
<!-- <el-option-->
<!-- v-for="dict in appealStatusOptions"-->
<!-- :key="dict.dictValue"-->
<!-- :label="dict.dictLabel"-->
<!-- :value="dict.dictValue"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="创建时间" prop="createTime">-->
<!-- <el-date-picker clearable size="small"-->
<!-- v-model="form.createTime"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="选择创建时间">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="申诉终端" prop="terminalSource">-->
<!-- <el-input v-model="form.terminalSource" placeholder="请输入申诉终端" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="申诉方用户编号" prop="appealUserId">-->
<!-- <el-input v-model="form.appealUserId" placeholder="请输入申诉方用户编号" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="被申诉方编号" prop="beAppealUserId">-->
<!-- <el-input v-model="form.beAppealUserId" placeholder="请输入被申诉方编号" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="审核描述" prop="appealDesc">-->
<!-- <el-input v-model="form.appealDesc" type="textarea" placeholder="请输入内容" />-->
<!-- </el-form-item>-->
</el-form>
<div slot="footer" class="dialog-footer">
<!-- <el-button type="primary" @click="submitForm"> </el-button>-->
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 申诉OTC申诉订单对话框 -->
<el-dialog :title="title" :visible.sync="openApple" width="500px" append-to-body>
<el-form ref="form" :model="formApple" :rules="rulesApple" label-width="80px">
<el-form-item label="订单编号" prop="otcOrderId" hidden="hidden">
<el-input v-model="formApple.otcOrderId" placeholder="请输入订单编号" />
</el-form-item>
<el-form-item label="申诉状态">
<el-radio-group v-model="form.appealStatus">
<el-radio label="1">请选择字典生成</el-radio>
<el-radio-group v-model="formApple.appealStatus">
<el-radio label="success_appeal">申诉成功</el-radio>
<el-radio label="fail_appeal">申诉失败</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker clearable size="small"
v-model="form.createTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择创建时间">
</el-date-picker>
</el-form-item>
<el-form-item label="申诉终端" prop="terminalSource">
<el-input v-model="form.terminalSource" placeholder="请输入申诉终端" />
</el-form-item>
<el-form-item label="申诉方用户编号" prop="appealUserId">
<el-input v-model="form.appealUserId" placeholder="请输入申诉方用户编号" />
</el-form-item>
<el-form-item label="被申诉方编号" prop="beAppealUserId">
<el-input v-model="form.beAppealUserId" placeholder="请输入被申诉方编号" />
</el-form-item>
<el-form-item label="审核描述" prop="appealDesc">
<el-input v-model="form.appealDesc" type="textarea" placeholder="请输入内容" />
<el-input v-model="formApple.appealDesc" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
<el-button type="primary" @click="submitFormApple"> </el-button>
<el-button @click="cancelApple"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listOtcAppealOrder, getOtcAppealOrder, delOtcAppealOrder, addOtcAppealOrder, updateOtcAppealOrder, exportOtcAppealOrder } from "@/api/otc/otcAppealOrder";
import { listOtcAppealOrder, getOtcAppealOrder, delOtcAppealOrder, addOtcAppealOrder, updateOtcAppealOrder, exportOtcAppealOrder,appleOtcAppealOrder } from "@/api/otc/otcAppealOrder";
export default {
name: "OtcAppealOrder",
@ -202,10 +255,13 @@ export default {
// OTC
otcAppealOrderList: [],
appealStatusOptions: [],
terminalSourceOptions:[],
//
title: "",
titleApple: "",
//
open: false,
openApple:false,
//
queryParams: {
pageNum: 1,
@ -223,9 +279,21 @@ export default {
},
//
form: {},
//
formApple:{},
rules: {
}
},
//
rulesApple: {
appealStatus: [
{ required: true, message: "请选择审核状态", trigger: "blur" }
],
appealDesc: [
{ required: true, message: "审核描述不能为空", trigger: "blur" }
],
},
//
srcList: ["http://118.25.187.239:9099/img/adImg/557097620301025280.jpg"],
};
},
created() {
@ -233,9 +301,15 @@ export default {
this.getDicts("appeal_status").then(response => {
this.appealStatusOptions = response.data;
});
this.getDicts("terminal_source").then(response => {
this.terminalSourceOptions = response.data;
});
},
methods: {
//
previewImage(abUrl) {
this.srcList[0] = abUrl;
},
/** 查询OTC申诉订单列表 */
getList() {
this.loading = true;
@ -245,9 +319,10 @@ export default {
this.loading = false;
});
},
terminalSourceFormat(row, column) {
return this.selectDictLabel(this.terminalSourceOptions, row.terminalSource);
},
appealStatusFormat(row, column) {
return this.selectDictLabel(this.appealStatusOptions, row.appealStatus);
},
//
@ -255,6 +330,11 @@ export default {
this.open = false;
this.reset();
},
//
cancelApple() {
this.openApple = false;
this.resetApple();
},
//
reset() {
this.form = {
@ -270,10 +350,30 @@ export default {
terminalSource: null,
appealUserId: null,
beAppealUserId: null,
appealDesc: null
appealDesc: null,
listUrl:[]
};
this.resetForm("form");
},
//
resetApple() {
this.formApple = {
id: null,
otcOrderId: null,
otcOrderNo: null,
otcAppealNo: null,
appealRemark: null,
appealImgUrl: null,
appealStatus: "0",
createTime: null,
updateTime: null,
terminalSource: null,
appealUserId: null,
beAppealUserId: null,
appealDesc: null
};
this.resetForm("formApple");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
@ -306,19 +406,29 @@ export default {
this.title = "修改OTC申诉订单";
});
},
/** 申诉按钮操作 */
handleApple(row) {
this.resetApple();
const id = row.id || this.ids
getOtcAppealOrder(id).then(response => {
this.formApple = response.data;
this.openApple = true;
this.titleApple = "OTC申诉订单处理";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateOtcAppealOrder(this.form).then(response => {
this.msgSuccess("修改成功");
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addOtcAppealOrder(this.form).then(response => {
this.msgSuccess("新增成功");
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
@ -326,6 +436,18 @@ export default {
}
});
},
/** 审核提交 */
submitFormApple() {
this.$refs["form"].validate(valid => {
if (valid) {
appleOtcAppealOrder(this.formApple).then(response => {
this.$modal.msgSuccess("修改成功");
this.openApple = false;
this.getList();
});
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;

96
src/views/otc/otcCoin/index.vue

@ -39,28 +39,28 @@
v-hasPermi="['otc:otcCoin:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['otc:otcCoin:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['otc:otcCoin:remove']"
>删除</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['otc:otcCoin:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['otc:otcCoin:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
@ -78,7 +78,7 @@
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="币种" align="center" prop="coinName" />
<el-table-column label="类型" align="center" prop="feeType" :formatter="feeTypeFormat" />
<el-table-column label="交易手续费率" align="center" prop="feeRate" />
<el-table-column label="手续费率" align="center" prop="feeRate" />
<el-table-column label="全称" align="center" prop="nameEn" />
<el-table-column label="中文名称" align="center" prop="nameCn" />
<el-table-column label="卖出广告最低发布数量" align="center" prop="sellMinAmount" />
@ -96,13 +96,13 @@
@click="handleUpdate(scope.row)"
v-hasPermi="['otc:otcCoin:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['otc:otcCoin:remove']"
>删除</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['otc:otcCoin:remove']"-->
<!-- >删除</el-button>-->
</template>
</el-table-column>
</el-table>
@ -116,14 +116,20 @@
/>
<!-- 添加或修改OTC币种对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-dialog :title="title" :visible.sync="open" width="900px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="130px">
<el-form-item label="币种" prop="coinName">
<el-input v-model="form.coinName" placeholder="请输入币种" />
</el-form-item>
<el-form-item label="类型:pen:按笔,percentage:百分比" prop="feeType">
<el-select v-model="form.feeType" placeholder="请选择类型:pen:按笔,percentage:百分比">
<el-option label="请选择字典生成" value="" />
<el-form-item label="手续费类型" prop="feeType">
<el-select v-model="form.feeType" placeholder="请选择类型">
<!-- <el-option label="请选择字典生成" value="" />-->
<el-option
v-for="dict in feeTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="交易手续费率" prop="feeRate">
@ -148,9 +154,17 @@
<el-input v-model="form.sort" placeholder="请输入排序" />
</el-form-item>
<el-form-item label="是否启用">
<el-radio-group v-model="form.status">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
<!-- <el-radio-group v-model="form.status">-->
<!-- <el-radio label="1">请选择字典生成</el-radio>-->
<!-- </el-radio-group>-->
<el-select v-model="form.status" placeholder="是否启用">
<el-option
v-for="dict in statusOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="精度" prop="accuracy">
<el-input v-model="form.accuracy" placeholder="请输入精度" />
@ -187,8 +201,8 @@ export default {
total: 0,
// OTC
otcCoinList: [],
statusOptions: [],
feeTypeOptions: [],
statusOptions: [],
feeTypeOptions: [],
//
title: "",
@ -276,7 +290,7 @@ export default {
buyMinAmount: null,
buyMaxAmount: null,
sort: null,
status: "0",
status: "Y",
accuracy: null
};
this.resetForm("form");

339
src/views/otc/otcCurrencyCoin/index.vue

@ -0,0 +1,339 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="法币名称" prop="fullName">
<el-input
v-model="queryParams.currencyCoin"
placeholder="请输入法币名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="排序" prop="sort">-->
<!-- <el-input-->
<!-- v-model="queryParams.sort"-->
<!-- placeholder="请输入排序"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="是否默认 Y N" prop="isDefault">-->
<!-- <el-input-->
<!-- v-model="queryParams.isDefault"-->
<!-- placeholder="请输入是否默认 Y N"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['otc:otcCurrencyCoin:add']"
>新增</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['otc:otcCurrencyCoin:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['otc:otcCurrencyCoin:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['otc:otcCurrencyCoin:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="otcCurrencyCoinList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="法币简称" align="center" prop="currencyCoin" />
<el-table-column label="法币全称" align="center" prop="fullName" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="排序" align="center" prop="sort" />
<el-table-column label="是否默认" align="center" prop="isDefault" :formatter="statusFormat" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['otc:otcCurrencyCoin:edit']"
>修改</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['otc:otcCurrencyCoin:remove']"-->
<!-- >删除</el-button>-->
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改法币信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="法币名称" prop="fullName">
<el-input v-model="form.currencyCoin" placeholder="请输入法币名称" />
</el-form-item>
<el-form-item label="法币全称" prop="fullName">
<el-input v-model="form.fullName" placeholder="请输入法币全称" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input v-model="form.sort" placeholder="请输入排序" />
</el-form-item>
<el-form-item label="是否默认" prop="isDefault">
<!-- <el-input v-model="form.isDefault" placeholder="请输入是否默认 Y N" />-->
<el-radio-group v-model="form.isDefault">-->
<el-radio
v-for="dict in statusOptions"
:key="dict.dictValue"
:label="dict.dictValue"
>{{dict.dictLabel}}</el-radio>
</el-radio-group>
</el-form-item>
<!-- <el-form-item label="添加时间" prop="createTime">-->
<!-- <el-date-picker clearable size="small"-->
<!-- v-model="form.createTime"-->
<!-- type="dateTime"-->
<!-- value-format="yyyy-MM-dd hh:mm:ss"-->
<!-- placeholder="选择添加时间">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listOtcCurrencyCoin, getOtcCurrencyCoin, delOtcCurrencyCoin, addOtcCurrencyCoin, updateOtcCurrencyCoin, exportOtcCurrencyCoin } from "@/api/otc/otcCurrencyCoin";
export default {
name: "OtcCurrencyCoin",
components: {
},
data() {
return {
operate:'add',
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
otcCurrencyCoinList: [],
statusOptions: [],
//
title: "",
//
open: false,
//
queryParams: {
currencyCoin:null,
pageNum: 1,
pageSize: 10,
fullName: null,
sort: null,
isDefault: null,
},
//
form: {},
//
rules: {
currencyCoin: [
{ required: true, message: "币种不能为空", trigger: "blur" }
],
fullName: [
{ required: true, message: "全称不能为空", trigger: "blur" }
],
remark: [
{ required: true, message: "备注不能为空", trigger: "blur" }
],
sort: [
{ required: true, message: "排序不能为空", trigger: "blur" }
],
isDefault: [
{ required: true, message: "是否默认不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
this.getDicts("sys_yes_no").then(response => {
this.statusOptions = response.data;
});
},
methods: {
/** 查询法币信息列表 */
getList() {
this.loading = true;
listOtcCurrencyCoin(this.queryParams).then(response => {
this.otcCurrencyCoinList = response.rows;
this.total = response.total;
this.loading = false;
});
},
statusFormat(row, column) {
return this.selectDictLabel(this.statusOptions, row.isDefault);
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
currencyCoin: null,
fullName: null,
remark: null,
sort: null,
isDefault: 'N',
createTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.currencyCoin)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.operate='add';
this.reset();
this.open = true;
this.title = "添加法币信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.operate='update';
this.reset();
const coin = row.currencyCoin
getOtcCurrencyCoin(coin).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改法币信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.operate == 'update'){
updateOtcCurrencyCoin(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addOtcCurrencyCoin(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const coins = row.currencyCoin;
this.$confirm('是否确认删除法币信息编号为"' + coins + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delOtcCurrencyCoin(coins);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
})
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有法币信息数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return exportOtcCurrencyCoin(queryParams);
}).then(response => {
this.download(response.msg);
})
}
}
};
</script>

300
src/views/otc/otcOrder/index.vue

@ -13,8 +13,8 @@
<el-form-item label="交易类型" prop="appealStatus">
<el-select v-model="queryParams.tradeTypeStatus" placeholder="请选择交易类型" clearable size="small">
<el-form-item label="交易类型" prop="tradeType">
<el-select v-model="queryParams.tradeType" placeholder="请选择交易类型" clearable size="small">
<el-option
v-for="dict in tradeTypeStatusOptions"
:key="dict.dictValue"
@ -25,19 +25,19 @@
</el-form-item>
<el-form-item label="类型" prop="feeType">
<el-select v-model="queryParams.feeType" placeholder="请选择类型" clearable size="small">
<el-option
v-for="dict in feeTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="类型" prop="feeType">-->
<!-- <el-select v-model="queryParams.feeType" placeholder="请选择类型" clearable size="small">-->
<!-- <el-option-->
<!-- v-for="dict in feeTypeOptions"-->
<!-- :key="dict.dictValue"-->
<!-- :label="dict.dictLabel"-->
<!-- :value="dict.dictValue"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="订单状态" prop="orderStatus">
<el-select v-model="queryParams.feeTypeStatus" placeholder="请选择订单状态" clearable size="small">
<el-select v-model="queryParams.orderStatus" placeholder="请选择订单状态" clearable size="small">
<el-option
v-for="dict in orderStatusOptions"
:key="dict.dictValue"
@ -56,38 +56,38 @@
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['otc:otcOrder:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['otc:otcOrder:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['otc:otcOrder:remove']"
>删除</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- @click="handleAdd"-->
<!-- v-hasPermi="['otc:otcOrder:add']"-->
<!-- >新增</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['otc:otcOrder:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['otc:otcOrder:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
@ -103,41 +103,41 @@
<el-table v-loading="loading" :data="otcOrderList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="流水编号" align="center" prop="id" />
<!-- <el-table-column label="流水编号" align="center" prop="id" />-->
<el-table-column label="订单编号" align="center" prop="orderNo" />
<el-table-column label="总订单编号" align="center" prop="storeOrder" />
<el-table-column label="总订单id" align="center" prop="storeOrder" />
<el-table-column label="交易类型" align="center" prop="tradeType" :formatter="tradeTypeFormat" />
<el-table-column label="商家编号" align="center" prop="storeId" />
<el-table-column label="用户编号" align="center" prop="userId" />
<el-table-column label="商家昵称" align="center" prop="storeName" />
<el-table-column label="用户名称" align="center" prop="userName" />
<el-table-column label="币种" align="center" prop="coin" />
<el-table-column label="买入或卖出数量" align="center" prop="realityCoinNum" />
<el-table-column label="实际买入或者卖出的法币金额" align="center" prop="realityLegalNums" />
<el-table-column label="结算得到数量" align="center" prop="realitySettleCoinNums" />
<el-table-column label="交易数量" align="center" prop="realityCoinNum" />
<el-table-column label="实际数量" align="center" prop="realitySettleCoinNums" />
<el-table-column label="法币金额" align="center" prop="realityLegalNums" />
<el-table-column label="法币价格" align="center" prop="legalCurrency" />
<el-table-column label="类型" align="center" prop="feeType" :formatter="feeTypeFormat"/>
<!-- <el-table-column label="手续费类型" align="center" prop="feeType" :formatter="feeTypeFormat"/>-->
<el-table-column label="手续费" align="center" prop="fee" />
<el-table-column label="订单状态" align="center" prop="orderStatus" :formatter="orderStatusFormat" />
<el-table-column label="支付方式" align="center" prop="paymentType" />
<el-table-column label="付款时间倒计时" align="center" prop="paymentEndTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.paymentEndTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="确定放行时间" align="center" prop="releaseTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.releaseTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="支付时间" align="center" prop="paymentTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.paymentTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="完成时间" align="center" prop="closeTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.closeTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="付款时间倒计时" align="center" prop="paymentEndTime" width="180">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ parseTime(scope.row.paymentEndTime, '{y}-{m}-{d}') }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="确定放行时间" align="center" prop="releaseTime" width="180">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ parseTime(scope.row.releaseTime) }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="支付时间" align="center" prop="paymentTime" width="180">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ parseTime(scope.row.paymentTime) }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="完成时间" align="center" prop="closeTime" width="180">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ parseTime(scope.row.closeTime) }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="收款人" align="center" prop="payee" />
<el-table-column label="收款银行" align="center" prop="collectionBank" />
<el-table-column label="收款账号" align="center" prop="collectionAccount" />
@ -146,6 +146,11 @@
<el-table-column label="申诉订单编号" align="center" prop="appealOrderId" />
<el-table-column label="申诉状态" align="center" prop="appealStatus" />
<el-table-column label="取消类型" align="center" prop="cancelType" /> -->
<el-table-column label="添加时间" align="center" prop="crateTime" width="180">
<template slot-scope="scope">
<span>{{parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -154,14 +159,14 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['otc:otcOrder:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['otc:otcOrder:remove']"
>删除</el-button>
>详情</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['otc:otcOrder:remove']"-->
<!-- >删除</el-button>-->
</template>
</el-table-column>
</el-table>
@ -175,8 +180,8 @@
/>
<!-- 添加或修改用户otc订单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="订单编号" prop="orderNo">
<el-input v-model="form.orderNo" placeholder="请输入订单编号" />
</el-form-item>
@ -185,77 +190,95 @@
</el-form-item>
<el-form-item label="交易类型" prop="tradeType">
<el-select v-model="form.tradeType" placeholder="请选择交易类型">
<el-option label="请选择字典生成" value="" />
<el-option
v-for="dict in tradeTypeStatusOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="商家编号" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入商家编号" />
<el-input v-model="form.storeName" placeholder="请输入商家编号" />
</el-form-item>
<el-form-item label="用户编号" prop="userId">
<el-input v-model="form.userId" placeholder="请输入用户编号" />
<el-input v-model="form.userName" placeholder="请输入用户编号" />
</el-form-item>
<el-form-item label="币种" prop="coin">
<el-input v-model="form.coin" placeholder="请输入币种" />
</el-form-item>
<el-form-item label="买入或卖出数量" prop="realityCoinNum">
<el-input v-model="form.realityCoinNum" placeholder="请输入买入或卖出数量" />
</el-form-item>
<el-form-item label="实际买入或者卖出的法币金额" prop="realityLegalNums">
<el-input v-model="form.realityLegalNums" placeholder="请输入实际买入或者卖出的法币金额" />
<el-form-item label="交易数量" prop="realityCoinNum">
<el-input v-model="form.realityCoinNum" placeholder="请输入交易数量" />
</el-form-item>
<el-form-item label="结算得到数量" prop="realitySettleCoinNums">
<el-form-item label="得到数量" prop="realitySettleCoinNums">
<el-input v-model="form.realitySettleCoinNums" placeholder="请输入结算得到数量" />
</el-form-item>
<el-form-item label="法币金额" prop="realityLegalNums">
<el-input v-model="form.realityLegalNums" placeholder="请输入法币金额" />
</el-form-item>
<el-form-item label="法币价格" prop="legalCurrency">
<el-input v-model="form.legalCurrency" placeholder="请输入法币价格" />
</el-form-item>
<el-form-item label="类型:pen:按笔,percentage:百分比" prop="feeType">
<el-select v-model="form.feeType" placeholder="请选择类型:pen:按笔,percentage:百分比">
<el-option label="请选择字典生成" value="" />
<el-form-item label="手续费类型" prop="feeType">
<el-select v-model="form.feeType" placeholder="请选择类型">
<el-option
v-for="dict in feeTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="手续费" prop="fee">
<el-input v-model="form.fee" placeholder="请输入手续费" />
</el-form-item>
<el-form-item label="订单状态(挂单中 pending_order、已锁住is_lock、已完成 close、已取消 cancel、待放行released,申诉中in_appeal)">
<el-radio-group v-model="form.orderStatus">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
<el-form-item label="订单状态">
<!-- <el-radio-group v-model="form.orderStatus">-->
<!-- <el-radio label="1">请选择字典生成</el-radio>-->
<!-- </el-radio-group>-->
<el-select v-model="form.orderStatus" placeholder="请选择订单状态">
<el-option
v-for="dict in orderStatusOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="支付方式" prop="paymentType">
<el-select v-model="form.paymentType" placeholder="请选择支付方式">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="付款时间倒计时" prop="paymentEndTime">
<el-date-picker clearable size="small"
v-model="form.paymentEndTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择付款时间倒计时">
</el-date-picker>
</el-form-item>
<el-form-item label="确定放行时间" prop="releaseTime">
<el-date-picker clearable size="small"
v-model="form.releaseTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择确定放行时间">
</el-date-picker>
</el-form-item>
<!-- <el-form-item label="付款结束时间" prop="paymentEndTime">-->
<!-- <el-date-picker clearable size="small"-->
<!-- v-model="form.paymentEndTime"-->
<!-- type="dateTime"-->
<!-- value-format="yyyy-MM-dd hh:mm:ss"-->
<!-- placeholder="选择付款结束时间">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="确定放行时间" prop="releaseTime">-->
<!-- <el-date-picker clearable size="small"-->
<!-- v-model="form.releaseTime"-->
<!-- type="dateTime"-->
<!-- value-format="yyyy-MM-dd hh:mm:ss"-->
<!-- placeholder="选择确定放行时间">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<el-form-item label="支付时间" prop="paymentTime">
<el-date-picker clearable size="small"
v-model="form.paymentTime"
type="date"
value-format="yyyy-MM-dd"
type="dateTime"
value-format="yyyy-MM-dd hh:mm:ss"
placeholder="选择支付时间">
</el-date-picker>
</el-form-item>
<el-form-item label="完成时间" prop="closeTime">
<el-date-picker clearable size="small"
v-model="form.closeTime"
type="date"
value-format="yyyy-MM-dd"
type="dateTime"
value-format="yyyy-MM-dd hh:mm:ss"
placeholder="选择完成时间">
</el-date-picker>
</el-form-item>
@ -278,18 +301,32 @@
<el-input v-model="form.appealOrderId" placeholder="请输入申诉订单编号" />
</el-form-item>
<el-form-item label="申诉状态">
<el-radio-group v-model="form.appealStatus">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
<!-- <el-radio-group v-model="form.appealStatus">-->
<!-- <el-radio label="1">请选择字典生成</el-radio>-->
<!-- </el-radio-group>-->
<el-select v-model="form.appealStatus" placeholder="请选择订单状态">
<el-option
v-for="dict in appealStatusOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="取消类型" prop="cancelType">
<el-select v-model="form.cancelType" placeholder="请选择取消类型">
<el-option label="请选择字典生成" value="" />
<!-- <el-option label="请选择字典生成" value="" />-->
<el-option
v-for="dict in cancelTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<!-- <el-button type="primary" @click="submitForm"> </el-button>-->
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
@ -320,8 +357,11 @@ export default {
// otc
otcOrderList: [],
feeTypeOptions: [],
orderStatusOptions: [],
tradeTypeStatusOptions: [],
orderStatusOptions: [],
tradeTypeStatusOptions: [],
//
appealStatusOptions:[],
cancelTypeOptions:[],
//
title: "",
//
@ -388,6 +428,12 @@ export default {
this.getDicts("fee_type").then(response => {
this.feeTypeOptions = response.data;
});
this.getDicts("appeal_status").then(response => {
this.appealStatusOptions = response.data;
});
this.getDicts("cancel_type").then(response => {
this.cancelTypeOptions = response.data;
});
},
@ -481,7 +527,7 @@ export default {
getOtcOrder(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改用户otc订单";
this.title = "查询用户otc订单";
});
},
/** 提交按钮 */

215
src/views/otc/otcPaymentType/index.vue

@ -1,25 +1,34 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="法币名称" prop="coinName">
<el-input
v-model="queryParams.coinName"
placeholder="请输入法币名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="收款类型" prop="paymentType">
<el-select v-model="queryParams.paymentType" placeholder="请选择收款类型" clearable size="small">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">-->
<!-- <el-form-item label="收款类型" prop="paymentType">-->
<!-- <el-select v-model="queryParams.paymentType" placeholder="请选择收款类型" clearable size="small">-->
<!-- <el-option label="请选择字典生成" value="" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="排序" prop="sort">-->
<!-- <el-input-->
<!-- v-model="queryParams.sort"-->
<!-- placeholder="请输入排序"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="图标" prop="icon">-->
<!-- <el-input-->
<!-- v-model="queryParams.icon"-->
<!-- placeholder="请输入图标"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item>-->
<!-- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>-->
<!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
@ -32,28 +41,28 @@
v-hasPermi="['otc:otcPaymentType:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['otc:otcPaymentType:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['otc:otcPaymentType:remove']"
>删除</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['otc:otcPaymentType:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['otc:otcPaymentType:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
@ -70,8 +79,19 @@
<el-table v-loading="loading" :data="otcPaymentTypeList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="" align="center" prop="id" />
<el-table-column label="法币名称" align="center" prop="coinName" />
<el-table-column label="收款类型" align="center" prop="paymentType" />
<el-table-column label="描述" align="center" prop="remark" />
<el-table-column label="排序" align="center" prop="sort" />
<el-table-column label="图标" align="center" prop="icon" >
<template slot-scope="scope">
<el-image
style="width: 120px; height: 120px"
:src="scope.row.icon"
@click="previewImage(scope.row.icon)"
:preview-src-list="srcList"
></el-image>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -81,17 +101,17 @@
@click="handleUpdate(scope.row)"
v-hasPermi="['otc:otcPaymentType:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['otc:otcPaymentType:remove']"
>删除</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['otc:otcPaymentType:remove']"-->
<!-- >删除</el-button>-->
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
@ -103,21 +123,39 @@
<!-- 添加或修改otc收款类型对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="法币名称" prop="coinName">
<el-input v-model="form.coinName" placeholder="请输入法币名称" />
</el-form-item>
<el-form-item label="收款类型" prop="paymentType">
<el-select v-model="form.paymentType" placeholder="请选择收款类型">
<el-option label="请选择字典生成" value="" />
</el-select>
<el-input v-model="form.paymentType" placeholder="请选择收款类型" />
<!-- <el-select v-model="form.paymentType" placeholder="请选择收款类型">-->
<!-- <el-option label="请选择字典生成" value="" />-->
<!-- </el-select>-->
</el-form-item>
<!-- <el-form-item label="创建时间" prop="createTime">-->
<!-- <el-date-picker clearable size="small"-->
<!-- v-model="form.createTime"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="选择创建时间">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<el-form-item label="描述" prop="remark">
<el-input v-model="form.remark" placeholder="请输入描述" />
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input v-model="form.sort" placeholder="请输入排序" />
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker clearable size="small"
v-model="form.createTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择创建时间">
</el-date-picker>
<el-form-item label="图标" prop="icon">
<!-- <el-input v-model="form.icon" placeholder="请输入图标" />-->
<el-upload
class="avatar-uploader"
:show-file-list="false"
:action="uploadUrl()"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
:data="{path:'otc'}"
>
<img v-if="form.icon" :src="form.icon" class="avatar" style="width: 150px" height="150px">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -159,8 +197,9 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
coinName: null,
paymentType: null,
sort: null,
icon: null
},
//
form: {},
@ -169,7 +208,12 @@ export default {
paymentType: [
{ required: true, message: "收款类型不能为空", trigger: "change" }
],
}
sort: [
{ required: true, message: "排序不能为空", trigger: "blur" }
],
},
//
srcList: ["http://118.25.187.239:9099/img/adImg/557097620301025280.jpg"],
};
},
created() {
@ -185,6 +229,14 @@ export default {
this.loading = false;
});
},
uploadUrl(){
//
return process.env.VUE_APP_BASE_API+"/system/ftpfile/uploadFile"
},
//
previewImage(abUrl) {
this.srcList[0] = abUrl;
},
//
cancel() {
this.open = false;
@ -194,10 +246,12 @@ export default {
reset() {
this.form = {
id: null,
coinName: null,
paymentType: null,
createTime: null,
updateTime: null
updateTime: null,
remark: null,
sort: null,
icon: null
};
this.resetForm("form");
},
@ -239,13 +293,13 @@ export default {
if (valid) {
if (this.form.id != null) {
updateOtcPaymentType(this.form).then(response => {
this.msgSuccess("修改成功");
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addOtcPaymentType(this.form).then(response => {
this.msgSuccess("新增成功");
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
@ -264,7 +318,7 @@ export default {
return delOtcPaymentType(ids);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
this.$modal.msgSuccess("删除成功");
})
},
/** 导出按钮操作 */
@ -279,7 +333,24 @@ export default {
}).then(response => {
this.download(response.msg);
})
}
},
//
handleAvatarSuccess(res) {
console.log(res);
this.form.icon = res.data.url;
},
beforeAvatarUpload(file) {
const isJPG = file.type === 'image/jpeg' || file.type === 'image/png';
const isLt2M = file.size / 1024 / 1024 < 20;
if (!isJPG) {
this.$modal.$message.error('上传头像图片只能是 JPG或png 格式!');
}
if (!isLt2M) {
this.$modal.$message.error('上传头像图片大小不能超过 20MB!');
}
return isJPG && isLt2M;
},
}
};
</script>

340
src/views/otc/otcStoreBond/index.vue

@ -0,0 +1,340 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="申请流水号" prop="witNo">
<el-input
v-model="queryParams.witNo"
placeholder="请输入申请流水号"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="商户编号" prop="storeId">
<el-input
v-model="queryParams.storeId"
placeholder="请输入商户编号"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="质押币种" prop="pledgeCoin">
<el-input
v-model="queryParams.pledgeCoin"
placeholder="请输入质押币种"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="质押币种个数" prop="pledgeCoinNum">
<el-input
v-model="queryParams.pledgeCoinNum"
placeholder="请输入质押币种个数"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="开启交易Y关闭交易N" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择开启交易Y关闭交易N" clearable size="small">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="状态(已申请 applied、申请处理中process、申请完成complete、申请失败fail)" prop="applyStatus">
<el-select v-model="queryParams.applyStatus" placeholder="请选择状态(已申请 applied、申请处理中process、申请完成complete、申请失败fail)" clearable size="small">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['otc:otcStoreBond:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['otc:otcStoreBond:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['otc:otcStoreBond:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['otc:otcStoreBond:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="otcStoreBondList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键" align="center" prop="id" />
<el-table-column label="申请流水号" align="center" prop="witNo" />
<el-table-column label="商户编号" align="center" prop="storeId" />
<el-table-column label="质押币种" align="center" prop="pledgeCoin" />
<el-table-column label="质押币种个数" align="center" prop="pledgeCoinNum" />
<el-table-column label="开启交易Y关闭交易N" align="center" prop="status" />
<el-table-column label="状态(已申请 applied、申请处理中process、申请完成complete、申请失败fail)" align="center" prop="applyStatus" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['otc:otcStoreBond:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['otc:otcStoreBond:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改承兑商保证金记录对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="申请流水号" prop="witNo">
<el-input v-model="form.witNo" placeholder="请输入申请流水号" />
</el-form-item>
<el-form-item label="商户编号" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入商户编号" />
</el-form-item>
<el-form-item label="质押币种" prop="pledgeCoin">
<el-input v-model="form.pledgeCoin" placeholder="请输入质押币种" />
</el-form-item>
<el-form-item label="质押币种个数" prop="pledgeCoinNum">
<el-input v-model="form.pledgeCoinNum" placeholder="请输入质押币种个数" />
</el-form-item>
<el-form-item label="开启交易Y关闭交易N">
<el-radio-group v-model="form.status">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="状态(已申请 applied、申请处理中process、申请完成complete、申请失败fail)">
<el-radio-group v-model="form.applyStatus">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker clearable size="small"
v-model="form.createTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择创建时间">
</el-date-picker>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listOtcStoreBond, getOtcStoreBond, delOtcStoreBond, addOtcStoreBond, updateOtcStoreBond, exportOtcStoreBond } from "@/api/otc/otcStoreBond";
export default {
name: "OtcStoreBond",
components: {
},
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
otcStoreBondList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
witNo: null,
storeId: null,
pledgeCoin: null,
pledgeCoinNum: null,
status: null,
applyStatus: null,
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询承兑商保证金记录列表 */
getList() {
this.loading = true;
listOtcStoreBond(this.queryParams).then(response => {
this.otcStoreBondList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
witNo: null,
storeId: null,
pledgeCoin: null,
pledgeCoinNum: null,
status: "0",
updateTime: null,
applyStatus: "0",
createTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加承兑商保证金记录";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getOtcStoreBond(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改承兑商保证金记录";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateOtcStoreBond(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addOtcStoreBond(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$confirm('是否确认删除承兑商保证金记录编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delOtcStoreBond(ids);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
})
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有承兑商保证金记录数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return exportOtcStoreBond(queryParams);
}).then(response => {
this.download(response.msg);
})
}
}
};
</script>

249
src/views/otc/otcStoreOrder/index.vue

@ -11,7 +11,7 @@
/>
</el-form-item>
<el-form-item label="交易类型" prop="appealStatus">
<el-select v-model="queryParams.tradeTypeStatus" placeholder="请选择交易类型" clearable size="small">
<el-select v-model="queryParams.tradeType" placeholder="请选择交易类型" clearable size="small">
<el-option
v-for="dict in tradeTypeStatusOptions"
:key="dict.dictValue"
@ -21,10 +21,10 @@
</el-select>
</el-form-item>
<el-form-item label="商家编号" prop="storeId">
<el-form-item label="商家昵称" prop="storeId">
<el-input
v-model="queryParams.storeId"
placeholder="请输入商家编号"
v-model="queryParams.storeName"
placeholder="请输入商家昵称"
clearable
size="small"
@keyup.enter.native="handleQuery"
@ -41,28 +41,16 @@
</el-form-item>
<el-form-item label="类型" prop="feeType">
<el-select v-model="queryParams.feeType" placeholder="请选择类型" clearable size="small">
<el-option
v-for="dict in feeTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="订单状态" prop="orderStatus">
<el-select v-model="queryParams.feeTypeStatus" placeholder="请选择订单状态" clearable size="small">
<el-option
v-for="dict in orderStatusOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="订单状态" prop="orderStatus">
<el-select v-model="queryParams.orderStatus" placeholder="请选择订单状态" clearable size="small">
<el-option
v-for="dict in orderStatusOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item>
@ -72,38 +60,38 @@
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['otc:otcStoreOrder:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['otc:otcStoreOrder:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['otc:otcStoreOrder:remove']"
>删除</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- @click="handleAdd"-->
<!-- v-hasPermi="['otc:otcStoreOrder:add']"-->
<!-- >新增</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['otc:otcStoreOrder:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['otc:otcStoreOrder:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
@ -119,41 +107,54 @@
<el-table v-loading="loading" :data="otcStoreOrderList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="流水编号" align="center" prop="id" />
<!-- <el-table-column label="流水编号" align="center" prop="id" />-->
<el-table-column label="订单编号" align="center" prop="orderNo" />
<el-table-column label="交易类型" align="center" prop="tradeType" :formatter="tradeTypeFormat" />
<el-table-column label="商家编号" align="center" prop="storeId" />
<!-- <el-table-column label="商家编号" align="center" prop="storeId" />-->
<el-table-column label="商家昵称" align="center" prop="storeName" />
<el-table-column label="币种" align="center" prop="coin" />
<el-table-column label="币种数量" align="center" prop="coinNum" />
<!-- <el-table-column label="币种数量" align="center" prop="coinNum" />-->
<el-table-column label="实际币种数量" align="center" prop="realityCoinNum" />
<el-table-column label="剩余数量" align="center" prop="remainNum" />
<el-table-column label="法币价格" align="center" prop="legalCurrency" />
<el-table-column label="订单状态" align="center" prop="orderStatus" :formatter="orderStatusFormat" />
<el-table-column label="最小限额" align="center" prop="minLimit" />
<el-table-column label="最大限额" align="center" prop="maxLimit" />
<el-table-column label="限额币种" align="center" prop="limitCoin" />
<el-table-column label="类型" align="center" prop="feeType" :formatter="feeTypeFormat"/>
<!-- <el-table-column label="最小限额" align="center" prop="minLimit" />-->
<!-- <el-table-column label="最大限额" align="center" prop="maxLimit" />-->
<el-table-column label="法币币种" align="center" prop="limitCoin" />
<!-- <el-table-column label="类型" align="center" prop="feeType" :formatter="feeTypeFormat"/>-->
<el-table-column label="手续费" align="center" prop="fee" />
<el-table-column label="百分比的时" align="center" prop="feeRate" />
<!-- <el-table-column label="费率" align="center" prop="feeRate" />-->
<el-table-column label="已扣除手续费" align="center" prop="deductedFee" />
<el-table-column label="收款方式 多个逗号分割" align="center" prop="walletType" />
<!-- <el-table-column label="收款方式多个逗号分割" align="center" prop="walletType" />-->
<el-table-column label="交易说明" align="center" prop="transactionDesc" />
<el-table-column label="添加时间" align="center" prop="crateTime" width="180">
<template slot-scope="scope">
<span>{{parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['otc:otcStoreOrder:edit']"-->
<!-- >修改</el-button>-->
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
@click="handleDetail(scope.row)"
v-hasPermi="['otc:otcStoreOrder:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['otc:otcStoreOrder:remove']"
>删除</el-button>
>详情</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['otc:otcStoreOrder:remove']"-->
<!-- >删除</el-button>-->
</template>
</el-table-column>
</el-table>
@ -167,18 +168,27 @@
/>
<!-- 添加或修改otc订单信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-dialog :title="title" :visible.sync="open" width="900px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="订单编号" prop="orderNo">
<el-input v-model="form.orderNo" placeholder="请输入订单编号" />
</el-form-item>
<el-form-item label="交易类型" prop="tradeType">
<el-select v-model="form.tradeType" placeholder="请选择交易类型">
<el-option label="请选择字典生成" value="" />
<!-- <el-option label="请选择字典生成" value="" />-->
<el-option
v-for="dict in tradeTypeStatusOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="商家编号" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入商家编号" />
<!-- <el-form-item label="商家编号" prop="storeId">-->
<!-- <el-input v-model="form.storeId" placeholder="请输入商家编号" />-->
<!-- </el-form-item>-->
<el-form-item label="商家昵称" prop="storeId">
<el-input v-model="form.storeName" placeholder="请输入商家编号" />
</el-form-item>
<el-form-item label="币种" prop="coin">
<el-input v-model="form.coin" placeholder="请输入币种" />
@ -195,10 +205,18 @@
<el-form-item label="法币价格" prop="legalCurrency">
<el-input v-model="form.legalCurrency" placeholder="请输入法币价格" />
</el-form-item>
<el-form-item label="订单状态(挂单中 pending_order、已锁住is_lock、已完成 close、已取消 cancel、待放行released,申诉中in_appeal)">
<el-radio-group v-model="form.orderStatus">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
<el-form-item label="订单状态">
<!-- <el-radio-group v-model="form.orderStatus">-->
<!-- <el-radio label="1">请选择字典生成</el-radio>-->
<!-- </el-radio-group>-->
<el-select v-model="form.orderStatus" placeholder="订单状态">
<el-option
v-for="dict in orderStatusOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="最小限额" prop="minLimit">
<el-input v-model="form.minLimit" placeholder="请输入最小限额" />
@ -209,39 +227,46 @@
<el-form-item label="限额币种" prop="limitCoin">
<el-input v-model="form.limitCoin" placeholder="请输入限额币种" />
</el-form-item>
<el-form-item label="类型:pen:按笔,percentage:百分比" prop="feeType">
<el-select v-model="form.feeType" placeholder="请选择类型:pen:按笔,percentage:百分比">
<el-option label="请选择字典生成" value="" />
<el-form-item label="手续费类型:" prop="feeType">
<el-select v-model="form.feeType" placeholder="手续费类型">
<!-- <el-option label="请选择字典生成" value="" />-->
<el-option
v-for="dict in feeTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="手续费" prop="fee">
<el-input v-model="form.fee" placeholder="请输入手续费" />
</el-form-item>
<el-form-item label="百分比的时" prop="feeRate">
<el-input v-model="form.feeRate" placeholder="请输入百分比的时" />
<el-form-item label="手续费率" prop="feeRate">
<el-input v-model="form.feeRate" placeholder="手续费率" />
</el-form-item>
<el-form-item label="已扣除手续费" prop="deductedFee">
<el-input v-model="form.deductedFee" placeholder="请输入已扣除手续费" />
</el-form-item>
<el-form-item label="添加时间" prop="createTime">
<el-date-picker clearable size="small"
v-model="form.createTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择添加时间">
</el-date-picker>
</el-form-item>
<el-form-item label="收款方式 多个逗号分割" prop="walletType">
<el-select v-model="form.walletType" placeholder="请选择收款方式 多个逗号分割">
<el-option label="请选择字典生成" value="" />
</el-select>
<!-- <el-form-item label="添加时间" prop="createTime">-->
<!-- <el-date-picker clearable size="small"-->
<!-- v-model="form.createTime"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="选择添加时间">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="收款方式" prop="walletType">-->
<!-- <el-input v-model="form.walletType" placeholder="收款方式" />-->
<!-- </el-form-item>-->
<el-form-item label="收款方式" prop="walletType">
<el-input v-model="form.walletTypeName" placeholder="收款方式" />
</el-form-item>
<el-form-item label="交易说明" prop="transactionDesc">
<el-input v-model="form.transactionDesc" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<!-- <el-button type="primary" @click="submitForm"> </el-button>-->
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
@ -299,7 +324,8 @@ export default {
feeRate: null,
deductedFee: null,
walletType: null,
transactionDesc: null
transactionDesc: null,
storeName: null
},
//
form: {},
@ -361,9 +387,9 @@ export default {
return this.selectDictLabel(this.feeTypeOptions, row.feeType);
},
tradeTypeFormat(row, column) {
return this.selectDictLabel(this.tradeTypeStatusOptions, row.tradeType);
},
//
@ -394,7 +420,8 @@ export default {
createTime: null,
updateTime: null,
walletType: null,
transactionDesc: null
transactionDesc: null,
walletTypeName:null
};
this.resetForm("form");
},
@ -430,6 +457,16 @@ export default {
this.title = "修改otc订单信息";
});
},
/** 详情按钮操作 */
handleDetail(row) {
this.reset();
const id = row.id || this.ids
getOtcStoreOrder(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "查询otc订单信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {

20
src/views/otc/otcStorePledge/index.vue

@ -1,10 +1,19 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="商家编号" prop="storeId">
<el-form-item label="商家名称" prop="storeName">
<el-input
v-model="queryParams.storeId"
placeholder="请输入商家编号"
v-model="queryParams.storeName"
placeholder="请输入商家名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="商家账号" prop="storeAccount">
<el-input
v-model="queryParams.storeAccount"
placeholder="请输入商家账号"
clearable
size="small"
@keyup.enter.native="handleQuery"
@ -85,7 +94,8 @@
<el-table v-loading="loading" :data="otcStorePledgeList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="流水编号" align="center" prop="id" />
<el-table-column label="商家编号" align="center" prop="storeId" />
<el-table-column label="商家昵称" align="center" prop="storeName" />
<el-table-column label="商家账号" align="center" prop="storeAccount" />
<el-table-column label="质押币种" align="center" prop="coin" />
<el-table-column label="质押数量" align="center" prop="balance" />
<el-table-column label="冻结数" align="center" prop="frozenBalance" />
@ -197,6 +207,8 @@ export default {
frozenBalance: null,
availableBalance: null,
status: null,
storeAccount:null,
storeName:null,
},
//
form: {},

5
src/views/otc/otcStoreRechargeOrder/index.vue

@ -30,12 +30,12 @@
</el-select>
</el-form-item>
<el-form-item label="订单来源" prop="sourceType">
<!-- <el-form-item label="订单来源" prop="sourceType">
<el-select v-model="queryParams.sourceType" placeholder="请选择订单来源" clearable size="small">
<el-option v-for="dict in sourceTypeOptions" :key="dict.dictValue" :label="dict.dictLabel"
:value="dict.dictValue" />
</el-select>
</el-form-item>
</el-form-item> -->
<el-form-item label="创建时间">
<el-date-picker v-model="dateRange" size="small" style="width: 340px" value-format="yyyy-MM-dd HH:mm:ss"
@ -256,7 +256,6 @@ export default {
merchantName: this.queryParams.merchantName,
tranAmt: v,
orderStatus: this.queryParams.orderStatus,
sourceType: this.queryParams.sourceType,
}
payRecordRecharge.listInfo(this.addSESDateRange(queryParams, this.dateRange)).then(response => {
this.otcCoinList = response.rows;

94
src/views/otc/otcSysDict/index.vue

@ -1,24 +1,24 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="排序" prop="num">
<el-input
v-model="queryParams.num"
placeholder="请输入排序"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="上级编号" prop="pid">
<el-input
v-model="queryParams.pid"
placeholder="请输入上级编号"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="排序" prop="num">-->
<!-- <el-input-->
<!-- v-model="queryParams.num"-->
<!-- placeholder="请输入排序"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="上级编号" prop="pid">-->
<!-- <el-input-->
<!-- v-model="queryParams.pid"-->
<!-- placeholder="请输入上级编号"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="值" prop="name">
<el-input
v-model="queryParams.name"
@ -28,15 +28,15 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="提示" prop="tips">
<el-input
v-model="queryParams.tips"
placeholder="请输入提示"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="提示" prop="tips">-->
<!-- <el-input-->
<!-- v-model="queryParams.tips"-->
<!-- placeholder="请输入提示"-->
<!-- clearable-->
<!-- size="small"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="标识" prop="code">
<el-input
v-model="queryParams.code"
@ -74,17 +74,17 @@
v-hasPermi="['otc:otcSysDict:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['otc:otcSysDict:remove']"
>删除</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['otc:otcSysDict:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
@ -115,17 +115,17 @@
@click="handleUpdate(scope.row)"
v-hasPermi="['otc:otcSysDict:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['otc:otcSysDict:remove']"
>删除</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['otc:otcSysDict:remove']"-->
<!-- >删除</el-button>-->
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
@ -150,7 +150,7 @@
<el-input v-model="form.tips" placeholder="请输入提示" />
</el-form-item>
<el-form-item label="标识" prop="code">
<el-input v-model="form.code" placeholder="请输入标识" />
<el-input v-model="form.code" placeholder="请输入标识" disabled="disabled" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">

2
src/views/system/role/index.vue

@ -602,4 +602,4 @@ export default {
}
}
};
</script>
</script>

2
src/views/system/user/index.vue

@ -667,4 +667,4 @@ export default {
}
}
};
</script>
</script>

14
src/views/user/UserCertification/index.vue

@ -293,7 +293,10 @@ export default {
authType: [
{ required: true, message: "认证类型:基础basic 高级advanced不能为空", trigger: "change" }
]
}
},
//
srcList: ["http://118.25.187.239:9099/img/adImg/557097620301025280.jpg"],
};
},
created() {
@ -327,6 +330,10 @@ export default {
this.open = false;
this.reset();
},
//
previewImage(abUrl) {
this.srcList[0] = abUrl;
},
//
reset() {
this.form = {
@ -350,10 +357,7 @@ export default {
this.resetForm("form");
},
//
previewImage(abUrl) {
this.srcList[0] = abUrl;
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;

802
src/views/user/ad/index.vue

@ -0,0 +1,802 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="广告终端" prop="terminalType">
<el-select v-model="queryParams.terminalType" placeholder="请选择广告终端" clearable size="small">
<el-option
v-for="dict in terminalTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="广告位" prop="adPositionType">
<el-select v-model="queryParams.adPositionType" placeholder="请选择广告位" clearable size="small">
<el-option
v-for="dict in adPositionTypeList"
:key="dict.positionType"
:label="dict.positionName"
:value="dict.positionType"
/>
</el-select>
</el-form-item>
<el-form-item label="广告类型" prop="adType">
<el-select v-model="queryParams.adType" placeholder="请选择广告类型" clearable size="small">
<el-option
v-for="dict in adContentTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="语言" prop="languageType">
<el-select v-model="queryParams.languageType" placeholder="请选择语言类型" clearable size="small">
<el-option
v-for="dict in projectLanguageOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="dataStatus">
<el-select v-model="queryParams.dataStatus" placeholder="请选择状态" clearable size="small">
<el-option
v-for="dict in statusOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['ad:ad:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['ad:ad:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['ad:ad:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['ad:ad:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="adList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键" align="center" prop="id" />
<el-table-column label="终端类型" align="center" prop="terminalType" :formatter="terminalTypeFormat" />
<el-table-column label="语言" align="center" prop="languageType" :formatter="projectLanguageFormat" />
<el-table-column label="广告位" align="center" prop="adPositionType" :formatter="positionTypeFormat" />
<el-table-column label="广告类型" align="center" prop="adType" :formatter="adContentTypeFormat"/>
<el-table-column label="广告标题" align="center" prop="adTitle" />
<!-- <el-table-column label="广告内容" align="center" prop="adContent" />-->
<!-- <el-table-column label="广告宣传图片相对路径" align="center" prop="adImg" />-->
<el-table-column label="广告图片" align="center" prop="adImgAbs" >
<template slot-scope="scope">
<el-image v-if="scope.row.adImgAbs!=null && scope.row.adImgAbs!=''"
style="width: 120px; height: 120px"
:src="scope.row.adImgAbs"
@click="previewImage(scope.row.adImgAbs)"
:preview-src-list="srcList"
></el-image>
<el-icon v-if="scope.row.adImgAbs==null || scope.row.adImgAbs==''"
style="width: 120px; height: 120px"
></el-icon>
</template>
<!-- <template width="90" slot-scope="scope">-->
<!-- <img style="width:80px;height:80px;border:none;" :src="scope.row.adImgAbs">-->
<!-- </template>-->
</el-table-column>
<!-- <el-table-column label="广告内容富文本" align="center" prop="adContentHtml" />-->
<el-table-column label="商品链接地址" align="center" prop="link" />
<el-table-column label="状态" align="center" prop="dataStatus" :formatter="statusFormat" >
<template slot-scope="scope">
<el-switch
v-model="scope.row.dataStatus"
active-value="Y"
inactive-value="N"
@change="handleStatusChange(scope.row)"
></el-switch>
</template>
</el-table-column>
<el-table-column label="排序" align="center" prop="sort" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['ad:ad:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['ad:ad:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改广告文本内容对话框 -->
<el-dialog :title="title" :visible.sync="open" width="50%" append-to-body :close-on-click-modal="false"
:before-close="cancel">
<el-form ref="form" :model="form" :rules="rules" label-width="82px">
<el-form-item label="广告终端" prop="terminalType" style="width: 100%" >
<el-radio-group v-model="form.terminalType" @change="changeTerminalType($event)">
<el-radio
v-for="dict in terminalTypeOptions"
:key="dict.dictValue"
:label="dict.dictValue"
>{{dict.dictLabel}}</el-radio>
</el-radio-group
>
</el-form-item>
<el-form-item label="语言" prop="languageType" style="width: 100%">
<el-radio-group v-model="form.languageType">
<el-radio
v-for="dict in projectLanguageOptions"
:key="dict.dictValue"
:label="dict.dictValue"
>{{dict.dictLabel}}</el-radio>
</el-radio-group
>
</el-form-item>
<el-form-item label="广告位" prop="adPositionType">
<el-radio-group v-model="form.adPositionType">
<el-radio
v-for="dict in adPositionTypeListUpdate"
:key="dict.positionType"
:label="dict.positionType"
>{{dict.positionName}}</el-radio>
</el-radio-group
>
</el-form-item>
<el-form-item label="广告类型" prop="adType" v-if="form.adPositionType!='user_questions'">
<el-radio-group v-model="form.adType">
<el-radio
v-for="dict in adContentTypeOptions"
:key="dict.dictValue"
:label="dict.dictValue"
>{{dict.dictLabel}}</el-radio>
</el-radio-group
>
</el-form-item>
<el-form-item label="广告标题" prop="adTitle" v-if="form.adPositionType!='user_questions'">
<el-input v-model="form.adTitle" placeholder="请输入广告标题" />
</el-form-item>
<el-form-item label="问题标题" prop="adTitle" v-if="form.adPositionType=='user_questions'">
<el-input v-model="form.adTitle" placeholder="请输入广告标题" />
</el-form-item>
<el-form-item label="广告内容" prop="adContent" v-if="form.adPositionType!='user_questions'">
<el-input
type="textarea"
v-model="form.adContent"
placeholder="请输入广告内容"
/>
</el-form-item>
<el-form-item label="广告链接" prop="link" v-if="form.adPositionType!='user_questions'">
<el-input v-model="form.link" placeholder="请输入广告链接" />
</el-form-item>
<el-form-item label="广告图片" v-if="form.adPositionType!='user_questions'">
<el-upload
class="avatar-uploader"
:show-file-list="false"
:action="uploadUrl()"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
:data="{path:'ad'}"
>
<img v-if="form.adImgAbs" :src="form.adImgAbs" class="avatar" style="width: 150px" height="150px">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
<!-- <el-form-item label="广告图片">-->
<!-- <el-upload-->
<!-- class="avatar-uploader"-->
<!-- :http-request="checkedFile"-->
<!-- action="/"-->
<!-- :show-file-list="false"-->
<!-- >-->
<!-- <img-->
<!-- v-if="form.adImgAbs != undefined"-->
<!-- :src="form.adImgAbs"-->
<!-- class="avatar"-->
<!-- />-->
<!-- <i v-else class="el-icon-plus avatar-uploader-icon"></i>-->
<!-- </el-upload>-->
<!-- </el-form-item>-->
<el-form-item label="广告富文本" prop="adContentHtml" v-if="form.adPositionType!='user_questions'">
<Editor :min-height="190" v-model="form.adContentHtml" />
</el-form-item>
<el-form-item label="问题富文本" prop="adContentHtml" v-if="form.adPositionType=='user_questions'">
<Editor :min-height="190" v-model="form.adContentHtml" />
</el-form-item>
<el-form-item label="点赞数" prop="likes" v-if="form.terminalType=='website_client'">
<el-input v-model="form.likes" placeholder="请输入广告标题" />
</el-form-item>
<el-form-item label="状态" prop="dataStatus">
<el-radio-group v-model="form.dataStatus">
<el-radio
v-for="dict in statusOptions"
:key="dict.dictValue"
:label="dict.dictValue"
>{{dict.dictLabel}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input-number
v-model="form.sort"
:step="1"
value=" "
></el-input-number>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {changeStatus, listAd, getAd, delAd, addAd, updateAd, exportAd } from "@/api/user/ad";
import Editor from '@/components/Editor';
import { listAdPositionAll} from "@/api/user/position";
import md5 from "js-md5";
import $ from "jquery";
export default {
name: "Ad",
components: {
Editor,
},
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
// 广
adList: [],
//广
terminalTypeOptions:[],
//广
adPositionTypeList:[],
//广
adPositionTypeListUpdate:[],
//广
adContentTypeOptions:[],
//
projectLanguageOptions: [],
//
statusOptions: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
terminalType: null,
adPositionType: null,
languageType: null,
adType: null,
adTitle: null,
adContent: null,
adImg: null,
adImgAbs: null,
adContentHtml: null,
link: null,
dataStatus: null,
sort: null
},
//
queryParamsPosition: {
terminalType: null,
},
//
form: {},
//
rules: {
terminalType: [
{ required: true, message: "请选择广告终端", trigger: "blur" }
],
adPositionType: [
{ required: true, message: "请选择广告位", trigger: "blur" }
],
adType: [
{ required: true, message: "请选择广告类型", trigger: "blur" }
],
adContent: [
{ required: true, message: "广告内容不能为空", trigger: "blur" }
],
adTitle: [
{ required: true, message: "广告标题不能为空", trigger: "blur" }
],
adImg: [
{ required: true, message: "广告宣传图片相对路径不能为空", trigger: "blur" }
],
// link: [
// { required: true, message: "广", trigger: "blur" }
// ],
},
//
srcList: ["http://118.25.187.239:9099/img/adImg/557097620301025280.jpg"],
//
//
updateAddress: `${process.env.VUE_APP_BASE_API}/system/ftpfile/`,
maxSize: 50 * 1024 * 1024 * 1024, //
eachSize: 20 * 1024 * 1024, //
//
isShowPercentage: false, //
percentage: 0,
};
},
created() {
console.log(this.updateAddress)
this.getList();
this.getDicts("terminal_type").then(response => {
this.terminalTypeOptions = response.data;
});
this.getDicts("ad_content_type").then(response => {
this.adContentTypeOptions = response.data;
});
this.getDicts("sys_yes_no").then(response => {
this.statusOptions = response.data;
});
this.getDicts("project_language").then(response => {
this.projectLanguageOptions = response.data;
});
},
methods: {
uploadUrl:function(){
return this.updateAddress + "uploadFile"
},
//
previewImage(abUrl) {
this.srcList[0] = abUrl;
},
changeTerminalType(value){
this.queryParamsPosition.terminalType=value;
listAdPositionAll(this.queryParamsPosition).then(response => {
this.adPositionTypeListUpdate = response.rows;
});
},
//
handleAvatarSuccess(res) {
console.log(res);
this.form.adImgAbs = res.data.url;
this.form.adImg = res.data.path;
},
beforeAvatarUpload(file) {
const isJPG = file.type === "image/jpeg" || "image/png";
const isLt2M = file.size / 1024 / 1024 < 10;
// if (!isJPG) {
// this.$message.error(' JPG !');
// }
if (!isLt2M) {
this.$message.error("上传图片大小不能超过 10MB!");
}
return isJPG && isLt2M;
},
/** 查询广告文本内容列表 */
getList() {
this.loading = true;
listAd(this.queryParams).then(response => {
this.adList = response.rows;
this.total = response.total;
this.loading = false;
});
this.findListAdPositionAll();
},
findListAdPositionAll(){
listAdPositionAll().then(response => {
this.adPositionTypeList = response.rows;
});
},
//
projectLanguageFormat(row, column) {
return this.selectDictLabel(this.projectLanguageOptions, row.languageType);
},
//
statusFormat(row, column) {
return this.selectDictLabel(this.statusOptions, row.dataStatus);
},
//广
adContentTypeFormat(row, column){
return this.selectDictLabel(this.adContentTypeOptions,row.adType);
},
//
terminalTypeFormat(row, column) {
return this.selectDictLabel(this.terminalTypeOptions, row.terminalType);
},
//
positionTypeFormat(row, column) {
return this.selectTerminalTypeList(this.adPositionTypeList, row.adPositionType);
},
selectTerminalTypeList(datas, value) {
var actions = [];
Object.keys(datas).some((key) => {
if (datas[key].positionType == ('' + value)) {
actions.push(datas[key].positionName);
return true;
}
})
return actions.join('');
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
terminalType: 'user_client',
languageType: "zh",
adPositionType: null,
adType: null,
adTitle: null,
adContent: null,
adImg: null,
adImgAbs: null,
adContentHtml: null,
link: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
dataStatus: "Y",
sort: null,
likes:0,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加广告文本内容";
this.queryParamsPosition.terminalType="user_client";
listAdPositionAll(this.queryParamsPosition).then(response => {
this.adPositionTypeListUpdate = response.rows;
});
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getAd(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改广告文本内容";
this.queryParamsPosition.terminalType=this.form.terminalType;
listAdPositionAll(this.queryParamsPosition).then(response => {
this.adPositionTypeListUpdate = response.rows;
});
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateAd(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAd(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$confirm('是否确认删除广告文本内容编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delAd(ids);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
})
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有广告文本内容数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return exportAd(queryParams);
}).then(response => {
this.download(response.msg);
})
},
//
async checkedFile(options) {
const { maxSize, getSize, splitUpload, singleUpload } = this;
const { file, onProgress, onSuccess, onError } = options;
if (file.size > maxSize) {
return this.$message({
message: `您选择的文件大于${getSize(maxSize)}`,
type: "error",
});
}
// const uploadFunc = file.size > multiUploadSize ? splitUpload : singleUpload
try {
singleUpload(file, onProgress);
} catch (e) {
console.error(e);
this.$message({
message: e.message,
type: "error",
});
onError();
}
const prom = new Promise((resolve, reject) => {});
prom.abort = () => {};
return prom;
},
//
getSize(size) {
return size > 1024
? size / 1024 > 1024
? size / (1024 * 1024) > 1024
? (size / (1024 * 1024 * 1024)).toFixed(2) + "GB"
: (size / (1024 * 1024)).toFixed(2) + "MB"
: (size / 1024).toFixed(2) + "KB"
: size.toFixed(2) + "B";
},
//
async singleUpload(file, onProgress, onSuccess) {
// console.log(onSuccess)
// console.log(onSuccess())
//
var filedetails =
file.name + file.size + file.type + file.lastModifiedDate;
//使md5key
var key = md5(filedetails);
var key10 = parseInt(key, 16);
// 64
var key62 = this._10to62(key10);
//key
$.ajax({
url: this.updateAddress + "check",
type: "post",
data: { key: key62 },
success: (data) => {
console.log(data);
if (data.code == 500) {
//
this.splitUpload(file, 1);
} else {
if (data.data.shardIndex == data.data.shardTotal) {
// console.log('')
this.isShowPercentage = false;
this.form.adImgAbs = data.url;
this.form.adImg = data.file_url;
this.$message({
message: "上传成功",
type: "success",
});
} else {
//
this.splitUpload(file, parseInt(data.data.shardIndex));
}
}
},
});
},
//
splitUpload(file, shardIndex) {
console.log("file", file);
//from
var fd = new FormData();
// 20MB
var shardSize = this.eachSize;
//
var shardIndex = shardIndex;
//
var start = (shardIndex - 1) * shardSize;
// file?
var end = Math.min(file.size, start + shardSize);
//
var fileShard = file.slice(start, end);
//
var size = file.size;
//
var shardTotal = Math.ceil(size / shardSize);
console.log((shardSize * (shardIndex - 1)) / size);
this.isShowPercentage = true;
this.percentage = Number(
Number(((shardSize * (shardIndex - 1)) / size) * 100).toFixed(2)
);
//
var fileName = file.name;
var suffix = fileName
.substring(fileName.lastIndexOf(".") + 1, fileName.length)
.toLowerCase();
//
var filedetails =
file.name + file.size + file.type + file.lastModifiedDate;
//使md5key
// console.log(md5)
var key = md5(filedetails);
console.log(key);
var key10 = parseInt(key, 16);
// 64
var key62 = this._10to62(key10);
fd.append("file", fileShard);
//controller
fd.append("suffix", suffix);
fd.append("shardIndex", shardIndex);
fd.append("shardSize", shardSize);
fd.append("shardTotal", shardTotal);
fd.append("size", size);
fd.append("key", key62);
$.ajax({
url: this.updateAddress + "uploadDiskBatch/sampleDisk",
type: "post",
cache: false,
data: fd,
processData: false,
contentType: false,
success: (data) => {
//
if (shardIndex < shardTotal) {
var index = shardIndex + 1;
this.splitUpload(file, index);
} else {
console.log(data);
this.percentage = 100;
if (data.code == 200) {
setTimeout(() => {
this.isShowPercentage = false;
this.form.adImgAbs = data.url;
this.form.adImg = data.file_url;
this.$message({
message: "上传成功",
type: "success",
});
}, 800);
} else {
this.isShowPercentage = false;
this.$message({
message: data.msg,
type: "error",
});
}
}
},
error: function () {
this.isShowPercentage = false;
//
},
});
// if (shardIndex < shardTotal) {
// var index = shardIndex + 1;
// this.splitUpload(file, index);
// }
},
_10to62(number) {
let chars =
"0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ";
let radix = chars.length;
let arr = [];
do {
let mod = number % radix;
number = (number - mod) / radix;
arr.unshift(chars[mod]);
} while (number);
return arr.join("");
},
//
handleStatusChange(row) {
let text = row.dataStatus === "N" ? "禁用" : "启用";
this.$confirm('确认要' + text + '该广告吗?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return changeStatus(row.id, row.dataStatus);
}).then(() => {
this.msgSuccess(text + "成功");
}).catch(function() {
row.dataStatus = row.dataStatus === "N" ? "Y" : "N";
});
},
},
};
</script>

312
src/views/user/position/index.vue

@ -0,0 +1,312 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="85px">
<el-form-item label="广告位名称" prop="positionName">
<el-input
v-model="queryParams.positionName"
placeholder="请输入广告位名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="广告位类型" prop="positionType">-->
<!-- <el-select v-model="queryParams.positionType" placeholder="请选择广告位类型" clearable size="small">-->
<!-- <el-option label="请选择字典生成" value="" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['ad:position:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['ad:position:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['ad:position:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['ad:position:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="AdPositionList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键" align="center" prop="id" />
<el-table-column label="广告位名称" align="center" prop="positionName" />
<el-table-column label="广告位类型" align="center" prop="positionType" />
<el-table-column label="广告位终端" align="center" prop="terminalType" :formatter="terminalTypeFormat" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['ad:position:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['ad:position:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改广告位对话框 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="广告位名称" prop="positionName">
<el-input v-model="form.positionName" placeholder="请输入广告位名称" />
</el-form-item>
<el-form-item label="广告位类型" prop="positio v-ifnType">
<el-input v-if="form.id!=null" v-model="form.positionType" placeholder="请填写广告位类型" disabled="disabled"/>
<el-input v-if="form.id==null" v-model="form.positionType" placeholder="请填写广告位类型" />
<!-- <el-select v-model="form.positionType" placeholder="请选择广告位类型">-->
<!-- <el-option label="请选择字典生成" value="" />-->
<!-- </el-select>-->
</el-form-item>
<el-form-item label="广告终端" prop="terminalType" style="width: 100%" >
<el-radio-group v-model="form.terminalType">
<el-radio
v-for="dict in terminalTypeOptions"
:key="dict.dictValue"
:label="dict.dictValue"
>{{dict.dictLabel}}</el-radio>
</el-radio-group
>
</el-form-item>
<!-- <el-form-item label="创建时间" prop="createTime">-->
<!-- <el-date-picker clearable size="small"-->
<!-- v-model="form.createTime"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="选择创建时间">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listAdPosition, getAdPosition, delAdPosition, addAdPosition, updateAdPosition, exportAdPosition } from "@/api/user/position";
export default {
name: "AdPosition",
components: {
},
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
// 广
AdPositionList: [],
//广
terminalTypeOptions:[],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
positionName: null,
positionType: null,
},
//
form: {},
//
rules: {
positionName: [
{ required: true, message: "广告位名称不能为空", trigger: "blur" }
],
positionType: [
{ required: true, message: "广告位类型不能为空", trigger: "change" }
],
}
};
},
created() {
this.getDicts("terminal_type").then(response => {
this.terminalTypeOptions = response.data;
});
this.getList();
},
methods: {
/** 查询广告位列表 */
getList() {
this.loading = true;
listAdPosition(this.queryParams).then(response => {
this.AdPositionList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
terminalTypeFormat(row, column) {
return this.selectDictLabel(this.terminalTypeOptions, row.terminalType);
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
positionName: null,
positionType: null,
terminalType:"user_client",
createTime: null,
updateTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加广告位";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getAdPosition(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改广告位";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateAdPosition(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAdPosition(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$confirm('是否确认删除广告位编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delAdPosition(ids);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
})
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有广告位数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return exportAdPosition(queryParams);
}).then(response => {
this.download(response.msg);
})
}
}
};
</script>

11
src/views/user/userCustomer/index.vue

@ -105,6 +105,8 @@
</template>
</el-table-column>
<el-table-column label="邮箱" align="center" prop="email" />
<el-table-column label="余额" align="center" prop="balance" />
<!-- <el-table-column label="父级编号" align="center" prop="parentId" /> -->
<el-table-column label="创建时间" align="center" prop="addTime" width="180">
@ -231,7 +233,10 @@ export default {
authLevel: [
{ required: true, message: "用户认证级别 1未认证 2.初级认证成功 3.高级认证成功不能为空", trigger: "blur" }
]
}
},
//
srcList: ["http://118.25.187.239:9099/img/adImg/557097620301025280.jpg"],
};
},
created() {
@ -292,6 +297,10 @@ export default {
row.status = row.status === "0" ? "1" : "0";
});
},
//
previewImage(abUrl) {
this.srcList[0] = abUrl;
},
//
cancel() {
this.open = false;

21
src/views/user/wallet/index.vue

@ -1,6 +1,16 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="用户姓名" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入用户姓名"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="币种" prop="coinId">
<el-input
v-model="queryParams.coinId"
@ -20,15 +30,6 @@
/>
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-input
v-model="queryParams.isEnable"
placeholder="请输入是否启用"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -84,7 +85,7 @@
<el-table v-loading="loading" :data="walletList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="流水编号" align="center" prop="id" />
<el-table-column label="用户编号" align="center" prop="userId" />
<el-table-column label="用户姓名" align="center" prop="userName" />
<el-table-column label="币种" align="center" prop="coinId" />
<el-table-column label="链名称" align="center" prop="chainName" />
<el-table-column label="可用余额" align="center" prop="balance" />

381
src/views/user/walletAssetsRecord/index.vue

@ -0,0 +1,381 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<!-- <el-form-item label="用户编号" prop="userId">
<el-input
v-model="queryParams.userId"
placeholder="请输入用户编号"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item> -->
<el-form-item label="用户姓名" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入用户姓名"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="转账类型" prop="type">
<el-select v-model="queryParams.type" placeholder="请选择转账类型" clearable size="small">
<el-option v-for="dict in typeOptions" :key="dict.dictValue" :label="dict.dictLabel"
:value="dict.dictValue" />
</el-select>
</el-form-item>
<el-form-item label="币种" prop="coinId">
<el-input
v-model="queryParams.coinId"
placeholder="请输入币种"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="业务编号" prop="serviceId">
<el-input
v-model="queryParams.serviceId"
placeholder="请输入业务编号"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['user:walletAssetsRecord:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['user:walletAssetsRecord:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['user:walletAssetsRecord:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['user:walletAssetsRecord:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="walletAssetsRecordList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="流水编号" align="center" prop="id" />
<!-- <el-table-column label="用户编号" align="center" prop="userId" /> -->
<el-table-column label="用户姓名" align="center" prop="userName" />
<el-table-column label="转账类型" align="center" prop="type" :formatter="typeFormat"/>
<el-table-column label="币种" align="center" prop="coinId" />
<el-table-column label="数量" align="center" prop="num" />
<el-table-column label="手续费" align="center" prop="fee" />
<!-- <el-table-column label="类型 完成complete" align="center" prop="status" /> -->
<el-table-column label="剩下金额" align="center" prop="remainBalance" />
<el-table-column label="业务编号" align="center" prop="serviceId" />
<!-- <el-table-column label="是否显示" align="center" prop="isShow" /> -->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['user:walletAssetsRecord:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['user:walletAssetsRecord:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改钱包资金流水记录对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="用户编号" prop="userId">
<el-input v-model="form.userId" placeholder="请输入用户编号" />
</el-form-item>
<el-form-item label="转账类型" prop="type">
<el-select v-model="form.type" placeholder="请选择转账类型">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="币种" prop="coinId">
<el-input v-model="form.coinId" placeholder="请输入币种" />
</el-form-item>
<el-form-item label="数量" prop="num">
<el-input v-model="form.num" placeholder="请输入数量" />
</el-form-item>
<el-form-item label="地址" prop="address">
<el-input v-model="form.address" placeholder="请输入地址" />
</el-form-item>
<el-form-item label="手续费" prop="fee">
<el-input v-model="form.fee" placeholder="请输入手续费" />
</el-form-item>
<el-form-item label="类型 完成complete">
<el-radio-group v-model="form.status">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="剩下金额" prop="remainBalance">
<el-input v-model="form.remainBalance" placeholder="请输入剩下金额" />
</el-form-item>
<el-form-item label="添加时间" prop="createTime">
<el-date-picker clearable size="small"
v-model="form.createTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择添加时间">
</el-date-picker>
</el-form-item>
<el-form-item label="业务编号" prop="serviceId">
<el-input v-model="form.serviceId" placeholder="请输入业务编号" />
</el-form-item>
<el-form-item label="是否显示" prop="isShow">
<el-input v-model="form.isShow" placeholder="请输入是否显示" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listWalletAssetsRecord, getWalletAssetsRecord, delWalletAssetsRecord, addWalletAssetsRecord, updateWalletAssetsRecord, exportWalletAssetsRecord } from "@/api/user/walletAssetsRecord";
export default {
name: "WalletAssetsRecord",
components: {
},
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
walletAssetsRecordList: [],
typeOptions: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
userId: null,
type: null,
coinId: null,
num: null,
address: null,
fee: null,
status: null,
remainBalance: null,
serviceId: null,
isShow: null
},
//
form: {},
//
rules: {
userId: [
{ required: true, message: "用户编号不能为空", trigger: "blur" }
],
type: [
{ required: true, message: "转账类型 提币withdrawal 充值recharge 转入entry_account 转出out_account 法币交易入账legal_tran_entry 法币交易出账legal_tran_out 法币交易出账冻结legal_tran_out_frozen、法币交易出账回退legal_tran_back 质押转出pledge_tran 商户冻结store_frozen 商户广告冻结回退store_frozen_back 商户订单完成扣除store_deduction 商户订单完成入账store_income不能为空", trigger: "change" }
],
}
};
},
created() {
this.getList();
this.getDicts("assets_type").then(response => {
this.typeOptions = response.data;
});
},
methods: {
/** 查询钱包资金流水记录列表 */
getList() {
this.loading = true;
listWalletAssetsRecord(this.queryParams).then(response => {
this.walletAssetsRecordList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
typeFormat(row, column) {
return this.selectDictLabel(this.typeOptions, row.type);
},
//
reset() {
this.form = {
id: null,
userId: null,
type: null,
coinId: null,
num: null,
address: null,
fee: null,
status: "0",
remainBalance: null,
createTime: null,
updateTime: null,
serviceId: null,
isShow: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加钱包资金流水记录";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getWalletAssetsRecord(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改钱包资金流水记录";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateWalletAssetsRecord(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addWalletAssetsRecord(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$confirm('是否确认删除钱包资金流水记录编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delWalletAssetsRecord(ids);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
})
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有钱包资金流水记录数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return exportWalletAssetsRecord(queryParams);
}).then(response => {
this.download(response.msg);
})
}
}
};
</script>

4
vue.config.js

@ -35,7 +35,11 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
<<<<<<< HEAD
target: `http://bitcopay-admin.weirui0755.com/stage-api`,
=======
target: `http://localhost:5500`,
>>>>>>> 8c89d7617c21beef7f943a9673ba2bbd3d1cf7a9
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''

Loading…
Cancel
Save