Преглед изворни кода

feat(work/diary): 周报查看功能

wangpx пре 1 година
родитељ
комит
cc13fd90c9
7 измењених фајлова са 939 додато и 40 уклоњено
  1. 1 3
      components/ygoa/processList.vue
  2. 17 1
      pages.json
  3. 518 7
      pages/contacts/index.vue
  4. 89 26
      pages/message/index.vue
  5. 16 2
      pages/process/index.vue
  6. 287 0
      pages/work/diary/index.vue
  7. 11 1
      pages/work/index.vue

+ 1 - 3
components/ygoa/processList.vue

@@ -25,7 +25,7 @@
 							</template>
 							<view class="process_contant">
 								<uni-row>
-									<uni-col :xs="8" :sm="7">请假天数:</uni-col>
+									<uni-col :xs="8" :sm="7">{{ 'icon-apply-overtime'==process.type?'加班时间':'请假天数' }}:</uni-col>
 									<uni-col :xs="15" :sm="16">{{ process.totalTime }}</uni-col>
 								</uni-row>
 								<uni-row>
@@ -47,10 +47,8 @@
 
 <script setup lang="ts">
 	import $tab from '@/plugins/tab.js'
-	// import { reactive } from 'vue';
 	// TODO: 根据接口返回的数据动态生成process表单
 	const props = defineProps(['processes'])
-	// let processes = reactive([])
 	function handleToDetail({ id, title }) { // 跳转流程详情页
 		$tab.navigateTo('/pages/process/detail/index?id=' + id + '&title=' + title)
 	}

+ 17 - 1
pages.json

@@ -65,11 +65,27 @@
 				"enablePullDownRefresh" : false
 			}
 		},
+		{
+			"path" : "pages/work/diary/index",
+			"style" : 
+			{
+				"navigationBarTitleText" : "周报",
+				"enablePullDownRefresh" : false
+			}
+		},
+		{
+			"path" : "pages/work/diary/edit",
+			"style" : 
+			{
+				"navigationBarTitleText" : "编辑日报",
+				"enablePullDownRefresh" : false
+			}
+		},
 		{
 			"path" : "pages/contacts/group/index",
 			"style" : 
 			{
-				"navigationBarTitleText" : "",
+				"navigationBarTitleText" : "部门通讯录",
 				"enablePullDownRefresh" : false
 			}
 		},

+ 518 - 7
pages/contacts/index.vue

@@ -21,16 +21,16 @@
 					</uni-list>
 				</view>
 			</template> -->
-			<template v-for="(item, index) in itemArr" :key="index">
+			<template v-for="(items, index) in itemArr" :key="index">
 				<uv-index-item>
 					<uv-index-anchor :text="indexList[index]" size="16"></uv-index-anchor>
 					<view class="chat_list">
 						<uni-list :border="true">
-							<uni-list-chat :to="`/pages/mine/personal_message/personal_message?id=${id}&name=${name}`"
-								v-for="({ id, name, phone, avatar, dept}, index) in item" @click="clickChat" :title="name" :avatar="avatar"
-								:note="phone" :clickable="true" :avatar-circle="true" :key="index">
+							<uni-list-chat
+								v-for="(item, index) in items" @click="clickChat(item)" :title="item.name" :avatar="item.avatar"
+								:note="item.phone" :clickable="true" :avatar-circle="true" :key="index">
 								<view class="chat-custom-right">
-									<text class="chat-custom-text" v-text="dept"></text>
+									<text class="chat-custom-text" v-text="item.dept"></text>
 								</view>
 							</uni-list-chat>
 						</uni-list>
@@ -42,12 +42,15 @@
 </template>
 
 <script setup lang="ts">
-	import { onMounted, ref } from 'vue'
+	import { onMounted, reactive, ref } from 'vue'
 	import headImg from "/static/images/mine/headImg.jpg";
+	import $tab from '@/plugins/tab.js'
 	// 索引列表
 	const indexList = ref([])
 	const itemArr = ref([])
 	onMounted(() => {
+		// indexList.value = Object.keys(con)
+		// itemArr.value = Object.values(con)
 		indexList.value = ["A", "B", "C", "D", "E", "F", "G"]
 		itemArr.value = [
 			[
@@ -218,8 +221,516 @@
 	// }
 	// 点击通讯录列表
 	function clickChat(e) {
-		console.log('clickChat', e);
+		// console.log('clickChat', e);
+		// console.log('con', Object.keys(con));
+		// console.log('con', Object.values(con));
+		$tab.navigateTo('/pages/mine/personal_message/personal_message?id=' + e.id + '&name=' + e.name)
 	}
+	
+	const con = reactive({
+	"B": [{
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"email": "yt@163.com",
+		"groupXUser": {},
+		"groupid": "264336008819099",
+		"name": "鲍尾俤",
+		"password": "AC68123A832CF39FEDA3CAFFCC23E78C",
+		"pos": 4,
+		"position": "261937211312800",
+		"rePassword": "",
+		"unitId": 0,
+		"useId": 284381397982300,
+		"userName": "baowd",
+		"userState": "0"
+	}],
+	"C": [{
+		"address": "福建省福州市闽侯县南屿镇南井溪路32号1号楼3004室",
+		"birthday": "2001-09-10",
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"desktop_phone": "15225483609",
+		"email": "",
+		"fax": "",
+		"fixed_phone": "",
+		"groupXUser": {},
+		"groupid": "264336008819099",
+		"homeno": "",
+		"loginType": "1",
+		"msnnum": "",
+		"name": "岑梦源",
+		"password": "1C9C20A589FE9340341D7FEC2664E364",
+		"pos": 0,
+		"postcode": "",
+		"qqnum": "",
+		"rePassword": "",
+		"sex": "M",
+		"unitId": 347517153919893,
+		"useId": 697039334351644,
+		"userName": "cenmy",
+		"userState": "0"
+	}],
+	"D": [{
+		"address": "",
+		"birthday": "1998-08-27",
+		"companyId": 3,
+		"contact_tel1": "13860036014",
+		"deleteSymbol": "0",
+		"desktop_phone": "",
+		"email": "info@syuan365.com",
+		"fax": "",
+		"fixed_phone": "",
+		"groupXUser": {},
+		"groupid": "347517153919893",
+		"homeno": "",
+		"intro": "",
+		"loginType": "1",
+		"msnnum": "",
+		"name": "单位管理员",
+		"password": "AC1EC720D7D6CF1FE1C089EB45C45725",
+		"pos": 0,
+		"postcode": "",
+		"qqnum": "12346535445",
+		"rePassword": "",
+		"sex": "F",
+		"unitId": 347517153919893,
+		"useId": 347517210967865,
+		"userName": "yyadmin",
+		"userState": "1"
+	}],
+	"H": [
+        {
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"email": "yt@163.com",
+		"groupXUser": {},
+		"groupid": "264336004594300",
+		"name": "何茂鸿",
+		"password": "CDF33BDD235334BDC364C7C196D4E804",
+		"pos": 2,
+		"position": "261878924049400",
+		"rePassword": "",
+		"unitId": 0,
+		"useId": 284381382211000,
+		"userName": "hemh",
+		"userState": "1"
+	}, {
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"email": "yt@163.com",
+		"groupXUser": {},
+		"groupid": "264336004594300",
+		"name": "何茂雄",
+		"password": "887005748DB2859BB4AFE1CC3AF79D98",
+		"pos": 1,
+		"position": "261870861332700",
+		"rePassword": "",
+		"unitId": 0,
+		"useId": 284381380647600,
+		"userName": "hemx",
+		"userState": "1"
+	}, {
+		"address": "",
+		"birthday": "2002-08-10",
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"desktop_phone": "15037749081",
+		"email": "",
+		"fax": "",
+		"fixed_phone": "",
+		"groupXUser": {},
+		"groupid": "264336008819099",
+		"homeno": "",
+		"loginType": "1",
+		"msnnum": "",
+		"name": "韩明阳",
+		"password": "D08DB484CC74BF674C35D88D13CA5DAD",
+		"pos": 0,
+		"postcode": "",
+		"qqnum": "",
+		"rePassword": "",
+		"sex": "M",
+		"unitId": 347517153919893,
+		"useId": 511341581866278,
+		"userName": "hanmy",
+		"userState": "1"
+	}, {
+		"address": "",
+		"birthday": "2001-08-15",
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"desktop_phone": "15270946547",
+		"email": "",
+		"fax": "",
+		"fixed_phone": "",
+		"groupXUser": {},
+		"groupid": "284138810475600",
+		"homeno": "",
+		"loginType": "1",
+		"msnnum": "",
+		"name": "黄树彬",
+		"password": "C51DF6D89F9A4AFC958146E3E2387478",
+		"pos": 0,
+		"postcode": "",
+		"qqnum": "",
+		"rePassword": "",
+		"sex": "M",
+		"unitId": 347517153919893,
+		"useId": 511413363379704,
+		"userName": "huangsb",
+		"userState": "1"
+	}],
+	"L": [
+        {
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"email": "yt@163.com",
+		"groupXUser": {},
+		"groupid": "264336004594300",
+		"intro": "",
+		"msnnum": null,
+		"name": "林方挺",
+		"password": "52AFDEC797E0068886C4FEA00C29B153",
+		"pos": 6,
+		"position": "261901397478400",
+		"qqnum": "124127047",
+		"rePassword": "",
+		"unitId": 0,
+		"useId": 284381389957000,
+		"userName": "linft",
+		"userState": "1"
+	}, {
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"email": "yt@163.com",
+		"groupXUser": {},
+		"groupid": "264336004594300",
+		"name": "刘亚光",
+		"password": "ED783A2A5B447E7E87DD0B1FA96CB1AD",
+		"pos": 5,
+		"position": "261901397478400",
+		"rePassword": "",
+		"unitId": 0,
+		"useId": 284381388107500,
+		"userName": "liuyg",
+		"userState": "1"
+	}, {
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"email": "yt@163.com",
+		"groupXUser": {},
+		"groupid": "264336004594300",
+		"name": "林明东",
+		"password": "EF60BDC22B6CFF067656498A352DAF23",
+		"pos": 3,
+		"position": "261878924049400",
+		"rePassword": "",
+		"unitId": 0,
+		"useId": 284381384120700,
+		"userName": "linmd",
+		"userState": "1"
+	}],
+	"O": [
+        {
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"email": "yt@163.com",
+		"groupXUser": {},
+		"groupid": "264336008819099",
+		"name": "欧阳榕太",
+		"password": "BACC8389B59778F9FA30080B25A0E05E",
+		"pos": 2,
+		"position": "261937211312800",
+		"rePassword": "",
+		"unitId": 0,
+		"useId": 284381394077800,
+		"userName": "ouyrt",
+		"userState": "1"
+	}, {
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"email": "yt@163.com",
+		"groupXUser": {},
+		"groupid": "264336008819099",
+		"name": "欧阳杰",
+		"password": "93C67FEC648F070293EB2C4C4F5A2715",
+		"pos": 1,
+		"position": "261937211312800",
+		"rePassword": "",
+		"unitId": 0,
+		"useId": 284381392106000,
+		"userName": "ouyj",
+		"userState": "1"
+	}],
+	"W": [{
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"email": "yt@163.com",
+		"groupXUser": {},
+		"groupid": "264336008819099",
+		"name": "吴海彪",
+		"password": "63A8758D07F9FD9ECD9D568F7FEF3529",
+		"pos": 5,
+		"position": "261937211312800",
+		"rePassword": "",
+		"unitId": 0,
+		"useId": 284381408316500,
+		"userName": "wuhb",
+		"userState": "1"
+	}, {
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"email": "yt@163.com",
+		"groupXUser": {},
+		"groupid": "264336004594300",
+		"name": "王新影",
+		"password": "EE1822E3A1940B6A7B0A437496A4DF7C",
+		"pos": 4,
+		"position": "61692348726459",
+		"rePassword": "",
+		"unitId": 0,
+		"useId": 284381386140500,
+		"userName": "wangxy",
+		"userState": "1"
+	}, {
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"email": "yt@163.com",
+		"groupXUser": {},
+		"groupid": "264336008819099",
+		"name": "王明",
+		"password": "38C812CF30F1F4811D69ECF42A8CDC1F",
+		"pos": 3,
+		"position": "261937211312800",
+		"rePassword": "",
+		"unitId": 0,
+		"useId": 284381395978900,
+		"userName": "wangm",
+		"userState": "1"
+	}, {
+		"address": "福州市闽侯县南屿镇高岐村工由72号",
+		"birthday": "1988-03-20",
+		"companyId": 3,
+		"contact_tel1": "13859868182",
+		"deleteSymbol": "0",
+		"desktop_phone": "13859868182",
+		"email": "545008867@qq.com",
+		"fax": "",
+		"fixed_phone": "",
+		"groupXUser": {},
+		"groupid": "284138810475600",
+		"homeno": "",
+		"loginType": "1",
+		"msnnum": "",
+		"name": "温广地",
+		"password": "42D3ED47DE1CD144920E1C2A75BC1218",
+		"pos": 0,
+		"postcode": "",
+		"qqnum": "",
+		"rePassword": "",
+		"sex": "M",
+		"unitId": 347517153919893,
+		"useId": 8004679116357,
+		"userName": "wengd",
+		"userState": "1"
+	}, {
+		"address": "广东省普宁市洪阳镇水吼村黄厝寮4号",
+		"birthday": "2001-01-26",
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"desktop_phone": "17620456846",
+		"email": "",
+		"fax": "",
+		"fixed_phone": "",
+		"groupXUser": {},
+		"groupid": "284138810475600",
+		"homeno": "",
+		"loginType": "1",
+		"msnnum": "",
+		"name": "王沛翔",
+		"password": "FCB8E00D6C503270DC86526A61E3583A",
+		"pos": 0,
+		"postcode": "",
+		"qqnum": "",
+		"rePassword": "",
+		"sex": "M",
+		"unitId": 347517153919893,
+		"useId": 776635403571619,
+		"userName": "wangpx",
+		"userState": "1"
+	}, {
+		"address": "",
+		"birthday": "1996-08-03",
+		"companyId": 3,
+		"contact_tel1": "17712653403",
+		"deleteSymbol": "0",
+		"desktop_phone": "17712653403",
+		"email": "",
+		"fax": "",
+		"fixed_phone": "",
+		"groupXUser": {},
+		"groupid": "347517153919893",
+		"homeno": "",
+		"loginType": "1",
+		"msnnum": "",
+		"name": "王璐婷",
+		"password": "BC03FD91366607E9586CB62FE47D01BD",
+		"pos": 0,
+		"postcode": "",
+		"qqnum": "",
+		"rePassword": "",
+		"sex": "F",
+		"unitId": 347517153919893,
+		"useId": 7642691700874,
+		"userName": "wanglt",
+		"userState": "1"
+	}],
+	"Y": [
+        {
+		"address": "福州市马尾区名城国际25#1701",
+		"birthday": "2000-05-08",
+		"companyId": 3,
+		"contact_tel1": "13799319516",
+		"deleteSymbol": "0",
+		"desktop_phone": "13799319516",
+		"email": "",
+		"fax": "",
+		"fixed_phone": "",
+		"groupXUser": {},
+		"groupid": "264336008819099",
+		"homeno": "",
+		"loginType": "1",
+		"msnnum": "",
+		"name": "叶轩辰",
+		"password": "6C73633D87B0F268B268DB781BFF1C12",
+		"pos": 0,
+		"postcode": "",
+		"qqnum": "",
+		"rePassword": "",
+		"sex": "M",
+		"unitId": 347517153919893,
+		"useId": 784030331214506,
+		"userName": "yexc",
+		"userState": "1"
+	}, {
+		"address": "福建省福州市闽侯县南屿镇南井溪路32号1号楼303室",
+		"birthday": "2002-04-23",
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"desktop_phone": "19859610745",
+		"email": "",
+		"fax": "",
+		"fixed_phone": "",
+		"groupXUser": {},
+		"groupid": "264336008819099",
+		"homeno": "",
+		"loginType": "1",
+		"msnnum": "",
+		"name": "杨晴晴",
+		"password": "DEB22331EDF45C7A94C23CF5607AF8CC",
+		"pos": 0,
+		"postcode": "",
+		"qqnum": "",
+		"rePassword": "",
+		"sex": "F",
+		"unitId": 347517153919893,
+		"useId": 696832519230498,
+		"userName": "yangqq",
+		"userState": "1"
+	}],
+	"Z": [
+        {
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"email": "yt@163.com",
+		"groupXUser": {},
+		"groupid": "284138810475600",
+		"name": "张文腾",
+		"password": "DD724D4B065C59E03D34891D33EBDE2C",
+		"pos": 3,
+		"position": "262035339116900",
+		"rePassword": "",
+		"unitId": 0,
+		"useId": 284381405920700,
+		"userName": "zhangwt",
+		"userState": "1"
+	}, {
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"email": "yt@163.com",
+		"groupXUser": {},
+		"groupid": "264392006086800",
+		"name": "张燕琴",
+		"password": "C82C743DAB58AB6F417F50CE79F757BF",
+		"pos": 2,
+		"position": "261972596720800",
+		"rePassword": "",
+		"unitId": 0,
+		"useId": 284381402357600,
+		"userName": "zhangyq",
+		"userState": "1"
+	}, {
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"email": "yt@163.com",
+		"groupXUser": {},
+		"groupid": "264336013866500",
+		"name": "郑晓明",
+		"password": "6E870E864136DB81F08D04150F18B260",
+		"pos": 2,
+		"position": "261995803042300",
+		"rePassword": "",
+		"unitId": 0,
+		"useId": 284381400023500,
+		"userName": "zhengxm",
+		"userState": "1"
+	}, {
+		"address": "",
+		"birthday": "2024-06-20",
+		"companyId": 3,
+		"contact_tel1": "",
+		"deleteSymbol": "0",
+		"desktop_phone": "",
+		"email": "",
+		"fax": "",
+		"fixed_phone": "",
+		"groupXUser": {},
+		"groupid": "264336008819099",
+		"homeno": "",
+		"loginType": "1",
+		"msnnum": "",
+		"name": "张功汶",
+		"password": "2B273FFD0C1B6DDE573100D64DF9173C",
+		"pos": 0,
+		"postcode": "",
+		"qqnum": "",
+		"rePassword": "",
+		"sex": "M",
+		"unitId": 347517153919893,
+		"useId": 695345154337400,
+		"userName": "zhanggw",
+		"userState": "1"
+	}]
+})
 </script>
 
 <style lang="scss">

+ 89 - 26
pages/message/index.vue

@@ -1,7 +1,27 @@
 <template>
 	<view class="index_container">
+		<!-- <uni-nav-bar :border="false" :fixed="true">
+			<template v-slot:left>研发部</template>
+			<template v-slot:right>用户1</template>
+		</uni-nav-bar>
+		<view class="grid-body">
+			<uni-grid :column="2" :square="false" :showBorder="false" @change="changeIndexGrid">
+				<uni-grid-item :index="1">
+					<view class="grid-item-box">
+						<text class="ygoa-icon icon-checkIn"></text>
+						<text class="text">考勤打卡</text>
+					</view>
+				</uni-grid-item>
+				<uni-grid-item :index="2">
+					<view class="grid-item-box">
+						<text class="ygoa-icon icon-init-process"></text>
+						<text class="text">流程申请</text>
+					</view>
+				</uni-grid-item>
+			</uni-grid>
+		</view> -->
 		<uni-collapse>
-			<uni-collapse-item title-border="show" :border="true" :show-animation="false" :open="false">
+			<uni-collapse-item title-border="show" :border="true" :show-animation="true" :open="false">
 				<template v-slot:title>
 					<uni-section title="待办消息" type="line" titleFontSize="20px"></uni-section>
 				</template>
@@ -16,7 +36,7 @@
 			</uni-collapse-item>
 		</uni-collapse>
 		<uni-collapse>
-			<uni-collapse-item title-border="show" :border="true" :show-animation="false" :open="true">
+			<uni-collapse-item title-border="show" :border="true" :show-animation="true" :open="true">
 				<template v-slot:title>
 					<uni-section title="消息" type="line" titleFontSize="20px"></uni-section>
 				</template>
@@ -75,6 +95,9 @@
 	import { onMounted, reactive, ref } from 'vue';
 	import $tab from '@/plugins/tab.js';
 	import processList from '@/components/ygoa/processList.vue'
+	function changeIndexGrid(e) {
+
+	}
 	// 分段器选项列表
 	const items = reactive(['全部', '已读', '未读'])
 	// 分段器选项
@@ -82,30 +105,44 @@
 	// 消息列表
 	let messages = reactive([])
 	// 待办列表
-	let processes = reactive([{
-		id: 1,
-		title: '账户1 的请假申请',
-		user: '账户1',
-		createTime: '2024/10/10',
-		startTime: '2024/10/10',
-		endTime: '2024/10/12',
-		totalTime: '2',
-		description: '请假说明请假说明请假说明请假说明请假说明',
-		type: 'icon-apply-leave',
-		step: 0
-	},
-	{
-		id: 1,
-		title: '账户2 的请假申请',
-		user: '账户2',
-		createTime: '2024/10/10',
-		startTime: '2024/10/10',
-		endTime: '2024/10/12',
-		totalTime: '2',
-		description: '请假说明请假说明',
-		type: 'icon-apply-leave',
-		step: 0
-	}])
+	let processes = reactive([
+		{
+			id: 1,
+			title: '账户1 的请假申请',
+			user: '账户1',
+			createTime: '2024/10/10',
+			startTime: '2024/10/10',
+			endTime: '2024/10/12',
+			totalTime: '2',
+			description: '请假说明请假说明请假说明请假说明请假说明',
+			type: 'icon-apply-leave',
+			step: 0
+		},
+		{
+			id: 1,
+			title: '账户2 的请假申请',
+			user: '账户2',
+			createTime: '2024/10/10',
+			startTime: '2024/10/10',
+			endTime: '2024/10/12',
+			totalTime: '2',
+			description: '请假说明请假说明',
+			type: 'icon-apply-leave',
+			step: 0
+		},
+		{
+			id: 2,
+			title: '账户2 的加班申请',
+			user: '账户2',
+			createTime: '2024/10/10',
+			startTime: '2024/10/10 17/30/00',
+			endTime: '2024/10/10 18/30/00',
+			totalTime: '1',
+			description: '加班说明加班说明',
+			type: 'icon-apply-overtime',
+			step: 0
+		},
+	])
 	onMounted(() => {
 		onClickItem({ currentIndex: 0 })
 	})
@@ -212,6 +249,31 @@
 <style lang="scss">
 	@import "@/static/font/ygoa/iconfont.css";
 
+	.text {
+		text-align: center;
+		font-size: 26rpx;
+		margin-top: 10rpx;
+	}
+
+	.grid-body {
+		.ygoa-icon {
+			font-size: 40px;
+		}
+
+		.grid-item-box {
+			flex: 1;
+			/* #ifndef APP-NVUE */
+			display: flex;
+			/* #endif */
+			border-top: 1px solid #ccc;
+			background-color: #ffffff;
+			flex-direction: column;
+			align-items: center;
+			justify-content: center;
+			padding: 15px 0;
+		}
+	}
+
 	.segmented_control_container {
 		// margin-top: 10px;
 	}
@@ -244,6 +306,7 @@
 			.message_content {}
 		}
 	}
+
 	.message_container_unread {
 		// 未读样式
 		border-left-color: #0f6cbd;

+ 16 - 2
pages/process/index.vue

@@ -31,7 +31,8 @@
 		<view class="popup_container">
 			<uni-popup ref="searchItemPopup" type="bottom">
 				<uni-list>
-					<uni-list-item @click="clickSearchItem(item)" v-for="(item, index) in candidates" :key="index" clickable :title="item">
+					<uni-list-item @click="clickSearchItem(item)" v-for="(item, index) in candidates" :key="index" clickable
+						:title="item">
 					</uni-list-item>
 				</uni-list>
 			</uni-popup>
@@ -52,7 +53,7 @@
 	// 搜索项
 	const candidates = ref(['全局', '请假日期', '天数'])
 	// 搜索栏选中项
-	const searchItem = ref('全局') 
+	const searchItem = ref('全局')
 	onMounted(() => {
 		onClickItem({ currentIndex: 0 })
 	})
@@ -107,6 +108,18 @@
 						description: '请假说明请假说明',
 						type: 'icon-apply-leave',
 						step: 0
+					},
+					{
+						id: 2,
+						title: '账户2 的加班申请',
+						user: '账户2',
+						createTime: '2024/10/10',
+						startTime: '2024/10/10 17/30/00',
+						endTime: '2024/10/10 18/30/00',
+						totalTime: '1',
+						description: '加班说明加班说明',
+						type: 'icon-apply-overtime',
+						step: 0
 					}
 				]
 				break;
@@ -134,6 +147,7 @@
 		.popup_button_container {
 			width: 100%;
 			padding-top: 10px;
+
 			.button {
 				font-size: 14px;
 				font-weight: bold;

+ 287 - 0
pages/work/diary/index.vue

@@ -0,0 +1,287 @@
+<template>
+	<view>
+		<view class="yearSelect">
+			<uni-combox :candidates="yearRange" placeholder="请选择年份" v-model="selectYear"></uni-combox>
+		</view>
+		<view class="scroll_bar">
+			<uni-list>
+				<uni-list-item>
+					<template v-slot:header>
+						<view>
+							<button class="week_button" @click="showDrawer" type="primary"> {{scrollInto}} </button>
+						</view>
+					</template>
+					<template v-slot:body>
+						<scroll-view id="tab-bar" class="scroll-h" :scroll-x="true" :show-scrollbar="false"
+							:scroll-into-view="scrollInto">
+							<view v-for="(tab,index) in tabBars" :key="tab.id" class="uni-tab-item" :id="tab.id" :data-current="index"
+								@click="ontabtap">
+								<text class="uni-tab-item-title"
+									:class="tabIndex==index ? 'uni-tab-item-title-active' : ''">{{tab.name}}</text>
+							</view>
+						</scroll-view>
+					</template>
+				</uni-list-item>
+			</uni-list>
+		</view>
+		<view class="diary_content">
+			<uni-list>
+				<uni-list-item>
+					<template v-slot:header>
+						<view class="date">日期</view>
+					</template>
+					<template v-slot:footer>
+						<view class="content">
+							<uni-row :gutter="10">
+								<uni-col :span="8">任务</uni-col>
+								<uni-col :span="8">完成</uni-col>
+								<uni-col :span="8">反馈</uni-col>
+							</uni-row>
+						</view>
+					</template>
+				</uni-list-item>
+				<uni-list-item @click="toEditDiary(day)" v-for="(day, index) in '一二三四五六日'" :key="index" clickable>
+					<!-- <template v-slot:footer>
+						<view class="content">
+							<view style="margin-bottom: 5px;">
+									<uni-row gutter="10">
+										<uni-col :span="12">周{{day}}</uni-col>
+										<uni-col :span="12">11.1{{index+1}}</uni-col>
+									</uni-row>
+							</view>
+							<uni-row :gutter="10">
+								<uni-col :span="4">
+									<text>任务</text>
+								</uni-col>
+								<uni-col :span="20">
+									<uni-easyinput type="textarea" v-model="TODO" disabled autoHeight placeholder="请输入内容"></uni-easyinput>
+								</uni-col>
+							</uni-row>
+							<uni-row :gutter="10">
+								<uni-col :span="4">
+									<text>完成</text>
+								</uni-col>
+								<uni-col :span="20">
+									<uni-easyinput type="textarea" v-model="DONE" disabled autoHeight placeholder="请输入内容"></uni-easyinput>
+								</uni-col>
+							</uni-row>
+							<uni-row :gutter="10">
+								<uni-col :span="4">
+									<text>反馈</text>
+								</uni-col>
+								<uni-col :span="20">
+									<uni-easyinput type="textarea" v-model="TAG" disabled autoHeight placeholder="请输入内容"></uni-easyinput>
+								</uni-col>
+							</uni-row>
+						</view>
+					</template> -->
+					<template v-slot:header>
+						<view class="date">
+							<uni-row :gutter="10">周{{day}}</uni-row>
+							<uni-row :gutter="10">11.1{{index+1}}</uni-row>
+						</view>
+					</template>
+					<template v-slot:footer>
+						<view class="content">
+							<uni-row :gutter="10">
+								<uni-col :span="8">
+									<uni-easyinput type="textarea" v-model="TODO" disabled autoHeight placeholder="请输入内容"></uni-easyinput>
+								</uni-col>
+								<uni-col :span="8">
+									<uni-easyinput type="textarea" v-model="DONE" disabled autoHeight placeholder="请输入内容"></uni-easyinput>
+								</uni-col>
+								<uni-col :span="8">
+									<uni-easyinput type="textarea" v-model="TAG" disabled autoHeight placeholder="请输入内容"></uni-easyinput>
+								</uni-col>
+							</uni-row>
+						</view>
+					</template>
+				</uni-list-item>
+			</uni-list>
+		</view>
+		<view class="drawer_container">
+			<uni-drawer ref="rightDrawer" mode="left">
+				<scroll-view style="height: 100%;" scroll-y="true">
+					<view v-for="item in 60" :key="item">第 {{ item }} 周</view>
+				</scroll-view>
+			</uni-drawer>
+		</view>
+	</view>
+</template>
+
+<script setup lang="ts">
+	import { onMounted, reactive, ref } from 'vue'
+	import $tab from '@/plugins/tab.js'
+	const TODO = ref('1. 完成 通讯录 页面\n2. 完成 人员信息 页面')
+	const DONE = ref('1. 完成 通讯录 页面\n2. 完成 通讯录人员信息 页面\n3. 解决 地图无法正常显示定位 问题')
+	const TAG = ref('原生 map 组件仅提供查看地图功能,不提供定位功能')
+	function toEditDiary(e) {
+		console.log('toEditDiary', e);
+		$tab.navigateTo('/pages/work/diary/edit?day=' + e)
+	}
+	const rightDrawer = ref(null)
+	function showDrawer() {
+		rightDrawer.value.open()
+	}
+	function closeDrawer() {
+		rightDrawer.value.close()
+	}
+	const scrollInto = ref(1)
+	const tabIndex = ref(0)
+	let tabBars = reactive([])
+	function ontabtap(e) {
+		console.log('ontabtap', e);
+		let index = e.target.dataset.current || e.currentTarget.dataset.current;
+		switchTab(index);
+	}
+	function switchTab(index) {
+		if (tabIndex.value === index) {
+			return;
+		}
+		tabIndex.value = index;
+		scrollInto.value = tabBars[index].id;
+	}
+	const selectYear = ref(-1)
+	let yearRange = reactive([])
+	onMounted(() => {
+		tabBars = [
+			{
+				name: '第1周',
+				id: '1'
+			}, {
+				name: '第2周',
+				id: '2'
+			}, {
+				name: '第3周',
+				id: '3'
+			}, {
+				name: '第4周',
+				id: '4'
+			}, {
+				name: '第5周',
+				id: '5'
+			}, {
+				name: '第6周',
+				id: '6'
+			}, {
+				name: '第7周',
+				id: '7'
+			}, {
+				name: '第8周',
+				id: '8'
+			}, {
+				name: '第9周',
+				id: '9'
+			},
+		],
+			yearRange = ['2023', '2024']
+		let thisYear = yearRange.find((item) => Number(item) == new Date().getFullYear())
+		console.log('thisYear', thisYear)
+		selectYear.value = thisYear
+	})
+	function changeYear(e) {
+		let a = getWeekNumber(new Date())
+
+		console.log('changeYear', e)
+	}
+	function getWeekNumber(date) {
+		// 创建一个新的日期对象,传入日期
+		const tempDate = new Date(date.getTime())
+
+		// 将日期调整到该年的第一天(1月1日)
+		tempDate.setDate(tempDate.getDate() + 4 - (tempDate.getDay() || 7))
+
+		// 获取该年1月1日对应的周四所在的日期
+		const yearStart = new Date(tempDate.getFullYear(), 0, 1)
+
+		// 计算并返回当前日期所在的周数
+		const weekNumber = Math.ceil(((tempDate - yearStart) / 86400000 + 1) / 7)
+		// 计算年份
+		let year = date.getFullYear()
+		if (weekNumber == 1 && date.getDate() >= 7) year += 1
+
+		return weekNumber
+	}
+</script>
+
+<style lang="scss">
+	.yearSelect {
+		input {
+			text-align: center;
+		}
+	}
+
+	.year_button {
+		border-radius: 0px;
+	}
+
+	.scroll_bar {
+		.week_button {
+			height: 80rpx;
+			border-radius: 0 5px 5px 0;
+		}
+
+		::v-deep .uni-list-item__container {
+			padding-left: 0;
+		}
+
+		.scroll-h {
+			width: 95%;
+			/* #ifdef H5 */
+			width: 100%;
+			/* #endif */
+			height: 80rpx;
+			flex-direction: row;
+			/* #ifndef APP-PLUS */
+			white-space: nowrap;
+			margin-left: 5px;
+			margin-right: 5px;
+			/* #endif */
+			/* flex-wrap: nowrap; */
+			// border-color: #cccccc;
+			// border-bottom-style: solid;
+			// border-bottom-width: 1px;
+
+			.uni-tab-item {
+				/* #ifndef APP-PLUS */
+				display: inline-block;
+				/* #endif */
+				flex-wrap: nowrap;
+				padding-left: 34rpx;
+				padding-right: 34rpx;
+			}
+
+			.uni-tab-item-title {
+				color: #555;
+				font-size: 30rpx;
+				height: 80rpx;
+				line-height: 80rpx;
+				flex-wrap: nowrap;
+				/* #ifndef APP-PLUS */
+				white-space: nowrap;
+				/* #endif */
+			}
+
+			.uni-tab-item-title-active {
+				color: #007AFF;
+			}
+		}
+	}
+
+	.diary_content {
+		.date {
+			text-align: center;
+			width: 20%;
+		}
+
+		.content {
+			text-align: center;
+			width: 100%;
+
+			.is-disabled {
+				background-color: #fff !important;
+				color: #000 !important;
+			}
+		}
+	}
+</style>

+ 11 - 1
pages/work/index.vue

@@ -69,6 +69,12 @@
 						<text class="text">日报</text>
 					</view>
 				</uni-grid-item>
+				<uni-grid-item :index="2">
+					<view class="grid-item-box">
+						<text class="ygoa-icon icon-diary"></text>
+						<text class="text">日报</text>
+					</view>
+				</uni-grid-item>
 			</uni-grid>
 		</view>
 
@@ -113,13 +119,17 @@
 		$tab.navigateTo('/pages/work/edit/index?title=' + '')
 	}
 	function changeDiaryGrid(e) {
-		if (1 == e.detail.index) { // 打开计算器弹出层
+		if (1 == e.detail.index) {
 			wx.navigateToMiniProgram({
 				appId: 'wxd45c635d754dbf59',
 				path: `pages/detail/detail?url=https://docs.qq.com/sheet/DZndGYU5aWVBpR1Nm`
 			})
 			return
 		}
+		if (2 == e.detail.index) {
+			$tab.navigateTo('/pages/work/diary/index')
+			return
+		}
 	}
 	function changeToolsGrid(e) { // 点击工具宫格
 		switch (e.detail.index) {