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.

1779 lines
54 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. <template>
  2. <div class="customer-css">
  3. <!-- 查询时间和产品 -->
  4. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
  5. <el-row>
  6. <el-form-item :label=labels.enterDate>
  7. <el-date-picker class="el-time-width"
  8. style=""
  9. v-model="pageData.enterTime1"
  10. value-format="yyyy-MM-dd">
  11. </el-date-picker>
  12. </el-form-item>
  13. <el-form-item :label="''" style="margin-top: -10px;">
  14. <el-date-picker class="el-time-width"
  15. style="margin-top: 30px;"
  16. v-model="pageData.enterTime2"
  17. value-format="yyyy-MM-dd" placeholder="">
  18. </el-date-picker>
  19. </el-form-item>
  20. <el-form-item :label=labels.orderNo>
  21. <el-input v-model="pageData.orderNo" style="width: 120px"></el-input>
  22. </el-form-item>
  23. <el-form-item :label=labels.siteNo>
  24. <el-input v-model="pageData.site" style="width: 120px"></el-input>
  25. </el-form-item>
  26. </el-row>
  27. <el-row>
  28. <el-form-item :label=labels.needDate>
  29. <el-date-picker class="el-time-width"
  30. style=""
  31. v-model="pageData.needTime1"
  32. value-format="yyyy-MM-dd" placeholder="">
  33. </el-date-picker>
  34. </el-form-item>
  35. <el-form-item :label="''" style="margin-top: -10px;">
  36. <el-date-picker class="el-time-width"
  37. style="margin-top: 30px;"
  38. v-model="pageData.needTime2"
  39. value-format="yyyy-MM-dd" placeholder="">
  40. </el-date-picker>
  41. </el-form-item>
  42. <el-form-item>
  43. <span slot="label" style="" @click="getBaseList(88)"><a herf="#">{{ labels.resourceId }}</a></span>
  44. <el-input v-model="pageData.resourceId" style="width: 120px"></el-input>
  45. </el-form-item>
  46. <el-form-item>
  47. <span slot="label" style="" @click="getBaseList(24)"><a herf="#">{{ labels.workCenterNo }}</a></span>
  48. <el-input v-model="pageData.workCenterNo" style="width: 120px"></el-input>
  49. </el-form-item>
  50. </el-row>
  51. </el-form>
  52. <!-- 排序规则 -->
  53. <fieldset class="customer-field" style="margin-left: 520px; margin-top: -75px; width: 135px;">
  54. <legend>{{ labels.sortNo }}</legend>
  55. <br>
  56. <el-form :inline="true" style="margin-top: -10px; margin-bottom: 10px;" label-position="top" label-width="100px">
  57. <el-form-item :label="''" style="margin-bottom: 10px;">
  58. <el-radio-group v-model="pageData.sortField">
  59. <el-radio label="needDate">{{ labels.sortNeedDate }}</el-radio>
  60. <el-radio label="orderNo">{{ labels.sortOrderNo }}</el-radio>
  61. <el-radio label="partNo">{{ labels.sortPartNo }}</el-radio>
  62. </el-radio-group>
  63. </el-form-item>
  64. </el-form>
  65. </fieldset>
  66. <!-- 菜单 -->
  67. <el-form :inline="true" label-position="top" label-width="100px"
  68. style="margin-left: 660px; margin-top: -40px;">
  69. <el-row>
  70. <el-col :span="24">
  71. <el-form-item :label="''">
  72. <el-form-item :label="''" style="margin-left: 30px;">
  73. <el-button class="customer-bun-min" type="primary" @click="refreshPageTables"
  74. style="margin-left: 10px; margin-bottom: 5px;">{{ buttons.refreshButton }}
  75. </el-button>
  76. <el-button :disabled="dataListSelections.length <= 0" type="primary" @click="scheduleBatchDialog()"
  77. style="margin-left: 10px; margin-bottom: 5px;">
  78. {{ buttons.scheduleBatch ? buttons.scheduleBatch : '批量排产' }}
  79. </el-button>
  80. </el-form-item>
  81. </el-form-item>
  82. </el-col>
  83. </el-row>
  84. </el-form>
  85. <!-- 工单主表信息 -->
  86. <el-main style="margin-top: 25px; padding: 0px; width: 100%;">
  87. <el-form :inline="true" label-position="top" label-width="100px">
  88. <el-form-item :label=labels.primaryRecord>
  89. </el-form-item>
  90. <el-dropdown trigger="click" class="customer-dropdown" size="small" @command="orderHandleCommand">
  91. <el-button type="primary" :disabled="authEdit" @click="controlPrimaryMenuBun">
  92. {{ buttons.primaryMenu }}<i class="el-icon-arrow-down el-icon--right"></i>
  93. </el-button>
  94. <el-dropdown-menu slot="dropdown">
  95. <el-dropdown-item class="customer-li" command="生产工单"
  96. :disabled="primaryMenuButton.shopOrderFlag">{{ buttons.shopOrder }}
  97. </el-dropdown-item>
  98. <hr width="95%"/>
  99. <el-dropdown-item class="customer-li" command="查看物料库存"
  100. :disabled="primaryMenuButton.partStockFlag">{{ buttons.viewPartStock }}
  101. </el-dropdown-item>
  102. </el-dropdown-menu>
  103. </el-dropdown>
  104. <el-button @click="userSetting" type="primary">{{ buttons.settingTable }}</el-button>
  105. </el-form>
  106. <el-table
  107. :height="height"
  108. :data="shopOrderList"
  109. border
  110. ref="routingTable"
  111. highlight-current-row
  112. @selection-change="handleSelectionChange"
  113. @row-click="setCurrentRoutingRow"
  114. :row-class-name="routingRowClassName"
  115. @row-dblclick="startScheduleOperation"
  116. v-loading="dataListLoading"
  117. style="margin-top: -20px; width: 100%;">
  118. <el-table-column
  119. type="selection"
  120. header-align="center"
  121. fixed="left"
  122. align="center"
  123. width="55">
  124. </el-table-column>
  125. <el-table-column
  126. v-for="(item,index) in columnList" :key="index"
  127. :sortable="item.columnSortable"
  128. :prop="item.columnProp"
  129. :header-align="item.headerAlign"
  130. :show-overflow-tooltip="item.showOverflowTooltip"
  131. :align="item.align"
  132. :fixed="item.fixed==''?false:item.fixed"
  133. :width="item.columnWidth"
  134. :label="item.columnLabel">
  135. <template slot-scope="scope">
  136. <span v-if="!item.columnHidden && item.columnProp == 'resourceList'">
  137. <el-select class="table-select-input" v-model="scope.row.resourceId">
  138. <el-option v-for="(item,index) in scope.row.resourceList" :key="index"
  139. :value="item.resourceId" :label="item.resourceDesc">
  140. </el-option>
  141. </el-select>
  142. </span>
  143. <span v-if="!item.columnHidden && item.columnProp == 'qtyToSchedule'">
  144. <el-input v-model="scope.row.qtyToSchedule" type="number">
  145. </el-input>
  146. </span>
  147. <span v-else> {{ scope.row[item.columnProp] }}</span>
  148. </template>
  149. </el-table-column>
  150. </el-table>
  151. </el-main>
  152. <!--列表的组件-->
  153. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  154. <!-- 物料库存查询 -->
  155. <comPartStock ref="comPartStock" :close-on-click-modal="false"
  156. :visible.sync="showPartStockFlag">
  157. </comPartStock>
  158. <!-- 物料库存查询 -->
  159. <comScheduleOrderExpand ref="comScheduleOrderExpand" :close-on-click-modal="false"
  160. :visible.sync="showScheduleOrderFlag"
  161. @refreshPageTables="refreshPageTables">
  162. </comScheduleOrderExpand>
  163. <!-- 动态列 -->
  164. <column v-if="visible" ref="column" @refreshData="getTableUserColumn" v-drag></column>
  165. <el-dialog
  166. width="702px"
  167. :title="'已选工单'"
  168. :close-on-click-modal="false"
  169. :visible.sync="scheduleVisible">
  170. <el-row>
  171. <el-col :span="24">
  172. <el-form :inline="true" label-position="top" style="height: 60px;"
  173. label-width="80px">
  174. <el-form-item :label=labels.scheduledDate>
  175. <el-date-picker class="el-time-width"
  176. style=""
  177. v-model="scheduleDate"
  178. value-format="yyyy-MM-dd">
  179. </el-date-picker>
  180. </el-form-item>
  181. <el-form-item :label="''" style="margin-top: -5px;">
  182. <el-checkbox v-model="specifiedTime" true-label="Y" false-label="N"
  183. style="margin-top: 28px; margin-right: -20px;"></el-checkbox>
  184. <el-time-picker
  185. format="HH:mm"
  186. style="margin-top: 30px; width: 65px"
  187. v-model="scheduleTime"
  188. value-format="HH:mm">
  189. </el-time-picker>
  190. </el-form-item>
  191. </el-form>
  192. </el-col>
  193. </el-row>
  194. <el-row>
  195. <el-col :span="24">
  196. <el-table
  197. :height="300"
  198. :data="dataListSelections"
  199. border
  200. style="margin-top: -15px; width: 100%;">
  201. <el-table-column
  202. v-for="(item,index) in scheduleColumnList" :key="index"
  203. :sortable="item.columnSortable"
  204. :prop="item.columnProp"
  205. :header-align="item.headerAlign"
  206. :show-overflow-tooltip="item.showOverflowTooltip"
  207. :align="item.align"
  208. :fixed="item.fixed==''?false:item.fixed"
  209. :width="item.columnWidth"
  210. :label="item.columnLabel">
  211. <template slot-scope="scope">
  212. <span v-if="!item.columnHidden">
  213. {{ scope.row[item.columnProp] }}
  214. </span>
  215. </template>
  216. </el-table-column>
  217. </el-table>
  218. </el-col>
  219. </el-row>
  220. <span slot="footer" class="dialog-footer">
  221. <el-button type="primary" @click="batchScheduleOrderWithExpandStart()">确定</el-button>
  222. <el-button type="primary" @click="scheduleVisible = false">取消</el-button>
  223. </span>
  224. </el-dialog>
  225. </div>
  226. </template>
  227. <script>
  228. import Chooselist from '@/views/modules/common/Chooselist';/*列表组件*/
  229. import comPartStock from "../common/com_part_stock";/*展示物料库存的组件*/
  230. import comScheduleOrderExpand from '@/views/modules/schedule/com_schedule_order_expand';/*排产扩展 排产单个工单*/
  231. import column from '@/views/modules/common/column';/*动态表头*/
  232. import {
  233. getShopOrderList,
  234. getCurrentWorkCenterNoByResourceId,
  235. batchScheduleOrderWithExpand
  236. } from '@/api/schedule/order_schedule_expand.js';
  237. /*动态表头*/
  238. import {
  239. saveTableDefaultList,
  240. getTableDefaultListLanguage,
  241. getTableUserListLanguage,
  242. removerDefault,
  243. removerUser
  244. } from "@/api/table.js";
  245. import {
  246. searchSysLanguagePackList,
  247. searchSysLanguageParam,
  248. searchFunctionButtonList,
  249. saveButtonList,
  250. searchSysLanguage,
  251. searchLanguageListByLanguageCode,
  252. saveSysLanguageOne,
  253. searchPageLanguageData,
  254. removerLanguage,
  255. saveSysLanguageList
  256. } from "@/api/sysLanguage.js";
  257. var functionId = '104002004';
  258. export default {
  259. data() {
  260. return {
  261. height: 200,
  262. tagNo: '',
  263. authEdit: false,
  264. authAdd: false,
  265. authDelete: false,
  266. scheduleVisible: false,
  267. scheduleDate: this.dayjs().format('YYYY-MM-DD'),
  268. specifiedTime: 'N',
  269. scheduleTime: '08:30',
  270. dataListSelections: [],
  271. scheduleColumnList: [
  272. {
  273. userId: this.$store.state.user.name,
  274. functionId: 5301,
  275. serialNumber: '5301OrderOrderNo',
  276. tableId: "5301Order",
  277. tableName: "工单表",
  278. columnProp: "orderNo",
  279. headerAlign: "center",
  280. align: "center",
  281. columnLabel: "订单号",
  282. columnWidth: 80,
  283. columnHidden: false,
  284. columnImage: false,
  285. columnSortable: true,
  286. sortLv: 0,
  287. status: true,
  288. fixed: false
  289. },
  290. {
  291. userId: this.$store.state.user.name,
  292. functionId: 5301,
  293. serialNumber: '5301OrderItemNo',
  294. tableId: "5301Order",
  295. tableName: "工单表",
  296. columnProp: "itemNo",
  297. headerAlign: "center",
  298. align: "center",
  299. columnLabel: "工序号",
  300. columnWidth: 80,
  301. columnHidden: false,
  302. columnImage: false,
  303. columnSortable: true,
  304. sortLv: 0,
  305. status: true,
  306. fixed: false
  307. },
  308. {
  309. userId: this.$store.state.user.name,
  310. functionId: 5301,
  311. serialNumber: '5301OrderItemDesc',
  312. tableId: "5301Order",
  313. tableName: "工单表",
  314. columnProp: "itemDesc",
  315. headerAlign: "center",
  316. align: "center",
  317. columnLabel: "工序名称",
  318. columnWidth: 100,
  319. columnHidden: false,
  320. columnImage: false,
  321. columnSortable: true,
  322. sortLv: 0,
  323. status: true,
  324. fixed: false
  325. },
  326. {
  327. userId: this.$store.state.user.name,
  328. functionId: 5301,
  329. serialNumber: '5301OrderPartNo',
  330. tableId: "5301Order",
  331. tableName: "工单表",
  332. columnProp: "partNo",
  333. headerAlign: "center",
  334. align: "center",
  335. columnLabel: "产品编码",
  336. columnWidth: 100,
  337. columnHidden: false,
  338. columnImage: false,
  339. columnSortable: true,
  340. sortLv: 0,
  341. status: true,
  342. fixed: false
  343. },
  344. {
  345. userId: this.$store.state.user.name,
  346. functionId: 5301,
  347. serialNumber: '5301OrderQtyToSchedule',
  348. tableId: "5301Order",
  349. tableName: "工单表",
  350. columnProp: "qtyToSchedule",
  351. headerAlign: "center",
  352. align: "center",
  353. columnLabel: "待排产数量",
  354. columnWidth: 120,
  355. columnHidden: false,
  356. columnImage: false,
  357. columnSortable: true,
  358. sortLv: 0,
  359. status: true,
  360. fixed: false
  361. },
  362. {
  363. userId: this.$store.state.user.name,
  364. functionId: 5301,
  365. serialNumber: '5301OrderWorkCenterNo',
  366. tableId: "5301Order",
  367. tableName: "工单表",
  368. columnProp: "workCenterNo",
  369. headerAlign: "center",
  370. align: "center",
  371. columnLabel: "加工中心",
  372. columnWidth: 100,
  373. columnHidden: false,
  374. columnImage: false,
  375. columnSortable: true,
  376. sortLv: 0,
  377. status: true,
  378. fixed: false
  379. },
  380. {
  381. userId: this.$store.state.user.name,
  382. functionId: 5301,
  383. serialNumber: '5301OrderWorkCenterNo',
  384. tableId: "5301Order",
  385. tableName: "工单表",
  386. columnProp: "resourceId",
  387. headerAlign: "center",
  388. align: "center",
  389. columnLabel: "机台",
  390. columnWidth: 100,
  391. columnHidden: false,
  392. columnImage: false,
  393. columnSortable: true,
  394. sortLv: 0,
  395. status: true,
  396. fixed: false
  397. },
  398. ],
  399. menuId: this.$route.meta.menuId,
  400. showDefault: false,
  401. visible: false,
  402. showPartStockFlag: false,
  403. showScheduleOrderFlag: false,
  404. currentRoutingRow: {},
  405. pageData: {
  406. site: this.$store.state.user.site,
  407. username: this.$store.state.user.name,
  408. orderNo: '',
  409. itemNo: '',
  410. seqNo: 0,
  411. resourceId: '',
  412. workCenterNo: '',
  413. enterTime1: '',
  414. enterTime2: '',
  415. needTime1: '',
  416. needTime2: '',
  417. scheduleDate: this.dayjs(new Date()).format('YYYY-MM-DD'),
  418. scheduleTime: '08:30',
  419. specifiedTime: 'N',
  420. scheduledQty: 0,
  421. waitTimes: 0,
  422. scheduleSeqNo: 0,
  423. planStartTime: '',
  424. calendarId: '',
  425. calendarDesc: '',
  426. status: 1,
  427. sortField: 'needDate'
  428. },
  429. shopOrderList: [],
  430. dataListLoading: false,
  431. columnList: [
  432. {
  433. userId: this.$store.state.user.name,
  434. functionId: 5301,
  435. serialNumber: '5301OrderOrderNo',
  436. tableId: "5301Order",
  437. tableName: "工单表",
  438. columnProp: "orderNo",
  439. headerAlign: "center",
  440. align: "center",
  441. columnLabel: "订单号",
  442. columnWidth: 80,
  443. columnHidden: false,
  444. columnImage: false,
  445. columnSortable: true,
  446. sortLv: 0,
  447. status: true,
  448. fixed: false
  449. },
  450. {
  451. userId: this.$store.state.user.name,
  452. functionId: 5301,
  453. serialNumber: '5301OrderItemNo',
  454. tableId: "5301Order",
  455. tableName: "工单表",
  456. columnProp: "itemNo",
  457. headerAlign: "center",
  458. align: "center",
  459. columnLabel: "工序号",
  460. columnWidth: 80,
  461. columnHidden: false,
  462. columnImage: false,
  463. columnSortable: true,
  464. sortLv: 0,
  465. status: true,
  466. fixed: false
  467. },
  468. {
  469. userId: this.$store.state.user.name,
  470. functionId: 5301,
  471. serialNumber: '5301OrderItemDesc',
  472. tableId: "5301Order",
  473. tableName: "工单表",
  474. columnProp: "itemDesc",
  475. headerAlign: "center",
  476. align: "center",
  477. columnLabel: "工序名称",
  478. columnWidth: 100,
  479. columnHidden: false,
  480. columnImage: false,
  481. columnSortable: true,
  482. sortLv: 0,
  483. status: true,
  484. fixed: false
  485. },
  486. {
  487. userId: this.$store.state.user.name,
  488. functionId: 5301,
  489. serialNumber: '5301OrderNeedDate',
  490. tableId: "5301Order",
  491. tableName: "工单表",
  492. columnProp: "needDate",
  493. headerAlign: "center",
  494. align: "center",
  495. columnLabel: "要求完工日期",
  496. columnWidth: 100,
  497. columnHidden: false,
  498. columnImage: false,
  499. columnSortable: true,
  500. sortLv: 0,
  501. status: true,
  502. fixed: false
  503. },
  504. {
  505. userId: this.$store.state.user.name,
  506. functionId: 5301,
  507. serialNumber: '5301OrderPartNo',
  508. tableId: "5301Order",
  509. tableName: "工单表",
  510. columnProp: "partNo",
  511. headerAlign: "center",
  512. align: "center",
  513. columnLabel: "产品编码",
  514. columnWidth: 100,
  515. columnHidden: false,
  516. columnImage: false,
  517. columnSortable: true,
  518. sortLv: 0,
  519. status: true,
  520. fixed: false
  521. },
  522. {
  523. userId: this.$store.state.user.name,
  524. functionId: 5301,
  525. serialNumber: '5301OrderCustomerName',
  526. tableId: "5301Order",
  527. tableName: "工单表",
  528. columnProp: "customerName",
  529. headerAlign: "center",
  530. align: "center",
  531. columnLabel: "客户名称",
  532. columnWidth: 80,
  533. columnHidden: false,
  534. columnImage: false,
  535. columnSortable: true,
  536. sortLv: 0,
  537. status: true,
  538. fixed: false
  539. },
  540. {
  541. userId: this.$store.state.user.name,
  542. functionId: 5301,
  543. serialNumber: '5301OrderCustPartNo',
  544. tableId: "5301Order",
  545. tableName: "工单表",
  546. columnProp: "custPartNo",
  547. headerAlign: "center",
  548. align: "center",
  549. columnLabel: "客户产品料号",
  550. columnWidth: 120,
  551. columnHidden: false,
  552. columnImage: false,
  553. columnSortable: true,
  554. sortLv: 0,
  555. status: true,
  556. fixed: false
  557. },
  558. {
  559. userId: this.$store.state.user.name,
  560. functionId: 5301,
  561. serialNumber: '5301OrderPartDesc',
  562. tableId: "5301Order",
  563. tableName: "工单表",
  564. columnProp: "partDesc",
  565. headerAlign: "center",
  566. align: "center",
  567. columnLabel: "产成品名称",
  568. columnWidth: 80,
  569. columnHidden: false,
  570. columnImage: false,
  571. columnSortable: false,
  572. sortLv: 0,
  573. status: true,
  574. fixed: false
  575. },
  576. {
  577. userId: this.$store.state.user.name,
  578. functionId: 5301,
  579. serialNumber: '5301OrderLotSize',
  580. tableId: "5301Order",
  581. tableName: "工单表",
  582. columnProp: "lotSize",
  583. headerAlign: "center",
  584. align: "center",
  585. columnLabel: "订单量",
  586. columnWidth: 80,
  587. columnHidden: false,
  588. columnImage: false,
  589. columnSortable: true,
  590. sortLv: 0,
  591. status: true,
  592. fixed: false
  593. },
  594. {
  595. userId: this.$store.state.user.name,
  596. functionId: 5301,
  597. serialNumber: '5301OrderQtyToSchedule',
  598. tableId: "5301Order",
  599. tableName: "工单表",
  600. columnProp: "qtyToSchedule",
  601. headerAlign: "center",
  602. align: "center",
  603. columnLabel: "待排产数量",
  604. columnWidth: 120,
  605. columnHidden: false,
  606. columnImage: false,
  607. columnSortable: true,
  608. sortLv: 0,
  609. status: true,
  610. fixed: false
  611. },
  612. {
  613. userId: this.$store.state.user.name,
  614. functionId: 5301,
  615. serialNumber: '5301OrderQtyScheduled',
  616. tableId: "5301Order",
  617. tableName: "工单表",
  618. columnProp: "qtyScheduled",
  619. headerAlign: "center",
  620. align: "center",
  621. columnLabel: "已排产数量",
  622. columnWidth: 120,
  623. columnHidden: false,
  624. columnImage: false,
  625. columnSortable: true,
  626. sortLv: 0,
  627. status: true,
  628. fixed: false
  629. },
  630. {
  631. userId: this.$store.state.user.name,
  632. functionId: 5301,
  633. serialNumber: '5301OrderQtyReported',
  634. tableId: "5301Order",
  635. tableName: "工单表",
  636. columnProp: "qtyReported",
  637. headerAlign: "center",
  638. align: "center",
  639. columnLabel: "已报工数量",
  640. columnWidth: 120,
  641. columnHidden: false,
  642. columnImage: false,
  643. columnSortable: true,
  644. sortLv: 0,
  645. status: true,
  646. fixed: false
  647. },
  648. {
  649. userId: this.$store.state.user.name,
  650. functionId: 5301,
  651. serialNumber: '5301OrderSpec',
  652. tableId: "5301Order",
  653. tableName: "工单表",
  654. columnProp: "spec",
  655. headerAlign: "center",
  656. align: "center",
  657. columnLabel: "规格型号",
  658. columnWidth: 80,
  659. columnHidden: false,
  660. columnImage: false,
  661. columnSortable: false,
  662. sortLv: 0,
  663. status: true,
  664. fixed: false
  665. },
  666. {
  667. userId: this.$store.state.user.name,
  668. functionId: 5301,
  669. serialNumber: '5301OrderSite',
  670. tableId: "5301Order",
  671. tableName: "工单表",
  672. columnProp: "site",
  673. headerAlign: "center",
  674. align: "center",
  675. columnLabel: "工厂编号",
  676. columnWidth: 80,
  677. columnHidden: false,
  678. columnImage: false,
  679. columnSortable: false,
  680. sortLv: 0,
  681. status: true,
  682. fixed: false
  683. },
  684. {
  685. userId: this.$store.state.user.name,
  686. functionId: 5301,
  687. serialNumber: '5301OrderWorkCenterNo',
  688. tableId: "5301Order",
  689. tableName: "工单表",
  690. columnProp: "workCenterNo",
  691. headerAlign: "center",
  692. align: "center",
  693. columnLabel: "加工中心",
  694. columnWidth: 100,
  695. columnHidden: false,
  696. columnImage: false,
  697. columnSortable: true,
  698. sortLv: 0,
  699. status: true,
  700. fixed: false
  701. },
  702. {
  703. userId: this.$store.state.user.name,
  704. functionId: 5301,
  705. serialNumber: '5301OrderNextItemNo',
  706. tableId: "5301Order",
  707. tableName: "工单表",
  708. columnProp: "nextItemNo",
  709. headerAlign: "center",
  710. align: "center",
  711. columnLabel: "下道工序",
  712. columnWidth: 100,
  713. columnHidden: false,
  714. columnImage: false,
  715. columnSortable: true,
  716. sortLv: 0,
  717. status: true,
  718. fixed: false
  719. },
  720. {
  721. userId: this.$store.state.user.name,
  722. functionId: 5301,
  723. serialNumber: '5301OrderNextItemDesc',
  724. tableId: "5301Order",
  725. tableName: "工单表",
  726. columnProp: "nextItemDesc",
  727. headerAlign: "center",
  728. align: "center",
  729. columnLabel: "下道工序名称",
  730. columnWidth: 80,
  731. columnHidden: false,
  732. columnImage: false,
  733. columnSortable: false,
  734. sortLv: 0,
  735. status: true,
  736. fixed: false
  737. },
  738. {
  739. userId: this.$store.state.user.name,
  740. functionId: 5301,
  741. serialNumber: '5301OrderNextScheduledFlag',
  742. tableId: "5301Order",
  743. tableName: "工单表",
  744. columnProp: "nextScheduledFlag",
  745. headerAlign: "center",
  746. align: "center",
  747. columnLabel: "下道工序已排产",
  748. columnWidth: 150,
  749. columnHidden: false,
  750. columnImage: false,
  751. columnSortable: true,
  752. sortLv: 0,
  753. status: true,
  754. fixed: false
  755. },
  756. {
  757. userId: this.$store.state.user.name,
  758. functionId: 5301,
  759. serialNumber: '5301OrderPreItemNo',
  760. tableId: "5301Order",
  761. tableName: "工单表",
  762. columnProp: "preItemNo",
  763. headerAlign: "center",
  764. align: "center",
  765. columnLabel: "上道工序",
  766. columnWidth: 80,
  767. columnHidden: false,
  768. columnImage: false,
  769. columnSortable: true,
  770. sortLv: 0,
  771. status: true,
  772. fixed: false
  773. },
  774. {
  775. userId: this.$store.state.user.name,
  776. functionId: 5301,
  777. serialNumber: '5301OrderPreItemDesc',
  778. tableId: "5301Order",
  779. tableName: "工单表",
  780. columnProp: "preItemDesc",
  781. headerAlign: "center",
  782. align: "center",
  783. columnLabel: "上道工序名称",
  784. columnWidth: 80,
  785. columnHidden: false,
  786. columnImage: false,
  787. columnSortable: false,
  788. sortLv: 0,
  789. status: true,
  790. fixed: false
  791. },
  792. {
  793. userId: this.$store.state.user.name,
  794. functionId: 5301,
  795. serialNumber: '5301OrderPreScheduledFlag',
  796. tableId: "5301Order",
  797. tableName: "工单表",
  798. columnProp: "preScheduledFlag",
  799. headerAlign: "center",
  800. align: "center",
  801. columnLabel: "上道工序已排产",
  802. columnWidth: 80,
  803. columnHidden: false,
  804. columnImage: false,
  805. columnSortable: false,
  806. sortLv: 0,
  807. status: true,
  808. fixed: false
  809. },
  810. {
  811. userId: this.$store.state.user.name,
  812. functionId: 5301,
  813. serialNumber: '5301OrderScheduledFlag',
  814. tableId: "5301Order",
  815. tableName: "工单表",
  816. columnProp: "scheduledFlag",
  817. headerAlign: "center",
  818. align: "center",
  819. columnLabel: "是否排产",
  820. columnWidth: 80,
  821. columnHidden: false,
  822. columnImage: false,
  823. columnSortable: true,
  824. sortLv: 0,
  825. status: true,
  826. fixed: false
  827. },
  828. {
  829. userId: this.$store.state.user.name,
  830. functionId: 5301,
  831. serialNumber: '5301OrderAvailResource',
  832. tableId: "5301Order",
  833. tableName: "工单表",
  834. columnProp: "availResource",
  835. headerAlign: "center",
  836. align: "center",
  837. columnLabel: "可用机台",
  838. columnWidth: 80,
  839. columnHidden: false,
  840. columnImage: false,
  841. columnSortable: false,
  842. sortLv: 0,
  843. status: true,
  844. fixed: false
  845. },
  846. {
  847. userId: this.$store.state.user.name,
  848. functionId: 5301,
  849. serialNumber: '5301OrderEnterDate',
  850. tableId: "5301Order",
  851. tableName: "工单表",
  852. columnProp: "enterDate",
  853. headerAlign: "center",
  854. align: "center",
  855. columnLabel: "录入日期",
  856. columnWidth: 125,
  857. columnHidden: false,
  858. columnImage: false,
  859. columnSortable: false,
  860. sortLv: 0,
  861. status: true,
  862. fixed: false
  863. },
  864. {
  865. userId: this.$store.state.user.name,
  866. functionId: 5301,
  867. serialNumber: '5301OrderScheduleToPlanTime',
  868. tableId: "5301Order",
  869. tableName: "工单表",
  870. columnProp: "scheduleToPlanTime",
  871. headerAlign: "center",
  872. align: "center",
  873. columnLabel: "计划时间",
  874. columnWidth: 80,
  875. columnHidden: false,
  876. columnImage: false,
  877. columnSortable: false,
  878. sortLv: 0,
  879. status: true,
  880. fixed: false
  881. },
  882. {
  883. userId: this.$store.state.user.name,
  884. functionId: 5301,
  885. serialNumber: '5301OrderMachRunFactor',
  886. tableId: "5301Order",
  887. tableName: "工单表",
  888. columnProp: "machRunFactor",
  889. headerAlign: "center",
  890. align: "center",
  891. columnLabel: "单位产出",
  892. columnWidth: 80,
  893. columnHidden: false,
  894. columnImage: false,
  895. columnSortable: false,
  896. sortLv: 0,
  897. status: true,
  898. fixed: false
  899. },
  900. {
  901. userId: this.$store.state.user.name,
  902. functionId: 5301,
  903. serialNumber: '5301OrderMachSetupTime',
  904. tableId: "5301Order",
  905. tableName: "工单表",
  906. columnProp: "machSetupTime",
  907. headerAlign: "center",
  908. align: "center",
  909. columnLabel: "调机时间",
  910. columnWidth: 80,
  911. columnHidden: false,
  912. columnImage: false,
  913. columnSortable: false,
  914. sortLv: 0,
  915. status: true,
  916. fixed: false
  917. },
  918. {
  919. userId: this.$store.state.user.name,
  920. functionId: 5301,
  921. serialNumber: '5301OrderFactorUnit',
  922. tableId: "5301Order",
  923. tableName: "工单表",
  924. columnProp: "factorUnit",
  925. headerAlign: "center",
  926. align: "center",
  927. columnLabel: "产出单位",
  928. columnWidth: 80,
  929. columnHidden: false,
  930. columnImage: false,
  931. columnSortable: false,
  932. sortLv: 0,
  933. status: true,
  934. fixed: false
  935. },
  936. {
  937. userId: this.$store.state.user.name,
  938. functionId: 5301,
  939. serialNumber: '5301OrderQtyScheduledPreOps',
  940. tableId: "5301Order",
  941. tableName: "工单表",
  942. columnProp: "qtyScheduledPreOps",
  943. headerAlign: "center",
  944. align: "center",
  945. columnLabel: "前道工序已排产数量",
  946. columnWidth: 80,
  947. columnHidden: false,
  948. columnImage: false,
  949. columnSortable: false,
  950. sortLv: 0,
  951. status: true,
  952. fixed: false
  953. },
  954. {
  955. userId: this.$store.state.user.name,
  956. functionId: 5301,
  957. serialNumber: '5301OrderQtyApprovedPreOps',
  958. tableId: "5301Order",
  959. tableName: "工单表",
  960. columnProp: "qtyApprovedPreOps",
  961. headerAlign: "center",
  962. align: "center",
  963. columnLabel: "前道工序已报合格数",
  964. columnWidth: 80,
  965. columnHidden: false,
  966. columnImage: false,
  967. columnSortable: false,
  968. sortLv: 0,
  969. status: true,
  970. fixed: false
  971. },
  972. {
  973. userId: this.$store.state.user.name,
  974. functionId: 5301,
  975. serialNumber: '5301OrderOriSOOrderNo',
  976. tableId: "5301Order",
  977. tableName: "工单表",
  978. columnProp: "oriSOOrderNo",
  979. headerAlign: "center",
  980. align: "center",
  981. columnLabel: "SAP参考号",
  982. columnWidth: 80,
  983. columnHidden: false,
  984. columnImage: false,
  985. columnSortable: false,
  986. sortLv: 0,
  987. status: true,
  988. fixed: false
  989. },
  990. {
  991. userId: this.$store.state.user.name,
  992. functionId: 5301,
  993. serialNumber: '5301OrderEficiency',
  994. tableId: "5301Order",
  995. tableName: "工单表",
  996. columnProp: "efficiency",
  997. headerAlign: "center",
  998. align: "center",
  999. columnLabel: "效率",
  1000. columnWidth: 80,
  1001. columnHidden: false,
  1002. columnImage: false,
  1003. columnSortable: false,
  1004. sortLv: 0,
  1005. status: true,
  1006. fixed: false
  1007. },
  1008. {
  1009. userId: this.$store.state.user.name,
  1010. functionId: 5301,
  1011. serialNumber: '5301OrderCostRollUpFlag',
  1012. tableId: "5301Order",
  1013. tableName: "工单表",
  1014. columnProp: "costRollUpFlag",
  1015. headerAlign: "center",
  1016. align: "center",
  1017. columnLabel: "已排料",
  1018. columnWidth: 80,
  1019. columnHidden: false,
  1020. columnImage: false,
  1021. columnSortable: false,
  1022. sortLv: 0,
  1023. status: true,
  1024. fixed: false
  1025. },
  1026. {
  1027. userId: this.$store.state.user.name,
  1028. functionId: 5301,
  1029. serialNumber: '5301OrderManualFlag',
  1030. tableId: "5301Order",
  1031. tableName: "工单表",
  1032. columnProp: "manualFlag",
  1033. headerAlign: "center",
  1034. align: "center",
  1035. columnLabel: "刀模已发",
  1036. columnWidth: 80,
  1037. columnHidden: false,
  1038. columnImage: false,
  1039. columnSortable: false,
  1040. sortLv: 0,
  1041. status: true,
  1042. fixed: false
  1043. },
  1044. {
  1045. userId: this.$store.state.user.name,
  1046. functionId: 5301,
  1047. serialNumber: '5301OrderRepairSOFlag',
  1048. tableId: "5301Order",
  1049. tableName: "工单表",
  1050. columnProp: "repairSOFlag",
  1051. headerAlign: "center",
  1052. align: "center",
  1053. columnLabel: "印版已发",
  1054. columnWidth: 80,
  1055. columnHidden: false,
  1056. columnImage: false,
  1057. columnSortable: false,
  1058. sortLv: 0,
  1059. status: true,
  1060. fixed: false
  1061. },
  1062. ],
  1063. calendarOutList: [],
  1064. primaryMenuButton: {
  1065. shopOrderFlag: true,
  1066. partStockFlag: true,
  1067. },
  1068. queryTable: {
  1069. userId: this.$store.state.user.name,
  1070. functionId: this.$route.meta.menuId,
  1071. tableId: "5301Order",
  1072. languageCode: this.$i18n.locale
  1073. },
  1074. // 用户table 查询参数
  1075. queryTableUser: {
  1076. userId: this.$store.state.user.name,
  1077. functionId: this.$route.meta.menuId,
  1078. tableId: "5301Order",
  1079. status: true,
  1080. languageCode: this.$i18n.locale
  1081. },
  1082. // 用户table 配置集合
  1083. userColumnList: [],
  1084. buttons: {
  1085. refreshButton: '刷新',
  1086. primaryMenu: '主菜单',
  1087. shopOrder: '生产订单',
  1088. viewPartStock: '查看物料库存',
  1089. settingTable: '设置列表',
  1090. defaultTable: '设置默认配置',
  1091. scheduleBatch: '批量排产',
  1092. },
  1093. buttonList: [
  1094. {
  1095. functionId: functionId,
  1096. languageValue: '刷新',
  1097. objectId: 'refreshButton',
  1098. objectType: 'button',
  1099. tableId: '*'
  1100. }, {
  1101. functionId: functionId,
  1102. languageValue: '主菜单',
  1103. objectId: 'primaryMenu',
  1104. objectType: 'button',
  1105. tableId: '*'
  1106. }, {
  1107. functionId: functionId,
  1108. languageValue: '生产订单',
  1109. objectId: 'shopOrder',
  1110. objectType: 'button',
  1111. tableId: '*'
  1112. }, {
  1113. functionId: functionId,
  1114. languageValue: '查看物料库存',
  1115. objectId: 'viewPartStock',
  1116. objectType: 'button',
  1117. tableId: '*'
  1118. }, {
  1119. functionId: functionId,
  1120. languageValue: '设置列表',
  1121. objectId: 'settingTable',
  1122. objectType: 'button',
  1123. tableId: '*'
  1124. }, {
  1125. functionId: functionId,
  1126. languageValue: '设置默认配置',
  1127. objectId: 'defaultTable',
  1128. objectType: 'button',
  1129. tableId: '*'
  1130. },
  1131. ],
  1132. queryButton: {
  1133. functionId: functionId,
  1134. table_id: '*',
  1135. languageCode: this.$i18n.locale,
  1136. objectType: 'button'
  1137. },
  1138. labels: {
  1139. enterDate: '录入日期:',
  1140. needDate: '要求完工日期:',
  1141. orderNo: '生产订单号:',
  1142. siteNo: '工厂编号:',
  1143. resourceId: '机台编号:',
  1144. workCenterNo: '加工中心编码:',
  1145. sortNo: '排序',
  1146. sortNeedDate: '要求完工日期',
  1147. sortOrderNo: '订单号',
  1148. sortPartNo: '产品编码',
  1149. primaryRecord: '主记录',
  1150. pleaseSelectOrder: '请选择工单!',
  1151. scheduleBatchWarning: '选中的工单中,包含未选择的机台的工单!',
  1152. scheduledDate: '排产日期',
  1153. pleaseEnterThisScheduleQty: '请输入本次排产数量!',
  1154. thisScheduleQtyMustMoreThanZero: '本次排产数量必须大于零!',
  1155. pleaseSelectAvailableResourceId: '请选择可用机台!',
  1156. scheduleQtyMoreThanZeroWaitScheduleQty: '排产数量超过本次待排产数量!',
  1157. },
  1158. labelsList: [
  1159. {
  1160. functionId: functionId,
  1161. languageValue: '录入日期:',
  1162. objectId: 'enterDate',
  1163. objectType: 'label',
  1164. tableId: '*'
  1165. }, {
  1166. functionId: functionId,
  1167. languageValue: '要求完工日期:',
  1168. objectId: 'needDate',
  1169. objectType: 'label',
  1170. tableId: '*'
  1171. }, {
  1172. functionId: functionId,
  1173. languageValue: '生产订单号:',
  1174. objectId: 'orderNo',
  1175. objectType: 'label',
  1176. tableId: '*'
  1177. }, {
  1178. functionId: functionId,
  1179. languageValue: '工厂编号:',
  1180. objectId: 'siteNo',
  1181. objectType: 'label',
  1182. tableId: '*'
  1183. }, {
  1184. functionId: functionId,
  1185. languageValue: '机台编码:',
  1186. objectId: 'resourceId',
  1187. objectType: 'label',
  1188. tableId: '*'
  1189. }, {
  1190. functionId: functionId,
  1191. languageValue: '加工中心编码:',
  1192. objectId: 'workCenterNo',
  1193. objectType: 'label',
  1194. tableId: '*'
  1195. }, {
  1196. functionId: functionId,
  1197. languageValue: '排序',
  1198. objectId: 'sortNo',
  1199. objectType: 'label',
  1200. tableId: '*'
  1201. }, {
  1202. functionId: functionId,
  1203. languageValue: '要求完工日期',
  1204. objectId: 'sortNeedDate',
  1205. objectType: 'label',
  1206. tableId: '*'
  1207. }, {
  1208. functionId: functionId,
  1209. languageValue: '订单号',
  1210. objectId: 'sortOrderNo',
  1211. objectType: 'label',
  1212. tableId: '*'
  1213. }, {
  1214. functionId: functionId,
  1215. languageValue: '产品编码',
  1216. objectId: 'sortPartNo',
  1217. objectType: 'label',
  1218. tableId: '*'
  1219. }, {
  1220. functionId: functionId,
  1221. languageValue: '主记录',
  1222. objectId: 'primaryRecord',
  1223. objectType: 'label',
  1224. tableId: '*'
  1225. }, {
  1226. functionId: functionId,
  1227. languageValue: '请选择工单!',
  1228. objectId: 'pleaseSelectOrder',
  1229. objectType: 'label',
  1230. tableId: '*'
  1231. },
  1232. ],
  1233. queryLabel: {
  1234. functionId: functionId,
  1235. table_id: '*',
  1236. languageCode: this.$i18n.locale,
  1237. objectType: 'label'
  1238. },
  1239. }
  1240. },
  1241. /*组件*/
  1242. components: {
  1243. Chooselist,/*列表的组件*/
  1244. comPartStock,/*展示物料库存的组件*/
  1245. comScheduleOrderExpand,/*扩展排产 处理多加工中心排产*/
  1246. column,/*动态列*/
  1247. },
  1248. mounted() {
  1249. this.$nextTick(() => {
  1250. this.height = window.innerHeight - 205;
  1251. })
  1252. },
  1253. methods: {
  1254. // 开始排产
  1255. batchScheduleOrderWithExpandStart() {
  1256. let newItemList = []
  1257. for (let i = 0; i < this.dataListSelections.length; i++) {
  1258. let item = this.dataListSelections[i]
  1259. let qtyToSchedule = item.qtyToSchedule;
  1260. if (qtyToSchedule == null || qtyToSchedule == '') {
  1261. this.$message.error(this.labels.pleaseEnterThisScheduleQty)
  1262. return false;
  1263. }
  1264. //判断数量是否超限
  1265. if (item.scheduledQty <= 0) {
  1266. this.$message.error(this.labels.thisScheduleQtyMustMoreThanZero)
  1267. return false;
  1268. }
  1269. //验证可用机台
  1270. let resourceId = item.resourceId;
  1271. if (resourceId == null || resourceId == '' || resourceId == '请选择') {
  1272. this.$message.error(this.labels.pleaseSelectAvailableResourceId)
  1273. return false;
  1274. }
  1275. let scheduledQty = parseFloat(item.scheduledQty);
  1276. if (qtyToSchedule > scheduledQty) {
  1277. this.$message.error(this.labels.scheduleQtyMoreThanZeroWaitScheduleQty)
  1278. return false;
  1279. }
  1280. let newItem = {
  1281. checkFlag: true,
  1282. itemNo: item.itemNo,
  1283. orderNo: item.orderNo,
  1284. qtyToSchedule: item.scheduledQty,
  1285. resourceId: item.resourceId,
  1286. scheduleDate: this.scheduleDate,
  1287. scheduleTime: this.scheduleTime,
  1288. scheduledQty: item.qtyToSchedule,
  1289. site: item.site,
  1290. specifiedTime: this.specifiedTime,
  1291. username: this.$store.state.user.name,
  1292. workCenterNo: item.workCenterNo
  1293. }
  1294. newItemList.push(newItem)
  1295. }
  1296. batchScheduleOrderWithExpand(newItemList).then(({data}) => {
  1297. if (data.code == 200) {
  1298. this.$message.success(data.msg)
  1299. this.scheduleVisible = false
  1300. this.getShopOrderList()
  1301. } else if (data.code == 201) {
  1302. this.$message.warning(data.msg.substring(0, data.msg.indexOf(',')) + "!")
  1303. } else if (data.code == 500) {
  1304. this.$message.error(data.msg)
  1305. }
  1306. })
  1307. },
  1308. // scheduleBatchDialog
  1309. scheduleBatchDialog() {
  1310. if (this.dataListSelections.find(item => item.resourceId == '' || item.resourceId == null)) {
  1311. this.$message.warning(this.labels.scheduleBatchWarning)
  1312. return
  1313. }
  1314. this.scheduleVisible = true
  1315. },
  1316. // 选中记录
  1317. handleSelectionChange(val) {
  1318. this.dataListSelections = val
  1319. },
  1320. /*刷新页面table*/
  1321. refreshPageTables() {
  1322. this.getShopOrderList();
  1323. },
  1324. /*获取工单信息*/
  1325. getShopOrderList() {
  1326. getShopOrderList(this.pageData).then(({data}) => {
  1327. if (this.pageData.resourceId) {
  1328. this.shopOrderList = data.rows.map(item => {
  1329. item.resourceId = this.pageData.resourceId
  1330. item.resourceList = item.resourceList.split(';').map(resItem => {
  1331. let newItem = {
  1332. resourceId: resItem.split(':')[0],
  1333. resourceDesc: resItem.split(':')[1]
  1334. }
  1335. return newItem;
  1336. })
  1337. return item;
  1338. })
  1339. } else {
  1340. this.shopOrderList = data.rows.map(item => {
  1341. item.resourceList = item.resourceList.split(';').map(resItem => {
  1342. let newItem = {
  1343. resourceId: resItem.split(':')[0],
  1344. resourceDesc: resItem.split(':')[1]
  1345. }
  1346. return newItem;
  1347. })
  1348. return item;
  1349. })
  1350. }
  1351. //清空已经选好的行数据
  1352. this.currentRoutingRow = null;
  1353. })
  1354. },
  1355. /*列表方法的回调*/
  1356. getBaseData(val) {
  1357. if (this.tagNo === 88) {
  1358. this.pageData.resourceId = val.ResourceID;
  1359. } else if (this.tagNo == 24) {
  1360. this.pageData.workCenterNo = val.WorkCenterNo;
  1361. }
  1362. },
  1363. // 获取基础数据列表
  1364. getBaseList(val) {
  1365. this.tagNo = val
  1366. this.$nextTick(() => {
  1367. let strVal = "";
  1368. if (val === 88) {
  1369. strVal = this.pageData.resourceId;
  1370. } else if (val === 24) {
  1371. strVal = this.pageData.workCenterNo;
  1372. }
  1373. this.$refs.baseList.init(val, strVal, " AND WorkCenterNo <> 'FQC'")
  1374. })
  1375. },
  1376. /*区分不同的菜单 调用不同的方法 调用不同的方法*/
  1377. orderHandleCommand(menuName) {
  1378. //区分是哪一个方法调用
  1379. if ('生产工单' === menuName) {
  1380. //判断是否选择好了工单
  1381. if (this.currentRoutingRow == null || this.currentRoutingRow == {}) {
  1382. //重置按钮
  1383. this.primaryMenuButton.shopOrderFlag = true;
  1384. //返回错误
  1385. this.$message.error(this.labels.pleaseSelectOrder);
  1386. return false;
  1387. }
  1388. this.$router.push({
  1389. path: '/shopOrder-shopOrder/shopOrder',
  1390. query: {
  1391. site: this.$store.state.user.site,
  1392. order: this.currentRoutingRow.orderNo,
  1393. user: this.$store.state.user.name
  1394. }
  1395. })
  1396. } else if ('查看物料库存' === menuName) {
  1397. //判断是否选择好了工单
  1398. if (this.currentRoutingRow == null || this.currentRoutingRow == {}) {
  1399. //重置按钮
  1400. this.primaryMenuButton.partStockFlag = true;
  1401. //返回错误
  1402. this.$message.error(this.labels.pleaseSelectOrder);
  1403. return false;
  1404. }
  1405. let tempData = {'site': this.pageData.site, 'orderNo': this.currentRoutingRow.orderNo};
  1406. //打开组件 需要的数据 展示需要的数据
  1407. this.$nextTick(() => {
  1408. this.showPartStockFlag = true;
  1409. this.$refs.comPartStock.init(tempData);
  1410. })
  1411. }
  1412. },
  1413. /*获取当前的机台对应的加工中心*/
  1414. getCurrentWorkCenterNoByResourceId() {
  1415. getCurrentWorkCenterNoByResourceId(this.pageData).then(({data}) => {
  1416. //区分是否成功
  1417. if (data.code == 500) {
  1418. //this.$message.error(data.msg);
  1419. } else {
  1420. this.pageData.workCenterNo = data.workCenterNo;
  1421. }
  1422. this.pageData.workCenterNo = data.workCenterNo;
  1423. });
  1424. },
  1425. /*设置当前行的下标*/
  1426. routingRowClassName({row, rowIndex}) {
  1427. row.index = rowIndex;
  1428. //判断当前行颜色参数
  1429. if (row.qtyScheduled > 0) {
  1430. return 'customer-row-gray';
  1431. }
  1432. },
  1433. /*设置工艺的行*/
  1434. setCurrentRoutingRow(row, column, event) {
  1435. this.currentRoutingRow = row;
  1436. },
  1437. /*开始排产的操作*/
  1438. startScheduleOperation(row, $event, column) {
  1439. //刷新当前派工单的数据 打开当前工单+工序的排产的
  1440. this.startScheduleOrderModal(row);
  1441. },
  1442. /*刷新当前的页面的显示数据*/
  1443. startScheduleOrderModal(orderRow) {
  1444. //刷新排产的数量
  1445. this.$nextTick(() => {
  1446. this.showScheduleOrderFlag = true;
  1447. this.$refs.comScheduleOrderExpand.init(orderRow);
  1448. });
  1449. },
  1450. /*判断主菜单的样式*/
  1451. controlPrimaryMenuBun() {
  1452. //没有选择行 所有的按钮都是灰色
  1453. if (this.currentRoutingRow == null || this.currentRoutingRow == {}) {
  1454. this.primaryMenuButton.shopOrderFlag = true;
  1455. this.primaryMenuButton.partStockFlag = true;
  1456. } else {
  1457. // 判断是否具有该页面权限
  1458. let menList = JSON.parse(sessionStorage.getItem('dynamicMenuRoutes') || '[]')
  1459. .filter(item => item.path == 'shopOrder-shopOrder/shopOrder')
  1460. if (menList.length > 0) {
  1461. this.primaryMenuButton.shopOrderFlag = false;
  1462. }
  1463. this.primaryMenuButton.partStockFlag = false;
  1464. }
  1465. },
  1466. // 打开页面设置
  1467. userSetting() {
  1468. this.visible = true;
  1469. let queryTable = {
  1470. userId: this.$store.state.user.name,
  1471. functionId: this.$route.meta.menuId,
  1472. tableId: "5301Order",
  1473. languageCode: this.$i18n.locale
  1474. }
  1475. this.$nextTick(() => {
  1476. this.$refs.column.init(queryTable);
  1477. });
  1478. },
  1479. // 获取 用户保存的 格式列
  1480. getTableUserColumn() {
  1481. getTableUserListLanguage(this.queryTableUser).then(({data}) => {
  1482. if (data.rows.length > 0) {
  1483. //this.columnList = []
  1484. this.columnList = data.rows
  1485. } else {
  1486. this.getColumnList()
  1487. }
  1488. })
  1489. },
  1490. // 保存 默认配置 列
  1491. async saveColumnList() {
  1492. // 删除所有的该页面下保存的数据
  1493. if (this.userColumnList) {
  1494. //删除 user自定义的数据
  1495. await removerUser(this.queryTable)
  1496. }
  1497. // 删除默认配置
  1498. await removerDefault(this.queryTable)
  1499. // 保存页面 table属性
  1500. let sumColumnList = this.columnList;//concat(this.columnList1);
  1501. sumColumnList = sumColumnList.map(item => {
  1502. return item = {
  1503. tableId: item.tableId,
  1504. tableName: item.tableName,
  1505. columnProp: item.columnProp,
  1506. columnLabel: item.columnLabel,
  1507. columnHidden: false,
  1508. columnImage: false,
  1509. columnSortable: item.columnSortable,
  1510. columnWidth: item.columnWidth,
  1511. format: item.format,
  1512. functionId: this.$route.meta.menuId,
  1513. sortLv: item.sortLv,
  1514. status: true,
  1515. fixed: item.fixed,
  1516. serialNumber: item.serialNumber,
  1517. columnType: item.columnType,
  1518. align: item.align
  1519. }
  1520. })
  1521. await saveTableDefaultList(sumColumnList)
  1522. // 保存页面 button label title 属性
  1523. /* let buttons = this.buttonList.map(item => {
  1524. return item = {
  1525. functionId: this.$route.meta.menuId,
  1526. languageValue: item.languageValue,
  1527. objectId: item.objectId,
  1528. objectType: item.objectType,
  1529. tableId: item.tableId
  1530. }
  1531. })
  1532. await saveButtonList(buttons)*/
  1533. this.getFunctionButtonList()
  1534. this.getColumnList()
  1535. },
  1536. // 获取 tableDefault 列
  1537. getColumnList() {
  1538. getTableDefaultListLanguage(this.queryTable).then(({data}) => {
  1539. if (!data.rows.length == 0) {
  1540. // this.showDefault = false
  1541. this.columnList = data.rows
  1542. } else {
  1543. // this.showDefault = true
  1544. }
  1545. })
  1546. },
  1547. //获取按钮的权限数据
  1548. getButtonAuthData() {
  1549. let updateFlag = this.isAuth(this.menuId + ":revise");
  1550. let fullControFlag = this.isAuth(this.menuId + ":fullContro");
  1551. let deleteFlag = this.isAuth(this.menuId + ":remove");
  1552. //处理页面的权限数据
  1553. this.authEdit = !updateFlag || !fullControFlag;
  1554. this.authAdd = !fullControFlag;
  1555. this.authDelete = !deleteFlag;
  1556. },
  1557. // 保存 默认配置 列
  1558. async saveMultiLanguage() {
  1559. // 保存页面 button label title 属性
  1560. let buttons = this.buttonList;
  1561. let labels = this.labelsList;
  1562. await saveButtonList(buttons)
  1563. await saveButtonList(labels)
  1564. },
  1565. //获取多语言的信息
  1566. getMultiLanguageList() {
  1567. //首先查询当前按钮的多语言
  1568. searchFunctionButtonList(this.queryButton).then(({data}) => {
  1569. if (data && data.code == 0) {
  1570. this.buttons = data.data
  1571. } else {
  1572. // saveButtonList(this.buttonList).then(({data}) => {
  1573. // })
  1574. }
  1575. });
  1576. //其次查询当前标签的多语言
  1577. searchFunctionButtonList(this.queryLabel).then(({data}) => {
  1578. if (data && data.code == 0) {
  1579. this.labels = data.data
  1580. } else {
  1581. // saveButtonList(this.buttonList).then(({data}) => {
  1582. // })
  1583. }
  1584. });
  1585. },
  1586. },
  1587. created() {
  1588. //查询工单的数据
  1589. this.getShopOrderList();
  1590. //初始化动态的表头
  1591. this.getTableUserColumn();
  1592. //获取按钮的权限
  1593. this.getButtonAuthData();
  1594. //判断是否启用多语言
  1595. this.getMultiLanguageList(); //刷新多语言的信息
  1596. },
  1597. /*利用监听器处理大小写*/
  1598. watch: {
  1599. pageData: {
  1600. deep: true,
  1601. handler: function (newV, oldV) {
  1602. this.pageData.resourceId = this.pageData.resourceId.toUpperCase();
  1603. this.pageData.workCenterNo = this.pageData.workCenterNo.toUpperCase();
  1604. }
  1605. }
  1606. },
  1607. }
  1608. </script>
  1609. <!--当前页面的标签样式-->
  1610. <style scoped lang="scss">
  1611. /*针对el-card*/
  1612. .customer-card .el-form-item__content {
  1613. margin-top: -15px;
  1614. }
  1615. .customer-card .el-form-item {
  1616. height: 22px;
  1617. }
  1618. .customer-border .el-form-item__content {
  1619. margin-top: -30px;
  1620. }
  1621. /*全局年与日类型 宽度*/
  1622. div.el-time-width {
  1623. width: 110px !important;
  1624. }
  1625. /* 全局时间右边框*/
  1626. .customer-css input.el-input__inner {
  1627. height: 22px !important;
  1628. padding-right: 0px !important;
  1629. }
  1630. /* 控制el-card标签的数据*/
  1631. div.customer-el-card {
  1632. margin-left: 110px;
  1633. margin-top: -15px;
  1634. height: 20px;
  1635. width: 60px;
  1636. }
  1637. /* 颜色控制 */
  1638. div.customer-el-card-pink {
  1639. background: #FF00FF;
  1640. }
  1641. div.customer-el-card-orange {
  1642. background: #FFD700;
  1643. }
  1644. div.customer-el-card-blue {
  1645. background: #0000CD;
  1646. }
  1647. /*清掉样式*/
  1648. .el-radio + .el-radio {
  1649. margin-left: 0px;
  1650. }
  1651. /*当前按钮的通用样式*/
  1652. .customer-css .customer-bun-mid {
  1653. width: 60px;
  1654. text-align: center;
  1655. }
  1656. .customer-css .customer-bun-min {
  1657. width: 50px;
  1658. text-align: center;
  1659. }
  1660. .customer-css .customer-bun-max {
  1661. width: 80px;
  1662. text-align: center;
  1663. }
  1664. /*当前按钮的通用样式*/
  1665. .customer-css .el-button--medium {
  1666. padding: 5px 5px;
  1667. }
  1668. /*灰色的表格行背景颜色*/
  1669. .customer-css /deep/ tr.customer-row-gray:hover {
  1670. background: #7e819e;
  1671. }
  1672. /*灰色的表格行背景颜色*/
  1673. .customer-css /deep/ tr.customer-row-gray > td {
  1674. background: #7e819e;
  1675. }
  1676. /*去掉悬浮的样式*/
  1677. /*.customer-css /deep/ tr:hover > td{
  1678. background-color: transparent !important;
  1679. }
  1680. .customer-css /deep/ tr.hover-row.current-row > td{
  1681. background-color: transparent !important;
  1682. }
  1683. .customer-css /deep/ tr.hover-row > td{
  1684. background-color: transparent !important;
  1685. }*/
  1686. /*添加主菜单和明细菜单的样式*/
  1687. .customer-css .customer-dropdown .el-button--primary {
  1688. padding: 2px;
  1689. font-size: 12px;
  1690. }
  1691. /*设置间距*/
  1692. .el-dropdown-menu /deep/ li.customer-li {
  1693. font-size: 12px;
  1694. line-height: 16px;
  1695. padding: 4px 8px;
  1696. }
  1697. .el-input /deep/ .el-icon-time {
  1698. display: none;
  1699. }
  1700. /*控制上下间距*/
  1701. hr {
  1702. margin-top: 0px;
  1703. }
  1704. /deep/ .el-table .cell {
  1705. line-height: 20px;
  1706. font-size: 12px;
  1707. height: 20px;
  1708. }
  1709. </style>