## 1.2.7(2022-01-1)

通用调整:
【调整】启用SqlSugar.Ioc及SqlSugarCore,弃用SqlSugarClient,保证线程安全及提高对象代码容错率。减少mysql下偶发性问题。
【优化】优化【后台生成小程序码】【后台生成预览页面设计小程序码】代码,并修复【七牛云】上传方式。#I4OHP9
【优化】修复treeTable的折叠列字符字符过长导致内容显示不全的问题。
【调整】应会员需求,开源社区版前端代码增加使用账号密码登录,取回账号密码的示例文档。详情预览【CoreCms.Net.Uni-App\CoreShop\pages\login】下文件。#I4O4H4
【优化】调整首页商品【goods】在根据栏目选择商品时候排序问题,调整为【sort desc,id desc】按照先自定义排序,后数据序列排序。取消【creattime desc】排序。#I4NW4F
【修复】修复首页设计使用【图片模块】导致图片浮动遮挡右下角按钮的问题。#I4NPZL
【优化】调整小程序消息通知设置,当未设置消息提醒时,不弹出错误项提示功能,保证订单下单时到支付订单页面不报错误提示。#I4N4UL。

## 0.0.3 会员版/商业版:
【修复】修复下单界面【添加收货地址】按钮宽度及不居中的问题。
【优化】去除接口生成海报不需要的字体,只保留思源标准字体。
【修复】修复弹窗登录报【checkbox未嵌套的问题】,导致授权页有报错。#I4OYPR
【修复】移除【Microsoft.IdentityModel.Tokens】组件,防止更新组件导致对jwt token校验的影响。
【优化】移除【http.interceptor.js】遗留的前端请求拦截器。
This commit is contained in:
JianWeie
2022-01-03 03:11:25 +08:00
parent 3d08dbfce3
commit 35811f0be1
14 changed files with 114 additions and 241 deletions

View File

@@ -17,6 +17,7 @@ using CoreCms.Net.Configuration;
using CoreCms.Net.Loging; using CoreCms.Net.Loging;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using SqlSugar; using SqlSugar;
using SqlSugar.IOC;
namespace CoreCms.Net.Core.Config namespace CoreCms.Net.Core.Config
{ {
@@ -25,69 +26,48 @@ namespace CoreCms.Net.Core.Config
/// </summary> /// </summary>
public static class SqlSugarSetup public static class SqlSugarSetup
{ {
public static void AddSqlSugarSetup(this IServiceCollection services) public static void AddSqlSugarSetup(this IServiceCollection services)
{ {
if (services == null) throw new ArgumentNullException(nameof(services)); if (services == null) throw new ArgumentNullException(nameof(services));
string connectionString = AppSettingsConstVars.DbSqlConnection;
string dbTypeString = AppSettingsConstVars.DbDbType;
//获取数据类型 //注入 ORM
var dbType = dbTypeString == DbType.MySql.ToString() ? DbType.MySql : DbType.SqlServer; SugarIocServices.AddSqlSugar(new IocConfig()
{
//数据库连接
ConnectionString = AppSettingsConstVars.DbSqlConnection,
//判断数据库类型
DbType = AppSettingsConstVars.DbDbType == IocDbType.MySql.ToString() ? IocDbType.MySql : IocDbType.SqlServer,
//是否开启自动关闭数据库连接-//不设成true要手动close
IsAutoCloseConnection = true,
});
//设置参数
services.ConfigurationSugar(db =>
{
db.CurrentConnectionConfig.InitKeyType = InitKeyType.Attribute;
db.CurrentConnectionConfig.ConfigureExternalServices = new ConfigureExternalServices()
{
//判断是否开启redis设置二级缓存方式 //判断是否开启redis设置二级缓存方式
ICacheService myCache = AppSettingsConstVars.RedisUseCache DataInfoCacheService = AppSettingsConstVars.RedisUseCache ? (ICacheService)new SqlSugarRedisCache() : new SqlSugarMemoryCache()
? (ICacheService)new SqlSugarRedisCache()
: new SqlSugarMemoryCache();
var connectionConfig = new ConnectionConfig()
{
ConnectionString = connectionString, //必填
DbType = dbType, //必填
IsAutoCloseConnection = false,
InitKeyType = InitKeyType.Attribute,
ConfigureExternalServices = new ConfigureExternalServices()
{
DataInfoCacheService = myCache
},
}; };
//执行SQL 错误事件可监控sql暂时屏蔽需要可开启
services.AddScoped<ISqlSugarClient>(o => //db.Aop.OnLogExecuting = (sql, p) =>
{
var db = new SqlSugarClient(connectionConfig); //默认SystemTable
//日志处理
////SQL执行前 可以修改SQL
//db.Aop.OnLogExecuting = (sql, pars) =>
//{ //{
// //获取sql // NLogUtil.WriteFileLog(NLog.LogLevel.Error, LogType.Other, "SqlSugar执行SQL错误事件打印Sql", sql);
// Console.WriteLine(sql + "\r\n" + db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));
// Console.WriteLine();
// //通过TempItems这个变量来算出这个SQL执行时间1
// if (db.TempItems == null) db.TempItems = new Dictionary<string, object>();
// db.TempItems.Add("logTime", DateTime.Now);
// //通过TempItems这个变量来算出这个SQL执行时间2
// var startingTime = db.TempItems["logTime"];
// db.TempItems.Remove("time");
// var completedTime = DateTime.Now;
//}; //};
//db.Aop.OnLogExecuted = (sql, pars) => //SQL执行完事件
//{
//}; //执行SQL 错误事件
//db.Aop.OnLogExecuting = (sql, pars) => //SQL执行前事件 db.Aop.OnError = (exp) =>
//{
//};
db.Aop.OnError = (exp) =>//执行SQL 错误事件
{ {
NLogUtil.WriteFileLog(NLog.LogLevel.Error, LogType.Other, "SqlSugar", "执行SQL错误事件", exp); NLogUtil.WriteFileLog(NLog.LogLevel.Error, LogType.Other, "SqlSugar", "执行SQL错误事件", exp);
}; };
return db;
//设置更多连接参数
//db.CurrentConnectionConfig.XXXX=XXXX
//db.CurrentConnectionConfig.MoreSetting=new MoreSetting(){}
//读写分离等都在这儿设置
}); });
} }

View File

@@ -25,6 +25,7 @@
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0" /> <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0" />
<PackageReference Include="Microsoft.OpenApi" Version="1.2.3" /> <PackageReference Include="Microsoft.OpenApi" Version="1.2.3" />
<PackageReference Include="Qc.YilianyunSdk" Version="1.0.7" /> <PackageReference Include="Qc.YilianyunSdk" Version="1.0.7" />
<PackageReference Include="SqlSugar.IOC" Version="1.7.0" />
<PackageReference Include="sqlSugarCore" Version="5.0.5.1" /> <PackageReference Include="sqlSugarCore" Version="5.0.5.1" />
<PackageReference Include="Swashbuckle.AspNetCore.Filters" Version="7.0.2" /> <PackageReference Include="Swashbuckle.AspNetCore.Filters" Version="7.0.2" />
</ItemGroup> </ItemGroup>

View File

@@ -15,7 +15,7 @@ namespace CoreCms.Net.IRepository.UnitOfWork
{ {
public interface IUnitOfWork public interface IUnitOfWork
{ {
SqlSugarClient GetDbClient(); SqlSugarScope GetDbClient();
void BeginTran(); void BeginTran();

View File

@@ -22,7 +22,7 @@ namespace CoreCms.Net.Repository
public abstract class BaseRepository<T> : IBaseRepository<T> where T : class, new() public abstract class BaseRepository<T> : IBaseRepository<T> where T : class, new()
{ {
//private readonly IUnitOfWork _unitOfWork; //private readonly IUnitOfWork _unitOfWork;
private readonly SqlSugarClient _dbBase; private readonly SqlSugarScope _dbBase;
protected BaseRepository(IUnitOfWork unitOfWork) protected BaseRepository(IUnitOfWork unitOfWork)
{ {

View File

@@ -919,8 +919,8 @@ namespace CoreCms.Net.Repository
} }
else else
{ {
var ids = DbClient.Queryable<CoreCmsGoods>().Where(p => p.isDel == false && p.isMarketable == true) var ids = await DbClient.Queryable<CoreCmsGoods>().Where(p => p.isDel == false && p.isMarketable == true)
.Select(p => p.id).ToArray(); .Select(p => p.id).ToArrayAsync();
var dbIds = new List<int>(); var dbIds = new List<int>();
if (ids.Any()) if (ids.Any())
{ {

View File

@@ -14,6 +14,7 @@ using CoreCms.Net.IRepository.UnitOfWork;
using CoreCms.Net.Loging; using CoreCms.Net.Loging;
using NLog; using NLog;
using SqlSugar; using SqlSugar;
using SqlSugar.IOC;
namespace CoreCms.Net.Repository.UnitOfWork namespace CoreCms.Net.Repository.UnitOfWork
{ {
@@ -21,19 +22,24 @@ namespace CoreCms.Net.Repository.UnitOfWork
{ {
private readonly ISqlSugarClient _sqlSugarClient; private readonly ISqlSugarClient _sqlSugarClient;
public UnitOfWork(ISqlSugarClient sqlSugarClient) //public UnitOfWork(ISqlSugarClient sqlSugarClient)
//{
// _sqlSugarClient = sqlSugarClient;
//}
public UnitOfWork()
{ {
_sqlSugarClient = sqlSugarClient; _sqlSugarClient = DbScoped.SugarScope;
} }
/// <summary> /// <summary>
/// 获取DB保证唯一性 /// 获取DB保证唯一性
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public SqlSugarClient GetDbClient() public SqlSugarScope GetDbClient()
{ {
// 必须要as后边会用到切换数据库操作 // 必须要as后边会用到切换数据库操作
return _sqlSugarClient as SqlSugarClient; return _sqlSugarClient as SqlSugarScope;
} }
public void BeginTran() public void BeginTran()

View File

@@ -421,7 +421,7 @@ namespace CoreCms.Net.Services
} }
limit = limit > 0 ? limit : 10; limit = limit > 0 ? limit : 10;
var goods = await _goodsServices.QueryListByClauseAsync(where, limit, p => p.createTime, OrderByType.Desc, false); var goods = await _goodsServices.QueryPageAsync(where, " sort desc,id desc ", 1, limit, true);
if (goods != null && goods.Any()) if (goods != null && goods.Any())
{ {
JArray result = JArray.FromObject(goods); JArray result = JArray.FromObject(goods);

View File

@@ -4,7 +4,7 @@
© {{shopName}} 品牌运营 © {{shopName}} 品牌运营
</view> </view>
<view class="coreshop-font-xs" v-if="shopBeiAn"> <view class="coreshop-font-xs" v-if="shopBeiAn">
<view v-if="shopBeiAn">备案号{{shopBeiAn}}</view> <view>备案号{{shopBeiAn}}</view>
</view> </view>
<view class="coreshop-font-xs"> <view class="coreshop-font-xs">
Powered by CoreShop Powered by CoreShop

View File

@@ -135,7 +135,7 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.coreshop-imgsingle { overflow: hidden; position: relative; .coreshop-imgsingle { overflow: hidden; position: relative;
.ad-img { width: 100%; float: left; position: relative; z-index: 667; } .ad-img { width: 100%; float: left; }
.ad-img:last-child { margin-bottom: 0; } .ad-img:last-child { margin-bottom: 0; }
.imgup-btn { position: absolute; z-index: 668; bottom: 40px; left: 20px; .imgup-btn { position: absolute; z-index: 668; bottom: 40px; left: 20px;
.coreshop-btn { line-height: 2; font-size: 14px; padding: 0 25px; border-radius: 25px; } .coreshop-btn { line-height: 2; font-size: 14px; padding: 0 25px; border-radius: 25px; }

View File

@@ -695,11 +695,8 @@
success(ress) { success(ress) {
if (res.errMsg == "requestSubscribeMessage:ok") { if (res.errMsg == "requestSubscribeMessage:ok") {
console.log(ress); console.log(ress);
} else {
} }
}, fail(ress) { }, fail(ress) {
_this.$u.toast(ress.errMsg);
console.log(ress); console.log(ress);
} }
}); });

View File

@@ -591,7 +591,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
//返回数据 //返回数据
var jm = new AdminUiCallBack { code = 0 }; var jm = new AdminUiCallBack { code = 0 };
var _filesStorageOptions = await _coreCmsSettingServices.GetFilesStorageOptions(); var filesStorageOptions = await _coreCmsSettingServices.GetFilesStorageOptions();
var formModel = await _coreCmsFormServices.QueryByIdAsync(entity.id); var formModel = await _coreCmsFormServices.QueryByIdAsync(entity.id);
@@ -615,100 +615,37 @@ namespace CoreCms.Net.Web.Admin.Controllers
{ {
var memStream = new MemoryStream(response.RawBytes); var memStream = new MemoryStream(response.RawBytes);
var newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", DateTimeFormatInfo.InvariantInfo) + ".jpg"; string url = string.Empty;
var today = DateTime.Now.ToString("yyyyMMdd"); if (filesStorageOptions.StorageType == GlobalEnumVars.FilesStorageOptionsType.LocalStorage.ToString())
if (_filesStorageOptions.StorageType == GlobalEnumVars.FilesStorageOptionsType.LocalStorage.ToString())
{ {
var saveUrl = "/Upload/QrCode/" + today + "/"; url = _toolsServices.UpLoadBase64ForLocalStorage(filesStorageOptions, memStream);
var dirPath = _webHostEnvironment.WebRootPath + saveUrl;
string bucketBindDomain = AppSettingsConstVars.AppConfigAppUrl;
if (!Directory.Exists(dirPath)) Directory.CreateDirectory(dirPath);
var filePath = dirPath + newFileName;
var fileUrl = saveUrl + newFileName;
//储存图片
System.IO.File.Delete(filePath);
await using (var fs = new FileStream(filePath, FileMode.CreateNew))
{
await memStream.CopyToAsync(fs).ConfigureAwait(false);
await fs.FlushAsync().ConfigureAwait(false);
} }
else if (filesStorageOptions.StorageType == GlobalEnumVars.FilesStorageOptionsType.AliYunOSS.ToString())
jm.code = 0;
jm.msg = "上传成功!";
jm.data = new
{
fileUrl,
src = bucketBindDomain + fileUrl
};
}
else if (_filesStorageOptions.StorageType == GlobalEnumVars.FilesStorageOptionsType.AliYunOSS.ToString())
{ {
//上传到阿里云 //上传到阿里云
url = await _toolsServices.UpLoadBase64ForAliYunOSS(filesStorageOptions, memStream);
// 设置当前流的位置为流的开始
memStream.Seek(0, SeekOrigin.Begin);
await using var fileStream = memStream;
var md5 = OssUtils.ComputeContentMd5(fileStream, memStream.Length);
var filePath = "Upload/QrCode/" + today + "/" + newFileName; //云文件保存路径
//初始化阿里云配置--外网Endpoint、访问ID、访问password
var aliyun = new OssClient(_filesStorageOptions.Endpoint, _filesStorageOptions.AccessKeyId, _filesStorageOptions.AccessKeySecret);
//将文件md5值赋值给meat头信息服务器验证文件MD5
var objectMeta = new ObjectMetadata
{
ContentMd5 = md5
};
//文件上传--空间名、文件保存路径、文件流、meta头信息(文件md5) //返回meta头信息(文件md5)
aliyun.PutObject(_filesStorageOptions.BucketName, filePath, fileStream, objectMeta);
//返回给UEditor的插入编辑器的图片的src
jm.code = 0;
jm.msg = "上传成功";
jm.data = new
{
fileUrl = _filesStorageOptions.BucketBindUrl + filePath,
src = _filesStorageOptions.BucketBindUrl + filePath
};
} }
else if (_filesStorageOptions.StorageType == GlobalEnumVars.FilesStorageOptionsType.QCloudOSS.ToString()) else if (filesStorageOptions.StorageType == GlobalEnumVars.FilesStorageOptionsType.QCloudOSS.ToString())
{ {
//上传到腾讯云OSS //上传到腾讯云OSS
//初始化 CosXmlConfig url = _toolsServices.UpLoadBase64ForQCloudOSS(filesStorageOptions, response.RawBytes);
string appid = _filesStorageOptions.AccountId;//设置腾讯云账户的账户标识 APPID }
string region = _filesStorageOptions.CosRegion; //设置一个默认的存储桶地域 else if (filesStorageOptions.StorageType == GlobalEnumVars.FilesStorageOptionsType.QiNiuKoDo.ToString())
CosXmlConfig config = new CosXmlConfig.Builder() {
//.SetAppid(appid) //上传到七牛云kodo
.IsHttps(true) //设置默认 HTTPS 请求 url = _toolsServices.UpLoadBase64ForQiNiuKoDo(filesStorageOptions, response.RawBytes);
.SetRegion(region) //设置一个默认的存储桶地域 }
.SetDebugLog(true) //显示日志
.Build(); //创建 CosXmlConfig 对象
long durationSecond = 600; //每次请求签名有效时长,单位为秒 var bl = !string.IsNullOrEmpty(url);
QCloudCredentialProvider qCloudCredentialProvider = new DefaultQCloudCredentialProvider( jm.code = bl ? 0 : 1;
_filesStorageOptions.AccessKeyId, _filesStorageOptions.AccessKeySecret, durationSecond); jm.msg = bl ? "上传成功!" : "上传失败";
var cosXml = new CosXmlServer(config, qCloudCredentialProvider);
byte[] bytes = memStream.ToArray();
var filePath = "Upload/QrCode/" + today + "/" + newFileName; //云文件保存路径
COSXML.Model.Object.PutObjectRequest putObjectRequest = new COSXML.Model.Object.PutObjectRequest(_filesStorageOptions.TencentBucketName, filePath, bytes);
cosXml.PutObject(putObjectRequest);
jm.code = 0;
jm.msg = "上传成功";
jm.data = new jm.data = new
{ {
fileUrl = _filesStorageOptions.BucketBindUrl + filePath, fileUrl = url,
src = _filesStorageOptions.BucketBindUrl + filePath src = url
}; };
}
} }
else else
{ {
@@ -737,7 +674,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
//返回数据 //返回数据
var jm = new AdminUiCallBack { code = 0 }; var jm = new AdminUiCallBack { code = 0 };
var _filesStorageOptions = await _coreCmsSettingServices.GetFilesStorageOptions(); var filesStorageOptions = await _coreCmsSettingServices.GetFilesStorageOptions();
var pageModel = await _pagesServices.QueryByClauseAsync(p => p.code == entity.id); var pageModel = await _pagesServices.QueryByClauseAsync(p => p.code == entity.id);
@@ -761,100 +698,37 @@ namespace CoreCms.Net.Web.Admin.Controllers
{ {
var memStream = new MemoryStream(response.RawBytes); var memStream = new MemoryStream(response.RawBytes);
var newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", DateTimeFormatInfo.InvariantInfo) + ".jpg"; string url = string.Empty;
var today = DateTime.Now.ToString("yyyyMMdd"); if (filesStorageOptions.StorageType == GlobalEnumVars.FilesStorageOptionsType.LocalStorage.ToString())
if (_filesStorageOptions.StorageType == GlobalEnumVars.FilesStorageOptionsType.LocalStorage.ToString())
{ {
var saveUrl = "/Upload/QrCode/" + today + "/"; url = _toolsServices.UpLoadBase64ForLocalStorage(filesStorageOptions, memStream);
var dirPath = _webHostEnvironment.WebRootPath + saveUrl;
string bucketBindDomain = AppSettingsConstVars.AppConfigAppUrl;
if (!Directory.Exists(dirPath)) Directory.CreateDirectory(dirPath);
var filePath = dirPath + newFileName;
var fileUrl = saveUrl + newFileName;
//储存图片
System.IO.File.Delete(filePath);
await using (var fs = new FileStream(filePath, FileMode.CreateNew))
{
await memStream.CopyToAsync(fs).ConfigureAwait(false);
await fs.FlushAsync().ConfigureAwait(false);
} }
else if (filesStorageOptions.StorageType == GlobalEnumVars.FilesStorageOptionsType.AliYunOSS.ToString())
jm.code = 0;
jm.msg = "上传成功!";
jm.data = new
{
fileUrl,
src = bucketBindDomain + fileUrl
};
}
else if (_filesStorageOptions.StorageType == GlobalEnumVars.FilesStorageOptionsType.AliYunOSS.ToString())
{ {
//上传到阿里云 //上传到阿里云
url = await _toolsServices.UpLoadBase64ForAliYunOSS(filesStorageOptions, memStream);
// 设置当前流的位置为流的开始
memStream.Seek(0, SeekOrigin.Begin);
await using var fileStream = memStream;
var md5 = OssUtils.ComputeContentMd5(fileStream, memStream.Length);
var filePath = "Upload/QrCode/" + today + "/" + newFileName; //云文件保存路径
//初始化阿里云配置--外网Endpoint、访问ID、访问password
var aliyun = new OssClient(_filesStorageOptions.Endpoint, _filesStorageOptions.AccessKeyId, _filesStorageOptions.AccessKeySecret);
//将文件md5值赋值给meat头信息服务器验证文件MD5
var objectMeta = new ObjectMetadata
{
ContentMd5 = md5
};
//文件上传--空间名、文件保存路径、文件流、meta头信息(文件md5) //返回meta头信息(文件md5)
aliyun.PutObject(_filesStorageOptions.BucketName, filePath, fileStream, objectMeta);
//返回给UEditor的插入编辑器的图片的src
jm.code = 0;
jm.msg = "上传成功";
jm.data = new
{
fileUrl = _filesStorageOptions.BucketBindUrl + filePath,
src = _filesStorageOptions.BucketBindUrl + filePath
};
} }
else if (_filesStorageOptions.StorageType == GlobalEnumVars.FilesStorageOptionsType.QCloudOSS.ToString()) else if (filesStorageOptions.StorageType == GlobalEnumVars.FilesStorageOptionsType.QCloudOSS.ToString())
{ {
//上传到腾讯云OSS //上传到腾讯云OSS
//初始化 CosXmlConfig url = _toolsServices.UpLoadBase64ForQCloudOSS(filesStorageOptions, response.RawBytes);
string appid = _filesStorageOptions.AccountId;//设置腾讯云账户的账户标识 APPID }
string region = _filesStorageOptions.CosRegion; //设置一个默认的存储桶地域 else if (filesStorageOptions.StorageType == GlobalEnumVars.FilesStorageOptionsType.QiNiuKoDo.ToString())
CosXmlConfig config = new CosXmlConfig.Builder() {
//.SetAppid(appid) //上传到七牛云kodo
.IsHttps(true) //设置默认 HTTPS 请求 url = _toolsServices.UpLoadBase64ForQiNiuKoDo(filesStorageOptions, response.RawBytes);
.SetRegion(region) //设置一个默认的存储桶地域 }
.SetDebugLog(true) //显示日志
.Build(); //创建 CosXmlConfig 对象
long durationSecond = 600; //每次请求签名有效时长,单位为秒 var bl = !string.IsNullOrEmpty(url);
QCloudCredentialProvider qCloudCredentialProvider = new DefaultQCloudCredentialProvider( jm.code = bl ? 0 : 1;
_filesStorageOptions.AccessKeyId, _filesStorageOptions.AccessKeySecret, durationSecond); jm.msg = bl ? "上传成功!" : "上传失败";
var cosXml = new CosXmlServer(config, qCloudCredentialProvider);
byte[] bytes = memStream.ToArray();
var filePath = "Upload/QrCode/" + today + "/" + newFileName; //云文件保存路径
COSXML.Model.Object.PutObjectRequest putObjectRequest = new COSXML.Model.Object.PutObjectRequest(_filesStorageOptions.TencentBucketName, filePath, bytes);
cosXml.PutObject(putObjectRequest);
jm.code = 0;
jm.msg = "上传成功";
jm.data = new jm.data = new
{ {
fileUrl = _filesStorageOptions.BucketBindUrl + filePath, fileUrl = url,
src = _filesStorageOptions.BucketBindUrl + filePath src = url
}; };
}
} }
else else
{ {

View File

@@ -1053,3 +1053,15 @@ xm-select .xm-body .xm-option.hide-icon.selected {
width: 60px; width: 60px;
background-image: url(../images/common/logoMin.png); background-image: url(../images/common/logoMin.png);
} }
.ew-tree-table .ew-tree-pack {
cursor: pointer;
line-height: 16px;
display: inline;
vertical-align: middle;
}
.ew-tree-table .ew-tree-pack > span {
height: 16px;
line-height: 16px;
display: inline;
vertical-align: middle;
}

View File

@@ -359,3 +359,6 @@ xm-select .xm-label .xm-label-block, xm-select .xm-body .xm-option.hide-icon.sel
} }
.layadmin-side-shrink .layui-layout-admin .layui-logo { width: 60px; background-image: url(../images/common/logoMin.png); } .layadmin-side-shrink .layui-layout-admin .layui-logo { width: 60px; background-image: url(../images/common/logoMin.png); }
.ew-tree-table .ew-tree-pack { cursor: pointer; line-height: 16px; display: inline; vertical-align: middle; }
.ew-tree-table .ew-tree-pack > span { height: 16px; line-height: 16px; display: inline; vertical-align: middle; }

File diff suppressed because one or more lines are too long