feat(客户管理): 新增税号字段并优化客户信息展示

feat(订单管理): 增加宽度和厚度公差字段,优化销售员选择方式

feat(合同管理): 新增合同管理模块及相关API接口

refactor(文件列表): 重构文件列表组件样式和布局

fix(QRCode): 修复内容为空时仍触发生成的bug

perf(线圈管理): 优化用户列表加载条件,减少不必要请求

style(代码): 移除多余的空行和注释代码
This commit is contained in:
砂糖
2026-03-31 11:16:48 +08:00
parent b7d8463198
commit aca10bcd45
13 changed files with 793 additions and 168 deletions

View File

@@ -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 || []
})
}
}
}