details.vue 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494
  1. <template>
  2. <!-- 报工详情 -->
  3. <div>
  4. <div class="" v-if="taskType != 5">
  5. <div v-for="(objData, index) in list" :key="index" class="card_box">
  6. <div class="rx-bc">
  7. <div class="item_box rx-bc">
  8. <div class="round">{{ index + 1 }}</div>
  9. <div class="time"
  10. >报工时间:{{
  11. objData.workReportInfo
  12. ? objData.workReportInfo.executorTime
  13. : ''
  14. }}
  15. </div>
  16. </div>
  17. <div class="item_box rx-bc">
  18. <div class="time"
  19. >报工人:{{
  20. objData.workReportInfo
  21. ? objData.workReportInfo.executorName
  22. : ''
  23. }}
  24. </div>
  25. </div>
  26. <div class="item_box rx-bc">
  27. <div class="time"
  28. >工序名称:
  29. {{
  30. objData.currentTaskDiagram &&
  31. objData.currentTaskDiagram.taskTypeName
  32. }}</div
  33. >
  34. </div>
  35. </div>
  36. <paramBom
  37. v-if="objData.paramDetailList.length != 0"
  38. :list="objData.paramDetailList"
  39. ></paramBom>
  40. <div>
  41. <workOrderBom
  42. :item="objData"
  43. v-if="objData"
  44. :isDetails="true"
  45. ></workOrderBom>
  46. <jobBom
  47. :item="objData"
  48. v-if="objData.notFormedList"
  49. :palletList="objData.palletList"
  50. :notFormed="objData.notFormedList"
  51. :isDetails="true"
  52. ></jobBom>
  53. <deviceBom
  54. v-if="objData.equipmentList && objData.equipmentList.length != 0"
  55. :list="objData.equipmentList"
  56. >
  57. </deviceBom>
  58. <modelBom
  59. v-if="objData.modelList && objData.modelList.length != 0"
  60. :list="objData.modelList"
  61. >
  62. </modelBom>
  63. <!--
  64. <qualityStat
  65. :normalQuality="objData.normalQuality"
  66. v-if="objData && taskType == 3"
  67. ></qualityStat> -->
  68. <!-- <sampleBom
  69. :item="objData.quality"
  70. v-if="objData.quality && taskType == 2"
  71. :workReportInfo="objData.workReportInfo"
  72. :isDetails="true"
  73. ></sampleBom> -->
  74. <palletBom
  75. v-if="objData.palletList && objData.palletList.length != 0"
  76. :palletList="objData.palletList"
  77. :isDetails="true"
  78. >
  79. </palletBom>
  80. <revolvingDiskBom
  81. v-if="
  82. objData.revolvingDiskList && objData.revolvingDiskList.length > 0
  83. "
  84. pattern="job"
  85. :revolvingDiskList="objData.revolvingDiskList"
  86. ></revolvingDiskBom>
  87. <!-- //单件报工 -->
  88. <semiProductJobBom
  89. v-if="
  90. objData.semiProductList && objData.semiProductList.length != 0
  91. "
  92. :list="objData.semiProductList"
  93. :item="objData"
  94. :isDetails="true"
  95. :singleReport="objData.singleReport"
  96. :equipmentList="objData.equipmentList"
  97. >
  98. </semiProductJobBom>
  99. <!-- 批量报工 -->
  100. <batchSemiProductJobBom
  101. v-if="objData.product && objData.product.length != 0"
  102. :list="objData.product"
  103. :item="objData"
  104. :isDetails="true"
  105. :singleReport="objData.singleReport"
  106. :equipmentList="objData.equipmentList"
  107. >
  108. </batchSemiProductJobBom>
  109. <!-- 批量报工 -->
  110. <!-- <semiProductJobBomPL v-if="
  111. objData.semiProductList &&
  112. (objData.semiProductList.length != 0) &&
  113. objData.singleReport == 0 && !(taskType == 6 && clientEnvironmentId == 3)
  114. " :list="objData.semiProductList" :item="objData" :equipmentList="objData.equipmentList" :isDetails="true" :singleReport="objData.singleReport">
  115. </semiProductJobBomPL> -->
  116. <!-- <oneJobQualityBom v-if="
  117. objData.semiProductList &&
  118. (objData.semiProductList.length != 0) && (taskType == 6) && clientEnvironmentId == 3 && objData.singleReport == 1
  119. " :list="objData.semiProductList" :item="objData" :isDetails="true"></oneJobQualityBom> -->
  120. <oneJobQualityBomPL
  121. v-if="
  122. taskType == 6 &&
  123. clientEnvironmentId == 3 &&
  124. objData.singleReport == 0
  125. "
  126. :list="objData.semiProductList"
  127. :item="objData"
  128. :isDetails="true"
  129. ></oneJobQualityBomPL>
  130. <byProductBom
  131. v-if="
  132. objData.productRecycleList &&
  133. objData.productRecycleList.length != 0
  134. "
  135. :list="objData.productRecycleList"
  136. :isDetails="true"
  137. >
  138. </byProductBom>
  139. <turnoverBom
  140. v-if="objData.turnover && objData.turnover.length != 0"
  141. :list="objData.turnover"
  142. :wordItem="objData"
  143. pattern="job"
  144. :isDetails="true"
  145. >
  146. </turnoverBom>
  147. <aridRegion
  148. v-if="objData.aridRegionList && objData.aridRegionList.length != 0"
  149. :list="objData.aridRegionList"
  150. :remainingTime="0"
  151. :isType="true"
  152. ></aridRegion>
  153. <div
  154. v-if="
  155. clientEnvironmentId != 2 &&
  156. objData &&
  157. objData.currentTaskDiagram.type == 4 &&
  158. clientEnvironmentId != 3
  159. "
  160. >
  161. <!-- <packagingGrouping
  162. ref="packagingGroupingRef"
  163. :objData="objData"
  164. :workOrderId="objData.workOrderId"
  165. :taskId="objData.currentTaskDiagram.taskId"
  166. >
  167. </packagingGrouping> -->
  168. <detailPackagingGrouping
  169. ref="packagingGroupingRef"
  170. :objData="objData"
  171. :workOrderId="objData.workOrderId"
  172. :taskId="objData.currentTaskDiagram.taskId"
  173. :isDetails="true"
  174. >
  175. </detailPackagingGrouping>
  176. </div>
  177. <div
  178. v-if="
  179. planValue == 1 &&
  180. (taskType == 2 || taskType == 3 || taskType == 6)
  181. "
  182. >
  183. <detailsIndex
  184. :code="objData.code"
  185. :taskId="objData.currentTaskDiagram.taskId"
  186. >
  187. </detailsIndex>
  188. </div>
  189. <packingTgBom
  190. v-if="
  191. objData.packInfo &&
  192. objData.packInfo.pickOutInList &&
  193. objData.packInfo.pickOutInList != 0 &&
  194. taskType == 4 &&
  195. clientEnvironmentId == 3
  196. "
  197. :list="objData.packInfo.pickOutInList"
  198. :isWarehousing="true"
  199. :isDetails="true"
  200. :item="objData"
  201. >
  202. </packingTgBom>
  203. <div
  204. v-if="
  205. taskType == 4 &&
  206. clientEnvironmentId != 3 &&
  207. objData.semiProductList.length != 0
  208. "
  209. >
  210. <semiProductJobBom
  211. :singleReport="objData.singleReport"
  212. :item="objData"
  213. :isDetails="true"
  214. :list="
  215. taskType == 4 ? objData.pickOutInList : objData.semiProductList
  216. "
  217. :equipmentList="objData.equipmentList"
  218. ></semiProductJobBom>
  219. </div>
  220. </div>
  221. </div>
  222. </div>
  223. <div v-if="taskType == 5">
  224. <div class="card_box" v-for="(objData, index) in list" :key="index">
  225. <div class="rx-bc">
  226. <div class="item_box rx-bc">
  227. <div class="round">{{ index + 1 }}</div>
  228. <div class="time">报工时间:{{ objData.executorTime }} </div>
  229. </div>
  230. <div class="item_box rx-bc">
  231. <div class="time">报工人:{{ objData.executorName }} </div>
  232. </div>
  233. <div class="item_box rx-bc">
  234. <div class="time">工序名称:入库</div>
  235. </div>
  236. </div>
  237. <!-- <div class="rx-bc">
  238. <div class="item_box rx-bc">
  239. <div class="round">{{ index + 1 }}</div>
  240. <div class="time">报工时间:{{ objData.executorTime }} </div>
  241. </div>
  242. <div class="item_box rx-bc">
  243. <div class="time">报工人:{{ objData.executorName }} </div>
  244. </div>
  245. <div class="item_box rx-bc">
  246. <div class="time"
  247. >工序名称:入库</div
  248. >
  249. </div>
  250. </div> -->
  251. <workOrderBom2
  252. :item="objData"
  253. v-if="objData"
  254. :isDetails="true"
  255. ></workOrderBom2>
  256. <div v-if="objData.detailList && objData.detailList.length">
  257. <detailsBom :list="objData.detailList" :isDetails="true"></detailsBom>
  258. </div>
  259. </div>
  260. </div>
  261. </div>
  262. </template>
  263. <script>
  264. import { listWorkReport, listApplystorage } from '@/api/produce/workOrder';
  265. import { parameterGetByCode } from '@/api/system/dictionary-data';
  266. import workOrderBom from '../feeding/components/workOrderBom.vue';
  267. import deviceBom from '../feeding/components/deviceBom.vue';
  268. import modelBom from '../feeding/components/modelBom.vue';
  269. import jobBom from '../jobBooking/components/jobBom.vue';
  270. import semiProductJobBom from '../jobBooking/components/semiProductJobBom.vue';
  271. import semiProductJobBomPL from '../jobBooking/components/semiProductJobBomPL.vue';
  272. import batchSemiProductJobBom from './components/batchSemiProductJobBom.vue';
  273. import oneJobQualityBom from '../jobBooking/components/oneJobQualityBom.vue';
  274. import oneJobQualityBomPL from '../jobBooking/components/oneJobQualityBomPL.vue';
  275. import packagingGrouping from './components/packagingGrouping.vue';
  276. import detailPackagingGrouping from './components/detailPackagingGrouping.vue';
  277. // import byProductBom from '../jobBooking/components/byProductBom';
  278. import byProductBom from '../jobBooking/components/newByProductBom.vue';
  279. import turnoverBom from '../jobBooking/components/turnoverBom.vue';
  280. import aridRegion from '../feeding/components/aridRegion.vue';
  281. import paramBom from '../feeding/components/paramBom.vue';
  282. // import qualityStat from '../sample/components/qualityStat.vue';
  283. // import sampleBom from '../sample/components/sampleBom.vue';
  284. import palletBom from '../feeding/components/palletBom.vue';
  285. import revolvingDiskBom from '../feeding/components/revolvingDiskBom.vue';
  286. import packingTgBom from '../jobBooking/components/packingTgBom.vue';
  287. // import packingBom from '../jobBooking/components/packingBomDetails.vue';
  288. import detailsBom from '../warehousing/components/detailsBom.vue';
  289. import workOrderBom2 from '../warehousing/components/workOrderBom.vue';
  290. import detailsIndex from '../workPlan/detailsIndex.vue';
  291. import { getList } from '@/api/inspectionWork';
  292. export default {
  293. components: {
  294. workOrderBom,
  295. workOrderBom,
  296. deviceBom,
  297. modelBom,
  298. jobBom,
  299. semiProductJobBom,
  300. semiProductJobBomPL,
  301. oneJobQualityBom,
  302. oneJobQualityBomPL,
  303. byProductBom,
  304. turnoverBom,
  305. aridRegion,
  306. paramBom,
  307. // qualityStat,
  308. // sampleBom,
  309. palletBom,
  310. revolvingDiskBom,
  311. packingTgBom,
  312. // packingBom,
  313. detailsBom,
  314. workOrderBom2,
  315. batchSemiProductJobBom,
  316. packagingGrouping,
  317. detailsIndex,
  318. detailPackagingGrouping
  319. },
  320. props: {
  321. routeObj: {
  322. type: Object,
  323. default() {
  324. return {};
  325. }
  326. },
  327. newId: {
  328. type: String,
  329. default: ''
  330. },
  331. curTaskObj: {
  332. type: Object,
  333. default() {
  334. return () => {};
  335. }
  336. }
  337. },
  338. watch: {
  339. curTaskObj: {
  340. handler(obj) {
  341. if (obj) {
  342. console.log(obj, '55555555555');
  343. this.taskType = obj.type;
  344. this.getList();
  345. }
  346. },
  347. deep: true,
  348. immediate: true
  349. },
  350. newId: {
  351. handler(newval) {
  352. this.newIdTo = newval;
  353. },
  354. deep: true,
  355. immediate: true
  356. }
  357. },
  358. computed: {
  359. clientEnvironmentId() {
  360. return this.$store.state.user.info.clientEnvironmentId;
  361. }
  362. },
  363. data() {
  364. return {
  365. taskType: null,
  366. list: [],
  367. newIdTo: '',
  368. planValue: ''
  369. };
  370. },
  371. created() {
  372. this.getPlanCode();
  373. this.get;
  374. },
  375. methods: {
  376. async getList() {
  377. console.log('出发啊');
  378. let param = {
  379. workOrderId: this.routeObj.id,
  380. taskId: this.newId
  381. };
  382. console.log(this.taskType, 99999999);
  383. let URL = this.taskType == 5 ? listApplystorage : listWorkReport;
  384. await URL(param).then((res) => {
  385. console.log(res, 'res');
  386. this.list = JSON.parse(JSON.stringify(res));
  387. });
  388. },
  389. async getPlanCode() {
  390. await parameterGetByCode({ code: 'enable_quality_plus' }).then(
  391. (res) => {
  392. this.planValue = res.value;
  393. }
  394. );
  395. }
  396. }
  397. };
  398. </script>
  399. <style scoped lang="scss">
  400. .rx-bc {
  401. display: flex;
  402. align-items: center;
  403. justify-content: space-between;
  404. }
  405. .item_box {
  406. margin-top: 5px;
  407. margin-bottom: 6px;
  408. padding: 0 10px;
  409. .round {
  410. width: 20px;
  411. height: 20px;
  412. line-height: 20px;
  413. border-radius: 50%;
  414. background: #157a2c;
  415. color: #fff;
  416. text-align: center;
  417. font-size: 12px;
  418. }
  419. .time {
  420. color: #157a2c;
  421. font-family: PingFang HK;
  422. font-size: 14px;
  423. font-style: normal;
  424. font-weight: 500;
  425. margin-left: 8px;
  426. }
  427. }
  428. .title_card {
  429. height: 35px;
  430. width: 100%;
  431. background: #157a2c;
  432. font-size: 16px;
  433. color: #fff;
  434. line-height: 35px;
  435. padding: 0 20px;
  436. box-sizing: border-box;
  437. }
  438. </style>