stockDetailDialog.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  1. <template>
  2. <ele-modal
  3. width="80vw"
  4. :visible.sync="visible"
  5. :close-on-click-modal="false"
  6. row-key="code"
  7. custom-class="ele-dialog-form"
  8. :title="'库存详情'"
  9. :maxable="true"
  10. append-to-body
  11. >
  12. <div class="form-wrapper">
  13. <!-- <el-form :model="requestData" label-width="0" :show-message="false">-->
  14. <!-- <el-descriptions title="" :column="2" border>-->
  15. <!-- <el-descriptions-item label="计划编号">-->
  16. <!-- {{ formData.code }}</el-descriptions-item-->
  17. <!-- >-->
  18. <!-- <el-descriptions-item label="产品编码">{{-->
  19. <!-- formData.productCode-->
  20. <!-- }}</el-descriptions-item>-->
  21. <!-- <el-descriptions-item label="产品名称">{{-->
  22. <!-- formData.productName-->
  23. <!-- }}</el-descriptions-item>-->
  24. <!-- <el-descriptions-item label="牌号|型号">-->
  25. <!-- {{ formData.brandNo }}|{{ formData.model }}</el-descriptions-item-->
  26. <!-- >-->
  27. <!-- <el-descriptions-item label="批次号">{{-->
  28. <!-- formData.batchNo-->
  29. <!-- }}</el-descriptions-item>-->
  30. <!-- <el-descriptions-item label="工艺路线">{{-->
  31. <!-- formData.produceRoutingName-->
  32. <!-- }}</el-descriptions-item>-->
  33. <!-- <el-descriptions-item label="要求生产数量">{{-->
  34. <!-- formData.requiredFormingNum-->
  35. <!-- }}</el-descriptions-item>-->
  36. <!-- <el-descriptions-item label="要求完成日期">{{-->
  37. <!-- formData.reqMoldTime-->
  38. <!-- }}</el-descriptions-item>-->
  39. <!-- </el-descriptions>-->
  40. <!-- </el-form>-->
  41. <!-- <headerTitle title="剩余拆批" class="mt20"> </headerTitle>-->
  42. <el-form ref="form" :model="form" :rules="rules">
  43. <!-- <ele-pro-table-->
  44. <!-- ref="table"-->
  45. <!-- :needPage="false"-->
  46. <!-- :columns="columns"-->
  47. <!-- :datasource="form.surplusUnpack"-->
  48. <!-- >-->
  49. <!-- <template v-slot:toolbar>-->
  50. <!-- <el-button-->
  51. <!-- size="small"-->
  52. <!-- type="primary"-->
  53. <!-- icon="el-icon-plus"-->
  54. <!-- class="ele-btn-icon"-->
  55. <!-- :disabled="requiredFormingNum == 0 ? true : false"-->
  56. <!-- @click="openUnpack"-->
  57. <!-- >-->
  58. <!-- 拆批-->
  59. <!-- </el-button>-->
  60. <!-- </template>-->
  61. <!-- <template v-slot:requiredFormingNum="scope">-->
  62. <!-- <el-form-item-->
  63. <!-- v-if="requiredFormingNum != 0"-->
  64. <!-- :prop="'surplusUnpack.' + scope.$index + '.requiredFormingNum'"-->
  65. <!-- :rules="[-->
  66. <!-- {-->
  67. <!-- required: true,-->
  68. <!-- message: '请输入要求生产数量',-->
  69. <!-- trigger: 'change'-->
  70. <!-- },-->
  71. <!-- {-->
  72. <!-- pattern: /^\d+(\.{0,1}\d+){0,1}$/,-->
  73. <!-- message: '拆批数超过生产数量',-->
  74. <!-- trigger: ['blur', 'change']-->
  75. <!-- }-->
  76. <!-- ]"-->
  77. <!-- >-->
  78. <!-- <el-input-->
  79. <!-- disabled-->
  80. <!-- v-model="requiredFormingNum"-->
  81. <!-- placeholder="请输入"-->
  82. <!-- ></el-input>-->
  83. <!-- </el-form-item>-->
  84. <!-- <el-form-item v-else> 工单已全部拆完 </el-form-item>-->
  85. <!-- </template>-->
  86. <!-- <template v-slot:splitResidue="scope">-->
  87. <!-- {{ formData.splitResidue }}-->
  88. <!-- </template>-->
  89. <!-- </ele-pro-table>-->
  90. <!-- <headerTitle title="拆批" class="mt20"> </headerTitle>-->
  91. <ele-pro-table
  92. ref="table"
  93. :needPage="true"
  94. :columns="columns"
  95. :datasource="datasource"
  96. :init-load="false"
  97. >
  98. <!-- <template v-slot:requiredFormingNum="scope">-->
  99. <!-- <el-form-item-->
  100. <!-- :prop="'unpackList.' + scope.$index + '.requiredFormingNum'"-->
  101. <!-- :rules="{-->
  102. <!-- required: true,-->
  103. <!-- message: '请输入要求生产数量',-->
  104. <!-- trigger: 'change'-->
  105. <!-- }"-->
  106. <!-- >-->
  107. <!-- <el-input-number-->
  108. <!-- type="number"-->
  109. <!-- @change="changeNum(scope.$index)"-->
  110. <!-- :min="0"-->
  111. <!-- v-model="scope.row.requiredFormingNum"-->
  112. <!-- placeholder="请输入"-->
  113. <!-- ></el-input-number>-->
  114. <!-- </el-form-item>-->
  115. <!-- </template>-->
  116. <!-- <template v-slot:reqMoldTime="scope">-->
  117. <!-- <el-form-item-->
  118. <!-- :prop="'unpackList.' + scope.$index + '.reqMoldTime'"-->
  119. <!-- :rules="{-->
  120. <!-- required: true,-->
  121. <!-- message: '请选择开始计划时间',-->
  122. <!-- trigger: 'change'-->
  123. <!-- }"-->
  124. <!-- >-->
  125. <!-- <el-date-picker-->
  126. <!-- class="w100"-->
  127. <!-- v-model="scope.row.reqMoldTime"-->
  128. <!-- type="date"-->
  129. <!-- value-format="yyyy-MM-dd"-->
  130. <!-- ></el-date-picker>-->
  131. <!-- </el-form-item>-->
  132. <!-- </template>-->
  133. <template v-slot:action="{ $index }">
  134. <!-- <el-popconfirm-->
  135. <!-- class="ele-action"-->
  136. <!-- title="确定要删除此子单吗?"-->
  137. <!-- @confirm="remove($index)"-->
  138. <!-- >-->
  139. <!-- <template v-slot:reference>-->
  140. <!-- <el-link type="danger" :underline="false" icon="el-icon-delete">-->
  141. <!-- 删除-->
  142. <!-- </el-link>-->
  143. <!-- </template>-->
  144. <!-- </el-popconfirm>-->
  145. <el-link type="primary" :underline="false" icon="el-icon-view">
  146. 库存
  147. </el-link>
  148. <el-link type="primary" :underline="false" icon="el-icon-view">
  149. 在途
  150. </el-link>
  151. </template>
  152. </ele-pro-table>
  153. </el-form>
  154. </div>
  155. <div slot="footer">
  156. <el-button plain @click="cancel">取消</el-button>
  157. <el-button type="primary" @click="confirm">确定</el-button>
  158. </div>
  159. </ele-modal>
  160. </template>
  161. <script>
  162. import { getStockList } from '@/api/productionPlan/index.js';
  163. export default {
  164. components: {},
  165. data() {
  166. return {
  167. visible: false,
  168. formData: {},
  169. requestData: {
  170. deviceCode: '',
  171. deviceName: '',
  172. deviceId: ''
  173. },
  174. requiredFormingNum: 0,
  175. form: {
  176. stockList: []
  177. },
  178. rules: {},
  179. columns: [
  180. {
  181. columnKey: 'index',
  182. label: '序号',
  183. type: 'index',
  184. width: 55,
  185. align: 'center',
  186. showOverflowTooltip: true
  187. },
  188. {
  189. prop: 'categoryCode',
  190. label: '物品编码',
  191. align: 'center',
  192. minWidth: 100,
  193. showOverflowTooltip: true
  194. },
  195. {
  196. prop: 'categoryName',
  197. label: '物品名称',
  198. align: 'center',
  199. minWidth: 100
  200. },
  201. {
  202. prop: 'modelType',
  203. label: '型号',
  204. align: 'center',
  205. minWidth: 100,
  206. showOverflowTooltip: true
  207. },
  208. {
  209. prop: 'specification',
  210. label: '规格',
  211. align: 'center',
  212. minWidth: 100
  213. },
  214. {
  215. prop: 'level',
  216. label: '级别',
  217. align: 'center',
  218. minWidth: 100
  219. },
  220. {
  221. prop: 'measureQuantity',
  222. label: '计量数量',
  223. align: 'center',
  224. minWidth: 100
  225. }
  226. ],
  227. activeName: 'first',
  228. selection: [],
  229. request: {
  230. categoryCode: ''
  231. }
  232. };
  233. },
  234. methods: {
  235. reload(where) {
  236. this.$nextTick(() => {
  237. this.$refs.table.reload({ page: 1, where });
  238. });
  239. },
  240. /* 表格数据源 */
  241. datasource({ page, limit, where }) {
  242. return getStockList({
  243. pageNum: page,
  244. size: limit,
  245. ...where
  246. });
  247. },
  248. handleSelectionChange(list) {
  249. if (list.length > 1) {
  250. let _list = [];
  251. list.forEach((e) => {
  252. if (e.childList.length > 0 && e.splitBatch != 2) {
  253. _list.push(...e.childList);
  254. } else {
  255. _list.push(e);
  256. }
  257. });
  258. this.selection = _list;
  259. } else {
  260. this.selection = [];
  261. }
  262. },
  263. /* 数据转为树形结构 */
  264. parseData(data) {
  265. return {
  266. ...data,
  267. list: this.$util.toTreeData({
  268. data: data.list,
  269. count: data.total,
  270. idField: 'code',
  271. parentIdField: 'joinPlanCode'
  272. })
  273. };
  274. },
  275. onSortChange(e) {
  276. let sort = {
  277. orderBy: e.order,
  278. sortName: e.prop
  279. };
  280. this.sort = sort;
  281. this.reload();
  282. },
  283. open(row) {
  284. this.visible = true;
  285. this.reload({ categoryCode: row.bomCode });
  286. },
  287. cancel() {
  288. this.formData = {};
  289. this.visible = false;
  290. },
  291. confirm() {
  292. this.visible = false;
  293. }
  294. }
  295. };
  296. </script>
  297. <style lang="scss" scoped>
  298. .mt20 {
  299. margin-top: 20px;
  300. }
  301. .el-form-item {
  302. margin-bottom: 0 !important;
  303. }
  304. </style>