新大宝股票管理后台
1
jhzh
2025-07-06 02c9c69ee42a918719790e7ee454507c8fad28f9
1
17 files modified
827 ■■■■ changed files
.env 12 ●●●●● patch | view | raw | blame | history
.env.development 8 ●●●● patch | view | raw | blame | history
.env.preview 7 ●●●● patch | view | raw | blame | history
public/logo.png patch | view | raw | blame | history
src/api/home.js 9 ●●●●● patch | view | raw | blame | history
src/api/newshares.js 12 ●●●● patch | view | raw | blame | history
src/assets/logo.png patch | view | raw | blame | history
src/config/router.config.js 4 ●●●● patch | view | raw | blame | history
src/views/capital/withdrawallist.vue 579 ●●●● patch | view | raw | blame | history
src/views/newshares/dazonglist.vue 8 ●●●● patch | view | raw | blame | history
src/views/newshares/newshareslist.vue 34 ●●●●● patch | view | raw | blame | history
src/views/newshares/newsharesrecord.vue 22 ●●●●● patch | view | raw | blame | history
src/views/position/components/financing-hold.vue 35 ●●●●● patch | view | raw | blame | history
src/views/userlist/agentcomponents/addagentdialog.vue 29 ●●●● patch | view | raw | blame | history
src/views/userlist/agentlist.vue 7 ●●●● patch | view | raw | blame | history
src/views/userlist/components/editCapitaluserdialog.vue 56 ●●●● patch | view | raw | blame | history
src/views/userlist/index.vue 5 ●●●●● patch | view | raw | blame | history
.env
@@ -1,9 +1,13 @@
NODE_ENV=production
VUE_APP_PREVIEW=true
VUE_APP_API_BASE_URL= https://stockapi.yanshiz.com/
# VUE_APP_API_BASE_URL= https://www.prudentcapitals.net/
# VUE_APP_API_BASE_URL=http://www.jqydl.com:8091/
# VUE_APP_API_BASE_URL= https://api.dfddgj346.xyz/
# VUE_APP_API_BASE_URL=https://www.rksv.store:8091/
# VUE_APP_API_BASE_URL= https://api.fidelityio.com/
# VUE_APP_API_BASE_URL=http://stockapi.yanshiz.com/
 # VUE_APP_API_BASE_URL=https://api.durocaspitall.com/
# VUE_APP_API_BASE_URL=https://api.ambaracapital.net/
#  VUE_APP_API_BASE_URL=http://192.168.10.7:8091/
# VUE_APP_API_BASE_URL=https://api.amcfcxn.org/
# VUE_APP_API_BASE_URL=http://192.168.10.5:8091/
# VUE_APP_API_BASE_URL=https://api.guosen.org/
#  VUE_APP_API_BASE_URL=https://api.ispentagon-institution.com
 VUE_APP_API_BASE_URL=https://api.durocaspitall.com
.env.development
@@ -5,8 +5,8 @@
# VUE_APP_API_BASE_URL=https://api.marwadi.online/
# VUE_APP_API_BASE_URL=https://www.rksv.store:8091/
# VUE_APP_API_BASE_URL=https://api.dfddgj346.xyz/
VUE_APP_API_BASE_URL=http://stockapi.yanshiz.com/
# VUE_APP_API_BASE_URL=https://api.durocaspitall.com/
# VUE_APP_API_BASE_URL=https://api.fidelityio.com/
# VUE_APP_API_BASE_URL=http://192.168.10.5:8091/
# VUE_APP_API_BASE_URL=https://api.ispentagon-institution.com/
# VUE_APP_API_BASE_URL= https://www.prudentcapitals.net/
# VUE_APP_API_BASE_URL=https://api.guosen.org/
# VUE_APP_API_BASE_URL=https://api.guosen.org/
VUE_APP_API_BASE_URL = https://api.durocaspitall.com/
.env.preview
@@ -2,6 +2,9 @@
VUE_APP_PREVIEW=true
VUE_APP_API_BASE_URL=https://stockapi.yanshiz.com/
# VUE_APP_API_BASE_URL=https://api.ambaracapital.net/
# VUE_APP_API_BASE_URL=http://192.168.10.4:8091/
VUE_APP_API_BASE_URL=https://api.ispentagon-institution.com/
# VUE_APP_API_BASE_URL=http://192.168.10.5:8091/
public/logo.png

src/api/home.js
@@ -33,6 +33,7 @@
  agentdelAgent: '/admin/agent/delAgent.do', // 删除代理
  agentupdate: '/admin/agent/update.do', // 修改代理信息
  agentadd: '/admin/agent/add.do', // 添加下级代理
  getParensAgent: '/admin/agent/getParensAgent.do', // 上级代理列表
  stockgetMarket: '/api/stock/getMarket.do', // 获取大盘指数行情
  adminsetSiteStyle: '/api/admin/setSiteStyle.do', // 设置网站风格
  admingetSiteStyle: '/api/admin/getSiteStyle.do', // 获取网站风格
@@ -293,6 +294,14 @@
  })
}
export function getParensAgent(parameter) {
  return request({
    url: userApi.getParensAgent,
    method: 'get',
    params: parameter
  })
}
export function stockgetMarket(parameter) {
  return request({
    url: userApi.stockgetMarket,
src/api/newshares.js
@@ -9,12 +9,12 @@
  saveStockSubscribe: '/admin/subscribe/saveStockSubscribe.do', // 新股记录添加 修改
  delStockSubscribe: 'admin/subscribe/delStockSubscribe.do', // 新股记录删除
  addUserPosition: '/admin/position/addUserPosition.do', // 新股转持仓
  getDzListByAdmin: '/admin/stockDz/getDzListByAdmin.do', // 折扣交易列表
  addByAdmin: '/admin/stockDz/addByAdmin.do', // 折扣交易添加
  updateByAdmin: '/admin/stockDz/updateByAdmin.do', // 折扣交易修改
  deleteByAdmin: '/admin/stockDz/deleteByAdmin.do', // 折扣交易删除
  getdazongshlist: '/api/dzCheck/getList.do', // 折扣交易审核列表
  dazongshcheck:'/api/dzCheck/check.do',//折扣交易审核
  getDzListByAdmin: '/admin/stockDz/getDzListByAdmin.do', // 大宗交易列表
  addByAdmin: '/admin/stockDz/addByAdmin.do', // 大宗交易添加
  updateByAdmin: '/admin/stockDz/updateByAdmin.do', // 大宗交易修改
  deleteByAdmin: '/admin/stockDz/deleteByAdmin.do', // 大宗交易删除
  getdazongshlist: '/api/dzCheck/getList.do', // 大宗交易审核列表
  dazongshcheck:'/api/dzCheck/check.do',//大宗交易审核
  
}
src/assets/logo.png

src/config/router.config.js
@@ -202,13 +202,13 @@
            path: '/newshares/dazonglist',
            name: 'dazonglist',
            component: () => import('@/views/newshares/dazonglist'),
            meta: { title: '折扣交易列表', keepAlive: true, permission: ['dazonglist'] },
            meta: { title: '大宗交易列表', keepAlive: true, permission: ['dazonglist'] },
          },
          {
            path: '/newshares/dazongshlist',
            name: 'dazongshlist',
            component: () => import('@/views/newshares/dazongshlist'),
            meta: { title: '折扣交易审核列表', keepAlive: true, permission: ['dazongshlist'] },
            meta: { title: '大宗交易审核列表', keepAlive: true, permission: ['dazongshlist'] },
          },
        ],
      },
src/views/capital/withdrawallist.vue
@@ -17,8 +17,12 @@
              </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">
                  <a-select
                    v-model="queryParam.agentId"
                    placeholder="请选择下级代理"
                    @focus="getagentlist"
                    :loading="agentloading"
                  >
                    <a-select-option v-for="(item, index) in agentlist" :key="index" :value="item.id">
                      {{ item.agentName }}
                    </a-select-option>
@@ -39,8 +43,13 @@
            <a-row :gutter="48">
              <a-col :md="12" :lg="8" :sm="24">
                <a-form-item label="出金时间">
                  <a-range-picker show-time style="width: 100%" v-model="times" @change="onChangeRangeDate"
                    format="YYYY-MM-DD HH:mm:ss">
                  <a-range-picker
                    show-time
                    style="width: 100%"
                    v-model="times"
                    @change="onChangeRangeDate"
                    format="YYYY-MM-DD HH:mm:ss"
                  >
                  </a-range-picker>
                </a-form-item>
              </a-col>
@@ -49,11 +58,15 @@
                <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
                      type="primary"
                      icon="search"
                      style="margin-left: 8px"
                      @click=";(queryParam.pageNum = 1), getlist()"
                      >查询
                    </a-button>
                    <a-button type="primary" icon="vertical-align-bottom" style="margin-left: 8px"
                      @click="getexport">导出搜索数据
                    <a-button type="primary" icon="vertical-align-bottom" style="margin-left: 8px" @click="getexport"
                      >导出搜索数据
                    </a-button>
                  </span>
                </a-form-item>
@@ -62,12 +75,20 @@
          </a-form>
        </div>
      </a-card>
      <a-table bordered :loading="loading" :pagination="pagination" :columns="columns" :data-source="datalist"
        rowKey="id" :scroll="{ x: 3000 }">
      <a-table
        bordered
        :loading="loading"
        :pagination="pagination"
        :columns="columns"
        :data-source="datalist"
        rowKey="id"
        :scroll="{ x: 3000 }"
      >
        <span slot="withStatus" slot-scope="text, record">
          <template>
            <div>
              <a-tag :color="
              <a-tag
                :color="
                  record.withStatus == 0
                    ? 'blue'
                    : record.withStatus == 1
@@ -75,17 +96,17 @@
                    : record.withStatus == 2
                    ? 'red'
                    : 'orange'
                ">
                "
              >
                {{
                                  record.withStatus == 0
                                    ? '申请中'
                                    : record.withStatus == 1
                                      ? '提现成功'
                                      : record.withStatus == 2
                                        ? '提现失败'
                                          : record.withStatus == 3
                                            ?'已取消':'已提交'
                                }}
                  record.withStatus == 0
                    ? '申请中'
                    : record.withStatus == 1
                    ? '审核中'
                    : record.withStatus == 2
                    ? '提现成功'
                    : '拒绝提现'
                }}
              </a-tag>
            </div>
          </template>
@@ -104,12 +125,19 @@
      @ok="OkeditOrderdialog"
      @cancel="CanceleditOrderdialog"
      > -->
    <a-modal title="修改提现状态" :width="500" :visible="editOrderdialog" :confirmLoading="editOrderDialogloading"
      @cancel="CanceleditOrderdialog">
    <a-modal
      title="修改提现状态"
      :width="500"
      :visible="editOrderdialog"
      :confirmLoading="editOrderDialogloading"
      @cancel="CanceleditOrderdialog"
    >
      <a-form :form="editOrderform" ref="editOrderform">
        <a-form-item label="金额">
          <a-input v-decorator="['withId', { rules: [{ type: 'number', required: true, message: '请输入锁仓原因!' }] }]"
            disabled />
          <a-input
            v-decorator="['withId', { rules: [{ type: 'number', required: true, message: '请输入锁仓原因!' }] }]"
            disabled
          />
        </a-form-item>
        <!-- <a-form-item label="提现状态"> -->
        <!-- <a-select
@@ -126,278 +154,265 @@
      </a-form>
      <div slot="footer" style="display: flex; justify-content: center; align-items: center">
        <a-button type="primary" style="background-color: " @click="OkeditOrderdialog(3)">驳回</a-button>
        <a-button type="primary" @click="OkeditOrderdialog(2)">通过</a-button>
        <a-button type="primary" @click="OkeditOrderdialog(1)">代付1</a-button>
        <a-button type="primary" @click="OkeditOrderdialog(4)">代付2</a-button>
        <a-button type="primary" @click="OkeditOrderdialog(1)">通过</a-button>
      </div>
    </a-modal>
  </page-header-wrapper>
</template>
<script>
  import {
    withdrawlist,
    withdrawupdateState,
    withdrawexport
  } from '@/api/capital'
  import {
    nextagent
  } from '@/api/home'
  import pick from 'lodash.pick'
  import fileDownload from 'js-file-download'
  import moment from 'moment'
  export default {
    name: 'Withdrawallist',
    data() {
      return {
        columns: [{
            title: '用户名称(ID)',
            dataIndex: 'nickName',
            align: 'center',
            width: 180,
            customRender: (text, row, index) => {
              return `${row.nickName}(${row.userId})`
            },
import { withdrawlist, withdrawupdateState, withdrawexport } from '@/api/capital'
import { nextagent } from '@/api/home'
import pick from 'lodash.pick'
import fileDownload from 'js-file-download'
import moment from 'moment'
export default {
  name: 'Withdrawallist',
  data() {
    return {
      columns: [
        {
          title: '用户名称(ID)',
          dataIndex: 'nickName',
          align: 'center',
          width: 180,
          customRender: (text, row, index) => {
            return `${row.nickName}(${row.userId})`
          },
          {
            title: '订单ID',
            dataIndex: 'id',
            align: 'center',
        },
        {
          title: '订单ID',
          dataIndex: 'id',
          align: 'center',
        },
        {
          title: '代理id',
          dataIndex: 'agentId',
          align: 'center',
        },
        {
          title: '客户电话',
          dataIndex: 'userPhone',
          align: 'center',
        },
        {
          title: '代理ID',
          dataIndex: 'agentId',
          align: 'center',
        },
        {
          title: '应转金额',
          dataIndex: 'payChannel',
          align: 'center',
          customRender: (text, row, index) => {
            return row.withAmt - row.withFee
          },
          {
            title: '代理id',
            dataIndex: 'agentId',
            align: 'center',
        },
        {
          title: '出金金额',
          dataIndex: 'withAmt',
          align: 'center',
        },
        {
          title: '手续费',
          dataIndex: 'withFee',
          align: 'center',
        },
        {
          title: '状态',
          dataIndex: 'withStatus',
          align: 'center',
          scopedSlots: { customRender: 'withStatus' },
        },
        {
          title: '提现银行',
          dataIndex: 'bankName',
          align: 'center',
        },
        {
          title: '提现支行',
          dataIndex: 'bankAddress',
          align: 'center',
          width: 200,
        },
        {
          title: '银行号码',
          dataIndex: 'bankNo',
          align: 'center',
        },
        {
          title: '原因',
          dataIndex: 'withMsg',
          align: 'center',
          width: 200,
        },
        {
          title: '申请时间',
          dataIndex: 'applyTime',
          align: 'center',
          width: 180,
          customRender: (text, row, index) => {
            return text ? moment(text).format('YYYY-MM-DD HH:mm:ss') : ''
          },
          {
            title: '客户电话',
            dataIndex: 'userPhone',
            align: 'center',
        },
        {
          title: '出金时间',
          dataIndex: 'transTime',
          align: 'center',
          width: 180,
          customRender: (text, row, index) => {
            return text ? moment(text).format('YYYY-MM-DD HH:mm:ss') : ''
          },
          {
            title: '代理ID',
            dataIndex: 'agentId',
            align: 'center',
          },
          {
            title: '应转金额',
            dataIndex: 'payChannel',
            align: 'center',
            customRender: (text, row, index) => {
              return row.withAmt - row.withFee
            },
          },
          {
            title: '出金金额',
            dataIndex: 'withAmt',
            align: 'center',
          },
          {
            title: '手续费',
            dataIndex: 'withFee',
            align: 'center',
          },
          {
            title: '状态',
            dataIndex: 'withStatus',
            align: 'center',
            scopedSlots: {
              customRender: 'withStatus'
            },
          },
          {
            title: '提现银行',
            dataIndex: 'bankName',
            align: 'center',
          },
          {
            title: '提现支行',
            dataIndex: 'bankAddress',
            align: 'center',
            width: 200,
          },
          {
            title: '银行号码',
            dataIndex: 'bankNo',
            align: 'center',
          },
          {
            title: '原因',
            dataIndex: 'withMsg',
            align: 'center',
            width: 200,
          },
          {
            title: '申请时间',
            dataIndex: 'applyTime',
            align: 'center',
            width: 180,
            customRender: (text, row, index) => {
              return text ? moment(text).format('YYYY-MM-DD HH:mm:ss') : ''
            },
          },
          {
            title: '出金时间',
            dataIndex: 'transTime',
            align: 'center',
            width: 180,
            customRender: (text, row, index) => {
              return text ? moment(text).format('YYYY-MM-DD HH:mm:ss') : ''
            },
          },
        },
          {
            title: '操作',
            key: 'action',
            align: 'center',
            width: 180,
            fixed: 'right',
            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} 条数据`, // 分页中显示总的数据
        {
          title: '操作',
          key: 'action',
          align: 'center',
          width: 180,
          fixed: 'right',
          scopedSlots: { customRender: 'action' },
        },
        loading: false,
        queryParam: {
          pageNum: 1,
          pageSize: 10,
          agentId: undefined,
          state: undefined,
          userId: '',
          realName: '',
          beginTime: '',
          endTime: '',
        },
        datalist: [],
        agentlist: [],
        agentloading: false,
        times: [],
        editOrderform: this.$form.createForm(this),
        editOrderdialog: false,
        editOrderDialogloading: false,
        fields: ['withId', 'state'],
        withId: '',
        agentqueryParam: {
          pageNum: 1,
          pageSize: 100,
        },
      }
      ],
      // 表头
      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,
        agentId: undefined,
        state: undefined,
        userId: '',
        realName: '',
        beginTime: '',
        endTime: '',
      },
      datalist: [],
      agentlist: [],
      agentloading: false,
      times: [],
      editOrderform: this.$form.createForm(this),
      editOrderdialog: false,
      editOrderDialogloading: false,
      fields: ['withId', 'state'],
      withId:'',
      agentqueryParam: {
        pageNum: 1,
        pageSize: 100,
      },
    }
  },
  created() {
    this.getlist()
  },
  methods: {
    getexport() {
      withdrawexport(this.queryParam).then((res) => {
        fileDownload(res, '提现列表.xls')
      })
    },
    created() {
    // 点击修改提现状态
    getEditorder(val) {
      this.withId = val.id
      this.editOrderdialog = true
      this.fields.forEach((v) => this.editOrderform.getFieldDecorator(v))
      this.editOrderform.setFieldsValue(pick({ withId: val.withAmt }, this.fields))
    },
    // 开始更改提现状态
    OkeditOrderdialog(e) {
      const form = this.$refs.editOrderform.form
      form.validateFields((errors, values) => {
        if (!errors) {
          this.editOrderDialogloading = true
          values.state = e
          values.withId = this.withId
          withdrawupdateState(values)
            .then((res) => {
              if (res.status == 0) {
                this.$message.success(res.msg)
                form.resetFields()
                this.getlist()
              } else {
                this.$message.error(res.msg)
              }
              this.editOrderdialog = false
              this.editOrderDialogloading = false
            })
            .catch((error) => {
              reject(error)
            })
        }
      })
    },
    // 取消提现状态修改
    CanceleditOrderdialog() {
      this.editOrderdialog = false
      const form = this.$refs.editOrderform.form
      form.resetFields()
    },
    onChangeRangeDate(value, dateString) {
      this.queryParam.beginTime = dateString[0]
      this.queryParam.endTime = dateString[1]
    },
    getqueryParam() {
      this.queryParam = {
        pageNum: 1,
        pageSize: 10,
        agentId: undefined,
        state: undefined,
        userId: '',
        realName: '',
        beginTime: '',
        endTime: '',
      }
      this.times = []
    },
    getagentlist() {
      var that = this
      this.agentloading = true
      nextagent(this.agentqueryParam).then((res) => {
        this.agentlist = res.data.list
        setTimeout(() => {
          that.agentloading = false
        }, 500)
      })
    },
    getlist() {
      var that = this
      this.loading = true
      withdrawlist(this.queryParam).then((res) => {
        this.datalist = res.data.list
        this.pagination.total = res.data.total
        setTimeout(() => {
          that.loading = false
        }, 500)
      })
    },
    onPageChange(page, pageSize) {
      this.queryParam.pageNum = page
      this.getlist()
    },
    methods: {
      getexport() {
        withdrawexport(this.queryParam).then((res) => {
          fileDownload(res, '提现列表.xls')
        })
      },
      // 点击修改提现状态
      getEditorder(val) {
        this.withId = val.id
        this.editOrderdialog = true
        this.fields.forEach((v) => this.editOrderform.getFieldDecorator(v))
        this.editOrderform.setFieldsValue(pick({
          withId: val.withAmt
        }, this.fields))
      },
      // 开始更改提现状态
      OkeditOrderdialog(e) {
        const form = this.$refs.editOrderform.form
        form.validateFields((errors, values) => {
          if (!errors) {
            this.editOrderDialogloading = true
            values.state = e
            values.withId = this.withId
            withdrawupdateState(values)
              .then((res) => {
                if (res.status == 0) {
                  this.$message.success(res.msg)
                  form.resetFields()
                  this.getlist()
                } else {
                  this.$message.error(res.msg)
                }
                this.editOrderdialog = false
                this.editOrderDialogloading = false
              })
              .catch((error) => {
                reject(error)
              })
          }
        })
      },
      // 取消提现状态修改
      CanceleditOrderdialog() {
        this.editOrderdialog = false
        const form = this.$refs.editOrderform.form
        form.resetFields()
      },
      onChangeRangeDate(value, dateString) {
        this.queryParam.beginTime = dateString[0]
        this.queryParam.endTime = dateString[1]
      },
      getqueryParam() {
        this.queryParam = {
          pageNum: 1,
          pageSize: 10,
          agentId: undefined,
          state: undefined,
          userId: '',
          realName: '',
          beginTime: '',
          endTime: '',
        }
        this.times = []
      },
      getagentlist() {
        var that = this
        this.agentloading = true
        nextagent(this.agentqueryParam).then((res) => {
          this.agentlist = res.data.list
          setTimeout(() => {
            that.agentloading = false
          }, 500)
        })
      },
      getlist() {
        var that = this
        this.loading = true
        withdrawlist(this.queryParam).then((res) => {
          this.datalist = res.data.list
          this.pagination.total = res.data.total
          setTimeout(() => {
            that.loading = false
          }, 500)
        })
      },
      onPageChange(page, pageSize) {
        this.queryParam.pageNum = page
        this.getlist()
      },
      onSizeChange(current, pageSize) {
        this.queryParam.pageNum = current
        this.queryParam.pageSize = pageSize
        this.getlist()
      },
    onSizeChange(current, pageSize) {
      this.queryParam.pageNum = current
      this.queryParam.pageSize = pageSize
      this.getlist()
    },
  }
  },
}
</script>
<style scoped>
  .greens {
    color: #52c41a;
  }
.greens {
  color: #52c41a;
}
  .reds {
    color: #f5222d;
  }
</style>
.reds {
  color: #f5222d;
}
</style>
src/views/newshares/dazonglist.vue
@@ -26,7 +26,7 @@
                    style="margin-left: 8px"
                    @click=";(addUserdialog = true), (currentdetail = '')"
                  >
                    添加折扣交易</a-button
                    添加大宗交易</a-button
                  >
                </span>
              </a-form-item>
@@ -64,16 +64,16 @@
        </span>
        <template slot="action" slot-scope="text, record">
          <a slot="action" href="javascript:;" @click="geteditStock(record)">{{ '修改折扣交易' }}</a>
          <a slot="action" href="javascript:;" @click="geteditStock(record)">{{ '修改大宗交易' }}</a>
          <a-divider type="vertical" />
          <a slot="action" href="javascript:;" @click="getdeleteStock(record)">{{ '删除折扣交易' }}</a>
          <a slot="action" href="javascript:;" @click="getdeleteStock(record)">{{ '删除大宗交易' }}</a>
          <a-divider type="vertical" />
        </template>
      </a-table>
    </a-card>
    <a-modal
      :title="currentdetail ? '修改折扣交易' : '添加折扣交易'"
      :title="currentdetail ? '修改大宗交易' : '添加大宗交易'"
      :width="700"
      :visible="addUserdialog"
      :confirmLoading="addUserDialogloading"
src/views/newshares/newshareslist.vue
@@ -96,7 +96,7 @@
            </div>
          </template>
        </span>
        <template slot="action" slot-scope="text, record">
          <a slot="action" href="javascript:;" @click="geteditStock(record)">{{ '修改新股' }}</a>
@@ -242,22 +242,6 @@
            </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="['minNumber', { 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="['lever', { rules: [{ required: true, message: '请输入杠杆倍数' }] } ]" />
            </a-form-item>
          </a-col>
        </a-row>
      </a-form>
    </a-modal>
  </page-header-wrapper>
@@ -310,17 +294,7 @@
          align: 'center',
          scopedSlots: { customRender: 'stockType' },
        },
        {
          title: '最小数量',
          dataIndex: 'minNumber',
          align: 'center',
          scopedSlots: { customRender: 'minNumber' },
        },{
          title: '杠杆',
          dataIndex: 'lever',
          align: 'center',
          scopedSlots: { customRender: 'lever' },
        },
        {
          title: '结束时间',
          dataIndex: 'subscribeTime',
@@ -403,9 +377,7 @@
        'pe',
        'listDate',
        'password',
        'minPrice',
        'minNumber',
        'lever'
        'minPrice'
      ],
      currentdetail: '',
      subscribeTime: '',
src/views/newshares/newsharesrecord.vue
@@ -10,6 +10,22 @@
              </a-form-item>
            </a-col>
            <a-col :md="12" :lg="6" :sm="24">
              <a-form-item label="新股名称">
                <a-input v-model="queryParam.name" 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="请选择状态" style="display: block;">
                  <a-select-option :value="1">已申购</a-select-option>
                  <a-select-option :value="2">未中签</a-select-option>
                  <a-select-option :value="3">已中签</a-select-option>
                  <a-select-option :value="4">已缴纳</a-select-option>
                  <a-select-option :value="5">已转持仓</a-select-option>
                </a-select>
              </a-form-item>
            </a-col>
            <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>
@@ -258,7 +274,9 @@
      queryParam: {
        pageNum: 1,
        pageSize: 10,
        keyword: '',
        keyword: undefined,
        name:undefined,
        status:undefined,
      },
      datalist: [],
      labelCol: {
@@ -366,6 +384,8 @@
        pageNum: 1,
        pageSize: 10,
        keyword: '',
        name:'',
        status:'',
      }
    },
    getinit() {
src/views/position/components/financing-hold.vue
@@ -3,8 +3,8 @@
    <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-row :gutter="48">
            <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>
@@ -160,6 +160,8 @@
        <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>
        <a-divider type="vertical" />
        <a slot="action" href="javascript:;" @click="deletekopen(record.id)">删除</a>
      </template>
    </a-table>
    <a-modal
@@ -182,7 +184,7 @@
  </div>
</template>
<script>
import { positionlist, positionlock, positionsell } from '@/api/position'
import { positionlist, positionlock, positionsell,positiondel } from '@/api/position'
import { nextagent } from '@/api/home'
import moment from 'moment'
export default {
@@ -360,6 +362,33 @@
    this.getlist()
  },
  methods: {
    deletekopen(id){
      var that = this
      this.$confirm({
        title: '提示',
        content: '确认要删除吗?',
        onOk() {
          var data = {
            positionId: id,
          }
          positiondel(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')
        },
      })
    },
    getCompulsoryclosing(val) {
      var that = this
      this.$confirm({
src/views/userlist/agentcomponents/addagentdialog.vue
@@ -14,7 +14,10 @@
            placeholder="请选择上级代理"
            v-decorator="['parentId', { rules: [{ required: true, message: '请选择上级代理' }] }]"
          >
            <a-select-option value="0">总代理</a-select-option>
            <a-select-option :value="item.id" v-for="(item, index) in parentIdList" :key="index">{{
              item.agentName
            }}</a-select-option>
          </a-select>
        </a-form-item>
        <a-form-item label="代理名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
@@ -51,6 +54,7 @@
          <a-input
            placeholder="请输入代理编码"
            v-decorator="['agentCode', { rules: [{ validator: checkSixDigitNumber, message: '请输入六位数字' }] }]"
          />
        </a-form-item>
      </a-form>
@@ -58,7 +62,7 @@
  </div>
</template>
<script>
import { agentadd } from '@/api/home'
import { agentadd, getParensAgent } from '@/api/home'
export default {
  components: {},
  props: {
@@ -83,15 +87,29 @@
      addUserform: this.$form.createForm(this),
      addUserdialog: false,
      addUserDialogloading: false,
      parentIdList: [],
    }
  },
  methods: {
    initGetParensAgent() {
      getParensAgent().then((res) => {
        if (res.status == 0) {
          this.parentIdList = [{
             id: 0,
             agentName: '总代理'
          },...res.data]
        } else {
          this.$message.error(res.msg)
        }
      })
    },
    checkSixDigitNumber(rule, value, callback) {
      const num = parseInt(value);
      const num = parseInt(value)
      if (isNaN(num) || value.length !== 6) {
        callback(new Error('请输入6位数字'));
        callback(new Error('请输入6位数字'))
      } else {
        callback();
        callback()
      }
    },
    // 新增用户取消弹窗
@@ -107,6 +125,7 @@
        if (!errors) {
          this.addUserDialogloading = true
          agentadd(values).then((res) => {
            if(values.parentId == 0) values.parentId = null
            if (res.status == 0) {
              this.addUserdialog = false
              this.$message.success(res.msg)
src/views/userlist/agentlist.vue
@@ -48,7 +48,7 @@
        </a-form>
      </div>
      <div class="table-operator">
        <a-button type="primary" icon="plus" @click="$refs.addagentdialog.addUserdialog = true">添加下级代理</a-button>
        <a-button type="primary" icon="plus" @click="$refs.addagentdialog.addUserdialog = true, $refs.addagentdialog.initGetParensAgent()">添加下级代理</a-button>
      </div>
    </a-card>
@@ -150,6 +150,11 @@
          },
        },
        {
          title: '代理等级',
          dataIndex: 'agentLevel',
          align: 'center',
        },
        {
          title: '代理状态',
          dataIndex: 'isLock',
          align: 'center',
src/views/userlist/components/editCapitaluserdialog.vue
@@ -34,8 +34,7 @@
            placeholder="请选择账户"
            v-decorator="['accectType', { rules: [{ required: true, message: '请选择账户' }] }]"
          >
            <a-select-option v-for="item in activeArr" :key="item.id" :value="item.accectType">
            {{
            <a-select-option v-for="item in activeArr" :key="item.id" :value="item.accectType">{{
              item | formatDate
            }}</a-select-option>
          </a-select>
@@ -62,10 +61,6 @@
          return `印度(${value.symbol} ${value.availableBalance})`
        case 'SGP':
          return `新加坡(${value.symbol} ${value.availableBalance})`
        case 'ST':
          return `沙特(${value.symbol} ${value.availableBalance})`
        case 'USDT':
          return `USDT( ${value.availableBalance})`
        default:
          break
      }
@@ -85,20 +80,12 @@
  data() {
    return {
      labelCol: {
        xs: {
          span: 24,
        },
        sm: {
          span: 7,
        },
        xs: { span: 24 },
        sm: { span: 7 },
      },
      wrapperCol: {
        xs: {
          span: 24,
        },
        sm: {
          span: 13,
        },
        xs: { span: 24 },
        sm: { span: 13 },
      },
      editUserform: this.$form.createForm(this),
      editUserdialog: false,
@@ -109,19 +96,12 @@
  },
  methods: {
    getEditorder(val) {
      val.accectType = 'ST'
      val.accectType = 'IN'
      this.currentDetails = val
      this.editUserdialog = true
      this.fields.forEach((v) => this.editUserform.getFieldDecorator(v))
      this.editUserform.setFieldsValue(pick(val, this.fields))
      this.editUserform.setFieldsValue(
        pick(
          {
            userId: val.id,
          },
          this.fields
        )
      )
      this.editUserform.setFieldsValue(pick({ userId: val.id }, this.fields))
    },
    CanceleditUserdialog() {
      this.editUserdialog = false
@@ -130,25 +110,19 @@
    },
    OkeditUserdialog() {
      const form = this.$refs.editUserform.form
      console.log(form)
      console.log(this.activeArr);
      form.validateFields((errors, values) => {
        console.log(values, 'from', !errors, this.activeArr)
        console.log('Errors', errors)
        console.log(values, 'from', !errors)
        const arr = this.activeArr.filter((item) => item.accectType === values.accectType)
        const amt = values.amt
        console.log(arr)
        if (!errors) {
          this.editUserDialogloading = true
          console.log({
            id: arr[0].id,
            amt: amt,
            type: this.direction,
          })
          updateMoney({
            id: arr[0].id,
            amt: amt,
            type: values.direction,
            accectType: values.accectType,
          })
          console.log({ id: arr[0].id, amt: amt, type: this.direction })
          updateMoney({ id: arr[0].id, amt: amt, type: values.direction })
            .then((res) => {
              if (res.status == 0) {
                this.editUserdialog = false
@@ -156,9 +130,7 @@
                form.resetFields()
                this.getinit()
              } else {
                this.$message.error({
                  content: res.msg || '划转成功',
                })
                this.$message.error({ content: res.msg || '划转成功' })
              }
              this.editUserDialogloading = false
            })
src/views/userlist/index.vue
@@ -236,11 +236,6 @@
          align: 'center',
        },
        {
          title: '待补资金',
          dataIndex: 'amountToBeCovered',
          align: 'center',
        },
        {
          title: '总资产',
          dataIndex: 'totalMoney',
          align: 'center',