1 |
- {"remainingRequest":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\babel-loader\\lib\\index.js!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\src\\views\\CashierShop\\CashierShop.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\src\\views\\CashierShop\\CashierShop.vue","mtime":1655374732000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\babel.config.js","mtime":1655374732000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\vue-loader\\lib\\index.js","mtime":1655715099000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwppbXBvcnQgS2V5Ym9hcmQgZnJvbSAiLi9jb21wb25lbnQvS2V5Ym9hcmQiOwppbXBvcnQgV3JpdGVPZmZJbmZvIGZyb20gIi4vY29tcG9uZW50L1dyaXRlT2ZmSW5mbyI7CmltcG9ydCBXcml0ZU9mZk9yZGVyIGZyb20gIi4vY29tcG9uZW50L1dyaXRlT2ZmT3JkZXIiOwppbXBvcnQgR29vZHMgZnJvbSAiQC92aWV3cy9DYXNoaWVyU2hvcC9jb21wb25lbnQvR29vZHMiOwppbXBvcnQgVmlwIGZyb20gIi4vY29tcG9uZW50L1ZpcCI7CmltcG9ydCBDYXNoaWVySGVhZGVyIGZyb20gIi4vQ2FzaGllckhlYWRlci52dWUiOwppbXBvcnQgVmlwQWN0aXZpdHkgZnJvbSAiLi9jb21wb25lbnQvVmlwQWN0aXZpdHkiOwppbXBvcnQgRW50cnkgZnJvbSAiLi9jb21wb25lbnQvRW50cnkiOwppbXBvcnQgQWNjb3VudFByaWNlIGZyb20gIi4vY29tcG9uZW50L0FjY291bnRQcmljZSI7CmltcG9ydCBTaG9wR3VpZGUgZnJvbSAiLi9jb21wb25lbnQvc2hvcEd1aWRlIjsKaW1wb3J0IHsgbWFwQWN0aW9ucyB9IGZyb20gInZ1ZXgiOwppbXBvcnQgeyBhY3Rpdml0eUFsbCwgc2F2ZUVudHJ5RGF0YSwgbG9nZ2VyQ29ubmVjdCwgZ2V0U2V0dGluZ3MsIHNlYXJjaEN1c3RvbWVyRGV0YWlscywgZ2V0Q2FydEJ5VXNlciwgdXBkYXRlQnV5TnVtQ2FzaGllciwgZGVsQ2FydENhc2hpZXIsIGNsZWFyQ2FydENhc2hpZXIsIEdvb2RzQnlDYXRlZ29yeSwgY2hhbmdlUHJpY2UgfSBmcm9tICJAL2FwaS9DYXNoaWVyIjsKaW1wb3J0IHsgZ2V0QWxsT3JkZXJPcmRlciwgZ2V0T3JkZXJJbmZvQnlJZCwgT3JkZXJWZXJpZmljYXRpb24sIGdldE9yZGVyQnlWZXJpZnlDb2RlLCBjYXNoaWVyT3JkZXIgfSBmcm9tICJAL2FwaS9PcmRlciI7CmltcG9ydCB7IGdldEFsbFN0YWZmU3RhZmYgfSBmcm9tICJAL2FwaS9EZXBhcnRtZW50IjsKaW1wb3J0IHsgZ2V0QWxsU2hvcCB9IGZyb20gIkAvYXBpL1Nob3AiOwppbXBvcnQgeyB0b1ByaW50IH0gZnJvbSAiQC9hcGkvY29tbW9uIjsKaW1wb3J0IHsgYWRkUmVjZWl2ZWQgfSBmcm9tICJAL2FwaS9GaW5hbmNlIjsKaW1wb3J0IEFjY291bnRUeXBlIGZyb20gIi4uL0ZpbmFuY2UvQWNjb3VudFR5cGUiOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogIkNhc2hpZXJTaG9wIiwKICBjb21wb25lbnRzOiB7CiAgICBDYXNoaWVySGVhZGVyLAogICAgQWNjb3VudFR5cGUsCiAgICBLZXlib2FyZCwKICAgIFdyaXRlT2ZmSW5mbywKICAgIFdyaXRlT2ZmT3JkZXIsCiAgICBHb29kcywKICAgIFZpcCwKICAgIFZpcEFjdGl2aXR5LAogICAgRW50cnksCiAgICBBY2NvdW50UHJpY2UsCiAgICBTaG9wR3VpZGUKICB9LAoKICBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgaW5wdXRfa2V5X251bTogMCwKICAgICAgLy8g6ZSu55uY5by556qX5pWw5a2XCiAgICAgIGNnX2luZGV4OiAwLAogICAgICAvLyDotK3nianovabllYblk4HpgInmi6nkuIvmoIcKICAgICAga2V5Ym9hcmRfbnVtYmVyOiBmYWxzZSwKICAgICAgLy8g6ZSu55uY5by556qXCiAgICAgIGFjdGl2ZU5hbWU6ICJmaXJzdCIsCiAgICAgIGFjY291bnRfc2hvdzogZmFsc2UsCiAgICAgIC8vIOmAieaLqee7k+eul+i0puaItwogICAgICBkaWFsb2dWaXNpYmxlOiBmYWxzZSwKICAgICAgc2hvcEd1aWRlOiBmYWxzZSwKICAgICAgc2hvcF9ndWlkZTogW10sCiAgICAgIC8vIOWvvOi0reWRmOWIl+ihqAogICAgICBndWlkZV9uYW1lOiAiIiwKICAgICAgLy8g5a+86LSt5ZGY5ZCN56ewCiAgICAgIGd1aWRlOiBbXSwKICAgICAgY29sbGVjdGlvbjogZmFsc2UsCiAgICAgIHRvdGFsOiAwLAogICAgICBwYWdlOiAxLAogICAgICBwYWdlU2l6ZTogMTAsCiAgICAgIHRleHRhcmVhOiAiIiwKICAgICAgc2hvcDogIiIsCiAgICAgIG51bV9saXN0OiBbXSwKICAgICAgdGFyZ2V0X251bTogIiIsCiAgICAgIGlucHV0OiAiIiwKICAgICAga2V5Ym9hcmRfa2V5OiAiIiwKICAgICAgLy8g5qC46ZSA56CBCiAgICAgIGlucHV0X3R3bzogIiIsCiAgICAgIHRpcF9udW06IDEsCiAgICAgIC8vIOW3puS+p+WvvOiIqgogICAgICBudW0xOiAxLAogICAgICBvcmRlcl9udW06ICIiLAogICAgICBudW0yOiAiMSIsCiAgICAgIGxpc3RfanVkZ2U6IGZhbHNlLAogICAgICBsaXN0OiAiIiwKICAgICAgbm9fdGltZTogIiIsCiAgICAgIHByaWNlX251bTogIiIsCiAgICAgIHByaWNlX2NoYW5nZTogZmFsc2UsCiAgICAgIG9yZGVyX2xpc3Q6IFtdLAogICAgICAvLyDorqLljZXliJfooagKICAgICAgb3JkZXJfbm9fa2V5OiAiIiwKICAgICAgLy8g6K6i5Y2V6L6T5YWl5qGG5pCc57Si5YWz6ZSu5a2XCiAgICAgIHdyaXRlb2ZmX2xpc3Q6IHt9LAogICAgICBhbGxfc2hvcDogdHJ1ZSwKICAgICAgc2hvcF9jb206IGZhbHNlLAogICAgICBjb21fcmVjb3JkOiBmYWxzZSwKICAgICAgc3BlY19pZF9ncm91cDogW10sCiAgICAgIG5vd19za3VfZGF0YToge30sCiAgICAgIHNob3Bfc3BlYzogewogICAgICAgIHN1YlByaWNlOiAwLAogICAgICAgIHJlbV9tb25leTogMCwKICAgICAgICBnb29kc0RhdGE6IFtdCiAgICAgIH0sCiAgICAgIHNob3Bfc2VsZWN0OiBbXSwKICAgICAgdmlwX2luZm86IHsKICAgICAgICBjcmVhdGVUaW1lOiAiIiwKICAgICAgICBiaXJ0aGRheTogIiIsCiAgICAgICAgcHJpY2U6ICIiLAogICAgICAgIGludGVncmFsOiAiIiwKICAgICAgICByZW1hcmtzOiAiIiwKICAgICAgICBkZWZhdWx0QWRkcmVzczogewogICAgICAgICAgYXJlYTogewogICAgICAgICAgICBwcm92aW5jZU5hbWU6ICIiLAogICAgICAgICAgICBjaXR5TmFtZTogIiIsCiAgICAgICAgICAgIGRpc3RyaWN0TmFtZTogIiIsCiAgICAgICAgICAgIGFkZHJlc3M6ICIiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICByZW1hcms6ICIiCiAgICAgIH0sCiAgICAgIHZpcF9oYW5kbGU6IGZhbHNlLAogICAgICByZV9jaGFyZ2U6IGZhbHNlLAogICAgICBpbnRlZ3JhbDogZmFsc2UsCiAgICAgIGRldGFpbGVkOiBmYWxzZSwKICAgICAgdmlwX2xvZ2luOiBmYWxzZSwKICAgICAgY29uZmlybV92aXA6IGZhbHNlLAogICAgICByZUNoYXJnZTogZmFsc2UsCiAgICAgIHZpcF9saXN0OiBbewogICAgICAgIHByaWNlOiAxMCwKICAgICAgICBwcmljZV9udW06IDAuMAogICAgICB9LCB7CiAgICAgICAgcHJpY2U6IDMwMCwKICAgICAgICBwcmljZV9udW06IDAuMAogICAgICB9LCB7CiAgICAgICAgcHJpY2U6IDE1LAogICAgICAgIHByaWNlX251bTogMC4wCiAgICAgIH0sIHsKICAgICAgICBwcmljZTogMTIxLAogICAgICAgIHByaWNlX251bTogMC4wCiAgICAgIH1dLAogICAgICBydWxlczogewogICAgICAgIHByaWNlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+35aGr5YaZ6YeR6aKdIiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dLAogICAgICAgIGludGVncmFsOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+35aGr5YaZ56ev5YiGIiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dLAogICAgICAgIHJlbWFya3M6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLor7floavlhpnlpIfms6giLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgc2hvcF92aXNpYmxlOiBmYWxzZSwKICAgICAgLy8g6YCJ5oup5bqX6ZO65by556qXCiAgICAgIG5vd19zaG9wOiB7fSwKICAgICAgLy8g5b2T5YmN5bqX6ZO65L+h5oGvCiAgICAgIG5vd19zZWxfc2hvcDoge30sCiAgICAgIC8vIOW9k+WJjemAieS4reW6l+mTuuS/oeaBrwogICAgICBjbGFzc2lmeV9saXN0OiBbXSwKICAgICAgLy8g5YiG57G75YiX6KGoCiAgICAgIGdvb2RzSWQ6ICIiLAogICAgICB1c2VyQ2VudGVySWQ6ICIiLAogICAgICBnb29kc0Jhc2ljSWQ6ICIiLAogICAgICBvcmRlcl9kZXRhaWw6IHt9LAogICAgICAvLyDorqLljZXor6bmg4UKICAgICAgb19wYWdlU2l6ZTogMTAsCiAgICAgIG9fdG90YWw6IDAsCiAgICAgIG9fcGFnZTogMSwKICAgICAgY2FzaGllcl9zdGFmZjoge30sCiAgICAgIC8vIOaUtumTtuWRmOaVsOaNrgogICAgICBjYXJ0X3ByaW1hcnk6IHt9LAogICAgICBjdXN0b21lcklkOiAiIiwKICAgICAgY3VzdG9tZXJOYW1lOiAiIiwKICAgICAgY3VzdG9tZXJUeXBlOiAiIiwKICAgICAgcGF5bWVudDogZmFsc2UsCiAgICAgIGNhc2hpZXJfc2V0OiB7CiAgICAgICAgemVyb19zZXQ6IHt9LAogICAgICAgIHBheV9zZXQ6IHt9CiAgICAgIH0sCiAgICAgIC8vIOaUtumTtuWPsOiuvue9rgogICAgICBwYXlfdHlwZTogNiwKICAgICAgLy8g5pS25qy+5pa55byPCiAgICAgIGRpc2NvdW50X2xpc3Q6IFtdLAogICAgICAvLyDkvJjmg6DmtLvliqgKICAgICAgcGF5X2FjY291bnRfbnVtOiAiIiwKICAgICAgLy8g5pS25qy+57uT566X6LSm5oi3CiAgICAgIHBheV9hY2NvdW50X2lkOiAiIiwKICAgICAgLy8g5pS25qy+57uT566X6LSm5oi3aWQKICAgICAgcGF5X2FjY291bnRfbmFtZTogIiIsCiAgICAgIC8vIOaUtuasvue7k+eul+i0puaIt25hbWUKICAgICAgYWNjb3VudF9udW06ICIiLAogICAgICAvLyDnu5PnrpfotKbmiLcKICAgICAgYWNjb3VudE5hbWU6ICIiLAogICAgICAvLyDnu5PnrpfotKbmiLduYW1lCiAgICAgIGFjY291bnRfaWQ6ICIiLAogICAgICAvLyDnu5PnrpfotKbmiLdpZAogICAgICBub3dfb3JkZXJfaWQ6ICIiLAogICAgICAvLyDmlLbmrL7miJDlip/lkI7lrZjlgqjlvZPliY3orqLljZVpZAogICAgICB1c2VyQ291cG9uSWQ6IDAsCiAgICAgIC8vIOWLvumAieS8mOaDoOWIuGlkCiAgICAgIHdlaWdodF92aXNpYmxlOiBmYWxzZSwKICAgICAgZ29vZHNfd2VpZ2h0OiAwLAogICAgICAvLyDllYblk4HmiYvliqjovpPlhaXph43ph48KICAgICAgcmVzdF9lbnRyeTogZmFsc2UgLy8g5o6n5Yi25Yi35paw5Y+W5Y2V5YiX6KGoCgogICAgfTsKICB9LAoKICBhc3luYyBjcmVhdGVkKCkgewogICAgLy8g6I635Y+W5pS26ZO25Y+w6K6+572uCiAgICBhd2FpdCB0aGlzLmdldFNldHRpbmdzKCk7CiAgICB0aGlzLm5vX3RpbWUgPSB0aGlzLiRfY29tbW9uLmZvcm1hdERhdGUobmV3IERhdGUoKS5nZXRUaW1lKCkpOwoKICAgIGlmICh0aGlzLiRzdG9yZS5nZXR0ZXJzWyJNVXNlci9jYXNoaWVyU2hvcCJdLmlkKSB7CiAgICAgIHRoaXMubm93X3NlbF9zaG9wID0gdGhpcy4kc3RvcmUuZ2V0dGVyc1siTVVzZXIvY2FzaGllclNob3AiXTsgLy8g6K+35rGC5LiO6K+l5bqX6ZO655u45YWz5pWw5o2uCgogICAgICB0aGlzLmxvZ2dlckNvbm5lY3QoKTsKICAgIH0gZWxzZSB7CiAgICAgIC8vIOiOt+WPluWVhumTuuWIl+ihqAogICAgICBhd2FpdCB0aGlzLmdldEFsbFNob3AoKTsKICAgIH0KICB9LAoKICBtZXRob2RzOiB7IC4uLm1hcEFjdGlvbnMoewogICAgICBjaGFuZ2VDYXNoaWVyU2hvcDogIk1Vc2VyL2NoYW5nZUNhc2hpZXJTaG9wIgogICAgfSksCgogICAgZ29vZHNJZEZuKGdvb2RzSWQpIHsKICAgICAgdGhpcy5nb29kc0lkID0gZ29vZHNJZDsKICAgIH0sCgogICAgaW5wdXRLZXkoaW5wdXRfa2V5X251bSkgewogICAgICB0aGlzLmlucHV0X2tleV9udW0gPSBpbnB1dF9rZXlfbnVtOwogICAgICBjb25zb2xlLmxvZyhpbnB1dF9rZXlfbnVtKTsKICAgIH0sCgogICAgdmlwSW5mbyh2aXBfaW5mbykgewogICAgICB0aGlzLnZpcF9pbmZvID0gdmlwX2luZm87CiAgICB9LAoKICAgIGFjdGl2ZW5hbWUoYWN0aXZlTmFtZSkgewogICAgICB0aGlzLmFjdGl2ZU5hbWUgPSBhY3RpdmVOYW1lOwogICAgfSwKCiAgICBzaG9wR3VpZGVGbihndWlkZSkgewogICAgICB0aGlzLmd1aWRlID0gZ3VpZGU7CiAgICB9LAoKICAgIC8vIOWIh+aNouWVhumTuuWQjuivt+axguS4juivpeW6l+mTuuebuOWFs+aVsOaNrgogICAgYXN5bmMgc2hvcENoYW5nZSgpIHsKICAgICAgLy8g5ZWG5ZOB5YiX6KGoCiAgICAgIGF3YWl0IHRoaXMuR29vZHNCeUNhdGVnb3J5KCk7IC8vIOi0reeJqei9puivpuaDhQoKICAgICAgdGhpcy5nZXRDYXJ0QnlVc2VyKCk7CiAgICB9LAoKICAgIC8vIOiOt+WPluaUtumTtuWPsOiuvue9rgogICAgYXN5bmMgZ2V0U2V0dGluZ3MoKSB7CiAgICAgIGNvbnN0IHsKICAgICAgICBkYXRhCiAgICAgIH0gPSBhd2FpdCBnZXRTZXR0aW5ncygpOwoKICAgICAgaWYgKGRhdGEuYWRkX2Zvcm0pIHsKICAgICAgICB0aGlzLmNhc2hpZXJfc2V0ID0gZGF0YS5hZGRfZm9ybTsKICAgICAgfQogICAgfSwKCiAgICBhc3luYyBHb29kc0J5Q2F0ZWdvcnkoKSB7CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBHb29kc0J5Q2F0ZWdvcnkoewogICAgICAgIHBhZ2U6IHRoaXMucGFnZSwKICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwKICAgICAgICBjYXRlZ29yeUlkOiB0aGlzLmNhdGVfaWQsCiAgICAgICAga2V5d29yZDogdGhpcy5zaG9wLAogICAgICAgIHVzZXJDZW50ZXJJZDogdGhpcy51c2VyQ2VudGVySWQsCiAgICAgICAgc2hvcElkOiB0aGlzLm5vd19zZWxfc2hvcC5pZAogICAgICB9KTsKICAgICAgdGhpcy5zaG9wX3Nob3AgPSBkYXRhLmRhdGE7CiAgICAgIHRoaXMudG90YWwgPSBkYXRhLnBhZ2VUb3RhbDsKICAgIH0sCgogICAgLy8g5pS26ZO25Y+z6L65dGFi5YiH5o2iCiAgICBoYW5kbGVDbGljayh0YWIsIGV2ZW50KSB7CiAgICAgIHN3aXRjaCAodGhpcy5hY3RpdmVOYW1lKSB7CiAgICAgICAgLy8g5ZWG5ZOBCiAgICAgICAgY2FzZSAiZmlyc3QiOgogICAgICAgICAgYnJlYWs7CiAgICAgICAgLy8g5Lya5ZGYCgogICAgICAgIGNhc2UgInNlY29uZCI6CiAgICAgICAgICAvLyDojrflj5blrqLmiLfnsbvlnosKICAgICAgICAgIGJyZWFrOwogICAgICAgIC8vIOS8mOaDoOa0u+WKqAoKICAgICAgICBjYXNlICJ0aGlyZCI6CiAgICAgICAgICAvLyB0aGlzLmFjdGl2aXR5QWxsKCkKICAgICAgICAgIGJyZWFrOwogICAgICAgIC8vIOWPluWNlQoKICAgICAgICBjYXNlICJmb3VydGgiOgogICAgICAgICAgLy8g5oyC5Y2V5YiX6KGoCiAgICAgICAgICBicmVhazsKICAgICAgICAvLyDnm7TmjqXmlLbmrL4KCiAgICAgICAgY2FzZSAiZml2ZXIiOgogICAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0sCgogICAgLy8g5L+u5pS56LSt54mp6L2m5pWw6YePCiAgICBoYW5kbGVDaGFuZ2UodmFsdWUsIGNhcnRJZCkgewogICAgICB0aGlzLnVwZGF0ZUJ1eU51bUNhc2hpZXIodmFsdWUsIGNhcnRJZCk7CiAgICAgIGNvbnNvbGUubG9nKGNhcnRJZCk7CiAgICAgIGNvbnNvbGUubG9nKHZhbHVlKTsKICAgIH0sCgogICAgLy8g5omT5byA6ZSu55uYCiAgICBvcGVuS2V5Ym9hcmQoaW5kZXgpIHsKICAgICAgdGhpcy5rZXlib2FyZF9udW1iZXIgPSB0cnVlOwogICAgICB0aGlzLmNnX2luZGV4ID0gaW5kZXg7CiAgICB9LAoKICAgIGtleWJvYXJkQ29uZmlybShlLCBudW0pIHsKICAgICAgaWYgKG51bSA9PT0gIngiKSB7CiAgICAgICAgdGhpcy5pbnB1dF9rZXlfbnVtID0gdGhpcy5pbnB1dF9rZXlfbnVtLnN1YnN0cmluZygwLCB0aGlzLmlucHV0X2tleV9udW0ubGVuZ3RoIC0gMSk7CiAgICAgIH0gZWxzZSBpZiAobnVtID09PSAi5riF6ZmkIikgewogICAgICAgIHRoaXMuaW5wdXRfa2V5X251bSA9ICIiOwogICAgICB9IGVsc2UgaWYgKG51bSA9PT0gIuehruWumiIpIHsKICAgICAgICBpZiAodGhpcy5jZ19pbmRleCA+PSAwKSB7CiAgICAgICAgICBsZXQgZ29vZHMgPSB0aGlzLnNob3Bfc3BlYy5nb29kc0RhdGFbMF0uc2hvcEdvb2RzRGF0YVt0aGlzLmNnX2luZGV4XTsKCiAgICAgICAgICBpZiAoTnVtYmVyKHRoaXMuaW5wdXRfa2V5X251bSkgPiBOdW1iZXIoZ29vZHMuaW52ZW50b3J5TnVtKSkgewogICAgICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoIuW6k+WtmOS4jei2syIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CgogICAgICAgICAgZ29vZHMuYnV5TnVtID0gTnVtYmVyKHRoaXMuaW5wdXRfa2V5X251bSk7CiAgICAgICAgICB0aGlzLnVwZGF0ZUJ1eU51bUNhc2hpZXIoTnVtYmVyKHRoaXMuaW5wdXRfa2V5X251bSksIGdvb2RzLmNhcnRJZCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMubnVtMiA9IE51bWJlcih0aGlzLmlucHV0X2tleV9udW0pOwogICAgICAgICAgdGhpcy5hZGRDYXJ0KCk7CiAgICAgICAgfQoKICAgICAgICB0aGlzLmtleWJvYXJkX251bWJlciA9IGZhbHNlOwogICAgICAgIHRoaXMuaW5wdXRfa2V5X251bSA9IDA7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5pbnB1dF9rZXlfbnVtICs9IG51bTsKICAgICAgfQogICAgfSwKCiAgICAvLyDkv67mlLnotK3nianovabmlbDph48KICAgIGFzeW5jIHVwZGF0ZUJ1eU51bUNhc2hpZXIodmFsdWUsIGNhcnRJZCkgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgdXBkYXRlQnV5TnVtQ2FzaGllcihjYXJ0SWQsIHsKICAgICAgICB1c2VyQ2VudGVySWQ6IHRoaXMudXNlckNlbnRlcklkLAogICAgICAgIGJ1eU51bTogdmFsdWUKICAgICAgfSk7CiAgICAgIHRoaXMuZ2V0Q2FydEJ5VXNlcigpOwogICAgfSwKCiAgICAvLyDmn6Xor6LkvJrlkZjkv6Hmga8KICAgIGFzeW5jIHNlYXJjaEN1c3RvbWVyRGV0YWlscygpIHsKICAgICAgaWYgKCF0aGlzLmlucHV0KSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLor7fovpPlhaXkvJrlkZjmiYvmnLrlj7ciKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGNvbnN0IHJlID0gL14xWzM0NTY3ODldXGR7OX0kLzsgLy8g5q2j5YiZ6KGo6L6+5byPCgogICAgICBpZiAoIXJlLnRlc3QodGhpcy5pbnB1dCkpIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoIuaJi+acuuWPt+agvOW8j+acieivr++8jOivt+mHjeaWsOi+k+WFpSEiKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBzZWFyY2hDdXN0b21lckRldGFpbHMoewogICAgICAgIG1vYmlsZTogdGhpcy5pbnB1dAogICAgICB9KTsKCiAgICAgIGlmIChKU09OLnN0cmluZ2lmeShkYXRhLmRhdGEpID09PSAie30iKSB7CiAgICAgICAgLy8gdGhpcy4kbWVzc2FnZS5lcnJvcign5pyq5p+l5om+5Yiw5Lya5ZGY5L+h5oGvJykKICAgICAgICB0aGlzLnZpcF9oYW5kbGUgPSBmYWxzZTsKICAgICAgICB0aGlzLnZpcF9sb2dpbiA9IHRydWU7CiAgICAgICAgdGhpcy51c2VyQ2VudGVySWQgPSAiIjsKICAgICAgICB0aGlzLmN1c3RvbWVySWQgPSAiIjsKICAgICAgICB0aGlzLmN1c3RvbWVyTmFtZSA9ICIiOwogICAgICAgIHRoaXMuY3VzdG9tZXJUeXBlID0gIiI7CiAgICAgICAgdGhpcy52aXBfaW5mbyA9IHt9OwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMudmlwX2hhbmRsZSA9IHRydWU7CiAgICAgICAgdGhpcy52aXBfbG9naW4gPSB0cnVlOwogICAgICAgIHRoaXMudmlwX2luZm8gPSBkYXRhLmRhdGE7CiAgICAgICAgdGhpcy51c2VyQ2VudGVySWQgPSBkYXRhLmRhdGEudXNlckNlbnRlcklkOwogICAgICAgIHRoaXMuY3VzdG9tZXJJZCA9IGRhdGEuZGF0YS5jdXN0b21lcklkOwogICAgICAgIHRoaXMuY3VzdG9tZXJOYW1lID0gZGF0YS5kYXRhLm5hbWU7CiAgICAgICAgdGhpcy5jdXN0b21lclR5cGUgPSBkYXRhLmRhdGEuY3VzdG9tZXJUeXBlOwogICAgICAgIHRoaXMuZ2V0Q2FydEJ5VXNlcigpOwogICAgICB9CiAgICB9LAoKICAgIC8vIOWIoOmZpOi0reeJqei9pgogICAgZGVsZWN0U2hvcChjYXJ0SWQpIHsKICAgICAgLy8gY29uc29sZS5sb2coZS50YXJnZXQuY2FydElkKQogICAgICB0aGlzLiRjb25maXJtKCLmgqjnoa7orqTliKDpmaTov5nkuKrorqLljZXlkJfvvJ8iLCAi5o+Q56S6IiwgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6aIiwKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAi5Y+W5raIIiwKICAgICAgICB0eXBlOiAid2FybmluZyIKICAgICAgfSkudGhlbihhc3luYyAoKSA9PiB7CiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGRlbENhcnRDYXNoaWVyKHsKICAgICAgICAgIHVzZXJDZW50ZXJJZDogdGhpcy51c2VyQ2VudGVySWQsCiAgICAgICAgICBjYXJ0SWQ6IGNhcnRJZAogICAgICAgIH0pOwogICAgICAgIHRoaXMuc2hvcF9zcGVjLmdvb2RzRGF0YVswXS5zaG9wR29vZHNEYXRhLnNwbGljZShjYXJ0SWQsIDEpOwogICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygi5pON5L2c5oiQ5YqfIik7CiAgICAgICAgdGhpcy5nZXRDYXJ0QnlVc2VyKCk7CiAgICAgIH0pLmNhdGNoKCgpID0+IHsKICAgICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICAgIHR5cGU6ICJpbmZvIiwKICAgICAgICAgIG1lc3NhZ2U6ICLlt7Llj5bmtojmk43kvZwiCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSwKCiAgICBhc3luYyBnZXRDYXJ0QnlVc2VyKHVzZXJDZW50ZXJJZCkgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0Q2FydEJ5VXNlcih7CiAgICAgICAgdXNlckNlbnRlcklkOiB1c2VyQ2VudGVySWQgfHwgdGhpcy51c2VyQ2VudGVySWQsCiAgICAgICAgdXNlckNvdXBvbklkOiB0aGlzLnVzZXJDb3Vwb25JZAogICAgICB9KTsKCiAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEuZGF0YSkpIHsKICAgICAgICB0aGlzLnNob3Bfc3BlYyA9IHsKICAgICAgICAgIHN1YlByaWNlOiAwLAogICAgICAgICAgcmVtX21vbmV5OiAwLAogICAgICAgICAgZ29vZHNEYXRhOiBbXQogICAgICAgIH07CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICB0aGlzLnNob3Bfc3BlYyA9IGRhdGEuZGF0YTsKCiAgICAgIGlmIChkYXRhLmRhdGEuY291cG9uKSB7CiAgICAgICAgZGF0YS5kYXRhLmNvdXBvbi5mb3JFYWNoKGl0ZW0gPT4gewogICAgICAgICAgaWYgKGRhdGEuZGF0YS51c2VDb3Vwb24uaWQpIHsKICAgICAgICAgICAgaXRlbS5jaGVja2VkID0gaXRlbS5pZCA9PT0gZGF0YS5kYXRhLnVzZUNvdXBvbi5pZDsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGl0ZW0uY2hlY2tlZCA9IGZhbHNlOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIHRoaXMuZGlzY291bnRfbGlzdCA9IGRhdGEuZGF0YS5jb3Vwb247CiAgICAgIH0KICAgIH0sCgogICAgLy8g5riF56m66LSt54mp6L2mCiAgICBhc3luYyBjbGVhckNhcnQoKSB7CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBjbGVhckNhcnRDYXNoaWVyKHsKICAgICAgICB1c2VyQ2VudGVySWQ6IHRoaXMudXNlckNlbnRlcklkCiAgICAgIH0pOwogICAgICB0aGlzLnNob3Bfc3BlYy5nb29kc0RhdGFbMF0uc2hvcEdvb2RzRGF0YSA9IFtdOwogICAgICB0aGlzLmdldENhcnRCeVVzZXIoKTsKICAgIH0sCgogICAgLy8g5qC46ZSA56CB6L6T5YWl6ZSu55uYCiAgICBhc3luYyBudW1Gbk9uZShlLCBudW0pIHsKICAgICAgaWYgKCFbIngiLCAi5riF6ZmkIiwgIuehruWumiJdLmluY2x1ZGVzKG51bSkpIHsKICAgICAgICB0aGlzLm51bV9saXN0LnB1c2gobnVtKTsKICAgICAgfQoKICAgICAgaWYgKG51bSA9PT0gIngiKSB7CiAgICAgICAgdGhpcy5rZXlib2FyZF9rZXkgPSB0aGlzLmtleWJvYXJkX2tleS5zdWJzdHJpbmcoMCwgdGhpcy5rZXlib2FyZF9rZXkubGVuZ3RoIC0gMSk7CiAgICAgIH0gZWxzZSBpZiAobnVtID09PSAi5riF6ZmkIikgewogICAgICAgIHRoaXMua2V5Ym9hcmRfa2V5ID0gIiI7CiAgICAgICAgdGhpcy5udW1fbGlzdCA9IFtdOwogICAgICB9IGVsc2UgaWYgKG51bSA9PT0gIuehruWumiIpIHsKICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0T3JkZXJCeVZlcmlmeUNvZGUoewogICAgICAgICAgdmVyaWZ5Q29kZTogdGhpcy5rZXlib2FyZF9rZXkKICAgICAgICB9KTsKICAgICAgICB0aGlzLndyaXRlb2ZmX2xpc3QgPSBkYXRhLmRhdGE7CiAgICAgICAgdGhpcy5rZXlib2FyZF9rZXkgPSAiIjsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmtleWJvYXJkX2tleSArPSBudW07CiAgICAgIH0KICAgIH0sCgogICAgLy8g546w6YeR5pSv5LuY6L6T5YWl6ZSu55uYCiAgICBwYXlDYWxjdWxhdG9yKGUpIHsKICAgICAgY29uc3QgdGFyZ2V0TnVtID0gZS50YXJnZXQudGV4dENvbnRlbnQ7CiAgICAgIGxldCBudW0gPSB0aGlzLnNob3Bfc3BlYy50b3RhbE1vbmV5LnRvU3RyaW5nKCk7CgogICAgICBpZiAodGFyZ2V0TnVtID09PSAi5riF6ZmkIikgewogICAgICAgIG51bSA9IDA7CiAgICAgIH0gZWxzZSBpZiAodGFyZ2V0TnVtID09PSAi56Gu5a6aIikgewogICAgICAgIHRoaXMucGF5bWVudEZuKCk7CiAgICAgIH0gZWxzZSBpZiAodGFyZ2V0TnVtID09PSAieCIpIHsKICAgICAgICBudW0gPSBudW0uc3Vic3RyaW5nKDAsIG51bS5sZW5ndGggLSAxKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBudW0gKz0gdGFyZ2V0TnVtOwogICAgICB9CgogICAgICB0aGlzLnNob3Bfc3BlYy50b3RhbE1vbmV5ID0gbnVtOwogICAgfSwKCiAgICAvLyDorqLljZXngrnlh7vkuovku7YKICAgIG9yZGVyRXZlbnQoaXRlbSkgewogICAgICB0aGlzLmdldE9yZGVySW5mb0J5SWQoaXRlbS51c2VyQ2VudGVySWQsIGl0ZW0uaWQpOwogICAgfSwKCiAgICBkaWFMb2coKSB7CiAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7CiAgICB9LAoKICAgIGRlbGV0ZUZuKCkgewogICAgICB0aGlzLnByaWNlX2NoYW5nZSA9IGZhbHNlOwogICAgfSwKCiAgICBsaXN0Rm4oKSB7CiAgICAgIHRoaXMudGlwX251bSA9IDM7CiAgICAgIHRoaXMuZ2V0QWxsT3JkZXJPcmRlcigpOwogICAgfSwKCiAgICAvLyDorqLljZXliJfooajliIbpobXliIfmjaIKICAgIG9QYWdlQ2hhbmdlKHBhZ2UpIHsKICAgICAgdGhpcy5vX3BhZ2UgPSBwYWdlOwogICAgICB0aGlzLmdldEFsbE9yZGVyT3JkZXIoKTsKICAgIH0sCgogICAgLy8g6K6i5Y2V5pCc57SiCiAgICBzZXJjaE9yZGVyKCkgewogICAgICB0aGlzLm9QYWdlQ2hhbmdlKDEpOwogICAgfSwKCiAgICAvLyDorqLljZXliJfooagKICAgIGFzeW5jIGdldEFsbE9yZGVyT3JkZXIoKSB7CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBnZXRBbGxPcmRlck9yZGVyKHsKICAgICAgICBwYWdlOiB0aGlzLm9fcGFnZSwKICAgICAgICBwYWdlU2l6ZTogdGhpcy5vX3BhZ2VTaXplLAogICAgICAgIHNlYXJjaDogewogICAgICAgICAgb3JkZXJUeXBlOiAyNCwKICAgICAgICAgIHNob3BJZDogdGhpcy5ub3dfc2VsX3Nob3AuaWQsCiAgICAgICAgICBubzogdGhpcy5vcmRlcl9ub19rZXkKICAgICAgICB9CiAgICAgIH0pOwogICAgICB0aGlzLm9yZGVyX2xpc3QgPSBkYXRhLmRhdGE7CiAgICAgIHRoaXMub190b3RhbCA9IGRhdGEucGFnZVRvdGFsOwogICAgfSwKCiAgICAvLyDliJvlu7rorqLljZUKICAgIG9yZGVyQ2FzaGllcigpIHsKICAgICAgaWYgKCF0aGlzLnVzZXJDZW50ZXJJZCkgewogICAgICAgIHRoaXMuJGNvbmZpcm0oIuiuouWNleacque7keWumuS8muWRmO+8jOaYr+WQpumcgOimgee7keWumuS8muWRmOi/m+ihjOe7k+eulz8iLCAi5o+Q56S6IiwgewogICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLkvJrlkZjnmbvlvZUiLAogICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogIui3s+i/hyIsCiAgICAgICAgICB0eXBlOiAid2FybmluZyIKICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgIHRoaXMuYWN0aXZlTmFtZSA9ICJzZWNvbmQiOwogICAgICAgIH0pLmNhdGNoKCgpID0+IHsKICAgICAgICAgIHRoaXMuY29sbGVjdGlvbiA9IHRydWU7CiAgICAgICAgICB0aGlzLnJlX2NoYXJnZSA9IGZhbHNlOwogICAgICAgICAgdGhpcy5wcmljZV9jaGFuZ2UgPSBmYWxzZTsKICAgICAgICB9KTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmNvbGxlY3Rpb24gPSB0cnVlOwogICAgICAgIHRoaXMucmVfY2hhcmdlID0gZmFsc2U7CiAgICAgICAgdGhpcy5wcmljZV9jaGFuZ2UgPSBmYWxzZTsKICAgICAgfQogICAgfSwKCiAgICBhc3luYyBwYXltZW50Rm4oKSB7CiAgICAgIGlmIChbNSwgNl0uaW5jbHVkZXModGhpcy5wYXlfdHlwZSkpIHsKICAgICAgICBpZiAoIXRoaXMucGF5X2FjY291bnRfbnVtKSB7CiAgICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoIuivt+mAieaLqee7k+eul+i0puaItyIpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgfQoKICAgICAgY29uc3QgZ3VpZGVVaWRzID0gdGhpcy5ndWlkZS5tYXAoaXRlbSA9PiB7CiAgICAgICAgcmV0dXJuIGl0ZW0udXNlckNlbnRlcklkOwogICAgICB9KS5qb2luKCIsIik7CiAgICAgIGNvbnN0IGFjY291bnRMaXN0ID0gW3sKICAgICAgICBhY2NvdW50SWQ6IHRoaXMucGF5X2FjY291bnRfaWQsCiAgICAgICAgYWNjb3VudE51bWJlcjogdGhpcy5wYXlfYWNjb3VudF9udW0sCiAgICAgICAgYWNjb3VudE5hbWU6IHRoaXMucGF5X2FjY291bnRfbmFtZSwKICAgICAgICBtb25leTogdGhpcy5zaG9wX3NwZWMudG90YWxNb25leSwKICAgICAgICBkaXNjb3VudE1vbmV5OiB0aGlzLiROUC5wbHVzKHRoaXMuc2hvcF9zcGVjLnByZWZlcmVudGlhbCB8fCAwLCB0aGlzLnNob3Bfc3BlYy5zdWJQcmljZSB8fCAwKSwKICAgICAgICBmaW5hbE1vbmV5OiB0aGlzLnNob3Bfc3BlYy5wYXlNb25leSwKICAgICAgICBwYXlXYXk6IDQsCiAgICAgICAgcmVtYXJrOiAiIgogICAgICB9XTsKICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGNhc2hpZXJPcmRlcih7CiAgICAgICAgYWNjb3VudExpc3Q6IGFjY291bnRMaXN0LAogICAgICAgIGN1cnJlbnRBY2NvdW50TmFtZTogdGhpcy5wYXlfYWNjb3VudF9uYW1lLAogICAgICAgIHBheVR5cGU6IHRoaXMucGF5X3R5cGUsCiAgICAgICAgdG90YWxNb25leTogdGhpcy5zaG9wX3NwZWMudG90YWxNb25leSwKICAgICAgICBndWlkZVVpZHM6IGd1aWRlVWlkcywKICAgICAgICBwYXlBbW91bnQ6IHRoaXMuc2hvcF9zcGVjLnBheU1vbmV5LAogICAgICAgIGN1c3RvbWVySWQ6IHRoaXMuY3VzdG9tZXJJZCwKICAgICAgICB1c2VyQ2VudGVySWQ6IHRoaXMudXNlckNlbnRlcklkLAogICAgICAgIGN1c3RvbWVyTmFtZTogdGhpcy5jdXN0b21lck5hbWUsCiAgICAgICAgY3VzdG9tZXJUeXBlOiB0aGlzLmN1c3RvbWVyVHlwZSwKICAgICAgICBzb3VyY2U6IDQsCiAgICAgICAgZGVsaXZlcnlUeXBlOiAyLAogICAgICAgIGlzRW5hYmxlUHJpbnQ6IDQsCiAgICAgICAgb3JkZXJSZW1hcms6IHRoaXMudGV4dGFyZWEsCiAgICAgICAgZ29vZHNEYXRhOiB0aGlzLnNob3Bfc3BlYywKICAgICAgICBvcGVyYXRvck5hbWU6IHRoaXMudXNlck5hbWUKICAgICAgfSk7CiAgICAgIHRoaXMubm93X29yZGVyX2lkID0gZGF0YS5kYXRhOwogICAgICB0aGlzLnBheW1lbnQgPSB0cnVlOwogICAgICB0aGlzLmNvbGxlY3Rpb24gPSBmYWxzZTsKICAgICAgdGhpcy5nZXRDYXJ0QnlVc2VyKCk7CgogICAgICBpZiAodGhpcy5pbnB1dCkgewogICAgICAgIHRoaXMuc2VhcmNoQ3VzdG9tZXJEZXRhaWxzKCk7CiAgICAgIH0KICAgIH0sCgogICAgLy8g5pS55Lu3CiAgICBhc3luYyBnZXRDYXJ0KGl0ZW1QKSB7CiAgICAgIHRoaXMuY29sbGVjdGlvbiA9IGZhbHNlOwogICAgICB0aGlzLnByaWNlX2NoYW5nZSA9IHRydWU7CiAgICAgIHRoaXMucmVfY2hhcmdlID0gZmFsc2U7CiAgICAgIHRoaXMuZGV0YWlsZWQgPSBmYWxzZTsKICAgICAgdGhpcy5jYXJ0X3ByaW1hcnkgPSBpdGVtUDsKICAgIH0sCgogICAgYXN5bmMgcHJpbWFyeUNhcnQoKSB7CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBjaGFuZ2VQcmljZSh7CiAgICAgICAgdXNlckNlbnRlcklkOiB0aGlzLnVzZXJDZW50ZXJJZCwKICAgICAgICBnb29kc0lkOiB0aGlzLmNhcnRfcHJpbWFyeS5nb29kc0lkLAogICAgICAgIHNrdUlkOiB0aGlzLmNhcnRfcHJpbWFyeS5za3VJZCwKICAgICAgICBjaGFuZ2VQcmljZTogdGhpcy5wcmljZV9udW0KICAgICAgfSk7CiAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygi5pON5L2c5oiQ5YqfIik7CiAgICAgIHRoaXMuZ2V0Q2FydEJ5VXNlcigpOwogICAgfSwKCiAgICAvLyDlvLnnqpflhbPpl60KICAgIGNsb3NlKCkgewogICAgICB0aGlzLnJlQ2hhcmdlID0gZmFsc2U7CiAgICAgIHRoaXMuaW50ZWdyYWwgPSBmYWxzZTsKICAgICAgdGhpcy5zaG9wR3VpZGUgPSBmYWxzZTsKICAgIH0sCgogICAgLy8g5YWF5YC8CiAgICByZUNoYXJnZUZuKCkgewogICAgICB0aGlzLnJlQ2hhcmdlID0gZmFsc2U7CiAgICAgIHRoaXMucmVfY2hhcmdlID0gdHJ1ZTsKICAgIH0sCgogICAgLy8g5bqX6ZO65YiX6KGoCiAgICBhc3luYyBnZXRBbGxTaG9wKCkgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0QWxsU2hvcCh7CiAgICAgICAgcGFnZTogdGhpcy5wYWdlLAogICAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplCiAgICAgIH0pOwogICAgICB0aGlzLnNob3Bfc2VsZWN0ID0gZGF0YS5kYXRhOwogICAgICB0aGlzLnNob3BfdmlzaWJsZSA9IHRydWU7CiAgICB9LAoKICAgIC8vIOaUtumTtuWPsOeZu+W9lSDkuqTmjqXnmbvpmYborrDlvZUKICAgIGFzeW5jIGxvZ2dlckNvbm5lY3QoKSB7CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBsb2dnZXJDb25uZWN0KHsKICAgICAgICBzaG9wSWQ6IHRoaXMubm93X3NlbF9zaG9wLmlkCiAgICAgIH0pOwogICAgICB0aGlzLmNhc2hpZXJfc3RhZmYgPSBkYXRhLmRhdGE7CiAgICAgIHRoaXMuc2hvcENoYW5nZSgpOwogICAgfSwKCiAgICAvLyDmoLjplIDorqLljZUKICAgIGFzeW5jIHByaW1hcnlPcmRlcigpIHsKICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IE9yZGVyVmVyaWZpY2F0aW9uKHRoaXMud3JpdGVvZmZfbGlzdC5pZCk7CiAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygi5qC46ZSA5oiQ5YqfIik7CiAgICB9LAoKICAgIC8vIOmAieaLqeW6l+mTugogICAgc2VsU2hvcChyb3cpIHsKICAgICAgdGhpcy5ub3dfc2hvcCA9IHJvdzsKICAgIH0sCgogICAgLy8g6YCJ5oup5bqX6ZO6IOehruiupAogICAgc2hvcENvbmZpcm0oKSB7CiAgICAgIHRoaXMubm93X3NlbF9zaG9wID0gdGhpcy5ub3dfc2hvcDsKICAgICAgdGhpcy5zaG9wX3Zpc2libGUgPSBmYWxzZTsgLy8g5Lqk5o6l55m76ZmG6K6w5b2VCgogICAgICB0aGlzLmxvZ2dlckNvbm5lY3QoKTsKICAgICAgdGhpcy5jaGFuZ2VDYXNoaWVyU2hvcCh0aGlzLm5vd19zZWxfc2hvcCk7CiAgICB9LAoKICAgIC8vIOiOt+WPluiuouWNleivpuaDhQogICAgYXN5bmMgZ2V0T3JkZXJJbmZvQnlJZCh1c2VyQ2VudGVySWQsIGlkKSB7CiAgICAgIGNvbnN0IHsKICAgICAgICBkYXRhCiAgICAgIH0gPSBhd2FpdCBnZXRPcmRlckluZm9CeUlkKHVzZXJDZW50ZXJJZCwgewogICAgICAgIG9yZGVySWQ6IGlkCiAgICAgIH0pOwogICAgICB0aGlzLm9yZGVyX2RldGFpbCA9IGRhdGE7CiAgICAgIHRoaXMubm93X29yZGVyX2lkID0gaWQ7CiAgICB9LAoKICAgIC8vIOaMguWNlQogICAgYXN5bmMgc2F2ZUVudHJ5RGF0YSgpIHsKICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHNhdmVFbnRyeURhdGEoewogICAgICAgIHNob3BJZDogdGhpcy5ub3dfc2VsX3Nob3AuaWQsCiAgICAgICAgZW50cnlEYXRhOiB0aGlzLnNob3Bfc3BlYy5nb29kc0RhdGEKICAgICAgfSk7CiAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygi5pON5L2c5oiQ5YqfIik7IC8vIOaJp+ihjOaMguWNleWQju+8jOa4heepuuW9k+WJjei0reeJqei9pgoKICAgICAgdGhpcy5jbGVhckNhcnQoKTsKICAgICAgdGhpcy5yZXN0X2VudHJ5ID0gIXRoaXMucmVzdF9lbnRyeTsKICAgIH0sCgogICAgLy8g5oq56Zu2CiAgICBhc3luYyBkZWxacmVvKCkgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0Q2FydEJ5VXNlcih7CiAgICAgICAgdXNlckNlbnRlcklkOiB0aGlzLnVzZXJDZW50ZXJJZCwKICAgICAgICBpc1plcm86IE51bWJlcih0aGlzLnNob3Bfc3BlYy5yZW1fbW9uZXkpICE9PSAwID8gNCA6IDUKICAgICAgfSk7CiAgICAgIHRoaXMuc2hvcF9zcGVjID0gZGF0YS5kYXRhOwogICAgfSwKCiAgICAvLyDkvJjmg6DmtLvliqgKICAgIGFzeW5jIGFjdGl2aXR5QWxsKCkgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgYWN0aXZpdHlBbGwoewogICAgICAgIHVzZXJDZW50ZXJJZDogdGhpcy51c2VyQ2VudGVySWQsCiAgICAgICAgcGFnZTogMSwKICAgICAgICBwYWdlU2l6ZTogMzAsCiAgICAgICAgc2hvcElkOiB0aGlzLm5vd19zZWxfc2hvcC5pZAogICAgICB9KTsKICAgICAgdGhpcy5kaXNjb3VudF9saXN0ID0gZGF0YS5kYXRhLm1hcChpdGVtID0+IHsKICAgICAgICByZXR1cm4geyAuLi5pdGVtLAogICAgICAgICAgY2hlY2tlZDogZmFsc2UKICAgICAgICB9OwogICAgICB9KTsKICAgIH0sCgogICAgLy8g5omT5byA57uT566X6LSm5oi3CiAgICBvcGVuQWNjb3VudE1vZGVsKHR5cGUpIHsKICAgICAgdGhpcy5wYXlfYWNjb3VudF90eXBlID0gdHlwZTsKICAgICAgdGhpcy5hY2NvdW50X3Nob3cgPSB0cnVlOwogICAgfSwKCiAgICAvLyDpgInmi6nnu5PnrpfotKbmiLcKICAgIGFjY291bnRzZWwodmFsKSB7CiAgICAgIGlmICh0aGlzLnBheV9hY2NvdW50X3R5cGUpIHsKICAgICAgICB0aGlzLnBheV9hY2NvdW50X2lkID0gdmFsWzBdLmlkOwogICAgICAgIHRoaXMucGF5X2FjY291bnRfbnVtID0gdmFsWzBdLmFjY291bnROdW1iZXI7CiAgICAgICAgdGhpcy5wYXlfYWNjb3VudF9uYW1lID0gdmFsWzBdLm5hbWU7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5hY2NvdW50X2lkID0gdmFsWzBdLmlkOwogICAgICAgIHRoaXMuYWNjb3VudF9udW0gPSB2YWxbMF0uYWNjb3VudE51bWJlcjsKICAgICAgICB0aGlzLmFjY291bnROYW1lID0gdmFsWzBdLm5hbWU7CiAgICAgIH0KICAgIH0sCgogICAgLy8g55u05o6l5pS25qy+CiAgICBhZGRSZWNlaXZlZCgpIHsKICAgICAgaWYgKCF0aGlzLmFjY291bnRfaWQpIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoIuivt+mAieaLqee7k+eul+i0puaItyIpOwogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgaWYgKCF0aGlzLnVzZXJDZW50ZXJJZCkgewogICAgICAgIHRoaXMuJGNvbmZpcm0oIuiuouWNleacque7keWumuS8muWRmO+8jOaYr+WQpumcgOimgee7keWumuS8muWRmOi/m+ihjOe7k+eulz8iLCAi5o+Q56S6IiwgewogICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLkvJrlkZjnmbvlvZUiLAogICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogIui3s+i/hyIsCiAgICAgICAgICB0eXBlOiAid2FybmluZyIKICAgICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgIHRoaXMuYWN0aXZlTmFtZSA9ICJzZWNvbmQiOwogICAgICAgIH0pLmNhdGNoKCgpID0+IHsKICAgICAgICAgIHRoaXMuYWRkUmVjZWl2ZWRUd28oKTsKICAgICAgICB9KTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmFkZFJlY2VpdmVkVHdvKCk7CiAgICAgIH0KICAgIH0sCgogICAgYXN5bmMgYWRkUmVjZWl2ZWRUd28oKSB7CiAgICAgIGNvbnN0IGFjY291bnRMaXN0ID0gW3sKICAgICAgICBhY2NvdW50SWQ6IHRoaXMuYWNjb3VudF9pZCwKICAgICAgICBhY2NvdW50TnVtYmVyOiB0aGlzLmFjY291bnRfbnVtLAogICAgICAgIGFjY291bnROYW1lOiB0aGlzLmFjY291bnROYW1lLAogICAgICAgIG1vbmV5OiB0aGlzLmlucHV0X3R3bywKICAgICAgICBkaXNjb3VudE1vbmV5OiAwLAogICAgICAgIGZpbmFsTW9uZXk6IHRoaXMuaW5wdXRfdHdvLAogICAgICAgIHBheVdheTogNCwKICAgICAgICByZW1hcms6ICIiCiAgICAgIH1dOwogICAgICBjb25zdCBwYXJhbXMgPSB7CiAgICAgICAgY3VzdG9tZXJJZDogdGhpcy5jdXN0b21lcklkLAogICAgICAgIGN1c3RvbWVyTmFtZTogdGhpcy5jdXN0b21lck5hbWUsCiAgICAgICAgc291cmNlTm86ICIiLAogICAgICAgIHNvdXJjZU5vTW9uZXk6ICIiLAogICAgICAgIGN1cnJlbnRBY2NvdW50TmFtZTogdGhpcy51c2VyTmFtZSwKICAgICAgICBmaW5hbmNlVHlwZTogIumUgOWUruaUtuasviIsCiAgICAgICAgZmluYW5jZVR5cGVJZDogMiwKICAgICAgICBzaG9wSWQ6IHRoaXMubm93X3NlbF9zaG9wLmlkLAogICAgICAgIG1vbmV5OiB0aGlzLnZpcF9pbmZvLm1vbmV5LAogICAgICAgIHNob3BOYW1lOiB0aGlzLm5vd19zZWxfc2hvcC5uYW1lLAogICAgICAgIHJlY2VpcHRUaW1lOiBwYXJzZUludChuZXcgRGF0ZSgpIC8gMTAwMCksCiAgICAgICAgY3JlYXRlVGltZTogIiIsCiAgICAgICAgYWNjb3VudExpc3Q6IGFjY291bnRMaXN0CiAgICAgIH07CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhZGRSZWNlaXZlZChwYXJhbXMpOwogICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoIuaUtuasvuaIkOWKnyIpOwoKICAgICAgaWYgKHRoaXMuaW5wdXQpIHsKICAgICAgICB0aGlzLnNlYXJjaEN1c3RvbWVyRGV0YWlscygpOwogICAgICB9CgogICAgICB0aGlzLmlucHV0X3R3byA9ICIiOwogICAgfSwKCiAgICAvLyDliIfmjaLkvJrlkZgKICAgIGNoYW5nZVVzZXIoKSB7CiAgICAgIHRoaXMuY29sbGVjdGlvbiA9IGZhbHNlOwogICAgICB0aGlzLnJlX2NoYXJnZSA9IGZhbHNlOwogICAgICB0aGlzLnZpcF9sb2dpbiA9IGZhbHNlOwogICAgICB0aGlzLnZpcF9oYW5kbGUgPSBmYWxzZTsKICAgICAgdGhpcy51c2VyQ2VudGVySWQgPSAiIjsKICAgICAgdGhpcy5jdXN0b21lcklkID0gIiI7CiAgICAgIHRoaXMuY3VzdG9tZXJOYW1lID0gIiI7CiAgICAgIHRoaXMuY3VzdG9tZXJUeXBlID0gIiI7CiAgICAgIHRoaXMudmlwX2luZm8gPSB7CiAgICAgICAgY3JlYXRlVGltZTogIiIsCiAgICAgICAgYmlydGhkYXk6ICIiLAogICAgICAgIHByaWNlOiAiIiwKICAgICAgICBpbnRlZ3JhbDogIiIsCiAgICAgICAgcmVtYXJrczogIiIsCiAgICAgICAgZGVmYXVsdEFkZHJlc3M6IHsKICAgICAgICAgIGFyZWE6IHsKICAgICAgICAgICAgcHJvdmluY2VOYW1lOiAiIiwKICAgICAgICAgICAgY2l0eU5hbWU6ICIiLAogICAgICAgICAgICBkaXN0cmljdE5hbWU6ICIiLAogICAgICAgICAgICBhZGRyZXNzOiAiIgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgcmVtYXJrOiAiIgogICAgICB9OwogICAgfSwKCiAgICAvLyDljZXmja7lsI/npajmiZPljbAKICAgIGFzeW5jIHRvUHJpbnQoKSB7CiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0b1ByaW50KHsKICAgICAgICBvYmplY3RJZDogdGhpcy5ub3dfb3JkZXJfaWQsCiAgICAgICAgb2JqZWN0VHlwZTogMSAvLyDplIDllK7ljZUKCiAgICAgIH0pOwogICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICB0eXBlOiAic3VjY2VzcyIsCiAgICAgICAgbWVzc2FnZTogIuaTjeS9nOaIkOWKnyIKICAgICAgfSk7CiAgICB9LAoKICAgIC8vIOS8mOaDoOWIuCDli77pgIkKICAgIGNvdXBvbkNoYW5nZSh2YWwsIHJvdykgewogICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLiRfY29tbW9uLmRlZXBDbG9uZSh0aGlzLmRpc2NvdW50X2xpc3QpOwogICAgICB0YXJnZXQuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHsKICAgICAgICBpZiAodmFsKSB7CiAgICAgICAgICBpdGVtLmNoZWNrZWQgPSBpdGVtLmlkID09PSByb3cuaWQ7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGl0ZW0uY2hlY2tlZCA9IGZhbHNlOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHRoaXMuZGlzY291bnRfbGlzdCA9IHRhcmdldDsKICAgICAgdGhpcy51c2VyQ291cG9uSWQgPSB2YWwgPyByb3cuaWQgOiAiIjsKICAgICAgdGhpcy5nZXRDYXJ0QnlVc2VyKCk7CiAgICB9CgogIH0KfTs="},{"version":3,"mappings":"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;;QACA;UACA;UACA;QACA;;QACA;UACA;MAlBA;IAoBA,CAtEA;;IAuEA;IACAC;MACA;MACAR;MACAA;IACA,CA5EA;;IA6EA;IACAS;MACA;MACA;IACA,CAjFA;;IAkFAC;MACA;QACA,kDACA,CADA,EAEA,6BAFA;MAIA,CALA,MAKA;QACA;MACA,CAFA,MAEA;QACA;UACA,sDACA,aADA;;UAGA;YACA;YACA;UACA;;UACAC;UACA;QACA,CAVA,MAUA;UACA;UACA;QACA;;QACA;QACA;MACA,CAjBA,MAiBA;QACA;MACA;IACA,CA9GA;;IA+GA;IACA;MACA;QACA3C,+BADA;QAEA4C;MAFA;MAKA;IACA,CAvHA;;IAwHA;IACA;MACA;QACA;QACA;MACA;;MACA,+BALA,CAKA;;MACA;QACA;QACA;MACA;;MACA;QACAC;MADA;;MAIA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;MACA,CATA,MASA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;MACA;IACA,CA1JA;;IA2JA;IACAC;MACA;MACA;QACAC,uBADA;QAEAC,sBAFA;QAGAC;MAHA,GAKAC,IALA,CAKA;QACA;UACAlD,+BADA;UAEAmD;QAFA;QAKA;QACA;QACA;MACA,CAdA,EAeAC,KAfA,CAeA;QACA;UACAH,YADA;UAEAxD;QAFA;MAIA,CApBA;IAqBA,CAnLA;;IAoLA;MACA;QACAO,+CADA;QAEAwB;MAFA;;MAIA;QACA;UACAzD,WADA;UAEAC,YAFA;UAGAC;QAHA;QAKA;MACA;;MACA;;MACA;QACA1C;UACA;YACA8H;UACA,CAFA,MAEA;YACAA;UACA;QACA,CANA;QAOA;MACA;IACA,CA5MA;;IA6MA;IACA;MACA;QACArD;MADA;MAIA;MACA;IACA,CArNA;;IAsNA;IACA;MACA;QACA;MACA;;MACA;QACA,gDACA,CADA,EAEA,4BAFA;MAIA,CALA,MAKA;QACA;QACA;MACA,CAHA,MAGA;QACA;UACAsD;QADA;QAIA;QACA;MACA,CAPA,MAOA;QACA;MACA;IACA,CA7OA;;IA8OA;IACAC;MACA;MACA;;MAEA;QACAC;MACA,CAFA,MAEA;QACA;MACA,CAFA,MAEA;QACAA;MACA,CAFA,MAEA;QACAA;MACA;;MACA;IACA,CA7PA;;IA8PA;IACAC;MACA;IACA,CAjQA;;IAkQAC;MACA;IACA,CApQA;;IAqQAC;MACA;IACA,CAvQA;;IAyQAC;MACA;MACA;IACA,CA5QA;;IA8QA;IACAC;MACA;MACA;IACA,CAlRA;;IAmRA;IACAC;MACA;IACA,CAtRA;;IAuRA;IACA;MACA;QACA1H,iBADA;QAEAC,yBAFA;QAGA0H;UACAC,aADA;UAEA1B,4BAFA;UAGA2B;QAHA;MAHA;MAUA;MACA;IACA,CArSA;;IAsSA;IACAC;MACA;QACA;UACAnB,yBADA;UAEAC,sBAFA;UAGAC;QAHA,GAKAC,IALA,CAKA;UACA;QACA,CAPA,EAQAE,KARA,CAQA;UACA;UACA;UACA;QACA,CAZA;MAaA,CAdA,MAcA;QACA;QACA;QACA;MACA;IACA,CA3TA;;IA4TA;MACA;QACA;UACA;UACA;QACA;MACA;;MACA,6BACAe,GADA,CACAd;QACA;MACA,CAHA,EAIAe,IAJA,CAIA,GAJA;MAKA,qBACA;QACAC,8BADA;QAEAC,mCAFA;QAGAjD,kCAHA;QAIAkD,gCAJA;QAKAC,6BACA,gCADA,EAEA,4BAFA,CALA;QASAC,mCATA;QAUAC,SAVA;QAWA3F;MAXA,CADA;MAgBA;QACA4F,wBADA;QAEAC,yCAFA;QAGAC,sBAHA;QAIAC,qCAJA;QAKAC,oBALA;QAMAC,kCANA;QAOAxE,2BAPA;QAQAR,+BARA;QASAS,+BATA;QAUAC,+BAVA;QAWAuE,SAXA;QAYAC,eAZA;QAaAC,gBAbA;QAcAC,0BAdA;QAeAnH,yBAfA;QAgBAoH;MAhBA;MAmBA;MACA;MACA;MACA;;MACA;QACA;MACA;IACA,CAlXA;;IAmXA;IACA;MACA;MACA;MACA;MACA;MACA;IACA,CA1XA;;IA2XA;MACA;QACArF,+BADA;QAEAD,kCAFA;QAGAuF,8BAHA;QAIAlL;MAJA;MAOA;MACA;IACA,CArYA;;IAsYA;IACAmL;MACA;MACA;MACA;IACA,CA3YA;;IA4YA;IACAC;MACA;MACA;IACA,CAhZA;;IAiZA;IACA;MACA;QACApJ,eADA;QAEAC;MAFA;MAKA;MACA;IACA,CA1ZA;;IA2ZA;IACA;MACA;QACAiG;MADA;MAIA;MACA;IACA,CAnaA;;IAoaA;IACA;MACA;MACA;IACA,CAxaA;;IAyaA;IACAmD;MACA;IACA,CA5aA;;IA6aA;IACAC;MACA;MACA,0BAFA,CAGA;;MACA;MACA;IACA,CApbA;;IAqbA;IACA;MACA;QAAAnK;MAAA;QACAoK;MADA;MAIA;MACA;IACA,CA7bA;;IA8bA;IACA;MACA;QACArD,4BADA;QAEAsD;MAFA;MAKA,8BANA,CAOA;;MACA;MACA;IACA,CAzcA;;IA0cA;IACA;MACA;QACA5F,+BADA;QAEA6F;MAFA;MAIA;IACA,CAjdA;;IAkdA;IACA;MACA;QACA7F,+BADA;QAEA5D,OAFA;QAGAC,YAHA;QAIAiG;MAJA;MAOA;QACA,SACA,OADA;UAEAwD;QAFA;MAIA,CALA;IAMA,CAjeA;;IAkeA;IACAC;MACA;MACA;IACA,CAteA;;IAweA;IACAC;MACA;QACA;QACA;QACA;MACA,CAJA,MAIA;QACA;QACA;QACA;MACA;IACA,CAnfA;;IAofA;IACAC;MACA;QACA;QACA;MACA;;MACA;QACA;UACAlD,yBADA;UAEAC,sBAFA;UAGAC;QAHA,GAKAC,IALA,CAKA;UACA;QACA,CAPA,EAQAE,KARA,CAQA;UACA;QACA,CAVA;MAWA,CAZA,MAYA;QACA;MACA;IACA,CAzgBA;;IA0gBA;MACA,qBACA;QACAiB,0BADA;QAEAC,+BAFA;QAGAjD,6BAHA;QAIAkD,qBAJA;QAKAC,gBALA;QAMAC,0BANA;QAOAC,SAPA;QAQA3F;MARA,CADA;MAYA;QACAyB,2BADA;QAEAC,+BAFA;QAGAyF,YAHA;QAIAC,iBAJA;QAKAvB,iCALA;QAMAwB,mBANA;QAOAC,gBAPA;QAQA/D,4BARA;QASAiC,0BATA;QAUA+B,gCAVA;QAWAC,wCAXA;QAYAnI,cAZA;QAaAuG;MAbA;MAgBA;MAEA;;MACA;QACA;MACA;;MACA;IACA,CA9iBA;;IA+iBA;IACA6B;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;QACApI,cADA;QAEAC,YAFA;QAGAC,SAHA;QAIAC,YAJA;QAKAC,WALA;QAMAC;UACAC;YACAC,gBADA;YAEAC,YAFA;YAGAC,gBAHA;YAIAC;UAJA;QADA,CANA;QAcAC;MAdA;IAgBA,CAzkBA;;IA0kBA;IACA;MACA;QACA0H,2BADA;QAEAC,aAFA,CAEA;;MAFA;MAKA;QACAzD,eADA;QAEAxD;MAFA;IAIA,CArlBA;;IAslBA;IACAkH;MACA;MACAC;QACA;UACAvD;QACA,CAFA,MAEA;UACAA;QACA;MACA,CANA;MAOA;MACA;MACA;IACA;;EAnmBA;AA9JA","names":["activityAll","saveEntryData","loggerConnect","getSettings","searchCustomerDetails","getCartByUser","updateBuyNumCashier","delCartCashier","clearCartCashier","GoodsByCategory","changePrice","getAllOrderOrder","getOrderInfoById","OrderVerification","getOrderByVerifyCode","cashierOrder","name","components","CashierHeader","AccountType","Keyboard","WriteOffInfo","WriteOffOrder","Goods","Vip","VipActivity","Entry","AccountPrice","ShopGuide","data","input_key_num","cg_index","keyboard_number","activeName","account_show","dialogVisible","shopGuide","shop_guide","guide_name","guide","collection","total","page","pageSize","textarea","shop","num_list","target_num","input","keyboard_key","input_two","tip_num","num1","order_num","num2","list_judge","list","no_time","price_num","price_change","order_list","order_no_key","writeoff_list","all_shop","shop_com","com_record","spec_id_group","now_sku_data","shop_spec","subPrice","rem_money","goodsData","shop_select","vip_info","createTime","birthday","price","integral","remarks","defaultAddress","area","provinceName","cityName","districtName","address","remark","vip_handle","re_charge","detailed","vip_login","confirm_vip","reCharge","vip_list","rules","required","message","trigger","shop_visible","now_shop","now_sel_shop","classify_list","goodsId","userCenterId","goodsBasicId","order_detail","o_pageSize","o_total","o_page","cashier_staff","cart_primary","customerId","customerName","customerType","payment","cashier_set","zero_set","pay_set","pay_type","discount_list","pay_account_num","pay_account_id","pay_account_name","account_num","accountName","account_id","now_order_id","userCouponId","weight_visible","goods_weight","rest_entry","methods","changeCashierShop","goodsIdFn","inputKey","console","vipInfo","activename","shopGuideFn","categoryId","keyword","shopId","handleClick","handleChange","openKeyboard","keyboardConfirm","goods","buyNum","mobile","delectShop","confirmButtonText","cancelButtonText","type","then","cartId","catch","item","verifyCode","payCalculator","num","orderEvent","diaLog","deleteFn","listFn","oPageChange","serchOrder","search","orderType","no","orderCashier","map","join","accountId","accountNumber","money","discountMoney","finalMoney","payWay","accountList","currentAccountName","payType","totalMoney","guideUids","payAmount","source","deliveryType","isEnablePrint","orderRemark","operatorName","skuId","close","reChargeFn","selShop","shopConfirm","orderId","entryData","isZero","checked","openAccountModel","accountsel","addReceived","sourceNo","sourceNoMoney","financeType","financeTypeId","shopName","receiptTime","changeUser","objectId","objectType","couponChange","target"],"sourceRoot":"src/views/CashierShop","sources":["CashierShop.vue"],"sourcesContent":["<template>\n <div class=\"CashierShop\">\n <CashierHeader :shop-name=\"now_sel_shop.name\" />\n <el-row style=\"padding: 0 10px\">\n <el-col :span=\"10\">\n <div class=\"grid-content bg-purple\">\n <div class=\"list_info\">\n <p :class=\"tip_num === 1 ? 'list_info_p' : ''\" @click=\"tip_num = 1\">\n 首页\n </p>\n <p :class=\"tip_num === 2 ? 'list_info_p' : ''\" @click=\"tip_num = 2\">\n 核销\n </p>\n <p :class=\"tip_num === 3 ? 'list_info_p' : ''\" @click=\"listFn\">\n 订单\n </p>\n </div>\n <div class=\"list_content clearfix\">\n <span style=\"font-weight: bold; margin-left: 10px; font-size: 14px\">\n <span v-if=\"tip_num === 1\" :disabled=\"collection\">\n 结算清单({{ shop_spec.goodsNum || \"0\" }}件)\n </span>\n <span v-if=\"tip_num === 2 && com_record === false\">自提核销</span>\n <span v-if=\"tip_num === 3\">订单管理</span>\n </span>\n <div style=\"float: right; margin-right: 10px; font-size: 14px\">\n <span v-if=\"tip_num === 1\">会员:</span>\n <span v-if=\"tip_num === 1\" style=\"color: #409eff\">\n {{ vip_info.mobile || \"无\" }}\n </span>\n <!-- <span-->\n <!-- style=\"color: #F56C6C;cursor: pointer\"-->\n <!-- v-if=\"tip_num===2&&com_record===false\"-->\n <!-- @click=\"com_record=true\"-->\n <!-- >核销记录</span>-->\n </div>\n <div v-if=\"tip_num === 1\">\n <div\n v-if=\"tip_num === 1 && !shop_spec.goodsData\"\n class=\"tips\"\n style=\"height: 63vh\"\n >\n 未添加任何商品\n </div>\n <div\n v-if=\"\n tip_num === 1 && list_judge === false && shop_spec.goodsData\n \"\n style=\"height: 60vh; overflow: auto\"\n >\n <!-- 结算清单 start-->\n <ul v-for=\"(item, index) in shop_spec.goodsData\" :key=\"index\">\n <li\n v-for=\"(itemP, indexP) in item.shopGoodsData\"\n :key=\"indexP\"\n class=\"card-goods-li clearfix\"\n >\n <div class=\"card-goods-img float_left\">\n <img\n :src=\"itemP.goodsImages\"\n alt=\"\"\n style=\"height: 60px; width: 60px\"\n />\n </div>\n <div class=\"float_left card-goods-info\">\n <p class=\"c-goods-name\">\n {{ itemP.goodsName || \"直接收款\" }}\n </p>\n <div class=\"color_size clearfix\">\n <div class=\"float_left\">\n {{ itemP.unitName || \"直接收款\" }};\n <span\n v-for=\"(itemPX, indexPX) in itemP.specGroup\"\n :key=\"indexPX\"\n >\n {{ itemPX.specValueName }}\n </span>\n </div>\n <div class=\"float_right\">\n <el-button\n v-if=\"!itemP.isprice\"\n type=\"text\"\n :disabled=\"collection\"\n size=\"mini\"\n @click=\"getCart(itemP)\"\n >\n 改价\n </el-button>\n <el-button\n type=\"text\"\n :disabled=\"collection\"\n size=\"mini\"\n @click=\"delectShop(itemP.cartId)\"\n >\n 删除\n </el-button>\n </div>\n </div>\n <div class=\"c-goods-num\">\n <div class=\"price-color\">\n ¥{{ itemP.price || itemP.isprice }}\n </div>\n <div\n style=\"text-align: center\"\n @click=\"openKeyboard(indexP)\"\n >\n <el-input\n v-model=\"itemP.buyNum\"\n :disabled=\"collection\"\n style=\"width: 150px\"\n size=\"mini\"\n readonly\n ></el-input>\n </div>\n <div class=\"price-color\" style=\"text-align: right\">\n ¥{{ itemP.totalMoney || itemP.buyNum * num2 }}\n </div>\n </div>\n </div>\n </li>\n </ul>\n <!-- 结算清单 END-->\n </div>\n <div\n v-if=\"\n tip_num === 1 && list_judge === false && shop_spec.goodsData\n \"\n >\n <div\n class=\"clearfix\"\n style=\"\n border-bottom: 1px solid #f2f2f2;\n padding: 0 20px;\n border-top: 1px solid #f2f2f2;\n \"\n >\n <div v-if=\"shop_spec.preferential !== 0\" class=\"float_left\">\n <span class=\"price-color\">\n 优惠:¥{{\n $NP.plus(\n shop_spec.preferential || 0,\n shop_spec.subPrice || 0\n )\n }}\n </span>\n <span\n style=\"\n color: #1881f7;\n padding-left: 20px;\n cursor: pointer;\n \"\n @click=\"\n (detailed = true),\n (collection = false),\n (re_charge = false),\n (price_change = false)\n \"\n >\n 明细\n </span>\n </div>\n <div class=\"float_right\">\n <span>应收金额:</span>\n <span class=\"price-color\">\n ¥{{ shop_spec.payMoney || 0 }}\n </span>\n </div>\n </div>\n <div style=\"margin-left: 20px; text-align: right\">\n <el-button :disabled=\"collection\" @click=\"clearCart\">\n 取消\n </el-button>\n <el-button\n :disabled=\"collection\"\n @click=\"dialogVisible = true\"\n >\n 备注\n </el-button>\n <el-button :disabled=\"collection\" @click=\"saveEntryData\">\n 挂单\n </el-button>\n <el-button\n v-if=\"\n cashier_set.zero_set.status === 5 &&\n cashier_set.zero_set.auto_zero === 4\n \"\n :disabled=\"collection\"\n @click=\"delZreo\"\n >\n {{ shop_spec.rem_money - 0 !== 0 ? \"取消抹零\" : \"抹零\" }}\n </el-button>\n <el-button\n type=\"primary\"\n :disabled=\"collection\"\n @click=\"orderCashier\"\n >\n 收款\n </el-button>\n </div>\n </div>\n </div>\n\n <div\n v-if=\"tip_num === 2 && com_record === false\"\n class=\"change-price\"\n >\n <div class=\"keyboard\" style=\"padding-top: 50px\">\n <div class=\"keyboard-input_one\">\n <input\n v-model=\"keyboard_key\"\n type=\"text\"\n placeholder=\"请输入核销码\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n class=\"keyboard-input-input\"\n style=\"width: 100%\"\n />\n </div>\n <keyboard :tip-num=\"tip_num\" @click=\"numFnOne\"></keyboard>\n </div>\n </div>\n <div\n v-if=\"tip_num === 2 && com_record === true\"\n style=\"margin-top: -50px\"\n >\n <div class=\"head_back\">\n <i class=\"el-icon-back\"></i>\n <span style=\"margin-left: 6px\" @click=\"com_record = false\">\n 返回\n </span>\n <span class=\"head_line\"></span>\n <span style=\"color: #333333\">核销记录</span>\n </div>\n <div style=\"width: 90%; margin: 10px auto 0\">\n <el-input\n v-model=\"order_num\"\n size=\"medium\"\n placeholder=\"请输入订单编号查询订单\"\n class=\"input-with-select\"\n >\n <el-button slot=\"append\" icon=\"el-icon-search\"></el-button>\n </el-input>\n </div>\n <div class=\"tips\">暂无数据</div>\n </div>\n <!-- 订单管理 start-->\n <div v-if=\"tip_num === 3\">\n <div class=\"order-input-view\">\n <el-input\n v-model=\"order_no_key\"\n placeholder=\"请输入订单编号查询订单\"\n style=\"width: 100%\"\n >\n <el-button\n slot=\"append\"\n icon=\"el-icon-search\"\n @click=\"serchOrder\"\n ></el-button>\n </el-input>\n </div>\n <ul class=\"order-ul\">\n <li\n v-for=\"(item, index) in order_list\"\n :key=\"index\"\n class=\"order-item\"\n @click=\"orderEvent(item)\"\n >\n <div class=\"clearfix\">\n <span style=\"margin-left: 10px\">订单号:{{ item.no }}</span>\n <div\n style=\"float: right; margin-right: 10px; color: #1881f7\"\n >\n <el-tag\n size=\"small\"\n :type=\"item.payMsg === '已支付' ? 'success' : 'danger'\"\n >\n {{ item.payMsg }}\n </el-tag>\n </div>\n </div>\n <div class=\"clearfix\">\n <span style=\"margin-left: 10px\">\n 下单时间:{{ $_common.formatDate(item.createTime) }}\n </span>\n <span style=\"float: right; margin-right: 10px\">\n 合计:¥{{ item.totalMoney }}\n </span>\n </div>\n </li>\n </ul>\n <FooterPage\n layout=\"total, prev, pager, next\"\n :page-size=\"o_pageSize\"\n :total-page.sync=\"o_total\"\n :current-page.sync=\"o_page\"\n @pageChange=\"oPageChange\"\n ></FooterPage>\n </div>\n <!-- 订单管理 end-->\n </div>\n </div>\n </el-col>\n <el-col :span=\"14\">\n <div class=\"grid-content bg-purple\">\n <div v-if=\"tip_num === 1 && detailed === true\">\n <div class=\"tip_info\">\n <p style=\"margin: 0\">优惠明细</p>\n <div\n style=\"\n float: right;\n padding-right: 20px;\n margin-top: -60px;\n cursor: pointer;\n \"\n @click=\"detailed = false\"\n >\n <i class=\"el-icon-close\"></i>\n </div>\n </div>\n <div>\n <div class=\"clearfix\" style=\"padding: 10px; font-size: 14px\">\n <div style=\"margin-bottom: 20px\">\n <span style=\"font-weight: bold\">改价</span>\n <span class=\"price-color float_right\">\n ¥{{ shop_spec.subPrice || 0 }}\n </span>\n </div>\n <div style=\"margin-bottom: 20px\">\n <span style=\"font-weight: bold\">抹零</span>\n <span class=\"price-color float_right\">\n ¥{{ shop_spec.rem_money || 0 }}\n </span>\n </div>\n <div v-if=\"shop_spec.useCoupon.reducePrice\">\n <span style=\"font-weight: bold\">优惠活动</span>\n <span class=\"price-color float_right\">\n ¥{{ shop_spec.useCoupon.reducePrice }}\n </span>\n </div>\n </div>\n </div>\n </div>\n <div v-if=\"tip_num === 1 && collection === true\" class=\"pay-box\">\n <div>\n <div\n v-if=\"userCenterId\"\n style=\"\n padding: 10px 10px 10px 20px;\n position: relative;\n color: #333333;\n height: 100px;\n \"\n class=\"clearfix\"\n >\n <div style=\"float: left; width: 300px\">\n <div style=\"display: inline-block; padding-top: 18px\">\n <el-row class=\"demo-avatar demo-basic\">\n <el-col :span=\"12\">\n <div class=\"demo-basic--circle\">\n <div class=\"block\">\n <el-avatar\n :size=\"50\"\n :src=\"vip_info.avatar\"\n ></el-avatar>\n </div>\n </div>\n </el-col>\n </el-row>\n </div>\n <div\n style=\"\n display: inline-block;\n margin-left: 10px;\n line-height: 20px;\n position: absolute;\n top: 34%;\n \"\n >\n <div>\n <span>{{ vip_info.name }}</span>\n </div>\n <div>\n {{ vip_info.mobile }}\n </div>\n </div>\n <div\n style=\"\n display: inline-block;\n margin-left: 130px;\n position: absolute;\n top: 34%;\n \"\n >\n <el-button @click=\"changeUser\">切换会员</el-button>\n </div>\n </div>\n <!-- <div class=\"vip_inte\">-->\n <!-- <div>-->\n <!-- 会员积分-->\n <!-- </div>-->\n <!-- <div class=\"vip_price\">-->\n <!-- 0-->\n <!-- </div>-->\n <!-- </div>-->\n <!-- <div class=\"vip_inte\">-->\n <!-- <div>-->\n <!-- 会员余额-->\n <!-- </div>-->\n <!-- <div class=\"vip_price\">-->\n <!-- ¥0-->\n <!-- </div>-->\n <!-- </div>-->\n </div>\n <div class=\"check_vip_price\">\n 收款金额:\n <span>¥{{ shop_spec.payMoney }}</span>\n </div>\n <div class=\"pay_type\">\n <!--<el-button type=\"primary\">\n 其他方式\n </el-button>-->\n <el-radio-group v-model=\"pay_type\">\n <!-- <el-radio-button\n :label=\"2\"\n v-if=\"cashier_set.pay_set.alipay_payment_id===5\"\n >\n 支付宝\n </el-radio-button>-->\n <!-- <el-radio-button-->\n <!-- :label=\"1\"-->\n <!-- v-if=\"cashier_set.pay_set.wechat_payment_id===5\"-->\n <!-- >-->\n <!-- 微信支付-->\n <!-- </el-radio-button>-->\n <el-radio-button\n v-if=\"cashier_set.pay_set.cash_pay === 5\"\n :label=\"5\"\n >\n 现金支付\n </el-radio-button>\n <!--<el-radio-button\n :label=\"3\"\n v-if=\"cashier_set.pay_set.balance_pay===5&&userCenterId\"\n >\n 余额支付\n </el-radio-button>-->\n <el-radio-button :label=\"6\">其他方式</el-radio-button>\n </el-radio-group>\n </div>\n <!--支付宝或者微信支付-->\n <div v-if=\"pay_type === 1 || pay_type === 2\" class=\"pay-tip\">\n 请输入付款码数字\n </div>\n <!--现金支付-->\n <div v-else-if=\"pay_type === 5\" style=\"margin-top: 20px\">\n <div class=\"input-box\">\n <input\n v-model=\"shop_spec.payMoney\"\n type=\"text\"\n placeholder=\"请输入需要的金额\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n class=\"input-input\"\n />\n <div class=\"input-unit\" style=\"color: #333333\">元</div>\n </div>\n <div class=\"input-box\" style=\"margin-top: 10px\">\n <input\n v-model=\"pay_account_name\"\n type=\"text\"\n readonly\n placeholder=\"请选择结算账户\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n class=\"input-input\"\n />\n <div\n class=\"input-unit\"\n style=\"color: #666\"\n @click=\"openAccountModel('pay')\"\n >\n <i class=\"el-icon-circle-check\"></i>\n 点击选择\n </div>\n </div>\n <keyboard @click=\"payCalculator($event)\"></keyboard>\n </div>\n <!--余额支付-->\n <div v-else-if=\"pay_type === 3\" class=\"pay-tip\">\n <div class=\"balance\">\n <p>会员余额</p>\n <p class=\"price\">¥0</p>\n <p class=\"tip\">会员余额不足,请更换支付方式。</p>\n </div>\n </div>\n <!--其他支付方式-->\n <div v-else class=\"pay-tip\">\n 会员通过扫码等方式进行支付,确认会员支付成功后,点击确认付款即可完成付款操作。\n <div class=\"input-box\" style=\"margin-top: 10px\">\n <input\n v-model=\"pay_account_name\"\n type=\"text\"\n readonly\n placeholder=\"请选择结算账户\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n class=\"input-input\"\n />\n <div\n class=\"input-unit\"\n style=\"color: #666\"\n @click=\"openAccountModel('pay')\"\n >\n <i class=\"el-icon-circle-check\"></i>\n 点击选择\n </div>\n </div>\n </div>\n </div>\n <div class=\"right-bottom\">\n <div style=\"padding: 20px\" class=\"clearfix\">\n <span class=\"float_left\">\n 导购员:\n <i v-if=\"!guide.length\">无</i>\n <span v-else>\n <i v-for=\"(item, index) in guide\" :key=\"index\">\n {{ item.staffName }};\n </i>\n </span>\n </span>\n <span class=\"float_right\" @click=\"shopGuide = true\">\n <el-button type=\"text\">编辑</el-button>\n </span>\n </div>\n <div class=\"btn-group\">\n <el-button style=\"width: 100px\" @click=\"collection = false\">\n 取消\n </el-button>\n <el-button\n v-if=\"pay_type !== 3\"\n type=\"primary\"\n style=\"width: 100px\"\n @click=\"paymentFn\"\n >\n 确定付款\n </el-button>\n </div>\n </div>\n </div>\n <div\n v-if=\"tip_num === 1 && payment === true\"\n style=\"padding-top: 200px\"\n >\n <div style=\"height: 56vh; border-bottom: 1px solid #dcdee2\">\n <p class=\"icon_check\" style=\"text-align: center\">\n <i class=\"el-icon-check\"></i>\n </p>\n <p\n class=\"price-color\"\n style=\"font-size: 20px; font-weight: bold; text-align: center\"\n >\n 收款成功\n </p>\n </div>\n <div style=\"margin: 20px 20px 0 0; text-align: right\">\n <el-button @click=\"toPrint\">打印小票</el-button>\n <el-button type=\"primary\" @click=\"payment = false\">\n 继续收款\n </el-button>\n </div>\n </div>\n <div v-if=\"tip_num === 1 && re_charge === true\" class=\"clearfix\">\n <div style=\"height: 76vh; border-bottom: 1px solid #dcdee2\">\n <div\n style=\"\n padding: 10px 10px 10px 20px;\n position: relative;\n color: #333333;\n height: 100px;\n \"\n >\n <div style=\"float: left; width: 300px\">\n <div style=\"display: inline-block; padding-top: 18px\">\n <el-row class=\"demo-avatar demo-basic\">\n <el-col :span=\"12\">\n <div class=\"demo-basic--circle\">\n <div class=\"block\">\n <el-avatar\n :size=\"50\"\n :src=\"vip_info.avatar\"\n ></el-avatar>\n </div>\n </div>\n </el-col>\n </el-row>\n </div>\n <div\n style=\"\n display: inline-block;\n margin-left: 10px;\n line-height: 20px;\n position: absolute;\n top: 34%;\n \"\n >\n <div>\n <span>{{ vip_info.name }}</span>\n </div>\n <div>\n {{ vip_info.mobile }}\n </div>\n </div>\n <div\n style=\"\n display: inline-block;\n margin-left: 130px;\n position: absolute;\n top: 34%;\n \"\n >\n <el-button @click=\"changeUser\">切换会员</el-button>\n </div>\n </div>\n <!-- <div class=\"vip_inte\">-->\n <!-- <div>-->\n <!-- 会员积分-->\n <!-- </div>-->\n <!-- <div class=\"vip_price\">-->\n <!-- 0-->\n <!-- </div>-->\n <!-- </div>-->\n <!-- <div class=\"vip_inte\">-->\n <!-- <div>-->\n <!-- 会员余额-->\n <!-- </div>-->\n <!-- <div class=\"vip_price\">-->\n <!-- ¥{{ vip_info.money||'0' }}-->\n <!-- </div>-->\n <!-- </div>-->\n </div>\n <div class=\"check_vip_price\">\n 充值金额:\n <span>¥{{ vip_info.price }}</span>\n </div>\n <div class=\"pay_type\">\n <el-button type=\"primary\">其他方式</el-button>\n </div>\n <div style=\"margin-top: 50px; text-align: center\">\n 会员通过扫码等方式进行支付,确认会员支付成功后,点击确认付款即可完成付款操作。\n </div>\n </div>\n <div class=\"button_vip\">\n <span>\n <el-button style=\"width: 100px\" @click=\"re_charge = false\">\n 取消\n </el-button>\n </span>\n <span style=\"width: 100px\">\n <el-button type=\"primary\" style=\"width: 100px\">\n 确定付款\n </el-button>\n </span>\n </div>\n </div>\n <div\n v-if=\"\n tip_num === 1 &&\n price_change === false &&\n re_charge === false &&\n detailed === false &&\n collection === false &&\n payment === false\n \"\n class=\"cashier\"\n >\n <el-tabs\n v-model=\"activeName\"\n class=\"el-tabs__item is-top el_tabs--top\"\n style=\"position: relative\"\n @tab-click=\"handleClick\"\n >\n <el-tab-pane label=\"商品\" name=\"first\">\n <Goods\n :shop-com=\"shop_com\"\n :all-shop=\"all_shop\"\n :user-center-id=\"userCenterId\"\n :num-list=\"num_list\"\n :now-sel-shop=\"now_sel_shop\"\n :user-coupon-id=\"userCouponId\"\n @goodsId=\"goodsIdFn\"\n @openKeyboard=\"openKeyboard\"\n @inputKey=\"inputKey\"\n @getCartByUser=\"getCartByUser\"\n ></Goods>\n </el-tab-pane>\n <el-tab-pane label=\"会员\" name=\"second\">\n <Vip\n :vip-login=\"vip_login\"\n :vip-handle=\"vip_handle\"\n :num-list=\"num_list\"\n :user-coupon-id=\"userCouponId\"\n :now-sel-shop=\"now_sel_shop\"\n :collection=\"collection\"\n :re-charge=\"re_charge\"\n @getCartByUser=\"getCartByUser\"\n @vipInfo=\"vipInfo\"\n ></Vip>\n </el-tab-pane>\n <el-tab-pane label=\"优惠活动\" name=\"third\">\n <VipActivity\n :discount-list=\"discount_list\"\n @couponChange=\"couponChange\"\n ></VipActivity>\n </el-tab-pane>\n <el-tab-pane label=\"取单\" name=\"fourth\">\n <Entry\n :reset-list=\"rest_entry\"\n :now-sel-shop=\"now_sel_shop\"\n :shop-spec=\"shop_spec\"\n :user-center-id=\"userCenterId\"\n @saveEntryData=\"saveEntryData\"\n @getCartByUser=\"getCartByUser\"\n ></Entry>\n </el-tab-pane>\n <el-tab-pane label=\"直接收款\" name=\"fiver\">\n <AccountPrice\n :now-sel-shop=\"now_sel_shop\"\n :num-list=\"num_list\"\n :customer-id=\"customerId\"\n :customer-name=\"customerName\"\n :money=\"vip_info.money\"\n :input=\"input\"\n @activeName=\"activename\"\n ></AccountPrice>\n </el-tab-pane>\n </el-tabs>\n </div>\n <div\n v-if=\"tip_num === 1 && price_change === true\"\n class=\"change-price\"\n >\n <div class=\"tip_info clearfix\">\n <p style=\"margin: 0\">改价</p>\n <div\n style=\"\n float: right;\n padding-right: 20px;\n margin-top: -60px;\n cursor: pointer;\n \"\n @click=\"deleteFn\"\n >\n <i class=\"el-icon-close\"></i>\n </div>\n </div>\n <div class=\"shop_info clearfix\">\n <div class=\"float_left\">\n <img :src=\"cart_primary.goodsImages\" alt=\"\" />\n </div>\n <div class=\"float_right goods-info\">\n <p>\n {{ cart_primary.goodsName }}\n </p>\n <div>\n <span class=\"price-color\" style=\"margin-right: 10px\">\n ¥{{ cart_primary.originPrice }}\n </span>\n </div>\n </div>\n </div>\n <div style=\"margin: 40px 0 40px 40px\">\n <span style=\"margin-right: 30px\">现价</span>\n <span>¥{{ cart_primary.originPrice }}</span>\n </div>\n <div :inline=\"true\" style=\"margin-left: 40px\">\n <span style=\"margin-right: 20px\">定价</span>\n <el-input\n v-model=\"price_num\"\n placeholder=\"请输入内容\"\n style=\"width: 20%\"\n >\n <template slot=\"append\">元</template>\n </el-input>\n </div>\n <div class=\"btn-group\">\n <el-button @click=\"deleteFn\">取消</el-button>\n <el-button type=\"primary\" @click=\"primaryCart\">确定</el-button>\n </div>\n </div>\n <!-- 核销 订单详情 start-->\n <WriteOffInfo\n :tip-num=\"tip_num\"\n :writeoff-list=\"writeoff_list\"\n ></WriteOffInfo>\n <!-- 核销 订单详情 end-->\n <!-- 订单详情 start-->\n <WriteOffOrder\n :tip-num=\"tip_num\"\n :order-detail=\"order_detail\"\n :now-order-id=\"now_order_id\"\n @dialog=\"diaLog\"\n ></WriteOffOrder>\n <!-- 订单详情 end-->\n </div>\n </el-col>\n </el-row>\n <el-dialog\n :close-on-press-escape=\"false\"\n :close-on-click-modal=\"false\"\n title=\"提示\"\n :visible.sync=\"dialogVisible\"\n width=\"30%\"\n >\n <span>\n <el-input\n v-model=\"textarea\"\n type=\"textarea\"\n :rows=\"2\"\n maxlength=\"200\"\n placeholder=\"请填写备注\"\n ></el-input>\n </span>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"dialogVisible = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"dialogVisible = false\">\n 确 定\n </el-button>\n </span>\n </el-dialog>\n <el-dialog\n :show-close=\"false\"\n :close-on-press-escape=\"false\"\n :close-on-click-modal=\"false\"\n width=\"40%\"\n title=\"选择店铺\"\n :visible.sync=\"shop_visible\"\n >\n <div\n style=\"\n height: 400px;\n overflow-y: auto;\n border-bottom: 1px solid #f7f7f7;\n \"\n >\n <div\n v-for=\"(item, index) in shop_select\"\n :key=\"index\"\n class=\"shop\"\n :class=\"[now_shop.id === item.id ? 'shop-on' : '']\"\n @click=\"selShop(item)\"\n >\n <span\n class=\"iconfont icon-002 select_icon\"\n style=\"\n background-color: #f56c6c;\n color: #fff;\n text-align: center;\n line-height: 40px;\n \"\n ></span>\n <span>{{ item.name }}</span>\n <i v-show=\"now_shop.id === item.id\" class=\"el-icon-check\"></i>\n </div>\n </div>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"shop_visible = false\">取消</el-button>\n <el-button type=\"primary\" @click=\"shopConfirm\">确 定</el-button>\n </div>\n </el-dialog>\n <el-dialog\n :close-on-press-escape=\"false\"\n :close-on-click-modal=\"false\"\n width=\"30%\"\n title=\"会员充值\"\n :visible.sync=\"reCharge\"\n @close=\"close\"\n >\n <el-form :model=\"vip_info\" label-width=\"80px\" size=\"small\" :rules=\"rules\">\n <el-form-item label=\"金额\" prop=\"price\">\n <el-input v-model=\"vip_info.price\" placeholder=\"请填写金额\">\n <template slot=\"append\">元</template>\n </el-input>\n </el-form-item>\n </el-form>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"close\">取 消</el-button>\n <el-button type=\"primary\" @click=\"reChargeFn\">去充值</el-button>\n </div>\n </el-dialog>\n <el-dialog\n :close-on-press-escape=\"false\"\n :close-on-click-modal=\"false\"\n width=\"30%\"\n title=\"调整积分\"\n :visible.sync=\"integral\"\n @close=\"close\"\n >\n <el-form :model=\"vip_info\" label-width=\"80px\" size=\"small\" :rules=\"rules\">\n <el-form-item label=\"积分\" prop=\"integral\">\n <el-input\n v-model=\"vip_info.integral\"\n placeholder=\"请输入0以上的数字\"\n ></el-input>\n </el-form-item>\n <el-form-item label=\"备注\" prop=\"remarks\">\n <el-input\n v-model=\"vip_info.remarks\"\n placeholder=\"充值说明\"\n ></el-input>\n </el-form-item>\n </el-form>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"close\">取消</el-button>\n <el-button type=\"primary\">确定</el-button>\n </div>\n </el-dialog>\n <!-- 选择导购-->\n <ShopGuide\n v-if=\"shopGuide\"\n :shop-guide=\"shopGuide\"\n @close=\"close\"\n @shopGuideFn=\"shopGuideFn\"\n ></ShopGuide>\n <!-- 购物车键盘弹窗-->\n <el-dialog\n :close-on-press-escape=\"false\"\n :close-on-click-modal=\"false\"\n width=\"640px\"\n :visible.sync=\"keyboard_number\"\n >\n <el-input v-model=\"input_key_num\" readonly></el-input>\n <keyboard :lb-num=\"false\" @click=\"keyboardConfirm\"></keyboard>\n </el-dialog>\n <!-- 选择结算账户-->\n <AccountType\n v-if=\"account_show\"\n :id=\"now_sel_shop.id\"\n :is-check=\"false\"\n :is-show=\"account_show\"\n @cancel=\"account_show = false\"\n @confirm=\"accountsel\"\n />\n </div>\n</template>\n\n<script>\n import Keyboard from \"./component/Keyboard\";\n import WriteOffInfo from \"./component/WriteOffInfo\";\n import WriteOffOrder from \"./component/WriteOffOrder\";\n import Goods from \"@/views/CashierShop/component/Goods\";\n import Vip from \"./component/Vip\";\n import CashierHeader from \"./CashierHeader.vue\";\n import VipActivity from \"./component/VipActivity\";\n import Entry from \"./component/Entry\";\n import AccountPrice from \"./component/AccountPrice\";\n import ShopGuide from \"./component/shopGuide\";\n import { mapActions } from \"vuex\";\n import {\n activityAll,\n saveEntryData,\n loggerConnect,\n getSettings,\n searchCustomerDetails,\n getCartByUser,\n updateBuyNumCashier,\n delCartCashier,\n clearCartCashier,\n GoodsByCategory,\n changePrice,\n } from \"@/api/Cashier\";\n import {\n getAllOrderOrder,\n getOrderInfoById,\n OrderVerification,\n getOrderByVerifyCode,\n cashierOrder,\n } from \"@/api/Order\";\n import { getAllStaffStaff } from \"@/api/Department\";\n import { getAllShop } from \"@/api/Shop\";\n import { toPrint } from \"@/api/common\";\n import { addReceived } from \"@/api/Finance\";\n import AccountType from \"../Finance/AccountType\";\n export default {\n name: \"CashierShop\",\n components: {\n CashierHeader,\n AccountType,\n Keyboard,\n WriteOffInfo,\n WriteOffOrder,\n Goods,\n Vip,\n VipActivity,\n Entry,\n AccountPrice,\n ShopGuide,\n },\n data() {\n return {\n input_key_num: 0, // 键盘弹窗数字\n cg_index: 0, // 购物车商品选择下标\n keyboard_number: false, // 键盘弹窗\n activeName: \"first\",\n account_show: false, // 选择结算账户\n dialogVisible: false,\n shopGuide: false,\n shop_guide: [], // 导购员列表\n guide_name: \"\", // 导购员名称\n guide: [],\n collection: false,\n total: 0,\n page: 1,\n pageSize: 10,\n textarea: \"\",\n shop: \"\",\n num_list: [],\n target_num: \"\",\n input: \"\",\n keyboard_key: \"\", // 核销码\n input_two: \"\",\n tip_num: 1, // 左侧导航\n num1: 1,\n order_num: \"\",\n num2: \"1\",\n list_judge: false,\n list: \"\",\n no_time: \"\",\n price_num: \"\",\n price_change: false,\n order_list: [], // 订单列表\n order_no_key: \"\", // 订单输入框搜索关键字\n writeoff_list: {},\n all_shop: true,\n shop_com: false,\n com_record: false,\n spec_id_group: [],\n now_sku_data: {},\n shop_spec: {\n subPrice: 0,\n rem_money: 0,\n goodsData: [],\n },\n shop_select: [],\n vip_info: {\n createTime: \"\",\n birthday: \"\",\n price: \"\",\n integral: \"\",\n remarks: \"\",\n defaultAddress: {\n area: {\n provinceName: \"\",\n cityName: \"\",\n districtName: \"\",\n address: \"\",\n },\n },\n remark: \"\",\n },\n vip_handle: false,\n re_charge: false,\n integral: false,\n detailed: false,\n vip_login: false,\n confirm_vip: false,\n reCharge: false,\n vip_list: [\n {\n price: 10,\n price_num: 0.0,\n },\n {\n price: 300,\n price_num: 0.0,\n },\n {\n price: 15,\n price_num: 0.0,\n },\n {\n price: 121,\n price_num: 0.0,\n },\n ],\n rules: {\n price: [{ required: true, message: \"请填写金额\", trigger: \"blur\" }],\n integral: [\n { required: true, message: \"请填写积分\", trigger: \"blur\" },\n ],\n remarks: [{ required: true, message: \"请填写备注\", trigger: \"blur\" }],\n },\n shop_visible: false, // 选择店铺弹窗\n now_shop: {}, // 当前店铺信息\n now_sel_shop: {}, // 当前选中店铺信息\n classify_list: [], // 分类列表\n goodsId: \"\",\n userCenterId: \"\",\n goodsBasicId: \"\",\n order_detail: {}, // 订单详情\n o_pageSize: 10,\n o_total: 0,\n o_page: 1,\n cashier_staff: {}, // 收银员数据\n cart_primary: {},\n customerId: \"\",\n customerName: \"\",\n customerType: \"\",\n payment: false,\n cashier_set: {\n zero_set: {},\n pay_set: {},\n }, // 收银台设置\n pay_type: 6, // 收款方式\n discount_list: [], // 优惠活动\n pay_account_num: \"\", // 收款结算账户\n pay_account_id: \"\", // 收款结算账户id\n pay_account_name: \"\", // 收款结算账户name\n account_num: \"\", // 结算账户\n accountName: \"\", // 结算账户name\n account_id: \"\", // 结算账户id\n now_order_id: \"\", // 收款成功后存储当前订单id\n userCouponId: 0, // 勾选优惠券id\n weight_visible: false,\n goods_weight: 0, // 商品手动输入重量\n rest_entry: false, // 控制刷新取单列表\n };\n },\n async created() {\n // 获取收银台设置\n await this.getSettings();\n this.no_time = this.$_common.formatDate(new Date().getTime());\n if (this.$store.getters[\"MUser/cashierShop\"].id) {\n this.now_sel_shop = this.$store.getters[\"MUser/cashierShop\"];\n // 请求与该店铺相关数据\n this.loggerConnect();\n } else {\n // 获取商铺列表\n await this.getAllShop();\n }\n },\n methods: {\n ...mapActions({\n changeCashierShop: \"MUser/changeCashierShop\",\n }),\n goodsIdFn(goodsId) {\n this.goodsId = goodsId;\n },\n inputKey(input_key_num) {\n this.input_key_num = input_key_num;\n console.log(input_key_num);\n },\n vipInfo(vip_info) {\n this.vip_info = vip_info;\n },\n activename(activeName) {\n this.activeName = activeName;\n },\n shopGuideFn(guide) {\n this.guide = guide;\n },\n // 切换商铺后请求与该店铺相关数据\n async shopChange() {\n // 商品列表\n await this.GoodsByCategory();\n // 购物车详情\n this.getCartByUser();\n },\n // 获取收银台设置\n async getSettings() {\n const { data } = await getSettings();\n\n if (data.add_form) {\n this.cashier_set = data.add_form;\n }\n },\n async GoodsByCategory() {\n const data = await GoodsByCategory({\n page: this.page,\n pageSize: this.pageSize,\n categoryId: this.cate_id,\n keyword: this.shop,\n userCenterId: this.userCenterId,\n shopId: this.now_sel_shop.id,\n });\n\n this.shop_shop = data.data;\n this.total = data.pageTotal;\n },\n // 收银右边tab切换\n handleClick(tab, event) {\n switch (this.activeName) {\n // 商品\n case \"first\":\n break;\n // 会员\n case \"second\":\n // 获取客户类型\n break;\n // 优惠活动\n case \"third\":\n // this.activityAll()\n break;\n // 取单\n case \"fourth\":\n // 挂单列表\n break;\n // 直接收款\n case \"fiver\":\n break;\n }\n },\n // 修改购物车数量\n handleChange(value, cartId) {\n this.updateBuyNumCashier(value, cartId);\n console.log(cartId);\n console.log(value);\n },\n // 打开键盘\n openKeyboard(index) {\n this.keyboard_number = true;\n this.cg_index = index;\n },\n keyboardConfirm(e, num) {\n if (num === \"x\") {\n this.input_key_num = this.input_key_num.substring(\n 0,\n this.input_key_num.length - 1\n );\n } else if (num === \"清除\") {\n this.input_key_num = \"\";\n } else if (num === \"确定\") {\n if (this.cg_index >= 0) {\n let goods = this.shop_spec.goodsData[0].shopGoodsData[\n this.cg_index\n ];\n if (Number(this.input_key_num) > Number(goods.inventoryNum)) {\n this.$message.warning(\"库存不足\");\n return;\n }\n goods.buyNum = Number(this.input_key_num);\n this.updateBuyNumCashier(Number(this.input_key_num), goods.cartId);\n } else {\n this.num2 = Number(this.input_key_num);\n this.addCart();\n }\n this.keyboard_number = false;\n this.input_key_num = 0;\n } else {\n this.input_key_num += num;\n }\n },\n // 修改购物车数量\n async updateBuyNumCashier(value, cartId) {\n const data = await updateBuyNumCashier(cartId, {\n userCenterId: this.userCenterId,\n buyNum: value,\n });\n\n this.getCartByUser();\n },\n // 查询会员信息\n async searchCustomerDetails() {\n if (!this.input) {\n this.$message.warning(\"请输入会员手机号\");\n return;\n }\n const re = /^1[3456789]\\d{9}$/; // 正则表达式\n if (!re.test(this.input)) {\n this.$message.warning(\"手机号格式有误,请重新输入!\");\n return;\n }\n const data = await searchCustomerDetails({\n mobile: this.input,\n });\n\n if (JSON.stringify(data.data) === \"{}\") {\n // this.$message.error('未查找到会员信息')\n this.vip_handle = false;\n this.vip_login = true;\n this.userCenterId = \"\";\n this.customerId = \"\";\n this.customerName = \"\";\n this.customerType = \"\";\n this.vip_info = {};\n } else {\n this.vip_handle = true;\n this.vip_login = true;\n this.vip_info = data.data;\n this.userCenterId = data.data.userCenterId;\n this.customerId = data.data.customerId;\n this.customerName = data.data.name;\n this.customerType = data.data.customerType;\n this.getCartByUser();\n }\n },\n // 删除购物车\n delectShop(cartId) {\n // console.log(e.target.cartId)\n this.$confirm(\"您确认删除这个订单吗?\", \"提示\", {\n confirmButtonText: \"确定\",\n cancelButtonText: \"取消\",\n type: \"warning\",\n })\n .then(async () => {\n const data = await delCartCashier({\n userCenterId: this.userCenterId,\n cartId: cartId,\n });\n\n this.shop_spec.goodsData[0].shopGoodsData.splice(cartId, 1);\n this.$message.success(\"操作成功\");\n this.getCartByUser();\n })\n .catch(() => {\n this.$message({\n type: \"info\",\n message: \"已取消操作\",\n });\n });\n },\n async getCartByUser(userCenterId) {\n const data = await getCartByUser({\n userCenterId: userCenterId || this.userCenterId,\n userCouponId: this.userCouponId,\n });\n if (Array.isArray(data.data)) {\n this.shop_spec = {\n subPrice: 0,\n rem_money: 0,\n goodsData: [],\n };\n return;\n }\n this.shop_spec = data.data;\n if (data.data.coupon) {\n data.data.coupon.forEach((item) => {\n if (data.data.useCoupon.id) {\n item.checked = item.id === data.data.useCoupon.id;\n } else {\n item.checked = false;\n }\n });\n this.discount_list = data.data.coupon;\n }\n },\n // 清空购物车\n async clearCart() {\n const data = await clearCartCashier({\n userCenterId: this.userCenterId,\n });\n\n this.shop_spec.goodsData[0].shopGoodsData = [];\n this.getCartByUser();\n },\n // 核销码输入键盘\n async numFnOne(e, num) {\n if (![\"x\", \"清除\", \"确定\"].includes(num)) {\n this.num_list.push(num);\n }\n if (num === \"x\") {\n this.keyboard_key = this.keyboard_key.substring(\n 0,\n this.keyboard_key.length - 1\n );\n } else if (num === \"清除\") {\n this.keyboard_key = \"\";\n this.num_list = [];\n } else if (num === \"确定\") {\n const data = await getOrderByVerifyCode({\n verifyCode: this.keyboard_key,\n });\n\n this.writeoff_list = data.data;\n this.keyboard_key = \"\";\n } else {\n this.keyboard_key += num;\n }\n },\n // 现金支付输入键盘\n payCalculator(e) {\n const targetNum = e.target.textContent;\n let num = this.shop_spec.totalMoney.toString();\n\n if (targetNum === \"清除\") {\n num = 0;\n } else if (targetNum === \"确定\") {\n this.paymentFn();\n } else if (targetNum === \"x\") {\n num = num.substring(0, num.length - 1);\n } else {\n num += targetNum;\n }\n this.shop_spec.totalMoney = num;\n },\n // 订单点击事件\n orderEvent(item) {\n this.getOrderInfoById(item.userCenterId, item.id);\n },\n diaLog() {\n this.dialogVisible = true;\n },\n deleteFn() {\n this.price_change = false;\n },\n\n listFn() {\n this.tip_num = 3;\n this.getAllOrderOrder();\n },\n\n // 订单列表分页切换\n oPageChange(page) {\n this.o_page = page;\n this.getAllOrderOrder();\n },\n // 订单搜索\n serchOrder() {\n this.oPageChange(1);\n },\n // 订单列表\n async getAllOrderOrder() {\n const data = await getAllOrderOrder({\n page: this.o_page,\n pageSize: this.o_pageSize,\n search: {\n orderType: 24,\n shopId: this.now_sel_shop.id,\n no: this.order_no_key,\n },\n });\n\n this.order_list = data.data;\n this.o_total = data.pageTotal;\n },\n // 创建订单\n orderCashier() {\n if (!this.userCenterId) {\n this.$confirm(\"订单未绑定会员,是否需要绑定会员进行结算?\", \"提示\", {\n confirmButtonText: \"会员登录\",\n cancelButtonText: \"跳过\",\n type: \"warning\",\n })\n .then(() => {\n this.activeName = \"second\";\n })\n .catch(() => {\n this.collection = true;\n this.re_charge = false;\n this.price_change = false;\n });\n } else {\n this.collection = true;\n this.re_charge = false;\n this.price_change = false;\n }\n },\n async paymentFn() {\n if ([5, 6].includes(this.pay_type)) {\n if (!this.pay_account_num) {\n this.$message.warning(\"请选择结算账户\");\n return;\n }\n }\n const guideUids = this.guide\n .map((item) => {\n return item.userCenterId;\n })\n .join(\",\");\n const accountList = [\n {\n accountId: this.pay_account_id,\n accountNumber: this.pay_account_num,\n accountName: this.pay_account_name,\n money: this.shop_spec.totalMoney,\n discountMoney: this.$NP.plus(\n this.shop_spec.preferential || 0,\n this.shop_spec.subPrice || 0\n ),\n finalMoney: this.shop_spec.payMoney,\n payWay: 4,\n remark: \"\",\n },\n ];\n\n const data = await cashierOrder({\n accountList: accountList,\n currentAccountName: this.pay_account_name,\n payType: this.pay_type,\n totalMoney: this.shop_spec.totalMoney,\n guideUids: guideUids,\n payAmount: this.shop_spec.payMoney,\n customerId: this.customerId,\n userCenterId: this.userCenterId,\n customerName: this.customerName,\n customerType: this.customerType,\n source: 4,\n deliveryType: 2,\n isEnablePrint: 4,\n orderRemark: this.textarea,\n goodsData: this.shop_spec,\n operatorName: this.userName,\n });\n\n this.now_order_id = data.data;\n this.payment = true;\n this.collection = false;\n this.getCartByUser();\n if (this.input) {\n this.searchCustomerDetails();\n }\n },\n // 改价\n async getCart(itemP) {\n this.collection = false;\n this.price_change = true;\n this.re_charge = false;\n this.detailed = false;\n this.cart_primary = itemP;\n },\n async primaryCart() {\n const data = await changePrice({\n userCenterId: this.userCenterId,\n goodsId: this.cart_primary.goodsId,\n skuId: this.cart_primary.skuId,\n changePrice: this.price_num,\n });\n\n this.$message.success(\"操作成功\");\n this.getCartByUser();\n },\n // 弹窗关闭\n close() {\n this.reCharge = false;\n this.integral = false;\n this.shopGuide = false;\n },\n // 充值\n reChargeFn() {\n this.reCharge = false;\n this.re_charge = true;\n },\n // 店铺列表\n async getAllShop() {\n const data = await getAllShop({\n page: this.page,\n pageSize: this.pageSize,\n });\n\n this.shop_select = data.data;\n this.shop_visible = true;\n },\n // 收银台登录 交接登陆记录\n async loggerConnect() {\n const data = await loggerConnect({\n shopId: this.now_sel_shop.id,\n });\n\n this.cashier_staff = data.data;\n this.shopChange();\n },\n // 核销订单\n async primaryOrder() {\n const data = await OrderVerification(this.writeoff_list.id);\n this.$message.success(\"核销成功\");\n },\n // 选择店铺\n selShop(row) {\n this.now_shop = row;\n },\n // 选择店铺 确认\n shopConfirm() {\n this.now_sel_shop = this.now_shop;\n this.shop_visible = false;\n // 交接登陆记录\n this.loggerConnect();\n this.changeCashierShop(this.now_sel_shop);\n },\n // 获取订单详情\n async getOrderInfoById(userCenterId, id) {\n const { data } = await getOrderInfoById(userCenterId, {\n orderId: id,\n });\n\n this.order_detail = data;\n this.now_order_id = id;\n },\n // 挂单\n async saveEntryData() {\n const data = await saveEntryData({\n shopId: this.now_sel_shop.id,\n entryData: this.shop_spec.goodsData,\n });\n\n this.$message.success(\"操作成功\");\n // 执行挂单后,清空当前购物车\n this.clearCart();\n this.rest_entry = !this.rest_entry;\n },\n // 抹零\n async delZreo() {\n const data = await getCartByUser({\n userCenterId: this.userCenterId,\n isZero: Number(this.shop_spec.rem_money) !== 0 ? 4 : 5,\n });\n this.shop_spec = data.data;\n },\n // 优惠活动\n async activityAll() {\n const data = await activityAll({\n userCenterId: this.userCenterId,\n page: 1,\n pageSize: 30,\n shopId: this.now_sel_shop.id,\n });\n\n this.discount_list = data.data.map((item) => {\n return {\n ...item,\n checked: false,\n };\n });\n },\n // 打开结算账户\n openAccountModel(type) {\n this.pay_account_type = type;\n this.account_show = true;\n },\n\n // 选择结算账户\n accountsel(val) {\n if (this.pay_account_type) {\n this.pay_account_id = val[0].id;\n this.pay_account_num = val[0].accountNumber;\n this.pay_account_name = val[0].name;\n } else {\n this.account_id = val[0].id;\n this.account_num = val[0].accountNumber;\n this.accountName = val[0].name;\n }\n },\n // 直接收款\n addReceived() {\n if (!this.account_id) {\n this.$message.warning(\"请选择结算账户\");\n return;\n }\n if (!this.userCenterId) {\n this.$confirm(\"订单未绑定会员,是否需要绑定会员进行结算?\", \"提示\", {\n confirmButtonText: \"会员登录\",\n cancelButtonText: \"跳过\",\n type: \"warning\",\n })\n .then(() => {\n this.activeName = \"second\";\n })\n .catch(() => {\n this.addReceivedTwo();\n });\n } else {\n this.addReceivedTwo();\n }\n },\n async addReceivedTwo() {\n const accountList = [\n {\n accountId: this.account_id,\n accountNumber: this.account_num,\n accountName: this.accountName,\n money: this.input_two,\n discountMoney: 0,\n finalMoney: this.input_two,\n payWay: 4,\n remark: \"\",\n },\n ];\n const params = {\n customerId: this.customerId,\n customerName: this.customerName,\n sourceNo: \"\",\n sourceNoMoney: \"\",\n currentAccountName: this.userName,\n financeType: \"销售收款\",\n financeTypeId: 2,\n shopId: this.now_sel_shop.id,\n money: this.vip_info.money,\n shopName: this.now_sel_shop.name,\n receiptTime: parseInt(new Date() / 1000),\n createTime: \"\",\n accountList: accountList,\n };\n\n const data = await addReceived(params);\n\n this.$message.success(\"收款成功\");\n if (this.input) {\n this.searchCustomerDetails();\n }\n this.input_two = \"\";\n },\n // 切换会员\n changeUser() {\n this.collection = false;\n this.re_charge = false;\n this.vip_login = false;\n this.vip_handle = false;\n this.userCenterId = \"\";\n this.customerId = \"\";\n this.customerName = \"\";\n this.customerType = \"\";\n this.vip_info = {\n createTime: \"\",\n birthday: \"\",\n price: \"\",\n integral: \"\",\n remarks: \"\",\n defaultAddress: {\n area: {\n provinceName: \"\",\n cityName: \"\",\n districtName: \"\",\n address: \"\",\n },\n },\n remark: \"\",\n };\n },\n // 单据小票打印\n async toPrint() {\n const data = await toPrint({\n objectId: this.now_order_id,\n objectType: 1, // 销售单\n });\n\n this.$message({\n type: \"success\",\n message: \"操作成功\",\n });\n },\n // 优惠券 勾选\n couponChange(val, row) {\n const target = this.$_common.deepClone(this.discount_list);\n target.forEach((item, index) => {\n if (val) {\n item.checked = item.id === row.id;\n } else {\n item.checked = false;\n }\n });\n this.discount_list = target;\n this.userCouponId = val ? row.id : \"\";\n this.getCartByUser();\n },\n },\n };\n</script>\n<style>\n .cashier .el-tabs__item {\n height: 60px !important;\n line-height: 60px !important;\n font-size: 14px !important;\n font-weight: 500 !important;\n }\n\n .cashier .el_tabs--top {\n width: 100%;\n }\n\n .member_info .el-form-item {\n margin-bottom: 0;\n }\n\n .member_info .el-form-item__label {\n color: #333;\n }\n</style>\n<style scoped>\n .CashierShop {\n background-color: #f7f7f7;\n height: 100vh;\n color: #333333;\n font-size: 14px;\n }\n\n .grid-content {\n background-color: #fff;\n height: calc(99vh - 90px);\n margin: 0 10px;\n }\n\n .list_info {\n width: 12%;\n height: calc(99vh - 90px);\n border-right: 1px solid #f7f7f7;\n float: left;\n font-size: 14px;\n cursor: pointer;\n }\n\n .list_info p {\n height: 68px;\n line-height: 68px;\n border-bottom: 1px solid #f7f7f7;\n text-align: center;\n margin: 0;\n }\n\n .list_content {\n border-bottom: 1px solid #f7f7f7;\n height: 60px;\n line-height: 60px;\n float: left;\n width: 86%;\n }\n\n .tips {\n padding-top: 200px;\n text-align: center;\n color: #b2b2b2;\n font-size: 12px;\n font-weight: 500;\n }\n\n .tip {\n font-size: 16px;\n color: #666;\n width: 580px;\n margin: 80px auto 20px;\n line-height: 20px;\n }\n\n .tip p {\n color: #999;\n font-size: 14px;\n margin: 5px 0;\n }\n\n .keyboard {\n display: flex;\n align-items: center;\n flex-direction: column;\n }\n\n .keyboard-input_one {\n width: 596px;\n height: 60px;\n margin: 0 auto;\n }\n\n .keyboard-input-input {\n height: 60px;\n border: 1px solid #dcdee2;\n border-radius: 4px;\n font-size: 18px;\n color: #808695;\n padding: 6px 18px;\n }\n\n .input-box {\n width: 590px;\n margin: 0 auto;\n position: relative;\n }\n\n .input-unit {\n position: absolute;\n right: 24px;\n font-size: 18px;\n top: 50%;\n transform: translateY(-50%);\n }\n\n .input-input {\n height: 60px;\n font-size: 18px;\n padding: 6px 18px;\n display: inline-block;\n width: 590px;\n border: 1px solid #dcdee2;\n border-radius: 4px;\n color: #808695;\n cursor: text;\n }\n\n .tip_info {\n font-size: 14px;\n font-weight: bold;\n border-bottom: 1px solid #f2f2f2;\n height: 60px;\n line-height: 60px;\n padding-left: 16px;\n margin: 0;\n }\n\n .color_size {\n font-size: 12px;\n color: #999;\n }\n .el-tabs__item {\n height: 60px;\n line-height: 60px;\n }\n\n .shop_info {\n display: inline-block;\n width: 276px;\n border-radius: 4px;\n border: 1px solid #ededed;\n margin: 20px 10px 15px 10px;\n padding: 12px 12px 12px 10px;\n cursor: pointer;\n color: #333333;\n line-height: 18px;\n }\n\n .shop_info img {\n border: 1px solid #f4f4f4;\n border-radius: 4px;\n width: 68px;\n height: 68px;\n }\n\n .shop_info .goods-info {\n width: calc(100% - 80px);\n margin-left: 10px;\n }\n\n .goods-info > p {\n padding-bottom: 5px;\n color: #333333;\n height: 36px;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n }\n\n .head_back {\n color: #ccc;\n font-size: 14px;\n cursor: pointer;\n height: 50px;\n line-height: 50px;\n padding-left: 20px;\n }\n\n .head_back .head-back-tit {\n color: #333333;\n }\n\n .head_back .head_line {\n height: 20px;\n width: 1px;\n background-color: #ededed;\n display: inline-block;\n margin: 4px 10px -6px 10px;\n }\n\n .select_icon {\n height: 40px;\n width: 40px;\n border-radius: 50%;\n display: inline-block;\n margin: 10px 12px;\n }\n\n .shop {\n cursor: pointer;\n border: 1px solid #ededed;\n width: 248px;\n border-radius: 4px;\n margin-right: 20px;\n margin-bottom: 20px;\n display: flex;\n align-items: center;\n padding-right: 10px;\n position: relative;\n float: left;\n }\n\n .shop-on .el-icon-check {\n width: 18px;\n height: 18px;\n line-height: 18px;\n display: block;\n background: #f56c6c;\n border-radius: 50%;\n color: #fff;\n font-size: 12px;\n text-align: center;\n transform: scale(0.7);\n position: absolute;\n bottom: -9px;\n right: -9px;\n }\n\n .icon_check .el-icon-check {\n width: 100px;\n height: 100px;\n line-height: 100px;\n display: block;\n background: #fb6638;\n border-radius: 50%;\n color: #fff;\n font-size: 60px;\n font-weight: bold;\n text-align: center;\n transform: scale(0.7);\n margin: 0 auto;\n }\n .price {\n font-size: 26px;\n font-weight: 800;\n }\n\n .check_vip_price {\n font-size: 20px;\n font-weight: 800;\n color: #333;\n text-align: center;\n padding-top: 20px;\n }\n\n .pay_type {\n margin: 32px auto 0;\n text-align: center;\n }\n\n .button_vip {\n float: right;\n margin-right: 20px;\n margin-top: 10px;\n }\n\n .comment_info p {\n line-height: 36px;\n }\n\n .order-ul {\n margin-top: 10px;\n overflow-y: auto;\n height: calc(99vh - 280px);\n }\n\n .order-item {\n border-bottom: 1px solid #eeeeee;\n font-size: 14px;\n line-height: 38px;\n cursor: pointer;\n }\n\n .order-input-view {\n width: 92%;\n margin: 0 auto;\n }\n\n .o-goods-img img {\n width: 100%;\n height: 100%;\n display: block;\n border-radius: 4px;\n }\n\n .card-goods-li {\n border-bottom: 1px solid #f2f2f2;\n padding: 10px;\n line-height: 18px;\n }\n\n .card-goods-img {\n margin-right: 20px;\n padding-top: 12px;\n }\n\n .card-goods-img > img {\n border-radius: 4px;\n border: 1px solid #f2f2f2;\n }\n\n .card-goods-info {\n width: calc(100% - 80px);\n }\n\n .c-goods-name {\n padding-bottom: 10px;\n }\n\n .c-goods-num {\n font-size: 12px;\n display: flex;\n }\n\n .c-goods-num > div {\n flex: 3;\n line-height: 28px;\n }\n\n .price-color {\n color: #f56c6c;\n }\n\n .pay-tip {\n text-align: center;\n color: #999999;\n margin-top: 50px;\n }\n\n .pay-box {\n height: calc(99vh - 100px);\n overflow: auto;\n position: relative;\n }\n\n .right-bottom {\n position: absolute;\n bottom: 0;\n width: 100%;\n left: 0;\n }\n\n .btn-group {\n padding: 10px 20px;\n border-top: 1px solid #f2f2f2;\n text-align: right;\n background-color: #ffffff;\n }\n .pay-tip > .balance {\n text-align: left;\n width: 280px;\n padding: 17px 16px;\n background: #fef2ed;\n border-radius: 4px;\n color: #333;\n margin: 40px auto 0;\n }\n .pay-tip > .balance .price {\n font-size: 20px;\n font-weight: 800;\n color: #fb6638;\n margin-top: 8px;\n }\n .pay-tip > .balance .tip {\n font-size: 12px;\n color: #999;\n margin-top: 8px;\n }\n .change-price {\n position: relative;\n height: calc(99vh - 130px);\n overflow: auto;\n }\n .change-price .btn-group {\n position: absolute;\n width: 100%;\n bottom: 0;\n left: 0;\n text-align: right;\n }\n .list_info_p {\n background: rgb(236, 245, 255);\n color: #409eff;\n }\n</style>\n"]}]}
|