details.vue 14 KB

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