新版交易所前段管理后台
1
PC-20250623MANY\Administrator
2025-10-21 7bbf9b23bcd3f2bbf54aa62476cd2c4e7ea88aaa
src/views/modules/ico/components/listAddOrUpdate.vue
@@ -1,18 +1,7 @@
<template>
  <el-dialog
    :title="title"
    :visible.sync="visible"
    width="800px"
    :append-to-body="true"
    @close="handClose"
  >
    <el-form
      :model="dataForm"
      :rules="dataRule"
      ref="dataForm"
      @keyup.enter.native="dataFormSubmit()"
      label-width="250px"
    >
  <el-dialog :title="title" :visible.sync="visible" width="800px" :append-to-body="true" @close="handClose">
    <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()"
      label-width="250px">
      <el-form-item label="币种名称" prop="name">
        <el-input type="string" v-model="dataForm.name"></el-input>
      </el-form-item>
@@ -86,62 +75,50 @@
      </el-form-item>
      <el-form-item label="申购开始时间" prop="startDate">
        <el-date-picker
          v-model="dataForm.startDate"
          type="datetime"
          placeholder="选择日期"
          format="yyyy-MM-dd HH:mm:ss"
          value-format="yyyy-MM-dd HH:mm:ss"
        >
        <el-date-picker v-model="dataForm.startDate" type="datetime" placeholder="选择日期" format="yyyy-MM-dd HH:mm:ss"
          value-format="yyyy-MM-dd HH:mm:ss">
        </el-date-picker>
      </el-form-item>
      <el-form-item label="申购结束时间" prop="endDate">
        <el-date-picker
          v-model="dataForm.endDate"
          type="datetime"
          placeholder="选择日期"
          format="yyyy-MM-dd HH:mm:ss"
          value-format="yyyy-MM-dd HH:mm:ss"
        >
        <el-date-picker v-model="dataForm.endDate" type="datetime" placeholder="选择日期" format="yyyy-MM-dd HH:mm:ss"
          value-format="yyyy-MM-dd HH:mm:ss">
        </el-date-picker>
      </el-form-item>
      <el-form-item label="上市开始时间" prop="marketDate">
        <el-date-picker
          v-model="dataForm.marketDate"
          type="datetime"
          placeholder="选择日期"
          format="yyyy-MM-dd HH:mm:ss"
          value-format="yyyy-MM-dd HH:mm:ss"
        >
        <el-date-picker v-model="dataForm.marketDate" type="datetime" placeholder="选择日期" format="yyyy-MM-dd HH:mm:ss"
          value-format="yyyy-MM-dd HH:mm:ss">
        </el-date-picker>
      </el-form-item>
      <el-form-item label="货币图片地址" prop="imgUrl">
        <el-input type="string" v-model="dataForm.imgUrl"></el-input>
        <!-- <el-input type="string" v-model="dataForm.imgUrl"></el-input> -->
        <el-upload class="avatar-uploader" :action="$http.adornUrl('/api/uploadFile')"
          :headers="{ Authorization: $cookie.get('Authorization') }" :show-file-list="false"
          :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload"
          :data="{ moduleName: 'icon', fileName: dataForm.symbolData }">
          <img v-if="dataForm.imgUrl" :src="dataForm.imgUrl" class="avatar" />
          <i v-else class="el-icon-plus avatar-uploader-icon"></i>
        </el-upload>
      </el-form-item>
      <el-form-item label="是否开放合约交易" prop="isContractTrading">
        <el-select v-model="dataForm.isContractTrading" placeholder="请选择">
          <el-option
            v-for="i in options"
            :key="i.value"
            :label="i.label"
            :value="i.value"
          ></el-option>
          <el-option v-for="i in options" :key="i.value" :label="i.label" :value="i.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="是否预支付" prop="isPayDown">
        <el-select v-model="dataForm.isPayDown" placeholder="请选择">
          <el-option
            v-for="i in options"
            :key="i.value"
            :label="i.label"
            :value="i.value"
          ></el-option>
          <el-option v-for="i in options" :key="i.value" :label="i.label" :value="i.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="进度" prop="progressRate">
        <el-input type="number" v-model="dataForm.progressRate">
          <el-button slot="append" >%</el-button>
        </el-input>
      </el-form-item>
    </el-form>
    <span slot="footer" class="dialog-footer">
@@ -152,6 +129,7 @@
</template>
<script>
import { Debounce } from "@/utils/debounce";
import MulPicUpload from '@/components/mul-pic-upload'
import { encrypt } from "@/utils/crypto";
export default {
  data() {
@@ -184,6 +162,7 @@
        imgUrl: "", //货币图片地址
        isContractTrading: "", //是否开放合约交易
        isPayDown: "", //是否预支付
        progressRate: "", //进度
      },
      options: [
        {
@@ -224,12 +203,16 @@
        endDate: [{ required: true, message: "请输入", trigger: "blur" }],
        marketDate: [{ required: true, message: "请输入", trigger: "blur" }],
        imgUrl: [{ required: true, message: "请输入", trigger: "blur" }],
        progressRate: [{ required: true, message: "请输入", trigger: "blur" }],
        isContractTrading: [
          { required: true, message: "请选择", trigger: "blur" },
        ],
        isPayDown: [{ required: true, message: "请选择", trigger: "blur" }],
      },
    };
  },
  components: {
    MulPicUpload,
  },
  computed: {
    mainTabs: {
@@ -287,6 +270,24 @@
        this.$refs["dataForm"].clearValidate(); // 清除表单验证
      });
    },
    handleAvatarSuccess(res, file) {
      console.log("handleAvatarSuccess = " + JSON.stringify(res));
      this.dataForm.imgUrl = URL.createObjectURL(file.raw); //显示地址
      if (res.code == 0) {
        this.dataForm.imgUrl = res.data.httpUrl; //接口传递
        console.log(this.dataForm.imgUrl);
      } else {
        this.$message.error(res.msg);
      }
    },
    beforeAvatarUpload(file) {
      const isLt2M = file.size / 1024 / 1024 < 10;
      if (!isLt2M) {
        this.$message.error("上传图片大小不能超过 10MB!");
      }
      return isLt2M;
    },
    // 表单提交
    dataFormSubmit: Debounce(function () {
      console.log(this.dataForm.safePassword);