ChipPrintScreen.vue 41 KB

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