This commit is contained in:
2025-08-19 21:24:39 +08:00
parent 9049969546
commit 52d4a07204
3 changed files with 249 additions and 235 deletions

View File

@ -5,7 +5,7 @@ VITE_APP_TITLE = 煤科建管平台
VITE_APP_ENV = 'development' VITE_APP_ENV = 'development'
# 开发环境 # 开发环境
VITE_APP_BASE_API = 'http://192.168.110.213:8899' VITE_APP_BASE_API = 'http://192.168.110.180:8899'
# 无人机接口地址 # 无人机接口地址

View File

@ -510,10 +510,6 @@ const submitForm = async () => {
try { try {
// 1. 基础表单验证 // 1. 基础表单验证
await leaveFormRef.value.validate(); await leaveFormRef.value.validate();
<<<<<<< HEAD
=======
>>>>>>> origin/ljj
// 2. 提交前二次校验:「专业+人员」组合唯一性 // 2. 提交前二次校验:「专业+人员」组合唯一性
let hasDuplicate = false; let hasDuplicate = false;
const allKeys: string[] = []; const allKeys: string[] = [];
@ -571,10 +567,6 @@ const submitForm = async () => {
) )
] ]
}; };
<<<<<<< HEAD
=======
>>>>>>> origin/ljj
// 4. 数据处理(保持原有逻辑不变) // 4. 数据处理(保持原有逻辑不变)
const arr = []; const arr = [];
userList.value.forEach((item) => { userList.value.forEach((item) => {

View File

@ -113,26 +113,22 @@
<!-- </template> --> <!-- </template> -->
</el-table-column> </el-table-column>
<!-- 备注信息列可展开 --> <!-- 备注信息列可展开 -->
<el-table-column label="备注信息" min-width="120"> <el-table-column label="备注信息" min-width="120">
<template #default="scope"> <template #default="scope">
<el-popover placement="top" width="300" trigger="click"> <el-popover placement="top" width="300" trigger="click">
<template #reference> <template #reference>
<el-button size="small" type="text">查看详情</el-button> <el-button size="small" type="text">查看详情</el-button>
</template> </template>
<div class="space-y-2 text-sm"> <div class="space-y-2 text-sm">
<p><span class="font-medium">采购备注</span>{{ scope.row.cgRemark || '-' }} <p><span class="font-medium">采购备注</span>{{ scope.row.cgRemark || '-' }}</p>
</p> <p><span class="font-medium">到货备注</span>{{ scope.row.dhRemark || '-' }}</p>
<p><span class="font-medium">到货备注</span>{{ scope.row.dhRemark || '-' }} <p><span class="font-medium">供应商备注</span>{{ scope.row.gysRemark || '-' }}</p>
</p> <p><span class="font-medium">结算备注</span>{{ scope.row.jsRemark || '-' }}</p>
<p><span class="font-medium">供应商备注</span>{{ scope.row.gysRemark || '-' </div>
}}</p> </el-popover>
<p><span class="font-medium">结算备注</span>{{ scope.row.jsRemark || '-' }} </template>
</p> </el-table-column>
</div>
</el-popover>
</template>
</el-table-column>
<!-- 操作列 --> <!-- 操作列 -->
<el-table-column label="操作" min-width="120" align="center" fixed="right"> <el-table-column label="操作" min-width="120" align="center" fixed="right">
@ -157,217 +153,240 @@
<div class="text-gray-500 text-sm"> <div class="text-gray-500 text-sm">
{{ total }} 条记录当前显示第 {{ (currentPage - 1) * pageSize + 1 }} {{ Math.min(currentPage * pageSize, total) }} {{ total }} 条记录当前显示第 {{ (currentPage - 1) * pageSize + 1 }} {{ Math.min(currentPage * pageSize, total) }}
</div> </div>
<el-dialog v-model="dialogVisible2" :title="dialogType2 === 'addSon' ? '新增采购信息' : '编辑采购信息'" :width="dialogWidth" <el-dialog
:fullscreen="isFullscreen" :close-on-click-modal="false" :before-close="handleClose" destroy-on-close> v-model="dialogVisible2"
<!-- 表单内容 --> :title="dialogType2 === 'addSon' ? '新增采购信息' : '编辑采购信息'"
<el-form ref="formRef" :model="form" :rules="formRules" label-width="140px" class="space-y-4"> :width="dialogWidth"
<!-- 第一行 --> :fullscreen="isFullscreen"
<el-row :gutter="20"> :close-on-click-modal="false"
<el-col :span="12"> :before-close="handleClose"
<el-form-item label="批次" prop="batch"> destroy-on-close
<el-input v-model="form.batch" placeholder="请输入批次信息"></el-input> >
</el-form-item> <!-- 表单内容 -->
</el-col> <el-form ref="formRef" :model="form" :rules="formRules" label-width="140px" class="space-y-4">
<el-col :span="12"> <!-- 第一行 -->
<el-form-item label="联系单下达时间" prop="issuanceTime"> <el-row :gutter="20">
<el-date-picker v-model="form.issuanceTime" type="datetime" placeholder="选择联系单下达时间" <el-col :span="12">
value-format="YYYY-MM-DD HH:mm:ss"></el-date-picker> <el-form-item label="批次" prop="batch">
</el-form-item> <el-input v-model="form.batch" placeholder="请输入批次信息"></el-input>
</el-col> </el-form-item>
</el-row> </el-col>
<el-col :span="12">
<el-form-item label="联系单下达时间" prop="issuanceTime">
<el-date-picker
v-model="form.issuanceTime"
type="datetime"
placeholder="选择联系单下达时间"
value-format="YYYY-MM-DD HH:mm:ss"
></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<!-- 第二行 --> <!-- 第二行 -->
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="要求到货数量" prop="requiredQuantity"> <el-form-item label="要求到货数量" prop="requiredQuantity">
<el-input v-model="form.requiredQuantity" placeholder="请输入要求到货数量"></el-input> <el-input v-model="form.requiredQuantity" placeholder="请输入要求到货数量"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="要求到货时间" prop="requireDelivery"> <el-form-item label="要求到货时间" prop="requireDelivery">
<el-date-picker v-model="form.requireDelivery" type="datetime" placeholder="选择要求到货时间" <el-date-picker
value-format="YYYY-MM-DD HH:mm:ss"></el-date-picker> v-model="form.requireDelivery"
</el-form-item> type="datetime"
</el-col> placeholder="选择要求到货时间"
</el-row> value-format="YYYY-MM-DD HH:mm:ss"
></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<!-- 第三行 --> <!-- 第三行 -->
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="计划到货数量" prop="plannedQuantity"> <el-form-item label="计划到货数量" prop="plannedQuantity">
<el-input v-model="form.plannedQuantity" placeholder="请输入计划到货数量"></el-input> <el-input v-model="form.plannedQuantity" placeholder="请输入计划到货数量"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="计划到货时间" prop="scheduledDelivery"> <el-form-item label="计划到货时间" prop="scheduledDelivery">
<el-date-picker v-model="form.scheduledDelivery" type="datetime" placeholder="选择计划到货时间" <el-date-picker
value-format="YYYY-MM-DD HH:mm:ss"></el-date-picker> v-model="form.scheduledDelivery"
</el-form-item> type="datetime"
</el-col> placeholder="选择计划到货时间"
</el-row> value-format="YYYY-MM-DD HH:mm:ss"
></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<!-- 第四行 --> <!-- 第四行 -->
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="实际到货验收数量" prop="actualAcceptance"> <el-form-item label="实际到货验收数量" prop="actualAcceptance">
<el-input v-model="form.actualAcceptance" placeholder="请输入实际到货验收数量"></el-input> <el-input v-model="form.actualAcceptance" placeholder="请输入实际到货验收数量"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="实际到货时间" prop="actualDelivery"> <el-form-item label="实际到货时间" prop="actualDelivery">
<el-date-picker v-model="form.actualDelivery" type="datetime" placeholder="选择实际到货时间" <el-date-picker
value-format="YYYY-MM-DD HH:mm:ss"></el-date-picker> v-model="form.actualDelivery"
</el-form-item> type="datetime"
</el-col> placeholder="选择实际到货时间"
</el-row> value-format="YYYY-MM-DD HH:mm:ss"
></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<!-- 第五行 --> <!-- 第五行 -->
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="差异量" prop="differenceQuantity"> <el-form-item label="差异量" prop="differenceQuantity">
<el-input v-model="form.differenceQuantity" placeholder="请输入差异量"></el-input> <el-input v-model="form.differenceQuantity" placeholder="请输入差异量"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="到货差异量" prop="dhDifferenceQuantity"> <el-form-item label="到货差异量" prop="dhDifferenceQuantity">
<el-input v-model="form.dhDifferenceQuantity" placeholder="请输入到货差异量"></el-input> <el-input v-model="form.dhDifferenceQuantity" placeholder="请输入到货差异量"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<!-- 第六行 --> <!-- 第六行 -->
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="验收移交时间" prop="acceptanceCheck"> <el-form-item label="验收移交时间" prop="acceptanceCheck">
<el-date-picker v-model="form.acceptanceCheck" type="datetime" placeholder="选择验收移交时间" <el-date-picker
value-format="YYYY-MM-DD HH:mm:ss"></el-date-picker> v-model="form.acceptanceCheck"
</el-form-item> type="datetime"
</el-col> placeholder="选择验收移交时间"
<el-col :span="12"> value-format="YYYY-MM-DD HH:mm:ss"
<el-form-item label="逾期状态" prop="expectedState"> ></el-date-picker>
<el-select v-model="form.expectedState" placeholder="请选择逾期状态"> </el-form-item>
<el-option label="未逾期" value="未逾期"></el-option> </el-col>
<el-option label="已逾期" value="已逾期"></el-option> <el-col :span="12">
<el-option label="即将逾期" value="即将逾期"></el-option> <el-form-item label="逾期状态" prop="expectedState">
</el-select> <el-select v-model="form.expectedState" placeholder="请选择逾期状态">
</el-form-item> <el-option label="未逾期" value="未逾期"></el-option>
</el-col> <el-option label="已逾期" value="已逾期"></el-option>
</el-row> <el-option label="即将逾期" value="即将逾期"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<!-- 第七行 - 金额信息 --> <!-- 第七行 - 金额信息 -->
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="货物金额" prop="cargoAmount"> <el-form-item label="货物金额" prop="cargoAmount">
<el-input v-model="form.cargoAmount" placeholder="0.00" prefix="¥"></el-input> <el-input v-model="form.cargoAmount" placeholder="0.00" prefix="¥"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="预付款" prop="advance"> <el-form-item label="预付款" prop="advance">
<el-input v-model="form.advance" placeholder="0.00" prefix="¥"></el-input> <el-input v-model="form.advance" placeholder="0.00" prefix="¥"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="投料款" prop="feed"> <el-form-item label="投料款" prop="feed">
<el-input v-model="form.feed" placeholder="0.00" prefix="¥"></el-input> <el-input v-model="form.feed" placeholder="0.00" prefix="¥"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="到货验收款" prop="acceptancePayment"> <el-form-item label="到货验收款" prop="acceptancePayment">
<el-input v-model="form.acceptancePayment" placeholder="0.00" prefix="¥"></el-input> <el-input v-model="form.acceptancePayment" placeholder="0.00" prefix="¥"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<!-- 第八行 - 金额信息 --> <!-- 第八行 - 金额信息 -->
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="调试款" prop="debugging"> <el-form-item label="调试款" prop="debugging">
<el-input v-model="form.debugging" placeholder="0.00" prefix="¥"></el-input> <el-input v-model="form.debugging" placeholder="0.00" prefix="¥"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="质保金" prop="qualityGuarantee"> <el-form-item label="质保金" prop="qualityGuarantee">
<el-input v-model="form.qualityGuarantee" placeholder="0.00" prefix="¥"></el-input> <el-input v-model="form.qualityGuarantee" placeholder="0.00" prefix="¥"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="结算金额" prop="settlementAmount"> <el-form-item label="结算金额" prop="settlementAmount">
<el-input v-model="form.settlementAmount" placeholder="0.00" prefix="¥"></el-input> <el-input v-model="form.settlementAmount" placeholder="0.00" prefix="¥"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<!-- 第九行 --> <!-- 第九行 -->
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="交接方式" prop="associate"> <el-form-item label="交接方式" prop="associate">
<el-input v-model="form.associate" placeholder="请输入交接方式"></el-input> <el-input v-model="form.associate" placeholder="请输入交接方式"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="转换为合同" prop="transition"> <el-form-item label="转换为合同" prop="transition">
<el-select v-model="form.transition" placeholder="请选择是否转换为合同"> <el-select v-model="form.transition" placeholder="请选择是否转换为合同">
<el-option label="是" value="是"></el-option> <el-option label="是" value="是"></el-option>
<el-option label="否" value="否"></el-option> <el-option label="否" value="否"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<!-- 第十行 --> <!-- 第十行 -->
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="到货要求" prop="deliveryRequirements"> <el-form-item label="到货要求" prop="deliveryRequirements">
<el-input v-model="form.deliveryRequirements" placeholder="请输入到货要求" type="textarea" <el-input v-model="form.deliveryRequirements" placeholder="请输入到货要求" type="textarea" rows="3"></el-input>
rows="3"></el-input> </el-form-item>
</el-form-item> </el-col>
</el-col> </el-row>
</el-row>
<!-- 第十一行 - 备注信息 --> <!-- 第十一行 - 备注信息 -->
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="采购备注" prop="cgRemark"> <el-form-item label="采购备注" prop="cgRemark">
<el-input v-model="form.cgRemark" placeholder="请输入采购备注" type="textarea" rows="4"></el-input> <el-input v-model="form.cgRemark" placeholder="请输入采购备注" type="textarea" rows="4"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="到货备注" prop="dhRemark"> <el-form-item label="到货备注" prop="dhRemark">
<el-input v-model="form.dhRemark" placeholder="请输入到货备注" type="textarea" rows="4"></el-input> <el-input v-model="form.dhRemark" placeholder="请输入到货备注" type="textarea" rows="4"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="供应商备注" prop="gysRemark"> <el-form-item label="供应商备注" prop="gysRemark">
<el-input v-model="form.gysRemark" placeholder="请输入供应商备注" type="textarea" <el-input v-model="form.gysRemark" placeholder="请输入供应商备注" type="textarea" rows="4"></el-input>
rows="4"></el-input> </el-form-item>
</el-form-item> </el-col>
</el-col> </el-row>
</el-row>
<!-- 第十二行 --> <!-- 第十二行 -->
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="结算备注" prop="jsRemark"> <el-form-item label="结算备注" prop="jsRemark">
<el-input v-model="form.jsRemark" placeholder="请输入结算备注" type="textarea" rows="3"></el-input> <el-input v-model="form.jsRemark" placeholder="请输入结算备注" type="textarea" rows="3"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<!-- 底部按钮 --> <!-- 底部按钮 -->
<template #footer> <template #footer>
<div class="flex justify-end gap-3"> <div class="flex justify-end gap-3">
<el-button @click="handleCancel" class="transition-all duration-200"> <el-button @click="handleCancel" class="transition-all duration-200"> 取消 </el-button>
取消 <el-button type="primary" @click="handleSubmit" :loading="submitLoading" class="transition-all duration-200">
</el-button> {{ dialogType2 === 'addSon' ? '新增' : '保存' }}
<el-button type="primary" @click="handleSubmit" :loading="submitLoading" </el-button>
class="transition-all duration-200"> </div>
{{ dialogType2 === 'addSon' ? '新增' : '保存' }} </template>
</el-button>
</div>
</template>
</el-dialog> </el-dialog>
</div>
</div> </div>
</div>
</template> </template>
<script setup> <script setup>
import { ref, reactive, onMounted, toRaw, getCurrentInstance } from 'vue'; import { ref, reactive, onMounted, toRaw, getCurrentInstance } from 'vue';
@ -535,15 +554,18 @@ const handleSubmit = async () => {
} }
}; };
const materialsUsageDetails1 = () => { const materialsUsageDetails1 = () => {
loading.value = true; loading.value = true;
materialsUsageDetails({ physicalsupplyId: routeParams.value.id }).then(res => { materialsUsageDetails({ physicalsupplyId: routeParams.value.id })
tableData.value = res.rows .then((res) => {
}).catch(() => { tableData.value = res.rows;
loading.value = false;
}).finally(() => {
loading.value = false;
}) })
} .catch(() => {
loading.value = false;
})
.finally(() => {
loading.value = false;
});
};
// 格式化日期 // 格式化日期
const formatDate = (dateString) => { const formatDate = (dateString) => {
if (!dateString) return '-'; if (!dateString) return '-';