From e6a02c8b09a796e436a501e9b87d19e25c34c9d1 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期日, 07 四月 2024 15:53:37 +0800
Subject: [PATCH] #

---
 uni_modules/uni-section/components/uni-section/uni-section.vue |  167 ++++++
 uni_modules/uni-section/readme.md                              |    8 
 pages/business/process/dayStroke.vue                           |  143 +++++
 pages.json                                                     |   52 ++
 pages/business/process/dayDetl.vue                             |  131 +++++
 pages/business/process/weeklySelect.vue                        |  251 ++++++++++
 uni_modules/uni-section/changelog.md                           |    2 
 main.js                                                        |    2 
 pages/business/business.vue                                    |   18 
 pages/business/process/weekly.vue                              |  301 ++++++++++++
 pages/business/process/dayStrokeCreate.vue                     |  281 +++++++++++
 uni_modules/uni-section/package.json                           |   87 +++
 12 files changed, 1,442 insertions(+), 1 deletions(-)

diff --git a/main.js b/main.js
index ba4f953..364f80d 100644
--- a/main.js
+++ b/main.js
@@ -6,7 +6,7 @@
 Vue.use(uView)
 Vue.config.productionTip = false
 // Vue.prototype.baseUrl = 'http://crm.zoneyung.net'
-Vue.prototype.baseUrl = 'http://192.168.4.188:9528'
+Vue.prototype.baseUrl = 'http://192.168.4.46:9528'
 App.mpType = 'app'
 const app = new Vue({
     ...App
diff --git a/pages.json b/pages.json
index 2772f8e..3f0e94d 100644
--- a/pages.json
+++ b/pages.json
@@ -340,6 +340,58 @@
 				"enablePullDownRefresh" : false
 			}
 		},
+		// {
+		// 	"path" : "pages/business/process/weekly",
+		// 	"style" : 
+		// 	{
+		// 		"navigationBarTitleText" : "鍛�/鏃ユ姤",
+		// 		"enablePullDownRefresh" : false
+		// 	}
+		// },
+		{
+			"path": "pages/business/process/weekly",
+			"style": {
+				"navigationStyle": "custom",
+				"navigationBarTitleText": "鍛�/鏃ユ姤"
+				
+			}
+		},
+		{
+			"path" : "pages/business/process/weeklySelect",
+			"style" : 
+			{
+				"navigationBarTitleText" : "閫夋嫨鏃ユ湡",
+				"enablePullDownRefresh" : false,
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path" : "pages/business/process/dayDetl",
+			"style" : 
+			{
+				"navigationBarTitleText" : "璇︽儏",
+				"enablePullDownRefresh" : false,
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path" : "pages/business/process/dayStroke",
+			"style" : 
+			{
+				"navigationBarTitleText" : "鏃ヨ绋�",
+				"enablePullDownRefresh" : false,
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path" : "pages/business/process/dayStrokeCreate",
+			"style" : 
+			{
+				"navigationBarTitleText" : "鏂板缓鏃ヨ绋�",
+				"enablePullDownRefresh" : false,
+				"navigationStyle": "custom"
+			}
+		},
 		{
 			"path" : "pages/business/plan/modiPlan7",
 			"style" : 
diff --git a/pages/business/business.vue b/pages/business/business.vue
index d6afd05..1eff091 100644
--- a/pages/business/business.vue
+++ b/pages/business/business.vue
@@ -45,6 +45,21 @@
 		</view>
 		<view class="item-sort">
 			<view>
+				<y-title title="杩囩▼绠$悊" />
+			</view>
+			<view class="grid-container">
+				<view class="item" @click="select(11)">
+					<view class="img">
+						<image src="../../static/image/zhantiepeizhi.png" mode="aspectFit"></image>
+					</view>
+					<view>鍛�/鏃ユ姤</view>
+				</view>				
+				
+			</view>
+			
+		</view>
+		<view class="item-sort">
+			<view>
 				<y-title title="鍑哄樊绠$悊"></y-title>
 			</view>
 			<view class="grid-container">
@@ -137,6 +152,9 @@
 					case 10:
 						url = `${url}/pricing/contract`
 						break;
+					case 11:
+						url = `${url}/process/weekly`
+						break;
 				}
 				uni.navigateTo({
 					url:url
diff --git a/pages/business/process/dayDetl.vue b/pages/business/process/dayDetl.vue
new file mode 100644
index 0000000..271c527
--- /dev/null
+++ b/pages/business/process/dayDetl.vue
@@ -0,0 +1,131 @@
+<template>
+	<view>
+		<view class="status_bar">
+			<!-- 杩欓噷鏄姸鎬佹爮 -->
+		</view>
+		<uni-nav-bar left-icon="left" title="璇︽儏" @clickLeft="back" @clickRight="scan"  :fixed="true"
+			:border="false" rightWidth="160rpx" leftWidth="160rpx"
+			>
+			
+		 </uni-nav-bar>
+		 
+		 <view class="card">
+			 <view class="box" v-for="item in list">
+			 	<view class="box-single-row flex-row" v-for="rule in listRule">
+			 		<view style="flex: 1;">{{rule.label}}</view>
+			 		<view style="flex: 4;">{{item[rule.attribute]}}</view>
+			 	</view>
+			 </view>
+		 </view>
+		 
+		 <view class="main-box">
+		 	<view class="box">
+		 		<view class="box-title">娴佺▼鍔ㄦ��</view>
+		 		<u-steps :current="current" direction="column">
+		 			<u-steps-item :title="`${item.title} ${item.time ? item.time : ''}`" :desc="item.msg" v-for="item in steps" />
+		 		</u-steps>
+		 	</view>
+		 </view>
+	</view>	
+</template>
+
+<script>
+	export default {
+		data(){
+			return{
+				list: [],
+				listRule: [{
+						label: "鏄熸湡",
+						attribute: "weeklyDay$",
+					},
+					{
+						label: "鏃ユ湡",
+						attribute: "dailyTime$",
+					},
+					{
+						label: "宸ヤ綔鍐呭",
+						attribute: "workContent",
+					},
+					{
+						label: "宸ヤ綔鐩殑",
+						attribute: "workPurpose",
+					},
+					{
+						label: "璇勮",
+						attribute: "comment",
+					},
+					{
+						label: "闇�鍗忓姪浜嬮」",
+						attribute: "province",
+					},
+				
+					{
+						label: "鐢叉柟鍗曚綅",
+						attribute: "cstmrId$",
+					},					
+					{
+						label: "澶囨敞",
+						attribute: "memo",
+					},
+					{
+						label: "鏇存柊鏃堕棿",
+						attribute: "updateTime$",
+					},
+				],
+				current:0,
+				steps:[]
+			}
+		},
+		onLoad(option) {
+			let _this = this
+			_this.list = []
+			const eventChannel = this.getOpenerEventChannel();
+			eventChannel.on('day', function(data) {	
+				console.log(data.data)
+				_this.list.push(data.data)
+				_this.current = data.data.settle-1
+				this.steps = data.data.settleMsg
+			})
+			
+		},
+		methods:{
+			
+			back() {
+				uni.navigateBack({})
+			},
+			scan() {
+				uni.navigateTo({
+					url: '/pages/authority/authority'
+				})
+			},
+		}
+	}
+	
+</script>
+
+<style>
+	.status_bar {
+		height: var(--status-bar-height);
+		width: 100%;
+		background-color: #FFF;
+		position: sticky;
+		top: 0;
+	}
+	.card{
+		border-radius: 20rpx;
+	}
+	.box {
+		margin: 16rpx 8rpx;
+		/* height: 200px; */
+		box-shadow: 0 0 5px #dddddd;
+		background-color: #FFF;
+		padding: 16rpx 32rpx;
+		position: relative;
+		border-radius: 20rpx;
+		font-size: 24rpx;
+		/* color: #bdbdbd; */
+	}
+	.box-single-row {
+		display: flex;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/business/process/dayStroke.vue b/pages/business/process/dayStroke.vue
new file mode 100644
index 0000000..ffff072
--- /dev/null
+++ b/pages/business/process/dayStroke.vue
@@ -0,0 +1,143 @@
+<template>
+	<view>
+		<view class="status_bar">
+			<!-- 杩欓噷鏄姸鎬佹爮 -->
+		</view>
+		<uni-nav-bar left-icon="left" title="鏃ヨ绋�" @clickLeft="back" @clickRight="scan"  :fixed="true"
+			:border="false" rightWidth="160rpx" leftWidth="160rpx"
+			>
+			
+		 </uni-nav-bar>
+		 
+		 <view class="card">
+			 <view class="box" v-for="item in list">
+			 	<view class="box-single-row flex-row" v-for="rule in listRule">
+			 		<view style="flex: 1;">{{rule.label}}</view>
+			 		<view style="flex: 4;">{{item[rule.attribute]}}</view>
+			 	</view>
+			 </view>
+		 </view>
+		 
+		 <!-- <view class="main-box">
+		 	<view class="box">
+		 		<view class="box-title">娴佺▼鍔ㄦ��</view>
+		 		<u-steps :current="current" direction="column">
+		 			<u-steps-item :title="`${item.title} ${item.time ? item.time : ''}`" :desc="item.msg" v-for="item in steps" />
+		 		</u-steps>
+		 	</view>
+		 </view> -->
+	</view>	
+</template>
+
+<script>
+	export default {
+		data(){
+			return{
+				list: [],
+				listRule: [{
+						label: "鏄熸湡",
+						attribute: "weeklyDay$",
+					},
+					{
+						label: "鏃ユ湡",
+						attribute: "dailyTime$",
+					},
+					{
+						label: "宸ヤ綔鍐呭",
+						attribute: "workContent",
+					},
+					{
+						label: "宸ヤ綔鐩殑",
+						attribute: "workPurpose",
+					},
+					{
+						label: "璇勮",
+						attribute: "comment",
+					},
+					{
+						label: "闇�鍗忓姪浜嬮」",
+						attribute: "province",
+					},
+				
+					{
+						label: "鐢叉柟鍗曚綅",
+						attribute: "cstmrId$",
+					},					
+					{
+						label: "澶囨敞",
+						attribute: "memo",
+					},
+					{
+						label: "鏇存柊鏃堕棿",
+						attribute: "updateTime$",
+					},
+				],
+				current:0,
+				steps:[]
+			}
+		},
+		onLoad(option) {
+			let _this = this
+			_this.list = []
+			const eventChannel = this.getOpenerEventChannel();
+			eventChannel.on('dayStroke', function(data) {
+				_this.current = data.data.settle-1
+				uni.request({
+					url: `${_this.baseUrl}/weeklyDailyReality/mobile/phone/get/kv`,
+					// method: 'POST',
+					header: { 'token': uni.getStorageSync('token') },
+					data: {
+						weeklyId: data.data.weeklyId,
+						weeklyDay: data.data.weeklyDay
+					},
+					success(res) {
+						console.log(res)
+						res = res.data.data
+						_this.list = res
+						
+					}
+				})
+			})
+			
+		},
+		methods:{
+			
+			back() {
+				uni.navigateBack({})
+			},
+			scan() {
+				uni.navigateTo({
+					url: '/pages/authority/authority'
+				})
+			},
+		}
+	}
+	
+</script>
+
+<style>
+	.status_bar {
+		height: var(--status-bar-height);
+		width: 100%;
+		background-color: #FFF;
+		position: sticky;
+		top: 0;
+	}
+	.card{
+		border-radius: 20rpx;
+	}
+	.box {
+		margin: 16rpx 8rpx;
+		/* height: 200px; */
+		box-shadow: 0 0 5px #dddddd;
+		background-color: #FFF;
+		padding: 16rpx 32rpx;
+		position: relative;
+		border-radius: 20rpx;
+		font-size: 24rpx;
+		/* color: #bdbdbd; */
+	}
+	.box-single-row {
+		display: flex;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/business/process/dayStrokeCreate.vue b/pages/business/process/dayStrokeCreate.vue
new file mode 100644
index 0000000..9072d89
--- /dev/null
+++ b/pages/business/process/dayStrokeCreate.vue
@@ -0,0 +1,281 @@
+<template>
+	<view>
+		<view class="status_bar">
+			<!-- 杩欓噷鏄姸鎬佹爮 -->
+		</view>
+		<uni-nav-bar left-icon="left" title="鍒涘缓鏃ヨ绋�" @clickLeft="back" @clickRight="scan"  :fixed="true"
+			:border="false" rightWidth="160rpx" leftWidth="160rpx"
+			>
+			
+		 </uni-nav-bar>
+		 
+		 <view class="card">
+			 <view class="box">
+			 	<view class="box-single-row flex-row">
+			 		<view style="flex: 1;">鏄熸湡</view>
+			 		<view style="flex: 4;">
+						{{list.weeklyDay$}}
+					</view>
+			 	</view>
+				<view class="box-single-row flex-row">
+					<view style="flex: 1;">鏃ユ湡</view>
+					<view style="flex: 4;">
+						{{list.dailyTime$}}
+					</view>
+				</view>
+				<view class="box-single-row flex-row">
+					<view style="flex: 1;">宸ヤ綔鍐呭</view>
+					<view style="flex: 4;">
+						<input class="inputCss" type="text"  v-model="workContent">
+					</view>
+				</view>
+				<view class="box-single-row flex-row">
+					<view style="flex: 1;">宸ヤ綔鐩殑</view>
+					<view style="flex: 4;">
+						<input class="inputCss" type="text" v-model="workPurpose">
+					</view>
+				</view>
+				<view class="box-single-row flex-row">
+					<view style="flex: 1;">闇�鍗忓姪浜嬮」</view>
+					<view style="flex: 3;">
+						<input class="inputCss" type="text" v-model="weeklyMatter">
+					</view>
+				</view>
+				<view class="box-single-row flex-row">
+					<view style="flex: 1;">鐢叉柟鍗曚綅</view>
+					<view style="flex: 4;">
+						<uni-combox :border="false" class="inputCss" style="border-radius: 0;"  :candidates="companys"  v-model="company" @input=""></uni-combox>
+					</view>
+				</view>
+			 </view>
+		 </view>
+		 
+		 <!-- <view class="main-box">
+		 	<view class="box">
+		 		<view class="box-title">娴佺▼鍔ㄦ��</view>
+		 		<u-steps :current="current" direction="column">
+		 			<u-steps-item :title="`${item.title} ${item.time ? item.time : ''}`" :desc="item.msg" v-for="item in steps" />
+		 		</u-steps>
+		 	</view>
+		 </view> -->
+		 <view class="floor">
+		 	<!-- <view class="wran" @click="del()">鍒犻櫎</view> -->
+		 	<view class="default" @click="reset()">閲嶇疆</view>
+		 	<view class="primary" @click="submit()">鎻愪氦</view>
+		 </view>
+		 <view>
+		 	<!-- 鎻愮ず淇℃伅寮圭獥 -->
+		 	<uni-popup ref="message" type="message">
+		 		<uni-popup-message :type="msgType1" :message="messageText" :duration="2000"></uni-popup-message>
+		 	</uni-popup>
+		 </view>
+	</view>	
+</template>
+
+<script>
+	export default {
+		data(){
+			return{
+				list: [],
+				listRule: [{
+						label: "鏄熸湡",
+						attribute: "weeklyDay$",
+					},
+					{
+						label: "鏃ユ湡",
+						attribute: "dailyTime$",
+					},
+					{
+						label: "宸ヤ綔鍐呭",
+						attribute: "workContent",
+					},
+					{
+						label: "宸ヤ綔鐩殑",
+						attribute: "workPurpose",
+					},
+					{
+						label: "璇勮",
+						attribute: "comment",
+					},
+					{
+						label: "闇�鍗忓姪浜嬮」",
+						attribute: "province",
+					},
+				
+					{
+						label: "鐢叉柟鍗曚綅",
+						attribute: "cstmrId$",
+					},					
+					{
+						label: "澶囨敞",
+						attribute: "memo",
+					},
+					{
+						label: "鏇存柊鏃堕棿",
+						attribute: "updateTime$",
+					},
+				],
+				current:0,
+				steps:[],
+				workContent:'',
+				workPurpose:'',
+				weeklyMatter:'',
+				companys:[],
+				company:'',
+				messageText:'',
+				msgType1: 'success',
+			}
+		},
+		onLoad(option) {
+			let _this = this
+			_this.list = []
+			const eventChannel = this.getOpenerEventChannel();
+			eventChannel.on('dayStrokeCreate', function(data) {
+				_this.list = data.data
+				uni.request({
+					url: `${_this.baseUrl}/cstmr/all/get/kv`,
+					// method: 'POST',
+					header: { 'token': uni.getStorageSync('token') },					
+					success(res) {
+						console.log(res)
+						res = res.data.data
+						for (var i = 0,keys = Object.keys(res); i< keys.length; i++){
+						  console.log(res[keys[i]].name);
+						  _this.companys.push(res[keys[i]].name);
+						}
+						//
+						
+						
+					}
+				})
+			})
+			
+		},
+		methods:{
+			submit(){
+				let that = this
+				let params = []
+				let param = {
+					weeklyDay: that.list.weeklyDay,
+					dailyTime: that.list.dailyTime,
+					workContent: that.workContent,
+					workPurpose: that.workPurpose,
+					weeklyMatter: that.weeklyMatter,
+					cstmrName: that.company
+				}
+				params.push(param)
+				uni.request({
+					url: `${that.baseUrl}/weekly/from/add/phone/auth`,
+					method: 'POST',
+					header: { 'token': uni.getStorageSync('token') },
+					data:JSON.stringify({
+						weeklyId: that.list.weeklyId,
+						weeklyType: that.list.weeklyType,
+						weeklyDailyRealityList: params
+					}),
+					success(res) {
+						console.log(res)
+						res = res.data
+						if (res.code === 200 ) {
+							that.reset();
+							that.messageText = "鍒涘缓鎴愬姛"
+							that.messageToggle('success')
+							// that.save()
+						} else if (res.code == 403) {
+							uni.showToast({title: res.msg, icon: "none", position: 'top'})
+							setTimeout(() => {
+								uni.reLaunch({
+									url: '../login/login'
+								});
+							}, 1000);
+						} else {
+							uni.showToast({title: res.msg, icon: "none",position: 'top'})
+						}
+						}
+						//
+						
+						
+					})
+				
+			},
+			messageToggle(type) {
+				this.msgType1 = type
+				this.$refs.message.open()
+			},
+			reset(){
+				let that = this
+				that.workContent = ''
+				that.workPurpose = ''
+				that.weeklyMatter = ''
+				that.company = ''
+			},
+			back() {
+				uni.navigateBack({})
+			},
+			scan() {
+				uni.navigateTo({
+					url: '/pages/authority/authority'
+				})
+			},
+		}
+	}
+	
+</script>
+
+<style>
+	.status_bar {
+		height: var(--status-bar-height);
+		width: 100%;
+		background-color: #FFF;
+		position: sticky;
+		top: 0;
+	}
+	.card{
+		border-radius: 20rpx;
+	}
+	.box {
+		margin: 16rpx 8rpx;
+		/* height: 200px; */
+		box-shadow: 0 0 5px #dddddd;
+		background-color: #FFF;
+		padding: 16rpx 32rpx;
+		position: relative;
+		border-radius: 20rpx;
+		font-size: 24rpx;
+		/* color: #bdbdbd; */
+	}
+	.box-single-row {
+		margin-bottom: 20rpx;
+		display: flex;
+	}
+	.inputCss{
+		border-bottom: 1px #a5a5a5 solid;
+	}
+	.floor {
+		height: 100rpx;
+		line-height: 100rpx;
+		width: 100%;
+		background-color: #fff;
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		display: flex;
+		align-items: center;
+		text-align: center;
+		letter-spacing: 10rpx;
+	}
+	.default {
+		flex: 2;
+	}
+	.default:active {
+		background-color: #eff0f1;
+	}
+	.primary {
+		flex: 3;
+		background-color: #2d8cf0;
+		color: #fff;
+	}
+	.primary:active {
+		background-color: #007dea;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/business/process/weekly.vue b/pages/business/process/weekly.vue
new file mode 100644
index 0000000..3a1abb8
--- /dev/null
+++ b/pages/business/process/weekly.vue
@@ -0,0 +1,301 @@
+<template>
+	<view>
+		<view class="status_bar">
+			<!-- 杩欓噷鏄姸鎬佹爮 -->
+		</view>
+		<uni-nav-bar left-icon="left" title="鍛�/鏃ユ姤" @clickLeft="back" @clickRight="scan"  :fixed="true"
+			:border="false" rightWidth="160rpx" leftWidth="160rpx"
+			>
+			<block slot="right">
+				<view class="city">
+					<view>
+						<text class="uni-nav-bar-text">{{user.username}}</text>
+					</view>
+					<uni-icons type="arrowdown" color="#333333" size="20" />
+				</view>
+			</block>
+		 </uni-nav-bar>
+		<!-- 鎼滅储妗� -->
+		<view class="search-bg">
+			<u-search placeholder="杈撳叆" v-model="keyword" :clearabled="true" @custom="search()" @search="search()"></u-search>
+		</view>
+		
+		<view class="main-box">
+			<view class="box" v-for="item in list" >
+				<view @click="goDetl(item)">
+					<view style="display: flex;">
+						<view class="box-title" style="flex: 1;">{{item.userId$}}鎻愪氦鐨勫懆鎶�</view>
+						<view class="box-time">{{item.weeklyYear+' '+item.weeklyDayMonth}}</view>
+					</view>
+					<!-- <view class="box-item">鎶ラ攢绫诲瀷:{{item.templateName}}</view>
+					<view class="box-item">鏄惁鍐茶处:{{item.businessTripDays$}}</view> -->
+					<view style="display: flex;">
+						<view class="box-item" style="flex: 1;">鐘舵��:{{item.status$}}</view>
+						<view class="box-settle" :style="item.bgcolor">{{item.settle$}}</view>
+					</view>
+				</view>
+				<view >
+					<uni-collapse accordion v-model="accordionVal" @change="change">
+						<uni-collapse-item>
+							<template v-slot:title>
+								<text style="font-size: 13px;">娴佺▼璇︽儏</text>
+							</template>
+							<view class="box">
+								<view >									
+									<u-steps :current="item.settleCurrent-1" direction="column">
+										<u-steps-item :title="`${item.title} ${item.time ? item.time : ''}`" :desc="item.msg" v-for="item in JSON.parse(item.settleMsg)" />
+									</u-steps>
+								</view>
+							</view>
+						</uni-collapse-item>						
+					</uni-collapse>
+					
+				</view>
+			</view>
+			
+		</view>
+		
+		<u-empty v-if="true" icon="../../../static/image/emptyList.png" v-show="list.length <= 0" />
+		<view class="fxbtn">
+			<uni-icons type="plusempty" color="#fff" @click="add()" ></uni-icons>
+		</view>
+	</view>
+</template>
+
+<script>
+	import user from '@/pages/api/user/user.js'
+	export default {
+		data() {
+			return {
+				keyword: '',
+				user: {
+					username: '',
+					id: 0,
+					type: ''
+				},
+				falg: true,
+				list: [],
+				curr: 2,
+				reload: false,
+				status: 'more',
+				current:0,
+				steps:[],
+				accordionVal:'',
+				steps:[]
+			}
+		},
+		onShow() {
+			let that = this
+			uni.$on('isRefresh',function(data){
+				that.user.username = data.title
+				that.user.id = data.id
+				that.user.type = data.key
+				that.falg = false
+			})
+			if (this.falg) {
+				this.getDetail()
+			}
+			setTimeout(()=> {
+				this.getReimburseOnline1()
+			},50)
+		},
+		onReachBottom() {
+			this.status = 'more';
+			this.getReimburseOnline()
+		},
+		methods: {
+			change(e){				
+				
+			},
+			getReimburseOnline1() {
+				let _this = this
+				_this.list = []
+				uni.showLoading({})
+				let param = {curr:1,limit:8,dept_id: 0,user_id: 67}
+				if (_this.user.type == 'user_id') {
+					param = {curr:1,limit:8,user_id: _this.user.id}
+				} else if(_this.user.type == 'dept_id'){
+					param = {curr:1,limit:8,dept_id: _this.user.id}
+				} else {
+					param = {curr:1,limit:8}
+				}
+				uni.request({
+					url: `${_this.baseUrl}/weekly/list/auth`,
+					header: { 'token': uni.getStorageSync('token') },
+					data: param,
+					success(res) {
+						res = res.data
+						if (res.code === 200) {
+							for (let k of res.data.records) {
+								if (k.settle == 3) {
+									k['bgcolor'] = 'color: #12d489'
+								} else if (k.settle == 2) {
+									k['bgcolor'] = 'color: #ffbd67'
+								}
+							}
+							let list = res.data.records
+							_this.list = _this.reload ? list : _this.list.concat(list);
+							if (res.data.records.length == 0) {
+								_this.status = 'noMore'
+							}
+						}
+					},
+					fail(result) {
+						uni.showToast({title: '璇锋眰澶辫触'})
+						setTimeout(() => {
+							uni.reLaunch({
+								url: '../../login/login'
+							});
+						}, 1000);
+					},
+					complete() {
+						uni.hideLoading()
+					}
+				})
+			},
+			getReimburseOnline() {
+				let _this = this
+				uni.showLoading({})
+				let param = {curr:_this.curr,limit:8,dept_id: 0,user_id: 67}
+				if (this.user.type == 'user_id') {
+					param = {curr:_this.curr,limit:8,user_id: _this.user.id}
+				} else if(this.user.type == 'dept_id') {
+					param = {curr:_this.curr,limit:8,dept_id: _this.user.id}
+				} else {
+					param = {curr:_this.curr,limit:8}
+				}
+				uni.request({
+					url: `${_this.baseUrl}/reimburseOnline/list/auth`,
+					header: { 'token': uni.getStorageSync('token') },
+					data: param,
+					success(res) {
+						res = res.data
+						if (res.code === 200) {
+							for (let k of res.data.records) {
+								if (k.settle == 3) {
+									k['bgcolor'] = 'color: #12d489'
+								} else if (k.settle == 2) {
+									k['bgcolor'] = 'color: #ffbd67'
+								}
+							}
+							let list = res.data.records
+							_this.list = _this.reload ? list : _this.list.concat(list);
+							_this.curr = _this.curr + 1
+							if (res.data.records.length == 0) {
+								_this.status = 'noMore'
+							}
+						}
+					},
+					fail(result) {
+						uni.showToast({title: '璇锋眰澶辫触'})
+						setTimeout(() => {
+							uni.reLaunch({
+								url: '../../login/login'
+							});
+						}, 1000);
+					},
+					complete() {
+						uni.hideLoading()
+					}
+				})
+			},
+			async getDetail() {
+				let res = await user.getDetail()
+				if (res.code === 200) {
+					this.user.username = res.data.username
+					this.user.id = res.data.id
+				} else if (res.code === 403) {
+					this.backLogin(res)
+				}
+			},
+			add() {
+				uni.navigateTo({
+					url: '/pages/business/process/weeklySelect',
+					success: function(res) {
+						res.eventChannel.emit('reimburseOnlineDetl', {
+							data: 'add'
+						})
+					}
+				})
+			},
+			goDetl(e) {
+				// console.log(e);
+				uni.navigateTo({
+					url: '/pages/business/process/weeklySelect',
+					success: function(res) {
+						res.eventChannel.emit('weekly', {
+							data: e
+						})
+					}
+				})
+			},
+			back() {
+				uni.navigateBack({})
+			},
+			scan() {
+				uni.navigateTo({
+					url: '/pages/authority/authority'
+				})
+			},
+		}
+	}
+</script>
+
+<style>
+	.flex-row {
+		display: flex;
+	}
+
+	.flex-col {
+		display: flex;
+		flex-direction: column;
+	}
+
+	.main-box {
+		/* margin: 16rpx; */
+		/* background-color: #FFF; */
+		border-radius: 20rpx;
+		padding: 8rpx;
+	}
+
+	.box {
+		margin: 16rpx 8rpx;
+		/* height: 200px; */
+		box-shadow: 0 0 5px #dddddd;
+		background-color: #FFF;
+		padding: 16rpx 32rpx;
+		position: relative;
+		border-radius: 20rpx;
+		font-size: 24rpx;
+		color: #bdbdbd;
+	}
+
+	.box-flag {
+		position: absolute;
+		right: 0;
+		top: 10rpx;
+		background-color: #74B9E9;
+		padding: 6rpx;
+		font-size: 10rpx;
+		color: #FFF;
+	}
+
+	.box-time {
+		color: #bdbdbd;
+	}
+
+	.box-settle {
+		font-size: 26rpx;
+		/* font-weight: bold; */
+	}
+
+	.box-title {
+		font-size: 28rpx;
+		font-weight: bold;
+		color: #000;
+	}
+
+	.box-single-row {}
+	
+	
+</style>
\ No newline at end of file
diff --git a/pages/business/process/weeklySelect.vue b/pages/business/process/weeklySelect.vue
new file mode 100644
index 0000000..e3c87b2
--- /dev/null
+++ b/pages/business/process/weeklySelect.vue
@@ -0,0 +1,251 @@
+<template>
+	<view>
+		<view class="status_bar">
+			<!-- 杩欓噷鏄姸鎬佹爮 -->
+		</view>
+		<uni-nav-bar left-icon="left" title="鏃ヨ鍒�" @clickLeft="back" @clickRight="scan"  :fixed="true"
+			:border="false" rightWidth="160rpx" leftWidth="160rpx"
+			>
+			<block slot="right">
+				<view class="city">
+					<view>
+						<text class="uni-nav-bar-text">{{user.username}}</text>
+					</view>
+					<uni-icons type="arrowdown" color="#333333" size="20" />
+				</view>
+			</block>
+		 </uni-nav-bar>
+		 
+		 <view class="card" v-for="item in items" >
+			 <view class=card @click="goDetl(item)">
+				 <view class="item100noborder" >
+					 <view class="box-time" style="flex: 1;">{{item.weeklyDay$}}</view>
+					 <view class="box-time">{{item.dailyTime$}}</view>
+				 </view>			 
+				 <view class="item100">
+					 <view class="code-decs">宸ヤ綔鍐呭</view>
+					 {{item.workContent}}
+				 </view>
+				 <view class="item100">
+					 <view class="code-decs">宸ヤ綔鐩殑</view>
+					 {{item.workPurpose}}
+				 </view>
+				 <view class="item100">
+					 <view class="code-decs">鐢叉柟鍗曚綅</view>
+					 {{item.cstmrId$}}
+				 </view>
+			 </view>
+			 
+			 <view class="buttomcss">
+			 	<button  size="mini" class="mini-btn" type="default" @click="goDayStroke(item)">鏌ョ湅褰撳墠鏃ヨ绋�</button>
+				<button  size="mini" class="mini-btn" type="primary" @click="goDayStrokeCreate(item)">鍒涘缓鏃ヨ绋�</button>
+			 </view>
+			 
+			 
+		 </view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				user: {
+					username: '',
+					id: 0,
+					type: ''
+				},				
+				token: '',
+				items:[]
+				
+			}
+		},
+		onShow() {
+			// this.baseUrl = uni.getStorageSync('baseUrl');
+			this.token = uni.getStorageSync('token');
+			
+		},
+		onLoad(option) {
+			let _this = this
+			_this.items = []
+			const eventChannel = this.getOpenerEventChannel();
+			eventChannel.on('weekly', function(data) {	
+				
+				uni.request({
+					url: `${_this.baseUrl}/weeklyDailyPlan/list/auth`,
+					// method: 'POST',
+					header: { 'token': uni.getStorageSync('token') },
+					data: {
+						weekly_id: data.data.id
+					},
+					success(res) {
+						res = res.data.data
+						_this.items = res.records
+						console.log(res.records)
+					}
+				})
+				_this.items = data
+				console.log(data);
+				
+			})
+			
+		},
+		methods: {
+			goDayStrokeCreate(e){
+				uni.navigateTo({
+					url: '/pages/business/process/dayStrokeCreate',
+					success: function(res) {
+						res.eventChannel.emit('dayStrokeCreate', {
+							data: e
+						})
+					}
+				})
+			},
+			goDayStroke(e){
+				uni.navigateTo({
+					url: '/pages/business/process/dayStroke',
+					success: function(res) {
+						res.eventChannel.emit('dayStroke', {
+							data: e
+						})
+					}
+				})
+			},
+			goDetl(e) {
+				// console.log(e);
+				uni.navigateTo({
+					url: '/pages/business/process/dayDetl',
+					success: function(res) {
+						res.eventChannel.emit('day', {
+							data: e
+						})
+					}
+				})
+			},
+			getOrderNoList() {
+				let that = this
+				uni.request({
+					url: this.baseUrl + '/originRule/list/all',
+					method: 'POST',
+					success(res) {
+						res = res.data
+						that.menuList = res.data
+					}
+				})
+			},
+			chose(item) {
+				let that = this
+				uni.navigateTo({
+					url: "./goodsUp2",
+					success: function(res) {
+						// 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹�   鍚戝彟澶栦竴涓〉闈紶閫掑�肩殑
+						res.eventChannel.emit('item', {
+							item: item
+						})
+					},
+					events: {
+						// 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹�  鍙﹀涓�涓〉闈紶杩囨潵鐨�
+						acceptDataFromOpenedPage: function(data) {
+							// that.matnr = data.data
+							that.input(that.matnr)
+						},
+					},
+				
+				
+				});
+			},
+			back() {
+				uni.navigateBack({})
+			},scan() {
+				uni.navigateTo({
+					url: '/pages/authority/authority'
+				})
+			},
+		}
+	}
+</script>
+
+<style>
+	.box-time {
+		color: #bdbdbd;
+	}
+	.card {
+		display: flex;
+		flex-wrap: wrap;
+		justify-content: space-between;
+		margin: 20rpx;
+		background-color: #ffffff;
+		border-radius: 20rpx;
+		color: #000000;
+	}
+	.card2 {
+		display: flex;
+		flex-wrap: wrap;
+		padding: 20rpx;
+		justify-content: space-between;		
+		background-color: #ffffff;
+		border-radius: 20rpx;
+		color: #000000;
+	}
+	.uni-pb-5 {
+		padding-bottom: 10px;
+	}
+	.uni-px-5 {
+		padding-left: 10px;
+		padding-right: 10px;
+	}
+	.buttom {
+		width: 100%;
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		height: 100rpx;
+		background-color: #FFF;
+		box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.2) ;
+	}
+	.item {
+		width: 40%;
+		display: flex;
+		align-items: center;
+		height: 70rpx;
+		padding: 0px 10upx 0px;
+		/* margin-left: 20rpx; */
+		border-bottom: 1px solid #b7b7b7;
+	}
+	.item100 {
+		width: 100%;
+		display: flex;
+		align-items: center;
+		height: 70rpx;
+		padding: 0px 10upx 0px;
+		/* margin-left: 20rpx; */
+		border-bottom: 1px solid #b7b7b7;
+	}
+	.item100noborder {
+		width: 100%;
+		display: flex;
+		align-items: center;
+		height: 70rpx;
+		padding: 0px 10upx 0px;
+		/* margin-top: 0rpx; */
+		/* border-bottom: 1px solid #000000; */
+	}
+	.code-decs {
+		width: 20vw;
+		font-size: 15px;
+		color: #8c8c8c;
+	}
+	.buttomcss {
+		display: flex;
+		width: 100%;
+		margin: 0 0 5px;
+		/* text-align: center; */
+	}
+	button{
+		font-size: 10rpx;
+	}
+</style>
diff --git a/uni_modules/uni-section/changelog.md b/uni_modules/uni-section/changelog.md
new file mode 100644
index 0000000..738f2b3
--- /dev/null
+++ b/uni_modules/uni-section/changelog.md
@@ -0,0 +1,2 @@
+## 0.0.1锛�2022-07-22锛�
+- 鍒濆鍖�
diff --git a/uni_modules/uni-section/components/uni-section/uni-section.vue b/uni_modules/uni-section/components/uni-section/uni-section.vue
new file mode 100644
index 0000000..9a52e0b
--- /dev/null
+++ b/uni_modules/uni-section/components/uni-section/uni-section.vue
@@ -0,0 +1,167 @@
+<template>
+	<view class="uni-section">
+		<view class="uni-section-header" @click="onClick">
+				<view class="uni-section-header__decoration" v-if="type" :class="type" />
+        <slot v-else name="decoration"></slot>
+
+        <view class="uni-section-header__content">
+          <text :style="{'font-size':titleFontSize,'color':titleColor}" class="uni-section__content-title" :class="{'distraction':!subTitle}">{{ title }}</text>
+          <text v-if="subTitle" :style="{'font-size':subTitleFontSize,'color':subTitleColor}" class="uni-section-header__content-sub">{{ subTitle }}</text>
+        </view>
+
+        <view class="uni-section-header__slot-right">
+          <slot name="right"></slot>
+        </view>
+		</view>
+
+		<view class="uni-section-content" :style="{padding: _padding}">
+			<slot />
+		</view>
+	</view>
+</template>
+
+<script>
+
+	/**
+	 * Section 鏍囬鏍�
+	 * @description 鏍囬鏍�
+	 * @property {String} type = [line|circle|square] 鏍囬瑁呴グ绫诲瀷
+	 * 	@value line 绔栫嚎
+	 * 	@value circle 鍦嗗舰
+	 * 	@value square 姝f柟褰�
+	 * @property {String} title 涓绘爣棰�
+	 * @property {String} titleFontSize 涓绘爣棰樺瓧浣撳ぇ灏�
+	 * @property {String} titleColor 涓绘爣棰樺瓧浣撻鑹�
+	 * @property {String} subTitle 鍓爣棰�
+	 * @property {String} subTitleFontSize 鍓爣棰樺瓧浣撳ぇ灏�
+	 * @property {String} subTitleColor 鍓爣棰樺瓧浣撻鑹�
+	 * @property {String} padding 榛樿鎻掓Ы padding
+	 */
+
+	export default {
+		name: 'UniSection',
+    emits:['click'],
+		props: {
+			type: {
+				type: String,
+				default: ''
+			},
+			title: {
+				type: String,
+				required: true,
+				default: ''
+			},
+      titleFontSize: {
+        type: String,
+        default: '14px'
+      },
+			titleColor:{
+				type: String,
+				default: '#333'
+			},
+			subTitle: {
+				type: String,
+				default: ''
+			},
+      subTitleFontSize: {
+        type: String,
+        default: '12px'
+      },
+      subTitleColor: {
+        type: String,
+        default: '#999'
+      },
+			padding: {
+				type: [Boolean, String],
+				default: false
+			}
+		},
+    computed:{
+      _padding(){
+        if(typeof this.padding === 'string'){
+          return this.padding
+        }
+
+        return this.padding?'10px':''
+      }
+    },
+		watch: {
+			title(newVal) {
+				if (uni.report && newVal !== '') {
+					uni.report('title', newVal)
+				}
+			}
+		},
+    methods: {
+			onClick() {
+				this.$emit('click')
+			}
+		}
+	}
+</script>
+<style lang="scss" >
+	$uni-primary: #2979ff !default;
+
+	.uni-section {
+		background-color: #fff;
+    .uni-section-header {
+      position: relative;
+      /* #ifndef APP-NVUE */
+      display: flex;
+      /* #endif */
+      flex-direction: row;
+      align-items: center;
+      padding: 12px 10px;
+      font-weight: normal;
+
+      &__decoration{
+        margin-right: 6px;
+        background-color: $uni-primary;
+        &.line {
+          width: 4px;
+          height: 12px;
+          border-radius: 10px;
+        }
+
+        &.circle {
+          width: 8px;
+          height: 8px;
+          border-top-right-radius: 50px;
+          border-top-left-radius: 50px;
+          border-bottom-left-radius: 50px;
+          border-bottom-right-radius: 50px;
+        }
+
+        &.square {
+          width: 8px;
+          height: 8px;
+        }
+      }
+
+      &__content {
+        /* #ifndef APP-NVUE */
+        display: flex;
+        /* #endif */
+        flex-direction: column;
+        flex: 1;
+        color: #333;
+
+        .distraction {
+          flex-direction: row;
+          align-items: center;
+        }
+        &-sub {
+          margin-top: 2px;
+        }
+      }
+
+      &__slot-right{
+        font-size: 14px;
+      }
+    }
+
+    .uni-section-content{
+      font-size: 14px;
+    }
+	}
+</style>
diff --git a/uni_modules/uni-section/package.json b/uni_modules/uni-section/package.json
new file mode 100644
index 0000000..0a31fb5
--- /dev/null
+++ b/uni_modules/uni-section/package.json
@@ -0,0 +1,87 @@
+{
+  "id": "uni-section",
+  "displayName": "uni-section 鏍囬鏍�",
+  "version": "0.0.1",
+  "description": "鏍囬鏍忕粍浠�",
+  "keywords": [
+    "uni-ui",
+    "uniui",
+    "鏍囬鏍�"
+],
+  "repository": "https://github.com/dcloudio/uni-ui",
+  "engines": {
+    "HBuilderX": ""
+  },
+  "directories": {
+    "example": "../../temps/example_temps"
+  },
+  "dcloudext": {
+    "category": [
+      "鍓嶇缁勪欢",
+      "閫氱敤缁勪欢"
+    ],
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+      "ads": "鏃�",
+      "data": "鏃�",
+      "permissions": "鏃�"
+    },
+    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+  },
+  "uni_modules": {
+    "dependencies": [
+      "uni-scss"
+    ],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y"
+      },
+      "client": {
+        "App": {
+          "app-vue": "y",
+          "app-nvue": "y"
+        },
+        "H5-mobile": {
+          "Safari": "y",
+          "Android Browser": "y",
+          "寰俊娴忚鍣�(Android)": "y",
+          "QQ娴忚鍣�(Android)": "y"
+        },
+        "H5-pc": {
+          "Chrome": "y",
+          "IE": "y",
+          "Edge": "y",
+          "Firefox": "y",
+          "Safari": "y"
+        },
+        "灏忕▼搴�": {
+          "寰俊": "y",
+          "闃块噷": "y",
+          "鐧惧害": "y",
+          "瀛楄妭璺冲姩": "y",
+          "QQ": "y"
+        },
+        "蹇簲鐢�": {
+          "鍗庝负": "u",
+          "鑱旂洘": "u"
+        },
+        "Vue": {
+            "vue2": "y",
+            "vue3": "y"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-section/readme.md b/uni_modules/uni-section/readme.md
new file mode 100644
index 0000000..d47faab
--- /dev/null
+++ b/uni_modules/uni-section/readme.md
@@ -0,0 +1,8 @@
+## Section 鏍囬鏍�
+> **缁勪欢鍚嶏細uni-section**
+> 浠g爜鍧楋細 `uSection`
+
+uni-section 缁勪欢涓昏鐢ㄤ簬鏂囩珷銆佸垪琛ㄨ鎯呯瓑鏍囬灞曠ず
+
+### [鏌ョ湅鏂囨。](https://uniapp.dcloud.io/component/uniui/uni-section)
+#### 濡備娇鐢ㄨ繃绋嬩腑鏈変换浣曢棶棰橈紝鎴栬�呮偍瀵箄ni-ui鏈変竴浜涘ソ鐨勫缓璁紝娆㈣繋鍔犲叆 uni-ui 浜ゆ祦缇わ細871950839

--
Gitblit v1.9.1