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.

1360 lines
43 KiB

  1. <template>
  2. <div class="mod-config">
  3. <el-form :inline="true" label-position="top" :model="queryForm">
  4. <el-form-item label="BU">
  5. <el-select v-model="queryForm.buNo" placeholder="请选择" clearable style="width: 80px">
  6. <el-option
  7. v-for = "i in userBuList"
  8. :key = "i.buNo"
  9. :label = "i.buDesc"
  10. :value = "i.buNo">
  11. </el-option>
  12. </el-select>
  13. </el-form-item>
  14. <el-form-item label="配件编码">
  15. <el-input v-model="queryForm.partNo" clearable style="width: 100px"></el-input>
  16. </el-form-item>
  17. <el-form-item label="配件名称">
  18. <el-input v-model="queryForm.partDescription" clearable style="width: 150px"></el-input>
  19. </el-form-item>
  20. <el-form-item label="序列号">
  21. <el-input v-model="queryForm.serialNumber" clearable style="width: 100px"></el-input>
  22. </el-form-item>
  23. <el-form-item label="状态">
  24. <el-select v-model="queryForm.status" style="width: 80px">
  25. <el-option value="启用" label="启用"></el-option>
  26. <el-option value="禁用" label="禁用"></el-option>
  27. </el-select>
  28. </el-form-item>
  29. <el-form-item label=" ">
  30. <el-button type="primary" @click="getDataList()">查询</el-button>
  31. <el-button type="primary" @click="addModal()">新增</el-button>
  32. </el-form-item>
  33. </el-form>
  34. <!-- <el-table-->
  35. <!-- v-if="queryForm.groupType === '0'"-->
  36. <!-- :data="dataList"-->
  37. <!-- border-->
  38. <!-- :height="height + 70"-->
  39. <!-- v-loading="dataListLoading"-->
  40. <!-- @selection-change="handleSelectionChange"-->
  41. <!-- :row-style="controlRowStyle"-->
  42. <!-- style="width: 100%;">-->
  43. <!-- <el-table-column-->
  44. <!-- v-for="(item,index) in arrayColumns0" :key="index"-->
  45. <!-- :sortable="item.columnSortable"-->
  46. <!-- :prop="item.columnProp"-->
  47. <!-- :header-align="item.headerAlign"-->
  48. <!-- :show-overflow-tooltip="item.showOverflowTooltip"-->
  49. <!-- :align="item.align"-->
  50. <!-- :fixed="item.fixed==''?false:item.fixed"-->
  51. <!-- :min-width="item.columnWidth"-->
  52. <!-- :label="item.columnLabel">-->
  53. <!-- <template slot-scope="scope">-->
  54. <!-- <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>-->
  55. <!-- <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>-->
  56. <!-- </template>-->
  57. <!-- </el-table-column>-->
  58. <!-- </el-table>-->
  59. <!-- <el-table-->
  60. <!-- v-if="queryForm.groupType === '1'"-->
  61. <!-- :data="dataList"-->
  62. <!-- border-->
  63. <!-- :height="height + 70"-->
  64. <!-- v-loading="dataListLoading"-->
  65. <!-- @selection-change="handleSelectionChange"-->
  66. <!-- :row-style="controlRowStyle"-->
  67. <!-- style="width: 100%;">-->
  68. <!-- <el-table-column-->
  69. <!-- v-for="(item,index) in arrayColumns1" :key="index"-->
  70. <!-- :sortable="item.columnSortable"-->
  71. <!-- :prop="item.columnProp"-->
  72. <!-- :header-align="item.headerAlign"-->
  73. <!-- :show-overflow-tooltip="item.showOverflowTooltip"-->
  74. <!-- :align="item.align"-->
  75. <!-- :fixed="item.fixed==''?false:item.fixed"-->
  76. <!-- :min-width="item.columnWidth"-->
  77. <!-- :label="item.columnLabel">-->
  78. <!-- <template slot-scope="scope">-->
  79. <!-- <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>-->
  80. <!-- <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>-->
  81. <!-- </template>-->
  82. <!-- </el-table-column>-->
  83. <!-- </el-table>-->
  84. <el-table
  85. :data="headDataList"
  86. border
  87. :height="350"
  88. v-loading="dataListLoading"
  89. highlight-current-row
  90. @row-click="handleRowClick"
  91. style="width: 100%;">
  92. <el-table-column
  93. v-for="(item,index) in headColumns" :key="index"
  94. :sortable="item.columnSortable"
  95. :prop="item.columnProp"
  96. :header-align="item.headerAlign"
  97. :show-overflow-tooltip="item.showOverflowTooltip"
  98. :align="item.align"
  99. :fixed="item.fixed==''?false:item.fixed"
  100. :min-width="item.columnWidth"
  101. :label="item.columnLabel">
  102. </el-table-column>
  103. <el-table-column label="操作" fixed="right" style="width: 120px">
  104. <template slot-scope="scope">
  105. <el-link style="cursor: pointer" @click="updateModal(scope.row)">编辑</el-link>
  106. <el-link style="cursor: pointer" @click="deleteData(scope.row)">删除</el-link>
  107. </template>
  108. </el-table-column>
  109. </el-table>
  110. <el-table
  111. :data="dataList"
  112. border
  113. :height="380"
  114. v-loading="dataListLoading2"
  115. :span-method="objectSpanMethod"
  116. style="width: 100%;">
  117. <el-table-column
  118. v-for="(item,index) in arrayColumns2" :key="index"
  119. :sortable="item.columnSortable"
  120. :prop="item.columnProp"
  121. :header-align="item.headerAlign"
  122. :show-overflow-tooltip="item.showOverflowTooltip"
  123. :align="item.align"
  124. :fixed="item.fixed==''?false:item.fixed"
  125. :min-width="item.columnWidth"
  126. :label="item.columnLabel">
  127. </el-table-column>
  128. </el-table>
  129. <el-form :inline="true" label-position="top" :model="queryForm">
  130. <el-form-item label="未上机">
  131. <el-input v-model="locationId" style="width: 150px" readonly></el-input>
  132. </el-form-item>
  133. <el-form-item label="到厂时间">
  134. <el-input v-model="arrivalTime" style="width: 170px" readonly></el-input>
  135. </el-form-item>
  136. </el-form>
  137. <!-- 新增和修改 -->
  138. <el-dialog title="核心备件" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="290px">
  139. <el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
  140. <el-form-item label="BU" prop="bu">
  141. <el-select v-model="modalData.bu" placeholder="请选择" :disabled="modalDisableFlag" style="width: 240px">
  142. <el-option
  143. v-for = "i in userBuList"
  144. :key = "i.buNo"
  145. :label = "i.sitename"
  146. :value = "i.buNo">
  147. <span style="float: left;width: 100px">{{ i.sitename }}</span>
  148. <span style="float: right; color: #8492a6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; font-size: 11px;width: 60px">
  149. {{ i.buDesc }}
  150. </span>
  151. </el-option>
  152. </el-select>
  153. </el-form-item>
  154. </el-form>
  155. <el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
  156. <el-form-item label="配件编码:">
  157. <span style="cursor: pointer" slot="label" @click="getBaseList(1200)"><a herf="#">配件编码</a></span>
  158. <el-input v-model="modalData.partNo" style="width: 114px" disabled></el-input>
  159. </el-form-item>
  160. <el-form-item label="配件名称:">
  161. <el-input v-model="modalData.partDesc" style="width: 114px" disabled></el-input>
  162. </el-form-item>
  163. <el-form-item label="序列号:">
  164. <el-input v-model="modalData.serialNumber" style="width: 114px" :disabled="modalDisableFlag"></el-input>
  165. </el-form-item>
  166. <el-form-item label="是否启用:">
  167. <el-select v-model="modalData.status" style="width: 114px">
  168. <el-option label="启用" value="启用"></el-option>
  169. <el-option label="禁用" value="禁用"></el-option>
  170. </el-select>
  171. </el-form-item>
  172. <el-form-item label="到厂时间">
  173. <el-date-picker
  174. style="width: 240px"
  175. v-model="modalData.arrivalTime"
  176. type="date"
  177. format="yyyy-MM-dd"
  178. value-format="yyyy-MM-dd"
  179. placeholder="选择日期">
  180. </el-date-picker>
  181. </el-form-item>
  182. </el-form>
  183. <el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
  184. <el-form-item :label="'备注:'">
  185. <el-input type="textarea" :rows="2" v-model="modalData.remark" style="width: 240px"></el-input>
  186. </el-form-item>
  187. </el-form>
  188. <el-footer style="height:40px;margin-top: 30px;text-align:center">
  189. <el-button type="primary" @click="saveData()">保存</el-button>
  190. <el-button type="primary" @click="modalFlag = false">关闭</el-button>
  191. </el-footer>
  192. </el-dialog>
  193. <!-- <el-pagination-->
  194. <!-- @size-change="sizeChangeHandle"-->
  195. <!-- @current-change="currentChangeHandle"-->
  196. <!-- :current-page="pageIndex"-->
  197. <!-- :page-sizes="[20, 100, 500, 1000]"-->
  198. <!-- :page-size="pageSize"-->
  199. <!-- :total="totalPage"-->
  200. <!-- layout="total, sizes, prev, pager, next, jumper">-->
  201. <!-- </el-pagination>-->
  202. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  203. </div>
  204. </template>
  205. <script>
  206. import {
  207. getWareHouseList,
  208. } from '@/api/partspare/wareHouseEntity.js'
  209. import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js'
  210. import {getAllBuList}from '@/api/factory/site.js'
  211. import {getTableDefaultListLanguage, getTableUserListLanguage} from "../../../api/table";
  212. import Chooselist from "../common/Chooselist.vue";
  213. import {
  214. deleteCoreSparePart,
  215. getCoreSparePartList,
  216. getEamWorkOrderCoreComponentsList,
  217. saveCoreSparePart
  218. } from "../../../api/partspare/coreSparePart";
  219. export default {
  220. components: {
  221. Chooselist
  222. },
  223. data() {
  224. return {
  225. userBuList: [],
  226. // 是否收藏
  227. favorite: false,
  228. // 导出 start
  229. exportData: [],
  230. exportName: "库存信息" + this.dayjs().format('YYYYMMDDHHmmss'),
  231. exportHeader: ["库存信息"],
  232. exportFooter: [],
  233. exportList:[],
  234. // 导出 end
  235. queryForm: {
  236. site: '',
  237. limit: 1,
  238. page: '',
  239. partNo: '',
  240. partDescription: '',
  241. status: '启用',
  242. active: 'Y',
  243. safetyStock: '',
  244. buNo: '2_03-RFID'
  245. },
  246. locationId: '',
  247. arrivalTime: '',
  248. tagNo: 0,
  249. modalFlag: false,
  250. modalDisableFlag: false,
  251. modalData: {
  252. flag: '',
  253. site: '',
  254. bu: '',
  255. buNo: '',
  256. partNo: '',
  257. partDesc: '',
  258. createBy: this.$store.state.user.name,
  259. updateBy: this.$store.state.user.name,
  260. arrivalTime: '',
  261. remark: ''
  262. },
  263. headDataList: [],
  264. dataList: [],
  265. wareHouseList: [],
  266. pageIndex: 1,
  267. pageSize: 20,
  268. totalPage: 0,
  269. height: 200,
  270. dataListLoading: false,
  271. dataListLoading2: false,
  272. dataListSelections: [],
  273. addOrUpdateVisible: false,
  274. // 展示列集
  275. columnList: [],
  276. // 汇总方式=‘未上机备件’
  277. // arrayColumns1: [
  278. // // {
  279. // // userId: this.$store.state.user.name,
  280. // // functionId: 200101103,
  281. // // serialNumber: '200101103Table1BuDesc',
  282. // // tableId: '200101103Table1',
  283. // // tableName: '库存信息汇总表',
  284. // // columnProp: 'buDesc',
  285. // // headerAlign: "center",
  286. // // align: "left",
  287. // // columnLabel: 'BU',
  288. // // columnHidden: false,
  289. // // columnImage: false,
  290. // // columnSortable: true,
  291. // // sortLv: 0,
  292. // // status: true,
  293. // // fixed: '',
  294. // // columnWidth: 80,
  295. // // },
  296. // {
  297. // userId: this.$store.state.user.name,
  298. // functionId: 200101103,
  299. // serialNumber: '200101103Table1PartNo',
  300. // tableId: '200101103Table1',
  301. // tableName: '库存信息汇总表',
  302. // columnProp: 'partNo',
  303. // headerAlign: "center",
  304. // align: "left",
  305. // columnLabel: '配件编号',
  306. // columnHidden: false,
  307. // columnImage: false,
  308. // columnSortable: true,
  309. // sortLv: 0,
  310. // status: true,
  311. // fixed: '',
  312. // columnWidth: 140,
  313. // },
  314. // {
  315. // userId: this.$store.state.user.name,
  316. // functionId: 200101103,
  317. // serialNumber: '200101103Table1PartDescription',
  318. // tableId: '200101103Table1',
  319. // tableName: '库存信息汇总表',
  320. // columnProp: 'partDescription',
  321. // headerAlign: "center",
  322. // align: "left",
  323. // columnLabel: '名称',
  324. // columnHidden: false,
  325. // columnImage: false,
  326. // columnSortable: false,
  327. // sortLv: 0,
  328. // status: true,
  329. // fixed: '',
  330. // columnWidth: 140,
  331. // },
  332. // {
  333. // userId: this.$store.state.user.name,
  334. // functionId: 200101103,
  335. // serialNumber: '200101103Table1WarehouseId',
  336. // tableId: '200101103Table1',
  337. // tableName: '库存信息汇总表',
  338. // columnProp: 'oldSerialNo',
  339. // headerAlign: "center",
  340. // align: "left",
  341. // columnLabel: '序列号',
  342. // columnHidden: false,
  343. // columnImage: false,
  344. // columnSortable: false,
  345. // sortLv: 0,
  346. // status: true,
  347. // fixed: '',
  348. // columnWidth: 140,
  349. // }, {
  350. // userId: this.$store.state.user.name,
  351. // functionId: 200101103,
  352. // serialNumber: '200101103Table1LocationId',
  353. // tableId: '200101103Table1',
  354. // tableName: '库存信息汇总表',
  355. // columnProp: 'locationId',
  356. // headerAlign: "center",
  357. // align: "left",
  358. // columnLabel: '库位编码',
  359. // columnHidden: false,
  360. // columnImage: false,
  361. // columnSortable: false,
  362. // sortLv: 0,
  363. // status: true,
  364. // fixed: '',
  365. // columnWidth: 140,
  366. // }, {
  367. // userId: this.$store.state.user.name,
  368. // functionId: 200101103,
  369. // serialNumber: '200101103Table1InQty',
  370. // tableId: '200101103Table1',
  371. // tableName: '库存信息汇总表',
  372. // columnProp: 'createdDate',
  373. // headerAlign: "center",
  374. // align: "right",
  375. // columnLabel: '到厂时间',
  376. // columnHidden: false,
  377. // columnImage: false,
  378. // columnSortable: false,
  379. // sortLv: 0,
  380. // status: true,
  381. // fixed: '',
  382. // columnWidth: 140,
  383. // }, {
  384. // userId: this.$store.state.user.name,
  385. // functionId: 200101103,
  386. // serialNumber: '200101103Table1OutQty',
  387. // tableId: '200101103Table1',
  388. // tableName: '库存信息汇总表',
  389. // columnProp: 'estUseQty',
  390. // headerAlign: "center",
  391. // align: "right",
  392. // columnLabel: '存放寿命',
  393. // columnHidden: false,
  394. // columnImage: false,
  395. // columnSortable: false,
  396. // sortLv: 0,
  397. // status: true,
  398. // fixed: '',
  399. // columnWidth: 140,
  400. // }, {
  401. // userId: this.$store.state.user.name,
  402. // functionId: 200101103,
  403. // serialNumber: '200101103Table1QtyOnHand',
  404. // tableId: '200101103Table1',
  405. // tableName: '库存信息汇总表',
  406. // columnProp: 'lifespan',
  407. // headerAlign: "center",
  408. // align: "right",
  409. // columnLabel: '是否已到寿命',
  410. // columnHidden: false,
  411. // columnImage: false,
  412. // columnSortable: false,
  413. // sortLv: 0,
  414. // status: true,
  415. // fixed: '',
  416. // columnWidth: 140,
  417. // }, {
  418. // userId: this.$store.state.user.name,
  419. // functionId: 200101103,
  420. // serialNumber: '200101103Table1MaxStock',
  421. // tableId: '200101103Table1',
  422. // tableName: '库存信息汇总表',
  423. // columnProp: 'supplierName',
  424. // headerAlign: "center",
  425. // align: "right",
  426. // columnLabel: '供应商',
  427. // columnHidden: false,
  428. // columnImage: false,
  429. // columnSortable: false,
  430. // sortLv: 0,
  431. // status: true,
  432. // fixed: '',
  433. // columnWidth: 140,
  434. // }
  435. // ],
  436. // 汇总方式=‘当前核心备件’
  437. // arrayColumns0: [
  438. // {
  439. // userId: this.$store.state.user.name,
  440. // functionId: 200101103,
  441. // serialNumber: '200101103Table2PartNo',
  442. // tableId: '200101103Table2',
  443. // tableName: '库存信息序号表',
  444. // columnProp: 'partNo',
  445. // headerAlign: "center",
  446. // align: "left",
  447. // columnLabel: '配件编码',
  448. // columnHidden: false,
  449. // columnImage: false,
  450. // columnSortable: true,
  451. // sortLv: 0,
  452. // status: true,
  453. // fixed: '',
  454. // columnWidth: 140,
  455. // },
  456. // {
  457. // userId: this.$store.state.user.name,
  458. // functionId: 200101103,
  459. // serialNumber: '200101103Table2PartDescription',
  460. // tableId: '200101103Table2',
  461. // tableName: '库存信息序号表',
  462. // columnProp: 'partDescription',
  463. // headerAlign: "center",
  464. // align: "left",
  465. // columnLabel: '名称',
  466. // columnHidden: false,
  467. // columnImage: false,
  468. // columnSortable: false,
  469. // sortLv: 0,
  470. // status: true,
  471. // fixed: '',
  472. // columnWidth: 140,
  473. // },
  474. // {
  475. // userId: this.$store.state.user.name,
  476. // functionId: 200101103,
  477. // serialNumber: '200101103Table2BatchNo',
  478. // tableId: '200101103Table2',
  479. // tableName: '库存信息序号表',
  480. // columnProp: 'newSerialNo',
  481. // headerAlign: "center",
  482. // align: "left",
  483. // columnLabel: '序列号',
  484. // columnHidden: false,
  485. // columnImage: false,
  486. // columnSortable: false,
  487. // sortLv: 0,
  488. // status: true,
  489. // fixed: '',
  490. // columnWidth: 140,
  491. // }, {
  492. // userId: this.$store.state.user.name,
  493. // functionId: 200101103,
  494. // serialNumber: '200101103Table2WarehouseId',
  495. // tableId: '200101103Table2',
  496. // tableName: '库存信息序号表',
  497. // columnProp: 'resourceId',
  498. // headerAlign: "center",
  499. // align: "left",
  500. // columnLabel: '机台编号',
  501. // columnHidden: false,
  502. // columnImage: false,
  503. // columnSortable: false,
  504. // sortLv: 0,
  505. // status: true,
  506. // fixed: '',
  507. // columnWidth: 140,
  508. // }, {
  509. // userId: this.$store.state.user.name,
  510. // functionId: 200101103,
  511. // serialNumber: '200101103Table2LocationId',
  512. // tableId: '200101103Table2',
  513. // tableName: '库存信息序号表',
  514. // columnProp: 'createdDate',
  515. // headerAlign: "center",
  516. // align: "left",
  517. // columnLabel: '上机时间',
  518. // columnHidden: false,
  519. // columnImage: false,
  520. // columnSortable: false,
  521. // sortLv: 0,
  522. // status: true,
  523. // fixed: '',
  524. // columnWidth: 140,
  525. // },
  526. // {
  527. // userId: this.$store.state.user.name,
  528. // functionId: 200101103,
  529. // serialNumber: '200101103Table2Umid',
  530. // tableId: '200101103Table2',
  531. // tableName: '库存信息序号表',
  532. // columnProp: 'workTime',
  533. // headerAlign: "center",
  534. // align: "left",
  535. // columnLabel: '使用时长(时)',
  536. // columnHidden: false,
  537. // columnImage: false,
  538. // columnSortable: false,
  539. // sortLv: 0,
  540. // status: true,
  541. // fixed: '',
  542. // columnWidth: 100,
  543. // },
  544. // {
  545. // userId: this.$store.state.user.name,
  546. // functionId: 200101103,
  547. // serialNumber: '200101103Table2AveragePrice',
  548. // tableId: '200101103Table2',
  549. // tableName: '库存信息序号表',
  550. // columnProp: 'estUseQty',
  551. // headerAlign: "center",
  552. // align: "right",
  553. // columnLabel: '推荐寿命',
  554. // columnHidden: false,
  555. // columnImage: false,
  556. // columnSortable: false,
  557. // sortLv: 0,
  558. // status: true,
  559. // fixed: '',
  560. // columnWidth: 140,
  561. // },
  562. // {
  563. // userId: this.$store.state.user.name,
  564. // functionId: 200101103,
  565. // serialNumber: '200101103Table2InQty',
  566. // tableId: '200101103Table2',
  567. // tableName: '库存信息序号表',
  568. // columnProp: 'lifespan',
  569. // headerAlign: "center",
  570. // align: "right",
  571. // columnLabel: '是否到寿命',
  572. // columnHidden: false,
  573. // columnImage: false,
  574. // columnSortable: false,
  575. // sortLv: 0,
  576. // status: true,
  577. // fixed: '',
  578. // columnWidth: 140,
  579. // }, {
  580. // userId: this.$store.state.user.name,
  581. // functionId: 200101103,
  582. // serialNumber: '200101103Table2OutQty',
  583. // tableId: '200101103Table2',
  584. // tableName: '库存信息序号表',
  585. // columnProp: 'createdBy',
  586. // headerAlign: "center",
  587. // align: "right",
  588. // columnLabel: '上机人员',
  589. // columnHidden: false,
  590. // columnImage: false,
  591. // columnSortable: false,
  592. // sortLv: 0,
  593. // status: true,
  594. // fixed: '',
  595. // columnWidth: 140,
  596. // }],
  597. // 汇总方式=‘备件上下机记录’
  598. arrayColumns2: [
  599. {
  600. userId: this.$store.state.user.name,
  601. functionId: 200101103,
  602. serialNumber: '200101103Table1PartNo',
  603. tableId: '200101103Table1',
  604. tableName: '库存信息汇总表',
  605. columnProp: 'partNo',
  606. headerAlign: "center",
  607. align: "center",
  608. columnLabel: '配件编号',
  609. columnHidden: false,
  610. columnImage: false,
  611. columnSortable: true,
  612. sortLv: 0,
  613. status: true,
  614. fixed: '',
  615. columnWidth: 140,
  616. },
  617. {
  618. userId: this.$store.state.user.name,
  619. functionId: 200101103,
  620. serialNumber: '200101103Table1PartDescription',
  621. tableId: '200101103Table1',
  622. tableName: '库存信息汇总表',
  623. columnProp: 'partDescription',
  624. headerAlign: "center",
  625. align: "left",
  626. columnLabel: '名称',
  627. columnHidden: false,
  628. columnImage: false,
  629. columnSortable: false,
  630. sortLv: 0,
  631. status: true,
  632. fixed: '',
  633. columnWidth: 140,
  634. },
  635. {
  636. userId: this.$store.state.user.name,
  637. functionId: 200101103,
  638. serialNumber: '200101103Table1SerialNo',
  639. tableId: '200101103Table1',
  640. tableName: '库存信息汇总表',
  641. columnProp: 'serialNo',
  642. headerAlign: "center",
  643. align: "left",
  644. columnLabel: '序列号',
  645. columnHidden: false,
  646. columnImage: false,
  647. columnSortable: false,
  648. sortLv: 0,
  649. status: true,
  650. fixed: '',
  651. columnWidth: 140,
  652. },
  653. {
  654. userId: this.$store.state.user.name,
  655. functionId: 200101103,
  656. serialNumber: '200101103Table1OnOffStatus',
  657. tableId: '200101103Table1',
  658. tableName: '库存信息汇总表',
  659. columnProp: 'onOffStatus',
  660. headerAlign: "center",
  661. align: "left",
  662. columnLabel: '上下机状况',
  663. columnHidden: false,
  664. columnImage: false,
  665. columnSortable: false,
  666. sortLv: 0,
  667. status: true,
  668. fixed: '',
  669. columnWidth: 140,
  670. },
  671. {
  672. userId: this.$store.state.user.name,
  673. functionId: 200101103,
  674. serialNumber: '200101103Table1CreatedDate',
  675. tableId: '200101103Table1',
  676. tableName: '库存信息汇总表',
  677. columnProp: 'createdDate',
  678. headerAlign: "center",
  679. align: "left",
  680. columnLabel: '更换时间',
  681. columnHidden: false,
  682. columnImage: false,
  683. columnSortable: false,
  684. sortLv: 0,
  685. status: true,
  686. fixed: '',
  687. columnWidth: 140,
  688. },
  689. {
  690. userId: this.$store.state.user.name,
  691. functionId: 200101103,
  692. serialNumber: '200101103Table1TimeDiffMonths',
  693. tableId: '200101103Table1',
  694. tableName: '库存信息汇总表',
  695. columnProp: 'timeDiffMonths',
  696. headerAlign: "center",
  697. align: "left",
  698. columnLabel: '上机时长(月)',
  699. columnHidden: false,
  700. columnImage: false,
  701. columnSortable: false,
  702. sortLv: 0,
  703. status: true,
  704. fixed: '',
  705. columnWidth: 140,
  706. },
  707. {
  708. userId: this.$store.state.user.name,
  709. functionId: 200101103,
  710. serialNumber: '200101103Table1EstUseQty',
  711. tableId: '200101103Table1',
  712. tableName: '库存信息汇总表',
  713. columnProp: 'estUseQty',
  714. headerAlign: "center",
  715. align: "center",
  716. columnLabel: '推荐寿命',
  717. columnHidden: false,
  718. columnImage: false,
  719. columnSortable: false,
  720. sortLv: 0,
  721. status: true,
  722. fixed: '',
  723. columnWidth: 140,
  724. },
  725. {
  726. userId: this.$store.state.user.name,
  727. functionId: 200101103,
  728. serialNumber: '200101103Table1FeedBackDesc',
  729. tableId: '200101103Table1',
  730. tableName: '库存信息汇总表',
  731. columnProp: 'feedBackDesc',
  732. headerAlign: "center",
  733. align: "left",
  734. columnLabel: '故障原因',
  735. columnHidden: false,
  736. columnImage: false,
  737. columnSortable: false,
  738. sortLv: 0,
  739. status: true,
  740. fixed: '',
  741. columnWidth: 140,
  742. },
  743. {
  744. userId: this.$store.state.user.name,
  745. functionId: 200101103,
  746. serialNumber: '200101103Table1FeedBackDesc',
  747. tableId: '200101103Table1',
  748. tableName: '库存信息汇总表',
  749. columnProp: '111',
  750. headerAlign: "center",
  751. align: "center",
  752. columnLabel: '是否人为原因损伤',
  753. columnHidden: false,
  754. columnImage: false,
  755. columnSortable: false,
  756. sortLv: 0,
  757. status: true,
  758. fixed: '',
  759. columnWidth: 140,
  760. },
  761. {
  762. userId: this.$store.state.user.name,
  763. functionId: 200101103,
  764. serialNumber: '200101103Table1CreatedBy',
  765. tableId: '200101103Table1',
  766. tableName: '库存信息汇总表',
  767. columnProp: 'createdBy',
  768. headerAlign: "center",
  769. align: "left",
  770. columnLabel: '上机人',
  771. columnHidden: false,
  772. columnImage: false,
  773. columnSortable: false,
  774. sortLv: 0,
  775. status: true,
  776. fixed: '',
  777. columnWidth: 140,
  778. },
  779. {
  780. userId: this.$store.state.user.name,
  781. functionId: 200101103,
  782. serialNumber: '200101103Table1OrderNo',
  783. tableId: '200101103Table1',
  784. tableName: '库存信息汇总表',
  785. columnProp: 'orderNo',
  786. headerAlign: "center",
  787. align: "left",
  788. columnLabel: '工单号',
  789. columnHidden: false,
  790. columnImage: false,
  791. columnSortable: false,
  792. sortLv: 0,
  793. status: true,
  794. fixed: '',
  795. columnWidth: 140,
  796. }
  797. ],
  798. headColumns: [
  799. {
  800. userId: this.$store.state.user.name,
  801. functionId: 200101103,
  802. serialNumber: '200101103Table1Bu',
  803. tableId: '200101103Table1',
  804. tableName: '核心备件表',
  805. columnProp: 'bu',
  806. headerAlign: "center",
  807. align: "center",
  808. columnLabel: 'BU',
  809. columnHidden: false,
  810. columnImage: false,
  811. columnSortable: true,
  812. sortLv: 0,
  813. status: true,
  814. fixed: '',
  815. columnWidth: 140,
  816. },
  817. {
  818. userId: this.$store.state.user.name,
  819. functionId: 200101103,
  820. serialNumber: '200101103Table1PartNo',
  821. tableId: '200101103Table1',
  822. tableName: '核心备件表',
  823. columnProp: 'partNo',
  824. headerAlign: "center",
  825. align: "center",
  826. columnLabel: '配件编码',
  827. columnHidden: false,
  828. columnImage: false,
  829. columnSortable: true,
  830. sortLv: 0,
  831. status: true,
  832. fixed: '',
  833. columnWidth: 140,
  834. },
  835. {
  836. userId: this.$store.state.user.name,
  837. functionId: 200101103,
  838. serialNumber: '200101103Table1PartDesc',
  839. tableId: '200101103Table1',
  840. tableName: '核心备件表',
  841. columnProp: 'partDesc',
  842. headerAlign: "center",
  843. align: "left",
  844. columnLabel: '配件名称',
  845. columnHidden: false,
  846. columnImage: false,
  847. columnSortable: false,
  848. sortLv: 0,
  849. status: true,
  850. fixed: '',
  851. columnWidth: 140,
  852. },
  853. {
  854. userId: this.$store.state.user.name,
  855. functionId: 200101103,
  856. serialNumber: '200101103Table1SerialNumber',
  857. tableId: '200101103Table1',
  858. tableName: '核心备件表',
  859. columnProp: 'serialNumber',
  860. headerAlign: "center",
  861. align: "left",
  862. columnLabel: '序列号',
  863. columnHidden: false,
  864. columnImage: false,
  865. columnSortable: false,
  866. sortLv: 0,
  867. status: true,
  868. fixed: '',
  869. columnWidth: 140,
  870. },
  871. // {
  872. // userId: this.$store.state.user.name,
  873. // functionId: 200101103,
  874. // serialNumber: '200101103Table1ArrivalTime',
  875. // tableId: '200101103Table1',
  876. // tableName: '核心备件表',
  877. // columnProp: 'arrivalTime',
  878. // headerAlign: "center",
  879. // align: "left",
  880. // columnLabel: '到厂时间',
  881. // columnHidden: false,
  882. // columnImage: false,
  883. // columnSortable: false,
  884. // sortLv: 0,
  885. // status: true,
  886. // fixed: '',
  887. // columnWidth: 160,
  888. // },
  889. {
  890. userId: this.$store.state.user.name,
  891. functionId: 200101103,
  892. serialNumber: '200101103Table1Status',
  893. tableId: '200101103Table1',
  894. tableName: '核心备件表',
  895. columnProp: 'status',
  896. headerAlign: "center",
  897. align: "center",
  898. columnLabel: '状态',
  899. columnHidden: false,
  900. columnImage: false,
  901. columnSortable: false,
  902. sortLv: 0,
  903. status: true,
  904. fixed: '',
  905. columnWidth: 140,
  906. },
  907. {
  908. userId: this.$store.state.user.name,
  909. functionId: 200101103,
  910. serialNumber: '200101103Table1Remark',
  911. tableId: '200101103Table1',
  912. tableName: '核心备件表',
  913. columnProp: 'remark',
  914. headerAlign: "center",
  915. align: "left",
  916. columnLabel: '备注',
  917. columnHidden: false,
  918. columnImage: false,
  919. columnSortable: false,
  920. sortLv: 0,
  921. status: true,
  922. fixed: '',
  923. columnWidth: 140,
  924. },
  925. {
  926. userId: this.$store.state.user.name,
  927. functionId: 200101103,
  928. serialNumber: '200101103Table1CreateBy',
  929. tableId: '200101103Table1',
  930. tableName: '核心备件表',
  931. columnProp: 'createBy',
  932. headerAlign: "center",
  933. align: "center",
  934. columnLabel: '创建人',
  935. columnHidden: false,
  936. columnImage: false,
  937. columnSortable: false,
  938. sortLv: 0,
  939. status: true,
  940. fixed: '',
  941. columnWidth: 140,
  942. },
  943. {
  944. userId: this.$store.state.user.name,
  945. functionId: 200101103,
  946. serialNumber: '200101103Table1CreateTime',
  947. tableId: '200101103Table1',
  948. tableName: '核心备件表',
  949. columnProp: 'createTime',
  950. headerAlign: "center",
  951. align: "center",
  952. columnLabel: '创建时间',
  953. columnHidden: false,
  954. columnImage: false,
  955. columnSortable: false,
  956. sortLv: 0,
  957. status: true,
  958. fixed: '',
  959. columnWidth: 160,
  960. },
  961. {
  962. userId: this.$store.state.user.name,
  963. functionId: 200101103,
  964. serialNumber: '200101103Table1UpdateBy',
  965. tableId: '200101103Table1',
  966. tableName: '核心备件表',
  967. columnProp: 'updateBy',
  968. headerAlign: "center",
  969. align: "center",
  970. columnLabel: '更新人',
  971. columnHidden: false,
  972. columnImage: false,
  973. columnSortable: false,
  974. sortLv: 0,
  975. status: true,
  976. fixed: '',
  977. columnWidth: 140,
  978. },
  979. {
  980. userId: this.$store.state.user.name,
  981. functionId: 200101103,
  982. serialNumber: '200101103Table1UpdateTime',
  983. tableId: '200101103Table1',
  984. tableName: '核心备件表',
  985. columnProp: 'updateTime',
  986. headerAlign: "center",
  987. align: "center",
  988. columnLabel: '更新时间',
  989. columnHidden: false,
  990. columnImage: false,
  991. columnSortable: false,
  992. sortLv: 0,
  993. status: true,
  994. fixed: '',
  995. columnWidth: 160,
  996. }
  997. ]
  998. }
  999. },
  1000. // watch: {
  1001. // 'queryForm.groupType': {
  1002. // handler(newVal, oldVal) {
  1003. // if (this.queryForm.groupType === '0'){
  1004. // this.columnList = this.arrayColumns
  1005. // }else {
  1006. // this.columnList = this.arrayPart
  1007. // }
  1008. // },
  1009. // deep: true,
  1010. // immediate: true
  1011. // }
  1012. // },
  1013. activated() {
  1014. // this.getDataList()
  1015. // this.getWareHouseList()
  1016. },
  1017. created() {
  1018. // 动态列
  1019. this.getTableUserColumn(this.$route.meta.menuId+'table1',1)
  1020. this.getTableUserColumn(this.$route.meta.menuId+'table2',2)
  1021. this.getDataList()
  1022. this.getWareHouseList()
  1023. },
  1024. mounted() {
  1025. this.favoriteIsOk()
  1026. this. getBu ()
  1027. this.$nextTick(() => {
  1028. this.height = window.innerHeight - 210
  1029. })
  1030. },
  1031. methods: {
  1032. // 获取bu列表
  1033. getBu () {
  1034. let tempData = {
  1035. username: this.$store.state.user.name,
  1036. }
  1037. getAllBuList(tempData).then(({data}) => {
  1038. if (data.code === 0) {
  1039. this.userBuList = data.rows
  1040. }
  1041. })
  1042. },
  1043. // 每页数
  1044. sizeChangeHandle (val) {
  1045. this.pageSize = val
  1046. this.pageIndex = 1
  1047. this.getDataList()
  1048. },
  1049. // 当前页
  1050. currentChangeHandle (val) {
  1051. this.pageIndex = val
  1052. this.getDataList()
  1053. },
  1054. objectSpanMethod({ row, column, rowIndex, columnIndex }) {
  1055. if (columnIndex === 0 || columnIndex === 1 || columnIndex === 2) {
  1056. if (rowIndex % 2 === 0) {
  1057. return {
  1058. rowspan: 2,
  1059. colspan: 1
  1060. };
  1061. } else {
  1062. return {
  1063. rowspan: 0,
  1064. colspan: 0
  1065. };
  1066. }
  1067. }
  1068. },
  1069. // 获取数据列表
  1070. getDataList () {
  1071. this.dataListLoading = true
  1072. this.queryForm.page = this.pageIndex
  1073. this.queryForm.limit = this.pageSize
  1074. getCoreSparePartList(this.queryForm).then(({data}) => {
  1075. if (data && data.code === 0) {
  1076. this.headDataList = data.list
  1077. // this.pageIndex = data.page.currPage
  1078. // this.pageSize = data.page.pageSize
  1079. // this.totalPage = data.page.totalCount
  1080. }
  1081. this.dataListLoading = false
  1082. })
  1083. // 清空下方数据
  1084. this.dataList = []
  1085. this.locationId = ''
  1086. this.arrivalTime = ''
  1087. },
  1088. handleRowClick(row){
  1089. this.locationId = row.locationId
  1090. this.arrivalTime = row.arrivalTime
  1091. this.dataListLoading2 = true
  1092. let params = {
  1093. site: row.site,
  1094. buNo: row.buNo,
  1095. partNo: row.partNo,
  1096. serialNo: row.serialNumber
  1097. }
  1098. getEamWorkOrderCoreComponentsList(params).then(({data}) => {
  1099. if (data && data.code === 0) {
  1100. this.dataList = data.list
  1101. }
  1102. this.dataListLoading2 = false // 移到这里
  1103. }).catch(() => {
  1104. this.dataListLoading2 = false // 异常也关闭 loading
  1105. })
  1106. },
  1107. // 新增按钮
  1108. addModal () {
  1109. this.modalData = {
  1110. flag: '1',
  1111. site: '',
  1112. buNo: '',
  1113. bu: '2_03-RFID',
  1114. partNo: '',
  1115. partDesc: '',
  1116. serialNumber: '',
  1117. status: '启用',
  1118. createBy: this.$store.state.user.name,
  1119. updateBy: this.$store.state.user.name,
  1120. arrivalTime: new Date(),
  1121. remark: ''
  1122. }
  1123. this.modalDisableFlag = false
  1124. this.modalFlag = true
  1125. },
  1126. updateModal(row){
  1127. this.modalData = {
  1128. flag: '2',
  1129. site: row.site,
  1130. buNo: row.buNo,
  1131. bu: row.site + '_' + row.buNo,
  1132. partNo: row.partNo,
  1133. partDesc: row.partDesc,
  1134. serialNumber: row.serialNumber,
  1135. status: row.status,
  1136. updateBy: this.$store.state.user.name,
  1137. arrivalTime: row.arrivalTime,
  1138. remark: row.remark
  1139. }
  1140. this.modalDisableFlag = true
  1141. this.modalFlag = true
  1142. },
  1143. // 保存数据
  1144. saveData(){
  1145. if (this.modalData.bu === '' || this.modalData.bu == null) {
  1146. this.$message.warning('请选择BU!')
  1147. return
  1148. }
  1149. if (this.modalData.partNo === '' || this.modalData.partNo == null) {
  1150. this.$message.warning('请填写配件编码!')
  1151. return
  1152. }
  1153. if (this.modalData.serialNumber === '' || this.modalData.serialNumber == null) {
  1154. this.$message.warning('请填写序列号!')
  1155. return
  1156. }
  1157. if (this.modalData.status === '' || this.modalData.status == null) {
  1158. this.$message.warning('请填写启用状态!')
  1159. return
  1160. }
  1161. if (this.modalData.arrivalTime === '' || this.modalData.arrivalTime == null) {
  1162. this.$message.warning('请选择到厂时间!')
  1163. return
  1164. }
  1165. saveCoreSparePart(this.modalData).then(({data})=>{
  1166. if (data.code === 0) {
  1167. this.$message.success(data.msg)
  1168. this.modalFlag = false
  1169. this.getDataList()
  1170. }
  1171. })
  1172. },
  1173. deleteData(row){
  1174. this.$confirm(`是否删除该 条记录?`, '提示', {
  1175. confirmButtonText: '确定',
  1176. cancelButtonText: '取消',
  1177. type: 'warning'
  1178. }).then(() => {
  1179. deleteCoreSparePart(row).then(({data}) => {
  1180. if (data && data.code === 0) {
  1181. this.getDataList()
  1182. this.$message({
  1183. message: '操作成功',
  1184. type: 'success',
  1185. duration: 1500,
  1186. onClose: () => {}
  1187. })
  1188. } else {
  1189. this.$alert(data.msg, '错误', {
  1190. confirmButtonText: '确定'
  1191. })
  1192. }
  1193. })
  1194. }).catch(() => {})
  1195. },
  1196. getBaseList (val,type) {
  1197. this.tagNo = val
  1198. this.$nextTick(() => {
  1199. let strVal = ''
  1200. let conSql = " and site = '" + this.modalData.bu.split('_')[0] + "' and bu_no = '" + this.modalData.bu.split('_')[1] + "'"
  1201. if (val === 1200) {
  1202. this.$refs.baseList.init(val, strVal, conSql)
  1203. }
  1204. })
  1205. },
  1206. // 回调方法
  1207. getBaseData (val) {
  1208. if (this.tagNo === 1200) {
  1209. this.modalData.partNo = val.part_no
  1210. this.modalData.partDesc = val.partDesc
  1211. }
  1212. },
  1213. // 获取仓库列表
  1214. getWareHouseList () {
  1215. let wareHouse = {
  1216. username: this.$store.state.user.name,
  1217. warehousetype: "备品备件仓",
  1218. }
  1219. getWareHouseList(wareHouse).then(({data}) =>{
  1220. if (data && data.code === 0) {
  1221. this.wareHouseList = data.data
  1222. }
  1223. })
  1224. },
  1225. // 控制单行的背景颜色
  1226. controlRowStyle ({row, rowIndex}) {
  1227. if (this.queryForm.groupType === '1' && row.lifespan == '是') {
  1228. return { 'background-color': '#FFD3D3', cursor: 'pointer' }
  1229. }
  1230. },
  1231. startDownload () {},
  1232. finishDownload () {},
  1233. fields () {
  1234. if (this.queryForm.groupType === '0'){
  1235. this.columnList = this.arrayColumns
  1236. }else {
  1237. this.columnList = this.arrayPart
  1238. }
  1239. let json = "{"
  1240. this.columnList.forEach((item, index) => {
  1241. if (index == this.columnList.length - 1) {
  1242. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  1243. } else {
  1244. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  1245. }
  1246. })
  1247. json += "}"
  1248. let s = eval("(" + json + ")")
  1249. return s
  1250. },
  1251. // 校验用户是否收藏
  1252. favoriteIsOk () {
  1253. let userFavorite = {
  1254. userId: this.$store.state.user.id,
  1255. languageCode: this.$i18n.locale
  1256. }
  1257. userFavoriteList(userFavorite).then(({data}) => {
  1258. for (let i = 0; i < data.list.length; i++) {
  1259. if(this.$route.meta.menuId === data.list[i].menuId){
  1260. this.favorite = true
  1261. }
  1262. }
  1263. })
  1264. },
  1265. // 收藏 OR 取消收藏
  1266. favoriteFunction () {
  1267. let userFavorite = {
  1268. userId: this.$store.state.user.id,
  1269. functionId: this.$route.meta.menuId,
  1270. }
  1271. if (this.favorite) {
  1272. // 取消收藏
  1273. this.$confirm(`确定取消收藏`, '提示', {
  1274. confirmButtonText: '确定',
  1275. cancelButtonText: '取消',
  1276. type: 'warning'
  1277. }).then(() => {
  1278. removeUserFavorite(userFavorite).then(({data}) => {
  1279. this.$message.success(data.msg)
  1280. this.favorite = false
  1281. })
  1282. })
  1283. } else {
  1284. // 收藏
  1285. saveUserFavorite(userFavorite).then(({data}) => {
  1286. this.$message.success(data.msg)
  1287. this.favorite = true
  1288. })
  1289. }
  1290. },
  1291. // 动态列开始 获取 用户保存的 格式列
  1292. async getTableUserColumn (tableId, columnId) {
  1293. let queryTableUser = {
  1294. userId: this.$store.state.user.name,
  1295. functionId: this.$route.meta.menuId,
  1296. tableId: tableId,
  1297. status: true,
  1298. languageCode: this.$i18n.locale
  1299. }
  1300. await getTableUserListLanguage(queryTableUser).then(({data}) => {
  1301. if (data.rows.length > 0) {
  1302. switch (columnId) {
  1303. case 1:
  1304. this.arrayColumns = data.rows
  1305. break;
  1306. case 2:
  1307. this.arrayPart = data.rows
  1308. break;
  1309. }
  1310. } else {
  1311. this.getColumnList(tableId, columnId)
  1312. }
  1313. })
  1314. },
  1315. // 获取 tableDefault 列
  1316. async getColumnList (tableId, columnId) {
  1317. let queryTable= {
  1318. functionId: this.$route.meta.menuId,
  1319. tableId: tableId,
  1320. languageCode: this.$i18n.locale
  1321. }
  1322. await getTableDefaultListLanguage(queryTable).then(({data}) => {
  1323. if (!data.rows.length === 0) {
  1324. switch (columnId) {
  1325. case 1:
  1326. this.arrayColumns = data.rows
  1327. break;
  1328. case 2:
  1329. this.arrayPart = data.rows
  1330. break;
  1331. }
  1332. }
  1333. })
  1334. },
  1335. }
  1336. }
  1337. </script>