You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

254 lines
7.0 KiB
Vue

<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="productDateStr" width="100px">
<el-date-picker
v-model="queryParams.productDateStr"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择生产日期">
</el-date-picker>
</el-form-item>
<el-form-item label="车间" prop="carCode">
<el-input
v-model="queryParams.carCode"
placeholder="请输入车间名称"
clearable
/>
</el-form-item>
<el-form-item label="SAP产线编码" prop="lineCode">
<el-input
v-model="queryParams.lineCode"
placeholder="请输入SAP产线编码"
clearable
/>
</el-form-item>
<el-form-item label="产品名称" prop="productName">
<el-input
v-model="queryParams.productName"
placeholder="请输入产品名称"
clearable
/>
</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-button
type="primary"
plain
icon="el-icon-user-solid"
size="mini"
@click="handleAdd"
v-hasPermi="['mes:pro:assistTable:manmgr']"
>辅助人员管理</el-button>
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['mes:pro:assistTable:export']"
>导出</el-button>
</el-form-item>
</el-form>
<!--
<el-row :gutter="10" class="mb8">
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>-->
<el-table v-loading="loading" :data="assistHourList" height="500px">
<el-table-column type="index" width="50" align="center" :index="indexMethod" label="序号" fixed/>
<el-table-column label="日期" align="center" prop="productDate" width="100px" fixed>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.productDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="工厂" align="center" prop="factoryCode" fixed/>
<el-table-column label="车间" align="center" prop="carCode" width="100px" fixed/>
<el-table-column label="SAP产线编码" align="center" prop="lineCode" fixed/>
<el-table-column label="产品名称" align="center" prop="productName" width="230px" fixed/>
<el-table-column label="产品工时" align="center" prop="productHour" fixed/>
<el-table-column label="工时占比" align="center" prop="hourRatio" fixed/>
<el-table-column label="辅助工时合计" align="center" prop="assistHourSum" />
<el-table-column label="班长" align="center">
<el-table-column label="用人" align="center" prop="monitorQty" />
<el-table-column label="工时" align="center" prop="monitorHour" />
</el-table-column>
<el-table-column label="组长" align="center">
<el-table-column label="用人" align="center" prop="groupleaderQty" />
<el-table-column label="工时" align="center" prop="groupLeaderHour" />
</el-table-column>
<!--
<el-table-column label="物料员" align="center">
<el-table-column label="用人" align="center" prop="materialQty" />
<el-table-column label="工时" align="center" prop="materialHour" />
</el-table-column>
-->
<el-table-column label="药管员" align="center">
<el-table-column label="用人" align="center" prop="pillMgrQty" />
<el-table-column label="工时" align="center" prop="pillMgrHour" />
</el-table-column>
<el-table-column label="配药员" align="center">
<el-table-column label="用人" align="center" prop="pillDisQty" />
<el-table-column label="工时" align="center" prop="pillDisHour" />
</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="辅助人员维护"
:visible.sync="openAssist"
width="1160px"
append-to-body
>
<Assistqty></Assistqty>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listAssistHour} from "@/api/mes/report";
import Assistqty from "./assistqty.vue";
export default {
name: "ProAssistTable",
components: { Assistqty },
data() {
return {
// 遮罩层
loading: false,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 工艺附件管理表格数据
assistHourList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
productDateStr:null,
pageNum: 1,
pageSize: 10,
fileName: null,
fileAddress: null,
sourceId: null,
attr1: null,
attr2: null,
attr3: null,
attr4: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
},
openAssist: false,
};
},
created() {
this.getDate();
},
methods: {
/**获取默认查询时间段**/
getDate() {
let start = this.Fungetdate (0);
this.queryParams.productDateStr = start;
this.getList();
},
Fungetdate (num) {
var dd = new Date();
dd.setDate(dd.getDate() + num);
var y = dd.getFullYear();
var m = dd.getMonth() + 1;//获取当前月份的日期
var d = dd.getDate();
return y + "-" + m + "-" + d;
},
// 生成表头序号
indexMethod(index) {
return index + 1;
},
getList() {
this.loading = true;
listAssistHour(this.queryParams).then(response => {
this.assistHourList = response;
//this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.openAssist = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
fileId: null,
fileName: null,
fileAddress: null,
sourceId: null,
remark: null,
attr1: null,
attr2: null,
attr3: null,
attr4: 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.fileId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.openAssist = true;
},
/** 导出按钮操作 */
handleExport() {
this.download('mes/reportWorks/assistqty/listAssistHourExport', {
...this.queryParams
}, `assistTable_${new Date().getTime()}.xlsx`)
}
}
};
</script>