注册界面展示及源码(含输入框获焦失焦)

简介: 注册界面展示及源码(含输入框获焦失焦)

1.店铺管理员注册

jsp代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<!-- 引入C标签 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>店铺管理员注册</title>
<link rel="stylesheet" href="static/css/bootstrap.css">
<script src="static/js/jquery-3.6.0.js"></script>
<script src="static/js/bootstrap.min.js"></script>
<style>
body {
  background: url("static/img/绿叶.jpg") no-repeat;
  background-size: 100% 100%;
  background-attachment: fixed;
}
#odiv {
  height: 500px;
  width: 800px;
  margin: 0 auto;
  margin-top: 28px;
  padding-top: 50px;
  border-radius: 30px;
  box-shadow: 0 0 80px background;
  //
  白光
}
input, select {
  background: no-repeat;
  border-radius: 30px;
}
input::-webkit-input-placeholder {
  color: black;
}
#div {
  margin: 0 auto;
  height: 20px;
  width: 1000px;
}
button {
  color: white;
  background-color: white;
}
#emailmsg, #namemsg, #nichengmsg, #pwdmsg {
  font-size: 14px;
  color: red;
}
</style>
<script type="text/javascript">
/* 鼠标点击爱心特效 */
!function (e, t, a) {function r() {for (var e = 0; e < s.length; e++) s[e].alpha <= 0 ? (t.body.removeChild(s[e].el), s.splice(e, 1)) : (s[e].y--, s[e].scale += .004, s[e].alpha -= .013, s[e].el.style.cssText = "left:" + s[e].x + "px;top:" + s[e].y + "px;opacity:" + s[e].alpha + ";transform:scale(" + s[e].scale + "," + s[e].scale + ") rotate(45deg);background:" + s[e].color + ";z-index:99999");requestAnimationFrame(r)}function n() {var t = "function" == typeof e.onclick && e.onclick;e.onclick = function (e) {t && t(), o(e)}}function o(e) {var a = t.createElement("div");a.className = "heart", s.push({el: a,x: e.clientX - 5,y: e.clientY - 5,scale: 1,alpha: 1,color: c()}), t.body.appendChild(a)}function i(e) {var a = t.createElement("style");a.type = "text/css";try {a.appendChild(t.createTextNode(e))} catch (t) {a.styleSheet.cssText = e}t.getElementsByTagName("head")[0].appendChild(a)}function c() {return "rgb(" + ~~(255 * Math.random()) + "," + ~~(255 * Math.random()) + "," + ~~(255 * Math.random()) + ")"}var s = [];e.requestAnimationFrame = e.requestAnimationFrame || e.webkitRequestAnimationFrame || e.mozRequestAnimationFrame || e.oRequestAnimationFrame || e.msRequestAnimationFrame || function (e) {setTimeout(e, 1e3 / 60)}, i(".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: fixed;}.heart:after{top: -5px;}.heart:before{left: -5px;}"), n(), r()}(window, document);
  //获焦
  function getname() {//用户名输入框获焦
    let name = $("#name");
    if(!name.value){
      $("#namemsg").html("");
      $("#nbmsg").html("请输入你的用户名");
      return true;
    }
  }
  function getpassword() {//用户密码输入框获焦
    let password = $("#password");
    if(!password.value){
      $("#pwdmsg").html("");
      $("#namsg").html("请输入你的密码");
      return true;
    }
  }
  function getnumbers() {//手机号输入框获焦
    let number = $("#number");
    if(!number.value){
      $("#numbermsg").html("");
      $("#ncmsg").html("请输入你的手机号");
      return true;
    }
  }
  function getemail() {//电子邮箱输入框获焦
    let email = $("#number");
    if(!email.value){
      $("#emailmsg").html("");
      $("#ndmsg").html("请输入你的电子邮箱");
      return true;
    }
  }
  function getmycolname() {//身份证输入框获焦
    let mycolname = $("#mycolname");
    if(!mycolname.value){
      $("#shenfenmsg").html("");
      $("#nnmsg").html("请输入你的身份证号");
      return true;
    }
  }
  //失焦
  function losename() {//用户名输入框失焦
        let name = $("#name");
        if (!name.val()) {
          $("#nbmsg").html("");
          $("#namemsg").html("用户名不能为空");
          return false;
        }
        $("#nbmsg").html("");
        $("#namemsg").html("");
        return true;
      }
  function losepassword() {//用户密码输入框失焦
        let password = $("#password").val();
        var reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z\\W]{6,18}$/;
        if (password=="") {
          $("#namsg").html("");
          $("#pwdmsg").html("密码不能为空");
          return false;
        }else if(!(reg.test(password))){
          $("#namsg").html("");
          $("#pwdmsg").html("密码格式错误");
          return false;
        }
        $("#namsg").html("");
        $("#pwdmsg").html("");
        return true;
      } 
  function losenumbers() {//手机号失焦
    let number = $("#number").val();
    var reg = /^1[3|4|5|7|8]\d{9}$/;
    if(number==""){
      $("#ncmsg").html("");
      $("#numbermsg").html("电话号不可为空");
      return false;
    }else if(!reg.test(number)){
      $("#ncmsg").html("");
      $("#numbermsg").html("电话号格式错误,重新输入");
      return false;
    }
    $("#ncmsg").html("");
    $("#numbermsg").html("");
    return true;
  } 
  function loseemail() {//电子邮箱失焦
    let email = $("#email").val();
    var reg = /^\w+@\w+(\.[a-zA-Z]{2,3}){1,2}$/;
    if(email==""){
      $("#ndmsg").html("");
      $("#emailmsg").html("邮箱不能为空");
      return false;
    }else if(!(reg.test(email))){
      $("#ndmsg").html("");
      $("#emailmsg").html("邮箱格式有误");
      return false;
    }
    $("#ndmsg").html("");
    $("#emailmsg").html("");
    return true;
  }
  function losemycolname() {//身份证失焦
    let mycolname = $("#mycolname").val();
    var reg = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{3}[0-9Xx]$/;
    if(mycolname == ""){
      $("#nnmsg").html("");
      $("#shenfenmsg").html("身份证不能为空");
      return false;
    }else if(!(reg.test(mycolname))){
      $("#nnmsg").html("");
      $("#shenfenmsg").html("身份证格式有误");
      return false;
    }
    $("#nnmsg").html("");
    $("#shenfenmsg").html("");
    return true;
  }
  $(function() {
    $("#name").blur(function() {
        let shopadmin_name=$("#name").val();
        $.post("getShopadmin.do",{"shopadmin_name":shopadmin_name},function(data){
          if(data=="ok"){
            alert("该管理员已注册,请重新输入");
            $("#name").val("");
          }
        });
      })
    }); 
</script>
</head>
<body>
<form id="form" action="getShopadmin.do" method="post">
  <div>
    <img src="static/img/1.png" style="margin-left: 140px;">
  </div>
  <div id="odiv" style="text-align: center; margin-top: 35px;">
<!--下拉框 -->
    <select name=""
      onchange="javascript:window.open(this.options[this.selectedIndex].value)"
      style="margin-bottom: 15px;">
      <option value="#" selected="selected">请选择</option>
      <option value="Userregiser.jsp">用户注册</option>
    </select>
    <div style="margin-left: 180px;">
      <table border="0" style="margin-left: 20px;">
        <tr>
          <td style="font-size: 18px; padding-top: 10px;"><label>账户名:</label></td>
          <td><input type="text" onblur="losename()" onfocus="getname()"
            id="name"
            style="height: 25px; width: 270px; border-radius: 8px; transition: 0.2s; border: 0; border-bottom: 2px solid black; font-size: 14px; color: white;"
            placeholder="请输入你的真实姓名" />
          <td><span id="namemsg" style="height: 10px; color: red;"></span><span
            id="nbmsg" style="height: 10px; color: white;"></span></td>
          </td>
        </tr>
        <tr>
          <td style="padding-top: 25px; font-size: 18px"><label>账户密码:</label></td>
          <td><input id="password" type="password"
            onblur="losepassword()" onfocus="getpassword()"
            style="margin-top: 20px; height: 25px; width: 270px; border-radius: 8px; transition: 0.2s; border: 0; border-bottom: 2px solid black; font-size: 14px; color: white;"
            placeholder="由字母符号数字组成且在6~18位之间" />
          <td><span id="pwdmsg" style="height: 10px; color: red;"></span><span
            id="namsg" style="height: 10px; color: white;"></span></td>
        </tr>
        <tr>
          <td style="padding-top: 25px; font-size: 18px"><label>电话号码:</label></td>
          <td><input id="number" type="text" onblur="losenumbers()"
            onfocus="getnumbers()"
            style="margin-top: 20px; height: 25px; width: 270px; border-radius: 8px; transition: 0.2s; border: 0; border-bottom: 2px solid black; font-size: 14px; color: white;"
            placeholder="请输入11位的手机号" /></td>
          <td><span id="numbermsg" style="height: 10px; color: red;"></span><span
            id="ncmsg" style="height: 10px; color: white;"></span></td>
        </tr>
        <tr>
          <td style="padding-top: 25px; font-size: 18px"><label>电子邮箱:</label></td>
          <td><input id="email" type="text" onblur="loseemail()"
            onfocus="getemail()"
            style="margin-top: 20px; height: 25px; width: 270px; border-radius: 8px; transition: 0.2s; border: 0; border-bottom: 2px solid black; font-size: 14px; color: white;"
            placeholder="请输入您的邮箱" /></td>
          <td><span id="emailmsg" style="height: 10px; color: red;"></span></span><span
            id="ndmsg" style="height: 10px; color: white;"></span></td>
        </tr>
        <tr>
          <td style="padding-top: 25px; font-size: 18px"><label>身份证号:</label></td>
          <td><input id="mycolname" type="text"
            onblur="losemyclolname()" onfocus="getmycolname()"
            style="margin-top: 25px; height: 25px; width: 270px; border-radius: 8px; transition: 0.2s; border: 0; border-bottom: 2px solid black; font-size: 14px; color: white;"
            placeholder="请输入您的18位身份证号码" /></td>
          <td><span id="shenfenmsg" style="height: 10px; color: red;"></span></span><span
            id="nnmsg" style="height: 10px; color: white;"></span></td>
        </tr>
      </table>
      <div id="button" style="margin-right: 80px; margin-top: 20px;">
        <input type="submit" action="" value="注册"
          style="padding-right: 10px; margin-top: 40px; border-radius: 10px; transition: 0.2s; margin-right: 80px; width: 80px; height: 40px; font-size: 18px" />
        <input type="reset" value="清空"
          style="margin-right: 40px; margin-top: 40px; border-radius: 10px; transition: 0.2s; margin-right: 75px; width: 80px; height: 40px; font-size: 18px" />
      </div>
    </div>
  </div>
</form>
</body>
</html>

效果展示:

2.渐变注册界面

jsp代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<!-- 引入C标签 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>注册界面</title>
<script id="jqbb"
  src="http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
<style type="text/css">
body { background-color: #fff }
 #canvas {
  box-shadow:0 0 10px #e4ffb8;
}
h1 {
  color:#4c1caa;
  text-align:t;
}
body {
  margin:0;
  padding:0;
  font-family:"montserrat";
  background-image:linear-gradient(125deg,#e74c3c,#8e44ad,#27ae60,#2980b9,#2c3e50);
  background-size:400%;
  animation:bganimation 15s infinite;
  text-shadow:2.5px 5px 0.3125rem royalblue;
  color:#8E44AD;
  font-size:sans-serif;
}
.box {
  width:300px;
  padding:40px;
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  text-align:center;
}
.box h1 {
  color:greenyellow;
  text-transform:uppercase;
  font-weight:500;
}
.box input[type = "text"],.box input[type = "password"] {
  border:0;
  background:none;
  display:block;
  margin:20px auto;
  text-align:center;
  border:2px solid #3498db;
  padding:14px 10px;
  width:200px;
  outline:none;
  color:white;
  border-radius:24px;
  transition:0.25s;
}
.box input[type = "text"]:focus,.box input[type = "password"]:focus {
  width:280px;
  border-color:#2ecc71;
}
-webkit-input-placeholder {
  color:red;
  font-size:20px;
  line-height:50px;
}
.box input[type = "submit"] {
  border:0;
  background:none;
  display:block;
  margin:20px auto;
  text-align:center;
  border:2px solid #2ecc71;
  padding:14px 40px;
  outline:none;
  color:white;
  border-radius:24px;
  transition:0.25s;
  cursor:pointer;
}
.box input[type = "submit"]:hover {
  background:#2ecc71;
}
.text {
  color:white;
  text-align:center;
  text-transform:uppercase;
  margin:0px 0;
  //控制主背景高度
          font-size:22px;
}
@keyframes bganimation {
  0% {
  background-position:0% 50%;
}
50% {
  background-position:100% 50%;
}
100% {
  background-position:0% 50%;
}
}
#emailmsg, #namemsg, #nichengmsg, #pwdmsg, #numbermsg, #shenfen {
  font-size: 14px;
  color: red;
}
select {
  background: no-repeat;
  border-radius: 30px;
}
</style>
<script type="text/javascript">
/* 鼠标点击爱心特效 */
!function (e, t, a) {function r() {for (var e = 0; e < s.length; e++) s[e].alpha <= 0 ? (t.body.removeChild(s[e].el), s.splice(e, 1)) : (s[e].y--, s[e].scale += .004, s[e].alpha -= .013, s[e].el.style.cssText = "left:" + s[e].x + "px;top:" + s[e].y + "px;opacity:" + s[e].alpha + ";transform:scale(" + s[e].scale + "," + s[e].scale + ") rotate(45deg);background:" + s[e].color + ";z-index:99999");requestAnimationFrame(r)}function n() {var t = "function" == typeof e.onclick && e.onclick;e.onclick = function (e) {t && t(), o(e)}}function o(e) {var a = t.createElement("div");a.className = "heart", s.push({el: a,x: e.clientX - 5,y: e.clientY - 5,scale: 1,alpha: 1,color: c()}), t.body.appendChild(a)}function i(e) {var a = t.createElement("style");a.type = "text/css";try {a.appendChild(t.createTextNode(e))} catch (t) {a.styleSheet.cssText = e}t.getElementsByTagName("head")[0].appendChild(a)}function c() {return "rgb(" + ~~(255 * Math.random()) + "," + ~~(255 * Math.random()) + "," + ~~(255 * Math.random()) + ")"}var s = [];e.requestAnimationFrame = e.requestAnimationFrame || e.webkitRequestAnimationFrame || e.mozRequestAnimationFrame || e.oRequestAnimationFrame || e.msRequestAnimationFrame || function (e) {setTimeout(e, 1e3 / 60)}, i(".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: fixed;}.heart:after{top: -5px;}.heart:before{left: -5px;}"), n(), r()}(window, document);
  //获焦
  function getname() {//用户名输入框获焦
    let name = $("#name");
    if(!name.value){
      $("#namemsg").html("");
      $("#nbmsg").html("请输入你的用户名");
      return true;
    }
  }
  function getpassword() {//用户密码输入框获焦
    let password = $("#password");
    if(!password.value){
      $("#pwdmsg").html("");
      $("#namsg").html("请输入你的密码");
      return true;
    }
  }
  function getnumbers() {//手机号输入框获焦
    let number = $("#number");
    if(!number.value){
      $("#numbermsg").html("");
      $("#ncmsg").html("请输入你的手机号");
      return true;
    }
  }
  function getemail() {//电子邮箱输入框获焦
    let email = $("#number");
    if(!email.value){
      $("#emailmsg").html("");
      $("#ndmsg").html("请输入你的电子邮箱");
      return true;
    }
  }
  //失焦
  function losename() {//用户名输入框失焦
        let name = $("#name");
        if (!name.val()) {
          $("#nbmsg").html("");
          $("#namemsg").html("用户名不能为空");
          return false;
        }
        $("#nbmsg").html("");
        $("#namemsg").html("");
        return true;
      }
  function losenicheng() {//昵称输入框失焦
    let nicheng = $("#nicheng");
    if (nicheng.value == "") {
      $("#nichengmsg").html("昵称不能为空");
      return false;
    }
    $("#nbmsg").html("");
    $("#nichengmsg").html("");
    return true;
  }
  function losepassword() {//用户密码输入框失焦
        let password = $("#password").val();
        var reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z\\W]{6,18}$/;
        if (password=="") {
          $("#namsg").html("");
          $("#pwdmsg").html("密码不能为空");
          return false;
        }else if(!(reg.test(password))){
          $("#namsg").html("");
          $("#pwdmsg").html("密码格式错误,请输入数字,字母和特殊符号,至少两种6~18位的组合");
          return false;
        }
        $("#namsg").html("");
        $("#pwdmsg").html("");
        return true;
      } 
  function loseemail() {//电子邮箱失焦
    let email = $("#email").val();
    var reg = /^\w+@\w+(\.[a-zA-Z]{2,3}){1,2}$/;
    if(email==""){
      $("#ndmsg").html("");
      $("#emailmsg").html("邮箱不能为空");
      return false
    }else if(!(reg.test(email))){
      $("#ndmsg").html("");
      $("#emailmsg").html("邮箱格式有误");
      return false;
    }
    $("#ndmsg").html("");
    $("#emailmsg").html("");
    return true;
  }
  function losenumbers() {//手机号失焦
    let number = $("#number").val();
    var reg = /^1[3|4|5|7|8]\d{9}$/;
    if(number==""){
      $("#ncmsg").html("");
      $("#numbermsg").html("手机号不能为空");
      return false;
    }else if(!(reg.test(number))){
      $("#ncmsg").html("");
      $("#numbermsg").html("电话号格式错误,应是开头为1的11位纯数字组成");
      return false;
        }
    $("#ncmsg").html("");
    $("#numbermsg").html("");
    return true;
  } 
$(function() {
$("#name").blur(function() {
    let user_name=$("#name").val();
    $.post("getUser.do",{"user_name":user_name},function(data){
      if(data=="ok"){
        alert("该用户已注册,请重新输入");
        $("#name").val("");
      }
    });
  })
}); 
</script>
</head>
<body>
  <form action="getUser.do" method="post">
    <canvas id="canvas"></canvas>
    <div class="text">
      <div class="box">
        <h1>新用户注册</h1>
        <select name=""
          onchange="javascript:window.open(this.options[this.selectedIndex].value)">
          <option value="#" selected="selected">请选择</option>
          <option value="shop.jsp">店铺管理员注册</option></select>
         <input id="name" type="text" name="user_name" placeholder="用户名"
          onblur="losename()" onfocus="getname()"> <span id="namemsg"
          style="font-size: 1px; color: red;"></span> <span id="nbmsg"
          style="font-size: 1px; color: white;"></span> <input id="password"
          type="password" name="user_password" placeholder="密码"
          onblur="losepassword()" onfocus="getpassword()"><span
          id="pwdmsg" style="font-size: 1px; color: red;"></span><span
          id="namsg" style="font-size: 1px; color: white;"></span> <input
          id="number" type="text" name="user_phone" placeholder="手机号"
          onblur="losenumbers()" onfocus="getnumbers()"><span
          id="numbermsg" style="font-size: 1px; color: red;"></span><span
          id="ncmsg" style="font-size: 1px; color: white;"></span><input
          id="email" type="text" name="user_mail" placeholder="电子邮箱"
          onblur="loseemail()" onfocus="getemail()"><span
          id="emailmsg" style="font-size: 1px; color: red;"></span><span
          id="ndmsg" style="font-size: 1px; color: white;"></span> <input
          type="submit" name="" placeholder="Login">
      </div>
    </div>
  </form>
  <script>
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
canvas.width = 1520; //控制粒子图的宽度
canvas.height = 719;
//  canvas.style.background = '#ff557f';//js背景地
class Ball {
    constructor(x, y, color) {
        this.x = x;
        this.y = y;
        this.color = color;
        this.r = 20;
 }
    render() {
        ctx.save();
        ctx.beginPath();
        ctx.arc(this.x, this.y, this.r, 0, Math.PI * 2);
        ctx.fillStyle = this.color;
        ctx.fill();
        ctx.restore();
    }
}
let ball = new Ball(50, 50, 'red');
ball.render();
//实例化小球
let ballArr = [];
let colorArr = ['red', 'green', 'blue', 'yellow', 'purple', 'pink', 'orange'];
//监听鼠标移动
canvas.addEventListener('mousemove', function(e) {
    //  let e=e||event;
    ballArr.push(new MoveBall(e.offsetX, e.offsetY, colorArr[_.random(0, colorArr.length - 1)]));
    //  console.log(ballArr);
})
//开启定时器
setInterval(function() {
    //清屏
    ctx.clearRect(0, 0, canvas.width, canvas.height)
    //绘制
    for (let i = 0; i < ballArr.length; i++) {
        ballArr[i].render();
        ballArr[i].upDate();
    }
}, 50);
</script>
</body>
</html>

效果图(动态渐变):


最后注册界面展示及源码的分享就到这里,祝大家在敲代码的路上一路通畅!

感谢大家的观看 !

 

目录
相关文章
|
6天前
|
人工智能 API 内存技术
刚刚 DeepSeek V4.1 Flash 开启内测,1 分钟教你用上!
刚刚 DeepSeek 内测群发布了 DeepSeek V4.1 Flash 中间版本内测的消息,这次的模型采用了新的结构,原生支持多模态、能力更强、速度更快、且成本更低。
1756 9
|
10天前
|
人工智能 运维 BI
阿里云千问办公QwenWork深度解析:基于Qwen3.8,六大核心能力重构企业全自动化工作流与计费选型指南
传统AI办公工具大多停留在对话问答、文档摘要、简单文案生成层面,只能完成单点碎片化任务,无法自主拆解复杂业务流程,很难串联多工具、多文档、外部业务系统完成端到端完整工作交付。很多企业在落地AI办公的时候,需要组合多款不同工具,来回切换界面,手动复制粘贴中间结果,智能化改造落地门槛居高不下。千问办公QwenWork是整合多款智能体产品能力打造的一体化企业办公智能体平台,底层基座依托Qwen3.8大模型,打通桌面端Agent、云端Agent、企业协同Agent三种运行形态,不再局限简单问答,接收业务目标之后自主拆解任务步骤,调用各类工具,处理文档、表格、浏览器自动化、数据查询,直接输出可交付的办公
1638 2
|
11天前
|
网络协议 Linux iOS开发
【2026实测】Wireshark下载+安装+汉化+使用教程(图文版,巨详细)
Wireshark 是一款免费开源的网络协议分析工具,可实时捕获、解析并可视化数据包,助你诊断网络故障、分析通信协议(如HTTP、DNS、TCP等)。支持Windows/macOS/Linux,含中文界面,新手入门便捷。(239字)
|
7天前
|
SQL 人工智能 前端开发
QoderWake 1.0 正式发布:从桌面里的 Agent,到工作现场的数字员工
QoderWake v1.0正式发布:企业级数字员工团队平台。支持“一句话建岗”,预置10类特训岗位;Waker常驻钉钉/飞书群,@即响应、自动协作、跨任务记忆;具备定时/事件/API多触发方式与统一任务看板;已沉淀27.6万条记忆、12.3万项技能,助力组织实现人机协同增效。
770 2
|
5天前
|
缓存 测试技术 API
DeepSeek V4.1 Flash 内测接入:改个模型名即可调用(附代码)
DeepSeek V4.1 Flash 内测不用申请,base_url 不变、改个模型名就能调,9/10 到期。本文讲清接入、计费限流与多模态注意点。
771 0
DeepSeek V4.1 Flash 内测接入:改个模型名即可调用(附代码)
|
19天前
|
人工智能 自然语言处理 安全
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
本文聚焦阿里云2026年推出的三款自研AI办公产品,清晰拆解千问办公、Qoder Teams、Qoder CN的差异化定位与能力边界:千问办公主打职场全场景提效,支持自然语言指令一键完成PPT生成、数据分析等高频办公任务;Qoder Teams面向程序员团队,深度整合AI代码生成、团队协同与企业知识库能力;Qoder CN则专为金融、政务等强合规场景打造,实现数据不出境与VPC私有化部署。文章同步给出分场景选型指南与最新活动定价,帮助不同类型的企业按需组合产品,实现业务岗、研发岗与强合规场景的AI能力全覆盖。
3936 5
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
|
10天前
|
人工智能 自然语言处理 安全
阿里云AI数智鉴密:AI 生成内容如何拿到一张"防篡改的身份证"
隐形水印 + C2PA签名:让AI生成内容“持证上岗”。
1152 0
|
12天前
|
缓存 数据可视化 开发工具
DeepSeek Harness 怎么更新?dsh 更新完整指南:更新本体(npx、npm、源码)与更新插件两种方式
DeepSeek Harness 的更新分两层:本体更新(npx 自动最新、npm update -g、源码 git pull)与插件更新(插件市场点更新、命令行覆盖安装)。本文按「准备 → 更新本体 → 更新插件 → 更新后检查」四步走,覆盖新手常见疑问。
1410 1
DeepSeek Harness 怎么更新?dsh 更新完整指南:更新本体(npx、npm、源码)与更新插件两种方式