| 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\\storeIntegral\\create.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\item\\newItem\\admin\\src\\pages\\marketing\\storeIntegral\\create.vue","mtime":1677828270216},{"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:aW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICJFOi9pdGVtL25ld0l0ZW0vYWRtaW4vbm9kZV9tb2R1bGVzL0B2dWUvYmFiZWwtcHJlc2V0LWFwcC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9Db25zdW1hYmxlQXJyYXkuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRTovaXRlbS9uZXdJdGVtL2FkbWluL25vZGVfbW9kdWxlcy9AdnVlL2JhYmVsLXByZXNldC1hcHAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3IuanMiOwppbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tICJFOi9pdGVtL25ld0l0ZW0vYWRtaW4vbm9kZV9tb2R1bGVzL0B2dWUvYmFiZWwtcHJlc2V0LWFwcC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMi5qcyI7CmltcG9ydCAicmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmRlc2NyaXB0aW9uLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zcGxpY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zb3J0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KaW1wb3J0IHsgbWFwU3RhdGUgfSBmcm9tICd2dWV4JzsKaW1wb3J0IGdvb2RzTGlzdCBmcm9tICdAL2NvbXBvbmVudHMvZ29vZHNMaXN0L2luZGV4JzsKaW1wb3J0IFdhbmdFZGl0b3IgZnJvbSAnQC9jb21wb25lbnRzL3dhbmdFZGl0b3IvaW5kZXgudnVlJzsKaW1wb3J0IHVwbG9hZFBpY3R1cmVzIGZyb20gJ0AvY29tcG9uZW50cy91cGxvYWRQaWN0dXJlcyc7CmltcG9ydCB7IGludGVncmFsQWRkQXBpLCBwcm9kdWN0QXR0cnNBcGksIGludGVncmFsSW5mb0FwaSB9IGZyb20gJ0AvYXBpL21hcmtldGluZyc7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnc3RvcmVJbnRlZ3JhbENyZWF0ZScsCiAgY29tcG9uZW50czogewogICAgZ29vZHNMaXN0OiBnb29kc0xpc3QsCiAgICB1cGxvYWRQaWN0dXJlczogdXBsb2FkUGljdHVyZXMsCiAgICBXYW5nRWRpdG9yOiBXYW5nRWRpdG9yCiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgc3VibWl0T3BlbjogZmFsc2UsCiAgICAgIHNwaW5TaG93OiBmYWxzZSwKICAgICAgaXNDaG9pY2U6ICcnLAogICAgICBjdXJyZW50OiAwLAogICAgICBtb2RhbFBpYzogZmFsc2UsCiAgICAgIGdyaWQ6IHsKICAgICAgICB4bDogMTIsCiAgICAgICAgbGc6IDIwLAogICAgICAgIG1kOiAyNCwKICAgICAgICBzbTogMjQsCiAgICAgICAgeHM6IDI0CiAgICAgIH0sCiAgICAgIGdyaWQyOiB7CiAgICAgICAgeGw6IDgsCiAgICAgICAgbGc6IDEyLAogICAgICAgIG1kOiAxMiwKICAgICAgICBzbTogMjQsCiAgICAgICAgeHM6IDI0CiAgICAgIH0sCiAgICAgIGdyaWRQaWM6IHsKICAgICAgICB4bDogNiwKICAgICAgICBsZzogOCwKICAgICAgICBtZDogMTIsCiAgICAgICAgc206IDEyLAogICAgICAgIHhzOiAxMgogICAgICB9LAogICAgICBncmlkQnRuOiB7CiAgICAgICAgeGw6IDQsCiAgICAgICAgbGc6IDgsCiAgICAgICAgbWQ6IDgsCiAgICAgICAgc206IDgsCiAgICAgICAgeHM6IDgKICAgICAgfSwKICAgICAgbXlDb25maWc6IHsKICAgICAgICBhdXRvSGVpZ2h0RW5hYmxlZDogZmFsc2UsCiAgICAgICAgLy8g57yW6L6R5Zmo5LiN6Ieq5Yqo6KKr5YaF5a655pKR6auYCiAgICAgICAgaW5pdGlhbEZyYW1lSGVpZ2h0OiA1MDAsCiAgICAgICAgLy8g5Yid5aeL5a655Zmo6auY5bqmCiAgICAgICAgaW5pdGlhbEZyYW1lV2lkdGg6ICcxMDAlJywKICAgICAgICAvLyDliJ3lp4vlrrnlmajlrr3luqYKICAgICAgICBVRURJVE9SX0hPTUVfVVJMOiAnL2FkbWluL1VFZGl0b3IvJywKICAgICAgICBzZXJ2ZXJVcmw6ICcnCiAgICAgIH0sCiAgICAgIG1vZGFsczogZmFsc2UsCiAgICAgIG1vZGFsX2xvYWRpbmc6IGZhbHNlLAogICAgICBpbWFnZXM6IFtdLAogICAgICBmb3JtVmFsaWRhdGU6IHsKICAgICAgICBpbWFnZXM6IFtdLAogICAgICAgIGluZm86ICcnLAogICAgICAgIHRpdGxlOiAnJywKICAgICAgICBpbWFnZTogJycsCiAgICAgICAgdW5pdF9uYW1lOiAnJywKICAgICAgICBwcmljZTogMCwKICAgICAgICBvdF9wcmljZTogMCwKICAgICAgICBjb3N0OiAwLAogICAgICAgIHNhbGVzOiAwLAogICAgICAgIHN0b2NrOiAwLAogICAgICAgIHNvcnQ6IDAsCiAgICAgICAgbnVtOiAxLAogICAgICAgIG9uY2VfbnVtOiAxLAogICAgICAgIGdpdmVfaW50ZWdyYWw6IDAsCiAgICAgICAgcG9zdGFnZTogMCwKICAgICAgICBzZWN0aW9uX3RpbWU6IFtdLAogICAgICAgIGlzX3Bvc3RhZ2U6IDAsCiAgICAgICAgaXNfaG90OiAwLAogICAgICAgIHN0YXR1czogMCwKICAgICAgICBkZXNjcmlwdGlvbjogJycsCiAgICAgICAgaWQ6IDAsCiAgICAgICAgcHJvZHVjdF9pZDogMCwKICAgICAgICB0ZW1wX2lkOiAnJywKICAgICAgICB0aW1lX2lkOiAnJywKICAgICAgICBhdHRyczogW10sCiAgICAgICAgaXRlbXM6IFtdCiAgICAgIH0sCiAgICAgIGRlc2NyaXB0aW9uOiAnJywKICAgICAgdGVtcGxhdGVMaXN0OiBbXSwKICAgICAgdGltZUxpc3Q6IFtdLAogICAgICBjb2x1bW5zOiBbXSwKICAgICAgc3BlY3NEYXRhOiBbXSwKICAgICAgcGljVGl0OiAnJywKICAgICAgdGFibGVJbmRleDogMCwKICAgICAgcnVsZVZhbGlkYXRlOiB7CiAgICAgICAgaW1hZ2U6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nkuLvlm74nLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICBpbWFnZXM6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHR5cGU6ICdhcnJheScsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5Li75Zu+JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfSwgewogICAgICAgICAgdHlwZTogJ2FycmF5JywKICAgICAgICAgIG1pbjogMSwKICAgICAgICAgIG1lc3NhZ2U6ICdDaG9vc2UgdHdvIGhvYmJpZXMgYXQgYmVzdCcsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIHRpdGxlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5ZWG5ZOB5qCH6aKYJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIGluZm86IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXnp6/liIbmtLvliqjnroDku4snLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgdW5pdF9uYW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5Y2V5L2NJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHByaWNlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICB0eXBlOiAnbnVtYmVyJywKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXlhZHmjaLnp6/liIYnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgb3RfcHJpY2U6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHR5cGU6ICdudW1iZXInLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeWOn+S7tycsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBjb3N0OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICB0eXBlOiAnbnVtYmVyJywKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXmiJDmnKzku7cnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgc3RvY2s6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHR5cGU6ICdudW1iZXInLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeW6k+WtmCcsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBudW06IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHR5cGU6ICdudW1iZXInLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeWFkeaNouaVsOmHj+mZkOWIticsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBvbmNlX251bTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdHlwZTogJ251bWJlcicsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5Y2V5qyh5YWR5o2i5pWw6YeP6ZmQ5Yi2JywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIGNvcHk6IDAKICAgIH07CiAgfSwKICBjb21wdXRlZDogX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBtYXBTdGF0ZSgnbWVkaWEnLCBbJ2lzTW9iaWxlJ10pKSwge30sIHsKICAgIGxhYmVsV2lkdGg6IGZ1bmN0aW9uIGxhYmVsV2lkdGgoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlID8gdW5kZWZpbmVkIDogMTM1OwogICAgfSwKICAgIGxhYmVsUG9zaXRpb246IGZ1bmN0aW9uIGxhYmVsUG9zaXRpb24oKSB7CiAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlID8gJ3RvcCcgOiAncmlnaHQnOwogICAgfQogIH0pLAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICBpZiAodGhpcy4kcm91dGUucGFyYW1zLmlkKSB7CiAgICAgIHRoaXMuY29weSA9IHRoaXMuJHJvdXRlLnBhcmFtcy5jb3B5OwogICAgICB0aGlzLmN1cnJlbnQgPSAxOwogICAgICB0aGlzLmdldEluZm8oKTsKICAgIH0KICB9LAogIG1ldGhvZHM6IHsKICAgIGdldEVkaXRvckNvbnRlbnQ6IGZ1bmN0aW9uIGdldEVkaXRvckNvbnRlbnQoZGF0YSkgewogICAgICB0aGlzLmRlc2NyaXB0aW9uID0gZGF0YTsKICAgIH0sCiAgICAvLyDop4TmoLzvvJsKICAgIHByb2R1Y3RBdHRyczogZnVuY3Rpb24gcHJvZHVjdEF0dHJzKHJvd3MpIHsKICAgICAgdmFyIHRoYXQgPSB0aGlzOwogICAgICBwcm9kdWN0QXR0cnNBcGkocm93cy5pZCwgNCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgdmFyIGRhdGEgPSByZXMuZGF0YS5pbmZvOwogICAgICAgIHZhciBzZWxlY3Rpb24gPSB7CiAgICAgICAgICB0eXBlOiAnc2VsZWN0aW9uJywKICAgICAgICAgIHdpZHRoOiA2MCwKICAgICAgICAgIGFsaWduOiAnY2VudGVyJwogICAgICAgIH07CiAgICAgICAgdGhhdC5zcGVjc0RhdGEgPSBkYXRhLmF0dHJzOwogICAgICAgIHRoYXQuc3BlY3NEYXRhLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGluZGV4KSB7CiAgICAgICAgICB0aGF0LiRzZXQodGhhdC5zcGVjc0RhdGFbaW5kZXhdLCAnaWQnLCBpbmRleCk7CiAgICAgICAgfSk7CiAgICAgICAgdGhhdC5mb3JtVmFsaWRhdGUuaXRlbXMgPSBkYXRhLml0ZW1zOwogICAgICAgIHRoYXQuY29sdW1ucyA9IGRhdGEuaGVhZGVyOwogICAgICAgIHRoYXQuY29sdW1ucy51bnNoaWZ0KHNlbGVjdGlvbik7CiAgICAgICAgdGhhdC5pbnB1dENoYW5nZShkYXRhKTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgIHRoYXQuJE1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIGlucHV0Q2hhbmdlOiBmdW5jdGlvbiBpbnB1dENoYW5nZShkYXRhKSB7CiAgICAgIHZhciB0aGF0ID0gdGhpczsKICAgICAgdmFyICRpbmRleCA9IFtdOwogICAgICBkYXRhLmhlYWRlci5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtLCBpbmRleCkgewogICAgICAgIGlmIChpdGVtLnR5cGUgPT09IDEpIHsKICAgICAgICAgICRpbmRleC5wdXNoKHsKICAgICAgICAgICAgaW5kZXg6IGluZGV4LAogICAgICAgICAgICBrZXk6IGl0ZW0ua2V5LAogICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZQogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgJGluZGV4LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGluZGV4KSB7CiAgICAgICAgdmFyIHRpdGxlID0gaXRlbS50aXRsZTsKICAgICAgICB2YXIga2V5ID0gaXRlbS5rZXk7CiAgICAgICAgdmFyIHJvdyA9IHsKICAgICAgICAgIHRpdGxlOiB0aXRsZSwKICAgICAgICAgIGtleToga2V5LAogICAgICAgICAgYWxpZ246ICdjZW50ZXInLAogICAgICAgICAgbWluV2lkdGg6IDEyMCwKICAgICAgICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKGgsIHBhcmFtcykgewogICAgICAgICAgICByZXR1cm4gaCgnZGl2JywgW2goJ0lucHV0TnVtYmVyJywgewogICAgICAgICAgICAgIHByb3BzOiB7CiAgICAgICAgICAgICAgICBtaW46IDAsCiAgICAgICAgICAgICAgICBwcmVjaXNpb246IDAsCiAgICAgICAgICAgICAgICB2YWx1ZToga2V5ID09PSAncHJpY2UnID8gcGFyYW1zLnJvdy5wcmljZSA6IHBhcmFtcy5yb3cucXVvdGEKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIG9uOiB7CiAgICAgICAgICAgICAgICAnb24tY2hhbmdlJzogZnVuY3Rpb24gb25DaGFuZ2UoZSkgewogICAgICAgICAgICAgICAgICBrZXkgPT09ICdwcmljZScgPyBwYXJhbXMucm93LnByaWNlID0gZSA6IHBhcmFtcy5yb3cucXVvdGEgPSBlOwogICAgICAgICAgICAgICAgICB0aGF0LnNwZWNzRGF0YVtwYXJhbXMuaW5kZXhdID0gcGFyYW1zLnJvdzsKCiAgICAgICAgICAgICAgICAgIGlmICghIXRoYXQuZm9ybVZhbGlkYXRlLmF0dHJzICYmIHRoYXQuZm9ybVZhbGlkYXRlLmF0dHJzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgIHRoYXQuZm9ybVZhbGlkYXRlLmF0dHJzLmZvckVhY2goZnVuY3Rpb24gKHYsIGluZGV4KSB7CiAgICAgICAgICAgICAgICAgICAgICBpZiAodi5pZCA9PT0gcGFyYW1zLnJvdy5pZCkgewogICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmZvcm1WYWxpZGF0ZS5hdHRycy5zcGxpY2UoaW5kZXgsIDEsIHBhcmFtcy5yb3cpOwogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KV0pOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgdGhhdC5jb2x1bW5zLnNwbGljZShpdGVtLmluZGV4LCAxLCByb3cpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDlpJrpgIkKICAgIGNoYW5nZUNoZWNrYm94OiBmdW5jdGlvbiBjaGFuZ2VDaGVja2JveChzZWxlY3Rpb24pIHsKICAgICAgdGhpcy5mb3JtVmFsaWRhdGUuYXR0cnMgPSBzZWxlY3Rpb247CiAgICB9LAogICAgLy8g6KGo5Y2V6aqM6K+BCiAgICB2YWxpZGF0ZTogZnVuY3Rpb24gdmFsaWRhdGUocHJvcCwgc3RhdHVzLCBlcnJvcikgewogICAgICBpZiAoc3RhdHVzID09PSBmYWxzZSkgewogICAgICAgIHRoaXMuJE1lc3NhZ2UuZXJyb3IoZXJyb3IpOwogICAgICB9CiAgICB9LAogICAgLy8g5ZWG5ZOBaWQKICAgIGdldFByb2R1Y3RJZDogZnVuY3Rpb24gZ2V0UHJvZHVjdElkKHJvdykgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwoKICAgICAgdGhpcy5tb2RhbF9sb2FkaW5nID0gZmFsc2U7CiAgICAgIHRoaXMubW9kYWxzID0gZmFsc2U7CiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzLmZvcm1WYWxpZGF0ZSA9IHsKICAgICAgICAgIGltYWdlczogcm93LnNsaWRlcl9pbWFnZSwKICAgICAgICAgIGluZm86IHJvdy5zdG9yZV9pbmZvLAogICAgICAgICAgdGl0bGU6IHJvdy5zdG9yZV9uYW1lLAogICAgICAgICAgaW1hZ2U6IHJvdy5pbWFnZSwKICAgICAgICAgIHVuaXRfbmFtZTogcm93LnVuaXRfbmFtZSwKICAgICAgICAgIHByaWNlOiAwLAogICAgICAgICAgLy8g5LiN5Y+W5ZWG5ZOB5Lit55qE5Y6f5Lu3CiAgICAgICAgICBvdF9wcmljZTogcm93Lm90X3ByaWNlLAogICAgICAgICAgY29zdDogcm93LmNvc3QsCiAgICAgICAgICBzYWxlczogcm93LnNhbGVzLAogICAgICAgICAgc3RvY2s6IHJvdy5zdG9jaywKICAgICAgICAgIHNvcnQ6IHJvdy5zb3J0LAogICAgICAgICAgbnVtOiAxLAogICAgICAgICAgb25jZV9udW06IDEsCiAgICAgICAgICBnaXZlX2ludGVncmFsOiByb3cuZ2l2ZV9pbnRlZ3JhbCwKICAgICAgICAgIHBvc3RhZ2U6IHJvdy5wb3N0YWdlLAogICAgICAgICAgc2VjdGlvbl90aW1lOiBbXSwKICAgICAgICAgIGlzX3Bvc3RhZ2U6IHJvdy5pc19wb3N0YWdlLAogICAgICAgICAgaXNfaG9zdDogMCwKICAgICAgICAgIGlzX3Nob3c6IDEsCiAgICAgICAgICBkZXNjcmlwdGlvbjogcm93LmRlc2NyaXB0aW9uLAogICAgICAgICAgaWQ6IDAsCiAgICAgICAgICBwcm9kdWN0X2lkOiByb3cuaWQsCiAgICAgICAgICB0ZW1wX2lkOiByb3cudGVtcF9pZAogICAgICAgIH07CgogICAgICAgIF90aGlzLnByb2R1Y3RBdHRycyhyb3cpOwoKICAgICAgICBfdGhpcy4kcmVmcy5nb29kc2xpc3QucHJvZHVjdFJvdyA9IG51bGw7CiAgICAgIH0sIDUwMCk7CiAgICB9LAogICAgY2FuY2VsOiBmdW5jdGlvbiBjYW5jZWwoKSB7CiAgICAgIHRoaXMubW9kYWxzID0gZmFsc2U7CiAgICB9LAogICAgLy8g5YW35L2T5pel5pyfCiAgICBvbmNoYW5nZVRpbWU6IGZ1bmN0aW9uIG9uY2hhbmdlVGltZShlKSB7CiAgICAgIHRoaXMuZm9ybVZhbGlkYXRlLnNlY3Rpb25fdGltZSA9IGU7CiAgICB9LAogICAgLy8g6K+m5oOFCiAgICBnZXRJbmZvOiBmdW5jdGlvbiBnZXRJbmZvKCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKCiAgICAgIHRoaXMuc3BpblNob3cgPSB0cnVlOwogICAgICBpbnRlZ3JhbEluZm9BcGkodGhpcy4kcm91dGUucGFyYW1zLmlkKS50aGVuKCAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBfcmVmID0gX2FzeW5jVG9HZW5lcmF0b3IoIC8qI19fUFVSRV9fKi9yZWdlbmVyYXRvclJ1bnRpbWUubWFyayhmdW5jdGlvbiBfY2FsbGVlKHJlcykgewogICAgICAgICAgdmFyIHRoYXQsIGluZm8sIHNlbGVjdGlvbiwgZGF0YSwgYXR0ciwgaW5kZXg7CiAgICAgICAgICByZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHsKICAgICAgICAgICAgICBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgIHRoYXQgPSBfdGhpczI7CiAgICAgICAgICAgICAgICAgIGluZm8gPSByZXMuZGF0YS5pbmZvOwogICAgICAgICAgICAgICAgICBzZWxlY3Rpb24gPSB7CiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NlbGVjdGlvbicsCiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDYwLAogICAgICAgICAgICAgICAgICAgIGFsaWduOiAnY2VudGVyJwogICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICBfdGhpczIuZm9ybVZhbGlkYXRlID0gaW5mbzsKCiAgICAgICAgICAgICAgICAgIF90aGlzMi4kc2V0KF90aGlzMi5mb3JtVmFsaWRhdGUsICdpdGVtcycsIGluZm8uYXR0cnMuaXRlbXMpOwoKICAgICAgICAgICAgICAgICAgX3RoaXMyLmNvbHVtbnMgPSBpbmZvLmF0dHJzLmhlYWRlcjsKCiAgICAgICAgICAgICAgICAgIF90aGlzMi5jb2x1bW5zLnVuc2hpZnQoc2VsZWN0aW9uKTsKCiAgICAgICAgICAgICAgICAgIF90aGlzMi5zcGVjc0RhdGEgPSBpbmZvLmF0dHJzLnZhbHVlOwogICAgICAgICAgICAgICAgICB0aGF0LnNwZWNzRGF0YS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtLCBpbmRleCkgewogICAgICAgICAgICAgICAgICAgIHRoYXQuJHNldCh0aGF0LnNwZWNzRGF0YVtpbmRleF0sICdpZCcsIGluZGV4KTsKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgIGRhdGEgPSBpbmZvLmF0dHJzOwogICAgICAgICAgICAgICAgICBhdHRyID0gW107CgogICAgICAgICAgICAgICAgICBmb3IgKGluZGV4IGluIGluZm8uYXR0cnMudmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoaW5mby5hdHRycy52YWx1ZVtpbmRleF0uX2NoZWNrZWQpIHsKICAgICAgICAgICAgICAgICAgICAgIGF0dHIucHVzaChpbmZvLmF0dHJzLnZhbHVlW2luZGV4XSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICB0aGF0LmZvcm1WYWxpZGF0ZS5hdHRycyA9IGF0dHI7CiAgICAgICAgICAgICAgICAgIHRoYXQuaW5wdXRDaGFuZ2UoZGF0YSk7CiAgICAgICAgICAgICAgICAgIF90aGlzMi5zcGluU2hvdyA9IGZhbHNlOwoKICAgICAgICAgICAgICAgIGNhc2UgMTU6CiAgICAgICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwgX2NhbGxlZSk7CiAgICAgICAgfSkpOwoKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94KSB7CiAgICAgICAgICByZXR1cm4gX3JlZi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICAgIH0oKSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzMi5zcGluU2hvdyA9IGZhbHNlOwoKICAgICAgICBfdGhpczIuJE1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOS4i+S4gOatpQogICAgbmV4dDogZnVuY3Rpb24gbmV4dChuYW1lKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwoKICAgICAgdmFyIHRoYXQgPSB0aGlzOwoKICAgICAgaWYgKHRoaXMuY3VycmVudCA9PT0gMikgewogICAgICAgIHRoaXMuZm9ybVZhbGlkYXRlLmRlc2NyaXB0aW9uID0gdGhpcy5kZXNjcmlwdGlvbjsKICAgICAgICB0aGlzLiRyZWZzW25hbWVdLnZhbGlkYXRlKGZ1bmN0aW9uICh2YWxpZCkgewogICAgICAgICAgaWYgKHZhbGlkKSB7CiAgICAgICAgICAgIGlmIChfdGhpczMuY29weSA9PSAxKSBfdGhpczMuZm9ybVZhbGlkYXRlLmNvcHkgPSAxOwogICAgICAgICAgICBfdGhpczMuZm9ybVZhbGlkYXRlLmlkID0gTnVtYmVyKF90aGlzMy4kcm91dGUucGFyYW1zLmlkKSB8fCAwOwogICAgICAgICAgICBfdGhpczMuc3VibWl0T3BlbiA9IHRydWU7CiAgICAgICAgICAgIGludGVncmFsQWRkQXBpKF90aGlzMy5mb3JtVmFsaWRhdGUpLnRoZW4oIC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgdmFyIF9yZWYyID0gX2FzeW5jVG9HZW5lcmF0b3IoIC8qI19fUFVSRV9fKi9yZWdlbmVyYXRvclJ1bnRpbWUubWFyayhmdW5jdGlvbiBfY2FsbGVlMihyZXMpIHsKICAgICAgICAgICAgICAgIHJldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcChmdW5jdGlvbiBfY2FsbGVlMiQoX2NvbnRleHQyKSB7CiAgICAgICAgICAgICAgICAgIHdoaWxlICgxKSB7CiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChfY29udGV4dDIucHJldiA9IF9jb250ZXh0Mi5uZXh0KSB7CiAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMy5zdWJtaXRPcGVuID0gZmFsc2U7CgogICAgICAgICAgICAgICAgICAgICAgICBfdGhpczMuJE1lc3NhZ2Uuc3VjY2VzcyhyZXMubXNnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzMy4kcm91dGVyLnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogJy9hZG1pbi9tYXJrZXRpbmcvc3RvcmVfaW50ZWdyYWwvaW5kZXgnCiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDUwMCk7CgogICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCBfY2FsbGVlMik7CiAgICAgICAgICAgICAgfSkpOwoKICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94MikgewogICAgICAgICAgICAgICAgcmV0dXJuIF9yZWYyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfSgpKS5jYXRjaChmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgICAgX3RoaXMzLnN1Ym1pdE9wZW4gPSBmYWxzZTsKCiAgICAgICAgICAgICAgX3RoaXMzLiRNZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnQgPT09IDEpIHsKICAgICAgICB0aGlzLiRyZWZzW25hbWVdLnZhbGlkYXRlKGZ1bmN0aW9uICh2YWxpZCkgewogICAgICAgICAgaWYgKHZhbGlkKSB7CiAgICAgICAgICAgIGlmICghdGhhdC5mb3JtVmFsaWRhdGUuYXR0cnMpIHsKICAgICAgICAgICAgICByZXR1cm4gdGhhdC4kTWVzc2FnZS5lcnJvcign6K+36YCJ5oup5bGe5oCn6KeE5qC8Jyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgaW5kZXggaW4gdGhhdC5mb3JtVmFsaWRhdGUuYXR0cnMpIHsKICAgICAgICAgICAgICAgIGlmICh0aGF0LmZvcm1WYWxpZGF0ZS5hdHRyc1tpbmRleF0ucXVvdGEgPD0gMCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC4kTWVzc2FnZS5lcnJvcign5YWR5o2i5qyh5pWw5b+F6aG75aSn5LqOMCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgX3RoaXMzLmN1cnJlbnQgKz0gMTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBfdGhpczMuJE1lc3NhZ2Uud2FybmluZygn6K+35a6M5ZaE5oKo55qE5L+h5oGvJyk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKHRoaXMuZm9ybVZhbGlkYXRlLmltYWdlKSB7CiAgICAgICAgICB0aGlzLmN1cnJlbnQgKz0gMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kTWVzc2FnZS53YXJuaW5nKCfor7fpgInmi6nllYblk4EnKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAvLyDkuIrkuIDmraUKICAgIHN0ZXA6IGZ1bmN0aW9uIHN0ZXAoKSB7CiAgICAgIHRoaXMuY3VycmVudC0tOwogICAgfSwKICAgIC8vIOWGheWuuQogICAgZ2V0Q29udGVudDogZnVuY3Rpb24gZ2V0Q29udGVudCh2YWwpIHsKICAgICAgdGhpcy5mb3JtVmFsaWRhdGUuZGVzY3JpcHRpb24gPSB2YWw7CiAgICB9LAogICAgLy8g54K55Ye75ZWG5ZOB5Zu+CiAgICBtb2RhbFBpY1RhcDogZnVuY3Rpb24gbW9kYWxQaWNUYXAodGl0LCBwaWNUaXQsIGluZGV4KSB7CiAgICAgIHRoaXMubW9kYWxQaWMgPSB0cnVlOwogICAgICB0aGlzLmlzQ2hvaWNlID0gdGl0ID09PSAnZGFuJyA/ICfljZXpgIknIDogJ+WkmumAiSc7CiAgICAgIHRoaXMucGljVGl0ID0gcGljVGl0OwogICAgICB0aGlzLnRhYmxlSW5kZXggPSBpbmRleDsKICAgIH0sCiAgICAvLyDojrflj5bljZXlvKDlm77niYfkv6Hmga8KICAgIGdldFBpYzogZnVuY3Rpb24gZ2V0UGljKHBjKSB7CiAgICAgIHN3aXRjaCAodGhpcy5waWNUaXQpIHsKICAgICAgICBjYXNlICdkYW5Gcm9tJzoKICAgICAgICAgIHRoaXMuZm9ybVZhbGlkYXRlLmltYWdlID0gcGMuYXR0X2RpcjsKICAgICAgICAgIGJyZWFrOwogICAgICAgIC8vIGNhc2UgJ2RhblRhYmxlJzoKICAgICAgICAvLyAgICAgdGhpcy5zcGVjc0RhdGFbdGhpcy50YWJsZUluZGV4XS5waWMgPSBwYy5hdHRfZGlyOwogICAgICAgIC8vICAgICBicmVhazsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgIGlmICghIXRoaXMuZm9ybVZhbGlkYXRlLmF0dHJzICYmIHRoaXMuZm9ybVZhbGlkYXRlLmF0dHJzLmxlbmd0aCkgewogICAgICAgICAgICB0aGlzLiRzZXQodGhpcy5zcGVjc0RhdGFbdGhpcy50YWJsZUluZGV4XSwgJ19jaGVja2VkJywgdHJ1ZSk7CiAgICAgICAgICB9CgogICAgICAgICAgdGhpcy5zcGVjc0RhdGFbdGhpcy50YWJsZUluZGV4XS5waWMgPSBwYy5hdHRfZGlyOwogICAgICB9CgogICAgICB0aGlzLm1vZGFsUGljID0gZmFsc2U7CiAgICB9LAogICAgLy8g6I635Y+W5aSa5byg5Zu+5L+h5oGvCiAgICBnZXRQaWNEOiBmdW5jdGlvbiBnZXRQaWNEKHBjKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwoKICAgICAgdGhpcy5pbWFnZXMgPSBwYzsKICAgICAgdGhpcy5pbWFnZXMubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgX3RoaXM0LmZvcm1WYWxpZGF0ZS5pbWFnZXMucHVzaChpdGVtLmF0dF9kaXIpOwoKICAgICAgICBfdGhpczQuZm9ybVZhbGlkYXRlLmltYWdlcyA9IF90aGlzNC5mb3JtVmFsaWRhdGUuaW1hZ2VzLnNwbGljZSgwLCAxMCk7CiAgICAgIH0pOwogICAgICB0aGlzLm1vZGFsUGljID0gZmFsc2U7CiAgICB9LAogICAgaGFuZGxlUmVtb3ZlOiBmdW5jdGlvbiBoYW5kbGVSZW1vdmUoaSkgewogICAgICB0aGlzLmltYWdlcy5zcGxpY2UoaSwgMSk7CiAgICAgIHRoaXMuZm9ybVZhbGlkYXRlLmltYWdlcy5zcGxpY2UoaSwgMSk7CiAgICB9LAogICAgLy8g6YCJ5oup5ZWG5ZOBCiAgICBjaGFuZ2VHb29kczogZnVuY3Rpb24gY2hhbmdlR29vZHMoKSB7CiAgICAgIHRoaXMubW9kYWxzID0gdHJ1ZTsKICAgICAgdGhpcy4kcmVmcy5nb29kc2xpc3QuZm9ybVZhbGlkYXRlLmlzX3ByZXNhbGUgPSAwOwogICAgICB0aGlzLiRyZWZzLmdvb2RzbGlzdC5nZXRMaXN0KCk7CiAgICAgIHRoaXMuJHJlZnMuZ29vZHNsaXN0Lmdvb2RzQ2F0ZWdvcnkoKTsKICAgIH0sCiAgICAvLyDnp7vliqgKICAgIGhhbmRsZURyYWdTdGFydDogZnVuY3Rpb24gaGFuZGxlRHJhZ1N0YXJ0KGUsIGl0ZW0pIHsKICAgICAgdGhpcy5kcmFnZ2luZyA9IGl0ZW07CiAgICB9LAogICAgaGFuZGxlRHJhZ0VuZDogZnVuY3Rpb24gaGFuZGxlRHJhZ0VuZChlLCBpdGVtKSB7CiAgICAgIHRoaXMuZHJhZ2dpbmcgPSBudWxsOwogICAgfSwKICAgIC8vIOmmluWFiOaKimRpduWPmOaIkOWPr+S7peaUvue9rueahOWFg+e0oO+8jOWNs+mHjeWGmWRyYWdlbnRlci9kcmFnb3ZlcgogICAgaGFuZGxlRHJhZ092ZXI6IGZ1bmN0aW9uIGhhbmRsZURyYWdPdmVyKGUpIHsKICAgICAgZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9ICdtb3ZlJzsgLy8gZS5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdD0ibW92ZSI7Ly/lnKhkcmFnZW50ZXLkuK3pkojlr7nmlL7nva7nm67moIfmnaXorr7nva4hCiAgICB9LAogICAgaGFuZGxlRHJhZ0VudGVyOiBmdW5jdGlvbiBoYW5kbGVEcmFnRW50ZXIoZSwgaXRlbSkgewogICAgICBlLmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkID0gJ21vdmUnOyAvLyDkuLrpnIDopoHnp7vliqjnmoTlhYPntKDorr7nva5kcmFnc3RhcnTkuovku7YKCiAgICAgIGlmIChpdGVtID09PSB0aGlzLmRyYWdnaW5nKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICB2YXIgbmV3SXRlbXMgPSBfdG9Db25zdW1hYmxlQXJyYXkodGhpcy5mb3JtVmFsaWRhdGUuaW1hZ2VzKTsKCiAgICAgIHZhciBzcmMgPSBuZXdJdGVtcy5pbmRleE9mKHRoaXMuZHJhZ2dpbmcpOwogICAgICB2YXIgZHN0ID0gbmV3SXRlbXMuaW5kZXhPZihpdGVtKTsKICAgICAgbmV3SXRlbXMuc3BsaWNlLmFwcGx5KG5ld0l0ZW1zLCBbZHN0LCAwXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KG5ld0l0ZW1zLnNwbGljZShzcmMsIDEpKSkpOwogICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5pbWFnZXMgPSBuZXdJdGVtczsKICAgIH0KICB9Cn07"},{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuQA;AACA;AACA;AACA;AACA;AAEA;EACAA,2BADA;EAEAC;IAAAC;IAAAC;IAAAC;EAAA,CAFA;EAGAC,IAHA,kBAGA;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,MAFA;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;QACAD,UADA;QAEAE,QAFA;QAGAC,SAHA;QAIAC,SAJA;QAKAC,aALA;QAMAC,QANA;QAOAC,WAPA;QAQAC,OARA;QASAC,QATA;QAUAC,QAVA;QAWAC,OAXA;QAYAC,MAZA;QAaAC,WAbA;QAcAC,gBAdA;QAeAC,UAfA;QAgBAC,gBAhBA;QAiBAC,aAjBA;QAkBAC,SAlBA;QAmBAC,SAnBA;QAoBAC,eApBA;QAqBAC,KArBA;QAsBAC,aAtBA;QAuBAC,WAvBA;QAwBAC,WAxBA;QAyBAC,SAzBA;QA0BAC;MA1BA,CA5CA;MAwEAN,eAxEA;MAyEAO,gBAzEA;MA0EAC,YA1EA;MA2EAC,WA3EA;MA4EAC,aA5EA;MA6EAC,UA7EA;MA8EAC,aA9EA;MA+EAC;QACA7B;UAAA8B;UAAAC;UAAAC;QAAA,EADA;QAEApC,SACA;UACAkC,cADA;UAEAG,aAFA;UAGAF,gBAHA;UAIAC;QAJA,CADA,EAOA;UACAC,aADA;UAEAC,MAFA;UAGAH,qCAHA;UAIAC;QAJA,CAPA,CAFA;QAgBAjC;UAAA+B;UAAAC;UAAAC;QAAA,EAhBA;QAiBAlC;UAAAgC;UAAAC;UAAAC;QAAA,EAjBA;QAkBA/B;UAAA6B;UAAAC;UAAAC;QAAA,EAlBA;QAmBA9B,QACA;UACA4B,cADA;UAEAG,cAFA;UAGAF,kBAHA;UAIAC;QAJA,CADA,CAnBA;QA2BA7B,WACA;UACA2B,cADA;UAEAG,cAFA;UAGAF,gBAHA;UAIAC;QAJA,CADA,CA3BA;QAmCA5B,OACA;UACA0B,cADA;UAEAG,cAFA;UAGAF,iBAHA;UAIAC;QAJA,CADA,CAnCA;QA2CA1B,QACA;UACAwB,cADA;UAEAG,cAFA;UAGAF,gBAHA;UAIAC;QAJA,CADA,CA3CA;QAmDAxB,MACA;UACAsB,cADA;UAEAG,cAFA;UAGAF,oBAHA;UAIAC;QAJA,CADA,CAnDA;QA2DAvB,WACA;UACAqB,cADA;UAEAG,cAFA;UAGAF,sBAHA;UAIAC;QAJA,CADA;MA3DA,CA/EA;MAmJAG;IAnJA;EAqJA,CAzJA;EA0JAC,0CACAC,+BADA;IAEAC,UAFA,wBAEA;MACA;IACA,CAJA;IAKAC,aALA,2BAKA;MACA;IACA;EAPA,EA1JA;EAmKAC,OAnKA,qBAmKA;IACA;MACA;MACA;MACA;IACA;EACA,CAzKA;EA0KAC;IACAC,gBADA,4BACArE,IADA,EACA;MACA;IACA,CAHA;IAIA;IACAsE,YALA,wBAKAC,IALA,EAKA;MACA;MACAC,4BACAC,IADA,CACA;QACA;QACA;UACAb,iBADA;UAEAc,SAFA;UAGAC;QAHA;QAKAC;QACAA;UACAA;QACA,CAFA;QAGAA;QACAA;QACAA;QACAA;MACA,CAhBA,EAiBAC,KAjBA,CAiBA;QACAD;MACA,CAnBA;IAoBA,CA3BA;IA4BAE,WA5BA,uBA4BA9E,IA5BA,EA4BA;MACA;MACA;MACAA;QACA;UACA+E;YAAAC;YAAAC;YAAAvD;UAAA;QACA;MACA,CAJA;MAKAqD;QACA;QACA;QACA;UACArD,YADA;UAEAuD,QAFA;UAGAN,eAHA;UAIAO,aAJA;UAKAC;YACA,iBACAC;cACAC;gBACAxB,MADA;gBAEAyB,YAFA;gBAGAC;cAHA,CADA;cAMAC;gBACA;kBACAP;kBACAL;;kBACA;oBACAA;sBACA;wBACAA;sBACA;oBACA,CAJA;kBAKA;gBACA;cAXA;YANA,EADA;UAsBA;QA5BA;QA8BAA;MACA,CAlCA;IAmCA,CAvEA;IAwEA;IACAa,cAzEA,0BAyEAC,SAzEA,EAyEA;MACA;IACA,CA3EA;IA4EA;IACAC,QA7EA,oBA6EAC,IA7EA,EA6EAlD,MA7EA,EA6EAmD,KA7EA,EA6EA;MACA;QACA;MACA;IACA,CAjFA;IAkFA;IACAC,YAnFA,wBAmFAC,GAnFA,EAmFA;MAAA;;MACA;MACA;MACAC;QACA;UACAzE,wBADA;UAEAE,oBAFA;UAGAC,qBAHA;UAIAC,gBAJA;UAKAC,wBALA;UAMAC,QANA;UAMA;UACAC,sBAPA;UAQAC,cARA;UASAC,gBATA;UAUAC,gBAVA;UAWAC,cAXA;UAYAC,MAZA;UAaAC,WAbA;UAcAC,gCAdA;UAeAC,oBAfA;UAgBAC,gBAhBA;UAiBAC,0BAjBA;UAkBAyD,UAlBA;UAmBAC,UAnBA;UAoBAvD,4BApBA;UAqBAC,KArBA;UAsBAC,kBAtBA;UAuBAC;QAvBA;;QAyBA;;QACA;MACA,CA5BA,EA4BA,GA5BA;IA6BA,CAnHA;IAqHAqD,MArHA,oBAqHA;MACA;IACA,CAvHA;IAwHA;IACAC,YAzHA,wBAyHAC,CAzHA,EAyHA;MACA;IACA,CA3HA;IA4HA;IACAC,OA7HA,qBA6HA;MAAA;;MACA;MACAC,uCACA9B,IADA;QAAA,mEACA;UAAA;UAAA;YAAA;cAAA;gBAAA;kBACAG,IADA,GACA,MADA;kBAEAnD,IAFA,GAEA+E,aAFA;kBAGAd,SAHA,GAGA;oBACA9B,iBADA;oBAEAc,SAFA;oBAGAC;kBAHA,CAHA;kBAQA;;kBACA;;kBACA;;kBACA;;kBACA;kBACAC;oBACAA;kBACA,CAFA;kBAGA5E,IAhBA,GAgBAyB,UAhBA;kBAiBAgF,IAjBA,GAiBA,EAjBA;;kBAkBA;oBACA;sBACAA;oBACA;kBACA;;kBACA7B;kBACAA;kBACA;;gBAzBA;gBAAA;kBAAA;cAAA;YAAA;UAAA;QAAA,CADA;;QAAA;UAAA;QAAA;MAAA,KA4BAC,KA5BA,CA4BA;QACA;;QACA;MACA,CA/BA;IAgCA,CA/JA;IAgKA;IACA6B,IAjKA,gBAiKA/G,IAjKA,EAiKA;MAAA;;MACA;;MACA;QACA;QACA;UACA;YACA;YACA;YACA;YACAgH,oCACAlC,IADA;cAAA,oEACA;gBAAA;kBAAA;oBAAA;sBAAA;wBACA;;wBACA;;wBACAuB;0BACA;4BACAY;0BADA;wBAGA,CAJA,EAIA,GAJA;;sBAHA;sBAAA;wBAAA;oBAAA;kBAAA;gBAAA;cAAA,CADA;;cAAA;gBAAA;cAAA;YAAA,KAUA/B,KAVA,CAUA;cACA;;cACA;YACA,CAbA;UAcA,CAlBA,MAkBA;YACA;UACA;QACA,CAtBA;MAuBA,CAzBA,MAyBA;QACA;UACA;YACA;cACA;YACA,CAFA,MAEA;cACA;gBACA;kBACA;gBACA;cACA;YACA;;YACA;UACA,CAXA,MAWA;YACA;UACA;QACA,CAfA;MAgBA,CAjBA,MAiBA;QACA;UACA;QACA,CAFA,MAEA;UACA;QACA;MACA;IACA,CApNA;IAqNA;IACAgC,IAtNA,kBAsNA;MACA;IACA,CAxNA;IAyNA;IACAC,UA1NA,sBA0NAC,GA1NA,EA0NA;MACA;IACA,CA5NA;IA6NA;IACAC,WA9NA,uBA8NAC,GA9NA,EA8NA3D,MA9NA,EA8NA0B,KA9NA,EA8NA;MACA;MACA;MACA;MACA;IACA,CAnOA;IAoOA;IACAkC,MArOA,kBAqOAC,EArOA,EAqOA;MACA;QACA;UACA;UACA;QACA;QACA;QACA;;QACA;UACA;YACA;UACA;;UACA;MAXA;;MAaA;IACA,CApPA;IAqPA;IACAC,OAtPA,mBAsPAD,EAtPA,EAsPA;MAAA;;MACA;MACA;QACA;;QACA;MACA,CAHA;MAIA;IACA,CA7PA;IA8PAE,YA9PA,wBA8PAC,CA9PA,EA8PA;MACA;MACA;IACA,CAjQA;IAkQA;IACAC,WAnQA,yBAmQA;MACA;MACA;MACA;MACA;IACA,CAxQA;IAwQA;IACAC,eAzQA,2BAyQAnB,CAzQA,EAyQAoB,IAzQA,EAyQA;MACA;IACA,CA3QA;IA4QAC,aA5QA,yBA4QArB,CA5QA,EA4QAoB,IA5QA,EA4QA;MACA;IACA,CA9QA;IA+QA;IACAE,cAhRA,0BAgRAtB,CAhRA,EAgRA;MACAA,mCADA,CACA;IACA,CAlRA;IAmRAuB,eAnRA,2BAmRAvB,CAnRA,EAmRAoB,IAnRA,EAmRA;MACApB,sCADA,CACA;;MACA;QACA;MACA;;MACA;;MACA;MACA;MACAwB;MACA;IACA;EA7RA;AA1KA","names":["name","components","goodsList","uploadPictures","WangEditor","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","formValidate","info","title","image","unit_name","price","ot_price","cost","sales","stock","sort","num","once_num","give_integral","postage","section_time","is_postage","is_hot","status","description","id","product_id","temp_id","time_id","attrs","items","templateList","timeList","columns","specsData","picTit","tableIndex","ruleValidate","required","message","trigger","type","min","copy","computed","mapState","labelWidth","labelPosition","mounted","methods","getEditorContent","productAttrs","rows","productAttrsApi","then","width","align","that","catch","inputChange","$index","index","key","minWidth","render","h","props","precision","value","on","changeCheckbox","selection","validate","prop","error","getProductId","row","setTimeout","is_host","is_show","cancel","onchangeTime","e","getInfo","integralInfoApi","res","attr","next","integralAddApi","path","step","getContent","val","modalPicTap","tit","getPic","pc","getPicD","handleRemove","i","changeGoods","handleDragStart","item","handleDragEnd","handleDragOver","handleDragEnter","newItems"],"sourceRoot":"src/pages/marketing/storeIntegral","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_integral/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\" class=\"iconfonts\" />\r\n </div>\r\n </div>\r\n </FormItem>\r\n <Col v-show=\"current === 1\" type=\"flex\">\r\n <Col span=\"24\">\r\n <FormItem prop=\"image\">\r\n <div class=\"custom-label\" slot=\"label\">\r\n <div>\r\n <div>商品主图</div>\r\n <div>(750*750)</div>\r\n </div>\r\n <div>:</div>\r\n </div>\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\" class=\"iconfonts\" />\r\n </div>\r\n </div>\r\n </FormItem>\r\n </Col>\r\n <Col span=\"24\">\r\n <FormItem prop=\"images\">\r\n <div class=\"custom-label\" slot=\"label\">\r\n <div>\r\n <div>商品轮播图</div>\r\n <div>(750*750)</div>\r\n </div>\r\n <div>:</div>\r\n </div>\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\" class=\"iconfonts\" />\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 <FormItem label=\"用户兑换数量限制:\" prop=\"num\">\r\n <div class=\"acea-row row-middle\">\r\n <InputNumber\r\n :min=\"1\"\r\n :max=\"99999\"\r\n placeholder=\"请输入数量限制\"\r\n element-id=\"num\"\r\n :precision=\"0\"\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=\"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\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 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_show\" label-for=\"status\">\r\n <RadioGroup element-id=\"is_show\" 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 v-bind=\"grid2\">\r\n <FormItem label=\"热门推荐:\" props=\"is_host\" label-for=\"is_host\">\r\n <RadioGroup element-id=\"is_host\" 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=\"规格选择:\">\r\n <Table\r\n :data=\"specsData\"\r\n :columns=\"columns\"\r\n border\r\n class=\"mt25\"\r\n highlight-row\r\n @on-selection-change=\"changeCheckbox\"\r\n >\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\" class=\"iconfont\" />\r\n </div>\r\n </div>\r\n </template>\r\n </Table>\r\n </FormItem>\r\n </Col>\r\n </Col>\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 <Col span=\"24\">\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 >上一步\r\n </Button>\r\n <Button\r\n :disabled=\"submitOpen && current === 2\"\r\n type=\"primary\"\r\n class=\"submission\"\r\n @click=\"next('formValidate')\"\r\n v-text=\"current === 2 ? '提交' : '下一步'\"\r\n ></Button>\r\n </FormItem>\r\n </Col>\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 class=\"paymentFooter\"\r\n footerHide\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=\"1\"\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 </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 { integralAddApi, productAttrsApi, integralInfoApi } from '@/api/marketing';\r\n\r\nexport default {\r\n name: 'storeIntegralCreate',\r\n components: { goodsList, uploadPictures, WangEditor },\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: 12,\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 formValidate: {\r\n images: [],\r\n info: '',\r\n title: '',\r\n image: '',\r\n unit_name: '',\r\n price: 0,\r\n ot_price: 0,\r\n cost: 0,\r\n sales: 0,\r\n stock: 0,\r\n sort: 0,\r\n num: 1,\r\n once_num: 1,\r\n give_integral: 0,\r\n postage: 0,\r\n section_time: [],\r\n is_postage: 0,\r\n is_hot: 0,\r\n status: 0,\r\n description: '',\r\n id: 0,\r\n product_id: 0,\r\n temp_id: '',\r\n time_id: '',\r\n attrs: [],\r\n items: [],\r\n },\r\n description: '',\r\n templateList: [],\r\n timeList: [],\r\n columns: [],\r\n specsData: [],\r\n picTit: '',\r\n tableIndex: 0,\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 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 ot_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 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 },\r\n copy: 0,\r\n };\r\n },\r\n computed: {\r\n ...mapState('media', ['isMobile']),\r\n labelWidth() {\r\n return this.isMobile ? undefined : 135;\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 },\r\n methods: {\r\n getEditorContent(data) {\r\n this.description = data;\r\n },\r\n // 规格;\r\n productAttrs(rows) {\r\n let that = this;\r\n productAttrsApi(rows.id, 4)\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: 120,\r\n render: (h, params) => {\r\n return h('div', [\r\n h('InputNumber', {\r\n props: {\r\n min: 0,\r\n precision: 0,\r\n value: key === 'price' ? params.row.price : params.row.quota,\r\n },\r\n on: {\r\n 'on-change': (e) => {\r\n key === 'price' ? (params.row.price = e) : (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 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 ot_price: row.ot_price,\r\n cost: row.cost,\r\n sales: row.sales,\r\n stock: row.stock,\r\n sort: row.sort,\r\n num: 1,\r\n once_num: 1,\r\n give_integral: row.give_integral,\r\n postage: row.postage,\r\n section_time: [],\r\n is_postage: row.is_postage,\r\n is_host: 0,\r\n is_show: 1,\r\n description: row.description,\r\n id: 0,\r\n product_id: row.id,\r\n temp_id: row.temp_id,\r\n };\r\n this.productAttrs(row);\r\n this.$refs.goodslist.productRow = null;\r\n }, 500);\r\n },\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 integralInfoApi(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.$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 integralAddApi(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_integral/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.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 }\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 // case 'danTable':\r\n // this.specsData[this.tableIndex].pic = 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 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'; // e.dataTransfer.dropEffect=\"move\";//在dragenter中针对放置目标来设置!\r\n },\r\n handleDragEnter(e, item) {\r\n e.dataTransfer.effectAllowed = 'move'; // 为需要移动的元素设置dragstart事件\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.custom-label {\r\n display: inline-flex;\r\n line-height: 1.5;\r\n}\r\n\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.tabBox_img {\r\n width: 50px;\r\n height: 50px;\r\n margin: 0 auto;\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</style>\r\n"]}]}
|