wszhyWx/src/views/manage/deviceInfoManage.vue
2025-09-13 17:30:45 +08:00

785 lines
34 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="deviceSet manage-page">
<div class="flex-view flex-title">
<div class="table-title">
<img
src="../../assets/manageImg/deviceInfoManage.png"
alt=""
/>设备信息管理
</div>
<el-tooltip placement="bottom-end">
<div slot="content">设备信息管理<br>
1.施肥机编辑修改得名称对应得是本页面实时数据历史数据等...得名称<br>对应小程序实时环境名称温室设备名称若需要修改摄像头请联系力禾<br>工作人员修改更多名称修改得是对应施肥机设定值参数界面得名称<br>
2.控制器编辑界面对应得和施肥机一样权限编辑控制当前界面内设定<br>值参数界面点击可显示或隐藏对应权限<br>
3.智能控制器同理编辑界面修改名称修改更多名称对应设定值参数<br>界面修改名称对应得是本页得设定值参数界面和小程序得设定值参数页<br>生态气象站和数据采集器同理主要得功能是修改名称
</div>
<div class="table-title-btn blue">
提示
</div>
</el-tooltip>
</div>
<div class="flex-view">
<div class="manage-btn" @click="active = 0" :class="active == 0 ? 'active' : ''">
<img src="../../assets/manageImg/manage-btn-icon2.png" alt="">
{{$t('deviceManagement.deviceTypes.fertilizer')}}
</div>
<div class="manage-btn" @click="active = 1" :class="active == 1 ? 'active' : ''">
<img src="../../assets/manageImg/manage-btn-icon1.png" alt="">
{{$t('deviceManagement.deviceTypes.controller')}}
</div>
<div class="manage-btn" @click="active = 2" :class="active == 2 ? 'active' : ''">
<img src="../../assets/manageImg/manage-btn-icon1.png" alt="">
{{$t('deviceManagement.deviceTypes.smartController')}}
</div>
<div class="manage-btn" @click="active = 3" :class="active == 3 ? 'active' : ''">
<img src="../../assets/manageImg/manage-btn-icon1.png" alt="">
{{$t('deviceManagement.deviceTypes.weatherStation')}}
</div>
<div class="manage-btn" @click="active = 4" :class="active == 4 ? 'active' : ''">
<img src="../../assets/manageImg/manage-btn-icon1.png" alt="">
{{$t('deviceManagement.deviceTypes.dataCollector')}}
</div>
</div>
<div class="table-view" style="width: 100%;" v-if="active === 0">
<el-table :data="tableData" :row-class-name="tableRowClassName" height="620" style="width: 100%">
<!-- <el-table-column :label="$t('text.serialNumber')">
<template slot-scope="scope">
<div>{{scope.$index+1 }}
</div>
</template>
</el-table-column> -->
<el-table-column prop="deviceId" :label="$t('deviceManagement.tableHeaders.deviceCode')">
</el-table-column>
<el-table-column prop="deviceTypeName" :label="$t('deviceManagement.tableHeaders.deviceName')">
</el-table-column>
<el-table-column :label="$t('text.operations')">
<template slot-scope="scope">
<div class="table-flex">
<div class="table-operate blue" @click="openModel(scope.row, scope.$index)">
<img src="../../assets/manageImg/table-edit.png" alt="">{{$t('deviceManagement.tableHeaders.edit')}}
</div>
<div class="table-operate red" @click="openModelName(scope.row, scope.$index)">
<img src="../../assets/manageImg/table-edit.png" alt="">{{$t('deviceManagement.tableHeaders.modifyMoreNames')}}
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
<div class="table-view" style="width: 100%;" v-if="active===1">
<el-table :data="tableData1" :row-class-name="tableRowClassName" height="620" style="width: 100%">
<!-- <el-table-column :label="$t('text.serialNumber')">
<template slot-scope="scope">
<div>{{scope.$index+1 }}
</div>
</template>
</el-table-column> -->
<el-table-column prop="deviceId" :label="$t('deviceManagement.tableHeaders.deviceCode')">
</el-table-column>
<el-table-column prop="deviceTypeName" :label="$t('deviceManagement.tableHeaders.deviceName')">
</el-table-column>
<el-table-column :label="$t('text.operations')">
<template slot-scope="scope">
<div class="table-flex">
<div class="table-operate blue" @click="openModel1(scope.row, scope.$index)">
<img src="../../assets/manageImg/table-edit.png" alt="">{{$t('deviceManagement.tableHeaders.edit')}}
</div>
<div class="table-operate blue" @click="openRoleModel(scope.row.deviceId)">
<img src="../../assets/manageImg/table-edit.png" alt="">{{$t('deviceManagement.tableHeaders.permissionEdit')}}
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
<div class="table-view" style="width: 100%;" v-if="active===2">
<el-table :data="tableData2" :row-class-name="tableRowClassName" height="620" style="width: 100%">
<!-- <el-table-column :label="$t('text.serialNumber')">
<template slot-scope="scope">
<div>{{scope.$index+1 }}
</div>
</template>
</el-table-column> -->
<el-table-column prop="deviceId" :label="$t('deviceManagement.tableHeaders.deviceCode')">
</el-table-column>
<el-table-column prop="deviceTypeName" :label="$t('deviceManagement.tableHeaders.deviceName')">
</el-table-column>
<el-table-column :label="$t('text.operations')">
<template slot-scope="scope">
<div class="table-flex">
<div class="table-operate blue" @click="openModel1(scope.row, scope.$index)">
<img src="../../assets/manageImg/table-edit.png" alt="">{{$t('deviceManagement.tableHeaders.edit')}}
</div>
<div class="table-operate red" @click="openModelName1(scope.row, scope.$index)">
<img src="../../assets/manageImg/table-edit.png" alt="">{{$t('deviceManagement.tableHeaders.modifyMoreNames')}}
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
<div class="table-view" style="width: 100%;" v-if="active === 3">
<el-table :data="tableData3" :row-class-name="tableRowClassName" height="620" style="width: 100%">
<!-- <el-table-column :label="$t('text.serialNumber')">
<template slot-scope="scope">
<div>{{scope.$index+1 }}
</div>
</template>
</el-table-column> -->
<el-table-column prop="deviceId" :label="$t('deviceManagement.tableHeaders.deviceCode')">
</el-table-column>
<el-table-column prop="deviceTypeName" :label="$t('deviceManagement.tableHeaders.deviceName')">
</el-table-column>
<el-table-column :label="$t('text.operations')">
<template slot-scope="scope">
<div class="table-flex">
<div class="table-operate blue" @click="openModel(scope.row, scope.$index)">
<img src="../../assets/manageImg/table-edit.png" alt="">{{$t('deviceManagement.tableHeaders.edit')}}
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
<div class="table-view" style="width: 100%;" v-if="active === 4">
<el-table :data="tableData4" :row-class-name="tableRowClassName" height="620" style="width: 100%">
<!-- <el-table-column :label="$t('text.serialNumber')">
<template slot-scope="scope">
<div>{{scope.$index+1 }}
</div>
</template>
</el-table-column> -->
<el-table-column prop="deviceId" :label="$t('deviceManagement.tableHeaders.deviceCode')">
</el-table-column>
<el-table-column prop="deviceTypeName" :label="$t('deviceManagement.tableHeaders.deviceName')">
</el-table-column>
<el-table-column :label="$t('text.operations')">
<template slot-scope="scope">
<div class="table-flex">
<div class="table-operate blue" @click="openModel(scope.row, scope.$index)">
<img src="../../assets/manageImg/table-edit.png" alt="">{{$t('deviceManagement.tableHeaders.edit')}}
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
<el-dialog :close-on-click-modal="false" title="" top="10vh" :visible.sync="addModel" width="700px" class="vrcode-model manage-model"
:append-to-body="true">
<div class="vrcode-model-title">
{{$t('deviceManagement.dialogs.editTitle')}}
</div>
<div class="vrcode-content" v-if="nowData">
<div class="manage-left">
<div class="manage-input">
<div class="input-title">{{$t('text.deviceCode')}}</div>
<input type="text" v-model="nowData.deviceId" disabled :placeholder="$t('placeholder.deviceCodePlaceholder')">
</div>
<div class="manage-input">
<div class="input-title">{{$t('text.deviceName')}}</div>
<input type="text" v-model="nowData.deviceTypeName" :placeholder="$t('placeholder.deviceNamePlaceholder')">
</div>
<div class="manage-input">
<div class="input-title">{{$t('deviceManagement.dialogs.statusPageName')}}</div>
<input type="text" v-model="nowData.stationName" :placeholder="$t('placeholder.statusPageNamePlaceholder')">
</div>
<div class="manage-input">
<div class="input-title">{{$t('deviceManagement.dialogs.cameraName')}}</div>
<input type="text" v-model="nowData.cameraSerialNumber" :placeholder="$t('placeholder.cameraNamePlaceholder')">
</div>
<div class="manage-input">
<div class="input-title">{{$t('deviceManagement.dialogs.cameraChannel')}}</div>
<input type="number" v-model="nowData.cameraChannelNumber" :placeholder="$t('placeholder.cameraChannelPlaceholder')">
</div>
<div class="manage-input">
<div class="input-title">{{$t('text.sortOrder')}}</div>
<input type="number" v-model="nowData.equipmentStatu" :placeholder="$t('placeholder.sortOrderPlaceholder')">
</div>
</div>
<div class="manage-right">
<div class="manage-img">
<label for="sel-img">
<img class="" :src="nowData.hls" alt="">
</label>
<input ref="fileInput" type="file" :multiple="false" id="sel-img" accept="image/*"
@change="handleImageChange($event, 0)" />
</div>
<div class="manage-radio">
<div class="radio-label">是否有自动搅拌功能</div>
<el-radio v-model="nowData.fertilizerType" :label="1"
>开启</el-radio
>
<el-radio v-model="nowData.fertilizerType" :label="0"
>关闭</el-radio
>
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn blue-btn w-100" @click="changeAddModel">{{$t('index.confirm')}}</div>
<div class="vrcode-btn cancle-btn w-100" @click="addModel = false">{{$t('index.cancel')}}</div>
</span>
</el-dialog>
<!-- 施肥机的修改名字 -->
<el-dialog :close-on-click-modal="false" title="提示" top="10vh" :visible.sync="changeName" width="760px" class="vrcode-model manage-model"
:append-to-body="true">
<div class="vrcode-model-title">
{{$t('deviceManagement.dialogs.modifyNamesTitle')}}
</div>
<div class="vrcode-content" v-if="nameList">
<div class="manage-left">
<div class="manage-input w-160">
<div class="input-title">{{$t('deviceManagement.dialogs.fertilizationRecipes')}}</div>
<input type="text" v-model="nameList.fertilizationOne" :placeholder="$t('placeholder.recipePlaceholder', {n: 1})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.fertilizationTwo" :placeholder="$t('placeholder.recipePlaceholder', {n: 2})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.fertilizationThree" :placeholder="$t('placeholder.recipePlaceholder', {n: 3})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.fertilizationFour" :placeholder="$t('placeholder.recipePlaceholder', {n: 4})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.fertilizationFive" :placeholder="$t('placeholder.recipePlaceholder', {n: 5})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.fertilizationSix" :placeholder="$t('placeholder.recipePlaceholder', {n: 6})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.fertilizationSeven" :placeholder="$t('placeholder.recipePlaceholder', {n: 7})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.fertilizationEight" :placeholder="$t('placeholder.recipePlaceholder', {n: 8})">
</div>
</div>
<div class="manage-center">
<div class="manage-input w-160">
<div class="input-title">{{$t('deviceManagement.dialogs.irrigationGroups')}}</div>
<input type="text" v-model="nameList.solenoidOne" :placeholder="$t('placeholder.groupPlaceholder', {n: 1})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.solenoidTwo" :placeholder="$t('placeholder.groupPlaceholder', {n: 2})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.solenoidThree" :placeholder="$t('placeholder.groupPlaceholder', {n: 3})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.solenoidFour" :placeholder="$t('placeholder.groupPlaceholder', {n: 4})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.solenoidFive" :placeholder="$t('placeholder.groupPlaceholder', {n: 5})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.solenoidSix" :placeholder="$t('placeholder.groupPlaceholder', {n: 6})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.solenoidSeven" :placeholder="$t('placeholder.groupPlaceholder', {n: 7})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.solenoidEight" :placeholder="$t('placeholder.groupPlaceholder', {n: 8})">
</div>
</div>
<div class="manage-center">
<div class="manage-input w-160">
<div class="input-title">{{$t('deviceManagement.dialogs.irrigationGroups9_16')}}</div>
<input type="text" v-model="nameList.solenoidNine" :placeholder="$t('placeholder.groupPlaceholder', {n: 9})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.solenoidTen" :placeholder="$t('placeholder.groupPlaceholder', {n: 10})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.solenoidElven" :placeholder="$t('placeholder.groupPlaceholder', {n: 11})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.solenoidTwelve" :placeholder="$t('placeholder.groupPlaceholder', {n: 12})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.solenoidThirteen" :placeholder="$t('placeholder.groupPlaceholder', {n: 13})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.solenoidFourteen" :placeholder="$t('placeholder.groupPlaceholder', {n: 14})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.solenoidFifteen" :placeholder="$t('placeholder.groupPlaceholder', {n: 15})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.solenoidSixteen" :placeholder="$t('placeholder.groupPlaceholder', {n: 16})">
</div>
</div>
<div class="manage-right">
<div class="manage-input w-160">
<div class="input-title">{{$t('deviceManagement.dialogs.externalDevices')}}</div>
<input type="text" v-model="nameList.externalOne" :placeholder="$t('placeholder.externalPlaceholder', {n: 1})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.externalTwo" :placeholder="$t('placeholder.externalPlaceholder', {n: 2})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.externalThree" :placeholder="$t('placeholder.externalPlaceholder', {n: 3})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="nameList.externalFour" :placeholder="$t('placeholder.externalPlaceholder', {n: 4})">
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn blue-btn w-100" @click="changeAddModel2">{{$t('index.confirm')}}</div>
<div class="vrcode-btn cancle-btn w-100" @click="changeName = false">{{$t('index.cancel')}}</div>
</span>
</el-dialog>
<!-- 控制器编辑 -->
<el-dialog :close-on-click-modal="false" title="提示" top="10vh" :visible.sync="addModel1" width="564px" class="vrcode-model manage-model"
:append-to-body="true">
<div class="vrcode-model-title">
{{$t('text.edit')}}
</div>
<div class="vrcode-content" v-if="nowData1">
<div class="manage-left">
<div class="manage-input">
<div class="input-title">{{$t('text.deviceCode')}}</div>
<input type="text" v-model="nowData1.deviceId" disabled :placeholder="$t('placeholder.deviceCodePlaceholder')">
</div>
<div class="manage-input">
<div class="input-title">{{$t('deviceManagement.dialogs.cameraName')}}</div>
<input type="text" v-model="nowData1.cameraSerialNumber" :placeholder="$t('placeholder.cameraNamePlaceholder')">
</div>
<div class="manage-input">
<div class="input-title">{{$t('text.sortOrder')}}</div>
<input type="number" v-model="nowData1.equipmentStatu" :placeholder="$t('placeholder.sortOrderPlaceholder')">
</div>
<div class="manage-img-small">
<label for="sel-img">
<img class="" :src="nowData1.hls" alt="">
</label>
<input ref="fileInput1" type="file" :multiple="false" id="sel-img" accept="image/*"
@change="handleImageChange($event,1)" />
</div>
</div>
<div class="manage-right">
<div class="manage-input">
<div class="input-title">{{$t('text.deviceName')}}</div>
<input type="text" v-model="nowData1.deviceTypeName" :placeholder="$t('placeholder.deviceNamePlaceholder')">
</div>
<div class="manage-input">
<div class="input-title">{{$t('deviceManagement.dialogs.cameraChannel')}}</div>
<input type="number" v-model="nowData1.cameraChannelNumber" :placeholder="$t('deviceManagement.dialogs.cameraChannel')">
</div>
<div class="manage-text">
{{$t('deviceManagement.dialogs.noteText')}}
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn blue-btn w-100" @click="changeAddModel1">{{$t('index.confirm')}}</div>
<div class="vrcode-btn cancle-btn w-100" @click="addModel1 = false">{{$t('index.cancel')}}</div>
</span>
</el-dialog>
<!-- 智能灌溉 -->
<el-dialog :close-on-click-modal="false" title="" top="10vh" :visible.sync="changeName1" width="760px" class="vrcode-model manage-model"
:append-to-body="true">
<div class="vrcode-model-title">
{{$t('deviceManagement.dialogs.modifyNamesTitle')}}
</div>
<div class="vrcode-content" v-if="name20List">
<div class="manage-left">
<div class="manage-input w-160">
<div class="input-title">{{$t('deviceManagement.dialogs.smartIrrigation')}}</div>
<input type="text" v-model="name20List.name1" :placeholder="$t('placeholder.smartPlaceholder', {n: 1})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="name20List.name2" :placeholder="$t('placeholder.smartPlaceholder', {n: 2})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="name20List.name3" :placeholder="$t('placeholder.smartPlaceholder', {n: 3})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="name20List.name4" :placeholder="$t('placeholder.smartPlaceholder', {n: 4})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="name20List.name5" :placeholder="$t('placeholder.smartPlaceholder', {n: 5})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="name20List.name6" :placeholder="$t('placeholder.smartPlaceholder', {n: 6})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="name20List.name7" :placeholder="$t('placeholder.smartPlaceholder', {n: 7})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="name20List.name8" :placeholder="$t('placeholder.smartPlaceholder', {n: 8})">
</div>
</div>
<div class="manage-center">
<div class="manage-input w-160">
<div class="input-title">{{$t('deviceManagement.dialogs.smartIrrigation9_16')}}</div>
<input type="text" v-model="name20List.name9" :placeholder="$t('placeholder.smartPlaceholder', {n: 9})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="name20List.name10" :placeholder="$t('placeholder.smartPlaceholder', {n: 10})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="name20List.name11" :placeholder="$t('placeholder.smartPlaceholder', {n: 11})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="name20List.name12" :placeholder="$t('placeholder.smartPlaceholder', {n: 12})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="name20List.name13" :placeholder="$t('placeholder.smartPlaceholder', {n: 13})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="name20List.name14" :placeholder="$t('placeholder.smartPlaceholder', {n: 14})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="name20List.name15" :placeholder="$t('placeholder.smartPlaceholder', {n: 15})">
</div>
<div class="manage-input w-160">
<input type="text" v-model="name20List.name16" :placeholder="$t('placeholder.smartPlaceholder', {n: 16})">
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div class="vrcode-btn blue-btn w-100" @click="changeAddModel3">{{$t('index.confirm')}}</div>
<div class="vrcode-btn cancle-btn w-100" @click="changeName = false">{{$t('index.cancel')}}</div>
</span>
</el-dialog>
<el-dialog :close-on-click-modal="false" :title="$t('deviceManagement.dialogs.permissionManagement')" :append-to-body="true" :visible.sync="roleModel" width="70%">
<div class="model-title">{{$t('deviceManagement.dialogs.permissionManagement')}}</div>
<div class="model-sel scroll">
<div v-for="item, index in allDevicestatus" :key="index">
<div @click="selClick(item)" :class="item.state==0 ? 'sel' : 'no-sel'"></div>
{{ item.nickName }}
</div>
</div>
<span slot="footer" class="dialog-footer">
<!-- <div class="vrcode-btn blue-btn">添加标准控制器</div> -->
<div class="vrcode-btn cancle-btn w-100" @click="roleModel = false">{{$t('index.confirm')}}</div>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
active: 0,
tableData: [],
tableData1: [],
tableData2: [],
tableData3: [],
tableData4: [],
addModel: false,
addModel1: false,
changeName: false,
nowData: null,
nowData1: null,
nameList:null,//施肥机名字
name20List:null,//智能灌溉名字
changeName1:false,//智能灌溉的弹窗
allDevicestatus:[],
roleModel:false,
nowDeviceId:'',
}
},
// watch:{
// active(){
// setTimeout(() => {
// this.$forceUpdate()
// }, 10);
// },
// },
mounted() { this.dataInit() },
methods: {
// 根据deviceName获取router
deviceNameRouter(deviceName){
if(deviceName==1){
return 'formula'
}else if(deviceName==10){
return 'control'
}else if(deviceName==20){
return 'soil'
}else{
return 'formula'
}
},
dataInit() {
const that = this
var user = JSON.parse(localStorage.getItem('userInfo'))
this.api.selUserbyid(user.userid).then(res => {
this.tableData = []
this.tableData1 = []
this.tableData2 = []
this.tableData3 = []
this.tableData4 = []
if (res.data.code == 200) {
res.data.data.devices.forEach((el, index) => {
if (el.deviceName == 10) {
this.tableData1.push(el)
} else if (el.deviceName == 1) {
this.tableData.push(el)
} else if (el.deviceName == 20) {
this.tableData2.push(el)
} else if (el.deviceName == 30) {
this.tableData3.push(el)
} else if (el.deviceName == 40) {
this.tableData4.push(el)
}
})
var data=res.data.data.devices
this.$store.state.equipmentList =data.map((item, index) => {
return {
...item,
router: that.deviceNameRouter(item.deviceName),
index: index + 1,
};
});
}
})
},
selClick(item){
var data
if(item.state==0){
data= {
"deviceId": this.nowDeviceId,
"permission": item.id,
"state":1
}
}else{
data= {
"deviceId": this.nowDeviceId,
"permission": item.id,
"state":0
}
}
item.state = data.state
this.$forceUpdate();
var apiData=JSON.parse(JSON.stringify(data))
this.api.updatePermissionState(apiData).then((res => {
if (res.data.code == 200) {
this.$message({
message: this.$t('message.change'),
type: "success",
});
// this.getcontrol_cpermission()
} else {
this.$message({
message: res.data.msg,
type: "warning",
});
}
}))
},
openRoleModel(deviceId) {
this.loading = this.$loading({
lock: true,
text: this.$t('message.loading'),
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
this.selDevicestatus = []
this.nowDeviceId=deviceId
// 线调取全部权限
this.api.getcontrol_cpermission(deviceId).then(res => {
if (res.data.code == 200) {
this.allDevicestatus = res.data.data
this.roleModel=true
this.loading.close()
// 再根据deviceId调取单个设备权限 并且查询共同name
// this.getcontrol_cpermission()
} else {
this.loading.close()
this.$message.error(res.data.msg);
}
})
},
changeAddModel() {
this.loading = this.$loading({
lock: true,
text: this.$t('message.loading'),
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
var data = this.nowData
this.api.updatedevice(data).then(res => {
this.loading.close()
if (res.data.code == 200) {
this.dataInit()
this.$message.success(res.data.msg);
this.addModel = false
} else {
this.$message.error(res.data.msg);
this.addModel = false
}
})
},
openModelName(item,index){
this.loading = this.$loading({
lock: true,
text: this.$t('message.loading'),
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
var data={deviceId:item.deviceId}
this.api.getByid(data).then(res=>{
this.loading.close()
if (res.data.code == 200) {
this.nameList=res.data.data
this.changeName=true
} else {
this.$message.error(res.data.msg);
}
})
},
openModelName1(item,index){
this.loading = this.$loading({
lock: true,
text: this.$t('message.loading'),
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
var data={deviceId:item.deviceId}
this.api.getFi_getName(data).then(res=>{
this.loading.close()
if (res.data.code == 200) {
this.name20List=res.data.data
this.changeName1=true
} else {
this.$message.error(res.data.msg);
}
})
},
changeAddModel3(){
this.loading = this.$loading({
lock: true,
text: this.$t('message.loading'),
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
var data = this.name20List
this.api.getFi_updateName(data).then(res=>{
this.loading.close()
if (res.data.code == 200) {
this.$message.success(res.data.msg);
this.changeName1 = false
} else {
this.$message.error(res.data.msg);
this.changeName1 = false
}
})
},
changeAddModel1() {
this.loading = this.$loading({
lock: true,
text: this.$t('message.loading'),
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
var data = this.nowData1
this.api.updatedevice(data).then(res => {
this.loading.close()
if (res.data.code == 200) {
this.dataInit()
this.$message.success(res.data.msg);
this.addModel1 = false
} else {
this.$message.error(res.data.msg);
this.addModel1 = false
}
})
},
changeAddModel2(){
this.loading = this.$loading({
lock: true,
text: this.$t('message.loading'),
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
var data = this.nameList
this.api.updateFsname(data).then(res=>{
this.loading.close()
if (res.data.code == 200) {
this.$message.success(res.data.msg);
this.changeName = false
} else {
this.$message.error(res.data.msg);
this.changeName = false
}
})
},
handleImageChange(event,type) {
this.loading = this.$loading({
lock: true,
text: this.$t('message.uploading'),
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
const file = event.target.files[0];
const reader = new FileReader();
reader.onload = (e) => {
const imageData = e.target.result;
const convertedFile = new File([imageData], file.name, { type: file.type });
// 处理转换后的文件...
var data = { file: convertedFile }
this.api.manageUploadImage(data).then(res => {
this.loading.close()
if (res.data.code == 200) {
if(type==0){
this.nowData.hls=res.data.msg
this.$refs.fileInput.value = '';
}else{
this.nowData1.hls=res.data.msg
this.$refs.fileInput1.value = '';
}
} else {
this.$refs.fileInput1.value = '';
this.$message.error(res.data.msg);
}
}).catch((err) => {
this.loading.close()
this.$refs.fileInput1.value = '';
this.$message.error("插入图片失败");
});
};
reader.readAsArrayBuffer(file);
},
openModel(item, index) {
this.nowData = JSON.parse(JSON.stringify(item))
this.addModel = true
},
openModel1(item, index) {
this.nowData1 = JSON.parse(JSON.stringify(item))
this.addModel1 = true
},
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return 'warning-row';
} else if (rowIndex % 2 == 0) {
return 'success-row';
}
return '';
}
},
}
</script>
<style lang="scss"></style>