jiangping
2024-11-25 4e86fd38a29427a8bb50d73d8eb22f21dfb943d4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<template>
  <GlobalWindow title="选择客户" width="1000px" @close="close" :visible.sync="isShowMemberList">
    <div>
      <div class="df_ac mb20">
        <el-input v-model="modalSearchValue" placeholder="请输入客户名称" class="w400" @keyup.enter.native="queryList">
          <!-- <el-button slot="append" icon="el-icon-search" @click="queryList()" /> -->
        </el-input>
        <el-button class="ml10" type="primary" @click="queryList()">查询</el-button>
      </div>
      <el-table ref="table" v-loading="listLoading" :data="list" element-loading-text="Loading" border fit
        :header-row-class-name="'table-header'" class="doumee-element-table doumee-element-tableb"
        @row-click="rowClick">
 
        <el-table-column align="center" label="客户类型" prop="cardName" show-overflow-tooltip min-width="80" />
        <el-table-column align="center" label="客户名称" show-overflow-tooltip prop="remainingMoney" min-width="80" />
        <el-table-column align="center" label="联系人" show-overflow-tooltip prop="remainingGiveMoney" min-width="80" />
        <el-table-column label="联系电话" prop="createTime" min-width="100" align="center" />
        <el-table-column label="统一信用代码" prop="createTime" min-width="120" align="center" />
        <el-table-column label="营业期限" prop="createTime" min-width="100" align="center" />
        <el-table-column label="默认发票类型" prop="createTime" min-width="100" align="center" />
      </el-table>
      <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
    </div>
  </GlobalWindow>
</template>
 
<script>
import { memberList, memberDetailInfo } from '@/api'
import GlobalWindow from '@/components/common/GlobalWindow'
import dayjs from 'dayjs'
// import { debounce } from '@/utils/debounce'
 
import Pagination from '@/components/common/Pagination'
export default {
  components: {
    Pagination,
    GlobalWindow
  },
  props: {
    isShowChooseBtn: {
      type: Boolean,
      default: () => true
    },
    type: { // (10: 商品折扣  20: 订场折扣 30: 门票折扣 40: 套餐折扣 50:活动折扣 60:课程折扣)
      type: String,
      default: 'default'
    }
  },
  data() {
    return {
      searchValue: '',
      isShowMemberList: false,
      modalSearchValue: '',
      list: [],
      totalCount: 0,
      pagination: {
        pageSize: 10,
        page: 1,
        total: 0
      },
      listLoading: false,
 
    }
  },
  created() {
    // (10: 商品折扣  20: 订场折扣 30: 门票折扣 40: 套餐折扣 50:活动折扣 60:课程折扣)
  },
  methods: {
    clearSearch() {
      this.searchValue = ''
      this.modalSearchValue = ''
    },
    handleMemberSelect(item) {
      memberDetailInfo({ param: { memberId: item.id } }).then((res) => {
        if (res.errorCode !== '000000') return
        const obj = res.record || {}
        obj.searchValue = this.searchValue
        this.$emit('select', obj)
      })
    },
    clear() {
      this.searchValue = ''
      setTimeout(() => {
        this.$refs.searchValueRef.focus()
      })
      this.$emit('clear')
    },
    rowClick(item) {
      memberDetailInfo({ param: { memberId: item.id } }).then((res) => {
        if (res.errorCode !== '000000') return
        const obj = res.record || {}
        this.searchValue = obj.nickName
        obj.searchValue = this.modalSearchValue
        if (item.phone) {
          this.searchValue += '-' + item.phone
        }
        if (item.number) {
          this.searchValue += '(' + item.number + ')'
        }
        this.$emit('select', obj)
      })
      this.isShowMemberList = false
    },
    getList() {
      const { pagination, modalSearchValue } = this
      this.listLoading = true
      memberList({ pagination, param: { keyword: modalSearchValue } }).then((res) => {
        this.listLoading = false
        if (res.errorCode !== '000000') return
        this.list = res.recordList
        this.pagination.total = res.total || 0
        this.totalCount = res.totalCount
      }, () => {
        this.listLoading = false
      })
    },
    openModal() {
      this.modalSearchValue = ''
      // this.queryList()
      this.isShowMemberList = true
    },
    queryList() {
      this.pagination.page = 1
      this.getList()
    },
    currentChange(val) {
      this.pagination.page = val
      this.getList()
    },
    clear() {
      this.filters = {}
      this.pagination.pageSize = 10
      this.pagination.page = 1
      this.getList()
    },
    handleSizeChange(capacity) {
      this.pagination.pageSize = capacity
      this.getList()
    },
    close() {
      this.isShowMemberList = false
    }
  }
}
</script>
 
<style lang="scss" scoped>
.member_search_wrap {
  display: flex;
 
  ::v-deep .el-input__validateIcon {
    display: none !important;
  }
}
</style>