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.

1365 lines
44 KiB

2 years ago
1 year ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
1 year ago
2 years ago
  1. <script>
  2. import QuoteSearch from "./primary/quoteSearch.vue";
  3. import QuoteTable from "./primary/quoteTable.vue";
  4. import {
  5. againQuote,
  6. queryQuotePage,
  7. queryQuoteRoleUser,
  8. removeQuote,
  9. saveQuote,
  10. updateQuote,
  11. updateQuoteStatus
  12. } from "../../../api/quote/quote";
  13. import QuoteDetail from "./detail/quoteDetail.vue";
  14. import ChooseList from '@/views/modules/common/Chooselist';
  15. import {queryCustomer} from "../../../api/customer/customerInformation";
  16. import DictDataSelect from "../sys/dict-data-select.vue";
  17. import {queryProjectByCustomer} from "../../../api/project/project";
  18. import quotationCustomerContact from "../quotation/sellForQuotation/quotationCustomerContact.vue";
  19. import CustomerInfo from "../quotation/sellForQuotation/customerInfo.vue";
  20. import OssComponents from "../oss/ossComponents.vue";
  21. import quotationProjectInformation from "../quotation/sellForQuotation/quotationProjectInformation.vue";
  22. import {
  23. quotationInformationSearchByAnyField,
  24. searchQuotationByQuotationNo
  25. } from "../../../api/quotation/quotationInformation";
  26. import PriceCheckProperties from "../quotation/priceCheckProperties.vue";
  27. import ApprovalInformation from "../changeManagement/approvalInformation.vue";
  28. import {getPriceCheckPropertiesList} from "../../../api/quotation/priceCheckProperties";
  29. import {getApprovalList} from "../../../api/changeManagement/changeManagement";
  30. import QuoteGroupDetail from "./detail/quoteGroupDetail.vue";
  31. import FilterSearch from "../../common/filterSearch.vue";
  32. export default {
  33. name: "quote",
  34. components: {
  35. FilterSearch,
  36. QuoteGroupDetail,
  37. ApprovalInformation, PriceCheckProperties,
  38. quotationProjectInformation, OssComponents, CustomerInfo, quotationCustomerContact,
  39. DictDataSelect,
  40. QuoteDetail,
  41. ChooseList,
  42. QuoteTable, QuoteSearch
  43. },
  44. props:{
  45. isMenu:{
  46. type:Boolean,
  47. default:true,
  48. },
  49. projectNo:{
  50. type:String,
  51. },
  52. height:{
  53. type:[Number,String],
  54. default:'35vh'
  55. }
  56. },
  57. menuId:5011,
  58. data(){
  59. return{
  60. total: 0,
  61. no:1,
  62. size: 20,
  63. quote:{
  64. id: null,
  65. site:"",
  66. quoteNo: "",
  67. customerInquiryNo: "",
  68. insideInquiryNo: "",
  69. buNo: "",
  70. buId: null,
  71. versionNo: "",
  72. status:'',
  73. quoteVersionNo: "",
  74. customerNo: "",
  75. customerDesc: "",
  76. projectNo: "",
  77. projectDesc: "",
  78. finalCustomerNo: "",
  79. finalCustomerDesc:"",
  80. currency: "",
  81. quoteDate: "",
  82. quoter: "",
  83. quoterName: "",
  84. purchase: "",
  85. purchaseName: "",
  86. remark: "",
  87. createBy: "",
  88. createDate: "",
  89. updateBy: "",
  90. updateDate: "",
  91. application: "",
  92. annualDemand: "",
  93. costModel: "UFIDA",
  94. markup:0,
  95. chipPrice:'',
  96. },
  97. quoteForm:{
  98. },
  99. saveQuote:{
  100. },
  101. dataList:[],
  102. columns: [
  103. {
  104. userId: this.$store.state.user.name,
  105. functionId: 5011,
  106. serialNumber: '5011Table1QuoteVersionNo',
  107. tableId: '5011Table1',
  108. tableName: '报价信息表',
  109. columnProp: 'quoteVersionNo',
  110. headerAlign: 'center',
  111. align: 'center',
  112. columnLabel: '报价单号',
  113. columnHidden: false,
  114. columnImage: false,
  115. columnSortable: false,
  116. sortLv: 0,
  117. status: true,
  118. fixed: '',
  119. columnWidth: 180
  120. },
  121. {
  122. userId: this.$store.state.user.name,
  123. functionId: 5011,
  124. serialNumber: '5011Table1QuoteDate',
  125. tableId: '5011Table1',
  126. tableName: '报价信息表',
  127. columnProp: 'quoteDate',
  128. headerAlign: 'center',
  129. align: 'center',
  130. columnLabel: '报价日期',
  131. columnHidden: false,
  132. columnImage: false,
  133. columnSortable: false,
  134. sortLv: 0,
  135. status: true,
  136. fixed: '',
  137. columnWidth: 100
  138. },
  139. {
  140. userId: this.$store.state.user.name,
  141. functionId: 5011,
  142. serialNumber: '5011Table1CustomerNo',
  143. tableId: '5011Table1',
  144. tableName: '报价信息表',
  145. columnProp: 'customerNo',
  146. headerAlign: 'center',
  147. align: 'center',
  148. columnLabel: '客户编码',
  149. columnHidden: false,
  150. columnImage: false,
  151. columnSortable: false,
  152. sortLv: 0,
  153. status: true,
  154. fixed: '',
  155. columnWidth: 120
  156. },
  157. {
  158. userId: this.$store.state.user.name,
  159. functionId: 5011,
  160. serialNumber: '5011Table1CustomerDesc',
  161. tableId: '5011Table1',
  162. tableName: '报价信息表',
  163. columnProp: 'customerDesc',
  164. headerAlign: 'center',
  165. align: 'left',
  166. columnLabel: '客户名称',
  167. columnHidden: false,
  168. columnImage: false,
  169. columnSortable: false,
  170. sortLv: 0,
  171. status: true,
  172. fixed: '',
  173. columnWidth: 120
  174. },
  175. {
  176. userId: this.$store.state.user.name,
  177. functionId: 5011,
  178. serialNumber: '5011Table1ProjectNo',
  179. tableId: '5011Table1',
  180. tableName: '报价信息表',
  181. columnProp: 'projectNo',
  182. headerAlign: 'center',
  183. align: 'left',
  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: 5011,
  196. serialNumber: '5011Table1ProjectDesc',
  197. tableId: '5011Table1',
  198. tableName: '报价信息表',
  199. columnProp: 'projectDesc',
  200. headerAlign: 'center',
  201. align: 'left',
  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: 5011,
  214. serialNumber: '5011Table1QuoterName',
  215. tableId: '5011Table1',
  216. tableName: '报价信息表',
  217. columnProp: 'quoterName',
  218. headerAlign: 'center',
  219. align: 'left',
  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: 5011,
  232. serialNumber: '5011Table1PurchaseName',
  233. tableId: '5011Table1',
  234. tableName: '报价信息表',
  235. columnProp: 'purchaseName',
  236. headerAlign: 'center',
  237. align: 'left',
  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: 5011,
  250. serialNumber: '5011Table1Status',
  251. tableId: '5011Table1',
  252. tableName: '报价信息表',
  253. columnProp: 'status',
  254. headerAlign: 'center',
  255. align: 'center',
  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: 5011,
  268. serialNumber: '5011Table1CustomerInquiryNo',
  269. tableId: '5011Table1',
  270. tableName: '报价信息表',
  271. columnProp: 'customerInquiryNo',
  272. headerAlign: 'center',
  273. align: 'center',
  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: 5011,
  286. serialNumber: '5011Table1InsideInquiryNo',
  287. tableId: '5011Table1',
  288. tableName: '报价信息表',
  289. columnProp: 'insideInquiryNo',
  290. headerAlign: 'center',
  291. align: 'center',
  292. columnLabel: '内部询价单号',
  293. columnHidden: false,
  294. columnImage: false,
  295. columnSortable: false,
  296. sortLv: 0,
  297. status: true,
  298. fixed: '',
  299. columnWidth: 120
  300. },
  301. {
  302. userId: this.$store.state.user.name,
  303. functionId: 5011,
  304. serialNumber: '5011Table1CreateBy',
  305. tableId: '5011Table1',
  306. tableName: '报价信息表',
  307. columnProp: 'createBy',
  308. headerAlign: 'center',
  309. align: 'center',
  310. columnLabel: '创建人',
  311. columnHidden: false,
  312. columnImage: false,
  313. columnSortable: false,
  314. sortLv: 0,
  315. status: true,
  316. fixed: '',
  317. columnWidth: 120
  318. },
  319. {
  320. userId: this.$store.state.user.name,
  321. functionId: 5011,
  322. serialNumber: '5011Table1CreateDate',
  323. tableId: '5011Table1',
  324. tableName: '报价信息表',
  325. columnProp: 'createDate',
  326. headerAlign: 'center',
  327. align: 'center',
  328. columnLabel: '创建时间',
  329. columnHidden: false,
  330. columnImage: false,
  331. columnSortable: false,
  332. sortLv: 0,
  333. status: true,
  334. fixed: '',
  335. columnWidth: 130
  336. },
  337. {
  338. userId: this.$store.state.user.name,
  339. functionId: 5011,
  340. serialNumber: '5011Table1UpdateBy',
  341. tableId: '5011Table1',
  342. tableName: '报价信息表',
  343. columnProp: 'updateBy',
  344. headerAlign: 'center',
  345. align: 'center',
  346. columnLabel: '更新人',
  347. columnHidden: false,
  348. columnImage: false,
  349. columnSortable: false,
  350. sortLv: 0,
  351. status: true,
  352. fixed: '',
  353. columnWidth: 120
  354. },
  355. {
  356. userId: this.$store.state.user.name,
  357. functionId: 5011,
  358. serialNumber: '5011Table1UpdateDate',
  359. tableId: '5011Table1',
  360. tableName: '报价信息表',
  361. columnProp: 'updateDate',
  362. headerAlign: 'center',
  363. align: 'center',
  364. columnLabel: '更新时间',
  365. columnHidden: false,
  366. columnImage: false,
  367. columnSortable: false,
  368. sortLv: 0,
  369. status: true,
  370. fixed: '',
  371. columnWidth: 130
  372. },
  373. ],
  374. searchLoading: false,
  375. saveVisible: false,
  376. saveLoading: false,
  377. activeName:'detail',
  378. userBuList: [],
  379. saveRules: {
  380. buId:[{required: true, message: '请选择BU', trigger: ['blur','change']}],
  381. customerNo:[{required: true, message: '请输入客户编码', trigger: ['blur','change']}],
  382. customerDesc:[{required: true, message: '请输入客户名称', trigger: ['blur','change']}],
  383. projectNo:[{required: true, message: '请输入项目编码', trigger: ['blur','change']}],
  384. projectDesc:[{required: true, message: '请输入项目名称', trigger: ['blur','change']}],
  385. currency:[{required: true, message: '请输入币种', trigger: ['blur','change']}],
  386. quoteDate:[{required: true, message: '请选择报价日期', trigger: ['blur','change']}],
  387. quoter:[{required: true, message: '请输入报价专员', trigger: ['blur','change']}],
  388. },
  389. customerVisible:false,
  390. projectVisible:false,
  391. quoterVisible:false,
  392. purchaseVisible:false,
  393. filterVisible:false,
  394. currentQuote:{
  395. },
  396. userVisible:false,
  397. userTitle:'人员信息',
  398. user:{
  399. username:'',
  400. userDisplay:'',
  401. active:'',
  402. buId:null,
  403. roleNo:'',
  404. },
  405. userDataList:[],
  406. tagNo:undefined,
  407. insideInquiryVisible:false,
  408. detailFlag:false,
  409. ossColumns:[
  410. {
  411. userId: this.$store.state.user.name,
  412. functionId: 5011,
  413. serialNumber: '5011Table2FileName',
  414. tableId: '5011Table2',
  415. tableName: '文件信息表',
  416. columnProp: 'fileName',
  417. headerAlign: 'center',
  418. align: 'left',
  419. columnLabel: '文件名称',
  420. columnHidden: false,
  421. columnImage: false,
  422. columnSortable: false,
  423. sortLv: 0,
  424. status: true,
  425. fixed: '',
  426. columnWidth: 140
  427. },
  428. {
  429. userId: this.$store.state.user.name,
  430. functionId: 5011,
  431. serialNumber: '5011Table2FileRemark',
  432. tableId: '5011Table2',
  433. tableName: '文件信息表',
  434. columnProp: 'fileRemark',
  435. headerAlign: 'center',
  436. align: 'left',
  437. columnLabel: '备注',
  438. columnHidden: false,
  439. columnImage: false,
  440. columnSortable: false,
  441. sortLv: 0,
  442. status: true,
  443. fixed: '',
  444. columnWidth: 240
  445. },
  446. {
  447. userId: this.$store.state.user.name,
  448. functionId: 5011,
  449. serialNumber: '5011Table2CreateDate',
  450. tableId: '5011Table2',
  451. tableName: '文件信息表',
  452. columnProp: 'createDate',
  453. headerAlign: 'center',
  454. align: 'center',
  455. columnLabel: '上传时间',
  456. columnHidden: false,
  457. columnImage: false,
  458. columnSortable: false,
  459. sortLv: 0,
  460. status: true,
  461. fixed: '',
  462. columnWidth: 140
  463. },
  464. {
  465. userId: this.$store.state.user.name,
  466. functionId: 5011,
  467. serialNumber: '5011Table2CreatedBy',
  468. tableId: '5011Table2',
  469. tableName: '文件信息表',
  470. columnProp: 'createBy',
  471. headerAlign: 'center',
  472. align: 'center',
  473. columnLabel: '上传人',
  474. columnHidden: false,
  475. columnImage: false,
  476. columnSortable: false,
  477. sortLv: 0,
  478. status: true,
  479. fixed: '',
  480. columnWidth: 140
  481. }
  482. ],
  483. insideInquiry:{
  484. },
  485. insideInquiryList:[],
  486. priceCheckPropertiesList:[],
  487. approvalList:[],
  488. exportData: [],
  489. exportName: '项目报价'+this.dayjs().format('YYYYMMDDHHmmss'),
  490. exportHeader: ["项目报价"],
  491. exportFooter: [],
  492. searchIndex:0,
  493. }
  494. },
  495. methods:{
  496. handleSearch(index){
  497. let params = {
  498. ...this.quoteForm,
  499. no: this.no,
  500. size: this.size,
  501. }
  502. this.searchLoading = true
  503. queryQuotePage(params).then(({data})=>{
  504. if (data && data.code === 0){
  505. this.dataList = data.rows
  506. this.total = data.total
  507. if (this.dataList[0] !== undefined){
  508. this.handleSelect(this.dataList[0])
  509. }
  510. // if (index !== undefined){
  511. // this.handleSelect(this.dataList[index])
  512. // }
  513. }else {
  514. this.$message.error(data.msg)
  515. }
  516. this.searchLoading = false
  517. }).catch(error=>{
  518. this.$message.error(error)
  519. this.searchLoading = false
  520. })
  521. },
  522. handleSelect(row){
  523. if (row){
  524. this.currentQuote = {...row}
  525. }else {
  526. this.currentQuote = {}
  527. }
  528. },
  529. handleSave(row){
  530. this.$nextTick(()=>{
  531. if (this.$refs.saveForm){
  532. this.$refs.saveForm.clearValidate();
  533. }
  534. })
  535. if (row){
  536. this.saveQuote = {
  537. ...row
  538. }
  539. }else {
  540. this.saveQuote = {
  541. ...this.quote,
  542. buNo:'*',
  543. site:this.$store.state.user.site
  544. }
  545. this.$nextTick(()=>{
  546. this.saveQuote.buId = this.userBuList.length > 0? this.userBuList[0].id:null;
  547. })
  548. }
  549. this.saveVisible = true
  550. },
  551. handleSizeChange(size){
  552. this.size = size
  553. this.handleSearch();
  554. },
  555. handlePageChange(no) {
  556. this.no = no
  557. this.handleSearch();
  558. },
  559. handleQueryBu(){
  560. let params = {
  561. username: this.$store.state.user.name,
  562. }
  563. // getSiteAndBuByUserName(params).then(({data}) => {
  564. // if (data && data.code === 0) {
  565. // this.userBuList = data.rows
  566. // }else {
  567. // this.$message.warning(data.msg)
  568. // }
  569. // }).catch((error)=>{
  570. // this.$message.error(error)
  571. // })
  572. },
  573. handleSaveOrUpdateQuote(){
  574. this.$refs.saveForm.validate((valid,obj) => {
  575. if (valid){
  576. if (this.saveQuote.id){
  577. this.handleUpdateQuote();
  578. }else {
  579. this.handleSaveQuote();
  580. }
  581. }else {
  582. let i = 1;
  583. for (let key in obj){
  584. this.$message.warning(obj[key][0].message)
  585. if (i === 1){
  586. return
  587. }
  588. i++;
  589. }
  590. }
  591. })
  592. },
  593. handleSaveQuote(){
  594. let params = {
  595. ...this.saveQuote,
  596. status: '草稿',
  597. action: 'Y',
  598. createBy: this.$store.state.user.name,
  599. }
  600. this.saveLoading = true
  601. saveQuote(params).then(({data})=>{
  602. if (data && data.code === 0){
  603. this.saveVisible = false
  604. this.quoteForm.quoteVersionNo = data.quoteVersionNo
  605. this.$message.success(data.msg)
  606. }else {
  607. this.$message.warning(data.msg)
  608. }
  609. this.handleSearch(0);
  610. this.saveLoading = false
  611. }).catch((error)=>{
  612. this.$message.error(error)
  613. this.saveLoading = false
  614. })
  615. },
  616. handleUpdateQuote(){
  617. let params = {
  618. ...this.saveQuote,
  619. updateBy: this.$store.state.user.name,
  620. }
  621. this.saveLoading = true
  622. updateQuote(params).then(({data})=>{
  623. if (data && data.code === 0){
  624. this.saveVisible = false
  625. this.currentQuote = {
  626. ...this.currentQuote
  627. }
  628. this.$message.success(data.msg)
  629. }else {
  630. this.$message.warning(data.msg)
  631. }
  632. this.handleSearch();
  633. this.saveLoading = false
  634. }).catch((error)=>{
  635. this.$message.error(error)
  636. this.saveLoading = false
  637. })
  638. },
  639. handleRemove(row){
  640. this.$confirm('确认删除该报价信息吗?', '提示', {
  641. confirmButtonText: '确定',
  642. cancelButtonText: '取消',
  643. type: 'warning'
  644. }).then(() => {
  645. this.handleRemoveQuote(row)
  646. }).catch(() => {
  647. })
  648. },
  649. handleUpdateStatus(row){
  650. let params = {
  651. ...row
  652. }
  653. updateQuoteStatus(params).then(({data})=>{
  654. if (data && data.code === 0){
  655. this.$message.success(data.msg)
  656. this.handleSearch();
  657. this.currentQuote = {
  658. ...row
  659. }
  660. }else {
  661. this.$message.warning(data.msg)
  662. }
  663. }).catch((error)=>{
  664. this.$message.error(error)
  665. })
  666. },
  667. handleQueryById(row){
  668. this.saveQuote = {
  669. ...row
  670. }
  671. this.detailFlag = true;
  672. this.saveVisible = true;
  673. },
  674. handleRemoveQuote(row){
  675. let params = {
  676. id: row.id,
  677. }
  678. removeQuote(params).then(({data})=>{
  679. if (data && data.code === 0){
  680. this.$message.success(data.msg)
  681. if (row.id === this.currentQuote.id){
  682. this.handleSearch(0);
  683. }else {
  684. this.handleSearch();
  685. }
  686. }else {
  687. this.$message.warning(data.msg)
  688. }
  689. }).catch((error)=>{
  690. this.$message.error(error)
  691. })
  692. },
  693. customerNoBlur(){
  694. let params = {
  695. site:this.$store.state.user.site,
  696. customerNo:this.saveQuote.customerNo
  697. }
  698. queryCustomer(params).then(({data})=>{
  699. if (data && data.code === 0 ) {
  700. if (data.rows && data.rows.length === 1){
  701. this.saveQuote.customerDesc = data.rows[0].customerDesc
  702. }else {
  703. this.saveQuote.customerDesc = ''
  704. }
  705. }else {
  706. this.$message.warning(data.msg)
  707. }
  708. }).catch((error)=>{
  709. this.$message.error(error)
  710. })
  711. },
  712. projectNoBlur(){
  713. let params = {
  714. site:this.$store.state.user.site,
  715. customerId:this.saveQuote.customerNo,
  716. projectId:this.saveQuote.projectNo
  717. }
  718. queryProjectByCustomer(params).then(({data})=>{
  719. if (data && data.code === 0 ){
  720. if (data.rows && data.rows.length === 1){
  721. this.saveQuote.projectDesc = data.rows[0].projectName
  722. this.saveQuote.finalCustomerNo = data.rows[0].finalCustomerId
  723. this.saveQuote.finalCustomerDesc = data.rows[0].finalCustomerName
  724. }else {
  725. this.saveQuote.projectDesc = ''
  726. this.saveQuote.finalCustomerNo = ''
  727. this.saveQuote.finalCustomerDesc = ''
  728. }
  729. }else {
  730. this.$message.warning(data.msg)
  731. }
  732. }).catch((error)=>{
  733. this.$message.error(error)
  734. })
  735. },
  736. handleRowClick(row){
  737. this.currentQuote = {...row}
  738. },
  739. userDblClick(row){
  740. if (this.quoterVisible){
  741. this.saveQuote.quoter = row.username
  742. this.quoterVisible = false
  743. }else if (this.purchaseVisible){
  744. this.saveQuote.purchase = row.username
  745. this.purchaseVisible = false
  746. }
  747. this.userVisible = false
  748. },
  749. handleQuoterClick(){
  750. this.userTitle = '报价专员'
  751. this.user.username = this.saveQuote.quoter
  752. this.user.userDisplay = ''
  753. this.user.active = ''
  754. this.user.buId = this.saveQuote.buId
  755. this.user.roleNo = 'QUOTER'
  756. this.quoterVisible = true
  757. this.handleQueryQuoteRoleUser();
  758. this.userVisible = true
  759. },
  760. handlePurchaseClick(){
  761. this.userTitle = '采购专员'
  762. this.user.username = this.saveQuote.purchase
  763. this.user.userDisplay = ''
  764. this.user.active = ''
  765. this.user.buId = this.saveQuote.buId
  766. this.user.roleNo = 'PURCHASE'
  767. this.purchaseVisible = true
  768. this.handleQueryQuoteRoleUser();
  769. this.userVisible = true
  770. },
  771. handleQueryQuoteRoleUser(){
  772. let params = {
  773. ...this.user,
  774. }
  775. this.userDataList = []
  776. queryQuoteRoleUser(params).then(({data})=>{
  777. if (data && data.code === 0){
  778. this.userDataList = data.rows
  779. }else {
  780. this.$message.warning(data.msg)
  781. }
  782. }).catch((error)=>{
  783. this.$message.error(error)
  784. })
  785. },
  786. getBaseList(val){
  787. this.tagNo = val
  788. this.$nextTick(() => {
  789. let strVal = ''
  790. let conSql = ''
  791. if (val === 102) {
  792. strVal = this.saveQuote.customerNo
  793. }
  794. if (val === 104) {
  795. strVal = this.saveQuote.projectNo
  796. conSql = " and customer_id = '" + this.saveQuote.customerNo + "'"
  797. }
  798. if (val === 2000) {
  799. strVal = this.saveQuote.purchase
  800. conSql = " and b.site = '" + this.$store.state.user.site + "'"
  801. }
  802. if (val === 2002) {
  803. strVal = this.saveQuote.quoter
  804. conSql = " and b.site = '" + this.$store.state.user.site + "'"
  805. }
  806. this.$refs.baseList.init(val, strVal, conSql)
  807. })
  808. },
  809. getBaseData(val){
  810. switch (this.tagNo){
  811. case 102:
  812. if (this.saveQuote.customerNo !== val.Customer_no) {
  813. this.saveQuote.projectNo = '';
  814. this.saveQuote.projectDesc = '';
  815. }
  816. this.saveQuote.customerNo = val.Customer_no
  817. this.saveQuote.customerDesc = val.Customer_desc
  818. break;
  819. case 104:
  820. this.saveQuote.projectNo = val.project_id
  821. this.saveQuote.projectDesc = val.project_name
  822. break;
  823. case 2000:
  824. this.saveQuote.purchase = val.username
  825. this.saveQuote.purchaseName = val.user_display
  826. break
  827. case 2002:
  828. this.saveQuote.quoter = val.username
  829. this.saveQuote.quoterName = val.user_display
  830. break;
  831. }
  832. },
  833. handleQueryByIds(){
  834. let params = {
  835. ids:this.$route.params.ids,
  836. no:this.no,
  837. size:this.size,
  838. createBy:this.$store.state.user.name,
  839. }
  840. queryQuotePage(params).then(({data})=>{
  841. if (data && data.code === 0){
  842. this.dataList = data.rows
  843. this.total = data.total
  844. if (this.total > 0){
  845. this.currentQuote = {...this.dataList[0]}
  846. }else {
  847. this.currentQuote = {}
  848. }
  849. }else {
  850. this.$message.error(data.msg)
  851. }
  852. this.searchLoading = false
  853. }).catch(error=>{
  854. this.$message.error(error)
  855. this.searchLoading = false
  856. })
  857. },
  858. handleInquiryBlur(){
  859. let params = {
  860. site:this.$store.state.user.site,
  861. quotationNo:this.saveQuote.insideInquiryNo,
  862. }
  863. searchQuotationByQuotationNo(params).then(({data}) => {
  864. if (data && data.code === 0){
  865. if (data.data.length === 1){
  866. this.dblclickInsideInquiry(data.data[0])
  867. }
  868. }
  869. })
  870. },
  871. handleAgainQuote(row){
  872. let params = {
  873. id: row.id,
  874. createBy: this.$store.state.user.name,
  875. }
  876. this.queryLoading = true
  877. againQuote(params).then(({data}) => {
  878. if (data && data.code === 0) {
  879. this.$message.success(data.msg)
  880. this.handleSearch();
  881. } else {
  882. this.$message.warning(data.msg)
  883. this.queryLoading = false
  884. }
  885. }).catch((error) => {
  886. this.$message.error(error)
  887. this.queryLoading = false
  888. })
  889. },
  890. clearModalData(field){
  891. this.$set(this.saveQuote,field,'')
  892. },
  893. handleQueryInquiry(){
  894. this.insideInquiry = {
  895. site:this.$store.state.user.site,
  896. quotationNo:this.saveQuote.insideInquiryNo,
  897. quotationBatchNo:'',
  898. quotationItemNo:'',
  899. testPartNo:'',
  900. projectName:'',
  901. finalCustomerName:'',
  902. quoterName:'',
  903. partName:'',
  904. quotationStatus:'审批中',
  905. }
  906. this.searchInsideInquiry();
  907. this.insideInquiryVisible = true
  908. },
  909. dblclickInsideInquiry(row){
  910. this.saveQuote.insideInquiryNo = row.quotationNo
  911. this.saveQuote.customerNo = row.customerNo
  912. this.saveQuote.customerDesc = row.customerDesc
  913. this.saveQuote.projectNo = row.projectId
  914. this.saveQuote.projectDesc = row.projectName
  915. this.saveQuote.quoter = row.quoter
  916. this.saveQuote.quoterName = row.quoterName
  917. this.saveQuote.finalCustomerNo = row.finalCustomerId
  918. this.saveQuote.finalCustomerDesc = row.finalCustomerName
  919. this.saveQuote.purchase = row.tracker
  920. this.saveQuote.purchaseName = row.trackerName
  921. this.insideInquiryVisible = false
  922. },
  923. searchInsideInquiry(){
  924. searchQuotationByQuotationNo(this.insideInquiry).then(({data}) => {
  925. if (data && data.code === 0){
  926. this.insideInquiryList = data.data;
  927. }
  928. })
  929. },
  930. getPriceCheckProperties() {
  931. if (!this.currentQuote && !this.currentQuote.insideInquiryNo){
  932. this.priceCheckPropertiesList = []
  933. return
  934. }
  935. let params = {
  936. site: this.saveQuote.site,
  937. quotationNo: this.currentQuote.insideInquiryNo
  938. }
  939. getPriceCheckPropertiesList(params).then(({data}) => {
  940. if (data && data.code === 0) {
  941. this.priceCheckPropertiesList = data.rows
  942. } else {
  943. this.$message.warning(data.msg)
  944. }
  945. }).catch((error) => {
  946. this.$message.error(error)
  947. })
  948. },
  949. // 查询审批信息
  950. getApprovalList () {
  951. let tempData = {
  952. site: this.$store.state.user.site,
  953. menuId: this.$route.meta.menuId,
  954. documentNo: this.currentQuote.quoteVersionNo
  955. }
  956. getApprovalList(tempData).then(({data}) => {
  957. if (data && data.code === 0) {
  958. this.approvalList = data.rows
  959. } else {
  960. this.approvalList = []
  961. }
  962. })
  963. },
  964. fields() {
  965. let json = "{"
  966. this.columns.forEach((item, index) => {
  967. if (index === this.columns.length - 1) {
  968. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  969. } else {
  970. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  971. }
  972. })
  973. json += "}"
  974. return eval("(" + json + ")")
  975. },
  976. createExportData() {
  977. return this.dataList;
  978. },
  979. searchByAnyField(params){
  980. params.site = this.$store.state.user.site
  981. params.no = this.pageIndex
  982. params.size = this.pageSize
  983. mtdnm(params).then(({data})=>{
  984. if (data && data.code === 0){
  985. this.dataList = data.page.list
  986. this.totalPage = data.page.totalCount
  987. }else {
  988. this.$message.warning(data.msg)
  989. }
  990. }).catch((error)=>{
  991. this.$message.error(error)
  992. })
  993. this.filterVisible = false
  994. },
  995. },
  996. created() {
  997. if (this.isMenu && this.searchIndex === 0){
  998. this.quoteForm = {
  999. ...this.quote,
  1000. site: this.$store.state.user.site,
  1001. createBy: this.$store.state.user.name,
  1002. }
  1003. this.handleQueryBu();// 查询 BU
  1004. this.handleSearch(0);// 查询报价信息
  1005. }
  1006. this.searchIndex++;
  1007. },
  1008. watch:{
  1009. 'quoteForm.customerNo'(newVal, oldVal){
  1010. this.quoteForm.customerNo = newVal.toUpperCase()
  1011. },
  1012. 'quoteForm.projectNo'(newVal, oldVal){
  1013. this.quoteForm.projectNo = newVal.toUpperCase()
  1014. },
  1015. 'quoteForm.quoteNo'(newVal, oldVal){
  1016. this.quoteForm.quoteNo = newVal.toUpperCase()
  1017. },
  1018. 'saveQuote.customerNo'(newVal, oldVal){
  1019. if (newVal){
  1020. this.saveQuote.customerNo = newVal.toUpperCase()
  1021. }else {
  1022. this.saveQuote.customerDesc = ''
  1023. this.saveQuote.projectNo = ''
  1024. this.saveQuote.projectDesc = ''
  1025. }
  1026. },
  1027. 'saveQuote.projectNo'(newVal, oldVal){
  1028. if (newVal){
  1029. this.saveQuote.projectNo = newVal.toUpperCase()
  1030. this.projectNoBlur();
  1031. }else {
  1032. this.saveQuote.projectDesc = ''
  1033. this.saveQuote.finalCustomerNo = ''
  1034. this.saveQuote.finalCustomerDesc = ''
  1035. }
  1036. },
  1037. 'saveQuote.quoter'(newVal, oldVal){
  1038. if (!newVal){
  1039. this.saveQuote.quoterName = ''
  1040. }
  1041. },
  1042. 'saveQuote.purchase'(newVal, oldVal){
  1043. if (!newVal){
  1044. this.saveQuote.purchaseName = ''
  1045. }
  1046. },
  1047. saveVisible(newVal, oldVal){
  1048. if (newVal === false){
  1049. this.detailFlag = false;
  1050. }
  1051. },
  1052. 'saveQuote.currency'(newVal, oldVal){
  1053. this.saveQuote.currency = newVal.toUpperCase()
  1054. },
  1055. 'currentQuote'(newVal, oldVal){
  1056. if (newVal && this.isMenu){
  1057. this.getPriceCheckProperties();
  1058. this.getApprovalList();
  1059. }
  1060. },
  1061. projectNo(newVal, oldVal){
  1062. if (newVal && !this.isMenu){
  1063. this.quoteForm.projectNo = newVal.toUpperCase()
  1064. this.quoteForm.site = this.$store.state.user.site
  1065. this.handleSearch(0);
  1066. }else {
  1067. this.dataList = []
  1068. this.total = 0
  1069. this.no = 1
  1070. }
  1071. },
  1072. },
  1073. activated() {
  1074. if (!this.isMenu){
  1075. return
  1076. }
  1077. if (this.$route.params.ids){
  1078. this.handleQueryByIds();
  1079. }else if (this.$route.params.type === 'project'){
  1080. this.quoteForm = {
  1081. ...this.quote,
  1082. site: this.$store.state.user.site,
  1083. quoteVersionNo: this.$route.params.quoteVersionNo,
  1084. }
  1085. this.handleSearch(0);
  1086. }
  1087. }
  1088. }
  1089. </script>
  1090. <template>
  1091. <div>
  1092. <download-excel v-if="!isMenu"
  1093. :fields="fields()"
  1094. :data="exportData"
  1095. type="xls"
  1096. :name="exportName"
  1097. :header="exportHeader"
  1098. :footer="exportFooter"
  1099. :fetch="createExportData"
  1100. worksheet="导出信息"
  1101. class="el-button el-button--primary el-button--medium">
  1102. {{ '导出' }}
  1103. </download-excel>
  1104. <quote-search v-if="isMenu" v-model:quote="quoteForm" @filterSearch="filterVisible = true" @search="handleSearch" @save="handleSave"></quote-search>
  1105. <quote-table v-loading="searchLoading"
  1106. :current-row="currentQuote"
  1107. :columns="columns"
  1108. style="margin-top: 5px"
  1109. :is-menu="isMenu"
  1110. @save="handleSave"
  1111. @remove="handleRemove"
  1112. @rowClick="handleRowClick"
  1113. @updateStatus="handleUpdateStatus"
  1114. @queryById="handleQueryById"
  1115. @againQuote="handleAgainQuote"
  1116. :data-list="dataList"
  1117. :height="height">
  1118. </quote-table>
  1119. <el-pagination @size-change="handleSizeChange"
  1120. @current-change="handlePageChange"
  1121. :current-page="no"
  1122. :page-sizes="[20, 50, 100, 200, 500]"
  1123. :page-size="size"
  1124. :total="total"
  1125. layout="total,sizes, prev, pager, next, jumper">
  1126. </el-pagination>
  1127. <el-tabs v-if="isMenu" v-model="activeName" type="border-card" style="margin-top: 0;" class="customer-tab">
  1128. <el-tab-pane label="报价明细" name="detail">
  1129. <quote-group-detail :quote="currentQuote" :auth-flag="false" :height="'28vh'"></quote-group-detail>
  1130. </el-tab-pane>
  1131. <el-tab-pane label="条目明细" name="detail2">
  1132. <quote-detail v-if="activeName === 'detail2'" :save-auth="false" :is-export="true" :quote="currentQuote" :auth-flag="false" :height="'30vh'"></quote-detail>
  1133. </el-tab-pane>
  1134. <el-tab-pane label="项目信息" name="quotation_project_information">
  1135. <quotation-project-information height="31vh" :quotation-header="currentQuote"></quotation-project-information>
  1136. </el-tab-pane>
  1137. <el-tab-pane label="客户信息" name="quotation_customer_information">
  1138. <customer-info height="31vh" :project="currentQuote"></customer-info>
  1139. </el-tab-pane>
  1140. <el-tab-pane label="客户联系人" name="quotation_customer_contact">
  1141. <quotation-customer-contact height="28vh" :quotation-header="currentQuote"></quotation-customer-contact>
  1142. </el-tab-pane>
  1143. <el-tab-pane label="报价-附件信息" name="quote_oss">
  1144. <oss-components
  1145. :save-visible="isAuth('5011:tab6:save')"
  1146. :download-visible="isAuth('5011:tab6:download')"
  1147. :remove-visible="isAuth('5011:tab6:remove')"
  1148. :preview-visible="isAuth('5011:tab6:preview')"
  1149. label="报价单号"
  1150. height="28vh"
  1151. :columns="ossColumns"
  1152. :order-ref1="currentQuote.site?currentQuote.site:''"
  1153. :order-ref2="currentQuote.quoteVersionNo?currentQuote.quoteVersionNo:''">
  1154. </oss-components>
  1155. </el-tab-pane>
  1156. <el-tab-pane label="询价-基本信息" name="request">
  1157. <price-check-properties ref="tabProperties"
  1158. v-model:data-list="priceCheckPropertiesList"
  1159. height="31vh"></price-check-properties>
  1160. </el-tab-pane>
  1161. <el-tab-pane label="询价-附件信息" name="oss">
  1162. <oss-components
  1163. :save-visible="isAuth('102001001:tab6:save')"
  1164. :download-visible="isAuth('102001001:tab6:download')"
  1165. :remove-visible="isAuth('102001001:tab6:remove')"
  1166. :preview-visible="isAuth('102001001:tab6:preview')"
  1167. label="询价单号"
  1168. height="28vh"
  1169. :columns="ossColumns"
  1170. :order-ref1="currentQuote.site"
  1171. :order-ref2="currentQuote.insideInquiryNo?currentQuote.insideInquiryNo.split('-')[0]:''">
  1172. </oss-components>
  1173. </el-tab-pane>
  1174. <!-- 审批信息 -->
  1175. <el-tab-pane label="审批信息" name="approvalInformation">
  1176. <approval-information ref="approvalTable" v-model:data-list="approvalList" :height="300"></approval-information>
  1177. </el-tab-pane>
  1178. </el-tabs>
  1179. <el-dialog :title="saveQuote.id? '报价信息:'+ saveQuote.quoteVersionNo : '报价信息'" v-drag :close-on-click-modal="false" :visible.sync="saveVisible" width="500px" >
  1180. <el-form ref="saveForm" :model="saveQuote" :rules="saveRules" label-position="top" label-width="100px">
  1181. <el-row :gutter="10">
  1182. <el-col :span="8">
  1183. <el-form-item label="内部询价单号" prop="insideInquiryNo" :show-message="false">
  1184. <span slot="label" v-if="!detailFlag">
  1185. <a @click="handleQueryInquiry">内部询价单号</a>
  1186. </span>
  1187. <el-input v-model="saveQuote.insideInquiryNo" readonly @change="handleInquiryBlur" :disabled="detailFlag"></el-input>
  1188. </el-form-item>
  1189. </el-col>
  1190. <el-col :span="8">
  1191. <el-form-item label="报价日期" prop="quoteDate" :show-message="false">
  1192. <el-date-picker style="width: 100%" :disabled="detailFlag" v-model="saveQuote.quoteDate" type="date" value-format='yyyy-MM-dd' format='yyyy-MM-dd'></el-date-picker>
  1193. </el-form-item>
  1194. </el-col>
  1195. <el-col :span="8">
  1196. <el-form-item label="客户询价单号" prop="customerInquiryNo" :show-message="false">
  1197. <el-input v-model="saveQuote.customerInquiryNo" :disabled="detailFlag"></el-input>
  1198. </el-form-item>
  1199. </el-col>
  1200. </el-row>
  1201. <el-row :gutter="10">
  1202. <el-col :span="8">
  1203. <el-form-item label="客户编码" prop="customerNo" :show-message="false">
  1204. <span slot="label" v-if="!detailFlag">
  1205. <a @click="getBaseList(102)">客户编码</a>
  1206. </span>
  1207. <el-input v-model="saveQuote.customerNo" :disabled="detailFlag" @change="customerNoBlur"></el-input>
  1208. </el-form-item>
  1209. </el-col>
  1210. <el-col :span="16">
  1211. <el-form-item label="客户描述" prop="customerDesc" :show-message="false">
  1212. <el-input v-model="saveQuote.customerDesc" disabled></el-input>
  1213. </el-form-item>
  1214. </el-col>
  1215. </el-row>
  1216. <el-row :gutter="10">
  1217. <el-col :span="8">
  1218. <el-form-item label="项目号" prop="projectNo" :show-message="false">
  1219. <span slot="label" v-if="saveQuote.customerNo && !detailFlag">
  1220. <a @click="getBaseList(104)">项目号</a>
  1221. </span>
  1222. <el-input v-model="saveQuote.projectNo" :disabled="!saveQuote.customerNo || detailFlag"></el-input>
  1223. </el-form-item>
  1224. </el-col>
  1225. <el-col :span="16">
  1226. <el-form-item label="项目描述" prop="projectDesc" :show-message="false">
  1227. <el-input v-model="saveQuote.projectDesc" disabled></el-input>
  1228. </el-form-item>
  1229. </el-col>
  1230. </el-row>
  1231. <el-row :gutter="10">
  1232. <el-col :span="8">
  1233. <el-form-item label="终端客户编码" prop="finalCustomerNo" :show-message="false">
  1234. <el-input v-model="saveQuote.finalCustomerNo" disabled></el-input>
  1235. </el-form-item>
  1236. </el-col>
  1237. <el-col :span="16">
  1238. <el-form-item label="终端客户描述" prop="finalCustomerDesc" :show-message="false">
  1239. <el-input v-model="saveQuote.finalCustomerDesc" disabled></el-input>
  1240. </el-form-item>
  1241. </el-col>
  1242. </el-row>
  1243. <el-row :gutter="10">
  1244. <el-col :span="8">
  1245. <el-form-item label="报价专员" prop="quoter" :show-message="false">
  1246. <a slot="label" v-if="!detailFlag" @click="getBaseList(2002)">报价专员</a>
  1247. <el-input v-model="saveQuote.quoterName" readonly :disabled="detailFlag">
  1248. <span slot="suffix" v-show="saveQuote.quoter && !detailFlag" @click="clearModalData('quoter')"><i class="el-icon-circle-close" style="margin-left: 5px;cursor: pointer;"></i></span>
  1249. </el-input>
  1250. </el-form-item>
  1251. </el-col>
  1252. <el-col :span="8">
  1253. <el-form-item label="采购专员" prop="purchase" :show-message="false">
  1254. <a slot="label" v-if="!detailFlag" @click="getBaseList(2000)">采购专员</a>
  1255. <el-input v-model="saveQuote.purchaseName" readonly :disabled="detailFlag">
  1256. <span slot="suffix" v-show="saveQuote.purchase && !detailFlag" @click="clearModalData('purchase')"><i class="el-icon-circle-close" style="margin-left: 5px;cursor: pointer;"></i></span>
  1257. </el-input>
  1258. </el-form-item>
  1259. </el-col>
  1260. <el-col :span="24">
  1261. <el-form-item label="备注" prop="remark" class="auto" :show-message="false">
  1262. <el-input v-model="saveQuote.remark" :disabled="detailFlag" :rows="3" type="textarea"></el-input>
  1263. </el-form-item>
  1264. </el-col>
  1265. </el-row>
  1266. </el-form>
  1267. <div slot="footer" class="dialog-footer">
  1268. <el-button type="primary" v-if="!detailFlag" @click="handleSaveOrUpdateQuote"> </el-button>
  1269. <el-button @click="saveVisible = false"> </el-button>
  1270. </div>
  1271. </el-dialog>
  1272. <el-dialog title="询价申请" v-drag :visible.sync="insideInquiryVisible" width="1000px" modal-append-to-body :close-on-click-modal="false">
  1273. <el-form label-position="top"
  1274. :model="insideInquiry"
  1275. size="mini">
  1276. <el-row :gutter="10">
  1277. <el-col :span="3">
  1278. <el-form-item label="询价单号">
  1279. <el-input v-model="insideInquiry.quotationNo" clearable/>
  1280. </el-form-item>
  1281. </el-col>
  1282. <el-col :span="3">
  1283. <el-form-item label="申请批次号">
  1284. <el-input v-model="insideInquiry.quotationBatchNo" clearable></el-input>
  1285. </el-form-item>
  1286. </el-col>
  1287. <el-col :span="3">
  1288. <el-form-item label="序号">
  1289. <el-input v-model="insideInquiry.quotationItemNo" clearable></el-input>
  1290. </el-form-item>
  1291. </el-col>
  1292. <el-col :span="3">
  1293. <el-form-item label="项目名称">
  1294. <el-input v-model="insideInquiry.projectName" clearable></el-input>
  1295. </el-form-item>
  1296. </el-col>
  1297. <el-col :span="3">
  1298. <el-form-item label="直接客户名称">
  1299. <el-input v-model="insideInquiry.finalCustomerName" clearable></el-input>
  1300. </el-form-item>
  1301. </el-col>
  1302. <el-col :span="3">
  1303. <el-form-item label="报价专员">
  1304. <el-input v-model="insideInquiry.quoterName" clearable></el-input>
  1305. </el-form-item>
  1306. </el-col>
  1307. <el-col :span="3">
  1308. <el-form-item label="状态">
  1309. <el-select v-model="insideInquiry.quotationStatus" style="width:100%">
  1310. <el-option label="全部" value=""></el-option>
  1311. <el-option label="草稿" value="草稿"></el-option>
  1312. <el-option label="审批中" value="审批中"></el-option>
  1313. <el-option label="已完成" value="已完成"></el-option>
  1314. </el-select>
  1315. </el-form-item>
  1316. </el-col>
  1317. <el-col :span="2">
  1318. <el-form-item label=" ">
  1319. <el-button type="primary" style="padding: 3px 12px" @click="searchInsideInquiry">查询</el-button>
  1320. </el-form-item>
  1321. </el-col>
  1322. </el-row>
  1323. </el-form>
  1324. <el-table :data="insideInquiryList" height="300" stripe border @row-dblclick="dblclickInsideInquiry">
  1325. <el-table-column prop="quotationNo" header-align="center" min-width="120" label="询价单号"/>
  1326. <el-table-column prop="quotationBatchNo" header-align="center" label="询价批次号"/>
  1327. <el-table-column width="60" align="center" header-align="center" prop="quotationItemNo" label="询价序号"/>
  1328. <el-table-column prop="projectName" header-align="center" label="项目名称"/>
  1329. <el-table-column prop="quotationStatus" header-align="center" label="状态"/>
  1330. <el-table-column label="报价专员" header-align="center" prop="quoterName"/>
  1331. <el-table-column label="直接客户编码" header-align="center" prop="finalCustomerId"/>
  1332. <el-table-column label="直接客户名称" header-align="center" prop="finalCustomerName"/>
  1333. </el-table>
  1334. <el-footer style="height:30px;margin-top: 20px;text-align:center">
  1335. <el-button type="primary" @click="insideInquiryVisible = false">关闭</el-button>
  1336. </el-footer>
  1337. </el-dialog>
  1338. <choose-list ref="baseList" @getBaseData="getBaseData"></choose-list>
  1339. <filter-search :visible.sync="filterVisible" ref="filter-search" @search="searchByAnyField"></filter-search>
  1340. </div>
  1341. </template>
  1342. <style scoped>
  1343. .auto /deep/ .el-form-item__content{
  1344. height: auto;
  1345. line-height: 1.5;
  1346. }
  1347. </style>