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

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