页面接口推介
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
<Cn-page :loading='loading'>
|
||||
<view slot='body'>
|
||||
<view class='about'>
|
||||
<view class='about-title'>盛弘APF</view>
|
||||
<view class='about-title'>灿能APF</view>
|
||||
<view class='about-text'>杋器码:0000000</view>
|
||||
<view class='about-text'>软件版本:1.0.0</view>
|
||||
<view class='about-text'>使用期限:永久使用</view>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<view class="detail-header">
|
||||
<Cn-htmlToImg domId="header" @renderFinish="renderFinish">
|
||||
<view class="header" ref="header" @click="previewImg">
|
||||
<image :src="deviceInfo.filePath" style="width: 375px" mode="widthFix" />
|
||||
<img :src="deviceInfo.filePath" style="width: 375px" mode="widthFix" />
|
||||
<view
|
||||
class="point"
|
||||
:style="{ left: item.lat + 'px', top: item.lng + 'px' }"
|
||||
@@ -94,6 +94,10 @@
|
||||
:content="content"
|
||||
@trigger="trigger"
|
||||
/>
|
||||
<uni-popup ref="share" type="share" :safe-area="false">
|
||||
<uni-popup-share title="分享到" ></uni-popup-share>
|
||||
<view style="height: 40rpx;background: #fff;"></view>
|
||||
</uni-popup>
|
||||
</view>
|
||||
</view>
|
||||
</Cn-page>
|
||||
@@ -104,10 +108,10 @@ import xieBo from './comp/xieBo.vue'
|
||||
import power from './comp/power.vue'
|
||||
import oscillogram from './comp/oscillogram.vue'
|
||||
import IO from './comp/IO.vue'
|
||||
import { queryTopologyDiagram } from '@/common/api/device'
|
||||
import { queryTopologyDiagram, deleteDevice } from '@/common/api/device'
|
||||
import { MQTT_IP, MQTT_OPTIONS } from '@/common/js/mqtt.js'
|
||||
import mqtt from 'mqtt/dist/mqtt.js'
|
||||
|
||||
import { base64ToPath } from 'image-tools'
|
||||
export default {
|
||||
components: {
|
||||
basic,
|
||||
@@ -158,7 +162,7 @@ export default {
|
||||
timer: null,
|
||||
devId: '',
|
||||
dictData: [],
|
||||
isMaster: 0,
|
||||
isPrimaryUser: 0,
|
||||
userInfo: {},
|
||||
}
|
||||
},
|
||||
@@ -185,9 +189,18 @@ export default {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '确定删除该设备吗?',
|
||||
success: function (res) {
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
console.log('用户点击确定')
|
||||
deleteDevice(this.devId).then((res) => {
|
||||
uni.showToast({
|
||||
title: '删除成功',
|
||||
icon: 'none',
|
||||
})
|
||||
setTimeout(() => {
|
||||
uni.navigateBack()
|
||||
}, 1500)
|
||||
})
|
||||
} else if (res.cancel) {
|
||||
console.log('用户点击取消')
|
||||
}
|
||||
@@ -248,10 +261,7 @@ export default {
|
||||
iconPath: '/static/delate.png',
|
||||
text: '报表',
|
||||
},
|
||||
{
|
||||
iconPath: '/static/table.png',
|
||||
text: '删除',
|
||||
},
|
||||
|
||||
{
|
||||
iconPath: '/static/feedback.png',
|
||||
text: '反馈',
|
||||
@@ -290,8 +300,11 @@ export default {
|
||||
}, 500)
|
||||
} else {
|
||||
uni.hideLoading()
|
||||
uni.previewImage({
|
||||
urls: [this.img],
|
||||
base64ToPath(this.img).then((res) => {
|
||||
console.log(res)
|
||||
uni.previewImage({
|
||||
urls: [res],
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
@@ -328,7 +341,7 @@ export default {
|
||||
console.log('连接断开')
|
||||
})
|
||||
.on('message', (topic, message) => {
|
||||
console.log('接收推送信息:', message.toString())
|
||||
console.log('接收推送信息:', message.toString().length)
|
||||
if (!message.toString()) {
|
||||
return
|
||||
}
|
||||
@@ -369,12 +382,12 @@ export default {
|
||||
this.userInfo = uni.getStorageSync(this.$cacheKey.userInfo)
|
||||
|
||||
this.devId = options.id
|
||||
this.isMaster = options.isMaster
|
||||
this.content.splice(0, 0, {
|
||||
iconPath: '/static/transfer.png',
|
||||
text: '移交',
|
||||
this.isPrimaryUser = options.isPrimaryUser
|
||||
if (this.isPrimaryUser == 1) {
|
||||
this.content.splice(0, 0, {
|
||||
iconPath: '/static/delate.png',
|
||||
text: '删除',
|
||||
})
|
||||
if (this.isMaster == 1) {
|
||||
this.content.splice(0, 0, {
|
||||
iconPath: '/static/transfer.png',
|
||||
text: '移交',
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<uni-forms>
|
||||
<uni-forms-item label="设备识别码">
|
||||
<view style="display: flex">
|
||||
<uni-easyinput type="number" v-model="formData.nDid" placeholder="请输入设备识别码" />
|
||||
<uni-easyinput type="text" v-model="formData.nDid" placeholder="请输入设备识别码" />
|
||||
<uni-icons
|
||||
type="camera"
|
||||
color="#007aff"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<view slot="body">
|
||||
<view class="transfer">
|
||||
<!-- <div class="transfer-img" ref="qrCodeUrl" /> -->
|
||||
<uqrcode ref="uqrcode" canvas-id="qrcode" :value="devId" :options="{ margin: 10 }"></uqrcode>
|
||||
<uqrcode ref="uqrcode" canvas-id="qrcode" :value="content" :options="{ margin: 10 }"></uqrcode>
|
||||
<canvas id="qrcode" width="200" height="200"></canvas>
|
||||
<view class="transfer-text">请让接收人员扫码接收</view>
|
||||
<view class="transfer-btn">
|
||||
@@ -24,23 +24,22 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
devId: '',
|
||||
content: '',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
back() {
|
||||
uni.navigateBack({
|
||||
delta: 1,
|
||||
})
|
||||
this.$util.refreshPrePage(2)
|
||||
},
|
||||
home() {
|
||||
uni.switchTab({
|
||||
url: '/pages/index/index',
|
||||
})
|
||||
this.$util.refreshPrePage(2)
|
||||
},
|
||||
},
|
||||
onLoad(options) {
|
||||
this.devId = options.id
|
||||
this.content = JSON.stringify({
|
||||
type: 'transferDevice',
|
||||
id: options.id,
|
||||
})
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -76,6 +76,8 @@
|
||||
</template>
|
||||
<script>
|
||||
import list from '../../common/js/list'
|
||||
import { deleteEngineering } from '../../common/api/engineering'
|
||||
|
||||
export default {
|
||||
mixins: [list],
|
||||
data() {
|
||||
@@ -95,6 +97,10 @@ export default {
|
||||
iconPath: '/static/share.png',
|
||||
text: '编辑',
|
||||
},
|
||||
{
|
||||
iconPath: '/static/delate.png',
|
||||
text: '删除',
|
||||
},
|
||||
],
|
||||
navHeight: 0,
|
||||
navMenuActive: 0,
|
||||
@@ -113,6 +119,21 @@ export default {
|
||||
uni.navigateTo({
|
||||
url: '/pages/engineering/new?engineering=' + encodeURIComponent(JSON.stringify(this.engineering)),
|
||||
})
|
||||
} else if (e.item.text == '删除') {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '删除工程后不可恢复,是否继续?',
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
deleteEngineering(this.engineering.id).then((res) => {
|
||||
this.$util.toast('删除成功')
|
||||
this.$util.refreshPrePage()
|
||||
})
|
||||
} else if (res.cancel) {
|
||||
console.log('用户点击取消')
|
||||
}
|
||||
},
|
||||
})
|
||||
}
|
||||
},
|
||||
navMenuClick(index) {
|
||||
|
||||
@@ -77,7 +77,7 @@ export default {
|
||||
console.log(this.$util.prePage())
|
||||
},
|
||||
methods: {
|
||||
toJSON(){},
|
||||
toJSON() {},
|
||||
areaChange(e) {
|
||||
if (e.detail.value.length) {
|
||||
this.formData.province = e.detail.value[0].value
|
||||
@@ -119,17 +119,11 @@ export default {
|
||||
if (this.formData.id) {
|
||||
await auditEngineering(this.formData)
|
||||
this.$util.toast('工程修改成功')
|
||||
let pages = getCurrentPages()
|
||||
let prePage = pages[pages.length -3]
|
||||
console.log(prePage);
|
||||
prePage.$vm.store.reload()
|
||||
setTimeout(() => {
|
||||
uni.navigateBack({ delta: 2 })
|
||||
}, 1500)
|
||||
this.$util.refreshPrePage(2)
|
||||
} else {
|
||||
await addEngineering(this.formData)
|
||||
this.$util.prePage().store?.reload()
|
||||
this.$util.toast('工程创建成功')
|
||||
this.$util.refreshPrePage()
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
@@ -113,7 +113,7 @@ export default {
|
||||
})
|
||||
},
|
||||
},
|
||||
created() {
|
||||
created() {
|
||||
this.init()
|
||||
},
|
||||
mounted() {
|
||||
@@ -134,29 +134,34 @@ export default {
|
||||
}, 1000)
|
||||
},
|
||||
methods: {
|
||||
async init(){
|
||||
let engineering = uni.getStorageSync('engineering')
|
||||
let res = await queryEngineering()
|
||||
this.engineeringList = res.data
|
||||
if (this.engineeringList.length === 0) {
|
||||
return
|
||||
}
|
||||
if (!engineering) {
|
||||
uni.setStorageSync('engineering', res.data[0])
|
||||
this.select.engineeringName = res.data[0].name
|
||||
this.select.engineeringId = res.data[0].id
|
||||
} else {
|
||||
this.select.engineeringName = engineering.name
|
||||
this.select.engineeringId = engineering.id
|
||||
}
|
||||
this.getProjectList()
|
||||
this.getDeviceList()
|
||||
async init() {
|
||||
let engineering = uni.getStorageSync('engineering')
|
||||
let res = await queryEngineering()
|
||||
this.engineeringList = res.data
|
||||
if (this.engineeringList.length === 0) {
|
||||
return
|
||||
}
|
||||
if (!engineering) {
|
||||
uni.setStorageSync('engineering', res.data[0])
|
||||
this.select.engineeringName = res.data[0].name
|
||||
this.select.engineeringId = res.data[0].id
|
||||
} else {
|
||||
if (this.engineeringList.findIndex((item) => item.id === engineering.id) === -1) {
|
||||
uni.setStorageSync('engineering', res.data[0])
|
||||
this.select.engineeringName = res.data[0].name
|
||||
this.select.engineeringId = res.data[0].id
|
||||
}else{
|
||||
this.select.engineeringName = engineering.name
|
||||
this.select.engineeringId = engineering.id
|
||||
}
|
||||
}
|
||||
this.getProjectList()
|
||||
this.getDeviceList()
|
||||
},
|
||||
getDeviceList() {
|
||||
this.store.params.pageSize = 999
|
||||
this.store.params.engineerId = this.select.engineeringId
|
||||
this.store.reload()
|
||||
|
||||
},
|
||||
getProjectList() {
|
||||
getProjectList({
|
||||
@@ -278,7 +283,7 @@ export default {
|
||||
},
|
||||
jump(item) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/device/APF/detail?id=' + item.equipmentId
|
||||
url: '/pages/device/APF/detail?id=' + item.equipmentId + '&isPrimaryUser=' + item.isPrimaryUser,
|
||||
})
|
||||
},
|
||||
},
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<div class="header-item-label">正常设备</div>
|
||||
</div>
|
||||
<div class="header-item">
|
||||
<div class="header-item-value">{{ devCount.alarmLineCount || 0 }}</div>
|
||||
<div class="header-item-value" @click="jump('alarmLineDevs')">{{ devCount.alarmLineCount || 0 }}</div>
|
||||
<div class="header-item-label">报警设备</div>
|
||||
</div>
|
||||
<div class="header-item">
|
||||
@@ -65,10 +65,15 @@ export default {
|
||||
url: '/pages/gateway/new',
|
||||
})
|
||||
},
|
||||
jump(item) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/device/APF/detail',
|
||||
})
|
||||
jump(type) {
|
||||
switch (key) {
|
||||
case value:
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -11,37 +11,19 @@
|
||||
<view class="message-nav-label">反馈</view>
|
||||
<uni-icons type="forward" color="#aaa" size="20"></uni-icons>
|
||||
</view>
|
||||
<view
|
||||
class="message-nav"
|
||||
@click="jump('report')"
|
||||
v-if="
|
||||
userInfo.authorities == '4' || userInfo.authorities == '5' || userInfo.authorities == 'tourist'
|
||||
"
|
||||
>
|
||||
<view class="message-nav" @click="jump('report')">
|
||||
<image mode="aspectFill" class="message-nav-icon" src="/static/report.png" />
|
||||
<view class="message-nav-label">稳态越限</view>
|
||||
<uni-badge text="3"></uni-badge>
|
||||
<uni-icons type="forward" color="#aaa" size="20"></uni-icons>
|
||||
</view>
|
||||
<view
|
||||
class="message-nav"
|
||||
@click="jump('incident')"
|
||||
v-if="
|
||||
userInfo.authorities == '4' || userInfo.authorities == '5' || userInfo.authorities == 'tourist'
|
||||
"
|
||||
>
|
||||
<view class="message-nav" @click="jump('incident')">
|
||||
<image mode="aspectFill" class="message-nav-icon" src="/static/incident.png" />
|
||||
<view class="message-nav-label">暂态事件</view>
|
||||
<uni-badge text="2"></uni-badge>
|
||||
<uni-icons type="forward" color="#aaa" size="20"></uni-icons>
|
||||
</view>
|
||||
<view
|
||||
class="message-nav"
|
||||
@click="jump('term')"
|
||||
v-if="
|
||||
userInfo.authorities == '4' || userInfo.authorities == '5' || userInfo.authorities == 'tourist'
|
||||
"
|
||||
>
|
||||
<view class="message-nav" @click="jump('term')">
|
||||
<image mode="aspectFill" class="message-nav-icon" src="/static/term.png" />
|
||||
<view class="message-nav-label">终端状态</view>
|
||||
<uni-badge text="1"></uni-badge>
|
||||
|
||||
@@ -36,20 +36,12 @@
|
||||
<view class="mine-nav-label">扫一扫</view>
|
||||
<uni-icons type="forward" color="#aaa" size="20"></uni-icons>
|
||||
</view>
|
||||
<view class="mine-nav" @click="jump('engineering')" v-if="userInfo.authorities === 'engineering_user' || userInfo.authorities === 'app_vip_user'">
|
||||
<view class="mine-nav" @click="jump('engineering')">
|
||||
<image mode="aspectFill" class="mine-nav-icon" src="/static/project.png" />
|
||||
<view class="mine-nav-label">工程管理</view>
|
||||
<uni-icons type="forward" color="#aaa" size="20"></uni-icons>
|
||||
</view>
|
||||
<view
|
||||
class="mine-nav"
|
||||
@click="jump('project')"
|
||||
v-if="
|
||||
userInfo.authorities === 'app_vip_user' ||
|
||||
userInfo.authorities === 'engineering_user' ||
|
||||
userInfo.authorities === 'market_user'
|
||||
"
|
||||
>
|
||||
<view class="mine-nav" @click="jump('project')">
|
||||
<image mode="aspectFill" class="mine-nav-icon" src="/static/project.png" />
|
||||
<view class="mine-nav-label">项目管理</view>
|
||||
<uni-icons type="forward" color="#aaa" size="20"></uni-icons>
|
||||
@@ -57,12 +49,6 @@
|
||||
<view
|
||||
class="mine-nav"
|
||||
@click="jump('gateway')"
|
||||
v-if="
|
||||
userInfo.authorities === 'app_vip_user' ||
|
||||
userInfo.authorities === 'engineering_user' ||
|
||||
userInfo.authorities == 5 ||
|
||||
userInfo.authorities === 'market_user'
|
||||
"
|
||||
style="border-bottom: none; box-shadow: 0 4rpx 8rpx #e7e7e74c"
|
||||
>
|
||||
<image mode="aspectFill" class="mine-nav-icon" src="/static/gateway.png" />
|
||||
@@ -94,6 +80,7 @@
|
||||
|
||||
<script>
|
||||
import { roleUpdate } from '@/common/api/user'
|
||||
import { transferDevice } from '@/common/api/device'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@@ -114,6 +101,12 @@ export default {
|
||||
case 'app_vip_user':
|
||||
roleName = 'VIP用户'
|
||||
break
|
||||
case 'market_user':
|
||||
roleName = '营销用户'
|
||||
break
|
||||
case 'operation_manager':
|
||||
roleName = '运维管理员'
|
||||
break
|
||||
}
|
||||
return roleName
|
||||
},
|
||||
@@ -146,9 +139,18 @@ export default {
|
||||
switch (type) {
|
||||
case 'scan':
|
||||
uni.scanCode({
|
||||
success: function (res) {
|
||||
success: (res) => {
|
||||
console.log('条码类型:' + res.scanType)
|
||||
console.log('条码内容:' + res.result)
|
||||
let content = JSON.parse(res.result)
|
||||
switch (content.type) {
|
||||
case 'transferDevice':
|
||||
this.transferDevice(content.id)
|
||||
break
|
||||
|
||||
default:
|
||||
break
|
||||
}
|
||||
},
|
||||
})
|
||||
break
|
||||
@@ -187,6 +189,11 @@ export default {
|
||||
break
|
||||
}
|
||||
},
|
||||
transferDevice(id) {
|
||||
transferDevice(id).then((res) => {
|
||||
uni.navigateTo({ url: '/pages/mine/result?type=transferDevice&id=' + id })
|
||||
})
|
||||
},
|
||||
},
|
||||
onShow() {
|
||||
this.userInfo = uni.getStorageSync(this.$cacheKey.userInfo)
|
||||
|
||||
90
pages/mine/result.vue
Normal file
90
pages/mine/result.vue
Normal file
@@ -0,0 +1,90 @@
|
||||
<template>
|
||||
<Cn-page :loading="loading">
|
||||
<view slot="body">
|
||||
<view class="about">
|
||||
<image src="/static/success.png" class="logo"></image>
|
||||
<view class="name">{{ text }}</view>
|
||||
<view class="btn-wrap">
|
||||
<navigator open-type="navigateBack" hover-class="none" class="btn"> 返回 </navigator>
|
||||
<view class="btn ml20" @click="look"> 查看 </view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</Cn-page>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
type: '',
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
text() {
|
||||
let str = ''
|
||||
switch (this.type) {
|
||||
case 'transferDevice':
|
||||
str = '移交成功'
|
||||
break
|
||||
default:
|
||||
str = '操作成功'
|
||||
break
|
||||
}
|
||||
return str
|
||||
},
|
||||
},
|
||||
onLoad(options) {
|
||||
this.type = options.type
|
||||
this.id = options.id
|
||||
},
|
||||
methods: {
|
||||
look() {
|
||||
switch (this.type) {
|
||||
case 'transferDevice':
|
||||
uni.navigateTo({
|
||||
url: '/pages/device/APF/detail?id=' + this.id,
|
||||
})
|
||||
break
|
||||
default:
|
||||
break
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.about {
|
||||
box-sizing: border-box;
|
||||
padding: 34rpx;
|
||||
padding-top: 200rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
.logo {
|
||||
height: 120rpx;
|
||||
width: 120rpx;
|
||||
}
|
||||
|
||||
.name {
|
||||
margin-top: 80rpx;
|
||||
font-size: 40rpx;
|
||||
font-weight: 700;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.version {
|
||||
margin-top: 20rpx;
|
||||
font-size: 38rpx;
|
||||
color: #333;
|
||||
}
|
||||
.btn-wrap {
|
||||
margin-top: 150rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -99,7 +99,12 @@
|
||||
</template>
|
||||
<script>
|
||||
import list from '../../common/js/list'
|
||||
import { queryTopologyDiagramPage, deleteAppTopologyDiagram, addAppTopologyDiagram } from '../../common/api/project'
|
||||
import {
|
||||
queryTopologyDiagramPage,
|
||||
deleteAppTopologyDiagram,
|
||||
addAppTopologyDiagram,
|
||||
deleteProject,
|
||||
} from '../../common/api/project'
|
||||
export default {
|
||||
mixins: [list],
|
||||
data() {
|
||||
@@ -178,6 +183,21 @@ export default {
|
||||
uni.navigateTo({
|
||||
url: '/pages/project/new?project=' + encodeURIComponent(JSON.stringify(this.project)),
|
||||
})
|
||||
} else if (e.item.text == '删除') {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '删除项目后不可恢复,是否继续?',
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
deleteProject(this.project.id).then((res) => {
|
||||
this.$util.toast('删除成功')
|
||||
this.$util.refreshPrePage()
|
||||
})
|
||||
} else if (res.cancel) {
|
||||
console.log('用户点击取消')
|
||||
}
|
||||
},
|
||||
})
|
||||
}
|
||||
},
|
||||
navMenuClick(index) {
|
||||
@@ -233,16 +253,20 @@ export default {
|
||||
iconPath: '/static/share.png',
|
||||
text: '编辑',
|
||||
})
|
||||
this.content.push({
|
||||
iconPath: '/static/delate.png',
|
||||
text: '删除',
|
||||
})
|
||||
this.content.push({
|
||||
iconPath: '/static/transfer.png',
|
||||
text: '移交',
|
||||
})
|
||||
this.content.push({
|
||||
iconPath: '/static/share.png',
|
||||
text: '分享',
|
||||
})
|
||||
if (userInfo.authorities == '3') {
|
||||
this.content.push({
|
||||
iconPath: '/static/transfer.png',
|
||||
text: '移交',
|
||||
})
|
||||
} else if (userInfo.authorities == '4') {
|
||||
this.content.push({
|
||||
iconPath: '/static/share.png',
|
||||
text: '分享',
|
||||
})
|
||||
}
|
||||
setTimeout(() => {
|
||||
// 获取nav高度
|
||||
|
||||
@@ -88,7 +88,9 @@
|
||||
<view
|
||||
class="temp-list-item"
|
||||
:class="{
|
||||
'temp-list-item-active': formData.tempFiles.some((item2) => item2.id === item.id),
|
||||
'temp-list-item-active': formData.tempFiles.some(
|
||||
(item2) => item2.id === item.id || item2.topoId === item.id,
|
||||
),
|
||||
}"
|
||||
v-for="(item, index) in tempList"
|
||||
@click="chooseTempItem(item)"
|
||||
@@ -104,7 +106,7 @@
|
||||
</template>
|
||||
<script>
|
||||
import { pinyin } from 'pinyin-pro'
|
||||
import { addAppProject } from '../../common/api/project'
|
||||
import { addAppProject, updateAppProject } from '../../common/api/project'
|
||||
import { getTopoTemplate } from '../../common/api/device'
|
||||
import { queryEngineering } from '@/common/api/engineering.js'
|
||||
export default {
|
||||
@@ -125,7 +127,7 @@ export default {
|
||||
},
|
||||
engineeringList: [],
|
||||
tempList: [],
|
||||
project: '',
|
||||
project: null,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -150,6 +152,9 @@ export default {
|
||||
},
|
||||
onLoad(options) {
|
||||
if (options.project) {
|
||||
uni.setNavigationBarTitle({
|
||||
title: '编辑项目',
|
||||
})
|
||||
this.project = JSON.parse(decodeURIComponent(options.project))
|
||||
console.log(this.project)
|
||||
for (let key in this.formData) {
|
||||
@@ -172,6 +177,20 @@ export default {
|
||||
getTopoTemplate().then((res) => {
|
||||
console.log(res)
|
||||
this.tempList = res.data
|
||||
if (this.project) {
|
||||
this.project.topologyDiagramPaths.forEach((item) => {
|
||||
if (this.tempList.some((item2) => item2.id === item.topoId)) {
|
||||
this.formData.tempFiles.push(item)
|
||||
} else {
|
||||
this.formData.files.push({
|
||||
url: item.filePath,
|
||||
extname: item.name.split('.')[1],
|
||||
name: item.name,
|
||||
...item,
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
@@ -179,8 +198,10 @@ export default {
|
||||
this.formData.tempFiles.splice(index, 1)
|
||||
},
|
||||
chooseTempItem(item) {
|
||||
if (this.formData.tempFiles.some((item2) => item2.id === item.id)) {
|
||||
this.formData.tempFiles = this.formData.tempFiles.filter((item2) => item2.id !== item.id)
|
||||
if (this.formData.tempFiles.some((item2) => item2.id === item.id || item2.topoId === item.id)) {
|
||||
this.formData.tempFiles = this.formData.tempFiles.filter(
|
||||
(item2) => item2.id !== item.id && item2.topoId !== item.id,
|
||||
)
|
||||
} else {
|
||||
this.formData.tempFiles.push(item)
|
||||
}
|
||||
@@ -243,27 +264,33 @@ export default {
|
||||
uri: item.url,
|
||||
})
|
||||
}
|
||||
this.formData.topoIds = this.formData.tempFiles.map((item) => item.id)
|
||||
this.formData.topoIds = this.formData.tempFiles.map((item) => (item.topoId ? item.topoId : item.id))
|
||||
let data = JSON.parse(JSON.stringify(this.formData))
|
||||
delete data.files
|
||||
addAppProject(data, arr).then((res) => {
|
||||
console.warn(res)
|
||||
if (res.length === 1) {
|
||||
this.$util.toast(res[0].message)
|
||||
return
|
||||
}
|
||||
console.log(res)
|
||||
let result = JSON.parse(res[1].data)
|
||||
if (result.code === 'A0000') {
|
||||
this.$util.toast('项目创建成功')
|
||||
this.$util.prePage().store?.reload()
|
||||
setTimeout(() => {
|
||||
uni.navigateBack({ delta: 1 })
|
||||
}, 1500)
|
||||
let res = {}
|
||||
if (this.project) {
|
||||
data.id = this.project.id
|
||||
res = await updateAppProject(data, arr)
|
||||
} else {
|
||||
res = await addAppProject(data, arr)
|
||||
}
|
||||
console.log(res)
|
||||
if (res.length === 1) {
|
||||
this.$util.toast(res[0].message)
|
||||
return
|
||||
}
|
||||
let result = JSON.parse(res[1].data)
|
||||
if (result.code === 'A0000') {
|
||||
if (this.project) {
|
||||
this.$util.toast('项目修改成功')
|
||||
this.$util.refreshPrePage(2)
|
||||
} else {
|
||||
this.$util.toast(result.message)
|
||||
this.$util.toast('项目创建成功')
|
||||
this.$util.refreshPrePage()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$util.toast(result.message)
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
<template>
|
||||
<Cn-page :loading='loading'>
|
||||
<view slot='body'>
|
||||
<view class='transfer'>
|
||||
<image class="transfer-img" src="/static/transfer.png" mode="scaleToFill" />
|
||||
<Cn-page :loading="loading">
|
||||
<view slot="body">
|
||||
<view class="transfer">
|
||||
<!-- <div class="transfer-img" ref="qrCodeUrl" /> -->
|
||||
<uqrcode ref="uqrcode" canvas-id="qrcode" :value="content" :options="{ margin: 10 }"></uqrcode>
|
||||
<canvas id="qrcode" width="200" height="200"></canvas>
|
||||
<view class="transfer-text">请让接收人员扫码接收</view>
|
||||
<view class="transfer-btn">
|
||||
<button class="transfer-btn-item" style="background-color:#fff;color:#111" @click="back">返回</button>
|
||||
<button class="transfer-btn-item" style="background-color: #fff; color: #111" @click="back">
|
||||
返回
|
||||
</button>
|
||||
<button class="transfer-btn-item ml20" @click="home">转移成功</button>
|
||||
</view>
|
||||
</view>
|
||||
@@ -13,27 +17,33 @@
|
||||
</Cn-page>
|
||||
</template>
|
||||
<script>
|
||||
// import QRCode from 'qrcodejs2'
|
||||
// import UQRCode from '@/uni_modules/Sansnn-uQRCode/js_sdk/uqrcode/uqrcode.js';
|
||||
|
||||
export default {
|
||||
data () {
|
||||
data() {
|
||||
return {
|
||||
loading: false
|
||||
loading: false,
|
||||
content: '',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
back () {
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
})
|
||||
back() {
|
||||
this.$util.refreshPrePage(2)
|
||||
},
|
||||
home () {
|
||||
uni.switchTab({
|
||||
url: '/pages/index/index'
|
||||
})
|
||||
}
|
||||
}
|
||||
home() {
|
||||
this.$util.refreshPrePage(2)
|
||||
},
|
||||
},
|
||||
onLoad(options) {
|
||||
this.content = JSON.stringify({
|
||||
type: 'transferProject',
|
||||
id: options.id,
|
||||
})
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style lang='scss'>
|
||||
<style lang="scss">
|
||||
.transfer {
|
||||
padding: 200rpx 34rpx 0;
|
||||
display: flex;
|
||||
@@ -41,9 +51,6 @@ export default {
|
||||
align-items: center;
|
||||
|
||||
.transfer-img {
|
||||
width: 500rpx;
|
||||
height: 500rpx;
|
||||
background: $uni-theme-blue ;
|
||||
}
|
||||
|
||||
.transfer-text {
|
||||
@@ -72,4 +79,4 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -40,11 +40,11 @@
|
||||
<view class="login-box-tips">
|
||||
<view style="color: #999">说明:密码长度为6-18位</view>
|
||||
</view>
|
||||
<view class="login-box-tips">
|
||||
<!-- <view class="login-box-tips">
|
||||
<view style="color: #999">点击提交即表示同意</view>
|
||||
<navigator url="/pages/mine/agreement" hover-class="none">《用户协议》</navigator>
|
||||
<navigator url="/pages/mine/policy" hover-class="none">《个人信息保护政策》</navigator>
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
</view>
|
||||
</Cn-page>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<view class="login-box-input-img"></view>
|
||||
</view> -->
|
||||
<view class="login-box-input mt40">
|
||||
<input class="login-box-input-main" v-model="yzmForm.code" placeholder="手机验证码" />
|
||||
<input class="login-box-input-main" v-model="yzmForm.code" placeholder="手机验证码" />
|
||||
<view
|
||||
class="ml40"
|
||||
style="font-size: 28rpx; color: #666; width: 200rpx; text-align: center"
|
||||
@@ -33,7 +33,12 @@
|
||||
</template>
|
||||
<template v-else>
|
||||
<view class="login-box-input mt100">
|
||||
<input class="login-box-input-main" maxlength="11" v-model="phone" placeholder="请输入账号" />
|
||||
<input
|
||||
class="login-box-input-main"
|
||||
maxlength="11"
|
||||
v-model="phone"
|
||||
placeholder="请输入手机号"
|
||||
/>
|
||||
</view>
|
||||
<view class="login-box-input mt40">
|
||||
<input
|
||||
@@ -59,7 +64,9 @@
|
||||
<navigator url="/pages/user/register" hover-class="none">快速注册</navigator>
|
||||
</view>
|
||||
<view class="login-box-tips">
|
||||
<view style="color: #999">点击登录即表示同意</view>
|
||||
<view style="color: #999"
|
||||
><checkbox :checked="checkbox" @click="checkbox = !checkbox" /> 我已阅读并同意</view
|
||||
>
|
||||
<navigator url="/pages/mine/agreement" hover-class="none">《用户协议》</navigator>
|
||||
<navigator url="/pages/mine/policy" hover-class="none">《个人信息保护政策》</navigator>
|
||||
</view>
|
||||
@@ -76,16 +83,17 @@ import { sm3Digest } from '@/common/js/sm3.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
checkbox: false,
|
||||
loading: false,
|
||||
loginType: 'pwd',
|
||||
phone:'13999999999',
|
||||
phone: '',
|
||||
pwdForm: {
|
||||
pwd: '',
|
||||
imgCode: '',
|
||||
},
|
||||
yzmForm: {
|
||||
code: '',
|
||||
imgCode: '123456789',
|
||||
code: '123456789',
|
||||
imgCode: '',
|
||||
},
|
||||
waitTime: 0,
|
||||
tenantId: '',
|
||||
@@ -123,6 +131,9 @@ export default {
|
||||
})
|
||||
},
|
||||
login() {
|
||||
if (!this.checkbox) {
|
||||
return this.$util.toast('请先阅读并同意用户协议和个人信息保护政策!')
|
||||
}
|
||||
console.log(this.loginType)
|
||||
if (this.loginType == 'pwd') {
|
||||
this.pwdLogin()
|
||||
@@ -134,9 +145,9 @@ export default {
|
||||
if (!this.phone && !this.pwdForm.pwd) {
|
||||
return this.$util.toast('请填写登录信息!')
|
||||
}
|
||||
console.log(this.phone);
|
||||
console.log(this.phone)
|
||||
let loginName = encrypt(this.phone)
|
||||
console.log(loginName);
|
||||
console.log(loginName)
|
||||
gongkey({ loginName }).then((response) => {
|
||||
let publicKey = response.data
|
||||
let sm3Pwd = sm3Digest(this.pwdForm.pwd)
|
||||
@@ -167,7 +178,8 @@ export default {
|
||||
onLoad(o) {
|
||||
// 移除所有的缓存
|
||||
// uni.clearStorageSync()
|
||||
uni.removeStorageSync('access_token')
|
||||
uni.removeStorageSync(this.$cacheKey.access_token)
|
||||
uni.removeStorageSync(this.$cacheKey.engineering)
|
||||
},
|
||||
}
|
||||
</script>
|
||||
@@ -269,6 +281,7 @@ export default {
|
||||
margin-top: 60rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 20rpx;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,9 +20,11 @@
|
||||
</view>
|
||||
</uni-forms-item>
|
||||
</uni-forms>
|
||||
<button type="default" class="submit-btn" @click="firstSubmit">下一步</button>
|
||||
<button type="default" class="submit-btn" @click="firstSubmit">注册</button>
|
||||
<view class="login-box-tips">
|
||||
<view style="color: #999">点击提交即表示同意</view>
|
||||
<view style="color: #999"
|
||||
><checkbox :checked="checkbox" @click="checkbox = !checkbox" /> 我已阅读并同意</view
|
||||
>
|
||||
<navigator url="/pages/mine/agreement" hover-class="none">《用户协议》</navigator>
|
||||
<navigator url="/pages/mine/policy" hover-class="none">《个人信息保护政策》</navigator>
|
||||
</view>
|
||||
@@ -52,6 +54,7 @@ export default {
|
||||
name: 'jiaban',
|
||||
data() {
|
||||
return {
|
||||
checkbox:false,
|
||||
step: 1,
|
||||
loading: false,
|
||||
waitTime: 0,
|
||||
@@ -129,6 +132,9 @@ export default {
|
||||
})
|
||||
},
|
||||
firstSubmit() {
|
||||
if (!this.checkbox) {
|
||||
return this.$util.toast('请先阅读并同意用户协议和个人信息保护政策!')
|
||||
}
|
||||
this.$refs.form.validate().then((valid, errors) => {
|
||||
apiRegister({
|
||||
phone: this.formData.phone,
|
||||
@@ -182,6 +188,7 @@ export default {
|
||||
margin-top: 60rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 20rpx;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user