曹睿
2025-04-24 5519cbf2e00c7ba4c650a542d98da99978124a30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<template>
  <view class="list">
    <z-paging ref="pagingRef" v-model="wireReportList" :fixed="false" @query="getWireReportList">
      <template #top>
        <CardTitle title="报工信息" :hideAction="true" :full="false" @action="addReport" />
      </template>
      <wd-card
        v-for="(item, index) in wireReportList"
        :key="index"
        type="rectangle"
        custom-class="round"
      >
        <template #title>
          <view class="flex justify-between">
            <view>
              <wd-icon name="user" color="#0D867F"></wd-icon>
              <text class="text-[#0D867F] ml-2 font-medium">生产人</text>
              <text class="text-[#333333] ml-2">{{ item.productUser }}</text>
            </view>
            <view class="text-[#A8A8A8]" @click="toEdit">编辑</view>
          </view>
        </template>
        <ProductionCard :data="cardAttr" :value="item" />
        <template #footer>
          <wd-button size="small" plain @click="toCheck(item.id)">自检</wd-button>
        </template>
      </wd-card>
    </z-paging>
    <wd-popup v-model="dialog.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>
      </view>
      <WireForm ref="wireFormRef" />
    </wd-popup>
    <wd-toast />
  </view>
</template>
<script setup lang="ts">
import CardTitle from "@/components/card-title/index.vue";
import WireForm from "./wireForm.vue";
import { useToast } from "wot-design-uni";
import ProductionCard from "../../components/ProductionCard.vue";
import zPaging from "@/components/z-paging/z-paging.vue";
import { onLoad } from "@dcloudio/uni-app";
import ManageApi from "@/api/product/manage";
 
const pagingRef = ref();
const wireFormRef = ref();
const paramsId = ref();
const toast = useToast();
const dialog = reactive({
  visible: false,
});
 
const cardAttr = ref<any[]>([
  {
    label: "领用杆号",
    prop: "poleNumber",
  },
  {
    label: "杆重(kg)",
    prop: "poleWeight",
  },
  {
    label: "单丝盘号",
    prop: "monofilamentNumber",
  },
  {
    label: "规格型号",
    prop: "model",
  },
  {
    label: "盘长(m)",
    prop: "oneLength",
  },
  {
    label: "理论重量(kg)",
    prop: "theoryWeight",
  },
  {
    label: "实际重量(kg)",
    prop: "actuallyWeight",
  },
]);
 
const wireReportList = ref<any[]>([]);
 
const toEdit = () => {
  uni.navigateTo({
    url: "/pages/production/wire/report/wireEdit",
  });
};
 
const addReport = () => {
  dialog.visible = true;
};
 
const submit = () => {
  dialog.visible = wireFormRef.value.submit();
};
 
const cancel = () => {
  toast.show("取消");
  dialog.visible = false;
};
 
const toCheck = (id: number) => {
  uni.navigateTo({
    url: `/pages/production/wire/selfInspect/index?id=${id}`,
  });
};
 
// 获取拉丝报工列表
const getWireReportList = async () => {
  const { data } = await ManageApi.getReportList({
    wireId: paramsId.value,
    type: "拉丝",
  });
  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>