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.

1688 lines
61 KiB

  1. <template>
  2. <div>
  3. <el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
  4. <el-form-item :label="'BU'">
  5. <el-select v-model="searchData.buDesc" placeholder="请选择" clearable style="width: 130px">
  6. <el-option
  7. v-for = "i in userBuList"
  8. :key = "i.buNo"
  9. :label = "i.buDesc"
  10. :value = "i.buDesc">
  11. </el-option>
  12. </el-select>
  13. </el-form-item>
  14. <el-form-item :label="'项目编码'">
  15. <el-input v-model="searchData.projectNo" style="width: 120px"></el-input>
  16. </el-form-item>
  17. <el-form-item :label="'项目名称'">
  18. <el-input v-model="searchData.projectDesc" style="width: 120px"></el-input>
  19. </el-form-item>
  20. <el-form-item :label="'项目料号'">
  21. <el-input v-model="searchData.testPartNo" style="width: 120px"></el-input>
  22. </el-form-item>
  23. <el-form-item :label="'料号描述'">
  24. <el-input v-model="searchData.partDesc" style="width: 120px"></el-input>
  25. </el-form-item>
  26. <el-form-item :label="'客户编码'">
  27. <el-input v-model="searchData.customerNo" style="width: 120px"></el-input>
  28. </el-form-item>
  29. <el-form-item :label="'客户名称'">
  30. <el-input v-model="searchData.customerDesc" style="width: 120px"></el-input>
  31. </el-form-item>
  32. <el-form-item :label="'打样单号'">
  33. <el-input v-model="searchData.proofingNo" style="width: 120px"></el-input>
  34. </el-form-item>
  35. <el-form-item :label="'项目分类'">
  36. <el-select v-model="searchData.cProjectTypeDb" placeholder="请选择" clearable style="width: 130px">
  37. <el-option
  38. v-for = "i in projectCategoryList"
  39. :key = "i.projectCategory"
  40. :label = "i.projectCategory"
  41. :value = "i.projectCategory">
  42. </el-option>
  43. </el-select>
  44. </el-form-item>
  45. <el-form-item :label="'项目状态'">
  46. <el-select v-model="searchData.status" placeholder="请选择" clearable style="width: 130px">
  47. <el-option
  48. v-for = "i in statusList"
  49. :key = "i.status"
  50. :label = "i.status"
  51. :value = "i.status">
  52. </el-option>
  53. </el-select>
  54. </el-form-item>
  55. <el-form-item :label="'PM/Sales'">
  56. <el-select v-model="searchData.projectManager" placeholder="请选择" clearable style="width: 130px">
  57. <el-option
  58. v-for = "i in projectManagersList"
  59. :key = "i.projectManagerId"
  60. :label = "i.projectManagerName"
  61. :value = "i.projectManager">
  62. </el-option>
  63. </el-select>
  64. </el-form-item>
  65. <el-form-item :label="'PjM'">
  66. <el-select v-model="searchData.projectOwner" placeholder="请选择" clearable style="width: 130px">
  67. <el-option
  68. v-for = "i in projectOwnersList"
  69. :key = "i.projectOwnerId"
  70. :label = "i.projectOwnerName"
  71. :value = "i.projectOwner">
  72. </el-option>
  73. </el-select>
  74. </el-form-item>
  75. <el-form-item :label="'Engineer'">
  76. <el-select v-model="searchData.engineer" placeholder="请选择" clearable style="width: 130px">
  77. <el-option
  78. v-for = "i in engineersList"
  79. :key = "i.engineerId"
  80. :label = "i.engineerName"
  81. :value = "i.engineer">
  82. </el-option>
  83. </el-select>
  84. </el-form-item>
  85. <el-form-item :label="'立项日期:'">
  86. <el-date-picker
  87. style="width: 120px"
  88. v-model="searchData.startDate"
  89. type="date"
  90. value-format="yyyy-MM-dd"
  91. placeholder="选择日期">
  92. </el-date-picker>
  93. -
  94. <el-date-picker
  95. style="width: 120px"
  96. v-model="searchData.endDate"
  97. type="date"
  98. value-format="yyyy-MM-dd"
  99. placeholder="选择日期">
  100. </el-date-picker>
  101. </el-form-item>
  102. <!-- <el-form-item :label="'在用'">-->
  103. <!-- <el-select filterable v-model="searchData.active" style="width: 130px">-->
  104. <!-- <el-option label="全部" value=""></el-option>-->
  105. <!-- <el-option label="是" value="Y"></el-option>-->
  106. <!-- <el-option label="否" value="N"></el-option>-->
  107. <!-- </el-select>-->
  108. <!-- </el-form-item>-->
  109. <el-form-item :label="' '">
  110. <el-button @click="getDataList()">查询</el-button>
  111. <download-excel
  112. :fields="fields()"
  113. :data="exportData"
  114. type="xls"
  115. :name="exportName"
  116. :header="exportHeader"
  117. :footer="exportFooter"
  118. :fetch="createExportData"
  119. :before-generate="startDownload"
  120. :before-finish="finishDownload"
  121. worksheet="导出信息"
  122. class="el-button el-button--primary el-button--medium">
  123. {{ "导出" }}
  124. </download-excel>
  125. </el-form-item>
  126. </el-form>
  127. <el-table
  128. @header-dragend="handleColumnResize"
  129. :data="dataList"
  130. border
  131. :height="height"
  132. style="width: 100%;margin-top: 0px;"
  133. ref="projectAllDocumentDocumentTable"
  134. @row-click="projectAllProofClickRow"
  135. :row-style="rowStyle"
  136. v-loading="dataListLoading">
  137. <el-table-column
  138. v-for="(item,index) in columnProjectAllProofList" :key="index"
  139. :sortable="item.columnSortable"
  140. :prop="item.columnProp"
  141. :header-align="item.headerAlign"
  142. :show-overflow-tooltip="item.showOverflowTooltip"
  143. :align="item.align"
  144. :fixed="item.fixed==''?false:item.fixed"
  145. :min-width="item.columnWidth"
  146. :label="item.columnLabel">
  147. <template slot-scope="scope">
  148. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  149. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  150. style="width: 100px; height: 80px"/></span>
  151. </template>
  152. </el-table-column>
  153. <el-table-column
  154. label="操作"
  155. align="center"
  156. fixed="left"
  157. width="70">
  158. <template slot-scope="scope">
  159. <a type="text" size="small" @click="toMes(scope.row)">项目信息</a>
  160. </template>
  161. </el-table-column>
  162. </el-table>
  163. <el-pagination
  164. @size-change="sizeChangeHandle"
  165. @current-change="currentChangeHandle"
  166. :current-page="pageIndex"
  167. :page-sizes="[20, 50, 100, 200, 500]"
  168. :page-size="pageSize"
  169. :total="totalPage"
  170. layout="total, sizes, prev, pager, next, jumper">
  171. </el-pagination>
  172. </div>
  173. </template>
  174. <script>
  175. import {
  176. searchProjectUploadsDocumentList,
  177. searchProjectOverUploadsDocumentList,
  178. searchConfirmProgressList, searchOverConfirmProgressList, getProofDocument, searchAllProjectUploadsDocumentList,
  179. searchAllProofing, searchAllConfirmProgressList, queryAllProofing
  180. } from "../../../api/eam/eamProofing";
  181. import {searchConfirmProgressPusherList, warnSendMailHandle} from "../../../api/eam/eamProject";
  182. import {getSiteAndBuByUserName} from "../../../api/qc/qc";
  183. import {removeUserFavorite, saveUserFavorite, userFavoriteList} from "../../../api/userFavorite";
  184. import {getTableDefaultListLanguage, getTableUserListLanguage, updateColumnSize} from "../../../api/table";
  185. import {EventBus} from "../../../main";
  186. import UploadFileList1 from "../common/uploadFileList1.vue";
  187. export default {
  188. components: {UploadFileList1},
  189. computed: {
  190. projectOwnersList() {
  191. return this.allPersonnelInfoList.filter(item => item.projectOwnerId !== undefined);
  192. },
  193. projectManagersList() {
  194. return this.allPersonnelInfoList.filter(item => item.projectManagerId !== undefined);
  195. },
  196. engineersList() {
  197. return this.allPersonnelInfoList.filter(item => item.engineerId !== undefined);
  198. }
  199. },
  200. data() {
  201. return {
  202. // 导出
  203. exportData: [],
  204. exportName: '项目打样记录' + this.dayjs().format('YYYYMMDDHHmmss'),
  205. exportHeader: ['项目打样记录'],
  206. exportFooter: [],
  207. folder: '',
  208. dataList: [],
  209. allDataList: [],
  210. allPersonnelInfoList: [],
  211. fileList: [],
  212. height: 200,
  213. pageIndex: 1,
  214. pageSize: 20,
  215. totalPage: 0,
  216. dataListLoading: false,
  217. uploadDialog:false,
  218. isEditable: true,
  219. isMassProductionStage: true,
  220. warnFlag: false,
  221. projectAllProofClickRow: {},
  222. selectTypeFlag: [],
  223. searchData: {
  224. site: this.$store.state.user.site,
  225. userId: this.$store.state.user.id,
  226. projectId: '',
  227. projectNo: '',
  228. projectDesc: '',
  229. projectPartId: '',
  230. testPartNo: '',
  231. partDesc: '',
  232. customerNo: '',
  233. customerDesc: '',
  234. buDesc: '',
  235. projectCategory: '',
  236. status: '',
  237. startDate:'',
  238. endDate:'',
  239. projectCreationDate: new Date(),
  240. projectCloseDate:'',
  241. needDate:'',
  242. projectManager: '',
  243. projectOwner: '',
  244. engineer: '',
  245. page: 1,
  246. limit: 10,
  247. },
  248. columnProjectAllProofList: [
  249. {
  250. userId: this.$store.state.user.name,
  251. functionId: 401008,
  252. serialNumber: '401008Table1BuDesc',
  253. tableId: "401008Table1",
  254. tableName: "项目打样记录表",
  255. columnProp: 'buDesc',
  256. headerAlign: "center",
  257. align: "center",
  258. columnLabel: 'BU',
  259. columnHidden: false,
  260. columnImage: false,
  261. columnSortable: false,
  262. sortLv: 0,
  263. status: true,
  264. fixed: '',
  265. columnWidth: 100,
  266. },
  267. {
  268. userId: this.$store.state.user.name,
  269. functionId: 401008,
  270. serialNumber: '401008Table1ProjectNo',
  271. tableId: "401008Table1",
  272. tableName: "项目打样记录表",
  273. columnProp: 'projectNo',
  274. headerAlign: "center",
  275. align: "center",
  276. columnLabel: '项目编码',
  277. columnHidden: false,
  278. columnImage: false,
  279. columnSortable: false,
  280. sortLv: 0,
  281. status: true,
  282. fixed: '',
  283. columnWidth: 100,
  284. },
  285. {
  286. userId: this.$store.state.user.name,
  287. functionId: 401008,
  288. serialNumber: '401008Table1ProjectDesc',
  289. tableId: "401008Table1",
  290. tableName: "项目打样记录表",
  291. columnProp: 'projectDesc',
  292. headerAlign: "center",
  293. align: "center",
  294. columnLabel: '项目名称',
  295. columnHidden: false,
  296. columnImage: false,
  297. columnSortable: false,
  298. sortLv: 0,
  299. status: true,
  300. fixed: '',
  301. columnWidth: 100,
  302. },
  303. {
  304. userId: this.$store.state.user.name,
  305. functionId: 401008,
  306. serialNumber: '401008Table1TestPartNo',
  307. tableId: "401008Table1",
  308. tableName: "项目打样记录表",
  309. columnProp: 'testPartNo',
  310. headerAlign: "center",
  311. align: "center",
  312. columnLabel: '项目料号',
  313. columnHidden: false,
  314. columnImage: false,
  315. columnSortable: false,
  316. sortLv: 0,
  317. status: true,
  318. fixed: '',
  319. columnWidth: 100,
  320. },
  321. {
  322. userId: this.$store.state.user.name,
  323. functionId: 401008,
  324. serialNumber: '401008Table1PartDesc',
  325. tableId: "401008Table1",
  326. tableName: "项目打样记录表",
  327. columnProp: 'partDesc',
  328. headerAlign: "center",
  329. align: "center",
  330. columnLabel: '料号描述',
  331. columnHidden: false,
  332. columnImage: false,
  333. columnSortable: false,
  334. sortLv: 0,
  335. status: true,
  336. fixed: '',
  337. columnWidth: 100,
  338. },
  339. {
  340. userId: this.$store.state.user.name,
  341. functionId: 401008,
  342. serialNumber: '401008Table1customerNo',
  343. tableId: "401008Table1",
  344. tableName: "项目打样记录表",
  345. columnProp: "customerNo",
  346. headerAlign: "center",
  347. align: "left",
  348. columnLabel: "客户编码",
  349. columnHidden: false,
  350. columnImage: false,
  351. columnSortable: false,
  352. sortLv: 0,
  353. status: true,
  354. fixed: '',
  355. columnWidth: 100
  356. },
  357. {
  358. userId: this.$store.state.user.name,
  359. functionId: 401008,
  360. serialNumber: '401008Table1customerDesc',
  361. tableId: "401008Table1",
  362. tableName: "项目打样记录表",
  363. columnProp: "customerDesc",
  364. headerAlign: "center",
  365. align: "left",
  366. columnLabel: "客户名称",
  367. columnHidden: false,
  368. columnImage: false,
  369. columnSortable: false,
  370. sortLv: 0,
  371. status: true,
  372. fixed: '',
  373. columnWidth: 150
  374. },
  375. {
  376. userId: this.$store.state.user.name,
  377. functionId: 401008,
  378. serialNumber: '401008Table1ProjectCreationDate',
  379. tableId: "401008Table1",
  380. tableName: "项目打样记录表",
  381. columnProp: "buildDate",
  382. headerAlign: "center",
  383. align: "center",
  384. columnLabel: "立项日期",
  385. columnHidden: false,
  386. columnImage: false,
  387. columnSortable: false,
  388. sortLv: 0,
  389. status: true,
  390. fixed: '',
  391. columnWidth: 120
  392. },
  393. {
  394. userId: this.$store.state.user.name,
  395. functionId: 401008,
  396. serialNumber: '401008Table1Priority',
  397. tableId: "401008Table1",
  398. tableName: "项目打样记录表",
  399. columnProp: 'priority',
  400. headerAlign: "center",
  401. align: "left",
  402. columnLabel: '优先级',
  403. columnHidden: false,
  404. columnImage: false,
  405. columnSortable: false,
  406. sortLv: 0,
  407. status: true,
  408. fixed: '',
  409. columnWidth: 80,
  410. },
  411. {
  412. userId: this.$store.state.user.name,
  413. functionId: 401008,
  414. serialNumber: '401008Table1CProjectRegion',
  415. tableId: "401008Table1",
  416. tableName: "项目打样记录表",
  417. columnProp: 'cProjectRegion',
  418. headerAlign: "center",
  419. align: "left",
  420. columnLabel: '区域',
  421. columnHidden: false,
  422. columnImage: false,
  423. columnSortable: false,
  424. sortLv: 0,
  425. status: true,
  426. fixed: '',
  427. columnWidth: 120,
  428. },
  429. {
  430. userId: this.$store.state.user.name,
  431. functionId: 401008,
  432. serialNumber: '401008Table1ProjectManager',
  433. tableId: "401008Table1",
  434. tableName: "项目打样记录表",
  435. columnProp: 'projectManagerName',
  436. headerAlign: "center",
  437. align: "left",
  438. columnLabel: 'PM/Sales',
  439. columnHidden: false,
  440. columnImage: false,
  441. columnSortable: false,
  442. sortLv: 0,
  443. status: true,
  444. fixed: '',
  445. columnWidth: 120,
  446. },
  447. {
  448. userId: this.$store.state.user.name,
  449. functionId: 401008,
  450. serialNumber: '401008Table1ProjectOwner',
  451. tableId: "401008Table1",
  452. tableName: "项目打样记录表",
  453. columnProp: 'projectOwnerName',
  454. headerAlign: "center",
  455. align: "left",
  456. columnLabel: 'PjM',
  457. columnHidden: false,
  458. columnImage: false,
  459. columnSortable: false,
  460. sortLv: 0,
  461. status: true,
  462. fixed: '',
  463. columnWidth: 120,
  464. },
  465. {
  466. userId: this.$store.state.user.name,
  467. functionId: 401008,
  468. serialNumber: '401008Table1Engineer',
  469. tableId: "401008Table1",
  470. tableName: "项目打样记录表",
  471. columnProp: 'engineerName',
  472. headerAlign: "center",
  473. align: "left",
  474. columnLabel: 'Engineer',
  475. columnHidden: false,
  476. columnImage: false,
  477. columnSortable: false,
  478. sortLv: 0,
  479. status: true,
  480. fixed: '',
  481. columnWidth: 120,
  482. },
  483. {
  484. userId: this.$store.state.user.name,
  485. functionId: 401008,
  486. serialNumber: '401008Table1CQualityEngineer1',
  487. tableId: "401008Table1",
  488. tableName: "项目打样记录表",
  489. columnProp: 'cQualityEngineer1Name',
  490. headerAlign: "center",
  491. align: "left",
  492. columnLabel: 'IPQC-Lam/Pri/Etch/Slit',
  493. columnHidden: false,
  494. columnImage: false,
  495. columnSortable: false,
  496. sortLv: 0,
  497. status: true,
  498. fixed: '',
  499. columnWidth: 170,
  500. },
  501. {
  502. userId: this.$store.state.user.name,
  503. functionId: 401008,
  504. serialNumber: '401008Table1CQualityEngineer2',
  505. tableId: "401008Table1",
  506. tableName: "项目打样记录表",
  507. columnProp: 'cQualityEngineer2Name',
  508. headerAlign: "center",
  509. align: "left",
  510. columnLabel: 'IPQC-Converting',
  511. columnHidden: false,
  512. columnImage: false,
  513. columnSortable: false,
  514. sortLv: 0,
  515. status: true,
  516. fixed: '',
  517. columnWidth: 150,
  518. },
  519. {
  520. userId: this.$store.state.user.name,
  521. functionId: 401008,
  522. serialNumber: '401008Table1CQualityEngineer3',
  523. tableId: "401008Table1",
  524. tableName: "项目打样记录表",
  525. columnProp: 'cQualityEngineer3Name',
  526. headerAlign: "center",
  527. align: "left",
  528. columnLabel: 'FQC1',
  529. columnHidden: false,
  530. columnImage: false,
  531. columnSortable: false,
  532. sortLv: 0,
  533. status: true,
  534. fixed: '',
  535. columnWidth: 120,
  536. },
  537. {
  538. userId: this.$store.state.user.name,
  539. functionId: 401008,
  540. serialNumber: '401008Table1CQualityEngineer5',
  541. tableId: "401008Table1",
  542. tableName: "项目打样记录表",
  543. columnProp: 'cQualityEngineer5Name',
  544. headerAlign: "center",
  545. align: "left",
  546. columnLabel: 'FQC2',
  547. columnHidden: false,
  548. columnImage: false,
  549. columnSortable: false,
  550. sortLv: 0,
  551. status: true,
  552. fixed: '',
  553. columnWidth: 120,
  554. },
  555. {
  556. userId: this.$store.state.user.name,
  557. functionId: 401008,
  558. serialNumber: '401008Table1CQualityEngineer6',
  559. tableId: "401008Table1",
  560. tableName: "项目打样记录表",
  561. columnProp: 'cQualityEngineer6Name',
  562. headerAlign: "center",
  563. align: "left",
  564. columnLabel: 'IQC',
  565. columnHidden: false,
  566. columnImage: false,
  567. columnSortable: false,
  568. sortLv: 0,
  569. status: true,
  570. fixed: '',
  571. columnWidth: 120,
  572. },
  573. {
  574. userId: this.$store.state.user.name,
  575. functionId: 401008,
  576. serialNumber: '401008Table1CManufactureEngineer',
  577. tableId: "401008Table1",
  578. tableName: "项目打样记录表",
  579. columnProp: 'cManufactureEngineerName',
  580. headerAlign: "center",
  581. align: "left",
  582. columnLabel: 'MFG',
  583. columnHidden: false,
  584. columnImage: false,
  585. columnSortable: false,
  586. sortLv: 0,
  587. status: true,
  588. fixed: '',
  589. columnWidth: 120,
  590. },
  591. {
  592. userId: this.$store.state.user.name,
  593. functionId: 401008,
  594. serialNumber: '401008Table1CQualityEngineer4',
  595. tableId: "401008Table1",
  596. tableName: "项目打样记录表",
  597. columnProp: 'cQualityEngineer4Name',
  598. headerAlign: "center",
  599. align: "left",
  600. columnLabel: 'SQE',
  601. columnHidden: false,
  602. columnImage: false,
  603. columnSortable: false,
  604. sortLv: 0,
  605. status: true,
  606. fixed: '',
  607. columnWidth: 120,
  608. },
  609. {
  610. userId: this.$store.state.user.name,
  611. functionId: 401008,
  612. serialNumber: '401008Table1DocEngineer',
  613. tableId: "401008Table1",
  614. tableName: "项目打样记录表",
  615. columnProp: 'docEngineerName',
  616. headerAlign: "center",
  617. align: "left",
  618. columnLabel: '文档工程师',
  619. columnHidden: false,
  620. columnImage: false,
  621. columnSortable: false,
  622. sortLv: 0,
  623. status: true,
  624. fixed: '',
  625. columnWidth: 120,
  626. },
  627. {
  628. userId: this.$store.state.user.name,
  629. functionId: 401008,
  630. serialNumber: '401008Table1IpqcHardTag',
  631. tableId: "401008Table1",
  632. tableName: "项目打样记录表",
  633. columnProp: 'ipqcHardTagName',
  634. headerAlign: "center",
  635. align: "left",
  636. columnLabel: 'IPQC-Hardtag',
  637. columnHidden: false,
  638. columnImage: false,
  639. columnSortable: false,
  640. sortLv: 0,
  641. status: true,
  642. fixed: '',
  643. columnWidth: 120,
  644. },
  645. {
  646. userId: this.$store.state.user.name,
  647. functionId: 401008,
  648. serialNumber: '401008Table1CQualityEngineer7',
  649. tableId: "401008Table1",
  650. tableName: "项目打样记录表",
  651. columnProp: 'cQualityEngineer7Name',
  652. headerAlign: "center",
  653. align: "left",
  654. columnLabel: '前道工程师',
  655. columnHidden: false,
  656. columnImage: false,
  657. columnSortable: false,
  658. sortLv: 0,
  659. status: true,
  660. fixed: '',
  661. columnWidth: 120,
  662. },
  663. {
  664. userId: this.$store.state.user.name,
  665. functionId: 401008,
  666. serialNumber: '401008Table1Status',
  667. tableId: "401008Table1",
  668. tableName: "项目打样记录表",
  669. columnProp: 'status',
  670. headerAlign: "center",
  671. align: "left",
  672. columnLabel: '物料状态' ,
  673. columnHidden: false,
  674. columnImage: false,
  675. columnSortable: false,
  676. sortLv: 0,
  677. status: true,
  678. fixed: '',
  679. columnWidth: 100,
  680. },
  681. {
  682. userId: this.$store.state.user.name,
  683. functionId: 401008,
  684. serialNumber: '401008Table1ProofingStatus',
  685. tableId: "401008Table1",
  686. tableName: "项目打样记录表",
  687. columnProp: 'proofingStatus',
  688. headerAlign: "center",
  689. align: "left",
  690. columnLabel: '打样状态' ,
  691. columnHidden: false,
  692. columnImage: false,
  693. columnSortable: false,
  694. sortLv: 0,
  695. status: true,
  696. fixed: '',
  697. columnWidth: 100,
  698. },
  699. {
  700. userId: this.$store.state.user.name,
  701. functionId: 401008,
  702. serialNumber: '401008Table1NeedDate',
  703. tableId: "401008Table1",
  704. tableName: "项目打样记录表",
  705. columnProp: 'needDate',
  706. headerAlign: "center",
  707. align: "center",
  708. columnLabel: '项目物料预计完成日期',
  709. columnHidden: false,
  710. columnImage: false,
  711. columnSortable: false,
  712. sortLv: 0,
  713. status: true,
  714. fixed: '',
  715. columnWidth: 130,
  716. },
  717. {
  718. userId: this.$store.state.user.name,
  719. functionId: 401008,
  720. serialNumber: '401008Table1CloseDate',
  721. tableId: "401008Table1",
  722. tableName: "项目打样记录表",
  723. columnProp: 'closeDate',
  724. headerAlign: "center",
  725. align: "center",
  726. columnLabel: '转量产日期',
  727. columnHidden: false,
  728. columnImage: false,
  729. columnSortable: false,
  730. sortLv: 0,
  731. status: true,
  732. fixed: '',
  733. columnWidth: 120,
  734. },
  735. {
  736. userId: this.$store.state.user.name,
  737. functionId: 401008,
  738. serialNumber: '401008Table1FinalPartNo',
  739. tableId: "401008Table1",
  740. tableName: "项目打样记录表",
  741. columnProp: 'finalPartNo',
  742. headerAlign: "center",
  743. align: "left",
  744. columnLabel: 'ERP正式料号',
  745. columnHidden: false,
  746. columnImage: false,
  747. columnSortable: false,
  748. sortLv: 0,
  749. status: true,
  750. fixed: '',
  751. columnWidth: 120,
  752. },
  753. {
  754. userId: this.$store.state.user.name,
  755. functionId: 103001,
  756. serialNumber: '103001Table1RequiredDeliveryDate',
  757. tableId: '103001Table1',
  758. tableName: '打样记录表',
  759. columnProp: 'planStartDate',
  760. headerAlign: 'center',
  761. align: 'center',
  762. columnLabel: '打样开始日期',
  763. columnHidden: false,
  764. columnImage: false,
  765. columnSortable: false,
  766. sortLv: 0,
  767. status: true,
  768. fixed: '',
  769. columnWidth: 90
  770. },
  771. {
  772. userId: this.$store.state.user.name,
  773. functionId: 103001,
  774. serialNumber: '103001Table1ProofingNo',
  775. tableId: '103001Table1',
  776. tableName: '打样记录表',
  777. columnProp: 'proofingNo',
  778. headerAlign: 'center',
  779. align: 'center',
  780. columnLabel: '打样单号',
  781. columnHidden: false,
  782. columnImage: false,
  783. columnSortable: false,
  784. sortLv: 0,
  785. status: true,
  786. fixed: '',
  787. columnWidth: 80
  788. },
  789. {
  790. userId: this.$store.state.user.name,
  791. functionId: 103001,
  792. serialNumber: '103001Table1ProofingNumber',
  793. tableId: '103001Table1',
  794. tableName: '打样记录表',
  795. columnProp: 'proofingNumber',
  796. headerAlign: 'center',
  797. align: 'center',
  798. columnLabel: '数量',
  799. columnHidden: false,
  800. columnImage: false,
  801. columnSortable: false,
  802. sortLv: 0,
  803. status: true,
  804. fixed: '',
  805. columnWidth: 80
  806. },
  807. {
  808. userId: this.$store.state.user.name,
  809. functionId: 401008,
  810. serialNumber: '401008Table1CProjectTypeDb',
  811. tableId: "401008Table1",
  812. tableName: "项目打样记录表",
  813. columnProp: 'cProjectTypeDb',
  814. headerAlign: "center",
  815. align: "left",
  816. columnLabel: '项目分类',
  817. columnHidden: false,
  818. columnImage: false,
  819. columnSortable: false,
  820. sortLv: 0,
  821. status: true,
  822. fixed: '',
  823. columnWidth: 80,
  824. },
  825. {
  826. userId: this.$store.state.user.name,
  827. functionId: 103001,
  828. serialNumber: '103001Table1RequiredDeliveryDate',
  829. tableId: '103001Table1',
  830. tableName: '打样记录表',
  831. columnProp: 'requiredDeliveryDate',
  832. headerAlign: 'center',
  833. align: 'center',
  834. columnLabel: '打样预计完成日期',
  835. columnHidden: false,
  836. columnImage: false,
  837. columnSortable: false,
  838. sortLv: 0,
  839. status: true,
  840. fixed: '',
  841. columnWidth: 120
  842. },
  843. {
  844. userId: this.$store.state.user.name,
  845. functionId: 103001,
  846. serialNumber: '103001Table1ActualityDeliveryDate',
  847. tableId: '103001Table1',
  848. tableName: '打样记录表',
  849. columnProp: 'actualityDeliveryDate',
  850. headerAlign: 'center',
  851. align: 'center',
  852. columnLabel: '实际完成日期',
  853. columnHidden: false,
  854. columnImage: false,
  855. columnSortable: false,
  856. sortLv: 0,
  857. status: true,
  858. fixed: '',
  859. columnWidth: 80
  860. },
  861. {
  862. userId: this.$store.state.user.name,
  863. functionId: 103001,
  864. serialNumber: '103001Table1CreateDate',
  865. tableId: '103001Table1',
  866. tableName: '打样文档表',
  867. columnProp: 'createDate',
  868. headerAlign: 'center',
  869. align: 'center',
  870. columnLabel: '打样单创建时间',
  871. columnHidden: false,
  872. columnImage: false,
  873. columnSortable: false,
  874. sortLv: 0,
  875. status: true,
  876. fixed: '',
  877. columnWidth: 130
  878. },
  879. {
  880. userId: this.$store.state.user.name,
  881. functionId: 103001,
  882. serialNumber: '103001Table1CreateBy',
  883. tableId: '103001Table1',
  884. tableName: '打样文档表',
  885. columnProp: 'createBy',
  886. headerAlign: 'center',
  887. align: 'center',
  888. columnLabel: '打样单创建人',
  889. columnHidden: false,
  890. columnImage: false,
  891. columnSortable: false,
  892. sortLv: 0,
  893. status: true,
  894. fixed: '',
  895. columnWidth: 90
  896. }
  897. ],
  898. userBuList: [],
  899. projectCategoryList: [
  900. {
  901. projectCategory: 'Low Risk',
  902. },
  903. {
  904. projectCategory: 'High Risk',
  905. },
  906. {
  907. projectCategory: 'Sustaining',
  908. }
  909. ],
  910. statusList: [
  911. {
  912. status: '草稿',
  913. },
  914. {
  915. status: '进行中',
  916. },
  917. {
  918. status: '已量产',
  919. },
  920. {
  921. status: '正式量产',
  922. }
  923. ],
  924. };
  925. },
  926. created() {
  927. // 获取用户的 site 和 bu
  928. this.getSiteAndBuByUserName()
  929. // 校验用户是否收藏
  930. this.favoriteIsOk()
  931. // 动态列
  932. this.getTableUserColumn(this.$route.meta.menuId+'table1',1)
  933. this.getDataList()
  934. },
  935. activated() {
  936. if (this.$route.query.flag) {
  937. this.getDataList()
  938. }
  939. this.$store.commit("sift/commitSearchFunction",this.queryAllProofing)
  940. },
  941. mounted () {
  942. this.$nextTick(() => {
  943. this.height = window.innerHeight - 200
  944. })
  945. EventBus.$on('updateAllProof', () => {
  946. this.getDataList();
  947. });
  948. },
  949. methods: {
  950. handleColumnResize(newWidth, oldWidth, column, event){
  951. let inData= this.columnList.filter(item => item.columnProp === column.property)[0]
  952. inData.columnWidth=newWidth
  953. updateColumnSize(inData).then(({data}) => {
  954. if (data.code === 0) {
  955. console.log("栏位宽度保存成功!")
  956. }
  957. })
  958. },
  959. // 获取用户的bu
  960. getSiteAndBuByUserName () {
  961. let tempData = {
  962. username: this.$store.state.user.name,
  963. }
  964. getSiteAndBuByUserName(tempData).then(({data}) => {
  965. if (data.code === 0) {
  966. this.userBuList = data.rows
  967. }
  968. })
  969. },
  970. //导出excel
  971. async createExportData() {
  972. this.searchData.limit = -1
  973. this.searchData.page = 1
  974. await searchAllProofing(this.searchData).then(({data}) => {
  975. this.exportList = data.page.list
  976. this.exportList.forEach((item) => {
  977. item.projectManagerName = item.projectManager.split('-')[1];
  978. item.projectOwnerName = item.projectOwner.split('-')[1];
  979. item.engineerName = item.engineer.split('-')[1];
  980. item.cQualityEngineer1Name = item.cQualityEngineer1.split('-')[1];
  981. item.cQualityEngineer2Name = item.cQualityEngineer2.split('-')[1];
  982. item.cQualityEngineer3Name = item.cQualityEngineer3.split('-')[1];
  983. item.cManufactureEngineerName = item.cManufactureEngineer.split('-')[1];
  984. if (item.cQualityEngineer4 !== null && item.cQualityEngineer4 !== ''){
  985. item.cQualityEngineer4Name = item.cQualityEngineer4.split('-')[1];
  986. }
  987. if (item.cQualityEngineer5 !== null && item.cQualityEngineer5 !== ''){
  988. item.cQualityEngineer5Name = item.cQualityEngineer5.split('-')[1];
  989. }
  990. if (item.cQualityEngineer6 !== null && item.cQualityEngineer6 !== ''){
  991. item.cQualityEngineer6Name = item.cQualityEngineer6.split('-')[1];
  992. }
  993. if (item.docEngineer !== null && item.docEngineer !== ''){
  994. item.docEngineerName = item.docEngineer.split('-')[1];
  995. }
  996. if (item.ipqcHardTag !== null && item.ipqcHardTag !== ''){
  997. item.ipqcHardTagName = item.ipqcHardTag.split('-')[1];
  998. }
  999. if (item.cQualityEngineer7 !== null && item.cQualityEngineer7 !== ''){
  1000. item.cQualityEngineer7Name = item.cQualityEngineer7.split('-')[1];
  1001. }
  1002. });
  1003. for (let i = 0; i < this.exportList.length; i++) {
  1004. if (this.exportList[i].responsibleDepartment === 'R001') {
  1005. this.exportList[i].projectLeader = this.exportList[i].projectManager.split("-")[1];
  1006. } else if (this.exportList[i].responsibleDepartment === 'R002') {
  1007. this.exportList[i].projectLeader = this.exportList[i].projectOwner.split("-")[1];
  1008. } else if (this.exportList[i].responsibleDepartment === 'R004') {
  1009. this.exportList[i].projectLeader = this.exportList[i].engineer.split("-")[1];
  1010. } else if (this.exportList[i].responsibleDepartment === 'R005') {
  1011. this.exportList[i].projectLeader = this.exportList[i].cQualityEngineer1.split("-")[1];
  1012. } else if (this.exportList[i].responsibleDepartment === 'R007') {
  1013. this.exportList[i].projectLeader = this.exportList[i].cQualityEngineer2.split("-")[1];
  1014. } else if (this.exportList[i].responsibleDepartment === 'R008') {
  1015. this.exportList[i].projectLeader = this.exportList[i].cQualityEngineer3.split("-")[1];
  1016. } else if (this.exportList[i].responsibleDepartment === 'R009') {
  1017. this.exportList[i].projectLeader = this.exportList[i].cManufactureEngineer.split("-")[1];
  1018. } else if (this.exportList[i].responsibleDepartment === 'R011') {
  1019. if (this.exportList[i].cQualityEngineer4 !== null && this.exportList[i].cQualityEngineer4 !== '') {
  1020. this.exportList[i].projectLeader = this.exportList[i].cQualityEngineer4.split("-")[1];
  1021. }
  1022. } else if (this.exportList[i].responsibleDepartment === 'R012') {
  1023. if (this.exportList[i].docEngineer !== null && this.exportList[i].docEngineer !== '') {
  1024. this.exportList[i].projectLeader = this.exportList[i].docEngineer.split("-")[1];
  1025. }
  1026. } else if (this.exportList[i].responsibleDepartment === 'R013') {
  1027. if (this.exportList[i].cQualityEngineer5 !== null && this.exportList[i].cQualityEngineer5 !== '') {
  1028. this.exportList[i].projectLeader = this.exportList[i].cQualityEngineer5.split("-")[1];
  1029. }
  1030. } else if (this.exportList[i].responsibleDepartment === 'R014') {
  1031. if (this.exportList[i].cQualityEngineer6 !== null && this.exportList[i].cQualityEngineer6 !== '') {
  1032. this.exportList[i].projectLeader = this.exportList[i].cQualityEngineer6.split("-")[1];
  1033. }
  1034. } else if (this.exportList[i].responsibleDepartment === 'R015') {
  1035. if (this.exportList[i].ipqcHardTag !== null && this.exportList[i].ipqcHardTag !== '') {
  1036. this.exportList[i].projectLeader = this.exportList[i].ipqcHardTag.split("-")[1];
  1037. }
  1038. } else if (this.exportList[i].responsibleDepartment === 'R016') {
  1039. if (this.exportList[i].cQualityEngineer7 !== null && this.exportList[i].cQualityEngineer7 !== '') {
  1040. this.exportList[i].projectLeader = this.exportList[i].cQualityEngineer7.split("-")[1];
  1041. }
  1042. }
  1043. }
  1044. })
  1045. return this.exportList
  1046. },
  1047. startDownload() {
  1048. },
  1049. finishDownload() {
  1050. },
  1051. fields () {
  1052. let json = "{"
  1053. this.columnProjectAllProofList.forEach((item, index) => {
  1054. if (index == this.columnProjectAllProofList.length - 1) {
  1055. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  1056. } else {
  1057. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  1058. }
  1059. })
  1060. json += "}"
  1061. let s = eval("(" + json + ")")
  1062. return s
  1063. },
  1064. // 获取数据列表
  1065. getDataList(params) {
  1066. this.selectTypeFlag = params
  1067. this.searchData.limit = this.pageSize;
  1068. this.searchData.page = this.pageIndex;
  1069. searchAllProofing(this.searchData).then(({ data }) => {
  1070. if (data.code === 0) {
  1071. this.dataList = data.page.list;
  1072. this.allPersonnelInfoList = data.rows;
  1073. this.pageIndex = data.page.currPage;
  1074. this.pageSize = data.page.pageSize;
  1075. this.totalPage = data.page.totalCount;
  1076. this.dataList.forEach((item) => {
  1077. item.projectManagerName = item.projectManager.split('-')[1];
  1078. item.projectOwnerName = item.projectOwner.split('-')[1];
  1079. item.engineerName = item.engineer.split('-')[1];
  1080. item.cQualityEngineer1Name = item.cQualityEngineer1.split('-')[1];
  1081. item.cQualityEngineer2Name = item.cQualityEngineer2.split('-')[1];
  1082. item.cQualityEngineer3Name = item.cQualityEngineer3.split('-')[1];
  1083. item.cManufactureEngineerName = item.cManufactureEngineer.split('-')[1];
  1084. if (item.cQualityEngineer4 !== null && item.cQualityEngineer4 !== ''){
  1085. item.cQualityEngineer4Name = item.cQualityEngineer4.split('-')[1];
  1086. }
  1087. if (item.cQualityEngineer5 !== null && item.cQualityEngineer5 !== ''){
  1088. item.cQualityEngineer5Name = item.cQualityEngineer5.split('-')[1];
  1089. }
  1090. if (item.cQualityEngineer6 !== null && item.cQualityEngineer6 !== ''){
  1091. item.cQualityEngineer6Name = item.cQualityEngineer6.split('-')[1];
  1092. }
  1093. if (item.docEngineer !== null && item.docEngineer !== ''){
  1094. item.docEngineerName = item.docEngineer.split('-')[1];
  1095. }
  1096. if (item.ipqcHardTag !== null && item.ipqcHardTag !== ''){
  1097. item.ipqcHardTagName = item.ipqcHardTag.split('-')[1];
  1098. }
  1099. if (item.cQualityEngineer7 !== null && item.cQualityEngineer7 !== ''){
  1100. item.cQualityEngineer7Name = item.cQualityEngineer7.split('-')[1];
  1101. }
  1102. });
  1103. for (let i = 0; i < this.dataList.length; i++) {
  1104. if (this.dataList[i].responsibleDepartment === 'R001') {
  1105. this.dataList[i].projectLeader = this.dataList[i].projectManager.split("-")[1];
  1106. } else if (this.dataList[i].responsibleDepartment === 'R002') {
  1107. this.dataList[i].projectLeader = this.dataList[i].projectOwner.split("-")[1];
  1108. } else if (this.dataList[i].responsibleDepartment === 'R004') {
  1109. this.dataList[i].projectLeader = this.dataList[i].engineer.split("-")[1];
  1110. } else if (this.dataList[i].responsibleDepartment === 'R005') {
  1111. this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer1.split("-")[1];
  1112. } else if (this.dataList[i].responsibleDepartment === 'R007') {
  1113. this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer2.split("-")[1];
  1114. } else if (this.dataList[i].responsibleDepartment === 'R008') {
  1115. this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer3.split("-")[1];
  1116. } else if (this.dataList[i].responsibleDepartment === 'R009') {
  1117. this.dataList[i].projectLeader = this.dataList[i].cManufactureEngineer.split("-")[1];
  1118. } else if (this.dataList[i].responsibleDepartment === 'R011') {
  1119. if (this.dataList[i].cQualityEngineer4 !== null && this.dataList[i].cQualityEngineer4 !== '') {
  1120. this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer4.split("-")[1];
  1121. }
  1122. } else if (this.dataList[i].responsibleDepartment === 'R012') {
  1123. if (this.dataList[i].docEngineer !== null && this.dataList[i].docEngineer !== '') {
  1124. this.dataList[i].projectLeader = this.dataList[i].docEngineer.split("-")[1];
  1125. }
  1126. } else if (this.dataList[i].responsibleDepartment === 'R013') {
  1127. if (this.dataList[i].cQualityEngineer5 !== null && this.dataList[i].cQualityEngineer5 !== '') {
  1128. this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer5.split("-")[1];
  1129. }
  1130. } else if (this.dataList[i].responsibleDepartment === 'R014') {
  1131. if (this.dataList[i].cQualityEngineer6 !== null && this.dataList[i].cQualityEngineer6 !== '') {
  1132. this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer6.split("-")[1];
  1133. }
  1134. } else if (this.dataList[i].responsibleDepartment === 'R015') {
  1135. if (this.dataList[i].ipqcHardTag !== null && this.dataList[i].ipqcHardTag !== '') {
  1136. this.dataList[i].projectLeader = this.dataList[i].ipqcHardTag.split("-")[1];
  1137. }
  1138. } else if (this.dataList[i].responsibleDepartment === 'R016') {
  1139. if (this.dataList[i].cQualityEngineer7 !== null && this.dataList[i].cQualityEngineer7 !== '') {
  1140. this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer7.split("-")[1];
  1141. }
  1142. }
  1143. }
  1144. this.getAllPersonnelList();
  1145. } else {
  1146. this.$alert(data.msg, '提示', {
  1147. confirmButtonText: '确定',
  1148. callback: action => {
  1149. }
  1150. });
  1151. }
  1152. })
  1153. // else if(this.$route.query.flag === '1') {
  1154. // searchProjectUploadsDocumentList(this.searchData).then(({data}) => {
  1155. // if (data.code === 0) {
  1156. // this.dataList = data.page.list
  1157. // this.pageIndex = data.page.currPage
  1158. // this.pageSize = data.page.pageSize
  1159. // this.totalPage = data.page.totalCount
  1160. // this.dataList.forEach((item) => {
  1161. // item.projectManagerName = item.projectManager.split('-')[1]
  1162. // item.projectOwnerName = item.projectOwner.split('-')[1]
  1163. // item.engineerName = item.engineer.split('-')[1]
  1164. // item.cQualityEngineer1Name = item.cQualityEngineer1.split('-')[1]
  1165. // item.cQualityEngineer2Name = item.cQualityEngineer2.split('-')[1]
  1166. // item.cQualityEngineer3Name = item.cQualityEngineer3.split('-')[1]
  1167. // item.cManufactureEngineerName = item.cManufactureEngineer.split('-')[1]
  1168. // })
  1169. // for (let i = 0; i < this.dataList.length; i++) {
  1170. // if (this.dataList[i].responsibleDepartment === 'R001'){
  1171. // this.dataList[i].projectLeader = this.dataList[i].projectManager.split("-")[1]
  1172. // } else if(this.dataList[i].responsibleDepartment === 'R002'){
  1173. // this.dataList[i].projectLeader = this.dataList[i].projectOwner.split("-")[1]
  1174. // } else if(this.dataList[i].responsibleDepartment === 'R004'){
  1175. // this.dataList[i].projectLeader = this.dataList[i].engineer.split("-")[1]
  1176. // } else if(this.dataList[i].responsibleDepartment === 'R005'){
  1177. // this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer1.split("-")[1]
  1178. // } else if(this.dataList[i].responsibleDepartment === 'R007'){
  1179. // this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer2.split("-")[1]
  1180. // } else if(this.dataList[i].responsibleDepartment === 'R008'){
  1181. // this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer3.split("-")[1]
  1182. // } else if(this.dataList[i].responsibleDepartment === 'R009'){
  1183. // this.dataList[i].projectLeader = this.dataList[i].cManufactureEngineer.split("-")[1]
  1184. // }
  1185. // }
  1186. // }
  1187. // })
  1188. // }else {
  1189. // searchAllProjectUploadsDocumentList(this.searchData).then(({data}) => {
  1190. // if (data.code === 0) {
  1191. // this.allDataList = data.list
  1192. // let pjmList = []
  1193. // // 遍历data.page.list
  1194. // data.list.forEach((item) => {
  1195. // if (!pjmList.includes(item.projectOwner.split('-')[0])) {
  1196. // pjmList.push(item.projectOwner.split('-')[0])
  1197. // }
  1198. // })
  1199. // if (pjmList.includes(this.$store.state.user.name)){
  1200. // this.warnFlag = true
  1201. // this.dataList = data.page.list
  1202. // this.pageIndex = data.page.currPage
  1203. // this.pageSize = data.page.pageSize
  1204. // this.totalPage = data.page.totalCount
  1205. // this.dataList.forEach((item) => {
  1206. // item.projectManagerName = item.projectManager.split('-')[1]
  1207. // item.projectOwnerName = item.projectOwner.split('-')[1]
  1208. // item.engineerName = item.engineer.split('-')[1]
  1209. // item.cQualityEngineer1Name = item.cQualityEngineer1.split('-')[1]
  1210. // item.cQualityEngineer2Name = item.cQualityEngineer2.split('-')[1]
  1211. // item.cQualityEngineer3Name = item.cQualityEngineer3.split('-')[1]
  1212. // item.cManufactureEngineerName = item.cManufactureEngineer.split('-')[1]
  1213. // })
  1214. // for (let i = 0; i < this.dataList.length; i++) {
  1215. // if (this.dataList[i].responsibleDepartment === 'R001') {
  1216. // this.dataList[i].projectLeader = this.dataList[i].projectManager.split("-")[1]
  1217. // } else if (this.dataList[i].responsibleDepartment === 'R002') {
  1218. // this.dataList[i].projectLeader = this.dataList[i].projectOwner.split("-")[1]
  1219. // } else if (this.dataList[i].responsibleDepartment === 'R004') {
  1220. // this.dataList[i].projectLeader = this.dataList[i].engineer.split("-")[1]
  1221. // } else if (this.dataList[i].responsibleDepartment === 'R005') {
  1222. // this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer1.split("-")[1]
  1223. // } else if (this.dataList[i].responsibleDepartment === 'R007') {
  1224. // this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer2.split("-")[1]
  1225. // } else if (this.dataList[i].responsibleDepartment === 'R008') {
  1226. // this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer3.split("-")[1]
  1227. // } else if (this.dataList[i].responsibleDepartment === 'R009') {
  1228. // this.dataList[i].projectLeader = this.dataList[i].cManufactureEngineer.split("-")[1]
  1229. // }
  1230. // }
  1231. // } else {
  1232. // this.$route.query.flag = '1'
  1233. // }
  1234. // }
  1235. // })
  1236. // }
  1237. },
  1238. queryAllProofing(params) {
  1239. this.selectTypeFlag = params
  1240. this.searchData.limit = this.pageSize
  1241. this.searchData.page = this.pageIndex
  1242. if (params !== null && params !== undefined) {
  1243. params.limit = this.pageSize
  1244. params.page = this.pageIndex
  1245. params.site = this.$store.state.user.site
  1246. params.userName = this.$store.state.user.name
  1247. } else {
  1248. params = this.searchData
  1249. }
  1250. queryAllProofing(params).then(({data}) => {
  1251. if (data.code === 0) {
  1252. this.dataList = data.page.list;
  1253. this.pageIndex = data.page.currPage;
  1254. this.pageSize = data.page.pageSize;
  1255. this.totalPage = data.page.totalCount;
  1256. this.dataList.forEach((item) => {
  1257. item.projectManagerName = item.projectManager.split('-')[1];
  1258. item.projectOwnerName = item.projectOwner.split('-')[1];
  1259. item.engineerName = item.engineer.split('-')[1];
  1260. item.cQualityEngineer1Name = item.cQualityEngineer1.split('-')[1];
  1261. item.cQualityEngineer2Name = item.cQualityEngineer2.split('-')[1];
  1262. item.cQualityEngineer3Name = item.cQualityEngineer3.split('-')[1];
  1263. item.cManufactureEngineerName = item.cManufactureEngineer.split('-')[1];
  1264. if (item.cQualityEngineer4 !== null && item.cQualityEngineer4 !== '') {
  1265. item.cQualityEngineer4Name = item.cQualityEngineer4.split('-')[1];
  1266. }
  1267. if (item.cQualityEngineer5 !== null && item.cQualityEngineer5 !== '') {
  1268. item.cQualityEngineer5Name = item.cQualityEngineer5.split('-')[1];
  1269. }
  1270. if (item.cQualityEngineer6 !== null && item.cQualityEngineer6 !== '') {
  1271. item.cQualityEngineer6Name = item.cQualityEngineer6.split('-')[1];
  1272. }
  1273. if (item.docEngineer !== null && item.docEngineer !== '') {
  1274. item.docEngineerName = item.docEngineer.split('-')[1];
  1275. }
  1276. if (item.ipqcHardTag !== null && item.ipqcHardTag !== '') {
  1277. item.ipqcHardTagName = item.ipqcHardTag.split('-')[1];
  1278. }
  1279. if (item.cQualityEngineer7 !== null && item.cQualityEngineer7 !== '') {
  1280. item.cQualityEngineer7Name = item.cQualityEngineer7.split('-')[1];
  1281. }
  1282. });
  1283. for (let i = 0; i < this.dataList.length; i++) {
  1284. if (this.dataList[i].responsibleDepartment === 'R001') {
  1285. this.dataList[i].projectLeader = this.dataList[i].projectManager.split("-")[1];
  1286. } else if (this.dataList[i].responsibleDepartment === 'R002') {
  1287. this.dataList[i].projectLeader = this.dataList[i].projectOwner.split("-")[1];
  1288. } else if (this.dataList[i].responsibleDepartment === 'R004') {
  1289. this.dataList[i].projectLeader = this.dataList[i].engineer.split("-")[1];
  1290. } else if (this.dataList[i].responsibleDepartment === 'R005') {
  1291. this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer1.split("-")[1];
  1292. } else if (this.dataList[i].responsibleDepartment === 'R007') {
  1293. this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer2.split("-")[1];
  1294. } else if (this.dataList[i].responsibleDepartment === 'R008') {
  1295. this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer3.split("-")[1];
  1296. } else if (this.dataList[i].responsibleDepartment === 'R009') {
  1297. this.dataList[i].projectLeader = this.dataList[i].cManufactureEngineer.split("-")[1];
  1298. } else if (this.dataList[i].responsibleDepartment === 'R011') {
  1299. if (this.dataList[i].cQualityEngineer4 !== null && this.dataList[i].cQualityEngineer4 !== '') {
  1300. this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer4.split("-")[1];
  1301. }
  1302. } else if (this.dataList[i].responsibleDepartment === 'R012') {
  1303. if (this.dataList[i].docEngineer !== null && this.dataList[i].docEngineer !== '') {
  1304. this.dataList[i].projectLeader = this.dataList[i].docEngineer.split("-")[1];
  1305. }
  1306. } else if (this.dataList[i].responsibleDepartment === 'R013') {
  1307. if (this.dataList[i].cQualityEngineer5 !== null && this.dataList[i].cQualityEngineer5 !== '') {
  1308. this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer5.split("-")[1];
  1309. }
  1310. } else if (this.dataList[i].responsibleDepartment === 'R014') {
  1311. if (this.dataList[i].cQualityEngineer6 !== null && this.dataList[i].cQualityEngineer6 !== '') {
  1312. this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer6.split("-")[1];
  1313. }
  1314. } else if (this.dataList[i].responsibleDepartment === 'R015') {
  1315. if (this.dataList[i].ipqcHardTag !== null && this.dataList[i].ipqcHardTag !== '') {
  1316. this.dataList[i].projectLeader = this.dataList[i].ipqcHardTag.split("-")[1];
  1317. }
  1318. } else if (this.dataList[i].responsibleDepartment === 'R016') {
  1319. if (this.dataList[i].cQualityEngineer7 !== null && this.dataList[i].cQualityEngineer7 !== '') {
  1320. this.dataList[i].projectLeader = this.dataList[i].cQualityEngineer7.split("-")[1];
  1321. }
  1322. }
  1323. }
  1324. this.getAllPersonnelList();
  1325. } else {
  1326. this.$alert(data.msg, '提示', {
  1327. confirmButtonText: '确定',
  1328. callback: action => {
  1329. }
  1330. });
  1331. }
  1332. })
  1333. },
  1334. getAllPersonnelList() {
  1335. let allPersonnelInfoDataList = JSON.parse(JSON.stringify(this.allPersonnelInfoList))
  1336. // 找出所有的同时过滤出唯一的 project owners, managers, and engineers
  1337. const allPersonnelList = [];
  1338. const projectOwnersMap = new Map();
  1339. const projectManagersMap = new Map();
  1340. const engineersMap = new Map();
  1341. allPersonnelInfoDataList.forEach((item) => {
  1342. // Handle project owners
  1343. if (!projectOwnersMap.has(item.projectOwner)) {
  1344. const projectOwnerId = projectOwnersMap.size + 1; // Incrementing by +1
  1345. projectOwnersMap.set(item.projectOwner, {
  1346. projectOwnerId,
  1347. projectOwner: item.projectOwner,
  1348. projectOwnerName: item.projectOwner.split('-')[1]
  1349. });
  1350. allPersonnelList.push(projectOwnersMap.get(item.projectOwner));
  1351. }
  1352. // Handle project managers
  1353. if (!projectManagersMap.has(item.projectManager)) {
  1354. const projectManagerId = projectManagersMap.size + 1;
  1355. projectManagersMap.set(item.projectManager, {
  1356. projectManagerId,
  1357. projectManager: item.projectManager,
  1358. projectManagerName: item.projectManager.split('-')[1]
  1359. });
  1360. allPersonnelList.push(projectManagersMap.get(item.projectManager));
  1361. }
  1362. // Handle engineers
  1363. if (!engineersMap.has(item.engineer)) {
  1364. const engineerId = engineersMap.size + 1;
  1365. engineersMap.set(item.engineer, {
  1366. engineerId,
  1367. engineer: item.engineer,
  1368. engineerName: item.engineer.split('-')[1]
  1369. });
  1370. allPersonnelList.push(engineersMap.get(item.engineer));
  1371. }
  1372. });
  1373. this.allPersonnelInfoList = allPersonnelList;
  1374. },
  1375. warnSendMail(row) {
  1376. this.$confirm('确认发送提醒?', '提示', {
  1377. confirmButtonText: '确定',
  1378. cancelButtonText: '取消',
  1379. type: 'warning'
  1380. }).then(() => {
  1381. warnSendMailHandle(row).then(({data}) => {
  1382. if (data && data.code === 0) {
  1383. this.$message({
  1384. message: '发送成功',
  1385. type: 'success'
  1386. })
  1387. } else {
  1388. this.$alert(data.msg, '错误', {
  1389. confirmButtonText: '确定'
  1390. })
  1391. }
  1392. })
  1393. }).catch(() => {
  1394. this.$message({
  1395. type: 'info',
  1396. message: '已取消发送'
  1397. });
  1398. });
  1399. },
  1400. // 每页数
  1401. sizeChangeHandle (val) {
  1402. this.pageSize = val
  1403. this.pageIndex = 1
  1404. if (this.selectTypeFlag !== null && this.selectTypeFlag !== undefined) {
  1405. this.queryAllProofing(this.selectTypeFlag)
  1406. } else {
  1407. this.getDataList()
  1408. }
  1409. },
  1410. // 当前页
  1411. currentChangeHandle (val) {
  1412. this.pageIndex = val
  1413. if (this.selectTypeFlag !== null && this.selectTypeFlag !== undefined) {
  1414. this.queryAllProofing(this.selectTypeFlag)
  1415. } else {
  1416. this.getDataList()
  1417. }
  1418. },
  1419. projectAllProofClickRow (row) {
  1420. this.projectAllProofCurrentRow = JSON.parse(JSON.stringify(row))
  1421. },
  1422. toMes (row) {
  1423. this.$router.push({ path: 'eam-eamProjectPartInfo', query: { projectNo: row.projectNo , testPartNo:row.testPartNo}})
  1424. },
  1425. /**
  1426. * 上传文件
  1427. */
  1428. uploadFile (row) {
  1429. this.isEditable = false;
  1430. this.fileList = []
  1431. if (row.documentId === null || row.documentId === undefined || row.documentId === '') {
  1432. this.projectAllProofClickRow.proofingId= -1
  1433. this.projectAllProofClickRow.proofingNo = '*'
  1434. this.isMassProductionStage = true
  1435. this.folder = 'projectPMPDocumentFiles'
  1436. } else {
  1437. this.isMassProductionStage = false
  1438. this.folder = 'projectPPDocumentFiles'
  1439. }
  1440. this.getProofDocument(row)
  1441. this.uploadDialog = true
  1442. //打开组件 去做新增业务
  1443. // this.$nextTick(() => {
  1444. // this.$refs.partUploadFile.init(currentData);
  1445. // })
  1446. },
  1447. getProofDocument (row) {
  1448. let tempData = {
  1449. site: this.$store.state.user.site,
  1450. buNo: row.buNo,
  1451. projectId: row.projectId,
  1452. projectPartId: row.projectPartId,
  1453. proofingId: row.proofingId,
  1454. userId: this.$store.state.user.id,
  1455. languageCode: this.$i18n.locale
  1456. }
  1457. getProofDocument(tempData).then(({data}) => {
  1458. if (data && data.code === 0) {
  1459. this.projectPartDocumentList = data.page.list
  1460. for (let i = 0; i < this.projectPartDocumentList.length; i++) {
  1461. this.projectPartDocumentList[i].buNo = this.tempData.buNo
  1462. }
  1463. }
  1464. })
  1465. },
  1466. formatDate(row, column) {
  1467. // row 是当前行的数据对象
  1468. // column 是当前列的属性信息对象
  1469. const date = row[column.property];
  1470. if (date) {
  1471. const s = new Date(date).toLocaleDateString('zh-CN', { year: 'numeric', month: '2-digit', day: '2-digit' });
  1472. return s.replace(/\//g, '-')
  1473. } else {
  1474. return '';
  1475. }
  1476. },
  1477. rowStyle ({row}) {
  1478. },
  1479. getCombinedDocumentType(row) {
  1480. // 根据您的需求,组合或拼接需要显示的字段
  1481. if (row.documentType === null || row.documentType === undefined) {
  1482. return row.documentDesc
  1483. }else {
  1484. return row.documentType
  1485. }
  1486. },
  1487. // 校验用户是否收藏
  1488. favoriteIsOk () {
  1489. let userFavorite = {
  1490. userId: this.$store.state.user.id,
  1491. languageCode: this.$i18n.locale
  1492. }
  1493. userFavoriteList(userFavorite).then(({data}) => {
  1494. for (let i = 0; i < data.list.length; i++) {
  1495. if (this.$route.meta.menuId === data.list[i].menuId) {
  1496. this.favorite = true
  1497. }
  1498. }
  1499. })
  1500. },
  1501. // 收藏 OR 取消收藏
  1502. favoriteFunction () {
  1503. let userFavorite = {
  1504. userId: this.$store.state.user.id,
  1505. functionId: this.$route.meta.menuId,
  1506. }
  1507. if (this.favorite) {
  1508. removeUserFavorite(userFavorite).then(({data}) => {
  1509. this.$message.success(data.msg)
  1510. this.favorite = false
  1511. })
  1512. } else {
  1513. // 收藏
  1514. saveUserFavorite(userFavorite).then(({data}) => {
  1515. this.$message.success(data.msg)
  1516. this.favorite = true
  1517. })
  1518. }
  1519. },
  1520. // 动态列开始 获取 用户保存的 格式列
  1521. async getTableUserColumn(tableId, columnId) {
  1522. let queryTableUser = {
  1523. userId: this.$store.state.user.name,
  1524. functionId: this.$route.meta.menuId,
  1525. tableId: tableId,
  1526. status: true,
  1527. languageCode: this.$i18n.locale
  1528. }
  1529. await getTableUserListLanguage(queryTableUser).then(({data}) => {
  1530. if (data.rows.length > 0) {
  1531. //this.columnList1 = []
  1532. switch (columnId) {
  1533. case 1:
  1534. this.columnProjectAllProofList = data.rows
  1535. break;
  1536. // case 2:
  1537. // this.detailColumnList = data.rows
  1538. // break;
  1539. // case 3:
  1540. // this.columnList2 = data.rows
  1541. // break;
  1542. // case 4:
  1543. // this.columnList3 = data.rows
  1544. // break;
  1545. }
  1546. } else {
  1547. this.getColumnList(tableId, columnId)
  1548. }
  1549. })
  1550. },
  1551. // 获取 tableDefault 列
  1552. async getColumnList (tableId, columnId) {
  1553. let queryTable= {
  1554. functionId: this.$route.meta.menuId,
  1555. tableId: tableId,
  1556. languageCode: this.$i18n.locale
  1557. }
  1558. await getTableDefaultListLanguage(queryTable).then(({data}) => {
  1559. if (!data.rows.length == 0) {
  1560. switch (columnId) {
  1561. case 1:
  1562. this.columnProjectAllProofList = data.rows
  1563. break;
  1564. // case 2:
  1565. // this.detailColumnList = data.rows
  1566. // break;
  1567. // case 3:
  1568. // this.columnList2 = data.rows
  1569. // break;
  1570. // case 4:
  1571. // this.columnList3 = data.rows
  1572. // break;
  1573. }
  1574. } else {
  1575. // this.showDefault = true.
  1576. }
  1577. })
  1578. },
  1579. //获取按钮的权限数据
  1580. getButtonAuthData () {
  1581. let searchFlag = this.isAuth(this.menuId+":search")
  1582. let saveFlag = this.isAuth(this.menuId+":save")
  1583. let updateFlag = this.isAuth(this.menuId+":update")
  1584. let deleteFlag = this.isAuth(this.menuId+":delete")
  1585. //处理页面的权限数据
  1586. this.authSearch = !searchFlag
  1587. this.authSave = !saveFlag
  1588. this.authUpdate = !updateFlag
  1589. this.authDelete = !deleteFlag
  1590. },
  1591. },
  1592. };
  1593. </script>
  1594. <style scoped>
  1595. .card-item {
  1596. cursor: pointer;
  1597. margin-bottom: 20px;
  1598. transition: transform 0.3s, box-shadow 0.3s;
  1599. overflow: hidden;
  1600. //padding: 10px;
  1601. display: flex;
  1602. flex-direction: column;
  1603. justify-content: space-between;
  1604. align-items: center;
  1605. height: 208px;
  1606. width: 230px;
  1607. margin-left: 40px;
  1608. margin-top: 10px;
  1609. }
  1610. .card-item:hover {
  1611. transform: translateY(-5px);
  1612. box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  1613. }
  1614. .card-title {
  1615. font-size: 18px;
  1616. font-weight: bold;
  1617. margin-bottom: 10px;
  1618. margin-top: 20px;
  1619. }
  1620. .card-count {
  1621. font-size: 55px;
  1622. color: #17B3A3;
  1623. text-align: center;
  1624. font-weight: bold;
  1625. margin-top: 50px;
  1626. }
  1627. .project-list {
  1628. font-size: 12px;
  1629. color: #333;
  1630. line-height: 1.5;
  1631. margin-bottom: 5px;
  1632. }
  1633. .el-divider {
  1634. margin: 10px 0;
  1635. }
  1636. </style>
  1637. <style lang="scss" scoped>
  1638. .el-table /deep/ .cell{
  1639. height: auto;
  1640. line-height: 1.5;
  1641. }
  1642. </style>
  1643. ```