通过 Git 全局配置指定默认分支
提示
适配 Git 2.28+ 版本,该版本开始原生支持 init.defaultBranch 配置项
打开终端
git config --global init.defaultBranch main

一面火,一面冰.繁与简的完美结合,杂而不乱,一切本应就是井然有序
通过 Git 全局配置指定默认分支
提示
适配 Git 2.28+ 版本,该版本开始原生支持 init.defaultBranch 配置项
打开终端
git config --global init.defaultBranch main
以分页为例
提示
Vue 的事件系统对大小写敏感,且推荐使用 kebab-case 命名事件。同时 v-model:xxx 已经内部处理了 update:xxx 事件的绑定,无需重复声明。
// 定义事件
// 定义事件
const emit = defineEmits(['update:pageSize','update:currentPage'])
//当前分页
const currentPage = defineModel<number>('currentPage',{
default:1
})
//分页条数
const pageSize = defineModel<number>('pageSize',{
default:10
})
const handleSizeChange = throttle((value: number) => {
//console.log(`每页 ${value} 条`)
emit('update:pageSize',value)
},500)
const handleCurrentChange = throttle((value: number) => {
//console.log(`当前页: ${value}`)
emit('update:currentPage',value)
},500)
传说每一位女性都是这世上的花仙子,有的像牡丹,富贵典雅;有的似百合,洁白而清新.无论是艳丽如火的玫瑰,还是有幽野暗香的牵牛花.女人就如同这人间缤纷绚丽的花朵.是美的代言人.不管高山雪莲,又或是沙漠绿洲.都会有盛开的绽放,带来或一缕浓烈的芬芳,或一丝淡雅的神伤.
女人的美是温柔的,女人的柔情似水,亦能将百炼钢化作绕指柔.多少位英雄豪杰过不得美人关,几何许痴情种子,为伊消得人憔悴,衣带渐宽终不悔.
女人的美是善良的,是白衣天使的细心呵护,是守护孩子的勇敢坚强.每一位护士都有着一双隐形的翅膀,每一位母亲都像是一名无产阶级的战士.这份善良是对责任的担当,更是女人柔善美的本色.
一、JS播放声音文件
JS可以用来播放多种声音文件,包括常见的mp3、wav等格式。为了播放声音文件,我们需要用到HTML5的audio元素。下面是一个简单的播放声音的例子:
<audio src="sound.mp3" controls></audio>
安装
Greasemonkey
用户脚本的文件名必须以.user.js结尾
// ==UserScript==
// @name 未命名脚本 366261
// @version 1
// @grant none
// ==/UserScript==
在 XPath 查询语句外使用双引号,这样在语句内就可以使用单引号了。
document.evaluate 方法中有很多参数。第二个参数(在前两个例子中都是 document)可以是任意元素。XPath 查询只返回这个元素的子元素结点。如果已有一个元素的引用(比如,从 document.getElementById 或者 document.getElementsByTagName 数组的一项中得到的引用),您就可以限制查询只返回这个元素的子元素。
第三个参数是对名称空间解析函数的引用,只有在 application/xhtml+xml 类型页面执行的用户脚本中才会用到。即使对它不了解也没关系,因为那种类型的页面不是很多,您可能一次也遇不到。如果您很想知道它的用法,Mozilla XPath 文档解释了它的用法。
第四个参数是结果的返回方式。在前面的两个例子中都使用了 XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,它返回的元素是随机次序的。我99%都是使用这种方式,但是,可能出于某种原因,想以在页面上出现的顺序返回结果,您可以使用 XPathResult.ORDERED_NODE_SNAPSHOT_TYPE。Mozilla XPath 文档还提
如果已找到某个元素(不论用何种方法),您想在它前面插入额外的内容。您可以使用 insertBefore 函数。
在主内容前插入 <hr>
假设有个元素的 ID 为 "main"。
var main, newElement;
main = document.getElementById('main');
if (main) {
newElement = document.createElement('hr');
main.parentNode.insertBefore(newElement, main);
}
// ==UserScript==
// @name orderStatus
// @namespace https://git.youhu.club/
// @description "获取订单号查询订单状态"
// @include http://admin.mall.10010.com/OdmQuery/ServiceOrderQuery/init
// @include http://admin.mall.10010.com/OdmQuery/Sell/Order/OrderDetails
// @include http://admin.mall.10010.com/OdmQuery/*
// @exclude http://diveintogreasemonkey.org/*
// @require https://unpkg.com/jquery@3.3.1/dist/jquery.min.js
// @grant none
// ==/UserScript==
(function(window)
{
alert('哈哈');
//获取url链接
var href = window.location.href;
console.log(href);
if(href == "http://admin.mall.10010.com/OdmQuery/ServiceOrderQuery/init")
{
//console.log('查询页');
// $.get('http://192.168.0.116:8001/api/store/lbk/order', function(data)
// {
// console.log(data);
// }.'json');
$.post('http://test.youhu.club/', {}, function(data, textStatus, xhr)
{
console.log(data);
},'json');
}
})(window)
(function(window) {
'use strict';
let isSend = false;
const url = 'https://rocky.zhuopu.net';
const getOrderUrl = url + '/api/store/jd/order';
const orderNotifyUrl = function(orderId) {
return url + '/api/store/jd/order/' + orderId + '/notify';
};
const numberKeyCode = [96,97,98,99,100,101,102,103,104,105];
// 加载 script
function loadScript(url, done) {
let script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
document.body.appendChild(script);
script.onload = script.onreadystatechange = function() {
if (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete') {
if (done) done();
}
script.onload = script.onreadystatechange = null;
};
}
// 获取 URL 后面的参数
function getUrlParam(name) {
let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)'); // 构造一个含有目标参数的正则表达式对象
let r = window.location.search.substr(1).match(reg); // 匹配目标参数
if (r != null) return unescape(r[2]);
return null; // 返回参数值
}
// 大王卡对象
function KingCard() {
this.$certName = $('#certName');
this.$certNo = $('#certNo');
this.$mobilePhone = $('#mobilePhone');
this.$address = $('#address');
this.$orderNoElement;
this.$ChoseMobile = $('#number').find('.p-content');
this.$province = $('#province');
this.$city = $('#city');
this.$postProvince = $('#post-province');
this.$postCity = $('#post-city');
this.$postDistrict = $('#post-district');
this.$mask = $('.mask');
this.$errorAll = $('#errorAll');
// 购买的号码
this.buyer_number = '';
}
// 初始化 王卡对象
KingCard.prototype.init = function() {
const $div = $('<div id="kingCard" class="btn-box"></div>');
$div.css({
position: 'absolute',
top: 0,
left: 0,
width: 'auto',
height: 'auto',
zIndex: 10000
});
const $orderBtn = $('<a href="javascript:void(0);"></a>');
$orderBtn.attr('id', 'getOrder');
$orderBtn.css({
display: 'inline-block',
backgroundColor: '#f57e1f',
margin: '10px 20px',
textDecoration: 'none',
fontSize: '1rem',
height: '2rem',
lineHeight: '2rem',
padding: '0 10px',
borderRadius: '.1875rem',
color: '#FFF'
});
$orderBtn.text('获取订单');
$orderBtn.on('click', this.handleClick.bind(this));
const $successBtn = $orderBtn.clone();
$successBtn.attr('id', 'orderSuccess');
$successBtn.text('订单成功');
$successBtn.on('click', this.handleClick.bind(this));
const $failBtn = $orderBtn.clone();
$failBtn.attr('id', 'orderFail');
$failBtn.text('订单失败');
$failBtn.on('click', this.handleClick.bind(this));
$div.append($orderBtn);
$div.append($successBtn);
$div.append($failBtn);
this.$orderNoElement = $('<p id="JDOrderId"></p>');
this.$orderNoElement.css({
fontSize: '20px',
padding: '10px',
color: '#999'
});
$div.append(this.$orderNoElement);
$('body').after($div);
};
// 按钮处理方法
KingCard.prototype.handleClick = function(evt) {
switch ($(evt.target).attr('id')) {
case 'getOrder':
this.getOrder();
break;
case 'orderSuccess':
this.orderStatus('produce_succeed');
break;
case 'orderFail':
this.orderStatus('produce_failed');
break;
}
};
// 获取订单 按钮 事件方法
KingCard.prototype.getOrder = function() {
const self = this;
let channel = getUrlParam('channel');
if (!channel) {
let param = getUrlParam('param');
if (param) {
if (param.startsWith('qZ6wqd4tEGk7')) {
channel = 'jl001';
} else if (param.startsWith('P2guLDMlC7Iab')) {
channel = '151';
}
}
}
if (isSend) {
alert('请先处理当前订单');
return;
}
isSend = true;
// 要比三个按钮的高度还要高,防止点过快
this.$mask.css('zIndex', 10001).show();
$.get(getOrderUrl, {
channel
})
.done(function(res, error) {
console.log(res);
isSend = false;
self.$mask.removeAttr('style');
const data = res.data;
if (data) {
self.$certName.val(data.buyer_name);
self.$certNo.val(data.id_card);
const mobile_arr = data.mobile.split('');
self.$mobilePhone.focus();
self.$mobilePhone.val(data.mobile);
self.$address.val(data.address);
window.localStorage.setItem('_kc_info', data.id);
let text = '订单号: ' + data.order_id;
data.buy_mobile ? (text = text + ' 购买号码: ' + data.buy_mobile) : '';
self.$orderNoElement.text(text);
self.buyer_number = data.buy_mobile;
self.choseArea(data);
self.randomNumber();
self.checkMobile();
} else {
alert('目前暂无需要生产的订单了,你可以稍事休息之后再来获取订单.');
}
})
.fail(function(err) {
console.log('网络异常');
console.log(err);
self.$mask.removeAttr('style');
alert('获取订单信息时发生网络错误,请联系技术.不要关闭当前页面.');
});
};
// 选择号码归属地以及所在地区
KingCard.prototype.choseArea = function(data) {
let local_province = data.location_province;
let local_city = data.location_city;
let province = data.province;
let city = data.city;
let county = data.county;
// 归属地
$.each(this.$province.children(), function(idx, ele) {
if (~local_province.indexOf(ele.innerText) || ~ele.innerText.indexOf(local_province)) {
$(ele).trigger('click');
return;
}
});
$.each(this.$city.children(), function(idx, ele) {
if (~local_city.indexOf(ele.innerText) || ~ele.innerText.indexOf(local_city)) {
$(ele).trigger('click');
return;
}
});
// 所在区域
$.each(this.$postProvince.children(), function(idx, ele) {
if (~province.indexOf(ele.innerText) || ~ele.innerText.indexOf(province)) {
$(ele).trigger('click');
return;
}
});
$.each(this.$postCity.children(), function(idx, ele) {
if (~city.indexOf(ele.innerText) || ~ele.innerText.indexOf(city)) {
$(ele).trigger('click');
return;
}
});
$.each(this.$postDistrict.children(), function(idx, ele) {
if (~county.indexOf(ele.innerText) || ~ele.innerText.indexOf(county)) {
$(ele).trigger('click');
return;
}
});
$('#number').trigger('click');
};
// 随机选个号码
KingCard.prototype.randomNumber = function() {
const self = this;
// 如果存在用户购买的号码,那就输入上然后去搜索下
if (this.buyer_number) {
$('#search').val(this.buyer_number.slice(-4));
setTimeout(function(){
document.getElementById('search-btn').click();
},500);
setTimeout(function() {
const lis = document.querySelectorAll('.number-list li');
if (lis.length === 0) {
self.randomNumber();
return;
}
for (let i = 0; i < lis.length; i++) {
if (lis[i].innerText.replace(/\n/g, '') == self.buyer_number) {
$(lis[i])
.children('a')[0]
.click();
break;
} else {
continue;
}
}
}, 800);
return;
}
setTimeout(function() {
const len = document.querySelectorAll('.number-list li').length;
if (len !== 0) {
const random = Math.floor(Math.random() * len);
$('#number-popup .number-list li')
.eq(random)
.children('a')[0]
.click();
} else {
self.randomNumber();
}
}, 800);
};
// 发送订单状态
KingCard.prototype.orderStatus = function(status) {
const self = this;
if (isSend) return;
let msg = '订单提交成功';
if (status === 'produce_failed') {
msg = window.prompt('请输入失败原因');
}
isSend = true;
// 防止点过快
this.$mask.css('zIndex', 10001).show();
const info = window.localStorage.getItem('_kc_info');
const id = info.split('|')[0];
const mobile = info.split('|')[1];
console.log('当前订单后台编号: ', id);
if (!id) {
alert('缺少当前订单号,请联系技术部门!不要关闭页面');
return;
}
$.post(orderNotifyUrl(id), {
status: status,
mobile: mobile,
remark: msg,
current_url: window.location.href
})
.done(function(res) {
console.log(res);
self.$mask.removeAttr('style');
window.localStorage.removeItem('_kc_info');
const msg = res.msg;
if (msg.code === 0) {
self.$certName.val('');
self.$certNo.val('');
self.$mobilePhone.val('');
self.$address.val('');
self.orderId = '';
self.$orderNoElement.text('');
if (res.data && res.data.next_url) {
window.location.href = res.data.next_url;
} else {
if (status === 'produce_succeed') {
alert('页面没有自动跳转,请联系技术,不要关闭当前页面.');
}
}
} else {
alert(msg.info);
}
})
.fail(function(err) {
console.error(err);
alert('后台更新订单状态市网络发生异常,请联系技术.不要关闭当前页面.');
});
};
// 检查是不是选完号码了
KingCard.prototype.checkMobile = function() {
const self = this;
setTimeout(function() {
let mobile = self.$ChoseMobile.text();
if (mobile) {
let id = window.localStorage.getItem('_kc_info');
window.localStorage.setItem('_kc_info', id + '|' + mobile);
} else {
self.checkMobile();
}
}, 500);
};
let kc = new KingCard();
kc.init();
})(window);
表示临时响应并需要请求者继续执行操作的状态代码。
http状态返回代码 代码 说明
100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。
表示成功处理了请求的状态代码。
http状态返回代码 代码 说明
200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。
201 (已创建) 请求成功并且服务器创建了新的资源。
202 (已接受) 服务器已接受请求,但尚未处理。
203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。
204 (无内容) 服务器成功处理了请求,但没有返回任何内容。
205 (重置内容) 服务器成功处理了请求,但没有返回任何内容。
206 (部分内容) 服务器成功处理了部分 GET 请求。