-
admin
2024-06-21 d76bbaa8a9a70124045dc4c9753e5a868ac4e7d2
jcdm-ui/src/views/main/om/productionOrde/index.vue
@@ -28,6 +28,14 @@
          />
        </el-select>
      </el-form-item>
      <div style="display: none">
        <div id="printMe" style="width: 500px;">
          <div ref="canvasWrapper" id="canvasWrapper" style="display: flex;justify-content: center;"></div>
          <p style="font-size: 10px;word-break: break-all;display: flex;justify-content: center;">{{packCode}}</p>
        </div>
        <el-button @click="print">打印</el-button>
        <el-button @click="test1">生成二维码</el-button>
      </div>
      <el-form-item style="float: right">
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button type="warning" icon="el-icon-copy-document" size="mini" @click="advancedQuery">高级查询</el-button>
@@ -94,15 +102,15 @@
        >修改</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="danger"
          plain
          icon="el-icon-delete"
          size="mini"
          :disabled="multiple"
          @click="handleDelete"
          v-hasPermi="['om:productionOrde:remove']"
        >删除</el-button>
<!--        <el-button-->
<!--          type="danger"-->
<!--          plain-->
<!--          icon="el-icon-delete"-->
<!--          size="mini"-->
<!--          :disabled="multiple"-->
<!--          @click="handleDelete"-->
<!--          v-hasPermi="['om:productionOrde:remove']"-->
<!--        >删除</el-button>-->
        <el-button
          type="info"
          icon="el-icon-upload2"
@@ -126,9 +134,29 @@
          plain
          icon="el-icon-download"
          size="mini"
          @click="receivingWorkOrders"
          @click="getWorkOrders"
        >接收</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-download"
          size="mini"
          :disabled="single"
          @click="patchwork"
        >补打</el-button>
      </el-col>
<!--      <el-col :span="1.5">-->
<!--        <el-button-->
<!--          type="warning"-->
<!--          plain-->
<!--          icon="el-icon-download"-->
<!--          size="mini"-->
<!--          :disabled="single"-->
<!--          @click="jieBang"-->
<!--        >解绑</el-button>-->
<!--      </el-col>-->
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
@@ -143,7 +171,7 @@
        </el-table-column>
<!--        <el-table-column label="订单编号" width="140" align="center" prop="salesOrderCode">-->
<!--        </el-table-column>-->
        <el-table-column :show-overflow-tooltip='true' label="pack码" width="160" align="center" prop="productNum">
        <el-table-column :show-overflow-tooltip='true' label="pack码" width="220" align="center" prop="productNum">
        </el-table-column>
        <el-table-column :show-overflow-tooltip='true' label="小车码" width="160" align="center" prop="trolleyYard">
        </el-table-column>
@@ -151,33 +179,31 @@
        </el-table-column>
        <el-table-column label="产品名称" width="120" align="center" prop="productName">
        </el-table-column>
        <el-table-column label="产品序列号" width="110" align="center" prop="productNum">
        </el-table-column>
        <el-table-column label="产品型号" align="center" prop="productModel">
        </el-table-column>
        <el-table-column label="工单状态" width="100" align="center" prop="orderStatus">
          <template slot-scope="scope">
            <dict-tag :options="dict.type.order_state" :value="scope.row.orderStatus"/>
          </template>
        </el-table-column>
<!--        <el-table-column label="工单状态" width="100" align="center" prop="orderStatus">-->
<!--          <template slot-scope="scope">-->
<!--            <dict-tag :options="dict.type.order_state" :value="scope.row.orderStatus"/>-->
<!--          </template>-->
<!--        </el-table-column>-->
<!--        <el-table-column label="工厂编号" align="center" prop="siteCode">-->
<!--        </el-table-column>-->
        <el-table-column label="工站编号" align="center" prop="stationCode">
        </el-table-column>
        <el-table-column label="报工信息结果" width="110" align="center" prop="resultText">
        </el-table-column>
        <el-table-column label="报工结果代码" width="110" align="center" prop="resultCode">
        </el-table-column>
        <el-table-column label="是否报工" width="80" align="center" prop="sfResult">
        </el-table-column>
        <el-table-column label="实际开始时间" width="160" align="center" prop="actualStartTime">
        </el-table-column>
        <el-table-column label="当前站点报工时间" width="160" align="center" prop="actualEndTime">
        </el-table-column>
        <el-table-column label="创建人" width="80" align="center" prop="createUser">
        </el-table-column>
        <el-table-column label="备注" width="100" align="center" prop="remarks">
        </el-table-column>
<!--        <el-table-column label="报工信息结果" width="110" align="center" prop="resultText">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="报工结果代码" width="110" align="center" prop="resultCode">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="是否报工" width="80" align="center" prop="sfResult">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="实际开始时间" width="160" align="center" prop="actualStartTime">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="当前站点报工时间" width="160" align="center" prop="actualEndTime">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="创建人" width="80" align="center" prop="createUser">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="备注" width="100" align="center" prop="remarks">-->
<!--        </el-table-column>-->
      </el-table>
    </el-card>
@@ -270,10 +296,20 @@
import { getToken } from "@/utils/auth";
import { listLineInfo } from "@/api/main/bs/lineInfo/lineInfo";
import { listWorkshop } from "@/api/main/bs/workshop/workshop";
import { listProductBom } from "@/api/main/bs/ProductBom/ProductBom";
import {getProductBom, listProductBom} from "@/api/main/bs/ProductBom/ProductBom";
import { listTechnologyRoute} from "@/api/main/bs/technologyRoute/technologyRoute";
import ItemSelect  from "@/components/itemSelect/single.vue";
import { importTemplate, upDownMove, listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde";
import {
  importTemplate,
  upDownMove,
  listProductionOrde,
  getProductionOrde,
  delProductionOrde,
  addProductionOrde,
  updateProductionOrde,
  receivingWorkOrders, jieBang
} from "@/api/main/om/productionOrde/productionOrde";
import QRCode from "qrcodejs2";
export default {
  name: "ProductionOrde",
@@ -283,6 +319,8 @@
  },
  data() {
    return {
      // packCode: '0RSPB001139E3AE4X0000011',
      packCode: 'test111',
      titleName: '',
      options: [],
      lineOptions: [],
@@ -374,9 +412,71 @@
    this.getList();
    this.initWorkshop();
  },
  mounted() {
    this.test1()
  },
  methods: {
    receivingWorkOrders(){
    jieBang(row){
      const id = row.id || this.ids
      jieBang(id).then(response => {
        this.getList()
        this.$modal.msgSuccess("解绑成功");
      });
    },
    patchwork(row){
      const id = row.id || this.ids
      getProductionOrde(id).then(response => {
        console.log(response.data)
        this.packCode = response.data.productNum
        console.log(this.packCode)
        this.test1()
        setTimeout(() => {
          this.print()
        },50)
      });
    },
    async getWorkOrders(){
      await receivingWorkOrders().then(response => {
        this.getList()
        this.packCode = response.msg;
        this.test1()
      });
      setTimeout(() => {
        this.print()
      },50)
    },
     print() {
      // 本页面直接打印(有bug单岁先不要删)
      // let oldStr = window.document.body.innerHTML;
      // let newStr = document.getElementById('printMe').innerHTML;
      // document.body.innerHTML = newStr;
      // window.print();
      // document.body.innerHTML = oldStr;
      // return false;
      // 新开页面打印
      //  document.getElementById('canvasWrapper').innerHTML = '';
      let newStr = document.getElementById('printMe').innerHTML;
      let newWin = window.open('', '_blank');
      newWin.document.body.innerHTML = newStr;
      newWin.print();
      return false;
    },
    test1(){
      document.getElementById('canvasWrapper').innerHTML = ''
      this.$nextTick(() => {
        let qrCode = new QRCode('canvasWrapper',{
          width: 80,
          height: 80,
          padding: 0,
          margin: 0,
          text: this.packCode,
          colorDark: '#000',
          colorLight: '#fff'
        })
      })
      // console.log(this.packCode)
      // this.print()
    },
    /** 导入按钮操作 */
    handleImport() {
@@ -525,19 +625,25 @@
      this.handleQuery();
    },
    // 多选框选中数据
    // handleSelectionChange(selection) {
    //   this.ids = selection.map(item => item.id)
    //   this.move = selection.length!==1
    //   if(!selection.length){
    //     this.single = true
    //     this.multiple = true
    //   }else {
    //     if(selection[0].orderStatus === '1' && selection.length === 1){
    //       this.single = false
    //       this.multiple = false
    //     }
    //   }
    //
    // },
    // 多选框选中数据
    handleSelectionChange(selection) {
      this.ids = selection.map(item => item.id)
      this.move = selection.length!==1
      if(!selection.length){
        this.single = true
        this.multiple = true
      }else {
        if(selection[0].orderStatus === '1' && selection.length === 1){
          this.single = false
          this.multiple = false
        }
      }
      this.single = selection.length!==1
      this.multiple = !selection.length
    },
    /** 新增按钮操作 */
    handleAdd() {