GenerateDocumentTool.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345
  1. <template>
  2. <div class="grid-container">
  3. <div class="grid-item-1">
  4. <Navbar
  5. :title="title"
  6. :is-go-back="false"
  7. />
  8. </div>
  9. <div
  10. class="grid-item-2"
  11. style="margin-bottom: 5px;"
  12. >
  13. <div class="btn-group">
  14. <button
  15. class="btn btn-primary"
  16. @click="generate()"
  17. >
  18. 确定
  19. </button>
  20. <button
  21. class="btn btn-warning"
  22. @click="back()"
  23. >
  24. 撤销
  25. </button>
  26. </div>
  27. </div>
  28. <div class="grid-item-3">
  29. <DocGenerator
  30. ref="docGenerator"
  31. :info-window-no="infoWindowNo"
  32. :generate-ids="generateIds"
  33. @show-title="title = $event"
  34. />
  35. </div>
  36. </div>
  37. </template>
  38. <script>
  39. import Common from '../common/Common.js';
  40. import { IFrameUtil } from 'pc-component-v3';
  41. export default {
  42. components: { },
  43. data: function () {
  44. return {
  45. uuid: '',
  46. infoWindowNo: '',
  47. type: '',
  48. title: '',
  49. generateIds: [],
  50. };
  51. },
  52. mounted: function () {
  53. this.uuid = this.$route.params.uuid;
  54. this.infoWindowNo = this.$route.params.infoWindowNo;
  55. this.type = this.$route.params.type;
  56. },
  57. methods: {
  58. generate: function () {
  59. var _self = this;
  60. var selectedDatas = _self.$refs.docGenerator.getSelectedData();
  61. if (selectedDatas === undefined || selectedDatas === null || selectedDatas.length === 0) {
  62. Notify.error('提示', '未选择任何数据。', false);
  63. return;
  64. }
  65. // window.open调用
  66. let modelData = window.opener.getModelData();
  67. // 模态框 iframe调用
  68. //let modelData = IFrameUtil.getCurdModelData();
  69. let url = null;
  70. if (_self.type == 'purchaseRequest') {
  71. url = 'PurchaseOrderResource/generatePurchaseOrderModelData';
  72. } else if (_self.type == 'purchaseOrder') {
  73. url = 'purchaseOrderArrivalResource/generatePurchaseOrderArrivalModelData';
  74. } else if (_self.type == 'purchaseOrderArrival') {
  75. url = 'incomingInspectionRequestResource/generateInspectRequestModelData';
  76. } else if (_self.type == 'inspectionRequest') {
  77. if (selectedDatas.length > 1) {
  78. Notify.error('数据选择错误', '只能选择一条报检单明细数据', false);
  79. return;
  80. } else {
  81. url = 'incomingInspectionResource/generateInspectionModelData';
  82. }
  83. } else if (_self.type == 'inspectionReject') {
  84. if (selectedDatas.length > 1) {
  85. Notify.error('数据选择错误', '只能选择一条检验单数据', false);
  86. return;
  87. } else {
  88. url = 'incomingInspectionRejectResource/generateInspectionRejectModelData';
  89. }
  90. } else if (_self.type == 'inspectionStockIn') {
  91. url = 'stockInResource/generateStockInModelDataByInspection';
  92. } else if (_self.type == 'purchaseOrderArrivalStockIn') {
  93. url = 'stockInResource/generateStockInModelDataByArrival';
  94. } else if (_self.type == 'purchaseStockIn') {
  95. url = 'StockOutResource/generateMaterialStockOutModelData';
  96. } else if (_self.type == 'purchaseOrderReturn') {
  97. url = 'purchaseOrderReturnResource/generatePurchaseOrderReturnModelData';
  98. } else if (_self.type == 'materialStockOut') {
  99. url = 'StockOutResource/generateRedStockOutModelData';
  100. } else if (_self.type == 'redPurchaseStockIn') {
  101. url = 'stockInResource/generateRedStockInModelData';
  102. } else if (_self.type == 'stockInPrepareLine') {
  103. url = 'stockInResource/generateRedStockInPrepareModelData';
  104. } else if (_self.type == 'generateStockInByOrder') {
  105. url = 'stockInResource/generateStockInByOrder';
  106. } else if (_self.type == 'newPurchaseRequest') {
  107. //仓库模块-采购订单
  108. url = 'PurchaseOrderResource/generateModelData';
  109. } else if (_self.type == 'newPurchaseOrder') {
  110. //仓库模块-采购到货单
  111. url = 'purchaseOrderArrivalResource/generateModelData';
  112. } else if (_self.type == 'newArrivalStockIn') {
  113. //仓库模块-(到货单生成)入库单
  114. url = 'stockInResource/generateArrivalStockInModelData';
  115. } else if (_self.type == 'newArrivalInspectionRequest') {
  116. //仓库模块-来料报检单
  117. url = 'incomingInspectionRequestResource/generateModelData';
  118. } else if (_self.type == 'newInspectionRequest') {
  119. //仓库模块-来料检验单
  120. if (selectedDatas.length > 1) {
  121. Notify.error('数据选择错误', '只能选择一条报检单数据', false);
  122. return;
  123. } else {
  124. url = 'incomingInspectionResource/generateModelData';
  125. }
  126. } else if (_self.type == 'newInspectionReject') {
  127. //仓库模块-不良品处理单
  128. if (selectedDatas.length > 1) {
  129. Notify.error('数据选择错误', '只能选择一条检验单数据', false);
  130. return;
  131. } else {
  132. url = 'incomingInspectionRejectResource/generateModelData';
  133. }
  134. } else if (_self.type == 'newCurrentStock') {
  135. //仓库模块-(仓库库存生成)出库单
  136. url = 'StockOutResource/generateModelData';
  137. } else if (_self.type == 'newRedStockOut') {
  138. //仓库模块-红字出库单
  139. url = 'StockOutResource/generateRedModelData';
  140. } else if (_self.type == 'newPurchaseOrderReturn') {
  141. //仓库模块-采购退货单
  142. url = 'purchaseOrderReturnResource/generateModelData';
  143. } else if (_self.type == 'newStockOut') {
  144. //仓库模块-红字出库单
  145. url = 'StockOutResource/generateRedModelData';
  146. } else if (_self.type == 'newRedStockIn') {
  147. //仓库模块-红字入库单
  148. url = 'stockInResource/generateRedModelData';
  149. } else if (_self.type == 'invStockIn') {
  150. //仓库模块-(物料批量)入库单
  151. url = 'stockInResource/generateModelDataByInventory';
  152. } else if (_self.type == 'orderToIn') {
  153. //仓库模块-(订单生成)入库单
  154. url = 'stockInResource/generateOrderToInModelData';
  155. } else if (_self.type == 'saleOrderToIn') {
  156. //仓库模块-销售订单生成入库单
  157. url = 'stockInResource/generateSaleOrderToInModelData';
  158. } else if (_self.type == 'saleOrderToOut') {
  159. //仓库模块-销售订单生成出库单
  160. url = 'StockOutResource/generateSaleOrderToOutModelData';
  161. } else if (_self.type == 'saleOrderToPrepare') {
  162. //仓库模块-销售订单生成领料单
  163. url = 'stockOutPrepareResource/generateSaleOrderToPrepareModelData';
  164. } else if (_self.type == 'prepareToOut') {
  165. //仓库模块-领料单生成出库单
  166. url = 'StockOutResource/generatePrepareToOutModelData';
  167. } else if (_self.type == 'saleOrderToStockUp') {
  168. //销售订单生成备货单
  169. url = 'StockUpResource/generateSaleOrderToStockUpModelData';
  170. } else if (_self.type == 'applyToStockUp') {
  171. //布草管理-出库申请单生成仓库备货单
  172. url = 'StockUpResource/generateApplyToUpModelData';
  173. } else if (_self.type == 'purchaseOrderToStockOut') {
  174. //布草管理-采购订单详单生成工厂出库单
  175. url = 'StockOutResource/generateStockOutByPurchaseOrder';
  176. } else if (_self.type == 'newAssetCheck') {
  177. //资产采购单生成验收单
  178. url = 'assetCheckResource/generateModelData';
  179. } else if (_self.type == 'newPurchaseBill') {
  180. //采购单生成采购丁单发票
  181. url = 'purchaseOrderBillResource/generateModelData';
  182. } else if (_self.type == 'newPurchaseOrderPayment') {
  183. //采购订单生成付款单
  184. url = 'purchaseOrderPaymentResource/generateModelData';
  185. } else if (_self.type == 'newSaleOrderReceivables') {
  186. //销售订单生成收款单
  187. url = 'SaleOrderReceiptResource/generateModelData';
  188. } else if (_self.type == 'newSaleOrderBill') {
  189. //销售订单生成销售订单发票
  190. url = 'saleOrderBillResource/generateModelData';
  191. } else if (_self.type == 'newSaleOrderReceipt') {
  192. //销售订单生成收款单
  193. url = 'SaleOrderReceiptResource/generateModelData';
  194. } else if (_self.type == 'generatePurchaseRequest') {
  195. //申购单生成采购订单
  196. url = 'PurchaseOrderResource/generateModelData';
  197. } else if (_self.type == 'generatePurchaseOrder') {
  198. //采购订单生成采购到货
  199. url = 'PurchaseOrderArrivalResource/generateModelData';
  200. } else if (_self.type == 'generatePurchaseOrderReturn') {
  201. //退货单生成换货单
  202. url = 'PurchaseOrderArrivalResource/generateModelDataReturn';
  203. }else{
  204. Notify.error('提示', '不识别的生单地址。' + _self.type, false);
  205. return;
  206. }
  207. let generateDocumentModelData = {
  208. windowNo: modelData.windowNo,
  209. tabIndex: modelData.tabIndex,
  210. modelData: modelData,
  211. inputDatas: selectedDatas,
  212. };
  213. $.ajax({
  214. url: Common.getApiURL(url),
  215. type: 'post',
  216. contentType: 'application/json',
  217. data: JSON.stringify(generateDocumentModelData),
  218. beforeSend: function (request) {
  219. Common.addTokenToRequest(request);
  220. },
  221. success: function (modelData) {
  222. if (modelData != undefined) {
  223. if (modelData.saveDatas != undefined) {
  224. modelData.saveDatas.forEach(function (item) {
  225. if(item.editMode == null){
  226. item.editMode = true;
  227. }
  228. item.tabIndex = 1;
  229. });
  230. }
  231. IFrameUtil.setCurdModelData(modelData);
  232. _self.back();
  233. }
  234. },
  235. error: function (XMLHttpRequest, textStatus, errorThrown) {
  236. Common.processException(XMLHttpRequest, textStatus, errorThrown);
  237. },
  238. });
  239. },
  240. isShowVendorDialogA: function (data) {
  241. var _self = this;
  242. var messageStr = '';
  243. data.forEach(function (item, index) {
  244. if (index == data.length - 1) {
  245. messageStr += item.name;
  246. } else {
  247. messageStr += item.name + ',';
  248. }
  249. });
  250. Notify.show({
  251. title: '项目确认',
  252. message: '您选择的请购订单明细中存在不同项目【' + messageStr + '】',
  253. buttons: [{
  254. label: '取消',
  255. action: function (dialogItself) {
  256. dialogItself.close();
  257. },
  258. }],
  259. });
  260. },
  261. isShowVendorDialog: function (data) {
  262. var _self = this;
  263. var messageStr = '';
  264. data.forEach(function (item, index) {
  265. if (index == data.length - 1) {
  266. messageStr += item.vendorName;
  267. } else {
  268. messageStr += item.vendorName + ',';
  269. }
  270. });
  271. Notify.show({
  272. title: '供应商确认',
  273. message: '您选择的请购订单明细中存在不同供应商【' + messageStr + '】,如果点击\\"确定\\"按钮,将从供应商【' + data[data.length - 1].vendorName + '】下订单,否则点击\\"取消\\"按钮',
  274. buttons: [
  275. {
  276. label: '确定',
  277. cssClass: 'btn-primary',
  278. action: function (dialogItself) {
  279. dialogItself.close();
  280. var url = 'PurchaseOrderResource/generatePurchaseOrderModelData';
  281. _self.responseReceiveData(_self.obj);
  282. },
  283. }, {
  284. label: '取消',
  285. action: function (dialogItself) {
  286. dialogItself.close();
  287. },
  288. },
  289. ],
  290. });
  291. },
  292. /**
  293. * 返回,关闭模态框
  294. */
  295. back: function () {
  296. IFrameUtil.close();
  297. },
  298. },
  299. };
  300. </script>
  301. <style scoped>
  302. .grid-container {
  303. display: grid;
  304. grid-template-columns: 100%;
  305. grid-template-rows: min-content min-content auto;
  306. height: calc(100vh - 35px);
  307. width: 100%;
  308. padding: 10px;
  309. }
  310. .grid-item-1 {
  311. grid-row: 1 / 2;
  312. grid-column: 1 / 2;
  313. }
  314. .grid-item-2 {
  315. grid-row: 2 / 3;
  316. grid-column: 1 / 2;
  317. }
  318. .grid-item-3 {
  319. overflow: auto;
  320. grid-row: 3/4;
  321. grid-column: 1 / 2;
  322. height: 100%;
  323. }
  324. </style>