spring
8 天以前 78c565e37520fad100693c4e298e30e7c916d1bb
src/pages/production/twist/receive/steelCore/index.vue
@@ -23,15 +23,27 @@
        <ProductionCard :data="cardAttr" :value="item" color="#0D867F" />
      </wd-card>
    </z-paging>
  </view>
  <wd-popup v-model="dialog.visible" position="bottom" custom-class="yl-popup">
    <wd-popup v-model="addDialog.visible" position="bottom" custom-class="yl-popup">
    <view class="action px-3">
      <wd-button type="text" @click="cancel">取消</wd-button>
      <wd-button type="text" @click="submit">确定</wd-button>
        <wd-button type="text" @click="cancelAdd">取消</wd-button>
        <wd-button type="text" @click="submitAdd">确定</wd-button>
    </view>
    <SteelCore ref="steelCoreRef" @refresh="reloadList" />
      <SteelCore ref="addFormRef" mode="add" @refresh="reloadList" />
    </wd-popup>
    <wd-popup v-model="editDialog.visible" position="bottom" custom-class="yl-popup">
      <view class="action px-3">
        <wd-button type="text" @click="cancelEdit">取消</wd-button>
        <wd-button type="text" @click="submitEdit">确定</wd-button>
      </view>
      <SteelCore
        ref="editFormRef"
        mode="edit"
        :editData="editDialog.currentItem"
        @refresh="reloadList"
      />
  </wd-popup>
  <wd-toast />
  </view>
</template>
<script setup lang="ts">
@@ -39,19 +51,24 @@
import ProductionCard from "../../../components/ProductionCard.vue";
import { useToast } from "wot-design-uni";
import SteelCore from "./form.vue";
import { onLoad, onShow } from "@dcloudio/uni-app";
import { onLoad } from "@dcloudio/uni-app";
import ManageApi from "@/api/product/manage";
import zPaging from "@/components/z-paging/z-paging.vue";
const paramsId = ref();
const pagingRef = ref();
const steelCoreRef = ref();
const addFormRef = ref();
const editFormRef = ref();
const toast = useToast();
const dialog = reactive({
const addDialog = reactive({
  visible: false,
});
const editDialog = reactive({
  visible: false,
  currentItem: null as any,
  editId: undefined as number | undefined,
});
const cardList = ref<any[]>([]);
const needRefresh = ref(false); // 标记是否需要刷新
const cardAttr = ref<any[]>([
  {
@@ -76,38 +93,44 @@
]);
const toEdit = (id: number) => {
  needRefresh.value = true; // 标记需要刷新
  // 确保 cardList 是数组
  const listData = Array.isArray(cardList.value) ? cardList.value : [];
  console.log("toEdit - 传递的列表数据:", listData, "编辑ID:", id);
  uni.navigateTo({
    url: `/pages/production/twist/receive/steelCore/edit?id=${id}`,
    success: () => {
      // 页面跳转成功后发送事件传递完整列表数据和当前编辑ID
      uni.$emit("steelCoreEditData", {
        list: listData,
        editId: id,
      });
    },
  });
};
const addReport = () => {
  dialog.visible = true;
};
const submit = async () => {
  const success = await steelCoreRef.value.submit();
  if (success) {
    dialog.visible = false;
  const itemToEdit = cardList.value.find((item) => item.id === id);
  if (itemToEdit) {
    editDialog.currentItem = itemToEdit;
    editDialog.editId = id;
    editDialog.visible = true;
  }
};
const cancel = () => {
const addReport = () => {
  if (addFormRef.value) {
    addFormRef.value.resetFormData();
  }
  addDialog.visible = true;
};
const submitAdd = async () => {
  const success = await addFormRef.value.submit();
  if (success) {
    addDialog.visible = false;
  }
};
const cancelAdd = () => {
  toast.show("取消");
  dialog.visible = false;
  addDialog.visible = false;
};
const submitEdit = async () => {
  const success = await editFormRef.value.submitEdit(cardList.value, editDialog.editId);
  if (success) {
    editDialog.visible = false;
    reloadList();
  }
};
const cancelEdit = () => {
  toast.show("取消");
  editDialog.visible = false;
};
const getList = async () => {
@@ -126,14 +149,6 @@
onLoad((options: any) => {
  paramsId.value = options.id;
});
onShow(() => {
  // 从编辑页返回时刷新列表
  if (needRefresh.value) {
    reloadList();
    needRefresh.value = false;
  }
});
</script>