feat: 完善设计报工研发管理流程
This commit is contained in:
@@ -71,6 +71,11 @@
|
||||
<el-table-column type="selection" width="50" align="center" />
|
||||
<el-table-column align="center" fixed label="RID" prop="RID" width="70" />
|
||||
<el-table-column align="center" fixed label="DID" prop="DID" width="70" />
|
||||
<el-table-column align="center" label="任务状态" prop="单据状态" width="90">
|
||||
<template slot-scope="scope">
|
||||
<el-tag :type="getStatusType(scope.row.单据状态)" size="mini">{{ scope.row.单据状态 }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="校验状态" width="90">
|
||||
<template slot-scope="scope">
|
||||
<el-tag :type="scope.row.已校验 ? 'success' : 'info'" size="mini">{{ scope.row.校验状态 }}</el-tag>
|
||||
@@ -86,6 +91,7 @@
|
||||
<el-table-column align="center" label="开始时间" prop="开始时间" width="150" />
|
||||
<el-table-column align="center" label="结束时间" prop="结束时间" width="150" />
|
||||
<el-table-column align="right" label="工时(h)" prop="工时小时" width="90" />
|
||||
<el-table-column align="left" label="进度说明" prop="进度说明" width="180" show-overflow-tooltip />
|
||||
<el-table-column align="left" label="校验人" prop="校验人" width="110" show-overflow-tooltip />
|
||||
<el-table-column align="center" label="校验时间" prop="校验时间" width="150" />
|
||||
<el-table-column align="left" label="备注" prop="备注" width="180" show-overflow-tooltip />
|
||||
@@ -285,7 +291,7 @@ export default {
|
||||
if (String(result.result) === '1') {
|
||||
this.$message.success(result.message || '校验成功')
|
||||
this.dialogVisible = false
|
||||
this.searchTable()
|
||||
await this.searchTable()
|
||||
} else {
|
||||
this.$message.error(result.message || '校验失败')
|
||||
}
|
||||
@@ -315,7 +321,7 @@ export default {
|
||||
const result = this.getResult(response)
|
||||
if (String(result.result) === '1') {
|
||||
this.$message.success(result.message || '批量校验成功')
|
||||
this.searchTable()
|
||||
await this.searchTable()
|
||||
} else {
|
||||
this.$message.error(result.message || '批量校验失败')
|
||||
}
|
||||
@@ -339,6 +345,12 @@ export default {
|
||||
},
|
||||
formatProjectLabel(item) {
|
||||
return item.项目名称 ? `${item.项目号} | ${item.项目名称}` : item.项目号
|
||||
},
|
||||
getStatusType(status) {
|
||||
if (status === '已完成') return 'success'
|
||||
if (status === '执行中') return 'warning'
|
||||
if (status === '已结束') return 'primary'
|
||||
return 'info'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,6 +98,7 @@
|
||||
<el-table-column align="center" label="开始时间" prop="开始时间" width="150" />
|
||||
<el-table-column align="center" label="结束时间" prop="结束时间" width="150" />
|
||||
<el-table-column align="center" label="校验状态" prop="校验状态" width="90" />
|
||||
<el-table-column align="left" label="进度说明" prop="进度说明" min-width="160" show-overflow-tooltip />
|
||||
<el-table-column align="left" label="备注" prop="备注" min-width="160" show-overflow-tooltip />
|
||||
</el-table>
|
||||
|
||||
|
||||
@@ -113,6 +113,43 @@
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
<el-dialog
|
||||
:visible.sync="endDialogVisible"
|
||||
title="结束报工"
|
||||
width="620px"
|
||||
center
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-form :model="endForm" label-width="100px" size="small">
|
||||
<el-form-item label="DID">
|
||||
<el-input v-model="endForm.DID" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="物料编码">
|
||||
<el-input v-model="endForm.物料编码" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="物料名称">
|
||||
<el-input v-model="endForm.物料名称" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务描述">
|
||||
<el-input v-model="endForm.任务描述" type="textarea" :rows="2" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="进度说明">
|
||||
<el-input
|
||||
v-model="endForm.进度说明"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
placeholder="请输入本次报工进度说明"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer">
|
||||
<el-button @click="endDialogVisible = false">取消</el-button>
|
||||
<el-button type="primary" :loading="actionLoading" @click="confirmEndTask">确认</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -123,10 +160,18 @@ export default {
|
||||
return {
|
||||
loading: false,
|
||||
actionLoading: false,
|
||||
endDialogVisible: false,
|
||||
tableData: [],
|
||||
projectOptions: [],
|
||||
materialOptions: [],
|
||||
parentMaterialOptions: [],
|
||||
endForm: {
|
||||
DID: '',
|
||||
物料编码: '',
|
||||
物料名称: '',
|
||||
任务描述: '',
|
||||
进度说明: ''
|
||||
},
|
||||
searchForm: {
|
||||
did: '',
|
||||
projectNo: '',
|
||||
@@ -241,12 +286,35 @@ export default {
|
||||
['操作人', this.currentUserName()]
|
||||
], '开始成功')
|
||||
},
|
||||
endTask(row) {
|
||||
this.runAction('设计报工_任务_结束', [
|
||||
['DID', row.DID],
|
||||
async endTask(row) {
|
||||
const latest = await this.getLatestTask(row.DID)
|
||||
if (!latest) return
|
||||
Object.assign(row, latest)
|
||||
if (Number(latest.当前用户未结束报工数 || 0) <= 0) {
|
||||
this.$message.warning('当前人员没有未结束的报工记录')
|
||||
this.searchTable()
|
||||
return
|
||||
}
|
||||
this.endForm = {
|
||||
DID: latest.DID,
|
||||
物料编码: latest.物料编码 || '',
|
||||
物料名称: latest.物料名称 || '',
|
||||
任务描述: latest.任务描述 || '',
|
||||
进度说明: ''
|
||||
}
|
||||
this.endDialogVisible = true
|
||||
},
|
||||
async confirmEndTask() {
|
||||
if (!this.endForm.DID) return
|
||||
const success = await this.runAction('设计报工_任务_结束', [
|
||||
['DID', this.endForm.DID],
|
||||
['操作人ID', this.currentUserId()],
|
||||
['操作人', this.currentUserName()]
|
||||
['操作人', this.currentUserName()],
|
||||
['进度说明', this.endForm.进度说明 || '']
|
||||
], '结束成功')
|
||||
if (success) {
|
||||
this.endDialogVisible = false
|
||||
}
|
||||
},
|
||||
async completeTask(row) {
|
||||
const latest = await this.getLatestTask(row.DID)
|
||||
@@ -317,12 +385,15 @@ export default {
|
||||
if (String(result.result) === '1') {
|
||||
this.$message.success(result.message || defaultMessage)
|
||||
this.searchTable()
|
||||
return true
|
||||
} else {
|
||||
this.$message.error(result.message || '操作失败')
|
||||
return false
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`${procedure}失败:`, error)
|
||||
this.$message.error('操作失败')
|
||||
return false
|
||||
} finally {
|
||||
this.actionLoading = false
|
||||
}
|
||||
|
||||
@@ -255,9 +255,9 @@
|
||||
<el-input v-model="formData.研发立项号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="研发目的">
|
||||
<el-input v-model="formData.研发目的" />
|
||||
<el-input v-model="formData.研发目的" type="textarea" :rows="2"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
@@ -340,7 +340,6 @@ export default {
|
||||
},
|
||||
formData: this.getEmptyForm(),
|
||||
rules: {
|
||||
物料编码: [{ required: true, message: '请选择物料编码', trigger: 'change' }],
|
||||
任务描述: [{ required: true, message: '请输入任务描述', trigger: 'blur' }]
|
||||
}
|
||||
}
|
||||
@@ -615,7 +614,7 @@ export default {
|
||||
return item.项目名称 ? `${item.项目号} | ${item.项目名称}` : item.项目号
|
||||
},
|
||||
formatPersonLabel(item) {
|
||||
return item.账号 ? `${item.人员姓名} | ${item.账号}` : item.人员姓名
|
||||
return item.账号 ? `${item.人员姓名}` : item.人员姓名
|
||||
},
|
||||
getResult(response) {
|
||||
const data = response && response.data
|
||||
|
||||
Reference in New Issue
Block a user