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/index-hold.vue |  547 ++++++++++++++++++++++--------------------------------
 1 files changed, 220 insertions(+), 327 deletions(-)

diff --git a/src/views/position/components/index-hold.vue b/src/views/position/components/index-hold.vue
index 324c97b..50c2d06 100644
--- a/src/views/position/components/index-hold.vue
+++ b/src/views/position/components/index-hold.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>
@@ -42,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>
@@ -64,17 +64,17 @@
       :columns="columns"
       :data-source="datalist"
       rowKey="id"
-      :scroll="{ x: 2800 }"
-    >
-      <span slot="indexName" slot-scope="text, record">
+      :scroll="{ x: 2800 }">
+
+      <span slot="indexName" slot-scope="text,record">
         <template>
           <div>
-            <span style="margin-right: 10px">{{ record.indexName }}</span>
+            <span style="margin-right:10px">{{ record.indexName }}</span>
             <p>({{ record.indexCode }})</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'">
@@ -83,7 +83,7 @@
           </div>
         </template>
       </span>
-      <span slot="orderDirection" slot-scope="text, record">
+      <span slot="orderDirection" slot-scope="text,record">
         <template>
           <div>
             <a-tag :color="record.orderDirection == '买涨' ? 'red' : 'green'">
@@ -92,18 +92,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' : ''">
               {{ Number(record.now_price).toFixed(2) }}
             </p>
           </div>
@@ -127,329 +120,229 @@
           </div>
         </template>
       </span>
-
-      <template slot="action" slot-scope="text, record">
-        <a
-          slot="action"
-          href="javascript:;"
-          @click="
-            Lockvisibledialig = 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="Lockvisibledialig"
-      :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 { indexpositionlist, indexpositionlock, indexpositionsell } from '@/api/position'
-import { nextagent } from '@/api/home'
+import { indexpositionlist } from '@/api/position'
+import { agentgetSecondAgent } from '@/api/home'
 import moment from 'moment'
 export default {
-  name: 'IndexHold',
-  data() {
-    return {
-      columns: [
-        {
-          title: '指数名称',
-          dataIndex: 'indexName',
-          align: 'center',
-          width: 180,
-          scopedSlots: { customRender: 'indexName' },
-        },
-        {
-          title: '账户类型',
-          dataIndex: 'positionType',
-          align: 'center',
-          scopedSlots: { customRender: 'positionType' },
-        },
-        {
-          title: '用户名称(ID)',
-          dataIndex: 'realName',
-          align: 'center',
-          customRender: (text, row, index) => {
-            return `${row.realName}(${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: 'allDepositAmt',
-          align: 'center',
-        },
-        {
-          title: '浮动盈亏',
-          dataIndex: 'profitAndLose',
-          align: 'center',
-          scopedSlots: { customRender: 'profitAndLose' },
-        },
-        {
-          title: '总盈亏',
-          dataIndex: 'allProfitAndLose',
-          align: 'center',
-          scopedSlots: { customRender: 'allProfitAndLose' },
-        },
-        {
-          title: '数量(手)',
-          dataIndex: 'orderNum',
-          align: 'center',
-        },
-        {
-          title: '点浮动价',
-          dataIndex: 'eachPoint',
-          align: 'center',
-        },
-        {
-          title: '双边手续费',
-          dataIndex: 'orderFee',
-          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,
-      },
-      datalist: [],
-      agentlist: [],
-      agentloading: false,
-      Lockvisibledialig: false,
-      Lockvisibleloading: false,
-      Lockvisibleform: this.$form.createForm(this),
-      clickpositionId: '',
-      agentqueryParam: {
-        pageNum: 1,
-        pageSize: 100,
-      },
-    }
-  },
-  created() {},
-  methods: {
-    getCompulsoryclosing(val) {
-      var that = this
-      this.$confirm({
-        title: '提示',
-        content: '确认要强制平仓吗?',
-        onOk() {
-          var data = {
-            positionSn: val,
-          }
-          indexpositionsell(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,
-          }
-          indexpositionlock(data).then((res) => {
-            if (res.status == 0) {
-              that.$message.success(res.msg)
-              that.getlist()
-            } else {
-              that.$message.error(res.msg)
+    name: 'IndexHold',
+    data () {
+        return {
+            columns: [
+                {
+                    title: '指数名称',
+                    dataIndex: 'indexName',
+                    align: 'center',
+                    width: 180,
+                    scopedSlots: { customRender: 'indexName' }
+                },
+                {
+                    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: 'realName',
+                    align: 'center',
+                    customRender: (text, row, index) => {
+                        return `${row.realName}(${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: 'allDepositAmt',
+                    align: 'center'
+                },
+                {
+                    title: '浮动盈亏',
+                    dataIndex: 'profitAndLose',
+                    align: 'center',
+                    scopedSlots: { customRender: 'profitAndLose' }
+                },
+                {
+                    title: '总盈亏',
+                    dataIndex: 'allProfitAndLose',
+                    align: 'center',
+                    scopedSlots: { customRender: 'allProfitAndLose' }
+                },
+                {
+                    title: '数量(手)',
+                    dataIndex: 'orderNum',
+                    align: 'center'
+                },
+                {
+                    title: '点浮动价',
+                    dataIndex: 'eachPoint',
+                    align: 'center'
+                },
+                {
+                    title: '双边手续费',
+                    dataIndex: 'orderFee',
+                    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,
+            Lockvisibledialig: false,
+            Lockvisibleloading: false,
+            Lockvisibleform: this.$form.createForm(this),
+            clickpositionId: '',
+            agentqueryParam: {
+                pageNum: 1,
+                pageSize: 100
             }
-          })
-        },
-        onCancel() {
-          console.log('Cancel')
-        },
-      })
-    },
-    handleCancel() {
-      this.Lockvisibledialig = 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,
-          }
-          indexpositionlock(data).then((res) => {
-            if (res.status == 0) {
-              this.Lockvisibledialig = false
-              this.$message.success(res.msg)
-              form.resetFields()
-              this.getlist()
-            } else {
-              this.$message.error(res.msg)
-            }
-            this.Lockvisibleloading = false
-          })
         }
-      })
     },
-    getinit() {
-      this.queryParam = {
-        pageNum: 1,
-        pageSize: 10,
-        positionType: '',
-        agentId: undefined,
-        userId: '',
-        positionSn: '',
-        state: 0,
-      }
-      this.getlist()
+    created () {
     },
-    getqueryParam() {
-      this.queryParam = {
-        pageNum: 1,
-        pageSize: 10,
-        positionType: '',
-        agentId: undefined,
-        userId: '',
-        positionSn: '',
-        state: 0,
-      }
-    },
-    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
-      indexpositionlist(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
+            indexpositionlist(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