123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- <template>
- <el-dialog
- class="common-dialog"
- title="关联会员"
- :visible="showDialog"
- @close="close"
- width="750px"
- destroy-on-close
- >
- <el-form ref="form" v-if="!memberInfo.id" class="form" :model="form" label-width="100px">
- <el-form-item label="会员关键字" class="form-item" prop="keyword">
- <el-input
- class="input-item"
- v-model="form.keyword"
- v-focus
- placeholder="请输入会员手机号码、会员名称或扫码会员二维码"
- clearable
- maxlength="200"
- />
- </el-form-item>
- </el-form>
- <div class="member-info" v-if="memberInfo.id">
- <div class="item">
- <img class="avatar" v-if="memberInfo.avatar" :src="memberInfo.avatar" />
- <img class="avatar" v-if="!memberInfo.avatar" src="@/assets/images/avatar.png" />
- <div class="value">会员名称:{{ memberInfo.name }}</div>
- <div class="value">会员性别:{{ memberInfo.sex == '1' ? '男' : '女' }}</div>
- </div>
- <div class="item">
- <div class="value">手机号码:{{ memberInfo.mobile ? memberInfo.mobile : '暂无' }}</div>
- <div class="value">会员号码:{{ memberInfo.userNo ? memberInfo.userNo : '暂无' }}</div>
- </div>
- <div class="item">
- <div class="value">
- 可用余额:{{ memberInfo.balance ? memberInfo.balance.toFixed(2) : '0.00' }}(元)
- </div>
- <div class="value">可用积分:{{ memberInfo.point ? memberInfo.point : '0' }}</div>
- </div>
- </div>
- <div slot="footer" class="dialog-footer">
- <el-button v-if="!memberInfo.id" @click="doSubmit()">切换游客</el-button>
- <el-button type="primary" class="main-button" v-if="!memberInfo.id" @click="doQuery()">
- 查询会员
- </el-button>
- <el-button v-if="memberInfo.id" @click="cancel()">重新查询</el-button>
- <el-button type="danger" v-if="memberInfo.id" @click="doSubmit()">确认会员</el-button>
- </div>
- </el-dialog>
- </template>
- <script>
- import { getMemberInfo } from '@/api/cashier'
- export default {
- props: {
- showDialog: {
- type: [Boolean],
- default: () => false,
- },
- },
- // 自动获取焦点
- directives: {
- focus: {
- inserted: function (el) {
- el.querySelector('input').focus()
- },
- },
- },
- watch: {
- showDialog(value) {
- if (value) {
- this.memberInfo = {}
- this.form.keyword = ''
- }
- },
- },
- data() {
- return {
- loading: false,
- form: { keyword: '' },
- memberInfo: {},
- }
- },
- methods: {
- doQuery() {
- const app = this
- const keyword = this.form.keyword.trim()
- if (keyword.length > 0) {
- getMemberInfo({ keyword: this.form.keyword.trim() })
- .then((response) => {
- if (response.data.memberInfo) {
- app.memberInfo = response.data.memberInfo
- } else {
- app.$alert('未查询到该会员信息,请确认!')
- return false
- }
- })
- .catch(() => {
- // empty
- })
- } else {
- app.$alert('请先输入会员关键字!')
- }
- },
- doSubmit() {
- const app = this
- if (app.memberInfo.id) {
- app.$emit('doSwitchMember', app.memberInfo)
- } else {
- app.$emit('doSwitchMember', null)
- }
- },
- cancel() {
- this.memberInfo = {}
- },
- close() {
- this.$emit('doSwitchMember', 0)
- },
- },
- }
- </script>
- <style scoped>
- .form {
- margin-top: 30px;
- }
- .input-item >>> .el-input__inner {
- border: #113a28 solid 2px;
- line-height: 50px;
- height: 50px;
- }
- .form-item >>> .el-form-item__label {
- line-height: 50px;
- height: 50px;
- }
- .member-info {
- border: solid 1px #cccccc;
- padding: 20px;
- border-radius: 4px;
- cursor: pointer;
- }
- .member-info .item {
- height: 20px;
- }
- .member-info .item .avatar {
- height: 60px;
- width: 60px;
- border-radius: 30px;
- border: solid 1px #cccccc;
- float: left;
- }
- .member-info .item .value {
- float: left;
- margin-left: 10px;
- width: 200px;
- }
- </style>
|