赫艾前端
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.

735 lines
26 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
  1. <template>
  2. <div class="mod-config">
  3. <el-form inline="true" style="margin-top: -25px;" v-model="searchData">
  4. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 5px;">
  5. <el-form-item :label="'订单号:'">
  6. <el-input v-model="searchData.orderNo" style="width: 120px"></el-input>
  7. </el-form-item>
  8. <el-form-item :label="'计划开工日期:'">
  9. <el-date-picker
  10. style="width: 130px"
  11. v-model="searchData.startDate2"
  12. type="date"
  13. value-format="yyyy-MM-dd"
  14. placeholder="选择日期">
  15. </el-date-picker>
  16. </el-form-item>
  17. <el-form-item style="margin-top: 30px;">
  18. <laber style="margin-left: -9px;font-size: 19px">&#10142</laber>
  19. </el-form-item>
  20. <el-form-item style="margin-top: 30px;">
  21. <el-date-picker
  22. style="width: 130px"
  23. v-model="searchData.endDate2"
  24. type="date"
  25. value-format="yyyy-MM-dd"
  26. placeholder="选择日期">
  27. </el-date-picker>
  28. </el-form-item>
  29. <el-form-item :label="'计划完工日期:'">
  30. <el-date-picker
  31. style="width: 130px"
  32. v-model="searchData.startDate3"
  33. type="date"
  34. value-format="yyyy-MM-dd"
  35. placeholder="选择日期">
  36. </el-date-picker>
  37. </el-form-item>
  38. <el-form-item style="margin-top: 30px;">
  39. <laber style="margin-left: -9px;font-size: 19px">&#10142</laber>
  40. </el-form-item>
  41. <el-form-item style="margin-top: 30px;">
  42. <el-date-picker
  43. style="width: 130px"
  44. v-model="searchData.endDate3"
  45. type="date"
  46. value-format="yyyy-MM-dd"
  47. placeholder="选择日期">
  48. </el-date-picker>
  49. </el-form-item>
  50. </el-form>
  51. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 5px;">
  52. <el-form-item :label="'状态:'">
  53. <el-select filterable v-model="searchData.status" style="width: 120px">
  54. <el-option label="全部" value=""></el-option>
  55. <el-option label="可排产" value="('已下达','已发料','已入库','已开工')"></el-option>
  56. <el-option label="不可排产" value="('已计划','已取消','已关闭')"></el-option>
  57. </el-select>
  58. </el-form-item>
  59. <el-form-item :label="'录入日期:'">
  60. <el-date-picker
  61. style="width: 130px"
  62. v-model="searchData.startDate1"
  63. value-format="yyyy-MM-dd"
  64. placeholder="选择日期">
  65. </el-date-picker>
  66. </el-form-item>
  67. <el-form-item style="margin-top: 30px;">
  68. <laber style="margin-left: -9px;font-size: 19px">&#10142</laber>
  69. </el-form-item>
  70. <el-form-item style="margin-top: 30px;">
  71. <el-date-picker
  72. style="width: 130px"
  73. v-model="searchData.endDate1"
  74. type="date"
  75. value-format="yyyy-MM-dd"
  76. placeholder="选择日期">
  77. </el-date-picker>
  78. </el-form-item>
  79. <el-form-item :label="'物料编码:'">
  80. <el-input v-model="searchData.partNo" style="width: 130px"></el-input>
  81. </el-form-item>
  82. <el-form-item :label="'排产情况:'">
  83. <el-select filterable v-model="searchData.planStatus" style="width: 120px">
  84. <el-option label="全部" value=""></el-option>
  85. <el-option label="未排产完" value="a.LotSize >ISNULL(so.scheduling_size,0)"></el-option>
  86. <el-option label="已排产完" value="ISNULL(so.scheduling_size,0) >=a.LotSize"></el-option>
  87. </el-select>
  88. </el-form-item>
  89. <el-form-item style="margin-top: 30px">
  90. <el-button @click="search()" style="margin-left: 24px" type="primary">查询</el-button>
  91. </el-form-item>
  92. </el-form>
  93. </el-form>
  94. <el-table
  95. :height="height"
  96. :data="tableData"
  97. border
  98. style="width: 100%">
  99. <el-table-column
  100. prop="orderNo"
  101. header-align="center"
  102. align="left"
  103. min-width="60"
  104. label="订单号">
  105. </el-table-column>
  106. <el-table-column
  107. prop="partNo"
  108. header-align="center"
  109. align="left"
  110. min-width="60"
  111. label="物料编码">
  112. </el-table-column>
  113. <el-table-column
  114. prop="partDescription"
  115. header-align="center"
  116. align="left"
  117. min-width="200"
  118. label="物料名称">
  119. </el-table-column>
  120. <el-table-column
  121. prop="status"
  122. header-align="center"
  123. align="left"
  124. min-width="40"
  125. label="状态">
  126. </el-table-column>
  127. <el-table-column
  128. prop="planStartDate"
  129. header-align="center"
  130. align="left"
  131. min-width="50"
  132. label="计划开工日期">
  133. </el-table-column>
  134. <el-table-column
  135. prop="needDate"
  136. header-align="center"
  137. align="left"
  138. min-width="50"
  139. label="计划完工日期">
  140. </el-table-column>
  141. <el-table-column
  142. prop="lotSize"
  143. header-align="center"
  144. align="right"
  145. min-width="40"
  146. label="订单数量">
  147. </el-table-column>
  148. <el-table-column
  149. prop="schedulingSize"
  150. header-align="center"
  151. align="right"
  152. min-width="40"
  153. label="已排产数量">
  154. </el-table-column>
  155. <el-table-column
  156. prop="enterDate"
  157. header-align="center"
  158. align="left"
  159. min-width="80"
  160. label="录入时间">
  161. </el-table-column>
  162. <el-table-column
  163. prop="userName"
  164. header-align="center"
  165. align="left"
  166. min-width="40"
  167. label="录入人">
  168. </el-table-column>
  169. <el-table-column
  170. prop=""
  171. fixed="right"
  172. header-align="center"
  173. align="center"
  174. min-width="30"
  175. label="操作">
  176. <template slot-scope="scope">
  177. <a type="text" size="small" @click="openScheduleModel(scope.row)">排产</a>
  178. </template>
  179. </el-table-column>
  180. </el-table>
  181. <el-dialog title="排产信息" :visible.sync="schedulingFlag" :close-on-click-modal="false" v-drag width="840px">
  182. <el-form :inline="true" label-position="top">
  183. <el-form-item :label="'订单号:'">
  184. <el-input v-model="scheduledModelData.orderNo" readonly style="width: 130px"></el-input>
  185. </el-form-item>
  186. <el-form-item :label="'计划开工日期:'">
  187. <el-input v-model="scheduledModelData.planStartDate" readonly style="width: 130px"></el-input>
  188. </el-form-item>
  189. <el-form-item :label="'计划完工日期:'">
  190. <el-input v-model="scheduledModelData.needDate" readonly style="width: 130px"></el-input>
  191. </el-form-item>
  192. <el-form-item :label="'已排产数量:'">
  193. <el-input v-model="scheduledModelData.schedulingSize" readonly style="width: 100px"></el-input>
  194. </el-form-item>
  195. <el-form-item :label="'未排产数量:'">
  196. <el-input v-model="scheduledModelData.unSchedulingSize" readonly style="width: 100px"></el-input>
  197. </el-form-item>
  198. <el-button @click="schedulings()" type="primary" style="margin-top: 33px;margin-left: 0px;">批量新增</el-button>
  199. <el-button @click="schedulingModal()" type="primary" style="margin-top: 33px;">新增</el-button>
  200. </el-form>
  201. <el-table
  202. :height="300"
  203. :data="scheduleTableData"
  204. border
  205. style="width: 100%">
  206. <el-table-column
  207. prop="orderDate"
  208. header-align="center"
  209. align="left"
  210. min-width="50"
  211. label="计划日期">
  212. </el-table-column>
  213. <el-table-column
  214. prop="orderQty"
  215. header-align="center"
  216. align="right"
  217. min-width="40"
  218. label="排产数量">
  219. </el-table-column>
  220. <el-table-column
  221. prop="userName"
  222. header-align="center"
  223. align="left"
  224. min-width="50"
  225. label="录入人">
  226. </el-table-column>
  227. <el-table-column
  228. prop="enterDate"
  229. header-align="center"
  230. align="center"
  231. min-width="90"
  232. label="录入日期">
  233. </el-table-column>
  234. <el-table-column
  235. prop=""
  236. header-align="center"
  237. align="center"
  238. min-width="50"
  239. label="操作">
  240. <template slot-scope="scope" class="foo_container">
  241. <a type="text" size="small" @click="editSchedule(scope.row)">编辑</a>
  242. <a type="text" size="small" @click="deleteSchedule(scope.row)">取消</a>
  243. </template>
  244. </el-table-column>
  245. </el-table>
  246. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  247. <el-button type="primary" @click="schedulingFlag = false">关闭</el-button>
  248. <!-- <el-button type="primary" :disabled="bannersBut" @click="saveBanners()">确定</el-button>-->
  249. </el-footer>
  250. </el-dialog>
  251. <el-dialog title="维护日计划" :close-on-click-modal="false" v-drag :visible.sync="schedulingModalFlag" width="341px">
  252. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  253. <el-form-item :label="'订单号:'">
  254. <el-input v-model="scheduledingData.orderNo" disabled style="width: 130px"></el-input>
  255. </el-form-item>
  256. <el-form-item :label="'计划日期:'">
  257. <el-date-picker
  258. style="width: 130px"
  259. v-model="scheduledingData.orderDate"
  260. type="date"
  261. value-format="yyyy-MM-dd"
  262. :disabled="scheduledingDataFlag1"
  263. placeholder="选择日期">
  264. </el-date-picker>
  265. </el-form-item>
  266. <el-form-item :label="'计划数量:'">
  267. <el-input v-model="scheduledingData.orderQty" style="width: 130px"></el-input>
  268. </el-form-item>
  269. </el-form>
  270. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  271. <el-button type="primary" v-if="scheduledingDataFlag3" @click="planSaveOn()">保存并继续</el-button>
  272. <el-button type="primary" @click="planSave()">保存</el-button>
  273. <el-button type="primary" @click="schedulingModalFlag = false">关闭</el-button>
  274. </el-footer>
  275. </el-dialog>
  276. <el-dialog title="批量排产" :close-on-click-modal="false" v-drag :visible.sync="schedulingsFlag" width="341px">
  277. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  278. <el-form-item :label="'订单号:'">
  279. <el-input v-model="scheduledingsData.orderNo" disabled style="width: 130px"></el-input>
  280. </el-form-item>
  281. <el-form-item :label="'计划开始日期:'">
  282. <el-date-picker
  283. style="width: 130px"
  284. v-model="scheduledingsData.orderDate"
  285. type="date"
  286. value-format="yyyy-MM-dd"
  287. placeholder="选择日期">
  288. </el-date-picker>
  289. </el-form-item>
  290. <el-form-item :label="'排产总数:'">
  291. <el-input v-model="scheduledingsData.qty" style="width: 130px" ></el-input>
  292. </el-form-item>
  293. <el-form-item :label="'计划天数:'">
  294. <el-input v-model="scheduledingsData.dayQty" style="width: 130px" onkeyup="value=value.replace(/^(0+)|[^\d]+/g,'')"></el-input>
  295. </el-form-item>
  296. </el-form>
  297. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  298. <el-button type="primary" @click="plansSave()">保存</el-button>
  299. <el-button type="primary" @click="schedulingsFlag = false">关闭</el-button>
  300. </el-footer>
  301. </el-dialog>
  302. </div>
  303. </template>
  304. <script>
  305. import {
  306. getShopOrderData,
  307. getSchedulingSize,
  308. savePlan,
  309. getWorkPlanData,
  310. delPlan,
  311. savePlans
  312. } from '@/api/production.js'
  313. export default {
  314. name: 'productionDispatch',
  315. data () {
  316. return {
  317. schedulingsFlag: false,
  318. // 维护日计划界面
  319. schedulingModalFlag: false,
  320. scheduleTableData: [],
  321. scheduledModelData: {
  322. orderNo: '',
  323. planStartDate: '',
  324. needDate: '',
  325. schedulingSize: '',
  326. unSchedulingSize: ''
  327. },
  328. dataListSelections: [],
  329. scheduledingData: {
  330. orderNo: '',
  331. orderDate: '',
  332. orderQty: '',
  333. userName: this.$store.state.user.name,
  334. lotSize: '',
  335. planStartDate: '',
  336. needDate: '',
  337. site: this.$store.state.user.site,
  338. productionType: '生产订单',
  339. planAdd: 0,
  340. partNo: ''
  341. },
  342. scheduledingsData: {
  343. orderNo: '',
  344. orderDate: '',
  345. orderQty: '',
  346. qty: '',
  347. dayQty: '',
  348. userName: this.$store.state.user.name,
  349. lotSize: '',
  350. planStartDate: '',
  351. needDate: '',
  352. site: this.$store.state.user.site,
  353. productionType: '生产订单',
  354. planAdd: 0,
  355. partNo: ''
  356. },
  357. scheduledingDataFlag1: false,
  358. scheduledingDataFlag3: true,
  359. schedulingFlag: false,
  360. tableData: [],
  361. searchData: {
  362. orderNo: '',
  363. startDate1: new Date(),
  364. endDate1: '',
  365. startDate2: '',
  366. endDate2: '',
  367. status: '(\'已下达\',\'已发料\',\'已入库\',\'已开工\')',
  368. partNo: '',
  369. startDate3: '',
  370. endDate3: '',
  371. site: this.$store.state.user.site,
  372. planStatus: 'ISNULL(so.scheduling_size,0) >=a.LotSize'
  373. },
  374. // table高度
  375. height: 200
  376. }
  377. },
  378. mounted () {
  379. this.$nextTick(() => {
  380. this.height = window.innerHeight - 270
  381. })
  382. },
  383. methods: {
  384. search () {
  385. this.getData()
  386. },
  387. // 维护日计划界面
  388. schedulingModal () {
  389. if (this.scheduledModelData.unSchedulingSize == 0) {
  390. this.$alert('该日计划已排产完毕无需新增!', '错误', {
  391. confirmButtonText: '确定'
  392. })
  393. return false
  394. }
  395. this.scheduledingDataFlag1 = false
  396. this.scheduledingDataFlag3 = true
  397. this.scheduledingData.userName = this.$store.state.user.name
  398. this.scheduledingData.planStartDate = this.scheduledModelData.planStartDate
  399. this.scheduledingData.needDate = this.scheduledModelData.needDate
  400. this.scheduledingData.orderNo = this.scheduledModelData.orderNo
  401. this.scheduledingData.orderDate = this.scheduledModelData.planStartDate
  402. this.scheduledingData.planAdd = 0
  403. this.scheduledingData.orderQty = ''
  404. this.schedulingModalFlag = true
  405. },
  406. schedulings(){
  407. if (this.scheduledModelData.unSchedulingSize == 0) {
  408. this.$alert('该日计划已排产完毕无需新增!', '错误', {
  409. confirmButtonText: '确定'
  410. })
  411. return false
  412. }
  413. this.scheduledingsData.userName = this.$store.state.user.name
  414. this.scheduledingsData.planStartDate = this.scheduledModelData.planStartDate
  415. this.scheduledingsData.needDate = this.scheduledModelData.needDate
  416. this.scheduledingsData.orderNo = this.scheduledModelData.orderNo
  417. this.scheduledingsData.orderDate = this.scheduledModelData.planStartDate
  418. this.scheduledingsData.planAdd = 0
  419. this.scheduledingsData.orderQty = ''
  420. this.scheduledingsData.qty=''
  421. this.scheduledingsData.dayQty=''
  422. this.scheduledingsData.orderQty=''
  423. this.schedulingsFlag = true
  424. },
  425. // 排产信息界面
  426. openScheduleModel (row) {
  427. if (row.status == '已计划' || row.status == '已取消' || row.status == '已关闭') {
  428. this.$alert('该订单状态为' + row.status + '无法排产', '错误', {
  429. confirmButtonText: '确定'
  430. })
  431. return false
  432. }
  433. let list = {orderNo: row.orderNo}
  434. getSchedulingSize(list).then(({data}) => {
  435. this.scheduledModelData.schedulingSize = data.schedulingSize
  436. this.scheduledModelData.unSchedulingSize = row.lotSize - data.schedulingSize
  437. })
  438. this.scheduledingData.lotSize = row.lotSize
  439. this.scheduledingData.partNo = row.partNo
  440. this.scheduledingsData.lotSize = row.lotSize
  441. this.scheduledingsData.partNo = row.partNo
  442. this.scheduledModelData.needDate = row.needDate
  443. this.scheduledModelData.planStartDate = row.planStartDate
  444. this.scheduledModelData.orderNo = row.orderNo
  445. this.schedulingFlag = true
  446. let data1 = {orderNo: row.orderNo}
  447. getWorkPlanData(data1).then(({data}) => {
  448. this.scheduleTableData = data.rows
  449. })
  450. },
  451. // 查询
  452. getData () {
  453. getShopOrderData(JSON.parse(JSON.stringify(this.searchData))).then(({data}) => {
  454. this.tableData = data.rows
  455. })
  456. },
  457. planSave () {
  458. if (this.scheduledingData.orderDate == '' || this.scheduledingData.orderDate == null) {
  459. this.$alert('请选择计划日期!', '错误', {
  460. confirmButtonText: '确定'
  461. })
  462. return false
  463. }
  464. if (this.scheduledingData.orderQty == '' || this.scheduledingData.orderQty == null) {
  465. this.$alert('请输入排产数量!', '错误', {
  466. confirmButtonText: '确定'
  467. })
  468. return false
  469. }
  470. if (this.scheduledingData.orderQty <= 0) {
  471. this.$alert('排产数量必须大于0!', '错误', {
  472. confirmButtonText: '确定'
  473. })
  474. return false
  475. }
  476. savePlan(this.scheduledingData).then(({data}) => {
  477. if (data && data.code === 0) {
  478. this.scheduledModelData.schedulingSize = data.schedulingSize
  479. this.scheduledModelData.unSchedulingSize = this.scheduledingData.lotSize - data.schedulingSize
  480. this.schedulingModalFlag = false
  481. let data1 = {orderNo: this.scheduledModelData.orderNo}
  482. getWorkPlanData(data1).then(({data}) => {
  483. this.scheduleTableData = data.rows
  484. })
  485. this.getData()
  486. this.$message({
  487. message: '操作成功',
  488. type: 'success',
  489. duration: 1500,
  490. onClose: () => {
  491. }
  492. })
  493. } else {
  494. this.$alert(data.msg, '错误', {
  495. confirmButtonText: '确定'
  496. })
  497. }
  498. })
  499. },
  500. plansSave(){
  501. if (this.scheduledingsData.orderDate == '' || this.scheduledingsData.orderDate == null) {
  502. this.$alert('请选择计划日期!', '错误', {
  503. confirmButtonText: '确定'
  504. })
  505. return false
  506. }
  507. if (this.scheduledingsData.qty == '' || this.scheduledingsData.qty == null) {
  508. this.$alert('请输入排产总数!', '错误', {
  509. confirmButtonText: '确定'
  510. })
  511. return false
  512. }
  513. if (this.scheduledingsData.dayQty == '' || this.scheduledingsData.dayQty == null) {
  514. this.$alert('请输入计划天数!', '错误', {
  515. confirmButtonText: '确定'
  516. })
  517. return false
  518. }
  519. if (this.scheduledingsData.dayQty > 10 ) {
  520. this.$alert('计划天数不可大于10天!', '错误', {
  521. confirmButtonText: '确定'
  522. })
  523. return false
  524. }
  525. if (this.scheduledingsData.qty <= 0) {
  526. this.$alert('排产总数量必须大于0!', '错误', {
  527. confirmButtonText: '确定'
  528. })
  529. return false
  530. }
  531. if (this.scheduledModelData.unSchedulingSize<this.scheduledingsData.qty) {
  532. this.$alert('可排产数量小于计划数量!', '错误', {
  533. confirmButtonText: '确定'
  534. })
  535. return false
  536. }
  537. let num=this.scheduledingsData.qty/this.scheduledingsData.dayQty;
  538. if(Math.round(num)==num){
  539. this.scheduledingsData.orderQty=num;
  540. }else{
  541. this.scheduledingsData.orderQty=num.toFixed(1);
  542. }
  543. let scheduledList=[];
  544. let theOrderDate= this.getLastDay(this.scheduledingsData.orderDate)
  545. for (let i = 0; i < this.scheduledingsData.dayQty; i++) {
  546. theOrderDate=this.getNextDay(theOrderDate);
  547. let listData={
  548. "orderNo": this.scheduledingsData.orderNo,
  549. "orderDate": theOrderDate,
  550. "orderQty": this.scheduledingsData.orderQty,
  551. "userName": this.$store.state.user.name,
  552. "planStartDate": this.scheduledingsData.planStartDate,
  553. "needDate": this.scheduledingsData.needDate,
  554. "site": this.$store.state.user.site,
  555. "productionType": '生产订单',
  556. "partNo": this.scheduledingsData.partNo,
  557. "lotSize": this.scheduledingsData.lotSize,
  558. "planAdd": 0
  559. }
  560. scheduledList.push(listData);
  561. }
  562. savePlans(JSON.stringify(scheduledList)).then(({data}) => {
  563. if (data && data.code === 0) {
  564. this.scheduledModelData.schedulingSize = data.schedulingSize
  565. this.scheduledModelData.unSchedulingSize = this.scheduledingData.lotSize - data.schedulingSize
  566. this.schedulingsFlag = false
  567. let data1 = {orderNo: this.scheduledModelData.orderNo}
  568. getWorkPlanData(data1).then(({data}) => {
  569. this.scheduleTableData = data.rows
  570. })
  571. this.getData();
  572. this.$message({
  573. message: '操作成功',
  574. type: 'success',
  575. duration: 1500,
  576. onClose: () => {
  577. }
  578. })
  579. } else {
  580. this.$alert(data.msg, '错误', {
  581. confirmButtonText: '确定'
  582. })
  583. }
  584. })
  585. },
  586. planSaveOn () {
  587. if (this.scheduledingData.orderDate == '' || this.scheduledingData.orderDate == null) {
  588. this.$alert('请选择计划日期!', '错误', {
  589. confirmButtonText: '确定'
  590. })
  591. return false
  592. }
  593. if (this.scheduledingData.orderQty == '' || this.scheduledingData.orderQty == null) {
  594. this.$alert('请输入排产数量!', '错误', {
  595. confirmButtonText: '确定'
  596. })
  597. return false
  598. }
  599. if (this.scheduledingData.orderQty <= 0) {
  600. this.$alert('排产数量必须大于0!', '错误', {
  601. confirmButtonText: '确定'
  602. })
  603. return false
  604. }
  605. savePlan(this.scheduledingData).then(({data}) => {
  606. if (data && data.code === 0) {
  607. this.scheduledModelData.schedulingSize = data.schedulingSize;
  608. this.scheduledModelData.unSchedulingSize = this.scheduledingData.lotSize - data.schedulingSize;
  609. let data1 = {orderNo: this.scheduledModelData.orderNo}
  610. getWorkPlanData(data1).then(({data}) => {
  611. this.scheduleTableData = data.rows
  612. })
  613. this.getData();
  614. this.scheduledingData.orderDate=this.getNextDay(this.scheduledingData.orderDate);
  615. this.$message({
  616. message: '操作成功',
  617. type: 'success',
  618. duration: 1500,
  619. onClose: () => {
  620. }
  621. })
  622. } else {
  623. this.$alert(data.msg, '错误', {
  624. confirmButtonText: '确定'
  625. })
  626. }
  627. })
  628. },
  629. // 修改日计划
  630. editSchedule (row) {
  631. this.scheduledingDataFlag1 = true
  632. this.scheduledingDataFlag3 = false
  633. this.scheduledingData.userName = this.$store.state.user.name
  634. this.scheduledingData.planStartDate = this.scheduledModelData.planStartDate
  635. this.scheduledingData.needDate = this.scheduledModelData.needDate
  636. this.scheduledingData.orderNo = this.scheduledModelData.orderNo
  637. this.scheduledingData.orderDate = row.orderDate
  638. this.scheduledingData.planAdd = 1
  639. this.scheduledingData.orderQty = row.orderQty
  640. this.schedulingModalFlag = true
  641. },
  642. // 刪除
  643. deleteSchedule (row) {
  644. let delData = {
  645. orderNo: row.orderNo,
  646. orderQty: row.orderQty,
  647. orderRef1: row.orderRef1
  648. }
  649. this.$confirm(`是否取消此条日计划?`, '提示', {
  650. confirmButtonText: '确定',
  651. cancelButtonText: '取消',
  652. type: 'warning'
  653. }).then(() => {
  654. delPlan(delData).then(({data}) => {
  655. if (data && data.code === 0) {
  656. this.scheduledModelData.schedulingSize = data.schedulingSize
  657. this.scheduledModelData.unSchedulingSize = this.scheduledingData.lotSize - data.schedulingSize
  658. this.getData()
  659. let data1 = {orderNo: this.scheduledModelData.orderNo}
  660. getWorkPlanData(data1).then(({data}) => {
  661. this.scheduleTableData = data.rows
  662. })
  663. this.$message({
  664. message: '操作成功',
  665. type: 'success',
  666. duration: 1500,
  667. onClose: () => {
  668. }
  669. })
  670. } else {
  671. this.$alert(data.msg, '错误', {
  672. confirmButtonText: '确定'
  673. })
  674. }
  675. })
  676. }).catch(() => {
  677. })
  678. },
  679. getNextDay(dateTime){
  680. var dd =new Date(dateTime);
  681. dd.setDate(dd.getDate()+1);//获取1天后的日期
  682. var y = dd.getFullYear();
  683. var m = (dd.getMonth()+1)<10?"0"+(dd.getMonth()+1):(dd.getMonth()+1);//获取当前月份的日期不足10补0
  684. var d = dd.getDate()<10?"0"+dd.getDate():dd.getDate();//获取当前几号不足10补0
  685. // let haha= new Date(y+"-"+m+"-"+d);
  686. return y+"-"+m+"-"+d;
  687. },
  688. getLastDay(dateTime){
  689. var dd =new Date(dateTime);
  690. dd.setDate(dd.getDate()-1);//获取1天后的日期
  691. var y = dd.getFullYear();
  692. var m = (dd.getMonth()+1)<10?"0"+(dd.getMonth()+1):(dd.getMonth()+1);//获取当前月份的日期不足10补0
  693. var d = dd.getDate()<10?"0"+dd.getDate():dd.getDate();//获取当前几号不足10补0
  694. // let haha= new Date(y+"-"+m+"-"+d);
  695. return y+"-"+m+"-"+d;
  696. },
  697. getTime (date) {
  698. if (date == '') {
  699. return ''
  700. } else {
  701. let json_date = new Date(date).toJSON()
  702. return new Date(new Date(json_date) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '')
  703. }
  704. },
  705. },
  706. created () {
  707. }
  708. }
  709. </script>
  710. <style scoped>
  711. </style>