@ -1 +1,17 @@ |
|||||||
|
###################################################################### |
||||||
|
# Build Tools |
||||||
|
|
||||||
|
/unpackage/* |
||||||
|
/node_modules/* |
||||||
|
|
||||||
|
###################################################################### |
||||||
|
# Development Tools |
||||||
|
|
||||||
|
/.idea/* |
||||||
|
/.vscode/* |
||||||
|
/.hbuilderx/* |
||||||
|
|
||||||
|
package-lock.json |
||||||
|
yarn.lock |
||||||
|
|
||||||
/unpackage/ |
/unpackage/ |
||||||
|
@ -1,12 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<module type="WEB_MODULE" version="4"> |
|
||||||
<component name="NewModuleRootManager"> |
|
||||||
<content url="file://$MODULE_DIR$"> |
|
||||||
<excludeFolder url="file://$MODULE_DIR$/.tmp" /> |
|
||||||
<excludeFolder url="file://$MODULE_DIR$/temp" /> |
|
||||||
<excludeFolder url="file://$MODULE_DIR$/tmp" /> |
|
||||||
</content> |
|
||||||
<orderEntry type="inheritedJdk" /> |
|
||||||
<orderEntry type="sourceFolder" forTests="false" /> |
|
||||||
</component> |
|
||||||
</module> |
|
After Width: | Height: | Size: 112 KiB |
After Width: | Height: | Size: 142 KiB |
After Width: | Height: | Size: 152 KiB |
After Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 95 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 8.6 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 7.0 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 238 KiB |
After Width: | Height: | Size: 139 KiB |
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 201 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 130 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 160 KiB |
After Width: | Height: | Size: 150 KiB |
After Width: | Height: | Size: 124 KiB |
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 109 KiB |
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 78 KiB |
After Width: | Height: | Size: 126 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 176 KiB |
After Width: | Height: | Size: 91 KiB |
After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 208 KiB |
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 97 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 114 KiB |
After Width: | Height: | Size: 116 KiB |
After Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 173 KiB |
After Width: | Height: | Size: 125 KiB |
After Width: | Height: | Size: 125 KiB |
After Width: | Height: | Size: 148 KiB |
After Width: | Height: | Size: 128 KiB |
After Width: | Height: | Size: 82 KiB |
After Width: | Height: | Size: 112 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 248 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 115 KiB |
After Width: | Height: | Size: 91 KiB |
After Width: | Height: | Size: 129 KiB |
After Width: | Height: | Size: 102 KiB |
After Width: | Height: | Size: 85 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 109 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 110 KiB |
After Width: | Height: | Size: 131 KiB |
After Width: | Height: | Size: 62 KiB |
@ -1,75 +1,37 @@ |
|||||||
<script> |
<script> |
||||||
export default { |
import config from './config' |
||||||
onLaunch: function() { |
import store from '@/store' |
||||||
// 静默登录 |
import { getAccessToken } from '@/utils/auth' |
||||||
uni.login({ |
|
||||||
success(res) { |
|
||||||
uni.$u.http.post('/login', { |
|
||||||
code: res.code |
|
||||||
}).then(res => { |
|
||||||
// 获取token |
|
||||||
const token = 'Bearer ' + res.data.data |
|
||||||
// 全局存储令牌 |
|
||||||
// console.log(token); |
|
||||||
uni.$u.vuex('vuex_token', token); |
|
||||||
|
|
||||||
uni.$u.http.setConfig((config) => { |
|
||||||
config.header = { |
|
||||||
authorization: token |
|
||||||
}; |
|
||||||
return config |
|
||||||
}) |
|
||||||
// 获取用户接口数据 |
|
||||||
uni.$u.http.get('/getInfo', {}).then(res => { |
|
||||||
console.log(res.data); |
|
||||||
let user = { |
|
||||||
roles: res.data.roles, |
|
||||||
permissions: res.data.permissions, |
|
||||||
// avatar: res.data.user.avatar, |
|
||||||
avatar: 'https://jzhome.cn/static/gongan.png', |
|
||||||
realName: res.data.user.realName, |
|
||||||
sex: res.data.user.sex, |
|
||||||
phonenumber: res.data.user.phonenumber, |
|
||||||
deptName: res.data.user.deptName, |
|
||||||
userType: res.data.user.userType, |
|
||||||
} |
|
||||||
// 全局存储用户数据 |
|
||||||
uni.$u.vuex('vuex_user', user); |
|
||||||
|
|
||||||
// 跳转到局内注册 |
export default { |
||||||
// if (user.userType !== "00") { |
onLaunch: function () { |
||||||
// uni.$u.route('/pages/index/off_reg'); |
this.initApp() |
||||||
// } |
}, |
||||||
|
methods: { |
||||||
}).catch(err => { |
// 初始化应用 |
||||||
console.log('您没有访问权限'); |
async initApp() { |
||||||
}) |
await uni.hideTabBar() |
||||||
// 获取部门接口数据 |
uni.hideTabBar({ |
||||||
uni.$u.http.get('/dept/list', {}).then(res => { |
animation: false |
||||||
uni.$u.vuex('vuex_dept', res.data.data); |
}) |
||||||
}) |
// 初始化应用配置 |
||||||
|
this.initConfig() |
||||||
}).catch(err => { |
// 检查用户登录状态 |
||||||
console.log('访问失败'); |
// this.checkLogin() |
||||||
}) |
|
||||||
|
|
||||||
} |
|
||||||
}); |
|
||||||
}, |
}, |
||||||
onShow: function() { |
initConfig() { |
||||||
console.log('App Show') |
this.globalData.config = config |
||||||
}, |
}, |
||||||
onHide: function() { |
checkLogin() { |
||||||
console.log('App Hide') |
if (!getAccessToken()) { |
||||||
|
this.$tab.reLaunch('/pages/login') |
||||||
|
} |
||||||
} |
} |
||||||
} |
} |
||||||
|
} |
||||||
</script> |
</script> |
||||||
|
|
||||||
<style lang="scss"> |
<style lang="scss"> |
||||||
/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */ |
@import '@/uni_modules/windi-css-uniapp/index.scss'; |
||||||
@import "@/uni_modules/uview-ui/index.scss"; |
@import '@/static/scss/index.scss'; |
||||||
|
</style> |
||||||
page { |
|
||||||
background-color: #F9F9F9; |
|
||||||
} |
|
||||||
</style> |
|
||||||
|
@ -0,0 +1,29 @@ |
|||||||
|
import request from '@/utils/request' |
||||||
|
|
||||||
|
// 登录方法
|
||||||
|
export function login(data) { |
||||||
|
return request({ |
||||||
|
url: '/system/auth/app_login', |
||||||
|
headers: { |
||||||
|
isToken: false |
||||||
|
}, |
||||||
|
'method': 'POST', |
||||||
|
'data': data |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
// 获取用户详细信息
|
||||||
|
export function getInfo() { |
||||||
|
return request({ |
||||||
|
url: '/system/auth/get-permission-info', |
||||||
|
'method': 'GET' |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
// 退出方法
|
||||||
|
export function logout() { |
||||||
|
return request({ |
||||||
|
url: '/system/auth/logout', |
||||||
|
'method': 'POST' |
||||||
|
}) |
||||||
|
} |
@ -0,0 +1,42 @@ |
|||||||
|
import upload from '@/utils/upload' |
||||||
|
import request from '@/utils/request' |
||||||
|
|
||||||
|
// 用户密码重置
|
||||||
|
export function updateUserPwd(oldPassword, newPassword) { |
||||||
|
const data = { |
||||||
|
oldPassword, |
||||||
|
newPassword |
||||||
|
} |
||||||
|
return request({ |
||||||
|
url: '/system/user/profile/update-password', |
||||||
|
method: 'PUT', |
||||||
|
params: data |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
// 查询用户个人信息
|
||||||
|
export function getUserProfile() { |
||||||
|
return request({ |
||||||
|
url: '/system/user/profile/get', |
||||||
|
method: 'GET' |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
// 修改用户个人信息
|
||||||
|
export function updateUserProfile(data) { |
||||||
|
return request({ |
||||||
|
url: '/system/user/profile/update', |
||||||
|
method: 'PUT', |
||||||
|
data: data |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
// 用户头像上传
|
||||||
|
export function uploadAvatar(data) { |
||||||
|
return upload({ |
||||||
|
url: '/system/user/profile/update-avatar', |
||||||
|
method: 'PUT', |
||||||
|
name: data.name, |
||||||
|
filePath: data.filePath |
||||||
|
}) |
||||||
|
} |
@ -0,0 +1,52 @@ |
|||||||
|
<template> |
||||||
|
<view class="container"> |
||||||
|
<s-header :title="title" :isTab="isTab" :isCustom="isCustom"> |
||||||
|
<slot name="header"></slot> |
||||||
|
</s-header> |
||||||
|
<view class="view"> |
||||||
|
<view class="inner"> |
||||||
|
<slot></slot> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<s-tabber v-if="isTab" :selected="selected" /> |
||||||
|
</view> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
export default { |
||||||
|
name: 'cs-page', |
||||||
|
props: { |
||||||
|
selected: Number, |
||||||
|
title: String, |
||||||
|
isTab: { |
||||||
|
type: Boolean, |
||||||
|
default: false |
||||||
|
}, |
||||||
|
isCustom: { |
||||||
|
type: Boolean, |
||||||
|
default: false |
||||||
|
} |
||||||
|
}, |
||||||
|
data() { |
||||||
|
return {} |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
.container { |
||||||
|
display: grid; |
||||||
|
grid-template-columns: 1fr; |
||||||
|
grid-template-rows: auto 1fr auto; |
||||||
|
height: 100vh; |
||||||
|
width: 100vw; |
||||||
|
display: grid; |
||||||
|
.view { |
||||||
|
position: relative; |
||||||
|
.inner { |
||||||
|
position: absolute; |
||||||
|
inset: 0; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,20 @@ |
|||||||
|
// 应用全局配置
|
||||||
|
module.exports = { |
||||||
|
// baseUrl: 'http://api-dashboard.yudao.iocoder.cn',
|
||||||
|
baseUrl: 'http://188.188.5.98:48080', |
||||||
|
baseApi: '/admin-api', |
||||||
|
// 应用信息
|
||||||
|
appInfo: { |
||||||
|
// 应用名称
|
||||||
|
name: "nature-secure-miniapp", |
||||||
|
// 应用版本
|
||||||
|
version: "1.0.0", |
||||||
|
// 应用logo
|
||||||
|
logo: "/static/logo.png", |
||||||
|
// 官方网站
|
||||||
|
site_url: "", |
||||||
|
// 政策协议
|
||||||
|
agreements: [ |
||||||
|
] |
||||||
|
} |
||||||
|
} |
@ -1,20 +0,0 @@ |
|||||||
<!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> |
|
@ -1,49 +1,24 @@ |
|||||||
import App from './App' |
|
||||||
|
|
||||||
// #ifndef VUE3
|
|
||||||
import Vue from 'vue' |
import Vue from 'vue' |
||||||
|
import App from './App' |
||||||
|
import store from './store' // store
|
||||||
|
import plugins from './plugins' // plugins
|
||||||
|
import './permission' // permission
|
||||||
|
|
||||||
// 引入uView
|
// 引入uView
|
||||||
import uView from '@/uni_modules/uview-ui' |
import uView from '@/uni_modules/uview-ui' |
||||||
Vue.use(uView) |
|
||||||
|
|
||||||
// 全局配置根域名
|
// 挂载全局对象
|
||||||
uni.$u.http.setConfig((config) => { |
Vue.use(plugins).use(uView) |
||||||
/* config 为默认全局配置*/ |
|
||||||
config.baseURL = `http://192.168.2.101:8080/api/app`; |
|
||||||
return config |
|
||||||
}) |
|
||||||
|
|
||||||
// Vuex
|
|
||||||
import store from '@/store'; |
|
||||||
import vuexStore from '@/store/$u.mixin.js'; |
|
||||||
Vue.mixin(vuexStore); |
|
||||||
|
|
||||||
import './uni.promisify.adaptor' |
|
||||||
Vue.config.productionTip = false |
Vue.config.productionTip = false |
||||||
|
|
||||||
|
// 挂载vuex
|
||||||
|
Vue.prototype.$store = store |
||||||
|
|
||||||
App.mpType = 'app' |
App.mpType = 'app' |
||||||
|
|
||||||
const app = new Vue({ |
const app = new Vue({ |
||||||
store, |
|
||||||
...App |
...App |
||||||
}) |
}) |
||||||
app.$mount() |
|
||||||
// #endif
|
|
||||||
|
|
||||||
|
|
||||||
// #ifdef VUE3
|
|
||||||
import { |
|
||||||
createSSRApp |
|
||||||
} from 'vue' |
|
||||||
|
|
||||||
// 引入uView主JS库
|
|
||||||
import uView from '@/uni_modules/uview-ui' |
|
||||||
Vue.use(uView) |
|
||||||
|
|
||||||
export function createApp() { |
app.$mount() |
||||||
const app = createSSRApp(App) |
|
||||||
return { |
|
||||||
app |
|
||||||
} |
|
||||||
} |
|
||||||
// #endif
|
|
@ -1,72 +1,69 @@ |
|||||||
{ |
{ |
||||||
"name" : "智慧环保", |
"name": "智慧生态", |
||||||
"appid" : "__UNI__20C9AD1", |
"appid": "__UNI__25A9D80", |
||||||
"description" : "智慧环保", |
"description": "", |
||||||
"versionName" : "1.0.0", |
"versionName": "1.0.0", |
||||||
"versionCode" : "100", |
"versionCode": "100", |
||||||
"transformPx" : false, |
"transformPx": false, |
||||||
/* 5+App特有相关 */ |
"app-plus": { |
||||||
"app-plus" : { |
"usingComponents": true, |
||||||
"usingComponents" : true, |
"nvueCompiler": "uni-app", |
||||||
"nvueStyleCompiler" : "uni-app", |
"splashscreen": { |
||||||
"compilerVersion" : 3, |
"alwaysShowBeforeRender": true, |
||||||
"splashscreen" : { |
"waiting": true, |
||||||
"alwaysShowBeforeRender" : true, |
"autoclose": true, |
||||||
"waiting" : true, |
"delay": 0 |
||||||
"autoclose" : true, |
}, |
||||||
"delay" : 0 |
"modules": {}, |
||||||
}, |
"distribute": { |
||||||
/* 模块配置 */ |
"android": { |
||||||
"modules" : {}, |
"permissions": [ |
||||||
/* 应用发布信息 */ |
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", |
||||||
"distribute" : { |
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", |
||||||
/* android打包配置 */ |
"<uses-permission android:name=\"android.permission.VIBRATE\"/>", |
||||||
"android" : { |
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>", |
||||||
"permissions" : [ |
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", |
||||||
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", |
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", |
||||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", |
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", |
||||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>", |
"<uses-permission android:name=\"android.permission.CAMERA\"/>", |
||||||
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>", |
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", |
||||||
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", |
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>", |
||||||
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", |
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", |
||||||
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", |
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", |
||||||
"<uses-permission android:name=\"android.permission.CAMERA\"/>", |
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", |
||||||
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", |
"<uses-feature android:name=\"android.hardware.camera\"/>", |
||||||
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>", |
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" |
||||||
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", |
] |
||||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", |
}, |
||||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", |
"ios": {}, |
||||||
"<uses-feature android:name=\"android.hardware.camera\"/>", |
"sdkConfigs": {} |
||||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" |
} |
||||||
] |
}, |
||||||
}, |
"quickapp": {}, |
||||||
/* ios打包配置 */ |
"mp-weixin": { |
||||||
"ios" : {}, |
"appid": "wx6a07542e99f7fc98", |
||||||
/* SDK配置 */ |
"setting": { |
||||||
"sdkConfigs" : {} |
"urlCheck": false, |
||||||
} |
"es6": true, |
||||||
}, |
"minified": true, |
||||||
/* 快应用特有相关 */ |
"postcss": true |
||||||
"quickapp" : {}, |
}, |
||||||
/* 小程序特有相关 */ |
"optimization": { |
||||||
"mp-weixin" : { |
"subPackages": true |
||||||
"appid" : "wx6a07542e99f7fc98", |
}, |
||||||
"setting" : { |
"usingComponents": true |
||||||
"urlCheck" : false |
}, |
||||||
}, |
"vueVersion": "2", |
||||||
"usingComponents" : true |
"h5": { |
||||||
}, |
"template": "static/index.html", |
||||||
"mp-alipay" : { |
"devServer": { |
||||||
"usingComponents" : true |
"port": 9090, |
||||||
}, |
"https": false |
||||||
"mp-baidu" : { |
}, |
||||||
"usingComponents" : true |
"title": "Yudao-App", |
||||||
}, |
"router": { |
||||||
"mp-toutiao" : { |
"mode": "hash", |
||||||
"usingComponents" : true |
"base": "./" |
||||||
}, |
} |
||||||
"uniStatistics" : { |
} |
||||||
"enable" : false |
} |
||||||
}, |
|
||||||
"vueVersion" : "2" |
|
||||||
} |
|
@ -0,0 +1,9 @@ |
|||||||
|
{ |
||||||
|
"dependencies": { |
||||||
|
"crypto-js": "^4.0.0" |
||||||
|
}, |
||||||
|
"devDependencies": { |
||||||
|
"sass": "^1.83.4", |
||||||
|
"sass-loader": "^16.0.4" |
||||||
|
} |
||||||
|
} |
@ -1,134 +1,73 @@ |
|||||||
{ |
{ |
||||||
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages |
|
||||||
{ |
"pages": [{ |
||||||
"path": "pages/index/index", |
"path": "pages/index", |
||||||
"style": { |
|
||||||
"navigationBarTitleText": "智慧环保" |
|
||||||
} |
|
||||||
}, |
|
||||||
{ |
|
||||||
"path": "pages/index/off_reg", |
|
||||||
"style": { |
|
||||||
"navigationBarTitleText": "部门申请" |
|
||||||
} |
|
||||||
}, |
|
||||||
{ |
|
||||||
"path": "pages/index/ent_reg", |
|
||||||
"style": { |
|
||||||
"navigationBarTitleText": "企业注册" |
|
||||||
} |
|
||||||
}, |
|
||||||
{ |
|
||||||
"path": "pages/task/index", |
|
||||||
"style": { |
|
||||||
"navigationBarTitleText": "执法任务" |
|
||||||
} |
|
||||||
}, |
|
||||||
{ |
|
||||||
"path": "pages/task/list", |
|
||||||
"style": { |
"style": { |
||||||
"navigationBarTitleText": "任务列表" |
"navigationBarTitleText": "首页" |
||||||
} |
} |
||||||
}, |
}, { |
||||||
{ |
"path": "pages/login", |
||||||
"path": "pages/task/item", |
|
||||||
"style": { |
"style": { |
||||||
"navigationBarTitleText": "任务详情" |
"navigationBarTitleText": "登录" |
||||||
} |
} |
||||||
}, |
}, |
||||||
{ |
{ |
||||||
"path": "pages/ent/index", |
"path": "pages/enterprise", |
||||||
"style": { |
"style": { |
||||||
"navigationBarTitleText": "环保企业" |
"navigationBarTitleText": "企业" |
||||||
} |
} |
||||||
}, |
}, |
||||||
{ |
{ |
||||||
"path": "pages/ent/info", |
"path": "pages/chat", |
||||||
"style": { |
"style": { |
||||||
"navigationBarTitleText": "企业详情" |
"navigationBarTitleText": "聊天" |
||||||
} |
} |
||||||
}, |
}, |
||||||
{ |
{ |
||||||
"path": "pages/public/sug", |
"path": "pages/task", |
||||||
"style": { |
"style": { |
||||||
"navigationBarTitleText": "投诉建议" |
"navigationBarTitleText": "任务" |
||||||
} |
} |
||||||
}, |
}, |
||||||
{ |
{ |
||||||
"path": "pages/user/index", |
"path": "pages/owner", |
||||||
"style": { |
"style": { |
||||||
"navigationBarTitleText": "个人中心" |
"navigationBarTitleText": "个人中心" |
||||||
} |
} |
||||||
}, |
|
||||||
{ |
|
||||||
"path": "pages/user/edit", |
|
||||||
"style": { |
|
||||||
"navigationBarTitleText": "编辑资料" |
|
||||||
} |
|
||||||
}, |
|
||||||
{ |
|
||||||
"path": "pages/user/notif", |
|
||||||
"style": { |
|
||||||
"navigationBarTitleText": "消息通知" |
|
||||||
} |
|
||||||
}, |
|
||||||
{ |
|
||||||
"path": "pages/user/law", |
|
||||||
"style": { |
|
||||||
"navigationBarTitleText": "政策法规" |
|
||||||
} |
|
||||||
}, |
|
||||||
{ |
|
||||||
"path": "pages/user/task", |
|
||||||
"style": { |
|
||||||
"navigationBarTitleText": "任务记录" |
|
||||||
} |
|
||||||
}, |
|
||||||
{ |
|
||||||
"path": "pages/AI/index", |
|
||||||
"style": { |
|
||||||
"navigationBarTitleText": "AI" |
|
||||||
} |
|
||||||
} |
} |
||||||
], |
], |
||||||
"globalStyle": { |
"easycom": { |
||||||
"navigationBarTextStyle": "black", |
"autoscan": true, |
||||||
"navigationBarTitleText": "智慧环保", |
"custom": { |
||||||
"navigationBarBackgroundColor": "#FFF", |
"^cs-(.*)": "@/components/cs-$1/index.vue", // 匹配components目录内的vue文件 |
||||||
"backgroundColor": "#FFF" |
"^s-(.*)": "@/uni_modules/s-components/s-$1/index.vue" // 匹配components目录内的vue文件 |
||||||
|
} |
||||||
}, |
}, |
||||||
|
"subPackages": [{ |
||||||
"uniIdRouter": {}, |
"root": "sub", |
||||||
|
"pages": [{ |
||||||
|
"path": "owner/edit" |
||||||
|
}] |
||||||
|
}], |
||||||
"tabBar": { |
"tabBar": { |
||||||
"color": "#7A7E83", |
|
||||||
"selectedColor": "#3cc51f", |
|
||||||
"borderStyle": "black", |
|
||||||
"backgroundColor": "#ffffff", |
|
||||||
"list": [{ |
"list": [{ |
||||||
"pagePath": "pages/index/index", |
"pagePath": "pages/index" |
||||||
"iconPath": "/static/logo.png", |
}, |
||||||
"selectedIconPath": "/static/logo.png", |
{ |
||||||
"text": "首页" |
"pagePath": "pages/task" |
||||||
}, { |
}, |
||||||
"pagePath": "pages/task/index", |
{ |
||||||
"iconPath": "/static/logo.png", |
"pagePath": "pages/chat" |
||||||
"selectedIconPath": "/static/logo.png", |
}, |
||||||
"text": "任务" |
{ |
||||||
}, { |
"pagePath": "pages/enterprise" |
||||||
"pagePath": "pages/AI/index", |
}, |
||||||
"iconPath": "/static/logo.png", |
{ |
||||||
"selectedIconPath": "/static/logo.png" |
"pagePath": "pages/owner" |
||||||
}, { |
} |
||||||
"pagePath": "pages/ent/index", |
] |
||||||
"iconPath": "/static/logo.png", |
}, |
||||||
"selectedIconPath": "/static/logo.png", |
"globalStyle": { |
||||||
"text": "企业" |
"navigationStyle": "custom" |
||||||
}, { |
|
||||||
"pagePath": "pages/user/index", |
|
||||||
"iconPath": "/static/logo.png", |
|
||||||
"selectedIconPath": "/static/logo.png", |
|
||||||
"text": "我的" |
|
||||||
}] |
|
||||||
} |
} |
||||||
} |
} |
@ -1,19 +0,0 @@ |
|||||||
<template> |
|
||||||
<view> |
|
||||||
AI |
|
||||||
</view> |
|
||||||
</template> |
|
||||||
|
|
||||||
<script> |
|
||||||
export default { |
|
||||||
data() { |
|
||||||
return { |
|
||||||
|
|
||||||
}; |
|
||||||
} |
|
||||||
} |
|
||||||
</script> |
|
||||||
|
|
||||||
<style lang="scss"> |
|
||||||
|
|
||||||
</style> |
|
@ -0,0 +1,13 @@ |
|||||||
|
<template> |
||||||
|
<cs-page :selected="2" isTab></cs-page> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
export default { |
||||||
|
data() { |
||||||
|
return {} |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss"></style> |
@ -1,108 +0,0 @@ |
|||||||
<template> |
|
||||||
<view class="wrap"> |
|
||||||
<!-- 吸顶 --> |
|
||||||
<u-sticky bgColor="#fff"> |
|
||||||
<!-- 搜索 --> |
|
||||||
<u-search placeholder="日照香炉生紫烟" v-model="keyword"></u-search> |
|
||||||
<!-- 筛选 --> |
|
||||||
<view class=""> |
|
||||||
筛选 |
|
||||||
</view> |
|
||||||
</u-sticky> |
|
||||||
|
|
||||||
<!-- 列表 --> |
|
||||||
<view class="list"> |
|
||||||
<u-list @scrolltolower="scrolltolower"> |
|
||||||
<u-list-item v-for="(item, index) in indexList" :key="index" @tap="toInfo"> |
|
||||||
<u-cell :title="`列表长度-${index + 1}`"> |
|
||||||
<u-avatar slot="icon" shape="square" size="35" :src="item.url" |
|
||||||
customStyle="margin: -3px 5px -3px 0"></u-avatar> |
|
||||||
</u-cell> |
|
||||||
</u-list-item> |
|
||||||
</u-list> |
|
||||||
</view> |
|
||||||
<!-- <view class="list"> |
|
||||||
<view class="item" v-for="(item, index) in list" :key="index"> |
|
||||||
{{'第' + item + '条数据'}} |
|
||||||
</view> |
|
||||||
|
|
||||||
<u-loadmore :status="status" /> |
|
||||||
</view> --> |
|
||||||
</view> |
|
||||||
</template> |
|
||||||
|
|
||||||
<script> |
|
||||||
export default { |
|
||||||
data() { |
|
||||||
return { |
|
||||||
// 搜索 |
|
||||||
keyword: '遥看瀑布挂前川', |
|
||||||
// 筛选 |
|
||||||
|
|
||||||
// 列表 |
|
||||||
indexList: [], |
|
||||||
urls: [ |
|
||||||
"https://xxx.com/album/1.jpg", |
|
||||||
"https://xxx.com/album/2.jpg", |
|
||||||
"https://xxx.com/album/3.jpg", |
|
||||||
"https://xxx.com/album/4.jpg", |
|
||||||
"https://xxx.com/album/5.jpg", |
|
||||||
"https://xxx.com/album/6.jpg", |
|
||||||
"https://xxx.com/album/7.jpg", |
|
||||||
"https://xxx.com/album/8.jpg", |
|
||||||
"https://xxx.com/album/9.jpg", |
|
||||||
"https://xxx.com/album/10.jpg", |
|
||||||
], |
|
||||||
// 加载更多 |
|
||||||
status: 'loadmore', |
|
||||||
list: 15, |
|
||||||
page: 0 |
|
||||||
}; |
|
||||||
}, |
|
||||||
onLoad() { |
|
||||||
this.loadmore(); |
|
||||||
}, |
|
||||||
methods: { |
|
||||||
toInfo() { |
|
||||||
uni.$u.route('/pages/ent/info'); |
|
||||||
}, |
|
||||||
scrolltolower() { |
|
||||||
this.loadmore(); |
|
||||||
}, |
|
||||||
loadmore() { |
|
||||||
for (let i = 0; i < 30; i++) { |
|
||||||
this.indexList.push({ |
|
||||||
url: this.urls[uni.$u.random(0, this.urls.length - 1)], |
|
||||||
}); |
|
||||||
} |
|
||||||
}, |
|
||||||
}, |
|
||||||
// 触底 |
|
||||||
// onReachBottom() { |
|
||||||
// if (this.page >= 3) return; |
|
||||||
// this.status = 'loading'; |
|
||||||
// this.page = ++this.page; |
|
||||||
// setTimeout(() => { |
|
||||||
// this.list += 10; |
|
||||||
// if (this.page >= 3) this.status = 'nomore'; |
|
||||||
// else this.status = 'loading'; |
|
||||||
// }, 2000) |
|
||||||
// }, |
|
||||||
} |
|
||||||
</script> |
|
||||||
|
|
||||||
<style lang="scss"> |
|
||||||
.wrap { |
|
||||||
background-color: #F9F9F9; |
|
||||||
min-height: 100vh; |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.list { |
|
||||||
display: flex; |
|
||||||
flex-direction: column; |
|
||||||
gap: 24rpx; |
|
||||||
padding: 24rpx; |
|
||||||
} |
|
||||||
} |
|
||||||
</style> |
|
@ -1,71 +0,0 @@ |
|||||||
<template> |
|
||||||
<view class="wrap"> |
|
||||||
|
|
||||||
<view class=""> |
|
||||||
基本信息 |
|
||||||
</view> |
|
||||||
<view class=""> |
|
||||||
环保信息 |
|
||||||
</view> |
|
||||||
<view class=""> |
|
||||||
执法信息 |
|
||||||
</view> |
|
||||||
|
|
||||||
================================= |
|
||||||
<view> |
|
||||||
<u-row> |
|
||||||
<u-col span="6"> |
|
||||||
<view>义县某某环保企业名称</view> |
|
||||||
</u-col> |
|
||||||
<u-col span="6"> |
|
||||||
<view>危废</view> |
|
||||||
</u-col> |
|
||||||
</u-row> |
|
||||||
<u-row> |
|
||||||
<view>企业地址 某某区工业产业园5-182号</view> |
|
||||||
</u-row> |
|
||||||
<u-row> |
|
||||||
<view>企业简介企业简介企业简介企业简介企业简介企业简介企业简介企业简介企业简介企业简介企业简介企业简介企业简介企业简介企业简介企业简介企业简介企业简介企业简介企业简介企业简介</view> |
|
||||||
</u-row> |
|
||||||
<u-row gutter="24rpx"> |
|
||||||
<u-col span="4"> |
|
||||||
<u--image src="/static/logo.png" mode="widthFix"></u--image> |
|
||||||
</u-col> |
|
||||||
<u-col span="4"> |
|
||||||
<u--image src="/static/logo.png" mode="widthFix"></u--image> |
|
||||||
</u-col> |
|
||||||
<u-col span="4"> |
|
||||||
|
|
||||||
</u-col> |
|
||||||
|
|
||||||
</u-row> |
|
||||||
<u--image src="/static/logo.png" mode="widthFix"></u--image> |
|
||||||
<u-row> |
|
||||||
<u-col span="6"> |
|
||||||
<view>环保负责/张某某</view> |
|
||||||
</u-col> |
|
||||||
<u-col span="6"> |
|
||||||
<view>成立时间/2017年10月24日</view> |
|
||||||
</u-col> |
|
||||||
</u-row> |
|
||||||
</view> |
|
||||||
</view> |
|
||||||
</template> |
|
||||||
|
|
||||||
<script> |
|
||||||
export default { |
|
||||||
data() { |
|
||||||
return { |
|
||||||
|
|
||||||
}; |
|
||||||
} |
|
||||||
} |
|
||||||
</script> |
|
||||||
|
|
||||||
<style lang="scss"> |
|
||||||
.wrap { |
|
||||||
background-color: #F9F9F9; |
|
||||||
min-height: 100vh; |
|
||||||
padding: 24rpx; |
|
||||||
} |
|
||||||
</style> |
|