|
|
@@ -1,6 +1,6 @@
|
|
|
<template>
|
|
|
<ele-modal
|
|
|
- title="弹窗示例"
|
|
|
+ title="工序工步列表"
|
|
|
:maxable="true"
|
|
|
custom-class="ele-dialog-form long-dialog-form"
|
|
|
:centered="true"
|
|
|
@@ -18,7 +18,7 @@
|
|
|
>
|
|
|
<template v-slot:starttime="{ row, $index }">
|
|
|
<el-date-picker
|
|
|
- v-model="row.starttime"
|
|
|
+ v-model="row.startTime"
|
|
|
type="datetime"
|
|
|
value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
placeholder="选择开始日期"
|
|
|
@@ -27,7 +27,7 @@
|
|
|
</template>
|
|
|
<template v-slot:endtime="{ row, $index }">
|
|
|
<el-date-picker
|
|
|
- v-model="row.endtime"
|
|
|
+ v-model="row.endTime"
|
|
|
type="datetime"
|
|
|
value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
placeholder="选择结束日期"
|
|
|
@@ -35,19 +35,26 @@
|
|
|
</el-date-picker>
|
|
|
</template>
|
|
|
<template v-slot:wuping="{ row }">
|
|
|
- <el-button type="primary" @click="goDetails(row, 'wuping')"
|
|
|
- >物品({{ dataLeng(row, 'wuping') }})</el-button
|
|
|
+ <el-button type="primary" @click="goDetails(row, 'toolList')"
|
|
|
+ >物品({{ dataLeng(row, 'toolList') }})</el-button
|
|
|
>
|
|
|
</template>
|
|
|
<template v-slot:zysx="{ row }">
|
|
|
- <el-button type="primary" @click="goDetails(row, 'zysx')"
|
|
|
- >注意事项({{ dataLeng(row, 'zysx') }})</el-button
|
|
|
+ <el-button type="primary" @click="goDetails(row, 'postscriptList')"
|
|
|
+ >注意事项({{ dataLeng(row, 'postscriptList') }})</el-button
|
|
|
>
|
|
|
</template>
|
|
|
<template v-slot:action="{ row }">
|
|
|
<el-link type="primary" @click="saveData(row)" :underline="false"
|
|
|
>保存</el-link
|
|
|
>
|
|
|
+ <el-link
|
|
|
+ v-if="row.hasStepWorkTimeRecord"
|
|
|
+ type="primary"
|
|
|
+ @click="showWorkTimeHistoryDialog(row)"
|
|
|
+ :underline="false"
|
|
|
+ >报工记录</el-link
|
|
|
+ >
|
|
|
</template>
|
|
|
<!-- 表头工具栏 -->
|
|
|
</ele-pro-table>
|
|
|
@@ -56,15 +63,22 @@
|
|
|
:detailsVisible="detailsVisible"
|
|
|
@close="close"
|
|
|
:list="list"
|
|
|
+ :title="detailTitle"
|
|
|
/>
|
|
|
+ <WorkTimeHistory
|
|
|
+ :details-visible="stepWorkTimeDialogVisible"
|
|
|
+ :produceStepWorkTimeId="produceStepWorkTimeId"
|
|
|
+ @close="stepWorkDialogClose"/>
|
|
|
</ele-modal>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import Details from './details.vue';
|
|
|
- import { listByParam } from '@/api/produce/workOrder';
|
|
|
+ import WorkTimeHistory from './workTimeHistory.vue';
|
|
|
+ import { listByParam, addStepWorkTime, listStepWorkTimeRecord } from '@/api/produce/workOrder';
|
|
|
+ import dayjs from 'dayjs';
|
|
|
export default {
|
|
|
- components: { Details },
|
|
|
+ components: { WorkTimeHistory, Details },
|
|
|
data() {
|
|
|
return {
|
|
|
visible: false,
|
|
|
@@ -100,7 +114,7 @@
|
|
|
},
|
|
|
{
|
|
|
slot: 'wuping',
|
|
|
- label: '物品',
|
|
|
+ label: '物品清单',
|
|
|
prop: 'wuping',
|
|
|
width: 130,
|
|
|
align: 'center',
|
|
|
@@ -116,8 +130,8 @@
|
|
|
},
|
|
|
{
|
|
|
label: '工时',
|
|
|
- prop: 'hs',
|
|
|
- width: 100,
|
|
|
+ prop: 'totalTimeStr',
|
|
|
+ width: 150,
|
|
|
align: 'center',
|
|
|
showOverflowTooltip: true
|
|
|
},
|
|
|
@@ -148,47 +162,13 @@
|
|
|
showOverflowTooltip: true
|
|
|
}
|
|
|
],
|
|
|
- workList: [
|
|
|
- {
|
|
|
- name: '哈哈哈哈哈哈哈',
|
|
|
- timeFlag: false
|
|
|
- },
|
|
|
- {
|
|
|
- name: '哈哈哈哈哈哈哈',
|
|
|
- time: '',
|
|
|
- timeFlag: true
|
|
|
- },
|
|
|
- {
|
|
|
- name: '哈哈哈哈哈哈哈',
|
|
|
- wuping: [
|
|
|
- {
|
|
|
- code: '物品'
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- name: '哈哈哈哈哈哈哈',
|
|
|
- zysx: [
|
|
|
- {
|
|
|
- code: '注意事项'
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- name: '哈哈哈哈哈哈哈'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '哈哈哈哈哈哈哈'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '哈哈哈哈哈哈哈'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '哈哈哈哈哈哈哈'
|
|
|
- }
|
|
|
- ],
|
|
|
+ workList: [],
|
|
|
detailsVisible: false,
|
|
|
- list: []
|
|
|
+ list: [],
|
|
|
+ detailTitle: null,
|
|
|
+ queryParam: {},
|
|
|
+ stepWorkTimeDialogVisible: false,
|
|
|
+ produceStepWorkTimeId: null,
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
|
@@ -202,24 +182,64 @@
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
- open(id) {
|
|
|
- console.log(id, 'id ----');
|
|
|
+ open(queryParam) {
|
|
|
+ this.queryParam = queryParam;
|
|
|
this.visible = true;
|
|
|
- this.getList(id);
|
|
|
+ this.getList();
|
|
|
},
|
|
|
- getList(id) {
|
|
|
- listByParam(id)
|
|
|
+ getList() {
|
|
|
+ listByParam(this.queryParam)
|
|
|
.then((res) => {
|
|
|
- console.log(res, 'res ---');
|
|
|
+ this.workList = res;
|
|
|
})
|
|
|
.catch((err) => {
|
|
|
- console.log(err, 'err');
|
|
|
+ this.$message.error('获取数据失败');
|
|
|
});
|
|
|
},
|
|
|
// 保存
|
|
|
saveData(row) {
|
|
|
// 注意判断时间 是否填写
|
|
|
- console.log('这里做最后的提交', row);
|
|
|
+ if (!row.startTime) {
|
|
|
+ this.$message.warning('请选择开始时间');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 判断结束时间大于开始时间
|
|
|
+ if (row.endTime) {
|
|
|
+ const startTime = dayjs(row.startTime);
|
|
|
+ const endTime = dayjs(row.endTime);
|
|
|
+ const isEndAfterStart = endTime.isAfter(startTime)
|
|
|
+ if (!isEndAfterStart) {
|
|
|
+ this.$message.warning('结束时间必须大于开始时间,请重新选择结束时间')
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ const formData = {
|
|
|
+ produceStepId: row.stepId, // 工步ID,
|
|
|
+ taskId: row.paramId, // 工艺ID
|
|
|
+ workOrderId: this.queryParam.workOrderId, // 工单ID
|
|
|
+ startTime: row.startTime,
|
|
|
+ endTime: row.endTime
|
|
|
+ };
|
|
|
+ const loading = this.$messageLoading('保存中...');
|
|
|
+ addStepWorkTime(formData)
|
|
|
+ .then((res) => {
|
|
|
+ loading.close();
|
|
|
+ if (res) {
|
|
|
+ this.$message.success('保存成功');
|
|
|
+ this.getList();
|
|
|
+ } else {
|
|
|
+ this.$message.error('保存失败');
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((e) => {
|
|
|
+ loading.close();
|
|
|
+ this.$message.error('保存失败');
|
|
|
+ });
|
|
|
+ },
|
|
|
+ showWorkTimeHistoryDialog(row) {
|
|
|
+ if (!row.produceStepWorkTimeId) return;
|
|
|
+ this.produceStepWorkTimeId = row.produceStepWorkTimeId
|
|
|
+ this.stepWorkTimeDialogVisible = true;
|
|
|
},
|
|
|
handleClose() {
|
|
|
this.visible = false;
|
|
|
@@ -227,11 +247,15 @@
|
|
|
close() {
|
|
|
this.detailsVisible = false;
|
|
|
},
|
|
|
+ stepWorkDialogClose() {
|
|
|
+ this.stepWorkTimeDialogVisible = false;
|
|
|
+ },
|
|
|
goDetails(row, type) {
|
|
|
- if (!row[type] || row[type].length == 0) {
|
|
|
+ if (!row[type] || row[type].length === 0) {
|
|
|
return this.$message.warning('暂无详细数据');
|
|
|
}
|
|
|
this.list = row[type];
|
|
|
+ this.detailTitle = type === 'toolList' ? '物品清单' : '注意事项';
|
|
|
this.detailsVisible = true;
|
|
|
}
|
|
|
}
|