init
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
uni_modules/
|
16
.hbuilderx/launch.json
Normal file
@ -0,0 +1,16 @@
|
||||
{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
|
||||
// launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
|
||||
"version": "0.0",
|
||||
"configurations": [{
|
||||
"app-plus" :
|
||||
{
|
||||
"launchtype" : "local"
|
||||
},
|
||||
"default" :
|
||||
{
|
||||
"launchtype" : "local"
|
||||
},
|
||||
"type" : "uniCloud"
|
||||
}
|
||||
]
|
||||
}
|
19
App.vue
Normal file
@ -0,0 +1,19 @@
|
||||
<script>
|
||||
export default {
|
||||
onLaunch: function() {
|
||||
console.log('App Launch')
|
||||
},
|
||||
onShow: function() {
|
||||
console.log('App Show')
|
||||
},
|
||||
onHide: function() {
|
||||
console.log('App Hide')
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
/*每个页面公共css */
|
||||
/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
|
||||
@import "@/uni_modules/uview-ui/index.scss";
|
||||
</style>
|
20
index.html
Normal 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>
|
31
main.js
Normal file
@ -0,0 +1,31 @@
|
||||
import App from './App'
|
||||
|
||||
// #ifndef VUE3
|
||||
import Vue from 'vue'
|
||||
|
||||
|
||||
|
||||
Vue.config.productionTip = false
|
||||
App.mpType = 'app'
|
||||
const app = new Vue({
|
||||
...App
|
||||
})
|
||||
|
||||
app.$mount()
|
||||
// #endif
|
||||
|
||||
// main.js
|
||||
import uView from '@/uni_modules/uview-ui'
|
||||
Vue.use(uView)
|
||||
|
||||
// #ifdef VUE3
|
||||
import {
|
||||
createSSRApp
|
||||
} from 'vue'
|
||||
export function createApp() {
|
||||
const app = createSSRApp(App)
|
||||
return {
|
||||
app
|
||||
}
|
||||
}
|
||||
// #endif
|
72
manifest.json
Normal file
@ -0,0 +1,72 @@
|
||||
{
|
||||
"name" : "construction_site_supervision",
|
||||
"appid" : "",
|
||||
"description" : "",
|
||||
"versionName" : "1.0.0",
|
||||
"versionCode" : "100",
|
||||
"transformPx" : false,
|
||||
/* 5+App特有相关 */
|
||||
"app-plus" : {
|
||||
"usingComponents" : true,
|
||||
"nvueStyleCompiler" : "uni-app",
|
||||
"compilerVersion" : 3,
|
||||
"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" : {},
|
||||
/* SDK配置 */
|
||||
"sdkConfigs" : {}
|
||||
}
|
||||
},
|
||||
/* 快应用特有相关 */
|
||||
"quickapp" : {},
|
||||
/* 小程序特有相关 */
|
||||
"mp-weixin" : {
|
||||
"appid" : "",
|
||||
"setting" : {
|
||||
"urlCheck" : false
|
||||
},
|
||||
"usingComponents" : true
|
||||
},
|
||||
"mp-alipay" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"mp-baidu" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"mp-toutiao" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"uniStatistics" : {
|
||||
"enable" : false
|
||||
},
|
||||
"vueVersion" : "2"
|
||||
}
|
123
pages.json
Normal file
@ -0,0 +1,123 @@
|
||||
{
|
||||
// 如果您是通过uni_modules形式引入uView,可以忽略此配置
|
||||
// "easycom": {
|
||||
// "^u-(.*)": "@/uni_modules/uview-ui/components/u-$1/u-$1.vue"
|
||||
// },
|
||||
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
|
||||
// {
|
||||
// "path": "pages/index/index",
|
||||
// "style": {
|
||||
// "navigationBarTitleText": "uni-app"
|
||||
// }
|
||||
// },
|
||||
{
|
||||
"path": "pages/monitor/monitor",
|
||||
"style": {
|
||||
"navigationBarTitleText": "视频监控",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"path": "pages/attendance/attendance",
|
||||
"style": {
|
||||
"navigationBarTitleText": "考勤管理",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "pages/personal/personal",
|
||||
"style": {
|
||||
"navigationBarTitleText": "个人中心",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "pages/mobile_inspection/mobile_inspection",
|
||||
"style": {
|
||||
"navigationBarTitleText": "移动巡检",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "pages/mobile_inspection/quality_inspection/quality_inspection",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "pages/mobile_inspection/security_inspection/security_inspection",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}, {
|
||||
"path": "pages/project_supervision/project_supervision",
|
||||
"style": {
|
||||
"navigationStyle": "custom", // 隐藏系统导航栏
|
||||
"navigationBarTextStyle": "white", // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一
|
||||
"backgroundColor": "#f6f6f6",
|
||||
// "navigationBarTitleText": "项目监管",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}
|
||||
,{
|
||||
"path" : "pages/project_supervision/project_detail/project_detail",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}
|
||||
],
|
||||
"globalStyle": {
|
||||
// "rpxCalcMaxDeviceWidth": 960,
|
||||
// "rpxCalcBaseDeviceWidth": 375,
|
||||
// "rpxCalcIncludeWidth": 375,
|
||||
"navigationBarTextStyle": "white",
|
||||
"navigationBarTitleText": "uni-app",
|
||||
"navigationBarBackgroundColor": "#3a87ee",
|
||||
"backgroundColor": "#F8F8F8"
|
||||
},
|
||||
"uniIdRouter": {},
|
||||
"tabBar": {
|
||||
"color": "#9a9a9a",
|
||||
"selectedColor": "#0f40f5",
|
||||
"borderStyle": "black",
|
||||
"backgroundColor": "#ffffff",
|
||||
"list": [{
|
||||
"iconPath": "static/tab/monitor.png",
|
||||
"selectedIconPath": "static/tab/monitor_actived.png",
|
||||
"text": "视频监控",
|
||||
"pagePath": "pages/monitor/monitor"
|
||||
},
|
||||
{
|
||||
"text": "考勤管理",
|
||||
"pagePath": "pages/attendance/attendance",
|
||||
"iconPath": "static/tab/attendance.png",
|
||||
"selectedIconPath": "static/tab/attendance_actived.png"
|
||||
},
|
||||
{
|
||||
"text": "项目监管",
|
||||
"pagePath": "pages/project_supervision/project_supervision",
|
||||
"iconPath": "static/tab/project_supervision.png",
|
||||
"selectedIconPath": "static/tab/project_supervision_actived.png"
|
||||
}, {
|
||||
"text": "移动巡检",
|
||||
"pagePath": "pages/mobile_inspection/mobile_inspection",
|
||||
"iconPath": "static/tab/mobile_inspection.png",
|
||||
"selectedIconPath": "static/tab/mobile_inspection_actived.png"
|
||||
},
|
||||
{
|
||||
"text": "个人中心",
|
||||
"pagePath": "pages/personal/personal",
|
||||
"iconPath": "static/tab/personal.png",
|
||||
"selectedIconPath": "static/tab/personal_active.png"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
22
pages/attendance/attendance.vue
Normal file
@ -0,0 +1,22 @@
|
||||
<template>
|
||||
<view>
|
||||
<h1>考勤管理</h1>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
52
pages/index/index.vue
Normal file
@ -0,0 +1,52 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<image class="logo" src="/static/logo.png"></image>
|
||||
<view class="text-area">
|
||||
<text class="title">{{title}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
title: 'Hello'
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.logo {
|
||||
height: 200rpx;
|
||||
width: 200rpx;
|
||||
margin-top: 200rpx;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-bottom: 50rpx;
|
||||
}
|
||||
|
||||
.text-area {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 36rpx;
|
||||
color: #8f8f94;
|
||||
}
|
||||
</style>
|
55
pages/mobile_inspection/mobile_inspection.vue
Normal file
@ -0,0 +1,55 @@
|
||||
<template>
|
||||
<view>
|
||||
<u-tabs class="tabs" :list="tabList" @change="handleTabClick"></u-tabs>
|
||||
<!-- <scroll-view scroll-y="true"> -->
|
||||
<!-- <view> -->
|
||||
<QualityInspection v-if="activeIndex==0"></QualityInspection>
|
||||
<SecurityInspection v-else-if="activeIndex==1"></SecurityInspection>
|
||||
<!-- </view> -->
|
||||
<!-- </scroll-view> -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import QualityInspection from './quality_inspection/quality_inspection.vue'
|
||||
import SecurityInspection from './security_inspection/security_inspection.vue'
|
||||
export default {
|
||||
name: 'MobileInspection',
|
||||
components: {
|
||||
QualityInspection,
|
||||
SecurityInspection
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
activeIndex: 0,
|
||||
tabList: [{
|
||||
name: '质量巡检',
|
||||
}, {
|
||||
name: '安全巡检',
|
||||
}, ]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleTabClick(item) {
|
||||
console.log(item);
|
||||
this.activeIndex = item.index;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .u-tabs__wrapper__nav {
|
||||
justify-content: space-between;
|
||||
|
||||
.u-tabs__wrapper__nav__item {
|
||||
width: 320rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.test {
|
||||
width: 370rpx;
|
||||
height: 100rpx;
|
||||
background-color: indianred;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,175 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="filter-bar">
|
||||
|
||||
</view>
|
||||
<view class="task-item" v-for="(item,index) in taskList" :key="index">
|
||||
<view class="task-status" :style="`background-color:${item.status==1?'#60a7e9':'#c85449'}`">
|
||||
<text>
|
||||
{{item.status==1?'正常':'异常'}}
|
||||
</text>
|
||||
</view>
|
||||
<view class="task-title">
|
||||
{{item.name}}
|
||||
</view>
|
||||
<view class="task-content">
|
||||
<image src="@/static/inspector/inspector_example.png" mode=""></image>
|
||||
<view class="desc-list">
|
||||
<view class="desc-item">
|
||||
<text class="desc-key">检查部位: </text>
|
||||
<text class="desc-value">{{item.part}}</text>
|
||||
</view>
|
||||
<view class="desc-item">
|
||||
<text class="desc-key">巡检单位: </text>
|
||||
<text class="desc-value">{{item.unit}}</text>
|
||||
</view>
|
||||
<view class="desc-item">
|
||||
<text class="desc-key">检查情况: </text>
|
||||
<text class="desc-value">{{item.situation}}</text>
|
||||
</view>
|
||||
<view class="desc-item">
|
||||
<text class="desc-key">巡检人员: </text>
|
||||
<text class="desc-value">{{item.staff}}</text>
|
||||
</view>
|
||||
<view class="desc-item">
|
||||
<text class="desc-key">纠正预防措施: </text>
|
||||
<text class="desc-value">{{item.measure}}</text>
|
||||
</view>
|
||||
<view class="desc-item">
|
||||
<text class="desc-key">巡检日期: </text>
|
||||
<text class="desc-value">{{item.date}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
// 质量巡检任务列表
|
||||
taskList: [{
|
||||
name: '巡检任务1',
|
||||
part: '南侧立柱',
|
||||
unit: '遵宜科技',
|
||||
situation: '正常',
|
||||
staff: '金一南',
|
||||
measure: '无',
|
||||
date: '2020-06-13',
|
||||
status: 1
|
||||
}, {
|
||||
name: '巡检任务1',
|
||||
part: '南侧立柱',
|
||||
unit: '遵宜科技',
|
||||
situation: '正常',
|
||||
staff: '金一南',
|
||||
measure: '无',
|
||||
date: '2020-06-13',
|
||||
status: 0
|
||||
}, {
|
||||
name: '巡检任务1',
|
||||
part: '南侧立柱',
|
||||
unit: '遵宜科技',
|
||||
situation: '正常',
|
||||
staff: '金一南',
|
||||
measure: '无',
|
||||
date: '2020-06-13',
|
||||
status: 1
|
||||
}, {
|
||||
name: '巡检任务1',
|
||||
part: '南侧立柱',
|
||||
unit: '遵宜科技',
|
||||
situation: '正常',
|
||||
staff: '金一南',
|
||||
measure: '无',
|
||||
date: '2020-06-13',
|
||||
status: 1
|
||||
}, {
|
||||
name: '巡检任务1',
|
||||
part: '南侧立柱',
|
||||
unit: '遵宜科技',
|
||||
situation: '正常',
|
||||
staff: '金一南',
|
||||
measure: '无',
|
||||
date: '2020-06-13',
|
||||
status: 1
|
||||
}, ]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.task-item {
|
||||
margin: 0 16rpx 0;
|
||||
border-radius: 20rpx;
|
||||
position: relative;
|
||||
padding: 22rpx 34rpx 34rpx;
|
||||
box-shadow: 0 4rpx 12rpx 0 rgba(0, 0, 0, 0.4);
|
||||
|
||||
.task-status {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 88px;
|
||||
height: 31px;
|
||||
border-radius: 0px 10px 1px 26px;
|
||||
box-shadow: 0 4rpx 12rpx 0 rgba(0, 0, 0, 0.4);
|
||||
background-color: #60a7e9;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
text {
|
||||
color: #EFEFEF;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.task-title {
|
||||
font-size: 32rpx;
|
||||
margin-left: 14rpx;
|
||||
}
|
||||
|
||||
.task-content {
|
||||
margin-top: 16rpx;
|
||||
display: flex;
|
||||
|
||||
image {
|
||||
height: 182rpx;
|
||||
width: 132rpx;
|
||||
}
|
||||
|
||||
.desc-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-left: 8rpx;
|
||||
width: 510rpx;
|
||||
|
||||
.desc-item {
|
||||
width: 50%;
|
||||
|
||||
.desc-key {
|
||||
color: #9a9a9a;
|
||||
font-size: 12rpx;
|
||||
}
|
||||
|
||||
.desc-value {
|
||||
color: #101010;
|
||||
font-size: 13rpx;
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.task-item:not(:last-child) {
|
||||
margin-bottom: 34rpx;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,175 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="filter-bar">
|
||||
|
||||
</view>
|
||||
<view class="task-item" v-for="(item,index) in taskList" :key="index">
|
||||
<view class="task-status" :style="`background-color:${item.status==1?'#50c2b0':'#c85449'}`">
|
||||
<text>
|
||||
{{item.status==1?'已整改':'未整改'}}
|
||||
</text>
|
||||
</view>
|
||||
<view class="task-title">
|
||||
{{item.name}}
|
||||
</view>
|
||||
<view class="task-content">
|
||||
<image src="@/static/inspector/inspector_example.png" mode=""></image>
|
||||
<view class="desc-list">
|
||||
<view class="desc-item">
|
||||
<text class="desc-key">检查内容: </text>
|
||||
<text class="desc-value">{{item.content}}</text>
|
||||
</view>
|
||||
<view class="desc-item">
|
||||
<text class="desc-key">巡检单位: </text>
|
||||
<text class="desc-value">{{item.unit}}</text>
|
||||
</view>
|
||||
<view class="desc-item">
|
||||
<text class="desc-key">检查情况: </text>
|
||||
<text class="desc-value">{{item.situation}}</text>
|
||||
</view>
|
||||
<view class="desc-item">
|
||||
<text class="desc-key">巡检人员: </text>
|
||||
<text class="desc-value">{{item.staff}}</text>
|
||||
</view>
|
||||
<view class="desc-item">
|
||||
<text class="desc-key">纠正预防措施: </text>
|
||||
<text class="desc-value">{{item.measure}}</text>
|
||||
</view>
|
||||
<view class="desc-item">
|
||||
<text class="desc-key">巡检日期: </text>
|
||||
<text class="desc-value">{{item.date}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
// 质量巡检任务列表
|
||||
taskList: [{
|
||||
name: '巡检任务1',
|
||||
content: '头盔佩戴',
|
||||
unit: '遵宜科技',
|
||||
situation: '正常',
|
||||
staff: '金一南',
|
||||
measure: '无',
|
||||
date: '2020-06-13',
|
||||
status: 1
|
||||
}, {
|
||||
name: '巡检任务1',
|
||||
content: '头盔佩戴',
|
||||
unit: '遵宜科技',
|
||||
situation: '正常',
|
||||
staff: '金一南',
|
||||
measure: '无',
|
||||
date: '2020-06-13',
|
||||
status: 0
|
||||
}, {
|
||||
name: '巡检任务1',
|
||||
content: '头盔佩戴',
|
||||
unit: '遵宜科技',
|
||||
situation: '正常',
|
||||
staff: '金一南',
|
||||
measure: '无',
|
||||
date: '2020-06-13',
|
||||
status: 1
|
||||
}, {
|
||||
name: '巡检任务1',
|
||||
content: '头盔佩戴',
|
||||
unit: '遵宜科技',
|
||||
situation: '正常',
|
||||
staff: '金一南',
|
||||
measure: '无',
|
||||
date: '2020-06-13',
|
||||
status: 1
|
||||
}, {
|
||||
name: '巡检任务1',
|
||||
content: '头盔佩戴',
|
||||
unit: '遵宜科技',
|
||||
situation: '正常',
|
||||
staff: '金一南',
|
||||
measure: '无',
|
||||
date: '2020-06-13',
|
||||
status: 1
|
||||
}, ]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.task-item {
|
||||
margin: 0 16rpx 0;
|
||||
border-radius: 20rpx;
|
||||
position: relative;
|
||||
padding: 22rpx 34rpx 34rpx;
|
||||
box-shadow: 0 4rpx 12rpx 0 rgba(0, 0, 0, 0.4);
|
||||
|
||||
.task-status {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 88px;
|
||||
height: 31px;
|
||||
border-radius: 0px 10px 1px 26px;
|
||||
box-shadow: 0 4rpx 12rpx 0 rgba(0, 0, 0, 0.4);
|
||||
background-color: #60a7e9;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
text {
|
||||
color: #EFEFEF;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.task-title {
|
||||
font-size: 32rpx;
|
||||
margin-left: 14rpx;
|
||||
}
|
||||
|
||||
.task-content {
|
||||
margin-top: 16rpx;
|
||||
display: flex;
|
||||
|
||||
image {
|
||||
height: 182rpx;
|
||||
width: 132rpx;
|
||||
}
|
||||
|
||||
.desc-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-left: 8rpx;
|
||||
width: 510rpx;
|
||||
|
||||
.desc-item {
|
||||
width: 50%;
|
||||
|
||||
.desc-key {
|
||||
color: #9a9a9a;
|
||||
font-size: 12rpx;
|
||||
}
|
||||
|
||||
.desc-value {
|
||||
color: #101010;
|
||||
font-size: 13rpx;
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.task-item:not(:last-child) {
|
||||
margin-bottom: 34rpx;
|
||||
}
|
||||
</style>
|
210
pages/monitor/monitor.vue
Normal file
@ -0,0 +1,210 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="search-bar">
|
||||
<input type="text">
|
||||
</view>
|
||||
<view class="site-list">
|
||||
<view class="site-item" v-for="item in siteList" :key="item.id">
|
||||
<view class="site-title">
|
||||
<text>{{item.name}}</text>
|
||||
</view>
|
||||
<view class="camera-list">
|
||||
<view class="camera-item" v-for="(cameraItem,index) in item.camera_list" :key="index">
|
||||
<image class="camera-image" src="../../static/camera_example.png" mode=""></image>
|
||||
<view class="camera-title">
|
||||
{{cameraItem.name}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="site-time">
|
||||
<text>{{item.time}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
siteList: [{
|
||||
id: 1,
|
||||
name: '项目场地1',
|
||||
time: '2022-09-12 12:12:12',
|
||||
camera_list: [{
|
||||
name: 'camera1'
|
||||
},
|
||||
{
|
||||
name: 'camera1'
|
||||
},
|
||||
{
|
||||
name: 'camera1'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: '项目场地2',
|
||||
time: '2022-09-12 12:12:12',
|
||||
camera_list: [{
|
||||
name: 'camera1'
|
||||
},
|
||||
{
|
||||
name: 'camera1'
|
||||
},
|
||||
{
|
||||
name: 'camera1'
|
||||
}
|
||||
]
|
||||
}, {
|
||||
id: 3,
|
||||
name: '项目场地2',
|
||||
time: '2022-09-12 12:12:12',
|
||||
camera_list: [{
|
||||
name: 'camera1'
|
||||
},
|
||||
{
|
||||
name: 'camera1'
|
||||
},
|
||||
{
|
||||
name: 'camera1'
|
||||
}
|
||||
]
|
||||
}, {
|
||||
id: 4,
|
||||
name: '项目场地2',
|
||||
time: '2022-09-12 12:12:12',
|
||||
camera_list: [{
|
||||
name: 'camera1'
|
||||
},
|
||||
{
|
||||
name: 'camera1'
|
||||
},
|
||||
{
|
||||
name: 'camera1'
|
||||
}
|
||||
]
|
||||
}, {
|
||||
id: 5,
|
||||
name: '项目场地2',
|
||||
time: '2022-09-12 12:12:12',
|
||||
camera_list: [{
|
||||
name: 'camera1'
|
||||
},
|
||||
{
|
||||
name: 'camera1'
|
||||
},
|
||||
{
|
||||
name: 'camera1'
|
||||
}
|
||||
]
|
||||
}, {
|
||||
id: 6,
|
||||
name: '项目场地2',
|
||||
time: '2022-09-12 12:12:12',
|
||||
camera_list: [{
|
||||
name: 'camera1'
|
||||
},
|
||||
{
|
||||
name: 'camera1'
|
||||
},
|
||||
{
|
||||
name: 'camera1'
|
||||
}
|
||||
]
|
||||
}, {
|
||||
id: 7,
|
||||
name: '项目场地2',
|
||||
time: '2022-09-12 12:12:12',
|
||||
camera_list: [{
|
||||
name: 'camera1'
|
||||
},
|
||||
{
|
||||
name: 'camera1'
|
||||
},
|
||||
{
|
||||
name: 'camera1'
|
||||
}
|
||||
]
|
||||
}, {
|
||||
id: 8,
|
||||
name: '项目场地2',
|
||||
time: '2022-09-12 12:12:12',
|
||||
camera_list: [{
|
||||
name: 'camera1'
|
||||
},
|
||||
{
|
||||
name: 'camera1'
|
||||
},
|
||||
{
|
||||
name: 'camera1'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.site-list {
|
||||
.site-item {
|
||||
box-shadow: 0 6rpx 0 rgba(0, 0, 0, 0.4);
|
||||
margin-left: 16rpx;
|
||||
margin-right: 16rpx;
|
||||
margin-bottom: 40rpx;
|
||||
border-radius: 20rpx;
|
||||
|
||||
.site-title {
|
||||
background-color: rgb(153, 153, 153);
|
||||
width: 92px;
|
||||
height: 30px;
|
||||
line-height: 20px;
|
||||
border-radius: 20rpx 0rpx 18rpx 0rpx;
|
||||
|
||||
uni-text {
|
||||
font-family: YSBiaoTiHei-regular;
|
||||
color: white;
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.camera-list {
|
||||
margin-top: 12rpx;
|
||||
white-space: nowrap;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.camera-item {
|
||||
background-color: aquamarine;
|
||||
// margin-right: 20rpx;
|
||||
|
||||
.camera-image {
|
||||
width: 200rpx;
|
||||
height: 140rpx;
|
||||
}
|
||||
|
||||
.camera-title {
|
||||
font-size: 20rpx;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.site-time {
|
||||
margin-top: 26rpx;
|
||||
text-align: right;
|
||||
height: 30rpx;
|
||||
font-size: 28rpx;
|
||||
color: #fff;
|
||||
background-color: #d7d7d7;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
126
pages/personal/personal.vue
Normal file
@ -0,0 +1,126 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="avatar_name">
|
||||
<view class="avatar">
|
||||
<image src="../../static/personal/avatar_sample.png" mode=""></image>
|
||||
</view>
|
||||
<text class="username">
|
||||
张三
|
||||
</text>
|
||||
</view>
|
||||
<view class="user-info">
|
||||
<view class="user-info-item">
|
||||
<text class="key">
|
||||
性别:
|
||||
</text>
|
||||
<text class="value">
|
||||
{{userInfo.gender}}
|
||||
</text>
|
||||
</view>
|
||||
<view class="user-info-item">
|
||||
<text class="key">
|
||||
年龄:
|
||||
</text>
|
||||
<text class="value">
|
||||
{{userInfo.age}}
|
||||
</text>
|
||||
</view>
|
||||
<view class="user-info-item">
|
||||
<text class="key">
|
||||
所属单位:
|
||||
</text>
|
||||
<text class="value">
|
||||
{{userInfo.unit}}
|
||||
</text>
|
||||
</view>
|
||||
<view class="user-info-item">
|
||||
<text class="key">
|
||||
部门:
|
||||
</text>
|
||||
<text class="value">
|
||||
{{userInfo.department}}
|
||||
</text>
|
||||
</view>
|
||||
<view class="user-info-item">
|
||||
<text class="key">
|
||||
岗位:
|
||||
</text>
|
||||
<text class="value">
|
||||
{{userInfo.post}}
|
||||
</text>
|
||||
</view>
|
||||
<view class="user-info-item">
|
||||
<text class="key">
|
||||
负责项目:
|
||||
</text>
|
||||
<text class="value">
|
||||
{{userInfo.project}}
|
||||
</text>
|
||||
</view>
|
||||
<view class="user-info-item">
|
||||
<text class="key">
|
||||
项目角色:
|
||||
</text>
|
||||
<text class="value">
|
||||
{{userInfo.role}}
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
userInfo: {
|
||||
name: '张三',
|
||||
gender: '男',
|
||||
age: 26,
|
||||
unit: '航天科工六院',
|
||||
department: '**部',
|
||||
post: '**经理',
|
||||
project: '负责项目',
|
||||
role: '**项目经理'
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.avatar_name {
|
||||
border: 1px solid rgb(186, 186, 186);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 180rpx;
|
||||
padding-left: 38rpx;
|
||||
|
||||
.avatar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
uni-image {
|
||||
width: 114rpx;
|
||||
height: 114rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.username {
|
||||
margin-left: 100rpx;
|
||||
font-size: 28px;
|
||||
}
|
||||
}
|
||||
|
||||
.user-info {
|
||||
.user-info-item {
|
||||
display: flex;
|
||||
height: 120rpx;
|
||||
align-items: center;
|
||||
border: 1px solid #bbb;
|
||||
}
|
||||
}
|
||||
</style>
|
36
pages/project_supervision/project_detail/project_detail.vue
Normal file
@ -0,0 +1,36 @@
|
||||
<template>
|
||||
<view>
|
||||
<u-tabs :list="tabList"></u-tabs>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tabList: [{
|
||||
text: '主页'
|
||||
}, {
|
||||
text: '进度管理'
|
||||
},
|
||||
{
|
||||
text: '质量管理'
|
||||
},
|
||||
{
|
||||
text: '安全管理'
|
||||
},
|
||||
{
|
||||
text: '材料管理'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
</style>
|
359
pages/project_supervision/project_supervision.vue
Normal file
@ -0,0 +1,359 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="page-top" style="background-color: aqua">
|
||||
<u-navbar title="个人中心" placeholder bgColor="transparent" :leftIcon="null" titleStyle="color:white">
|
||||
</u-navbar>
|
||||
<view class="search-bar">
|
||||
<u--input placeholder="请输入项目名称" prefixIcon="search" prefixIconStyle="font-size: 32px;color: #909399">
|
||||
</u--input>
|
||||
</view>
|
||||
|
||||
<u-tabs :list="tabList" itemStyle="width:18%;height:80rpx" activeStyle="color:white"
|
||||
inactiveStyle="color:white"></u-tabs>
|
||||
|
||||
|
||||
</view>
|
||||
<view class="filter-bar">
|
||||
<view class="filter-item">
|
||||
<text>时间</text>
|
||||
<u-icon name="arrow-down-fill" color="#8F959E" size="14"></u-icon>
|
||||
</view>
|
||||
<view class="filter-item">
|
||||
<text>金额</text>
|
||||
<u-icon name="arrow-down-fill" color="#8F959E" size="14"></u-icon>
|
||||
</view>
|
||||
<view class="filter-item">
|
||||
<text>级别</text>
|
||||
<u-icon name="arrow-down-fill" color="#8F959E" size="14"></u-icon>
|
||||
</view>
|
||||
<view class="filter-item">
|
||||
<text>筛选</text>
|
||||
<u-icon name="arrow-down-fill" color="#8F959E" size="14"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="scroll-y">
|
||||
<u-swipe-action class="swiper-item" v-for="item in projectList" :key="item.id">
|
||||
<u-swipe-action-item :options="options">
|
||||
<!-- <navigator url='pages/project_supervision/project_detail/project_detail'> -->
|
||||
<view class="project-item" @tap="goDetail">
|
||||
<view class="project-status"
|
||||
:style="`background-image: linear-gradient(219deg, ${statusDict[item.status].color1} 0%, ${statusDict[item.status].color2} 99%)`">
|
||||
<text>{{statusDict[item.status].name}}</text>
|
||||
</view>
|
||||
<text>{{item.name}}</text>
|
||||
<view class="project-desc">
|
||||
|
||||
<view class="project-desc-item">
|
||||
<text class="project-desc-key">
|
||||
建设性质
|
||||
</text>
|
||||
<text class="project-desc-value">
|
||||
{{item.type}}
|
||||
</text>
|
||||
</view>
|
||||
<view class="project-desc-item" style="text-align: end;">
|
||||
<text class="project-desc-key">
|
||||
施工单位
|
||||
</text>
|
||||
<text class="project-desc-value">
|
||||
{{item.unit}}
|
||||
</text>
|
||||
</view>
|
||||
<view class="project-desc-item">
|
||||
<text class="project-desc-key">
|
||||
监理单位
|
||||
</text>
|
||||
<text class="project-desc-value">
|
||||
{{item.supervisorUnit}}
|
||||
</text>
|
||||
</view>
|
||||
<view class="project-desc-item" style="text-align: end;">
|
||||
<text class="project-desc-key">
|
||||
总面积
|
||||
</text>
|
||||
<text class="project-desc-value">
|
||||
{{item.area}}平方
|
||||
</text>
|
||||
</view>
|
||||
<view class="project-desc-item">
|
||||
<text class="project-desc-key">
|
||||
总投资
|
||||
</text>
|
||||
<text class="project-desc-value">
|
||||
{{item.invest}}万元
|
||||
</text>
|
||||
</view>
|
||||
<view class="project-desc-item" style="text-align: end;">
|
||||
<text class="project-desc-key">
|
||||
建设性质
|
||||
</text>
|
||||
<text class="project-desc-value">
|
||||
{{item.responsible}}
|
||||
</text>
|
||||
</view>
|
||||
<view class="divider"></view>
|
||||
<!-- <divider></divider> -->
|
||||
<view class="project-desc-item">
|
||||
<text class="project-desc-key">
|
||||
项目编号
|
||||
</text>
|
||||
<text class="project-desc-value">
|
||||
{{item.id}}
|
||||
</text>
|
||||
</view>
|
||||
<view class="project-desc-item" style="text-align: end;">
|
||||
<text class="project-desc-key">
|
||||
立项时间
|
||||
</text>
|
||||
<text class="project-desc-value">
|
||||
{{item.createTime}}
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- </navigator> -->
|
||||
</u-swipe-action-item>
|
||||
</u-swipe-action>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
statusDict: {
|
||||
0: {
|
||||
name: '已立项',
|
||||
color1: '#39DAAA',
|
||||
color2: '#02C489'
|
||||
},
|
||||
1: {
|
||||
name: '进行中',
|
||||
color1: '#FD934E',
|
||||
color2: '#FF7442'
|
||||
},
|
||||
2: {
|
||||
name: '已完成',
|
||||
color1: '#39DAAA',
|
||||
color2: '#02C489'
|
||||
}
|
||||
},
|
||||
options: [{
|
||||
text: '编辑',
|
||||
style: {
|
||||
backgroundColor: '#e99d42'
|
||||
}
|
||||
},
|
||||
{
|
||||
text: '删除',
|
||||
style: {
|
||||
backgroundColor: '#f56c6c'
|
||||
}
|
||||
}
|
||||
],
|
||||
tabList: [{
|
||||
name: '全部'
|
||||
},
|
||||
{
|
||||
name: '已立项'
|
||||
},
|
||||
{
|
||||
name: '进行中'
|
||||
},
|
||||
{
|
||||
name: '已验收'
|
||||
},
|
||||
],
|
||||
projectList: [{
|
||||
name: '六院信息化项目',
|
||||
type: '商用',
|
||||
unit: '内蒙航天建工集团',
|
||||
supervisorUnit: '建华监理单位',
|
||||
area: 1500,
|
||||
invest: 200,
|
||||
status: 0, //0:已立项, 1:进行中, 2:已完成
|
||||
responsible: '郝昊',
|
||||
id: "0e13werwr313",
|
||||
createTime: '2022-02-32'
|
||||
},
|
||||
{
|
||||
name: '工棚改造项目',
|
||||
type: '商用',
|
||||
unit: '内蒙航天建工集团',
|
||||
supervisorUnit: '建华监理单位',
|
||||
area: 1500,
|
||||
invest: 200,
|
||||
status: 0, //0:已立项, 1:进行中, 2:已完成
|
||||
responsible: '郝昊',
|
||||
id: "0e1rwerw748313",
|
||||
createTime: '2022-02-32'
|
||||
},
|
||||
{
|
||||
name: '工棚改造项目',
|
||||
type: '商用',
|
||||
unit: '内蒙航天建工集团',
|
||||
supervisorUnit: '建华监理单位',
|
||||
area: 1500,
|
||||
invest: 200,
|
||||
status: 0, //0:已立项, 1:进行中, 2:已完成
|
||||
responsible: '郝昊',
|
||||
id: "0e13wrw77587err",
|
||||
createTime: '2022-02-32'
|
||||
},
|
||||
{
|
||||
name: '工棚改造项目',
|
||||
type: '商用',
|
||||
unit: '内蒙航天建工集团',
|
||||
supervisorUnit: '建华监理单位',
|
||||
area: 1500,
|
||||
invest: 200,
|
||||
status: 0, //0:已立项, 1:进行中, 2:已完成
|
||||
responsible: '郝昊',
|
||||
id: "0e13wrw643542err",
|
||||
createTime: '2022-02-32'
|
||||
},
|
||||
{
|
||||
name: '工棚改造项目',
|
||||
type: '商用',
|
||||
unit: '内蒙航天建工集团',
|
||||
supervisorUnit: '建华监理单位',
|
||||
area: 1500,
|
||||
invest: 200,
|
||||
status: 0, //0:已立项, 1:进行中, 2:已完成
|
||||
responsible: '郝昊',
|
||||
id: "0e1335626wrwerr",
|
||||
createTime: '2022-02-32'
|
||||
},
|
||||
{
|
||||
name: '工棚改造项目',
|
||||
type: '商用',
|
||||
unit: '内蒙航天建工集团',
|
||||
supervisorUnit: '建华监理单位',
|
||||
area: 1500,
|
||||
invest: 200,
|
||||
status: 0, //0:已立项, 1:进行中, 2:已完成
|
||||
responsible: '郝昊',
|
||||
id: "0e312313wrwerr",
|
||||
createTime: '2022-02-32'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
goDetail() {
|
||||
console.log('跳转')
|
||||
uni.navigateTo({
|
||||
url: '/pages/project_supervision/project_detail/project_detail',
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
page {
|
||||
background-color: #f6f6f6;
|
||||
}
|
||||
</style>
|
||||
<style lang="scss" scoped>
|
||||
.page-top {
|
||||
background: linear-gradient(to top right, #496df6, #2e9ee8);
|
||||
}
|
||||
|
||||
.search-bar {
|
||||
margin: 0 32rpx 0;
|
||||
|
||||
.u-input {
|
||||
height: 48rpx;
|
||||
background-color: white;
|
||||
}
|
||||
}
|
||||
|
||||
.filter-bar {
|
||||
height: 80rpx;
|
||||
padding: 0 40rpx 0;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.filter-item {
|
||||
display: flex;
|
||||
|
||||
text {
|
||||
color: #8F959E;
|
||||
// margin-right: 8rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.scroll-y {
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.swiper-item {
|
||||
margin: 0rpx 16rpx 0rpx;
|
||||
}
|
||||
|
||||
.swiper-item:not(:last-child) {
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.project-item {
|
||||
position: relative;
|
||||
background-color: white;
|
||||
|
||||
padding: 28rpx 20rpx 28rpx;
|
||||
border-radius: 8rpx;
|
||||
|
||||
.project-status {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 112rpx;
|
||||
height: 48rpx;
|
||||
background-image: linear-gradient(219deg, #FD934E 0%, #FF7442 99%);
|
||||
border-radius: 0 8rpx 0 32rpx;
|
||||
|
||||
text {
|
||||
font-size: 12rpx;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
.project-desc {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
||||
.project-desc-item {
|
||||
width: 50%;
|
||||
|
||||
.project-desc-key {
|
||||
color: #8F959E;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.project-desc-value {
|
||||
margin-left: 8rpx;
|
||||
color: #333;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.divider {
|
||||
margin: 15rpx 0 15rpx;
|
||||
width: 100%;
|
||||
height: 3rpx;
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
BIN
static/camera_example.png
Normal file
After Width: | Height: | Size: 564 B |
BIN
static/inspector/inspector_example.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
static/logo.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
static/personal/avatar_sample.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
static/tab/attendance.png
Normal file
After Width: | Height: | Size: 539 B |
BIN
static/tab/attendance_actived.png
Normal file
After Width: | Height: | Size: 332 B |
BIN
static/tab/mobile_inspection.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
static/tab/mobile_inspection_actived.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
static/tab/monitor.png
Normal file
After Width: | Height: | Size: 580 B |
BIN
static/tab/monitor_actived.png
Normal file
After Width: | Height: | Size: 581 B |
BIN
static/tab/personal.png
Normal file
After Width: | Height: | Size: 442 B |
BIN
static/tab/personal_active.png
Normal file
After Width: | Height: | Size: 442 B |
BIN
static/tab/project_supervision.png
Normal file
After Width: | Height: | Size: 332 B |
BIN
static/tab/project_supervision_actived.png
Normal file
After Width: | Height: | Size: 332 B |
80
uni.scss
Normal file
@ -0,0 +1,80 @@
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
|
||||
/* 颜色变量 */
|
||||
|
||||
/* 行为相关颜色 */
|
||||
$uni-color-primary: #007aff;
|
||||
$uni-color-success: #4cd964;
|
||||
$uni-color-warning: #f0ad4e;
|
||||
$uni-color-error: #dd524d;
|
||||
|
||||
/* 文字基本颜色 */
|
||||
$uni-text-color:#333;//基本色
|
||||
$uni-text-color-inverse:#fff;//反色
|
||||
$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
|
||||
$uni-text-color-placeholder: #808080;
|
||||
$uni-text-color-disable:#c0c0c0;
|
||||
|
||||
/* 背景颜色 */
|
||||
$uni-bg-color:#ffffff;
|
||||
$uni-bg-color-grey:#f8f8f8;
|
||||
$uni-bg-color-hover:#f1f1f1;//点击状态颜色
|
||||
$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
|
||||
|
||||
/* 边框颜色 */
|
||||
$uni-border-color:#c8c7cc;
|
||||
|
||||
/* 尺寸变量 */
|
||||
|
||||
/* 文字尺寸 */
|
||||
$uni-font-size-sm:12px;
|
||||
$uni-font-size-base:14px;
|
||||
$uni-font-size-lg:16;
|
||||
|
||||
/* 图片尺寸 */
|
||||
$uni-img-size-sm:20px;
|
||||
$uni-img-size-base:26px;
|
||||
$uni-img-size-lg:40px;
|
||||
|
||||
/* Border Radius */
|
||||
$uni-border-radius-sm: 2px;
|
||||
$uni-border-radius-base: 3px;
|
||||
$uni-border-radius-lg: 6px;
|
||||
$uni-border-radius-circle: 50%;
|
||||
|
||||
/* 水平间距 */
|
||||
$uni-spacing-row-sm: 5px;
|
||||
$uni-spacing-row-base: 10px;
|
||||
$uni-spacing-row-lg: 15px;
|
||||
|
||||
/* 垂直间距 */
|
||||
$uni-spacing-col-sm: 4px;
|
||||
$uni-spacing-col-base: 8px;
|
||||
$uni-spacing-col-lg: 12px;
|
||||
|
||||
/* 透明度 */
|
||||
$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
|
||||
|
||||
/* 文章场景相关 */
|
||||
$uni-color-title: #2C405A; // 文章标题颜色
|
||||
$uni-font-size-title:20px;
|
||||
$uni-color-subtitle: #555555; // 二级标题颜色
|
||||
$uni-font-size-subtitle:26px;
|
||||
$uni-color-paragraph: #3F536E; // 文章段落颜色
|
||||
$uni-font-size-paragraph:15px;
|
||||
|
||||
|
||||
/* uni.scss */
|
||||
@import '@/uni_modules/uview-ui/theme.scss';
|
0
unpackage/dist/dev/.automator/app-plus/.automator.json
vendored
Normal file
1
unpackage/dist/dev/app-plus/__uniappchooselocation.js
vendored
Normal file
BIN
unpackage/dist/dev/app-plus/__uniapperror.png
vendored
Normal file
After Width: | Height: | Size: 5.7 KiB |
1
unpackage/dist/dev/app-plus/__uniappes6.js
vendored
Normal file
1
unpackage/dist/dev/app-plus/__uniappopenlocation.js
vendored
Normal file
1
unpackage/dist/dev/app-plus/__uniapppicker.js
vendored
Normal file
8
unpackage/dist/dev/app-plus/__uniappquill.js
vendored
Normal file
1
unpackage/dist/dev/app-plus/__uniappquillimageresize.js
vendored
Normal file
1
unpackage/dist/dev/app-plus/__uniappscan.js
vendored
Normal file
BIN
unpackage/dist/dev/app-plus/__uniappsuccess.png
vendored
Normal file
After Width: | Height: | Size: 2.0 KiB |
25
unpackage/dist/dev/app-plus/__uniappview.html
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<script>
|
||||
var __UniViewStartTime__ = Date.now();
|
||||
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>View</title>
|
||||
<link rel="stylesheet" href="view.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script src="__uniappes6.js"></script>
|
||||
<script src="view.umd.min.js"></script>
|
||||
<script src="app-view.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
8
unpackage/dist/dev/app-plus/app-config-service.js
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
|
||||
var isReady=false;var onReadyCallbacks=[];
|
||||
var isServiceReady=false;var onServiceReadyCallbacks=[];
|
||||
var __uniConfig = {"pages":["pages/monitor/monitor","pages/attendance/attendance","pages/personal/personal","pages/mobile_inspection/mobile_inspection","pages/mobile_inspection/quality_inspection/quality_inspection","pages/mobile_inspection/security_inspection/security_inspection","pages/project_supervision/project_supervision","pages/project_supervision/project_detail/project_detail"],"window":{"navigationBarTextStyle":"white","navigationBarTitleText":"uni-app","navigationBarBackgroundColor":"#3a87ee","backgroundColor":"#F8F8F8"},"tabBar":{"color":"#9a9a9a","selectedColor":"#0f40f5","borderStyle":"black","backgroundColor":"#ffffff","list":[{"iconPath":"static/tab/monitor.png","selectedIconPath":"static/tab/monitor_actived.png","text":"视频监控","pagePath":"pages/monitor/monitor"},{"text":"考勤管理","pagePath":"pages/attendance/attendance","iconPath":"static/tab/attendance.png","selectedIconPath":"static/tab/attendance_actived.png"},{"text":"项目监管","pagePath":"pages/project_supervision/project_supervision","iconPath":"static/tab/project_supervision.png","selectedIconPath":"static/tab/project_supervision_actived.png"},{"text":"移动巡检","pagePath":"pages/mobile_inspection/mobile_inspection","iconPath":"static/tab/mobile_inspection.png","selectedIconPath":"static/tab/mobile_inspection_actived.png"},{"text":"个人中心","pagePath":"pages/personal/personal","iconPath":"static/tab/personal.png","selectedIconPath":"static/tab/personal_active.png"}]},"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"construction_site_supervision","compilerVersion":"3.5.3","entryPagePath":"pages/monitor/monitor","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
|
||||
var __uniRoutes = [{"path":"/pages/monitor/monitor","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"视频监控","enablePullDownRefresh":false}},{"path":"/pages/attendance/attendance","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"考勤管理","enablePullDownRefresh":false}},{"path":"/pages/personal/personal","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"个人中心","enablePullDownRefresh":false}},{"path":"/pages/mobile_inspection/mobile_inspection","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"移动巡检","enablePullDownRefresh":false}},{"path":"/pages/mobile_inspection/quality_inspection/quality_inspection","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pages/mobile_inspection/security_inspection/security_inspection","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}},{"path":"/pages/project_supervision/project_supervision","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationStyle":"custom","navigationBarTextStyle":"white","backgroundColor":"#f6f6f6","enablePullDownRefresh":false}},{"path":"/pages/project_supervision/project_detail/project_detail","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}}];
|
||||
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||
service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}});
|
154
unpackage/dist/dev/app-plus/app-config.js
vendored
Normal file
@ -0,0 +1,154 @@
|
||||
/******/ (function(modules) { // webpackBootstrap
|
||||
/******/ // install a JSONP callback for chunk loading
|
||||
/******/ function webpackJsonpCallback(data) {
|
||||
/******/ var chunkIds = data[0];
|
||||
/******/ var moreModules = data[1];
|
||||
/******/ var executeModules = data[2];
|
||||
/******/
|
||||
/******/ // add "moreModules" to the modules object,
|
||||
/******/ // then flag all "chunkIds" as loaded and fire callback
|
||||
/******/ var moduleId, chunkId, i = 0, resolves = [];
|
||||
/******/ for(;i < chunkIds.length; i++) {
|
||||
/******/ chunkId = chunkIds[i];
|
||||
/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {
|
||||
/******/ resolves.push(installedChunks[chunkId][0]);
|
||||
/******/ }
|
||||
/******/ installedChunks[chunkId] = 0;
|
||||
/******/ }
|
||||
/******/ for(moduleId in moreModules) {
|
||||
/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
|
||||
/******/ modules[moduleId] = moreModules[moduleId];
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/ if(parentJsonpFunction) parentJsonpFunction(data);
|
||||
/******/
|
||||
/******/ while(resolves.length) {
|
||||
/******/ resolves.shift()();
|
||||
/******/ }
|
||||
/******/
|
||||
/******/ // add entry modules from loaded chunk to deferred list
|
||||
/******/ deferredModules.push.apply(deferredModules, executeModules || []);
|
||||
/******/
|
||||
/******/ // run deferred modules when all chunks ready
|
||||
/******/ return checkDeferredModules();
|
||||
/******/ };
|
||||
/******/ function checkDeferredModules() {
|
||||
/******/ var result;
|
||||
/******/ for(var i = 0; i < deferredModules.length; i++) {
|
||||
/******/ var deferredModule = deferredModules[i];
|
||||
/******/ var fulfilled = true;
|
||||
/******/ for(var j = 1; j < deferredModule.length; j++) {
|
||||
/******/ var depId = deferredModule[j];
|
||||
/******/ if(installedChunks[depId] !== 0) fulfilled = false;
|
||||
/******/ }
|
||||
/******/ if(fulfilled) {
|
||||
/******/ deferredModules.splice(i--, 1);
|
||||
/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/
|
||||
/******/ return result;
|
||||
/******/ }
|
||||
/******/
|
||||
/******/ // The module cache
|
||||
/******/ var installedModules = {};
|
||||
/******/
|
||||
/******/ // object to store loaded and loading chunks
|
||||
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
|
||||
/******/ // Promise = chunk loading, 0 = chunk loaded
|
||||
/******/ var installedChunks = {
|
||||
/******/ "app-config": 0
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ var deferredModules = [];
|
||||
/******/
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
/******/
|
||||
/******/ // Check if module is in cache
|
||||
/******/ if(installedModules[moduleId]) {
|
||||
/******/ return installedModules[moduleId].exports;
|
||||
/******/ }
|
||||
/******/ // Create a new module (and put it into the cache)
|
||||
/******/ var module = installedModules[moduleId] = {
|
||||
/******/ i: moduleId,
|
||||
/******/ l: false,
|
||||
/******/ exports: {}
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Execute the module function
|
||||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||||
/******/
|
||||
/******/ // Flag the module as loaded
|
||||
/******/ module.l = true;
|
||||
/******/
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
/******/
|
||||
/******/
|
||||
/******/ // expose the modules object (__webpack_modules__)
|
||||
/******/ __webpack_require__.m = modules;
|
||||
/******/
|
||||
/******/ // expose the module cache
|
||||
/******/ __webpack_require__.c = installedModules;
|
||||
/******/
|
||||
/******/ // define getter function for harmony exports
|
||||
/******/ __webpack_require__.d = function(exports, name, getter) {
|
||||
/******/ if(!__webpack_require__.o(exports, name)) {
|
||||
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
|
||||
/******/ }
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // define __esModule on exports
|
||||
/******/ __webpack_require__.r = function(exports) {
|
||||
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||||
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
/******/ }
|
||||
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // create a fake namespace object
|
||||
/******/ // mode & 1: value is a module id, require it
|
||||
/******/ // mode & 2: merge all properties of value into the ns
|
||||
/******/ // mode & 4: return value when already ns object
|
||||
/******/ // mode & 8|1: behave like require
|
||||
/******/ __webpack_require__.t = function(value, mode) {
|
||||
/******/ if(mode & 1) value = __webpack_require__(value);
|
||||
/******/ if(mode & 8) return value;
|
||||
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
|
||||
/******/ var ns = Object.create(null);
|
||||
/******/ __webpack_require__.r(ns);
|
||||
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
|
||||
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
|
||||
/******/ return ns;
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||||
/******/ __webpack_require__.n = function(module) {
|
||||
/******/ var getter = module && module.__esModule ?
|
||||
/******/ function getDefault() { return module['default']; } :
|
||||
/******/ function getModuleExports() { return module; };
|
||||
/******/ __webpack_require__.d(getter, 'a', getter);
|
||||
/******/ return getter;
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Object.prototype.hasOwnProperty.call
|
||||
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
||||
/******/
|
||||
/******/ // __webpack_public_path__
|
||||
/******/ __webpack_require__.p = "/";
|
||||
/******/
|
||||
/******/ var jsonpArray = this["webpackJsonp"] = this["webpackJsonp"] || [];
|
||||
/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
|
||||
/******/ jsonpArray.push = webpackJsonpCallback;
|
||||
/******/ jsonpArray = jsonpArray.slice();
|
||||
/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
|
||||
/******/ var parentJsonpFunction = oldJsonpFunction;
|
||||
/******/
|
||||
/******/
|
||||
/******/ // run deferred modules from other chunks
|
||||
/******/ checkDeferredModules();
|
||||
/******/ })
|
||||
/************************************************************************/
|
||||
/******/ ([]);
|
9067
unpackage/dist/dev/app-plus/app-service.js
vendored
Normal file
6411
unpackage/dist/dev/app-plus/app-view.js
vendored
Normal file
1
unpackage/dist/dev/app-plus/manifest.json
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"@platforms":["android","iPhone","iPad"],"id":"","name":"construction_site_supervision","version":{"name":"1.0.0","code":"100"},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"light","background":"#3a87ee"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"google":{"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\"/>"]},"apple":{},"plugins":{"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}}},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"safearea":{"background":"#ffffff","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"3.5.3","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"tabBar":{"color":"#9a9a9a","selectedColor":"#0f40f5","borderStyle":"rgba(0,0,0,0.4)","backgroundColor":"#ffffff","list":[{"iconPath":"static/tab/monitor.png","selectedIconPath":"static/tab/monitor_actived.png","text":"视频监控","pagePath":"pages/monitor/monitor"},{"text":"考勤管理","pagePath":"pages/attendance/attendance","iconPath":"static/tab/attendance.png","selectedIconPath":"static/tab/attendance_actived.png"},{"text":"项目监管","pagePath":"pages/project_supervision/project_supervision","iconPath":"static/tab/project_supervision.png","selectedIconPath":"static/tab/project_supervision_actived.png"},{"text":"移动巡检","pagePath":"pages/mobile_inspection/mobile_inspection","iconPath":"static/tab/mobile_inspection.png","selectedIconPath":"static/tab/mobile_inspection_actived.png"},{"text":"个人中心","pagePath":"pages/personal/personal","iconPath":"static/tab/personal.png","selectedIconPath":"static/tab/personal_active.png"}],"height":"50px","child":["lauchwebview"],"selected":0},"launch_path":"__uniappview.html"}}
|
BIN
unpackage/dist/dev/app-plus/static/camera_example.png
vendored
Normal file
After Width: | Height: | Size: 564 B |
BIN
unpackage/dist/dev/app-plus/static/inspector/inspector_example.png
vendored
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
unpackage/dist/dev/app-plus/static/logo.png
vendored
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
unpackage/dist/dev/app-plus/static/personal/avatar_sample.png
vendored
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
unpackage/dist/dev/app-plus/static/tab/attendance.png
vendored
Normal file
After Width: | Height: | Size: 539 B |
BIN
unpackage/dist/dev/app-plus/static/tab/attendance_actived.png
vendored
Normal file
After Width: | Height: | Size: 332 B |
BIN
unpackage/dist/dev/app-plus/static/tab/mobile_inspection.png
vendored
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
unpackage/dist/dev/app-plus/static/tab/mobile_inspection_actived.png
vendored
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
unpackage/dist/dev/app-plus/static/tab/monitor.png
vendored
Normal file
After Width: | Height: | Size: 580 B |
BIN
unpackage/dist/dev/app-plus/static/tab/monitor_actived.png
vendored
Normal file
After Width: | Height: | Size: 581 B |
BIN
unpackage/dist/dev/app-plus/static/tab/personal.png
vendored
Normal file
After Width: | Height: | Size: 442 B |
BIN
unpackage/dist/dev/app-plus/static/tab/personal_active.png
vendored
Normal file
After Width: | Height: | Size: 442 B |
BIN
unpackage/dist/dev/app-plus/static/tab/project_supervision.png
vendored
Normal file
After Width: | Height: | Size: 332 B |
BIN
unpackage/dist/dev/app-plus/static/tab/project_supervision_actived.png
vendored
Normal file
After Width: | Height: | Size: 332 B |