develop #1
182
manifest.json
182
manifest.json
@ -1,93 +1,93 @@
|
|||||||
{
|
{
|
||||||
"name": "上动EMS",
|
"name" : "上动EMS",
|
||||||
"appid": "__UNI__B330617",
|
"appid" : "__UNI__B330617",
|
||||||
"description": "",
|
"description" : "",
|
||||||
"versionName": "1.2.0",
|
"versionName" : "1.2.0",
|
||||||
"versionCode": "100",
|
"versionCode" : "100",
|
||||||
"transformPx": false,
|
"transformPx" : false,
|
||||||
"app-plus": {
|
"app-plus" : {
|
||||||
"usingComponents": true,
|
"usingComponents" : true,
|
||||||
"nvueCompiler": "uni-app",
|
"nvueCompiler" : "uni-app",
|
||||||
"safearea": {
|
"safearea" : {
|
||||||
"background": "#FFFFFF",
|
"background" : "#FFFFFF",
|
||||||
"top": {
|
"top" : {
|
||||||
"offset": "auto"
|
"offset" : "auto"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"splashscreen": {
|
"splashscreen" : {
|
||||||
"alwaysShowBeforeRender": true,
|
"alwaysShowBeforeRender" : true,
|
||||||
"waiting": true,
|
"waiting" : true,
|
||||||
"autoclose": true,
|
"autoclose" : true,
|
||||||
"delay": 0
|
"delay" : 0
|
||||||
},
|
},
|
||||||
"modules": {},
|
"modules" : {},
|
||||||
"distribute": {
|
"distribute" : {
|
||||||
"android": {
|
"android" : {
|
||||||
"permissions": [
|
"permissions" : [
|
||||||
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
|
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
||||||
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
|
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||||
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
||||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"ios": {
|
"ios" : {
|
||||||
"dSYMs": false
|
"dSYMs" : false
|
||||||
},
|
},
|
||||||
"sdkConfigs": {},
|
"sdkConfigs" : {},
|
||||||
"icons": {
|
"icons" : {
|
||||||
"android": {
|
"android" : {
|
||||||
"hdpi": "static/logo.png",
|
"hdpi" : "static/logo.png",
|
||||||
"xhdpi": "static/logo.png",
|
"xhdpi" : "static/logo.png",
|
||||||
"xxhdpi": "static/logo.png",
|
"xxhdpi" : "static/logo.png",
|
||||||
"xxxhdpi": "static/logo.png"
|
"xxxhdpi" : "static/logo.png"
|
||||||
},
|
},
|
||||||
"ios": {
|
"ios" : {
|
||||||
"appstore": ""
|
"appstore" : ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"splashscreen": {
|
"splashscreen" : {
|
||||||
"androidStyle": "common"
|
"androidStyle" : "common"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"quickapp": {},
|
"quickapp" : {},
|
||||||
"mp-weixin": {
|
"mp-weixin" : {
|
||||||
"appid": "wxccd7e2a0911b3397",
|
"appid" : "wxccd7e2a0911b3397",
|
||||||
"setting": {
|
"setting" : {
|
||||||
"urlCheck": false,
|
"urlCheck" : false,
|
||||||
"es6": false,
|
"es6" : false,
|
||||||
"minified": true,
|
"minified" : true,
|
||||||
"postcss": true
|
"postcss" : true
|
||||||
},
|
},
|
||||||
"optimization": {
|
"optimization" : {
|
||||||
"subPackages": true
|
"subPackages" : true
|
||||||
},
|
},
|
||||||
"usingComponents": true
|
"usingComponents" : true
|
||||||
},
|
},
|
||||||
"vueVersion": "2",
|
"vueVersion" : "2",
|
||||||
"h5": {
|
"h5" : {
|
||||||
"template": "static/index.html",
|
"template" : "static/index.html",
|
||||||
"devServer": {
|
"devServer" : {
|
||||||
"port": 9090,
|
"port" : 9090,
|
||||||
"https": false
|
"https" : false
|
||||||
},
|
},
|
||||||
"title": "上动EMS",
|
"title" : "上动EMS",
|
||||||
"router": {
|
"router" : {
|
||||||
"mode": "hash",
|
"mode" : "hash",
|
||||||
"base": "./"
|
"base" : "./"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"locale": "zh-Hans",
|
"locale" : "zh-Hans",
|
||||||
"fallbackLocale": "zh-Hans"
|
"fallbackLocale" : "zh-Hans"
|
||||||
}
|
}
|
||||||
@ -66,6 +66,9 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import {
|
||||||
|
mapGetters
|
||||||
|
} from 'vuex'
|
||||||
import DateRangeSelect from './DateRangeSelect.vue'
|
import DateRangeSelect from './DateRangeSelect.vue'
|
||||||
import {
|
import {
|
||||||
getAllSites,
|
getAllSites,
|
||||||
@ -156,7 +159,6 @@
|
|||||||
children: []
|
children: []
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
siteList: [],
|
|
||||||
siteId: '', //选择的站点ID
|
siteId: '', //选择的站点ID
|
||||||
baseInfo: {}, //站点基本信息
|
baseInfo: {}, //站点基本信息
|
||||||
gridList: [{
|
gridList: [{
|
||||||
@ -193,6 +195,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
...mapGetters(['belongSite']),
|
||||||
siteGirdList() {
|
siteGirdList() {
|
||||||
return this.gridList.filter(i => this.deviceCategoryOptions.includes(i.categoryName))
|
return this.gridList.filter(i => this.deviceCategoryOptions.includes(i.categoryName))
|
||||||
}
|
}
|
||||||
@ -242,14 +245,18 @@
|
|||||||
return {
|
return {
|
||||||
text: item.siteName,
|
text: item.siteName,
|
||||||
value: item.siteId,
|
value: item.siteId,
|
||||||
id: item.id
|
id: item.id,
|
||||||
|
disable: !this.belongSite || this.belongSite.length === 0 || this
|
||||||
|
.belongSite.includes('all') ? false : !this.belongSite.includes(item
|
||||||
|
.siteId)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
// 设置默认展示的站点
|
// 设置默认展示的站点
|
||||||
if (data.length > 0) {
|
this.siteId = this.siteTypeOptions.find(i => i.children && i.children.length > 0)?.children
|
||||||
this.siteId = data[0].siteId
|
.find(
|
||||||
this.updateSiteInfo()
|
item => !item
|
||||||
}
|
.disable)?.value || ''
|
||||||
|
this.siteId && this.updateSiteInfo()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getSiteBaseInfo() {
|
getSiteBaseInfo() {
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
const getters = {
|
const getters = {
|
||||||
token: state => state.user.token,
|
token: state => state.user.token,
|
||||||
avatar: state => state.user.avatar,
|
avatar: state => state.user.avatar,
|
||||||
id: state => state.user.id,
|
id: state => state.user.id,
|
||||||
name: state => state.user.name,
|
name: state => state.user.name,
|
||||||
roles: state => state.user.roles,
|
roles: state => state.user.roles,
|
||||||
permissions: state => state.user.permissions
|
permissions: state => state.user.permissions,
|
||||||
|
belongSite: state => state.user.belongSite
|
||||||
}
|
}
|
||||||
export default getters
|
export default getters
|
||||||
@ -1,110 +1,136 @@
|
|||||||
import config from '@/config'
|
import config from '@/config'
|
||||||
import storage from '@/utils/storage'
|
import storage from '@/utils/storage'
|
||||||
import constant from '@/utils/constant'
|
import constant from '@/utils/constant'
|
||||||
import { isHttp, isEmpty } from "@/utils/validate"
|
import {
|
||||||
import { login, logout, getInfo } from '@/api/login'
|
isHttp,
|
||||||
import { getToken, setToken, removeToken } from '@/utils/auth'
|
isEmpty
|
||||||
|
} from "@/utils/validate"
|
||||||
|
import {
|
||||||
|
login,
|
||||||
|
logout,
|
||||||
|
getInfo
|
||||||
|
} from '@/api/login'
|
||||||
|
import {
|
||||||
|
getToken,
|
||||||
|
setToken,
|
||||||
|
removeToken
|
||||||
|
} from '@/utils/auth'
|
||||||
import defAva from '@/static/images/profile.jpg'
|
import defAva from '@/static/images/profile.jpg'
|
||||||
|
|
||||||
const baseUrl = config.baseUrl
|
const baseUrl = config.baseUrl
|
||||||
|
|
||||||
const user = {
|
const user = {
|
||||||
state: {
|
state: {
|
||||||
token: getToken(),
|
token: getToken(),
|
||||||
id: storage.get(constant.id),
|
id: storage.get(constant.id),
|
||||||
name: storage.get(constant.name),
|
name: storage.get(constant.name),
|
||||||
avatar: storage.get(constant.avatar),
|
avatar: storage.get(constant.avatar),
|
||||||
roles: storage.get(constant.roles),
|
roles: storage.get(constant.roles),
|
||||||
permissions: storage.get(constant.permissions)
|
permissions: storage.get(constant.permissions),
|
||||||
},
|
belongSite: storage.get(constant.belongSite)
|
||||||
|
},
|
||||||
|
|
||||||
mutations: {
|
mutations: {
|
||||||
SET_TOKEN: (state, token) => {
|
SET_TOKEN: (state, token) => {
|
||||||
state.token = token
|
state.token = token
|
||||||
},
|
},
|
||||||
SET_ID: (state, id) => {
|
SET_ID: (state, id) => {
|
||||||
state.id = id
|
state.id = id
|
||||||
storage.set(constant.id, id)
|
storage.set(constant.id, id)
|
||||||
},
|
},
|
||||||
SET_NAME: (state, name) => {
|
SET_NAME: (state, name) => {
|
||||||
state.name = name
|
state.name = name
|
||||||
storage.set(constant.name, name)
|
storage.set(constant.name, name)
|
||||||
},
|
},
|
||||||
SET_AVATAR: (state, avatar) => {
|
SET_AVATAR: (state, avatar) => {
|
||||||
state.avatar = avatar
|
state.avatar = avatar
|
||||||
storage.set(constant.avatar, avatar)
|
storage.set(constant.avatar, avatar)
|
||||||
},
|
},
|
||||||
SET_ROLES: (state, roles) => {
|
SET_ROLES: (state, roles) => {
|
||||||
state.roles = roles
|
state.roles = roles
|
||||||
storage.set(constant.roles, roles)
|
storage.set(constant.roles, roles)
|
||||||
},
|
},
|
||||||
SET_PERMISSIONS: (state, permissions) => {
|
SET_PERMISSIONS: (state, permissions) => {
|
||||||
state.permissions = permissions
|
state.permissions = permissions
|
||||||
storage.set(constant.permissions, permissions)
|
storage.set(constant.permissions, permissions)
|
||||||
}
|
},
|
||||||
},
|
SET_BELONGSITE: (state, belongSite = []) => {
|
||||||
|
state.belongSite = belongSite || []
|
||||||
|
storage.set(constant.belongSite, belongSite || [])
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
actions: {
|
actions: {
|
||||||
// 登录
|
// 登录
|
||||||
Login({ commit }, userInfo) {
|
Login({
|
||||||
const username = userInfo.username.trim()
|
commit
|
||||||
const password = userInfo.password
|
}, userInfo) {
|
||||||
const code = userInfo.code
|
const username = userInfo.username.trim()
|
||||||
const uuid = userInfo.uuid
|
const password = userInfo.password
|
||||||
return new Promise((resolve, reject) => {
|
const code = userInfo.code
|
||||||
login(username, password, code, uuid).then(res => {
|
const uuid = userInfo.uuid
|
||||||
setToken(res.token)
|
return new Promise((resolve, reject) => {
|
||||||
commit('SET_TOKEN', res.token)
|
login(username, password, code, uuid).then(res => {
|
||||||
resolve()
|
setToken(res.token)
|
||||||
}).catch(error => {
|
commit('SET_TOKEN', res.token)
|
||||||
reject(error)
|
resolve()
|
||||||
})
|
}).catch(error => {
|
||||||
})
|
reject(error)
|
||||||
},
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
// 获取用户信息
|
// 获取用户信息
|
||||||
GetInfo({ commit, state }) {
|
GetInfo({
|
||||||
return new Promise((resolve, reject) => {
|
commit,
|
||||||
getInfo().then(res => {
|
state
|
||||||
const user = res.user
|
}) {
|
||||||
let avatar = user.avatar || ""
|
return new Promise((resolve, reject) => {
|
||||||
if (!isHttp(avatar)) {
|
getInfo().then(res => {
|
||||||
avatar = (isEmpty(avatar)) ? defAva : baseUrl + avatar
|
const user = res.user
|
||||||
}
|
const belongSite = user?.belongSite ? JSON.parse(user?.belongSite) || [] : []
|
||||||
const userid = (isEmpty(user) || isEmpty(user.userId)) ? "" : user.userId
|
let avatar = user.avatar || ""
|
||||||
const username = (isEmpty(user) || isEmpty(user.userName)) ? "" : user.userName
|
if (!isHttp(avatar)) {
|
||||||
if (res.roles && res.roles.length > 0) {
|
avatar = (isEmpty(avatar)) ? defAva : baseUrl + avatar
|
||||||
commit('SET_ROLES', res.roles)
|
}
|
||||||
commit('SET_PERMISSIONS', res.permissions)
|
const userid = (isEmpty(user) || isEmpty(user.userId)) ? "" : user.userId
|
||||||
} else {
|
const username = (isEmpty(user) || isEmpty(user.userName)) ? "" : user.userName
|
||||||
commit('SET_ROLES', ['ROLE_DEFAULT'])
|
if (res.roles && res.roles.length > 0) {
|
||||||
}
|
commit('SET_ROLES', res.roles)
|
||||||
commit('SET_ID', userid)
|
commit('SET_PERMISSIONS', res.permissions)
|
||||||
commit('SET_NAME', username)
|
} else {
|
||||||
commit('SET_AVATAR', avatar)
|
commit('SET_ROLES', ['ROLE_DEFAULT'])
|
||||||
resolve(res)
|
}
|
||||||
}).catch(error => {
|
commit('SET_ID', userid)
|
||||||
reject(error)
|
commit('SET_NAME', username)
|
||||||
})
|
commit('SET_AVATAR', avatar)
|
||||||
})
|
commit('SET_BELONGSITE', belongSite)
|
||||||
},
|
resolve(res)
|
||||||
|
}).catch(error => {
|
||||||
|
reject(error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
// 退出系统
|
// 退出系统
|
||||||
LogOut({ commit, state }) {
|
LogOut({
|
||||||
return new Promise((resolve, reject) => {
|
commit,
|
||||||
logout(state.token).then(() => {
|
state
|
||||||
commit('SET_TOKEN', '')
|
}) {
|
||||||
commit('SET_ROLES', [])
|
return new Promise((resolve, reject) => {
|
||||||
commit('SET_PERMISSIONS', [])
|
logout(state.token).then(() => {
|
||||||
removeToken()
|
commit('SET_TOKEN', '')
|
||||||
storage.clean()
|
commit('SET_ROLES', [])
|
||||||
resolve()
|
commit('SET_PERMISSIONS', [])
|
||||||
}).catch(error => {
|
removeToken()
|
||||||
reject(error)
|
storage.clean()
|
||||||
})
|
resolve()
|
||||||
})
|
}).catch(error => {
|
||||||
}
|
reject(error)
|
||||||
}
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default user
|
export default user
|
||||||
Reference in New Issue
Block a user