zhangdi 2 weeks ago
commit afd0584776
  1. 2
      index.html
  2. 54
      src/api/qualityManagement/periodicTesting/projectCycle.js
  3. 8
      src/api/qualityManagement/periodicTesting/testProject.js
  4. 38
      src/api/qualityManagement/periodicTesting/testTask.js
  5. 99
      src/components/basic-import/main.vue
  6. 249
      src/views/periodicTesting/components/addProjectCycleDialog.vue
  7. 98
      src/views/periodicTesting/components/addTestProjectDialog.vue
  8. 33
      src/views/periodicTesting/components/viewDialog.vue
  9. 163
      src/views/periodicTesting/projectCycle.vue
  10. 30
      src/views/periodicTesting/testProject.vue
  11. 373
      src/views/periodicTesting/testTask.vue

@ -18,8 +18,10 @@
<link rel='stylesheet' href='/iconfont/common/iconfont.css'>
<link rel='stylesheet' href='/css/loading.css'>
<link rel='stylesheet' href='/css/saber.css'>
<!-- 导入需要的包 (一定要放到index.html中的head标签里) -->
<script src="/js/Sortable.min.js"></script>
<script src="https://cdn.staticfile.org/xlsx/0.18.2/xlsx.full.min.js"></script>
<title>电镀智能化生产管理系统</title>
</head>

@ -1,5 +1,14 @@
import request from '@/axios';
// 获取试验项目列表
export const getProjectList = (params) => {
return request({
url: '/blade-desk/QA/CycleTestItem/listForSelect',
method: 'get',
params
});
};
// 获取列表数据 bsCraftAbility/queryAllCa
export const getList = (current, size, params) => {
return request({
@ -53,4 +62,49 @@ export const remove = ids => {
});
};
// 获取镀种列表
export const getPlateList = () => {
return request({
url:"/blade-desk/bsPlating/listForSelect",
method:'get',
})
}
// 根据角色ID获取工艺员列表
export const getUserList = (ids) =>{
return request({
url:'/blade-system/user/list-all-by-role-ids',
method:'get',
params:{
ids
}
})
}
// 手动下发试验任务
export const issueTask = (params) =>{
return request({
url:"/blade-desk/QA/CycleTestTask/generate-manual",
method:"post",
params
})
}
// 获取试验件列表
export const getPieceList = () =>{
return request({
url:'/blade-system/dict/dictionary?code=testPiece',
method:'get'
})
}
// 批量设置工艺员
export const setUser = (params) =>{
return request({
url:'/blade-desk/QA/CycleTest/update-process-user-bat',
method:'post',
params
})
}

@ -53,4 +53,12 @@ export const remove = ids => {
});
};
// 获取下拉标准列表
export const getStandardList = () =>{
return request({
url:'/blade-desk/QA/CycleTestStandard/listForSelect',
method:'get'
})
}

@ -34,7 +34,7 @@ export const update = (data) => {
// 详情
export const getDetail = id => {
return request({
url: '/blade-desk/QA/CycleTest/detail',
url: '/blade-desk/QA/CycleTestTask/detail',
method: 'get',
params: {
id,
@ -53,4 +53,40 @@ export const remove = ids => {
});
};
// 下发
export const issueTask = (params) =>{
return request({
url:'/blade-desk/QA/CycleTestTask/issue-one',
method:'post',
params
})
}
// 批量下发
export const issueAllTask = (params) =>{
return request({
url:'/blade-desk/QA/CycleTestTask/issue-bat',
method:'post',
params
})
}
// 任务接收
export const acceptTask = (params) =>{
return request({
url:'/blade-desk/QA/CycleTestTask/accept',
method:'post',
params
})
}
// 任务填报
export const writeTask = (params) =>{
return request({
url:'/blade-desk/QA/CycleTestTask/fill',
method:'post',
params
})
}

@ -0,0 +1,99 @@
<template>
<el-dialog :title="title" append-to-body :modelValue="importBox" width="555px" @close="closeDialog">
<avue-form :option="importOption" v-model="importForm" :upload-after="uploadAfter">
<template #excelTemplate>
<el-button type="primary" @click="handleTemplate">
点击下载<i class="el-icon-download el-icon--right"></i>
</el-button>
</template>
</avue-form>
</el-dialog>
</template>
<script>
import { exportBlob } from '@/api/common';
import website from '@/config/website';
import { getToken } from '@/utils/auth';
import { downloadXls } from '@/utils/util';
export default {
props: {
title:{
type:String,
default:'导入'
},
isShow:{
type:Boolean,
default:false
},
templateUrl:{
type:String,
default:''
},
templateName:{
type:String,
default:'模板'
},
importUrl:{
type:String,
default:''
}
},
data(){
return{
importBox:false,
importForm:{},
importOption:{
submitBtn: false,
emptyBtn: false,
column: [
{
label: '模板上传',
prop: 'excelFile',
type: 'upload',
drag: true,
loadText: '模板上传中,请稍等',
span: 24,
propsHttp: {
res: 'data',
},
tip: '请上传 .xls,.xlsx 标准格式文件',
action: this.importUrl,
},
{
label: '模板下载',
prop: 'excelTemplate',
formslot: true,
span: 24,
},
],
}
}
},
mounted(){
console.log('isShowImport=================',this.isShow)
this.importBox = this.isShow
},
methods:{
closeDialog() {
this.importBox = false;
this.$emit('closeDialog');
},
handleTemplate() {
console.log('templateUrl----------',this.templateUrl)
exportBlob(
`${this.templateUrl}?${this.website.tokenHeader}=${getToken()}`
).then(res => {
downloadXls(res.data, this.templateName);
});
},
uploadAfter(res, done, loading, column) {
this.closeDialog()
done();
},
}
}
</script>
<style>
</style>

@ -15,27 +15,27 @@
>
<el-row>
<el-col :span="8">
<el-form-item label="项目名称:" prop="tpProject">
<el-select filterable v-model="projectForm.tpProject" placeholder="请选择项目" @change="tpProjectChange" value-key="id">
<el-form-item label="项目名称:" prop="cycleTestItemId">
<el-select filterable v-model="projectForm.cycleTestItemId" placeholder="请选择项目" @change="tpProjectChange" value-key="id">
<el-option v-for="(item,index) in projectOption" :key="index" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="试验条件:" prop="condition">
<el-form-item label="试验条件:" prop="cycleTestItemCondition">
<el-input
disabled
v-model="projectForm.condition"
v-model="projectForm.cycleTestItemCondition"
placeholder="请输入试验条件"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="试验标准:" prop="standard">
<el-form-item label="试验标准:" prop="cycleTestItemStandard">
<el-input
disabled
v-model="projectForm.standard"
v-model="projectForm.cycleTestItemStandard"
placeholder="请输入试验标准"
></el-input>
</el-form-item>
@ -44,17 +44,14 @@
<el-col :span="8">
<el-form-item label="镀种:" prop="plateId">
<el-select v-model="projectForm.plateId">
<el-option label="镀种一" value="1"></el-option>
<el-option label="镀种二" value="2"></el-option>
<el-option label="镀种三" value="3"></el-option>
<el-option v-for="item in plateData" :key="item.id" :label="item.plate" :value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="试验件:" prop="testMaterialId">
<el-select v-model="projectForm.testMaterialId" placeholder="请选择试验件">
<el-option label="零件" :value="1"></el-option>
<el-option label="试片" :value="0"></el-option>
<el-form-item label="试验件:" prop="testType">
<el-select v-model="projectForm.testType" placeholder="请选择试验件">
<el-option v-for="item in pieceList" :key="item.id" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select>
</el-form-item>
</el-col>
@ -62,8 +59,7 @@
<el-col :span="8">
<el-form-item label="工艺员:" prop="processUserId">
<el-select v-model="projectForm.processUserId" placeholder="请选择工艺员">
<el-option label="张三" :value="1"></el-option>
<el-option label="李四" :value="0"></el-option>
<el-option v-for="item in userData" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
@ -119,14 +115,14 @@
</el-select>
</el-form-item>
<div style="margin-left: 100px" v-show="projectForm.jobType == 1">
<el-checkbox-group v-model="projectForm.jobTypeWeekValue">
<el-checkbox label="周一" value="周一" />
<el-checkbox label="周二" value="周二"></el-checkbox>
<el-checkbox label="周三" value="周三"></el-checkbox>
<el-checkbox label="周四" value="周四"></el-checkbox>
<el-checkbox label="周五" value="周五"></el-checkbox>
<el-checkbox label="周六" value="周六"></el-checkbox>
<el-checkbox label="周日" value="周日"></el-checkbox>
<el-checkbox-group v-model="projectForm.weekList">
<el-checkbox label="周一" value="1" />
<el-checkbox label="周二" value="2"></el-checkbox>
<el-checkbox label="周三" value="3"></el-checkbox>
<el-checkbox label="周四" value="4"></el-checkbox>
<el-checkbox label="周五" value="5"></el-checkbox>
<el-checkbox label="周六" value="6"></el-checkbox>
<el-checkbox label="周日" value="7"></el-checkbox>
</el-checkbox-group>
</div>
<div style="margin-left: 100px" v-show="projectForm.jobType == 2">
@ -154,7 +150,7 @@
</div>
<div>
<el-checkbox
v-model="projectForm.monthChecked"
v-model="projectForm.isPutOff"
label="任务若遇周末或当月无该日期,顺延至下周一"
/>
</div>
@ -188,7 +184,7 @@
</div>
<div>
<el-checkbox
v-model="projectForm.yearChecked"
v-model="projectForm.isPutOff"
label="任务若遇周末或当月无该日期,顺延至下周一"
/>
</div>
@ -200,32 +196,57 @@
<div style="font-weight: 550; margin-bottom: 20px">检测信息</div>
<el-row :gutter="20" style="padding: 5px 0">
<el-col :span="6"
>镀种{{
projectForm.plateId == '1' ? '镀种一' : projectForm.plateId == '2' ? '镀种二' : '镀种三'
}}</el-col
>镀种{{projectForm.plateName}}</el-col
>
<el-col :span="6">试验件{{ projectForm.testMaterialId }}</el-col>
<el-col :span="6"><span>试验项目</span></el-col>
<el-col :span="6">试验件{{ projectForm.testTypeName }}</el-col>
<el-col :span="6"><span>试验项目{{projectForm.cycleTestItemName}}</span></el-col>
<el-col :span="6"
>试验标准<span style="color: #1890ff">{{ projectForm.standard }}</span></el-col
>试验标准<span style="color: #1890ff">{{ projectForm.cycleTestItemStandard }}</span></el-col
>
</el-row>
<el-row :gutter="20" style="padding: 5px 0">
<el-col :span="6">试验条件{{ projectForm.condition }}</el-col>
<el-col :span="6">试验条件{{ projectForm.cycleTestItemCondition }}</el-col>
<el-col :span="6"
>工艺员{{ projectForm.processUserId && projectForm.processUserId.userName }}</el-col
>工艺员{{ projectForm.processUserName }}</el-col
>
<el-col :span="6">提前下发天数{{ projectForm.genBefore }}</el-col>
<el-col :span="6">试验时长{{ projectForm.testDuration }}</el-col>
</el-row>
<el-row :gutter="20" style="padding: 5px 0">
<el-col :span="6">临期提醒天数{{ projectForm.remind }}</el-col>
<el-col :span="6"
>试验周期{{ projectForm.jobTypeTitle
}}{{ projectForm.tags && projectForm.tags.length }}
<div style="margin-left: 60px">
<el-col :span="6">试验周期
<span v-if="projectForm.jobType == 1">每周 {{ projectForm.weekList && projectForm.weekList.length }}</span>
<span v-if="projectForm.jobType == 2">每月 {{ monthTags && monthTags.length }}</span>
<span v-if="projectForm.jobType == 3">每年 {{ yearTags && yearTags.length }}</span>
<div style="margin-left: 60px" v-if="projectForm.jobType == 2">
<el-tag
v-for="tag in projectForm.tags"
v-for="tag in monthTags"
:key="tag"
type="info"
style="width: 86px; margin-right: 5px; margin-top: 10px"
>
{{ tag }}
</el-tag>
</div>
<div style="margin-left: 60px" v-if="projectForm.jobType == 1">
<el-tag
v-for="tag in projectForm.weekList"
:key="tag"
type="info"
style="width: 86px; margin-right: 5px; margin-top: 10px"
>
<span v-if="tag == 1">周一</span>
<span v-if="tag == 2">周二</span>
<span v-if="tag == 3">周三</span>
<span v-if="tag == 4">周四</span>
<span v-if="tag == 5">周五</span>
<span v-if="tag == 6">周六</span>
<span v-if="tag == 7">周日</span>
</el-tag>
</div>
<div style="margin-left: 60px" v-if="projectForm.jobType == 3">
<el-tag
v-for="tag in yearTags"
:key="tag"
type="info"
style="width: 86px; margin-right: 5px; margin-top: 10px"
@ -234,7 +255,7 @@
</el-tag>
</div>
</el-col>
<el-col :span="6">维护人{{ projectForm.updateUser }}</el-col>
<el-col :span="6">维护人{{ projectForm.updateUserName }}</el-col>
<el-col :span="6">更新完成时间{{ projectForm.updateTime }}</el-col>
</el-row>
</div>
@ -247,7 +268,7 @@
</el-dialog>
</template>
<script>
import { getList} from '@/api/qualityManagement/periodicTesting/testProject.js';
import { getProjectList,getDetail,getUserList,getPieceList,getPlateList,add,update} from '@/api/qualityManagement/periodicTesting/projectCycle.js';
export default {
props: {
@ -258,40 +279,97 @@ export default {
title:{
type:String,
default:''
},
row:{
type:Object,
default:{}
}
},
data() {
return {
openShow: false,
projectOption:[],
pieceList:[],
projectForm: {},
projectRules: {
tpProject: [{ required: true, message: '请输入项目名称', trigger: 'blur' }],
testMaterialId: [{ required: true, message: '请选择试验件', trigger: 'blur' }],
cycleTestItemId: [{ required: true, message: '请输入项目名称', trigger: 'blur' }],
testType: [{ required: true, message: '请选择试验件', trigger: 'blur' }],
processUserId: [{ required: true, message: '请选择工艺员', trigger: 'blur' }],
remind: [{ required: true, message: '请选择超期提醒', trigger: 'blur' }],
jobType: [{ required: true, message: '请选择试验周期', trigger: 'blur' }],
},
userData:[],
monthTags:[],
yearTags:[],
plateData:[],
};
},
mounted() {
this.openShow = this.showDialog;
if(this.row && this.row.id){
this.getRowDetail(this.row.id)
}
this.getPieces()
this.getUsers()
this.getProject()
this.getPlates()
},
methods: {
getRowDetail(id){
getDetail(id).then(res =>{
this.projectForm = {
...res.data.data,
isPutOff:res.data.data.isPutOff == 1 ? true : false
}
if(this.projectForm.jobType == 1){
this.projectForm = {
...this.projectForm,
weekList:res.data.data.jobTypeWeekValue.split(','),
}
}else if(this.projectForm.jobType == 2){
this.monthTags = res.data.data.jobTypeMonthValue.split(',').map(str => {
const num = parseInt(str, 10); //
return num + '日';
})
}else if(this.projectForm.jobType == 3){
this.yearTags = res.data.data.jobTypeYearValue.split(',').map(str => {
const month = parseInt(str.substring(0, 2), 10); //
const day = parseInt(str.substring(2, 4), 10); //
return `${month}${day}`;
});
}
})
},
getPlates(){
getPlateList().then(res =>{
this.plateData = res.data.data
})
},
getPieces(){
getPieceList().then(res =>{
this.pieceList = res.data.data
})
},
getUsers(){
getUserList('1993624442365915137').then(res =>{
this.userData = res.data.data
})
},
closeDialog() {
this.openShow = false;
this.$emit('closeDialog');
},
getProject(){
getList(1,999999).then(res=>{
this.projectOption = res.data.data.records
getProjectList().then(res=>{
this.projectOption = res.data.data
})
},
tpProjectChange(val){
let selectedOption = this.projectOption.find(option => option.id === val);
this.projectForm.condition = selectedOption.condition
this.projectForm.standard = selectedOption.standard
this.projectForm.cycleTestItemCondition = selectedOption.condition
this.projectForm.cycleTestItemStandard = selectedOption.standard
},
//
@ -307,7 +385,7 @@ export default {
addMonth() {
let value = this.projectForm.monthValue + '日';
if (this.monthTags.find(item => item == value)) return;
this.monthTags.push(this.projectForm.monthValue + '日');
this.monthTags.push(this.projectForm.monthValue + '日')
},
//
addYears() {
@ -326,7 +404,82 @@ export default {
},
submit(){
this.$refs.form.validate(valid =>{
if(valid){
let monthArr = []
let yearArr = []
if(this.projectForm.jobType == 2){
if(this.monthTags.length == 0){
this.$message.error('请选择日期')
return
}
monthArr = this.monthTags.map(str => {
//
const num = str.match(/\d+/)?.[0] || '0';
//
return num.padStart(2, '0');
});
}
if(this.projectForm.jobType == 1){
if(this.projectForm.weekList.length == 0){
this.$message.error('请选择日期')
return
}
}
if(this.projectForm.jobType == 3){
if(this.yearTags.length == 0){
this.$message.error('请选择日期')
return
}
yearArr = this.yearTags.map(str => {
// 使 + + +
const match = str.match(/(\d+)月(\d+)日/);
if (!match) return '0000'; //
const month = match[1].padStart(2, '0');
const day = match[2].padStart(2, '0');
return month + day;
});
}
let params = {
testType:this.projectForm.testType,
plateId:this.projectForm.plateId,
cycleTestItemId:this.projectForm.cycleTestItemId,
cycleTestItemCondition:this.projectForm.cycleTestItemCondition,
cycleTestItemStandard:this.projectForm.cycleTestItemStandard,
processUserId:this.projectForm.processUserId ? this.projectForm.processUserId : '',
testDuration:this.projectForm.testDuration ? this.projectForm.testDuration : '',
genBefore:this.projectForm.genBefore ? this.projectForm.genBefore : '',
remind:this.projectForm.remind,
jobType:this.projectForm.jobType,
jobTypeWeekValue:this.projectForm.jobType == 1 ? this.projectForm.weekList.join(',') : '',
jobTypeMonthValue:this.projectForm.jobType == 2 ? monthArr.join(',') : '',
jobTypeYearValue:this.projectForm.jobType == 3 ? yearArr.join(',') : '',
isPutOff:this.projectForm.isPutOff ? 1 : 0
}
console.log('params==============',params)
console.log('title--------------',this.title)
if(this.title == '新增'){
add(params).then(res =>{
if(res.data.code == 200){
this.$message.success('新增成功')
this.closeDialog()
}
})
}else{
params.id = this.projectForm.id
update(params).then(res =>{
if(res.data.code == 200){
this.$message.success('编辑成功')
this.closeDialog()
}
})
}
}
})
},
},
};

@ -13,34 +13,34 @@
<el-form-item label="试验条件:" prop="condition">
<el-input v-model="ruleForm.condition" :disabled="disabled"></el-input>
</el-form-item>
<el-form-item label="试验标准:" prop="standard">
<el-radio-group v-model="ruleForm.standard" :disabled="disabled">
<el-form-item label="试验标准:" prop="standardValue">
<el-radio-group v-model="ruleForm.standardValue" :disabled="disabled" @change="changeStand">
<el-radio :label="3">已有标准</el-radio>
<el-radio :label="6">上传新标准</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="" prop="" v-if="ruleForm.standard == 3">
<el-select v-model="value" placeholder="请选择" :disabled="disabled">
<el-form-item label="" prop="" v-if="ruleForm.standardValue == 3">
<el-select v-model="ruleForm.cycleTestStandardId" placeholder="请选择" :disabled="disabled">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" prop="" v-if="ruleForm.standard == 6">
<el-input v-model="ruleForm.condition" placeholder="请输入标准名称" :disabled="disabled"></el-input>
<el-form-item label="" prop="" v-if="ruleForm.standardValue == 6">
<el-input v-model="ruleForm.cycleTestStandardName" placeholder="请输入标准名称" :disabled="disabled"></el-input>
</el-form-item>
<el-form-item label="" prop="" v-if="ruleForm.standard == 6">
<el-form-item label="" prop="" v-if="ruleForm.standardValue == 6">
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
action="/api/blade-resource/oss/endpoint/put-file-attach"
:on-remove="handleRemove"
:before-remove="beforeRemove"
:on-success="handleSuccess"
multiple
accept=".pdf,.doc,.docx"
:limit="1"
:on-exceed="handleExceed"
:file-list="fileList"
@ -61,7 +61,7 @@
</el-dialog>
</template>
<script>
import { add, getDetail, update } from '@/api/qualityManagement/periodicTesting/testProject.js';
import { add, getDetail, update,getStandardList } from '@/api/qualityManagement/periodicTesting/testProject.js';
export default {
props: {
showDialog: {
@ -79,40 +79,20 @@ export default {
},
data() {
return {
disabled:false,
disabled:false,
openShow: false,
ruleForm: {},
rules: {
name: [{ required: true, message: '请输入', trigger: 'blur' }],
condition: [{ required: true, message: '请输入', trigger: 'blur' }],
},
options: [
{
value: '选项1',
label: '黄金糕',
},
{
value: '选项2',
label: '双皮奶',
},
{
value: '选项3',
label: '蚵仔煎',
},
{
value: '选项4',
label: '龙须面',
},
{
value: '选项5',
label: '北京烤鸭',
},
],
fileList:[],
options: [],
};
},
mounted() {
this.openShow = this.showDialog;
this.getStandards()
if (this.title == '详情') {
this.disabled=true
this.getDetails(this.projectId);
@ -122,20 +102,51 @@ export default {
}
},
methods: {
getStandards(){
getStandardList().then(res =>{
this.options = res.data.data
})
},
changeStand(val){
console.log('val----------',val)
if(val == 6){
this.ruleForm.cycleTestStandardName = ''
this.fileList = []
}
},
getDetails(id) {
getDetail(id).then(res => {
this.ruleForm = res.data.data;
this.ruleForm.standardValue = 3
});
},
closeDialog() {
this.openShow = false;
this.$emit('closeDialog');
},
handleSuccess(response, file, fileList){
this.ruleForm.attachId = response.data.attachId
this.fileList.push(response.data)
},
handleRemove(file, fileList){
this.fileList = []
},
handleExceed(files, fileList){
this.$message.error('标准文件只能上传一份')
},
submit() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
if (this.title == '编辑') {
update(this.ruleForm).then(res => {
let params = {
id:this.ruleForm.id,
name:this.ruleForm.name,
condition:this.ruleForm.condition,
cycleTestStandardId:this.ruleForm.standardValue == 3 ? this.ruleForm.cycleTestStandardId ? this.ruleForm.cycleTestStandardId : null : null,
standardAttachId:this.ruleForm.standardValue == 6 ? this.fileList.length != 0 ? this.fileList.map(item => item.attachId).join(',') : '' : '',
cycleTestStandardName:this.ruleForm.standardValue == 6 ? this.ruleForm.cycleTestStandardName : ''
}
update(params).then(res => {
//
this.$message({
type: 'success',
@ -146,7 +157,14 @@ export default {
});
}
if (this.title == '新增') {
add(this.ruleForm).then(
let params = {
name:this.ruleForm.name,
condition:this.ruleForm.condition,
cycleTestStandardId:this.ruleForm.standardValue == 3 ? this.ruleForm.cycleTestStandardId ? this.ruleForm.cycleTestStandardId : null : null,
standardAttachId:this.ruleForm.standardValue == 6 ? this.fileList.length != 0 ? this.fileList.map(item => item.attachId).join(',') : '' : '',
cycleTestStandardName:this.ruleForm.standardValue == 6 ? this.ruleForm.cycleTestStandardName : ''
}
add(params).then(
res => {
//
this.$message({

@ -5,44 +5,44 @@
<div class="info_box">
<el-row class="item_item" :gutter="20">
<el-col :span="6">
<span>任务编号</span><span>{{detailForm.trNum}}</span>
<span>任务编号</span><span>{{detailForm.code}}</span>
</el-col>
<el-col :span="6">
<span>试验项目</span><span>{{detailForm.textProject.tpProject}}</span>
<span>试验项目</span><span>{{detailForm.cycleTestItemName}}</span>
</el-col>
<el-col :span="6">
<span>试验件</span><span>{{detailForm.testPieceTitle}}</span>
<span>试验件</span><span>{{detailForm.testTypeName}}</span>
</el-col>
<el-col :span="6">
<span>试验标准</span><span style="color: #1890ff;">{{detailForm.textProject.tpStandard}}</span>
<span>试验标准</span><span style="color: #1890ff;">{{detailForm.cycleTestItemStandard}}</span>
</el-col>
</el-row>
<el-row class="item_item" :gutter="20">
<el-col :span="6">
<span>试验条件</span><span>{{detailForm.textProject.tpCondition}}</span>
<span>试验条件</span><span>{{detailForm.cycleTestItemCondition}}</span>
</el-col>
<el-col :span="6">
<span>工艺员</span><span>{{detailForm.craftMan.userName}}</span>
<span>工艺员</span><span>{{detailForm.processUserName}}</span>
</el-col>
<!-- <el-col :span="6">
<span>试验员</span><span>{{detailForm.mecMan.userName}}</span>
</el-col> -->
<el-col :span="6">
<span>任务状态</span><span>{{detailForm.trStatusName}}</span>
<span>任务状态</span><span>{{detailForm.statusName}}</span>
</el-col>
<el-col :span="6">
<span>任务生成时间</span><span>{{detailForm.createTime}}</span>
<span>任务生成时间</span><span>{{detailForm.genDatetime}}</span>
</el-col>
</el-row>
<el-row class="item_item" :gutter="20">
<el-col :span="6">
<span>任务下发时间</span><span>{{detailForm.issueTime}}</span>
<span>任务下发时间</span><span>{{detailForm.issueDate}}</span>
</el-col>
<el-col :span="6">
<span>任务接收时间</span><span>{{detailForm.receiveTime}}</span>
<span>任务接收时间</span><span>{{detailForm.acceptDate}}</span>
</el-col>
<el-col :span="6">
<span>任务完成时间</span><span>{{detailForm.finishTime}}</span>
<span>任务完成时间</span><span>{{detailForm.finishDate}}</span>
</el-col>
</el-row>
</div>
@ -50,13 +50,13 @@
<div class="info_box">
<el-row class="item_item" :gutter="20">
<el-col :span="6">
<span>试验结果</span><span style="color: #1890FF;cursor: pointer;">{{detailForm.testFile.fileName}}</span>
<span>试验结果</span><span style="color: #1890FF;cursor: pointer;">{{detailForm.testDate}}</span>
</el-col>
<el-col :span="6">
<span>试验时间</span><span>{{detailForm.testTime}}</span>
<span>试验时间</span><span>{{detailForm.testDate}}</span>
</el-col>
</el-row>
<el-row class="item_item" :gutter="20" v-show="detailForm.isTest == 0">
<el-row class="item_item" :gutter="20" v-show="detailForm.isDone == 0">
<el-col :span="6">
<span>未试验原因</span><span>{{detailForm.meterNum}}</span>
</el-col>
@ -73,6 +73,7 @@
</template>
<script>
import {getDetail} from '@/api/qualityManagement/periodicTesting/testTask'
export default {
props:{
showDialog: {
@ -160,7 +161,9 @@ export default {
methods:{
//
getDetail(){
this.detailForm = this.rowObj
getDetail(this.rowId).then(res =>{
this.detailForm = res.data.data
})
},
closeDialog(){
this.$emit('closeDialog');

@ -10,12 +10,19 @@
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@row-del="rowDel"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
>
<template #testType="{row}">
<span>{{row.testType == 0 ? '零件' : '试片'}}</span>
</template>
<template #jobType="{row}">
<span v-if="row.jobType == 1">{{row.jobTypeWeekValue.split(',').length}}/</span>
<span v-if="row.jobType == 2">{{row.jobTypeMonthValue.split(',').length}}/</span>
<span v-if="row.jobType == 3">{{row.jobTypeYearValue.split(',').length}}/</span>
</template>
<template #menu-left>
<el-button @click="handleAdd" type="primary">新增</el-button>
<el-button type="danger" @click="handleDeletes"> </el-button>
@ -31,28 +38,34 @@
<el-button type="text" @click="handleDelete(scope.row, 'add')">删除</el-button>
<el-button type="text" @click="handleIssue(scope.row, 'add')">下发</el-button>
</template>
<template #craftMan="{ row }">
{{ row.craftMan.userName }}
</template>
<template #mecMan="{ row }">
{{ row.mecMan.userName }}
</template>
</avue-crud>
<!-- 新增 编辑 详情 -->
<addProjectCycleDialog :title="title" v-if="showDialog" :showDialog="showDialog" @closeDialog="closeDialog"></addProjectCycleDialog>
<addProjectCycleDialog :title="title" v-if="showDialog" :showDialog="showDialog" @closeDialog="closeDialog"
:row="projectForm"></addProjectCycleDialog>
<!-- 人员设置 -->
<el-dialog append-to-body :title="title1" v-model="issueDialog" width="550px">
<el-form ref="issueForm" :model="issueForm" label-width="80px" :rules="formRules">
<el-form-item label="工艺员" prop="userId">
<el-select v-model="issueForm.userId">
<el-form-item label="工艺员" prop="processUserId">
<el-select v-model="issueForm.processUserId">
<el-option
v-for="item in userData"
:key="item.userId"
:label="item.userName"
:value="item.userId"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="下发时间" prop="oneTimeGenDate" v-if="title1 == '任务下发'">
<el-date-picker
v-model="issueForm.oneTimeGenDate"
style="width:100%"
type="date"
:clearable="false"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
placeholder="请选择下发时间"
/>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
@ -65,8 +78,9 @@
</template>
<script>
import { getList, remove } from '@/api/qualityManagement/periodicTesting/projectCycle.js';
import { getList, remove,issueTask,getUserList,setUser } from '@/api/qualityManagement/periodicTesting/projectCycle.js';
import addProjectCycleDialog from './components/addProjectCycleDialog.vue'
import {dateFormat} from '@/utils/date'
export default {
components:{
addProjectCycleDialog
@ -93,44 +107,10 @@ export default {
issueDialog: false,
issueForm: {},
formRules: {
userId: [{ required: true, message: '请选择工艺员', trigger: 'blur' }],
processUserId: [{ required: true, message: '请选择工艺员', trigger: 'blur' }],
},
title1: '任务下发',
userData: [
{
jobName: '软件工程师',
deptName: 'MES开发部',
ldapName: null,
userSex: 1,
deptId: 1,
mobile: null,
userName: '测试',
userId: 521,
userCode: '0001',
},
{
jobName: null,
deptName: 'MES开发部',
ldapName: 'jinna',
userSex: 2,
deptId: 1,
mobile: null,
userName: '靳娜',
userId: 21,
userCode: 'jinna',
},
{
jobName: null,
deptName: 'MES开发部',
ldapName: 'zd001',
userSex: 1,
deptId: 1,
mobile: null,
userName: '张迪',
userId: 601,
userCode: 'zd001',
},
],
userData: [],
selectionList: [],
title: '新增',
showDialog: false,
@ -178,7 +158,7 @@ export default {
column: [
{
label: '镀种',
prop: 'duzhong',
prop: 'plateName',
search: false,
sortable: true,
filter: true,
@ -186,7 +166,7 @@ export default {
},
{
label: '试验件',
prop: 'testPieceTitle',
prop: 'testType',
search: false,
sortable: true,
filter: true,
@ -194,8 +174,23 @@ export default {
},
{
label: '试验项目',
prop: 'name',
prop: 'cycleTestItemId',
search: true,
hide:true,
type: 'select',
sortable: true,
filter: true,
width: 200,
dicUrl:'/api/blade-desk/QA/CycleTestItem/listForSelect',
props: { label: 'name', value: 'id' },
dicFormatter: (res) => {
return res.data
},
},
{
label: '试验项目',
prop: 'cycleTestItemName',
search: false,
type: 'select',
sortable: true,
filter: true,
@ -203,7 +198,7 @@ export default {
},
{
label: '试验条件',
prop: 'tpCondition',
prop: 'cycleTestItemCondition',
search: false,
sortable: true,
filter: true,
@ -211,7 +206,7 @@ export default {
},
{
label: '试验标准',
prop: 'tpStandard',
prop: 'cycleTestItemStandard',
search: false,
sortable: true,
width: 200,
@ -219,7 +214,7 @@ export default {
{
label: '工艺员',
prop: 'craftMan',
prop: 'processUserName',
search: false,
sortable: true,
filter: true,
@ -227,7 +222,7 @@ export default {
},
{
label: '试验周期',
prop: 'textCycle1',
prop: 'jobType',
search: false,
sortable: true,
filter: true,
@ -261,10 +256,19 @@ export default {
},
};
},
mounted() {},
mounted() {
this.getUsers()
},
methods: {
//
getUsers(){
getUserList('1993624442365915137').then(res =>{
this.userData = res.data.data
})
},
closeDialog(){
this.showDialog = false;
this.onLoad(this.page)
},
//
handleView(row) {
@ -288,6 +292,10 @@ export default {
//
handleIssue(row) {
this.title1 = '任务下发';
let date = dateFormat(new Date(),'yyyy-MM-dd')
this.issueForm = {}
this.issueForm.cycleTestId = row.id
this.issueForm.oneTimeGenDate = date
this.issueDialog = true;
},
//
@ -299,7 +307,14 @@ export default {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {});
}).then(() => {
remove(this.selectionList.map(item => item.id).join(',')).then(res =>{
if(res.data.code == 200){
this.$message.success('删除成功')
this.onLoad(this.page)
}
})
});
}
},
//
@ -311,6 +326,7 @@ export default {
} else {
this.title1 = '人员设置';
this.issueDialog = true;
this.issueForm = {}
}
},
//
@ -319,7 +335,14 @@ export default {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {});
}).then(() => {
remove(row.id).then(res =>{
if(res.data.code == 200){
this.$message.success('删除成功')
this.onLoad(this.page)
}
})
});
},
//
handleAdd() {
@ -372,6 +395,24 @@ export default {
submitIssue() {
this.$refs.issueForm.validate(valid => {
if (valid) {
if(this.title1 == '任务下发'){
console.log('issueForm-------------',this.issueForm)
issueTask(this.issueForm).then(res =>{
console.log('res---------------',res)
this.$message.success('下发成功')
this.onLoad(this.page)
})
}else{
setUser({
ids:this.selectionList.map(item => item.id).join(','),
processUserId:this.issueForm.processUserId
}).then(res =>{
if(res.data.code == 200){
this.$message.success('设置成功')
this.onLoad(this.page)
}
})
}
this.issueDialog = false;
}
});
@ -406,7 +447,7 @@ export default {
this.data = res.data.data.records;
this.loading = false;
this.page.total = this.data.length;
this.page.total = res.data.data.total
// this.selectionClear();
});
},

@ -28,11 +28,8 @@
<el-button type="text" @click="handleEdit(scope.row)">编辑</el-button>
<el-button type="text" @click="handleDel(scope.row)">删除</el-button>
</template>
<template #craftMan="{ row }">
{{ row.craftMan.userName }}
</template>
<template #mecMan="{ row }">
{{ row.mecMan.userName }}
<template #originalName="{ row }">
<a style="color:#284c89" :href="row.link" :download="row.originalName">{{row.originalName}}</a>
</template>
</avue-crud>
@ -44,6 +41,13 @@
:title="title"
:projectId="projectId"
></addTestProjectDialog>
<!-- 导入 -->
<basic-import v-if="isShowImport" title="导入" :isShow="isShowImport"
templateUrl="/blade-desk/QA/CycleTestItem/download-excel-template"
templateName="试验项目模板.xlsx"
importUrl="/blade-desk/QA/CycleTestItem/import-excel"
@closeDialog="closeDialog"></basic-import>
</basic-container>
</template>
@ -52,9 +56,11 @@ import addTestProjectDialog from './components/addTestProjectDialog.vue';
import { getList, remove} from '@/api/qualityManagement/periodicTesting/testProject.js';
import basicImport from '@/components/basic-import/main.vue'
export default {
components: {
addTestProjectDialog,
basicImport
},
data() {
return {
@ -77,7 +83,7 @@ export default {
total: 0,
},
selectionList: [],
isShowImport:false,
monthTags: [],
yearTags: [],
option: {
@ -133,15 +139,14 @@ export default {
},
{
label: '试验标准',
prop: 'standard',
prop: 'cycleTestStandardName',
search: false,
sortable: true,
},
{
label: '试验文件',
prop: 'tpFile',
prop: 'originalName',
search: false,
type: 'upload',
sortable: true,
},
],
@ -154,6 +159,7 @@ export default {
methods: {
closeDialog() {
this.addOpen = false;
this.isShowImport = false
this.refreshChange()
},
//
@ -207,7 +213,9 @@ export default {
}
},
//
handleImport() {},
handleImport() {
this.isShowImport = true
},
//
rowDel(row) {
@ -252,7 +260,7 @@ export default {
this.data = res.data.data.records;
this.loading = false;
this.page.total = this.data.length;
this.page.total = res.data.data.total
// this.selectionClear();
});
},

@ -27,67 +27,50 @@
</template>
<template #menu="scope">
<el-button type="text" @click="handleView(scope.row, 'view')">详情</el-button>
<el-button type="text" @click="issueRow(scope.row, 'add')" v-show="scope.row.trStatus == 1">
<el-button type="text" @click="issueRow(scope.row, 'add')" v-show="scope.row.status == 1">
下发
</el-button>
<el-button
type="text"
v-show="scope.row.trStatus == 3 || scope.row.trStatus == 4"
v-show="scope.row.status == 3"
@click="handleWrite(scope.row, 'drug')"
>填报</el-button
>
<el-button
type="text"
v-show="scope.row.trStatus == 2"
v-show="scope.row.status == 2"
@click="handleReceive(scope.row, 'check')"
>接收</el-button
>
<!-- <el-button type="text" v-show="scope.row.trStatus == 5" @click="handleReport(scope.row,'check')">报告</el-button> -->
</template>
<template #tpId="{ row }">
{{ row.textProject.tpProject }}
</template>
<template #tpCondition="{ row }">
{{ row.textProject.tpCondition }}
</template>
<template #tpStandard="{ row }">
{{ row.textProject.tpStandard }}
</template>
<template #craftMan="{ row }">
{{ row.craftMan.userName }}
</template>
<template #mecMan="{ row }">
{{ row.mecMan.userName }}
</template>
<template #expirationDays="{ row }">
<template #countDayToPlanedFinish="{ row }">
<div
:style="{
width: '100%',
height: '49px',
lineHeight: '49px',
background:
row.expirationDays === 0
row.countDayToPlanedFinish === 0
? '#ff0000'
: row.expirationDays >= 7
: row.countDayToPlanedFinish >= 7
? '#fffd00'
: row.expirationDays > 0 && row.expirationDays <= 3
: row.countDayToPlanedFinish > 0 && row.countDayToPlanedFinish <= 3
? '#ffad00'
: '#fff',
}"
>
{{ row.expirationDays }}
{{ row.countDayToPlanedFinish }}
</div>
</template>
</avue-crud>
<el-dialog append-to-body title="任务下发" v-model="issueDialog" width="550px">
<el-form ref="issueForm" :model="issueForm" label-width="80px" :rules="formRules">
<el-form-item label="工艺员" prop="userId">
<el-select v-model="issueForm.userId">
<el-form-item label="工艺员" prop="processUserId">
<el-select v-model="issueForm.processUserId">
<el-option
v-for="item in userData"
:key="item.userId"
:label="item.userName"
:value="item.userId"
:key="item.id" :label="item.name" :value="item.id"
></el-option>
</el-select>
</el-form-item>
@ -101,26 +84,27 @@
</el-dialog>
<el-dialog append-to-body title="试验填报" v-model="writeDialog" width="550px">
<el-form ref="writeForm" :model="writeForm" label-width="120" :rules="writeRules">
<el-form-item label="是否进行试验" prop="isTest">
<el-radio-group v-model="writeForm.isTest">
<el-form-item label="是否进行试验" prop="isDone">
<el-radio-group v-model="writeForm.isDone">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
<el-radio :label="2"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="试验时间" prop="testTime">
<el-date-picker v-model="writeForm.testTime" type="date" placeholder="请选择试验时间">
<el-form-item label="试验时间" prop="testDate" v-if="writeForm.isDone == 1">
<el-date-picker v-model="writeForm.testDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="date" placeholder="请选择试验时间">
</el-date-picker>
</el-form-item>
<el-form-item label="试验结果" prop="testResult">
<el-form-item label="试验结果" prop="testResult" v-if="writeForm.isDone == 1">
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
action="/api/blade-resource/oss/endpoint/put-file-attach"
:on-success="handleSuccess"
:on-remove="handleRemove"
multiple
:limit="3"
:limit="1"
:on-exceed="handleExceed"
:file-list="fileList"
accept=".rar,.zip,.doc,.docx,.pdf,.jpg"
>
<div>
<el-button type="primary">点击上传</el-button>
@ -130,6 +114,9 @@
</div>
</el-upload>
</el-form-item>
<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>
<template #footer>
<span class="dialog-footer">
@ -150,15 +137,15 @@
<script>
import viewDialog from './components/viewDialog.vue';
import { getList, remove } from '@/api/qualityManagement/periodicTesting/projectCycle.js';
import { getList, remove,issueTask,acceptTask,issueAllTask,writeTask } from '@/api/qualityManagement/periodicTesting/testTask.js';
import { getUserList} from '@/api/qualityManagement/periodicTesting/projectCycle.js';
export default {
components: {
viewDialog,
},
data() {
var checkFile = (rule, value, callback) => {
console.log('form----------------', this.writeForm);
console.log('form----------------', this.fileList);
if (this.fileList.length == 0) {
return callback(new Error('请上传文件'));
} else {
@ -174,55 +161,22 @@ export default {
},
viewDialog: false,
fileList: [],
writeForm: {},
writeRules: {
isTest: [{ required: true, message: '请选择是否进行试验', trigger: 'blur' }],
testTime: [{ required: true, message: '请选择试验时间', trigger: 'blur' }],
testResult: [{ validator: checkFile, trigger: 'blur' }],
writeForm: {
},
// writeRules: {
// isDone: [{ required: true, message: '', trigger: 'blur' }],
// testDate: [{ required: true, message: '', trigger: 'blur' }],
// testResult: [{ validator: checkFile, trigger: 'blur' }],
// },
showDialog: false,
rowId: '',
rowObj: {},
issueDialog: false,
form: {},
formRules: {
userId: [{ required: true, message: '请选择检测员', trigger: 'blur' }],
processUserId: [{ required: true, message: '请选择工艺员', trigger: 'blur' }],
},
userData: [
{
jobName: '软件工程师',
deptName: 'MES开发部',
ldapName: null,
userSex: 1,
deptId: 1,
mobile: null,
userName: '测试',
userId: 521,
userCode: '0001',
},
{
jobName: null,
deptName: 'MES开发部',
ldapName: 'jinna',
userSex: 2,
deptId: 1,
mobile: null,
userName: '靳娜',
userId: 21,
userCode: 'jinna',
},
{
jobName: null,
deptName: 'MES开发部',
ldapName: 'zd001',
userSex: 1,
deptId: 1,
mobile: null,
userName: '张迪',
userId: 601,
userCode: 'zd001',
},
],
userData: [],
writeDialog: false,
query: {},
loading: true,
@ -268,9 +222,23 @@ export default {
gridBtn: false,
searchMenuPosition: 'right',
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: 'trNum',
prop: 'code',
search: false,
sortable: true,
filter: true,
@ -289,44 +257,68 @@ export default {
},
{
label: '试验项目',
prop: 'tpId',
sortable: true,
prop: 'cycleTestItemId',
search: true,
hide:true,
type: 'select',
sortable: true,
filter: true,
span: 24,
width: 200,
search: true,
rules: [
{
required: true,
message: '请输入试验项目',
trigger: 'blur',
},
],
props: {
label: 'tpProject',
value: 'tpId',
dicUrl:'/api/blade-desk/QA/CycleTestItem/listForSelect',
props: { label: 'name', value: 'id' },
dicFormatter: (res) => {
return res.data
},
dicData: [
{
deleted: false,
keyValue: 1,
tpCondition: '96小时',
tpId: 1,
tpProject: '盐雾试验',
},
{
deleted: false,
keyValue: 21,
tpCondition: '68小时',
tpId: 21,
tpProject: '盐雾试验1',
},
],
},
{
label: '试验项目',
prop: 'cycleTestItemName',
search: false,
type: 'select',
sortable: true,
filter: true,
width: 200,
},
// {
// label: '',
// prop: 'tpId',
// sortable: true,
// type: 'select',
// filter: true,
// span: 24,
// width: 200,
// search: true,
// rules: [
// {
// required: true,
// message: '',
// trigger: 'blur',
// },
// ],
// props: {
// label: 'tpProject',
// value: 'tpId',
// },
// dicData: [
// {
// deleted: false,
// keyValue: 1,
// tpCondition: '96',
// tpId: 1,
// tpProject: '',
// },
// {
// deleted: false,
// keyValue: 21,
// tpCondition: '68',
// tpId: 21,
// tpProject: '1',
// },
// ],
// },
{
label: '试验条件',
prop: 'tpCondition',
prop: 'cycleTestItemCondition',
search: false,
sortable: true,
filter: true,
@ -342,7 +334,7 @@ export default {
},
{
label: '试验标准',
prop: 'tpStandard',
prop: 'cycleTestItemStandard',
type: 'textarea',
search: false,
sortable: true,
@ -359,27 +351,22 @@ export default {
},
{
label: '试验件',
prop: 'testPieceTitle',
prop: 'testType',
type: 'select',
search: false,
sortable: true,
filter: true,
span: 24,
width: 200,
dicData: [
{
label: '零件',
value: 1,
},
{
label: '试片',
value: 0,
},
],
dicUrl:'/blade-system/dict/dictionary?code=testPiece',
props: { label: 'dictValue', value: 'dictKey' },
dicFormatter: (res) => {
return res.data
},
},
{
label: '工艺员',
prop: 'craftMan',
prop: 'processUserName',
search: false,
sortable: true,
filter: true,
@ -406,7 +393,7 @@ export default {
// },
{
label: '状态',
prop: 'trStatus',
prop: 'status',
search: true,
type: 'select',
sortable: true,
@ -422,17 +409,22 @@ export default {
trigger: 'blur',
},
],
dicData: [
{ label: '待下发', value: 1 },
{ label: '待接收', value: 2 },
{ label: '待试验', value: 3 },
{ label: '已超期', value: 4 },
{ label: '已完成', value: 5 },
],
dicUrl:'/blade-system/dict/dictionary?code=CycleTestTask-Status',
props: { label: 'dictValue', value: 'dictKey' },
dicFormatter: (res) => {
return res.data
},
// dicData: [
// { label: '', value: 1 },
// { label: '', value: 2 },
// { label: '', value: 3 },
// { label: '', value: 4 },
// { label: '', value: 5 },
// ],
},
{
label: '临期天数',
prop: 'expirationDays',
prop: 'countDayToPlanedFinish',
search: false,
sortable: true,
editDisplay: false,
@ -450,8 +442,7 @@ export default {
},
{
label: '任务生成时间',
prop: 'createTime',
prop: 'genDatetime',
finishTime: '',
search: false,
sortable: true,
@ -470,7 +461,7 @@ export default {
},
{
label: '任务下发时间',
prop: 'issueTime',
prop: 'issueDate',
search: false,
sortable: true,
editDisplay: false,
@ -487,8 +478,8 @@ export default {
],
},
{
label: '任务接时间',
prop: 'receiveTime',
label: '任务接时间',
prop: 'acceptDate',
search: false,
sortable: true,
editDisplay: false,
@ -499,14 +490,14 @@ export default {
rules: [
{
required: true,
message: '请输入任务接时间',
message: '请输入任务接时间',
trigger: 'blur',
},
],
},
{
label: '任务完成时间',
prop: 'finishTime',
prop: 'finishDate',
search: false,
sortable: true,
editDisplay: false,
@ -526,17 +517,51 @@ export default {
},
selectionList: [],
dialogType: '',
issueType:'one'
};
},
mounted() {},
computed: {
writeRules(){
const rules = {
isDone: [{ required: true, message: '请选择是否进行试验', trigger: 'change' }],
testDate:[],
testResult:[]
};
console.log('this.writeForm.isDone-------------',this.writeForm.isDone)
if (this.writeForm.isDone == 1) {
rules.testDate = [{ required: true, message: '请选择试验时间', trigger: 'blur' }];
rules.testResult = [
{ required: true, message: '请上传文件', trigger: 'blur' },
{ validator: this.checkFile, trigger: 'blur' }
];
} else {
rules.testDate = []; //
rules.testResult = []; //
}
return rules;
},
},
mounted() {
this.getUsers()
},
methods: {
getUsers(){
getUserList('1993624442365915137').then(res =>{
this.userData = res.data.data
})
},
//
handleSuccess(response, file, fileList) {
this.fileList = fileList;
this.fileList.push(response.data);
this.writeForm.testResult = this.fileList.map(item => item.attachId).join(',')
},
//
handleRemove(file, fileList) {
this.fileList = fileList;
this.writeForm.testResult = fileList
},
handleExceed(){
this.$message.error('试验结果最多上传一个')
},
//
handleView(row, type) {
@ -561,8 +586,10 @@ export default {
//
handleReport() {},
//
handleWrite() {
this.writeForm = {};
handleWrite(row) {
this.writeForm = {
id:row.id,
};
this.fileList = [];
this.writeDialog = true;
this.$refs.writeForm.resetFields();
@ -572,26 +599,53 @@ export default {
if (this.selectionList.length == 0) {
this.$message.error('请至少选择一条数据');
} else {
this.issueType = 'all'
this.issueDialog = true;
}
},
//
issueRow(row) {
this.issueType = 'one'
this.issueDialog = true;
this.issueForm.id = row.id
this.issueForm.processUserId = row.processUserId
},
//
handleReceive() {
handleReceive(row) {
this.$confirm('确定接收此项任务?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {});
}).then(() => {
acceptTask({id:row.id}).then(res =>{
if(res.data.code == 200){
this.$message.success('接收成功')
this.onLoad(this.page)
}
})
});
},
writeSubmit() {
this.$refs.writeForm.validate(valid => {
console.log('valid=============================', valid);
console.log('fileList=============================', this.fileList);
if (valid) {
this.writeDialog = false;
let params ={
id:this.writeForm.id,
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 : '' : ''
}
console.log('params==============',params)
writeTask(params).then(res =>{
if(res.data.code == 200){
this.$message.success('填报成功')
this.writeDialog = false;
this.writeForm = {}
this.onLoad(this.page)
}
})
}
});
},
@ -616,7 +670,26 @@ export default {
submit() {
this.$refs.issueForm.validate(valid => {
if (valid) {
this.issueDialog = false;
if(this.issueType == 'one'){
issueTask(this.issueForm).then(res =>{
if(res.data.code == 200){
this.$message.success('下发成功')
this.issueDialog = false
this.onLoad(this.page)
}
})
}else{
issueAllTask({
ids:this.selectionList.map(item => item.id).join(','),
processUserId:this.issueForm.processUserId
}).then(res =>{
if(res.data.code == 200){
this.$message.success('下发成功')
this.issueDialog = false
this.onLoad(this.page)
}
})
}
}
});
},
@ -636,7 +709,7 @@ export default {
this.data = res.data.data.records;
this.loading = false;
this.page.total = this.data.length;
this.page.total = res.data.data.total
// this.selectionClear();
});
},

Loading…
Cancel
Save