From 61944978f51ca99a001162ac1ff3d32dcd5315ed Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Wed, 16 Jul 2025 14:54:58 +0800
Subject: [PATCH] 1
---
src/page/markets/ipo.vue | 241 +++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 217 insertions(+), 24 deletions(-)
diff --git a/src/page/markets/ipo.vue b/src/page/markets/ipo.vue
index 06d4c57..ecc4d18 100644
--- a/src/page/markets/ipo.vue
+++ b/src/page/markets/ipo.vue
@@ -8,40 +8,54 @@
</template>
</page-head>
- <!-- <div class="trading_card" v-for="i in 5" :key="i">
- <p class="card_label1 flex-start">
- <span class="label_icon">US</span>
- <span>444</span>
+ <div class="trading_card" v-for="i in list" :key="i.id">
+ <div class="card_label1 flex-between-start">
+ <div>
+ <p class="flex-start gp">
+ <span>{{ i.code }}</span>
+ </p>
+ <p class="flex-start">
+ <span class="label_icon">{{ i.stockType }}</span>
+ <span class="label_name line-one">{{ i.name }}</span>
+ </p>
+ </div>
+
+ <div class="flex-end">
+ <span class="label_status" v-if="i.listDate > Date.now()">{{
+ $t("待上市")
+ }}</span>
+ <span class="label_status1" v-else>{{ $t("已上市") }}</span>
+ </div>
+ </div>
+
+ <p class="card_label2 flex-between">
+ <span>{{ $t("hj81") }}</span>
+ <span>{{ i.stockType | currencySymbol }} {{ i.price }}</span>
</p>
<p class="card_label2 flex-between">
- <span>{{ $t("最低认购金额") }}</span>
- <span>$ 2,000</span>
+ <span>{{ $t("可申购数量") }}</span>
+ <span>{{ i.orderNumber }}</span>
</p>
<p class="card_label2 flex-between">
- <span>{{ $t("交易成功率") }}</span>
- <span>100%</span>
+ <span>{{ $t("发行时间") }}</span>
+ <span>{{ i.subscriptionTime | gettime }}</span>
</p>
<p class="card_label2 flex-between">
- <span>{{ $t("预期收益") }}</span>
- <span>3</span>
+ <span>{{ $t("上市时间") }}</span>
+ <span>{{ i.listDate | gettime }}</span>
</p>
- <p class="card_label2 flex-between">
- <span>{{ $t("交易周期") }}</span>
- <span>1天</span>
- </p>
-
- <p class="card_buy flex-center">
+ <p class="card_buy flex-center" @click="buyOpen(i)">
<van-icon name="add-square" size=".4em" />
- <span>{{ $t("gm") }}</span>
+ <span>{{ $t("申购") }}</span>
</p>
- </div> -->
+ </div>
<!-- 无数据时显示 -->
- <div class="no_data flex-center">
+ <div class="no_data flex-center" v-show="!list || list.length === 0">
<img src="@/assets/img/zhaobudao2.png" alt="" />
</div>
@@ -50,12 +64,32 @@
:pageSize="pageSize"
:total="total"
></n-pagination>
+
+ <!-- 购买弹窗 -->
+ <van-popup v-model="buyShow" round>
+ <van-form class="buy_popup" @submit="popupSubmit">
+ <div class="popup_title flex-center">
+ <span>{{ $t("操作确认") }}</span>
+ </div>
+
+ <div class="buts flex-between">
+ <p class="flex-center" @click="buyShow = false">
+ <span>{{ $t("qx") }}</span>
+ </p>
+ <p class="flex-center" native-type="submit">
+ <van-button native-type="submit">{{ $t("qr") }}</van-button>
+ </p>
+ </div>
+ </van-form>
+ </van-popup>
</div>
</template>
<script>
import PageHead from "@/components/pageHead.vue";
import nPagination from "@/components/nPagination.vue";
+import * as api from "@/axios/api";
+import { Toast } from "vant";
export default {
components: {
@@ -67,12 +101,61 @@
pageNum: 1,
pageSize: 10,
total: 1,
- searchValue: ""
+ searchValue: "",
+ buyShow: false, // 购买弹窗控制
+ popupData: {}, // 点击购买的数据
+ list: []
};
},
+ watch: {
+ pageNum() {
+ this.list = [];
+ this.getStockSubscribeList();
+ }
+ },
+ created() {
+ this.getStockSubscribeList();
+ },
methods: {
- submit() {
- console.log(this.searchValue);
+ // 购买弹窗
+ buyOpen(i) {
+ this.popupData = i;
+ this.buyShow = true;
+ },
+ // 购买提交
+ async popupSubmit() {
+ let opt = {
+ newCode: this.popupData.code,
+ applyNums: this.popupData.orderNumber,
+ password: this.popupData.password,
+ newlistId: this.popupData.newlistId,
+ type: this.popupData.type,
+ }
+ let data = await api.getNewAdd(opt);
+ console.log(data.status);
+
+ if (data.status == 0) {
+ Toast.success();
+ setTimeout(() => {
+ this.buyShow = false;
+ }, 1000);
+ } else {
+ Toast.fail(data.msg);
+ }
+ },
+ // 获取列表
+ async getStockSubscribeList() {
+ let opt = {
+ pageNum: this.pageNum,
+ pageSize: this.pageSize
+ };
+ let data = await api.getStockSubscribeList(opt);
+ if (data.status === 0) {
+ this.list = data.data.list;
+ this.total = data.data.total || 1;
+ } else {
+ Toast(data.msg);
+ }
}
}
};
@@ -80,6 +163,7 @@
<style lang="less" scoped>
@green: #c4d600;
+@brown: #ff976a;
.ipo {
font-size: 10vw;
width: 100%;
@@ -124,8 +208,25 @@
.card_label1 {
color: @green;
- height: 1.33em;
-
+ min-height: 1.33em;
+ padding: 0.25em 0;
+ .label_name {
+ // width: 14em;
+ flex: 1;
+ color: #969799;
+ }
+ .label_status {
+ background-color: @brown;
+ color: #fff;
+ padding: 0.3em 0.5em;
+ border-radius: 0.3em;
+ }
+ .label_status1 {
+ background-color: @green;
+ color: #fff;
+ padding: 0.3em 0.5em;
+ border-radius: 0.3em;
+ }
span {
font-size: 0.4em;
}
@@ -137,6 +238,98 @@
margin-right: 0.3em;
font-size: 0.3em;
}
+ .gp {
+ margin-bottom: 0.2em;
+ }
+ }
+ }
+ .buy_popup {
+ width: 8.8em;
+ /deep/ .van-cell {
+ padding: 0;
+ font-size: 0.4em;
+ }
+ /deep/ .van-field__body {
+ // border: 0.01em solid #f5f5f5;
+ // height: 2.5em;
+ // padding: 0 0.5em;
+ // margin-top: 0.5em;
+ }
+ /deep/ .van-field__label {
+ color: #000;
+ }
+ /deep/ .van-stepper__minus {
+ width: 1rem;
+ height: 1rem;
+ }
+ /deep/ .van-stepper__plus {
+ width: 1rem;
+ height: 1rem;
+ }
+ /deep/ .van-stepper__input {
+ height: 1rem;
+ width: 2rem;
+ font-size: 0.4rem;
+ }
+ .division {
+ width: 100%;
+ height: 0.25em;
+ background-color: #f5f5f5;
+ }
+ .popup_title {
+ width: 100%;
+ min-height: 2.22em;
+ font-weight: bold;
+ padding: 0 0.25em;
+ border: #f5f5f5 solid 0.01em;
+ }
+ .popup_name {
+ color: @green;
+ .popup_icon {
+ background: @green;
+ color: #fff;
+ padding: 0.2em 0.35em;
+ border-radius: 0.15em;
+ margin-right: 0.3em;
+ font-size: 0.3em;
+ }
+ }
+ .popup_item {
+ width: 8.3em;
+ margin: 0 auto;
+ padding: 0.35em 0;
+ border-bottom: #f5f5f5 solid 0.01em;
+
+ .zxgm {
+ height: 0.8em;
+ width: 2em;
+ border-radius: 0.1em;
+ border: #ddd solid 0.01em;
+ span {
+ font-size: 0.3em;
+ }
+ }
+ }
+ span {
+ font-size: 0.4em;
+ }
+ .buts {
+ width: 100%;
+ height: 1.22em;
+
+ /deep/ .van-button {
+ border: none;
+ font-size: 1em;
+ color: @green;
+ }
+ p {
+ height: 100%;
+ flex: 1;
+ }
+ & > p:last-child {
+ border-left: #f5f5f5 solid 0.01em;
+ color: @green;
+ }
}
}
--
Gitblit v1.9.3