jinx 1 рік тому
батько
коміт
767e7dd0b3
13 змінених файлів з 13846 додано та 0 видалено
  1. 1 0
      css/element-ui.css
  2. BIN
      css/fonts/element-icons.woff
  3. 154 0
      css/index.css
  4. BIN
      files/随心装用户使用手册V1.0.pdf
  5. BIN
      img/help.png
  6. 1 0
      img/help.svg
  7. BIN
      img/logo.png
  8. 3 0
      js/axios.min.js
  9. 1 0
      js/element-ui_2.15.14.js
  10. 12014 0
      js/vue.js
  11. 275 0
      register.html
  12. 253 0
      reset.html
  13. 1144 0
      term.html

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
css/element-ui.css


BIN
css/fonts/element-icons.woff


+ 154 - 0
css/index.css

@@ -0,0 +1,154 @@
+[v-cloak] {
+  display: none;
+}
+* {
+  margin: 0;
+  padding: 0;
+}
+body {
+  /* background: #f2f2f2; */
+}
+.content {
+}
+.el-header {
+  box-shadow: 0 3px 5px #0000000d;
+  /* border-bottom: 1px solid #cfcaca; */
+  /* height: 100px; */
+  overflow: hidden;
+  height: auto !important;
+  padding: 0 !important;
+}
+.header {
+  width: 100%;
+  /* max-width: 460px; */
+  max-width: 1200px;
+
+  margin: 0 auto;
+  height: 88px;
+  padding: 20px 20px;
+
+  background: #fff;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  box-sizing: border-box;
+}
+.el-footer {
+  position: absolute;
+  margin-top: 100px;
+  bottom: 0;
+  left: 0;
+  color: #999;
+  font-size: 12px;
+  text-align: center;
+  width: 100%;
+  line-height: 60px;
+}
+.el-footer.mobile {
+  position: relative;
+  margin-top: 0px;
+  line-height: 20px;
+}
+
+.header .logo img {
+  width: 190px;
+  height: auto;
+  /* cursor: pointer; */
+}
+.header.mobile {
+  height: 60px;
+}
+.header.mobile .logo img {
+  width: 110px;
+}
+.header .download {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+.download .use-btn {
+  font-size: 12px;
+  text-decoration: underline;
+  margin-right: 10px;
+  cursor: pointer;
+}
+.download .use-btn a {
+  color: #000;
+}
+.download .use-btn a:active {
+  color: #000;
+}
+.form-box {
+  max-width: 460px;
+  margin: 0 auto;
+}
+.invite-box {
+  position: relative;
+}
+.invite-box .icon {
+  width: 24px;
+  height: 24px;
+  background: url(../img/help.svg);
+  background-size: 100% 100%;
+  position: absolute;
+  right: -30px;
+  top: 50%;
+  transform: translateY(-50%);
+  cursor: pointer;
+}
+.invite-box .icon p {
+  position: absolute;
+  white-space: nowrap;
+  left: 50%;
+  top: -40px;
+  transform: translateX(-50%);
+  font-size: 12px;
+  display: none;
+}
+.invite-box .icon:hover p {
+  display: block;
+}
+/* .el-form > div {
+  margin: 20px 0;
+} */
+.el-form > div .text {
+  font-size: 14px;
+}
+.el-form > div .text > span {
+  cursor: pointer;
+}
+.el-form > div .text > span:hover {
+  color: #409eff;
+}
+.el-form > div .el-input-group__prepend {
+  width: 40px;
+}
+.sms-box {
+  width: 80px;
+  padding: 12px 5px !important;
+}
+.el-input-group__append {
+  overflow: hidden;
+}
+
+.success-box {
+  max-width: 460px;
+  margin: 150px auto 0;
+}
+.success-box h3,
+.success-box p {
+  margin-bottom: 10px;
+  text-align: center;
+}
+.success-box p {
+  margin-bottom: 20px;
+}
+
+@media screen and (max-width: 500px) {
+  .el-message {
+    min-width: 300px !important;
+  }
+  .el-dialog__body {
+    padding: 10px 10px !important;
+  }
+}

BIN
files/随心装用户使用手册V1.0.pdf



Різницю між файлами не показано, бо вона завелика
+ 1 - 0
img/help.svg



Різницю між файлами не показано, бо вона завелика
+ 3 - 0
js/axios.min.js


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
js/element-ui_2.15.14.js


Різницю між файлами не показано, бо вона завелика
+ 12014 - 0
js/vue.js


+ 275 - 0
register.html

@@ -0,0 +1,275 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
+    <title>随心装账号注册</title>
+    <link rel="icon" href="https://mall4cloud-1302178016.cos.ap-guangzhou.myqcloud.com/2023/09/19/30ab7ce544c94889b292b2997b19ae62" />
+    <!-- 引入样式 -->
+    <link rel="stylesheet" href="./css/index.css" />
+    <link rel="stylesheet" href="./css/element-ui.css" />
+    <!-- <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css" /> -->
+  </head>
+  <body>
+    <div id="app" v-cloak>
+      <el-container>
+        <el-header>
+          <div class="header" :class="{mobile:isMobile}">
+            <div class="logo"><img src="./img/logo.png" alt="" /></div>
+            <div class="download">
+              <span class="use-btn">
+                <a target="downloadFile" download="随心装用户使用手册V1.0.pdf" href="./files/随心装用户使用手册V1.0.pdf">使用手册</a>
+              </span>
+              <el-button type="primary" size="small" @click="downloadFiles('app')">立即下载</el-button>
+            </div>
+          </div></el-header
+        >
+        <el-main>
+          <h3 style="text-align: center; margin: 20px auto 40px">随心装账号注册</h3>
+          <div class="form-box" v-if="!success">
+            <el-form ref="ruleForm" :model="ruleForm" label-width="0px" :rules="rules" ref="ruleForm" :model="ruleForm">
+              <el-form-item label="" prop="phoneNum">
+                <el-input maxLength="11" v-model="ruleForm.phoneNum" placeholder="请输入手机号码"> </el-input>
+              </el-form-item>
+              <el-form-item label="" prop="smsCode">
+                <el-input placeholder="请输入验证码" v-model="ruleForm.smsCode">
+                  <el-button v-if="!smsTimeOut" class="sms-box" slot="append" @click="getSmsCode">获取验证码</el-button>
+                  <el-button v-else class="sms-box" style="cursor: auto" slot="append">{{smsTimeOut}}</el-button>
+                </el-input>
+              </el-form-item>
+
+              <el-form-item class="invite-box" label="" prop="inviteCode">
+                <el-input v-model="ruleForm.inviteCode" placeholder="请输入邀请码"></el-input>
+                <div v-if="!isMobile" class="icon">
+                  <p>邀请码请联系客服获取400-6698025</p>
+                </div>
+              </el-form-item>
+              <el-form-item label="" prop="password">
+                <el-input type="password" v-model="ruleForm.password" placeholder="设置密码"></el-input>
+              </el-form-item>
+
+              <el-form-item label="" prop="checkPassword">
+                <el-input type="password" v-model="ruleForm.checkPassword" placeholder="重复密码"></el-input>
+              </el-form-item>
+              <div style="margin-bottom: 20px">
+                <el-checkbox v-model="checked"></el-checkbox>
+                <span class="text">我已阅读并同意<span style="color: #409eff" @click="dialogVisible=true">《服务条款》</span></span>
+              </div>
+              <el-form-item>
+                <el-button style="width: 100%" :disabled="!checked" type="primary" @click="onSubmit('ruleForm')">注册</el-button>
+              </el-form-item>
+            </el-form>
+          </div>
+
+          <div class="success-box" v-else>
+            <h3>恭喜您,账号已经注册成功</h3>
+            <p>您可在右上方下载《使用手册》和下载安装包</p>
+            <div style="text-align: center">
+              <el-button style="width: 100%" type="primary" @click="success=false">好的</el-button>
+            </div>
+          </div>
+        </el-main>
+        <el-footer :class="{mobile:isMobile}"><div data-v-b04a7deb="" class="copyright">Copyright © 2022 4DAGE Co., Ltd. All rights reserved</div></el-footer>
+      </el-container>
+
+      <el-dialog title="随心装服务条款" :visible.sync="dialogVisible" :fullscreen="isMobile" width="80%">
+        <div :style="`width: 100%; height: ${isMobile? '80vh':'60vh'}`">
+          <iframe style="width: 100%; height: 100%" frameborder="no" allowtransparency="yes" src="./term.html"></iframe>
+        </div>
+
+        <!-- <span slot="footer" class="dialog-footer">
+          <el-button @click="dialogVisible = false">取 消</el-button>
+          <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
+        </span> -->
+      </el-dialog>
+    </div>
+
+    <script src="./js/vue.js"></script>
+    <!-- 引入组件库 -->
+    <script src="./js/element-ui_2.15.14.js"></script>
+    <script src="./js/axios.min.js"></script>
+
+    <script>
+      // var baseUrl = "http://face3d.4dage.com:28000/mall4cloud-sxz/magic/";
+      var baseUrl = "/";
+      var vm = new Vue({
+        el: "#app",
+        data() {
+          var validatePhoneNum = (rule, value, callback) => {
+            if (value === "") {
+              callback(new Error("请输入手机号码"));
+            } else {
+              const reg = /^1\d{10}$/;
+              if (reg.test(value)) {
+                callback();
+              } else {
+                return callback(new Error("请输入正确的手机号"));
+              }
+            }
+          };
+          var validatePass = (rule, value, callback) => {
+            if (value === "") {
+              callback(new Error("请输入密码"));
+            } else {
+              if (this.ruleForm.checkPassword !== "") {
+                this.$refs.ruleForm.validateField("checkPassword");
+              }
+              callback();
+            }
+          };
+          var validatePass2 = (rule, value, callback) => {
+            if (value === "") {
+              callback(new Error("请再次输入密码"));
+            } else if (value !== this.ruleForm.password) {
+              callback(new Error("两次输入密码不一致!"));
+            } else {
+              callback();
+            }
+          };
+          return {
+            downloadUrl: "https://4d-tjw.oss-cn-shenzhen.aliyuncs.com/domain/eHome/%E9%9A%8F%E5%BF%83%E8%A3%85%E5%8F%91%E7%89%88/HouseDesignerApi.zip",
+            dialogVisible: false,
+            isMobile: false,
+            smsTimeOut: null,
+            checked: false,
+            success: false,
+            ruleForm: {
+              phoneNum: "",
+              smsCode: "",
+              inviteCode: "",
+              password: "",
+              checkPassword: "",
+            },
+            rules: {
+              phoneNum: [{ required: true, validator: validatePhoneNum, trigger: "blur" }],
+              smsCode: [{ required: true, message: "请输入验证码", trigger: "blur" }],
+              inviteCode: [{ required: true, message: "请输入邀请码", trigger: "blur" }],
+              password: [{ required: true, validator: validatePass, trigger: "blur" }],
+              checkPassword: [{ required: true, validator: validatePass2, trigger: "blur" }],
+            },
+          };
+        },
+        methods: {
+          downloadFiles(type) {
+            if (type == "app") {
+              if (this.isMobile) {
+                this.$message({
+                  message: "请在电脑端下载和使用随心装!",
+                  type: "warning",
+                });
+                return;
+              }
+              window.open(this.downloadUrl);
+            }
+          },
+          onSubmit(formName) {
+            this.$refs[formName].validate((valid) => {
+              if (valid) {
+                let data = JSON.parse(JSON.stringify(this.ruleForm));
+                delete data.checkPassword;
+                axios
+                  .post(baseUrl + "mall4cloud-sxz/magic/api/promotion/signUp", data)
+                  .then((res) => {
+                    if (res.data.code == 0) {
+                      this.$message({
+                        message: "注册成功!",
+                        type: "success",
+                      });
+                      this.success = true;
+                      this.$refs[formName].resetFields();
+                    } else {
+                      this.$message({
+                        message: res.data.msg,
+                        type: "warning",
+                      });
+                    }
+                  })
+                  .catch((err) => {
+                    this.$message({
+                      message: "网络异常!",
+                      type: "error",
+                    });
+                  });
+              } else {
+                console.log("error submit!!");
+                return false;
+              }
+            });
+          },
+          getSmsCode(e) {
+            this.$refs["ruleForm"].validateField(["phoneNum"], (valid) => {
+              if (!valid) {
+                // 校验通过后的操作;
+                axios
+                  .post(baseUrl + "mall4cloud-sxz/magic/api/user/getSmsCode", { phoneNum: this.ruleForm.phoneNum, type: "register" })
+                  .then((res) => {
+                    if (res.data.code == 0) {
+                      this.$message({
+                        message: "获取成功,请留意短信!",
+                        type: "success",
+                      });
+                      this.setSmsTimeout();
+                    } else {
+                      this.$message({
+                        message: res.data.msg,
+                        type: "warning",
+                      });
+                    }
+                  })
+                  .catch((err) => {
+                    this.$message({
+                      message: "网络异常!",
+                      type: "error",
+                    });
+                  });
+              } else {
+                // console.log("校验失败");
+
+                return false;
+              }
+            });
+          },
+          setSmsTimeout() {
+            if (!this.smsTimeOut) {
+              this.smsTimeOut = 60;
+              let t = setInterval(() => {
+                this.smsTimeOut--;
+                if (this.smsTimeOut <= 0) {
+                  this.smsTimeOut = null;
+                  clearInterval(t);
+                  t = null;
+                }
+              }, 1000);
+            }
+          },
+        },
+        created() {
+          var is_mobi = navigator.userAgent.toLowerCase().match(/(ipod|iphone|android|coolpad|mmp|smartphone|midp|wap|xoom|symbian|j2me|blackberry|wince)/i) != null;
+
+          //检测是否移动设备来访
+          function browserRedirect() {
+            var sUserAgent = navigator.userAgent.toLowerCase();
+            var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
+            var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
+            var bIsMidp = sUserAgent.match(/midp/i) == "midp";
+            var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
+            var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
+            var bIsAndroid = sUserAgent.match(/android/i) == "android";
+            var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
+            var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
+            if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
+              return true;
+            } else {
+              return false;
+            }
+          }
+          this.isMobile = browserRedirect();
+        },
+        mounted() {},
+
+        destroyed() {},
+      });
+    </script>
+  </body>
+</html>

+ 253 - 0
reset.html

@@ -0,0 +1,253 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
+    <title>随心装密码重置</title>
+    <link rel="icon" href="https://mall4cloud-1302178016.cos.ap-guangzhou.myqcloud.com/2023/09/19/30ab7ce544c94889b292b2997b19ae62" />
+    <!-- 引入样式 -->
+    <link rel="stylesheet" href="./css/index.css" />
+    <link rel="stylesheet" href="./css/element-ui.css" />
+    <!-- <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css" /> -->
+  </head>
+  <body>
+    <div id="app" v-cloak>
+      <el-container>
+        <el-header>
+          <div class="header" :class="{mobile:isMobile}">
+            <div class="logo"><img src="./img/logo.png" alt="" /></div>
+            <div class="download">
+              <span class="use-btn">
+                <a target="downloadFile" download="随心装用户使用手册V1.0.pdf" href="./files/随心装用户使用手册V1.0.pdf">使用手册</a>
+              </span>
+              <el-button type="primary" size="small" @click="downloadFiles('app')">立即下载</el-button>
+            </div>
+          </div></el-header
+        >
+        <el-main>
+          <h3 style="text-align: center; margin: 20px auto 40px">密码重置</h3>
+          <div class="form-box" v-if="!success">
+            <el-form ref="ruleForm" :model="ruleForm" label-width="0px" :rules="rules" ref="ruleForm" :model="ruleForm">
+              <el-form-item label="" prop="phoneNum">
+                <el-input maxLength="11" v-model="ruleForm.phoneNum" placeholder="请输入手机号码"> </el-input>
+              </el-form-item>
+              <el-form-item label="" prop="smsCode">
+                <el-input placeholder="请输入验证码" v-model="ruleForm.smsCode">
+                  <el-button v-if="!smsTimeOut" class="sms-box" slot="append" @click="getSmsCode">获取验证码</el-button>
+                  <el-button v-else class="sms-box" style="cursor: auto" slot="append">{{smsTimeOut}}</el-button>
+                </el-input>
+              </el-form-item>
+
+              <el-form-item label="" prop="password">
+                <el-input type="password" v-model="ruleForm.password" placeholder="设置密码"></el-input>
+              </el-form-item>
+
+              <el-form-item label="" prop="checkPassword">
+                <el-input type="password" v-model="ruleForm.checkPassword" placeholder="重复密码"></el-input>
+              </el-form-item>
+
+              <el-form-item>
+                <el-button style="width: 100%" type="primary" @click="onSubmit('ruleForm')">重置</el-button>
+              </el-form-item>
+            </el-form>
+          </div>
+
+          <div class="success-box" v-else>
+            <h3>恭喜您,密码重置成功</h3>
+            <p>请前往随心装客户端登录</p>
+            <div style="text-align: center">
+              <el-button style="width: 100%" type="primary" @click="success=false">好的</el-button>
+            </div>
+          </div>
+        </el-main>
+        <el-footer :class="{mobile:isMobile}"><div data-v-b04a7deb="" class="copyright">Copyright © 2022 4DAGE Co., Ltd. All rights reserved</div></el-footer>
+      </el-container>
+    </div>
+
+    <script src="./js/vue.js"></script>
+    <!-- 引入组件库 -->
+    <script src="./js/element-ui_2.15.14.js"></script>
+    <script src="./js/axios.min.js"></script>
+
+    <script>
+      // var baseUrl = "http://face3d.4dage.com:28000/mall4cloud-sxz/magic/";
+      var baseUrl = "/";
+      var vm = new Vue({
+        el: "#app",
+        data() {
+          var validatePhoneNum = (rule, value, callback) => {
+            if (value === "") {
+              callback(new Error("请输入手机号码"));
+            } else {
+              const reg = /^1\d{10}$/;
+              if (reg.test(value)) {
+                callback();
+              } else {
+                return callback(new Error("请输入正确的手机号"));
+              }
+            }
+          };
+          var validatePass = (rule, value, callback) => {
+            if (value === "") {
+              callback(new Error("请输入密码"));
+            } else {
+              if (this.ruleForm.checkPassword !== "") {
+                this.$refs.ruleForm.validateField("checkPassword");
+              }
+              callback();
+            }
+          };
+          var validatePass2 = (rule, value, callback) => {
+            if (value === "") {
+              callback(new Error("请再次输入密码"));
+            } else if (value !== this.ruleForm.password) {
+              callback(new Error("两次输入密码不一致!"));
+            } else {
+              callback();
+            }
+          };
+          return {
+            downloadUrl: "https://4d-tjw.oss-cn-shenzhen.aliyuncs.com/domain/eHome/%E9%9A%8F%E5%BF%83%E8%A3%85%E5%8F%91%E7%89%88/HouseDesignerApi.zip",
+            dialogVisible: false,
+            isMobile: false,
+            smsTimeOut: null,
+            checked: false,
+            success: false,
+            ruleForm: {
+              phoneNum: "",
+              smsCode: "",
+              password: "",
+              checkPassword: "",
+            },
+            rules: {
+              phoneNum: [{ required: true, validator: validatePhoneNum, trigger: "blur" }],
+              smsCode: [{ required: true, message: "请输入验证码", trigger: "blur" }],
+              password: [{ required: true, validator: validatePass, trigger: "blur" }],
+              checkPassword: [{ required: true, validator: validatePass2, trigger: "blur" }],
+            },
+          };
+        },
+        methods: {
+          downloadFiles(type) {
+            if (type == "app") {
+              if (this.isMobile) {
+                this.$message({
+                  message: "请在电脑端下载和使用随心装!",
+                  type: "warning",
+                });
+                return;
+              }
+              window.open(this.downloadUrl);
+            }
+          },
+          onSubmit(formName) {
+            this.$refs[formName].validate((valid) => {
+              if (valid) {
+                let data = JSON.parse(JSON.stringify(this.ruleForm));
+                delete data.checkPassword;
+                axios
+                  .post(baseUrl + "mall4cloud-sxz/magic/api/user/updatePwd", data)
+                  .then((res) => {
+                    if (res.data.code == 0) {
+                      this.$message({
+                        message: "重置成功!",
+                        type: "success",
+                      });
+                      this.success = true;
+                      this.$refs[formName].resetFields();
+                    } else {
+                      this.$message({
+                        message: res.data.msg,
+                        type: "warning",
+                      });
+                    }
+                  })
+                  .catch((err) => {
+                    this.$message({
+                      message: "网络异常!",
+                      type: "error",
+                    });
+                  });
+              } else {
+                console.log("error submit!!");
+                return false;
+              }
+            });
+          },
+          getSmsCode(e) {
+            this.$refs["ruleForm"].validateField(["phoneNum"], (valid) => {
+              if (!valid) {
+                // 校验通过后的操作;
+                axios
+                  .post(baseUrl + "mall4cloud-sxz/magic/api/user/getSmsCode", { phoneNum: this.ruleForm.phoneNum, type: "update_pwd" })
+                  .then((res) => {
+                    if (res.data.code == 0) {
+                      this.$message({
+                        message: "获取成功,请留意短信!",
+                        type: "success",
+                      });
+                      this.setSmsTimeout();
+                    } else {
+                      this.$message({
+                        message: res.data.msg,
+                        type: "warning",
+                      });
+                    }
+                  })
+                  .catch((err) => {
+                    this.$message({
+                      message: "网络异常!",
+                      type: "error",
+                    });
+                  });
+              } else {
+                // console.log("校验失败");
+
+                return false;
+              }
+            });
+          },
+          setSmsTimeout() {
+            if (!this.smsTimeOut) {
+              this.smsTimeOut = 60;
+              let t = setInterval(() => {
+                this.smsTimeOut--;
+                if (this.smsTimeOut <= 0) {
+                  this.smsTimeOut = null;
+                  clearInterval(t);
+                  t = null;
+                }
+              }, 1000);
+            }
+          },
+        },
+        created() {
+          var is_mobi = navigator.userAgent.toLowerCase().match(/(ipod|iphone|android|coolpad|mmp|smartphone|midp|wap|xoom|symbian|j2me|blackberry|wince)/i) != null;
+
+          //检测是否移动设备来访
+          function browserRedirect() {
+            var sUserAgent = navigator.userAgent.toLowerCase();
+            var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
+            var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
+            var bIsMidp = sUserAgent.match(/midp/i) == "midp";
+            var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
+            var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
+            var bIsAndroid = sUserAgent.match(/android/i) == "android";
+            var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
+            var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
+            if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
+              return true;
+            } else {
+              return false;
+            }
+          }
+          this.isMobile = browserRedirect();
+        },
+        mounted() {},
+
+        destroyed() {},
+      });
+    </script>
+  </body>
+</html>

Різницю між файлами не показано, бо вона завелика
+ 1144 - 0
term.html