From f07b70558d5b84f1070470229037629bc1ace006 Mon Sep 17 00:00:00 2001
From: wjt <1797368093@qq.com>
Date: 星期六, 22 六月 2024 14:39:30 +0800
Subject: [PATCH] 接口对接

---
 policy/reportRecord/reportRecord.vue                           |  169 +++---
 policy/translateRecord/translateRecord.vue                     |   77 ++
 static/policy/rank3.png                                        |    0 
 static/policy/loginHeader.png                                  |    0 
 policy/reportRecord/reportRecord.scss                          |    3 
 policy/components/tabs.vue                                     |    3 
 uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js       |   17 
 policy/reportDetails/reportDetails.vue                         |  128 +++--
 common/upload.js                                               |   27 +
 policy/dataLook/dataLook.scss                                  |   25 
 policy/policyApply/policyApply.vue                             |   41 +
 policy/components/popup.vue                                    |   27 
 policy/applyRecordDetails/applyRecordDetails.vue               |  144 ++++--
 policy/applyRecord/applyRecord.vue                             |   37 +
 api/policy.js                                                  |   40 +
 pages.json                                                     |    2 
 policy/dataLook/dataLook.vue                                   |  268 ++++++++---
 policy/translate/translate.vue                                 |   38 +
 policy/scodePage/scodePage.vue                                 |  114 +++-
 static/policy/rank1.png                                        |    0 
 api/data.js                                                    |   19 
 policy/components/mine.vue                                     |    4 
 policy/reportPage/reportPage.vue                               |  106 +--
 static/policy/rank2.png                                        |    0 
 policy/applyRecordDetails/applyRecordDetails.scss              |    5 
 manifest.json                                                  |    2 
 static/policy/loginHeaer1.png                                  |    0 
 uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js |    3 
 policy/components/upload.vue                                   |   27 +
 policy/scodePage/scodePage.scss                                |   10 
 30 files changed, 898 insertions(+), 438 deletions(-)

diff --git a/api/data.js b/api/data.js
index 3438f47..0fdef00 100644
--- a/api/data.js
+++ b/api/data.js
@@ -4,4 +4,23 @@
 
 export function getDicts(dictType){
 	return http.get('/system/dict/data/type/' + dictType, {}, { custom: { loading: true }});
+}
+
+// 鏁版嵁鍒嗘瀽鎺ュ彛
+// 鎵ф硶鏁版嵁姹囨�� /report/team/getTotalInfo
+export function getTotalInfo(data){
+	return http.get('/report/team/getTotalInfo', {params: data}, { custom: { loading: true }});
+}
+// 鎵ф硶娆℃暟閮ㄩ棬鍒嗘瀽 /report/team/getDeptCount
+export function getDeptCount(data){
+	return http.get('/report/team/getDeptCount', {params: data}, { custom: { loading: true }});
+}
+// 浼佷笟琚墽娉曟鏁� /report/team/getCompanyCount
+export function getCompanyCount(data) {
+	return http.get(`/report/team/getCompanyCount`, {params: data}, { custom: { loading: true }});
+}
+// 鎵ф硶绫诲瀷 
+
+export function getEnforceTypeCount(data) {
+	return http.get(`/report/team/getEnforceTypeCount`, {params: data}, { custom: { loading: true }});
 }
\ No newline at end of file
diff --git a/api/policy.js b/api/policy.js
index 7f62732..c1a8d96 100644
--- a/api/policy.js
+++ b/api/policy.js
@@ -26,9 +26,43 @@
 // 鎵ф硶瀹℃壒鍒楄〃 
 
 export function checkLogList(data) {
+	return http.get(`/enforce/order/checkList`, {params: data}, { custom: { loading: true }});
+}
+// 鎵ф硶瀹℃壒
+export function checkUpd(data) {
+	return http.post(`/tool/check/checkOrder`, data, { custom: { loading: true }});
+}
+
+// 鎵ф硶鍗曡妭鐐� 
+export function orderNodeList(data) {
+	return http.get(`/enforce/order/orderNodeList`, {params: data}, { custom: { loading: true }});
+}
+// 鎵ф硶瀹℃壒璁板綍 /enforce/check/log/list
+export function enforceLogList(data) {
 	return http.get(`/enforce/check/log/list`, {params: data}, { custom: { loading: true }});
 }
-// 鎵ф硶瀹℃壒 /enforce/check/log/upd
-export function checkUpd(data) {
-	return http.get(`/enforce/check/log/upd`, {params: data}, { custom: { loading: true }});
+// 瀹℃壒浜哄鎵硅褰� /enforce/order/checkedList
+
+export function checkedList(data) {
+	return http.get(`/enforce/order/checkedList`, {params: data}, { custom: { loading: true }});
 }
+// 鎵爜鎺ュ彛 
+export function getScanList(data) {
+	return http.get(`/enforce/order/getScanList`, {params: data}, { custom: { loading: true }});
+}
+// 纭鎵ф硶 /enforce/order/doScanOrder/{orderId}
+export function doScanOrder(data) {
+	return http.post(`/enforce/order/doScanOrder/${data}`, {}, { custom: { loading: true }});
+}
+// 甯︿笂鎶ユ墽娉曞垪琛� /enforce/order/execute/list
+export function executeList(data) {
+	return http.get(`/enforce/order/execute/list`, {params: data}, { custom: { loading: true }});
+}
+// 淇敼鎵ф硶鍗� /enforce/order/upd
+export function orderUpd(data) {
+	return http.post(`/enforce/order/doResultOrder`, data, { custom: { loading: true }});
+}
+// 浼佷笟琚墽娉曟鏁� /report/team/getCompanyCount
+export function getCompanyCount(data) {
+	return http.get(`/report/team/getCompanyCount`, data, { custom: { loading: true }});
+}
\ No newline at end of file
diff --git a/common/upload.js b/common/upload.js
new file mode 100644
index 0000000..4d44e33
--- /dev/null
+++ b/common/upload.js
@@ -0,0 +1,27 @@
+import { config } from './config.js'
+export const upload  = (file) => {
+	return new Promise((resolve,refject) => {
+		uni.uploadFile({
+			url: config.baseUrl + '/tool/file/upload',
+			filePath: file,
+			name: 'file',
+			success: val => {
+				const info = JSON.parse(val.data)
+				if(info.code == 200) {
+					resolve(info)
+				} else {
+					refject(info.msg)
+				}
+				
+			},
+			fail: err => {
+				// uni.showToast({
+				// 	title: '鏂囦欢涓婁紶澶辫触锛岃绋嶅悗閲嶈瘯',
+				// 	icon: 'none'
+				// })
+				// console.log(err)
+				refject(err)
+			}
+		})
+	})
+}
\ No newline at end of file
diff --git a/manifest.json b/manifest.json
index 61a4ef1..99b67bf 100644
--- a/manifest.json
+++ b/manifest.json
@@ -1,6 +1,6 @@
 {
     "name" : "娌堜笜鎯犱紒鎵ф硶",
-    "appid" : "__UNI__B26A980",
+    "appid" : "__UNI__0113FBA",
     "description" : "娌堜笜鎯犱紒鎵ф硶",
     "versionName" : "1.0.0",
     "versionCode" : "100",
diff --git a/pages.json b/pages.json
index 11a6fb0..43fc58a 100644
--- a/pages.json
+++ b/pages.json
@@ -150,7 +150,7 @@
 					"path" : "translateRecord/translateRecord",
 					"style" : 
 					{
-						"navigationBarTitleText" : ""
+						"navigationBarTitleText" : "瀹℃壒璁板綍"
 					}
 				},
 				{
diff --git a/policy/applyRecord/applyRecord.vue b/policy/applyRecord/applyRecord.vue
index 41a70c4..39f515a 100644
--- a/policy/applyRecord/applyRecord.vue
+++ b/policy/applyRecord/applyRecord.vue
@@ -8,27 +8,27 @@
 			<u-tabs :list="list1" @click="click" :current="current" :scrollable="false" bgColor="white"></u-tabs>
 		</u-sticky>
 		<view class="list">
-			<view class="list-item" @click="goReport" v-for="(item,index) in dataList" :key="index">
+			<view class="list-item" @click="goReport(item.orderId)" v-for="(item,index) in dataList" :key="index">
 				<view class="top-title">
-					<text>24骞�5鏈堢獊鍑绘鏌ユ秷闃插畨鍏�</text>
-					<text class="status">宸茬粨鏉�</text>
+					<text>{{item.enforceReason}}</text>
+					<text class="status">{{mapStatus[item.orderStatus]}}</text>
 				</view>
 				<view class="user-info">
-					<text>鐜嬫�濋洦</text>
+					<text>{{item.applyUser}}</text>
 					<view class="driver"></view>
-					<text>鎵ф硶涓�澶ч槦</text>
+					<text>{{item.applyDeptName}}</text>
 				</view>
 				<view class="set-line">
-					<text>鎵ф硶瀵硅薄锛�</text>娌冲崡瑙夐啋绉戞妧鏈夐檺鍏徃
+					<text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}}
 				</view>
 				<view class="line"></view>
 				<view class="set-flex set-start set-flex-content-between">
 					<view>
 						<view class="set-line1">
-							<text>鎵ф硶鏃堕棿锛�</text>2024-05-12 12:00
+							<text>鎵ф硶鏃堕棿锛�</text>{{item.planTime}}
 						</view>
 						<view class="set-line1">
-							<text>鐢宠鏃堕棿锛�</text>2024-05-12 12:00:12
+							<text>鐢宠鏃堕棿锛�</text>{{item.applyTime}}
 						</view>
 					</view>
 
@@ -69,37 +69,46 @@
 					pageSize: 10
 				},
 				total: 1,
-				dataList: []
+				dataList: [],
+				mapStatus: {
+					1: '寰呭鎵�',
+					2: "寰呮墽琛�",
+					3: "寰呬笂鎶�",
+					'-1':"宸叉嫆缁�",
+					4: "宸茬粨鏉�"
+				}
 			}
 		},
-		onShow() {
+		onLoad() {
 			this.orderList()
 		},
 		onReachBottom() {
-			if(this.list.length == this.total) {
+			if(this.dataList.length == this.total) {
 				return
 			}
 			this.queryParams.pageNum++
 			this.orderList()
 		},
 		methods: {
-			goReport() {
+			goReport(id) {
 				uni.navigateTo({
-					url: `/policy/applyRecordDetails/applyRecordDetails`
+					url: `/policy/applyRecordDetails/applyRecordDetails?id=${id}`
 				})
 			},
 			click(e) {
+				this.dataList = []
 				this.queryParams.pageNum = 1
 				this.current = e.index
+				this.orderList()
 			},
 			orderList() {
 				orderList({...this.queryParams, orderStatus: this.list1[this.current].value}).then(val => {
-					// console.log(val.data)
 					this.total = val.data.total
 					this.dataList = [...this.dataList,...val.data.rows]
 				})
 			},
 			search(e){
+				this.dataList = []
 				this.queryParams.pageNum =1
 				this.queryParams.companyName = e
 				this.orderList()
diff --git a/policy/applyRecordDetails/applyRecordDetails.scss b/policy/applyRecordDetails/applyRecordDetails.scss
index c9475f9..8d98922 100644
--- a/policy/applyRecordDetails/applyRecordDetails.scss
+++ b/policy/applyRecordDetails/applyRecordDetails.scss
@@ -56,6 +56,7 @@
 			display: grid;
 			grid-template-columns: 1fr 1fr 1fr;
 			grid-gap: 22rpx;
+			padding: 0 32rpx;
 			image{
 				width: 100%;
 				height: 220rpx;
@@ -96,6 +97,10 @@
 					align-items: center;
 					.time{
 						margin-left: 32rpx;
+						width: 58%;
+					}
+					.submit-per{
+						width: 42%;
 					}
 					text{
 						color: #4A4E60;
diff --git a/policy/applyRecordDetails/applyRecordDetails.vue b/policy/applyRecordDetails/applyRecordDetails.vue
index 95516ee..45668b8 100644
--- a/policy/applyRecordDetails/applyRecordDetails.vue
+++ b/policy/applyRecordDetails/applyRecordDetails.vue
@@ -25,23 +25,40 @@
 					</view>
 					<view class="view-form-item">
 						<view class="label">鎵ф硶鏃堕棿</view>
-						<view>{{details.executeTime}}</view>
+						<view>{{details.planTime}}</view>
 					</view>
 					<view class="view-form-item">
 						<view class="label">鎵ф硶绫诲瀷</view>
-						<view>{{details.enforceTypeName}}</view>
+						<view>{{typeList}}</view>
 					</view>
-					<view class="view-form-item">
-						<view class="label">鎵ф硶浜哄憳</view>
-						<view>{{details.executeUser}}</view>
+					
+					<view v-if="!details.executeUser">
+						<view class="view-form-item">
+							<view class="label">鎵ф硶浜哄憳</view>
+							<view>{{details.applyUser}}</view>
+						</view>
+						<view class="view-form-item">
+							<view class="label">鎵ф硶閮ㄩ棬</view>
+							<view>{{details.applyDeptName}}</view>
+						</view>
 					</view>
-					<view class="view-form-item">
-						<view class="label">鎵ф硶閮ㄩ棬</view>
-						<view>{{details.executeDeptName}}</view>
+					<view v-else>
+						<view class="view-form-item">
+							<view class="label">鎵ф硶浜哄憳</view>
+							<view>{{details.executeUser}}</view>
+						</view>
+						<view class="view-form-item">
+							<view class="label">鎵ф硶閮ㄩ棬</view>
+							<view>{{details.executeDeptName}}</view>
+						</view>
 					</view>
-					<view class="view-form-item">
+					<view class="view-form-item" style="margin-top: 20rpx;">
 						<view class="label">闅忚浜哄憳</view>
-						<view>闅忚浜哄憳</view>
+						<view>
+							<view style="margin-bottom: 20rpx;"v-for="(item,index) in details.peers" :key="index">
+								{{item.peerUser}}({{item.peerDeptName}})
+							</view>
+						</view>
 					</view>
 					<view class="view-form-item">
 						<view class="label">鏄惁閫氱煡浼佷笟</view>
@@ -65,40 +82,39 @@
 					{{ details.regionReason }}
 				</view>
 			</view>
-			<view class="base-card">
+			<view class="base-card" v-if="judgeDetails.length">
 				<view class="title">
 					<text>瀹℃壒鎯呭喌</text>
 				</view>
 				<view class="view-form">
-					<view class="view-form-item">
-						<view class="label">瀹℃壒缁撴灉</view>
-						<view>24骞�5鏈堜唤娑堥槻绐佸嚮妫�鏌�</view>
-					</view>
-					<view class="view-form-item">
-						<view class="label">瀹℃壒浜�</view>
-						<view>24骞�5鏈堜唤娑堥槻绐佸嚮妫�鏌�</view>
-					</view>
-					<view class="view-form-item">
-						<view class="label">瀹℃壒閮ㄩ棬</view>
-						<view>24骞�5鏈堜唤娑堥槻绐佸嚮妫�鏌�</view>
-					</view>
-					<view class="view-form-item">
-						<view class="label">瀹℃壒鏃堕棿</view>
-						<view>24骞�5鏈堜唤娑堥槻绐佸嚮妫�鏌�</view>
+					<view v-for="(item,index) in judgeDetails" :key="index">
+						<view class="view-form-item">
+							<view class="label">瀹℃壒缁撴灉</view>
+							<view v-if="item.checkStatus == 1" style="color: #3EB47A;">閫氳繃</view>
+							<view v-else style="color: red">鎷掔粷</view>
+						</view>
+						<view class="view-form-item">
+							<view class="label">瀹℃壒浜�</view>
+							<view>{{item.checkUser}}</view>
+						</view>
+						<view class="view-form-item">
+							<view class="label">瀹℃壒閮ㄩ棬</view>
+							<view>{{item.checkDeptName}}</view>
+						</view>
+						<view class="view-form-item">
+							<view class="label">瀹℃壒鏃堕棿</view>
+							<view>{{item.checkTime}}</view>
+						</view>
 					</view>
 				</view>
 			</view>
-			<view class="base-card">
+			<view class="base-card" v-if="details.orderStatus == 3 || details.orderStatus == 4">
 				<view class="title">
 					<text>鎵ф硶鍥剧墖</text>
 				</view>
 				<view class="view-image">
-					<image src="https://picsum.photos/200/300" mode="widthFix"></image>
-					<image src="https://picsum.photos/200/300" mode="widthFix"></image>
-					<image src="https://picsum.photos/200/300" mode="widthFix"></image>
-					<image src="https://picsum.photos/200/300" mode="widthFix"></image>
-					<image src="https://picsum.photos/200/300" mode="widthFix"></image>
-					<!-- {{regionImgs}} -->
+					<image :src="baseUrl+item" mode="widthFix" v-for="(item,index) in details.regionImgs" :key="index"></image>
+				 
 				</view>
 			</view>
 			<view class="base-card">
@@ -106,20 +122,22 @@
 					<text>鎵ф硶杩涘害</text>
 				</view>
 				<view class="view-step">
-					<view class="step-content">
-						<image class="icon" src="/static/policy/icon.png" mode="widthFix"></image>
+					<view class="step-content" :class="{none: index == nodeList.length - 1}" v-for="(item,index) in nodeList" :key="index">
+						<image class="icon" src="/static/policy/icon.png" mode="widthFix" v-if="!item.nodeReason"></image>
+						<image src="/static/policy/refject.png" mode="widthFix" class="icon" v-else></image>
 						<view class="top-title">
-							鎻愪氦鐢宠
+							{{item.nodeName}}
 						</view>
 						<view class="down-tips">
-							<view>鎻愪氦浜猴細<text>鏋楀皬闆�</text></view>
-							<view class="time">2024-06-07 12:14</view>
+							<view class="u-line-1 submit-per">鎻愪氦浜猴細<text>{{item.nodeUser}}</text></view>
+							<view class="time">{{item.nodeTime}}</view>
 						</view>
+						
 					</view>
-					<view class="step-content">
+					<!-- <view class="step-content">
 						<image class="icon" src="/static/policy/icon.png" mode="widthFix"></image>
 						<view class="top-title">
-							鎻愪氦鐢宠
+							瀹℃壒閫氳繃
 						</view>
 						<view class="down-tips">
 							<view>鎻愪氦浜猴細<text>鏋楀皬闆�</text></view>
@@ -127,7 +145,7 @@
 						</view>
 					</view>
 					<view class="step-content none">
-						<!-- <image class="icon" src="/static/policy/icon.png" mode="widthFix"></image> -->
+						<image class="icon" src="/static/policy/icon.png" mode="widthFix"></image>
 						<image src="/static/policy/refject.png" mode="widthFix" class="icon"></image>
 						<view class="top-title">
 							鎻愪氦鐢宠
@@ -136,7 +154,7 @@
 							<view>鎻愪氦浜猴細<text>鏋楀皬闆�</text></view>
 							<view class="time">2024-06-07 12:14</view>
 						</view>
-					</view>
+					</view> -->
 				</view>
 			</view>
 		</view>
@@ -145,30 +163,64 @@
 
 <script>
 	import {
-		orderDetails
+		orderDetails,
+		orderNodeList,
+		enforceLogList
 	} from '@/api/policy.js'
+	import { getDicts } from '@/api/data.js'
+	import { config } from '@/common/config'
 	export default {
 		data() {
 			return {
 				details: {},
+				nodeList: [],
 				mapStatus: {
 					1: '寰呭鎵�',
 					2: "寰呮墽琛�",
 					3: "寰呬笂鎶�",
 					'-1':"宸叉嫆缁�",
 					4: "宸茬粨鏉�"
-				}
+				},
+				typeList: '',
+				judgeDetails: [],
+				baseUrl: config.baseUrl
 			}
 		},
 		onLoad(options) {
-			this.orderDetails(options.id)
+			this.getDetails(options.id)
+			this.orderNodeList(options.id)
+			this.enforceLogList(options.id)
+			
 		},
 		methods: {
 			getDetails(orderId) {
 				orderDetails({
 					orderId
 				}).then(val => {
-					this.details = val.data
+					this.details = val.data.data
+					if(this.details.regionImgs){
+						 this.details.regionImgs = this.details.regionImgs.split(",")
+					}
+					this.getDicts()
+				})
+			},
+			// 鑺傜偣
+			orderNodeList(orderId) {
+				orderNodeList({orderId}).then(val => {
+					this.nodeList = val.data.data
+				})
+			},
+			// 鐢宠璁板綍
+			enforceLogList(orderId) {
+				enforceLogList({orderId}).then(val => {
+					// console.log(val.data.rows)
+					this.judgeDetails = val.data.rows
+				})
+			},
+			getDicts() {
+				getDicts('enforce_type').then(val => {
+					const value = val.data.data.find(item => item.dictCode == this.details.enforceType)
+					this.typeList = value.dictLabel
 				})
 			}
 		}
diff --git a/policy/components/mine.vue b/policy/components/mine.vue
index 1fab1b4..587effb 100644
--- a/policy/components/mine.vue
+++ b/policy/components/mine.vue
@@ -11,7 +11,7 @@
 						<view class="dept-per">鎵ф硶浜哄憳</view>
 					</view>
 					<view class="dept-name">
-						{{userInfo.data.dept.parentName}}
+						{{userInfo.data.dept.deptName}}
 					</view>
 				</view>
 			</view>
@@ -19,7 +19,7 @@
 		<view class="main-box">
 			<view class="show-phone-number">
 				<text class="label">鑱旂郴鐢佃瘽</text>
-				<text v-if="userInfo.phonenumber">{{userInfo.data.phonenumber.replace(/(\d{3})\d{4}(\d{4})/, "$1****$2")}}</text>
+				<text v-if="userInfo.data.phonenumber">{{userInfo.data.phonenumber.replace(/(\d{3})\d{4}(\d{4})/, "$1****$2")}}</text>
 				<text v-else>鏆傛棤鎵嬫満鍙�</text>
 			</view>
 			<view class="show-phone-number" @click="goChangePhone">
diff --git a/policy/components/popup.vue b/policy/components/popup.vue
index 8c34dc4..f4114b8 100644
--- a/policy/components/popup.vue
+++ b/policy/components/popup.vue
@@ -7,32 +7,36 @@
 			<view class="border"></view>
 			<view class="padding">
 				<view>
-					<u-radio-group  placement="row">
-						<u-radio active-color="#3EB47A" label="閫氳繃" name="3"></u-radio>
-						<u-radio active-color="#3EB47A" label="鎷掔粷" name="3"></u-radio>
+					<u-radio-group  placement="row" v-model="form.checkStatus">
+						<u-radio active-color="#3EB47A" label="閫氳繃" name="1"></u-radio>
+						<u-radio active-color="#3EB47A" label="鎷掔粷" name="-1"></u-radio>
 					</u-radio-group>
 				</view>
 				<view class="margin-top">
-					<u-textarea  placeholder="璇疯緭鍏ユ嫆缁濈悊鐢�..."></u-textarea>
+					<u-textarea  placeholder="璇疯緭鍏ユ嫆缁濈悊鐢�..." v-model="form.checkReason"></u-textarea>
 				</view>
 			</view>
 			<view class="down">
 				<view class="cancel button" @click="close">鍙栨秷</view>
-				<view class="enter" @entery="entery">纭</view>
+				<view class="enter" @click="entery">纭</view>
 			</view>
 		</view>
 	</u-popup>
 </template>
 
 <script>
+	 
 	export default {
 		data() {
 			return {
-				show: false
+				show: false,
+				id: '',
+				form: {}
 			}
 		},
 		methods: {
-			open() {
+			open(id) {
+				this.form = {}
 				this.show = true
 			},
 			close(){
@@ -40,7 +44,14 @@
 				this.$emit('cancel')
 			},
 			entery(){
-				this.$emit('entery')
+				if(this.form.checkStatus == -1 && !this.form.checkReason) {
+					uni.showToast({
+						title: '璇疯緭鍏ユ嫆缁濈悊鐢�',
+						icon: 'none'
+					})
+					return
+				}
+				this.$emit('entery', this.form)
 			}
 		}
 	}
diff --git a/policy/components/tabs.vue b/policy/components/tabs.vue
index 84ebf76..db70f0b 100644
--- a/policy/components/tabs.vue
+++ b/policy/components/tabs.vue
@@ -29,6 +29,9 @@
 					success: val => {
 						if(val.errMsg === 'scanCode:ok'){
 							console.log(val.result)
+							uni.navigateTo({
+								url: `/policy/scodePage/scodePage?code=${val.result}`
+							})
 						}
 					}
 				})
diff --git a/policy/components/upload.vue b/policy/components/upload.vue
index 8538aa7..d421f03 100644
--- a/policy/components/upload.vue
+++ b/policy/components/upload.vue
@@ -2,7 +2,7 @@
 	<view>
 		<view class="grid-box">
 			<view class="image-box" v-for="(item,index) in imageList" :key="index">
-				<image :src="item" mode="aspectFit"></image>
+				<image :src="baseUrl+item" mode="aspectFit"></image>
 				<image src="/static/policy/close.png" mode="widthFix" @click="delImage(index)" class="close"></image>
 			</view>
 			<view class="cam-box" @click="upload" v-if="imageList.length < max">
@@ -13,6 +13,8 @@
 </template>
 
 <script>
+	import { upload } from '@/common/upload.js'
+	import { config } from '@/common/config.js'
 	export default {
 		props: {
 			max: {
@@ -21,12 +23,13 @@
 			},
 			maxSize: {
 				type: Number,
-				default: 2 * 1024 * 1024
+				default: 10 * 1024 * 1024
 			}
 		},
 		data() {
 			return {
-				imageList: []
+				imageList: [],
+				baseUrl: config.baseUrl
 			}
 		},
 		methods: {
@@ -42,10 +45,26 @@
 							})
 							return
 						}
-						this.imageList.push(val.tempFilePaths[0])
+						// console.log(val.tempFilePaths)
+						// this.imageList.push(...val.tempFilePaths)
+						val.tempFilePaths.forEach(async item => {
+							await this.uploadImage(item)
+						})
 					}
 				})
 			},
+			async uploadImage(file) {
+				try{
+					const code = await upload(file)
+					this.imageList.push(code.fileName)
+				} catch(err) {
+					uni.showToast({
+						title: '鏂囦欢涓婁紶澶辫触锛岃绋嶅悗閲嶈瘯',
+						icon: 'none'
+					})
+					console.log(err)
+				}
+			},
 			delImage(index) {
 				this.imageList.splice(index,1)
 			}
diff --git a/policy/dataLook/dataLook.scss b/policy/dataLook/dataLook.scss
index 0444d58..dbf5ca5 100644
--- a/policy/dataLook/dataLook.scss
+++ b/policy/dataLook/dataLook.scss
@@ -3,10 +3,14 @@
 	height: 380rpx;
 	flex-shrink: 0;
 	background: linear-gradient(180deg, #1171E0 42.5%, #F4F4F4 100%);
+	position: fixed;
+	top: 50px;
+	z-index: -1;
 }
 .page-main{
-	position: relative;
-	top: -380rpx;
+	// position: relative;
+	// top: -380rpx;
+	padding-bottom: 140rpx;
 	.box{
 		margin: 32rpx 32rpx 20rpx;
 		background-color: white;
@@ -61,12 +65,24 @@
 				}
 				.value{
 					font-weight: 500;
+					font-size: 32rpx;
 				}
 				.width-set{
 					width: 80%;
 					display: flex;
 					justify-content: flex-start;align-items: center;
-					
+					image{
+						width: 48rpx;
+						height: 48rpx;
+						margin-right: 36rpx;
+					}
+					.set-index{
+						width: 48rpx;
+						height: 48rpx;
+						line-height: 48rpx;
+						text-align: center;
+						display: inline-block;
+					}
 				}
 				
 			}
@@ -82,4 +98,7 @@
 			margin: 0 5rpx;
 		}
 	}
+	.origin{
+		color: #FE7B32;
+	}
 }
\ No newline at end of file
diff --git a/policy/dataLook/dataLook.vue b/policy/dataLook/dataLook.vue
index 4023b29..d5d6813 100644
--- a/policy/dataLook/dataLook.vue
+++ b/policy/dataLook/dataLook.vue
@@ -14,58 +14,63 @@
 				<view class="grid-box">
 					<view class="grid-item">
 						<view class="label">浼佷笟鎬绘暟</view>
-						<view>5,400</view>
+						<view>{{infoData.companyNum || 0}}</view>
 					</view>
 					<view class="grid-item">
 						<view class="label">鎵ф硶鍗曚綅</view>
-						<view>5,400</view>
+						<view>{{infoData.enforceCompanyNum || 0}}</view>
 					</view>
 					<view class="grid-item">
 						<view class="label">鎵ф硶浜哄憳</view>
-						<view>5,400</view>
+						<view>{{infoData.enforceUserNum || 0}}</view>
 					</view>
 					<view class="grid-item">
 						<view class="label">鎵ф硶鐢宠</view>
-						<view>5,400</view>
+						<view>{{infoData.enforceOrderNum || 0}}</view>
 					</view>
 					<view class="grid-item">
 						<view class="label">宸插鎵�</view>
-						<view>5,400</view>
+						<view>{{infoData.enforceOrderCheckedNum || 0}}</view>
 					</view>
 					<view class="grid-item">
 						<view class="label">宸茬粨鏉�</view>
-						<view>5,400</view>
+						<view>{{infoData.enforceOrderCompleteNum || 0}}</view>
 					</view>
 				</view>
 			</view>
 			<view class="box">
 				<view class="title set-flex-content-between set-flex">
 					<text>鎵ф硶鍗曚綅鎵ф硶娆℃暟</text>
-					<u-icon name="calendar" size="24"></u-icon>
+					<u-icon name="calendar" size="24" @click="openDate(1)"></u-icon>
 				</view>
 				<view class="number">
-					<view class="date">2024-04-05 <text class="margin-text">鑷�</text> 2024-06-14</view>
+					<view class="date">{{pageQuerm.beginTimeStr1}} <text class="margin-text">鑷�</text> {{pageQuerm.endTimeStr1}}</view>
 					<view class="progress-box">
-						<qiun-data-charts key="11" type="bar" :opts="opts" :chartData="chartData" />
+						<qiun-data-charts  key="11" type="bar"
+							:opts="opts" :chartData="chartData" />
 					</view>
 				</view>
 			</view>
 			<view class="box">
 				<view class="title set-flex-content-between set-flex">
 					<text>浼佷笟琚墽娉曟鏁版帓琛�</text>
-					<u-icon name="calendar" size="24"></u-icon>
+					<u-icon name="calendar" size="24" @click="openDate(2)"></u-icon>
 				</view>
 				<view class="number">
-					<view class="date" style="margin-bottom: 36rpx;">2024-04-05 <text class="margin-text">鑷�</text> 2024-06-14</view>
+					<view class="date" style="margin-bottom: 36rpx;">{{pageQuerm.beginTimeStr2}} <text class="margin-text">鑷�</text>
+						{{pageQuerm.endTimeStr2}}</view>
 					<view class="list-box">
 						<view class="list-item" v-for="(item,index) in listData" :key="index">
 							<view class="width-set">
-								<text style="margin-right: 10rpx;">{{index+1}}</text>
-								<text class="company u-line-1">鍖椾含涓滄柟鐩堣仈绉戞妧鏈夐檺鍏徃</text>
+								<image src="/static/policy/rank1.png" mode="widthFix" v-if="index == 0"></image>
+								<image src="/static/policy/rank2.png" mode="widthFix" v-if="index == 1"></image>
+								<image src="/static/policy/rank3.png" mode="widthFix" v-if="index == 2"></image>
+								<text class="set-index" style="margin-right: 36rpx;color: #7E8596;" v-if="index > 2">{{index+1}}</text>
+								<text class="company u-line-1" style="color: #202D44;">{{item.k}}</text>
 							</view>
-							<text class="value">54</text>
+							<text class="value" :class="{origin: index <= 2}">{{item.v}}</text>
 						</view>
-						<view class="look-more">
+						<view class="look-more" @click="lookMore" v-if="showMore">
 							<text>鏌ョ湅鏇村</text>
 							<u-icon name="arrow-right" color="#7E8596"></u-icon>
 						</view>
@@ -75,46 +80,54 @@
 			<view class="box">
 				<view class="title set-flex-content-between set-flex">
 					<text>鎵ф硶绫诲瀷鍗犳瘮</text>
-					<u-icon name="calendar" size="24"></u-icon>
+					<u-icon name="calendar" size="24" @click="openDate(3)"></u-icon>
 				</view>
 				<view class="number">
-					<view class="date">2024-04-05 <text class="margin-text">鑷�</text> 2024-06-14</view>
+					<view class="date" style="margin-bottom: 20rpx;">{{pageQuerm.beginTimeStr3}} <text class="margin-text">鑷�</text> {{pageQuerm.endTimeStr3}}</view>
 					<view class="progress-box">
-  <qiun-data-charts 
-      type="rose"
-	  key="22"
-      :opts="opts1"
-      :chartData="chartData1"
-    />					</view>
+						<qiun-data-charts type="rose"    tooltipFormat="tooltipDemo1"
+
+ key="22" :opts="opts1" :chartData="chartData1" />
+					</view>
 				</view>
 			</view>
 		</view>
+		    <u-datetime-picker
+		                :show="show"
+						:maxDate="new Date().getTime()"
+						v-model="currentValue"
+		                mode="year-month"
+						@confirm="confirmDate"
+		        ></u-datetime-picker>
 	</view>
 </template>
 
 <script>
+	import {
+		getTotalInfo,
+		getDeptCount,
+		getCompanyCount,
+		getEnforceTypeCount
+	} from '@/api/data.js'
 	export default {
 		data() {
 			return {
+				typeItem: '',
+				currentValue: '',
+				show: false,
+				infoData: [],
 				listData: [
-					{
-						name: '鍖椾含涓滄柟鐩堣仈绉戞妧鏈夐檺鍏徃',
-						value: 54
-					},
-					{
-						name: '鍖椾含涓滄柟鐩堣仈绉戞妧鏈夐檺鍏徃',
-						value: 54
-					},
-					{
-						name: '鍖椾含涓滄柟鐩堣仈绉戞妧鏈夐檺鍏徃',
-						value: 54
-					},
-					{
-						name: '鍖椾含涓滄柟鐩堣仈绉戞妧鏈夐檺鍏徃',
-						value: 54
-					}
 				],
 				chartData: {},
+				pageQuerm: {
+					pageNum: 1,
+					pageSize: 10,
+					total: 1,
+					beginTimeStr: '',
+					endTimeStr: '',
+				},
+				originData: [],
+				showMore: true,
 				//鎮ㄥ彲浠ラ�氳繃淇敼 config-ucharts.js 鏂囦欢涓笅鏍囦负 ['bar'] 鐨勮妭鐐规潵閰嶇疆鍏ㄥ眬榛樿鍙傛暟锛屽閮芥槸榛樿鍙傛暟锛屾澶勫彲浠ヤ笉浼� opts 銆傚疄闄呭簲鐢ㄨ繃绋嬩腑 opts 鍙渶浼犲叆涓庡叏灞�榛樿鍙傛暟涓笉涓�鑷寸殑銆愭煇涓�涓睘鎬с�戝嵆鍙疄鐜板悓绫诲瀷鐨勫浘琛ㄦ樉绀轰笉鍚岀殑鏍峰紡锛岃揪鍒伴〉闈㈢畝娲佺殑闇�姹傘��
 				opts: {
 					color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4",
@@ -149,65 +162,154 @@
 					}
 				},
 				chartData1: {},
+				tooltipCustom: {},
 				opts1: {
-				        color: ["#1890FF","#91CB74","#FAC858","#EE6666","#73C0DE","#3CA272","#FC8452","#9A60B4","#ea7ccc"],
-				        padding: [5,5,5,5],
-				        enableScroll: false,
-				        legend: {
-				          show: true,
-				          position: "left",
-				          lineHeight: 25
-				        },
-				        extra: {
-				          rose: {
-				            type: "area",
-				            minRadius: 50,
-				            activeOpacity: 0.5,
-				            activeRadius: 10,
-				            offsetAngle: 0,
-				            labelWidth: 15,
-				            border: false,
-				            borderWidth: 2,
-				            borderColor: "#FFFFFF"
-				          }
-				        }
-				      }
+					color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4",
+						"#ea7ccc"
+					],
+					tooltipFormat: function (item) {
+						return "456"
+					},
+					padding: [5, 5, 5, 5],
+					enableScroll: false,
+					legend: {
+						show: false,
+					},
+					extra: {
+						rose: {
+							type: "area",
+							minRadius: 50,
+							activeOpacity: 0.5,
+							activeRadius: 10,
+							offsetAngle: 0,
+							labelWidth: 15,
+							border: false,
+							borderWidth: 2,
+							borderColor: "#FFFFFF"
+						},
+						tooltip: {
+							// bgColor: "#fff",
+							// showArrow: false,
+							// fontColor: "#202D44",
+							// bgOpacity: 1,
+						}
+					}
+				}
 			}
 		},
 		onReady() {
+			// console.log(new Date().getMonth() + 1, new Date().getDate())
+			let date = new Date()
+			 date.setMonth(date.getMonth() - 1); // 鍑忓幓1涓湀
+			  date.setDate(1); // 璁剧疆鏃ヤ负鏈堜唤鐨勭涓�澶�
+			this.pageQuerm.beginTime = this.$u.timeFormat(date, "yyyy-mm-dd") + " " + "00:00:00"
+			this.pageQuerm.endTime = this.$u.timeFormat(new Date(), "yyyy-mm-dd") + " " +"23:59:59"
+			this.pageQuerm.beginTimeStr1 = this.pageQuerm.beginTimeStr2 = this.pageQuerm.beginTimeStr3 = this.$u.timeFormat(date, "yyyy-mm-dd")
+			this.pageQuerm.endTimeStr1 = this.pageQuerm.endTimeStr2 = this.pageQuerm.endTimeStr3 = this.$u.timeFormat(new Date(), "yyyy-mm-dd")
+			this.getTotalInfo()
+			this.getCompanyCount()
 			this.getServerData();
 			this.getServerData1()
 		},
 		methods: {
+			confirmDate(e) {
+				if(new Date().getMonth() == new Date(e.value).getMonth()){
+					this.pageQuerm[`beginTimeStr${this.typeItem}`] = this.$u.timeFormat(new Date(e.value).setDate(1), 'yyyy-mm-dd')
+					this.pageQuerm[`endTimeStr${this.typeItem}`] = this.$u.timeFormat(e.value, 'yyyy-mm-dd')
+					this.pageQuerm.beginTime = this.$u.timeFormat(new Date(e.value).setDate(1), 'yyyy-mm-dd') + " " + "00:00:00"
+					this.pageQuerm.endTime = this.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM:ss')
+				} else {
+					this.pageQuerm[`beginTimeStr${this.typeItem}`] = this.$u.timeFormat(new Date(e.value).setDate(1), 'yyyy-mm-dd')
+					this.pageQuerm.beginTime = this.$u.timeFormat(new Date(e.value).setDate(1), 'yyyy-mm-dd') + " " + "00:00:00"
+					const date = new Date(e.value);
+					const year = date.getFullYear();
+					const month = date.getMonth() + 1; // 鏈堜唤浠�0寮�濮嬭绠楋紝闇�瑕佸姞1
+					const lastDay = new Date(year, month, 0)
+					
+					 this.pageQuerm.endTime = this.$u.timeFormat(new Date(lastDay), 'yyyy-mm-dd') + " " + "23:59:59"
+					this.pageQuerm[`endTimeStr${this.typeItem}`] = this.$u.timeFormat(new Date(lastDay), 'yyyy-mm-dd')
+				}
+				
+				if(this.typeItem  == 1) {
+					this.getServerData()
+				}
+				if(this.typeItem  == 2) {
+					this.getCompanyCount()
+				}
+				if(this.typeItem  == 3) {
+					this.getServerData1()
+				}
+				this.show = false
+			},
+			openDate(item) {
+				this.typeItem = item
+				this.currentValue = new Date().getTime()
+				this.show = true
+			},
+			lookMore() {
+				this.pageQuerm.pageNum++
+				const value = this.pageQuerm.pageNum * this.pageQuerm.pageSize
+				const data = this.originData.slice((this.pageQuerm.pageNum - 1) * this.pageQuerm.pageSize, value)
+				this.listData.push(...data)
+				if(value >= this.pageQuerm.total) {
+					this.showMore = false
+				}
+			},
+			// 鑾峰彇鎵ф硶淇℃伅
+			getTotalInfo() {
+				getTotalInfo(this.pageQuerm).then(val => {
+					// console.log(val)
+					this.infoData = val.data.data
+				})
+			},
+			// 鎵ф硶娆℃暟閮ㄩ棬
 			getServerData() {
-				//妯℃嫙浠庢湇鍔″櫒鑾峰彇鏁版嵁鏃剁殑寤舵椂
-				setTimeout(() => {
-					//妯℃嫙鏈嶅姟鍣ㄨ繑鍥炴暟鎹紝濡傛灉鏁版嵁鏍煎紡鍜屾爣鍑嗘牸寮忎笉鍚岋紝闇�鑷鎸変笅闈㈢殑鏍煎紡鎷兼帴
+				getDeptCount(this.pageQuerm).then(val => {
+					const value = val.data.data
+					const label = value.map(item => item.k)
+					const data = value.map(item => item.v)
 					let res = {
-						categories: ["宸ュ晢绠$悊灞�", "鍩庡競绠$悊灞�", "鍩庡競绠$悊灞�", "鍩庡競绠$悊灞�", "鍩庡競绠$悊灞�", "鍩庡競绠$悊灞�"],
+						categories: label,
 						series: [{
-								name: "鐩爣鍊�",
-								data: [35, 36, 31, 33, 13, 34]
-							}
-						]
+							name: "鎵ф硶娆℃暟",
+							data: data,
+							
+						}]
 					};
 					this.chartData = JSON.parse(JSON.stringify(res));
-				}, 500);
+				})
+
 			},
+			// 浼佷笟琚墽娉曟鏁版帓琛�
+			getCompanyCount() {
+				getCompanyCount(this.pageQuerm).then(val => {
+					this.listData = val.data.data.slice(0, this.pageQuerm.pageSize)
+					this.originData  = val.data.data
+					this.pageQuerm.total = val.data.data.length
+					if(this.pageQuerm.total <= this.pageQuerm.pageSize) {
+						this.showMore = false
+					}
+				})
+			},
+			
 			getServerData1() {
-			      //妯℃嫙浠庢湇鍔″櫒鑾峰彇鏁版嵁鏃剁殑寤舵椂
-			      setTimeout(() => {
-			        //妯℃嫙鏈嶅姟鍣ㄨ繑鍥炴暟鎹紝濡傛灉鏁版嵁鏍煎紡鍜屾爣鍑嗘牸寮忎笉鍚岋紝闇�鑷鎸変笅闈㈢殑鏍煎紡鎷兼帴
-			        let res = {
-			            series: [
-			              {
-			                data: [{"name":"涓�鐝�","value":50},{"name":"浜岀彮","value":30},{"name":"涓夌彮","value":20},{"name":"鍥涚彮","value":18},{"name":"浜旂彮","value":8}]
-			              }
-			            ]
-			          };
-			        this.chartData1 = JSON.parse(JSON.stringify(res));
-			      }, 500);
-			    },
+				getEnforceTypeCount(this.pageQuerm).then(val => {
+					const data = val.data.data.map(item => {
+						return {
+							name: item.k,
+							value: item.v,
+							"labelText": item.k
+						}
+					})
+					let res = {
+						series: [{
+							data:  data,
+							}]
+					};
+					this.chartData1 = JSON.parse(JSON.stringify(res));
+			
+				})
+			},
 		}
 	}
 </script>
diff --git a/policy/policyApply/policyApply.vue b/policy/policyApply/policyApply.vue
index 49ff902..2144073 100644
--- a/policy/policyApply/policyApply.vue
+++ b/policy/policyApply/policyApply.vue
@@ -41,7 +41,7 @@
 						鎵ф硶鍐呭
 					</view>
 					<view class="back">
-						<u--textarea :height="120" v-model="form.regionReason" placeholder="璇疯緭鍏�" count maxlength="500"></u--textarea>
+						<u--textarea :height="120" v-model="form.enforceContent" placeholder="璇疯緭鍏�" count maxlength="500"></u--textarea>
 					</view>
 				</view>
 			</view>
@@ -166,9 +166,10 @@
 					applyDeptName: '',
 					enforceType: 1,
 					isNoticeCompany: 0,
-					regionReason: '',
+					regionReason: 0,
 					planTimeStr: '',
-					peers: []
+					peers: [],
+					orderStatus: 1
 				},
 				show: false,
 				columns: [],
@@ -227,7 +228,39 @@
 				}
 				return options;
 			},
+			authFile() {
+				if(!this.form.enforceReason){
+					return '璇峰~鍐欎富棰�'
+				}
+				if(!this.form.companyName){
+					return '璇峰~鍐欑‘璁ゆ墽娉曞璞�'
+				}
+				if(!this.form.companyId) {
+					return '璇风偣鍑绘悳绱㈢‘璁ゆ墽娉曞璞�'
+				}
+				if(!this.form.planTimeStr) {
+					return '璇峰~鍐欐墽娉曟椂闂�'
+				}
+				if(!this.form.enforceTypeName){
+					return '璇烽�夋嫨鎵ф硶绫诲瀷'
+				}
+				if(!this.form.regionReason) {
+					return '璇峰~鍐欐墽娉曞唴瀹�'
+				}
+				if(!this.form.peers.length){
+					return '璇锋坊鍔犲悓琛屼汉'
+				}
+				return ''
+			},
 			submitApply(){
+				const res =	this.authFile()
+				if(res){
+					uni.showToast({
+						title: res,
+						icon: 'none'
+					})
+					return
+				}
 				orderAdd(this.form).then(val => {
 					if(val.data.code == 200) {
 						uni.showToast({
@@ -303,7 +336,7 @@
 							peerDeptName: item.dept.deptName,
 							peerId: item.userId,
 							peerPhone: item.phonenumber,
-							peerType: 3,
+							peerType: 2,
 							peerUser: item.nickName
 						})
 					}
diff --git a/policy/reportDetails/reportDetails.vue b/policy/reportDetails/reportDetails.vue
index cb8dd39..2115ae8 100644
--- a/policy/reportDetails/reportDetails.vue
+++ b/policy/reportDetails/reportDetails.vue
@@ -4,35 +4,44 @@
 			<view class="form">
 				<view class="form-item">
 					<view class="label">鎵ф硶涓婚</view>
-					<view class="input">24骞�5鏈堜唤娑堥槻绐佸嚮妫�鏌�</view>
+					<view class="input">{{details.enforceReason}}</view>
 				</view>
 				<view class="form-item">
 					<view class="label">鎵ф硶瀵硅薄</view>
-					<view class="input">24骞�5鏈堜唤娑堥槻绐佸嚮妫�鏌�</view>
+					<view class="input">{{details.companyName}}</view>
 				</view>
 				<view class="form-item">
 					<view class="label">鎵ф硶鏃堕棿</view>
-					<view class="input">24骞�5鏈堜唤娑堥槻绐佸嚮妫�鏌�</view>
+					<view class="input">{{details.planTime}}</view>
 				</view>
 				<view class="form-item">
 					<view class="label">鎵ф硶绫诲瀷</view>
-					<view class="input">24骞�5鏈堜唤娑堥槻绐佸嚮妫�鏌�</view>
+					<view class="input">{{enforceType}}</view>
 				</view>
 				<view class="form-item">
 					<view class="label">鎵ф硶浜哄憳</view>
-					<view class="input">24骞�5鏈堜唤娑堥槻绐佸嚮妫�鏌�</view>
+					<view class="input">{{details.executeUser}}</view>
 				</view>
 				<view class="form-item">
 					<view class="label">鎵ф硶閮ㄩ棬</view>
-					<view class="input">24骞�5鏈堜唤娑堥槻绐佸嚮妫�鏌�</view>
+					<view class="input">{{details.executeDeptName}}</view>
 				</view>
 			</view>
 		</view>
 		<view class="box">
 			<view class="form-input">
+				<view class="form-input-item" style="margin-bottom: 40rpx;">
+					<view class="form-label require" style="margin-bottom: 40rpx;">鎵ф硶缁撴灉</view>
+					<view>
+						<u-radio-group v-model="form.regionStatus">
+							<u-radio shape="circle" label="姝e父" name="0"></u-radio>
+							<u-radio shape="circle" label="寰呮暣鏀�" name="1"></u-radio>
+						</u-radio-group>
+					</view>
+				</view>
 				<view class="form-input-item">
-					<view class="form-label require">鎵ф硶缁撴灉</view>
-					<u-textarea placeholder="璇疯緭鍏�..." count v-model="form.reasoon" maxlength="500"></u-textarea>
+					<view class="form-label require">鎵ф硶缁撴灉璇存槑</view>
+					<u-textarea placeholder="璇疯緭鍏�..." count v-model="form.regionReason" maxlength="500"></u-textarea>
 				</view>
 				
 				<view class="form-input-item">
@@ -41,13 +50,13 @@
 						<view class="show-hint">鍙笂浼�9寮犲浘锛屽崟寮犱笉寰楄秴杩�10m</view>
 					</view>
 					<view>
-						<uploadImage></uploadImage>
+						<uploadImage ref="uploadImage"></uploadImage>
 					</view>
 				</view>
 			</view>
 		</view>
 		<view class="down">
-			<view class="button">
+			<view class="button" @click="startReport">
 				涓婃姤缁撴灉
 			</view>
 		</view>
@@ -56,6 +65,8 @@
 
 <script>
 	import uploadImage from '@/policy/components/upload.vue'
+	import { orderDetails,orderUpd } from '@/api/policy.js'
+	import { getDicts } from '@/api/data.js'
 	export default {
 		components: {
 			uploadImage
@@ -63,57 +74,65 @@
 		data() {
 			return {
 				form: {
-					reasoon: ''
+					regionReason: '',
+					regionStatus: '0'
 				},
-				fileList1: []
+				fileList1: [],
+				details: {},
+				enforceType: ""
 			}
 		},
+		onLoad(options) {
+			this.orderDetails(options.id)
+		},
 		methods: {
-			// 鍒犻櫎鍥剧墖
-			deletePic(event) {
-				this[`fileList${event.name}`].splice(event.index, 1)
+			// 鑾峰彇鎵ф硶绫诲瀷鏋氫妇
+			getDicts() {
+				getDicts('enforce_type').then(val => {
+					if(val.data.data) {
+						this.enforceType = val.data.data.find(item => item.dictCode == this.details.enforceType).dictLabel
+					}
+				})
 			},
-			// 鏂板鍥剧墖
-			async afterRead(event) {
-				// 褰撹缃� multiple 涓� true 鏃�, file 涓烘暟缁勬牸寮忥紝鍚﹀垯涓哄璞℃牸寮�
-				let lists = [].concat(event.file)
-				let fileListLen = this[`fileList${event.name}`].length
-				lists.map((item) => {
-					this[`fileList${event.name}`].push({
-						...item,
-						status: 'uploading',
-						message: '涓婁紶涓�'
+			// 鑾峰彇鎵ф硶鍗曡鎯�
+			orderDetails(id) {
+				orderDetails({orderId: id}).then(val => {
+					this.details = val.data.data
+					this.getDicts()
+				})
+			},
+			// 涓婃姤鎵ц缁撴灉
+			startReport() {
+				if(!this.form.regionReason){
+					uni.showToast({
+						title: '璇峰~鍐欐墽娉曠粨鏋�',
+						icon: 'none'
 					})
-				})
-				for (let i = 0; i < lists.length; i++) {
-					const result = await this.uploadFilePromise(lists[i].url)
-					let item = this[`fileList${event.name}`][fileListLen]
-					this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
-						status: 'success',
-						message: '',
-						url: result
-					}))
-					fileListLen++
+					return
 				}
-			},
-			uploadFilePromise(url) {
-				return new Promise((resolve, reject) => {
-					let a = uni.uploadFile({
-						url: 'http://192.168.2.21:7001/upload', // 浠呬负绀轰緥锛岄潪鐪熷疄鐨勬帴鍙e湴鍧�
-						filePath: url,
-						name: 'file',
-						formData: {
-							user: 'test'
-						},
-						success: (res) => {
-							setTimeout(() => {
-								resolve(res.data.data)
-							}, 1000)
-						}
-					});
+				const image = this.$refs.uploadImage.imageList
+				if(!image.length){
+					uni.showToast({
+						title: '璇蜂笂浼犳墽娉曞浘鐗�',
+						icon: 'none'
+					})
+					return
+				}
+				this.details.regionReason = this.form.regionReason
+				this.form.regionImgs = image.join()
+				this.form.orderId = this.details.orderId
+				orderUpd(this.form).then(val  =>{
+					if(val.data.code == 200) {
+						uni.showToast({
+							title: '涓婃姤鎴愬姛',
+							icon: 'none'
+						})
+						setTimeout(() => {
+							uni.navigateBack()
+						}, 500)
+					}
 				})
-			},
-			
+			}
 		}
 	}
 </script>
@@ -124,4 +143,7 @@
 </style>
 <style lang="scss" scoped>
 	@import "./reportDetails.scss";
+	/deep/ .u-radio{
+		margin-right: 80rpx;
+	}
 </style>
\ No newline at end of file
diff --git a/policy/reportPage/reportPage.vue b/policy/reportPage/reportPage.vue
index 9e1e614..40f92aa 100644
--- a/policy/reportPage/reportPage.vue
+++ b/policy/reportPage/reportPage.vue
@@ -1,90 +1,36 @@
 <template>
 	<view class="page-box">
 		<view class="list">
-			<view class="list-item" @click="goReport">
+			<view class="list-item" v-for="(item,index) in list" :key="index">
 				<view class="top-title">
-					<text>24骞�5鏈堢獊鍑绘鏌ユ秷闃插畨鍏�</text>
+					<text>{{item.enforceReason}}</text>
 					<text class="status">寰呬笂鎶�</text>
 				</view>
 				<view class="user-info">
-					<text>鐜嬫�濋洦</text>
+					<text>{{item.executeUser}}</text>
 					<view class="driver"></view>
-					<text>鎵ф硶涓�澶ч槦</text>
+					<text>{{item.executeDeptName}}</text>
 				</view>
 				<view class="set-line">
-					<text>鎵ф硶瀵硅薄锛�</text>娌冲崡瑙夐啋绉戞妧鏈夐檺鍏徃
+					<text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}}
 				</view>
 				<view class="line"></view>
 				<view class="set-flex set-start set-flex-content-between">
 					<view>
 						<view class="set-line1">
-							<text>鎵ф硶鏃堕棿锛�</text>2024-05-12 12:00
+							<text>鎵ф硶鏃堕棿锛�</text>{{item.planTime}}
 						</view>
 						<view class="set-line1">
-							<text>鐢宠鏃堕棿锛�</text>2024-05-12 12:00:12
+							<text>鐢宠鏃堕棿锛�</text>{{item.applyTime}}
 						</view>
 					</view>
-					<view class="button">
+					<view class="button" @click="goReport(item.orderId)" >
 						涓婃姤
 					</view>
 				</view>
 			</view>
-			<view class="list-item">
-				<view class="top-title">
-					<text>24骞�5鏈堢獊鍑绘鏌ユ秷闃插畨鍏�</text>
-					<text class="status">寰呬笂鎶�</text>
-				</view>
-				<view class="user-info">
-					<text>鐜嬫�濋洦</text>
-					<view class="driver"></view>
-					<text>鎵ф硶涓�澶ч槦</text>
-				</view>
-				<view class="set-line">
-					<text>鎵ф硶瀵硅薄锛�</text>娌冲崡瑙夐啋绉戞妧鏈夐檺鍏徃
-				</view>
-				<view class="line"></view>
-				<view class="set-flex set-start set-flex-content-between">
-					<view>
-						<view class="set-line1">
-							<text>鎵ф硶鏃堕棿锛�</text>2024-05-12 12:00
-						</view>
-						<view class="set-line1">
-							<text>鐢宠鏃堕棿锛�</text>2024-05-12 12:00:12
-						</view>
-					</view>
-					<view class="button">
-						涓婃姤
-					</view>
-				</view>
-			</view>
-			<view class="list-item">
-				<view class="top-title">
-					<text>24骞�5鏈堢獊鍑绘鏌ユ秷闃插畨鍏�</text>
-					<text class="status">寰呬笂鎶�</text>
-				</view>
-				<view class="user-info">
-					<text>鐜嬫�濋洦</text>
-					<view class="driver"></view>
-					<text>鎵ф硶涓�澶ч槦</text>
-				</view>
-				<view class="set-line">
-					<text>鎵ф硶瀵硅薄锛�</text>娌冲崡瑙夐啋绉戞妧鏈夐檺鍏徃
-				</view>
-				<view class="line"></view>
-				<view class="set-flex set-start set-flex-content-between">
-					<view>
-						<view class="set-line1">
-							<text>鎵ф硶鏃堕棿锛�</text>2024-05-12 12:00
-						</view>
-						<view class="set-line1">
-							<text>鐢宠鏃堕棿锛�</text>2024-05-12 12:00:12
-						</view>
-					</view>
-					<view class="button">
-						涓婃姤
-					</view>
-				</view>
-			</view>
+			 <u-empty v-if="!list.length" mode="data"></u-empty>
+			 
 		</view>
 		<view class="down">
 			<view class="button" @click="goRecord">
@@ -95,22 +41,48 @@
 </template>
 
 <script>
+	import { executeList } from '@/api/policy.js'
 	export default {
 		data() {
 			return {
-				
+				list: [],
+				total: 1,
+				queryParams: {
+					pageNum: 1,
+					pageSize: 10,
+					orderStatus: 3
+				}
 			}
 		},
+		onShow() {
+			this.queryParams.pageNum = 1
+			this.list = []
+			this.executeList()
+		},
+		onReachBottom() {
+			if(this.list.length == this.list.length) {
+				return
+			}
+			this.queryParams.pageNum++
+			this.executeList()
+		},
 		methods: {
-			goReport() {
+			goReport(id) {
 				uni.navigateTo({
-					url: `/policy/reportDetails/reportDetails`
+					url: `/policy/reportDetails/reportDetails?id=${id}`
 				})
 			},
 			goRecord() {
 				uni.navigateTo({
 					url: `/policy/reportRecord/reportRecord`
 				})
+			},
+			// 鑾峰彇寰呮墽娉曞垪琛�
+			executeList() {
+				executeList(this.queryParams).then(val => {
+					this.list = [...this.list, ...val.data.rows]
+					this.total = val.data.total
+				})
 			}
 		}
 	}
diff --git a/policy/reportRecord/reportRecord.scss b/policy/reportRecord/reportRecord.scss
index e3fbbf3..60d7083 100644
--- a/policy/reportRecord/reportRecord.scss
+++ b/policy/reportRecord/reportRecord.scss
@@ -1,4 +1,7 @@
 .page-box{
+	.padding{
+		padding: 20rpx 32rpx;
+	}
 	.list{
 		margin: 20rpx 32rpx;
 		.list-item{
diff --git a/policy/reportRecord/reportRecord.vue b/policy/reportRecord/reportRecord.vue
index b0da701..3b9eb91 100644
--- a/policy/reportRecord/reportRecord.vue
+++ b/policy/reportRecord/reportRecord.vue
@@ -1,119 +1,108 @@
 <template>
 	<view class="page-box">
 		<u-sticky bgColor="white">
-			<u-tabs :list="list1" @click="click" :scrollable="false" bgColor="white"></u-tabs>
+			<view class="padding">
+				<u-search placeholder="璇疯緭鍏ョ敵璇疯褰曞叧閿瘝" v-model="queryParams.enforceReason" @clear="clean" shape="square" @confirm="search" :showAction="false"></u-search>
+			</view>
 		</u-sticky>
 		<view class="list">
-			<view class="list-item" @click="goReport">
-				<view class="top-title">
-					<text>24骞�5鏈堢獊鍑绘鏌ユ秷闃插畨鍏�</text>
-					<text class="status">宸茬粨鏉�</text>
-				</view>
-				<view class="user-info">
-					<text>鐜嬫�濋洦</text>
-					<view class="driver"></view>
-					<text>鎵ф硶涓�澶ч槦</text>
-				</view>
-				<view class="set-line">
-					<text>鎵ф硶瀵硅薄锛�</text>娌冲崡瑙夐啋绉戞妧鏈夐檺鍏徃
-				</view>
-				<view class="line"></view>
-				<view class="set-flex set-start set-flex-content-between">
-					<view>
-						<view class="set-line1">
-							<text>鎵ф硶鏃堕棿锛�</text>2024-05-12 12:00
-						</view>
-						<view class="set-line1">
-							<text>鐢宠鏃堕棿锛�</text>2024-05-12 12:00:12
-						</view>
-					</view>
-					
-				</view>
-			</view>
-			<view class="list-item">
-				<view class="top-title">
-					<text>24骞�5鏈堢獊鍑绘鏌ユ秷闃插畨鍏�</text>
-					<text class="status">宸茬粨鏉�</text>
-				</view>
-				<view class="user-info">
-					<text>鐜嬫�濋洦</text>
-					<view class="driver"></view>
-					<text>鎵ф硶涓�澶ч槦</text>
-				</view>
-				<view class="set-line">
-					<text>鎵ф硶瀵硅薄锛�</text>娌冲崡瑙夐啋绉戞妧鏈夐檺鍏徃
-				</view>
-				<view class="line"></view>
-				<view class="set-flex set-start set-flex-content-between">
-					<view>
-						<view class="set-line1">
-							<text>鎵ф硶鏃堕棿锛�</text>2024-05-12 12:00
-						</view>
-						<view class="set-line1">
-							<text>鐢宠鏃堕棿锛�</text>2024-05-12 12:00:12
-						</view>
-					</view>
-					
-				</view>
-			</view>
-			<view class="list-item">
-				<view class="top-title">
-					<text>24骞�5鏈堢獊鍑绘鏌ユ秷闃插畨鍏�</text>
-					<text class="status">宸茬粨鏉�</text>
-				</view>
-				<view class="user-info">
-					<text>鐜嬫�濋洦</text>
-					<view class="driver"></view>
-					<text>鎵ф硶涓�澶ч槦</text>
-				</view>
-				<view class="set-line">
-					<text>鎵ф硶瀵硅薄锛�</text>娌冲崡瑙夐啋绉戞妧鏈夐檺鍏徃
-				</view>
-				<view class="line"></view>
-				<view class="set-flex set-start set-flex-content-between">
-					<view>
-						<view class="set-line1">
-							<text>鎵ф硶鏃堕棿锛�</text>2024-05-12 12:00
-						</view>
-						<view class="set-line1">
-							<text>鐢宠鏃堕棿锛�</text>2024-05-12 12:00:12
-						</view>
-					</view>
-					
-				</view>
-			</view>
+			 <view class="list-item" @click="goReport(item.orderId)" v-for="(item,index) in list" :key="index">
+			 	<view class="top-title">
+			 		<text>{{item.enforceReason}}</text>
+			 		<text class="status">宸茬粨鏉�</text>
+			 	</view>
+			 	<view class="user-info">
+			 		<text>{{item.executeUser}}</text>
+			 		<view class="driver"></view>
+			 		<text>{{item.executeDeptName}}</text>
+			 	</view>
+			 	<view class="set-line">
+			 		<text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}}
+			 	</view>
+			 	<view class="line"></view>
+			 	<view class="set-flex set-start set-flex-content-between">
+			 		<view>
+			 			<view class="set-line1">
+			 				<text>鎵ф硶鏃堕棿锛�</text>{{item.planTime}}
+			 			</view>
+			 			<view class="set-line1">
+			 				<text>鐢宠鏃堕棿锛�</text>{{item.applyTime}}
+			 			</view>
+			 		</view>
+			 		<!-- <view class="button" @click="goReport(item.orderId)" >
+			 			涓婃姤
+			 		</view> -->
+			 	</view>
+			 </view>
+			  <u-empty v-if="!list.length" mode="data"></u-empty>
+			 
+			 
 		</view>
 	</view>
 </template>
 
 <script>
+	import {
+		executeList
+	} from '@/api/policy.js'
 	export default {
 		data() {
 			return {
-				      list1: [{
-				                    name: '寰呬笂鎶�',
-				                }, {
-				                    name: '宸蹭笂鎶�',
-				                }]
+				list: [],
+				total: 1,
+				queryParams: {
+					pageNum: 1,
+					pageSize: 10,
+					orderStatus: 4
+				},
+				searchContent: ''
 			}
 		},
+		onShow() {
+			this.queryParams.pageNum = 1
+			this.list = []
+			this.executeList()
+		},
+		onReachBottom() {
+			if(this.list.length == this.total) {
+				return
+			}
+			this.queryParams.pageNum++
+			this.orderList()
+		},
 		methods: {
-			goReport() {
+			clean() {
+				this.queryParams.enforceReason = ""
+				this.list = []
+				this.executeList()
+			},
+			search() {
+				this.queryParams.pageNum = 1
+				this.list = []
+				this.executeList()
+			},
+			goReport(order) {
 				uni.navigateTo({
-					url: `/policy/reportDetails/reportDetails`
+					url: `/policy/applyRecordDetails/applyRecordDetails?id=${order}`
 				})
 			},
 			click() {
-				
+
+			},
+			executeList() {
+				executeList(this.queryParams).then(val => {
+					this.list = [...this.list, ...val.data.rows]
+					this.total = val.data.total
+				})
 			}
 		}
 	}
 </script>
 <style>
-	page{
+	page {
 		background-color: #F4F4F4;
 	}
 </style>
 <style lang="scss" scoped>
-@import "./reportRecord.scss";
-</style>
+	@import "./reportRecord.scss";
+</style>
\ No newline at end of file
diff --git a/policy/scodePage/scodePage.scss b/policy/scodePage/scodePage.scss
index 7659470..4dc32cf 100644
--- a/policy/scodePage/scodePage.scss
+++ b/policy/scodePage/scodePage.scss
@@ -158,4 +158,14 @@
 }
 .hide-canvas{
 	display: none;
+}
+.button-entery{
+	text-align: right;
+	.button{
+		background-color: #4F86F3;
+		color: white;
+		padding: 20rpx 32rpx;
+		border-radius: 10rpx;
+		display: inline-block;
+	}
 }
\ No newline at end of file
diff --git a/policy/scodePage/scodePage.vue b/policy/scodePage/scodePage.vue
index 6ca01de..813ed64 100644
--- a/policy/scodePage/scodePage.vue
+++ b/policy/scodePage/scodePage.vue
@@ -29,66 +29,118 @@
 				<image src="/static/policy/qrcode-border.png" class="border" mode="widthFix"></image>
 				<image :src="uqrcodeImage" mode="widthFix" class="qrcode-1"></image>
 				<view class="code-time">
-					<text>鎵爜鏃堕棿锛�</text>2024-05-12 12:00
+					<text>鎵爜鏃堕棿锛�</text>{{$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM:ss')}}
 				</view>
 			</view>
 			<view class="code">
 				<view class="item">
 					<text class="label">鎵ф硶浜哄憳</text>
-					<text class="value">鐜嬪皬涓�</text>
+					<text class="value">{{userInfo.nickName}}</text>
 				</view>
 				<view class="write-border"></view>
 				<view class="item">
 					<text class="label">鎵ф硶閮ㄩ棬</text>
-					<text class="value">宸ュ晢绠$悊灞�</text>
+					<text class="value">{{userInfo.dept.deptName}}</text>
 				</view>
 			</view>
 			<view class="hint-text">
-				褰撳墠浼佷笟瀛樺湪<text>1</text>鏉℃湭瀹屾垚鐨勬墽娉曚换鍔�
+				褰撳墠浼佷笟瀛樺湪<text>{{list.length}}</text>鏉℃湭瀹屾垚鐨勬墽娉曚换鍔�
 			</view>
+			<!-- <view class="hint-text">
+				褰撳墠浼佷笟鏈畬鎴愮殑鎵ф硶浠诲姟
+			</view> -->
 			<view class="down-block">
-				<view class="box">
-					<view class="title">24骞�5鏈堢獊鍑绘鏌ユ秷闃插畨鍏�</view>
-					<view class="user-news">
-						<text>鐜嬫�濋洦</text>
-						<view class="driver"></view>
-						<text>宸ュ晢绠$悊灞�</text>
-					</view>
-					<view class="font-13">
-						<text>鎵ф硶瀵硅薄锛�</text>娌冲崡瑙夐啋绉戞妧鏈夐檺鍏徃
-					</view>
-					<view class="border"></view>
-					<view class="font-12 margin-bottom">
-						<text>鎵ф硶鏃堕棿锛�</text>2024-05-12 12:00
-					</view>
-					<view class="font-12">
-						<text>鐢宠鏃堕棿锛�</text>2024-05-12 12:00:12
-					</view>
-				</view>
+				<swiper style="height: 500rpx;" :indicator-dots="false"  :interval="3000" :duration="1000">
+					<swiper-item v-for="(item,index) in list" :key="index">
+						<view class="box">
+							<view class="title">{{item.enforceReason}}</view>
+							<view class="user-news">
+								<text>{{item.applyUser}}</text>
+								<view class="driver"></view>
+								<text>{{item.applyDeptName}}</text>
+							</view>
+							<view class="font-13">
+								<text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}}
+							</view>
+							<view class="border"></view>
+							<view class="font-12 margin-bottom">
+								<text>鎵ф硶鏃堕棿锛�</text>{{item.planTime}}
+							</view>
+							<view class="font-12">
+								<text>鐢宠鏃堕棿锛�</text>{{item.applyTime}}
+							</view>
+							<view class="button-entery">
+								<view class="button" @click="doScanOrder(item.orderId)">纭鎵ф硶</view>
+							</view>
+						</view>
+					</swiper-item>
+				</swiper>
 			</view>
 		</view>
-		<uqrcode class="hide-canvas" :size="470" sizeUnit="rpx" v-if="companyCode" ref="uqrcode" canvas-id="qrcode" :value="companyCode" :options="{ backgroundColor: 'green',useDynamicSize: true,  areaColor: '#ffffff', foregroundColor: '#ffffff' }"></uqrcode>
+		<uqrcode class="hide-canvas" :size="470" sizeUnit="rpx" v-if="companyCode" ref="uqrcode" canvas-id="qrcode" :value="companyCode" :options="{ backgroundColor: color,useDynamicSize: true,  areaColor: '#ffffff', foregroundColor: '#ffffff' }"></uqrcode>
 		
 	</view>
 </template>
 
 <script>
+	import { getScanList, doScanOrder } from '@/api/policy.js'
+	import { getInfo } from '@/api/auth.js'
 	export default {
 		data() {
 			return {
-				companyCode: 'code===',
-				uqrcodeImage: ''
+				companyCode: '',
+				uqrcodeImage: '',
+				list: [],
+				userInfo: {},
+				color: ''
 			}
 		},
 		onReady() {
-			this.$refs.uqrcode.toTempFilePath({
-			  success: res => {
-				this.uqrcodeImage = res.tempFilePath
-			  }
-			});
+			
+		},
+		onLoad(options) {
+			this.getScanList(options.code)
+			
+			this.getInfo()
+		},
+		onShow() {
+		
 		},
 		methods: {
-			
+			getScanList(companyCode){
+				getScanList({companyCode}).then(val => {
+					this.list = val.data.data
+					if(this.list.length) {
+						this.color = 'green'
+					} else {
+						this.color = 'red'
+					}
+					this.companyCode = companyCode
+					setTimeout(() => {
+						this.$refs.uqrcode.toTempFilePath({
+						  success: res => {
+							this.uqrcodeImage = res.tempFilePath
+						  }
+						});
+					}, 500)
+				})
+			},
+			getInfo() {
+				getInfo().then(val => {
+					console.log(val.data.data)
+					this.userInfo = val.data.data
+				})
+			},
+			doScanOrder(item) {
+				doScanOrder(item).then(val => {
+					if(val.data.code == 200) {
+						uni.showToast({
+							title: '纭鎵ф硶鎴愬姛',
+							icon: 'none'
+						})
+					}
+				})
+			}
 		}
 	}
 </script>
diff --git a/policy/translate/translate.vue b/policy/translate/translate.vue
index f463722..6058099 100644
--- a/policy/translate/translate.vue
+++ b/policy/translate/translate.vue
@@ -8,28 +8,28 @@
 				</view>
 				<view class="list-item">
 					<view class="top-title">
-						<text>{{item.checkReason}}</text>
+						<text>{{item.enforceReason}}</text>
 						<text class="status">寰呭鎵�</text>
 					</view>
 					<view class="user-info">
-						<text>鐜嬫�濋洦</text>
+						<text>{{item.applyUser}}</text>
 						<view class="driver"></view>
 						<text>{{item.checkDeptName}}</text>
 					</view>
 					<view class="set-line">
-						<text>鎵ф硶瀵硅薄锛�</text>娌冲崡瑙夐啋绉戞妧鏈夐檺鍏徃
+						<text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}}
 					</view>
 					<view class="line"></view>
 					<view class="set-flex set-start set-flex-content-between">
 						<view>
 							<view class="set-line1">
-								<text>鎵ф硶鏃堕棿锛�</text>2024-05-12 12:00
+								<text>鎵ф硶鏃堕棿锛�</text>{{item.planTime}}
 							</view>
 							<view class="set-line1">
-								<text>鐢宠鏃堕棿锛�</text>2024-05-12 12:00:12
+								<text>鐢宠鏃堕棿锛�</text>{{item.applyTime}}
 							</view>
 						</view>
-						<view class="button" v-if="!isJudege" @click="goStartJudeg">
+						<view class="button" v-if="!isJudege" @click="goStartJudeg(item.orderId)">
 							瀹℃壒
 						</view>
 					</view>
@@ -55,7 +55,7 @@
 
 <script>
 	import popupCom from '@/policy/components/popup.vue'
-	import { checkLogList,checkUpd } from '@/api/policy.js'
+	import { checkLogList, checkUpd } from '@/api/policy.js'
 	export default {
 		components: {
 			popupCom
@@ -71,7 +71,8 @@
 					pageNum: 1,
 					pageSize: 10,
 					checkStatus: 0
-				}
+				},
+				recordList: []
 			}
 		},
 		computed: {
@@ -103,7 +104,8 @@
 			click() {
 
 			},
-			goStartJudeg() {
+			goStartJudeg(id) {
+				this.recordList = id
 				this.$refs.popup.open()
 			},
 			// 鎵归噺瀹℃壒
@@ -130,8 +132,22 @@
 					})
 				}
 			},
-			entery() {
-				this.isJudege = false
+			entery(form) {
+				// 1浼佷笟瀹℃壒锛�2鎵ф硶鍗曞鎵�
+				checkUpd({...form, id: this.recordList, checkType: 2}).then(val => {
+					if(val.data.code == 200) {
+						uni.showToast({
+							title: '瀹℃壒鎴愬姛',
+							icon: 'none'
+						})
+					}
+					this.list = []
+					this.queryms.pageNum = 1
+					this.checkLogList()
+					this.$refs.popup.close()
+					this.isJudege = false
+				})
+				
 			},
 			cancelSelect() {
 				this.isJudege = false
diff --git a/policy/translateRecord/translateRecord.vue b/policy/translateRecord/translateRecord.vue
index 7ba1ee2..5c62dc0 100644
--- a/policy/translateRecord/translateRecord.vue
+++ b/policy/translateRecord/translateRecord.vue
@@ -2,58 +2,101 @@
 	<view class="page-box">
 		<u-sticky bgColor="white">
 			<view class="set-search">
-				<u-search placeholder="璇疯緭鍏ユ墽娉曚富棰� "  shape="square" :showAction="false"></u-search>
+				<u-search placeholder="璇疯緭鍏ユ墽娉曚富棰� " v-model="value" @clear="value = '';search()" @search="search" @blur="search"  shape="square" :showAction="false"></u-search>
 			</view>
 			<view class="border"></view>
-			<u-tabs :list="list1" @click="click" :scrollable="false" bgColor="white"></u-tabs>
+			<u-tabs :list="list1" @click="click" :current="current" :scrollable="false" bgColor="white"></u-tabs>
 		</u-sticky>
 		<view class="list">
-			<view class="list-item" @click="goReport">
+			<view class="list-item" @click="goReport" v-for="(item,index) in list" :key="index">
 				<view class="top-title">
-					<text>24骞�5鏈堢獊鍑绘鏌ユ秷闃插畨鍏�</text>
-					<text class="status status2">閫氳繃</text>
-					<text class="status status4">鎷掔粷</text>
+					<text>{{item.enforceReason}}</text>
+					<text class="status status2" v-if="item.checkStatus == 2">閫氳繃</text>
+					<text class="status status4" v-else>鎷掔粷</text>
 				</view>
 				<view class="user-info">
-					<text>鐜嬫�濋洦</text>
+					<text>{{item.applyUser}}</text>
 					<view class="driver"></view>
-					<text>鎵ф硶涓�澶ч槦</text>
+					<text>{{item.applyDeptName}}</text>
 				</view>
 				<view class="set-line">
-					<text>鎵ф硶瀵硅薄锛�</text>娌冲崡瑙夐啋绉戞妧鏈夐檺鍏徃
+					<text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}}
 				</view>
 				<view class="line"></view>
 				<view class="set-flex set-start set-flex-content-between">
 					<view>
 						<view class="set-line1">
-							<text>鎵ф硶鏃堕棿锛�</text>2024-05-12 12:00
+							<text>鎵ф硶鏃堕棿锛�</text>{{item.planTime}}
 						</view>
 						<view class="set-line1">
-							<text>鐢宠鏃堕棿锛�</text>2024-05-12 12:00:12
+							<text>鐢宠鏃堕棿锛�</text>{{item.applyTime}}
 						</view>
 					</view>
-
 				</view>
 			</view>
-			 
-			 
+			<u-empty v-if="!list.length"></u-empty>
 		</view>
 	</view>
 </template>
 
 <script>
+	import { checkedList } from '@/api/policy.js'
 	export default {
 		data() {
 			return {
-			
+				current: 0,
+				queryParams: {
+					pageNum: 1,
+					pageSize: 10
+				},
+					list1: [{
+									name: '鍏ㄩ儴',
+									value: ''
+								}, {
+									name: '閫氳繃',
+									value: 2
+								}, {
+									name: '鎷掔粷',
+									value: -1
+								}],
+				list: [
+					
+				],
+				total: 1,
+				value: ''
 			}
 		},
+		onLoad() {
+			this.enforceLogList()
+		},
+		onReachBottom() {
+			if(this.total == this.list.length) {
+				return
+			}
+			this.queryParams.pageNum++
+			this.enforceLogList()
+		},
 		methods: {
+			search(e) {
+				this.list = []
+				this.queryParams.enforceReason = e
+				this.queryParams.pageNum = 1
+				this.enforceLogList()
+			},
 			goReport() {
 				
 			},
-			click() {
-
+			click(e) {
+				this.list = []
+				this.queryParams.pageNum = 1
+				this.current = e.index
+				this.enforceLogList()
+			},
+			enforceLogList() {
+				checkedList({...this.queryParams, checkStatus: this.list1[this.current].value}).then(val => {
+					this.list = [...this.list,...val.data.rows]
+					this.total = val.data.total
+				})
 			}
 		}
 	}
diff --git a/static/policy/loginHeader.png b/static/policy/loginHeader.png
new file mode 100644
index 0000000..dc7c6b3
--- /dev/null
+++ b/static/policy/loginHeader.png
Binary files differ
diff --git a/static/policy/loginHeaer1.png b/static/policy/loginHeaer1.png
new file mode 100644
index 0000000..e3cd20f
--- /dev/null
+++ b/static/policy/loginHeaer1.png
Binary files differ
diff --git a/static/policy/rank1.png b/static/policy/rank1.png
new file mode 100644
index 0000000..71dc432
--- /dev/null
+++ b/static/policy/rank1.png
Binary files differ
diff --git a/static/policy/rank2.png b/static/policy/rank2.png
new file mode 100644
index 0000000..ffbb330
--- /dev/null
+++ b/static/policy/rank2.png
Binary files differ
diff --git a/static/policy/rank3.png b/static/policy/rank3.png
new file mode 100644
index 0000000..b134b8b
--- /dev/null
+++ b/static/policy/rank3.png
Binary files differ
diff --git a/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js b/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js
index 17b28b3..2c685ad 100644
--- a/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js
+++ b/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js
@@ -71,6 +71,9 @@
         return series[index].name+'锛�'+series[index].data+'鍏�'
       }
     },
+	tooltipDemo1:function(val, index, series, opts) {
+		return "鎹㈣/" + val.name  + "/" + "鏁伴噺:" + val.data + "/" +"鍗犳瘮:" + (val._proportion_ * 100).toFixed(2) + "%"
+	}
   },
   //杩欓噷婕旂ず浜嗚嚜瀹氫箟鎮ㄧ殑鍥捐〃绫诲瀷鐨刼ption锛屽彲浠ラ殢鎰忓懡鍚嶏紝涔嬪悗鍦ㄧ粍浠朵笂 type="demotype" 鍚庯紝缁勪欢浼氳皟鐢ㄨ繖涓姳鎷彿閲岀殑option锛屽鏋滅粍浠朵笂杩樺瓨鍦╫pts鍙傛暟锛屼細灏哾emotype涓巓pts涓璷ption鍚堝苟鍚庢覆鏌撳浘琛ㄣ��
   "demotype":{
diff --git a/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js b/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js
index f78bde5..8704dae 100644
--- a/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js
+++ b/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js
@@ -2806,6 +2806,23 @@
   if(toolTipOption.showCategory==true && opts.categories){
     textList.unshift({text:opts.categories[opts.tooltip.index],color:null})
   }
+	 if (textList[0].text.split("/")[0] == "鎹㈣") {
+		 let newTextList = [{
+				 "color": "#FCDB66",
+				 "legendShape": "circle",
+				 "text": textList[0].text.split("/")[1]
+			 },
+			 {
+				 "color": "transparent",
+				 "text": textList[0].text.split("/")[2]
+			 }, 
+			 {
+				 "color": "transparent",
+				 "text": textList[0].text.split("/")[3]
+			 },
+		 ]
+		 textList = newTextList
+	 }
   var fontSize = toolTipOption.fontSize * opts.pix;
   var lineHeight = toolTipOption.lineHeight * opts.pix;
   var boxPadding = toolTipOption.boxPadding * opts.pix;

--
Gitblit v1.9.1