plm前端
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.

1218 lines
45 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. <script>
  2. import {
  3. deleteQuotationDetail,
  4. insertQuotationDetail,
  5. searchQuotationDetailPageByHeaderId, updateQuotationDetail
  6. } from "../../../../api/quotation/quotationHeader";
  7. import {getProjectPart, getProjectPartList} from "../../../../api/project/project";
  8. import ToolQuotation from "./quotationDetail/toolQuotation.vue";
  9. import PropertyTemplates from "./quotationDetail/propertyTemplates.vue";
  10. import CostPrice from "./quotationDetail/costPrice.vue";
  11. import BillOfMateriel from "./quotationDetail/billOfMateriel.vue";
  12. import {Decimal} from "decimal.js";
  13. import {searchQuoteBomHeader, searchQuoteBomList} from "../../../../api/quotation/quoteOfBom";
  14. import QuoteRouting from "./quotationDetail/quoteRouting.vue";
  15. import {searchQuoteRoutingHeader} from "../../../../api/quotation/quoteOfRouting";
  16. export default {
  17. name:'quoteDetail',
  18. components: {QuoteRouting, BillOfMateriel, CostPrice, PropertyTemplates, ToolQuotation},
  19. props:{
  20. header:{
  21. type:Object,
  22. request:true,
  23. },
  24. height:{
  25. type:Number,
  26. default:300,
  27. },
  28. },
  29. watch:{
  30. header:function (){
  31. this.initData()
  32. },
  33. update(){
  34. // 当bom触发修改版本时触发
  35. this.searchQuoteRoutingHeader();
  36. }
  37. },
  38. data(){
  39. const validateProductNo = (rule, value, callback) =>{
  40. if (this.quotationDetailFlag !== true && this.quotationLeadIntoDetailFlag !== true){
  41. return;
  42. }
  43. if (value === '' || value === null || value === undefined){
  44. callback(new Error(' '))
  45. return
  46. }
  47. let params = {...this.projectPartData}
  48. params.testPartNo = value
  49. getProjectPart(params).then(({data})=>{
  50. if (data && data.rows.length >= 1){
  51. callback()
  52. }else {
  53. this.projectPartData.testPartNo = undefined;
  54. this.$message.error("产品编码不存在!")
  55. callback(new Error(" "))
  56. }
  57. }).catch((error)=>{
  58. this.projectPartData.testPartNo = undefined
  59. callback(new Error(' '))
  60. })
  61. };
  62. return{
  63. allSearchFlagBom:false,
  64. allSearchFlagRouting:false,
  65. BOMCost:0,
  66. ToolCost:0,
  67. machineCost:0,
  68. laborCost:0,
  69. manufacturingCost:0,
  70. packInfoCost:0,
  71. shippingInfoCost:0,
  72. loadingStatus:false,
  73. update:0,
  74. index:'',
  75. insertQuotationDetailLoading:false,
  76. projectPartDialogFlag:false,
  77. quotationLeadIntoDetailFlag:false,
  78. initQuotationDetailLoading:false,
  79. quotationDetailFlag:false,
  80. editQuotationDetailLoading:false,
  81. no: 1,//当前页
  82. size: 50,//每页条数
  83. total: 0,//总条数
  84. tableData:[],
  85. projectPartTable:[],
  86. columnList: [
  87. {
  88. userId: this.$store.state.user.name,
  89. functionId: 102003,
  90. serialNumber: '102003Table2ProductNo',
  91. tableId: '102003Table2',
  92. tableName: '报价详情信息表',
  93. columnProp: 'productNo',
  94. headerAlign: 'center',
  95. align: 'left',
  96. columnLabel: '产品编码',
  97. columnHidden: false,
  98. columnImage: false,
  99. columnSortable: false,
  100. sortLv: 0,
  101. status: true,
  102. fixed: '',
  103. columnWidth: 200
  104. },
  105. {
  106. userId: this.$store.state.user.name,
  107. functionId: 102003,
  108. serialNumber: '102003Table2ProductDesc',
  109. tableId: '102003Table2',
  110. tableName: '报价详情信息表',
  111. columnProp: 'productDesc',
  112. headerAlign: 'center',
  113. align: 'left',
  114. columnLabel: '产品名称',
  115. columnHidden: false,
  116. columnImage: false,
  117. columnSortable: false,
  118. sortLv: 0,
  119. status: true,
  120. fixed: '',
  121. columnWidth: 200
  122. },
  123. {
  124. userId: this.$store.state.user.name,
  125. functionId: 102003,
  126. serialNumber: '102003Table2QuotationDetailQuantity',
  127. tableId: '102003Table2',
  128. tableName: '报价详情信息表',
  129. columnProp: 'quotationDetailQuantity',
  130. headerAlign: 'center',
  131. align: 'right',
  132. columnLabel: '报价数量',
  133. columnHidden: false,
  134. columnImage: false,
  135. columnSortable: false,
  136. sortLv: 0,
  137. status: true,
  138. fixed: '',
  139. columnWidth: 100
  140. },
  141. {
  142. userId: this.$store.state.user.name,
  143. functionId: 102003,
  144. serialNumber: '102003Table2ComputePartCost',
  145. tableId: '102003Table2',
  146. tableName: '报价详情信息表',
  147. columnProp: 'computePartCost',
  148. headerAlign: 'center',
  149. align: 'right',
  150. columnLabel: '计算后材料成本',
  151. columnHidden: false,
  152. columnImage: false,
  153. columnSortable: false,
  154. sortLv: 0,
  155. status: true,
  156. fixed: '',
  157. columnWidth: 120
  158. },{
  159. userId: this.$store.state.user.name,
  160. functionId: 102003,
  161. serialNumber: '102003Table2ComputeMachineCost',
  162. tableId: '102003Table2',
  163. tableName: '报价详情信息表',
  164. columnProp: 'computeMachineCost',
  165. headerAlign: 'center',
  166. align: 'right',
  167. columnLabel: '计算后机器成本',
  168. columnHidden: false,
  169. columnImage: false,
  170. columnSortable: false,
  171. sortLv: 0,
  172. status: true,
  173. fixed: '',
  174. columnWidth: 120
  175. },{
  176. userId: this.$store.state.user.name,
  177. functionId: 102003,
  178. serialNumber: '102003Table2ComputeLabourCost',
  179. tableId: '102003Table2',
  180. tableName: '报价详情信息表',
  181. columnProp: 'computeLabourCost',
  182. headerAlign: 'center',
  183. align: 'right',
  184. columnLabel: '计算后人工成本',
  185. columnHidden: false,
  186. columnImage: false,
  187. columnSortable: false,
  188. sortLv: 0,
  189. status: true,
  190. fixed: '',
  191. columnWidth: 120
  192. },
  193. {
  194. userId: this.$store.state.user.name,
  195. functionId: 102003,
  196. serialNumber: '102003Table2ComputeFabricateCost',
  197. tableId: '102003Table2',
  198. tableName: '报价详情信息表',
  199. columnProp: 'computeFabricateCost',
  200. headerAlign: 'center',
  201. align: 'right',
  202. columnLabel: '计算后制造费用',
  203. columnHidden: false,
  204. columnImage: false,
  205. columnSortable: false,
  206. sortLv: 0,
  207. status: true,
  208. fixed: '',
  209. columnWidth: 120
  210. },
  211. {
  212. userId: this.$store.state.user.name,
  213. functionId: 102003,
  214. serialNumber: '102003Table2ComputeToolCost',
  215. tableId: '102003Table2',
  216. tableName: '报价详情信息表',
  217. columnProp: 'computeToolCost',
  218. headerAlign: 'center',
  219. align: 'right',
  220. columnLabel: '计算后工具成本',
  221. columnHidden: false,
  222. columnImage: false,
  223. columnSortable: false,
  224. sortLv: 0,
  225. status: true,
  226. fixed: '',
  227. columnWidth: 120
  228. },
  229. {
  230. userId: this.$store.state.user.name,
  231. functionId: 102003,
  232. serialNumber: '102003Table2AdjustPartCost',
  233. tableId: '102003Table2',
  234. tableName: '报价详情信息表',
  235. columnProp: 'adjustPartCost',
  236. headerAlign: 'center',
  237. align: 'right',
  238. columnLabel: '调整后材料成本',
  239. columnHidden: false,
  240. columnImage: false,
  241. columnSortable: false,
  242. sortLv: 0,
  243. status: true,
  244. fixed: '',
  245. columnWidth: 120
  246. },
  247. {
  248. userId: this.$store.state.user.name,
  249. functionId: 102003,
  250. serialNumber: '102003Table2AdjustMachineCost',
  251. tableId: '102003Table2',
  252. tableName: '报价详情信息表',
  253. columnProp: 'adjustMachineCost',
  254. headerAlign: 'center',
  255. align: 'right',
  256. columnLabel: '调整后机器成本',
  257. columnHidden: false,
  258. columnImage: false,
  259. columnSortable: false,
  260. sortLv: 0,
  261. status: true,
  262. fixed: '',
  263. columnWidth: 120
  264. },
  265. {
  266. userId: this.$store.state.user.name,
  267. functionId: 102003,
  268. serialNumber: '102003Table2AdjustLabourCost',
  269. tableId: '102003Table2',
  270. tableName: '报价详情信息表',
  271. columnProp: 'adjustLabourCost',
  272. headerAlign: 'center',
  273. align: 'right',
  274. columnLabel: '调整后人工成本',
  275. columnHidden: false,
  276. columnImage: false,
  277. columnSortable: false,
  278. sortLv: 0,
  279. status: true,
  280. fixed: '',
  281. columnWidth: 120
  282. },
  283. {
  284. userId: this.$store.state.user.name,
  285. functionId: 102003,
  286. serialNumber: '102003Table2AdjustFabricateCost',
  287. tableId: '102003Table2',
  288. tableName: '报价详情信息表',
  289. columnProp: 'adjustFabricateCost',
  290. headerAlign: 'center',
  291. align: 'right',
  292. columnLabel: '调整后制造费用',
  293. columnHidden: false,
  294. columnImage: false,
  295. columnSortable: false,
  296. sortLv: 0,
  297. status: true,
  298. fixed: '',
  299. columnWidth: 120
  300. },{
  301. userId: this.$store.state.user.name,
  302. functionId: 102003,
  303. serialNumber: '102003Table2AdjustToolCost',
  304. tableId: '102003Table2',
  305. tableName: '报价详情信息表',
  306. columnProp: 'adjustToolCost',
  307. headerAlign: 'center',
  308. align: 'right',
  309. columnLabel: '调整后工具成本',
  310. columnHidden: false,
  311. columnImage: false,
  312. columnSortable: false,
  313. sortLv: 0,
  314. status: true,
  315. fixed: '',
  316. columnWidth: 120
  317. },{
  318. userId: this.$store.state.user.name,
  319. functionId: 102003,
  320. serialNumber: '102003Table2DetailOtherCost',
  321. tableId: '102003Table2',
  322. tableName: '报价详情信息表',
  323. columnProp: 'detailOtherCost',
  324. headerAlign: 'center',
  325. align: 'right',
  326. columnLabel: '其他成本',
  327. columnHidden: false,
  328. columnImage: false,
  329. columnSortable: false,
  330. sortLv: 0,
  331. status: true,
  332. fixed: '',
  333. columnWidth: 120
  334. },{
  335. userId: this.$store.state.user.name,
  336. functionId: 102003,
  337. serialNumber: '102003Table2DetailManageCost',
  338. tableId: '102003Table2',
  339. tableName: '报价详情信息表',
  340. columnProp: 'detailManageCost',
  341. headerAlign: 'center',
  342. align: 'right',
  343. columnLabel: '管理成本',
  344. columnHidden: false,
  345. columnImage: false,
  346. columnSortable: false,
  347. sortLv: 0,
  348. status: true,
  349. fixed: '',
  350. columnWidth: 120
  351. },{
  352. userId: this.$store.state.user.name,
  353. functionId: 102003,
  354. serialNumber: '102003Table2DetailTotalCost',
  355. tableId: '102003Table2',
  356. tableName: '报价详情信息表',
  357. columnProp: 'detailTotalCost',
  358. headerAlign: 'center',
  359. align: 'right',
  360. columnLabel: '总成本',
  361. columnHidden: false,
  362. columnImage: false,
  363. columnSortable: false,
  364. sortLv: 0,
  365. status: true,
  366. fixed: '',
  367. columnWidth: 120
  368. },{
  369. userId: this.$store.state.user.name,
  370. functionId: 102003,
  371. serialNumber: '102003Table2DetailProfitRate',
  372. tableId: '102003Table2',
  373. tableName: '报价详情信息表',
  374. columnProp: 'detailProfitRate',
  375. headerAlign: 'center',
  376. align: 'right',
  377. columnLabel: '利润率%',
  378. columnHidden: false,
  379. columnImage: false,
  380. columnSortable: false,
  381. sortLv: 0,
  382. status: true,
  383. fixed: '',
  384. columnWidth: 120
  385. },{
  386. userId: this.$store.state.user.name,
  387. functionId: 102003,
  388. serialNumber: '102003Table2DetailProfitAmount',
  389. tableId: '102003Table2',
  390. tableName: '报价详情信息表',
  391. columnProp: 'detailProfitAmount',
  392. headerAlign: 'center',
  393. align: 'right',
  394. columnLabel: '利润额',
  395. columnHidden: false,
  396. columnImage: false,
  397. columnSortable: false,
  398. sortLv: 0,
  399. status: true,
  400. fixed: '',
  401. columnWidth: 120
  402. },{
  403. userId: this.$store.state.user.name,
  404. functionId: 102003,
  405. serialNumber: '102003Table2FinalUntaxedPrice',
  406. tableId: '102003Table2',
  407. tableName: '报价详情信息表',
  408. columnProp: 'finalUntaxedPrice',
  409. headerAlign: 'center',
  410. align: 'right',
  411. columnLabel: '未税单价',
  412. columnHidden: false,
  413. columnImage: false,
  414. columnSortable: false,
  415. sortLv: 0,
  416. status: true,
  417. fixed: '',
  418. columnWidth: 120
  419. },{
  420. userId: this.$store.state.user.name,
  421. functionId: 102003,
  422. serialNumber: '102003Table2TaxRate',
  423. tableId: '102003Table2',
  424. tableName: '报价详情信息表',
  425. columnProp: 'taxRate',
  426. headerAlign: 'center',
  427. align: 'right',
  428. columnLabel: '税率%',
  429. columnHidden: false,
  430. columnImage: false,
  431. columnSortable: false,
  432. sortLv: 0,
  433. status: true,
  434. fixed: '',
  435. columnWidth: 120
  436. },{
  437. userId: this.$store.state.user.name,
  438. functionId: 102003,
  439. serialNumber: '102003Table2FinalTaxedPrice',
  440. tableId: '102003Table2',
  441. tableName: '报价详情信息表',
  442. columnProp: 'finalTaxedPrice',
  443. headerAlign: 'center',
  444. align: 'right',
  445. columnLabel: '含税单价',
  446. columnHidden: false,
  447. columnImage: false,
  448. columnSortable: false,
  449. sortLv: 0,
  450. status: true,
  451. fixed: '',
  452. columnWidth: 120
  453. },{
  454. userId: this.$store.state.user.name,
  455. functionId: 102003,
  456. serialNumber: '102003Table2SystemComputePrice',
  457. tableId: '102003Table2',
  458. tableName: '报价详情信息表',
  459. columnProp: 'systemComputePrice',
  460. headerAlign: 'center',
  461. align: 'right',
  462. columnLabel: '含税总价',
  463. columnHidden: false,
  464. columnImage: false,
  465. columnSortable: false,
  466. sortLv: 0,
  467. status: true,
  468. fixed: '',
  469. columnWidth: 120
  470. },{
  471. userId: this.$store.state.user.name,
  472. functionId: 102003,
  473. serialNumber: '102003Table2QuotationDetailStatus',
  474. tableId: '102003Table2',
  475. tableName: '报价详情信息表',
  476. columnProp: 'quotationDetailStatus',
  477. headerAlign: 'center',
  478. align: 'center',
  479. columnLabel: '状态',
  480. columnHidden: false,
  481. columnImage: false,
  482. columnSortable: false,
  483. sortLv: 0,
  484. status: true,
  485. fixed: '',
  486. columnWidth: 120
  487. },{
  488. userId: this.$store.state.user.name,
  489. functionId: 102003,
  490. serialNumber: '102003Table2Remark',
  491. tableId: '102003Table2',
  492. tableName: '报价详情信息表',
  493. columnProp: 'remark',
  494. headerAlign: 'center',
  495. align: 'left',
  496. columnLabel: '备注',
  497. columnHidden: false,
  498. columnImage: false,
  499. columnSortable: false,
  500. sortLv: 0,
  501. status: true,
  502. fixed: '',
  503. columnWidth: 120
  504. },{
  505. userId: this.$store.state.user.name,
  506. functionId: 102003,
  507. serialNumber: '102003Table2InternalInquiryNo',
  508. tableId: '102003Table2',
  509. tableName: '报价详情信息表',
  510. columnProp: 'internalInquiryNo',
  511. headerAlign: 'center',
  512. align: 'left',
  513. columnLabel: '询价单号',
  514. columnHidden: false,
  515. columnImage: false,
  516. columnSortable: false,
  517. sortLv: 0,
  518. status: true,
  519. fixed: '',
  520. columnWidth: 120
  521. },
  522. // {
  523. // userId: this.$store.state.user.name,
  524. // functionId: 102003,
  525. // serialNumber: '102003Table2QuotationDetailCount',
  526. // tableId: '102003Table2',
  527. // tableName: '报价详情信息表',
  528. // columnProp: 'quotationDetailCount',
  529. // headerAlign: 'center',
  530. // align: 'right',
  531. // columnLabel: '报价次数',
  532. // columnHidden: false,
  533. // columnImage: false,
  534. // columnSortable: false,
  535. // sortLv: 0,
  536. // status: true,
  537. // fixed: '',
  538. // columnWidth: 120
  539. // },
  540. ],
  541. projectPartDetailList: [
  542. {
  543. userId: this.$store.state.user.name,
  544. functionId: 102003,
  545. serialNumber: '102003Table3TestPartNo',
  546. tableId: '102003Table3',
  547. tableName: '项目物料表',
  548. columnProp: 'testPartNo',
  549. headerAlign: 'center',
  550. align: 'center',
  551. columnLabel: '产品编码',
  552. columnHidden: false,
  553. columnImage: false,
  554. columnSortable: false,
  555. sortLv: 0,
  556. status: true,
  557. fixed: '',
  558. columnWidth: 150
  559. },
  560. {
  561. userId: this.$store.state.user.name,
  562. functionId: 102003,
  563. serialNumber: '102003Table3PartDesc',
  564. tableId: '102003Table3',
  565. tableName: '项目物料表',
  566. columnProp: 'partDesc',
  567. headerAlign: 'center',
  568. align: 'center',
  569. columnLabel: '产品名称',
  570. columnHidden: false,
  571. columnImage: false,
  572. columnSortable: false,
  573. sortLv: 0,
  574. status: true,
  575. fixed: '',
  576. columnWidth: 120
  577. },{
  578. userId: this.$store.state.user.name,
  579. functionId: 102003,
  580. serialNumber: '102003Table3PartSpec',
  581. tableId: '102003Table3',
  582. tableName: '项目物料表',
  583. columnProp: 'partSpec',
  584. headerAlign: 'center',
  585. align: 'center',
  586. columnLabel: '产品规格',
  587. columnHidden: false,
  588. columnImage: false,
  589. columnSortable: false,
  590. sortLv: 0,
  591. status: true,
  592. fixed: '',
  593. columnWidth: 120
  594. },{
  595. userId: this.$store.state.user.name,
  596. functionId: 102003,
  597. serialNumber: '102003Table3PartTypeDesc',
  598. tableId: '102003Table3',
  599. tableName: '项目物料表',
  600. columnProp: 'partTypeDesc',
  601. headerAlign: 'center',
  602. align: 'center',
  603. columnLabel: '产品类型',
  604. columnHidden: false,
  605. columnImage: false,
  606. columnSortable: false,
  607. sortLv: 0,
  608. status: true,
  609. fixed: '',
  610. columnWidth: 120
  611. }, {
  612. userId: this.$store.state.user.name,
  613. functionId: 102001,
  614. serialNumber: '102001Table3Type',
  615. tableId: '102001Table3',
  616. tableName: '项目物料表',
  617. columnProp: 'type',
  618. headerAlign: 'center',
  619. align: 'center',
  620. columnLabel: '制造类型',
  621. columnHidden: false,
  622. columnImage: false,
  623. columnSortable: false,
  624. sortLv: 0,
  625. status: true,
  626. fixed: '',
  627. columnWidth: 120
  628. },
  629. {
  630. userId: this.$store.state.user.name,
  631. functionId: 102001,
  632. serialNumber: '102001Table3UmId',
  633. tableId: '102001Table3',
  634. tableName: '项目物料表',
  635. columnProp: 'umId',
  636. headerAlign: 'center',
  637. align: 'center',
  638. columnLabel: '单位',
  639. columnHidden: false,
  640. columnImage: false,
  641. columnSortable: false,
  642. sortLv: 0,
  643. status: true,
  644. fixed: '',
  645. columnWidth: 100
  646. },
  647. {
  648. userId: this.$store.state.user.name,
  649. functionId: 102003,
  650. serialNumber: '102003Table3CodeNo',
  651. tableId: '102003Table3',
  652. tableName: '项目物料表',
  653. columnProp: 'codeNo',
  654. headerAlign: 'center',
  655. align: 'center',
  656. columnLabel: '模板编码',
  657. columnHidden: false,
  658. columnImage: false,
  659. columnSortable: false,
  660. sortLv: 0,
  661. status: true,
  662. fixed: '',
  663. columnWidth: 120
  664. },{
  665. userId: this.$store.state.user.name,
  666. functionId: 102003,
  667. serialNumber: '102003Table3CodeDesc',
  668. tableId: '102003Table3',
  669. tableName: '项目物料表',
  670. columnProp: 'codeDesc',
  671. headerAlign: 'center',
  672. align: 'center',
  673. columnLabel: '模板名称',
  674. columnHidden: false,
  675. columnImage: false,
  676. columnSortable: false,
  677. sortLv: 0,
  678. status: true,
  679. fixed: '',
  680. columnWidth: 120
  681. }
  682. ],
  683. //报价明细新增对象
  684. quotationDetail: {
  685. quotationDetailId: undefined,//主键
  686. quotationHeaderId: undefined,//父编号
  687. site: this.$store.state.user.site,// 工厂编号
  688. productNo: undefined,//产品编码
  689. productDesc: undefined,//产品名称
  690. quotationDetailQuantity: 1,//报价数量
  691. internalInquiryNo: undefined,//内部询价单号
  692. itemNo:0,//序号
  693. quotationDetailStatus: "草稿",//报价状态
  694. taxRate: 13,//税率
  695. remark: undefined,//备注
  696. flag:false
  697. },
  698. projectPartData:{
  699. site:this.$store.state.user.site,
  700. testPartNo:undefined,// 项目编号
  701. partDesc:undefined,// 项目名称
  702. },
  703. fullscreen:false,
  704. // 报价明细 参数列表
  705. quotationDetailColumns: [
  706. {label: "productDesc", value: "产品名称"},
  707. {label: "quotationDetailQuantity", value: "报价数量"},
  708. {label: "internalInquiryNo", value: "内部询价单号"},
  709. {label: "quotationDetailStatus", value: "报价状态"},
  710. {label: "itemNo", value: "序号"},
  711. {label: "adjustPartCost", value: "调整后的材料成本"},
  712. {label: "adjustMachineCost", value: "调整后的机器成本"},
  713. {label: "adjustFabricateCost", value: "调整后的制造费用"},
  714. {label: "adjustLabourCost", value: "调整后人的工成本"},
  715. {label: "adjustToolCost", value: "调整后的工具成本"},
  716. {label: "detailManageCost", value: "管理成本"},
  717. {label: "detailOtherCost", value: "其他成本"},
  718. {label: "detailProfitRate", value: "利润率"},
  719. {label: "finalUntaxedPrice", value: "未税单价"},
  720. {label: "taxRate", value: "税率"},
  721. ],
  722. // 报价详情表单校验
  723. quotationDetailRules: {
  724. productNo: [{required: true,validator:validateProductNo,trigger: 'change'}],
  725. productDesc: [{required: true, message: ' ', trigger: ['change','blur']}],
  726. quotationDetailStatus: [{required: true, message: ' ', trigger: 'change'}],
  727. internalInquiryNo: [{required: true, message: ' ', trigger: ['change','blur']}],
  728. itemNo:[{required: true, message: ' ', trigger: ['change','blur']}],
  729. quotationDetailQuantity: [{required: true, message: ' ', trigger: ['change','blur']}],
  730. },
  731. activeName:'bom',
  732. }
  733. },
  734. methods:{
  735. // 报价详情size 改变
  736. detailSizeChange(val) {
  737. this.size = val;
  738. this.initData();
  739. },
  740. // 报价详情 页码
  741. detailCurrentChange(val) {
  742. this.no = val;
  743. this.initData();
  744. },
  745. // 查询报价明细
  746. initData() {
  747. let params = {
  748. no: this.no,
  749. size: this.size,
  750. quotationHeaderId: this.header.quotationHeaderId
  751. }
  752. this.tableData = [];
  753. this.initQuotationDetailLoading = true;
  754. searchQuotationDetailPageByHeaderId(params).then(({data}) => {
  755. this.initQuotationDetailLoading = false;
  756. if (data && data.code === 200) {
  757. this.tableData = data.data.records;
  758. this.total = data.data.total;
  759. }else {
  760. this.tableData = [];
  761. this.total = 0;
  762. }
  763. }).catch((error)=>{
  764. this.initQuotationDetailLoading = false;
  765. })
  766. },
  767. // 修改 报价详情
  768. editQuotationDetail(row,index) {
  769. if (index < 10){
  770. this.index = "00"+index;
  771. }else if (index%10 <= 10){
  772. this.index = "0"+index;
  773. }else if (index%100 <= 10){
  774. this.index = index
  775. }
  776. this.quotationDetail = JSON.parse(JSON.stringify(row));
  777. this.quotationDetailFlag = true;
  778. },
  779. // 删除 报价明细
  780. deleteQuotationDetailData(row){
  781. this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
  782. confirmButtonText: '确定',
  783. cancelButtonText: '取消',
  784. type: 'warning'
  785. }).then(() => {
  786. deleteQuotationDetail(row).then(({data})=>{
  787. if (data.code === 200){
  788. this.initData();
  789. this.$message.success(data.msg);
  790. }else {
  791. this.$message.error(data.msg);
  792. }
  793. })
  794. })
  795. },
  796. openInsertQuotationDetail() {
  797. this.quotationDetail.quotationHeaderId = this.header.quotationHeaderId;
  798. this.quotationDetail.internalInquiryNo = this.header.internalInquiryNo;
  799. },
  800. closeInsertQuotationDetail() {
  801. this.$refs['insertQuotationDetailForm'].resetFields();
  802. this.resetQuotationDetail();
  803. },
  804. resetQuotationDetail(){
  805. this.quotationDetail = {
  806. quotationDetailId: undefined,//主键
  807. quotationHeaderId: undefined,//父编号
  808. site: this.$store.state.user.site,// 工厂编号
  809. productNo: undefined,//产品编码
  810. productDesc: undefined,//产品名称
  811. quotationDetailQuantity: 1,//报价数量
  812. internalInquiryNo: undefined,//内部询价单号
  813. itemNo:0,//序号
  814. quotationDetailStatus: "草稿",//报价状态
  815. taxRate: 13,//税率
  816. remark: undefined,//备注
  817. flag:false
  818. };
  819. },
  820. insertQuotationDetailBtn() {
  821. this.$refs['insertQuotationDetailForm'].validate((validate, objects) => {
  822. if (validate) {
  823. this.insertQuotationDetailLoading = true;
  824. insertQuotationDetail(this.quotationDetail).then(({data}) => {
  825. this.insertQuotationDetailLoading = false;
  826. if (data.code === 200) {
  827. // 保存成功后
  828. if (this.quotationDetail.flag) {
  829. this.$nextTick(()=>{
  830. this.quotationDetail = JSON.parse(JSON.stringify(data.data));
  831. })
  832. this.quotationDetailFlag = true;
  833. }else {
  834. this.quotationLeadIntoDetailFlag = false;
  835. }
  836. this.initData();
  837. this.$message.success(data.msg);
  838. } else {
  839. this.$message.error(data.msg);
  840. }
  841. }).catch((error)=>{
  842. this.insertQuotationDetailLoading = false;
  843. })
  844. } else {
  845. this.rulesValidateLabel(objects, this.quotationDetailColumns);
  846. }
  847. })
  848. },
  849. // 校验处理
  850. rulesValidateLabel(objects, labels) {
  851. for (let filed in objects) {
  852. for (let i = 0; i < labels.length; i++) {
  853. let quotationToolColumn = labels[i];
  854. if (quotationToolColumn.label === filed) {
  855. this.$message.warning(quotationToolColumn.value+"为空或填写不正确");
  856. return
  857. }
  858. }
  859. }
  860. },
  861. closeProjectPartDialog(){
  862. this.projectPartData = {
  863. site:this.$store.state.user.site,
  864. testPartNo:undefined,// 项目编号
  865. partDesc:undefined,// 项目名称
  866. }
  867. this.projectPartTable = [];
  868. },
  869. openProjectPartDialog(){
  870. this.getProjectPartList();
  871. },
  872. getProjectPartList(){
  873. let params = {...this.projectPartData}
  874. params.projectId = this.header.projectId
  875. getProjectPartList(params).then(({data})=>{
  876. if (data && data.code === 0){
  877. this.projectPartTable = data.rows;
  878. }
  879. })
  880. },
  881. blurProjectHandle(){
  882. let params = {
  883. site:this.$store.state.user.site,
  884. testPartNo:this.quotationDetail.productNo,
  885. projectId: this.header.projectId
  886. }
  887. getProjectPartList(params).then(({data})=>{
  888. if (data && data.code === 0){
  889. if (data.rows && data.rows.length === 1){
  890. this.dblClickProjectPartTable(data.rows[0])
  891. }
  892. }
  893. })
  894. },
  895. // 项目物料双击事件
  896. dblClickProjectPartTable(row){
  897. this.quotationDetail.productNo = row.testPartNo;
  898. this.quotationDetail.productDesc = row.partDesc;
  899. this.projectPartDialogFlag = false;
  900. },
  901. closeDetailEditDialog(){
  902. this.activeName = 'bom'
  903. this.fullscreen = false;
  904. this.resetQuotationDetail();
  905. this.$refs.cost.restCostForm()
  906. // 关闭新增弹框
  907. this.quotationLeadIntoDetailFlag = false;
  908. },
  909. openQuotationDetail(){
  910. this.$nextTick(()=>{
  911. this.$refs.property.getPropertyTemplatesItem();// 属性
  912. this.$refs.tool.initQuotationToolData();//刀具
  913. this.searchQuoteBomList();//bom
  914. })
  915. },
  916. searchQuoteRoutingHeader(){
  917. let params = {
  918. site:this.$store.state.user.site,
  919. quoteDetailId:this.quotationDetail.quotationDetailId,
  920. testPartNo:this.quotationDetail.productNo
  921. }
  922. searchQuoteRoutingHeader(params).then(({data})=>{
  923. if (data && data.code === 0){
  924. let row = data.row
  925. let arr = [];
  926. if (row){
  927. arr[0] = row.version;
  928. arr[1] = row.alternativeNo;
  929. arr[2] = row.routingType;
  930. arr[3] = row.partNo;
  931. arr[4] = row.id;
  932. arr[5] = row.parentId;
  933. }
  934. this.$refs.routing.setSelectRouting(arr);
  935. }else {
  936. this.$message.warning(data.msg)
  937. }
  938. }).catch((error)=>{
  939. this.$message.error(error)
  940. })
  941. },
  942. searchQuoteBomList(){
  943. this.allSearchFlagBom = false;
  944. this.allSearchFlagRouting = false;
  945. let params = {
  946. site:this.$store.state.user.site,
  947. quoteDetailId:this.quotationDetail.quotationDetailId,
  948. testPartNo:this.quotationDetail.productNo
  949. }
  950. this.loadingStatus = true
  951. searchQuoteBomHeader(params).then(({data})=>{
  952. if (data && data.code === 0){
  953. let row = data.row
  954. let arr = [];
  955. if (row !== null){
  956. arr[0] = row.version;
  957. arr[1] = row.alternativeNo;
  958. arr[2] = row.bomType;
  959. arr[3] = row.partNo;
  960. arr[4] = row.id;
  961. arr[5] = row.parentId;
  962. }
  963. this.$refs.bom.setSelectBom(arr);
  964. this.searchQuoteRoutingHeader();// routing
  965. }else {
  966. this.$message.warning(data.msg)
  967. }
  968. }).catch((error)=>{
  969. this.$message.error(error)
  970. })
  971. },
  972. saveQuotationDetail(){
  973. if (!this.$refs.cost.ruleCostForm()) {
  974. return
  975. }
  976. let params = this.$refs.cost.getQuotationDetail();
  977. this.editQuotationDetailLoading = true;
  978. updateQuotationDetail(params).then(({data}) => {
  979. this.editQuotationDetailLoading = false;
  980. if (data.code === 200) {
  981. this.quotationDetailFlag = false;
  982. this.initData();
  983. this.$message.success(data.msg);
  984. } else {
  985. this.$message.warning(data.msg);
  986. }
  987. }).catch((error)=>{
  988. this.$message.error(error);
  989. this.editQuotationDetailLoading = false;
  990. })
  991. // this.$message.success(this.$refs.cost.getQuotationDetail())
  992. // this.quotationDetailFlag = false;
  993. },
  994. tabClick(tab){
  995. if (this.activeName === 'cost'){
  996. this.searchQuoteBomList();
  997. }
  998. },
  999. editQuotationDetailStatus(row,status){
  1000. let params = JSON.parse(JSON.stringify(row))
  1001. params.quotationDetailStatus = status;
  1002. updateQuotationDetail(params).then(({data}) => {
  1003. if (data.code === 200) {
  1004. this.initData();
  1005. this.$message.success(data.msg);
  1006. } else {
  1007. this.$message.warning(data.msg);
  1008. }
  1009. }).catch((error)=>{
  1010. this.$message.error(error);
  1011. })
  1012. },
  1013. clickProjectHandle(){
  1014. this.projectPartData.testPartNo = this.quotationDetail.productNo
  1015. this.projectPartDialogFlag = true
  1016. }
  1017. },
  1018. }
  1019. </script>
  1020. <template>
  1021. <div>
  1022. <div style="margin-bottom: 10px;padding-left: 10px">
  1023. <el-button type="primary" @click="quotationLeadIntoDetailFlag = true">新增</el-button>
  1024. </div>
  1025. <el-table v-loading="initQuotationDetailLoading" element-loading-text = "数据正在加载中"
  1026. element-loading-spinner = "el-icon-loading" :data="tableData" :height="height" border
  1027. :header-cell-style="{background:'rgba(23,179,163)',color:'#fff'}">
  1028. <el-table-column
  1029. label="操作"
  1030. fixed
  1031. width="120" align="center">
  1032. <template slot-scope="{row,$index}">
  1033. <el-link style="cursor: pointer" v-if="row.quotationDetailStatus !== '下达'" @click="editQuotationDetailStatus(row,'下达')">下达</el-link>
  1034. <el-link style="cursor: pointer" @click="editQuotationDetail(row,$index+1)">编辑</el-link>
  1035. <el-link style="cursor: pointer" @click="deleteQuotationDetailData(row)">删除</el-link>
  1036. </template>
  1037. </el-table-column>
  1038. <el-table-column
  1039. header-align="center"
  1040. label="序号"
  1041. width="55"
  1042. align="center"
  1043. type="index">
  1044. </el-table-column>
  1045. <el-table-column
  1046. v-for="(item,index) in columnList" :key="index"
  1047. :sortable="item.columnSortable"
  1048. :prop="item.columnProp"
  1049. :header-align="item.headerAlign"
  1050. :show-overflow-tooltip="item.showOverflowTooltip"
  1051. :align="item.align"
  1052. :fixed="item.fixed===''?false:item.fixed"
  1053. :min-width="item.columnWidth"
  1054. :label="item.columnLabel">
  1055. <template slot-scope="scope" >
  1056. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp]}}</span>
  1057. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  1058. </template>
  1059. </el-table-column>
  1060. </el-table>
  1061. <el-pagination style="margin-top: 0px"
  1062. @size-change="detailSizeChange"
  1063. @current-change="detailCurrentChange"
  1064. :current-page="no"
  1065. :page-sizes="[ 50, 100, 200, 500]"
  1066. :page-size="size"
  1067. :total="total"
  1068. layout="total,sizes, prev, pager, next, jumper">
  1069. </el-pagination>
  1070. <el-dialog title="新增报价明细" v-drag @open="openInsertQuotationDetail" @close="closeInsertQuotationDetail"
  1071. :visible.sync="quotationLeadIntoDetailFlag" width="40%" :close-on-click-modal="false">
  1072. <el-form :model="quotationDetail" ref="insertQuotationDetailForm" :rules="quotationDetailRules"
  1073. label-position="top">
  1074. <el-row :gutter="10">
  1075. <el-col :span="8">
  1076. <el-form-item label="产品编码" prop="productNo">
  1077. <span slot="label" style="" @click="clickProjectHandle"><a>产品编码</a></span>
  1078. <el-input v-model="quotationDetail.productNo" @blur="blurProjectHandle" clearable/>
  1079. </el-form-item>
  1080. </el-col>
  1081. <el-col :span="14">
  1082. <el-form-item label="产品名称" prop="productDesc">
  1083. <el-input v-model="quotationDetail.productDesc" disabled clearable/>
  1084. </el-form-item>
  1085. </el-col>
  1086. </el-row>
  1087. <el-row :gutter="10">
  1088. <el-col :span="8">
  1089. <el-form-item label="报价数量" prop="quotationDetailQuantity">
  1090. <el-input-number style="width: 100%;margin-top: -5px;" :min="1" v-model="quotationDetail.quotationDetailQuantity" :controls="false"></el-input-number>
  1091. </el-form-item>
  1092. </el-col>
  1093. </el-row>
  1094. <el-row>
  1095. <el-col :span="22">
  1096. <el-form-item label="">
  1097. <el-checkbox v-model="quotationDetail.flag">保存进入报价界面</el-checkbox>
  1098. </el-form-item>
  1099. </el-col>
  1100. </el-row>
  1101. <el-row>
  1102. <el-col :span="22">
  1103. <el-form-item label="备注" style="display: block;min-height: 80px" prop="remark">
  1104. <el-input type="textarea" resize="none" v-model="quotationDetail.remark" :autosize="{minRows: 3, maxRows: 3}"
  1105. style="min-height: 80px"/>
  1106. </el-form-item>
  1107. </el-col>
  1108. </el-row>
  1109. </el-form>
  1110. <div slot="footer" class="dialog-footer" style="margin-top: 20px">
  1111. <el-button type="primary" :loading="insertQuotationDetailLoading" @click="insertQuotationDetailBtn"> </el-button>
  1112. <el-button @click="quotationLeadIntoDetailFlag = false"> </el-button>
  1113. </div>
  1114. </el-dialog>
  1115. <el-dialog v-drag :fullscreen="fullscreen" :visible.sync="quotationDetailFlag" @open="openQuotationDetail" @close="closeDetailEditDialog"
  1116. width="60%" top="10vh" :close-on-click-modal="false">
  1117. <div slot="title" class="medium">
  1118. <div>
  1119. <span class="el-dialog__title">报价单号 {{this.header.quotationNo+"-"+this.header.versionCode+"-"+index}}</span>
  1120. <span style="float: right;margin-right: 30px;cursor:pointer;" @click="fullscreen = !fullscreen">
  1121. <svg v-if="!fullscreen" t="1710144122404" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4774" width="16" height="16"><path d="M145.066667 85.333333h153.6c25.6 0 42.666667-17.066667 42.666666-42.666666S324.266667 0 298.666667 0H34.133333C25.6 0 17.066667 8.533333 8.533333 17.066667 0 25.6 0 34.133333 0 42.666667v256c0 25.6 17.066667 42.666667 42.666667 42.666666s42.666667-17.066667 42.666666-42.666666V145.066667l230.4 230.4c17.066667 17.066667 42.666667 17.066667 59.733334 0 17.066667-17.066667 17.066667-42.666667 0-59.733334L145.066667 85.333333z m170.666666 563.2L162.133333 802.133333l-76.8 76.8V725.333333C85.333333 699.733333 68.266667 682.666667 42.666667 682.666667s-42.666667 17.066667-42.666667 42.666666v256c0 25.6 17.066667 42.666667 42.666667 42.666667h256c25.6 0 42.666667-17.066667 42.666666-42.666667s-17.066667-42.666667-42.666666-42.666666H145.066667l76.8-76.8 153.6-153.6c17.066667-17.066667 17.066667-42.666667 0-59.733334-17.066667-17.066667-42.666667-17.066667-59.733334 0z m665.6 34.133334c-25.6 0-42.666667 17.066667-42.666666 42.666666v153.6l-76.8-76.8-153.6-153.6c-17.066667-17.066667-42.666667-17.066667-59.733334 0-17.066667 17.066667-17.066667 42.666667 0 59.733334l153.6 153.6 76.8 76.8H725.333333c-25.6 0-42.666667 17.066667-42.666666 42.666666s17.066667 42.666667 42.666666 42.666667h256c25.6 0 42.666667-17.066667 42.666667-42.666667v-256c0-25.6-17.066667-42.666667-42.666667-42.666666z m0-682.666667h-256c-25.6 0-42.666667 17.066667-42.666666 42.666667s17.066667 42.666667 42.666666 42.666666h153.6l-76.8 76.8-153.6 153.6c-17.066667 17.066667-17.066667 42.666667 0 59.733334 17.066667 17.066667 42.666667 17.066667 59.733334 0l153.6-153.6 76.8-76.8v153.6c0 25.6 17.066667 42.666667 42.666666 42.666666s42.666667-17.066667 42.666667-42.666666v-256c0-25.6-17.066667-42.666667-42.666667-42.666667z" fill="#8a8a8a" p-id="4775"></path></svg>
  1122. <svg v-else t="1710143735808" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4603" width="16" height="16"><path d="M354.133333 682.666667H256v-42.666667h170.666667v170.666667H384v-98.133334L243.2 853.333333l-29.866667-29.866666L354.133333 682.666667z m358.4 0l140.8 140.8-29.866666 29.866666-140.8-140.8V810.666667h-42.666667v-170.666667h170.666667v42.666667h-98.133334zM354.133333 384L213.333333 243.2l29.866667-29.866667L384 354.133333V256h42.666667v170.666667H256V384h98.133333z m358.4 0H810.666667v42.666667h-170.666667V256h42.666667v98.133333L823.466667 213.333333l29.866666 29.866667L712.533333 384z" fill="#444444" p-id="4604"></path></svg>
  1123. </span>
  1124. </div>
  1125. </div>
  1126. <el-form :rules="quotationDetailRules" style="margin-top: 5px" ref="quotationDetailForm"
  1127. :model="quotationDetail" label-width="80px" :inline="true" label-position="top">
  1128. <el-form-item label="产品编码" prop="productNo">
  1129. <el-input clearable disabled style="width: 200px" v-model="quotationDetail.productNo"/>
  1130. </el-form-item>
  1131. <el-form-item label="产品名称" prop="productDesc">
  1132. <el-input clearable disabled style="width: 240px" v-model="quotationDetail.productDesc"/>
  1133. </el-form-item>
  1134. <el-form-item label="报价数量" prop="quotationDetailQuantity">
  1135. <el-input-number disabled style="width: 100%;margin-top: -5px;" :min="1" v-model="quotationDetail.quotationDetailQuantity" :controls="false"></el-input-number>
  1136. </el-form-item>
  1137. <el-form-item label="备注" style="display: block;min-height: 90px;width: 63%">
  1138. <el-input type="textarea" resize="none" disabled v-model="quotationDetail.remark" :autosize="{minRows: 3, maxRows: 3}"
  1139. style="min-height: 80px" />
  1140. </el-form-item>
  1141. </el-form>
  1142. <el-tabs v-model="activeName" @tab-click="tabClick" :style="{height:`${fullscreen?740:500}px`}" border stripe>
  1143. <el-tab-pane name="bom" label="材料">
  1144. <bill-of-materiel ref="bom" :all-search-flag.sync="allSearchFlagBom" :total-cost.sync="BOMCost" :loading-status.sync="loadingStatus" :updateTree.sync="update" v-if="quotationDetailFlag" :height="fullscreen?655:415" :detail="quotationDetail"></bill-of-materiel>
  1145. </el-tab-pane>
  1146. <el-tab-pane name="routing" label="工艺">
  1147. <quote-routing ref="routing" :machine-cost.sync="machineCost" :labor-cost.sync="laborCost" :manufacturing-cost.sync="manufacturingCost" :all-search-flag.sync="allSearchFlagRouting" v-if="quotationDetailFlag" :loading-status.sync="loadingStatus" :height="fullscreen?655:415" :detail="quotationDetail"></quote-routing>
  1148. </el-tab-pane>
  1149. <el-tab-pane name="tool" label="工具">
  1150. <tool-quotation ref="tool" :total-cost.sync="ToolCost" v-if="quotationDetailFlag" :height="fullscreen?660:420" :detail="quotationDetail"></tool-quotation>
  1151. </el-tab-pane>
  1152. <el-tab-pane name="property" label="其他成本">
  1153. <property-templates ref="property" :pack-cost.sync="packInfoCost" :shipping-cost.sync="shippingInfoCost" v-if="quotationDetailFlag" :height="fullscreen?660:420" :detail="quotationDetail" ></property-templates>
  1154. </el-tab-pane>
  1155. <el-tab-pane name="cost" label="成本&价格">
  1156. <cost-price ref="cost" :tool-cost.sync="ToolCost"
  1157. :bom-cost.sync="BOMCost" :machine-cost.sync="machineCost"
  1158. :manufacturing-cost.sync="manufacturingCost"
  1159. :labor-cost.sync="laborCost"
  1160. :pack-cost.sync="packInfoCost" :shipping-cost.sync="shippingInfoCost"
  1161. :loading-status.sync="loadingStatus"
  1162. v-if="quotationDetailFlag"
  1163. :height="fullscreen?660:420"
  1164. :detail="quotationDetail"></cost-price>
  1165. </el-tab-pane>
  1166. </el-tabs>
  1167. <div slot="footer" style="padding-top: 10px">
  1168. <el-button type="primary" :loading="editQuotationDetailLoading" @click="saveQuotationDetail"> </el-button>
  1169. <el-button @click=" quotationDetailFlag= false"> </el-button>
  1170. </div>
  1171. </el-dialog>
  1172. <el-dialog v-drag title="产品列表" @close="closeProjectPartDialog" @open="openProjectPartDialog"
  1173. :visible.sync="projectPartDialogFlag">
  1174. <!--搜索条件-->
  1175. <el-form :model="projectPartData" ref="projectPartDataForm" :inline="true" label-position="top">
  1176. <el-form-item label="产品编号" prop="toolNo">
  1177. <el-input v-model="projectPartData.testPartNo" clearable/>
  1178. </el-form-item>
  1179. <el-form-item label="产品名称" prop="toolDescription">
  1180. <el-input v-model="projectPartData.partDesc" clearable/>
  1181. </el-form-item>
  1182. <el-form-item label=" ">
  1183. <el-button @click="getProjectPartList" type="primary"> </el-button>
  1184. </el-form-item>
  1185. </el-form>
  1186. <el-table height="300px" stripe border width="30%" @row-dblclick="dblClickProjectPartTable"
  1187. :data="projectPartTable" ref="projectPartDataTable" :style="{marginTop:'10px'}">
  1188. <el-table-column
  1189. v-for="(item,index) in projectPartDetailList" :key="index"
  1190. :sortable="item.columnSortable"
  1191. :prop="item.columnProp"
  1192. :header-align="item.headerAlign"
  1193. :show-overflow-tooltip="item.showOverflowTooltip"
  1194. :align="item.align"
  1195. :fixed="item.fixed===''?false:item.fixed"
  1196. :min-width="item.columnWidth"
  1197. :label="item.columnLabel">
  1198. <template slot-scope="scope">
  1199. <span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span>
  1200. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  1201. </template>
  1202. </el-table-column>
  1203. </el-table>
  1204. </el-dialog>
  1205. </div>
  1206. </template>
  1207. <style scoped>
  1208. .el-input-number /deep/ .el-input__inner{
  1209. text-align: right;
  1210. padding-right: 5px !important;
  1211. }
  1212. </style>