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.

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