订单管理

 <!DOCTYPE html>
 <html ng-app="OrderApp">
 <head>
 <meta charset="UTF-8">
 <title>订单管理</title>
 <script type="text/javascript" src="jquery.1.12.4.js"></script>
 <script type="text/javascript" src="angular-1.3.0.js"></script>
 <style type="text/css">
 * {
 font-size: 14px;
 margin: 0;
 padding: 0;
 }
  
 body {
 padding: 16px 32px;
 }
  
 .filter {
 position: relative;
 width: 800px;
 height: 40px;
 margin: 0 auto;
 }
  
 .filter input {
 width: 152px;
 height: 24px;
 border: 1px solid #999;
 border-radius: 4px;
 padding-left: 8px;
 }
  
 .filter select {
 width: 86px;
 height: 24px;
 border: 1px solid #999;
 border-radius: 4px;
 }
  
 .buttons {
 width: 800px;
 height: 40px;
 margin: 0 auto;
 }
  
 .buttons button {
 width: 80px;
 height: 24px;
 background-color: green;
 border: 0;
 border-radius: 4px;
 color: white;
 }
  
 .buttons .remove_btn {
 background-color: red;
 }
  
 .list {
 width: 800px;
 margin: 0 auto;
 }
  
 .list table tr {
 height: 32px;
 }
  
 .list thead tr {
 background-color: #777;
 }
  
 .list tbody tr:nth-child(odd) {
 background-color: #ccc;
 }
  
 .list tbody tr:nth-child(even) {
 background-color: #fff;
 }
  
 .list button {
 width: 40px;
 height: 18px;
 line-height: 18px;
 background-color: green;
 border: 0;
 border-radius: 4px;
 color: white;
 font-size: 8px;
 }
  
 .form {
 width: 460px;
 border: 1px solid #999;
 margin: 0 auto;
 }
  
 .form div {
 clear: both;
 }
  
 .form .formErr {
 border: 1px solid red;
 }
  
 .form .label {
 display: block;
 float: left;
 width: 80px;
 height: 40px;
 line-height: 40px;
 text-align: end;
 }
  
 .form .txt {
 display: block;
 float: left;
 width: 340px;
 height: 40px;
 line-height: 40px;
 padding-left: 16px;
 }
  
 .form input {
 width: 312px;
 height: 24px;
 border: 1px solid #999;
 border-radius: 4px;
 padding-left: 8px;
 }
  
 .form select {
 width: 86px;
 height: 24px;
 border: 1px solid #999;
 border-radius: 4px;
 }
  
 .form button {
 width: 56px;
 height: 24px;
 background-color: green;
 border: 0;
 border-radius: 4px;
 color: white;
 }
  
 .form .errTips {
 width: 226px;
 background-color: lightpink;
 color: darkred;
 border-radius: 4px;
 margin-left: 96px;
 margin-top: 6px;
 margin-bottom: 4px;
 padding: 16px 48px;
 }
 </style>
 <script type="text/javascript">
 var data = [
 {
 id: 1,
 goodsName: "iPhone 8 Plus",
 userName: "曹操",
 phone: "15111111111",
 price: 7588.00,
 city: "北京",
 dtCreated: "09-04 10:00",
 status: "已发货"
 },
 {
 id: 2,
 goodsName: "华为 畅享6S",
 userName: "刘备",
 phone: "15222222222",
 price: 899.00,
 city: "天津",
 dtCreated: "08-09 10:00",
 status: "已发货"
 },
 {
 id: 3,
 goodsName: "努比亚Z17",
 userName: "孙权",
 phone: "15333333333",
 price: 2099.00,
 city: "上海",
 dtCreated: "07-01 10:00",
 status: "待发货"
 },
 {
 id: 4,
 goodsName: "三星 Galaxy S7",
 userName: "司马懿",
 phone: "15444444444",
 price: 2999.00,
 city: "北京",
 dtCreated: "06-02 10:00",
 status: "已发货"
 },
 {
 id: 5,
 goodsName: "魅蓝5S",
 userName: "夏侯淳",
 phone: "15555555555",
 price: 999.00,
 city: "北京",
 dtCreated: "10-03 10:00",
 status: "已发货"
 },
 {
 id: 6,
 goodsName: "三星 Galaxy Note8",
 userName: "张辽",
 phone: "15666666666",
 price: 2599.00,
 city: "北京",
 dtCreated: "04-02 10:00",
 status: "已收货"
 },
 {
 id: 7,
 goodsName: "OPPO R9sk",
 userName: "关羽",
 phone: "15777777777",
 price: 4999.00,
 city: "北京",
 dtCreated: "03-09 10:00",
 status: "已发货"
 },
 {
 id: 8,
 goodsName: "红米Note4X",
 userName: "张飞",
 phone: "15888888888",
 price: 999.00,
 city: "上海",
 dtCreated: "05-18 10:00",
 status: "已收货"
 },
 {
 id: 9,
 goodsName: "红米5A",
 userName: "周瑜",
 phone: "15999999999",
 price: 599.00,
 city: "重庆",
 dtCreated: "06-16 10:00",
 status: "待发货"
 },
 {
 id: 10,
 goodsName: "小米Mix2",
 userName: "黄盖",
 phone: "13111111111",
 price: 3299.00,
 city: "北京",
 dtCreated: "03-15 10:00",
 status: "待发货"
 },
 {
 id: 11,
 goodsName: "小米Note5",
 userName: "黄忠",
 phone: "13222222222",
 price: 699.00,
 city: "重庆",
 dtCreated: "02-28 10:00",
 status: "待发货"
 },
 {
 id: 12,
 goodsName: "VIVO X20",
 userName: "赵云",
 phone: "13333333333",
 price: 2998.00,
 city: "上海",
 dtCreated: "08-22 10:00",
 status: "已发货"
 }
 ];
 // 全选/全不选
 $(function () {
 $("input[name='check_all']").click(function () {
 var checked = this.checked; // 获取 <input type="checkbox" name="check_all"/> 中checked属性的值
 $("input[name='order_id[]']").each(function () {
 this.checked = checked; // 依次设置每一个 <input type="checkbox" name="order_id[]"/> 中checked属性的值
 });
 });
 });
  
 var app = angular.module("OrderApp", []);
  
 // 敏感词
 app.filter("sensitiveWord", function () {
 return function (msg, flag) {
 return msg.replace(flag, "*");
 }
 });
  
 app.controller("OrderCtrl", function ($scope) {
 $scope.data = data;
 var id = 12;
  
 // 通过月份过滤
 $scope.filterByMonth = function (order) {
 if ($scope.filter_begin_month == undefined || $scope.filter_begin_month == "") {
 return true;
 }
  
 if ($scope.filter_end_month == undefined || $scope.filter_end_month == "") {
 return true;
 }
  
 var beginMonth = parseInt($scope.filter_begin_month);
 var endMonth = parseInt($scope.filter_end_month);
  
 if (beginMonth > endMonth) {
 return true;
 }
  
 var month = order.dtCreated.substr(0, order.dtCreated.indexOf("-"));
 month = parseInt(month);
 return (month >= beginMonth && month <= endMonth);
 };
  
 // 发货
 $scope.deliver = function (id) {
 for (var i in $scope.data) {
 if ($scope.data[i].id == id) {
 $scope.data[i].status = "已发货";
 }
 }
 };
  
 // 批量发货
 $scope.batchDeliver = function () {
 $("input[name='order_id[]']:checked").each(function () {
 $scope.deliver(this.id);
 });
 };
  
 // 删除
 $scope.remove = function (id) {
 for (var i in $scope.data) {
 if ($scope.data[i].id == id) {
 $scope.data.splice(i, 1);
 }
 }
 };
  
 // 批量删除
 $scope.batchRemove = function () {
 $("input[name='order_id[]']:checked").each(function () {
 $scope.remove(this.id);
 });
 };
  
 $scope.isShowAddOrderForm = false;
 // 显示新增订单表单
 $scope.showAddOrderForm = function () {
 $scope.isShowAddOrderForm = true;
 };
  
 $scope.errTips = [];
  
 // 提交新增订单表单
 $scope.submitAddOrderForm = function () {
 $scope.errTips = [];
 $scope.goodsNameClassName = "";
 $scope.userNameClassName = "";
 $scope.phoneClassName = "";
 $scope.priceClassName = "";
 $scope.hasErr = false;
  
 var goodsName = $scope.goodsName == undefined ? "" : $scope.goodsName.trim();
 var userName = $scope.userName == undefined ? "" : $scope.userName.trim();
 var phone = $scope.phone == undefined ? "" : $scope.phone.trim();
 var price = $scope.price == undefined ? "" : $scope.price.trim();
  
 if (goodsName == "") {
 $scope.errTips.push("商品名不能为空!");
 $scope.goodsNameClassName = "formErr";
 $scope.hasErr = true;
 }
  
 if (userName == "") {
 $scope.errTips.push("用户名不能为空!");
 $scope.userNameClassName = "formErr";
 $scope.hasErr = true;
 }
  
 if (phone == "") {
 $scope.errTips.push("手机号不能为空!");
 $scope.phoneClassName = "formErr";
 $scope.hasErr = true;
 }
  
 if (price == "") {
 $scope.errTips.push("价格不能为空!");
 $scope.priceClassName = "formErr";
 $scope.hasErr = true;
 }
  
 if ($scope.city == undefined || $scope.city == "") {
 $scope.errTips.push("请选择城市!");
 $scope.hasErr = true;
 }
  
 if (goodsName.length < 6 || goodsName.length > 20) {
 $scope.errTips.push("商品名必须是6-20个字符!");
 $scope.goodsNameClassName = "formErr";
 $scope.hasErr = true;
 }
  
 if (userName.length < 4 || userName.length > 16) {
 $scope.errTips.push("用户名必须是4-16个字符!");
 $scope.userNameClassName = "formErr";
 $scope.hasErr = true;
 }
  
 if (!/^\d{11}$/.test(phone)) {
 $scope.errTips.push("手机号格式不正确!");
 $scope.phoneClassName = "formErr";
 $scope.hasErr = true;
 }
  
 price = parseFloat(price);
 if (isNaN(price) || price <= 0) {
 $scope.errTips.push("价格必须大于0!");
 $scope.priceClassName = "formErr";
 $scope.hasErr = true;
 }
  
 if ($scope.hasErr) {
 return;
 }
  
 $scope.data.push({
 id: ++id,
 goodsName: goodsName,
 userName: userName,
 phone: phone,
 price: price,
 city: $scope.city,
 dtCreated: "10-25 10:00",
 status: "待发货"
 });
  
 $scope.goodsName = "";
 $scope.userName = "";
 $scope.phone = "";
 $scope.price = "";
 $scope.city = "";
 $scope.isShowAddOrderForm = false;
 };
  
 // 显示修改订单表单
 $scope.edit = function (id) {
 for (var i in $scope.data) {
 if ($scope.data[i].id == id) {
 $scope.edit_goodsName = $scope.data[i].goodsName;
 $scope.edit_userName = $scope.data[i].userName;
 $scope.edit_phone = $scope.data[i].phone;
 $scope.edit_price = $scope.data[i].price;
 $scope.edit_city = $scope.data[i].city;
 $scope.edit_id = $scope.data[i].id;
 }
 }
  
 $scope.isShowEditOrderForm = true;
 };
  
 // 提交修改订单表单
 $scope.submitEditOrderForm = function () {
 $scope.errTips = [];
  
 $scope.edit_userNameClassName = "";
 $scope.edit_phoneClassName = "";
 $scope.edit_priceClassName = "";
 $scope.hasErr = false;
  
 var id = $scope.edit_id == undefined ? "" : parseInt($scope.edit_id);
  
 var userName = $scope.edit_userName == undefined ? "" : $scope.edit_userName.trim();
 var phone = $scope.edit_phone == undefined ? "" : $scope.edit_phone.trim();
 var price = $scope.edit_price == undefined ? "" : $scope.edit_price;
  
 if (userName == "") {
 $scope.errTips.push("用户名不能为空!");
 $scope.userNameClassName = "formErr";
 $scope.hasErr = true;
 }
  
 if (phone == "") {
 $scope.errTips.push("手机号不能为空!");
 $scope.phoneClassName = "formErr";
 $scope.hasErr = true;
 }
  
 if (price == "") {
 $scope.errTips.push("价格不能为空!");
 $scope.priceClassName = "formErr";
 $scope.hasErr = true;
 }
  
 if ($scope.edit_city == undefined || $scope.edit_city == "") {
 $scope.errTips.push("请选择城市!");
 $scope.hasErr = true;
 }
  
 if (userName.length < 4 || userName.length > 16) {
 $scope.errTips.push("用户名必须是4-16个字符!");
 $scope.userNameClassName = "formErr";
 $scope.hasErr = true;
 }
  
 if (!/^\d{11}$/.test(phone)) {
 $scope.errTips.push("手机号格式不正确!");
 $scope.phoneClassName = "formErr";
 $scope.hasErr = true;
 }
  
 price = parseFloat(price);
 if (isNaN(price) || price <= 0) {
 $scope.errTips.push("价格必须大于0!");
 $scope.priceClassName = "formErr";
 $scope.hasErr = true;
 }
  
 if ($scope.hasErr) {
 return;
 }
  
 for (var i in $scope.data) {
 if ($scope.data[i].id == id) {
 $scope.data[i].userName = userName;
 $scope.data[i].phone = phone;
 $scope.data[i].price = price;
 $scope.data[i].city = $scope.edit_city;
 }
 }
  
 $scope.edit_goodsName = "";
 $scope.edit_userName = "";
 $scope.edit_phone = "";
 $scope.edit_price = "";
 $scope.edit_city = "";
 $scope.isShowEditOrderForm = false;
 };
 });
 </script>
 </head>
 <body ng-controller="OrderCtrl">
 <div class="filter">
 <input type="text" placeholder="用户名搜索" ng-model="filter_user_name"/>
 <input type="text" placeholder="手机号搜索" ng-model="filter_phone"/>
 <select class="choose_city" ng-model="filter_city">
 <option value="">选择城市</option>
 <option value="北京">北京</option>
 <option value="上海">上海</option>
 <option value="天津">天津</option>
 <option value="重庆">重庆</option>
 </select>
 <select class="choose_status" ng-model="filter_status">
 <option value="">选择状态</option>
 <option value="待发货">待发货</option>
 <option value="已发货">已发货</option>
 <option value="已收货">已收货</option>
 </select>
 <select class="choose_time_begin_month" ng-model="filter_begin_month">
 <option value="">开始月份</option>
 <option value="1">01</option>
 <option value="2">02</option>
 <option value="3">03</option>
 <option value="4">04</option>
 <option value="5">05</option>
 <option value="6">06</option>
 <option value="7">07</option>
 <option value="8">08</option>
 <option value="9">09</option>
 <option value="10">10</option>
 <option value="11">11</option>
 <option value="12">12</option>
 </select> -
 <select class="choose_time_end_month" ng-model="filter_end_month">
 <option value="">结束月份</option>
 <option value="1">01</option>
 <option value="2">02</option>
 <option value="3">03</option>
 <option value="4">04</option>
 <option value="5">05</option>
 <option value="6">06</option>
 <option value="7">07</option>
 <option value="8">08</option>
 <option value="9">09</option>
 <option value="10">10</option>
 <option value="11">11</option>
 <option value="12">12</option>
 </select>
 <select class="id_order" ng-model="id_order_type">
 <option value="">ID排序</option>
 <option value="id">ID正序</option>
 <option value="-id">ID倒序</option>
 </select>
 </div>
  
 <div class="buttons">
 <button class="add_btn" ng-click="showAddOrderForm();">新增订单</button>
 <button class="deliver_btn" ng-click="batchDeliver()">批量发货</button>
 <button class="remove_btn" ng-click="batchRemove()">批量删除</button>
 敏感字:米(商品名)-> 替换成 *
 </div>
  
 <div class="list">
 <table width="800px" cellspacing="0" rules="cols" border="1px">
 <thead>
 <tr>
 <th width="4%">
 <input type="checkbox" name="check_all"/>
 </th>
 <th width="6%">ID</th>
 <th width="14%">商品名</th>
 <th width="8%">用户名</th>
 <th width="14%">手机号</th>
 <th width="10%">价格</th>
 <th width="8%">城市</th>
 <th width="12%">下单时间</th>
 <th width="8%">状态</th>
 <th width="14%">操作</th>
 </tr>
 </thead>
 <tbody>
 <tr align="center"
 ng-repeat="order in data | filter: {userName: filter_user_name} | filter: {phone: filter_phone} | filter: {city: filter_city} | filter: {status: filter_status} | filter: filterByMonth | orderBy: id_order_type">
 <td>
 <input type="checkbox" name="order_id[]" id="{{ order.id }}"/>
 </td>
 <td>{{ order.id }}</td>
 <td>{{ order.goodsName | sensitiveWord: "米"}}</td>
 <td>{{ order.userName }}</td>
 <td>{{ order.phone }}</td>
 <td>{{ order.price | currency: "¥"}}</td>
 <td>{{ order.city }}</td>
 <td>{{ order.dtCreated }}</td>
 <td>
 <span ng-show="order.status=='待发货'" ng-click="deliver(order.id)">
 <a href="javascript: void(0);">发货</a>
 </span>
 <span ng-show="order.status=='已发货'">已发货</span>
 <span ng-show="order.status=='已收货'">已收货</span>
 </td>
 <td>
 <a href="javascript: void(0);" ng-click="edit(order.id)">修改</a>
 <a href="javascript: void(0);" ng-click="remove(order.id)">删除</a>
 </td>
 </tr>
 </tbody>
 </table>
 </div>
  
 <div class="form" ng-show="isShowAddOrderForm">
 <div>
 <span class="label">新增订单</span>
 <span class="txt"></span>
 </div>
 <div>
 <span class="label">商品名</span>
 <span class="txt">
 <input type="text" placeholder="6-20个字符" ng-model="goodsName" ng-class="goodsNameClassName"/>
 </span>
 </div>
 <div>
 <span class="label">用户名</span>
 <span class="txt">
 <input type="text" placeholder="4-16个字符" ng-model="userName" ng-class="userNameClassName"/>
 </span>
 </div>
 <div>
 <span class="label">手机号</span>
 <span class="txt"><input type="text" ng-model="phone" ng-class="phoneClassName"/></span>
 </div>
 <div>
 <span class="label">价格</span>
 <span class="txt"><input type="text" ng-model="price" ng-class="priceClassName"/></span>
 </div>
 <div>
 <span class="label">城市</span>
 <span class="txt">
 <select ng-model="city">
 <option value="">选择城市</option>
 <option value="北京">北京</option>
 <option value="上海">上海</option>
 <option value="天津">天津</option>
 <option value="重庆">重庆</option>
 </select>
 </span>
 </div>
 <div class="errTips" ng-show="hasErr">
 <ul>
 <li ng-repeat="msg in errTips">{{ msg }}</li>
 </ul>
 </div>
 <div>
 <span class="label"></span>
 <span class="txt"><button ng-click="submitAddOrderForm()">提交</button></span>
 </div>
 <div style="clear: both"></div>
 </div>
  
 <div class="form" ng-show="isShowEditOrderForm">
 <div>
 <span class="label">修改订单</span>
 <span class="txt"></span>
 </div>
 <div>
 <span class="label">商品名(只读)</span>
 <span class="txt">
 <input type="text" placeholder="6-20个字符" ng-model="edit_goodsName" readonly/>
 </span>
 </div>
 <div>
 <span class="label">用户名</span>
 <span class="txt">
 <input type="text" placeholder="4-16个字符" ng-model="edit_userName" ng-class="edit_userNameClassName"/>
 </span>
 </div>
 <div>
 <span class="label">手机号</span>
 <span class="txt"><input type="text" ng-model="edit_phone" ng-class="edit_phoneClassName"/></span>
 </div>
 <div>
 <span class="label">价格</span>
 <span class="txt"><input type="text" ng-model="edit_price" ng-class="edit_priceClassName"/></span>
 </div>
 <div>
 <span class="label">城市</span>
 <span class="txt">
 <select ng-model="edit_city">
 <option value="">选择城市</option>
 <option value="北京">北京</option>
 <option value="上海">上海</option>
 <option value="天津">天津</option>
 <option value="重庆">重庆</option>
 </select>
 </span>
 </div>
 <div class="errTips" ng-show="hasErr">
 <ul>
 <li ng-repeat="msg in errTips">{{ msg }}</li>
 </ul>
 </div>
 <div>
 <span class="label"></span>
 <input type="hidden" ng-model="edit_id"/>
 <span class="txt"><button ng-click="submitEditOrderForm()">提交</button></span>
 </div>
 <div style="clear: both"></div>
 </div>
 </body>
 </html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值