ChipPrintScreenCheck.vue 43 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414
  1. <template>
  2. <Modal v-model="fullscreenModal" fullscreen title="工位屏-补打">
  3. <div slot="header">
  4. <span style="font-size: 0.5rem">工位屏-补打</span>
  5. <div class="fullscreen-title-btn">
  6. <Button
  7. @click="handleFullScreenClick"
  8. size="large"
  9. id="full_screen_btn"
  10. type="primary"
  11. style="margin-right: 1rem"
  12. >
  13. {{ isFullScreen ? "退 出" : "全 屏" }}
  14. </Button>
  15. <Button
  16. @click="handlePrint"
  17. size="large"
  18. type="primary"
  19. style="margin-right: 1rem"
  20. >
  21. 打 印
  22. </Button>
  23. <Button @click="back" size="large" type="primary">
  24. 返 回
  25. </Button>
  26. </div>
  27. </div>
  28. <div class="fullscreen-content">
  29. <div class="fullscreen-content-select">
  30. <div class="fullscreen-content-select-block">
  31. <Button
  32. @click="handleSelection(ordernoObj, 1)"
  33. size="large"
  34. type="primary"
  35. style="margin-right: 10px"
  36. >
  37. 项目选择
  38. </Button>
  39. <div class="icon-wrapper" v-show="selectedInfo.order_no">
  40. <Icon
  41. class="icon-close"
  42. @click="handleCancelSelected('order_no')"
  43. size="24"
  44. type="md-close"
  45. />
  46. <div>
  47. <span>订单编号:</span>
  48. <span>{{ selectedInfo.order_no }}</span>
  49. </div>
  50. <div>
  51. <span>项目名称:</span>
  52. <span>{{ selectedInfo.residential_name }}</span>
  53. </div>
  54. </div>
  55. </div>
  56. <div class="fullscreen-content-select-block">
  57. <Button
  58. @click="handleSelection(urlObj, 2)"
  59. size="large"
  60. type="primary"
  61. style="margin-right: 10px"
  62. >
  63. 图号选择
  64. </Button>
  65. <div style="display: flex; align-items: center">
  66. <div class="icon-wrapper">
  67. <div v-show="selectedInfo.url_number">
  68. <Icon
  69. class="icon-close"
  70. @click="handleCancelSelected('product_id')"
  71. size="24"
  72. type="md-close"
  73. />
  74. <span>图号:</span>
  75. <span>{{ selectedInfo.url_number }}</span>
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. <div class="fullscreen-content-select-block">
  81. <Button
  82. @click="handleSelectionRowno(rownoObj)"
  83. size="large"
  84. type="primary"
  85. style="margin-right: 10px"
  86. >
  87. 行号选择
  88. </Button>
  89. <div
  90. class="icon-wrapper"
  91. v-show="selectedInfo.rows.length != 0"
  92. style="display: flex; align-items: center"
  93. >
  94. <span>行号:</span>
  95. <div style="display: flex; justify-content: flex-start">
  96. <div v-for="(item, index) in selectedInfo.rows" :key="item.key">
  97. <div class="icon-wrapper" style="margin-right: 0.35rem">
  98. <Icon
  99. class="icon-close"
  100. @click="handleCancelSelected(index, 1)"
  101. size="24"
  102. type="md-close"
  103. />
  104. <span style="display: inline-block"
  105. >{{ item.start }}-{{ item.end }}</span
  106. >
  107. </div>
  108. </div>
  109. </div>
  110. </div>
  111. </div>
  112. </div>
  113. <div class="fullscreen-content-choose">
  114. <div
  115. :class="[
  116. choose.isChoosed
  117. ? 'fullscreen-content-choose-block fullscreen-content-choose-block-choosen'
  118. : 'fullscreen-content-choose-block fullscreen-content-choose-block-unchoosen',
  119. ]"
  120. v-for="choose in contentData"
  121. :key="choose.row"
  122. @click="handleChooseBlockClick(choose)"
  123. >
  124. <div class="chip-tag">
  125. 芯片
  126. <Icon
  127. size="20px"
  128. style="font-size: 1rem; transform: translate(-12%, -40%)"
  129. :color="choose.isChoosed ? '#2d8cf0' : 'white'"
  130. type="md-arrow-dropup"
  131. />
  132. </div>
  133. <div>
  134. <span>行号</span>
  135. <span>{{ choose.row_no }}</span>
  136. </div>
  137. <div>
  138. <span>部件</span>
  139. <span>{{ choose.part_title }}</span>
  140. </div>
  141. <div>
  142. <span>材料</span>
  143. <span>{{ choose.sub_part_title }}</span>
  144. </div>
  145. <div>
  146. <span>毛料尺寸</span>
  147. <span>{{ choose.wool_size }}</span>
  148. </div>
  149. <div>
  150. <span>精裁尺寸</span>
  151. <span>{{ choose.cut_size }}</span>
  152. </div>
  153. <div>
  154. <span>未完成数量</span>
  155. <span>
  156. {{ choose.un_complete }}(总数:{{
  157. choose.on_complete + choose.un_complete
  158. }})
  159. </span>
  160. </div>
  161. <div>
  162. <span>未打印数量</span>
  163. <span
  164. >{{ choose.un_print }}(总数:{{
  165. choose.on_print + choose.un_print
  166. }})</span
  167. >
  168. </div>
  169. </div>
  170. </div>
  171. <div class="fullscreen-content-page">
  172. <Page @on-change="changePage" :current="page_index" :total="total" />
  173. </div>
  174. </div>
  175. <div slot="footer"></div>
  176. <Modal
  177. class="selection-modal"
  178. v-model="selectionModal"
  179. :title="currencySelectedObj.title"
  180. width="80%"
  181. >
  182. <van-number-keyboard
  183. :show="show"
  184. @blur="show = false"
  185. @input="onInput"
  186. @delete="onDelete"
  187. z-index="99999"
  188. />
  189. <div class="selection-modal-top">
  190. <Input
  191. :placeholder="currencySelectedObj.title"
  192. v-model="currentSearchValue"
  193. @on-focus="show = true"
  194. @on-change="
  195. handleCurrentSearch(currencySelectedObj, currentSearchValue)
  196. "
  197. style="width: 80%"
  198. >
  199. <Icon
  200. @click="
  201. handleCurrentSearch(currencySelectedObj, currentSearchValue)
  202. "
  203. type="ios-search"
  204. slot="suffix"
  205. />
  206. </Input>
  207. </div>
  208. <div class="selection-modal-body">
  209. <div
  210. :class="[
  211. block.isCurrent
  212. ? 'selection-modal-body-block selection-modal-body-block-choosen'
  213. : 'selection-modal-body-block selection-modal-body-block-unchoosen',
  214. ]"
  215. v-for="(block, index) in currencySelectedObj.list"
  216. :key="index"
  217. @click="handleSelectionClick(currencySelectedObj, block)"
  218. >
  219. <div v-show="currencySelectedObj.type == 1">
  220. <span>订单编号:</span>
  221. <span>{{ block.order_no }}</span>
  222. </div>
  223. <div v-show="currencySelectedObj.type == 2">
  224. <span>{{ block.title }}</span>
  225. </div>
  226. <div v-show="currencySelectedObj.type == 1">
  227. <span>项目名称:</span>
  228. <span>{{ block.residential_name }}</span>
  229. </div>
  230. </div>
  231. <div
  232. style="font-size: 1rem"
  233. v-show="currencySelectedObj.list.length == 0"
  234. >
  235. 暂无数据
  236. </div>
  237. </div>
  238. <div class="fullscreen-content-page">
  239. <Page
  240. @on-change="changeModalPage"
  241. :current="
  242. currencySelectedObj.type == 1
  243. ? modal_1_page_index
  244. : modal_2_page_index
  245. "
  246. :page-size="
  247. currencySelectedObj.type == 1
  248. ? modal_1_page_size
  249. : modal_2_page_size
  250. "
  251. :total="currencySelectedObj.type == 1 ? modal_1_total : modal_2_total"
  252. />
  253. </div>
  254. <div slot="footer">
  255. <Button
  256. @click="selectionModal = false"
  257. type="primary"
  258. style="margin-right: 10px"
  259. >
  260. 返回
  261. </Button>
  262. <!-- <Button
  263. v-show="currencySelectedObj.type == 1"
  264. @click="handleSelectionComfirm(currencySelectedObj)"
  265. type="primary"
  266. >
  267. 确认
  268. </Button> -->
  269. </div>
  270. </Modal>
  271. <Modal
  272. class="selection-modal"
  273. v-model="selectionDetailModal"
  274. :title="currencySelectedObj.title"
  275. width="80%"
  276. >
  277. <div class="selection-modal-body" v-if="currencySelectedObj.hasChild">
  278. <div
  279. :class="[
  280. block.isCurrent
  281. ? 'selection-modal-body-block-detail selection-modal-body-block-detail-choosen'
  282. : 'selection-modal-body-block-detail selection-modal-body-block-detail-unchoosen',
  283. ]"
  284. v-for="(block, index) in chooseDetailUrlNo.children"
  285. :key="index"
  286. @click="handleSelectionDetailClick(chooseDetailUrlNo, block)"
  287. >
  288. <div>
  289. <span>{{ block.url_number }}</span>
  290. </div>
  291. </div>
  292. </div>
  293. <div slot="footer">
  294. <Button
  295. @click="
  296. selectionDetailModal = false;
  297. selectionModal = true;
  298. "
  299. type="primary"
  300. style="margin-right: 10px"
  301. >
  302. 返回
  303. </Button>
  304. <!-- <Button
  305. @click="handleSelectionComfirm(currencySelectedObj)"
  306. type="primary"
  307. >
  308. 确认
  309. </Button> -->
  310. </div>
  311. </Modal>
  312. <Modal
  313. class="selection-rowno-modal"
  314. v-model="selectionRownolModal"
  315. title="行号选择"
  316. width="80%"
  317. >
  318. <div class="selection-rowno-modal-body">
  319. <van-number-keyboard
  320. :show="show2"
  321. @blur="show2 = false"
  322. @input="keyboardTap"
  323. @delete="keyboardDele"
  324. z-index="99999"
  325. />
  326. <div
  327. class="selection-rowno-modal-body-block"
  328. v-for="(block, index) in chooseLineNo"
  329. :key="index"
  330. >
  331. <span>行号区间:</span>
  332. <Input
  333. v-model="block.start"
  334. @on-focus="handleRowNoInput(block, 1)"
  335. clearable
  336. style="width: 20%; margin: 0 10px"
  337. size="large"
  338. />
  339. -
  340. <Input
  341. v-model="block.end"
  342. @on-focus="handleRowNoInput(block, 2)"
  343. clearable
  344. style="width: 20%; margin: 0 10px"
  345. size="large"
  346. />
  347. <Button
  348. @click="handleAddRow(block, index)"
  349. type="primary"
  350. size="large"
  351. v-show="index == 0"
  352. style="margin-right: 10px"
  353. >
  354. 添加
  355. </Button>
  356. <Button
  357. @click="handleDeleRow(block, index)"
  358. type="primary"
  359. size="large"
  360. v-show="index != 0"
  361. style="margin-right: 10px"
  362. >
  363. 删除
  364. </Button>
  365. </div>
  366. </div>
  367. <div slot="footer">
  368. <Button
  369. @click="selectionRownolModal = false"
  370. type="primary"
  371. style="margin-right: 10px"
  372. >
  373. 返回
  374. </Button>
  375. <Button @click="handleRowNoComfirm(chooseLineNo)" type="primary">
  376. 确认
  377. </Button>
  378. </div>
  379. </Modal>
  380. <Modal
  381. class="selection-print-modal"
  382. v-model="printModal"
  383. title="打印"
  384. width="60%"
  385. >
  386. <div class="selection-print-modal-body">
  387. <div class="selection-print-modal-body-top">
  388. <div>
  389. <span>行号:</span>
  390. <span>{{ selectedObj.row_no }}</span>
  391. </div>
  392. <div>
  393. <span>部件名称:</span>
  394. <span>{{ selectedObj.part_title }}</span>
  395. </div>
  396. <div>
  397. <span>数量:</span>
  398. <InputNumber
  399. :max="selectedObj.on_print + selectedObj.un_print"
  400. :min="1"
  401. size="large"
  402. @on-focus="handlePrintInput"
  403. v-model="selectedObj.print_num"
  404. ></InputNumber>
  405. <van-number-keyboard
  406. :show="show3"
  407. @blur="show3 = false"
  408. @input="keyboardPrintTap"
  409. @delete="keyboardPrintDele"
  410. z-index="99999"
  411. />
  412. </div>
  413. </div>
  414. <div class="selection-print-modal-body-info">
  415. {{
  416. selectedObj.isFinished
  417. ? "该部件已打印,是否再次打印?"
  418. : "请确认打印数量是否正确!"
  419. }}
  420. <div>
  421. <Button
  422. v-show="selectedObj.isFinished"
  423. @click="handleSelectionRoom"
  424. type="primary"
  425. >
  426. 选择房间号
  427. </Button>
  428. </div>
  429. </div>
  430. </div>
  431. <div slot="footer">
  432. <Button
  433. @click="printModal = false"
  434. type="primary"
  435. style="margin-right: 10px"
  436. >
  437. 返回
  438. </Button>
  439. <Button @click="handlePrintComfirm(selectedObj)" type="primary">
  440. 确认
  441. </Button>
  442. </div>
  443. </Modal>
  444. <Modal
  445. class="selection-modal"
  446. v-model="roomModal"
  447. title="选择房间号"
  448. width="80%"
  449. >
  450. <div class="selection-modal-body">
  451. <div
  452. :class="[
  453. block.isCurrent
  454. ? 'selection-modal-body-block selection-modal-body-block-choosen'
  455. : 'selection-modal-body-block selection-modal-body-block-unchoosen',
  456. ]"
  457. v-for="(block, index) in modalRoomList"
  458. :key="index"
  459. @click="handleSelectedRoomClick(modalRoomList, block)"
  460. >
  461. <div>
  462. <span>{{ block.house }}</span>
  463. </div>
  464. </div>
  465. </div>
  466. <div class="fullscreen-content-page">
  467. <Page
  468. @on-change="changeRoomPage"
  469. :current="modal_room_page_index"
  470. :page-size="modal_room_page_size"
  471. :total="modal_room_total"
  472. />
  473. </div>
  474. <div slot="footer">
  475. <Button
  476. @click="handleRoomCancel"
  477. type="primary"
  478. style="margin-right: 10px"
  479. >
  480. 返回
  481. </Button>
  482. <Button @click="handlePrintComfirm(selectedObj, 1)" type="primary">
  483. 确认
  484. </Button>
  485. </div>
  486. </Modal>
  487. </Modal>
  488. </template>
  489. <script>
  490. // 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
  491. // 例如:import 《组件名称》 from '《组件路径》';
  492. import "@vant/touch-emulator";
  493. import $ from "jquery";
  494. export default {
  495. name: "",
  496. components: {},
  497. props: {},
  498. // import引入的组件需要注入到对象中才能使用
  499. data() {
  500. // 这里存放数据
  501. return {
  502. show: false,
  503. show2: false,
  504. show3: false,
  505. isFullScreen: false,
  506. fullscreenModal: true,
  507. selectionModal: false,
  508. selectionRownolModal: false,
  509. selectionDetailModal: false,
  510. printModal: false,
  511. roomModal: false,
  512. contentData: [],
  513. selectedObj: {},
  514. ordernoObj: {
  515. title: "订单编号/项目名称选择",
  516. list: [],
  517. hasChild: false,
  518. },
  519. urlObj: {
  520. title: "图号选择",
  521. list: [],
  522. hasChild: true,
  523. },
  524. rownoObj: {},
  525. currencySelectedObj: {
  526. title: "订单编号/项目名称选择",
  527. type: 1,
  528. list: [],
  529. },
  530. selectedInfo: {
  531. order_no: "",
  532. residential_name: "",
  533. url_number: "",
  534. product_id: "",
  535. rows: [],
  536. },
  537. page_index: 1,
  538. page_size: 12,
  539. total: 0,
  540. currentSearchValue: "",
  541. modal_1_page_index: 1,
  542. modal_1_page_size: 6,
  543. modal_1_total: 0,
  544. modal_room_page_index: 1,
  545. modal_room_page_size: 9,
  546. modal_room_total: 0,
  547. modal_2_page_index: 1,
  548. modal_2_page_size: 60,
  549. modal_2_total: 0,
  550. chooseOrderNo: {},
  551. chooseUrlNo: {},
  552. chooseDetailUrlNo: {},
  553. chooseLineNo: [{ start: "", end: "" }],
  554. keyboardObj: {},
  555. keyboardVal: "",
  556. modalRoomList: [],
  557. modalRoomListSelected: [],
  558. };
  559. },
  560. // 生命周期 - 创建完成(可以访问当前this实例)
  561. created() {},
  562. // 生命周期 - 挂载完成(可以访问DOM元素)
  563. mounted() {
  564. this.selectedInfo = JSON.parse(localStorage.getItem("printInfo"));
  565. this.getChipDetail();
  566. },
  567. methods: {
  568. back() {
  569. this.$router.go(-1);
  570. },
  571. handleSelection(obj, type) {
  572. if (type == 2 && this.selectedInfo.order_no == "") {
  573. return this.$Message.warning("请先选择项目");
  574. }
  575. this.currentSearchValue = "";
  576. this.currencySelectedObj = obj;
  577. this.selectionModal = true;
  578. this.currencySelectedObj.type = type;
  579. if (this.currencySelectedObj.list.length == 0 || type == 2) {
  580. this.handleCurrentSearch(
  581. this.currencySelectedObj,
  582. this.currentSearchValue
  583. );
  584. }
  585. },
  586. handleSelectionRowno(row) {
  587. console.log(`row`, row);
  588. if (this.selectedInfo.rows.legth > 0) {
  589. this.chooseLineNo = JSON.parse(JSON.stringify(this.selectedInfo.rows));
  590. } else {
  591. this.chooseLineNo = [{ start: null, end: null }];
  592. }
  593. this.selectionRownolModal = true;
  594. },
  595. handleCancelSelected(v, type) {
  596. if (type) {
  597. this.selectedInfo.rows.splice(v, 1);
  598. } else if (v == "product_id") {
  599. this.selectedInfo.url_number = "";
  600. this.selectedInfo.product_id = "";
  601. } else {
  602. this.selectedInfo[v] = "";
  603. }
  604. if (v != "order_no") {
  605. this.getChipDetail();
  606. } else {
  607. this.selectedInfo.residential_name = "";
  608. this.selectedInfo.url_number = "";
  609. this.selectedInfo.product_id = "";
  610. this.selectedInfo.rows = [];
  611. this.contentData = [];
  612. this.total = 0;
  613. }
  614. },
  615. handleChooseBlockClick(row) {
  616. console.log(`row`, row);
  617. if (row.isChoosed) {
  618. row.isChoosed = false;
  619. } else {
  620. this.contentData.map((v) => {
  621. v.isChoosed = false;
  622. });
  623. row.isChoosed = true;
  624. }
  625. if (row.un_print == 0) {
  626. row.isFinished = true;
  627. }
  628. this.selectedObj = row;
  629. },
  630. handleSelectionClick(row, obj) {
  631. row.list.map((v) => (v.isCurrent = false));
  632. obj.isCurrent = true;
  633. if (row.hasChild) {
  634. // 行号
  635. this.selectionModal = false;
  636. this.selectionDetailModal = true;
  637. this.chooseDetailUrlNo = obj;
  638. this.contentData = [];
  639. this.total = 0;
  640. } else {
  641. // 订单号
  642. this.chooseOrderNo = obj;
  643. }
  644. if (row.type == 1) {
  645. this.handleSelectionComfirm(this.currencySelectedObj);
  646. }
  647. this.$forceUpdate();
  648. },
  649. handleAddRow(row, index) {
  650. this.chooseLineNo.push({
  651. start: "",
  652. end: "",
  653. });
  654. },
  655. handleDeleRow(row, index) {
  656. this.chooseLineNo.splice(index, 1);
  657. },
  658. handleSelectionDetailClick(row, obj) {
  659. row.children.map((v) => (v.isCurrent = false));
  660. obj.isCurrent = true;
  661. this.chooseUrlNo = obj;
  662. this.handleSelectionComfirm(this.currencySelectedObj);
  663. this.$forceUpdate();
  664. },
  665. handleFullScreenClick() {
  666. this.isFullScreen = !this.isFullScreen;
  667. if (this.isFullScreen) {
  668. this.enterFullScreen();
  669. } else {
  670. this.exitFullScreen();
  671. }
  672. },
  673. enterFullScreen() {
  674. let el = document.documentElement;
  675. let rfs =
  676. el.requestFullScreen ||
  677. el.webkitRequestFullScreen ||
  678. el.mozRequestFullScreen ||
  679. el.msRequestFullscreen;
  680. if (rfs) {
  681. rfs.call(el);
  682. } else if (typeof window.ActiveXObject !== "undefined") {
  683. // for IE,这里其实就是模拟了按下键盘的F11,使浏览器全屏
  684. let wscript = new ActiveXObject("WScript.Shell");
  685. if (wscript != null) {
  686. wscript.SendKeys("{F11}");
  687. }
  688. }
  689. },
  690. exitFullScreen() {
  691. let el = document;
  692. let cfs =
  693. el.cancelFullScreen ||
  694. el.mozCancelFullScreen ||
  695. el.msExitFullscreen ||
  696. el.webkitExitFullscreen ||
  697. el.exitFullscreen;
  698. if (cfs) {
  699. // typeof cfs != "undefined" && cfs
  700. cfs.call(el);
  701. } else if (typeof window.ActiveXObject !== "undefined") {
  702. // for IE,这里和fullScreen相同,模拟按下F11键退出全屏
  703. let wscript = new ActiveXObject("WScript.Shell");
  704. if (wscript != null) {
  705. wscript.SendKeys("{F11}");
  706. }
  707. }
  708. },
  709. handleCurrentSearch(row, val) {
  710. //type 1项目选择 2图号选择
  711. let url =
  712. row.type == 1
  713. ? "/api/station_get_order"
  714. : "/api/station_get_url_number";
  715. this.axios({
  716. method: "post",
  717. url,
  718. data: {
  719. page_index:
  720. row.type == 1 ? this.modal_1_page_index : this.modal_2_page_index,
  721. page_size:
  722. row.type == 1 ? this.modal_1_page_size : this.modal_2_page_size,
  723. order_no: row.type == 1 ? val : this.selectedInfo.order_no,
  724. url_number: row.type == 1 ? "" : val,
  725. },
  726. }).then((res) => {
  727. if (res.code == 200) {
  728. if (row.type == 1) {
  729. row.list = res.data.data;
  730. this.modal_1_total = res.data.total;
  731. } else {
  732. row.list = [];
  733. this.modal_2_total = res.data.total;
  734. let length = Math.ceil(res.data.data.length / 10);
  735. for (let index = 0; index < length; index++) {
  736. row.list.push({
  737. //最后一位不一定刚好10个
  738. title:
  739. length - index == 1
  740. ? `${res.data.data[10 * index].url_number}~${
  741. res.data.data[res.data.data.length - 1].url_number
  742. }`
  743. : `${res.data.data[10 * index].url_number}~${
  744. res.data.data[10 * index + 10].url_number
  745. }`,
  746. children: res.data.data.slice(10 * index, 10 * index + 10),
  747. });
  748. }
  749. }
  750. }
  751. });
  752. },
  753. changeRoomPage(e) {
  754. this.modal_room_page_index = e;
  755. this.getModalRoomList();
  756. },
  757. handleSelectionRoom() {
  758. this.getModalRoomList();
  759. this.roomModal = true;
  760. },
  761. getModalRoomList() {
  762. this.axios({
  763. method: "post",
  764. url: "/api/station_get_print_house",
  765. data: {
  766. order_no: this.selectedInfo.order_no,
  767. product_id: this.selectedInfo.product_id,
  768. rows: this.selectedInfo.rows,
  769. page_index: this.modal_room_page_index,
  770. page_size: this.modal_room_page_size,
  771. id: this.selectedObj.id,
  772. },
  773. }).then((res) => {
  774. if (res.code == 200) {
  775. res.data.data.map((v) => {
  776. v.isCurrent = false;
  777. this.modalRoomListSelected &&
  778. this.modalRoomListSelected.map((w) => {
  779. if (w.id == v.id) {
  780. v.isCurrent = true;
  781. }
  782. });
  783. });
  784. this.modalRoomList = res.data.data;
  785. this.modal_room_total = res.data.total;
  786. }
  787. });
  788. },
  789. handleSelectedRoomClick(list, block) {
  790. if (block.isCurrent) {
  791. this.modalRoomListSelected = this.modalRoomListSelected.filter(
  792. (v) => v.id != block.id
  793. );
  794. block.isCurrent = !block.isCurrent;
  795. } else {
  796. if (this.modalRoomListSelected.length < this.selectedObj.print_num) {
  797. block.isCurrent = !block.isCurrent;
  798. this.modalRoomListSelected = this.modalRoomListSelected.concat(
  799. this.modalRoomList.filter((v) => v.isCurrent)
  800. );
  801. } else {
  802. this.$Message.warning("与打印数量不符,请重新选择");
  803. }
  804. }
  805. this.modalRoomListSelected = Array.from(
  806. new Set([...this.modalRoomListSelected])
  807. );
  808. },
  809. //项目、图号确认
  810. handleSelectionComfirm(row) {
  811. console.log(`row`, row);
  812. // 这里需要把弹框关闭之后赋值到selectedInfo上
  813. // this.selectedInfo.order_no;
  814. // 1 项目选择 2图号选择
  815. if (row.type == 1) {
  816. this.selectedInfo.order_no = this.chooseOrderNo.order_no;
  817. this.selectedInfo.residential_name = this.chooseOrderNo.residential_name;
  818. this.selectionModal = false;
  819. } else if (row.type == 2) {
  820. this.selectedInfo.url_number = this.chooseUrlNo.url_number;
  821. this.selectedInfo.product_id = this.chooseUrlNo.product_id;
  822. this.selectionDetailModal = false;
  823. this.getChipDetail();
  824. }
  825. // order_no: "20211010",
  826. // residential_name: "2",
  827. // url_number: "3",
  828. // row_no: [],
  829. },
  830. // 获取具体详情
  831. getChipDetail() {
  832. this.axios({
  833. method: "post",
  834. url: "/api/station_get_order_on_product_pr",
  835. data: {
  836. order_no: this.selectedInfo.order_no,
  837. product_id: this.selectedInfo.product_id,
  838. rows: this.selectedInfo.rows,
  839. page_index: this.page_index,
  840. page_size: this.page_size,
  841. },
  842. }).then((res) => {
  843. if (res.code == 200) {
  844. console.log(`res`, res);
  845. res.data.data.map((v) => (v.isChoosed = false));
  846. this.contentData = res.data.data;
  847. this.total = res.data.total;
  848. }
  849. });
  850. },
  851. handlePrint() {
  852. if (!this.selectedObj.isChoosed) {
  853. return this.$Message.warning("请选择数据");
  854. }
  855. if (this.selectedObj.un_print == 0) {
  856. this.selectedObj.print_num = this.selectedObj.on_print;
  857. } else {
  858. this.selectedObj.print_num = this.selectedObj.un_print;
  859. }
  860. this.printModal = true;
  861. },
  862. handlePrintComfirm(row, type) {
  863. if (
  864. type &&
  865. this.modalRoomListSelected.length != this.selectedObj.print_num
  866. ) {
  867. return this.$Message.warning("与打印数量不符");
  868. }
  869. let ids = this.modalRoomListSelected.map((v) => {
  870. return v.id;
  871. });
  872. let data = type
  873. ? {
  874. order_no: this.selectedInfo.order_no,
  875. product_id: this.selectedInfo.product_id,
  876. rows: this.selectedInfo.rows,
  877. num: this.selectedObj.print_num,
  878. id: row.id,
  879. ids,
  880. type,
  881. }
  882. : {
  883. order_no: this.selectedInfo.order_no,
  884. product_id: this.selectedInfo.product_id,
  885. rows: this.selectedInfo.rows,
  886. num: this.selectedObj.print_num,
  887. id: row.id,
  888. };
  889. this.axios({
  890. method: "post",
  891. url: "/api/station_print",
  892. data,
  893. }).then((resp) => {
  894. if (resp.code == 200) {
  895. this.handlePrintChips(resp.data);
  896. this.printModal = false;
  897. this.roomModal = false;
  898. }
  899. });
  900. // this.axios({
  901. // method: "post",
  902. // url: "/api/station_print",
  903. // data: {
  904. // order_no: this.selectedInfo.order_no,
  905. // product_id: this.selectedInfo.product_id,
  906. // rows: this.selectedInfo.rows,
  907. // num: this.selectedObj.print_num,
  908. // id: row.id,
  909. // },
  910. // }).then((resp) => {
  911. // if (resp.code == 200) {
  912. // this.handlePrintChips(resp.data);
  913. // this.printModal = false;
  914. // this.roomModal = false;
  915. // }
  916. // });
  917. },
  918. handleOk() {
  919. if (!this.selectedObj.isChoosed) {
  920. return this.$Message.warning("请选择数据");
  921. }
  922. if (this.selectedObj.type == 1 && this.selectedObj.un_print == 0) {
  923. return this.$Message.warning("部件存在未打印芯片,请先打印");
  924. }
  925. this.selectedObj.ok_num =
  926. this.selectedObj.on_print - this.selectedObj.on_complete;
  927. this.okModal = true;
  928. },
  929. handleRoomCancel() {
  930. this.modalRoomList.map((v) => {
  931. v.isCurrent = false;
  932. });
  933. this.modalRoomListSelected = [];
  934. this.roomModal = false;
  935. },
  936. handleOkComfirm(row) {
  937. if (this.modalRoomListSelected.length != this.selectedObj.print_num) {
  938. return this.$Message.warning("与打印数量不符,请重新选择");
  939. }
  940. this.axios({
  941. method: "post",
  942. url: "/api/station_complete",
  943. data: {
  944. order_no: this.selectedInfo.order_no,
  945. product_id: this.selectedInfo.product_id,
  946. rows: this.selectedInfo.rows,
  947. num: this.selectedObj.ok_num,
  948. id: row.id,
  949. },
  950. }).then((res) => {
  951. if (res.code == 200) {
  952. this.okModal = false;
  953. this.getChipDetail();
  954. }
  955. });
  956. },
  957. //行号确认
  958. handleRowNoComfirm() {
  959. this.selectedInfo.rows = JSON.parse(JSON.stringify(this.chooseLineNo));
  960. this.selectionRownolModal = false;
  961. this.getChipDetail();
  962. },
  963. onInput(value) {
  964. this.currentSearchValue = this.currentSearchValue + "" + value;
  965. this.handleCurrentSearch(
  966. this.currencySelectedObj,
  967. this.currentSearchValue
  968. );
  969. },
  970. onDelete() {
  971. this.currentSearchValue = this.currentSearchValue.substring(
  972. 0,
  973. this.currentSearchValue.length - 1
  974. );
  975. this.handleCurrentSearch(
  976. this.currencySelectedObj,
  977. this.currentSearchValue
  978. );
  979. },
  980. handlePrintInput() {
  981. this.show3 = true;
  982. },
  983. keyboardPrintTap(value) {
  984. let max = this.selectedObj.on_print + this.selectedObj.un_print;
  985. this.selectedObj.print_num =
  986. (this.selectedObj.print_num ? this.selectedObj.print_num : "") +
  987. "" +
  988. value;
  989. if (this.selectedObj.print_num * 1 > max) {
  990. this.selectedObj.print_num = max;
  991. }
  992. this.$forceUpdate();
  993. },
  994. keyboardPrintDele() {
  995. this.selectedObj.print_num = (this.selectedObj.print_num + "").substring(
  996. 0,
  997. this.selectedObj.print_num.length - 1
  998. );
  999. this.$forceUpdate();
  1000. },
  1001. keyboardTap(value) {
  1002. this.keyboardObj[this.keyboardVal] =
  1003. (this.keyboardObj[this.keyboardVal]
  1004. ? this.keyboardObj[this.keyboardVal]
  1005. : "") +
  1006. "" +
  1007. value;
  1008. },
  1009. keyboardDele() {
  1010. this.keyboardObj[this.keyboardVal] = this.keyboardObj[
  1011. this.keyboardVal
  1012. ].substring(0, this.keyboardObj[this.keyboardVal].length - 1);
  1013. },
  1014. handleRowNoInput(row, type) {
  1015. if (type == 1) {
  1016. this.keyboardVal = "start";
  1017. } else {
  1018. this.keyboardVal = "end";
  1019. }
  1020. this.keyboardObj = row;
  1021. this.show2 = true;
  1022. },
  1023. changePage(e) {
  1024. this.page_index = e;
  1025. this.getChipDetail();
  1026. },
  1027. changeModalPage(e) {
  1028. this.currencySelectedObj.type == 1
  1029. ? (this.modal_1_page_index = e)
  1030. : (this.modal_2_page_index = e);
  1031. this.handleCurrentSearch(
  1032. this.currencySelectedObj,
  1033. this.currentSearchValue
  1034. );
  1035. },
  1036. handlePrintChips(contents) {
  1037. this.axios.get("/api/get_print_url").then((res) => {
  1038. let data = {};
  1039. // let url = "http://192.168.0.145:888/postek/print"; //request_url
  1040. let url = `http://${res.data.request_url}:888/postek/print`; //request_url
  1041. data.reqParam = "1"; //这个一般不用改,如需改,查api
  1042. let printparamsJsonArray = [];
  1043. // let IP = "192.168.1.58";//print_url
  1044. // let IP = "192.168.0.199"; //print_url
  1045. let IP = res.data.print_url;
  1046. let port = 9100;
  1047. let IP_Port = IP + "," + port;
  1048. printparamsJsonArray.push({ PTK_Connect_Timer: IP_Port + ",1" });
  1049. printparamsJsonArray.push({ PTK_ClearBuffer: "" });
  1050. printparamsJsonArray.push({ PTK_SetDirection: "B" });
  1051. printparamsJsonArray.push({ PTK_SetPrintSpeed: "4" });
  1052. printparamsJsonArray.push({ PTK_SetDarkness: "10" });
  1053. printparamsJsonArray.push({
  1054. PTK_SetLabelHeight: 624 + "," + 24 + ",0,false",
  1055. });
  1056. printparamsJsonArray.push({ PTK_SetLabelWidth: 1080 });
  1057. contents.map((content) => {
  1058. //贝斯特打印格式
  1059. //上
  1060. const printContent_l1 = `项目:${content.client_name}`;
  1061. printparamsJsonArray.push({
  1062. PTK_DrawText_TrueType:
  1063. "100,40,60,0,微软雅黑,1,700,0,0,0," + printContent_l1,
  1064. });
  1065. const printContent_l1_2 = `区域:${
  1066. content.house ? content.house + "-" : ""
  1067. }${content.layer ? content.layer : ""}${
  1068. content.position ? content.position : ""
  1069. }`;
  1070. printparamsJsonArray.push({
  1071. PTK_DrawText_TrueType:
  1072. "600,40,60,0,微软雅黑,1,700,0,0,0," + printContent_l1_2,
  1073. });
  1074. const printContent_l2 = `房号:${content.number_detail}`;
  1075. printparamsJsonArray.push({
  1076. PTK_DrawText_TrueType:
  1077. "100,110,60,0,微软雅黑,1,700,0,0,0," + printContent_l2,
  1078. });
  1079. const printContent_l2_2 = `产品:${content.product_title}`;
  1080. printparamsJsonArray.push({
  1081. PTK_DrawText_TrueType:
  1082. "600,110,60,0,微软雅黑,1,700,0,0,0," + printContent_l2_2,
  1083. });
  1084. const printContent_l3 = `图号:${content.url_number}`;
  1085. printparamsJsonArray.push({
  1086. PTK_DrawText_TrueType:
  1087. "100,180,60,0,微软雅黑,1,700,0,0,0," + printContent_l3,
  1088. });
  1089. const printContent_l3_2 = `部件:${content.part_title}`;
  1090. printparamsJsonArray.push({
  1091. PTK_DrawText_TrueType:
  1092. "600,180,60,0,微软雅黑,1,700,0,0,0," + printContent_l3_2,
  1093. });
  1094. const printContent_l4 = `木皮:${content.color_title}`;
  1095. printparamsJsonArray.push({
  1096. PTK_DrawText_TrueType:
  1097. "100,320,60,0,微软雅黑,1,700,0,0,0," + printContent_l4,
  1098. });
  1099. const printContent_l4_2 = `尺寸:${content.measure}`;
  1100. printparamsJsonArray.push({
  1101. PTK_DrawText_TrueType:
  1102. "100,250,60,0,微软雅黑,1,700,0,0,0," + printContent_l4_2,
  1103. });
  1104. //下
  1105. printparamsJsonArray.push({
  1106. PTK_DrawText_TrueType:
  1107. "100,435,45,0,微软雅黑,1,700,0,0,0," + printContent_l1,
  1108. });
  1109. printparamsJsonArray.push({
  1110. PTK_DrawText_TrueType:
  1111. "600,435,45,0,微软雅黑,1,700,0,0,0," + printContent_l1_2,
  1112. });
  1113. printparamsJsonArray.push({
  1114. PTK_DrawText_TrueType:
  1115. "100,480,45,0,微软雅黑,1,700,0,0,0," + printContent_l2,
  1116. });
  1117. printparamsJsonArray.push({
  1118. PTK_DrawText_TrueType:
  1119. "600,480,45,0,微软雅黑,1,700,0,0,0," + printContent_l2_2,
  1120. });
  1121. printparamsJsonArray.push({
  1122. PTK_DrawText_TrueType:
  1123. "100,525,45,0,微软雅黑,1,700,0,0,0," + printContent_l3,
  1124. });
  1125. printparamsJsonArray.push({
  1126. PTK_DrawText_TrueType:
  1127. "600,525,45,0,微软雅黑,1,700,0,0,0," + printContent_l3_2,
  1128. });
  1129. printparamsJsonArray.push({
  1130. PTK_DrawText_TrueType:
  1131. "100,570,45,0,微软雅黑,1,700,0,0,0," + printContent_l4,
  1132. });
  1133. printparamsJsonArray.push({
  1134. PTK_DrawText_TrueType:
  1135. "600,570,45,0,微软雅黑,1,700,0,0,0," + printContent_l4_2,
  1136. });
  1137. // 17,35 420
  1138. printparamsJsonArray.push({
  1139. PTK_RWRFIDLabel:
  1140. "1,0,0," + content.chip.length / 2 + ",1," + content.chip,
  1141. });
  1142. printparamsJsonArray.push({ PTK_PrintLabel: "1,1" });
  1143. });
  1144. // contents.map((content) => {
  1145. // //江山打印格式
  1146. // //上
  1147. // const printContent_l1 = `单号:${content.order_no}`;
  1148. // printparamsJsonArray.push({
  1149. // PTK_DrawText_TrueType:
  1150. // "100,40,60,0,微软雅黑,1,700,0,0,0," + printContent_l1,
  1151. // });
  1152. // const printContent_l1_2 = `型号:${content.product_title}`;
  1153. // printparamsJsonArray.push({
  1154. // PTK_DrawText_TrueType:
  1155. // "600,40,60,0,微软雅黑,1,700,0,0,0," + printContent_l1_2,
  1156. // });
  1157. // const printContent_l2 = `尺寸:${content.measure}`;
  1158. // printparamsJsonArray.push({
  1159. // PTK_DrawText_TrueType:
  1160. // "100,110,60,0,微软雅黑,1,700,0,0,0," + printContent_l2,
  1161. // });
  1162. // const printContent_l2_2 = `工艺:${content.process_title}`;
  1163. // printparamsJsonArray.push({
  1164. // PTK_DrawText_TrueType:
  1165. // "600,110,60,0,微软雅黑,1,700,0,0,0," + printContent_l2_2,
  1166. // });
  1167. // const printContent_l3 = `颜色:${content.color_title}`;
  1168. // printparamsJsonArray.push({
  1169. // PTK_DrawText_TrueType:
  1170. // "100,250,60,0,微软雅黑,1,700,0,0,0," + printContent_l3,
  1171. // });
  1172. // const printContent_l3_2 = `部件:${content.part_title}`;
  1173. // printparamsJsonArray.push({
  1174. // PTK_DrawText_TrueType:
  1175. // "100,180,60,0,微软雅黑,1,700,0,0,0," + printContent_l3_2,
  1176. // });
  1177. // //下
  1178. // printparamsJsonArray.push({
  1179. // PTK_DrawText_TrueType:
  1180. // "100,435,45,0,微软雅黑,1,700,0,0,0," + printContent_l1,
  1181. // });
  1182. // printparamsJsonArray.push({
  1183. // PTK_DrawText_TrueType:
  1184. // "600,435,45,0,微软雅黑,1,700,0,0,0," + printContent_l1_2,
  1185. // });
  1186. // printparamsJsonArray.push({
  1187. // PTK_DrawText_TrueType:
  1188. // "100,480,45,0,微软雅黑,1,700,0,0,0," + printContent_l2,
  1189. // });
  1190. // printparamsJsonArray.push({
  1191. // PTK_DrawText_TrueType:
  1192. // "600,480,45,0,微软雅黑,1,700,0,0,0," + printContent_l2_2,
  1193. // });
  1194. // printparamsJsonArray.push({
  1195. // PTK_DrawText_TrueType:
  1196. // "100,525,45,0,微软雅黑,1,700,0,0,0," + printContent_l3,
  1197. // });
  1198. // printparamsJsonArray.push({
  1199. // PTK_DrawText_TrueType:
  1200. // "600,525,45,0,微软雅黑,1,700,0,0,0," + printContent_l3_2,
  1201. // });
  1202. // printparamsJsonArray.push({
  1203. // PTK_RWRFIDLabel:
  1204. // "1,0,0," + content.chip.length / 2 + ",1," + content.chip,
  1205. // });
  1206. // printparamsJsonArray.push({ PTK_PrintLabel: "1,1" });
  1207. // });
  1208. printparamsJsonArray.push({ PTK_CloseConnect: "" });
  1209. data.printparams = printparamsJsonArray;
  1210. let sub_data = JSON.parse(JSON.stringify(data));
  1211. sub_data.printparams = JSON.stringify(sub_data.printparams);
  1212. let _this = this;
  1213. $.ajax({
  1214. type: "post",
  1215. url,
  1216. data: sub_data,
  1217. dataType: "json",
  1218. timeout: 5000,
  1219. success: function(result) {
  1220. if (result.retval == "0") {
  1221. _this.$Message.success("发送成功");
  1222. _this.getChipDetail();
  1223. } else {
  1224. _this.$Message.error("发送失败,返回结果:" + result.msg);
  1225. }
  1226. },
  1227. });
  1228. });
  1229. },
  1230. },
  1231. // 监听属性 类似于data概念
  1232. computed: {},
  1233. // 监控data中的数据变化
  1234. watch: {},
  1235. beforeCreate() {}, // 生命周期 - 创建之前
  1236. beforeMount() {}, // 生命周期 - 挂载之前
  1237. beforeUpdate() {}, // 生命周期 - 更新之前
  1238. updated() {}, // 生命周期 - 更新之后
  1239. beforeDestroy() {}, // 生命周期 - 销毁之前
  1240. destroyed() {}, // 生命周期 - 销毁完成
  1241. activated() {}, // 如果页面有keep-alive缓存功能,这个函数会触发
  1242. };
  1243. </script>
  1244. <style lang="scss" scoped>
  1245. .fullscreen-title-btn {
  1246. position: absolute;
  1247. right: 100px;
  1248. top: 0.175rem;
  1249. }
  1250. .fullscreen-content {
  1251. .fullscreen-content-select {
  1252. display: flex;
  1253. justify-content: space-around;
  1254. padding-bottom: 0.1rem;
  1255. border-bottom: 1px solid #e8eaec;
  1256. .fullscreen-content-select-block {
  1257. display: flex;
  1258. justify-content: center;
  1259. align-items: center;
  1260. }
  1261. .fullscreen-content-select-block:nth-child(1) {
  1262. width: 30%;
  1263. }
  1264. .fullscreen-content-select-block:nth-child(2) {
  1265. width: 20%;
  1266. }
  1267. .fullscreen-content-select-block:nth-child(3) {
  1268. }
  1269. }
  1270. .fullscreen-content-choose {
  1271. display: flex;
  1272. justify-content: flex-start;
  1273. flex-wrap: wrap;
  1274. padding-top: 0.1rem;
  1275. margin-bottom: 0.5rem;
  1276. .fullscreen-content-choose-block {
  1277. width: 25%;
  1278. border-radius: 5px;
  1279. border: 1px solid #2d8cf0;
  1280. // margin: 0.1rem 1%;
  1281. padding: 1%;
  1282. position: relative;
  1283. div {
  1284. display: flex;
  1285. justify-content: space-between;
  1286. }
  1287. .chip-tag {
  1288. display: inline-block;
  1289. position: absolute;
  1290. width: 0.75rem;
  1291. top: 0;
  1292. left: 50%;
  1293. background-color: #fadb14;
  1294. color: black;
  1295. height: 0.75rem;
  1296. border-radius: 15%;
  1297. text-align: center;
  1298. padding-top: 0.15rem;
  1299. transform: translate(-50%, -10%);
  1300. }
  1301. }
  1302. .fullscreen-content-choose-block-choosen {
  1303. color: white;
  1304. background-color: #2d8cf0;
  1305. }
  1306. .fullscreen-content-choose-block-unchoosen {
  1307. color: #2d8cf0;
  1308. background-color: white;
  1309. }
  1310. }
  1311. }
  1312. .fullscreen-content-page {
  1313. display: flex;
  1314. justify-content: center;
  1315. }
  1316. .selection-modal {
  1317. .selection-modal-top {
  1318. display: flex;
  1319. justify-content: center;
  1320. }
  1321. .selection-modal-body {
  1322. display: flex;
  1323. justify-content: center;
  1324. flex-wrap: wrap;
  1325. .selection-modal-body-block {
  1326. cursor: pointer;
  1327. width: 30%;
  1328. margin: 1%;
  1329. padding: 3% 1%;
  1330. background-color: #e9ecef;
  1331. div {
  1332. display: flex;
  1333. justify-content: center;
  1334. }
  1335. }
  1336. .selection-modal-body-block-detail {
  1337. cursor: pointer;
  1338. width: 17%;
  1339. margin: 1%;
  1340. padding: 3% 1%;
  1341. background-color: #e9ecef;
  1342. div {
  1343. display: flex;
  1344. justify-content: center;
  1345. }
  1346. }
  1347. .selection-modal-body-block-choosen,
  1348. .selection-modal-body-block-detail-choosen {
  1349. background-color: #fadb14;
  1350. }
  1351. .selection-modal-body-block-unchoosen,
  1352. .selection-modal-body-block-detail-unchoosen {
  1353. background-color: #e9ecef;
  1354. }
  1355. }
  1356. }
  1357. .selection-rowno-modal {
  1358. .selection-rowno-modal-body {
  1359. .selection-rowno-modal-body-block {
  1360. margin: 0.5rem 0;
  1361. text-align: center;
  1362. }
  1363. }
  1364. }
  1365. .selection-print-modal {
  1366. .selection-print-modal-body {
  1367. .selection-print-modal-body-top {
  1368. display: flex;
  1369. justify-content: space-around;
  1370. align-items: center;
  1371. margin: 0.5rem 0;
  1372. }
  1373. .selection-print-modal-body-info {
  1374. padding-top: 16px;
  1375. border-top: 1px solid #e8eaec;
  1376. text-align: center;
  1377. }
  1378. }
  1379. }
  1380. .icon-wrapper {
  1381. position: relative;
  1382. font-size: 0.25rem;
  1383. }
  1384. .icon-close {
  1385. position: absolute;
  1386. right: -0.35rem;
  1387. top: -0.2rem;
  1388. }
  1389. /deep/.ivu-page-item {
  1390. display: inline-block;
  1391. font-size: 0.5rem;
  1392. height: 1rem;
  1393. line-height: 1rem;
  1394. width: 1rem;
  1395. }
  1396. /deep/.ivu-page-prev,
  1397. /deep/.ivu-page-next {
  1398. display: inline-block;
  1399. font-size: 0.5rem;
  1400. height: 1rem;
  1401. line-height: 1rem;
  1402. width: 1rem;
  1403. a {
  1404. font-size: 0.5rem;
  1405. }
  1406. }
  1407. /deep/.fullscreen-content-page {
  1408. display: flex;
  1409. justify-content: space-around;
  1410. }
  1411. </style>