d9cec475d2499be80fd00536c095d855.json 73 KB

1
  1. {"remainingRequest":"E:\\item\\newItem\\admin\\node_modules\\babel-loader\\lib\\index.js!E:\\item\\newItem\\admin\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!E:\\item\\newItem\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\item\\newItem\\admin\\node_modules\\iview-loader\\index.js??ref--0-2!E:\\item\\newItem\\admin\\src\\pages\\marketing\\storeCombination\\create.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\item\\newItem\\admin\\src\\pages\\marketing\\storeCombination\\create.vue","mtime":1677828270214},{"path":"E:\\item\\newItem\\admin\\babel.config.js","mtime":1677828270071},{"path":"E:\\item\\newItem\\admin\\.babelrc","mtime":1677828270070},{"path":"E:\\item\\newItem\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\newItem\\admin\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\item\\newItem\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\newItem\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000},{"path":"E:\\item\\newItem\\admin\\node_modules\\iview-loader\\index.js","mtime":1570440814000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICJFOi9pdGVtL25ld0l0ZW0vYWRtaW4vbm9kZV9tb2R1bGVzL0B2dWUvYmFiZWwtcHJlc2V0LWFwcC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9Db25zdW1hYmxlQXJyYXkuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRTovaXRlbS9uZXdJdGVtL2FkbWluL25vZGVfbW9kdWxlcy9AdnVlL2JhYmVsLXByZXNldC1hcHAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3IuanMiOwppbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tICJFOi9pdGVtL25ld0l0ZW0vYWRtaW4vbm9kZV9tb2R1bGVzL0B2dWUvYmFiZWwtcHJlc2V0LWFwcC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMi5qcyI7CmltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSAiRTovaXRlbS9uZXdJdGVtL2FkbWluL25vZGVfbW9kdWxlcy9AdnVlL2JhYmVsLXByZXNldC1hcHAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5LmpzIjsKaW1wb3J0ICJyZWdlbmVyYXRvci1ydW50aW1lL3J1bnRpbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zeW1ib2wuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zeW1ib2wuZGVzY3JpcHRpb24uanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNwbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNvcnQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwppbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gJ3Z1ZXgnOwppbXBvcnQgZ29vZHNMaXN0IGZyb20gJ0AvY29tcG9uZW50cy9nb29kc0xpc3QvaW5kZXgnOwppbXBvcnQgV2FuZ0VkaXRvciBmcm9tICdAL2NvbXBvbmVudHMvd2FuZ0VkaXRvci9pbmRleC52dWUnOwppbXBvcnQgdXBsb2FkUGljdHVyZXMgZnJvbSAnQC9jb21wb25lbnRzL3VwbG9hZFBpY3R1cmVzJzsKaW1wb3J0IHsgY29tYmluYXRpb25JbmZvQXBpLCBjb21iaW5hdGlvbkNyZWF0QXBpLCBwcm9kdWN0QXR0cnNBcGkgfSBmcm9tICdAL2FwaS9tYXJrZXRpbmcnOwppbXBvcnQgeyBwcm9kdWN0R2V0VGVtcGxhdGVBcGkgfSBmcm9tICdAL2FwaS9wcm9kdWN0JzsKaW1wb3J0IGZyZWlnaHRUZW1wbGF0ZSBmcm9tICdAL2NvbXBvbmVudHMvZnJlaWdodFRlbXBsYXRlL2luZGV4JzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdzdG9yZUNvbWJpbmF0aW9uQ3JlYXRlJywKICBjb21wb25lbnRzOiB7CiAgICBnb29kc0xpc3Q6IGdvb2RzTGlzdCwKICAgIHVwbG9hZFBpY3R1cmVzOiB1cGxvYWRQaWN0dXJlcywKICAgIFdhbmdFZGl0b3I6IFdhbmdFZGl0b3IsCiAgICBmcmVpZ2h0VGVtcGxhdGU6IGZyZWlnaHRUZW1wbGF0ZQogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIHN1Ym1pdE9wZW46IGZhbHNlLAogICAgICBzcGluU2hvdzogZmFsc2UsCiAgICAgIGlzQ2hvaWNlOiAnJywKICAgICAgY3VycmVudDogMCwKICAgICAgbW9kYWxQaWM6IGZhbHNlLAogICAgICBncmlkOiB7CiAgICAgICAgeGw6IDEyLAogICAgICAgIGxnOiAyMCwKICAgICAgICBtZDogMjQsCiAgICAgICAgc206IDI0LAogICAgICAgIHhzOiAyNAogICAgICB9LAogICAgICBncmlkMjogewogICAgICAgIHhsOiA4LAogICAgICAgIGxnOiA4LAogICAgICAgIG1kOiAxMiwKICAgICAgICBzbTogMjQsCiAgICAgICAgeHM6IDI0CiAgICAgIH0sCiAgICAgIGdyaWRQaWM6IHsKICAgICAgICB4bDogNiwKICAgICAgICBsZzogOCwKICAgICAgICBtZDogMTIsCiAgICAgICAgc206IDEyLAogICAgICAgIHhzOiAxMgogICAgICB9LAogICAgICBncmlkQnRuOiB7CiAgICAgICAgeGw6IDQsCiAgICAgICAgbGc6IDgsCiAgICAgICAgbWQ6IDgsCiAgICAgICAgc206IDgsCiAgICAgICAgeHM6IDgKICAgICAgfSwKICAgICAgbXlDb25maWc6IHsKICAgICAgICBhdXRvSGVpZ2h0RW5hYmxlZDogZmFsc2UsCiAgICAgICAgLy8g57yW6L6R5Zmo5LiN6Ieq5Yqo6KKr5YaF5a655pKR6auYCiAgICAgICAgaW5pdGlhbEZyYW1lSGVpZ2h0OiA1MDAsCiAgICAgICAgLy8g5Yid5aeL5a655Zmo6auY5bqmCiAgICAgICAgaW5pdGlhbEZyYW1lV2lkdGg6ICcxMDAlJywKICAgICAgICAvLyDliJ3lp4vlrrnlmajlrr3luqYKICAgICAgICBVRURJVE9SX0hPTUVfVVJMOiAnL2FkbWluL1VFZGl0b3IvJywKICAgICAgICBzZXJ2ZXJVcmw6ICcnCiAgICAgIH0sCiAgICAgIG1vZGFsczogZmFsc2UsCiAgICAgIG1vZGFsX2xvYWRpbmc6IGZhbHNlLAogICAgICBpbWFnZXM6IFtdLAogICAgICB0ZW1wbGF0ZUxpc3Q6IFtdLAogICAgICBjb2x1bW5zOiBbXSwKICAgICAgc3BlY3NEYXRhOiBbXSwKICAgICAgcGljVGl0OiAnJywKICAgICAgdGFibGVJbmRleDogMCwKICAgICAgZm9ybVZhbGlkYXRlOiBfZGVmaW5lUHJvcGVydHkoewogICAgICAgIGltYWdlczogW10sCiAgICAgICAgaW5mbzogJycsCiAgICAgICAgdGl0bGU6ICcnLAogICAgICAgIGltYWdlOiAnJywKICAgICAgICB1bml0X25hbWU6ICcnLAogICAgICAgIHByaWNlOiAwLAogICAgICAgIGVmZmVjdGl2ZV90aW1lOiAyNCwKICAgICAgICBzdG9jazogMSwKICAgICAgICBzYWxlczogMCwKICAgICAgICBzb3J0OiAwLAogICAgICAgIHBvc3RhZ2U6IDAsCiAgICAgICAgaXNfcG9zdGFnZTogMCwKICAgICAgICBpc19jb21taXNzaW9uOiAwLAogICAgICAgIGlzX2hvc3Q6IDAsCiAgICAgICAgaXNfc2hvdzogMCwKICAgICAgICBzZWN0aW9uX3RpbWU6IFtdLAogICAgICAgIGRlc2NyaXB0aW9uOiAnJywKICAgICAgICBpZDogMCwKICAgICAgICBwcm9kdWN0X2lkOiAwLAogICAgICAgIHBlb3BsZTogMiwKICAgICAgICBvbmNlX251bTogMSwKICAgICAgICBudW06IDEsCiAgICAgICAgdGVtcF9pZDogJycsCiAgICAgICAgYXR0cnM6IFtdLAogICAgICAgIGl0ZW1zOiBbXSwKICAgICAgICB2aXJ0dWFsOiAxMDAsCiAgICAgICAgdmlydHVhbFBlb3BsZTogMCwKICAgICAgICBoZWFkX2NvbW1pc3Npb246IDAsCiAgICAgICAgbG9naXN0aWNzOiBbJzEnXSwKICAgICAgICAvL+mAieaLqeeJqea1geaWueW8jwogICAgICAgIGZyZWlnaHQ6IDIKICAgICAgfSwgInBvc3RhZ2UiLCAxKSwKICAgICAgcnVsZVZhbGlkYXRlOiB7CiAgICAgICAgaW1hZ2U6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nkuLvlm74nLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICBpbWFnZXM6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHR5cGU6ICdhcnJheScsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5Li75Zu+JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfSwgewogICAgICAgICAgdHlwZTogJ2FycmF5JywKICAgICAgICAgIG1pbjogMSwKICAgICAgICAgIG1lc3NhZ2U6ICdDaG9vc2UgdHdvIGhvYmJpZXMgYXQgYmVzdCcsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIHRpdGxlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5ou85Zui5ZCN56ewJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIGluZm86IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXmi7zlm6LnroDku4snLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgc2VjdGlvbl90aW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICB0eXBlOiAnYXJyYXknLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqea0u+WKqOaXtumXtCcsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIHVuaXRfbmFtZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeWNleS9jScsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBwcmljZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdHlwZTogJ251bWJlcicsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5ou85Zui5Lu3JywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIGNvc3Q6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHR5cGU6ICdudW1iZXInLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeaIkOacrOS7tycsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBzdG9jazogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdHlwZTogJ251bWJlcicsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5bqT5a2YJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIGdpdmVfaW50ZWdyYWw6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHR5cGU6ICdudW1iZXInLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpei1oOmAgeenr+WIhicsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBlZmZlY3RpdmVfdGltZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdHlwZTogJ251bWJlcicsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5ou85Zui5pe25pWIKOWNleS9jSDlsI/ml7YpJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHBlb3BsZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdHlwZTogJ251bWJlcicsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5ou85Zui5Lq65pWwJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIG51bTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdHlwZTogJ251bWJlcicsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl6LSt5Lmw5pWw6YeP6ZmQ5Yi2JywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIG9uY2VfbnVtOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICB0eXBlOiAnbnVtYmVyJywKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXljZXmrKHotK3kubDmlbDph4/pmZDliLYnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgdmlydHVhbFBlb3BsZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdHlwZTogJ251bWJlcicsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl6Jma5ouf5oiQ5Zui6KGl6b2Q5Lq65pWwJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHRlbXBfaWQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nov5DotLnmqKHmnb8nLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScsCiAgICAgICAgICB0eXBlOiAnbnVtYmVyJwogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIGNvcHk6IDAsCiAgICAgIGRlc2NyaXB0aW9uOiAnJwogICAgfTsKICB9LAogIGNvbXB1dGVkOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG1hcFN0YXRlKCdtZWRpYScsIFsnaXNNb2JpbGUnXSkpLCB7fSwgewogICAgbGFiZWxXaWR0aDogZnVuY3Rpb24gbGFiZWxXaWR0aCgpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgPyB1bmRlZmluZWQgOiAxNTU7CiAgICB9LAogICAgbGFiZWxQb3NpdGlvbjogZnVuY3Rpb24gbGFiZWxQb3NpdGlvbigpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNNb2JpbGUgPyAndG9wJyA6ICdyaWdodCc7CiAgICB9CiAgfSksCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIGlmICh0aGlzLiRyb3V0ZS5wYXJhbXMuaWQpIHsKICAgICAgdGhpcy5jb3B5ID0gdGhpcy4kcm91dGUucGFyYW1zLmNvcHk7CiAgICAgIHRoaXMuY3VycmVudCA9IDE7CiAgICAgIHRoaXMuZ2V0SW5mbygpOwogICAgfQoKICAgIHRoaXMucHJvZHVjdEdldFRlbXBsYXRlKCk7CiAgfSwKICBtZXRob2RzOiB7CiAgICBjaGFuZ2VQcmljZTogZnVuY3Rpb24gY2hhbmdlUHJpY2UoZSwgaW5kZXgpIHsKICAgICAgdGhpcy4kc2V0KHRoaXMuc3BlY3NEYXRhW2luZGV4XSwgJ3ByaWNlJywgZSk7CiAgICB9LAogICAgZ2V0RWRpdG9yQ29udGVudDogZnVuY3Rpb24gZ2V0RWRpdG9yQ29udGVudChkYXRhKSB7CiAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBkYXRhOwogICAgfSwKICAgIC8vIOa3u+WKoOi/kOi0ueaooeadvwogICAgZnJlaWdodDogZnVuY3Rpb24gZnJlaWdodCgpIHsKICAgICAgdGhpcy4kcmVmcy50ZW1wbGF0ZS5pZCA9IDA7CiAgICAgIHRoaXMuJHJlZnMudGVtcGxhdGUuaXNUZW1wbGF0ZSA9IHRydWU7CiAgICB9LAogICAgLy8g5ou85Zui6KeE5qC877ybCiAgICBwcm9kdWN0QXR0cnM6IGZ1bmN0aW9uIHByb2R1Y3RBdHRycyhyb3cpIHsKICAgICAgdmFyIHRoYXQgPSB0aGlzOwogICAgICBwcm9kdWN0QXR0cnNBcGkocm93LmlkLCAzKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICB2YXIgZGF0YSA9IHJlcy5kYXRhLmluZm87CiAgICAgICAgdmFyIHNlbGVjdGlvbiA9IHsKICAgICAgICAgIHR5cGU6ICdzZWxlY3Rpb24nLAogICAgICAgICAgd2lkdGg6IDYwLAogICAgICAgICAgYWxpZ246ICdjZW50ZXInCiAgICAgICAgfTsKICAgICAgICB0aGF0LnNwZWNzRGF0YSA9IGRhdGEuYXR0cnM7CiAgICAgICAgdGhhdC5zcGVjc0RhdGEuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSwgaW5kZXgpIHsKICAgICAgICAgIHRoYXQuJHNldCh0aGF0LnNwZWNzRGF0YVtpbmRleF0sICdpZCcsIGluZGV4KTsKICAgICAgICB9KTsKICAgICAgICB0aGF0LmZvcm1WYWxpZGF0ZS5pdGVtcyA9IGRhdGEuaXRlbXM7CiAgICAgICAgdGhhdC5jb2x1bW5zID0gZGF0YS5oZWFkZXI7CiAgICAgICAgdGhhdC5jb2x1bW5zLnVuc2hpZnQoc2VsZWN0aW9uKTsKICAgICAgICB0aGF0LmlucHV0Q2hhbmdlKGRhdGEpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgdGhhdC4kTWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgfSk7CiAgICB9LAogICAgaW5wdXRDaGFuZ2U6IGZ1bmN0aW9uIGlucHV0Q2hhbmdlKGRhdGEpIHsKICAgICAgdmFyIHRoYXQgPSB0aGlzOwogICAgICB2YXIgJGluZGV4ID0gW107CiAgICAgIGRhdGEuaGVhZGVyLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGluZGV4KSB7CiAgICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gMSkgewogICAgICAgICAgJGluZGV4LnB1c2goewogICAgICAgICAgICBpbmRleDogaW5kZXgsCiAgICAgICAgICAgIGtleTogaXRlbS5rZXksCiAgICAgICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlCiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICAkaW5kZXguZm9yRWFjaChmdW5jdGlvbiAoaXRlbSwgaW5kZXgpIHsKICAgICAgICB2YXIgdGl0bGUgPSBpdGVtLnRpdGxlOwogICAgICAgIHZhciBrZXkgPSBpdGVtLmtleTsKICAgICAgICB2YXIgcm93ID0gewogICAgICAgICAgdGl0bGU6IHRpdGxlLAogICAgICAgICAga2V5OiBrZXksCiAgICAgICAgICBhbGlnbjogJ2NlbnRlcicsCiAgICAgICAgICBtaW5XaWR0aDogMTAwLAogICAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoaCwgcGFyYW1zKSB7CiAgICAgICAgICAgIHJldHVybiBoKCdkaXYnLCBbaCgnSW5wdXROdW1iZXInLCB7CiAgICAgICAgICAgICAgcHJvcHM6IHsKICAgICAgICAgICAgICAgIG1pbjogMSwKICAgICAgICAgICAgICAgIHByZWNpc2lvbjogMCwKICAgICAgICAgICAgICAgIHZhbHVlOiBwYXJhbXMucm93LnF1b3RhCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBvbjogewogICAgICAgICAgICAgICAgJ29uLWNoYW5nZSc6IGZ1bmN0aW9uIG9uQ2hhbmdlKGUpIHsKICAgICAgICAgICAgICAgICAgcGFyYW1zLnJvdy5xdW90YSA9IGU7CiAgICAgICAgICAgICAgICAgIHRoYXQuc3BlY3NEYXRhW3BhcmFtcy5pbmRleF0gPSBwYXJhbXMucm93OwoKICAgICAgICAgICAgICAgICAgaWYgKCEhdGhhdC5mb3JtVmFsaWRhdGUuYXR0cnMgJiYgdGhhdC5mb3JtVmFsaWRhdGUuYXR0cnMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgdGhhdC5mb3JtVmFsaWRhdGUuYXR0cnMuZm9yRWFjaChmdW5jdGlvbiAodiwgaW5kZXgpIHsKICAgICAgICAgICAgICAgICAgICAgIGlmICh2LmlkID09PSBwYXJhbXMucm93LmlkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuZm9ybVZhbGlkYXRlLmF0dHJzLnNwbGljZShpbmRleCwgMSwgcGFyYW1zLnJvdyk7CiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pXSk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICB0aGF0LmNvbHVtbnMuc3BsaWNlKGl0ZW0uaW5kZXgsIDEsIHJvdyk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOWkmumAiQogICAgY2hhbmdlQ2hlY2tib3g6IGZ1bmN0aW9uIGNoYW5nZUNoZWNrYm94KHNlbGVjdGlvbikgewogICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5hdHRycyA9IHNlbGVjdGlvbjsKICAgIH0sCiAgICAvLyDojrflj5bov5DotLnmqKHmnb/vvJsKICAgIHByb2R1Y3RHZXRUZW1wbGF0ZTogZnVuY3Rpb24gcHJvZHVjdEdldFRlbXBsYXRlKCkgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwoKICAgICAgcHJvZHVjdEdldFRlbXBsYXRlQXBpKCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXMudGVtcGxhdGVMaXN0ID0gcmVzLmRhdGE7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOihqOWNlemqjOivgQogICAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKHByb3AsIHN0YXR1cywgZXJyb3IpIHsKICAgICAgaWYgKHN0YXR1cyA9PT0gZmFsc2UpIHsKICAgICAgICB0aGlzLiRNZXNzYWdlLmVycm9yKGVycm9yKTsKICAgICAgfQogICAgfSwKICAgIC8vIOWVhuWTgWlkCiAgICBnZXRQcm9kdWN0SWQ6IGZ1bmN0aW9uIGdldFByb2R1Y3RJZChyb3cpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CgogICAgICB0aGlzLm1vZGFsX2xvYWRpbmcgPSBmYWxzZTsKICAgICAgdGhpcy5tb2RhbHMgPSBmYWxzZTsKICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF90aGlzMiRmb3JtVmFsaWRhdGU7CgogICAgICAgIF90aGlzMi5mb3JtVmFsaWRhdGUgPSAoX3RoaXMyJGZvcm1WYWxpZGF0ZSA9IHsKICAgICAgICAgIGltYWdlczogcm93LnNsaWRlcl9pbWFnZSwKICAgICAgICAgIGluZm86IHJvdy5zdG9yZV9pbmZvLAogICAgICAgICAgdGl0bGU6IHJvdy5zdG9yZV9uYW1lLAogICAgICAgICAgaW1hZ2U6IHJvdy5pbWFnZSwKICAgICAgICAgIHVuaXRfbmFtZTogcm93LnVuaXRfbmFtZSwKICAgICAgICAgIHByaWNlOiAwLAogICAgICAgICAgLy8g5LiN5Y+W5ZWG5ZOB5Lit55qE5Y6f5Lu3CiAgICAgICAgICBlZmZlY3RpdmVfdGltZTogMjQsCiAgICAgICAgICBzdG9jazogcm93LnN0b2NrLAogICAgICAgICAgc2FsZXM6IHJvdy5zYWxlcywKICAgICAgICAgIHNvcnQ6IHJvdy5zb3J0LAogICAgICAgICAgcG9zdGFnZTogcm93LnBvc3RhZ2UsCiAgICAgICAgICBpc19wb3N0YWdlOiByb3cuaXNfcG9zdGFnZSwKICAgICAgICAgIGlzX2NvbW1pc3Npb246IDAsCiAgICAgICAgICBpc19ob3N0OiByb3cuaXNfaG90LAogICAgICAgICAgaXNfc2hvdzogMCwKICAgICAgICAgIHNlY3Rpb25fdGltZTogW10sCiAgICAgICAgICBkZXNjcmlwdGlvbjogcm93LmRlc2NyaXB0aW9uLAogICAgICAgICAgLy8g5LiN5Y+W5ZWG5ZOB5Lit55qECiAgICAgICAgICBpZDogMCwKICAgICAgICAgIHBlb3BsZTogMiwKICAgICAgICAgIG51bTogMSwKICAgICAgICAgIG9uY2VfbnVtOiAxLAogICAgICAgICAgcHJvZHVjdF9pZDogcm93LmlkLAogICAgICAgICAgdGVtcF9pZDogcm93LnRlbXBfaWQsCiAgICAgICAgICB2aXJ0dWFsOiAxMDAsCiAgICAgICAgICB2aXJ0dWFsUGVvcGxlOiAwLAogICAgICAgICAgbG9naXN0aWNzOiByb3cubG9naXN0aWNzLAogICAgICAgICAgLy/pgInmi6nnianmtYHmlrnlvI8KICAgICAgICAgIGZyZWlnaHQ6IHJvdy5mcmVpZ2h0CiAgICAgICAgfSwgX2RlZmluZVByb3BlcnR5KF90aGlzMiRmb3JtVmFsaWRhdGUsICJwb3N0YWdlIiwgcm93LnBvc3RhZ2UpLCBfZGVmaW5lUHJvcGVydHkoX3RoaXMyJGZvcm1WYWxpZGF0ZSwgImN1c3RvbV9mb3JtIiwgcm93LmN1c3RvbV9mb3JtKSwgX2RlZmluZVByb3BlcnR5KF90aGlzMiRmb3JtVmFsaWRhdGUsICJ2aXJ0dWFsX3R5cGUiLCByb3cudmlydHVhbF90eXBlKSwgX2RlZmluZVByb3BlcnR5KF90aGlzMiRmb3JtVmFsaWRhdGUsICJoZWFkX2NvbW1pc3Npb24iLCAwKSwgX3RoaXMyJGZvcm1WYWxpZGF0ZSk7CgogICAgICAgIF90aGlzMi5wcm9kdWN0QXR0cnMocm93KTsKICAgICAgfSwgNTAwKTsKICAgIH0sCiAgICBjYW5jZWw6IGZ1bmN0aW9uIGNhbmNlbCgpIHsKICAgICAgdGhpcy5tb2RhbHMgPSBmYWxzZTsKICAgIH0sCiAgICAvLyDlhbfkvZPml6XmnJ8KICAgIG9uY2hhbmdlVGltZTogZnVuY3Rpb24gb25jaGFuZ2VUaW1lKGUpIHsKICAgICAgdGhpcy5mb3JtVmFsaWRhdGUuc2VjdGlvbl90aW1lID0gZTsKICAgIH0sCiAgICAvLyDor6bmg4UKICAgIGdldEluZm86IGZ1bmN0aW9uIGdldEluZm8oKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwoKICAgICAgdGhpcy5zcGluU2hvdyA9IHRydWU7CiAgICAgIGNvbWJpbmF0aW9uSW5mb0FwaSh0aGlzLiRyb3V0ZS5wYXJhbXMuaWQpLnRoZW4oIC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF9yZWYgPSBfYXN5bmNUb0dlbmVyYXRvciggLyojX19QVVJFX18qL3JlZ2VuZXJhdG9yUnVudGltZS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUocmVzKSB7CiAgICAgICAgICB2YXIgdGhhdCwgaW5mbywgc2VsZWN0aW9uLCBkYXRhLCBhdHRyLCBpbmRleDsKICAgICAgICAgIHJldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcChmdW5jdGlvbiBfY2FsbGVlJChfY29udGV4dCkgewogICAgICAgICAgICB3aGlsZSAoMSkgewogICAgICAgICAgICAgIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHsKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgdGhhdCA9IF90aGlzMzsKICAgICAgICAgICAgICAgICAgaW5mbyA9IHJlcy5kYXRhLmluZm87CiAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbiA9IHsKICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0aW9uJywKICAgICAgICAgICAgICAgICAgICB3aWR0aDogNjAsCiAgICAgICAgICAgICAgICAgICAgYWxpZ246ICdjZW50ZXInCiAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgIF90aGlzMy5mb3JtVmFsaWRhdGUgPSBpbmZvOwogICAgICAgICAgICAgICAgICBfdGhpczMuZm9ybVZhbGlkYXRlLnZpcnR1YWxQZW9wbGUgPSBwYXJzZUludChfdGhpczMuZm9ybVZhbGlkYXRlLnBlb3BsZSAtIF90aGlzMy5mb3JtVmFsaWRhdGUucGVvcGxlICogKF90aGlzMy5mb3JtVmFsaWRhdGUudmlydHVhbCAvIDEwMCkpOwoKICAgICAgICAgICAgICAgICAgX3RoaXMzLiRzZXQoX3RoaXMzLmZvcm1WYWxpZGF0ZSwgJ2l0ZW1zJywgaW5mby5hdHRycy5pdGVtcyk7CgogICAgICAgICAgICAgICAgICBfdGhpczMuY29sdW1ucyA9IGluZm8uYXR0cnMuaGVhZGVyOwoKICAgICAgICAgICAgICAgICAgX3RoaXMzLmNvbHVtbnMudW5zaGlmdChzZWxlY3Rpb24pOwoKICAgICAgICAgICAgICAgICAgX3RoaXMzLnNwZWNzRGF0YSA9IGluZm8uYXR0cnMudmFsdWU7CiAgICAgICAgICAgICAgICAgIHRoYXQuc3BlY3NEYXRhLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGluZGV4KSB7CiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2V0KHRoYXQuc3BlY3NEYXRhW2luZGV4XSwgJ2lkJywgaW5kZXgpOwogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgZGF0YSA9IGluZm8uYXR0cnM7CiAgICAgICAgICAgICAgICAgIGF0dHIgPSBbXTsKCiAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXggaW4gaW5mby5hdHRycy52YWx1ZSkgewogICAgICAgICAgICAgICAgICAgIGlmIChpbmZvLmF0dHJzLnZhbHVlW2luZGV4XS5fY2hlY2tlZCkgewogICAgICAgICAgICAgICAgICAgICAgYXR0ci5wdXNoKGluZm8uYXR0cnMudmFsdWVbaW5kZXhdKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIHRoYXQuZm9ybVZhbGlkYXRlLmF0dHJzID0gYXR0cjsKICAgICAgICAgICAgICAgICAgdGhhdC5pbnB1dENoYW5nZShkYXRhKTsKICAgICAgICAgICAgICAgICAgX3RoaXMzLnNwaW5TaG93ID0gZmFsc2U7CgogICAgICAgICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5zdG9wKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlKTsKICAgICAgICB9KSk7CgogICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3gpIHsKICAgICAgICAgIHJldHVybiBfcmVmLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgfTsKICAgICAgfSgpKS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXMzLnNwaW5TaG93ID0gZmFsc2U7CgogICAgICAgIF90aGlzMy4kTWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g5LiL5LiA5q2lCiAgICBuZXh0OiBmdW5jdGlvbiBuZXh0KG5hbWUpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CgogICAgICB2YXIgdGhhdCA9IHRoaXM7CgogICAgICBpZiAodGhpcy5jdXJyZW50ID09PSAyKSB7CiAgICAgICAgdGhpcy5mb3JtVmFsaWRhdGUuZGVzY3JpcHRpb24gPSB0aGlzLmRlc2NyaXB0aW9uOwogICAgICAgIHRoaXMuJHJlZnNbbmFtZV0udmFsaWRhdGUoZnVuY3Rpb24gKHZhbGlkKSB7CiAgICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgICAgaWYgKF90aGlzNC5jb3B5ID09IDEpIF90aGlzNC5mb3JtVmFsaWRhdGUuY29weSA9IDE7CiAgICAgICAgICAgIF90aGlzNC5mb3JtVmFsaWRhdGUuaWQgPSBOdW1iZXIoX3RoaXM0LiRyb3V0ZS5wYXJhbXMuaWQpIHx8IDA7CiAgICAgICAgICAgIF90aGlzNC5zdWJtaXRPcGVuID0gdHJ1ZTsKICAgICAgICAgICAgX3RoaXM0LmZvcm1WYWxpZGF0ZS52aXJ0dWFsID0gcGFyc2VJbnQoKF90aGlzNC5mb3JtVmFsaWRhdGUucGVvcGxlIC0gX3RoaXM0LmZvcm1WYWxpZGF0ZS52aXJ0dWFsUGVvcGxlKSAvIF90aGlzNC5mb3JtVmFsaWRhdGUucGVvcGxlICogMTAwKTsKICAgICAgICAgICAgY29tYmluYXRpb25DcmVhdEFwaShfdGhpczQuZm9ybVZhbGlkYXRlKS50aGVuKCAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHZhciBfcmVmMiA9IF9hc3luY1RvR2VuZXJhdG9yKCAvKiNfX1BVUkVfXyovcmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIocmVzKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoZnVuY3Rpb24gX2NhbGxlZTIkKF9jb250ZXh0MikgewogICAgICAgICAgICAgICAgICB3aGlsZSAoMSkgewogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoX2NvbnRleHQyLnByZXYgPSBfY29udGV4dDIubmV4dCkgewogICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgICAgICBfdGhpczQuc3VibWl0T3BlbiA9IGZhbHNlOwoKICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM0LiRNZXNzYWdlLnN1Y2Nlc3MocmVzLm1zZyk7CgogICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpczQuJHJvdXRlci5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICcvYWRtaW4vbWFya2V0aW5nL3N0b3JlX2NvbWJpbmF0aW9uL2luZGV4JwogICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICB9LCA1MDApOwoKICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuc3RvcCgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgX2NhbGxlZTIpOwogICAgICAgICAgICAgIH0pKTsKCiAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeDIpIHsKICAgICAgICAgICAgICAgIHJldHVybiBfcmVmMi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0oKSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICAgIF90aGlzNC5zdWJtaXRPcGVuID0gZmFsc2U7CgogICAgICAgICAgICAgIF90aGlzNC4kTWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50ID09PSAxKSB7CiAgICAgICAgdGhpcy4kcmVmc1tuYW1lXS52YWxpZGF0ZShmdW5jdGlvbiAodmFsaWQpIHsKICAgICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgICBpZiAodGhhdC5mb3JtVmFsaWRhdGUucGVvcGxlIDwgMikgewogICAgICAgICAgICAgIHJldHVybiB0aGF0LiRNZXNzYWdlLmVycm9yKCfmi7zlm6LkurrmlbDlv4XpobvlpKfkuo4yJyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICh0aGF0LmZvcm1WYWxpZGF0ZS5udW0gPCAwKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuJE1lc3NhZ2UuZXJyb3IoJ+i0reS5sOaVsOmHj+mZkOWItuW/hemhu+Wkp+S6jjAnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHRoYXQuZm9ybVZhbGlkYXRlLm9uY2VfbnVtIDwgMCkgewogICAgICAgICAgICAgIHJldHVybiB0aGF0LiRNZXNzYWdlLmVycm9yKCfljZXmrKHotK3kubDmlbDph4/pmZDliLblv4XpobvlpKfkuo4wJyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICghdGhhdC5mb3JtVmFsaWRhdGUuYXR0cnMpIHsKICAgICAgICAgICAgICByZXR1cm4gdGhhdC4kTWVzc2FnZS5lcnJvcign6K+36YCJ5oup5bGe5oCn6KeE5qC8Jyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgaW5kZXggaW4gdGhhdC5mb3JtVmFsaWRhdGUuYXR0cnMpIHsKICAgICAgICAgICAgICAgIGlmICh0aGF0LmZvcm1WYWxpZGF0ZS5hdHRyc1tpbmRleF0ucXVvdGEgPD0gMCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC4kTWVzc2FnZS5lcnJvcign5ou85Zui6ZmQ6YeP5b+F6aG75aSn5LqOMCcpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChfdGhpczQuZm9ybVZhbGlkYXRlLmF0dHJzW2luZGV4XS5xdW90YSA+IF90aGlzNC5mb3JtVmFsaWRhdGUuYXR0cnNbaW5kZXhdWydzdG9jayddKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiBfdGhpczQuJE1lc3NhZ2UuZXJyb3IoJ+aLvOWboumZkOmHj+S4jeiDvei2hei/h+inhOagvOW6k+WtmCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgX3RoaXM0LmN1cnJlbnQgKz0gMTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBfdGhpczQuJE1lc3NhZ2Uud2FybmluZygn6K+35a6M5ZaE5oKo55qE5L+h5oGvJyk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKHRoaXMuZm9ybVZhbGlkYXRlLmltYWdlKSB7CiAgICAgICAgICB0aGlzLmN1cnJlbnQgKz0gMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kTWVzc2FnZS53YXJuaW5nKCfor7fpgInmi6nllYblk4EnKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAvLyDkuIrkuIDmraUKICAgIHN0ZXA6IGZ1bmN0aW9uIHN0ZXAoKSB7CiAgICAgIHRoaXMuY3VycmVudC0tOwogICAgfSwKICAgIC8vIOWGheWuuQogICAgZ2V0Q29udGVudDogZnVuY3Rpb24gZ2V0Q29udGVudCh2YWwpIHsKICAgICAgdGhpcy5mb3JtVmFsaWRhdGUuZGVzY3JpcHRpb24gPSB2YWw7CiAgICB9LAogICAgLy8g54K55Ye75ZWG5ZOB5Zu+CiAgICBtb2RhbFBpY1RhcDogZnVuY3Rpb24gbW9kYWxQaWNUYXAodGl0LCBwaWNUaXQsIGluZGV4KSB7CiAgICAgIHRoaXMubW9kYWxQaWMgPSB0cnVlOwogICAgICB0aGlzLmlzQ2hvaWNlID0gdGl0ID09PSAnZGFuJyA/ICfljZXpgIknIDogJ+WkmumAiSc7CiAgICAgIHRoaXMucGljVGl0ID0gcGljVGl0OwogICAgICB0aGlzLnRhYmxlSW5kZXggPSBpbmRleDsKICAgIH0sCiAgICAvLyDojrflj5bljZXlvKDlm77niYfkv6Hmga8KICAgIGdldFBpYzogZnVuY3Rpb24gZ2V0UGljKHBjKSB7CiAgICAgIHN3aXRjaCAodGhpcy5waWNUaXQpIHsKICAgICAgICBjYXNlICdkYW5Gcm9tJzoKICAgICAgICAgIHRoaXMuZm9ybVZhbGlkYXRlLmltYWdlID0gcGMuYXR0X2RpcjsKICAgICAgICAgIGJyZWFrOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgaWYgKCEhdGhpcy5mb3JtVmFsaWRhdGUuYXR0cnMgJiYgdGhpcy5mb3JtVmFsaWRhdGUuYXR0cnMubGVuZ3RoKSB7CiAgICAgICAgICAgIHRoaXMuJHNldCh0aGlzLnNwZWNzRGF0YVt0aGlzLnRhYmxlSW5kZXhdLCAnX2NoZWNrZWQnLCB0cnVlKTsKICAgICAgICAgIH0KCiAgICAgICAgICB0aGlzLnNwZWNzRGF0YVt0aGlzLnRhYmxlSW5kZXhdLnBpYyA9IHBjLmF0dF9kaXI7CiAgICAgIH0KCiAgICAgIHRoaXMubW9kYWxQaWMgPSBmYWxzZTsKICAgIH0sCiAgICAvLyDojrflj5blpJrlvKDlm77kv6Hmga8KICAgIGdldFBpY0Q6IGZ1bmN0aW9uIGdldFBpY0QocGMpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CgogICAgICB0aGlzLmltYWdlcyA9IHBjOwogICAgICB0aGlzLmltYWdlcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICBfdGhpczUuZm9ybVZhbGlkYXRlLmltYWdlcy5wdXNoKGl0ZW0uYXR0X2Rpcik7CgogICAgICAgIF90aGlzNS5mb3JtVmFsaWRhdGUuaW1hZ2VzID0gX3RoaXM1LmZvcm1WYWxpZGF0ZS5pbWFnZXMuc3BsaWNlKDAsIDEwKTsKICAgICAgfSk7CiAgICAgIHRoaXMubW9kYWxQaWMgPSBmYWxzZTsKICAgIH0sCiAgICBoYW5kbGVSZW1vdmU6IGZ1bmN0aW9uIGhhbmRsZVJlbW92ZShpKSB7CiAgICAgIHRoaXMuaW1hZ2VzLnNwbGljZShpLCAxKTsKICAgICAgdGhpcy5mb3JtVmFsaWRhdGUuaW1hZ2VzLnNwbGljZShpLCAxKTsKICAgIH0sCiAgICAvLyDpgInmi6nllYblk4EKICAgIGNoYW5nZUdvb2RzOiBmdW5jdGlvbiBjaGFuZ2VHb29kcygpIHsKICAgICAgdGhpcy5tb2RhbHMgPSB0cnVlOwogICAgICB0aGlzLiRyZWZzLmdvb2RzbGlzdC5mb3JtVmFsaWRhdGUuaXNfcHJlc2FsZSA9IDA7CiAgICAgIHRoaXMuJHJlZnMuZ29vZHNsaXN0LmdldExpc3QoKTsKICAgICAgdGhpcy4kcmVmcy5nb29kc2xpc3QuZ29vZHNDYXRlZ29yeSgpOwogICAgfSwKICAgIC8vIOenu+WKqAogICAgaGFuZGxlRHJhZ1N0YXJ0OiBmdW5jdGlvbiBoYW5kbGVEcmFnU3RhcnQoZSwgaXRlbSkgewogICAgICB0aGlzLmRyYWdnaW5nID0gaXRlbTsKICAgIH0sCiAgICBoYW5kbGVEcmFnRW5kOiBmdW5jdGlvbiBoYW5kbGVEcmFnRW5kKGUsIGl0ZW0pIHsKICAgICAgdGhpcy5kcmFnZ2luZyA9IG51bGw7CiAgICB9LAogICAgLy8g6aaW5YWI5oqKZGl25Y+Y5oiQ5Y+v5Lul5pS+572u55qE5YWD57Sg77yM5Y2z6YeN5YaZZHJhZ2VudGVyL2RyYWdvdmVyCiAgICBoYW5kbGVEcmFnT3ZlcjogZnVuY3Rpb24gaGFuZGxlRHJhZ092ZXIoZSkgewogICAgICBlLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0ID0gJ21vdmUnOwogICAgfSwKICAgIGhhbmRsZURyYWdFbnRlcjogZnVuY3Rpb24gaGFuZGxlRHJhZ0VudGVyKGUsIGl0ZW0pIHsKICAgICAgZS5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZCA9ICdtb3ZlJzsKCiAgICAgIGlmIChpdGVtID09PSB0aGlzLmRyYWdnaW5nKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICB2YXIgbmV3SXRlbXMgPSBfdG9Db25zdW1hYmxlQXJyYXkodGhpcy5mb3JtVmFsaWRhdGUuaW1hZ2VzKTsKCiAgICAgIHZhciBzcmMgPSBuZXdJdGVtcy5pbmRleE9mKHRoaXMuZHJhZ2dpbmcpOwogICAgICB2YXIgZHN0ID0gbmV3SXRlbXMuaW5kZXhPZihpdGVtKTsKICAgICAgbmV3SXRlbXMuc3BsaWNlLmFwcGx5KG5ld0l0ZW1zLCBbZHN0LCAwXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KG5ld0l0ZW1zLnNwbGljZShzcmMsIDEpKSkpOwogICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5pbWFnZXMgPSBuZXdJdGVtczsKICAgIH0KICB9Cn07"},{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2aA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACAA,8BADA;EAEAC;IACAC,oBADA;IAEAC,8BAFA;IAGAC,sBAHA;IAIAC;EAJA,CAFA;EAQAC,IARA,kBAQA;IACA;MACAC,iBADA;MAEAC,eAFA;MAGAC,YAHA;MAIAC,UAJA;MAKAC,eALA;MAMAC;QACAC,MADA;QAEAC,MAFA;QAGAC,MAHA;QAIAC,MAJA;QAKAC;MALA,CANA;MAaAC;QACAL,KADA;QAEAC,KAFA;QAGAC,MAHA;QAIAC,MAJA;QAKAC;MALA,CAbA;MAoBAE;QACAN,KADA;QAEAC,KAFA;QAGAC,MAHA;QAIAC,MAJA;QAKAC;MALA,CApBA;MA2BAG;QACAP,KADA;QAEAC,KAFA;QAGAC,KAHA;QAIAC,KAJA;QAKAC;MALA,CA3BA;MAkCAI;QACAC,wBADA;QACA;QACAC,uBAFA;QAEA;QACAC,yBAHA;QAGA;QACAC,mCAJA;QAKAC;MALA,CAlCA;MAyCAC,aAzCA;MA0CAC,oBA1CA;MA2CAC,UA3CA;MA4CAC,gBA5CA;MA6CAC,WA7CA;MA8CAC,aA9CA;MA+CAC,UA/CA;MAgDAC,aAhDA;MAiDAC;QACAN,UADA;QAEAO,QAFA;QAGAC,SAHA;QAIAC,SAJA;QAKAC,aALA;QAMAC,QANA;QAOAC,kBAPA;QAQAC,QARA;QASAC,QATA;QAUAC,OAVA;QAWAC,UAXA;QAYAC,aAZA;QAaAC,gBAbA;QAcAC,UAdA;QAeAC,UAfA;QAgBAC,gBAhBA;QAiBAC,eAjBA;QAkBAC,KAlBA;QAmBAC,aAnBA;QAoBAC,SApBA;QAqBAC,WArBA;QAsBAC,MAtBA;QAuBAC,WAvBA;QAwBAC,SAxBA;QAyBAC,SAzBA;QA0BAC,YA1BA;QA2BAC,gBA3BA;QA4BAC,kBA5BA;QA6BAC,gBA7BA;QA6BA;QACAC;MA9BA,cA+BA,CA/BA,CAjDA;MAkFAC;QACA3B;UAAA4B;UAAAC;UAAAC;QAAA,EADA;QAEAvC,SACA;UACAqC,cADA;UAEAG,aAFA;UAGAF,gBAHA;UAIAC;QAJA,CADA,EAOA;UACAC,aADA;UAEAC,MAFA;UAGAH,qCAHA;UAIAC;QAJA,CAPA,CAFA;QAgBA/B;UAAA6B;UAAAC;UAAAC;QAAA,EAhBA;QAiBAhC;UAAA8B;UAAAC;UAAAC;QAAA,EAjBA;QAkBAlB,eACA;UACAgB,cADA;UAEAG,aAFA;UAGAF,kBAHA;UAIAC;QAJA,CADA,CAlBA;QA0BA7B;UAAA2B;UAAAC;UAAAC;QAAA,EA1BA;QA2BA5B,QACA;UACA0B,cADA;UAEAG,cAFA;UAGAF,iBAHA;UAIAC;QAJA,CADA,CA3BA;QAmCAG,OACA;UACAL,cADA;UAEAG,cAFA;UAGAF,iBAHA;UAIAC;QAJA,CADA,CAnCA;QA2CA1B,QACA;UACAwB,cADA;UAEAG,cAFA;UAGAF,gBAHA;UAIAC;QAJA,CADA,CA3CA;QAmDAI,gBACA;UACAN,cADA;UAEAG,cAFA;UAGAF,kBAHA;UAIAC;QAJA,CADA,CAnDA;QA2DA3B,iBACA;UACAyB,cADA;UAEAG,cAFA;UAGAF,yBAHA;UAIAC;QAJA,CADA,CA3DA;QAmEAd,SACA;UACAY,cADA;UAEAG,cAFA;UAGAF,kBAHA;UAIAC;QAJA,CADA,CAnEA;QA2EAZ,MACA;UACAU,cADA;UAEAG,cAFA;UAGAF,oBAHA;UAIAC;QAJA,CADA,CA3EA;QAmFAb,WACA;UACAW,cADA;UAEAG,cAFA;UAGAF,sBAHA;UAIAC;QAJA,CADA,CAnFA;QA2FAP,gBACA;UACAK,cADA;UAEAG,cAFA;UAGAF,sBAHA;UAIAC;QAJA,CADA,CA3FA;QAmGAX,UACA;UACAS,cADA;UAEAC,kBAFA;UAGAC,iBAHA;UAIAC;QAJA,CADA;MAnGA,CAlFA;MA8LAI,OA9LA;MA+LAtB;IA/LA;EAiMA,CA1MA;EA2MAuB,0CACAC,+BADA;IAEAC,UAFA,wBAEA;MACA;IACA,CAJA;IAKAC,aALA,2BAKA;MACA;IACA;EAPA,EA3MA;EAoNAC,OApNA,qBAoNA;IACA;MACA;MACA;MACA;IACA;;IACA;EACA,CA3NA;EA4NAC;IACAC,WADA,uBACAC,CADA,EACAC,KADA,EACA;MACA;IACA,CAHA;IAIAC,gBAJA,4BAIA7E,IAJA,EAIA;MACA;IACA,CANA;IAOA;IACA0D,OARA,qBAQA;MACA;MACA;IACA,CAXA;IAYA;IACAoB,YAbA,wBAaAC,GAbA,EAaA;MACA;MACAC,2BACAC,IADA,CACA;QACA;QACA;UACAlB,iBADA;UAEAmB,SAFA;UAGAC;QAHA;QAKAC;QACAA;UACAA;QACA,CAFA;QAGAA;QACAA;QACAA;QACAA;MACA,CAhBA,EAiBAC,KAjBA,CAiBA;QACAD;MACA,CAnBA;IAoBA,CAnCA;IAoCAE,WApCA,uBAoCAtF,IApCA,EAoCA;MACA;MACA;MACAA;QACA;UACAuF;YAAAX;YAAAY;YAAAzD;UAAA;QACA;MACA,CAJA;MAKAwD;QACA;QACA;QACA;UACAxD,YADA;UAEAyD,QAFA;UAGAL,eAHA;UAIAM,aAJA;UAKAC;YACA,iBACAC;cACAC;gBACA5B,MADA;gBAEA6B,YAFA;gBAGAC;cAHA,CADA;cAMAC;gBACA;kBACAC;kBACAZ;;kBACA;oBACAA;sBACA;wBACAA;sBACA;oBACA,CAJA;kBAKA;gBACA;cAXA;YANA,EADA;UAsBA;QA5BA;QA8BAA;MACA,CAlCA;IAmCA,CA/EA;IAgFA;IACAa,cAjFA,0BAiFAC,SAjFA,EAiFA;MACA;IACA,CAnFA;IAoFA;IACAC,kBArFA,gCAqFA;MAAA;;MACAC;QACA;MACA,CAFA;IAGA,CAzFA;IA0FA;IACAC,QA3FA,oBA2FAC,IA3FA,EA2FAC,MA3FA,EA2FAC,KA3FA,EA2FA;MACA;QACA;MACA;IACA,CA/FA;IAgGA;IACAC,YAjGA,wBAiGA1B,GAjGA,EAiGA;MAAA;;MACA;MACA;MACA2B;QAAA;;QACA;UACAnF,wBADA;UAEAO,oBAFA;UAGAC,qBAHA;UAIAC,gBAJA;UAKAC,wBALA;UAMAC,QANA;UAMA;UACAC,kBAPA;UAQAC,gBARA;UASAC,gBATA;UAUAC,cAVA;UAWAC,oBAXA;UAYAC,0BAZA;UAaAC,gBAbA;UAcAC,mBAdA;UAeAC,UAfA;UAgBAC,gBAhBA;UAiBAC,4BAjBA;UAiBA;UACAC,KAlBA;UAmBAE,SAnBA;UAoBAE,MApBA;UAqBAD,WArBA;UAsBAF,kBAtBA;UAuBAI,oBAvBA;UAwBAG,YAxBA;UAyBAC,gBAzBA;UA0BAE,wBA1BA;UA0BA;UACAC;QA3BA,mDA4BAqB,WA5BA,uDA6BAA,eA7BA,wDA8BAA,gBA9BA,2DA+BA,CA/BA;;QAiCA;MACA,CAnCA,EAmCA,GAnCA;IAoCA,CAxIA;IAyIA4B,MAzIA,oBAyIA;MACA;IACA,CA3IA;IA4IA;IACAC,YA7IA,wBA6IAjC,CA7IA,EA6IA;MACA;IACA,CA/IA;IAgJA;IACAkC,OAjJA,qBAiJA;MAAA;;MACA;MACAC,0CACA7B,IADA;QAAA,mEACA;UAAA;UAAA;YAAA;cAAA;gBAAA;kBACAG,IADA,GACA,MADA;kBAEAtD,IAFA,GAEAiF,aAFA;kBAGAb,SAHA,GAGA;oBACAnC,iBADA;oBAEAmB,SAFA;oBAGAC;kBAHA,CAHA;kBAQA;kBACA,6CACA,6FADA;;kBAGA;;kBACA;;kBACA;;kBACA;kBACAC;oBACAA;kBACA,CAFA;kBAGApF,IAnBA,GAmBA8B,UAnBA;kBAoBAkF,IApBA,GAoBA,EApBA;;kBAqBA;oBACA;sBACAA;oBACA;kBACA;;kBACA5B;kBACAA;kBACA;;gBA5BA;gBAAA;kBAAA;cAAA;YAAA;UAAA;QAAA,CADA;;QAAA;UAAA;QAAA;MAAA,KA+BAC,KA/BA,CA+BA;QACA;;QACA;MACA,CAlCA;IAmCA,CAtLA;IAuLA;IACA4B,IAxLA,gBAwLAvH,IAxLA,EAwLA;MAAA;;MACA;;MACA;QACA;QACA;UACA;YACA;YACA;YACA;YACA,uCACA,mGADA;YAGAwH,yCACAjC,IADA;cAAA,oEACA;gBAAA;kBAAA;oBAAA;sBAAA;wBACA;;wBACA;;wBACAyB;0BACA;4BACAS;0BADA;wBAGA,CAJA,EAIA,GAJA;;sBAHA;sBAAA;wBAAA;oBAAA;kBAAA;gBAAA;cAAA,CADA;;cAAA;gBAAA;cAAA;YAAA,KAUA9B,KAVA,CAUA;cACA;;cACA;YACA,CAbA;UAcA,CArBA,MAqBA;YACA;UACA;QACA,CAzBA;MA0BA,CA5BA,MA4BA;QACA;UACA;YACA;cACA;YACA;;YACA;cACA;YACA;;YACA;cACA;YACA;;YACA;cACA;YACA,CAFA,MAEA;cACA;gBACA;kBACA;gBACA;;gBACA;kBACA;gBACA;cACA;YACA;;YACA;UACA,CAvBA,MAuBA;YACA;UACA;QACA,CA3BA;MA4BA,CA7BA,MA6BA;QACA;UACA;QACA,CAFA,MAEA;UACA;QACA;MACA;IACA,CA1PA;IA2PA;IACA+B,IA5PA,kBA4PA;MACA;IACA,CA9PA;IA+PA;IACAC,UAhQA,sBAgQAC,GAhQA,EAgQA;MACA;IACA,CAlQA;IAmQA;IACAC,WApQA,uBAoQAC,GApQA,EAoQA7F,MApQA,EAoQAiD,KApQA,EAoQA;MACA;MACA;MACA;MACA;IACA,CAzQA;IA0QA;IACA6C,MA3QA,kBA2QAC,EA3QA,EA2QA;MACA;QACA;UACA;UACA;;QACA;UACA;YACA;UACA;;UACA;MARA;;MAUA;IACA,CAvRA;IAwRA;IACAC,OAzRA,mBAyRAD,EAzRA,EAyRA;MAAA;;MACA;MACA;QACA;;QACA;MACA,CAHA;MAIA;IACA,CAhSA;IAiSAE,YAjSA,wBAiSAC,CAjSA,EAiSA;MACA;MACA;IACA,CApSA;IAqSA;IACAC,WAtSA,yBAsSA;MACA;MACA;MACA;MACA;IACA,CA3SA;IA4SA;IACAC,eA7SA,2BA6SApD,CA7SA,EA6SAqD,IA7SA,EA6SA;MACA;IACA,CA/SA;IAgTAC,aAhTA,yBAgTAtD,CAhTA,EAgTAqD,IAhTA,EAgTA;MACA;IACA,CAlTA;IAmTA;IACAE,cApTA,0BAoTAvD,CApTA,EAoTA;MACAA;IACA,CAtTA;IAuTAwD,eAvTA,2BAuTAxD,CAvTA,EAuTAqD,IAvTA,EAuTA;MACArD;;MACA;QACA;MACA;;MACA;;MACA;MACA;MACAyD;MACA;IACA;EAjUA;AA5NA","names":["name","components","goodsList","uploadPictures","WangEditor","freightTemplate","data","submitOpen","spinShow","isChoice","current","modalPic","grid","xl","lg","md","sm","xs","grid2","gridPic","gridBtn","myConfig","autoHeightEnabled","initialFrameHeight","initialFrameWidth","UEDITOR_HOME_URL","serverUrl","modals","modal_loading","images","templateList","columns","specsData","picTit","tableIndex","formValidate","info","title","image","unit_name","price","effective_time","stock","sales","sort","postage","is_postage","is_commission","is_host","is_show","section_time","description","id","product_id","people","once_num","num","temp_id","attrs","items","virtual","virtualPeople","head_commission","logistics","freight","ruleValidate","required","message","trigger","type","min","cost","give_integral","copy","computed","mapState","labelWidth","labelPosition","mounted","methods","changePrice","e","index","getEditorContent","productAttrs","row","productAttrsApi","then","width","align","that","catch","inputChange","$index","key","minWidth","render","h","props","precision","value","on","params","changeCheckbox","selection","productGetTemplate","productGetTemplateApi","validate","prop","status","error","getProductId","setTimeout","cancel","onchangeTime","getInfo","combinationInfoApi","res","attr","next","combinationCreatApi","path","step","getContent","val","modalPicTap","tit","getPic","pc","getPicD","handleRemove","i","changeGoods","handleDragStart","item","handleDragEnd","handleDragOver","handleDragEnter","newItems"],"sourceRoot":"src/pages/marketing/storeCombination","sources":["create.vue"],"sourcesContent":["<template>\r\n <div>\r\n <div class=\"i-layout-page-header header_top\">\r\n <div class=\"i-layout-page-header fl_header\">\r\n <router-link :to=\"{ path: '/admin/marketing/store_combination/index' }\"\r\n ><Button icon=\"ios-arrow-back\" size=\"small\" type=\"text\">返回</Button></router-link\r\n >\r\n <Divider type=\"vertical\" />\r\n <span\r\n class=\"ivu-page-header-title mr20\"\r\n style=\"padding: 0\"\r\n v-text=\"$route.params.id ? '编辑拼团商品' : '添加拼团商品'\"\r\n ></span>\r\n </div>\r\n </div>\r\n <Card :bordered=\"false\" dis-hover class=\"ivu-mt\">\r\n <Row type=\"flex\" class=\"mt30 acea-row row-middle row-center\">\r\n <Col span=\"20\">\r\n <Steps :current=\"current\">\r\n <Step title=\"选择拼团商品\"></Step>\r\n <Step title=\"填写基础信息\"></Step>\r\n <Step title=\"修改商品详情\"></Step>\r\n </Steps>\r\n </Col>\r\n <Col span=\"23\">\r\n <Form\r\n class=\"form mt30\"\r\n ref=\"formValidate\"\r\n :model=\"formValidate\"\r\n :rules=\"ruleValidate\"\r\n @on-validate=\"validate\"\r\n :label-width=\"labelWidth\"\r\n :label-position=\"labelPosition\"\r\n @submit.native.prevent\r\n >\r\n <FormItem label=\"选择商品:\" prop=\"image_input\" v-if=\"current === 0\">\r\n <div class=\"picBox\" @click=\"changeGoods\">\r\n <div class=\"pictrue\" v-if=\"formValidate.image\">\r\n <img v-lazy=\"formValidate.image\" />\r\n </div>\r\n <div class=\"upLoad acea-row row-center-wrapper\" v-else>\r\n <Icon type=\"ios-camera-outline\" size=\"26\" />\r\n </div>\r\n </div>\r\n </FormItem>\r\n <Row v-show=\"current === 1\" type=\"flex\">\r\n <Col span=\"24\">\r\n <FormItem label=\"商品主图:\" prop=\"image\">\r\n <div class=\"picBox\" @click=\"modalPicTap('dan', 'danFrom')\">\r\n <div class=\"pictrue\" v-if=\"formValidate.image\">\r\n <img v-lazy=\"formValidate.image\" />\r\n </div>\r\n <div class=\"upLoad acea-row row-center-wrapper\" v-else>\r\n <Icon type=\"ios-camera-outline\" size=\"26\" />\r\n </div>\r\n </div>\r\n </FormItem>\r\n </Col>\r\n <Col span=\"24\">\r\n <FormItem label=\"商品轮播图:\" prop=\"images\">\r\n <div class=\"acea-row\">\r\n <div\r\n class=\"pictrue\"\r\n v-for=\"(item, index) in formValidate.images\"\r\n :key=\"index\"\r\n draggable=\"true\"\r\n @dragstart=\"handleDragStart($event, item)\"\r\n @dragover.prevent=\"handleDragOver($event, item)\"\r\n @dragenter=\"handleDragEnter($event, item)\"\r\n @dragend=\"handleDragEnd($event, item)\"\r\n >\r\n <img v-lazy=\"item\" />\r\n <Button\r\n shape=\"circle\"\r\n icon=\"md-close\"\r\n @click.native=\"handleRemove(index)\"\r\n class=\"btndel\"\r\n ></Button>\r\n </div>\r\n <div\r\n v-if=\"formValidate.images.length < 10\"\r\n class=\"upLoad acea-row row-center-wrapper\"\r\n @click=\"modalPicTap('duo')\"\r\n >\r\n <Icon type=\"ios-camera-outline\" size=\"26\" />\r\n </div>\r\n </div>\r\n </FormItem>\r\n </Col>\r\n <Col span=\"24\">\r\n <Col v-bind=\"grid\">\r\n <FormItem label=\"拼团名称:\" prop=\"title\" label-for=\"title\">\r\n <Input placeholder=\"请输入拼团名称\" element-id=\"title\" v-model=\"formValidate.title\" />\r\n </FormItem>\r\n </Col>\r\n </Col>\r\n <Col span=\"24\">\r\n <Col v-bind=\"grid\">\r\n <FormItem label=\"拼团简介:\" prop=\"info\" label-for=\"info\">\r\n <Input\r\n placeholder=\"请输入拼团简介\"\r\n type=\"textarea\"\r\n :rows=\"4\"\r\n element-id=\"info\"\r\n v-model=\"formValidate.info\"\r\n />\r\n </FormItem>\r\n </Col>\r\n </Col>\r\n <Col span=\"24\">\r\n <FormItem label=\"拼团时间:\" prop=\"section_time\">\r\n <div class=\"acea-row row-middle\">\r\n <DatePicker\r\n :editable=\"false\"\r\n type=\"datetimerange\"\r\n format=\"yyyy-MM-dd HH:mm\"\r\n placeholder=\"请选择活动时间\"\r\n @on-change=\"onchangeTime\"\r\n class=\"perW30\"\r\n :value=\"formValidate.section_time\"\r\n v-model=\"formValidate.section_time\"\r\n ></DatePicker>\r\n <div class=\"ml10 grey\">设置活动开启结束时间,用户可以在设置时间内发起参与拼团</div>\r\n </div>\r\n </FormItem>\r\n </Col>\r\n <Col span=\"24\" v-if=\"formValidate.virtual_type == 0\">\r\n <FormItem label=\"物流方式:\" prop=\"logistics\">\r\n <CheckboxGroup v-model=\"formValidate.logistics\">\r\n <Checkbox label=\"1\">快递</Checkbox>\r\n <Checkbox label=\"2\">到店核销</Checkbox>\r\n </CheckboxGroup>\r\n </FormItem>\r\n </Col>\r\n <Col span=\"24\" v-if=\"formValidate.virtual_type == 0\">\r\n <FormItem label=\"运费设置:\" :prop=\"formValidate.freight != 1 ? 'freight' : ''\">\r\n <RadioGroup v-model=\"formValidate.freight\">\r\n <Radio :label=\"2\">固定邮费</Radio>\r\n <Radio :label=\"3\">运费模板</Radio>\r\n </RadioGroup>\r\n </FormItem>\r\n </Col>\r\n <Col\r\n span=\"24\"\r\n v-if=\"formValidate.freight != 3 && formValidate.freight != 1 && formValidate.virtual_type == 0\"\r\n >\r\n <FormItem label=\"\">\r\n <div class=\"acea-row\">\r\n <InputNumber\r\n min=\"0.01\"\r\n max=\"10000\"\r\n v-model=\"formValidate.postage\"\r\n placeholder=\"请输入金额\"\r\n class=\"perW20 maxW\"\r\n />\r\n </div>\r\n </FormItem>\r\n </Col>\r\n <Col span=\"24\" v-if=\"formValidate.freight == 3 && formValidate.virtual_type == 0\">\r\n <FormItem label=\"\" prop=\"temp_id\">\r\n <div class=\"acea-row\">\r\n <Select v-model=\"formValidate.temp_id\" clearable placeholder=\"请选择运费模板\" class=\"perW20 maxW\">\r\n <Option v-for=\"(item, index) in templateList\" :value=\"item.id\" :key=\"index\">{{\r\n item.name\r\n }}</Option>\r\n </Select>\r\n <span class=\"addfont\" @click=\"freight\">新增运费模板</span>\r\n </div>\r\n </FormItem>\r\n </Col>\r\n <Col span=\"24\">\r\n <FormItem label=\"拼团时效(单位 小时):\" prop=\"effective_time\">\r\n <div class=\"acea-row row-middle\">\r\n <InputNumber\r\n placeholder=\"请输入拼团时效(单位 小时)\"\r\n class=\"perW20\"\r\n element-id=\"effective_time\"\r\n v-model=\"formValidate.effective_time\"\r\n />\r\n <div class=\"ml10 grey\">\r\n 用户发起拼团后开始计时,需在设置时间内邀请到规定好友人数参团,超过时效时间,则系统判定拼团失败,自动发起退款\r\n </div>\r\n </div>\r\n </FormItem>\r\n </Col>\r\n <Col span=\"24\">\r\n <FormItem label=\"拼团人数:\" prop=\"people\">\r\n <div class=\"acea-row row-middle\">\r\n <InputNumber\r\n :min=\"2\"\r\n :max=\"10000\"\r\n placeholder=\"请输入拼团人数\"\r\n :precision=\"0\"\r\n element-id=\"people\"\r\n v-model=\"formValidate.people\"\r\n class=\"perW20\"\r\n />\r\n <div class=\"ml10 grey\">单次拼团需要参与的用户数</div>\r\n </div>\r\n </FormItem>\r\n </Col>\r\n <Col span=\"24\">\r\n <FormItem label=\"虚拟成团补齐人数:\" prop=\"virtualPeople\">\r\n <div class=\"acea-row row-middle\">\r\n <InputNumber\r\n placeholder=\"设置虚拟成团的补齐人数\"\r\n :precision=\"0\"\r\n :max=\"10000\"\r\n :min=\"0\"\r\n v-model=\"formValidate.virtualPeople\"\r\n element-id=\"virtualPeople\"\r\n class=\"perW20\"\r\n />\r\n <div class=\"ml10 grey\">\r\n 设置虚拟成团的补齐人数,如:5人团设置补齐2人,当团队成员大于等于3人时,拼团结束时自动补齐剩余最多2个位置,不开启虚拟成团请设置为0\r\n </div>\r\n </div>\r\n </FormItem>\r\n </Col>\r\n <Col span=\"24\">\r\n <FormItem label=\"总购买数量限制:\" prop=\"num\">\r\n <div class=\"acea-row row-middle\">\r\n <InputNumber\r\n :min=\"1\"\r\n placeholder=\"请输入总数量限制\"\r\n :precision=\"0\"\r\n :max=\"10000\"\r\n element-id=\"num\"\r\n v-model=\"formValidate.num\"\r\n class=\"perW20\"\r\n />\r\n <div class=\"ml10 grey\">\r\n 该商品活动期间内,用户可购买的最大数量。例如设置为4,表示本次活动有效期内,每个用户最多可购买4件\r\n </div>\r\n </div>\r\n </FormItem>\r\n </Col>\r\n <Col span=\"24\">\r\n <FormItem label=\"单次购买数量限制:\" prop=\"once_num\">\r\n <div class=\"acea-row row-middle\">\r\n <InputNumber\r\n :min=\"1\"\r\n placeholder=\"请输入单次购买数量限制\"\r\n :precision=\"0\"\r\n :max=\"10000\"\r\n element-id=\"once_num\"\r\n v-model=\"formValidate.once_num\"\r\n class=\"perW20\"\r\n />\r\n <div class=\"ml10 grey\">\r\n 用户参与拼团时,一次购买最大数量限制。例如设置为2,表示每次参与拼团时,用户一次购买数量最大可选择2个\r\n </div>\r\n </div>\r\n </FormItem>\r\n </Col>\r\n <Col span=\"24\">\r\n <FormItem label=\"单位:\" prop=\"unit_name\" label-for=\"unit_name\">\r\n <Input\r\n placeholder=\"请输入单位\"\r\n element-id=\"unit_name\"\r\n v-model=\"formValidate.unit_name\"\r\n class=\"perW20\"\r\n />\r\n </FormItem>\r\n </Col>\r\n <Col span=\"24\">\r\n <FormItem label=\"团长返佣比例:\" prop=\"head_commission\">\r\n <div class=\"acea-row row-middle\">\r\n <InputNumber\r\n :min=\"0\"\r\n :max=\"100\"\r\n placeholder=\"团长返佣比例\"\r\n :precision=\"0\"\r\n element-id=\"head_commission\"\r\n v-model=\"formValidate.head_commission\"\r\n class=\"perW20\"\r\n />\r\n <div class=\"ml10 grey\">\r\n 拼团成功后,如果团长是分销员,则在订单确认收货时会给团长返一定的佣金,佣金比例是实际支付金额的0-100%\r\n </div>\r\n </div>\r\n </FormItem>\r\n </Col>\r\n <Col span=\"24\">\r\n <FormItem label=\"拼团是否参与分销:\" props=\"is_commission\" label-for=\"is_commission\">\r\n <div class=\"acea-row row-middle\">\r\n <RadioGroup element-id=\"is_commission\" v-model=\"formValidate.is_commission\">\r\n <Radio :label=\"1\" class=\"radio\">开启</Radio>\r\n <Radio :label=\"0\">关闭</Radio>\r\n </RadioGroup>\r\n <div class=\"ml10 grey\">拼团商品是否参与商城分销返佣</div>\r\n </div>\r\n </FormItem>\r\n </Col>\r\n <Col span=\"24\">\r\n <FormItem label=\"排序:\">\r\n <InputNumber\r\n placeholder=\"请输入排序\"\r\n element-id=\"sort\"\r\n :precision=\"0\"\r\n :max=\"10000\"\r\n :min=\"0\"\r\n v-model=\"formValidate.sort\"\r\n class=\"perW10\"\r\n />\r\n </FormItem>\r\n </Col>\r\n <Col span=\"24\">\r\n <FormItem label=\"热门推荐:\" props=\"is_hot\" label-for=\"is_hot\">\r\n <RadioGroup element-id=\"is_hot\" v-model=\"formValidate.is_host\">\r\n <Radio :label=\"1\" class=\"radio\">开启</Radio>\r\n <Radio :label=\"0\">关闭</Radio>\r\n </RadioGroup>\r\n </FormItem>\r\n </Col>\r\n <Col span=\"24\">\r\n <FormItem label=\"活动状态:\" props=\"is_show\" label-for=\"is_show\">\r\n <RadioGroup element-id=\"status\" v-model=\"formValidate.is_show\">\r\n <Radio :label=\"1\" class=\"radio\">开启</Radio>\r\n <Radio :label=\"0\">关闭</Radio>\r\n </RadioGroup>\r\n </FormItem>\r\n </Col>\r\n <Col span=\"24\">\r\n <FormItem label=\"规格选择:\">\r\n <Table :data=\"specsData\" :columns=\"columns\" border @on-selection-change=\"changeCheckbox\">\r\n <template slot-scope=\"{ row, index }\" slot=\"price\">\r\n <InputNumber\r\n v-model=\"row.price\"\r\n :min=\"0\"\r\n :precision=\"2\"\r\n class=\"priceBox\"\r\n :active-change=\"false\"\r\n @on-change=\"\r\n (e) => {\r\n changePrice(e, index);\r\n }\r\n \"\r\n ></InputNumber>\r\n </template>\r\n <template slot-scope=\"{ row, index }\" slot=\"pic\">\r\n <div\r\n class=\"acea-row row-middle row-center-wrapper\"\r\n @click=\"modalPicTap('dan', 'danTable', index)\"\r\n >\r\n <div class=\"pictrue pictrueTab\" v-if=\"row.pic\">\r\n <img v-lazy=\"row.pic\" />\r\n </div>\r\n <div class=\"upLoad pictrueTab acea-row row-center-wrapper\" v-else>\r\n <Icon type=\"ios-camera-outline\" size=\"21\" />\r\n </div>\r\n </div>\r\n </template>\r\n </Table>\r\n </FormItem>\r\n </Col>\r\n </Row>\r\n <Row v-show=\"current === 2\">\r\n <Col span=\"24\">\r\n <FormItem label=\"内容:\">\r\n <WangEditor\r\n style=\"width: 90%\"\r\n :content=\"formValidate.description\"\r\n @editorContent=\"getEditorContent\"\r\n ></WangEditor>\r\n </FormItem>\r\n </Col>\r\n </Row>\r\n <FormItem>\r\n <Button\r\n class=\"submission mr15\"\r\n @click=\"step\"\r\n v-show=\"current !== 0\"\r\n :disabled=\"$route.params.id && current === 1\"\r\n >上一步</Button\r\n >\r\n <Button\r\n type=\"primary\"\r\n :disabled=\"submitOpen && current === 2\"\r\n class=\"submission\"\r\n @click=\"next('formValidate')\"\r\n v-text=\"current === 2 ? '提交' : '下一步'\"\r\n ></Button>\r\n </FormItem>\r\n </Form>\r\n <Spin size=\"large\" fix v-if=\"spinShow\"></Spin>\r\n </Col>\r\n </Row>\r\n </Card>\r\n <!-- 选择商品-->\r\n <Modal\r\n v-model=\"modals\"\r\n title=\"商品列表\"\r\n footerHide\r\n class=\"paymentFooter\"\r\n scrollable\r\n width=\"900\"\r\n @on-cancel=\"cancel\"\r\n >\r\n <goods-list ref=\"goodslist\" @getProductId=\"getProductId\"></goods-list>\r\n </Modal>\r\n <!-- 上传图片-->\r\n <Modal\r\n v-model=\"modalPic\"\r\n width=\"950px\"\r\n scrollable\r\n footer-hide\r\n closable\r\n title=\"上传商品图\"\r\n :mask-closable=\"false\"\r\n :z-index=\"888\"\r\n >\r\n <uploadPictures\r\n :isChoice=\"isChoice\"\r\n @getPic=\"getPic\"\r\n @getPicD=\"getPicD\"\r\n :gridBtn=\"gridBtn\"\r\n :gridPic=\"gridPic\"\r\n v-if=\"modalPic\"\r\n ></uploadPictures>\r\n </Modal>\r\n <!-- 运费模板-->\r\n <freight-template ref=\"template\" @addSuccess=\"productGetTemplate\"></freight-template>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapState } from 'vuex';\r\nimport goodsList from '@/components/goodsList/index';\r\nimport WangEditor from '@/components/wangEditor/index.vue';\r\nimport uploadPictures from '@/components/uploadPictures';\r\nimport { combinationInfoApi, combinationCreatApi, productAttrsApi } from '@/api/marketing';\r\nimport { productGetTemplateApi } from '@/api/product';\r\nimport freightTemplate from '@/components/freightTemplate/index';\r\nexport default {\r\n name: 'storeCombinationCreate',\r\n components: {\r\n goodsList,\r\n uploadPictures,\r\n WangEditor,\r\n freightTemplate,\r\n },\r\n data() {\r\n return {\r\n submitOpen: false,\r\n spinShow: false,\r\n isChoice: '',\r\n current: 0,\r\n modalPic: false,\r\n grid: {\r\n xl: 12,\r\n lg: 20,\r\n md: 24,\r\n sm: 24,\r\n xs: 24,\r\n },\r\n grid2: {\r\n xl: 8,\r\n lg: 8,\r\n md: 12,\r\n sm: 24,\r\n xs: 24,\r\n },\r\n gridPic: {\r\n xl: 6,\r\n lg: 8,\r\n md: 12,\r\n sm: 12,\r\n xs: 12,\r\n },\r\n gridBtn: {\r\n xl: 4,\r\n lg: 8,\r\n md: 8,\r\n sm: 8,\r\n xs: 8,\r\n },\r\n myConfig: {\r\n autoHeightEnabled: false, // 编辑器不自动被内容撑高\r\n initialFrameHeight: 500, // 初始容器高度\r\n initialFrameWidth: '100%', // 初始容器宽度\r\n UEDITOR_HOME_URL: '/admin/UEditor/',\r\n serverUrl: '',\r\n },\r\n modals: false,\r\n modal_loading: false,\r\n images: [],\r\n templateList: [],\r\n columns: [],\r\n specsData: [],\r\n picTit: '',\r\n tableIndex: 0,\r\n formValidate: {\r\n images: [],\r\n info: '',\r\n title: '',\r\n image: '',\r\n unit_name: '',\r\n price: 0,\r\n effective_time: 24,\r\n stock: 1,\r\n sales: 0,\r\n sort: 0,\r\n postage: 0,\r\n is_postage: 0,\r\n is_commission: 0,\r\n is_host: 0,\r\n is_show: 0,\r\n section_time: [],\r\n description: '',\r\n id: 0,\r\n product_id: 0,\r\n people: 2,\r\n once_num: 1,\r\n num: 1,\r\n temp_id: '',\r\n attrs: [],\r\n items: [],\r\n virtual: 100,\r\n virtualPeople: 0,\r\n head_commission: 0,\r\n logistics: ['1'], //选择物流方式\r\n freight: 2, //运费设置\r\n postage: 1, //设置运费金额\r\n },\r\n ruleValidate: {\r\n image: [{ required: true, message: '请选择主图', trigger: 'change' }],\r\n images: [\r\n {\r\n required: true,\r\n type: 'array',\r\n message: '请选择主图',\r\n trigger: 'change',\r\n },\r\n {\r\n type: 'array',\r\n min: 1,\r\n message: 'Choose two hobbies at best',\r\n trigger: 'change',\r\n },\r\n ],\r\n title: [{ required: true, message: '请输入拼团名称', trigger: 'blur' }],\r\n info: [{ required: true, message: '请输入拼团简介', trigger: 'blur' }],\r\n section_time: [\r\n {\r\n required: true,\r\n type: 'array',\r\n message: '请选择活动时间',\r\n trigger: 'change',\r\n },\r\n ],\r\n unit_name: [{ required: true, message: '请输入单位', trigger: 'blur' }],\r\n price: [\r\n {\r\n required: true,\r\n type: 'number',\r\n message: '请输入拼团价',\r\n trigger: 'blur',\r\n },\r\n ],\r\n cost: [\r\n {\r\n required: true,\r\n type: 'number',\r\n message: '请输入成本价',\r\n trigger: 'blur',\r\n },\r\n ],\r\n stock: [\r\n {\r\n required: true,\r\n type: 'number',\r\n message: '请输入库存',\r\n trigger: 'blur',\r\n },\r\n ],\r\n give_integral: [\r\n {\r\n required: true,\r\n type: 'number',\r\n message: '请输入赠送积分',\r\n trigger: 'blur',\r\n },\r\n ],\r\n effective_time: [\r\n {\r\n required: true,\r\n type: 'number',\r\n message: '请输入拼团时效(单位 小时)',\r\n trigger: 'blur',\r\n },\r\n ],\r\n people: [\r\n {\r\n required: true,\r\n type: 'number',\r\n message: '请输入拼团人数',\r\n trigger: 'blur',\r\n },\r\n ],\r\n num: [\r\n {\r\n required: true,\r\n type: 'number',\r\n message: '请输入购买数量限制',\r\n trigger: 'blur',\r\n },\r\n ],\r\n once_num: [\r\n {\r\n required: true,\r\n type: 'number',\r\n message: '请输入单次购买数量限制',\r\n trigger: 'blur',\r\n },\r\n ],\r\n virtualPeople: [\r\n {\r\n required: true,\r\n type: 'number',\r\n message: '请输入虚拟成团补齐人数',\r\n trigger: 'blur',\r\n },\r\n ],\r\n temp_id: [\r\n {\r\n required: true,\r\n message: '请选择运费模板',\r\n trigger: 'change',\r\n type: 'number',\r\n },\r\n ],\r\n },\r\n copy: 0,\r\n description: '',\r\n };\r\n },\r\n computed: {\r\n ...mapState('media', ['isMobile']),\r\n labelWidth() {\r\n return this.isMobile ? undefined : 155;\r\n },\r\n labelPosition() {\r\n return this.isMobile ? 'top' : 'right';\r\n },\r\n },\r\n mounted() {\r\n if (this.$route.params.id) {\r\n this.copy = this.$route.params.copy;\r\n this.current = 1;\r\n this.getInfo();\r\n }\r\n this.productGetTemplate();\r\n },\r\n methods: {\r\n changePrice(e, index) {\r\n this.$set(this.specsData[index], 'price', e);\r\n },\r\n getEditorContent(data) {\r\n this.description = data;\r\n },\r\n // 添加运费模板\r\n freight() {\r\n this.$refs.template.id = 0;\r\n this.$refs.template.isTemplate = true;\r\n },\r\n // 拼团规格;\r\n productAttrs(row) {\r\n let that = this;\r\n productAttrsApi(row.id, 3)\r\n .then((res) => {\r\n let data = res.data.info;\r\n let selection = {\r\n type: 'selection',\r\n width: 60,\r\n align: 'center',\r\n };\r\n that.specsData = data.attrs;\r\n that.specsData.forEach(function (item, index) {\r\n that.$set(that.specsData[index], 'id', index);\r\n });\r\n that.formValidate.items = data.items;\r\n that.columns = data.header;\r\n that.columns.unshift(selection);\r\n that.inputChange(data);\r\n })\r\n .catch((res) => {\r\n that.$Message.error(res.msg);\r\n });\r\n },\r\n inputChange(data) {\r\n let that = this;\r\n let $index = [];\r\n data.header.forEach(function (item, index) {\r\n if (item.type === 1) {\r\n $index.push({ index: index, key: item.key, title: item.title });\r\n }\r\n });\r\n $index.forEach(function (item, index) {\r\n let title = item.title;\r\n let key = item.key;\r\n let row = {\r\n title: title,\r\n key: key,\r\n align: 'center',\r\n minWidth: 100,\r\n render: (h, params) => {\r\n return h('div', [\r\n h('InputNumber', {\r\n props: {\r\n min: 1,\r\n precision: 0,\r\n value: params.row.quota,\r\n },\r\n on: {\r\n 'on-change': (e) => {\r\n params.row.quota = e;\r\n that.specsData[params.index] = params.row;\r\n if (!!that.formValidate.attrs && that.formValidate.attrs.length) {\r\n that.formValidate.attrs.forEach((v, index) => {\r\n if (v.id === params.row.id) {\r\n that.formValidate.attrs.splice(index, 1, params.row);\r\n }\r\n });\r\n }\r\n },\r\n },\r\n }),\r\n ]);\r\n },\r\n };\r\n that.columns.splice(item.index, 1, row);\r\n });\r\n },\r\n // 多选\r\n changeCheckbox(selection) {\r\n this.formValidate.attrs = selection;\r\n },\r\n // 获取运费模板;\r\n productGetTemplate() {\r\n productGetTemplateApi().then((res) => {\r\n this.templateList = res.data;\r\n });\r\n },\r\n // 表单验证\r\n validate(prop, status, error) {\r\n if (status === false) {\r\n this.$Message.error(error);\r\n }\r\n },\r\n // 商品id\r\n getProductId(row) {\r\n this.modal_loading = false;\r\n this.modals = false;\r\n setTimeout(() => {\r\n this.formValidate = {\r\n images: row.slider_image,\r\n info: row.store_info,\r\n title: row.store_name,\r\n image: row.image,\r\n unit_name: row.unit_name,\r\n price: 0, // 不取商品中的原价\r\n effective_time: 24,\r\n stock: row.stock,\r\n sales: row.sales,\r\n sort: row.sort,\r\n postage: row.postage,\r\n is_postage: row.is_postage,\r\n is_commission: 0,\r\n is_host: row.is_hot,\r\n is_show: 0,\r\n section_time: [],\r\n description: row.description, // 不取商品中的\r\n id: 0,\r\n people: 2,\r\n num: 1,\r\n once_num: 1,\r\n product_id: row.id,\r\n temp_id: row.temp_id,\r\n virtual: 100,\r\n virtualPeople: 0,\r\n logistics: row.logistics, //选择物流方式\r\n freight: row.freight, //运费设置\r\n postage: row.postage, //设置运费金额\r\n custom_form: row.custom_form, //自定义表单数据\r\n virtual_type: row.virtual_type, //虚拟商品类型\r\n head_commission: 0,\r\n };\r\n this.productAttrs(row);\r\n }, 500);\r\n },\r\n cancel() {\r\n this.modals = false;\r\n },\r\n // 具体日期\r\n onchangeTime(e) {\r\n this.formValidate.section_time = e;\r\n },\r\n // 详情\r\n getInfo() {\r\n this.spinShow = true;\r\n combinationInfoApi(this.$route.params.id)\r\n .then(async (res) => {\r\n let that = this;\r\n let info = res.data.info;\r\n let selection = {\r\n type: 'selection',\r\n width: 60,\r\n align: 'center',\r\n };\r\n this.formValidate = info;\r\n this.formValidate.virtualPeople = parseInt(\r\n this.formValidate.people - this.formValidate.people * (this.formValidate.virtual / 100),\r\n );\r\n this.$set(this.formValidate, 'items', info.attrs.items);\r\n this.columns = info.attrs.header;\r\n this.columns.unshift(selection);\r\n this.specsData = info.attrs.value;\r\n that.specsData.forEach(function (item, index) {\r\n that.$set(that.specsData[index], 'id', index);\r\n });\r\n let data = info.attrs;\r\n let attr = [];\r\n for (let index in info.attrs.value) {\r\n if (info.attrs.value[index]._checked) {\r\n attr.push(info.attrs.value[index]);\r\n }\r\n }\r\n that.formValidate.attrs = attr;\r\n that.inputChange(data);\r\n this.spinShow = false;\r\n })\r\n .catch((res) => {\r\n this.spinShow = false;\r\n this.$Message.error(res.msg);\r\n });\r\n },\r\n // 下一步\r\n next(name) {\r\n let that = this;\r\n if (this.current === 2) {\r\n this.formValidate.description = this.description;\r\n this.$refs[name].validate((valid) => {\r\n if (valid) {\r\n if (this.copy == 1) this.formValidate.copy = 1;\r\n this.formValidate.id = Number(this.$route.params.id) || 0;\r\n this.submitOpen = true;\r\n this.formValidate.virtual = parseInt(\r\n ((this.formValidate.people - this.formValidate.virtualPeople) / this.formValidate.people) * 100,\r\n );\r\n combinationCreatApi(this.formValidate)\r\n .then(async (res) => {\r\n this.submitOpen = false;\r\n this.$Message.success(res.msg);\r\n setTimeout(() => {\r\n this.$router.push({\r\n path: '/admin/marketing/store_combination/index',\r\n });\r\n }, 500);\r\n })\r\n .catch((res) => {\r\n this.submitOpen = false;\r\n this.$Message.error(res.msg);\r\n });\r\n } else {\r\n return false;\r\n }\r\n });\r\n } else if (this.current === 1) {\r\n this.$refs[name].validate((valid) => {\r\n if (valid) {\r\n if (that.formValidate.people < 2) {\r\n return that.$Message.error('拼团人数必须大于2');\r\n }\r\n if (that.formValidate.num < 0) {\r\n return that.$Message.error('购买数量限制必须大于0');\r\n }\r\n if (that.formValidate.once_num < 0) {\r\n return that.$Message.error('单次购买数量限制必须大于0');\r\n }\r\n if (!that.formValidate.attrs) {\r\n return that.$Message.error('请选择属性规格');\r\n } else {\r\n for (let index in that.formValidate.attrs) {\r\n if (that.formValidate.attrs[index].quota <= 0) {\r\n return that.$Message.error('拼团限量必须大于0');\r\n }\r\n if (this.formValidate.attrs[index].quota > this.formValidate.attrs[index]['stock']) {\r\n return this.$Message.error('拼团限量不能超过规格库存');\r\n }\r\n }\r\n }\r\n this.current += 1;\r\n } else {\r\n return this.$Message.warning('请完善您的信息');\r\n }\r\n });\r\n } else {\r\n if (this.formValidate.image) {\r\n this.current += 1;\r\n } else {\r\n this.$Message.warning('请选择商品');\r\n }\r\n }\r\n },\r\n // 上一步\r\n step() {\r\n this.current--;\r\n },\r\n // 内容\r\n getContent(val) {\r\n this.formValidate.description = val;\r\n },\r\n // 点击商品图\r\n modalPicTap(tit, picTit, index) {\r\n this.modalPic = true;\r\n this.isChoice = tit === 'dan' ? '单选' : '多选';\r\n this.picTit = picTit;\r\n this.tableIndex = index;\r\n },\r\n // 获取单张图片信息\r\n getPic(pc) {\r\n switch (this.picTit) {\r\n case 'danFrom':\r\n this.formValidate.image = pc.att_dir;\r\n break;\r\n default:\r\n if (!!this.formValidate.attrs && this.formValidate.attrs.length) {\r\n this.$set(this.specsData[this.tableIndex], '_checked', true);\r\n }\r\n this.specsData[this.tableIndex].pic = pc.att_dir;\r\n }\r\n this.modalPic = false;\r\n },\r\n // 获取多张图信息\r\n getPicD(pc) {\r\n this.images = pc;\r\n this.images.map((item) => {\r\n this.formValidate.images.push(item.att_dir);\r\n this.formValidate.images = this.formValidate.images.splice(0, 10);\r\n });\r\n this.modalPic = false;\r\n },\r\n handleRemove(i) {\r\n this.images.splice(i, 1);\r\n this.formValidate.images.splice(i, 1);\r\n },\r\n // 选择商品\r\n changeGoods() {\r\n this.modals = true;\r\n this.$refs.goodslist.formValidate.is_presale = 0;\r\n this.$refs.goodslist.getList();\r\n this.$refs.goodslist.goodsCategory();\r\n },\r\n // 移动\r\n handleDragStart(e, item) {\r\n this.dragging = item;\r\n },\r\n handleDragEnd(e, item) {\r\n this.dragging = null;\r\n },\r\n // 首先把div变成可以放置的元素,即重写dragenter/dragover\r\n handleDragOver(e) {\r\n e.dataTransfer.dropEffect = 'move';\r\n },\r\n handleDragEnter(e, item) {\r\n e.dataTransfer.effectAllowed = 'move';\r\n if (item === this.dragging) {\r\n return;\r\n }\r\n const newItems = [...this.formValidate.images];\r\n const src = newItems.indexOf(this.dragging);\r\n const dst = newItems.indexOf(item);\r\n newItems.splice(dst, 0, ...newItems.splice(src, 1));\r\n this.formValidate.images = newItems;\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"stylus\">\r\n.grey {\r\n color: #999;\r\n}\r\n\r\n.maxW /deep/.ivu-select-dropdown {\r\n max-width: 600px;\r\n}\r\n\r\n.ivu-table-wrapper {\r\n border-left: 1px solid #dcdee2;\r\n border-top: 1px solid #dcdee2;\r\n}\r\n\r\n.tabBox_img {\r\n width: 50px;\r\n height: 50px;\r\n}\r\n\r\n.tabBox_img img {\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.priceBox {\r\n width: 100%;\r\n}\r\n\r\n.form {\r\n .picBox {\r\n display: inline-block;\r\n cursor: pointer;\r\n }\r\n\r\n .pictrue {\r\n width: 60px;\r\n height: 60px;\r\n border: 1px dotted rgba(0, 0, 0, 0.1);\r\n margin-right: 15px;\r\n display: inline-block;\r\n position: relative;\r\n cursor: pointer;\r\n\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .btndel {\r\n position: absolute;\r\n z-index: 9;\r\n width: 20px !important;\r\n height: 20px !important;\r\n left: 46px;\r\n top: -4px;\r\n }\r\n }\r\n\r\n .upLoad {\r\n width: 58px;\r\n height: 58px;\r\n line-height: 58px;\r\n border: 1px dotted rgba(0, 0, 0, 0.1);\r\n border-radius: 4px;\r\n background: rgba(0, 0, 0, 0.02);\r\n cursor: pointer;\r\n }\r\n\r\n .col {\r\n color: #2d8cf0;\r\n cursor: pointer;\r\n }\r\n}\r\n\r\n.addfont {\r\n font-size: 13px;\r\n color: #1890FF;\r\n margin-left: 14px;\r\n cursor: pointer;\r\n margin-left: 10px;\r\n cursor: pointer;\r\n}\r\n</style>\r\n"]}]}