code
This commit is contained in:
BIN
g.rar → dist.rar
BIN
g.rar → dist.rar
Binary file not shown.
@ -51,4 +51,20 @@ export function getSameSymbol(params) {
|
||||
params
|
||||
})
|
||||
}
|
||||
// 导出交易对
|
||||
export function exportSymbols(params) {
|
||||
return request({
|
||||
url: '/api/v1/line-symbol/export',
|
||||
method: 'get',
|
||||
responseType: 'blob',
|
||||
params
|
||||
})
|
||||
}
|
||||
export function symbolAll(params) {
|
||||
return request({
|
||||
url: '/api/v1/line-symbol/all',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@ -44,6 +44,9 @@ service.interceptors.response.use(
|
||||
* You can also judge the status by HTTP Status Code
|
||||
*/
|
||||
response => {
|
||||
if (['blob'].includes(response.config.responseType)) {
|
||||
return response.data
|
||||
}
|
||||
const code = response.data.code
|
||||
if (code === 401) {
|
||||
store.dispatch('user/resetToken')
|
||||
|
||||
@ -32,17 +32,15 @@ export function downLoadFile(str) {
|
||||
* @param {*} res blob响应内容
|
||||
* @param {String} mimeType MIME类型
|
||||
*/
|
||||
export function resolveBlob(res, mimeType) {
|
||||
export function resolveBlob(res, name, mimeType) {
|
||||
const aLink = document.createElement('a')
|
||||
var blob = new Blob([res.data], { type: mimeType })
|
||||
var blob = new Blob([res], { type: mimeType || 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' })
|
||||
// //从response的headers中获取filename, 后端response.setHeader("Content-disposition", "attachment; filename=xxxx.docx") 设置的文件名;
|
||||
var patt = new RegExp('filename=([^;]+\\.[^\\.;]+);*')
|
||||
var contentDisposition = decodeURI(res.headers['content-disposition'])
|
||||
var result = patt.exec(contentDisposition)
|
||||
var fileName = result[1]
|
||||
fileName = fileName.replace(/\"/g, '')
|
||||
// var patt = new RegExp('filename=([^;]+\\.[^\\.;]+);*')
|
||||
// var contentDisposition = decodeURI(res.headers['content-disposition'])
|
||||
// var result = patt.exec(contentDisposition)
|
||||
aLink.href = URL.createObjectURL(blob)
|
||||
aLink.setAttribute('download', fileName) // 设置下载文件名称
|
||||
aLink.setAttribute('download', name) // 设置下载文件名称
|
||||
document.body.appendChild(aLink)
|
||||
aLink.click()
|
||||
document.body.appendChild(aLink)
|
||||
|
||||
@ -84,6 +84,32 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="减仓状态" prop="hedgeStatus"><el-select
|
||||
v-model="queryParams.hedgeStatus"
|
||||
placeholder="请选择减仓状态"
|
||||
size="small"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in [{l:'全部',v:-1},{l:'未减仓',v:0},{l:'已减仓',v:1}]"
|
||||
:key="dict.k"
|
||||
:label="dict.l"
|
||||
:value="dict.v"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="加仓状态" prop="addPositionStatus"><el-select
|
||||
v-model="queryParams.addPositionStatus"
|
||||
placeholder="请选择加仓状态"
|
||||
size="small"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in [{l:'全部',v:-1},{l:'未加仓',v:0},{l:'已加仓',v:1}]"
|
||||
:key="dict.k"
|
||||
:label="dict.l"
|
||||
:value="dict.v"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="status"><el-select
|
||||
v-model="queryParams.status"
|
||||
placeholder="请选择状态"
|
||||
|
||||
@ -130,92 +130,95 @@
|
||||
|
||||
<!-- 添加或修改对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="600px">
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
||||
<el-form-item label="交易所" prop="exchangeType">
|
||||
<el-select
|
||||
v-model="form.exchangeType"
|
||||
style="width: 100%;"
|
||||
placeholder="请选择交易所"
|
||||
clearable
|
||||
filterable
|
||||
size="small"
|
||||
@change="onchangeForm"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in exchangeTypes"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
<div v-loading="formLoading">
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
||||
<el-form-item label="交易所" prop="exchangeType">
|
||||
<el-select
|
||||
v-model="form.exchangeType"
|
||||
style="width: 100%;"
|
||||
placeholder="请选择交易所"
|
||||
clearable
|
||||
filterable
|
||||
size="small"
|
||||
@change="onchangeForm"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in exchangeTypes"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="交易对组名称" prop="groupName">
|
||||
<el-input
|
||||
v-model="form.groupName"
|
||||
placeholder="交易对组名称"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="交易对组名称" prop="groupName">
|
||||
<el-input
|
||||
v-model="form.groupName"
|
||||
placeholder="交易对组名称"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item label="分组类型:1=普通类型" prop="groupType">
|
||||
<!-- <el-form-item label="分组类型:1=普通类型" prop="groupType">
|
||||
<el-input v-model="form.groupType" placeholder="分组类型:1=普通类型"
|
||||
/>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="类型" prop="type">
|
||||
<el-radio-group v-model="form.type" @change="onchangeForm">
|
||||
<el-radio label="1">现货</el-radio>
|
||||
<el-radio label="2">合约</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="交易对" prop="curChange">
|
||||
<el-radio-group v-model="curChange" @change="form.symbol = undefined">
|
||||
<el-radio :label="1">输入</el-radio>
|
||||
<el-radio :label="2">选择</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="curChange===2" label="" prop="symbol">
|
||||
<el-select
|
||||
v-model="form.symbol"
|
||||
style="width: 100%;"
|
||||
placeholder="请选择交易对"
|
||||
multiple
|
||||
clearable
|
||||
filterable
|
||||
:remote-method="getSymbol"
|
||||
:loading="searchLoding"
|
||||
remote
|
||||
size="small"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in symbol.symbolList"
|
||||
:key="dict.id"
|
||||
:label="dict.symbol"
|
||||
:value="dict.symbol"
|
||||
/>
|
||||
<div class="page">
|
||||
<pagination
|
||||
v-show="symbol.total>0"
|
||||
:background="false"
|
||||
:total="symbol.total"
|
||||
layout="prev, pager, next"
|
||||
:page.sync="symbol.pageIndex"
|
||||
:limit.sync="symbol.pageSize"
|
||||
@pagination="getSymbol"
|
||||
<el-form-item label="类型" prop="type">
|
||||
<el-radio-group v-model="form.type" @change="onchangeForm">
|
||||
<el-radio label="1">现货</el-radio>
|
||||
<el-radio label="2">合约</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="交易对" prop="curChange">
|
||||
<el-radio-group v-model="curChange" @change="form.symbol = undefined">
|
||||
<el-radio :label="1">输入</el-radio>
|
||||
<el-radio :label="2">选择</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="curChange===2" label="" prop="symbol">
|
||||
<el-select
|
||||
v-model="form.symbol"
|
||||
style="width: 100%;"
|
||||
placeholder="请选择交易对"
|
||||
multiple
|
||||
clearable
|
||||
filterable
|
||||
:remote-method="getSymbol"
|
||||
:loading="searchLoding"
|
||||
remote
|
||||
size="small"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in symbol.symbolList"
|
||||
:key="dict.id"
|
||||
:label="dict.symbol"
|
||||
:value="dict.symbol"
|
||||
/>
|
||||
</div>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-else label="" prop="symbol">
|
||||
<el-input
|
||||
v-model="form.symbol"
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 4, maxRows: 8 }"
|
||||
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 class="page">
|
||||
<pagination
|
||||
v-show="symbol.total>0"
|
||||
:background="false"
|
||||
:total="symbol.total"
|
||||
layout="prev, pager, next"
|
||||
:page.sync="symbol.pageIndex"
|
||||
:limit.sync="symbol.pageSize"
|
||||
@pagination="getSymbol"
|
||||
/>
|
||||
</div>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-else label="" prop="symbol">
|
||||
<el-input
|
||||
v-model="form.symbol"
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 4, maxRows: 10 }"
|
||||
placeholder="请输入交易对"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer" style="text-align: right;">
|
||||
<el-button @click="onAll">所有交易对</el-button>
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</el-card>
|
||||
@ -224,7 +227,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listLineSymbol } from '@/api/admin/line-symbol'
|
||||
import { symbolAll, listLineSymbol } from '@/api/admin/line-symbol'
|
||||
import { addLineSymbolGroup, delLineSymbolGroup, getLineSymbolGroup, listLineSymbolGroup, updateLineSymbolGroup } from '@/api/admin/line-symbol-group'
|
||||
|
||||
export default {
|
||||
@ -278,7 +281,8 @@ export default {
|
||||
},
|
||||
searchLoding: false,
|
||||
exchangeTypes: [],
|
||||
curChange: 1
|
||||
curChange: 1,
|
||||
formLoading: false
|
||||
}
|
||||
},
|
||||
created() {
|
||||
@ -296,6 +300,15 @@ export default {
|
||||
this.form.symbol = undefined
|
||||
this.getSymbol({})
|
||||
},
|
||||
onAll() {
|
||||
this.formLoading = true
|
||||
const { exchangeType, type } = this.form
|
||||
symbolAll({ exchangeType, type }).then(response => {
|
||||
this.form.symbol = response.data.toString()
|
||||
}).finally(() => {
|
||||
this.formLoading = false
|
||||
})
|
||||
},
|
||||
// 交易对列表
|
||||
getSymbol(e, type) {
|
||||
this.searchLoding = true
|
||||
@ -388,23 +401,28 @@ export default {
|
||||
submitForm: function() {
|
||||
this.$refs['form'].validate(valid => {
|
||||
if (valid) {
|
||||
this.formLoading = true
|
||||
if (this.form.id !== undefined) {
|
||||
updateLineSymbolGroup({ ...this.form, symbol: this.form.symbol.toString() }).then(response => {
|
||||
if (response.code === 200) {
|
||||
this.formLoading = false
|
||||
this.msgSuccess(response.msg)
|
||||
this.open = false
|
||||
this.getList()
|
||||
} else {
|
||||
this.formLoading = false
|
||||
this.msgError(response.msg)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
addLineSymbolGroup({ ...this.form, symbol: this.form.symbol.toString() }).then(response => {
|
||||
if (response.code === 200) {
|
||||
this.formLoading = false
|
||||
this.msgSuccess(response.msg)
|
||||
this.open = false
|
||||
this.getList()
|
||||
} else {
|
||||
this.formLoading = false
|
||||
this.msgError(response.msg)
|
||||
}
|
||||
})
|
||||
|
||||
@ -62,6 +62,16 @@
|
||||
>修改
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
v-permisaction="['admin:lineSymbol:edit']"
|
||||
type="warning"
|
||||
icon="el-icon-upload"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
>导出
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
v-permisaction="['admin:lineSymbol:remove']"
|
||||
@ -212,7 +222,8 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { addLineSymbol, delLineSymbol, getLineSymbol, listLineSymbol, updateLineSymbol } from '@/api/admin/line-symbol'
|
||||
import { resolveBlob } from '@/utils/zipdownload'
|
||||
import { addLineSymbol, delLineSymbol, getLineSymbol, listLineSymbol, updateLineSymbol, exportSymbols } from '@/api/admin/line-symbol'
|
||||
|
||||
export default {
|
||||
name: 'LineSymbol',
|
||||
@ -308,7 +319,7 @@ export default {
|
||||
/** 查询参数列表 */
|
||||
getList() {
|
||||
this.loading = true
|
||||
listLineSymbol(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
||||
listLineSymbol(this.queryParams).then(response => {
|
||||
this.lineSymbolList = response.data.list
|
||||
this.total = response.data.count
|
||||
this.loading = false
|
||||
@ -426,6 +437,18 @@ export default {
|
||||
}
|
||||
}).catch(function() {
|
||||
})
|
||||
},
|
||||
handleExport() {
|
||||
this.$confirm('确认导出当前页面数据吗?', '警告', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
exportSymbols(this.queryParams).then(res => {
|
||||
resolveBlob(res, '交易对导出数据')
|
||||
this.msgSuccess('导出成功')
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user