123
dcc
2024-06-28 25b2ba1cf86bc3439e7ad2acf2cd4a9ea7e4b0ed
src/page/myAd/editAd.vue
@@ -54,8 +54,10 @@
                <span class="mr-20">$</span>
                <span>{{ info.symbol_value }}</span>
              </div>
              <img @click="showKeyboard = true; cachePrice = ''" class="w-39 h-39 ml-27"
             <span @click="showKeyboard = true; cachePrice = ''">
              <img  class="w-39 h-39 ml-27"
                src="@/assets/image/otc/buy/price_icon.png" alt="">
             </span>
            </div>
            <div class=" font-700 font-48">
              <span class="mr-20">$</span>
@@ -209,77 +211,102 @@
<script>
import payPwdInput from "@/components/payPwdInput";
import OrderNav from "@/components/order-nav/OrderNav";
import { Step, Steps, DropdownMenu, DropdownItem, Icon, Field, Checkbox, CheckboxGroup, Popup, RadioGroup, Radio, Cell, CellGroup, NumberKeyboard, Toast } from 'vant';
import { c2cGetCurrencyList, c2cGetPayCurrencyList, countAdParams, getCtcAdvertToken, getTimeList, editAd, placeAd } from "@/API/otc";
import {
  Step,
  Steps,
  DropdownMenu,
  DropdownItem,
  Icon,
  Field,
  Checkbox,
  CheckboxGroup,
  Popup,
  RadioGroup,
  Radio,
  Cell,
  CellGroup,
  NumberKeyboard,
  Toast,
} from "vant";
import {
  c2cGetCurrencyList,
  c2cGetPayCurrencyList,
  countAdParams,
  getCtcAdvertToken,
  getTimeList,
  editAd,
  placeAd,
} from "@/API/otc";
export default {
  name: "editAd",
  created() {
    console.log(this.$route.query)
    this.pageType = this.$route.query.type
    if (this.pageType === '1') {
      this.info = { ...this.info, ...this.$route.query }
    console.log(this.$route.query);
    this.pageType = this.$route.query.type;
    if (this.pageType === "1") {
      this.info = { ...this.info, ...this.$route.query };
    }
    if (this.info.pay_type) { // choose(value, key)
      let a = this.info.pay_type.split(',')
      let b = this.info.pay_type_name.split(',')
    if (this.info.pay_type) {
      // choose(value, key)
      let a = this.info.pay_type.split(",");
      let b = this.info.pay_type_name.split(",");
      for (let i = 0; i < a.length; i++) {
        this.choose(b[i], a[i])
        this.choose(b[i], a[i]);
      }
    }
    getTimeList().then(res => {
    getTimeList().then((res) => {
      //console.log('支付时效列表', res)
      this.timeList = res
      this.timeList = res;
      if (!this.info.expire_time) {
        this.info.expire_time = Object.keys(res)[0]
        this.info.expire_time = Object.keys(res)[0];
      }
    })
    });
    Promise.all([this.getCurrencyList(), this.getPayCurrencyList()]).then(res => {
      //console.log('Promise.all', res)
      this.getCountAdParams()
      this.getSessionToken()
    })
    Promise.all([this.getCurrencyList(), this.getPayCurrencyList()]).then(
      (res) => {
        //console.log('Promise.all', res)
        this.getCountAdParams();
        this.getSessionToken();
      }
    );
  },
  data() {
    return {
      showInput: false,
      timeList: null, // 支付时效列表
      adParams: {}, // 计算过的广告相关参数 如市场最高价等
      cachePrice: '', // 数字键盘缓存价格
      cachePrice: "", // 数字键盘缓存价格
      showKeyboard: false, // 数字键盘
      info: {
        id: '', // 修改的时候
        safeword: '', // 资金密码
        payment_method1: '',
        payment_method2: '',
        payment_method3: '',
        direction: 'buy', // 买卖方式:buy买/sell卖
        currency: '', // 支付币种
        symbol: '', // 上架币种
        coin_amount: '', // 交易数量
        symbol_value: '', // 币种单价
        investment_min: '', // 订单最低限额
        investment_max: '', // 订单最高限额
        id: "", // 修改的时候
        safeword: "", // 资金密码
        payment_method1: "",
        payment_method2: "",
        payment_method3: "",
        direction: "buy", // 买卖方式:buy买/sell卖
        currency: "", // 支付币种
        symbol: "", // 上架币种
        coin_amount: "", // 交易数量
        symbol_value: "", // 币种单价
        investment_min: "", // 订单最低限额
        investment_max: "", // 订单最高限额
        on_sale: 0, // 是否上架(立即上線) 0 下架 1上架
        closed: 0, // 是否关闭 0 否 1 是
        expire_time: '', // 支付时效(分钟)
        transaction_terms: '', // 交易条款
        order_msg: '', // 订单自动消息
        remark: '', // 备注
        expire_time: "", // 支付时效(分钟)
        transaction_terms: "", // 交易条款
        order_msg: "", // 订单自动消息
        remark: "", // 备注
      },
      pageType: '0', // 0 发布广告 1 编辑广告
      pageType: "0", // 0 发布广告 1 编辑广告
      show: false,
      active: 0,
      buy: 1,
      type: "1",
      num: '1',
      value1: 0,  // 上架币种
      num: "1",
      value1: 0, // 上架币种
      value2: 0, // 法币
      price: '1',
      price: "1",
      showT: false,
      showQ: false,
      showP: false,
@@ -288,15 +315,17 @@
      checking: false,
      select: false,
      selected: false,
      message: '',
      radio: '1',
      radio2: '1',
      activeIcon: require('@/assets/image/成功.png'),
      option1: [ // 上架币种
      message: "",
      radio: "1",
      radio2: "1",
      activeIcon: require("@/assets/image/成功.png"),
      option1: [
        // 上架币种
      ],
      option2: [ // 法币
      option2: [
        // 法币
      ],
    }
    };
  },
  components: {
    payPwdInput,
@@ -318,170 +347,208 @@
  },
  computed: {
    title1() {
      return this.pageType === '0' ? this.$t('发布广告') : this.$t('编辑广告')
      return this.pageType === "0" ? this.$t("发布广告") : this.$t("编辑广告");
    },
    pay_type_name() {
      let a = this.info.payment_method1 ? this.method_config_map[this.info.payment_method1] : ''
      let b = this.info.payment_method2 ? this.method_config_map[this.info.payment_method2] : ''
      let c = this.info.payment_method3 ? this.method_config_map[this.info.payment_method3] : ''
      console.log(a, b, c)
      let arr = []
      let a = this.info.payment_method1
        ? this.method_config_map[this.info.payment_method1]
        : "";
      let b = this.info.payment_method2
        ? this.method_config_map[this.info.payment_method2]
        : "";
      let c = this.info.payment_method3
        ? this.method_config_map[this.info.payment_method3]
        : "";
      console.log(a, b, c);
      let arr = [];
      if (a) {
        arr.push(a)
        arr.push(a);
      }
      if (b) {
        arr.push(b)
        arr.push(b);
      }
      if (c) {
        arr.push(c)
        arr.push(c);
      }
      return arr.join(',')
      return arr.join(",");
    },
  },
  watch: {
    'info.symbol'(val) {
      this.getCountAdParams()
    }
    "info.symbol"(val) {
      this.getCountAdParams();
    },
  },
  methods: {
    getCurrencyList() {
      return c2cGetCurrencyList().then(res => {
      return c2cGetCurrencyList().then((res) => {
        //console.log('上架币种列表', res)
        Object.keys(res).forEach(key => {
        Object.keys(res).forEach((key) => {
          this.option1.push({
            text: res[key],
            value: key
          })
        })
            value: key,
          });
        });
        if (!this.info.symbol) {
          this.info.symbol = this.option1[0].value
          this.info.symbol = this.option1[0].value;
        }
      })
      });
    },
    getPayCurrencyList() {
      return c2cGetPayCurrencyList().then(res => {
      return c2cGetPayCurrencyList().then((res) => {
        //console.log('法币列表', res)
        res.forEach(item => {
        res.forEach((item) => {
          this.option2.push({
            text: item.currency,
            value: item.currency
          })
        })
            value: item.currency,
          });
        });
        if (!this.info.currency) {
          this.info.currency = this.option2[0].value
          this.info.currency = this.option2[0].value;
        } else {
          this.info.currency = res.find((item) => {
            return item.currency === this.info.currency
          }).currency
            return item.currency === this.info.currency;
          }).currency;
        }
      })
      });
    },
    handleClosePwd() {
      this.showInput = false
      this.showInput = false;
    },
    handPwd(pwd) {
      this.handleClosePwd()
      this.info.safeword = pwd
      this.handleAd()
      this.handleClosePwd();
      this.info.safeword = pwd;
      this.handleAd();
    },
    handleAd() {
      //  this.$router.push('/saveAd')
      if (!this.info.safeword) {
        this.showInput = true
        return
        this.showInput = true;
        return;
      }
      if (this.info.type === '1') { // 编辑广告
        Toast.loading()
      if (this.info.type === "1") {
        // 编辑广告
        Toast.loading();
        editAd({
          session_token: this.session_token,
          ...this.info
        }).then(res => {
          //console.log('编辑广告', res)
          Toast(this.$t('修改成功'))
          // this.getSessionToken()
          this.$router.push({
            path: '/saveAd',
            query: {
              ...this.info,
              pay_type_name: this.pay_type_name
            }
          })
        }).catch(err => {
          this.info.safeword = ''
          this.getSessionToken()
          ...this.info,
        })
      } else { // 发布新广告
        Toast.loading()
          .then((res) => {
            //console.log('编辑广告', res)
            Toast(this.$t("修改成功"));
            // this.getSessionToken()
            this.$router.push({
              path: "/saveAd",
              query: {
                ...this.info,
                pay_type_name: this.pay_type_name,
              },
            });
          })
          .catch((err) => {
            this.info.safeword = "";
            this.getSessionToken();
          });
      } else {
        // 发布新广告
        Toast.loading();
        placeAd({
          session_token: this.session_token,
          ...this.info
        }).then(res => {
          //console.log('编辑广告', res)
          Toast(this.$t('提交成功'))
          this.$router.push({
            path: '/saveAd',
            query: {
              ...this.info
            }
          })
        }).catch(err => {
          this.info.safeword = ''
          this.getSessionToken()
          ...this.info,
        })
          .then((res) => {
            //console.log('编辑广告', res)
            Toast(this.$t("提交成功"));
            this.$router.push({
              path: "/saveAd",
              query: {
                ...this.info,
              },
            });
          })
          .catch((err) => {
            this.info.safeword = "";
            this.getSessionToken();
          });
      }
    },
    findActive(key) {
      return key === this.info.payment_method1 || key === this.info.payment_method2 || key === this.info.payment_method3;
      return (
        key === this.info.payment_method1 ||
        key === this.info.payment_method2 ||
        key === this.info.payment_method3
      );
    },
    getSessionToken() {
      getCtcAdvertToken({
        currency: this.info.currency,
        symbol: this.info.symbol,
        language: this.$i18n.locale
      }).then(res => {
        language: this.$i18n.locale,
      }).then((res) => {
        //console.log('token', res)
        this.session_token = res.session_token
        this.method_config_map = res.method_config_map // 支付方式列表
      })
        this.session_token = res.session_token;
        this.method_config_map = res.method_config_map; // 支付方式列表
      });
    },
    getCountAdParams() { // 获取计算的广告参数
    getCountAdParams() {
      // 获取计算的广告参数
      countAdParams({
        currency: this.info.currency,
        symbol: this.info.symbol,
        coin_amount: this.info.coin_amount,
        symbol_value: this.info.symbol_value
        symbol_value: this.info.symbol_value,
      }).then((res) => {
        //console.log('计算广告参数', res)
        this.adParams = res
      })
        this.adParams = res;
      });
    },
    tabClick(type) {
      this.info.direction = type;
    },
    ClickNum(num) {
      if (num === '2') {
        if (!this.info.symbol || !this.info.currency || !this.info.symbol_value) {
          Toast(this.$t('上架币种,法币或价格不能为空'))
          return
      if (num === "2") {
        if (
          !this.info.symbol ||
          !this.info.currency ||
          !this.info.symbol_value
        ) {
          Toast(this.$t("上架币种,法币或价格不能为空"));
          return;
        }
      }
      if (num === '3') {
        if (!this.info.coin_amount || !this.info.investment_min || !this.info.investment_max || (!this.info.payment_method1 && !this.info.payment_method2 && !this.info.payment_method3)) {
          Toast(this.$t('交易数量,单笔限额,付款方式都不能为空'))
          return
      if (num === "3") {
        if (
          !this.info.coin_amount ||
          !this.info.investment_min ||
          !this.info.investment_max ||
          (!this.info.payment_method1 &&
            !this.info.payment_method2 &&
            !this.info.payment_method3)
        ) {
          Toast(this.$t("交易数量,单笔限额,付款方式都不能为空"));
          return;
        }
        if (this.info.coin_amount / 1 > this.adParams.coin_amount_max / 1) {
          Toast(this.$t('最大交易币种数量不能超过') + this.adParams.coin_amount_max);
          Toast(
            this.$t("最大交易币种数量不能超过") + this.adParams.coin_amount_max
          );
          return;
        }
        if (this.info.investment_max / 1 > this.adParams.investment_max_limit / 1) {
          Toast(this.$t('最大支付金额不能超过') + this.adParams.investment_max_limit);
        if (
          this.info.investment_max / 1 >
          this.adParams.investment_max_limit / 1
        ) {
          Toast(
            this.$t("最大支付金额不能超过") + this.adParams.investment_max_limit
          );
          return;
        }
        if (this.info.investment_min / 1 < this.adParams.investment_min_limit / 1) {
          Toast(this.$t('最小支付金额不能低于') + this.adParams.investment_min_limit);
        if (
          this.info.investment_min / 1 <
          this.adParams.investment_min_limit / 1
        ) {
          Toast(
            this.$t("最小支付金额不能低于") + this.adParams.investment_min_limit
          );
          return;
        }
      }
@@ -491,33 +558,35 @@
      this.price = price;
    },
    choose(val, key) {
      if (key === this.info.payment_method1) { // 取消
        this.info.payment_method1 = ''
        return
      if (key === this.info.payment_method1) {
        // 取消
        this.info.payment_method1 = "";
        return;
      } else if (key === this.info.payment_method2) {
        this.info.payment_method2 = ''
        return
        this.info.payment_method2 = "";
        return;
      } else if (key === this.info.payment_method3) {
        this.info.payment_method3 = ''
        return
        this.info.payment_method3 = "";
        return;
      }
      if (!this.info.payment_method1) {
        this.info.payment_method1 = key
        this.info.payment_method1 = key;
      } else if (this.info.payment_method1 && !this.info.payment_method2) {
        this.info.payment_method2 = key
      } else if (this.info.payment_method1 && this.info.payment_method2 && !this.info.payment_method3) {
        this.info.payment_method3 = key
        this.info.payment_method2 = key;
      } else if (
        this.info.payment_method1 &&
        this.info.payment_method2 &&
        !this.info.payment_method3
      ) {
        this.info.payment_method3 = key;
      }
    },
    showPopup() {
      this.show = true;
    },
  }
}
  },
};
</script>
<style lang="scss" scoped>
@@ -540,11 +609,11 @@
  }
  .left-enter-active {
    animation: left-in .2s;
    animation: left-in 0.2s;
  }
  .left-leave-active {
    animation: left-in .2s reverse;
    animation: left-in 0.2s reverse;
  }
  @keyframes left-in {
@@ -574,13 +643,13 @@
  }
  .bg-wh {
    background: #FFFFFF;
    border: 1px solid #B8BCC5;
    background: #ffffff;
    border: 1px solid #b8bcc5;
  }
  .bg-bl {
    background: #2C78F8;
    color: #FFFFFF;
    background: #2c78f8;
    color: #ffffff;
  }
  .width {
@@ -596,6 +665,7 @@
  }
  .border_top {
    border-top: 1px solid #C8CAD2;
    border-top: 1px solid #c8cad2;
  }
}</style>
}
</style>