123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
- <template>
- <view class="box">
- <view
- class="OTA-info"
- v-if="devsClientId.length > 0 && otaList.length > 0"
- >
- <view class="meauList">
- <view class="title">OTA信息</view>
- <view class="menu-item">
- <view class="meanLeft"> 设备序列号 </view>
- <view class="meanRight">
- <picker
- @change="bindPickerChange"
- :value="index"
- :range="devsClientId"
- >
- <view class="uni-input">{{
- devsClientId[index]
- }}</view>
- </picker>
- </view>
- </view>
- <view class="menu-item" bind:tap="gotoPath">
- <view class="meanLeft">
- <text>设备名称</text>
- </view>
- <view class="meanRight">
- {{ devs[index].devName }}
- </view>
- </view>
- <view class="menu-item" bind:tap="logout">
- <view class="meanLeft">
- <text>雷达型号</text>
- </view>
- <view class="meanRight">
- {{ devs[index].devType }}
- </view>
- </view>
- <view class="menu-item" bind:tap="logout">
- <view class="meanLeft">
- <text>当前版本</text>
- </view>
- <view class="meanRight">
- {{ devs[index].software }}
- </view>
- </view>
- </view>
- <view class="meauList">
- <view class="title">OTA版本</view>
- <view class="menu-item">
- <view class="meanLeft">OTA版本</view>
- <view class="meanRight">
- <picker
- @change="bindPickerChangeTwo"
- :value="otaIndex"
- :range="otaListName"
- >
- <view class="uni-input">{{ otaListName[0] }}</view>
- </picker>
- </view>
- </view>
- </view>
- </view>
- <view
- class="updateOta"
- @click="freshOTA()"
- v-if="devsClientId.length > 0 && otaList.length > 0"
- >更新OTA</view
- >
- </view>
- </template>
- <script>
- export default {
- data() {
- return {
- ota: "",
- devs: [],
- devsClientId: [],
- index: 0,
- selectClientId: "",
- // ota部分
- otaList: [],
- otaListName: [],
- otaIndex: 0,
- };
- },
- methods: {
- queryList() {
- this.$http
- .post("wap/device/deviceList", {
- userId: uni.getStorageSync("userId"),
- keyword: "",
- status: "",
- })
- .then((res) => {
- if (res.data.code == 200) {
- let devs = res.data.data;
- for (let i = 0; i < devs.length; i++) {
- if (
- devs[i].installPosition == "Toilet" &&
- devs[i].stayTimes?.length > 0
- ) {
- devs[i].wcTimes = devs[i].stayTimes.length;
- } else {
- devs[i].wcTimes = 0;
- }
- const signalTime = devs[i].signal_time;
- const currentTime = Date.now();
- }
- this.devs = devs;
- this.devsClientId = this.devs.map(
- (ele) => ele.clientId
- );
- } else {
- uni.showModal({
- content: res.data.message,
- showCancel: false,
- });
- }
- });
- },
- freshOTA() {
- if (this.devs[this.index].online == 0) {
- uni.showModal({
- content: "设备离线,无法升级",
- complete: (res) => {
- if (res.confirm) {
- } else {
- }
- },
- });
- return;
- }
- let clientIds = [];
- clientIds.push(this.devs[this.index].clientId);
- let ossUrl = this.otaList[this.otaIndex].ossUrl;
- this.$http
- .post(
- "pub/OTA/update",
- { clientIds: clientIds, ossUrl: ossUrl },
- {
- header: {
- "Content-Type": "application/json;charset=UTF-8",
- },
- }
- )
- .then((res) => {
- if (res.data.code == 200) {
- uni.showToast({
- title: "OTA升级成功",
- icon: "success",
- duration: 1500,
- });
- } else {
- uni.showToast({
- title: res.data.message,
- icon: "none",
- duration: 1500,
- });
- }
- });
- },
- bindPickerChange(e) {
- this.index = e.detail.value;
- },
- // OTA部分
- bindPickerChangeTwo(e) {
- this.otaIndex = e.detail.value;
- },
- queryOtaList() {
- this.$http.get("pub/OTA/query", {}).then((res) => {
- this.otaList = res.data.data;
- this.otaListName = this.otaList.map((ele) => ele.fileName);
- });
- },
- },
- onLoad() {},
- onShow() {
- this.queryList();
- this.queryOtaList();
- },
- };
- </script>
- <style lang="less" scoped>
- .box {
- padding: 10rpx 18rpx;
- width: 100vw;
- height: 100vh;
- background: linear-gradient(180deg, #faede2 0%, #f4f4f4 100%);
- box-sizing: border-box;
- .meauList {
- .title {
- padding-top: 20rpx;
- margin-left: 25rpx;
- font-weight: 500;
- color: #784c41;
- font-size: 32rpx;
- }
- width: 710rpx;
- margin: 18rpx auto 0 auto;
- background: #fff;
- border-radius: 37rpx;
- box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.03);
- padding: 0;
- box-sizing: border-box;
- .menu-item {
- display: flex;
- align-items: center;
- justify-content: space-between;
- margin: 0 32rpx;
- padding: 32rpx 0;
- border-bottom: 1rpx solid #f0f0f0;
- &:last-child {
- border-bottom: none;
- }
- .meanLeft {
- display: flex;
- align-items: center;
- justify-content: center;
- image {
- width: 38rpx;
- height: 38rpx;
- }
- text {
- margin-left: 10rpx;
- color: #111111;
- font-size: 32rpx;
- }
- }
- .meanRight image {
- width: 16rpx;
- height: 26rpx;
- }
- }
- }
- .updateOta {
- width: 710rpx;
- margin: 48rpx auto 0 auto;
- height: 88rpx;
- background: #fff;
- color: #b48a7c;
- font-size: 32rpx;
- border-radius: 30rpx;
- display: flex;
- align-items: center;
- justify-content: center;
- box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.03);
- }
- }
- </style>
|