From 55424ae85fe3b97a0fa383e00515e5edc4e9a75b Mon Sep 17 00:00:00 2001
From: dcc <dcc@163.com>
Date: Sun, 07 Jul 2024 10:15:18 +0800
Subject: [PATCH] 7.6更改的东西

---
 .env.development                                          |    3 
 src/views/position/components/currentPriceReview-hold.vue |  410 ++++++++++++++++++++++
 src/views/vip/VIPScramble.vue                             |   32 +
 src/api/position.js                                       |   66 +++
 .env.preview                                              |    3 
 .env                                                      |    1 
 src/config/router.config.js                               |   31 +
 src/views/vip/components/VIPScramble-hold.vue             |  467 +++++++++++++++++++++++++
 src/views/position/currentPriceReview.vue                 |   32 +
 9 files changed, 1,038 insertions(+), 7 deletions(-)

diff --git a/.env b/.env
index 0e1f041..bd59509 100644
--- a/.env
+++ b/.env
@@ -2,6 +2,7 @@
 VUE_APP_PREVIEW=true
 # VUE_APP_API_BASE_URL= https://www.prudentcapitals.net/
 # VUE_APP_API_BASE_URL=http://www.jqydl.com:8091/
+# VUE_APP_API_BASE_URL= http://192.168.10.5:8091/
  VUE_APP_API_BASE_URL= https://api.apratrade.com/
 # VUE_APP_API_BASE_URL=https://www.rksv.store:8091/
 # VUE_APP_API_BASE_URL=http://www.ojwuf.com:8091/
diff --git a/.env.development b/.env.development
index 5781c18..112a665 100644
--- a/.env.development
+++ b/.env.development
@@ -6,6 +6,7 @@
 # VUE_APP_API_BASE_URL=https://www.rksv.store:8091/
 # VUE_APP_API_BASE_URL=http://www.ojwuf.com:8091/
 # VUE_APP_API_BASE_URL=http://192.168.0.105:8091/
-VUE_APP_API_BASE_URL=https://api.apratrade.com/
+# VUE_APP_API_BASE_URL=http://192.168.10.5:8091/
+ VUE_APP_API_BASE_URL= https://api.apratrade.com/
 # VUE_APP_API_BASE_URL= https://www.prudentcapitals.net/
 # VUE_APP_API_BASE_URL=https://api.guosen.org/
\ No newline at end of file
diff --git a/.env.preview b/.env.preview
index 6eff5f7..933b0dc 100644
--- a/.env.preview
+++ b/.env.preview
@@ -2,4 +2,5 @@
 
 VUE_APP_PREVIEW=true
 
-VUE_APP_API_BASE_URL=https://api.apratrade.com/
\ No newline at end of file
+# VUE_APP_API_BASE_URL=http://192.168.10.5:8091/
+ VUE_APP_API_BASE_URL= https://api.apratrade.com/
\ No newline at end of file
diff --git a/src/api/position.js b/src/api/position.js
index 28fcdab..07f64d7 100644
--- a/src/api/position.js
+++ b/src/api/position.js
@@ -1,10 +1,17 @@
 import request from '@/utils/request'
 import qs from 'qs'
 const userApi = {
+    orderList: '/admin/pending/orderList.do', //现价交易
+    sitevipList: '/admin/sitevip/list.do', //vip
+    sitevipAdd: '/admin/sitevip/add.do', //vip sitevipUpdate
+    sitevipUpdate: '/admin/sitevip/update.do', //vip
+    sitevipDel: '/admin/sitevip/del.do', //vip
+    sitevipUpdateStatus: '/admin/sitevip/updateStatus.do', //vip
     positionlist: '/admin/position/list.do', // 融资列表
     indexpositionlist: '/admin/index/position/list.do', // 指数列表
     futurespositionlist: '/admin/futures/position/list.do', // 期货列表
     positionlock: '/admin/position/lock.do', // 融资锁仓 解锁
+    examine: '/admin/pending/examine.do', //管理员审核挂单接口
     positionsell: '/admin/position/sell.do', // 融资强制平仓
     positiondel: '/admin/position/del.do', //  融资平仓删除
     indexpositionlock: '/admin/index/position/lock.do', // 指数锁仓 解锁
@@ -36,6 +43,57 @@
         data: qs.stringify(parameter)
     })
 }
+
+export function orderList (parameter) {
+    return request({
+        url: userApi.orderList,
+        method: 'get',
+        params: parameter
+    })
+}
+
+export function sitevipList (parameter) {
+    return request({
+        url: userApi.sitevipList,
+        method: 'get',
+        params: parameter
+    })
+}
+
+
+export function sitevipAdd (parameter) {
+    return request({
+        url: userApi.sitevipAdd,
+        method: 'post',
+        data: qs.stringify(parameter)
+    })
+}
+
+export function sitevipUpdate (parameter) {
+    return request({
+        url: userApi.sitevipUpdate,
+        method: 'post',
+        data: qs.stringify(parameter)
+    })
+}
+
+
+export function sitevipDel (parameter) {
+    return request({
+        url: userApi.sitevipDel,
+        method: 'get',
+        params: parameter
+    })
+}
+
+export function sitevipUpdateStatus (parameter) {
+    return request({
+        url: userApi.sitevipUpdateStatus,
+        method: 'post',
+        data: qs.stringify(parameter)
+    })
+}
+
 export function indexpositionlist (parameter) {
     return request({
         url: userApi.indexpositionlist,
@@ -59,6 +117,14 @@
     })
 }
 
+export function examine (parameter) {
+    return request({
+        url: userApi.examine,
+        method: 'post',
+        data: qs.stringify(parameter)
+    })
+}
+
 export function positionsell (parameter) {
     return request({
         url: userApi.positionsell,
diff --git a/src/config/router.config.js b/src/config/router.config.js
index 6b033cf..fc8a790 100644
--- a/src/config/router.config.js
+++ b/src/config/router.config.js
@@ -171,6 +171,12 @@
             component: () => import('@/views/position/financing'),
             meta: { title: '持仓管理', keepAlive: true, permission: ['financing'] },
           },
+          {
+            path: '/position/currentPriceReview',
+            name: 'currentPriceReview',
+            component: () => import('@/views/position/currentPriceReview'),
+            meta: { title: '现价审核', keepAlive: true, permission: ['financing'] },
+          },
           // {
           //   path: '/position/createfinancing',
           //   name: 'createfinancing',
@@ -330,7 +336,7 @@
             name: 'timelist',
             component: () => import('@/views/risksetting/timelist'),
             meta: { title: '股票时间列表', keepAlive: true, permission: ['timelist'] },
-          },
+          }
           // {
           //   path: '/risksetting/indexsetting',
           //   name: 'indexsetting',
@@ -344,6 +350,21 @@
           //   component: () => import('@/views/risksetting/spreadsetting'),
           //   meta: { title: '点差设置', keepAlive: true, permission: ['spreadsetting'] },
           // },
+        ],
+      },
+      // // vip抢筹
+      {
+        path: '/vip',
+        redirect: '/vip/VIPScramble',
+        component: RouteView,
+        meta: { title: 'VIP抢筹', icon: 'money-collect', permission: ['financing'] },
+        children: [
+          {
+            path: '/vip/VIPScramble',
+            name: 'VIPScramble',
+            component: () => import('@/views/vip/VIPScramble'),
+            meta: { title: 'VIP抢筹', keepAlive: true, permission: ['financing'] },
+          },
         ],
       },
       // 系统设置
@@ -614,14 +635,14 @@
             path: '/loanmanage/index',
             name: 'Loanmanage',
             component: () => import('@/views/loanmanage/index'),
-            meta: { title: '贷款列表', keepAlive: true, permission: ['loanmanage'] }
+            meta: { title: '贷款列表', keepAlive: true, permission: ['loanmanage'] },
           },
           {
             path: '/loanmanage/institution',
             name: 'institution',
             component: () => import('@/views/loanmanage/institution'),
-            meta: { title: '贷款机构', keepAlive: true, permission: ['institution'] }
-          }
+            meta: { title: '贷款机构', keepAlive: true, permission: ['institution'] },
+          },
           // {
           //   path: '/loanmanage/institution',
           //   name: 'Institution',
@@ -634,7 +655,7 @@
           //   component: () => import('@/views/loanmanage/index'),
           //   meta: { title: '贷款机构', keepAlive: true, permission: ['loanmanage'] }
           // }
-        ]
+        ],
       },
       {
         path: '/interesttreasure',
diff --git a/src/views/position/components/currentPriceReview-hold.vue b/src/views/position/components/currentPriceReview-hold.vue
new file mode 100644
index 0000000..8ac63ed
--- /dev/null
+++ b/src/views/position/components/currentPriceReview-hold.vue
@@ -0,0 +1,410 @@
+<template>
+  <div>
+    <a-card :bordered="false">
+      <div class="table-page-search-wrapper">
+        <a-form layout="inline">
+          <a-row :gutter="48">
+            <a-col :md="12" :lg="6" :sm="24">
+              <a-form-item label="搜索关键次">
+                <a-input v-model="queryParam.keywords" style="width: 100%" placeholder="请输入搜索关键次" />
+              </a-form-item>
+            </a-col>
+            <a-col :md="12" :lg="6" :sm="24">
+              <a-form-item label="状态">
+                <a-select v-model="queryParam.status" placeholder="请选择状态">
+                  <a-select-option :value="''">全部</a-select-option>
+                  <a-select-option :value="0">已挂单</a-select-option>
+                  <a-select-option :value="1">买入成功</a-select-option>
+                  <a-select-option :value="2">买入失败</a-select-option>
+                </a-select>
+              </a-form-item>
+            </a-col>
+          </a-row>
+          <a-row :gutter="48">
+            <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
+                    type="primary"
+                    icon="search"
+                    style="margin-left: 8px"
+                    @click=";(queryParam.pageNum = 1), getlist()"
+                    >查询
+                  </a-button>
+                </span>
+              </a-form-item>
+            </a-col>
+          </a-row>
+        </a-form>
+      </div>
+    </a-card>
+    <a-table
+      bordered
+      :loading="loading"
+      :pagination="pagination"
+      :columns="columns"
+      :data-source="datalist"
+      rowKey="id"
+    >
+      <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 }}
+            </a-tag>
+            <p>({{ record.stockCode }})</p>
+          </div>
+        </template>
+      </span>
+      <span slot="positionType" slot-scope="text, record">
+        <template>
+          <div>
+            <a-tag :color="record.positionType == 1 ? 'blue' : 'green'">
+              {{ record.positionType == 1 ? '模拟持仓' : '正式持仓' }}
+            </a-tag>
+          </div>
+        </template>
+      </span>
+      <span slot="status" slot-scope="text, record">
+        <template>
+          <div>
+            <a-tag v-if="record.status == 0"> 已挂单 </a-tag>
+            <a-tag v-if="record.status == 1"> 买入成功 </a-tag>
+            <a-tag v-if="record.status == 2"> 买入失败 </a-tag>
+          </div>
+        </template>
+      </span>
+      <span slot="orderDirection" slot-scope="text, record">
+        <template>
+          <div>
+            <a-tag :color="record.orderDirection == '买涨' ? 'red' : 'green'">
+              {{ record.orderDirection }}
+            </a-tag>
+          </div>
+        </template>
+      </span>
+      <span slot="nowPrice" slot-scope="text, record">
+        <template>
+          <div>
+            <p
+              :class="
+                Number(record.nowPrice) - record.targetPrice < 0
+                  ? 'greens'
+                  : Number(record.nowPrice) - record.targetPrice > 0
+                  ? 'reds'
+                  : ''
+              "
+            >
+              {{ record.nowPrice }}
+            </p>
+          </div>
+        </template>
+      </span>
+      <span slot="profitAndLose" slot-scope="text">
+        <template>
+          <div>
+            <p :class="text < 0 ? 'greens' : text > 0 ? 'reds' : ''">
+              {{ text }}
+            </p>
+          </div>
+        </template>
+      </span>
+      <span slot="allProfitAndLose" slot-scope="text">
+        <template>
+          <div>
+            <p :class="text < 0 ? 'greens' : text > 0 ? 'reds' : ''">
+              {{ text }}
+            </p>
+          </div>
+        </template>
+      </span>
+
+      <template slot="action" slot-scope="text, record">
+        <a slot="action" href="javascript:;" @click="getLockopen(record.id)">转持仓</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, orderList, examine } from '@/api/position'
+import { nextagent } from '@/api/home'
+import moment from 'moment'
+export default {
+  name: 'Financinghold',
+  data() {
+    return {
+      columns: [
+        {
+          title: 'ID',
+          dataIndex: 'id',
+          align: 'center',
+        },
+        {
+          title: '用户ID',
+          dataIndex: 'userId',
+          align: 'center',
+        },
+        {
+          title: '股票ID',
+          dataIndex: 'stockId',
+          align: 'center',
+        },
+        {
+          title: '数量',
+          dataIndex: 'buyNum',
+          align: 'center',
+        },
+        // {
+        //   title: '类型',
+        //   dataIndex: 'buyType',
+        //   align: 'center',
+        // },
+        {
+          title: '止盈',
+          dataIndex: 'profitTarget',
+          align: 'center',
+        },
+        {
+          title: '止损',
+          dataIndex: 'stopTarget',
+          align: 'center',
+        },
+        {
+          title: '现价',
+          dataIndex: 'nowPrice',
+          align: 'center',
+          scopedSlots: { customRender: 'nowPrice' },
+        },
+        {
+          title: '目标价格',
+          dataIndex: 'targetPrice',
+          align: 'center',
+        },
+        {
+          title: '状态',
+          dataIndex: 'status',
+          align: 'center',
+          scopedSlots: { customRender: 'status' },
+        },
+        {
+          title: '添加时间',
+          dataIndex: 'addTime',
+          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,
+        keywords: '',
+        status: '',
+      },
+      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 = {
+            id: val,
+          }
+          examine(data).then((res) => {
+            if (res.status == 0) {
+              that.$message.success(res.msg)
+              that.getlist()
+            } else {
+              that.$message.error(res.msg)
+            }
+          })
+        },
+        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,
+        keywords: '',
+        status: '',
+      }
+      this.getlist()
+    },
+    getqueryParam() {
+      this.queryParam = {
+        pageNum: 1,
+        pageSize: 10,
+        keywords: '',
+        status: '',
+      }
+    },
+    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
+      console.log(this.queryParam)
+      orderList(this.queryParam).then((res) => {
+        console.log(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;
+}
+
+.reds {
+  color: #f5222d;
+}
+</style>
diff --git a/src/views/position/currentPriceReview.vue b/src/views/position/currentPriceReview.vue
new file mode 100644
index 0000000..6758d50
--- /dev/null
+++ b/src/views/position/currentPriceReview.vue
@@ -0,0 +1,32 @@
+<template>
+    <page-header-wrapper>
+      <a-card>
+        <currentPriceReviewHold ref="currentPriceReviewHold"></currentPriceReviewHold>
+      </a-card>
+    </page-header-wrapper>
+  </template>
+  
+  <script>
+  import currentPriceReviewHold from './components/currentPriceReview-hold'
+  export default {
+      name: 'currentPriceReview',
+      components: {
+        currentPriceReviewHold,
+      },
+      data () {
+          return {
+          }
+      },
+      methods: {
+          
+      }
+  }
+  </script>
+  
+  <style lang="less" scoped>
+  /deep/ .ant-tabs-nav-scroll {
+      display: flex;
+      justify-content: center;
+  }
+  </style>
+  
\ No newline at end of file
diff --git a/src/views/vip/VIPScramble.vue b/src/views/vip/VIPScramble.vue
new file mode 100644
index 0000000..69b29ed
--- /dev/null
+++ b/src/views/vip/VIPScramble.vue
@@ -0,0 +1,32 @@
+<template>
+    <page-header-wrapper>
+      <a-card>
+        <VIPScrambleHold ref="VIPScrambleHold"></VIPScrambleHold>
+      </a-card>
+    </page-header-wrapper>
+  </template>
+  
+  <script>
+  import VIPScrambleHold from './components/VIPScramble-hold'
+  export default {
+      name: 'VIPScramble',
+      components: {
+        VIPScrambleHold,
+      },
+      data () {
+          return {
+          }
+      },
+      methods: {
+          
+      }
+  }
+  </script>
+  
+  <style lang="less" scoped>
+  /deep/ .ant-tabs-nav-scroll {
+      display: flex;
+      justify-content: center;
+  }
+  </style>
+  
\ No newline at end of file
diff --git a/src/views/vip/components/VIPScramble-hold.vue b/src/views/vip/components/VIPScramble-hold.vue
new file mode 100644
index 0000000..33dc8eb
--- /dev/null
+++ b/src/views/vip/components/VIPScramble-hold.vue
@@ -0,0 +1,467 @@
+<template>
+  <div>
+    <a-card :bordered="false">
+      <div class="table-page-search-wrapper">
+        <a-form layout="inline">
+          <a-row :gutter="48">
+            <a-col :md="12" :lg="6" :sm="24">
+              <a-form-item label="名称或股票代码">
+                <a-input v-model="queryParam.keyword" style="width: 100%" placeholder="请输入名称或股票代码" />
+              </a-form-item>
+            </a-col>
+            <a-col :md="12" :lg="6" :sm="24">
+              <a-form-item label="状态">
+                <a-select v-model="queryParam.status" placeholder="请选择状态">
+                  <a-select-option :value="''">全部</a-select-option>
+                  <a-select-option :value="1">开</a-select-option>
+                  <a-select-option :value="0">关</a-select-option>
+                </a-select>
+              </a-form-item>
+            </a-col>
+          </a-row>
+          <a-row :gutter="48">
+            <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
+                    type="primary"
+                    icon="search"
+                    style="margin-left: 8px"
+                    @click=";(queryParam.pageNum = 1), getlist()"
+                    >查询
+                  </a-button>
+                  <a-button type="primary" icon="plus-circle" style="margin-left: 8px" @click="Lockvisibledialog = true"
+                    >添加
+                  </a-button>
+                </span>
+              </a-form-item>
+            </a-col>
+          </a-row>
+        </a-form>
+      </div>
+    </a-card>
+    <a-table
+      bordered
+      :loading="loading"
+      :pagination="pagination"
+      :columns="columns"
+      :data-source="datalist"
+      rowKey="id"
+    >
+      <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 }}
+            </a-tag>
+            <p>({{ record.stockCode }})</p>
+          </div>
+        </template>
+      </span>
+      <span slot="positionType" slot-scope="text, record">
+        <template>
+          <div>
+            <a-tag :color="record.positionType == 1 ? 'blue' : 'green'">
+              {{ record.positionType == 1 ? '模拟持仓' : '正式持仓' }}
+            </a-tag>
+          </div>
+        </template>
+      </span>
+      <span slot="status" slot-scope="text, record">
+        <template>
+          <div>
+            <a-tag v-if="record.status == 1"> 开 </a-tag>
+            <a-tag v-if="record.status == 0"> 关 </a-tag>
+          </div>
+        </template>
+      </span>
+      <span slot="orderDirection" slot-scope="text, record">
+        <template>
+          <div>
+            <a-tag :color="record.orderDirection == '买涨' ? 'red' : 'green'">
+              {{ record.orderDirection }}
+            </a-tag>
+          </div>
+        </template>
+      </span>
+      <span slot="nowPrice" slot-scope="text, record">
+        <template>
+          <div>
+            <p
+              :class="
+                Number(record.nowPrice) - record.targetPrice < 0
+                  ? 'greens'
+                  : Number(record.nowPrice) - record.targetPrice > 0
+                  ? 'reds'
+                  : ''
+              "
+            >
+              {{ record.nowPrice }}
+            </p>
+          </div>
+        </template>
+      </span>
+      <span slot="profitAndLose" slot-scope="text">
+        <template>
+          <div>
+            <p :class="text < 0 ? 'greens' : text > 0 ? 'reds' : ''">
+              {{ text }}
+            </p>
+          </div>
+        </template>
+      </span>
+      <span slot="allProfitAndLose" slot-scope="text">
+        <template>
+          <div>
+            <p :class="text < 0 ? 'greens' : text > 0 ? 'reds' : ''">
+              {{ text }}
+            </p>
+          </div>
+        </template>
+      </span>
+
+      <template slot="action" slot-scope="text, record">
+        <a slot="action" href="javascript:;" @click="geteditStock(record)">修改</a>
+        <a-divider type="vertical" />
+        <a slot="action" href="javascript:;" @click="getLockopen(record.id)">删除</a>
+      </template>
+    </a-table>
+    <a-modal
+      :title="currentdetail ? '修改' : '添加'"
+      :width="830"
+      :visible="Lockvisibledialog"
+      :confirmLoading="Lockvisibleloading"
+      @ok="getDialogok"
+      @cancel="handleCancel"
+    >
+      <a-form :form="addUserform" ref="addUserform">
+        <a-row :gutter="48">
+          <a-col :md="12" :lg="12" :sm="12">
+            <a-form-item label="名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
+              <a-input
+                placeholder="请输入名称"
+                v-decorator="['name', { rules: [{ required: true, message: '请输入名称' }] }]"
+              />
+            </a-form-item>
+          </a-col>
+          <a-col :md="12" :lg="12" :sm="12">
+            <a-form-item label="股票代码" :labelCol="labelCol" :wrapperCol="wrapperCol">
+              <a-input
+                placeholder="请输入股票代码"
+                v-decorator="['stockCode', { rules: [{ required: true, message: '请输入股票代码' }] }]"
+              />
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="48">
+          <a-col :md="12" :lg="12" :sm="12">
+            <a-form-item label="涨跌幅" :labelCol="labelCol" :wrapperCol="wrapperCol">
+              <a-input
+                placeholder="请输入涨跌幅"
+                v-decorator="['stockChg', { rules: [{ required: true, message: '请输入涨跌幅' }] }]"
+              />
+            </a-form-item>
+          </a-col>
+          <a-col :md="12" :lg="12" :sm="12">
+            <!-- <a-form-item label="状态" :labelCol="labelCol" :wrapperCol="wrapperCol">
+              <a-select
+                placeholder="请选择状态"
+                v-decorator="['status', { rules: [{ required: true, message: '请选择状态' }] }]"
+              >
+                <a-select-option :value="1">开</a-select-option>
+                <a-select-option :value="0">关</a-select-option>
+              </a-select>
+            </a-form-item> -->
+            <a-form-item label="状态" :labelCol="labelCol" :wrapperCol="wrapperCol">
+              <a-select
+                placeholder="请选择状态"
+                v-decorator="['status', { rules: [{ required: true, message: '请选择状态' }] }]"
+              >
+                <a-select-option :value="1">开</a-select-option>
+                <a-select-option :value="0">关</a-select-option>
+              </a-select>
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="48">
+          <a-col :md="12" :lg="12" :sm="12">
+            <a-form-item label="最低交易数量(手)" :labelCol="labelCol" :wrapperCol="wrapperCol">
+              <a-input
+                placeholder="请输入最低交易数量(手)"
+                v-decorator="['lowestTrade', { rules: [{ required: true, message: '请输入最低交易数量(手)' }] }]"
+              />
+            </a-form-item>
+          </a-col>
+        </a-row>
+      </a-form>
+    </a-modal>
+  </div>
+</template>
+<script>
+import { positionlock, positionsell, examine, sitevipList, sitevipAdd, sitevipUpdate,sitevipUpdateStatus,sitevipDel } from '@/api/position'
+import { nextagent } from '@/api/home'
+import pick from 'lodash.pick'
+import moment from 'moment'
+export default {
+  name: 'VIPScrambleHold',
+  data() {
+    return {
+      columns: [
+        {
+          title: 'ID',
+          dataIndex: 'id',
+          align: 'center',
+        },
+        {
+          title: '名称',
+          dataIndex: 'name',
+          align: 'center',
+        },
+        {
+          title: '股票代码',
+          dataIndex: 'stockCode',
+          align: 'center',
+        },
+        {
+          title: '涨跌幅',
+          dataIndex: 'stockChg',
+          align: 'center',
+        },
+        {
+          title: '状态',
+          dataIndex: 'status',
+          align: 'center',
+          scopedSlots: { customRender: 'status' },
+        },
+        {
+          title: '最低交易数量(手)',
+          dataIndex: 'lowestTrade',
+          align: 'center',
+        },
+        {
+          title: '创建时间',
+          dataIndex: 'createTime',
+          align: 'center',
+          width: 180,
+          customRender: (text, row, index) => {
+            return text ? moment(text).format('YYYY-MM-DD HH:mm:ss') : ''
+          },
+        },
+        {
+          title: '修改时间',
+          dataIndex: 'updateTime',
+          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,
+        keyword: '',
+        status: '',
+      },
+      fields: [
+        'name',
+        'stockCode',
+        'stockChg',
+        'status',
+        'lowestTrade',
+        'createTime',
+        'updateTime',
+      ],
+      datalist: [],
+      agentlist: [],
+      agentloading: false,
+      Lockvisibledialog: false,
+      Lockvisibleloading: false,
+      Lockvisibleform: this.$form.createForm(this),
+      clickpositionId: '',
+      agentqueryParam: {
+        pageNum: 1,
+        pageSize: 100,
+      },
+      labelCol: {
+        xs: { span: 8 },
+        sm: { span: 8 },
+        md: { span: 8 },
+      },
+      wrapperCol: {
+        xs: { span: 14 },
+        sm: { span: 14 },
+        md: { span: 14 },
+      },
+      addUserform: this.$form.createForm(this),
+      currentdetail: '',
+    }
+  },
+  created() {
+    this.getlist()
+  },
+  methods: {
+    geteditStock(val) {
+      this.currentdetail = val
+      this.Lockvisibledialog = true
+      this.fields.forEach((v) => this.addUserform.getFieldDecorator(v))
+      this.addUserform.setFieldsValue(pick(val, this.fields))
+    },
+    getLockopen(val) {
+      var that = this
+      this.$confirm({
+        title: '提示',
+        content: '确认要删除吗?',
+        onOk() {
+          var data = {
+            id: val,
+          }
+          sitevipDel(data).then((res) => {
+            if (res.status == 0) {
+              that.$message.success(res.msg)
+              that.getlist()
+            } else {
+              that.$message.error(res.msg)
+            }
+          })
+        },
+        onCancel() {
+          console.log('Cancel')
+        },
+      })
+    },
+    handleCancel() {
+      this.Lockvisibledialog = false
+      const form = this.$refs.addUserform.form
+      form.resetFields()
+    },
+    getDialogok() {
+      const form = this.$refs.addUserform.form
+
+      form.validateFields((errors, values) => {
+        console.log(values);
+        if (!errors) {
+          if (this.currentdetail != '') {
+            this.Lockvisibledialog = true
+            values.id = this.currentdetail.id
+
+            // values.subscriptionTime = this.subscriptionTime
+            // values.subscribeTime = this.subscribeTime
+            sitevipUpdate(values).then((res) => {
+              if (res.status == 0) {
+                this.Lockvisibledialog = false
+                this.$message.success('修改成功')
+                this.currentdetail = ''
+                form.resetFields()
+                this.getlist()
+              } else {
+                this.$message.error(res.msg)
+              }
+              this.Lockvisibledialog = false
+            })
+          } else {
+            this.addUserDialogloading = true
+            sitevipAdd(values).then((res) => {
+              if (res.status == 0) {
+                this.Lockvisibledialog = false
+                this.$message.success(res.msg)
+                form.resetFields()
+                this.getinit()
+              } else {
+                this.$message.error(res.msg)
+              }
+              this.addUserDialogloading = false
+            })
+          }
+        }
+      })
+    },
+    getinit() {
+      this.queryParam = {
+        pageNum: 1,
+        pageSize: 10,
+        keyword: '',
+        status: '',
+      }
+      this.getlist()
+    },
+    getqueryParam() {
+      this.queryParam = {
+        pageNum: 1,
+        pageSize: 10,
+        keyword: '',
+        status: '',
+      }
+    },
+    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
+      console.log(this.queryParam)
+      sitevipList(this.queryParam).then((res) => {
+        console.log(res)
+        this.datalist = res.data.records
+        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;
+}
+
+.reds {
+  color: #f5222d;
+}
+</style>

--
Gitblit v1.9.3