fix: 太阳能网控设置,功能优化。
This commit is contained in:
19
src/types/components.d.ts
vendored
19
src/types/components.d.ts
vendored
@@ -13,21 +13,14 @@ declare module 'vue' {
|
||||
Breadcrumb: typeof import('./../components/Breadcrumb/index.vue')['default']
|
||||
DictTag: typeof import('./../components/DictTag/index.vue')['default']
|
||||
Editor: typeof import('./../components/Editor/index.vue')['default']
|
||||
ElAlert: typeof import('element-plus/es')['ElAlert']
|
||||
ElBadge: typeof import('element-plus/es')['ElBadge']
|
||||
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
|
||||
ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
|
||||
ElButton: typeof import('element-plus/es')['ElButton']
|
||||
ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup']
|
||||
ElCard: typeof import('element-plus/es')['ElCard']
|
||||
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
|
||||
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
|
||||
ElCol: typeof import('element-plus/es')['ElCol']
|
||||
ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
|
||||
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
|
||||
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
||||
ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
|
||||
ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
|
||||
ElDialog: typeof import('element-plus/es')['ElDialog']
|
||||
ElDivider: typeof import('element-plus/es')['ElDivider']
|
||||
ElDrawer: typeof import('element-plus/es')['ElDrawer']
|
||||
@@ -38,18 +31,14 @@ declare module 'vue' {
|
||||
ElForm: typeof import('element-plus/es')['ElForm']
|
||||
ElFormItem: typeof import('element-plus/es')['ElFormItem']
|
||||
ElIcon: typeof import('element-plus/es')['ElIcon']
|
||||
ElImage: typeof import('element-plus/es')['ElImage']
|
||||
ElInput: typeof import('element-plus/es')['ElInput']
|
||||
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
|
||||
ElLink: typeof import('element-plus/es')['ElLink']
|
||||
ElMenu: typeof import('element-plus/es')['ElMenu']
|
||||
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
|
||||
ElOption: typeof import('element-plus/es')['ElOption']
|
||||
ElOptionGroup: typeof import('element-plus/es')['ElOptionGroup']
|
||||
ElPagination: typeof import('element-plus/es')['ElPagination']
|
||||
ElPopover: typeof import('element-plus/es')['ElPopover']
|
||||
ElRadio: typeof import('element-plus/es')['ElRadio']
|
||||
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
|
||||
ElRow: typeof import('element-plus/es')['ElRow']
|
||||
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
|
||||
ElSelect: typeof import('element-plus/es')['ElSelect']
|
||||
@@ -57,22 +46,14 @@ declare module 'vue' {
|
||||
ElSwitch: typeof import('element-plus/es')['ElSwitch']
|
||||
ElTable: typeof import('element-plus/es')['ElTable']
|
||||
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
|
||||
ElTabPane: typeof import('element-plus/es')['ElTabPane']
|
||||
ElTabs: typeof import('element-plus/es')['ElTabs']
|
||||
ElTag: typeof import('element-plus/es')['ElTag']
|
||||
ElText: typeof import('element-plus/es')['ElText']
|
||||
ElTooltip: typeof import('element-plus/es')['ElTooltip']
|
||||
ElTree: typeof import('element-plus/es')['ElTree']
|
||||
ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
|
||||
ElUpload: typeof import('element-plus/es')['ElUpload']
|
||||
FileUpload: typeof import('./../components/FileUpload/index.vue')['default']
|
||||
FlowChart: typeof import('./../components/Process/flowChart.vue')['default']
|
||||
FlowChartImg: typeof import('./../components/Process/flowChartImg.vue')['default']
|
||||
Hamburger: typeof import('./../components/Hamburger/index.vue')['default']
|
||||
IconSelect: typeof import('./../components/IconSelect/index.vue')['default']
|
||||
IEpCaretBottom: typeof import('~icons/ep/caret-bottom')['default']
|
||||
IEpCaretTop: typeof import('~icons/ep/caret-top')['default']
|
||||
IEpUploadFilled: typeof import('~icons/ep/upload-filled')['default']
|
||||
IFrame: typeof import('./../components/iFrame/index.vue')['default']
|
||||
ImagePreview: typeof import('./../components/ImagePreview/index.vue')['default']
|
||||
ImageUpload: typeof import('./../components/ImageUpload/index.vue')['default']
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
{{ formatValue(scope.row.salinityCompensation) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="线性补偿" align="center" prop="phaseCompensation" width="120">
|
||||
<!-- <el-table-column label="线性补偿" align="center" prop="phaseCompensation" width="120">
|
||||
<template #default="scope">
|
||||
{{ formatValue(scope.row.phaseCompensation) }}
|
||||
</template>
|
||||
@@ -69,13 +69,13 @@
|
||||
<template #default="scope">
|
||||
{{ formatValue(scope.row.temperatureCompensation) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column> -->
|
||||
<el-table-column label="最后上数时间" align="center" prop="lastReportTime" min-width="170">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.lastReportTime, '{y}-{m}-{d} {h}:{i}:{s}') || '-' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" fixed="right" width="170">
|
||||
<el-table-column label="操作" align="center" fixed="right" width="260">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Refresh" :loading="statusLoadingId === scope.row.id" @click="refreshStatus(scope.row)">刷新状态</el-button>
|
||||
<el-button link type="primary" icon="Position" @click="openCommand(scope.row)" v-hasPermi="['fishery:solarControl:command']">下发指令</el-button>
|
||||
@@ -96,14 +96,6 @@
|
||||
<el-tag :type="getStatusTagType(currentDevice)" size="large">{{ getStatusText(currentDevice) }}</el-tag>
|
||||
</div>
|
||||
|
||||
<el-alert
|
||||
class="mb-[12px]"
|
||||
:title="currentDevice.online ? '设备在线,将直接下发到太阳能网控。' : '设备离线,将写入缓存,待设备上线后自动下发。'"
|
||||
:type="currentDevice.online ? 'success' : 'warning'"
|
||||
show-icon
|
||||
:closable="false"
|
||||
/>
|
||||
|
||||
<el-form ref="commandFormRef" :model="commandForm" :rules="commandRules" label-width="130px">
|
||||
<el-form-item label="下发属性" prop="identifier">
|
||||
<el-select v-model="commandForm.identifier" filterable placeholder="请选择属性" style="width: 100%" @change="handlePropertyChange">
|
||||
@@ -167,24 +159,7 @@
|
||||
<template #footer>
|
||||
<div class="command-footer">
|
||||
<el-button @click="commandOpen = false">取消</el-button>
|
||||
<el-button
|
||||
v-if="currentDevice?.online"
|
||||
type="primary"
|
||||
icon="Position"
|
||||
:loading="submitLoading"
|
||||
@click="submitCommand(false)"
|
||||
>
|
||||
直接下发
|
||||
</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
type="warning"
|
||||
icon="Clock"
|
||||
:loading="submitLoading"
|
||||
@click="submitCommand(true)"
|
||||
>
|
||||
缓存下发
|
||||
</el-button>
|
||||
<el-button type="primary" icon="Position" :loading="submitLoading" @click="submitCommand">下发</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
@@ -484,7 +459,7 @@ const handlePropertyChange = (identifier: string) => {
|
||||
}
|
||||
};
|
||||
|
||||
const submitCommand = async (cache: boolean) => {
|
||||
const submitCommand = async () => {
|
||||
if (!currentDevice.value || !selectedProperty.value) {
|
||||
return;
|
||||
}
|
||||
@@ -497,10 +472,9 @@ const submitCommand = async (cache: boolean) => {
|
||||
id: currentDevice.value.id,
|
||||
properties: {
|
||||
[property.identifier]: value
|
||||
},
|
||||
cache
|
||||
}
|
||||
});
|
||||
ElMessage.success(cache ? '已写入缓存,设备上线后自动下发' : '下发成功');
|
||||
ElMessage.success('下发成功');
|
||||
commandOpen.value = false;
|
||||
await getList();
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user