From a0fa29ab341150d36e427375f9409f5d40a83223 Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Sat, 09 Aug 2025 17:33:25 +0800
Subject: [PATCH] 1

---
 src/views/product/shares.vue          |    4 
 src/api/allsetting.js                 |  323 +++++++++++++++++---------------
 src/views/allsetting/exchangerate.vue |  224 ++++++++++++++++++++++
 src/config/router.config.js           |    6 
 4 files changed, 402 insertions(+), 155 deletions(-)

diff --git a/src/api/allsetting.js b/src/api/allsetting.js
index 7859351..953a3e9 100644
--- a/src/api/allsetting.js
+++ b/src/api/allsetting.js
@@ -1,27 +1,29 @@
 import request from '@/utils/request'
 import qs from 'qs'
 const userApi = {
-    artlist: '/admin/art/list.do', // 公告列表
-    adminupload: '/admin/upload.do', // 上传图片
-    artadd: '/admin/art/add.do', // 添加公告
-    artupdate: '/admin/art/update.do', // 修改公告
-    artdelArt: '/admin/art/delArt.do', // 删除公告
-    bannerslist: '/admin/banners/list.do', // banner列表
-    bannersupdate: '/admin/banners/update.do', // 修改轮播图
-    bannersadd: '/admin/banners/add.do', // 添加轮播图
-    bannersdelete: '/admin/banners/delete.do', // 删除轮播图
-    paylist: '/admin/pay/list.do', // 支付渠道列表
-    paydel: '/admin/pay/del.do', // 删除支付渠道
-    payadd: '/admin/pay/add.do', // 添加支付渠道
-    payupdate: '/admin/pay/update.do', // 修改支付渠道
-    sitegetInfo: '/api/site/getInfo.do', // 系统设置
-    infoupdate: '/admin/info/update.do', // 修改系统设置
-    queryAll: 'admin/stockTimeSetting/queryAll.do', // 查看股票时间
-    updatetime: '/admin/stockTimeSetting/update.do', // 修改股票时间
-    SettingqueryAll: 'admin/stockSetting/queryAll.do', // 盘前交易列表
-    stockadd: '/admin/stockSetting/add.do', // 新增盘前交易
-    stockupdata: '/admin/stockSetting/update.do', // 修改盘前交易
-    stockdelete: '/admin/stockSetting/delete.do'// 删除盘前
+  artlist: '/admin/art/list.do', // 公告列表
+  adminupload: '/admin/upload.do', // 上传图片
+  artadd: '/admin/art/add.do', // 添加公告
+  artupdate: '/admin/art/update.do', // 修改公告
+  artdelArt: '/admin/art/delArt.do', // 删除公告
+  bannerslist: '/admin/banners/list.do', // banner列表
+  bannersupdate: '/admin/banners/update.do', // 修改轮播图
+  bannersadd: '/admin/banners/add.do', // 添加轮播图
+  bannersdelete: '/admin/banners/delete.do', // 删除轮播图
+  paylist: '/admin/pay/list.do', // 支付渠道列表
+  paydel: '/admin/pay/del.do', // 删除支付渠道
+  payadd: '/admin/pay/add.do', // 添加支付渠道
+  payupdate: '/admin/pay/update.do', // 修改支付渠道
+  sitegetInfo: '/api/site/getInfo.do', // 系统设置
+  infoupdate: '/admin/info/update.do', // 修改系统设置
+  queryAll: 'admin/stockTimeSetting/queryAll.do', // 查看股票时间
+  updatetime: '/admin/stockTimeSetting/update.do', // 修改股票时间
+  SettingqueryAll: 'admin/stockSetting/queryAll.do', // 盘前交易列表
+  stockadd: '/admin/stockSetting/add.do', // 新增盘前交易
+  stockupdata: '/admin/stockSetting/update.do', // 修改盘前交易
+  stockdelete: '/admin/stockSetting/delete.do', // 删除盘前
+  rateInfo: '/admin/rate/getInfo.do', // 汇率列表
+  editRate: '/admin/rate/editRate.do', // 汇率新增/编辑
 }
 
 /**
@@ -35,164 +37,179 @@
  * @param parameter
  * @returns {*}
  */
- export function stockdelete (parameter) {
-     return request({
-         url: userApi.stockdelete,
-         method: 'post',
-         data: qs.stringify(parameter)
-     })
- }
- export function stockupdata (parameter) {
-     return request({
-         url: userApi.stockupdata,
-         method: 'post',
-         data: qs.stringify(parameter)
-     })
- }
- export function stockadd (parameter) {
-     return request({
-         url: userApi.stockadd,
-         method: 'post',
-         data: qs.stringify(parameter)
-     })
- }
- export function SettingqueryAll (parameter) {
-     return request({
-         url: userApi.SettingqueryAll,
-         method: 'post',
-         data: qs.stringify(parameter)
-     })
- }
- export function updatetime (parameter) {
-     return request({
-         url: userApi.updatetime,
-         method: 'post',
-         data: qs.stringify(parameter)
-     })
- }
- export function queryAll (parameter) {
-     return request({
-         url: userApi.queryAll,
-         method: 'post',
-         data: qs.stringify(parameter)
-     })
- }
-export function artlist (parameter) {
-    return request({
-        url: userApi.artlist,
-        method: 'post',
-        data: qs.stringify(parameter)
-    })
+export function stockdelete(parameter) {
+  return request({
+    url: userApi.stockdelete,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
+}
+export function stockupdata(parameter) {
+  return request({
+    url: userApi.stockupdata,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
+}
+export function stockadd(parameter) {
+  return request({
+    url: userApi.stockadd,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
+}
+export function SettingqueryAll(parameter) {
+  return request({
+    url: userApi.SettingqueryAll,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
+}
+export function updatetime(parameter) {
+  return request({
+    url: userApi.updatetime,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
+}
+export function queryAll(parameter) {
+  return request({
+    url: userApi.queryAll,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
+}
+export function artlist(parameter) {
+  return request({
+    url: userApi.artlist,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
 }
 
-export function adminupload (parameter) {
-    return request({
-        url: userApi.adminupload,
-        method: 'post',
-        data: parameter
-    })
+export function adminupload(parameter) {
+  return request({
+    url: userApi.adminupload,
+    method: 'post',
+    data: parameter,
+  })
 }
 
-export function artadd (parameter) {
-    return request({
-        url: userApi.artadd,
-        method: 'post',
-        data: qs.stringify(parameter)
-    })
+export function artadd(parameter) {
+  return request({
+    url: userApi.artadd,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
 }
 
-export function artupdate (parameter) {
-    return request({
-        url: userApi.artupdate,
-        method: 'post',
-        data: qs.stringify(parameter)
-    })
+export function artupdate(parameter) {
+  return request({
+    url: userApi.artupdate,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
 }
 
-export function artdelArt (parameter) {
-    return request({
-        url: userApi.artdelArt,
-        method: 'post',
-        data: qs.stringify(parameter)
-    })
+export function artdelArt(parameter) {
+  return request({
+    url: userApi.artdelArt,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
 }
 
-export function bannerslist (parameter) {
-    return request({
-        url: userApi.bannerslist,
-        method: 'post',
-        data: qs.stringify(parameter)
-    })
+export function bannerslist(parameter) {
+  return request({
+    url: userApi.bannerslist,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
 }
 
-export function bannersupdate (parameter) {
-    return request({
-        url: userApi.bannersupdate,
-        method: 'post',
-        data: qs.stringify(parameter)
-    })
+export function bannersupdate(parameter) {
+  return request({
+    url: userApi.bannersupdate,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
 }
 
-export function bannersadd (parameter) {
-    return request({
-        url: userApi.bannersadd,
-        method: 'post',
-        data: qs.stringify(parameter)
-    })
+export function bannersadd(parameter) {
+  return request({
+    url: userApi.bannersadd,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
 }
 
-export function bannersdelete (parameter) {
-    return request({
-        url: userApi.bannersdelete,
-        method: 'post',
-        data: qs.stringify(parameter)
-    })
+export function bannersdelete(parameter) {
+  return request({
+    url: userApi.bannersdelete,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
 }
 
-export function paylist (parameter) {
-    return request({
-        url: userApi.paylist,
-        method: 'post',
-        data: qs.stringify(parameter)
-    })
+export function paylist(parameter) {
+  return request({
+    url: userApi.paylist,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
 }
 
-export function paydel (parameter) {
-    return request({
-        url: userApi.paydel,
-        method: 'post',
-        data: qs.stringify(parameter)
-    })
+export function paydel(parameter) {
+  return request({
+    url: userApi.paydel,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
 }
 
-export function payadd (parameter) {
-    return request({
-        url: userApi.payadd,
-        method: 'post',
-        data: qs.stringify(parameter)
-    })
+export function payadd(parameter) {
+  return request({
+    url: userApi.payadd,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
 }
 
-export function payupdate (parameter) {
-    return request({
-        url: userApi.payupdate,
-        method: 'post',
-        data: qs.stringify(parameter)
-    })
+export function payupdate(parameter) {
+  return request({
+    url: userApi.payupdate,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
 }
 
-export function sitegetInfo (parameter) {
-    return request({
-        url: userApi.sitegetInfo,
-        method: 'post',
-        data: qs.stringify(parameter)
-    })
+export function sitegetInfo(parameter) {
+  return request({
+    url: userApi.sitegetInfo,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
 }
 
-export function infoupdate (parameter) {
-    return request({
-        url: userApi.infoupdate,
-        method: 'post',
-        data: qs.stringify(parameter)
-    })
+export function infoupdate(parameter) {
+  return request({
+    url: userApi.infoupdate,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
+}
+
+export function getRateInfo(parameter) {
+  return request({
+    url: userApi.rateInfo,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
+}
+export function setRateInfo(parameter) {
+  return request({
+    url: userApi.editRate,
+    method: 'post',
+    data: qs.stringify(parameter),
+  })
 }
diff --git a/src/config/router.config.js b/src/config/router.config.js
index 34fa568..9eeaebd 100644
--- a/src/config/router.config.js
+++ b/src/config/router.config.js
@@ -398,6 +398,12 @@
             component: () => import('@/views/allsetting/paysetting'),
             meta: { title: '支付渠道设置', keepAlive: true, permission: ['paysetting'] },
           },
+          {
+            path: '/allsetting/exchangerate',
+            name: 'exchangerate',
+            component: () => import('@/views/allsetting/exchangerate'),
+            meta: { title: '汇率', keepAlive: true, permission: ['paysetting'] },
+          },
         ],
       },
 
diff --git a/src/views/allsetting/exchangerate.vue b/src/views/allsetting/exchangerate.vue
new file mode 100644
index 0000000..b867795
--- /dev/null
+++ b/src/views/allsetting/exchangerate.vue
@@ -0,0 +1,224 @@
+<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>
+                <span class="table-page-search-submitButtons">
+                  <a-button
+                    type="primary"
+                    icon="plus"
+                    style="margin-left: 8px"
+                    @click="
+                      addUserdialog = true
+                      currentDetails = null
+                    "
+                  >
+                    新增汇率
+                  </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"
+      >
+        <template slot="action" slot-scope="text, record">
+          <a slot="action" href="javascript:;" @click="setCurrency(record)">修改基础货币</a>
+        </template>
+      </a-table>
+    </a-card>
+
+    <a-modal
+      :title="currentDetails ? '编辑汇率' : '新增汇率'"
+      :width="800"
+      :visible="addUserdialog"
+      :confirmLoading="addUserDialogloading"
+      @ok="OkaddUserdialog"
+      @cancel="CanceladdUserdialog"
+    >
+      <a-form :form="addUserform" ref="addUserform">
+        <a-form-item label="原始货币" :labelCol="labelCol" :wrapperCol="wrapperCol">
+          <a-select
+            placeholder="请选择"
+            v-decorator="['currency', { rules: [{ required: true, message: '请选择' }] }]"
+            :disabled="currentDetails"
+          >
+            <a-select-option :value="item.value" v-for="item in hbList" :key="item.value">
+              {{ item.label }}
+            </a-select-option>
+          </a-select>
+        </a-form-item>
+
+        <a-form-item label="转换货币" :labelCol="labelCol" :wrapperCol="wrapperCol">
+          <a-select
+            placeholder="请选择"
+            v-decorator="['conversionCurrency', { rules: [{ required: true, message: '请选择' }] }]"
+            :disabled="currentDetails"
+          >
+            <a-select-option :value="item.value" v-for="item in hbList" :key="item.value">
+              {{ item.label }}
+            </a-select-option>
+          </a-select>
+        </a-form-item>
+
+        <a-form-item label="汇率" :labelCol="labelCol" :wrapperCol="wrapperCol">
+          <a-input placeholder="请输入" v-decorator="['rata', { rules: [{ required: true, message: '请输入' }] }]" />
+        </a-form-item>
+      </a-form>
+    </a-modal>
+  </page-header-wrapper>
+</template>
+
+<script>
+import { getRateInfo, setRateInfo } from '@/api/allsetting'
+import pick from 'lodash.pick'
+export default {
+  name: 'Basecurrency',
+  data() {
+    return {
+      columns: [
+        {
+          title: '原始货币',
+          dataIndex: 'currency',
+          align: 'center',
+        },
+        {
+          title: '转换货币',
+          dataIndex: 'conversionCurrency',
+          align: 'center',
+        },
+        {
+          title: '汇率',
+          dataIndex: 'rata',
+          align: 'center',
+        },
+        {
+          title: '操作',
+          key: 'action',
+          align: 'center',
+          fixed: 'right',
+          width: 200,
+          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,
+        coinCode: '',
+        coinName: '',
+      },
+      datalist: [],
+      addUserdialog: false,
+      addUserDialogloading: false,
+      addUserform: this.$form.createForm(this),
+      labelCol: {
+        xs: { span: 24 },
+        sm: { span: 5 },
+      },
+      wrapperCol: {
+        xs: { span: 24 },
+        sm: { span: 18 },
+      },
+      currentDetails: null,
+      fields: ['conversionCurrency', 'currency', 'rata'],
+      hbList: [
+        {
+          value: 'USD',
+          label: 'US',
+        },
+        {
+          value: 'MXN',
+          label: 'MEX',
+        },
+      ],
+    }
+  },
+  created() {
+    this.getlist()
+  },
+  methods: {
+    setCurrency(row) {
+      this.currentDetails = row
+      this.addUserdialog = true
+      this.fields.forEach((v) => this.addUserform.getFieldDecorator(v))
+      this.addUserform.setFieldsValue(pick(row, this.fields))
+    },
+    getlist() {
+      this.loading = true
+      getRateInfo(this.queryParam).then((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()
+    },
+    OkaddUserdialog() {
+      const form = this.$refs.addUserform.form
+      form.validateFields((errors, values) => {
+        if (!errors) {
+          this.addUserDialogloading = true
+          if (!!this.currentDetails) values.id = this.currentDetails.id
+          // console.log(values)
+          setRateInfo(values).then((res) => {
+            if (res.status == 0) {
+              this.addUserdialog = false
+              this.$message.success({ content: '提交成功', duration: 2 })
+              form.resetFields()
+              this.getlist()
+            } else {
+              this.$message.error(res.msg)
+            }
+            this.addUserDialogloading = false
+          })
+        }
+      })
+    },
+    CanceladdUserdialog() {
+      this.addUserdialog = false
+      const form = this.$refs.addUserform.form
+      form.resetFields()
+    },
+  },
+}
+</script>
+<style scoped>
+.greens {
+  color: #52c41a;
+}
+
+.reds {
+  color: #f5222d;
+}
+</style>
diff --git a/src/views/product/shares.vue b/src/views/product/shares.vue
index d6934b9..10ccb13 100644
--- a/src/views/product/shares.vue
+++ b/src/views/product/shares.vue
@@ -16,8 +16,8 @@
             <a-col :md="12" :lg="6" :sm="24">
               <a-form-item label="股票市场">
                 <a-select v-model="queryParam.stockGid" placeholder="请选择股票市场">
-                  <a-select-option value="nse">nse</a-select-option>
-                  <a-select-option value="bse">bse</a-select-option>
+                  <a-select-option value="US">US</a-select-option>
+                  <a-select-option value="MEX">MEX</a-select-option>
                 </a-select>
               </a-form-item>
             </a-col>

--
Gitblit v1.9.3