edit.nvue

javascript
<div class="detail-orders-button active" @click="toOrders">
选择采购单
</div>
onload(pms){
// 接收并存储menuId和idMenuDTO
}
methosd:{toOrders(){
// 1) 检查是否选择了供应商
// 2) 检查是否选择了仓库
// 3) 触发 editOption 的 type2Click 进入选择页
}
async save(){
let pms = {
// 构建请求参数
}
if (this.editPms.id) {
//重新设置菜单ID(确保有值)
}
}
表单字段特殊变化处理
optionChangeSpecial(val, vs, options, this_) {
if{
用户选择"客户" → 自动填充:
客户手机号
销售经理
收件信息(格式化显示)
}else if{
如果当前选择的是"待入库采购单
用户选择"待入库采购单明细" →
字段映射转换(后端字段名 → 前端字段名)
计算剩余入库数量
设置关联ID(商品ID、采购单ID等)
添加到入库列表
}
}
}
editOption

methods:{
type2Click(item){
else if (item.title === '待入库采购单'){
配置主接口(采购单列表)
构建查询参数
配置主列表表头(采购单列表显示字段)
配置双列表模式(采购单 + 采购明细)
}
}
}
checkboxPage.nvue

data(){
return{
config:{
// 是否启用双列表模式
// 明细列表的API接口地址
// 明细列表的请求方法
// 明细列表的表头配置
}
}
onLoad(pms) {
if{
for{
if{
if{
//从父组件editOption接收双列表配置
}
}
}
}
}
methods:{
// 明细数据过滤器()
//主列表选择变化监听()
//双列表确认逻辑()
}
tableU.nvue

props:{
customHeight(自定义高度)
ignoreSearchBox(忽略搜索框)
}
//Vue组件的mounted生命周期函数,组件挂载后的初始化逻辑
mounted(){
setTimeout(() => {
初始化组件高度
确保表头正确初始化(特殊情况处理)
}
}, 0)
}
methods:{
getList(getPms = {}) {
处理后端返回的各种数据格式
}
listItemClick(item) {
向父组件发送一个自定义事件
this.$emit('checkChange', item);
"喂,父组件!checkChange事件发生了!这是相关的数据item!"}
heightInit() {
# 检查是否传入了自定义高度}
}
searchBox.nvue

methods:{
search(){
如果(组件是表格组件 并且 忽略搜索框执行操作): 执行某些操作}
}
http.interceptor.js

const install = (Vue, vm) => {
// zyy: 兼容 rows 为对象的情况(包含 nested rows 数组)
}
接口


