美文网首页坚持学习打卡
vue 添加自选股判断输入股票筛选结果

vue 添加自选股判断输入股票筛选结果

作者: Moment929 | 来源:发表于2023-03-09 14:24 被阅读0次
image.png

先通过vant 框架 --》选择 Search 搜索 组件

<template>
<section class="search">
  <form action="/">
    <van-search
      v-model="queryCode"
      placeholder="请输入股票代码或名称"
      show-action
      @input="searchInputHandler"
      @search="onSearch"
      @cancel="onCancel"
    />
  </form>
  <div class="stock-result" v-if="stockResult">
    <p v-for="item in searchStock" :key="item.id" @click="chooseStock(item)"><i class="van-icon van-icon-search"></i>{{item.code}} {{item.name}}</p>
  </div>
  <div v-if="addChoice">
    <div class="search-add" v-for="item in searchStock" :key="item.id">
      <div>{{item.name}} &nbsp;{{item.code}}</div>
      <div class="search-btn" @click='addContractFree(item)'>+ 自选</div>
    </div>
  </div>
</section>
</template>

<script>
import { queryStock, addContractFree, queryStockPin, queryStockName } from '@/http.js'
import { Search } from 'vant'
export default {
  name: 'searchFree',
  components: {
    VanSearch: Search
  },
  data () {
    return {
      queryCode: '',
      addChoice: false,
      stockResult: false,
      searchStock: []
    }
  },
  methods: {
    // 查询股票
    queryStock (code) {
      if (!isNaN(code)) {
        return queryStock({
          filter_code: code,
          filter_count: 10
        })
      } else if (/^[a-zA-Z]*$/.test(code)) {
        return queryStockPin({
          filter_pinyin: code,
          filter_count: 10
        })
      } else {
        return queryStockName({
          filter_name: code,
          filter_count: 10
        })
      }
    },
    async onSearch () {
      const res = await this.queryStock(this.queryCode)
      if (res && res.data.data.length) {
        this.addChoice = true
        this.searchStock = res.data.data
      }
    },
    async searchInputHandler () {
      const res = await this.queryStock(this.queryCode)
      if (res && res.data.data.length) {
        this.stockResult = true
        this.searchStock = res.data.data
      }
    },
    chooseStock (item) {
      this.stockResult = false
      this.queryCode = item.code
      this.onSearch()
    },
    onCancel () {
      // this.$router.go(-1)
      this.$router.replace({ name: 'Trade', params: { active: 4 } })
    },
    // 添加自选股
    addStock (item) {
      return addContractFree({
        stockcode: item.code
      })
    },
    async addContractFree (item) {
      const res = await this.addStock(item)
      if (res) {
        this.$toast('添加成功')
        this.$router.replace({ name: 'Trade', params: { active: 4 } })
      } else {
        this.$toast('已经添加了当前股票')
      }
    }
  }
}
</script>

axios 实现前后端接口交互

/* 股票 */
// 代码查询股票
const queryStock = (params = { filter_code: '', filter_count: '10' }) => axios.get('/stock/list/', {
  params
})
// 股票拼音首字母查询股票
const queryStockPin = (params = { filter_pinyin: '', filter_count: '10' }) => axios.get('/stock/list/', {
  params
})
// 股票名称查询股票
const queryStockName = (params = { filter_name: '', filter_count: '10' }) => axios.get('/stock/list/', {
  params
})

相关文章

  • 股票的买卖点

    在买入股票前,首先应该从上千只股票中按热点、行业、大盘指数等信息筛选出关注的机制股票加入到自选股,随时关注这些自选...

  • 自选股票池

    友情提示: 1、学习 包含关系:用来寻找 顶底分型2、学习 顶底分型:用来画 严格笔3、学习 严格笔:用来画 中...

  • 自选股同步工具【文本导入、备份、股软间同步】

    主要功能:实现多平台间的自选股迁移与同步:1)股票代码导入股票行情软件(文华财经、同花顺、大智慧、通达信)自选股,...

  • vue兼容IE11

    1.vue-router在App.vue里面的mounted周期添加判断 2.vuexhttps://babelj...

  • 早中期搜索功能如何设计

    一、搜索功能原理 (1)解读转译用户输入的信息 (2)根据用户输入的信息,对内容进行筛选 (3)将筛选后的结果进行...

  • RxJava2操作符之“Filter”

    作用 过滤,筛选,添加对事件是否需要发送的判断。 示例用法 运行结果 2,4,6 分析 我们创建了一个有6个数字的...

  • 长睦诸葛投研: 4月12日分析师密集调研报告标题文章

    长睦诸葛投研: 股票智能筛选结果--分析师密集调研报告 **此报告为经过诸葛投研软件智能筛选,识别和统计后的结果 ...

  • 长睦诸葛投研: 4月11日分析师密集调研报告无标题文章

    长睦诸葛投研: 股票智能筛选结果--分析师密集调研报告 **此报告为经过诸葛投研软件智能筛选,识别和统计后的结果 ...

  • 2020-01-23操作笔记

    春节前最后一个交易日,各种情况加起来,自选股里只有纺织和新能源强势,其他股票都低开拉升后有迅速下跌。自己判断的泰达...

  • UITextField 汉字拼音预输入问题

    情景描述: 模糊搜索:随着用户输入的汉字不断筛选符合用户输入的关键字的数据。 思路: 为UITextField添加...

网友评论

    本文标题:vue 添加自选股判断输入股票筛选结果

    本文链接:https://www.haomeiwen.com/subject/qkoehctx.html