Browse Source

bug修改,tab逻辑修改

asd26269546 1 year ago
parent
commit
6340796a42

+ 8 - 0
src/assets/css/index.scss

@@ -272,4 +272,12 @@ li {
     right: 0;
 }
 
+.main>.van-search{
+    position: fixed!important;
+    top: 46px;
+    left: 0;
+    right: 0;
+    z-index: 3!important;
+}
+
 

+ 1 - 1
src/components/common-list.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="common-list">
-    <ul>
+    <ul style="border-top:52px solid #f2f2f2">
       <li v-for="i in listData" :key="i.id">
         <div class="left-box" style="margin-right: 20px" v-if="isCheckbox">
           <van-checkbox

+ 8 - 1
src/lang/cn.js

@@ -905,12 +905,19 @@ export const lang = {
 		areYouSureYouWantToDeleteThisClassification: '是否确认删除该分类',
 	},
 	home: {
-		//修改密码,新密码,请输入密码,新密码不能为空,我的反馈,反馈,全部,待回复,已回复
+		//修改密码,新密码,请输入密码,新密码不能为空,我的反馈,反馈,全部,待回复,已回复,确认密码,旧密码,旧密码不能为空
 		modifyPassword: '修改密码',
 		newPassword: '新密码',
 		pleaseEnterPassword: '请输入密码',
 		newPasswordCanNotBeEmpty: '新密码不能为空',
 		myFeedback: '我的反馈',
+		feedback: '反馈',
+		all: '全部',
+		pendingReply: '待回复',
+		replied: '已回复',
+		confirmPassword: '确认密码',
+		oldPassword: '旧密码',
+		oldPasswordCanNotBeEmpty: '旧密码不能为空',
 	},
 	userCenter: {
 		//客户画像,修改密码,我的反馈,退出登录,您确定退出本次登录么?,退出成功,退出失败,消息中心,我的邮箱,工作台,待审批,联系我们

+ 4 - 1
src/store/index.js

@@ -1,3 +1,6 @@
 import { createPinia } from "pinia";
 const store = createPinia();
-export default store;
+export default store;
+
+
+

+ 26 - 4
src/views/home/changePassword.vue

@@ -10,13 +10,33 @@
 		<van-form @submit="onSubmit" label-align="top" style="margin-top: 20px">
 			<van-cell-group inset>
 				<van-field
-					v-model="formData.password"
+					v-model="formData.oldPassword"
+					:label="$t('home.oldPassword')"
+					:placeholder="$t('home.pleaseEnterPassword')"
+					:rules="[{ required: true, message: $t('home.oldPasswordCanNotBeEmpty') }]"
+					required
+				/>
+			</van-cell-group>
+			<van-cell-group inset>
+				<van-field
+					v-model="formData.newPassword"
 					:label="$t('home.newPassword')"
 					:placeholder="$t('home.pleaseEnterPassword')"
 					:rules="[{ required: true, message: $t('home.newPasswordCanNotBeEmpty') }]"
 					required
 				/>
 			</van-cell-group>
+			<van-cell-group inset>
+				<van-field
+					v-model="formData.confirmPassword"
+					:label="$t('home.confirmPassword')"
+					:placeholder="$t('home.pleaseEnterPassword')"
+					:rules="[{ required: true, message: $t('home.confirmPassword') }]"
+					required
+				/>
+			</van-cell-group>
+
+			
 			<div style="margin: 16px">
 				<van-button round block type="primary" native-type="submit">
 					{{$t('common.submit')}}
@@ -33,16 +53,18 @@ import { useRoute } from 'vue-router'
 import { getUserInfo } from '@/utils/auth'
 const proxy = getCurrentInstance().proxy
 const formData = ref({
-	password: '',
+	oldPassword: '',
+	newPassword: '',
+	confirmPassword: '',
 	userId: getUserInfo().userId,
 })
 const onClickLeft = () => history.back()
 
 const onSubmit = () => {
-	proxy.post('/tenantUser/resetPwd' , formData.value,'PUT').then(
+	proxy.post('/system/user/profile/updatePwd?oldPassword=' + formData.value.oldPassword + '&newPassword=' +  formData.value.newPassword, {},'PUT').then(
 		(res) => {
 			setTimeout(() => {
-				showSuccessToast($t('common.modifySuccess'))
+				showSuccessToast(proxy.t('common.modifySuccess'))
 				history.back()
 			}, 500)
 		},

+ 1 - 1
src/views/home/coming.vue

@@ -11,7 +11,7 @@
 <script setup>
 import { ref, getCurrentInstance } from "vue";
 const proxy = getCurrentInstance().proxy;
-const onClickLeft = () => proxy.$router.push("/main/working");
+const onClickLeft = () => proxy.$router.back();
 </script>
 <style>
 

+ 1 - 1
src/views/home/feedback.vue

@@ -90,7 +90,7 @@ const onLoad = () => {
     getList()
 }
 
-const onClickLeft = () => proxy.$router.push('/main/working')
+const onClickLeft = () => proxy.$router.back()
 
 const onClickRight = () => {
 	proxy.$router.push('/main/feedbackSubmit')

+ 12 - 6
src/views/home/index.vue

@@ -23,7 +23,7 @@
 					</div>
 					<div class="text">{{$t('userCenter.messageCenter')}}</div>
 				</div>
-				<div class="fun-item" @click="toRouter('email')">
+				<div class="fun-item" @click="toRouter('email','message')">
 					<div class="icon-box">
 						<img src="../../assets/images/iconm_dianzyx.png" alt="">
 					</div>
@@ -35,7 +35,7 @@
 					</div>
 					<div class="text">{{$t('userCenter.workbench')}}</div>
 				</div>
-				<div class="fun-item" @click="toRouter('processApproval?status=1')">
+				<div class="fun-item" @click="toRouter('processApproval?status=1','working')">
 					<div class="icon-box">
 						<img src="../../assets/images/iconm_lissp.png" alt="">
 					</div>
@@ -54,7 +54,7 @@
 					<van-icon name="arrow" size="16" />
 				</div>
 			</li>
-			<li @click="toRouter('feedback')">
+			<li @click="toRouter('feedback','home')">
 				<div class="icon-box">
 					<i class="iconfont icon-iconm_yijianfk"></i>
 				</div>
@@ -63,7 +63,7 @@
 					<van-icon name="arrow" size="16" />
 				</div>
 			</li>
-			<li @click="toRouter('coming')">
+			<li @click="toRouter('coming','home')">
 				<div class="icon-box">
 					<i class="iconfont icon-icomx_message"></i>
 				</div>
@@ -72,7 +72,7 @@
 					<van-icon name="arrow" size="16" />
 				</div>
 			</li>
-			<li @click="toRouter('changePassword')">
+			<li @click="toRouter('changePassword','home')">
 				<div class="icon-box">
 					<i class="iconfont icon-icomx_bianj"></i>
 				</div>
@@ -94,6 +94,7 @@ import { ref, getCurrentInstance, onMounted } from 'vue'
 import { showSuccessToast, showFailToast,showConfirmDialog } from 'vant'
 import { useRoute } from 'vue-router'
 import { getUserInfo } from '@/utils/auth'
+import tabTypeStore from '@/store/modules/tabType'
 const onClickLeft = () => history.back()
 const proxy = getCurrentInstance().proxy
 const userInfo = ref(getUserInfo())
@@ -102,7 +103,12 @@ console.log(userInfo)
 const toMessageList = () => {
 	proxy.$router.push('/main/messageList')
 }
-const toRouter = (url) => {
+const toRouter = (url,tabType) => {
+	if(tabType) {
+		tabTypeStore().setTabType(tabType)
+	}else{
+		tabTypeStore().setTabType(url)
+	}
     proxy.$router.push('/main/' + url)
 }
 const switchLanguage = () => {

+ 25 - 6
src/views/main.vue

@@ -10,14 +10,14 @@
 		</router-view>
 		
 	</div>
-	<van-tabbar v-model="tabType" v-if="routerName != '/main/processDtl'" :style="isIos() ? 'height:65px' : ''">
-		<van-tabbar-item to="/main/message" :badge="msgCount" :style="isIos() ? 'padding-bottom:15px' : ''">
+	<van-tabbar v-model="tabType" v-if="routerName != '/main/processDtl'"  @change="onChange" :style="isIos() ? 'height:65px' : ''">
+		<van-tabbar-item to="/main/message" name="message" :badge="msgCount" :style="isIos() ? 'padding-bottom:15px' : ''">
 			{{$t('common.message')}}
 			<template #icon="props">
 				<i class="icon iconfont icon-btn_shengc_gray1 footer-icon" :class="props.active ? 'footer-icon-active' : ''"></i>
 			</template>
 		</van-tabbar-item>
-		<van-tabbar-item to="/main/working" :style="isIos() ? 'padding-bottom:15px' : ''">
+		<van-tabbar-item to="/main/working"  name="working" :style="isIos() ? 'padding-bottom:15px' : ''">
 			{{$t('common.workbench')}}
 			<template #icon="props">
 				<i class="icon iconfont icon-btn_gongz footer-icon" :class="props.active ? 'footer-icon-active' : ''"></i>
@@ -26,12 +26,13 @@
 		<van-tabbar-item
 			:style="isIos() ? 'padding-bottom:15px' : ''"
 			:to="tenantId == 'smt' ? '/main/xiamenList' : '/main/equipment'"
+			name="equipment"
 			>{{$t('common.things')}}
 			<template #icon="props">
 				<i class="icon iconfont icon-btn_wulw footer-icon" :class="props.active ? 'footer-icon-active' : ''"></i>
 			</template>
 		</van-tabbar-item>
-		<van-tabbar-item icon="setting-o" to="/main/home" :style="isIos() ? 'padding-bottom:15px' : ''">
+		<van-tabbar-item icon="setting-o" to="/main/home" :style="isIos() ? 'padding-bottom:15px' : ''" name="home">
 			{{$t('common.mine')}}
 			<template #icon="props">
 				<i class="icon iconfont icon-btn_mine footer-icon" :class="props.active ? 'footer-icon-active' : ''"></i>
@@ -40,7 +41,7 @@
 	</van-tabbar>
 </template>
 <script setup>
-import { ref, getCurrentInstance, watch } from 'vue'
+import { ref, getCurrentInstance, watch,computed } from 'vue'
 import { getUserInfo,getToken } from '@/utils/auth'
 import { useRouter } from 'vue-router'
 import { lang } from '@/lang/cn'
@@ -50,9 +51,27 @@ import 'vant/lib/index.css'
 import axios from 'axios'
 import { uploadDdRightBtn } from '@/utils/ddAdapter'
 import { showDialog,showNotify } from 'vant'
+import tabTypeStore from '@/store/modules/tabType'
+
+const onChange = (val) => {
+	tabTypeStore().setTabType(val)
+
+	if (val == 'message') {
+		router.push('/main/message')
+	}
+	if (val == 'working') {
+		router.push('/main/working')
+	}
+	if (val == 'equipment') {
+		router.push('/main/equipment')
+	}
+	if (val == 'home') {
+		router.push('/main/home')
+	}
+}
 const tenantId = getUserInfo().tenantId
 const proxy = getCurrentInstance().proxy
-const tabType = ref('home')
+const tabType = computed(() => tabTypeStore().tabType);
 const msgCount = ref(0)
 const socketInit = () => {
 	window.ws = new WebSocket(