<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>
|