Browse Source

Merge branch 'hw' of http://121.41.102.225:8099/Nidong/jiufang

* 'hw' of http://121.41.102.225:8099/Nidong/jiufang:
  67
  打包倍思特
  62
  61
  70
  60
  59
  57
  56
Andy 3 years ago
parent
commit
279b759499

BIN
dist (2).zip


BIN
dist.zip


+ 1 - 1
src/components/currencyPage/index.vue

@@ -234,7 +234,7 @@ export default {
   align-items: flex-end;
 }
 .page-edit {
-  overflow: hidden;
+  // overflow: hidden;
   overflow-y: auto;
   position: relative;
   top: 0px;

+ 13 - 3
src/routerMap/index.js

@@ -1002,12 +1002,13 @@ const routerMap = [
       ], resolve),
   },
   // 2021年06月22日09:39:50
+  //2021年12月17日
   {
     path: "/cms/PurchasingManage/RequisitionOrder/list",
-    name: "RequisitionOrderList", //采购模块-->请购单列表
+    name: "RequisitionOrderList", //采购模块-->请购单列表(现改称采购计划)
     meta: {
       index: 3,
-      keepAlive: true,
+      // keepAlive: true,
     },
     component: (resolve) =>
       require(["@/views/PurchasingManage/RequisitionOrder/list"], resolve),
@@ -1026,7 +1027,7 @@ const routerMap = [
     name: "PurchasingOrderList", //采购模块-->采购单列表
     meta: {
       index: 3,
-      keepAlive: true,
+      // keepAlive: true,
     },
     component: (resolve) =>
       require(["@/views/PurchasingManage/PurchasingOrder/list"], resolve),
@@ -1514,6 +1515,15 @@ const routerMap = [
       require(["@/views/ChipPrintScreen/ChipPrintScreen"], resolve),
   },
   {
+    path: "/cms/ChipPrintScreen/copy_ChipPrintScreen",
+    name: "CopyChipPrintScreen", //打印芯片-详情(修改)
+    meta: {
+      index: 3,
+    },
+    component: (resolve) =>
+      require(["@/views/ChipPrintScreen/copy_ChipPrintScreen"], resolve),
+  },
+  {
     path: "/cms/ChipPrintScreen/ChipPrintScreenCheck",
     name: "ChipPrintScreenCheck", //打印芯片-查看
     meta: {

File diff suppressed because it is too large
+ 530 - 85
src/views/ChipPrintScreen/ChipPrintScreen.vue


+ 161 - 29
src/views/ChipPrintScreen/ChipPrintScreenCheck.vue

@@ -1,5 +1,6 @@
 <template>
-  <Modal v-model="fullscreenModal" fullscreen title="工位屏-补打">
+<div>
+  <Modal v-model="fullscreenModals" fullscreen title="工位屏-补打" @on-cancel='cancel'>
     <div slot="header">
       <span style="font-size: 0.5rem">工位屏-补打</span>
       <div class="fullscreen-title-btn">
@@ -333,9 +334,9 @@
     <Modal
       class="selection-rowno-modal"
       v-model="selectionRownolModal"
-      title="行号选择"
       width="80%"
     >
+    <div slot="header"><h1>行号选择</h1></div>
       <div class="selection-rowno-modal-body">
         <van-number-keyboard
           :show="show2"
@@ -349,7 +350,7 @@
           v-for="(block, index) in chooseLineNo"
           :key="index"
         >
-          <span>行号区间:</span>
+          <span style="font-size:2em;">行号区间:</span>
           <Input
             v-model="block.start"
             @on-focus="handleRowNoInput(block, 1)"
@@ -401,9 +402,10 @@
     <Modal
       class="selection-print-modal"
       v-model="printModal"
-      title="打印"
+     
       width="60%"
     >
+     <div slot="header" style="text-align:center;font-weight:bold"><h1>打  印</h1></div>
       <div class="selection-print-modal-body">
         <div class="selection-print-modal-body-top">
           <div>
@@ -417,7 +419,7 @@
           <div>
             <span>数量:</span>
             <InputNumber
-              :max="selectedObj.on_print + selectedObj.un_print"
+              :max="selectedObj.on_print"
               :min="1"
               size="large"
               @on-focus="handlePrintInput"
@@ -433,14 +435,20 @@
           </div>
         </div>
         <div class="selection-print-modal-body-info">
-          {{
+          <!-- {{
             selectedObj.isFinished
               ? "该部件已打印,是否再次打印?"
               : "请确认打印数量是否正确!"
+          }} -->
+           {{
+           
+              "该部件已打印,是否再次打印?"
+
           }}
           <div>
+              <!-- v-show="selectedObj.isFinished" -->
             <Button
-              v-show="selectedObj.isFinished"
+            
               @click="handleSelectionRoom"
               type="primary"
             >
@@ -449,7 +457,7 @@
           </div>
         </div>
       </div>
-      <div slot="footer">
+      <div slot="footer" class="selection-print-modal-body-footer">
         <Button
           @click="printModal = false"
           type="primary"
@@ -458,13 +466,17 @@
           返回
         </Button>
         <Button @click="handlePrintComfirm(selectedObj)" type="primary">
-          确认
-        </Button>
+            芯片打印
+          </Button>
+          <Button @click="Print(selectedObj)" type="primary">
+            标签打印
+          </Button>
       </div>
     </Modal>
     <Modal
       class="selection-modal"
       v-model="roomModal"
+      @on-cancel='handleRoomCancel'
       title="选择房间号"
       width="80%"
     >
@@ -492,20 +504,34 @@
           :total="modal_room_total"
         />
       </div>
-      <div slot="footer">
+      <div slot="footer" style="display:flex;justify-content: space-around;">
         <Button
           @click="handleRoomCancel"
           type="primary"
-          style="margin-right: 10px"
+          style="margin-right: 10px;width:20%;height:60px;font-size:29px"
         >
           返回
         </Button>
-        <Button @click="handlePrintComfirm(selectedObj, 1)" type="primary">
-          确认
-        </Button>
+       <Button @click="handlePrintComfirm(selectedObj, 1)" type="primary"
+           style="width:20%;height:60px;font-size:29px">
+            芯片打印
+          </Button>
+          <Button @click="Print(selectedObj, 1)" type="primary" style="width:20%;height:60px;font-size:29px">
+            标签打印
+          </Button>
       </div>
     </Modal>
   </Modal>
+   <div ref='printRow' class="printRow">
+      <div v-for="(item,index) in tagPrintList" :key="index" class="printRow_content" style="width:380px">
+      <div style="display:flex"><span style="width:140px">项目:{{item.client_name}}</span><span>区域:{{item.house ? item.house + "-" : ""}}{{item.layer ? item.layer : ""}}{{item.position ? item.position : ""}}</span></div>
+      <div style="display:flex"><span style="width:140px">房号:{{item.number_detail}}</span><span>产品:{{item.product_title}}</span></div>
+      <div style="display:flex"><span style="width:140px">图号:{{item.url_number}}</span><span>部件:{{item.part_title}}</span></div>
+      <div><span>尺寸:{{item.measure}}</span></div>
+      <div><span>木皮:{{item.color_title}}</span></div>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
@@ -521,11 +547,12 @@ export default {
   data() {
     // 这里存放数据
     return {
+      tagPrintList:[],
       show: false,
       show2: false,
       show3: false,
       isFullScreen: false,
-      fullscreenModal: true,
+      fullscreenModals: true,
       selectionModal: false,
       selectionRownolModal: false,
       selectionDetailModal: false,
@@ -559,7 +586,7 @@ export default {
         rows: [],
       },
       page_index: 1,
-      page_size: 6,
+      // page_size: 6,
       total: 0,
       currentSearchValue: "",
       modal_1_page_index: 1,
@@ -590,6 +617,54 @@ export default {
     this.getChipDetail();
   },
   methods: {
+     Print(row,type){
+       if (
+        type &&
+        this.modalRoomListSelected.length != this.selectedObj.print_num
+      ) {
+        return this.$Message.warning("与打印数量不符");
+      }
+      let ids = this.modalRoomListSelected.map((v) => {
+        return v.id;
+      });
+      let data = type
+        ? {
+            order_no: this.selectedInfo.order_no,
+            product_id: this.selectedInfo.product_id,
+            rows: this.selectedInfo.rows,
+            num: this.selectedObj.print_num,
+            id: row.id,
+            ids,
+            type,
+          }
+        : {
+            order_no: this.selectedInfo.order_no,
+            product_id: this.selectedInfo.product_id,
+            rows: this.selectedInfo.rows,
+            num: this.selectedObj.print_num,
+            id: row.id,
+          };
+      // 获取打印数据
+      this.axios({
+        method: "post",
+        url: "/api/station_print",
+        data,
+      }).then((resp) => {
+        if (resp.code == 200) {
+          console.log(resp)
+          this.tagPrintList = resp.data;
+          setTimeout(()=>{
+               this.$print(this.$refs.printRow);
+          })
+         
+        }
+        });
+       
+    },
+     cancel(){
+       this.fullscreenModals = false;
+       this.$forceUpdate();
+    },
     back() {
       this.$router.go(-1);
     },
@@ -601,6 +676,7 @@ export default {
       this.currentSearchValue = obj.currentSearchValue;
       this.currencySelectedObj = obj;
       this.selectionModal = true;
+      this.total = 0;
       this.currencySelectedObj.type = type;
       if (this.currencySelectedObj.list.length == 0 || type == 2) {
         this.handleCurrentSearch(
@@ -610,8 +686,7 @@ export default {
       }
     },
     handleSelectionRowno(row) {
-      console.log(`row`, row);
-      if (this.selectedInfo.rows.legth > 0) {
+      if (this.selectedInfo.rows.length > 0) {
         this.chooseLineNo = JSON.parse(JSON.stringify(this.selectedInfo.rows));
       } else {
         this.chooseLineNo = [{ start: null, end: null }];
@@ -867,6 +942,9 @@ export default {
     },
     // 获取具体详情
     getChipDetail() {
+      if(!this.selectedInfo.order_no&&!this.selectedInfo.product_id){
+        return
+      }else{
       this.axios({
         method: "post",
         url: "/api/station_get_order_on_product_pr",
@@ -885,6 +963,7 @@ export default {
           this.total = res.data.total;
         }
       });
+      }
     },
     handlePrint() {
       if (!this.selectedObj.isChoosed) {
@@ -893,7 +972,7 @@ export default {
       if (this.selectedObj.un_print == 0) {
         this.selectedObj.print_num = this.selectedObj.on_print;
       } else {
-        this.selectedObj.print_num = this.selectedObj.un_print;
+        this.selectedObj.print_num = this.selectedObj.on_print;
       }
       this.printModal = true;
     },
@@ -933,6 +1012,7 @@ export default {
           this.axios.get("/api/get_print_local_url").then((res) => {
             console.log(res);
             if (res.code == 200) {
+
               if (res.data.state) {
                 this.handlePrintChipsUsb(resp.data, res.data.type);
               } else {
@@ -940,6 +1020,10 @@ export default {
               }
             }
           });
+          this.modalRoomList.map((v) => {
+        v.isCurrent = false;
+      });
+      this.modalRoomListSelected = [];
           this.printModal = false;
           this.roomModal = false;
         }
@@ -1184,8 +1268,15 @@ export default {
     },
     //行号确认
     handleRowNoComfirm() {
-      this.selectedInfo.rows = JSON.parse(JSON.stringify(this.chooseLineNo));
+      let data =[];
+      this.chooseLineNo.map((v)=>{
+             if(v.start&&v.end){
+               data.push(v)
+             }
+      })
+      this.selectedInfo.rows = JSON.parse(JSON.stringify(data));
       this.selectionRownolModal = false;
+      this.page_index = 1;
       this.getChipDetail();
     },
     onInput(value) {
@@ -1211,19 +1302,19 @@ export default {
     keyboardPrintTap(value) {
       let max = this.selectedObj.on_print + this.selectedObj.un_print;
       this.selectedObj.print_num =
-        (this.selectedObj.print_num ? this.selectedObj.print_num : "") +
+          Number((this.selectedObj.print_num ? this.selectedObj.print_num : "") +
         "" +
-        value;
+        value);
       if (this.selectedObj.print_num * 1 > max) {
         this.selectedObj.print_num = max;
       }
       this.$forceUpdate();
     },
     keyboardPrintDele() {
-      this.selectedObj.print_num = (this.selectedObj.print_num + "").substring(
+    this.selectedObj.print_num = Number((this.selectedObj.print_num + "").substring(
         0,
         this.selectedObj.print_num.length - 1
-      );
+      ));
       this.$forceUpdate();
     },
     keyboardTap(value) {
@@ -1465,7 +1556,15 @@ export default {
     },
   },
   // 监听属性 类似于data概念
-  computed: {},
+  computed: {
+     page_size(){
+          if(this.isWideScreen){
+            return 12
+          }else{
+            return 6
+          }
+       }
+  },
   // 监控data中的数据变化
   watch: {},
   beforeCreate() {}, // 生命周期 - 创建之前
@@ -1495,16 +1594,17 @@ export default {
     border-bottom: 1px solid #e8eaec;
     .fullscreen-content-select-block {
       display: flex;
-      justify-content: center;
+      justify-content: flex-start;
       align-items: center;
     }
     .fullscreen-content-select-block:nth-child(1) {
       width: 30%;
     }
     .fullscreen-content-select-block:nth-child(2) {
-      width: 20%;
+      width: 30%;
     }
     .fullscreen-content-select-block:nth-child(3) {
+      width:30%
     }
   }
   .fullscreen-content-choose {
@@ -1616,6 +1716,8 @@ export default {
 }
 .selection-rowno-modal {
   .selection-rowno-modal-body {
+    max-height: 7rem;
+    overflow: auto;
     .selection-rowno-modal-body-block {
       margin: 0.5rem 0;
       text-align: center;
@@ -1634,9 +1736,21 @@ export default {
       padding-top: 16px;
       border-top: 1px solid #e8eaec;
       text-align: center;
+        button{
+         height: 2em;
+      font-size: 1em;
     }
   }
-}
+   .selection-print-modal-body-footer{
+    height: 1rem;
+    display: flex;
+    justify-content: space-around;
+    button{
+      height: 1.5em;
+      font-size: 3em;
+    }
+  }
+}}
 .icon-wrapper {
   position: relative;
   font-size: 0.25rem;
@@ -1692,4 +1806,22 @@ export default {
     background-color: #2d8cf0;
   }
 }
+.printRow{
+  display: none;
+}
+@media print {
+        .printRow{
+            display: block;
+            width: 100%;
+             margin-top: 10mm;
+            .printRow_content{
+              page-break-after: always;
+            }
+        }
+        @page{
+
+margin:10mm 1mm
+
+}
+        }
 </style>

+ 1830 - 0
src/views/ChipPrintScreen/copy_ChipPrintScreen.vue

@@ -0,0 +1,1830 @@
+<template>
+  <div>
+    <Modal v-model="fullscreenModal" fullscreen title="工位屏">
+      <div slot="header">
+        <span style="font-size: 0.5rem">工位屏</span>
+        <div class="fullscreen-title-btn">
+          <Button
+            @click="handleWideScreenClick"
+            size="large"
+            id="full_screen_btn"
+            type="primary"
+            style="margin-right: 1rem"
+          >
+            {{ isWideScreen ? "完整模式" : "简单模式" }}
+          </Button>
+          <Button
+            @click="handleFullScreenClick"
+            size="large"
+            id="full_screen_btn"
+            type="primary"
+            style="margin-right: 1rem"
+          >
+            {{ isFullScreen ? "收  缩" : "全  屏" }}
+          </Button>
+          <Button
+            @click="handlePrint"
+            size="large"
+            type="primary"
+            style="margin-right: 1rem"
+          >
+            打 印
+          </Button>
+          <Button
+            @click="handleOk"
+            size="large"
+            type="primary"
+            style="margin-right: 1rem"
+          >
+            完 工
+          </Button>
+          <Button
+            style="margin-right: 1rem"
+            @click="goCheckPage"
+            size="large"
+            type="primary"
+          >
+            补 打
+          </Button>
+        </div>
+      </div>
+      <div class="fullscreen-content">
+        <div class="fullscreen-content-select">
+          <div class="fullscreen-content-select-block">
+            <Button
+              @click="handleSelection(ordernoObj, 1)"
+              size="large"
+              type="primary"
+              style="margin-right: 10px"
+            >
+              项目选择
+            </Button>
+            <div class="icon-wrapper" v-show="selectedInfo.order_no">
+              <Icon
+                class="icon-close"
+                @click="handleCancelSelected('order_no')"
+                size="24"
+                type="md-close"
+              />
+              <div>
+                <span>订单编号:</span>
+                <span>{{ selectedInfo.order_no }}</span>
+              </div>
+              <div>
+                <span>项目名称:</span>
+                <span>{{ selectedInfo.residential_name }}</span>
+              </div>
+            </div>
+          </div>
+          <div class="fullscreen-content-select-block">
+            <Button
+              @click="handleSelection(urlObj, 2)"
+              size="large"
+              type="primary"
+              style="margin-right: 10px"
+            >
+              图号选择
+            </Button>
+            <div style="display: flex; align-items: center">
+              <div class="icon-wrapper">
+                <div v-show="selectedInfo.url_number">
+                  <Icon
+                    class="icon-close"
+                    @click="handleCancelSelected('product_id')"
+                    size="24"
+                    type="md-close"
+                  />
+                  <span>图号:</span>
+                  <span>{{ selectedInfo.url_number }}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="fullscreen-content-select-block">
+            <Button
+              @click="handleSelectionRowno(rownoObj)"
+              size="large"
+              type="primary"
+              style="margin-right: 10px"
+            >
+              行号选择
+            </Button>
+            <div
+              class="icon-wrapper"
+              v-show="selectedInfo.rows.length != 0"
+              style="display: flex; align-items: center"
+            >
+              <span>行号:</span>
+              <div style="display: flex; justify-content: flex-start">
+                <div v-for="(item, index) in selectedInfo.rows" :key="item.key">
+                  <div class="icon-wrapper" style="margin-right: 0.35rem">
+                    <Icon
+                      class="icon-close"
+                      @click="handleCancelSelected(index, 1)"
+                      size="24"
+                      type="md-close"
+                    />
+                    <span style="display: inline-block"
+                      >{{ item.start }}-{{ item.end }}</span
+                    >
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="fullscreen-content-choose">
+          <div
+            :class="[
+              choose.isChoosed
+                ? 'fullscreen-content-choose-block fullscreen-content-choose-block-choosen'
+                : 'fullscreen-content-choose-block fullscreen-content-choose-block-unchoosen',
+              isWideScreen ? 'fullscreen-content-choose-block-wide' : '',
+            ]"
+            v-for="choose in contentData"
+            :key="choose.row"
+            @click="handleChooseBlockClick(choose)"
+          >
+            <div
+              :class="[isWideScreen ? 'chip-tag-choosed' : 'chip-tag']"
+              v-show="choose.type == 1"
+            >
+              芯片
+              <Icon
+                size="20px"
+                :style="
+                  isWideScreen
+                    ? 'font-size: 1rem; transform: translate(0, -50%)'
+                    : 'font-size: 1rem; transform: translate(0, -40%)'
+                "
+                style="font-size: 1rem; transform: translate(0, -40%)"
+                :color="choose.isChoosed ? '#2d8cf0' : 'white'"
+                type="md-arrow-dropup"
+              />
+            </div>
+            <div v-show="!isWideScreen">
+              <span>行号</span>
+              <span>{{ choose.row_no }}</span>
+            </div>
+            <div v-show="!isWideScreen">
+              <span>部件</span>
+              <span>{{ choose.part_title }}</span>
+            </div>
+            <div v-show="!isWideScreen">
+              <span>材料</span>
+              <span>{{ choose.sub_part_title }}</span>
+            </div>
+            <div v-show="!isWideScreen">
+              <span>毛料尺寸</span>
+              <span>{{ choose.wool_size }}</span>
+            </div>
+            <div v-show="!isWideScreen">
+              <span>精裁尺寸</span>
+              <span>{{ choose.cut_size }}</span>
+            </div>
+            <div v-show="isWideScreen" class="wide-screen-rowno">
+              <span
+                :class="[
+                  choose.isChoosed
+                    ? 'wide-screen-rowno-span-choosed'
+                    : 'wide-screen-rowno-span',
+                ]"
+                >{{ choose.row_no }}</span
+              >
+            </div>
+            <div>
+              <span>未完成数量</span>
+              <span>
+                {{ choose.un_complete }}(总数:{{
+                  choose.on_complete + choose.un_complete
+                }})
+              </span>
+            </div>
+            <div>
+              <span>未打印数量</span>
+              <span
+                >{{ choose.un_print }}(总数:{{
+                  choose.on_print + choose.un_print
+                }})</span
+              >
+            </div>
+          </div>
+        </div>
+        <div class="fullscreen-content-page">
+          <Page
+            @on-change="changePage"
+            :page-size="page_size"
+            :current="page_index"
+            :total="total"
+          />
+        </div>
+      </div>
+      <div slot="footer"></div>
+      <Modal
+        class="selection-modal"
+        v-model="selectionModal"
+        :title="currencySelectedObj.title"
+        width="80%"
+      >
+        <van-number-keyboard
+          :show="show"
+          @blur="show = false"
+          @input="onInput"
+          @delete="onDelete"
+          z-index="99999"
+        />
+        <div class="selection-modal-top">
+          <Input
+            :placeholder="currencySelectedObj.title"
+            v-model="currentSearchValue"
+            @on-focus="show = true"
+            @on-change="
+              handleCurrentSearch(currencySelectedObj, currentSearchValue)
+            "
+            style="width: 80%"
+          >
+            <Icon
+              @click="
+                handleCurrentSearch(currencySelectedObj, currentSearchValue)
+              "
+              type="ios-search"
+              slot="suffix"
+            />
+          </Input>
+        </div>
+        <div class="selection-modal-body">
+          <div
+            :class="[
+              block.isCurrent
+                ? 'selection-modal-body-block selection-modal-body-block-choosen'
+                : 'selection-modal-body-block selection-modal-body-block-unchoosen',
+            ]"
+            v-for="(block, index) in currencySelectedObj.list"
+            :key="index"
+            @click="handleSelectionClick(currencySelectedObj, block)"
+          >
+            <div v-show="currencySelectedObj.type == 1">
+              <span>订单编号:</span>
+              <span>{{ block.order_no }}</span>
+            </div>
+            <div v-show="currencySelectedObj.type == 2">
+              <span>{{ block.title }}</span>
+            </div>
+            <div v-show="currencySelectedObj.type == 1">
+              <span>项目名称:</span>
+              <span>{{ block.residential_name }}</span>
+            </div>
+          </div>
+          <div
+            style="font-size: 1rem"
+            v-show="currencySelectedObj.list.length == 0"
+          >
+            暂无数据
+          </div>
+        </div>
+        <div class="fullscreen-content-page">
+          <Page
+            @on-change="changeModalPage"
+            :current="
+              currencySelectedObj.type == 1
+                ? modal_1_page_index
+                : modal_2_page_index
+            "
+            :page-size="
+              currencySelectedObj.type == 1
+                ? modal_1_page_size
+                : modal_2_page_size
+            "
+            :total="
+              currencySelectedObj.type == 1 ? modal_1_total : modal_2_total
+            "
+          />
+        </div>
+        <div slot="footer">
+          <Button
+            @click="selectionModal = false"
+            type="primary"
+            style="margin-right: 10px"
+          >
+            返回
+          </Button>
+          <!-- <Button
+          v-show="currencySelectedObj.type == 1"
+          @click="handleSelectionComfirm(currencySelectedObj)"
+          type="primary"
+        >
+          确认
+        </Button> -->
+        </div>
+      </Modal>
+      <Modal
+        class="selection-modal"
+        v-model="selectionDetailModal"
+        :title="currencySelectedObj.title"
+        width="80%"
+      >
+        <div class="selection-modal-body" v-if="currencySelectedObj.hasChild">
+          <div
+            :class="[
+              block.isCurrent
+                ? 'selection-modal-body-block-detail selection-modal-body-block-detail-choosen'
+                : 'selection-modal-body-block-detail selection-modal-body-block-detail-unchoosen',
+            ]"
+            v-for="(block, index) in chooseDetailUrlNo.children"
+            :key="index"
+            @click="handleSelectionDetailClick(chooseDetailUrlNo, block)"
+          >
+            <div>
+              <span>{{ block.url_number }}</span>
+            </div>
+          </div>
+        </div>
+        <div slot="footer">
+          <Button
+            @click="
+              selectionDetailModal = false;
+              selectionModal = true;
+            "
+            type="primary"
+            style="margin-right: 10px"
+          >
+            返回
+          </Button>
+          <!-- <Button
+          @click="handleSelectionComfirm(currencySelectedObj)"
+          type="primary"
+        >
+          确认
+        </Button> -->
+        </div>
+      </Modal>
+      <Modal
+        class="selection-rowno-modal"
+        v-model="selectionRownolModal"
+        title="行号选择"
+        width="80%"
+      >
+        <div class="selection-rowno-modal-body">
+          <van-number-keyboard
+            :show="show2"
+            @blur="show2 = false"
+            @input="keyboardTap"
+            @delete="keyboardDele"
+            z-index="99999"
+          />
+          <div
+            class="selection-rowno-modal-body-block"
+            v-for="(block, index) in chooseLineNo"
+            :key="index"
+          >
+            <span>行号区间:</span>
+            <Input
+              v-model="block.start"
+              @on-focus="handleRowNoInput(block, 1)"
+              clearable
+              style="width: 20%; margin: 0 10px"
+              size="large"
+            />
+            -
+            <Input
+              v-model="block.end"
+              @on-focus="handleRowNoInput(block, 2)"
+              clearable
+              style="width: 20%; margin: 0 10px"
+              size="large"
+            />
+            <Button
+              @click="handleAddRow(block, index)"
+              type="primary"
+              size="large"
+              v-show="index == 0"
+              style="margin-right: 10px"
+            >
+              添加
+            </Button>
+            <Button
+              @click="handleDeleRow(block, index)"
+              type="primary"
+              size="large"
+              v-show="index != 0"
+              style="margin-right: 10px"
+            >
+              删除
+            </Button>
+          </div>
+        </div>
+        <div slot="footer">
+          <Button
+            @click="selectionRownolModal = false"
+            type="primary"
+            style="margin-right: 10px"
+          >
+            返回
+          </Button>
+          <Button @click="handleRowNoComfirm(chooseLineNo)" type="primary">
+            确认
+          </Button>
+        </div>
+      </Modal>
+      <Modal
+        class="selection-print-modal"
+        v-model="printModal"
+        title="打印"
+        width="60%"
+      >
+        <div class="selection-print-modal-body">
+          <div class="selection-print-modal-body-top">
+            <div>
+              <span>行号:</span>
+              <span>{{ selectedObj.row_no }}</span>
+            </div>
+            <div>
+              <span>部件名称:</span>
+              <span>{{ selectedObj.part_title }}</span>
+            </div>
+            <div>
+              <span>数量:</span>
+              <InputNumber
+                :max="selectedObj.un_print"
+                :min="0"
+                size="large"
+                @on-focus="handlePrintInput"
+                v-model="selectedObj.print_num"
+              ></InputNumber>
+              <van-number-keyboard
+                :show="show4"
+                @blur="show4 = false"
+                @input="keyboardPrintTap"
+                @delete="keyboardPrintDele"
+                z-index="99999"
+              />
+            </div>
+          </div>
+          <div class="selection-print-modal-body-info">
+            {{
+              selectedObj.isFinished
+                ? "该部件芯片数量已全部打印,是否再次打印?请选择要打印的房间号:"
+                : "请确认打印数量是否正确!"
+            }}
+            <div>
+              <Button
+                v-show="selectedObj.isFinished"
+                @click="handleSelectionRoom"
+                type="primary"
+              >
+                选择房间号
+              </Button>
+            </div>
+          </div>
+        </div>
+        <div slot="footer">
+          <Button
+            @click="printModal = false"
+            type="primary"
+            style="margin-right: 10px"
+          >
+            返回
+          </Button>
+          <Button @click="handlePrintComfirm(selectedObj)" type="primary">
+            确认
+          </Button>
+        </div>
+      </Modal>
+      <Modal
+        class="selection-print-modal"
+        v-model="okModal"
+        title="完成"
+        width="60%"
+      >
+        <div class="selection-print-modal-body">
+          <div class="selection-print-modal-body-top">
+            <div>
+              <span>行号:</span>
+              <span>{{ selectedObj.row_no }}</span>
+            </div>
+            <div>
+              <span>部件名称:</span>
+              <span>{{ selectedObj.part_title }}</span>
+            </div>
+            <div>
+              <span>数量:</span>
+              <InputNumber
+                :max="
+                  selectedObj.type == 1
+                    ? selectedObj.on_print - selectedObj.on_complete
+                    : selectedObj.un_complete
+                "
+                :min="0"
+                size="large"
+                @on-focus="handleOkInput"
+                v-model="selectedObj.ok_num"
+              ></InputNumber>
+              <van-number-keyboard
+                :show="show3"
+                @blur="show3 = false"
+                @input="keyboardOkTap"
+                @delete="keyboardOkDele"
+                z-index="99999"
+              />
+            </div>
+          </div>
+          <div class="selection-print-modal-body-info">
+            请确认完成数量是否正确?
+          </div>
+        </div>
+        <div slot="footer">
+          <Button
+            @click="okModal = false"
+            type="primary"
+            style="margin-right: 10px"
+          >
+            返回
+          </Button>
+          <Button @click="handleOkComfirm(selectedObj)" type="primary">
+            确认
+          </Button>
+        </div>
+      </Modal>
+      <Modal
+        class="selection-modal"
+        v-model="roomModal"
+        title="选择房间号"
+        width="80%"
+      >
+        <div class="selection-modal-body">
+          <div
+            :class="[
+              block.isCurrent
+                ? 'selection-modal-body-block selection-modal-body-block-choosen'
+                : 'selection-modal-body-block selection-modal-body-block-unchoosen',
+            ]"
+            v-for="(block, index) in modalRoomList"
+            :key="index"
+            @click="handleSelectedRoomClick(modalRoomList, block)"
+          >
+            <div>
+              <span>{{ block.house }}</span>
+            </div>
+          </div>
+        </div>
+        <div class="fullscreen-content-page">
+          <Page
+            @on-change="changeRoomPage"
+            :current="modal_room_page_index"
+            :page-size="modal_room_page_size"
+            :total="modal_room_total"
+          />
+        </div>
+        <div slot="footer">
+          <Button
+            @click="handleRoomCancel"
+            type="primary"
+            style="margin-right: 10px"
+          >
+            返回
+          </Button>
+          <Button @click="handlePrintComfirm(selectedObj, 1)" type="primary">
+            确认
+          </Button>
+        </div>
+      </Modal>
+    </Modal>
+  </div>
+</template>
+
+<script>
+// 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+// 例如:import 《组件名称》 from '《组件路径》';
+import $ from "jquery";
+import "@vant/touch-emulator";
+export default {
+  name: "",
+  components: {},
+  props: {},
+  // import引入的组件需要注入到对象中才能使用
+  data() {
+    // 这里存放数据
+    return {
+      show: false,
+      show2: false,
+      show3: false,
+      show4: false,
+      isFullScreen: false,
+      fullscreenModal: true,
+      selectionModal: false,
+      selectionRownolModal: false,
+      selectionDetailModal: false,
+      printModal: false,
+      okModal: false,
+      roomModal: false,
+      contentData: [],
+      selectedObj: {},
+      ordernoObj: {
+        title: "订单编号/项目名称选择",
+        currentSearchValue: "",
+        list: [],
+        hasChild: false,
+      },
+      urlObj: {
+        title: "图号选择",
+        currentSearchValue: "",
+        list: [],
+        hasChild: true,
+      },
+      rownoObj: {},
+      currencySelectedObj: {
+        title: "订单编号/项目名称选择",
+        type: 1,
+        list: [],
+      },
+      selectedInfo: {
+        order_no: "",
+        residential_name: "",
+        url_number: "",
+        product_id: "",
+        rows: [],
+      },
+      page_index: 1,
+      page_size: 6,
+      total: 0,
+      currentSearchValue: "",
+      modal_1_page_index: 1,
+      modal_1_page_size: 6,
+      modal_1_total: 0,
+      modal_room_page_index: 1,
+      modal_room_page_size: 9,
+      modal_room_total: 0,
+      modal_2_page_index: 1,
+      modal_2_page_size: 60,
+      modal_2_total: 0,
+      chooseOrderNo: {},
+      chooseUrlNo: {},
+      chooseDetailUrlNo: {},
+      chooseLineNo: [{ start: "", end: "" }],
+      keyboardObj: {},
+      keyboardVal: "",
+      modalRoomList: [],
+      modalRoomListSelected: [],
+      isWideScreen: localStorage.getItem("isWideScreen") || false,
+    };
+  },
+  // 生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  beforeRouteEnter(to, from, next) {
+    next((vm) => {
+      if (from.path == "/cms/ChipPrintScreen/ChipPrintScreenCheck") {
+        vm.selectedInfo = JSON.parse(localStorage.getItem("printInfo"));
+        vm.getChipDetail();
+      }
+    });
+  },
+  // 生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {},
+  methods: {
+    back() {
+      this.$router.go(-1);
+    },
+    handleSelection(obj, type) {
+      if (type == 2 && this.selectedInfo.order_no == "") {
+        return this.$Message.warning("请先选择项目");
+      }
+      this.currentSearchValue = "";
+      this.currentSearchValue = obj.currentSearchValue;
+      this.currencySelectedObj = obj;
+      this.selectionModal = true;
+      this.currencySelectedObj.type = type;
+      if (this.currencySelectedObj.list.length == 0 || type == 2) {
+        this.handleCurrentSearch(
+          this.currencySelectedObj,
+          this.currentSearchValue
+        );
+      }
+    },
+    handleSelectionRowno(row) {
+      console.log(`row`, row);
+      if (this.selectedInfo.rows.legth > 0) {
+        this.chooseLineNo = JSON.parse(JSON.stringify(this.selectedInfo.rows));
+      } else {
+        this.chooseLineNo = [{ start: null, end: null }];
+      }
+      this.selectionRownolModal = true;
+    },
+    handleCancelSelected(v, type) {
+      if (type) {
+        this.selectedInfo.rows.splice(v, 1);
+      } else if (v == "product_id") {
+        this.selectedInfo.url_number = "";
+        this.selectedInfo.product_id = "";
+      } else {
+        this.selectedInfo[v] = "";
+      }
+      if (v != "order_no") {
+        this.getChipDetail();
+      } else {
+        this.selectedInfo.residential_name = "";
+        this.selectedInfo.url_number = "";
+        this.selectedInfo.product_id = "";
+        this.selectedInfo.rows = [];
+        this.contentData = [];
+        this.total = 0;
+      }
+    },
+    handleChooseBlockClick(row) {
+      console.log(`row`, row);
+      if (row.isChoosed) {
+        row.isChoosed = false;
+      } else {
+        this.contentData.map((v) => {
+          v.isChoosed = false;
+        });
+        row.isChoosed = true;
+      }
+      if (row.un_print == 0) {
+        row.isFinished = true;
+      }
+      this.selectedObj = row;
+    },
+    goCheckPage() {
+      localStorage.setItem("printInfo", JSON.stringify(this.selectedInfo));
+      this.$router.push({
+        path: "/cms/ChipPrintScreen/ChipPrintScreenCheck",
+      });
+    },
+    handleSelectionClick(row, obj) {
+      row.list.map((v) => (v.isCurrent = false));
+      obj.isCurrent = true;
+      if (row.hasChild) {
+        // 行号
+        this.selectionModal = false;
+        this.selectionDetailModal = true;
+        this.chooseDetailUrlNo = obj;
+        this.currentSearchValue = this.rownoObj.currentSearchValue;
+        this.contentData = [];
+        this.total = 0;
+      } else {
+        // 订单号
+        this.chooseOrderNo = obj;
+        this.currentSearchValue = this.ordernoObj.currentSearchValue;
+      }
+      if (row.type == 1) {
+        this.handleSelectionComfirm(this.currencySelectedObj);
+      }
+      this.$forceUpdate();
+    },
+    handleSelectedRoomClick(list, block) {
+      if (block.isCurrent) {
+        this.modalRoomListSelected = this.modalRoomListSelected.filter(
+          (v) => v.id != block.id
+        );
+        block.isCurrent = !block.isCurrent;
+      } else {
+        if (this.modalRoomListSelected.length < this.selectedObj.print_num) {
+          block.isCurrent = !block.isCurrent;
+          this.modalRoomListSelected = this.modalRoomListSelected.concat(
+            this.modalRoomList.filter((v) => v.isCurrent)
+          );
+        } else {
+          this.$Message.warning("与打印数量不符,请重新选择");
+        }
+      }
+      this.modalRoomListSelected = Array.from(
+        new Set([...this.modalRoomListSelected])
+      );
+    },
+    handleAddRow(row, index) {
+      this.chooseLineNo.push({
+        start: "",
+        end: "",
+      });
+    },
+    handleDeleRow(row, index) {
+      this.chooseLineNo.splice(index, 1);
+    },
+    handleSelectionDetailClick(row, obj) {
+      row.children.map((v) => (v.isCurrent = false));
+      obj.isCurrent = true;
+      this.chooseUrlNo = obj;
+      this.handleSelectionComfirm(this.currencySelectedObj);
+      this.$forceUpdate();
+    },
+    handleFullScreenClick() {
+      this.isFullScreen = !this.isFullScreen;
+      if (this.isFullScreen) {
+        this.enterFullScreen();
+      } else {
+        this.exitFullScreen();
+      }
+    },
+    handleWideScreenClick() {
+      this.isWideScreen = !this.isWideScreen;
+      localStorage.setItem("isWideScreen", this.isWideScreen);
+      
+      if (this.isWideScreen) {
+        this.page_index =1;
+        this.page_size = 12;
+        this.enterWideScreen();
+      } else {
+        this.page_index =1;
+        this.page_size = 6;
+        this.exitWideScreen();
+      }
+      this.getChipDetail();
+    },
+    enterWideScreen() {},
+    exitWideScreen() {},
+    handleSelectionRoom() {
+      this.getModalRoomList();
+      this.roomModal = true;
+    },
+    enterFullScreen() {
+      let el = document.documentElement;
+      let rfs =
+        el.requestFullScreen ||
+        el.webkitRequestFullScreen ||
+        el.mozRequestFullScreen ||
+        el.msRequestFullscreen;
+      if (rfs) {
+        rfs.call(el);
+      } else if (typeof window.ActiveXObject !== "undefined") {
+        // for IE,这里其实就是模拟了按下键盘的F11,使浏览器全屏
+        let wscript = new ActiveXObject("WScript.Shell");
+        if (wscript != null) {
+          wscript.SendKeys("{F11}");
+        }
+      }
+    },
+    exitFullScreen() {
+      let el = document;
+      let cfs =
+        el.cancelFullScreen ||
+        el.mozCancelFullScreen ||
+        el.msExitFullscreen ||
+        el.webkitExitFullscreen ||
+        el.exitFullscreen;
+      if (cfs) {
+        // typeof cfs != "undefined" && cfs
+        cfs.call(el);
+      } else if (typeof window.ActiveXObject !== "undefined") {
+        // for IE,这里和fullScreen相同,模拟按下F11键退出全屏
+        let wscript = new ActiveXObject("WScript.Shell");
+        if (wscript != null) {
+          wscript.SendKeys("{F11}");
+        }
+      }
+    },
+    handleCurrentSearch(row, val) {
+      //type  1项目选择   2图号选择
+      let url =
+        row.type == 1
+          ? "/api/station_get_order"
+          : "/api/station_get_url_number";
+      this.axios({
+        method: "post",
+        url,
+        data: {
+          page_index:
+            row.type == 1 ? this.modal_1_page_index : this.modal_2_page_index,
+          page_size:
+            row.type == 1 ? this.modal_1_page_size : this.modal_2_page_size,
+          order_no: row.type == 1 ? val : this.selectedInfo.order_no,
+          url_number: row.type == 1 ? "" : val,
+        },
+      }).then((res) => {
+        if (res.code == 200) {
+          if (row.type == 1) {
+            row.list = res.data.data;
+            this.modal_1_total = res.data.total;
+          } else {
+            row.list = [];
+            this.modal_2_total = res.data.total;
+            let length = Math.ceil(res.data.data.length / 10);
+            for (let index = 0; index < length; index++) {
+              row.list.push({
+                //最后一位不一定刚好10个
+                title:
+                  length - index == 1
+                    ? `${res.data.data[10 * index].url_number}~${
+                        res.data.data[res.data.data.length - 1].url_number
+                      }`
+                    : `${res.data.data[10 * index].url_number}~${
+                        res.data.data[10 * index + 10].url_number
+                      }`,
+                children: res.data.data.slice(10 * index, 10 * index + 10),
+              });
+            }
+          }
+        }
+      });
+    },
+    //项目、图号确认
+    handleSelectionComfirm(row) {
+      console.log(`row`, row);
+      // 这里需要把弹框关闭之后赋值到selectedInfo上
+      // this.selectedInfo.order_no;
+      // 1 项目选择  2图号选择
+      if (row.type == 1) {
+        this.selectedInfo.order_no = this.chooseOrderNo.order_no;
+        this.selectedInfo.residential_name = this.chooseOrderNo.residential_name;
+        this.selectionModal = false;
+      } else if (row.type == 2) {
+        this.selectedInfo.url_number = this.chooseUrlNo.url_number;
+        this.selectedInfo.product_id = this.chooseUrlNo.product_id;
+        this.selectionDetailModal = false;
+        this.getChipDetail();
+      }
+      // order_no: "20211010",
+      // residential_name: "2",
+      // url_number: "3",
+      // row_no: [],
+    },
+    // 获取具体详情
+    getChipDetail() {
+      this.axios({
+        method: "post",
+        url: "/api/station_get_order_product_pr",
+        data: {
+          order_no: this.selectedInfo.order_no,
+          product_id: this.selectedInfo.product_id,
+          rows: this.selectedInfo.rows,
+          page_index: this.page_index,
+          page_size: this.page_size,
+        },
+      }).then((res) => {
+        if (res.code == 200) {
+          console.log(`res`, res);
+          res.data.data.map((v) => (v.isChoosed = false));
+          this.contentData = res.data.data;
+          this.total = res.data.total;
+        }
+      });
+    },
+    handlePrint() {
+      if (!this.selectedObj.isChoosed) {
+        return this.$Message.warning("请选择数据");
+      }
+      if (this.selectedObj.type != 1) {
+        return this.$Message.warning("该部件不含芯片,无需打印");
+      }
+      if (this.selectedObj.un_print == 0) {
+        this.selectedObj.print_num = this.selectedObj.on_print;
+      } else {
+        this.selectedObj.print_num = this.selectedObj.un_print;
+      }
+      this.printModal = true;
+    },
+    handlePrintComfirm(row, type) {
+      if (
+        type &&
+        this.modalRoomListSelected.length != this.selectedObj.print_num
+      ) {
+        return this.$Message.warning("与打印数量不符");
+      }
+      let ids = this.modalRoomListSelected.map((v) => {
+        return v.id;
+      });
+      let data = type
+        ? {
+            order_no: this.selectedInfo.order_no,
+            product_id: this.selectedInfo.product_id,
+            rows: this.selectedInfo.rows,
+            num: this.selectedObj.print_num,
+            id: row.id,
+            ids,
+            type,
+          }
+        : {
+            order_no: this.selectedInfo.order_no,
+            product_id: this.selectedInfo.product_id,
+            rows: this.selectedInfo.rows,
+            num: this.selectedObj.print_num,
+            id: row.id,
+          };
+      // 获取打印数据
+      this.axios({
+        method: "post",
+        url: "/api/station_print",
+        data,
+      }).then((resp) => {
+        if (resp.code == 200) {
+          // usb打印/ip打印
+          this.axios.get("/api/get_print_local_url").then((res) => {
+            console.log(res);
+            if (res.code == 200) {
+              if (res.data.state) {
+                this.handlePrintChipsUsb(resp.data, res.data.type);
+              } else {
+                this.handlePrintChipsIp(resp.data, res.data.type);
+              }
+            }
+          });
+          this.printModal = false;
+          this.roomModal = false;
+        }
+      });
+    },
+    handleOk() {
+      if (!this.selectedObj.isChoosed) {
+        return this.$Message.warning("请选择数据");
+      }
+      if (this.selectedObj.type == 1 && this.selectedObj.un_print == 0) {
+        this.selectedObj.ok_num =
+          this.selectedObj.on_print - this.selectedObj.on_complete;
+        this.okModal = true;
+      } else if (this.selectedObj.type != 1) {
+        this.selectedObj.ok_num = this.selectedObj.un_complete;
+        this.okModal = true;
+      } else {
+        return this.$Message.warning("部件存在未打印芯片,请先打印");
+      }
+    },
+    handleRoomCancel() {
+      this.modalRoomList.map((v) => {
+        v.isCurrent = false;
+      });
+      this.modalRoomListSelected = [];
+      this.roomModal = false;
+    },
+    handleOkComfirm(row) {
+      this.axios({
+        method: "post",
+        url: "/api/station_complete",
+        data: {
+          order_no: this.selectedInfo.order_no,
+          product_id: this.selectedInfo.product_id,
+          rows: this.selectedInfo.rows,
+          num: this.selectedObj.ok_num,
+          id: row.id,
+        },
+      }).then((res) => {
+        if (res.code == 200) {
+          this.okModal = false;
+          this.getChipDetail();
+        }
+      });
+    },
+    //行号确认
+    handleRowNoComfirm() {
+      this.selectedInfo.rows = JSON.parse(JSON.stringify(this.chooseLineNo));
+      this.selectionRownolModal = false;
+      this.getChipDetail();
+    },
+    onInput(value) {
+      this.currentSearchValue = this.currentSearchValue + "" + value;
+      this.handleCurrentSearch(
+        this.currencySelectedObj,
+        this.currentSearchValue
+      );
+    },
+    onDelete() {
+      this.currentSearchValue = this.currentSearchValue.substring(
+        0,
+        this.currentSearchValue.length - 1
+      );
+      this.handleCurrentSearch(
+        this.currencySelectedObj,
+        this.currentSearchValue
+      );
+    },
+    keyboardOkTap(value) {
+      let max;
+      if (this.selectedObj.type == 1) {
+        max = this.selectedObj.on_print - this.selectedObj.on_complete;
+      } else {
+        max = this.selectedObj.un_complete;
+      }
+      this.selectedObj.ok_num =
+        (this.selectedObj.ok_num ? this.selectedObj.ok_num : "") + "" + value;
+      if (this.selectedObj.ok_num * 1 > max) {
+        this.selectedObj.ok_num = max;
+      }
+      this.$forceUpdate();
+    },
+    keyboardOkDele() {
+      this.selectedObj.ok_num = (this.selectedObj.ok_num + "").substring(
+        0,
+        this.selectedObj.ok_num.length - 1
+      );
+      this.$forceUpdate();
+    },
+    keyboardPrintTap(value) {
+      let max = this.selectedObj.on_print + this.selectedObj.un_print;
+      this.selectedObj.print_num =
+        (this.selectedObj.print_num ? this.selectedObj.print_num : "") +
+        "" +
+        value;
+      if (this.selectedObj.print_num * 1 > max) {
+        this.selectedObj.print_num = max;
+      }
+      this.$forceUpdate();
+    },
+    keyboardPrintDele() {
+      this.selectedObj.print_num = (this.selectedObj.print_num + "").substring(
+        0,
+        this.selectedObj.print_num.length - 1
+      );
+      this.$forceUpdate();
+    },
+    keyboardTap(value) {
+      this.keyboardObj[this.keyboardVal] =
+        (this.keyboardObj[this.keyboardVal]
+          ? this.keyboardObj[this.keyboardVal]
+          : "") +
+        "" +
+        value;
+    },
+    keyboardDele() {
+      this.keyboardObj[this.keyboardVal] = this.keyboardObj[
+        this.keyboardVal
+      ].substring(0, this.keyboardObj[this.keyboardVal].length - 1);
+    },
+    handleRowNoInput(row, type) {
+      if (type == 1) {
+        this.keyboardVal = "start";
+      } else {
+        this.keyboardVal = "end";
+      }
+      this.keyboardObj = row;
+      this.show2 = true;
+    },
+    handleOkInput() {
+      this.show3 = true;
+    },
+    handlePrintInput() {
+      this.show4 = true;
+    },
+    changePage(e) {
+      this.page_index = e;
+      this.getChipDetail();
+    },
+    changeModalPage(e) {
+      this.currencySelectedObj.type == 1
+        ? (this.modal_1_page_index = e)
+        : (this.modal_2_page_index = e);
+      this.handleCurrentSearch(
+        this.currencySelectedObj,
+        this.currentSearchValue
+      );
+    },
+    changeRoomPage(e) {
+      this.modal_room_page_index = e;
+      this.getModalRoomList();
+    },
+    getModalRoomList() {
+      this.axios({
+        method: "post",
+        url: "/api/station_get_print_house",
+        data: {
+          order_no: this.selectedInfo.order_no,
+          product_id: this.selectedInfo.product_id,
+          rows: this.selectedInfo.rows,
+          page_index: this.modal_room_page_index,
+          page_size: this.modal_room_page_size,
+          id: this.selectedObj.id,
+        },
+      }).then((res) => {
+        if (res.code == 200) {
+          res.data.data.map((v) => {
+            v.isCurrent = false;
+            this.modalRoomListSelected &&
+              this.modalRoomListSelected.map((w) => {
+                if (w.id == v.id) {
+                  v.isCurrent = true;
+                }
+              });
+          });
+          this.modalRoomList = res.data.data;
+          this.modal_room_total = res.data.total;
+        }
+      });
+    },
+    handlePrintChipsUsb(contents, type) {
+      this.axios.get("/api/get_print_url").then((res) => {
+        let data = {};
+        // let url = "http://192.168.0.145:888/postek/print"; //request_url
+        let url = `http://${res.data.request_url}:888/postek/print`; //request_url
+        data.reqParam = "1"; //这个一般不用改,如需改,查api
+        let printparamsJsonArray = [];
+        // let IP = "192.168.1.58";//print_url
+        // let IP = "192.168.0.199"; //print_url
+        printparamsJsonArray.push({ PTK_OpenUSBPort: 255 });
+
+        printparamsJsonArray.push({ PTK_ClearBuffer: "" });
+        printparamsJsonArray.push({ PTK_SetDirection: "B" });
+        printparamsJsonArray.push({ PTK_SetPrintSpeed: "4" });
+        printparamsJsonArray.push({ PTK_SetDarkness: "10" });
+        printparamsJsonArray.push({
+          PTK_SetLabelHeight: 624 + "," + 24 + ",0,false",
+        });
+        printparamsJsonArray.push({ PTK_SetLabelWidth: 1080 });
+        // 打印类型 1江山 2贝斯特
+        if (type == 1) {
+          contents.map((content) => {
+            //江山打印格式
+            //上
+            const printContent_l1 = `单号:${content.order_no}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,40,60,0,微软雅黑,1,700,0,0,0," + printContent_l1,
+            });
+            const printContent_l1_2 = `型号:${content.product_title}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,40,60,0,微软雅黑,1,700,0,0,0," + printContent_l1_2,
+            });
+            const printContent_l2 = `尺寸:${content.measure}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,110,60,0,微软雅黑,1,700,0,0,0," + printContent_l2,
+            });
+            const printContent_l2_2 = `工艺:${content.process_title}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,110,60,0,微软雅黑,1,700,0,0,0," + printContent_l2_2,
+            });
+            const printContent_l3 = `颜色:${content.color_title}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,250,60,0,微软雅黑,1,700,0,0,0," + printContent_l3,
+            });
+            const printContent_l3_2 = `部件:${content.part_title}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,180,60,0,微软雅黑,1,700,0,0,0," + printContent_l3_2,
+            });
+            //下
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,435,45,0,微软雅黑,1,700,0,0,0," + printContent_l1,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,435,45,0,微软雅黑,1,700,0,0,0," + printContent_l1_2,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,480,45,0,微软雅黑,1,700,0,0,0," + printContent_l2,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,480,45,0,微软雅黑,1,700,0,0,0," + printContent_l2_2,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,525,45,0,微软雅黑,1,700,0,0,0," + printContent_l3,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,525,45,0,微软雅黑,1,700,0,0,0," + printContent_l3_2,
+            });
+            printparamsJsonArray.push({
+              PTK_RWRFIDLabel:
+                "1,0,0," + content.chip.length / 2 + ",1," + content.chip,
+            });
+            printparamsJsonArray.push({ PTK_PrintLabel: "1,1" });
+          });
+        } else {
+          contents.map((content) => {
+            //贝斯特打印格式
+            //上
+            const printContent_l1 = `项目:${content.client_name}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,40,60,0,微软雅黑,1,700,0,0,0," + printContent_l1,
+            });
+            const printContent_l1_2 = `区域:${
+              content.house ? content.house + "-" : ""
+            }${content.layer ? content.layer : ""}${
+              content.position ? content.position : ""
+            }`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,40,60,0,微软雅黑,1,700,0,0,0," + printContent_l1_2,
+            });
+            const printContent_l2 = `房号:${content.number_detail}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,110,60,0,微软雅黑,1,700,0,0,0," + printContent_l2,
+            });
+            const printContent_l2_2 = `产品:${content.product_title}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,110,60,0,微软雅黑,1,700,0,0,0," + printContent_l2_2,
+            });
+            const printContent_l3 = `图号:${content.url_number}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,180,60,0,微软雅黑,1,700,0,0,0," + printContent_l3,
+            });
+            const printContent_l3_2 = `部件:${content.part_title}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,180,60,0,微软雅黑,1,700,0,0,0," + printContent_l3_2,
+            });
+            const printContent_l4 = `木皮:${content.color_title}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,320,60,0,微软雅黑,1,700,0,0,0," + printContent_l4,
+            });
+            const printContent_l4_2 = `尺寸:${content.measure}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,250,60,0,微软雅黑,1,700,0,0,0," + printContent_l4_2,
+            });
+            //下
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,435,45,0,微软雅黑,1,700,0,0,0," + printContent_l1,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,435,45,0,微软雅黑,1,700,0,0,0," + printContent_l1_2,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,480,45,0,微软雅黑,1,700,0,0,0," + printContent_l2,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,480,45,0,微软雅黑,1,700,0,0,0," + printContent_l2_2,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,525,45,0,微软雅黑,1,700,0,0,0," + printContent_l3,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,525,45,0,微软雅黑,1,700,0,0,0," + printContent_l3_2,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,570,45,0,微软雅黑,1,700,0,0,0," + printContent_l4,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,570,45,0,微软雅黑,1,700,0,0,0," + printContent_l4_2,
+            });
+            // 17,35 420
+            printparamsJsonArray.push({
+              PTK_RWRFIDLabel:
+                "1,0,0," + content.chip.length / 2 + ",1," + content.chip,
+            });
+            printparamsJsonArray.push({ PTK_PrintLabel: "1,1" });
+          });
+        }
+        printparamsJsonArray.push({ PTK_CloseUSBPort: "" });
+        data.printparams = printparamsJsonArray;
+        let sub_data = JSON.parse(JSON.stringify(data));
+        sub_data.printparams = JSON.stringify(sub_data.printparams);
+        let _this = this;
+        $.ajax({
+          type: "post",
+          url,
+          data: sub_data,
+          dataType: "json",
+          timeout: 5000,
+          success: function(result) {
+            _this.getChipDetail();
+            if (result.retval == "0") {
+              _this.$Message.success("发送成功");
+            } else {
+              _this.$Message.error("发送失败,返回结果:" + result.msg);
+            }
+          },
+          error: function() {
+            _this.getChipDetail();
+          },
+        });
+      });
+    },
+    handlePrintChipsIp(contents, type) {
+      this.axios.get("/api/get_print_url").then((res) => {
+        let data = {};
+        // let url = "http://192.168.0.145:888/postek/print"; //request_url
+        let url = `http://${res.data.request_url}:888/postek/print`; //request_url
+        data.reqParam = "1"; //这个一般不用改,如需改,查api
+        let printparamsJsonArray = [];
+        // let IP = "192.168.1.58";//print_url
+        // let IP = "192.168.0.199"; //print_url
+        let IP = res.data.print_url;
+        let port = 9100;
+        let IP_Port = IP + "," + port;
+        printparamsJsonArray.push({ PTK_Connect_Timer: IP_Port + ",1" });
+        printparamsJsonArray.push({ PTK_ClearBuffer: "" });
+        printparamsJsonArray.push({ PTK_SetDirection: "B" });
+        printparamsJsonArray.push({ PTK_SetPrintSpeed: "4" });
+        printparamsJsonArray.push({ PTK_SetDarkness: "10" });
+        printparamsJsonArray.push({
+          PTK_SetLabelHeight: 624 + "," + 24 + ",0,false",
+        });
+        printparamsJsonArray.push({ PTK_SetLabelWidth: 1080 });
+        console.log(`contents`, contents);
+        if (type == 1) {
+          contents.map((content) => {
+            //江山打印格式
+            //上
+            const printContent_l1 = `单号:${content.order_no}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,40,60,0,微软雅黑,1,700,0,0,0," + printContent_l1,
+            });
+            const printContent_l1_2 = `型号:${content.product_title}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,40,60,0,微软雅黑,1,700,0,0,0," + printContent_l1_2,
+            });
+            const printContent_l2 = `尺寸:${content.measure}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,110,60,0,微软雅黑,1,700,0,0,0," + printContent_l2,
+            });
+            const printContent_l2_2 = `工艺:${content.process_title}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,110,60,0,微软雅黑,1,700,0,0,0," + printContent_l2_2,
+            });
+            const printContent_l3 = `颜色:${content.color_title}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,250,60,0,微软雅黑,1,700,0,0,0," + printContent_l3,
+            });
+            const printContent_l3_2 = `部件:${content.part_title}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,180,60,0,微软雅黑,1,700,0,0,0," + printContent_l3_2,
+            });
+            //下
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,435,45,0,微软雅黑,1,700,0,0,0," + printContent_l1,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,435,45,0,微软雅黑,1,700,0,0,0," + printContent_l1_2,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,480,45,0,微软雅黑,1,700,0,0,0," + printContent_l2,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,480,45,0,微软雅黑,1,700,0,0,0," + printContent_l2_2,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,525,45,0,微软雅黑,1,700,0,0,0," + printContent_l3,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,525,45,0,微软雅黑,1,700,0,0,0," + printContent_l3_2,
+            });
+            printparamsJsonArray.push({
+              PTK_RWRFIDLabel:
+                "1,0,0," + content.chip.length / 2 + ",1," + content.chip,
+            });
+            printparamsJsonArray.push({ PTK_PrintLabel: "1,1" });
+          });
+        } else {
+          contents.map((content) => {
+            //贝斯特打印格式
+            //上
+            const printContent_l1 = `项目:${content.client_name}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,40,60,0,微软雅黑,1,700,0,0,0," + printContent_l1,
+            });
+            const printContent_l1_2 = `区域:${
+              content.house ? content.house + "-" : ""
+            }${content.layer ? content.layer : ""}${
+              content.position ? content.position : ""
+            }`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,40,60,0,微软雅黑,1,700,0,0,0," + printContent_l1_2,
+            });
+            const printContent_l2 = `房号:${content.number_detail}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,110,60,0,微软雅黑,1,700,0,0,0," + printContent_l2,
+            });
+            const printContent_l2_2 = `产品:${content.product_title}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,110,60,0,微软雅黑,1,700,0,0,0," + printContent_l2_2,
+            });
+            const printContent_l3 = `图号:${content.url_number}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,180,60,0,微软雅黑,1,700,0,0,0," + printContent_l3,
+            });
+            const printContent_l3_2 = `部件:${content.part_title}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,180,60,0,微软雅黑,1,700,0,0,0," + printContent_l3_2,
+            });
+            const printContent_l4 = `木皮:${content.color_title}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,320,60,0,微软雅黑,1,700,0,0,0," + printContent_l4,
+            });
+            const printContent_l4_2 = `尺寸:${content.measure}`;
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,250,60,0,微软雅黑,1,700,0,0,0," + printContent_l4_2,
+            });
+            //下
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,435,45,0,微软雅黑,1,700,0,0,0," + printContent_l1,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,435,45,0,微软雅黑,1,700,0,0,0," + printContent_l1_2,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,480,45,0,微软雅黑,1,700,0,0,0," + printContent_l2,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,480,45,0,微软雅黑,1,700,0,0,0," + printContent_l2_2,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,525,45,0,微软雅黑,1,700,0,0,0," + printContent_l3,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,525,45,0,微软雅黑,1,700,0,0,0," + printContent_l3_2,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "100,570,45,0,微软雅黑,1,700,0,0,0," + printContent_l4,
+            });
+            printparamsJsonArray.push({
+              PTK_DrawText_TrueType:
+                "600,570,45,0,微软雅黑,1,700,0,0,0," + printContent_l4_2,
+            });
+            // 17,35 420
+            printparamsJsonArray.push({
+              PTK_RWRFIDLabel:
+                "1,0,0," + content.chip.length / 2 + ",1," + content.chip,
+            });
+            printparamsJsonArray.push({ PTK_PrintLabel: "1,1" });
+          });
+        }
+        printparamsJsonArray.push({ PTK_CloseConnect: "" });
+        data.printparams = printparamsJsonArray;
+        let sub_data = JSON.parse(JSON.stringify(data));
+        sub_data.printparams = JSON.stringify(sub_data.printparams);
+        let _this = this;
+        $.ajax({
+          type: "post",
+          url,
+          data: sub_data,
+          dataType: "json",
+          timeout: 5000,
+          success: function(result) {
+            _this.getChipDetail();
+            if (result.retval == "0") {
+              _this.$Message.success("发送成功");
+            } else {
+              _this.$Message.error("发送失败,返回结果:" + result.msg);
+            }
+          },
+          error: function() {
+            _this.getChipDetail();
+          },
+        });
+      });
+    },
+  },
+  // 监听属性 类似于data概念
+  computed: {},
+  // 监控data中的数据变化
+  watch: {},
+  beforeCreate() {}, // 生命周期 - 创建之前
+  beforeMount() {}, // 生命周期 - 挂载之前
+  beforeUpdate() {}, // 生命周期 - 更新之前
+  updated() {}, // 生命周期 - 更新之后
+  beforeDestroy() {}, // 生命周期 - 销毁之前
+  destroyed() {}, // 生命周期 - 销毁完成
+  activated() {}, // 如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+
+<style lang="scss" scoped>
+.fullscreen-title-btn {
+  position: absolute;
+  right: 100px;
+  top: 0.175rem;
+}
+.fullscreen-content {
+  font-size: 26px;
+  font-family: "Microsoft YaHei", 微软雅黑;
+  font-weight: bold;
+  .fullscreen-content-select {
+    display: flex;
+    justify-content: flex-start;
+    padding-bottom: 0.1rem;
+    border-bottom: 1px solid #e8eaec;
+    .fullscreen-content-select-block {
+      display: flex;
+      justify-content: flex-start;
+      align-items: center;
+    }
+    .fullscreen-content-select-block:nth-child(1) {
+      width: 30%;
+    }
+    .fullscreen-content-select-block:nth-child(2) {
+      width: 30%;
+    }
+    .fullscreen-content-select-block:nth-child(3) {
+      width: 20%;
+    }
+  }
+  .fullscreen-content-choose {
+    display: flex;
+    justify-content: flex-start;
+    flex-wrap: wrap;
+    padding-top: 0.1rem;
+    margin-bottom: 0.5rem;
+    .fullscreen-content-choose-block {
+      width: 33.33%;
+      border-radius: 5px;
+      border: 1px solid #2d8cf0;
+      // margin: 0.1rem 1%;
+      padding: 1%;
+      position: relative;
+      div {
+        display: flex;
+        justify-content: space-between;
+        // margin-top: 5px;
+      }
+      .chip-tag {
+        display: inline-block;
+        position: absolute;
+        width: 1rem;
+        top: 0;
+        left: 50%;
+        font-size: 18px;
+        background-color: #fadb14;
+        color: black;
+        height: 0.75rem;
+        border-radius: 15%;
+        text-align: center;
+        padding-top: 0.15rem;
+        transform: translate(-50%, -10%);
+      }
+      .chip-tag-choosed {
+        display: inline-block;
+        position: absolute;
+        width: 1rem;
+        top: 0;
+        left: 15%;
+        font-size: 18px;
+        background-color: #fadb14;
+        color: black;
+        height: 0.75rem;
+        border-radius: 15%;
+        text-align: center;
+        padding-top: 0.15rem;
+        transform: translate(-10%, -10%) !important;
+      }
+    }
+    .fullscreen-content-choose-block-wide {
+      width: 24.5%;
+    }
+    .fullscreen-content-choose-block-choosen {
+      color: white;
+      background-color: #2d8cf0;
+    }
+    .fullscreen-content-choose-block-unchoosen {
+      color: #2d8cf0;
+      background-color: white;
+    }
+  }
+}
+.fullscreen-content-page {
+  display: flex;
+  justify-content: center;
+}
+.selection-modal {
+  .selection-modal-top {
+    display: flex;
+    justify-content: center;
+  }
+  .selection-modal-body {
+    display: flex;
+    justify-content: center;
+    flex-wrap: wrap;
+    .selection-modal-body-block {
+      cursor: pointer;
+      width: 30%;
+      margin: 1%;
+      padding: 3% 1%;
+      background-color: #e9ecef;
+      div {
+        display: flex;
+        justify-content: center;
+      }
+    }
+    .selection-modal-body-block-detail {
+      cursor: pointer;
+      width: 17%;
+      margin: 1%;
+      padding: 3% 1%;
+      background-color: #e9ecef;
+      div {
+        display: flex;
+        justify-content: center;
+      }
+    }
+    .selection-modal-body-block-choosen,
+    .selection-modal-body-block-detail-choosen {
+      background-color: #fadb14;
+    }
+    .selection-modal-body-block-unchoosen,
+    .selection-modal-body-block-detail-unchoosen {
+      background-color: #e9ecef;
+    }
+  }
+}
+.selection-rowno-modal {
+  .selection-rowno-modal-body {
+    .selection-rowno-modal-body-block {
+      margin: 0.5rem 0;
+      text-align: center;
+    }
+  }
+}
+.selection-print-modal {
+  .selection-print-modal-body {
+    .selection-print-modal-body-top {
+      display: flex;
+      justify-content: space-around;
+      align-items: center;
+      margin: 0.5rem 0;
+    }
+    .selection-print-modal-body-info {
+      padding-top: 16px;
+      border-top: 1px solid #e8eaec;
+      text-align: center;
+    }
+  }
+}
+.icon-wrapper {
+  position: relative;
+  font-size: 0.25rem;
+}
+.icon-close {
+  position: absolute;
+  right: -0.35rem;
+  top: -0.2rem;
+}
+/deep/.ivu-page-item {
+  display: inline-block;
+  font-size: 0.5rem;
+  height: 1rem;
+  line-height: 1rem;
+  width: 1rem;
+}
+/deep/.ivu-page-prev,
+/deep/.ivu-page-next {
+  display: inline-block;
+  font-size: 0.5rem;
+  height: 1rem;
+  line-height: 1rem;
+  width: 1rem;
+  a {
+    font-size: 0.5rem;
+  }
+}
+/deep/.ivu-modal-close {
+  border: 1px solid black;
+}
+/deep/.fullscreen-content-page {
+  display: flex;
+  justify-content: space-around;
+}
+.wide-screen-rowno {
+  display: flex;
+  justify-content: center !important;
+  span {
+    display: inline-block;
+    text-align: center;
+    width: 3rem;
+    height: 3rem;
+    line-height: 3rem;
+    border-radius: 50%;
+    font-size: 1.5rem;
+  }
+  .wide-screen-rowno-span-choosed {
+    color: #2d8cf0;
+    background-color: white;
+  }
+  .wide-screen-rowno-span {
+    color: white;
+    background-color: #2d8cf0;
+  }
+}
+</style>

+ 42 - 8
src/views/Dispatching/Dispatching.vue

@@ -49,7 +49,7 @@
           />
            <div slot="extra" style="width:250px;line-height:40px;font-size:12px">
          <label style="width:130px">批量设置班组:</label>
-         <Select v-model="group" size='small' style="z-index:99;position: fixed;width:150px;margin-top: 6px;margin-left:10px" @on-change='change_NK'> <Option :value="_item.id" :label="_item.nickname" v-for="_item in groupList" :key="_item.id">
+         <Select v-model="group" size='small' style="z-index:99;position: fixed;width:150px;margin-top: 6px;margin-left:10px" @on-change='change_NK' clearable> <Option :value="_item.id" :label="_item.nickname" v-for="_item in groupList" :key="_item.id">
          </Option> </Select>
         </div>
         </Tabs>
@@ -307,12 +307,22 @@ export default {
             this.searchData.order_no = res.data.order_no
            })
            if(this.searchData.residential_name&&this.searchData.order_no){
+
               this.show = false;
               this.axios.get('/api/order_produce_url_number',{params:{...this.searchData}}).then(res=>{
-                this.urlNumberList = res.data
+                this.urlNumberList = res.data;
+                this.searchData.url_number = '';
+                   this.wood_select=[]
+                 this.paint_select=[]
+     this.packing_select=[]
+      this.transit_select=[]
+   this.install_select=[]
               })
            }else{
              this.show = true;
+             if(this.show){
+               this.searchData.url_number = '';
+             }
            }
          
     },
@@ -323,10 +333,19 @@ export default {
            if(this.searchData.residential_name&&this.searchData.order_no){
               this.show = false;
               this.axios.get('/api/order_produce_url_number',{params:{...this.searchData}}).then(res=>{
-                this.urlNumberList = res.data
+                this.urlNumberList = res.data;
+                this.searchData.url_number = '';
+                this.wood_select=[]
+                 this.paint_select=[]
+     this.packing_select=[]
+      this.transit_select=[]
+   this.install_select=[]
               })
            }else{
              this.show =true;
+              if(this.show){
+              this.searchData.url_number = '';
+             }
            }
     },
     change_NK(row){
@@ -335,7 +354,10 @@ export default {
       }else{
       if(this.currencyTag == 1){
         if(this.wood_select.length == 0){
-          this.$Message.warning('请先选择工序!')
+          this.$Message.warning('请先选择工序!');
+          setTimeout(()=>{
+            this.group = '';
+          })
         }else{
         this.tableData.forEach(item=>{
           this.wood_select.forEach(_item=>{
@@ -350,7 +372,10 @@ export default {
       }
       if(this.currencyTag == 2){
         if(this.paint_select.length == 0){
-          this.$Message.warning('请先选择工序!')
+          this.$Message.warning('请先选择工序!');
+       setTimeout(()=>{
+            this.group = '';
+          })
         }else{
         this.tableData.forEach(item=>{
           this.paint_select.forEach(_item=>{
@@ -365,7 +390,10 @@ export default {
       }
        if(this.currencyTag == 3){
         if(this.packing_select.length == 0){
-          this.$Message.warning('请先选择工序!')
+          this.$Message.warning('请先选择工序!');
+         setTimeout(()=>{
+            this.group = '';
+          })
         }else{
         this.tableData.forEach(item=>{
           this.packing_select.forEach(_item=>{
@@ -380,7 +408,10 @@ export default {
       }
        if(this.currencyTag == 4){
         if(this.transit_select.length == 0){
-          this.$Message.warning('请先选择工序!')
+          this.$Message.warning('请先选择工序!');
+       setTimeout(()=>{
+            this.group = '';
+          })
         }else{
         this.tableData.forEach(item=>{
           this.transit_select.forEach(_item=>{
@@ -395,7 +426,10 @@ export default {
       }
        if(this.currencyTag == 5){
         if(this.install_select.length == 0){
-          this.$Message.warning('请先选择工序!')
+          this.$Message.warning('请先选择工序!');
+         setTimeout(()=>{
+            this.group = '';
+          })
         }else{
         this.tableData.forEach(item=>{
           this.install_select.forEach(_item=>{

+ 2 - 2
src/views/MountOrder/details.vue

@@ -59,7 +59,7 @@ export default {
                  {title:'图号',name:'Select',serverName:'url_number',placeholder:'请选择图号',value:'',optionValue: 'url_number', optionName: 'url_number',
                     option:[]
                 },
-                {title:'部件',name:'Select',serverName:'parts',placeholder:'部件',value:'',optionValue: 'title', optionName: 'title',
+                {title:'部件',name:'Select',serverName:'part',placeholder:'部件',value:'',optionValue: 'title', optionName: 'title',
                 option:[]} ,
                 {title:'出库时间',name:'Input',start_server:'start_time',end_server:'end_time',start_value:'',end_value:'',isDate:true,serverName:'id2',start_placeholder:'开始日期',end_placeholder:'结束日期'}
             ],
@@ -76,7 +76,7 @@ export default {
                 {title:'产品名称',align:'center',minWidth:200,key:'product_title'},
                 {title:'图号',align:'center',minWidth:200,key:'url_number'},
                 {title:'部件名称',align:'center',minWidth:200,key:'part_title'},
-                {title:'位置',align:'center',minWidth:200,key:'position'},
+               
                 {title:'零部件名称',align:'center',minWidth:200,key:'sub_part_title'},
                 {title:'芯片编码',align:'center',minWidth:200,key:'tag'},
                 {title:'是否完成',align:'center',minWidth:200,key:'sub_state',

+ 18 - 0
src/views/ProductionOrderList/Deliverylist/DeliveryDetail.vue

@@ -16,6 +16,14 @@
       :total="total"
     >
       <div slot="titleButton">
+         <Button
+          @click="exportContent"
+          type="primary"
+        
+         
+          style="margin-right: 10px"
+          >导出</Button
+        > 
         <Button
           v-if="$route.query.type == 2"
           @click="handleOrderReturn(selects)"
@@ -323,6 +331,16 @@ export default {
   },
 
   methods: {
+    async exportContent() {
+      const res = await this.axios("/api/transport_export", {
+        params: { transport_no:this.$route.query.transport_no },
+      });
+      if (res.code == 200) {
+      
+        let url = `${this.$store.state.ip}/api/storage/${res.data.file}`;
+        location.href = url;
+      }
+    },
       outDelivery(row){
          this.info.order_in_no = Array.isArray(row)
         ? row.join(",")

+ 2 - 1
src/views/ProductionOrderList/Dispatchlist/confirm.vue

@@ -233,6 +233,7 @@ export default {
        Object.assign(row, this.$route.query);
         row.page_size = this.pageSize;
       row.page_index = this.pageIndex;
+       this.proxyObj = row;
        this.axios("/api/orders_dispatch_produce_list", { params: row }).then(
         (res) => {
           if (res.code == 200) {
@@ -251,7 +252,7 @@ export default {
       row.page_size = this.pageSize;
       row.page_index = this.pageIndex;
       Object.assign(row, this.$route.query);
-      
+      this.proxyObj = row;
       this.getData(row);
     },
     back() {

+ 2 - 2
src/views/ProductionOrderList/Dispatchlist/details.vue

@@ -323,9 +323,9 @@ export default {
              if(element.id == 3){
                element.content.forEach(v=>{
                  if(v.title === '详情导出'){
-                         this.export_state = v.state;
+                         this.export_state = v.value==1?true:false;
                  }else if(v.title === 'NC下载'){
-                          this.NC_state = v.state;
+                          this.NC_state = v.value==1?true:false;
                  }
                })
              }

+ 71 - 1
src/views/ProductionOrderList/InboundForm/details.vue

@@ -23,6 +23,13 @@
           style="margin-right:10px;"
           >批量退回</Button
         >
+          <Button
+          v-if="$route.query.type == 4"
+          @click="inbound"
+          type="primary"
+          style="margin-right:10px;"
+          >包装统计</Button
+        >
         <Button @click="back" type="primary" ghost style="margin-right:10px;"
           >返回</Button
         >
@@ -148,6 +155,27 @@
         </Form>
       </Modal>
     </FullPage>
+    <Modal  
+       class-name="vertical-center-modal-inbound"
+        width="600"
+      :closable='false'
+        v-model="showInbound"
+        >
+   <div slot="header"><span>包装统计</span><span style="float:right">合计{{inboundVal}}包</span></div>
+   <Table
+   :data='inboundTableData'
+   border
+  max-height='500'
+   :columns="inboundColum">
+</Table>
+<div slot="footer" style="text-align:center">
+  <Button type="primary" @click="showInbound=false" long style="width:30%">
+    返回
+  </Button>
+</div>
+<Page :total="inboundTotal" prev-text="上一页" next-text="下一页" @on-change='changeIndex' @on-page-size-change='changeSizeIN' :page-size-opts='[10,20,30,100,1000]' 
+       :show-sizer='true' style="text-align:center;margin-top:10px"/>
+    </Modal>
   </div>
 </template>
 
@@ -156,6 +184,21 @@ import { mapActions } from "vuex";
 export default {
   data() {
     return {
+      inboundVal:0,
+      inboundTotal:0,
+      inboundPageSize:10,
+      inboundPageIndex:1,
+      inboundTableData:[],
+      inboundColum:[
+             {title: "房间号",
+          align: "center",
+          minWidth: 200,
+          key: "room_number"},
+        {title: "包装数",
+        align: "center",
+        minWidth: 200,
+        key: "num",}
+      ],
       list: [
         {
           title: "楼幢",
@@ -343,6 +386,7 @@ export default {
       ],
       tableData: [],
       pageIndex: 1,
+      showInbound:false,
       total: 0,
       pageSize: 10,
       loading: false,
@@ -412,6 +456,31 @@ export default {
   },
 
   methods: {
+    getInboundData(){
+       this.axios.get('/api/orders_list_detail_census',{params:{
+         page_size:this.inboundPageSize,
+         page_index:this.inboundPageIndex,
+         order_no:this.$route.query.order_no,
+         type:this.$route.query.type,
+         ...this.proxyObj
+         }}).then(res=>{
+               this.inboundTableData = res.data.data;
+              this.inboundTotal = res.data.total;
+              this.inboundVal = res.data.total_num;
+         })
+    },
+    changeIndex(e){
+          this.inboundPageIndex = e;
+          this.getInboundData();
+    },
+    changeSizeIN(e){
+       this.inboundPageSize = e;
+       this.getInboundData();
+    },
+    inbound(){
+      this.showInbound=true;
+      this.getInboundData();
+    },
       outDelivery(row){
          this.info.order_in_no = Array.isArray(row)
         ? row.join(",")
@@ -666,4 +735,5 @@ export default {
 };
 </script>
 
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+</style>

+ 11 - 4
src/views/ProductionOrderList/ProductionPlanlist/BST_two.vue

@@ -1,5 +1,5 @@
 <template>
-  <div>
+  <div style="height:100%">
     <FullPage
       title="生产排产列表"
       :list="set_list"
@@ -701,14 +701,21 @@ export default {
       table.splice(b, 0, ...table.splice(a, 1));
     },
     handleDispatchType(row) {
-      console.log("row :>> ", row);
-      this.$router.push({
+      // console.log("row :>> ", row);
+      this.axios.post('/api/order_produce_list').then(res=>{
+        if(res.code == 201){
+          this.$Message.warning(res.msg)
+        }else{
+             this.$router.push({
         path: "/cms/Dispatching/Dispatching",
         query: {
           order_no: row.order_no,
           plan_no: row.plan_no,
         },
       });
+        }
+      })
+     
     },
     dispatchList(row) {
       this.dispatchOrder({
@@ -762,7 +769,7 @@ export default {
 .pageSlotStyle {
   display: flex;
   justify-content: center;
-  margin-top: 20px;
+  margin-top: 10px;
 }
 .modal_content {
   display: flex;

+ 1 - 1
src/views/PurchasingManage/RequisitionOrder/list.vue

@@ -1,6 +1,6 @@
   <template>
   <div class="requisition_order">
-    <Toptitle title="请购列表">
+    <Toptitle title="采购计划">
       <slot name="titleButton">
         <!-- <Button @click="handleCodeRule"
                 type="primary"

+ 2 - 0
src/views/leadMatch/MatchList/matchCheck.vue

@@ -354,6 +354,8 @@ export default {
       matchedSheetTableColumns: [
         { title: "序号", align: "center", type: "index", resizable: true,
                         width: 100 },
+        //  { title: "组合名称", align: "center", key:'compose_name', resizable: true,
+        //                 width: 100 },
         { title: "区域名称", align: "center", key: "region",  resizable: true,
                         width: 160 },
         { title: "房号", align: "center", key: "house_number",  resizable: true,

+ 1 - 1
src/views/leadMatch/MatchList/matchList.vue

@@ -237,7 +237,7 @@ export default {
   padding-top: 20px;
 }
 .match_list{
-  height:620px;
+  height:80%;
   overflow: hidden;
 }
 /deep/ .ivu-col{

+ 2 - 0
src/views/leadMatch/MatchList/matchPage.vue

@@ -816,6 +816,7 @@ export default {
           },
         },
         { title: "序号", align: "center", type: "index", minWidth: 60 },
+          // { title: "组合名称", align: "center", key: "compose_name", minWidth: 100 },
         { title: "部件名称", align: "center", key: "part_name", minWidth: 100 },
         { title: "行号", align: "center", key: "line", minWidth: 70 },
         { title: "木皮1", align: "center", key: "skin1", minWidth: 60 },
@@ -865,6 +866,7 @@ export default {
       matchedSheetTableColumns: [
         // { title: "全选", align: "center", minWidth: 60, type: "selection" },
         { title: "序号", align: "center", type: "index", minWidth: 60 },
+        //  { title: "组合名称", align: "center", key:'compose_name', minWidth: 100 },
         { title: "区域名称", align: "center", key: "region", minWidth: 100 },
         { title: "房号", align: "center", key: "house_number", minWidth: 100 },
         { title: "部件名称", align: "center", key: "part_name", minWidth: 100 },

+ 1 - 1
src/views/leadMatch/roomList/list.vue

@@ -175,7 +175,7 @@ export default {
 </script>
 <style scoped lang='scss'>
 .weight_memo_content{
-    height: 650px;
+    height: 80%;
     overflow: auto;
 }
 .content_body_page{

+ 2 - 0
src/views/leadMatch/weightMemo/edit.vue

@@ -119,6 +119,8 @@ export default {
       tableColumns:[
             { title: "序号", type:'index', align: "center",resizable: true,
                         width: 100 },
+                // { title: "组合名称", key:'compose_name', align: "center",resizable: true,
+                //         width: 100 },
               { title: "部件名称", key: "part_title", align: "center",resizable: true,
                         width: 140 },
                 { title: "行号", key: "line_number", align: "center", resizable: true,

+ 1 - 1
src/views/leadMatch/weightMemo/list.vue

@@ -172,7 +172,7 @@ export default {
 </script>
 <style scoped lang='scss'>
 .weight_memo_content{
-    height: 650px;
+    height: 80%;
     overflow: auto;
 }
 .content_body_page{

Some files were not shown because too many files changed in this diff