4ca8534695dcb6a67a2710db43c1c204.json 62 KB

1
  1. {"remainingRequest":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\babel-loader\\lib\\index.js!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\src\\views\\Purchase\\ManageP\\PurchaseReturnOrderAdd.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\src\\views\\Purchase\\ManageP\\PurchaseReturnOrderAdd.vue","mtime":1655374732000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\babel.config.js","mtime":1655374732000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\vue-loader\\lib\\index.js","mtime":1655715099000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwppbXBvcnQgR29vZHNXYXJlaG91c2UgZnJvbSAiQC9jb21wb25lbnQvZ29vZHMvR29vZHNXYXJlaG91c2VEYXRhLnZ1ZSI7CmltcG9ydCBPcmRlclJldHVybiBmcm9tICJAL2NvbXBvbmVudC9nb29kcy9PcmRlclJldHVybi52dWUiOwppbXBvcnQgU2VsZWN0U3VwcGxpZXIgZnJvbSAiQC9jb21wb25lbnQvY29tbW9uL1NlbGVjdFN1cHBsaWVyLnZ1ZSI7CmltcG9ydCB7IGdldEFsbFN0YWZmIH0gZnJvbSAiQC9hcGkvRGVwYXJ0bWVudCI7CmltcG9ydCB7IGFkZFBhdXNlU2F2ZSwgZGVsUGF1c2VTYXZlLCBnZXRQYXVzZVNhdmUgfSBmcm9tICJAL2FwaS9jb21tb24iOwppbXBvcnQgeyBlZGl0UHVyY2hhc2VPdXQsIGFkZFB1cmNoYXNlT3V0LCBnZXRQdXJjaGFzZU91dEluZm9CeUlkLCBnZXRQdXJjaGFzZUFuZEJhdGNoSW5mb0J5SWQsIGdldFB1cmNoYXNlSW5mb0J5SWQgfSBmcm9tICJAL2FwaS9QdXJjaGFzZSI7CmltcG9ydCBTZWxlY3RTaG9wIGZyb20gIkAvY29tcG9uZW50L2dvb2RzL1NlbGVjdFNob3AudnVlIjsKaW1wb3J0IHsgbWFwR2V0dGVycyB9IGZyb20gInZ1ZXgiOwppbXBvcnQgeyBnZXRBbGxXYXJlaG91c2UgfSBmcm9tICJAL2FwaS9TdG9jayI7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiUHVyY2hhc2VPcmRlckFkZCIsCiAgY29tcG9uZW50czogewogICAgR29vZHNXYXJlaG91c2UsCiAgICAvLyBTZWxlY3RTdXBwbGllciwKICAgIE9yZGVyUmV0dXJuCiAgfSwKCiAgZGF0YSgpIHsKICAgIGNvbnN0IHZhbGlkYXRlTm8gPSAocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSA9PiB7CiAgICAgIGlmICghdmFsdWUpIHsKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoIuivt+mAieaLqeWFs+iBlOmHh+i0reWNleWPtyIpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjYWxsYmFjaygpOwogICAgICB9CiAgICB9OwoKICAgIGNvbnN0IHZhbGlkYXRlU2hvcCA9IChydWxlLCB2YWx1ZSwgY2FsbGJhY2spID0+IHsKICAgICAgaWYgKCF2YWx1ZSkgewogICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcigi6K+36YCJ5oup6YeH6LSt5LuT5bqTIikpOwogICAgICB9IGVsc2UgewogICAgICAgIGNhbGxiYWNrKCk7CiAgICAgIH0KICAgIH07CgogICAgY29uc3QgdmFsaWRhdGVTdXBwbGllciA9IChydWxlLCB2YWx1ZSwgY2FsbGJhY2spID0+IHsKICAgICAgaWYgKCF2YWx1ZSkgewogICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcigi6K+36YCJ5oup5L6b5bqU5ZWGIikpOwogICAgICB9IGVsc2UgewogICAgICAgIGNhbGxiYWNrKCk7CiAgICAgIH0KICAgIH07CgogICAgY29uc3QgdmFsaWRhdGVCdXllciA9IChydWxlLCB2YWx1ZSwgY2FsbGJhY2spID0+IHsKICAgICAgaWYgKCF2YWx1ZSkgewogICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcigi6K+36YCJ5oup6YeH6LSt5Lq65ZGYIikpOwogICAgICB9IGVsc2UgewogICAgICAgIGNhbGxiYWNrKCk7CiAgICAgIH0KICAgIH07CgogICAgcmV0dXJuIHsKICAgICAgaWZNZXJjaGFudDogNCwKICAgICAgLy8g5piv5ZCm5ZWG5oi36YeH6LSt5Y2VCiAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICBwdXNyY2hhc2VPdXRfaWQ6ICIiLAogICAgICAvLyDph4fotK3ljZVpZAogICAgICBubzogIiIsCiAgICAgIGF1ZGl0TmFtZTogIiIsCiAgICAgIGF1ZGl0VGltZTogIiIsCiAgICAgIGF1ZGl0SWQ6ICIiLAogICAgICBhdWRpdFN0YXR1czogIiIsCiAgICAgIGxvb2tfcGF0aDogIiIsCiAgICAgIGZvcm06IHsKICAgICAgICBvcmlnaW5JZDogIiIsCiAgICAgICAgb3JpZ2luTm86ICIiLAogICAgICAgIHN1cHBsaWVySWQ6ICIiLAogICAgICAgIHN1cHBsaWVyTmFtZTogIiIsCiAgICAgICAgd2FyZWhvdXNlSWQ6ICIiLAogICAgICAgIHdhcmVob3VzZU5hbWU6ICIiLAogICAgICAgIGJ1eWVySWQ6ICIiLAogICAgICAgIGJ1eWVyTmFtZTogIiIsCiAgICAgICAgb3BlcmF0b3JOYW1lOiAiIiwKICAgICAgICBjb3Vwb25BbW91bnQ6ICIiLAogICAgICAgIG90aGVyQW1vdW50OiAiIiwKICAgICAgICByZW1hcms6ICIiLAogICAgICAgIGdvb2RzRGF0YTogW10sCiAgICAgICAgc2hvcElkOiAiIiwKICAgICAgICBzaG9wTmFtZTogIiIsCiAgICAgICAgbWVyY2hhbnRJZDogIiIsCiAgICAgICAgbWVyY2hhbnROYW1lOiAiIiwKICAgICAgICBwdXJjaGFzZVN0YXR1czogIiIKICAgICAgfSwKICAgICAgcnVsZXM6IHsKICAgICAgICBvcmlnaW5ObzogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdmFsaWRhdG9yOiB2YWxpZGF0ZU5vCiAgICAgICAgfV0sCiAgICAgICAgd2FyZWhvdXNlTmFtZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdmFsaWRhdG9yOiB2YWxpZGF0ZVNob3AKICAgICAgICB9XSwKICAgICAgICBzdXBwbGllck5hbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVTdXBwbGllcgogICAgICAgIH1dLAogICAgICAgIGJ1eWVySWQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVCdXllcgogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIHN1cHBsaWVyX3Nob3c6IGZhbHNlLAogICAgICBzaG93X3NlbGdvb2RzOiBmYWxzZSwKICAgICAgcHVyY2hhc2Vfb3BlbjogZmFsc2UsCiAgICAgIHB1cmNoYXNlX2xpc3Q6IFtdLAogICAgICAvLyDph4fotK3kurrlkZjliJfooagKICAgICAgcHVyY2hhc2VfcnVsZXM6IHt9LAogICAgICBnb29kc19saXN0OiBbXSwKICAgICAgZ29vZHNBcnJEYXRhOiBbXSwKICAgICAgcHVzcmNoYXNlX2lkOiAiIiwKICAgICAgcHVzcmNoYXNlX3Nob3BJZDogIiIsCiAgICAgIGRlbGV0ZUFycmF5OiBbXSwKICAgICAgc3RvY2tfbGlzdDogW10sCiAgICAgIG51bTogIiIsCiAgICAgIGFjdGl2ZU5hbWU6ICJvbmUiCiAgICB9OwogIH0sCgogIGNvbXB1dGVkOiB7CiAgICBwdXJjaGFzZUFtb3VudCgpIHsKICAgICAgbGV0IHN1bSA9IDA7CgogICAgICBpZiAodGhpcy5nb29kc19saXN0Lmxlbmd0aCA+IDEpIHsKICAgICAgICB0aGlzLmdvb2RzX2xpc3QuZm9yRWFjaChpdGVtID0+IHsKICAgICAgICAgIHN1bSA9IHRoaXMuJE5QLnBsdXMoc3VtLCBOdW1iZXIoaXRlbS5zdWJ0b3RhbFByaWNlKSk7CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSBpZiAodGhpcy5nb29kc19saXN0Lmxlbmd0aCA9PT0gMSkgewogICAgICAgIHN1bSA9IE51bWJlcih0aGlzLmdvb2RzX2xpc3RbMF0uc3VidG90YWxQcmljZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgc3VtID0gMDsKICAgICAgfQoKICAgICAgcmV0dXJuIHRoaXMuJE5QLnBsdXMoc3VtLCB0aGlzLmZvcm0ub3RoZXJBbW91bnQpOwogICAgfSwKCiAgICAuLi5tYXBHZXR0ZXJzKHsKICAgICAgc3RvcmVEYXRhOiAiTVVzZXIvc3RvcmVEYXRhIgogICAgfSkKICB9LAoKICBjcmVhdGVkKCkgewogICAgLy8gdGhpcy5nZXRBbGxTdGFmZigpOwogICAgLy8gdGhpcy5nZXRBbGxXYXJlaG91c2UoKTsKICAgIGlmICh0aGlzLiRyb3V0ZS5wYXJhbXMudHlwZSkgewogICAgICB0aGlzLmlmTWVyY2hhbnQgPSBOdW1iZXIodGhpcy4kcm91dGUucGFyYW1zLnR5cGUpOwogICAgfQoKICAgIHRoaXMubG9va19wYXRoID0gdGhpcy4kcm91dGUubmFtZTsKCiAgICBpZiAodGhpcy4kcm91dGUucXVlcnkucHVyY2hhc2VfaWQpIHsKICAgICAgdGhpcy5pZk1lcmNoYW50ID0gdGhpcy4kcm91dGUucXVlcnkuaWZNZXJjaGFudCA/IHBhcnNlSW50KHRoaXMuJHJvdXRlLnF1ZXJ5LmlmTWVyY2hhbnQpIDogNDsgLy8g6YeH6LSt5Y2V6aG16Z2iLeeCueWHu+mAgOWNleKGkuaWsOWinumHh+i0remAgOi0p+WNlemhtemdogoKICAgICAgdGhpcy5wdXNyY2hhc2VfaWQgPSBwYXJzZUludCh0aGlzLiRyb3V0ZS5xdWVyeS5wdXJjaGFzZV9pZCk7CiAgICAgIHRoaXMuZ2V0UHVyY2hhc2VJbmZvQnlJZDIodGhpcy5wdXNyY2hhc2VfaWQpOwogICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKHRoaXMuJHJvdXRlLnBhcmFtcy5pZCkgewogICAgICB0aGlzLnB1c3JjaGFzZU91dF9pZCA9IHRoaXMuJHJvdXRlLnBhcmFtcy5pZDsKICAgICAgdGhpcy5nZXRQdXJjaGFzZU91dEluZm9CeUlkKCk7CiAgICB9IGVsc2UgewogICAgICB0aGlzLmZvcm0ub3BlcmF0b3JOYW1lID0gdGhpcy51c2VyTmFtZTsKICAgICAgdGhpcy5nZXRQYXVzZVNhdmUoKTsKCiAgICAgIGlmIChbMiwgM10uaW5jbHVkZXModGhpcy5zeXN0ZW1UeXBlKSkgewogICAgICAgIHRoaXMuZm9ybS5zaG9wSWQgPSB0aGlzLnN0b3JlRGF0YS5pZDsgLy8g5bqX6ZO6CgogICAgICAgIHRoaXMuZm9ybS5zaG9wTmFtZSA9IHRoaXMuc3RvcmVEYXRhLm5hbWU7IC8vIOW6l+mTugogICAgICB9CiAgICB9CiAgfSwKCiAgYWN0aXZhdGVkKCkgewogICAgaWYgKHRoaXMuJF9pc0luaXQoKSkgcmV0dXJuOwoKICAgIGlmICh0aGlzLiRyb3V0ZS5xdWVyeS5wdXJjaGFzZV9pZCkgewogICAgICB0aGlzLmlmTWVyY2hhbnQgPSB0aGlzLiRyb3V0ZS5xdWVyeS5pZk1lcmNoYW50ID8gcGFyc2VJbnQodGhpcy4kcm91dGUucXVlcnkuaWZNZXJjaGFudCkgOiA0OyAvLyDph4fotK3ljZXpobXpnaIt54K55Ye76YCA5Y2V4oaS5paw5aKe6YeH6LSt6YCA6LSn5Y2V6aG16Z2iCgogICAgICB0aGlzLnB1c3JjaGFzZV9pZCA9IHBhcnNlSW50KHRoaXMuJHJvdXRlLnF1ZXJ5LnB1cmNoYXNlX2lkKTsKICAgICAgdGhpcy5nZXRQdXJjaGFzZUluZm9CeUlkMih0aGlzLnB1c3JjaGFzZV9pZCk7CiAgICB9CiAgfSwKCiAgbWV0aG9kczogewogICAgYXN5bmMgZ2V0QWxsV2FyZWhvdXNlKCkgewogICAgICBjb25zdCB7CiAgICAgICAgZGF0YQogICAgICB9ID0gYXdhaXQgZ2V0QWxsV2FyZWhvdXNlKHsKICAgICAgICBwYWdlOiAxLAogICAgICAgIHBhZ2VTaXplOiA5OTkKICAgICAgfSk7CiAgICAgIHRoaXMuc3RvY2tfbGlzdCA9IGRhdGE7IC8vIGlmICghdGhpcy5mb3JtLndhcmVob3VzZUlkKSB7CiAgICAgIC8vICAgdGhpcy5mb3JtLndhcmVob3VzZUlkID0gZGF0YVswXS5pZDsKICAgICAgLy8gfQogICAgfSwKCiAgICBzaG9wRGVmYXVsdCh2YWwsIHJvdykgewogICAgICB0aGlzLmZvcm0uc2hvcElkID0gdmFsOwogICAgICB0aGlzLmZvcm0uc2hvcE5hbWUgPSByb3cubmFtZTsKICAgIH0sCgogICAgYXN5bmMgYWRkUGF1c2VTYXZlKCkgewogICAgICBjb25zdCBwYXJhbXMgPSB7IC4uLnRoaXMuZm9ybSwKICAgICAgICBnb29kc0RhdGE6IHRoaXMuJF9jb21tb24uZGVlcENsb25lKHRoaXMuZ29vZHNfbGlzdCkubWFwKGl0ZW0gPT4gewogICAgICAgICAgZGVsZXRlIGl0ZW0ubnVtOwogICAgICAgICAgcmV0dXJuIGl0ZW07CiAgICAgICAgfSkKICAgICAgfTsKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFkZFBhdXNlU2F2ZSh7CiAgICAgICAga2V5OiB0aGlzLmxvb2tfcGF0aCwKICAgICAgICBkYXRhOiBwYXJhbXMKICAgICAgfSk7CiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICB0eXBlOiAic3VjY2VzcyIsCiAgICAgICAgbWVzc2FnZTogIuaaguWtmOaIkOWKnyIKICAgICAgfSk7CiAgICAgIHRoaXMuJGNsb3NlQ3VycmVudEdvRWRpdCgiL1B1cmNoYXNlL01hbmFnZVAvUHVyY2hhc2VSZXR1cm5PcmRlciIpOwogICAgfSwKCiAgICAvLyDmuIXpmaTmmoLlrZgKICAgIGFzeW5jIGRlbFBhdXNlU2F2ZSh0eXBlKSB7CiAgICAgIGNvbnN0IGRhdGEgPSBkZWxQYXVzZVNhdmUoewogICAgICAgIGtleTogdGhpcy5sb29rX3BhdGgKICAgICAgfSk7CgogICAgICBpZiAodHlwZSkgewogICAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgdHlwZTogInN1Y2Nlc3MiLAogICAgICAgICAgbWVzc2FnZTogIua4hemZpOaaguWtmOaIkOWKnyIKICAgICAgICB9KTsKICAgICAgICB0aGlzLiRjbG9zZUN1cnJlbnRHb0VkaXQoIi9QdXJjaGFzZS9NYW5hZ2VQL1B1cmNoYXNlUmV0dXJuT3JkZXJBZGQiKTsKICAgICAgfQogICAgfSwKCiAgICAvLyDojrflj5bmmoLlrZjkv6Hmga8KICAgIGFzeW5jIGdldFBhdXNlU2F2ZSgpIHsKICAgICAgY29uc3QgewogICAgICAgIGRhdGEKICAgICAgfSA9IGF3YWl0IGdldFBhdXNlU2F2ZSh7CiAgICAgICAga2V5OiB0aGlzLmxvb2tfcGF0aAogICAgICB9KTsKICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGRhdGEpID09PSAie30iKSByZXR1cm47CiAgICAgIHRoaXMuZm9ybS53YXJlaG91c2VOYW1lID0gZGF0YS53YXJlaG91c2VOYW1lOwogICAgICB0aGlzLmZvcm0ud2FyZWhvdXNlSWQgPSBkYXRhLndhcmVob3VzZUlkOwogICAgICB0aGlzLmZvcm0ub3JpZ2luSWQgPSBkYXRhLm9yaWdpbklkOwogICAgICB0aGlzLmZvcm0ub3JpZ2luTm8gPSBkYXRhLm9yaWdpbk5vOwogICAgICB0aGlzLmZvcm0uc2hvcElkID0gZGF0YS5zaG9wSWQ7CiAgICAgIHRoaXMuZm9ybS5zaG9wTmFtZSA9IGRhdGEuc2hvcE5hbWU7CiAgICAgIHRoaXMuZm9ybS5zdXBwbGllcklkID0gZGF0YS5zdXBwbGllcklkOwogICAgICB0aGlzLmZvcm0uc3VwcGxpZXJOYW1lID0gZGF0YS5zdXBwbGllck5hbWU7CiAgICAgIHRoaXMuZm9ybS5tZXJjaGFudElkID0gZGF0YS5tZXJjaGFudElkOwogICAgICB0aGlzLmZvcm0ubWVyY2hhbnROYW1lID0gZGF0YS5tZXJjaGFudE5hbWU7CiAgICAgIHRoaXMuZm9ybS5idXllcklkID0gZGF0YS5idXllcklkOwogICAgICB0aGlzLmZvcm0uYnV5ZXJOYW1lID0gZGF0YS5idXllck5hbWU7CiAgICAgIHRoaXMuZm9ybS5vcGVyYXRvck5hbWUgPSBkYXRhLm9wZXJhdG9yTmFtZTsgLy8gdGhpcy5wdXJjaGFzZUFtb3VudCA9IGRhdGEucHVyY2hhc2VBbW91bnQKCiAgICAgIHRoaXMuZm9ybS5jb3Vwb25BbW91bnQgPSBkYXRhLmNvdXBvbkFtb3VudDsKICAgICAgdGhpcy5mb3JtLm90aGVyQW1vdW50ID0gZGF0YS5vdGhlckFtb3VudDsKICAgICAgdGhpcy5mb3JtLnJlbWFyayA9IGRhdGEucmVtYXJrOwogICAgICB0aGlzLmF1ZGl0SWQgPSBkYXRhLmF1ZGl0SWQ7CiAgICAgIHRoaXMuYXVkaXROYW1lID0gZGF0YS5hdWRpdE5hbWU7CiAgICAgIHRoaXMuYXVkaXRTdGF0dXMgPSBkYXRhLmF1ZGl0U3RhdHVzOwogICAgICB0aGlzLm5vID0gZGF0YS5ubzsKICAgICAgdGhpcy5nb29kc19saXN0ID0gZGF0YS5nb29kc0RhdGEubWFwKGl0ZW0gPT4gewogICAgICAgIHJldHVybiB7CiAgICAgICAgICBpZDogaXRlbS5pZCwKICAgICAgICAgIGdvb2RzSWQ6IGl0ZW0uZ29vZHNJZCwKICAgICAgICAgIGdvb2RzQ29kZTogaXRlbS5nb29kc0NvZGUsCiAgICAgICAgICBnb29kc05hbWU6IGl0ZW0uZ29vZHNOYW1lLAogICAgICAgICAgdW5pdE5hbWU6IGl0ZW0udW5pdE5hbWUsCiAgICAgICAgICBza3VOYW1lOiBpdGVtLnNrdU5hbWUsCiAgICAgICAgICBidXllck51bTogaXRlbS5idXllck51bSwKICAgICAgICAgIHB1cmNoYXNlTnVtOiBpdGVtLnB1cmNoYXNlTnVtLAogICAgICAgICAgYnV5ZXJVbml0UHJpY2U6IGl0ZW0uYnV5ZXJVbml0UHJpY2UsCiAgICAgICAgICBzdWJ0b3RhbFByaWNlOiB0aGlzLiROUC50aW1lcyhpdGVtLmJ1eWVyVW5pdFByaWNlLCBpdGVtLmJ1eWVyTnVtKSwKICAgICAgICAgIGNvdXBvbkFtb3VudDogaXRlbS5jb3Vwb25BbW91bnQsCiAgICAgICAgICBza3VJZDogaXRlbS5za3VJZCwKICAgICAgICAgIG90aGVyQW1vdW50OiBpdGVtLm90aGVyQW1vdW50CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9LAoKICAgIC8vICDmt7vliqDph4fotK3pgIDotKfljZUgYWRkUHVyY2hhc2VPdXQKICAgIGFzeW5jIGFkZFB1cmNoYXNlT3JkZXIoKSB7CiAgICAgIGlmICghdGhpcy5mb3JtLm90aGVyQW1vdW50KSB7CiAgICAgICAgdGhpcy5mb3JtLm90aGVyQW1vdW50ID0gMDsKICAgICAgfQoKICAgICAgdGhpcy4kcmVmc1siZm9ybSJdLnZhbGlkYXRlKGFzeW5jIHZhbGlkID0+IHsKICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgIGxldCB0YXJnZXQgPSB7fTsKCiAgICAgICAgICBpZiAoIXRoaXMuZ29vZHNfbGlzdC5sZW5ndGgpIHsKICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLor7fpgInmi6nllYblk4EiKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQoKICAgICAgICAgIGNvbnN0IGlzQnV5ZXIgPSB0aGlzLmdvb2RzX2xpc3Quc29tZShpdGVtID0+IGl0ZW0uYnV5ZXJOdW0gPD0gMCk7CgogICAgICAgICAgaWYgKGlzQnV5ZXIpIHsKICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLpgIDotKfmlbDph4/kuI3og73kuLow77yM6K+35qOA5p+lIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KCiAgICAgICAgICB0aGlzLmZvcm0ucHVyY2hhc2VTdGF0dXMgPSB0aGlzLmlmTWVyY2hhbnQ7CiAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7IC4uLnRoaXMuZm9ybSwKICAgICAgICAgICAgZ29vZHNEYXRhOiB0aGlzLiRfY29tbW9uLmRlZXBDbG9uZSh0aGlzLmdvb2RzX2xpc3QpLm1hcChpdGVtID0+IHsKICAgICAgICAgICAgICBkZWxldGUgaXRlbS5udW07CgogICAgICAgICAgICAgIGlmICghdGhpcy5wdXNyY2hhc2VPdXRfaWQpIHsKICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLmlkOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07CiAgICAgICAgICAgIH0pCiAgICAgICAgICB9OwogICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKCiAgICAgICAgICB0cnkgewogICAgICAgICAgICBpZiAodGhpcy5wdXNyY2hhc2VPdXRfaWQpIHsKICAgICAgICAgICAgICBwYXJhbXMuZGVsZXRlQXJyYXkgPSB0aGlzLmRlbGV0ZUFycmF5OwoKICAgICAgICAgICAgICBpZiAocGFyYW1zLmJ1eWVyTnVtID49IE51bWJlcih0aGlzLm51bSkpIHsKICAgICAgICAgICAgICAgIHBhcmFtcy5idXllck51bSA9IE51bWJlcih0aGlzLm51bSk7CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICB0YXJnZXQgPSBhd2FpdCBlZGl0UHVyY2hhc2VPdXQodGhpcy5wdXNyY2hhc2VPdXRfaWQsIHBhcmFtcyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcGFyYW1zLmRlbGV0ZUFycmF5ID0gdGhpcy5kZWxldGVBcnJheTsKICAgICAgICAgICAgICB0YXJnZXQgPSBhd2FpdCBhZGRQdXJjaGFzZU91dChwYXJhbXMpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjb25zdCBkYXRhID0gdGFyZ2V0OwogICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgdGhpcy5nb29kc19saXN0ID0gW107CiAgICAgICAgICAgIGF3YWl0IHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgICAgIHR5cGU6ICJzdWNjZXNzIiwKICAgICAgICAgICAgICBtZXNzYWdlOiAi5o+Q5Lqk5oiQ5YqfIgogICAgICAgICAgICB9KTsKICAgICAgICAgICAgYXdhaXQgdGhpcy5kZWxQYXVzZVNhdmUoKTsKICAgICAgICAgICAgYXdhaXQgdGhpcy4kY2xvc2VDdXJyZW50R29FZGl0KCIvUHVyY2hhc2UvbWFuYWdlUC9QdXJjaGFzZVJldHVybk9yZGVyIik7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKCiAgICAvLyAg6I635Y+W6K+m5oOFIGdldFB1cmNoYXNlT3V0SW5mb0J5SWQKICAgIGFzeW5jIGdldFB1cmNoYXNlT3V0SW5mb0J5SWQoKSB7CiAgICAgIGNvbnN0IHsKICAgICAgICBkYXRhCiAgICAgIH0gPSBhd2FpdCBnZXRQdXJjaGFzZU91dEluZm9CeUlkKHRoaXMucHVzcmNoYXNlT3V0X2lkKTsKICAgICAgdGhpcy5mb3JtLndhcmVob3VzZU5hbWUgPSBkYXRhLndhcmVob3VzZU5hbWU7CiAgICAgIHRoaXMuZm9ybS53YXJlaG91c2VJZCA9IGRhdGEud2FyZWhvdXNlSWQ7CiAgICAgIHRoaXMuZm9ybS5vcmlnaW5JZCA9IGRhdGEub3JpZ2luSWQ7CiAgICAgIHRoaXMuZm9ybS5vcmlnaW5ObyA9IGRhdGEub3JpZ2luTm87CiAgICAgIHRoaXMuZm9ybS5zaG9wSWQgPSBkYXRhLnNob3BJZDsKICAgICAgdGhpcy5mb3JtLnNob3BOYW1lID0gZGF0YS5zaG9wTmFtZTsKICAgICAgdGhpcy5mb3JtLnN1cHBsaWVySWQgPSBkYXRhLnN1cHBsaWVySWQ7CiAgICAgIHRoaXMuZm9ybS5zdXBwbGllck5hbWUgPSBkYXRhLnN1cHBsaWVyTmFtZTsKICAgICAgdGhpcy5mb3JtLm1lcmNoYW50SWQgPSBkYXRhLm1lcmNoYW50SWQ7CiAgICAgIHRoaXMuZm9ybS5tZXJjaGFudE5hbWUgPSBkYXRhLm1lcmNoYW50TmFtZTsKICAgICAgdGhpcy5mb3JtLmJ1eWVySWQgPSBkYXRhLmJ1eWVySWQ7CiAgICAgIHRoaXMuZm9ybS5idXllck5hbWUgPSBkYXRhLmJ1eWVyTmFtZTsKICAgICAgdGhpcy5mb3JtLm9wZXJhdG9yTmFtZSA9IGRhdGEub3BlcmF0b3JOYW1lOyAvLyB0aGlzLnB1cmNoYXNlQW1vdW50ID0gZGF0YS5wdXJjaGFzZUFtb3VudAoKICAgICAgdGhpcy5mb3JtLmNvdXBvbkFtb3VudCA9IGRhdGEuY291cG9uQW1vdW50OwogICAgICB0aGlzLmZvcm0ub3RoZXJBbW91bnQgPSBkYXRhLm90aGVyQW1vdW50OwogICAgICB0aGlzLmZvcm0ucmVtYXJrID0gZGF0YS5yZW1hcms7CiAgICAgIHRoaXMuYXVkaXRJZCA9IGRhdGEuYXVkaXRJZDsKICAgICAgdGhpcy5hdWRpdE5hbWUgPSBkYXRhLmF1ZGl0TmFtZTsKICAgICAgdGhpcy5hdWRpdFRpbWUgPSBkYXRhLmF1ZGl0VGltZTsKICAgICAgdGhpcy5hdWRpdFN0YXR1cyA9IGRhdGEuYXVkaXRTdGF0dXM7CiAgICAgIHRoaXMubm8gPSBkYXRhLm5vOyAvLyB0aGlzLmdvb2RzX2xpc3QgPSBkYXRhLmRldGFpbHMubWFwKChpdGVtKSA9PiB7CiAgICAgIC8vICAgcmV0dXJuIHsKICAgICAgLy8gICAgIC4uLml0ZW0sCiAgICAgIC8vICAgICBidXllck51bTogaXRlbS5yZXR1cm5Pbk51bSwKICAgICAgLy8gICB9OwogICAgICAvLyB9KTsKCiAgICAgIHRoaXMuZ29vZHNfbGlzdCA9IGRhdGEuZGV0YWlsczsKICAgIH0sCgogICAgLy8gIOWIoOmZpAogICAgZGVsRGF0YShpbmRleCwgcm93KSB7CiAgICAgIGlmIChyb3cuaWQpIHsKICAgICAgICB0aGlzLmRlbGV0ZUFycmF5LnB1c2gocm93LmlkKTsKICAgICAgfQoKICAgICAgdGhpcy5nb29kc19saXN0LnNwbGljZShpbmRleCwgMSk7CiAgICB9LAoKICAgIC8vIOaUueWPmOaVsOmHjwogICAgZWRpdE51bUNoYW5nZShyb3csIGluZGV4KSB7CiAgICAgIGlmICghcm93LmJ1eWVyTnVtKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLpgIDotKfmlbDph4/kuLrnqbrvvIzpu5jorqTlj5jmiJAxIik7CiAgICAgIH0KCiAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuJF9jb21tb24uZGVlcENsb25lKHRoaXMuZ29vZHNfbGlzdCk7CiAgICAgIHRhcmdldFtpbmRleF0uc3VidG90YWxQcmljZSA9IHRoaXMuJE5QLnRpbWVzKHRhcmdldFtpbmRleF0uYnV5ZXJOdW0sIHRhcmdldFtpbmRleF0uYnV5ZXJVbml0UHJpY2UpOwoKICAgICAgaWYgKHRhcmdldFtpbmRleF0ucmV0dXJuT25OdW0gPiBOdW1iZXIodGFyZ2V0W2luZGV4Lm51bV0pKSB7CiAgICAgICAgdGFyZ2V0W2luZGV4XS5yZXR1cm5Pbk51bSA9IE51bWJlcih0YXJnZXRbaW5kZXgubnVtXSk7CiAgICAgIH0KCiAgICAgIHRoaXMuZ29vZHNfbGlzdCA9IHRhcmdldDsKICAgIH0sCgogICAgLy8g6YCJ5oup5LiA5Liq5ZWG6ZO6CiAgICBzZWxTaG9wKHZhbCwgcm93KSB7CiAgICAgIHRoaXMuZm9ybS5zaG9wTmFtZSA9IHJvd1swXS5uYW1lOwogICAgfSwKCiAgICAvLyAg6I635Y+W6YeH6LSt5Y2V6K+m5oOFCiAgICBhc3luYyBnZXRQdXJjaGFzZUluZm9CeUlkKGlkLCB3YXJlaG91c2VJZCkgewogICAgICBjb25zdCB7CiAgICAgICAgZGF0YQogICAgICB9ID0gYXdhaXQgZ2V0UHVyY2hhc2VBbmRCYXRjaEluZm9CeUlkKHsKICAgICAgICBpZDogaWQsCiAgICAgICAgd2FyZWhvdXNlSWQ6IHdhcmVob3VzZUlkCiAgICAgIH0pOwogICAgICB0aGlzLmdvb2RzX2xpc3QgPSBkYXRhLm1hcChpdGVtID0+IHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgaXNFcTogaXRlbS5pc0VxLAogICAgICAgICAgb3RoZXJOdW06IGl0ZW0ub3RoZXJOdW0sCiAgICAgICAgICBpZDogaXRlbS5pZCwKICAgICAgICAgIGdvb2RzSWQ6IGl0ZW0uYmFzaWNHb29kc0lkLAogICAgICAgICAgZ29vZHNDb2RlOiBpdGVtLmdvb2RzQ29kZSwKICAgICAgICAgIGdvb2RzTmFtZTogaXRlbS5nb29kc05hbWUsCiAgICAgICAgICB1bml0TmFtZTogaXRlbS51bml0TmFtZSwKICAgICAgICAgIHNrdU5hbWU6IGl0ZW0uc2t1TmFtZSwKICAgICAgICAgIHNrdUlkOiBpdGVtLnNrdUlkLAogICAgICAgICAgcHVyY2hhc2VOdW06IGl0ZW0uYnV5ZXJOdW0sCiAgICAgICAgICBidXllck51bTogaXRlbS5yZXR1cm5Pbk51bSwKICAgICAgICAgIGluTnVtOiBpdGVtLmluTnVtLAogICAgICAgICAgaW5PZk51bTogaXRlbS5pbk9mTnVtLAogICAgICAgICAgcmV0dXJuT25OdW06IGl0ZW0ucmV0dXJuT25OdW0sCiAgICAgICAgICByZXR1cm5OdW06IGl0ZW0ucmV0dXJuTnVtLAogICAgICAgICAgaW52ZW50b3J5TnVtOiBpdGVtLm51bSwKICAgICAgICAgIGJ1eWVyVW5pdFByaWNlOiBpdGVtLmJ1eWVyVW5pdFByaWNlLAogICAgICAgICAgc3VidG90YWxQcmljZTogdGhpcy4kTlAudGltZXMoaXRlbS5idXllclVuaXRQcmljZSwgaXRlbS5yZXR1cm5Pbk51bSksCiAgICAgICAgICBjb3Vwb25BbW91bnQ6IGl0ZW0uY291cG9uQW1vdW50LAogICAgICAgICAgb3RoZXJBbW91bnQ6IGl0ZW0ub3RoZXJBbW91bnQKICAgICAgICB9OwogICAgICB9KTsKICAgICAgdGhpcy5nb29kc0FyckRhdGEgPSBkYXRhLm1hcChpdGVtID0+IHsKICAgICAgICByZXR1cm4geyAuLi5pdGVtLAogICAgICAgICAgbWF0ZXJpZWxOYW1lOiBpdGVtLmdvb2RzTmFtZSwKICAgICAgICAgIG1hdGVyaWVsQ29kZTogaXRlbS5nb29kc0NvZGUKICAgICAgICB9OwogICAgICB9KTsKICAgIH0sCgogICAgLy8gICDojrflj5bph4fotK3ljZXor6bmg4UgIOmHh+i0reWNlemhtemdoi3ngrnlh7vpgIDljZXihpLmlrDlop7ph4fotK3pgIDotKfljZXpobXpnaIKICAgIGFzeW5jIGdldFB1cmNoYXNlSW5mb0J5SWQyKCkgewogICAgICBjb25zdCB7CiAgICAgICAgZGF0YQogICAgICB9ID0gYXdhaXQgZ2V0UHVyY2hhc2VJbmZvQnlJZCh0aGlzLnB1c3JjaGFzZV9pZCk7CiAgICAgIHRoaXMuZm9ybS5vcmlnaW5JZCA9IGRhdGEuaWQ7CiAgICAgIHRoaXMuZm9ybS5vcmlnaW5ObyA9IGRhdGEubm87CiAgICAgIHRoaXMuZm9ybS5zaG9wSWQgPSBkYXRhLnNob3BJZDsKICAgICAgdGhpcy5mb3JtLnNob3BOYW1lID0gZGF0YS5zaG9wTmFtZTsKICAgICAgdGhpcy5mb3JtLmJ1eWVySWQgPSBkYXRhLmJ1eWVySWQ7CiAgICAgIHRoaXMuZm9ybS5idXllck5hbWUgPSBkYXRhLmJ1eWVyTmFtZTsKICAgICAgdGhpcy5mb3JtLnJlbWFyayA9IGRhdGEucmVtYXJrOwogICAgICB0aGlzLmZvcm0uc3VwcGxpZXJJZCA9IHRoaXMuaWZNZXJjaGFudCA9PT0gNSA/IDAgOiBkYXRhLnN1cHBsaWVySWQ7CiAgICAgIHRoaXMuZm9ybS5zdXBwbGllck5hbWUgPSB0aGlzLmlmTWVyY2hhbnQgPT09IDUgPyAiIiA6IGRhdGEuc3VwcGxpZXJOYW1lOwogICAgICB0aGlzLmZvcm0ubWVyY2hhbnRJZCA9IHRoaXMuaWZNZXJjaGFudCA9PT0gNSA/IGRhdGEubWVyY2hhbnRJZCA6IDA7CiAgICAgIHRoaXMuZm9ybS5tZXJjaGFudE5hbWUgPSB0aGlzLmlmTWVyY2hhbnQgPT09IDUgPyBkYXRhLm1lcmNoYW50TmFtZSA6ICIiOwogICAgICB0aGlzLmZvcm0ud2FyZWhvdXNlTmFtZSA9IGRhdGEud2FyZWhvdXNlTmFtZTsKICAgICAgdGhpcy5mb3JtLndhcmVob3VzZUlkID0gZGF0YS53YXJlaG91c2VJZDsKICAgICAgdGhpcy5mb3JtLm9wZXJhdG9yTmFtZSA9IGRhdGEub3BlcmF0b3JOYW1lOwogICAgICB0aGlzLmZvcm0ucHVyY2hhc2VTdGF0dXMgPSB0aGlzLmlmTWVyY2hhbnQ7CiAgICAgIGF3YWl0IHRoaXMuZ2V0UHVyY2hhc2VJbmZvQnlJZCh0aGlzLnB1c3JjaGFzZV9pZCwgZGF0YS53YXJlaG91c2VJZCk7CiAgICB9LAoKICAgIC8vIOmAieaLqemHh+i0reWNlSBzZWxwdXJjaGFzZQogICAgc2VscHVyY2hhc2UodmFsKSB7CiAgICAgIGNvbnN0IGlkID0gdmFsWzBdLmlkOwogICAgICBjb25zdCB3YXJlaG91c2VJZCA9IHZhbFswXS53YXJlaG91c2VJZDsKICAgICAgdGhpcy5nZXRQdXJjaGFzZUluZm9CeUlkKGlkLCB3YXJlaG91c2VJZCk7CiAgICAgIHRoaXMuZm9ybS5vcmlnaW5JZCA9IHZhbFswXS5pZDsKICAgICAgdGhpcy5mb3JtLm9yaWdpbk5vID0gdmFsWzBdLm5vOwogICAgICB0aGlzLmZvcm0uc2hvcElkID0gdmFsWzBdLnNob3BJZDsKICAgICAgdGhpcy5mb3JtLnNob3BOYW1lID0gdmFsWzBdLnNob3BOYW1lOwogICAgICB0aGlzLmZvcm0uYnV5ZXJJZCA9IHZhbFswXS5idXllcklkOwogICAgICB0aGlzLmZvcm0uYnV5ZXJOYW1lID0gdmFsWzBdLmJ1eWVyTmFtZTsKICAgICAgdGhpcy5mb3JtLnJlbWFyayA9IHZhbFswXS5yZW1hcms7CiAgICAgIHRoaXMuZm9ybS5zdXBwbGllcklkID0gdGhpcy5pZk1lcmNoYW50ID09PSA1ID8gMCA6IHZhbFswXS5zdXBwbGllcklkOwogICAgICB0aGlzLmZvcm0uc3VwcGxpZXJOYW1lID0gdGhpcy5pZk1lcmNoYW50ID09PSA1ID8gIiIgOiB2YWxbMF0uc3VwcGxpZXJOYW1lOwogICAgICB0aGlzLmZvcm0ubWVyY2hhbnRJZCA9IHRoaXMuaWZNZXJjaGFudCA9PT0gNSA/IHZhbFswXS5tZXJjaGFudElkIDogMDsKICAgICAgdGhpcy5mb3JtLm1lcmNoYW50TmFtZSA9IHRoaXMuaWZNZXJjaGFudCA9PT0gNSA/IHZhbFswXS5tZXJjaGFudE5hbWUgOiAiIjsKICAgICAgdGhpcy5mb3JtLndhcmVob3VzZU5hbWUgPSB2YWxbMF0ud2FyZWhvdXNlTmFtZTsKICAgICAgdGhpcy5mb3JtLndhcmVob3VzZUlkID0gdmFsWzBdLndhcmVob3VzZUlkOwogICAgfSwKCiAgICAvLyDpgInmi6nljZXkuKrkvpvlupTllYYKICAgIHNlbFVuaXRTdXBwbGllcih2YWwsIGxpc3QpIHsKICAgICAgdGhpcy5mb3JtLnN1cHBsaWVyTmFtZSA9IGxpc3RbMF0udGl0bGU7CiAgICB9LAoKICAgIGFzeW5jIGdldEFsbFN0YWZmKCkgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0QWxsU3RhZmYoewogICAgICAgIHBhZ2U6IDEsCiAgICAgICAgcGFnZVNpemU6IDk5OQogICAgICB9KTsKICAgICAgdGhpcy5wdXJjaGFzZV9saXN0ID0gZGF0YS5kYXRhOwogICAgfSwKCiAgICAvLyAg6YCJ5oup5ZWG5ZOBZ29vZERhdGHnmoTmlbDmja4KICAgIHNlbE1vcmVHb29kcyh2YWwpIHsKICAgICAgY29uc3Qgcm93ID0gdmFsLm1hcChpdGVtID0+IHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgZ29vZHNJZDogaXRlbS5iYXNpY0dvb2RzSWQsCiAgICAgICAgICBnb29kc0NvZGU6IGl0ZW0uZ29vZHNDb2RlLAogICAgICAgICAgZ29vZHNOYW1lOiBpdGVtLmdvb2RzTmFtZSwKICAgICAgICAgIHVuaXROYW1lOiBpdGVtLnVuaXROYW1lLAogICAgICAgICAgc2t1TmFtZTogaXRlbS5za3VOYW1lLAogICAgICAgICAgc2t1SWQ6IGl0ZW0uc2t1SWQsCiAgICAgICAgICBwdXJjaGFzZU51bTogaXRlbS5udW0sCiAgICAgICAgICBidXllck51bTogaXRlbS5udW0sCiAgICAgICAgICBudW06IGl0ZW0ubnVtLAogICAgICAgICAgYnV5ZXJVbml0UHJpY2U6IGl0ZW0uYnV5ZXJVbml0UHJpY2UsCiAgICAgICAgICBzdWJ0b3RhbFByaWNlOiB0aGlzLiROUC50aW1lcyhpdGVtLmJ1eWVyVW5pdFByaWNlLCBpdGVtLm51bSksCiAgICAgICAgICBjb3Vwb25BbW91bnQ6IGl0ZW0uY291cG9uQW1vdW50LAogICAgICAgICAgb3RoZXJBbW91bnQ6IGl0ZW0ub3RoZXJBbW91bnQKICAgICAgICB9OwogICAgICB9KTsKCiAgICAgIGlmICh0aGlzLmdvb2RzX2xpc3QubGVuZ3RoKSB7CiAgICAgICAgdGhpcy5nb29kc19saXN0ID0gdGhpcy4kX2NvbW1vbi51bmlxdWUodGhpcy5nb29kc19saXN0LmNvbmNhdChyb3cpLCBbImdvb2RzSWQiLCAic2t1SWQiXSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5nb29kc19saXN0ID0gcm93OwogICAgICB9CiAgICB9LAoKICAgIC8vICDph4fotK3kurrlkZjnmoRpZAogICAgcHVyY2hhc2VDaGFuZ2UodmFsKSB7CiAgICAgIGNvbnN0IHN0YWZmID0gdGhpcy5wdXJjaGFzZV9saXN0LmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSB2YWwpOwogICAgICB0aGlzLmZvcm0uYnV5ZXJJZCA9IHN0YWZmLmlkOwogICAgICB0aGlzLmZvcm0uYnV5ZXJOYW1lID0gc3RhZmYuc3RhZmZOYW1lOwogICAgfSwKCiAgICAvLyAg6YCJ5oup5LuT5bqT55qEaWQKICAgIHdhcmVob3VzZUNoYW5nZSh2YWwpIHsKICAgICAgY29uc3Qgd2FyZWhvdXNlID0gdGhpcy5zdG9ja19saXN0LmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSB2YWwpOwogICAgICB0aGlzLmZvcm0ud2FyZWhvdXNlSWQgPSB3YXJlaG91c2UuaWQ7CiAgICAgIHRoaXMuZm9ybS53YXJlaG91c2VOYW1lID0gd2FyZWhvdXNlLndhcmVob3VzZU5hbWU7CiAgICB9LAoKICAgIC8vIOWQiOiuoQogICAgZ2V0U3VtbWFyaWVzKHBhcmFtKSB7CiAgICAgIHJldHVybiB0aGlzLiRfY29tbW9uLmdldFN1bW1hcmllcyhwYXJhbSwgWyLpgIDotKfmlbDph48iLCAi5bCP6K6h6YeR6aKdIl0pOwogICAgfSAvLyBibHVyTnVtKGluZGV4LHJvdykgewogICAgLy8gICBpZiAocm93LnJldHVybk9uTnVtID4gcm93Lm51bSkgewogICAgLy8gICB9CiAgICAvLyAgIHRoaXMuZ29vZHNfbGlzdC5yZXR1cm5Pbk51bSA9IE51bWJlcihudW0pOwogICAgLy8gfSwKCgogIH0KfTs="},{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwUA;AACA;AACA;AACA;AACA;AACA,SACAA,eADA,EAEAC,cAFA,EAGAC,sBAHA,EAIAC,2BAJA,EAKAC,mBALA,QAMA,gBANA;AAOA;AACA;AACA;AAEA;EACAC,wBADA;EAEAC;IACAC,cADA;IAEA;IACAC;EAHA,CAFA;;EAOAC;IACA;MACA;QACAC;MACA,CAFA,MAEA;QACAA;MACA;IACA,CANA;;IAOA;MACA;QACAA;MACA,CAFA,MAEA;QACAA;MACA;IACA,CANA;;IAOA;MACA;QACAA;MACA,CAFA,MAEA;QACAA;MACA;IACA,CANA;;IAOA;MACA;QACAA;MACA,CAFA,MAEA;QACAA;MACA;IACA,CANA;;IAOA;MACAC,aADA;MACA;MACAC,cAFA;MAGAC,mBAHA;MAGA;MACAC,MAJA;MAKAC,aALA;MAMAC,aANA;MAOAC,WAPA;MAQAC,eARA;MASAC,aATA;MAUAC;QACAC,YADA;QAEAC,YAFA;QAGAC,cAHA;QAIAC,gBAJA;QAKAC,eALA;QAMAC,iBANA;QAOAC,WAPA;QAQAC,aARA;QASAC,gBATA;QAUAC,gBAVA;QAWAC,eAXA;QAYAC,UAZA;QAaAC,aAbA;QAcAC,UAdA;QAeAC,YAfA;QAgBAC,cAhBA;QAiBAC,gBAjBA;QAkBAC;MAlBA,CAVA;MA8BAC;QACAjB;UAAAkB;UAAAC;QAAA,EADA;QAEAf;UAAAc;UAAAC;QAAA,EAFA;QAGAjB;UAAAgB;UAAAC;QAAA,EAHA;QAIAd;UAAAa;UAAAC;QAAA;MAJA,CA9BA;MAoCAC,oBApCA;MAqCAC,oBArCA;MAsCAC,oBAtCA;MAuCAC,iBAvCA;MAuCA;MACAC,kBAxCA;MAyCAC,cAzCA;MA0CAC,gBA1CA;MA2CAC,gBA3CA;MA4CAC,oBA5CA;MA6CAC,eA7CA;MA8CAC,cA9CA;MA+CAC,OA/CA;MAgDAC;IAhDA;EAkDA,CAtFA;;EAuFAC;IACAC;MACA;;MACA;QACA;UACAC;QACA,CAFA;MAGA,CAJA,MAIA;QACAA;MACA,CAFA,MAEA;QACAA;MACA;;MACA;IACA,CAbA;;IAcA;MACAC;IADA;EAdA,CAvFA;;EAyGAC;IACA;IACA;IACA;MACA;IACA;;IACA;;IACA;MACA,iDACAC,sCADA,GAEA,CAFA,CADA,CAIA;;MACA;MACA;MACA;IACA;;IACA;MACA;MACA;IACA,CAHA,MAGA;MACA;MACA;;MACA;QACA,qCADA,CACA;;QACA,yCAFA,CAEA;MACA;IACA;EACA,CApIA;;EAqIAC;IACA;;IACA;MACA,iDACAD,sCADA,GAEA,CAFA,CADA,CAIA;;MACA;MACA;IACA;EACA,CA/IA;;EAgJAE;IACA;MACA;QAAArD;MAAA;QACAsD,OADA;QAEAC;MAFA;MAKA,uBANA,CAOA;MACA;MACA;IACA,CAXA;;IAYAC;MACA;MACA;IACA,CAfA;;IAgBA;MACA,iBACA,YADA;QAEAhC;UACA;UACA;QACA,CAHA;MAFA;MAOA;MACA;QACAiC,mBADA;QAEAzD;MAFA;MAIA;MAEA;QACA0D,eADA;QAEAC;MAFA;MAIA;IACA,CApCA;;IAqCA;IACA;MACA;QACAF;MADA;;MAIA;QACA;UACAC,eADA;UAEAC;QAFA;QAIA;MACA;IACA,CAlDA;;IAmDA;IACA;MACA;QAAA3D;MAAA;QACAyD;MADA;MAIA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,2CAlBA,CAmBA;;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;QACA;UACAG,WADA;UAEAC,qBAFA;UAGAC,yBAHA;UAIAC,yBAJA;UAKAC,uBALA;UAMAC,qBANA;UAOAC,uBAPA;UAQAC,6BARA;UASAC,mCATA;UAUAC,iEAVA;UAWAhD,+BAXA;UAYAiD,iBAZA;UAaAhD;QAbA;MAeA,CAhBA;IAiBA,CAhGA;;IAiGA;IACA;MACA;QACA;MACA;;MACA;QACA;UACA;;UACA;YACA;YACA;UACA;;UAEA;;UACA;YACA;YACA;UACA;;UACA;UACA,iBACA,YADA;YAEAE,yBACA+C,SADA,CACA,eADA,EAEAC,GAFA,CAEAC;cACA;;cACA;gBACA;cACA;;cACA;YACA,CARA;UAFA;UAaA;;UACA;YACA;cACAC;;cACA;gBACAA;cACA;;cACAC;YACA,CANA,MAMA;cACAD;cACAC;YACA;;YACA;YACA;YACA;YACA;cACAjB,eADA;cAEAC;YAFA;YAIA;YACA,+BACA,uCADA;UAGA,CAtBA,SAsBA;YACA;UACA;QACA;MACA,CAtDA;IAuDA,CA7JA;;IA8JA;IACA;MACA;QAAA3D;MAAA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,2CAdA,CAeA;;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,kBAvBA,CAwBA;MACA;MACA;MACA;MACA;MACA;;MACA;IACA,CA9LA;;IA+LA;IACA4E;MACA;QACA;MACA;;MACA;IACA,CArMA;;IAsMA;IACAC;MACA;QACA;MACA;;MACA;MACAF,6CACAA,sBADA,EAEAA,4BAFA;;MAIA;QACAA;MACA;;MACA;IACA,CApNA;;IAqNA;IACAG;MACA;IACA,CAxNA;;IAyNA;IACA;MACA;QAAA9E;MAAA;QACA4D,MADA;QAEA5C;MAFA;MAKA;QACA;UACA+D,eADA;UAEAC,uBAFA;UAGApB,WAHA;UAIAC,0BAJA;UAKAC,yBALA;UAMAC,yBANA;UAOAC,uBAPA;UAQAC,qBARA;UASAK,iBATA;UAUAH,0BAVA;UAWAD,0BAXA;UAYAe,iBAZA;UAaAC,qBAbA;UAcAC,6BAdA;UAeAC,yBAfA;UAgBAC,sBAhBA;UAiBAjB,mCAjBA;UAkBAC,8BACAI,mBADA,EAEAA,gBAFA,CAlBA;UAsBApD,+BAtBA;UAuBAC;QAvBA;MAyBA,CA1BA;MA2BA;QACA,SACA,OADA;UAEAgE,4BAFA;UAGAC;QAHA;MAKA,CANA;IAOA,CAlQA;;IAmQA;IACA;MACA;QAAAvF;MAAA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;IACA,CAtRA;;IAuRA;IACAwF;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,yBACA,gDADA;MAEA;MACA,yBACA,gDADA;MAEA;MACA;IACA,CA3SA;;IA4SA;IACAC;MACA;IACA,CA/SA;;IAgTA;MACA;QACAnC,OADA;QAEAC;MAFA;MAKA;IACA,CAvTA;;IAwTA;IACAmC;MACA;QACA;UACA7B,0BADA;UAEAC,yBAFA;UAGAC,yBAHA;UAIAC,uBAJA;UAKAC,qBALA;UAMAK,iBANA;UAOAH,qBAPA;UAQAD,kBARA;UASAtB,aATA;UAUAwB,mCAVA;UAWAC,4DAXA;UAYAhD,+BAZA;UAaAC;QAbA;MAeA,CAhBA;;MAiBA;QACA,qEACA,SADA,EAEA,OAFA;MAIA,CALA,MAKA;QACA;MACA;IACA,CAnVA;;IAoVA;IACAqE;MACA;MACA;MACA;IACA,CAzVA;;IA0VA;IACAC;MACA;MACA;MACA;IACA,CA/VA;;IAgWA;IACAC;MACA;IACA,CAnWA,CAoWA;IACA;IACA;IACA;IACA;;;EAxWA;AAhJA","names":["editPurchaseOut","addPurchaseOut","getPurchaseOutInfoById","getPurchaseAndBatchInfoById","getPurchaseInfoById","name","components","GoodsWarehouse","OrderReturn","data","callback","ifMerchant","loading","pusrchaseOut_id","no","auditName","auditTime","auditId","auditStatus","look_path","form","originId","originNo","supplierId","supplierName","warehouseId","warehouseName","buyerId","buyerName","operatorName","couponAmount","otherAmount","remark","goodsData","shopId","shopName","merchantId","merchantName","purchaseStatus","rules","required","validator","supplier_show","show_selgoods","purchase_open","purchase_list","purchase_rules","goods_list","goodsArrData","pusrchase_id","pusrchase_shopId","deleteArray","stock_list","num","activeName","computed","purchaseAmount","sum","storeData","created","parseInt","activated","methods","page","pageSize","shopDefault","key","type","message","id","goodsId","goodsCode","goodsName","unitName","skuName","buyerNum","purchaseNum","buyerUnitPrice","subtotalPrice","skuId","deepClone","map","item","params","target","delData","editNumChange","selShop","isEq","otherNum","inNum","inOfNum","returnOnNum","returnNum","inventoryNum","materielName","materielCode","selpurchase","selUnitSupplier","selMoreGoods","purchaseChange","warehouseChange","getSummaries"],"sourceRoot":"src/views/Purchase/ManageP","sources":["PurchaseReturnOrderAdd.vue"],"sourcesContent":["<template>\n <ContainerTit class=\"PurchaseReturnOrderAdd\">\n <div style=\"position: relative\">\n <div class=\"btn-top-div\">\n <el-button\n :loading=\"loading\"\n :disabled=\"!!$route.params.id\"\n @click=\"delPauseSave(1)\"\n >\n 清除暂存\n </el-button>\n <el-button\n :loading=\"loading\"\n :disabled=\"!!$route.params.id\"\n @click=\"addPauseSave\"\n >\n 暂存\n </el-button>\n <el-button\n type=\"primary\"\n :loading=\"loading\"\n :disabled=\"look_path === 'PurchaseReturnOrderLook'\"\n @click=\"addPurchaseOrder\"\n >\n 保存\n </el-button>\n </div>\n </div>\n <div>\n <el-form\n ref=\"form\"\n size=\"small\"\n inline\n :rules=\"rules\"\n :model=\"form\"\n :disabled=\"look_path === 'PurchaseReturnOrderLook'\"\n >\n <el-tabs v-model=\"activeName\">\n <el-tab-pane\n label=\"新增采购退货单\"\n name=\"one\"\n style=\"position: relative\"\n >\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=\"!!pusrchaseOut_id\"\n class=\"form\"\n :span=\"6\"\n style=\"margin-bottom: 0\"\n >\n <el-form-item v-if=\"!!pusrchaseOut_id\" label=\"退货单号:\">\n <el-input placeholder=\"系统自动生成\" disabled></el-input>\n </el-form-item>\n </el-col>\n <el-col class=\"form\" :span=\"6\" style=\"margin-bottom: 0\">\n <el-form-item label=\"关联采购单:\" prop=\"originNo\">\n <el-input v-model=\"form.originNo\" placeholder=\"关联采购单\">\n <i\n slot=\"suffix\"\n class=\"el-input__icon el-icon-search\"\n @click=\"purchase_open = true\"\n ></i>\n </el-input>\n </el-form-item>\n </el-col>\n <el-col v-if=\"form.originNo\" class=\"form\" :span=\"6\">\n <el-form-item label=\"退货仓库:\">\n {{ form.warehouseName || \"--\" }}\n </el-form-item>\n </el-col>\n <el-col v-if=\"form.originNo\" class=\"form\" :span=\"6\">\n <el-form-item :label=\"ifMerchant === 5 ? '商户:' : '供应商:'\">\n {{ ifMerchant === 5 ? form.merchantName : form.supplierName }}\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.getNowFormatDate() }}</span>\n </el-form-item>\n </el-col>\n <el-col v-if=\"form.originNo\" class=\"form\" :span=\"6\">\n <el-form-item label=\"采购人员:\">\n {{ form.buyerName || \"--\" }}\n </el-form-item>\n </el-col>\n\n <el-col v-if=\"auditStatus === 2\" class=\"form\" :span=\"6\">\n <el-form-item label=\"审核人员:\">\n <el-input\n v-model=\"auditName\"\n size=\"mini\"\n placeholder=\"输入审核人员\"\n ></el-input>\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 v-if=\"pusrchaseOut_id\" class=\"form\" :span=\"6\">\n <el-form-item\n prop=\"auditStatus\"\n label=\"审核状态:\"\n min-width=\"180\"\n >\n <span v-if=\"auditStatus === 2\" class=\"open-span\">已审核</span>\n <span v-if=\"auditStatus === 1\" class=\"disabled-span\">\n 未审核\n </span>\n </el-form-item>\n </el-col>\n </el-row>\n </el-tab-pane>\n </el-tabs>\n <div class=\"order_bottom\">\n <p class=\"text\">付款单明细</p>\n <!-- <div class=\"clearfix\" style=\"padding-bottom: 10px\">-->\n <!-- <el-button-->\n <!-- v-if=\"pusrchaseOut_id\"-->\n <!-- class=\"float_right\"-->\n <!-- type=\"primary\"-->\n <!-- size=\"mini\"-->\n <!-- @click=\"show_selgoods = true\"-->\n <!-- >-->\n <!-- 选择商品-->\n <!-- </el-button>-->\n <!-- </div>-->\n <el-table\n :data=\"goods_list\"\n size=\"small\"\n show-summary\n :summary-method=\"getSummaries\"\n >\n <el-table-column\n prop=\"goodsId\"\n label=\"ID\"\n width=\"55\"\n ></el-table-column>\n <el-table-column\n prop=\"goodsCode\"\n label=\"编码\"\n min-width=\"140\"\n ></el-table-column>\n <el-table-column\n prop=\"goodsName\"\n label=\"商品名称\"\n min-width=\"140\"\n show-overflow-tooltip\n ></el-table-column>\n <el-table-column prop=\"unitName\" label=\"规格\" min-width=\"140\">\n <template slot-scope=\"scope\">\n {{ scope.row.unitName }}; {{ scope.row.skuName }}\n </template>\n </el-table-column>\n <el-table-column\n prop=\"purchaseNum\"\n label=\"采购数量\"\n min-width=\"100\"\n >\n <template slot-scope=\"scope\">\n {{ $_common.formatNub(scope.row.purchaseNum) }}\n </template>\n </el-table-column>\n <el-table-column prop=\"inNum\" label=\"入库数量\" min-width=\"100\">\n <template slot-scope=\"scope\">\n {{ $_common.formatNub(scope.row.inNum) }}\n </template>\n </el-table-column>\n <el-table-column prop=\"inOfNum\" label=\"未入库数量\" min-width=\"100\">\n <template slot-scope=\"scope\">\n {{ $_common.formatNub(scope.row.inOfNum) }}\n </template>\n </el-table-column>\n <el-table-column prop=\"returnNum\" label=\"已退数量\" min-width=\"100\">\n <template slot-scope=\"scope\">\n {{ $_common.formatNub(scope.row.returnNum) }}\n </template>\n </el-table-column>\n <el-table-column\n prop=\"returnOnNum\"\n label=\"可退数量\"\n min-width=\"100\"\n >\n <template slot-scope=\"scope\">\n {{ $_common.formatNub(scope.row.returnOnNum) }}\n </template>\n </el-table-column>\n <el-table-column prop=\"num\" label=\"剩余库存\" min-width=\"100\">\n <template slot-scope=\"scope\">\n {{ $_common.formatNub(scope.row.inventoryNum) }}\n </template>\n </el-table-column>\n <el-table-column prop=\"buyNum\" label=\"退货数量\" min-width=\"100\">\n <template slot-scope=\"scope\">\n <el-input-number\n v-model=\"scope.row.buyerNum\"\n style=\"width: 80px\"\n size=\"mini\"\n type=\"text\"\n :max=\"Number(scope.row.inventoryNum)\"\n :min=\"0\"\n placeholder=\"退货数量\"\n :controls=\"false\"\n @change=\"editNumChange(scope.row, scope.$index)\"\n />\n </template>\n </el-table-column>\n <el-table-column prop=\"otherNum\" label=\"其他单位\" min-width=\"100\">\n <template slot-scope=\"scope\">\n <vxe-input\n v-if=\"scope.row.isEq === 5\"\n v-model=\"scope.row.otherNum\"\n style=\"width: 80px\"\n size=\"mini\"\n :min=\"0\"\n placeholder=\"其他单位\"\n :controls=\"false\"\n type=\"integer\"\n ></vxe-input>\n <span v-else>--</span>\n </template>\n </el-table-column>\n <el-table-column\n prop=\"buyerUnitPrice\"\n label=\"退货单价\"\n min-width=\"100\"\n >\n <template slot-scope=\"scope\">\n {{ $_common.formattedNumber(scope.row.buyerUnitPrice) }}\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 fixed=\"right\" label=\"操作\" width=\"100\">\n <template slot-scope=\"scope\">\n <el-button\n type=\"text\"\n @click=\"delData(scope.$index, scope.row)\"\n >\n 删除\n </el-button>\n </template>\n </el-table-column>\n </el-table>\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 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 :controls=\"false\"\n placeholder=\"其他金额\"\n :min=\"0\"\n ></el-input-number>\n </el-form-item>\n <!-- <el-form-item label=\"优惠金额:\">\n <el-input\n style=\"width: 100px\"\n size=\"mini\"\n placeholder=\"优惠金额\"\n v-model=\"couponAmount\"\n ></el-input>\n </el-form-item>-->\n <el-form-item label=\"退货金额:\">\n <el-input\n v-model=\"purchaseAmount\"\n style=\"width: 100px\"\n placeholder=\"退货金额\"\n ></el-input>\n </el-form-item>\n </div>\n </div>\n </div>\n </el-form>\n </div>\n <!-- 选择商品-->\n <GoodsWarehouse\n v-if=\"show_selgoods\"\n :id=\"form.originId\"\n :goods-data=\"goodsArrData\"\n :is-show=\"show_selgoods\"\n :shop=\"form.warehouseId\"\n @cancel=\"show_selgoods = false\"\n @confirm=\"selMoreGoods\"\n ></GoodsWarehouse>\n <!-- 采购单-->\n <OrderReturn\n v-if=\"purchase_open\"\n :dialog-visible=\"purchase_open\"\n :enable=\"true\"\n :if-merchant=\"ifMerchant\"\n @close=\"purchase_open = false\"\n @confirm=\"selpurchase\"\n ></OrderReturn>\n </ContainerTit>\n</template>\n\n<script>\n import GoodsWarehouse from \"@/component/goods/GoodsWarehouseData.vue\";\n import OrderReturn from \"@/component/goods/OrderReturn.vue\";\n import SelectSupplier from \"@/component/common/SelectSupplier.vue\";\n import { getAllStaff } from \"@/api/Department\";\n import { addPauseSave, delPauseSave, getPauseSave } from \"@/api/common\";\n import {\n editPurchaseOut,\n addPurchaseOut,\n getPurchaseOutInfoById,\n getPurchaseAndBatchInfoById,\n getPurchaseInfoById,\n } from \"@/api/Purchase\";\n import SelectShop from \"@/component/goods/SelectShop.vue\";\n import { mapGetters } from \"vuex\";\n import { getAllWarehouse } from \"@/api/Stock\";\n\n export default {\n name: \"PurchaseOrderAdd\",\n components: {\n GoodsWarehouse,\n // SelectSupplier,\n OrderReturn,\n },\n data() {\n const validateNo = (rule, value, callback) => {\n if (!value) {\n callback(new Error(\"请选择关联采购单号\"));\n } else {\n callback();\n }\n };\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 const validateBuyer = (rule, value, callback) => {\n if (!value) {\n callback(new Error(\"请选择采购人员\"));\n } else {\n callback();\n }\n };\n return {\n ifMerchant: 4, // 是否商户采购单\n loading: false,\n pusrchaseOut_id: \"\", // 采购单id\n no: \"\",\n auditName: \"\",\n auditTime: \"\",\n auditId: \"\",\n auditStatus: \"\",\n look_path: \"\",\n form: {\n originId: \"\",\n originNo: \"\",\n supplierId: \"\",\n supplierName: \"\",\n warehouseId: \"\",\n warehouseName: \"\",\n buyerId: \"\",\n buyerName: \"\",\n operatorName: \"\",\n couponAmount: \"\",\n otherAmount: \"\",\n remark: \"\",\n goodsData: [],\n shopId: \"\",\n shopName: \"\",\n merchantId: \"\",\n merchantName: \"\",\n purchaseStatus: \"\",\n },\n rules: {\n originNo: [{ required: true, validator: validateNo }],\n warehouseName: [{ required: true, validator: validateShop }],\n supplierName: [{ required: true, validator: validateSupplier }],\n buyerId: [{ required: true, validator: validateBuyer }],\n },\n supplier_show: false,\n show_selgoods: false,\n purchase_open: false,\n purchase_list: [], // 采购人员列表\n purchase_rules: {},\n goods_list: [],\n goodsArrData: [],\n pusrchase_id: \"\",\n pusrchase_shopId: \"\",\n deleteArray: [],\n stock_list: [],\n num: \"\",\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 this.$NP.plus(sum, this.form.otherAmount);\n },\n ...mapGetters({\n storeData: \"MUser/storeData\",\n }),\n },\n created() {\n // this.getAllStaff();\n // this.getAllWarehouse();\n if (this.$route.params.type) {\n this.ifMerchant = Number(this.$route.params.type);\n }\n this.look_path = this.$route.name;\n if (this.$route.query.purchase_id) {\n this.ifMerchant = this.$route.query.ifMerchant\n ? parseInt(this.$route.query.ifMerchant)\n : 4;\n // 采购单页面-点击退单→新增采购退货单页面\n this.pusrchase_id = parseInt(this.$route.query.purchase_id);\n this.getPurchaseInfoById2(this.pusrchase_id);\n return;\n }\n if (this.$route.params.id) {\n this.pusrchaseOut_id = this.$route.params.id;\n this.getPurchaseOutInfoById();\n } else {\n this.form.operatorName = this.userName;\n this.getPauseSave();\n if ([2, 3].includes(this.systemType)) {\n this.form.shopId = this.storeData.id; // 店铺\n this.form.shopName = this.storeData.name; // 店铺\n }\n }\n },\n activated() {\n if (this.$_isInit()) return;\n if (this.$route.query.purchase_id) {\n this.ifMerchant = this.$route.query.ifMerchant\n ? parseInt(this.$route.query.ifMerchant)\n : 4;\n // 采购单页面-点击退单→新增采购退货单页面\n this.pusrchase_id = parseInt(this.$route.query.purchase_id);\n this.getPurchaseInfoById2(this.pusrchase_id);\n }\n },\n methods: {\n async getAllWarehouse() {\n const { data } = await getAllWarehouse({\n page: 1,\n pageSize: 999,\n });\n\n this.stock_list = data;\n // if (!this.form.warehouseId) {\n // this.form.warehouseId = data[0].id;\n // }\n },\n shopDefault(val, row) {\n this.form.shopId = val;\n this.form.shopName = row.name;\n },\n async addPauseSave() {\n const params = {\n ...this.form,\n goodsData: this.$_common.deepClone(this.goods_list).map((item) => {\n delete item.num;\n return item;\n }),\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 this.$closeCurrentGoEdit(\"/Purchase/ManageP/PurchaseReturnOrder\");\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/PurchaseReturnOrderAdd\");\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.warehouseName = data.warehouseName;\n this.form.warehouseId = data.warehouseId;\n this.form.originId = data.originId;\n this.form.originNo = data.originNo;\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.merchantId = data.merchantId;\n this.form.merchantName = data.merchantName;\n this.form.buyerId = data.buyerId;\n this.form.buyerName = data.buyerName;\n this.form.operatorName = data.operatorName;\n // this.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.no = data.no;\n this.goods_list = data.goodsData.map((item) => {\n return {\n id: item.id,\n goodsId: item.goodsId,\n goodsCode: item.goodsCode,\n goodsName: item.goodsName,\n unitName: item.unitName,\n skuName: item.skuName,\n buyerNum: item.buyerNum,\n purchaseNum: item.purchaseNum,\n buyerUnitPrice: item.buyerUnitPrice,\n subtotalPrice: this.$NP.times(item.buyerUnitPrice, item.buyerNum),\n couponAmount: item.couponAmount,\n skuId: item.skuId,\n otherAmount: item.otherAmount,\n };\n });\n },\n // 添加采购退货单 addPurchaseOut\n async addPurchaseOrder() {\n if (!this.form.otherAmount) {\n this.form.otherAmount = 0;\n }\n this.$refs[\"form\"].validate(async (valid) => {\n if (valid) {\n let target = {};\n if (!this.goods_list.length) {\n this.$message.warning(\"请选择商品\");\n return;\n }\n\n const isBuyer = this.goods_list.some((item) => item.buyerNum <= 0);\n if (isBuyer) {\n this.$message.warning(\"退货数量不能为0,请检查\");\n return;\n }\n this.form.purchaseStatus = this.ifMerchant;\n const params = {\n ...this.form,\n goodsData: this.$_common\n .deepClone(this.goods_list)\n .map((item) => {\n delete item.num;\n if (!this.pusrchaseOut_id) {\n delete item.id;\n }\n return item;\n }),\n };\n\n this.loading = true;\n try {\n if (this.pusrchaseOut_id) {\n params.deleteArray = this.deleteArray;\n if (params.buyerNum >= Number(this.num)) {\n params.buyerNum = Number(this.num);\n }\n target = await editPurchaseOut(this.pusrchaseOut_id, params);\n } else {\n params.deleteArray = this.deleteArray;\n target = await addPurchaseOut(params);\n }\n const data = target;\n this.loading = false;\n this.goods_list = [];\n await this.$message({\n type: \"success\",\n message: \"提交成功\",\n });\n await this.delPauseSave();\n await this.$closeCurrentGoEdit(\n \"/Purchase/manageP/PurchaseReturnOrder\"\n );\n } finally {\n this.loading = false;\n }\n }\n });\n },\n // 获取详情 getPurchaseOutInfoById\n async getPurchaseOutInfoById() {\n const { data } = await getPurchaseOutInfoById(this.pusrchaseOut_id);\n this.form.warehouseName = data.warehouseName;\n this.form.warehouseId = data.warehouseId;\n this.form.originId = data.originId;\n this.form.originNo = data.originNo;\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.merchantId = data.merchantId;\n this.form.merchantName = data.merchantName;\n this.form.buyerId = data.buyerId;\n this.form.buyerName = data.buyerName;\n this.form.operatorName = data.operatorName;\n // this.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.auditTime = data.auditTime;\n this.auditStatus = data.auditStatus;\n this.no = data.no;\n // this.goods_list = data.details.map((item) => {\n // return {\n // ...item,\n // buyerNum: item.returnOnNum,\n // };\n // });\n this.goods_list = data.details;\n },\n // 删除\n delData(index, row) {\n if (row.id) {\n this.deleteArray.push(row.id);\n }\n this.goods_list.splice(index, 1);\n },\n // 改变数量\n editNumChange(row, index) {\n if (!row.buyerNum) {\n this.$message.warning(\"退货数量为空,默认变成1\");\n }\n const target = this.$_common.deepClone(this.goods_list);\n target[index].subtotalPrice = this.$NP.times(\n target[index].buyerNum,\n target[index].buyerUnitPrice\n );\n if (target[index].returnOnNum > Number(target[index.num])) {\n target[index].returnOnNum = Number(target[index.num]);\n }\n this.goods_list = target;\n },\n // 选择一个商铺\n selShop(val, row) {\n this.form.shopName = row[0].name;\n },\n // 获取采购单详情\n async getPurchaseInfoById(id, warehouseId) {\n const { data } = await getPurchaseAndBatchInfoById({\n id: id,\n warehouseId: warehouseId,\n });\n\n this.goods_list = data.map((item) => {\n return {\n isEq: item.isEq,\n otherNum: item.otherNum,\n id: item.id,\n goodsId: item.basicGoodsId,\n goodsCode: item.goodsCode,\n goodsName: item.goodsName,\n unitName: item.unitName,\n skuName: item.skuName,\n skuId: item.skuId,\n purchaseNum: item.buyerNum,\n buyerNum: item.returnOnNum,\n inNum: item.inNum,\n inOfNum: item.inOfNum,\n returnOnNum: item.returnOnNum,\n returnNum: item.returnNum,\n inventoryNum: item.num,\n buyerUnitPrice: item.buyerUnitPrice,\n subtotalPrice: this.$NP.times(\n item.buyerUnitPrice,\n item.returnOnNum\n ),\n couponAmount: item.couponAmount,\n otherAmount: item.otherAmount,\n };\n });\n this.goodsArrData = data.map((item) => {\n return {\n ...item,\n materielName: item.goodsName,\n materielCode: item.goodsCode,\n };\n });\n },\n // 获取采购单详情 采购单页面-点击退单→新增采购退货单页面\n async getPurchaseInfoById2() {\n const { data } = await getPurchaseInfoById(this.pusrchase_id);\n this.form.originId = data.id;\n this.form.originNo = data.no;\n this.form.shopId = data.shopId;\n this.form.shopName = data.shopName;\n this.form.buyerId = data.buyerId;\n this.form.buyerName = data.buyerName;\n this.form.remark = data.remark;\n this.form.supplierId = this.ifMerchant === 5 ? 0 : data.supplierId;\n this.form.supplierName = this.ifMerchant === 5 ? \"\" : data.supplierName;\n this.form.merchantId = this.ifMerchant === 5 ? data.merchantId : 0;\n this.form.merchantName = this.ifMerchant === 5 ? data.merchantName : \"\";\n this.form.warehouseName = data.warehouseName;\n this.form.warehouseId = data.warehouseId;\n this.form.operatorName = data.operatorName;\n this.form.purchaseStatus = this.ifMerchant;\n await this.getPurchaseInfoById(this.pusrchase_id, data.warehouseId);\n },\n // 选择采购单 selpurchase\n selpurchase(val) {\n const id = val[0].id;\n const warehouseId = val[0].warehouseId;\n this.getPurchaseInfoById(id, warehouseId);\n this.form.originId = val[0].id;\n this.form.originNo = val[0].no;\n this.form.shopId = val[0].shopId;\n this.form.shopName = val[0].shopName;\n this.form.buyerId = val[0].buyerId;\n this.form.buyerName = val[0].buyerName;\n this.form.remark = val[0].remark;\n this.form.supplierId = this.ifMerchant === 5 ? 0 : val[0].supplierId;\n this.form.supplierName =\n this.ifMerchant === 5 ? \"\" : val[0].supplierName;\n this.form.merchantId = this.ifMerchant === 5 ? val[0].merchantId : 0;\n this.form.merchantName =\n this.ifMerchant === 5 ? val[0].merchantName : \"\";\n this.form.warehouseName = val[0].warehouseName;\n this.form.warehouseId = val[0].warehouseId;\n },\n // 选择单个供应商\n selUnitSupplier(val, list) {\n this.form.supplierName = list[0].title;\n },\n async getAllStaff() {\n const data = await getAllStaff({\n page: 1,\n pageSize: 999,\n });\n\n this.purchase_list = data.data;\n },\n // 选择商品goodData的数据\n selMoreGoods(val) {\n const row = val.map((item) => {\n return {\n goodsId: item.basicGoodsId,\n goodsCode: item.goodsCode,\n goodsName: item.goodsName,\n unitName: item.unitName,\n skuName: item.skuName,\n skuId: item.skuId,\n purchaseNum: item.num,\n buyerNum: item.num,\n num: item.num,\n buyerUnitPrice: item.buyerUnitPrice,\n subtotalPrice: this.$NP.times(item.buyerUnitPrice, item.num),\n couponAmount: item.couponAmount,\n otherAmount: item.otherAmount,\n };\n });\n if (this.goods_list.length) {\n this.goods_list = this.$_common.unique(this.goods_list.concat(row), [\n \"goodsId\",\n \"skuId\",\n ]);\n } else {\n this.goods_list = row;\n }\n },\n // 采购人员的id\n purchaseChange(val) {\n const staff = this.purchase_list.find((item) => item.id === val);\n this.form.buyerId = staff.id;\n this.form.buyerName = staff.staffName;\n },\n // 选择仓库的id\n warehouseChange(val) {\n const warehouse = this.stock_list.find((item) => item.id === val);\n this.form.warehouseId = warehouse.id;\n this.form.warehouseName = warehouse.warehouseName;\n },\n // 合计\n getSummaries(param) {\n return this.$_common.getSummaries(param, [\"退货数量\", \"小计金额\"]);\n },\n // blurNum(index,row) {\n // if (row.returnOnNum > row.num) {\n // }\n // this.goods_list.returnOnNum = Number(num);\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</style>\n<style>\n .PurchaseReturnOrderAdd {\n background-color: #fff;\n }\n .PurchaseReturnOrderAdd .el-tabs__item {\n font-size: 16px !important;\n height: 60px !important;\n line-height: 60px !important;\n }\n .PurchaseReturnOrderAdd .is-active {\n font-weight: 700;\n color: #000;\n }\n .PurchaseReturnOrderAdd .el-tabs__nav {\n margin-left: 24px;\n }\n</style>\n"]}]}