Commit f39b4be3 authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

parents 2e61f738 f2b5ee4e
......@@ -36,3 +36,30 @@ export const delDeviceMatter = (params) => {
params,
});
};
// 修改保存设备信息
export const saveDevice = (data) => {
return request({
url: `/sampleform/device/save`,
method: "post",
data,
});
};
// 设备激活
export const saveDeviceActive = (data) => {
return request({
url: `/sampleform/device/active`,
method: "post",
data,
});
};
// 设备启停用
export const saveDeviceEnable = (data) => {
return request({
url: `/sampleform/device/enable`,
method: "post",
data,
});
};
......@@ -21,11 +21,21 @@
-->
</div>
<div slot="right" class="flex">
<el-select
class="select"
size="small"
v-model="type"
placeholder="请选择搜索类型"
>
<el-option label="按设备名称" :value="1"> </el-option>
<el-option label="按mac地址" :value="2"> </el-option>
<el-option label="按设备IP" :value="3"> </el-option>
</el-select>
<el-input
size="small"
v-model="searchVal"
class="ml10 mr10"
placeholder="请输入设备名称搜索"
placeholder="请输入关键字搜索"
@keyup.native.enter="handleSearch"
></el-input>
<el-button size="small" type="primary" @click="handleSearch"
......@@ -114,37 +124,44 @@
<el-tag size="small" v-else type="danger">离线</el-tag>
</template>
</el-table-column>
<!-- <el-table-column align="center" prop="enabled" label="启用/停用">
<el-table-column align="center" prop="enabled" label="启用/停用">
<template slot-scope="scope">
<el-tag
size="small"
:type="scope.row.enabled === 1 ? 'success' : 'danger'"
>{{ scope.row.enabled === 1 ? "" : "" }}</el-tag
<el-switch
class="tableScopeSwitch"
:active-value="1"
:inactive-value="0"
v-model="scope.row.enabled"
@change="handleChange(scope.row)"
inactive-text="停用"
active-text="启用"
>
</el-switch>
</template>
</el-table-column> -->
<el-table-column align="center" label="操作" width="100">
</el-table-column>
<el-table-column align="center" prop="deviceRemark" label="备注">
</el-table-column>
<el-table-column align="center" label="操作" width="160">
<template slot-scope="scope">
<div class="flex jca">
<!-- <span
v-if="scope.row.active !== 1"
<span
v-if="scope.row.deviceStatus == 0"
class="primary pointer"
@click="handleActive(scope.row)"
>激活</span
>
<span
v-if="scope.row.active == 1"
v-if="scope.row.active != 0"
style="opacity: 0"
class="primary"
>激活</span
> -->
>
<span class="primary pointer" @click="handleBound(scope.row)"
>绑定表单</span
>
<!-- <span class="primary pointer" @click="handleEdit(scope.row)"
<span class="primary pointer" @click="handleEdit(scope.row)"
>编辑</span
>
<span class="delete pointer" @click="handleDel(scope.row.id)"
<!-- <span class="delete pointer" @click="handleDel(scope.row.id)"
>删除</span
> -->
</div>
......@@ -162,9 +179,11 @@
</el-card>
<!-- 新增设备 -->
<AddDevice
:dict="dict"
:dialogVisible.sync="dialogVisible"
:title="title"
ref="AddDevice"
@addSuccess="getDeviceList"
></AddDevice>
<!-- 关联事项 -->
<AddMatter ref="AddMatter" :matterDrawer.sync="matterDrawer"></AddMatter>
......@@ -176,7 +195,11 @@ import TableHeader from "@/components/TableHeader.vue";
import Pagination from "@/components/Pagination.vue";
import AddMatter from "./modal/AddMatter.vue";
import AddDevice from "./modal/AddDevice.vue";
import { getDeviceList } from "@/api/device";
import {
getDeviceList,
saveDeviceEnable,
saveDeviceActive,
} from "@/api/device";
import local from "@/utils/local";
export default {
components: {
......@@ -199,6 +222,8 @@ export default {
title: "新增数字样表设备",
loading: false,
matterDrawer: false,
dict: {}, // 字典
type: 1,
};
},
created() {
......@@ -208,18 +233,29 @@ export default {
// 获取设备列表
async getDeviceList() {
this.loading = true;
let res = await getDeviceList({
let obj = {
siteId: this.siteId,
page: this.current,
size: this.size,
deviceName: `%${this.searchVal}%`,
productName: "样表机",
});
};
if (this.type == 1) {
obj.deviceName = `%${this.searchVal}%`;
} else if (this.type == 2) {
obj.deviceMac = `%${this.searchVal}%`;
} else if (this.type == 3) {
obj.ip = `%${this.searchVal}%`;
}
let res = await getDeviceList(obj);
this.loading = false;
let { data, total } = res.data.data;
this.total = total;
this.tableData = data;
this.$refs.multipleTable.bodyWrapper.scrollTop = 0;
if (res.data.code == 1) {
let { data, total, dict } = res.data.data;
this.total = total;
this.tableData = data;
this.dict = dict;
this.$refs.multipleTable.bodyWrapper.scrollTop = 0;
}
},
// 新增
handleAdd() {
......@@ -237,6 +273,7 @@ export default {
searchReset() {
this.searchVal = "";
this.current = 1;
this.type = 1;
this.getDeviceList();
},
// 翻页
......@@ -262,7 +299,12 @@ export default {
type: "warning",
})
.then(async () => {
console.log(row);
let res = await saveDeviceActive({ deviceCode: row.deviceCode });
let { code, msg } = res.data;
if (code == 1) {
this.$message.success(msg);
this.getDeviceList();
}
})
.catch(() => {
console.log("取消成功!");
......@@ -290,8 +332,17 @@ export default {
});
},
// 启停用
handleChange(row) {
console.log(row);
async handleChange(row) {
let obj = {
id: row.id,
enabled: row.enabled,
};
let res = await saveDeviceEnable(obj);
let { code } = res.data;
if (code == 1) {
this.$message.success("修改成功");
this.getDeviceList();
}
},
// 绑定表单
handleBound(row) {
......@@ -312,6 +363,9 @@ export default {
:deep(.el-card) {
height: auto;
}
.select {
width: 220px !important;
}
}
// .table-content {
// height: 550px;
......
......@@ -6,37 +6,48 @@
width="50%"
@close="handleClose"
>
<el-form ref="form" size="small" :model="form" label-width="80px">
<el-form
ref="form"
size="small"
:model="form"
:rules="rules"
label-width="80px"
>
<el-row :gutter="20">
<el-col :span="12"
><el-form-item label="设备名称" prop="name">
><el-form-item label="设备名称" prop="deviceName">
<el-input
v-model="form.name"
v-model="form.deviceName"
placeholder="请输入设备名称"
></el-input> </el-form-item
></el-col>
<el-col :span="12"
><el-form-item label="设备类型" prop="name">
<el-input
v-model="form.name"
placeholder="请输入设备名称"
></el-input> </el-form-item
><el-form-item label="设备类型">
<el-input disabled value="数字样表"></el-input> </el-form-item
></el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12"
><el-form-item label="mac地址" prop="name">
><el-form-item label="mac地址" prop="deviceMac">
<el-input
v-model="form.name"
v-model="form.deviceMac"
placeholder="请输入mac地址"
></el-input> </el-form-item
></el-col>
<el-col :span="12"
><el-form-item label="设备厂商" prop="name">
<el-input
v-model="form.name"
placeholder="请输入设备厂商"
></el-input> </el-form-item
><el-form-item label="设备厂商" prop="deviceFirmId">
<el-select
v-model="form.deviceFirmId"
placeholder="请选择设备厂商"
>
<el-option
v-for="(v, key) in dict.deviceFirmId"
:key="key"
:label="v"
:value="Number(key)"
>
</el-option>
</el-select> </el-form-item
></el-col>
</el-row>
<el-row :gutter="20">
......@@ -53,60 +64,70 @@
</el-select> </el-form-item
></el-col>
<el-col :span="12"
><el-form-item label="设备IP" prop="name">
><el-form-item label="设备IP" prop="ip">
<el-input
v-model="form.name"
v-model="form.ip"
placeholder="请输入设备IP"
></el-input> </el-form-item
></el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12"
><el-form-item label="端口号" prop="name">
><el-form-item label="端口号" prop="port">
<el-input
v-model="form.name"
v-model="form.port"
placeholder="请输入端口号"
></el-input> </el-form-item
></el-col>
<el-col :span="12"
><el-form-item label="负责人" prop="name">
><el-form-item label="负责人" prop="leadingOfficial">
<el-input
v-model="form.name"
v-model="form.leadingOfficial"
placeholder="请输入责任人姓名"
></el-input> </el-form-item
></el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12"
><el-form-item label="手机号" prop="name">
><el-form-item label="手机号" prop="leadingOfficialTelephone">
<el-input
v-model="form.name"
v-model="form.leadingOfficialTelephone"
placeholder="请输入责任人手机号"
></el-input> </el-form-item
></el-col>
<el-col :span="12"
><el-form-item label="设备位置" prop="name">
><el-form-item label="设备经度" prop="lon">
<el-input
v-model="form.name"
placeholder="请输入设备位置(X坐标,Y坐标)"
v-model="form.lon"
placeholder="请输入设备经度"
></el-input> </el-form-item
></el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12"
><el-form-item label="所在楼栋" prop="name">
><el-form-item label="设备纬度" prop="lati">
<el-input
v-model="form.lati"
placeholder="请输入设备纬度"
></el-input> </el-form-item
></el-col>
<el-col :span="12"
><el-form-item label="所在楼栋" prop="deviceInBuilding">
<el-input-number
v-model="form.num"
v-model="form.deviceInBuilding"
controls-position="right"
:min="1"
:max="100"
placeholder="请输入楼栋"
></el-input-number> </el-form-item
></el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12"
><el-form-item label="所在楼层" prop="name">
><el-form-item label="所在楼层" prop="deviceInFloor">
<el-input-number
v-model="form.num"
v-model="form.deviceInFloor"
controls-position="right"
:min="1"
:max="100"
......@@ -116,13 +137,13 @@
</el-row>
<el-row :gutter="20">
<el-col :span="24"
><el-form-item label="备注" prop="name">
><el-form-item label="备注" prop="deviceRemark">
<el-input
type="textarea"
:autosize="{ minRows: 4, maxRows: 4 }"
clearable
placeholder="请输入备注"
v-model="form.textarea"
v-model="form.deviceRemark"
resize="none"
>
</el-input> </el-form-item
......@@ -140,6 +161,7 @@
</template>
<script>
import { saveDevice } from "@/api/device";
export default {
props: {
title: {
......@@ -152,11 +174,53 @@ export default {
required: true,
default: false,
},
dict: {
type: Object,
required: true,
default: () => {},
},
},
data() {
return {
form: {
name: "",
deviceId: "", // 设备id
deviceName: "", // 设备名称
deviceCode: "", // 设备编码
deviceMac: "", // 设备的MAC地址
siteId: "", // 站点Id
siteCode: "", // 站点编号
siteName: "", // 站点名称
productCode: "", // 产品编码
productName: "", // 产品名称
deviceSrc: "", // 设备来源(0.子设备,1.网关设备,2.直连设备)
lon: "", // 经度
lati: "", // 纬度
leadingOfficial: "", // 负责人
leadingOfficialTelephone: "", // 联系电话
// deviceStatus: "", // 设备状态 (0.未激活,1.离线,2.在线)
deviceRemark: "", // 备注
source: "", // 设备来源(0.旧设备,1.新设备)
deviceFirmId: "", // 设备生产厂商ID
deviceFirmname: "", // 设备生产厂商名称
ip: "", // 设备访问ip
port: "", // 端口
// enabled: "", // 启用状态 (0.停止,1.启用)
deviceInBuilding: "", // 所在楼宇
deviceInFloor: "", // 所在楼层
},
rules: {
deviceName: [
{ required: true, message: "请输入设备名称", trigger: "blur" },
],
deviceMac: [
{ required: true, message: "请输入设备mac地址", trigger: "blur" },
],
leadingOfficial: [
{ required: true, message: "请输入负责人姓名", trigger: "blur" },
],
leadingOfficialTelephone: [
{ required: true, message: "请输入负责人手机号码", trigger: "blur" },
],
},
options: [
{
......@@ -185,7 +249,17 @@ export default {
this.$refs.form.resetFields();
},
handleOk() {
console.log(1);
this.$refs.form.validate(async (valid) => {
if (valid) {
let res = await saveDevice(this.form);
let { code, msg } = res.data;
if (code == 1) {
this.$message.success(msg);
this.$emit("addSuccess");
this.handleClose();
}
}
});
},
// 新增
onAdd() {
......
......@@ -82,20 +82,50 @@ export default {
},
// 选择使用皮肤
async changeSkin(row) {
let _this = this;
let obj = {
id: row.id,
siteId: row.id,
};
if (row.used == 1) {
obj.used = 0;
this.$confirm("此操作将会取消正在使用的皮肤,是否继续?", "系统提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
cancelButtonClass: "btn-custom-cancel",
type: "warning",
})
.then(async () => {
let res = await useSkin(obj);
let { code, msg } = res.data;
if (code == 1) {
_this.$message.success(msg);
_this.getSkinList();
}
})
.catch(() => {
console.log("取消成功!");
});
} else {
obj.used = 1;
}
let res = await useSkin(obj);
let { code, msg } = res.data;
if (code == 1) {
this.$message.success(msg);
this.getSkinList();
this.$confirm("确定要使用所选皮肤吗?", "系统提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
cancelButtonClass: "btn-custom-cancel",
type: "success",
iconClass: "el-icon-question",
})
.then(async () => {
let res = await useSkin(obj);
let { code, msg } = res.data;
if (code == 1) {
_this.$message.success(msg);
_this.getSkinList();
}
})
.catch(() => {
console.log("取消成功!");
});
}
},
// 预览皮肤
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment