mushencc 4 anni fa
parent
commit
46ee147b17

+ 9 - 0
src/routerMap/index.js

@@ -1514,6 +1514,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: {

+ 4 - 1
src/views/ChipPrintScreen/ChipPrintScreen.vue

@@ -36,7 +36,7 @@
             type="primary"
             style="margin-right: 1rem"
           >
-            完 
+            完 
           </Button>
           <Button
             style="margin-right: 1rem"
@@ -818,10 +818,13 @@ export default {
     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();
       }

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

@@ -0,0 +1,1978 @@
+<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
+        class=""
+        v-model="finishWork"
+       
+        width="80%"
+      >
+       <div slot="header" style="text-align:center;font-weight:bold"><h1>完 工</h1></div>
+       <div style="display:flex;height: 7.5rem;">
+           <div style="width:60%;overflow:auto;border-right:2px solid #ede7e7">
+               <div style="display:flex">
+                   <span style="width:2rem;font-size: 0.4rem;margin: 0.6em;">工序</span>
+                   <div style="display:flex;flex-wrap: wrap;">
+                       <span v-for="item in produceList" :key="item.id" @click="changeChooseProduceList(item)" :style="item.isChoosed?{border: '2px solid #83b2e3',fontSize: '0.4rem',padding: '0.1em 0.2rem',borderRadius: '5px',margin: '0.6em',color:'#ffffff',backgroundColor:'#83b2e3',cursor: 'pointer'}:{border: '2px solid #83b2e3',fontSize: '0.4rem',padding: '0.1em 0.2rem',borderRadius: '5px',margin: '0.6em',color:'#83b2e3',cursor: 'pointer'}">
+                           {{item.title}}
+                       </span>
+                   </div>
+                </div>
+                <div style="display:flex">
+                    <span  style="width:3rem;font-size: 0.4rem;margin: 0.6em;">班组</span>
+                    <div style="display:flex;flex-wrap:wrap">
+                        <span v-for="_item in employeeList" :key="_item.id" @click="changeChooseEmployeeList(_item)" :style="_item.isChoosed?{border: '2px solid #83b2e3',fontSize: '0.4rem',padding: '0.1em 0.2rem',borderRadius: '5px',margin: '0.6em',color:'#ffffff',backgroundColor:'#83b2e3',cursor: 'pointer'}:{border: '2px solid #83b2e3',fontSize: '0.4rem',padding: '0.1em 0.2rem',borderRadius: '5px',margin: '0.6em',color:'#83b2e3',cursor: 'pointer'}" >
+                            {{_item.nickname}}
+                        </span>
+                    </div>
+                </div>
+            </div>
+           <div style="width:40%;overflow:auto;">
+            
+               <div v-for="item in rownoList" :key="item.id" style="display:flex;justify-content: space-between;align-items: center;width: 100%;font-size:0.4rem;margin-bottom:0.5rem">
+                     <van-number-keyboard
+            :show="show5"
+            @blur="show5 = false"
+            @input="numChange($event,item)"
+            @delete="delChange(item)"
+            z-index="99999"
+          />
+                   <span style="margin-left:1rem">行号:{{item.sort}}</span><span style="width: 40%;">数量:<Input style='width:50%' size="large" v-model="item.num"  @on-focus="show5 = true" clearable /></span>
+                </div>
+           </div>
+       </div>
+        <div slot="footer" style="text-align:center;">
+             <div style="margin-bottom:0.3rem"><h1>是否确认完工?</h1></div>
+          <Button
+            @click="handleRoomCancel"
+            type="primary"
+            style="margin-right: 0.5rem;width:15%;height:1rem;font-size:0.4rem"
+          >
+            返回
+          </Button>
+          <Button @click="handleThen" type="primary"  style="margin-right: 0.5rem;width:15%;height:1rem;font-size:0.4rem">
+            确认
+          </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 {
+    produceID:null,
+ employeeID:null,
+    rownoList:[],
+    employeeList:[],
+   produceList:[],
+      saveData:[],
+      finishWork:false,
+      show: false,
+      show2: false,
+      show3: false,
+      show4: false,
+      show5: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() {
+       this.axios.post('/api/station_get_type').then(res=>{
+              if(res.code == 200){
+                  this.employeeList = res.data.employee_list;
+                  this.employeeList.map(item=>{
+                          item.isChoosed = false;
+                  })
+                  this.produceList = res.data.produce_list;
+                  this.produceList.map(item=>{
+                      item.isChoosed = false;
+                  })
+              }
+    })
+  },
+  methods: {
+      delChange(item){
+         item.num = item.num.toString().substring(0,item.num.length-1)
+      },
+      numChange(e,item){
+       item.num = item.num+''+e;
+      },
+      changeChooseEmployeeList(item){
+        this.employeeList.map(m=>{
+              if(m.id==item.id){
+                  m.isChoosed = !m.isChoosed
+              }else{
+                   m.isChoosed=false;
+              }
+          })
+          if(item.isChoosed){
+              this.employeeID =item.id
+          }
+          this.$forceUpdate();
+      },
+      changeChooseProduceList(item){
+
+          let produce = item.id;
+            let id = [];
+            this.saveData.map(v=>{
+                id.push(v.id)
+            });
+          this.produceList.map(m=>{
+             
+              if(m.id==item.id){
+                  m.isChoosed = !m.isChoosed
+              }else{
+                   m.isChoosed=false;
+              }
+          })
+          console.log(item)
+          if(item.isChoosed){
+               this.axios.post('/api/station_get_order_produce',{id,produce}).then(res=>{
+                if(res.code==200){
+                    this.rownoList = res.data;
+                    this.produceID = item.id
+                }
+            })
+          }else{
+              this.rownoList= [];
+          }   
+      },
+    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) {
+      
+      if (row.isChoosed) {
+        row.isChoosed = false;
+        this.saveData.map((v,index)=>{
+            if(v.id == row.id){
+                this.saveData.splice(index,1)
+            }
+        })
+      } else {
+        row.isChoosed = true;
+        this.saveData.push(row)
+      }
+      console.log(this.saveData)
+      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.contentData.map(v=>{
+              this.saveData.map(m=>{
+                  if(v.id==m.id){
+                      v.isChoosed =true;
+                  }
+              })
+          })
+          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;
+        }
+      });
+    },
+    handleThen(){
+       this.axios.post('/api/station_order_produce_complete',{produce_id:this.produceID,employee_id:this.employeeID,sort_list:this.rownoList}).then(res=>{
+           if(res.code==200){
+               this.$Message.success(res.msg);
+               this.produceList.map((v) => {
+        v.isChoosed = false;
+      });
+               this.produceID = null;
+               this.rownoList=[];
+               this.finishWork = false;
+           }
+       })
+        // this.finishWork = false;
+    },
+    handleOk() {
+      if (this.saveData.length==0) {
+        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("部件存在未打印芯片,请先打印");
+    //   }
+     this.finishWork = true;
+    },
+    handleRoomCancel() {
+      this.produceList.map((v) => {
+        v.isChoosed = false;
+      });
+      this.produceID = null;
+      this.rownoList = [];
+      this.finishWork = 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>