yyb
7 天以前 ecced75681242ea0ff23f0c4805a20fbdc87cf14
报工页面联调
已修改3个文件
362 ■■■■ 文件已修改
common/http.api.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/product/report/components/saveForm.vue 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/product/report/index.vue 269 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/http.api.js
@@ -494,7 +494,7 @@
            // 获取车间订单列表
            getWorkshopOrder: (params = {}) => vm.$u.get('/mes/plan/manufacturingOrder/page', params),
            // 获取产出列表
            getProductMainV1: (params = {}) => vm.$u.get('/mes/product/getProductMainV1', params),
            getProductMainV1: (params = {}) => vm.$u.get('/mes/operationTask/getxxMainList'+ params.id),
            // 报工提交获取详细信息
            operationTask: (params = {}) => vm.$u.get('/mes/operationTask/'+ params.id),
            // 提交
pages/product/report/components/saveForm.vue
@@ -11,24 +11,12 @@
    <view class="packing-registration-param">
      <scroll-view scroll-y="true" style="height: 100%">
        <view class="packing-registration-param-view">
          <!-- <view class="packing-registration-param-item param-extra">
            <view class="packing-registration-param-item-left">
              <text class="item-one">批号</text>
            </view>
            <view class="packing-registration-param-item-right">
              <u-input
                class="item-one item-two"
                v-model="form.value0"
                disabled
              />
            </view>
          </view> -->
          <view class="packing-registration-param-item param-extra">
            <view class="packing-registration-param-item-left">
              <text class="item-one">长度</text>
            </view>
            <view class="packing-registration-param-item-right">
              <u-input class="item-one item-two" v-model="form.value1" />
              <u-input class="item-one item-two" v-model="form.overallLength" />
            </view>
          </view>
          <view class="packing-registration-param-item param-extra">
@@ -38,7 +26,7 @@
            <view class="packing-registration-param-item-right">
              <u-input
                class="item-one item-two"
                v-model="form.value1"
                v-model="form.proposedLocation"
                disabled
              />
            </view>
@@ -64,7 +52,7 @@
              <text class="item-one">净重</text>
            </view>
            <view class="packing-registration-param-item-right">
              <u-input class="item-one item-two" v-model="form.value1" />
              <u-input class="item-one item-two" v-model="form.theoryWeight" />
            </view>
          </view>
          <view class="packing-registration-param-item param-extra">
@@ -72,7 +60,7 @@
              <text class="item-one">工序</text>
            </view>
            <view class="packing-registration-param-item-right">
              <u-input class="item-one item-two" v-model="form.value1" />
              <u-input class="item-one item-two" v-model="form.name" />
            </view>
          </view>
          <view class="packing-registration-param-item param-extra">
@@ -125,7 +113,7 @@
export default {
  props: {
    operationTaskId: {
      type: String,
      type: Object,
      required: true,
      default: () => ({}),
    },
@@ -133,68 +121,8 @@
  data() {
    return {
      show: false,
      form: {
        outerDiameter: null,
        voltage: null,
        speed: null,
        pressure: null,
        productionSpeed: null,
        grossWeight: null,
        reelNumber: null,
        value7: null,
        value8: null,
        value9: null,
        value10: null,
        value11: null,
      },
      // rules: {
      //   value1: [
      //     { required: true, message: '请输入长度', trigger: ['blur', 'change'] },
      //   ],
      //   value3: [
      //     { required: true, message: '请输入盘号', trigger: ['blur', 'change'] },
      //   ],
      //   value4: [
      //     { required: true, message: '请输入毛重', trigger: ['blur', 'change'] },
      //   ],
      //   value5: [
      //     { required: true, message: '请输入净重', trigger: ['blur', 'change'] },
      //   ],
      //   value7: [
      //     { required: true, message: '请输入成品外径测量值', trigger: ['blur', 'change'] },
      //   ],
      //   value8: [
      //     { required: true, message: '请输入退火电压', trigger: ['blur', 'change'] },
      //   ],
      //   value9: [
      //     { required: true, message: '请输入转速', trigger: ['blur', 'change'] },
      //   ],
      //   value10: [
      //     { required: true, message: '请输入外部气压', trigger: ['blur', 'change'] }
      //   ],
      //   value11: [
      //     { required: true, message: '请输入生产速度', trigger: ['blur', 'change'] }
      //   ]
      // },
      form: {},
    };
  },
  watch: {
    show(val) {
      if (val) {
        this.$nextTick(() => {
          // this.$refs.uFormSave.setRules(this.rules);
          console.log("1222222");
          this.$u.api.workReporting
            .operationTask({
              id: this.operationTaskId,
            })
            .then((res) => {
              console.log("res", res);
              this.form = res.data.records;
            });
        });
      }
    },
  },
  methods: {
    confirm() {
@@ -224,9 +152,10 @@
        return;
      }
      this.$u.api.workReporting
        .submitPDA({ ...this.form, operationTaskId: this.operationTaskId })
        .submitPDA({ ...this.form, operationTaskId: this.operationTaskId.id })
        .then((res) => {
          console.log("res", res);
          this.$emit('update')
          this.$refs.uModal.cancel();
        });
    },
@@ -234,8 +163,10 @@
      this.show = false;
      this.form = {};
    },
    open() {
    open(val) {
      console.log('11daidecanshuskk',val)
      this.show = true;
       this.form = val;
    },
  },
};
pages/product/report/index.vue
@@ -1,21 +1,41 @@
<template>
    <!-- 报工 -->
    <div class="page">
        <u-form :model="form" ref="uForm" :label-width="200" :rules="rules" :error-type="['toast']">
            <u-form-item label="车间" :border-bottom="false" prop="value0">
                <u-radio-group v-model="form.value0">
                    <u-radio name="导体">导体</u-radio>
                    <u-radio name="铜杆">铜杆</u-radio>
    <u-form
      :model="form"
      ref="uForm"
      :label-width="200"
      :rules="rules"
      :error-type="['toast']"
    >
      <u-form-item label="车间" :border-bottom="false" prop="work">
        <u-radio-group v-model="form.work" :disabled="subdisabled">
          <u-radio name="dt">导体</u-radio>
          <u-radio name="tg">铜杆</u-radio>
                </u-radio-group>
            </u-form-item>
            <u-form-item label="报工单号" :border-bottom="false" prop="taskNo">
                <u-input v-model="form.taskNo" type="select" placeholder="请扫描报工单号" @click="open" />
        <u-input
          v-model="form.taskNo"
          type="select"
          placeholder="请扫描报工单号"
          @click="open"
        />
            </u-form-item>
            <u-form-item label="工序" :border-bottom="false" prop="name">
                <u-input v-model="form.name" type="select" placeholder="请扫描报工单号" />
        <u-input
          v-model="form.name"
          type="select"
          placeholder="请扫描报工单号"
        />
            </u-form-item>
            <u-form-item label="订单号" :border-bottom="false" prop="moOn">
                <u-input v-model="form.moOn" type="select" placeholder="点击选择" @click="openList" />
        <u-input
          v-model="form.moOn"
          type="select"
          placeholder="点击选择"
          @click="openList"
        />
            </u-form-item>
            <u-form-item label="零件号" :border-bottom="false" prop="partNo">
                <u-input v-model="form.partNo" placeholder="" disabled />
@@ -23,37 +43,47 @@
            <u-form-item label="零件描述" :border-bottom="false" prop="partName">
                <u-input v-model="form.partName" placeholder="" disabled />
            </u-form-item>
            <u-form-item label="批量大小" :border-bottom="false" prop="value6">
                <u-input v-model="form.value6" placeholder="" disabled />
      <u-form-item label="批量大小" :border-bottom="false" prop="qtyrequired">
        <u-input v-model="form.qtyrequired" placeholder="" disabled />
            </u-form-item>
            <u-form-item label="剩余数量" :border-bottom="false" prop="value7">
                <u-input v-model="form.value7" placeholder="" disabled />
      <u-form-item
        label="剩余数量"
        :border-bottom="false"
        prop="Jianqtyfinished"
      >
        <u-input v-model="form.Jianqtyfinished" placeholder="" disabled />
            </u-form-item>
            <u-form-item label="库位" :border-bottom="false" prop="value8">
                <u-input v-model="form.value8" placeholder="" disabled />
      <u-form-item label="库位" :border-bottom="false" prop="proposedLocation">
        <u-input v-model="form.proposedLocation" placeholder="" disabled />
            </u-form-item>
            <u-form-item label="报工类型" prop="value9">
                <u-radio-group v-model="form.value9">
                    <u-radio name="1">下机报工</u-radio>
                    <u-radio name="2">未下机报工</u-radio>
      <u-form-item label="报工类型" prop="productType">
        <u-radio-group v-model="form.productType">
          <u-radio name="dep">下机报工</u-radio>
          <u-radio name="ndep">未下机报工</u-radio>
                </u-radio-group>
            </u-form-item>
            <u-form-item label="接收零件" prop="value10">
                <u-radio-group v-model="form.value10">
                    <u-radio name="1">车间订单</u-radio>
                    <u-radio name="2">替代零件</u-radio>
      <u-form-item label="接收零件" prop="receive">
        <u-radio-group v-model="form.receive">
          <u-radio name="mo">车间订单</u-radio>
          <u-radio name="part">替代零件</u-radio>
                </u-radio-group>
            </u-form-item>
            <u-form-item label="物料" prop="value12">
                <u-radio-group v-model="form.value12" :disabled="true">
                    <u-radio name="1">倒冲</u-radio>
                    <u-radio name="2">投料</u-radio>
      <u-form-item label="物料" prop="materialcost">
        <u-radio-group v-model="form.materialcost" :disabled="true">
          <u-radio name="倒冲">倒冲</u-radio>
          <u-radio name="投料">投料</u-radio>
                </u-radio-group>
            </u-form-item>
            <u-form-item label="工序" prop="value11">
                <u-checkbox-group>
                    <u-checkbox :name="item.name" v-for="(item, index) in checkboxList" :key="index"
                        v-model="item.value11" @change="changeCheckbox" :disabled="item.disabled">
          <u-checkbox
            :name="item.name"
            v-for="(item, index) in checkboxList"
            :key="index"
            v-model="item.value11"
            @change="changeCheckbox"
            :disabled="subdisabled || item.disabled"
          >
                        {{ item.name }}
                    </u-checkbox>
                </u-checkbox-group>
@@ -62,8 +92,16 @@
        </u-form>
        <view class="wrap">
            <scroll-view class="packing-registration-scroll-list" scroll-y="true">
                <u-cell-group class="packing-registration-scroll-list-group" :border="false">
                    <view class="content" v-for="(item, index) in InventoryReceiptList" :key="index" :index="index">
        <u-cell-group
          class="packing-registration-scroll-list-group"
          :border="false"
        >
          <view
            class="content"
            v-for="(item, index) in InventoryReceiptList"
            :key="index"
            :index="index"
          >
                        <view class="content-header">
                            <view class="content-header-title">{{ index + 1 }}</view>
                        </view>
@@ -73,7 +111,7 @@
                                    <view class="_label-name">批号:</view>
                                </view>
                                <view class="_content">
                                    {{ item.value0 }}
                  {{ item.productNo }}
                                </view>
                            </view>
                            <view class="row-list">
@@ -89,7 +127,7 @@
                                    <view class="_label-name">库位:</view>
                                </view>
                                <view class="_content">
                                    {{ item.value0 }}
                  {{ item.proposedLocation }}
                                </view>
                            </view>
                        </view>
@@ -99,10 +137,19 @@
        </view>
        <!-- 填写报工单 -->
        <modalBg ref="modalBg" :confirm="confirm">
            <u-field v-model="form.value1" label="报工单号" placeholder="请输入" :border-bottom="false">
      <u-field
        v-model="form.taskNo"
        label="报工单号"
        placeholder="请输入"
        :border-bottom="false"
      >
            </u-field>
        </modalBg>
        <saveForm ref="saveForm" :operationTaskId="this.operationTaskId" />
    <saveForm
      ref="saveForm"
      :operationTaskId="this.form"
      @update="handleUpdate"
    />
        <scan></scan>
    </div>
</template>
@@ -115,11 +162,12 @@
        components: {
            modalBg,
            saveForm,
            scan
    scan,
        },
        data() {
            return {
                checkboxList: [{
      checkboxList: [
        {
                        name: "工序的自动报告",
                        value: false,
                        disabled: false,
@@ -132,72 +180,84 @@
                ],
                InventoryReceiptList: [],
                form: {
        work: "",
                    taskNo: "",
                    name: "",
                    moOn: "",
                    partNo: "",
                    partName: "",
                    value6: "",
                    value7: "",
                    value8: "",
                    value9: "1",
                    value10: "1",
                    value11: [], // 复选框组的值
                    value12: "1",
        qtyrequired: "",
        Jianqtyfinished: "",
        proposedLocation: "",
        productType: "dep",
        receive: "mo", // 复选框组的值
        materialcost: "",
        autoReport: false,
        simplifyMaterials: false,
                },
                rules: {
                    value0: [{
        work: [
          {
                        required: true,
                        message: "请选择车间",
                        trigger: ["change"],
                    }, ],
                    value1: [{
          },
        ],
        taskNo: [
          {
                        required: true,
                        message: "请选择报工单号",
                        trigger: ["change", "blur"],
                    }, ],
                    value2: [{
          },
        ],
        name: [
          {
                        required: true,
                        message: "请选择工序",
                        trigger: ["change", "blur"],
                    }, ],
                    value3: [{
          },
        ],
        moOn: [
          {
                        required: true,
                        message: "请选择订单号",
                        trigger: ["change", "blur"],
                    }, ],
                    value9: [{
          },
        ],
        productType: [
          {
                        required: true,
                        message: "请选择报工类型",
                        trigger: ["change"],
                    }, ],
                    value10: [{
          },
        ],
        receive: [
          {
                        required: true,
                        message: "请选择接收零件类型",
                        trigger: ["change"],
                    }, ],
                    value11: [{
                        type: "array",
                        required: true,
                        message: "请至少选择一个物料和工序选项",
                        trigger: ["change"],
                    }, ],
          },
        ],
                },
                showSave: false,
                operationTaskId: "",
      subdisabled: false,
            };
        },
        // 点击提交按钮的事件处理函数
        onNavigationBarButtonTap() {
            this.$refs.saveForm.open();
            this.form.value11 = this.checkboxList
                .filter((item) => item.value)
                .map((item) => item.name);
            this.$refs.uForm.validate((valid) => {
                if (valid) {
                    console.log("验证通过");
                    // 处理提交逻辑
                    // this.$refs.saveForm.open();
        this.$u.api.workReporting
          .operationTask({
            id: this.form.id,
          })
          .then((res) => {
            console.log("res", res);
            this.$refs.saveForm.open(res);
          });
                } else {
                    console.log("验证失败");
                    // 可以获取具体的错误信息
@@ -219,42 +279,54 @@
                console.log("页面扫码结果:", data.code);
                if (data.code) {
                    let codeInfo = JSON.parse(data.code);
                    this.operationTaskId = codeInfo.id;
                    if (codeInfo.moOn) {
                        // 扫描报工单二维码
                        that.saveForm(codeInfo);
                        this.$u.api.workReporting
          that.$u.api.workReporting
                            .getProductMainV1({
                                current: 1,
                                size: -1,
                                operationTaskId: this.operationTaskId,
              operationTaskId: codeInfo.id,
                            })
                            .then((res) => {
                                console.log("res", res);
                                this.InventoryReceiptList = res.data.records;
              let InventoryReceiptList = JSON.parse(res.data.records);
              that.saveInventory(InventoryReceiptList);
                            });
          console.log("this.InventoryReceiptList", that.InventoryReceiptList);
                    }
                }
            });
        },
  watch: {
    "form.taskNo": function (newVal, oldVal) {
      console.log("taskNo changed:", newVal, oldVal);
      this.subdisabled = false;
    },
  },
        methods: {
            // // 多选处理
            // changeCheckbox(val) {
            //     if (val.name === "倒冲") {
            //         this.checkboxList[2].value = false;
            //     }
            //     if (val.name === "简化物料检查") {
            //         this.checkboxList[0].value = false;
            //     }
            // },
    saveInventory(val) {
      this.InventoryReceiptList = val;
    },
    // 多选处理
    changeCheckbox(val) {
      if (val.name === "工序的自动报告") {
        this.form.autoReport = val.value;
      }
      if (val.name === "简化物料检查") {
        this.form.simplifyMaterials = val.value;
      }
    },
    handleUpdate() {
      this.subdisabled = true;
    },
            // 打开弹框--后面还需要监听扫码枪扫码结果,赋值给报工单号字段,然后打开弹框选择订单号等操作
            open() {
                this.$refs.modalBg.open();
            },
            // 弹框保存
            confirm() {
                console.log("保存", this.form.value1);
                // 请求接口,根据工单号查询其他信息并赋值
      console.log("保存", this.form.taskNo);
            },
            // 选择订单号
            openList() {
@@ -271,26 +343,29 @@
            },
            // 存订单号
            setNo(val) {
                this.form.value3 = val;
      this.form.moOn = val.moNo;
            },
            // 回显扫码的信息-报工单
            saveForm(val) {
                console.log("回显的数据", val);
                let {
                    moOn,
                    name,
                    ORDER_NO,
                    taskNo,
                    partName,
                    partNo
                } = val;
                this.form.moOn = moOn;
                this.form.name = name;
                this.form.taskNo = taskNo;
                this.form.partName = partName;
                this.form.partNo = partNo;
                // this.form.value3 = ORDER_NO
                if (this.form.value12 == "1") {
      this.form = {
        id: val.id,
        work: val.work,
        taskNo: val.taskNo,
        name: val.name,
        moOn: val.moOn,
        partNo: val.partNo,
        partName: val.partName,
        qtyrequired: val.qtyrequired,
        Jianqtyfinished: val.qtyrequired - val.qtyfinished,
        proposedLocation: val.proposedLocation,
        productType: "dep",
        receive: "mo", // 复选框组的值
        materialcost: val.materialcost,
        autoReport: false,
        simplifyMaterials: false,
      };
      if (this.form.materialcost == "倒冲") {
                    this.checkboxList[1].disabled = true;
                }
            },