Files
demo/index.vue
2025-07-29 20:59:51 +08:00

311 lines
6.3 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="container">
<view class="menu_container">
<view class="menu">
<!-- <view class="menu_o menu_one" @click="to_dispatch">
<i class="iconfont icon-chaobiaozhipai"></i>派单
</view> -->
<view class="menu_o menu_two" @click="to_repor">
<i class="iconfont icon-shangbao"></i>报单
</view>
<view class="menu_o menu_three" @click="to_examine">
<i class="iconfont icon-shenhe"></i>审核
</view>
<view class="menu_o menu_four" @click="to_statistics">
<i class="iconfont icon-shuzhuangtu"></i>统计
</view>
</view>
<view class="list_header">
最近工单
</view>
</view>
<view class="list_content">
<scroll-view scroll-y="true" class="scroll-view-height">
<view class="list_item" v-for="item in tableData" @click="go_detail(item.id)">
<view class="left">
<view class="title">
班组{{item.bz}}
</view>
<view class="time">
工序{{item.gx}}
</view>
<view class="time">
款式{{item.ks}}
</view>
<view class="user">
日期{{item.date}}
</view>
<view class="user">
数量{{item.number}}
</view>
</view>
<view class="right">
<uni-tag :text="item.status_text" :type="item.class" />
</view>
</view>
</scroll-view>
</view>
</view>
</template>
<script>
import config from "@/config.js";
export default {
data() {
return {
tableData: [],
is_admin:'',
keeplogin:0,
}
},
onLoad(){
let routes = getCurrentPages(); // 获取当前打开过的页面路由数组
let curRoute = routes[routes.length - 1].route //获取当前页面路由
let curParam = routes[routes.length - 1].options; //获取路由参数
var that=this,serverUrl = config.serverUrl;
that.keeplogin = uni.getStorageSync('keeplogin');
uni.getStorage({
key: 'userinfo',
success(res) {
that.uid=res.data.id
that.token=res.data.token
uni.request({
url:serverUrl+'/board/index',
method:"POST",
data: {
uid: that.uid,
},
header: {
'custom-header': 'application/x-www-form-urlencoded' //自定义请求头信息
},
success:(res)=> {
if(res.data.code==1){
var list=res.data.data.list;//最近工单
console.log(list);
that.tableData=list;
that.is_admin=res.data.data.is_admin;
}else{
uni.showToast({
title:res.data.msg,
icon:'none',
duration:1000
})
if(res.data.data=='user_hidden'){
setTimeout(() => {
uni.removeStorageSync('userinfo');
uni.removeStorageSync('openid');
uni.removeStorageSync('keeplogin');
uni.redirectTo({ url: '/pages/login/login' })
}, 0)
}
}
}
})
},
fail() {
uni.showToast({
title:'请先登录',
icon:'none',
duration:1000
})
setTimeout(()=>{
uni.redirectTo({
url: '/pages/login/login'
})
},1)
}
});
},
methods: {
to_repor(){
uni.navigateTo({
url:'/pages/repor/repor'
})
},
to_examine(){
if(this.is_admin==1){
uni.navigateTo({
url:'/pages/examine/examine'
})
}else{
uni.showToast({
title:'您没有权限',
icon:'none',
duration:3000
})
}
},
to_dispatch(){
if(this.is_admin==1){
uni.navigateTo({
url:'/pages/dispatch/dispatch'
})
}else{
uni.showToast({
title:'您没有权限',
icon:'none',
duration:3000
})
}
},
to_statistics(){
uni.switchTab({
url:'/pages/statistics/statistics'
})
},
go_detail(id){
console.log(id);
uni.navigateTo({
url:'/pages/detail/detail?id='+id
})
}
}
}
</script>
<style scoped lang="scss">
.container {
font-size: 14px;
line-height: 24px;
display: flex;
flex-direction: column;
}
.menu_container{
position: fixed;
left: 0;
right: 0;
z-index: 9;
}
.menu {
background-color: #fff;
padding: 30rpx;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
.iconfont {
margin-right: 10rpx;
font-size: 40rpx;
}
.menu_o {
height: 120rpx;
margin: 0 20rpx 20rpx 0;
width: calc((100% - 20rpx) / 2);
min-width: calc((100% - 20rpx) / 2);
max-width: calc((100% - 20rpx) / 2);
background-color: aquamarine;
&:nth-child(2n + 2) {
margin-right: 0;
}
text-align: center;
line-height: 120rpx;
font-size: 35rpx;
color: #fff;
border-radius: 15rpx;
}
.menu_one {
background-image: linear-gradient(#69C0FF, #259FF8);
}
.menu_two {
background-image: linear-gradient(#95DE64, #53BD0C);
}
.menu_three {
background-image: linear-gradient(#187AF3, #0050B3);
}
.menu_four {
background-image: linear-gradient(#12C9C9, #12A2A2);
}
}
.list_header {
padding-left: 30rpx;
padding-top: 20rpx;
margin-bottom: 20rpx;
background-color: #F5F5F5;
}
.list_content {
background-color: #F5F5F5;
display: flex;
flex-direction: column;
padding: 0 20rpx 20rpx 20rpx;
margin-top: 430rpx;
.list_item {
&:not(:first-child) {
margin-top: 30rpx;
}
padding: 30rpx;
background-color: #FFF;
border-radius: 8rpx;
display: flex;
flex-direction: row;
justify-content: space-between;
.operate {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-bottom: 10rpx;
}
.right{
display: flex;
flex-direction: column;
justify-content: space-between;
align-items:flex-end
}
.status {
width: 130rpx;
height: 50rpx;
text-align: center;
line-height: 50rpx;
color: #fff;
border-radius: 30rpx;
}
.report{
background-color: #9BBDF7;
color: #FFF;
}
.progress {
background-color: #F3A73F;
color: #FFF;
}
.examine {
background-color: #2979FF;
color: #FFF;
}
.examined {
background-color: #18BC37;
color: #FFF;
}
.cancel {
background-color: #FD2200;
color: #FFF;
}
}
}
.scroll-view-height {
/* 页面高度减去包含状态栏、其他组件的高度 */
height: calc(100vh - var(--status-bar-height) - 630rpx);
}
</style>