huminmin
7 小时以前 03cdf7070dc62639c20818ead8421bb3d663da3b
src/views/procurementManagement/procurementLedger/index.vue
@@ -157,6 +157,10 @@
                         prop="entryDate"
                         width="100"
                         show-overflow-tooltip />
        <el-table-column label="备注"
                         prop="remarks"
                         width="200"
                         show-overflow-tooltip />
        <el-table-column fixed="right"
                         label="操作"
                         width="120"
@@ -229,7 +233,7 @@
                <el-option v-for="item in supplierList"
                           :key="item.id"
                           :label="item.supplierName"
                           :value="item.id" />
                                        :value="item.id" >{{item.supplierName + '---' + item.supplierType}}</el-option>
              </el-select>
            </el-form-item>
          </el-col>
@@ -426,15 +430,15 @@
                           prop="taxExclusiveTotalPrice"
                           :formatter="formattedNumber"
                           width="150" />
          <el-table-column label="是否质检"
                           prop="isChecked"
                           width="150">
            <template #default="scope">
              <el-tag :type="scope.row.isChecked ? 'success' : 'info'">
                {{ scope.row.isChecked ? '是' : '否' }}
              </el-tag>
            </template>
          </el-table-column>
<!--          <el-table-column label="是否质检"-->
<!--                           prop="isChecked"-->
<!--                           width="150">-->
<!--            <template #default="scope">-->
<!--              <el-tag :type="scope.row.isChecked ? 'success' : 'info'">-->
<!--                {{ scope.row.isChecked ? '是' : '否' }}-->
<!--              </el-tag>-->
<!--            </template>-->
<!--          </el-table-column>-->
          <el-table-column fixed="right"
                           label="操作"
                           min-width="60"
@@ -450,8 +454,8 @@
        <el-row :gutter="30">
          <el-col :span="24">
            <el-form-item label="备注·:"
                          prop="remark">
              <el-input v-model="form.remark"
                          prop="remarks">
              <el-input v-model="form.remarks"
                        placeholder="请输入"
                        clearable
                        type="textarea"
@@ -462,7 +466,7 @@
        <el-row :gutter="30">
          <el-col :span="24">
            <el-form-item label="附件材料:"
                          prop="remark">
                          prop="purchaseLedgerFiles">
              <el-upload v-model:file-list="fileList"
                         :action="upload.url"
                         multiple
@@ -669,19 +673,19 @@
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="是否质检:"
                          prop="isChecked">
              <el-radio-group v-model="productForm.isChecked">
                <el-radio label="是"
                          :value="true" />
                <el-radio label="否"
                          :value="false" />
              </el-radio-group>
            </el-form-item>
          </el-col>
        </el-row>
<!--        <el-row :gutter="30">-->
<!--          <el-col :span="12">-->
<!--            <el-form-item label="是否质检:"-->
<!--                          prop="isChecked">-->
<!--              <el-radio-group v-model="productForm.isChecked">-->
<!--                <el-radio label="是"-->
<!--                          :value="true" />-->
<!--                <el-radio label="否"-->
<!--                          :value="false" />-->
<!--              </el-radio-group>-->
<!--            </el-form-item>-->
<!--          </el-col>-->
<!--        </el-row>-->
      </el-form>
    </FormDialog>
    <FileListDialog 
@@ -1470,6 +1474,22 @@
    if (type === "edit") {
      // 复制行数据
      productForm.value = { ...row };
      // el-radio-group 的 value 是布尔 true/false
      // 后端/表格数据可能是 0/1 或字符串,需做一次归一化,避免不回显/提交默认“否”
      const normalizeIsChecked = (val) => {
        if (val === true) return true;
        if (val === false) return false;
        if (val === 1 || val === "1") return true;
        if (val === 0 || val === "0") return false;
        if (typeof val === "string") {
          const s = val.trim().toLowerCase();
          if (["是", "yes", "true", "y"].includes(s)) return true;
          if (["否", "no", "false", "n"].includes(s)) return false;
        }
        return !!val;
      };
      productForm.value.isChecked = normalizeIsChecked(row?.isChecked);
      
      // 如果是从模板加载的数据,可能没有 productId 和 productModelId
      // 需要根据 productCategory 和 specificationModel 来查找对应的 ID
@@ -1528,9 +1548,25 @@
  };
  const getProductOptions = () => {
    return productTreeList().then(res => {
      productOptions.value = convertIdToValue(res);
      const tree = convertIdToValue(res);
      productOptions.value = filterOutSemiFinished(tree);
      return res;
    });
  };
  const filterOutSemiFinished = (nodes = []) => {
    return (nodes || [])
      .filter(node => {
        const label = String(node?.label ?? "");
        return !label.includes("半成品");
      })
      .map(node => {
        const next = { ...node };
        if (next.children && next.children.length > 0) {
          next.children = filterOutSemiFinished(next.children);
        }
        return next;
      });
  };
  const getModels = value => {
    if (value) {
@@ -1644,7 +1680,7 @@
          delProduct(ids).then(res => {
            proxy.$modal.msgSuccess("删除成功");
            closeProductDia();
            getSalesLedgerWithProducts({ id: currentId.value, type: 2 }).then(
            getPurchaseById({ id: currentId.value, type: 2 }).then(
              res => {
                productData.value = res.productData;
              }
@@ -1679,14 +1715,6 @@
  const handleDelete = () => {
    let ids = [];
    if (selectedRows.value.length > 0) {
      // 检查是否有他人维护的数据
      const unauthorizedData = selectedRows.value.filter(
        item => item.recorderName !== userStore.nickName
      );
      if (unauthorizedData.length > 0) {
        proxy.$modal.msgWarning("不可删除他人维护的数据");
        return;
      }
      ids = selectedRows.value.map(item => item.id);
    } else {
      proxy.$modal.msgWarning("请选择数据");