feat(CoilSelector): 新增入场卷号字段并调整当前卷号显示

feat(customer): 新增客户相关配卷和财务信息查询接口

fix(base.vue): 修复发货单时间条件显示问题

refactor(CustomerEdit): 替换地址选择组件为普通输入框

feat(CoilSelector): 增加入场卷号查询条件并调整对话框宽度

style(OrderEdit): 调整客户名称和销售员选择框宽度

refactor(ChinaAreaSelect): 优化地址解析逻辑并支持空对象处理

feat(FileUpload/FileList): 新增文件预览功能组件

refactor(KLPService/CustomerSelect): 优化客户选择组件并支持自定义字段绑定

fix(AbnormalForm): 修复异常位置校验逻辑并保留当前卷号

feat(ContractTabs): 新增合同附件展示功能

refactor(warehouse/record): 重构操作记录统计展示方式

feat(contract): 集成客户选择组件并优化合同信息填充

refactor(order): 调整订单表单布局并集成合同信息

feat(FilePreview): 新增文件预览组件

feat(customer): 新增财务状态和发货配卷展示

refactor(CustomerOrder): 移除冗余代码并优化布局

feat(PlanDetailForm): 新增合同附件查看功能

feat(dict): 新增字典管理页面
This commit is contained in:
砂糖
2026-04-06 13:16:45 +08:00
parent 4075ead84e
commit 1fa4c55869
21 changed files with 1158 additions and 192 deletions

View File

@@ -24,8 +24,12 @@
<!-- 右侧下方Tab标签页 -->
<div class="tab-panel" ref="tabPanel" style="flex: 1; overflow-y: auto;">
<ContractTabs :contractId="form.contractId" :financeList="financeList" :objectionList="objectionList"
:coilList="coilList" :tabLoading="tabLoading" />
<ContractTabs :contractId="form.contractId"
:customerId="form.customerId" :financeList="financeList" :objectionList="objectionList"
:coilList="coilList" :tabLoading="tabLoading"
:contract-attachment="form.businessAnnex"
:technical-agreement="form.techAnnex"
:other-attachment="form.productionSchedule" />
</div>
</div>
<div v-else style="flex: 1; display: flex; flex-direction: column;">
@@ -102,7 +106,8 @@
<!-- 需方信息 -->
<el-col :span="12">
<el-form-item label="需方" prop="customer">
<el-input v-model="form.customer" placeholder="请输入需方" />
<CustomerSelect v-model="form.customer" bindField="companyName" @change="handleCustomerChange" :style="{ width: '100%' }" />
<!-- <el-input v-model="form.customer" placeholder="请输入需方" /> -->
</el-form-item>
<el-form-item label="需方地址" prop="customerAddress">
<el-input v-model="form.customerAddress" placeholder="请输入需方地址" />
@@ -151,6 +156,8 @@ import ContractList from "./components/ContractList.vue";
import ContractPreview from "./components/ContractPreview.vue";
import ContractTabs from "./components/ContractTabs.vue";
import ProductContent from "./components/ProductContent.vue";
import CustomerSelect from "@/components/KLPService/CustomerSelect/index.vue";
import { formatAreaTextEnhanced } from '@/components/ChinaAreaSelect/index.js'
export default {
name: "Contract",
@@ -158,7 +165,8 @@ export default {
ContractList,
ContractPreview,
ContractTabs,
ProductContent
ProductContent,
CustomerSelect
},
data() {
return {
@@ -258,6 +266,29 @@ export default {
},
methods: {
/** 处理客户选择 */
handleCustomerChange(customer) {
console.log(customer);
this.form.customerAddress = customer.address;
this.form.customerPhone = customer.contactWay;
this.form.customerTaxNo = customer.taxNumber;
this.form.customerId = customer.customerId;
// 处理银行信息
if (customer.bankInfo) {
try {
const bankList = JSON.parse(customer.bankInfo);
if (bankList && bankList.length > 0) {
const firstBank = bankList[0];
this.form.customerBank = firstBank.bankName;
this.form.customerAccount = firstBank.bankAccount;
}
} catch (error) {
console.error('解析银行信息失败:', error);
}
}
// 开户行和银行账号在客户信息中是一个json数组字符串如果存在则默认选中第一个将输入框改为下拉选可以快速切换
console.log(customer);
},
/** 处理合同状态更新 */
handleStatusChange(status) {