ui 框架
这个风格最喜欢
这个组件功能最丰富
https://github.com/qingqingxuan/admin-work
上边两个都是基于第一个的 ui 库实现
https://www.naiveui.com/zh-CN/os-theme/docs/community
https://primefaces.org/primevue/
大前端组合方案
vue3 + ts + vite
丢掉 vue2 丢掉 js 丢掉 webpack
当然 react 栈另说
https://github.com/qingqingxuan/admin-work
https://www.naiveui.com/zh-CN/os-theme/docs/community
https://primefaces.org/primevue/
vue3 + ts + vite
丢掉 vue2 丢掉 js 丢掉 webpack
当然 react 栈另说
// 将 ip 转换成 city
function ip2City($ip)
{
$url = "https://apis.map.qq.com/ws/location/v1/ip?ip={$ip}&key=XXXXXXXX";
$res = curl($url, false, false, true);
$data = [];
try {
if ($res) {
$res = json_decode($res, true);
}
if ($res && $res['status'] == 0 && $res['result']) {
$data['latitude'] = $res['result']['location']['lat'];
$data['longitude'] = $res['result']['location']['lng'];
$data['city'] = $res['result']['ad_info']['city'] ? $res['result']['ad_info']['city'] : '未知';
$data['citycode'] = $res['result']['ad_info']['adcode'] && $res['result']['ad_info']['adcode'] > 0 ? $res['result']['ad_info']['adcode'] : 0;
}
} catch (Exception $e) {
}
return $data;
}
/**
* @param string $url 请求网址
* @param bool $params 请求参数
* @param bool $post 请求方式,是否是post
* @param bool $https 请求http协议,是否是https
* @return bool|mixed
*/
function curl($url, $params = false, $post = false, $https = false)
{
$httpInfo = array();
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if ($post === true) {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_URL, $url);
} else {
if ($params === false) {
curl_setopt($ch, CURLOPT_URL, $url);
} else {
if (is_array($params)) {
$params = http_build_query($params);
}
curl_setopt($ch, CURLOPT_URL, $url . '?' . $params);
}
}
if ($https === true) {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
}
$response = curl_exec($ch);
if ($response === false) {
Illuminate\Support\Facades\Log::error(sprintf('curl 错误。 url:%s, error:%s', $url, curl_error($ch)));
return false;
}
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$httpInfo = array_merge($httpInfo, curl_getinfo($ch));
curl_close($ch);
return $response;
}
if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) {
}
Root composer.json requires php ^7.3 but your php version (8.1.0) does not satisfy that requirement.
处理 Root composer.json requires php ^7.3 but your php version (8.1.0) does not satisfy that requirement.
# 使用
composer install --ignore-platform-reqs
在使用 <style scoped>
,我们可以保护其他元素不受该样式的影响。如果我们附加动态元素,我们应该使用 parent-class /deep/ current-class
。 但是我如何通过SCSS使用它呢:
<style scoped lang="scss">
::v-deep .frame {
}
</style>
# 新增一个 index 参数(方便浏览器刷新)
const value = 3
this.$router.push({
path: this.$route.path,
query: { ...this.$route.query, index: value }
})
域名 | 站名 | 到期时间 | 证书时间 |
---|---|---|---|
https://yuepaibao.com | 约拍宝 | - | 2023-03-13 |
https://zeipan.com | 贼盘网 | - | - |
https://sym.zeipan.com | 溯源码 | - | 2023-03-13 |
https://xishui.shop | 浠水网 | - | 2023-03-13 |
https://txh.xishui.shop | 浠水同乡会 | - | 2023-03-13 |
# 执行下边命令,生产各个 view
php artisan vendor:publish --tag=laravel-errors