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.

641 lines
20 KiB

  1. <template>
  2. <div class="mod-config">
  3. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
  4. <el-form-item :label="'BU:'">
  5. <el-select v-model="searchData.buNo" placeholder="请选择" >
  6. <el-option label="全部" value=""></el-option>
  7. <el-option
  8. v-for = "i in buList"
  9. :key = "i.buNo"
  10. :label = "i.buDesc"
  11. :value = "i.buNo">
  12. </el-option>
  13. </el-select>
  14. </el-form-item>
  15. <el-form-item :label="'箱类型:'">
  16. <el-input v-model="searchData.packageType" ></el-input>
  17. <!-- <el-select filterable v-model="searchData.packageType" clearable style="width: 140px;">
  18. <el-option :label="item" :value="item" v-for="(item,index) in packageTypes "
  19. :key="index"></el-option>
  20. </el-select>-->
  21. </el-form-item>
  22. <el-form-item :label="' '" >
  23. <el-button @click="searchTable()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'查询'}}</el-button>
  24. <el-button @click="addModelOpen()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'新增'}}</el-button>
  25. </el-form-item>
  26. </el-form>
  27. <el-table
  28. @row-click="changeData"
  29. highlight-current-row
  30. :height="height"
  31. :data="dataList"
  32. ref="mainTable"
  33. border
  34. v-loading="dataListLoading"
  35. style="width: 100%;">
  36. <el-table-column
  37. header-align="center"
  38. align="center"
  39. width="100"
  40. fixed="left"
  41. label="操作">
  42. <template slot-scope="scope">
  43. <a type="text" size="small" @click="updateModelOpen(scope.row)">编辑</a>
  44. <a type="text" size="small" @click="deletePackage(scope.row)">删除</a>
  45. </template>
  46. </el-table-column>
  47. <el-table-column
  48. v-for="(item,index) in columnList1" :key="index"
  49. :sortable="item.columnSortable"
  50. :prop="item.columnProp"
  51. :header-align="item.headerAlign"
  52. :show-overflow-tooltip="item.showOverflowTooltip"
  53. :align="item.align"
  54. :fixed="item.fixed==''?false:item.fixed"
  55. :min-width="item.columnWidth"
  56. :label="item.columnLabel">
  57. <template slot-scope="scope">
  58. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  59. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  60. style="width: 100px; height: 80px"/></span>
  61. </template>
  62. </el-table-column>
  63. </el-table>
  64. <el-pagination
  65. @size-change="sizeChangeHandle"
  66. @current-change="currentChangeHandle"
  67. :current-page="pageIndex"
  68. :page-sizes="[20, 50, 100, 1000]"
  69. :page-size="pageSize"
  70. :total="totalPage"
  71. layout="total, sizes, prev, pager, next, jumper">
  72. </el-pagination>
  73. <el-dialog title="维护包装箱信息" :close-on-click-modal="false" v-drag :visible.sync="addModelFlag" width="500px">
  74. <el-form label-position="top" style="margin-left: 7px;margin-top: -5px;">
  75. <el-row :gutter="20">
  76. <el-col :span="8">
  77. <el-form-item :label="'BU:'">
  78. <el-select v-model="addModel.buNo" placeholder="请选择" :disabled="addModel.addFlag!==0" style="width: 100%">
  79. <el-option
  80. v-for = "i in buList"
  81. :key = "i.buNo"
  82. :label = "i.buDesc"
  83. :value = "i.buNo">
  84. </el-option>
  85. </el-select>
  86. </el-form-item>
  87. </el-col>
  88. <el-col :span="8">
  89. <el-form-item :label="'包装箱编码'" >
  90. <el-input v-model="addModel.packageNo" :disabled="addModel.addFlag!==0" ></el-input>
  91. </el-form-item>
  92. </el-col>
  93. <el-col :span="8">
  94. <el-form-item :label="'箱类型'" >
  95. <el-input v-model="addModel.packageType" ></el-input>
  96. <!-- <el-select filterable v-model="addModel.packageType" clearable style="width:100%;">
  97. <el-option :label="item" :value="item" v-for="(item,index) in packageTypes "
  98. :key="index"></el-option>
  99. </el-select>-->
  100. </el-form-item>
  101. </el-col>
  102. <el-col :span="8">
  103. <el-form-item label="长(M)">
  104. <el-input v-model="addModel.length" ></el-input>
  105. </el-form-item>
  106. </el-col>
  107. <el-col :span="8">
  108. <el-form-item label="宽(M)">
  109. <el-input v-model="addModel.width" ></el-input>
  110. </el-form-item>
  111. </el-col>
  112. <el-col :span="8">
  113. <el-form-item label="高(M)">
  114. <el-input v-model="addModel.height" ></el-input>
  115. </el-form-item>
  116. </el-col>
  117. <!-- <el-col :span="8">
  118. <el-form-item label="重量">
  119. <el-input v-model="addModel.weight" ></el-input>
  120. </el-form-item>
  121. </el-col>-->
  122. <el-col :span="24">
  123. <el-form-item :label="'备注'" >
  124. <el-input v-model="addModel.remark" ></el-input>
  125. </el-form-item>
  126. </el-col>
  127. </el-row>
  128. </el-form>
  129. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  130. <el-button type="primary" @click="savePackage()">保存</el-button>
  131. <el-button type="primary" @click="addModelFlag=false">关闭</el-button>
  132. </el-footer>
  133. </el-dialog>
  134. <!--列表的组件-->
  135. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  136. </div>
  137. </template>
  138. <script>
  139. import Chooselist from '@/views/modules/common/Chooselist_eam'
  140. import {} from "@/api/sysLanguage.js"
  141. import {
  142. searchPackageData,
  143. savePackageData,
  144. deletePackage,
  145. }from "@/api/ecss/ecss.js"
  146. import {getBuList}from '@/api/factory/site.js'
  147. export default {
  148. name: "null",
  149. components:{
  150. Chooselist,
  151. },
  152. data() {
  153. return {
  154. packageTypes: ['木箱', '塑料箱', '瓦楞纸箱', '蜂窝纸箱'],
  155. pageIndex: 1,
  156. pageSize: 100,
  157. totalPage: 0,
  158. height: 200,
  159. buList:[],
  160. dataList:[],
  161. dataList2:[],
  162. dataListLoading: false,
  163. searchData: {
  164. page: 1,
  165. limit: 100,
  166. buNo:'',
  167. packageType:'',
  168. codeNo:'',
  169. username:this.$store.state.user.name,
  170. },
  171. buttons:{
  172. search:'查询',
  173. },
  174. addModelFlag:false,
  175. addModel:{
  176. addFlag:0,
  177. packageNo:'',
  178. site:'',
  179. buNo:'',
  180. packageType:'',
  181. length:'',
  182. width:'',
  183. height:'',
  184. volume:'',
  185. remark:'',
  186. },
  187. addDisabledFlag:true,
  188. activeName:'attribute',
  189. columnList1: [
  190. {
  191. userId: this.$store.state.user.name,
  192. functionId: 801008,
  193. serialNumber: '801008Table1BuDesc',
  194. tableId: "801008Table1",
  195. tableName: "package基础信息",
  196. columnProp: "buDesc",
  197. headerAlign: "center",
  198. align: "center",
  199. columnLabel: "BU",
  200. columnHidden: false,
  201. columnImage: false,
  202. columnSortable: false,
  203. sortLv: 0,
  204. status: true,
  205. fixed: '',
  206. columnWidth: 80
  207. },
  208. {
  209. userId: this.$store.state.user.name,
  210. functionId: 801003,
  211. serialNumber: '801008Table1PackageNo',
  212. tableId: "801008Table1",
  213. tableName: "package基础信息",
  214. columnProp: "packageNo",
  215. headerAlign: "center",
  216. align: "center",
  217. columnLabel: "包装箱编码",
  218. columnHidden: false,
  219. columnImage: false,
  220. columnSortable: false,
  221. sortLv: 0,
  222. columnWidth: 160
  223. },
  224. {
  225. userId: this.$store.state.user.name,
  226. functionId: 801003,
  227. serialNumber: '801008Table1packageType',
  228. tableId: "801008Table1",
  229. tableName: "package基础信息",
  230. columnProp: "packageType",
  231. headerAlign: "center",
  232. align: "center",
  233. columnLabel: "箱类型",
  234. columnHidden: false,
  235. columnImage: false,
  236. columnSortable: false,
  237. sortLv: 0,
  238. status: true,
  239. fixed: '',
  240. columnWidth: 100
  241. },
  242. {
  243. userId: this.$store.state.user.name,
  244. functionId: 801003,
  245. serialNumber: '801008Table1Length',
  246. tableId: "801008Table1",
  247. tableName: "package基础信息",
  248. columnProp: "length",
  249. headerAlign: "center",
  250. align: "center",
  251. columnLabel: "长(M)",
  252. columnHidden: false,
  253. columnImage: false,
  254. columnSortable: false,
  255. sortLv: 0,
  256. status: true,
  257. fixed: '',
  258. columnWidth: 100
  259. },
  260. {
  261. userId: this.$store.state.user.name,
  262. functionId: 801003,
  263. serialNumber: '801008Table1Width',
  264. tableId: "801008Table1",
  265. tableName: "package基础信息",
  266. columnProp: "width",
  267. headerAlign: "center",
  268. align: "center",
  269. columnLabel: "宽(M)",
  270. columnHidden: false,
  271. columnImage: false,
  272. columnSortable: false,
  273. sortLv: 0,
  274. status: true,
  275. fixed: '',
  276. columnWidth: 100
  277. },
  278. {
  279. userId: this.$store.state.user.name,
  280. functionId: 801003,
  281. serialNumber: '801008Table1Height',
  282. tableId: "801008Table1",
  283. tableName: "package基础信息",
  284. columnProp: "height",
  285. headerAlign: "center",
  286. align: "center",
  287. columnLabel: "高(M)",
  288. columnHidden: false,
  289. columnImage: false,
  290. columnSortable: false,
  291. sortLv: 0,
  292. status: true,
  293. fixed: '',
  294. columnWidth: 100
  295. },
  296. {
  297. userId: this.$store.state.user.name,
  298. functionId: 801003,
  299. serialNumber: '801008Table1Height',
  300. tableId: "801008Table1",
  301. tableName: "package基础信息",
  302. columnProp: "volume",
  303. headerAlign: "center",
  304. align: "center",
  305. columnLabel: "体积",
  306. columnHidden: false,
  307. columnImage: false,
  308. columnSortable: false,
  309. sortLv: 0,
  310. status: true,
  311. fixed: '',
  312. columnWidth: 100
  313. },
  314. /* {
  315. userId: this.$store.state.user.name,
  316. functionId: 801003,
  317. serialNumber: '801008Table1Height',
  318. tableId: "801008Table1",
  319. tableName: "package基础信息",
  320. columnProp: "weight",
  321. headerAlign: "center",
  322. align: "center",
  323. columnLabel: "重量",
  324. columnHidden: false,
  325. columnImage: false,
  326. columnSortable: false,
  327. sortLv: 0,
  328. status: true,
  329. fixed: '',
  330. columnWidth: 100
  331. }, */
  332. {
  333. userId: this.$store.state.user.name,
  334. functionId: 801003,
  335. serialNumber: '801008Table1CreateBy',
  336. tableId: "801008Table1",
  337. tableName: "package基础信息",
  338. columnProp: "createBy",
  339. headerAlign: "center",
  340. align: "center",
  341. columnLabel: "创建人",
  342. columnHidden: false,
  343. columnImage: false,
  344. columnSortable: false,
  345. sortLv: 0,
  346. status: true,
  347. fixed: '',
  348. columnWidth: 100
  349. },
  350. {
  351. userId: this.$store.state.user.name,
  352. functionId: 801003,
  353. serialNumber: '801008Table1CreateDate',
  354. tableId: "801008Table1",
  355. tableName: "package基础信息",
  356. columnProp: "createDate",
  357. headerAlign: "center",
  358. align: "center",
  359. columnLabel: "创建日期",
  360. columnHidden: false,
  361. columnImage: false,
  362. columnSortable: false,
  363. sortLv: 0,
  364. status: true,
  365. fixed: '',
  366. columnWidth: 140
  367. },
  368. {
  369. userId: this.$store.state.user.name,
  370. functionId: 801003,
  371. serialNumber: '801008Table1UpdateBy',
  372. tableId: "801008Table1",
  373. tableName: "package基础信息",
  374. columnProp: "updateBy",
  375. headerAlign: "center",
  376. align: "left",
  377. columnLabel: "修改人",
  378. columnHidden: false,
  379. columnImage: false,
  380. columnSortable: false,
  381. sortLv: 0,
  382. status: true,
  383. fixed: '',
  384. columnWidth: 100
  385. },
  386. {
  387. userId: this.$store.state.user.name,
  388. functionId: 801003,
  389. serialNumber: '801008Table1UpdateDate',
  390. tableId: "801008Table1",
  391. tableName: "package基础信息",
  392. columnProp: "updateDate",
  393. headerAlign: "center",
  394. align: "center",
  395. columnLabel: "修改日期",
  396. columnHidden: false,
  397. columnImage: false,
  398. columnSortable: false,
  399. sortLv: 0,
  400. status: true,
  401. fixed: '',
  402. columnWidth: 100
  403. },
  404. {
  405. userId: this.$store.state.user.name,
  406. functionId: 801003,
  407. serialNumber: '801008Table1Remark',
  408. tableId: "801008Table1",
  409. tableName: "package基础信息",
  410. columnProp: "remark",
  411. headerAlign: "center",
  412. align: "left",
  413. columnLabel: "备注",
  414. columnHidden: false,
  415. columnImage: false,
  416. columnSortable: false,
  417. sortLv: 0,
  418. status: true,
  419. fixed: '',
  420. columnWidth: 300
  421. },
  422. ],
  423. currentRow:{},
  424. }
  425. },
  426. mounted() {
  427. this.$nextTick(() => {
  428. this.height = (window.innerHeight - 200);
  429. })
  430. },
  431. methods: {
  432. // 获取基础数据列表S
  433. getBaseList(val, type) {
  434. this.tagNo = val
  435. this.$nextTick(() => {
  436. let strVal = ''
  437. if (val === 33) {
  438. strVal = this.addModel.codeNo
  439. }
  440. this.$refs.baseList.init(val, strVal)
  441. })
  442. },
  443. /* 列表方法的回调 */
  444. getBaseData(val) {
  445. if (this.tagNo === 33) {
  446. this.addModel.codeNo = val.Code_No
  447. }
  448. },
  449. // 每页数
  450. sizeChangeHandle (val) {
  451. this.pageSize = val
  452. this.pageIndex = 1
  453. this.searchTable()
  454. },
  455. // 当前页
  456. currentChangeHandle (val) {
  457. this.pageIndex = val
  458. this.searchTable()
  459. },
  460. searchTable(){
  461. this.searchData.limit = this.pageSize
  462. this.searchData.page = this.pageIndex
  463. searchPackageData(this.searchData).then(({data}) => {
  464. //区分请求成功和失败的状况
  465. if (data && data.code == 0) {
  466. this.dataList = data.page.list
  467. this.pageIndex = data.page.currPage
  468. this.pageSize = data.page.pageSize
  469. this.totalPage = data.page.totalCount
  470. if(this.dataList.length>0){
  471. this.$refs.mainTable.setCurrentRow(this.dataList[0]);
  472. this.changeData(this.dataList[0])
  473. }else {
  474. this.changeData(null)
  475. }
  476. } else {
  477. this.dataList = [];
  478. }
  479. });
  480. },
  481. changeData(row){
  482. this.currentRow = JSON.parse(JSON.stringify(row));
  483. this.headerData=row;
  484. this.refreshCurrentTabTable ();
  485. },
  486. refreshCurrentTabTable(){
  487. if(this.currentRow===''||this.currentRow===null){
  488. this.currentRow={site:'',hsCode:'',buNo:'',recordType:'',codeNo:''}
  489. }
  490. if(this.activeName==='detail'){
  491. // searchEcssCoDelNotifyDetail(this.currentRow).then(({data}) => {
  492. // //区分请求成功和失败的状况
  493. // if (data && data.code == 0) {
  494. // this.dataList2 = data.rows
  495. //
  496. // } else {
  497. // this.dataList2 = [];
  498. // }
  499. // });
  500. }
  501. },
  502. tabClick (tab, event) {
  503. // 刷新列表数据
  504. this.refreshCurrentTabTable()
  505. },
  506. getBu () {
  507. let tempData = {
  508. username: this.$store.state.user.name,
  509. }
  510. getBuList(tempData).then(({data}) => {
  511. if (data.code === 0) {
  512. this.buList = data.row2
  513. }
  514. })
  515. },
  516. addModelOpen(){
  517. this.addDisabledFlag=true
  518. this.addModel={
  519. addFlag:0,
  520. packageNo:'',
  521. site:'',
  522. buNo:'',
  523. packageType:'',
  524. length:'',
  525. width:'',
  526. height:'',
  527. weight:'',
  528. remark:'',
  529. }
  530. this.addModelFlag=true
  531. },
  532. updateModelOpen(row){
  533. this.addDisabledFlag=false
  534. this.addModel={
  535. id:row.id,
  536. addFlag:1,
  537. packageNo:row.packageNo,
  538. site:row.site,
  539. buNo:row.buNo,
  540. packageType:row.packageType,
  541. length:row.length,
  542. width:row.width,
  543. height:row.height,
  544. weight:row.weight,
  545. remark:row.remark,
  546. }
  547. this.addModelFlag=true
  548. },
  549. deletePackage(row){
  550. this.$confirm('确认删除?', '提示').then(() => {
  551. deletePackage(row).then(({data}) => {
  552. if (data && data.code === 0) {
  553. this.searchTable()
  554. this.$message({
  555. message: '操作成功',
  556. type: 'success',
  557. duration: 1500,
  558. onClose: () => {}
  559. })
  560. } else {
  561. this.$alert(data.msg, '错误', {
  562. confirmButtonText: '确定'
  563. })
  564. }
  565. })
  566. })
  567. },
  568. savePackage(){
  569. if(this.addModel.buNo==null||this.addModel.buNo===''){
  570. this.$alert('请选择BU!', '错误', {
  571. confirmButtonText: '确定'
  572. })
  573. return false
  574. }
  575. if(this.addModel.packageNo==null||this.addModel.packageNo===''){
  576. this.$alert('请输入编码!', '错误', {
  577. confirmButtonText: '确定'
  578. })
  579. return false
  580. }
  581. if(this.addModel.packageType==null||this.addModel.packageType===''){
  582. this.$alert('请输入包材类型!', '错误', {
  583. confirmButtonText: '确定'
  584. })
  585. return false
  586. }
  587. if(this.addModel.length==null||this.addModel.length===''){
  588. this.$alert('请输入长度!', '错误', {
  589. confirmButtonText: '确定'
  590. })
  591. return false
  592. }
  593. if(this.addModel.width==null||this.addModel.width===''){
  594. this.$alert('请输入宽度!', '错误', {
  595. confirmButtonText: '确定'
  596. })
  597. return false
  598. }
  599. if(this.addModel.height==null||this.addModel.height===''){
  600. this.$alert('请输入高度!', '错误', {
  601. confirmButtonText: '确定'
  602. })
  603. return false
  604. }
  605. savePackageData(this.addModel).then(({data}) => {
  606. if (data && data.code === 0) {
  607. this.searchTable()
  608. this.addModelFlag = false
  609. this.$message({
  610. message: '操作成功',
  611. type: 'success',
  612. duration: 1500,
  613. onClose: () => {}
  614. })
  615. } else {
  616. this.$alert(data.msg, '错误', {
  617. confirmButtonText: '确定'
  618. })
  619. }
  620. })
  621. },
  622. },
  623. activated() {
  624. this.searchTable()
  625. },
  626. created() {
  627. this.getBu ()
  628. }
  629. }
  630. </script>
  631. <style scoped>
  632. </style>