赫艾前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

794 lines
27 KiB

3 weeks ago
  1. <script>
  2. import {
  3. searchDelHeaderList,
  4. searchDelNotifyDetail,
  5. updateDelNotifyDetail,
  6. } from '@/api/pad.js'
  7. import scanForm from "./scanForm.vue";
  8. import dayjs from "dayjs";
  9. import {Decimal} from "decimal.js";
  10. import {finallyPrintBoxLabel, getPrintBoxLabel, getPrintBoxLabelHandle} from "../../../api/pad";
  11. import {printOutBoxLabel} from "../print/print_outBox_label";
  12. export default {
  13. name: "shippingScan",
  14. components:{
  15. scanForm,
  16. },
  17. data() {
  18. return {
  19. allNum:0,
  20. notifyQty:0,
  21. height:200,
  22. delNotifyHeaderTableLoading:false,
  23. // 搜索表单对象
  24. searchData:{
  25. site:"",
  26. startDate:dayjs().format("YYYY-MM-DD"),
  27. endDate:dayjs().format("YYYY-MM-DD"),
  28. customerId:undefined,
  29. delNotifyNo:undefined,
  30. shipFlag:false,
  31. no:1,
  32. size:50,
  33. total:0,
  34. },
  35. scanFlag:false,
  36. checkoutDelNotifyDetailDialogVisible:false,
  37. // 主表对象
  38. delNotifyHeader:{
  39. },
  40. // 子表对象
  41. delNotifyDetail:{
  42. },
  43. // 主表
  44. delNotifyHeaderList:[],
  45. // 子表
  46. delNotifyDetailList:[],
  47. no:1,
  48. size:50,
  49. total:0,
  50. boxLabelVisible:false,
  51. selectDelNotifyDetail:{},
  52. boxNum:0,
  53. endBoxQty:0,
  54. scatteredBoxNo:0,
  55. boxLabelTotalQty:0,
  56. }
  57. },
  58. mounted () {
  59. this.$nextTick(() => {
  60. this.height = window.innerHeight - 475
  61. })
  62. },
  63. methods: {
  64. searchDelHeaderList(){
  65. let params = JSON.parse(JSON.stringify(this.searchData))
  66. params.no = this.no;
  67. params.size = this.size;
  68. if (this.searchData.shipFlag){
  69. params.shipFlag = "N";
  70. }else {
  71. params.shipFlag = null;
  72. }
  73. this.delNotifyHeaderList = [];
  74. this.delNotifyDetailList = [];
  75. this.delNotifyHeaderTableLoading = true;
  76. searchDelHeaderList(params).then(({data})=>{
  77. this.delNotifyHeaderTableLoading = false;
  78. if (data && data.code === 0){
  79. this.delNotifyHeaderList = data.data.records;
  80. this.total = data.data.total;
  81. this.delNotifyDetailList = data.data.records[0].delNotifyDetailVoList
  82. }else {
  83. this.$message.warning(data.msg)
  84. }
  85. }).catch((error)=>{
  86. this.delNotifyHeaderTableLoading = false;
  87. })
  88. },
  89. // 分页
  90. sizeChangeHandle(val){
  91. this.size = val;
  92. this.no = 1;
  93. this.searchDelHeaderList();
  94. },
  95. currentChangeHandle(val){
  96. this.no = val;
  97. this.searchDelHeaderList();
  98. },
  99. getSignNumber(number){
  100. return new Decimal(number).toSignificantDigits().toNumber()
  101. },
  102. rowClickDelNotifyHeaderTable(row){
  103. // 缓存对象
  104. this.delNotifyHeader = row
  105. this.delNotifyDetailList = this.delNotifyHeader.delNotifyDetailVoList;
  106. },
  107. updateDelNotifyDetailBtn(status){
  108. this.delNotifyDetail.approveResultFlag = status;
  109. console.log(this.$store.state.user)
  110. this.delNotifyDetail.approvedBy = this.$store.state.user.name;
  111. this.updateDelNotifyDetail();
  112. },
  113. updateDelNotifyDetail(){
  114. updateDelNotifyDetail(this.delNotifyDetail).then(({data})=>{
  115. if (data && data.code === 0){
  116. this.searchDelHeaderList();
  117. this.checkoutDelNotifyDetailDialogVisible = false;
  118. this.$message.success(data.msg)
  119. }else {
  120. this.$message.warning(data.msg)
  121. }
  122. }).catch((error)=>{
  123. this.$message.error("网络异常")
  124. })
  125. },
  126. checkoutDelNotifyDetailBtn(row){
  127. this.delNotifyDetail = JSON.parse(JSON.stringify(row));
  128. this.checkoutDelNotifyDetailDialogVisible = true;
  129. },
  130. clickScan(row){
  131. this.delNotifyDetail = JSON.parse(JSON.stringify(row))
  132. this.allNum = this.delNotifyDetail.allNum
  133. this.notifyQty = this.delNotifyDetail.notifyQty
  134. this.scanFlag = true
  135. },
  136. changeAllNum(val){
  137. this.allNum = val;
  138. this.delNotifyDetail.allNum = val;
  139. },
  140. boxLabelVisibleHandler(row){
  141. this.selectDelNotifyDetail = {
  142. site:row.site,
  143. delNotifyNo:row.delNotifyNo,
  144. delNotifyItemNo:row.delNotifyItemNo,
  145. partNo:row.partNo,
  146. partDesc:row.partDescription,
  147. shipQty:row.allNum,
  148. qtyPerBox:0,
  149. qtyPerBag:0,
  150. printTotalBoxCount:0,
  151. printBoxSeqNo:0,
  152. };
  153. getPrintBoxLabel(this.selectDelNotifyDetail).then(({data})=>{
  154. if (data && data.code === 0){
  155. if (data.row){
  156. this.boxLabelTotalQty = data.row.QtyPerBox;
  157. this.selectDelNotifyDetail.qtyPerBag = data.row.QtyPerBag;
  158. this.selectDelNotifyDetail.qtyPerBox = data.row.BagPerBox;
  159. this.selectDelNotifyDetail.printTotalBoxCount = data.row.PrintTotalBoxCount;
  160. this.selectDelNotifyDetail.printBoxSeqNo = data.row.PrintBoxSeqNo;
  161. }
  162. this.boxLabelVisible = true;
  163. }else {
  164. this.$message.warning(data.msg)
  165. }
  166. }).catch((error)=>{
  167. this.$message.error(error)
  168. })
  169. },
  170. printBoxLabel(){
  171. if (this.selectDelNotifyDetail.shipQty === undefined || this.selectDelNotifyDetail.shipQty === null || this.selectDelNotifyDetail.shipQty === ""){
  172. this.$message.warning("发货数量不能为空")
  173. return
  174. }
  175. if (this.selectDelNotifyDetail.qtyPerBag === undefined || this.selectDelNotifyDetail.qtyPerBag === null || this.selectDelNotifyDetail.qtyPerBag === ""){
  176. this.$message.warning("每盒(袋)数量不能为空")
  177. return
  178. }
  179. if (this.selectDelNotifyDetail.qtyPerBox === undefined || this.selectDelNotifyDetail.qtyPerBox === null || this.selectDelNotifyDetail.qtyPerBox === ""){
  180. this.$message.warning("每箱中的盒数不能为空")
  181. return
  182. }
  183. if (this.boxNum === undefined || this.boxNum === null || this.boxNum === ""){
  184. this.$message.warning("箱数不能为空")
  185. return
  186. }
  187. if (this.endBoxQty === undefined || this.endBoxQty === null || this.endBoxQty === ""){
  188. this.$message.warning("末箱余数不能为空")
  189. return
  190. }
  191. if (this.selectDelNotifyDetail.printTotalBoxCount === undefined || this.selectDelNotifyDetail.printTotalBoxCount === null || this.selectDelNotifyDetail.printTotalBoxCount === ""){
  192. this.$message.warning("总箱数不能为空")
  193. return
  194. }
  195. if (this.selectDelNotifyDetail.printBoxSeqNo === undefined || this.selectDelNotifyDetail.printBoxSeqNo === null || this.selectDelNotifyDetail.printBoxSeqNo === ""){
  196. this.$message.warning("起始箱号不能为空")
  197. return
  198. }
  199. if (this.scatteredBoxNo === undefined || this.scatteredBoxNo === null || this.scatteredBoxNo === ""){
  200. this.$message.warning("散箱箱号不能为空")
  201. return
  202. }
  203. //起始箱号 + 箱数 > 总箱数,提示 起始箱号 + 箱数 -1 超出了总箱数。
  204. if (this.selectDelNotifyDetail.printBoxSeqNo + this.boxNum -1> this.selectDelNotifyDetail.printTotalBoxCount){
  205. this.$message.warning("超出总箱数。")
  206. return
  207. }
  208. // 散箱箱号 > 总箱数,提示 散箱箱号 超出了总箱数
  209. if (this.scatteredBoxNo > this.selectDelNotifyDetail.printTotalBoxCount){
  210. this.$message.warning("散箱箱号超出了总箱数。")
  211. return
  212. }
  213. this.printBoxLabelHandler();
  214. },
  215. printBoxLabelHandler(){
  216. let params = {
  217. ...this.selectDelNotifyDetail,
  218. boxNum:this.boxNum,
  219. endBoxQty:this.endBoxQty,
  220. partSpec:this.selectDelNotifyDetail.partDesc,
  221. scatteredBoxNo:this.scatteredBoxNo,
  222. boxLabelTotalQty:this.boxLabelTotalQty,
  223. }
  224. getPrintBoxLabelHandle(params).then(({data})=>{
  225. if (data && data.code === 0){
  226. // 调用打印插件
  227. this.$message.success("打印成功")
  228. printOutBoxLabel(data.rows)
  229. // 打印执行方法
  230. this.finallyPrintBoxLabel(params);
  231. }else {
  232. this.$message.warning(data.msg)
  233. }
  234. }).catch((error)=>{
  235. this.$message.error(error)
  236. })
  237. },
  238. finallyPrintBoxLabel(params){
  239. finallyPrintBoxLabel(params).then(({data})=>{
  240. if (data && data.code === 0){
  241. this.boxLabelVisible = false;
  242. this.$message.success(data.msg)
  243. }else {
  244. this.$message.warning(data.msg)
  245. }
  246. }).catch((error)=>{
  247. this.$message.error(error)
  248. })
  249. },
  250. },
  251. watch:{
  252. "selectDelNotifyDetail.shipQty"(newVal,oldVal){
  253. if (this.selectDelNotifyDetail.qtyPerBox === 0 || !this.selectDelNotifyDetail.qtyPerBox){
  254. this.boxNum = 0;
  255. this.endBoxQty = 0;
  256. return
  257. }
  258. this.endBoxQty = this.selectDelNotifyDetail.shipQty % this.boxLabelTotalQty
  259. this.boxNum = Math.floor(this.selectDelNotifyDetail.shipQty / this.boxLabelTotalQty)
  260. },
  261. "boxLabelTotalQty"(newVal,oldVal){
  262. if (this.selectDelNotifyDetail.qtyPerBox === 0 || !this.selectDelNotifyDetail.qtyPerBox){
  263. this.boxNum = 0;
  264. this.endBoxQty = 0;
  265. return
  266. }
  267. this.endBoxQty = this.selectDelNotifyDetail.shipQty % this.boxLabelTotalQty
  268. this.boxNum = Math.floor(this.selectDelNotifyDetail.shipQty / this.boxLabelTotalQty)
  269. },
  270. "boxNum"(newVal,oldVal){
  271. if (this.endBoxQty > 0){
  272. this.scatteredBoxNo = this.boxNum + this.selectDelNotifyDetail.printBoxSeqNo
  273. }else {
  274. this.scatteredBoxNo = 0
  275. }
  276. },
  277. "selectDelNotifyDetail.printBoxSeqNo"(newVal,oldVal){
  278. if (this.endBoxQty > 0){
  279. this.scatteredBoxNo = this.boxNum + this.selectDelNotifyDetail.printBoxSeqNo
  280. }else {
  281. this.scatteredBoxNo = 0
  282. }
  283. },
  284. "selectDelNotifyDetail.qtyPerBag"(newVal,oldVal){
  285. if (newVal > 0){
  286. this.boxLabelTotalQty = this.selectDelNotifyDetail.qtyPerBag * this.selectDelNotifyDetail.qtyPerBox
  287. }
  288. },
  289. "selectDelNotifyDetail.qtyPerBox"(newVal,oldVal){
  290. if (newVal > 0){
  291. this.boxLabelTotalQty = this.selectDelNotifyDetail.qtyPerBag * this.selectDelNotifyDetail.qtyPerBox
  292. }
  293. }
  294. },
  295. computed:{
  296. },
  297. created() {
  298. this.searchDelHeaderList();
  299. }
  300. }
  301. </script>
  302. <template>
  303. <div style="padding: 10px">
  304. <el-form ref="searchDataForm" label-position="top" :model="searchData" label-width="80px">
  305. <el-row :gutter="20">
  306. <el-col :span="7">
  307. <el-row>
  308. <el-col :span="11">
  309. <el-form-item label="通知单日期">
  310. <el-date-picker
  311. style="width: 100%"
  312. :editable="false"
  313. v-model="searchData.startDate"
  314. value-format="yyyy-MM-dd"
  315. type="date">
  316. </el-date-picker>
  317. </el-form-item>
  318. </el-col>
  319. <el-col :span="2">
  320. <el-form-item label=" " style="text-align: center">
  321. -->
  322. </el-form-item>
  323. </el-col>
  324. <el-col :span="11">
  325. <el-form-item label=" ">
  326. <el-date-picker
  327. style="width: 100%"
  328. :editable="false"
  329. v-model="searchData.endDate"
  330. value-format="yyyy-MM-dd"
  331. type="date">
  332. </el-date-picker>
  333. </el-form-item>
  334. </el-col>
  335. </el-row>
  336. </el-col>
  337. <el-col :span="3">
  338. <el-form-item label="客户编号">
  339. <el-input v-model="searchData.customerId" clearable/>
  340. </el-form-item>
  341. </el-col>
  342. <el-col :span="3">
  343. <el-form-item label="通知单单号">
  344. <el-input v-model="searchData.delNotifyNo" clearable/>
  345. </el-form-item>
  346. </el-col>
  347. <el-col :span="3">
  348. <el-form-item label="工厂编号" prop="site">
  349. <el-select filterable v-model="searchData.site" default-first-option style="width: 100%">
  350. <el-option label="全部" value=""></el-option>
  351. <el-option label="1-沪声" value="1"></el-option>
  352. <el-option label="2-赫艾" value="2"></el-option>
  353. </el-select>
  354. </el-form-item>
  355. </el-col>
  356. <el-col :span="2">
  357. <el-form-item :label="' '">
  358. <el-button type="primary" style="height: 20px;font-size: 14px;line-height: 10px" @click="searchDelHeaderList"> </el-button>
  359. </el-form-item>
  360. </el-col>
  361. </el-row>
  362. </el-form>
  363. <div v-loading="delNotifyHeaderTableLoading">
  364. <el-table
  365. :height="height"
  366. :data="delNotifyHeaderList"
  367. border highlight-current-row
  368. @row-click="rowClickDelNotifyHeaderTable"
  369. style="margin-top: 10px;">
  370. <el-table-column
  371. prop="delNotifyNo"
  372. header-align="center"
  373. align="left"
  374. width="150"
  375. label="通知单号"/>
  376. <el-table-column
  377. prop="notifyDate"
  378. header-align="center"
  379. align="left"
  380. width="150"
  381. label="要求发货日期"/>
  382. <el-table-column
  383. prop="customerId"
  384. header-align="center"
  385. align="left"
  386. width="120"
  387. label="客户编码"/>
  388. <el-table-column
  389. prop="customerName"
  390. header-align="center"
  391. align="left"
  392. width="120"
  393. label="客户名称"/>
  394. <el-table-column
  395. prop="billAirwayNo"
  396. header-align="center"
  397. align="left"
  398. width="120"
  399. label="运单号"/>
  400. <el-table-column
  401. prop="forwarderId"
  402. header-align="center"
  403. align="left"
  404. width="80"
  405. label="货代"/>
  406. <el-table-column
  407. prop="remark"
  408. header-align="center"
  409. align="left"
  410. show-overflow-tooltip
  411. min-width="120"
  412. label="备注"/>
  413. <el-table-column
  414. prop="notifyDate"
  415. header-align="center"
  416. align="left"
  417. width="120"
  418. label="通知单日期"/>
  419. <el-table-column
  420. prop="receiver"
  421. header-align="center"
  422. align="left"
  423. width="100"
  424. label="经手人"/>
  425. <el-table-column
  426. prop="delAddId"
  427. header-align="center"
  428. align="left"
  429. show-overflow-tooltip
  430. width="120"
  431. label="送货地址"/>
  432. <el-table-column
  433. prop="creditFlag"
  434. header-align="center"
  435. align="left"
  436. width="120"
  437. label="退货标记"/>
  438. <el-table-column
  439. prop="site"
  440. header-align="center"
  441. align="left"
  442. width="120"
  443. label="工厂编码"/>
  444. <el-table-column
  445. prop="shipFlag"
  446. header-align="center"
  447. align="left"
  448. width="120"
  449. label="是否发货"/>
  450. <el-table-column
  451. prop="shipResult"
  452. header-align="center"
  453. align="left"
  454. width="150"
  455. label="发货状态信息"/>
  456. <el-table-column
  457. prop="realShipDate"
  458. header-align="center"
  459. align="left"
  460. width="150"
  461. label="实际发货日期"/>
  462. </el-table>
  463. <div style=" font-size: 18px;">
  464. <el-pagination
  465. @size-change="sizeChangeHandle"
  466. @current-change="currentChangeHandle"
  467. :current-page="no"
  468. :page-sizes="[50, 100, 500, 1000]"
  469. :page-size="size"
  470. :total="total"
  471. layout="total, sizes, prev, pager, next, jumper">
  472. </el-pagination>
  473. </div>
  474. <el-table :data="delNotifyDetailList"
  475. height="250"
  476. border stripe
  477. style="margin-top: 10px;">
  478. <el-table-column label="操作" width="150px" header-align="center" fixed align="center">
  479. <template slot-scope="{row,$index}">
  480. <el-link style="cursor: pointer" @click="clickScan(row)">扫描记录</el-link>
  481. <!-- <el-link style="cursor: pointer" @click="boxLabelVisibleHandler(row)">外箱标签</el-link>-->
  482. </template>
  483. </el-table-column>
  484. <el-table-column
  485. prop="delNotifyItemNo"
  486. header-align="center"
  487. align="left"
  488. width="150px"
  489. label="通知单号序号">
  490. <template slot-scope="{row,$index}">
  491. {{getSignNumber(row.delNotifyItemNo)}}
  492. </template>
  493. </el-table-column>
  494. <el-table-column
  495. prop="partNo"
  496. header-align="center"
  497. align="left"
  498. width="120"
  499. label="产品编码"/>
  500. <el-table-column
  501. prop="partDescription"
  502. header-align="center"
  503. align="left"
  504. width="150"
  505. show-overflow-tooltip
  506. label="产品名称规格"/>
  507. <el-table-column
  508. prop="approveResultFlag"
  509. header-align="center"
  510. align="left"
  511. width="150"
  512. show-overflow-tooltip
  513. label="出货检验结果">
  514. <template slot-scope="{row,$index}">
  515. <span v-if="row.approveResultFlag === 'Y'">合格</span>
  516. <span v-else-if="row.approveResultFlag === 'N'">不合格</span>
  517. <span v-else>待检验</span>
  518. </template>
  519. </el-table-column>
  520. <el-table-column
  521. prop="notifyQty"
  522. header-align="center"
  523. align="right"
  524. width="120"
  525. label="通知单数量"/>
  526. <el-table-column
  527. prop="shipQty"
  528. header-align="center"
  529. align="right"
  530. width="120"
  531. label="发货数量"/>
  532. <el-table-column
  533. prop="allNum"
  534. header-align="center"
  535. align="right"
  536. width="120"
  537. label="扫描数量">
  538. <template slot-scope="{row}">
  539. {{row.allNum?row.allNum:0}}
  540. </template>
  541. </el-table-column>
  542. <el-table-column
  543. prop="umid"
  544. header-align="center"
  545. align="left"
  546. width="120"
  547. label="销售计量单位"/>
  548. <el-table-column
  549. prop="orderNo"
  550. header-align="center"
  551. align="left"
  552. width="120"
  553. label="销售订单号"/>
  554. <el-table-column
  555. prop="itemNo"
  556. header-align="center"
  557. align="left"
  558. width="120"
  559. label="订单序号"/>
  560. <el-table-column
  561. prop="customerPONo"
  562. header-align="center"
  563. align="left"
  564. width="150"
  565. label="客户采购订单号"/>
  566. <el-table-column
  567. prop="orderType"
  568. header-align="center"
  569. align="left"
  570. width="120"
  571. label="订单类型"/>
  572. <el-table-column
  573. prop="custPartNo"
  574. header-align="center"
  575. align="left"
  576. width="150"
  577. label="客户产品编号"/>
  578. <el-table-column
  579. prop="intSales"
  580. header-align="center"
  581. align="left"
  582. width="120"
  583. label="内部销售"/>
  584. <el-table-column
  585. prop="extSales"
  586. header-align="center"
  587. align="left"
  588. width="120"
  589. label="外部销售"/>
  590. <el-table-column
  591. prop="subOrderType"
  592. header-align="center"
  593. align="left"
  594. width="180"
  595. label="零部件订单类型"/>
  596. <el-table-column
  597. prop="techInfo"
  598. header-align="center"
  599. align="left"
  600. width="150"
  601. label="技术注意事项"/>
  602. <el-table-column
  603. prop="remark"
  604. header-align="center"
  605. align="left"
  606. show-overflow-tooltip
  607. width="180"
  608. label="备注"/>
  609. </el-table>
  610. </div>
  611. <!--检验弹框-->
  612. <el-dialog
  613. title="出货检验"
  614. :visible.sync="checkoutDelNotifyDetailDialogVisible"
  615. width="40%">
  616. <el-form :model="delNotifyDetail" label-position="top" label-width="120">
  617. <el-row :gutter="30">
  618. <el-col :span="10">
  619. <el-form-item label="通知单号">
  620. <el-input disabled v-model="delNotifyDetail.delNotifyNo" readonly></el-input>
  621. </el-form-item>
  622. </el-col>
  623. <el-col :span="12">
  624. <el-form-item label="工厂编号" prop="site">
  625. <el-select filterable disabled v-model="delNotifyDetail.site" readonly style="width: 100%">
  626. <el-option label="全部" value=""></el-option>
  627. <el-option label="1-沪声" value="1"></el-option>
  628. <el-option label="2-赫艾" value="2"></el-option>
  629. </el-select>
  630. </el-form-item>
  631. </el-col>
  632. <el-col :span="10">
  633. <el-form-item label="产品编码">
  634. <el-input disabled v-model="delNotifyDetail.partNo" readonly></el-input>
  635. </el-form-item>
  636. </el-col>
  637. <el-col :span="12">
  638. <el-form-item label="产品描述">
  639. <el-input disabled v-model="delNotifyDetail.partDescription" readonly></el-input>
  640. </el-form-item>
  641. </el-col>
  642. <el-col :span="10">
  643. <el-form-item label="通知单数量">
  644. <div class="right">
  645. <el-input disabled v-model="delNotifyDetail.notifyQty" type="number" readonly></el-input>
  646. </div>
  647. </el-form-item>
  648. </el-col>
  649. <el-col :span="12">
  650. <el-form-item label="发货数量">
  651. <div class="right">
  652. <el-input disabled v-model="delNotifyDetail.shipQty" type="number" readonly></el-input>
  653. </div>
  654. </el-form-item>
  655. </el-col>
  656. <el-col :span="10">
  657. <el-form-item label="销售订单">
  658. <el-input disabled v-model="delNotifyDetail.delNotifyNo" readonly></el-input>
  659. </el-form-item>
  660. </el-col>
  661. <el-col :span="12">
  662. <el-form-item label="客户采购订单">
  663. <el-input disabled v-model="delNotifyDetail.customerPONo" readonly></el-input>
  664. </el-form-item>
  665. </el-col>
  666. <el-col :span="10">
  667. <el-form-item label="内部销售">
  668. <el-input disabled v-model="delNotifyDetail.intSales" readonly></el-input>
  669. </el-form-item>
  670. </el-col>
  671. <el-col :span="12">
  672. <el-form-item label="外部销售">
  673. <el-input disabled v-model="delNotifyDetail.extSales" readonly></el-input>
  674. </el-form-item>
  675. </el-col>
  676. </el-row>
  677. </el-form>
  678. <span slot="footer" class="dialog-footer" style="text-align: center">
  679. <el-button type="primary" @click="updateDelNotifyDetailBtn('Y')"> </el-button>
  680. <el-button @click="updateDelNotifyDetailBtn('N')"> </el-button>
  681. </span>
  682. </el-dialog>
  683. <el-dialog :visible.sync="boxLabelVisible" v-drag :close-on-click-modal="false" title="打印外箱标签" width="800px">
  684. <!-- {{selectDelNotifyDetail}}-->
  685. <el-form :model="selectDelNotifyDetail" label-position="top" label-width="120">
  686. <el-row :gutter="20">
  687. <el-col :span="4">
  688. <el-form-item label="工厂编码">
  689. <el-input v-model="selectDelNotifyDetail.site" disabled></el-input>
  690. </el-form-item>
  691. </el-col>
  692. <el-col :span="6">
  693. <el-form-item label="通知单号">
  694. <el-input v-model="selectDelNotifyDetail.delNotifyNo" disabled></el-input>
  695. </el-form-item>
  696. </el-col>
  697. <el-col :span="4">
  698. <el-form-item label="通知单序号">
  699. <el-input v-model="selectDelNotifyDetail.delNotifyItemNo" disabled></el-input>
  700. </el-form-item>
  701. </el-col>
  702. </el-row>
  703. <el-row :gutter="20">
  704. <el-col :span="6">
  705. <el-form-item label="产品编码">
  706. <el-input v-model="selectDelNotifyDetail.partNo" disabled></el-input>
  707. </el-form-item>
  708. </el-col>
  709. <el-col :span="8">
  710. <el-form-item label="产品名称">
  711. <el-input v-model="selectDelNotifyDetail.partDesc" disabled></el-input>
  712. </el-form-item>
  713. </el-col>
  714. </el-row>
  715. <el-row :gutter="20">
  716. <el-col :span="4">
  717. <el-form-item label="发货数量" required>
  718. <el-input-number v-model="selectDelNotifyDetail.shipQty" :controls="false" :step="0" ></el-input-number>
  719. </el-form-item>
  720. </el-col>
  721. <el-col :span="4">
  722. <el-form-item label="每盒(袋)数量" required>
  723. <el-input-number v-model="selectDelNotifyDetail.qtyPerBag" :controls="false" :step="0" ></el-input-number>
  724. </el-form-item>
  725. </el-col>
  726. <el-col :span="4">
  727. <el-form-item label="每箱中的盒(袋)数" required>
  728. <el-input-number v-model="selectDelNotifyDetail.qtyPerBox" :controls="false" :step="0"></el-input-number>
  729. </el-form-item>
  730. </el-col>
  731. <el-col :span="4">
  732. <el-form-item label="每箱总数量">
  733. <el-input-number v-model="boxLabelTotalQty" disabled :controls="false" :step="0" :precision="0"></el-input-number>
  734. </el-form-item>
  735. </el-col>
  736. <el-col :span="4">
  737. <el-form-item label="箱数" required>
  738. <el-input-number v-model="boxNum" :controls="false" :step="0" :precision="0"></el-input-number>
  739. </el-form-item>
  740. </el-col>
  741. <el-col :span="4">
  742. <el-form-item label="末箱子余数" required>
  743. <el-input-number v-model="endBoxQty" :controls="false" :step="0" :precision="2"></el-input-number>
  744. </el-form-item>
  745. </el-col>
  746. </el-row>
  747. <fieldset>
  748. <legend>箱号信息:</legend>
  749. <el-row :gutter="30">
  750. <el-col :span="4">
  751. <el-form-item label="总箱数" required>
  752. <el-input-number v-model="selectDelNotifyDetail.printTotalBoxCount" :controls="false" :step="0" :precision="0"></el-input-number>
  753. </el-form-item>
  754. </el-col>
  755. <el-col :span="4">
  756. <el-form-item label="起始箱号" required>
  757. <el-input-number v-model="selectDelNotifyDetail.printBoxSeqNo" :controls="false" :step="0" :precision="0"></el-input-number>
  758. </el-form-item>
  759. </el-col>
  760. <el-col :span="4">
  761. <el-form-item label="箱数" required>
  762. <el-input-number v-model="boxNum" :controls="false" :step="0" :precision="0"></el-input-number>
  763. </el-form-item>
  764. </el-col>
  765. <el-col :span="4">
  766. <el-form-item label="散箱箱号" required>
  767. <el-input-number v-model="scatteredBoxNo" :controls="false" :step="0" :precision="0"></el-input-number>
  768. </el-form-item>
  769. </el-col>
  770. </el-row>
  771. </fieldset>
  772. </el-form>
  773. <span slot="footer" class="dialog-footer" style="text-align: center">
  774. <el-button type="primary" @click="printBoxLabel">打印</el-button>
  775. <el-button @click="boxLabelVisible = false">取消</el-button>
  776. </span>
  777. </el-dialog>
  778. <scan-form :is-report="true" :scan-flag.sync="scanFlag" @changeAllNum="changeAllNum" :all-num="allNum" :notify-qty="notifyQty" :detail="delNotifyDetail"></scan-form>
  779. </div>
  780. </template>
  781. <style scoped>
  782. .el-select-dropdown__item{
  783. font-size: 18px;
  784. }
  785. .right /deep/ .el-input--medium .el-input__inner{
  786. text-align: right;
  787. }
  788. </style>