Jelajahi Sumber

style(components/messageList): 修改时间显示方式,修改流程提醒显示方式
style(message): 修改标题栏字体大小
style(process/detail): 修改表单样式
refactor(modal): 修改confirm方法返回,确认执行then,取消执行catch

wangpx 1 tahun lalu
induk
melakukan
db81e85a74
5 mengubah file dengan 71 tambahan dan 26 penghapusan
  1. 34 10
      components/ygoa/messageList.vue
  2. 4 3
      config.js
  3. 20 6
      pages/message/index.vue
  4. 8 6
      pages/process/detail/index.vue
  5. 5 1
      plugins/modal.js

+ 34 - 10
components/ygoa/messageList.vue

@@ -3,9 +3,11 @@
 		<uni-collapse>
 			<uni-collapse-item title-border="show" :border="true" :show-animation="anime" :open="open">
 				<template v-slot:title>
-					<uni-section :title="title" type="line" titleFontSize="1.5rem"></uni-section>
+					<view>
+						<uni-section :title="title" type="line" titleFontSize="1.3rem"></uni-section>
+					</view>
 				</template>
-				<View style="height: 67.8vh;">
+				<View style="height: 69.5vh;">
 					<z-paging :fixed="false" @query="queryData" :value="list" :default-page-size="pSize"
 						:default-page-no="pageNo" ref="paging">
 						<template #top>
@@ -36,9 +38,8 @@
 												</view>
 											</uni-col>
 											<uni-col :xs="6" :sm="4">
-												<view class="message_time"
-													v-for="(item, index) in message.sendtime.split(' ')" :key="index">
-													{{ item }}
+												<view class="message_time">
+													{{ formatDate(message.sendtime) }}
 												</view>
 											</uni-col>
 										</view>
@@ -60,7 +61,6 @@
 
 <script setup lang="ts">
 import { onMounted, ref } from 'vue';
-const current = ref(0)
 
 const props = defineProps({
 	anime: { type: Boolean, default: false }, // 是否开启动画
@@ -70,13 +70,13 @@ const props = defineProps({
 	list: { type: Array, required: true }, // 消息数据
 	pSize: { type: Number, default: 10 }, // 分页大小
 	pageNo: { type: Number, default: 1 }, // 默认页
+	defaultCurrent: {type: Number, default: 0}, // 默认选中项
 })
 const emits = defineEmits([
 	'clickSegment', // 点击分段器
 	'clickItem', // 点击内容项
 	'scrollToBottom' // 到达底部
 ])
-
 // 分段器 键值
 const segmentKeys = ref({})
 const segmentValues = ref({})
@@ -103,6 +103,7 @@ function complete(list, total, pageNo) {
 	}
 }
 // 点击分段器
+const current = ref(props.defaultCurrent)
 function onClickItem({ currentIndex }) {
 	current.value = currentIndex
 	// 重新加载数据 pageNo恢复为默认值
@@ -147,9 +148,33 @@ function scrollQuery(pageNo, pSize) {
 function handleToDetail(message) {
 	emits('clickItem', message)
 }
+// 格式化时间
+function formatDate(now) {
+	const [date, time] = now.split(" ")
+	if (isInTimeRange(now)) {
+		return time
+	} else {
+		return date
+	}
+}
+//判断时间是否在今天内
+function isInTimeRange(inputDate) {
+	const inputTime = new Date(inputDate).getTime();
+	// 获取当前时间戳
+	const now = new Date();
+	const year = now.getFullYear();
+	const month = now.getMonth();
+	const day = now.getDate();
+
+	// 构建当天的起始时间和结束时间的时间戳
+	const startTime = new Date(year, month, day, 0, 0, 0).getTime();
+	const endTime = new Date(year, month, day, 23, 59, 59).getTime();
+	// 判断当前时间是否在范围内
+	return inputTime >= startTime && inputTime <= endTime;
+}
 </script>
 
-<style lang="scss" scoped>
+<style lang="scss">
 .hidden_over {
 	white-space: nowrap; // 不换行
 	overflow: hidden; // 超出内容隐藏
@@ -157,9 +182,7 @@ function handleToDetail(message) {
 	display: inline-block;
 	max-width: 100%;
 }
-
 .msg_list_content {
-
 	.message_container {
 		border-left: #7b7b7b .4rem solid;
 
@@ -186,6 +209,7 @@ function handleToDetail(message) {
 				color: #888;
 				text-align: right;
 				font-size: 0.8rem;
+				line-height: 1.8rem;
 			}
 		}
 

+ 4 - 3
config.js

@@ -1,11 +1,12 @@
 export default {
 	baseUrl: 'https://api.ygtxfj.com/oa',
 	// baseUrl: 'http://localhost:8081/oa',
+	// baseUrl: 'http://192.168.110.82:8081/oa',
 	// baseUrl: 'http://118.195.146.34:20076/ynet',
 	baseUrlPre:'https://api.ygtxfj.com',
 	logoSrc: 'https://50006360.s21i.huaweicloudsite.cn/4/ABUIABAEGAAg-I3cuQYo6IXe9AQw9AM4Rg.png',
 	mapKey: 'KJBBZ-5JCLZ-3NLXD-742CK-Y26UZ-X7BJN',
-	signInTimeRange:['08:30:00', '09:30:00'],//正常签到时间范围
-	signOutTimeRange:['17:30:00', '20:00:00'],//正常签退时间
-	lateTimeRange:['09:00:00', '09:30:00'],//迟到时间范围
+	signInTimeRange:['08:30:00', '09:30:00'], //正常签到时间范围
+	signOutTimeRange:['17:30:00', '20:00:00'], //正常签退时间
+	lateTimeRange:['09:00:00', '09:30:00'], //迟到时间范围
 }

+ 20 - 6
pages/message/index.vue

@@ -3,13 +3,13 @@
 		<uni-nav-bar dark :border="false" :fixed="true" title="宇光同行">
 		</uni-nav-bar>
 		<uni-collapse>
-			<uni-collapse-item title-border="show" :border="true" :show-animation="true" :open="true">
+			<uni-collapse-item title-border="show" :border="true" :show-animation="true" :open="false">
 				<template v-slot:title>
-					<uni-section title="待办" type="line" titleFontSize="1.5rem"></uni-section>
+					<uni-section title="待办" type="line" titleFontSize="1.3rem"></uni-section>
 				</template>
 				<view class="process_container">
 					<view class="process_list">
-						<process-list :list="processes" @clickSegment="getProcessData" @clickItem="handleToProcessDetail" @scrollToBottom="getProcessPage" :current="0" :pSize="5" :pageNo="1" contentHeight="67.8vh"></process-list>
+						<process-list :list="processes" @clickSegment="getProcessData" @clickItem="handleToProcessDetail" @scrollToBottom="getProcessPage" :current="0" :pSize="5" :pageNo="1" contentHeight="69.5vh"></process-list>
 					</view>
 				</view>
 			</uni-collapse-item>
@@ -22,7 +22,7 @@
 
 		<!-- 消息列表 type=1为消息 -->
 		<message-list :list="messages" @clickSegment="getMessageData" @clickItem="handleToMessageDetail"
-			@scrollToBottom="getMessagePage" :pSize="5" :pageNo="1" :anime="true" :open="false"
+			@scrollToBottom="getMessagePage" :defaultCurrent="1" :pSize="5" :pageNo="1" :anime="true" :open="true"
 			:segments="{ '全部': '', '未读': '0', '已读': '1' }" 
 			title="消息"></message-list>
 			
@@ -54,8 +54,10 @@ onLoad((options) => {
 // 跳转打卡页
 function toClockIn() {
 	// 确认是否跳转打卡页
-	$modal.confirm('当前未打卡,是否前往打卡').then(() => {
-		$tab.navigateTo('/pages/mine/clockIn/clockIn')
+	$modal.confirm('当前未打卡,是否前往打卡').then((res) => {
+		if (res) {
+			$tab.navigateTo('/pages/mine/clockIn/clockIn')
+		}
 	})
 }
 
@@ -148,6 +150,12 @@ function getMessageData({ pSize, pageNo, type, segmentValue }, callback) {
 		p: pageNo,
 	}
 	getMessageList(params).then(({ returnParams }) => {
+		returnParams.list.forEach(item => {
+			if('(流程提醒)您有一个流程' == item.title.substring(0, 12)) {
+				item.title = '(流程提醒)' + item.title.slice(12)
+			}
+			// return item
+		})
 		messages.value = returnParams.list;
 		// 通知子组件加载完成
 		callback(returnParams.list, returnParams.total, pageNo)
@@ -163,6 +171,12 @@ function getMessagePage({ pSize, pageNo, type, segmentValue }, callback) {
 		p: pageNo,
 	}
 	getMessageList(params).then(({ returnParams }) => {
+		returnParams.list.forEach(item => {
+			if('(流程提醒)您有一个流程' == item.title.substring(0, 12)) {
+				item.title = '(流程提醒)' + item.title.slice(12)
+			}
+			// return item
+		})
 		// 更新数据
 		messages.value.push(...returnParams.list)
 		// 通知子组件加载完成

+ 8 - 6
pages/process/detail/index.vue

@@ -4,10 +4,10 @@
 			<uni-list>
 				<uni-list-item v-for="(elem, index) in formElements" :key="index">
 					<template v-slot:header>
-						<text style="width: 6.25rem;">{{ elem.elementName }}</text>
+						<text class="element_name">{{ elem.elementName }}</text>
 					</template>
 					<template v-slot:footer>
-						{{ elem.defaultValue }}
+						<text class="element_value">{{ elem.defaultValue }}</text>
 					</template>
 				</uni-list-item>
 			</uni-list>
@@ -55,10 +55,7 @@
 	})
 	
 	function initProcessInfo() {
-		console.log('userStore.user.userId', userStore.user.useId);
-		console.log('processInfo.insId', processInfo.insId);
 		getProcessInfo(userStore.user.useId, processInfo.insId).then(({ returnParams }) => {
-			console.log('getProcessInfo', returnParams);
 			formElements.value = returnParams.formElements
 		})
 	}
@@ -82,5 +79,10 @@
 </script>
 
 <style lang="scss">
-
+.element_name {
+	width: 10rem;
+}
+.element_value {
+	width: 100%;
+}
 </style>

+ 5 - 1
plugins/modal.js

@@ -41,7 +41,11 @@ export default {
         cancelText: '取消',
         confirmText: '确定',
         success: function(res) {
-			resolve(res.confirm)
+					if (res.confirm) {
+						resolve(res.confirm)
+					} else {
+						reject(res.confirm)
+					}
         }
       })
     })