From c24f01e317c68e8d490af53210cee83d46297e20 Mon Sep 17 00:00:00 2001
From: jhzh <1628036192@qq.com>
Date: Sun, 06 Jul 2025 15:33:16 +0800
Subject: [PATCH] 1
---
src/views/position/components/financing-hold.vue | 621 +++++++++++++++++++++----------------------------------
1 files changed, 238 insertions(+), 383 deletions(-)
diff --git a/src/views/position/components/financing-hold.vue b/src/views/position/components/financing-hold.vue
index b3f160d..f65a2e8 100644
--- a/src/views/position/components/financing-hold.vue
+++ b/src/views/position/components/financing-hold.vue
@@ -4,7 +4,7 @@
<div class="table-page-search-wrapper">
<a-form layout="inline">
<a-row :gutter="48">
- <!-- <a-col :md="12" :lg="6" :sm="24">
+ <a-col :md="12" :lg="6" :sm="24">
<a-form-item label="持仓类型">
<a-select v-model="queryParam.positionType" placeholder="请选择持仓类型">
<a-select-option :value="''">全部</a-select-option>
@@ -12,15 +12,14 @@
<a-select-option :value="1">模拟持仓</a-select-option>
</a-select>
</a-form-item>
- </a-col> -->
+ </a-col>
<a-col :md="12" :lg="6" :sm="24">
<a-form-item label="下级代理">
<a-select
v-model="queryParam.agentId"
placeholder="请选择下级代理"
@focus="getagentlist"
- :loading="agentloading"
- >
+ :loading="agentloading">
<a-select-option v-for="(item, index) in agentlist" :key="index" :value="item.id">
{{ item.agentName }}
</a-select-option>
@@ -33,11 +32,6 @@
</a-form-item>
</a-col>
<a-col :md="12" :lg="6" :sm="24">
- <a-form-item label="手机号">
- <a-input v-model="queryParam.phone" style="width: 100%" placeholder="请输入手机号" />
- </a-form-item>
- </a-col>
- <a-col :md="12" :lg="6" :sm="24">
<a-form-item label="持仓订单号">
<a-input v-model="queryParam.positionSn" style="width: 100%" placeholder="请输入持仓订单号" />
</a-form-item>
@@ -47,14 +41,15 @@
<a-col :md="12" :lg="6" :sm="24">
<a-form-item>
<span class="table-page-search-submitButtons">
- <a-button @click="getqueryParam" icon="redo"> 重置</a-button>
+ <a-button @click="getqueryParam" icon="redo">
+ 重置</a-button>
<a-button
type="primary"
icon="search"
style="margin-left: 8px"
- @click=";(queryParam.pageNum = 1), getlist()"
- >查询
+ @click="queryParam.pageNum = 1, getlist()">查询
</a-button>
+
</span>
</a-form-item>
</a-col>
@@ -69,30 +64,21 @@
:columns="columns"
:data-source="datalist"
rowKey="id"
- :scroll="{ x: 2800 }"
- >
- <span slot="stockName" slot-scope="text, record">
+ :scroll="{ x: 2800 }">
+
+ <span slot="stockName" slot-scope="text,record">
<template>
<div>
- <span style="margin-right: 10px">{{ record.stockName }}</span>
+ <span style="margin-right:10px">{{ record.stockName }}</span>
<a-tag
- :color="
- record.stockPlate == '科创'
- ? 'blue'
- : !record.stockPlate
- ? 'orange'
- : record.stockPlate == '创业'
- ? 'pink'
- : 'purple'
- "
- >
- {{ record.stockPlate == '科创' ? '科创' : !record.stockPlate ? '股票' : record.stockPlate }}
+ :color="record.stockPlate == '科创' ? 'blue' : !record.stockPlate ? 'orange' : record.stockPlate == '创业' ? 'pink' : 'purple'">
+ {{ record.stockPlate == '科创' ? '科创' : !record.stockPlate ? 'A股' : record.stockPlate }}
</a-tag>
<p>({{ record.stockCode }})</p>
</div>
</template>
</span>
- <!-- <span slot="positionType" slot-scope="text, record">
+ <span slot="positionType" slot-scope="text,record">
<template>
<div>
<a-tag :color="record.positionType == 1 ? 'blue' : 'green'">
@@ -100,8 +86,8 @@
</a-tag>
</div>
</template>
- </span> -->
- <span slot="orderDirection" slot-scope="text, record">
+ </span>
+ <span slot="orderDirection" slot-scope="text,record">
<template>
<div>
<a-tag :color="record.orderDirection == '买涨' ? 'red' : 'green'">
@@ -110,18 +96,11 @@
</div>
</template>
</span>
- <span slot="now_price" slot-scope="text, record">
+ <span slot="now_price" slot-scope="text,record">
<template>
<div>
<p
- :class="
- Number(record.now_price) - record.buyOrderPrice < 0
- ? 'greens'
- : Number(record.now_price) - record.buyOrderPrice > 0
- ? 'reds'
- : ''
- "
- >
+ :class="Number(record.now_price) - record.buyOrderPrice < 0 ? 'greens' : Number(record.now_price) - record.buyOrderPrice > 0 ? 'reds' : ''">
{{ record.now_price }}
</p>
</div>
@@ -145,366 +124,242 @@
</div>
</template>
</span>
-
- <template slot="action" slot-scope="text, record">
- <a
- slot="action"
- href="javascript:;"
- @click="
- Lockvisibledialog = true
- clickpositionId = record.id
- "
- v-if="record.isLock == 0"
- >锁仓</a
- >
- <a slot="action" href="javascript:;" @click="getLockopen(record.id)" v-else>解锁</a>
- <a-divider type="vertical" />
- <a slot="action" href="javascript:;" @click="getCompulsoryclosing(record.positionSn)">强制平仓</a>
- </template>
</a-table>
- <a-modal
- title="锁仓"
- :width="640"
- :visible="Lockvisibledialog"
- :confirmLoading="Lockvisibleloading"
- @ok="getDialogok"
- @cancel="handleCancel"
- >
- <a-form :form="Lockvisibleform" ref="createModal">
- <a-form-item>
- <a-input
- v-decorator="['lockMsg', { rules: [{ required: true, message: '请输入锁仓原因!', whitespace: true }] }]"
- placeholder="请输入锁仓原因!"
- />
- </a-form-item>
- </a-form>
- </a-modal>
</div>
</template>
<script>
-import { positionlist, positionlock, positionsell } from '@/api/position'
-import { nextagent } from '@/api/home'
+import { positionlist } from '@/api/position'
+import { agentgetSecondAgent } from '@/api/home'
import moment from 'moment'
export default {
- name: 'Financinghold',
- data() {
- return {
- columns: [
- {
- title: '融资名称',
- dataIndex: 'stockName',
- align: 'center',
- width: 180,
- scopedSlots: { customRender: 'stockName' },
- },
- // {
- // title: '账户类型',
- // dataIndex: 'positionType',
- // align: 'center',
- // scopedSlots: { customRender: 'positionType' },
- // },
- {
- title: '用户名称(ID)',
- dataIndex: 'nickName',
- align: 'center',
- customRender: (text, row, index) => {
- return `${row.nickName}(${row.userId})`
- },
- },
- {
- title: '持仓订单号(ID)',
- dataIndex: 'positionSn',
- align: 'center',
- customRender: (text, row, index) => {
- return `${row.positionSn}(${row.id})`
- },
- },
- {
- title: '买卖方向',
- dataIndex: 'orderDirection',
- align: 'center',
- scopedSlots: { customRender: 'orderDirection' },
- },
- {
- title: '买入价',
- dataIndex: 'buyOrderPrice',
- align: 'center',
- customRender: (text, row, index) => {
- return text.toFixed(2)
- },
- },
- {
- title: '现价',
- dataIndex: 'now_price',
- align: 'center',
- scopedSlots: { customRender: 'now_price' },
- },
- {
- title: '浮动盈亏',
- dataIndex: 'profitAndLose',
- align: 'center',
- scopedSlots: { customRender: 'profitAndLose' },
- },
- {
- title: '总盈亏',
- dataIndex: 'allProfitAndLose',
- align: 'center',
- scopedSlots: { customRender: 'allProfitAndLose' },
- },
- {
- title: '数量(股)',
- dataIndex: 'orderNum',
- align: 'center',
- },
- {
- title: '账号',
- dataIndex: 'phone',
- align: 'center',
- },
- {
- title: '所属代理(ID)',
- dataIndex: 'agentName_Id',
- align: 'center',
- customRender: (text, row, index) => {
- return `${row.agentName}(${row.agentId})`
- },
- },
- {
- title: '总市值',
- dataIndex: 'orderTotalPrice',
- align: 'center',
- },
- {
- title: '杠杆倍数',
- dataIndex: 'orderLever',
- align: 'center',
- },
- {
- title: '手续费',
- dataIndex: 'orderFee',
- align: 'center',
- },
- {
- title: '印花税',
- dataIndex: 'orderSpread',
- align: 'center',
- },
- {
- title: '留仓费',
- dataIndex: 'orderStayFee',
- align: 'center',
- },
- {
- title: '留仓天数',
- dataIndex: 'orderStayDays',
- align: 'center',
- },
- {
- title: '锁定原因',
- dataIndex: 'lockMsg',
- align: 'center',
- },
- {
- title: '买入时间',
- dataIndex: 'buyOrderTime',
- align: 'center',
- width: 180,
- customRender: (text, row, index) => {
- return text ? moment(text).format('YYYY-MM-DD HH:mm:ss') : ''
- },
- },
- {
- title: '操作',
- key: 'action',
- align: 'center',
- fixed: 'right',
- width: 150,
- scopedSlots: { customRender: 'action' },
- },
- ],
- // 表头
- pagination: {
- total: 0,
- pageSize: 10, // 每页中显示10条数据
- showSizeChanger: true,
- pageSizeOptions: ['10', '20', '50', '100'], // 每页中显示的数据
- onShowSizeChange: (current, pageSize) => this.onSizeChange(current, pageSize), // 改变每页数量时更新显示
- onChange: (page, pageSize) => this.onPageChange(page, pageSize), // 点击页码事件
- showTotal: (total) => `共有 ${total} 条数据`, // 分页中显示总的数据
- },
- loading: false,
- queryParam: {
- pageNum: 1,
- pageSize: 10,
- positionType: '',
- agentId: undefined,
- userId: '',
- positionSn: '',
- state: 0,
- phone: '',
- },
- datalist: [],
- agentlist: [],
- agentloading: false,
- Lockvisibledialog: false,
- Lockvisibleloading: false,
- Lockvisibleform: this.$form.createForm(this),
- clickpositionId: '',
- agentqueryParam: {
- pageNum: 1,
- pageSize: 100,
- },
- }
- },
- created() {
- this.getlist()
- },
- methods: {
- getCompulsoryclosing(val) {
- var that = this
- this.$confirm({
- title: '提示',
- content: '确认要强制平仓吗?',
- onOk() {
- var data = {
- positionSn: val,
- }
- positionsell(data)
- .then((res) => {
- if (res.status == 0) {
- that.$message.success(res.msg)
- that.getlist()
- } else {
- that.$message.error({ content: '平仓失败' })
- }
- })
- .catch((error) => {
- that.$message.error({ content: '平仓失败' })
- })
- },
- onCancel() {
- console.log('Cancel')
- },
- })
- },
- getLockopen(val) {
- var that = this
- this.$confirm({
- title: '提示',
- content: '确认要解锁该持仓单?',
- onOk() {
- var data = {
- state: 0,
- positionId: val,
- }
- positionlock(data).then((res) => {
- if (res.status == 0) {
- that.$message.success(res.msg)
- that.getlist()
- } else {
- that.$message.error(res.msg)
+ name: 'Financinghold',
+ data () {
+ return {
+ columns: [
+ {
+ title: '融资名称',
+ dataIndex: 'stockName',
+ align: 'center',
+ width: 180,
+ scopedSlots: { customRender: 'stockName' }
+ },
+ {
+ title: '账户类型',
+ dataIndex: 'positionType',
+ align: 'center',
+ scopedSlots: { customRender: 'positionType' }
+ },
+
+ {
+ title: '代理',
+ dataIndex: 'agentName',
+ align: 'center',
+ // customRender: (text, row, index) => {
+ // return `${row.nickName}(${row.userId})`
+ // }
+
+ },
+ {
+ title: '手机号',
+ dataIndex: 'phone',
+ align: 'center',
+ // customRender: (text, row, index) => {
+ // return `${row.nickName}(${row.userId})`
+ // }
+
+ },
+ {
+ title: '用户名称(ID)',
+ dataIndex: 'nickName',
+ align: 'center',
+ customRender: (text, row, index) => {
+ return `${row.nickName}(${row.userId})`
+ }
+
+ },
+ {
+ title: '持仓订单号(ID)',
+ dataIndex: 'positionSn',
+ align: 'center',
+ customRender: (text, row, index) => {
+ return `${row.positionSn}(${row.id})`
+ }
+
+ },
+ {
+ title: '买卖方向',
+ dataIndex: 'orderDirection',
+ align: 'center',
+ scopedSlots: { customRender: 'orderDirection' }
+ },
+ {
+ title: '买入价',
+ dataIndex: 'buyOrderPrice',
+ align: 'center',
+ customRender: (text, row, index) => {
+ return text.toFixed(2)
+ }
+ },
+ {
+ title: '现价',
+ dataIndex: 'now_price',
+ align: 'center',
+ scopedSlots: { customRender: 'now_price' }
+ },
+ {
+ title: '浮动盈亏',
+ dataIndex: 'profitAndLose',
+ align: 'center',
+ scopedSlots: { customRender: 'profitAndLose' }
+ },
+ {
+ title: '总盈亏',
+ dataIndex: 'allProfitAndLose',
+ align: 'center',
+ scopedSlots: { customRender: 'allProfitAndLose' }
+ },
+ {
+ title: '数量(股)',
+ dataIndex: 'orderNum',
+ align: 'center'
+ },
+ {
+ title: '总市值',
+ dataIndex: 'orderTotalPrice',
+ align: 'center'
+ },
+ {
+ title: '杠杆倍数',
+ dataIndex: 'orderLever',
+ align: 'center'
+ },
+ {
+ title: '手续费',
+ dataIndex: 'orderFee',
+ align: 'center'
+ },
+ {
+ title: '印花税',
+ dataIndex: 'orderSpread',
+ align: 'center'
+ },
+ {
+ title: '留仓费',
+ dataIndex: 'orderStayFee',
+ align: 'center'
+ },
+ {
+ title: '留仓天数',
+ dataIndex: 'orderStayDays',
+ align: 'center'
+ },
+ {
+ title: '锁定原因',
+ dataIndex: 'lockMsg',
+ align: 'center'
+ },
+ {
+ title: '买入时间',
+ dataIndex: 'buyOrderTime',
+ align: 'center',
+ width: 180,
+ customRender: (text, row, index) => {
+ return text ? moment(text).format('YYYY-MM-DD HH:mm:ss') : ''
+ }
+ }
+ ],
+ // 表头
+ pagination: {
+ total: 0,
+ pageSize: 10, // 每页中显示10条数据
+ showSizeChanger: true,
+ pageSizeOptions: ['10', '20', '50', '100'], // 每页中显示的数据
+ onShowSizeChange: (current, pageSize) => this.onSizeChange(current, pageSize), // 改变每页数量时更新显示
+ onChange: (page, pageSize) => this.onPageChange(page, pageSize), // 点击页码事件
+ showTotal: total => `共有 ${total} 条数据` // 分页中显示总的数据
+ },
+ loading: false,
+ queryParam: {
+ pageNum: 1,
+ pageSize: 10,
+ positionType: '',
+ agentId: undefined,
+ userId: '',
+ positionSn: '',
+ state: 0
+ },
+ datalist: [],
+ agentlist: [],
+ agentloading: false,
+ agentqueryParam: {
+ pageNum: 1,
+ pageSize: 100
}
- })
- },
- onCancel() {
- console.log('Cancel')
- },
- })
- },
- handleCancel() {
- this.Lockvisibledialog = false
- const form = this.$refs.createModal.form
- form.resetFields()
- },
- getDialogok() {
- const form = this.$refs.createModal.form
- form.validateFields((errors, values) => {
- if (!errors) {
- this.Lockvisibleloading = true
- var data = {
- state: 1,
- lockMsg: values.lockMsg,
- positionId: this.clickpositionId,
- }
- positionlock(data)
- .then((res) => {
- if (res.status == 0) {
- this.Lockvisibledialog = false
- this.$message.success(res.msg)
- form.resetFields()
- this.getlist()
- } else {
- this.$message.error(res.msg)
- }
- this.Lockvisibleloading = false
- })
- .catch((error) => {
- reject(error)
- })
}
- })
},
- getinit() {
- this.queryParam = {
- pageNum: 1,
- pageSize: 10,
- positionType: '',
- agentId: undefined,
- userId: '',
- positionSn: '',
- state: 0,
- phone: '',
- }
- this.getlist()
+ created () {
+ this.getlist()
},
- getqueryParam() {
- this.queryParam = {
- pageNum: 1,
- pageSize: 10,
- positionType: '',
- agentId: undefined,
- userId: '',
- positionSn: '',
- state: 0,
- phone: '',
- }
- },
- getagentlist() {
- var that = this
- this.agentloading = true
- nextagent(this.agentqueryParam).then((res) => {
- this.agentlist = res.data.list
- setTimeout(() => {
- that.agentloading = false
- }, 500)
- })
- },
- getlist() {
- this.loading = true
- positionlist(this.queryParam).then((res) => {
- this.datalist = res.data.list
- this.pagination.total = res.data.total
- this.loading = false
- })
- },
- onPageChange(page, pageSize) {
- this.queryParam.pageNum = page
- this.getlist()
- },
- onSizeChange(current, pageSize) {
- this.queryParam.pageNum = current
- this.queryParam.pageSize = pageSize
- this.getlist()
- },
- },
+ methods: {
+ getinit () {
+ this.queryParam = {
+ pageNum: 1,
+ pageSize: 10,
+ positionType: '',
+ agentId: undefined,
+ userId: '',
+ positionSn: '',
+ state: 0
+ }
+ this.getlist()
+ },
+ getqueryParam () {
+ this.queryParam = {
+ pageNum: 1,
+ pageSize: 10,
+ positionType: '',
+ agentId: undefined,
+ userId: '',
+ positionSn: '',
+ state: 0
+ }
+ },
+ getagentlist () {
+ var that = this
+ this.agentloading = true
+ agentgetSecondAgent(this.agentqueryParam).then(res => {
+ this.agentlist = res.data.list
+ setTimeout(() => {
+ that.agentloading = false
+ }, 500)
+ })
+ },
+ getlist () {
+ this.loading = true
+ positionlist(this.queryParam).then(res => {
+ this.datalist = res.data.list
+ this.pagination.total = res.data.total
+ this.loading = false
+ })
+ },
+ onPageChange (page, pageSize) {
+ this.queryParam.pageNum = page
+ this.getlist()
+ },
+ onSizeChange (current, pageSize) {
+ this.queryParam.pageNum = current
+ this.queryParam.pageSize = pageSize
+ this.getlist()
+ }
+ }
}
</script>
<style scoped>
.greens {
- color: #52c41a;
+ color: #52c41a;
}
.reds {
- color: #f5222d;
+ color: #f5222d;
}
</style>
--
Gitblit v1.9.3