物模型:查询切换模型时页码为1,查询添加名称编码参数
机构:查询切换模型时页码为1 单风机: 添加命令 控制:修改请求接口,修改调用方式 新增页面操作记录
This commit is contained in:
parent
5ee9802c4f
commit
b52765db67
@ -1,17 +1,19 @@
|
||||
import createAxios from '/@/utils/axios'
|
||||
import { CommandReqType, CommandResType } from '/@/views/backend/equipment/airBlower/type'
|
||||
|
||||
export const sendValue146Req = (data: any) => {
|
||||
return createAxios({
|
||||
url: '/api/node/link/setPoint',
|
||||
|
||||
export const sendCommandReq = (data: CommandReqType) => {
|
||||
return createAxios<never, Promise<CommandResType>>({
|
||||
url: '/api/operation/command',
|
||||
method: 'post',
|
||||
data: data,
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export const sendValue147Req = (data: any) => {
|
||||
return createAxios({
|
||||
url: '/api/node/link/command',
|
||||
export const sendManualCommandReq = (data: CommandReqType) => {
|
||||
return createAxios<never, Promise<CommandResType>>({
|
||||
url: '/api/operation/manualCommand',
|
||||
method: 'post',
|
||||
data: data,
|
||||
data: data
|
||||
})
|
||||
}
|
||||
}
|
||||
|
9
ui/dasadmin/src/api/backend/operatingRecord/request.ts
Normal file
9
ui/dasadmin/src/api/backend/operatingRecord/request.ts
Normal file
@ -0,0 +1,9 @@
|
||||
import createAxios from '/@/utils/axios'
|
||||
import { OperatingReqType, ReturnType } from '/@/views/backend/operatingRecord/type'
|
||||
export const getOperatingListReq = (data: OperatingReqType) => {
|
||||
return createAxios<never, Promise<ReturnType>>({
|
||||
url: '/api/operation/getEventLogList',
|
||||
method: 'post',
|
||||
data: data,
|
||||
})
|
||||
}
|
@ -106,11 +106,19 @@
|
||||
<el-tag class="control-tag" type="primary">{{ realTimeDataState }}</el-tag>
|
||||
</div>
|
||||
<div class="btnLeft">
|
||||
<el-button v-if="realTimeData.iturbineoperationmode !== 16" class="control-btn" type="primary">启动</el-button>
|
||||
<el-button v-else class="control-btn" type="primary">停机</el-button>
|
||||
<el-button class="control-btn" type="primary">复位</el-button>
|
||||
<el-button v-if="realTimeData.locked !== 1" class="control-btn" type="primary">锁定</el-button>
|
||||
<el-button v-else class="control-btn" type="primary">解锁</el-button>
|
||||
<el-button
|
||||
@click="sendCommand('setTurbineFastStart')"
|
||||
v-if="realTimeData.iturbineoperationmode !== 16"
|
||||
class="control-btn"
|
||||
type="primary"
|
||||
>启动</el-button
|
||||
>
|
||||
<el-button @click="sendCommand('setTurbineStop')" v-else class="control-btn" type="primary">停机</el-button>
|
||||
<el-button @click="sendCommand('setTurbineResetStatusCode')" class="control-btn" type="primary">复位</el-button>
|
||||
<el-button @click="sendManualCommand(1)" v-if="realTimeData.locked !== 1" class="control-btn" type="primary"
|
||||
>锁定</el-button
|
||||
>
|
||||
<el-button @click="sendManualCommand(0)" v-else class="control-btn" type="primary">解锁</el-button>
|
||||
</div>
|
||||
<el-tooltip content="变桨/轮毂系统">
|
||||
<div @click="openSubSystem(1)" class="dot index-1"></div>
|
||||
@ -206,7 +214,7 @@
|
||||
</div>
|
||||
<div class="summarize-panel-base">
|
||||
<div>
|
||||
<span class="content-number">{{ realTimeDataForSingle.windfarmmonthprodenergy }}</span>
|
||||
<span class="content-number">{{ realTimeDataForSingle.monthprodenergy }}</span>
|
||||
</div>
|
||||
<div><span>万kWh</span></div>
|
||||
<div><span>月发电量</span></div>
|
||||
@ -220,7 +228,7 @@
|
||||
</div>
|
||||
<div class="summarize-panel-base">
|
||||
<div>
|
||||
<span class="content-number">{{ realTimeDataForSingle.windfarmyearprodenergy }}</span>
|
||||
<span class="content-number">{{ realTimeDataForSingle.yearprodenergy }}</span>
|
||||
</div>
|
||||
<div><span>万kWh</span></div>
|
||||
<div><span>年发电量</span></div>
|
||||
@ -314,16 +322,15 @@ import { getModelAttributeListReq } from '/@/api/backend/deviceModel/request'
|
||||
import { useRoute } from 'vue-router'
|
||||
import Overview from './overview.vue'
|
||||
import { TableInstance } from 'element-plus'
|
||||
import { dayjs } from 'element-plus'
|
||||
import { dayjs, ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { getRealTimeState, getCutDecimalsValue } from '/@/views/backend/equipment/airBlower/utils'
|
||||
import { get } from 'sortablejs'
|
||||
import { sendCommandReq, sendManualCommandReq } from '/@/api/backend/control/request'
|
||||
|
||||
const route = useRoute()
|
||||
|
||||
const d = new Date()
|
||||
const { t } = useI18n()
|
||||
let timer: any = null
|
||||
let myTable = ref<TableInstance>()
|
||||
const radioactiveName = ref('1')
|
||||
|
||||
const overviewData = reactive({
|
||||
iul1_690v: '-',
|
||||
@ -351,8 +358,8 @@ const realTimeDataForSingle = ref<any>({
|
||||
ipitchangle: '',
|
||||
iwindspeed: '-',
|
||||
iwinddirection: '-',
|
||||
windfarmmonthprodenergy: '-',
|
||||
windfarmyearprodenergy: '-',
|
||||
monthprodenergy: '-',
|
||||
yearprodenergy: '-',
|
||||
})
|
||||
|
||||
const state: {
|
||||
@ -1039,11 +1046,15 @@ const createRealTimeData = async () => {
|
||||
const modelList: any = await getModelList()
|
||||
const realData: any = await getRealTimeData()
|
||||
realTimeData.value.iturbineoperationmode = getRealTimeState(realData)
|
||||
realTimeData.value.locked = realData.locked
|
||||
|
||||
temperatureChartsData[0].value = getCutDecimalsValue(realData.itempoutdoor_1sec)
|
||||
temperatureChartsData[1].value = getCutDecimalsValue(realData.itempnacelle_1sec)
|
||||
temperatureChartsData[2].value = getCutDecimalsValue(realData.itempoutdoor_1sec)
|
||||
|
||||
const ipitchangle = Math.min(realData.ipitchangle1, realData.ipitchangle2, realData.ipitchangle3)
|
||||
realTimeDataForSingle.value.ipitchangle = ipitchangle / 1 === 0 ? ipitchangle : Math.floor(ipitchangle * 1000) / 1000
|
||||
|
||||
const overviewDatakeys: any = Object.keys(overviewData)
|
||||
const sigleDataKeys: any = Object.keys(realTimeDataForSingle.value)
|
||||
|
||||
@ -1063,13 +1074,6 @@ const createRealTimeData = async () => {
|
||||
if (sigleDataKeys.includes(item.attributeCode.toLowerCase())) {
|
||||
realTimeDataForSingle.value[item.attributeCode.toLowerCase()] = val === '-' ? val : val
|
||||
}
|
||||
if (
|
||||
item.attributeCode.toLowerCase() === 'ipitchangle1' ||
|
||||
item.attributeCode.toLowerCase() === 'ipitchangle2' ||
|
||||
item.attributeCode.toLowerCase() === 'ipitchangle3'
|
||||
) {
|
||||
realTimeDataForSingle.value.ipitchangle = Math.min(realTimeDataForSingle.value.ipitchangle, realVal)
|
||||
}
|
||||
if (overviewDatakeys.includes(item.attributeCode.toLowerCase())) {
|
||||
overviewData[item.attributeCode.toLowerCase() as keyof typeof overviewData] = val === '-' ? val : val + item.unit
|
||||
}
|
||||
@ -1359,6 +1363,58 @@ const getAllChartData = (type: ('power' | 'trend' | 'frequency')[] = ['power', '
|
||||
}
|
||||
}
|
||||
|
||||
const sendCommand = (type: 'setTurbineFastStart' | 'setTurbineStop' | 'setTurbineResetStatusCode') => {
|
||||
const sendTypeEnum = {
|
||||
setTurbineFastStart: '风机快速启动指令',
|
||||
setTurbineStop: '风机停机指令',
|
||||
setTurbineResetStatusCode: '风机复位故障代码指令',
|
||||
}
|
||||
ElMessageBox.confirm('确认发送' + sendTypeEnum[type] + '吗?', '', {
|
||||
confirmButtonText: '确认',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
}).then(() => {
|
||||
const serviceName = sendTypeEnum[type]
|
||||
const optDesc = serviceName + 1
|
||||
sendCommandReq({
|
||||
deviceId: route.query.irn as string,
|
||||
serviceCode: type,
|
||||
serviceName,
|
||||
optDesc,
|
||||
opValue: 1,
|
||||
}).then((res) => {
|
||||
if (res.code == 200) {
|
||||
ElMessage.success('指令发送成功')
|
||||
} else {
|
||||
ElMessage.error('指令发送失败')
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
const sendManualCommand = (type: 1 | 0) => {
|
||||
const serviceName = type === 0 ? '风机解锁' : '风机锁定'
|
||||
ElMessageBox.confirm('确认' + serviceName + '吗?', '', {
|
||||
confirmButtonText: '确认',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
}).then(() => {
|
||||
sendManualCommandReq({
|
||||
deviceId: route.query.irn as string,
|
||||
serviceCode: 'Locked',
|
||||
serviceName,
|
||||
optDesc: serviceName + type,
|
||||
opValue: type,
|
||||
}).then((res) => {
|
||||
if (res.code == 200) {
|
||||
ElMessage.success('指令发送成功')
|
||||
} else {
|
||||
ElMessage.error('指令发送失败')
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
getAllChartData()
|
||||
createScroll()
|
||||
@ -1504,6 +1560,7 @@ onUnmounted(() => {
|
||||
.control-tag-left {
|
||||
margin-left: 0;
|
||||
border-radius: 8px 0 0 0;
|
||||
background-color: #ff4949;
|
||||
}
|
||||
}
|
||||
.btnLeft {
|
||||
|
@ -489,6 +489,11 @@ const modelContextMenu = (event: any, data: TreeNode) => {
|
||||
const modelNodeClick = (target: TreeNode) => {
|
||||
curContextMenuTreeData.value = JSON.parse(JSON.stringify(target))
|
||||
initSortData()
|
||||
modelAttributeAndServiceInputValue.value = ''
|
||||
if (currentPage.value !== 1) {
|
||||
currentPage.value = 1
|
||||
return
|
||||
}
|
||||
if (ModelTabs.value === 'attribute') {
|
||||
getAttributeList()
|
||||
} else {
|
||||
@ -632,8 +637,12 @@ const getAttributeList = ({
|
||||
type?: radioGroupType
|
||||
value?: string
|
||||
} = {}) => {
|
||||
const attributeName = modelAttributeSearchRadio.value === 'Name' ? modelAttributeAndServiceInputValue.value : undefined
|
||||
const attributeCode = modelAttributeSearchRadio.value === 'Code' ? modelAttributeAndServiceInputValue.value : undefined
|
||||
const requestData: GetModelAttributeType = {
|
||||
iotModelId: curContextMenuTreeData.value!.id!,
|
||||
attributeName,
|
||||
attributeCode,
|
||||
pageNum: currentPage.value,
|
||||
pageSize: currentPageSize.value,
|
||||
orderColumn: sortData.attributeOrderColumn,
|
||||
@ -669,6 +678,7 @@ const getAttributeList = ({
|
||||
} else {
|
||||
if (res.rows && res.rows.length === 0) {
|
||||
attributeTableData.value = []
|
||||
pageTotal.value = res.total
|
||||
} else {
|
||||
ElMessage.error(res.msg)
|
||||
}
|
||||
@ -686,8 +696,12 @@ const getServiceList = ({
|
||||
type?: radioGroupType
|
||||
value?: string
|
||||
} = {}) => {
|
||||
const serviceName = modelAttributeSearchRadio.value === 'Name' ? modelAttributeAndServiceInputValue.value : undefined
|
||||
const serviceCode = modelAttributeSearchRadio.value === 'Code' ? modelAttributeAndServiceInputValue.value : undefined
|
||||
const requestData: GetModelServiceType = {
|
||||
iotModelId: curContextMenuTreeData.value!.id!,
|
||||
serviceName,
|
||||
serviceCode,
|
||||
pageNum: currentPage.value,
|
||||
pageSize: currentPageSize.value,
|
||||
orderColumn: sortData.serviceOrderColumn,
|
||||
@ -711,6 +725,7 @@ const getServiceList = ({
|
||||
} else {
|
||||
if (res.rows && res.rows.length === 0) {
|
||||
serviceTableData.value = []
|
||||
pageTotal.value = res.total
|
||||
} else {
|
||||
ElMessage.error(res.msg)
|
||||
}
|
||||
|
@ -576,6 +576,7 @@ const treeNodeClick = (nodeData: getTreeDataReturnType, node: Node) => {
|
||||
originData.value = [...res]
|
||||
})
|
||||
}
|
||||
currentPage.value = 1
|
||||
clickTreeMenuData.value = nodeData
|
||||
}
|
||||
|
||||
|
@ -8,10 +8,10 @@ export type SelectTypeKeyUnionType = keyof SelectTypeObjType
|
||||
|
||||
|
||||
export type TableDataObjType = {
|
||||
irn:string
|
||||
irn: string
|
||||
name: string
|
||||
model: string
|
||||
iotModelId:string
|
||||
iotModelId: string
|
||||
iturbineoperationmode: number
|
||||
belongLine: string
|
||||
iwindspeed: string
|
||||
@ -37,4 +37,18 @@ export type TableColumnType = {
|
||||
align?: 'left' | 'right' | 'center'
|
||||
custom?: 'header' | 'default'
|
||||
type?: 'default' | 'selection' | 'index' | 'expand'
|
||||
}
|
||||
|
||||
export type CommandReqType = {
|
||||
deviceId: string | number,
|
||||
serviceCode: string,
|
||||
serviceName: string,
|
||||
optDesc: string,
|
||||
opValue: 0 | 1
|
||||
}
|
||||
|
||||
export type CommandResType = {
|
||||
code: number,
|
||||
success: boolean,
|
||||
msg: string
|
||||
}
|
@ -9,8 +9,8 @@
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<div class="center">
|
||||
<el-form-item label="服务名" prop="serviceName">
|
||||
<el-select v-model="serviceType147Form.serviceName" placeholder="请选择服务名">
|
||||
<el-form-item label="服务名" prop="serviceCode">
|
||||
<el-select v-model="serviceType147Form.serviceCode" placeholder="请选择服务名">
|
||||
<el-option
|
||||
v-for="item in deviceServiceType147List"
|
||||
:key="item.value"
|
||||
@ -42,8 +42,8 @@
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<div class="center">
|
||||
<el-form-item label="服务名" prop="serviceName">
|
||||
<el-select v-model="serviceType146Form.serviceName" placeholder="请选择服务名">
|
||||
<el-form-item label="服务名" prop="serviceCode">
|
||||
<el-select v-model="serviceType146Form.serviceCode" placeholder="请选择服务名">
|
||||
<el-option
|
||||
v-for="item in deviceServiceType146List"
|
||||
:key="item.value"
|
||||
@ -71,7 +71,7 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, watch } from 'vue'
|
||||
import { sendValue146Req, sendValue147Req } from '/@/api/backend/control/request'
|
||||
import { sendCommandReq } from '/@/api/backend/control/request'
|
||||
import { ElMessage, FormInstance } from 'element-plus'
|
||||
import { getModelServiceListReq } from '/@/api/backend/deviceModel/request'
|
||||
|
||||
@ -96,14 +96,14 @@ const serviceType147Ref = ref<FormInstance>()
|
||||
const serviceType146Ref = ref<FormInstance>()
|
||||
const serviceType147Form = ref({
|
||||
//服务名
|
||||
serviceName: '',
|
||||
serviceCode: '',
|
||||
//操作值
|
||||
opValue: null,
|
||||
})
|
||||
|
||||
const serviceType146Form = ref({
|
||||
//服务名
|
||||
serviceName: '',
|
||||
serviceCode: '',
|
||||
//操作值
|
||||
opValue: null,
|
||||
})
|
||||
@ -128,7 +128,7 @@ const init = () => {
|
||||
}
|
||||
|
||||
const validData147 = {
|
||||
serviceName: [
|
||||
serviceCode: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入服务名',
|
||||
@ -145,7 +145,7 @@ const validData147 = {
|
||||
}
|
||||
|
||||
const validData146 = {
|
||||
serviceName: [
|
||||
serviceCode: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入服务名',
|
||||
@ -171,43 +171,29 @@ const submit = (type: number) => {
|
||||
serviceType147Ref.value?.validate((valid) => {
|
||||
if (valid) {
|
||||
loading.value = true
|
||||
sendValue147(serviceType147Form.value)
|
||||
sendValue(serviceType147Form.value as unknown as { serviceCode: string; opValue: number }, type)
|
||||
}
|
||||
})
|
||||
} else if (type === 146) {
|
||||
serviceType146Ref.value?.validate((valid) => {
|
||||
if (valid) {
|
||||
loading.value = true
|
||||
sendValue146(serviceType146Form.value)
|
||||
sendValue(serviceType146Form.value as unknown as { serviceCode: string; opValue: number }, type)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const sendValue146 = (data: any) => {
|
||||
const sendValue = (data: { serviceCode: string; opValue: number }, type: 146 | 147) => {
|
||||
const val = JSON.parse(JSON.stringify(data))
|
||||
val.deviceId = props.deviceId
|
||||
console.log(val, 146)
|
||||
|
||||
sendValue146Req(val)
|
||||
.then((res) => {
|
||||
console.log(res)
|
||||
ElMessage.success('发送成功!')
|
||||
})
|
||||
.catch((err) => {
|
||||
ElMessage.error('发送失败!')
|
||||
})
|
||||
.finally(() => {
|
||||
loading.value = false
|
||||
})
|
||||
}
|
||||
|
||||
const sendValue147 = (data: any) => {
|
||||
const val = JSON.parse(JSON.stringify(data))
|
||||
val.deviceId = props.deviceId
|
||||
console.log(val, 147)
|
||||
|
||||
sendValue147Req(val)
|
||||
val.serviceName =
|
||||
type === 146
|
||||
? deviceServiceType146List.value.find((item) => item.value === val.serviceCode)?.label
|
||||
: deviceServiceType147List.value.find((item) => item.value === val.serviceCode)?.label
|
||||
val.optDesc = val.serviceName + val.opValue
|
||||
sendCommandReq(val)
|
||||
.then((res) => {
|
||||
console.log(res)
|
||||
ElMessage.success('发送成功!')
|
||||
@ -239,11 +225,11 @@ watch(
|
||||
(newVal) => {
|
||||
if (newVal) {
|
||||
serviceType147Form.value = {
|
||||
serviceName: '',
|
||||
serviceCode: '',
|
||||
opValue: null,
|
||||
}
|
||||
serviceType146Form.value = {
|
||||
serviceName: '',
|
||||
serviceCode: '',
|
||||
opValue: null,
|
||||
}
|
||||
serviceType147Ref.value?.resetFields()
|
||||
|
215
ui/dasadmin/src/views/backend/operatingRecord/index.vue
Normal file
215
ui/dasadmin/src/views/backend/operatingRecord/index.vue
Normal file
@ -0,0 +1,215 @@
|
||||
<template>
|
||||
<div class="operatingRecord">
|
||||
<el-container class="container">
|
||||
<el-header class="header">
|
||||
<div class="headerPart headerPartLeft">
|
||||
<span>时间</span>
|
||||
<el-date-picker
|
||||
v-model="datePickerValue"
|
||||
type="datetimerange"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
date-format="YYYY/MM/DD"
|
||||
time-format="HH:mm:ss"
|
||||
:shortcuts="shortcuts"
|
||||
:default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]"
|
||||
></el-date-picker>
|
||||
</div>
|
||||
<div class="headerPart headerPartRight">
|
||||
<span>风机编号</span>
|
||||
<el-select v-model="windTurbinesCode">
|
||||
<el-option v-for="item in attributeCodeList" :key="item.value" :value="item.value"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<el-button @click="search" :icon="Search" type="primary" class="headerBtn">查询</el-button>
|
||||
</el-header>
|
||||
<el-main class="main">
|
||||
<el-table :data="tableData" max-height="clac(100%-120px)">
|
||||
<el-table-column
|
||||
v-for="item in tableColumn"
|
||||
:key="item.prop"
|
||||
:prop="item.prop"
|
||||
:label="item.label"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
</el-table>
|
||||
</el-main>
|
||||
<el-footer>
|
||||
<div class="footerPart">
|
||||
<el-pagination
|
||||
v-model:current-page="pageSetting.current"
|
||||
v-model:page-size="pageSetting.pageSize"
|
||||
:total="pageSetting.total"
|
||||
:page-sizes="pageSetting.pageSizes"
|
||||
background
|
||||
:pager-count="7"
|
||||
layout="total,prev, pager, next, jumper,sizes"
|
||||
@change="changePageSetting"
|
||||
></el-pagination>
|
||||
</div>
|
||||
</el-footer>
|
||||
</el-container>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { Search } from '@element-plus/icons-vue'
|
||||
import { ref, reactive } from 'vue'
|
||||
import { dayjs, ElMessage } from 'element-plus'
|
||||
import { getOperatingListReq } from '/@/api/backend/operatingRecord/request'
|
||||
import type { OperatingReqType, OperatingResType } from '/@/views/backend/operatingRecord/type'
|
||||
import { getAirBlowerListReq } from '/@/api/backend/airBlower/request'
|
||||
|
||||
const datePickerValue = ref('')
|
||||
const shortcuts = [
|
||||
{
|
||||
text: '今天',
|
||||
value: () => {
|
||||
const start = dayjs().startOf('day').toDate()
|
||||
const end = dayjs().endOf('day').toDate()
|
||||
return [start, end]
|
||||
},
|
||||
},
|
||||
{
|
||||
text: '昨天',
|
||||
value: () => {
|
||||
const start = dayjs().subtract(1, 'day').startOf('day').toDate()
|
||||
const end = dayjs().subtract(1, 'day').endOf('day').toDate()
|
||||
return [start, end]
|
||||
},
|
||||
},
|
||||
{
|
||||
text: '前三天',
|
||||
value: () => {
|
||||
const start = dayjs().subtract(4, 'day').startOf('day').toDate()
|
||||
const end = dayjs().subtract(1, 'day').endOf('day').toDate()
|
||||
return [start, end]
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
const windTurbinesCode = ref('')
|
||||
const attributeCodeList = ref<{ value: string }[]>([])
|
||||
|
||||
const tableData = ref<OperatingResType[]>([])
|
||||
const tableColumn = [
|
||||
{
|
||||
label: '时间',
|
||||
prop: 'optTime',
|
||||
},
|
||||
{
|
||||
label: '设备编号',
|
||||
prop: 'name',
|
||||
},
|
||||
{
|
||||
label: '操作类型',
|
||||
prop: 'attributeName',
|
||||
},
|
||||
{
|
||||
label: '操作详情',
|
||||
prop: 'optDesc',
|
||||
},
|
||||
{
|
||||
label: '操作员',
|
||||
prop: 'userName',
|
||||
},
|
||||
]
|
||||
|
||||
const pageSetting = reactive({
|
||||
current: 1,
|
||||
pageSize: 20,
|
||||
total: 0,
|
||||
pageSizes: [20, 50, 100],
|
||||
})
|
||||
|
||||
const changePageSetting = () => {
|
||||
search()
|
||||
}
|
||||
|
||||
const getList = (data: OperatingReqType) => {
|
||||
getOperatingListReq(data).then((res) => {
|
||||
if (res.success) {
|
||||
const data = res.data
|
||||
tableData.value = data.rows
|
||||
pageSetting.total = data.total
|
||||
ElMessage.success('查询成功!')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const search = () => {
|
||||
getList({
|
||||
startTime: datePickerValue.value?.[0] ? dayjs(datePickerValue.value[0]).format('YYYY-MM-DD HH:mm:ss') : undefined,
|
||||
endTime: datePickerValue.value?.[1] ? dayjs(datePickerValue.value[1]).format('YYYY-MM-DD HH:mm:ss') : undefined,
|
||||
windTurbinesCode: windTurbinesCode.value,
|
||||
pageNum: pageSetting.current,
|
||||
pageSize: pageSetting.pageSize,
|
||||
})
|
||||
}
|
||||
|
||||
const getAirBlowerList = () => {
|
||||
getAirBlowerListReq().then((res: any) => {
|
||||
if (res.success) {
|
||||
attributeCodeList.value = res.data.map((item: any) => {
|
||||
return {
|
||||
value: item.name,
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
getAirBlowerList()
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.operatingRecord {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
.container {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
.header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.headerPart {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
span {
|
||||
display: flex;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
.headerPartLeft {
|
||||
:deep(.el-date-editor) {
|
||||
width: 400px;
|
||||
height: 40px;
|
||||
}
|
||||
}
|
||||
.headerPartRight {
|
||||
margin-left: 30px;
|
||||
width: 286px;
|
||||
span {
|
||||
width: 73px;
|
||||
}
|
||||
:deep(.el-select__wrapper) {
|
||||
width: 220px;
|
||||
height: 40px;
|
||||
}
|
||||
}
|
||||
.headerBtn {
|
||||
margin-left: auto;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
}
|
||||
}
|
||||
.main {
|
||||
height: calc(100% - 120px);
|
||||
}
|
||||
.footerPart {
|
||||
display: flex;
|
||||
justify-content: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
32
ui/dasadmin/src/views/backend/operatingRecord/type.ts
Normal file
32
ui/dasadmin/src/views/backend/operatingRecord/type.ts
Normal file
@ -0,0 +1,32 @@
|
||||
export type ReturnType = {
|
||||
code: number
|
||||
data: {
|
||||
total: number
|
||||
rows: OperatingResType[]
|
||||
code: number
|
||||
msg: string
|
||||
}
|
||||
msg: string
|
||||
success: boolean
|
||||
}
|
||||
|
||||
|
||||
export type OperatingReqType = {
|
||||
startTime?: string,
|
||||
endTime?: string,
|
||||
windTurbinesCode?: string,
|
||||
userName?: string,
|
||||
pageNum: number,
|
||||
pageSize: number
|
||||
}
|
||||
|
||||
export type OperatingResType = {
|
||||
id: string,
|
||||
userName: string,
|
||||
optTime: string,
|
||||
deviceId: number,
|
||||
attributeCode: string,
|
||||
attributeName: string,
|
||||
name:string
|
||||
optDesc: string
|
||||
}
|
Loading…
Reference in New Issue
Block a user