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.

1045 lines
37 KiB

6 months ago
  1. <template>
  2. <div class="customer-css">
  3. <el-dialog title="生产订单-工艺路线维护" v-drag v-bind="$attrs" v-on="$listeners" width="800px" class="customer-dialog" >
  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" class="customer-input-color-red" readonly style="width: 130px"></el-input>
  7. </el-form-item>
  8. <el-form-item :label="'物料编码:'">
  9. <el-input v-model="searchData.partNo" class="customer-input-color-red" readonly style="width: 130px"></el-input>
  10. </el-form-item>
  11. <el-form-item :label="'物料名称/规格:'">
  12. <el-input v-model="searchData.partDesc" class="customer-input-color-red" readonly style="width: 260px"></el-input>
  13. </el-form-item>
  14. <el-form-item :label="'工厂编号:'">
  15. <el-input v-model="searchData.site" class="customer-input-color-red" readonly style="width: 130px"></el-input>
  16. </el-form-item>
  17. </el-form>
  18. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
  19. <el-button class="customer-bun-min" type="primary" @click="addModel" style="margin-left: 0px; margin-bottom: 0px;">新增</el-button>
  20. <el-button class="customer-bun-min" type="primary" @click="updateModel" style="margin-left: 0px; margin-bottom: 0px;">编辑</el-button>
  21. <el-button class="customer-bun-min" type="primary" @click="deleteSORoutingData" style="margin-left: 0px; margin-bottom: 0px;">删除</el-button>
  22. <el-button @click="getResourceModel()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'可用机台'}}</el-button>
  23. </el-form>
  24. <el-table
  25. :height="height"
  26. :data="dataList"
  27. border
  28. @row-click="clickData"
  29. highlight-current-row
  30. v-loading="dataListLoading"
  31. style="width: 100%;">
  32. <el-table-column
  33. v-for="(item,index) in columnList" :key="index"
  34. :sortable="item.columnSortable"
  35. :prop="item.columnProp"
  36. :header-align="item.headerAlign"
  37. :show-overflow-tooltip="item.showOverflowTooltip"
  38. :align="item.align"
  39. :fixed="item.fixed==''?false:item.fixed"
  40. :width="item.columnWidth"
  41. :label="item.columnLabel">
  42. <template slot-scope="scope">
  43. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  44. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  45. style="width: 100px; height: 80px"/></span>
  46. </template>
  47. </el-table-column>
  48. </el-table>
  49. </el-dialog>
  50. <el-dialog title="维护工艺路线明细" :close-on-click-modal="false" v-drag :visible.sync="addModelFlag" width="660px">
  51. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
  52. <el-form-item :label="'工序号:'">
  53. <el-input v-model="detailData.itemNo" class="customer-input-color-red" :disabled="addInputFlag" style="width: 130px;text-align: right" type="number"></el-input>
  54. </el-form-item>
  55. <el-form-item :label="'工序名称:'">
  56. <el-input v-model="detailData.operationDesc" style="width: 130px"></el-input>
  57. </el-form-item>
  58. <el-form-item >
  59. <span slot="label" style="" @click="getBaseList(24)"><a herf="#">加工中心编码</a></span>
  60. <el-input v-model="detailData.workCenterNo" style="width: 150px"></el-input>
  61. </el-form-item>
  62. <el-form-item :label="'准备时间:'">
  63. <el-input v-model="detailData.machSetupTime" style="width: 150px"></el-input>
  64. </el-form-item>
  65. </el-form>
  66. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
  67. <el-form-item :label="'单位产出量:'">
  68. <el-input v-model="detailData.machRunFactor" type="number" style="width: 130px"></el-input>
  69. </el-form-item>
  70. <el-form-item :label="'产出单位:'">
  71. <el-select filterable v-model="detailData.factorUnit" style="width: 130px">
  72. <el-option label="单位/小时" value="单位/小时"></el-option>
  73. <el-option label="小时" value="小时"></el-option>
  74. </el-select>
  75. </el-form-item>
  76. <el-form-item :label="'计划开工时间:'">
  77. <el-date-picker
  78. v-model="detailData.planStartTime"
  79. type="datetime"
  80. value-format="yyyy-MM-dd HH:mm:ss"
  81. style="width: 150px"
  82. placeholder="选择日期时间">
  83. </el-date-picker>
  84. </el-form-item>
  85. <el-form-item :label="'计划完工时间:'">
  86. <el-date-picker
  87. v-model="detailData.planFinishTime"
  88. type="datetime"
  89. value-format="yyyy-MM-dd HH:mm:ss"
  90. style="width: 150px"
  91. placeholder="选择日期时间">
  92. </el-date-picker>
  93. </el-form-item>
  94. </el-form>
  95. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
  96. <el-form-item :label="'效率:'">
  97. <el-input v-model="detailData.efficiency" type="number" style="width: 130px"></el-input>
  98. </el-form-item>
  99. <el-form-item :label="'操作工人数:'">
  100. <el-input v-model="detailData.crewsize" type="number" style="width: 130px"></el-input>
  101. </el-form-item>
  102. <el-form-item :label="'备注:'">
  103. <el-input v-model="detailData.remark" style="width: 150px"></el-input>
  104. </el-form-item>
  105. </el-form>
  106. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  107. <el-button type="primary" @click="saveSORoutingData()">保存</el-button>
  108. <el-button type="primary" @click="addModelFlag = false">关闭</el-button>
  109. </el-footer>
  110. </el-dialog>
  111. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  112. <el-dialog title="可用机台" :close-on-click-modal="false" v-drag :visible.sync="routingModelFlag" width="800px">
  113. <el-container>
  114. <el-main style="width: 300px">
  115. <span style="" >可选机台</span>
  116. <el-table
  117. height="300px"
  118. :data="resourceList1"
  119. border
  120. @row-click="clickData2"
  121. highlight-current-row
  122. v-loading="dataListLoading"
  123. style="width: 100%">
  124. <el-table-column
  125. v-for="(item,index) in columnList2" :key="index"
  126. :sortable="item.columnSortable"
  127. :prop="item.columnProp"
  128. :header-align="item.headerAlign"
  129. :show-overflow-tooltip="item.showOverflowTooltip"
  130. :align="item.align"
  131. :fixed="item.fixed==''?false:item.fixed"
  132. :min-width="item.columnWidth"
  133. :label="item.columnLabel">
  134. <template slot-scope="scope">
  135. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  136. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  137. style="width: 100px; height: 80px"/></span>
  138. </template>
  139. </el-table-column>
  140. </el-table>
  141. </el-main>
  142. <el-main style="width: 100px">
  143. <div style="margin-top: 100px">
  144. <el-button type="primary" @click="addResource()">添加机台>></el-button>
  145. </div>
  146. <div style="margin-top: 20px">
  147. <el-button type="primary" @click="deleteResource()">删除机台<<</el-button>
  148. </div>
  149. </el-main>
  150. <el-main style="width: 300px">
  151. <span style="" >已选机台</span>
  152. <el-table
  153. height="300px"
  154. :data="resourceList2"
  155. border
  156. @row-click="clickData3"
  157. highlight-current-row
  158. v-loading="dataListLoading"
  159. style="width: 100%">
  160. <el-table-column
  161. v-for="(item,index) in columnList3" :key="index"
  162. :sortable="item.columnSortable"
  163. :prop="item.columnProp"
  164. :header-align="item.headerAlign"
  165. :show-overflow-tooltip="item.showOverflowTooltip"
  166. :align="item.align"
  167. :fixed="item.fixed==''?false:item.fixed"
  168. :min-width="item.columnWidth"
  169. :label="item.columnLabel">
  170. <template slot-scope="scope">
  171. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  172. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  173. style="width: 100px; height: 80px"/></span>
  174. </template>
  175. </el-table-column>
  176. </el-table>
  177. </el-main>
  178. </el-container>
  179. </el-dialog>
  180. </div>
  181. </template>
  182. <script>
  183. import Chooselist from '@/views/modules/common/Chooselist'
  184. import {
  185. getSORoutingData,
  186. saveSORoutingData,
  187. deleteSORoutingData,
  188. searchAllResource,
  189. searchSORoutingResource,
  190. addSORoutingResource,
  191. deleteSORoutingResource
  192. }from "@/api/base/site.js"
  193. export default {
  194. name: "updateProductRouting",
  195. components: {
  196. Chooselist
  197. },
  198. data () {
  199. return {
  200. searchData:{
  201. orderNo:'',
  202. partNo:'',
  203. partDesc:'',
  204. site:'',
  205. user:this.$store.state.user.name,
  206. },
  207. addInputFlag:'',
  208. tagNo:'',
  209. addModelFlag:false,
  210. height:350,
  211. dataList:[],
  212. resourceList1:[],
  213. resourceList2:[],
  214. dataListLoading:false,
  215. currentRow:null,
  216. currentRow2:null,
  217. currentRow3:null,
  218. columnList:[
  219. {
  220. userId: this.$store.state.user.name,
  221. functionId: 6099,
  222. serialNumber: '6099TableItemNo',
  223. tableId: "6099Table",
  224. tableName: "维护工艺路线工序表",
  225. columnProp: "itemNo",
  226. headerAlign: "center",
  227. align: "right",
  228. columnLabel: "工序号",
  229. columnHidden: false,
  230. columnImage: false,
  231. columnSortable: false,
  232. sortLv: 0,
  233. status: true,
  234. fixed: '',
  235. columnWidth: 60
  236. },
  237. {
  238. userId: this.$store.state.user.name,
  239. functionId: 6099,
  240. serialNumber: '6099TableOperationDesc',
  241. tableId: "6099Table",
  242. tableName: "维护工艺路线工序表",
  243. columnProp: "operationDesc",
  244. headerAlign: "center",
  245. align: "left",
  246. columnLabel: "工序名称",
  247. columnHidden: false,
  248. columnImage: false,
  249. columnSortable: false,
  250. sortLv: 0,
  251. status: true,
  252. fixed: '',
  253. columnWidth: 300
  254. },
  255. {
  256. userId: this.$store.state.user.name,
  257. functionId: 6099,
  258. serialNumber: '6099TableWorkCenterNo',
  259. tableId: "6099Table",
  260. tableName: "维护工艺路线工序表",
  261. columnProp: "workCenterNo",
  262. headerAlign: "center",
  263. align: "left",
  264. columnLabel: "加工中心编码",
  265. columnHidden: false,
  266. columnImage: false,
  267. columnSortable: false,
  268. sortLv: 0,
  269. status: true,
  270. fixed: '',
  271. columnWidth: 100
  272. },
  273. {
  274. userId: this.$store.state.user.name,
  275. functionId: 6099,
  276. serialNumber: '6099TableWorkCenterDesc',
  277. tableId: "6099Table",
  278. tableName: "维护工艺路线工序表",
  279. columnProp: "workCenterDesc",
  280. headerAlign: "center",
  281. align: "left",
  282. columnLabel: "加工中心名称",
  283. columnHidden: false,
  284. columnImage: false,
  285. columnSortable: false,
  286. sortLv: 0,
  287. status: true,
  288. fixed: '',
  289. columnWidth: 100
  290. },
  291. {
  292. userId: this.$store.state.user.name,
  293. functionId: 6099,
  294. serialNumber: '6099TableMachSetupTime',
  295. tableId: "6099Table",
  296. tableName: "维护工艺路线工序表",
  297. columnProp: "machSetupTime",
  298. headerAlign: "center",
  299. align: "right",
  300. columnLabel: "准备时间(小时)",
  301. columnHidden: false,
  302. columnImage: false,
  303. columnSortable: false,
  304. sortLv: 0,
  305. status: true,
  306. fixed: '',
  307. columnWidth: 100
  308. },
  309. {
  310. userId: this.$store.state.user.name,
  311. functionId: 6099,
  312. serialNumber: '6099TableMachRunFactor',
  313. tableId: "6099Table",
  314. tableName: "维护工艺路线工序表",
  315. columnProp: "machRunFactor",
  316. headerAlign: "center",
  317. align: "right",
  318. columnLabel: "单位产出量",
  319. columnHidden: false,
  320. columnImage: false,
  321. columnSortable: false,
  322. sortLv: 0,
  323. status: true,
  324. fixed: '',
  325. columnWidth: 100
  326. },
  327. {
  328. userId: this.$store.state.user.name,
  329. functionId: 6099,
  330. serialNumber: '6099TableFactorUnit',
  331. tableId: "6099Table",
  332. tableName: "维护工艺路线工序表",
  333. columnProp: "factorUnit",
  334. headerAlign: "center",
  335. align: "left",
  336. columnLabel: "产出单位",
  337. columnHidden: false,
  338. columnImage: false,
  339. columnSortable: false,
  340. sortLv: 0,
  341. status: true,
  342. fixed: '',
  343. columnWidth: 100
  344. },
  345. {
  346. userId: this.$store.state.user.name,
  347. functionId: 6099,
  348. serialNumber: '6099TableTimeRequired',
  349. tableId: "6099Table",
  350. tableName: "维护工艺路线工序表",
  351. columnProp: "timeRequired",
  352. headerAlign: "center",
  353. align: "right",
  354. columnLabel: "需求时间",
  355. columnHidden: false,
  356. columnImage: false,
  357. columnSortable: false,
  358. sortLv: 0,
  359. status: true,
  360. fixed: '',
  361. columnWidth: 80
  362. },
  363. {
  364. userId: this.$store.state.user.name,
  365. functionId: 6099,
  366. serialNumber: '6099TableTimeReported',
  367. tableId: "6099Table",
  368. tableName: "维护工艺路线工序表",
  369. columnProp: "timeReported",
  370. headerAlign: "center",
  371. align: "right",
  372. columnLabel: "报告时间",
  373. columnHidden: false,
  374. columnImage: false,
  375. columnSortable: false,
  376. sortLv: 0,
  377. status: true,
  378. fixed: '',
  379. columnWidth: 80
  380. },
  381. {
  382. userId: this.$store.state.user.name,
  383. functionId: 6099,
  384. serialNumber: '6099TableEfficiency',
  385. tableId: "6099Table",
  386. tableName: "维护工艺路线工序表",
  387. columnProp: "efficiency",
  388. headerAlign: "center",
  389. align: "right",
  390. columnLabel: "效率(%)",
  391. columnHidden: false,
  392. columnImage: false,
  393. columnSortable: false,
  394. sortLv: 0,
  395. status: true,
  396. fixed: '',
  397. columnWidth: 80
  398. },
  399. {
  400. userId: this.$store.state.user.name,
  401. functionId: 6099,
  402. serialNumber: '6099TableRemark',
  403. tableId: "6099Table",
  404. tableName: "维护工艺路线工序表",
  405. columnProp: "remark",
  406. headerAlign: "center",
  407. align: "left",
  408. columnLabel: "备注",
  409. columnHidden: false,
  410. columnImage: false,
  411. columnSortable: false,
  412. sortLv: 0,
  413. status: true,
  414. fixed: '',
  415. columnWidth: 160
  416. },
  417. {
  418. userId: this.$store.state.user.name,
  419. functionId: 6099,
  420. serialNumber: '6099TableQtyRequired',
  421. tableId: "6099Table",
  422. tableName: "维护工艺路线工序表",
  423. columnProp: "qtyRequired",
  424. headerAlign: "center",
  425. align: "right",
  426. columnLabel: "需求数量",
  427. columnHidden: false,
  428. columnImage: false,
  429. columnSortable: false,
  430. sortLv: 0,
  431. status: true,
  432. fixed: '',
  433. columnWidth: 80
  434. },
  435. {
  436. userId: this.$store.state.user.name,
  437. functionId: 6099,
  438. serialNumber: '6099TableQtyReported',
  439. tableId: "6099Table",
  440. tableName: "维护工艺路线工序表",
  441. columnProp: "qtyReported",
  442. headerAlign: "center",
  443. align: "right",
  444. columnLabel: "计价单位",
  445. columnHidden: false,
  446. columnImage: false,
  447. columnSortable: false,
  448. sortLv: 0,
  449. status: true,
  450. fixed: '',
  451. columnWidth: 80
  452. },
  453. {
  454. userId: this.$store.state.user.name,
  455. functionId: 6099,
  456. serialNumber: '6099TableQtyApprove',
  457. tableId: "6099Table",
  458. tableName: "维护工艺路线工序表",
  459. columnProp: "qtyApprove",
  460. headerAlign: "center",
  461. align: "right",
  462. columnLabel: "合格数量",
  463. columnHidden: false,
  464. columnImage: false,
  465. columnSortable: false,
  466. sortLv: 0,
  467. status: true,
  468. fixed: '',
  469. columnWidth: 80
  470. },
  471. {
  472. userId: this.$store.state.user.name,
  473. functionId: 6099,
  474. serialNumber: '6099TablePlanStartTime',
  475. tableId: "6099Table",
  476. tableName: "维护工艺路线工序表",
  477. columnProp: "planStartTime",
  478. headerAlign: "center",
  479. align: "left",
  480. columnLabel: "计划开工时间",
  481. columnHidden: false,
  482. columnImage: false,
  483. columnSortable: false,
  484. sortLv: 0,
  485. status: true,
  486. fixed: '',
  487. columnWidth: 140
  488. },
  489. {
  490. userId: this.$store.state.user.name,
  491. functionId: 6099,
  492. serialNumber: '6099TablePlanFinishTime',
  493. tableId: "6099Table",
  494. tableName: "维护工艺路线工序表",
  495. columnProp: "planFinishTime",
  496. headerAlign: "center",
  497. align: "left",
  498. columnLabel: "计划完工时间",
  499. columnHidden: false,
  500. columnImage: false,
  501. columnSortable: false,
  502. sortLv: 0,
  503. status: true,
  504. fixed: '',
  505. columnWidth: 140
  506. },
  507. {
  508. userId: this.$store.state.user.name,
  509. functionId: 6099,
  510. serialNumber: '6099TableBarcodeID',
  511. tableId: "6099Table",
  512. tableName: "维护工艺路线工序表",
  513. columnProp: "barcodeID",
  514. headerAlign: "center",
  515. align: "left",
  516. columnLabel: "条形码",
  517. columnHidden: false,
  518. columnImage: false,
  519. columnSortable: false,
  520. sortLv: 0,
  521. status: true,
  522. fixed: '',
  523. columnWidth: 120
  524. },
  525. {
  526. userId: this.$store.state.user.name,
  527. functionId: 6099,
  528. serialNumber: '6099TableCrewsize',
  529. tableId: "6099Table",
  530. tableName: "维护工艺路线工序表",
  531. columnProp: "crewsize",
  532. headerAlign: "center",
  533. align: "left",
  534. columnLabel: "操作工人数",
  535. columnHidden: false,
  536. columnImage: false,
  537. columnSortable: false,
  538. sortLv: 0,
  539. status: true,
  540. fixed: '',
  541. columnWidth: 100
  542. },
  543. {
  544. userId: this.$store.state.user.name,
  545. functionId: 6099,
  546. serialNumber: '6099TableWXPartNo',
  547. tableId: "6099Table",
  548. tableName: "维护工艺路线工序表",
  549. columnProp: "wxPartNo",
  550. headerAlign: "center",
  551. align: "left",
  552. columnLabel: "费用结算料号",
  553. columnHidden: false,
  554. columnImage: false,
  555. columnSortable: false,
  556. sortLv: 0,
  557. status: true,
  558. fixed: '',
  559. columnWidth: 120
  560. },
  561. {
  562. userId: this.$store.state.user.name,
  563. functionId: 6099,
  564. serialNumber: '6099TableWXSpec',
  565. tableId: "6099Table",
  566. tableName: "维护工艺路线工序表",
  567. columnProp: "wxSpec",
  568. headerAlign: "center",
  569. align: "left",
  570. columnLabel: "费用结算物料名称/规格",
  571. columnHidden: false,
  572. columnImage: false,
  573. columnSortable: false,
  574. sortLv: 0,
  575. status: true,
  576. fixed: '',
  577. columnWidth: 250
  578. },
  579. ],
  580. detailData:{
  581. itemNo:'',
  582. operationDesc:'',
  583. workCenterNo:'',
  584. machSetupTime:'',
  585. machRunFactor:'',
  586. factorUnit:'单位/小时',
  587. planStartTime:'',
  588. planFinishTime:'',
  589. efficiency:'',
  590. crewsize:'',
  591. remark:'',
  592. site:'',
  593. partNo:'',
  594. add:'',
  595. user:'',
  596. },
  597. detailmodelInputFlag:false,
  598. routingModelFlag:false,
  599. columnList2:[
  600. {
  601. userId: this.$store.state.user.name,
  602. functionId: 6099,
  603. serialNumber: '6099Table2ResourceID',
  604. tableId: "6099Table2",
  605. tableName: "维护工艺路线可用机台表",
  606. columnProp: "resourceID",
  607. headerAlign: "center",
  608. align: "left",
  609. columnLabel: "机台编码",
  610. columnHidden: false,
  611. columnImage: false,
  612. columnSortable: false,
  613. sortLv: 0,
  614. status: true,
  615. fixed: '',
  616. columnWidth: 70
  617. },
  618. {
  619. userId: this.$store.state.user.name,
  620. functionId: 6099,
  621. serialNumber: '6099Table2ResourceDesc',
  622. tableId: "6099Table2",
  623. tableName: "维护工艺路线可用机台表",
  624. columnProp: "resourceDesc",
  625. headerAlign: "center",
  626. align: "left",
  627. columnLabel: "机台名称",
  628. columnHidden: false,
  629. columnImage: false,
  630. columnSortable: false,
  631. sortLv: 0,
  632. status: true,
  633. fixed: '',
  634. columnWidth: 160
  635. },
  636. {
  637. userId: this.$store.state.user.name,
  638. functionId: 6099,
  639. serialNumber: '6099Table2Active',
  640. tableId: "6099Table2",
  641. tableName: "维护工艺路线可用机台表",
  642. columnProp: "active",
  643. headerAlign: "center",
  644. align: "left",
  645. columnLabel: "在用",
  646. columnHidden: false,
  647. columnImage: false,
  648. columnSortable: false,
  649. sortLv: 0,
  650. status: true,
  651. fixed: '',
  652. columnWidth: 50
  653. },
  654. ],
  655. columnList3:[
  656. {
  657. userId: this.$store.state.user.name,
  658. functionId: 6099,
  659. serialNumber: '6099Table3ResourceID',
  660. tableId: "6099Table3",
  661. tableName: "维护工艺路线已选机台表",
  662. columnProp: "resourceID",
  663. headerAlign: "center",
  664. align: "left",
  665. columnLabel: "机台编码",
  666. columnHidden: false,
  667. columnImage: false,
  668. columnSortable: false,
  669. sortLv: 0,
  670. status: true,
  671. fixed: '',
  672. columnWidth: 70
  673. },
  674. {
  675. userId: this.$store.state.user.name,
  676. functionId: 6099,
  677. serialNumber: '6099Table3ResourceDesc',
  678. tableId: "6099Table3",
  679. tableName: "维护工艺路线已选机台表",
  680. columnProp: "resourceDesc",
  681. headerAlign: "center",
  682. align: "left",
  683. columnLabel: "机台名称",
  684. columnHidden: false,
  685. columnImage: false,
  686. columnSortable: false,
  687. sortLv: 0,
  688. status: true,
  689. fixed: '',
  690. columnWidth: 160
  691. },
  692. {
  693. userId: this.$store.state.user.name,
  694. functionId: 6099,
  695. serialNumber: '6099Table3Active',
  696. tableId: "6099Table3",
  697. tableName: "维护工艺路线已选机台表",
  698. columnProp: "active",
  699. headerAlign: "center",
  700. align: "left",
  701. columnLabel: "在用",
  702. columnHidden: false,
  703. columnImage: false,
  704. columnSortable: false,
  705. sortLv: 0,
  706. status: true,
  707. fixed: '',
  708. columnWidth: 50
  709. },
  710. ],
  711. }
  712. },
  713. mounted() {
  714. },
  715. watch: {
  716. '$route' (to, from) {
  717. // if(localStorage.getItem('calendar')!=undefined){
  718. // this.jump();
  719. // }
  720. }
  721. },
  722. methods: {
  723. getBaseData(val){
  724. if (this.tagNo === 24){
  725. this.detailData.workCenterNo = val.WorkCenterNo
  726. }
  727. },
  728. // 获取基础数据列表
  729. getBaseList(val){
  730. this.tagNo = val
  731. this.$nextTick(() => {
  732. let strVal = "";
  733. if (val === 24){
  734. strVal = this.detailData.workCenterNo
  735. }
  736. this.$refs.baseList.init(val,strVal)
  737. })
  738. },
  739. init(searchData){
  740. //设置参数
  741. this.searchData = searchData;
  742. //调用方法
  743. this.getData();
  744. },
  745. getData(){
  746. getSORoutingData(this.searchData).then(({data}) => {
  747. this.dataList = data.rows;
  748. if(data.total==0){
  749. this.dataList =[];
  750. }
  751. })
  752. },
  753. clickData(row){
  754. this.currentRow = JSON.parse(JSON.stringify(row));
  755. },
  756. addModel(){
  757. this.detailData={
  758. itemNo:'',
  759. operationDesc:'',
  760. workCenterNo:'',
  761. machSetupTime:0,
  762. machRunFactor:1,
  763. factorUnit:'单位/小时',
  764. planStartTime:this.dayjs().format("YYYY-MM-DD HH:mm:ss"),
  765. planFinishTime:this.dayjs().format("YYYY-MM-DD HH:mm:ss"),
  766. efficiency:100,
  767. crewsize:1,
  768. remark:'',
  769. site:this.searchData.site,
  770. partNo:this.searchData.partNo,
  771. add:0,
  772. user:this.$store.state.user.name,
  773. };
  774. if(this.dataList===[]){
  775. this.detailData.itemNo=10;
  776. }else {
  777. this.detailData.itemNo=this.dataList[0].itemNo;
  778. for (let i = 0; i < this.dataList.length; i++) {
  779. if(this.detailData.itemNo<this.dataList[i].itemNo){
  780. this.detailData.itemNo=this.dataList[i].itemNo
  781. }
  782. }
  783. this.detailData.itemNo+=10;
  784. }
  785. this.addInputFlag=false;
  786. this.addModelFlag=true;
  787. },
  788. updateModel(){
  789. if(this.currentRow==null){
  790. this.$alert('请选择工序', '错误', {
  791. confirmButtonText: '确定'
  792. })
  793. return false;
  794. }
  795. this.detailData={
  796. itemNo:this.currentRow.itemNo,
  797. operationDesc:this.currentRow.operationDesc,
  798. workCenterNo:this.currentRow.workCenterNo,
  799. machSetupTime:this.currentRow.machSetupTime,
  800. machRunFactor:this.currentRow.machRunFactor,
  801. factorUnit:this.currentRow.factorUnit,
  802. planStartTime:this.currentRow.planStartTime,
  803. planFinishTime:this.currentRow.planFinishTime,
  804. efficiency:this.currentRow.efficiency,
  805. crewsize:this.currentRow.crewsize,
  806. remark:this.currentRow.remark,
  807. site:this.currentRow.site,
  808. partNo:this.currentRow.partNo,
  809. add:1,
  810. user:this.$store.state.user.name,
  811. }
  812. this.addInputFlag=true;
  813. this.addModelFlag=true;
  814. },
  815. saveSORoutingData(){
  816. if(this.detailData.itemNo==''||this.detailData.itemNo==null){
  817. this.$alert("请输入工序号!",'错误',{
  818. confirmButtonText:'确定'
  819. })
  820. return false;
  821. }
  822. if(this.detailData.operationDesc==''||this.detailData.operationDesc==null){
  823. this.$alert("请输入工序名称!",'错误',{
  824. confirmButtonText:'确定'
  825. })
  826. return false;
  827. }
  828. if(this.detailData.machSetupTime===''||this.detailData.machSetupTime==null){
  829. this.$alert("请输入准备时间!",'错误',{
  830. confirmButtonText:'确定'
  831. })
  832. return false;
  833. }
  834. if(this.detailData.workCenterNo==''||this.detailData.workCenterNo==null){
  835. this.$alert("请输入加工中心编码!",'错误',{
  836. confirmButtonText:'确定'
  837. })
  838. return false;
  839. }
  840. if(this.detailData.crewsize===''||this.detailData.crewsize==null){
  841. this.$alert("请输入操作员人数!",'错误',{
  842. confirmButtonText:'确定'
  843. })
  844. return false;
  845. }
  846. if(this.detailData.efficiency===''||this.detailData.efficiency==null){
  847. this.$alert("请输入效率!",'错误',{
  848. confirmButtonText:'确定'
  849. })
  850. return false;
  851. }
  852. if(this.detailData.machRunFactor===''||this.detailData.machRunFactor==null){
  853. this.$alert("请输入单位产出量!",'错误',{
  854. confirmButtonText:'确定'
  855. })
  856. return false;
  857. }
  858. if(this.detailData.machRunFactor<=0){
  859. this.$alert("单位产出量必须大于0!",'错误',{
  860. confirmButtonText:'确定'
  861. })
  862. return false;
  863. }
  864. if(this.detailData.efficiency<=0){
  865. this.$alert("效率必须大于0!",'错误',{
  866. confirmButtonText:'确定'
  867. })
  868. return false;
  869. }
  870. let inData={
  871. itemNo:this.detailData.itemNo,
  872. operationDesc:this.detailData.operationDesc,
  873. workCenterNo:this.detailData.workCenterNo,
  874. machSetupTime:this.detailData.machSetupTime,
  875. machRunFactor:this.detailData.machRunFactor,
  876. factorUnit:this.detailData.factorUnit,
  877. planStartTime:this.detailData.planStartTime,
  878. planFinishTime:this.detailData.planFinishTime,
  879. efficiency:this.detailData.efficiency,
  880. crewsize:this.detailData.crewsize,
  881. remark:this.detailData.remark,
  882. site:this.detailData.site,
  883. partNo:this.detailData.partNo,
  884. orderNo:this.searchData.orderNo,
  885. add:this.detailData.add,
  886. user:this.$store.state.user.name,
  887. }
  888. saveSORoutingData(inData).then(({data}) => {
  889. this.currentRow=null;
  890. if (data && data.code == 200) {
  891. this.addModelFlag = false
  892. this.getData();
  893. this.$message.success('操作成功')
  894. } else {
  895. this.$alert(data.msg, '错误', {
  896. confirmButtonText: '确定'
  897. })
  898. }
  899. })
  900. },
  901. deleteSORoutingData(){
  902. if(this.currentRow==null){
  903. this.$alert("请选择工序!", '错误', {
  904. confirmButtonText: '确定'
  905. })
  906. return false;
  907. }
  908. this.$confirm(`是否删除此工艺路线工序?`, '提示', {
  909. confirmButtonText: '确定',
  910. cancelButtonText: '取消',
  911. type: 'warning'
  912. }).then(() => {
  913. deleteSORoutingData(this.currentRow).then(({data}) => {
  914. this.currentRow=null;
  915. if (data && data.code == 200) {
  916. this.getData();
  917. this.$message.success('删除成功')
  918. } else {
  919. this.$alert(data.msg, '错误', {
  920. confirmButtonText: '确定'
  921. })
  922. }
  923. })
  924. })
  925. },
  926. clickData3(row){
  927. this.currentRow3 = JSON.parse(JSON.stringify(row));
  928. },
  929. clickData2(row){
  930. this.currentRow2 = JSON.parse(JSON.stringify(row));
  931. },
  932. getResourceModel(){
  933. if(this.currentRow==null){
  934. this.$alert("请选择工艺路线工序!", '错误', {
  935. confirmButtonText: '确定'
  936. })
  937. return false;
  938. }
  939. let data1={
  940. site:this.searchData.site,
  941. workCenterNo:this.currentRow.workCenterNo,
  942. }
  943. searchAllResource(data1).then(({data}) => {
  944. this.resourceList1 = data.rows
  945. })
  946. let data2={
  947. site:this.searchData.site,
  948. orderNo:this.searchData.orderNo,
  949. itemNo:this.currentRow.itemNo
  950. }
  951. searchSORoutingResource(data2).then(({data}) => {
  952. this.resourceList2 = data.rows
  953. })
  954. this.routingModelFlag=true;
  955. },
  956. addResource(){
  957. if(this.currentRow2==null){
  958. this.$alert("请选择可选机台!", '错误', {
  959. confirmButtonText: '确定'
  960. })
  961. return false;
  962. }
  963. let inData={
  964. site: this.currentRow.site,
  965. orderNo:this.currentRow.orderNo,
  966. itemNo:this.currentRow.itemNo,
  967. resourceID:this.currentRow2.resourceID
  968. }
  969. addSORoutingResource(inData).then(({data}) => {
  970. if (data && data.code == 200) {
  971. let data2={
  972. site:this.searchData.site,
  973. orderNo:this.searchData.orderNo,
  974. itemNo:this.currentRow.itemNo
  975. }
  976. searchSORoutingResource(data2).then(({data}) => {
  977. this.resourceList2 = data.rows
  978. })
  979. } else {
  980. this.$alert(data.msg, '错误', {
  981. confirmButtonText: '确定'
  982. })
  983. }
  984. })
  985. },
  986. deleteResource(){
  987. if(this.currentRow3==null){
  988. this.$alert("请选择已选机台!", '错误', {
  989. confirmButtonText: '确定'
  990. })
  991. return false;
  992. }
  993. this.$confirm(`是否删除此机台?`, '提示', {
  994. confirmButtonText: '确定',
  995. cancelButtonText: '取消',
  996. type: 'warning'
  997. }).then(() => {
  998. let inData = {
  999. site: this.currentRow.site,
  1000. orderNo:this.currentRow.orderNo,
  1001. itemNo:this.currentRow.itemNo,
  1002. resourceID: this.currentRow3.resourceID
  1003. }
  1004. deleteSORoutingResource(inData).then(({data}) => {
  1005. if (data && data.code == 200) {
  1006. this.currentRow3 = null;
  1007. let data2={
  1008. site:this.searchData.site,
  1009. orderNo:this.searchData.orderNo,
  1010. itemNo:this.currentRow.itemNo
  1011. }
  1012. searchSORoutingResource(data2).then(({data}) => {
  1013. this.resourceList2 = data.rows
  1014. })
  1015. } else {
  1016. this.$alert(data.msg, '错误', {
  1017. confirmButtonText: '确定'
  1018. })
  1019. }
  1020. })
  1021. })
  1022. },
  1023. },
  1024. created() {
  1025. }
  1026. }
  1027. </script>
  1028. <style scoped>
  1029. /*统一的input内容颜色样式*/
  1030. .customer-input-color-red /deep/ .el-input__inner {
  1031. color: red;
  1032. }
  1033. </style>