From a846f28bef985e7671f0b469fb73541cbfb08a93 Mon Sep 17 00:00:00 2001
From: admin <15939171744@163.com>
Date: 星期六, 01 六月 2024 11:15:39 +0800
Subject: [PATCH] -

---
 jcdm-ui/src/views/main/om/productionOrde/index.vue |  370 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 252 insertions(+), 118 deletions(-)

diff --git a/jcdm-ui/src/views/main/om/productionOrde/index.vue b/jcdm-ui/src/views/main/om/productionOrde/index.vue
index 56eb2ec..f40770e 100644
--- a/jcdm-ui/src/views/main/om/productionOrde/index.vue
+++ b/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,46 +102,61 @@
         >淇敼</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"
+          type="info"
+          icon="el-icon-upload2"
           size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['om:productionOrde:remove']"
-        >鍒犻櫎</el-button>
+          @click="handleImport"
+        >瀵煎叆</el-button>
       </el-col>
-<!--      <el-col :span="1.5">-->
-<!--        <el-button-->
-<!--          type="warning"-->
-<!--          plain-->
-<!--          icon="el-icon-download"-->
-<!--          size="mini"-->
-<!--          @click="handleExport"-->
-<!--          v-hasPermi="['om:productionOrde:export']"-->
-<!--        >瀵煎嚭</el-button>-->
-<!--      </el-col>-->
-<!--      <el-col :span="1.5">-->
-<!--        <el-button-->
-<!--          type="warning"-->
-<!--          plain-->
-<!--          icon="el-icon-upload2"-->
-<!--          :disabled="move"-->
-<!--          size="mini"-->
-<!--          @click="moveUp(val => val, 'up')"-->
-<!--        >涓婄Щ</el-button>-->
-<!--      </el-col>-->
-<!--      <el-col :span="1.5">-->
-<!--        <el-button-->
-<!--          type="warning"-->
-<!--          plain-->
-<!--          icon="el-icon-download"-->
-<!--          size="mini"-->
-<!--          :disabled="move"-->
-<!--          @click="moveUp(val => val, 'down')"-->
-<!--        >涓嬬Щ</el-button>-->
-<!--      </el-col>-->
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['om:productionOrde:export']"
+        >瀵煎嚭</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @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"
+        >瑙g粦</el-button>
+      </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
@@ -146,72 +169,40 @@
             </router-link>
           </template>
         </el-table-column>
-        <el-table-column label="璁㈠崟缂栧彿" width="140" align="center" prop="salesOrderCode">
+<!--        <el-table-column label="璁㈠崟缂栧彿" width="140" align="center" prop="salesOrderCode">-->
+<!--        </el-table-column>-->
+        <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>
         <el-table-column label="浜у搧缂栧彿" width="110" align="center" prop="productCode">
         </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="宸ュ巶缂栧彿" align="center" prop="siteCode">
-        </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="鎶ュ伐缁撴灉浠g爜" 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="娴佹按鍙�" align="center" prop="streamNumber">-->
+<!--        <el-table-column label="鎶ュ伐淇℃伅缁撴灉" width="110" align="center" prop="resultText">-->
 <!--        </el-table-column>-->
-<!--        <el-table-column label="瀹㈡埛" width="80" align="center" prop="custom">-->
+<!--        <el-table-column label="鎶ュ伐缁撴灉浠g爜" width="110" align="center" prop="resultCode">-->
 <!--        </el-table-column>-->
-<!--        <el-table-column fixed="right" width="350" label="鎿嶄綔" align="center" class-name="small-padding fixed-width">-->
-<!--          <template slot-scope="scope">-->
-<!--            &lt;!&ndash;  宸ュ崟鐘舵�侊紙1鍒涘缓銆�2宸插彂甯冦��3鐢熶骇涓��4宸插喕缁撱��5宸插畬宸ャ��6宸插叧闂級 &ndash;&gt;-->
-<!--            <el-button type="success" :disabled="scope.row.orderStatus !== '1'"  style="width: 72px" plain @click="handleCommand('3',scope.row.id)" size="mini">寮�濮�</el-button>-->
-<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '2' && scope.row.orderStatus !== '3'" v-if="scope.row.orderStatus !== '2'&&  scope.row.orderStatus !== '4'" plain @click="handleCommand('4',scope.row.id)" type="warning" size="mini">鍐荤粨</el-button>-->
-<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '4'" v-if="scope.row.orderStatus === '4'" plain @click="handleCommand('3',scope.row.id)" type="warning" size="mini">瑙e喕</el-button>-->
-<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '1'" plain @click="handleCommand('6',scope.row.id)" v-if="scope.row.orderStatus === '1'||scope.row.orderStatus === '3'||scope.row.orderStatus === '4'||scope.row.orderStatus === '5'" type="danger" size="mini">鍏抽棴</el-button>-->
-<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">鍚敤</el-button>-->
-<!--&lt;!&ndash;            <el-button&ndash;&gt;-->
-<!--&lt;!&ndash;              :disabled="scope.row.orderStatus !== '1'"&ndash;&gt;-->
-<!--&lt;!&ndash;              size="mini"&ndash;&gt;-->
-<!--&lt;!&ndash;              type="success"&ndash;&gt;-->
-<!--&lt;!&ndash;              style="width: 72px"&ndash;&gt;-->
-<!--&lt;!&ndash;              icon="el-icon-edit"&ndash;&gt;-->
-<!--&lt;!&ndash;              @click="handleUpdate(scope.row)"&ndash;&gt;-->
-<!--&lt;!&ndash;              v-hasPermi="['om:productionOrde:edit']"&ndash;&gt;-->
-<!--&lt;!&ndash;            >淇敼</el-button>&ndash;&gt;-->
-<!--&lt;!&ndash;            <el-button&ndash;&gt;-->
-<!--&lt;!&ndash;              :disabled="scope.row.orderStatus !== '1'"&ndash;&gt;-->
-<!--&lt;!&ndash;              size="mini"&ndash;&gt;-->
-<!--&lt;!&ndash;              type="warning"&ndash;&gt;-->
-<!--&lt;!&ndash;              style="width: 72px"&ndash;&gt;-->
-<!--&lt;!&ndash;              icon="el-icon-delete"&ndash;&gt;-->
-<!--&lt;!&ndash;              @click="handleDelete(scope.row)"&ndash;&gt;-->
-<!--&lt;!&ndash;              v-hasPermi="['om:productionOrde:remove']"&ndash;&gt;-->
-<!--&lt;!&ndash;            >鍒犻櫎</el-button>&ndash;&gt;-->
-<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus === '4'||scope.row.orderStatus === '6'" v-if="scope.row.orderStatus !== '5'" @click="handleCommand('5',scope.row.id)" type="success" size="mini">瀹屾垚</el-button>-->
-<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus === '5'" v-if="scope.row.orderStatus === '5'" type="success" size="mini">宸插畬宸�</el-button>            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">鍚敤</el-button>-->
-<!--          </template>-->
+<!--        <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>
@@ -267,16 +258,58 @@
       </div>
     </el-dialog>
 
+    <!-- 鐢ㄦ埛瀵煎叆瀵硅瘽妗� -->
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px">
+      <el-upload
+        ref="upload"
+        :limit="1"
+        accept=".xlsx, .xls"
+        :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">
+          灏嗘枃浠舵嫋鍒版澶勶紝鎴�
+          <em>鐐瑰嚮涓婁紶</em>
+        </div>
+        <div class="el-upload__tip" slot="tip">
+          <el-checkbox v-model="upload.updateSupport" />鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
+          <el-link type="info" style="font-size:12px" @click="importTemplate">涓嬭浇妯℃澘</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">鎻愮ず锛氫粎鍏佽瀵煎叆鈥渪ls鈥濇垨鈥渪lsx鈥濇牸寮忔枃浠讹紒</div>
+      </el-upload>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFileForm">纭� 瀹�</el-button>
+        <el-button @click="upload.open = false">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+
   </div>
 </template>
 
 <script>
+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 { 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",
@@ -286,6 +319,8 @@
   },
   data() {
     return {
+      // packCode: '0RSPB001139E3AE4X0000011',
+      packCode: 'test111',
       titleName: '',
       options: [],
       lineOptions: [],
@@ -355,26 +390,119 @@
         id: [
           { required: true, message: "ID涓嶈兘涓虹┖", trigger: "blur" }
         ],
-      }
+      },
+      // 鐢ㄦ埛瀵煎叆鍙傛暟
+      upload: {
+        // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛�
+        open: false,
+        // 寮瑰嚭灞傛爣棰橈紙鐢ㄦ埛瀵煎叆锛�
+        title: "",
+        // 鏄惁绂佺敤涓婁紶
+        isUploading: false,
+        // 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
+        updateSupport: 0,
+        // 璁剧疆涓婁紶鐨勮姹傚ご閮�
+        headers: { Authorization: "Bearer " + getToken() },
+        // 涓婁紶鐨勫湴鍧�
+        url: process.env.VUE_APP_BASE_API + "/om/productionOrde/importData"
+      },
     };
   },
   created() {
     this.getList();
     this.initWorkshop();
   },
+  mounted() {
+    this.test1()
+  },
   methods: {
-    moveUp(row, val){
-      console.log(val)
-      const ids = row.id || this.ids
-      let str = JSON.stringify(ids);
-      let num = BigInt(str.replace(/[\[\]]/g, ''));
-      this.queryParams.frontEndId = num
-      this.queryParams.idNums = ids
-      this.queryParams.flag = val
-      upDownMove(this.queryParams).then(response => {
-        this.$modal.msgSuccess("绉诲姩鎴愬姛");
-        this.getList();
+    jieBang(row){
+      const id = row.id || this.ids
+      jieBang(id).then(response => {
+        this.getList()
+        this.$modal.msgSuccess("瑙g粦鎴愬姛");
       });
+    },
+    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() {
+      // 鏈〉闈㈢洿鎺ユ墦鍗帮紙鏈塨ug鍗曞瞾鍏堜笉瑕佸垹锛�
+      // 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() {
+      this.upload.title = "璁㈠崟淇℃伅瀵煎叆";
+      this.upload.open = true;
+    },
+    /** 涓嬭浇妯℃澘鎿嶄綔 */
+    importTemplate() {
+      this.download('om/productionOrde/importTemplate', {
+      }, `productionOrde_template_${new Date().getTime()}.xlsx`)
+    },
+// 鏂囦欢涓婁紶涓鐞�
+    handleFileUploadProgress(event, file, fileList) {
+      this.upload.isUploading = true;
+    },
+// 鏂囦欢涓婁紶鎴愬姛澶勭悊
+    handleFileSuccess(response, file, fileList) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert(response.msg, "瀵煎叆缁撴灉", { dangerouslyUseHTMLString: true });
+      this.getList();
+    },
+// 鎻愪氦涓婁紶鏂囦欢
+    submitFileForm() {
+      this.$refs.upload.submit();
     },
     initWorkshop(){
       listWorkshop(this.queryParams).then(response => {
@@ -473,7 +601,7 @@
         marketAreaCode: null,
         softwareVersionCode: null,
         productCompanyCode: null,
-        spareField1: null,
+        trolleyYard: null,
         spareField2: null,
         spareField3: null,
         spareField4: null,
@@ -497,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() {

--
Gitblit v1.9.3