设备接口列表对接

This commit is contained in:
仲么了
2023-04-04 08:47:19 +08:00
parent 0325347e06
commit feb7d7b6ed
8 changed files with 184 additions and 169 deletions

View File

@@ -32,17 +32,32 @@
</picker>
</view>
<view class="content device" :style="{ minHeight: minHeight }">
<uni-card :title="item.name" :sub-title="item.project" :extra="item.type" padding="0"
<uni-card :title="item.equipmentName" :sub-title="item.projectName" :extra="item.projectType" padding="0"
v-for="(item, index) in deviceListFilter" :key="index" @click="jump(item)" thumbnail="/static/device.png">
<!-- <text>{{ item.project }} {{ item.type }}</text> -->
</uni-card>
<uni-load-more status="nomore"></uni-load-more>
<Cn-empty v-if="store.empty || deviceListFilter.length == 0"></Cn-empty>
<uni-load-more v-if="deviceListFilter && deviceListFilter.length > 0" :status="store.status"></uni-load-more>
</view>
</view>
</template>
<script>
export default {
data () {
props: {
store: {
type: Object,
default: {}
},
projectList: {
type: Array,
default: []
},
projectType: {
type: Array,
default: []
},
},
data() {
return {
loading: false,
select: {
@@ -51,101 +66,29 @@ export default {
projectType: '',
projectTypeIndex: 0
},
projectType: [
{
text: '全部类型',
value: 0
},
{
text: '监测',
value: 1
},
{
text: '用能',
value: 2
},
{
text: '环境',
value: 3
},
{
text: '安防',
value: 4
},
{
text: '其他',
value: 5
}
],
projectList: [
{
text: '全部项目',
value: 1
},
{
text: 'XXX项目1',
value: 1
},
{
text: 'XXX项目2',
value: 1
},
{
text: 'XXX项目3',
value: 1
},
],
navHeight: 0,
minHeight: '',
deviceList: [
{
name: '设备APF-1',
des: '设备描述1',
type: '监测',
project: 'XXX项目1',
},
{
name: '设备APF-2',
des: '设备描述1',
type: '监测',
project: 'XXX项目1',
},
{
name: '设备APF-3',
des: '设备描述2',
type: '用能',
project: 'XXX项目2'
},
{
name: '设备DVR-1',
des: '设备描述3',
type: '监测',
project: 'XXX项目3'
}
]
minHeight: ''
}
},
computed: {
deviceListFilter () {
return this.deviceList.filter(item => {
if (this.select.projectName) {
return item.project === this.select.projectName
} else if (this.select.projectType) {
return item.type === this.select.projectType
} else {
return true
}
deviceListFilter() {
return this.store.data.filter(item => {
if (this.select.projectName && this.select.projectType) {
return item.project === this.select.projectName && item.type === this.select.projectType
} else
if (this.select.projectName) {
return item.projectId === this.projectList[this.select.projectNameIndex].id
} else if (this.select.projectType) {
return item.projectType === this.projectType[this.select.projectTypeIndex].id
} else {
return true
}
})
}
},
methods: {
submitFeedBack () { uni.navigateTo({ url: '/pages/home/feedback' }) },
projectTypeChange (e) {
// 重置name
this.select.projectName = ''
this.select.projectNameIndex = 0
submitFeedBack() { uni.navigateTo({ url: '/pages/home/feedback' }) },
projectTypeChange(e) {
this.select.projectTypeIndex = e.detail.value
if (e.detail.value === 0) {
this.select.projectType = ''
@@ -155,12 +98,8 @@ export default {
},
projectNameChange (e) {
projectNameChange(e) {
console.log(e);
// 重置type
this.select.projectType = ''
this.select.projectTypeIndex = 0
this.select.projectNameIndex = e.detail.value
if (e.detail.value === 0) {
this.select.projectName = ''
@@ -168,7 +107,7 @@ export default {
}
this.select.projectName = this.projectList[e.detail.value].text
},
registerDevice () {
registerDevice() {
uni.showModal({
title: '提示',
content: '请选择设备类型',
@@ -188,15 +127,15 @@ export default {
}
})
},
registerGateway () {
registerGateway() {
uni.navigateTo({
url: '/pages/gateway/new'
})
},
navMenuClick (index) {
navMenuClick(index) {
this.navMenuActive = index
},
jump (item) {
jump(item) {
if (item.name.indexOf('APF') > -1) {
uni.navigateTo({
url: '/pages/device/APF/detail'
@@ -208,7 +147,7 @@ export default {
}
},
},
mounted () {
mounted() {
setTimeout(() => {
// 获取nav高度
uni.createSelectorQuery().select('.nav').boundingClientRect((rect) => {

View File

@@ -3,15 +3,15 @@
<view slot="body">
<view class="index">
<!-- 运维 -->
<YunWei v-if="userInfo.role == 1" />
<YunWei v-if="userInfo.role == 1" :store="store" :projectList="projectList" :projectType="projectType" />
<!-- 专职 -->
<ZhuanZhi v-if="userInfo.role == 2" />
<ZhuanZhi v-if="userInfo.role == 2" :store="store" :projectList="projectList" :projectType="projectType" />
<!-- 工程 -->
<GongCheng v-if="userInfo.role == 3" />
<GongCheng v-if="userInfo.role == 3" :store="store" :projectList="projectList" :projectType="projectType" />
<!-- 主用户 -->
<ZhuYongHu v-if="userInfo.role == 4" />
<ZhuYongHu v-if="userInfo.role == 4" :store="store" :projectList="projectList" :projectType="projectType" />
<!-- 子用户 -->
<ZiYongHu v-if="userInfo.role == 5" />
<ZiYongHu v-if="userInfo.role == 5" :store="store" :projectList="projectList" :projectType="projectType" />
<YouKe v-if="userInfo.role == 6"> </YouKe>
<uni-fab ref="fab" direction="vertical" horizontal="right" vertical="bottom" :content="content"
@trigger="trigger" />
@@ -26,7 +26,10 @@ import ZhuYongHu from "./comp/indexZhuYongHu.vue";
import ZiYongHu from "./comp/indexZiYongHu.vue";
import ZhuanZhi from "./comp/indexZhuanZhi.vue";
import YouKe from "./comp/indexYouKe.vue";
import list from '../../common/js/list'
import { getProjectList } from '../../common/api/project'
export default {
mixins: [list],
components: {
YunWei,
GongCheng,
@@ -35,16 +38,43 @@ export default {
ZhuanZhi,
YouKe
},
data () {
data() {
return {
loading: false,
loading: true,
userInfo: {
role: 4
}
},
projectList: [],
projectType: [
{
text: '全部类型',
value: 0
},
{
text: '监测',
value: 1
},
{
text: '用能',
value: 2
},
{
text: '环境',
value: 3
},
{
text: '安防',
value: 4
},
{
text: '其他',
value: 5
}
],
}
},
computed: {
content () {
content() {
let arr = [1, 3, 4]
let content = [{
iconPath: '/static/mine3.png',
@@ -70,7 +100,7 @@ export default {
}
},
methods: {
send () {
send() {
uni.createPushMessage({
title: '灿能',
content: '灿能推送',
@@ -83,7 +113,7 @@ export default {
})
},
trigger (e) {
trigger(e) {
if (e.index === 500) {
uni.navigateTo({
url: '/pages/device/new'
@@ -138,12 +168,38 @@ export default {
this.$util.toast(roleName + '角色切换成功')
}
this.$refs.fab.close()
},
init() {
this.store = this.DataSource('/EquipmentDelivery/queryEquipmentByProject')
this.store.reload()
this.store.firstCallBack = () => {
this.loading = false
console.log(this.store);
}
this.getProjectList()
},
getProjectList() {
getProjectList({
currentPage: 1,
pageSize: 9999
}).then(res => {
console.log(res)
this.projectList = [{
text: '全部项目',
value: ''
}, ...res.data.records.map(item => {
return {
text: item.name,
value: item.id
}
})]
})
}
},
onLoad (options) {
this.loading = false
onLoad(options) {
this.init()
},
onShow () {
onShow() {
this.userInfo = uni.getStorageSync(this.$cacheKey.userInfo)
if (!this.userInfo) {
this.userInfo = {