From ae820a43aa6b20bea341e78d1bbbc15db5a1454a Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Mon, 04 Dec 2023 17:59:05 +0800
Subject: [PATCH] 打卡登记,数据驾驶舱页面编写,调整部分按钮样式。调整出租房管理页面样式
---
components/btn/footerBtn.vue | 4
pages.json | 20 +
subPackage/bs/views/rentDetail.vue | 8
subPackage/house/member/index.vue | 19
static/icon/nav-12.png | 0
subPackage/user/clockIn/index.vue | 159 ++++++----
subPackage/user/password/index.vue | 26 -
subPackage/user/family/edit.vue | 28 +
subPackage/workbench/views/rental.vue | 49 +++
subPackage/workbench/views/rental.vue.bak | 375 +++++++++++++++++++++++++
subPackage/house/roomDetails/index.vue | 23
pages/home/index.vue | 42 +-
api/checkIn/checkIn.js | 9
subPackage/user/role/index.vue | 7
common/setting.js | 2
subPackage/house/family/index.vue | 2
subPackage/statistics/index.vue | 67 ++++
subPackage/user/family/list.vue | 24 -
18 files changed, 697 insertions(+), 167 deletions(-)
diff --git a/api/checkIn/checkIn.js b/api/checkIn/checkIn.js
new file mode 100644
index 0000000..aaa6575
--- /dev/null
+++ b/api/checkIn/checkIn.js
@@ -0,0 +1,9 @@
+import http from '@/http/api.js'
+
+export const addCheckIn = (params) => {
+ return http.request({
+ url: '/blade-checkInRecords/checkInRecords/save',
+ method: 'POST',
+ data: params
+ })
+}
diff --git a/common/setting.js b/common/setting.js
index 5c6d126..cfa849f 100644
--- a/common/setting.js
+++ b/common/setting.js
@@ -14,7 +14,7 @@
// devUrl:'http://192.168.1.50:9528',
// devUrl: 'http://192.168.0.102:9528',
// devUrl:'https://srgdjczzxtpt.com:2080/api',
- // devUrl: 'http://192.168.0.100:9528',
+ // devUrl: 'http://192.168.0.102:9528',
devUrl: 'https://srgdjczzxtpt.com:2080/api',
minioBaseUrl: "https://srgdjczzxtpt.com:2080/gminio/jczz/",
// minioBaseUrl:"http://192.168.0.103:9528/",
diff --git a/components/btn/footerBtn.vue b/components/btn/footerBtn.vue
index ffbf5d7..8753dd7 100644
--- a/components/btn/footerBtn.vue
+++ b/components/btn/footerBtn.vue
@@ -21,7 +21,7 @@
}
</script>
-<style lang="scss">
+<style lang="scss" scoped >
.footer{
width:100%;
padding:20rpx 30rpx;
@@ -31,7 +31,7 @@
left:0;
background-color: #fff;
z-index: 10;
- bottom: env(safe-area-inset-bottom);
+ padding-bottom: env(safe-area-inset-bottom);
.footer-btn{
width:100%;
diff --git a/pages.json b/pages.json
index 9d415ce..a41039f 100644
--- a/pages.json
+++ b/pages.json
@@ -43,9 +43,23 @@
"navigationBarTextStyle": "black"
}
}
-
],
"subPackages": [
+ //数据驾驶舱
+ {
+ "root": "subPackage/statistics",
+ "pages": [
+ {
+ "path": "index",
+ "style": {
+ "navigationBarTitleText": "数据驾驶舱",
+ "enablePullDownRefresh": false,
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTextStyle": "black"
+ }
+ }
+ ]
+ },
//我的
{
"root": "subPackage/user",
@@ -56,8 +70,8 @@
"style": {
"navigationBarTitleText": "切换角色",
"enablePullDownRefresh": false,
- "navigationBarBackgroundColor": "#4586fe",
- "navigationBarTextStyle": "white"
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTextStyle": "black"
}
},
//修改密码
diff --git a/pages/home/index.vue b/pages/home/index.vue
index d5c7d41..f2a2145 100644
--- a/pages/home/index.vue
+++ b/pages/home/index.vue
@@ -38,23 +38,34 @@
<view @click="scan" class="block-item">
<image class="block-item-bg" src="/static/icon/nav-bg-04.png" mode="aspectFill" />
<view class="block-item-box flex a-i-c ">
- <u-icon name="/static/icon/nav-05.png" width="90rpx" height="90rpx"></u-icon>
+ <u-icon name="/static/icon/nav-05.png" width="65rpx" height="65rpx"></u-icon>
<view class="item-text flex f-d-c j-c-s-b">
- <text class="f-32 fw">扫一扫</text>
- <text class="f-26 opacity">场所采集</text>
+ <text class="f-24 fw">扫一扫</text>
+ <text class="f-22 opacity">场所采集</text>
</view>
</view>
</view>
<view class="block-item" @click="navigatorPage('/subPackage/user/clockIn/index')">
<image class="block-item-bg" src="/static/icon/nav-bg-05.png" mode="aspectFill" />
<view class="block-item-box flex a-i-c">
- <u-icon name="/static/icon/nav-06.png" width="90rpx" height="90rpx"></u-icon>
+ <u-icon name="/static/icon/nav-06.png" width="65rpx" height="65rpx"></u-icon>
<view class="item-text flex f-d-c j-c-s-b">
- <text class="f-32 fw">打卡登记</text>
- <text class="f-26 opacity">在线打卡</text>
+ <text class="f-24 fw">打卡登记</text>
+ <text class="f-22 opacity">在线打卡</text>
</view>
</view>
</view>
+ <view class="block-item" @click="navigatorPage('')">
+ <image class="block-item-bg" src="/static/icon/nav-bg-04.png" mode="aspectFill" />
+ <view class="block-item-box flex a-i-c">
+ <u-icon name="/static/icon/nav-12.png" width="65rpx" height="65rpx"></u-icon>
+ <view class="item-text flex f-d-c j-c-s-b">
+ <text class="f-24 fw">数据驾驶舱</text>
+ <text class="f-22 opacity">数据统计</text>
+ </view>
+ </view>
+ </view>
+
</view>
<view class="" v-if="isShowHouse">
@@ -631,12 +642,6 @@
icon: "error"
})
- } else if (path == '/subPackage/user/clockIn/index') {
- uni.showToast({
- title: "功能开发中~",
- icon: "none"
- })
-
} else {
this.$u.func.globalNavigator(`${path}?houseCode=${this.curHouseCode}`, "navTo")
}
@@ -750,26 +755,29 @@
.block {
.block-item {
position: relative;
+
}
.block-item,
.block-item-bg,
.block-item-box {
- width: 334rpx;
- height: 170rpx;
+ width: 226rpx;
+ height: 150rpx;
+ border-radius: 12rpx;
}
.block-item-box {
- padding: 0 30rpx;
+ padding: 0 12rpx;
box-sizing: border-box;
position: absolute;
top: 0;
left: 0;
+
}
.item-text {
- height: 90rpx;
- margin-left: 22rpx;
+ height: 65rpx;
+ margin-left: 20rpx;
color: #fff;
}
diff --git a/static/icon/nav-12.png b/static/icon/nav-12.png
new file mode 100644
index 0000000..41e9a6d
--- /dev/null
+++ b/static/icon/nav-12.png
Binary files differ
diff --git a/subPackage/bs/views/rentDetail.vue b/subPackage/bs/views/rentDetail.vue
index 071e3ec..8d671b7 100644
--- a/subPackage/bs/views/rentDetail.vue
+++ b/subPackage/bs/views/rentDetail.vue
@@ -54,10 +54,10 @@
</view>
<rentForm ref="rentform" />
</view>
- <view class="addPerson-box">
+ <!-- <view class="addPerson-box">
<u-button class="btn-item" color="#2CD5C0" plain style="width: 300rpx;"
@click="addRentForm">再加一人</u-button>
- </view>
+ </view> -->
</view>
</u-form>
<!-- 事件类型下拉框 -->
@@ -75,6 +75,8 @@
@cancel="dueTimeShow = false"></u-datetime-picker>
<view class="bottom-tools">
+ <u-button class="btn-item" color="#2CD5C0" plain style="width: 300rpx;"
+ @click="addRentForm">再加一人</u-button>
<u-button class="btn-item" type="error" @click="isModelShow = true"
v-if="btnControls.deleteBtn">删除</u-button>
<u-button class="btn-item" type="success" @click="verify" v-if="btnControls.verifyBtn">确认</u-button>
@@ -621,7 +623,7 @@
// border-top: 1rpx solid #e4e4e4;
z-index: 999;
padding: 20rpx;
-
+ padding-bottom: env(safe-area-inset-bottom);
/deep/ .u-button {
color: #ffffff;
font-weight: 700;
diff --git a/subPackage/house/family/index.vue b/subPackage/house/family/index.vue
index 27abc69..750f308 100644
--- a/subPackage/house/family/index.vue
+++ b/subPackage/house/family/index.vue
@@ -189,9 +189,11 @@
flex-direction: column;
background: #F9F9FA;
font-size: 26rpx;
+
.main {
flex: 1;
overflow-y: auto;
+
.content {
margin-top: 20rpx;
background-color: #fff;
diff --git a/subPackage/house/member/index.vue b/subPackage/house/member/index.vue
index 43b111e..5326b19 100644
--- a/subPackage/house/member/index.vue
+++ b/subPackage/house/member/index.vue
@@ -148,14 +148,16 @@
</u-form>
</view>
- <view class="btn-group b-c-w">
+ <!-- <view class="btn-group b-c-w">
<view>
<u-button @click="submit" type="primary" :text="addOrUpdateTitle" width="120px"></u-button>
</view>
<view>
<u-button @click="navigator" type="primary" :plain="true" text="返回首页"></u-button>
</view>
- </view>
+ </view> -->
+
+ <footer-btn :text="addOrUpdateTitle" @click="submit" />
</view>
<!-- 事件类型下拉框 -->
@@ -439,17 +441,16 @@
.main {
- position: relative;
- height: 0;
- flex: 1;
+ // position: relative;
+ // flex: 1;
display: flex;
flex-direction: column;
.content {
- height: 0;
- flex: 1;
- overflow-y: auto;
- padding-bottom: 120rpx;
+ // height: 0;
+ // flex: 1;
+ // overflow-y: auto;
+ padding-bottom: 160rpx;
// padding-bottom: 36rpx;
}
diff --git a/subPackage/house/roomDetails/index.vue b/subPackage/house/roomDetails/index.vue
index b64e82d..769c4c4 100644
--- a/subPackage/house/roomDetails/index.vue
+++ b/subPackage/house/roomDetails/index.vue
@@ -515,7 +515,8 @@
.edit-btn {
width: 100%;
- height: 116rpx;
+ // height: 116rpx;
+ padding:20rx;
display: flex;
justify-content: space-around;
align-items: center;
@@ -523,18 +524,20 @@
position: fixed;
left: 0;
bottom: 0;
-
+ padding-bottom: env(safe-area-inset-bottom);
+ box-sizing: border-box;
view {
margin: 20rpx;
+ flex:1;
+ height:78rpx;
+ // &:first-child {
+ // flex: 1;
+ // margin-right: 0;
+ // }
- &:first-child {
- flex: 1;
- margin-right: 0;
- }
-
- &:last-child {
- flex: 2;
- }
+ // &:last-child {
+ // flex: 2;
+ // }
}
}
}
diff --git a/subPackage/statistics/index.vue b/subPackage/statistics/index.vue
new file mode 100644
index 0000000..2937474
--- /dev/null
+++ b/subPackage/statistics/index.vue
@@ -0,0 +1,67 @@
+<template>
+ <view class="container">
+ <view class="">
+ <caption-row title="社区概况"></caption-row>
+ <view class="cell flex j-c-s-b flex-wrap">
+ <view class="cell-item bgc-ff" v-for="i in 6">
+
+ </view>
+ </view>
+ </view>
+
+ <view class="">
+ <caption-row title="共治人员"></caption-row>
+ <view class="menu">
+ <u-grid :border="true">
+ <u-grid-item v-for="i in 6" bgColor="#fff">
+ <view class="menu-item flex f-d-c a-i-c">
+ <text class="c-main f-32 fw">1</text>
+ <text class="f-28">党员</text>
+ </view>
+ </u-grid-item>
+ </u-grid>
+ </view>
+ </view>
+
+ <view class="">
+ <caption-row title="人员画像"></caption-row>
+ </view>
+
+ </view>
+</template>
+
+<script>
+ import captionRow from "@/components/caption/caption.vue"
+ export default {
+ components: {
+ captionRow
+ }
+ }
+</script>
+
+<style lang="scss">
+ page {
+ background-color: #f5f5f5;
+ }
+
+ .container {
+ padding: 0 20rpx;
+ }
+
+ .cell {
+ padding: 20rpx 0;
+
+ .cell-item {
+ width: 220rpx;
+ height: 190rpx;
+ border-radius: 10rpx;
+ margin-bottom: 20rpx;
+ }
+ }
+ .menu{
+ padding: 20rpx 0;
+ .menu-item{
+ padding:20rpx 0;
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/subPackage/user/clockIn/index.vue b/subPackage/user/clockIn/index.vue
index 504ec4b..d7a6659 100644
--- a/subPackage/user/clockIn/index.vue
+++ b/subPackage/user/clockIn/index.vue
@@ -1,31 +1,27 @@
<template>
<view>
<view class="content bgc-ff">
- <u-form labelPosition="left" :model="info" :rules="rules" ref="uForm" labelWidth="90"
+ <u-form labelPosition="left" :model="info" :rules="rules" ref="form" labelWidth="90"
:labelStyle="{fontSize:'28rpx'}">
- <u-form-item label="工作主题" prop="info.title" borderBottom ref="item1">
- <u-input v-model="info.title" border="none" placeholder="请输入工作主题" placeholderClass="f-28 c-99"
+ <u-form-item label="工作主题" prop="info.workTheme" borderBottom>
+ <u-input v-model="info.workTheme" border="none" placeholder="请输入工作主题" placeholderClass="f-28 c-99"
inputAlign="right"></u-input>
</u-form-item>
- <u-form-item label="当前位置" borderBottom ref="item1">
- <u-input v-model="info.address" border="none" placeholderClass="f-28 c-99"
- inputAlign="right">
- <template slot="suffix">
- <button class="location-btn c-main f-24" @click="getLocation()">获取地址</button>
- </template>
- </u-input>
- </u-form-item>
-
- <!-- <view class="row flex a-i-c j-c-s-b">
- <text class="f-28">当前位置</text>
- <view class="flex">
- <view class="f-28">当前位置</view>
- <button class="location-btn c-main f-24" @click="getLocation()">获取地址</button>
+ <u-form-item label="当前位置" prop="address" borderBottom>
+ <view class="address-row flex">
+ <view class="address-content f-28" v-if="info.address">
+ {{info.address}}
+ </view>
+ <view class="address-content f-28 c-99" v-if="!info.address">
+ 请选择地址
+ </view>
+ <view class="location-btn c-main f-24" @click="getLocation()">
+ 获取地址
+ </view>
</view>
- </view> -->
-
- <u-form-item label="工作内容" prop="info.content" :borderBottom="false" ref="item1">
- <u-input v-model="info.content" border="none" placeholder="请输入工作内容" placeholderClass="f-28 c-99"
+ </u-form-item>
+ <u-form-item label="工作内容" prop="info.workContent" :borderBottom="false" ref="item1">
+ <u-input v-model="info.workContent" border="none" placeholder="请输入工作内容" placeholderClass="f-28 c-99"
inputAlign="right"></u-input>
</u-form-item>
</u-form>
@@ -33,7 +29,7 @@
<view class="upload bgc-ff">
<view class="f-28">场所图片</view>
<view class="mt-20">
- <u-upload :fileList="images" :previewFullImage="uploadConfig.previewFullImage"
+ <u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage"
:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple" :maxCount="uploadConfig.maxCount"
:capture="uploadConfig.capture" @afterRead="afterReadImg" @delete="deletePic">
<view class="upload-item upload-icon flex_base">
@@ -43,9 +39,12 @@
</view>
</view>
- <view class="footer">
+ <!-- <view class="footer">
<button class="footer-btn">提交</button>
- </view>
+ </view> -->
+
+ <footer-btn @click="submitInfo" />
+
</view>
@@ -53,40 +52,74 @@
<script>
import uploadMixin from "@/mixin/uploadMixin";
+ import {
+ addCheckIn
+ } from "@/api/checkIn/checkIn.js"
export default {
mixins: [uploadMixin],
data() {
return {
info: {
- title: "",
- content: ""
+ workTheme: "",
+ workContent: "",
+ address: ""
+ },
+ form: {
+ images: []
},
rules: {
- 'title': {
+ 'workTheme': {
type: 'string',
required: true,
message: '请输入工作主题',
trigger: ['blur', 'change']
},
- 'content': {
+ 'workContent': {
type: 'string',
required: true,
message: '请输入工作内容',
trigger: ['blur', 'change']
},
+ 'address': {
+ type: 'string',
+ required: true,
+ message: '请选择地址',
+ trigger: ['blur', 'change']
+ },
},
- images: [
-
- ]
}
},
- methods:{
- getLocation(){
+ methods: {
+ getLocation() {
uni.chooseLocation({
- success:(res)=>{
- console.log(res);
+ success: (res) => {
+ this.$set(this.info, "address", res.address);
+ this.$set(this.info, "lat", res.latitude);
+ this.$set(this.info, "lng", res.longitude)
}
+ })
+ },
+
+ submitInfo() {
+ this.$refs.form.validate().then(valid => {
+ if (this.form.images.length > 0) {
+ let urls = []
+ this.form.images.forEach(e => {
+ urls.push(e.name)
+ })
+ this.info.img = urls.join(",")
+ }
+ addCheckIn(this.info).then(res => {
+ uni.showToast({
+ title: '提交成功',
+ success() {
+ setTimeout(() => {
+ this.$u.func.globalNavigator("", "navBack")
+ }, 1000)
+ }
+ })
+ })
})
}
}
@@ -102,23 +135,26 @@
margin: 20rpx 30rpx;
padding: 0 30rpx;
}
- .row{
- padding:20rpx 0;
- border-bottom:1px solid
+
+ .row {
+ padding: 20rpx 0;
+ border-bottom: 1px solid
}
- .location-btn{
- width:116rpx;
- height:46rpx;
+
+ .location-btn {
+ width: 116rpx;
+ height: 46rpx;
line-height: 46rpx;
border-radius: 4rpx;
- border:1px solid currentColor;
- padding:0;
+ border: 1px solid currentColor;
+ padding: 0;
background-color: #fff;
}
.upload {
margin: 0 30rpx;
padding: 30rpx;
+
.upload-item {
width: 140rpx;
height: 140rpx;
@@ -126,23 +162,26 @@
}
}
- .footer {
- width: 100%;
- padding: 30rpx;
- position: fixed;
- bottom: 0;
- left: 0;
- z-index: 10;
- box-sizing: border-box;
+ .address-row {
+ flex: 1;
+ justify-content: flex-end;
+ align-items: center;
+ }
- .footer-btn {
- width: 100%;
- height: 78rpx;
- line-height: 78rpx;
- background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%);
- border-radius: 8rpx;
- color: #fff;
- font-size: 32rpx;
- }
+ .address-content {
+ width: calc(100% - 116rpx - 20rpx);
+ margin-right: 20rpx;
+ text-align: right;
+ }
+
+ .location-btn {
+ width: 116rpx;
+ height: 46rpx;
+ line-height: 46rpx;
+ border-radius: 4rpx;
+ border: 1px solid currentColor;
+ padding: 0;
+ background-color: #fff;
+ text-align: center;
}
</style>
\ No newline at end of file
diff --git a/subPackage/user/family/edit.vue b/subPackage/user/family/edit.vue
index 9b3c435..483d18a 100644
--- a/subPackage/user/family/edit.vue
+++ b/subPackage/user/family/edit.vue
@@ -161,10 +161,10 @@
<button class="del-btn footer-btn" @click="delAction">删除</button>
<button class="save-btn footer-btn" @click="submit">保存</button>
</view>
- <view class="footer flex j-c-s-b a-i-c bgc-ff" v-if="type == 1">
- <button class="add-btn footer-btn" @click="submit">提交</button>
- </view>
-
+ <!-- <view class="footer flex j-c-s-b a-i-c bgc-ff" >
+ <button class="add-btn footer-btn" >提交</button>
+ </view> -->
+ <footer-btn v-if="type == 1" @click="submit" />
</view>
@@ -476,17 +476,17 @@
.main {
- position: relative;
- height: 0;
- flex: 1;
+ // position: relative;
+ // height: 0;
+ // flex: 1;
display: flex;
flex-direction: column;
.content {
- height: 0;
- flex: 1;
- overflow-y: auto;
- padding-bottom: 120rpx;
+ // height: 0;
+ // flex: 1;
+ // overflow-y: auto;
+ padding-bottom: 160rpx;
// padding-bottom: 36rpx;
}
@@ -534,12 +534,16 @@
bottom:0;
left:0;
backgroun-color:#fff;
+ padding-bottom: env(safe-area-inset-bottom);
.footer-btn {
+ width:48%;
height: 78rpx;
line-height: 78rpx;
border-radius: 8rpx 8rpx 8rpx 8rpx;
font-size: 32rpx;
color: #fff;
+
+
}
.add-btn {
@@ -548,13 +552,11 @@
}
.del-btn {
- width: 236rpx;
background: linear-gradient(163deg, #FE6C5C 0%, #EA1F1F 99%);
}
.save-btn {
- width: 424rpx;
background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%);
}
}
diff --git a/subPackage/user/family/list.vue b/subPackage/user/family/list.vue
index 3f8683e..fd1802c 100644
--- a/subPackage/user/family/list.vue
+++ b/subPackage/user/family/list.vue
@@ -16,10 +16,7 @@
<button class="action-btn c-main f-24" @click="navTo(2,item)">管理</button>
</view>
</view>
-
- <view class="footer">
- <button class="footer-btn" @click="navTo(1)">添加成员</button>
- </view>
+ <footer-btn text="添加成员" @click="navTo(1)" />
</view>
</template>
@@ -83,25 +80,6 @@
}
.ml-40{
margin-left:40rpx;
- }
- }
- .footer {
- width: 100%;
- padding: 30rpx;
- position: fixed;
- bottom: 0;
- left: 0;
- z-index: 10;
- box-sizing: border-box;
-
- .footer-btn {
- width: 100%;
- height: 78rpx;
- line-height: 78rpx;
- background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%);
- border-radius: 8rpx;
- color: #fff;
- font-size: 32rpx;
}
}
</style>
\ No newline at end of file
diff --git a/subPackage/user/password/index.vue b/subPackage/user/password/index.vue
index 8036a44..fbba7b5 100644
--- a/subPackage/user/password/index.vue
+++ b/subPackage/user/password/index.vue
@@ -22,9 +22,12 @@
</u-form>
</view>
<!-- <button class="confirm_btn" @click="confirm">保存</button>-->
- <view class="footer">
+ <!-- <view class="footer">
<button class="footer-btn" @click="confirm">提交</button>
- </view>
+ </view> -->
+
+ <footer-btn @click="confirm" />
+
</view>
</template>
@@ -194,24 +197,5 @@
width: 90%;
margin-top: 200rpx;
border-radius: 20rpx;
- }
- .footer {
- width: 100%;
- padding: 30rpx;
- position: fixed;
- bottom: 0;
- left: 0;
- z-index: 10;
- box-sizing: border-box;
- padding-bottom: calc( env(safe-area-inset-bottom) + 50rpx);
- .footer-btn {
- width: 100%;
- height: 78rpx;
- line-height: 78rpx;
- background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%);
- border-radius: 8rpx;
- color: #fff;
- font-size: 32rpx;
- }
}
</style>
\ No newline at end of file
diff --git a/subPackage/user/role/index.vue b/subPackage/user/role/index.vue
index 486131d..0206bb3 100644
--- a/subPackage/user/role/index.vue
+++ b/subPackage/user/role/index.vue
@@ -4,9 +4,12 @@
<role-list :roleData="roleData" :current-id="selectRole.id" @select="select"></role-list>
</view>
- <view class="cur-btn" v-if="roleData.length">
+ <!-- <view class="cur-btn" v-if="roleData.length">
<u-button @click="submit" type="primary" text="确定"></u-button>
- </view>
+ </view> -->
+
+ <footer-btn v-if="roleData.length" text="确定" @click="submit" />
+
<u-loading-page :loading="loading"></u-loading-page>
</view>
diff --git a/subPackage/workbench/views/rental.vue b/subPackage/workbench/views/rental.vue
index 0cd3426..8a79bc9 100644
--- a/subPackage/workbench/views/rental.vue
+++ b/subPackage/workbench/views/rental.vue
@@ -1,9 +1,13 @@
<template>
<view class="">
<view class="header bgc-ff">
- <view class="filter-box">
+ <!-- <view class="filter-box">
<chenchuang-CCDropDownFilter :filterData='filterData' :defaultIndex='defaultIndex'
@onSelected='handleSelect'></chenchuang-CCDropDownFilter>
+ </view> -->
+ <view class="tabs">
+ <u-tabs :list="tabsList" :current="tabIndex" @click="tabClick" :inactiveStyle="{color:'#999999'}"
+ :activeStyle="{color:'#017BFC'}"></u-tabs>
</view>
<view class="search-box">
<u-search placeholder="请输入租户名" v-model="keyword" :clearabled="true" :showAction="true" :animation="true"
@@ -25,7 +29,7 @@
<view class="dot bgc-orange"></view>
<text class="f-24">短期3户 (3)人</text>
</view> -->
- <view v-for="(item,index) in statistics" :key="index" class="row-item bgc-ff flex a-i-c" >
+ <view v-for="(item,index) in statistics" :key="index" class="row-item bgc-ff flex a-i-c">
<view v-if="item.term =='shortTerm' " class="dot bgc-orange"></view>
<view v-if="item.term =='middleTerm' " class="dot bgc-main"></view>
<view v-if="item.term =='longTerm' " class="dot bgc-green"></view>
@@ -33,7 +37,7 @@
</view>
</view>
- <view class="list bgc-ff" v-for="(records,index) in tenantList" :key="index">
+ <view class="list bgc-ff" v-for="(records,index) in tenantList" :key="index">
<view class="flex j-c-s-b a-i-c">
<view class="flex a-i-c">
<text class="f-32 mr-50">{{ records.tenantName }}</text>
@@ -72,6 +76,34 @@
export default {
data() {
return {
+
+ tabsList: [{
+ name: '全部',
+ value: ''
+ },
+ {
+ name: '待确认',
+ value: '0'
+ },
+ {
+ name: '已确认',
+ value: '1'
+ },
+ {
+ name: '未到期',
+ value: '10'
+ },
+ {
+ name: '即将到期',
+ value: '20'
+ },
+ {
+ name: '已到期',
+ value: '30'
+ }
+ ],
+
+
filterData: [
[{
name: '全部',
@@ -143,6 +175,7 @@
value: 2
},
],
+ tabIndex: 0
}
},
computed: {
@@ -194,6 +227,16 @@
scrollTop: 0, // 滚动到页面的目标位置(单位px)
});
},
+
+
+ tabClick(item) {
+ this.tabIndex = item.index;
+ this.pagingParams.auditStatus = item.value;
+ this.getRentalHouseInfo()
+ this.getStatistics(item.value)
+ },
+
+
getStatistics(auditStatus = '') {
const {
roleName
diff --git a/subPackage/workbench/views/rental.vue.bak b/subPackage/workbench/views/rental.vue.bak
new file mode 100644
index 0000000..632b472
--- /dev/null
+++ b/subPackage/workbench/views/rental.vue.bak
@@ -0,0 +1,375 @@
+<template>
+ <view class="">
+ <view class="header bgc-ff">
+ <view class="filter-box">
+ <chenchuang-CCDropDownFilter :filterData='filterData' :defaultIndex='defaultIndex'
+ @onSelected='handleSelect'></chenchuang-CCDropDownFilter>
+ </view>
+ <view class="search-box">
+ <u-search placeholder="请输入租户名" v-model="keyword" :clearabled="true" :showAction="true" :animation="true"
+ @search="search" @clear="clear"></u-search>
+ </view>
+ </view>
+
+ <view class="content">
+ <view class="row flex j-c-s-b a-i-c" v-if="tenantList.length">
+ <!-- <view class="row-item bgc-ff flex a-i-c">
+ <view class="dot bgc-green"></view>
+ <text class="f-24">长期3户 (3)人</text>
+ </view>
+ <view class="row-item bgc-ff flex a-i-c">
+ <view class="dot bgc-main"></view>
+ <text class="f-24">中期3户 (3)人</text>
+ </view>
+ <view class="row-item bgc-ff flex a-i-c">
+ <view class="dot bgc-orange"></view>
+ <text class="f-24">短期3户 (3)人</text>
+ </view> -->
+ <view v-for="(item,index) in statistics" :key="index" class="row-item bgc-ff flex a-i-c" >
+ <view v-if="item.term =='shortTerm' " class="dot bgc-orange"></view>
+ <view v-if="item.term =='middleTerm' " class="dot bgc-main"></view>
+ <view v-if="item.term =='longTerm' " class="dot bgc-green"></view>
+ <text class="f-24">{{formatTerm(item.term)}}{{item.total}}户 ({{item.personNum}})人</text>
+ </view>
+ </view>
+
+ <view class="list bgc-ff" v-for="(records,index) in tenantList" :key="index">
+ <view class="flex j-c-s-b a-i-c">
+ <view class="flex a-i-c">
+ <text class="f-32 mr-50">{{ records.tenantName }}</text>
+ <view class="flex a-i-c">
+ <u-icon name="phone-fill" color="#017BFC"></u-icon>
+ <text class="f-28 ml-10">{{ records.phone || '未填写' }}</text>
+ </view>
+ </view>
+ <u-tag text="未到期" type="success" plain plainFill></u-tag>
+ </view>
+ <view class="list-address f-28 c-99">
+ {{ records.houseName }}
+ </view>
+ <view class="list-action flex ">
+ <view class="action-item" @click="tenantManage(records)">
+ <u-icon name="/static/icon/list-02.png" width="40rpx" height="40rpx"></u-icon>
+ <text class="f-28 c-main ml-10">租客管理</text>
+ </view>
+ <view class="action-item">
+ <u-icon name="/static/icon/list-01.png" width="40rpx" height="40rpx"></u-icon>
+ <text class="f-28 c-main ml-10">走访日志</text>
+ </view>
+ </view>
+ </view>
+ </view>
+ <u-toast ref="uToast"></u-toast>
+ <u-loadmore :status="loadingStatus" loadmoreText="开始加载" loadingText="数据加载中" nomoreText="已经到底了" line />
+ </view>
+</template>
+
+<script>
+ import {
+ getRentalHouseContent,
+ getStatistics
+ } from '@/api/houseRental/houseRental.js'
+ export default {
+ data() {
+ return {
+ filterData: [
+ [{
+ name: '全部',
+ value: ''
+ },
+ {
+ name: '待确认',
+ value: '0'
+ },
+ {
+ name: '已确认',
+ value: '1'
+ },
+ // {
+ // name: '审核不通过',
+ // value: '2'
+ // },
+ {
+ name: '未到期',
+ value: '10'
+ },
+ {
+ name: '即将到期',
+ value: '20'
+ },
+ {
+ name: '已到期',
+ value: '30'
+ }
+ ],
+ [{
+ name: '楼层',
+ value: ''
+ },
+ {
+ name: '1楼',
+ value: '1'
+ },
+ {
+ name: '2楼',
+ value: '2'
+ },
+ {
+ name: '3楼',
+ value: '3'
+ }
+ ]
+ ],
+ defaultIndex: [0, 0],
+ keyword: "",
+ statistics: [],
+ tenantList: [],
+ loadingStatus: 'nomore',
+ pagingParams: {
+ current: 1,
+ size: 10
+ },
+ selectParams: {},
+ tenantStatus: [{
+ name: '未到期',
+ value: 0
+ },
+ {
+ name: '已到期',
+ value: 1
+ },
+ {
+ name: '已终止',
+ value: 2
+ },
+ ],
+ }
+ },
+ computed: {
+ formatTerm() {
+ return (term => {
+ if (term == 'longTerm') {
+ return "长期"
+ } else if (term == 'middleTerm') {
+ return "中期"
+ } else if (term == 'shortTerm') {
+ return "短期"
+ }
+ })
+ }
+ },
+ onLoad() {
+ this.currentRole = uni.getStorageSync('activeRole')
+ this.getStatistics()
+ },
+ onShow() {
+ this.tenantList = []
+ this.getRentalHouseInfo()
+ },
+ onReachBottom() {
+ this.pagingParams.current++
+ this.getRentalHouseInfo()
+ },
+ methods: {
+ handleSelect(res) {
+ const [auditStatus, floor] = res
+ this.resetParams()
+ let params = {}
+ if (auditStatus[0].value !== '') {
+ params = {
+ auditStatus: auditStatus[0].value
+ }
+ }
+ if (floor[0].value !== '') {
+ params = {
+ ...params,
+ floor: floor[0].value
+ }
+ }
+ this.selectParams = params
+ this.getRentalHouseInfo()
+ this.getStatistics(auditStatus[0].value)
+ // 回到顶部,避免触发触底加载
+ uni.pageScrollTo({
+ scrollTop: 0, // 滚动到页面的目标位置(单位px)
+ });
+ },
+ getStatistics(auditStatus = '') {
+ const {
+ roleName
+ } = this.currentRole
+ let params = {
+ roleName
+ }
+ if (auditStatus) {
+ params = {
+ auditStatus,
+ roleName
+ }
+ }
+ getStatistics(params).then(res => {
+ this.statistics = res.data
+ })
+ },
+ findObjValue(value, obj) {
+ const res = obj.find(item => {
+ return item.value == value
+ })
+ return res.name
+ },
+ async getRentalHouseInfo(params = {}) {
+ this.$nextTick(() => {
+ this.loadingStatus = 'loadmore'
+ this.$refs.uToast.show({
+ type: 'loading',
+ message: '正在加载',
+ duration: 9999999
+ })
+ })
+ const {
+ roleName
+ } = this.currentRole
+ const {
+ code,
+ data: {
+ records
+ }
+ } = await getRentalHouseContent({
+ tenantName: this.keyword,
+ ...this.pagingParams,
+ roleName,
+ ...this.selectParams
+ })
+ if (code !== 200) {
+ uni.showToast({
+ title: "数据请求错误",
+ icon: "error"
+ })
+ return
+ }
+ this.tenantList = [...this.tenantList, ...records]
+ this.$nextTick(() => {
+ this.$refs.uToast.isShow = false
+ })
+ this.loadingStatus = 'nomore'
+ },
+ search() {
+ this.resetParams()
+ this.getRentalHouseInfo()
+ },
+ clear() {
+ this.keyword = ''
+ this.resetParams()
+ this.search()
+ },
+ tenantManage({
+ houseCode,
+ id
+ }) {
+ this.$u.func.globalNavigator(`/subPackage/bs/views/rentDetail?houseCode=${houseCode}&id=${id}`)
+ },
+ resetParams() {
+ this.tenantList = []
+ this.pagingParams = {
+ current: 1,
+ size: 10
+ }
+ }
+ }
+ }
+</script>
+
+<style lang="scss">
+ page {
+ background-color: #F5F5F5;
+ }
+
+ .header {
+ width: 100%;
+ position: fixed;
+ /*#ifdef H5*/
+ top: 88rpx;
+ /*#endif*/
+ /*#ifdef MP-WEIXIN*/
+ top: 0;
+ /*#endif*/
+ left: 0;
+ z-index: 10;
+ }
+
+ .filter-box {
+ width: 100%;
+ height: 100rpx;
+
+ }
+
+ .search-box {
+ padding: 20rpx 24rpx 30rpx;
+ }
+
+ .content {
+ width: 100%;
+ margin-top: 220rpx;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+
+ .row {
+ width: 100%;
+ padding: 20rpx 0;
+ }
+
+ .row-item {
+ width: calc(100% / 3 - 10rpx);
+ height: 46rpx;
+ border-radius: 30rpx;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+ }
+
+ .dot {
+ width: 10rpx;
+ height: 10rpx;
+ border-radius: 50%;
+ margin-right: 18rpx;
+ }
+
+ .bgc-green {
+ background-color: #30D17C;
+ }
+
+ .bgc-orange {
+ background-color: #FFAC3D;
+ }
+
+ .list {
+ width: 100%;
+ padding: 30rpx 30rpx 0;
+ box-sizing: border-box;
+ margin-bottom: 20rpx;
+ border-radius: 8rpx;
+
+ .list-address {
+ padding: 30rpx 0;
+ }
+
+ .list-action {
+ padding: 22rpx 0 30rpx;
+ border-top: 1px solid #F5F5F5;
+ }
+
+ .action-item {
+ display: flex;
+ flex: 1;
+ justify-content: center;
+ }
+
+ .action-item:first-child {
+ border-right: 1px solid #DBDBDB;
+ }
+
+ .mr-50 {
+ margin-right: 50rpx;
+ }
+ }
+ }
+</style>
\ No newline at end of file
--
Gitblit v1.9.3