fb42407f3c64ef971a88b63e6f6e38d8.json 76 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\\storeBargain\\create.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\item\\newItem\\admin\\src\\pages\\marketing\\storeBargain\\create.vue","mtime":1677828270213},{"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:aW1wb3J0IF9hc3luY1RvR2VuZXJhdG9yIGZyb20gIkU6L2l0ZW0vbmV3SXRlbS9hZG1pbi9ub2RlX21vZHVsZXMvQHZ1ZS9iYWJlbC1wcmVzZXQtYXBwL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICJFOi9pdGVtL25ld0l0ZW0vYWRtaW4vbm9kZV9tb2R1bGVzL0B2dWUvYmFiZWwtcHJlc2V0LWFwcC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9Db25zdW1hYmxlQXJyYXkuanMiOwppbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tICJFOi9pdGVtL25ld0l0ZW0vYWRtaW4vbm9kZV9tb2R1bGVzL0B2dWUvYmFiZWwtcHJlc2V0LWFwcC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMi5qcyI7CmltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSAiRTovaXRlbS9uZXdJdGVtL2FkbWluL25vZGVfbW9kdWxlcy9AdnVlL2JhYmVsLXByZXNldC1hcHAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5LmpzIjsKaW1wb3J0ICJyZWdlbmVyYXRvci1ydW50aW1lL3J1bnRpbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zeW1ib2wuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zeW1ib2wuZGVzY3JpcHRpb24uanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNwbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNvcnQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwppbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gJ3Z1ZXgnOwppbXBvcnQgZ29vZHNMaXN0IGZyb20gJ0AvY29tcG9uZW50cy9nb29kc0xpc3QvaW5kZXgnOwppbXBvcnQgdXBsb2FkUGljdHVyZXMgZnJvbSAnQC9jb21wb25lbnRzL3VwbG9hZFBpY3R1cmVzJzsKaW1wb3J0IHsgYmFyZ2FpbkluZm9BcGksIGJhcmdhaW5DcmVhdEFwaSwgcHJvZHVjdEF0dHJzQXBpIH0gZnJvbSAnQC9hcGkvbWFya2V0aW5nJzsKaW1wb3J0IHsgcHJvZHVjdEdldFRlbXBsYXRlQXBpIH0gZnJvbSAnQC9hcGkvcHJvZHVjdCc7CmltcG9ydCBmcmVpZ2h0VGVtcGxhdGUgZnJvbSAnQC9jb21wb25lbnRzL2ZyZWlnaHRUZW1wbGF0ZS9pbmRleCc7CmltcG9ydCBXYW5nRWRpdG9yIGZyb20gJ0AvY29tcG9uZW50cy93YW5nRWRpdG9yL2luZGV4LnZ1ZSc7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnc3RvcmVCYXJnYWluQ3JlYXRlJywKICBjb21wb25lbnRzOiB7CiAgICBnb29kc0xpc3Q6IGdvb2RzTGlzdCwKICAgIHVwbG9hZFBpY3R1cmVzOiB1cGxvYWRQaWN0dXJlcywKICAgIGZyZWlnaHRUZW1wbGF0ZTogZnJlaWdodFRlbXBsYXRlLAogICAgV2FuZ0VkaXRvcjogV2FuZ0VkaXRvcgogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIHN1Ym1pdE9wZW46IGZhbHNlLAogICAgICBzcGluU2hvdzogZmFsc2UsCiAgICAgIG15Q29uZmlnOiB7CiAgICAgICAgYXV0b0hlaWdodEVuYWJsZWQ6IGZhbHNlLAogICAgICAgIC8vIOe8lui+keWZqOS4jeiHquWKqOiiq+WGheWuueaSkemrmAogICAgICAgIGluaXRpYWxGcmFtZUhlaWdodDogNTAwLAogICAgICAgIC8vIOWIneWni+WuueWZqOmrmOW6pgogICAgICAgIGluaXRpYWxGcmFtZVdpZHRoOiAnMTAwJScsCiAgICAgICAgLy8g5Yid5aeL5a655Zmo5a695bqmCiAgICAgICAgVUVESVRPUl9IT01FX1VSTDogJy9hZG1pbi9VRWRpdG9yLycsCiAgICAgICAgc2VydmVyVXJsOiAnJwogICAgICB9LAogICAgICBpc0Nob2ljZTogJycsCiAgICAgIGN1cnJlbnQ6IDAsCiAgICAgIG1vZGFsUGljOiBmYWxzZSwKICAgICAgZ3JpZDogewogICAgICAgIHhsOiAxMiwKICAgICAgICBsZzogMjAsCiAgICAgICAgbWQ6IDI0LAogICAgICAgIHNtOiAyNCwKICAgICAgICB4czogMjQKICAgICAgfSwKICAgICAgZ3JpZDI6IHsKICAgICAgICB4bDogOCwKICAgICAgICBsZzogOCwKICAgICAgICBtZDogMTIsCiAgICAgICAgc206IDI0LAogICAgICAgIHhzOiAyNAogICAgICB9LAogICAgICBncmlkUGljOiB7CiAgICAgICAgeGw6IDYsCiAgICAgICAgbGc6IDgsCiAgICAgICAgbWQ6IDEyLAogICAgICAgIHNtOiAxMiwKICAgICAgICB4czogMTIKICAgICAgfSwKICAgICAgZ3JpZEJ0bjogewogICAgICAgIHhsOiA0LAogICAgICAgIGxnOiA4LAogICAgICAgIG1kOiA4LAogICAgICAgIHNtOiA4LAogICAgICAgIHhzOiA4CiAgICAgIH0sCiAgICAgIG1vZGFsczogZmFsc2UsCiAgICAgIG1vZGFsX2xvYWRpbmc6IGZhbHNlLAogICAgICBpbWFnZXM6IFtdLAogICAgICB0ZW1wbGF0ZUxpc3Q6IFtdLAogICAgICBjb2x1bW5zOiBbXSwKICAgICAgc3BlY3NEYXRhOiBbXSwKICAgICAgZm9ybVZhbGlkYXRlOiBfZGVmaW5lUHJvcGVydHkoewogICAgICAgIGltYWdlczogW10sCiAgICAgICAgaW5mbzogJycsCiAgICAgICAgdGl0bGU6ICcnLAogICAgICAgIHN0b3JlX25hbWU6ICcnLAogICAgICAgIGltYWdlOiAnJywKICAgICAgICB1bml0X25hbWU6ICcnLAogICAgICAgIHByaWNlOiAwLAogICAgICAgIG1pbl9wcmljZTogMCwKICAgICAgICBiYXJnYWluX21heF9wcmljZTogMTAsCiAgICAgICAgYmFyZ2Fpbl9taW5fcHJpY2U6IDAuMDEsCiAgICAgICAgY29zdDogMCwKICAgICAgICBiYXJnYWluX251bTogMSwKICAgICAgICBwZW9wbGVfbnVtOiAyLAogICAgICAgIHN0b2NrOiAxLAogICAgICAgIHNhbGVzOiAwLAogICAgICAgIHNvcnQ6IDAsCiAgICAgICAgbnVtOiAxLAogICAgICAgIGdpdmVfaW50ZWdyYWw6IDAsCiAgICAgICAgcG9zdGFnZTogMCwKICAgICAgICBpc19wb3N0YWdlOiAwLAogICAgICAgIGlzX2hvdDogMCwKICAgICAgICBzdGF0dXM6IDAsCiAgICAgICAgc2VjdGlvbl90aW1lOiBbXSwKICAgICAgICBkZXNjcmlwdGlvbjogJycsCiAgICAgICAgcnVsZTogJycsCiAgICAgICAgaWQ6IDAsCiAgICAgICAgcHJvZHVjdF9pZDogMCwKICAgICAgICB0ZW1wX2lkOiAnJywKICAgICAgICBhdHRyczogW10sCiAgICAgICAgaXRlbXM6IFtdLAogICAgICAgIGxvZ2lzdGljczogWycxJ10sCiAgICAgICAgLy/pgInmi6nnianmtYHmlrnlvI8KICAgICAgICBmcmVpZ2h0OiAyCiAgICAgIH0sICJwb3N0YWdlIiwgMSksCiAgICAgIGRlc2NyaXB0aW9uOiAnJywKICAgICAgcnVsZTogJycsCiAgICAgIHJ1bGVWYWxpZGF0ZTogewogICAgICAgIGltYWdlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5Li75Zu+JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgaW1hZ2VzOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICB0eXBlOiAnYXJyYXknLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeS4u+WbvicsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH0sIHsKICAgICAgICAgIHR5cGU6ICdhcnJheScsCiAgICAgICAgICBtaW46IDEsCiAgICAgICAgICBtZXNzYWdlOiAnQ2hvb3NlIHR3byBob2JiaWVzIGF0IGJlc3QnLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICB0aXRsZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeegjeS7t+a0u+WKqOWQjeensCcsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBpbmZvOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl56CN5Lu35rS75Yqo566A5LuLJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHN0b3JlX25hbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXnoI3ku7fllYblk4HlkI3np7AnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgc2VjdGlvbl90aW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICB0eXBlOiAnYXJyYXknLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqea0u+WKqOaXtumXtCcsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIHVuaXRfbmFtZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeWNleS9jScsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBwcmljZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdHlwZTogJ251bWJlcicsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5Y6f5Lu3JywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIG1pbl9wcmljZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdHlwZTogJ251bWJlcicsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5pyA5L2O6LSt5Lmw5Lu3JywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIC8vIGJhcmdhaW5fbWF4X3ByaWNlOiBbCiAgICAgICAgLy8gICAgIHsgcmVxdWlyZWQ6IHRydWUsIHR5cGU6ICdudW1iZXInLCBtZXNzYWdlOiAn6K+36L6T5Y2V5qyh56CN5Lu35pyA5aSn6YeR6aKdJywgdHJpZ2dlcjogJ2JsdXInIH0KICAgICAgICAvLyBdLAogICAgICAgIC8vIGJhcmdhaW5fbWluX3ByaWNlOiBbCiAgICAgICAgLy8gICAgIHsgcmVxdWlyZWQ6IHRydWUsIHR5cGU6ICdudW1iZXInLCBtZXNzYWdlOiAn5Y2V5qyh56CN5Lu35pyA5bCP6YeR6aKdJywgdHJpZ2dlcjogJ2JsdXInIH0KICAgICAgICAvLyBdLAogICAgICAgIGNvc3Q6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHR5cGU6ICdudW1iZXInLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeaIkOacrOS7tycsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBiYXJnYWluX251bTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdHlwZTogJ251bWJlcicsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5biu56CN5qyh5pWwJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHBlb3BsZV9udW06IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHR5cGU6ICdudW1iZXInLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeegjeS7t+S6uuaVsCcsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBzdG9jazogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdHlwZTogJ251bWJlcicsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5bqT5a2YJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIG51bTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgdHlwZTogJ251bWJlcicsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5Y2V5qyh5YWB6K646LSt5Lmw5pWw6YePJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHRlbXBfaWQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nov5DotLnmqKHmnb8nLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScsCiAgICAgICAgICB0eXBlOiAnbnVtYmVyJwogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIGN1cnJlbnRpZDogJycsCiAgICAgIHBpY1RpdDogJycsCiAgICAgIHRhYmxlSW5kZXg6IDAsCiAgICAgIGNvcHk6IDAKICAgIH07CiAgfSwKICBjb21wdXRlZDogX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBtYXBTdGF0ZSgnbWVkaWEnLCBbJ2lzTW9iaWxlJ10pKSwge30sIHsKICAgIGxhYmVsV2lkdGg6IGZ1bmN0aW9uIGxhYmVsV2lkdGgoKSB7CiAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlID8gdW5kZWZpbmVkIDogMTQwOwogICAgfSwKICAgIGxhYmVsUG9zaXRpb246IGZ1bmN0aW9uIGxhYmVsUG9zaXRpb24oKSB7CiAgICAgIHJldHVybiB0aGlzLmlzTW9iaWxlID8gJ3RvcCcgOiAncmlnaHQnOwogICAgfQogIH0pLAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICBpZiAodGhpcy4kcm91dGUucGFyYW1zLmlkICE9PSAnMCcgJiYgdGhpcy4kcm91dGUucGFyYW1zLmlkKSB7CiAgICAgIHRoaXMuY29weSA9IHRoaXMuJHJvdXRlLnBhcmFtcy5jb3B5OwogICAgICB0aGlzLmN1cnJlbnQgPSAxOwogICAgICB0aGlzLmdldEluZm8oKTsKICAgIH0KCiAgICB0aGlzLnByb2R1Y3RHZXRUZW1wbGF0ZSgpOwogIH0sCiAgbWV0aG9kczogewogICAgLy8g6K+m5oOF5YaF5a65CiAgICBnZXRFZGl0b3JDb250ZW50OiBmdW5jdGlvbiBnZXRFZGl0b3JDb250ZW50KGRhdGEpIHsKICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IGRhdGE7CiAgICB9LAogICAgLy8g6KeE5YiZ5YaF5a65CiAgICBnZXRFZGl0b3JDb250ZW50MjogZnVuY3Rpb24gZ2V0RWRpdG9yQ29udGVudDIoZGF0YSkgewogICAgICB0aGlzLnJ1bGUgPSBkYXRhOwogICAgfSwKICAgIC8vIOa3u+WKoOi/kOi0ueaooeadvwogICAgZnJlaWdodDogZnVuY3Rpb24gZnJlaWdodCgpIHsKICAgICAgdGhpcy4kcmVmcy50ZW1wbGF0ZS5pZCA9IDA7CiAgICAgIHRoaXMuJHJlZnMudGVtcGxhdGUuaXNUZW1wbGF0ZSA9IHRydWU7CiAgICB9LAogICAgLy8g56CN5Lu36KeE5qC877ybCiAgICBwcm9kdWN0QXR0cnM6IGZ1bmN0aW9uIHByb2R1Y3RBdHRycyhyb3cpIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKCiAgICAgIHZhciB0aGF0ID0gdGhpczsKICAgICAgcHJvZHVjdEF0dHJzQXBpKHJvdy5pZCwgMikudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgdmFyIGRhdGEgPSByZXMuZGF0YS5pbmZvOwogICAgICAgIHZhciByYWRpbyA9IHsKICAgICAgICAgIHRpdGxlOiAn6YCJ5oupJywKICAgICAgICAgIGtleTogJ2Nob3NlJywKICAgICAgICAgIHdpZHRoOiA2MCwKICAgICAgICAgIGFsaWduOiAnY2VudGVyJywKICAgICAgICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKGgsIHBhcmFtcykgewogICAgICAgICAgICB2YXIgdWlkID0gcGFyYW1zLmluZGV4OwogICAgICAgICAgICB2YXIgZmxhZyA9IGZhbHNlOwoKICAgICAgICAgICAgaWYgKF90aGlzLmN1cnJlbnRpZCA9PT0gdWlkKSB7CiAgICAgICAgICAgICAgZmxhZyA9IHRydWU7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZmxhZyA9IGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgc2VsZiA9IF90aGlzOwogICAgICAgICAgICByZXR1cm4gaCgnZGl2JywgW2goJ1JhZGlvJywgewogICAgICAgICAgICAgIHByb3BzOiB7CiAgICAgICAgICAgICAgICB2YWx1ZTogZmxhZwogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgb246IHsKICAgICAgICAgICAgICAgICdvbi1jaGFuZ2UnOiBmdW5jdGlvbiBvbkNoYW5nZSgpIHsKICAgICAgICAgICAgICAgICAgc2VsZi5jdXJyZW50aWQgPSB1aWQ7CiAgICAgICAgICAgICAgICAgIHZhciBhdHRycyA9IFtdOwogICAgICAgICAgICAgICAgICBhdHRycy5wdXNoKHBhcmFtcy5yb3cpOwogICAgICAgICAgICAgICAgICBzZWxmLmZvcm1WYWxpZGF0ZS5hdHRycyA9IGF0dHJzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSldKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHRoYXQuY29sdW1ucyA9IGRhdGEuaGVhZGVyOwogICAgICAgIHRoYXQuY29sdW1ucy51bnNoaWZ0KHJhZGlvKTsKICAgICAgICB0aGF0LnNwZWNzRGF0YSA9IGRhdGEuYXR0cnM7CiAgICAgICAgdGhhdC5pbnB1dENoYW5nZShkYXRhKTsKICAgICAgICB0aGF0LmZvcm1WYWxpZGF0ZS5pdGVtcyA9IGRhdGEuaXRlbXM7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICB0aGF0LiRNZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICBpbnB1dENoYW5nZTogZnVuY3Rpb24gaW5wdXRDaGFuZ2UoZGF0YSkgewogICAgICB2YXIgdGhhdCA9IHRoaXM7CiAgICAgIHZhciAkaW5kZXggPSBbXTsKICAgICAgZGF0YS5oZWFkZXIuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSwgaW5kZXgpIHsKICAgICAgICBpZiAoaXRlbS50eXBlID09PSAxKSB7CiAgICAgICAgICAkaW5kZXgucHVzaCh7CiAgICAgICAgICAgIGluZGV4OiBpbmRleCwKICAgICAgICAgICAga2V5OiBpdGVtLmtleSwKICAgICAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgICRpbmRleC5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtLCBpbmRleCkgewogICAgICAgIHZhciB0aXRsZSA9IGl0ZW0udGl0bGU7CiAgICAgICAgdmFyIGtleSA9IGl0ZW0ua2V5OwogICAgICAgIHZhciByb3cgPSB7CiAgICAgICAgICB0aXRsZTogdGl0bGUsCiAgICAgICAgICBrZXk6IGtleSwKICAgICAgICAgIGFsaWduOiAnY2VudGVyJywKICAgICAgICAgIG1pbldpZHRoOiAxMDAsCiAgICAgICAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcihoLCBwYXJhbXMpIHsKICAgICAgICAgICAgcmV0dXJuIGgoJ2RpdicsIFtoKCdJbnB1dE51bWJlcicsIHsKICAgICAgICAgICAgICBwcm9wczogewogICAgICAgICAgICAgICAgbWluOiAxLAogICAgICAgICAgICAgICAgcHJlY2lzaW9uOiAwLAogICAgICAgICAgICAgICAgdmFsdWU6IHBhcmFtcy5yb3cucXVvdGEKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIG9uOiB7CiAgICAgICAgICAgICAgICAnb24tY2hhbmdlJzogZnVuY3Rpb24gb25DaGFuZ2UoZSkgewogICAgICAgICAgICAgICAgICBwYXJhbXMucm93LnF1b3RhID0gZTsKICAgICAgICAgICAgICAgICAgdGhhdC5zcGVjc0RhdGFbcGFyYW1zLmluZGV4XSA9IHBhcmFtcy5yb3c7CgogICAgICAgICAgICAgICAgICBpZiAoISF0aGF0LmZvcm1WYWxpZGF0ZS5hdHRycyAmJiB0aGF0LmZvcm1WYWxpZGF0ZS5hdHRycy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICB0aGF0LmZvcm1WYWxpZGF0ZS5hdHRycy5mb3JFYWNoKGZ1bmN0aW9uICh2LCBpbmRleCkgewogICAgICAgICAgICAgICAgICAgICAgaWYgKHYuaWQgPT09IHBhcmFtcy5yb3cuaWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5mb3JtVmFsaWRhdGUuYXR0cnMuc3BsaWNlKGluZGV4LCAxLCBwYXJhbXMucm93KTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSldKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHRoYXQuY29sdW1ucy5zcGxpY2UoaXRlbS5pbmRleCwgMSwgcm93KTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g6I635Y+W6L+Q6LS55qih5p2/77ybCiAgICBwcm9kdWN0R2V0VGVtcGxhdGU6IGZ1bmN0aW9uIHByb2R1Y3RHZXRUZW1wbGF0ZSgpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CgogICAgICBwcm9kdWN0R2V0VGVtcGxhdGVBcGkoKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczIudGVtcGxhdGVMaXN0ID0gcmVzLmRhdGE7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOWVhuWTgWlkCiAgICBnZXRQcm9kdWN0SWQ6IGZ1bmN0aW9uIGdldFByb2R1Y3RJZChyb3cpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CgogICAgICB0aGlzLm1vZGFsX2xvYWRpbmcgPSBmYWxzZTsKICAgICAgdGhpcy5tb2RhbHMgPSBmYWxzZTsKICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF90aGlzMyRmb3JtVmFsaWRhdGU7CgogICAgICAgIF90aGlzMy5mb3JtVmFsaWRhdGUgPSAoX3RoaXMzJGZvcm1WYWxpZGF0ZSA9IHsKICAgICAgICAgIGltYWdlczogcm93LnNsaWRlcl9pbWFnZSwKICAgICAgICAgIGluZm86IHJvdy5zdG9yZV9pbmZvLAogICAgICAgICAgdGl0bGU6IHJvdy5zdG9yZV9uYW1lLAogICAgICAgICAgc3RvcmVfbmFtZTogcm93LnN0b3JlX25hbWUsCiAgICAgICAgICBpbWFnZTogcm93LmltYWdlLAogICAgICAgICAgdW5pdF9uYW1lOiByb3cudW5pdF9uYW1lLAogICAgICAgICAgcHJpY2U6IDAsCiAgICAgICAgICAvLyDkuI3lj5bllYblk4HkuK3nmoTljp/ku7cKICAgICAgICAgIG1pbl9wcmljZTogMCwKICAgICAgICAgIGJhcmdhaW5fbWF4X3ByaWNlOiAxMCwKICAgICAgICAgIGJhcmdhaW5fbWluX3ByaWNlOiAwLjAxLAogICAgICAgICAgY29zdDogcm93LmNvc3QsCiAgICAgICAgICBiYXJnYWluX251bTogMSwKICAgICAgICAgIHBlb3BsZV9udW06IDIsCiAgICAgICAgICBzdG9jazogcm93LnN0b2NrLAogICAgICAgICAgc2FsZXM6IHJvdy5zYWxlcywKICAgICAgICAgIHNvcnQ6IHJvdy5zb3J0LAogICAgICAgICAgbnVtOiAxLAogICAgICAgICAgZ2l2ZV9pbnRlZ3JhbDogcm93LmdpdmVfaW50ZWdyYWwsCiAgICAgICAgICBwb3N0YWdlOiByb3cucG9zdGFnZSwKICAgICAgICAgIGlzX3Bvc3RhZ2U6IHJvdy5pc19wb3N0YWdlLAogICAgICAgICAgaXNfaG90OiByb3cuaXNfaG90LAogICAgICAgICAgc3RhdHVzOiAwLAogICAgICAgICAgc2VjdGlvbl90aW1lOiBbXSwKICAgICAgICAgIGRlc2NyaXB0aW9uOiByb3cuZGVzY3JpcHRpb24sCiAgICAgICAgICAvLyDkuI3lj5bllYblk4HkuK3nmoQKICAgICAgICAgIHJ1bGU6ICcnLAogICAgICAgICAgaWQ6IDAsCiAgICAgICAgICBwcm9kdWN0X2lkOiByb3cuaWQsCiAgICAgICAgICB0ZW1wX2lkOiByb3cudGVtcF9pZCwKICAgICAgICAgIGxvZ2lzdGljczogcm93LnRlbXBfaWQsCiAgICAgICAgICAvL+mAieaLqeeJqea1geaWueW8jwogICAgICAgICAgZnJlaWdodDogcm93LmZyZWlnaHQKICAgICAgICB9LCBfZGVmaW5lUHJvcGVydHkoX3RoaXMzJGZvcm1WYWxpZGF0ZSwgInBvc3RhZ2UiLCByb3cucG9zdGFnZSksIF9kZWZpbmVQcm9wZXJ0eShfdGhpczMkZm9ybVZhbGlkYXRlLCAiY3VzdG9tX2Zvcm0iLCByb3cuY3VzdG9tX2Zvcm0pLCBfZGVmaW5lUHJvcGVydHkoX3RoaXMzJGZvcm1WYWxpZGF0ZSwgInZpcnR1YWxfdHlwZSIsIHJvdy52aXJ0dWFsX3R5cGUpLCBfdGhpczMkZm9ybVZhbGlkYXRlKTsKCiAgICAgICAgX3RoaXMzLnByb2R1Y3RBdHRycyhyb3cpOwogICAgICB9LCA1MDApOwogICAgfSwKICAgIGNhbmNlbDogZnVuY3Rpb24gY2FuY2VsKCkgewogICAgICB0aGlzLm1vZGFscyA9IGZhbHNlOwogICAgfSwKICAgIC8vIOenu+WKqAogICAgaGFuZGxlRHJhZ1N0YXJ0OiBmdW5jdGlvbiBoYW5kbGVEcmFnU3RhcnQoZSwgaXRlbSkgewogICAgICB0aGlzLmRyYWdnaW5nID0gaXRlbTsKICAgIH0sCiAgICBoYW5kbGVEcmFnRW5kOiBmdW5jdGlvbiBoYW5kbGVEcmFnRW5kKGUsIGl0ZW0pIHsKICAgICAgdGhpcy5kcmFnZ2luZyA9IG51bGw7CiAgICB9LAogICAgLy8g6aaW5YWI5oqKZGl25Y+Y5oiQ5Y+v5Lul5pS+572u55qE5YWD57Sg77yM5Y2z6YeN5YaZZHJhZ2VudGVyL2RyYWdvdmVyCiAgICBoYW5kbGVEcmFnT3ZlcjogZnVuY3Rpb24gaGFuZGxlRHJhZ092ZXIoZSkgewogICAgICBlLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0ID0gJ21vdmUnOwogICAgfSwKICAgIGhhbmRsZURyYWdFbnRlcjogZnVuY3Rpb24gaGFuZGxlRHJhZ0VudGVyKGUsIGl0ZW0pIHsKICAgICAgZS5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZCA9ICdtb3ZlJzsKCiAgICAgIGlmIChpdGVtID09PSB0aGlzLmRyYWdnaW5nKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICB2YXIgbmV3SXRlbXMgPSBfdG9Db25zdW1hYmxlQXJyYXkodGhpcy5mb3JtVmFsaWRhdGUuaW1hZ2VzKTsKCiAgICAgIHZhciBzcmMgPSBuZXdJdGVtcy5pbmRleE9mKHRoaXMuZHJhZ2dpbmcpOwogICAgICB2YXIgZHN0ID0gbmV3SXRlbXMuaW5kZXhPZihpdGVtKTsKICAgICAgbmV3SXRlbXMuc3BsaWNlLmFwcGx5KG5ld0l0ZW1zLCBbZHN0LCAwXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KG5ld0l0ZW1zLnNwbGljZShzcmMsIDEpKSkpOwogICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5pbWFnZXMgPSBuZXdJdGVtczsKICAgIH0sCiAgICAvLyDlhbfkvZPml6XmnJ8KICAgIG9uY2hhbmdlVGltZTogZnVuY3Rpb24gb25jaGFuZ2VUaW1lKGUpIHsKICAgICAgdGhpcy5mb3JtVmFsaWRhdGUuc2VjdGlvbl90aW1lID0gZTsKICAgIH0sCiAgICAvLyDor6bmg4UKICAgIGdldEluZm86IGZ1bmN0aW9uIGdldEluZm8oKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwoKICAgICAgdGhpcy5zcGluU2hvdyA9IHRydWU7CiAgICAgIGJhcmdhaW5JbmZvQXBpKHRoaXMuJHJvdXRlLnBhcmFtcy5pZCkudGhlbiggLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKICAgICAgICB2YXIgX3JlZiA9IF9hc3luY1RvR2VuZXJhdG9yKCAvKiNfX1BVUkVfXyovcmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoZnVuY3Rpb24gX2NhbGxlZShyZXMpIHsKICAgICAgICAgIHZhciB0aGF0LCBpbmZvLCByYWRpbywgZGVmYXVsdEF0dHJzOwogICAgICAgICAgcmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7CiAgICAgICAgICAgIHdoaWxlICgxKSB7CiAgICAgICAgICAgICAgc3dpdGNoIChfY29udGV4dC5wcmV2ID0gX2NvbnRleHQubmV4dCkgewogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICB0aGF0ID0gX3RoaXM0OwogICAgICAgICAgICAgICAgICBpbmZvID0gcmVzLmRhdGEuaW5mbzsKICAgICAgICAgICAgICAgICAgX3RoaXM0LmZvcm1WYWxpZGF0ZSA9IGluZm87CiAgICAgICAgICAgICAgICAgIF90aGlzNC5mb3JtVmFsaWRhdGUucnVsZSA9IGluZm8ucnVsZSA9PT0gbnVsbCA/ICcnIDogaW5mby5ydWxlOwoKICAgICAgICAgICAgICAgICAgX3RoaXM0LiRzZXQoX3RoaXM0LmZvcm1WYWxpZGF0ZSwgJ2l0ZW1zJywgaW5mby5hdHRycy5pdGVtcyk7CgogICAgICAgICAgICAgICAgICBfdGhpczQuY29sdW1ucyA9IGluZm8uYXR0cnMuaGVhZGVyOwogICAgICAgICAgICAgICAgICByYWRpbyA9IHsKICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+mAieaLqScsCiAgICAgICAgICAgICAgICAgICAga2V5OiAnY2hvc2UnLAogICAgICAgICAgICAgICAgICAgIHdpZHRoOiA2MCwKICAgICAgICAgICAgICAgICAgICBhbGlnbjogJ2NlbnRlcicsCiAgICAgICAgICAgICAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoaCwgcGFyYW1zKSB7CiAgICAgICAgICAgICAgICAgICAgICB2YXIgdWlkID0gcGFyYW1zLmluZGV4OwogICAgICAgICAgICAgICAgICAgICAgdmFyIGZsYWcgPSBmYWxzZTsKCiAgICAgICAgICAgICAgICAgICAgICBpZiAoX3RoaXM0LmN1cnJlbnRpZCA9PT0gdWlkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgZmxhZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgIHZhciBzZWxmID0gX3RoaXM0OwogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGgoJ2RpdicsIFtoKCdSYWRpbycsIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmxhZwogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBvbjogewogICAgICAgICAgICAgICAgICAgICAgICAgICdvbi1jaGFuZ2UnOiBmdW5jdGlvbiBvbkNoYW5nZSgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY3VycmVudGlkID0gdWlkOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGF0dHJzID0gW107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRycy5wdXNoKHBhcmFtcy5yb3cpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mb3JtVmFsaWRhdGUuYXR0cnMgPSBhdHRyczsKICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIH0pXSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICB0aGF0LmNvbHVtbnMudW5zaGlmdChyYWRpbyk7CiAgICAgICAgICAgICAgICAgIF90aGlzNC5zcGVjc0RhdGEgPSBpbmZvLmF0dHJzLnZhbHVlOwogICAgICAgICAgICAgICAgICBkZWZhdWx0QXR0cnMgPSBbXTsKICAgICAgICAgICAgICAgICAgaW5mby5hdHRycy52YWx1ZS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtLCBpbmRleCkgewogICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLm9wdCkgewogICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEF0dHJzLnB1c2goaXRlbSk7CiAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZXQodGhhdCwgJ2N1cnJlbnRpZCcsIGluZGV4KTsKICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJHNldCh0aGF0LmZvcm1WYWxpZGF0ZSwgJ2F0dHJzJywgZGVmYXVsdEF0dHJzKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICBfdGhpczQuc3BpblNob3cgPSBmYWxzZTsKCiAgICAgICAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIF9jYWxsZWUpOwogICAgICAgIH0pKTsKCiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeCkgewogICAgICAgICAgcmV0dXJuIF9yZWYuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICB9OwogICAgICB9KCkpLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczQuc3BpblNob3cgPSBmYWxzZTsKCiAgICAgICAgX3RoaXM0LiRNZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDkuIvkuIDmraUKICAgIG5leHQ6IGZ1bmN0aW9uIG5leHQobmFtZSkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKCiAgICAgIGlmICh0aGlzLmN1cnJlbnQgPT09IDMpIHsKICAgICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5kZXNjcmlwdGlvbiA9IHRoaXMuZGVzY3JpcHRpb247CiAgICAgICAgdGhpcy5mb3JtVmFsaWRhdGUucnVsZSA9IHRoaXMucnVsZTsKICAgICAgICB0aGlzLiRyZWZzW25hbWVdLnZhbGlkYXRlKGZ1bmN0aW9uICh2YWxpZCkgewogICAgICAgICAgaWYgKHZhbGlkKSB7CiAgICAgICAgICAgIGlmIChfdGhpczUuY29weSA9PSAxKSBfdGhpczUuZm9ybVZhbGlkYXRlLmNvcHkgPSAxOwogICAgICAgICAgICBfdGhpczUuZm9ybVZhbGlkYXRlLmlkID0gX3RoaXM1LiRyb3V0ZS5wYXJhbXMuaWQgfHwgMDsKICAgICAgICAgICAgX3RoaXM1LnN1Ym1pdE9wZW4gPSB0cnVlOwogICAgICAgICAgICBiYXJnYWluQ3JlYXRBcGkoX3RoaXM1LmZvcm1WYWxpZGF0ZSkudGhlbiggLyojX19QVVJFX18qL2Z1bmN0aW9uICgpIHsKICAgICAgICAgICAgICB2YXIgX3JlZjIgPSBfYXN5bmNUb0dlbmVyYXRvciggLyojX19QVVJFX18qL3JlZ2VuZXJhdG9yUnVudGltZS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyKHJlcykgewogICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyJChfY29udGV4dDIpIHsKICAgICAgICAgICAgICAgICAgd2hpbGUgKDEpIHsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKF9jb250ZXh0Mi5wcmV2ID0gX2NvbnRleHQyLm5leHQpIHsKICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM1LnN1Ym1pdE9wZW4gPSBmYWxzZTsKCiAgICAgICAgICAgICAgICAgICAgICAgIF90aGlzNS4kTWVzc2FnZS5zdWNjZXNzKHJlcy5tc2cpOwoKICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM1LiRyb3V0ZXIucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnL2FkbWluL21hcmtldGluZy9zdG9yZV9iYXJnYWluL2luZGV4JwogICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICB9LCA1MDApOwoKICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuc3RvcCgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgX2NhbGxlZTIpOwogICAgICAgICAgICAgIH0pKTsKCiAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeDIpIHsKICAgICAgICAgICAgICAgIHJldHVybiBfcmVmMi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0oKSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICAgIF90aGlzNS5zdWJtaXRPcGVuID0gZmFsc2U7CgogICAgICAgICAgICAgIF90aGlzNS4kTWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50ID09PSAxKSB7CiAgICAgICAgdGhpcy4kcmVmc1tuYW1lXS52YWxpZGF0ZShmdW5jdGlvbiAodmFsaWQpIHsKICAgICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgICBpZiAoX3RoaXM1LmN1cnJlbnRpZCA9PT0gJycpIHsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXM1LiRNZXNzYWdlLmVycm9yKCfor7fpgInmi6nlsZ7mgKfop4TmoLwnKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB2YXIgdmFsID0gX3RoaXM1LnNwZWNzRGF0YVtfdGhpczUuY3VycmVudGlkXTsKICAgICAgICAgICAgICB2YXIgZm9ybVZhbGlkYXRlID0gX3RoaXM1LmZvcm1WYWxpZGF0ZS5hdHRyc1swXTsKICAgICAgICAgICAgICBmb3JtVmFsaWRhdGUucHJpY2UgPSB2YWwucHJpY2U7CiAgICAgICAgICAgICAgZm9ybVZhbGlkYXRlLm1pbl9wcmljZSA9IHZhbC5taW5fcHJpY2U7CiAgICAgICAgICAgICAgZm9ybVZhbGlkYXRlLnF1b3RhID0gdmFsLnF1b3RhOwoKICAgICAgICAgICAgICBpZiAoX3RoaXM1LmZvcm1WYWxpZGF0ZS5hdHRyc1swXS5xdW90YSA8PSAwKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gX3RoaXM1LiRNZXNzYWdlLmVycm9yKCfnoI3ku7fpmZDph4/lv4XpobvlpKfkuo4wJyk7CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICBpZiAoX3RoaXM1LmZvcm1WYWxpZGF0ZS5hdHRyc1swXS5xdW90YSA+IF90aGlzNS5mb3JtVmFsaWRhdGUuYXR0cnNbMF1bJ3N0b2NrJ10pIHsKICAgICAgICAgICAgICAgIHJldHVybiBfdGhpczUuJE1lc3NhZ2UuZXJyb3IoJ+egjeS7t+mZkOmHj+S4jeiDvei2hei/h+inhOagvOW6k+WtmCcpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgX3RoaXM1LmN1cnJlbnQgKz0gMTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBfdGhpczUuJE1lc3NhZ2Uud2FybmluZygn6K+35a6M5ZaE5oKo55qE5L+h5oGvJyk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKHRoaXMuZm9ybVZhbGlkYXRlLmltYWdlKSB7CiAgICAgICAgICB0aGlzLmN1cnJlbnQgKz0gMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kTWVzc2FnZS53YXJuaW5nKCfor7fpgInmi6nllYblk4EnKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAvLyDkuIrkuIDmraUKICAgIHN0ZXA6IGZ1bmN0aW9uIHN0ZXAoKSB7CiAgICAgIHRoaXMuY3VycmVudC0tOwogICAgfSwKICAgIC8vIOWGheWuuQogICAgZ2V0Q29udGVudDogZnVuY3Rpb24gZ2V0Q29udGVudCh2YWwpIHsKICAgICAgdGhpcy5mb3JtVmFsaWRhdGUuZGVzY3JpcHRpb24gPSB2YWw7CiAgICB9LAogICAgLy8g6KeE5YiZCiAgICBnZXRSb2xlOiBmdW5jdGlvbiBnZXRSb2xlKHZhbCkgewogICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5ydWxlID0gdmFsOwogICAgfSwKICAgIC8vIOeCueWHu+WVhuWTgeWbvgogICAgbW9kYWxQaWNUYXA6IGZ1bmN0aW9uIG1vZGFsUGljVGFwKHRpdCwgcGljVGl0LCBpbmRleCkgewogICAgICB0aGlzLm1vZGFsUGljID0gdHJ1ZTsKICAgICAgdGhpcy5pc0Nob2ljZSA9IHRpdCA9PT0gJ2RhbicgPyAn5Y2V6YCJJyA6ICflpJrpgIknOwogICAgICB0aGlzLnBpY1RpdCA9IHBpY1RpdDsKICAgICAgdGhpcy50YWJsZUluZGV4ID0gaW5kZXg7CiAgICB9LAogICAgLy8g6I635Y+W5Y2V5byg5Zu+54mH5L+h5oGvCiAgICBnZXRQaWM6IGZ1bmN0aW9uIGdldFBpYyhwYykgewogICAgICBzd2l0Y2ggKHRoaXMucGljVGl0KSB7CiAgICAgICAgY2FzZSAnZGFuRnJvbSc6CiAgICAgICAgICB0aGlzLmZvcm1WYWxpZGF0ZS5pbWFnZSA9IHBjLmF0dF9kaXI7CiAgICAgICAgICBicmVhazsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgIHRoaXMuc3BlY3NEYXRhW3RoaXMudGFibGVJbmRleF0ucGljID0gcGMuYXR0X2RpcjsKICAgICAgICAgIHRoaXMuZm9ybVZhbGlkYXRlLmF0dHJzWzBdLnBpYyA9IHBjLmF0dF9kaXI7CiAgICAgIH0KCiAgICAgIHRoaXMubW9kYWxQaWMgPSBmYWxzZTsKICAgIH0sCiAgICAvLyDojrflj5blpJrlvKDlm77kv6Hmga8KICAgIGdldFBpY0Q6IGZ1bmN0aW9uIGdldFBpY0QocGMpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CgogICAgICB0aGlzLmltYWdlcyA9IHBjOwogICAgICB0aGlzLmltYWdlcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICBfdGhpczYuZm9ybVZhbGlkYXRlLmltYWdlcy5wdXNoKGl0ZW0uYXR0X2Rpcik7CgogICAgICAgIF90aGlzNi5mb3JtVmFsaWRhdGUuaW1hZ2VzID0gX3RoaXM2LmZvcm1WYWxpZGF0ZS5pbWFnZXMuc3BsaWNlKDAsIDEwKTsKICAgICAgfSk7CiAgICAgIHRoaXMubW9kYWxQaWMgPSBmYWxzZTsKICAgIH0sCiAgICBoYW5kbGVSZW1vdmU6IGZ1bmN0aW9uIGhhbmRsZVJlbW92ZShpKSB7CiAgICAgIHRoaXMuaW1hZ2VzLnNwbGljZShpLCAxKTsKICAgICAgdGhpcy5mb3JtVmFsaWRhdGUuaW1hZ2VzLnNwbGljZShpLCAxKTsKICAgIH0sCiAgICAvLyDpgInmi6nllYblk4EKICAgIGNoYW5nZUdvb2RzOiBmdW5jdGlvbiBjaGFuZ2VHb29kcygpIHsKICAgICAgdGhpcy5tb2RhbHMgPSB0cnVlOwogICAgICB0aGlzLiRyZWZzLmdvb2RzbGlzdC5mb3JtVmFsaWRhdGUuaXNfcHJlc2FsZSA9IDA7CiAgICAgIHRoaXMuJHJlZnMuZ29vZHNsaXN0LmdldExpc3QoKTsKICAgICAgdGhpcy4kcmVmcy5nb29kc2xpc3QuZ29vZHNDYXRlZ29yeSgpOwogICAgfSwKICAgIC8vIOihqOWNlemqjOivgQogICAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKHByb3AsIHN0YXR1cywgZXJyb3IpIHsKICAgICAgaWYgKHN0YXR1cyA9PT0gZmFsc2UpIHsKICAgICAgICB0aGlzLiRNZXNzYWdlLmVycm9yKGVycm9yKTsKICAgICAgfQogICAgfSwKICAgIC8vIOa3u+WKoOiHquWumuS5ieW8ueeqlwogICAgYWRkQ3VzdG9tRGlhbG9nOiBmdW5jdGlvbiBhZGRDdXN0b21EaWFsb2coZWRpdG9ySWQpIHsKICAgICAgd2luZG93LlVFLnJlZ2lzdGVyVUkoJ3Rlc3QtZGlhbG9nJywgZnVuY3Rpb24gKGVkaXRvciwgdWlOYW1lKSB7CiAgICAgICAgLy8g5Yib5bu6IGRpYWxvZwogICAgICAgIHZhciBkaWFsb2cgPSBuZXcgd2luZG93LlVFLnVpLkRpYWxvZyh7CiAgICAgICAgICAvLyDmjIflrprlvLnlh7rlsYLkuK3pobXpnaLnmoTot6/lvoTvvIzov5nph4zlj6rog73mlK/mjIHpobXpnaLvvIzot6/lvoTlj4LogIPluLjop4Hpl67popggMgogICAgICAgICAgaWZyYW1lVXJsOiAnL2FkbWluL3dpZGdldC5pbWFnZXMvaW5kZXguaHRtbD9mb2RkZXI9ZGlhbG9nJywKICAgICAgICAgIC8vIOmcgOimgeaMh+WumuW9k+WJjeeahOe8lui+keWZqOWunuS+iwogICAgICAgICAgZWRpdG9yOiBlZGl0b3IsCiAgICAgICAgICAvLyDmjIflrpogZGlhbG9nIOeahOWQjeWtlwogICAgICAgICAgbmFtZTogdWlOYW1lLAogICAgICAgICAgLy8gZGlhbG9nIOeahOagh+mimAogICAgICAgICAgdGl0bGU6ICfkuIrkvKDlm77niYcnLAogICAgICAgICAgLy8g5oyH5a6aIGRpYWxvZyDnmoTlpJblm7TmoLflvI8KICAgICAgICAgIGNzc1J1bGVzOiAnd2lkdGg6OTYwcHg7aGVpZ2h0OjU1MHB4O3BhZGRpbmc6MjBweDsnCiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5kaWFsb2cgPSBkaWFsb2c7CiAgICAgICAgdmFyIGJ0biA9IG5ldyB3aW5kb3cuVUUudWkuQnV0dG9uKHsKICAgICAgICAgIG5hbWU6ICdkaWFsb2ctYnV0dG9uJywKICAgICAgICAgIHRpdGxlOiAn5LiK5Lyg5Zu+54mHJywKICAgICAgICAgIGNzc1J1bGVzOiAiYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvaWNvbnMucG5nKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzI2cHggLTc3cHg7IiwKICAgICAgICAgIG9uY2xpY2s6IGZ1bmN0aW9uIG9uY2xpY2soKSB7CiAgICAgICAgICAgIC8vIOa4suafk2RpYWxvZwogICAgICAgICAgICBkaWFsb2cucmVuZGVyKCk7CiAgICAgICAgICAgIGRpYWxvZy5vcGVuKCk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGJ0bjsKICAgICAgfSwgMzcpOwogICAgfQogIH0KfTs="},{"version":3,"mappings":"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","names":["name","components","goodsList","uploadPictures","freightTemplate","WangEditor","data","submitOpen","spinShow","myConfig","autoHeightEnabled","initialFrameHeight","initialFrameWidth","UEDITOR_HOME_URL","serverUrl","isChoice","current","modalPic","grid","xl","lg","md","sm","xs","grid2","gridPic","gridBtn","modals","modal_loading","images","templateList","columns","specsData","formValidate","info","title","store_name","image","unit_name","price","min_price","bargain_max_price","bargain_min_price","cost","bargain_num","people_num","stock","sales","sort","num","give_integral","postage","is_postage","is_hot","status","section_time","description","rule","id","product_id","temp_id","attrs","items","logistics","freight","ruleValidate","required","message","trigger","type","min","currentid","picTit","tableIndex","copy","computed","mapState","labelWidth","labelPosition","mounted","methods","getEditorContent","getEditorContent2","productAttrs","row","productAttrsApi","then","key","width","align","render","flag","h","props","value","on","self","that","catch","inputChange","$index","index","minWidth","precision","params","productGetTemplate","productGetTemplateApi","getProductId","setTimeout","cancel","handleDragStart","e","item","handleDragEnd","handleDragOver","handleDragEnter","newItems","onchangeTime","getInfo","bargainInfoApi","res","radio","defaultAttrs","next","bargainCreatApi","path","step","getContent","val","getRole","modalPicTap","tit","getPic","pc","getPicD","handleRemove","i","changeGoods","validate","prop","error","addCustomDialog","editorId","window","iframeUrl","editor","cssRules","onclick","dialog"],"sourceRoot":"src/pages/marketing/storeBargain","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_bargain/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 !== '0' ? '编辑砍价商品' : '添加砍价商品'\"\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 <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 :rules=\"ruleValidate\"\r\n :model=\"formValidate\"\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-show=\"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 <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\" class=\"iconfonts\" />\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\" 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 <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\" @on-change=\"logisticsBtn\">\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=\"people_num\" label-for=\"people_num\">\r\n <div class=\"acea-row row-middle\">\r\n <InputNumber\r\n placeholder=\"请输入砍价人数\"\r\n element-id=\"people_num\"\r\n :min=\"2\"\r\n :max=\"10000\"\r\n :precision=\"0\"\r\n v-model=\"formValidate.people_num\"\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=\"bargain_num\" label-for=\"bargain_num\">\r\n <div class=\"acea-row row-middle\">\r\n <InputNumber\r\n placeholder=\"请输入帮砍次数\"\r\n element-id=\"bargain_num\"\r\n :min=\"1\"\r\n :max=\"10000\"\r\n :precision=\"0\"\r\n v-model=\"formValidate.bargain_num\"\r\n class=\"perW20\"\r\n />\r\n <div class=\"ml10 grey\">\r\n 单个商品用户可以帮砍的次数,例:次数设置为1,甲和乙同时将商品A的砍价链接发给丙,丙只能帮甲或乙其中一个人砍价\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 placeholder=\"购买数量限制\"\r\n :min=\"1\"\r\n :max=\"10000\"\r\n :precision=\"0\"\r\n v-model=\"formValidate.num\"\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=\"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=\"排序:\">\r\n <InputNumber\r\n placeholder=\"请输入排序\"\r\n element-id=\"sort\"\r\n :min=\"0\"\r\n :max=\"10000\"\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=\"status\" label-for=\"status\">\r\n <RadioGroup element-id=\"status\" v-model=\"formValidate.status\">\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>\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=\"specsData[index].pic\">\r\n <img v-lazy=\"specsData[index].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=\"iconfonts\" />\r\n </div>\r\n </div>\r\n </template>\r\n <template slot-scope=\"{ row, index }\" slot=\"price\">\r\n <InputNumber\r\n v-model=\"specsData[index].price\"\r\n :min=\"0\"\r\n :precision=\"2\"\r\n class=\"priceBox\"\r\n :active-change=\"false\"\r\n ></InputNumber>\r\n </template>\r\n <template slot-scope=\"{ row, index }\" slot=\"min_price\">\r\n <InputNumber\r\n v-model=\"specsData[index].min_price\"\r\n :min=\"0\"\r\n :precision=\"2\"\r\n class=\"priceBox\"\r\n :active-change=\"false\"\r\n ></InputNumber>\r\n </template>\r\n <template slot-scope=\"{ row, index }\" slot=\"quota\">\r\n <InputNumber\r\n v-model=\"specsData[index].quota\"\r\n :min=\"1\"\r\n active-change\r\n class=\"priceBox\"\r\n ></InputNumber>\r\n </template>\r\n </Table>\r\n </FormItem>\r\n </Col>\r\n </Row>\r\n <div v-show=\"current === 2\">\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 </div>\r\n <div v-show=\"current === 3\">\r\n <FormItem label=\"规则:\">\r\n <WangEditor\r\n style=\"width: 90%\"\r\n :content=\"formValidate.rule\"\r\n @editorContent=\"getEditorContent2\"\r\n ></WangEditor>\r\n </FormItem>\r\n </div>\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 && $route.params.id !== '0' && current === 1\"\r\n >上一步</Button\r\n >\r\n <Button\r\n type=\"primary\"\r\n :disabled=\"submitOpen && current === 3\"\r\n class=\"submission\"\r\n @click=\"next('formValidate')\"\r\n v-text=\"current === 3 ? '提交' : '下一步'\"\r\n ></Button>\r\n </FormItem>\r\n <Spin size=\"large\" fix v-if=\"spinShow\"></Spin>\r\n </Form>\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 <!-- 上传图片-->\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 uploadPictures from '@/components/uploadPictures';\r\nimport { bargainInfoApi, bargainCreatApi, productAttrsApi } from '@/api/marketing';\r\nimport { productGetTemplateApi } from '@/api/product';\r\nimport freightTemplate from '@/components/freightTemplate/index';\r\nimport WangEditor from '@/components/wangEditor/index.vue';\r\n\r\nexport default {\r\n name: 'storeBargainCreate',\r\n components: {\r\n goodsList,\r\n uploadPictures,\r\n freightTemplate,\r\n WangEditor,\r\n },\r\n data() {\r\n return {\r\n submitOpen: false,\r\n spinShow: false,\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 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 modals: false,\r\n modal_loading: false,\r\n images: [],\r\n templateList: [],\r\n columns: [],\r\n specsData: [],\r\n formValidate: {\r\n images: [],\r\n info: '',\r\n title: '',\r\n store_name: '',\r\n image: '',\r\n unit_name: '',\r\n price: 0,\r\n min_price: 0,\r\n bargain_max_price: 10,\r\n bargain_min_price: 0.01,\r\n cost: 0,\r\n bargain_num: 1,\r\n people_num: 2,\r\n stock: 1,\r\n sales: 0,\r\n sort: 0,\r\n num: 1,\r\n give_integral: 0,\r\n postage: 0,\r\n is_postage: 0,\r\n is_hot: 0,\r\n status: 0,\r\n section_time: [],\r\n description: '',\r\n rule: '',\r\n id: 0,\r\n product_id: 0,\r\n temp_id: '',\r\n attrs: [],\r\n items: [],\r\n logistics: ['1'], //选择物流方式\r\n freight: 2, //运费设置\r\n postage: 1, //设置运费金额\r\n },\r\n description: '',\r\n rule: '',\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 store_name: [{ 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 min_price: [\r\n {\r\n required: true,\r\n type: 'number',\r\n message: '请输入最低购买价',\r\n trigger: 'blur',\r\n },\r\n ],\r\n // bargain_max_price: [\r\n // { required: true, type: 'number', message: '请输单次砍价最大金额', trigger: 'blur' }\r\n // ],\r\n // bargain_min_price: [\r\n // { required: true, type: 'number', message: '单次砍价最小金额', trigger: 'blur' }\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 bargain_num: [\r\n {\r\n required: true,\r\n type: 'number',\r\n message: '请输入帮砍次数',\r\n trigger: 'blur',\r\n },\r\n ],\r\n people_num: [\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 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 currentid: '',\r\n picTit: '',\r\n tableIndex: 0,\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 : 140;\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 !== '0' && 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 // 详情内容\r\n getEditorContent(data) {\r\n this.description = data;\r\n },\r\n // 规则内容\r\n getEditorContent2(data) {\r\n this.rule = 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, 2)\r\n .then((res) => {\r\n let data = res.data.info;\r\n let radio = {\r\n title: '选择',\r\n key: 'chose',\r\n width: 60,\r\n align: 'center',\r\n render: (h, params) => {\r\n let uid = params.index;\r\n let flag = false;\r\n if (this.currentid === uid) {\r\n flag = true;\r\n } else {\r\n flag = false;\r\n }\r\n let self = this;\r\n return h('div', [\r\n h('Radio', {\r\n props: {\r\n value: flag,\r\n },\r\n on: {\r\n 'on-change': () => {\r\n self.currentid = uid;\r\n let attrs = [];\r\n attrs.push(params.row);\r\n self.formValidate.attrs = attrs;\r\n },\r\n },\r\n }),\r\n ]);\r\n },\r\n };\r\n that.columns = data.header;\r\n that.columns.unshift(radio);\r\n that.specsData = data.attrs;\r\n that.inputChange(data);\r\n that.formValidate.items = data.items;\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 productGetTemplate() {\r\n productGetTemplateApi().then((res) => {\r\n this.templateList = res.data;\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 store_name: row.store_name,\r\n image: row.image,\r\n unit_name: row.unit_name,\r\n price: 0, // 不取商品中的原价\r\n min_price: 0,\r\n bargain_max_price: 10,\r\n bargain_min_price: 0.01,\r\n cost: row.cost,\r\n bargain_num: 1,\r\n people_num: 2,\r\n stock: row.stock,\r\n sales: row.sales,\r\n sort: row.sort,\r\n num: 1,\r\n give_integral: row.give_integral,\r\n postage: row.postage,\r\n is_postage: row.is_postage,\r\n is_hot: row.is_hot,\r\n status: 0,\r\n section_time: [],\r\n description: row.description, // 不取商品中的\r\n rule: '',\r\n id: 0,\r\n product_id: row.id,\r\n temp_id: row.temp_id,\r\n logistics: row.temp_id, //选择物流方式\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 };\r\n this.productAttrs(row);\r\n }, 500);\r\n },\r\n cancel() {\r\n this.modals = false;\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 onchangeTime(e) {\r\n this.formValidate.section_time = e;\r\n },\r\n // 详情\r\n getInfo() {\r\n this.spinShow = true;\r\n bargainInfoApi(this.$route.params.id)\r\n .then(async (res) => {\r\n let that = this;\r\n let info = res.data.info;\r\n this.formValidate = info;\r\n this.formValidate.rule = info.rule === null ? '' : info.rule;\r\n this.$set(this.formValidate, 'items', info.attrs.items);\r\n this.columns = info.attrs.header;\r\n let radio = {\r\n title: '选择',\r\n key: 'chose',\r\n width: 60,\r\n align: 'center',\r\n render: (h, params) => {\r\n let uid = params.index;\r\n let flag = false;\r\n if (this.currentid === uid) {\r\n flag = true;\r\n } else {\r\n flag = false;\r\n }\r\n let self = this;\r\n return h('div', [\r\n h('Radio', {\r\n props: {\r\n value: flag,\r\n },\r\n on: {\r\n 'on-change': () => {\r\n self.currentid = uid;\r\n let attrs = [];\r\n attrs.push(params.row);\r\n self.formValidate.attrs = attrs;\r\n },\r\n },\r\n }),\r\n ]);\r\n },\r\n };\r\n that.columns.unshift(radio);\r\n this.specsData = info.attrs.value;\r\n let defaultAttrs = [];\r\n info.attrs.value.forEach(function (item, index) {\r\n if (item.opt) {\r\n defaultAttrs.push(item);\r\n that.$set(that, 'currentid', index);\r\n that.$set(that.formValidate, 'attrs', defaultAttrs);\r\n }\r\n });\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 if (this.current === 3) {\r\n this.formValidate.description = this.description;\r\n this.formValidate.rule = this.rule;\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 = this.$route.params.id || 0;\r\n this.submitOpen = true;\r\n bargainCreatApi(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_bargain/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 (this.currentid === '') {\r\n return this.$Message.error('请选择属性规格');\r\n } else {\r\n let val = this.specsData[this.currentid];\r\n let formValidate = this.formValidate.attrs[0];\r\n formValidate.price = val.price;\r\n formValidate.min_price = val.min_price;\r\n formValidate.quota = val.quota;\r\n if (this.formValidate.attrs[0].quota <= 0) {\r\n return this.$Message.error('砍价限量必须大于0');\r\n }\r\n if (this.formValidate.attrs[0].quota > this.formValidate.attrs[0]['stock']) {\r\n return this.$Message.error('砍价限量不能超过规格库存');\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 getRole(val) {\r\n this.formValidate.rule = 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 this.specsData[this.tableIndex].pic = pc.att_dir;\r\n this.formValidate.attrs[0].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 validate(prop, status, error) {\r\n if (status === false) {\r\n this.$Message.error(error);\r\n }\r\n },\r\n // 添加自定义弹窗\r\n addCustomDialog(editorId) {\r\n window.UE.registerUI(\r\n 'test-dialog',\r\n function (editor, uiName) {\r\n // 创建 dialog\r\n let dialog = new window.UE.ui.Dialog({\r\n // 指定弹出层中页面的路径,这里只能支持页面,路径参考常见问题 2\r\n iframeUrl: '/admin/widget.images/index.html?fodder=dialog',\r\n // 需要指定当前的编辑器实例\r\n editor: editor,\r\n // 指定 dialog 的名字\r\n name: uiName,\r\n // dialog 的标题\r\n title: '上传图片',\r\n // 指定 dialog 的外围样式\r\n cssRules: 'width:960px;height:550px;padding:20px;',\r\n });\r\n this.dialog = dialog;\r\n var btn = new window.UE.ui.Button({\r\n name: 'dialog-button',\r\n title: '上传图片',\r\n cssRules: `background-image: url(../../../assets/images/icons.png);background-position: -726px -77px;`,\r\n onclick: function () {\r\n // 渲染dialog\r\n dialog.render();\r\n dialog.open();\r\n },\r\n });\r\n return btn;\r\n },\r\n 37,\r\n );\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"]}]}