曹睿
7 天以前 665c18b68a5dedba63e00f89f763539967fb7f08
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<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",
    span: 24,
  },
  {
    label: "单丝盘号",
    prop: "monofilamentNumber",
    span: 24,
  },
  {
    label: "杆型号",
    prop: "poleModel",
  },
  {
    label: "杆包号",
    prop: "polePackageNumber",
  },
  {
    label: "杆重(kg)",
    prop: "poleWeight",
  },
  {
    label: "规格型号",
    prop: "model",
  },
  {
    label: "盘型号",
    prop: "dishModel",
  },
  {
    label: "盘长(m)",
    prop: "oneLength",
  },
  {
    label: "实际长度",
    prop: "actuallyLength",
  },
  {
    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();
  pagingRef.value.reload();
};
 
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 - 30px);
  padding: 12px;
  background: #f3f9f8;
 
  :deep() {
    .round {
      border-radius: 4px;
    }
  }
}
 
.action {
  display: flex;
  justify-content: space-between;
}
</style>