赫艾前端
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.

831 lines
29 KiB

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