feat(采购管理): 新增供应商名称字段并优化表单校验

refactor(出入库管理): 添加产品ID字段并调整默认单据类型

fix(备品配件): 修正库存数量输入类型为数字并移除调试日志

feat(文件上传): 支持后端文件格式转换并暴露清空方法

style(库存管理): 调整单据类型默认值及表单字段顺序

perf(采购计划): 优化供应商选择及文件上传处理逻辑
This commit is contained in:
re-JZzzz
2025-09-29 20:09:20 +08:00
parent 321c3fce49
commit 6ee935ccb6
7 changed files with 172 additions and 78 deletions

View File

@ -8,8 +8,8 @@
<div class="top">
<div class="title">单据列表</div>
<div class="button-actions">
<button :class="{ active: type === 'chuku' }" @click="changeType('chuku')">出库单</button>
<button :class="{ active: type === 'ruku' }" @click="changeType('ruku')">入库单</button>
<button :class="{ active: type === 'chuku' }" @click="changeType('chuku')">出库单</button>
</div>
</div>
<div class="content" style="height: 100%;flex: 1;">
@ -129,9 +129,6 @@
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="单据编号" prop="danjvNumber">
<el-input v-model="form.danjvNumber" placeholder="请输入单据编号" />
</el-form-item>
<!-- <el-form-item label="设备类型" prop="shebeiType">
<el-select v-model="form.shebeiType" placeholder="请选择设备类型">
<el-option v-for="dict in wz_device_type" :key="dict.value" :label="dict.label"
@ -140,7 +137,7 @@
</el-form-item> -->
<el-form-item label="产品名称" prop="chanpinName">
<el-select v-model="form.chanpinName" placeholder="请选择产品名称">
<el-option v-for="dict in chanpinName" :key="dict.value" :label="dict.label"
<el-option v-for="dict in chanpinSelect" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
@ -154,7 +151,7 @@
<el-input v-model="form.contactNumber" placeholder="请输入联系电话" />
</el-form-item>
<el-form-item label="总数量" prop="zonNumber">
<el-input v-model="form.zonNumber" placeholder="请输入总数量" />
<el-input v-model="form.zonNumber" placeholder="请输入总数量" type="number" min="0"/>
</el-form-item>
</el-form>
<template #footer>
@ -344,8 +341,8 @@ const loading = ref(true);
const showSearch = ref(true);
const ids = ref<Array<string | number>>([]);
const total = ref(0);
// 单据类型切换变量 - 默认库单
const type = ref<string>('chuku');
// 单据类型切换变量 - 默认库单
const type = ref<string>('ruku');
/** 切换单据类型 */
const changeType = (newType: string) => {
@ -430,6 +427,7 @@ const initFormData: ChurukudanForm = {
updateTime: undefined,
auditStatus: undefined,
chanpinName: undefined,
chanpinId: undefined,
}
const data = reactive<PageData<ChurukudanForm, ChurukudanQuery>>({
form: { ...initFormData },
@ -444,13 +442,17 @@ const data = reactive<PageData<ChurukudanForm, ChurukudanQuery>>({
endDate: undefined,
auditStatus: undefined,
chanpinName: undefined,
danjvType: '1', // 默认显示出库单
chanpinId: undefined,
danjvType: '2', // 默认显示入库单
params: {
}
},
rules: {
shebeiType: [
{ required: true, message: "设备类型不能为空", trigger: "change" }
// shebeiType: [
// { required: true, message: "设备类型不能为空", trigger: "change" }
// ],
chanpinName: [
{ required: true, message: "产品名称不能为空", trigger: "change" }
],
jingshourenId: [
{ required: true, message: "经手人id不能为空", trigger: "blur" }
@ -464,18 +466,28 @@ const data = reactive<PageData<ChurukudanForm, ChurukudanQuery>>({
danjvType: [
{ required: true, message: "单据状态不能为空", trigger: "change" }
],
// 手机号码格式校验
contactNumber: [
{ pattern: /^1[3-9]\d{9}$/, message: "请输入正确的手机号码格式", trigger: "blur" }
]
}
});
const { queryParams, form, rules } = toRefs(data);
// 查询产品名称列表
const chanpinList = ref<any[]>([]);
const chanpinSelect = ref<any[]>([]);
// 查询产品名称列表
const getChanpinList = async () => {
try {
const res = await getChanpinLists({ projectId: userStore.selectedProject.id });
chanpinList.value = res.rows || [];
console.log('chanpinList.value', chanpinList.value);
chanpinList.value = res.data || [];
chanpinSelect.value = chanpinList.value.map(item => ({
label:item.caigouPlanName +'-'+item.chanpinName,
value: item.id
}));
console.log('chanpinSelect.value', chanpinSelect.value);
} catch (error) {
console.error('获取产品名称列表失败:', error);
proxy?.$modal.msgError("获取产品名称列表失败,请稍后重试");
@ -568,6 +580,7 @@ const submitForm = () => {
if (valid) {
buttonLoading.value = true;
try {
form.value.chanpinId = form.value.chanpinName
if (form.value.id) {
await updateChurukudan(form.value);
proxy?.$modal.msgSuccess("修改成功");