This commit is contained in:
parent
5aadbec9ce
commit
2d05e10f14
|
@ -453,6 +453,11 @@ export default {
|
||||||
key: "ONENET",
|
key: "ONENET",
|
||||||
label: "ONENET",
|
label: "ONENET",
|
||||||
value: "ONENET"
|
value: "ONENET"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "OFFICIAL",
|
||||||
|
label: "官方平台",
|
||||||
|
value: "OFFICIAL"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
optionKey: {
|
optionKey: {
|
||||||
|
|
|
@ -268,229 +268,6 @@ export default {
|
||||||
toTableClick() {
|
toTableClick() {
|
||||||
this.componectVal = "";
|
this.componectVal = "";
|
||||||
},
|
},
|
||||||
// 打开厂商选择窗口 ——表格
|
|
||||||
openModelTableSelectDialog() {
|
|
||||||
this.selectResult = {};
|
|
||||||
this.tableSelectOption = {
|
|
||||||
otherOption: {
|
|
||||||
tableType: "model"
|
|
||||||
},
|
|
||||||
queryOpt: {
|
|
||||||
disable: false,
|
|
||||||
labelWidth: "68px",
|
|
||||||
params: {
|
|
||||||
protocolType: "",
|
|
||||||
modelName: ""
|
|
||||||
},
|
|
||||||
page: {
|
|
||||||
pageSize: 10,
|
|
||||||
pageNum: 1,
|
|
||||||
total: 0
|
|
||||||
},
|
|
||||||
inline: true,
|
|
||||||
queryChilds: [
|
|
||||||
{
|
|
||||||
style: "",
|
|
||||||
placeholder: "型号名称",
|
|
||||||
clearable: true,
|
|
||||||
label: "型号名称",
|
|
||||||
type: "input",
|
|
||||||
key: "modelName",
|
|
||||||
size: "small",
|
|
||||||
value: ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
style: "",
|
|
||||||
placeholder: "协议类型",
|
|
||||||
clearable: true,
|
|
||||||
label: "协议类型",
|
|
||||||
type: "select",
|
|
||||||
key: "protocolType",
|
|
||||||
size: "small",
|
|
||||||
value: "",
|
|
||||||
options: [
|
|
||||||
{
|
|
||||||
key: "IOTOS",
|
|
||||||
label: "iot平台",
|
|
||||||
value: "IOTOS"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: "ONENET",
|
|
||||||
label: "ONENET",
|
|
||||||
value: "ONENET"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
optionKey: {
|
|
||||||
key: "key",
|
|
||||||
label: "label",
|
|
||||||
value: "value"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
tableOpt: {
|
|
||||||
loading: false,
|
|
||||||
rowKey: "deviceId",
|
|
||||||
selection: false,
|
|
||||||
maxHeight: "45vh",
|
|
||||||
childs: [
|
|
||||||
{
|
|
||||||
style: "",
|
|
||||||
label: "厂商名称",
|
|
||||||
type: "",
|
|
||||||
prop: "vendorName",
|
|
||||||
align: "left",
|
|
||||||
width: "200",
|
|
||||||
"show-overflow-tooltip": false,
|
|
||||||
tempType: "span"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
style: "",
|
|
||||||
label: "型号名称",
|
|
||||||
type: "",
|
|
||||||
prop: "modelName",
|
|
||||||
align: "left",
|
|
||||||
width: "200",
|
|
||||||
"show-overflow-tooltip": false,
|
|
||||||
tempType: "span"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
style: "",
|
|
||||||
label: "设备类型",
|
|
||||||
type: "",
|
|
||||||
prop: "deviceTypeName",
|
|
||||||
align: "left",
|
|
||||||
width: "120",
|
|
||||||
"show-overflow-tooltip": false,
|
|
||||||
tempType: "span"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
style: "",
|
|
||||||
label: "产品PK",
|
|
||||||
type: "",
|
|
||||||
prop: "prodKey",
|
|
||||||
align: "left",
|
|
||||||
width: "",
|
|
||||||
"show-overflow-tooltip": false,
|
|
||||||
tempType: "span"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
style: "",
|
|
||||||
label: "产品密钥",
|
|
||||||
type: "",
|
|
||||||
prop: "prodSecret",
|
|
||||||
align: "left",
|
|
||||||
width: "",
|
|
||||||
"show-overflow-tooltip": false,
|
|
||||||
tempType: "span"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
tableList: {
|
|
||||||
type: Array
|
|
||||||
}
|
|
||||||
},
|
|
||||||
tableList: []
|
|
||||||
};
|
|
||||||
this.selectTableShow = true;
|
|
||||||
},
|
|
||||||
// 打开设备选择窗口 ——表格
|
|
||||||
openTableSelectDialog() {
|
|
||||||
this.selectResult = {};
|
|
||||||
this.tableSelectOption = {
|
|
||||||
otherOption: {
|
|
||||||
tableType: "device"
|
|
||||||
},
|
|
||||||
queryOpt: {
|
|
||||||
disable: false,
|
|
||||||
labelWidth: "68px",
|
|
||||||
params: {
|
|
||||||
deviceName: "",
|
|
||||||
modelId: "",
|
|
||||||
parentId: 0,
|
|
||||||
deviceType: "GATEWAY_CONTROLLER"
|
|
||||||
},
|
|
||||||
page: {
|
|
||||||
pageSize: 10,
|
|
||||||
pageNum: 1,
|
|
||||||
total: 0
|
|
||||||
},
|
|
||||||
inline: true,
|
|
||||||
queryChilds: [
|
|
||||||
{
|
|
||||||
style: "",
|
|
||||||
placeholder: "设备名称",
|
|
||||||
clearable: true,
|
|
||||||
label: "设备名称",
|
|
||||||
type: "input",
|
|
||||||
key: "deviceName",
|
|
||||||
size: "small",
|
|
||||||
value: ""
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
tableOpt: {
|
|
||||||
loading: false,
|
|
||||||
rowKey: "deviceId",
|
|
||||||
selection: false,
|
|
||||||
maxHeight: "45vh",
|
|
||||||
childs: [
|
|
||||||
{
|
|
||||||
style: "",
|
|
||||||
label: "所属型号",
|
|
||||||
type: "",
|
|
||||||
prop: "modelName",
|
|
||||||
align: "left",
|
|
||||||
width: "",
|
|
||||||
"show-overflow-tooltip": false,
|
|
||||||
tempType: "span"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
style: "",
|
|
||||||
label: "设备名称",
|
|
||||||
type: "",
|
|
||||||
prop: "deviceName",
|
|
||||||
align: "left",
|
|
||||||
width: "",
|
|
||||||
"show-overflow-tooltip": false,
|
|
||||||
tempType: "span"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
style: "",
|
|
||||||
label: "设备Key",
|
|
||||||
type: "",
|
|
||||||
prop: "deviceKey",
|
|
||||||
align: "left",
|
|
||||||
width: "",
|
|
||||||
"show-overflow-tooltip": false,
|
|
||||||
tempType: "span"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
style: "",
|
|
||||||
label: "创建时间",
|
|
||||||
type: "time",
|
|
||||||
prop: "createTime",
|
|
||||||
align: "center",
|
|
||||||
width: "160",
|
|
||||||
"show-overflow-tooltip": false,
|
|
||||||
tempType: "span"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
tableList: {
|
|
||||||
type: Array
|
|
||||||
}
|
|
||||||
},
|
|
||||||
tableList: []
|
|
||||||
};
|
|
||||||
this.selectTableShow = true;
|
|
||||||
},
|
|
||||||
// 查询回调
|
|
||||||
childGetList(data) {
|
|
||||||
if (data.otherOption.tableType === "device") {
|
|
||||||
this.deviceChildList(data);
|
|
||||||
} else if (data.otherOption.tableType === "model") {
|
|
||||||
this.modelChildList(data);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
initGetModelList() {
|
initGetModelList() {
|
||||||
listModel({
|
listModel({
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
|
@ -499,74 +276,6 @@ export default {
|
||||||
this.queryModelOpt = response.rows;
|
this.queryModelOpt = response.rows;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
modelChildList(data) {
|
|
||||||
listModel(Object.assign(data.page, data.param, { selected: 1 })).then(
|
|
||||||
response => {
|
|
||||||
this.tableSelectOption.tableList = response.rows;
|
|
||||||
this.tableSelectOption.queryOpt.page.total = Number(response.total);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
deviceChildList(data) {
|
|
||||||
listDevice(Object.assign(data.page, data.param, { selected: 1 })).then(
|
|
||||||
response => {
|
|
||||||
this.tableSelectOption.tableList = response.rows;
|
|
||||||
this.tableSelectOption.queryOpt.page.total = Number(response.total);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
// 根据 型号id 获取 型号详情
|
|
||||||
getModelInfoById(modelId) {
|
|
||||||
getModel(modelId).then(res => {
|
|
||||||
this.$refs.paramWrap.setList(res.data.paramList || []);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
// 点击或者双击数据回调
|
|
||||||
returnEvent(data) {
|
|
||||||
if (data.type === "dblclick") {
|
|
||||||
if (data.otherOption.tableType === "device") {
|
|
||||||
this.form.parentId = data.value.deviceId;
|
|
||||||
this.form.parentName = data.value.deviceName;
|
|
||||||
} else if (data.otherOption.tableType === "model") {
|
|
||||||
this.getModelInfoById(data.value.modelId);
|
|
||||||
this.form.modelId = data.value.modelId;
|
|
||||||
this.form.modelName = data.value.modelName;
|
|
||||||
this.form.deviceType = data.value.deviceType;
|
|
||||||
this.form.prodKey = data.value.prodKey;
|
|
||||||
this.deviceTypeChange(this.form.deviceType);
|
|
||||||
}
|
|
||||||
this.selectTableShow = false;
|
|
||||||
} else if (data.type === "click") {
|
|
||||||
this.selectResult = {};
|
|
||||||
if (data.otherOption.tableType === "device") {
|
|
||||||
this.selectResult.parentId = data.value.deviceId;
|
|
||||||
this.selectResult.parentName = data.value.deviceName;
|
|
||||||
} else if (data.otherOption.tableType === "model") {
|
|
||||||
this.selectResult.modelId = data.value.modelId;
|
|
||||||
this.selectResult.modelName = data.value.modelName;
|
|
||||||
this.selectResult.deviceType = data.value.deviceType;
|
|
||||||
// this.selectResult.paramList = data.value.paramList;
|
|
||||||
this.selectResult.prodKey = data.value.prodKey;
|
|
||||||
}
|
|
||||||
this.selectResult.tableType = data.otherOption.tableType;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 点击确定按钮
|
|
||||||
resuleClick() {
|
|
||||||
if (this.selectResult.tableType === "device") {
|
|
||||||
this.form.parentId = this.selectResult.parentId;
|
|
||||||
this.form.parentName = this.selectResult.parentName;
|
|
||||||
} else if (this.selectResult.tableType === "model") {
|
|
||||||
this.form.modelId = this.selectResult.modelId;
|
|
||||||
this.form.prodKey = this.selectResult.prodKey;
|
|
||||||
this.form.modelName = this.selectResult.modelName;
|
|
||||||
this.form.deviceType = this.selectResult.deviceType;
|
|
||||||
this.deviceTypeChange(this.form.deviceType);
|
|
||||||
this.getModelInfoById(this.selectResult.modelId);
|
|
||||||
// this.$refs.paramWrap.setList(this.selectResult.paramList || []);
|
|
||||||
}
|
|
||||||
this.selectTableShow = false;
|
|
||||||
},
|
|
||||||
deviceTypeChange(val) {
|
deviceTypeChange(val) {
|
||||||
if (val !== "MINIATURE_BREAKER") {
|
if (val !== "MINIATURE_BREAKER") {
|
||||||
this.form.parentId = 0;
|
this.form.parentId = 0;
|
||||||
|
|
|
@ -3,28 +3,62 @@
|
||||||
<!-- <el-button @click="closeDevcieData" type="danger">清空设备所有数据</el-button> -->
|
<!-- <el-button @click="closeDevcieData" type="danger">清空设备所有数据</el-button> -->
|
||||||
<div class="cmd-list" v-for="(doct, index) in cmdList" :key="index">
|
<div class="cmd-list" v-for="(doct, index) in cmdList" :key="index">
|
||||||
<div class="cmd-title-wrap">
|
<div class="cmd-title-wrap">
|
||||||
<svg-icon icon-class="A_product1" style="margin-right: 2px; height: 20px; width: 20px;" />分组名称:
|
<svg-icon
|
||||||
<span class="cmd-title">{{doct.cmdName}}</span>
|
icon-class="A_product1"
|
||||||
|
style="margin-right: 2px; height: 20px; width: 20px"
|
||||||
|
/>分组名称:
|
||||||
|
<span class="cmd-title">{{ doct.cmdName }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="param-item2" v-for="(doctItem, indexs) in doct.children" :key="indexs">
|
<div
|
||||||
|
class="param-item2"
|
||||||
|
v-for="(doctItem, indexs) in doct.children"
|
||||||
|
:key="indexs"
|
||||||
|
>
|
||||||
<div class="title-top">
|
<div class="title-top">
|
||||||
<span class="name-wr">{{doctItem.funName}}</span>
|
<span class="name-wr">{{ doctItem.funName }}</span>
|
||||||
<span class="type-wr" @click="handleShowData(doctItem)">查看</span>
|
<span class="type-wr" @click="handleShowData(doctItem)">查看</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="value-info">
|
<div class="value-info">
|
||||||
<div class="value-wrap">
|
<div class="value-wrap">
|
||||||
<span class="val-span" v-text="doctItem.lastValue === null || doctItem.lastValue === undefined ? '--' : doctItem.lastValue"> </span>
|
<span
|
||||||
|
class="val-span"
|
||||||
|
v-text="
|
||||||
|
doctItem.lastValue === null || doctItem.lastValue === undefined
|
||||||
|
? '--'
|
||||||
|
: doctItem.lastValue
|
||||||
|
"
|
||||||
|
>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="time-w">
|
<div class="time-w">
|
||||||
<span class="time-warp">{{doctItem.unitName}}</span>
|
<span class="time-warp">{{ doctItem.unitName }}</span>
|
||||||
<span class="time" v-text="doctItem.lastTime ? parseTime(doctItem.lastTime) : '--'"></span>
|
<span
|
||||||
|
class="time"
|
||||||
|
v-text="doctItem.lastTime ? parseTime(doctItem.lastTime) : '--'"
|
||||||
|
></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-dialog append-to-body class="device-run-state-dailog" title="查看数据" :visible.sync="dialogShow" width="700px" :close-on-click-modal="false" @close="dialogCloseCell" @opened="dialogOpen">
|
<el-dialog
|
||||||
<run-state-table :dialogData="dialogData" :prodId="prodId" :pro_type="dialogData.funDataType" :dialogShow="dialogShow" :deviceKey="deviceInfo.deviceKey" ref="showChart" />
|
append-to-body
|
||||||
|
class="device-run-state-dailog"
|
||||||
|
title="查看数据"
|
||||||
|
:visible.sync="dialogShow"
|
||||||
|
width="700px"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
@close="dialogCloseCell"
|
||||||
|
@opened="dialogOpen"
|
||||||
|
>
|
||||||
|
<run-state-table
|
||||||
|
:dialogData="dialogData"
|
||||||
|
:prodId="prodId"
|
||||||
|
:pro_type="dialogData.funDataType"
|
||||||
|
:dialogShow="dialogShow"
|
||||||
|
:deviceKey="deviceInfo.deviceKey"
|
||||||
|
ref="showChart"
|
||||||
|
/>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button size="small" @click="dialogShow = false">关 闭</el-button>
|
<el-button size="small" @click="dialogShow = false">关 闭</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -39,7 +73,7 @@ export default {
|
||||||
name: "RunStartsWrap",
|
name: "RunStartsWrap",
|
||||||
props: ["prodId", "sourceId", "deviceInfo"],
|
props: ["prodId", "sourceId", "deviceInfo"],
|
||||||
components: {
|
components: {
|
||||||
RunStateTable
|
RunStateTable,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -50,7 +84,7 @@ export default {
|
||||||
socket_flag: true,
|
socket_flag: true,
|
||||||
dialogData: {},
|
dialogData: {},
|
||||||
dialogShow: false,
|
dialogShow: false,
|
||||||
firstWsMassage: true
|
firstWsMassage: true,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
@ -60,15 +94,15 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
// 查看数据
|
// 查看数据
|
||||||
handleShowData(row) {
|
handleShowData(row) {
|
||||||
row.chartDate = new Date()
|
row.chartDate = new Date();
|
||||||
this.dialogData = row
|
this.dialogData = row;
|
||||||
this.dialogShow = true
|
this.dialogShow = true;
|
||||||
},
|
},
|
||||||
dialogOpen() {
|
dialogOpen() {
|
||||||
this.$refs.showChart.initDialog(this.dialogData)
|
this.$refs.showChart.initDialog(this.dialogData);
|
||||||
},
|
},
|
||||||
dialogCloseCell() {
|
dialogCloseCell() {
|
||||||
this.$refs.showChart.close()
|
this.$refs.showChart.close();
|
||||||
},
|
},
|
||||||
// 创建ws
|
// 创建ws
|
||||||
connection() {
|
connection() {
|
||||||
|
@ -82,9 +116,11 @@ export default {
|
||||||
let headers = {
|
let headers = {
|
||||||
clientid: this.deviceInfo.wsClientId,
|
clientid: this.deviceInfo.wsClientId,
|
||||||
username: this.deviceInfo.wsUsername,
|
username: this.deviceInfo.wsUsername,
|
||||||
sign: this.deviceInfo.wsSign
|
sign: this.deviceInfo.wsSign,
|
||||||
};
|
};
|
||||||
this.stompClient = new WebSocket(`${iotWebSocketBaseUrl}${headers.clientid}/${headers.username}/${headers.sign}`);
|
this.stompClient = new WebSocket(
|
||||||
|
`${iotWebSocketBaseUrl}${headers.clientid}/${headers.username}/${headers.sign}`
|
||||||
|
);
|
||||||
this.stompClient.onmessage = this.socket_onmsg;
|
this.stompClient.onmessage = this.socket_onmsg;
|
||||||
this.stompClient.onclose = this.socket_onclose;
|
this.stompClient.onclose = this.socket_onclose;
|
||||||
},
|
},
|
||||||
|
@ -93,33 +129,44 @@ export default {
|
||||||
},
|
},
|
||||||
setListData(data) {
|
setListData(data) {
|
||||||
this.recursionSet(this.cmdList, JSON.parse(data));
|
this.recursionSet(this.cmdList, JSON.parse(data));
|
||||||
this.firstWsMassage = false
|
this.firstWsMassage = false;
|
||||||
this.$forceUpdate()
|
this.$forceUpdate();
|
||||||
},
|
},
|
||||||
recursionSet(list, result) {
|
recursionSet(list, result) {
|
||||||
for(var i = 0; i<list.length; i++) {
|
for (var i = 0; i < list.length; i++) {
|
||||||
if (this.firstWsMassage) {
|
if (this.firstWsMassage) {
|
||||||
// result["cmd"] && list[i]['cmdKey'] === result["cmd"]
|
// result["cmd"] && list[i]['cmdKey'] === result["cmd"]
|
||||||
// if (result["cmd"] && list[i]['cmdKey'] === result["cmd"]) {
|
// if (result["cmd"] && list[i]['cmdKey'] === result["cmd"]) {
|
||||||
for(var v = 0; v<list[i].children.length; v++) {
|
for (var v = 0; v < list[i].children.length; v++) {
|
||||||
if (result.params[list[i].children[v]['funKey']] !== null && result.params[list[i].children[v]['funKey']] !== undefined) {
|
if (
|
||||||
list[i].children[v]['lastValue'] = result.params[list[i].children[v]['funKey']]
|
result.params[list[i].children[v]["funKey"]] !== null &&
|
||||||
list[i].children[v]['lastTime'] = result.params['timestamp'] ? result.params['timestamp'] : ''
|
result.params[list[i].children[v]["funKey"]] !== undefined
|
||||||
}
|
) {
|
||||||
|
list[i].children[v]["lastValue"] =
|
||||||
|
result.params[list[i].children[v]["funKey"]];
|
||||||
|
list[i].children[v]["lastTime"] = result.params["timestamp"]
|
||||||
|
? result.params["timestamp"]
|
||||||
|
: "";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// }
|
// }
|
||||||
} else {
|
} else {
|
||||||
if (result["cmd"] && list[i]['cmdKey'] === result["cmd"]) {
|
if (result["cmd"] && list[i]["cmdKey"] === result["cmd"]) {
|
||||||
for(var v = 0; v<list[i].children.length; v++) {
|
for (var v = 0; v < list[i].children.length; v++) {
|
||||||
if (result.params[list[i].children[v]['funKey']] !== null && result.params[list[i].children[v]['funKey']] !== undefined) {
|
if (
|
||||||
list[i].children[v]['lastValue'] = result.params[list[i].children[v]['funKey']],
|
result.params[list[i].children[v]["funKey"]] !== null &&
|
||||||
list[i].children[v]['lastTime'] = result.params['timestamp'] ? result.params['timestamp'] : ''
|
result.params[list[i].children[v]["funKey"]] !== undefined
|
||||||
|
) {
|
||||||
|
(list[i].children[v]["lastValue"] =
|
||||||
|
result.params[list[i].children[v]["funKey"]]),
|
||||||
|
(list[i].children[v]["lastTime"] = result.params["timestamp"]
|
||||||
|
? result.params["timestamp"]
|
||||||
|
: "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
socket_onclose(e) {
|
socket_onclose(e) {
|
||||||
|
@ -127,7 +174,7 @@ export default {
|
||||||
if (this.socket_flag) {
|
if (this.socket_flag) {
|
||||||
this.socket_flag = false;
|
this.socket_flag = false;
|
||||||
let self = this;
|
let self = this;
|
||||||
setTimeout(function() {
|
setTimeout(function () {
|
||||||
self.socket_flag = true;
|
self.socket_flag = true;
|
||||||
self.connection();
|
self.connection();
|
||||||
}, 10000);
|
}, 10000);
|
||||||
|
@ -138,9 +185,9 @@ export default {
|
||||||
cmdId: row.cmdId,
|
cmdId: row.cmdId,
|
||||||
deviceId: this.deviceInfo.deviceId,
|
deviceId: this.deviceInfo.deviceId,
|
||||||
cmdKey: row.cmdKey,
|
cmdKey: row.cmdKey,
|
||||||
deviceKey: this.deviceInfo.deviceKey
|
deviceKey: this.deviceInfo.deviceKey,
|
||||||
};
|
};
|
||||||
getDeviceFunList(param).then(res => {
|
getDeviceFunList(param).then((res) => {
|
||||||
row["children"] = res.data || [];
|
row["children"] = res.data || [];
|
||||||
this.$forceUpdate();
|
this.$forceUpdate();
|
||||||
});
|
});
|
||||||
|
@ -157,15 +204,15 @@ export default {
|
||||||
getCmdList() {
|
getCmdList() {
|
||||||
const params = {
|
const params = {
|
||||||
deviceId: this.deviceInfo.deviceId,
|
deviceId: this.deviceInfo.deviceId,
|
||||||
cmdType: "1"
|
cmdType: "1",
|
||||||
}
|
};
|
||||||
getDeviceCmdList(params).then(response => {
|
getDeviceCmdList(params).then((response) => {
|
||||||
this.cmdList = response.data;
|
this.cmdList = response.data;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
closeWebscoket() {
|
closeWebscoket() {
|
||||||
this.stompClient = null;
|
this.stompClient = null;
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
this.closeWebscoket();
|
this.closeWebscoket();
|
||||||
|
@ -176,11 +223,11 @@ export default {
|
||||||
val.forEach((v, index) => {
|
val.forEach((v, index) => {
|
||||||
this.forGetParmas(v, index);
|
this.forGetParmas(v, index);
|
||||||
});
|
});
|
||||||
setTimeout(this.connection, 3000)
|
setTimeout(this.connection, 3000);
|
||||||
// this.connection()
|
// this.connection()
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>-
|
</script>-
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
@ -260,8 +307,11 @@ export default {
|
||||||
.val-span {
|
.val-span {
|
||||||
color: #03a9f4;
|
color: #03a9f4;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
display: inline-block;
|
width: 280px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
display: inline-block;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -320,9 +370,11 @@ export default {
|
||||||
.val-span {
|
.val-span {
|
||||||
color: #03a9f4;
|
color: #03a9f4;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
display: inline-block;
|
width: 280px;
|
||||||
width: 100%;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
display: inline-block;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -346,5 +398,4 @@ export default {
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -116,7 +116,33 @@
|
||||||
<span class="dev-info-title" :title="item.deviceName">{{
|
<span class="dev-info-title" :title="item.deviceName">{{
|
||||||
item.deviceName
|
item.deviceName
|
||||||
}}</span>
|
}}</span>
|
||||||
<div class="dev-info-state">
|
<div class="dev-info-state" v-show="item.deviceId !== checkobxDeviceId">
|
||||||
|
<el-tag type="success" v-if="item.deviceState === 'ONLINE'"
|
||||||
|
>在线</el-tag
|
||||||
|
>
|
||||||
|
<el-tag
|
||||||
|
type="danger"
|
||||||
|
v-else-if="item.deviceState === 'OFFLINE'"
|
||||||
|
>离线</el-tag
|
||||||
|
>
|
||||||
|
<el-tag
|
||||||
|
type="danger"
|
||||||
|
v-else-if="item.deviceState === 'OUTLINE'"
|
||||||
|
>脱线</el-tag
|
||||||
|
>
|
||||||
|
<el-tag
|
||||||
|
type="info"
|
||||||
|
v-else-if="item.deviceState === 'UNACTIVE'"
|
||||||
|
>未激活</el-tag
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
size="mini"
|
||||||
|
@click="viewDeviceChange(item.deviceId)"
|
||||||
|
>查看</el-button
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="dev-info-state" v-show="item.deviceId === checkobxDeviceId">
|
||||||
<el-switch
|
<el-switch
|
||||||
size="mini"
|
size="mini"
|
||||||
v-model="item.switch"
|
v-model="item.switch"
|
||||||
|
@ -133,17 +159,17 @@
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
v-if="item.switch === '1'"
|
v-if="item.switch === '1'"
|
||||||
|
:disabled="item.deviceId !== checkobxDeviceId"
|
||||||
@click="submitChildStatus('false', item)"
|
@click="submitChildStatus('false', item)"
|
||||||
type="success"
|
type="success"
|
||||||
:disabled="item.deviceId !== checkobxDeviceId"
|
|
||||||
>关闭</el-button
|
>关闭</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
v-else-if="item.switch === '0'"
|
v-else-if="item.switch === '0'"
|
||||||
|
:disabled="item.deviceId !== checkobxDeviceId"
|
||||||
@click="submitChildStatus('true', item)"
|
@click="submitChildStatus('true', item)"
|
||||||
type="danger"
|
type="danger"
|
||||||
:disabled="item.deviceId !== checkobxDeviceId"
|
|
||||||
>开启</el-button
|
>开启</el-button
|
||||||
>
|
>
|
||||||
|
|
||||||
|
@ -196,6 +222,13 @@ export default {
|
||||||
wsDeviceInfo: {
|
wsDeviceInfo: {
|
||||||
handler: function () {
|
handler: function () {
|
||||||
if (this.deviceInfo.deviceId !== this.wsDeviceInfo.deviceId) {
|
if (this.deviceInfo.deviceId !== this.wsDeviceInfo.deviceId) {
|
||||||
|
for(let i =0; i < this.childDeviceList.length; i++) {
|
||||||
|
if (this.childDeviceList[i]['deviceId'] === this.wsDeviceInfo['deviceId']) {
|
||||||
|
this.childDeviceList[i]['switch'] = this.wsDeviceInfo['switch'].toString();
|
||||||
|
this.$forceUpdate()
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
// 更换设备 开启ws
|
// 更换设备 开启ws
|
||||||
this.connection();
|
this.connection();
|
||||||
}
|
}
|
||||||
|
@ -231,6 +264,7 @@ export default {
|
||||||
this.stompClient = new WebSocket(
|
this.stompClient = new WebSocket(
|
||||||
`${iotWebSocketBaseUrl}${headers.clientid}/${headers.username}/${headers.sign}`
|
`${iotWebSocketBaseUrl}${headers.clientid}/${headers.username}/${headers.sign}`
|
||||||
);
|
);
|
||||||
|
this.socket_flag = true;
|
||||||
this.stompClient.onopen = this.socket_open;
|
this.stompClient.onopen = this.socket_open;
|
||||||
this.stompClient.onmessage = this.socket_onmsg;
|
this.stompClient.onmessage = this.socket_onmsg;
|
||||||
this.stompClient.onclose = this.socket_onclose;
|
this.stompClient.onclose = this.socket_onclose;
|
||||||
|
@ -265,10 +299,12 @@ export default {
|
||||||
},
|
},
|
||||||
// 销毁事件
|
// 销毁事件
|
||||||
closeWebscoket() {
|
closeWebscoket() {
|
||||||
|
console.log(this.stompClient)
|
||||||
|
this.socket_flag = false;
|
||||||
if (this.stompClient) {
|
if (this.stompClient) {
|
||||||
|
console.log('we-close---')
|
||||||
this.stompClient.close();
|
this.stompClient.close();
|
||||||
}
|
}
|
||||||
this.socket_flag = false;
|
|
||||||
this.stompClient = null;
|
this.stompClient = null;
|
||||||
clearTimeout(this.setTimeOut_flag);
|
clearTimeout(this.setTimeOut_flag);
|
||||||
},
|
},
|
||||||
|
@ -278,6 +314,7 @@ export default {
|
||||||
confirmButtonText: "确定",
|
confirmButtonText: "确定",
|
||||||
cancelButtonText: "取消",
|
cancelButtonText: "取消",
|
||||||
inputPattern: /^[a-z A-z 0-9 $.]+/,
|
inputPattern: /^[a-z A-z 0-9 $.]+/,
|
||||||
|
inputType: 'password',
|
||||||
inputErrorMessage: "登录密码不能为空",
|
inputErrorMessage: "登录密码不能为空",
|
||||||
}).then(({ value }) => {
|
}).then(({ value }) => {
|
||||||
let params = {
|
let params = {
|
||||||
|
|
|
@ -2,28 +2,63 @@
|
||||||
<div class="device-run-starts-wrap">
|
<div class="device-run-starts-wrap">
|
||||||
<div class="cmd-list" v-for="(doct, index) in cmdList" :key="index">
|
<div class="cmd-list" v-for="(doct, index) in cmdList" :key="index">
|
||||||
<div class="cmd-title-wrap">
|
<div class="cmd-title-wrap">
|
||||||
<svg-icon icon-class="A_product1" style="margin-right: 2px; height: 20px; width: 20px;" />分组名称:
|
<svg-icon
|
||||||
<span class="cmd-title">{{doct.cmdName}}</span>
|
icon-class="A_product1"
|
||||||
|
style="margin-right: 2px; height: 20px; width: 20px"
|
||||||
|
/>分组名称:
|
||||||
|
<span class="cmd-title">{{ doct.cmdName }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="param-item2" v-for="(doctItem, indexs) in doct.children" :key="indexs">
|
<div
|
||||||
|
class="param-item2"
|
||||||
|
v-for="(doctItem, indexs) in doct.children"
|
||||||
|
:key="indexs"
|
||||||
|
>
|
||||||
<div class="title-top">
|
<div class="title-top">
|
||||||
<span class="name-wr">{{doctItem.funName}}</span>
|
<span class="name-wr">{{ doctItem.funName }}</span>
|
||||||
<span class="type-wr" @click="handleShowData(doctItem)">查看</span>
|
<span class="type-wr" @click="handleShowData(doctItem)">查看</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="value-info">
|
<div class="value-info">
|
||||||
<div class="value-wrap">
|
<div class="value-wrap">
|
||||||
<span class="val-span" v-text="doctItem.lastValue === null || doctItem.lastValue === undefined ? '--' : doctItem.lastValue"> </span>
|
<span
|
||||||
|
class="val-span"
|
||||||
|
v-text="
|
||||||
|
doctItem.lastValue === null || doctItem.lastValue === undefined
|
||||||
|
? '--'
|
||||||
|
: doctItem.lastValue
|
||||||
|
"
|
||||||
|
>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="time-w">
|
<div class="time-w">
|
||||||
<span class="time-warp">{{doctItem.unitName}}</span>
|
<span class="time-warp">{{ doctItem.unitName }}</span>
|
||||||
<span class="time" v-text="doctItem.lastTime ? parseTime(doctItem.lastTime) : '--'"></span>
|
<span
|
||||||
|
class="time"
|
||||||
|
v-text="doctItem.lastTime ? parseTime(doctItem.lastTime) : '--'"
|
||||||
|
></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-dialog append-to-body class="device-run-state-dailog" title="查看数据" :visible.sync="dialogShow" width="700px" :close-on-click-modal="false" @close="dialogCloseCell" @opened="dialogOpen">
|
<el-dialog
|
||||||
<run-state-table :dialogData="dialogData" :deviceId="sourceId" :prodId="prodId" :pro_type="dialogData.funDataType" :dialogShow="dialogShow" :deviceKey="deviceInfo.deviceKey" ref="showChart" />
|
append-to-body
|
||||||
|
class="device-run-state-dailog"
|
||||||
|
title="查看数据"
|
||||||
|
:visible.sync="dialogShow"
|
||||||
|
width="700px"
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
@close="dialogCloseCell"
|
||||||
|
@opened="dialogOpen"
|
||||||
|
>
|
||||||
|
<run-state-table
|
||||||
|
:dialogData="dialogData"
|
||||||
|
:deviceId="sourceId"
|
||||||
|
:prodId="prodId"
|
||||||
|
:pro_type="dialogData.funDataType"
|
||||||
|
:dialogShow="dialogShow"
|
||||||
|
:deviceKey="deviceInfo.deviceKey"
|
||||||
|
ref="showChart"
|
||||||
|
/>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button size="small" @click="dialogShow = false">关 闭</el-button>
|
<el-button size="small" @click="dialogShow = false">关 闭</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -38,7 +73,7 @@ export default {
|
||||||
name: "RunStartsWrap",
|
name: "RunStartsWrap",
|
||||||
props: ["prodId", "sourceId", "deviceInfo"],
|
props: ["prodId", "sourceId", "deviceInfo"],
|
||||||
components: {
|
components: {
|
||||||
RunStateTable
|
RunStateTable,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -49,7 +84,7 @@ export default {
|
||||||
socket_flag: true,
|
socket_flag: true,
|
||||||
dialogData: {},
|
dialogData: {},
|
||||||
dialogShow: false,
|
dialogShow: false,
|
||||||
firstWsMassage: true
|
firstWsMassage: true,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
@ -59,15 +94,15 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
// 查看数据
|
// 查看数据
|
||||||
handleShowData(row) {
|
handleShowData(row) {
|
||||||
row.chartDate = new Date()
|
row.chartDate = new Date();
|
||||||
this.dialogData = row
|
this.dialogData = row;
|
||||||
this.dialogShow = true
|
this.dialogShow = true;
|
||||||
},
|
},
|
||||||
dialogOpen() {
|
dialogOpen() {
|
||||||
this.$refs.showChart.initDialog(this.dialogData)
|
this.$refs.showChart.initDialog(this.dialogData);
|
||||||
},
|
},
|
||||||
dialogCloseCell() {
|
dialogCloseCell() {
|
||||||
this.$refs.showChart.close()
|
this.$refs.showChart.close();
|
||||||
},
|
},
|
||||||
// 创建ws
|
// 创建ws
|
||||||
connection() {
|
connection() {
|
||||||
|
@ -81,9 +116,11 @@ export default {
|
||||||
let headers = {
|
let headers = {
|
||||||
clientid: this.deviceInfo.wsClientId,
|
clientid: this.deviceInfo.wsClientId,
|
||||||
username: this.deviceInfo.wsUsername,
|
username: this.deviceInfo.wsUsername,
|
||||||
sign: this.deviceInfo.wsSign
|
sign: this.deviceInfo.wsSign,
|
||||||
};
|
};
|
||||||
this.stompClient = new WebSocket(`${iotWebSocketBaseUrl}${headers.clientid}/${headers.username}/${headers.sign}`);
|
this.stompClient = new WebSocket(
|
||||||
|
`${iotWebSocketBaseUrl}${headers.clientid}/${headers.username}/${headers.sign}`
|
||||||
|
);
|
||||||
this.stompClient.onmessage = this.socket_onmsg;
|
this.stompClient.onmessage = this.socket_onmsg;
|
||||||
this.stompClient.onclose = this.socket_onclose;
|
this.stompClient.onclose = this.socket_onclose;
|
||||||
},
|
},
|
||||||
|
@ -92,33 +129,44 @@ export default {
|
||||||
},
|
},
|
||||||
setListData(data) {
|
setListData(data) {
|
||||||
this.recursionSet(this.cmdList, JSON.parse(data));
|
this.recursionSet(this.cmdList, JSON.parse(data));
|
||||||
this.firstWsMassage = false
|
this.firstWsMassage = false;
|
||||||
this.$forceUpdate()
|
this.$forceUpdate();
|
||||||
},
|
},
|
||||||
recursionSet(list, result) {
|
recursionSet(list, result) {
|
||||||
for(var i = 0; i<list.length; i++) {
|
for (var i = 0; i < list.length; i++) {
|
||||||
if (this.firstWsMassage) {
|
if (this.firstWsMassage) {
|
||||||
// result["cmd"] && list[i]['cmdKey'] === result["cmd"]
|
// result["cmd"] && list[i]['cmdKey'] === result["cmd"]
|
||||||
// if (result["cmd"] && list[i]['cmdKey'] === result["cmd"]) {
|
// if (result["cmd"] && list[i]['cmdKey'] === result["cmd"]) {
|
||||||
for(var v = 0; v<list[i].children.length; v++) {
|
for (var v = 0; v < list[i].children.length; v++) {
|
||||||
if (result.params[list[i].children[v]['funKey']] !== null && result.params[list[i].children[v]['funKey']] !== undefined) {
|
if (
|
||||||
list[i].children[v]['lastValue'] = result.params[list[i].children[v]['funKey']]
|
result.params[list[i].children[v]["funKey"]] !== null &&
|
||||||
list[i].children[v]['lastTime'] = result.params['timestamp'] ? result.params['timestamp'] : ''
|
result.params[list[i].children[v]["funKey"]] !== undefined
|
||||||
}
|
) {
|
||||||
|
list[i].children[v]["lastValue"] =
|
||||||
|
result.params[list[i].children[v]["funKey"]];
|
||||||
|
list[i].children[v]["lastTime"] = result.params["timestamp"]
|
||||||
|
? result.params["timestamp"]
|
||||||
|
: "";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// }
|
// }
|
||||||
} else {
|
} else {
|
||||||
if (result["cmd"] && list[i]['cmdKey'] === result["cmd"]) {
|
if (result["cmd"] && list[i]["cmdKey"] === result["cmd"]) {
|
||||||
for(var v = 0; v<list[i].children.length; v++) {
|
for (var v = 0; v < list[i].children.length; v++) {
|
||||||
if (result.params[list[i].children[v]['funKey']] !== null && result.params[list[i].children[v]['funKey']] !== undefined) {
|
if (
|
||||||
list[i].children[v]['lastValue'] = result.params[list[i].children[v]['funKey']],
|
result.params[list[i].children[v]["funKey"]] !== null &&
|
||||||
list[i].children[v]['lastTime'] = result.params['timestamp'] ? result.params['timestamp'] : ''
|
result.params[list[i].children[v]["funKey"]] !== undefined
|
||||||
|
) {
|
||||||
|
(list[i].children[v]["lastValue"] =
|
||||||
|
result.params[list[i].children[v]["funKey"]]),
|
||||||
|
(list[i].children[v]["lastTime"] = result.params["timestamp"]
|
||||||
|
? result.params["timestamp"]
|
||||||
|
: "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
socket_onclose(e) {
|
socket_onclose(e) {
|
||||||
|
@ -126,7 +174,7 @@ export default {
|
||||||
if (this.socket_flag) {
|
if (this.socket_flag) {
|
||||||
this.socket_flag = false;
|
this.socket_flag = false;
|
||||||
let self = this;
|
let self = this;
|
||||||
setTimeout(function() {
|
setTimeout(function () {
|
||||||
self.socket_flag = true;
|
self.socket_flag = true;
|
||||||
self.connection();
|
self.connection();
|
||||||
}, 10000);
|
}, 10000);
|
||||||
|
@ -137,9 +185,9 @@ export default {
|
||||||
cmdId: row.cmdId,
|
cmdId: row.cmdId,
|
||||||
deviceId: this.deviceInfo.deviceId,
|
deviceId: this.deviceInfo.deviceId,
|
||||||
cmdKey: row.cmdKey,
|
cmdKey: row.cmdKey,
|
||||||
deviceKey: this.deviceInfo.deviceKey
|
deviceKey: this.deviceInfo.deviceKey,
|
||||||
};
|
};
|
||||||
getDeviceFunList(param).then(res => {
|
getDeviceFunList(param).then((res) => {
|
||||||
row["children"] = res.data || [];
|
row["children"] = res.data || [];
|
||||||
this.$forceUpdate();
|
this.$forceUpdate();
|
||||||
});
|
});
|
||||||
|
@ -156,9 +204,9 @@ export default {
|
||||||
getCmdList() {
|
getCmdList() {
|
||||||
const params = {
|
const params = {
|
||||||
deviceId: this.deviceInfo.deviceId,
|
deviceId: this.deviceInfo.deviceId,
|
||||||
cmdType: "1"
|
cmdType: "1",
|
||||||
}
|
};
|
||||||
getDeviceCmdList(params).then(response => {
|
getDeviceCmdList(params).then((response) => {
|
||||||
this.cmdList = response.data;
|
this.cmdList = response.data;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -169,7 +217,7 @@ export default {
|
||||||
this.socket_flag = false;
|
this.socket_flag = false;
|
||||||
this.stompClient = null;
|
this.stompClient = null;
|
||||||
clearTimeout(this.setTimeOut_flag);
|
clearTimeout(this.setTimeOut_flag);
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
this.closeWebscoket();
|
this.closeWebscoket();
|
||||||
|
@ -180,11 +228,11 @@ export default {
|
||||||
val.forEach((v, index) => {
|
val.forEach((v, index) => {
|
||||||
this.forGetParmas(v, index);
|
this.forGetParmas(v, index);
|
||||||
});
|
});
|
||||||
setTimeout(this.connection, 3000)
|
setTimeout(this.connection, 3000);
|
||||||
// this.connection()
|
// this.connection()
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>-
|
</script>-
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
@ -264,8 +312,11 @@ export default {
|
||||||
.val-span {
|
.val-span {
|
||||||
color: #03a9f4;
|
color: #03a9f4;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
display: inline-block;
|
width: 280px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
display: inline-block;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -324,9 +375,11 @@ export default {
|
||||||
.val-span {
|
.val-span {
|
||||||
color: #03a9f4;
|
color: #03a9f4;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
display: inline-block;
|
width: 280px;
|
||||||
width: 100%;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
display: inline-block;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -350,5 +403,4 @@ export default {
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
Loading…
Reference in New Issue