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.

1009 lines
32 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. <template>
  2. <div class="mod-config">
  3. <el-form :inline="true" label-position="top" :model="searchData">
  4. <el-form-item :label="'BU'">
  5. <el-select v-model="searchData.buNo" placeholder="请选择" clearable style="width: 130px">
  6. <el-option
  7. v-for = "i in buList"
  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="'ERP物料编码'">
  15. <el-input v-model="searchData.partNo" clearable style="width: 120px"></el-input>
  16. </el-form-item>
  17. <el-form-item :label="'SKU'">
  18. <el-input v-model="searchData.sku" clearable style="width: 120px"></el-input>
  19. </el-form-item>
  20. <el-form-item :label="'物料描述'">
  21. <el-input v-model="searchData.partDesc" clearable style="width: 210px"></el-input>
  22. </el-form-item>
  23. <el-form-item :label="'录入时间'">
  24. <el-date-picker
  25. style="width: 120px"
  26. v-model="searchData.startDate"
  27. type="date"
  28. value-format="yyyy-MM-dd"
  29. placeholder="选择日期">
  30. </el-date-picker>
  31. </el-form-item>
  32. <el-form-item style="margin-top: 23px;">
  33. <label style="margin-left: 0px;font-size: 19px">&#10142</label>
  34. </el-form-item>
  35. <el-form-item :label="'To '">
  36. <el-date-picker
  37. style="width: 120px"
  38. v-model="searchData.endDate"
  39. type="date"
  40. value-format="yyyy-MM-dd"
  41. placeholder="选择日期">
  42. </el-date-picker>
  43. </el-form-item>
  44. <el-form-item :label="' '">
  45. <el-button @click="searchTable">查询</el-button>
  46. <!-- <el-button type="primary" @click="delModal()">删除</el-button>-->
  47. <el-button type="primary" @click="openImportDialog">导入</el-button>
  48. <download-excel
  49. :fields="fields()"
  50. :data="exportData"
  51. type="xls"
  52. :name="exportName"
  53. :header="exportHeader"
  54. :footer="exportFooter"
  55. :fetch="createExportData"
  56. :before-generate="startDownload"
  57. :before-finish="finishDownload"
  58. worksheet="导出信息"
  59. class="el-button el-button--primary el-button--medium">
  60. {{ "导出" }}
  61. </download-excel>
  62. </el-form-item>
  63. </el-form>
  64. <el-table
  65. @row-click="changeData"
  66. highlight-current-row
  67. :height="height"
  68. :data="dataList"
  69. ref="mainTable"
  70. border
  71. v-loading="dataListLoading"
  72. style="width: 100%;">
  73. <el-table-column
  74. header-align="center"
  75. align="center"
  76. width="80"
  77. label="操作">
  78. <template slot-scope="scope">
  79. <a type="text" size="small" @click="hsCodeModel(scope.row)">维护</a>
  80. </template>
  81. </el-table-column>
  82. <el-table-column
  83. v-for="(item,index) in columnList" :key="index"
  84. :sortable="item.columnSortable"
  85. :prop="item.columnProp"
  86. :header-align="item.headerAlign"
  87. :show-overflow-tooltip="item.showOverflowTooltip"
  88. :align="item.align"
  89. :fixed="item.fixed==''?false:item.fixed"
  90. :min-width="item.columnWidth"
  91. :label="item.columnLabel">
  92. <template slot-scope="scope">
  93. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  94. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  95. style="width: 100px; height: 80px"/></span>
  96. </template>
  97. </el-table-column>
  98. </el-table>
  99. <el-pagination
  100. @size-change="sizeChangeHandle"
  101. @current-change="currentChangeHandle"
  102. :current-page="pageIndex"
  103. :page-sizes="[20, 50, 100, 1000]"
  104. :page-size="pageSize"
  105. :total="totalPage"
  106. layout="total, sizes, prev, pager, next, jumper">
  107. </el-pagination>
  108. <el-tabs style="font-size: 12px;min-height: 200px" class="customer-tab" v-model="activeName" type="border-card" @tab-click="tabClick" >
  109. <el-tab-pane label="基本信息" name="attribute">
  110. <order-attribute ref="dialogAttribute" :site="currentRow.site" :buNo="currentRow.buNo" :order-no="currentRow.partNo" :code-no="'BG001'" :brand="currentRow.brand" :function-type="'ECSSPART'"></order-attribute>
  111. </el-tab-pane>
  112. </el-tabs>
  113. <el-dialog title="维护HS Code" :close-on-click-modal="false" v-drag :visible.sync="hsCodeModelFlag" width="500px">
  114. <el-form label-position="top" style="margin-left: 7px;margin-top: -5px;">
  115. <el-row :gutter="20">
  116. <el-col :span="12">
  117. <el-form-item :label="'物料编码:'">
  118. <el-input v-model="hsCodeModelData.partNo" disabled ></el-input>
  119. </el-form-item>
  120. </el-col>
  121. <el-col :span="12">
  122. <el-form-item :label="'物料名称'" >
  123. <el-input v-model="hsCodeModelData.partDesc" disabled ></el-input>
  124. </el-form-item>
  125. </el-col>
  126. <el-col :span="12">
  127. <el-form-item >
  128. <template #label>
  129. <span slot="label" style="" class="big-label">
  130. <a href="#" @click="hsCodeFlag=true">品名</a>
  131. </span>
  132. </template>
  133. <el-input v-model="hsCodeModelData.hsCodeDesc" disabled ></el-input>
  134. </el-form-item>
  135. </el-col>
  136. <el-col :span="12">
  137. <el-form-item :label="'HS Code'" >
  138. <el-input v-model="hsCodeModelData.hsCode" disabled ></el-input>
  139. </el-form-item>
  140. </el-col>
  141. <!-- <el-col :span="12">
  142. <el-form-item >
  143. <template #label>
  144. <span slot="label" style="" class="big-label">
  145. <a href="#" @click="palletFlag=true">栈板</a>
  146. </span>
  147. </template>
  148. <el-input v-model="hsCodeModelData.palletType" disabled ></el-input>
  149. </el-form-item>
  150. </el-col>-->
  151. <el-col :span="12">
  152. <el-form-item>
  153. <template #label>
  154. <span slot="label" style="" class="big-label">
  155. <a href="#" @click="packageFlag=true">包装箱</a>
  156. </span>
  157. </template>
  158. <el-input v-model="hsCodeModelData.packageNo" disabled ></el-input>
  159. </el-form-item>
  160. </el-col>
  161. <el-col :span="6">
  162. <el-form-item :label="'长(M)'">
  163. <el-input v-model="hsCodeModelData.length" disabled ></el-input>
  164. </el-form-item>
  165. </el-col>
  166. <el-col :span="6">
  167. <el-form-item :label="'宽(M)'">
  168. <el-input v-model="hsCodeModelData.width" disabled ></el-input>
  169. </el-form-item>
  170. </el-col>
  171. <el-col :span="6">
  172. <el-form-item :label="'高(M)'">
  173. <el-input v-model="hsCodeModelData.height" disabled ></el-input>
  174. </el-form-item>
  175. </el-col>
  176. <el-col :span="6">
  177. <el-form-item :label="'体积(M³)'">
  178. <el-input v-model="packageVolume" disabled ></el-input>
  179. </el-form-item>
  180. </el-col>
  181. </el-row>
  182. </el-form>
  183. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  184. <el-button type="primary" @click="saveHSCode()">保存</el-button>
  185. <el-button type="primary" @click="hsCodeModelFlag=false">关闭</el-button>
  186. </el-footer>
  187. </el-dialog>
  188. <el-dialog title="品名" @close="closeHsCodeDialog" @open="openHsCodeDialog" :visible.sync="hsCodeFlag" width="559px" v-drag>
  189. <el-form inline="inline" label-position="top" :model="hsCodeData" style="margin-left: 7px;margin-top: -5px;">
  190. <el-form-item label="品名">
  191. <el-input v-model="hsCodeData.hsCode" clearable style="width: 110px"></el-input>
  192. </el-form-item>
  193. <el-form-item label=" ">
  194. <el-button type="primary" style="padding: 3px 12px" @click="searchHsCodeList()">查询</el-button>
  195. </el-form-item>
  196. </el-form>
  197. <el-table
  198. :height="height + 110"
  199. :data="hsCodeList"
  200. stripe
  201. highlight-current-row
  202. border
  203. @row-dblclick="hsCodeRowDblclick"
  204. style="width: 100%;">
  205. <el-table-column
  206. prop="BuNo"
  207. header-align="center"
  208. align="center"
  209. label="Bu">
  210. </el-table-column>
  211. <el-table-column
  212. prop="hsCodeDesc"
  213. header-align="center"
  214. align="center"
  215. label="品名">
  216. </el-table-column>
  217. <el-table-column
  218. prop="HsCode"
  219. header-align="center"
  220. align="center"
  221. label="HS Code">
  222. </el-table-column>
  223. </el-table>
  224. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  225. <el-button @click="hsCodeFlag = false">关闭</el-button>
  226. </el-footer>
  227. </el-dialog>
  228. <el-dialog title="栈板" @close="closePalletDialog" @open="openPalletDialog" :visible.sync="palletFlag" width="559px" v-drag>
  229. <el-form inline="inline" label-position="top" :model="palletData" style="margin-left: 7px;margin-top: -5px;">
  230. <el-form-item label="栈板类型">
  231. <el-input v-model="palletData.palletType" clearable style="width: 110px"></el-input>
  232. </el-form-item>
  233. <el-form-item label=" ">
  234. <el-button type="primary" style="padding: 3px 12px" @click="searchPalletList()">查询</el-button>
  235. </el-form-item>
  236. </el-form>
  237. <el-table
  238. :height="height + 110"
  239. :data="palletList"
  240. stripe
  241. highlight-current-row
  242. border
  243. @row-dblclick="palletRowDblclick"
  244. style="width: 100%;">
  245. <el-table-column
  246. prop="BuNo"
  247. header-align="center"
  248. align="center"
  249. label="BuNo">
  250. </el-table-column>
  251. <el-table-column
  252. prop="palletType"
  253. header-align="center"
  254. align="center"
  255. label="栈板类型">
  256. </el-table-column>
  257. </el-table>
  258. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  259. <el-button @click="palletFlag = false">关闭</el-button>
  260. </el-footer>
  261. </el-dialog>
  262. <el-dialog title="包装箱" @close="closePackageDialog" @open="openPackageDialog" :visible.sync="packageFlag" width="559px" v-drag>
  263. <el-form inline="inline" label-position="top" :model="packageData" style="margin-left: 7px;margin-top: -5px;">
  264. <el-form-item label="包装箱类型">
  265. <el-input v-model="packageData.packageType" clearable style="width: 110px"></el-input>
  266. </el-form-item>
  267. <el-form-item label=" ">
  268. <el-button type="primary" style="padding: 3px 12px" @click="searchPackageList()">查询</el-button>
  269. </el-form-item>
  270. </el-form>
  271. <el-table
  272. :height="height + 110"
  273. :data="packageList"
  274. stripe
  275. highlight-current-row
  276. border
  277. @row-dblclick="packageRowDblclick"
  278. style="width: 100%;">
  279. <el-table-column
  280. prop="BuNo"
  281. header-align="center"
  282. align="center"
  283. label="BuNo">
  284. </el-table-column>
  285. <el-table-column
  286. prop="packageType"
  287. header-align="center"
  288. align="center"
  289. label="包装箱类型">
  290. </el-table-column>
  291. <el-table-column
  292. prop="packageNo"
  293. header-align="center"
  294. align="center"
  295. width="140"
  296. label="包装箱编码">
  297. </el-table-column>
  298. <el-table-column
  299. prop="length"
  300. header-align="center"
  301. align="center"
  302. label="长(M)">
  303. </el-table-column>
  304. <el-table-column
  305. prop="width"
  306. header-align="center"
  307. align="center"
  308. label="宽(M)">
  309. </el-table-column>
  310. <el-table-column
  311. prop="height"
  312. header-align="center"
  313. align="center"
  314. label="高(M)">
  315. </el-table-column>
  316. </el-table>
  317. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  318. <el-button @click="packageFlag = false">关闭</el-button>
  319. </el-footer>
  320. </el-dialog>
  321. <!-- 导入弹窗 -->
  322. <part-hs-code-import ref="partHsCodeImport" @refreshTable="searchTable"></part-hs-code-import>
  323. </div>
  324. </template>
  325. <script>
  326. import {
  327. partInformationHsCode,savePartHSCode,
  328. searchHsCodeList,searchPalletList,searchPackageList
  329. }from "@/api/ecss/ecss.js"
  330. import {} from "@/api/sysLanguage.js"
  331. import {getBuList}from '@/api/factory/site.js'
  332. import orderAttribute from "./orderProperties"
  333. import partHsCodeImport from "./partHsCodeImport"
  334. export default {
  335. name: "null",
  336. components:{
  337. orderAttribute,
  338. partHsCodeImport,
  339. },
  340. data() {
  341. return {
  342. activeName:'attribute',
  343. hsCodeFlag:false,
  344. palletFlag:false,
  345. packageFlag:false,
  346. hsCodeData:{},
  347. palletData:{},
  348. packageData:{},
  349. hsCodeList:[],
  350. palletList:[],
  351. packageList:[],
  352. buList:[],
  353. // 导出
  354. exportData: [],
  355. exportName: '物料HsCode' + this.dayjs().format('YYYYMMDDHHmmss'),
  356. exportHeader: ['物料HsCode'],
  357. exportFooter: [],
  358. pageIndex: 1,
  359. pageSize: 100,
  360. totalPage: 0,
  361. height: 200,
  362. dataList:[],
  363. dataListLoading: false,
  364. searchData: {
  365. site: '',
  366. userName: this.$store.state.user.name,
  367. buNo: '',
  368. partNo: '',
  369. startDate: '',
  370. endDate: '',
  371. partDesc: '',
  372. page: 1,
  373. limit: 10
  374. },
  375. buttons:{
  376. search:'查询',
  377. },
  378. columnList: [
  379. {
  380. userId: this.$store.state.user.name,
  381. functionId: 801005,
  382. serialNumber: '801005Table1Bu',
  383. tableId: '801005Table1',
  384. tableName: '物料信息表',
  385. columnProp: 'buDesc',
  386. headerAlign: 'center',
  387. align: 'center',
  388. columnLabel: 'BU',
  389. columnHidden: false,
  390. columnImage: false,
  391. columnSortable: false,
  392. sortLv: 0,
  393. status: true,
  394. fixed: '',
  395. columnWidth: 80
  396. },
  397. {
  398. userId: this.$store.state.user.name,
  399. functionId: 801005,
  400. serialNumber: '801005Table1PartNo',
  401. tableId: '801005Table1',
  402. tableName: '物料信息表',
  403. columnProp: 'partNo',
  404. headerAlign: 'center',
  405. align: 'left',
  406. columnLabel: 'ERP物料编码',
  407. columnHidden: false,
  408. columnImage: false,
  409. columnSortable: false,
  410. sortLv: 0,
  411. status: true,
  412. fixed: '',
  413. columnWidth: 120
  414. },
  415. {
  416. userId: this.$store.state.user.name,
  417. functionId: 801005,
  418. serialNumber: '801005Table1PartNo',
  419. tableId: '801005Table1',
  420. tableName: '物料信息表',
  421. columnProp: 'sku',
  422. headerAlign: 'center',
  423. align: 'left',
  424. columnLabel: 'SKU',
  425. columnHidden: false,
  426. columnImage: false,
  427. columnSortable: false,
  428. sortLv: 0,
  429. status: true,
  430. fixed: '',
  431. columnWidth: 120
  432. },
  433. {
  434. userId: this.$store.state.user.name,
  435. functionId: 801005,
  436. serialNumber: '801005Table1PartDesc',
  437. tableId: '801005Table1',
  438. tableName: '物料信息表',
  439. columnProp: 'partDesc',
  440. headerAlign: 'center',
  441. align: 'left',
  442. columnLabel: '物料描述',
  443. columnHidden: false,
  444. columnImage: false,
  445. columnSortable: false,
  446. sortLv: 0,
  447. status: true,
  448. fixed: '',
  449. columnWidth: 300
  450. },
  451. {
  452. userId: this.$store.state.user.name,
  453. functionId: 801005,
  454. serialNumber: '801005Table1HsCode',
  455. tableId: '801005Table1',
  456. tableName: '物料信息表',
  457. columnProp: 'hsCode',
  458. headerAlign: 'center',
  459. align: 'left',
  460. columnLabel: 'HS Code',
  461. columnHidden: false,
  462. columnImage: false,
  463. columnSortable: false,
  464. sortLv: 0,
  465. status: true,
  466. fixed: '',
  467. columnWidth: 80
  468. },
  469. {
  470. userId: this.$store.state.user.name,
  471. functionId: 801005,
  472. serialNumber: '801005Table1HsCodeDesc',
  473. tableId: '801005Table1',
  474. tableName: '物料信息表',
  475. columnProp: 'hsCodeDesc',
  476. headerAlign: 'center',
  477. align: 'left',
  478. columnLabel: '品名',
  479. columnHidden: false,
  480. columnImage: false,
  481. columnSortable: false,
  482. sortLv: 0,
  483. status: true,
  484. fixed: '',
  485. columnWidth: 200
  486. },
  487. {
  488. userId: this.$store.state.user.name,
  489. functionId: 801005,
  490. serialNumber: '801005Table1PartDesceEn',
  491. tableId: '801005Table1',
  492. tableName: '物料信息表',
  493. columnProp: 'partDesceEn',
  494. headerAlign: 'center',
  495. align: 'left',
  496. columnLabel: '物料描述(英文)',
  497. columnHidden: false,
  498. columnImage: false,
  499. columnSortable: false,
  500. sortLv: 0,
  501. status: true,
  502. fixed: '',
  503. columnWidth: 300
  504. },
  505. {
  506. userId: this.$store.state.user.name,
  507. functionId: 801005,
  508. serialNumber: '801005Table1Spec',
  509. tableId: '801005Table1',
  510. tableName: '物料信息表',
  511. columnProp: 'spec',
  512. headerAlign: 'center',
  513. align: 'left',
  514. columnLabel: '规格',
  515. columnHidden: false,
  516. columnImage: false,
  517. columnSortable: false,
  518. sortLv: 0,
  519. status: true,
  520. fixed: '',
  521. columnWidth: 300
  522. },
  523. {
  524. userId: this.$store.state.user.name,
  525. functionId: 801005,
  526. serialNumber: '801005Table1ActiveDesc',
  527. tableId: '801005Table1',
  528. tableName: '物料信息表',
  529. columnProp: 'activeDesc',
  530. headerAlign: 'center',
  531. align: 'center',
  532. columnLabel: '是否在用',
  533. columnHidden: false,
  534. columnImage: false,
  535. columnSortable: false,
  536. sortLv: 0,
  537. status: true,
  538. fixed: '',
  539. columnWidth: 80
  540. },
  541. {
  542. userId: this.$store.state.user.name,
  543. functionId: 801005,
  544. serialNumber: '801005Table1PartType2Desc',
  545. tableId: '801005Table1',
  546. tableName: '物料信息表',
  547. columnProp: 'partType2Desc',
  548. headerAlign: 'center',
  549. align: 'left',
  550. columnLabel: '零件类型',
  551. columnHidden: false,
  552. columnImage: false,
  553. columnSortable: false,
  554. sortLv: 0,
  555. status: true,
  556. fixed: '',
  557. columnWidth: 100
  558. },
  559. {
  560. userId: this.$store.state.user.name,
  561. functionId: 801005,
  562. serialNumber: '801005Table1UmId',
  563. tableId: '801005Table1',
  564. tableName: '物料信息表',
  565. columnProp: 'umId2',
  566. headerAlign: 'center',
  567. align: 'left',
  568. columnLabel: '计量单位编码',
  569. columnHidden: false,
  570. columnImage: false,
  571. columnSortable: false,
  572. sortLv: 0,
  573. status: true,
  574. fixed: '',
  575. columnWidth: 100
  576. },
  577. {
  578. userId: this.$store.state.user.name,
  579. functionId: 801005,
  580. serialNumber: '801005Table1UmName',
  581. tableId: '801005Table1',
  582. tableName: '物料信息表',
  583. columnProp: 'umName',
  584. headerAlign: 'center',
  585. align: 'left',
  586. columnLabel: '计量单位名称',
  587. columnHidden: false,
  588. columnImage: false,
  589. columnSortable: false,
  590. sortLv: 0,
  591. status: true,
  592. fixed: '',
  593. columnWidth: 150
  594. },
  595. {
  596. userId: this.$store.state.user.name,
  597. functionId: 801005,
  598. serialNumber: '801005Table1FamilyID',
  599. tableId: '801005Table1',
  600. tableName: '物料信息表',
  601. columnProp: 'familyID',
  602. headerAlign: 'center',
  603. align: 'left',
  604. columnLabel: '物料分类编码',
  605. columnHidden: false,
  606. columnImage: false,
  607. columnSortable: false,
  608. sortLv: 0,
  609. status: true,
  610. fixed: '',
  611. columnWidth: 100
  612. },
  613. {
  614. userId: this.$store.state.user.name,
  615. functionId: 801005,
  616. serialNumber: '801005Table1FamilyName',
  617. tableId: '801005Table1',
  618. tableName: '物料信息表',
  619. columnProp: 'familyName',
  620. headerAlign: 'center',
  621. align: 'left',
  622. columnLabel: '物料分类名称',
  623. columnHidden: false,
  624. columnImage: false,
  625. columnSortable: false,
  626. sortLv: 0,
  627. status: true,
  628. fixed: '',
  629. columnWidth: 150
  630. },
  631. {
  632. userId: this.$store.state.user.name,
  633. functionId: 801005,
  634. serialNumber: '801005Table1OtherGroup1',
  635. tableId: '801005Table1',
  636. tableName: '物料信息表',
  637. columnProp: 'productGroupId1',
  638. headerAlign: 'center',
  639. align: 'left',
  640. columnLabel: '商品组1编码',
  641. columnHidden: false,
  642. columnImage: false,
  643. columnSortable: false,
  644. sortLv: 0,
  645. status: true,
  646. fixed: '',
  647. columnWidth: 100
  648. },
  649. {
  650. userId: this.$store.state.user.name,
  651. functionId: 801005,
  652. serialNumber: '801005Table1OtherGroupName1',
  653. tableId: '801005Table1',
  654. tableName: '物料信息表',
  655. columnProp: 'productGroupName1',
  656. headerAlign: 'center',
  657. align: 'left',
  658. columnLabel: '商品组1名称',
  659. columnHidden: false,
  660. columnImage: false,
  661. columnSortable: false,
  662. sortLv: 0,
  663. status: true,
  664. fixed: '',
  665. columnWidth: 150
  666. },
  667. {
  668. userId: this.$store.state.user.name,
  669. functionId: 801005,
  670. serialNumber: '801005Table1OtherGroup2',
  671. tableId: '801005Table1',
  672. tableName: '物料信息表',
  673. columnProp: 'productGroupId2',
  674. headerAlign: 'center',
  675. align: 'left',
  676. columnLabel: '商品组2编码',
  677. columnHidden: false,
  678. columnImage: false,
  679. columnSortable: false,
  680. sortLv: 0,
  681. status: true,
  682. fixed: '',
  683. columnWidth: 100
  684. },
  685. {
  686. userId: this.$store.state.user.name,
  687. functionId: 801005,
  688. serialNumber: '801005Table1OtherGroupName2',
  689. tableId: '801005Table1',
  690. tableName: '物料信息表',
  691. columnProp: 'productGroupName2',
  692. headerAlign: 'center',
  693. align: 'left',
  694. columnLabel: '商品组2名称',
  695. columnHidden: false,
  696. columnImage: false,
  697. columnSortable: false,
  698. sortLv: 0,
  699. status: true,
  700. fixed: '',
  701. columnWidth: 150
  702. },
  703. {
  704. userId: this.$store.state.user.name,
  705. functionId: 801005,
  706. serialNumber: '801005Table1OtherGroup3',
  707. tableId: '801005Table1',
  708. tableName: '物料信息表',
  709. columnProp: 'productGroupId3',
  710. headerAlign: 'center',
  711. align: 'left',
  712. columnLabel: '商品组3编码',
  713. columnHidden: false,
  714. columnImage: false,
  715. columnSortable: false,
  716. sortLv: 0,
  717. status: true,
  718. fixed: '',
  719. columnWidth: 100
  720. },
  721. {
  722. userId: this.$store.state.user.name,
  723. functionId: 801005,
  724. serialNumber: '801005Table1OtherGroupName3',
  725. tableId: '801005Table1',
  726. tableName: '物料信息表',
  727. columnProp: 'productGroupName3',
  728. headerAlign: 'center',
  729. align: 'left',
  730. columnLabel: '商品组3名称',
  731. columnHidden: false,
  732. columnImage: false,
  733. columnSortable: false,
  734. sortLv: 0,
  735. status: true,
  736. fixed: '',
  737. columnWidth: 150
  738. },
  739. ],
  740. hsCodeModelFlag:false,
  741. hsCodeModelData:{
  742. site: '',
  743. buNo: '',
  744. buDesc: '',
  745. partNo: '',
  746. partDesc: '',
  747. hsCode:'',
  748. hsCodeDesc:'',
  749. packageNo:'',
  750. length: '',
  751. width: '',
  752. height: ''
  753. },
  754. currentRow:{
  755. site:'',
  756. partNo:'',
  757. buNo:'',
  758. recordType:'',
  759. hsCodeNo:''
  760. }
  761. }
  762. },
  763. computed: {
  764. /**
  765. * 计算包装箱体积 ( * * )
  766. */
  767. packageVolume() {
  768. const length = parseFloat(this.hsCodeModelData.length) || 0
  769. const width = parseFloat(this.hsCodeModelData.width) || 0
  770. const height = parseFloat(this.hsCodeModelData.height) || 0
  771. if (length > 0 && width > 0 && height > 0) {
  772. return (length * width * height).toFixed(6)
  773. }
  774. return ''
  775. }
  776. },
  777. mounted() {
  778. this.$nextTick(() => {
  779. this.height = (window.innerHeight - 240)/2;
  780. })
  781. },
  782. methods: {
  783. openHsCodeDialog () {
  784. //请求
  785. this.searchHsCodeList();
  786. },
  787. closeHsCodeDialog () {
  788. this.hsCodeList = []
  789. this.hsCodeFlag = false
  790. },
  791. searchHsCodeList () {
  792. this.hsCodeData.buNo = this.hsCodeModelData.buNo
  793. searchHsCodeList(this.hsCodeData).then(({data}) => {
  794. if (data && data.code === 0){
  795. this.hsCodeList = data.rows;
  796. }
  797. })
  798. },
  799. hsCodeRowDblclick (row) {
  800. this.hsCodeModelData.hsCodeDesc = row.hsCodeDesc
  801. this.hsCodeModelData.hsCode = row.HsCode
  802. this.hsCodeFlag = false
  803. },
  804. openPalletDialog () {
  805. //请求
  806. this.searchPalletList();
  807. },
  808. closePalletDialog () {
  809. this.palletList = []
  810. this.palletFlag = false
  811. },
  812. searchPalletList () {
  813. this.palletData.buNo = this.hsCodeModelData.buNo
  814. searchPalletList(this.palletData).then(({data}) => {
  815. if (data && data.code === 0){
  816. this.palletList = data.rows;
  817. }
  818. })
  819. },
  820. palletRowDblclick (row) {
  821. this.hsCodeModelData.palletId = row.palletId
  822. this.hsCodeModelData.palletType = row.palletType
  823. this.palletFlag = false
  824. },
  825. openPackageDialog () {
  826. //请求
  827. this.searchPackageList();
  828. },
  829. closePackageDialog () {
  830. this.packageList = []
  831. this.packageFlag = false
  832. },
  833. searchPackageList () {
  834. this.packageData.buNo = this.hsCodeModelData.buNo
  835. searchPackageList(this.packageData).then(({data}) => {
  836. if (data && data.code === 0){
  837. this.packageList = data.rows;
  838. }
  839. })
  840. },
  841. packageRowDblclick (row) {
  842. this.hsCodeModelData.packageNo = row.packageNo
  843. this.packageFlag = false
  844. },
  845. // 每页数
  846. sizeChangeHandle (val) {
  847. this.pageSize = val
  848. this.pageIndex = 1
  849. this.searchTable()
  850. },
  851. // 当前页
  852. currentChangeHandle (val) {
  853. this.pageIndex = val
  854. this.searchTable()
  855. },
  856. tabClick (tab, event) {
  857. // 刷新列表数据
  858. this.refreshCurrentTabTable()
  859. },
  860. searchTable(){
  861. this.searchData.limit = this.pageSize
  862. this.searchData.page = this.pageIndex
  863. partInformationHsCode(this.searchData).then(({data}) => {
  864. //区分请求成功和失败的状况
  865. if (data && data.code == 0) {
  866. this.dataList = data.page.list
  867. this.pageIndex = data.page.currPage
  868. this.pageSize = data.page.pageSize
  869. this.totalPage = data.page.totalCount
  870. if(this.dataList.length>0){
  871. this.$refs.mainTable.setCurrentRow(this.dataList[0]);
  872. this.changeData(this.dataList[0])
  873. }else {
  874. this.changeData(null)
  875. }
  876. } else {
  877. this.dataList = [];
  878. }
  879. });
  880. },
  881. refreshCurrentTabTable(){
  882. if(this.currentRow===''||this.currentRow===null){
  883. this.currentRow={site:'',partNo:'',buNo:'',recordType:''}
  884. }
  885. // 刷新基本信息组件
  886. if (this.activeName === 'attribute' && this.$refs.dialogAttribute) {
  887. this.$nextTick(() => {
  888. this.$refs.dialogAttribute.getProperties()
  889. })
  890. }
  891. },
  892. async createExportData () {
  893. this.searchData.limit = -1
  894. this.searchData.page = 1
  895. await partInformationHsCode(this.searchData).then(({data}) => {
  896. this.resultList = data.page.list
  897. })
  898. return this.resultList
  899. },
  900. startDownload () {},
  901. finishDownload () {},
  902. fields () {
  903. let json = '{'
  904. this.columnList.forEach((item, index) => {
  905. if (index == this.columnList.length - 1) {
  906. json += '"' + item.columnLabel + '"' + ':' + '"' + item.columnProp + '"'
  907. } else {
  908. json += '"' + item.columnLabel + '"' + ':' + '"' + item.columnProp + '"' + ','
  909. }
  910. })
  911. json += '}'
  912. let s = eval('(' + json + ')')
  913. return s
  914. },
  915. getBu () {
  916. let tempData = {
  917. username: this.$store.state.user.name,
  918. }
  919. getBuList(tempData).then(({data}) => {
  920. if (data.code === 0) {
  921. this.buList = data.row2
  922. }
  923. })
  924. },
  925. /**
  926. * 打开导入弹窗
  927. */
  928. openImportDialog() {
  929. this.$refs.partHsCodeImport.init()
  930. },
  931. hsCodeModel(row){
  932. this.hsCodeModelData=JSON.parse(JSON.stringify(row))
  933. this.hsCodeModelData.length = row.boxLength/100
  934. this.hsCodeModelData.width = row.boxWidth/100
  935. this.hsCodeModelData.height = row.boxHeight/100
  936. this.hsCodeModelFlag=true
  937. },
  938. changeData(row){
  939. this.currentRow = JSON.parse(JSON.stringify(row));
  940. this.refreshCurrentTabTable ();
  941. },
  942. saveHSCode(){
  943. if(this.hsCodeModelData.hsCode===''||this.hsCodeModelData.hsCode==null){
  944. this.$alert('请输入HS Code!', '错误', {
  945. confirmButtonText: '确定'
  946. })
  947. return false
  948. }
  949. if(this.hsCodeModelData.hsCodeDesc===''||this.hsCodeModelData.hsCodeDesc==null){
  950. this.$alert('请输入品名!', '错误', {
  951. confirmButtonText: '确定'
  952. })
  953. return false
  954. }
  955. savePartHSCode(this.hsCodeModelData).then(({data}) => {
  956. if (data && data.code === 0) {
  957. this.searchTable()
  958. this.hsCodeModelFlag=false
  959. this.$message({
  960. message: '操作成功',
  961. type: 'success',
  962. duration: 1500,
  963. onClose: () => {}
  964. })
  965. } else {
  966. this.$alert(data.msg, '错误', {
  967. confirmButtonText: '确定'
  968. })
  969. }
  970. })
  971. },
  972. },
  973. activated() {
  974. // 检查是否有新的sku参数
  975. if (this.$route.query.sku && this.$route.query.sku !== this.searchData.sku) {
  976. this.searchData.sku = this.$route.query.sku;
  977. }
  978. this.searchTable()
  979. },
  980. created() {
  981. this.getBu();
  982. // 接收来自路由的sku参数
  983. if (this.$route.query.sku) {
  984. this.searchData.sku = this.$route.query.sku;
  985. }
  986. }
  987. }
  988. </script>
  989. <style scoped>
  990. </style>