1 |
- {"remainingRequest":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\thread-loader\\dist\\cjs.js!D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\babel-loader\\lib\\index.js!D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\wnmp\\www\\vue\\seaBlueAdmin\\src\\views\\Purchase\\ManageP\\AddMerchantPurchase.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\src\\views\\Purchase\\ManageP\\AddMerchantPurchase.vue","mtime":1678954023572},{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\babel.config.js","mtime":1681371897685},{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1681371913603},{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\thread-loader\\dist\\cjs.js","mtime":1681371925422},{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\babel-loader\\lib\\index.js","mtime":1681371912860},{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1681371913603},{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\vue-loader\\lib\\index.js","mtime":1681371925849}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwppbXBvcnQgeyBtYXBHZXR0ZXJzIH0gZnJvbSAidnVleCI7CmltcG9ydCBNZWFyY2hhbnRMaXN0IGZyb20gIkAvY29tcG9uZW50L2NvbW1vbi9NZWFyY2hhbnRMaXN0LnZ1ZSI7IC8vIGltcG9ydCBBZGRNZWFyY2hhbnRMaXN0IGZyb20gIkAvY29tcG9uZW50L2NvbW1vbi9BZGRNZXJjaGFudExpc3QiOwoKaW1wb3J0IFdhcmVob3VzZU1vZGVsIGZyb20gIkAvY29tcG9uZW50L2NvbW1vbi9XYXJlaG91c2VNb2RlbC52dWUiOyAvLyDmlrDlop7lkZjlt6UKCmltcG9ydCBBZGRTdGFmZiBmcm9tICJAL2NvbXBvbmVudC9TeXN0ZW1TZXR0aW5ncy9BZGRTdGFmZiI7CmltcG9ydCBTdGFmZkxpc3QgZnJvbSAiQC9jb21wb25lbnQvY29tbW9uL3N0YWZmTGlzdE1vZGFsIjsKaW1wb3J0IENvbmRpdGlvblNlbEdvb2RzIGZyb20gIkAvY29tcG9uZW50L2NvbW1vbi9Db25kaXRpb25TZWxHb29kcyI7CmltcG9ydCB7IGdldEFsbFdhcmVob3VzZSwgZ2V0TWFzdGVyU2t1TnVtIH0gZnJvbSAiQC9hcGkvU3RvY2siOwppbXBvcnQgeyB1cGRhdGVQdXJjaGFzZVN0YXR1cywgZ2V0UHVyY2hhc2VJbmZvQnlJZCwgZWRpdFB1cmNoYXNlLCBhZGRQdXJjaGFzZSB9IGZyb20gIkAvYXBpL1B1cmNoYXNlIjsKaW1wb3J0IHsgZ2V0TW9uZXlQYXVzZVNhdmUsIGFkZE1vbmV5UGF1c2VTYXZlLCBhZGRQYXVzZVNhdmUsIGdldFBhdXNlU2F2ZSwgZGVsUGF1c2VTYXZlIH0gZnJvbSAiQC9hcGkvY29tbW9uIjsKY29uc3QgZ29vZHMgPSB7CiAgYmFzaWNHb29kc0lkOiAiIiwKICBnb29kc0NvZGU6ICIiLAogIGdvb2RzTmFtZTogIiIsCiAgc2t1SWQ6ICIiLAogIHVuaXROYW1lOiAiIiwKICBjYXRlZ29yeUlkOiAiIiwKICBjYXRlZ29yeU5hbWU6ICIiLAogIGJ1eWVyTnVtOiAwLAogIGJ1eWVyVW5pdFByaWNlOiAwLAogIHN1YnRvdGFsUHJpY2U6IDAsCiAgY291cG9uQW1vdW50OiAwLAogIG90aGVyQW1vdW50OiAwCn07CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiUHVyY2hhc2VPcmRlckFkZCIsCiAgY29tcG9uZW50czogewogICAgLy8gQWRkTWVhcmNoYW50TGlzdCwKICAgIFdhcmVob3VzZU1vZGVsLAogICAgTWVhcmNoYW50TGlzdCwKICAgIENvbmRpdGlvblNlbEdvb2RzLAogICAgQWRkU3RhZmYsCiAgICAvLyDmlrDlop7lkZjlt6UKICAgIFN0YWZmTGlzdAogIH0sCgogIGRhdGEoKSB7CiAgICBjb25zdCB2YWxpZGF0ZVNob3AgPSAocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSA9PiB7CiAgICAgIGlmICghdmFsdWUpIHsKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoIuivt+mAieaLqemHh+i0reS7k+W6kyIpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjYWxsYmFjaygpOwogICAgICB9CiAgICB9OwoKICAgIGNvbnN0IHZhbGlkYXRlU3VwcGxpZXIgPSAocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSA9PiB7CiAgICAgIGlmICghdmFsdWUpIHsKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoIuivt+mAieaLqeWVhuaItyIpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjYWxsYmFjaygpOwogICAgICB9CiAgICB9OwoKICAgIHJldHVybiB7CiAgICAgIGdvb2RfbmFtZTogdHJ1ZSwKICAgICAgYWRkX21lcmNoYW50OiBmYWxzZSwKICAgICAgbWVhcmNoYW50X3Nob3c6IGZhbHNlLAogICAgICBlcnJfdGlwX2xpc3Q6IFtdLAogICAgICAvLyDplJnor6/mj5DnpLoKICAgICAgbm93X2dvb2RzX2RhdGE6IHt9LAogICAgICBzcGVjX2NoZWNrOiBbXSwKICAgICAgYXVkaXRUaW1lOiAiIiwKICAgICAgc3BlY19jaGVja19saXN0OiBbXSwKICAgICAgc2hvd19nb29kczogZmFsc2UsCiAgICAgIC8vIOmAieaLqeWVhuWTgeW8ueeqlwogICAgICBzZWxlY3RfbG9hZGluZzogZmFsc2UsCiAgICAgIGNoZWNrX2FsbF9zcGVjOiBmYWxzZSwKICAgICAgaXNfc3BlY19pbmRldGVybWluYXRlOiBmYWxzZSwKICAgICAgc3BlY19tb2RlbDogZmFsc2UsCiAgICAgIGFkZF9zdGFmZjogZmFsc2UsCiAgICAgIC8vIOaWsOWinuWRmOW3pQogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgY3JlYXRlVGltZTogbmV3IERhdGUoKS5nZXRUaW1lKCksCiAgICAgIGF1ZGl0TmFtZTogIiIsCiAgICAgIGF1ZGl0SWQ6ICIiLAogICAgICBhdWRpdFN0YXR1czogIiIsCiAgICAgIGxvb2tfcGF0aDogIiIsCiAgICAgIGdvb2RzX29wdGlvbnM6IFtdLAogICAgICBkZWxfZ29vZHNfaWQ6IFtdLAogICAgICB3YXJlaG91c2VfbGlzdDogW10sCiAgICAgIGZvcm06IHsKICAgICAgICBjb2RlOiAiIiwKICAgICAgICBzaG9wSWQ6ICIiLAogICAgICAgIHNob3BOYW1lOiAiIiwKICAgICAgICBzdXBwbGllcklkOiAiIiwKICAgICAgICBzdXBwbGllck5hbWU6ICIiLAogICAgICAgIGJ1eWVySWQ6ICIiLAogICAgICAgIGJ1eWVyTmFtZTogIiIsCiAgICAgICAgb3BlcmF0b3JOYW1lOiAiIiwKICAgICAgICBjb3Vwb25BbW91bnQ6IDAsCiAgICAgICAgb3RoZXJBbW91bnQ6IDAsCiAgICAgICAgcmVtYXJrOiAiIiwKICAgICAgICBnb29kc0RhdGE6IFtdLAogICAgICAgIHdhcmVob3VzZU5hbWU6ICIiLAogICAgICAgIHdhcmVob3VzZUlkOiAiIiwKICAgICAgICBtZXJjaGFudElkOiAiIiwKICAgICAgICBtZXJjaGFudE5hbWU6ICIiLAogICAgICAgIHB1cmNoYXNlVHlwZTogNQogICAgICB9LAogICAgICBzdXBwbGllcl9zaG93OiBmYWxzZSwKICAgICAgcHVyY2hhc2VfbGlzdDogW10sCiAgICAgIC8vIOmHh+i0reS6uuWRmOWIl+ihqAogICAgICBwdXJjaGFzZV9ydWxlczogewogICAgICAgIHdhcmVob3VzZU5hbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVTaG9wCiAgICAgICAgfV0sCiAgICAgICAgc3VwcGxpZXJOYW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICB2YWxpZGF0b3I6IHZhbGlkYXRlU3VwcGxpZXIKICAgICAgICB9XSwKICAgICAgICBidXllcklkOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+36YCJ5oup6YeH6LSt5Lq65ZGYIiwKICAgICAgICAgIHRyaWdnZXI6ICJjaGFuZ2UiCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgZ29vZHNfbGlzdDogW10sCiAgICAgIHB1c3JjaGFzZV9pZDogIiIsCiAgICAgIGdvb2RzX2luZGV4OiAwLAogICAgICB3YXJlaG91c2Vfc2hvdzogZmFsc2UsCiAgICAgIHN0YWZmX3Nob3c6IGZhbHNlLAogICAgICBvcHRpb25zOiBbewogICAgICAgIHZhbHVlOiAxLAogICAgICAgIGxhYmVsOiAi5oyJ5pWw6YePIgogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IDIsCiAgICAgICAgbGFiZWw6ICLmjInph5Hpop0iCiAgICAgIH1dLAogICAgICBvcHRpb25zX3ZhbHVlOiAiIiwKICAgICAgY29udHJpYnV0aW9uczogIiIsCiAgICAgIGFwcG9ydGlvbkZsYWc6IGZhbHNlLAogICAgICBhY3RpdmVOYW1lOiAib25lIgogICAgfTsKICB9LAoKICBjb21wdXRlZDogewogICAgcHVyY2hhc2VBbW91bnQoKSB7CiAgICAgIGxldCBzdW0gPSAwOwoKICAgICAgaWYgKHRoaXMuZ29vZHNfbGlzdC5sZW5ndGggPiAxKSB7CiAgICAgICAgdGhpcy5nb29kc19saXN0LmZvckVhY2goaXRlbSA9PiB7CiAgICAgICAgICBzdW0gPSB0aGlzLiROUC5wbHVzKHN1bSwgTnVtYmVyKGl0ZW0uc3VidG90YWxQcmljZSkpOwogICAgICAgIH0pOwogICAgICB9IGVsc2UgaWYgKHRoaXMuZ29vZHNfbGlzdC5sZW5ndGggPT09IDEpIHsKICAgICAgICBzdW0gPSBOdW1iZXIodGhpcy5nb29kc19saXN0WzBdLnN1YnRvdGFsUHJpY2UpOwogICAgICB9IGVsc2UgewogICAgICAgIHN1bSA9IDA7CiAgICAgIH0KCiAgICAgIHJldHVybiB0aGlzLiROUC5wbHVzKHN1bSwgdGhpcy4kTlAubWludXModGhpcy5mb3JtLm90aGVyQW1vdW50LCB0aGlzLmZvcm0uY291cG9uQW1vdW50KSkgfHwgMDsKICAgIH0sCgogICAgLi4ubWFwR2V0dGVycyh7CiAgICAgIHN0b3JlRGF0YTogIk1Vc2VyL3N0b3JlRGF0YSIKICAgIH0pCiAgfSwKCiAgY3JlYXRlZCgpIHsKICAgIGlmICh0aGlzLnN5c3RlbVR5cGUgPT09IDMpIHsKICAgICAgdGhpcy5mb3JtLm1lcmNoYW50SWQgPSB0aGlzLnN0b3JlRGF0YS5tZXJjaGFudERhdGEuaWQ7CiAgICAgIHRoaXMuZm9ybS5tZXJjaGFudE5hbWUgPSB0aGlzLnN0b3JlRGF0YS5tZXJjaGFudERhdGEubmFtZTsKICAgIH0gLy8gIOiOt+WPluW9k+WJjeeahOi3r+eUse+8jOaIquWPlgoKCiAgICB0aGlzLmxvb2tfcGF0aCA9IHRoaXMuJHJvdXRlLm5hbWU7CgogICAgaWYgKHRoaXMuJHJvdXRlLnBhcmFtcy5pZCkgewogICAgICB0aGlzLnB1c3JjaGFzZV9pZCA9IHRoaXMuJHJvdXRlLnBhcmFtcy5pZDsgLy8gICAg6LCD55So6K+m5oOF5o6l5Y+jCgogICAgICB0aGlzLmdldFB1cmNoYXNlSW5mb0J5SWQoKTsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuZm9ybS5vcGVyYXRvck5hbWUgPSB0aGlzLnVzZXJOYW1lOwoKICAgICAgaWYgKFsyLCAzXS5pbmNsdWRlcyh0aGlzLnN5c3RlbVR5cGUpKSB7CiAgICAgICAgdGhpcy5mb3JtLnNob3BJZCA9IHRoaXMuc3RvcmVEYXRhLmlkOyAvLyDlupfpk7oKCiAgICAgICAgdGhpcy5mb3JtLnNob3BOYW1lID0gdGhpcy5zdG9yZURhdGEubmFtZTsgLy8g5bqX6ZO6CiAgICAgIH0KCiAgICAgIHRoaXMuZ2V0UGF1c2VTYXZlKCk7CiAgICB9CgogICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gMTsgaSsrKSB7CiAgICAgIHRoaXMuZ29vZHNfbGlzdC5wdXNoKHRoaXMuJF9jb21tb24uZGVlcENsb25lKGdvb2RzKSk7CiAgICB9CiAgfSwKCiAgbWV0aG9kczogewogICAgLy8g6YCJ5oup5ZWG5oi356Gu5a6aCiAgICBjb25maXJtTWVyY2hhbnQocm93KSB7CiAgICAgIGlmICghIXRoaXMucHVzcmNoYXNlX2lkKSB7CiAgICAgICAgdGhpcy5kZWxfZ29vZHNfaWQgPSB0aGlzLiRfY29tbW9uLmRlZXBDbG9uZSh0aGlzLmdvb2RzX2xpc3QpLm1hcChpdGVtID0+IHsKICAgICAgICAgIHJldHVybiBpdGVtLmlkOwogICAgICAgIH0pLmZpbHRlcihpdGVtID0+ICEhaXRlbSk7CiAgICAgIH0KCiAgICAgIHRoaXMuZ29vZHNfbGlzdCA9IFtdOwogICAgICB0aGlzLmdvb2RzX2xpc3QucHVzaCh0aGlzLiRfY29tbW9uLmRlZXBDbG9uZShnb29kcykpOwogICAgICB0aGlzLmZvcm0ubWVyY2hhbnRJZCA9IHJvdy5pZDsKICAgICAgdGhpcy5mb3JtLm1lcmNoYW50TmFtZSA9IHJvdy5uYW1lOwoKICAgICAgaWYgKHRoaXMuZm9ybS5tZXJjaGFudElkICE9PSAiIikgewogICAgICAgIHRoaXMuZ29vZF9uYW1lID0gZmFsc2U7CiAgICAgIH0KICAgIH0sCgogICAgb3BlbldhcmVob3VzZSgpIHsKICAgICAgdGhpcy53YXJlaG91c2Vfc2hvdyA9IHRydWU7CiAgICB9LAoKICAgIHNlbFdhcmVob3VzZShyb3cpIHsKICAgICAgdGhpcy5mb3JtLndhcmVob3VzZU5hbWUgPSByb3dbMF0ud2FyZWhvdXNlTmFtZTsKICAgICAgdGhpcy5mb3JtLndhcmVob3VzZUlkID0gcm93WzBdLmlkOwogICAgfSwKCiAgICBzdGFmZlNlbChyb3cpIHsKICAgICAgdGhpcy5mb3JtLmJ1eWVyTmFtZSA9IHJvd1swXS5zdGFmZk5hbWU7CiAgICAgIHRoaXMuZm9ybS5idXllcklkID0gcm93WzBdLmlkOwogICAgfSwKCiAgICBzaG9wRGVmYXVsdCh2YWwsIHJvdykgewogICAgICB0aGlzLmZvcm0uc2hvcElkID0gdmFsOwogICAgICB0aGlzLmZvcm0uc2hvcE5hbWUgPSByb3cubmFtZTsKICAgIH0sCgogICAgLy8g5a6h5qC454q25oCBICB1cGRhdGVQdXJjaGFzZVN0YXR1cwogICAgYXN5bmMgdXBkYXRlUHVyY2hhc2Uocm93KSB7CiAgICAgIGNvbnN0IHBhcmFtcyA9IHsKICAgICAgICBhdWRpdFN0YXR1czogIjIiLAogICAgICAgIGF1ZGl0TmFtZTogdGhpcy51c2VyTmFtZQogICAgICB9OwogICAgICB0aGlzLiRjb25maXJtKCLnoa7lrprlrqHmoLjor6XorqLljZUiLCAi5o+Q56S6IiwgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6aIiwKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAi5Y+W5raIIiwKICAgICAgICB0eXBlOiAid2FybmluZyIKICAgICAgfSkudGhlbihhc3luYyAoKSA9PiB7CiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHVwZGF0ZVB1cmNoYXNlU3RhdHVzKHRoaXMucHVzcmNoYXNlX2lkLCBwYXJhbXMpOwogICAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgdHlwZTogInN1Y2Nlc3MiLAogICAgICAgICAgbWVzc2FnZTogIuaTjeS9nOaIkOWKnyEiCiAgICAgICAgfSk7CiAgICAgICAgYXdhaXQgdGhpcy5nZXRQdXJjaGFzZUluZm9CeUlkKCk7CiAgICAgIH0pOwogICAgfSwKCiAgICBzcGVjQ2hlY2tDaGFuZ2UodmFsdWUpIHsKICAgICAgbGV0IGNoZWNrZWRDb3VudCA9IHZhbHVlLmxlbmd0aDsKICAgICAgdGhpcy5jaGVja19hbGxfc3BlYyA9IGNoZWNrZWRDb3VudCA9PT0gdGhpcy5zcGVjX2NoZWNrX2xpc3QubGVuZ3RoOwogICAgICB0aGlzLmlzX3NwZWNfaW5kZXRlcm1pbmF0ZSA9IGNoZWNrZWRDb3VudCA+IDAgJiYgY2hlY2tlZENvdW50IDwgdGhpcy5zcGVjX2NoZWNrX2xpc3QubGVuZ3RoOwogICAgfSwKCiAgICBjaGVja0FsbFNwZWNDaGFuZ2UodmFsKSB7CiAgICAgIHRoaXMuc3BlY19jaGVjayA9IHZhbCA/IHRoaXMuc3BlY19jaGVja19saXN0Lm1hcChpdGVtID0+IGl0ZW0uaWQpIDogW107CiAgICAgIHRoaXMuaXNfc3BlY19pbmRldGVybWluYXRlID0gZmFsc2U7CiAgICB9LAoKICAgIGdvb2RzVmlzaWJsZUNoYW5nZSh2aXNpYmxlLCBpbmRleCkgewogICAgICBpZiAodmlzaWJsZSkgewogICAgICAgIHRoaXMuZ29vZHNfaW5kZXggPSBpbmRleDsKICAgICAgfQogICAgfSwKCiAgICAvL+aNoueul3NrdeaVsOmHjwogICAgYXN5bmMgZ2V0U2t1TnVtKCkgewogICAgICBjb25zdCBza3VOdW0gPSB0aGlzLmdvb2RzX2xpc3QubWFwKGl0ZW0gPT4gewogICAgICAgIHJldHVybiB7CiAgICAgICAgICBza3VJZDogaXRlbS5za3VJZCwKICAgICAgICAgIGdvb2RzQmFzaWNJZDogaXRlbS5iYXNpY0dvb2RzSWQsCiAgICAgICAgICBudW06IGl0ZW0uYnV5ZXJOdW0gfHwgMQogICAgICAgIH07CiAgICAgIH0pLmZpbHRlcihpdGVtID0+IGl0ZW0uc2t1SWQpOwoKICAgICAgaWYgKCFza3VOdW0ubGVuZ3RoKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBjb25zdCB7CiAgICAgICAgZGF0YQogICAgICB9ID0gYXdhaXQgZ2V0TWFzdGVyU2t1TnVtKHNrdU51bSk7CiAgICAgIHRoaXMuZ29vZHNfbGlzdCA9IHRoaXMuZ29vZHNfbGlzdC5tYXAoaXRlbSA9PiB7CiAgICAgICAgbGV0IG9iaiA9IHt9OwoKICAgICAgICBpZiAoZGF0YVtpdGVtLnNrdUlkXSkgewogICAgICAgICAgb2JqID0gewogICAgICAgICAgICB0aXRsZTogZGF0YVtpdGVtLnNrdUlkXS50aXRsZSB8fCAiIiwKICAgICAgICAgICAgYnV5ZXJOdW06IGRhdGFbaXRlbS5za3VJZF0ubnVtLAogICAgICAgICAgICBza3VWYWx1ZTogZGF0YVtpdGVtLnNrdUlkXS5za3VWYWx1ZSwKICAgICAgICAgICAgc2t1TnVtOiBkYXRhW2l0ZW0uc2t1SWRdLm1hc3Rlck51bSArIGRhdGFbaXRlbS5za3VJZF0ubWFzdGVyTmFtZQogICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIHJldHVybiB7IC4uLml0ZW0sCiAgICAgICAgICAuLi5vYmoKICAgICAgICB9OwogICAgICB9KTsKICAgICAgdGhpcy5lcnJfdGlwX2xpc3QgPSB0aGlzLmdvb2RzX2xpc3QuZmlsdGVyKGl0ZW0gPT4gISFpdGVtLnRpdGxlKTsgLy8g5aaC5p6c5rKh5pyJ5ZWG5ZOB6YCJ5oup5qGG5YiZ5paw5aKe5LiA5LiqCgogICAgICBpZiAoIXRoaXMuZ29vZHNfbGlzdC5maW5kKGl0ZW0gPT4gIWl0ZW0uc2t1SWQpKSB7CiAgICAgICAgLy8g5paw5aKe5LiA5Liq5ZWG5ZOB6YCJ5oup5qGGCiAgICAgICAgdGhpcy5hZGRMaXN0R29vZHMoKTsKICAgICAgfQogICAgfSwKCiAgICAvLyDlpJrpgInllYblk4Hnoa7lrpoKICAgIHNlbEdvb2RzKGxpc3QpIHsKICAgICAgbGV0IHRhcmdldCA9IHRoaXMuJF9jb21tb24uZGVlcENsb25lKHRoaXMuZ29vZHNfbGlzdCk7CiAgICAgIGNvbnN0IGdvb2RzRCA9IGxpc3QubWFwKGl0ZW0gPT4gewogICAgICAgIGxldCBzcGVjR3JvcE5hbWUgPSBpdGVtLnNwZWNHcm91cC5tYXAoaXRlbVMgPT4gewogICAgICAgICAgcmV0dXJuIGl0ZW1TLnNwZWNWYWx1ZU5hbWU7CiAgICAgICAgfSkuam9pbigiXyIpOwogICAgICAgIHJldHVybiB7CiAgICAgICAgICBzcGVjX2NoZWNrX2xpc3Q6IFtdLAogICAgICAgICAgYmFzaWNHb29kc0lkOiBpdGVtLmlkLAogICAgICAgICAgZ29vZHNDb2RlOiBpdGVtLmNvZGUsCiAgICAgICAgICBnb29kc05hbWU6IGl0ZW0udGl0bGUsCiAgICAgICAgICBza3VJZDogaXRlbS5za3VJZCwKICAgICAgICAgIHNwZWNHcm9wTmFtZTogc3BlY0dyb3BOYW1lLAogICAgICAgICAgdW5pdE5hbWU6IGl0ZW0udW5pdE5hbWUsCiAgICAgICAgICBjYXRlZ29yeUlkOiBpdGVtLmNhdGVnb3J5SWQsCiAgICAgICAgICBjYXRlZ29yeU5hbWU6IGl0ZW0uY2F0ZWdvcnlOYW1lLAogICAgICAgICAgYnV5ZXJOdW06IDEsCiAgICAgICAgICBidXllclVuaXRQcmljZTogMC4xLAogICAgICAgICAgc3VidG90YWxQcmljZTogMC4xLAogICAgICAgICAgY291cG9uQW1vdW50OiAwLAogICAgICAgICAgb3RoZXJBbW91bnQ6IDAsCiAgICAgICAgICBtZWFyY2hhbnRJZDogIiIKICAgICAgICB9OwogICAgICB9KTsgLy8g5Yik5pat5piv5ZCm5pyJ5YaF5a65CgogICAgICBjb25zdCBpc0Jhc2UgPSB0YXJnZXQuc29tZShpdGVtID0+IHsKICAgICAgICByZXR1cm4gaXRlbS5iYXNpY0dvb2RzSWQ7CiAgICAgIH0pOwoKICAgICAgaWYgKCFpc0Jhc2UpIHsKICAgICAgICB0YXJnZXQgPSBnb29kc0Q7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGFyZ2V0ID0gdGhpcy4kX2NvbW1vbi51bmlxdWUodGFyZ2V0LmNvbmNhdChnb29kc0QpLCBbImJhc2ljR29vZHNJZCIsICJza3VJZCJdKTsKICAgICAgfQoKICAgICAgY29uc3Qgc2t1SWRBcnIgPSB0YXJnZXQubWFwKGl0ZW0gPT4gewogICAgICAgIHJldHVybiBpdGVtLnNrdUlkOwogICAgICB9KTsKICAgICAgdGhpcy5wcmljZVBhdXNlU2F2ZShza3VJZEFyciwgdGFyZ2V0KTsKICAgIH0sCgogICAgc3BlY1NlbENvbmZpcm0ocGFyYW1zKSB7CiAgICAgIGlmICghcGFyYW1zLmdvb2RzRFswXS5za3VJZCkgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygi6Iez5bCR6YCJ5oup5LiA6aG5Iik7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBsZXQgdGFyZ2V0ID0gdGhpcy4kX2NvbW1vbi5kZWVwQ2xvbmUodGhpcy5nb29kc19saXN0KTsKICAgICAgY29uc3QgZ29vZHNEID0gcGFyYW1zLmdvb2RzRC5tYXAoaXRlbSA9PiB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGJhc2ljR29vZHNJZDogcGFyYW1zLm5vd19nb29kc19kYXRhLmlkLAogICAgICAgICAgZ29vZHNDb2RlOiBwYXJhbXMubm93X2dvb2RzX2RhdGEuY29kZSwKICAgICAgICAgIGdvb2RzTmFtZTogcGFyYW1zLm5vd19nb29kc19kYXRhLnRpdGxlLAogICAgICAgICAgc2t1SWQ6IGl0ZW0uc2t1SWQsCiAgICAgICAgICBzcGVjR3JvcE5hbWU6IGl0ZW0uc3BlYy5zcGVjR3JvcE5hbWUsCiAgICAgICAgICB1bml0TmFtZTogaXRlbS5zcGVjLnVuaXROYW1lLAogICAgICAgICAgY2F0ZWdvcnlJZDogcGFyYW1zLm5vd19nb29kc19kYXRhLmNhdGVnb3J5SWQsCiAgICAgICAgICBjYXRlZ29yeU5hbWU6IHBhcmFtcy5ub3dfZ29vZHNfZGF0YS5jYXRlZ29yeVRpdGxlLAogICAgICAgICAgYnV5ZXJOdW06IDEsCiAgICAgICAgICBidXllclVuaXRQcmljZTogMC4xLAogICAgICAgICAgc3VidG90YWxQcmljZTogMC4xLAogICAgICAgICAgY291cG9uQW1vdW50OiAwLAogICAgICAgICAgb3RoZXJBbW91bnQ6IDAsCiAgICAgICAgICBtZWFyY2hhbnRJZDogdGhpcy5tZWFyY2hhbnRJZAogICAgICAgIH07CiAgICAgIH0pOwoKICAgICAgaWYgKCF0YXJnZXRbdGhpcy5nb29kc19pbmRleF0uc2t1SWQpIHsKICAgICAgICB0YXJnZXQuc3BsaWNlKHRoaXMuZ29vZHNfaW5kZXgsIDEpOwogICAgICB9CgogICAgICBnb29kc0QuZm9yRWFjaChpdGVtID0+IHsKICAgICAgICBjb25zdCB0YXJnZXREID0gdGFyZ2V0LmZpbmQoaXRlbUcgPT4gaXRlbUcuc2t1SWQgPT09IGl0ZW0uc2t1SWQpOwoKICAgICAgICBpZiAoIXRhcmdldEQpIHsKICAgICAgICAgIHRhcmdldC5wdXNoKGl0ZW0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIGNvbnN0IGdvb2RzRGF0YSA9IHRoaXMuJF9jb21tb24udW5pcXVlKHRhcmdldCwgWyJiYXNpY0dvb2RzSWQiLCAic2t1SWQiXSk7CiAgICAgIGNvbnN0IHNrdUlkQXJyID0gZ29vZHNEYXRhLm1hcChpdGVtID0+IHsKICAgICAgICByZXR1cm4gaXRlbS5za3VJZDsKICAgICAgfSk7CiAgICAgIHRoaXMucHJpY2VQYXVzZVNhdmUoc2t1SWRBcnIsIGdvb2RzRGF0YSk7CiAgICAgIHRoaXMuc3BlY19tb2RlbCA9IGZhbHNlOwogICAgfSwKCiAgICAvLyDku7fmoLzmmoLlrZjmn6Xor6IKICAgIGFzeW5jIHByaWNlUGF1c2VTYXZlKHNrdUlkLCBnb29kc0RhdGEpIHsKICAgICAgZ29vZHNEYXRhID0gZ29vZHNEYXRhLmZpbHRlcihpdGVtID0+IGl0ZW0uc2t1SWQpOwogICAgICBjb25zdCB7CiAgICAgICAgZGF0YQogICAgICB9ID0gYXdhaXQgZ2V0TW9uZXlQYXVzZVNhdmUoewogICAgICAgIHNrdUlkczogc2t1SWQKICAgICAgfSk7CiAgICAgIHRoaXMuZ29vZHNfbGlzdCA9IGdvb2RzRGF0YS5tYXAoaXRlbSA9PiB7CiAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwKICAgICAgICAgIGJ1eWVyVW5pdFByaWNlOiBpdGVtLmJ1eWVyVW5pdFByaWNlID4gMC4xID8gaXRlbS5idXllclVuaXRQcmljZSA6IGRhdGFbaXRlbS5za3VJZF0gfHwgMC4xLAogICAgICAgICAgc3VidG90YWxQcmljZTogaXRlbS5zdWJ0b3RhbFByaWNlID4gMC4xID8gaXRlbS5zdWJ0b3RhbFByaWNlIDogZGF0YVtpdGVtLnNrdUlkXSB8fCAwLjEKICAgICAgICB9OwogICAgICB9KTsgLy8g6I635Y+Wc2t15o2i566X5YWz57O7CgogICAgICBhd2FpdCB0aGlzLmdldFNrdU51bSgpOwogICAgfSwKCiAgICAvLyDku7fmoLzmmoLlrZjmj5DkuqQKICAgIGFzeW5jIGFkZE1vbmV5UGF1c2VTYXZlKHByaWNlRGF0YSkgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgYWRkTW9uZXlQYXVzZVNhdmUoewogICAgICAgIGRhdGE6IHByaWNlRGF0YQogICAgICB9KTsKICAgIH0sCgogICAgYWRkTGlzdEdvb2RzKCkgewogICAgICB0aGlzLmdvb2RzX2xpc3QucHVzaCh0aGlzLiRfY29tbW9uLmRlZXBDbG9uZShnb29kcykpOwogICAgfSwKCiAgICAvLyDmlLnlj5jmlbDph48KICAgIGVkaXROdW1DaGFuZ2UoaW5kZXgsIHRhZykgewogICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLiRfY29tbW9uLmRlZXBDbG9uZSh0aGlzLmdvb2RzX2xpc3QpOwogICAgICB0YXJnZXRbaW5kZXhdLnN1YnRvdGFsUHJpY2UgPSB0aGlzLiROUC50aW1lcyh0YXJnZXRbaW5kZXhdLmJ1eWVyTnVtIHx8IDEsIHRhcmdldFtpbmRleF0uYnV5ZXJVbml0UHJpY2UpOwogICAgICB0aGlzLmdvb2RzX2xpc3QgPSB0YXJnZXQ7CiAgICAgIGlmICghdGFyZ2V0W2luZGV4XS5za3VJZCkgcmV0dXJuOwoKICAgICAgaWYgKHRhZyA9PT0gImJ1eWVyTnVtIikgewogICAgICAgIC8vIOiOt+WPlnNrdeaNoueul+WFs+ezuwogICAgICAgIHRoaXMuZ2V0U2t1TnVtKCk7CiAgICAgIH0KICAgIH0sCgogICAgLy8g5LiA6ZSu5om56YeP6K6+572uCiAgICBvdGhlclNldChpbmRleCwgcm93KSB7CiAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuJF9jb21tb24uZGVlcENsb25lKHRoaXMuZ29vZHNfbGlzdCk7CiAgICAgIHRhcmdldC5mb3JFYWNoKGl0ZW0gPT4gewogICAgICAgIGlmIChpdGVtLmJhc2ljR29vZHNJZCA9PT0gcm93LmJhc2ljR29vZHNJZCAmJiBpdGVtLnVuaXROYW1lID09PSByb3cudW5pdE5hbWUpIHsKICAgICAgICAgIGl0ZW0uYnV5ZXJOdW0gPSByb3cuYnV5ZXJOdW07CiAgICAgICAgICBpdGVtLnN1YnRvdGFsUHJpY2UgPSByb3cuc3VidG90YWxQcmljZTsKICAgICAgICAgIGl0ZW0uYnV5ZXJVbml0UHJpY2UgPSByb3cuYnV5ZXJVbml0UHJpY2U7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgdGhpcy5nb29kc19saXN0ID0gdGFyZ2V0OwogICAgICB0aGlzLmdldFNrdU51bSgpOwogICAgfSwKCiAgICAvLyDmt7vliqDmmoLlrZgKICAgIGFzeW5jIGFkZFBhdXNlU2F2ZSgpIHsKICAgICAgY29uc3QgcGFyYW1zID0geyAuLi50aGlzLmZvcm0sCiAgICAgICAgZ29vZHNEYXRhOiB0aGlzLmdvb2RzX2xpc3QKICAgICAgfTsKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFkZFBhdXNlU2F2ZSh7CiAgICAgICAga2V5OiB0aGlzLmxvb2tfcGF0aCwKICAgICAgICBkYXRhOiBwYXJhbXMKICAgICAgfSk7CiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICB0eXBlOiAic3VjY2VzcyIsCiAgICAgICAgbWVzc2FnZTogIuaaguWtmOaIkOWKnyIKICAgICAgfSk7CgogICAgICBpZiAodGhpcy5zeXN0ZW1UeXBlID09PSAyKSB7CiAgICAgICAgdGhpcy4kY2xvc2VDdXJyZW50R29FZGl0KCIvU2luZ2xlU3RvcmUvcHVyY2hhc2UvcHVyY2hhc2VMaXN0Iik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy4kY2xvc2VDdXJyZW50R29FZGl0KCIvUHVyY2hhc2UvTWFuYWdlUC9QdXJjaGFzZU9yZGVyIik7CiAgICAgIH0KICAgIH0sCgogICAgLy8g6I635Y+W5pqC5a2Y5L+h5oGvCiAgICBhc3luYyBnZXRQYXVzZVNhdmUoKSB7CiAgICAgIGNvbnN0IHsKICAgICAgICBkYXRhCiAgICAgIH0gPSBhd2FpdCBnZXRQYXVzZVNhdmUoewogICAgICAgIGtleTogdGhpcy5sb29rX3BhdGgKICAgICAgfSk7CiAgICAgIGlmIChKU09OLnN0cmluZ2lmeShkYXRhKSA9PT0gInt9IikgcmV0dXJuOwogICAgICB0aGlzLmZvcm0gPSBkYXRhOwogICAgICB0aGlzLmdvb2RzX2xpc3QgPSBkYXRhLmdvb2RzRGF0YTsgLy8g6I635Y+Wc2t15o2i566X5YWz57O7CgogICAgICB0aGlzLmdldFNrdU51bSgpOwogICAgfSwKCiAgICAvLyAg6K+m5oOF5o6l5Y+jCiAgICBhc3luYyBnZXRQdXJjaGFzZUluZm9CeUlkKCkgewogICAgICBjb25zdCB7CiAgICAgICAgZGF0YQogICAgICB9ID0gYXdhaXQgZ2V0UHVyY2hhc2VJbmZvQnlJZCh0aGlzLnB1c3JjaGFzZV9pZCk7CiAgICAgIHRoaXMuZm9ybS5jb2RlID0gZGF0YS5ubzsKICAgICAgdGhpcy5jcmVhdGVUaW1lID0gZGF0YS5jcmVhdGVUaW1lOwogICAgICB0aGlzLmZvcm0uc2hvcElkID0gZGF0YS5zaG9wSWQ7CiAgICAgIHRoaXMuZm9ybS5zaG9wTmFtZSA9IGRhdGEuc2hvcE5hbWU7CiAgICAgIHRoaXMuZm9ybS5zdXBwbGllcklkID0gZGF0YS5zdXBwbGllcklkOwogICAgICB0aGlzLmZvcm0uc3VwcGxpZXJOYW1lID0gZGF0YS5zdXBwbGllck5hbWU7CiAgICAgIHRoaXMuZm9ybS5idXllcklkID0gZGF0YS5idXllcklkOwogICAgICB0aGlzLmZvcm0uYnV5ZXJOYW1lID0gZGF0YS5idXllck5hbWU7CiAgICAgIHRoaXMuZm9ybS5vcGVyYXRvck5hbWUgPSBkYXRhLm9wZXJhdG9yTmFtZTsKICAgICAgdGhpcy5mb3JtLnB1cmNoYXNlQW1vdW50ID0gZGF0YS5wdXJjaGFzZUFtb3VudDsKICAgICAgdGhpcy5mb3JtLmNvdXBvbkFtb3VudCA9IGRhdGEuY291cG9uQW1vdW50OwogICAgICB0aGlzLmZvcm0ub3RoZXJBbW91bnQgPSBkYXRhLm90aGVyQW1vdW50OwogICAgICB0aGlzLmZvcm0ucmVtYXJrID0gZGF0YS5yZW1hcms7CiAgICAgIHRoaXMuYXVkaXRJZCA9IGRhdGEuYXVkaXRJZDsKICAgICAgdGhpcy5hdWRpdE5hbWUgPSBkYXRhLmF1ZGl0TmFtZTsKICAgICAgdGhpcy5hdWRpdFN0YXR1cyA9IGRhdGEuYXVkaXRTdGF0dXM7CiAgICAgIHRoaXMuYXVkaXRUaW1lID0gZGF0YS5hdWRpdFRpbWU7CiAgICAgIHRoaXMuZm9ybS53YXJlaG91c2VJZCA9IGRhdGEud2FyZWhvdXNlSWQ7CiAgICAgIHRoaXMuZm9ybS5tZXJjaGFudElkID0gZGF0YS5tZXJjaGFudElkOwogICAgICB0aGlzLmZvcm0ubWVyY2hhbnROYW1lID0gZGF0YS5tZXJjaGFudE5hbWU7CiAgICAgIHRoaXMuZm9ybS53YXJlaG91c2VOYW1lID0gZGF0YS53YXJlaG91c2VOYW1lOyAvLyDllYblk4EKCiAgICAgIHRoaXMuZ29vZHNfbGlzdCA9IGRhdGEuZGV0YWlscy5tYXAoaXRlbSA9PiB7CiAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwKICAgICAgICAgIHNrdUlkOiBpdGVtLnNrdUlkLAogICAgICAgICAgc3BlY0dyb3BOYW1lOiBpdGVtLnNrdU5hbWUKICAgICAgICB9OwogICAgICB9KTsgLy8g6I635Y+Wc2t15o2i566X5YWz57O7CgogICAgICBhd2FpdCB0aGlzLmdldFNrdU51bSgpOwogICAgfSwKCiAgICAvLyDmuIXpmaTmmoLlrZgKICAgIGFzeW5jIGRlbFBhdXNlU2F2ZSh0eXBlKSB7CiAgICAgIGNvbnN0IGRhdGEgPSBkZWxQYXVzZVNhdmUoewogICAgICAgIGtleTogdGhpcy5sb29rX3BhdGgKICAgICAgfSk7CgogICAgICBpZiAodHlwZSkgewogICAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgdHlwZTogInN1Y2Nlc3MiLAogICAgICAgICAgbWVzc2FnZTogIua4hemZpOaaguWtmOaIkOWKnyIKICAgICAgICB9KTsKICAgICAgICB0aGlzLiRjbG9zZUN1cnJlbnRHb0VkaXQoIi9QdXJjaGFzZS9NYW5hZ2VQL1B1cmNoYXNlT3JkZXJBZGQiKTsKICAgICAgfQogICAgfSwKCiAgICAvLyDmt7vliqAKICAgIGFzeW5jIGFkZFB1cmNoYXNlT3JkZXIoKSB7CiAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuZ29vZHNfbGlzdCk7CiAgICAgIGlmICh0aGlzLmZvcm0uY291cG9uQW1vdW50ID4gdGhpcy5wdXJjaGFzZUFtb3VudCkgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygi5LyY5oOg6YeR6aKd5LiN6IO95aSn5LqO6YeH6LSt6YeR6aKdICIpOwogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgaWYgKCF0aGlzLmZvcm0ub3RoZXJBbW91bnQpIHsKICAgICAgICB0aGlzLmZvcm0ub3RoZXJBbW91bnQgPSAwOwogICAgICB9CgogICAgICBpZiAoIXRoaXMuZm9ybS5jb3Vwb25BbW91bnQpIHsKICAgICAgICB0aGlzLmZvcm0uY291cG9uQW1vdW50ID0gMDsKICAgICAgfQoKICAgICAgdGhpcy4kcmVmc1siZm9ybSJdLnZhbGlkYXRlKGFzeW5jIHZhbGlkID0+IHsKICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgIGNvbnN0IGdvb2RzTGlzdCA9IHRoaXMuJF9jb21tb24uZGVlcENsb25lKHRoaXMuZ29vZHNfbGlzdCkuZmlsdGVyKGl0ZW0gPT4gaXRlbS5za3VJZCA+IDApOwoKICAgICAgICAgIGlmICghZ29vZHNMaXN0Lmxlbmd0aCkgewogICAgICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoIuivt+mAieaLqeWVhuWTgSIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CgogICAgICAgICAgY29uc3QgaXNidXllck51bSA9IGdvb2RzTGlzdC5ldmVyeShpdGVtID0+IGl0ZW0uYnV5ZXJOdW0gPiAwKTsKCiAgICAgICAgICBpZiAoIWlzYnV5ZXJOdW0pIHsKICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLph4fotK3mlbDph4/lv4XpobvlpKfkuo4wIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KCiAgICAgICAgICBjb25zdCBpc2J1eWVyVW5pdFByaWNlID0gZ29vZHNMaXN0LmV2ZXJ5KGl0ZW0gPT4gaXRlbS5idXllclVuaXRQcmljZSA+IDApOwoKICAgICAgICAgIGlmICghaXNidXllclVuaXRQcmljZSkgewogICAgICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoIumHh+i0reWNleS7t+W/hemhu+Wkp+S6jjAiKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQoKICAgICAgICAgIGxldCBnb29kc0RhdGEgPSBnb29kc0xpc3QubWFwKGl0ZW0gPT4gewogICAgICAgICAgICBsZXQgZ29vZHMgPSB7CiAgICAgICAgICAgICAgYmFzaWNHb29kc0lkOiBpdGVtLmJhc2ljR29vZHNJZCwKICAgICAgICAgICAgICBnb29kc0NvZGU6IGl0ZW0uZ29vZHNDb2RlLAogICAgICAgICAgICAgIGdvb2RzTmFtZTogaXRlbS5nb29kc05hbWUsCiAgICAgICAgICAgICAgc2t1SWQ6IGl0ZW0uc2t1SWQsCiAgICAgICAgICAgICAgdW5pdE5hbWU6IGl0ZW0udW5pdE5hbWUsCiAgICAgICAgICAgICAgc2t1TmFtZTogaXRlbS5zcGVjR3JvcE5hbWUsCiAgICAgICAgICAgICAgYnV5ZXJOdW06IGl0ZW0uYnV5ZXJOdW0sCiAgICAgICAgICAgICAgYnV5ZXJVbml0UHJpY2U6IGl0ZW0uYnV5ZXJVbml0UHJpY2UsCiAgICAgICAgICAgICAgc3VidG90YWxQcmljZTogaXRlbS5zdWJ0b3RhbFByaWNlLAogICAgICAgICAgICAgIGNvdXBvbkFtb3VudDogaXRlbS5jb3Vwb25BbW91bnQgLSAwLAogICAgICAgICAgICAgIG90aGVyQW1vdW50OiBpdGVtLm90aGVyQW1vdW50IC0gMCwKICAgICAgICAgICAgICBjYXRlZ29yeUlkOiBpdGVtLmNhdGVnb3J5SWQsCiAgICAgICAgICAgICAgY2F0ZWdvcnlOYW1lOiBpdGVtLmNhdGVnb3J5TmFtZSwKICAgICAgICAgICAgICBvdGhlck51bTogaXRlbS5vdGhlck51bQogICAgICAgICAgICB9OwoKICAgICAgICAgICAgaWYgKGl0ZW0uaWQpIHsKICAgICAgICAgICAgICBnb29kcy5pZCA9IGl0ZW0uaWQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiBnb29kczsKICAgICAgICAgIH0pOwogICAgICAgICAgY29uc3QgcGFyYW1zID0geyAuLi50aGlzLmZvcm0sCiAgICAgICAgICAgIGdvb2RzRGF0YTogZ29vZHNEYXRhCiAgICAgICAgICB9OwoKICAgICAgICAgIGlmICh0aGlzLmdvb2RzX2xpc3QubGVuZ3RoID4gMCkgewogICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwoKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICBsZXQgdGFyZ2V0ID0ge307CgogICAgICAgICAgICAgIGlmICh0aGlzLnB1c3JjaGFzZV9pZCkgewogICAgICAgICAgICAgICAgcGFyYW1zLmRlbGV0ZUFycmF5ID0gdGhpcy5kZWxfZ29vZHNfaWQ7IC8vIGNvbnNvbGUubG9nKHBhcmFtcyk7CgogICAgICAgICAgICAgICAgdGFyZ2V0ID0gYXdhaXQgZWRpdFB1cmNoYXNlKHRoaXMucHVzcmNoYXNlX2lkLCBwYXJhbXMpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0YXJnZXQgPSBhd2FpdCBhZGRQdXJjaGFzZShwYXJhbXMpOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHRhcmdldDsKICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICAgICAgICAgIHR5cGU6ICJzdWNjZXNzIiwKICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICLmj5DkuqTmiJDlip8iCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5kZWxQYXVzZVNhdmUoKTsKCiAgICAgICAgICAgICAgaWYgKHRoaXMuc3lzdGVtVHlwZSA9PT0gMikgewogICAgICAgICAgICAgICAgdGhpcy4kY2xvc2VDdXJyZW50R29FZGl0KCIvU2luZ2xlU3RvcmUvcHVyY2hhc2UvcHVyY2hhc2VMaXN0Iik7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRoaXMuJGNsb3NlQ3VycmVudEdvRWRpdCgiL1B1cmNoYXNlL01hbmFnZVAvTWVyY2hhbnQiKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2UoIuivt+mAieaLqeWVhuWTgSIpOwogICAgICAgICAgfSAvLyDku7fmoLzmmoLlrZjmt7vliqAKCgogICAgICAgICAgY29uc3QgcHJpY2VEYXRhID0gZ29vZHNEYXRhLm1hcChpdGVtID0+IHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICBza3VJZDogaXRlbS5za3VJZCwKICAgICAgICAgICAgICBtb25leTogaXRlbS5idXllclVuaXRQcmljZQogICAgICAgICAgICB9OwogICAgICAgICAgfSk7CiAgICAgICAgICBhd2FpdCB0aGlzLmFkZE1vbmV5UGF1c2VTYXZlKHByaWNlRGF0YSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCgogICAgZGVsRGF0YShpbmRleCwgcm93KSB7CiAgICAgIGlmIChyb3cuaWQpIHsKICAgICAgICB0aGlzLmRlbF9nb29kc19pZC5wdXNoKHJvdy5pZCk7CiAgICAgIH0KCiAgICAgIGlmICh0aGlzLmdvb2RzX2xpc3QubGVuZ3RoID09PSAxKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLlv4Xpobvkv53nlZnkuIDmnaEiKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHRoaXMuZ29vZHNfbGlzdC5zcGxpY2UoaW5kZXgsIDEpOwogICAgfSwKCiAgICBzZWxTaG9wKHZhbCwgcm93KSB7CiAgICAgIHRoaXMuZm9ybS5zaG9wTmFtZSA9IHJvd1swXS5uYW1lOwogICAgfSwKCiAgICAvLyDpgInmi6nllYbmiLcKICAgIG1lYXJjaGFudCgpIHsKICAgICAgdGhpcy5tZWFyY2hhbnRfc2hvdyA9IHRydWU7CiAgICB9LAoKICAgIC8vIOWQiOiuoQogICAgZ2V0U3VtbWFyaWVzKHBhcmFtKSB7CiAgICAgIHJldHVybiB0aGlzLiRfY29tbW9uLmdldFN1bW1hcmllcyhwYXJhbSwgWyLlsI/orqHph5Hpop0iLCAi6YeH6LSt5pWw6YePIl0pOwogICAgfQoKICB9Cn07"},{"version":3,"mappings":"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A4G,oCALA;UAMA3G,4BANA;UAOAC,4CAPA;UAQAC,iDARA;UASAC,WATA;UAUAC,mBAVA;UAWAC,kBAXA;UAYAC,eAZA;UAaAC,cAbA;UAcAqG;QAdA;MAgBA,CAjBA;;MAkBA;QACAC;MACA;;MACAE;QACA;;QACA;UACAF;QACA;MACA,CALA;MAMA,gDACA,cADA,EAEA,OAFA;MAIA;QACA;MACA,CAFA;MAGA;MACA;IACA,CAlMA;;IAmMA;IACA;MACA3D;MACA;QAAAnC;MAAA;QACAiG;MADA;MAIA;QACA,SACA,OADA;UAEA5G,gBACAgF,4BACAA,mBADA,GAEArE,uBALA;UAMAV,eACA+E,2BACAA,kBADA,GAEArE;QATA;MAWA,CAZA,EANA,CAmBA;;MACA;IACA,CAzNA;;IA0NA;IACA;MACA;QACAA;MADA;IAGA,CA/NA;;IAgOAkG;MACA;IACA,CAlOA;;IAmOA;IACAC;MACA;MACAL,6CACAA,2BADA,EAEAA,4BAFA;MAIA;MACA;;MACA;QACA;QACA;MACA;IACA,CAhPA;;IAiPA;IACAM;MACA;MACAN;QACA,IACAzB,0CACAA,8BAFA,EAGA;UACAA;UACAA;UACAA;QACA;MACA,CATA;MAUA;MACA;IACA,CAhQA;;IAiQA;IACA;MACA,iBACA,YADA;QAEAlC;MAFA;MAIA;MACA;QACAkE,mBADA;QAEArG;MAFA;MAIA;MAEA;QACA6E,eADA;QAEA/B;MAFA;;MAIA;QACA;MACA,CAFA,MAEA;QACA;MACA;IACA,CAvRA;;IAwRA;IACA;MACA;QAAA9C;MAAA;QACAqG;MADA;MAIA;MACA;MACA,iCAPA,CAQA;;MACA;IACA,CAnSA;;IAqSA;IACA;MACA;QAAArG;MAAA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,6CAtBA,CAuBA;;MACA;QACA,SACA,OADA;UAEAhB,iBAFA;UAGA4G;QAHA;MAKA,CANA,EAxBA,CA+BA;;MACA;IACA,CAvUA;;IAwUA;IACA;MACA;QACAS;MADA;;MAIA;QACA;UACAxB,eADA;UAEA/B;QAFA;QAIA;MACA;IACA,CArVA;;IAsVA;IACA;MACA;MACA;QACA;QACA;MACA;;MACA;QACA;MACA;;MACA;QACA;MACA;;MACA;QACA;UACA,gCACAqB,SADA,CACA,eADA,EAEAG,MAFA,CAEAD,sBAFA;;UAGA;YACA;YACA;UACA;;UACA;;UACA;YACA;YACA;UACA;;UACA,yCACAA,+BADA;;UAGA;YACA;YACA;UACA;;UACA;YACA;cACAxF,+BADA;cAEAC,yBAFA;cAGAC,yBAHA;cAIAC,iBAJA;cAKAC,uBALA;cAMAqH,0BANA;cAOAlH,uBAPA;cAQAC,mCARA;cASAC,iCATA;cAUAC,mCAVA;cAWAC,iCAXA;cAYAN,2BAZA;cAaAC,+BAbA;cAcAoH;YAdA;;YAgBA;cACAC;YACA;;YACA;UACA,CArBA;UAuBA,iBACA,YADA;YAEArE;UAFA;;UAIA;YACA;;YACA;cACA;;cACA;gBACAsE,uCADA,CAEA;;gBACAX;cACA,CAJA,MAIA;gBACAA;cACA;;cACA;cACA;cACA;gBACAjB,eADA;gBAEA/B;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;cACA9D,iBADA;cAEA0H;YAFA;UAIA,CALA;UAMA;QACA;MACA,CAxFA;IAyFA,CA5bA;;IA6bAC;MACA;QACA;MACA;;MACA;QACA;QACA;MACA;;MACA;IACA,CAtcA;;IAucAC;MACA;IACA,CAzcA;;IA0cA;IACAC;MACA;IACA,CA7cA;;IA8cA;IACAC;MACA;IACA;;EAjdA;AA1IA","names":["updatePurchaseStatus","getPurchaseInfoById","editPurchase","addPurchase","getMoneyPauseSave","addMoneyPauseSave","addPauseSave","getPauseSave","delPauseSave","basicGoodsId","goodsCode","goodsName","skuId","unitName","categoryId","categoryName","buyerNum","buyerUnitPrice","subtotalPrice","couponAmount","otherAmount","name","components","WarehouseModel","MearchantList","ConditionSelGoods","AddStaff","StaffList","data","callback","good_name","add_merchant","mearchant_show","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","merchantId","merchantName","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","activeName","computed","purchaseAmount","sum","storeData","created","methods","confirmMerchant","deepClone","map","item","filter","openWarehouse","selWarehouse","staffSel","shopDefault","confirmButtonText","cancelButtonText","type","then","specCheckChange","checkedCount","checkAllSpecChange","goodsVisibleChange","goodsBasicId","num","obj","title","skuValue","skuNum","selGoods","itemS","join","specGropName","mearchantId","target","specSelConfirm","goodsD","skuIds","addListGoods","editNumChange","otherSet","key","skuName","otherNum","goods","params","money","delData","selShop","mearchant","getSummaries"],"sourceRoot":"src/views/Purchase/ManageP","sources":["AddMerchantPurchase.vue"],"sourcesContent":["<template>\n <ContainerTit class=\"AddMerchantPurchase\">\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\n v-if=\"!!$route.params.id\"\n class=\"form\"\n :span=\"6\"\n style=\"margin-bottom: 0\"\n >\n <el-form-item label=\"采购单号:\" prop=\"code\">\n {{ form.code }}\n </el-form-item>\n </el-col>\n <el-col class=\"form\" :span=\"6\" style=\"margin-bottom: 0\">\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 >\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\" style=\"margin-bottom: 0\">\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 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\" style=\"margin-bottom: 0\">\n <el-form-item v-if=\"systemType !== 3\" label=\"商户:\" prop=\"name\">\n <div v-if=\"look_path !== 'PurchaseOrderLook'\">\n <el-input\n v-model=\"form.merchantName\"\n placeholder=\"请选择商户\"\n style=\"width: 210px\"\n readonly\n >\n <i\n slot=\"suffix\"\n class=\"el-input__icon el-icon-search\"\n @click=\"mearchant_show = true\"\n ></i>\n </el-input>\n </div>\n <span v-else>{{ name }}</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\n v-if=\"\n look_path === 'PurchaseOrderLook' && auditStatus === 2\n \"\n type=\"success\"\n >\n 已审核\n </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 !== 'MerchantPurchaseDetail'\">\n <ConditionSelGoods\n v-model=\"scope.row.goodsName\"\n :merchant-id=\"form.merchantId\"\n :type=\"true\"\n :is-reveal-sku=\"4\"\n :enable-status=\"5\"\n :is-add-goods=\"5\"\n :spec-check=\"spec_check\"\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 <el-input-number\n v-if=\"scope.row.isEq === 5\"\n v-model=\"scope.row.otherNum\"\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 <span v-else>--</span>\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 <!-- <el-button-->\n <!-- v-if=\"look_path !== 'PurchaseOrderLook'\"-->\n <!-- type=\"text\"-->\n <!-- size=\"mini\"-->\n <!-- @click=\"addListGoods\"-->\n <!-- >-->\n <!-- 新增-->\n <!-- </el-button>-->\n </template>\n </el-table-column>\n </el-table>\n <div v-if=\"look_path !== 'PurchaseOrderLook'\" 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 <!-- <AddMearchantList-->\n <!-- v-if=\"add_merchant\"-->\n <!-- :show=\"add_merchant\"-->\n <!-- @close=\"add_merchant = false\"-->\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 <MearchantList\n v-if=\"mearchant_show\"\n :is-show=\"mearchant_show\"\n @confirmMerchant=\"confirmMerchant\"\n @cancelMerchant=\"mearchant_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 { mapGetters } from \"vuex\";\n\n import MearchantList from \"@/component/common/MearchantList.vue\";\n // import AddMearchantList from \"@/component/common/AddMerchantList\";\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 { 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\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 // AddMearchantList,\n WarehouseModel,\n MearchantList,\n ConditionSelGoods,\n AddStaff, // 新增员工\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 good_name: true,\n add_merchant: false,\n mearchant_show: false,\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 merchantId: \"\",\n merchantName: \"\",\n purchaseType: 5,\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 activeName: \"one\",\n };\n },\n computed: {\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 },\n ...mapGetters({\n storeData: \"MUser/storeData\",\n }),\n },\n created() {\n if (this.systemType === 3) {\n this.form.merchantId = this.storeData.merchantData.id;\n this.form.merchantName = this.storeData.merchantData.name;\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 // 选择商户确定\n confirmMerchant(row) {\n if (!!this.pusrchase_id) {\n this.del_goods_id = this.$_common\n .deepClone(this.goods_list)\n .map((item) => {\n return item.id;\n })\n .filter((item) => !!item);\n }\n this.goods_list = [];\n this.goods_list.push(this.$_common.deepClone(goods));\n this.form.merchantId = row.id;\n this.form.merchantName = row.name;\n if (this.form.merchantId !== \"\") {\n this.good_name = false;\n }\n },\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 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 mearchantId: \"\",\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 mearchantId: this.mearchantId,\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 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.merchantId = data.merchantId;\n this.form.merchantName = data.merchantName;\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 // 添加\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/Merchant\");\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 mearchant() {\n this.mearchant_show = true;\n },\n // 合计\n getSummaries(param) {\n return this.$_common.getSummaries(param, [\"小计金额\", \"采购数量\"]);\n },\n },\n };\n</script>\n\n<style lang=\"scss\" scoped>\n .other-price-view {\n padding-top: 10px;\n border: 1px solid #ecf0f7;\n border-top: 0;\n padding-left: 10px;\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 .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 .btn-top-div {\n position: absolute;\n right: 20px;\n top: 15px;\n z-index: 999;\n }\n</style>\n<style>\n .AddMerchantPurchase {\n background-color: #fff;\n }\n .AddMerchantPurchase .el-tabs__item {\n font-size: 16px !important;\n height: 60px !important;\n line-height: 60px !important;\n }\n .AddMerchantPurchase .is-active {\n font-weight: 700;\n color: #000;\n }\n .AddMerchantPurchase .el-tabs__nav {\n margin-left: 24px;\n }\n</style>\n"]}]}
|