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);
|
||||
TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(taskInReportDO.getDispatchDetailId());
|
||||
if (taskDispatchDetailDO != null) {
|
||||
if (taskDispatchDetailDO.getInReportProcess() != 2) {
|
||||
if (taskDispatchDetailDO.getInReportProcess() == 2) {
|
||||
throw new RuntimeException("当前报工状态不允许删除");
|
||||
} else {
|
||||
taskDispatchDetailDO.setInReportProcess(0);
|
||||
taskDispatchDetailMapper.updateById(taskDispatchDetailDO);
|
||||
}
|
||||
}
|
||||
// 删除
|
||||
|
||||
@ -1,6 +1,4 @@
|
||||
<template>
|
||||
|
||||
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible">
|
||||
<el-form
|
||||
ref="formRef"
|
||||
@ -8,7 +6,6 @@
|
||||
:rules="formRules"
|
||||
label-width="140px"
|
||||
v-loading="formLoading"
|
||||
class="custom-table"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
@ -24,7 +21,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<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"
|
||||
disabled
|
||||
/>
|
||||
@ -40,8 +37,8 @@
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="长(直径)(mm)" prop="length">
|
||||
<el-input-number v-model="formData.length" min="0.01" :precision="2"
|
||||
<el-form-item label="长/直径(mm)" prop="length">
|
||||
<el-input-number v-model="formData.length" min="0" :precision="2"
|
||||
placeholder="请输入密度"
|
||||
@change="handleChange"
|
||||
class="!w-260px"/>
|
||||
@ -49,7 +46,7 @@
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<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="请输入高度"
|
||||
@change="handleChange"
|
||||
class="!w-260px"/>
|
||||
@ -83,7 +80,7 @@
|
||||
<!-- 第三行 -->
|
||||
<el-row>
|
||||
<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"
|
||||
@change="handleReportPriceChange"
|
||||
placeholder="请输入重量" class="!w-260px"/>
|
||||
@ -126,6 +123,7 @@ import * as TaskInReportApi from '@/api/heli/taskinreport'
|
||||
const {t} = useI18n() // 国际化
|
||||
const message = useMessage() // 消息弹窗
|
||||
import {formatAmount} from '@/utils/formatter'
|
||||
import {ifError} from "assert";
|
||||
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||
const dialogTitle = ref('') // 弹窗的标题
|
||||
@ -152,10 +150,65 @@ const formData = ref({
|
||||
formalId: undefined,
|
||||
calFormal: undefined,
|
||||
})
|
||||
|
||||
|
||||
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'}],
|
||||
})
|
||||
const formRef = ref() // 表单 Ref
|
||||
@ -218,28 +271,18 @@ const handleChange = () => {
|
||||
};
|
||||
|
||||
const handleReportPriceChange = () => {
|
||||
if (formData.value.weight === 0) {
|
||||
formData.value.reportPrice = 0;
|
||||
return;
|
||||
}
|
||||
if (formData.value.weight) {
|
||||
formData.value.reportPrice = Number((formData.value.weight * formData.value.price).toFixed(2));
|
||||
}
|
||||
};
|
||||
const handleDimensionChange = () => {
|
||||
const validateNumericValue = (value) => {
|
||||
return typeof value === 'number' && !isNaN(value) && isFinite(value) && value > 0;
|
||||
};
|
||||
|
||||
const calculateWeight = () => {
|
||||
if (!validateNumericValue(formData.value.length) ||
|
||||
!validateNumericValue(formData.value.hight) ||
|
||||
!validateNumericValue(formData.value.density)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
let totalWeight = 0;
|
||||
if (formData.value.matType === "1" || formData.value.matType === "3") {
|
||||
if (!validateNumericValue(formData.value.widht)) {
|
||||
message.error('宽度不能为0');
|
||||
return 0;
|
||||
}
|
||||
totalWeight = Number(
|
||||
(formData.value.length * formData.value.widht * formData.value.hight * formData.value.density) /
|
||||
1000000
|
||||
@ -285,10 +328,3 @@ const resetForm = () => {
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<style>
|
||||
/* 全局修改 */
|
||||
.el-form-item {
|
||||
margin-bottom: 32px; /* 改为你想要的间距,比如 32px、40px */
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -92,17 +92,13 @@
|
||||
</ContentWrap>
|
||||
|
||||
<!-- 列表 -->
|
||||
<ContentWrap class="table-container">
|
||||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" class="hl-table"
|
||||
height="500px">
|
||||
<ContentWrap>
|
||||
<el-table v-loading="loading" :data="list" :show-overflow-tooltip="true" class="hl-table" height="500" border>
|
||||
<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="projectName" width="160"/>
|
||||
<el-table-column fixed label="子项目名称" align="center" prop="projectSubName" width="160"/>
|
||||
<!-- <el-table-column label="子项目编号" align="center" prop="projectSubCode" width="260" />-->
|
||||
<!-- <el-table-column label="派工单号" align="center" prop="dispatchCode" width="180" />-->
|
||||
<el-table-column fixed label="项目编号" align="center" prop="projectCode" width="180"/>
|
||||
<el-table-column fixed label="项目名称" align="center" prop="projectName" width="180"/>
|
||||
<el-table-column fixed label="子项目名称" align="center" prop="projectSubName" 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="reportProcess" width="100">
|
||||
<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="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="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="reportTime" :formatter="dateFormatter2" width="120"/>
|
||||
<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="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">
|
||||
<el-button
|
||||
link
|
||||
@ -148,6 +145,15 @@
|
||||
>
|
||||
返工
|
||||
</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>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -351,14 +357,4 @@ onMounted(() => {
|
||||
padding: 16px;
|
||||
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
/* 表格容器预留顶部空间 */
|
||||
.table-container {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
/* 可选:调整搜索表单间距 */
|
||||
.el-form-item {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
</style>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user