|
@@ -15,6 +15,17 @@
|
|
|
添加
|
|
添加
|
|
|
</el-button>
|
|
</el-button>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
+
|
|
|
|
|
+ <template v-slot:code="{ row }">
|
|
|
|
|
+ <el-link
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ :underline="false"
|
|
|
|
|
+ @click="openEdit('detail', row)"
|
|
|
|
|
+ >
|
|
|
|
|
+ {{ row.code }}
|
|
|
|
|
+ </el-link>
|
|
|
|
|
+ </template>
|
|
|
|
|
+
|
|
|
<template v-slot:files="scope">
|
|
<template v-slot:files="scope">
|
|
|
<el-link
|
|
<el-link
|
|
|
v-for="link in scope.row.files"
|
|
v-for="link in scope.row.files"
|
|
@@ -24,8 +35,6 @@
|
|
|
@click="downloadFile(link)"
|
|
@click="downloadFile(link)"
|
|
|
>
|
|
>
|
|
|
{{ link.name }}
|
|
{{ link.name }}
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
</el-link>
|
|
</el-link>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
@@ -51,24 +60,16 @@
|
|
|
<el-link
|
|
<el-link
|
|
|
type="primary"
|
|
type="primary"
|
|
|
:underline="false"
|
|
:underline="false"
|
|
|
- @click="openEdit('detail', row)"
|
|
|
|
|
|
|
+ v-if="row.status == 0"
|
|
|
|
|
+ @click="openEdit('edit', row)"
|
|
|
>
|
|
>
|
|
|
- 详情
|
|
|
|
|
|
|
+ 报工
|
|
|
</el-link>
|
|
</el-link>
|
|
|
- <el-link
|
|
|
|
|
- type="primary"
|
|
|
|
|
- :underline="false"
|
|
|
|
|
- v-if="row.status==0"
|
|
|
|
|
- @click="openEdit('edit', row)"
|
|
|
|
|
- >
|
|
|
|
|
- 报工
|
|
|
|
|
- </el-link>
|
|
|
|
|
<el-popconfirm
|
|
<el-popconfirm
|
|
|
class="ele-action"
|
|
class="ele-action"
|
|
|
title="确定要删除吗?"
|
|
title="确定要删除吗?"
|
|
|
@confirm="remove(row)"
|
|
@confirm="remove(row)"
|
|
|
- v-if="row.status==0"
|
|
|
|
|
-
|
|
|
|
|
|
|
+ v-if="row.status == 0"
|
|
|
>
|
|
>
|
|
|
<template v-slot:reference>
|
|
<template v-slot:reference>
|
|
|
<el-link type="danger" :underline="false" icon="el-icon-delete">
|
|
<el-link type="danger" :underline="false" icon="el-icon-delete">
|
|
@@ -82,230 +83,226 @@
|
|
|
<edit ref="edit" @done="done"></edit>
|
|
<edit ref="edit" @done="done"></edit>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
- <script>
|
|
|
|
|
-import search from './components/search.vue';
|
|
|
|
|
-import edit from './components/edit.vue';
|
|
|
|
|
-
|
|
|
|
|
-import { getList, removeItem } from '@/api/inspectionWork';
|
|
|
|
|
-import dictMixins from '@/mixins/dictMixins';
|
|
|
|
|
- import {getFile} from "@/api/system/file";
|
|
|
|
|
-
|
|
|
|
|
-export default {
|
|
|
|
|
- mixins: [dictMixins],
|
|
|
|
|
- components: {
|
|
|
|
|
- search,
|
|
|
|
|
- edit
|
|
|
|
|
- },
|
|
|
|
|
- data() {
|
|
|
|
|
- return {
|
|
|
|
|
- columns: [
|
|
|
|
|
- {
|
|
|
|
|
- width: 50,
|
|
|
|
|
- type: 'index',
|
|
|
|
|
- columnKey: 'index',
|
|
|
|
|
- align: 'center',
|
|
|
|
|
- label: '序号',
|
|
|
|
|
-
|
|
|
|
|
- },
|
|
|
|
|
|
|
+<script>
|
|
|
|
|
+ import search from './components/search.vue';
|
|
|
|
|
+ import edit from './components/edit.vue';
|
|
|
|
|
|
|
|
- {
|
|
|
|
|
- prop: 'code',
|
|
|
|
|
- label: '编码',
|
|
|
|
|
- align: 'center',
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- width: 180,
|
|
|
|
|
|
|
+ import { getList, removeItem } from '@/api/inspectionWork';
|
|
|
|
|
+ import dictMixins from '@/mixins/dictMixins';
|
|
|
|
|
+ import { getFile } from '@/api/system/file';
|
|
|
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: '来源生产工单号',
|
|
|
|
|
- width: 180,
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- prop: 'workOrderCode',
|
|
|
|
|
- align: 'center'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- prop: 'batchNo',
|
|
|
|
|
- label: '批次号',
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- align: 'center'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- prop: 'productName',
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- label: '产品名称',
|
|
|
|
|
- align: 'center'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- prop: 'productCode',
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- label: '产品编码',
|
|
|
|
|
- align: 'center'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- prop: 'specification',
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- label: '规格',
|
|
|
|
|
- align: 'center'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- prop: 'brandNo',
|
|
|
|
|
- label: '牌号',
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- align: 'center'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: '类型',
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- prop: 'qualityType',
|
|
|
|
|
- slot: 'qualityType',
|
|
|
|
|
- width: 120
|
|
|
|
|
-
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: '质检方式',
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- prop: 'qualityMode',
|
|
|
|
|
- slot: 'qualityMode',
|
|
|
|
|
- width: 120
|
|
|
|
|
-
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- prop: 'produceTaskName',
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- label: '工序',
|
|
|
|
|
- align: 'center'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- prop: 'total',
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- label: '总数量',
|
|
|
|
|
- align: 'center',
|
|
|
|
|
- width:80
|
|
|
|
|
-
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- prop: 'qualifiedNumber',
|
|
|
|
|
- label: '合格数',
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- align: 'center',
|
|
|
|
|
- width:80
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- prop: 'qualificationRate',
|
|
|
|
|
- label: '合格率',
|
|
|
|
|
- align: 'center',
|
|
|
|
|
- width:80
|
|
|
|
|
-
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- prop: 'noQualifiedNumber',
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- label: '不合格数',
|
|
|
|
|
- align: 'center',
|
|
|
|
|
- width:80
|
|
|
|
|
-
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- prop: 'noQualificationRate',
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- label: '不合格率',
|
|
|
|
|
- align: 'center',
|
|
|
|
|
- width:80
|
|
|
|
|
-
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- prop: 'hours',
|
|
|
|
|
- label: '工时',
|
|
|
|
|
- align: 'center',
|
|
|
|
|
- width:60
|
|
|
|
|
|
|
+ export default {
|
|
|
|
|
+ mixins: [dictMixins],
|
|
|
|
|
+ components: {
|
|
|
|
|
+ search,
|
|
|
|
|
+ edit
|
|
|
|
|
+ },
|
|
|
|
|
+ data() {
|
|
|
|
|
+ return {
|
|
|
|
|
+ columns: [
|
|
|
|
|
+ {
|
|
|
|
|
+ width: 50,
|
|
|
|
|
+ type: 'index',
|
|
|
|
|
+ columnKey: 'index',
|
|
|
|
|
+ align: 'center',
|
|
|
|
|
+ label: '序号'
|
|
|
|
|
+ },
|
|
|
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- prop: 'qualityTime',
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- label: '质检时间',
|
|
|
|
|
- align: 'center',
|
|
|
|
|
- width:120
|
|
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'code',
|
|
|
|
|
+ label: '编码',
|
|
|
|
|
+ slot: 'code',
|
|
|
|
|
+ align: 'center',
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ width: 180
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '来源生产工单号',
|
|
|
|
|
+ width: 180,
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ prop: 'workOrderCode',
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'batchNo',
|
|
|
|
|
+ width: 180,
|
|
|
|
|
+ label: '批次号',
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'productName',
|
|
|
|
|
+ width: 120,
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ label: '产品名称',
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'productCode',
|
|
|
|
|
+ width: 120,
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ label: '产品编码',
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'specification',
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ label: '规格',
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'brandNo',
|
|
|
|
|
+ label: '牌号',
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '类型',
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ prop: 'qualityType',
|
|
|
|
|
+ slot: 'qualityType',
|
|
|
|
|
+ width: 120
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '质检方式',
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ prop: 'qualityMode',
|
|
|
|
|
+ slot: 'qualityMode',
|
|
|
|
|
+ width: 120
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'produceTaskName',
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ label: '工序',
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'total',
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ label: '总数量',
|
|
|
|
|
+ align: 'center',
|
|
|
|
|
+ width: 80
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'qualifiedNumber',
|
|
|
|
|
+ label: '合格数',
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ align: 'center',
|
|
|
|
|
+ width: 80
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ prop: 'qualificationRate',
|
|
|
|
|
+ label: '合格率',
|
|
|
|
|
+ align: 'center',
|
|
|
|
|
+ width: 80
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'noQualifiedNumber',
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ label: '不合格数',
|
|
|
|
|
+ align: 'center',
|
|
|
|
|
+ width: 80
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'noQualificationRate',
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ label: '不合格率',
|
|
|
|
|
+ align: 'center',
|
|
|
|
|
+ width: 80
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ prop: 'hours',
|
|
|
|
|
+ label: '工时',
|
|
|
|
|
+ align: 'center',
|
|
|
|
|
+ width: 60
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'qualityTime',
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ label: '质检时间',
|
|
|
|
|
+ align: 'center',
|
|
|
|
|
+ width: 120
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'qualityName',
|
|
|
|
|
+ label: '质检人',
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ align: 'center',
|
|
|
|
|
+ width: 80
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '附件',
|
|
|
|
|
+ prop: 'accessory',
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ slot: 'accessory'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'status',
|
|
|
|
|
+ label: '状态',
|
|
|
|
|
+ align: 'center',
|
|
|
|
|
+ width: 80,
|
|
|
|
|
+ formatter: (row, column, cellValue) => {
|
|
|
|
|
+ return cellValue == 0 ? '未报工' : cellValue == 1 ? '已报工' : '';
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- prop: 'qualityName',
|
|
|
|
|
- label: '质检人',
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- align: 'center',
|
|
|
|
|
- width:80
|
|
|
|
|
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: '附件',
|
|
|
|
|
- prop: 'accessory',
|
|
|
|
|
- showOverflowTooltip: true,
|
|
|
|
|
- slot: 'accessory'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- prop: 'status',
|
|
|
|
|
- label: '状态',
|
|
|
|
|
- align: 'center',
|
|
|
|
|
- width:80,
|
|
|
|
|
- formatter: (row, column, cellValue) => {
|
|
|
|
|
- return cellValue==0?'未报工':cellValue==1?'已报工':''
|
|
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '创建时间',
|
|
|
|
|
+ prop: 'createTime',
|
|
|
|
|
+ width: 95,
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ columnKey: 'action',
|
|
|
|
|
+ label: '操作',
|
|
|
|
|
+ width: 120,
|
|
|
|
|
+ align: 'center',
|
|
|
|
|
+ resizable: false,
|
|
|
|
|
+ slot: 'action',
|
|
|
|
|
+ fixed: 'right'
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- columnKey: 'action',
|
|
|
|
|
- label: '操作',
|
|
|
|
|
- width: 220,
|
|
|
|
|
- align: 'center',
|
|
|
|
|
- resizable: false,
|
|
|
|
|
- slot: 'action',
|
|
|
|
|
- fixed: 'right'
|
|
|
|
|
- }
|
|
|
|
|
- ]
|
|
|
|
|
- };
|
|
|
|
|
- },
|
|
|
|
|
- created() {
|
|
|
|
|
- this.requestDict('质检计划类型');
|
|
|
|
|
- this.requestDict('不良品处理类型');
|
|
|
|
|
- this.requestDict('质检方式');
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- },
|
|
|
|
|
- methods: {
|
|
|
|
|
- datasource({ page, where, limit }) {
|
|
|
|
|
- return getList({
|
|
|
|
|
- ...where,
|
|
|
|
|
- pageNum: page,
|
|
|
|
|
- size: limit
|
|
|
|
|
- });
|
|
|
|
|
- },
|
|
|
|
|
- search(where) {
|
|
|
|
|
- this.$refs.table.reload({
|
|
|
|
|
- where: where,
|
|
|
|
|
- page: 1
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ ]
|
|
|
|
|
+ };
|
|
|
},
|
|
},
|
|
|
- openEdit(type, row) {
|
|
|
|
|
- this.$refs.edit.open(type, row);
|
|
|
|
|
-
|
|
|
|
|
|
|
+ created() {
|
|
|
|
|
+ this.requestDict('质检计划类型');
|
|
|
|
|
+ this.requestDict('不良品处理类型');
|
|
|
|
|
+ this.requestDict('质检方式');
|
|
|
},
|
|
},
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ datasource({ page, where, limit }) {
|
|
|
|
|
+ return getList({
|
|
|
|
|
+ ...where,
|
|
|
|
|
+ pageNum: page,
|
|
|
|
|
+ size: limit
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ search(where) {
|
|
|
|
|
+ this.$refs.table.reload({
|
|
|
|
|
+ where: where,
|
|
|
|
|
+ page: 1
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ openEdit(type, row) {
|
|
|
|
|
+ this.$refs.edit.open(type, row);
|
|
|
|
|
+ },
|
|
|
downloadFile(file) {
|
|
downloadFile(file) {
|
|
|
- getFile({objectName: file.storePath}, file.name);
|
|
|
|
|
|
|
+ getFile({ objectName: file.storePath }, file.name);
|
|
|
},
|
|
},
|
|
|
- remove(row) {
|
|
|
|
|
- removeItem([row.id])
|
|
|
|
|
- .then((message) => {
|
|
|
|
|
- this.$message.success(message);
|
|
|
|
|
- this.done();
|
|
|
|
|
- })
|
|
|
|
|
- .catch((e) => {});
|
|
|
|
|
- },
|
|
|
|
|
- done() {
|
|
|
|
|
- this.$refs.search.search();
|
|
|
|
|
|
|
+ remove(row) {
|
|
|
|
|
+ removeItem([row.id])
|
|
|
|
|
+ .then((message) => {
|
|
|
|
|
+ this.$message.success(message);
|
|
|
|
|
+ this.done();
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch((e) => {});
|
|
|
|
|
+ },
|
|
|
|
|
+ done() {
|
|
|
|
|
+ this.$refs.search.search();
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
-};
|
|
|
|
|
|
|
+ };
|
|
|
</script>
|
|
</script>
|
|
|
-
|
|
|