|
|
|
|
@ -20,6 +20,7 @@ |
|
|
|
|
> |
|
|
|
|
<template #menu-left> |
|
|
|
|
<el-button @click="handleIssue" type="primary" v-if="permission.issue_btn"> 转派 </el-button> |
|
|
|
|
<el-button type="warning" plain @click="handleExport">导出</el-button> |
|
|
|
|
</template> |
|
|
|
|
<template #menu-right="{ size }"> |
|
|
|
|
<el-button type="warning" plain @click="handleSearch(1)">临期</el-button> |
|
|
|
|
@ -118,6 +119,9 @@ |
|
|
|
|
<el-form-item label="未试验原因" prop="reasonForNo" v-if="writeForm.isDone == 2"> |
|
|
|
|
<el-input type="textarea" v-model="writeForm.reasonForNo" placeholder="请填写未试验原因"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="超期原因" prop="reasonForOut" v-if="writeForm.flagOut == 1"> |
|
|
|
|
<el-input type="textarea" v-model="writeForm.reasonForOut" placeholder="请填写超期原因"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-form> |
|
|
|
|
<template #footer> |
|
|
|
|
<span class="dialog-footer"> |
|
|
|
|
@ -137,9 +141,16 @@ |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
|
import NProgress from 'nprogress'; |
|
|
|
|
import 'nprogress/nprogress.css'; |
|
|
|
|
import { exportBlob } from '@/api/common'; |
|
|
|
|
import { downloadXls } from '@/utils/util'; |
|
|
|
|
import { mapGetters } from 'vuex'; |
|
|
|
|
import website from '@/config/website'; |
|
|
|
|
import { getToken } from '@/utils/auth'; |
|
|
|
|
import {dateFormat} from '@/utils/date' |
|
|
|
|
import viewDialog from './components/viewDialog.vue'; |
|
|
|
|
import { getList, remove,issueTask,acceptTask,issueAllTask,writeTask } from '@/api/qualityManagement/periodicTesting/testTask.js'; |
|
|
|
|
import { getTaskList, remove,issueTask,acceptTask,issueAllTask,writeTask,exportExcel } from '@/api/qualityManagement/periodicTesting/testTask.js'; |
|
|
|
|
import { getUserList} from '@/api/qualityManagement/periodicTesting/projectCycle.js'; |
|
|
|
|
|
|
|
|
|
export default { |
|
|
|
|
@ -185,63 +196,51 @@ export default { |
|
|
|
|
issueForm: {}, |
|
|
|
|
option: { |
|
|
|
|
tip: false, |
|
|
|
|
height: 'auto', |
|
|
|
|
calcHeight: 32, |
|
|
|
|
columnSort: true, |
|
|
|
|
// simplePage: true, |
|
|
|
|
align: 'center', |
|
|
|
|
size: 'medium', |
|
|
|
|
height:'auto', |
|
|
|
|
searchLabelWidth:120, |
|
|
|
|
simplePage: true, |
|
|
|
|
searchShow: true, |
|
|
|
|
searchMenuSpan: 12, |
|
|
|
|
searchMenuSpan: 6, |
|
|
|
|
searchIcon: true, |
|
|
|
|
searchIndex: 3, |
|
|
|
|
tree: false, |
|
|
|
|
border: true, |
|
|
|
|
index: false, |
|
|
|
|
selection: true, |
|
|
|
|
viewBtn: false, |
|
|
|
|
editBtn:false, |
|
|
|
|
addBtn:false, |
|
|
|
|
delBtn: false, |
|
|
|
|
addBtn: false, |
|
|
|
|
editBtn: false, |
|
|
|
|
editBtnText: '修改', |
|
|
|
|
viewBtnText: '详情', |
|
|
|
|
addBtnIcon: ' ', |
|
|
|
|
viewBtnIcon: ' ', |
|
|
|
|
delBtnIcon: ' ', |
|
|
|
|
editBtnIcon: ' ', |
|
|
|
|
viewBtnText:'详情', |
|
|
|
|
labelWidth: 120, |
|
|
|
|
menuWidth: 130, |
|
|
|
|
dialogWidth: 600, |
|
|
|
|
menuWidth: 120, |
|
|
|
|
dialogWidth: 1200, |
|
|
|
|
dialogClickModal: false, |
|
|
|
|
searchEnter: true, |
|
|
|
|
excelBtn: false, |
|
|
|
|
filterBtn: true, |
|
|
|
|
searchShowBtn: false, |
|
|
|
|
excelBtn: true, |
|
|
|
|
index: false, |
|
|
|
|
showOverflowTooltip: true, |
|
|
|
|
align: 'center', |
|
|
|
|
searchLabelPosition: 'left', |
|
|
|
|
searchGutter: 24, |
|
|
|
|
searchSpan: 6, |
|
|
|
|
searchLabelPosition:'left', |
|
|
|
|
searchLabelPosition:'left', |
|
|
|
|
searchGutter:24, |
|
|
|
|
searchSpan:6, |
|
|
|
|
menuAlign: 'left', |
|
|
|
|
gridBtn: false, |
|
|
|
|
searchMenuPosition: 'right', |
|
|
|
|
gridBtn:false, |
|
|
|
|
searchMenuPosition:'right', |
|
|
|
|
addBtnIcon: ' ', |
|
|
|
|
viewBtnIcon: ' ', |
|
|
|
|
delBtnIcon: ' ', |
|
|
|
|
editBtnIcon: ' ', |
|
|
|
|
column: [ |
|
|
|
|
// [ |
|
|
|
|
// {"label": "任务编号",prop:"code"}, |
|
|
|
|
// {"label": "试验项目",prop:"cycleTestItemName"}, |
|
|
|
|
// {"label": "试验条件",prop:"cycleTestItemCondition"}, |
|
|
|
|
// {"label": "试验标准",prop:"cycleTestItemStandard"}, |
|
|
|
|
// {"label": "试验件",prop:"testType"}, |
|
|
|
|
// {"label": "工艺员",prop:"processUserName"}, |
|
|
|
|
// {"label": "状态",prop:""}, |
|
|
|
|
// {"label": "临期天数",prop:"remind"}, |
|
|
|
|
// {"label": "任务生成时间",prop:""}, |
|
|
|
|
// {"label": "任务下发时间",prop:""}, |
|
|
|
|
// {"label": "任务接成时间",prop:""}, |
|
|
|
|
// {"label": "任务完成时间",prop:""}, |
|
|
|
|
// ] |
|
|
|
|
{ |
|
|
|
|
label: '任务编号', |
|
|
|
|
prop: 'code', |
|
|
|
|
search: false, |
|
|
|
|
search: true, |
|
|
|
|
sortable: true, |
|
|
|
|
filter: true, |
|
|
|
|
addDisplay: false, |
|
|
|
|
@ -260,6 +259,7 @@ export default { |
|
|
|
|
{ |
|
|
|
|
label: '试验项目', |
|
|
|
|
prop: 'cycleTestItemId', |
|
|
|
|
searchOrder: 3, |
|
|
|
|
search: true, |
|
|
|
|
hide:true, |
|
|
|
|
type: 'select', |
|
|
|
|
@ -321,7 +321,7 @@ export default { |
|
|
|
|
{ |
|
|
|
|
label: '试验条件', |
|
|
|
|
prop: 'cycleTestItemCondition', |
|
|
|
|
search: false, |
|
|
|
|
search: true, |
|
|
|
|
sortable: true, |
|
|
|
|
filter: true, |
|
|
|
|
span: 24, |
|
|
|
|
@ -338,7 +338,7 @@ export default { |
|
|
|
|
label: '试验标准', |
|
|
|
|
prop: 'cycleTestStandardName', |
|
|
|
|
type: 'textarea', |
|
|
|
|
search: false, |
|
|
|
|
search: true, |
|
|
|
|
sortable: true, |
|
|
|
|
filter: true, |
|
|
|
|
span: 24, |
|
|
|
|
@ -355,7 +355,7 @@ export default { |
|
|
|
|
label: '试验件', |
|
|
|
|
prop: 'testType', |
|
|
|
|
type: 'select', |
|
|
|
|
search: false, |
|
|
|
|
search: true, |
|
|
|
|
sortable: true, |
|
|
|
|
filter: true, |
|
|
|
|
span: 24, |
|
|
|
|
@ -369,7 +369,7 @@ export default { |
|
|
|
|
{ |
|
|
|
|
label: '临期天数', |
|
|
|
|
prop: 'countDayToPlanedFinish', |
|
|
|
|
search: false, |
|
|
|
|
search: true, |
|
|
|
|
sortable: true, |
|
|
|
|
editDisplay: false, |
|
|
|
|
filter: true, |
|
|
|
|
@ -406,6 +406,7 @@ export default { |
|
|
|
|
{ |
|
|
|
|
label: '状态', |
|
|
|
|
prop: 'status', |
|
|
|
|
searchOrder: 2, |
|
|
|
|
search: true, |
|
|
|
|
type: 'select', |
|
|
|
|
sortable: true, |
|
|
|
|
@ -434,10 +435,16 @@ export default { |
|
|
|
|
// { label: '已完成', value: 5 }, |
|
|
|
|
// ], |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
label:'超期原因', |
|
|
|
|
prop:"reasonForOut", |
|
|
|
|
span: 24, |
|
|
|
|
width: 200, |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
label: '工艺员', |
|
|
|
|
prop: 'processUserName', |
|
|
|
|
search: false, |
|
|
|
|
search: true, |
|
|
|
|
sortable: true, |
|
|
|
|
filter: true, |
|
|
|
|
span: 24, |
|
|
|
|
@ -452,13 +459,17 @@ export default { |
|
|
|
|
{ |
|
|
|
|
label: '任务生成时间', |
|
|
|
|
prop: 'genDatetime', |
|
|
|
|
type:"date", |
|
|
|
|
searchOrder: 1, |
|
|
|
|
finishTime: '', |
|
|
|
|
search: false, |
|
|
|
|
search: true, |
|
|
|
|
searchRange: true, |
|
|
|
|
sortable: true, |
|
|
|
|
editDisplay: false, |
|
|
|
|
filter: true, |
|
|
|
|
addDisplay: false, |
|
|
|
|
span: 24, |
|
|
|
|
searchLabelWidth: 120, |
|
|
|
|
width: 200, |
|
|
|
|
rules: [ |
|
|
|
|
{ |
|
|
|
|
@ -471,8 +482,11 @@ export default { |
|
|
|
|
{ |
|
|
|
|
label: '任务下发时间', |
|
|
|
|
prop: 'issueDate', |
|
|
|
|
search: false, |
|
|
|
|
type:"date", |
|
|
|
|
searchRange: true, |
|
|
|
|
search: true, |
|
|
|
|
sortable: true, |
|
|
|
|
searchOrder: 1, |
|
|
|
|
editDisplay: false, |
|
|
|
|
filter: true, |
|
|
|
|
addDisplay: false, |
|
|
|
|
@ -489,7 +503,10 @@ export default { |
|
|
|
|
{ |
|
|
|
|
label: '任务接收时间', |
|
|
|
|
prop: 'acceptDate', |
|
|
|
|
search: false, |
|
|
|
|
type:"date", |
|
|
|
|
searchRange: true, |
|
|
|
|
searchOrder: 1, |
|
|
|
|
search: true, |
|
|
|
|
sortable: true, |
|
|
|
|
editDisplay: false, |
|
|
|
|
filter: true, |
|
|
|
|
@ -507,7 +524,10 @@ export default { |
|
|
|
|
{ |
|
|
|
|
label: '任务完成时间', |
|
|
|
|
prop: 'finishDate', |
|
|
|
|
search: false, |
|
|
|
|
type:"date", |
|
|
|
|
searchRange: true, |
|
|
|
|
searchOrder: 1, |
|
|
|
|
search: true, |
|
|
|
|
sortable: true, |
|
|
|
|
editDisplay: false, |
|
|
|
|
filter: true, |
|
|
|
|
@ -552,6 +572,11 @@ export default { |
|
|
|
|
rules.testResult = []; // 非必填 |
|
|
|
|
rules.reasonForNo = [{ required: true, message: '请填写未试验原因', trigger: 'blur' }] |
|
|
|
|
} |
|
|
|
|
if(this.writeForm.flagOut == 1){ |
|
|
|
|
rules.reasonForOut = [{ required: true, message: '请填写超期原因', trigger: 'blur' }]; |
|
|
|
|
}else{ |
|
|
|
|
rules.reasonForOut = []; |
|
|
|
|
} |
|
|
|
|
return rules; |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
@ -604,6 +629,7 @@ export default { |
|
|
|
|
handleWrite(row) { |
|
|
|
|
this.writeForm = { |
|
|
|
|
id:row.id, |
|
|
|
|
flagOut:row.flagOut |
|
|
|
|
}; |
|
|
|
|
this.fileList = []; |
|
|
|
|
this.writeDialog = true; |
|
|
|
|
@ -624,6 +650,35 @@ export default { |
|
|
|
|
this.issueForm = {} |
|
|
|
|
this.issueDialog = true; |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
// 导出 |
|
|
|
|
handleExport(){ |
|
|
|
|
let param = { |
|
|
|
|
...this.query, |
|
|
|
|
genDatetimeStart:this.query.genDatetime && this.query.genDatetime.length != 0 && dateFormat(this.query.genDatetime[0],"yyyy-MM-dd"), |
|
|
|
|
genDatetimeEnd:this.query.genDatetime && this.query.genDatetime.length != 0 && dateFormat(this.query.genDatetime[1],"yyyy-MM-dd"), |
|
|
|
|
issueDateStart:this.query.issueDate && this.query.issueDate.length != 0 && dateFormat(this.query.issueDate[0],"yyyy-MM-dd"), |
|
|
|
|
issueDateEnd:this.query.issueDate && this.query.issueDate.length != 0 && dateFormat(this.query.issueDate[1],"yyyy-MM-dd"), |
|
|
|
|
acceptDateStart:this.query.acceptDate && this.query.acceptDate.length != 0 && dateFormat(this.query.acceptDate[0],"yyyy-MM-dd"), |
|
|
|
|
acceptDateEnd:this.query.acceptDate && this.query.acceptDate.length != 0 && dateFormat(this.query.acceptDate[1],"yyyy-MM-dd"), |
|
|
|
|
finishDateStart:this.query.finishDate && this.query.finishDate.length != 0 && dateFormat(this.query.finishDate[0],"yyyy-MM-dd"), |
|
|
|
|
finishDateEnd:this.query.finishDate && this.query.finishDate.length != 0 && dateFormat(this.query.finishDate[1],"yyyy-MM-dd"), |
|
|
|
|
dayToPlanedFinish:this.query.countDayToPlanedFinish && this.query.countDayToPlanedFinish |
|
|
|
|
} |
|
|
|
|
const { genDatetime,issueDate,acceptDate,finishDate,countDayToPlanedFinish, ...validData } = param; |
|
|
|
|
this.$confirm('是否导出周期性试验任务数据?', '提示', { |
|
|
|
|
confirmButtonText: '确定', |
|
|
|
|
cancelButtonText: '取消', |
|
|
|
|
type: 'warning', |
|
|
|
|
}).then(() => { |
|
|
|
|
NProgress.start(); |
|
|
|
|
exportExcel(validData).then(res => { |
|
|
|
|
console.log('res===============',res) |
|
|
|
|
downloadXls(res.data, `试验任务表${this.$dayjs().format('YYYY-MM-DD')}.xlsx`); |
|
|
|
|
NProgress.done(); |
|
|
|
|
}); |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
// 临期超期筛选数据 |
|
|
|
|
handleSearch(val){ |
|
|
|
|
this.page.currentPage = 1 |
|
|
|
|
@ -660,8 +715,10 @@ export default { |
|
|
|
|
isDone:this.writeForm.isDone, |
|
|
|
|
testDate:this.writeForm.isDone == 1 ? this.writeForm.testDate : '', |
|
|
|
|
testAttachId:this.writeForm.isDone == 1 ? this.fileList.map(item => item.attachId).join(',') : '', |
|
|
|
|
reasonForNo:this.writeForm.isDone == 2 ? this.writeForm.reasonForNo ? this.writeForm.reasonForNo : '' : '' |
|
|
|
|
reasonForNo:this.writeForm.isDone == 2 ? this.writeForm.reasonForNo ? this.writeForm.reasonForNo : '' : '', |
|
|
|
|
reasonForOut:this.writeForm.flagOut == 1 && this.writeForm.reasonForOut |
|
|
|
|
} |
|
|
|
|
console.log('prams----------',params) |
|
|
|
|
writeTask(params).then(res =>{ |
|
|
|
|
if(res.data.code == 200){ |
|
|
|
|
this.$message.success('填报成功') |
|
|
|
|
@ -731,7 +788,27 @@ export default { |
|
|
|
|
onLoad(page, params = {}) { |
|
|
|
|
this.loading = true; |
|
|
|
|
|
|
|
|
|
getList(page.currentPage, page.pageSize, Object.assign(params, this.query),this.filterType).then(res => { |
|
|
|
|
let param = { |
|
|
|
|
...params, |
|
|
|
|
genDatetimeStart:params.genDatetime && params.genDatetime.length != 0 && dateFormat(params.genDatetime[0],"yyyy-MM-dd"), |
|
|
|
|
genDatetimeEnd:params.genDatetime && params.genDatetime.length != 0 && dateFormat(params.genDatetime[1],"yyyy-MM-dd"), |
|
|
|
|
issueDateStart:params.issueDate && params.issueDate.length != 0 && dateFormat(params.issueDate[0],"yyyy-MM-dd"), |
|
|
|
|
issueDateEnd:params.issueDate && params.issueDate.length != 0 && dateFormat(params.issueDate[1],"yyyy-MM-dd"), |
|
|
|
|
acceptDateStart:params.acceptDate && params.acceptDate.length != 0 && dateFormat(params.acceptDate[0],"yyyy-MM-dd"), |
|
|
|
|
acceptDateEnd:params.acceptDate && params.acceptDate.length != 0 && dateFormat(params.acceptDate[1],"yyyy-MM-dd"), |
|
|
|
|
finishDateStart:params.finishDate && params.finishDate.length != 0 && dateFormat(params.finishDate[0],"yyyy-MM-dd"), |
|
|
|
|
finishDateEnd:params.finishDate && params.finishDate.length != 0 && dateFormat(params.finishDate[1],"yyyy-MM-dd"), |
|
|
|
|
dayToPlanedFinish:params.countDayToPlanedFinish && params.countDayToPlanedFinish |
|
|
|
|
} |
|
|
|
|
const { genDatetime,issueDate,acceptDate,finishDate,countDayToPlanedFinish, ...validData } = param; |
|
|
|
|
console.log('validData----------',validData) |
|
|
|
|
|
|
|
|
|
getTaskList({ |
|
|
|
|
current:this.page.currentPage, |
|
|
|
|
size:this.page.pageSize, |
|
|
|
|
...validData, |
|
|
|
|
filterType:this.filterType |
|
|
|
|
}).then(res => { |
|
|
|
|
this.data = res.data.data.records; |
|
|
|
|
|
|
|
|
|
this.loading = false; |
|
|
|
|
|