大宝管理后台代码
jhzh
2024-05-22 455b1ab17947dec33c33f8d7fa03e23a94291139
no message
7 files modified
3 files added
463 ■■■■■ changed files
.env 4 ●●●● patch | view | raw | blame | history
.env.development 4 ●●●● patch | view | raw | blame | history
dabao_admin.rar patch | view | raw | blame | history
src/api/home.js 18 ●●●● patch | view | raw | blame | history
src/api/soure.js 51 ●●●●● patch | view | raw | blame | history
src/config/router.config.js 6 ●●●●● patch | view | raw | blame | history
src/views/dashboard/Workplace.vue 66 ●●●● patch | view | raw | blame | history
src/views/logmanage/scorelist.vue 292 ●●●●● patch | view | raw | blame | history
src/views/userlist/agentlist.vue 18 ●●●●● patch | view | raw | blame | history
src/views/userlist/components/EditUserinfodialog.vue 4 ●●●● patch | view | raw | blame | history
.env
@@ -2,8 +2,8 @@
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= https://brac.barcblays.com/
VUE_APP_API_BASE_URL= https://brac.barcblays.com/
# 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=https://192.168.0.102:8091/
#  VUE_APP_API_BASE_URL=http://192.168.10.4:8091/
# VUE_APP_API_BASE_URL=https://api.guosen.org/
.env.development
@@ -2,9 +2,9 @@
VUE_APP_PREVIEW=true
# VUE_APP_API_BASE_URL=http://www.jqydl.com:8091/
# VUE_APP_API_BASE_URL=http://192.168.0.105:8091/
 VUE_APP_API_BASE_URL=https://brac.barcblays.com/
# VUE_APP_API_BASE_URL=https://brac.barcblays.com/
# 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=https://192.168.0.102:8091/
 VUE_APP_API_BASE_URL=http://192.168.10.4:8091/
# VUE_APP_API_BASE_URL= https://www.prudentcapitals.net/
# VUE_APP_API_BASE_URL=https://api.guosen.org/
dabao_admin.rar
Binary files differ
src/api/home.js
@@ -4,6 +4,7 @@
  queryApplyLever: '/admin/queryApplyLever.do', // 首页统计类
  examineApplyLever: '/admin/examineApplyLever.do', // 首页统计类
  countdata: '/admin/count.do', // 首页统计类
  getagentprice:'/admin/totalAgencyFunds.do',//获取代理总资产
  usermanag: '/admin/user/list.do', // 用户列表
  getMoney: '/admin/getMoney.do', // 获取账户金额
  useraddSimulatedAccount: '/admin/user/addSimulatedAccount.do', // 添加真实/模拟用户
@@ -22,7 +23,7 @@
  deyeb: '/admin/deleteEcho.do', // 删除利息宝列表
  yeblist: '/admin/querYEBOrder.do', // 利息宝列表
  addyeb: '/admin/addEcho.do', // 添加利息宝列表
  moneyCount:'/admin/moneyCount.do',//获取首页数据
  nextagent: '/admin/agent/list.do', // 代理列表
  onedklist: '/admin/queryDk.do', // 贷款列表
  dklist: '/admin/queryDkjg.do', // 机构列表
@@ -49,7 +50,20 @@
 * @param parameter
 * @returns {*}
 */
export function getagentprice (parameter) {
  return request({
    url: userApi.getagentprice,
    method: 'post',
    data: qs.stringify(parameter)
  })
}
export function moneyCount (parameter) {
  return request({
    url: userApi.moneyCount,
    method: 'post',
    data: qs.stringify(parameter)
  })
}
export function queryEcho (parameter) {
  return request({
    url: userApi.queryEcho,
src/api/soure.js
New file
@@ -0,0 +1,51 @@
import request from '@/utils/request'
import qs from 'qs'
const userApi = {
    adminlist: '/admin/log/optionList.do', // 管理列表
    adminupdateLock: '/admin/updateLock.do', // 管理锁定 解锁
    adminadd: '/admin/add.do', // 添加管理员
    adminupdate: '/admin/update.do' // 修改管理员密码
}
/**
 * login func
 * parameter: {
 *     username: '',
 *     password: '',
 *     remember_me: true,
 *     captcha: '12345'
 * }
 * @param parameter
 * @returns {*}
 */
export function adminlist (parameter) {
    return request({
        url: userApi.adminlist,
        method: 'post',
        data: qs.stringify(parameter)
    })
}
export function adminupdateLock (parameter) {
    return request({
        url: userApi.adminupdateLock,
        method: 'post',
        data: qs.stringify(parameter)
    })
}
export function adminadd (parameter) {
    return request({
        url: userApi.adminadd,
        method: 'post',
        data: qs.stringify(parameter)
    })
}
export function adminupdate (parameter) {
    return request({
        url: userApi.adminupdate,
        method: 'post',
        data: qs.stringify(parameter)
    })
}
src/config/router.config.js
@@ -263,6 +263,12 @@
            name: 'loginlog',
            component: () => import('@/views/logmanage/loginlog'),
            meta: { title: '登录日志', keepAlive: true, permission: ['loginlog'] }
          },
          {
            path: '/logmanage/scorelist',
            name: 'scorelist',
            component: () => import('@/views/logmanage/scorelist'),
            meta: { title: '上下分列表', keepAlive: true, permission: ['scorelist'] }
          }
          // {
          //   path: '/logmanage/smslog',
src/views/dashboard/Workplace.vue
@@ -144,35 +144,56 @@
              </v-chart>
            </div>
          </a-card>
          <a-card :loading="loading" title="充值提现统计" :bordered="false">
          <div style="display:flex;align-items: center;justify-content: space-between;background-color: #fff;border-bottom: 1px solid #e8e8e8;">
            <div style="display:flex;align-items: center;">
              <a-card
                title="充值提现统计"
                :loading="radarLoading"
                :bordered="false"
                :body-style="{ padding: 0 }">
              </a-card>
            </div>
            <div>
              <a-date-picker
                show-time
                style="width: 100%"
                @change="getstartTime"
                v-decorator="['startTime', { rules: [{ required: true, message: '请填写开始时间' }] }]"
                format="YYYY-MM-DD"
              >
              </a-date-picker>
            </div>
          </div>
          <a-card :loading="loading"  :bordered="false">
            <div class="members">
              <a-row>
                <a-col :span="12">
                  <a>
                    <span>今日充值</span>
                    <span class="member">{{ infodetail.charge_today_sum_amt ? infodetail.charge_today_sum_amt : 0
                    <span class="member">{{ infodata.todayRechargeAmount
                    }}</span>
                  </a>
                </a-col>
                <a-col :span="12">
                  <a>
                    <span>总充值</span>
                    <span class="member">{{ infodetail.charge_sum_amt ? infodetail.charge_sum_amt : 0 }}</span>
                    <span class="member">{{ infodata.rechargeTotalAmount  }}</span>
                  </a>
                </a-col>
                <a-col :span="12">
                  <a>
                    <span>今日提现</span>
                    <span class="member">{{ infodetail.sp_withdraw_sum_today_amt_success ?
                      infodetail.sp_withdraw_sum_today_amt_success : 0
                    <span class="member">{{ infodata.todayWithdrawAmount
                    }}</span>
                  </a>
                </a-col>
                <a-col :span="12">
                  <a>
                    <span>总提现</span>
                    <span class="member">{{ infodetail.sp_withdraw_sum_amt_success ?
                      infodetail.sp_withdraw_sum_amt_success : 0
                    <span class="member">{{ infodata.withdrawalTotalAmount
                    }}</span>
                  </a>
                </a-col>
@@ -180,13 +201,12 @@
                <a-col :span="12">
                  <a>
                    <span>当日注册人数</span>
                    <span class="member">{{ infodetail.toDayRegCount ?
                      infodetail.toDayRegCount : 0
                    <span class="member">{{ infodata.todayRegister
                    }}</span>
                  </a>
                </a-col>
                <a-col :span="12">
                <!-- <a-col :span="12">
                  <a>
                    <span>当日首充人数</span>
                    <span class="member">{{ infodetail.toDayFristRechargeCount ?
@@ -202,13 +222,13 @@
                      infodetail.toDayFristRechargeMoney : 0
                    }}</span>
                  </a>
                </a-col>
                </a-col> -->
                <a-col :span="12">
                  <a>
                    <span>当日充值总人数</span>
                    <span class="member">{{ infodetail.toDayRechargeCount ?
                      infodetail.toDayRechargeCount : 0
                    <span class="member">{{ infodata.todayWithdraw  ?
                      infodata.todayWithdraw  : 0
                    }}</span>
                  </a>
                </a-col>
@@ -227,7 +247,7 @@
import { PageHeaderWrapper } from '@ant-design-vue/pro-layout'
import { Radar } from '@/components'
import { getRoleList, getServiceList } from '@/api/manage'
import { stockgetMarket, countdata } from '@/api/home'
import { stockgetMarket, countdata,moneyCount } from '@/api/home'
import { positionlist } from '@/api/position'
import { adminlist } from '@/api/managesettings'
import axios from 'axios'
@@ -300,9 +320,11 @@
      market: [],
      infodetail: {},
      infodata:{},
      rongzilist: [],
      userdetails: '',
      lizhidetail: ''
      lizhidetail: '',
      startTime:'',
    }
  },
  computed: {
@@ -340,13 +362,27 @@
    this.getrongzilist()
    this.getnowuser()
    this.getlizhi()
    this.getinfodata()
  },
  methods: {
    getstartTime (date, dateString) {
      this.startTime = dateString
      this.getinfodata()
    },
    getinfodata(){
      var data = {
        startTime:this.startTime,
      }
      moneyCount(data).then(res => {
        this.infodata = res.data
      })
    },
    getlizhi () {
      axios.get('https://saying.api.azwcl.com/saying/get').then(res => {
        this.lizhidetail = res.data.data
      })
    },
    getnowuser () {
      adminlist().then(res => {
        if (window.localStorage.getItem('phones')) {
src/views/logmanage/scorelist.vue
New file
@@ -0,0 +1,292 @@
<template>
  <page-header-wrapper>
    <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="用户ID">
                <a-input v-model="queryParam.userId" style="width: 100%" placeholder="请输入用户ID" />
              </a-form-item>
            </a-col>
            <a-col :md="12" :lg="6" :sm="24">
              <a-form-item>
                <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-card :bordered="false">
      <a-table
        bordered
        :loading="loading"
        :pagination="pagination"
        :columns="columns"
        :data-source="datalist"
        rowKey="id"
      >
        <span slot="isLock" slot-scope="text, record">
          <template>
            <div>
              <a-tag :color="record.isLock == 0 ? 'green' : record.isLock == 1 ? 'red' : ''">
                {{ record.isLock == 0 ? '正常' : '锁定' }}
              </a-tag>
            </div>
          </template>
        </span>
        <template slot="action" slot-scope="text, record">
          <a slot="action" href="javascript:;" @click="getisLock(record.id, record.isLock)">{{
            record.isLock == 0 ? '锁定用户' : '解锁用户'
          }}</a>
          <a-divider type="vertical" />
          <a slot="action" href="javascript:;" @click="geteditStock(record)">修改密码</a>
        </template>
      </a-table>
    </a-card>
    <a-modal
      title="添加管理员"
      :width="500"
      :visible="addUserdialog"
      :confirmLoading="addUserDialogloading"
      @ok="OkaddUserdialog"
      @cancel="CanceladdUserdialog"
    >
      <a-form :form="addUserform" ref="addUserform">
        <a-form-item label="用户ID" :labelCol="labelCol" :wrapperCol="wrapperCol">
          <a-input
            placeholder="请输入用户ID"
            v-decorator="['id', { rules: [{ required: true, message: '请输入用户ID' }] }]"
          />
        </a-form-item>
        <a-form-item label="管理员手机号" :labelCol="labelCol" :wrapperCol="wrapperCol">
          <a-input
            placeholder="请输入管理员手机号"
            v-decorator="['adminPhone', { rules: [{ required: true, message: '请输入管理员手机号' }] }]"
          />
        </a-form-item>
        <a-form-item label="管理员密码" :labelCol="labelCol" :wrapperCol="wrapperCol">
          <a-input
            placeholder="请输入管理员密码"
            v-decorator="['adminPwd', { rules: [{ required: true, message: '请输入管理员密码' }] }]"
          />
        </a-form-item>
      </a-form>
    </a-modal>
    <a-modal
      title="修改密码"
      :width="500"
      :visible="editStockdialog"
      :confirmLoading="editStockdialogloading"
      @ok="OkeditStockdialog"
      @cancel="CanceleditStockdialog"
    >
      <a-form :form="editStockform" ref="editStockform">
        <a-form-item label="用户ID" :labelCol="labelCol" :wrapperCol="wrapperCol">
          <a-input
            placeholder="请输入用户ID"
            disabled
            v-decorator="['id', { rules: [{ required: true, message: '请输入用户ID' }] }]"
          />
        </a-form-item>
        <a-form-item label="密码" :labelCol="labelCol" :wrapperCol="wrapperCol">
          <a-input
            placeholder="请输入密码"
            v-decorator="['adminPwd', { rules: [{ required: true, message: '请输入密码' }] }]"
          />
        </a-form-item>
      </a-form>
    </a-modal>
  </page-header-wrapper>
</template>
<script>
import { adminlist, adminupdateLock, adminadd, adminupdate } from '@/api/soure'
import moment from 'moment'
export default {
  name: 'Shares',
  data () {
    return {
      columns: [
        {
          title: 'id',
          dataIndex: 'userId',
          align: 'center'
        },
        {
          title: '用户名',
          dataIndex: 'userName',
          align: 'center'
        },
        {
          title: '操作金额',
          dataIndex: 'money',
          align: 'center'
        },
        {
          title: '资产账户类型',
          dataIndex: 'userAccectType',
          align: 'center',
          scopedSlots: { customRender: 'userAccectType' }
        },
        {
          title: '操作时间',
          dataIndex: 'createTime',
          align: 'center',
          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,
        userId: '',
      },
      datalist: [],
      labelCol: {
        xs: { span: 24 },
        sm: { span: 7 }
      },
      wrapperCol: {
        xs: { span: 24 },
        sm: { span: 13 }
      },
      addUserform: this.$form.createForm(this),
      addUserdialog: false,
      addUserDialogloading: false,
      editStockdialog: false,
      editStockdialogloading: false,
      editStockform: this.$form.createForm(this),
      fields: ['id', 'adminPwd']
    }
  },
  created () {
    this.getlist()
  },
  methods: {
    geteditStock (val) {
      this.editStockdialog = true
      this.fields.forEach((v) => this.editStockform.getFieldDecorator(v))
      this.editStockform.setFieldsValue({ id: val.id })
    },
    CanceleditStockdialog () {
      this.editStockdialog = false
      const form = this.$refs.editStockform.form
      form.resetFields()
    },
    OkeditStockdialog () {
      const form = this.$refs.editStockform.form
      form.validateFields((errors, values) => {
        if (!errors) {
          this.editStockdialogloading = true
          values.adminPwd = this.editStockform.getFieldValue('adminPwd')
          adminupdate(values).then((res) => {
            if (res.status == 0) {
              this.editStockdialog = false
              this.$message.success(res.msg)
              form.resetFields()
              this.getlist()
            } else {
              this.$message.error(res.msg)
            }
            this.editStockdialogloading = false
          })
        }
      })
    },
    // 新增用户取消弹窗
    CanceladdUserdialog () {
      this.addUserdialog = false
      const form = this.$refs.addUserform.form
      form.resetFields()
    },
    // 新增用户确定
    OkaddUserdialog () {
      const form = this.$refs.addUserform.form
      form.validateFields((errors, values) => {
        if (!errors) {
          this.addUserDialogloading = true
          adminadd(values).then((res) => {
            if (res.status == 0) {
              this.addUserdialog = false
              this.$message.success(res.msg)
              form.resetFields()
              this.getlist()
            } else {
              this.$message.error(res.msg)
            }
            this.addUserDialogloading = false
          })
        }
      })
    },
    getqueryParam () {
      this.queryParam = {
        pageNum: 1,
        pageSize: 10,
        adminName: '',
        adminPhone: ''
      }
    },
    getlist () {
      this.loading = true
      adminlist(this.queryParam).then((res) => {
        this.datalist = res.data.list
        this.pagination.total = res.data.total
        this.loading = false
      })
    },
    // 股票的锁定解锁
    getisLock (idval, isLockval) {
      adminupdateLock({ adminId: idval }).then((res) => {
        if (res.status === 0) {
          this.getlist()
          if (isLockval == 0) {
            this.$message.success({ content: '锁定成功', duration: 2 })
          } else {
            this.$message.success({ content: '解锁成功', duration: 2 })
          }
        } else {
          this.$message.error({ content: res.msg, duration: 2 })
        }
      })
    },
    onPageChange (page, pageSize) {
      this.queryParam.pageNum = page
      this.getlist()
    },
    onSizeChange (current, pageSize) {
      this.queryParam.pageNum = current
      this.queryParam.pageSize = pageSize
      this.getlist()
    }
  }
}
</script>
src/views/userlist/agentlist.vue
@@ -52,6 +52,9 @@
      </div>
      <div class="table-operator">
        <a-button type="primary" icon="plus" @click="$refs.addagentdialog.addUserdialog = true">添加下级代理</a-button>
        <div class="table-operator_price">代理充值总资产:${{agentpricetotal.usTotalAmount}} ₹{{agentpricetotal.inTotalAmount}}</div>
        <div class="table-operator_price" style="margin-left: 30px;">代理提现总资产:${{agentpricetotal.usTotalWithdrawAmount}} ₹{{agentpricetotal.inTotalWithdrawAmount}}</div>
        <a  @click="gettotalprice">(点击刷新)</a>
      </div>
    </a-card>
@@ -100,7 +103,7 @@
import editCapitalAgentdialog from './agentcomponents/editCapitalAgentdialog'
import EditAgentinfodialog from './agentcomponents/EditAgentinfodialog'
import addagentdialog from './agentcomponents/addagentdialog'
import { nextagent, agentdelAgent } from '@/api/home'
import { nextagent, agentdelAgent,getagentprice } from '@/api/home'
import moment from 'moment'
export default {
  name: 'AgentList',
@@ -193,14 +196,21 @@
        pageSize: 10
      },
      agentloading: false,
      agentpricetotal:'',
      agentlist: [],
      clickagentlist: []
    }
  },
  created () {
    this.getagentlist()
    this.gettotalprice()
  },
  methods: {
    gettotalprice(){
      getagentprice().then((res) => {
        this.agentpricetotal = res.data
      })
    },
    getDelagent (val) {
      var that = this
      this.$confirm({
@@ -277,3 +287,9 @@
  }
}
</script>
<style >
  .table-operator{
    display:flex;
    align-items: center;
  }
</style>
src/views/userlist/components/EditUserinfodialog.vue
@@ -26,7 +26,7 @@
          <a-input placeholder="请输入用户名" v-decorator="['realName', {}]" />
        </a-form-item>
        <a-form-item label="密码" :labelCol="labelCol" :wrapperCol="wrapperCol">
          <a-input placeholder="请输入密码" v-decorator="['pwd', {}]" />
          <a-input placeholder="请输入密码" v-decorator="['userPwd', {}]" />
        </a-form-item>
        <a-form-item label="身份证号码" :labelCol="labelCol" :wrapperCol="wrapperCol">
          <a-input placeholder="请输入身份证号码" v-decorator="['idCard', {}]" />
@@ -74,7 +74,7 @@
      editUserform: this.$form.createForm(this),
      editUserdialog: false,
      editUserDialogloading: false,
      fields: ['agentId', 'phone', 'realName', 'pwd', 'idCard', 'isLogin', 'isLock'],
      fields: ['agentId', 'phone', 'realName', 'userPwd', 'idCard', 'isLogin', 'isLock'],
      currentDetails: {}
    }
  },