zhangwencui
昨天 6942c113c1601e6cf48899ab6dec50866662dcec
src/views/salesManagement/salesLedger/index.vue
@@ -63,8 +63,10 @@
                     style="width: 140px">
            <el-option label="未入库"
                       :value="0" />
            <el-option label="已入库"
            <el-option label="部分入库"
                       :value="1" />
            <el-option label="已入库"
                       :value="2" />
          </el-select>
        </el-form-item>
        <el-form-item>
@@ -214,6 +216,18 @@
                          type="danger">不足</el-tag>
                </template>
              </el-table-column>
              <el-table-column label="入库状态"
                               width="100px"
                               align="center">
                <template #default="scope">
                  <el-tag v-if="scope.row.productStockStatus == 1"
                          type="success">已入库</el-tag>
                  <el-tag v-else-if="scope.row.productStockStatus == 0"
                          type="info">未出库</el-tag>
                  <el-tag v-else
                          type="danger">不足</el-tag>
                </template>
              </el-table-column>
              <!-- <el-table-column label="发货状态" width="140" align="center">
                        <template #default="scope">
                           <el-tag :type="getShippingStatusType(scope.row)" size="small">
@@ -328,6 +342,8 @@
            <el-tag v-if="Number(scope.row.stockStatus) === 0"
                    type="info">未入库</el-tag>
            <el-tag v-else-if="Number(scope.row.stockStatus) === 1"
                    type="success">部分入库</el-tag>
            <el-tag v-else-if="Number(scope.row.stockStatus) === 2"
                    type="success">已入库</el-tag>
            <el-tag v-else
                    type="info">-</el-tag>
@@ -1613,6 +1629,46 @@
        </div>
      </template>
    </el-dialog>
    <!-- 入库产品选择弹窗 -->
    <el-dialog v-model="stockDialogVisible"
               title="选择入库产品"
               width="60%"
               :close-on-click-modal="false">
      <el-table :data="stockProductList"
                border
                stripe
                v-loading="stockLoading"
                height="400px"
                @selection-change="val => selectedStockProductIds = val.map(item => item.id)">
        <el-table-column type="selection"
                         width="55"
                         align="center" />
        <el-table-column align="center"
                         label="序号"
                         type="index"
                         width="60" />
        <el-table-column prop="productCategory"
                         label="产品大类"
                         show-overflow-tooltip />
        <el-table-column prop="specificationModel"
                         label="规格型号"
                         show-overflow-tooltip />
        <el-table-column prop="quantity"
                         label="数量"
                         width="100" />
        <el-table-column prop="floorCode"
                         label="楼层编号"
                         show-overflow-tooltip />
      </el-table>
      <template #footer>
        <el-button @click="stockDialogVisible = false">取消</el-button>
        <el-button type="primary"
                   @click="submitStock"
                   :disabled="selectedStockProductIds.length === 0">
          确认入库
        </el-button>
      </template>
    </el-dialog>
  </div>
</template>
@@ -1688,6 +1744,13 @@
  const processFlowSelectBoundRouteId = ref(null);
  const processFlowSelectBoundRouteName = ref("");
  // 入库弹窗相关
  const stockDialogVisible = ref(false);
  const stockProductList = ref([]);
  const selectedStockProductIds = ref([]);
  const stockLoading = ref(false);
  const currentStockLedgerId = ref(null);
  // 用户信息表单弹框数据
  const operationType = ref("");
  const dialogFormVisible = ref(false);
@@ -1700,7 +1763,7 @@
      entryDateStart: undefined,
      entryDateEnd: undefined,
      deliveryStatus: undefined, // 发货状态:1未发货 2审批中 3审批失败 4已发货
      stockStatus: undefined, // 入库状态:0未入库 1已入库
      stockStatus: undefined, // 入库状态:0未入库 1部分入库 2已入库
    },
    form: {
      salesContractNo: "",
@@ -2614,12 +2677,37 @@
      ElMessage.warning("所选数据缺少id,无法入库");
      return;
    }
    if (Number(row.stockStatus) === 1) {
      ElMessage.info("该台账已入库,无需重复操作");
    if (Number(row.stockStatus) === 2) {
      ElMessage.info("该台账已全部入库,无需重复操作");
      return;
    }
    currentStockLedgerId.value = id;
    selectedStockProductIds.value = [];
    stockProductList.value = [];
    stockDialogVisible.value = true;
    stockLoading.value = true;
    try {
      await ElMessageBox.confirm("确认对所选台账执行入库?", "提示", {
      const res = await productList({ salesLedgerId: id, type: 1 });
      stockProductList.value = [];
      stockProductList.value =
        res.data.filter(item => item.productStockStatus == 0) || [];
    } catch (e) {
      proxy?.$modal?.msgError?.("获取产品列表失败");
    } finally {
      stockLoading.value = false;
    }
  };
  const submitStock = async () => {
    if (selectedStockProductIds.value.length === 0) {
      ElMessage.warning("请选择至少一个产品进行入库");
      return;
    }
    try {
      await ElMessageBox.confirm("确认对所选产品执行入库?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
@@ -2627,10 +2715,15 @@
    } catch {
      return;
    }
    proxy?.$modal?.loading?.("正在入库,请稍候...");
    try {
      await salesStock({ id });
      await salesStock({
        salesLedgerId: currentStockLedgerId.value,
        salesLedgerProducts: selectedStockProductIds.value,
      });
      proxy?.$modal?.msgSuccess?.("入库成功");
      stockDialogVisible.value = false;
      await getList();
    } catch (e) {
      proxy?.$modal?.msgError?.("入库失败,请稍后重试");