1 |
- {"remainingRequest":"D:\\qianger\\7\\jindouyunNewFront\\node_modules\\babel-loader\\lib\\index.js!D:\\qianger\\7\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\qianger\\7\\jindouyunNewFront\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\qianger\\7\\jindouyunNewFront\\src\\views\\Purchase\\ManageP\\PurchaseOrderAdd.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\qianger\\7\\jindouyunNewFront\\src\\views\\Purchase\\ManageP\\PurchaseOrderAdd.vue","mtime":1655374732000},{"path":"D:\\qianger\\7\\jindouyunNewFront\\babel.config.js","mtime":1655374732000},{"path":"D:\\qianger\\7\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\qianger\\7\\jindouyunNewFront\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\qianger\\7\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\qianger\\7\\jindouyunNewFront\\node_modules\\vue-loader\\lib\\index.js","mtime":1655715099000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwppbXBvcnQgU2VsZWN0U3VwcGxpZXIgZnJvbSAiQC9jb21wb25lbnQvY29tbW9uL1NlbGVjdFN1cHBsaWVyLnZ1ZSI7CmltcG9ydCBXYXJlaG91c2VNb2RlbCBmcm9tICJAL2NvbXBvbmVudC9jb21tb24vV2FyZWhvdXNlTW9kZWwudnVlIjsgLy8g5paw5aKe5ZGY5belCgppbXBvcnQgQWRkU3RhZmYgZnJvbSAiQC9jb21wb25lbnQvU3lzdGVtU2V0dGluZ3MvQWRkU3RhZmYiOwppbXBvcnQgU3RhZmZMaXN0IGZyb20gIkAvY29tcG9uZW50L2NvbW1vbi9zdGFmZkxpc3RNb2RhbCI7CmltcG9ydCBDb25kaXRpb25TZWxHb29kcyBmcm9tICJAL2NvbXBvbmVudC9jb21tb24vQ29uZGl0aW9uU2VsR29vZHMiOwppbXBvcnQgeyBnZXRBbGxTdGFmZiB9IGZyb20gIkAvYXBpL0RlcGFydG1lbnQiOwppbXBvcnQgeyBnZXRBbGxXYXJlaG91c2UsIGdldE1hc3RlclNrdU51bSB9IGZyb20gIkAvYXBpL1N0b2NrIjsKaW1wb3J0IHsgdXBkYXRlUHVyY2hhc2VTdGF0dXMsIGdldFB1cmNoYXNlSW5mb0J5SWQsIGVkaXRQdXJjaGFzZSwgYWRkUHVyY2hhc2UgfSBmcm9tICJAL2FwaS9QdXJjaGFzZSI7CmltcG9ydCB7IGdldE1vbmV5UGF1c2VTYXZlLCBhZGRNb25leVBhdXNlU2F2ZSwgYWRkUGF1c2VTYXZlLCBnZXRQYXVzZVNhdmUsIGRlbFBhdXNlU2F2ZSB9IGZyb20gIkAvYXBpL2NvbW1vbiI7CmltcG9ydCB7IG1hcEdldHRlcnMgfSBmcm9tICJ2dWV4IjsKY29uc3QgZ29vZHMgPSB7CiAgYmFzaWNHb29kc0lkOiAiIiwKICBnb29kc0NvZGU6ICIiLAogIGdvb2RzTmFtZTogIiIsCiAgc2t1SWQ6ICIiLAogIHVuaXROYW1lOiAiIiwKICBjYXRlZ29yeUlkOiAiIiwKICBjYXRlZ29yeU5hbWU6ICIiLAogIGJ1eWVyTnVtOiAwLAogIGJ1eWVyVW5pdFByaWNlOiAwLAogIHN1YnRvdGFsUHJpY2U6IDAsCiAgY291cG9uQW1vdW50OiAwLAogIG90aGVyQW1vdW50OiAwCn07CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiUHVyY2hhc2VPcmRlckFkZCIsCiAgY29tcG9uZW50czogewogICAgQ29uZGl0aW9uU2VsR29vZHMsCiAgICBTZWxlY3RTdXBwbGllciwKICAgIEFkZFN0YWZmLAogICAgLy8g5paw5aKe5ZGY5belCiAgICBXYXJlaG91c2VNb2RlbCwKICAgIFN0YWZmTGlzdAogIH0sCgogIGRhdGEoKSB7CiAgICBjb25zdCB2YWxpZGF0ZVNob3AgPSAocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSA9PiB7CiAgICAgIGlmICghdmFsdWUpIHsKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoIuivt+mAieaLqemHh+i0reS7k+W6kyIpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjYWxsYmFjaygpOwogICAgICB9CiAgICB9OwoKICAgIGNvbnN0IHZhbGlkYXRlU3VwcGxpZXIgPSAocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSA9PiB7CiAgICAgIGlmICghdmFsdWUpIHsKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoIuivt+mAieaLqeS+m+W6lOWVhiIpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjYWxsYmFjaygpOwogICAgICB9CiAgICB9OwoKICAgIHJldHVybiB7CiAgICAgIGVycl90aXBfbGlzdDogW10sCiAgICAgIC8vIOmUmeivr+aPkOekugogICAgICBub3dfZ29vZHNfZGF0YToge30sCiAgICAgIHNwZWNfY2hlY2s6IFtdLAogICAgICBhdWRpdFRpbWU6ICIiLAogICAgICBzcGVjX2NoZWNrX2xpc3Q6IFtdLAogICAgICBzaG93X2dvb2RzOiBmYWxzZSwKICAgICAgLy8g6YCJ5oup5ZWG5ZOB5by556qXCiAgICAgIHNlbGVjdF9sb2FkaW5nOiBmYWxzZSwKICAgICAgY2hlY2tfYWxsX3NwZWM6IGZhbHNlLAogICAgICBpc19zcGVjX2luZGV0ZXJtaW5hdGU6IGZhbHNlLAogICAgICBzcGVjX21vZGVsOiBmYWxzZSwKICAgICAgYWRkX3N0YWZmOiBmYWxzZSwKICAgICAgLy8g5paw5aKe5ZGY5belCiAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICBjcmVhdGVUaW1lOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSwKICAgICAgYXVkaXROYW1lOiAiIiwKICAgICAgYXVkaXRJZDogIiIsCiAgICAgIGF1ZGl0U3RhdHVzOiAiIiwKICAgICAgbG9va19wYXRoOiAiIiwKICAgICAgZ29vZHNfb3B0aW9uczogW10sCiAgICAgIGRlbF9nb29kc19pZDogW10sCiAgICAgIHdhcmVob3VzZV9saXN0OiBbXSwKICAgICAgZm9ybTogewogICAgICAgIGNvZGU6ICIiLAogICAgICAgIHNob3BJZDogIiIsCiAgICAgICAgc2hvcE5hbWU6ICIiLAogICAgICAgIHN1cHBsaWVySWQ6ICIiLAogICAgICAgIHN1cHBsaWVyTmFtZTogIiIsCiAgICAgICAgYnV5ZXJJZDogIiIsCiAgICAgICAgYnV5ZXJOYW1lOiAiIiwKICAgICAgICBvcGVyYXRvck5hbWU6ICIiLAogICAgICAgIGNvdXBvbkFtb3VudDogMCwKICAgICAgICBvdGhlckFtb3VudDogMCwKICAgICAgICByZW1hcms6ICIiLAogICAgICAgIGdvb2RzRGF0YTogW10sCiAgICAgICAgd2FyZWhvdXNlTmFtZTogIiIsCiAgICAgICAgd2FyZWhvdXNlSWQ6ICIiLAogICAgICAgIHB1cmNoYXNlVHlwZTogNAogICAgICB9LAogICAgICBzdXBwbGllcl9zaG93OiBmYWxzZSwKICAgICAgcHVyY2hhc2VfbGlzdDogW10sCiAgICAgIC8vIOmHh+i0reS6uuWRmOWIl+ihqAogICAgICBwdXJjaGFzZV9ydWxlczogewogICAgICAgIHdhcmVob3VzZU5hbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVTaG9wCiAgICAgICAgfV0sCiAgICAgICAgc3VwcGxpZXJOYW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICB2YWxpZGF0b3I6IHZhbGlkYXRlU3VwcGxpZXIKICAgICAgICB9XSwKICAgICAgICBidXllcklkOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+36YCJ5oup6YeH6LSt5Lq65ZGYIiwKICAgICAgICAgIHRyaWdnZXI6ICJjaGFuZ2UiCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgZ29vZHNfbGlzdDogW10sCiAgICAgIHB1c3JjaGFzZV9pZDogIiIsCiAgICAgIGdvb2RzX2luZGV4OiAwLAogICAgICB3YXJlaG91c2Vfc2hvdzogZmFsc2UsCiAgICAgIHN0YWZmX3Nob3c6IGZhbHNlLAogICAgICBvcHRpb25zOiBbewogICAgICAgIHZhbHVlOiAxLAogICAgICAgIGxhYmVsOiAi5oyJ5pWw6YePIgogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IDIsCiAgICAgICAgbGFiZWw6ICLmjInph5Hpop0iCiAgICAgIH1dLAogICAgICBvcHRpb25zX3ZhbHVlOiAiIiwKICAgICAgY29udHJpYnV0aW9uczogIiIsCiAgICAgIGFwcG9ydGlvbkZsYWc6IGZhbHNlLAogICAgICBtZXJjaGFudElkOiAiIiwKICAgICAgYWN0aXZlTmFtZTogIm9uZSIKICAgIH07CiAgfSwKCiAgY29tcHV0ZWQ6IHsgLi4ubWFwR2V0dGVycyh7CiAgICAgIHN0b3JlRGF0YTogIk1Vc2VyL3N0b3JlRGF0YSIKICAgIH0pLAoKICAgIHB1cmNoYXNlQW1vdW50KCkgewogICAgICBsZXQgc3VtID0gMDsKCiAgICAgIGlmICh0aGlzLmdvb2RzX2xpc3QubGVuZ3RoID4gMSkgewogICAgICAgIHRoaXMuZ29vZHNfbGlzdC5mb3JFYWNoKGl0ZW0gPT4gewogICAgICAgICAgc3VtID0gdGhpcy4kTlAucGx1cyhzdW0sIE51bWJlcihpdGVtLnN1YnRvdGFsUHJpY2UpKTsKICAgICAgICB9KTsKICAgICAgfSBlbHNlIGlmICh0aGlzLmdvb2RzX2xpc3QubGVuZ3RoID09PSAxKSB7CiAgICAgICAgc3VtID0gTnVtYmVyKHRoaXMuZ29vZHNfbGlzdFswXS5zdWJ0b3RhbFByaWNlKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBzdW0gPSAwOwogICAgICB9IC8vIHJldHVybiAoCiAgICAgIC8vICAgdGhpcy4kTlAucGx1cygKICAgICAgLy8gICAgIHN1bSwKICAgICAgLy8gICAgIHRoaXMuJE5QLm1pbnVzKHRoaXMuZm9ybS5vdGhlckFtb3VudCwgdGhpcy5mb3JtLmNvdXBvbkFtb3VudCkKICAgICAgLy8gICApIHx8IDAKICAgICAgLy8gKTsKCgogICAgICByZXR1cm4gdGhpcy4kTlAucGx1cyhzdW0sIHRoaXMuZm9ybS5vdGhlckFtb3VudCkgfHwgMDsKICAgIH0KCiAgfSwKCiAgY3JlYXRlZCgpIHsKICAgIGlmICh0aGlzLnN5c3RlbVR5cGUgPT09IDMpIHsKICAgICAgdGhpcy5tZXJjaGFudElkID0gdGhpcy5zdG9yZURhdGEubWVyY2hhbnREYXRhLmlkOwogICAgfSAvLyAg6I635Y+W5b2T5YmN55qE6Lev55Sx77yM5oiq5Y+WCgoKICAgIHRoaXMubG9va19wYXRoID0gdGhpcy4kcm91dGUubmFtZTsKCiAgICBpZiAodGhpcy4kcm91dGUucGFyYW1zLmlkKSB7CiAgICAgIHRoaXMucHVzcmNoYXNlX2lkID0gdGhpcy4kcm91dGUucGFyYW1zLmlkOyAvLyAgICDosIPnlKjor6bmg4XmjqXlj6MKCiAgICAgIHRoaXMuZ2V0UHVyY2hhc2VJbmZvQnlJZCgpOwogICAgfSBlbHNlIHsKICAgICAgdGhpcy5mb3JtLm9wZXJhdG9yTmFtZSA9IHRoaXMudXNlck5hbWU7CgogICAgICBpZiAoWzIsIDNdLmluY2x1ZGVzKHRoaXMuc3lzdGVtVHlwZSkpIHsKICAgICAgICB0aGlzLmZvcm0uc2hvcElkID0gdGhpcy5zdG9yZURhdGEuaWQ7IC8vIOW6l+mTugoKICAgICAgICB0aGlzLmZvcm0uc2hvcE5hbWUgPSB0aGlzLnN0b3JlRGF0YS5uYW1lOyAvLyDlupfpk7oKICAgICAgfQoKICAgICAgdGhpcy5nZXRQYXVzZVNhdmUoKTsKICAgIH0KCiAgICBmb3IgKGxldCBpID0gMTsgaSA8PSAxOyBpKyspIHsKICAgICAgdGhpcy5nb29kc19saXN0LnB1c2godGhpcy4kX2NvbW1vbi5kZWVwQ2xvbmUoZ29vZHMpKTsKICAgIH0KICB9LAoKICBtZXRob2RzOiB7CiAgICBvcGVuV2FyZWhvdXNlKCkgewogICAgICB0aGlzLndhcmVob3VzZV9zaG93ID0gdHJ1ZTsKICAgIH0sCgogICAgc2VsV2FyZWhvdXNlKHJvdykgewogICAgICB0aGlzLmZvcm0ud2FyZWhvdXNlTmFtZSA9IHJvd1swXS53YXJlaG91c2VOYW1lOwogICAgICB0aGlzLmZvcm0ud2FyZWhvdXNlSWQgPSByb3dbMF0uaWQ7CiAgICB9LAoKICAgIHN0YWZmU2VsKHJvdykgewogICAgICB0aGlzLmZvcm0uYnV5ZXJOYW1lID0gcm93WzBdLnN0YWZmTmFtZTsKICAgICAgdGhpcy5mb3JtLmJ1eWVySWQgPSByb3dbMF0uaWQ7CiAgICB9LAoKICAgIHNob3BEZWZhdWx0KHZhbCwgcm93KSB7CiAgICAgIHRoaXMuZm9ybS5zaG9wSWQgPSB2YWw7CiAgICAgIHRoaXMuZm9ybS5zaG9wTmFtZSA9IHJvdy5uYW1lOwogICAgfSwKCiAgICAvLyDlrqHmoLjnirbmgIEgIHVwZGF0ZVB1cmNoYXNlU3RhdHVzCiAgICBhc3luYyB1cGRhdGVQdXJjaGFzZShyb3cpIHsKICAgICAgY29uc3QgcGFyYW1zID0gewogICAgICAgIGF1ZGl0U3RhdHVzOiAiMiIsCiAgICAgICAgYXVkaXROYW1lOiB0aGlzLnVzZXJOYW1lCiAgICAgIH07CiAgICAgIHRoaXMuJGNvbmZpcm0oIuehruWumuWuoeaguOivpeiuouWNlSIsICLmj5DnpLoiLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgIHR5cGU6ICJ3YXJuaW5nIgogICAgICB9KS50aGVuKGFzeW5jICgpID0+IHsKICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgdXBkYXRlUHVyY2hhc2VTdGF0dXModGhpcy5wdXNyY2hhc2VfaWQsIHBhcmFtcyk7CiAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAic3VjY2VzcyIsCiAgICAgICAgICBtZXNzYWdlOiAi5pON5L2c5oiQ5YqfISIKICAgICAgICB9KTsKICAgICAgICBhd2FpdCB0aGlzLmdldFB1cmNoYXNlSW5mb0J5SWQoKTsKICAgICAgfSk7CiAgICB9LAoKICAgIHNwZWNDaGVja0NoYW5nZSh2YWx1ZSkgewogICAgICBsZXQgY2hlY2tlZENvdW50ID0gdmFsdWUubGVuZ3RoOwogICAgICB0aGlzLmNoZWNrX2FsbF9zcGVjID0gY2hlY2tlZENvdW50ID09PSB0aGlzLnNwZWNfY2hlY2tfbGlzdC5sZW5ndGg7CiAgICAgIHRoaXMuaXNfc3BlY19pbmRldGVybWluYXRlID0gY2hlY2tlZENvdW50ID4gMCAmJiBjaGVja2VkQ291bnQgPCB0aGlzLnNwZWNfY2hlY2tfbGlzdC5sZW5ndGg7CiAgICB9LAoKICAgIGNoZWNrQWxsU3BlY0NoYW5nZSh2YWwpIHsKICAgICAgdGhpcy5zcGVjX2NoZWNrID0gdmFsID8gdGhpcy5zcGVjX2NoZWNrX2xpc3QubWFwKGl0ZW0gPT4gaXRlbS5pZCkgOiBbXTsKICAgICAgdGhpcy5pc19zcGVjX2luZGV0ZXJtaW5hdGUgPSBmYWxzZTsKICAgIH0sCgogICAgZ29vZHNWaXNpYmxlQ2hhbmdlKHZpc2libGUsIGluZGV4KSB7CiAgICAgIGlmICh2aXNpYmxlKSB7CiAgICAgICAgdGhpcy5nb29kc19pbmRleCA9IGluZGV4OwogICAgICB9CiAgICB9LAoKICAgIC8v5o2i566Xc2t15pWw6YePCiAgICBhc3luYyBnZXRTa3VOdW0oKSB7CiAgICAgIGNvbnN0IHNrdU51bSA9IHRoaXMuZ29vZHNfbGlzdC5tYXAoaXRlbSA9PiB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIHNrdUlkOiBpdGVtLnNrdUlkLAogICAgICAgICAgZ29vZHNCYXNpY0lkOiBpdGVtLmJhc2ljR29vZHNJZCwKICAgICAgICAgIG51bTogaXRlbS5idXllck51bSB8fCAxCiAgICAgICAgfTsKICAgICAgfSkuZmlsdGVyKGl0ZW0gPT4gaXRlbS5za3VJZCk7CgogICAgICBpZiAoIXNrdU51bS5sZW5ndGgpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGNvbnN0IHsKICAgICAgICBkYXRhCiAgICAgIH0gPSBhd2FpdCBnZXRNYXN0ZXJTa3VOdW0oc2t1TnVtKTsKICAgICAgdGhpcy5nb29kc19saXN0ID0gdGhpcy5nb29kc19saXN0Lm1hcChpdGVtID0+IHsKICAgICAgICBsZXQgb2JqID0ge307CgogICAgICAgIGlmIChkYXRhW2l0ZW0uc2t1SWRdKSB7CiAgICAgICAgICBvYmogPSB7CiAgICAgICAgICAgIHRpdGxlOiBkYXRhW2l0ZW0uc2t1SWRdLnRpdGxlIHx8ICIiLAogICAgICAgICAgICBidXllck51bTogZGF0YVtpdGVtLnNrdUlkXS5udW0sCiAgICAgICAgICAgIHNrdVZhbHVlOiBkYXRhW2l0ZW0uc2t1SWRdLnNrdVZhbHVlLAogICAgICAgICAgICBza3VOdW06IGRhdGFbaXRlbS5za3VJZF0ubWFzdGVyTnVtICsgZGF0YVtpdGVtLnNrdUlkXS5tYXN0ZXJOYW1lCiAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwKICAgICAgICAgIC4uLm9iagogICAgICAgIH07CiAgICAgIH0pOwogICAgICB0aGlzLmVycl90aXBfbGlzdCA9IHRoaXMuZ29vZHNfbGlzdC5maWx0ZXIoaXRlbSA9PiAhIWl0ZW0udGl0bGUpOyAvLyDlpoLmnpzmsqHmnInllYblk4HpgInmi6nmoYbliJnmlrDlop7kuIDkuKoKCiAgICAgIGlmICghdGhpcy5nb29kc19saXN0LmZpbmQoaXRlbSA9PiAhaXRlbS5za3VJZCkpIHsKICAgICAgICAvLyDmlrDlop7kuIDkuKrllYblk4HpgInmi6nmoYYKICAgICAgICB0aGlzLmFkZExpc3RHb29kcygpOwogICAgICB9CiAgICB9LAoKICAgIC8vIOWkmumAieWVhuWTgeehruWumgogICAgc2VsR29vZHMobGlzdCkgewogICAgICBsZXQgdGFyZ2V0ID0gdGhpcy4kX2NvbW1vbi5kZWVwQ2xvbmUodGhpcy5nb29kc19saXN0KTsKICAgICAgY29uc3QgZ29vZHNEID0gbGlzdC5tYXAoaXRlbSA9PiB7CiAgICAgICAgbGV0IHNwZWNHcm9wTmFtZSA9IGl0ZW0uc3BlY0dyb3VwLm1hcChpdGVtUyA9PiB7CiAgICAgICAgICByZXR1cm4gaXRlbVMuc3BlY1ZhbHVlTmFtZTsKICAgICAgICB9KS5qb2luKCJfIik7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGlzRXE6IGl0ZW0uaXNFcSwKICAgICAgICAgIHNwZWNfY2hlY2tfbGlzdDogW10sCiAgICAgICAgICBiYXNpY0dvb2RzSWQ6IGl0ZW0uaWQsCiAgICAgICAgICBnb29kc0NvZGU6IGl0ZW0uY29kZSwKICAgICAgICAgIGdvb2RzTmFtZTogaXRlbS50aXRsZSwKICAgICAgICAgIHNrdUlkOiBpdGVtLnNrdUlkLAogICAgICAgICAgc3BlY0dyb3BOYW1lOiBzcGVjR3JvcE5hbWUsCiAgICAgICAgICB1bml0TmFtZTogaXRlbS51bml0TmFtZSwKICAgICAgICAgIGNhdGVnb3J5SWQ6IGl0ZW0uY2F0ZWdvcnlJZCwKICAgICAgICAgIGNhdGVnb3J5TmFtZTogaXRlbS5jYXRlZ29yeU5hbWUsCiAgICAgICAgICBidXllck51bTogMSwKICAgICAgICAgIGJ1eWVyVW5pdFByaWNlOiAwLjEsCiAgICAgICAgICBzdWJ0b3RhbFByaWNlOiAwLjEsCiAgICAgICAgICBjb3Vwb25BbW91bnQ6IDAsCiAgICAgICAgICBvdGhlckFtb3VudDogMAogICAgICAgIH07CiAgICAgIH0pOyAvLyDliKTmlq3mmK/lkKbmnInlhoXlrrkKCiAgICAgIGNvbnN0IGlzQmFzZSA9IHRhcmdldC5zb21lKGl0ZW0gPT4gewogICAgICAgIHJldHVybiBpdGVtLmJhc2ljR29vZHNJZDsKICAgICAgfSk7CgogICAgICBpZiAoIWlzQmFzZSkgewogICAgICAgIHRhcmdldCA9IGdvb2RzRDsKICAgICAgfSBlbHNlIHsKICAgICAgICB0YXJnZXQgPSB0aGlzLiRfY29tbW9uLnVuaXF1ZSh0YXJnZXQuY29uY2F0KGdvb2RzRCksIFsiYmFzaWNHb29kc0lkIiwgInNrdUlkIl0pOwogICAgICB9CgogICAgICBjb25zdCBza3VJZEFyciA9IHRhcmdldC5tYXAoaXRlbSA9PiB7CiAgICAgICAgcmV0dXJuIGl0ZW0uc2t1SWQ7CiAgICAgIH0pOwogICAgICB0aGlzLnByaWNlUGF1c2VTYXZlKHNrdUlkQXJyLCB0YXJnZXQpOwogICAgfSwKCiAgICBzcGVjU2VsQ29uZmlybShwYXJhbXMpIHsKICAgICAgaWYgKCFwYXJhbXMuZ29vZHNEWzBdLnNrdUlkKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLoh7PlsJHpgInmi6nkuIDpobkiKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGxldCB0YXJnZXQgPSB0aGlzLiRfY29tbW9uLmRlZXBDbG9uZSh0aGlzLmdvb2RzX2xpc3QpOwogICAgICBjb25zdCBnb29kc0QgPSBwYXJhbXMuZ29vZHNELm1hcChpdGVtID0+IHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgYmFzaWNHb29kc0lkOiBwYXJhbXMubm93X2dvb2RzX2RhdGEuaWQsCiAgICAgICAgICBnb29kc0NvZGU6IHBhcmFtcy5ub3dfZ29vZHNfZGF0YS5jb2RlLAogICAgICAgICAgZ29vZHNOYW1lOiBwYXJhbXMubm93X2dvb2RzX2RhdGEudGl0bGUsCiAgICAgICAgICBza3VJZDogaXRlbS5za3VJZCwKICAgICAgICAgIHNwZWNHcm9wTmFtZTogaXRlbS5zcGVjLnNwZWNHcm9wTmFtZSwKICAgICAgICAgIHVuaXROYW1lOiBpdGVtLnNwZWMudW5pdE5hbWUsCiAgICAgICAgICBjYXRlZ29yeUlkOiBwYXJhbXMubm93X2dvb2RzX2RhdGEuY2F0ZWdvcnlJZCwKICAgICAgICAgIGNhdGVnb3J5TmFtZTogcGFyYW1zLm5vd19nb29kc19kYXRhLmNhdGVnb3J5VGl0bGUsCiAgICAgICAgICBidXllck51bTogMSwKICAgICAgICAgIGJ1eWVyVW5pdFByaWNlOiAwLjEsCiAgICAgICAgICBzdWJ0b3RhbFByaWNlOiAwLjEsCiAgICAgICAgICBjb3Vwb25BbW91bnQ6IDAsCiAgICAgICAgICBvdGhlckFtb3VudDogMAogICAgICAgIH07CiAgICAgIH0pOwoKICAgICAgaWYgKCF0YXJnZXRbdGhpcy5nb29kc19pbmRleF0uc2t1SWQpIHsKICAgICAgICB0YXJnZXQuc3BsaWNlKHRoaXMuZ29vZHNfaW5kZXgsIDEpOwogICAgICB9CgogICAgICBnb29kc0QuZm9yRWFjaChpdGVtID0+IHsKICAgICAgICBjb25zdCB0YXJnZXREID0gdGFyZ2V0LmZpbmQoaXRlbUcgPT4gaXRlbUcuc2t1SWQgPT09IGl0ZW0uc2t1SWQpOwoKICAgICAgICBpZiAoIXRhcmdldEQpIHsKICAgICAgICAgIHRhcmdldC5wdXNoKGl0ZW0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIGNvbnN0IGdvb2RzRGF0YSA9IHRoaXMuJF9jb21tb24udW5pcXVlKHRhcmdldCwgWyJiYXNpY0dvb2RzSWQiLCAic2t1SWQiXSk7CiAgICAgIGNvbnN0IHNrdUlkQXJyID0gZ29vZHNEYXRhLm1hcChpdGVtID0+IHsKICAgICAgICByZXR1cm4gaXRlbS5za3VJZDsKICAgICAgfSk7CiAgICAgIHRoaXMucHJpY2VQYXVzZVNhdmUoc2t1SWRBcnIsIGdvb2RzRGF0YSk7CiAgICAgIHRoaXMuc3BlY19tb2RlbCA9IGZhbHNlOwogICAgfSwKCiAgICAvLyDku7fmoLzmmoLlrZjmn6Xor6IKICAgIGFzeW5jIHByaWNlUGF1c2VTYXZlKHNrdUlkLCBnb29kc0RhdGEpIHsKICAgICAgZ29vZHNEYXRhID0gZ29vZHNEYXRhLmZpbHRlcihpdGVtID0+IGl0ZW0uc2t1SWQpOwogICAgICBjb25zdCB7CiAgICAgICAgZGF0YQogICAgICB9ID0gYXdhaXQgZ2V0TW9uZXlQYXVzZVNhdmUoewogICAgICAgIHNrdUlkczogc2t1SWQKICAgICAgfSk7CiAgICAgIHRoaXMuZ29vZHNfbGlzdCA9IGdvb2RzRGF0YS5tYXAoaXRlbSA9PiB7CiAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwKICAgICAgICAgIGJ1eWVyVW5pdFByaWNlOiBpdGVtLmJ1eWVyVW5pdFByaWNlID4gMC4xID8gaXRlbS5idXllclVuaXRQcmljZSA6IGRhdGFbaXRlbS5za3VJZF0gfHwgMC4xLAogICAgICAgICAgc3VidG90YWxQcmljZTogaXRlbS5zdWJ0b3RhbFByaWNlID4gMC4xID8gaXRlbS5zdWJ0b3RhbFByaWNlIDogZGF0YVtpdGVtLnNrdUlkXSB8fCAwLjEKICAgICAgICB9OwogICAgICB9KTsgLy8g6I635Y+Wc2t15o2i566X5YWz57O7CgogICAgICBhd2FpdCB0aGlzLmdldFNrdU51bSgpOwogICAgfSwKCiAgICAvLyDku7fmoLzmmoLlrZjmj5DkuqQKICAgIGFzeW5jIGFkZE1vbmV5UGF1c2VTYXZlKHByaWNlRGF0YSkgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgYWRkTW9uZXlQYXVzZVNhdmUoewogICAgICAgIGRhdGE6IHByaWNlRGF0YQogICAgICB9KTsKICAgIH0sCgogICAgYWRkTGlzdEdvb2RzKCkgewogICAgICB0aGlzLmdvb2RzX2xpc3QucHVzaCh0aGlzLiRfY29tbW9uLmRlZXBDbG9uZShnb29kcykpOwogICAgfSwKCiAgICAvLyDmlLnlj5jmlbDph48KICAgIGVkaXROdW1DaGFuZ2UoaW5kZXgsIHRhZykgewogICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLiRfY29tbW9uLmRlZXBDbG9uZSh0aGlzLmdvb2RzX2xpc3QpOwogICAgICB0YXJnZXRbaW5kZXhdLnN1YnRvdGFsUHJpY2UgPSB0aGlzLiROUC50aW1lcyh0YXJnZXRbaW5kZXhdLmJ1eWVyTnVtIHx8IDEsIHRhcmdldFtpbmRleF0uYnV5ZXJVbml0UHJpY2UpOwogICAgICB0aGlzLmdvb2RzX2xpc3QgPSB0YXJnZXQ7CiAgICAgIGlmICghdGFyZ2V0W2luZGV4XS5za3VJZCkgcmV0dXJuOwoKICAgICAgaWYgKHRhZyA9PT0gImJ1eWVyTnVtIikgewogICAgICAgIC8vIOiOt+WPlnNrdeaNoueul+WFs+ezuwogICAgICAgIHRoaXMuZ2V0U2t1TnVtKCk7CiAgICAgIH0KICAgIH0sCgogICAgLy8g5LiA6ZSu5om56YeP6K6+572uCiAgICBvdGhlclNldChpbmRleCwgcm93KSB7CiAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuJF9jb21tb24uZGVlcENsb25lKHRoaXMuZ29vZHNfbGlzdCk7CiAgICAgIHRhcmdldC5mb3JFYWNoKGl0ZW0gPT4gewogICAgICAgIGlmIChpdGVtLmJhc2ljR29vZHNJZCA9PT0gcm93LmJhc2ljR29vZHNJZCAmJiBpdGVtLnVuaXROYW1lID09PSByb3cudW5pdE5hbWUpIHsKICAgICAgICAgIGl0ZW0uYnV5ZXJOdW0gPSByb3cuYnV5ZXJOdW07CiAgICAgICAgICBpdGVtLnN1YnRvdGFsUHJpY2UgPSByb3cuc3VidG90YWxQcmljZTsKICAgICAgICAgIGl0ZW0uYnV5ZXJVbml0UHJpY2UgPSByb3cuYnV5ZXJVbml0UHJpY2U7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgdGhpcy5nb29kc19saXN0ID0gdGFyZ2V0OwogICAgICB0aGlzLmdldFNrdU51bSgpOwogICAgfSwKCiAgICAvLyDmt7vliqDmmoLlrZgKICAgIGFzeW5jIGFkZFBhdXNlU2F2ZSgpIHsKICAgICAgY29uc3QgcGFyYW1zID0geyAuLi50aGlzLmZvcm0sCiAgICAgICAgZ29vZHNEYXRhOiB0aGlzLmdvb2RzX2xpc3QKICAgICAgfTsKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFkZFBhdXNlU2F2ZSh7CiAgICAgICAga2V5OiB0aGlzLmxvb2tfcGF0aCwKICAgICAgICBkYXRhOiBwYXJhbXMKICAgICAgfSk7CiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICB0eXBlOiAic3VjY2VzcyIsCiAgICAgICAgbWVzc2FnZTogIuaaguWtmOaIkOWKnyIKICAgICAgfSk7CgogICAgICBpZiAodGhpcy5zeXN0ZW1UeXBlID09PSAyKSB7CiAgICAgICAgdGhpcy4kY2xvc2VDdXJyZW50R29FZGl0KCIvU2luZ2xlU3RvcmUvcHVyY2hhc2UvcHVyY2hhc2VMaXN0Iik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy4kY2xvc2VDdXJyZW50R29FZGl0KCIvUHVyY2hhc2UvTWFuYWdlUC9QdXJjaGFzZU9yZGVyIik7CiAgICAgIH0KICAgIH0sCgogICAgLy8g6I635Y+W5pqC5a2Y5L+h5oGvCiAgICBhc3luYyBnZXRQYXVzZVNhdmUoKSB7CiAgICAgIGNvbnN0IHsKICAgICAgICBkYXRhCiAgICAgIH0gPSBhd2FpdCBnZXRQYXVzZVNhdmUoewogICAgICAgIGtleTogdGhpcy5sb29rX3BhdGgKICAgICAgfSk7CiAgICAgIGlmIChKU09OLnN0cmluZ2lmeShkYXRhKSA9PT0gInt9IikgcmV0dXJuOwogICAgICB0aGlzLmZvcm0gPSBkYXRhOwogICAgICB0aGlzLmdvb2RzX2xpc3QgPSBkYXRhLmdvb2RzRGF0YTsgLy8g6I635Y+Wc2t15o2i566X5YWz57O7CgogICAgICBhd2FpdCB0aGlzLmdldFNrdU51bSgpOwogICAgfSwKCiAgICAvLyAg6K+m5oOF5o6l5Y+jCiAgICBhc3luYyBnZXRQdXJjaGFzZUluZm9CeUlkKCkgewogICAgICBjb25zdCB7CiAgICAgICAgZGF0YQogICAgICB9ID0gYXdhaXQgZ2V0UHVyY2hhc2VJbmZvQnlJZCh0aGlzLnB1c3JjaGFzZV9pZCk7CiAgICAgIHRoaXMuZm9ybS5jb2RlID0gZGF0YS5ubzsKICAgICAgdGhpcy5jcmVhdGVUaW1lID0gZGF0YS5jcmVhdGVUaW1lOwogICAgICB0aGlzLmZvcm0uc2hvcElkID0gZGF0YS5zaG9wSWQ7CiAgICAgIHRoaXMuZm9ybS5zaG9wTmFtZSA9IGRhdGEuc2hvcE5hbWU7CiAgICAgIHRoaXMuZm9ybS5zdXBwbGllcklkID0gZGF0YS5zdXBwbGllcklkOwogICAgICB0aGlzLmZvcm0uc3VwcGxpZXJOYW1lID0gZGF0YS5zdXBwbGllck5hbWU7CiAgICAgIHRoaXMuZm9ybS5idXllcklkID0gZGF0YS5idXllcklkOwogICAgICB0aGlzLmZvcm0uYnV5ZXJOYW1lID0gZGF0YS5idXllck5hbWU7CiAgICAgIHRoaXMuZm9ybS5vcGVyYXRvck5hbWUgPSBkYXRhLm9wZXJhdG9yTmFtZTsKICAgICAgdGhpcy5mb3JtLnB1cmNoYXNlQW1vdW50ID0gZGF0YS5wdXJjaGFzZUFtb3VudDsKICAgICAgdGhpcy5mb3JtLmNvdXBvbkFtb3VudCA9IGRhdGEuY291cG9uQW1vdW50OwogICAgICB0aGlzLmZvcm0ub3RoZXJBbW91bnQgPSBkYXRhLm90aGVyQW1vdW50OwogICAgICB0aGlzLmZvcm0ucmVtYXJrID0gZGF0YS5yZW1hcms7CiAgICAgIHRoaXMuYXVkaXRJZCA9IGRhdGEuYXVkaXRJZDsKICAgICAgdGhpcy5hdWRpdE5hbWUgPSBkYXRhLmF1ZGl0TmFtZTsKICAgICAgdGhpcy5hdWRpdFN0YXR1cyA9IGRhdGEuYXVkaXRTdGF0dXM7CiAgICAgIHRoaXMuYXVkaXRUaW1lID0gZGF0YS5hdWRpdFRpbWU7CiAgICAgIHRoaXMuZm9ybS53YXJlaG91c2VJZCA9IGRhdGEud2FyZWhvdXNlSWQ7CiAgICAgIHRoaXMuZm9ybS53YXJlaG91c2VOYW1lID0gZGF0YS53YXJlaG91c2VOYW1lOyAvLyDllYblk4EKCiAgICAgIHRoaXMuZ29vZHNfbGlzdCA9IGRhdGEuZGV0YWlscy5tYXAoaXRlbSA9PiB7CiAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwKICAgICAgICAgIHNrdUlkOiBpdGVtLnNrdUlkLAogICAgICAgICAgc3BlY0dyb3BOYW1lOiBpdGVtLnNrdU5hbWUKICAgICAgICB9OwogICAgICB9KTsgLy8g6I635Y+Wc2t15o2i566X5YWz57O7CgogICAgICBhd2FpdCB0aGlzLmdldFNrdU51bSgpOwogICAgfSwKCiAgICAvLyDmuIXpmaTmmoLlrZgKICAgIGFzeW5jIGRlbFBhdXNlU2F2ZSh0eXBlKSB7CiAgICAgIGNvbnN0IGRhdGEgPSBkZWxQYXVzZVNhdmUoewogICAgICAgIGtleTogdGhpcy5sb29rX3BhdGgKICAgICAgfSk7CgogICAgICBpZiAodHlwZSkgewogICAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgdHlwZTogInN1Y2Nlc3MiLAogICAgICAgICAgbWVzc2FnZTogIua4hemZpOaaguWtmOaIkOWKnyIKICAgICAgICB9KTsKICAgICAgICB0aGlzLiRjbG9zZUN1cnJlbnRHb0VkaXQoIi9QdXJjaGFzZS9NYW5hZ2VQL1B1cmNoYXNlT3JkZXJBZGQiKTsKICAgICAgfQogICAgfSwKCiAgICAvLyB0aWFuamlhCiAgICBhc3luYyBhZGRQdXJjaGFzZU9yZGVyKCkgewogICAgICBjb25zb2xlLmxvZyh0aGlzLmdvb2RzX2xpc3QpOwoKICAgICAgaWYgKHRoaXMuZm9ybS5jb3Vwb25BbW91bnQgPiB0aGlzLnB1cmNoYXNlQW1vdW50KSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLkvJjmg6Dph5Hpop3kuI3og73lpKfkuo7ph4fotK3ph5Hpop0gIik7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBpZiAoIXRoaXMuZm9ybS5vdGhlckFtb3VudCkgewogICAgICAgIHRoaXMuZm9ybS5vdGhlckFtb3VudCA9IDA7CiAgICAgIH0KCiAgICAgIGlmICghdGhpcy5mb3JtLmNvdXBvbkFtb3VudCkgewogICAgICAgIHRoaXMuZm9ybS5jb3Vwb25BbW91bnQgPSAwOwogICAgICB9CgogICAgICB0aGlzLiRyZWZzWyJmb3JtIl0udmFsaWRhdGUoYXN5bmMgdmFsaWQgPT4gewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgY29uc3QgZ29vZHNMaXN0ID0gdGhpcy4kX2NvbW1vbi5kZWVwQ2xvbmUodGhpcy5nb29kc19saXN0KS5maWx0ZXIoaXRlbSA9PiBpdGVtLnNrdUlkID4gMCk7CgogICAgICAgICAgaWYgKCFnb29kc0xpc3QubGVuZ3RoKSB7CiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygi6K+36YCJ5oup5ZWG5ZOBIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KCiAgICAgICAgICBjb25zdCBpc2J1eWVyTnVtID0gZ29vZHNMaXN0LmV2ZXJ5KGl0ZW0gPT4gaXRlbS5idXllck51bSA+IDApOwoKICAgICAgICAgIGlmICghaXNidXllck51bSkgewogICAgICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoIumHh+i0reaVsOmHj+W/hemhu+Wkp+S6jjAiKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQoKICAgICAgICAgIGNvbnN0IGlzYnV5ZXJVbml0UHJpY2UgPSBnb29kc0xpc3QuZXZlcnkoaXRlbSA9PiBpdGVtLmJ1eWVyVW5pdFByaWNlID4gMCk7CgogICAgICAgICAgaWYgKCFpc2J1eWVyVW5pdFByaWNlKSB7CiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygi6YeH6LSt5Y2V5Lu35b+F6aG75aSn5LqOMCIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CgogICAgICAgICAgbGV0IGdvb2RzRGF0YSA9IGdvb2RzTGlzdC5tYXAoaXRlbSA9PiB7CiAgICAgICAgICAgIGxldCBnb29kcyA9IHsKICAgICAgICAgICAgICBiYXNpY0dvb2RzSWQ6IGl0ZW0uYmFzaWNHb29kc0lkLAogICAgICAgICAgICAgIGdvb2RzQ29kZTogaXRlbS5nb29kc0NvZGUsCiAgICAgICAgICAgICAgZ29vZHNOYW1lOiBpdGVtLmdvb2RzTmFtZSwKICAgICAgICAgICAgICBza3VJZDogaXRlbS5za3VJZCwKICAgICAgICAgICAgICB1bml0TmFtZTogaXRlbS51bml0TmFtZSwKICAgICAgICAgICAgICBza3VOYW1lOiBpdGVtLnNwZWNHcm9wTmFtZSwKICAgICAgICAgICAgICBidXllck51bTogaXRlbS5idXllck51bSwKICAgICAgICAgICAgICBidXllclVuaXRQcmljZTogaXRlbS5idXllclVuaXRQcmljZSwKICAgICAgICAgICAgICBzdWJ0b3RhbFByaWNlOiBpdGVtLnN1YnRvdGFsUHJpY2UsCiAgICAgICAgICAgICAgY291cG9uQW1vdW50OiBpdGVtLmNvdXBvbkFtb3VudCAtIDAsCiAgICAgICAgICAgICAgb3RoZXJBbW91bnQ6IGl0ZW0ub3RoZXJBbW91bnQgLSAwLAogICAgICAgICAgICAgIGNhdGVnb3J5SWQ6IGl0ZW0uY2F0ZWdvcnlJZCwKICAgICAgICAgICAgICBjYXRlZ29yeU5hbWU6IGl0ZW0uY2F0ZWdvcnlOYW1lLAogICAgICAgICAgICAgIG90aGVyTnVtOiBpdGVtLm90aGVyTnVtCiAgICAgICAgICAgIH07CgogICAgICAgICAgICBpZiAoaXRlbS5pZCkgewogICAgICAgICAgICAgIGdvb2RzLmlkID0gaXRlbS5pZDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIGdvb2RzOwogICAgICAgICAgfSk7CiAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7IC4uLnRoaXMuZm9ybSwKICAgICAgICAgICAgZ29vZHNEYXRhOiBnb29kc0RhdGEKICAgICAgICAgIH07CgogICAgICAgICAgaWYgKHRoaXMuZ29vZHNfbGlzdC5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CgogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIGxldCB0YXJnZXQgPSB7fTsKCiAgICAgICAgICAgICAgaWYgKHRoaXMucHVzcmNoYXNlX2lkKSB7CiAgICAgICAgICAgICAgICBwYXJhbXMuZGVsZXRlQXJyYXkgPSB0aGlzLmRlbF9nb29kc19pZDsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHBhcmFtcyk7CiAgICAgICAgICAgICAgICB0YXJnZXQgPSBhd2FpdCBlZGl0UHVyY2hhc2UodGhpcy5wdXNyY2hhc2VfaWQsIHBhcmFtcyk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRhcmdldCA9IGF3YWl0IGFkZFB1cmNoYXNlKHBhcmFtcyk7CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICBjb25zdCBkYXRhID0gdGFyZ2V0OwogICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgICAgICAgdHlwZTogInN1Y2Nlc3MiLAogICAgICAgICAgICAgICAgbWVzc2FnZTogIuaPkOS6pOaIkOWKnyIKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICBhd2FpdCB0aGlzLmRlbFBhdXNlU2F2ZSgpOwoKICAgICAgICAgICAgICBpZiAodGhpcy5zeXN0ZW1UeXBlID09PSAyKSB7CiAgICAgICAgICAgICAgICB0aGlzLiRjbG9zZUN1cnJlbnRHb0VkaXQoIi9TaW5nbGVTdG9yZS9wdXJjaGFzZS9wdXJjaGFzZUxpc3QiKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy4kY2xvc2VDdXJyZW50R29FZGl0KCIvUHVyY2hhc2UvTWFuYWdlUC9QdXJjaGFzZU9yZGVyIik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLiRtZXNzYWdlKCLor7fpgInmi6nllYblk4EiKTsKICAgICAgICAgIH0gLy8g5Lu35qC85pqC5a2Y5re75YqgCgoKICAgICAgICAgIGNvbnN0IHByaWNlRGF0YSA9IGdvb2RzRGF0YS5tYXAoaXRlbSA9PiB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgc2t1SWQ6IGl0ZW0uc2t1SWQsCiAgICAgICAgICAgICAgbW9uZXk6IGl0ZW0uYnV5ZXJVbml0UHJpY2UKICAgICAgICAgICAgfTsKICAgICAgICAgIH0pOwogICAgICAgICAgYXdhaXQgdGhpcy5hZGRNb25leVBhdXNlU2F2ZShwcmljZURhdGEpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAoKICAgIGRlbERhdGEoaW5kZXgsIHJvdykgewogICAgICBpZiAocm93LmlkKSB7CiAgICAgICAgdGhpcy5kZWxfZ29vZHNfaWQucHVzaChyb3cuaWQpOwogICAgICB9CgogICAgICBpZiAodGhpcy5nb29kc19saXN0Lmxlbmd0aCA9PT0gMSkgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygi5b+F6aG75L+d55WZ5LiA5p2hIik7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICB0aGlzLmdvb2RzX2xpc3Quc3BsaWNlKGluZGV4LCAxKTsKICAgIH0sCgogICAgc2VsU2hvcCh2YWwsIHJvdykgewogICAgICB0aGlzLmZvcm0uc2hvcE5hbWUgPSByb3dbMF0ubmFtZTsKICAgIH0sCgogICAgLy8g6YCJ5oup5Y2V5Liq5L6b5bqU5ZWGCiAgICBzZWxVbml0U3VwcGxpZXIodmFsLCBsaXN0KSB7CiAgICAgIHRoaXMuZm9ybS5zdXBwbGllck5hbWUgPSBsaXN0WzBdLnRpdGxlOwogICAgfSwKCiAgICAvLyDlkIjorqEKICAgIGdldFN1bW1hcmllcyhwYXJhbSkgewogICAgICByZXR1cm4gdGhpcy4kX2NvbW1vbi5nZXRTdW1tYXJpZXMocGFyYW0sIFsi5bCP6K6h6YeR6aKdIiwgIumHh+i0reaVsOmHjyJdKTsKICAgIH0sCgogICAgY29uZmlybUNvbnRyaWJ1dGlvbnMoKSB7Ly8gaWYgKCF0aGlzLmdvb2RzX2xpc3RbMF0uYmFzaWNHb29kc0lkKSB7CiAgICAgIC8vICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLor7flhYjpgInmi6nllYblk4EiKTsKICAgICAgLy8gICByZXR1cm47CiAgICAgIC8vIH0KICAgICAgLy8gaWYgKCF0aGlzLm9wdGlvbnNfdmFsdWUpIHsKICAgICAgLy8gICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoIuivt+WFiOmAieaLqeWIhuaRiuaWueW8jyIpOwogICAgICAvLyAgIHJldHVybjsKICAgICAgLy8gfQogICAgICAvLyB0aGlzLmFwcG9ydGlvbkZsYWcgPSB0cnVlOwogICAgICAvLyBpZiAodGhpcy5vcHRpb25zX3ZhbHVlID09PSAxKSB7CiAgICAgIC8vICAgbGV0IG51bSA9IDA7CiAgICAgIC8vICAgdGhpcy5nb29kc19saXN0LmZvckVhY2goKGl0ZW0pID0+IHsKICAgICAgLy8gICAgIG51bSA9IG51bSArIGl0ZW0uYnV5ZXJOdW07CiAgICAgIC8vICAgfSk7CiAgICAgIC8vICAgbGV0IG51bTEgPSAwOwogICAgICAvLyAgIG51bTEgPSAodGhpcy5jb250cmlidXRpb25zICogMTAwKSAvIG51bTsKICAgICAgLy8gICB0aGlzLmdvb2RzX2xpc3QuZm9yRWFjaCgoaXRlbSkgPT4gewogICAgICAvLyAgICAgbGV0IG51bTIgPSBpdGVtLmJ1eWVyTnVtICogKG51bTEgLyAxMDApOwogICAgICAvLyAgICAgaXRlbS5zdWJ0b3RhbFByaWNlICs9IG51bTI7CiAgICAgIC8vICAgfSk7CiAgICAgIC8vIH0gZWxzZSBpZiAodGhpcy5vcHRpb25zX3ZhbHVlID09PSAyKSB7CiAgICAgIC8vICAgbGV0IHN1bSA9IDA7CiAgICAgIC8vICAgdGhpcy5nb29kc19saXN0LmZvckVhY2goKGl0ZW0pID0+IHsKICAgICAgLy8gICAgIHN1bSArPSBpdGVtLmJ1eWVyVW5pdFByaWNlICogMTAwOwogICAgICAvLyAgIH0pOwogICAgICAvLyAgIGxldCBzdW0xID0gMDsKICAgICAgLy8gICBzdW0xID0gKHRoaXMuY29udHJpYnV0aW9ucyAqIDEwMCkgLyBzdW07CiAgICAgIC8vICAgdGhpcy5nb29kc19saXN0LmZvckVhY2goKGl0ZW0pID0+IHsKICAgICAgLy8gICAgIGl0ZW0uc3VidG90YWxQcmljZSArPSBzdW0xIC8gMTAwOwogICAgICAvLyAgICAgY29uc29sZS5sb2coaXRlbS5zdWJ0b3RhbFByaWNlKTsKICAgICAgLy8gICB9KTsKICAgICAgLy8gfQogICAgfQoKICB9Cn07"},{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqcA;AACA,mE,CACA;;AACA;AACA;AACA;AACA;AACA;AACA,SACAA,oBADA,EAEAC,mBAFA,EAGAC,YAHA,EAIAC,WAJA,QAKA,gBALA;AAMA,SACAC,iBADA,EAEAC,iBAFA,EAGAC,YAHA,EAIAC,YAJA,EAKAC,YALA,QAMA,cANA;AAOA;AACA;EACAC,gBADA;EAEAC,aAFA;EAGAC,aAHA;EAIAC,SAJA;EAKAC,YALA;EAMAC,cANA;EAOAC,gBAPA;EAQAC,WARA;EASAC,iBATA;EAUAC,gBAVA;EAWAC,eAXA;EAYAC;AAZA;AAcA;EACAC,wBADA;EAEAC;IACAC,iBADA;IAEAC,cAFA;IAGAC,QAHA;IAGA;IACAC,cAJA;IAKAC;EALA,CAFA;;EASAC;IACA;MACA;QACAC;MACA,CAFA,MAEA;QACAA;MACA;IACA,CANA;;IAOA;MACA;QACAA;MACA,CAFA,MAEA;QACAA;MACA;IACA,CANA;;IAOA;MACAC,gBADA;MACA;MACAC,kBAFA;MAGAC,cAHA;MAIAC,aAJA;MAKAC,mBALA;MAMAC,iBANA;MAMA;MACAC,qBAPA;MAQAC,qBARA;MASAC,4BATA;MAUAC,iBAVA;MAWAC,gBAXA;MAWA;MACAC,cAZA;MAaAC,gCAbA;MAcAC,aAdA;MAeAC,WAfA;MAgBAC,eAhBA;MAiBAC,aAjBA;MAkBAC,iBAlBA;MAmBAC,gBAnBA;MAoBAC,kBApBA;MAqBAC;QACAC,QADA;QAEAC,UAFA;QAGAC,YAHA;QAIAC,cAJA;QAKAC,gBALA;QAMAC,WANA;QAOAC,aAPA;QAQAC,gBARA;QASAvC,eATA;QAUAC,cAVA;QAWAuC,UAXA;QAYAC,aAZA;QAaAC,iBAbA;QAcAC,eAdA;QAeAC;MAfA,CArBA;MAsCAC,oBAtCA;MAuCAC,iBAvCA;MAuCA;MACAC;QACAL;UAAAM;UAAAC;QAAA,EADA;QAEAb;UAAAY;UAAAC;QAAA,EAFA;QAGAZ,UACA;UAAAW;UAAAE;UAAAC;QAAA,CADA;MAHA,CAxCA;MA+CAC,cA/CA;MAgDAC,gBAhDA;MAiDAC,cAjDA;MAkDAC,qBAlDA;MAmDAC,iBAnDA;MAoDAC,UACA;QAAAC;QAAAC;MAAA,CADA,EAEA;QAAAD;QAAAC;MAAA,CAFA,CApDA;MAwDAC,iBAxDA;MAyDAC,iBAzDA;MA0DAC,oBA1DA;MA2DAC,cA3DA;MA4DAC;IA5DA;EA8DA,CAtFA;;EAuFAC,YACA;MACAC;IADA,EADA;;IAIAC;MACA;;MACA;QACA;UACAC;QACA,CAFA;MAGA,CAJA,MAIA;QACAA;MACA,CAFA,MAEA;QACAA;MACA,CAVA,CAWA;MACA;MACA;MACA;MACA;MACA;;;MACA;IACA;;EAtBA,CAvFA;;EA+GAC;IACA;MACA;IACA,CAHA,CAIA;;;IACA;;IACA;MACA,0CADA,CAEA;;MACA;IACA,CAJA,MAIA;MACA;;MACA;QACA,qCADA,CACA;;QACA,yCAFA,CAEA;MACA;;MACA;IACA;;IACA;MACA;IACA;EACA,CApIA;;EAqIAC;IACAC;MACA;IACA,CAHA;;IAIAC;MACA;MACA;IACA,CAPA;;IAQAC;MACA;MACA;IACA,CAXA;;IAYAC;MACA;MACA;IACA,CAfA;;IAgBA;IACA;MACA;QACAhD,gBADA;QAEAF;MAFA;MAIA;QACAmD,uBADA;QAEAC,sBAFA;QAGAC;MAHA,GAIAC,IAJA,CAIA;QACA;QAEA;UACAD,eADA;UAEA3B;QAFA;QAIA;MACA,CAZA;IAaA,CAnCA;;IAoCA6B;MACA;MACA;MACA,6BACAC,8DADA;IAEA,CAzCA;;IA0CAC;MACA,wBACA,yCADA,GAEA,EAFA;MAGA;IACA,CA/CA;;IAgDAC;MACA;QACA;MACA;IACA,CApDA;;IAqDA;IACA;MACA,+BACAC,GADA,CACAC;QACA;UACA3F,iBADA;UAEA4F,+BAFA;UAGAC;QAHA;MAKA,CAPA,EAQAC,MARA,CAQAH,kBARA;;MASA;QACA;MACA;;MACA;QAAA3E;MAAA;MACA;QACA;;QACA;UACA+E;YACAC,mCADA;YAEA5F,8BAFA;YAGA6F,mCAHA;YAIAC;UAJA;QAMA;;QACA,SACA,OADA;UAEA;QAFA;MAIA,CAdA;MAeA,iEA7BA,CA8BA;;MACA;QACA;QACA;MACA;IACA,CAzFA;;IA0FA;IACAC;MACA;MACA;QACA,kCACAT,GADA,CACAU;UACA;QACA,CAHA,EAIAC,IAJA,CAIA,GAJA;QAKA;UACAC,eADA;UAEAhF,mBAFA;UAGAzB,qBAHA;UAIAC,oBAJA;UAKAC,qBALA;UAMAC,iBANA;UAOAuG,0BAPA;UAQAtG,uBARA;UASAC,2BATA;UAUAC,+BAVA;UAWAC,WAXA;UAYAC,mBAZA;UAaAC,kBAbA;UAcAC,eAdA;UAeAC;QAfA;MAiBA,CAvBA,EAFA,CA0BA;;MACA;QACA;MACA,CAFA;;MAGA;QACAgG;MACA,CAFA,MAEA;QACAA,sDACA,cADA,EAEA,OAFA;MAIA;;MACA;QACA;MACA,CAFA;MAGA;IACA,CArIA;;IAsIAC;MACA;QACA;QACA;MACA;;MACA;MACA;QACA;UACA5G,sCADA;UAEAC,qCAFA;UAGAC,sCAHA;UAIAC,iBAJA;UAKAuG,oCALA;UAMAtG,4BANA;UAOAC,4CAPA;UAQAC,iDARA;UASAC,WATA;UAUAC,mBAVA;UAWAC,kBAXA;UAYAC,eAZA;UAaAC;QAbA;MAeA,CAhBA;;MAiBA;QACAgG;MACA;;MACAE;QACA;;QACA;UACAF;QACA;MACA,CALA;MAMA,gDACA,cADA,EAEA,OAFA;MAIA;QACA;MACA,CAFA;MAGA;MACA;IACA,CA/KA;;IAgLA;IACA;MACAxD;MACA;QAAAhC;MAAA;QACA2F;MADA;MAIA;QACA,SACA,OADA;UAEAtG,gBACAsF,4BACAA,mBADA,GAEA3E,uBALA;UAMAV,eACAqF,2BACAA,kBADA,GAEA3E;QATA;MAWA,CAZA,EANA,CAmBA;;MACA;IACA,CAtMA;;IAuMA;IACA;MACA;QACAA;MADA;IAGA,CA5MA;;IA6MA4F;MACA;IACA,CA/MA;;IAgNA;IACAC;MACA;MACAL,6CACAA,2BADA,EAEAA,4BAFA;MAIA;MACA;;MACA;QACA;QACA;MACA;IACA,CA7NA;;IA8NA;IACAM;MACA;MACAN;QACA,IACAb,0CACAA,8BAFA,EAGA;UACAA;UACAA;UACAA;QACA;MACA,CATA;MAUA;MACA;IACA,CA7OA;;IA8OA;IACA;MACA,iBACA,YADA;QAEA3C;MAFA;MAIA;MACA;QACA+D,mBADA;QAEA/F;MAFA;MAIA;MAEA;QACAoE,eADA;QAEA3B;MAFA;;MAIA;QACA;MACA,CAFA,MAEA;QACA;MACA;IACA,CApQA;;IAqQA;IACA;MACA;QAAAzC;MAAA;QACA+F;MADA;MAIA;MACA;MACA,iCAPA,CAQA;;MACA;IACA,CAhRA;;IAkRA;IACA;MACA;QAAA/F;MAAA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,6CApBA,CAqBA;;MACA;QACA,SACA,OADA;UAEAhB,iBAFA;UAGAuG;QAHA;MAKA,CANA,EAtBA,CA6BA;;MACA;IACA,CAlTA;;IAmTA;IACA;MACA;QACAQ;MADA;;MAIA;QACA;UACA3B,eADA;UAEA3B;QAFA;QAIA;MACA;IACA,CAhUA;;IAiUA;IACA;MACAuD;;MACA;QACA;QACA;MACA;;MACA;QACA;MACA;;MACA;QACA;MACA;;MACA;QACA;UACA,gCACAC,SADA,CACA,eADA,EAEAnB,MAFA,CAEAH,sBAFA;;UAGA;YACA;YACA;UACA;;UACA;;UACA;YACA;YACA;UACA;;UACA,yCACAA,+BADA;;UAGA;YACA;YACA;UACA;;UACA;YACA;cACA9F,+BADA;cAEAC,yBAFA;cAGAC,yBAHA;cAIAC,iBAJA;cAKAC,uBALA;cAMAiH,0BANA;cAOA9G,uBAPA;cAQAC,mCARA;cASAC,iCATA;cAUAC,mCAVA;cAWAC,iCAXA;cAYAN,2BAZA;cAaAC,+BAbA;cAcAgH;YAdA;;YAgBA;cACAC;YACA;;YACA;UACA,CArBA;UAuBA,iBACA,YADA;YAEApE;UAFA;;UAIA;YACA;;YACA;cACA;;cACA;gBACAqE;gBACAL;gBACAR;cACA,CAJA,MAIA;gBACAA;cACA;;cACA;cACA;cACA;gBACApB,eADA;gBAEA3B;cAFA;cAIA;;cACA;gBACA,yBACA,oCADA;cAGA,CAJA,MAIA;gBACA;cACA;YACA,CAvBA,SAuBA;cACA;YACA;UACA,CA5BA,MA4BA;YACA;UACA,CA7EA,CA8EA;;;UACA;YACA;cACAzD,iBADA;cAEAsH;YAFA;UAIA,CALA;UAMA;QACA;MACA,CAxFA;IAyFA,CAvaA;;IAwaAC;MACA;QACA;MACA;;MACA;QACA;QACA;MACA;;MACA;IACA,CAjbA;;IAkbAC;MACA;IACA,CApbA;;IAqbA;IACAC;MACA;IACA,CAxbA;;IAybA;IACAC;MACA;IACA,CA5bA;;IA6bAC,wBACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;IACA;;EA9dA;AArIA","names":["updatePurchaseStatus","getPurchaseInfoById","editPurchase","addPurchase","getMoneyPauseSave","addMoneyPauseSave","addPauseSave","getPauseSave","delPauseSave","basicGoodsId","goodsCode","goodsName","skuId","unitName","categoryId","categoryName","buyerNum","buyerUnitPrice","subtotalPrice","couponAmount","otherAmount","name","components","ConditionSelGoods","SelectSupplier","AddStaff","WarehouseModel","StaffList","data","callback","err_tip_list","now_goods_data","spec_check","auditTime","spec_check_list","show_goods","select_loading","check_all_spec","is_spec_indeterminate","spec_model","add_staff","loading","createTime","auditName","auditId","auditStatus","look_path","goods_options","del_goods_id","warehouse_list","form","code","shopId","shopName","supplierId","supplierName","buyerId","buyerName","operatorName","remark","goodsData","warehouseName","warehouseId","purchaseType","supplier_show","purchase_list","purchase_rules","required","validator","message","trigger","goods_list","pusrchase_id","goods_index","warehouse_show","staff_show","options","value","label","options_value","contributions","apportionFlag","merchantId","activeName","computed","storeData","purchaseAmount","sum","created","methods","openWarehouse","selWarehouse","staffSel","shopDefault","confirmButtonText","cancelButtonText","type","then","specCheckChange","checkedCount","checkAllSpecChange","goodsVisibleChange","map","item","goodsBasicId","num","filter","obj","title","skuValue","skuNum","selGoods","itemS","join","isEq","specGropName","target","specSelConfirm","goodsD","skuIds","addListGoods","editNumChange","otherSet","key","console","deepClone","skuName","otherNum","goods","params","money","delData","selShop","selUnitSupplier","getSummaries","confirmContributions"],"sourceRoot":"src/views/Purchase/ManageP","sources":["PurchaseOrderAdd.vue"],"sourcesContent":["<template>\n <ContainerTit class=\"PurchaseOrderAdd\">\n <div style=\"position: relative\">\n <div class=\"btn-top-div\">\n <el-button\n v-if=\"look_path !== 'PurchaseOrderLook'\"\n :loading=\"loading\"\n :disabled=\"!!$route.params.id\"\n @click=\"delPauseSave(1)\"\n >\n 清除暂存\n </el-button>\n <el-button\n v-if=\"look_path !== 'PurchaseOrderLook'\"\n :loading=\"loading\"\n :disabled=\"!!$route.params.id\"\n @click=\"addPauseSave\"\n >\n 暂存\n </el-button>\n <el-button\n v-if=\"look_path !== 'PurchaseOrderLook'\"\n type=\"primary\"\n :loading=\"loading\"\n @click=\"addPurchaseOrder\"\n >\n 保存\n </el-button>\n <el-button\n v-if=\"look_path === 'PurchaseOrderLook'\"\n type=\"primary\"\n :disabled=\"auditStatus === 2\"\n :loading=\"loading\"\n @click=\"updatePurchase\"\n >\n 审核\n </el-button>\n </div>\n </div>\n <div>\n <el-form\n ref=\"form\"\n :inline=\"true\"\n :rules=\"purchase_rules\"\n :model=\"form\"\n size=\"small\"\n :disabled=\"look_path === 'PurchaseOrderLook'\"\n >\n <el-tabs v-model=\"activeName\">\n <el-tab-pane label=\"新增采购单\" name=\"one\">\n <el-row style=\"padding-bottom: 13px\">\n <el-col :span=\"24\">\n <p\n style=\"padding-left: 20px\"\n class=\"order_midden_left_text el-icon-arrow-right\"\n >\n 采购单信息\n </p>\n </el-col>\n <el-col v-if=\"!!$route.params.id\" class=\"form\" :span=\"6\">\n <el-form-item label=\"采购单号:\" prop=\"code\">\n {{ form.code }}\n </el-form-item>\n </el-col>\n\n <el-col class=\"form\" :span=\"6\">\n <el-form-item label=\"采购仓库:\" prop=\"warehouseName\">\n <div v-if=\"look_path !== 'PurchaseOrderLook'\">\n <el-input\n v-model=\"form.warehouseName\"\n placeholder=\"采购仓库\"\n readonly\n style=\"width: 210px\"\n >\n <i\n slot=\"suffix\"\n class=\"el-input__icon el-icon-search\"\n @click=\"openWarehouse()\"\n ></i>\n </el-input>\n </div>\n <span v-else>{{ form.warehouseName }}</span>\n </el-form-item>\n </el-col>\n <el-col class=\"form\" :span=\"6\">\n <el-form-item\n label=\"供应商:\"\n prop=\"supplierName\"\n style=\"min-width: 400px\"\n >\n <div v-if=\"look_path !== 'PurchaseOrderLook'\">\n <SelectSupplier\n v-model=\"form.supplierId\"\n :clearable=\"false\"\n width=\"210\"\n @change=\"selUnitSupplier\"\n />\n <el-button\n size=\"mini\"\n type=\"text\"\n @click=\"$router.push('/Purchase/ManageP/SupplierAdd')\"\n >\n 【新建供应商】\n </el-button>\n </div>\n <span v-else>{{ form.supplierName }}</span>\n </el-form-item>\n </el-col>\n <el-col class=\"form\" :span=\"12\">\n <el-form-item\n label=\"采购人员:\"\n prop=\"buyerId\"\n style=\"min-width: 400px\"\n >\n <div v-if=\"look_path !== 'PurchaseOrderLook'\">\n <el-input\n v-model=\"form.buyerName\"\n placeholder=\"采购人员:\"\n style=\"width: 210px\"\n readonly\n >\n <i\n slot=\"suffix\"\n class=\"el-input__icon el-icon-search\"\n @click=\"staff_show = true\"\n ></i>\n </el-input>\n <el-button\n v-if=\"look_path !== 'PurchaseOrderLook'\"\n type=\"text\"\n size=\"mini\"\n @click=\"add_staff = true\"\n >\n 【新建人员】\n </el-button>\n </div>\n <span v-else>{{ form.buyerName }}</span>\n </el-form-item>\n </el-col>\n <el-col class=\"form\" :span=\"6\">\n <el-form-item label=\"制单人员:\">\n {{ form.operatorName }}\n </el-form-item>\n </el-col>\n <el-col class=\"form\" :span=\"6\">\n <el-form-item label=\"制单时间:\">\n <span>{{ $_common.formatDate(createTime) }}</span>\n </el-form-item>\n </el-col>\n <el-col v-if=\"auditStatus === 2\" class=\"form\" :span=\"6\">\n <el-form-item label=\"审核人员:\">\n {{ auditName }}\n </el-form-item>\n </el-col>\n <el-col v-if=\"auditStatus === 2\" class=\"form\" :span=\"6\">\n <el-form-item label=\"审核时间:\">\n <span>{{ $_common.formatDate(auditTime) }}</span>\n </el-form-item>\n </el-col>\n <el-col\n v-if=\"look_path === 'PurchaseOrderLook' && auditStatus === 2\"\n class=\"form\"\n :span=\"6\"\n >\n <el-form-item label=\"审核状态:\">\n <el-tag type=\"success\">已审核</el-tag>\n </el-form-item>\n </el-col>\n </el-row>\n <el-alert\n v-if=\"err_tip_list.length\"\n title=\"采购数量换算提示\"\n type=\"error\"\n show-icon\n close-text=\"知道了\"\n >\n <ul>\n <li v-for=\"(item, index) in err_tip_list\" :key=\"index\">\n 商品【{{ item.goodsName }}】,单位【{{\n item.unitName\n }}】,编码【{{ item.goodsCode }}】,数量换算有误:{{\n item.title\n }}\n </li>\n </ul>\n </el-alert>\n </el-tab-pane>\n </el-tabs>\n <div class=\"order_bottom\">\n <p class=\"text\">商品清单</p>\n <el-table\n :data=\"goods_list\"\n show-summary\n size=\"mini\"\n :summary-method=\"getSummaries\"\n >\n <el-table-column\n label=\"#\"\n width=\"60\"\n type=\"index\"\n ></el-table-column>\n <el-table-column\n label=\"商品编码\"\n width=\"140\"\n prop=\"goodsCode\"\n show-overflow-tooltip\n ></el-table-column>\n <el-table-column prop=\"goodsName\" label=\"商品名称\" min-width=\"180\">\n <template slot-scope=\"scope\">\n <span v-if=\"look_path !== 'PurchaseOrderLook'\">\n <ConditionSelGoods\n v-model=\"scope.row.goodsName\"\n :type=\"true\"\n :merchant-id=\"merchantId\"\n :is-reveal-sku=\"4\"\n :enable-status=\"5\"\n :is-add-goods=\"5\"\n :spec-check=\"spec_check\"\n :is-purchase=\"true\"\n @selGoods=\"selGoods\"\n @goodsVisibleChange=\"\n goodsVisibleChange($event, scope.$index)\n \"\n @specSelConfirm=\"specSelConfirm\"\n />\n </span>\n <span v-else>\n {{ scope.row.goodsName }}\n </span>\n </template>\n </el-table-column>\n\n <el-table-column prop=\"specGropName\" label=\"规格\" min-width=\"120\">\n <template slot-scope=\"scope\">\n <span v-if=\"scope.row.unitName\">{{ scope.row.unitName }};</span>\n <span>{{ scope.row.specGropName }}</span>\n </template>\n </el-table-column>\n <el-table-column prop=\"buyerNum\" label=\"采购数量\" min-width=\"100\">\n <template slot-scope=\"scope\">\n <el-input-number\n v-model=\"scope.row.buyerNum\"\n style=\"width: 100%\"\n size=\"mini\"\n :min=\"0\"\n type=\"text\"\n placeholder=\"数量\"\n :controls=\"false\"\n @blur=\"editNumChange(scope.$index, 'buyerNum')\"\n />\n </template>\n </el-table-column>\n <el-table-column prop=\"buyerNum\" label=\"其他单位\" min-width=\"100\">\n <template slot-scope=\"scope\">\n <vxe-input\n v-model=\"scope.row.otherNum\"\n style=\"width: 100%\"\n size=\"mini\"\n :min=\"0\"\n placeholder=\"其他单位\"\n :controls=\"false\"\n :disabled=\"scope.row.isEq === 4\"\n type=\"integer\"\n @blur=\"editNumChange(scope.$index, 'buyerNum')\"\n ></vxe-input>\n </template>\n </el-table-column>\n <el-table-column\n prop=\"skuValue\"\n label=\"换算比例数量\"\n min-width=\"120\"\n ></el-table-column>\n <el-table-column\n prop=\"skuNum\"\n label=\"转换数量\"\n min-width=\"80\"\n ></el-table-column>\n <el-table-column\n prop=\"buyerUnitPrice\"\n label=\"采购单价\"\n min-width=\"100\"\n >\n <template slot-scope=\"scope\">\n <el-input-number\n v-model=\"scope.row.buyerUnitPrice\"\n size=\"mini\"\n style=\"width: 100%\"\n :controls=\"false\"\n :min=\"0\"\n type=\"text\"\n placeholder=\"单价\"\n @blur=\"editNumChange(scope.$index)\"\n />\n </template>\n </el-table-column>\n <el-table-column\n prop=\"subtotalPrice\"\n label=\"小计金额\"\n min-width=\"100\"\n >\n <template slot-scope=\"scope\">\n {{ $_common.formattedNumber(scope.row.subtotalPrice) }}\n </template>\n </el-table-column>\n <el-table-column\n v-if=\"look_path === 'PurchaseOrderLook'\"\n prop=\"storage\"\n label=\"货架编码\"\n min-width=\"100\"\n ></el-table-column>\n <el-table-column\n v-if=\"look_path === 'PurchaseOrderLook'\"\n prop=\"barCode\"\n label=\"商品条码\"\n min-width=\"100\"\n ></el-table-column>\n <el-table-column\n v-if=\"look_path !== 'PurchaseOrderLook'\"\n label=\"管理\"\n fixed=\"right\"\n width=\"160\"\n align=\"center\"\n >\n <template slot-scope=\"scope\">\n <el-button\n type=\"text\"\n size=\"mini\"\n :disabled=\"goods_list.length === 1\"\n @click=\"delData(scope.$index, scope.row)\"\n >\n 删除\n </el-button>\n <el-button\n type=\"text\"\n size=\"mini\"\n @click=\"otherSet(scope.$index, scope.row)\"\n >\n 同步\n </el-button>\n </template>\n </el-table-column>\n </el-table>\n <div class=\"table-b-div\">\n <div class=\"table-b-div-cont\" @click=\"addListGoods\">\n <el-button type=\"text\" size=\"mini\" @click=\"addListGoods\">\n <i class=\"el-icon-plus\"></i>\n 新增\n </el-button>\n </div>\n </div>\n <div class=\"clearfix other-price-view\">\n <div class=\"float_left\">\n <el-form-item label=\"备注:\">\n <el-input\n v-model=\"form.remark\"\n style=\"width: 360px\"\n size=\"small\"\n placeholder=\"备注\"\n ></el-input>\n </el-form-item>\n </div>\n <div class=\"float_right\">\n <el-form-item label=\"其他金额:\">\n <el-input-number\n v-model=\"form.otherAmount\"\n style=\"width: 100px\"\n size=\"small\"\n :controls=\"false\"\n :min=\"0\"\n placeholder=\"其他金额\"\n ></el-input-number>\n </el-form-item>\n <el-form-item label=\"优惠金额:\">\n <el-input-number\n v-model=\"form.couponAmount\"\n style=\"width: 100px\"\n size=\"small\"\n :controls=\"false\"\n :min=\"0\"\n :max=\"purchaseAmount\"\n placeholder=\"优惠金额\"\n ></el-input-number>\n </el-form-item>\n <el-form-item label=\"采购金额:\">\n <el-input\n v-model=\"purchaseAmount\"\n style=\"width: 100px\"\n size=\"small\"\n placeholder=\"采购金额\"\n ></el-input>\n </el-form-item>\n </div>\n </div>\n </div>\n </el-form>\n </div>\n <!-- 新增员工-->\n <AddStaff\n v-if=\"add_staff\"\n :visible=\"add_staff\"\n @close=\"add_staff = false\"\n />\n <StaffList\n v-if=\"staff_show\"\n :is-show=\"staff_show\"\n :is-check=\"false\"\n :isserch=\"true\"\n @cancel=\"staff_show = false\"\n @confirm=\"staffSel\"\n />\n <!-- 选择仓库-->\n <WarehouseModel\n v-if=\"warehouse_show\"\n :is-check=\"false\"\n :is-show=\"warehouse_show\"\n @confirm=\"selWarehouse\"\n @cancel=\"warehouse_show = false\"\n />\n <!-- 选择属性-->\n <el-dialog\n :close-on-press-escape=\"false\"\n :close-on-click-modal=\"false\"\n title=\"选择属性\"\n :visible.sync=\"spec_model\"\n width=\"40%\"\n >\n <el-checkbox\n v-model=\"check_all_spec\"\n :indeterminate=\"is_spec_indeterminate\"\n @change=\"checkAllSpecChange\"\n >\n 全选\n </el-checkbox>\n <div style=\"margin: 15px 0\"></div>\n <el-checkbox-group v-model=\"spec_check\" @change=\"specCheckChange\">\n <el-checkbox\n v-for=\"(item, index) in spec_check_list\"\n :key=\"index\"\n style=\"padding-bottom: 5px\"\n :label=\"item.id\"\n >\n {{ item.specGropName }}\n </el-checkbox>\n </el-checkbox-group>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"spec_model = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"specSelConfirm\">确 定</el-button>\n </span>\n </el-dialog>\n </ContainerTit>\n</template>\n\n<script>\n import SelectSupplier from \"@/component/common/SelectSupplier.vue\";\n import WarehouseModel from \"@/component/common/WarehouseModel.vue\";\n // 新增员工\n import AddStaff from \"@/component/SystemSettings/AddStaff\";\n import StaffList from \"@/component/common/staffListModal\";\n import ConditionSelGoods from \"@/component/common/ConditionSelGoods\";\n import { getAllStaff } from \"@/api/Department\";\n import { getAllWarehouse, getMasterSkuNum } from \"@/api/Stock\";\n import {\n updatePurchaseStatus,\n getPurchaseInfoById,\n editPurchase,\n addPurchase,\n } from \"@/api/Purchase\";\n import {\n getMoneyPauseSave,\n addMoneyPauseSave,\n addPauseSave,\n getPauseSave,\n delPauseSave,\n } from \"@/api/common\";\n import { mapGetters } from \"vuex\";\n const goods = {\n basicGoodsId: \"\",\n goodsCode: \"\",\n goodsName: \"\",\n skuId: \"\",\n unitName: \"\",\n categoryId: \"\",\n categoryName: \"\",\n buyerNum: 0,\n buyerUnitPrice: 0,\n subtotalPrice: 0,\n couponAmount: 0,\n otherAmount: 0,\n };\n export default {\n name: \"PurchaseOrderAdd\",\n components: {\n ConditionSelGoods,\n SelectSupplier,\n AddStaff, // 新增员工\n WarehouseModel,\n StaffList,\n },\n data() {\n const validateShop = (rule, value, callback) => {\n if (!value) {\n callback(new Error(\"请选择采购仓库\"));\n } else {\n callback();\n }\n };\n const validateSupplier = (rule, value, callback) => {\n if (!value) {\n callback(new Error(\"请选择供应商\"));\n } else {\n callback();\n }\n };\n return {\n err_tip_list: [], // 错误提示\n now_goods_data: {},\n spec_check: [],\n auditTime: \"\",\n spec_check_list: [],\n show_goods: false, // 选择商品弹窗\n select_loading: false,\n check_all_spec: false,\n is_spec_indeterminate: false,\n spec_model: false,\n add_staff: false, // 新增员工\n loading: false,\n createTime: new Date().getTime(),\n auditName: \"\",\n auditId: \"\",\n auditStatus: \"\",\n look_path: \"\",\n goods_options: [],\n del_goods_id: [],\n warehouse_list: [],\n form: {\n code: \"\",\n shopId: \"\",\n shopName: \"\",\n supplierId: \"\",\n supplierName: \"\",\n buyerId: \"\",\n buyerName: \"\",\n operatorName: \"\",\n couponAmount: 0,\n otherAmount: 0,\n remark: \"\",\n goodsData: [],\n warehouseName: \"\",\n warehouseId: \"\",\n purchaseType: 4,\n },\n supplier_show: false,\n purchase_list: [], // 采购人员列表\n purchase_rules: {\n warehouseName: [{ required: true, validator: validateShop }],\n supplierName: [{ required: true, validator: validateSupplier }],\n buyerId: [\n { required: true, message: \"请选择采购人员\", trigger: \"change\" },\n ],\n },\n goods_list: [],\n pusrchase_id: \"\",\n goods_index: 0,\n warehouse_show: false,\n staff_show: false,\n options: [\n { value: 1, label: \"按数量\" },\n { value: 2, label: \"按金额\" },\n ],\n options_value: \"\",\n contributions: \"\",\n apportionFlag: false,\n merchantId: \"\",\n activeName: \"one\",\n };\n },\n computed: {\n ...mapGetters({\n storeData: \"MUser/storeData\",\n }),\n purchaseAmount() {\n let sum = 0;\n if (this.goods_list.length > 1) {\n this.goods_list.forEach((item) => {\n sum = this.$NP.plus(sum, Number(item.subtotalPrice));\n });\n } else if (this.goods_list.length === 1) {\n sum = Number(this.goods_list[0].subtotalPrice);\n } else {\n sum = 0;\n }\n // return (\n // this.$NP.plus(\n // sum,\n // this.$NP.minus(this.form.otherAmount, this.form.couponAmount)\n // ) || 0\n // );\n return this.$NP.plus(sum, this.form.otherAmount) || 0;\n },\n },\n created() {\n if (this.systemType === 3) {\n this.merchantId = this.storeData.merchantData.id;\n }\n // 获取当前的路由,截取\n this.look_path = this.$route.name;\n if (this.$route.params.id) {\n this.pusrchase_id = this.$route.params.id;\n // 调用详情接口\n this.getPurchaseInfoById();\n } else {\n this.form.operatorName = this.userName;\n if ([2, 3].includes(this.systemType)) {\n this.form.shopId = this.storeData.id; // 店铺\n this.form.shopName = this.storeData.name; // 店铺\n }\n this.getPauseSave();\n }\n for (let i = 1; i <= 1; i++) {\n this.goods_list.push(this.$_common.deepClone(goods));\n }\n },\n methods: {\n openWarehouse() {\n this.warehouse_show = true;\n },\n selWarehouse(row) {\n this.form.warehouseName = row[0].warehouseName;\n this.form.warehouseId = row[0].id;\n },\n staffSel(row) {\n this.form.buyerName = row[0].staffName;\n this.form.buyerId = row[0].id;\n },\n shopDefault(val, row) {\n this.form.shopId = val;\n this.form.shopName = row.name;\n },\n // 审核状态 updatePurchaseStatus\n async updatePurchase(row) {\n const params = {\n auditStatus: \"2\",\n auditName: this.userName,\n };\n this.$confirm(\"确定审核该订单\", \"提示\", {\n confirmButtonText: \"确定\",\n cancelButtonText: \"取消\",\n type: \"warning\",\n }).then(async () => {\n const data = await updatePurchaseStatus(this.pusrchase_id, params);\n\n this.$message({\n type: \"success\",\n message: \"操作成功!\",\n });\n await this.getPurchaseInfoById();\n });\n },\n specCheckChange(value) {\n let checkedCount = value.length;\n this.check_all_spec = checkedCount === this.spec_check_list.length;\n this.is_spec_indeterminate =\n checkedCount > 0 && checkedCount < this.spec_check_list.length;\n },\n checkAllSpecChange(val) {\n this.spec_check = val\n ? this.spec_check_list.map((item) => item.id)\n : [];\n this.is_spec_indeterminate = false;\n },\n goodsVisibleChange(visible, index) {\n if (visible) {\n this.goods_index = index;\n }\n },\n //换算sku数量\n async getSkuNum() {\n const skuNum = this.goods_list\n .map((item) => {\n return {\n skuId: item.skuId,\n goodsBasicId: item.basicGoodsId,\n num: item.buyerNum || 1,\n };\n })\n .filter((item) => item.skuId);\n if (!skuNum.length) {\n return;\n }\n const { data } = await getMasterSkuNum(skuNum);\n this.goods_list = this.goods_list.map((item) => {\n let obj = {};\n if (data[item.skuId]) {\n obj = {\n title: data[item.skuId].title || \"\",\n buyerNum: data[item.skuId].num,\n skuValue: data[item.skuId].skuValue,\n skuNum: data[item.skuId].masterNum + data[item.skuId].masterName,\n };\n }\n return {\n ...item,\n ...obj,\n };\n });\n this.err_tip_list = this.goods_list.filter((item) => !!item.title);\n // 如果没有商品选择框则新增一个\n if (!this.goods_list.find((item) => !item.skuId)) {\n // 新增一个商品选择框\n this.addListGoods();\n }\n },\n // 多选商品确定\n selGoods(list) {\n let target = this.$_common.deepClone(this.goods_list);\n const goodsD = list.map((item) => {\n let specGropName = item.specGroup\n .map((itemS) => {\n return itemS.specValueName;\n })\n .join(\"_\");\n return {\n isEq: item.isEq,\n spec_check_list: [],\n basicGoodsId: item.id,\n goodsCode: item.code,\n goodsName: item.title,\n skuId: item.skuId,\n specGropName: specGropName,\n unitName: item.unitName,\n categoryId: item.categoryId,\n categoryName: item.categoryName,\n buyerNum: 1,\n buyerUnitPrice: 0.1,\n subtotalPrice: 0.1,\n couponAmount: 0,\n otherAmount: 0,\n };\n });\n // 判断是否有内容\n const isBase = target.some((item) => {\n return item.basicGoodsId;\n });\n if (!isBase) {\n target = goodsD;\n } else {\n target = this.$_common.unique(target.concat(goodsD), [\n \"basicGoodsId\",\n \"skuId\",\n ]);\n }\n const skuIdArr = target.map((item) => {\n return item.skuId;\n });\n this.pricePauseSave(skuIdArr, target);\n },\n specSelConfirm(params) {\n if (!params.goodsD[0].skuId) {\n this.$message.warning(\"至少选择一项\");\n return;\n }\n let target = this.$_common.deepClone(this.goods_list);\n const goodsD = params.goodsD.map((item) => {\n return {\n basicGoodsId: params.now_goods_data.id,\n goodsCode: params.now_goods_data.code,\n goodsName: params.now_goods_data.title,\n skuId: item.skuId,\n specGropName: item.spec.specGropName,\n unitName: item.spec.unitName,\n categoryId: params.now_goods_data.categoryId,\n categoryName: params.now_goods_data.categoryTitle,\n buyerNum: 1,\n buyerUnitPrice: 0.1,\n subtotalPrice: 0.1,\n couponAmount: 0,\n otherAmount: 0,\n };\n });\n if (!target[this.goods_index].skuId) {\n target.splice(this.goods_index, 1);\n }\n goodsD.forEach((item) => {\n const targetD = target.find((itemG) => itemG.skuId === item.skuId);\n if (!targetD) {\n target.push(item);\n }\n });\n const goodsData = this.$_common.unique(target, [\n \"basicGoodsId\",\n \"skuId\",\n ]);\n const skuIdArr = goodsData.map((item) => {\n return item.skuId;\n });\n this.pricePauseSave(skuIdArr, goodsData);\n this.spec_model = false;\n },\n // 价格暂存查询\n async pricePauseSave(skuId, goodsData) {\n goodsData = goodsData.filter((item) => item.skuId);\n const { data } = await getMoneyPauseSave({\n skuIds: skuId,\n });\n\n this.goods_list = goodsData.map((item) => {\n return {\n ...item,\n buyerUnitPrice:\n item.buyerUnitPrice > 0.1\n ? item.buyerUnitPrice\n : data[item.skuId] || 0.1,\n subtotalPrice:\n item.subtotalPrice > 0.1\n ? item.subtotalPrice\n : data[item.skuId] || 0.1,\n };\n });\n // 获取sku换算关系\n await this.getSkuNum();\n },\n // 价格暂存提交\n async addMoneyPauseSave(priceData) {\n const data = await addMoneyPauseSave({\n data: priceData,\n });\n },\n addListGoods() {\n this.goods_list.push(this.$_common.deepClone(goods));\n },\n // 改变数量\n editNumChange(index, tag) {\n const target = this.$_common.deepClone(this.goods_list);\n target[index].subtotalPrice = this.$NP.times(\n target[index].buyerNum || 1,\n target[index].buyerUnitPrice\n );\n this.goods_list = target;\n if (!target[index].skuId) return;\n if (tag === \"buyerNum\") {\n // 获取sku换算关系\n this.getSkuNum();\n }\n },\n // 一键批量设置\n otherSet(index, row) {\n const target = this.$_common.deepClone(this.goods_list);\n target.forEach((item) => {\n if (\n item.basicGoodsId === row.basicGoodsId &&\n item.unitName === row.unitName\n ) {\n item.buyerNum = row.buyerNum;\n item.subtotalPrice = row.subtotalPrice;\n item.buyerUnitPrice = row.buyerUnitPrice;\n }\n });\n this.goods_list = target;\n this.getSkuNum();\n },\n // 添加暂存\n async addPauseSave() {\n const params = {\n ...this.form,\n goodsData: this.goods_list,\n };\n this.loading = true;\n const data = await addPauseSave({\n key: this.look_path,\n data: params,\n });\n this.loading = false;\n\n this.$message({\n type: \"success\",\n message: \"暂存成功\",\n });\n if (this.systemType === 2) {\n this.$closeCurrentGoEdit(\"/SingleStore/purchase/purchaseList\");\n } else {\n this.$closeCurrentGoEdit(\"/Purchase/ManageP/PurchaseOrder\");\n }\n },\n // 获取暂存信息\n async getPauseSave() {\n const { data } = await getPauseSave({\n key: this.look_path,\n });\n\n if (JSON.stringify(data) === \"{}\") return;\n this.form = data;\n this.goods_list = data.goodsData;\n // 获取sku换算关系\n await this.getSkuNum();\n },\n\n // 详情接口\n async getPurchaseInfoById() {\n const { data } = await getPurchaseInfoById(this.pusrchase_id);\n this.form.code = data.no;\n this.createTime = data.createTime;\n this.form.shopId = data.shopId;\n this.form.shopName = data.shopName;\n this.form.supplierId = data.supplierId;\n this.form.supplierName = data.supplierName;\n this.form.buyerId = data.buyerId;\n this.form.buyerName = data.buyerName;\n this.form.operatorName = data.operatorName;\n this.form.purchaseAmount = data.purchaseAmount;\n this.form.couponAmount = data.couponAmount;\n this.form.otherAmount = data.otherAmount;\n this.form.remark = data.remark;\n this.auditId = data.auditId;\n this.auditName = data.auditName;\n this.auditStatus = data.auditStatus;\n this.auditTime = data.auditTime;\n this.form.warehouseId = data.warehouseId;\n this.form.warehouseName = data.warehouseName;\n // 商品\n this.goods_list = data.details.map((item) => {\n return {\n ...item,\n skuId: item.skuId,\n specGropName: item.skuName,\n };\n });\n // 获取sku换算关系\n await this.getSkuNum();\n },\n // 清除暂存\n async delPauseSave(type) {\n const data = delPauseSave({\n key: this.look_path,\n });\n\n if (type) {\n this.$message({\n type: \"success\",\n message: \"清除暂存成功\",\n });\n this.$closeCurrentGoEdit(\"/Purchase/ManageP/PurchaseOrderAdd\");\n }\n },\n // tianjia\n async addPurchaseOrder() {\n console.log(this.goods_list);\n if (this.form.couponAmount > this.purchaseAmount) {\n this.$message.warning(\"优惠金额不能大于采购金额 \");\n return;\n }\n if (!this.form.otherAmount) {\n this.form.otherAmount = 0;\n }\n if (!this.form.couponAmount) {\n this.form.couponAmount = 0;\n }\n this.$refs[\"form\"].validate(async (valid) => {\n if (valid) {\n const goodsList = this.$_common\n .deepClone(this.goods_list)\n .filter((item) => item.skuId > 0);\n if (!goodsList.length) {\n this.$message.warning(\"请选择商品\");\n return;\n }\n const isbuyerNum = goodsList.every((item) => item.buyerNum > 0);\n if (!isbuyerNum) {\n this.$message.warning(\"采购数量必须大于0\");\n return;\n }\n const isbuyerUnitPrice = goodsList.every(\n (item) => item.buyerUnitPrice > 0\n );\n if (!isbuyerUnitPrice) {\n this.$message.warning(\"采购单价必须大于0\");\n return;\n }\n let goodsData = goodsList.map((item) => {\n let goods = {\n basicGoodsId: item.basicGoodsId,\n goodsCode: item.goodsCode,\n goodsName: item.goodsName,\n skuId: item.skuId,\n unitName: item.unitName,\n skuName: item.specGropName,\n buyerNum: item.buyerNum,\n buyerUnitPrice: item.buyerUnitPrice,\n subtotalPrice: item.subtotalPrice,\n couponAmount: item.couponAmount - 0,\n otherAmount: item.otherAmount - 0,\n categoryId: item.categoryId,\n categoryName: item.categoryName,\n otherNum: item.otherNum,\n };\n if (item.id) {\n goods.id = item.id;\n }\n return goods;\n });\n\n const params = {\n ...this.form,\n goodsData: goodsData,\n };\n if (this.goods_list.length > 0) {\n this.loading = true;\n try {\n let target = {};\n if (this.pusrchase_id) {\n params.deleteArray = this.del_goods_id;\n console.log(params);\n target = await editPurchase(this.pusrchase_id, params);\n } else {\n target = await addPurchase(params);\n }\n const data = target;\n this.loading = false;\n this.$message({\n type: \"success\",\n message: \"提交成功\",\n });\n await this.delPauseSave();\n if (this.systemType === 2) {\n this.$closeCurrentGoEdit(\n \"/SingleStore/purchase/purchaseList\"\n );\n } else {\n this.$closeCurrentGoEdit(\"/Purchase/ManageP/PurchaseOrder\");\n }\n } finally {\n this.loading = false;\n }\n } else {\n this.$message(\"请选择商品\");\n }\n // 价格暂存添加\n const priceData = goodsData.map((item) => {\n return {\n skuId: item.skuId,\n money: item.buyerUnitPrice,\n };\n });\n await this.addMoneyPauseSave(priceData);\n }\n });\n },\n delData(index, row) {\n if (row.id) {\n this.del_goods_id.push(row.id);\n }\n if (this.goods_list.length === 1) {\n this.$message.warning(\"必须保留一条\");\n return;\n }\n this.goods_list.splice(index, 1);\n },\n selShop(val, row) {\n this.form.shopName = row[0].name;\n },\n // 选择单个供应商\n selUnitSupplier(val, list) {\n this.form.supplierName = list[0].title;\n },\n // 合计\n getSummaries(param) {\n return this.$_common.getSummaries(param, [\"小计金额\", \"采购数量\"]);\n },\n confirmContributions() {\n // if (!this.goods_list[0].basicGoodsId) {\n // this.$message.warning(\"请先选择商品\");\n // return;\n // }\n // if (!this.options_value) {\n // this.$message.warning(\"请先选择分摊方式\");\n // return;\n // }\n // this.apportionFlag = true;\n // if (this.options_value === 1) {\n // let num = 0;\n // this.goods_list.forEach((item) => {\n // num = num + item.buyerNum;\n // });\n // let num1 = 0;\n // num1 = (this.contributions * 100) / num;\n // this.goods_list.forEach((item) => {\n // let num2 = item.buyerNum * (num1 / 100);\n // item.subtotalPrice += num2;\n // });\n // } else if (this.options_value === 2) {\n // let sum = 0;\n // this.goods_list.forEach((item) => {\n // sum += item.buyerUnitPrice * 100;\n // });\n // let sum1 = 0;\n // sum1 = (this.contributions * 100) / sum;\n // this.goods_list.forEach((item) => {\n // item.subtotalPrice += sum1 / 100;\n // console.log(item.subtotalPrice);\n // });\n // }\n },\n },\n };\n</script>\n\n<style lang=\"scss\" scoped>\n .other-price-view {\n padding-top: 10px;\n padding-left: 10px;\n border: 1px solid #ecf0f7;\n border-top: 0;\n }\n .order_bottom {\n border-top: 16px solid #f6f8f9;\n width: 100%;\n background-color: #ffffff;\n border-radius: 3px;\n .text {\n font-size: 16px;\n font-weight: 600;\n color: #2d405e;\n line-height: 64px;\n padding: 0px 24px;\n }\n }\n .order_midden_left_text {\n font-weight: bold;\n font-size: 16px;\n margin: 0 0 27px 0;\n }\n .form {\n padding-left: 40px;\n font-size: 14px;\n margin-bottom: 19px;\n .form_left {\n margin-right: 32px;\n color: #62738e;\n font-weight: 400;\n }\n .form_right {\n color: #2d405e;\n font-weight: 500;\n }\n }\n .btn-top-div {\n position: absolute;\n right: 20px;\n top: 15px;\n z-index: 999;\n }\n .table-b-div {\n height: 80px;\n width: 100%;\n padding: 16px 24px 32px 25px;\n border: 1px solid #ebeef5;\n text-align: center;\n line-height: 40px;\n border-top: 0 none;\n cursor: pointer;\n .table-b-div-cont {\n border: 1px dashed #2153d4;\n }\n }\n</style>\n<style>\n .PurchaseOrderAdd {\n background-color: #fff;\n }\n .PurchaseOrderAdd .el-tabs__item {\n font-size: 16px !important;\n height: 60px !important;\n line-height: 60px !important;\n }\n .PurchaseOrderAdd .is-active {\n font-weight: 700;\n color: #000;\n }\n .PurchaseOrderAdd .el-tabs__nav {\n margin-left: 24px;\n }\n</style>\n"]}]}
|