新版交易所前段管理后台
1
PC-20250623MANY\Administrator
2025-12-22 fc54569de9970c2c9e00266fe7c77c30cefd98bf
1
12 files modified
2 files added
323 ■■■■ changed files
.env.development 4 ●●●● patch | view | raw | blame | history
.env.production 4 ●●●● patch | view | raw | blame | history
package-lock.json 4 ●●●● patch | view | raw | blame | history
package.json 2 ●●● patch | view | raw | blame | history
public/favicon.ico patch | view | raw | blame | history
public/index.html 4 ●●●● patch | view | raw | blame | history
src/assets/img/logo.png patch | view | raw | blame | history
src/crud/recharge/finance.js 51 ●●●●● patch | view | raw | blame | history
src/crud/user/ud-address-parameters.js 40 ●●●●● patch | view | raw | blame | history
src/views/common/home.vue 2 ●●● patch | view | raw | blame | history
src/views/main-navbar.vue 2 ●●● patch | view | raw | blame | history
src/views/modules/recharge/address.vue 60 ●●●● patch | view | raw | blame | history
src/views/modules/user/manger.vue 23 ●●●● patch | view | raw | blame | history
src/views/modules/user/ud-address-parameters.vue 127 ●●●●● patch | view | raw | blame | history
.env.development
@@ -4,8 +4,8 @@
# api接口请求地址
# VUE_APP_BASE_API = 'https://zhapi.coinbtcs.com'
# VUE_APP_BASE_API = 'http://192.168.10.7:8085'
VUE_APP_BASE_API = 'https://api.metaequityex.com'
VUE_APP_BASE_API = 'https://ddapi.fractionx-ex.com'
 # VUE_APP_BASE_API = 'http://192.168.10.6:8086'
# 静态资源文件url
VUE_APP_RESOURCES_URL = 'https://img.metaequityex.com/'
VUE_APP_RESOURCES_URL = 'https://ddimg.fractionx-ex.com/'
.env.production
@@ -5,10 +5,10 @@
# VUE_APP_BASE_API = 'https://mini-admin.mall4j.com/apis'
# VUE_APP_BASE_API = 'https://zhapi.coinbtcs.com/aip'
VUE_APP_BASE_API = 'https://api.metaequityex.com'
VUE_APP_BASE_API = 'https://ddapi.fractionx-ex.com'
# 静态资源文件url   app端的前端打開下
VUE_APP_RESOURCES_URL = 'https://img.metaequityex.com/'
VUE_APP_RESOURCES_URL = 'https://ddimg.fractionx-ex.com/'
package-lock.json
@@ -1,11 +1,11 @@
{
  "name": "MetaEquity",
  "name": "FracTionxEX",
  "version": "0.1.0",
  "lockfileVersion": 2,
  "requires": true,
  "packages": {
    "": {
      "name": "MetaEquity",
      "name": "FracTionxEX",
      "version": "0.1.0",
      "dependencies": {
        "@smallwei/avue": "^2.8.27",
package.json
@@ -1,5 +1,5 @@
{
  "name": "MetaEquity",
  "name": "FracTionxEX",
  "version": "0.1.0",
  "private": true,
  "scripts": {
public/favicon.ico

public/index.html
@@ -5,12 +5,12 @@
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title>MetaEquity</title>
    <title>FracTionxEX</title>
  </head>
  <body>
    <noscript>
      <!-- <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> -->
      <strong>We're sorry but MetaEquity doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
      <strong>We're sorry but FracTionxEX doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
src/assets/img/logo.png

src/crud/recharge/finance.js
@@ -4,33 +4,42 @@
  border: true,
  selection: false,
  index: false,
  indexLabel: '序号',
  indexLabel: "序号",
  stripe: true,
  menuAlign: 'center',
  menuAlign: "center",
  menuWidth: 150,
  align: 'center',
  align: "center",
  refreshBtn: true,
  searchSize: 'mini',
  searchSize: "mini",
  addBtn: false,
  editBtn: false,
  delBtn: false,
  viewBtn: false,
  menu:true,
  menu: true,
  props: {
    label: 'label',
    value: 'value'
    label: "label",
    value: "value",
  },
  column: [{
    label: '币种',
    prop: 'coin',
    search: true
  }, {
    label: '链',
    prop: 'blockchain_name',
    search: false
  }, {
    label: '地址',
    prop: 'address',
    search: false
  }, ]
}
  column: [
    {
      label: "用户UID",
      prop: "partyId",
      search: true,
    },
    {
      label: "币种",
      prop: "coin",
      // search: true,
    },
    {
      label: "链",
      prop: "blockchain_name",
      search: false,
    },
    {
      label: "地址",
      prop: "address",
      search: false,
    },
  ],
};
src/crud/user/ud-address-parameters.js
New file
@@ -0,0 +1,40 @@
export const tableOption = {
  searchMenuSpan: 6,
  columnBtn: false,
  border: true,
  selection: false,
  index: false,
  indexLabel: "序号",
  stripe: true,
  menuAlign: "center",
  menuWidth: 150,
  align: "center",
  refreshBtn: false,
  searchSize: "mini",
  addBtn: false,
  editBtn: false,
  delBtn: false,
  viewBtn: false,
  menu: true,
  props: {
    label: "label",
    value: "value",
  },
  column: [
    {
      label: "币种",
      prop: "coin",
    },
    {
      label: "链",
      prop: "blockchain_name",
      search: false,
    },
    {
      label: "地址",
      prop: "address",
      search: false,
    },
  ],
};
src/views/common/home.vue
@@ -9,7 +9,7 @@
    <p>&nbsp;</p>
    <h2>前言</h2>
    <p>
      <code>MetaEquity</code
      <code>FracTionxEX</code
      >打造一个完整、易于维护的系统,采用现阶段流行技术实现。后台管理系统包含商品管理、订单管理、运费模板、规格管理、会员管理、运营管理、内容管理、统计报表、权限管理、设置等模块。
    </p>
    <p>&nbsp;</p>
src/views/main-navbar.vue
@@ -11,7 +11,7 @@
          alt=""
          style="float: left; width: 40px; margin-left: 4px;    border-radius: 50%;"
        />
        <a class="site-navbar__brand-lg" href="javascript:;">MetaEquity</a>
        <a class="site-navbar__brand-lg" href="javascript:;">FracTionxEX</a>
      </h1>
    </div>
    <div class="site-navbar__body clearfix">
src/views/modules/recharge/address.vue
@@ -1,14 +1,7 @@
<template>
  <div class="mod-role">
    <avue-crud
      ref="crud"
      :page.sync="page"
      :data.sync="dataList"
      :option="tableOption"
      @search-change="searchChange"
      @selection-change="selectionChange"
      @on-load="getDataList"
    >
    <avue-crud ref="crud" :page.sync="page" :data.sync="dataList" :option="tableOption" @search-change="searchChange"
      @selection-change="selectionChange" @on-load="getDataList">
      <!-- <template slot="menuLeft">
        <el-button
          type="primary"
@@ -20,21 +13,12 @@
      </template> -->
      <template slot-scope="scope" slot="menu">
        <el-button
          type="primary"
          icon="el-icon-edit"
          size="small"
          @click.stop="addOrUpdateHandle(scope.row)"
          >修改</el-button
        >
        <el-button type="primary" icon="el-icon-edit" size="small"
          @click.stop="addOrUpdateHandle(scope.row)">修改</el-button>
      </template>
    </avue-crud>
    <!-- 弹窗, 新增 / 修改 -->
    <add-or-update
      v-if="addOrUpdateVisible"
      ref="addOrUpdate"
      @refreshDataList="getDataList"
    ></add-or-update>
    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
  </div>
</template>
@@ -63,30 +47,16 @@
  methods: {
    // 获取数据列表
    getDataList(page, params, done) {
      let obj = {
        current: 1,
        endTime: "",
        rolename: "",
        size: 10,
        startTime: "",
        userCode: "",
        userId: "",
      };
      console.log(params);
      this.dataListLoading = true;
      this.$http({
        url: this.$http.adornUrl("/address/list"),
        method: "post",
        data: this.$http.adornData({
          current: this.page.currentPage,
          size: this.page.pageSize,
          rolename: this.dataForm.rolename,
          userCode: this.dataForm.userCode,
          userId: this.dataForm.userId,
          startTime: this.dataForm.startTime,
          endTime: this.dataForm.endTime,
        }),
        //  url: this.$http.adornUrl("/address/list"),
        url: this.$http.adornUrl("/address/getUDList"),
        method: "get",
        params,
      }).then(({ data }) => {
        this.dataList = data.data;
        this.dataList = data.data || [];
        this.page.total = data.total;
        this.dataListLoading = false;
        if (done) {
@@ -114,8 +84,8 @@
      var ids = id
        ? [id]
        : this.dataListSelections.map((item) => {
            return item.roleId;
          });
          return item.roleId;
        });
      this.$confirm(`确定进行[${id ? "删除" : "批量删除"}]操作?`, "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
@@ -137,7 +107,7 @@
            });
          });
        })
        .catch(() => {});
        .catch(() => { });
    },
  },
};
src/views/modules/user/manger.vue
@@ -69,6 +69,8 @@
    <parameters2 v-if="parametersFlag2" ref="parameters2"> </parameters2>
    <!-- 参数管理 -->
    <parameters3 v-if="parametersFlag3" ref="parameters3"> </parameters3>
    <!-- U盾地址 -->
    <udAddressParameters v-if="udAddressParametersFlag" ref="udAddressParameters"> </udAddressParameters>
  </div>
</template>
<script>
@@ -78,12 +80,14 @@
import parameters from "./grid-parameters";
import parameters2 from "./property-parameters";
import parameters3 from "./bi-parameters";
import udAddressParameters from "./ud-address-parameters";
export default {
  data() {
    return {
      parametersFlag3: false,
      parametersFlag2: false,
      parametersFlag: false,
      udAddressParametersFlag: false,
      dataList: [],
      dataListLoading: false,
      dataListSelections: [],
@@ -132,10 +136,14 @@
          value: "10",
          label: "强制用户退出登录",
        },
        {
          value: "11",
          label: "账变日志",
        },
      {
        value: "11",
        label: "账变日志",
      },
      {
        value: "12",
        label: "查看用户U盾地址",
      },
      ],
      page: {
        total: 0, // 总页数
@@ -150,6 +158,7 @@
    parameters,
    parameters2,
    parameters3,
    udAddressParameters,
  },
  methods: {
    // 获取数据列表
@@ -241,6 +250,12 @@
            query: { uid: userCode },
          });
          // router.push({ name: 'account-change-record-sys-config' })
        } else if (val == 12) {
          // 查看用户U盾地址
          this.udAddressParametersFlag = true;
          this.$nextTick(() => {
            this.$refs.udAddressParameters.init(row);
          });
        }
        row.select = "";
      }
src/views/modules/user/ud-address-parameters.vue
New file
@@ -0,0 +1,127 @@
<template>
  <el-dialog
    :title="'查看用户U盾地址'"
    :close-on-click-modal="false"
    :visible.sync="visible"
    width="1200px"
    @close="handClose"
  >
    <div class="mod-subscribe-general">
      <avue-crud
        ref="crud"
        :data="dataList"
        :option="tableOption_1"
        @search-change="searchChange"
        @selection-change="selectionChange"
      >
      </avue-crud>
    </div>
    <span slot="footer" class="dialog-footer">
      <el-button @click="visible = false">关闭</el-button>
    </span>
  </el-dialog>
</template>
<script>
import { tableOption } from "@/crud/user/ud-address-parameters";
export default {
  data() {
    return {
      visible: false,
      tableOption_1: tableOption,
      dataList: [],
      dataListLoading: false,
      userId: null,
    };
  },
  methods: {
    init(row) {
      this.userId = row.userId;
      this.visible = true;
      this.getDataList();
    },
    handClose() {
      this.dataList = [];
      this.userId = null;
    },
    // 条件查询
    searchChange(params, done) {
      this.getDataList(params, done);
    },
    // 多选变化
    selectionChange(val) {
      this.dataListSelections = val;
    },
    // 获取数据列表
    getDataList(params, done) {
      if (!this.userId) {
        if (done) done();
        return;
      }
      this.dataListLoading = true;
      this.$http({
        url: this.$http.adornUrl("/address/getUDList"),
        method: "get",
        params: this.$http.adornParams(
          Object.assign(
            {
              partyId: this.userId,
            },
            params
          ),
          false
        ),
      })
        .then(({ data }) => {
          if (data.code == 0) {
            // 如果返回的是分页数据
            if (data.data && data.data.records) {
              this.dataList = data.data.records;
            } else if (Array.isArray(data.data)) {
              // 如果返回的是数组
              this.dataList = data.data;
            } else {
              this.dataList = [];
            }
          } else {
            this.$message({
              message: data.msg || "获取数据失败",
              type: "error",
              duration: 1000,
            });
            this.dataList = [];
          }
          this.dataListLoading = false;
          if (done) {
            done();
          }
        })
        .catch((error) => {
          console.error("获取U盾地址列表失败:", error);
          this.$message({
            message: "获取数据失败",
            type: "error",
            duration: 1000,
          });
          this.dataList = [];
          this.dataListLoading = false;
          if (done) {
            done();
          }
        });
    },
  },
};
</script>
<style lang="scss" scoped>
::v-deep .el-dialog__body {
  padding: 0px 20px;
}
::v-deep .avue-crud__menu {
  height: auto;
  min-height: 0px;
}
</style>