Otsuka-APP/pages/work/index.vue

278 lines
9.4 KiB
Vue
Raw Normal View History

2025-08-19 17:07:46 +08:00
<template>
<view class="work-container">
<!-- 轮播图 -->
<uni-swiper-dot :current="current" :info="data" class="uni-swiper-dot-box" field="content">
<swiper :current="swiperDotIndex" class="swiper-box" @change="changeSwiper">
<swiper-item v-for="(item, index) in data" :key="index">
<view class="swiper-item" @click="clickBannerItem(item)">
<image :draggable="false" :src="item.image" mode="aspectFill"/>
</view>
</swiper-item>
</swiper>
</uni-swiper-dot>
<!-- 宫格组件 -->
<uni-section title="订单管理" type="line"></uni-section>
<view class="grid-body">
2026-03-19 10:01:55 +08:00
<uni-grid :column="3" :showBorder="false" @change="changeGrid">
<uni-grid-item @click="gotoOrderManager" v-if="checkRole(['shangwu','shangyeUser','gylzy','gylfujinli','zhangmj','dazhongadmin'])">
<view class="grid-item-box">
<uni-icons size="30" type="person-filled"></uni-icons>
<text class="text">订单管理</text>
</view>
</uni-grid-item>
<uni-grid-item @click="gotoOrder" v-if="checkRole(['gylzy','scshoukuan','gddingdancangku','zjdingdancangku','scdindanshenhe','gylfujinli','dazhongadmin','gspcangku'])">
<view class="grid-item-box">
<uni-icons size="30" type="compose"></uni-icons>
<text class="text">订单审核</text>
</view>
</uni-grid-item>
<uni-grid-item @click="gotoFinalcial" v-if="checkRole(['gylzy','scshoukuan','gddingdancangku','gylfujinli','zjhexiaocaiwushenhe','DLMshenhe'
,'dazhongadmin','zjshouzhang','HOPdingdancangku'])">
<view class="grid-item-box">
2026-03-09 08:25:36 +08:00
<uni-icons size="30" type="list"></uni-icons>
<text class="text">财务审批</text>
</view>
</uni-grid-item>
2026-03-19 10:01:55 +08:00
<uni-grid-item @click="gotoBusiness" v-if="checkRole(['shangwu','gylzy','gylfujinli','zhangmj','dazhongadmin','daqu_zongbu'])">
<view class="grid-item-box">
2026-03-09 08:25:36 +08:00
<uni-icons size="30" type="staff"></uni-icons>
<text class="text">商务审批</text>
</view>
</uni-grid-item>
2026-03-19 10:01:55 +08:00
<uni-grid-item @click="gotoOrderSearchQuery" v-if="checkRole(['shangwu','daqu_dong','shangyeUser','gylzy','scshoukuan','gddingdancangku',
'zjdingdancangku','scdindanshenhe','gylfujinli','chaxun','baishufei','zhangmj','fuzongjian','zhangp','dazhongadmin','zjkaipiao','zjshouzhang','gspcangku',
'daqu_nan','daqu_xi','daqu_bei','daqu_zongbu'])">
<view class="grid-item-box">
<uni-icons size="30" type="person-filled"></uni-icons>
<text class="text">订单综合查询</text>
</view>
</uni-grid-item>
</uni-grid>
</view>
<uni-section title="开户管理" type="line" />
<view class="grid-body">
<uni-grid :column="4" :showBorder="false" @change="changeGrid">
2026-03-19 10:01:55 +08:00
<uni-grid-item @click="navigateTo('/pages/work/AccountPricePreliminaryRreview/index')" v-if="checkRole(['daqu_dong','gylzy','gylfujinli','fuzongjian',
'dazhongadmin','daqu_nan','daqu_xi','daqu_bei','daqu_zongbu'])">
<view class="grid-item-box">
<uni-icons size="30" type="person-filled"></uni-icons>
<text class="text">账期价格初审</text>
</view>
</uni-grid-item>
2026-03-19 10:01:55 +08:00
<uni-grid-item @click="navigateTo('/pages/work/AccountPriceFinallReview/index')" v-if="checkRole(['gylzy','gylfujinli','dazhongadmin'])">
<view class="grid-item-box">
<uni-icons size="30" type="person-filled"></uni-icons>
<text class="text">账期价格复审</text>
</view>
</uni-grid-item>
</uni-grid>
</view>
2026-02-13 13:51:37 +08:00
<!-- <uni-section title="系统设置" type="line"></uni-section>
<view class="grid-body">
<uni-grid :column="4" :showBorder="false" @change="changeGrid">
<uni-grid-item>
<view class="grid-item-box" @click="jiansheing">
<uni-icons size="30" type="staff-filled"></uni-icons>
<text class="text">角色管理</text>
</view>
</uni-grid-item>
<uni-grid-item>
<view class="grid-item-box" @click="jiansheing">
<uni-icons size="30" type="color"></uni-icons>
<text class="text">菜单管理</text>
</view>
</uni-grid-item>
<uni-grid-item>
<view class="grid-item-box" @click="jiansheing">
<uni-icons size="30" type="settings-filled"></uni-icons>
<text class="text">部门管理</text>
</view>
</uni-grid-item>
<uni-grid-item>
<view class="grid-item-box" @click="jiansheing">
<uni-icons size="30" type="heart-filled"></uni-icons>
<text class="text">岗位管理</text>
</view>
</uni-grid-item>
<uni-grid-item>
<view class="grid-item-box" @click="jiansheing">
<uni-icons size="30" type="bars"></uni-icons>
<text class="text">字典管理</text>
</view>
</uni-grid-item>
<uni-grid-item>
<view class="grid-item-box" @click="jiansheing">
<uni-icons size="30" type="gear-filled"></uni-icons>
<text class="text">参数设置</text>
</view>
</uni-grid-item>
<uni-grid-item>
<view class="grid-item-box">
<uni-icons size="30" type="chat-filled"></uni-icons>
<text class="text">通知公告</text>
</view>
</uni-grid-item>
<uni-grid-item>
<view class="grid-item-box">
<uni-icons size="30" type="wallet-filled"></uni-icons>
<text class="text">日志管理</text>
</view>
</uni-grid-item>
</uni-grid>
2026-02-13 13:51:37 +08:00
</view> -->
2025-08-19 17:07:46 +08:00
</view>
</template>
<script setup>
2026-03-19 10:01:55 +08:00
import { getCurrentInstance, onMounted, ref } from "vue"
import { navigateTo } from "../../utils/utils";
import { useUserStore } from '@/store'
import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
2025-08-19 17:07:46 +08:00
2026-03-19 10:01:55 +08:00
const { proxy } = getCurrentInstance()
const current = ref(0)
const swiperDotIndex = ref(0)
2026-02-09 16:37:28 +08:00
const data = ref([{image: '/static/images/banner/background.jpg'}])
2026-03-19 10:01:55 +08:00
const userStore = useUserStore()
// 检查角色
// function checkRole(roles) {
// const userRoles = userStore.roles || []
// return userRoles.some(role => roles.includes(role))
// }
// 检查权限
// function checkPermi(permissions) {
// const userPermissions = userStore.permissions || []
// return permissions.some(perm => userPermissions.includes(perm))
// }
onMounted(async () => {
try {
await userStore.getInfo()
} finally {
}
})
2025-08-19 17:07:46 +08:00
function clickBannerItem(item) {
2025-08-19 17:07:46 +08:00
console.info(item)
}
2025-08-19 17:07:46 +08:00
function changeSwiper(e) {
2025-08-19 17:07:46 +08:00
current.value = e.detail.current
}
2025-08-19 17:07:46 +08:00
function changeGrid(e) {
2025-08-20 13:59:17 +08:00
// proxy.$modal.showToast('模块建设中~')
}
function jiansheing(e) {
2025-08-25 09:19:35 +08:00
proxy.$modal.showToast('模块建设中~')
}
const gotoBusiness = () => {
uni.navigateTo({
url: '/pages/work/BusinessApproval/index'
})
}
const gotoFinalcial = () => {
uni.navigateTo({
url: '/pages/work/FinancialApproval/index'
})
}
const gotoOrder = () => {
uni.navigateTo({
url: '/pages/work/OrderApproval/index'
})
}
const gotoOrderManager = () => {
uni.navigateTo({
url: '/pages/work/OrderManager/index'
})
}
const gotoOrderSearchQuery = () => {
uni.navigateTo({
url: '/pages/work/OrderSearchQuery/index'
})
}
2025-08-19 17:07:46 +08:00
</script>
<style lang="scss" scoped>
/* #ifndef APP-NVUE */
page {
2025-08-19 17:07:46 +08:00
display: flex;
flex-direction: column;
box-sizing: border-box;
background-color: #fff;
min-height: 100%;
height: auto;
}
2025-08-19 17:07:46 +08:00
view {
2025-08-19 17:07:46 +08:00
font-size: 14px;
line-height: inherit;
}
/* #endif */
2025-08-19 17:07:46 +08:00
.text {
2025-08-19 17:07:46 +08:00
text-align: center;
font-size: 26rpx;
margin-top: 10rpx;
}
2025-08-19 17:07:46 +08:00
.grid-item-box {
2025-08-19 17:07:46 +08:00
flex: 1;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: column;
align-items: center;
justify-content: center;
padding: 15px 0;
}
2025-08-19 17:07:46 +08:00
.uni-margin-wrap {
2025-08-19 17:07:46 +08:00
width: 690rpx;
width: 100%;;
}
2025-08-19 17:07:46 +08:00
.swiper {
2025-08-19 17:07:46 +08:00
height: 300rpx;
}
2025-08-19 17:07:46 +08:00
.swiper-box {
2025-08-19 17:07:46 +08:00
height: 150px;
}
2025-08-19 17:07:46 +08:00
.swiper-item {
2025-08-19 17:07:46 +08:00
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: column;
justify-content: center;
align-items: center;
color: #fff;
height: 300rpx;
line-height: 300rpx;
}
2025-08-19 17:07:46 +08:00
@media screen and (min-width: 500px) {
2025-08-19 17:07:46 +08:00
.uni-swiper-dot-box {
width: 400px;
/* #ifndef APP-NVUE */
margin: 0 auto;
/* #endif */
margin-top: 8px;
2025-08-19 17:07:46 +08:00
}
.image {
width: 100%;
2025-08-19 17:07:46 +08:00
}
}
2025-08-19 17:07:46 +08:00
</style>