ChipPrintScreenCheck.vue 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419
  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. currentSearchValue: "",
  517. list: [],
  518. hasChild: false,
  519. },
  520. urlObj: {
  521. title: "图号选择",
  522. list: [],
  523. hasChild: true,
  524. },
  525. rownoObj: {},
  526. currencySelectedObj: {
  527. title: "订单编号/项目名称选择",
  528. currentSearchValue: "",
  529. type: 1,
  530. list: [],
  531. },
  532. selectedInfo: {
  533. order_no: "",
  534. residential_name: "",
  535. url_number: "",
  536. product_id: "",
  537. rows: [],
  538. },
  539. page_index: 1,
  540. page_size: 12,
  541. total: 0,
  542. currentSearchValue: "",
  543. modal_1_page_index: 1,
  544. modal_1_page_size: 6,
  545. modal_1_total: 0,
  546. modal_room_page_index: 1,
  547. modal_room_page_size: 9,
  548. modal_room_total: 0,
  549. modal_2_page_index: 1,
  550. modal_2_page_size: 60,
  551. modal_2_total: 0,
  552. chooseOrderNo: {},
  553. chooseUrlNo: {},
  554. chooseDetailUrlNo: {},
  555. chooseLineNo: [{ start: "", end: "" }],
  556. keyboardObj: {},
  557. keyboardVal: "",
  558. modalRoomList: [],
  559. modalRoomListSelected: [],
  560. };
  561. },
  562. // 生命周期 - 创建完成(可以访问当前this实例)
  563. created() {},
  564. // 生命周期 - 挂载完成(可以访问DOM元素)
  565. mounted() {
  566. this.selectedInfo = JSON.parse(localStorage.getItem("printInfo"));
  567. this.getChipDetail();
  568. },
  569. methods: {
  570. back() {
  571. this.$router.go(-1);
  572. },
  573. handleSelection(obj, type) {
  574. if (type == 2 && this.selectedInfo.order_no == "") {
  575. return this.$Message.warning("请先选择项目");
  576. }
  577. this.currentSearchValue = "";
  578. this.currentSearchValue = obj.currentSearchValue;
  579. this.currencySelectedObj = obj;
  580. this.selectionModal = true;
  581. this.currencySelectedObj.type = type;
  582. if (this.currencySelectedObj.list.length == 0 || type == 2) {
  583. this.handleCurrentSearch(
  584. this.currencySelectedObj,
  585. this.currentSearchValue
  586. );
  587. }
  588. },
  589. handleSelectionRowno(row) {
  590. console.log(`row`, row);
  591. if (this.selectedInfo.rows.legth > 0) {
  592. this.chooseLineNo = JSON.parse(JSON.stringify(this.selectedInfo.rows));
  593. } else {
  594. this.chooseLineNo = [{ start: null, end: null }];
  595. }
  596. this.selectionRownolModal = true;
  597. },
  598. handleCancelSelected(v, type) {
  599. if (type) {
  600. this.selectedInfo.rows.splice(v, 1);
  601. } else if (v == "product_id") {
  602. this.selectedInfo.url_number = "";
  603. this.selectedInfo.product_id = "";
  604. } else {
  605. this.selectedInfo[v] = "";
  606. }
  607. if (v != "order_no") {
  608. this.getChipDetail();
  609. } else {
  610. this.selectedInfo.residential_name = "";
  611. this.selectedInfo.url_number = "";
  612. this.selectedInfo.product_id = "";
  613. this.selectedInfo.rows = [];
  614. this.contentData = [];
  615. this.total = 0;
  616. }
  617. },
  618. handleChooseBlockClick(row) {
  619. console.log(`row`, row);
  620. if (row.isChoosed) {
  621. row.isChoosed = false;
  622. } else {
  623. this.contentData.map((v) => {
  624. v.isChoosed = false;
  625. });
  626. row.isChoosed = true;
  627. }
  628. if (row.un_print == 0) {
  629. row.isFinished = true;
  630. }
  631. this.selectedObj = row;
  632. },
  633. handleSelectionClick(row, obj) {
  634. row.list.map((v) => (v.isCurrent = false));
  635. obj.isCurrent = true;
  636. if (row.hasChild) {
  637. // 行号
  638. this.selectionModal = false;
  639. this.selectionDetailModal = true;
  640. this.chooseDetailUrlNo = obj;
  641. this.currentSearchValue = this.rownoObj.currentSearchValue;
  642. this.contentData = [];
  643. this.total = 0;
  644. } else {
  645. // 订单号
  646. this.chooseOrderNo = obj;
  647. this.currentSearchValue = this.ordernoObj.currentSearchValue;
  648. }
  649. if (row.type == 1) {
  650. this.handleSelectionComfirm(this.currencySelectedObj);
  651. }
  652. this.$forceUpdate();
  653. },
  654. handleAddRow(row, index) {
  655. this.chooseLineNo.push({
  656. start: "",
  657. end: "",
  658. });
  659. },
  660. handleDeleRow(row, index) {
  661. this.chooseLineNo.splice(index, 1);
  662. },
  663. handleSelectionDetailClick(row, obj) {
  664. row.children.map((v) => (v.isCurrent = false));
  665. obj.isCurrent = true;
  666. this.chooseUrlNo = obj;
  667. this.handleSelectionComfirm(this.currencySelectedObj);
  668. this.$forceUpdate();
  669. },
  670. handleFullScreenClick() {
  671. this.isFullScreen = !this.isFullScreen;
  672. if (this.isFullScreen) {
  673. this.enterFullScreen();
  674. } else {
  675. this.exitFullScreen();
  676. }
  677. },
  678. enterFullScreen() {
  679. let el = document.documentElement;
  680. let rfs =
  681. el.requestFullScreen ||
  682. el.webkitRequestFullScreen ||
  683. el.mozRequestFullScreen ||
  684. el.msRequestFullscreen;
  685. if (rfs) {
  686. rfs.call(el);
  687. } else if (typeof window.ActiveXObject !== "undefined") {
  688. // for IE,这里其实就是模拟了按下键盘的F11,使浏览器全屏
  689. let wscript = new ActiveXObject("WScript.Shell");
  690. if (wscript != null) {
  691. wscript.SendKeys("{F11}");
  692. }
  693. }
  694. },
  695. exitFullScreen() {
  696. let el = document;
  697. let cfs =
  698. el.cancelFullScreen ||
  699. el.mozCancelFullScreen ||
  700. el.msExitFullscreen ||
  701. el.webkitExitFullscreen ||
  702. el.exitFullscreen;
  703. if (cfs) {
  704. // typeof cfs != "undefined" && cfs
  705. cfs.call(el);
  706. } else if (typeof window.ActiveXObject !== "undefined") {
  707. // for IE,这里和fullScreen相同,模拟按下F11键退出全屏
  708. let wscript = new ActiveXObject("WScript.Shell");
  709. if (wscript != null) {
  710. wscript.SendKeys("{F11}");
  711. }
  712. }
  713. },
  714. handleCurrentSearch(row, val) {
  715. //type 1项目选择 2图号选择
  716. let url =
  717. row.type == 1
  718. ? "/api/station_get_order"
  719. : "/api/station_get_url_number";
  720. this.axios({
  721. method: "post",
  722. url,
  723. data: {
  724. page_index:
  725. row.type == 1 ? this.modal_1_page_index : this.modal_2_page_index,
  726. page_size:
  727. row.type == 1 ? this.modal_1_page_size : this.modal_2_page_size,
  728. order_no: row.type == 1 ? val : this.selectedInfo.order_no,
  729. url_number: row.type == 1 ? "" : val,
  730. },
  731. }).then((res) => {
  732. if (res.code == 200) {
  733. if (row.type == 1) {
  734. row.list = res.data.data;
  735. this.modal_1_total = res.data.total;
  736. } else {
  737. row.list = [];
  738. this.modal_2_total = res.data.total;
  739. let length = Math.ceil(res.data.data.length / 10);
  740. for (let index = 0; index < length; index++) {
  741. row.list.push({
  742. //最后一位不一定刚好10个
  743. title:
  744. length - index == 1
  745. ? `${res.data.data[10 * index].url_number}~${
  746. res.data.data[res.data.data.length - 1].url_number
  747. }`
  748. : `${res.data.data[10 * index].url_number}~${
  749. res.data.data[10 * index + 10].url_number
  750. }`,
  751. children: res.data.data.slice(10 * index, 10 * index + 10),
  752. });
  753. }
  754. }
  755. }
  756. });
  757. },
  758. changeRoomPage(e) {
  759. this.modal_room_page_index = e;
  760. this.getModalRoomList();
  761. },
  762. handleSelectionRoom() {
  763. this.getModalRoomList();
  764. this.roomModal = true;
  765. },
  766. getModalRoomList() {
  767. this.axios({
  768. method: "post",
  769. url: "/api/station_get_print_house",
  770. data: {
  771. order_no: this.selectedInfo.order_no,
  772. product_id: this.selectedInfo.product_id,
  773. rows: this.selectedInfo.rows,
  774. page_index: this.modal_room_page_index,
  775. page_size: this.modal_room_page_size,
  776. id: this.selectedObj.id,
  777. },
  778. }).then((res) => {
  779. if (res.code == 200) {
  780. res.data.data.map((v) => {
  781. v.isCurrent = false;
  782. this.modalRoomListSelected &&
  783. this.modalRoomListSelected.map((w) => {
  784. if (w.id == v.id) {
  785. v.isCurrent = true;
  786. }
  787. });
  788. });
  789. this.modalRoomList = res.data.data;
  790. this.modal_room_total = res.data.total;
  791. }
  792. });
  793. },
  794. handleSelectedRoomClick(list, block) {
  795. if (block.isCurrent) {
  796. this.modalRoomListSelected = this.modalRoomListSelected.filter(
  797. (v) => v.id != block.id
  798. );
  799. block.isCurrent = !block.isCurrent;
  800. } else {
  801. if (this.modalRoomListSelected.length < this.selectedObj.print_num) {
  802. block.isCurrent = !block.isCurrent;
  803. this.modalRoomListSelected = this.modalRoomListSelected.concat(
  804. this.modalRoomList.filter((v) => v.isCurrent)
  805. );
  806. } else {
  807. this.$Message.warning("与打印数量不符,请重新选择");
  808. }
  809. }
  810. this.modalRoomListSelected = Array.from(
  811. new Set([...this.modalRoomListSelected])
  812. );
  813. },
  814. //项目、图号确认
  815. handleSelectionComfirm(row) {
  816. console.log(`row`, row);
  817. // 这里需要把弹框关闭之后赋值到selectedInfo上
  818. // this.selectedInfo.order_no;
  819. // 1 项目选择 2图号选择
  820. if (row.type == 1) {
  821. this.selectedInfo.order_no = this.chooseOrderNo.order_no;
  822. this.selectedInfo.residential_name = this.chooseOrderNo.residential_name;
  823. this.selectionModal = false;
  824. } else if (row.type == 2) {
  825. this.selectedInfo.url_number = this.chooseUrlNo.url_number;
  826. this.selectedInfo.product_id = this.chooseUrlNo.product_id;
  827. this.selectionDetailModal = false;
  828. this.getChipDetail();
  829. }
  830. // order_no: "20211010",
  831. // residential_name: "2",
  832. // url_number: "3",
  833. // row_no: [],
  834. },
  835. // 获取具体详情
  836. getChipDetail() {
  837. this.axios({
  838. method: "post",
  839. url: "/api/station_get_order_on_product_pr",
  840. data: {
  841. order_no: this.selectedInfo.order_no,
  842. product_id: this.selectedInfo.product_id,
  843. rows: this.selectedInfo.rows,
  844. page_index: this.page_index,
  845. page_size: this.page_size,
  846. },
  847. }).then((res) => {
  848. if (res.code == 200) {
  849. console.log(`res`, res);
  850. res.data.data.map((v) => (v.isChoosed = false));
  851. this.contentData = res.data.data;
  852. this.total = res.data.total;
  853. }
  854. });
  855. },
  856. handlePrint() {
  857. if (!this.selectedObj.isChoosed) {
  858. return this.$Message.warning("请选择数据");
  859. }
  860. if (this.selectedObj.un_print == 0) {
  861. this.selectedObj.print_num = this.selectedObj.on_print;
  862. } else {
  863. this.selectedObj.print_num = this.selectedObj.un_print;
  864. }
  865. this.printModal = true;
  866. },
  867. handlePrintComfirm(row, type) {
  868. if (
  869. type &&
  870. this.modalRoomListSelected.length != this.selectedObj.print_num
  871. ) {
  872. return this.$Message.warning("与打印数量不符");
  873. }
  874. let ids = this.modalRoomListSelected.map((v) => {
  875. return v.id;
  876. });
  877. let data = type
  878. ? {
  879. order_no: this.selectedInfo.order_no,
  880. product_id: this.selectedInfo.product_id,
  881. rows: this.selectedInfo.rows,
  882. num: this.selectedObj.print_num,
  883. id: row.id,
  884. ids,
  885. type,
  886. }
  887. : {
  888. order_no: this.selectedInfo.order_no,
  889. product_id: this.selectedInfo.product_id,
  890. rows: this.selectedInfo.rows,
  891. num: this.selectedObj.print_num,
  892. id: row.id,
  893. };
  894. this.axios({
  895. method: "post",
  896. url: "/api/station_print",
  897. data,
  898. }).then((resp) => {
  899. if (resp.code == 200) {
  900. this.handlePrintChips(resp.data);
  901. this.printModal = false;
  902. this.roomModal = false;
  903. }
  904. });
  905. // this.axios({
  906. // method: "post",
  907. // url: "/api/station_print",
  908. // data: {
  909. // order_no: this.selectedInfo.order_no,
  910. // product_id: this.selectedInfo.product_id,
  911. // rows: this.selectedInfo.rows,
  912. // num: this.selectedObj.print_num,
  913. // id: row.id,
  914. // },
  915. // }).then((resp) => {
  916. // if (resp.code == 200) {
  917. // this.handlePrintChips(resp.data);
  918. // this.printModal = false;
  919. // this.roomModal = false;
  920. // }
  921. // });
  922. },
  923. handleOk() {
  924. if (!this.selectedObj.isChoosed) {
  925. return this.$Message.warning("请选择数据");
  926. }
  927. if (this.selectedObj.type == 1 && this.selectedObj.un_print == 0) {
  928. return this.$Message.warning("部件存在未打印芯片,请先打印");
  929. }
  930. this.selectedObj.ok_num =
  931. this.selectedObj.on_print - this.selectedObj.on_complete;
  932. this.okModal = true;
  933. },
  934. handleRoomCancel() {
  935. this.modalRoomList.map((v) => {
  936. v.isCurrent = false;
  937. });
  938. this.modalRoomListSelected = [];
  939. this.roomModal = false;
  940. },
  941. handleOkComfirm(row) {
  942. if (this.modalRoomListSelected.length != this.selectedObj.print_num) {
  943. return this.$Message.warning("与打印数量不符,请重新选择");
  944. }
  945. this.axios({
  946. method: "post",
  947. url: "/api/station_complete",
  948. data: {
  949. order_no: this.selectedInfo.order_no,
  950. product_id: this.selectedInfo.product_id,
  951. rows: this.selectedInfo.rows,
  952. num: this.selectedObj.ok_num,
  953. id: row.id,
  954. },
  955. }).then((res) => {
  956. if (res.code == 200) {
  957. this.okModal = false;
  958. this.getChipDetail();
  959. }
  960. });
  961. },
  962. //行号确认
  963. handleRowNoComfirm() {
  964. this.selectedInfo.rows = JSON.parse(JSON.stringify(this.chooseLineNo));
  965. this.selectionRownolModal = false;
  966. this.getChipDetail();
  967. },
  968. onInput(value) {
  969. this.currentSearchValue = this.currentSearchValue + "" + value;
  970. this.handleCurrentSearch(
  971. this.currencySelectedObj,
  972. this.currentSearchValue
  973. );
  974. },
  975. onDelete() {
  976. this.currentSearchValue = this.currentSearchValue.substring(
  977. 0,
  978. this.currentSearchValue.length - 1
  979. );
  980. this.handleCurrentSearch(
  981. this.currencySelectedObj,
  982. this.currentSearchValue
  983. );
  984. },
  985. handlePrintInput() {
  986. this.show3 = true;
  987. },
  988. keyboardPrintTap(value) {
  989. let max = this.selectedObj.on_print + this.selectedObj.un_print;
  990. this.selectedObj.print_num =
  991. (this.selectedObj.print_num ? this.selectedObj.print_num : "") +
  992. "" +
  993. value;
  994. if (this.selectedObj.print_num * 1 > max) {
  995. this.selectedObj.print_num = max;
  996. }
  997. this.$forceUpdate();
  998. },
  999. keyboardPrintDele() {
  1000. this.selectedObj.print_num = (this.selectedObj.print_num + "").substring(
  1001. 0,
  1002. this.selectedObj.print_num.length - 1
  1003. );
  1004. this.$forceUpdate();
  1005. },
  1006. keyboardTap(value) {
  1007. this.keyboardObj[this.keyboardVal] =
  1008. (this.keyboardObj[this.keyboardVal]
  1009. ? this.keyboardObj[this.keyboardVal]
  1010. : "") +
  1011. "" +
  1012. value;
  1013. },
  1014. keyboardDele() {
  1015. this.keyboardObj[this.keyboardVal] = this.keyboardObj[
  1016. this.keyboardVal
  1017. ].substring(0, this.keyboardObj[this.keyboardVal].length - 1);
  1018. },
  1019. handleRowNoInput(row, type) {
  1020. if (type == 1) {
  1021. this.keyboardVal = "start";
  1022. } else {
  1023. this.keyboardVal = "end";
  1024. }
  1025. this.keyboardObj = row;
  1026. this.show2 = true;
  1027. },
  1028. changePage(e) {
  1029. this.page_index = e;
  1030. this.getChipDetail();
  1031. },
  1032. changeModalPage(e) {
  1033. this.currencySelectedObj.type == 1
  1034. ? (this.modal_1_page_index = e)
  1035. : (this.modal_2_page_index = e);
  1036. this.handleCurrentSearch(
  1037. this.currencySelectedObj,
  1038. this.currentSearchValue
  1039. );
  1040. },
  1041. handlePrintChips(contents) {
  1042. this.axios.get("/api/get_print_url").then((res) => {
  1043. let data = {};
  1044. // let url = "http://192.168.0.145:888/postek/print"; //request_url
  1045. let url = `http://${res.data.request_url}:888/postek/print`; //request_url
  1046. data.reqParam = "1"; //这个一般不用改,如需改,查api
  1047. let printparamsJsonArray = [];
  1048. // let IP = "192.168.1.58";//print_url
  1049. // let IP = "192.168.0.199"; //print_url
  1050. let IP = res.data.print_url;
  1051. let port = 9100;
  1052. let IP_Port = IP + "," + port;
  1053. printparamsJsonArray.push({ PTK_Connect_Timer: IP_Port + ",1" });
  1054. printparamsJsonArray.push({ PTK_ClearBuffer: "" });
  1055. printparamsJsonArray.push({ PTK_SetDirection: "B" });
  1056. printparamsJsonArray.push({ PTK_SetPrintSpeed: "4" });
  1057. printparamsJsonArray.push({ PTK_SetDarkness: "10" });
  1058. printparamsJsonArray.push({
  1059. PTK_SetLabelHeight: 624 + "," + 24 + ",0,false",
  1060. });
  1061. printparamsJsonArray.push({ PTK_SetLabelWidth: 1080 });
  1062. contents.map((content) => {
  1063. //贝斯特打印格式
  1064. //上
  1065. const printContent_l1 = `项目:${content.client_name}`;
  1066. printparamsJsonArray.push({
  1067. PTK_DrawText_TrueType:
  1068. "100,40,60,0,微软雅黑,1,700,0,0,0," + printContent_l1,
  1069. });
  1070. const printContent_l1_2 = `区域:${
  1071. content.house ? content.house + "-" : ""
  1072. }${content.layer ? content.layer : ""}${
  1073. content.position ? content.position : ""
  1074. }`;
  1075. printparamsJsonArray.push({
  1076. PTK_DrawText_TrueType:
  1077. "600,40,60,0,微软雅黑,1,700,0,0,0," + printContent_l1_2,
  1078. });
  1079. const printContent_l2 = `房号:${content.number_detail}`;
  1080. printparamsJsonArray.push({
  1081. PTK_DrawText_TrueType:
  1082. "100,110,60,0,微软雅黑,1,700,0,0,0," + printContent_l2,
  1083. });
  1084. const printContent_l2_2 = `产品:${content.product_title}`;
  1085. printparamsJsonArray.push({
  1086. PTK_DrawText_TrueType:
  1087. "600,110,60,0,微软雅黑,1,700,0,0,0," + printContent_l2_2,
  1088. });
  1089. const printContent_l3 = `图号:${content.url_number}`;
  1090. printparamsJsonArray.push({
  1091. PTK_DrawText_TrueType:
  1092. "100,180,60,0,微软雅黑,1,700,0,0,0," + printContent_l3,
  1093. });
  1094. const printContent_l3_2 = `部件:${content.part_title}`;
  1095. printparamsJsonArray.push({
  1096. PTK_DrawText_TrueType:
  1097. "600,180,60,0,微软雅黑,1,700,0,0,0," + printContent_l3_2,
  1098. });
  1099. const printContent_l4 = `木皮:${content.color_title}`;
  1100. printparamsJsonArray.push({
  1101. PTK_DrawText_TrueType:
  1102. "100,320,60,0,微软雅黑,1,700,0,0,0," + printContent_l4,
  1103. });
  1104. const printContent_l4_2 = `尺寸:${content.measure}`;
  1105. printparamsJsonArray.push({
  1106. PTK_DrawText_TrueType:
  1107. "100,250,60,0,微软雅黑,1,700,0,0,0," + printContent_l4_2,
  1108. });
  1109. //下
  1110. printparamsJsonArray.push({
  1111. PTK_DrawText_TrueType:
  1112. "100,435,45,0,微软雅黑,1,700,0,0,0," + printContent_l1,
  1113. });
  1114. printparamsJsonArray.push({
  1115. PTK_DrawText_TrueType:
  1116. "600,435,45,0,微软雅黑,1,700,0,0,0," + printContent_l1_2,
  1117. });
  1118. printparamsJsonArray.push({
  1119. PTK_DrawText_TrueType:
  1120. "100,480,45,0,微软雅黑,1,700,0,0,0," + printContent_l2,
  1121. });
  1122. printparamsJsonArray.push({
  1123. PTK_DrawText_TrueType:
  1124. "600,480,45,0,微软雅黑,1,700,0,0,0," + printContent_l2_2,
  1125. });
  1126. printparamsJsonArray.push({
  1127. PTK_DrawText_TrueType:
  1128. "100,525,45,0,微软雅黑,1,700,0,0,0," + printContent_l3,
  1129. });
  1130. printparamsJsonArray.push({
  1131. PTK_DrawText_TrueType:
  1132. "600,525,45,0,微软雅黑,1,700,0,0,0," + printContent_l3_2,
  1133. });
  1134. printparamsJsonArray.push({
  1135. PTK_DrawText_TrueType:
  1136. "100,570,45,0,微软雅黑,1,700,0,0,0," + printContent_l4,
  1137. });
  1138. printparamsJsonArray.push({
  1139. PTK_DrawText_TrueType:
  1140. "600,570,45,0,微软雅黑,1,700,0,0,0," + printContent_l4_2,
  1141. });
  1142. // 17,35 420
  1143. printparamsJsonArray.push({
  1144. PTK_RWRFIDLabel:
  1145. "1,0,0," + content.chip.length / 2 + ",1," + content.chip,
  1146. });
  1147. printparamsJsonArray.push({ PTK_PrintLabel: "1,1" });
  1148. });
  1149. // contents.map((content) => {
  1150. // //江山打印格式
  1151. // //上
  1152. // const printContent_l1 = `单号:${content.order_no}`;
  1153. // printparamsJsonArray.push({
  1154. // PTK_DrawText_TrueType:
  1155. // "100,40,60,0,微软雅黑,1,700,0,0,0," + printContent_l1,
  1156. // });
  1157. // const printContent_l1_2 = `型号:${content.product_title}`;
  1158. // printparamsJsonArray.push({
  1159. // PTK_DrawText_TrueType:
  1160. // "600,40,60,0,微软雅黑,1,700,0,0,0," + printContent_l1_2,
  1161. // });
  1162. // const printContent_l2 = `尺寸:${content.measure}`;
  1163. // printparamsJsonArray.push({
  1164. // PTK_DrawText_TrueType:
  1165. // "100,110,60,0,微软雅黑,1,700,0,0,0," + printContent_l2,
  1166. // });
  1167. // const printContent_l2_2 = `工艺:${content.process_title}`;
  1168. // printparamsJsonArray.push({
  1169. // PTK_DrawText_TrueType:
  1170. // "600,110,60,0,微软雅黑,1,700,0,0,0," + printContent_l2_2,
  1171. // });
  1172. // const printContent_l3 = `颜色:${content.color_title}`;
  1173. // printparamsJsonArray.push({
  1174. // PTK_DrawText_TrueType:
  1175. // "100,250,60,0,微软雅黑,1,700,0,0,0," + printContent_l3,
  1176. // });
  1177. // const printContent_l3_2 = `部件:${content.part_title}`;
  1178. // printparamsJsonArray.push({
  1179. // PTK_DrawText_TrueType:
  1180. // "100,180,60,0,微软雅黑,1,700,0,0,0," + printContent_l3_2,
  1181. // });
  1182. // //下
  1183. // printparamsJsonArray.push({
  1184. // PTK_DrawText_TrueType:
  1185. // "100,435,45,0,微软雅黑,1,700,0,0,0," + printContent_l1,
  1186. // });
  1187. // printparamsJsonArray.push({
  1188. // PTK_DrawText_TrueType:
  1189. // "600,435,45,0,微软雅黑,1,700,0,0,0," + printContent_l1_2,
  1190. // });
  1191. // printparamsJsonArray.push({
  1192. // PTK_DrawText_TrueType:
  1193. // "100,480,45,0,微软雅黑,1,700,0,0,0," + printContent_l2,
  1194. // });
  1195. // printparamsJsonArray.push({
  1196. // PTK_DrawText_TrueType:
  1197. // "600,480,45,0,微软雅黑,1,700,0,0,0," + printContent_l2_2,
  1198. // });
  1199. // printparamsJsonArray.push({
  1200. // PTK_DrawText_TrueType:
  1201. // "100,525,45,0,微软雅黑,1,700,0,0,0," + printContent_l3,
  1202. // });
  1203. // printparamsJsonArray.push({
  1204. // PTK_DrawText_TrueType:
  1205. // "600,525,45,0,微软雅黑,1,700,0,0,0," + printContent_l3_2,
  1206. // });
  1207. // printparamsJsonArray.push({
  1208. // PTK_RWRFIDLabel:
  1209. // "1,0,0," + content.chip.length / 2 + ",1," + content.chip,
  1210. // });
  1211. // printparamsJsonArray.push({ PTK_PrintLabel: "1,1" });
  1212. // });
  1213. printparamsJsonArray.push({ PTK_CloseConnect: "" });
  1214. data.printparams = printparamsJsonArray;
  1215. let sub_data = JSON.parse(JSON.stringify(data));
  1216. sub_data.printparams = JSON.stringify(sub_data.printparams);
  1217. let _this = this;
  1218. $.ajax({
  1219. type: "post",
  1220. url,
  1221. data: sub_data,
  1222. dataType: "json",
  1223. timeout: 5000,
  1224. success: function(result) {
  1225. _this.getChipDetail();
  1226. if (result.retval == "0") {
  1227. _this.$Message.success("发送成功");
  1228. } else {
  1229. _this.$Message.error("发送失败,返回结果:" + result.msg);
  1230. }
  1231. },
  1232. });
  1233. });
  1234. },
  1235. },
  1236. // 监听属性 类似于data概念
  1237. computed: {},
  1238. // 监控data中的数据变化
  1239. watch: {},
  1240. beforeCreate() {}, // 生命周期 - 创建之前
  1241. beforeMount() {}, // 生命周期 - 挂载之前
  1242. beforeUpdate() {}, // 生命周期 - 更新之前
  1243. updated() {}, // 生命周期 - 更新之后
  1244. beforeDestroy() {}, // 生命周期 - 销毁之前
  1245. destroyed() {}, // 生命周期 - 销毁完成
  1246. activated() {}, // 如果页面有keep-alive缓存功能,这个函数会触发
  1247. };
  1248. </script>
  1249. <style lang="scss" scoped>
  1250. .fullscreen-title-btn {
  1251. position: absolute;
  1252. right: 100px;
  1253. top: 0.175rem;
  1254. }
  1255. .fullscreen-content {
  1256. .fullscreen-content-select {
  1257. display: flex;
  1258. justify-content: space-around;
  1259. padding-bottom: 0.1rem;
  1260. border-bottom: 1px solid #e8eaec;
  1261. .fullscreen-content-select-block {
  1262. display: flex;
  1263. justify-content: center;
  1264. align-items: center;
  1265. }
  1266. .fullscreen-content-select-block:nth-child(1) {
  1267. width: 30%;
  1268. }
  1269. .fullscreen-content-select-block:nth-child(2) {
  1270. width: 20%;
  1271. }
  1272. .fullscreen-content-select-block:nth-child(3) {
  1273. }
  1274. }
  1275. .fullscreen-content-choose {
  1276. display: flex;
  1277. justify-content: flex-start;
  1278. flex-wrap: wrap;
  1279. padding-top: 0.1rem;
  1280. margin-bottom: 0.5rem;
  1281. .fullscreen-content-choose-block {
  1282. width: 25%;
  1283. border-radius: 5px;
  1284. border: 1px solid #2d8cf0;
  1285. // margin: 0.1rem 1%;
  1286. padding: 1%;
  1287. position: relative;
  1288. div {
  1289. display: flex;
  1290. justify-content: space-between;
  1291. }
  1292. .chip-tag {
  1293. display: inline-block;
  1294. position: absolute;
  1295. width: 0.75rem;
  1296. top: 0;
  1297. left: 50%;
  1298. background-color: #fadb14;
  1299. color: black;
  1300. height: 0.75rem;
  1301. border-radius: 15%;
  1302. text-align: center;
  1303. padding-top: 0.15rem;
  1304. transform: translate(-50%, -10%);
  1305. }
  1306. }
  1307. .fullscreen-content-choose-block-choosen {
  1308. color: white;
  1309. background-color: #2d8cf0;
  1310. }
  1311. .fullscreen-content-choose-block-unchoosen {
  1312. color: #2d8cf0;
  1313. background-color: white;
  1314. }
  1315. }
  1316. }
  1317. .fullscreen-content-page {
  1318. display: flex;
  1319. justify-content: center;
  1320. }
  1321. .selection-modal {
  1322. .selection-modal-top {
  1323. display: flex;
  1324. justify-content: center;
  1325. }
  1326. .selection-modal-body {
  1327. display: flex;
  1328. justify-content: center;
  1329. flex-wrap: wrap;
  1330. .selection-modal-body-block {
  1331. cursor: pointer;
  1332. width: 30%;
  1333. margin: 1%;
  1334. padding: 3% 1%;
  1335. background-color: #e9ecef;
  1336. div {
  1337. display: flex;
  1338. justify-content: center;
  1339. }
  1340. }
  1341. .selection-modal-body-block-detail {
  1342. cursor: pointer;
  1343. width: 17%;
  1344. margin: 1%;
  1345. padding: 3% 1%;
  1346. background-color: #e9ecef;
  1347. div {
  1348. display: flex;
  1349. justify-content: center;
  1350. }
  1351. }
  1352. .selection-modal-body-block-choosen,
  1353. .selection-modal-body-block-detail-choosen {
  1354. background-color: #fadb14;
  1355. }
  1356. .selection-modal-body-block-unchoosen,
  1357. .selection-modal-body-block-detail-unchoosen {
  1358. background-color: #e9ecef;
  1359. }
  1360. }
  1361. }
  1362. .selection-rowno-modal {
  1363. .selection-rowno-modal-body {
  1364. .selection-rowno-modal-body-block {
  1365. margin: 0.5rem 0;
  1366. text-align: center;
  1367. }
  1368. }
  1369. }
  1370. .selection-print-modal {
  1371. .selection-print-modal-body {
  1372. .selection-print-modal-body-top {
  1373. display: flex;
  1374. justify-content: space-around;
  1375. align-items: center;
  1376. margin: 0.5rem 0;
  1377. }
  1378. .selection-print-modal-body-info {
  1379. padding-top: 16px;
  1380. border-top: 1px solid #e8eaec;
  1381. text-align: center;
  1382. }
  1383. }
  1384. }
  1385. .icon-wrapper {
  1386. position: relative;
  1387. font-size: 0.25rem;
  1388. }
  1389. .icon-close {
  1390. position: absolute;
  1391. right: -0.35rem;
  1392. top: -0.2rem;
  1393. }
  1394. /deep/.ivu-page-item {
  1395. display: inline-block;
  1396. font-size: 0.5rem;
  1397. height: 1rem;
  1398. line-height: 1rem;
  1399. width: 1rem;
  1400. }
  1401. /deep/.ivu-page-prev,
  1402. /deep/.ivu-page-next {
  1403. display: inline-block;
  1404. font-size: 0.5rem;
  1405. height: 1rem;
  1406. line-height: 1rem;
  1407. width: 1rem;
  1408. a {
  1409. font-size: 0.5rem;
  1410. }
  1411. }
  1412. /deep/.fullscreen-content-page {
  1413. display: flex;
  1414. justify-content: space-around;
  1415. }
  1416. </style>