src/views/salesManagement/salesLedger/index.vue
@@ -6,12 +6,7 @@
          <el-input v-model="searchForm.customerName" placeholder="请输入" clearable prefix-icon="Search"
            @change="handleQuery" />
        </el-form-item>
<!--        <el-form-item label="销售合同号:">-->
<!--          <el-input v-model="searchForm.salesContractNo" placeholder="请输入" clearable prefix-icon="Search"-->
<!--            @change="handleQuery" />-->
<!--        </el-form-item>-->
<!--        <el-input v-model="form.salesContractNo" placeholder="可手动输入或自动生成" clearable :disabled="operationType === 'view'">-->
        <el-form-item label="销售订单号:">
        <el-form-item label="订单编号:">
          <el-input v-model="form.salesContractNo" placeholder="可手动输入或自动生成" clearable :disabled="operationType === 'view'" />
                  </el-form-item>
        <el-form-item label="录入日期:">
@@ -109,10 +104,10 @@
          </template>
        </el-table-column>
        <el-table-column align="center" label="序号" type="index" width="60" />
        <el-table-column label="销售订单号" prop="salesContractNo" width="180" show-overflow-tooltip />
        <el-table-column label="订单编号" prop="salesContractNo" width="180" show-overflow-tooltip />
        <el-table-column label="客户名称" prop="customerName" width="300" show-overflow-tooltip />
        <el-table-column label="业务员" prop="salesman" width="100" show-overflow-tooltip />
        <el-table-column label="项目名称" prop="projectName" width="180" show-overflow-tooltip />
<!--        <el-table-column label="项目名称" prop="projectName" width="180" show-overflow-tooltip />-->
        <el-table-column label="付款方式" prop="paymentMethod" show-overflow-tooltip />
        <el-table-column label="合同金额(元)" prop="contractAmount" width="220" show-overflow-tooltip
          :formatter="formattedNumber" />
@@ -137,7 +132,7 @@
            <!-- 报价单导入入口:放在表单顶部,选择后反显客户/业务员等 -->
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="销售订单号:" prop="salesContractNo">
            <el-form-item label="订单编号:" prop="salesContractNo">
              <el-input v-model="form.salesContractNo" placeholder="可手动输入或自动生成" clearable :disabled="operationType === 'view'" />
            </el-form-item>
          </el-col>
@@ -337,17 +332,19 @@
            <el-row :gutter="30">
               <el-col :span="24">
                  <el-form-item label="产品大类:" prop="productCategory">
                     <el-tree-select v-model="productForm.productCategory" placeholder="请选择" clearable filterable check-strictly
                                     @change="getModels" :data="productOptions" :render-after-expand="false" style="width: 100%" />
              <el-input v-model="productForm.productCategory" placeholder="请输入" clearable />
<!--                     <el-tree-select v-model="productForm.productCategory" placeholder="请选择" clearable filterable check-strictly-->
<!--                                     @change="getModels" :data="productOptions" :render-after-expand="false" style="width: 100%" />-->
                  </el-form-item>
               </el-col>
            </el-row>
            <el-row :gutter="30">
               <el-col :span="24">
                  <el-form-item label="规格型号:" prop="productModelId">
                     <el-select v-model="productForm.productModelId" placeholder="请选择" clearable @change="getProductModel" filterable>
                        <el-option v-for="item in modelOptions" :key="item.id" :label="item.model" :value="item.id" />
                     </el-select>
                  <el-form-item label="规格型号:" prop="specificationModel">
              <el-input v-model="productForm.specificationModel" placeholder="请输入" clearable />
<!--                     <el-select v-model="productForm.productModelId" placeholder="请选择" clearable @change="getProductModel" filterable>-->
<!--                        <el-option v-for="item in modelOptions" :key="item.id" :label="item.model" :value="item.id" />-->
<!--                     </el-select>-->
                  </el-form-item>
               </el-col>
            </el-row>
@@ -588,50 +585,6 @@
                  </el-form-item>
               </el-col>
            </el-row>
        <!-- 审批人选择(仿协同审批里的审批人节点选择) -->
        <el-row>
          <el-col :span="24">
            <el-form-item>
              <template #label>
                <span>审批人选择:</span>
                <el-button type="primary" @click="addApproverNode" style="margin-left: 8px;">新增节点</el-button>
              </template>
              <div style="display: flex; align-items: flex-end; flex-wrap: wrap;">
                <div
                  v-for="(node, index) in approverNodes"
                  :key="node.id"
                  style="margin-right: 20px; text-align: center; margin-bottom: 10px;"
                >
                  <div>
                    <span>审批人</span>
                    →
                  </div>
                  <el-select
                    v-model="node.userId"
                    placeholder="选择人员"
                    filterable
                    style="width: 140px; margin-bottom: 8px;"
                  >
                    <el-option
                      v-for="user in userList"
                      :key="user.userId"
                      :label="user.nickName"
                      :value="user.userId"
                    />
                  </el-select>
                  <div>
                    <el-button
                      type="danger"
                      @click="removeApproverNode(index)"
                      v-if="approverNodes.length > 1"
                    >删除</el-button>
                  </div>
                </div>
              </div>
            </el-form-item>
          </el-col>
        </el-row>
         </el-form>
         <template #footer>
            <div class="dialog-footer">
@@ -805,16 +758,6 @@
  },
});
const { deliveryForm, deliveryRules } = toRefs(deliveryFormData);
// 发货审批人节点(仿协同审批 infoFormDia.vue)
const approverNodes = ref([{ id: 1, userId: null }]);
let nextApproverId = 2;
const addApproverNode = () => {
  approverNodes.value.push({ id: nextApproverId++, userId: null });
};
const removeApproverNode = (index) => {
  approverNodes.value.splice(index, 1);
};
// 导入相关
const importUploadRef = ref(null);
@@ -1324,7 +1267,7 @@
   productOperationType.value = type;
   productForm.value = {
      taxRate: 0,
      invoiceType: "增普票"
      invoiceType: ""
   };
   proxy.resetForm("productFormRef");
   if (type === "edit") {
@@ -2223,9 +2166,6 @@
  deliveryForm.value = {
    type: "货车",
  };
  // 重置审批人节点(默认一个空节点)
  approverNodes.value = [{ id: 1, userId: null }];
  nextApproverId = 2;
   deliveryFormVisible.value = true;
};
@@ -2233,13 +2173,6 @@
const submitDelivery = () => {
  proxy.$refs["deliveryFormRef"].validate((valid) => {
    if (valid) {
      // 审批人必填校验(所有节点都要选人)
      const hasEmptyApprover = approverNodes.value.some(node => !node.userId);
      if (hasEmptyApprover) {
        proxy.$modal.msgError("请为所有审批节点选择审批人!");
        return;
      }
      const approveUserIds = approverNodes.value.map(node => node.userId).join(",");
      // 保存当前展开的行ID,以便发货后重新加载子表格数据
      const currentExpandedKeys = [...expandedRowKeys.value];
      const salesLedgerId = currentDeliveryRow.value.salesLedgerId;
@@ -2247,7 +2180,6 @@
        salesLedgerId: salesLedgerId,
        salesLedgerProductId: currentDeliveryRow.value.id,
        type: deliveryForm.value.type,
            approveUserIds,
      })
        .then(() => {
          proxy.$modal.msgSuccess("发货成功");