工作台和我的页面样式优化

This commit is contained in:
WindowBird 2025-11-27 11:05:44 +08:00
parent 8f202e50a1
commit 413a2dfca5
2 changed files with 65 additions and 65 deletions

View File

@ -96,8 +96,8 @@ const goToAddTask = () => {
<style lang="scss" scoped>
.workbench-scroll {
width: 100%;
height: 100vh;
background: #f5f5f5;
//height: 100vh;
//background: #f5f5f5;
}
.workbench-card {

View File

@ -4,11 +4,11 @@
<view class="profile-card" @click="goToProfile">
<view class="profile-header">
<view class="avatar-wrapper">
<image
v-if="userInfo?.user?.avatar"
class="avatar-img"
:src="userInfo.user.avatar"
mode="aspectFill"
<image
v-if="userInfo?.user?.avatar"
:src="userInfo.user.avatar"
class="avatar-img"
mode="aspectFill"
/>
<view v-else class="avatar-placeholder">
<text class="avatar-text">{{ getAvatarText(userInfo?.user?.nickName) }}</text>
@ -17,37 +17,37 @@
<view class="profile-info">
<view class="name-row">
<text class="user-name">{{ userInfo?.user?.nickName || '--' }}</text>
<!-- <text v-if="userInfo?.roles?.[0]" class="role-badge">{{ userInfo.roles[0] }}</text>-->
<!-- <text v-if="userInfo?.roles?.[0]" class="role-badge">{{ userInfo.roles[0] }}</text>-->
</view>
<text class="dept-name">{{ userInfo?.user?.deptName || '--' }}</text>
</view>
<view class="arrow-icon"></view>
</view>
<!-- <view class="profile-stats">-->
<!-- <view class="stat-item">-->
<!-- <text class="stat-value">{{ userInfo?.user?.taskCount || 0 }}</text>-->
<!-- <text class="stat-label">任务数</text>-->
<!-- </view>-->
<!-- <view class="stat-divider"></view>-->
<!-- <view class="stat-item">-->
<!-- <text class="stat-value">{{ userInfo?.user?.projectCount || 0 }}</text>-->
<!-- <text class="stat-label">项目数</text>-->
<!-- </view>-->
<!-- <view class="stat-divider"></view>-->
<!-- <view class="stat-item">-->
<!-- <text class="stat-value">{{ userInfo?.user?.taskNum || 0 }}</text>-->
<!-- <text class="stat-label">任务编号</text>-->
<!-- </view>-->
<!-- </view>-->
<!-- <view class="profile-stats">-->
<!-- <view class="stat-item">-->
<!-- <text class="stat-value">{{ userInfo?.user?.taskCount || 0 }}</text>-->
<!-- <text class="stat-label">任务数</text>-->
<!-- </view>-->
<!-- <view class="stat-divider"></view>-->
<!-- <view class="stat-item">-->
<!-- <text class="stat-value">{{ userInfo?.user?.projectCount || 0 }}</text>-->
<!-- <text class="stat-label">项目数</text>-->
<!-- </view>-->
<!-- <view class="stat-divider"></view>-->
<!-- <view class="stat-item">-->
<!-- <text class="stat-value">{{ userInfo?.user?.taskNum || 0 }}</text>-->
<!-- <text class="stat-label">任务编号</text>-->
<!-- </view>-->
<!-- </view>-->
</view>
<view
class="card settings-card"
v-if="showPrivateSwitch"
<view
v-if="showPrivateSwitch"
class="card settings-card"
>
<view class="setting-row">
<text class="setting-label">私有视角</text>
<uv-switch v-model="filterSelf" />
<uv-switch v-model="filterSelf"/>
</view>
<text class="setting-desc">开启后仅展示分配给我的客户和任务数据</text>
</view>
@ -57,43 +57,43 @@
<view class="version-header">
<text class="version-title">版本管理</text>
</view>
<view class="version-info">
<view class="version-item">
<text class="version-label">当前版本</text>
<text class="version-value">{{ currentVersion }}</text>
</view>
<view class="version-item" v-if="latestVersion">
<view v-if="latestVersion" class="version-item">
<text class="version-label">最新版本</text>
<text class="version-value" :class="{ 'new-version': hasUpdate }">
<text :class="{ 'new-version': hasUpdate }" class="version-value">
{{ latestVersion }}
<text v-if="hasUpdate" class="update-badge">有新版本</text>
</text>
</view>
<view class="version-item" v-else>
<view v-else class="version-item">
<text class="version-label">最新版本</text>
<text class="version-value">未检查</text>
</view>
</view>
<view class="version-actions">
<uv-button
type="primary"
:plain="true"
size="small"
@click="checkUpdate"
:loading="checking"
<uv-button
:loading="checking"
:plain="true"
size="small"
type="primary"
@click="checkUpdate"
>
{{ checking ? '检查中...' : '检查更新' }}
</uv-button>
<uv-button
v-if="hasUpdate && updateInfo"
type="error"
size="small"
@click="handleUpdate"
style="margin-left: 20rpx;"
<uv-button
v-if="hasUpdate && updateInfo"
size="small"
style="margin-left: 20rpx;"
type="error"
@click="handleUpdate"
>
立即更新
</uv-button>
@ -102,7 +102,7 @@
<view class="card">
<uv-button type="error" :plain="true" @click="onLogout" :loading="loading">
<uv-button :loading="loading" :plain="true" type="error" @click="onLogout">
退出登录
</uv-button>
</view>
@ -110,11 +110,11 @@
</template>
<script setup>
import { ref, computed, onMounted } from 'vue'
import { storeToRefs } from 'pinia'
import { useUserStore } from '@/store/user'
import { logout } from '@/api/user'
import { getCurrentVersion, checkForUpdate, showUpdateDialog } from '@/utils/update'
import {computed, onMounted, ref} from 'vue'
import {storeToRefs} from 'pinia'
import {useUserStore} from '@/store/user'
import {logout} from '@/api/user'
import {checkForUpdate, getCurrentVersion, showUpdateDialog} from '@/utils/update'
const loading = ref(false)
const checking = ref(false)
@ -124,13 +124,13 @@ const updateInfo = ref(null)
const hasUpdate = ref(false) // 使 API hasUpdate
const userStore = useUserStore()
const { privateView, userInfo } = storeToRefs(userStore)
const {privateView, userInfo} = storeToRefs(userStore)
const filterSelf = computed({
get: () => privateView.value,
set: (val) => userStore.setPrivateView(val)
})
const showPrivateSwitch = computed(() =>
userInfo.value?.roles?.some(r => ['admin', 'sys_admin'].includes(r))
userInfo.value?.roles?.some(r => ['admin', 'sys_admin'].includes(r))
)
//
@ -143,18 +143,18 @@ onMounted(() => {
const checkUpdate = async () => {
if (checking.value) return
checking.value = true
try {
const result = await checkForUpdate(true) //
console.log('检查更新结果:', result)
if (result && result.hasUpdate) {
// 使 API
latestVersion.value = result.versionName || result.versionNumber || result.version || '未知版本'
updateInfo.value = result
hasUpdate.value = true //
// packageUrldownloadUrldownload_url
if (!result.downloadUrl && !result.packageUrl && !result.download_url) {
console.warn('更新信息缺少下载地址:', result)
@ -202,10 +202,10 @@ const handleUpdate = () => {
})
return
}
// packageUrldownloadUrl download_url
const downloadUrl = updateInfo.value.downloadUrl || updateInfo.value.packageUrl || updateInfo.value.download_url
if (!downloadUrl) {
uni.showToast({
title: '下载地址无效',
@ -213,13 +213,13 @@ const handleUpdate = () => {
})
return
}
// updateInfo downloadUrl
const updateData = {
...updateInfo.value,
downloadUrl: downloadUrl
}
//
showUpdateDialog(updateData)
}
@ -248,7 +248,7 @@ const onLogout = async () => {
userStore.logout()
uni.$uv.toast('已退出登录')
setTimeout(() => {
uni.reLaunch({ url: '/pages/login/index' })
uni.reLaunch({url: '/pages/login/index'})
}, 200)
loading.value = false
}
@ -258,8 +258,8 @@ const onLogout = async () => {
<style lang="scss" scoped>
.mine-page {
padding: 24rpx;
background-color: #f6f7fb;
min-height: 100vh;
//background-color: #f6f7fb;
//min-height: 100vh;
box-sizing: border-box;
}