From bd87e01aefaeb972f8d980a563773249f9e9e639 Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Fri, 29 Mar 2024 18:51:49 +0800
Subject: [PATCH] 更新

---
 subPackage/article/signature.vue             |   29 +
 api/patrol/patrol.js                         |   38 +-
 subPackage/workbench/views/patrol.vue        |   34 ++
 pages.json                                   |   41 +++
 api/system/index.js                          |    9 
 subPackage/patrol/detail.vue                 |  109 ++++++++
 subPackage/task/workLogDetail.vue            |    6 
 subPackage/workbench/views/workLog.vue       |   36 ++
 pages/home/selectSite.vue                    |    2 
 store/index.js                               |    3 
 subPackage/article/detail.vue                |   40 ++-
 pages/user/center.vue                        |    4 
 pages/home/index.vue                         |   55 ++-
 subPackage/label/bail.vue                    |   21 
 common/setting.js                            |    8 
 subPackage/patrol/list.vue                   |  161 ++++++++++++
 subPackage/workLog/list.vue                  |  160 ++++++++++++
 subPackage/house/houseNumber/siteInspect.vue |    3 
 18 files changed, 672 insertions(+), 87 deletions(-)

diff --git a/api/patrol/patrol.js b/api/patrol/patrol.js
index e6bc2ce..b5f7bd6 100644
--- a/api/patrol/patrol.js
+++ b/api/patrol/patrol.js
@@ -5,7 +5,30 @@
 	return http.request({
 		url: '/blade-gridPatrolRecord/gridPatrolRecord/save',
 		method: 'POST',
-		data:data
+		data: data
+	})
+}
+
+//巡查记录
+export const getPartrolList = (params) => {
+	return http.request({
+		url: '/blade-gridPatrolRecord/gridPatrolRecord/page',
+		method: 'get',
+		params: {
+			...params,
+		}
+	})
+}
+
+
+//巡查详情
+export const getPartrolDetail = (params) => {
+	return http.request({
+		url: '/blade-gridPatrolRecord/gridPatrolRecord/detail',
+		method: 'get',
+		params: {
+			...params,
+		}
 	})
 }
 
@@ -131,19 +154,6 @@
 			...params,
 			current,
 			size,
-		}
-	})
-}
-
-/**
- * 获取组
- */
-export const getPatrolGroupDTO = (taskId) => {
-	return http.request({
-		url: '/api/blade-sm/patrol/patrolGroup/getPatrolGroupDTO',
-		method: 'get',
-		params: {
-			taskId
 		}
 	})
 }
\ No newline at end of file
diff --git a/api/system/index.js b/api/system/index.js
index 4554431..119fe97 100644
--- a/api/system/index.js
+++ b/api/system/index.js
@@ -34,3 +34,12 @@
 	})
 }
 
+export const sendCode = (params) => {
+	return http.request({
+		url: '/blade-smsSend/smsSend/send',
+		method: 'get',
+		params: {
+			...params
+		}
+	})
+}
\ No newline at end of file
diff --git a/common/setting.js b/common/setting.js
index ce4c84d..1d2fd98 100644
--- a/common/setting.js
+++ b/common/setting.js
@@ -10,8 +10,8 @@
 	version: '2.0.0',
 	// 开发环境接口Url
 	// devUrl: 'http://z4042833u6.wicp.vip',
-	devUrl: 'http://192.168.2.111:9528',
-	// devUrl: 'https://srgdjczzxtpt.com:2080/api',
+	// devUrl: 'http://192.168.2.111:9528',
+	devUrl: 'https://srgdjczzxtpt.com:2080/api',
 	// devUrl: 'https://kt39592615.goho.co',
 	minioBaseUrl: "https://srgdjczzxtpt.com:2080/gminio/jczz/",
 	// minioBaseUrl: "http://192.168.0.101:9528/",
@@ -33,9 +33,9 @@
 	// 登录失效code
 	invalidCode: 401,
 	// 客户端ID
-	clientId: 'rider',
+	clientId: 'jczz',
 	// 客户端密钥
-	clientSecret: 'rider_secret',
+	clientSecret: 'jczz_secret_FaXfddsafRsfjlsdf2A12412',
 	// token过期时间(秒)
 	// 30天 30*24*60*60
 	tokenTime: 2592000,
diff --git a/pages.json b/pages.json
index b0112c5..c577c59 100644
--- a/pages.json
+++ b/pages.json
@@ -1074,9 +1074,48 @@
 						"enablePullDownRefresh": false
 					}
 				}
-
 			]
+		},
+
+		//网格巡查
+		{
+			"root": "subPackage/patrol",
+			"pages": [{
+					"path": "list",
+					"style": {
+						"navigationBarTitleText": "巡查记录 ",
+						"navigationBarBackgroundColor": "#fff",
+						"navigationBarTextStyle": "black",
+						"enablePullDownRefresh": false
+					}
+				},
+				{
+					"path": "detail",
+					"style": {
+						"navigationBarTitleText": "巡查详情 ",
+						"navigationBarBackgroundColor": "#fff",
+						"navigationBarTextStyle": "black",
+						"enablePullDownRefresh": false
+					}
+				}
+			]
+		},
+
+		//走访日志
+		{
+			"root": "subPackage/workLog",
+			"pages": [{
+				"path": "list",
+				"style": {
+					"navigationBarTitleText": "走访记录 ",
+					"navigationBarBackgroundColor": "#fff",
+					"navigationBarTextStyle": "black",
+					"enablePullDownRefresh": false
+				}
+			}]
 		}
+
+
 	],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
diff --git a/pages/home/index.vue b/pages/home/index.vue
index 1d295cb..e83e886 100644
--- a/pages/home/index.vue
+++ b/pages/home/index.vue
@@ -721,21 +721,21 @@
 				// immediate: true
 			},
 
-			// isBailer(newVal, oldVal) {
+			isBailer(newVal, oldVal) {
 
-			// 	if (newVal == true) {
-			// 		this.tabs.splice(1, 0, {
-			// 			name: '警务服务',
-			// 			list: [{
-			// 				icon: "/static/icon/nav-11.png",
-			// 				text: "取保候审",
-			// 				path: '/subPackage/label/bail'
-			// 			}]
-			// 		})
-			// 	}
+				if (newVal == true) {
+					this.tabs.splice(1, 0, {
+						name: '警务服务',
+						list: [{
+							icon: "/static/icon/nav-11.png",
+							text: "取保候审",
+							path: '/subPackage/label/bail'
+						}]
+					})
+				}
 
-			// 	immediate: true
-			// }
+				immediate: true
+			}
 
 
 		},
@@ -1074,20 +1074,25 @@
 					let index3 = arr.findIndex(item => item.name.trim() == "取保监居")
 					if (index3 != -1) {
 						console.log(uni.getStorageSync("activeRole").roleName, 11111);
-						// this.isBailer = true;
+						this.isBailer = true;
 
-						this.tabs.splice(1, 0, {
-							name: '警务服务',
-							list: [{
-								icon: "/static/icon/nav-11.png",
-								text: "取保监居",
-								path: '/subPackage/label/bail'
-							}]
-						})
+						// this.tabs.splice(1, 0, {
+						// 	name: '警务服务',
+						// 	list: [{
+						// 		icon: "/static/icon/nav-11.png",
+						// 		text: "取保监居",
+						// 		path: '/subPackage/label/bail'
+						// 	}]
+						// })
+
+					} else {
+						this.isBailer = false;
+						let itemIndex = this.tabs.findIndex(item => item.name.trim() == "警务服务")
+						if (itemIndex != -1) {
+							this.tabs.splice(itemIndex, 1);
+						}
+
 					}
-					// } else {
-					// 	this.isBailer = false;
-					// }
 					return;
 
 					let index = this.getLiveMenuItem(arr, 1)
diff --git a/pages/home/selectSite.vue b/pages/home/selectSite.vue
index 76c5ca2..37905f7 100644
--- a/pages/home/selectSite.vue
+++ b/pages/home/selectSite.vue
@@ -153,7 +153,7 @@
 				this.currentSite = data;
 				for (let i = 0, ii = this.list.length; i < ii; i++) {
 					for (let k = 0, kk = this.list[i].children.length; k < kk; k++) {
-						if (this.list[i].children[k].name == data.name) {
+						if (this.list[i].children[k].id == data.id) {
 							this.selectIndex = i;
 							this.cateName = this.list[i].name;
 							uni.setStorageSync("curStreet", this.list[i].name);
diff --git a/pages/user/center.vue b/pages/user/center.vue
index 08bf9be..2a5c1f9 100644
--- a/pages/user/center.vue
+++ b/pages/user/center.vue
@@ -38,7 +38,7 @@
 			</view>
 		</view>
 		<view class="cell-box" v-if="isLogin">
-			<u-cell-group :border="false" icon="star" :customStyle="{fontSize:'26rpx',color:'#585b61'}">
+			<u-cell-group :border="false" icon="star" :customStyle="{fontSize:'30rpx',color:'#585b61'}">
 				<u-cell v-if="roleType == 1" title="切换角色" isLink url="/subPackage/user/role/index">
 					<image slot="icon" src="/static/icon/menu-center-02.png" class="icon" mode=""></image>
 				</u-cell>
@@ -392,7 +392,7 @@
 		border: 1px solid currentColor;
 		text-align: center;
 		position: fixed;
-		bottom: 150rpx;
+		bottom: 175rpx;
 		left: calc((100% - 690rpx)/2);
 	}
 </style>
\ No newline at end of file
diff --git a/store/index.js b/store/index.js
index b666364..0cdb73c 100644
--- a/store/index.js
+++ b/store/index.js
@@ -149,10 +149,9 @@
 				}
 				if (uni.getStorageSync("siteInfo").addressType == 1 || roleName == "居民") {
 					param.labelType = uni.getStorageSync("siteInfo").addressType;
-
+					param.houseCode = uni.getStorageSync("siteInfo").houseCode;
 				}
 				param.roleName = roleName;
-				console.log("===>", param);
 				dynamicMenu(param).then(res => {
 					if (res.code == 200) {
 						let data = res.data;
diff --git a/subPackage/article/detail.vue b/subPackage/article/detail.vue
index 0ef76c9..3a7a9c8 100644
--- a/subPackage/article/detail.vue
+++ b/subPackage/article/detail.vue
@@ -187,7 +187,8 @@
 				<view class='flex a-i-c login-input'>
 					<input class='f-30 c-33' type='number' placeholder='请输入验证码' v-model="validationCode"
 						placeholder-class='c-aa f-28'></input>
-					<button class='login-input-btn f-24 c-33' @click='getValidationCode'>{{text}}</button>
+					<button class='login-input-btn f-24 c-33' :disabled="!validationCode?true:false"
+						@click='getValidationCode'>{{text}}</button>
 				</view>
 				<!-- 	<button class='login-btn c-ff f-30' :class='validationCode?"bgc-main":""'
 					:disabled="validationCode?false:true">确定</button> -->
@@ -210,6 +211,11 @@
 	import {
 		minioBaseUrl
 	} from "@/common/setting.js"
+
+	import {
+		sendCode
+	} from "@/api/system/index.js"
+
 	export default {
 		components: {
 			tagCell,
@@ -583,12 +589,16 @@
 				// }
 			},
 
-			voteRequest(signPath) {
+			voteRequest(signPath, code) {
 				let data = this.getParams(signPath)
 				uni.showLoading({
 					title: "加载中..."
 				});
-				communityModel.addVoteOperate(data).then(res => {
+				communityModel.addVoteOperate({
+					phone: uni.getStorageSync("userInfo").phone,
+					code: code ? code : this.validationCode,
+					children: data
+				}).then(res => {
 					uni.hideLoading()
 					if (res.code == 200) {
 						uni.showToast({
@@ -619,19 +629,23 @@
 				// }
 				// this.sendValidationCode();
 				let second = 60;
-				let time = setInterval(() => {
-					second--
-					this.text = `${second}秒后获取`
-					if (second == 0 || this.data.isLogin) {
-						clearInterval(time);
-						this.text = "获取验证码";
+
+				sendCode({
+					phone: uni.getStorageSync("userInfo").phone,
+				}).then(res => {
+					if (res.code == 200) {
+						let time = setInterval(() => {
+							second--
+							this.text = `${second}秒后获取`
+							if (second == 0 || this.data.isLogin) {
+								clearInterval(time);
+								this.text = "获取验证码";
+							}
+						}, 1000)
 					}
-				}, 1000)
+				})
 			},
 
-			sendValidationCode() {
-
-			},
 
 			navToDocument(url) {
 
diff --git a/subPackage/article/signature.vue b/subPackage/article/signature.vue
index 9917724..36042d2 100644
--- a/subPackage/article/signature.vue
+++ b/subPackage/article/signature.vue
@@ -22,7 +22,8 @@
 				<view class='flex a-i-c login-input'>
 					<input class='f-30 c-33' type='number' placeholder='请输入验证码' v-model="validationCode"
 						placeholder-class='c-aa f-28'></input>
-					<button class='login-input-btn f-24 bgc-ff c-33' @click='getValidationCode'>{{text}}</button>
+					<button class='login-input-btn f-24 bgc-ff c-33' :disabled="!validationCode?true:false"
+						@click='getValidationCode'>{{text}}</button>
 				</view>
 				<!-- 	<button class='login-btn c-ff f-30' :class='validationCode?"bgc-main":""'
 					:disabled="validationCode?false:true">确定</button> -->
@@ -45,6 +46,10 @@
 		clientSecret,
 		minioBaseUrl
 	} from '@/common/setting'
+
+	import {
+		sendCode
+	} from "@/api/system/index.js"
 	export default {
 		data() {
 			return {
@@ -132,7 +137,7 @@
 			confirmValidationCode() {
 				let pages = getCurrentPages();
 				let prePage = pages[pages.length - 2];
-				prePage.$vm.voteRequest(this.imgSrc);
+				prePage.$vm.voteRequest(this.imgSrc, this.validationCode);
 				this.isShowPopup = false;
 				uni.navigateBack({
 					delta: 2
@@ -149,14 +154,20 @@
 				// }
 				// this.sendValidationCode();
 				let second = 60;
-				let time = setInterval(() => {
-					second--
-					this.text = `${second}秒后获取`
-					if (second == 0 || this.data.isLogin) {
-						clearInterval(time);
-						this.text = "获取验证码";
+				sendCode({
+					phone: uni.getStorageSync("userInfo").phone,
+				}).then(res => {
+					if (res.code == 200) {
+						let time = setInterval(() => {
+							second--
+							this.text = `${second}秒后获取`
+							if (second == 0 || this.data.isLogin) {
+								clearInterval(time);
+								this.text = "获取验证码";
+							}
+						}, 1000)
 					}
-				}, 1000)
+				})
 			},
 
 
diff --git a/subPackage/house/houseNumber/siteInspect.vue b/subPackage/house/houseNumber/siteInspect.vue
index 9d326be..0e99f2d 100644
--- a/subPackage/house/houseNumber/siteInspect.vue
+++ b/subPackage/house/houseNumber/siteInspect.vue
@@ -304,7 +304,8 @@
 					current: 1,
 					size: 10,
 					isPerfect: 2,
-					placeName: this.placeName
+					placeName: this.placeName,
+					isNine: 1
 				}).then(res => {
 					this.placeList = res.data.records;
 				})
diff --git a/subPackage/label/bail.vue b/subPackage/label/bail.vue
index c2e3096..5e644d2 100644
--- a/subPackage/label/bail.vue
+++ b/subPackage/label/bail.vue
@@ -90,13 +90,13 @@
 					reportType: 1
 				},
 				rules: {
-					'info.checkUserName': {
+					checkUserName: [{
 						type: 'string',
 						required: true,
 						message: '请输入姓名',
 						trigger: ['blur', 'change']
-					},
-					'info.checkTelephone': [{
+					}],
+					checkTelephone: [{
 							type: 'number',
 							required: true,
 							message: '请输入手机',
@@ -113,24 +113,24 @@
 						}
 
 					],
-					'info.applyName': {
+					applyName: [{
 						type: 'string',
 						required: true,
 						message: '请输入事由',
 						trigger: ['blur', 'change']
-					},
-					'info.applyTime': {
+					}],
+					applyTime: [{
 						type: 'string',
 						required: true,
 						message: '请输入选择时间',
 						trigger: ['blur', 'change']
-					},
-					'info.location': {
+					}],
+					location: [{
 						type: 'string',
 						required: true,
 						message: '请输入位置',
 						trigger: ['blur', 'change']
-					}
+					}]
 				},
 				showSelectDate: false,
 				applyTime: Number(new Date()),
@@ -152,6 +152,7 @@
 			this.$set(this.info, "checkUserName", userInfo.real_name);
 			this.$set(this.info, "checkTelephone", userInfo.phone);
 			this.$set(this.info, "checkUserId", userInfo.user_id);
+			this.$set(this.info, "applyTime", uni.$u.timeFormat(Number(new Date()), 'yyyy-mm-dd hh:MM:ss'))
 		},
 
 		onReady() {
@@ -251,7 +252,7 @@
 			},
 
 			updateRequest() {
-				this.info.applyTime = Number(new Date(res.data.applyTime));
+				// this.info.applyTime = Number(new Date(res.data.applyTime));
 				updateBailReporting(this.info).then(res => {
 					uni.showToast({
 						icon: 'success',
diff --git a/subPackage/patrol/detail.vue b/subPackage/patrol/detail.vue
new file mode 100644
index 0000000..0533b99
--- /dev/null
+++ b/subPackage/patrol/detail.vue
@@ -0,0 +1,109 @@
+<template>
+	<view class="">
+		<view class="bgc-ff">
+			<view class="item-row flex j-c-s-b a-i-c">
+				<text>巡查标题</text>
+				<text>{{detail.name}}</text>
+			</view>
+			<view class="item-row flex j-c-s-b a-i-c">
+				<text>巡查位置</text>
+				<text class="address">{{detail.location}}</text>
+			</view>
+			<view class="item-row flex j-c-s-b a-i-c" v-if="detail.context">
+				<text>巡查内容</text>
+				<text class="address">{{detail.context}}</text>
+			</view>
+
+			<view class="item-row flex j-c-s-b a-i-c">
+				<text>巡查时间</text>
+				<text>{{detail.patrolTime}}</text>
+			</view>
+		</view>
+		<!-- <view class="box bgc-ff" v-if="detail.context">
+			<view class="caption f-28">
+				巡查内容
+			</view>
+			<view class="f-30">
+				{{detail.context}}
+			</view>
+		</view> -->
+		<view class="box bgc-ff" v-if="images.length">
+			<view class="caption f-28">
+				巡查照片
+			</view>
+			<u-album :urls="images" singleSize="100" multipleSize="100"></u-album>
+		</view>
+	</view>
+
+</template>
+
+<script>
+	import {
+		getPartrolDetail
+	} from "@/api/patrol/patrol.js"
+	import {
+		minioBaseUrl
+	} from "@/common/setting.js"
+	export default {
+		data() {
+			return {
+				detail: {},
+				images: []
+			}
+		},
+
+		onLoad(option) {
+			this.getDetail(option.id)
+		},
+
+		methods: {
+			getDetail(id) {
+				getPartrolDetail({
+					id
+				}).then(res => {
+					this.detail = res.data;
+					if (res.data.url) {
+						this.images = this.setImageUrl(res.data.url);
+					}
+				})
+			},
+
+			setImageUrl(str) {
+				let urls = str.split(",")
+				let temp = [];
+				for (let i of urls) {
+					temp.push(`${minioBaseUrl}${i}`)
+				}
+				return temp
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #f5f5f5;
+	}
+
+	.item-row {
+		width: 100%;
+		padding: 30rpx;
+		box-sizing: border-box;
+		border-bottom: 1px solid #f5f5f5;
+		font-size: 28rpx;
+	}
+
+	.address {
+		width: 70%;
+		text-align: right;
+	}
+
+	.box {
+		padding: 0 30rpx 30rpx;
+		margin-top: 20rpx;
+	}
+
+	.caption {
+		padding: 30rpx 0;
+	}
+</style>
\ No newline at end of file
diff --git a/subPackage/patrol/list.vue b/subPackage/patrol/list.vue
new file mode 100644
index 0000000..9c43817
--- /dev/null
+++ b/subPackage/patrol/list.vue
@@ -0,0 +1,161 @@
+<template>
+	<view class="container">
+		<z-paging ref="paging" v-model="dataList" @query="queryList" :refresher-enabled="false"
+			loading-more-no-more-text="没有更多了" :hide-empty-view="true">
+			<view class="list">
+				<view class="list-item bgc-ff mb-20" v-for="item in dataList" :key="item.id" @click="pushPage(item.id)">
+					<view class="item-title flex a-i-c j-c-s-b mb-20">
+						<text class="f-32 fw">{{item.name}}</text>
+					</view>
+					<view class="item-row flex a-i-c j-c-s-b">
+						<text class="f-28">时间</text>
+						<text class="f-28 c-66">{{ item.createTime }}</text>
+					</view>
+					<view class="item-row flex a-i-c j-c-s-b">
+						<text class="f-28">巡查位置</text>
+						<text class="address f-28 c-66">{{ item.location}}</text>
+					</view>
+				</view>
+			</view>
+		</z-paging>
+		<view v-if="!dataList.length">
+			<u-empty marginTop="50%" mode="list"></u-empty>
+		</view>
+
+		<!-- 	<u-loading-page :loading="loadingPage"></u-loading-page>
+		<u-loading-icon :show="loadingIcon"></u-loading-icon> -->
+	</view>
+</template>
+
+<script>
+	import {
+		getPartrolList
+	} from '@/api/patrol/patrol.js'
+	export default {
+		data() {
+			return {
+				dataList: [],
+				page: {
+					current: 1,
+					size: 10
+				},
+				loadingPage: false,
+				loadingIcon: false,
+				query: {
+					createUser: uni.getStorageSync("userInfo").user_id,
+					type: "",
+				}
+			}
+		},
+
+		onLoad(option) {
+
+			// this.query.type = option.type
+
+
+			// this.getList()
+		},
+		// onReachBottom() {
+		// 	this.page.current += 1
+		// 	this.getList()
+		// },
+		methods: {
+
+
+
+
+			queryList(pageNo, pageSize) {
+				getPartrolList({
+					current: pageNo,
+					size: pageSize,
+				}).then(res => {
+					this.$refs.paging.complete(res.data.records);
+				})
+			},
+
+
+			getList() {
+
+				this.page.current == 1 ? this.loadingPage = true : this.loadingIcon = true
+
+				console.log(this.userInfo)
+				let param = {}
+
+				getPage(Object.assign(param, this.query, this.page)).then(res => {
+					let data = res.data.records
+					this.dataList = this.dataList.concat(data)
+					this.page.current == 1 ? this.loadingPage = false : this.loadingIcon = false
+				})
+			},
+
+			pushPage(id) {
+
+				this.$u.func.globalNavigator(`detail?id=${id}`)
+			}
+
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		width: 100%;
+		height: 100%;
+		background-color: #F5F5F5;
+	}
+
+	.container {
+		// position: relative;
+		width: 100%;
+		height: 100%;
+		// display: flex;
+		// flex-direction: column;
+		// background: #F9F9FA;
+
+
+
+		.item {
+			background-color: #ffffff;
+			padding: 40rpx 20rpx;
+			margin-top: 20rpx;
+
+			.line {
+				display: flex;
+				font-size: 28rpx;
+				padding: 6rpx;
+
+				.label {
+					color: #a4a4a4;
+					width: 25%;
+				}
+
+				.value {}
+			}
+
+
+		}
+
+		.list {
+			margin: 20rpx 30rpx 0;
+		}
+
+		.list-item {
+			padding: 0 30rpx 20rpx;
+			border-radius: 8rpx;
+
+			.item-title {
+				padding: 30rpx 0;
+				border-bottom: 1px solid #F5F5F5;
+			}
+
+			.item-row {
+				padding: 10rpx 0;
+
+				.address {
+					width: 75%;
+					text-align: right;
+				}
+			}
+		}
+	}
+</style>
\ No newline at end of file
diff --git a/subPackage/task/workLogDetail.vue b/subPackage/task/workLogDetail.vue
index 01bdea8..be5717a 100644
--- a/subPackage/task/workLogDetail.vue
+++ b/subPackage/task/workLogDetail.vue
@@ -22,14 +22,14 @@
 		</view>
 		<view class="item-row flex j-c-s-b a-i-c">
 			<text>内容</text>
-			<text class="item-content">{{info.context}}</text>
+			<text class="item-content">{{info.context || ""  }}</text>
 		</view>
 		<view class="item-row flex j-c-s-b a-i-c">
 			<text>走访时间</text>
-			<text>{{info.workTime}}</text>
+			<text>{{info.workTime || ""}}</text>
 		</view>
 
-		<view class="image-wrap bgc-ff">
+		<view class="image-wrap bgc-ff" v-if="Image.length">
 			<view class="mb-20">
 				走访图片
 			</view>
diff --git a/subPackage/workLog/list.vue b/subPackage/workLog/list.vue
new file mode 100644
index 0000000..cdcd7c2
--- /dev/null
+++ b/subPackage/workLog/list.vue
@@ -0,0 +1,160 @@
+<template>
+	<view class="container">
+		<z-paging ref="paging" v-model="dataList" @query="queryList" :refresher-enabled="false"
+			loading-more-no-more-text="没有更多了" :hide-empty-view="true">
+			<view class="list">
+				<view class="list-item bgc-ff mb-20" v-for="item in dataList" :key="item.id" @click="pushPage(item.id)">
+					<view class="item-title flex a-i-c j-c-s-b mb-20">
+						<text class="f-32 fw">{{item.name}}</text>
+					</view>
+					<view class="item-row flex a-i-c j-c-s-b">
+						<text class="f-28">时间</text>
+						<text class="f-28 c-66">{{ item.createTime }}</text>
+					</view>
+					<view class="item-row flex a-i-c j-c-s-b">
+						<text class="f-28">地址</text>
+						<text class="address f-28 c-66">{{ item.address}}</text>
+					</view>
+				</view>
+			</view>
+		</z-paging>
+		<view v-if="!dataList.length">
+			<u-empty marginTop="50%" mode="list"></u-empty>
+		</view>
+
+		<!-- 	<u-loading-page :loading="loadingPage"></u-loading-page>
+		<u-loading-icon :show="loadingIcon"></u-loading-icon> -->
+	</view>
+</template>
+
+<script>
+	import {
+		getWorkLogList
+	} from "@/api/workLog/workLog.js"
+	export default {
+		data() {
+			return {
+				dataList: [],
+				page: {
+					current: 1,
+					size: 10
+				},
+				loadingPage: false,
+				loadingIcon: false,
+				query: {
+					createUser: uni.getStorageSync("userInfo").user_id,
+					type: "",
+				}
+			}
+		},
+
+		onLoad(option) {
+
+			// this.query.type = option.type
+
+
+			// this.getList()
+		},
+		// onReachBottom() {
+		// 	this.page.current += 1
+		// 	this.getList()
+		// },
+		methods: {
+
+
+
+
+			queryList(pageNo, pageSize) {
+				getWorkLogList({
+					current: pageNo,
+					size: pageSize,
+				}).then(res => {
+					this.$refs.paging.complete(res.data.records);
+				})
+			},
+
+
+			getList() {
+
+				this.page.current == 1 ? this.loadingPage = true : this.loadingIcon = true
+
+				console.log(this.userInfo)
+				let param = {}
+
+				getPage(Object.assign(param, this.query, this.page)).then(res => {
+					let data = res.data.records
+					this.dataList = this.dataList.concat(data)
+					this.page.current == 1 ? this.loadingPage = false : this.loadingIcon = false
+				})
+			},
+
+			pushPage(id) {
+				this.$u.func.globalNavigator(`/subPackage/task/workLogDetail?id=${id}`)
+			}
+
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		width: 100%;
+		height: 100%;
+		background-color: #F5F5F5;
+	}
+
+	.container {
+		// position: relative;
+		width: 100%;
+		height: 100%;
+		// display: flex;
+		// flex-direction: column;
+		// background: #F9F9FA;
+
+
+
+		.item {
+			background-color: #ffffff;
+			padding: 40rpx 20rpx;
+			margin-top: 20rpx;
+
+			.line {
+				display: flex;
+				font-size: 28rpx;
+				padding: 6rpx;
+
+				.label {
+					color: #a4a4a4;
+					width: 25%;
+				}
+
+				.value {}
+			}
+
+
+		}
+
+		.list {
+			margin: 20rpx 30rpx 0;
+		}
+
+		.list-item {
+			padding: 0 30rpx 20rpx;
+			border-radius: 8rpx;
+
+			.item-title {
+				padding: 30rpx 0;
+				border-bottom: 1px solid #F5F5F5;
+			}
+
+			.item-row {
+				padding: 10rpx 0;
+
+				.address {
+					width: 75%;
+					text-align: right;
+				}
+			}
+		}
+	}
+</style>
\ No newline at end of file
diff --git a/subPackage/workbench/views/patrol.vue b/subPackage/workbench/views/patrol.vue
index 3243955..fa615fe 100644
--- a/subPackage/workbench/views/patrol.vue
+++ b/subPackage/workbench/views/patrol.vue
@@ -56,7 +56,11 @@
 			<button class="footer-btn" @click="submitInfo">提交</button>
 		</view> -->
 
-		<footer-btn @click="submitInfo"></footer-btn>
+		<!-- <footer-btn @click="submitInfo"></footer-btn> -->
+
+		<button class="submit-btn" @click="sumitInfo">提交</button>
+		<button class="list-btn" @click="navToRecord">巡查记录</button>
+
 
 
 	</view>
@@ -167,6 +171,11 @@
 						})
 					})
 				})
+			},
+			navToRecord() {
+				uni.navigateTo({
+					url: '/subPackage/patrol/list'
+				})
 			}
 		}
 	}
@@ -250,4 +259,27 @@
 		background-color: #fff;
 		text-align: center;
 	}
+
+
+	.submit-btn {
+		width: 690rpx;
+		height: 78rpx;
+		line-height: 78rpx;
+		background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%);
+		border-radius: 8rpx 8rpx 8rpx 8rpx;
+		font-size: 32rpx;
+		color: #fff;
+		margin-top: 50rpx;
+	}
+
+	.list-btn {
+		width: 690rpx;
+		height: 78rpx;
+		line-height: 78rpx;
+		background: linear-gradient(163deg, #c7d7dc 0%, #c3cdd8 100%);
+		border-radius: 8rpx 8rpx 8rpx 8rpx;
+		font-size: 32rpx;
+		color: #fff;
+		margin-top: 50rpx;
+	}
 </style>
\ No newline at end of file
diff --git a/subPackage/workbench/views/workLog.vue b/subPackage/workbench/views/workLog.vue
index 7b4a359..dfd0293 100644
--- a/subPackage/workbench/views/workLog.vue
+++ b/subPackage/workbench/views/workLog.vue
@@ -77,7 +77,12 @@
 			@cancel="isShowTypePicker = false" @confirm="confirmType()" keyName="dictValue"></u-picker>
 		<u-picker :show="isShowLabelPicker" :columns="labelList" :defaultIndex="labelIndex"
 			@cancel="isShowLabelPicker = false" @confirm="confirmLabelType()" keyName="name"></u-picker>
-		<footer-btn @click="submitInfo" :text="isEdit?'保存':'提交'" />
+
+		<!-- <footer-btn @click="submitInfo" :text="isEdit?'保存':'提交'" /> -->
+
+		<button class="submit-btn" @click="sumitInfo">{{isEdit?"保存":"提交"}}</button>
+		<button class="list-btn" @click="navToRecord">走访记录</button>
+
 
 		<u-popup :show="isShowPopup" mode="bottom" :round="10" closeable="true" @close="isShowPopup = false">
 			<view class="popup-content">
@@ -419,6 +424,13 @@
 				uni.navigateBack();
 			},
 
+
+			navToRecord() {
+				uni.navigateTo({
+					url: "/subPackage/workLog/list"
+				})
+			}
+
 		}
 	}
 </script>
@@ -513,4 +525,26 @@
 		font-size: 28rpx;
 		padding: 2rpx 10rpx;
 	}
+
+	.submit-btn {
+		width: 690rpx;
+		height: 78rpx;
+		line-height: 78rpx;
+		background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%);
+		border-radius: 8rpx 8rpx 8rpx 8rpx;
+		font-size: 32rpx;
+		color: #fff;
+		margin-top: 50rpx;
+	}
+
+	.list-btn {
+		width: 690rpx;
+		height: 78rpx;
+		line-height: 78rpx;
+		background: linear-gradient(163deg, #c7d7dc 0%, #c3cdd8 100%);
+		border-radius: 8rpx 8rpx 8rpx 8rpx;
+		font-size: 32rpx;
+		color: #fff;
+		margin-top: 50rpx;
+	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3