Merge remote-tracking branch 'origin/main'
# Conflicts: # src/views/ems/report/currentVoltageCurve/index.vuemaster
commit
49f6e21189
Binary file not shown.
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 17 KiB |
@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询计量设备阈值维护列表
|
||||
export function listBaseMonitorThreshold(query) {
|
||||
return request({
|
||||
url: '/ems/base/baseMonitorThreshold/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询计量设备阈值维护详细
|
||||
export function getBaseMonitorThreshold(objId) {
|
||||
return request({
|
||||
url: '/ems/base/baseMonitorThreshold/' + objId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增计量设备阈值维护
|
||||
export function addBaseMonitorThreshold(data) {
|
||||
return request({
|
||||
url: '/ems/base/baseMonitorThreshold',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改计量设备阈值维护
|
||||
export function updateBaseMonitorThreshold(data) {
|
||||
return request({
|
||||
url: '/ems/base/baseMonitorThreshold',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除计量设备阈值维护
|
||||
export function delBaseMonitorThreshold(objId) {
|
||||
return request({
|
||||
url: '/ems/base/baseMonitorThreshold/' + objId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询生产工单执行用户列表
|
||||
export function listPlanExecuteUser(query) {
|
||||
return request({
|
||||
url: '/mes/prod/planExecuteUser/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询生产工单执行用户详细
|
||||
export function getPlanExecuteUser(objId) {
|
||||
return request({
|
||||
url: '/mes/prod/planExecuteUser/' + objId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增生产工单执行用户
|
||||
export function addPlanExecuteUser(data) {
|
||||
return request({
|
||||
url: '/mes/prod/planExecuteUser',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改生产工单执行用户
|
||||
export function updatePlanExecuteUser(data) {
|
||||
return request({
|
||||
url: '/mes/prod/planExecuteUser',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除生产工单执行用户
|
||||
export function delPlanExecuteUser(objId) {
|
||||
return request({
|
||||
url: '/mes/prod/planExecuteUser/' + objId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询生产计划信息列表
|
||||
export function listProdPlanErpInfo(query) {
|
||||
return request({
|
||||
url: '/mes/prod/prodPlanErpInfo/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询生产计划信息详细
|
||||
export function getProdPlanErpInfo(objId) {
|
||||
return request({
|
||||
url: '/mes/prod/prodPlanErpInfo/' + objId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增生产计划信息
|
||||
export function addProdPlanErpInfo(data) {
|
||||
return request({
|
||||
url: '/mes/prod/prodPlanErpInfo',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改生产计划信息
|
||||
export function updateProdPlanErpInfo(data) {
|
||||
return request({
|
||||
url: '/mes/prod/prodPlanErpInfo',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除生产计划信息
|
||||
export function delProdPlanErpInfo(objId) {
|
||||
return request({
|
||||
url: '/mes/prod/prodPlanErpInfo/' + objId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询员工上下班记录列表
|
||||
export function listRecordStaffCommute(query) {
|
||||
return request({
|
||||
url: '/mes/record/recordStaffCommute/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询员工上下班记录详细
|
||||
export function getRecordStaffCommute(objId) {
|
||||
return request({
|
||||
url: '/mes/record/recordStaffCommute/' + objId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增员工上下班记录
|
||||
export function addRecordStaffCommute(data) {
|
||||
return request({
|
||||
url: '/mes/record/recordStaffCommute',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改员工上下班记录
|
||||
export function updateRecordStaffCommute(data) {
|
||||
return request({
|
||||
url: '/mes/record/recordStaffCommute',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除员工上下班记录
|
||||
export function delRecordStaffCommute(objId) {
|
||||
return request({
|
||||
url: '/mes/record/recordStaffCommute/' + objId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
@ -0,0 +1,62 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询员工工资记录列表
|
||||
export function listRecordStaffSalary(query) {
|
||||
return request({
|
||||
url: '/mes/record/recordStaffSalary/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询员工工资记录详细
|
||||
export function getRecordStaffSalary(objId) {
|
||||
return request({
|
||||
url: '/mes/record/recordStaffSalary/' + objId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增员工工资记录
|
||||
export function addRecordStaffSalary(data) {
|
||||
return request({
|
||||
url: '/mes/record/recordStaffSalary',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改员工工资记录
|
||||
export function updateRecordStaffSalary(data) {
|
||||
return request({
|
||||
url: '/mes/record/recordStaffSalary',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除员工工资记录
|
||||
export function delRecordStaffSalary(objId) {
|
||||
return request({
|
||||
url: '/mes/record/recordStaffSalary/' + objId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 生成班组员工工资
|
||||
export function selectTeamEmployeesWages(query) {
|
||||
return request({
|
||||
url: '/mes/record/recordStaffSalary/selectTeamEmployeesWages',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 新增员工工资记录
|
||||
export function uploadERPStaffSalary(data) {
|
||||
return request({
|
||||
url: '/mes/record/recordStaffSalary/uploadERPStaffSalary',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 3.3 KiB |
@ -0,0 +1,63 @@
|
||||
export function getHoursBetween(startHourStr, endHourStr) {
|
||||
const startHour = new Date(startHourStr)
|
||||
let endHour = new Date(endHourStr)
|
||||
let nowDate = new Date()
|
||||
nowDate.setHours(nowDate.getHours() - 1);
|
||||
if (endHour.getTime() > nowDate.getTime()) {
|
||||
endHour = nowDate
|
||||
}
|
||||
const hours = []
|
||||
while (startHour <= endHour) {
|
||||
const hourString = `${startHour.getFullYear()}-${String(startHour.getMonth() + 1).padStart(2, '0')}-${String(startHour.getDate()).padStart(2, '0')} ${String(startHour.getHours()).padStart(2, '0')}:00:00`
|
||||
hours.push(hourString)
|
||||
startHour.setTime(startHour.getTime() + 60 * 60 * 1000)
|
||||
}
|
||||
// return hours;
|
||||
return hours.sort((a, b) => new Date(b) - new Date(a))
|
||||
}
|
||||
|
||||
export function getDatesBetween(startDateStr, endDateStr) {
|
||||
const startDate = new Date(startDateStr)
|
||||
let endDate = new Date(endDateStr)
|
||||
let nowDate = new Date()
|
||||
nowDate.setHours(nowDate.getHours() - 1);
|
||||
if (endDate.getTime() > nowDate.getTime()) {
|
||||
endDate = nowDate
|
||||
}
|
||||
const dates = []
|
||||
while (startDate <= endDate) {
|
||||
dates.push(`${startDate.getFullYear()}-${String(startDate.getMonth() + 1).padStart(2, '0')}-${String(startDate.getDate()).padStart(2, '0')}`)
|
||||
startDate.setDate(startDate.getDate() + 1)
|
||||
}
|
||||
// return dates;
|
||||
return dates.sort((a, b) => new Date(b) - new Date(a))
|
||||
}
|
||||
|
||||
export function getMonthsBetween(startMonthStr, endMonthStr) {
|
||||
const result = []
|
||||
const startDate = new Date(startMonthStr + '-01')
|
||||
let endDate = new Date(endMonthStr + '-01')
|
||||
const currentDate = new Date(startDate)
|
||||
let nowDate = new Date()
|
||||
nowDate.setHours(nowDate.getHours() - 1);
|
||||
if (endDate.getTime() > nowDate.getTime()) {
|
||||
endDate = nowDate
|
||||
}
|
||||
while (currentDate <= endDate) {
|
||||
const year = currentDate.getFullYear()
|
||||
const month = String(currentDate.getMonth() + 1).padStart(2, '0')
|
||||
result.push(`${year}-${month}`)
|
||||
currentDate.setMonth(currentDate.getMonth() + 1)
|
||||
}
|
||||
return result.sort((a, b) => new Date(b) - new Date(a))
|
||||
}
|
||||
|
||||
export function getYearsBetween(startYearStr, endYearStr) {
|
||||
const result = []
|
||||
const startYear = Number(startYearStr.substring(0, 4))
|
||||
const endYear = Number(endYearStr.substring(0, 4))
|
||||
for (let i = startYear; i <= endYear; i++) {
|
||||
result.push(`${i}`)
|
||||
}
|
||||
return result.sort((a, b) => new Date(b) - new Date(a))
|
||||
}
|
||||
@ -0,0 +1,485 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-row :gutter="28">
|
||||
<el-col :span="5" :xs="24">
|
||||
<div class="head-container">
|
||||
<el-input
|
||||
v-model="filterBoxName"
|
||||
placeholder="请输入计量设备名称"
|
||||
clearable
|
||||
size="small"
|
||||
prefix-icon="el-icon-search"
|
||||
style="margin-bottom: 20px"
|
||||
/>
|
||||
</div>
|
||||
<div class="head-container">
|
||||
<el-tree
|
||||
:data="monitorInfoOptions"
|
||||
:props="monitorProps"
|
||||
:expand-on-click-node="false"
|
||||
:filter-node-method="filterNode"
|
||||
ref="tree"
|
||||
node-key="id"
|
||||
default-expand-all
|
||||
highlight-current
|
||||
@node-click="handleNodeClick"
|
||||
/>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="19" :xs="24">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
|
||||
label-width="100px"
|
||||
>
|
||||
<!-- <el-form-item label="计量设备名称" prop="monitorCode">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="queryParams.monitorCode"-->
|
||||
<!-- placeholder="请输入计量设备名称"-->
|
||||
<!-- clearable-->
|
||||
<!-- @keyup.enter.native="handleQuery"-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="计量设备类型" prop="monitorType">
|
||||
<el-select v-model="queryParams.monitorType" placeholder="请选择计量设备类型" >
|
||||
<el-option
|
||||
v-for="dict in dict.type.monitor_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="启用标识" prop="isFlag">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="queryParams.isFlag"-->
|
||||
<!-- placeholder="请输入启用标识"-->
|
||||
<!-- clearable-->
|
||||
<!-- @keyup.enter.native="handleQuery"-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button-->
|
||||
<!-- type="primary"-->
|
||||
<!-- plain-->
|
||||
<!-- icon="el-icon-plus"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- @click="handleAdd"-->
|
||||
<!-- v-hasPermi="['ems/base:baseMonitorThreshold:add']"-->
|
||||
<!-- >新增-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['ems/base:baseMonitorThreshold:edit']"
|
||||
>修改
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['ems/base:baseMonitorThreshold:remove']"
|
||||
>删除
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['ems/base:baseMonitorThreshold:export']"
|
||||
>导出
|
||||
</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="baseMonitorThresholdList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center"/>
|
||||
<el-table-column label="主键标识" align="center" prop="objId" v-if="columns[0].visible"/>
|
||||
<el-table-column label="计量设备编号" align="center" prop="monitorCode" v-if="columns[23].visible" width="120"/>
|
||||
<el-table-column label="计量设备名称" align="center" prop="monitorName" v-if="columns[1].visible" width="100"/>
|
||||
<el-table-column label="计量设备类型" align="center" prop="monitorType" v-if="columns[2].visible" width="100">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.monitor_type" :value="scope.row.monitorType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="A相电流最大值" align="center" prop="iAMax" v-if="columns[3].visible" width="110"/>
|
||||
<el-table-column label="A相电流最小值" align="center" prop="iAMin" v-if="columns[4].visible" width="110"/>
|
||||
<el-table-column label="B相电流最大值" align="center" prop="iBMax" v-if="columns[5].visible" width="110"/>
|
||||
<el-table-column label="B相电流最小值" align="center" prop="iBMin" v-if="columns[6].visible" width="110"/>
|
||||
<el-table-column label="C相电流最大值" align="center" prop="iCMax" v-if="columns[7].visible" width="110"/>
|
||||
<el-table-column label="C相电流最小值" align="center" prop="iCMin" v-if="columns[8].visible" width="110"/>
|
||||
<el-table-column label="A相电压最大值" align="center" prop="vAMax" v-if="columns[9].visible" width="110"/>
|
||||
<el-table-column label="A相电压最小值" align="center" prop="vAMin" v-if="columns[10].visible" width="110"/>
|
||||
<el-table-column label="B相电压最大值" align="center" prop="vBMax" v-if="columns[11].visible" width="110"/>
|
||||
<el-table-column label="B相电压最小值" align="center" prop="vBMin" v-if="columns[12].visible" width="110"/>
|
||||
<el-table-column label="C相电压最大值" align="center" prop="vCMax" v-if="columns[13].visible" width="110"/>
|
||||
<el-table-column label="C相电压最小值" align="center" prop="vCMin" v-if="columns[14].visible" width="110"/>
|
||||
<el-table-column label="小时耗量" align="center" prop="hourConsumption" v-if="columns[15].visible"/>
|
||||
<el-table-column label="天耗量" align="center" prop="dayConsumption" v-if="columns[16].visible"/>
|
||||
<el-table-column label="线损率(%)" align="center" prop="lineLossRate" v-if="columns[17].visible" width="100"/>
|
||||
<el-table-column label="启用标识" align="center" prop="isFlag" v-if="columns[18].visible"/>
|
||||
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <el-button-->
|
||||
<!-- size="mini"-->
|
||||
<!-- type="text"-->
|
||||
<!-- icon="el-icon-edit"-->
|
||||
<!-- @click="handleUpdate(scope.row)"-->
|
||||
<!-- v-hasPermi="['ems/base:baseMonitorThreshold:edit']"-->
|
||||
<!-- >修改-->
|
||||
<!-- </el-button>-->
|
||||
<!-- <el-button-->
|
||||
<!-- size="mini"-->
|
||||
<!-- type="text"-->
|
||||
<!-- icon="el-icon-delete"-->
|
||||
<!-- @click="handleDelete(scope.row)"-->
|
||||
<!-- v-hasPermi="['ems/base:baseMonitorThreshold:remove']"-->
|
||||
<!-- >删除-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改计量设备阈值维护对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
|
||||
<el-form-item label="计量设备名称" prop="monitorName">
|
||||
<el-input v-model="form.monitorName" placeholder="请输入计量设备名称" disabled/>
|
||||
</el-form-item>
|
||||
<el-form-item label="计量设备类型" prop="monitorType" >
|
||||
<el-radio-group v-model="form.monitorType" disabled>
|
||||
<el-radio
|
||||
v-for="dict in dict.type.monitor_type"
|
||||
:key="dict.value"
|
||||
:label="parseInt(dict.value)"
|
||||
>{{ dict.label }}
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="A相电流最大值" prop="iAMax">
|
||||
<el-input-number v-model="form.iAMax" placeholder="请输入A相电流最大值"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="A相电流最小值" prop="iAMin">
|
||||
<el-input-number v-model="form.iAMin" placeholder="请输入A相电流最小值"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="B相电流最大值" prop="iBMax">
|
||||
<el-input-number v-model="form.iBMax" placeholder="请输入B相电流最大值"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="B相电流最小值" prop="iBMin">
|
||||
<el-input-number v-model="form.iBMin" placeholder="请输入B相电流最小值"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="C相电流最大值" prop="iCMax">
|
||||
<el-input-number v-model="form.iCMax" placeholder="请输入C相电流最大值"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="C相电流最小值" prop="iCMin">
|
||||
<el-input-number v-model="form.iCMin" placeholder="请输入C相电流最小值"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="A相电压最大值" prop="vAMax">
|
||||
<el-input-number v-model="form.vAMax" placeholder="请输入A相电压最大值"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="A相电压最小值" prop="vAMin">
|
||||
<el-input-number v-model="form.vAMin" placeholder="请输入A相电压最小值"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="B相电压最大值" prop="vBMax">
|
||||
<el-input-number v-model="form.vBMax" placeholder="请输入B相电压最大值"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="B相电压最小值" prop="vBMin">
|
||||
<el-input-number v-model="form.vBMin" placeholder="请输入B相电压最小值"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="C相电压最大值" prop="vCMax">
|
||||
<el-input-number v-model="form.vCMax" placeholder="请输入C相电压最大值"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="C相电压最小值" prop="vCMin">
|
||||
<el-input-number v-model="form.vCMin" placeholder="请输入C相电压最小值"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="小时耗量" prop="hourConsumption">
|
||||
<el-input-number v-model="form.hourConsumption" placeholder="请输入小时耗量"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="天耗量" prop="dayConsumption">
|
||||
<el-input-number v-model="form.dayConsumption" placeholder="请输入天耗量"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="线损率(%)" prop="lineLossRate">
|
||||
<el-input-number v-model="form.lineLossRate" placeholder="请输入线损率(%)"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
listBaseMonitorThreshold,
|
||||
getBaseMonitorThreshold,
|
||||
delBaseMonitorThreshold,
|
||||
addBaseMonitorThreshold,
|
||||
updateBaseMonitorThreshold
|
||||
} from '@/api/ems/base/baseMonitorThreshold'
|
||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||
import { getMonitorInfoTree } from '@/api/ems/base/baseMonitorInfo'
|
||||
|
||||
export default {
|
||||
name: 'BaseMonitorThreshold',
|
||||
dicts: ['monitor_type'],
|
||||
data() {
|
||||
return {
|
||||
//左侧树结构List
|
||||
monitorInfoOptions: [],
|
||||
//左侧树结构筛选框
|
||||
filterBoxName: undefined,
|
||||
monitorProps: {
|
||||
children: 'children',
|
||||
label: 'label'
|
||||
},
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 计量设备阈值维护表格数据
|
||||
baseMonitorThresholdList: [],
|
||||
// 弹出层标题
|
||||
title: '',
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
monitorCode: null,
|
||||
monitorType: '2',
|
||||
iAMax: null,
|
||||
iAMin: null,
|
||||
iBMax: null,
|
||||
iBMin: null,
|
||||
iCMax: null,
|
||||
iCMin: null,
|
||||
vAMax: null,
|
||||
vAMin: null,
|
||||
vBMax: null,
|
||||
vBMin: null,
|
||||
vCMax: null,
|
||||
vCMin: null,
|
||||
hourConsumption: null,
|
||||
dayConsumption: null,
|
||||
lineLossRate: null,
|
||||
isFlag: null
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
objId: [
|
||||
{ required: true, message: '主键标识不能为空', trigger: 'blur' }
|
||||
],
|
||||
monitorCode: [
|
||||
{ required: true, message: '计量设备名称不能为空', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
columns: [
|
||||
{ key: 0, label: `主键标识`, visible: false },
|
||||
{ key: 1, label: `计量设备名称`, visible: true },
|
||||
{ key: 2, label: `计量设备类型`, visible: true },
|
||||
{ key: 3, label: `A相电流最大值`, visible: true },
|
||||
{ key: 4, label: `A相电流最小值`, visible: true },
|
||||
{ key: 5, label: `B相电流最大值`, visible: true },
|
||||
{ key: 6, label: `B相电流最小值`, visible: true },
|
||||
{ key: 7, label: `C相电流最大值`, visible: true },
|
||||
{ key: 8, label: `C相电流最小值`, visible: true },
|
||||
{ key: 9, label: `A相电压最大值`, visible: true },
|
||||
{ key: 10, label: `A相电压最小值`, visible: true },
|
||||
{ key: 11, label: `B相电压最大值`, visible: true },
|
||||
{ key: 12, label: `B相电压最小值`, visible: true },
|
||||
{ key: 13, label: `C相电压最大值`, visible: true },
|
||||
{ key: 14, label: `C相电压最小值`, visible: true },
|
||||
{ key: 15, label: `小时耗量`, visible: true },
|
||||
{ key: 16, label: `天耗量`, visible: true },
|
||||
{ key: 17, label: `线损率(%)`, visible: true },
|
||||
{ key: 18, label: `启用标识`, visible: false },
|
||||
{ key: 19, label: `创建人`, visible: false },
|
||||
{ key: 20, label: `创建时间`, visible: false },
|
||||
{ key: 21, label: `修改人`, visible: false },
|
||||
{ key: 22, label: `修改时间`, visible: false },
|
||||
{ key: 23, label: `计量设备编号`, visible: true },
|
||||
]
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getTreeselect()
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
/** 查询计量设备阈值维护列表 */
|
||||
getList() {
|
||||
this.loading = true
|
||||
listBaseMonitorThreshold(this.queryParams).then(response => {
|
||||
this.baseMonitorThresholdList = response.rows
|
||||
this.total = response.total
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false
|
||||
this.reset()
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
objId: null,
|
||||
monitorCode: null,
|
||||
monitorType: null,
|
||||
iAMax: null,
|
||||
iAMin: null,
|
||||
iBMax: null,
|
||||
iBMin: null,
|
||||
iCMax: null,
|
||||
iCMin: null,
|
||||
vAMax: null,
|
||||
vAMin: null,
|
||||
vBMax: null,
|
||||
vBMin: null,
|
||||
vCMax: null,
|
||||
vCMin: null,
|
||||
hourConsumption: null,
|
||||
dayConsumption: null,
|
||||
lineLossRate: null,
|
||||
isFlag: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null
|
||||
}
|
||||
this.resetForm('form')
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm('queryForm')
|
||||
this.handleQuery()
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.objId)
|
||||
this.single = selection.length !== 1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
|
||||
/** 查询计量设备信息下拉树结构 */
|
||||
getTreeselect() {
|
||||
getMonitorInfoTree({ monitorType: this.queryParams.monitorType }).then(response => {
|
||||
this.monitorInfoOptions = response.data
|
||||
})
|
||||
},
|
||||
|
||||
// 筛选节点
|
||||
filterNode(value, data) {
|
||||
if (!value) return true
|
||||
return data.label.indexOf(value) !== -1
|
||||
},
|
||||
|
||||
// 节点单击事件
|
||||
handleNodeClick(data) {
|
||||
this.queryParams.monitorCode = data.code
|
||||
this.handleQuery()
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset()
|
||||
this.open = true
|
||||
this.title = '添加计量设备阈值维护'
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset()
|
||||
const objId = row.objId || this.ids
|
||||
getBaseMonitorThreshold(objId).then(response => {
|
||||
this.form = response.data
|
||||
this.open = true
|
||||
this.title = '修改计量设备阈值维护'
|
||||
})
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs['form'].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.objId != null) {
|
||||
updateBaseMonitorThreshold(this.form).then(response => {
|
||||
this.$modal.msgSuccess('修改成功')
|
||||
this.open = false
|
||||
this.getList()
|
||||
})
|
||||
} else {
|
||||
addBaseMonitorThreshold(this.form).then(response => {
|
||||
this.$modal.msgSuccess('新增成功')
|
||||
this.open = false
|
||||
this.getList()
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const objIds = row.objId || this.ids
|
||||
this.$modal.confirm('是否确认删除计量设备阈值维护编号为"' + objIds + '"的数据项?').then(function() {
|
||||
return delBaseMonitorThreshold(objIds)
|
||||
}).then(() => {
|
||||
this.getList()
|
||||
this.$modal.msgSuccess('删除成功')
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download('ems/base/baseMonitorThreshold/export', {
|
||||
...this.queryParams
|
||||
}, `baseMonitorThreshold_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@ -0,0 +1,634 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-card class="box-card" style="margin-bottom: 10px">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24" :xs="24">
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
ref="queryForm"
|
||||
size="small"
|
||||
:inline="true"
|
||||
v-show="showSearch"
|
||||
label-width="68px"
|
||||
>
|
||||
<el-form-item label="能源类型" prop="energyType">
|
||||
<el-select v-model="queryParams.energyType" style="width: 100px" placeholder="请选择能源类型">
|
||||
<el-option
|
||||
v-for="item in energyTypeList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="日期类型" prop="dateType">
|
||||
<el-select v-model="queryParams.dateType" style="width: 100px" placeholder="请选择日期类型">
|
||||
<el-option
|
||||
v-for="dict in dateTypeList"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="采集时间">
|
||||
<el-date-picker
|
||||
v-model="queryParams.startTime"
|
||||
style="width: 200px"
|
||||
type="datetime"
|
||||
placeholder="选择日期时间"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="auto">-</el-form-item>
|
||||
<el-form-item>
|
||||
<el-date-picker
|
||||
v-model="queryParams.endTime"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
style="width: 200px"
|
||||
type="datetime"
|
||||
placeholder="选择日期时间"
|
||||
></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
size="mini"
|
||||
@click="handleQuery"
|
||||
>搜索
|
||||
</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
|
||||
>重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="5" :xs="24">
|
||||
<el-card class="box-card" style="height: 350px; position: relative">
|
||||
<img
|
||||
class="centered-image"
|
||||
src="@/assets/images/electricityIcon.svg"
|
||||
/>
|
||||
<div class="centered-text total-consumption-label" style="margin-bottom: 20px;">
|
||||
总耗量
|
||||
</div>
|
||||
<div class="centered-text total-consumption-value">
|
||||
{{ totalConsumption != null ? totalConsumption.toFixed(2) : '' }}{{ measurementUnit }}
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="19" :xs="24">
|
||||
<el-card class="box-card" style="height: 350px; margin-bottom: 10px">
|
||||
<div id="card" class="card-container"></div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-card class="box-card" style="margin-bottom: 30px">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24" :xs="24">
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
>导出
|
||||
</el-button>
|
||||
</el-col>
|
||||
<right-toolbar
|
||||
:showSearch.sync="showSearch"
|
||||
@queryTable="getList"
|
||||
></right-toolbar>
|
||||
</el-row>
|
||||
<el-table
|
||||
header-cell-class-name="columnClassName"
|
||||
id="bootstrap-table"
|
||||
v-loading="loading"
|
||||
:data="dataList"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<template v-for="time in timeList">
|
||||
<el-table-column
|
||||
v-if="time.title && time.rowspan == 2"
|
||||
:key="time.title"
|
||||
:label="time.title"
|
||||
:prop="time.field"
|
||||
min-width="120"
|
||||
/>
|
||||
<el-table-column
|
||||
v-if="time.title && time.colspan == 1"
|
||||
:key="time.title"
|
||||
:label="time.title"
|
||||
>
|
||||
<el-table-column
|
||||
min-width="140"
|
||||
:key="time.title + '_' + time.field"
|
||||
:label="'耗量(' + measurementUnit + ')'"
|
||||
:prop="time.field"
|
||||
/>
|
||||
</el-table-column>
|
||||
</template>
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
energyPreviewReportList
|
||||
} from '@/api/ems/report/reportPort.js'
|
||||
import Treeselect from '@riophae/vue-treeselect'
|
||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||
import * as echarts from 'echarts'
|
||||
import {
|
||||
getHoursBetween,
|
||||
getDatesBetween,
|
||||
getMonthsBetween,
|
||||
getYearsBetween
|
||||
} from '@/utils/dateReportUtils.js'
|
||||
import { handleExport } from '@/utils/export.js'
|
||||
import { parseTime } from '@/utils/ruoyi'
|
||||
|
||||
let data = {}
|
||||
let optionData = {}
|
||||
export default {
|
||||
name: 'EnergyPreview',
|
||||
dicts: ['statistical_unit'],
|
||||
components: { Treeselect },
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 表格数据
|
||||
dataList: null,
|
||||
// 时间List
|
||||
timeList: null,
|
||||
energyList: null,
|
||||
// 弹出层标题
|
||||
title: '',
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
energyType: '2',
|
||||
dateType: '10',
|
||||
startTime: '',
|
||||
endTime: ''
|
||||
},
|
||||
//总耗量
|
||||
totalConsumption: 0,
|
||||
//计量单位
|
||||
measurementUnit: 'kW·h',
|
||||
//采集方式
|
||||
dateTypeList: [
|
||||
{ label: '时', value: '13' },
|
||||
{ label: '日', value: '10' },
|
||||
{ label: '月', value: '7' },
|
||||
{ label: '年', value: '4' }
|
||||
],
|
||||
// 能源类型选项
|
||||
energyTypeList: [
|
||||
{ value: '2', label: '电' },
|
||||
{ value: '3', label: '水' },
|
||||
{ value: '4', label: '蒸汽' }
|
||||
],
|
||||
option: {
|
||||
grid: {
|
||||
containLabel: true,
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
bottom: '5%',
|
||||
top: 20
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
formatter: function(params) {
|
||||
return params.data + 'kW·h'
|
||||
},
|
||||
textStyle: {
|
||||
align: 'left'
|
||||
}
|
||||
},
|
||||
xAxis: [
|
||||
{
|
||||
axisLabel: {
|
||||
color: '#333',
|
||||
fontSize: 14
|
||||
// interval: 0,
|
||||
},
|
||||
axisTick: {
|
||||
lineStyle: {
|
||||
color: '#384267'
|
||||
},
|
||||
show: true
|
||||
},
|
||||
splitLine: {
|
||||
show: false
|
||||
},
|
||||
axisLine: {
|
||||
lineStyle: {
|
||||
color: 'rgba(255,255,255,0.1)',
|
||||
width: 1
|
||||
},
|
||||
show: true
|
||||
},
|
||||
data: data.x,
|
||||
type: 'category'
|
||||
}
|
||||
],
|
||||
yAxis: {
|
||||
axisLabel: {
|
||||
color: '#333',
|
||||
fontSize: 14
|
||||
},
|
||||
axisTick: {
|
||||
lineStyle: {
|
||||
color: '#384267',
|
||||
width: 1
|
||||
},
|
||||
show: true
|
||||
},
|
||||
splitLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: 'rgba(255,255,255,0.1)'
|
||||
}
|
||||
},
|
||||
axisLine: {
|
||||
lineStyle: {
|
||||
color: 'rgba(255,255,255,0.1)',
|
||||
width: 1
|
||||
},
|
||||
show: true
|
||||
},
|
||||
name: ''
|
||||
},
|
||||
dataZoom: [],
|
||||
series: [
|
||||
{
|
||||
data: data.y,
|
||||
type: 'bar',
|
||||
barMaxWidth: 20,
|
||||
barWidth: '75%',
|
||||
itemStyle: {
|
||||
color: {
|
||||
x: 0,
|
||||
y: 0,
|
||||
x2: 0,
|
||||
y2: 1,
|
||||
type: 'linear',
|
||||
global: false,
|
||||
colorStops: [
|
||||
{
|
||||
offset: 0,
|
||||
color: optionData?.bgColor ? optionData.bgColor : '#0a8ff6'
|
||||
},
|
||||
{
|
||||
offset: 1,
|
||||
color: '#06f8f7'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'line',
|
||||
stack: '总量',
|
||||
symbol: 'circle',
|
||||
symbolSize: 8,
|
||||
itemStyle: {
|
||||
normal: {
|
||||
borderWidth: 2,
|
||||
borderColor: '#3aa1ff',
|
||||
color: '#3aa1ff',
|
||||
lineStyle: {
|
||||
color: '#3aa1ff',
|
||||
width: 1
|
||||
}
|
||||
}
|
||||
},
|
||||
tooltip: {
|
||||
show: false
|
||||
},
|
||||
data: data.y
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
const nowDate = parseTime(new Date(), '{y}-{m}-{d}')
|
||||
this.queryParams.startTime = nowDate + ' 00:00:00'
|
||||
this.queryParams.endTime = nowDate + ' 23:59:59'
|
||||
},
|
||||
mounted() {
|
||||
this.handleQuery()
|
||||
},
|
||||
methods: {
|
||||
getDateList(startTime, endTime) {
|
||||
if (this.queryParams.dateType === '13') {
|
||||
return getHoursBetween(startTime, endTime)
|
||||
} else if (this.queryParams.dateType === '10') {
|
||||
return getDatesBetween(startTime, endTime)
|
||||
} else if (this.queryParams.dateType === '7') {
|
||||
return getMonthsBetween(startTime, endTime)
|
||||
} else if (this.queryParams.dateType === '4') {
|
||||
return getYearsBetween(startTime, endTime)
|
||||
}
|
||||
},
|
||||
barChart() {
|
||||
var chartDom = document.getElementById('card')
|
||||
var myChart = echarts.init(chartDom)
|
||||
let data = []
|
||||
const createLinearGradient = (startColor, endColor) => ({
|
||||
x: 0,
|
||||
y: 0,
|
||||
x2: 0,
|
||||
y2: 1,
|
||||
type: 'linear',
|
||||
global: false,
|
||||
colorStops: [
|
||||
{ offset: 0, color: startColor },
|
||||
{ offset: 1, color: endColor }
|
||||
]
|
||||
})
|
||||
|
||||
const axisStyle = {
|
||||
axisLabel: { color: '#333', fontSize: 14 },
|
||||
axisTick: { lineStyle: { color: '#384267', width: 1 }, show: true },
|
||||
axisLine: { lineStyle: { color: 'rgba(255,255,255,0.1)', width: 1 }, show: true }
|
||||
}
|
||||
|
||||
const option = {
|
||||
grid: {
|
||||
containLabel: true,
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
bottom: '5%',
|
||||
top: 20
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
formatter: (params) => `${params[0].name}<br>${params[0].marker} ${params[0].data}kW·h`
|
||||
},
|
||||
xAxis: [
|
||||
{
|
||||
...axisStyle,
|
||||
data: [],
|
||||
type: 'category',
|
||||
splitLine: { show: false }
|
||||
}
|
||||
],
|
||||
yAxis: {
|
||||
...axisStyle,
|
||||
splitLine: { show: true, lineStyle: { color: 'rgba(255,255,255,0.1)' } },
|
||||
name: ''
|
||||
},
|
||||
dataZoom: [],
|
||||
series: [
|
||||
{
|
||||
data: data,
|
||||
type: 'bar',
|
||||
barMaxWidth: 20,
|
||||
barWidth: '75%',
|
||||
itemStyle: {
|
||||
color: createLinearGradient(optionData?.bgColor || '#0a8ff6', '#06f8f7')
|
||||
}
|
||||
},
|
||||
{
|
||||
data: data,
|
||||
type: 'line',
|
||||
stack: '总量',
|
||||
symbol: 'circle',
|
||||
symbolSize: 8,
|
||||
itemStyle: {
|
||||
normal: {
|
||||
borderWidth: 2,
|
||||
borderColor: '#3aa1ff',
|
||||
color: '#3aa1ff',
|
||||
lineStyle: { color: '#3aa1ff', width: 1 }
|
||||
}
|
||||
},
|
||||
tooltip: { show: false }
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
myChart.setOption(option)
|
||||
energyPreviewReportList(this.queryParams).then((response) => {
|
||||
this.dataList = response.data
|
||||
this.loading = false
|
||||
|
||||
const data = response.data || []
|
||||
if (data.length === 0) return
|
||||
this.totalConsumption = data.reduce((sum, item) => {
|
||||
return sum + parseFloat(item.expendSum || 0);
|
||||
}, 0);
|
||||
|
||||
|
||||
const keys = Object.keys(data[0])
|
||||
const filteredKeys = keys.filter(key => key && !['unitName', 'state', 'expendSum', 'type'].includes(key))
|
||||
|
||||
const yData = filteredKeys.map(key => {
|
||||
return data.reduce((sum, item) => sum + parseFloat(item[key] || 0), 0).toFixed(2)
|
||||
})
|
||||
|
||||
const timeData = filteredKeys.map(key => key.split('expend')[1] + ':00:00')
|
||||
const sortedData = timeData.map((time, index) => ({
|
||||
name: time,
|
||||
value: parseFloat(yData[index]),
|
||||
time: new Date(time).getTime()
|
||||
})).sort((a, b) => a.time - b.time)
|
||||
|
||||
const xAxisData = sortedData.map(item => item.name.split(':')[0])
|
||||
const seriesData = sortedData.map(item => item.value)
|
||||
|
||||
myChart.setOption({
|
||||
dataZoom: [{
|
||||
show: true,
|
||||
type: 'slider',
|
||||
bottom: '3%',
|
||||
xAxisIndex: 0,
|
||||
height: 12,
|
||||
start: 0,
|
||||
brushSelect: false,
|
||||
end: (1 / (seriesData.length / 20)) * 100,
|
||||
textStyle: {
|
||||
fontSize: 0,
|
||||
color: 'rgba(0,0,0,0)'
|
||||
}
|
||||
}],
|
||||
xAxis: [{
|
||||
data: xAxisData
|
||||
}],
|
||||
series: [{
|
||||
data: seriesData
|
||||
}, {
|
||||
data: seriesData
|
||||
}]
|
||||
})
|
||||
})
|
||||
|
||||
},
|
||||
/** 查询用户列表 */
|
||||
getList(dateList) {
|
||||
this.loading = true
|
||||
this.initTable(dateList)
|
||||
this.barChart()
|
||||
},
|
||||
initTable(columns) {
|
||||
this.timeList = []
|
||||
this.energyList = []
|
||||
this.timeList.push(
|
||||
{
|
||||
title: '用电类型名称',
|
||||
field: 'unitName',
|
||||
align: 'center',
|
||||
rowspan: 2
|
||||
},
|
||||
{
|
||||
field: 'expendSum',
|
||||
title: '耗量合计(' + this.measurementUnit + ')',
|
||||
align: 'center',
|
||||
rowspan: 2
|
||||
}
|
||||
)
|
||||
for (let i in columns) {
|
||||
this.timeList.push({
|
||||
title: columns[i],
|
||||
align: 'center',
|
||||
colspan: 1,
|
||||
field: 'expend' + columns[i].substring(0, 13)
|
||||
})
|
||||
this.energyList.push({
|
||||
field: 'expend' + columns[i].substring(0, 13),
|
||||
title: '耗量(' + this.measurementUnit + ')',
|
||||
align: 'center',
|
||||
rowspan: 1
|
||||
})
|
||||
}
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false
|
||||
this.reset()
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
userId: undefined
|
||||
}
|
||||
this.resetForm('form')
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
let dateList = this.getDateList(
|
||||
this.queryParams.startTime,
|
||||
this.queryParams.endTime
|
||||
)
|
||||
this.getList(dateList)
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.queryParams.dateType = '10'
|
||||
this.queryParams.startTime = ''
|
||||
this.queryParams.endTime = ''
|
||||
this.handleQuery()
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map((item) => item.userId)
|
||||
this.single = selection.length != 1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
handleExport('bootstrap-table', `能源预览_${new Date().getTime()}`, true)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.app-container {
|
||||
::v-deep.columnClassName {
|
||||
font-size: 10px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.tree {
|
||||
width: 220px;
|
||||
|
||||
::v-deep .el-tree-node {
|
||||
white-space: normal; //关键代码!!!!!!!!!
|
||||
|
||||
.el-tree-node__content {
|
||||
height: 100%;
|
||||
align-items: start;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.app-container {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.centered-image {
|
||||
position: absolute;
|
||||
top: 40%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -100%);
|
||||
}
|
||||
|
||||
.centered-text {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translate(-50%, 0%);
|
||||
font-weight: 600;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.total-consumption-label {
|
||||
top: 45%;
|
||||
font-size: 1.9vw;
|
||||
}
|
||||
|
||||
.total-consumption-value {
|
||||
top: 55%;
|
||||
width: 100%;
|
||||
padding: 3px 10px;
|
||||
font-size: 1.7vw;
|
||||
}
|
||||
|
||||
.card-container {
|
||||
width: 100%;
|
||||
height: 350px;
|
||||
margin-left: 50px;
|
||||
user-select: none;
|
||||
margin-top: -30px;
|
||||
}
|
||||
|
||||
.mb8 {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,266 @@
|
||||
<template>
|
||||
|
||||
<div class="app-container">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="5" :xs="24">
|
||||
<div class="head-container">
|
||||
<el-input
|
||||
v-model="workUnitName"
|
||||
placeholder="请输入统计单元名称"
|
||||
clearable
|
||||
size="small"
|
||||
prefix-icon="el-icon-search"
|
||||
style="margin-bottom: 20px"
|
||||
/>
|
||||
</div>
|
||||
<div class="head-container">
|
||||
<el-tree
|
||||
:data="workUnitOptions"
|
||||
:props="workUnitProps"
|
||||
:expand-on-click-node="false"
|
||||
:filter-node-method="filterNode"
|
||||
ref="tree"
|
||||
node-key="id"
|
||||
default-expand-all
|
||||
highlight-current
|
||||
@node-click="handleNodeClick"
|
||||
/>
|
||||
</div>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="19" :xs="24">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
|
||||
label-width="100px">
|
||||
<el-form-item label="日期类型" prop="dateType">
|
||||
<el-select v-model="queryParams.dateType" placeholder="请选择日期类型">
|
||||
<el-option
|
||||
v-for="item in dateTypeList"
|
||||
:key="item.dateTypeCode"
|
||||
:label="item.dateTypeName"
|
||||
:value="item.dateTypeCode"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="采集日期">
|
||||
<el-date-picker
|
||||
v-model="daterangeCollectTime"
|
||||
style="width: 240px"
|
||||
value-format="yyyy-MM-dd"
|
||||
type="daterange"
|
||||
range-separator="-"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
></el-date-picker>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
>导出
|
||||
</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="monitorWorkUnitList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center"/>
|
||||
<el-table-column label="主键标识" align="center" prop="objId" v-if="columns[0].visible" />
|
||||
<el-table-column label="统计单元编号" align="center" prop="workUnitCode" v-if="columns[1].visible" />
|
||||
<el-table-column label="统计单元名称" align="center" prop="workUnitName" v-if="columns[2].visible" />
|
||||
<el-table-column label="统计日期" align="center" prop="pointTime" v-if="columns[3].visible" />
|
||||
<el-table-column label="分时类型" align="center" prop="priceType" v-if="columns[4].visible" />
|
||||
<el-table-column label="耗量(kwh)" align="center" prop="expend" v-if="columns[5].visible" />
|
||||
<el-table-column label="价格" align="center" prop="price" v-if="columns[6].visible" />
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import { getWorkUnitTrees } from '@/api/ems/base/baseWorkUnit'
|
||||
import Treeselect from "@riophae/vue-treeselect";
|
||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
||||
import { peaksValleysConsumptionReportList } from '@//api/ems/report/reportPort.js'
|
||||
import { parseTime } from '@//utils/ruoyi'
|
||||
|
||||
export default {
|
||||
name: "PeaksValleysConsumptionReport",
|
||||
components: {
|
||||
Treeselect
|
||||
}, data() {
|
||||
return {
|
||||
monitorInfoOptions: [],
|
||||
workUnitOptions: [],
|
||||
workUnitName: undefined,
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 统计计量信息表格数据
|
||||
monitorWorkUnitList: [],
|
||||
daterangeCollectTime: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
monitorCode: null,
|
||||
workUnitCode: null,
|
||||
monitorStatus: null,
|
||||
monitorType: null,
|
||||
dateType: 10,
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
workUnitProps: {
|
||||
children: "children",
|
||||
label: "label"
|
||||
},
|
||||
dateTypeList: [
|
||||
{dateTypeCode: 10, dateTypeName: '日'},
|
||||
{dateTypeCode: 7, dateTypeName: '月'},
|
||||
{dateTypeCode: 4, dateTypeName: '年'},
|
||||
],
|
||||
columns: [
|
||||
{key: 0, label: `主键标识`, visible: false},
|
||||
{key: 1, label: `统计单元编号`, visible: true},
|
||||
{key: 2, label: `统计单元名称`, visible: true},
|
||||
{key: 3, label: `统计日期`, visible: true},
|
||||
{key: 4, label: `分时类型`, visible: true},
|
||||
{key: 5, label: `仪表值(kwh)`, visible: true},
|
||||
{key: 6, label: `价格`, visible: true},
|
||||
]
|
||||
};
|
||||
},
|
||||
created() {
|
||||
const nowDate = parseTime(new Date(), '{y}-{m}-{d}')
|
||||
this.daterangeCollectTime[0] = nowDate
|
||||
this.daterangeCollectTime[1] = nowDate
|
||||
this.getList();
|
||||
this.getWorkUnitTrees();
|
||||
},
|
||||
watch: {
|
||||
// 根据名称筛选部门树
|
||||
workUnitName(val) {
|
||||
this.$refs.tree.filter(val);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/** 转换统计单元信息数据结构 */
|
||||
workUnitOptionsNormalizer(node) {
|
||||
if (node.children && !node.children.length) {
|
||||
delete node.children;
|
||||
}
|
||||
return {
|
||||
id2: node.workUnitCode,
|
||||
label2: node.workUnitName,
|
||||
children2: node.children
|
||||
};
|
||||
},
|
||||
/** 查询计量设备下拉树结构 */
|
||||
getWorkUnitTrees() {
|
||||
getWorkUnitTrees().then(response => {
|
||||
this.workUnitOptions = [];
|
||||
this.workUnitOptions = JSON.parse(JSON.stringify(response.data).replaceAll('id','id2').replaceAll('code','id'));
|
||||
});
|
||||
},
|
||||
// 筛选节点
|
||||
filterNode(value, data) {
|
||||
if (!value) return true;
|
||||
return data.label.indexOf(value) !== -1;
|
||||
},
|
||||
// 节点单击事件
|
||||
handleNodeClick(data) {
|
||||
this.queryParams.workUnitCode = data.id;
|
||||
this.handleQuery();
|
||||
},
|
||||
/** 查询统计计量信息列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
this.queryParams.beginCollectTime = null;
|
||||
this.queryParams.endCollectTime = null;
|
||||
if (this.daterangeCollectTime != null && this.daterangeCollectTime !== '') {
|
||||
this.queryParams.beginCollectTime = this.daterangeCollectTime[0];
|
||||
this.queryParams.endCollectTime = this.daterangeCollectTime[1];
|
||||
}
|
||||
peaksValleysConsumptionReportList(this.queryParams).then(response => {
|
||||
this.monitorWorkUnitList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
parentIds: null,
|
||||
parentId: null,
|
||||
objId: null,
|
||||
monitorCode: null,
|
||||
workUnitCode: null,
|
||||
monitorStatus: 0,
|
||||
monitorType: 1,
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.queryParams.workUnitCode = null;
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.objId)
|
||||
this.single = selection.length !== 1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download('ems/report/peaksValleysConsumptionReportList/export', {
|
||||
...this.queryParams
|
||||
}, `峰平谷耗量报表_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@ -0,0 +1,427 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
|
||||
<el-form-item label="订单编号" prop="orderCode">
|
||||
<el-input
|
||||
v-model="queryParams.orderCode"
|
||||
placeholder="请输入订单编号"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="工单编号" prop="planCode">
|
||||
<el-input
|
||||
v-model="queryParams.planCode"
|
||||
placeholder="请输入工单编号"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="工序编号" prop="processCode">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="queryParams.processCode"-->
|
||||
<!-- placeholder="请输入工序编号"-->
|
||||
<!-- clearable-->
|
||||
<!-- @keyup.enter.native="handleQuery"-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="工位名称" prop="stationCode">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="queryParams.stationCode"-->
|
||||
<!-- placeholder="请输入工位名称"-->
|
||||
<!-- clearable-->
|
||||
<!-- @keyup.enter.native="handleQuery"-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button-->
|
||||
<!-- type="primary"-->
|
||||
<!-- plain-->
|
||||
<!-- icon="el-icon-plus"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- @click="handleAdd"-->
|
||||
<!-- v-hasPermi="['mes/prod:planExecuteUser:add']"-->
|
||||
<!-- >新增-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button-->
|
||||
<!-- type="success"-->
|
||||
<!-- plain-->
|
||||
<!-- icon="el-icon-edit"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- :disabled="single"-->
|
||||
<!-- @click="handleUpdate"-->
|
||||
<!-- v-hasPermi="['mes/prod:planExecuteUser:edit']"-->
|
||||
<!-- >修改-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button-->
|
||||
<!-- type="danger"-->
|
||||
<!-- plain-->
|
||||
<!-- icon="el-icon-delete"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- :disabled="multiple"-->
|
||||
<!-- @click="handleDelete"-->
|
||||
<!-- v-hasPermi="['mes/prod:planExecuteUser:remove']"-->
|
||||
<!-- >删除-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['mes/prod:planExecuteUser:export']"
|
||||
>导出
|
||||
</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="planExecuteUserList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center"/>
|
||||
<el-table-column label="主键标识" align="center" prop="objId" v-if="columns[0].visible"/>
|
||||
<el-table-column label="订单编号" align="center" prop="orderCode" width="130" v-if="columns[1].visible"/>
|
||||
<el-table-column label="工单编号" align="center" prop="planCode" width="230" v-if="columns[2].visible"/>
|
||||
<el-table-column label="工序编号" align="center" prop="processCode" v-if="columns[3].visible"/>
|
||||
<el-table-column label="工位名称" align="center" prop="stationName" width="100" v-if="columns[4].visible"/>
|
||||
<el-table-column label="员工名称" align="center" prop="staffName" v-if="columns[5].visible"/>
|
||||
<el-table-column label="生产米数" align="center" prop="completeAmount" v-if="columns[6].visible"/>
|
||||
<el-table-column label="工单明细开始时间" align="center" prop="planBeginDate" width="180" v-if="columns[7].visible">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.planBeginDate, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工单明细结束时间" align="center" prop="planEndDate" width="180" v-if="columns[8].visible">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.planEndDate, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="生产次数(锅数)" align="center" prop="batchNumber" v-if="columns[14].visible"/>
|
||||
<el-table-column label="启用标识" align="center" prop="isFlag" v-if="columns[9].visible">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.is_flag" :value="scope.row.isFlag"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建人" align="center" prop="createdBy" v-if="columns[10].visible"/>
|
||||
<el-table-column label="创建时间" align="center" prop="createdTime" width="180" v-if="columns[11].visible">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="更新人" align="center" prop="updatedBy" v-if="columns[12].visible"/>
|
||||
<el-table-column label="更新时间" align="center" prop="updatedTime" width="180" v-if="columns[13].visible">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.updatedTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <el-button-->
|
||||
<!-- size="mini"-->
|
||||
<!-- type="text"-->
|
||||
<!-- icon="el-icon-edit"-->
|
||||
<!-- @click="handleUpdate(scope.row)"-->
|
||||
<!-- v-hasPermi="['mes/prod:planExecuteUser:edit']"-->
|
||||
<!-- >修改-->
|
||||
<!-- </el-button>-->
|
||||
<!-- <el-button-->
|
||||
<!-- size="mini"-->
|
||||
<!-- type="text"-->
|
||||
<!-- icon="el-icon-delete"-->
|
||||
<!-- @click="handleDelete(scope.row)"-->
|
||||
<!-- v-hasPermi="['mes/prod:planExecuteUser:remove']"-->
|
||||
<!-- >删除-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改生产工单执行用户对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form-item label="订单编号" prop="orderCode">
|
||||
<el-input v-model="form.orderCode" placeholder="请输入订单编号"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="工单编号" prop="planCode">
|
||||
<el-input v-model="form.planCode" placeholder="请输入工单编号"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="工序编号" prop="processCode">
|
||||
<el-input v-model="form.processCode" placeholder="请输入工序编号"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="工位名称" prop="stationCode">
|
||||
<el-input v-model="form.stationCode" placeholder="请输入工位名称"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="员工名称" prop="staffId">
|
||||
<el-input v-model="form.staffId" placeholder="请输入员工名称"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="生产米数" prop="completeAmount">
|
||||
<el-input v-model="form.completeAmount" placeholder="请输入生产米数"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="工单明细开始时间" prop="planBeginDate">
|
||||
<el-date-picker clearable
|
||||
v-model="form.planBeginDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择工单明细开始时间"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="工单明细结束时间" prop="planEndDate">
|
||||
<el-date-picker clearable
|
||||
v-model="form.planEndDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择工单明细结束时间"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="启用标识" prop="isFlag">
|
||||
<el-radio-group v-model="form.isFlag">
|
||||
<el-radio
|
||||
v-for="dict in dict.type.is_flag"
|
||||
:key="dict.value"
|
||||
:label="dict.value"
|
||||
>{{ dict.label }}
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人" prop="createdBy">
|
||||
<el-input v-model="form.createdBy" placeholder="请输入创建人"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间" prop="createdTime">
|
||||
<el-date-picker clearable
|
||||
v-model="form.createdTime"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择创建时间"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="更新人" prop="updatedBy">
|
||||
<el-input v-model="form.updatedBy" placeholder="请输入更新人"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="更新时间" prop="updatedTime">
|
||||
<el-date-picker clearable
|
||||
v-model="form.updatedTime"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择更新时间"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
listPlanExecuteUser,
|
||||
getPlanExecuteUser,
|
||||
delPlanExecuteUser,
|
||||
addPlanExecuteUser,
|
||||
updatePlanExecuteUser
|
||||
} from '@/api/mes/prod/planExecuteUser'
|
||||
|
||||
export default {
|
||||
name: 'PlanExecuteUser',
|
||||
dicts: ['is_flag'],
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 生产工单执行用户表格数据
|
||||
planExecuteUserList: [],
|
||||
// 弹出层标题
|
||||
title: '',
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
orderCode: null,
|
||||
planCode: null,
|
||||
processCode: null,
|
||||
stationCode: null,
|
||||
staffId: null,
|
||||
completeAmount: null,
|
||||
planBeginDate: null,
|
||||
planEndDate: null,
|
||||
isFlag: null,
|
||||
createdBy: null,
|
||||
createdTime: null,
|
||||
updatedBy: null,
|
||||
updatedTime: null
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
objId: [
|
||||
{ required: true, message: '主键标识不能为空', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
columns: [
|
||||
{ key: 0, label: `主键标识`, visible: false },
|
||||
{ key: 1, label: `订单编号`, visible: true },
|
||||
{ key: 2, label: `工单编号`, visible: true },
|
||||
{ key: 3, label: `工序编号`, visible: true },
|
||||
{ key: 4, label: `工位名称`, visible: true },
|
||||
{ key: 5, label: `员工名称`, visible: true },
|
||||
{ key: 6, label: `生产米数`, visible: true },
|
||||
{ key: 7, label: `工单明细开始时间`, visible: true },
|
||||
{ key: 8, label: `工单明细结束时间`, visible: true },
|
||||
{ key: 9, label: `启用标识`, visible: false },
|
||||
{ key: 10, label: `创建人`, visible: false },
|
||||
{ key: 11, label: `创建时间`, visible: false },
|
||||
{ key: 12, label: `更新人`, visible: false },
|
||||
{ key: 13, label: `更新时间`, visible: false },
|
||||
{ key: 14, label: `生产次数(锅数)`, visible: true }
|
||||
]
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
/** 查询生产工单执行用户列表 */
|
||||
getList() {
|
||||
this.loading = true
|
||||
listPlanExecuteUser(this.queryParams).then(response => {
|
||||
this.planExecuteUserList = response.rows
|
||||
this.total = response.total
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false
|
||||
this.reset()
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
objId: null,
|
||||
orderCode: null,
|
||||
planCode: null,
|
||||
processCode: null,
|
||||
stationCode: null,
|
||||
staffId: null,
|
||||
completeAmount: null,
|
||||
planBeginDate: null,
|
||||
planEndDate: null,
|
||||
isFlag: null,
|
||||
createdBy: null,
|
||||
createdTime: null,
|
||||
updatedBy: null,
|
||||
updatedTime: null
|
||||
}
|
||||
this.resetForm('form')
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm('queryForm')
|
||||
this.handleQuery()
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.objId)
|
||||
this.single = selection.length !== 1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset()
|
||||
this.open = true
|
||||
this.title = '添加生产工单执行用户'
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset()
|
||||
const objId = row.objId || this.ids
|
||||
getPlanExecuteUser(objId).then(response => {
|
||||
this.form = response.data
|
||||
this.open = true
|
||||
this.title = '修改生产工单执行用户'
|
||||
})
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs['form'].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.objId != null) {
|
||||
updatePlanExecuteUser(this.form).then(response => {
|
||||
this.$modal.msgSuccess('修改成功')
|
||||
this.open = false
|
||||
this.getList()
|
||||
})
|
||||
} else {
|
||||
addPlanExecuteUser(this.form).then(response => {
|
||||
this.$modal.msgSuccess('新增成功')
|
||||
this.open = false
|
||||
this.getList()
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const objIds = row.objId || this.ids
|
||||
this.$modal.confirm('是否确认删除生产工单执行用户编号为"' + objIds + '"的数据项?').then(function() {
|
||||
return delPlanExecuteUser(objIds)
|
||||
}).then(() => {
|
||||
this.getList()
|
||||
this.$modal.msgSuccess('删除成功')
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download('mes/prod/planExecuteUser/export', {
|
||||
...this.queryParams
|
||||
}, `planExecuteUser_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@ -0,0 +1,824 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
|
||||
<el-form-item label="任务编号" prop="taskCode">
|
||||
<el-input
|
||||
v-model="queryParams.taskCode"
|
||||
placeholder="请输入任务编号"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="计划流水号" prop="seqNo">
|
||||
<el-input
|
||||
v-model="queryParams.seqNo"
|
||||
placeholder="请输入计划流水号"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="计划开始时间">
|
||||
<el-date-picker
|
||||
v-model="daterangePlanStartTime"
|
||||
style="width: 340px"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
type="datetimerange"
|
||||
range-separator="-"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
></el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="计划结束时间">-->
|
||||
<!-- <el-date-picker-->
|
||||
<!-- v-model="daterangePlanEndTime"-->
|
||||
<!-- style="width: 340px"-->
|
||||
<!-- value-format="yyyy-MM-dd HH:mm:ss"-->
|
||||
<!-- type="datetimerange"-->
|
||||
<!-- range-separator="-"-->
|
||||
<!-- start-placeholder="开始时间"-->
|
||||
<!-- end-placeholder="结束时间"-->
|
||||
<!-- ></el-date-picker>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="关联资源" prop="associationResource">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="queryParams.associationResource"-->
|
||||
<!-- placeholder="请输入关联资源"-->
|
||||
<!-- clearable-->
|
||||
<!-- @keyup.enter.native="handleQuery"-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="班组名称" prop="teamName">
|
||||
<el-input
|
||||
v-model="queryParams.teamName"
|
||||
placeholder="请输入班组名称"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button-->
|
||||
<!-- type="primary"-->
|
||||
<!-- plain-->
|
||||
<!-- icon="el-icon-plus"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- @click="handleAdd"-->
|
||||
<!-- v-hasPermi="['mes/prod:prodPlanErpInfo:add']"-->
|
||||
<!-- >新增-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button-->
|
||||
<!-- type="success"-->
|
||||
<!-- plain-->
|
||||
<!-- icon="el-icon-edit"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- :disabled="single"-->
|
||||
<!-- @click="handleUpdate"-->
|
||||
<!-- v-hasPermi="['mes/prod:prodPlanErpInfo:edit']"-->
|
||||
<!-- >修改-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button-->
|
||||
<!-- type="danger"-->
|
||||
<!-- plain-->
|
||||
<!-- icon="el-icon-delete"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- :disabled="multiple"-->
|
||||
<!-- @click="handleDelete"-->
|
||||
<!-- v-hasPermi="['mes/prod:prodPlanErpInfo:remove']"-->
|
||||
<!-- >删除-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['mes/prod:prodPlanErpInfo:export']"
|
||||
>导出
|
||||
</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="prodPlanErpInfoList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center"/>
|
||||
<el-table-column label="主键标识" align="center" prop="objId" v-if="columns[0].visible"/>
|
||||
<el-table-column label="硬件" align="center" prop="hardware" v-if="columns[1].visible"/>
|
||||
<el-table-column label="软件" align="center" prop="software" v-if="columns[2].visible"/>
|
||||
<el-table-column label="阶段文字" align="center" prop="stageText" v-if="columns[3].visible"/>
|
||||
<el-table-column label="任务编号" align="center" prop="taskCode" v-if="columns[25].visible" width="140"/>
|
||||
<el-table-column label="计划流水号" align="center" prop="seqNo" v-if="columns[4].visible" width="240"/>
|
||||
<el-table-column label="计划开始时间" align="center" prop="planStartTime" width="180" v-if="columns[5].visible">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.planStartTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="计划结束时间" align="center" prop="planEndTime" width="180" v-if="columns[6].visible">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.planEndTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="关联资源" align="center" prop="associationResource" v-if="columns[7].visible"/>
|
||||
<el-table-column label="工作效率" align="center" prop="workingEfficiency" v-if="columns[8].visible"/>
|
||||
<el-table-column label="设备码" align="center" prop="equipmentNo" v-if="columns[9].visible" width="100"/>
|
||||
<el-table-column label="准备时间" align="center" prop="preparationDuration" v-if="columns[10].visible"/>
|
||||
<el-table-column label="收尾时间" align="center" prop="windUpDuration" v-if="columns[11].visible"/>
|
||||
<el-table-column label="出布最小速度" align="center" prop="clothMinimumSpeed" v-if="columns[12].visible"/>
|
||||
<el-table-column label="出布最大速度" align="center" prop="clothMaximumSpeed" v-if="columns[13].visible"/>
|
||||
<el-table-column label="成型最小速度" align="center" prop="formingMinimumSpeed" v-if="columns[14].visible"/>
|
||||
<el-table-column label="成型最大速度" align="center" prop="formingMaximumSpeed" v-if="columns[15].visible"/>
|
||||
<el-table-column label="包胶最小速度" align="center" prop="glueMinimumSpeed" v-if="columns[16].visible"/>
|
||||
<el-table-column label="包胶最大速度" align="center" prop="glueMaximumSpeed" v-if="columns[17].visible"/>
|
||||
<el-table-column label="每锅硫化米数" align="center" prop="sulfurizationLength" v-if="columns[18].visible"/>
|
||||
<el-table-column label="硫化机类型" align="center" prop="vulcanizingMachineType" v-if="columns[19].visible"/>
|
||||
<el-table-column label="硫化板层数" align="center" prop="vulcanizedBoardNumber" v-if="columns[20].visible"/>
|
||||
<el-table-column label="资源名称" align="center" prop="resourceName" v-if="columns[21].visible"/>
|
||||
<el-table-column label="工艺阶段" align="center" prop="processStage" v-if="columns[22].visible"/>
|
||||
<el-table-column label="前置工艺" align="center" prop="preProcess" v-if="columns[23].visible"/>
|
||||
<el-table-column label="发布订单" align="center" prop="releaseOrder" v-if="columns[24].visible"/>
|
||||
<el-table-column label="输送带长度规格" align="center" prop="conveyorLengthSpecification" v-if="columns[26].visible"/>
|
||||
<el-table-column label="上胶厚度" align="center" prop="upGlueThickness" v-if="columns[27].visible"/>
|
||||
<el-table-column label="上缓冲胶厚度" align="center" prop="upBufferGlueThickness" v-if="columns[28].visible"/>
|
||||
<el-table-column label="下胶厚度" align="center" prop="belowGlueThickness" v-if="columns[29].visible"/>
|
||||
<el-table-column label="下缓冲胶厚度" align="center" prop="belowBufferGlueThickness" v-if="columns[30].visible"/>
|
||||
<el-table-column label="输送带宽度" align="center" prop="beltWidth" v-if="columns[31].visible"/>
|
||||
<el-table-column label="客户要求输送带长度" align="center" prop="customerRequestConveyorLength"
|
||||
v-if="columns[32].visible" width="100"
|
||||
/>
|
||||
<el-table-column label="压延生产米数" align="center" prop="rollingProductionMeters" v-if="columns[33].visible"/>
|
||||
<el-table-column label="需要硫化米数" align="center" prop="vulcanizationMeters" v-if="columns[34].visible"/>
|
||||
<el-table-column label="推荐硫化时间" align="center" prop="recommendVulcanizationTime" v-if="columns[35].visible"/>
|
||||
<el-table-column label="出大布米数" align="center" prop="largeClothMeters" v-if="columns[36].visible"/>
|
||||
<el-table-column label="出小布米数" align="center" prop="smallClothMeters" v-if="columns[37].visible"/>
|
||||
<el-table-column label="包胶米数" align="center" prop="encapsulationMeters" v-if="columns[38].visible"/>
|
||||
<el-table-column label="工作速度" align="center" prop="workSpeed" v-if="columns[39].visible"/>
|
||||
<el-table-column label="需要工时" align="center" prop="workingHours" v-if="columns[40].visible"/>
|
||||
<el-table-column label="出布面积" align="center" prop="distributionArea" v-if="columns[41].visible"/>
|
||||
<el-table-column label="包胶面积" align="center" prop="encapsulationArea" v-if="columns[42].visible"/>
|
||||
<el-table-column label="硫化面积" align="center" prop="vulcanizationArea" v-if="columns[43].visible"/>
|
||||
<el-table-column label="输送带总面积" align="center" prop="conveyorTotalArea" v-if="columns[44].visible"/>
|
||||
<el-table-column label="胶料工艺" align="center" prop="glueProcess" v-if="columns[45].visible"/>
|
||||
<el-table-column label="上胶使用胶料" align="center" prop="upGlue" v-if="columns[46].visible"/>
|
||||
<el-table-column label="上胶系数" align="center" prop="upGlueCoefficient" v-if="columns[47].visible"/>
|
||||
<el-table-column label="上胶标准用胶量" align="center" prop="upGlueDosage" v-if="columns[48].visible"/>
|
||||
<el-table-column label="下胶使用胶料" align="center" prop="belowGlue" v-if="columns[49].visible"/>
|
||||
<el-table-column label="下胶系数" align="center" prop="belowGlueCoefficient" v-if="columns[50].visible"/>
|
||||
<el-table-column label="下胶标准用胶量" align="center" prop="belowGlueDosage" v-if="columns[51].visible"/>
|
||||
<el-table-column label="缓冲/布胶使用胶料" align="center" prop="bufferGlue" v-if="columns[52].visible"/>
|
||||
<el-table-column label="缓冲胶系数" align="center" prop="bufferGlueCoefficient" v-if="columns[53].visible"/>
|
||||
<el-table-column label="缓冲胶标准用胶量" align="center" prop="bufferGlueDosage" v-if="columns[54].visible"/>
|
||||
<el-table-column label="大布布料规格" align="center" prop="largeClothSpecifications" v-if="columns[55].visible"/>
|
||||
<el-table-column label="大布擦胶系数" align="center" prop="largeClothFrictioningCoefficient"
|
||||
v-if="columns[56].visible"
|
||||
/>
|
||||
<el-table-column label="胶布标准用胶量" align="center" prop="largeClothDosage" v-if="columns[57].visible"/>
|
||||
<el-table-column label="中间胶使用胶料" align="center" prop="middleGlue" v-if="columns[58].visible"/>
|
||||
<el-table-column label="中间胶系数" align="center" prop="middleGlueCoefficient" v-if="columns[59].visible"/>
|
||||
<el-table-column label="中间胶标准用胶量" align="center" prop="middleGlueDosage" v-if="columns[60].visible"/>
|
||||
<el-table-column label="设备使用限制" align="center" prop="deviceUsageRestrictions" v-if="columns[61].visible"/>
|
||||
<el-table-column label="判断工段" align="center" prop="workshopSection" v-if="columns[62].visible"/>
|
||||
<el-table-column label="班次" align="center" prop="classes" v-if="columns[63].visible"/>
|
||||
<el-table-column label="参加任务小组" align="center" prop="taskForce" v-if="columns[64].visible"/>
|
||||
<el-table-column label="班组名称" align="center" prop="teamName" v-if="columns[65].visible"/>
|
||||
<el-table-column label="组长" align="center" prop="groupLeader" v-if="columns[66].visible"/>
|
||||
<el-table-column label="人员活动详情" align="center" prop="personnelOperationDetails" v-if="columns[67].visible"/>
|
||||
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <el-button-->
|
||||
<!-- size="mini"-->
|
||||
<!-- type="text"-->
|
||||
<!-- icon="el-icon-edit"-->
|
||||
<!-- @click="handleUpdate(scope.row)"-->
|
||||
<!-- v-hasPermi="['mes/prod:prodPlanErpInfo:edit']"-->
|
||||
<!-- >修改-->
|
||||
<!-- </el-button>-->
|
||||
<!-- <el-button-->
|
||||
<!-- size="mini"-->
|
||||
<!-- type="text"-->
|
||||
<!-- icon="el-icon-delete"-->
|
||||
<!-- @click="handleDelete(scope.row)"-->
|
||||
<!-- v-hasPermi="['mes/prod:prodPlanErpInfo:remove']"-->
|
||||
<!-- >删除-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改生产计划信息对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form-item label="硬件" prop="hardware">
|
||||
<el-input v-model="form.hardware" placeholder="请输入硬件"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="软件" prop="software">
|
||||
<el-input v-model="form.software" placeholder="请输入软件"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="阶段文字" prop="stageText">
|
||||
<el-input v-model="form.stageText" placeholder="请输入阶段文字"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="计划流水号" prop="seqNo">
|
||||
<el-input v-model="form.seqNo" placeholder="请输入计划流水号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="计划开始时间" prop="planStartTime">
|
||||
<el-date-picker clearable
|
||||
v-model="form.planStartTime"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择计划开始时间"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="计划结束时间" prop="planEndTime">
|
||||
<el-date-picker clearable
|
||||
v-model="form.planEndTime"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择计划结束时间"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="关联资源" prop="associationResource">
|
||||
<el-input v-model="form.associationResource" placeholder="请输入关联资源"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="工作效率" prop="workingEfficiency">
|
||||
<el-input v-model="form.workingEfficiency" placeholder="请输入工作效率"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备码" prop="equipmentNo">
|
||||
<el-input v-model="form.equipmentNo" placeholder="请输入设备码"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="准备时间" prop="preparationDuration">
|
||||
<el-input v-model="form.preparationDuration" placeholder="请输入准备时间"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="收尾时间" prop="windUpDuration">
|
||||
<el-input v-model="form.windUpDuration" placeholder="请输入收尾时间"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="出布最小速度" prop="clothMinimumSpeed">
|
||||
<el-input v-model="form.clothMinimumSpeed" placeholder="请输入出布最小速度"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="出布最大速度" prop="clothMaximumSpeed">
|
||||
<el-input v-model="form.clothMaximumSpeed" placeholder="请输入出布最大速度"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="成型最小速度" prop="formingMinimumSpeed">
|
||||
<el-input v-model="form.formingMinimumSpeed" placeholder="请输入成型最小速度"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="成型最大速度" prop="formingMaximumSpeed">
|
||||
<el-input v-model="form.formingMaximumSpeed" placeholder="请输入成型最大速度"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="包胶最小速度" prop="glueMinimumSpeed">
|
||||
<el-input v-model="form.glueMinimumSpeed" placeholder="请输入包胶最小速度"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="包胶最大速度" prop="glueMaximumSpeed">
|
||||
<el-input v-model="form.glueMaximumSpeed" placeholder="请输入包胶最大速度"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="每锅硫化米数" prop="sulfurizationLength">
|
||||
<el-input v-model="form.sulfurizationLength" placeholder="请输入每锅硫化米数"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="硫化板层数" prop="vulcanizedBoardNumber">
|
||||
<el-input v-model="form.vulcanizedBoardNumber" placeholder="请输入硫化板层数"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="资源名称" prop="resourceName">
|
||||
<el-input v-model="form.resourceName" placeholder="请输入资源名称"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="工艺阶段" prop="processStage">
|
||||
<el-input v-model="form.processStage" placeholder="请输入工艺阶段"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="前置工艺" prop="preProcess">
|
||||
<el-input v-model="form.preProcess" placeholder="请输入前置工艺"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="发布订单" prop="releaseOrder">
|
||||
<el-input v-model="form.releaseOrder" placeholder="请输入发布订单"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务编号" prop="taskCode">
|
||||
<el-input v-model="form.taskCode" placeholder="请输入任务编号"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="输送带长度规格" prop="conveyorLengthSpecification">
|
||||
<el-input v-model="form.conveyorLengthSpecification" placeholder="请输入输送带长度规格"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="上胶厚度" prop="upGlueThickness">
|
||||
<el-input v-model="form.upGlueThickness" placeholder="请输入上胶厚度"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="上缓冲胶厚度" prop="upBufferGlueThickness">
|
||||
<el-input v-model="form.upBufferGlueThickness" placeholder="请输入上缓冲胶厚度"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="下胶厚度" prop="belowGlueThickness">
|
||||
<el-input v-model="form.belowGlueThickness" placeholder="请输入下胶厚度"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="下缓冲胶厚度" prop="belowBufferGlueThickness">
|
||||
<el-input v-model="form.belowBufferGlueThickness" placeholder="请输入下缓冲胶厚度"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="输送带宽度" prop="beltWidth">
|
||||
<el-input v-model="form.beltWidth" placeholder="请输入输送带宽度"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="客户要求输送带长度" prop="customerRequestConveyorLength">
|
||||
<el-input v-model="form.customerRequestConveyorLength" placeholder="请输入客户要求输送带长度"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="压延生产米数" prop="rollingProductionMeters">
|
||||
<el-input v-model="form.rollingProductionMeters" placeholder="请输入压延生产米数"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="需要硫化米数" prop="vulcanizationMeters">
|
||||
<el-input v-model="form.vulcanizationMeters" placeholder="请输入需要硫化米数"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="推荐硫化时间" prop="recommendVulcanizationTime">
|
||||
<el-input v-model="form.recommendVulcanizationTime" placeholder="请输入推荐硫化时间"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="出大布米数" prop="largeClothMeters">
|
||||
<el-input v-model="form.largeClothMeters" placeholder="请输入出大布米数"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="出小布米数" prop="smallClothMeters">
|
||||
<el-input v-model="form.smallClothMeters" placeholder="请输入出小布米数"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="包胶米数" prop="encapsulationMeters">
|
||||
<el-input v-model="form.encapsulationMeters" placeholder="请输入包胶米数"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="工作速度" prop="workSpeed">
|
||||
<el-input v-model="form.workSpeed" placeholder="请输入工作速度"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="需要工时" prop="workingHours">
|
||||
<el-input v-model="form.workingHours" placeholder="请输入需要工时"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="出布面积" prop="distributionArea">
|
||||
<el-input v-model="form.distributionArea" placeholder="请输入出布面积"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="包胶面积" prop="encapsulationArea">
|
||||
<el-input v-model="form.encapsulationArea" placeholder="请输入包胶面积"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="硫化面积" prop="vulcanizationArea">
|
||||
<el-input v-model="form.vulcanizationArea" placeholder="请输入硫化面积"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="输送带总面积" prop="conveyorTotalArea">
|
||||
<el-input v-model="form.conveyorTotalArea" placeholder="请输入输送带总面积"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="胶料工艺" prop="glueProcess">
|
||||
<el-input v-model="form.glueProcess" placeholder="请输入胶料工艺"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="上胶使用胶料" prop="upGlue">
|
||||
<el-input v-model="form.upGlue" placeholder="请输入上胶使用胶料"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="上胶系数" prop="upGlueCoefficient">
|
||||
<el-input v-model="form.upGlueCoefficient" placeholder="请输入上胶系数"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="上胶标准用胶量" prop="upGlueDosage">
|
||||
<el-input v-model="form.upGlueDosage" placeholder="请输入上胶标准用胶量"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="下胶使用胶料" prop="belowGlue">
|
||||
<el-input v-model="form.belowGlue" placeholder="请输入下胶使用胶料"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="下胶系数" prop="belowGlueCoefficient">
|
||||
<el-input v-model="form.belowGlueCoefficient" placeholder="请输入下胶系数"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="下胶标准用胶量" prop="belowGlueDosage">
|
||||
<el-input v-model="form.belowGlueDosage" placeholder="请输入下胶标准用胶量"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="缓冲/布胶使用胶料" prop="bufferGlue">
|
||||
<el-input v-model="form.bufferGlue" placeholder="请输入缓冲/布胶使用胶料"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="缓冲胶系数" prop="bufferGlueCoefficient">
|
||||
<el-input v-model="form.bufferGlueCoefficient" placeholder="请输入缓冲胶系数"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="缓冲胶标准用胶量" prop="bufferGlueDosage">
|
||||
<el-input v-model="form.bufferGlueDosage" placeholder="请输入缓冲胶标准用胶量"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="大布布料规格" prop="largeClothSpecifications">
|
||||
<el-input v-model="form.largeClothSpecifications" placeholder="请输入大布布料规格"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="大布擦胶系数" prop="largeClothFrictioningCoefficient">
|
||||
<el-input v-model="form.largeClothFrictioningCoefficient" placeholder="请输入大布擦胶系数"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="胶布标准用胶量" prop="largeClothDosage">
|
||||
<el-input v-model="form.largeClothDosage" placeholder="请输入胶布标准用胶量"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="中间胶使用胶料" prop="middleGlue">
|
||||
<el-input v-model="form.middleGlue" placeholder="请输入中间胶使用胶料"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="中间胶系数" prop="middleGlueCoefficient">
|
||||
<el-input v-model="form.middleGlueCoefficient" placeholder="请输入中间胶系数"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="中间胶标准用胶量" prop="middleGlueDosage">
|
||||
<el-input v-model="form.middleGlueDosage" placeholder="请输入中间胶标准用胶量"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备使用限制" prop="deviceUsageRestrictions">
|
||||
<el-input v-model="form.deviceUsageRestrictions" placeholder="请输入设备使用限制"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="判断工段" prop="workshopSection">
|
||||
<el-input v-model="form.workshopSection" placeholder="请输入判断工段"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="班次" prop="classes">
|
||||
<el-input v-model="form.classes" placeholder="请输入班次"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="参加任务小组" prop="taskForce">
|
||||
<el-input v-model="form.taskForce" placeholder="请输入参加任务小组"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="班组名称" prop="teamName">
|
||||
<el-input v-model="form.teamName" placeholder="请输入班组名称"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="组长" prop="groupLeader">
|
||||
<el-input v-model="form.groupLeader" placeholder="请输入组长"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="人员活动详情" prop="personnelOperationDetails">
|
||||
<el-input v-model="form.personnelOperationDetails" placeholder="请输入人员活动详情"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
listProdPlanErpInfo,
|
||||
getProdPlanErpInfo,
|
||||
delProdPlanErpInfo,
|
||||
addProdPlanErpInfo,
|
||||
updateProdPlanErpInfo
|
||||
} from '@/api/mes/prod/prodPlanErpInfo'
|
||||
|
||||
export default {
|
||||
name: 'ProdPlanErpInfo',
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 生产计划信息表格数据
|
||||
prodPlanErpInfoList: [],
|
||||
// 弹出层标题
|
||||
title: '',
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 人员活动详情时间范围
|
||||
daterangePlanStartTime: [],
|
||||
// 人员活动详情时间范围
|
||||
daterangePlanEndTime: [],
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
hardware: null,
|
||||
software: null,
|
||||
stageText: null,
|
||||
seqNo: null,
|
||||
planStartTime: null,
|
||||
planEndTime: null,
|
||||
associationResource: null,
|
||||
workingEfficiency: null,
|
||||
equipmentNo: null,
|
||||
preparationDuration: null,
|
||||
windUpDuration: null,
|
||||
clothMinimumSpeed: null,
|
||||
clothMaximumSpeed: null,
|
||||
formingMinimumSpeed: null,
|
||||
formingMaximumSpeed: null,
|
||||
glueMinimumSpeed: null,
|
||||
glueMaximumSpeed: null,
|
||||
sulfurizationLength: null,
|
||||
vulcanizingMachineType: null,
|
||||
vulcanizedBoardNumber: null,
|
||||
resourceName: null,
|
||||
processStage: null,
|
||||
preProcess: null,
|
||||
releaseOrder: null,
|
||||
taskCode: null,
|
||||
conveyorLengthSpecification: null,
|
||||
upGlueThickness: null,
|
||||
upBufferGlueThickness: null,
|
||||
belowGlueThickness: null,
|
||||
belowBufferGlueThickness: null,
|
||||
beltWidth: null,
|
||||
customerRequestConveyorLength: null,
|
||||
rollingProductionMeters: null,
|
||||
vulcanizationMeters: null,
|
||||
recommendVulcanizationTime: null,
|
||||
largeClothMeters: null,
|
||||
smallClothMeters: null,
|
||||
encapsulationMeters: null,
|
||||
workSpeed: null,
|
||||
workingHours: null,
|
||||
distributionArea: null,
|
||||
encapsulationArea: null,
|
||||
vulcanizationArea: null,
|
||||
conveyorTotalArea: null,
|
||||
glueProcess: null,
|
||||
upGlue: null,
|
||||
upGlueCoefficient: null,
|
||||
upGlueDosage: null,
|
||||
belowGlue: null,
|
||||
belowGlueCoefficient: null,
|
||||
belowGlueDosage: null,
|
||||
bufferGlue: null,
|
||||
bufferGlueCoefficient: null,
|
||||
bufferGlueDosage: null,
|
||||
largeClothSpecifications: null,
|
||||
largeClothFrictioningCoefficient: null,
|
||||
largeClothDosage: null,
|
||||
middleGlue: null,
|
||||
middleGlueCoefficient: null,
|
||||
middleGlueDosage: null,
|
||||
deviceUsageRestrictions: null,
|
||||
workshopSection: null,
|
||||
classes: null,
|
||||
taskForce: null,
|
||||
teamName: null,
|
||||
groupLeader: null,
|
||||
personnelOperationDetails: null
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
objId: [
|
||||
{ required: true, message: '主键标识不能为空', trigger: 'blur' }
|
||||
],
|
||||
seqNo: [
|
||||
{ required: true, message: '计划流水号不能为空', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
columns: [
|
||||
{ key: 0, label: `主键标识`, visible: false },
|
||||
{ key: 1, label: `硬件`, visible: true },
|
||||
{ key: 2, label: `软件`, visible: true },
|
||||
{ key: 3, label: `阶段文字`, visible: true },
|
||||
{ key: 4, label: `计划流水号`, visible: true },
|
||||
{ key: 5, label: `计划开始时间`, visible: true },
|
||||
{ key: 6, label: `计划结束时间`, visible: true },
|
||||
{ key: 7, label: `关联资源`, visible: true },
|
||||
{ key: 8, label: `工作效率`, visible: true },
|
||||
{ key: 9, label: `设备码`, visible: true },
|
||||
{ key: 10, label: `准备时间`, visible: true },
|
||||
{ key: 11, label: `收尾时间`, visible: true },
|
||||
{ key: 12, label: `出布最小速度`, visible: true },
|
||||
{ key: 13, label: `出布最大速度`, visible: true },
|
||||
{ key: 14, label: `成型最小速度`, visible: true },
|
||||
{ key: 15, label: `成型最大速度`, visible: true },
|
||||
{ key: 16, label: `包胶最小速度`, visible: true },
|
||||
{ key: 17, label: `包胶最大速度`, visible: true },
|
||||
{ key: 18, label: `每锅硫化米数`, visible: true },
|
||||
{ key: 19, label: `硫化机类型`, visible: true },
|
||||
{ key: 20, label: `硫化板层数`, visible: true },
|
||||
{ key: 21, label: `资源名称`, visible: true },
|
||||
{ key: 22, label: `工艺阶段`, visible: true },
|
||||
{ key: 23, label: `前置工艺`, visible: true },
|
||||
{ key: 24, label: `发布订单`, visible: true },
|
||||
{ key: 25, label: `任务编号`, visible: true },
|
||||
{ key: 26, label: `输送带长度规格`, visible: true },
|
||||
{ key: 27, label: `上胶厚度`, visible: true },
|
||||
{ key: 28, label: `上缓冲胶厚度`, visible: true },
|
||||
{ key: 29, label: `下胶厚度`, visible: true },
|
||||
{ key: 30, label: `下缓冲胶厚度`, visible: true },
|
||||
{ key: 31, label: `输送带宽度`, visible: true },
|
||||
{ key: 32, label: `客户要求输送带长度`, visible: true },
|
||||
{ key: 33, label: `压延生产米数`, visible: true },
|
||||
{ key: 34, label: `需要硫化米数`, visible: true },
|
||||
{ key: 35, label: `推荐硫化时间`, visible: true },
|
||||
{ key: 36, label: `出大布米数`, visible: true },
|
||||
{ key: 37, label: `出小布米数`, visible: true },
|
||||
{ key: 38, label: `包胶米数`, visible: true },
|
||||
{ key: 39, label: `工作速度`, visible: true },
|
||||
{ key: 40, label: `需要工时`, visible: true },
|
||||
{ key: 41, label: `出布面积`, visible: true },
|
||||
{ key: 42, label: `包胶面积`, visible: true },
|
||||
{ key: 43, label: `硫化面积`, visible: true },
|
||||
{ key: 44, label: `输送带总面积`, visible: true },
|
||||
{ key: 45, label: `胶料工艺`, visible: true },
|
||||
{ key: 46, label: `上胶使用胶料`, visible: true },
|
||||
{ key: 47, label: `上胶系数`, visible: true },
|
||||
{ key: 48, label: `上胶标准用胶量`, visible: true },
|
||||
{ key: 49, label: `下胶使用胶料`, visible: true },
|
||||
{ key: 50, label: `下胶系数`, visible: true },
|
||||
{ key: 51, label: `下胶标准用胶量`, visible: true },
|
||||
{ key: 52, label: `缓冲/布胶使用胶料`, visible: true },
|
||||
{ key: 53, label: `缓冲胶系数`, visible: true },
|
||||
{ key: 54, label: `缓冲胶标准用胶量`, visible: true },
|
||||
{ key: 55, label: `大布布料规格`, visible: true },
|
||||
{ key: 56, label: `大布擦胶系数`, visible: true },
|
||||
{ key: 57, label: `胶布标准用胶量`, visible: true },
|
||||
{ key: 58, label: `中间胶使用胶料`, visible: true },
|
||||
{ key: 59, label: `中间胶系数`, visible: true },
|
||||
{ key: 60, label: `中间胶标准用胶量`, visible: true },
|
||||
{ key: 61, label: `设备使用限制`, visible: true },
|
||||
{ key: 62, label: `判断工段`, visible: true },
|
||||
{ key: 63, label: `班次`, visible: true },
|
||||
{ key: 64, label: `参加任务小组`, visible: true },
|
||||
{ key: 65, label: `班组名称`, visible: true },
|
||||
{ key: 66, label: `组长`, visible: true },
|
||||
{ key: 67, label: `人员活动详情`, visible: true },
|
||||
{ key: 68, label: `创建人`, visible: false },
|
||||
{ key: 69, label: `创建时间`, visible: false },
|
||||
{ key: 70, label: `更新人`, visible: false },
|
||||
{ key: 71, label: `更新时间`, visible: false }
|
||||
]
|
||||
}
|
||||
},
|
||||
created() {
|
||||
const planCode = this.$route.params && this.$route.params.planCode;
|
||||
if (planCode != null){
|
||||
this.queryParams.seqNo = planCode;
|
||||
}
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
/** 查询生产计划信息列表 */
|
||||
getList() {
|
||||
this.loading = true
|
||||
this.queryParams.params = {}
|
||||
if (null != this.daterangePlanStartTime && '' != this.daterangePlanStartTime) {
|
||||
this.queryParams.params['beginPlanStartTime'] = this.daterangePlanStartTime[0]
|
||||
this.queryParams.params['endPlanStartTime'] = this.daterangePlanStartTime[1]
|
||||
}
|
||||
if (null != this.daterangePlanEndTime && '' != this.daterangePlanEndTime) {
|
||||
this.queryParams.params['beginPlanEndTime'] = this.daterangePlanEndTime[0]
|
||||
this.queryParams.params['endPlanEndTime'] = this.daterangePlanEndTime[1]
|
||||
}
|
||||
listProdPlanErpInfo(this.queryParams).then(response => {
|
||||
this.prodPlanErpInfoList = response.rows
|
||||
this.total = response.total
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false
|
||||
this.reset()
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
objId: null,
|
||||
hardware: null,
|
||||
software: null,
|
||||
stageText: null,
|
||||
seqNo: null,
|
||||
planStartTime: null,
|
||||
planEndTime: null,
|
||||
associationResource: null,
|
||||
workingEfficiency: null,
|
||||
equipmentNo: null,
|
||||
preparationDuration: null,
|
||||
windUpDuration: null,
|
||||
clothMinimumSpeed: null,
|
||||
clothMaximumSpeed: null,
|
||||
formingMinimumSpeed: null,
|
||||
formingMaximumSpeed: null,
|
||||
glueMinimumSpeed: null,
|
||||
glueMaximumSpeed: null,
|
||||
sulfurizationLength: null,
|
||||
vulcanizingMachineType: null,
|
||||
vulcanizedBoardNumber: null,
|
||||
resourceName: null,
|
||||
processStage: null,
|
||||
preProcess: null,
|
||||
releaseOrder: null,
|
||||
taskCode: null,
|
||||
conveyorLengthSpecification: null,
|
||||
upGlueThickness: null,
|
||||
upBufferGlueThickness: null,
|
||||
belowGlueThickness: null,
|
||||
belowBufferGlueThickness: null,
|
||||
beltWidth: null,
|
||||
customerRequestConveyorLength: null,
|
||||
rollingProductionMeters: null,
|
||||
vulcanizationMeters: null,
|
||||
recommendVulcanizationTime: null,
|
||||
largeClothMeters: null,
|
||||
smallClothMeters: null,
|
||||
encapsulationMeters: null,
|
||||
workSpeed: null,
|
||||
workingHours: null,
|
||||
distributionArea: null,
|
||||
encapsulationArea: null,
|
||||
vulcanizationArea: null,
|
||||
conveyorTotalArea: null,
|
||||
glueProcess: null,
|
||||
upGlue: null,
|
||||
upGlueCoefficient: null,
|
||||
upGlueDosage: null,
|
||||
belowGlue: null,
|
||||
belowGlueCoefficient: null,
|
||||
belowGlueDosage: null,
|
||||
bufferGlue: null,
|
||||
bufferGlueCoefficient: null,
|
||||
bufferGlueDosage: null,
|
||||
largeClothSpecifications: null,
|
||||
largeClothFrictioningCoefficient: null,
|
||||
largeClothDosage: null,
|
||||
middleGlue: null,
|
||||
middleGlueCoefficient: null,
|
||||
middleGlueDosage: null,
|
||||
deviceUsageRestrictions: null,
|
||||
workshopSection: null,
|
||||
classes: null,
|
||||
taskForce: null,
|
||||
teamName: null,
|
||||
groupLeader: null,
|
||||
personnelOperationDetails: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null
|
||||
}
|
||||
this.resetForm('form')
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.daterangePlanStartTime = []
|
||||
this.daterangePlanEndTime = []
|
||||
this.resetForm('queryForm')
|
||||
this.handleQuery()
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.objId)
|
||||
this.single = selection.length !== 1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset()
|
||||
this.open = true
|
||||
this.title = '添加生产计划信息'
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset()
|
||||
const objId = row.objId || this.ids
|
||||
getProdPlanErpInfo(objId).then(response => {
|
||||
this.form = response.data
|
||||
this.open = true
|
||||
this.title = '修改生产计划信息'
|
||||
})
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs['form'].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.objId != null) {
|
||||
updateProdPlanErpInfo(this.form).then(response => {
|
||||
this.$modal.msgSuccess('修改成功')
|
||||
this.open = false
|
||||
this.getList()
|
||||
})
|
||||
} else {
|
||||
addProdPlanErpInfo(this.form).then(response => {
|
||||
this.$modal.msgSuccess('新增成功')
|
||||
this.open = false
|
||||
this.getList()
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const objIds = row.objId || this.ids
|
||||
this.$modal.confirm('是否确认删除生产计划信息编号为"' + objIds + '"的数据项?').then(function() {
|
||||
return delProdPlanErpInfo(objIds)
|
||||
}).then(() => {
|
||||
this.getList()
|
||||
this.$modal.msgSuccess('删除成功')
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download('mes/prod/prodPlanErpInfo/export', {
|
||||
...this.queryParams
|
||||
}, `prodPlanErpInfo_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@ -0,0 +1,405 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
|
||||
<el-form-item label="员工ID" prop="staffId">
|
||||
<el-input
|
||||
v-model="queryParams.staffId"
|
||||
placeholder="请输入员工ID"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="班组编号" prop="teamCode">
|
||||
<el-input
|
||||
v-model="queryParams.teamCode"
|
||||
placeholder="请输入班组编号"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="上班打卡时间">
|
||||
<el-date-picker
|
||||
v-model="daterangeStartWorkTime"
|
||||
style="width: 340px"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
type="datetimerange"
|
||||
range-separator="-"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
></el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="下班打卡时间">-->
|
||||
<!-- <el-date-picker-->
|
||||
<!-- v-model="daterangeEndWorkTime"-->
|
||||
<!-- style="width: 340px"-->
|
||||
<!-- value-format="yyyy-MM-dd HH:mm:ss"-->
|
||||
<!-- type="datetimerange"-->
|
||||
<!-- range-separator="-"-->
|
||||
<!-- start-placeholder="开始时间"-->
|
||||
<!-- end-placeholder="结束时间"-->
|
||||
<!-- ></el-date-picker>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['mes/record:recordStaffCommute:add']"
|
||||
>新增
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['mes/record:recordStaffCommute:edit']"
|
||||
>修改
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['mes/record:recordStaffCommute:remove']"
|
||||
>删除
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['mes/record:recordStaffCommute:export']"
|
||||
>导出
|
||||
</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="recordStaffCommuteList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center"/>
|
||||
<el-table-column label="主键标识" align="center" prop="objId" v-if="columns[0].visible"/>
|
||||
<el-table-column label="员工ID" align="center" prop="staffId" v-if="columns[1].visible"/>
|
||||
<el-table-column label="员工名称" align="center" prop="staffName" v-if="columns[14].visible"/>
|
||||
<el-table-column label="班组编号" align="center" prop="teamCode" v-if="columns[2].visible"/>
|
||||
<el-table-column label="班组名称" align="center" prop="teamName" v-if="columns[15].visible"/>
|
||||
<el-table-column label="班次" align="center" prop="classes" v-if="columns[3].visible">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.classes" :value="scope.row.classes"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="上班打卡时间" align="center" prop="startWorkTime" width="180" v-if="columns[4].visible">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.startWorkTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="下班打卡时间" align="center" prop="endWorkTime" width="180" v-if="columns[5].visible">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.endWorkTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="在班时长率" align="center" prop="clockingRatio" v-if="columns[6].visible"/>
|
||||
<el-table-column label="备注" align="center" prop="remark" v-if="columns[7].visible"/>
|
||||
<el-table-column label="是否标识" align="center" prop="isFlag" v-if="columns[8].visible"/>
|
||||
<el-table-column label="机台编号" align="center" prop="machineCode" v-if="columns[13].visible"/>
|
||||
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <el-button-->
|
||||
<!-- size="mini"-->
|
||||
<!-- type="text"-->
|
||||
<!-- icon="el-icon-edit"-->
|
||||
<!-- @click="handleUpdate(scope.row)"-->
|
||||
<!-- v-hasPermi="['mes/record:recordStaffCommute:edit']"-->
|
||||
<!-- >修改-->
|
||||
<!-- </el-button>-->
|
||||
<!-- <el-button-->
|
||||
<!-- size="mini"-->
|
||||
<!-- type="text"-->
|
||||
<!-- icon="el-icon-delete"-->
|
||||
<!-- @click="handleDelete(scope.row)"-->
|
||||
<!-- v-hasPermi="['mes/record:recordStaffCommute:remove']"-->
|
||||
<!-- >删除-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改员工上下班记录对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form-item label="员工ID" prop="staffId">
|
||||
<el-input v-model="form.staffId" placeholder="请输入员工ID"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="班组编号" prop="teamCode">
|
||||
<el-input v-model="form.teamCode" placeholder="请输入班组编号"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="班次" prop="classes">
|
||||
<el-input v-model="form.classes" placeholder="请输入班次"/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="上班打卡时间" prop="startWorkTime">-->
|
||||
<!-- <el-date-picker clearable-->
|
||||
<!-- v-model="form.startWorkTime"-->
|
||||
<!-- type="date"-->
|
||||
<!-- value-format="yyyy-MM-dd"-->
|
||||
<!-- placeholder="请选择上班打卡时间"-->
|
||||
<!-- >-->
|
||||
<!-- </el-date-picker>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="下班打卡时间" prop="endWorkTime">-->
|
||||
<!-- <el-date-picker clearable-->
|
||||
<!-- v-model="form.endWorkTime"-->
|
||||
<!-- type="date"-->
|
||||
<!-- value-format="yyyy-MM-dd"-->
|
||||
<!-- placeholder="请选择下班打卡时间"-->
|
||||
<!-- >-->
|
||||
<!-- </el-date-picker>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="在班时长率" prop="clockingRatio">
|
||||
<el-input v-model="form.clockingRatio" placeholder="请输入在班时长率"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否标识" prop="isFlag">
|
||||
<el-input v-model="form.isFlag" placeholder="请输入是否标识"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="机台编号" prop="machineCode">
|
||||
<el-input v-model="form.machineCode" placeholder="请输入机台编号"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
listRecordStaffCommute,
|
||||
getRecordStaffCommute,
|
||||
delRecordStaffCommute,
|
||||
addRecordStaffCommute,
|
||||
updateRecordStaffCommute
|
||||
} from '@/api/mes/record/recordStaffCommute'
|
||||
|
||||
export default {
|
||||
name: 'RecordStaffCommute',
|
||||
dicts: ['classes', 'is_flag'],
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 员工上下班记录表格数据
|
||||
recordStaffCommuteList: [],
|
||||
// 弹出层标题
|
||||
title: '',
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 机台编号时间范围
|
||||
daterangeStartWorkTime: [],
|
||||
// 机台编号时间范围
|
||||
daterangeEndWorkTime: [],
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
staffId: null,
|
||||
teamCode: null,
|
||||
classes: null,
|
||||
startWorkTime: null,
|
||||
endWorkTime: null,
|
||||
clockingRatio: null,
|
||||
isFlag: null,
|
||||
machineCode: null
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
objId: [
|
||||
{ required: true, message: '主键标识不能为空', trigger: 'blur' }
|
||||
],
|
||||
staffId: [
|
||||
{ required: true, message: '员工ID不能为空', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
columns: [
|
||||
{ key: 0, label: `主键标识`, visible: false },
|
||||
{ key: 1, label: `员工ID`, visible: true },
|
||||
{ key: 2, label: `班组编号`, visible: true },
|
||||
{ key: 3, label: `班次`, visible: true },
|
||||
{ key: 4, label: `上班打卡时间`, visible: true },
|
||||
{ key: 5, label: `下班打卡时间`, visible: true },
|
||||
{ key: 6, label: `在班时长率`, visible: true },
|
||||
{ key: 7, label: `备注`, visible: false },
|
||||
{ key: 8, label: `是否标识`, visible: false },
|
||||
{ key: 9, label: `创建人`, visible: false },
|
||||
{ key: 10, label: `创建时间`, visible: false },
|
||||
{ key: 11, label: `更新人`, visible: false },
|
||||
{ key: 12, label: `更新时间`, visible: false },
|
||||
{ key: 13, label: `机台编号`, visible: false },
|
||||
{ key: 14, label: `员工名称`, visible: true },
|
||||
{ key: 15, label: `班组名称`, visible: true },
|
||||
]
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
/** 查询员工上下班记录列表 */
|
||||
getList() {
|
||||
this.loading = true
|
||||
this.queryParams.params = {}
|
||||
if (null != this.daterangeStartWorkTime && '' != this.daterangeStartWorkTime) {
|
||||
this.queryParams.params['beginStartWorkTime'] = this.daterangeStartWorkTime[0]
|
||||
this.queryParams.params['endStartWorkTime'] = this.daterangeStartWorkTime[1]
|
||||
}
|
||||
// if (null != this.daterangeEndWorkTime && '' != this.daterangeEndWorkTime) {
|
||||
// this.queryParams.params['beginEndWorkTime'] = this.daterangeEndWorkTime[0]
|
||||
// this.queryParams.params['endEndWorkTime'] = this.daterangeEndWorkTime[1]
|
||||
// }
|
||||
listRecordStaffCommute(this.queryParams).then(response => {
|
||||
this.recordStaffCommuteList = response.rows
|
||||
this.total = response.total
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false
|
||||
this.reset()
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
objId: null,
|
||||
staffId: null,
|
||||
teamCode: null,
|
||||
classes: null,
|
||||
startWorkTime: null,
|
||||
endWorkTime: null,
|
||||
clockingRatio: null,
|
||||
remark: null,
|
||||
isFlag: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
machineCode: null
|
||||
}
|
||||
this.resetForm('form')
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.daterangeStartWorkTime = []
|
||||
this.daterangeEndWorkTime = []
|
||||
this.resetForm('queryForm')
|
||||
this.handleQuery()
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.objId)
|
||||
this.single = selection.length !== 1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset()
|
||||
this.open = true
|
||||
this.title = '添加员工上下班记录'
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset()
|
||||
const objId = row.objId || this.ids
|
||||
getRecordStaffCommute(objId).then(response => {
|
||||
this.form = response.data
|
||||
this.open = true
|
||||
this.title = '修改员工上下班记录'
|
||||
})
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs['form'].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.objId != null) {
|
||||
updateRecordStaffCommute(this.form).then(response => {
|
||||
this.$modal.msgSuccess('修改成功')
|
||||
this.open = false
|
||||
this.getList()
|
||||
})
|
||||
} else {
|
||||
addRecordStaffCommute(this.form).then(response => {
|
||||
this.$modal.msgSuccess('新增成功')
|
||||
this.open = false
|
||||
this.getList()
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const objIds = row.objId || this.ids
|
||||
this.$modal.confirm('是否确认删除员工上下班记录编号为"' + objIds + '"的数据项?').then(function() {
|
||||
return delRecordStaffCommute(objIds)
|
||||
}).then(() => {
|
||||
this.getList()
|
||||
this.$modal.msgSuccess('删除成功')
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download('mes/record/recordStaffCommute/export', {
|
||||
...this.queryParams
|
||||
}, `员工上下班记录_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@ -0,0 +1,441 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
|
||||
<el-form-item label="任务编号" prop="taskCode">
|
||||
<el-input
|
||||
v-model="queryParams.taskCode"
|
||||
placeholder="请输入任务编号"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证" prop="idCard">
|
||||
<el-input
|
||||
v-model="queryParams.idCard"
|
||||
placeholder="请输入身份证"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="班组名称" prop="groupId">
|
||||
<el-select v-model="queryParams.groupId" placeholder="请选择班组名称" clearable>
|
||||
<el-option
|
||||
v-for="item in teamMembersList"
|
||||
:key="item.teamCode"
|
||||
:label="item.teamName"
|
||||
:value="item.teamCode"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="事件日期">
|
||||
<el-date-picker
|
||||
v-model="daterangeEventDate"
|
||||
style="width: 240px"
|
||||
value-format="yyyy-MM-dd"
|
||||
type="daterange"
|
||||
range-separator="-"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button-->
|
||||
<!-- type="primary"-->
|
||||
<!-- plain-->
|
||||
<!-- icon="el-icon-plus"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- @click="handleAdd"-->
|
||||
<!-- v-hasPermi="['mes/record:recordStaffSalary:add']"-->
|
||||
<!-- >新增-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button-->
|
||||
<!-- type="success"-->
|
||||
<!-- plain-->
|
||||
<!-- icon="el-icon-edit"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- :disabled="single"-->
|
||||
<!-- @click="handleUpdate"-->
|
||||
<!-- v-hasPermi="['mes/record:recordStaffSalary:edit']"-->
|
||||
<!-- >修改-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button-->
|
||||
<!-- type="danger"-->
|
||||
<!-- plain-->
|
||||
<!-- icon="el-icon-delete"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- :disabled="multiple"-->
|
||||
<!-- @click="handleDelete"-->
|
||||
<!-- v-hasPermi="['mes/record:recordStaffSalary:remove']"-->
|
||||
<!-- >删除-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['mes/record:recordStaffSalary:export']"
|
||||
>导出
|
||||
</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="recordStaffSalaryList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center"/>
|
||||
<el-table-column label="主键标识" align="center" prop="objId" v-if="columns[0].visible"/>
|
||||
<el-table-column label="员工名称" align="center" prop="staffName" v-if="columns[16].visible"/>
|
||||
<el-table-column label="身份证" align="center" prop="idCard" v-if="columns[1].visible" width="200"/>
|
||||
<el-table-column label="班组编号" align="center" prop="groupId" v-if="columns[2].visible" width="100"/>
|
||||
<el-table-column label="班组名称" align="center" prop="teamName" v-if="columns[17].visible" width="120"/>
|
||||
<el-table-column label="事件日期" align="center" prop="eventDate" width="100" v-if="columns[3].visible">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.eventDate, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="薪资类别" align="center" prop="salaryCategory" v-if="columns[4].visible"/>
|
||||
<el-table-column label="收入大类" align="center" prop="revenueClass" v-if="columns[5].visible" width="120"/>
|
||||
<el-table-column label="收入金额" align="center" prop="revenueAmount" v-if="columns[6].visible"/>
|
||||
<el-table-column label="收入理由" align="center" prop="revenueReason" v-if="columns[7].visible"/>
|
||||
<el-table-column label="扣罚大类" align="center" prop="fineClass" v-if="columns[8].visible"/>
|
||||
<el-table-column label="扣罚金额" align="center" prop="fineAmount" v-if="columns[9].visible"/>
|
||||
<el-table-column label="扣罚理由" align="center" prop="fineReason" v-if="columns[10].visible"/>
|
||||
<el-table-column label="任务编号" align="center" prop="taskCode" v-if="columns[12].visible" width="120"/>
|
||||
<el-table-column label="工资系数" align="center" prop="salaryCoefficient" v-if="columns[13].visible"/>
|
||||
<el-table-column label="开始日期" align="center" prop="beginDate" width="100" v-if="columns[14].visible">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.beginDate, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="结束日期" align="center" prop="endDate" width="100" v-if="columns[15].visible">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.endDate, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <el-button-->
|
||||
<!-- size="mini"-->
|
||||
<!-- type="text"-->
|
||||
<!-- icon="el-icon-edit"-->
|
||||
<!-- @click="handleUpdate(scope.row)"-->
|
||||
<!-- v-hasPermi="['mes/record:recordStaffSalary:edit']"-->
|
||||
<!-- >修改-->
|
||||
<!-- </el-button>-->
|
||||
<!-- <el-button-->
|
||||
<!-- size="mini"-->
|
||||
<!-- type="text"-->
|
||||
<!-- icon="el-icon-delete"-->
|
||||
<!-- @click="handleDelete(scope.row)"-->
|
||||
<!-- v-hasPermi="['mes/record:recordStaffSalary:remove']"-->
|
||||
<!-- >删除-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改员工工资记录对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form-item label="身份证" prop="idCard">
|
||||
<el-input v-model="form.idCard" placeholder="请输入身份证"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="班组编号" prop="groupId">
|
||||
<el-input v-model="form.groupId" placeholder="请输入班组编号"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="事件日期" prop="eventDate">
|
||||
<el-date-picker clearable
|
||||
v-model="form.eventDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择事件日期"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="薪资类别" prop="salaryCategory">
|
||||
<el-input v-model="form.salaryCategory" placeholder="请输入薪资类别"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="收入大类" prop="revenueClass">
|
||||
<el-input v-model="form.revenueClass" placeholder="请输入收入大类"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="收入金额" prop="revenueAmount">
|
||||
<el-input v-model="form.revenueAmount" placeholder="请输入收入金额"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="收入理由" prop="revenueReason">
|
||||
<el-input v-model="form.revenueReason" placeholder="请输入收入理由"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="扣罚大类" prop="fineClass">
|
||||
<el-input v-model="form.fineClass" placeholder="请输入扣罚大类"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="扣罚金额" prop="fineAmount">
|
||||
<el-input v-model="form.fineAmount" placeholder="请输入扣罚金额"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="扣罚理由" prop="fineReason">
|
||||
<el-input v-model="form.fineReason" placeholder="请输入扣罚理由"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务编号" prop="taskCode">
|
||||
<el-input v-model="form.taskCode" placeholder="请输入任务编号"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="工资系数" prop="salaryCoefficient">
|
||||
<el-input v-model="form.salaryCoefficient" placeholder="请输入工资系数"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="开始日期" prop="beginDate">
|
||||
<el-date-picker clearable
|
||||
v-model="form.beginDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择开始日期"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="结束日期" prop="endDate">
|
||||
<el-date-picker clearable
|
||||
v-model="form.endDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择结束日期"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
listRecordStaffSalary,
|
||||
getRecordStaffSalary,
|
||||
delRecordStaffSalary,
|
||||
addRecordStaffSalary,
|
||||
updateRecordStaffSalary
|
||||
} from '@/api/mes/record/recordStaffSalary'
|
||||
import { getTeamMembers } from '@/api/mes/base/baseTeamMembers'
|
||||
import { parseTime } from '@/utils/ruoyi'
|
||||
|
||||
export default {
|
||||
name: 'RecordStaffSalary',
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 员工工资记录表格数据
|
||||
recordStaffSalaryList: [],
|
||||
// 弹出层标题
|
||||
title: '',
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 结束日期时间范围
|
||||
daterangeEventDate: [],
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
idCard: null,
|
||||
groupId: null,
|
||||
eventDate: null,
|
||||
salaryCategory: null,
|
||||
revenueClass: null,
|
||||
revenueAmount: null,
|
||||
revenueReason: null,
|
||||
fineClass: null,
|
||||
fineAmount: null,
|
||||
fineReason: null,
|
||||
taskCode: null,
|
||||
salaryCoefficient: null,
|
||||
beginDate: null,
|
||||
endDate: null
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
objId: [
|
||||
{ required: true, message: '主键标识不能为空', trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
columns: [
|
||||
{ key: 0, label: `主键标识`, visible: false },
|
||||
{ key: 1, label: `身份证`, visible: true },
|
||||
{ key: 2, label: `班组编号`, visible: true },
|
||||
{ key: 3, label: `事件日期`, visible: true },
|
||||
{ key: 4, label: `薪资类别`, visible: true },
|
||||
{ key: 5, label: `收入大类`, visible: true },
|
||||
{ key: 6, label: `收入金额`, visible: true },
|
||||
{ key: 7, label: `收入理由`, visible: true },
|
||||
{ key: 8, label: `扣罚大类`, visible: true },
|
||||
{ key: 9, label: `扣罚金额`, visible: true },
|
||||
{ key: 10, label: `扣罚理由`, visible: true },
|
||||
{ key: 11, label: `创建时间`, visible: true },
|
||||
{ key: 12, label: `任务编号`, visible: true },
|
||||
{ key: 13, label: `工资系数`, visible: true },
|
||||
{ key: 14, label: `开始日期`, visible: true },
|
||||
{ key: 15, label: `结束日期`, visible: true },
|
||||
{ key: 16, label: `员工名称`, visible: true },
|
||||
{ key: 17, label: `班组名称`, visible: true }
|
||||
],
|
||||
// 班组选项
|
||||
teamMembersList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
const currentDate = new Date();
|
||||
const firstDay = parseTime(new Date(currentDate.getFullYear(), currentDate.getMonth(), 1), '{y}-{m}-{d}')
|
||||
const lastDay = parseTime(new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0), '{y}-{m}-{d}')
|
||||
this.daterangeEventDate[0] = firstDay
|
||||
this.daterangeEventDate[1] = lastDay
|
||||
getTeamMembers().then(response => {
|
||||
this.teamMembersList = response.data
|
||||
})
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
/** 查询员工工资记录列表 */
|
||||
getList() {
|
||||
this.loading = true
|
||||
this.queryParams.params = {}
|
||||
if (null != this.daterangeEventDate && '' != this.daterangeEventDate) {
|
||||
this.queryParams.params['beginEventDate'] = this.daterangeEventDate[0]
|
||||
this.queryParams.params['endEventDate'] = this.daterangeEventDate[1]
|
||||
}
|
||||
listRecordStaffSalary(this.queryParams).then(response => {
|
||||
this.recordStaffSalaryList = response.rows
|
||||
this.total = response.total
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false
|
||||
this.reset()
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
objId: null,
|
||||
idCard: null,
|
||||
groupId: null,
|
||||
eventDate: null,
|
||||
salaryCategory: null,
|
||||
revenueClass: null,
|
||||
revenueAmount: null,
|
||||
revenueReason: null,
|
||||
fineClass: null,
|
||||
fineAmount: null,
|
||||
fineReason: null,
|
||||
createTime: null,
|
||||
taskCode: null,
|
||||
salaryCoefficient: null,
|
||||
beginDate: null,
|
||||
endDate: null
|
||||
}
|
||||
this.resetForm('form')
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.daterangeEventDate = []
|
||||
this.resetForm('queryForm')
|
||||
this.handleQuery()
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.objId)
|
||||
this.single = selection.length !== 1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset()
|
||||
this.open = true
|
||||
this.title = '添加员工工资记录'
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset()
|
||||
const objId = row.objId || this.ids
|
||||
getRecordStaffSalary(objId).then(response => {
|
||||
this.form = response.data
|
||||
this.open = true
|
||||
this.title = '修改员工工资记录'
|
||||
})
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs['form'].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.objId != null) {
|
||||
updateRecordStaffSalary(this.form).then(response => {
|
||||
this.$modal.msgSuccess('修改成功')
|
||||
this.open = false
|
||||
this.getList()
|
||||
})
|
||||
} else {
|
||||
addRecordStaffSalary(this.form).then(response => {
|
||||
this.$modal.msgSuccess('新增成功')
|
||||
this.open = false
|
||||
this.getList()
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const objIds = row.objId || this.ids
|
||||
this.$modal.confirm('是否确认删除员工工资记录编号为"' + objIds + '"的数据项?').then(function() {
|
||||
return delRecordStaffSalary(objIds)
|
||||
}).then(() => {
|
||||
this.getList()
|
||||
this.$modal.msgSuccess('删除成功')
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download('mes/record/recordStaffSalary/export', {
|
||||
...this.queryParams
|
||||
}, `recordStaffSalary_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
Loading…
Reference in New Issue