From 7bbf9b23bcd3f2bbf54aa62476cd2c4e7ea88aaa Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Tue, 21 Oct 2025 15:08:25 +0800
Subject: [PATCH] 1

---
 src/views/modules/cryptos-spots/cryptos-spots-transport.vue |  684 +++++++++++++++++++++++++++-----------------------------
 1 files changed, 330 insertions(+), 354 deletions(-)

diff --git a/src/views/modules/cryptos-spots/cryptos-spots-transport.vue b/src/views/modules/cryptos-spots/cryptos-spots-transport.vue
index 469f6e2..71b1d0e 100644
--- a/src/views/modules/cryptos-spots/cryptos-spots-transport.vue
+++ b/src/views/modules/cryptos-spots/cryptos-spots-transport.vue
@@ -1,365 +1,341 @@
 <template>
-  <div class="mod-cryptos-spots-transport">
-    <el-tabs v-model="activeName" @tab-click="handleClick">
-      <el-tab-pane label="当前单" name="1"></el-tab-pane>
-      <el-tab-pane label="历史单" name="2"></el-tab-pane>
-    </el-tabs>
-    <avue-crud
-      ref="crud"
-      :page.sync="page"
-      :data="dataList"
-      :option="tableOption"
-      :cell-class-name="addClasscolor"
-      @search-change="searchChange"
-      @selection-change="selectionChange"
-      @refresh-change="refreshChange"
-      @on-load="getDataList"
-    >
-      <template slot-scope="scope" slot="userNamesolt">
-        <span @click="searchName(scope.row.userName)" class="seachButton">{{
+	<div class="mod-cryptos-spots-transport">
+		<el-tabs v-model="activeName" @tab-click="handleClick">
+			<el-tab-pane label="当前单" name="1"></el-tab-pane>
+			<el-tab-pane label="历史单" name="2"></el-tab-pane>
+		</el-tabs>
+		<avue-crud ref="crud" :page.sync="page" :data="dataList" :option="tableOption" :cell-class-name="addClasscolor"
+			@search-change="searchChange" @selection-change="selectionChange" @refresh-change="refreshChange"
+			@on-load="getDataList">
+			<template slot-scope="scope" slot="userNamesolt">
+				<span @click="searchName(scope.row.userName)" class="seachButton">{{
           scope.row.userName
         }}</span>
-      </template>
-      <!-- (剩余/委托金额) -->
-      <template slot-scope="scope" slot="vove">
-        <span class="green">{{ scope.row.volumeUnitAmount }}</span
-        >/<span>{{ scope.row.volumeOpenUnitAmount }}</span>
-      </template>
-      <!-- (剩余/委托保证金) -->
-      <template slot-scope="scope" slot="depo">
-        <span class="green">{{ scope.row.deposit }}</span
-        >/<span>{{ scope.row.depositOpen }}</span>
-      </template>
-      <template slot-scope="scope" slot="closTime">
-        <span v-if="scope.row.closeTime">{{
+			</template>
+			<!-- (剩余/委托金额) -->
+			<template slot-scope="scope" slot="vove">
+				<span
+					class="green">{{ scope.row.volumeUnitAmount }}</span>/<span>{{ scope.row.volumeOpenUnitAmount }}</span>
+			</template>
+			<!-- (剩余/委托保证金) -->
+			<template slot-scope="scope" slot="depo">
+				<span class="green">{{ scope.row.deposit }}</span>/<span>{{ scope.row.depositOpen }}</span>
+			</template>
+			<template slot-scope="scope" slot="closTime">
+				<span v-if="scope.row.closeTime">{{
           new Date(scope.row.closeTime * 1000).toLocaleString()
         }}</span>
-      </template>
-      <template slot="menuLeft">
-        <div class="cheBoxMain" v-if="activeName == 1">
-          <div style="margin-bottom: 10px">调整行情</div>
-          <div class="chekClect">
-            <el-select
-              v-model="dataForm.symbol"
-              clearable
-              placeholder="请选择币种"
-            >
-              <el-option
-                v-for="item in option"
-                :key="item.symbol"
-                :label="item.name"
-                :value="item.symbol"
-              >
-              </el-option>
-            </el-select>
-          </div>
-          <div class="chekClect" style="margin-top: 3px">
-            <el-button
-              type="primary"
-              icon="el-icon-edit"
-              size="small"
-              @click="addOrUpdateHandle(dataForm.symbol)"
-              >调整</el-button
-            >
-          </div>
-        </div>
-      </template>
-      <template slot="menuLeft">
-        <div class="main">
-          <el-tabs
-            v-if="activeName == '2'"
-            v-model="activeName2"
-            @tab-click="handleClick2"
-          >
-            <el-tab-pane label="全部" name="1"></el-tab-pane>
-            <el-tab-pane label="持仓" name="2"></el-tab-pane>
-            <el-tab-pane label="已平仓" name="3"></el-tab-pane>
-          </el-tabs>
-        </div>
-      </template>
-      <template
-        slot-scope="scope"
-        slot="menu"
-        v-if="scope.row.state == 'submitted'"
-      >
-        <el-button
-          type="primary"
-          icon="el-icon-edit"
-          size="small"
-          v-if="isAuth('sys:user:delete')"
-          @click.stop="deleteHandle(scope.row.orderNo)"
-          >平仓</el-button
-        >
-      </template>
-    </avue-crud>
-    <add-or-update
-      v-if="addOrUpdateVisible"
-      ref="addOrUpdate"
-      @refreshDataList="refreshChange"
-    ></add-or-update>
-    <el-dialog
-      title="完整用户名(完整钱包地址)"
-      :close-on-click-modal="false"
-      :visible.sync="userNamevisible"
-    >
-      <el-form :model="dataForm" ref="dataForm">
-        <el-form-item label="" prop="">
-          <div style="font-size: 20px">
-            <span>{{ username }}</span
-            ><a
-              class="seachButton"
-              target="_blank"
-              :href="'https://etherscan.io/address/' + username"
-              >在Etherscan上查看</a
-            >
-          </div>
-        </el-form-item>
-      </el-form>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="userNamevisible = false">取消</el-button>
-        <el-button type="primary" @click="userNamevisible = false"
-          >确定</el-button
-        >
-      </span>
-    </el-dialog>
-  </div>
+			</template>
+			<template slot="menuLeft">
+				<div class="cheBoxMain" v-if="activeName == 1">
+					<div style="margin-bottom: 10px">调整行情</div>
+					<div class="chekClect">
+						<el-select v-model="dataForm.symbol" clearable placeholder="请选择币种">
+							<el-option v-for="item in option" :key="item.symbol" :label="item.name"
+								:value="item.symbol">
+							</el-option>
+						</el-select>
+					</div>
+					<div class="chekClect" style="margin-top: 3px">
+						<el-button type="primary" icon="el-icon-edit" size="small"
+							@click="addOrUpdateHandle(dataForm.symbol)">调整</el-button>
+					</div>
+				</div>
+			</template>
+			<template slot="menuLeft">
+				<div class="main">
+					<el-tabs v-if="activeName == '2'" v-model="activeName2" @tab-click="handleClick2">
+						<el-tab-pane label="全部" name="1"></el-tab-pane>
+						<el-tab-pane label="持仓" name="2"></el-tab-pane>
+						<el-tab-pane label="已平仓" name="3"></el-tab-pane>
+					</el-tabs>
+				</div>
+			</template>
+			<template slot-scope="scope" slot="menu" v-if="scope.row.state == 'submitted'">
+				<el-button type="primary" icon="el-icon-edit" size="small" v-if="isAuth('sys:user:delete')"
+					@click.stop="deleteHandle(scope.row.orderNo)">平仓</el-button>
+				<el-button type="primary" icon="el-icon-edit" size="small"
+					@click.stop="UpdateHandle(scope.row)">盈亏控制</el-button>
+			</template>
+		</avue-crud>
+		<!-- 弹窗,  修改 -->
+		<add-or-updates v-if="UpdateVisibles" ref="Updates" @refreshDataList="getDataList"></add-or-updates>
+
+		<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="refreshChange"></add-or-update>
+		<el-dialog title="完整用户名(完整钱包地址)" :close-on-click-modal="false" :visible.sync="userNamevisible">
+			<el-form :model="dataForm" ref="dataForm">
+				<el-form-item label="" prop="">
+					<div style="font-size: 20px">
+						<span>{{ username }}</span><a class="seachButton" target="_blank"
+							:href="'https://etherscan.io/address/' + username">在Etherscan上查看</a>
+					</div>
+				</el-form-item>
+			</el-form>
+			<span slot="footer" class="dialog-footer">
+				<el-button @click="userNamevisible = false">取消</el-button>
+				<el-button type="primary" @click="userNamevisible = false">确定</el-button>
+			</span>
+		</el-dialog>
+	</div>
 </template>
 
 <script>
-import { tableOption } from "@/crud/shop/transportm";
-import AddOrUpdate from "./transport-add-or-update";
-export default {
-  data() {
-    return {
-      dateRange: [],
-      option: [
-        {
-          symbol: 1,
-          name: "DOGE/USTD",
-        },
-      ],
-      dataForm: {
-        transName: "",
-      },
-      state: "submitted",
-      activeName: "1", //选项卡
-      activeName2: "1",
-      dataList: [],
-      dataListLoading: false,
-      dataListSelections: [],
-      username: "",
-      userNamevisible: false,
-      addOrUpdateVisible: false,
-      page: {
-        total: 0, // 总页数
-        currentPage: 1, // 当前页数
-        pageSize: 10, // 每页显示多少条
-      },
-      searchParams: {}, // 搜索条件
-      tableOption: tableOption,
-    };
-  },
-  components: {
-    AddOrUpdate,
-  },
-  created() {
-    this.getAction();
-  },
-  mounted() {},
-  computed: {},
-  methods: {
-    addClasscolor({ column, row }) {
-      //表单样式
-      if (
-        (column.property === "direction" && row.direction == "buy") ||
-        (column.property === "profitLoss" && row.profitLoss * 1 > 0) ||
-        (column.property === "roleName" && row.roleName == "MEMBER") ||
-        (column.property === "volume" && row.volume * 1 >= 0) ||
-        (column.property === "vnvu" && row.vnvu) ||
-        (column.property === "dd" && row.dd)
-      ) {
-        return "green";
-      } else if (
-        (column.property === "direction" && row.direction == "sell") ||
-        (column.property === "profitLoss" && row.profitLoss * 1 < 0)
-      ) {
-        return "red";
-      } else if (column.property === "roleName" && row.roleName == "GUEST") {
-        return "yellow";
-      }
-    },
-    // 获取数据列表
-    getDataList(page, done) {
-      page = page === undefined ? this.page : page;
-      this.dataListLoading = true;
-      this.$http({
-        url: this.$http.adornUrl(
-          "/normal/adminContractOrderAction!/list.action"
-        ),
-        method: "get",
-        params: this.$http.adornParams(
-          Object.assign(
-            {
-              type: "cryptos", //forex->外汇,commodities->大宗商品,指数/ETF->indices, A-stocks->A股, HK-stocks->港股.US-stocks->美股,cryptos->虚拟货币
-              current: page == null ? this.page.currentPage : page.currentPage,
-              size: page == null ? this.page.pageSize : page.pageSize,
-              userName: this.dataForm.orderNumber2,
-              orderNo: this.dataForm.orderNumber,
-              roleName: this.dataForm.value,
-              state: this.state,
-              // startTime: this.dateRange === null ? null : this.dateRange[0], // 开始时间
-              // endTime: this.dateRange === null ? null : this.dateRange[1], // 结束时间
-            },
-            this.searchParams
-          ),
-          false
-        ),
-      }).then(({ data }) => {
-        this.dataList = data.data.records;
-        this.page.total = data.data.total;
-        this.dataListLoading = false;
-        if (done) {
-          done();
-        }
-      });
-    },
-    searchName(name) {
-      this.username = name;
-      this.userNamevisible = true;
-    },
-    // 清除数据
-    clearDatas() {
-      this.dataForm = {};
-      this.dateRange = [];
-    },
-    // 每页数
-    sizeChangeHandle(val) {
-      this.page.pageSize = val;
-      this.page.currentPage = 1;
-      this.getDataList(this.page);
-    },
-    // 当前页
-    currentChangeHandle(val) {
-      this.page.currentPage = val;
-      this.getDataList(this.page);
-    },
-    // 选项卡
-    handleClick(tab, event) {
-      //console.log(this.activeName)
-      if (this.activeName == 1) {
-        this.state = "submitted";
-      } else {
-        this.state = "created";
-      }
-      this.getDataList();
-    },
-    handleClick2(tab, event) {
-      //console.log(this.activeName2)
-      if (this.activeName2 == 1) {
-        this.state = "";
-      } else if (this.activeName2 == 2) {
-        this.state = "submitted";
-      } else {
-        this.state = "created";
-      }
-      this.getDataList();
-    },
-    // 新增 / 修改
-    addOrUpdateHandle(id) {
-      if (this.dataForm.symbol) {
-        this.addOrUpdateVisible = true;
-        this.$nextTick(() => {
-          this.$refs.addOrUpdate.init(id);
-        });
-      } else {
-        this.$message({
-          message: "请先选择币种",
-          type: "error",
-        });
-      }
-    },
-    // 平仓
-    deleteHandle(orderNo) {
-      this.$confirm("您确定要进行平仓操作吗", "是否确认平仓", {
-        //系统管理用户是否已绑定
-        distinguishCancelAndClose: true,
-        confirmButtonText: "取消",
-        cancelButtonText: "平仓",
-        type: "success",
-      })
-        .then(() => {})
-        .catch((action) => {
-          if (action === "cancel") {
-            this.$http({
-              url: this.$http.adornUrl(
-                "/normal/adminContractOrderAction!/close.action"
-              ),
-              method: "get",
-              params: this.$http.adornParams({
-                orderNo: orderNo,
-              }),
-            }).then(({ data }) => {
-              this.$message({
-                message: "平仓成功",
-                type: "success",
-                duration: 1500,
-                onClose: () => {
-                  this.visible = false;
-                  this.getDataList();
-                },
-              });
-            });
-          } else {
-          }
-        });
-    },
-    //行情数据
-    getAction() {
-      this.$http({
-        url: this.$http.adornUrl("/normal/adminItemAction!/list"),
-        method: "get",
-        params: this.$http.adornParams({
-          type: "cryptos", //forex->外汇,commodities->大宗商品,指数/ETF->indices, A-stocks->A股, HK-stocks->港股.US-stocks->美股,cryptos->虚拟货币
-        }),
-      }).then(({ data }) => {
-        if (data.data.records) {
-          this.option = data.data.records.map((item, index) => {
-            return Object.assign({}, { symbol: item.symbol, name: item.name });
-          });
-        }
-      });
-    },
-    // 条件查询
-    searchChange(params, done) {
-      this.page.currentPage = 1; // 重置当前页为第一页
-      this.searchParams = params;
-      this.getDataList(this.page, done);
-    },
-    // 刷新回调用
-    refreshChange() {
-      this.page = this.$refs.crud.$refs.tablePage.defaultPage;
-      this.getDataList(this.page);
-      this.dataListSelections = [];
-      this.$refs.crud.selectClear();
-    },
-    // 多选变化
-    selectionChange(val) {
-      console.log("val: ", val);
-      this.dataListSelections = val;
-    },
-  },
-};
+	import {
+		tableOption
+	} from "@/crud/shop/transportm";
+	import AddOrUpdate from "./transport-add-or-update";
+	import Updates from "./finance-add-or-updates";
+	export default {
+		data() {
+			return {
+				dateRange: [],
+				option: [{
+					symbol: 1,
+					name: "DOGE/USTD",
+				}, ],
+				dataForm: {
+					transName: "",
+				},
+				state: "submitted",
+				activeName: "1", //选项卡
+				activeName2: "1",
+				dataList: [],
+				dataListLoading: false,
+				dataListSelections: [],
+				username: "",
+				userNamevisible: false,
+				addOrUpdateVisible: false,
+				UpdateVisibles: false,
+				page: {
+					total: 0, // 总页数
+					currentPage: 1, // 当前页数
+					pageSize: 10, // 每页显示多少条
+				},
+				searchParams: {}, // 搜索条件
+				tableOption: tableOption,
+			};
+		},
+		components: {
+			AddOrUpdate,
+			'add-or-updates': Updates
+		},
+		created() {
+			this.getAction();
+		},
+		mounted() {},
+		computed: {},
+		methods: {
+			addClasscolor({
+				column,
+				row
+			}) {
+				//表单样式
+				if (
+					(column.property === "direction" && row.direction == "buy") ||
+					(column.property === "profitLoss" && row.profitLoss * 1 > 0) ||
+					(column.property === "roleName" && row.roleName == "MEMBER") ||
+					(column.property === "volume" && row.volume * 1 >= 0) ||
+					(column.property === "vnvu" && row.vnvu) ||
+					(column.property === "dd" && row.dd)
+				) {
+					return "green";
+				} else if (
+					(column.property === "direction" && row.direction == "sell") ||
+					(column.property === "profitLoss" && row.profitLoss * 1 < 0)
+				) {
+					return "red";
+				} else if (column.property === "roleName" && row.roleName == "GUEST") {
+					return "yellow";
+				}
+			},
+
+			// 获取数据列表
+			getDataList(page, done) {
+				page = page === undefined ? this.page : page;
+				this.dataListLoading = true;
+				this.$http({
+					url: this.$http.adornUrl(
+						"/normal/adminContractOrderAction!/list.action"
+					),
+					method: "get",
+					params: this.$http.adornParams(
+						Object.assign({
+								type: "cryptos", //forex->外汇,commodities->大宗商品,指数/ETF->indices, A-stocks->A股, HK-stocks->港股.US-stocks->美股,cryptos->虚拟货币
+								current: page == null ? this.page.currentPage : page.currentPage,
+								size: page == null ? this.page.pageSize : page.pageSize,
+								userName: this.dataForm.orderNumber2,
+								orderNo: this.dataForm.orderNumber,
+								roleName: this.dataForm.value,
+								state: this.state,
+								// startTime: this.dateRange === null ? null : this.dateRange[0], // 开始时间
+								// endTime: this.dateRange === null ? null : this.dateRange[1], // 结束时间
+							},
+							this.searchParams
+						),
+						false
+					),
+				}).then(({
+					data
+				}) => {
+					this.dataList = data.data.records;
+					this.page.total = data.data.total;
+					this.dataListLoading = false;
+					if (done) {
+						done();
+					}
+				});
+			},
+			searchName(name) {
+				this.username = name;
+				this.userNamevisible = true;
+			},
+			// 清除数据
+			clearDatas() {
+				this.dataForm = {};
+				this.dateRange = [];
+			},
+			// 每页数
+			sizeChangeHandle(val) {
+				this.page.pageSize = val;
+				this.page.currentPage = 1;
+				this.getDataList(this.page);
+			},
+			// 当前页
+			currentChangeHandle(val) {
+				this.page.currentPage = val;
+				this.getDataList(this.page);
+			},
+			// 选项卡
+			handleClick(tab, event) {
+				//console.log(this.activeName)
+				if (this.activeName == 1) {
+					this.state = "submitted";
+				} else {
+					this.state = "created";
+				}
+				this.getDataList();
+			},
+			handleClick2(tab, event) {
+				//console.log(this.activeName2)
+				if (this.activeName2 == 1) {
+					this.state = "";
+				} else if (this.activeName2 == 2) {
+					this.state = "submitted";
+				} else {
+					this.state = "created";
+				}
+				this.getDataList();
+			},
+			// 修改
+			UpdateHandle(id) {
+				this.UpdateVisibles = true;
+				this.$nextTick(() => {
+					this.$refs.Updates.init(id);
+				});
+			},
+			// 新增 / 修改
+			addOrUpdateHandle(id) {
+				if (this.dataForm.symbol) {
+					this.addOrUpdateVisible = true;
+					this.$nextTick(() => {
+						this.$refs.addOrUpdate.init(id);
+					});
+				} else {
+					this.$message({
+						message: "请先选择币种",
+						type: "error",
+					});
+				}
+			},
+			// 平仓
+			deleteHandle(orderNo) {
+				this.$confirm("您确定要进行平仓操作吗", "是否确认平仓", {
+						//系统管理用户是否已绑定
+						distinguishCancelAndClose: true,
+						confirmButtonText: "取消",
+						cancelButtonText: "平仓",
+						type: "success",
+					})
+					.then(() => {})
+					.catch((action) => {
+						if (action === "cancel") {
+							this.$http({
+								url: this.$http.adornUrl(
+									"/normal/adminContractOrderAction!/close.action"
+								),
+								method: "get",
+								params: this.$http.adornParams({
+									orderNo: orderNo,
+								}),
+							}).then(({
+								data
+							}) => {
+								this.$message({
+									message: "平仓成功",
+									type: "success",
+									duration: 1500,
+									onClose: () => {
+										this.visible = false;
+										this.getDataList();
+									},
+								});
+							});
+						} else {}
+					});
+			},
+			//行情数据
+			getAction() {
+				this.$http({
+					url: this.$http.adornUrl("/normal/adminItemAction!/list"),
+					method: "get",
+					params: this.$http.adornParams({
+						type: "cryptos", //forex->外汇,commodities->大宗商品,指数/ETF->indices, A-stocks->A股, HK-stocks->港股.US-stocks->美股,cryptos->虚拟货币
+					}),
+				}).then(({
+					data
+				}) => {
+					if (data.data.records) {
+						this.option = data.data.records.map((item, index) => {
+							return Object.assign({}, {
+								symbol: item.symbol,
+								name: item.name
+							});
+						});
+					}
+				});
+			},
+			// 条件查询
+			searchChange(params, done) {
+				this.page.currentPage = 1; // 重置当前页为第一页
+				this.searchParams = params;
+				this.getDataList(this.page, done);
+			},
+			// 刷新回调用
+			refreshChange() {
+				this.page = this.$refs.crud.$refs.tablePage.defaultPage;
+				this.getDataList(this.page);
+				this.dataListSelections = [];
+				this.$refs.crud.selectClear();
+			},
+			// 多选变化
+			selectionChange(val) {
+				console.log("val: ", val);
+				this.dataListSelections = val;
+			},
+		},
+	};
 </script>
 <style></style>
 <style lang="scss" scoped>
-.mod-transport {
-  .cheBoxMain {
-    overflow: hidden;
-    padding: 50px 20px;
-  }
-  .chekClect {
-    float: left;
-    margin-right: 20px;
-  }
-}
-</style>
+	.mod-transport {
+		.cheBoxMain {
+			overflow: hidden;
+			padding: 50px 20px;
+		}
+
+		.chekClect {
+			float: left;
+			margin-right: 20px;
+		}
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3