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.

768 lines
26 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. <script>
  2. import DictDataSelect from "../sys/dict-data-select.vue";
  3. import {queryQuotationInformationByPage} from "@/api/quote/quotationInformation";
  4. import {batchSaveQuote} from "@/api/quote/quote";
  5. import {getSiteAndBuByUserName} from "../../../api/qc/qc";
  6. import {searchInquiryDetailHeaderInfo} from "../../../api/inquiry/inquiryDetail";
  7. import {updateColumnSize} from "../../../api/table";
  8. export default {
  9. name: "quotes",
  10. components: {DictDataSelect},
  11. props:{
  12. isComponent:{
  13. type: Boolean,
  14. default: false
  15. },
  16. height:{
  17. type:[String,Number],
  18. default: '76vh'
  19. },
  20. },
  21. data(){
  22. return{
  23. pageIndex: 1,
  24. pageSize: 50,
  25. totalPage: 0,
  26. userBuList:[],
  27. queryForm: {
  28. site: this.$store.state.user.site,
  29. customerNo: '',
  30. customerDesc: '',
  31. id: '',
  32. rfqNo: '',
  33. bu: '',
  34. requestStartDate: '',
  35. requestEndDate: '',
  36. requiredCompletionStartDate: '',
  37. requiredCompletionEndDate: '',
  38. status: '',
  39. quoterName: '',
  40. requesterName: '',
  41. priorityLevel: '',
  42. partNo: '',
  43. partDesc: '',
  44. page: 1,
  45. limit: 10,
  46. menuId: this.$route.meta.menuId,
  47. },
  48. dataList:[],
  49. queryLoading:false,
  50. selectionList:[],
  51. columns:[
  52. {
  53. userId: this.$store.state.user.name,
  54. functionId: 102001,
  55. serialNumber: '102001Table1BuDesc',
  56. tableId: '102001Table1',
  57. tableName: '询价信息表',
  58. columnProp: 'buDesc',
  59. headerAlign: 'center',
  60. align: 'center',
  61. columnLabel: 'BU',
  62. columnHidden: false,
  63. columnImage: false,
  64. columnSortable: false,
  65. sortLv: 0,
  66. status: true,
  67. fixed: '',
  68. columnWidth: 80
  69. },
  70. {
  71. userId: this.$store.state.user.name,
  72. functionId: 102001,
  73. serialNumber: '102001Table1rfqNo',
  74. tableId: '102001Table1',
  75. tableName: '询价信息表',
  76. columnProp: 'rfqNo',
  77. headerAlign: 'center',
  78. align: 'center',
  79. columnLabel: '询价单号',
  80. columnHidden: false,
  81. columnImage: false,
  82. columnSortable: false,
  83. sortLv: 0,
  84. status: true,
  85. fixed: '',
  86. columnWidth: 120
  87. },
  88. {
  89. userId: this.$store.state.user.name,
  90. functionId: 102001,
  91. serialNumber: '102001Table1CustomerNo',
  92. tableId: '102001Table1',
  93. tableName: '询价信息表',
  94. columnProp: 'customerNo',
  95. headerAlign: 'center',
  96. align: 'center',
  97. columnLabel: '客户编码',
  98. columnHidden: false,
  99. columnImage: false,
  100. columnSortable: false,
  101. sortLv: 0,
  102. status: true,
  103. fixed: '',
  104. columnWidth: 100
  105. },
  106. {
  107. userId: this.$store.state.user.name,
  108. functionId: 102001,
  109. serialNumber: '102001Table1CustomerDesc',
  110. tableId: '102001Table1',
  111. tableName: '询价信息表',
  112. columnProp: 'customerDesc',
  113. headerAlign: 'center',
  114. align: 'center',
  115. columnLabel: '客户名称',
  116. columnHidden: false,
  117. columnImage: false,
  118. columnSortable: false,
  119. sortLv: 0,
  120. status: true,
  121. fixed: '',
  122. columnWidth: 120
  123. },
  124. {
  125. userId: this.$store.state.user.name,
  126. functionId: 102001,
  127. serialNumber: '102001Table1RequestDate',
  128. tableId: '102001Table1',
  129. tableName: '询价信息表',
  130. columnProp: 'requestDate',
  131. headerAlign: 'center',
  132. align: 'center',
  133. columnLabel: '询价日期',
  134. columnHidden: false,
  135. columnImage: false,
  136. columnSortable: false,
  137. sortLv: 0,
  138. status: true,
  139. fixed: '',
  140. columnWidth: 120
  141. },
  142. {
  143. userId: this.$store.state.user.name,
  144. functionId: 102001,
  145. serialNumber: '102001Table1RequesterName',
  146. tableId: '102001Table1',
  147. tableName: '询价信息表',
  148. columnProp: 'requesterName',
  149. headerAlign: 'center',
  150. align: 'center',
  151. columnLabel: 'PjM',
  152. columnHidden: false,
  153. columnImage: false,
  154. columnSortable: false,
  155. sortLv: 0,
  156. status: true,
  157. fixed: '',
  158. columnWidth: 80
  159. },
  160. {
  161. userId: this.$store.state.user.name,
  162. functionId: 102001,
  163. serialNumber: '102001Table1QuoterName',
  164. tableId: '102001Table1',
  165. tableName: '询价信息表',
  166. columnProp: 'quoterName',
  167. headerAlign: 'center',
  168. align: 'center',
  169. columnLabel: '报价专员',
  170. columnHidden: false,
  171. columnImage: false,
  172. columnSortable: false,
  173. sortLv: 0,
  174. status: true,
  175. fixed: '',
  176. columnWidth: 80
  177. },
  178. {
  179. userId: this.$store.state.user.name,
  180. functionId: 102001,
  181. serialNumber: '102001Table1RequiredCompletionDate',
  182. tableId: '102001Table1',
  183. tableName: '询价信息表',
  184. columnProp: 'requiredCompletionDate',
  185. headerAlign: 'center',
  186. align: 'center',
  187. columnLabel: '要求报价日期',
  188. columnHidden: false,
  189. columnImage: false,
  190. columnSortable: false,
  191. sortLv: 0,
  192. status: true,
  193. fixed: '',
  194. columnWidth: 120
  195. },
  196. {
  197. userId: this.$store.state.user.name,
  198. functionId: 102001,
  199. serialNumber: '102001Table1CustomerInquiryNo',
  200. tableId: '102001Table1',
  201. tableName: '询价信息表',
  202. columnProp: 'customerInquiryNo',
  203. headerAlign: 'center',
  204. align: 'center',
  205. columnLabel: '客户询价单号',
  206. columnHidden: false,
  207. columnImage: false,
  208. columnSortable: false,
  209. sortLv: 0,
  210. status: true,
  211. fixed: '',
  212. columnWidth: 120
  213. },
  214. {
  215. userId: this.$store.state.user.name,
  216. functionId: 102001,
  217. serialNumber: '102001Table2PartNo',
  218. tableId: '102001Table2',
  219. tableName: '询价产品表',
  220. columnProp: 'partNo',
  221. headerAlign: 'center',
  222. align: 'center',
  223. columnLabel: '产品编码',
  224. columnHidden: false,
  225. columnImage: false,
  226. columnSortable: false,
  227. sortLv: 0,
  228. status: true,
  229. fixed: '',
  230. columnWidth: 120
  231. },
  232. {
  233. userId: this.$store.state.user.name,
  234. functionId: 102001,
  235. serialNumber: '102001Table2PartDesc',
  236. tableId: '102001Table2',
  237. tableName: '询价产品表',
  238. columnProp: 'partDesc',
  239. headerAlign: 'center',
  240. align: 'center',
  241. columnLabel: '产品描述',
  242. columnHidden: false,
  243. columnImage: false,
  244. columnSortable: false,
  245. sortLv: 0,
  246. status: true,
  247. fixed: '',
  248. columnWidth: 120
  249. },
  250. {
  251. userId: this.$store.state.user.name,
  252. functionId: 102001,
  253. serialNumber: '102001Table1Status',
  254. tableId: '102001Table1',
  255. tableName: '询价信息表',
  256. columnProp: 'status',
  257. headerAlign: 'center',
  258. align: 'center',
  259. columnLabel: '状态',
  260. columnHidden: false,
  261. columnImage: false,
  262. columnSortable: false,
  263. sortLv: 0,
  264. status: true,
  265. fixed: '',
  266. columnWidth: 100
  267. },
  268. {
  269. userId: this.$store.state.user.name,
  270. functionId: 102001,
  271. serialNumber: '102001Table2InquiryQty',
  272. tableId: '102001Table2',
  273. tableName: '询价产品表',
  274. columnProp: 'inquiryQty',
  275. headerAlign: 'center',
  276. align: 'center',
  277. columnLabel: '询价数量',
  278. columnHidden: false,
  279. columnImage: false,
  280. columnSortable: false,
  281. sortLv: 0,
  282. status: true,
  283. fixed: '',
  284. columnWidth: 120
  285. },
  286. {
  287. userId: this.$store.state.user.name,
  288. functionId: 102001,
  289. serialNumber: '102001Table2Unit',
  290. tableId: '102001Table2',
  291. tableName: '询价产品表',
  292. columnProp: 'umName',
  293. headerAlign: 'center',
  294. align: 'center',
  295. columnLabel: '计量单位',
  296. columnHidden: false,
  297. columnImage: false,
  298. columnSortable: false,
  299. sortLv: 0,
  300. status: true,
  301. fixed: '',
  302. columnWidth: 80
  303. },
  304. {
  305. userId: this.$store.state.user.name,
  306. functionId: 102001,
  307. serialNumber: '102001Table2CodeNo',
  308. tableId: '102001Table2',
  309. tableName: '询价产品表',
  310. columnProp: 'codeNo',
  311. headerAlign: 'center',
  312. align: 'center',
  313. columnLabel: '属性模版',
  314. columnHidden: false,
  315. columnImage: false,
  316. columnSortable: false,
  317. sortLv: 0,
  318. status: true,
  319. fixed: '',
  320. columnWidth: 120
  321. },
  322. {
  323. userId: this.$store.state.user.name,
  324. functionId: 102001,
  325. serialNumber: '102001Table1PriorityLevel',
  326. tableId: '102001Table1',
  327. tableName: '询价信息表',
  328. columnProp: 'priorityLevel',
  329. headerAlign: 'center',
  330. align: 'center',
  331. columnLabel: '优先等级',
  332. columnHidden: false,
  333. columnImage: false,
  334. columnSortable: false,
  335. sortLv: 0,
  336. status: true,
  337. fixed: '',
  338. columnWidth: 80
  339. },
  340. {
  341. userId: this.$store.state.user.name,
  342. functionId: 102001,
  343. serialNumber: '102001Table2Remark',
  344. tableId: '102001Table2',
  345. tableName: '询价产品表',
  346. columnProp: 'remark',
  347. headerAlign: 'center',
  348. align: 'center',
  349. columnLabel: '备注',
  350. columnHidden: false,
  351. columnImage: false,
  352. columnSortable: false,
  353. sortLv: 0,
  354. status: true,
  355. fixed: '',
  356. columnWidth: 120
  357. },
  358. {
  359. userId: this.$store.state.user.name,
  360. functionId: 102001,
  361. serialNumber: '102001Table1CreateDate',
  362. tableId: '102001Table1',
  363. tableName: '询价信息表',
  364. columnProp: 'createDate',
  365. headerAlign: 'center',
  366. align: 'center',
  367. columnLabel: '创建时间',
  368. columnHidden: false,
  369. columnImage: false,
  370. columnSortable: false,
  371. sortLv: 0,
  372. status: true,
  373. fixed: '',
  374. columnWidth: 160
  375. },
  376. {
  377. userId: this.$store.state.user.name,
  378. functionId: 102001,
  379. serialNumber: '102001Table1CreateBy',
  380. tableId: '102001Table1',
  381. tableName: '询价信息表',
  382. columnProp: 'createBy',
  383. headerAlign: 'center',
  384. align: 'center',
  385. columnLabel: '创建人',
  386. columnHidden: false,
  387. columnImage: false,
  388. columnSortable: false,
  389. sortLv: 0,
  390. status: true,
  391. fixed: '',
  392. columnWidth: 80
  393. },
  394. {
  395. userId: this.$store.state.user.name,
  396. functionId: 102001,
  397. serialNumber: '102001Table1UpdateDate',
  398. tableId: '102001Table1',
  399. tableName: '询价信息表',
  400. columnProp: 'updateDate',
  401. headerAlign: 'center',
  402. align: 'center',
  403. columnLabel: '更新时间',
  404. columnHidden: false,
  405. columnImage: false,
  406. columnSortable: false,
  407. sortLv: 0,
  408. status: true,
  409. fixed: '',
  410. columnWidth: 160
  411. },
  412. {
  413. userId: this.$store.state.user.name,
  414. functionId: 102001,
  415. serialNumber: '102001Table1UpdateBy',
  416. tableId: '102001Table1',
  417. tableName: '询价信息表',
  418. columnProp: 'updateBy',
  419. headerAlign: 'center',
  420. align: 'center',
  421. columnLabel: '更新人',
  422. columnHidden: false,
  423. columnImage: false,
  424. columnSortable: false,
  425. sortLv: 0,
  426. status: true,
  427. fixed: '',
  428. columnWidth: 80
  429. }
  430. ],
  431. quoteLoading:false,
  432. }
  433. },
  434. methods:{
  435. handleColumnResize(newWidth, oldWidth, column, event){
  436. let inData= this.columnList.filter(item => item.columnProp === column.property)[0]
  437. inData.columnWidth=newWidth
  438. updateColumnSize(inData).then(({data}) => {
  439. if (data.code === 0) {
  440. console.log("栏位宽度保存成功!")
  441. }
  442. })
  443. },
  444. // 获取用户的bu
  445. getSiteAndBuByUserName() {
  446. let tempData = {
  447. username: this.$store.state.user.name,
  448. }
  449. getSiteAndBuByUserName(tempData).then(({data}) => {
  450. if (data.code === 0) {
  451. this.userBuList = data.rows
  452. }
  453. })
  454. },
  455. handleQuery(){
  456. this.queryForm.limit = this.pageSize
  457. this.queryForm.page = this.pageIndex
  458. this.queryForm.status = 'B'
  459. this.queryLoading = true
  460. searchInquiryDetailHeaderInfo(this.queryForm).then(({data})=>{
  461. if (data && data.code === 0){
  462. this.dataList = data.page.list
  463. this.pageIndex = data.page.currPage
  464. this.pageSize = data.page.pageSize
  465. this.totalPage = data.page.totalCount
  466. }else {
  467. this.$message.warning(data.msg);
  468. }
  469. this.queryLoading = false
  470. }).catch((error)=>{
  471. this.$message.error(error);
  472. this.queryLoading = false
  473. })
  474. },
  475. handleSizeChange(val){
  476. this.pageSize = val
  477. this.pageIndex = 1
  478. this.handleQuery();
  479. },
  480. handlePageChange(val){
  481. this.pageIndex = val
  482. this.handleQuery();
  483. },
  484. handleSelectionChange(val) {
  485. this.selectionList = val;
  486. },
  487. handleQuote(){
  488. if (this.selectionList.length === 0){
  489. this.$message.warning("请选择需要报价的单据");
  490. return;
  491. }
  492. let params = this.selectionList.map((item)=>{
  493. item.createBy = this.$store.state.user.name
  494. return item
  495. })
  496. this.quoteLoading = true
  497. batchSaveQuote(params).then(({data})=>{
  498. this.quoteLoading = false
  499. if (data && data.code === 0){
  500. this.$message.success(data.msg);
  501. this.handleQuery();
  502. this.$router.push({
  503. name:'quote-index',
  504. params:{
  505. ids:data.rows
  506. }
  507. })
  508. }else {
  509. this.$message.warning(data.msg);
  510. }
  511. }).catch((error)=>{
  512. this.quoteLoading = false
  513. this.$message.error(error);
  514. })
  515. },
  516. handleDblClick(row){
  517. this.$emit('dblclick',row)
  518. }
  519. },
  520. created() {
  521. this.handleQuery();
  522. }
  523. }
  524. </script>
  525. <template>
  526. <div>
  527. <!-- <el-form :model="queryForm" label-position="top" label-width="100px" style="max-width: 1100px">-->
  528. <!-- <el-row :gutter="15">-->
  529. <!-- <el-col :span="3">-->
  530. <!-- <el-form-item label="申请批次号">-->
  531. <!-- <el-input v-model="queryForm.quotationBatchNo"></el-input>-->
  532. <!-- </el-form-item>-->
  533. <!-- </el-col>-->
  534. <!-- <el-col :span="3">-->
  535. <!-- <el-form-item label="客户编码" v-if="!isComponent">-->
  536. <!-- <el-input v-model="queryForm.customerNo"></el-input>-->
  537. <!-- </el-form-item>-->
  538. <!-- </el-col>-->
  539. <!-- <el-col :span="3">-->
  540. <!-- <el-form-item label="客户名称" v-if="!isComponent">-->
  541. <!-- <el-input v-model="queryForm.customerDesc"></el-input>-->
  542. <!-- </el-form-item>-->
  543. <!-- </el-col>-->
  544. <!-- <el-col :span="3">-->
  545. <!-- <el-form-item label="项目料号" v-if="!isComponent">-->
  546. <!-- <el-input v-model="queryForm.partNo"></el-input>-->
  547. <!-- </el-form-item>-->
  548. <!-- </el-col>-->
  549. <!-- <el-col :span="3">-->
  550. <!-- <el-form-item label="物料描述" v-if="!isComponent">-->
  551. <!-- <el-input v-model="queryForm.partDesc"></el-input>-->
  552. <!-- </el-form-item>-->
  553. <!-- </el-col>-->
  554. <!-- <el-col :span="6" v-if="!isComponent">-->
  555. <!-- <el-form-item label="要求完成日期">-->
  556. <!-- <div style="display: flex">-->
  557. <!-- <el-date-picker style="width: 47%" v-model="queryForm.startDate" type="date" value-format='yyyy-MM-dd' format='yyyy-MM-dd'></el-date-picker>-->
  558. <!-- <div style="width: 6%;text-align: center">-</div>-->
  559. <!-- <el-date-picker style="width: 47%" v-model="queryForm.endDate" type="date" value-format='yyyy-MM-dd' format='yyyy-MM-dd'></el-date-picker>-->
  560. <!-- </div>-->
  561. <!-- </el-form-item>-->
  562. <!-- </el-col>-->
  563. <!-- <el-col :span="3" v-if="!isComponent">-->
  564. <!-- <el-form-item label=" ">-->
  565. <!-- </el-form-item>-->
  566. <!-- </el-col>-->
  567. <!-- <el-col :span="3">-->
  568. <!-- <el-form-item label="批次序号">-->
  569. <!-- <el-input-number :controls="false" :min="0" style="width: 100%" v-model="queryForm.quotationItemNo"></el-input-number>-->
  570. <!-- </el-form-item>-->
  571. <!-- </el-col>-->
  572. <!-- <el-col :span="3">-->
  573. <!-- <el-form-item label="项目编码">-->
  574. <!-- <el-input v-model="queryForm.projectNo"></el-input>-->
  575. <!-- </el-form-item>-->
  576. <!-- </el-col>-->
  577. <!-- <el-col :span="3">-->
  578. <!-- <el-form-item label="项目名称">-->
  579. <!-- <el-input v-model="queryForm.projectDesc"></el-input>-->
  580. <!-- </el-form-item>-->
  581. <!-- </el-col>-->
  582. <!-- <el-col :span="3">-->
  583. <!-- <el-form-item label="报价专员" v-if="!isComponent">-->
  584. <!-- <el-input v-model="queryForm.quoterName"></el-input>-->
  585. <!-- </el-form-item>-->
  586. <!-- </el-col>-->
  587. <!-- <el-col :span="3">-->
  588. <!-- <el-form-item label="优先等级" v-if="!isComponent">-->
  589. <!-- <dict-data-select v-model="queryForm.priorityLevel" clearable :use-default-value="false" dict-type="priority_Level"/>-->
  590. <!-- </el-form-item>-->
  591. <!-- </el-col>-->
  592. <!-- <el-col :span="3">-->
  593. <!-- <el-form-item :label="'状态'">-->
  594. <!-- <el-select v-model="queryForm.quotationStatus" style="width: 100%">-->
  595. <!-- <el-option label="全部" value=""></el-option>-->
  596. <!-- <el-option label="草稿" value="草稿"></el-option>-->
  597. <!-- <el-option label="下达" value="下达"></el-option>-->
  598. <!-- </el-select>-->
  599. <!-- </el-form-item>-->
  600. <!-- </el-col>-->
  601. <!-- <el-col :span="3">-->
  602. <!-- <el-form-item label=" ">-->
  603. <!-- <el-button type="primary" @click="handleQuery">查询</el-button>-->
  604. <!-- </el-form-item>-->
  605. <!-- </el-col>-->
  606. <!-- </el-row>-->
  607. <!-- </el-form>-->
  608. <!-- 查询条件 -->
  609. <el-form :inline="true" label-position="top" :model="queryForm" @keyup.enter.native="handleQuery()">
  610. <el-form-item :label="'BU'">
  611. <el-select v-model="queryForm.bu" placeholder="请选择" clearable style="width: 120px">
  612. <el-option
  613. v-for = "i in userBuList"
  614. :key = "i.buNo"
  615. :label = "i.buDesc"
  616. :value = "i.buNo">
  617. </el-option>
  618. </el-select>
  619. </el-form-item>
  620. <el-form-item label="询价单号">
  621. <el-input v-model="queryForm.rfqNo" clearable style="width: 120px"></el-input>
  622. </el-form-item>
  623. <el-form-item label="客户编码">
  624. <span style="cursor: pointer" slot="label" @click="getBaseList(509,2)"><a herf="#">客户编码</a></span>
  625. <el-input v-model="queryForm.customerNo" clearable style="width: 120px"></el-input>
  626. </el-form-item>
  627. <el-form-item :label="'客户名称'">
  628. <el-input v-model="queryForm.customerDesc" clearable style="width: 120px"></el-input>
  629. </el-form-item>
  630. <el-form-item :label="'询价日期'">
  631. <el-date-picker
  632. style="width: 120px"
  633. v-model="queryForm.requestStartDate"
  634. type="date"
  635. value-format="yyyy-MM-dd"
  636. placeholder="选择日期">
  637. </el-date-picker>
  638. </el-form-item>
  639. <el-form-item label=" ">
  640. <div style="text-align: center;"><i class="el-icon-right"></i></div>
  641. </el-form-item>
  642. <el-form-item :label="' '">
  643. <el-date-picker
  644. style="width: 120px"
  645. v-model="queryForm.requestEndDate"
  646. type="date"
  647. value-format="yyyy-MM-dd"
  648. placeholder="选择日期">
  649. </el-date-picker>
  650. </el-form-item>
  651. <el-form-item :label="'优先等级'">
  652. <dict-data-select v-model="queryForm.priorityLevel" clearable style="width: 120px" :use-default-value="false"
  653. dict-type="priority_Level"/>
  654. </el-form-item>
  655. </el-form>
  656. <el-form :inline="true" label-position="top" :model="queryForm" @keyup.enter.native="handleQuery()">
  657. <el-form-item label="产品编码">
  658. <span style="cursor: pointer" slot="label" @click="getBaseList(2005)"><a herf="#">产品编码</a></span>
  659. <el-input v-model="queryForm.partNo" clearable style="width: 120px"></el-input>
  660. </el-form-item>
  661. <el-form-item :label="'产品名称'">
  662. <el-input v-model="queryForm.partDesc" clearable style="width: 120px"></el-input>
  663. </el-form-item>
  664. <el-form-item :label="'PjM'">
  665. <span style="cursor: pointer" slot="label" @click="getBaseList(2004,1)"><a herf="#">PjM</a></span>
  666. <el-input v-model="queryForm.requesterName" clearable style="width: 120px"></el-input>
  667. </el-form-item>
  668. <el-form-item :label="'报价专员'">
  669. <span style="cursor: pointer" slot="label" @click="getBaseList(2002,1)"><a herf="#">报价专员</a></span>
  670. <el-input v-model="queryForm.quoterName" clearable style="width: 120px"></el-input>
  671. </el-form-item>
  672. <el-form-item :label="'要求报价日期'">
  673. <el-date-picker
  674. style="width: 120px"
  675. v-model="queryForm.requiredCompletionStartDate"
  676. type="date"
  677. value-format="yyyy-MM-dd"
  678. placeholder="选择日期">
  679. </el-date-picker>
  680. </el-form-item>
  681. <el-form-item label=" ">
  682. <div style="text-align: center;"><i class="el-icon-right"></i></div>
  683. </el-form-item>
  684. <el-form-item :label="' '">
  685. <el-date-picker
  686. style="width: 120px"
  687. v-model="queryForm.requiredCompletionEndDate"
  688. type="date"
  689. value-format="yyyy-MM-dd"
  690. placeholder="选择日期">
  691. </el-date-picker>
  692. </el-form-item>
  693. <el-form-item :label="' '">
  694. <el-button @click="handleQuery()">查询</el-button>
  695. <el-button type="primary" :loading="quoteLoading" @click="handleQuote" v-if="!isComponent">报价</el-button>
  696. <!-- <el-button type="primary" icon="el-icon-upload" @click="handleImportQuotation()">导入</el-button>-->
  697. <!-- <download-excel-->
  698. <!-- :fields="fields()"-->
  699. <!-- :data="exportData"-->
  700. <!-- type="xls"-->
  701. <!-- :name="exportName"-->
  702. <!-- :header="exportHeader"-->
  703. <!-- :footer="exportFooter"-->
  704. <!-- :fetch="createExportData"-->
  705. <!-- :before-generate="startDownload"-->
  706. <!-- :before-finish="finishDownload"-->
  707. <!-- worksheet="导出信息"-->
  708. <!-- class="el-button el-button&#45;&#45;primary el-button&#45;&#45;medium">-->
  709. <!-- {{ "导出" }}-->
  710. <!-- </download-excel>-->
  711. </el-form-item>
  712. </el-form>
  713. <el-table :data="dataList" border v-loading="queryLoading" :height="height" @selection-change="handleSelectionChange" @row-dblclick="handleDblClick">
  714. <el-table-column type="selection" width="55" fixed="left" align="center" v-if="!isComponent"></el-table-column>
  715. <el-table-column
  716. v-for="(item,index) in columns" :key="index"
  717. :sortable="item.columnSortable"
  718. :prop="item.columnProp"
  719. :header-align="item.headerAlign"
  720. :show-overflow-tooltip="item.showOverflowTooltip"
  721. :align="item.align"
  722. :fixed="item.fixed===''?false:item.fixed"
  723. :min-width="item.columnWidth"
  724. :label="item.columnLabel">
  725. <template slot-scope="scope">
  726. <div v-if="item.columnProp !== 'status' && item.columnProp !== 'priorityLevel'">
  727. <span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
  728. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  729. style="width: 100px; height: 80px"/></span>
  730. </div>
  731. <div v-else-if="item.columnProp === 'status'">
  732. <span v-if="!item.columnHidden">
  733. <span v-if="scope.row.status === 'C'">草稿</span>
  734. <span v-if="scope.row.status === 'B'">已下达</span>
  735. <span v-if="scope.row.status === 'A'">已报价</span>
  736. </span>
  737. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  738. style="width: 100px; height: 80px"/></span>
  739. </div>
  740. <div v-else-if="item.columnProp === 'priorityLevel'">
  741. <span v-if="!item.columnHidden">
  742. <span v-if="scope.row.priorityLevel === ' A'">重要客户</span>
  743. <span v-if="scope.row.priorityLevel === ' B'">潜力客户</span>
  744. <span v-if="scope.row.priorityLevel === ' C'">一般客户</span>
  745. </span>
  746. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  747. style="width: 100px; height: 80px"/></span>
  748. </div>
  749. </template>
  750. </el-table-column>
  751. </el-table>
  752. <el-pagination @size-change="handleSizeChange"
  753. @current-change="handlePageChange"
  754. :current-page="pageIndex"
  755. :page-sizes="[ 50, 100, 200, 500]"
  756. :page-size="pageSize"
  757. :total="totalPage"
  758. layout="total,sizes, prev, pager, next, jumper">
  759. </el-pagination>
  760. </div>
  761. </template>
  762. <style scoped>
  763. </style>