274 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			274 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			Vue
		
	
	
	
| <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> |