index.vue 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <template>
  2. <view>
  3. <u-navbar title="销售线索" :autoBack="true" :placeholder="true" v-hideNav></u-navbar>
  4. <view class="case_top_wrap">
  5. <ld-select :list="options" label-key="label" value-key="value" placeholder="选择搜索类型"
  6. v-model="queryParams.condition" class="conditionSelect" @change="handleConditionChange" :isShowIcon="true"></ld-select>
  7. <u-input shape="circle" clearable prefixIcon="search" v-model="queryParams.conditionContent"
  8. placeholder="整合搜索" @blur="handleKeyword" @clear="handleKeywordClear"></u-input>
  9. </view>
  10. <view class="queryParams_wrap">
  11. <view class="sort" @click="handleShowSort">
  12. <view style="margin-right: 10rpx;">排序</view>
  13. <u-icon name="arrow-down-fill" color="#aaa" size="10" ></u-icon>
  14. </view>
  15. <view class="sort" @click="handleShowTag">
  16. <view style="margin-right: 10rpx;">标签</view>
  17. <u-icon name="arrow-down-fill" color="#aaa" size="10" ></u-icon>
  18. </view>
  19. <view class="query" @click="handleshowFilter">
  20. <view style="margin-right: 10rpx;">筛选</view>
  21. <u-icon name="arrow-down-fill" color="#aaa" size="10" ></u-icon>
  22. </view>
  23. </view>
  24. <view class="clue_state_wrap">
  25. <scroll-view scroll-x="true">
  26. <view class="clue_state_list">
  27. <view @click="handleClueStateClick(item)" v-for="(item, index) in clueStateList " :key="index"
  28. class="clue_state_item" :class="{ active : queryParams.clueState === item.clueState }">
  29. <text>{{item.clueStateName}}</text>
  30. <text>({{item.count}})</text>
  31. </view>
  32. </view>
  33. </scroll-view>
  34. </view>
  35. <view class="case_wrap">
  36. <show-emtry v-if="listData.length === 0"></show-emtry>
  37. <view class="case_main_wrap" v-else>
  38. <post v-for="(item,index) in listData" :key="item.id + index" :item="item" :dicts="dicts"
  39. :type="queryParams.type" @click.native="handleToDetail(item)" @inquirySuccess="inquirySuccess">
  40. </post>
  41. <u-loadmore :status="finished ? 'nomore' : loadStatus" icon line />
  42. </view>
  43. </view>
  44. <sort ref="sort" v-model="queryParams" @getList="resetData" :mapHeight="mapHeight"></sort>
  45. <filter-query ref="filter" v-model="queryParams" @getList="resetData" :mapHeight="mapHeight"
  46. :dicts="dicts"></filter-query>
  47. <group-select class="clueTagsSelect" :list="clueTagGroupVoList" scrollHeight="720rpx" groupName="groupName"
  48. groupChild="clueTagDataList" label-key="name" value-key="id" placeholder="请选择线索标签"
  49. v-model="queryParams.allTagList" multiple clearable ref="clueTag"
  50. @confirm="handleClueTagConfirm"></group-select>
  51. <trend ref="trendRef"></trend>
  52. <view class="suspension_button trend" @click="handleTrend">
  53. 趋势
  54. </view>
  55. <view class="suspension_button" @click="handleAddClue">
  56. 新增
  57. </view>
  58. </view>
  59. </template>
  60. <script>
  61. import clue from "@/pages/clue/mixins/clue.js";
  62. import post from "@/pages/clue/post/index.vue";
  63. import sort from "@/pages/clue/components/sort.vue";
  64. import filterQuery from "@/pages/clue/components/filterQuery.vue";
  65. import trend from '@/pages/clue/components/trend.vue'
  66. export default {
  67. onPullDownRefresh() {
  68. uni.stopPullDownRefresh();
  69. this.resetData();
  70. },
  71. components: {
  72. post,
  73. sort,
  74. filterQuery,
  75. trend,
  76. },
  77. mixins: [clue],
  78. onLoad(option) {
  79. this.queryParams.type = 2;
  80. },
  81. }
  82. </script>
  83. <style lang="scss" scoped>
  84. @import "@/pages/clue/scss/clue.scss";
  85. </style>