From 089bf5d2378b3c4a61d795b2a92bede2c193b771 Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Tue, 06 Jan 2026 11:22:58 +0800
Subject: [PATCH] 1

---
 src/views/modules/sys-config/root2-sys-config.vue |  532 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 532 insertions(+), 0 deletions(-)

diff --git a/src/views/modules/sys-config/root2-sys-config.vue b/src/views/modules/sys-config/root2-sys-config.vue
new file mode 100644
index 0000000..7778b31
--- /dev/null
+++ b/src/views/modules/sys-config/root2-sys-config.vue
@@ -0,0 +1,532 @@
+<template>
+  <div class="mod-transport">
+    <!-- <el-button @click="handle"
+             style="margin-left: 20px">{{title}}</el-button>
+    <br /><br /> -->
+    <!-- <avue-form :option="option"
+              v-model="obj"
+              @submit="submit"></avue-form> -->
+    <el-form :model="dataForm" ref="dataForm" label-width="auto" size="mini">
+      <!-- <el-form-item label="" prop="roleName" class="item" label-width="20px">        
+      </el-form-item> -->
+      <div class="item2">
+        <div style="height: auto;position: relative;top: 25%;">
+          APP
+        </div>
+      </div>
+      <div style="background-color: white;height: 10px;"></div>
+      
+      <el-form-item label="当前版本" prop="roleName" label-width="70px">
+        <el-input v-model="dataForm.sys_version" placeholder="当前APP版本"></el-input>
+      </el-form-item>
+
+      <!-- <el-form-item label="充值" prop="roleName" class="item" label-width="40px"></el-form-item> -->
+      <!-- :inline="true" -->
+      <div class="item2">
+        <div style="height: auto;position: relative;top: 25%;">
+          充值
+        </div>
+      </div>
+      <!-- <div style="background-color: white;height: 10px;"></div> -->
+      <el-form :inline="true">  
+          <el-form-item label="">
+            <el-form-item label="充值最低数量,其他币种价值会被换算成USDT判断"></el-form-item>
+            <el-input v-model="dataForm.recharge_limit_min" placeholder="USDT"></el-input>
+          </el-form-item>
+        
+          <el-form-item label="">
+            <el-form-item label="充值最高数量,其他币种价值会被换算成USDT判断"></el-form-item>
+            <el-input v-model="dataForm.recharge_limit_max" placeholder="USDT"></el-input>
+          </el-form-item>
+      </el-form>
+
+      <!-- <el-form-item label="提现" prop="roleName" class="item" label-width="40px"></el-form-item> -->
+      <div class="item2">
+        <div style="height: auto;position: relative;top: 25%;">
+          提现
+        </div>
+      </div>
+      <!-- <div style="background-color: white;height: 10px;"></div> -->
+      <el-form :inline="true">  
+          <el-form-item label="">
+            <el-form-item label="是否开启基础认证后才能提现"></el-form-item>
+            <br/>
+            <el-select v-model="dataForm.withdraw_by_kyc" placeholder="关闭">
+                <el-option label="关闭" value="false"></el-option>
+                <el-option label="开启" value="true"></el-option>
+              </el-select>     
+          </el-form-item>
+        
+          <el-form-item label="">
+            <el-form-item label="提现流水限制是否开启"></el-form-item>
+            <br/>
+            <el-select v-model="dataForm.withdraw_limit_open" placeholder="关闭">
+              <el-option label="关闭" value="false"></el-option>
+              <el-option label="开启" value="true"></el-option>
+            </el-select>
+          </el-form-item>
+
+          <el-form-item label="">
+            <el-form-item label="提现限制流水百分比"></el-form-item>
+            <el-input v-model="dataForm.withdraw_limit_turnover_percent" placeholder="%"></el-input>
+          </el-form-item>
+        
+          <el-form-item label="">
+            <el-form-item label="单次USDT提现限额最低金额"></el-form-item>
+            <el-input v-model="dataForm.withdraw_limit_dapp" placeholder="USDT"></el-input>
+          </el-form-item>
+
+          <el-form-item label="">
+            <el-form-item label="单次USDT提现限额最高金额"></el-form-item>
+            <el-input v-model="dataForm.withdraw_limit_max" placeholder="USDT"></el-input>
+          </el-form-item>
+
+          <el-form-item label="">
+            <el-form-item label="单次BTC提现最低金额"></el-form-item>
+            <el-input v-model="dataForm.withdraw_limit_btc" placeholder="BTC"></el-input>
+          </el-form-item>
+        
+          <el-form-item label="">
+            <el-form-item label="单次ETH提现最低金额"></el-form-item>
+            <el-input v-model="dataForm.withdraw_limit_eth" placeholder="ETH"></el-input>
+          </el-form-item>
+        
+          <el-form-item label="">
+            <el-form-item label="单次USDC提现最低金额"></el-form-item>
+            <el-input v-model="dataForm.withdraw_limit_usdc" placeholder="USDC"></el-input>
+          </el-form-item>
+
+          <el-form-item label="">
+            <el-form-item label="每日可提现次数,若为0或空则不做限制"></el-form-item>
+            <el-input v-model="dataForm.withdraw_limit_num" placeholder=""></el-input>
+          </el-form-item>
+        
+          <el-form-item label="">
+            <el-form-item label="每日可提现时间段,若为空则不做限制"></el-form-item>
+            <br/>
+            <el-time-picker
+              is-range
+              arrow-control
+              v-model="dataForm.dateRange"
+              type="datetimerange"
+              range-separator="至"
+              value-format="HH:mm:ss"
+              start-placeholder="开始时间"
+              end-placeholder="结束时间"
+              placeholder="选择时间范围">
+            </el-time-picker>
+          </el-form-item>
+
+      </el-form>
+     
+
+      <el-form :inline="true">  
+        <el-form-item label="" label-position="top">
+      
+          <!-- <el-form-item label="交割合约" prop="roleName" class="item"></el-form-item> -->
+          <div class="item2" style="width: 520px;">
+            <div style="height: auto;position: relative;top: -15%;">
+              手续费
+            </div>
+          </div>
+      <!-- <div style="background-color: white;height: 10px;"></div> -->
+          <!-- <el-form-item label="24小时内交割合约客户最高赢率(设置了场控的不受影响),高于设定的值时客户必亏" style="display: flex;flex-wrap:wrap"></el-form-item>
+          <el-form-item label="低于时则不限制(范例:10,为最高赢10%),为0则不限制" style="display: flex;flex-wrap:wrap"></el-form-item> -->
+          <!-- <br /> -->
+          <el-input-number v-model="dataForm.futures_most_prfit_level" :step="2"></el-input-number>
+
+          
+        </el-form-item>
+
+        <el-form-item>
+          <!-- <el-form-item label="永续合约" prop="roleName" class="item"></el-form-item> -->
+          <div class="item2" style="width: 480px;">
+            <div style="height: auto;position: relative;top: -15%;">
+              永续合约
+            </div>
+          </div>
+          <el-form-item label="交易状态" style="display: flex;flex-wrap:wrap"></el-form-item>
+          <br/>
+          <el-select v-model="dataForm.order_open" placeholder="关闭">
+              <el-option label="关闭" value="false"></el-option>
+              <el-option label="开启" value="true"></el-option>
+          </el-select>   
+        </el-form-item>
+        
+      </el-form>
+      
+
+      <div class="item2">
+        <div style="height: auto;position: relative;top: 25%;">
+          币币(现货)交易
+        </div>
+      </div>
+      <!-- <div style="background-color: white;height: 10px;"></div> -->
+      <!-- <el-form-item label="币币(现货)交易" prop="roleName" class="item"></el-form-item> -->
+      <el-form :inline="true" label-position="top">
+        
+        <el-form-item label="交易状态" prop="roleName">
+          <el-select v-model="dataForm.exchange_order_open" placeholder="关闭">
+            <el-option label="关闭" value="false"></el-option>
+            <el-option label="开启" value="true"></el-option>
+          </el-select>  
+          <!-- <el-input v-model="dataForm.roleName" placeholder="当前APP版本"></el-input> -->
+        </el-form-item>
+
+        <el-form-item label="卖出手续费" prop="exchange_apply_order_sell_fee">
+          <el-input v-model="dataForm.exchange_apply_order_sell_fee" placeholder="%"></el-input>
+        </el-form-item>
+
+        <el-form-item label="买入手续费" prop="exchange_apply_order_buy_fee">
+          <el-input v-model="dataForm.exchange_apply_order_buy_fee" placeholder="%"></el-input>
+        </el-form-item>
+
+      </el-form>
+
+
+      <el-form label-position="top">
+        <div class="item2">
+          <div style="height: auto;position: relative;top: 25%;">
+            在线客服
+          </div>
+        </div>
+        <!-- <div style="background-color: white;height: 10px;"></div> -->
+        <!-- <el-form-item label="在线客服" prop="roleName" class="item"></el-form-item> -->
+        <el-form-item label="第三方在线客服链接地址(为空则为自研客服)" prop="roleName">
+          <el-input
+              type="textarea"
+              placeholder="请输入内容"
+              v-model="dataForm.customer_service_url"
+              :autosize="{ minRows: 2, maxRows: 2}"
+              show-word-limit
+            >
+          </el-input>
+        </el-form-item>
+      </el-form>
+
+
+      <el-form label-position="top">
+        <!-- <el-form-item label="自研客服用户名黑名单" prop="roleName" class="item"></el-form-item> -->
+        <div class="item2">
+          <div style="height: auto;position: relative;top: 25%;">
+            自研客服用户名黑名单
+          </div>
+        </div>
+        <!-- <div style="background-color: white;height: 10px;"></div> -->
+        <el-form-item label="客服系统用户名黑名单,对多个用户名用逗号隔开,例如:aaa,bbb,ccc" prop="roleName">
+          <el-input
+              type="textarea"
+              placeholder="请输入内容"
+              v-model="dataForm.online_username_black_menu"
+              :autosize="{ minRows: 8, maxRows: 8}"
+              show-word-limit
+            >
+          </el-input>
+        </el-form-item>
+      </el-form>
+
+      <el-form label-position="top">
+        <div class="item2">
+          <div style="height: auto;position: relative;top: 25%;">
+            前端用户黑名单
+          </div>
+        </div>
+        <!-- <el-form-item label="前端用户黑名单" prop="roleName" class="item"></el-form-item> -->
+        <el-form-item label="前端用户黑名单,对多个用户名用逗号隔开,例如:aaa,bbb,ccc" prop="roleName">
+          <el-input
+              type="textarea"
+              placeholder="请输入内容"
+              v-model="dataForm.stop_user_internet"
+              :autosize="{ minRows: 8, maxRows: 8}"
+              show-word-limit
+            >
+          </el-input>
+        </el-form-item>
+      </el-form>
+
+      <el-form label-position="top">
+        <div class="item2">
+          <div style="height: auto;position: relative;top: 25%;">
+            后台系统登录IP白名单
+          </div>
+        </div>
+        <!-- <el-form-item label="后台系统登录IP白名单" prop="roleName" class="item"></el-form-item> -->
+        <el-form-item label="为空则不限制,多个IP之间以,(英文逗号)隔开,也可设置IP段,例如:127.0.*.*,192.168.0.1" prop="roleName">
+          <el-input
+              type="textarea"
+              placeholder="请输入内容"
+              v-model="dataForm.filter_ip"
+              :autosize="{ minRows: 8, maxRows: 8}"
+              show-word-limit
+            >
+          </el-input>
+        </el-form-item>
+      </el-form>
+    </el-form>
+    <el-button 
+      v-if="isAuth('sys:config-root2-sys-config:operate')"
+      type="primary" @click="save()">保存</el-button>
+
+    <!-- 确认弹窗-start -->
+    <el-dialog title="确认修改" :visible.sync="dialogFormVisible" :append-to-body="true"  @close = 'handClose'>
+      <el-form :model="dataForm2" ref="dataForm2" @keyup.enter.native="dataFormSubmit()" label-width="80px">
+        <!-- <el-form-item label="登录人资金密码"  :label-width="formLabelWidth" prop="loginSafeword">
+          <el-input v-model="dataForm2.loginSafeword" type="password" placeholder="登录人资金密码" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item label="超级谷歌验证码" :label-width="formLabelWidth" prop="superGoogleAuthCode">
+          <el-input v-model="dataForm2.superGoogleAuthCode" placeholder="超级谷歌验证码" autocomplete="off"></el-input>
+        </el-form-item> -->
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogFormVisible = false">取 消</el-button>
+        <el-button type="primary" @click="dataFormSubmit()">确 定</el-button>
+      </div>
+    </el-dialog>
+    <!-- 确认弹窗-end -->
+
+  </div>
+
+</template>
+
+<script>
+import { tableOption } from '@/crud/sys/root2'
+import AddOrUpdate from './root2-sys-config-add-or-update'
+import { encrypt } from '@/utils/crypto'
+export default {
+  computed: {
+    title () {
+      return this.option.detail ? '编 辑' : '保 存'
+    }
+  },
+  data () {
+    return {
+      form: {
+        // loginSafeword	: '',     //登录人资金密码	
+        // superGoogleAuthCode: '' //超级管理员谷歌验证码	
+      },
+      formLabelWidth: '120px',
+      dialogFormVisible:false,
+      dataForm:{},
+      dataForm2:{},
+      dataList: [],
+      dataListLoading: false,
+      dataListSelections: [],
+      addOrUpdateVisible: false,
+      option: tableOption,
+      page: {
+        total: 0, // 总页数
+        currentPage: 1, // 当前页数
+        pageSize: 10 // 每页显示多少条
+      },
+      type: 0,
+      obj: {}
+    }
+  },
+  components: {
+    AddOrUpdate
+  },
+  mounted(){
+    this.getDataList()
+    // 为全局事件总线绑定自定义事件
+		this.$bus.$on('root2-sys-config', (data)=>{
+			this.getDataList()
+		})
+  },
+	beforeDestroy() {
+		// 组件被销毁了,不能进行数据传输
+		// 解绑事件
+		this.$bus.$off('root2-sys-config')
+	},
+  methods: {
+    // 获取数据列表
+    getDataList (page, params, done) {
+      this.dataListLoading = true
+      this.$http({
+        url: this.$http.adornUrl('/normal/adminSysparaAction!/toUpdate.action'),
+        method: 'get',
+        params: this.$http.adornParams(
+          Object.assign(
+            {
+              current: page == null ? this.page.currentPage : page.currentPage,
+              size: page == null ? this.page.pageSize : page.pageSize
+            },
+            params
+          )
+        )
+      }).then(({ data }) => {
+        console.log("data = " + JSON.stringify(data));
+        if(data.code == 0){
+          this.dataForm = data.data || {}
+          this.dataList = data.data || []
+          this.page.total = data.total
+
+          this.dataForm.dateRange = []
+
+          this.dataForm.dateRange[0] = this.dataForm.withdraw_limit_time_min;
+          this.dataForm.dateRange[1] = this.dataForm.withdraw_limit_time_max;
+
+          this.dataListLoading = false
+        }else{
+          this.$message.error(data.msg)
+        }
+        
+        if (done) {
+          done()
+        }
+      })
+    },
+    handClose(){
+        this.$data.dataForm2=JSON.parse(JSON.stringify(this.$options.data().dataForm2))
+     this.$nextTick(() => {
+            this.$refs['dataForm2'].clearValidate() // 清除表单验证
+          })
+      },
+    // 条件查询
+    searchChange (params, done) {
+      this.getDataList(this.page, params, done)
+    },
+    // 多选变化
+    selectionChange (val) {
+      this.dataListSelections = val
+    },
+    // 新增 / 修改
+    addOrUpdateHandle (id) {
+      this.addOrUpdateVisible = true
+      console.log("addOrUpdateVisible = " + this.addOrUpdateVisible);
+      this.$nextTick(() => {
+        this.$refs.addOrUpdate.init(id)
+      })
+    },
+    // 删除
+    deleteHandle (id) {
+      var userIds = id ? [id] : this.dataListSelections.map(item => {
+        return item.userId
+      })
+      this.$confirm(`确定对[id=${userIds.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.$http({
+          url: this.$http.adornUrl('/sys/user'),
+          method: 'delete',
+          data: this.$http.adornData(userIds, false)
+        }).then(({ data }) => {
+          this.$message({
+            message: '操作成功',
+            type: 'success',
+            duration: 1500,
+            onClose: () => {
+              this.getDataList()
+            }
+          })
+        })
+      }).catch(() => { })
+    },
+    handle () {
+      this.option.detail = !this.option.detail
+    },
+    submit () {
+      this.$message.success(JSON.stringify(this.obj))
+    },
+    save(){
+      this.dialogFormVisible = true;
+    },
+    dataFormSubmit(){
+      //
+      this.dataListLoading = true
+      this.$http({
+        url: this.$http.adornUrl('/normal/adminSysparaAction!/updateAdmin.action'),
+        method: 'post',
+        data: this.$http.adornData(
+          Object.assign(
+            {
+              "withdraw_limit_max":this.dataForm.withdraw_limit_max,
+              "sys_version":this.dataForm.sys_version,//App版本
+              "recharge_limit_min":this.dataForm.recharge_limit_min,//充值最低数量
+              "recharge_limit_max":this.dataForm.recharge_limit_max,//充值最高数量
+              "withdraw_by_kyc":this.dataForm.withdraw_by_kyc,//是否开启基础认证后才能提现
+              "withdraw_limit_open":this.dataForm.withdraw_limit_open,//提现流水限制是否开启
+              "withdraw_limit_turnover_percent":this.dataForm.withdraw_limit_turnover_percent,//提现限制流水百分比
+              "withdraw_limit":this.dataForm.withdraw_limit_dapp,//单次USDT提现限额
+              "withdraw_limit_dapp":this.dataForm.withdraw_limit_dapp,//单次USDT提现限额
+              "withdraw_limit_btc":this.dataForm.withdraw_limit_btc,//单次BTC提现最低金额
+              "withdraw_limit_eth":this.dataForm.withdraw_limit_eth,//单次ETH提现最低金额
+              "withdraw_limit_usdc":this.dataForm.withdraw_limit_usdc,//单次ETH提现最低金额
+              "withdraw_limit_num":this.dataForm.withdraw_limit_num,//每日可提现次数,若为0或空则不做限制
+              "withdraw_limit_time_min":this.dataForm.withdraw_limit_time_min||"0",
+              "withdraw_limit_time_max":this.dataForm.withdraw_limit_time_max||'0',//每日可提现时间段,若为空则不做限制
+              "futures_most_prfit_level":this.dataForm.futures_most_prfit_level,//交割合约
+              "order_open":this.dataForm.order_open,//永续合约
+              "exchange_order_open":this.dataForm.exchange_order_open,//币币交易-交易状态
+              "exchange_apply_order_sell_fee":this.dataForm.exchange_apply_order_sell_fee,//卖出手续费
+              "exchange_apply_order_buy_fee":this.dataForm.exchange_apply_order_buy_fee,//买入手续费
+              "customer_service_url":this.dataForm.customer_service_url,//在线客服链接地址
+              "online_username_black_menu":this.dataForm.online_username_black_menu,//客服系统黑名单
+              "stop_user_internet":this.dataForm.stop_user_internet,//前端用户黑名单
+              "filter_ip":this.dataForm.filter_ip,//IP白名单
+              // "login_safeword": encrypt(this.dataForm2.loginSafeword), //safePassword	资金密码
+              // "super_google_auth_code": this.dataForm2.superGoogleAuthCode, //superGoogleAuthCode	超级管理员谷歌验证码		false
+            }
+          )
+        )
+      }).then(({ data }) => {
+        console.log("data = " + JSON.stringify(data));
+        // this.dataForm = data.data
+        // this.dataList = data.data
+        // this.page.total = data.total
+        // this.dataListLoading = false
+        
+        if(data&&data.code == 0){
+          this.$message({
+            message: '操作成功',
+            type: 'success',
+            duration: 1500,
+            onClose: () => {
+              this.dialogFormVisible = false;
+              this.getDataList()
+            }
+          })
+          
+        }else{
+          this.$message({
+                message: data.msg,
+                type: "error",
+              });
+        }
+        
+      })
+      //
+    }
+  }
+}
+</script>
+
+<style scoped>
+  .item{
+    background-color:#4d9ec4;
+    height:10px;
+    margin-top: 0px;
+    top:0px;
+    position:relative;
+  }
+
+  .item2{
+    padding-left: 20px;
+    background-color:rgb(202, 205,204);
+    height:30px;
+    position:relative;
+  }
+
+  .item > label{
+    color: #020202;
+  }
+
+  /* .el-form-item label{
+    color: #14da6d;
+  } */
+
+  /* .el-form-item__label {
+    word-wrap: break-word;
+  } */
+</style>

--
Gitblit v1.9.3