提交项目

This commit is contained in:
‘tuzi0421 2024-01-15 14:02:04 +08:00
commit ea0b969b32
35 changed files with 1166 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
unpackage/
uni_modules/

16
.hbuilderx/launch.json Normal file
View File

@ -0,0 +1,16 @@
{ // launch.json configurations app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
// launchtypelocalremote, localremote
"version": "0.0",
"configurations": [{
"default" :
{
"launchtype" : "local"
},
"mp-weixin" :
{
"launchtype" : "local"
},
"type" : "uniCloud"
}
]
}

44
App.vue Normal file
View File

@ -0,0 +1,44 @@
<script>
export default {
onLaunch: function() {
console.warn('当前组件仅支持 uni_modules 目录结构 ,请升级 HBuilderX 到 3.1.0 版本以上!')
console.log('App Launch')
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>
<style lang="scss">
/*每个页面公共css */
@import '@/uni_modules/uni-scss/index.scss';
/* #ifndef APP-NVUE */
@import '@/static/customicons.css';
//
page {
background-color: #060B26;
color: #fff;
}
/* #endif */
.example-info {
font-size: 14px;
color: #333;
padding: 10px;
}
.pagepaddings{padding: 14px;}
//
.contentboxsty{border-radius: 8px;background: #1C2755;}
//
.noborbot{border-bottom:none !important}
.t-icon{background-repeat: no-repeat;}
.icon22{width: 22px;height: 22px;}
.paddrigth5{padding-right: 5px;}
//
.font12{font-size: $uni-font-size-sm;}
.font13{font-size:13px;}
.font14{font-size: $uni-font-size-base;}
</style>

20
index.html Normal file
View File

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<script>
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title></title>
<!--preload-links-->
<!--app-context-->
</head>
<body>
<div id="app"><!--app-html--></div>
<script type="module" src="/main.js"></script>
</body>
</html>

30
main.js Normal file
View File

@ -0,0 +1,30 @@
import "./static/iconfont/iconfont.css"
import "./static/iconfont/iconfont-weapp/iconfont-weapp-icon.css"
// #ifndef VUE3
import Vue from 'vue'
import App from './App'
import svg from './static/iconfont/svg.js'
Vue.use(svg);
Vue.config.productionTip = false;
App.mpType = 'app';
const app = new Vue({
...App
})
app.$mount()
// #endif
// #ifdef VUE3
import { createSSRApp } from 'vue'
import App from './App.vue'
export function createApp() {
const app = createSSRApp(App)
return {
app
}
}
// #endif

60
manifest.json Normal file
View File

@ -0,0 +1,60 @@
{
"name" : "mes-mobile01",
"appid" : "__UNI__41DB0F2",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",
"transformPx" : false,
"app-plus" : {
/* 5+App */
"usingComponents" : true,
"nvueCompiler" : "uni-app",
"nvueStyleCompiler" : "uni-app",
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"autoclose" : true,
"delay" : 0
},
"modules" : {},
/* */
"distribute" : {
/* */
"android" : {
/* android */
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
"ios" : {},
/* ios */
"sdkConfigs" : {}
}
},
/* SDK */
"quickapp" : {},
/* */
"mp-weixin" : {
/* */
"appid" : "",
"setting" : {
"urlCheck" : false
},
"usingComponents" : true
},
"vueVersion" : "3"
}

78
pages.json Normal file
View File

@ -0,0 +1,78 @@
{
"pages": [{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "德木自动化系统"
}
},{
"path": "pages/person/person",
"style": {
"navigationBarTitleText": "个人中心"
}
},{
"path": "pages/index/message",
"style": {
"navigationBarTitleText": "消息管理"
}
},
{
"path" : "pages/person/accountCenter",
"style" :
{
"navigationBarTitleText" : "账户中心",
"enablePullDownRefresh" : false
}
},
{
"path" : "pages/person/changePhone",
"style" :
{
"navigationBarTitleText" : "更改手机号",
"enablePullDownRefresh" : false
}
},
{
"path" : "pages/login/login",
"style" :
{
"navigationBarTitleText" : "登录",
"enablePullDownRefresh" : false
}
}],
"globalStyle": {
"navigationBarTextStyle": "white",
"navigationBarTitleText": "德木自动化系统",
"navigationBarBackgroundColor": "#060B26",
"app-plus": {
"background": "#efeff4"
}
},
"condition" : { //
"current": 0, //(list )
"list": [
{
"name": "登录", //
"path": "pages/login/login", //
"query": "" //onLoad
}
]
},
"tabBar":{
"color": "#7A7E83",
"selectedColor": "#3cc51f",
"borderStyle": "black",
"backgroundColor": "#ffffff",
"height": "50px",
"fontSize": "10px",
"iconWidth": "24px",
"spacing": "3px",
"list":[{
"pagePath":"pages/index/index",
"text":"首页"
},{
"pagePath":"pages/login/login",
"text":"我的"
}
]
}
}

129
pages/index/index.vue Normal file
View File

@ -0,0 +1,129 @@
<template>
<view class="home">
<view class="home_head">
<view class="iconfont icon-chaojiguanliyuan accounticon"></view>
<view class="name">Ykxiao 超级管理员</view>
<view class="iconfont icon-xiaoxitongzhi notifyicon" @click="toMessage()"></view>
<view class="iconfont icon-shezhi setupicon"></view>
</view>
<view class="home_content">
<view class="content_box">
<view class="content_title">工单管理</view>
<view class="content_data">
<view class="content_module">
<view class="t-icon t-icon-shengchangongdan contenticon"></view>
<view class="contentname">生产工单</view>
</view>
<view class="content_module">
<view class="t-icon t-icon-gongdanjindu contenticon"></view>
<view class="contentname">工单进度</view>
</view>
<view class="content_module">
<view class="t-icon t-icon-gongdanchucaishuai contenticon"></view>
<view class="contentname">工单出材率</view>
</view>
<view class="content_module">
<view class="t-icon t-icon-shengchanbaobiao contenticon"></view>
<view class="contentname">生产报表</view>
</view>
</view>
</view>
<view class="content_box">
<view class="content_title">生产排程</view>
<view class="content_data">
<view class="content_module">
<view class="t-icon t-icon-paichengguanli contenticon"></view>
<view class="contentname">排程管理</view>
</view>
<view class="content_module">
<view class="t-icon t-icon-paichengshichang contenticon"></view>
<view class="contentname">排程时长</view>
</view>
</view>
</view>
<view class="content_box">
<view class="content_title">设备管理</view>
<view class="content_data">
<view class="content_module">
<view class="t-icon t-icon-shebeiguanli contenticon"></view>
<view class="contentname">设备设置</view>
</view>
<view class="content_module">
<view class="t-icon t-icon-shebeizhuangtai contenticon"></view>
<view class="contentname">设备状态</view>
</view>
<view class="content_module">
<view class="t-icon t-icon-shebeibaoxiu contenticon"></view>
<view class="contentname">设备保修</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
//
toMessage(){
uni.navigateTo({
url: '/pages/index/message'
})
},
}
}
</script>
<style>
.icon {
width: 80upx;
height: 80upx;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
.home {
height: 100vh;
/* background-color: #060B26; */
padding: 0 10px;
font-size: 14px;
}
.home_head{height: 40px;display: flex;position: relative;align-items: center;padding-bottom: 5px;}
.home_head .name{flex:1;}
.accounticon{
/* width: 20px;
height: 20px; */
margin-right: 5px;
color: #fff;
font-size: 20px;
}
.notifyicon{font-size: 20px;padding-right: 20px;}
.setupicon{font-size: 20px;}
.home_content{
}
.content_title{
line-height: 25px;
font-size: 16px;
}
.content_data{padding: 10px 0;display: flex;position: relative;align-items: center;text-align: center;height: 98px;}
.content_module{
width: 25%;
margin: 10px 1%;
height: 98px;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
background-color: #009688;
border-radius: 8px;
}
.contenticon{font-size: 24px;width: 32px;height: 32px;background-repeat: no-repeat;}
.contentname{padding-top: 2px;font-size: 12px;}
</style>

54
pages/index/message.vue Normal file
View File

@ -0,0 +1,54 @@
<template>
<view class="message_page">
<view class="message_content">
<view class="message_data">
<view class="message_box">
<view class="message_type">类型</view>
<view class="messages_block">消息</view>
</view>
<view class="message_box">
<view class="message_type">工单审批</view>
<view class="messages_block">工单号</view>
</view>
<view class="message_box">
<view class="message_type">设备停机</view>
<view class="messages_block">设备名称</view>
</view>
<view class="message_box">
<view class="message_type">出材率预警</view>
<view class="messages_block">工单号</view>
</view>
<view class="message_box noborbot">
<view class="message_type">设备保修</view>
<view class="messages_block">设备名称</view>
</view>
<view class="con_but">
<view class="but_rat"><view class="t-icon t-icon-shenpizhida icon22"></view>审批</view>
<view class="but_del"><view class="t-icon t-icon-shezhi icon22 paddrigth5"></view>删除</view>
</view>
</view>
</view>
<view class="message_button">
</view>
</view>
</template>
<script>
</script>
<style>
.message_page{height: 100vh;color: #fff;background-color: #060B26;}
.message_content{padding: 14px;}
.message_data{background: #1C2755;padding: 0 12px;border-radius: 8px;font-size: 13px;}
.message_box{display: flex;line-height: 44px;border-bottom: 1px solid #2D3A6F;}
.message_type{width: 25%;}
.con_but{ display: flow-root;padding-bottom: 15px;}
.but_del{ float: right;display: flex;align-items: center;justify-content: center;width: 76px;
height: 33px;border-radius: 22.5px;
border: 1px solid #fff;margin-right: 10px;}
.but_rat{ float: right;display: flex;align-items: center;justify-content: center;width: 76px;
height: 33px;border-radius: 22.5px;
border: 1px solid #009688;color: #009688;}
</style>

25
pages/login/login.vue Normal file
View File

@ -0,0 +1,25 @@
<template>
<view class="">
测试
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>

View File

@ -0,0 +1,86 @@
<template>
<view class="person_page pagepaddings font13">
<view class="person_dataA contentboxsty">
<view class="content_box">
<view class="data_name">头像</view>
<view class="">
>
</view>
</view>
<view class="content_box">
<view class="data_name">真实姓名</view>
<view class="">
>
</view>
</view>
<view class="content_box noborbot">
<view class="data_name">登录名</view>
<view class="">
</view>
</view>
</view>
<view class="person_dataB contentboxsty">
<view class="content_box" @click="toChangPhone()">
<view class="data_name">手机号</view>
<view class=""></view>
</view>
<view class="content_box noborbot">
<view class="data_name">微信</view>
<view class=""></view>
</view>
</view>
<view class="person_dataC contentboxsty">
<view class="content_box">
<view class="data_name">设备故障通知</view>
<view class=""></view>
</view>
<view class="content_box">
<view class="data_name">出材率预警通知</view>
<view class=""></view>
</view>
<view class="content_box noborbot">
<view class="data_name">设备保修通知</view>
<view class=""></view>
</view>
</view>
<view class="person_dataD contentboxsty">
<view class="content_box noborbot">
<view class="data_name">清除缓存</view>
<view class=""></view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
//
toChangPhone(){
uni.navigateTo({
url: '/pages/person/changePhone'
})
}
}
}
</script>
<style lang="scss" >
.person_page{
.person_dataA{
padding: 0 14px;
margin-bottom: 12px;
}
.person_dataB{padding: 0 14px;margin-bottom: 12px;}
.person_dataC{padding: 0 14px;margin-bottom: 12px;}
.person_dataD{padding: 0 14px;}
.content_box{display: flex;align-items: center;height: 44px;border-bottom: 1px solid #2D3A6F;}
.data_name{flex: 1;}
}
</style>

View File

@ -0,0 +1,22 @@
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>

119
pages/person/person.vue Normal file
View File

@ -0,0 +1,119 @@
<template>
<view class="person_page ">
<view class="person_top">
<view class="logo">
</view>
</view>
<view class="person_content">
<view class="con_backlog">
<view class="font14">
待办事项
</view>
<view class="backlog_data">
<view class="backlog_module">
<view class="t-icon t-icon-shengchangongdan backlogicon"></view>
<view class="backlogname">工单审批</view>
</view>
<view class="backlog_module">
<view class="t-icon t-icon-shengchangongdan backlogicon"></view>
<view class="backlogname">流程审批</view>
</view>
<view class="backlog_module">
<view class="t-icon t-icon-shengchangongdan backlogicon"></view>
<view class="backlogname">设备报警</view>
</view>
<view class="backlog_module">
<view class="t-icon t-icon-shengchangongdan backlogicon"></view>
<view class="backlogname">权限审批</view>
</view>
<view class="backlog_module">
<view class="t-icon t-icon-shengchangongdan backlogicon"></view>
<view class="backlogname">安全事故</view>
</view>
</view>
</view>
<view class="con_account" @click="toAccountCenter()">
<view class="t-icon t-icon-zhanghaozhongxin personicon"></view>
<view class="font14">账户中心</view>
</view>
<view class="con_data">
<view class="con_module">
<view class="t-icon t-icon-xiaoxitongzhi-gerenzhongxin personicon"></view>
<view class="font13">消息管理</view>
<view class=""></view>
</view>
<view class="con_module">
<view class="t-icon t-icon-shenpizhida personicon"></view>
<view class="font13">审批直达</view>
<view class=""></view>
</view>
<view class="con_module noborbot">
<view class="t-icon t-icon-wodequanxian personicon"></view>
<view class="font13">我的权限</view>
<view class=""></view>
</view>
</view>
<view class="con_set">
<view class="t-icon t-icon-xitongshezhi-gerenzhongxin personicon"></view>
<view class="font13">系统设置</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
//
toAccountCenter(){
uni.navigateTo({
url: '/pages/person/accountCenter'
})
},
}
}
</script>
<style scoped lang="scss">
.person_page{ padding: 14px;
.con_backlog{padding: 14px 10px 14px 15px;background: #1C2755;border-radius: 8px;margin-bottom: 12px;
.backlog_data{display: flex; flex-wrap: wrap;
.backlog_module{width: 93px;height: 76px;display: flex;justify-content: center;flex-direction: column;align-items: center;border-radius: 8px;
background: #6576B7;margin: 5px 6px;}
.backlogicon{width: 32px;height: 32px;}
.backlogname{
font-size: $uni-font-size-sm;
padding-top: 5px;}
}
}
.con_account{
border-radius: 8px;
background: #1C2755;
display: flex;
height: 52px;
align-items: center;
padding: 0 14px;
margin-bottom: 10px;
}
.personicon{width: 24px;height: 24px;padding-right: 15px;}
.con_data{border-radius: 8px;
background: #1C2755;
padding: 0 14px;
margin-bottom: 12px;
.con_module{display: flex;height: 49px;align-items: center;border-bottom: 1px solid #2D3A6F;}
}
.con_set{border-radius: 8px;
background: #1C2755;
display: flex;
height: 48px;
align-items: center;
padding: 0 14px;
}
}
</style>

BIN
static/c1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 B

BIN
static/c2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

BIN
static/c3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 511 B

BIN
static/c4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 B

BIN
static/c5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

BIN
static/c6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 545 B

BIN
static/c7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 365 B

BIN
static/c8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

BIN
static/c9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 565 B

20
static/customicons.css Normal file
View File

@ -0,0 +1,20 @@
@font-face {
font-family: "customicons"; /* Project id 2878519 */
src:url('/static/customicons.ttf') format('truetype');
}
.customicons {
font-family: "customicons" !important;
}
.youxi:before {
content: "\e60e";
}
.wenjian:before {
content: "\e60f";
}
.zhuanfa:before {
content: "\e610";
}

BIN
static/customicons.ttf Normal file

Binary file not shown.

View File

@ -0,0 +1,14 @@
Component({
externalClasses: ['custom-class'],
properties: {
icon: {
type: String,
value: '',
},
size: {
type: Number,
value: 32,
},
},
})

View File

@ -0,0 +1,4 @@
{
"component": true
}

View File

@ -0,0 +1,2 @@
<cover-view class="t-icon t-icon-{{icon}}" style="width: {{ size }}rpx;height:width: {{ size }}rpx;"></cover-view>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,109 @@
@font-face {
font-family: "iconfont"; /* Project id 4403683 */
src: url('//at.alicdn.com/t/c/font_4403683_jzx1hwbdok.woff2?t=1704766027171') format('woff2'),
url('//at.alicdn.com/t/c/font_4403683_jzx1hwbdok.woff?t=1704766027171') format('woff'),
url('//at.alicdn.com/t/c/font_4403683_jzx1hwbdok.ttf?t=1704766027171') format('truetype');
}
.iconfont {
font-family: "iconfont" !important;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-xitongshezhi-gerenzhongxin:before {
content: "\e611";
}
.icon-gongdanshenpi:before {
content: "\e612";
}
.icon-xiaoxitongzhi-gerenzhongxin:before {
content: "\e613";
}
.icon-anquanshigu:before {
content: "\e614";
}
.icon-quanxianguanli:before {
content: "\e615";
}
.icon-wodequanxian:before {
content: "\e616";
}
.icon-zhanghaozhongxin:before {
content: "\e617";
}
.icon-shenpizhida:before {
content: "\e618";
}
.icon-liuchengshenpi:before {
content: "\e619";
}
.icon-shebeibaojing:before {
content: "\e61a";
}
.icon-wode:before {
content: "\e60f";
}
.icon-shouye:before {
content: "\e610";
}
.icon-shebeiguanli:before {
content: "\e603";
}
.icon-shengchangongdan:before {
content: "\e604";
}
.icon-shebeibaoxiu:before {
content: "\e605";
}
.icon-gongdanchucaishuai:before {
content: "\e606";
}
.icon-shengchanbaobiao:before {
content: "\e607";
}
.icon-xiaoxitongzhi:before {
content: "\e608";
}
.icon-gongdanjindu:before {
content: "\e609";
}
.icon-shezhi:before {
content: "\e60a";
}
.icon-shebeizhuangtai:before {
content: "\e60b";
}
.icon-chaojiguanliyuan:before {
content: "\e60c";
}
.icon-paichengshichang:before {
content: "\e60d";
}
.icon-paichengguanli:before {
content: "\e60e";
}

1
static/iconfont/svg.js Normal file

File diff suppressed because one or more lines are too long

BIN
static/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
static/uni.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

10
uni.scss Normal file
View File

@ -0,0 +1,10 @@
@import '@/uni_modules/uni-scss/variables.scss';
/* 文字尺寸 */
$uni-font-size-sm:24rpx;
$uni-font-size-base:28rpx;
$uni-font-size-lg:32rpx;
/* 透明度 */
$uni-opacity-disabled: 0.3; // 组件禁用态的透明度