1
jhzh
2025-07-06 c24f01e317c68e8d490af53210cee83d46297e20
src/views/position/components/financing-flat.vue
@@ -19,8 +19,7 @@
                  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>
@@ -30,11 +29,6 @@
            <a-col :md="12" :lg="6" :sm="24">
              <a-form-item label="用户Id">
                <a-input v-model="queryParam.userId" style="width: 100%" placeholder="请输入用户Id" />
              </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">
@@ -51,8 +45,7 @@
                  style="width: 100%"
                  v-model="times"
                  @change="onChangeRangeDate"
                  format="YYYY-MM-DD HH:mm:ss"
                >
                  format="YYYY-MM-DD HH:mm:ss">
                </a-range-picker>
              </a-form-item>
            </a-col>
@@ -60,13 +53,13 @@
            <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>
@@ -82,24 +75,14 @@
      :columns="columns"
      :data-source="datalist"
      rowKey="id"
      :scroll="{ x: 2800 }"
    >
      :scroll="{ x: 2800 }">
      <span slot="stockName" slot-scope="text, record">
        <template>
          <div>
            <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>
@@ -144,8 +127,6 @@
      </span>
      <template slot="action" slot-scope="text, record">
        <a slot="action" href="javascript:;" @click="getFlatdetails(record)">查看详情</a>
        <a-divider type="vertical" />
        <a slot="action" href="javascript:;" @click="getDelflat(record.id)">删除</a>
      </template>
    </a-table>
    <a-modal title="融资详情" :width="1000" :visible="finacingDialog" :footer="false" @cancel="finacingDialog = false">
@@ -155,16 +136,7 @@
        </a-descriptions-item>
        <a-descriptions-item label="股票类型">
          <a-tag
            :color="
              clickitem.stockPlate == '科创'
                ? 'blue'
                : !clickitem.stockPlate
                ? 'orange'
                : clickitem.stockPlate == '创业'
                ? 'pink'
                : 'purple'
            "
          >
            :color="clickitem.stockPlate == '科创' ? 'blue' : !clickitem.stockPlate ? 'orange' : clickitem.stockPlate == '创业' ? 'pink' : 'purple'">
            {{ clickitem.stockPlate == '科创' ? '科创' : !clickitem.stockPlate ? 'A股' : clickitem.stockPlate }}
          </a-tag>
        </a-descriptions-item>
@@ -184,20 +156,14 @@
          </span>
        </a-descriptions-item>
        <a-descriptions-item label="总盈亏">
          <span :class="clickitem.allProfitAndLose > 0 ? 'reds' : clickitem.allProfitAndLose < 0 ? 'greens' : ''">
          <span
            :class="clickitem.allProfitAndLose > 0 ? 'reds' : clickitem.allProfitAndLose < 0 ? 'greens' : ''">
            {{ clickitem.allProfitAndLose }}
          </span>
        </a-descriptions-item>
        <a-descriptions-item label="当前价格" v-if="clickitem.now_price">
          <span
            :class="
              clickitem.now_price - clickitem.buyOrderPrice > 0
                ? 'reds'
                : clickitem.now_price - clickitem.buyOrderPrice < 0
                ? 'greens'
                : ''
            "
          >
            :class="clickitem.now_price - clickitem.buyOrderPrice > 0 ? 'reds' : clickitem.now_price - clickitem.buyOrderPrice < 0 ? 'greens' : ''">
            {{ clickitem.now_price }}
          </span>
        </a-descriptions-item>
@@ -278,8 +244,8 @@
  </div>
</template>
<script>
import { positionlist, positiondel } 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: 'Financingflat',
@@ -291,13 +257,31 @@
          dataIndex: 'stockName',
          align: 'center',
          width: 180,
          scopedSlots: { customRender: 'stockName' },
                    scopedSlots: { customRender: 'stockName' }
        },
        {
          title: '账户类型',
          dataIndex: 'positionType',
          align: 'center',
          scopedSlots: { customRender: 'positionType' },
                    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)',
@@ -305,7 +289,8 @@
          align: 'center',
          customRender: (text, row, index) => {
            return `${row.nickName}(${row.userId})`
          },
                    }
        },
        {
          title: '持仓订单号(ID)',
@@ -313,13 +298,14 @@
          align: 'center',
          customRender: (text, row, index) => {
            return `${row.positionSn}(${row.id})`
          },
                    }
        },
        {
          title: '买卖方向',
          dataIndex: 'orderDirection',
          align: 'center',
          scopedSlots: { customRender: 'orderDirection' },
                    scopedSlots: { customRender: 'orderDirection' }
        },
        {
          title: '买入价',
@@ -327,7 +313,7 @@
          align: 'center',
          customRender: (text, row, index) => {
            return text.toFixed(2)
          },
                    }
        },
        {
          title: '卖出价',
@@ -335,73 +321,59 @@
          align: 'center',
          customRender: (text, row, index) => {
            return text.toFixed(2)
          },
                    }
        },
        {
          title: '浮动盈亏',
          dataIndex: 'profitAndLose',
          align: 'center',
          scopedSlots: { customRender: 'profitAndLose' },
                    scopedSlots: { customRender: 'profitAndLose' }
        },
        {
          title: '总盈亏',
          dataIndex: 'allProfitAndLose',
          align: 'center',
          scopedSlots: { customRender: 'allProfitAndLose' },
                    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})`
          },
                    align: 'center'
        },
        {
          title: '总市值',
          dataIndex: 'orderTotalPrice',
          align: 'center',
                    align: 'center'
        },
        {
          title: '杠杆倍数',
          dataIndex: 'orderLever',
          align: 'center',
                    align: 'center'
        },
        {
          title: '手续费',
          dataIndex: 'orderFee',
          align: 'center',
                    align: 'center'
        },
        {
          title: '印花税',
          dataIndex: 'orderSpread',
          align: 'center',
                    align: 'center'
        },
        {
          title: '留仓费',
          dataIndex: 'orderStayFee',
          align: 'center',
                    align: 'center'
        },
        {
          title: '留仓天数',
          dataIndex: 'orderStayDays',
          align: 'center',
                    align: 'center'
        },
        {
          title: '锁定原因',
          dataIndex: 'lockMsg',
          align: 'center',
                    align: 'center'
        },
        {
          title: '买入时间',
@@ -410,7 +382,7 @@
          width: 180,
          customRender: (text, row, index) => {
            return text ? moment(text).format('YYYY-MM-DD HH:mm:ss') : ''
          },
                    }
        },
        {
          title: '卖出时间',
@@ -419,7 +391,7 @@
          width: 180,
          customRender: (text, row, index) => {
            return text ? moment(text).format('YYYY-MM-DD HH:mm:ss') : ''
          },
                    }
        },
        {
          title: '操作',
@@ -427,8 +399,8 @@
          align: 'center',
          fixed: 'right',
          width: 150,
          scopedSlots: { customRender: 'action' },
        },
                    scopedSlots: { customRender: 'action' }
                }
      ],
      // 表头
      pagination: {
@@ -438,7 +410,7 @@
        pageSizeOptions: ['10', '20', '50', '100'], // 每页中显示的数据
        onShowSizeChange: (current, pageSize) => this.onSizeChange(current, pageSize), // 改变每页数量时更新显示
        onChange: (page, pageSize) => this.onPageChange(page, pageSize), // 点击页码事件
        showTotal: (total) => `共有 ${total} 条数据`, // 分页中显示总的数据
                showTotal: total => `共有 ${total} 条数据` // 分页中显示总的数据
      },
      loading: false,
      queryParam: {
@@ -448,11 +420,9 @@
        agentId: undefined,
        userId: '',
        positionSn: '',
        phone: '',
        state: 1,
        beginTime: '',
        endTime: '',
                endTime: ''
      },
      datalist: [],
      agentlist: [],
@@ -462,38 +432,16 @@
      clickitem: {},
      agentqueryParam: {
        pageNum: 1,
        pageSize: 100,
      },
                pageSize: 100
            }
    }
  },
  created() {},
    created () {
    },
  methods: {
    getFlatdetails(item) {
      this.clickitem = item
      this.finacingDialog = true
    },
    getDelflat(val) {
      var that = this
      this.$confirm({
        title: '提示',
        content: '确认删除平仓单吗?此操作不可恢复',
        onOk() {
          var data = {
            positionId: val,
          }
          positiondel(data).then((res) => {
            if (res.status == 0) {
              that.$message.success(res.msg)
              that.getlist()
            } else {
              that.$message.error(res.msg)
            }
          })
        },
        onCancel() {
          console.log('Cancel')
        },
      })
    },
    getinit() {
      this.queryParam = {
@@ -503,10 +451,9 @@
        agentId: undefined,
        userId: '',
        positionSn: '',
        phone: '',
        state: 1,
        beginTime: '',
        endTime: '',
                endTime: ''
      }
      this.times = []
      this.getlist()
@@ -520,20 +467,19 @@
        pageNum: 1,
        pageSize: 10,
        positionType: '',
        phone: '',
        agentId: undefined,
        userId: '',
        positionSn: '',
        state: 1,
        beginTime: '',
        endTime: '',
                endTime: ''
      }
      this.times = []
    },
    getagentlist() {
      var that = this
      this.agentloading = true
      nextagent(this.agentqueryParam).then((res) => {
            agentgetSecondAgent(this.agentqueryParam).then(res => {
        this.agentlist = res.data.list
        setTimeout(() => {
          that.agentloading = false
@@ -543,7 +489,7 @@
    getlist() {
      var that = this
      this.loading = true
      positionlist(this.queryParam).then((res) => {
            positionlist(this.queryParam).then(res => {
        this.datalist = res.data.list
        this.pagination.total = res.data.total
        setTimeout(() => {
@@ -559,8 +505,8 @@
      this.queryParam.pageNum = current
      this.queryParam.pageSize = pageSize
      this.getlist()
    },
  },
        }
    }
}
</script>
<style scoped>