设备接口列表对接
This commit is contained in:
10
common/api/device.js
Normal file
10
common/api/device.js
Normal file
@@ -0,0 +1,10 @@
|
||||
import request from '../js/request';
|
||||
import config from '../js/config';
|
||||
|
||||
export function getDeviceList(params) {
|
||||
return request({
|
||||
url: '/EquipmentDelivery/queryEquipmentByProject',
|
||||
method: 'post',
|
||||
data: params,
|
||||
});
|
||||
}
|
||||
@@ -234,6 +234,7 @@ page {
|
||||
/deep/ .uni-forms-item:last-of-type {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.status-point-success {
|
||||
|
||||
@@ -6,7 +6,7 @@ export default {
|
||||
};
|
||||
},
|
||||
onReachBottom() {
|
||||
if (this.store.status != "noMore") {
|
||||
if (this.store.status != 'noMore') {
|
||||
this.store.next && this.store.next();
|
||||
}
|
||||
},
|
||||
@@ -20,11 +20,11 @@ export default {
|
||||
var me = this;
|
||||
return {
|
||||
data: [],
|
||||
status: "more",
|
||||
status: 'more',
|
||||
empty: false,
|
||||
total: 0,
|
||||
header: {
|
||||
"Content-Type": "application/json;charset=UTF-8",
|
||||
'Content-Type': 'application/json;charset=UTF-8',
|
||||
},
|
||||
params: {
|
||||
currentPage: 1,
|
||||
@@ -32,7 +32,7 @@ export default {
|
||||
},
|
||||
reload() {
|
||||
this.data = [];
|
||||
this.status = "loading";
|
||||
this.status = 'loading';
|
||||
this.empty = false;
|
||||
this.params.currentPage = 1;
|
||||
this.next();
|
||||
@@ -45,23 +45,26 @@ export default {
|
||||
url: url,
|
||||
data: this.params,
|
||||
header: this.header,
|
||||
method: "POST",
|
||||
method: 'POST',
|
||||
}).then((res) => {
|
||||
console.warn(res);
|
||||
let resultData = res.rows || res.data?.list || res.data?.records || [];
|
||||
let resultData =
|
||||
res.data?.list || res.data?.records || [];
|
||||
if (this.params.currentPage == 1) {
|
||||
this.data = resultData;
|
||||
if (resultData.length == 0 || resultData == 0) {
|
||||
this.empty = true;
|
||||
} else if (resultData.length < this.params.pageSize) {
|
||||
this.status = "noMore";
|
||||
} else if (
|
||||
resultData.length < this.params.pageSize
|
||||
) {
|
||||
this.status = 'noMore';
|
||||
} else if (res.total == resultData.length) {
|
||||
this.status = "noMore";
|
||||
this.status = 'noMore';
|
||||
}
|
||||
} else {
|
||||
this.data.push(...resultData);
|
||||
if (resultData.length < this.params.pageSize) {
|
||||
this.status = "noMore";
|
||||
this.status = 'noMore';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,61 +1,67 @@
|
||||
|
||||
import config from "./config";
|
||||
let arr = []
|
||||
import config from './config';
|
||||
let arr = [];
|
||||
export default (options = {}) => {
|
||||
if (options.data == undefined) {
|
||||
options.data = {}
|
||||
options.data = {};
|
||||
}
|
||||
// 防止接口重复点击
|
||||
if (arr.indexOf(options.url) === -1) {
|
||||
arr.push(options.url)
|
||||
arr.push(options.url);
|
||||
} else {
|
||||
return new Promise((resolve, reject) => {
|
||||
reject({
|
||||
code: -1,
|
||||
msg: '请勿重复提交'
|
||||
})
|
||||
})
|
||||
msg: '请勿重复提交',
|
||||
});
|
||||
});
|
||||
}
|
||||
return new Promise((reslove, reject) => {
|
||||
uni.request({
|
||||
url: options.url.indexOf('http') === -1 ? config.domain + options.url : options.url,
|
||||
url:
|
||||
options.url.indexOf('http') === -1
|
||||
? config.domain + options.url
|
||||
: options.url,
|
||||
data: {
|
||||
...options.data,
|
||||
},
|
||||
header: {
|
||||
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
||||
"Authorization":"12",
|
||||
...options.header
|
||||
'Content-Type': 'application/json;charset=UTF-8',
|
||||
// "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
||||
Authorization: '12',
|
||||
...options.header,
|
||||
},
|
||||
method: options.method || 'GET',
|
||||
success: async (res) => {
|
||||
console.log(res);
|
||||
if (arr.indexOf(options.url) > -1) {
|
||||
arr.splice(arr.indexOf(options.url), 1)
|
||||
arr.splice(arr.indexOf(options.url), 1);
|
||||
}
|
||||
if (res.data.resultCode !== 10000 && res.data.code !== 'A0000' ) {
|
||||
errHandler(res.data)
|
||||
reject(res.data)
|
||||
if (
|
||||
res.data.resultCode !== 10000 &&
|
||||
res.data.code !== 'A0000'
|
||||
) {
|
||||
errHandler(res.data);
|
||||
reject(res.data);
|
||||
} else {
|
||||
reslove(res.data)
|
||||
reslove(res.data);
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
if (arr.indexOf(options.url) > -1) {
|
||||
arr.splice(arr.indexOf(options.url), 1)
|
||||
arr.splice(arr.indexOf(options.url), 1);
|
||||
}
|
||||
reject(err)
|
||||
reject(err);
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: '网络异常,请稍后再试',
|
||||
})
|
||||
});
|
||||
uni.reLaunch({
|
||||
url: '/pages/user/login',
|
||||
});
|
||||
},
|
||||
})
|
||||
})
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 错误处理
|
||||
@@ -68,13 +74,13 @@ function errHandler (res) {
|
||||
uni.removeStorageSync('Cookie');
|
||||
uni.clearStorageSync();
|
||||
// #endif
|
||||
uni.reLaunch({ url: '/pages/user/login' })
|
||||
break
|
||||
uni.reLaunch({ url: '/pages/user/login' });
|
||||
break;
|
||||
default:
|
||||
uni.showToast({
|
||||
title: res.msg || '服务端未知错误',
|
||||
duration: 2000,
|
||||
icon: 'none'
|
||||
icon: 'none',
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1,20 +1,18 @@
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
};
|
||||
return {};
|
||||
},
|
||||
// #ifdef MP
|
||||
onShareAppMessage(res) {
|
||||
return {
|
||||
title: "荣创科技",
|
||||
path: "/pages/index/index",
|
||||
title: '荣创科技',
|
||||
path: '/pages/index/index',
|
||||
};
|
||||
},
|
||||
onShareTimeline() {
|
||||
return {
|
||||
title: "荣创科技",
|
||||
path: "/pages/index/index",
|
||||
title: '荣创科技',
|
||||
path: '/pages/index/index',
|
||||
};
|
||||
},
|
||||
// #endif
|
||||
|
||||
@@ -34,9 +34,10 @@ export default {
|
||||
align-items: center;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
top: 0%;
|
||||
transform: translate(-50%, 0);
|
||||
}
|
||||
|
||||
.empty-text {
|
||||
margin-top: 30rpx;
|
||||
font-size: 28rpx;
|
||||
@@ -45,6 +46,7 @@ export default {
|
||||
color: #666;
|
||||
line-height: 32rpx;
|
||||
}
|
||||
|
||||
.empty-img {
|
||||
width: 244rpx;
|
||||
height: 320rpx;
|
||||
|
||||
@@ -32,16 +32,31 @@
|
||||
</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 {
|
||||
props: {
|
||||
store: {
|
||||
type: Object,
|
||||
default: {}
|
||||
},
|
||||
projectList: {
|
||||
type: Array,
|
||||
default: []
|
||||
},
|
||||
projectType: {
|
||||
type: Array,
|
||||
default: []
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
@@ -51,88 +66,20 @@ 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 => {
|
||||
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.project === this.select.projectName
|
||||
return item.projectId === this.projectList[this.select.projectNameIndex].id
|
||||
} else if (this.select.projectType) {
|
||||
return item.type === this.select.projectType
|
||||
return item.projectType === this.projectType[this.select.projectTypeIndex].id
|
||||
} else {
|
||||
return true
|
||||
}
|
||||
@@ -142,10 +89,6 @@ export default {
|
||||
methods: {
|
||||
submitFeedBack() { uni.navigateTo({ url: '/pages/home/feedback' }) },
|
||||
projectTypeChange(e) {
|
||||
// 重置name
|
||||
this.select.projectName = ''
|
||||
this.select.projectNameIndex = 0
|
||||
|
||||
this.select.projectTypeIndex = e.detail.value
|
||||
if (e.detail.value === 0) {
|
||||
this.select.projectType = ''
|
||||
@@ -157,10 +100,6 @@ export default {
|
||||
},
|
||||
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 = ''
|
||||
|
||||
@@ -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,
|
||||
@@ -37,10 +40,37 @@ export default {
|
||||
},
|
||||
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: {
|
||||
@@ -138,10 +168,36 @@ 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
|
||||
this.init()
|
||||
},
|
||||
onShow() {
|
||||
this.userInfo = uni.getStorageSync(this.$cacheKey.userInfo)
|
||||
|
||||
Reference in New Issue
Block a user