lilei преди 2 години
родител
ревизия
5e6014ebf3

+ 1 - 1
App.vue

@@ -5,7 +5,7 @@
 			token: '',
 			changeOrg:'',
 			version: '', // 当前版本号
-			buildType: 'uat', // 打包环境对应类型,pro 生产 uat 预发布 dev 本地开发
+			buildType: 'dev', // 打包环境对应类型,pro 生产 uat 预发布 dev 本地开发
 			envTips: '', // 环境文字提示
 			theme: 'default', // 主题,default
 			isIphoneXup: false //是否iphonex以及以上的版本

+ 29 - 0
api/approveStore.js

@@ -0,0 +1,29 @@
+import axios from '@/libs/axios.js'
+
+//  申请列表  分页
+export const xprhStoreApplyQueryPage = (params) => {
+  const url = `xprhStoreApply/queryPage/${params.pageNo}/${params.pageSize}`
+  delete params.pageNo
+  delete params.pageSize
+  return axios.request({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+// 审核
+export const xprhStoreApplyAudit = (params) => {
+  const url = `xprhStoreApply/audit`
+  return axios.request({
+    url: url,
+    data: params,
+    method: 'post'
+  })
+}
+// 门店认证详情
+export const xprhStoreApplyDetail = (params) => {
+  return axios.request({
+    url: `xprhStoreApply/findBySn/${params.sn}`,
+    method: 'get'
+  })
+}

+ 17 - 5
api/data.js

@@ -41,9 +41,21 @@ export const getLookUpItem = (params) => {
 
 // 查询省市区
 export const getArea = (params) => {
-  return axios.request({
-    url: `area/queryList`,
-    data: params,
-    method: 'post'
-  })
+  if(params.type == '2' || params.parentId){
+    return axios.request({
+      url: `/area/queryList`,
+      data: params,
+      method: 'post'
+    })
+  }
+}
+// 获取省市区,兼容小程序数据
+export const getAreaCgj = (params) => {
+  if(params.type == '2' || params.parentId){
+    return axios.request({
+      url: `areaCgj/queryList`,
+      data: params,
+      method: 'post'
+    })
+  }
 }

+ 11 - 5
components/address.vue

@@ -55,8 +55,7 @@
 </template>
 
 <script>
-	import { getProvince, getCityByPro, getDistrictByCity } from '@/api/data.js'
-	import {getArea} from '@/api/data.js'
+	import {getArea,getAreaCgj} from '@/api/data.js'
 	export default{
 		name: 'Address',
 		props: {
@@ -98,6 +97,10 @@
 				type: String,
 				default: '' // 按钮的字体大小
 			},
+			isJrMini: { 
+				type: Boolean,
+				default: false // 是否兼容小程序数据
+			}
 		},
 		data(){
 			return{
@@ -228,7 +231,8 @@
 			//  获取省下拉数据
 			getProvinceList(idArr){
 				const _this = this
-				getArea({type:"2"}).then(res => {
+				const fun = this.isJrMini ? getAreaCgj : getArea;
+				fun({type:"2"}).then(res => {
 				  if (res.code == 200 || res.status == 204 || res.status == 200) {
 				    _this.provinceDataList = res.data || []  //  省下拉数据
 					//  判断是否有默认值
@@ -251,7 +255,8 @@
 				_this.cityDataList = []
 				_this.areaDataList = []
 				if (val != null && val != '') {
-					getArea({parentId: val,type:3}).then(res => {
+					const fun = this.isJrMini ? getAreaCgj : getArea;
+					fun({parentId: val,type:3}).then(res => {
 						if (res.code == 200 || res.status == 204 || res.status == 200) {
 							_this.cityDataList = res.data || []  //  市下拉数据
 							//  判断是否有默认值
@@ -273,7 +278,8 @@
 				const _this = this
 				this.areaDataList = []
 				if (val != null && val != '') {
-					getArea({parentId: val,type:4}).then(res => {
+					const fun = this.isJrMini ? getAreaCgj : getArea;
+					fun({parentId: val,type:4}).then(res => {
 						if (res.code == 200 || res.status == 204 || res.status == 200) {
 							_this.areaDataList = res.data || []
 							//  判断是否有默认值

+ 1 - 1
config/index.js

@@ -6,7 +6,7 @@ const getConfig = (theme) => {
 			themePath: 'default',
 			pro_URL: 'https://iscm.360arrow.com/qpls-md/', // 生产地址
 			uat_URL: 'http://p.iscm.360arrow.com/qpls-md/', // 预发布地址
-			dev_URL: 'http://192.168.16.103:8503/qpls-md/', // 本地地址
+			dev_URL: 'http://192.168.0.102/qpls-md/', // 本地地址
 			appName: 'iSCM智慧供应链', // app 名称
 			company: '陕西山海高科信息技术有限公司',
 			loadText:{

+ 27 - 0
pages.json

@@ -313,6 +313,33 @@
             }
             
         }
+        ,{
+            "path" : "pages/approveStore/list",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "门店审核",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/approveStore/authPass",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "审核通过",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/approveStore/detail",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "门店审核详情",
+                "enablePullDownRefresh": false
+            }
+            
+        }
     ],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",

+ 253 - 0
pages/approveStore/authPass.vue

@@ -0,0 +1,253 @@
+<template>
+	<view class="apply-wrap flex flex_column">
+		<view class="login-form">
+			<u-form :model="form" label-width="180rpx" :error-type="['toast']" ref="uForm">
+				<u-form-item label="门头照片" required prop="storeImage">
+					<u-upload 
+					@on-success="uploadStorePhoto" 
+					@on-remove="removeStorePhoto" 
+					:file-list="storePhotoList" 
+					:action="action" 
+					:max-size="2 * 1024 * 1024" 
+					:width="200"
+					:height="150"
+					upload-text="上传门头照片"
+					max-count="1"></u-upload>
+				</u-form-item>
+				<u-form-item label="营业执照">
+					<u-upload
+					@on-success="uploadYyzzPhoto" 
+					@on-remove="removeYyzzPhoto" 
+					:file-list="yyzzPhotoList" 
+					:action="action" 
+					:max-size="2 * 1024 * 1024" 
+					:width="200"
+					:height="150"
+					upload-text="上传营业执照"
+					max-count="1"></u-upload>
+				</u-form-item>
+				<u-form-item label="门店名称" required prop="storeName">
+					<u-input v-model="form.storeName" maxlength="30" placeholder="请输入门店名称(最多30个字符)"/>
+				</u-form-item>
+				<u-form-item label="所在地区" required prop="label">
+					<u-input v-model="form.label" placeholder="请选择省市区" :disabled="true" @click="openAddress"/>
+					<Address ref="applyAddress" :isJrMini="true" @onConfirm="areaConfirm"></Address>
+				</u-form-item>
+				<u-form-item label="详细地址" required prop="addrDetail">
+					<u-input v-model="form.addrDetail" placeholder="请输入详细地址"/>
+				</u-form-item>
+				<u-form-item label="联系人姓名" required prop="contactName">
+					<u-input v-model="form.contactName" placeholder="请输入联系人姓名"/>
+				</u-form-item>
+				<u-form-item label="联系人手机">
+					{{form.contactPhone}}
+				</u-form-item>
+				<u-form-item label="关联客户" required prop="customerSn">
+					<u-input v-model="form.customerName" type="select" placeholder="请输入选择关联客户" @click="chooseCustome" />
+				</u-form-item>
+				<u-form-item label="结算方式" required prop="settleType">
+					<u-input v-model="form.settleTypeDictValue" type="select" @click="settleStyleModal = true" />
+					<u-picker v-model="settleStyleModal" @confirm="settleStyleChange" :range="settleStyleList" range-key="dispName" mode="selector"></u-picker>
+				</u-form-item>
+				<u-form-item label="授信金额" required prop="creditLimit">
+					<u-input type="number" :min="100" v-model.trim="form.creditLimit" placeholder="请输入大于100的数字,最多两位小数"/>
+				</u-form-item>
+			</u-form>
+		</view>
+		<view class="form-btn-con flex justify_center">
+			<u-button class="form-btn" shape="circle" :loading="loading" type="info" :custom-style="{ background: '#066cff', color: '#fff',width:'350rpx' }" @click="formSubmit">审核通过</u-button>
+		</view>
+	</view>
+</template>
+
+<script>
+	import Address from '@/components/address.vue'
+	import { xprhStoreApplyDetail, xprhStoreApplyAudit } from '@/api/approveStore'
+	import { clzConfirm } from '@/libs/tools';
+	const baseUrl = getApp().globalData.baseUrl
+	export default{
+		components: {
+			Address,
+		},
+		data(){
+			return{
+				loading: false,
+				theme: '',
+				form: {
+					storeName: '', // 门店名称
+					contactPhone: '', //  联系手机
+					contactName: '', //  联系人
+					addrProvince: undefined, //  省
+					addrProvinceName: '',
+					addrCity: undefined, // 市
+					addrCityName: '',
+					addrDistrict: undefined, // 区
+					addrDistrictName: '',
+					addrDetail: '', //  详细地址
+					storeImage: '', // 门头照片
+					licenseImage: '', // 营业执照
+					settleType: undefined, //  结算方式
+					settleTypeDictValue: undefined,
+					customerSn: undefined, //  关联客户
+					customerName: undefined,
+					creditLimit: '', //  授信额度
+					delearSn: undefined,
+					applySn: undefined,
+					auditStatus: 'PASS' // 通过
+				},
+				rules: {
+					storeName: [{ required: true, message: '请输入门店名称', trigger: 'blur' }],
+					contactMobile: [{ required: false, pattern: /^\d{30}$/, message: '请输入正确的手机号', trigger: 'blur' }],
+					addrProvince: [{ required: true, message: '请选择省', trigger: 'change' }],
+					addrCity: [{ required: true, message: '请选择市', trigger: 'change' }],
+					addrDistrict: [{ required: true, message: '请选择区/县', trigger: 'change' }],
+					addrDetail: [{ required: true, message: '请输入详细地址', trigger: 'change' }],
+					contactName: [{ required: true, message: '请输入联系人姓名', trigger: 'change' }],
+					settleType: [{ required: true, message: '请选择收结算方式', trigger: 'change' }],
+					customerSn: [{ required: true, message: '请选择关联客户', trigger: 'change' }],
+					creditLimit: [{ required: true, message: '请输入授信额度', trigger: 'change' }],
+				},
+				areaIdArr: [],  //  省市区id数组
+				labelArr: [],
+				action: baseUrl + '/upload',
+				storePhotoList: [],
+				yyzzPhotoList: [],
+				settleStyleModal: false,
+				settleStyleList: []
+			}
+		},
+		// 必须要在onReady生命周期,因为onLoad生命周期组件可能尚未创建完毕
+		onReady() {
+			this.$refs.uForm.setRules(this.rules);
+		},
+		onLoad(options) {
+			const _this = this
+			this.applySn = options.sn
+			this.getDetail()
+			this.settleStyleList = this.$store.state.vuex_shelfSettleType
+			
+			// 选择关联客户
+			uni.$on("addCustome",function(data){
+				_this.form.customerSn = data.customerSn
+				_this.form.customerName = data.customerName
+			})
+		},
+		onUnload() {
+			uni.$off("addCustome")
+		},
+		methods: {
+			//  获取详细
+			getDetail () {
+			  xprhStoreApplyDetail({ sn: this.applySn }).then(res => {
+			    if (res.status == 200) {
+			      this.form = Object.assign(this.form, res.data)
+			      this.storePhotoList = this.form.storeImage ? [{url:this.form.storeImage}] : []
+			      this.yyzzPhotoList = this.form.licenseImage ? [{url:this.form.licenseImage}] : [],
+			      this.labelArr = [this.form.addrProvinceName,this.form.addrCityName,this.form.addrDistrictName]
+			      this.areaIdArr = [this.form.addrProvince,this.form.addrCity,this.form.addrDistrict]
+			      this.form.label = this.labelArr.join('-')
+			      this.form.auditStatus = 'PASS' // 通过
+			    } else {
+			      this.$refs.ruleForm.resetFields()
+			    }
+			  })
+			},
+			// 上传门店图片成功
+			uploadStorePhoto(res){
+				this.form.storeImage = res.data
+			},
+			// 删除门店图片
+			removeStorePhoto(index){
+				this.form.storeImage = ''
+			},
+			// 上传营业执照图片成功
+			uploadYyzzPhoto(res){
+				this.form.licenseImage = res.data
+			},
+			// 删除营业执照图片
+			removeYyzzPhoto(index){
+				this.form.licenseImage = ''
+			},
+			// 收款方式  change
+			settleStyleChange(ind){
+				this.form.settleType = this.settleStyleList[ind].code || undefined
+				this.form.settleTypeDictValue = this.settleStyleList[ind].dispName || undefined
+			},
+			// 选择关联客户
+			chooseCustome(){
+				uni.navigateTo({
+					url: "/pages/sales/chooseCustomer?backPage=authPass"
+				})
+			},
+			//  表单提交
+			formSubmit(){
+				const _this = this
+				this.$refs.uForm.validate(valid => {
+					if (valid) {
+						if(_this.form.creditLimit >= 100){
+							clzConfirm({
+							  title: '提示',
+							  content: '审核通过后,即可成为认证门店,确认审核通过吗?',
+							  success: function(res) {
+							  	if (res.confirm || res.index == 0) {
+								  _this.submitData()
+							  	}
+							  }
+							})
+						}else{
+							uni.showToast({icon: 'none',title: "授信金额必需大于等于100"})
+						}
+					} else {
+						console.log('验证失败');
+					}
+				});
+			},
+			submitData(){
+				let obj = this.form
+				obj.addrProvince = this.areaIdArr[0]  //  省id
+				obj.addrCity = this.areaIdArr[1]  //  市id
+				obj.addrDistrict = this.areaIdArr[2]  //  区id
+				obj.addrProvinceName = this.labelArr[0]  //  省
+				obj.addrCityName = this.labelArr[1]  //  市
+				obj.addrDistrictName = this.labelArr[2]  //  区
+				this.loading = true
+				//  申请试用
+				xprhStoreApplyAudit(obj).then(res => {
+					console.log(res)
+					if(res.status == 200){
+						 uni.navigateBack()
+						 uni.$emit("updateAuthState")
+					}
+					uni.showToast({icon: 'none',title: res.message})
+					this.loading = false
+				})
+			},
+			//  选择省区市
+			areaConfirm(e) {
+				console.log('已选择的省市区', e)
+				this.labelArr = e.labelArr
+				this.areaIdArr = [ e.provinceCode, e.cityCode, e.areaCode ]
+				this.form.label = e.label
+			},
+			openAddress(){
+				//  省市区  回显     参数为省市区id数组
+				this.$refs.applyAddress.open(this.areaIdArr)
+			},
+		}
+	}
+</script>
+<style scoped lang="scss">
+	.apply-wrap{
+		width:100%;
+		height: 100vh;
+		background-color: #fff;
+		.login-form{
+			padding: 0.7rem 1.5rem;
+			flex-grow: 1;
+			overflow: auto;
+		}
+		.form-btn-con{
+			padding: 1rem;
+		}
+	}
+</style>

+ 122 - 0
pages/approveStore/detail.vue

@@ -0,0 +1,122 @@
+<template>
+	<view class="apply-wrap flex flex_column" v-if="form" >
+		<view class="title flex align_center justify_center">
+			<u-icon :name="form.auditStatus == 'PASS'?'icon_complete':(form.auditStatus == 'WAIT'?'wait':'icon_cancel')" custom-prefix="iscm-icon" size="40"></u-icon>
+			<text style="margin-left: 0.5rem;">{{form.auditStatusDictValue}}</text>
+		</view>
+		<view class="login-form">
+			<u-form :model="form" label-width="180rpx" :error-type="['toast']" ref="uForm">
+				<u-form-item label="门头照片">
+					<u-image :src="form.storeImage" width="200" height="150"></u-image>
+				</u-form-item>
+				<u-form-item label="营业执照">
+					<u-image v-if="form.licenseImage" :src="form.licenseImage" width="200" height="150"></u-image>
+					<text v-else>未上传</text>
+				</u-form-item>
+				<u-form-item label="门店名称">
+					{{form.storeName||'--'}}
+				</u-form-item>
+				<u-form-item label="所在地区">
+					{{form.label||'--'}}
+				</u-form-item>
+				<u-form-item label="详细地址">
+					{{form.addrDetail||'--'}}
+				</u-form-item>
+				<u-form-item label="联系人姓名">
+					{{form.contactName||'--'}}
+				</u-form-item>
+				<u-form-item label="联系人手机">
+					{{form.contactPhone||'--'}}
+				</u-form-item>
+				<u-form-item label="关联客户" v-if="form.auditStatus != 'WAIT'">
+					{{form.customerName||'--'}}
+				</u-form-item>
+				<u-form-item label="结算方式" v-if="form.auditStatus != 'WAIT'">
+					{{form.settleTypeDictValue||'--'}}
+				</u-form-item>
+				<u-form-item label="授信金额" v-if="form.auditStatus != 'WAIT'">
+					{{form.creditLimit||'--'}}
+				</u-form-item>
+			</u-form>
+		</view>
+	</view>
+</template>
+
+<script>
+	import { xprhStoreApplyDetail } from '@/api/approveStore'
+	export default{
+		data(){
+			return{
+				loading: false,
+				theme: '',
+				form: {
+					storeName: '', // 门店名称
+					contactPhone: '', //  联系手机
+					contactName: '', //  联系人
+					addrProvince: undefined, //  省
+					addrProvinceName: '',
+					addrCity: undefined, // 市
+					addrCityName: '',
+					addrDistrict: undefined, // 区
+					addrDistrictName: '',
+					addrDetail: '', //  详细地址
+					storeImage: '', // 门头照片
+					licenseImage: '', // 营业执照
+					settleType: undefined, //  结算方式
+					settleTypeDictValue: undefined,
+					customerSn: undefined, //  关联客户
+					customerName: undefined,
+					creditLimit: '', //  授信额度
+					delearSn: undefined,
+					applySn: undefined,
+					auditStatus: undefined // 审核状态
+				},
+				rules: {},
+				areaIdArr: [],  //  省市区id数组
+				labelArr: [],
+				storePhotoList: [],
+				yyzzPhotoList: [],
+				settleStyleList: []
+			}
+		},
+		onLoad(options) {
+			const _this = this
+			this.applySn = options.sn
+			this.getDetail()
+			this.settleStyleList = this.$store.state.vuex_shelfSettleType
+		},
+		methods: {
+			//  获取详细
+			getDetail () {
+			  xprhStoreApplyDetail({ sn: this.applySn }).then(res => {
+			    if (res.status == 200) {
+			      this.form = Object.assign(this.form, res.data)
+			      this.labelArr = [this.form.addrProvinceName,this.form.addrCityName,this.form.addrDistrictName]
+			      this.areaIdArr = [this.form.addrProvince,this.form.addrCity,this.form.addrDistrict]
+			      this.form.label = this.labelArr.join('-')
+			    } else {
+			      this.$refs.ruleForm.resetFields()
+			    }
+			  })
+			},
+		}
+	}
+</script>
+<style scoped lang="scss">
+	.apply-wrap{
+		width:100%;
+		height: 100vh;
+		background-color: #fff;
+		.title{
+			text-align: center;
+			font-size: 1.2rem;
+			border-bottom: 0.5rem solid #f8f8f8;
+			padding: 0.5rem;
+		}
+		.login-form{
+			padding: 0.7rem 1.5rem;
+			flex-grow: 1;
+			overflow: auto;
+		}
+	}
+</style>

+ 278 - 0
pages/approveStore/list.vue

@@ -0,0 +1,278 @@
+<template>
+	<view class="pagesCons">
+		<view class="utabs">
+			<u-tabs-swiper ref="uTabs" :list="tabList" name="dispName" :current="current" @change="tabsChange" :is-scroll="false" swiperWidth="750"></u-tabs-swiper>
+			<view class="message">我的邀请码:1A2B <copyText text="1A2B" label="邀请码"></copyText></view>
+		</view>
+		<swiper class="check-list" :current="swiperCurrent" @transition="transition" @change="swiperChange" @animationfinish="animationfinish">
+			<swiper-item class="swiper-item" v-for="(tabs, index) in tabList" :key="index">
+				<scroll-view scroll-y class="scroll-view" @scrolltolower="onreachBottom">
+					<view  
+					class="check-order-list" 
+					v-if="index==current"
+					v-for="(item,sindex) in list" 
+					:key="item.id+'-'+sindex"
+					>
+						<view class="check-row">
+							<view>{{item.applyTime}}</view>
+							<view>
+								<text>{{item.auditStatusDictValue}}</text>
+							</view>
+						</view>
+						<view class="check-col">
+							<view class="flex align_item" @click="toDetail(item)">
+								<view class="imgs">
+									<u-image :src="item.storeImage" :width="135" height="135" :border-radius="10"></u-image>
+								</view>
+								<view class="info">
+									<view class="btext">{{item.contactPhone}} {{item.contactName}}</view>
+									<view>{{item.storeName}}</view>
+									<view class="addr">{{item.addrProvinceName +'-'+ item.addrCityName +'-'+ item.addrDistrictName +'-'+ item.addrDetail}}</view>
+								</view>
+							</view>
+							<view style="width: 100%;text-align: right;" v-if="item.auditStatus == 'WAIT'">
+								<u-button size="mini" hover-class="none" @click="handleAudit(item,0)" shape="circle">审核不通过</u-button>
+								<u-button size="mini" type="success" @click="handleAudit(item,1)" :custom-style="customStyle" hover-class="none" shape="circle">审核通过</u-button>
+							</view>
+						</view>
+					 </view>
+					 <u-empty :src="`/static/${$config('themePath')}/def_no_data@3x.png`" icon-size="240" :text="noDataText" img-width="120" v-if="list.length==0 && status!='loading'" mode="list"></u-empty>
+					 <view v-if="index==current" style="padding: 20upx;">
+						 <u-loadmore :load-text="$config('loadText')" v-if="total>pageSize || status=='loading'" :status="status" />
+					 </view>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+	</view>
+</template>
+
+<script>
+	import { xprhStoreApplyQueryPage, xprhStoreApplyAudit } from '@/api/approveStore'
+	import { clzConfirm } from '@/libs/tools';
+	import copyText from '@/pages/common/copyText.vue'
+	export default {
+		components: {copyText},
+		data() {
+			return {
+				status: 'loadmore',
+				noDataText: '暂无数据',
+				tabList: [],
+				current: 0,
+				swiperCurrent: 0,
+				pageNo: 1,
+				pageSize: 10,
+				list: [],
+				total: 0,
+				action:'swiperChange', // 操作类型,上划分页,或左右滑动
+				customStyle: {
+					background: this.$config('primaryColor'),
+					marginLeft: '20rpx'
+				},
+			}
+		},
+		onLoad(options) {
+			const _this = this
+			_this.tabList = this.$store.state.vuex_storeAuthState
+			_this.getRow()
+			
+			uni.$on("updateAuthState",function(){
+				_this.getRow(1)
+			})
+		},
+		onUnload() {
+			uni.$off("updateAuthState")
+		},
+		methods:{
+			// tabs通知swiper切换
+			tabsChange(index) {
+				this.swiperCurrent = index
+			},
+			swiperChange(event){
+				this.action = 'swiperChange'
+				this.status = 'loading'
+			},
+			// swiper-item左右移动,通知tabs的滑块跟随移动
+			transition(e) {
+				let dx = e.detail.dx
+				this.$refs.uTabs.setDx(dx)
+			},
+			// 由于swiper的内部机制问题,快速切换swiper不会触发dx的连续变化,需要在结束时重置状态
+			// swiper滑动结束,分别设置tabs和swiper的状态
+			animationfinish(e) {
+				let current = e.detail.current
+				let isCurtab = this.current == current
+				if(this.status!="nomore"){
+					let loadData = this.action == 'swiperChange' ? !isCurtab : isCurtab
+					if(loadData){
+						this.$refs.uTabs.setFinishCurrent(current)
+						this.swiperCurrent = current
+						this.current = current
+						this.resetPage()
+					}
+				}
+			},
+			// scroll-view到底部加载更多
+			onreachBottom() {
+				this.action = 'onreachBottom'
+				if(this.list.length < this.total){
+					this.resetPage()
+				}else{
+					this.status = "nomore"
+				}
+			},
+			// 查询列表
+			getRow (pageNo) {
+				if (pageNo) {
+					this.pageNo = pageNo
+				}
+				let params = {
+					pageNo: this.pageNo,
+					pageSize: this.pageSize,
+					auditStatus: this.tabList[this.current].code
+				}
+				this.status = "loading"
+				xprhStoreApplyQueryPage(params).then(res => {
+					if (res.status == 200) {
+						if(this.pageNo>1){
+							this.list = this.list.concat(res.data.list || [])
+						}else{
+							this.list = res.data.list || []
+						}
+						this.total = res.data.count || 0
+					} else {
+						this.list = []
+						this.total = 0
+						this.noDataText = res.message
+					}
+					this.status = "loadmore"
+				})
+			},
+			resetPage(){
+				this.status = 'loading';
+				// 上划分页
+				if(this.action == 'onreachBottom'){
+					this.pageNo += 1
+					this.getRow()
+				}
+				// 左右切换tab
+				if(this.action == 'swiperChange'){
+					this.list = []
+					this.getRow(1)
+				}
+			},
+			// 详情
+			toDetail(row){
+				uni.navigateTo({
+					url: "/pages/approveStore/detail?sn="+row.applySn
+				})
+			},
+			// 审核
+			handleAudit (row, type) {
+			  // 审核通过
+			  if (type == 1) {
+				uni.navigateTo({
+					url: "/pages/approveStore/authPass?sn="+row.applySn
+				})
+			  } else {
+			    const _this = this
+			    clzConfirm({
+			      title: '提示',
+			      content: '确认审核不通过吗?',
+				  success: function(res) {
+				  	if (res.confirm || res.index == 0) {
+						xprhStoreApplyAudit({
+						  applySn: row.applySn,
+						  auditStatus: 'REFUSE'
+						}).then(res => {
+						  if (res.status == 200) {
+						     _this.getRow(1)
+						  }
+						})
+				  	}
+				  }
+			    })
+			  }
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		height: 100%;
+	}
+	.pagesCons{
+		width: 100%;
+		height: 100%;
+		display: flex;
+		flex-direction: column;
+		.text-right {
+			text-align: right;
+		}
+		.utabs{
+			.message{
+				padding: 0.5rem 1rem;
+				background: #feffb9;
+				margin-top: 0.5rem;
+			}
+		}
+		.check-list{
+			flex: 1;
+			.swiper-item{
+				width: 100%;
+				height: 100%;
+				overflow: hidden;
+				.scroll-view {
+					width: 100%;
+					height: 100%;
+					overflow: auto;
+				}
+			}
+		}
+		 
+		// 列表样式
+		.check-order-list{
+			background: #ffffff;
+			margin: 25upx;
+			border-radius: 25upx;
+			box-shadow: 1px 1px 3px #EEEEEE;
+			.check-row{
+				 display: flex;
+				 justify-content: space-between;
+				 >view{
+					 &:first-child{
+						 color: #999;
+						 font-size: 24rpx;
+						 width: 80%;
+					 }
+					 &:last-child{
+						 font-size: 24rpx;
+						 margin-top: 5rpx;
+					 }
+				 }
+				 border-bottom: 2rpx solid #eee;
+				 padding: 20rpx;
+			}
+			.check-col{
+				padding: 20rpx;
+				> view{
+					padding: 3rpx 0;
+					font-size: 26rpx;
+				}
+				.info{
+					flex-grow: 1;
+					padding: 0 10rpx 0 20rpx;
+				}
+				.btext{
+					font-weight: bold;
+					margin-bottom: 10rpx;
+				}
+				.addr{
+					color: #999;
+					margin-top: 6rpx;
+					word-break: break-all;
+				}
+			}
+		}
+	}
+</style>

+ 4 - 4
pages/index/index.vue

@@ -9,21 +9,21 @@
 		 <div class="graid-box">
 			 <div class="graid-box-1" @click="toPage('/pages/shuntBackManage/shuntBackList')">
 				 <div class="icon">
-					 <u-icon name="huowu-tuihui" custom-prefix="iscm-icon" size="48"></u-icon>
+					 <u-icon name="huowu-tuihui" custom-prefix="iscm-icon" size="70"></u-icon>
 				 </div>
 				 <div class="title">调回管理</div>
 				 <div>商品调回记录查询</div>
 			 </div>
 			 <div class="graid-box-1" @click="toPage('/pages/latePlay/chooseBulk')">
 				 <div class="icon">
-				 	<u-icon name="icon_remark" custom-prefix="iscm-icon" size="48"></u-icon>
+				 	<u-icon name="icon_remark" custom-prefix="iscm-icon" size="70"></u-icon>
 				 </div>
 				 <div class="title">补打贴签</div>
 				 <div>遗漏标签快捷处理</div>
 			 </div>
-			 <div class="graid-box-1" @click="toPage('/pages/latePlay/chooseBulk')">
+			 <div class="graid-box-1" @click="toPage('/pages/approveStore/list')">
 				 <div class="icon">
-				 	<u-icon name="mendianzhuanxiangshenhe" custom-prefix="iscm-icon" size="48"></u-icon>
+				 	<u-icon name="mendianzhuanxiangshenhe" custom-prefix="iscm-icon" size="70"></u-icon>
 				 </div>
 				 <div class="title">门店审核</div>
 				 <div>审核门店的认证申请</div>

+ 6 - 1
pages/sales/chooseCustomer.vue

@@ -3,7 +3,7 @@
 		<view class="search">
 			<view class="flex justify_between align_center search-title">
 				<text class="search-label">客户名称</text>
-				<view class="search-btn" v-if="backPage == 'addSales'">
+				<view class="search-btn" v-if="backPage == 'addSales'||backPage == 'authPass'">
 					<text>没有搜索到?</text>
 					<text>点击</text>
 					<text @click="addCustomer">新增客户</text>
@@ -107,6 +107,11 @@
 					uni.$emit("searchSalesRecord",item)
 					uni.navigateBack()
 				}
+				// 门店审核通过
+				if(this.backPage == 'authPass'){
+					uni.$emit("addCustome",item)
+					uni.navigateBack()
+				}
 			}
 		},
 	}

+ 4 - 0
pages/sales/index.vue

@@ -122,6 +122,10 @@
 			this.getListLookUp();
 			// 获取支付,收款方式
 			this.getLookUpList('SETTLE_STYLE', 'vuex_paymentTypeList');
+			// 获取门店审核状态
+			this.getLookUpList('XPRH_STORE_APPLY_STATUS', 'vuex_storeAuthState');
+			// 门店审核结算方式
+			this.getLookUpList('SHELF_SETTLE_TYPE', 'vuex_shelfSettleType');
 		},
 		onUnload() {
 			uni.$off('refreshSalesHomeBL')

Файловите разлики са ограничени, защото са твърде много
+ 0 - 0
static/iconfont/iconfont.css


BIN
static/iconfont/iconfont.ttf


+ 2 - 0
store/index.js

@@ -108,6 +108,8 @@ const store = new Vuex.Store({
 		vuex_OrderAddress: {}, // 地址
 		vuex_allLookUp: [],  //  数据字典
 		vuex_paymentTypeList: [], // 收款方式
+		vuex_storeAuthState: [], // 门店审核状态
+		vuex_shelfSettleType: [], // 门店审核结算方式
 	},
 	mutations: {
 		$uStore(state, payload) {

Някои файлове не бяха показани, защото твърде много файлове са промени