祥兆质量前端
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.

1023 lines
32 KiB

  1. <template>
  2. <div class="mod-config">
  3. <!-- 收藏 -->
  4. <div>
  5. <span @click="favoriteFunction()">
  6. <icon-svg :name="favorite?'xiangqufill':'xiangqu'" class="sl-svg"></icon-svg>
  7. </span>
  8. </div>
  9. <el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
  10. <el-form-item :label="'采购订单号'">
  11. <el-input v-model="searchData.orderNo" clearable style="width: 120px"></el-input>
  12. </el-form-item>
  13. <el-form-item :label="'生产订单号'">
  14. <el-input v-model="searchData.orderRef1" clearable style="width: 120px"></el-input>
  15. </el-form-item>
  16. <el-form-item :label="'工序号'">
  17. <el-input v-model="searchData.orderRef2" clearable style="width: 120px"></el-input>
  18. </el-form-item>
  19. <el-form-item :label="'工序名称:'">
  20. <el-input v-model="searchData.operationDesc" clearable style="width: 120px"></el-input>
  21. </el-form-item>
  22. <!-- <el-form-item label="外协订单领料状态">-->
  23. <!-- <el-select v-model="searchData.outworkorderPartReqStatus" placeholder="请选择外协订单领料状态">-->
  24. <!-- <el-option label="未发料" value="C"></el-option>-->
  25. <!-- <el-option label="全部发料" value="B"></el-option>-->
  26. <!-- <el-option label="部分发料" value="A"></el-option>-->
  27. <!-- </el-select>-->
  28. <!-- </el-form-item>-->
  29. <el-form-item :label="'要求送货日期'">
  30. <el-date-picker
  31. style="width: 120px"
  32. v-model="searchData.wantedDelStartDate"
  33. type="date"
  34. value-format="yyyy-MM-dd"
  35. placeholder="选择日期">
  36. </el-date-picker>
  37. -
  38. <el-date-picker
  39. style="width: 120px"
  40. v-model="searchData.wantedDelEndDate"
  41. type="date"
  42. value-format="yyyy-MM-dd"
  43. placeholder="选择日期">
  44. </el-date-picker>
  45. </el-form-item>
  46. <el-form-item label="送货地点" prop="site">
  47. <el-select v-model="searchData.delPlace" clearable placeholder="请选择" style="width: 120px">
  48. <el-option label = "常熟" value = "常熟"></el-option>
  49. <el-option label = "响水" value = "响水"></el-option>
  50. <el-option label = "其他" value = "其他"></el-option>
  51. </el-select>
  52. </el-form-item>
  53. </el-form>
  54. <el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
  55. <!-- <el-form-item>-->
  56. <!-- <span style="cursor: pointer" slot="label" @click="getBaseList(3)"><a herf="#">供应商编码</a></span>-->
  57. <!-- <el-input v-model="searchData.supplierId" placeholder="输入或选择供应商编码"></el-input>-->
  58. <!-- </el-form-item>-->
  59. <!-- <el-form-item label="供应商名称">-->
  60. <!-- <el-input v-model="searchData.supplierName"></el-input>-->
  61. <!-- </el-form-item>-->
  62. <el-form-item :label="'状态'">
  63. <el-select v-model="searchData.statusList" multiple style="width: 387px">
  64. <el-option label="未发货" value="未发货"></el-option>
  65. <el-option label="部分发货" value="部分发货"></el-option>
  66. <el-option label="已发货" value="已发货"></el-option>
  67. <el-option label="已关闭" value="已关闭"></el-option>
  68. </el-select>
  69. </el-form-item>
  70. <el-form-item label="物料编码">
  71. <el-input v-model="searchData.partNo" style="width: 160px"></el-input>
  72. </el-form-item>
  73. <el-form-item label="物料描述">
  74. <el-input v-model="searchData.partDescription" style="width: 213px"></el-input>
  75. </el-form-item>
  76. <el-form-item>
  77. <span style="cursor: pointer" slot="label" @click="getBaseList(9)"><a herf="#">采购员</a></span>
  78. <el-input v-model="searchData.userName" clearable placeholder="输入或选择采购员" style="width: 120px"></el-input>
  79. </el-form-item>
  80. <el-form-item :label="' '">
  81. <el-button v-if="!authSearch" type="primary" @click="getDataList()">查询</el-button>
  82. <download-excel
  83. :fields="fields()"
  84. :data="exportData"
  85. type="xls"
  86. :name="exportName"
  87. :header="exportHeader"
  88. :footer="exportFooter"
  89. :fetch="createExportData"
  90. :before-generate="startDownload"
  91. :before-finish="finishDownload"
  92. worksheet="导出信息"
  93. class="el-button el-button--primary el-button--medium">
  94. {{ "导出" }}
  95. </download-excel>
  96. </el-form-item>
  97. </el-form>
  98. <el-table
  99. :height="height - 280"
  100. :data="dataList"
  101. border
  102. style="width: 100%;"
  103. class="custom-table"
  104. >
  105. <el-table-column
  106. v-for="(item, index) in columnList"
  107. :key="index"
  108. :prop="item.columnProp"
  109. :label="item.columnLabel"
  110. :sortable="item.columnSortable"
  111. :header-align="item.headerAlign"
  112. :align="item.align"
  113. :fixed="item.fixed == '' ? false : item.fixed"
  114. :width="item.columnWidth"
  115. >
  116. <template slot-scope="scope">
  117. <span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
  118. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  119. </template>
  120. </el-table-column>
  121. </el-table>
  122. <el-pagination
  123. @size-change="sizeChangeHandle"
  124. @current-change="currentChangeHandle"
  125. :current-page="pageIndex"
  126. :page-sizes="[20, 50, 100, 200, 500]"
  127. :page-size="pageSize"
  128. :total="totalPage"
  129. layout="total, sizes, prev, pager, next, jumper"
  130. >
  131. </el-pagination>
  132. <el-tabs style="margin-top: 0px; width: 100%; height: 100%;" v-model="activeName" class="customer-tab" type="border-card">
  133. <el-tab-pane label="汇总" name="first">
  134. <el-table
  135. :height="height - 325"
  136. :data="collectDataList"
  137. border
  138. style="width: 100%">
  139. <el-table-column
  140. v-for="(item, index) in columnCollectList"
  141. :key="index"
  142. :prop="item.columnProp"
  143. :label="item.columnLabel"
  144. :sortable="item.columnSortable"
  145. :header-align="item.headerAlign"
  146. :align="item.align"
  147. :fixed="item.fixed == '' ? false : item.fixed"
  148. :width="item.columnWidth"
  149. >
  150. <template slot-scope="scope">
  151. <span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
  152. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  153. </template>
  154. </el-table-column>
  155. </el-table>
  156. </el-tab-pane>
  157. </el-tabs>
  158. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  159. <!-- 数据表格部分 -->
  160. <!-- <el-table :data="dataList" border style="width: 100%">-->
  161. <!-- <el-table-column prop="orderNumber" label="订单号" width="150"></el-table-column>-->
  162. <!-- <el-table-column prop="material" label="物料编码" width="150"></el-table-column>-->
  163. <!-- <el-table-column prop="supplier" label="供应商" width="150"></el-table-column>-->
  164. <!-- <el-table-column prop="quantity" label="待送货数量" width="150"></el-table-column>-->
  165. <!-- <el-table-column prop="deliveryQuantity" label="此次送货数量" width="150">-->
  166. <!-- <template slot-scope="scope">-->
  167. <!-- <el-input-->
  168. <!-- v-model.number="scope.row.deliveryQuantity"-->
  169. <!-- :max="scope.row.remainingQuantity"-->
  170. <!-- />-->
  171. <!-- </template>-->
  172. <!-- </el-table-column>-->
  173. <!-- <el-table-column prop="status" label="状态" width="150"></el-table-column>-->
  174. <!-- </el-table>-->
  175. <!-- 汇总部分 -->
  176. <!-- <div class="summary-section">-->
  177. <!-- <h3>汇总</h3>-->
  178. <!-- <p>总待送货数量: {{ totalRemaining }}</p>-->
  179. <!-- <p>此次送货总数量: {{ totalDelivery }}</p>-->
  180. <!-- </div>-->
  181. </div>
  182. </template>
  183. <script>
  184. import {removeUserFavorite, saveUserFavorite, userFavoriteList} from "../../../api/userFavorite";
  185. import {getSiteAndBuByUserName} from "../../../api/qc/qc";
  186. import {
  187. addSupplierDeliveryPlan, autoReservationInitiateHandler,
  188. searchSupplierDeliverySchedule,
  189. updateSupplierDeliveryScheduleDeliveryQty
  190. } from "../../../api/deliverySchedule/supplierDeliverySchedule";
  191. import {searchSupplierDeliveryPlan} from "../../../api/deliverySchedule/supplierDeliveryPlan";
  192. import {getTableDefaultListLanguage, getTableUserListLanguage} from "../../../api/table";
  193. import Chooselist from "../common/Chooselist.vue";
  194. export default {
  195. components: {
  196. Chooselist
  197. },
  198. data() {
  199. return {
  200. // 是否收藏
  201. favorite: false,
  202. // 导出 start
  203. exportData: [],
  204. exportName: "供应商送货计划信息" + this.dayjs().format('YYYYMMDDHHmmss'),
  205. exportHeader: ["供应商送货计划信息"],
  206. exportFooter: [],
  207. exportList: [],
  208. modalData: {
  209. WantedDelDate: new Date(),
  210. DelPlace: '',
  211. Remark: '',
  212. SupplierDeliveryScheduleList: [],
  213. },
  214. // 导出 end
  215. searchData: {
  216. orderNo: '',
  217. orderRef1: '',
  218. orderRef2: '',
  219. operationDesc: '',
  220. status: '',
  221. statusList: ['未送货','部分送货','已送货'],
  222. wantedDelStartDate: '',
  223. wantedDelEndDate: '',
  224. delPlace: '',
  225. supplierId: this.$store.state.user.name,
  226. supplierName: '',
  227. partNo: '',
  228. partDescription: '',
  229. userName: '',
  230. site: this.$store.state.user.site,
  231. page: 1,
  232. limit: 20,
  233. },
  234. columnList: [
  235. {
  236. userId: this.$store.state.user.name,
  237. functionId: 109003,
  238. serialNumber: '109003TableWantedDelDate',
  239. tableId: "109003Table",
  240. tableName: "供应商送货计划信息表",
  241. columnWidth: 120,
  242. columnProp: 'WantedDelDate',
  243. headerAlign: 'center',
  244. align: "center",
  245. columnLabel: '要求送货日期',
  246. columnHidden: false,
  247. columnImage: false,
  248. columnSortable: false,
  249. sortLv: 0,
  250. status: true,
  251. fixed: '',
  252. },
  253. {
  254. userId: this.$store.state.user.name,
  255. functionId: 109003,
  256. serialNumber: '109003TableUserName',
  257. tableId: "109003Table",
  258. tableName: "供应商送货计划信息表",
  259. columnWidth: 120,
  260. columnProp: 'userName',
  261. headerAlign: 'center',
  262. align: "center",
  263. columnLabel: '采购员',
  264. columnHidden: false,
  265. columnImage: false,
  266. columnSortable: false,
  267. sortLv: 0,
  268. status: true,
  269. fixed: '',
  270. },
  271. {
  272. userId: this.$store.state.user.name,
  273. functionId: 109003,
  274. serialNumber: '109003TableDelPlace',
  275. tableId: "109003Table",
  276. tableName: "供应商送货计划信息表",
  277. columnWidth: 120,
  278. columnProp: 'delPlace',
  279. headerAlign: 'center',
  280. align: "center",
  281. columnLabel: '送货地点',
  282. columnHidden: false,
  283. columnImage: false,
  284. columnSortable: false,
  285. sortLv: 0,
  286. status: true,
  287. fixed: '',
  288. },
  289. {
  290. userId: this.$store.state.user.name,
  291. functionId: 109003,
  292. serialNumber: '109003TableStatus',
  293. tableId: "109003Table",
  294. tableName: "供应商送货计划信息表",
  295. columnWidth: 120,
  296. columnProp: 'status',
  297. headerAlign: 'center',
  298. align: "center",
  299. columnLabel: '状态',
  300. columnHidden: false,
  301. columnImage: false,
  302. columnSortable: false,
  303. sortLv: 0,
  304. status: true,
  305. fixed: '',
  306. },
  307. {
  308. userId: this.$store.state.user.name,
  309. functionId: 109003,
  310. serialNumber: '109003TableSupplierId',
  311. tableId: "109003Table",
  312. tableName: "供应商送货计划信息表",
  313. columnWidth: 80,
  314. columnProp: 'supplierId',
  315. headerAlign: 'center',
  316. align: "left",
  317. columnLabel: '供应商编码',
  318. columnHidden: false,
  319. columnImage: false,
  320. columnSortable: false,
  321. sortLv: 0,
  322. status: true,
  323. fixed: '',
  324. },
  325. {
  326. userId: this.$store.state.user.name,
  327. functionId: 109003,
  328. serialNumber: '109003TableSupplierName',
  329. tableId: "109003Table",
  330. tableName: "供应商送货计划信息表",
  331. columnWidth: 182,
  332. columnProp: 'supplierName',
  333. headerAlign: 'center',
  334. align: "left",
  335. columnLabel: '供应商名称',
  336. columnHidden: false,
  337. columnImage: false,
  338. columnSortable: false,
  339. sortLv: 0,
  340. status: true,
  341. fixed: '',
  342. },
  343. {
  344. userId: this.$store.state.user.name,
  345. functionId: 109003,
  346. serialNumber: '109003TableOrderNo',
  347. tableId: "109003Table",
  348. tableName: "供应商送货计划信息表",
  349. columnWidth: 100,
  350. columnProp: 'orderNo',
  351. headerAlign: 'center',
  352. align: "center",
  353. columnLabel: '采购订单号',
  354. columnHidden: false,
  355. columnImage: false,
  356. columnSortable: false,
  357. sortLv: 0,
  358. status: true,
  359. fixed: '',
  360. },
  361. {
  362. userId: this.$store.state.user.name,
  363. functionId: 109003,
  364. serialNumber: '109003TableOrderRef1',
  365. tableId: "109003Table",
  366. tableName: "供应商送货计划信息表",
  367. columnWidth: 182,
  368. columnProp: 'orderRef1',
  369. headerAlign: 'center',
  370. align: "left",
  371. columnLabel: '生产订单号',
  372. columnHidden: false,
  373. columnImage: false,
  374. columnSortable: false,
  375. sortLv: 0,
  376. status: true,
  377. fixed: '',
  378. },
  379. {
  380. userId: this.$store.state.user.name,
  381. functionId: 109003,
  382. serialNumber: '109003TableOrderItemNo',
  383. tableId: "109003Table",
  384. tableName: "供应商送货计划信息表",
  385. columnWidth: 80,
  386. columnProp: 'orderItemNo',
  387. headerAlign: 'center',
  388. align: "center",
  389. columnLabel: '序号',
  390. columnHidden: false,
  391. columnImage: false,
  392. columnSortable: false,
  393. sortLv: 0,
  394. status: true,
  395. fixed: '',
  396. },
  397. {
  398. userId: this.$store.state.user.name,
  399. functionId: 109003,
  400. serialNumber: '109003TablePartNo',
  401. tableId: "109003Table",
  402. tableName: "供应商送货计划信息表",
  403. columnWidth: 182,
  404. columnProp: 'partNo',
  405. headerAlign: 'center',
  406. align: "left",
  407. columnLabel: '物料编码',
  408. columnHidden: false,
  409. columnImage: false,
  410. columnSortable: false,
  411. sortLv: 0,
  412. status: true,
  413. fixed: '',
  414. },
  415. {
  416. userId: this.$store.state.user.name,
  417. functionId: 109003,
  418. serialNumber: '109003TablePartDescription',
  419. tableId: "109003Table",
  420. tableName: "供应商送货计划信息表",
  421. columnWidth: 182,
  422. columnProp: 'partDescription',
  423. headerAlign: 'center',
  424. align: "left",
  425. columnLabel: '物料名称',
  426. columnHidden: false,
  427. columnImage: false,
  428. columnSortable: false,
  429. sortLv: 0,
  430. status: true,
  431. fixed: '',
  432. },
  433. {
  434. userId: this.$store.state.user.name,
  435. functionId: 109003,
  436. serialNumber: '109003TableSpec',
  437. tableId: "109003Table",
  438. tableName: "供应商送货计划信息表",
  439. columnWidth: 183,
  440. columnProp: 'spec',
  441. headerAlign: 'center',
  442. align: "left",
  443. columnLabel: '规格型号',
  444. columnHidden: false,
  445. columnImage: false,
  446. columnSortable: false,
  447. sortLv: 0,
  448. status: true,
  449. fixed: '',
  450. },
  451. {
  452. userId: this.$store.state.user.name,
  453. functionId: 109003,
  454. serialNumber: '109003TableOrderRef2',
  455. tableId: "109003Table",
  456. tableName: "供应商送货计划信息表",
  457. columnWidth: 70,
  458. columnProp: 'orderRef2',
  459. headerAlign: 'center',
  460. align: "center",
  461. columnLabel: '工序号',
  462. columnHidden: false,
  463. columnImage: false,
  464. columnSortable: false,
  465. sortLv: 0,
  466. status: true,
  467. fixed: '',
  468. },
  469. {
  470. userId: this.$store.state.user.name,
  471. functionId: 109003,
  472. serialNumber: '109003TableOperationDesc',
  473. tableId: "109003Table",
  474. tableName: "供应商送货计划信息表",
  475. columnWidth: 120,
  476. columnProp: 'operationDesc',
  477. headerAlign: 'center',
  478. align: "left",
  479. columnLabel: '工序名称',
  480. columnHidden: false,
  481. columnImage: false,
  482. columnSortable: false,
  483. sortLv: 0,
  484. status: true,
  485. fixed: '',
  486. },
  487. {
  488. userId: this.$store.state.user.name,
  489. functionId: 109003,
  490. serialNumber: '109003TableNotifyQty',
  491. tableId: "109003Table",
  492. tableName: "供应商送货计划信息表",
  493. columnWidth: 120,
  494. columnProp: 'notifyQty',
  495. headerAlign: 'center',
  496. align: "right",
  497. columnLabel: '要求送货数量',
  498. columnHidden: false,
  499. columnImage: false,
  500. columnSortable: false,
  501. sortLv: 0,
  502. status: true,
  503. fixed: '',
  504. },
  505. {
  506. userId: this.$store.state.user.name,
  507. functionId: 109003,
  508. serialNumber: '109003TableActualTotalDelQty',
  509. tableId: "109003Table",
  510. tableName: "供应商送货计划信息表",
  511. columnWidth: 120,
  512. columnProp: 'actualTotalDelQty',
  513. headerAlign: 'center',
  514. align: "right",
  515. columnLabel: '实际送货数量',
  516. columnHidden: false,
  517. columnImage: false,
  518. columnSortable: false,
  519. sortLv: 0,
  520. status: true,
  521. fixed: '',
  522. },
  523. {
  524. userId: this.$store.state.user.name,
  525. functionId: 109003,
  526. serialNumber: '109003TableActualOntimeDelQty',
  527. tableId: "109003Table",
  528. tableName: "供应商送货计划信息表",
  529. columnWidth: 120,
  530. columnProp: 'actualOntimeDelQty',
  531. headerAlign: 'center',
  532. align: "right",
  533. columnLabel: '实际准时送货数量',
  534. columnHidden: false,
  535. columnImage: false,
  536. columnSortable: false,
  537. sortLv: 0,
  538. status: true,
  539. fixed: '',
  540. },
  541. {
  542. userId: this.$store.state.user.name,
  543. functionId: 109003,
  544. serialNumber: '109003TableActualFirstDelDate',
  545. tableId: "109003Table",
  546. tableName: "供应商送货计划信息表",
  547. columnWidth: 120,
  548. columnProp: 'ActualFirstDelDate',
  549. headerAlign: 'center',
  550. align: "center",
  551. columnLabel: '实际首次送货日期',
  552. columnHidden: false,
  553. columnImage: false,
  554. columnSortable: false,
  555. sortLv: 0,
  556. status: true,
  557. fixed: '',
  558. },
  559. {
  560. userId: this.$store.state.user.name,
  561. functionId: 109003,
  562. serialNumber: '109003TableActualLatestDelDate',
  563. tableId: "109003Table",
  564. tableName: "供应商送货计划信息表",
  565. columnWidth: 120,
  566. columnProp: 'ActualLatestDelDate',
  567. headerAlign: 'center',
  568. align: "center",
  569. columnLabel: '实际最后送货日期',
  570. columnHidden: false,
  571. columnImage: false,
  572. columnSortable: false,
  573. sortLv: 0,
  574. status: true,
  575. fixed: '',
  576. },
  577. {
  578. userId: this.$store.state.user.name,
  579. functionId: 109003,
  580. serialNumber: '109003TableCreateDate',
  581. tableId: "109003Table",
  582. tableName: "供应商送货计划信息表",
  583. columnWidth: 150,
  584. columnProp: 'CreateDate',
  585. headerAlign: 'center',
  586. align: "center",
  587. columnLabel: '创建时间',
  588. columnHidden: false,
  589. columnImage: false,
  590. columnSortable: false,
  591. sortLv: 0,
  592. status: true,
  593. fixed: '',
  594. },
  595. {
  596. userId: this.$store.state.user.name,
  597. functionId: 109003,
  598. serialNumber: '109003TableCreateBy',
  599. tableId: "109003Table",
  600. tableName: "供应商送货计划信息表",
  601. columnWidth: 120,
  602. columnProp: 'createBy',
  603. headerAlign: 'center',
  604. align: "center",
  605. columnLabel: '创建人',
  606. columnHidden: false,
  607. columnImage: false,
  608. columnSortable: false,
  609. sortLv: 0,
  610. status: true,
  611. fixed: '',
  612. },
  613. ],
  614. columnCollectList:[
  615. {
  616. userId: this.$store.state.user.name,
  617. functionId: 109003,
  618. serialNumber: '109003Table1delPlace',
  619. tableId: "109003Table1",
  620. tableName: "供应商送货计划信息表",
  621. columnWidth: 120,
  622. columnProp: 'delPlace',
  623. headerAlign: 'center',
  624. align: "center",
  625. columnLabel: '送货地点',
  626. columnHidden: false,
  627. columnImage: false,
  628. columnSortable: false,
  629. sortLv: 0,
  630. status: true,
  631. fixed: '',
  632. },
  633. {
  634. userId: this.$store.state.user.name,
  635. functionId: 109003,
  636. serialNumber: '109003Table1PartNo',
  637. tableId: "109003Table1",
  638. tableName: "供应商送货计划信息表",
  639. columnWidth: 202,
  640. columnProp: 'partNo',
  641. headerAlign: 'center',
  642. align: "left",
  643. columnLabel: '物料编码',
  644. columnHidden: false,
  645. columnImage: false,
  646. columnSortable: false,
  647. sortLv: 0,
  648. status: true,
  649. fixed: '',
  650. },
  651. {
  652. userId: this.$store.state.user.name,
  653. functionId: 109003,
  654. serialNumber: '109003Table1PartDescription',
  655. tableId: "109003Table1",
  656. tableName: "供应商送货计划信息表",
  657. columnWidth: 282,
  658. columnProp: 'partDescription',
  659. headerAlign: 'center',
  660. align: "left",
  661. columnLabel: '物料名称',
  662. columnHidden: false,
  663. columnImage: false,
  664. columnSortable: false,
  665. sortLv: 0,
  666. status: true,
  667. fixed: '',
  668. },
  669. {
  670. userId: this.$store.state.user.name,
  671. functionId: 109003,
  672. serialNumber: '109003Table1Spec',
  673. tableId: "109003Table1",
  674. tableName: "供应商送货计划信息表",
  675. columnProp: 'spec',
  676. headerAlign: 'center',
  677. align: "left",
  678. columnLabel: '规格型号',
  679. columnHidden: false,
  680. columnImage: false,
  681. columnSortable: false,
  682. sortLv: 0,
  683. status: true,
  684. fixed: '',
  685. },
  686. {
  687. userId: this.$store.state.user.name,
  688. functionId: 109003,
  689. serialNumber: '109003Table1NotifyQty',
  690. tableId: "109003Table1",
  691. tableName: "供应商送货计划信息表",
  692. columnWidth: 120,
  693. columnProp: 'notifyQty',
  694. headerAlign: 'center',
  695. align: "right",
  696. columnLabel: '要求送货数量',
  697. columnHidden: false,
  698. columnImage: false,
  699. columnSortable: false,
  700. sortLv: 0,
  701. status: true,
  702. fixed: '',
  703. },
  704. ],
  705. rules: {
  706. wantedDelDate: [
  707. { required: true, message: '要求送货日期不能为空', trigger: 'blur' }
  708. ],
  709. delPlace: [
  710. { required: true, message: '送货地点不能为空', trigger: 'blur' }
  711. ],
  712. allotmentQty: [
  713. { required: true, message: '此次分配的送货数量不能为空', trigger: 'blur' }
  714. ],
  715. },
  716. pageIndex: 1,
  717. pageSize: 20,
  718. totalPage: 0,
  719. height: 200,
  720. activeName: 'first',
  721. dataList: [],
  722. collectDataList: [],
  723. modalFlag: false,
  724. modalDisableFlag: false,
  725. autoReservationFlag: false,
  726. options: [],
  727. userBuList: [],
  728. authSearch: false,
  729. authSave: false,
  730. authUpdate: false,
  731. authDelete: false,
  732. menuId: this.$route.meta.menuId,
  733. };
  734. },
  735. mounted () {
  736. this.$nextTick(() => {
  737. this.height = window.innerHeight - 180
  738. })
  739. },
  740. created() {
  741. // 按钮控制
  742. this.getButtonAuthData()
  743. // 获取用户的 site 和 bu
  744. this.getSiteAndBuByUserName()
  745. // 校验用户是否收藏
  746. this.favoriteIsOk()
  747. // 动态列
  748. this.getTableUserColumn(this.$route.meta.menuId+'table',1)
  749. if (!this.authSearch) {
  750. // 获取数据列表
  751. this.getDataList()
  752. }
  753. },
  754. methods: {
  755. // 获取基础数据列表
  756. getBaseList (val) {
  757. this.tagNo = val
  758. this.$nextTick(() => {
  759. let strVal = ''
  760. let conSql = ''
  761. if (val === 3) {
  762. strVal = this.searchData.supplierId
  763. conSql = " and site = '" + this.searchData.site + "'"
  764. this.$refs.baseList.init(val, strVal, conSql)
  765. } else if (val === 9) {
  766. strVal = this.searchData.userName
  767. conSql = " and site = '" + this.searchData.site + "'"
  768. this.$refs.baseList.init(val, strVal, conSql)
  769. }
  770. })
  771. },
  772. // 列表方法的回调
  773. getBaseData (val) {
  774. if (this.tagNo === 3) {
  775. this.searchData.supplierId = val.SupplierID
  776. this.searchData.supplierName = val.SupplierName
  777. } else if (this.tagNo === 9) {
  778. this.searchData.userName = val.EmployeeName
  779. }
  780. },
  781. // 获取用户的bu
  782. getSiteAndBuByUserName () {
  783. let tempData = {
  784. username: this.$store.state.user.name,
  785. }
  786. getSiteAndBuByUserName(tempData).then(({data}) => {
  787. if (data.code === 0) {
  788. this.userBuList = data.rows
  789. }
  790. })
  791. },
  792. // 校验用户是否收藏
  793. favoriteIsOk () {
  794. let userFavorite = {
  795. userId: this.$store.state.user.id,
  796. languageCode: this.$i18n.locale
  797. }
  798. userFavoriteList(userFavorite).then(({data}) => {
  799. for (let i = 0; i < data.list.length; i++) {
  800. if(this.$route.meta.menuId === data.list[i].menuId){
  801. this.favorite = true
  802. }
  803. }
  804. })
  805. },
  806. // 收藏 OR 取消收藏
  807. favoriteFunction () {
  808. let userFavorite = {
  809. userId: this.$store.state.user.id,
  810. functionId: this.$route.meta.menuId,
  811. }
  812. if (this.favorite) {
  813. removeUserFavorite(userFavorite).then(({data}) => {
  814. this.$message.success(data.msg)
  815. this.favorite = false
  816. })
  817. } else {
  818. // 收藏
  819. saveUserFavorite(userFavorite).then(({data}) => {
  820. this.$message.success(data.msg)
  821. this.favorite = true
  822. })
  823. }
  824. },
  825. getDataList() {
  826. this.searchData.limit = this.pageSize
  827. this.searchData.page = this.pageIndex
  828. searchSupplierDeliveryPlan(this.searchData).then(({data}) => {
  829. if (data.code === 0) {
  830. this.dataList = data.page.list
  831. this.collectDataList = data.list1
  832. this.pageIndex = data.page.currPage
  833. this.pageSize = data.page.pageSize
  834. this.totalPage = data.page.totalCount
  835. }
  836. })
  837. },
  838. saveData () {
  839. let inData = {
  840. site: this.$store.state.user.site,
  841. userId: this.$store.state.user.id,
  842. delPlace: this.modalData.DelPlace,
  843. wantedDelDate: this.modalData.WantedDelDate,
  844. remark: this.modalData.Remark,
  845. supplierDeliveryScheduleList: this.modalData.SupplierDeliveryScheduleList,
  846. createBy: this.$store.state.user.name,
  847. }
  848. addSupplierDeliveryPlan(inData).then(({data}) => {
  849. if (data.code === 0) {
  850. this.modalFlag = false
  851. this.$message.success(data.msg)
  852. } else {
  853. this.$message.error(data.msg)
  854. }
  855. })
  856. },
  857. handleSelectionChange(val) {
  858. this.selectionList = val;
  859. },
  860. // 每页数
  861. sizeChangeHandle (val) {
  862. this.pageSize = val
  863. this.pageIndex = 1
  864. this.getDataList()
  865. },
  866. // 当前页
  867. currentChangeHandle (val) {
  868. this.pageIndex = val
  869. this.getDataList()
  870. },
  871. //导出excel
  872. async createExportData() {
  873. if(this.selectionList.length > 0) {
  874. return this.exportList = this.selectionList
  875. } else {
  876. // 提示
  877. this.$message({
  878. message: '请选择要导出的数据',
  879. type: 'warning'
  880. })
  881. }
  882. },
  883. startDownload() {},
  884. finishDownload() {},
  885. fields () {
  886. let json = "{"
  887. this.columnList.forEach((item, index) => {
  888. if (index == this.columnList.length - 1) {
  889. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  890. } else {
  891. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  892. }
  893. })
  894. json += "}"
  895. let s = eval("(" + json + ")")
  896. return s
  897. },
  898. // 动态列开始 获取 用户保存的 格式列
  899. async getTableUserColumn (tableId, columnId) {
  900. let queryTableUser = {
  901. userId: this.$store.state.user.name,
  902. functionId: this.$route.meta.menuId,
  903. tableId: tableId,
  904. status: true,
  905. languageCode: this.$i18n.locale
  906. }
  907. await getTableUserListLanguage(queryTableUser).then(({data}) => {
  908. if (data.rows.length > 0) {
  909. //this.columnList1 = []
  910. switch (columnId) {
  911. case 1:
  912. this.columnList = data.rows
  913. break;
  914. // case 2:
  915. // this.columnDetailList = data.rows
  916. // break;
  917. // case 3:
  918. // this.columnList2 = data.rows
  919. // break;
  920. // case 4:
  921. // this.columnList3 = data.rows
  922. // break;
  923. }
  924. } else {
  925. this.getColumnList(tableId, columnId)
  926. }
  927. })
  928. },
  929. // 获取 tableDefault 列
  930. async getColumnList (tableId, columnId) {
  931. let queryTable = {
  932. functionId: this.$route.meta.menuId,
  933. tableId: tableId,
  934. languageCode: this.$i18n.locale
  935. }
  936. await getTableDefaultListLanguage(queryTable).then(({data}) => {
  937. if (!data.rows.length == 0) {
  938. switch (columnId) {
  939. case 1:
  940. this.columnList = data.rows
  941. break;
  942. // case 2:
  943. // this.columnDetailList = data.rows
  944. // break;
  945. // case 3:
  946. // this.columnList2 = data.rows
  947. // break;
  948. // case 4:
  949. // this.columnList3 = data.rows
  950. // break;
  951. }
  952. } else {
  953. // this.showDefault = true.
  954. }
  955. })
  956. },
  957. //获取按钮的权限数据
  958. getButtonAuthData () {
  959. let searchFlag = this.isAuth(this.menuId+":search")
  960. let saveFlag = this.isAuth(this.menuId+":save")
  961. let updateFlag = this.isAuth(this.menuId+":update")
  962. let deleteFlag = this.isAuth(this.menuId+":delete")
  963. //处理页面的权限数据
  964. this.authSearch = !searchFlag
  965. this.authSave = !saveFlag
  966. this.authUpdate = !updateFlag
  967. this.authDelete = !deleteFlag
  968. },
  969. },
  970. };
  971. </script>
  972. <style scoped lang="scss">
  973. /deep/ .customer-tab .el-tabs__content {
  974. padding: 0px !important;
  975. }
  976. .custom-table /deep/ .el-table__row {
  977. height: 30px;
  978. line-height: 1.5;
  979. }
  980. .el-input-number /deep/ .el-input__inner {
  981. text-align: right;
  982. padding-right: 5px !important;
  983. }
  984. #delivery-plan {
  985. padding: 20px;
  986. }
  987. .filter-section {
  988. margin-bottom: 20px;
  989. }
  990. .summary-section {
  991. margin-top: 20px;
  992. }
  993. </style>