feat(客户管理): 新增税号字段并优化客户信息展示
feat(订单管理): 增加宽度和厚度公差字段,优化销售员选择方式 feat(合同管理): 新增合同管理模块及相关API接口 refactor(文件列表): 重构文件列表组件样式和布局 fix(QRCode): 修复内容为空时仍触发生成的bug perf(线圈管理): 优化用户列表加载条件,减少不必要请求 style(代码): 移除多余的空行和注释代码
This commit is contained in:
@@ -50,6 +50,15 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="税号" prop="taxNumber">
|
||||
<el-input
|
||||
v-model="customer.taxNumber"
|
||||
placeholder="请输入税号"
|
||||
@input="handleInputChange"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="客户行业" prop="industry">
|
||||
<el-select
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
<el-descriptions-item label="客户等级">
|
||||
<dict-tag :value="customer.customerLevel" :options="dict.type.customer_level"></dict-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="税号">{{ customer.taxNumber || '-' }}</el-descriptions-item>
|
||||
<el-descriptions-item label="客户地址" v-hasPermi="['crm:customer:address']">
|
||||
{{ formattedAddress || '-' }}
|
||||
</el-descriptions-item>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
|
||||
v-if="editable">新增</el-button>
|
||||
<el-button type="primary" plain icon="el-icon-printer" size="mini" @click="handlePrint">打印</el-button>
|
||||
<!-- <el-button type="primary" plain icon="el-icon-printer" size="mini" @click="handlePrint">打印</el-button> -->
|
||||
<el-button type="primary" plain icon="el-icon-refresh" size="mini" @click="getList">刷新</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -15,6 +15,8 @@
|
||||
<el-table v-loading="loading" :data="orderItemList">
|
||||
<el-table-column label="产品类型" align="center" prop="productType" />
|
||||
<el-table-column label="原料规格" align="center" prop="rawMaterialSpec" />
|
||||
<el-table-column label="宽度公差" align="center" prop="widthTolerance" />
|
||||
<el-table-column label="厚度公差" align="center" prop="thicknessTolerance" />
|
||||
<el-table-column label="成品规格" align="center" prop="finishedProductSpec" />
|
||||
<el-table-column label="材质" align="center" prop="material" />
|
||||
<el-table-column label="等级" align="center" prop="grade" />
|
||||
@@ -62,6 +64,12 @@
|
||||
<el-form-item label="成品规格" prop="finishedProductSpec">
|
||||
<el-input v-model="form.finishedProductSpec" placeholder="请输入成品规格" />
|
||||
</el-form-item>
|
||||
<el-form-item label="宽度公差" prop="widthTolerance">
|
||||
<el-input v-model="form.widthTolerance" placeholder="请输入宽度公差" />
|
||||
</el-form-item>
|
||||
<el-form-item label="厚度公差" prop="thicknessTolerance">
|
||||
<el-input v-model="form.thicknessTolerance" placeholder="请输入厚度公差" />
|
||||
</el-form-item>
|
||||
<el-form-item label="材质" prop="material">
|
||||
<el-input v-model="form.material" placeholder="请输入材质" />
|
||||
</el-form-item>
|
||||
|
||||
@@ -27,7 +27,10 @@
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="销售员" prop="salesman">
|
||||
<el-input v-model="form.salesman" placeholder="请输入销售员"></el-input>
|
||||
<el-select v-model="form.salesman" placeholder="请选择销售员">
|
||||
<el-option v-for="item in dict.type.wip_pack_saleman" :key="item.value" :label="item.label"
|
||||
:value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
@@ -50,7 +53,17 @@
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同号" prop="contractCode">
|
||||
<el-input v-model="form.contractCode" placeholder="请输入合同号"></el-input>
|
||||
<el-select v-model="form.contractId" placeholder="请选择合同号" filterable clearable @change="handleContractChange">
|
||||
<el-option v-for="item in contractList" :key="item.contractId" :label="item.contractNo"
|
||||
:value="item.contractId"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="附件" prop="annexFiles">
|
||||
<file-upload v-model="form.annexFiles" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
@@ -65,6 +78,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listContract } from '@/api/crm/contract';
|
||||
import { ORDER_STATUS } from '../js/enum'
|
||||
|
||||
export default {
|
||||
@@ -79,6 +93,7 @@ export default {
|
||||
default: () => []
|
||||
}
|
||||
},
|
||||
dicts: ['wip_pack_saleman'],
|
||||
data() {
|
||||
return {
|
||||
ORDER_STATUS,
|
||||
@@ -86,7 +101,8 @@ export default {
|
||||
...this.initValue
|
||||
},
|
||||
// 防抖计时器标识
|
||||
debounceTimer: null
|
||||
debounceTimer: null,
|
||||
contractList: []
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@@ -105,6 +121,10 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
// 初始化时获取合同列表
|
||||
this.getContractList()
|
||||
},
|
||||
beforeDestroy() {
|
||||
// 组件销毁时清除计时器,防止内存泄漏
|
||||
if (this.debounceTimer) {
|
||||
@@ -118,6 +138,21 @@ export default {
|
||||
clearTimeout(this.debounceTimer);
|
||||
}
|
||||
this.$emit('save', { ...this.form });
|
||||
},
|
||||
// 处理合同号选择变化
|
||||
handleContractChange(contractId) {
|
||||
// 当合同号选择变化时,更新合同金额
|
||||
const contract = this.contractList.find(item => item.contractId === contractId)
|
||||
if (contract) {
|
||||
this.form.contractCode = contract.contractNo
|
||||
}
|
||||
|
||||
},
|
||||
// 获取合同列表
|
||||
getContractList() {
|
||||
listContract({ pageSize: 1000, pageNum: 1 }).then(res => {
|
||||
this.contractList = res.rows || []
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,22 +1,5 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- <el-form v-if="searchable" :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="客户名称" prop="customerId">
|
||||
<CustomerSelect v-model="queryParams.customerId" />
|
||||
</el-form-item>
|
||||
<el-form-item label="到期日" prop="dueDate">
|
||||
<el-date-picker clearable
|
||||
v-model="queryParams.dueDate"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择到期日">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form> -->
|
||||
<el-descriptions :column="3" title="财务状态" border>
|
||||
<el-descriptions-item label="订单总金额">{{ order.orderAmount }}</el-descriptions-item>
|
||||
<el-descriptions-item label="已收款金额">{{ receivedAmount }}</el-descriptions-item>
|
||||
@@ -128,12 +111,6 @@
|
||||
<el-form-item label="收款金额" prop="amount">
|
||||
<el-input-number :controls=false v-model="form.amount" :step="1.00" :precision="2" placeholder="请输入应收金额" :min="0" :max="unreceivedAmount" style="width: 100%;"/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="已收金额" prop="paidAmount">
|
||||
<el-input v-model="form.paidAmount" disabled placeholder="请输入已收金额" />
|
||||
</el-form-item> -->
|
||||
<!-- <el-form-item label="未收金额" prop="balanceAmount">
|
||||
<el-input v-model="form.balanceAmount" placeholder="请输入未收金额" />
|
||||
</el-form-item> -->
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
@@ -161,13 +138,9 @@
|
||||
<script>
|
||||
import { listReceivable, getReceivable, delReceivable, addReceivable, updateReceivable, updatePaidAmount } from "@/api/finance/receivable";
|
||||
import { updateOrder } from "@/api/crm/order";
|
||||
// import CustomerSelect from '@/components/KLPService/CustomerSelect/index.vue';
|
||||
|
||||
export default {
|
||||
name: "Receivable",
|
||||
// components: {
|
||||
// CustomerSelect
|
||||
// },
|
||||
props: {
|
||||
searchable: {
|
||||
type: Boolean,
|
||||
|
||||
Reference in New Issue
Block a user