3a5a2bb9847172102eaf31e8822451d7.json 56 KB

1
  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\\Marketing\\Promotion\\AddPromotion.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\src\\views\\Marketing\\Promotion\\AddPromotion.vue","mtime":1678954023553},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KaW1wb3J0IFVwbG9hZFFpbml1IGZyb20gIkAvY29tcG9uZW50L2NvbW1vbi9VcGxvYWRRaW5pdS52dWUiOwppbXBvcnQgQ29uZGl0aW9uU2VsR29vZHMgZnJvbSAiQC9jb21wb25lbnQvY29tbW9uL0NvbmRpdGlvblNlbEdvb2RzIjsKaW1wb3J0IFNlbGVjdFNob3AgZnJvbSAiQC9jb21wb25lbnQvZ29vZHMvU2VsZWN0U2hvcC52dWUiOwppbXBvcnQgeyBhZGRQYXVzZVNhdmUsIGRlbFBhdXNlU2F2ZSwgZ2V0UGF1c2VTYXZlIH0gZnJvbSAiQC9hcGkvY29tbW9uIjsKaW1wb3J0IHsgZ2V0Q3VzdG9tZXJTb3VyY2VMaXN0IH0gZnJvbSAiQC9hcGkvU3lzdGVtIjsKaW1wb3J0IHsgZWRpdEFjdGl2aXR5LCBhZGRBY3Rpdml0eSwgZ2V0SW5mb0FjdGl2aXR5IH0gZnJvbSAiQC9hcGkvTWFya2V0IjsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICJBZGRQcm9tb3Rpb24iLAogIGNvbXBvbmVudHM6IHsKICAgIFNlbGVjdFNob3AsCiAgICBVcGxvYWRRaW5pdSwKICAgIENvbmRpdGlvblNlbEdvb2RzCiAgfSwKCiAgZGF0YSgpIHsKICAgIGNvbnN0IGN1c3RvbWVyUmFuZ2VWYWlsID0gKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgPT4gewogICAgICBpZiAoIXRoaXMuYWRkX2Zvcm0uY3VzdG9tZXJSYW5nZSkgewogICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcigi6K+36YCJ5oup5a6i5oi357G75Z6LIikpOwogICAgICB9IGVsc2UgaWYgKHRoaXMuYWRkX2Zvcm0uY3VzdG9tZXJSYW5nZSA9PT0gNCAmJiAhdGhpcy5hZGRfZm9ybS5jdXN0b21lclNvdXJjZUlkLmxlbmd0aCkgewogICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcigi6K+36YCJ5oup5a6i5oi357G75Z6LIikpOwogICAgICB9IGVsc2UgewogICAgICAgIGNhbGxiYWNrKCk7CiAgICAgIH0KICAgIH07CgogICAgcmV0dXJuIHsKICAgICAgc2hvd19nb29kczogZmFsc2UsCiAgICAgIHNwZWNfY2hlY2s6IFtdLAogICAgICBnb29kc19pbmRleDogMCwKICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgIGRlbF9nb29kc19pZDogW10sCiAgICAgIGFjdGl2aXR5SWQ6IDAsCiAgICAgIGFjdGl2ZU5hbWU6ICJmaXJzdCIsCiAgICAgIHNob3dfc2hvcDogZmFsc2UsCiAgICAgIGdvb2RzX3Nob3c6IGZhbHNlLAogICAgICB1c2VyQ2VudGVySWQ6ICIiLAogICAgICBhZGRfcnVsZXM6IHsKICAgICAgICBhY3Rpdml0eVR5cGU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLmtLvliqjnsbvlnovkuI3og73kuLrnqboiCiAgICAgICAgfV0sCiAgICAgICAgdGl0bGU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLmtLvliqjmoIfpopjkuI3og73kuLrnqboiCiAgICAgICAgfV0sCiAgICAgICAgaW1hZ2VzOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi5rS75Yqo5Zu+54mH5LiN6IO95Li656m6IgogICAgICAgIH1dLAogICAgICAgIGVuYWJsZVN0YXR1czogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuivt+mAieaLqeaYr+WQpuS4iuaetiIKICAgICAgICB9XSwKICAgICAgICAvLyByZW1hcms6IFt7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAn5YaF6YOo5rKf6YCa5LiN6IO95Li656m6JyB9XSwKICAgICAgICAvLyBzb3J0OiBbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ+aOkuW6j+WAvOS4jeiDveS4uuepuicgfV0sCiAgICAgICAgLy8gZGVzY3JpYmU6IFt7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAn5rS75Yqo5o+P6L+w5LiN6IO95Li656m6JyB9XSwKICAgICAgICBjdXN0b21lclNvdXJjZUlkOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICB2YWxpZGF0b3I6IGN1c3RvbWVyUmFuZ2VWYWlsLAogICAgICAgICAgdHJpZ2dlcjogImNoYW5nZSIKICAgICAgICB9XSwKICAgICAgICBhY3Rpdml0eUdvb2RzOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICB0eXBlOiAiYXJyYXkiLAogICAgICAgICAgbWVzc2FnZTogIuivt+mAieaLqeS/g+mUgOWVhuWTgSIsCiAgICAgICAgICB0cmlnZ2VyOiAiY2hhbmdlIgogICAgICAgIH1dLAogICAgICAgIHVzZVNob3A6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgICAgICBtZXNzYWdlOiAi6K+36YCJ5oup5L2/55So6IyD5Zu0IiwKICAgICAgICAgIHRyaWdnZXI6ICJjaGFuZ2UiCiAgICAgICAgfV0sCiAgICAgICAgZW5kVGltZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuivt+mAieaLqea0u+WKqOaXtumXtCIsCiAgICAgICAgICB0cmlnZ2VyOiAiY2hhbmdlIgogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIGN1c3RvbWVyVHlwZTogW10sCiAgICAgIGNoZWNrQWxsOiBmYWxzZSwKICAgICAgY2hlY2tlZGN1c3RvbWVyX3R5cGU6IFtdLAogICAgICBpc0luZGV0ZXJtaW5hdGU6IGZhbHNlLAogICAgICB0aW1lOiAiIiwKICAgICAgYWRkX2Zvcm06IHsKICAgICAgICBhY3Rpdml0eVR5cGU6IDIwLAogICAgICAgIHRpdGxlOiAiIiwKICAgICAgICBzdGFydFRpbWU6ICIiLAogICAgICAgIGVuZFRpbWU6ICIiLAogICAgICAgIGltYWdlczogW10sCiAgICAgICAgZW5hYmxlU3RhdHVzOiA1LAogICAgICAgIHVzZVNob3A6IFtdLAogICAgICAgIGN1c3RvbWVyUmFuZ2U6IDUsCiAgICAgICAgY3VzdG9tZXJTb3VyY2VJZDogW10sCiAgICAgICAgZGVzY3JpYmU6ICIiLAogICAgICAgIHJlbWFyazogIiIsCiAgICAgICAgYWN0aXZpdHlHb29kczogW3sKICAgICAgICAgIGdvb2RzSWQ6ICIiLAogICAgICAgICAgc2t1SWQ6ICIiLAogICAgICAgICAgc2t1TmFtZTogIiIsCiAgICAgICAgICB1bml0TmFtZTogIiIsCiAgICAgICAgICB0aXRsZTogIiIsCiAgICAgICAgICBnb29kc0NvZGU6ICIiLAogICAgICAgICAgY2F0ZWdvcnlOYW1lOiAiIiwKICAgICAgICAgIGJhc2ljR29vZHNJZDogIiIsCiAgICAgICAgICBzaG9wSWQ6ICIiLAogICAgICAgICAgc2FsZVByaWNlOiAiIiwKICAgICAgICAgIHByaWNlOiAiIiwKICAgICAgICAgIGFjdGl2aXR5TnVtOiAiIiwKICAgICAgICAgIGxpbWl0TnVtOiAiIgogICAgICAgIH1dLAogICAgICAgIGlzTXV0ZXg6IDQKICAgICAgfSwKICAgICAgaW1nX2xpc3Q6IFtdLAogICAgICBzdGF0dXNfbGlzdDogWy8vIHsKICAgICAgLy8gICBsYWJlbDogJ+WVhuWTgeeJueS7tycsCiAgICAgIC8vICAgdmFsdWU6IDEwCiAgICAgIC8vIH0sCiAgICAgIHsKICAgICAgICBsYWJlbDogIuWVhuWTgeenkuadgCIsCiAgICAgICAgdmFsdWU6IDIwCiAgICAgIH1dLAogICAgICB1c2VyX2NlbnRlcl9pZDogMCwKICAgICAgcGFnZU5hbWU6ICIiCiAgICB9OwogIH0sCgogIGNyZWF0ZWQoKSB7CiAgICB0aGlzLnBhZ2VOYW1lID0gdGhpcy4kcm91dGUubmFtZTsKCiAgICBpZiAodGhpcy4kcm91dGUucGFyYW1zLmlkKSB7CiAgICAgIHRoaXMuYWN0aXZpdHlJZCA9IHRoaXMuJHJvdXRlLnBhcmFtcy5pZDsKICAgICAgdGhpcy5nZXRJbmZvQWN0aXZpdHkoKTsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuZ2V0UGF1c2VTYXZlKCk7CiAgICB9CgogICAgdGhpcy5nZXRBbGxDdXN0b21lclNvdXJjZSgpOwogIH0sCgogIG1ldGhvZHM6IHsKICAgIGdldEFsbFNob3AobGlzdCkgewogICAgICBpZiAoIXRoaXMuYWN0aXZpdHlJZCkgewogICAgICAgIHRoaXMuYWRkX2Zvcm0udXNlU2hvcCA9IGxpc3QubWFwKGl0ZW0gPT4gewogICAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCgogICAgc2VsR29vZHMobGlzdCkgewogICAgICBjb25zb2xlLmxvZyhsaXN0KTsKICAgICAgbGV0IHRhcmdldCA9IHRoaXMuJF9jb21tb24uZGVlcENsb25lKHRoaXMuYWRkX2Zvcm0uYWN0aXZpdHlHb29kcyk7CiAgICAgIGNvbnN0IGdvb2RzRCA9IGxpc3QubWFwKGl0ZW0gPT4gewogICAgICAgIGxldCBzcGVjR3JvcE5hbWUgPSBpdGVtLnNwZWNHcm91cC5tYXAoaXRlbVMgPT4gewogICAgICAgICAgcmV0dXJuIGl0ZW1TLnNwZWNWYWx1ZU5hbWU7CiAgICAgICAgfSkuam9pbigiXyIpOwogICAgICAgIHJldHVybiB7CiAgICAgICAgICBpbnZlbnRvcnk6IGl0ZW0uaW52ZW50b3J5IC0gMCwKICAgICAgICAgIGdvb2RzSWQ6IGl0ZW0uaWQsCiAgICAgICAgICBza3VJZDogaXRlbS5za3VJZCwKICAgICAgICAgIHNrdU5hbWU6IHNwZWNHcm9wTmFtZSwKICAgICAgICAgIHVuaXROYW1lOiBpdGVtLnVuaXROYW1lLAogICAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUsCiAgICAgICAgICBnb29kc0NvZGU6IGl0ZW0uY29kZSwKICAgICAgICAgIGNhdGVnb3J5TmFtZTogaXRlbS5jYXRlZ29yeU5hbWUsCiAgICAgICAgICBiYXNpY0dvb2RzSWQ6IGl0ZW0uYmFzaWNHb29kc0lkLAogICAgICAgICAgc2hvcElkOiBpdGVtLnNob3BJZCwKICAgICAgICAgIHNhbGVQcmljZTogaXRlbS5zYWxlUHJpY2UsCiAgICAgICAgICBwcmljZTogIiIsCiAgICAgICAgICBhY3Rpdml0eU51bTogIiIsCiAgICAgICAgICBsaW1pdE51bTogIiIsCiAgICAgICAgICBpc0Rpc3RyaWJ1dGlvbjogaXRlbS5pc0Rpc3RyaWJ1dGlvbgogICAgICAgIH07CiAgICAgIH0pOwogICAgICBnb29kc0QuZm9yRWFjaChpdGVtID0+IHsKICAgICAgICBjb25zdCB0YXJnZXREID0gdGFyZ2V0LmZpbmQoaXRlbUcgPT4gaXRlbUcuc2t1SWQgPT09IGl0ZW0uc2t1SWQpOwoKICAgICAgICBpZiAoIXRhcmdldEQpIHsKICAgICAgICAgIHRhcmdldC5wdXNoKGl0ZW0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHRoaXMuYWRkX2Zvcm0uYWN0aXZpdHlHb29kcyA9IHRhcmdldDsKICAgICAgY29uc29sZS5sb2codGhpcy5hZGRfZm9ybS5hY3Rpdml0eUdvb2RzKTsKICAgIH0sCgogICAgYWRkTGlzdEdvb2RzKCkgewogICAgICB0aGlzLmFkZF9mb3JtLmFjdGl2aXR5R29vZHMucHVzaCh7CiAgICAgICAgZ29vZHNJZDogIiIsCiAgICAgICAgc2t1SWQ6ICIiLAogICAgICAgIHNrdU5hbWU6ICIiLAogICAgICAgIHVuaXROYW1lOiAiIiwKICAgICAgICB0aXRsZTogIiIsCiAgICAgICAgZ29vZHNDb2RlOiAiIiwKICAgICAgICBjYXRlZ29yeU5hbWU6ICIiLAogICAgICAgIGJhc2ljR29vZHNJZDogIiIsCiAgICAgICAgc2hvcElkOiAiIiwKICAgICAgICBzYWxlUHJpY2U6ICIiLAogICAgICAgIHByaWNlOiAiIiwKICAgICAgICBhY3Rpdml0eU51bTogIiIsCiAgICAgICAgbGltaXROdW06ICIiCiAgICAgIH0pOwogICAgfSwKCiAgICBzcGVjU2VsQ29uZmlybShwYXJhbXMpIHsKICAgICAgbGV0IHRhcmdldCA9IHRoaXMuJF9jb21tb24uZGVlcENsb25lKHRoaXMuYWRkX2Zvcm0uYWN0aXZpdHlHb29kcyk7CiAgICAgIGNvbnN0IGdvb2RzRCA9IHBhcmFtcy5nb29kc0QubWFwKGl0ZW0gPT4gewogICAgICAgIHJldHVybiB7CiAgICAgICAgICBpbnZlbnRvcnk6IHBhcmFtcy5ub3dfZ29vZHNfZGF0YS5pbnZlbnRvclRvdGFsIC0gMCwKICAgICAgICAgIGdvb2RzSWQ6IHBhcmFtcy5ub3dfZ29vZHNfZGF0YS5pZCwKICAgICAgICAgIHNrdUlkOiBpdGVtLnNrdUlkLAogICAgICAgICAgc2t1TmFtZTogaXRlbS5zcGVjLnNwZWNHcm9wTmFtZSwKICAgICAgICAgIHVuaXROYW1lOiBpdGVtLnNwZWMudW5pdE5hbWUsCiAgICAgICAgICB0aXRsZTogcGFyYW1zLm5vd19nb29kc19kYXRhLnRpdGxlLAogICAgICAgICAgZ29vZHNDb2RlOiBwYXJhbXMubm93X2dvb2RzX2RhdGEuY29kZSwKICAgICAgICAgIGNhdGVnb3J5TmFtZTogcGFyYW1zLm5vd19nb29kc19kYXRhLmNhdGVnb3J5TmFtZSwKICAgICAgICAgIGJhc2ljR29vZHNJZDogcGFyYW1zLm5vd19nb29kc19kYXRhLmJhc2ljR29vZHNJZCwKICAgICAgICAgIHNob3BJZDogcGFyYW1zLm5vd19nb29kc19kYXRhLnNob3BJZCwKICAgICAgICAgIHNhbGVQcmljZTogaXRlbS5zcGVjLnNhbGVQcmljZSwKICAgICAgICAgIHByaWNlOiAiIiwKICAgICAgICAgIGFjdGl2aXR5TnVtOiAiIiwKICAgICAgICAgIGxpbWl0TnVtOiAiIgogICAgICAgIH07CiAgICAgIH0pOwoKICAgICAgaWYgKCF0YXJnZXRbdGhpcy5nb29kc19pbmRleF0uc2t1SWQpIHsKICAgICAgICB0YXJnZXQuc3BsaWNlKHRoaXMuZ29vZHNfaW5kZXgsIDEpOwogICAgICB9CgogICAgICBnb29kc0QuZm9yRWFjaChpdGVtID0+IHsKICAgICAgICBjb25zdCB0YXJnZXREID0gdGFyZ2V0LmZpbmQoaXRlbUcgPT4gaXRlbUcuc2t1SWQgPT09IGl0ZW0uc2t1SWQpOwoKICAgICAgICBpZiAoIXRhcmdldEQpIHsKICAgICAgICAgIHRhcmdldC5wdXNoKGl0ZW0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHRoaXMuYWRkX2Zvcm0uYWN0aXZpdHlHb29kcyA9IHRhcmdldDsKICAgIH0sCgogICAgZ29vZHNWaXNpYmxlQ2hhbmdlKHZpc2libGUsIGluZGV4KSB7CiAgICAgIGlmICh2aXNpYmxlKSB7CiAgICAgICAgdGhpcy5nb29kc19pbmRleCA9IGluZGV4OwogICAgICB9CiAgICB9LAoKICAgIC8vIOaaguWtmAogICAgYXN5bmMgYWRkUGF1c2VTYXZlKCkgewogICAgICBjb25zdCB1c2VTaG9wID0gdGhpcy5hZGRfZm9ybS51c2VTaG9wLmxlbmd0aCA+IDAgPyB0aGlzLmFkZF9mb3JtLnVzZVNob3Auam9pbigiLCIpIDogMDsKICAgICAgY29uc3QgY3VzdG9tZXJTb3VyY2VJZCA9IHRoaXMuYWRkX2Zvcm0uY3VzdG9tZXJTb3VyY2VJZC5sZW5ndGggPiAwID8gdGhpcy5hZGRfZm9ybS5jdXN0b21lclNvdXJjZUlkLmpvaW4oIiwiKSA6IDA7CiAgICAgIGNvbnN0IG9iaiA9IHsKICAgICAgICBhY3Rpdml0eVR5cGU6IHRoaXMuYWRkX2Zvcm0uYWN0aXZpdHlUeXBlLAogICAgICAgIHRpdGxlOiB0aGlzLmFkZF9mb3JtLnRpdGxlLAogICAgICAgIHN0YXJ0VGltZTogdGhpcy5hZGRfZm9ybS5zdGFydFRpbWUsCiAgICAgICAgZW5kVGltZTogdGhpcy5hZGRfZm9ybS5lbmRUaW1lLAogICAgICAgIGltYWdlczogdGhpcy5hZGRfZm9ybS5pbWFnZXMsCiAgICAgICAgZW5hYmxlU3RhdHVzOiB0aGlzLmFkZF9mb3JtLmVuYWJsZVN0YXR1cywKICAgICAgICB1c2VTaG9wOiB1c2VTaG9wLAogICAgICAgIGN1c3RvbWVyUmFuZ2U6IHRoaXMuYWRkX2Zvcm0uY3VzdG9tZXJSYW5nZSwKICAgICAgICBkZXNjcmliZTogdGhpcy5hZGRfZm9ybS5kZXNjcmliZSwKICAgICAgICByZW1hcms6IHRoaXMuYWRkX2Zvcm0ucmVtYXJrLAogICAgICAgIGN1c3RvbWVyU291cmNlSWQ6IGN1c3RvbWVyU291cmNlSWQsCiAgICAgICAgYWN0aXZpdHlHb29kczogdGhpcy5hZGRfZm9ybS5hY3Rpdml0eUdvb2RzLAogICAgICAgIGlzTXV0ZXg6IHRoaXMuYWRkX2Zvcm0uaXNNdXRleAogICAgICB9OwogICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICBjb25zdCBkYXRhID0gYXdhaXQgYWRkUGF1c2VTYXZlKHsKICAgICAgICBrZXk6IHRoaXMucGFnZU5hbWUsCiAgICAgICAgZGF0YTogb2JqCiAgICAgIH0pOwogICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgdHlwZTogInN1Y2Nlc3MiLAogICAgICAgIG1lc3NhZ2U6ICLmmoLlrZjmiJDlip8iCiAgICAgIH0pOwogICAgICB0aGlzLiRjbG9zZUN1cnJlbnRHb0VkaXQoIi9NYXJrZXRpbmcvUHJvbW90aW9uL1Byb21vdGlvbkxpc3QiKTsKICAgIH0sCgogICAgLy8g5riF6Zmk5pqC5a2YCiAgICBhc3luYyBkZWxQYXVzZVNhdmUodHlwZSkgewogICAgICBjb25zdCBkYXRhID0gZGVsUGF1c2VTYXZlKHsKICAgICAgICBrZXk6IHRoaXMucGFnZU5hbWUKICAgICAgfSk7CgogICAgICBpZiAodHlwZSkgewogICAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgdHlwZTogInN1Y2Nlc3MiLAogICAgICAgICAgbWVzc2FnZTogIua4hemZpOaaguWtmOaIkOWKnyIKICAgICAgICB9KTsKICAgICAgICB0aGlzLiRjbG9zZUN1cnJlbnRHb0VkaXQoIi9NYXJrZXRpbmcvUHJvbW90aW9uL0FkZFByb21vdGlvbiIpOwogICAgICB9CiAgICB9LAoKICAgIC8vIOiOt+WPluaaguWtmOS/oeaBrwogICAgYXN5bmMgZ2V0UGF1c2VTYXZlKCkgewogICAgICBjb25zdCB7CiAgICAgICAgZGF0YQogICAgICB9ID0gYXdhaXQgZ2V0UGF1c2VTYXZlKHsKICAgICAgICBrZXk6IHRoaXMucGFnZU5hbWUKICAgICAgfSk7CiAgICAgIGlmIChKU09OLnN0cmluZ2lmeShkYXRhKSA9PT0gInt9IikgcmV0dXJuOwogICAgICB0aGlzLmFkZF9mb3JtID0gZGF0YTsKICAgICAgdGhpcy5pbWdfbGlzdCA9IGRhdGEuaW1hZ2VzLm1hcChpdGVtID0+IHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgbmFtZTogIiIsCiAgICAgICAgICB1cmw6IGl0ZW0KICAgICAgICB9OwogICAgICB9KTsKCiAgICAgIGlmICh0aGlzLnRpbWUpIHsKICAgICAgICB0aGlzLnRpbWUgPSBbZGF0YS5zdGFydFRpbWUgKiAxMDAwLCBkYXRhLmVuZFRpbWUgKiAxMDAwXTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLnRpbWUgPSBbXTsKICAgICAgfQoKICAgICAgdGhpcy5hZGRfZm9ybS51c2VTaG9wID0gZGF0YS51c2VTaG9wID8gZGF0YS51c2VTaG9wLnNwbGl0KCIsIikubWFwKGl0ZW0gPT4gewogICAgICAgIHJldHVybiBwYXJzZUludChpdGVtKTsKICAgICAgfSkgOiBbXTsKICAgICAgdGhpcy5hZGRfZm9ybS5jdXN0b21lclNvdXJjZUlkID0gZGF0YS5jdXN0b21lclNvdXJjZUlkID8gZGF0YS5jdXN0b21lclNvdXJjZUlkLnNwbGl0KCIsIikubWFwKGl0ZW0gPT4gewogICAgICAgIHJldHVybiBwYXJzZUludChpdGVtKTsKICAgICAgfSkgOiBbXTsKICAgICAgdGhpcy5hZGRfZm9ybS5hY3Rpdml0eUdvb2RzID0gZGF0YS5hY3Rpdml0eUdvb2RzLm1hcChpdGVtID0+IHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgaWQ6IGl0ZW0uaWQsCiAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZSwKICAgICAgICAgIHNob3BJZDogaXRlbS5zaG9wSWQsCiAgICAgICAgICBnb29kc0NvZGU6IGl0ZW0uZ29vZHNDb2RlLAogICAgICAgICAgZ29vZHNJZDogaXRlbS5nb29kc0lkLAogICAgICAgICAgc2t1SWQ6IGl0ZW0uc2t1SWQsCiAgICAgICAgICB1bml0TmFtZTogaXRlbS51bml0TmFtZSwKICAgICAgICAgIGJhc2ljR29vZHNJZDogaXRlbS5iYXNpY0dvb2RzSWQsCiAgICAgICAgICBzYWxlUHJpY2U6IGl0ZW0uc2FsZVByaWNlLAogICAgICAgICAgcHJpY2U6IGl0ZW0ucHJpY2UsCiAgICAgICAgICBhY3Rpdml0eU51bTogaXRlbS5hY3Rpdml0eU51bSwKICAgICAgICAgIGxpbWl0TnVtOiBpdGVtLmxpbWl0TnVtCiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9LAoKICAgIC8vIOiOt+WPluivpuaDhQogICAgYXN5bmMgZ2V0SW5mb0FjdGl2aXR5KCkgewogICAgICBjb25zdCB7CiAgICAgICAgZGF0YQogICAgICB9ID0gYXdhaXQgZ2V0SW5mb0FjdGl2aXR5KHRoaXMuYWN0aXZpdHlJZCk7CiAgICAgIHRoaXMuYWRkX2Zvcm0gPSBkYXRhOwogICAgICB0aGlzLmltZ19saXN0ID0gZGF0YS5pbWFnZXMubWFwKGl0ZW0gPT4gewogICAgICAgIHJldHVybiB7CiAgICAgICAgICBuYW1lOiAiIiwKICAgICAgICAgIHVybDogaXRlbQogICAgICAgIH07CiAgICAgIH0pOwogICAgICB0aGlzLnRpbWUgPSBbZGF0YS5zdGFydFRpbWUgKiAxMDAwLCBkYXRhLmVuZFRpbWUgKiAxMDAwXTsKICAgICAgdGhpcy5hZGRfZm9ybS51c2VTaG9wID0gZGF0YS51c2VTaG9wID8gZGF0YS51c2VTaG9wLnNwbGl0KCIsIikubWFwKGl0ZW0gPT4gewogICAgICAgIHJldHVybiBwYXJzZUludChpdGVtKTsKICAgICAgfSkgOiBbXTsKICAgICAgdGhpcy5hZGRfZm9ybS5jdXN0b21lclNvdXJjZUlkID0gZGF0YS5jdXN0b21lclNvdXJjZUlkID8gZGF0YS5jdXN0b21lclNvdXJjZUlkLnNwbGl0KCIsIikubWFwKGl0ZW0gPT4gewogICAgICAgIHJldHVybiBwYXJzZUludChpdGVtKTsKICAgICAgfSkgOiBbXTsKICAgICAgdGhpcy5hZGRfZm9ybS5hY3Rpdml0eUdvb2RzID0gZGF0YS5hY3Rpdml0eUdvb2RzLm1hcChpdGVtID0+IHsKICAgICAgICBsZXQgc3BlY0dyb3BOYW1lID0gaXRlbS5zcGVjR3JvdXAubWFwKGl0ZW1TID0+IHsKICAgICAgICAgIHJldHVybiBpdGVtUy5zcGVjVmFsdWVOYW1lOwogICAgICAgIH0pLmpvaW4oIl8iKTsKICAgICAgICByZXR1cm4gewogICAgICAgICAgaWQ6IGl0ZW0uaWQsCiAgICAgICAgICB0aXRsZTogaXRlbS5nb29kc05hbWUsCiAgICAgICAgICBzaG9wSWQ6IGl0ZW0uc2hvcElkLAogICAgICAgICAgZ29vZHNDb2RlOiBpdGVtLmdvb2RzQ29kZSwKICAgICAgICAgIGdvb2RzSWQ6IGl0ZW0uZ29vZHNJZCwKICAgICAgICAgIHNrdUlkOiBpdGVtLnNrdUlkLAogICAgICAgICAgdW5pdE5hbWU6IGl0ZW0udW5pdE5hbWUsCiAgICAgICAgICBiYXNpY0dvb2RzSWQ6IGl0ZW0uYmFzaWNHb29kc0lkLAogICAgICAgICAgc2FsZVByaWNlOiBpdGVtLnNhbGVQcmljZSwKICAgICAgICAgIHByaWNlOiBpdGVtLnByaWNlLAogICAgICAgICAgYWN0aXZpdHlOdW06IGl0ZW0uYWN0aXZpdHlOdW0sCiAgICAgICAgICBsaW1pdE51bTogaXRlbS5saW1pdE51bSwKICAgICAgICAgIGludmVudG9yeTogaXRlbS5pbnZlbnRvcnkgLSAwLAogICAgICAgICAgc2t1TmFtZTogc3BlY0dyb3BOYW1lCiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9LAoKICAgIC8vICDliKDpmaTpgInmi6nnmoTllYblk4EKICAgIGRlbGV0ZVJvd0dvb2RzKGluZGV4LCByb3cpIHsKICAgICAgaWYgKHRoaXMuYWRkX2Zvcm0uYWN0aXZpdHlHb29kcy5sZW5ndGggPT09IDEpIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoIuiHs+WwkeS/neeVmeS4gOadoeWVhuWTgSIpOwogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgaWYgKHJvdy5pZCkgewogICAgICAgIHRoaXMuZGVsX2dvb2RzX2lkLnB1c2gocm93LmlkKTsKICAgICAgfQoKICAgICAgdGhpcy5hZGRfZm9ybS5hY3Rpdml0eUdvb2RzLnNwbGljZShpbmRleCwgMSk7CiAgICB9LAoKICAgIENoZWNrQWxsQ2hhbmdlKHZhbCkgewogICAgICB0aGlzLmFkZF9mb3JtLmN1c3RvbWVyU291cmNlSWQgPSB2YWwgPyB0aGlzLmN1c3RvbWVyVHlwZS5tYXAoaXRlbSA9PiBpdGVtLmlkKSA6IFtdOwogICAgICB0aGlzLmlzSW5kZXRlcm1pbmF0ZSA9IGZhbHNlOwogICAgfSwKCiAgICBjdXN0b21lclR5cGVDaGFuZ2UodmFsdWUpIHsKICAgICAgbGV0IGNoZWNrZWRDb3VudCA9IHZhbHVlLmxlbmd0aDsKICAgICAgdGhpcy5jaGVja0FsbCA9IGNoZWNrZWRDb3VudCA9PT0gdGhpcy5jdXN0b21lclR5cGUubGVuZ3RoOwogICAgICB0aGlzLmlzSW5kZXRlcm1pbmF0ZSA9IGNoZWNrZWRDb3VudCA+IDAgJiYgY2hlY2tlZENvdW50IDwgdGhpcy5jdXN0b21lclR5cGUubGVuZ3RoOwogICAgfSwKCiAgICAvLyAg5pe26Ze0CiAgICB0aW1lQ2hhbmdlKHZhbCkgewogICAgICB0aGlzLmFkZF9mb3JtLnN0YXJ0VGltZSA9IHZhbFswXSAvIDEwMDA7CiAgICAgIHRoaXMuYWRkX2Zvcm0uZW5kVGltZSA9IHRoaXMuJE5QLnBsdXModmFsWzFdIC8gMTAwMCwgODYzOTkpOwogICAgfSwKCiAgICAvLyAg5rS75Yqo5Zu+54mHCiAgICB1cGxvYWRTdWNjZXNzKHZhbCwgcmVzLCBmaWxlLCBmaWxlTGlzdCkgewogICAgICB0aGlzLmFkZF9mb3JtLmltYWdlcyA9IGZpbGVMaXN0Lm1hcChpdGVtID0+IHsKICAgICAgICByZXR1cm4gaXRlbS5jb250ZW50OwogICAgICB9KTsKICAgICAgdGhpcy5pbWdfbGlzdCA9IGZpbGVMaXN0OwogICAgfSwKCiAgICAvLyAg6YCJ5oup55qE5a6i5oi357G75Z6LCiAgICAvLyDlrqLmiLfnsbvlnosKICAgIGFzeW5jIGdldEFsbEN1c3RvbWVyU291cmNlKCkgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0Q3VzdG9tZXJTb3VyY2VMaXN0KCk7CiAgICAgIHRoaXMuY3VzdG9tZXJUeXBlID0gZGF0YS5kYXRhOwogICAgfSwKCiAgICBMb2NhdGlvbkZyb20odmFsKSB7CiAgICAgIGlmICh2YWwgJiYgdmFsLmxlbmd0aCkgewogICAgICAgIHRoaXMuYWRkX2Zvcm0uc3RhcnQgPSB2YWxbMF0gLyAxMDAwOwogICAgICAgIHRoaXMuYWRkX2Zvcm0uSXNzdWVTdGFydCA9IHZhbFswXSAvIDEwMDA7CiAgICAgICAgdGhpcy5hZGRfZm9ybS5lbmQgPSB0aGlzLiROUC5wbHVzKHZhbFsxXSAvIDEwMDAsIDg2Mzk5KTsKICAgICAgICB0aGlzLmFkZF9mb3JtLklzc3VlRW5kID0gdGhpcy4kTlAucGx1cyh2YWxbMV0gLyAxMDAwLCA4NjM5OSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5hZGRfZm9ybS5zdGFydCA9ICIiOwogICAgICAgIHRoaXMuYWRkX2Zvcm0uSXNzdWVTdGFydCA9ICIiOwogICAgICAgIHRoaXMuYWRkX2Zvcm0uZW5kID0gIiI7CiAgICAgICAgdGhpcy5hZGRfZm9ybS5Jc3N1ZUVuZCA9ICIiOwogICAgICB9CiAgICB9LAoKICAgIC8vICAgIOaPkOS6pOS/neWtmAogICAgYXN5bmMgc3ViRGF0YSgpIHsKICAgICAgdGhpcy4kcmVmcy5hZGRfZm9ybS52YWxpZGF0ZShhc3luYyB2YWxpZCA9PiB7CiAgICAgICAgaWYgKHZhbGlkKSB7CiAgICAgICAgICBjb25zdCBnb29kc0xpc3QgPSB0aGlzLiRfY29tbW9uLmRlZXBDbG9uZSh0aGlzLmFkZF9mb3JtLmFjdGl2aXR5R29vZHMpLmZpbHRlcihpdGVtID0+IGl0ZW0uZ29vZHNJZCk7CgogICAgICAgICAgaWYgKCFnb29kc0xpc3QubGVuZ3RoKSB7CiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygi6K+36YCJ5oup5L+D6ZSA5ZWG5ZOBIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KCiAgICAgICAgICBjb25zdCB1c2VTaG9wID0gdGhpcy5hZGRfZm9ybS51c2VTaG9wLmxlbmd0aCA+IDAgPyB0aGlzLmFkZF9mb3JtLnVzZVNob3Auam9pbigiLCIpIDogMDsKICAgICAgICAgIGNvbnN0IGN1c3RvbWVyU291cmNlSWQgPSB0aGlzLmFkZF9mb3JtLmN1c3RvbWVyU291cmNlSWQubGVuZ3RoID4gMCA/IHRoaXMuYWRkX2Zvcm0uY3VzdG9tZXJTb3VyY2VJZC5qb2luKCIsIikgOiAwOwogICAgICAgICAgY29uc3QgaXNUcnVlUHJpY2UgPSBnb29kc0xpc3QuZXZlcnkoaXRlbSA9PiB7CiAgICAgICAgICAgIHJldHVybiBpdGVtLnByaWNlID4gMDsKICAgICAgICAgIH0pOwoKICAgICAgICAgIGlmICghaXNUcnVlUHJpY2UpIHsKICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLor7fmgqjovpPlhaXmraPnoa7nmoTkv4PplIDku7fmoLwiKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQoKICAgICAgICAgIGNvbnN0IGlzVHJ1ZU51bSA9IGdvb2RzTGlzdC5ldmVyeShpdGVtID0+IHsKICAgICAgICAgICAgcmV0dXJuIGl0ZW0uYWN0aXZpdHlOdW0gPiAwOwogICAgICAgICAgfSk7CgogICAgICAgICAgaWYgKCFpc1RydWVOdW0pIHsKICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLmtLvliqjmlbDph4/kuI3og73kuLowIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KCiAgICAgICAgICBjb25zdCBpc1RydWVMaW1pdE51bSA9IGdvb2RzTGlzdC5ldmVyeShpdGVtID0+IHsKICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubGltaXROdW0gPiAwOwogICAgICAgICAgfSk7CgogICAgICAgICAgaWYgKCFpc1RydWVMaW1pdE51bSkgewogICAgICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoIumZkOi0reaVsOmHj+S4jeiDveS4ujAiKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQoKICAgICAgICAgIGNvbnN0IG9iaiA9IHsKICAgICAgICAgICAgYWN0aXZpdHlUeXBlOiB0aGlzLmFkZF9mb3JtLmFjdGl2aXR5VHlwZSwKICAgICAgICAgICAgdGl0bGU6IHRoaXMuYWRkX2Zvcm0udGl0bGUsCiAgICAgICAgICAgIHN0YXJ0VGltZTogdGhpcy5hZGRfZm9ybS5zdGFydFRpbWUsCiAgICAgICAgICAgIGVuZFRpbWU6IHRoaXMuYWRkX2Zvcm0uZW5kVGltZSwKICAgICAgICAgICAgaW1hZ2VzOiB0aGlzLmFkZF9mb3JtLmltYWdlcywKICAgICAgICAgICAgZW5hYmxlU3RhdHVzOiB0aGlzLmFkZF9mb3JtLmVuYWJsZVN0YXR1cywKICAgICAgICAgICAgdXNlU2hvcDogdXNlU2hvcCwKICAgICAgICAgICAgY3VzdG9tZXJSYW5nZTogdGhpcy5hZGRfZm9ybS5jdXN0b21lclJhbmdlLAogICAgICAgICAgICBkZXNjcmliZTogdGhpcy5hZGRfZm9ybS5kZXNjcmliZSwKICAgICAgICAgICAgcmVtYXJrOiB0aGlzLmFkZF9mb3JtLnJlbWFyaywKICAgICAgICAgICAgaXNNdXRleDogdGhpcy5hZGRfZm9ybS5pc011dGV4LAogICAgICAgICAgICBjdXN0b21lclNvdXJjZUlkOiBjdXN0b21lclNvdXJjZUlkLAogICAgICAgICAgICBhY3Rpdml0eUdvb2RzOiBnb29kc0xpc3QubWFwKGl0ZW0gPT4gewogICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLnVuaXROYW1lOwogICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLmludmVudG9yeTsKICAgICAgICAgICAgICBkZWxldGUgaXRlbS5za3VOYW1lOwogICAgICAgICAgICAgIHJldHVybiBpdGVtOwogICAgICAgICAgICB9KQogICAgICAgICAgfTsKICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CgogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgbGV0IHRhcmdldCA9IHt9OwoKICAgICAgICAgICAgaWYgKHRoaXMuYWRkX2Zvcm0uYWN0aXZpdHlHb29kcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZpdHlJZCkgewogICAgICAgICAgICAgICAgb2JqLmRlbGV0ZUFycmF5ID0gdGhpcy5kZWxfZ29vZHNfaWQ7CiAgICAgICAgICAgICAgICB0YXJnZXQgPSBhd2FpdCBlZGl0QWN0aXZpdHkodGhpcy5hY3Rpdml0eUlkLCBvYmopOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0YXJnZXQgPSBhd2FpdCBhZGRBY3Rpdml0eShvYmopOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29uc3QgZGF0YSA9IHRhcmdldDsKICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgICAgIHR5cGU6ICJzdWNjZXNzIiwKICAgICAgICAgICAgICBtZXNzYWdlOiAi5o+Q5Lqk5oiQ5YqfIgogICAgICAgICAgICB9KTsKICAgICAgICAgICAgYXdhaXQgdGhpcy5kZWxQYXVzZVNhdmUoKTsKICAgICAgICAgICAgdGhpcy4kY2xvc2VDdXJyZW50R29FZGl0KCIvTWFya2V0aW5nL1Byb21vdGlvbi9Qcm9tb3Rpb25MaXN0Iik7CiAgICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KCiAgfQp9Ow=="},{"version":3,"mappings":"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AYAC,uBAZA;UAaAgB,6BAbA;UAcAzB;QAdA;MAgBA,CAtBA;IAuBA,CAxPA;;IAyPA;IACAmC;MACA;QACA;QACA;MACA;;MACA;QACA;MACA;;MACA;IACA,CAnQA;;IAoQAC;MACA,uCACA,sCADA,GAEA,EAFA;MAGA;IACA,CAzQA;;IA0QAC;MACA;MACA;MACA,uBACAC,2DADA;IAEA,CA/QA;;IAgRA;IACAC;MACA;MACA;IACA,CApRA;;IAqRA;IACAC;MACA;QACA;MACA,CAFA;MAGA;IACA,CA3RA;;IA4RA;IACA;IACA;MACA;MACA;IACA,CAjSA;;IAkSAC;MACA;QACA;QACA;QACA;QACA;MACA,CALA,MAKA;QACA;QACA;QACA;QACA;MACA;IACA,CA9SA;;IA+SA;IACA;MACA;QACA;UACA,gCACAC,SADA,CACA,2BADA,EAEAC,MAFA,CAEAC,oBAFA;;UAGA;YACA;YACA;UACA;;UACA,gBACA,mCACA,+BADA,GAEA,CAHA;UAIA,yBACA,4CACA,wCADA,GAEA,CAHA;UAIA;YACA;UACA,CAFA;;UAGA;YACA;YACA;UACA;;UACA;YACA;UACA,CAFA;;UAIA;YACA;YACA;UACA;;UACA;YACA;UACA,CAFA;;UAIA;YACA;YACA;UACA;;UACA;YACArE,wCADA;YAEAG,0BAFA;YAGAgB,kCAHA;YAIAP,8BAJA;YAKAR,4BALA;YAMAC,wCANA;YAOAM,gBAPA;YAQAS,0CARA;YASAC,gCATA;YAUAC,4BAVA;YAWAa,8BAXA;YAYA7B,kCAZA;YAaAG;cACA;cACA;cACA;cACA;YACA,CALA;UAbA;UAqBA;;UACA;YACA;;YACA;cACA;gBACA6D;gBACAjB;cACA,CAHA,MAGA;gBACAA;cACA;YACA;;YACA;YACA;YACA;cACA3C,eADA;cAEAR;YAFA;YAIA;YACA;UACA,CAlBA,CAkBA;YACA;UACA;QACA;MACA,CApFA;IAqFA;;EAtYA;AA5HA","names":["name","components","SelectShop","UploadQiniu","ConditionSelGoods","data","callback","show_goods","spec_check","goods_index","loading","del_goods_id","activityId","activeName","show_shop","goods_show","userCenterId","add_rules","activityType","required","message","title","images","enableStatus","customerSourceId","validator","trigger","activityGoods","type","useShop","endTime","customerType","checkAll","checkedcustomer_type","isIndeterminate","time","add_form","startTime","customerRange","describe","remark","goodsId","skuId","skuName","unitName","goodsCode","categoryName","basicGoodsId","shopId","salePrice","price","activityNum","limitNum","isMutex","img_list","status_list","label","value","user_center_id","pageName","created","methods","getAllShop","selGoods","console","map","itemS","join","inventory","isDistribution","goodsD","target","addListGoods","specSelConfirm","goodsVisibleChange","key","url","id","deleteRowGoods","CheckAllChange","customerTypeChange","checkedCount","timeChange","uploadSuccess","LocationFrom","deepClone","filter","item","obj"],"sourceRoot":"src/views/Marketing/Promotion","sources":["AddPromotion.vue"],"sourcesContent":["<template>\n <ContainerTit>\n <div slot=\"headr\">\n <el-button :disabled=\"!!$route.params.id\" @click=\"delPauseSave(1)\">\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 type=\"primary\" :loading=\"loading\" @click=\"subData\">\n 提交保存\n </el-button>\n </div>\n <el-form\n ref=\"add_form\"\n :model=\"add_form\"\n :rules=\"add_rules\"\n label-width=\"100px\"\n >\n <div class=\"detail-tab-item\">\n <div class=\"detail-tab-title\">活动信息</div>\n <div class=\"detail-tab-main\">\n <el-form-item label=\"活动类型\" prop=\"activityType\">\n <el-select\n v-model=\"add_form.activityType\"\n clearable\n style=\"width: 350px\"\n placeholder=\"活动类型\"\n >\n <el-option\n v-for=\"(item, index) in status_list\"\n :key=\"index\"\n :label=\"item.label\"\n :value=\"item.value\"\n ></el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"活动标题\" prop=\"title\">\n <el-input\n v-model=\"add_form.title\"\n placeholder=\"请填写活动标题\"\n class=\"width200\"\n ></el-input>\n </el-form-item>\n <el-form-item prop=\"endTime\" label=\"活动时间\">\n <el-date-picker\n v-model=\"time\"\n type=\"daterange\"\n range-separator=\"-\"\n start-placeholder=\"开始日期\"\n end-placeholder=\"结束日期\"\n @change=\"timeChange\"\n ></el-date-picker>\n </el-form-item>\n <el-form-item label=\"活动图片\" prop=\"images\">\n <UploadQiniu :file-list=\"img_list\" @uploadSuccess=\"uploadSuccess\" />\n </el-form-item>\n <el-form-item label=\"上下架\" prop=\"enableStatus\">\n <el-radio-group v-model=\"add_form.enableStatus\">\n <el-radio :label=\"5\">上架</el-radio>\n <el-radio :label=\"4\">下架</el-radio>\n </el-radio-group>\n </el-form-item>\n <el-form-item label=\"是否互斥:\" prop=\"isMutex\">\n <el-switch\n v-model=\"add_form.isMutex\"\n :active-value=\"5\"\n :inactive-value=\"4\"\n active-text=\"是\"\n inactive-text=\"否\"\n ></el-switch>\n <el-tooltip\n effect=\"dark\"\n content=\"启用互斥,则活动不能与优惠券同时使用,否则反之\"\n placement=\"bottom\"\n >\n <i class=\"el-icon-warning\"></i>\n </el-tooltip>\n </el-form-item>\n <el-form-item label=\"使用范围\" prop=\"useShop\">\n <SelectShop\n v-model=\"add_form.useShop\"\n :multiple=\"true\"\n :enable=\"true\"\n @getAllShop=\"getAllShop\"\n />\n <el-button\n size=\"mini\"\n type=\"text\"\n @click=\"$router.push('/SystemSettings/liansuoguanli/AddShop')\"\n >\n 【新建商铺】\n </el-button>\n </el-form-item>\n <el-form-item label=\"内部沟通\" prop=\"remark\">\n <el-input v-model=\"add_form.remark\" class=\"width200\"></el-input>\n </el-form-item>\n <el-form-item label=\"活动描述\" prop=\"describe\">\n <el-input\n v-model=\"add_form.describe\"\n type=\"textarea\"\n class=\"width200\"\n ></el-input>\n </el-form-item>\n </div>\n </div>\n <div class=\"detail-tab-item\">\n <div class=\"detail-tab-title\">活动规则</div>\n <div class=\"detail-tab-main\">\n <el-form-item label=\"促销商品\" prop=\"activityGoods\">\n <el-table :data=\"add_form.activityGoods\">\n <el-table-column\n align=\"center\"\n type=\"index\"\n width=\"60\"\n ></el-table-column>\n <el-table-column\n align=\"center\"\n prop=\"title\"\n label=\"商品名称\"\n min-width=\"180\"\n >\n <template slot-scope=\"scope\">\n <ConditionSelGoods\n v-if=\"add_form.useShop.length\"\n v-model=\"scope.row.title\"\n :is-eq-master=\"false\"\n :enable-status=\"5\"\n :spec-check=\"spec_check\"\n :shop-id=\"add_form.useShop\"\n @goodsVisibleChange=\"\n goodsVisibleChange($event, scope.$index)\n \"\n @specSelConfirm=\"specSelConfirm\"\n @selGoods=\"selGoods\"\n />\n </template>\n </el-table-column>\n <el-table-column\n align=\"center\"\n prop=\"goodsCode\"\n label=\"商品编码\"\n width=\"140\"\n ></el-table-column>\n <el-table-column\n align=\"center\"\n prop=\"price\"\n label=\"促销价格\"\n min-width=\"120\"\n >\n <template slot-scope=\"scope\">\n <el-input-number\n v-model=\"scope.row.price\"\n :controls=\"false\"\n size=\"small\"\n style=\"width: 100%\"\n ></el-input-number>\n </template>\n </el-table-column>\n <el-table-column\n align=\"center\"\n prop=\"salePrice\"\n label=\"价格\"\n min-width=\"120\"\n >\n <template slot-scope=\"scope\">\n ¥{{ $_common.formatNub(scope.row.salePrice, 2) || 0 }}\n </template>\n </el-table-column>\n <el-table-column\n align=\"center\"\n prop=\"unitName\"\n label=\"单位\"\n min-width=\"80\"\n ></el-table-column>\n <el-table-column\n align=\"center\"\n prop=\"skuName\"\n label=\"属性\"\n min-width=\"120\"\n ></el-table-column>\n <el-table-column align=\"center\" label=\"活动数量\" min-width=\"120\">\n <template slot-scope=\"scope\">\n <div v-if=\"!activityId\">\n <el-input-number\n v-if=\"\n scope.row.inventory > 0 &&\n scope.row.isDistribution === 4\n \"\n v-model=\"scope.row.activityNum\"\n :controls=\"false\"\n size=\"small\"\n style=\"width: 100%\"\n :max=\"scope.row.inventory\"\n ></el-input-number>\n <el-input-number\n v-else-if=\"scope.row.isDistribution === 5\"\n v-model=\"scope.row.activityNum\"\n :controls=\"false\"\n size=\"small\"\n style=\"width: 100%\"\n ></el-input-number>\n <span v-else>库存不足</span>\n </div>\n <div v-else>\n <el-input-number\n v-if=\"!!scope.row.inventory\"\n v-model=\"scope.row.activityNum\"\n :controls=\"false\"\n size=\"small\"\n style=\"width: 100%\"\n :max=\"scope.row.inventory\"\n ></el-input-number>\n <el-input-number\n v-else\n v-model=\"scope.row.activityNum\"\n :controls=\"false\"\n size=\"small\"\n style=\"width: 100%\"\n ></el-input-number>\n </div>\n </template>\n </el-table-column>\n <el-table-column align=\"center\" label=\"限购数量\" min-width=\"120\">\n <template slot-scope=\"scope\">\n <el-input-number\n v-model=\"scope.row.limitNum\"\n :controls=\"false\"\n :precision=\"0\"\n size=\"small\"\n style=\"width: 100%\"\n ></el-input-number>\n </template>\n </el-table-column>\n <el-table-column label=\"操作\" width=\"120\">\n <template slot-scope=\"scope\">\n <el-button\n type=\"text\"\n size=\"mini\"\n @click=\"deleteRowGoods(scope.$index, scope.row)\"\n >\n 删除\n </el-button>\n <el-button type=\"text\" size=\"mini\" @click=\"addListGoods\">\n 新增\n </el-button>\n </template>\n </el-table-column>\n </el-table>\n </el-form-item>\n <el-form-item label=\"客户类型\" prop=\"customerSourceId\">\n <el-radio-group v-model=\"add_form.customerRange\">\n <el-radio :label=\"5\">全部</el-radio>\n <el-radio :label=\"4\">部分</el-radio>\n </el-radio-group>\n <div>\n <el-checkbox\n v-model=\"checkAll\"\n :disabled=\"add_form.customerRange === 5\"\n :indeterminate=\"isIndeterminate\"\n @change=\"CheckAllChange\"\n >\n 全选\n </el-checkbox>\n <div style=\"border-top: 1px solid #eee\"></div>\n <el-checkbox-group\n v-model=\"add_form.customerSourceId\"\n :disabled=\"add_form.customerRange === 5\"\n @change=\"customerTypeChange\"\n >\n <el-checkbox\n v-for=\"(item, index) in customerType\"\n :key=\"index\"\n :label=\"item.id\"\n >\n {{ item.name }}\n </el-checkbox>\n </el-checkbox-group>\n </div>\n </el-form-item>\n </div>\n </div>\n </el-form>\n </ContainerTit>\n</template>\n\n<script>\n import UploadQiniu from \"@/component/common/UploadQiniu.vue\";\n import ConditionSelGoods from \"@/component/common/ConditionSelGoods\";\n import SelectShop from \"@/component/goods/SelectShop.vue\";\n import { addPauseSave, delPauseSave, getPauseSave } from \"@/api/common\";\n import { getCustomerSourceList } from \"@/api/System\";\n import { editActivity, addActivity, getInfoActivity } from \"@/api/Market\";\n export default {\n name: \"AddPromotion\",\n components: {\n SelectShop,\n UploadQiniu,\n ConditionSelGoods,\n },\n\n data() {\n const customerRangeVail = (rule, value, callback) => {\n if (!this.add_form.customerRange) {\n callback(new Error(\"请选择客户类型\"));\n } else if (\n this.add_form.customerRange === 4 &&\n !this.add_form.customerSourceId.length\n ) {\n callback(new Error(\"请选择客户类型\"));\n } else {\n callback();\n }\n };\n return {\n show_goods: false,\n spec_check: [],\n goods_index: 0,\n loading: false,\n del_goods_id: [],\n activityId: 0,\n activeName: \"first\",\n show_shop: false,\n goods_show: false,\n userCenterId: \"\",\n add_rules: {\n activityType: [{ required: true, message: \"活动类型不能为空\" }],\n title: [{ required: true, message: \"活动标题不能为空\" }],\n images: [{ required: true, message: \"活动图片不能为空\" }],\n enableStatus: [{ required: true, message: \"请选择是否上架\" }],\n // remark: [{ required: true, message: '内部沟通不能为空' }],\n // sort: [{ required: true, message: '排序值不能为空' }],\n // describe: [{ required: true, message: '活动描述不能为空' }],\n customerSourceId: [\n { required: true, validator: customerRangeVail, trigger: \"change\" },\n ],\n activityGoods: [\n {\n required: true,\n type: \"array\",\n message: \"请选择促销商品\",\n trigger: \"change\",\n },\n ],\n useShop: [\n {\n required: true,\n type: \"array\",\n message: \"请选择使用范围\",\n trigger: \"change\",\n },\n ],\n endTime: [\n { required: true, message: \"请选择活动时间\", trigger: \"change\" },\n ],\n },\n customerType: [],\n checkAll: false,\n checkedcustomer_type: [],\n isIndeterminate: false,\n time: \"\",\n add_form: {\n activityType: 20,\n title: \"\",\n startTime: \"\",\n endTime: \"\",\n images: [],\n enableStatus: 5,\n useShop: [],\n customerRange: 5,\n customerSourceId: [],\n describe: \"\",\n remark: \"\",\n activityGoods: [\n {\n goodsId: \"\",\n skuId: \"\",\n skuName: \"\",\n unitName: \"\",\n title: \"\",\n goodsCode: \"\",\n categoryName: \"\",\n basicGoodsId: \"\",\n shopId: \"\",\n salePrice: \"\",\n price: \"\",\n activityNum: \"\",\n limitNum: \"\",\n },\n ],\n isMutex: 4,\n },\n img_list: [],\n status_list: [\n // {\n // label: '商品特价',\n // value: 10\n // },\n {\n label: \"商品秒杀\",\n value: 20,\n },\n ],\n user_center_id: 0,\n pageName: \"\",\n };\n },\n created() {\n this.pageName = this.$route.name;\n if (this.$route.params.id) {\n this.activityId = this.$route.params.id;\n this.getInfoActivity();\n } else {\n this.getPauseSave();\n }\n this.getAllCustomerSource();\n },\n methods: {\n getAllShop(list) {\n if (!this.activityId) {\n this.add_form.useShop = list.map((item) => {\n return item.id;\n });\n }\n },\n selGoods(list) {\n console.log(list);\n let target = this.$_common.deepClone(this.add_form.activityGoods);\n const goodsD = list.map((item) => {\n let specGropName = item.specGroup\n .map((itemS) => {\n return itemS.specValueName;\n })\n .join(\"_\");\n return {\n inventory: item.inventory - 0,\n goodsId: item.id,\n skuId: item.skuId,\n skuName: specGropName,\n unitName: item.unitName,\n title: item.title,\n goodsCode: item.code,\n categoryName: item.categoryName,\n basicGoodsId: item.basicGoodsId,\n shopId: item.shopId,\n salePrice: item.salePrice,\n price: \"\",\n activityNum: \"\",\n limitNum: \"\",\n isDistribution: item.isDistribution,\n };\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 this.add_form.activityGoods = target;\n console.log(this.add_form.activityGoods);\n },\n addListGoods() {\n this.add_form.activityGoods.push({\n goodsId: \"\",\n skuId: \"\",\n skuName: \"\",\n unitName: \"\",\n title: \"\",\n goodsCode: \"\",\n categoryName: \"\",\n basicGoodsId: \"\",\n shopId: \"\",\n salePrice: \"\",\n price: \"\",\n activityNum: \"\",\n limitNum: \"\",\n });\n },\n specSelConfirm(params) {\n let target = this.$_common.deepClone(this.add_form.activityGoods);\n const goodsD = params.goodsD.map((item) => {\n return {\n inventory: params.now_goods_data.inventorTotal - 0,\n goodsId: params.now_goods_data.id,\n skuId: item.skuId,\n skuName: item.spec.specGropName,\n unitName: item.spec.unitName,\n title: params.now_goods_data.title,\n goodsCode: params.now_goods_data.code,\n categoryName: params.now_goods_data.categoryName,\n basicGoodsId: params.now_goods_data.basicGoodsId,\n shopId: params.now_goods_data.shopId,\n salePrice: item.spec.salePrice,\n price: \"\",\n activityNum: \"\",\n limitNum: \"\",\n };\n });\n if (!target[this.goods_index].skuId) {\n target.splice(this.goods_index, 1);\n }\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\n this.add_form.activityGoods = target;\n },\n goodsVisibleChange(visible, index) {\n if (visible) {\n this.goods_index = index;\n }\n },\n // 暂存\n async addPauseSave() {\n const useShop =\n this.add_form.useShop.length > 0\n ? this.add_form.useShop.join(\",\")\n : 0;\n const customerSourceId =\n this.add_form.customerSourceId.length > 0\n ? this.add_form.customerSourceId.join(\",\")\n : 0;\n const obj = {\n activityType: this.add_form.activityType,\n title: this.add_form.title,\n startTime: this.add_form.startTime,\n endTime: this.add_form.endTime,\n images: this.add_form.images,\n enableStatus: this.add_form.enableStatus,\n useShop: useShop,\n customerRange: this.add_form.customerRange,\n describe: this.add_form.describe,\n remark: this.add_form.remark,\n customerSourceId: customerSourceId,\n activityGoods: this.add_form.activityGoods,\n isMutex: this.add_form.isMutex,\n };\n\n this.loading = true;\n const data = await addPauseSave({\n key: this.pageName,\n data: obj,\n });\n this.loading = false;\n\n this.$message({\n type: \"success\",\n message: \"暂存成功\",\n });\n this.$closeCurrentGoEdit(\"/Marketing/Promotion/PromotionList\");\n },\n // 清除暂存\n async delPauseSave(type) {\n const data = delPauseSave({\n key: this.pageName,\n });\n\n if (type) {\n this.$message({\n type: \"success\",\n message: \"清除暂存成功\",\n });\n this.$closeCurrentGoEdit(\"/Marketing/Promotion/AddPromotion\");\n }\n },\n // 获取暂存信息\n async getPauseSave() {\n const { data } = await getPauseSave({\n key: this.pageName,\n });\n\n if (JSON.stringify(data) === \"{}\") return;\n this.add_form = data;\n this.img_list = data.images.map((item) => {\n return {\n name: \"\",\n url: item,\n };\n });\n if (this.time) {\n this.time = [data.startTime * 1000, data.endTime * 1000];\n } else {\n this.time = [];\n }\n\n this.add_form.useShop = data.useShop\n ? data.useShop.split(\",\").map((item) => {\n return parseInt(item);\n })\n : [];\n\n this.add_form.customerSourceId = data.customerSourceId\n ? data.customerSourceId.split(\",\").map((item) => {\n return parseInt(item);\n })\n : [];\n\n this.add_form.activityGoods = data.activityGoods.map((item) => {\n return {\n id: item.id,\n title: item.title,\n shopId: item.shopId,\n goodsCode: item.goodsCode,\n goodsId: item.goodsId,\n skuId: item.skuId,\n unitName: item.unitName,\n basicGoodsId: item.basicGoodsId,\n salePrice: item.salePrice,\n price: item.price,\n activityNum: item.activityNum,\n limitNum: item.limitNum,\n };\n });\n },\n // 获取详情\n async getInfoActivity() {\n const { data } = await getInfoActivity(this.activityId);\n\n this.add_form = data;\n this.img_list = data.images.map((item) => {\n return {\n name: \"\",\n url: item,\n };\n });\n this.time = [data.startTime * 1000, data.endTime * 1000];\n this.add_form.useShop = data.useShop\n ? data.useShop.split(\",\").map((item) => {\n return parseInt(item);\n })\n : [];\n\n this.add_form.customerSourceId = data.customerSourceId\n ? data.customerSourceId.split(\",\").map((item) => {\n return parseInt(item);\n })\n : [];\n\n this.add_form.activityGoods = data.activityGoods.map((item) => {\n let specGropName = item.specGroup\n .map((itemS) => {\n return itemS.specValueName;\n })\n .join(\"_\");\n return {\n id: item.id,\n title: item.goodsName,\n shopId: item.shopId,\n goodsCode: item.goodsCode,\n goodsId: item.goodsId,\n skuId: item.skuId,\n unitName: item.unitName,\n basicGoodsId: item.basicGoodsId,\n salePrice: item.salePrice,\n price: item.price,\n activityNum: item.activityNum,\n limitNum: item.limitNum,\n inventory: item.inventory - 0,\n skuName: specGropName,\n };\n });\n },\n // 删除选择的商品\n deleteRowGoods(index, row) {\n if (this.add_form.activityGoods.length === 1) {\n this.$message.warning(\"至少保留一条商品\");\n return;\n }\n if (row.id) {\n this.del_goods_id.push(row.id);\n }\n this.add_form.activityGoods.splice(index, 1);\n },\n CheckAllChange(val) {\n this.add_form.customerSourceId = val\n ? this.customerType.map((item) => item.id)\n : [];\n this.isIndeterminate = false;\n },\n customerTypeChange(value) {\n let checkedCount = value.length;\n this.checkAll = checkedCount === this.customerType.length;\n this.isIndeterminate =\n checkedCount > 0 && checkedCount < this.customerType.length;\n },\n // 时间\n timeChange(val) {\n this.add_form.startTime = val[0] / 1000;\n this.add_form.endTime = this.$NP.plus(val[1] / 1000, 86399);\n },\n // 活动图片\n uploadSuccess(val, res, file, fileList) {\n this.add_form.images = fileList.map((item) => {\n return item.content;\n });\n this.img_list = fileList;\n },\n // 选择的客户类型\n // 客户类型\n async getAllCustomerSource() {\n const data = await getCustomerSourceList();\n this.customerType = data.data;\n },\n LocationFrom(val) {\n if (val && val.length) {\n this.add_form.start = val[0] / 1000;\n this.add_form.IssueStart = val[0] / 1000;\n this.add_form.end = this.$NP.plus(val[1] / 1000, 86399);\n this.add_form.IssueEnd = this.$NP.plus(val[1] / 1000, 86399);\n } else {\n this.add_form.start = \"\";\n this.add_form.IssueStart = \"\";\n this.add_form.end = \"\";\n this.add_form.IssueEnd = \"\";\n }\n },\n // 提交保存\n async subData() {\n this.$refs.add_form.validate(async (valid) => {\n if (valid) {\n const goodsList = this.$_common\n .deepClone(this.add_form.activityGoods)\n .filter((item) => item.goodsId);\n if (!goodsList.length) {\n this.$message.warning(\"请选择促销商品\");\n return;\n }\n const useShop =\n this.add_form.useShop.length > 0\n ? this.add_form.useShop.join(\",\")\n : 0;\n const customerSourceId =\n this.add_form.customerSourceId.length > 0\n ? this.add_form.customerSourceId.join(\",\")\n : 0;\n const isTruePrice = goodsList.every((item) => {\n return item.price > 0;\n });\n if (!isTruePrice) {\n this.$message.warning(\"请您输入正确的促销价格\");\n return;\n }\n const isTrueNum = goodsList.every((item) => {\n return item.activityNum > 0;\n });\n\n if (!isTrueNum) {\n this.$message.warning(\"活动数量不能为0\");\n return;\n }\n const isTrueLimitNum = goodsList.every((item) => {\n return item.limitNum > 0;\n });\n\n if (!isTrueLimitNum) {\n this.$message.warning(\"限购数量不能为0\");\n return;\n }\n const obj = {\n activityType: this.add_form.activityType,\n title: this.add_form.title,\n startTime: this.add_form.startTime,\n endTime: this.add_form.endTime,\n images: this.add_form.images,\n enableStatus: this.add_form.enableStatus,\n useShop: useShop,\n customerRange: this.add_form.customerRange,\n describe: this.add_form.describe,\n remark: this.add_form.remark,\n isMutex: this.add_form.isMutex,\n customerSourceId: customerSourceId,\n activityGoods: goodsList.map((item) => {\n delete item.unitName;\n delete item.inventory;\n delete item.skuName;\n return item;\n }),\n };\n\n this.loading = true;\n try {\n let target = {};\n if (this.add_form.activityGoods.length > 0) {\n if (this.activityId) {\n obj.deleteArray = this.del_goods_id;\n target = await editActivity(this.activityId, obj);\n } else {\n target = await addActivity(obj);\n }\n }\n const data = target;\n this.loading = false;\n this.$message({\n type: \"success\",\n message: \"提交成功\",\n });\n await this.delPauseSave();\n this.$closeCurrentGoEdit(\"/Marketing/Promotion/PromotionList\");\n } catch {\n this.loading = false;\n }\n }\n });\n },\n },\n };\n</script>\n<style scoped>\n .width200 {\n width: 350px;\n }\n .creat-shop {\n color: #1890ff;\n font-size: 12px;\n }\n</style>\n"]}]}