曹睿
2025-04-18 912b764830b165ff3b92267570ea43ef9dad58bf
feat: 拉丝
已修改5个文件
已重命名6个文件
已添加26个文件
1818 ■■■■■ 文件已修改
src/components/card-title/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/scan/index.vue 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages.json 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/components/ProductionCard.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/detail/twistDetail.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/detail/wireDetail.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/index.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/twist/backman/edit.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/twist/backman/form.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/twist/backman/index.vue 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/twist/components/MonofilCard.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/twist/receive/index.vue 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/twist/receive/monofil.vue 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/twist/receive/plate/edit.vue 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/twist/receive/plate/form.vue 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/twist/receive/plate/index.vue 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/twist/receive/steelCore/edit.vue 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/twist/receive/steelCore/form.vue 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/twist/receive/steelCore/index.vue 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/twist/report/edit.vue 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/twist/report/form.vue 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/twist/report/index.vue 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/twist/selfInspect/edit.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/twist/selfInspect/form.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/twist/selfInspect/index.vue 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/wire/backman/edit.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/wire/backman/form.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/wire/backman/index.vue 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/wire/receive/edit.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/wire/receive/form.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/wire/receive/index.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/wire/report/wire.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/wire/report/wireEdit.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/wire/report/wireForm.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/wire/selfInspect/edit.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/wire/selfInspect/form.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/production/wire/selfInspect/index.vue 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/card-title/index.vue
@@ -8,6 +8,7 @@
        æ–°å¢ž
      </wd-button>
    </view>
    <slot v-else name="action"></slot>
  </view>
</template>
<script setup lang="ts">
src/components/scan/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
<template>
  <view>
    <view class="content"></view>
  </view>
</template>
<!-- æ¿€å…‰æ‰«ç ï¼Œå¹¿æ’­æ¨¡å¼ -->
<script>
var main, receiver, filter;
var codeQueryTag = false;
export default {
  data() {
    return {
      scanCode: "",
    };
  },
  created() {
    // åˆå§‹åŒ–
    this.initScan();
    // å¯åŠ¨å¹¿æ’­
    this.startScan();
  },
  onHide() {
    // ç»“束广播
    this.stopScan();
  },
  destroyed() {
    // ç»“束广播
    this.stopScan();
  },
  methods: {
    // åˆå§‹åŒ–
    initScan() {
      //  #ifdef APP
      // console.log('initScan:扫码初始化');
      let that = this;
      main = plus.android.runtimeMainActivity(); //获取activity
      //var context = plus.android.importClass('android.content.Context'); //上下文
      var IntentFilter = plus.android.importClass("android.content.IntentFilter");
      filter = new IntentFilter();
      //下面的addAction æ”¹ä¸ºè‡ªå·± pad è®¾å¤‡çš„广播动作(在扫描设置或者厂商附带的app é‡Œé¢è®¾ç½®ä¸ºå¹¿æ’­æ¨¡å¼ï¼Œç„¶åŽæŸ¥çœ‹ç›¸åº”参数)
      filter.addAction("com.dwexample.ACTION");
      receiver = plus.android.implements("io.dcloud.feature.internal.reflect.BroadcastReceiver", {
        onReceive: (context, intent) => {
          console.log("---onReceive:", context, intent);
          plus.android.importClass(intent);
          //下面的getStringExtra内改为自己的广播标签(键值/key): data
          //斑马 TC20
          var banMaSacanInfo = intent.getStringExtra(
            "com.motorolasolutions.emdk.datawedge.data_string"
          ); // callback(intent.getStringExtra('com.motorolasolutions.emdk.datawedge.data_string'));
          console.log("斑马扫描结果", banMaSacanInfo);
          // ä¼ å…¥æŽ¥æ”¶åˆ°çš„参数
          that.queryCode(banMaSacanInfo);
        },
      });
      // #endif
    },
    // å¼€å¯å¹¿æ’­
    startScan() {
      //  #ifdef APP
      console.log("startScan,开启广播接收");
      main.registerReceiver(receiver, filter);
      // #endif
    },
    // å…³é—­å¹¿æ’­
    stopScan() {
      //  #ifdef APP
      console.log("stopScan结束");
      main.unregisterReceiver(receiver);
      // #endif
    },
    // é¿å…é‡å¤æ‰«ç 
    queryCode: function (code) {
      //  #ifdef APP
      if (codeQueryTag) return false;
      codeQueryTag = true;
      setTimeout(function () {
        codeQueryTag = false;
      }, 150);
      // console.log('-****--扫码code: ', code);
      let data = code;
      uni.$emit("scan", {
        code: data,
      });
      // #endif
    },
  },
};
</script>
src/pages.json
@@ -153,29 +153,113 @@
        "navigationBarTitleText": "拉丝详情"
      }
    },
     {
      "path": "pages/production/detail/twistDetail",
      "style": {
        "navigationBarTitleText": "绞线详情"
      }
    },
    {
      "path": "pages/production/report/wire",
      "path": "pages/production/wire/report/wire",
      "style": {
        "navigationBarTitleText": "拉丝报工"
      }
    },
    {
      "path": "pages/production/report/wireEdit",
      "path": "pages/production/wire/report/wireEdit",
      "style": {
        "navigationBarTitleText": "报工上报"
      }
    },
    {
      "path": "pages/production/receive/index",
      "path": "pages/production/wire/receive/index",
      "style": {
        "navigationBarTitleText": "拉丝领用"
      }
    },
    {
      "path": "pages/production/receive/edit",
      "path": "pages/production/wire/receive/edit",
      "style": {
        "navigationBarTitleText": "编辑拉丝领用"
      }
    },
    {
      "path": "pages/production/wire/selfInspect/index",
      "style": {
        "navigationBarTitleText": "拉丝自检"
      }
    },
    {
      "path": "pages/production/wire/selfInspect/edit",
      "style": {
        "navigationBarTitleText": "编辑拉丝自检"
      }
    },
    {
      "path": "pages/production/wire/backman/index",
      "style": {
        "navigationBarTitleText": "杂工"
      }
    },
    {
      "path": "pages/production/wire/backman/edit",
      "style": {
        "navigationBarTitleText": "编辑杂工"
      }
    },
    {
      "path": "pages/production/twist/report/index",
      "style": {
        "navigationBarTitleText": "绞线报工"
      }
    },
    {
      "path": "pages/production/twist/report/edit",
      "style": {
        "navigationBarTitleText": "绞线报工上报"
      }
    },
    {
      "path": "pages/production/twist/receive/index",
      "style": {
        "navigationBarTitleText": "绞线材料领用"
      }
    },
    {
      "path": "pages/production/twist/receive/plate/edit",
      "style": {
        "navigationBarTitleText": "绞线盘具编辑"
      }
    },
    {
      "path": "pages/production/twist/receive/steelCore/edit",
      "style": {
        "navigationBarTitleText": "绞线钢芯编辑"
      }
    },
    {
      "path": "pages/production/twist/selfInspect/index",
      "style": {
        "navigationBarTitleText": "绞线自检"
      }
    },
    {
      "path": "pages/production/twist/selfInspect/edit",
      "style": {
        "navigationBarTitleText": "绞线自检编辑"
      }
    },
    {
      "path": "pages/production/twist/backman/index",
      "style": {
        "navigationBarTitleText": "绞线杂工"
      }
    },
    {
      "path": "pages/production/twist/backman/edit",
      "style": {
        "navigationBarTitleText": "绞线杂工编辑"
      }
    }
  ],
  "globalStyle": {
src/pages/production/components/ProductionCard.vue
@@ -1,9 +1,9 @@
<template>
  <wd-row>
    <wd-col v-for="(item, index) in data" :key="index" :span="12" class="my-1">
      <view class="flex justify-between pr-1">
    <wd-col v-for="(item, index) in data" :key="index" :span="item.span ?? 12" class="my-1">
      <view class="flex justify-between pr-1 w-full h-[20px]">
        <view class="text-[#646874]">{{ item.label }}</view>
        <view class="font-medium" :style="{ color: color }">{{ item.value }}</view>
        <view class="font-medium" :style="{ color: item.color ?? color }">{{ item.value }}</view>
      </view>
    </wd-col>
  </wd-row>
src/pages/production/detail/twistDetail.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
<template>
  <view>
    <ProductCard />
    <view class="mx-3">
      <wd-grid class="rounded-lg" clickable>
        <wd-grid-item
          icon="computer"
          link-type="navigateTo"
          url="/pages/production/twist/report/index"
          text="报工"
        />
        <wd-grid-item
          icon="chart"
          text="自检"
          link-type="navigateTo"
          url="/pages/production/twist/selfInspect/index"
        />
        <wd-grid-item
          icon="tips"
          link-type="navigateTo"
          url="/pages/production/twist/backman/index"
          text="杂工"
        />
        <wd-grid-item
          icon="wallet"
          link-type="navigateTo"
          url="/pages/production/twist/receive/index"
          text="材料领用"
        />
      </wd-grid>
    </view>
  </view>
</template>
<script lang="ts" setup>
import ProductCard from "@/components/product_card/index.vue";
</script>
<style lang="scss" scoped></style>
src/pages/production/detail/wireDetail.vue
@@ -6,15 +6,25 @@
        <wd-grid-item
          icon="computer"
          link-type="navigateTo"
          url="/pages/production/report/wire"
          url="/pages/production/wire/report/wire"
          text="报工"
        />
        <wd-grid-item icon="chart" text="自检" />
        <wd-grid-item icon="tips" text="杂工" />
        <wd-grid-item
          icon="chart"
          text="自检"
          link-type="navigateTo"
          url="/pages/production/wire/selfInspect/index"
        />
        <wd-grid-item
          icon="tips"
          link-type="navigateTo"
          url="/pages/production/wire/backman/index"
          text="杂工"
        />
        <wd-grid-item
          icon="wallet"
          link-type="navigateTo"
          url="/pages/production/receive/index"
          url="/pages/production/wire/receive/index"
          text="材料领用"
        />
      </wd-grid>
src/pages/production/index.vue
@@ -15,7 +15,7 @@
        <wd-tab :title="item.label">
          <view class="card_box">
            <Statistics class="statistics_box" />
            <ProductCard v-for="item in 10" @click="toDetail" />
            <ProductCard v-for="(item, index) in 10" @click="toDetail(index)" />
            <wd-loadmore custom-class="loadmore" state="loading" />
          </view>
        </wd-tab>
@@ -38,10 +38,16 @@
  },
]);
const toDetail = () => {
  uni.navigateTo({
    url: "/pages/production/detail/wireDetail",
  });
const toDetail = (type: number) => {
  if (Math.floor(type) % 2 === 0) {
    uni.navigateTo({
      url: "/pages/production/detail/wireDetail",
    });
  } else {
    uni.navigateTo({
      url: "/pages/production/detail/twistDetail",
    });
  }
};
</script>
src/pages/production/twist/backman/edit.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
<template>
  <view>
    <CardTitle title="编辑自检" :hideAction="false" />
    <BackmanForm class="mx-4" />
    <view class="footer">
      <wd-button
        class="submit_btn"
        type="primary"
        size="large"
        block
        :round="false"
        @click="handleSubmit"
      >
        ä¿å­˜
      </wd-button>
    </view>
  </view>
</template>
<script setup lang="ts">
import CardTitle from "@/components/card-title/index.vue";
import BackmanForm from "./form.vue";
const handleSubmit = () => {};
</script>
<style lang="scss" scoped>
.footer {
  margin: 20px 16px 0 16px;
}
</style>
src/pages/production/twist/backman/form.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
<template>
  <wd-form ref="form" :model="model" class="relative form_box">
    <wd-cell-group :border="true">
      <wd-input
        v-model="model.workbench"
        label="杂工名称"
        label-width="100px"
        prop="workbench"
        clearable
        placeholder="请输入杂工名称"
      />
      <wd-input
        v-model="model.poleNo"
        label="杆号"
        label-width="100px"
        prop="poleNo"
        clearable
        placeholder="请输入杆号"
      />
      <wd-input
        v-model="model.unit"
        label="单位"
        label-width="100px"
        prop="unit"
        clearable
        placeholder="请输入单位"
      />
      <wd-input
        v-model="model.poleWeight"
        label="杆重"
        label-width="100px"
        prop="poleWeight"
        clearable
        placeholder="请输入杆重"
      />
      <wd-input
        v-model="model.useWeight"
        label="使用重量"
        label-width="100px"
        prop="useWeight"
        clearable
        placeholder="请输入使用重量"
      />
    </wd-cell-group>
  </wd-form>
</template>
<script setup lang="ts">
import useFormData from "@/hooks/useFormData";
const { form: model } = useFormData({
  backmanName: undefined, // æ‚工名称
  unit: undefined, // å•位
  num: undefined, // æ•°é‡
  caller: undefined, // æŠ¥å·¥äºº
  callerDate: undefined, // æŠ¥å·¥æ—¥æœŸ
});
</script>
<style lang="scss" scoped>
.form_box {
}
.submit_btn {
  position: absolute;
  bottom: 0;
  width: 100%;
}
</style>
src/pages/production/twist/backman/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,108 @@
<template>
  <view class="page pt-2">
    <CardTitle title="绞线杂工信息" :hideAction="true" @action="addReport" />
    <view class="list">
      <wd-card 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">杂工项目名称</text>
            </view>
            <view class="text-[#A8A8A8]" @click="toEdit">编辑</view>
          </view>
        </template>
        <ProductionCard :data="cardAttr" color="#0D867F" />
      </wd-card>
    </view>
    <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>
      <BackmanForm />
    </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 BackmanForm from "./form.vue";
const toast = useToast();
const dialog = reactive({
  visible: false,
});
const cardAttr = ref<any[]>([
  {
    label: "单位",
    value: "nΩ·m",
  },
  {
    label: "定额",
    value: "1246",
  },
  {
    label: "数量",
    value: "4",
  },
  {
    label: "金额",
    value: "查看",
  },
  {
    label: "报工人",
    value: "雷进宝",
  },
  {
    label: "日期",
    value: "2022-05-17",
  },
]);
const toEdit = () => {
  uni.navigateTo({
    url: "/pages/production/twist/backman/edit",
  });
};
const addReport = () => {
  dialog.visible = true;
};
const submit = () => {
  toast.show("提交");
  dialog.visible = false;
};
const cancel = () => {
  toast.show("取消");
  dialog.visible = false;
};
</script>
<style lang="scss" scoped>
.page {
  background: #f3f9f8;
  .list {
    height: calc(100vh - 120px);
    margin: 12px;
    overflow: scroll;
    :deep() {
      .round {
        border-radius: 4px;
      }
    }
  }
}
.action {
  display: flex;
  justify-content: space-between;
}
</style>
src/pages/production/twist/components/MonofilCard.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
<template>
  <wd-card>
    <wd-form :model="model">
      <wd-cell-group :border="true">
        <wd-input
          v-model="model.no"
          label="单丝编号"
          label-width="100px"
          prop="no"
          clearable
          placeholder="请输入单丝编号"
        />
        <wd-input
          v-model="model.length"
          label="长度"
          label-width="100px"
          prop="length"
          clearable
          placeholder="请输入长度"
        />
      </wd-cell-group>
    </wd-form>
  </wd-card>
</template>
<script setup lang="ts">
import useFormData from "@/hooks/useFormData";
const { form: model } = useFormData({
  no: undefined,
  length: undefined,
});
</script>
<style lang="scss" scoped></style>
src/pages/production/twist/receive/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
<template>
  <wd-tabs v-model="tab" auto-line-width>
    <wd-tab title="单丝领用" name="单丝领用">
      <Monofil />
    </wd-tab>
    <wd-tab title="盘具领用" name="盘具领用">
      <view class="content">
        <Plate />
      </view>
    </wd-tab>
    <wd-tab title="钢芯领用" name="钢芯领用">
      <view class="content">
        <SteelCore />
      </view>
    </wd-tab>
  </wd-tabs>
</template>
<script setup lang="ts">
import Monofil from "./monofil.vue";
import Plate from "./plate/index.vue";
import SteelCore from "./steelCore/index.vue";
const tab = ref("单丝领用");
</script>
<style lang="scss" scoped>
::v-deep .wd-tabs__line {
  background: #0d867f;
}
::v-deep .wd-tabs__nav {
  border-bottom: 1px #dddddd solid;
}
</style>
src/pages/production/twist/receive/monofil.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
<template>
  <view class="page">
    <CardTitle title="单丝领用" :hideAction="false">
      <template #action>
        <wd-button type="icon" icon="scan" color="#0D867F" @click="scanCode"></wd-button>
      </template>
    </CardTitle>
    <view class="list_box">
      <MonofilCard v-for="(item, index) in 4" :key="index" />
    </view>
    <scan />
  </view>
</template>
<script setup lang="ts">
import CardTitle from "@/components/card-title/index.vue";
import MonofilCard from "../components/MonofilCard.vue";
import scan from "@/components/scan/index.vue";
import { onLoad, onUnload } from "@dcloudio/uni-app";
const cardList = ref<any[]>([]);
const BroadcastScanningToObtainData = (res: any) => {
  console.log("获取次数", res.code);
  let barcode = res.code;
  console.log("打印数据", barcode);
};
const scanCode = () => {
  uni.scanCode({
    onlyFromCamera: true,
    success: (res) => {
      console.log("条码类型:" + res.scanType);
      console.log("条码内容:" + res.result);
      cardList.value.push(res.result);
    },
  });
};
onLoad(() => {
  // å¼€å¯å¹¿æ’­ç›‘听事件
  uni.$on("scan", BroadcastScanningToObtainData);
});
onUnload(() => {
  // å¼€å¯å¹¿æ’­ç›‘听事件
  uni.$off("scan", BroadcastScanningToObtainData);
});
</script>
<style lang="scss" scoped>
.page {
  background: #f3f9f8;
  .list_box {
    height: calc(100% - 100px);
    overflow: scroll;
  }
}
:deep(.wd-button__content) {
  color: #0d867f;
}
</style>
src/pages/production/twist/receive/plate/edit.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
<template>
  <view>
    <CardTitle title="绞线盘具领用" :hideAction="false" />
    <PlateForm class="mx-4" />
    <view class="footer">
      <wd-button
        class="submit_btn"
        type="primary"
        size="large"
        block
        :round="false"
        @click="handleSubmit"
      >
        ä¿å­˜
      </wd-button>
    </view>
  </view>
</template>
<script lang="ts" setup>
import CardTitle from "@/components/card-title/index.vue";
import PlateForm from "./form.vue";
const handleSubmit = () => {};
</script>
<style lang="scss" scoped>
.footer {
  margin: 20px 16px 0 16px;
}
</style>
src/pages/production/twist/receive/plate/form.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
<template>
  <wd-form ref="form" :model="model" class="relative form_box">
    <wd-cell-group :border="true">
      <wd-input
        v-model="model.plateType"
        label="盘具类型"
        label-width="100px"
        prop="plateType"
        clearable
        placeholder="请输入盘具类型"
      />
      <wd-input
        v-model="model.length"
        label="尺寸"
        label-width="100px"
        prop="length"
        clearable
        placeholder="请输入尺寸"
      />
      <wd-input
        v-model="model.weigth"
        label="重量"
        label-width="100px"
        prop="weigth"
        clearable
        placeholder="请输入重量"
      />
    </wd-cell-group>
  </wd-form>
</template>
<script setup lang="ts">
import useFormData from "@/hooks/useFormData";
const { form: model } = useFormData({
  plateType: undefined, // ç›˜å…·ç±»åž‹
  length: undefined, // å°ºå¯¸
  weigth: undefined, // é‡é‡
});
</script>
<style lang="scss" scoped>
.form_box {
}
.submit_btn {
  position: absolute;
  bottom: 0;
  width: 100%;
}
</style>
src/pages/production/twist/receive/plate/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,92 @@
<template>
  <view class="page pt-2">
    <CardTitle title="盘具领用" :hideAction="true" @action="addReport" />
    <view class="list">
      <wd-card v-for="(item, index) in 2" :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">铁木盘</text>
            </view>
            <view class="text-[#A8A8A8]" @click="toEdit">编辑</view>
          </view>
        </template>
        <ProductionCard :data="cardAttr" color="#0D867F" />
      </wd-card>
    </view>
    <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>
      <PlateForm />
    </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";
const toast = useToast();
const dialog = reactive({
  visible: false,
});
const cardAttr = ref<any[]>([
  {
    label: "尺寸",
    value: "10m",
  },
  {
    label: "重量",
    value: "46kg",
  },
]);
const toEdit = () => {
  uni.navigateTo({
    url: "/pages/production/twist/receive/plate/edit",
  });
};
const addReport = () => {
  dialog.visible = true;
};
const submit = () => {
  toast.show("提交");
  dialog.visible = false;
};
const cancel = () => {
  toast.show("取消");
  dialog.visible = false;
};
</script>
<style lang="scss" scoped>
.page {
  background: #f3f9f8;
  .list {
    height: calc(100vh - 120px);
    margin: 12px;
    overflow: scroll;
    :deep() {
      .round {
        border-radius: 4px;
      }
    }
  }
}
.action {
  display: flex;
  justify-content: space-between;
}
</style>
src/pages/production/twist/receive/steelCore/edit.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
<template>
  <view>
    <CardTitle title="绞线盘具领用" :hideAction="false" />
    <SteelCoreForm class="mx-4" />
    <view class="footer">
      <wd-button
        class="submit_btn"
        type="primary"
        size="large"
        block
        :round="false"
        @click="handleSubmit"
      >
        ä¿å­˜
      </wd-button>
    </view>
  </view>
</template>
<script lang="ts" setup>
import CardTitle from "@/components/card-title/index.vue";
import SteelCoreForm from "./form.vue";
const handleSubmit = () => {};
</script>
<style lang="scss" scoped>
.footer {
  margin: 20px 16px 0 16px;
}
</style>
src/pages/production/twist/receive/steelCore/form.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,68 @@
<template>
  <wd-form ref="form" :model="model" class="relative form_box">
    <wd-cell-group :border="true">
      <wd-input
        v-model="model.steelCoreName"
        label="钢芯名称"
        label-width="100px"
        prop="steelCoreName"
        clearable
        placeholder="请输入钢芯名称"
      />
      <wd-input
        v-model="model.plateNo"
        label="盘号"
        label-width="100px"
        prop="plateNo"
        clearable
        placeholder="请输入盘号"
      />
      <wd-input
        v-model="model.length"
        label="长度"
        label-width="100px"
        prop="length"
        clearable
        placeholder="请输入长度"
      />
      <wd-input
        v-model="model.weight"
        label="重量"
        label-width="100px"
        prop="weight"
        clearable
        placeholder="请输入重量"
      />
      <wd-input
        v-model="model.manufacturers"
        label="厂家"
        label-width="100px"
        prop="manufacturers"
        clearable
        placeholder="请输入厂家"
      />
    </wd-cell-group>
  </wd-form>
</template>
<script lang="ts" setup>
import useFormData from "@/hooks/useFormData";
const { form: model } = useFormData({
  steelCoreName: undefined, // é’¢èŠ¯åç§°
  plateNo: undefined, // ç›˜å·
  length: undefined, // é•¿åº¦
  weight: undefined, // é‡é‡
  manufacturers: undefined, // åނ家
});
</script>
<style lang="scss" scoped>
.form_box {
}
.submit_btn {
  position: absolute;
  bottom: 0;
  width: 100%;
}
</style>
src/pages/production/twist/receive/steelCore/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
<template>
  <view class="page pt-2">
    <CardTitle title="钢芯领用" :hideAction="true" @action="addReport" />
    <view class="list">
      <wd-card v-for="(item, index) in 2" :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">JX28201021-1</text>
            </view>
            <view class="text-[#A8A8A8]" @click="toEdit">编辑</view>
          </view>
        </template>
        <ProductionCard :data="cardAttr" color="#0D867F" />
      </wd-card>
    </view>
    <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>
      <PlateForm />
    </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";
const toast = useToast();
const dialog = reactive({
  visible: false,
});
const cardAttr = ref<any[]>([
  {
    label: "盘号",
    value: "1902101",
  },
  {
    label: "长度",
    value: "46kg",
  },
  {
    label: "重量",
    value: "10kg",
  },
  {
    label: undefined,
    value: undefined,
  },
  {
    label: "厂家",
    value: "江苏省南通市芯导数字厂",
    span: 14,
  },
]);
const toEdit = () => {
  uni.navigateTo({
    url: "/pages/production/twist/receive/steelCore/edit",
  });
};
const addReport = () => {
  dialog.visible = true;
};
const submit = () => {
  toast.show("提交");
  dialog.visible = false;
};
const cancel = () => {
  toast.show("取消");
  dialog.visible = false;
};
</script>
<style lang="scss" scoped>
.page {
  background: #f3f9f8;
  .list {
    height: calc(100vh - 120px);
    margin: 12px;
    overflow: scroll;
    :deep() {
      .round {
        border-radius: 4px;
      }
    }
  }
}
.action {
  display: flex;
  justify-content: space-between;
}
</style>
src/pages/production/twist/report/edit.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
<template>
  <view>
    <CardTitle title="报工上报" :hideAction="false" />
    <TwistForm class="mx-4" />
    <view class="footer">
      <wd-button
        class="submit_btn"
        type="primary"
        size="large"
        block
        :round="false"
        @click="handleSubmit"
      >
        æŠ¥å·¥
      </wd-button>
    </view>
  </view>
</template>
<script lang="ts" setup>
import CardTitle from "@/components/card-title/index.vue";
import TwistForm from "./form.vue";
const handleSubmit = () => {};
</script>
<style lang="scss" scoped>
.footer {
  margin: 20px 16px 0 16px;
}
</style>
src/pages/production/twist/report/form.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
<template>
  <wd-form ref="form" :model="model" class="relative form_box">
    <wd-cell-group :border="true">
      <wd-input
        v-model="model.contractNo"
        label="合同号"
        label-width="100px"
        prop="contractNo"
        clearable
        placeholder="请输入合同号"
      />
      <wd-input
        v-model="model.status"
        label="状态"
        label-width="100px"
        prop="status"
        clearable
        placeholder="请输入状态"
      />
      <wd-input
        v-model="model.clientName"
        label="客户名称"
        label-width="100px"
        prop="clientName"
        clearable
        placeholder="请输入客户名称"
      />
      <wd-input
        v-model="model.workbench"
        label="机台"
        label-width="100px"
        prop="workbench"
        clearable
        placeholder="请输入机台"
      />
      <wd-input
        v-model="model.quality"
        label="质量追溯号"
        label-width="100px"
        prop="quality"
        clearable
        placeholder="请输入质量追溯号"
      />
      <wd-input
        v-model="model.specification"
        label="规格型号"
        label-width="100px"
        prop="specification"
        clearable
        placeholder="请输入规格型号"
      />
      <wd-input
        v-model="model.disc"
        label="盘长(m)"
        label-width="100px"
        prop="disc"
        clearable
        placeholder="请输入盘长"
      />
      <wd-input
        v-model="model.produced"
        label="已生产(m)"
        label-width="100px"
        prop="produced"
        clearable
        placeholder="请输入已生产"
      />
      <wd-input
        v-model="model.beProduced"
        label="待生产(m)"
        label-width="100px"
        prop="beProduced"
        clearable
        placeholder="请输入单丝盘长"
      />
    </wd-cell-group>
  </wd-form>
</template>
<script lang="ts" setup>
import useFormData from "@/hooks/useFormData";
const { form: model } = useFormData({
  contractNo: undefined, // åˆåŒå·
  status: undefined, // çŠ¶æ€
  clientName: undefined, // å®¢æˆ·åç§°
  workbench: undefined, // æœºå°
  quality: undefined, // è´¨é‡è¿½æº¯å·
  specification: undefined, // è§„格型号
  disc: undefined, // ç›˜é•¿
  produced: undefined, // å·²ç”Ÿäº§
  beProduced: undefined, // å¾…生产
});
</script>
<style lang="scss" scoped>
.form_box {
}
.submit_btn {
  position: absolute;
  bottom: 0;
  width: 100%;
}
</style>
src/pages/production/twist/report/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,123 @@
<template>
  <view class="page pt-2">
    <CardTitle title="报工信息" :hideAction="true" @action="addReport" />
    <view class="list">
      <wd-card v-for="(item, index) in 6" 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">方兆玉</text>
            </view>
            <view class="text-[#A8A8A8]" @click="toEdit">编辑</view>
          </view>
        </template>
        <ProductionCard :data="cardAttr" />
      </wd-card>
      <wd-loadmore custom-class="loadmore" state="loading" />
    </view>
    <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>
      <TwistForm />
    </wd-popup>
    <wd-toast />
  </view>
</template>
<script setup lang="ts">
import CardTitle from "@/components/card-title/index.vue";
import TwistForm from "./form.vue";
import { useToast } from "wot-design-uni";
import ProductionCard from "../../components/ProductionCard.vue";
const toast = useToast();
const dialog = reactive({
  visible: false,
});
const cardAttr = ref<any[]>([
  {
    label: "合同号",
    value: "ht2921246",
  },
  {
    label: "状态",
    value: "-----",
  },
  {
    label: "客户名称",
    value: "夏志豪",
  },
  {
    label: "机台",
    value: "-----",
  },
  {
    label: "规格型号",
    value: "2921246",
  },
  {
    label: "已生产数量",
    value: "0",
  },
  {
    label: "盘长(m)",
    value: "292",
  },
  {
    label: "计划数量",
    value: "100",
  },
  {
    label: "质量追溯号",
    value: "JX-1838",
  },
]);
const toEdit = () => {
  uni.navigateTo({
    url: "/pages/production/twist/report/edit",
  });
};
const addReport = () => {
  dialog.visible = true;
};
const submit = () => {
  toast.show("提交");
  dialog.visible = false;
};
const cancel = () => {
  toast.show("取消");
  dialog.visible = false;
};
</script>
<style lang="scss" scoped>
.page {
  background: #f3f9f8;
  .list {
    height: calc(100vh - 120px);
    margin: 12px;
    overflow: scroll;
    :deep() {
      .round {
        border-radius: 4px;
      }
    }
  }
}
.action {
  display: flex;
  justify-content: space-between;
}
</style>
src/pages/production/twist/selfInspect/edit.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
<template>
  <view>
    <CardTitle title="编辑自检" :hideAction="false" />
    <BackmanForm class="mx-4" />
    <view class="footer">
      <wd-button
        class="submit_btn"
        type="primary"
        size="large"
        block
        :round="false"
        @click="handleSubmit"
      >
        ä¿å­˜
      </wd-button>
    </view>
  </view>
</template>
<script setup lang="ts">
import CardTitle from "@/components/card-title/index.vue";
import BackmanForm from "./form.vue";
const handleSubmit = () => {};
</script>
<style lang="scss" scoped>
.footer {
  margin: 20px 16px 0 16px;
}
</style>
src/pages/production/twist/selfInspect/form.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
<template>
  <wd-form ref="form" :model="model" class="relative form_box">
    <wd-cell-group :border="true">
      <wd-input
        v-model="model.selfInspectName"
        label="自检名称"
        label-width="100px"
        prop="selfInspectName"
        clearable
        placeholder="请输入自检名称"
      />
      <wd-input
        v-model="model.unit"
        label="单位"
        label-width="100px"
        prop="unit"
        clearable
        placeholder="请输入单位"
      />
      <wd-input
        v-model="model.standard"
        label="标准值"
        label-width="100px"
        prop="standard"
        clearable
        placeholder="请输入标准值"
      />
      <wd-input
        v-model="model.selfInspectValue"
        label="自检值"
        label-width="100px"
        prop="selfInspectValue"
        clearable
        placeholder="请输入自检值"
      />
      <wd-input
        v-model="model.selfInspectResult"
        label="自检结果"
        label-width="100px"
        prop="selfInspectResult"
        clearable
        placeholder="请输入自检结果"
      />
    </wd-cell-group>
  </wd-form>
</template>
<script setup lang="ts">
import useFormData from "@/hooks/useFormData";
const { form: model } = useFormData({
  selfInspectName: undefined, // è‡ªæ£€åç§°
  unit: undefined, // å•位
  standard: undefined, // æ ‡å‡†å€¼
  selfInspectValue: undefined, // è‡ªæ£€å€¼
  selfInspectResult: undefined, // è‡ªæ£€å€¼
});
</script>
<style lang="scss" scoped>
.form_box {
}
.submit_btn {
  position: absolute;
  bottom: 0;
  width: 100%;
}
</style>
src/pages/production/twist/selfInspect/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
<template>
  <view class="page pt-2">
    <CardTitle title="绞线自检" :hideAction="true" @action="addReport" />
    <view class="list">
      <wd-card 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">自检项目名称</text>
            </view>
            <view class="text-[#A8A8A8]" @click="toEdit">编辑</view>
          </view>
        </template>
        <ProductionCard :data="cardAttr" color="#0D867F" />
      </wd-card>
    </view>
    <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>
      <SelfInspectForm />
    </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 SelfInspectForm from "./form.vue";
const toast = useToast();
const dialog = reactive({
  visible: false,
});
const cardAttr = ref<any[]>([
  {
    label: "单位",
    value: "nΩ·m",
  },
  {
    label: "标准值",
    value: "1246",
  },
  {
    label: "自检值",
    value: "1245",
  },
  {
    label: "自检结果",
    value: "不合格",
    color: "#FF1E1E",
  },
]);
const addReport = () => {
  dialog.visible = true;
};
const toEdit = () => {
  uni.navigateTo({
    url: "/pages/production/twist/selfInspect/edit",
  });
};
const submit = () => {
  toast.show("提交");
  dialog.visible = false;
};
const cancel = () => {
  toast.show("取消");
  dialog.visible = false;
};
</script>
<style lang="scss" scoped>
.page {
  background: #f3f9f8;
  .list {
    height: calc(100vh - 120px);
    margin: 12px;
    overflow: scroll;
    :deep() {
      .round {
        border-radius: 4px;
      }
    }
  }
}
.action {
  display: flex;
  justify-content: space-between;
}
</style>
src/pages/production/wire/backman/edit.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
<template>
  <view>
    <CardTitle title="编辑自检" :hideAction="false" />
    <BackmanForm class="mx-4" />
    <view class="footer">
      <wd-button
        class="submit_btn"
        type="primary"
        size="large"
        block
        :round="false"
        @click="handleSubmit"
      >
        ä¿å­˜
      </wd-button>
    </view>
  </view>
</template>
<script setup lang="ts">
import CardTitle from "@/components/card-title/index.vue";
import BackmanForm from "./form.vue";
const handleSubmit = () => {};
</script>
<style lang="scss" scoped>
.footer {
  margin: 20px 16px 0 16px;
}
</style>
src/pages/production/wire/backman/form.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
<template>
  <wd-form ref="form" :model="model" class="relative form_box">
    <wd-cell-group :border="true">
      <wd-input
        v-model="model.workbench"
        label="杂工名称"
        label-width="100px"
        prop="workbench"
        clearable
        placeholder="请输入杂工名称"
      />
      <wd-input
        v-model="model.poleNo"
        label="杆号"
        label-width="100px"
        prop="poleNo"
        clearable
        placeholder="请输入杆号"
      />
      <wd-input
        v-model="model.unit"
        label="单位"
        label-width="100px"
        prop="unit"
        clearable
        placeholder="请输入单位"
      />
      <wd-input
        v-model="model.poleWeight"
        label="杆重"
        label-width="100px"
        prop="poleWeight"
        clearable
        placeholder="请输入杆重"
      />
      <wd-input
        v-model="model.useWeight"
        label="使用重量"
        label-width="100px"
        prop="useWeight"
        clearable
        placeholder="请输入使用重量"
      />
    </wd-cell-group>
  </wd-form>
</template>
<script setup lang="ts">
import useFormData from "@/hooks/useFormData";
const { form: model } = useFormData({
  backmanName: undefined, // æ‚工名称
  unit: undefined, // å•位
  num: undefined, // æ•°é‡
  caller: undefined, // æŠ¥å·¥äºº
  callerDate: undefined, // æŠ¥å·¥æ—¥æœŸ
});
</script>
<style lang="scss" scoped>
.form_box {
}
.submit_btn {
  position: absolute;
  bottom: 0;
  width: 100%;
}
</style>
src/pages/production/wire/backman/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,108 @@
<template>
  <view class="page pt-2">
    <CardTitle title="杂工信息" :hideAction="true" @action="addReport" />
    <view class="list">
      <wd-card 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">杂工项目名称</text>
            </view>
            <view class="text-[#A8A8A8]" @click="toEdit">编辑</view>
          </view>
        </template>
        <ProductionCard :data="cardAttr" color="#0D867F" />
      </wd-card>
    </view>
    <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>
      <BackmanForm />
    </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 BackmanForm from "./form.vue";
const toast = useToast();
const dialog = reactive({
  visible: false,
});
const cardAttr = ref<any[]>([
  {
    label: "单位",
    value: "nΩ·m",
  },
  {
    label: "定额",
    value: "1246",
  },
  {
    label: "数量",
    value: "4",
  },
  {
    label: "金额",
    value: "查看",
  },
  {
    label: "报工人",
    value: "雷进宝",
  },
  {
    label: "日期",
    value: "2022-05-17",
  },
]);
const toEdit = () => {
  uni.navigateTo({
    url: "/pages/production/backman/edit",
  });
};
const addReport = () => {
  dialog.visible = true;
};
const submit = () => {
  toast.show("提交");
  dialog.visible = false;
};
const cancel = () => {
  toast.show("取消");
  dialog.visible = false;
};
</script>
<style lang="scss" scoped>
.page {
  background: #f3f9f8;
  .list {
    height: calc(100vh - 120px);
    margin: 12px;
    overflow: scroll;
    :deep() {
      .round {
        border-radius: 4px;
      }
    }
  }
}
.action {
  display: flex;
  justify-content: space-between;
}
</style>
src/pages/production/wire/receive/edit.vue
src/pages/production/wire/receive/form.vue
src/pages/production/wire/receive/index.vue
src/pages/production/wire/report/wire.vue
src/pages/production/wire/report/wireEdit.vue
src/pages/production/wire/report/wireForm.vue
src/pages/production/wire/selfInspect/edit.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
<template>
  <view>
    <CardTitle title="编辑拉丝自检" :hideAction="false" />
    <SelfInspectForm class="mx-4" />
    <view class="footer">
      <wd-button
        class="submit_btn"
        type="primary"
        size="large"
        block
        :round="false"
        @click="handleSubmit"
      >
        ä¿å­˜è‡ªæ£€ä¿¡æ¯
      </wd-button>
    </view>
  </view>
</template>
<script setup lang="ts">
import CardTitle from "@/components/card-title/index.vue";
import SelfInspectForm from "./form.vue";
const handleSubmit = () => {};
</script>
<style lang="scss" scoped>
.footer {
  margin: 20px 16px 0 16px;
}
</style>
src/pages/production/wire/selfInspect/form.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
<template>
  <wd-form ref="form" :model="model" class="relative form_box">
    <wd-cell-group :border="true">
      <wd-input
        v-model="model.selfInspectName"
        label="自检名称"
        label-width="100px"
        prop="selfInspectName"
        clearable
        placeholder="请输入自检名称"
      />
      <wd-input
        v-model="model.unit"
        label="单位"
        label-width="100px"
        prop="unit"
        clearable
        placeholder="请输入单位"
      />
      <wd-input
        v-model="model.standard"
        label="标准值"
        label-width="100px"
        prop="standard"
        clearable
        placeholder="请输入标准值"
      />
      <wd-input
        v-model="model.selfInspectValue"
        label="自检值"
        label-width="100px"
        prop="selfInspectValue"
        clearable
        placeholder="请输入自检值"
      />
      <wd-input
        v-model="model.selfInspectResult"
        label="自检结果"
        label-width="100px"
        prop="selfInspectResult"
        clearable
        placeholder="请输入自检结果"
      />
    </wd-cell-group>
  </wd-form>
</template>
<script setup lang="ts">
import useFormData from "@/hooks/useFormData";
const { form: model } = useFormData({
  selfInspectName: undefined, // è‡ªæ£€åç§°
  unit: undefined, // å•位
  standard: undefined, // æ ‡å‡†å€¼
  selfInspectValue: undefined, // è‡ªæ£€å€¼
  selfInspectResult: undefined, // è‡ªæ£€å€¼
});
</script>
<style lang="scss" scoped>
.form_box {
}
.submit_btn {
  position: absolute;
  bottom: 0;
  width: 100%;
}
</style>
src/pages/production/wire/selfInspect/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
<template>
  <view class="page pt-2">
    <CardTitle title="拉丝自检" :hideAction="true" @action="addReport" />
    <view class="list">
      <wd-card 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">自检项目名称</text>
            </view>
            <view class="text-[#A8A8A8]" @click="toEdit">编辑</view>
          </view>
        </template>
        <ProductionCard :data="cardAttr" color="#0D867F" />
      </wd-card>
    </view>
    <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>
      <SelfInspectForm />
    </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 SelfInspectForm from "./form.vue";
const toast = useToast();
const dialog = reactive({
  visible: false,
});
const cardAttr = ref<any[]>([
  {
    label: "单位",
    value: "nΩ·m",
  },
  {
    label: "标准值",
    value: "1246",
  },
  {
    label: "自检值",
    value: "1245",
  },
  {
    label: "自检结果",
    value: "不合格",
    color: "#FF1E1E",
  },
]);
const addReport = () => {
  dialog.visible = true;
};
const toEdit = () => {
  uni.navigateTo({
    url: "/pages/production/selfInspect/edit",
  });
};
const submit = () => {
  toast.show("提交");
  dialog.visible = false;
};
const cancel = () => {
  toast.show("取消");
  dialog.visible = false;
};
</script>
<style lang="scss" scoped>
.page {
  background: #f3f9f8;
  .list {
    height: calc(100vh - 120px);
    margin: 12px;
    overflow: scroll;
    :deep() {
      .round {
        border-radius: 4px;
      }
    }
  }
}
.action {
  display: flex;
  justify-content: space-between;
}
</style>