冷凝胶前端
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.

735 lines
22 KiB

2 years ago
  1. <template>
  2. <div class="mod-config">
  3. <!-- 条件查询 -->
  4. <el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
  5. <el-form-item :label="'物料编码:'">
  6. <el-input v-model="searchData.partNo" clearable style="width: 120px"></el-input>
  7. </el-form-item>
  8. <el-form-item :label="'库位编码:'">
  9. <el-input v-model="searchData.locationId" clearable style="width: 120px"></el-input>
  10. </el-form-item>
  11. <el-form-item :label="'料号描述:'">
  12. <el-input v-model="searchData.partDesc" clearable style="width: 120px"></el-input>
  13. </el-form-item>
  14. <!-- <el-form-item :label="'卷号:'">-->
  15. <!-- <el-input v-model="searchData.rollNo" clearable style="width: 120px"></el-input>-->
  16. <!-- </el-form-item>-->
  17. <!-- <el-form-item label="出入库类型:">-->
  18. <!-- <el-select v-model="searchData.transType" placeholder="请选择" clearable style="width: 120px">-->
  19. <!-- <el-option-->
  20. <!-- v-for="i in findByNum"-->
  21. <!-- :key ="i.transType"-->
  22. <!-- :label="i.transType"-->
  23. <!-- :value="i.transType">-->
  24. <!-- </el-option>-->
  25. <!-- </el-select>-->
  26. <!-- </el-form-item>-->
  27. <el-form-item :label="' '">
  28. <el-button v-if="!authSearch" type="primary" @click="getDataList()">查询</el-button>
  29. <!-- <download-excel-->
  30. <!-- :fields="fields()"-->
  31. <!-- :data="exportData"-->
  32. <!-- type="xls"-->
  33. <!-- :name="exportName"-->
  34. <!-- :header="exportHeader"-->
  35. <!-- :footer="exportFooter"-->
  36. <!-- :fetch="createExportData"-->
  37. <!-- :before-generate="startDownload"-->
  38. <!-- :before-finish="finishDownload"-->
  39. <!-- worksheet="导出信息"-->
  40. <!-- class="el-button el-button&#45;&#45;primary el-button&#45;&#45;medium">-->
  41. <!-- {{ "导出" }}-->
  42. <!-- </download-excel>-->
  43. </el-form-item>
  44. </el-form>
  45. <!-- 展示列表 -->
  46. <el-table
  47. :height="height"
  48. :data="dataList"
  49. @row-click="changeData"
  50. border
  51. style="width: 100%;">
  52. <el-table-column
  53. v-for="(item,index) in columnList" :key="index"
  54. :sortable="item.columnSortable"
  55. :prop="item.columnProp"
  56. :header-align="item.headerAlign"
  57. :show-overflow-tooltip="item.showOverflowTooltip"
  58. :align="item.align"
  59. :fixed="item.fixed==''?false:item.fixed"
  60. :width="item.columnWidth"
  61. :label="item.columnLabel">
  62. <template slot-scope="scope">
  63. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  64. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  65. </template>
  66. </el-table-column>
  67. </el-table>
  68. <!-- <el-tabs style="font-size: 12px;min-height: 200px" class="customer-tab" v-model="activeName" type="border-card" @tab-click="tabClick">-->
  69. <!-- <el-tab-pane label="卷明细" name="detail">-->
  70. <!-- <el-table-->
  71. <!-- :data="dataList2"-->
  72. <!-- :height="height"-->
  73. <!-- border-->
  74. <!-- style="width: 100%; ">-->
  75. <!-- <el-table-column-->
  76. <!-- v-for="(item,index) in columnList2" :key="index"-->
  77. <!-- :sortable="item.columnSortable"-->
  78. <!-- :prop="item.columnProp"-->
  79. <!-- :header-align="item.headerAlign"-->
  80. <!-- :show-overflow-tooltip="item.showOverflowTooltip"-->
  81. <!-- :align="item.align"-->
  82. <!-- :fixed="item.fixed==''?false:item.fixed"-->
  83. <!-- :min-width="item.columnWidth"-->
  84. <!-- :label="item.columnLabel">-->
  85. <!-- <template slot-scope="scope">-->
  86. <!-- <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>-->
  87. <!-- <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"-->
  88. <!-- style="width: 100px; height: 80px"/></span>-->
  89. <!-- </template>-->
  90. <!-- </el-table-column>-->
  91. <!-- </el-table>-->
  92. <!-- </el-tab-pane>-->
  93. <!-- </el-tabs>-->
  94. <el-pagination
  95. @size-change="sizeChangeHandle"
  96. @current-change="currentChangeHandle"
  97. :current-page="pageIndex"
  98. :page-sizes="[20, 50, 100, 200, 500]"
  99. :page-size="pageSize"
  100. :total="totalPage"
  101. layout="total, sizes, prev, pager, next, jumper">
  102. </el-pagination>
  103. </div>
  104. </template>
  105. <script>
  106. import {
  107. findByNum, // 检验方法查询
  108. // saveLocation, // 检验方法新增
  109. // updateLocation, // 检验方法修改
  110. // deleteLocation, // 检验方法删除
  111. // findByWarehouse, //查询库区
  112. // inspectionTypeSearch, // 搜索所有检验类型
  113. // // getSiteAndBuByUserName
  114. } from "@/api/material/seekByTrans.js"
  115. // import {getTableDefaultListLanguage, getTableUserListLanguage} from "@/api/table.js"
  116. // import {userFavoriteList, saveUserFavorite, removeUserFavorite} from '@/api/userFavorite.js'
  117. export default {
  118. data () {
  119. return {
  120. wareHouseList:'',
  121. // 是否收藏
  122. favorite: false,
  123. // 导出 start
  124. exportData: [],
  125. exportName: "检验方法" + this.dayjs().format('YYYYMMDDHHmmss'),
  126. exportHeader: ["检验方法"],
  127. exportFooter: [],
  128. exportList: [],
  129. warehouseData: {
  130. id:'',
  131. site: '',
  132. },
  133. // 导出 end
  134. searchData: {
  135. transNo:'',
  136. site: '',
  137. userName: this.$store.state.user.name,
  138. transDate: '',
  139. warehouseID: '',
  140. rollNo: '',
  141. partNo: '',
  142. partDesc: '',
  143. transQty: '',
  144. batchNo: '',
  145. locationID: '',
  146. wdrNo: '',
  147. manufactureDate: '',
  148. orderRef1: '',
  149. receiver: '',
  150. enterDate: '',
  151. transType: '',
  152. page: 1,
  153. limit: 10,
  154. },
  155. pageIndex: 1,
  156. pageSize: 20,
  157. totalPage: 0,
  158. height: 200,
  159. dataList: [],
  160. dataList2:[],
  161. dataListLoading: false,
  162. modalFlag: false,
  163. modalDisableFlag: false,
  164. modalData: {
  165. site: '',
  166. warehouseId: '',
  167. locationId: '',
  168. active: 'Y',
  169. locationName: '',
  170. creator: this.$store.state.user.name,
  171. // updateBy: this.$store.state.user.name,
  172. locationDescription: '',
  173. keeper: '',
  174. remarks: '',
  175. createTime: '',
  176. },
  177. // 标头展示
  178. columnList: [
  179. {
  180. userId: this.$store.state.user.name,
  181. functionId: 200003,
  182. serialNumber: '200003TableWarehouseId',
  183. tableId: "200003Table",
  184. tableName: "仓位编码",
  185. columnWidth: 150,
  186. columnProp: 'warehouseID',
  187. headerAlign: 'center',
  188. align: "center",
  189. columnLabel: '仓位编码',
  190. columnHidden: false,
  191. columnImage: false,
  192. columnSortable: false,
  193. sortLv: 0,
  194. status: true,
  195. fixed: '',
  196. },
  197. {
  198. userId: this.$store.state.user.name,
  199. functionId: 200003,
  200. serialNumber: '200003TablePartNo',
  201. tableId: "200003Table",
  202. tableName: "物料编码",
  203. columnWidth: 150,
  204. columnProp: 'partNo',
  205. headerAlign: 'center',
  206. align: "left",
  207. columnLabel: '物料编码',
  208. columnHidden: false,
  209. columnImage: false,
  210. columnSortable: false,
  211. sortLv: 0,
  212. status: true,
  213. fixed: '',
  214. },
  215. {
  216. userId: this.$store.state.user.name,
  217. functionId: 200003,
  218. serialNumber: '200003TablePartDesc',
  219. tableId: "200003Table",
  220. tableName: "料号描述",
  221. columnWidth: 150,
  222. columnProp: 'partDesc',
  223. headerAlign: 'center',
  224. align: "center",
  225. columnLabel: '料号描述',
  226. columnHidden: false,
  227. columnImage: false,
  228. columnSortable: false,
  229. sortLv: 0,
  230. status: true,
  231. fixed: '',
  232. },
  233. {
  234. userId: this.$store.state.user.name,
  235. functionId: 200003,
  236. serialNumber: '200003TableTransQty',
  237. tableId: "200003Table",
  238. tableName: "出入库数量",
  239. columnWidth: 150,
  240. columnProp: 'transQty',
  241. headerAlign: 'center',
  242. align: "center",
  243. columnLabel: '出入库数量',
  244. columnHidden: false,
  245. columnImage: false,
  246. columnSortable: false,
  247. sortLv: 0,
  248. status: true,
  249. fixed: '',
  250. },
  251. {
  252. userId: this.$store.state.user.name,
  253. functionId: 200003,
  254. serialNumber: '200003TableBatchNo',
  255. tableId: "200003Table",
  256. tableName: "批号",
  257. columnWidth: 150,
  258. columnProp: 'batchNo',
  259. headerAlign: 'center',
  260. align: "center",
  261. columnLabel: '批号',
  262. columnHidden: false,
  263. columnImage: false,
  264. columnSortable: false,
  265. sortLv: 0,
  266. status: true,
  267. fixed: '',
  268. },
  269. {
  270. userId: this.$store.state.user.name,
  271. functionId: 200003,
  272. serialNumber: '200003TableLocationID',
  273. tableId: "200003Table",
  274. tableName: "库位",
  275. columnWidth: 150,
  276. columnProp: 'locationID',
  277. headerAlign: 'center',
  278. align: "center",
  279. columnLabel: '库位',
  280. columnHidden: false,
  281. columnImage: false,
  282. columnSortable: false,
  283. sortLv: 0,
  284. status: true,
  285. fixed: '',
  286. },
  287. {
  288. userId: this.$store.state.user.name,
  289. functionId: 200003,
  290. serialNumber: '200003TableWdrNo',
  291. tableId: "200003Table",
  292. tableName: "W/D/R",
  293. columnWidth: 150,
  294. columnProp: 'wdrNo',
  295. headerAlign: 'center',
  296. align: "center",
  297. columnLabel: 'W/D/R',
  298. columnHidden: false,
  299. columnImage: false,
  300. columnSortable: false,
  301. sortLv: 0,
  302. status: true,
  303. fixed: '',
  304. },
  305. {
  306. userId: this.$store.state.user.name,
  307. functionId: 200003,
  308. serialNumber: '200003TableManufactureDate',
  309. tableId: "200003Table",
  310. tableName: "生产日期",
  311. columnWidth: 150,
  312. columnProp: 'manufactureDate',
  313. headerAlign: 'center',
  314. align: "center",
  315. columnLabel: '生产日期',
  316. columnHidden: false,
  317. columnImage: false,
  318. columnSortable: false,
  319. sortLv: 0,
  320. status: true,
  321. fixed: '',
  322. },
  323. {
  324. userId: this.$store.state.user.name,
  325. functionId: 200003,
  326. serialNumber: '200003TableEnterDate',
  327. tableId: "200003Table",
  328. tableName: "录入时间",
  329. columnWidth: 150,
  330. columnProp: 'enterDate',
  331. headerAlign: 'center',
  332. align: "center",
  333. columnLabel: '录入时间',
  334. columnHidden: false,
  335. columnImage: false,
  336. columnSortable: false,
  337. sortLv: 0,
  338. status: true,
  339. fixed: '',
  340. },
  341. {
  342. userId: this.$store.state.user.name,
  343. functionId: 200003,
  344. serialNumber: '200003TableExpiredDate',
  345. tableId: "200003Table",
  346. tableName: "失效日期",
  347. columnWidth: 150,
  348. columnProp: 'expiredDate',
  349. headerAlign: 'center',
  350. align: "center",
  351. columnLabel: '录入人',
  352. columnHidden: false,
  353. columnImage: false,
  354. columnSortable: false,
  355. sortLv: 0,
  356. status: true,
  357. fixed: '',
  358. },
  359. ],
  360. columnList2:[
  361. {
  362. userId: this.$store.state.user.name,
  363. functionId: 200003,
  364. serialNumber: '200003TableTransType',
  365. tableId: "200003Table",
  366. tableName: "出入库类型",
  367. columnWidth: 150,
  368. columnProp: 'transType',
  369. headerAlign: 'center',
  370. align: "center",
  371. columnLabel: '出入库类型',
  372. columnHidden: false,
  373. columnImage: false,
  374. columnSortable: false,
  375. sortLv: 0,
  376. status: true,
  377. fixed: '',
  378. },
  379. ],
  380. rules: {
  381. },
  382. options: [],
  383. userBuList: [],
  384. authSearch: false,
  385. authSave: false,
  386. authUpdate: false,
  387. authDelete: false,
  388. menuId: this.$route.meta.menuId,
  389. }
  390. },
  391. mounted () {
  392. this.$nextTick(() => {
  393. this.height = window.innerHeight - 180
  394. })
  395. },
  396. //页面加载前初始化着两个方法
  397. created () {
  398. this.getDataList()
  399. //this.getWareHouseList()
  400. },
  401. methods: {
  402. // 获取用户的bu
  403. getSiteAndBuByUserName () {
  404. let tempData = {
  405. username: this.$store.state.user.name,
  406. }
  407. getSiteAndBuByUserName(tempData).then(({data}) => {
  408. if (data.code === 0) {
  409. this.userBuList = data.rows
  410. }
  411. })
  412. },
  413. //根据warehouse查询warehouseId
  414. getWareHouseList (){
  415. findByWarehouse(``).then(({data}) =>{
  416. this.wareHouseList=data.rows
  417. }
  418. )
  419. },
  420. // 查询获取数据列表
  421. getDataList (){
  422. this.searchData.limit = this.pageSize
  423. this.searchData.page = this.pageIndex
  424. findByNum(this.searchData).then(({data}) => {
  425. if (data.code === 0) {
  426. this.dataList = data.page.list
  427. this.pageIndex = data.page.currPage
  428. this.pageSize = data.page.pageSize
  429. this.totalPage = data.page.totalCount
  430. }
  431. })
  432. },
  433. // 每页数
  434. sizeChangeHandle (val) {
  435. this.pageSize = val
  436. this.pageIndex = 1
  437. this.getDataList()
  438. },
  439. // 当前页
  440. currentChangeHandle (val) {
  441. this.pageIndex = val
  442. this.getDataList()
  443. },
  444. // // 新增按钮
  445. // addModal () {
  446. // this.modalData = {
  447. // flag: '1',
  448. // site: '',
  449. // creator: this.$store.state.user.name,
  450. // locationId: '',
  451. // locationName: '',
  452. // active: 'Y',
  453. // warehouseId: '',
  454. // locationDescription: '',
  455. // keeper: '',
  456. // remarks: '',
  457. // }
  458. // this.modalDisableFlag = false
  459. // this.modalFlag = true
  460. // },
  461. // // 修改按钮
  462. // updateModal (row) {
  463. // this.modalData = {
  464. // flag: '2',
  465. // id:row.id,
  466. // site: row.site,
  467. // creator: this.$store.state.user.name,
  468. // warehouseId: row.warehouseId,
  469. // locationId: row.locationId,
  470. // active: row.active,
  471. // locationName: row.locationName,
  472. // locationDescription: row.locationDescription,
  473. // keeper: row.keeper,
  474. // remarks: row.remarks,
  475. // }
  476. // this.modalDisableFlag = true
  477. // this.modalFlag = true
  478. // },
  479. // 删除方法
  480. // deleteModal (row) {
  481. // this.$confirm(`是否删除这个检验方法?`, '提示', {
  482. // confirmButtonText: '确定',
  483. // cancelButtonText: '取消',
  484. // type: 'warning'
  485. // }).then(() => {
  486. // deleteLocation(row).then(({data}) => {
  487. // if (data && data.code === 0) {
  488. // this.getDataList()
  489. // this.$message({
  490. // message: '操作成功',
  491. // type: 'success',
  492. // duration: 1500,
  493. // onClose: () => {}
  494. // })
  495. // } else {
  496. // this.$alert(data.msg, '错误', {
  497. // confirmButtonText: '确定'
  498. // })
  499. // }
  500. // })
  501. // }).catch(() => {
  502. // })
  503. // },
  504. // 新增/修改方法
  505. // saveData () {
  506. // if (this.modalData.site === '' || this.modalData.site == null) {
  507. // this.$message.warning('请输入工厂编码!')
  508. // return
  509. // }
  510. // if (this.modalData.warehouseId === '' || this.modalData.warehouseId == null) {
  511. // this.$message.warning('请选择仓库编码!')
  512. // return
  513. // }
  514. // if(this.modalData.locationName === ''|| this.modalData.locationName == null){
  515. // this.$message.warning('请输入库位名称!')
  516. // return
  517. // }
  518. // if(this.modalData.locationId === ''|| this.modalData.locationId == null){
  519. // this.$message.warning('请输入库位编码!')
  520. // return
  521. // }
  522. // if (this.modalData.flag === '1') { // 新增
  523. // saveLocation(this.modalData).then(({data}) => {
  524. // if (data && data.code === 0) {
  525. // this.getDataList()
  526. // this.modalFlag = false
  527. // this.$message({
  528. // message: '操作成功',
  529. // type: 'success',
  530. // duration: 1500,
  531. // onClose: () => {}
  532. // })
  533. // } else {
  534. // this.$alert(data.msg, '错误', {
  535. // confirmButtonText: '确定'
  536. // })
  537. // }
  538. // })
  539. // } else { // 修改
  540. // updateLocation(this.modalData).then(({data}) => {
  541. // if (data && data.code === 0) {
  542. // this.getDataList()
  543. // this.modalFlag = false
  544. // this.$message({
  545. // message: '操作成功',
  546. // type: 'success',
  547. // duration: 1500,
  548. // onClose: () => {}
  549. // })
  550. // } else {
  551. // this.$alert(data.msg, '错误', {
  552. // confirmButtonText: '确定'
  553. // })
  554. // }
  555. // })
  556. // }
  557. // },
  558. // 查询检验类型
  559. inspectionTypeSearch () {
  560. let tempData = {
  561. site: this.$store.state.user.site
  562. }
  563. inspectionTypeSearch(tempData).then(({data}) => {
  564. if (data.code === 0) {
  565. this.options = data.rows
  566. }
  567. })
  568. },
  569. // 校验用户是否收藏
  570. favoriteIsOk () {
  571. let userFavorite = {
  572. userId: this.$store.state.user.id,
  573. languageCode: this.$i18n.locale
  574. }
  575. userFavoriteList(userFavorite).then(({data}) => {for (let i = 0; i < data.list.length; i++) {
  576. if(this.$route.meta.menuId === data.list[i].menuId){
  577. this.favorite = true
  578. }
  579. }
  580. })
  581. },
  582. // 收藏 OR 取消收藏
  583. favoriteFunction () {
  584. let userFavorite = {
  585. userId: this.$store.state.user.id,
  586. functionId: this.$route.meta.menuId,
  587. }
  588. if (this.favorite) {
  589. removeUserFavorite(userFavorite).then(({data}) => {
  590. this.$message.success(data.msg)
  591. this.favorite = false
  592. })
  593. } else {
  594. // 收藏
  595. saveUserFavorite(userFavorite).then(({data}) => {
  596. this.$message.success(data.msg)
  597. this.favorite = true
  598. })
  599. }
  600. },
  601. //导出excel
  602. async createExportData() {
  603. this.searchData.limit = -1
  604. this.searchData.page = 1
  605. await findByNum(this.searchData).then(({data}) => {
  606. this.exportList= data.rows
  607. })
  608. return this.exportList
  609. },
  610. startDownload() {},
  611. finishDownload() {},
  612. fields () {
  613. let json = "{"
  614. this.columnList.forEach((item, index) => {
  615. if (index == this.columnList.length - 1) {
  616. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  617. } else {
  618. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  619. }
  620. })
  621. json += "}"
  622. let s = eval("(" + json + ")")
  623. return s
  624. },
  625. // 动态列开始 获取 用户保存的 格式列
  626. async getTableUserColumn (tableId, columnId) {
  627. let queryTableUser = {
  628. userId: this.$store.state.user.name,
  629. functionId: this.$route.meta.menuId,
  630. tableId: tableId,
  631. status: true,
  632. languageCode: this.$i18n.locale
  633. }
  634. await getTableUserListLanguage(queryTableUser).then(({data}) => {
  635. if (data.rows.length > 0) {
  636. //this.columnList1 = []
  637. switch (columnId) {
  638. case 1:
  639. this.columnList = data.rows
  640. break;
  641. // case 2:
  642. // this.columnDetailList = data.rows
  643. // break;
  644. // case 3:
  645. // this.columnList2 = data.rows
  646. // break;
  647. // case 4:
  648. // this.columnList3 = data.rows
  649. // break;
  650. }
  651. } else {
  652. this.getColumnList(tableId, columnId)
  653. }
  654. })
  655. },
  656. // 获取 tableDefault 列
  657. async getColumnList (tableId, columnId) {
  658. let queryTable = {
  659. functionId: this.$route.meta.menuId,
  660. tableId: tableId,
  661. languageCode: this.$i18n.locale
  662. }
  663. await getTableDefaultListLanguage(queryTable).then(({data}) => {
  664. if (!data.rows.length == 0) {
  665. switch (columnId) {
  666. case 1:
  667. this.columnList = data.rows
  668. break;
  669. // case 2:
  670. // this.columnDetailList = data.rows
  671. // break;
  672. // case 3:
  673. // this.columnList2 = data.rows
  674. // break;
  675. // case 4:
  676. // this.columnList3 = data.rows
  677. // break;
  678. }
  679. } else {
  680. // this.showDefault = true.
  681. }
  682. })
  683. },
  684. //获取按钮的权限数据
  685. getButtonAuthData () {
  686. let searchFlag = this.isAuth(this.menuId+":search")
  687. let saveFlag = this.isAuth(this.menuId+":save")
  688. let updateFlag = this.isAuth(this.menuId+":update")
  689. let deleteFlag = this.isAuth(this.menuId+":delete")
  690. //处理页面的权限数据
  691. this.authSearch = !searchFlag
  692. this.authSave = !saveFlag
  693. this.authUpdate = !updateFlag
  694. this.authDelete = !deleteFlag
  695. },
  696. }
  697. }
  698. </script>