<template> 
 | 
  <view class="list"> 
 | 
    <z-paging 
 | 
      ref="pagingRef" 
 | 
      v-model="cardList" 
 | 
      :fixed="false" 
 | 
      :auto-show-back-to-top="true" 
 | 
      @query="getList" 
 | 
    > 
 | 
      <template #top> 
 | 
        <CardTitle title="盘具领用" :hideAction="true" :full="false" @action="addReport" /> 
 | 
      </template> 
 | 
      <wd-card v-for="(item, index) in cardList" :key="index" type="rectangle" custom-class="round"> 
 | 
        <template #title> 
 | 
          <view class="flex justify-between"> 
 | 
            <view> 
 | 
              <wd-icon name="a-rootlist" color="#0D867F"></wd-icon> 
 | 
              <text class="text-[#252525] ml-2 font-medium">{{ item.diskMaterial }}</text> 
 | 
            </view> 
 | 
            <view class="text-[#A8A8A8]" @click="toEdit(item.id)">编辑</view> 
 | 
          </view> 
 | 
        </template> 
 | 
        <ProductionCard :data="cardAttr" :value="item" color="#0D867F" /> 
 | 
      </wd-card> 
 | 
    </z-paging> 
 | 
    <wd-popup v-model="addDialog.visible" position="bottom" custom-class="yl-popup"> 
 | 
      <view class="action px-3"> 
 | 
        <wd-button type="text" @click="cancelAdd">取消</wd-button> 
 | 
        <wd-button type="text" @click="submitAdd">确定</wd-button> 
 | 
      </view> 
 | 
      <PlateForm 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> 
 | 
      <PlateForm 
 | 
        ref="editFormRef" 
 | 
        mode="edit" 
 | 
        :editData="editDialog.currentItem" 
 | 
        @refresh="reloadList" 
 | 
      /> 
 | 
    </wd-popup> 
 | 
    <wd-toast /> 
 | 
  </view> 
 | 
</template> 
 | 
  
 | 
<script setup lang="ts"> 
 | 
import CardTitle from "@/components/card-title/index.vue"; 
 | 
import ProductionCard from "../../../components/ProductionCard.vue"; 
 | 
import { useToast } from "wot-design-uni"; 
 | 
import PlateForm from "./form.vue"; 
 | 
import { onLoad, onShow } 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 addFormRef = ref(); 
 | 
const editFormRef = ref(); 
 | 
const toast = useToast(); 
 | 
const addDialog = reactive({ 
 | 
  visible: false, 
 | 
}); 
 | 
const editDialog = reactive({ 
 | 
  visible: false, 
 | 
  currentItem: null as any, 
 | 
  editId: undefined as number | undefined, 
 | 
}); 
 | 
const cardList = ref<any[]>([]); 
 | 
  
 | 
const cardAttr = ref<any[]>([ 
 | 
  { 
 | 
    label: "尺寸", 
 | 
    prop: "model", 
 | 
  }, 
 | 
  { 
 | 
    label: "重量", 
 | 
    prop: "weight", 
 | 
    unit: "kg", 
 | 
  }, 
 | 
  { 
 | 
    label: "数量", 
 | 
    prop: "amount", 
 | 
  }, 
 | 
  { 
 | 
    label: "厂家", 
 | 
    prop: "supplier", 
 | 
    span: 14, 
 | 
  }, 
 | 
]); 
 | 
  
 | 
const toEdit = (id: number) => { 
 | 
  // 找到需要编辑的项 
 | 
  const itemToEdit = cardList.value.find((item) => item.id === id); 
 | 
  if (itemToEdit) { 
 | 
    editDialog.currentItem = itemToEdit; 
 | 
    editDialog.editId = id; 
 | 
    editDialog.visible = true; 
 | 
  } 
 | 
}; 
 | 
  
 | 
const addReport = () => { 
 | 
  // 重置表单数据 
 | 
  if (addFormRef.value) { 
 | 
    addFormRef.value.resetFormData(); 
 | 
  } 
 | 
  addDialog.visible = true; 
 | 
}; 
 | 
  
 | 
const submitAdd = async () => { 
 | 
  toast.show("提交"); 
 | 
  const success = await addFormRef.value.submit(); 
 | 
  if (success) { 
 | 
    addDialog.visible = false; 
 | 
  } 
 | 
}; 
 | 
  
 | 
const cancelAdd = () => { 
 | 
  toast.show("取消"); 
 | 
  addDialog.visible = false; 
 | 
  // 清空表单数据 
 | 
  addFormRef.value?.$refs?.form?.resetFields(); 
 | 
}; 
 | 
  
 | 
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 reloadList = () => { 
 | 
  pagingRef.value.refresh(); 
 | 
}; 
 | 
  
 | 
const getList = async () => { 
 | 
  const { code, data } = await ManageApi.getStrandedWireDish({ 
 | 
    wireId: paramsId.value, 
 | 
    type: "盘具", 
 | 
  }); 
 | 
  if (code == 200) { 
 | 
    pagingRef.value.complete(data); 
 | 
  } 
 | 
}; 
 | 
onLoad((options: any) => { 
 | 
  paramsId.value = options.id; 
 | 
}); 
 | 
</script> 
 | 
  
 | 
<style lang="scss" scoped> 
 | 
.list { 
 | 
  height: calc(100vh - 120px); 
 | 
  padding: 12px; 
 | 
  background: #f3f9f8; 
 | 
  
 | 
  :deep() { 
 | 
    .round { 
 | 
      border-radius: 4px; 
 | 
    } 
 | 
  } 
 | 
} 
 | 
  
 | 
.action { 
 | 
  display: flex; 
 | 
  justify-content: space-between; 
 | 
} 
 | 
</style> 
 |