Ver Fonte

Merge remote-tracking branch 'origin/master'

wgl há 4 anos atrás
pai
commit
85569b55d0

+ 6 - 4
src/projects/business/views/Master/Property/Car/Apply.vue

@@ -294,7 +294,7 @@ export default {
                         // _this.$router.push({
                         // 	name: 'Master',
                         // })
-                        _this.getDetail()
+                        _this.getDetail(false)
                     });
 
                 }).catch(error => {
@@ -399,7 +399,7 @@ export default {
         },
 
         //获取详情
-        getDetail() {
+        getDetail(bl) {
             this.isLoading = true;
 
             API.parkingUnit().then(response => {
@@ -420,7 +420,9 @@ export default {
                         this.isLoading = false;
                         mui.toast(error);
                     })
-                    //mui.toast("您已有一条待处理的车位申请记录");
+                    if(bl){
+                        mui.toast("您已有一条待处理的车位申请记录");
+                    }
                 }
                 if (!response.unit) {
                     mui.toast('未配置租用单位,请联系管理员');
@@ -437,7 +439,7 @@ export default {
     },
     mounted() {
 
-        this.getDetail();
+        this.getDetail(true);
     },
 
     destroyed() {

+ 0 - 1
src/projects/business/views/Master/Property/Car/Info.vue

@@ -43,7 +43,6 @@
 						<label style="width:40%">实际租金(元)</label>
 						<input  v-if="info.status==0" type="text" class="mui-input-clear" v-model="detail.actualFee" placeholder="请输入调整后金额,无变动可不填" style="width:60%">
 						<span   v-if="info.status!=0" style="width:60%">{{info.actualFee}}</span>
-
 					</div>
 				</form>
 			</div>

+ 3 - 3
src/projects/business/views/Master/Property/Car/List.vue

@@ -2,7 +2,7 @@
 <div>
 
 	<common @asynCallBack="asynCallBack"></common>
-	<top-header :pageTitle="pageTitle"></top-header>
+	<top-header :pageTitle="pageTitle"  :routeName="'Master'" ></top-header>
 
 	<div class="mui-content vongi-hdsq">
 			<div id="slider" class="mui-slider mui-fullscreen ">
@@ -16,7 +16,7 @@
 						</a>
 					</div>
 				</div>
-				<NullList :remark="'暂无车位申请出入记录'" v-if="!recordList.length"></NullList>
+				<NullList :remark="'暂无车位申请审批记录'" v-if="!recordList.length"></NullList>
 
 				<div class="mui-slider-group">
 
@@ -70,7 +70,7 @@
 		mapMutations
 	} from 'vuex'
 	export default {
-		name: 'MasterAttendanceVerifyList',
+		name: 'masterPropertyCarlist',
 		components: {
 			Common,
 			Loading,

+ 159 - 20
src/projects/business/views/Master/Property/Car/MyInfo.vue

@@ -1,19 +1,18 @@
 <template>
 <div>
-    <header class="mui-bar mui-bar-nav">
-			<h1 class="mui-title">车位申请详情</h1>
-			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
-		</header>
+	<common @asynCallBack="asynCallBack"></common>
+	<top-header :pageTitle="pageTitle"></top-header>
+
 		<div class="mui-content">
 			<div class="mui-content-padded vongi-editme vongi-qingjiadt">
 				<form class="mui-input-group">
 					<div class="mui-input-row">
 						<label>业主姓名</label>
-						<span>赵刚</span>
+						<span>{{info.applicationName}}</span>
 					</div>
 					<div class="mui-input-row">
 						<label>车牌号</label>
-						<span>鄂D88888</span>
+						<span>{{info.carNum}}</span>
 					</div>
 				</form>
 			</div>
@@ -21,19 +20,24 @@
 				<form class="mui-input-group">
 					<div class="mui-input-row">
 						<label>申请车位</label>
-						<span>地面-A区-018号</span>
+						<span>{{info.parkingName}}</span>
 					</div>
 					<div class="mui-input-row">
 						<label style="width:40%">租用起止时间</label>
-						<span style="width:60%">2020-10-21至2021-10-20</span>
+						<span style="width:60%">{{info.rentTime}}</span>
 					</div>
 					<div class="mui-input-row">
 						<label>租用时长</label>
-						<span>12个月</span>
+						<span>{{info.contractDuration}}</span>
 					</div>
 					<div class="mui-input-row">
 						<label style="width:40%">预估租金(元)</label>
-						<span style="width:60%">1440.00</span>
+						<span style="width:60%">{{info.estimateFee}}</span>
+					</div>
+					<div class="mui-input-row"  v-if="info.actualFee">
+						<label style="width:40%">实际租金(元)</label>
+ 						<span  style="width:60%">{{info.actualFee}}</span>
+
 					</div>
 				</form>
 			</div>
@@ -41,39 +45,174 @@
 				<form class="mui-input-group">
 					<div class="mui-input-row">
 						<label>提交时间</label>
-						<span>2020-10-21 10:00:00</span>
+						<span>{{info.createTime}}</span>
 					</div>
 					<div class="mui-input-row">
 						<label>申请状态</label>
-						<span class="color4fc5f7">已提交</span>
+						<span  :class="colors[info.status]">{{info.statusN}}</span>
 						<!--<span class="color55f868">申请成功</span>-->
 						<!--<span class="colorfe616c">申请失败</span>-->
 					</div>
 					<!--申请成功状态-->
-					<div class="mui-input-row">
+					<div class="mui-input-row" v-if="info.status==1">
 						<label>缴费方式</label>
-						<span>账单缴费</span>
+						<span class="color4fc5f7" >{{payTypeList[info.payType]}}</span>
 					</div>
-					<div class="mui-input-row">
+					<div class="mui-input-row" v-if="info.status==1">
 						<label>缴费时间</label>
-						<span>2020-10-10 10:00:00</span>
+						<span>{{info.payTime}}</span>
 					</div>
 					<!--申请失败状态-->
-					<div class="mui-input-row">
+					<div class="mui-input-row" v-if="info.status==3">
 						<label style="width:100%">关闭申请理由</label>
-						<span class="vongi-span">该车位已被售出/租出</span>
+						<span class="vongi-span">{{info.reason}}</span>
 					</div>
-					<div class="mui-input-row">
+					<div class="mui-input-row" v-if="info.status==3">
 						<label>关闭时间</label>
-						<span>2020-10-10 10:00:00</span>
+						<span>{{info.updateTime}}</span>
 					</div>
 				</form>
 			</div>
 		</div>
+	<loading :visible="isLoading"></loading>
+
 </div>
 </template>
 
+
 <script>
+    require('$project/assets/js/mui.picker.min.js');
+
+    import * as API from '@/apis/Master/Property/car'
+    import Common from '$project/components/Common.vue'
+    import Loading from '$project/components/Loading.vue'
+    import TopHeader from '$project/components/TopHeader.vue'
+    import {
+        mapGetters,
+        mapMutations
+    } from 'vuex'
+    export default {
+        name: 'MasterPropertyCarInfo',
+        components: {
+            Common,
+            Loading,
+            TopHeader
+        },
+        data() {
+            return {
+                pageTitle: '车位申请详情',
+
+                isLoading: false,
+
+                id: this.$route.query.id,
+                detail: {
+                    id: this.$route.query.id,
+                    actualFee:'',
+                    reason:'该车位已被售出/租出',
+                },
+                info: {},
+                show:0,
+                payType:1,
+                payTypeN:'线下收款',
+                payTypeList:['','线下收款','推送账单'],
+                colors:['color4fc5f7','color55f868','','colorfe616c']
+
+            }
+        },
+        created() {},
+        methods: {
+            onSelect(){
+                var picker = new mui.PopPicker();
+
+                picker.setData([
+                    {
+                        text:'线下收款',value:'1'
+                    }
+                    ,
+                    {
+                        text:'推送账单',value:'2'
+                    }
+                ]);
+
+                picker.show((selectItems) => {
+                    this.payType = selectItems[0].value;
+                    this.payTypeN = selectItems[0].text;
+                });
+            },
+            opLease(){
+                if(!this.detail.actualFee){
+                    this.detail.actualFee=this.info.estimateFee;
+                }
+                this.show=0;
+                this.isLoading = true;
+
+                if(this.payType ==1){
+                    API.ParkingApplicationConfirmLease(this.detail).then(res => {
+                        mui.toast("操作成功");
+                        this.getDetail()
+
+                    }).catch(error => {
+                        this.isLoading = false;
+                        mui.toast(error);
+                    })
+                }
+                if(this.payType ==2){
+                    // var url = window.location.href.split("#")[0];
+                    this.detail.url="/master/mine/bill/pay?id=";
+                    API.ParkingApplicationSendOrder(this.detail).then(res => {
+                        mui.toast("操作成功");
+                        this.getDetail()
+
+                    }).catch(error => {
+                        this.isLoading = false;
+                        mui.toast(error);
+                    })
+                }
+
+            },
+            opClose(){
+                if(!this.detail.reason){
+                    mui.toast("请填写关闭申请理由")
+                    return false;
+                }
+                this.isLoading = true;
+                this.show=0;
+                API.ParkingApplicationClose(this.detail).then(res => {
+                    mui.toast("操作成功");
+                    this.getDetail()
+
+                }).catch(error => {
+                    this.isLoading = false;
+                    mui.toast(error);
+                })
+            },
+            //获取详情
+            getDetail() {
+
+                this.isLoading = true;
+                API.ParkingApplicationDetail({id:this.id}).then(info => {
+                    this.isLoading = false;
+
+                    this.info=info;
+                }).catch(error => {
+                    this.isLoading = false;
+                    mui.toast(error);
+                })
+            },
+            asynCallBack() {
+
+            },
+        },
+        mounted() {
+            this.getDetail();
+        },
+        computed: {
+            ...mapGetters({
+                openId: 'wx_openid',
+                token: 'token',
+            })
+        },
+    }
 </script>
 
 <style scoped src="$project/assets/css/xpwyfyy.css"></style>

+ 139 - 31
src/projects/business/views/Master/Property/Car/MyList.vue

@@ -1,47 +1,155 @@
 <template>
 <div>
-    <header class="mui-bar mui-bar-nav">
-			<h1 class="mui-title">我的车位</h1>
-			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
-		</header>
-		<div class="mui-content">
-			<ul class="mui-table-view vongi-jy-ul">
-				<li class="mui-table-view-cell">
-					<a class="mui-navigate-right" href="#">
-						<div class="mui-media-body">
-							地面车位-A区-018号
-							<p class='mui-ellipsis'>2020-10-21至2021-10-20</p>
-						</div>
-						<span class="color4fc5f7">已提交</span>
-					</a>
-				</li>
-				<li class="mui-table-view-cell">
-					<a class="mui-navigate-right" href="#">
-						<div class="mui-media-body">
-							地面车位-A区-018号
-							<p class='mui-ellipsis'>2020-10-21至2021-10-20</p>
-						</div>
-						<span class="color55f868">申请成功</span>
-					</a>
-				</li>
+	<common @asynCallBack="asynCallBack"></common>
+	<top-header :pageTitle="pageTitle" :routeName="'Master'"></top-header>
+
+	<div class="mui-content">
+			<ul class="mui-table-view vongi-jy-ul" v-for="(item,index) in recordList">
 				<li class="mui-table-view-cell">
-					<a class="mui-navigate-right" href="#">
-						<div class="mui-media-body">
-							地面车位-A区-018号
-							<p class='mui-ellipsis'>2020-10-21至2021-10-20</p>
+					<router-link  class="mui-navigate-right" :to="{name:'MasterPropertyCarMyInfo',query:{id:item.id}}"  >
+
+ 						<div class="mui-media-body">
+							{{item.parkingName}}
+							<p class='mui-ellipsis'>{{item.rentTime}}</p>
 						</div>
-						<span class="colorfe616c">申请失败</span>
-					</a>
+						<span :class="statusClass[item.status]">{{item.statusN}}</span>
+					</router-link>
 				</li>
+
 			</ul>
 		</div>
+
 		<div class="fyy-footer">
-			<div class="bindfyy-btn"><button type="submit" class="mui-btn mui-btn-primary ">申请车位</button></div>
+			<div class="bindfyy-btn"><button type="submit" class="mui-btn mui-btn-primary " @click="goto">申请车位</button></div>
 		</div>
+	<NullList :remark="'暂无车位申请记录'" v-if="!recordList.length"></NullList>
+
+	<loading :visible="isLoading"></loading>
 </div>
 </template>
 
 <script>
+    import * as API from '@/apis/Master/Property/car'
+    import Common from '$project/components/Common.vue'
+    import NullList from '$project/components/NullList.vue'
+
+    import Loading from '$project/components/Loading.vue'
+    import TopHeader from '$project/components/TopHeader.vue'
+    import isReachBottom from '$project/utils/isReachBottom'
+    import {
+        mapGetters,
+        mapMutations
+    } from 'vuex'
+    export default {
+        name: 'masterPropertyCarmylist',
+        components: {
+            Common,
+            Loading,
+            TopHeader,NullList
+        },
+        data() {
+            return {
+                pageTitle: '我的车位',
+
+                isLoading: false,
+
+                listForm: {
+                    pageIndex: 1,
+                    pageSize: 20,
+                    totalPage: 1,
+                    status: 2,
+                },
+                recordList: [],
+                selectIdList: [],
+                allSelect: [],
+                subForm: {
+                    ids: '',
+                    content: '',
+                    status: ''
+                },
+                //审批内容弹窗显示
+                openFromVisible: false,
+                firstRecordsTotal: 0,
+                statusClass:['color4fc5f7 ','color55f868  ','','colorfe616c  ']
+            }
+        },
+        created() {
+
+        },
+        methods: {
+            goto(){
+                 this.$router.push({
+                	name: 'MasterPropertyCar',
+                 })
+			},
+            //获取列表
+            getList() {
+                this.isLoading = true;
+                API.ParkingApplicationList(this.listForm).then(response => {
+                    if (response) {
+                        if (this.listForm.pageIndex == 1) {
+                            this.recordList = response.list;
+                            this.listForm.pageIndex = response.pageNumber;
+                            this.listForm.totalPage = response.totalPage;
+                        } else {
+                            this.recordList = [
+                                ...this.recordList,
+                                ...response.list
+                            ];
+                        }
+                    }
+
+                    if (this.listForm.status == 0) {
+                        this.firstRecordsTotal = response.num;
+                    }
+
+                    this.listForm.pageIndex++;
+                    this.isLoading = false;
+                }).catch(error => {
+                    this.isLoading = false;
+                    mui.toast(error);
+                })
+            },
+            //下拉事件
+            handleScrool() {
+                if (isReachBottom()) {
+                    console.log('到达底部')
+                    if (this.listForm.pageIndex <= this.listForm.totalPage && this.isLoading == false) {
+                        this.getList();
+                    } else {
+                        return;
+                    }
+                }
+            },
+            //切换
+            reloadList(status) {
+                this.listForm.status = status;
+                this.listForm.pageIndex = 1;
+                this.getList();
+            },
+
+            asynCallBack() {
+
+            },
+        },
+        mounted() {
+            this.getList();
+            //监控下拉加载事件
+            var _this = this;
+            window.addEventListener('scroll', _this.handleScrool);
+        },
+        destroyed() {
+            //销毁监听事件
+            var _this = this;
+            window.removeEventListener('scroll', _this.handleScrool);
+        },
+        computed: {
+            ...mapGetters({
+                openId: 'wx_openid',
+                token: 'token',
+            })
+        }
+    }
 </script>
 
 <style scoped src="$project/assets/css/xpwyfyy.css"></style>