| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373 |
- export default {
- data() {
- return {
- activeStyle: {
- width: '.5rem',
- transform: 'translateX(0rem)'
- },
- memberId: 0,
- searchText: '',
- type: 'card',
- memberCoupon: [],
- startDate: '1900-1-1',
- sex: [{
- text: '未知',
- value: 0
- },
- {
- text: '男',
- value: 1
- }, {
- text: '女',
- value: 2
- },
- ],
- memberData: {
- sex: 0,
- mobile: '',
- nickname: '',
- birthday: '',
- headimg: '',
- member_level: 0,
- member_level_name: '',
- },
- flag: false,
- memberCardData: {
- page: 0,
- total: 1,
- list: [],
- index: 0,
- currData: {},
- selected: {}
- },
- itemNum: 1,
- memberLevelList: [],
- }
- },
- mounted() {
- this.mediaQueryOb = uni.createMediaQueryObserver(this)
- this.mediaQueryOb.observe({
- maxWidth: 1500
- }, matches => {
- if (matches) this.itemNum = 1;
- })
- this.mediaQueryOb.observe({
- minWidth: 1501,
- maxWidth: 1900,
- }, matches => {
- if (matches) this.itemNum = 2;
- })
- this.mediaQueryOb.observe({
- minWidth: 1901,
- }, matches => {
- if (matches) this.itemNum = 3;
- })
- },
- created() {
- this.getMemberLevel();
- },
- methods: {
- 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();
- },
- // 添加图片
- addImg(i) {
- this.$util.upload(1, {
- path: 'headimg'
- }, res => {
- if (res.length > 0) {
- this.memberData.headimg = res[0];
- this.$forceUpdate();
- }
- });
- },
- getMemberLevel() {
- this.memberLevelList = [];
- this.$api.sendRequest({
- url: '/cashier/storeapi/memberlevel/lists',
- success: 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
- });
- }
- }
- }
- });
- },
- addSwitch() {
- this.type = 'addmember';
- this.memberData = {
- sex: 0,
- mobile: this.searchText,
- nickname: '',
- birthday: '',
- headimg: '',
- member_level: '',
- member_level_name: '',
- }
- },
- addMember() {
- if (this.verify()) {
- if (this.flag) return;
- this.flag = true;
- let data = this.memberData;
- this.$api.sendRequest({
- url: '/cashier/storeapi/member/addMember',
- data: this.memberData,
- success: res => {
- if (res.code == 0 && res.data) {
- this.memberId = res.data;
- this.type = 'member';
- this.getMemberInfo();
- } else {
- this.$util.showToast({
- title: res.message
- })
- }
- this.flag = false;
- }
- });
- }
- },
- 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;
- },
- changeTime(e) {
- this.memberData.birthday = e;
- },
- recharge() {
- this.$util.redirectTo('/pages/recharge/index');
- },
- coupon() {
- this.type = 'coupon';
- this.memberCoupon = [];
- this.$api.sendRequest({
- url: '/cashier/storeapi/member/coupon',
- data: {
- member_id: this.info.member_id,
- page: 1,
- page_size: 0,
- state: 1
- },
- success: res => {
- if (res.code == 0 && res.data) {
- this.memberCoupon = res.data.list;
- }
- }
- });
- },
- searchMember() {
- if (!/[\S]+/.test(this.searchText)) {
- this.$util.showToast({
- title: '请输入搜索内容'
- })
- return;
- }
- this.$api.sendRequest({
- url: '/cashier/storeapi/member/searchmember',
- data: {
- search_text: this.searchText
- },
- success: res => {
- if (res.code == 0 && res.data) {
- this.memberId = res.data.member_id;
- this.searchText = '';
- this.getMemberInfo();
- } else {
- this.$util.showToast({
- title: '没有查询到对应会员'
- })
- }
- }
- });
- },
- searchMemberByType(searchText, searchType) {
- this.$api.sendRequest({
- url: '/cashier/storeapi/member/searchmember',
- data: {
- search_text: searchText,
- search_type: searchType
- },
- success: res => {
- if (res.code == 0 && res.data) {
- this.memberId = res.data.member_id;
- this.searchText = '';
- this.getMemberInfo();
- } else {
- this.$util.showToast({
- title: '没有查询到对应会员'
- })
- }
- }
- });
- },
- getMemberInfo() {
- this.$api.sendRequest({
- url: '/cashier/storeapi/member/info',
- data: {
- member_id: this.memberId
- },
- success: res => {
- if (res.code == 0 && res.data) {
- this.$store.commit('setMemberInfo', res.data);
- } else {
- this.$util.showToast({
- title: '未获取到会员信息'
- })
- }
- }
- })
- },
- /**
- * 获取会员项目
- */
- getMemberCard() {
- if (this.memberCardData.page + 1 > this.memberCardData.total) return;
- this.memberCardData.page += 1;
- this.$api.sendRequest({
- url: '/cardservice/storeapi/membercard/lists',
- data: {
- status: 1,
- page: this.memberCardData.page,
- member_id: this.info.member_id
- },
- success: res => {
- if (res.code == 0) {
- this.memberCardData.total = res.data.page_count || 1;
- if (this.memberCardData.page == 1) {
- this.memberCardData.list = [];
- if (res.data.count) this.selectMemberCard(res.data.list[0], 0);
- }
- if (res.data.list.length) this.memberCardData.list = this.memberCardData.list
- .concat(res.data.list);
- }
- }
- })
- },
- /**
- * 选择会员套餐
- * @param {Object} data
- * @param {Object} index
- */
- selectMemberCard(data, index) {
- this.memberCardData.index = index;
- this.memberCardData.currData = this.$util.deepClone(data);
- this.memberCardData.selected = {};
- },
- /**
- * 选择会员套餐商品项
- * @param {Object} data
- * @param {Object} index
- */
- selectMemberCardItem(data, index) {
- if (this.memberCardData.selected['item_' + data.item_id]) {
- if (data.card_type == 'commoncard') {
- this.memberCardData.currData.total_use_num -= this.memberCardData.selected['item_' + data.item_id]
- .input_num;
- }
- delete this.memberCardData.selected['item_' + data.item_id];
- } else {
- if (!this.checkStatus(data)) return;
- this.memberCardData.selected['item_' + data.item_id] = this.$util.deepClone(data);
- this.memberCardData.selected['item_' + data.item_id].input_num = 1;
- this.memberCardData.selected['item_' + data.item_id].index = index;
- this.memberCardData.selected['item_' + data.item_id].card_name = this.memberCardData.currData
- .goods_name;
- if (data.card_type == 'commoncard') {
- this.memberCardData.currData.total_use_num += 1;
- }
- }
- this.$forceUpdate();
- },
- /**
- * 加入购物车
- */
- selectGoods() {
- if (!Object.keys(this.memberCardData.selected).length) return;
- let arr = [];
- Object.keys(this.memberCardData.selected).forEach((key) => {
- let data = this.memberCardData.selected[key];
- data.card_index = this.memberCardData.index;
- data.num = data.input_num;
- arr.push(this.$util.deepClone(data));
- this.memberCardData.list[this.memberCardData.index].total_use_num += data.input_num;
- this.memberCardData.list[this.memberCardData.index].item_list[data.index].use_num += data
- .input_num;
- this.memberCardData.currData.item_list[data.index].use_num += data.input_num;
- })
- this.$emit('selectGoods', arr);
- this.memberCardData.selected = {};
- },
- /**
- * 数量减
- * @param {Object} data
- */
- itemDec(data) {
- let currData = this.memberCardData.currData;
- if (this.memberCardData.selected['item_' + data.item_id].input_num > 1) {
- this.memberCardData.selected['item_' + data.item_id].input_num -= 1;
- if (data.card_type == 'commoncard') {
- currData.total_use_num -= 1;
- }
- this.$forceUpdate();
- }
- },
- /**
- * 数量加
- * @param {Object} data
- */
- itemInc(data) {
- let currData = this.memberCardData.currData;
- if (data.card_type == 'commoncard') {
- if ((currData.total_num - currData.total_use_num - 1) < 0) return;
- } else if (data.card_type != 'timecard') {
- if ((data.num - data.use_num - this.memberCardData.selected['item_' + data.item_id].input_num - 1) < 0)
- return;
- }
- if (data.card_type == 'commoncard') {
- currData.total_use_num += 1;
- }
- this.memberCardData.selected['item_' + data.item_id].input_num += 1;
- this.$forceUpdate();
- },
- checkStatus(data) {
- let currData = this.$util.deepClone(this.memberCardData.currData);
- if (data.card_type == 'commoncard') {
- return currData.total_num > currData.total_use_num;
- } else if (data.card_type != 'timecard') {
- return data.num > data.use_num;
- }
- return true;
- }
- }
- }
|