web-africa-h5/pages/special/goods/member.vue

274 lines
8.6 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view v-if="show">
<view class="pop-bg"></view>
<view class="pop-storebox">
<view class="pop-store">
<view class="d-c-c table-title f-s-0 ">
<view class="flex-1 tc text-ellipsis box-s-b" style="padding-left: 45rpx;">{{$t('CK_KS_14')}}</view>
<view class="flex-1 tc text-ellipsis">{{$t('MN_F_23')}}</view>
</view>
<scroll-view scroll-y="true" style="height: 800rpx;" @scrolltolower="scrolltolowerFunc"
lower-threshold="50">
<view class="d-b-c store-item" v-for="(item, index) in listData" :key="index"
@click.stop=" pkMakerSpace = item.pkId" :class="index % 2 == 0 ? '' : 'single-bg'">
<view class="flex-1 tc text-ellipsis f24 gray3">{{ item.memberName }}</view>
<view class="flex-1 tc text-ellipsis f24 gray3">{{ item.phone }}</view>
</view>
<view class="d-c-c p30" v-if="listData.length == 0 && !loading">
<text class="cont">{{ $t('w_0405') }}</text>
</view>
</scroll-view>
<view class="border-t bottom-btns d-c-c f-s-0">
<button class="bottom-btn left-btn" @click="close">{{$t('ENU_P_TYPE0')}}</button>
<!-- <button class="bottom-btn left-btn" @click="close">取消</button> -->
<!-- <button class="bottom-btn right-btn" @click="exportFun">{{$t('MN_T_8')}}</button> -->
</view>
</view>
</view>
</view>
</template>
<script>
import uniLoadMore from '@/components/uni-load-more.vue';
export default {
components: {
uniLoadMore
},
data() {
return {
show: false,
is_load: false,
form: {
pageNum: 1,
pageSize: 50
},
nameList: '',
/*最后一页码数*/
last_page: 0,
/*有没有等多*/
no_more: false,
/*是否正在加载*/
loading: false,
listData: [],
total: 0,
}
},
computed: {
/*加载中状态*/
loadingType() {
if (this.loading) {
return 1;
} else {
if (this.listData.length != 0 && this.no_more) {
return 2;
} else {
return 0;
}
}
},
},
methods: {
download() {
let baseUrl = this.websiteUrl();//服务器的ip
let url = `${baseUrl}/inter-api/member/api/member-special/special-export?recName=${this.form.recName}&recPhone=${this.form.recPhone}`
uni.downloadFile({
url: url, //仅为示例,并非真实的资源
header: {
'Authorization': 'Bearer ' + uni.getStorageSync('Admin-Token') || '',
'content-type': 'application/vnd.ms-excel'
},
responseType: 'blob',
method: 'POST',
success: (res) => {
if (res.statusCode === 200) {
console.log('下载成功');
//更改文件名称
// 拿到临时文件的绝对路径
let filepathss = plus.io.convertLocalFileSystemURL(res.tempFilePath);
// 通过这个路径来拿到他
plus.io.resolveLocalFileSystemURL(filepathss, function (entry) {
const tempFileName = entry.name;
entry.getParent(function (parentDicEntry) {
console.log(parentDicEntry.fullPath)
entry.moveTo({
fullPath: parentDicEntry.fullPath + '/'
}, '新的文件名字.xlsx', function (newFile) {
uni.openDocument({
fileType: 'xlsx',
filePath: newFile.fullPath,
success: function (res2) {
console.log('打开文档成功');
},
fail: function (err) {
if (err.errCode == 1 || err
.code == 1) {
uni.showToast({
title: `下载成功未找到能打开xlsx类型文件的手机应用`,
icon: 'none'
})
}
console.log(err)
}
});
}, function (moveError) {
uni.showToast({
title: `已在第三方应用中打开过,请在第三方应用查看时保存`,
icon: 'none'
})
})
})
})
}
}
});
},
/* exportFun() {
let self = this;
const params = {
recName: self.form.recName,
recPhone: self.form.recPhone,
}
self.download();
console.log('下载',self.form.recName,self.form.recPhone);
}, */
open(row) {
this.form.pageNum = 1;
this.form = Object.assign(this.form, row)
this.listData = [];
this.getData();
this.show = true;
},
close() {
this.show = false;
},
getData() {
let self = this;
self.loading = true;
let params = this.form;
self._get('member/api/member-special/special-list', params, res => {
self.loading = false;
self.listData = self.listData.concat(res.rows);
self.total = res.total;
if (self.total < self.form.pageNum * self.form.pageSize) {
self.no_more = true;
}
})
},
scrolltolowerFunc() {
let self = this;
if (self.no_more) {
return;
}
if (self.form.pageNum * self.form.pageSize < self.total) {
self.form.pageNum++;
self.getData();
} else {
self.no_more = true;
}
},
}
}
</script>
<style lang="scss">
.table-title {
width: 654rpx;
height: 68rpx;
background: #F3F3F3;
border: 1px solid #EEEEEE;
margin-top: 20rpx;
font-size: 26rpx;
color: #333;
}
.pop-storebox {
position: fixed;
transition-duration: 300ms;
transition-timing-function: ease-out;
z-index: 107;
position: fixed;
display: flex;
align-items: center;
justify-content: center;
inset: 0px;
}
.select-boxs {
width: 654rpx;
height: 68rpx;
background: #FFFFFF;
border: 1px solid #EEEEEE;
padding: 0 20rpx;
box-sizing: border-box;
line-height: 1;
}
.pop-store {
box-sizing: border-box;
border-radius: 20rpx;
height: 1070rpx;
width: 710rpx;
padding: 24rpx 25rpx 10rpx 25rpx;
background-color: #fff;
position: relative;
}
.bottom-btns {
padding: 49rpx 0;
}
.bottom-btn {
width: 312rpx;
height: 72rpx;
font-size: 28rpx;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
line-height: 1.5;
border-radius: 34rpx;
}
.bottom-btn.left-btn {
background: #eeeeee;
color: #333;
margin-right: 30rpx;
}
.bottom-btn.right-btn {
background: #FB3024;
color: #fff;
}
.single-bg {
background-color: rgba(#F3F3F3, 0.4);
}
.f-s-0 {
flex-shrink: 0;
}
.store-item {
height: 68rpx;
font-size: 24rpx;
color: #333;
}
.radio-check {
width: 36rpx;
height: 36rpx;
border: 1rpx solid #EEEEEE;
border-radius: 50%;
margin-left: 25rpx;
}
.radio-check-active {
width: 36rpx;
height: 36rpx;
border: 1rpx solid #e03030;
background-color: #e03030;
border-radius: 50%;
margin-left: 25rpx;
}
</style>