乐天mes前端
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.

1409 lines
46 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
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
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
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
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
  1. <template>
  2. <div class="mod-config">
  3. <fieldset class="customer-field" style="width: 825px; padding: 0.35em 0.75em 0.425em;" >
  4. <legend>查询条件</legend>
  5. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: -2px;" >
  6. <el-form-item label="订单号">
  7. <el-input v-model="searchData.orderNo" style="width: 120px"></el-input>
  8. </el-form-item>
  9. <el-form-item label="要求完工日期">
  10. <el-date-picker
  11. style="width: 120px"
  12. v-model="searchData.date1"
  13. type="date"
  14. value-format="yyyy-MM-dd"
  15. placeholder="选择日期">
  16. </el-date-picker>
  17. </el-form-item>
  18. <el-form-item label="至">
  19. <el-date-picker
  20. style="width: 120px"
  21. v-model="searchData.date2"
  22. type="date"
  23. value-format="yyyy-MM-dd"
  24. placeholder="选择日期">
  25. </el-date-picker>
  26. </el-form-item>
  27. <el-form-item label="产品编码">
  28. <el-input v-model="searchData.partNo" style="width: 120px"></el-input>
  29. </el-form-item>
  30. <el-form-item label="录入日期">
  31. <el-date-picker
  32. style="width: 120px"
  33. v-model="searchData.date3"
  34. type="date"
  35. value-format="yyyy-MM-dd"
  36. placeholder="选择日期">
  37. </el-date-picker>
  38. </el-form-item>
  39. <el-form-item label="至">
  40. <el-date-picker
  41. style="width: 120px"
  42. v-model="searchData.date4"
  43. type="date"
  44. value-format="yyyy-MM-dd"
  45. placeholder="选择日期">
  46. </el-date-picker>
  47. </el-form-item>
  48. </el-form>
  49. </fieldset>
  50. <!-- 排序规则 -->
  51. <fieldset class="customer-field" style="margin-left: 680px; margin-top: 0px; width: 135px;height: 108px" >
  52. <legend>排序</legend><br>
  53. <el-form :inline="true" style="margin-top: -10px; margin-bottom: 15px;" label-position="top" label-width="100px" >
  54. <el-form-item :label="''" style="margin-bottom: 5px;margin-top: 8px">
  55. <el-radio-group v-model="searchData.sortField">
  56. <el-radio label="order by needDate">要求完工日期</el-radio>
  57. <el-radio label="order by orderNo">订单号</el-radio>
  58. <el-radio label="order by partNo">产品编码</el-radio>
  59. </el-radio-group>
  60. </el-form-item>
  61. </el-form>
  62. </fieldset>
  63. <fieldset class="customer-field" style="width: 450px; padding: 0.35em 0.75em 0.425em;margin-top: -107px;" >
  64. <legend>排产信息</legend>
  65. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: -2px;" >
  66. <el-form-item label="工厂编号">
  67. <el-input v-model="searchData.site" style="width: 120px"></el-input>
  68. </el-form-item>
  69. <el-form-item label="加工中心">
  70. <el-input v-model="searchData.workCenterNo" disabled style="width: 120px"></el-input>
  71. </el-form-item>
  72. <el-form-item >
  73. <span slot="label" style="" @click="getBaseList(88,1)"><a herf="#">机台</a></span>
  74. <el-input v-model="searchData.resourceId" style="width: 120px"></el-input>
  75. </el-form-item>
  76. </el-form>
  77. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: -2px;" >
  78. <el-form-item label="排产日期">
  79. <el-date-picker
  80. style="width: 120px"
  81. v-model="searchData.scheduleDate"
  82. type="date"
  83. value-format="yyyy-MM-dd"
  84. @change="getTodayShiftNo()"
  85. placeholder="选择日期">
  86. </el-date-picker>
  87. </el-form-item>
  88. <el-form-item label="班次">
  89. <el-select v-model="searchData.shiftNo" style="width: 105px"
  90. placeholder="请选择">
  91. <el-option
  92. v-for="(item,index) in shiftNoList"
  93. :key="index"
  94. :label="item.shiftno+'('+item.shiftdesc+')'"
  95. :value="item.shiftno"
  96. >
  97. </el-option>
  98. </el-select>
  99. </el-form-item>
  100. </el-form>
  101. </fieldset>
  102. <!-- 记录示意图 -->
  103. <fieldset style="margin-left: 460px; margin-top: -108px; width: 180px;height: 108px">
  104. <legend>记录示意图</legend>
  105. <el-form :inline="true" label-position="top" label-width="100px" class="customer-card">
  106. <el-form-item :label="'已关闭,已达数量'">
  107. <el-card class="customer-el-card customer-el-card-pink"></el-card>
  108. </el-form-item>
  109. <el-form-item :label="'已关闭,未达数量'">
  110. <el-card class="customer-el-card customer-el-card-orange"></el-card>
  111. </el-form-item>
  112. <el-form-item :label="'未关闭,未达数量'">
  113. <el-card class="customer-el-card customer-el-card-blue"></el-card>
  114. </el-form-item>
  115. </el-form>
  116. </fieldset>
  117. <div style="margin-top: -170px;margin-left: 830px;">
  118. <el-table
  119. height="171"
  120. :data="calendarDateTypeShiftData"
  121. border
  122. style="width: 100%">
  123. <el-table-column
  124. prop="scheduleDate"
  125. header-align="center"
  126. align="left"
  127. min-width="50"
  128. label="日期">
  129. </el-table-column>
  130. <el-table-column
  131. prop="info"
  132. header-align="center"
  133. align="left"
  134. min-width="200"
  135. label="休息时间览表">
  136. </el-table-column>
  137. </el-table>
  138. </div>
  139. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 3px;margin-left: 2px" >
  140. <el-button type="primary" @click="searchAllData()">查询</el-button>
  141. <!-- <el-button type="primary" @click="rescheduled()">重新排产</el-button>-->
  142. <el-button type="primary" @click="changeModal()">修改计划顺序</el-button>
  143. </el-form>
  144. <div class="mainTable">
  145. <el-table
  146. :height="height"
  147. :data="ShopOrderTableData"
  148. @row-click="setCurrentRoutingRow"
  149. :row-class-name="routingRowClassName"
  150. @row-dblclick="startScheduleOperation"
  151. border
  152. style="width: 100%">
  153. <el-table-column
  154. prop=""
  155. header-align="center"
  156. align="center"
  157. width="70"
  158. label="操作">
  159. <template slot-scope="scope" class="foo_container">
  160. <a type="text" size="small" @click="scheduledModal(scope.row)">多日排产</a>
  161. </template>
  162. </el-table-column>
  163. <el-table-column
  164. prop="orderNo"
  165. header-align="center"
  166. align="left"
  167. min-width="100"
  168. label="订单号">
  169. </el-table-column>
  170. <el-table-column
  171. prop="itemNo"
  172. header-align="center"
  173. align="left"
  174. min-width="60"
  175. label="工序号">
  176. </el-table-column>
  177. <el-table-column
  178. prop="itemDesc"
  179. header-align="center"
  180. align="left"
  181. min-width="200"
  182. label="工序名称">
  183. </el-table-column>
  184. <el-table-column
  185. prop="needDate"
  186. header-align="center"
  187. align="left"
  188. min-width="100"
  189. label="要求完成日期">
  190. </el-table-column>
  191. <el-table-column
  192. prop="partNo"
  193. header-align="center"
  194. align="left"
  195. min-width="100"
  196. label="产品编码">
  197. </el-table-column>
  198. <el-table-column
  199. prop="customerName"
  200. header-align="center"
  201. align="left"
  202. min-width="100"
  203. label="客户名称">
  204. </el-table-column>
  205. <el-table-column
  206. prop="custPartNo"
  207. header-align="center"
  208. align="left"
  209. min-width="100"
  210. label="客户产品料号">
  211. </el-table-column>
  212. <el-table-column
  213. prop="partDesc"
  214. header-align="center"
  215. align="left"
  216. min-width="100"
  217. label="产成品名称">
  218. </el-table-column>
  219. <el-table-column
  220. prop="lotSize"
  221. header-align="center"
  222. align="right"
  223. min-width="80"
  224. label="订单量">
  225. </el-table-column>
  226. <el-table-column
  227. prop="qtyToSchedule"
  228. header-align="center"
  229. align="right"
  230. min-width="80"
  231. label="待排产数量">
  232. </el-table-column>
  233. <el-table-column
  234. prop="qtyScheduled"
  235. header-align="center"
  236. align="right"
  237. min-width="80"
  238. label="已排产数量">
  239. </el-table-column>
  240. <el-table-column
  241. prop="qtyReported"
  242. header-align="center"
  243. align="right"
  244. min-width="80"
  245. label="已报工数量">
  246. </el-table-column>
  247. <el-table-column
  248. prop="spec"
  249. header-align="center"
  250. align="left"
  251. min-width="100"
  252. label="规格型号">
  253. </el-table-column>
  254. <el-table-column
  255. prop="site"
  256. header-align="center"
  257. align="left"
  258. min-width="80"
  259. label="工厂编号">
  260. </el-table-column>
  261. <el-table-column
  262. prop="workCenterNo"
  263. header-align="center"
  264. align="left"
  265. min-width="80"
  266. label="加工中心">
  267. </el-table-column>
  268. <el-table-column
  269. prop="scheduledFlag"
  270. header-align="center"
  271. align="left"
  272. min-width="80"
  273. label="是否排产">
  274. </el-table-column>
  275. <el-table-column
  276. prop="availResource"
  277. header-align="center"
  278. align="left"
  279. min-width="80"
  280. label="可用机台">
  281. </el-table-column>
  282. <el-table-column
  283. prop="enterDate"
  284. header-align="center"
  285. align="left"
  286. min-width="100"
  287. label="录入日期">
  288. </el-table-column>
  289. <el-table-column
  290. prop="machRunFactor"
  291. header-align="center"
  292. align="right"
  293. min-width="80"
  294. label="单位产出">
  295. </el-table-column>
  296. <!-- <el-table-column-->
  297. <!-- prop="timeRequired"-->
  298. <!-- header-align="center"-->
  299. <!-- align="right"-->
  300. <!-- min-width="80"-->
  301. <!-- label="待排产时间">-->
  302. <!-- </el-table-column>-->
  303. <el-table-column
  304. prop="efficiency"
  305. header-align="center"
  306. align="right"
  307. min-width="80"
  308. label="效率">
  309. </el-table-column>
  310. </el-table>
  311. <el-table
  312. :height="170"
  313. :data="scheduleTableData"
  314. @row-dblclick="cancelSchedule"
  315. :row-class-name="routingRowClassName2"
  316. border
  317. style="width: 100%">
  318. <el-table-column
  319. prop="scheduledSeqNo"
  320. header-align="center"
  321. align="right"
  322. min-width="70"
  323. label="排序序号">
  324. </el-table-column>
  325. <!-- <el-table-column-->
  326. <!-- prop="planStartTime"-->
  327. <!-- header-align="center"-->
  328. <!-- align="left"-->
  329. <!-- min-width="100"-->
  330. <!-- label="计划开工时间">-->
  331. <!-- </el-table-column>-->
  332. <!-- <el-table-column-->
  333. <!-- prop="planFinishTime"-->
  334. <!-- header-align="center"-->
  335. <!-- align="left"-->
  336. <!-- min-width="100"-->
  337. <!-- label="计划完工时间">-->
  338. <!-- </el-table-column>-->
  339. <el-table-column
  340. prop="timeRequired"
  341. header-align="center"
  342. align="left"
  343. min-width="100"
  344. label="计划时间">
  345. </el-table-column>
  346. <el-table-column
  347. prop="orderNo"
  348. header-align="center"
  349. align="left"
  350. min-width="100"
  351. label="订单号">
  352. </el-table-column>
  353. <el-table-column
  354. prop="needDate"
  355. header-align="center"
  356. align="left"
  357. min-width="100"
  358. label="需求日期">
  359. </el-table-column>
  360. <el-table-column
  361. prop="itemNo"
  362. header-align="center"
  363. align="left"
  364. min-width="60"
  365. label="工序号">
  366. </el-table-column>
  367. <el-table-column
  368. prop="itemDesc"
  369. header-align="center"
  370. align="left"
  371. min-width="200"
  372. label="工序名称">
  373. </el-table-column>
  374. <el-table-column
  375. prop="partNo"
  376. header-align="center"
  377. align="left"
  378. min-width="100"
  379. label="产品编码">
  380. </el-table-column>
  381. <el-table-column
  382. prop="scheduledDate"
  383. header-align="center"
  384. align="left"
  385. min-width="100"
  386. label="排产日期">
  387. </el-table-column>
  388. <el-table-column
  389. prop="partDesc"
  390. header-align="center"
  391. align="left"
  392. min-width="100"
  393. label="产品名称">
  394. </el-table-column>
  395. <el-table-column
  396. prop="spec"
  397. header-align="center"
  398. align="left"
  399. min-width="100"
  400. label="规格型号">
  401. </el-table-column>
  402. <el-table-column
  403. prop="lotSize"
  404. header-align="center"
  405. align="right"
  406. min-width="80"
  407. label="待生产数量">
  408. </el-table-column>
  409. <el-table-column
  410. prop="lotSize"
  411. header-align="center"
  412. align="right"
  413. min-width="80"
  414. label="派工单需求">
  415. </el-table-column>
  416. <el-table-column
  417. prop="qtyReported"
  418. header-align="center"
  419. align="right"
  420. min-width="80"
  421. label="已报告数量">
  422. </el-table-column>
  423. <el-table-column
  424. prop="resourceId"
  425. header-align="center"
  426. align="left"
  427. min-width="80"
  428. label="机台号">
  429. </el-table-column>
  430. <el-table-column
  431. prop="customerName"
  432. header-align="center"
  433. align="left"
  434. min-width="120"
  435. label="客户名称">
  436. </el-table-column>
  437. <el-table-column
  438. prop="enterDate"
  439. header-align="center"
  440. align="left"
  441. min-width="100"
  442. label="录入日期">
  443. </el-table-column>
  444. <el-table-column
  445. prop="availResource"
  446. header-align="center"
  447. align="left"
  448. min-width="80"
  449. label="可用机台">
  450. </el-table-column>
  451. <el-table-column
  452. prop="workCenterNo"
  453. header-align="center"
  454. align="left"
  455. min-width="80"
  456. label="加工中心">
  457. </el-table-column>
  458. <el-table-column
  459. prop="machRunFactor"
  460. header-align="center"
  461. align="right"
  462. min-width="80"
  463. label="单位产出">
  464. </el-table-column>
  465. <el-table-column
  466. prop="machSetupTime"
  467. header-align="center"
  468. align="right"
  469. min-width="80"
  470. label="调机时间">
  471. </el-table-column>
  472. <el-table-column
  473. prop="factorUnit"
  474. header-align="center"
  475. align="right"
  476. min-width="80"
  477. label="产出单位">
  478. </el-table-column>
  479. <el-table-column
  480. prop="site"
  481. header-align="center"
  482. align="left"
  483. min-width="80"
  484. label="工厂编号">
  485. </el-table-column>
  486. <el-table-column
  487. prop="closedFlag"
  488. header-align="center"
  489. align="left"
  490. min-width="80"
  491. label="是否关闭">
  492. </el-table-column>
  493. <el-table-column
  494. prop="parkFlag"
  495. header-align="center"
  496. align="left"
  497. min-width="60"
  498. label="暂停">
  499. </el-table-column>
  500. <el-table-column
  501. prop="eficiency"
  502. header-align="center"
  503. align="right"
  504. min-width="80"
  505. label="效率">
  506. </el-table-column>
  507. </el-table>
  508. </div>
  509. <el-dialog title="多日排产" :close-on-click-modal="false" v-drag :visible.sync="scheduledModalFlag" width="700px">
  510. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  511. <el-form-item label="订单号:">
  512. <el-input v-model="schedulingModalData.orderNo" disabled style="width: 120px"></el-input>
  513. </el-form-item>
  514. <el-form-item label="工厂编号:">
  515. <el-input v-model="schedulingModalData.site" disabled style="width: 120px"></el-input>
  516. </el-form-item>
  517. <el-form-item label="要求完工日期:">
  518. <el-input v-model="schedulingModalData.needDate" disabled style="width: 120px"></el-input>
  519. </el-form-item>
  520. <el-form-item label="订单数量:">
  521. <el-input v-model="schedulingModalData.lotSize" disabled style="width: 120px"></el-input>
  522. </el-form-item>
  523. <el-form-item label="待排产数:">
  524. <el-input v-model="schedulingModalData.qtyToSchedule" disabled style="width: 120px"></el-input>
  525. </el-form-item>
  526. </el-form>
  527. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  528. <el-form-item label="产品编码:">
  529. <el-input v-model="schedulingModalData.partNo" disabled style="width: 120px"></el-input>
  530. </el-form-item>
  531. <el-form-item label="产品名称:">
  532. <el-input v-model="schedulingModalData.partDesc" disabled style="width: 120px"></el-input>
  533. </el-form-item>
  534. <el-form-item label="工序号:">
  535. <el-input v-model="schedulingModalData.itemNo" disabled style="width: 120px"></el-input>
  536. </el-form-item>
  537. <el-form-item label="工序名称:">
  538. <el-input v-model="schedulingModalData.itemDesc" disabled style="width: 120px"></el-input>
  539. </el-form-item>
  540. <el-form-item label="加工中心:">
  541. <el-input v-model="schedulingModalData.workCenterNo" disabled style="width: 120px"></el-input>
  542. </el-form-item>
  543. </el-form>
  544. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  545. <el-form-item label="排产机台:">
  546. <el-select v-model="schedulingModalData.resourceId" style="width: 120px"
  547. placeholder="请选择">
  548. <el-option
  549. v-for="(item,index) in availableResourceList"
  550. :key="index"
  551. :label="item.resourceID"
  552. :value="item.resourceID"
  553. >
  554. </el-option>
  555. </el-select>
  556. </el-form-item>
  557. <el-form-item label="排产班次:">
  558. <el-select v-model="schedulingModalData.shiftNo" style="width: 120px"
  559. placeholder="请选择">
  560. <el-option
  561. v-for="(item,index) in allShiftNoList"
  562. :key="index"
  563. :label="item.label"
  564. :value="item.value"
  565. >
  566. </el-option>
  567. </el-select>
  568. </el-form-item>
  569. <el-form-item label="本次累计排产数量:">
  570. <el-input v-model="schedulingModalData.sumQty" type="number" disabled style="width: 120px"></el-input>
  571. <el-button type="primary" @click="addPlans()" style="margin-left: 10px;">添加</el-button>
  572. <el-button type="primary" @click="savePlans()">保存</el-button>
  573. <el-button type="primary" @click="scheduledModalFlag = false">关闭</el-button>
  574. </el-form-item>
  575. </el-form>
  576. <div class="inputTable">
  577. <el-table
  578. height="200"
  579. :data="schedulingModalTableData"
  580. border
  581. style="width: 100%">
  582. <el-table-column
  583. prop="scheduleDate"
  584. header-align="center"
  585. align="left"
  586. min-width="100"
  587. label="排产日期">
  588. <template slot-scope="scope">
  589. <el-date-picker
  590. style="width: 95%"
  591. class="sl-input"
  592. v-model="scope.row.scheduleDate"
  593. type="date"
  594. value-format="yyyy-MM-dd"
  595. @change="getTodayShiftNo2(scope.$index)"
  596. placeholder="选择日期">
  597. </el-date-picker>
  598. </template>
  599. </el-table-column>
  600. <el-table-column
  601. prop="scheduleQty"
  602. header-align="center"
  603. align="right"
  604. min-width="80"
  605. label="排产数量">
  606. <template slot-scope="scope">
  607. <el-input v-model="scope.row.scheduleQty" type="number" @change="changeSum" style="width:98%"></el-input>
  608. </template>
  609. </el-table-column>
  610. <el-table-column
  611. prop="resourceId"
  612. header-align="center"
  613. align="left"
  614. min-width="80"
  615. label="排产机台">
  616. <template slot-scope="scope">
  617. <el-select v-model="scope.row.resourceId" placeholder="请选择" style="height: 12px;padding: 0px " filterable allow-create>
  618. <el-option v-for="item in availableResourceList " :key="index" :label="item.resourceID" :value="item.resourceID">
  619. </el-option>
  620. </el-select>
  621. </template>
  622. </el-table-column>
  623. <el-table-column
  624. prop="shiftNo"
  625. header-align="center"
  626. align="left"
  627. min-width="80"
  628. label="排产班次">
  629. <template slot-scope="scope">
  630. <el-select v-model="scope.row.shiftNo" placeholder="请选择" style="height: 12px;padding: 0px " filterable allow-create>
  631. <el-option v-for="item in schedulingModalTableData[scope.$index].selectList " :key="index" :label="item.shiftno" :value="item.shiftno">
  632. </el-option>
  633. </el-select>
  634. </template>
  635. </el-table-column>
  636. <el-table-column
  637. prop=""
  638. header-align="center"
  639. align="center"
  640. width="100"
  641. label="操作">
  642. <template slot-scope="scope" class="foo_container">
  643. <a type="text" size="small" @click="splitScheduleTable(scope.$index)">删除</a>
  644. <a type="text" size="small" @click="getHasScheduledData(scope.row)">当日负荷</a>
  645. </template>
  646. </el-table-column>
  647. </el-table>
  648. </div>
  649. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  650. <el-button type="primary" @click="scheduledModalFlag = false">关闭</el-button>
  651. <!-- <el-button type="primary" :disabled="bannersBut" @click="saveBanners()">确定</el-button>-->
  652. </el-footer>
  653. </el-dialog>
  654. <el-dialog title="查看负荷" :close-on-click-modal="false" v-drag :visible.sync="hasScheduledModalFlag" width="400px">
  655. <el-table
  656. height="300"
  657. :data="hasScheduledData"
  658. border
  659. style="width: 100%">
  660. <el-table-column
  661. prop="orderNo"
  662. header-align="center"
  663. align="left"
  664. min-width="100"
  665. label="订单编号">
  666. </el-table-column>
  667. <el-table-column
  668. prop="itemNo"
  669. header-align="center"
  670. align="left"
  671. min-width="80"
  672. label="工序号">
  673. </el-table-column>
  674. <el-table-column
  675. prop="qtyRequired"
  676. header-align="center"
  677. align="right"
  678. min-width="80"
  679. label="排产数量">
  680. </el-table-column>
  681. <el-table-column
  682. prop="sShiftNo"
  683. header-align="center"
  684. align="left"
  685. min-width="80"
  686. label="班次编码">
  687. </el-table-column>
  688. </el-table>
  689. </el-dialog>
  690. <el-dialog title="修改顺序" :close-on-click-modal="false" v-drag :visible.sync="changeModalFlag" width="700px">
  691. <div class="inputTable">
  692. <el-table
  693. height="200"
  694. :data="changeTableData"
  695. border
  696. style="width: 100%">
  697. <el-table-column
  698. prop="scheduledSeqNo"
  699. header-align="center"
  700. align="right"
  701. min-width="80"
  702. label="排产序号">
  703. <template slot-scope="scope">
  704. <el-input v-model="scope.row.scheduledSeqNo" type="number" onkeyup="value=value.replace(/^(0+)|[^\d]+/g,'')" style="width:98%;text-align: right"></el-input>
  705. </template>
  706. </el-table-column>
  707. <el-table-column
  708. prop="orderNo"
  709. header-align="center"
  710. align="left"
  711. min-width="80"
  712. label="订单号">
  713. </el-table-column>
  714. <el-table-column
  715. prop="itemNo"
  716. header-align="center"
  717. align="left"
  718. min-width="80"
  719. label="工序号">
  720. </el-table-column>
  721. <el-table-column
  722. prop="scheduledDate"
  723. header-align="center"
  724. align="left"
  725. min-width="100"
  726. label="排产日期">
  727. </el-table-column>
  728. <el-table-column
  729. prop="lotSize"
  730. header-align="center"
  731. align="right"
  732. min-width="80"
  733. label="排产数量">
  734. </el-table-column>
  735. </el-table>
  736. </div>
  737. <el-footer style="height:40px;margin-top: 10px;text-align:center">
  738. <el-button type="primary" @click="changeSeqNo">保存</el-button>
  739. <el-button type="primary" @click="changeModalFlag = false">关闭</el-button>
  740. </el-footer>
  741. </el-dialog>
  742. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  743. </div>
  744. </template>
  745. <script>
  746. import {
  747. getWeekShiftData,
  748. getShopOrderOutData,
  749. getOrderScheduleList,
  750. getWorkCenterNoWithSiteResourceId,
  751. getTodayShiftNoList,
  752. getSORoutingAvailableResourceList,
  753. getHasScheduledData,
  754. scheduleOne,
  755. scheduleDatas,
  756. cancelScheduleData,
  757. rescheduleData,
  758. changeSoScheduledListSeqNo,
  759. } from '@/api/production/dailyPlan.js'
  760. import {
  761. getShiftData,
  762. } from '@/api/prd.js'
  763. import Chooselist from '@/views/modules/common/Chooselist'
  764. export default {
  765. name: 'dailyPlan',
  766. components: {
  767. Chooselist
  768. },
  769. data () {
  770. return {
  771. shiftNoList: [],
  772. tagNo:'',
  773. tagNo2:'',
  774. height:200,
  775. searchData:{
  776. orderNo:'',
  777. date1:'',
  778. date2:'',
  779. partNo:'',
  780. date3:'',
  781. date4:'',
  782. sortField:'',
  783. scheduleDate:new Date(),
  784. site:this.$store.state.user.site,
  785. workCenterNo:'',
  786. resourceId:'',
  787. shiftNo:'',
  788. itemNo:'',
  789. },
  790. schedulingModalData:{
  791. orderNo:'',
  792. site:'',
  793. needDate:'',
  794. lotSize:'',
  795. qtyToSchedule:'',
  796. partNo:'',
  797. partDesc:'',
  798. itemNo:'',
  799. itemDesc:'',
  800. workCenterNo:'',
  801. scheduleDate:'',
  802. scheduleQty:'',
  803. resourceId:'',
  804. shiftNo:'',
  805. sumQty:'',
  806. },
  807. scheduledModalFlag:false,
  808. hasScheduledModalFlag:false,
  809. changeModalFlag:false,
  810. allShiftNoList:[],
  811. scheduleTableData:[],
  812. ShopOrderTableData:[],
  813. availableResourceList:[],
  814. calendarDateTypeShiftData:[],
  815. schedulingModalTableData:[],
  816. hasScheduledData:[],
  817. currentRoutingRow:null,
  818. changeTableData:[],
  819. }
  820. },
  821. mounted () {
  822. this.$nextTick(() => {
  823. this.height = window.innerHeight - 480
  824. })
  825. },
  826. methods: {
  827. getAllShiftNoList () {
  828. this.selectList = []
  829. getShiftData().then(({data}) => {
  830. let list = data.rows
  831. for (let i = 0; i < list.length; i++) {
  832. let resultData = {
  833. value: list[i].shiftno,
  834. label: list[i].shiftno+'('+list[i].shiftdesc+')'
  835. }
  836. this.allShiftNoList.push(resultData)
  837. }
  838. if(list.length>0){
  839. this.schedulingModalData.shiftNo=data.rows[0].shiftno
  840. }
  841. })
  842. },
  843. getBaseData(val){
  844. if (this.tagNo === 24){
  845. if(this.tagNo2===1) {
  846. this.searchData.workCenterNo = val.WorkCenterNo
  847. }else {
  848. this.searchData.workCenterNo = val.WorkCenterNo
  849. }
  850. }
  851. if (this.tagNo === 88){
  852. if(this.tagNo2===1) {
  853. this.searchData.resourceId = val.ResourceID
  854. this.getWorkCenterNo();
  855. }else {
  856. this.searchData.resourceId = val.ResourceID
  857. }
  858. }
  859. },
  860. // 获取基础数据列表
  861. getBaseList(val,val2){
  862. this.tagNo = val
  863. this.tagNo2 = val2
  864. this.$nextTick(() => {
  865. let strVal = "";
  866. if (val === 24){
  867. if(val2===1) {
  868. strVal = this.searchData.workCenterNo
  869. }else {
  870. strVal = this.searchData.workCenterNo
  871. }
  872. }
  873. if (val === 88){
  874. if(val2===1) {
  875. strVal = this.searchData.resourceId
  876. }else {
  877. strVal = this.searchData.resourceId
  878. }
  879. }
  880. this.$refs.baseList.init(val,strVal)
  881. })
  882. },
  883. getWeekShiftData(){
  884. let inData={
  885. site:this.searchData.site,
  886. workCenterNo:this.searchData.workCenterNo,
  887. resourceID:this.searchData.resourceId,
  888. scheduleDate:this.searchData.scheduleDate,
  889. }
  890. getWeekShiftData(inData).then(({data}) => {
  891. this.calendarDateTypeShiftData = data.rows
  892. })
  893. },
  894. getShopOrderOutData(){
  895. getShopOrderOutData(this.searchData).then(({data}) => {
  896. this.ShopOrderTableData = data.rows
  897. })
  898. },
  899. getOrderScheduleList(){
  900. let inData={
  901. scheduleDate:this.searchData.scheduleDate,
  902. site:this.searchData.site,
  903. workCenterNo:this.searchData.workCenterNo,
  904. resourceId:this.searchData.resourceId,
  905. }
  906. getOrderScheduleList(inData).then(({data}) => {
  907. this.scheduleTableData = data.rows
  908. })
  909. },
  910. scheduledModal(row){
  911. if(row.qtyToSchedule==0){
  912. this.$alert('该订单已排产完毕!', '错误', {
  913. confirmButtonText: '确定'
  914. })
  915. return false
  916. }
  917. this.schedulingModalData={
  918. orderNo:row.orderNo,
  919. site:row.site,
  920. needDate:row.needDate,
  921. lotSize:row.lotSize,
  922. qtyToSchedule:row.qtyToSchedule,
  923. partNo:row.partNo,
  924. partDesc:row.partDesc,
  925. itemNo:row.itemNo,
  926. itemDesc:row.itemDesc,
  927. workCenterNo:row.workCenterNo,
  928. scheduleDate:'',
  929. scheduleQty:'',
  930. resourceId:'',
  931. shiftNo:'',
  932. sumQty:0,
  933. };
  934. this.schedulingModalTableData=[];
  935. this.getAvailableResourceList(row);
  936. this.getAllShiftNoList();
  937. this.scheduledModalFlag=true;
  938. },
  939. searchAllData(){
  940. if(this.searchData.site==""||this.searchData.site==null){
  941. this.$alert('请输入工厂!', '错误', {
  942. confirmButtonText: '确定'
  943. })
  944. return false
  945. }
  946. if(this.searchData.resourceId==""||this.searchData.resourceId==null){
  947. this.$alert('请输入机台!', '错误', {
  948. confirmButtonText: '确定'
  949. })
  950. return false
  951. }
  952. this.getShopOrderOutData();
  953. this.getOrderScheduleList();
  954. },
  955. addPlans(){
  956. if (this.schedulingModalData.resourceId == '') {
  957. this.$alert('请选择机台!', '错误', {
  958. confirmButtonText: '确定'
  959. })
  960. return false
  961. }
  962. if (this.schedulingModalData.shiftNo == '') {
  963. this.$alert('请选择排产班次!', '错误', {
  964. confirmButtonText: '确定'
  965. })
  966. return false
  967. }
  968. this.schedulingModalTableData.push({ scheduleQty:0,
  969. resourceId:this.schedulingModalData.resourceId,
  970. shiftNo:this.schedulingModalData.shiftNo,
  971. scheduleDate:null,
  972. selectList:[]})
  973. this.sumQty+=this.schedulingModalData.scheduleQty;
  974. },
  975. splitScheduleTable(index){
  976. this.schedulingModalTableData.splice(index,1);
  977. this.changeSum();
  978. },
  979. getWorkCenterNo(){
  980. let inData={
  981. site:this.$store.state.user.site,
  982. resourceID:this.searchData.resourceId
  983. }
  984. getWorkCenterNoWithSiteResourceId(inData).then(({data}) => {
  985. this.searchData.workCenterNo = data.rows[0].workCenterNo
  986. this.getWeekShiftData();
  987. this.getOrderScheduleList();
  988. })
  989. },
  990. getTodayShiftNo(){
  991. let inData={
  992. scheduledate:this.searchData.scheduleDate,
  993. site:this.searchData.site,
  994. };
  995. this.getOrderScheduleList();
  996. getTodayShiftNoList(inData).then(({data}) => {
  997. this.shiftNoList = data.rows
  998. })
  999. },
  1000. getTodayShiftNo2(index){
  1001. let inData={
  1002. scheduledate:this.schedulingModalTableData[index].scheduleDate,
  1003. site:this.searchData.site,
  1004. };
  1005. getTodayShiftNoList(inData).then(({data}) => {
  1006. this.schedulingModalTableData[index].selectList = data.rows
  1007. //如果当天不存在默认班次就删除
  1008. if(data.rows.length>0){
  1009. let flag=true;
  1010. for (let i = 0; i <data.rows.length ; i++) {
  1011. if(data.rows[i].shiftno==this.schedulingModalTableData[index].shiftNo){
  1012. flag=false;
  1013. }
  1014. }
  1015. if (flag){
  1016. this.schedulingModalTableData[index].shiftNo='';
  1017. }
  1018. }else {
  1019. this.schedulingModalTableData[index].shiftNo='';
  1020. }
  1021. })
  1022. },
  1023. getAvailableResourceList(row){
  1024. let inData={
  1025. orderNo:row.orderNo,
  1026. site:row.site,
  1027. itemNo:row.itemNo,
  1028. };
  1029. getSORoutingAvailableResourceList(inData).then(({data}) => {
  1030. this.availableResourceList = data.rows
  1031. if(data.rows.length>0){
  1032. this.schedulingModalData.resourceId=data.rows[0].resourceID
  1033. }
  1034. })
  1035. },
  1036. getHasScheduledData(row){
  1037. if(row.scheduleDate==null||row.scheduleDate==''){
  1038. this.$alert('请选择排产日期!', '错误', {
  1039. confirmButtonText: '确定'
  1040. })
  1041. return false
  1042. }
  1043. let inData={
  1044. site:row.site,
  1045. sResourceID:row.resourceId,
  1046. sScheduledDate:row.scheduleDate,
  1047. sShiftNo:row.shiftNo,
  1048. }
  1049. getHasScheduledData(inData).then(({data}) => {
  1050. this.hasScheduledData = data.rows
  1051. })
  1052. this.hasScheduledModalFlag=true;
  1053. },
  1054. /*设置工艺的行*/
  1055. setCurrentRoutingRow(row, column, event) {
  1056. this.currentRoutingRow = JSON.parse(JSON.stringify(row));
  1057. },
  1058. /*设置当前行的下标*/
  1059. routingRowClassName({row, rowIndex}){
  1060. //判断当前行颜色参数
  1061. if(row.qtyScheduled > 0){
  1062. return 'customer-row-gray';
  1063. }
  1064. },
  1065. /*开始排产的操作*/
  1066. routingRowClassName2({row, rowIndex}){
  1067. let date=new Date();
  1068. let planDate=new Date(row.planFinishTime.replace("-","/"))
  1069. //判断当前行颜色参数
  1070. if(row.closedFlag=="Y" && row.qtyReported>=row.lotSize){
  1071. return 'customer-row-1';
  1072. }else if(row.closedFlag=="Y" && row.qtyReported<row.lotSize){
  1073. return 'customer-row-2';
  1074. }else if(planDate<date){
  1075. return 'customer-row-3';
  1076. }
  1077. },
  1078. startScheduleOperation(row, $event, column){
  1079. if(this.searchData.site==""||this.searchData.site==null){
  1080. this.$alert('请输入工厂!', '错误', {
  1081. confirmButtonText: '确定'
  1082. })
  1083. return false
  1084. }
  1085. if(this.searchData.resourceId==""||this.searchData.resourceId==null){
  1086. this.$alert('请输入机台!', '错误', {
  1087. confirmButtonText: '确定'
  1088. })
  1089. return false
  1090. }
  1091. if(this.searchData.scheduleDate==""||this.searchData.scheduleDate==null){
  1092. this.$alert('请选择排产日期!', '错误', {
  1093. confirmButtonText: '确定'
  1094. })
  1095. return false
  1096. }
  1097. if(this.searchData.shiftNo==""||this.searchData.shiftNo==null){
  1098. this.$alert('请选择班次!', '错误', {
  1099. confirmButtonText: '确定'
  1100. })
  1101. return false
  1102. }
  1103. let inData={
  1104. site:this.$store.state.user.site,
  1105. orderNo:row.orderNo,
  1106. itemNo:row.itemNo,
  1107. workCenterNo:this.searchData.workCenterNo,
  1108. resourceID:this.searchData.resourceId,
  1109. qtyToSchedule:row.qtyToSchedule,
  1110. scheduleDate:this.searchData.scheduleDate,
  1111. scheduleTime:this.searchData.scheduleDate,
  1112. userId:this.$store.state.user.name,
  1113. }
  1114. scheduleOne(inData).then(({data}) => {
  1115. if(data.code===0){
  1116. row.qtyToSchedule = 0;
  1117. row.qtyScheduled = row.lotSize
  1118. this.getOrderScheduleList();
  1119. }else {
  1120. this.$alert(data.msg, '错误', {
  1121. confirmButtonText: '确定'
  1122. })
  1123. }
  1124. })
  1125. //自己赋值给自己
  1126. //this.shopOrderList = JSON.parse(JSON.stringify(this.shopOrderList));
  1127. //this.$message.error('字段time_required找不到!');
  1128. },
  1129. changeSum(){
  1130. let sum=0;
  1131. if(this.schedulingModalTableData.length>0) {
  1132. for (let i = 0; i < this.schedulingModalTableData.length; i++) {
  1133. if (this.schedulingModalTableData[i].scheduleQty != "" && this.schedulingModalTableData[i].scheduleQty != null) {
  1134. sum += Number(this.schedulingModalTableData[i].scheduleQty);
  1135. }
  1136. }
  1137. }
  1138. this.schedulingModalData.sumQty = sum;
  1139. },
  1140. savePlans(){
  1141. if(this.schedulingModalTableData.length==0){
  1142. this.$alert('未添加排产记录!', '错误', {
  1143. confirmButtonText: '确定'
  1144. })
  1145. return false
  1146. }
  1147. if(this.schedulingModalData.sumQty>this.schedulingModalData.qtyToSchedule){
  1148. this.$alert('排产数量超出可排产数量!', '错误', {
  1149. confirmButtonText: '确定'
  1150. })
  1151. return false
  1152. }
  1153. let inList=[];
  1154. for (let i = 0; i < this.schedulingModalTableData.length; i++) {
  1155. if (this.schedulingModalTableData[i].scheduleQty == "" || this.schedulingModalTableData[i].scheduleQty == null || this.schedulingModalTableData[i].scheduleQty ==0) {
  1156. this.$alert('未输入排产数量!', '错误', {
  1157. confirmButtonText: '确定'
  1158. })
  1159. return false
  1160. }
  1161. if (this.schedulingModalTableData[i].scheduleDate == "" || this.schedulingModalTableData[i].scheduleDate == null) {
  1162. this.$alert('未选择排产日期!', '错误', {
  1163. confirmButtonText: '确定'
  1164. })
  1165. return false
  1166. }
  1167. if (this.schedulingModalTableData[i].shiftNo == "" || this.schedulingModalTableData[i].shiftNo == null) {
  1168. this.$alert('未选择排产班次!', '错误', {
  1169. confirmButtonText: '确定'
  1170. })
  1171. return false
  1172. }
  1173. let thisData={
  1174. site:this.$store.state.user.site,
  1175. orderNo:this.schedulingModalData.orderNo,
  1176. itemNo:this.schedulingModalData.itemNo,
  1177. workCenterNo:this.schedulingModalData.workCenterNo,
  1178. resourceID:this.schedulingModalTableData[i].resourceId,
  1179. qtyToSchedule:this.schedulingModalTableData[i].scheduleQty,
  1180. scheduleDate:this.schedulingModalTableData[i].scheduleDate,
  1181. userId:this.$store.state.user.name,
  1182. }
  1183. inList.push(thisData);
  1184. }
  1185. scheduleDatas(inList).then(({data}) => {
  1186. if(data.code===0){
  1187. for (let i = 0; i <this.ShopOrderTableData.length ; i++) {
  1188. if(inList[0].orderNo==this.ShopOrderTableData[i].orderNo && inList[0].itemNo==this.ShopOrderTableData[i].itemNo){
  1189. this.ShopOrderTableData[i].qtyToSchedule=Number(this.ShopOrderTableData[i].qtyToSchedule)-Number(this.schedulingModalData.sumQty)
  1190. this.ShopOrderTableData[i].qtyScheduled=Number(this.ShopOrderTableData[i].qtyScheduled)+Number(this.schedulingModalData.sumQty)
  1191. }
  1192. }
  1193. this.getOrderScheduleList();
  1194. this.schedulingModalTableData=[];
  1195. this.scheduledModalFlag=false;
  1196. this.$message({
  1197. message: '保存成功',
  1198. type: 'success',
  1199. duration: 1500,
  1200. onClose: () => {
  1201. }
  1202. })
  1203. }else {
  1204. this.$alert(data.msg, '错误', {
  1205. confirmButtonText: '确定'
  1206. })
  1207. }
  1208. })
  1209. },
  1210. cancelSchedule(row, $event, column){
  1211. this.$confirm(`是否取消排产此条记录?`, '提示', {
  1212. confirmButtonText: '确定',
  1213. cancelButtonText: '取消',
  1214. type: 'warning'
  1215. }).then(() => {
  1216. let inData={
  1217. site:row.site,
  1218. orderNo:row.orderNo,
  1219. itemNo:row.itemNo,
  1220. seqNo:row.seqNo,
  1221. workCenterNo:row.workCenterNo,
  1222. resourceID:row.resourceId,
  1223. scheduledQty:row.lotSize,
  1224. }
  1225. cancelScheduleData(inData).then(({data}) => {
  1226. if(data.code===0){
  1227. for (let i = 0; i <this.ShopOrderTableData.length ; i++) {
  1228. if(row.orderNo==this.ShopOrderTableData[i].orderNo && row.itemNo==this.ShopOrderTableData[i].itemNo){
  1229. this.ShopOrderTableData[i].qtyToSchedule=Number(this.ShopOrderTableData[i].qtyToSchedule)+Number(row.lotSize)
  1230. this.ShopOrderTableData[i].qtyScheduled=Number(this.ShopOrderTableData[i].qtyScheduled)-Number(row.lotSize)
  1231. }
  1232. }
  1233. this.getOrderScheduleList();
  1234. }else {
  1235. this.$alert(data.msg, '错误', {
  1236. confirmButtonText: '确定'
  1237. })
  1238. }
  1239. })
  1240. })
  1241. },
  1242. rescheduled(){
  1243. if(this.searchData.site==""||this.searchData.site==null){
  1244. this.$alert('请输入工厂!', '错误', {
  1245. confirmButtonText: '确定'
  1246. })
  1247. return false
  1248. }
  1249. if(this.searchData.resourceId==""||this.searchData.resourceId==null){
  1250. this.$alert('请输入机台!', '错误', {
  1251. confirmButtonText: '确定'
  1252. })
  1253. return false
  1254. }
  1255. if(this.searchData.scheduleDate==""||this.searchData.scheduleDate==null){
  1256. this.$alert('请选择排产日期!', '错误', {
  1257. confirmButtonText: '确定'
  1258. })
  1259. return false
  1260. }
  1261. let inData={
  1262. site:this.$store.state.user.site,
  1263. workCenterNo:this.searchData.workCenterNo,
  1264. resourceID:this.searchData.resourceId,
  1265. scheduleDate:this.searchData.scheduleDate,
  1266. scheduleTime:this.searchData.scheduleDate,
  1267. }
  1268. this.$confirm(`是否重新排产该机台当日日计划?`, '提示', {
  1269. confirmButtonText: '确定',
  1270. cancelButtonText: '取消',
  1271. type: 'warning'
  1272. }).then(() =>{
  1273. rescheduleData(inData).then(({data}) =>{
  1274. if(data.code===0){
  1275. for (let i = 0; i <this.ShopOrderTableData.length ; i++) {
  1276. if(inList[0].orderNo==this.ShopOrderTableData[i].orderNo && inList[0].itemNo==this.ShopOrderTableData[i].itemNo){
  1277. this.ShopOrderTableData[i].qtyToSchedule=Number(this.ShopOrderTableData[i].qtyToSchedule)-Number(this.schedulingModalData.sumQty)
  1278. this.ShopOrderTableData[i].qtyScheduled=Number(this.ShopOrderTableData[i].qtyScheduled)+Number(this.schedulingModalData.sumQty)
  1279. }
  1280. }
  1281. this.getOrderScheduleList();
  1282. this.$message({
  1283. message: '操作成功',
  1284. type: 'success',
  1285. duration: 1500,
  1286. onClose: () => {
  1287. }
  1288. })
  1289. }else {
  1290. this.$alert(data.msg, '错误', {
  1291. confirmButtonText: '确定'
  1292. })
  1293. }
  1294. })
  1295. })
  1296. },
  1297. changeModal(){
  1298. if(this.searchData.site==""||this.searchData.site==null){
  1299. this.$alert('请输入工厂!', '错误', {
  1300. confirmButtonText: '确定'
  1301. })
  1302. return false
  1303. }
  1304. if(this.searchData.resourceId==""||this.searchData.resourceId==null){
  1305. this.$alert('请输入机台!', '错误', {
  1306. confirmButtonText: '确定'
  1307. })
  1308. return false
  1309. }
  1310. if(this.searchData.scheduleDate==""||this.searchData.scheduleDate==null){
  1311. this.$alert('请选择排产日期!', '错误', {
  1312. confirmButtonText: '确定'
  1313. })
  1314. return false
  1315. }
  1316. let inData={
  1317. scheduleDate:this.searchData.scheduleDate,
  1318. site:this.searchData.site,
  1319. workCenterNo:this.searchData.workCenterNo,
  1320. resourceId:this.searchData.resourceId,
  1321. }
  1322. getOrderScheduleList(inData).then(({data}) => {
  1323. this.changeTableData = data.rows
  1324. if(this.changeTableData.length==0){
  1325. this.$alert('该机台无排产计划!', '错误', {
  1326. confirmButtonText: '确定'
  1327. })
  1328. return false
  1329. }
  1330. this.changeModalFlag=true;
  1331. })
  1332. },
  1333. changeSeqNo(){
  1334. if(this.changeTableData.length==0){
  1335. this.$alert('该机台无排产计划!', '错误', {
  1336. confirmButtonText: '确定'
  1337. })
  1338. return false
  1339. }
  1340. let inList=[];
  1341. for (let i = 0; i <this.changeTableData.length ; i++) {
  1342. let data1={
  1343. site:this.changeTableData[i].site,
  1344. workCenterNo:this.changeTableData[i].workCenterNo,
  1345. resourceID:this.changeTableData[i].resourceId,
  1346. linkedSeqNo:this.changeTableData[i].linkedSeqNo,
  1347. scheduledSeqNo:this.changeTableData[i].scheduledSeqNo,
  1348. }
  1349. inList.push(data1);
  1350. }
  1351. this.$confirm(`是否修改计划顺序?`, '提示', {
  1352. confirmButtonText: '确定',
  1353. cancelButtonText: '取消',
  1354. type: 'warning'
  1355. }).then(() =>{
  1356. changeSoScheduledListSeqNo(inList).then(({data}) =>{
  1357. if(data.code===0){
  1358. this.changeModalFlag=false;
  1359. this.getOrderScheduleList();
  1360. this.$message({
  1361. message: '操作成功',
  1362. type: 'success',
  1363. duration: 1500,
  1364. onClose: () => {
  1365. }
  1366. })
  1367. }else {
  1368. this.$alert(data.msg, '错误', {
  1369. confirmButtonText: '确定'
  1370. })
  1371. }
  1372. })
  1373. })
  1374. },
  1375. },
  1376. created () {
  1377. this.getTodayShiftNo();
  1378. }
  1379. }
  1380. </script>
  1381. <style scoped>
  1382. /* 控制el-card标签的数据*/
  1383. div.customer-el-card {
  1384. margin-left: 110px;
  1385. margin-top: -15px;
  1386. height: 20px;
  1387. width: 60px;
  1388. }
  1389. </style>