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/commodity/parameters-add-or-update.vue |  331 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 331 insertions(+), 0 deletions(-)

diff --git a/src/views/modules/commodity/parameters-add-or-update.vue b/src/views/modules/commodity/parameters-add-or-update.vue
new file mode 100644
index 0000000..7a8a8cb
--- /dev/null
+++ b/src/views/modules/commodity/parameters-add-or-update.vue
@@ -0,0 +1,331 @@
+<template>
+  <el-dialog
+    :title="row ? '修改合约参数' : '新增合约参数'"
+    :close-on-click-modal="false"
+    :visible.sync="visible"
+    @close = 'handClose'
+    append-to-body
+    width="800px"
+    class="transport-dialog"
+  >
+    <el-form
+      :model="dataForm"
+      ref="dataForm"
+      @keyup.enter.native="dataFormSubmit()"
+      label-width="110px"
+      :rules="dataRule"
+    >
+      <el-form-item label="">
+        <div class="green">交割收益:交割收益计算方式(0~100百分制)</div>
+      </el-form-item>
+      <el-form-item label="交割合约代码">
+        <el-select
+          v-model="options.value"
+          placeholder="请选择"
+          :disabled = "row?true:false"
+          @change="changeVal()"
+        >
+          <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form
+        :inline="true"
+        :model="dataForm"
+        :rules="dataRule"
+        ref="dataForm"
+      >
+        <el-form-item label="时间" prop="timenum" label-width="110px">
+          <el-input
+            class="spamm"
+            v-model="dataForm.timenum"
+            placeholder="时间"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label-width="110px">
+          <el-select
+            class="spann selfloat"
+            v-model="optionsTwo.value"
+            placeholder="请选择"
+            @change="changeVal()"
+          >
+            <el-option
+              v-for="item in optionsTwo"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <el-form
+        :inline="true"
+        :model="dataForm"
+        :rules="dataRule"
+        ref="dataForm"
+      >
+        <el-form-item label="交割收益" prop="profitRatio" label-width="110px">
+          <el-input
+            class="spamm"
+            v-model="dataForm.profitRatio"
+            placeholder=""
+          ></el-input>
+          <el-input class="spannn" placeholder="~" disabled></el-input>
+        </el-form-item>
+        <el-form-item label="" prop="profitRatioMax" label-width="110px">
+          <el-input
+            class="spamm"
+            v-model="dataForm.profitRatioMax"
+            placeholder=""
+          ></el-input>
+          <el-input class="spannn" placeholder="%" disabled></el-input>
+        </el-form-item>
+      </el-form>
+      <el-form-item label="最低购买金额" prop="unitAmount" label-width="110px">
+        <el-input
+          class="spammm"
+          v-model="dataForm.unitAmount"
+          placeholder="最低购买金额"
+        ></el-input>
+      </el-form-item>
+      <el-form-item label="收益率基数" prop="profitRatioCardinality" label-width="110px">
+        <el-input
+          class="spammm"
+          v-model="dataForm.profitRatioCardinality"
+          type="number"
+          placeholder="收益率基数"
+        ></el-input>
+      </el-form-item>
+      <el-form-item label="手续费" prop="unitFee" label-width="110px">
+        <el-input
+          class="spammm"
+          v-model="dataForm.unitFee"
+          placeholder="手续费"
+        ></el-input>
+        <el-input class="spannn" placeholder="%" disabled></el-input>
+      </el-form-item>
+      <el-form-item label="资金密码" prop="loginSafeword" label-width="110px">
+        <el-input
+          class="spammm"
+          v-model="dataForm.loginSafeword"
+          placeholder="请输入登录人资金密码"
+          type="password"
+        ></el-input>
+      </el-form-item>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="visible = false">取消</el-button>
+      <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
+    </span>
+  </el-dialog>
+</template>
+<script>
+import { Debounce } from "@/utils/debounce";
+import { encrypt } from "@/utils/crypto";
+// import AddOrUpdate from './transcity-add-or-update'
+export default {
+  data() {
+    return {
+      // hasFreeCondition: 0,
+      visible: false,
+      second: 0,
+      mafterValue: 0,
+      options: [],
+      optionsTwo: [
+        {
+          label: "秒",
+          value: "second",
+        },
+        {
+          label: "分",
+          value: "minute",
+        },
+        {
+          label: "时",
+          value: "hour",
+        },
+        {
+          label: "天",
+          value: "day",
+        },
+      ],
+      row: "",
+      addOrUpdateVisible: false,
+      dataForm: {
+        loginSafeword: "",
+        profitRatio: "",
+        profitRatioMax: "",
+        timenum: "",
+        timeunit: "", //时间单位
+        uuid: "",
+        unitFee: "",
+        unitAmount: "",
+        profitRatioCardinality:'',
+      },
+      dataRule: {
+        loginSafeword: [
+          { required: true, message: "资金密码不能为空", trigger: "blur" },
+        ],
+        profitRatio: [
+          { required: true, message: "交割收益不能为空", trigger: "blur" },
+        ],
+        profitRatioMax: [
+          { required: true, message: "交割收益不能为空", trigger: "blur" },
+        ],
+        timenum: [{ required: true, message: "时间不能为空", trigger: "blur" }],
+        unitFee: [
+          { required: true, message: "手续费不能为空", trigger: "blur" },
+        ],
+        profitRatioCardinality: [
+          { required: true, message: "收益率基数不能为空", trigger: "blur" },
+        ],
+        unitAmount: [
+          { required: true, message: "最低购买金额不能为空", trigger: "blur" },
+        ],
+        remark: [
+          {
+            required: false,
+            pattern: /\s\S+|S+\s|\S/,
+            message: "输入格式有误",
+            trigger: "blur",
+          },
+        ],
+      },
+      page: {
+        total: 0, // 总页数
+        currentPage: 1, // 当前页数
+        pageSize: 10, // 每页显示多少条
+      },
+      editVisible: false,
+    };
+  },
+
+  components: {
+    // AddOrUpdate
+  },
+  computed: {},
+  methods: {
+    init(arr,row) {
+      this.row = row || "";
+      this.options = arr || []
+      console.log(row)
+      if (row) {
+        this.dataForm.profitRatio = row.profitRatio;
+        this.dataForm.profitRatioMax = row.profitRatioMax;
+        this.options.value = row.symbol;
+        this.dataForm.timenum = row.timenum;
+        this.optionsTwo.value = row.timeunit;
+        this.dataForm.unitAmount = row.unitAmount;
+        this.dataForm.unitFee = row.unitFee;
+        this.dataForm.unitMaxAmount = row.unitMaxAmount;
+        this.dataForm.uuid = row.uuid;
+        this.dataForm.profitRatioCardinality = row.profitRatioCardinality
+        console.log(this.dataForm.unitAmount)
+      } else {
+        this.options.value = this.options[0].value;
+         this.optionsTwo.value = this.optionsTwo[0].value;
+      }
+      // this.$nextTick(() => {
+      //   this.$refs.dataForm.resetFields();
+      // });
+      this.visible = true;
+    },
+    changeVal(val) {
+      this.$forceUpdate();
+    },
+    handClose(){
+        this.$data.dataForm=JSON.parse(JSON.stringify(this.$options.data().dataForm))
+     this.$nextTick(() => {
+            this.$refs['dataForm'].clearValidate() // 清除表单验证
+          })
+      },
+    // 表单提交
+    dataFormSubmit: Debounce(function () {
+      this.$refs["dataForm"].validate((valid) => {
+        if (valid) {
+          let n = this.$http.adornData({
+            //修改
+            loginSafeword: encrypt(this.dataForm.loginSafeword),
+            profitRatio: this.dataForm.profitRatio,
+            profitRatioMax: this.dataForm.profitRatioMax,
+            symbol: this.options.value,
+            timenum: this.dataForm.timenum,
+            timeunit: this.optionsTwo.value,
+            unitAmount: this.dataForm.unitAmount,
+            unitFee: this.dataForm.unitFee,
+            unitMaxAmount: this.dataForm.unitMaxAmount,
+            uuid: this.dataForm.uuid,
+            profitRatioCardinality:this.dataForm.profitRatioCardinality
+          });
+          let m = this.$http.adornData({
+            //新增
+            loginSafeword: encrypt(this.dataForm.loginSafeword),
+            profitRatio: this.dataForm.profitRatio,
+            profitRatioMax: this.dataForm.profitRatioMax,
+            symbol: this.options.value,
+            timenum: this.dataForm.timenum,
+            timeunit: this.optionsTwo.value,
+            unitAmount: this.dataForm.unitAmount,
+            unitFee: this.dataForm.unitFee,
+            unitMaxAmount: this.dataForm.unitMaxAmount,
+            profitRatioCardinality:this.dataForm.profitRatioCardinality
+          });
+          let data = this.row ? n : m;
+          this.$http({
+            url: this.$http.adornUrl(
+              `/normal/adminContractManageAction!/addFutures.action`
+            ),
+            method: "post",
+            data: data,
+          }).then(({ data }) => {
+            if (data.code == 0) {
+              this.$message({
+                message: "操作成功",
+                type: "success",
+                duration: 1000,
+                onClose: () => {
+                  this.visible = false;
+                  this.$emit("refreshDataList", this.page);
+                },
+              });
+            } else {
+              this.$message({
+                message: data.msg,
+                type: "error",
+                duration: 1000,
+                onClose: () => {
+                  
+                },
+              });
+            }
+          });
+        }
+      });
+    }),
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.transport-dialog .table-con .el-form-item {
+  margin-top: 16px;
+}
+.spamm {
+  width: 200px;
+}
+.spammm {
+  width: 500px;
+}
+.spann {
+  width: 80px;
+}
+.spannn {
+  width: 50px;
+}
+</style>

--
Gitblit v1.9.3