|
|
@@ -17,65 +17,36 @@
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
|
|
|
- <!-- <el-row :gutter="10" class="mb8">-->
|
|
|
- <!-- <el-col :span="1.5">-->
|
|
|
- <!-- <el-button-->
|
|
|
- <!-- type="primary"-->
|
|
|
- <!-- plain-->
|
|
|
- <!-- icon="Plus"-->
|
|
|
- <!-- @click="handleAdd"-->
|
|
|
- <!-- v-hasPermi="['calc:dayYhj:add']"-->
|
|
|
- <!-- >新增</el-button>-->
|
|
|
- <!-- </el-col>-->
|
|
|
- <!-- <el-col :span="1.5">-->
|
|
|
- <!-- <el-button-->
|
|
|
- <!-- type="success"-->
|
|
|
- <!-- plain-->
|
|
|
- <!-- icon="Edit"-->
|
|
|
- <!-- :disabled="single"-->
|
|
|
- <!-- @click="handleUpdate"-->
|
|
|
- <!-- v-hasPermi="['calc:dayYhj:edit']"-->
|
|
|
- <!-- >修改</el-button>-->
|
|
|
- <!-- </el-col>-->
|
|
|
- <!-- <el-col :span="1.5">-->
|
|
|
- <!-- <el-button-->
|
|
|
- <!-- type="danger"-->
|
|
|
- <!-- plain-->
|
|
|
- <!-- icon="Delete"-->
|
|
|
- <!-- :disabled="multiple"-->
|
|
|
- <!-- @click="handleDelete"-->
|
|
|
- <!-- v-hasPermi="['calc:dayYhj:remove']"-->
|
|
|
- <!-- >删除</el-button>-->
|
|
|
- <!-- </el-col>-->
|
|
|
- <!-- <el-col :span="1.5">-->
|
|
|
- <!-- <el-button-->
|
|
|
- <!-- type="warning"-->
|
|
|
- <!-- plain-->
|
|
|
- <!-- icon="Download"-->
|
|
|
- <!-- @click="handleExport"-->
|
|
|
- <!-- v-hasPermi="['calc:dayYhj:export']"-->
|
|
|
- <!-- >导出</el-button>-->
|
|
|
- <!-- </el-col>-->
|
|
|
- <!-- <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>-->
|
|
|
- <!-- </el-row>-->
|
|
|
-
|
|
|
<el-table v-loading="loading" :data="dayYhjList" show-summary :summary-method="getSummaries" @selection-change="handleSelectionChange">
|
|
|
-<!-- <el-table-column type="selection" width="55" align="center"/>-->
|
|
|
-<!-- <!– <el-table-column label="ID" align="center" prop="id" />–>-->
|
|
|
-<!-- <el-table-column label="时间" align="center" prop="time" width="180">-->
|
|
|
-<!-- <template #default="scope">-->
|
|
|
-<!-- <span>{{ parseTime(scope.row.time, '{y}-{m}-{d}') }}</span>-->
|
|
|
-<!-- </template>-->
|
|
|
-<!-- </el-table-column>-->
|
|
|
<el-table-column label="产线编号" align="center" prop="deviceId"/>
|
|
|
- <el-table-column label="白柸投放米长(米)" align="center" prop="dayLength"/>
|
|
|
- <el-table-column label="白柸投放重量(吨)" align="center" prop="dayWeight"/>
|
|
|
- <el-table-column label="总米长(米)" align="center" prop="length"/>
|
|
|
+ <el-table-column label="白柸投放(米)" align="center" prop="dayLength"/>
|
|
|
+ <el-table-column label="白柸投放(吨)" align="center" prop="dayWeight"/>
|
|
|
+ <el-table-column label="总产量(米)" align="center" prop="length"/>
|
|
|
<el-table-column label="总重量(吨)" align="center" prop="weight"/>
|
|
|
- <el-table-column label="A班米长(米)" align="center" prop="lengthA"/>
|
|
|
+ <el-table-column label="A班产量(米)" align="center" prop="lengthA"/>
|
|
|
<el-table-column label="A班重量(吨)" align="center" prop="weightA"/>
|
|
|
- <el-table-column label="B班米长(米)" align="center" prop="lengthB"/>
|
|
|
+ <el-table-column label="B班产量(米)" align="center" prop="lengthB"/>
|
|
|
<el-table-column label="B班重量(吨)" align="center" prop="weightB"/>
|
|
|
+ <el-table-column label="开机时间" align="center">
|
|
|
+ <template #default="scope">
|
|
|
+ {{ formatSeconds(scope.row.openTime) }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="停机时间" align="center">
|
|
|
+ <template #default="scope">
|
|
|
+ {{ formatSeconds(scope.row.closeTime) }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="稼动率" align="center">
|
|
|
+ <template #default="scope">
|
|
|
+ {{ calculateAvailability(scope.row.openTime, scope.row.closeTime) }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="稼动率(自然时间)" align="center">
|
|
|
+ <template #default="scope">
|
|
|
+ {{ calculateNaturalTimeAvailability(scope.row.openTime) }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<!-- <el-table-column label="备注" align="center" prop="remark" />-->
|
|
|
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
|
|
|
<!-- <template #default="scope">-->
|
|
|
@@ -98,7 +69,7 @@
|
|
|
<el-form ref="dayYhjRef" :model="form" :rules="rules" label-width="80px">
|
|
|
<el-form-item label="时间" prop="time">
|
|
|
<el-date-picker clearable
|
|
|
- v-model="form.time"
|
|
|
+ v-model="queryParams.time"
|
|
|
type="date"
|
|
|
value-format="YYYY-MM-DD"
|
|
|
placeholder="请选择时间">
|
|
|
@@ -113,24 +84,30 @@
|
|
|
<el-form-item label="自然天统计重量" prop="dayWeight">
|
|
|
<el-input v-model="form.dayWeight" placeholder="请输入自然天统计重量"/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="总米长" prop="length">
|
|
|
- <el-input v-model="form.length" placeholder="请输入总米长"/>
|
|
|
+ <el-form-item label="总产量" prop="length">
|
|
|
+ <el-input v-model="form.length" placeholder="请输入总产量"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="总重量" prop="weight">
|
|
|
<el-input v-model="form.weight" placeholder="请输入总重量"/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="A班米长" prop="lengthA">
|
|
|
- <el-input v-model="form.lengthA" placeholder="请输入A班米长"/>
|
|
|
+ <el-form-item label="A班产量" prop="lengthA">
|
|
|
+ <el-input v-model="form.lengthA" placeholder="请输入A班产量"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="A班重量" prop="weightA">
|
|
|
<el-input v-model="form.weightA" placeholder="请输入A班重量"/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="B班米长" prop="lengthB">
|
|
|
- <el-input v-model="form.lengthB" placeholder="请输入B班米长"/>
|
|
|
+ <el-form-item label="B班产量" prop="lengthB">
|
|
|
+ <el-input v-model="form.lengthB" placeholder="请输入B班产量"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="B班重量" prop="weightB">
|
|
|
<el-input v-model="form.weightB" placeholder="请输入B班重量"/>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="开机时间(秒)" prop="openTime">
|
|
|
+ <el-input v-model="form.openTime" placeholder="请输入开机时间(秒)"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="停机时间(秒)" prop="closeTime">
|
|
|
+ <el-input v-model="form.closeTime" placeholder="请输入停机时间(秒)"/>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="备注" prop="remark">
|
|
|
<el-input v-model="form.remark" placeholder="请输入备注"/>
|
|
|
</el-form-item>
|
|
|
@@ -180,7 +157,7 @@ function navigateDay(offset) {
|
|
|
const currentDate = new Date(queryParams.value.time);
|
|
|
currentDate.setDate(currentDate.getDate() + offset);
|
|
|
queryParams.value.time = currentDate.toISOString().split('T')[0];
|
|
|
- handleQuery();
|
|
|
+ getList();
|
|
|
}
|
|
|
|
|
|
/** 查询印花机日统计数据列表 */
|
|
|
@@ -212,13 +189,12 @@ function getSummaries(param) {
|
|
|
sums[index] = '合计';
|
|
|
return;
|
|
|
}
|
|
|
- // if (index === 1) {
|
|
|
- // sums[index] = '合计';
|
|
|
- // return;
|
|
|
- // }if (index === 2) {
|
|
|
- // sums[index] = '';
|
|
|
- // return;
|
|
|
- // }
|
|
|
+ // 检查是否为稼动率列(没有prop属性的列)
|
|
|
+ if (!column.property) {
|
|
|
+ // 稼动率列没有数据属性,显示 "--"
|
|
|
+ sums[index] = '--';
|
|
|
+ return;
|
|
|
+ }
|
|
|
const values = data.map(item => Number(item[column.property]));
|
|
|
if (!values.every(value => isNaN(value))) {
|
|
|
sums[index] = values.reduce((prev, curr) => {
|
|
|
@@ -237,107 +213,52 @@ function getSummaries(param) {
|
|
|
return sums;
|
|
|
}
|
|
|
|
|
|
-// 取消按钮
|
|
|
-function cancel() {
|
|
|
- open.value = false;
|
|
|
- reset();
|
|
|
-}
|
|
|
+// 计算稼动率:开机时间 / (开机时间 + 停机时间)
|
|
|
+function calculateAvailability(openTime, closeTime) {
|
|
|
+ if (!openTime && !closeTime) {
|
|
|
+ return '0.00%';
|
|
|
+ }
|
|
|
|
|
|
-// 表单重置
|
|
|
-function reset() {
|
|
|
- form.value = {
|
|
|
- id: null,
|
|
|
- time: null,
|
|
|
- deviceId: null,
|
|
|
- dayLength: null,
|
|
|
- dayWeight: null,
|
|
|
- length: null,
|
|
|
- weight: null,
|
|
|
- lengthA: null,
|
|
|
- weightA: null,
|
|
|
- lengthB: null,
|
|
|
- weightB: null,
|
|
|
- remark: null
|
|
|
- };
|
|
|
- proxy.resetForm("dayYhjRef");
|
|
|
-}
|
|
|
+ const open = Number(openTime) || 0;
|
|
|
+ const close = Number(closeTime) || 0;
|
|
|
+ const total = open + close;
|
|
|
|
|
|
-/** 搜索按钮操作 */
|
|
|
-function handleQuery() {
|
|
|
- queryParams.value.pageNum = 1;
|
|
|
- getList();
|
|
|
-}
|
|
|
+ if (total === 0) {
|
|
|
+ return '0.00%';
|
|
|
+ }
|
|
|
|
|
|
-/** 重置按钮操作 */
|
|
|
-function resetQuery() {
|
|
|
- daterangeTime.value = [];
|
|
|
- proxy.resetForm("queryRef");
|
|
|
- handleQuery();
|
|
|
+ const rate = (open / total) * 100;
|
|
|
+ return rate.toFixed(2) + '%';
|
|
|
}
|
|
|
|
|
|
-// 多选框选中数据
|
|
|
-function handleSelectionChange(selection) {
|
|
|
- ids.value = selection.map(item => item.id);
|
|
|
- single.value = selection.length != 1;
|
|
|
- multiple.value = !selection.length;
|
|
|
-}
|
|
|
+// 将秒数转换为小时:分钟:秒格式
|
|
|
+function formatSeconds(seconds) {
|
|
|
+ if (!seconds) return '0秒';
|
|
|
|
|
|
-/** 新增按钮操作 */
|
|
|
-function handleAdd() {
|
|
|
- reset();
|
|
|
- open.value = true;
|
|
|
- title.value = "添加印花机日统计数据";
|
|
|
-}
|
|
|
+ const sec = parseInt(seconds);
|
|
|
+ const h = Math.floor(sec / 3600);
|
|
|
+ const m = Math.floor((sec % 3600) / 60);
|
|
|
+ const s = sec % 60;
|
|
|
|
|
|
-/** 修改按钮操作 */
|
|
|
-function handleUpdate(row) {
|
|
|
- reset();
|
|
|
- const _id = row.id || ids.value
|
|
|
- getDayYhj(_id).then(response => {
|
|
|
- form.value = response.data;
|
|
|
- open.value = true;
|
|
|
- title.value = "修改印花机日统计数据";
|
|
|
- });
|
|
|
-}
|
|
|
+ const timeParts = [];
|
|
|
+ if (h > 0) timeParts.push(`${h}时`);
|
|
|
+ if (m > 0) timeParts.push(`${m}分`);
|
|
|
+ if (s > 0) timeParts.push(`${s}秒`);
|
|
|
|
|
|
-/** 提交按钮 */
|
|
|
-function submitForm() {
|
|
|
- proxy.$refs["dayYhjRef"].validate(valid => {
|
|
|
- if (valid) {
|
|
|
- if (form.value.id != null) {
|
|
|
- updateDayYhj(form.value).then(response => {
|
|
|
- proxy.$modal.msgSuccess("修改成功");
|
|
|
- open.value = false;
|
|
|
- getList();
|
|
|
- });
|
|
|
- } else {
|
|
|
- addDayYhj(form.value).then(response => {
|
|
|
- proxy.$modal.msgSuccess("新增成功");
|
|
|
- open.value = false;
|
|
|
- getList();
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+ return timeParts.length > 0 ? timeParts.join('') : '0秒';
|
|
|
}
|
|
|
|
|
|
-/** 删除按钮操作 */
|
|
|
-function handleDelete(row) {
|
|
|
- const _ids = row.id || ids.value;
|
|
|
- proxy.$modal.confirm('是否确认删除印花机日统计数据编号为"' + _ids + '"的数据项?').then(function () {
|
|
|
- return delDayYhj(_ids);
|
|
|
- }).then(() => {
|
|
|
- getList();
|
|
|
- proxy.$modal.msgSuccess("删除成功");
|
|
|
- }).catch(() => {
|
|
|
- });
|
|
|
-}
|
|
|
+// 计算基于自然时间的稼动率:开机时间 / 24小时(86400秒)
|
|
|
+function calculateNaturalTimeAvailability(openTime) {
|
|
|
+ if (!openTime) {
|
|
|
+ return '0.00%';
|
|
|
+ }
|
|
|
+
|
|
|
+ const open = Number(openTime) || 0;
|
|
|
+ const total = 24 * 60 * 60; // 24小时的秒数
|
|
|
|
|
|
-/** 导出按钮操作 */
|
|
|
-function handleExport() {
|
|
|
- proxy.download('calc/dayYhj/export', {
|
|
|
- ...queryParams.value
|
|
|
- }, `dayYhj_${new Date().getTime()}.xlsx`)
|
|
|
+ const rate = (open / total) * 100;
|
|
|
+ return rate.toFixed(2) + '%';
|
|
|
}
|
|
|
|
|
|
getList();
|