初始上传
This commit is contained in:
242
addon/cashier/source/os/components/ns-select-member/index.js
Executable file
242
addon/cashier/source/os/components/ns-select-member/index.js
Executable file
@@ -0,0 +1,242 @@
|
||||
import {getMemberList,getMemberInfoById, getMemberLevelList, addMember, searchMemberByMobile} from '@/api/member.js';
|
||||
import {mapGetters} from 'vuex';
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
searchText: '',
|
||||
page: 1,
|
||||
memberList: [],
|
||||
memberId: '',
|
||||
memberData: {
|
||||
sex: 0,
|
||||
mobile: '',
|
||||
nickname: '',
|
||||
birthday: '',
|
||||
member_level: '',
|
||||
member_level_name: ''
|
||||
},
|
||||
memberLevelList: [], // 会员等级
|
||||
sex: [{
|
||||
text: '未知',
|
||||
value: 0
|
||||
}, {
|
||||
text: '男',
|
||||
value: 1
|
||||
}, {
|
||||
text: '女',
|
||||
value: 2
|
||||
}],
|
||||
memberType: 'login',
|
||||
flag: false,
|
||||
inputFocus: false,
|
||||
isPhone: false,
|
||||
searchFinish: false // 搜索是否完成
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getMemberLevel();
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['memberSearchWayConfig'])
|
||||
},
|
||||
watch: {
|
||||
memberSearchWayConfig: {
|
||||
immediate: true,
|
||||
handler(newVal, oldVal) {
|
||||
if(newVal) {
|
||||
if(newVal.way == 'list'){
|
||||
this.getMemberListFn();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
searchMemberInputBlur(){
|
||||
this.inputFocus = false;
|
||||
//强制聚焦处理
|
||||
if(this.memberType = 'login'){
|
||||
this.$nextTick(() => {
|
||||
this.inputFocus = true;
|
||||
});
|
||||
}
|
||||
},
|
||||
open(callback) {
|
||||
this.memberId = this.globalMemberInfo ? this.globalMemberInfo.member_id + '' : '';
|
||||
this.$refs.memberPopup.open('', callback);
|
||||
this.inputFocus = true;
|
||||
this.searchFinish = false;
|
||||
},
|
||||
// 查询会员列表
|
||||
searchMemberByMobileFn() {
|
||||
setTimeout(() => {
|
||||
if (!this.searchText) return false;
|
||||
searchMemberByMobile({
|
||||
mobile: this.searchText
|
||||
}).then((res) => {
|
||||
if (res.code >= 0) {
|
||||
this.$store.commit('app/setGlobalMemberInfo', res.data);
|
||||
this.initData();
|
||||
this.$refs.memberPopup.close();
|
||||
} else {
|
||||
if (res.data > 1) {
|
||||
this.$util.showToast({
|
||||
title: res.message
|
||||
});
|
||||
return false;
|
||||
}
|
||||
var regex = /^1[3-9]\d{9}$/;
|
||||
if (res.data == 0 && regex.test(this.searchText)) {
|
||||
this.isPhone = true;
|
||||
this.$refs.emptyPopup.open();
|
||||
return false;
|
||||
}
|
||||
if (res.data == 0) {
|
||||
this.isPhone = false;
|
||||
this.$refs.emptyPopup.open();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
}, 200)
|
||||
},
|
||||
getMemberInfo(memberId, callback) {
|
||||
this.memberId = memberId;
|
||||
getMemberInfoById(memberId).then(res => {
|
||||
if (res.code == 0 && res.data) {
|
||||
this.$store.commit('app/setGlobalMemberInfo', res.data);
|
||||
if (callback) callback();
|
||||
this.initData();
|
||||
this.$refs.memberPopup.close();
|
||||
} else {
|
||||
this.$util.showToast({
|
||||
title: '未获取到会员信息'
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
/******************************** 录入会员 ********************************/
|
||||
getMemberLevel() {
|
||||
this.memberLevelList = [];
|
||||
getMemberLevelList().then(res => {
|
||||
if (res.code == 0 && res.data) {
|
||||
for (let i in res.data) {
|
||||
this.memberLevelList.push({
|
||||
label: res.data[i]['level_name'],
|
||||
value: res.data[i]['level_id'].toString(),
|
||||
disabled: false
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
// 选择会员等级
|
||||
selectMemberLevel(index, item) {
|
||||
if (index >= 0) {
|
||||
this.memberData.member_level = item.value;
|
||||
this.memberData.member_level_name = item.label;
|
||||
} else {
|
||||
this.memberData.member_level = '';
|
||||
this.memberData.member_level_name = '';
|
||||
}
|
||||
this.$forceUpdate();
|
||||
},
|
||||
// 选择时间
|
||||
changeTime(e) {
|
||||
this.memberData.birthday = e;
|
||||
},
|
||||
verify() {
|
||||
if (!this.memberData.mobile) {
|
||||
this.$util.showToast({
|
||||
title: '请输入会员手机号'
|
||||
});
|
||||
return false;
|
||||
}
|
||||
if (!this.$util.verifyMobile(this.memberData.mobile)) {
|
||||
this.$util.showToast({
|
||||
title: '请输入正确的手机号码'
|
||||
});
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
// 确定录入
|
||||
addMemberFn() {
|
||||
if (this.verify()) {
|
||||
if (this.flag) return;
|
||||
this.flag = true;
|
||||
addMember(this.memberData).then(res => {
|
||||
if (res.code == 0 && res.data) {
|
||||
this.memberType = 'login';
|
||||
this.getMemberInfo(res.data)
|
||||
} else {
|
||||
this.$util.showToast({
|
||||
title: res.message
|
||||
});
|
||||
}
|
||||
this.flag = false;
|
||||
})
|
||||
}
|
||||
},
|
||||
closedFn() {
|
||||
this.memberType = "login";
|
||||
this.$refs.memberPopup.close();
|
||||
},
|
||||
memberEmptyRegister() {
|
||||
this.memberType = "register";
|
||||
this.memberData.mobile = this.searchText;
|
||||
this.$refs.emptyPopup.close();
|
||||
},
|
||||
initData() {
|
||||
this.searchText = '';
|
||||
this.memberData.sex = 0;
|
||||
this.memberData.mobile = '';
|
||||
this.memberData.nickname = '';
|
||||
this.memberData.birthday = '';
|
||||
this.memberData.member_level = '';
|
||||
this.memberData.member_level_name = '';
|
||||
},
|
||||
stayTuned() {
|
||||
this.$util.showToast({
|
||||
title: '敬请期待'
|
||||
});
|
||||
},
|
||||
getMemberListFn(isSearch){
|
||||
getMemberList({
|
||||
page: this.page,
|
||||
page_size: 12,
|
||||
search_text: this.searchText
|
||||
}).then((res)=>{
|
||||
if (res.code >= 0) {
|
||||
if (this.page == 1) this.memberList = [];
|
||||
this.memberList = this.memberList.concat(res.data.list);
|
||||
this.memberList.forEach((item) => {
|
||||
if (item.mobile) {
|
||||
if (this.userInfo && this.userInfo.is_admin == 0) {
|
||||
// 非管理员,不能查看会员手机号
|
||||
item.mobile = item.mobile.substring(0, 4 - 1) + '****' + item.mobile.substring(6 + 1);
|
||||
}
|
||||
} else {
|
||||
item.mobile = '--';
|
||||
}
|
||||
});
|
||||
|
||||
if (isSearch) {
|
||||
// 默认选中第一个搜索结果
|
||||
this.memberId = 0;
|
||||
if (this.memberList.length) {
|
||||
this.memberId = this.memberList[0].member_id;
|
||||
}
|
||||
}
|
||||
this.searchFinish = true;
|
||||
if (res.data.page_count >= this.page) this.page++;
|
||||
}
|
||||
})
|
||||
},
|
||||
searchMemberByList(){
|
||||
this.page = 1;
|
||||
this.getMemberListFn(Boolean(this.searchText));
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user