| | |
| | | v-model="loading" |
| | | :finished="finished" |
| | | :finished-text="$t('hj43')" |
| | | :loading-text="$t('hj430')" |
| | | @load="onLoad" |
| | | > |
| | | <div |
| | | <div v-if="actives === 0" |
| | | class="sport-content-li" |
| | | :style="actives === 1 ? 'height:5.52rem' : 'height:7.52rem'" |
| | | v-for="(item, index) in dataList" |
| | | :key="index" |
| | | > |
| | | <div class="title-box"> |
| | | <div class="span">{{ item.stockName }}</div> |
| | | <div |
| | | class="states" |
| | | :class="item.orderDirection === '买跌' ? 'states-red' : ''" |
| | | > |
| | | {{ $t(item.orderDirection) }} |
| | | @click="$router.push(`/Stockdetail?codes=${item.positionSn}`)" > |
| | | <div @click.stop="pushRouter(item)"> |
| | | |
| | | <div class="title-box" style="justify-content: space-between;"> |
| | | <div class="span" :style="item.isListed==false?'color:red;':''">{{ item.stockName }}</div> |
| | | <div |
| | | class="states" |
| | | :class="item.orderDirection === '买跌' ? 'states-red' : ''" |
| | | > |
| | | {{ $t(item.orderDirection) }} |
| | | </div> |
| | | </div> |
| | | {{ item.stockSpell }} |
| | | </div> |
| | | <van-row> |
| | | <van-col span="8"> |
| | | <div style="text-align: left"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("盈虧") }} ({{ item.stockGid }}) |
| | | <div class="sport-content-title2" > |
| | | {{ $t("盈虧") }} ({{ activeObj.symbolCode }}) |
| | | </div> |
| | | <div class="sport-content-text" style="color: #d04b64"> |
| | | {{ item.profitAndLose }} |
| | | <div class="sport-content-text2" :style="item.profitAndLoseParent.charAt(0)=='-'?'color:#cc1b1b;':'color:#3e9976;'"> |
| | | ₹{{ item.profitAndLose | _toLocaleString }} |
| | | </div> |
| | | </div> |
| | | </van-col> |
| | | <van-col span="8"> |
| | | <div style="text-align: center"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("hj141") }} ({{ item.stockGid }}) |
| | | {{ $t("hj141") }} ({{ activeObj.symbolCode }}) |
| | | </div> |
| | | <div class="sport-content-text2"> |
| | | <div class="sport-content-text2" :style="item.profitAndLoseParent.charAt(0)=='-'?'color:#cc1b1b;':'color:#3e9976;'"> |
| | | {{ item.profitAndLoseParent }} |
| | | </div> |
| | | </div> |
| | |
| | | <van-col span="8"> |
| | | <div style="text-align: right"> |
| | | <div class="sport-content-title2">{{ $t("倉位(股)") }}</div> |
| | | <div class="sport-content-text">{{ item.orderNum }}</div> |
| | | <div class="sport-content-text2">{{ item.orderNum }}</div> |
| | | </div></van-col |
| | | > |
| | | </van-row> |
| | |
| | | <van-col span="8"> |
| | | <div style="text-align: left"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("hj40") }}({{ item.stockGid }}) |
| | | </div> |
| | | <div class="sport-content-text2">{{ item.now_price }}</div> |
| | | </div> |
| | | </van-col> |
| | | <van-col span="8"> |
| | | <div style="text-align: center"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("持倉價") }} ({{ item.stockGid }}) |
| | | </div> |
| | | <div class="sport-content-text2">{{ item.buyOrderPrice }}</div> |
| | | </div> |
| | | </van-col> |
| | | <van-col span="8"> |
| | | <div style="text-align: right"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("訂單金額") }} ({{ item.stockGid }}) |
| | | </div> |
| | | <div class="sport-content-text2">{{ item.orderTotalPrice }}</div> |
| | | </div> |
| | | </van-col> |
| | | </van-row> |
| | | <van-row> |
| | | <van-col span="8"> |
| | | <div style="text-align: left"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("開倉手續費") }} ({{ item.stockGid }}) |
| | | </div> |
| | | <div class="sport-content-text2">{{ item.orderFee }}</div> |
| | | </div> |
| | | </van-col> |
| | | <van-col span="8"> |
| | | <div style="text-align: center"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("止損價") }} ({{ item.stockGid }}) |
| | | {{ $t("hj40") }}({{ activeObj.symbolCode }}) |
| | | </div> |
| | | <div class="sport-content-text2"> |
| | | -{{ item.profitTargetPrice || "--" }} |
| | | ₹{{ item.now_price | _toLocaleString }} |
| | | </div> |
| | | </div> |
| | | </van-col> |
| | | <van-col span="8"> |
| | | <div style="text-align: center"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("持倉價") }} ({{ activeObj.symbolCode }}) |
| | | </div> |
| | | <div class="sport-content-text2"> |
| | | ₹{{ item.buyOrderPrice | _toLocaleString }} |
| | | </div> |
| | | </div> |
| | | </van-col> |
| | | <van-col span="8"> |
| | | <div style="text-align: right"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("止盈價") }} ({{ item.stockGid }}) |
| | | {{ $t("訂單金額") }} ({{ activeObj.symbolCode }}) |
| | | </div> |
| | | <div class="sport-content-text2"> |
| | | -{{ item.stopTargetPrice || "--" }} |
| | | ₹{{ item.orderTotalPrice | _toLocaleString }} |
| | | </div> |
| | | </div> |
| | | </van-col> |
| | |
| | | <van-row> |
| | | <van-col span="12"> |
| | | <div style="text-align: left"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("hj44") }} ({{ activeObj.symbolCode }}) |
| | | </div> |
| | | <div class="sport-content-text2"> |
| | | ₹{{ item.orderFee | _toLocaleString }} |
| | | </div> |
| | | </div> |
| | | </van-col> |
| | | <van-col span="12"> |
| | | <div style="text-align: right"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("待补金额") }} ({{ activeObj.symbolCode }}) |
| | | </div> |
| | | <div class="sport-content-text2"> |
| | | ₹{{ item.amountToBeCovered | _toLocaleString }} |
| | | </div> |
| | | </div> |
| | | </van-col> |
| | | <!-- <van-col span="8"> |
| | | <div style="text-align: center"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("止損價") }} ({{ activeObj.symbolCode }}) |
| | | </div> |
| | | <div class="sport-content-text2"> |
| | | {{ item.stopTargetPrice | _toLocaleString }} |
| | | </div> |
| | | </div> |
| | | </van-col> |
| | | <van-col span="8"> |
| | | <div style="text-align: right"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("止盈價") }} ({{ activeObj.symbolCode }}) |
| | | </div> |
| | | <div class="sport-content-text2"> |
| | | {{ item.profitTargetPrice | _toLocaleString }} |
| | | </div> |
| | | </div> |
| | | </van-col> --> |
| | | </van-row> |
| | | <van-row> |
| | | <van-col span="12"> |
| | | <div style="text-align: left"> |
| | | <div class="sport-content-title2">{{ $t("持倉時間") }}</div> |
| | | <div class="sport-content-text2"> |
| | | {{ $moment(item.buyOrderTime).format("YYYY-MM-DD HH:mm:ss") }} |
| | | {{ $moment(item.buyOrderTime).format("DD-MM-YYYY hh:mm:ss A") }} |
| | | </div> |
| | | </div> |
| | | </van-col> |
| | |
| | | </van-col> |
| | | </van-row> |
| | | |
| | | <div class="but-box" v-if="actives === 0"> |
| | | <div class="but" @click="close(item)">{{ $t("平仓") }}</div> |
| | | <div class="but-box" v-if="actives === 0" @click.stop="close(item)"> |
| | | <div class="but">{{ $t("平仓") }}</div> |
| | | <!-- <div class="but buts">止盈止损</div> --> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <div v-if="actives === 1" |
| | | class="sport-content-li" |
| | | :style="actives === 1 ? 'height:5.52rem' : 'height:7.52rem'" |
| | | v-for="(item, index) in newdataList" |
| | | :key="index" |
| | | @click="$router.push(`/Stockdetail?codes=${item.positionSn}`)" > |
| | | <div @click.stop="pushRouter(item)"> |
| | | <div class="title-box" style="justify-content: space-between;"> |
| | | <div class="span">{{ item.stockName }}</div> |
| | | <div |
| | | class="states" |
| | | :class="item.orderDirection === '买跌' ? 'states-red' : ''" |
| | | > |
| | | {{ $t(item.orderDirection) }} |
| | | </div> |
| | | </div> |
| | | {{ item.stockSpell }} |
| | | </div> |
| | | <van-row> |
| | | <van-col span="8"> |
| | | <div style="text-align: left"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("盈虧") }} ({{ activeObj.symbolCode }}) |
| | | </div> |
| | | <div class="sport-content-text2" :style="item.profitAndLoseParent.charAt(0)=='-'?'color:#cc1b1b;':'color:#3e9976;'"> |
| | | ₹{{ item.profitAndLose | _toLocaleString }} |
| | | </div> |
| | | </div> |
| | | </van-col> |
| | | <van-col span="8"> |
| | | <div style="text-align: center"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("hj141") }} ({{ activeObj.symbolCode }}) |
| | | </div> |
| | | <div class="sport-content-text2" :style="item.profitAndLoseParent.charAt(0)=='-'?'color:#cc1b1b;':'color:#3e9976;'"> |
| | | {{ item.profitAndLoseParent }} |
| | | </div> |
| | | </div> |
| | | </van-col> |
| | | <van-col span="8"> |
| | | <div style="text-align: right"> |
| | | <div class="sport-content-title2">{{ $t("倉位(股)") }}</div> |
| | | <div class="sport-content-text2">{{ item.orderNum }}</div> |
| | | </div></van-col |
| | | > |
| | | </van-row> |
| | | <van-row> |
| | | <van-col span="8"> |
| | | <div style="text-align: left"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("hj40") }}({{ activeObj.symbolCode }}) |
| | | </div> |
| | | <div class="sport-content-text2"> |
| | | ₹{{ item.now_price | _toLocaleString }} |
| | | </div> |
| | | </div> |
| | | </van-col> |
| | | <van-col span="8"> |
| | | <div style="text-align: center"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("持倉價") }} ({{ activeObj.symbolCode }}) |
| | | </div> |
| | | <div class="sport-content-text2"> |
| | | ₹{{ item.buyOrderPrice | _toLocaleString }} |
| | | </div> |
| | | </div> |
| | | </van-col> |
| | | <van-col span="8"> |
| | | <div style="text-align: right"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("訂單金額") }} ({{ activeObj.symbolCode }}) |
| | | </div> |
| | | <div class="sport-content-text2"> |
| | | ₹{{ item.orderTotalPrice | _toLocaleString }} |
| | | </div> |
| | | </div> |
| | | </van-col> |
| | | </van-row> |
| | | <van-row> |
| | | <van-col span="8"> |
| | | <div style="text-align: left"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("hj44") }} ({{ activeObj.symbolCode }}) |
| | | </div> |
| | | <div class="sport-content-text2"> |
| | | ₹{{ item.orderFee | _toLocaleString }} |
| | | </div> |
| | | </div> |
| | | </van-col> |
| | | <!-- <van-col span="8"> |
| | | <div style="text-align: center"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("止損價") }} ({{ activeObj.symbolCode }}) |
| | | </div> |
| | | <div class="sport-content-text2"> |
| | | {{ item.stopTargetPrice | _toLocaleString }} |
| | | </div> |
| | | </div> |
| | | </van-col> |
| | | <van-col span="8"> |
| | | <div style="text-align: right"> |
| | | <div class="sport-content-title2"> |
| | | {{ $t("止盈價") }} ({{ activeObj.symbolCode }}) |
| | | </div> |
| | | <div class="sport-content-text2"> |
| | | {{ item.profitTargetPrice | _toLocaleString }} |
| | | </div> |
| | | </div> |
| | | </van-col> --> |
| | | </van-row> |
| | | <van-row> |
| | | <van-col span="12"> |
| | | <div style="text-align: left"> |
| | | <div class="sport-content-title2">{{ $t("持倉時間") }}</div> |
| | | <div class="sport-content-text2"> |
| | | {{ $moment(item.buyOrderTime).format("DD-MM-YYYY hh:mm:ss A") }} |
| | | </div> |
| | | </div> |
| | | </van-col> |
| | | <van-col span="12"> |
| | | <div style="text-align: right"> |
| | | <div class="sport-content-title2">{{ $t("訂單編號") }}</div> |
| | | <div class="sport-content-text2">{{ item.buyOrderId }}</div> |
| | | </div> |
| | | </van-col> |
| | | </van-row> |
| | | |
| | | <div class="but-box" v-if="actives === 0" @click.stop="close(item)"> |
| | | <div class="but">{{ $t("平仓") }}</div> |
| | | <!-- <div class="but buts">止盈止损</div> --> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="hang"> |
| | | <div class="left">{{ $t("倉位(股)") }}</div> |
| | | <div class="right" style="color: rgb(3, 173, 143)"> |
| | | <!-- <div class="right" style="color: rgb(3, 173, 143)"> |
| | | {{ closeSell.orderNum }} |
| | | </div> |
| | | </div> --> |
| | | <input class="input_box" type="number" :max="closeSell.orderNum" :placeholder="$t('hj262')" v-model="ordernum" /> |
| | | </div> |
| | | <div class="hang"> |
| | | <div class="left">{{ $t("類型") }}</div> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import Dialog from '@/components/Dialog' |
| | | import { getchicang, sell } from '../../../axios/api' |
| | | import { Notify } from 'vant' |
| | | import Dialog from "@/components/Dialog"; |
| | | import { getchicang, sell } from "../../../axios/api"; |
| | | import { Notify } from "vant"; |
| | | export default { |
| | | components: { Dialog }, |
| | | props: { |
| | | activeObj: { |
| | | type: Object, |
| | | default: {} |
| | | } |
| | | default: {}, |
| | | }, |
| | | }, |
| | | data () { |
| | | mounted() { |
| | | this.getList(); |
| | | }, |
| | | data() { |
| | | return { |
| | | pageNum: 1, |
| | | pageSize: 150, |
| | |
| | | closeSell: {}, |
| | | show: false, |
| | | actives: 0, |
| | | ordernum:'', |
| | | dataList: [], |
| | | newdataList:[], |
| | | timer: null, |
| | | tabsList: [ |
| | | { |
| | | title: this.$t('持倉'), |
| | | key: 0 |
| | | title: this.$t("持倉"), |
| | | key: 0, |
| | | }, |
| | | |
| | | { |
| | | title: this.$t('平倉'), |
| | | key: 1 |
| | | } |
| | | ] |
| | | } |
| | | title: this.$t("平倉"), |
| | | key: 1, |
| | | }, |
| | | ], |
| | | }; |
| | | }, |
| | | |
| | | created(){ |
| | | this.dsq() |
| | | }, |
| | | beforeDestroy() { |
| | | clearInterval(this.timer); // 在组件销毁前清除定时器 |
| | | }, |
| | | methods: { |
| | | onLoad () { |
| | | this.pageNum++ |
| | | this.loading = true |
| | | dsq(){ |
| | | // this.dataList = []; |
| | | this.timer = setInterval(() => { |
| | | this.getList(); |
| | | }, 1000); |
| | | }, |
| | | async confirm () { |
| | | pushRouter(item) { |
| | | const obj = { |
| | | pid: item.stockCode || "", |
| | | type: item.stockGid || "", |
| | | }; |
| | | window.localStorage.setItem("kLine", JSON.stringify(obj)); |
| | | // return; |
| | | var codes = item.stockCode; |
| | | var names = item.stockName; |
| | | |
| | | this.$router.push({ |
| | | path: "/kline", |
| | | query: { |
| | | name: names, |
| | | code: codes, |
| | | if_us: "", |
| | | if_zhishu: 0, |
| | | sok: "", |
| | | type: item.stockGid, |
| | | }, |
| | | }); |
| | | }, |
| | | onLoad() { |
| | | // this.pageNum++; |
| | | this.loading = true; |
| | | }, |
| | | async confirm() { |
| | | this.$refs.closeDialog.show = false; |
| | | const res = await sell({ |
| | | positionSn: this.closeSell.positionSn |
| | | }) |
| | | positionSn: this.closeSell.positionSn, |
| | | number:this.ordernum |
| | | }); |
| | | if (res.status === 0) { |
| | | this.$refs.closeDialog.show = false |
| | | this.dataList = [] |
| | | this.pageNum = 1 |
| | | this.finished = false |
| | | this.getList() |
| | | this.$emit('closingPosition') |
| | | this.dataList = []; |
| | | this.pageNum = 1; |
| | | this.finished = false; |
| | | Notify({ type: "success", message: res.msg }); |
| | | this.getList(); |
| | | this.$emit("closingPosition"); |
| | | } else { |
| | | Notify({ type: 'danger', message: res.msg }) |
| | | Notify({ type: "danger", message: res.msg }); |
| | | } |
| | | }, |
| | | // 获取仓位列表 |
| | | async getList (laber) { |
| | | async getLists(laber) { |
| | | if (laber) { |
| | | this.dataList = [] |
| | | this.pageNum = 1 |
| | | this.finished = false |
| | | this.dataList = []; |
| | | this.pageNum = 1; |
| | | this.finished = false; |
| | | } |
| | | const res = await getchicang({ |
| | | state: this.actives, |
| | | stockType: laber || this.activeObj.laber, |
| | | pageNum: this.pageNum, |
| | | pageSize: this.pageSize |
| | | }) |
| | | pageNum: 1, |
| | | pageSize: 30, |
| | | }); |
| | | |
| | | this.loading = false |
| | | this.loading = false; |
| | | if (res.status === 0) { |
| | | this.dataList = res.data.list |
| | | if (res.data.total <= this.dataList.length) { |
| | | this.finished = true |
| | | } |
| | | this.newdataList = res.data.list; |
| | | this.finished = true; |
| | | } else { |
| | | this.loading = false |
| | | this.finished = true |
| | | this.loading = false; |
| | | this.finished = true; |
| | | } |
| | | }, |
| | | close (item) { |
| | | this.closeSell = item |
| | | this.$refs.closeDialog.show = true |
| | | // 获取仓位列表 |
| | | async getList(laber) { |
| | | if (laber) { |
| | | this.dataList = []; |
| | | this.pageNum = 1; |
| | | this.finished = false; |
| | | } |
| | | const res = await getchicang({ |
| | | state: this.actives, |
| | | stockType: laber || this.activeObj.laber, |
| | | pageNum: 1, |
| | | pageSize: 30, |
| | | }); |
| | | |
| | | this.loading = false; |
| | | if (res.status === 0) { |
| | | this.dataList = [] |
| | | this.dataList = res.data.list; |
| | | this.finished = true; |
| | | } else { |
| | | this.loading = false; |
| | | this.finished = true; |
| | | } |
| | | }, |
| | | clickTabs (e) { |
| | | close(item) { |
| | | this.closeSell = item; |
| | | this.$refs.closeDialog.show = true; |
| | | this.ordernum = '' |
| | | }, |
| | | |
| | | clickTabs(e) { |
| | | this.pageNum = 1; |
| | | this.finished = false; |
| | | this.actives = e.key; |
| | | this.newdataList = [] |
| | | this.dataList = [] |
| | | this.pageNum = 1 |
| | | this.finished = false |
| | | this.actives = e.key |
| | | this.getList() |
| | | } |
| | | } |
| | | } |
| | | |
| | | if(e.key==1){ |
| | | clearInterval(this.timer); // 在组件销毁前清除定时器 |
| | | // clearTimeout(this.timer); |
| | | // setTimeout(()=>{ |
| | | // clearInterval(this.timer); // 在组件销毁前清除定时器 |
| | | // },3000) |
| | | this.getLists() |
| | | // this.startPolling(); |
| | | // this.dsq() |
| | | }else{ |
| | | clearInterval(this.timer); // 在组件销毁前清除定时器 |
| | | this.dsq() |
| | | } |
| | | this.$forceUpdate(); // 强制Vue重新渲染 |
| | | |
| | | // this.getList() |
| | | // if(e.key !=this.actives){ |
| | | |
| | | |
| | | // }else{ |
| | | // this.actives = e.key; |
| | | // this.dsq() |
| | | // } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .input_box{ |
| | | text-align: right; |
| | | font-size: 16px; |
| | | |
| | | padding: 0 4px; |
| | | } |
| | | .sport-tabs { |
| | | // font-family: PingFang SC; |
| | | font-family: "DINPro"; |