fix bug pro_task_in_report
This commit is contained in:
parent
27cc5ac427
commit
071e70f844
@ -75,10 +75,11 @@ public class TaskInReportServiceImpl implements TaskInReportService {
|
|||||||
TaskInReportDO taskInReportDO = taskInReportMapper.selectById(id);
|
TaskInReportDO taskInReportDO = taskInReportMapper.selectById(id);
|
||||||
TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(taskInReportDO.getDispatchDetailId());
|
TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(taskInReportDO.getDispatchDetailId());
|
||||||
if (taskDispatchDetailDO != null) {
|
if (taskDispatchDetailDO != null) {
|
||||||
if (taskDispatchDetailDO.getInReportProcess() != 2) {
|
if (taskDispatchDetailDO.getInReportProcess() == 2) {
|
||||||
throw new RuntimeException("当前报工状态不允许删除");
|
throw new RuntimeException("当前报工状态不允许删除");
|
||||||
} else {
|
} else {
|
||||||
taskDispatchDetailDO.setInReportProcess(0);
|
taskDispatchDetailDO.setInReportProcess(0);
|
||||||
|
taskDispatchDetailMapper.updateById(taskDispatchDetailDO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 删除
|
// 删除
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
<template>
|
<template>
|
||||||
|
|
||||||
|
|
||||||
<Dialog :title="dialogTitle" v-model="dialogVisible">
|
<Dialog :title="dialogTitle" v-model="dialogVisible">
|
||||||
<el-form
|
<el-form
|
||||||
ref="formRef"
|
ref="formRef"
|
||||||
@ -8,7 +6,6 @@
|
|||||||
:rules="formRules"
|
:rules="formRules"
|
||||||
label-width="140px"
|
label-width="140px"
|
||||||
v-loading="formLoading"
|
v-loading="formLoading"
|
||||||
class="custom-table"
|
|
||||||
>
|
>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
@ -24,7 +21,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="密度" prop="density">
|
<el-form-item label="密度(t/m³)" prop="density">
|
||||||
<el-input-number v-model="formData.density" min="0" :precision="2" class="!w-260px"
|
<el-input-number v-model="formData.density" min="0" :precision="2" class="!w-260px"
|
||||||
disabled
|
disabled
|
||||||
/>
|
/>
|
||||||
@ -40,8 +37,8 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="长(直径)(mm)" prop="length">
|
<el-form-item label="长/直径(mm)" prop="length">
|
||||||
<el-input-number v-model="formData.length" min="0.01" :precision="2"
|
<el-input-number v-model="formData.length" min="0" :precision="2"
|
||||||
placeholder="请输入密度"
|
placeholder="请输入密度"
|
||||||
@change="handleChange"
|
@change="handleChange"
|
||||||
class="!w-260px"/>
|
class="!w-260px"/>
|
||||||
@ -49,7 +46,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="高度(mm)" prop="hight">
|
<el-form-item label="高度(mm)" prop="hight">
|
||||||
<el-input-number v-model="formData.hight" min="0.01" :precision="2"
|
<el-input-number v-model="formData.hight" min="0" :precision="2"
|
||||||
placeholder="请输入高度"
|
placeholder="请输入高度"
|
||||||
@change="handleChange"
|
@change="handleChange"
|
||||||
class="!w-260px"/>
|
class="!w-260px"/>
|
||||||
@ -83,7 +80,7 @@
|
|||||||
<!-- 第三行 -->
|
<!-- 第三行 -->
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="重量(Kg)" prop="weight">
|
<el-form-item label="重量(kg)" prop="weight">
|
||||||
<el-input-number v-model="formData.weight" min="0" :precision="2"
|
<el-input-number v-model="formData.weight" min="0" :precision="2"
|
||||||
@change="handleReportPriceChange"
|
@change="handleReportPriceChange"
|
||||||
placeholder="请输入重量" class="!w-260px"/>
|
placeholder="请输入重量" class="!w-260px"/>
|
||||||
@ -126,6 +123,7 @@ import * as TaskInReportApi from '@/api/heli/taskinreport'
|
|||||||
const {t} = useI18n() // 国际化
|
const {t} = useI18n() // 国际化
|
||||||
const message = useMessage() // 消息弹窗
|
const message = useMessage() // 消息弹窗
|
||||||
import {formatAmount} from '@/utils/formatter'
|
import {formatAmount} from '@/utils/formatter'
|
||||||
|
import {ifError} from "assert";
|
||||||
|
|
||||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||||
const dialogTitle = ref('') // 弹窗的标题
|
const dialogTitle = ref('') // 弹窗的标题
|
||||||
@ -152,10 +150,65 @@ const formData = ref({
|
|||||||
formalId: undefined,
|
formalId: undefined,
|
||||||
calFormal: undefined,
|
calFormal: undefined,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
const formRules = reactive({
|
const formRules = reactive({
|
||||||
length: [{required: true, message: '长(直径)不能为空', trigger: 'blur'}],
|
//判断物料类型
|
||||||
hight: [{required: true, message: '高度不能为空', trigger: 'blur'}],
|
|
||||||
weight: [{required: true, message: '重量不能为空', trigger: 'blur'}],
|
widht: [
|
||||||
|
{
|
||||||
|
validator: (rule, value, callback) => {
|
||||||
|
// 只有当物料类型为 '1' 或 '3' 时才进行验证
|
||||||
|
if (formData.value.matType === '1' || formData.value.matType === '3') {
|
||||||
|
if (value <= 0 || value === null || value === undefined) {
|
||||||
|
callback(new Error('宽度不能为0'));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 物料类型为 '2' 时,宽度字段不参与验证(因为被禁用)
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
length: [
|
||||||
|
{required: true, message: '长(直径)不能为空', trigger: 'blur'},
|
||||||
|
{
|
||||||
|
validator: (rule, value, callback) => {
|
||||||
|
if (value <= 0 || value === null || value === undefined) {
|
||||||
|
callback(new Error('长(直径)不能为0'));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}, trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
hight: [
|
||||||
|
{required: true, message: '高度不能为空', trigger: 'blur'},
|
||||||
|
{
|
||||||
|
validator: (rule, value, callback) => {
|
||||||
|
if (value <= 0 || value === null || value === undefined) {
|
||||||
|
callback(new Error('高度不能为0'));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}, trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
weight: [
|
||||||
|
{required: true, message: '重量不能为空', trigger: 'blur'},
|
||||||
|
{
|
||||||
|
validator: (rule, value, callback) => {
|
||||||
|
if (value <= 0 || value === null || value === undefined) {
|
||||||
|
callback(new Error('重量不能为0'));
|
||||||
|
} else {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}, trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
reportPrice: [{required: true, message: '总价不能为空', trigger: 'blur'}],
|
reportPrice: [{required: true, message: '总价不能为空', trigger: 'blur'}],
|
||||||
})
|
})
|
||||||
const formRef = ref() // 表单 Ref
|
const formRef = ref() // 表单 Ref
|
||||||
@ -218,28 +271,18 @@ const handleChange = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleReportPriceChange = () => {
|
const handleReportPriceChange = () => {
|
||||||
|
if (formData.value.weight === 0) {
|
||||||
|
formData.value.reportPrice = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (formData.value.weight) {
|
if (formData.value.weight) {
|
||||||
formData.value.reportPrice = Number((formData.value.weight * formData.value.price).toFixed(2));
|
formData.value.reportPrice = Number((formData.value.weight * formData.value.price).toFixed(2));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const handleDimensionChange = () => {
|
const handleDimensionChange = () => {
|
||||||
const validateNumericValue = (value) => {
|
|
||||||
return typeof value === 'number' && !isNaN(value) && isFinite(value) && value > 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
const calculateWeight = () => {
|
const calculateWeight = () => {
|
||||||
if (!validateNumericValue(formData.value.length) ||
|
|
||||||
!validateNumericValue(formData.value.hight) ||
|
|
||||||
!validateNumericValue(formData.value.density)) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
let totalWeight = 0;
|
let totalWeight = 0;
|
||||||
if (formData.value.matType === "1" || formData.value.matType === "3") {
|
if (formData.value.matType === "1" || formData.value.matType === "3") {
|
||||||
if (!validateNumericValue(formData.value.widht)) {
|
|
||||||
message.error('宽度不能为0');
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
totalWeight = Number(
|
totalWeight = Number(
|
||||||
(formData.value.length * formData.value.widht * formData.value.hight * formData.value.density) /
|
(formData.value.length * formData.value.widht * formData.value.hight * formData.value.density) /
|
||||||
1000000
|
1000000
|
||||||
@ -285,10 +328,3 @@ const resetForm = () => {
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<style>
|
|
||||||
/* 全局修改 */
|
|
||||||
.el-form-item {
|
|
||||||
margin-bottom: 32px; /* 改为你想要的间距,比如 32px、40px */
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|||||||
@ -92,17 +92,13 @@
|
|||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
|
|
||||||
<!-- 列表 -->
|
<!-- 列表 -->
|
||||||
<ContentWrap class="table-container">
|
<ContentWrap>
|
||||||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" class="hl-table"
|
<el-table v-loading="loading" :data="list" :show-overflow-tooltip="true" class="hl-table" height="500" border>
|
||||||
height="500px">
|
|
||||||
<el-table-column fixed type="index" width="100" label="序号" align="center"/>
|
<el-table-column fixed type="index" width="100" label="序号" align="center"/>
|
||||||
<el-table-column fixed label="项目编号" align="center" prop="projectCode" width="200"/>
|
<el-table-column fixed label="项目编号" align="center" prop="projectCode" width="180"/>
|
||||||
<el-table-column fixed label="项目名称" align="center" prop="projectName" width="160"/>
|
<el-table-column fixed label="项目名称" align="center" prop="projectName" width="180"/>
|
||||||
<el-table-column fixed label="子项目名称" align="center" prop="projectSubName" width="160"/>
|
<el-table-column fixed label="子项目名称" align="center" prop="projectSubName" width="180"/>
|
||||||
<!-- <el-table-column label="子项目编号" align="center" prop="projectSubCode" width="260" />-->
|
|
||||||
<!-- <el-table-column label="派工单号" align="center" prop="dispatchCode" width="180" />-->
|
|
||||||
<el-table-column label="零件名称" align="center" prop="materialName" width="180"/>
|
<el-table-column label="零件名称" align="center" prop="materialName" width="180"/>
|
||||||
<!-- <el-table-column label="规格型号" align="center" prop="spec" width="160" />-->
|
|
||||||
<el-table-column label="报工人" align="center" prop="ownerName" width="100"/>
|
<el-table-column label="报工人" align="center" prop="ownerName" width="100"/>
|
||||||
<el-table-column label="报工状态" align="center" prop="reportProcess" width="100">
|
<el-table-column label="报工状态" align="center" prop="reportProcess" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
@ -124,13 +120,14 @@
|
|||||||
<el-table-column label="长(直径)(mm)" align="center" prop="length" :formatter="formatAmount" width="220"/>
|
<el-table-column label="长(直径)(mm)" align="center" prop="length" :formatter="formatAmount" width="220"/>
|
||||||
<el-table-column label="宽(mm)" align="center" prop="widht" :formatter="formatAmount" width="160"/>
|
<el-table-column label="宽(mm)" align="center" prop="widht" :formatter="formatAmount" width="160"/>
|
||||||
<el-table-column label="高(mm)" align="center" prop="hight" :formatter="formatAmount" width="160"/>
|
<el-table-column label="高(mm)" align="center" prop="hight" :formatter="formatAmount" width="160"/>
|
||||||
<el-table-column label="密度(mm)" align="center" prop="density" :formatter="formatAmount" width="160"/>
|
<el-table-column label="密度(t/m³)" align="center" prop="density" :formatter="formatAmount" width="160"/>
|
||||||
|
<el-table-column label="重量(kg)" align="center" prop="weight" :formatter="formatAmount" width="160"/>
|
||||||
<el-table-column label="总价(元)" align="center" prop="reportPrice" :formatter="formatAmount" width="160"/>
|
<el-table-column label="总价(元)" align="center" prop="reportPrice" :formatter="formatAmount" width="160"/>
|
||||||
<el-table-column label="报工日期" align="center" prop="reportTime" :formatter="dateFormatter2" width="120"/>
|
<el-table-column label="报工日期" align="center" prop="reportTime" :formatter="dateFormatter2" width="120"/>
|
||||||
<el-table-column label="修改人" align="center" prop="updaterName" width="160"/>
|
<el-table-column label="修改人" align="center" prop="updaterName" width="160"/>
|
||||||
<el-table-column label="修改时间" align="center" prop="updateTime" :formatter="dateFormatter2" width="120"/>
|
<el-table-column label="修改时间" align="center" prop="updateTime" :formatter="dateFormatter2" width="120"/>
|
||||||
<el-table-column label="修改原因" align="center" prop="remark" width="160"/>
|
<el-table-column label="修改原因" align="center" prop="remark" width="160"/>
|
||||||
<el-table-column fixed="right" label="操作" align="center" width="140">
|
<el-table-column fixed="right" label="操作" align="center" width="160">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button
|
<el-button
|
||||||
link
|
link
|
||||||
@ -148,6 +145,15 @@
|
|||||||
>
|
>
|
||||||
返工
|
返工
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
v-if="scope.row.reportProcess != 2"
|
||||||
|
link
|
||||||
|
type="danger"
|
||||||
|
@click="handleDelete(scope.row.id)"
|
||||||
|
v-hasPermi="['heli:task-in-report:delete']"
|
||||||
|
>
|
||||||
|
删除
|
||||||
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -351,14 +357,4 @@ onMounted(() => {
|
|||||||
padding: 16px;
|
padding: 16px;
|
||||||
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 表格容器预留顶部空间 */
|
|
||||||
.table-container {
|
|
||||||
margin-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 可选:调整搜索表单间距 */
|
|
||||||
.el-form-item {
|
|
||||||
margin-bottom: 16px;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user