找到蓝牙设备 忽略设备找到对应硬件设备 关闭再开启
function extractTableData() { const table = document.querySelector('table'); const rows = table.querySelectorAll('tbody tr'); const jsonData = []; const stack = []; const levelCounts = {}; // Track the count of items at each level rows.forEach(row => { const cells = row.querySelectorAll('td'); const level = parseInt(row.getAttribute('level') || 0, 10); // Update the count for this level if (!levelCounts[level]) { levelCounts[level] = 0; } levelCounts[level]++; // Retain "必填" initially and then clean up let fieldText = cells[0].textContent.trim(); let hasRequired = false; if (fieldText.includes('必填')) { fieldText = fieldText.replace('必填', '').trim(); // Remove "必填" and trim spaces hasRequired = true; } const rowData = { field: fieldText, type: cells[1].textContent.trim(), description: cells[2].textContent.trim() + ' ### ' + cells[3].textContent.trim(), hasRequired: hasRequired, children: [] }; // Determine where to place the current row data based on the level while (stack.length > 0 && stack[stack.length - 1].level >= level) { stack.pop(); } if (stack.length > 0) { stack[stack.length - 1].data.children.push(rowData); } else { jsonData.push(rowData); } // Push the current row data onto the stack stack.push({ data: rowData, level: level }); }); console.log(`Number of items at level 1: ${levelCounts[1] || 0}`); // Print number of items at level 1 return jsonData; } function generateKeyValuePairs(data, level = 0) { let result = ''; data.forEach((item, index) => { // Indent according to the level to maintain hierarchy const indent = ' '.repeat(level); // Add the field and its empty value result += `${indent}"${item.field}":`; // Format the comment based on whether "必填" is present const commentPrefix = item.hasRequired ? ' // !必填 ' : ' // '; const description = item.description; // If there are children, format as an object if (item.children.length > 0) { result += ` {\n`; // Add the formatted comment result += `${indent} ${commentPrefix}${description}\n`; // Recursively process children result += generateKeyValuePairs(item.children, level + 1); result += `${indent}},`; // Add closing brace with comma } else { result += ` ""`; // If no children, just an empty string // Add the formatted comment result += `, ${commentPrefix}${description}`; } // Add a newline after each item result += `\n`; }); return result; } // Extract table data and generate key-value pairs with comments const jsonData = extractTableData(); const formattedOutput = generateKeyValuePairs(jsonData); // Format the final JSON object console.log(`{\n${formattedOutput.trim().replace(/,\n$/, '\n')}\n}`);
(Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)'))
import ssl print(ssl.get_default_verify_paths())如果不存在 /usr/local/openssl/ssl/cert.pemln /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem /usr/local/openssl/ssl/cert.pem
一、我的环境python：3.11.3node：16.20.2mysql：8.0redis：5.0.7nginx：1.18二、克隆项目官方地址：https://gitee.com/likeadmin/likeadmin_python.git三、python后端项目配置1、数据库新建数据库，字符集：utf8mb4导入sql，sql路径sql/install.sql2、配置redis3、配置nginx这块部署的时候配置即可，需要局部或者全局配置文件大小和超时时长我在局部配置的，这块当时主要是影响了文件的上传，上传报错location / { proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_redirect http:// https://; proxy_pass http://127.0.0.1:8000; client_max_body_size 500M; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_request_buffering off; proxy_send_timeout 300; proxy_read_timeout 300; proxy_connect_timeout 300; } CnCopy4、python项目配置安装依赖虚拟环境就不多说了server目录下 pip install -r requirements.txt安装依赖过程中暂时没有遇到报错将server包下的.example.env复制一份重命名为.env,修改内容1、mysql连接串 DATABASE_URL改为自己的用户名密码和数据库名称eg: DATABASE_URL=’mysql+pymysql://root:root@127.0.0.1:3306/likeadmin?charset=utf8mb4′2、Redis连接串REDIS_URL改为自己的Redis信息eg: REDIS_URL=’redis://:@127.0.0.1:6379/0′ (空密码空用户名)3、上传文件的目录 UPLOAD_DIRECTORY，根据自己需要修改4、DOMAIN 修改为http://127.0.0.1:8000配置文件修改server/like/config.py1、图片和视频限制根据上传文件大小配置，否则后续文件上传超限报的错误很难查找我遇到的情况，上传实际是超限和超时，但是前端报的错误并不是图片扩展也要检查一下，有的项目里将jpg写的是jpj，需要修正2、配置默认请求超时时间，可以适当调时间长点request_timeout = 3003、domain有的是https，有是的80端口，修改如下，如果是https的话，修改为httpdomain = ‘http://127.0.0.1:8000’ 配置server/like/plugins/storage/engine/aliyun.py如果你使用阿里云OSS的话，需要修改这块，写死的endpoint，改成config.get(“domain”)配置server/like/utils/urls.py转绝对路径这个方法有一个拼接错误的问题，当你使用阿里云或者七牛云的时候，文件上传成功后返回文件地址，后端还会调用一个url转绝对路径的方法，导致转换后的path错误，具体见server/like/plugins/storage/storage_driver.py问题点：上传阿里云或者七牛云之后，返回的资源url实际是可用url，但是这个方法处理之后就加了一个前缀，导致最终的path无法访问，具体情况大家可以对照一下数据库里面的配置对照一下逻辑即清楚解决方法：加个判断或者优化下判断逻辑即可解决我在上面判断了下url是http开头，直接return url了水平有限，大佬肯定有更好的优化方法了遇到的报错之一上传视频报错ploadAjaxError: fail to post https://xxx.cn/api/common/upload/video 0at $s (element-plus.04b9acc3.js:14:111563)at XMLHttpRequest.<anonymous> (element-plus.04b9acc3.js:14:112136)显示{“code”:312,”msg”:”请求方法错误”,”data”:[]}配置server/asgi.py和server/asgi_front.py检查host 和porthost=’0.0.0.0′, port=分别是8000 8002启动python服务端1、在server目录下执行命令,出现以下内容表示启动成功python asgi.py PythonCopy浏览器访问下方地址，看到接口返回信息说明启动成功http://127.0.0.1:8000/api/common/index/config 进入 http://127.0.0.1:8000/redoc 出现相关接口文档2、启动前端服务，这块是支撑uniapp的，如果不启动uniapp项目，这个服务可以不启动python asgi_front.py PythonCopy5、python服务打包这个就不赘述，我是用Pyinstaller 进行打包的四、admin项目配置1、安装依赖切换到admin目录，建议使用yarn安装npm安装依赖的时候，出现依赖冲突或者错误等问题，会导致依赖安装失败yarn安装依赖的时候，会先安装包成功，可以修改依赖包相关配置，把项目跑起来执行yarn命令安装依赖2、配置配置文件admin/vite.config.ts添加代理服务export default defineConfig({ // base: '/admin/', server: { host: '0.0.0.0', proxy: { '/api': { target: 'http://127.0.0.1:8000', //或者自己的api地址 changeOrigin: true } } }, PythonCopy配置文件admin/src/config/index.tsbaseUrl: ${import.meta.env.VITE\_APP\_BASE_URL || ”}/, //请求接口域名修改为：baseUrl: ${import.meta.env.VITE\_APP\_BASE_URL || ”}, //请求接口域名urlPrefix 改为 /api 这块主要涉及很多地方判断是/api开头，及路径转换判断、接口等问题timeout 修改大一点，这个请求超时时长也会影响到资源上传失败配置文件admin/src/components/upload/index.vue将图片配置的.jpj 修改为 .jpg配置文件admin/src/components/material/index.vue修改uri参数，解决素材中心查看图片失败的问题将uri修改为url3、前端调试启动前端项目yarn dev报错1、CanceledError {message: ‘api/article/list’, name: ‘CanceledError’, code: ‘ERR_CANCELED’}官方答复：这个报错是取消重复请求的，可以不用管报错2：No known conditions for “./lib/locale/lang/zh-cn“ entry in “element-plus“ package解决方法；admin/src/App.vueimport zhCn from 'element-plus/lib/locale/lang/zh-cn' PythonCopy修改为import zhCn from 'element-plus/es/locale/lang/zh-cn' PythonCopy报错3：Failed to resolve entry for package “vue3-video-play”解决方法：admin/node_modules/vue3-video-play/package.json将packages.json中的"module": "./dist/index.es.js"改为"module": "./dist/index.mjs"报错4：登录后页面装修页面图片无法显示解决方法：配置admin/src/views/decoration/component/widgets/news/content.vue将原来的getimageUrl方法修改为getImageUrl原因可以看下admin/src/stores/modules/app.ts中的两个方法，具体看下前端请求的图片路径，如果还是无法显示，可以查看下图片路径是不是出现 //api是的话，将上图蓝框标注的/去掉即可详细情况请对照前端资源加载返回的路径情况进行调整4、admin打包yarn build打包完成后，生成的包自动复制到了根目录frontend，直接部署即可五、uniapp项目配置1、安装依赖yarn报错1：版本冲突解决方法：将uniapp/package.json中的vite版本修改为4.0.02、配置.env配置复制.env.development.example，将复制的文件名修改为.env.development复制.env.production.example，将复制的文件名修改为.env.production注意要先启动server/asgi_front.py，这个是uniapp的服务端配置uniapp的.env.developmentVITE_APP_BASE_URL端口为asgi_front对应的端口小程序配置如果调试小程序的话1、在uniapp/src/manifest.json中配置小程序appid2、在admin后台配置小程序的appid和appsecret3、如果要实现在小程序中上传图片、视频、文件，需要进行如下配置①在微信小程序后台，更新小程序隐私政策，增加图片、视频、文件的权限，根据需要增加信息类型。 需要隐私授权审核通过②项目中配置隐私授权弹窗，打包的时候会将该配置打包到app.json中uniapp/src/manifest.json“__usePrivacyCheck__”: true,3、uniapp调试启动命令,根据需要选择，具体可查看uniapp/package.jsonH5项目：yarn dev:h5小程序项目：yarn dev:mp-weixin运行完毕，项目文件在uniapp/dist/dev/mp-weixin，使用微信开发者工具或者HbuilderX导入运行即可报错1：Expected a JavaScript module script but the server responded with a MIME type of “text/html”. Strict MIME type checking is enforced for module scripts per HTML spec.解决方法：uniapp/vite.config.ts 中增加配置base:’./’4、uniapp打包H5项目打包： yarn build:h5打包完成后，生成的包会在根目录 h5 ，直接部署使用即可小程序项目打包： yarn build:mp-weixin打包完成后，生成的项目在uniapp/dist/build/mp-weixin，通过微信开发者工具上传即可目前从搭建到正常使用遇到的这些问题，记录一下，后续遇到其他问题再进行更新2024-01-07 更新问题 admin项目素材中心查看图片失败问题
第一步，通过adb进入临时root进入fastboot，电脑端adb输入fastboot boot my.imgmy.img可以是你用magisk修补过的rom包里的init_boot.img或者是kernelsu对应安卓内核版本的android13-x-boot.img第二步，找到目前手机系统init_boot.img的位置cd dev/block/by-name ls -l init_boot_a或者ls -l init_boot_b第三步，输出dd if=/dev/block/sdaxx of=/sdcard/init_boot_img第二步会得到sdaxx具体是什么在刷magisk或者kernelsu时手机变砖，可以用fastboot flash init_boot init_boot.img恢复原厂init_boot.img
Socket.io是什么Socket.io是一个用于在浏览器和服务器之间进行实时，双向和基于事件的通信库。 Socket.io包装了websocket，在浏览器支持的情况下优先使用websocket进行连接，否则回退到HTTP长轮询的方式，解决了部分浏览器暂不支持websocket的问题。安装方法在node.js服务端使用时，通过npm安装 npm install socket.io在浏览器中使用时可通过两种方式第一种 // socket.io在服务端的程序会自动将客户端的文件在该路径下暴露出来， // 因此直接通过src标签引入即可 第二种 // 在服务端... // 如果不想通过服务端暴露的文件引用，则可以禁用该功能 const io = require('socket.io')({ // 不启用 serveClient: false }); // 在客户端 // 然后通过cdn等方式引入（减轻自己服务器的压力） 与Express一起使用 const app = require('express')(); const server = require('http').createServer(app); const options = { /* ... */ }; const io = require('socket.io')(server, options); io.on('connection', socket => { /* ... */ }); server.listen(3000);基本概念命名空间(namespace)命令空间是一个通信的通道，它便于分割应用的逻辑例如：将所有客户端分割成两个空间，一个是Default空间，一个是Admin空间。对于Default空间我们可以做一些通用的操作，而对于Admin空间，我们用于做一些专用的操作。 // 在服务端... // 建立admin命名空间 const adminNamespace = io.of('/admin'); // 对admin命名空间中的所有socket使用该中间件 adminNamespace.use((socket, next) => { // 例如做一些验证操作 // ensure the user has sufficient rights next(); }); // 监听admin命名空间中所有客户端的connection事件 adminNamespace.on('connection', socket => { ... }); // 在客户端... // 连接admin命名空间 const socket = io('/admin'); // 监听connection事件 socket.on('connection', socket => { ... });默认命名空间默认命名空间 /, 所有的客户端都会默认的连接到这个命名空间房间(room)在每个命名空间内，可以定义任意的通道，称为“ Room”，套接字可以加入和退出 // 在服务端... io.on('connection', socket => { // 客户端建立连接之后，将其加入房间 socket.join('some room'); // 使用同样的方式离开一个房间 socket.leave('some room') });默认房间每一个socket都有一个随机分配的标识符Socket#id，每一个socket都会自动加入以其ID标识的房间使用中间件 // 为默认命名空间注册一个中间件 io.use((socket, next) => { if (isValid(socket.request)) { next(); } else { next(new Error('invalid')); } }); // 为自定义的命名空间制定一个中间件 io.of('/admin').use(async (socket, next) => { const user = await fetchUser(socket.handshake.query); if (user.isAdmin) { socket.user = user; next(); } else { next(new Error('forbidden')); } }); ================================================ // 可以为一个命名空间注册多个中间件，他们会依次执行 io.use((socket, next) => { next(); }); io.use((socket, next) => { next(new Error('thou shall not pass')); }); io.use((socket, next) => { // 不会执行，因为前一个中间件返回了错误 next(); }); // 如果next方法返回了Error，那么客户端会收到error事件 ==================================================== // 使用express中间件 // 大多数express的中间件都需要与socket.io兼容，你只需要将这些中间件，用一个函数包起来 const wrap = middleware => (socket, next) => middleware(socket.request, {}, next); const session = require('express-session'); io.use(wrap(session({ secret: 'cats' }))); io.on('connect', (socket) => { const session = socket.request.session; });发送消息现在已经知道了命名空间和房间，然后就该往这些命名空间和房间发送消息了 // 在服务端... // 监听连接事件 io.on('connect', onConnect); // 连接成功后使用的函数 function onConnect(socket){ // 发送到这个刚刚连接成功的客户端 socket.emit('hello', 'can you hear me?', 1, 2, 'abc'); // 发送给所有客户端，不包括发送者 socket.broadcast.emit('broadcast', 'hello friends!'); // 发送到所有在game房间的客户端，不包括发送者 socket.to('game').emit('nice game', "let's play a game"); // 发送到所有在game1或game2的客户端，不包括发送者 socket.to('game1').to('game2').emit('nice game', "let's play a game (too)"); // 发送到所有的客户端，包括发送者 io.in('game').emit('big-announcement', 'the game will start soon'); // 发送到所有在myNamespace命名空间的客户端，包括发送者 io.of('myNamespace').emit('bigger-announcement', 'the tournament will start soon'); // 发送到在myNamespace命名空间中的room房间中的客户端，包括发送者 io.of('myNamespace').to('room').emit('event', 'message'); // 发送到指定socketId的客户端(私聊) io.to(socketId).emit('hey', 'I just met you'); // 注意: `socket.to(socket.id).emit()` 不会如预期那样， // 发送消息给指定socket, 而是会把socket.id当作room的名称 // 将消息发给名为socket.id的room的房间中的每个socket（除开发送者） // 发送消息，并且带有确认回调 socket.emit('question', 'do you think so?', function (answer) {}); // 发送消息，但不使用压缩 socket.compress(false).emit('uncompressed', "that's rough"); // sending a message that might be dropped if the client is not ready to receive messages // 发送一条不可靠消息，该消息可能由于客户端未准备好而丢失 socket.volatile.emit('maybe', 'do you really need it?'); // 指定要发送的数据是否具有二进制数据 socket.binary(false).emit('what', 'I have no binaries!'); // 发送到node上的所有客户端（使用多个node时） io.local.emit('hi', 'my lovely babies'); // 发送到所有客户端 io.emit('an event sent to all connected clients'); };
const fs = require('fs'); var _0x1033 = [ "", ]; var data = fs.readFileSync("./suning.com.js", "utf-8"); for (let index = 0; index < _0x1033.length; index++) { const v = _0x1033[index]; let regex = new RegExp(`_0x1033\\\[${index}\\]`, 'g'); console.log(regex) data=data.replace(regex, `"${v}"`); } fs.writeFileSync('./suning.com.decode.js', data)
1、搜索 promptText 找yield ybe(n)这个函数function eE() { return B(this, null, function* () { let t = yield me.window.showInputBox({ prompt: oe.promptText, placeHolder: oe.placeHolder, ignoreFocusOut: !0 }); if (t) { // 以下更改代码 let n = '{ "signature":"9A67311816caZfsGXE6TxeS4NyN2UkaQC"}'; yield ybe(n); // let r; // if (t.length > 32) try { // var e = JSON.parse(t); // e.signature && (r = t); // } catch (n) { // r = void 0; // } // r || (r = yield me.window.withProgress({ // location: me.ProgressLocation.Notification, // title: oe.phptools_activate_title // }, () => B(this, null, function* () { // // console.log(111111111111,$r(mbe), $r(hbe), new (JN())($r(R6)).encrypt(t, "base64").replace(/\+/g, "-").replace(/\//g, "|").replace(/=/g, "_"), () => eE()); // return yield O6($r(mbe), $r(hbe), new (JN())($r(R6)).encrypt(t, "base64").replace(/\+/g, "-").replace(/\//g, "|").replace(/=/g, "_"), () => eE()); // }))), r && (yield ybe(r)); } //else _u(); }); }2、搜索 ybe( 上面的函数名称function ybe(t) { // 以下更改代码 pu.globalState.update('Ahmed', t) return B(this, null, function* () { try { // pu.globalState.update(eI + $r(Zh) + "." + (0, qp.userInfo)().username, t) switch (JSON.parse(t),pu.globalState.update('Ahmed', t), si.appendLine(oe.licenseStored), (yield fu())[0]) { case 2: me.window.showInformationMessage(oe.activationSucceeded); break; case 1: me.window.showInformationMessage(oe.expired); break; case 3: default: me.window.showInformationMessage(oe.invalidLicenseKey); break; } } catch (e) { si.appendLine(oe.licenseError), me.window.showErrorMessage(oe.invalidLicenseKey), bi(e), _u(); } N6(); }); }3、搜索 .expirationfunction fu() { return B(this, null, function* () { // let t = yield Tbe(); // 以下主要代码 找到连续三个冒号取第二个冒号值，三个值分别代表（expired flag,valid flag,invalid flag） return [2, !0] // if (t) { // var e = Cm()((0, qp.userInfo)().username) + "#" + t.license + "#" + t.expiration, // r = new (JN())($r(R6)).verify(e, t.signature, "utf8", "base64"); // return r ? (yield Cbe(t)) ? [1, !0] : [2, !0] : [3, !0]; // } else return [0, !1]; }); }4、最后激活* Save and reload vscode * `ctrl+p` * type `activate `in the command palette and choose PHP Tools * Enter this fake key "`9A67311816caZfsGXE6TxeS4NyN2UkaQC`"
css ui/** 初始化 **/ body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,input,button,textarea,p,blockquote,th,td,form,pre{margin: 0; padding: 0; -webkit-tap-highlight-color:rgba(0,0,0,0);} a:active,a:hover{outline:0} img{display: inline-block; border: none; vertical-align: middle;} li{list-style:none;} table{border-collapse: collapse; border-spacing: 0;} h1,h2,h3,h4{font-weight: 700;} h5,h6{font-weight: 500; font-size: 100%;} button,input,select,textarea{font-size: 100%; } input,button,textarea,select,optgroup,option{font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; outline: 0;} pre{white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;} /** 初始化全局标签 **/ body{line-height: 1.6; color: #333; color: rgba(0,0,0,.85); font: 14px Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif;} hr{height: 0; line-height: 0; margin: 10px 0; padding: 0; border: none!important; border-bottom: 1px solid #eee !important; clear: both; overflow: hidden; background: none;} a{color: #333; text-decoration:none;} a:hover{color: #777;} a cite{font-style: normal; *cursor:pointer;} /** 基础通用 **/ .border-box, .border-box *{box-sizing: border-box;} /* 消除第三方ui可能造成的冲突 */.box, .box *{box-sizing: content-box;} .clear{clear: both; *zoom: 1;} .clear:after{content:'\20'; clear:both; *zoom:1; display:block; height:0;} .clear-space{word-spacing: -5px;} .inline{position: relative; display: inline-block; *display:inline; *zoom:1; vertical-align: middle;} /* 三角形 */.edge{position: relative; display: inline-block; vertical-align: middle; width: 0; height: 0; border-width: 6px; border-style: dashed; border-color: transparent; overflow: hidden;} .edge-top{top: -4px; border-bottom-color: #999; border-bottom-style: solid;} .edge-right{border-left-color: #999; border-left-style: solid;} .edge-bottom{top: 2px; border-top-color: #999; border-top-style: solid;} .edge-left{border-right-color: #999; border-right-style: solid;} /* 单行溢出省略 */.elip{text-overflow: ellipsis; overflow: hidden; white-space: nowrap;} /* 屏蔽选中 */.unselect,.icon, .disabled{-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none;} /* 禁用 */.disabled,.disabled:hover{color: #d2d2d2 !important; cursor: not-allowed !important;} /* 纯圆角 */.circle{border-radius: 100%;} .show{display: block !important;} .hide{display: none !important;} .show-v{visibility: visible !important;} .hide-v{visibility: hidden !important;} /** 图标字体 **/ @font-face { font-family: 'icon'; src: url('../font/iconfont.eot?v=282'); src: url('../font/iconfont.eot?v=282#iefix') format('embedded-opentype'), url('../font/iconfont.woff2?v=282') format('woff2'), url('../font/iconfont.woff?v=282') format('woff'), url('../font/iconfont.ttf?v=282') format('truetype'), url('../font/iconfont.svg?v=282#icon') format('svg'); } .icon{ font-family:"icon" !important; font-size: 16px; font-style: normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* font-class */ .icon-leaf:before{content: "\e701";} .icon-folder:before{content: "\eabe";} .icon-folder-open:before{content: "\eac1";} .icon-gitee:before{content: "\e69b";} .icon-github:before{content:"\e6a7"} .icon-disabled:before{content:"\e6cc"} .icon-moon:before{content:"\e6c2"} .icon-error:before{content:"\e693"} .icon-success:before{content:"\e697"} .icon-question:before{content:"\e699"} .icon-lock:before{content:"\e69a"} .icon-eye:before{content:"\e695"} .icon-eye-invisible:before{content:"\e696"} .icon-backspace:before{content:"\e694"} .icon-tips-fill:before{content:"\eb2e"} .icon-test:before{content:"\e692"} .icon-clear:before{content:"\e788"} .icon-heart-fill:before{content:"\e68f"} .icon-light:before{content:"\e748"} .icon-music:before{content:"\e690"} .icon-time:before{content:"\e68d"} .icon-ie:before{content:"\e7bb"} .icon-firefox:before{content:"\e686"} .icon-at:before{content:"\e687"} .icon-bluetooth:before{content:"\e689"} .icon-chrome:before{content:"\e68a"} .icon-edge:before{content:"\e68b"} .icon-heart:before{content:"\e68c"} .icon-key:before{content:"\e683"} .icon-android:before{content:"\e684"} .icon-mike:before{content:"\e6dc"} .icon-mute:before{content:"\e685"} .icon-gift:before{content:"\e627"} .icon-windows:before{content:"\e67f"} .icon-ios:before{content:"\e680"} .icon-logout:before{content:"\e682"} .icon-wifi:before{content:"\e7e0"} .icon-rss:before{content:"\e808"} .icon-email:before{content:"\e618"} .icon-reduce-circle:before{content:"\e616"} .icon-transfer:before{content:"\e691"} .icon-service:before{content:"\e626"} .icon-addition:before{content:"\e624"} .icon-subtraction:before{content:"\e67e"} .icon-slider:before{content:"\e714"} .icon-print:before{content:"\e66d"} .icon-export:before{content:"\e67d"} .icon-cols:before{content:"\e610"} .icon-screen-full:before{content:"\e622"} .icon-screen-restore:before{content:"\e758"} .icon-rate-half:before{content:"\e6c9"} .icon-rate-solid:before{content:"\e67a"} .icon-rate:before{content:"\e67b"} .icon-cellphone:before{content:"\e678"} .icon-vercode:before{content:"\e679"} .icon-login-weibo:before{content:"\e675"} .icon-login-qq:before{content:"\e676"} .icon-login-wechat:before{content:"\e677"} .icon-username:before{content:"\e66f"} .icon-password:before{content:"\e673"} .icon-refresh-3:before{content:"\e9aa"} .icon-auz:before{content:"\e672"} .icon-shrink-right:before{content:"\e668"} .icon-spread-left:before{content:"\e66b"} .icon-snowflake:before{content:"\e6b1"} .icon-tips:before{content:"\e702"} .icon-note:before{content:"\e66e"} .icon-senior:before{content:"\e674"} .icon-refresh-1:before{content:"\e666"} .icon-refresh:before{content:"\e669"} .icon-flag:before{content:"\e66c"} .icon-theme:before{content:"\e66a"} .icon-notice:before{content:"\e667"} .icon-console:before{content:"\e665"} .icon-website:before{content:"\e7ae"} .icon-face-surprised:before{content:"\e664"} .icon-set:before{content:"\e716"} .icon-template:before{content:"\e663"} .icon-app:before{content:"\e653"} .icon-template-1:before{content:"\e656"} .icon-home:before{content:"\e68e"} .icon-female:before{content:"\e661"} .icon-male:before{content:"\e662"} .icon-tread:before{content:"\e6c5"} .icon-praise:before{content:"\e6c6"} .icon-rmb:before{content:"\e65e"} .icon-more:before{content:"\e65f"} .icon-camera:before{content:"\e660"} .icon-cart-simple:before{content:"\e698"} .icon-face-cry:before{content:"\e69c"} .icon-face-smile:before{content:"\e6af"} .icon-survey:before{content:"\e6b2"} .icon-read:before{content:"\e705"} .icon-location:before{content:"\e715"} .icon-dollar:before{content:"\e659"} .icon-diamond:before{content:"\e735"} .icon-return:before{content:"\e65c"} .icon-camera-fill:before{content:"\e65d"} .icon-fire:before{content:"\e756"} .icon-more-vertical:before{content:"\e671"} .icon-cart:before{content:"\e657"} .icon-star-fill:before{content:"\e658"} .icon-prev:before{content:"\e65a"} .icon-next:before{content:"\e65b"} .icon-upload:before{content:"\e67c"} .icon-upload-drag:before{content:"\e681"} .icon-user:before{content:"\e770"} .icon-file-b:before{content:"\e655"} .icon-component:before{content:"\e857"} .icon-find-fill:before{content:"\e670"} .icon-loading:before{content:"\e63d"} .icon-loading-1:before{content:"\e63e"} .icon-add-1:before{content:"\e654"} .icon-pause:before{content:"\e651"} .icon-play:before{content:"\e652"} .icon-video:before{content:"\e6ed"} .icon-headset:before{content:"\e6fc"} .icon-voice:before{content:"\e688"} .icon-speaker:before{content:"\e645"} .icon-fonts-del:before{content:"\e64f"} .icon-fonts-html:before{content:"\e64b"} .icon-fonts-code:before{content:"\e64e"} .icon-fonts-strong:before{content:"\e62b"} .icon-unlink:before{content:"\e64d"} .icon-picture:before{content:"\e64a"} .icon-link:before{content:"\e64c"} .icon-face-smile-b:before{content:"\e650"} .icon-align-center:before{content:"\e647"} .icon-align-right:before{content:"\e648"} .icon-align-left:before{content:"\e649"} .icon-fonts-u:before{content:"\e646"} .icon-fonts-i:before{content:"\e644"} .icon-tabs:before{content:"\e62a"} .icon-circle:before{content:"\e63f"} .icon-radio:before{content:"\e643"} .icon-share:before{content:"\e641"} .icon-edit:before{content:"\e642"} .icon-delete:before{content:"\e640"} .icon-engine:before{content:"\e628"} .icon-chart-screen:before{content:"\e629"} .icon-chart:before{content:"\e62c"} .icon-table:before{content:"\e62d"} .icon-tree:before{content:"\e62e"} .icon-upload-circle:before{content:"\e62f"} .icon-templeate-1:before{content:"\e630"} .icon-util:before{content:"\e631"} .icon-layouts:before{content:"\e632"} .icon-prev-circle:before{content:"\e633"} .icon-carousel:before{content:"\e634"} .icon-code-circle:before{content:"\e635"} .icon-water:before{content:"\e636"} .icon-date:before{content:"\e637"} .icon-layer:before{content:"\e638"} .icon-fonts-clear:before{content:"\e639"} .icon-dialogue:before{content:"\e63a"} .icon-cellphone-fine:before{content:"\e63b"} .icon-form:before{content:"\e63c"} .icon-file:before{content:"\e621"} .icon-triangle-r:before{content:"\e623"} .icon-triangle-d:before{content:"\e625"} .icon-set-sm:before{content:"\e620"} .icon-add-circle:before{content:"\e61f"} .icon-layim-download:before{content:"\e61e"} .icon-layim-uploadfile:before{content:"\e61d"} .icon-404:before{content:"\e61c"} .icon-about:before{content:"\e60b"} .icon-layim-theme:before{content:"\e61b"} .icon-down:before{content:"\e61a"} .icon-up:before{content:"\e619"} .icon-circle-dot:before{content:"\e617"} .icon-set-fill:before{content:"\e614"} .icon-search:before{content:"\e615"} .icon-friends:before{content:"\e612"} .icon-group:before{content:"\e613"} .icon-reply-fill:before{content:"\e611"} .icon-menu-fill:before{content:"\e60f"} .icon-face-smile-fine:before{content:"\e60c"} .icon-picture-fine:before{content:"\e60d"} .icon-log:before{content:"\e60e"} .icon-list:before{content:"\e60a"} .icon-release:before{content:"\e609"} .icon-add-circle-fine:before{content:"\e608"} .icon-ok:before{content:"\e605"} .icon-help:before{content:"\e607"} .icon-chat:before{content:"\e606"} .icon-top:before{content:"\e604"} .icon-right:before{content:"\e602"} .icon-left:before{content:"\e603"} .icon-star:before{content:"\e600"} .icon-download-circle:before{content:"\e601"} .icon-close:before{content:"\1006"} .icon-close-fill:before{content:"\1007"} .icon-ok-circle:before{content:"\1005"} /* 基本布局 */ .main{position: relative; width: 1160px; margin: 0 auto;} .header{position: relative; z-index: 1000; height: 60px;} .header a:hover{transition: all .5s; -webkit-transition: all .5s;} .side{position: fixed; left: 0; top: 0; bottom: 0; z-index: 999; width: 200px; overflow-x: hidden;} .side-scroll{position: relative; width: 220px; height: 100%; overflow-x: hidden;} .body{position: relative; left: 200px; right: 0; top: 0; bottom: 0; z-index: 900; width: auto; box-sizing: border-box;} /* 后台框架大布局 */ .layout-body{overflow-x: hidden;} .layout-admin .header{position: fixed; top: 0; left: 0; right: 0; background-color: #23292e;} .layout-admin .side{top: 60px; width: 200px; overflow-x: hidden;} .layout-admin .body{position: absolute; top: 60px; padding-bottom: 44px;} .layout-admin .main{width: auto; margin: 0 15px;} .layout-admin .footer{position: fixed; left: 200px; right: 0; bottom: 0; z-index: 990; height: 44px; line-height: 44px; padding: 0 15px; box-shadow: -1px 0 4px rgb(0 0 0 / 12%); background-color: #fafafa;} .layout-admin .logo{position: absolute; left: 0; top: 0; width: 200px; height: 100%; line-height: 60px; text-align: center; color: #16baaa; font-size: 16px; box-shadow: 0 1px 2px 0 rgb(0 0 0 / 15%);} .layout-admin .header .nav{background: none;} .layout-left{position: absolute !important; left: 200px; top: 0;} .layout-right{position: absolute !important; right: 0; top: 0;} /* 栅格布局 */ .container{position: relative; margin: 0 auto; box-sizing: border-box;} .fluid{position: relative; margin: 0 auto; padding: 0 15px;} .row:before, .row:after{content: ""; display: block; clear: both;} .col-xs1, .col-xs2, .col-xs3, .col-xs4, .col-xs5, .col-xs6, .col-xs7, .col-xs8, .col-xs9, .col-xs10, .col-xs11, .col-xs12 ,.col-sm1, .col-sm2, .col-sm3, .col-sm4, .col-sm5, .col-sm6, .col-sm7, .col-sm8, .col-sm9, .col-sm10, .col-sm11, .col-sm12 ,.col-md1, .col-md2, .col-md3, .col-md4, .col-md5, .col-md6, .col-md7, .col-md8, .col-md9, .col-md10, .col-md11, .col-md12 ,.col-lg1, .col-lg2, .col-lg3, .col-lg4, .col-lg5, .col-lg6, .col-lg7, .col-lg8, .col-lg9, .col-lg10, .col-lg11, .col-lg12 ,.col-xl1, .col-xl2, .col-xl3, .col-xl4, .col-xl5, .col-xl6, .col-xl7, .col-xl8, .col-xl9, .col-xl10, .col-xl11, .col-xl12 {position: relative; display: block; box-sizing: border-box;} .col-xs1, .col-xs2, .col-xs3, .col-xs4, .col-xs5, .col-xs6, .col-xs7, .col-xs8, .col-xs9, .col-xs10, .col-xs11, .col-xs12{float: left;} .col-xs1{width: 8.33333333%;} .col-xs2{width: 16.66666667%;} .col-xs3{width: 25%;} .col-xs4{width: 33.33333333%;} .col-xs5{width: 41.66666667%;} .col-xs6{width: 50%;} .col-xs7{width: 58.33333333%;} .col-xs8{width: 66.66666667%;} .col-xs9{width: 75%;} .col-xs10{width: 83.33333333%;} .col-xs11{width: 91.66666667%;} .col-xs12{width: 100%;} .col-xs-offset1{margin-left: 8.33333333%;} .col-xs-offset2{margin-left: 16.66666667%;} .col-xs-offset3{margin-left: 25%;} .col-xs-offset4{margin-left: 33.33333333%;} .col-xs-offset5{margin-left: 41.66666667%;} .col-xs-offset6{margin-left: 50%;} .col-xs-offset7{margin-left: 58.33333333%;} .col-xs-offset8{margin-left: 66.66666667%;} .col-xs-offset9{margin-left: 75%;} .col-xs-offset10{margin-left: 83.33333333%;} .col-xs-offset11{margin-left: 91.66666667%;} .col-xs-offset12{margin-left: 100%;} /* 超小屏幕 */ @media screen and (max-width: 767.98px) { .container{padding: 0 15px;} .hide-xs{display: none!important;} .show-xs-block{display: block!important;} .show-xs-inline{display: inline!important;} .show-xs-inline-block{display: inline-block!important;} } /* 小型屏幕 */ @media screen and (min-width: 768px) { .container{width: 720px;} .hide-sm{display: none!important;} .show-sm-block{display: block!important;} .show-sm-inline{display: inline!important;} .show-sm-inline-block{display: inline-block!important;} .col-sm1, .col-sm2, .col-sm3, .col-sm4, .col-sm5, .col-sm6, .col-sm7, .col-sm8, .col-sm9, .col-sm10, .col-sm11, .col-sm12{float: left;} .col-sm1{width: 8.33333333%;} .col-sm2{width: 16.66666667%;} .col-sm3{width: 25%;} .col-sm4{width: 33.33333333%;} .col-sm5{width: 41.66666667%;} .col-sm6{width: 50%;} .col-sm7{width: 58.33333333%;} .col-sm8{width: 66.66666667%;} .col-sm9{width: 75%;} .col-sm10{width: 83.33333333%;} .col-sm11{width: 91.66666667%;} .col-sm12{width: 100%;} /* 列偏移 */ .col-sm-offset1{margin-left: 8.33333333%;} .col-sm-offset2{margin-left: 16.66666667%;} .col-sm-offset3{margin-left: 25%;} .col-sm-offset4{margin-left: 33.33333333%;} .col-sm-offset5{margin-left: 41.66666667%;} .col-sm-offset6{margin-left: 50%;} .col-sm-offset7{margin-left: 58.33333333%;} .col-sm-offset8{margin-left: 66.66666667%;} .col-sm-offset9{margin-left: 75%;} .col-sm-offset10{margin-left: 83.33333333%;} .col-sm-offset11{margin-left: 91.66666667%;} .col-sm-offset12{margin-left: 100%;} } /* 中型屏幕 */ @media screen and (min-width: 992px) { .container{width: 960px;} .hide-md{display: none!important;} .show-md-block{display: block!important;} .show-md-inline{display: inline!important;} .show-md-inline-block{display: inline-block!important;} .col-md1, .col-md2, .col-md3, .col-md4, .col-md5, .col-md6, .col-md7, .col-md8, .col-md9, .col-md10, .col-md11, .col-md12{float: left;} .col-md1{width: 8.33333333%;} .col-md2{width: 16.66666667%;} .col-md3{width: 25%;} .col-md4{width: 33.33333333%;} .col-md5{width: 41.66666667%;} .col-md6{width: 50%;} .col-md7{width: 58.33333333%;} .col-md8{width: 66.66666667%;} .col-md9{width: 75%;} .col-md10{width: 83.33333333%;} .col-md11{width: 91.66666667%;} .col-md12{width: 100%;} /* 列偏移 */ .col-md-offset1{margin-left: 8.33333333%;} .col-md-offset2{margin-left: 16.66666667%;} .col-md-offset3{margin-left: 25%;} .col-md-offset4{margin-left: 33.33333333%;} .col-md-offset5{margin-left: 41.66666667%;} .col-md-offset6{margin-left: 50%;} .col-md-offset7{margin-left: 58.33333333%;} .col-md-offset8{margin-left: 66.66666667%;} .col-md-offset9{margin-left: 75%;} .col-md-offset10{margin-left: 83.33333333%;} .col-md-offset11{margin-left: 91.66666667%;} .col-md-offset12{margin-left: 100%;} } /* 大型屏幕 */ @media screen and (min-width: 1200px) { .container{width: 1150px;} .hide-lg{display: none!important;} .show-lg-block{display: block!important;} .show-lg-inline{display: inline!important;} .show-lg-inline-block{display: inline-block!important;} .col-lg1, .col-lg2, .col-lg3, .col-lg4, .col-lg5, .col-lg6, .col-lg7, .col-lg8, .col-lg9, .col-lg10, .col-lg11, .col-lg12{float: left;} .col-lg1{width: 8.33333333%;} .col-lg2{width: 16.66666667%;} .col-lg3{width: 25%;} .col-lg4{width: 33.33333333%;} .col-lg5{width: 41.66666667%;} .col-lg6{width: 50%;} .col-lg7{width: 58.33333333%;} .col-lg8{width: 66.66666667%;} .col-lg9{width: 75%;} .col-lg10{width: 83.33333333%;} .col-lg11{width: 91.66666667%;} .col-lg12{width: 100%;} /* 列偏移 */ .col-lg-offset1{margin-left: 8.33333333%;} .col-lg-offset2{margin-left: 16.66666667%;} .col-lg-offset3{margin-left: 25%;} .col-lg-offset4{margin-left: 33.33333333%;} .col-lg-offset5{margin-left: 41.66666667%;} .col-lg-offset6{margin-left: 50%;} .col-lg-offset7{margin-left: 58.33333333%;} .col-lg-offset8{margin-left: 66.66666667%;} .col-lg-offset9{margin-left: 75%;} .col-lg-offset10{margin-left: 83.33333333%;} .col-lg-offset11{margin-left: 91.66666667%;} .col-lg-offset12{margin-left: 100%;} } /* 超大屏幕 */ @media screen and (min-width: 1400px) { .container{width: 1330px;} .hide-xl{display: none!important;} .show-xl-block{display: block!important;} .show-xl-inline{display: inline!important;} .show-xl-inline-block{display: inline-block!important;} .col-xl1, .col-xl2, .col-xl3, .col-xl4, .col-xl5, .col-xl6, .col-xl7, .col-xl8, .col-xl9, .col-xl10, .col-xl11, .col-xl12{float: left;} .col-xl1{width: 8.33333333%;} .col-xl2{width: 16.66666667%;} .col-xl3{width: 25%;} .col-xl4{width: 33.33333333%;} .col-xl5{width: 41.66666667%;} .col-xl6{width: 50%;} .col-xl7{width: 58.33333333%;} .col-xl8{width: 66.66666667%;} .col-xl9{width: 75%;} .col-xl10{width: 83.33333333%;} .col-xl11{width: 91.66666667%;} .col-xl12{width: 100%;} /* 列偏移 */ .col-xl-offset1{margin-left: 8.33333333%;} .col-xl-offset2{margin-left: 16.66666667%;} .col-xl-offset3{margin-left: 25%;} .col-xl-offset4{margin-left: 33.33333333%;} .col-xl-offset5{margin-left: 41.66666667%;} .col-xl-offset6{margin-left: 50%;} .col-xl-offset7{margin-left: 58.33333333%;} .col-xl-offset8{margin-left: 66.66666667%;} .col-xl-offset9{margin-left: 75%;} .col-xl-offset10{margin-left: 83.33333333%;} .col-xl-offset11{margin-left: 91.66666667%;} .col-xl-offset12{margin-left: 100%;} } /* 列间隔 */ .col-space1{margin: -0.5px;} .col-space1>*{padding: 0.5px;} .col-space2{margin: -1px;} .col-space2>*{padding: 1px;} .col-space4{margin: -2px;} .col-space4>*{padding: 2px;} .col-space5{margin: -2.5px;} .col-space5>*{padding: 2.5px;} .col-space6{margin: -3px;} .col-space6>*{padding: 3px;} .col-space8{margin: -4px;} .col-space8>*{padding: 4px;} .col-space10{margin: -5px;} .col-space10>*{padding: 5px;} .col-space12{margin: -6px;} .col-space12>*{padding: 6px;} .col-space14{margin: -7px;} .col-space14>*{padding: 7px;} .col-space15{margin: -7.5px;} .col-space15>*{padding: 7.5px;} .col-space16{margin: -8px;} .col-space16>*{padding: 8px;} .col-space18{margin: -9px;} .col-space18>*{padding: 9px;} .col-space20{margin: -10px;} .col-space20>*{padding: 10px;} .col-space22{margin: -11px;} .col-space22>*{padding: 11px;} .col-space24{margin: -12px;} .col-space24>*{padding: 12px;} .col-space25{margin: -12.5px;} .col-space25>*{padding: 12.5px;} .col-space26{margin: -13px;} .col-space26>*{padding: 13px;} .col-space28{margin: -14px;} .col-space28>*{padding: 14px;} .col-space30{margin: -15px;} .col-space30>*{padding: 15px;} .col-space32{margin: -16px;} .col-space32>*{padding: 16px;} /* 内边距 */ .padding-1{padding: 4px !important;} .padding-2{padding: 8px !important;} .padding-3{padding: 16px !important;} .padding-4{padding: 32px !important;} .padding-5{padding: 48px !important;} /* 外边距 */ .margin-1{margin: 4px !important;} .margin-2{margin: 8px !important;} .margin-3{margin: 16px !important;} .margin-4{margin: 32px !important;} .margin-5{margin: 48px !important;} /* * 页面元素 */ .btn, .input, .select, .textarea, .upload-button{outline: none; -webkit-appearance: none; transition: all .3s; -webkit-transition: all .3s; box-sizing: border-box;} /* 引用 */ .elem-quote{margin-bottom: 10px; padding: 15px; line-height: 1.8; border-left: 5px solid #16b777; border-radius: 0 2px 2px 0; background-color: #fafafa;} .quote-nm{border-style: solid; border-width: 1px; border-left-width: 5px; background: none;} /* 字段集合 */ .elem-field{margin-bottom: 10px; padding: 0; border-width: 1px; border-style: solid;} .elem-field legend{margin-left: 20px; padding: 0 10px; font-size: 20px;} .field-title{margin: 16px 0; border-width: 0; border-top-width: 1px;} .field-box{padding: 15px;} .field-title .field-box{padding: 10px 0;} /* 进度条 */ .progress{position: relative; height: 6px; border-radius: 20px; background-color: #eee;} .progress-bar{position: absolute; left: 0; top: 0; width: 0; max-width: 100%; height: 6px; border-radius: 20px; text-align: right; background-color: #16b777; transition: all .3s; -webkit-transition: all .3s;} .progress-big, .progress-big .progress-bar{height: 18px; line-height: 18px;} .progress-text{position: relative; top: -20px; line-height: 18px; font-size: 12px; color: #5F5F5F} .progress-big .progress-text{position: static; padding: 0 10px; color: #fff;} /* * 面板 */ /* 折叠面板 */ .collapse{border-width: 1px; border-style: solid; border-radius: 2px;} .colla-item, .colla-content{border-top-width: 1px; border-top-style: solid;} .colla-item:first-child{border-top: none;} .colla-title{position: relative; height: 42px; line-height: 42px; padding: 0 15px 0 35px; color: #333; background-color: #fafafa; cursor: pointer; font-size: 14px; overflow: hidden;} .colla-content{display: none; padding: 10px 15px; line-height: 1.6; color: #5F5F5F;} .colla-icon{position: absolute; left: 15px; top: 0; font-size: 14px;} /* 卡片面板 */ .card{margin-bottom: 15px; border-radius: 2px; background-color: #fff; box-shadow: 0 1px 2px 0 rgba(0,0,0,.05);} .card:last-child{margin-bottom: 0;} .card-header{position: relative; height: 42px; line-height: 42px; padding: 0 15px; border-bottom: 1px solid #f8f8f8; color: #333; border-radius: 2px 2px 0 0; font-size: 14px;} .card-body{position: relative; padding: 10px 15px; line-height: 24px;} .card-body[pad15]{padding: 15px;} .card-body[pad20]{padding: 20px;} .card-body .table{margin: 5px 0;} .card .tab{margin: 0;} /* 常规面板 */ .panel{position: relative; border-width: 1px; border-style: solid; border-radius: 2px; box-shadow: 1px 1px 4px rgb(0 0 0 / 8%); background-color: #fff; color: #5F5F5F;} /* 窗口面板 */ .panel-window{position: relative; padding: 15px; border-radius: 0; border-top: 5px solid #eee; background-color: #fff;} /* 其它辅助 */ .auxiliar-moving{position: fixed; left: 0; right: 0; top: 0; bottom: 0; width: 100%; height: 100%; background: none; z-index: 9999999999;} .scrollbar-hide{overflow: hidden !important;} /* * 默认主题 */ /* 背景颜色 */ .bg-red{background-color: #ff5722 !important; color: #fff!important;} /*赤*/ .bg-orange{background-color: #ffb800!important; color: #fff!important;} /*橙*/ .bg-green{background-color: #16baaa!important; color: #fff!important;} /*绿*/ .bg-cyan{background-color: #2f4056!important; color: #fff!important;} /*藏青*/ .bg-blue{background-color: #1e9fff!important; color: #fff!important;} /*蓝*/ .bg-purple{background-color: #a233c6!important; color: #fff!important;} /*紫*/ .bg-black{background-color: #2f363c!important; color: #fff!important;} /*深*/ .bg-gray{background-color: #fafafa!important; color: #5F5F5F!important;} /*浅*/ /* 边框 */ .border, .quote-nm, .elem-field, .collapse, .panel, .colla-item, .colla-content, .badge-rim, .tab-title, .tab-title .this:after, .tab-bar, .tab-card, .input, .textarea, .select, .input-split, .form-pane .form-label, .form-pane .form-item[pane]{border-color: #eee;} .border{border-width: 1px; border-style: solid; color: #5F5F5F!important;} .border-red{border-width: 1px; border-style: solid; border-color: #ff5722!important; color: #ff5722!important;} .border-orange{border-width: 1px; border-style: solid; border-color: #ffb800!important; color: #ffb800!important;} .border-green{border-width: 1px; border-style: solid; border-color: #16baaa!important; color: #16baaa!important;} .border-cyan{border-width: 1px; border-style: solid; border-color: #2f4056!important; color: #2f4056!important;} .border-blue{border-width: 1px; border-style: solid; border-color: #1e9fff!important; color: #1e9fff!important;} .border-purple{border-width: 1px; border-style: solid; border-color: #a233c6!important; color: #a233c6!important;} .border-black{border-width: 1px; border-style: solid; border-color: #2f363c!important; color: #2f363c!important;} /* 背景边框 */ .timeline-item:before{background-color: #eee;} /* 文本区域 */ .text{line-height: 1.8; font-size: 14px;} .text h1, .text h2, .text h3, .text h4, .text h5, .text h6{color: #3A3A3A;} .text h1{font-size: 32px;} .text h2{font-size: 24px;} .text h3{font-size: 18px;} .text h4{font-size: 16px;} .text h5{font-size: 14px;} .text h6{font-size: 13px;} .text ul, .text ol{padding-left: 15px;} .text ul li{margin-top: 5px; list-style-type: disc;} .text ol li{margin-top: 5px; list-style-type: decimal;} .text-em, .word-aux{color: #999 !important; padding-left: 5px !important; padding-right: 5px !important;} .text p{margin: 15px 0;} .text p:first-child{margin-top: 0;} .text p:last-child{margin-bottom: 0;} .text a:not(.btn){color: #01AAED;} .text a:not(.btn):hover{text-decoration: underline;} .text blockquote:not(.elem-quote){padding: 5px 15px; border-left: 5px solid #eee;} .text pre > code:not(.code){padding: 15px; font-family: "Courier New",Consolas,"Lucida Console";} /* 字体大小 */ .font-12{font-size: 12px !important;} .font-13{font-size: 13px !important;} .font-14{font-size: 14px !important;} .font-16{font-size: 16px !important;} .font-18{font-size: 18px !important;} .font-20{font-size: 20px !important;} .font-22{font-size: 22px !important;} .font-24{font-size: 24px !important;} .font-26{font-size: 26px !important;} .font-28{font-size: 28px !important;} .font-30{font-size: 30px !important;} .font-32{font-size: 32px !important;} /* 字体颜色 */ .font-red{color: #ff5722 !important;} /*赤*/ .font-orange{color: #ffb800!important;} /*橙*/ .font-green{color: #16baaa!important;} /*绿*/ .font-cyan{color: #2f4056!important;} /*藏青*/ .font-blue{color: #01AAED!important;} /*蓝*/ .font-purple{color: #a233c6 !important;} /*紫*/ .font-black{color: #000!important;} /*深*/ .font-gray{color: #c2c2c2!important;} /*浅*/ /* * 按钮 */ .btn{display: inline-block; vertical-align: middle; height: 38px; line-height: 38px; border: 1px solid transparent; padding: 0 18px; background-color: #16baaa; color: #fff; white-space: nowrap; text-align: center; font-size: 14px; border-radius: 2px; cursor: pointer; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none;} .btn:hover{opacity: 0.8; filter:alpha(opacity=80); color: #fff;} .btn:active{opacity: 1; filter:alpha(opacity=100);} .btn+.btn{margin-left: 10px;} /* 按钮容器 */ .btn-container{word-spacing: -5px;} .btn-container .btn{margin-right: 10px; margin-bottom: 10px; word-spacing: normal;} .btn-container .btn+.btn{margin-left: 0;} .table .btn-container .btn{margin-bottom: 9px;} /* 圆角 */.btn-radius{border-radius: 100px;} .btn .icon{padding: 0 2px; vertical-align: middle\0; vertical-align: bottom;} /* 原始 */.btn-primary{border-color: #d2d2d2; background: none; color: #5F5F5F;} .btn-primary:hover{border-color: #16baaa; color: #333;} /* 百搭 */.btn-normal{background-color: #1e9fff;} /* 暖色 */.btn-warm{background-color: #ffb800;} /* 警告 */.btn-danger{background-color: #ff5722;} /* 选中 */.btn-checked{background-color: #16b777;} /* 禁用 */.btn-disabled, .btn-disabled:hover, .btn-disabled:active{border-color: #eee !important; background-color: #FBFBFB !important; color: #d2d2d2 !important; cursor: not-allowed !important; opacity: 1;} /* 大型 */.btn-lg{height: 44px; line-height: 44px; padding: 0 25px; font-size: 16px;} /* 小型 */.btn-sm{height: 30px; line-height: 30px; padding: 0 10px; font-size: 12px;} /* 超小 */.btn-xs{height: 22px; line-height: 22px; padding: 0 5px; font-size: 12px;} .btn-xs i{font-size: 12px !important;} /* 按钮组 */.btn-group{display: inline-block; vertical-align: middle; font-size: 0;} .btn-group .btn{margin-left: 0!important; margin-right: 0!important; border-left: 1px solid rgba(255,255,255,.5); border-radius: 0;} .btn-group .btn-primary{border-left: none;} .btn-group .btn-primary:hover{border-color: #d2d2d2; color: #16baaa;} .btn-group .btn:first-child{border-left: none; border-radius: 2px 0 0 2px;} .btn-group .btn-primary:first-child{border-left: 1px solid #d2d2d2;} .btn-group .btn:last-child{border-radius: 0 2px 2px 0;} .btn-group .btn+.btn{margin-left: 0;} .btn-group+.btn-group{margin-left: 10px;} /* 流体 */.btn-fluid{width: 100%;} /** 表单 **/ .input, .textarea, .select{height: 38px; line-height: 1.3; line-height: 38px\9; border-width: 1px; border-style: solid; background-color: #fff; color: rgba(0,0,0,.85); border-radius: 2px;} .input::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .select::-webkit-input-placeholder{line-height: 1.3;} .input, .textarea{display: block; width: 100%; padding-left: 10px;} .input:hover, .textarea:hover{border-color: #d2d2d2 !important;} .input:focus, .textarea:focus{border-color: #16b777 !important; box-shadow: 0 0 0 3px rgba(22,183,119,0.08);} .textarea{position: relative; min-height: 100px; height: auto; line-height: 20px; padding: 6px 10px; resize: vertical;} .input[disabled], .textarea[disabled]{background-color: #fafafa;} .select{padding: 0 10px;} .form select, .form input[type=checkbox], .form input[type=radio]{display: none;} .form *[lay-ignore]{display: initial;} .form-item{position: relative; margin-bottom: 15px; clear: both; *zoom: 1;} .form-item:after{content:'\20'; clear: both; *zoom: 1; display: block; height:0;} .form-label{position: relative; float: left; display: block; padding: 9px 15px; width: 80px; font-weight: 400; line-height: 20px; text-align: right;} .form-label-col{display: block; float: none; padding: 9px 0; line-height: 20px; text-align: left;} .form-item .inline{margin-bottom: 5px; margin-right: 10px;} .input-block, .input-inline{position: relative;} .input-block{margin-left: 110px; min-height: 36px;} .input-inline{display: inline-block; vertical-align: middle;} .form-item .input-inline{float: left; width: 190px; margin-right: 10px;} .form-text .input-inline{width: auto;} /* 分割块 */ .form-mid{position: relative; float: left; display: block; padding: 9px 0 !important; line-height: 20px; margin-right: 10px;} /* 警告条 */ .form-danger:focus, .form-danger+.form-select .input{border-color: #ff5722 !important; box-shadow: 0 0 0 3px rgba(255,87,34,0.08);} /* 输入框点缀 */ .input-prefix, .input-suffix, .input-split, .input-suffix .input-affix{position: absolute; right: 0; top: 0; padding: 0 10px; width: 35px; height: 100%; text-align: center; transition: all .3s; box-sizing: border-box;} .input-prefix{left: 0; border-radius: 2px 0 0 2px;} .input-suffix{right: 0; border-radius: 0 2px 2px 0;} .input-split{border-width: 1px; border-style: solid;} .input-prefix .icon, .input-suffix .icon, .input-split .icon{position: relative; font-size: 16px; color: #5F5F5F; transition: all .3s;} /* 输入框前后置容器 */ .input-group{position: relative; display: table; box-sizing: border-box;} .input-group>*{display: table-cell; vertical-align: middle; position: relative;} .input-group .input{padding-right: 15px;} .input-group > .input-prefix{width: auto; border-right: 0;} .input-group > .input-suffix{width: auto; border-left: 0;} .input-group .input-split{white-space: nowrap;} /* 输入框前后缀容器 */ .input-wrap{position: relative; line-height: 38px;} .input-wrap .input{padding-right: 35px;;} .input-wrap .input::-ms-clear, .input-wrap .input::-ms-reveal{display: none;} .input-wrap .input-prefix + .input, .input-wrap .input-prefix ~ * .input{padding-left: 35px;} .input-wrap .input-split + .input, .input-wrap .input-split ~ * .input{padding-left: 45px;} .input-wrap .input-prefix ~ .form-select{position: static;} .input-wrap .input-prefix, .input-wrap .input-suffix, .input-wrap .input-split{pointer-events: none;} .input-wrap .input:hover + .input-split{border-color: #d2d2d2;} .input-wrap .input:focus + .input-split{border-color: #16b777;} .input-wrap .input-prefix.input-split{border-width: 0; border-right-width: 1px;} /* 输入框动态点缀 */ .input-affix{line-height: 38px;} .input-suffix .input-affix{right: auto; left: -35px;} .input-affix .icon{color: rgba(0,0,0,.8); pointer-events: auto!important; cursor: pointer;} .input-affix .icon-clear{color: rgba(0,0,0,.3);} .input-affix .icon:hover{color: rgba(0,0,0,.6);} /* 数字输入框动态点缀 */ .input-wrap .input-number{width: 24px; padding: 0;} .input-wrap .input-number .icon{position: absolute; right: 0; width: 100%; height: 50%; line-height: normal; font-size: 12px;} .input-wrap .input-number .icon:before{position: absolute; left: 50%; top: 50%; margin-top: -6px; margin-left: -6px;} .input-wrap .input-number .icon-up{top: 0; border-bottom: 1px solid #eee;} .input-wrap .input-number .icon-down{bottom: 0;} .input-wrap .input-number .icon:hover{font-weight: 700;} .input-wrap .input[type="number"]::-webkit-outer-spin-button, .input-wrap .input[type="number"]::-webkit-inner-spin-button{-webkit-appearance: none !important;} .input-wrap .input[type="number"]{-moz-appearance: textfield;} /* 下拉选择 */ .form-select{position: relative; color: #5F5F5F;} .form-select .input{padding-right: 30px; cursor: pointer;} .form-select .edge{position: absolute; right: 10px; top: 50%; margin-top: -3px; cursor: pointer; border-width: 6px; border-top-color: #c2c2c2; border-top-style: solid; transition: all .3s; -webkit-transition: all .3s;} .form-select dl{display: none; position: absolute; left: 0; top: 42px; padding: 5px 0; z-index: 899; min-width: 100%; border: 1px solid #eee; max-height: 300px; overflow-y: auto; background-color: #fff; border-radius: 2px; box-shadow: 1px 1px 4px rgb(0 0 0 / 8%); box-sizing: border-box;} .form-select dl dt, .form-select dl dd{padding: 0 10px; line-height: 36px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;} .form-select dl dt{font-size: 12px; color: #999;} .form-select dl dd{cursor: pointer;} .form-select dl dd:hover{background-color: #f8f8f8; -webkit-transition: .5s all; transition: .5s all;} .form-select .select-group dd{padding-left: 20px;} .form-select dl dd.select-tips{padding-left: 10px !important; color: #999;} .form-select dl dd.this{background-color: #f8f8f8; color: #16b777; font-weight: 700;} /*.form-select dl dd.this{background-color: #f8f8f8; color: #16b777; font-weight: 700;}*/ .form-select dl dd.disabled{background-color: #fff;} .form-selected dl{display: block;} .form-selected .edge{margin-top: -9px; -webkit-transform:rotate(180deg); transform: rotate(180deg);} .form-selected .edge{margin-top: -3px\0; } :root .form-selected .edge{margin-top: -9px\0/IE9;} .form-selectup dl{top: auto; bottom: 42px;} .select-none{margin: 5px 0; text-align: center; color: #999;} .select-disabled .disabled{border-color: #eee !important;} .select-disabled .edge{border-top-color: #d2d2d2} /* 复选框 */ .form-checkbox{position: relative; display: inline-block; vertical-align: middle; height: 30px; line-height: 30px; margin-right: 10px; padding-right: 30px; background-color: #fff; cursor: pointer; font-size: 0; -webkit-transition: .1s linear; transition: .1s linear; box-sizing: border-box;} .form-checkbox:hover{} .form-checkbox > *{display: inline-block; vertical-align: middle;} .form-checkbox > div{padding: 0 11px; font-size: 14px; border-radius: 2px 0 0 2px; background-color: #d2d2d2; color: #fff; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;} .form-checkbox > div > .icon{line-height: normal} .form-checkbox:hover > div{background-color: #c2c2c2;} .form-checkbox > i{position: absolute; right: 0; top: 0; width: 30px; height: 100%; border: 1px solid #d2d2d2; border-left: none; border-radius: 0 2px 2px 0; color: #fff; color: rgba(255,255,255,0); font-size: 20px; text-align: center; box-sizing: border-box;} .form-checkbox:hover > i{border-color: #c2c2c2; color: #c2c2c2;} .form-checked, .form-checked:hover{border-color: #16b777;} .form-checked > div, .form-checked:hover > div{background-color: #16b777;} .form-checked > i, .form-checked:hover > i{color: #16b777;} .form-item .form-checkbox{margin-top: 4px;} .form-checkbox.checkbox-disabled > div{background-color: #eee !important;} .form *[lay-checkbox]{display: none;} /* 复选框-默认风格 */ .form-checkbox[lay-skin="primary"]{height: auto!important; line-height: normal!important; min-width: 18px; min-height: 18px; border: none!important; margin-right: 0; padding-left: 24px; padding-right: 0; background: none;} .form-checkbox[lay-skin="primary"] > div{margin-top: -1px; padding-left: 0; padding-right: 15px; line-height: 18px; background: none; color: #5F5F5F;} .form-checkbox[lay-skin="primary"] > i{right: auto; left: 0; width: 16px; height: 16px; line-height: 14px; border: 1px solid #d2d2d2; font-size: 12px; border-radius: 2px; background-color: #fff; -webkit-transition: .1s linear; transition: .1s linear;} .form-checkbox[lay-skin="primary"]:hover > i{border-color: #16b777; color: #fff;} .form-checked[lay-skin="primary"] > i{border-color: #16b777 !important; background-color: #16b777; color: #fff;} .checkbox-disabled[lay-skin="primary"] > div{background: none!important;} .form-checked.checkbox-disabled[lay-skin="primary"] > i{background: #eee!important; border-color: #eee!important;} .checkbox-disabled[lay-skin="primary"]:hover > i{border-color: #d2d2d2;} .form-item .form-checkbox[lay-skin="primary"]{margin-top: 10px;} .form-checkbox[lay-skin="primary"] > .icon-indeterminate{border-color: #16b777;} .form-checkbox[lay-skin="primary"] > .icon-indeterminate:before{content: ''; display: inline-block; vertical-align: middle; position: relative; width: 50%; height: 1px; margin: -1px auto 0; background-color: #16b777;} /* 复选框-开关风格 */ .form-switch{position: relative; display: inline-block; vertical-align: middle; height: 24px; line-height: 22px; min-width: 44px; padding: 0 5px; margin-top: 8px; border: 1px solid #d2d2d2; border-radius: 20px; cursor: pointer; box-sizing: border-box; background-color: #fff; -webkit-transition: .1s linear; transition: .1s linear;} .form-switch > i{position: absolute; left: 5px; top: 3px; width: 16px; height: 16px; border-radius: 20px; background-color: #d2d2d2; -webkit-transition: .1s linear; transition: .1s linear;} .form-switch > div{position: relative; top: 0; margin-left: 21px; padding: 0!important; text-align: center!important; color: #999!important; font-style: normal!important; font-size: 12px;} .form-onswitch{border-color: #16b777; background-color: #16b777;} .form-onswitch > i{left: 100%; margin-left: -21px; background-color: #fff;} .form-onswitch > div{margin-left: 0; margin-right: 21px; color: #fff!important;} .checkbox-disabled{border-color: #eee !important;} .checkbox-disabled > div{color: #c2c2c2!important;} .checkbox-disabled > i{border-color: #eee !important;} .checkbox-disabled:hover > i{color: #fff !important;} /* 单选框 */ .form-radio{display: inline-block; vertical-align: middle; line-height: 28px; margin: 6px 10px 0 0; padding-right: 10px; cursor: pointer; font-size: 0;} .form-radio > *{display: inline-block; vertical-align: middle; font-size: 14px;} .form-radio > i{margin-right: 8px; font-size: 22px; color: #c2c2c2;} .form-radioed, .form-radioed > i, .form-radio:hover > *{color: #16b777;} .radio-disabled > i{color: #eee !important;} .radio-disabled > *{color: #c2c2c2!important;} .form *[lay-radio]{display: none;} /* 表单方框风格 */ .form-pane .form-label{width: 110px; padding: 8px 15px; height: 38px; line-height: 20px; border-width: 1px; border-style: solid; border-radius: 2px 0 0 2px; text-align: center; background-color: #fafafa; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; box-sizing: border-box;} .form-pane .input-inline{margin-left: -1px;} .form-pane .input-block{margin-left: 110px; left: -1px;} .form-pane .input{border-radius: 0 2px 2px 0;} .form-pane .form-text .form-label{float: none; width: 100%; border-radius: 2px; box-sizing: border-box; text-align: left;} .form-pane .form-text .input-inline{display: block; margin: 0; top: -1px; clear: both;} .form-pane .form-text .input-block{margin: 0; left: 0; top: -1px;} .form-pane .form-text .textarea{min-height: 100px; border-radius: 0 0 2px 2px;} .form-pane .form-checkbox{margin: 4px 0 4px 10px;} .form-pane .form-switch, .form-pane .form-radio{margin-top: 6px; margin-left: 10px; } .form-pane .form-item[pane]{position: relative; border-width: 1px; border-style: solid;} .form-pane .form-item[pane] .form-label{position: absolute; left: 0; top: 0; height: 100%; border-width: 0px; border-right-width: 1px;} .form-pane .form-item[pane] .input-inline{margin-left: 110px;} /** 表单响应式 **/ @media screen and (max-width: 450px) { .form-item .form-label{text-overflow: ellipsis; overflow: hidden; white-space: nowrap;} .form-item .inline{display: block; margin-right: 0; margin-bottom: 20px; clear: both;} .form-item .inline:after{content:'\20'; clear:both; display:block; height:0;} .form-item .input-inline{display: block; float: none; left: -3px; width: auto !important; margin: 0 0 10px 112px; } .form-item .input-inline+.form-mid{margin-left: 110px; top: -5px; padding: 0;} .form-item .form-checkbox{margin-right: 5px; margin-bottom: 5px;} } /** 分页 **/ .laypage{display: inline-block; *display: inline; *zoom: 1; vertical-align: middle; margin: 10px 0; font-size: 0;} .laypage>a:first-child, .laypage>a:first-child em{border-radius: 2px 0 0 2px;} .laypage>a:last-child, .laypage>a:last-child em{border-radius: 0 2px 2px 0;} .laypage>*:first-child{margin-left: 0!important;} .laypage>*:last-child{margin-right: 0!important;} .laypage a, .laypage span, .laypage input, .laypage button, .laypage select{border: 1px solid #eee;} .laypage a, .laypage span{display: inline-block; *display: inline; *zoom: 1; vertical-align: middle; padding: 0 15px; height: 28px; line-height: 28px; margin: 0 -1px 5px 0; background-color: #fff; color: #333; font-size: 12px;} .laypage a[data-page]{color: #333;} .laypage a{text-decoration: none !important; cursor: pointer;} .laypage a:hover{color: #16baaa;} .laypage em{font-style: normal;} .laypage .laypage-spr{color:#999; font-weight: 700;} .laypage .laypage-curr{position: relative;} .laypage .laypage-curr em{position: relative; color: #fff;} .laypage .laypage-curr .laypage-em{position: absolute; left: -1px; top: -1px; padding: 1px; width: 100%; height: 100%; background-color: #16baaa; } .laypage-em{border-radius: 2px;} .laypage-prev em, .laypage-next em{font-family: Sim sun; font-size: 16px;} .laypage .laypage-count, .laypage .laypage-limits, .laypage .laypage-refresh, .laypage .laypage-skip{margin-left: 10px; margin-right: 10px; padding: 0; border: none;} .laypage .laypage-limits, .laypage .laypage-refresh{vertical-align: top;} .laypage .laypage-refresh i{font-size: 18px; cursor: pointer;} .laypage select{height: 22px; padding: 3px; border-radius: 2px; cursor: pointer;} .laypage .laypage-skip{height: 30px; line-height: 30px; color: #999;} .laypage input, .laypage button{height: 30px; line-height: 30px; border-radius: 2px; vertical-align: top; background-color: #fff; box-sizing: border-box;} .laypage input{display: inline-block; width: 40px; margin: 0 10px; padding: 0 3px; text-align: center;} .laypage input:focus, .laypage select:focus{border-color: #16baaa!important;} .laypage button{margin-left: 10px; padding: 0 10px; cursor: pointer;} /** 流加载 **/ .flow-more{margin: 10px 0; text-align: center; color: #999; font-size: 14px; clear: both;} .flow-more a{ height: 32px; line-height: 32px; } .flow-more a *{display: inline-block; vertical-align: top;} .flow-more a cite{padding: 0 20px; border-radius: 3px; background-color: #eee; color: #333; font-style: normal;} .flow-more a cite:hover{opacity: 0.8;} .flow-more a i{font-size: 30px; color: #737383;} /** 表格 **/ .table{width: 100%; margin: 10px 0; background-color: #fff; color: #5F5F5F;} .table tr{transition: all .3s; -webkit-transition: all .3s;} .table th{text-align: left; font-weight: 600;} .table thead tr, .table-header, .table-tool, .table-total, .table-total tr, .table-patch{} .table-mend{background-color: #fff;} .table-hover, .table-click, .table[lay-even] tbody tr:nth-child(even){background-color: #f8f8f8;} .table-checked{background-color: #dbfbf0;} .table-checked.table-hover, .table-checked.table-click{background-color: #abf8dd;} .table th, .table td, .table[lay-skin="line"], .table[lay-skin="row"], .table-view, .table-tool, .table-header, .table-col-set, .table-total, .table-page, .table-fixed-r, .table-mend, .table-tips-main, .table-grid-down{border-width: 1px; border-style: solid; border-color: #eee;} .table th, .table td{position: relative; padding: 9px 15px; min-height: 20px; line-height: 20px; font-size: 14px;} .table[lay-skin="line"] th, .table[lay-skin="line"] td{border-width: 0; border-bottom-width: 1px;} .table[lay-skin="row"] th, .table[lay-skin="row"] td{border-width: 0;border-right-width: 1px;} .table[lay-skin="nob"] th, .table[lay-skin="nob"] td{border: none;} .table img{max-width:100px;} /* 大表格 */ .table[lay-size="lg"] th, .table[lay-size="lg"] td{padding-top: 15px; padding-right: 30px; padding-bottom: 15px; padding-left: 30px;} .table-view .table[lay-size="lg"] .table-cell{height: 50px; line-height: 40px;} /* 小表格 */ .table[lay-size="sm"] th, .table[lay-size="sm"] td{padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; font-size: 12px;} .table-view .table[lay-size="sm"] .table-cell{height: 30px; line-height: 20px; padding-top: 5px; padding-left: 11px; padding-right: 11px;} /* 数据表格 */ .table[lay-data], .table[lay-options]{display: none;} .table-box{position: relative; overflow: hidden;} .table-view{clear: both;} .table-view .table{position: relative; width: auto; margin: 0; border: 0; border-collapse: separate;} .table-view .table[lay-skin="line"]{border-width: 0; border-right-width: 1px;} .table-view .table[lay-skin="row"]{border-width: 0; border-bottom-width: 1px;} .table-view .table th, .table-view .table td{padding: 0; border-top: none; border-left: none;} .table-view .table th [lay-event], .table-view .table th.unselect .table-cell span{cursor: pointer;} .table-view .table th span, .table-view .table td{cursor: default;} .table-view .table td[data-edit]{cursor: text;} .table-view .table td[data-edit]:hover:after{position: absolute; left: 0; top: 0; width: 100%; height: 100%; box-sizing: border-box; border: 1px solid #16B777; pointer-events: none; content: "";} .table-view .form-checkbox[lay-skin="primary"] i{width: 18px; height: 18px; line-height: 16px;} .table-view .form-radio{line-height: 0; padding: 0;} .table-view .form-radio>i{margin: 0; font-size: 20px;} .table-init{position: absolute; left: 0; top: 0; width: 100%; height: 100%; text-align: center; z-index: 199;} .table-init .icon{position: absolute; left: 50%; top: 50%; margin: -15px 0 0 -15px; font-size: 30px; color: #c2c2c2;} .table-header{border-width: 0; border-bottom-width: 1px; overflow: hidden;} .table-header .table{margin-bottom: -1px;} .table-column{position: relative; width: 100%; min-height: 41px; padding: 8px 16px; border-width: 0; border-bottom-width: 1px;} .table-column .btn-container{margin-bottom: -8px;} .table-column .btn-container .btn{margin-right: 8px; margin-bottom: 8px;} .table-tool .inline[lay-event]{position: relative; width: 26px; height: 26px; padding: 5px; line-height: 16px; margin-right: 10px; text-align: center; color: #333; border: 1px solid #ccc; cursor: pointer; -webkit-transition: .5s all; transition: .5s all;} .table-tool .inline[lay-event]:hover{border: 1px solid #999;} .table-tool-temp{padding-right: 120px;} .table-tool-self{position: absolute; right: 17px; top: 10px;} .table-tool .table-tool-self .inline[lay-event]{margin: 0 0 0 10px;} .table-tool-panel{position: absolute; top: 29px; left: -1px; z-index: 399; padding: 5px 0 !important; min-width: 150px; min-height: 40px; border: 1px solid #d2d2d2; text-align: left; overflow-y: auto; background-color: #fff; box-shadow: 0 2px 4px rgba(0,0,0,.12);} .table-tool-panel li{padding: 0 10px; margin: 0 !important; line-height: 30px; list-style-type: none !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; -webkit-transition: .5s all; transition: .5s all;} .table-tool-panel li .form-checkbox[lay-skin="primary"]{width: 100%;} .table-tool-panel li:hover{background-color: #f8f8f8;} .table-tool-panel li .form-checkbox[lay-skin="primary"]{padding-left: 28px;} .table-tool-panel li .form-checkbox[lay-skin="primary"] i{position: absolute; left: 0; top: 0;} .table-tool-panel li .form-checkbox[lay-skin="primary"] span{padding: 0;} .table-tool .table-tool-self .table-tool-panel{left: auto; right: -1px;} .table-col-set{position: absolute; right: 0; top: 0; width: 20px; height: 100%; border-width: 0; border-left-width: 1px; background-color: #fff;} .table-sort{width: 10px; height: 20px; margin-left: 5px; cursor: pointer!important;} .table-sort .edge{position: absolute; left: 5px; border-width: 5px;} .table-sort .table-sort-asc{top: 3px; border-top: none; border-bottom-style: solid; border-bottom-color: #b2b2b2;} .table-sort .table-sort-asc:hover{border-bottom-color: #5F5F5F;} .table-sort .table-sort-desc{bottom: 5px; border-bottom: none; border-top-style: solid; border-top-color: #b2b2b2;} .table-sort .table-sort-desc:hover{border-top-color: #5F5F5F;} .table-sort[lay-sort="asc"] .table-sort-asc{border-bottom-color: #000;} .table-sort[lay-sort="desc"] .table-sort-desc{border-top-color: #000;} .table-cell{height: 38px; line-height: 28px; padding: 6px 15px; position: relative; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; box-sizing: border-box;} .table-cell .form-checkbox[lay-skin="primary"]{top: -1px; padding: 0;} .table-cell .form-checkbox[lay-skin="primary"] > div{padding-left: 24px;} .table-cell .table-link{color: #01AAED;} .table-cell .btn{vertical-align: inherit;} .table-cell[align="center"]{-webkit-box-pack: center;} .table-cell[align="right"]{-webkit-box-pack: end;} .laytable-cell-checkbox, .laytable-cell-radio, .laytable-cell-space, .laytable-cell-numbers{text-align: center; -webkit-box-pack: center;} .table-body{position: relative; overflow: auto; margin-right: -1px; margin-bottom: -1px;} .table-body .none{line-height: 26px; padding: 30px 15px; text-align: center; color: #999;} .table-fixed{position: absolute; left: 0; top: 0; z-index: 101;} .table-fixed .table-body{overflow: hidden;} .table-fixed-l{box-shadow: 1px 0 8px rgba(0,0,0,.08);} .table-fixed-r{left: auto; right: -1px; border-width: 0; border-left-width: 1px; box-shadow: -1px 0 8px rgba(0,0,0,.08);} .table-fixed-r .table-header{position: relative; overflow: visible;} .table-mend{position: absolute; right: -49px; top: 0; height: 100%; width: 50px; border-width: 0; border-left-width: 1px;} .table-tool{position: relative; width: 100%; min-height: 50px; line-height: 30px; padding: 10px 15px; border-width: 0; border-bottom-width: 1px; /*box-shadow: 0 1px 8px 0 rgb(0 0 0 / 8%);*/} .table-tool .btn-container{margin-bottom: -10px;} .table-total{margin-bottom: -1px; border-width: 0; border-top-width: 1px; overflow: hidden;} .table-page{border-width: 0; border-top-width: 1px; margin-bottom: -1px; white-space: nowrap; overflow: hidden;} .table-page>div{height: 26px;} .table-page .laypage{margin: 0;} .table-page .laypage a, .table-page .laypage span{height: 26px; line-height: 26px; margin-bottom: 10px; border: none; background: none;} .table-page .laypage a, .table-page .laypage span.laypage-curr{padding: 0 12px;} .table-page .laypage span{margin-left: 0; padding: 0;} .table-page .laypage .laypage-prev{margin-left: -11px!important;} .table-page .laypage .laypage-curr .laypage-em{left: 0; top: 0; padding: 0;} .table-page .laypage input, .table-page .laypage button{height: 26px; line-height: 26px; } .table-page .laypage input{width: 40px;} .table-page .laypage button{padding: 0 10px;} .table-page select{height: 18px;} .table-pagebar{float: right; line-height: 23px;} .table-pagebar .btn-sm{margin-top: -1px;} .table-pagebar .btn-xs{margin-top: 2px;} .table-view select[lay-ignore]{display: inline-block;} .table-patch .table-cell{padding: 0; width: 30px;} .table-edit{position: absolute; left: 0; top: 0; z-index: 189; min-width: 100%; min-height: 100%; padding: 5px 14px; border-radius: 0; box-shadow: 1px 1px 20px rgba(0,0,0,.15); background-color: #fff;} .table-edit:focus{border-color: #16b777!important;} input.input.table-edit{height: 100%;} select.table-edit{padding: 0 0 0 10px; border-color: #d2d2d2;} .table-view .form-switch, .table-view .form-checkbox, .table-view .form-radio{top: 0; margin: 0;} .table-view .form-checkbox{top: -1px; height: 26px; line-height: 26px;} .table-view .form-checkbox i{height: 26px;} /* 展开溢出的单元格 */ .table-grid .table-cell{overflow: visible;} .table-grid-down{position: absolute; top: 0; right: 0; width: 24px; height: 100%; padding: 5px 0; border-width: 0; border-left-width: 1px; text-align: center; background-color: #fff; color: #999; cursor: pointer;} .table-grid-down .icon{position: absolute; top: 50%; left: 50%; margin: -8px 0 0 -8px; font-size: 14px;} .table-grid-down:hover{background-color: #fbfbfb;} /* 单元格多行展开风格 */ .table-expanded{height: 95px;} .table-expanded .table-cell, .table-view .table[lay-size="sm"] .table-expanded .table-cell, .table-view .table[lay-size="lg"] .table-expanded .table-cell{height: auto; max-height: 94px; white-space: normal; text-overflow: clip;} .table-cell-c{position: absolute; bottom: -10px; right: 50%; margin-right: -9px; width: 20px; height: 20px; line-height: 18px; cursor: pointer; text-align: center; background-color: #fff; border: 1px solid #eee; border-radius: 50%; z-index: 1000; transition: 0.3s all; font-size: 14px;} .table-cell-c:hover{border-color: #16b777;} .table-expanded td:hover .table-cell{overflow: auto;} /* 单元格 TIPS 展开风格 */ body .table-tips .layer-content{background: none; padding: 0; box-shadow: 0 1px 6px rgba(0,0,0,.12);} .table-tips-main{margin: -49px 0 0 -1px; max-height: 150px; padding: 8px 15px; font-size: 14px; overflow-y: scroll; background-color: #fff; color: #5F5F5F;} .table-tips-c{position: absolute; right: -3px; top: -13px; width: 20px; height: 20px; padding: 3px; cursor: pointer; background-color: #5F5F5F; border-radius: 50%; color: #fff;} .table-tips-c:hover{background-color: #777;} .table-tips-c:before{position: relative; right: -2px;} /** 树表 **/ .table-tree-nodeIcon {max-width: 20px;} .table-tree-nodeIcon > * {width: 100%;} .table-tree-flexIcon,.table-tree-nodeIcon {margin-right: 2px;} .table-tree-flexIcon {cursor: pointer;} /** 文件上传 **/ .upload-file{display: none!important; opacity: .01; filter: Alpha(opacity=1);} .upload-list{margin: 11px 0;} .upload-choose{max-width: 200px; padding: 0 10px; color: #999; font-size: 14px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;} .upload-drag{position: relative; display: inline-block; padding: 30px; border: 1px dashed #e2e2e2; background-color: #fff; text-align: center; cursor: pointer; color: #999;} .upload-drag .icon{font-size: 50px; color: #16baaa;} .upload-drag[lay-over]{border-color: #16baaa} .upload-form{display: inline-block;} .upload-iframe{position: absolute; width: 0; height: 0; border: 0; visibility: hidden} .upload-wrap{position: relative; display: inline-block; vertical-align: middle;} .upload-wrap .upload-file{display: block!important; position: absolute; left: 0; top: 0; z-index: 10; font-size: 100px; width: 100%; height: 100%; opacity: .01; filter: Alpha(opacity=1); cursor: pointer;} .btn-container .upload-choose{padding-left: 0;} /* 基础菜单元素 */ .menu{position: relative; margin: 5px 0; background-color: #fff; box-sizing: border-box;} .menu *{box-sizing: border-box;} .menu li, .menu-body-title, .menu-body-title a{padding: 5px 15px; color: initial} .menu li{position: relative; margin: 1px 0; line-height: 26px; color: rgba(0,0,0,.8); font-size: 14px; white-space: nowrap; cursor: pointer; transition: all .3s;} .menu li:hover{background-color: #f8f8f8; } .menu li.disabled, .menu li.disabled *{background: none !important; color: #d2d2d2 !important; cursor: not-allowed !important;} .menu-item-parent:hover>.menu-body-panel{display: block; animation-name: fadein; animation-duration: 0.3s; animation-fill-mode: both; animation-delay:.2s;} .menu-item-parent>.menu-body-title, .menu-item-group>.menu-body-title{padding-right: 38px;} .menu .menu-item-group:hover, .menu .menu-item-none:hover, .menu .menu-item-divider:hover{background: none; cursor: default;} .menu .menu-item-group>ul{margin: 5px 0 -5px;} .menu .menu-item-group>.menu-body-title{color: rgba(0,0,0,.35); user-select: none;} .menu .menu-item-none{color: rgba(0,0,0,.35); cursor: default;} .menu .menu-item-none{text-align: center;} .menu .menu-item-divider{margin: 5px 0; padding: 0; height: 0; line-height: 0; border-bottom: 1px solid #eee; overflow: hidden;} .menu .menu-item-up:hover, .menu .menu-item-down:hover{cursor: pointer;} .menu .menu-item-up>.menu-body-title{ color: rgba(0,0,0,.8);} .menu .menu-item-up>ul{visibility: hidden; height: 0; overflow: hidden;} .menu .menu-item-up>.menu-body-title:hover>.icon, .menu .menu-item-down:hover>.menu-body-title>.icon{color: rgba(0,0,0,1);} .menu .menu-item-down>ul{visibility: visible; height: auto;} .menu .menu-item-checked, .menu .menu-item-checked2{background-color: #f8f8f8!important; color: #16b777;} .menu .menu-item-checked a, .menu .menu-item-checked2 a{color: #16b777;} .menu .menu-item-checked:after{position: absolute; right: -1px; top: 0; bottom: 0; border-right: 3px solid #16b777; content: "";} .menu-body-title{position: relative; margin: -5px -15px; overflow: hidden; text-overflow: ellipsis;} .menu-body-title a{display: block; margin: -5px -15px; color: rgba(0,0,0,.8);} .menu-body-title a:hover{transition: all .3s;} .menu-body-title>.icon{position: absolute; right: 15px; top: 50%; margin-top: -6px; line-height: normal; font-size: 14px;} .menu-body-title>.icon:hover{transition: all .3s;} .menu-body-title>.icon-right{right: 14px;} .menu-body-panel{display: none; position: absolute; top: -7px; left: 100%; z-index: 1000; margin-left: 13px; padding: 5px 0;} .menu-body-panel:before{content: ""; position: absolute; width: 20px; left: -16px; top: 0; bottom: 0;} .menu-body-panel-left{left: auto; right: 100%; margin: 0 13px 0;} .menu-body-panel-left:before{left: auto; right: -16px;} .menu-lg li{line-height: 32px;} .menu-lg li:hover, .menu-lg .menu-body-title a:hover{background: none; color: #16b777;} .menu-lg li .menu-body-panel{margin-left: 14px} .menu-lg li .menu-body-panel-left{margin: 0 15px 0;} /* 下拉菜单 */ .dropdown{position: absolute; left: -999999px; top: -999999px; z-index: 77777777; margin: 5px 0; min-width: 100px;} .dropdown:before{content:""; position: absolute; width: 100%; height: 6px; left: 0; top: -6px;} .dropdown-shade{top: 0; left: 0; width: 100%; height: 100%; _height: expression(document.body.offsetHeight+"px"); position: fixed; _position: absolute; pointer-events: auto;} /** 导航菜单 **/ .nav{position: relative; padding: 0 15px; background-color: #2f363c; color: #fff; border-radius: 2px; font-size: 0; box-sizing: border-box;} .nav *{font-size: 14px;} .nav .nav-item{position: relative; display: inline-block; *display: inline; *zoom: 1; margin-top: 0; list-style: none; vertical-align: middle; line-height: 60px;} .nav .nav-item a{display: block; padding: 0 20px; color: #fff; color: rgba(255,255,255,.7); transition: all .3s; -webkit-transition: all .3s;} .nav-bar, .nav .this:after{content: ""; position: absolute; left: 0; top: 0; width: 0; height: 3px; background-color: #16b777; transition: all .2s; -webkit-transition: all .2s; pointer-events: none;} .nav-bar{z-index: 1000;} .nav[lay-bar="disabled"] .nav-bar{display: none;} .nav[lay-bar="disabled"].this:after{} .nav .this a, .nav .nav-item a:hover{color: #fff; text-decoration: none;} .nav .this:after{top: auto; bottom: 0; width: 100%;} .nav-img{width: 30px; height: 30px; margin-right: 10px; border-radius: 50%;} .nav .nav-more{position: absolute; top: 0; right: 3px; left: auto !important; margin-top: 0; font-size: 12px; cursor: pointer; transition: all .2s; -webkit-transition: all .2s;} .nav .nav-mored, .nav-itemed > a .nav-more{transform: rotate(180deg);} .nav-child{display: none; position: absolute; left: 0; top: 65px; min-width: 100%; line-height: 36px; padding: 5px 0; box-shadow: 0 2px 4px rgba(0,0,0,.12); border: 1px solid #eee; background-color: #fff; z-index: 100; border-radius: 2px; white-space: nowrap; box-sizing: border-box;} .nav .nav-child a{color: #5F5F5F; color: rgba(0,0,0,.8);} .nav .nav-child a:hover{background-color: #f8f8f8; color: rgba(0,0,0,.8);} .nav-child dd{margin: 1px 0; position: relative;} .nav-child dd.this{background-color: #f8f8f8; color: #000;} .nav-child dd.this:after{display: none;} .nav-child-r{left: auto; right: 0;} .nav-child-c{text-align: center;} /* 垂直导航菜单 */ .nav.nav-tree{width: 200px; padding: 0;} .nav-tree .nav-item{display: block; width: 100%; line-height: 40px;} .nav-tree .nav-item a{position: relative; height: 40px; line-height: 40px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap;} .nav-tree .nav-item>a{padding-top: 5px; padding-bottom: 5px;} .nav-tree .nav-more{right: 15px;} .nav-tree .nav-item>a .nav-more{padding: 5px 0;} .nav-tree .nav-bar{width: 5px; height: 0;} .side .nav-tree .nav-bar{width: 2px;} .nav-tree .this, .nav-tree .this>a, .nav-tree .this>a:hover, .nav-tree .nav-child dd.this, .nav-tree .nav-child dd.this a{background-color: #16baaa; color: #fff;} .nav-tree .this:after{display: none;} .nav-tree .nav-title a, .nav-tree .nav-title a:hover, .nav-itemed>a{color: #fff !important;} .nav-tree .nav-bar{background-color: #16baaa;} .nav-tree .nav-child{position: relative; z-index: 0; top: 0; border: none; box-shadow: none;} .nav-tree .nav-child dd{margin: 0;} .nav-tree .nav-child a{color: #fff; color: rgba(255,255,255,.7);} .nav-tree .nav-child a:hover, .nav-tree .nav-child{background: none; color: #fff;} .nav-itemed>.nav-child{display: block; background-color: rgba(0,0,0,.3) !important;} .nav-itemed>.nav-child>.this>.nav-child{display: block;} /* 侧边 */.nav-side{position: fixed; top: 0; bottom: 0; left: 0; overflow-x: hidden; z-index: 999;} /* 导航浅色背景 */ .nav.bg-gray .nav-item a, .nav-tree.bg-gray a{color: #373737; color: rgba(0,0,0,.8);} .nav-tree.bg-gray{padding: 6px 0;} .nav-tree.bg-gray .nav-itemed>a{color: #000 !important;} .nav.bg-gray .this a{color: #16b777;} .nav-tree.bg-gray .nav-itemed>.nav-child{padding-left: 11px; background: none!important;} .nav-tree.bg-gray .nav-item>a{padding-top: 0; padding-bottom: 0;} .nav-tree.bg-gray .nav-item>a .nav-more{padding: 0;} .nav-tree.bg-gray .this, .nav-tree.bg-gray .this>a, .nav-tree.bg-gray .nav-child dd.this, .nav-tree.bg-gray .nav-child dd.this a{background: none!important; color: #16b777!important; font-weight: 700;} .nav-tree.bg-gray .nav-bar{background-color: #16b777;} /** 面包屑 **/ .breadcrumb{visibility: hidden; font-size: 0;} .breadcrumb>*{font-size: 14px;} .breadcrumb a{color: #999 !important;} .breadcrumb a:hover{color: #16b777 !important;} .breadcrumb a cite{color: #5F5F5F; font-style: normal;} .breadcrumb span[lay-separator]{margin: 0 10px; color: #999;} /** Tab 选项卡 **/ .tab{margin: 10px 0; text-align: left !important;} .tab[overflow]>.tab-title{overflow: hidden;} .tab .tab-title{position: relative; left: 0; height: 40px; white-space: nowrap; font-size: 0; border-bottom-width: 1px; border-bottom-style: solid; transition: all .2s; -webkit-transition: all .2s;} .tab .tab-title li{display: inline-block; *display: inline; *zoom: 1; vertical-align: middle; font-size: 14px; transition: all .2s; -webkit-transition: all .2s;} .tab .tab-title li{position: relative; line-height: 40px; min-width: 65px; margin: 0; padding: 0 15px; text-align: center; cursor: pointer;} .tab .tab-title li a{display: block; padding: 0 15px; margin: 0 -15px;} .tab-title .this{color: #000;} .tab-title .this:after{position: absolute; left:0; top: 0; content: ""; width:100%; height: 41px; border-width: 1px; border-style: solid; border-bottom-color: #fff; border-radius: 2px 2px 0 0; box-sizing: border-box; pointer-events: none;} .tab-bar{position: absolute; right: 0; top: 0; z-index: 10; width: 30px; height: 39px; line-height: 39px; border-width: 1px; border-style: solid; border-radius: 2px; text-align: center; background-color: #fff; cursor: pointer;} .tab-bar .icon{position: relative; display: inline-block; top: 3px; transition: all .3s; -webkit-transition: all .3s;} .tab-item{display: none;} .tab-more{padding-right: 30px; height: auto !important; white-space: normal !important;} .tab-more li.this:after{border-bottom-color: #eee; border-radius: 2px;} .tab-more .tab-bar .icon{top: -2px; top: 3px\0; -webkit-transform: rotate(180deg); transform: rotate(180deg);} :root .tab-more .tab-bar .icon{top: -2px\0/IE9;} .tab-content{padding: 15px 0;} /* Tab 关闭 */.tab-title li .tab-close{position: relative; display: inline-block; width: 18px; height: 18px; line-height: 20px; margin-left: 8px; top: 1px; text-align: center; font-size: 14px; color: #c2c2c2; transition: all .2s; -webkit-transition: all .2s;} .tab-title li .tab-close:hover{border-radius: 2px; background-color: #ff5722; color: #fff;} /* Tab 简洁风格 */.tab-brief > .tab-title .this{color: #16baaa;} .tab-brief > .tab-title .this:after ,.tab-brief > .tab-more li.this:after{border: none; border-radius: 0; border-bottom: 2px solid #16b777;} .tab-brief[overflow] > .tab-title .this:after{top: -1px;} /* Tab 卡片风格 */.tab-card{border-width: 1px; border-style: solid; border-radius: 2px; box-shadow: 0 2px 5px 0 rgba(0,0,0,.1);} .tab-card > .tab-title{background-color: #fafafa;} .tab-card > .tab-title li{margin-right: -1px; margin-left: -1px;} .tab-card > .tab-title .this{background-color: #fff; } .tab-card > .tab-title .this:after{border-top: none; border-width: 1px; border-bottom-color: #fff;} .tab-card > .tab-title .tab-bar{height: 40px; line-height: 40px; border-radius: 0; border-top: none; border-right: none;} .tab-card > .tab-more .this{background: none; color: #16b777;} .tab-card > .tab-more .this:after{border: none;} /* 时间线 */ .timeline{padding-left: 5px;} .timeline-item{position: relative; padding-bottom: 20px;} .timeline-axis{position: absolute; left: -5px; top: 0; z-index: 10; width: 20px; height: 20px; line-height: 20px; background-color: #fff; color: #16b777; border-radius: 50%; text-align: center; cursor: pointer;} .timeline-axis:hover{color: #ff5722;} .timeline-item:before{content: ""; position: absolute; left: 5px; top: 0; z-index: 0; width: 1px; height: 100%;} .timeline-item:first-child:before{display: block;} .timeline-item:last-child:before{display: none;} .timeline-content{padding-left: 25px;;} .timeline-title{position: relative; margin-bottom: 10px; line-height: 22px;} /* 小徽章 */ .badge, .badge-dot, .badge-rim{position:relative; display: inline-block; padding: 0 6px; font-size: 12px; text-align: center; background-color: #ff5722; color: #fff; border-radius: 2px;} .badge{height: 18px; line-height: 18px;} .badge-dot{width: 8px; height: 8px; padding: 0; border-radius: 50%;} .badge-rim{height: 18px; line-height: 18px; border-width: 1px; border-style: solid; background-color: #fff; color: #5F5F5F;} .btn .badge, .btn .badge-dot{margin-left: 5px;} .nav .badge, .nav .badge-dot{position: absolute; top: 50%; margin: -5px 6px 0;} .nav .badge{margin-top: -10px;} .tab-title .badge, .tab-title .badge-dot{left: 5px; top: -2px;} /* carousel 轮播 */ .carousel{position: relative; left: 0; top: 0; background-color: #f8f8f8;} .carousel>*[carousel-item]{position: relative; width: 100%; height: 100%; overflow: hidden;} .carousel>*[carousel-item]:before{position: absolute; content: '\e63d'; left: 50%; top: 50%; width: 100px; line-height: 20px; margin: -10px 0 0 -50px; text-align: center; color: #c2c2c2; font-family:"icon" !important; font-size: 30px; font-style: normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;} .carousel>*[carousel-item] > *{display: none; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background-color: #f8f8f8; transition-duration: .3s; -webkit-transition-duration: .3s;} .carousel-updown > *{-webkit-transition: .3s ease-in-out up; transition: .3s ease-in-out up;} .carousel-arrow{display: none\0; opacity: 0; position: absolute; left: 10px; top: 50%; margin-top: -18px; width: 36px; height: 36px; line-height: 36px; text-align: center; font-size: 20px; border: none 0; border-radius: 50%; background-color: rgba(0,0,0,.2); color: #fff; -webkit-transition-duration: .3s; transition-duration: .3s; cursor: pointer;} .carousel-arrow[lay-type="add"]{left: auto!important; right: 10px;} .carousel[lay-arrow="always"] .carousel-arrow{opacity: 1; left: 20px;} .carousel[lay-arrow="always"] .carousel-arrow[lay-type="add"]{right: 20px;} .carousel[lay-arrow="none"] .carousel-arrow{display: none;} .carousel-arrow:hover, .carousel-ind ul:hover{background-color: rgba(0,0,0,.35);} .carousel:hover .carousel-arrow{display: block\0; opacity: 1; left: 20px;} .carousel:hover .carousel-arrow[lay-type="add"]{right: 20px;} .carousel-ind{position: relative; top: -35px; width: 100%; line-height: 0!important; text-align: center; font-size: 0;} .carousel[lay-indicator="outside"]{margin-bottom: 30px;} .carousel[lay-indicator="outside"] .carousel-ind{top: 10px;} .carousel[lay-indicator="outside"] .carousel-ind ul{background-color: rgba(0,0,0,.5);} .carousel[lay-indicator="none"] .carousel-ind{display: none;} .carousel-ind ul{display: inline-block; padding: 5px; background-color: rgba(0,0,0,.2); border-radius: 10px; -webkit-transition-duration: .3s; transition-duration: .3s;} .carousel-ind ul li{display: inline-block; width: 10px; height: 10px; margin: 0 3px; font-size: 14px; background-color: #eee; background-color: rgba(255,255,255,.5); border-radius: 50%; cursor: pointer; -webkit-transition-duration: .3s; transition-duration: .3s;} .carousel-ind ul li:hover{background-color: rgba(255,255,255,.7);} .carousel-ind ul li.this{background-color: #fff;} .carousel>*[carousel-item]>.this, .carousel>*[carousel-item]>.carousel-prev, .carousel>*[carousel-item]>.carousel-next{display: block} .carousel>*[carousel-item]>.this{left: 0;} .carousel>*[carousel-item]>.carousel-prev{left: -100%;} .carousel>*[carousel-item]>.carousel-next{left: 100%;} .carousel>*[carousel-item]>.carousel-prev.carousel-right, .carousel>*[carousel-item]>.carousel-next.carousel-left{left: 0;} .carousel>*[carousel-item]>.this.carousel-left{left: -100%;} .carousel>*[carousel-item]>.this.carousel-right{left: 100%;} /* 上下切换 */.carousel[lay-anim="updown"] .carousel-arrow{left: 50%!important; top: 20px; margin: 0 0 0 -18px;} .carousel[lay-anim="updown"] .carousel-arrow[lay-type="add"]{top: auto!important; bottom: 20px;} .carousel[lay-anim="updown"] .carousel-ind{position: absolute; top: 50%; right: 20px; width: auto; height: auto;} .carousel[lay-anim="updown"] .carousel-ind ul{padding: 3px 5px;} .carousel[lay-anim="updown"] .carousel-ind li{display: block; margin: 6px 0;} .carousel[lay-anim="updown"]>*[carousel-item]>*{left: 0!important;} .carousel[lay-anim="updown"]>*[carousel-item]>.this{top: 0;} .carousel[lay-anim="updown"]>*[carousel-item]>.carousel-prev{top: -100%;} .carousel[lay-anim="updown"]>*[carousel-item]>.carousel-next{top: 100%;} .carousel[lay-anim="updown"]>*[carousel-item]>.carousel-prev.carousel-right, .carousel[lay-anim="updown"]>*[carousel-item]>.carousel-next.carousel-left{top: 0;} .carousel[lay-anim="updown"]>*[carousel-item]>.this.carousel-left{top: -100%;} .carousel[lay-anim="updown"]>*[carousel-item]>.this.carousel-right{top: 100%;} /* 渐显切换 */.carousel[lay-anim="fade"]>*[carousel-item]>*{left: 0!important;} .carousel[lay-anim="fade"]>*[carousel-item]>.carousel-prev, .carousel[lay-anim="fade"]>*[carousel-item]>.carousel-next{opacity: 0;} .carousel[lay-anim="fade"]>*[carousel-item]>.carousel-prev.carousel-right, .carousel[lay-anim="fade"]>*[carousel-item]>.carousel-next.carousel-left{opacity: 1;} .carousel[lay-anim="fade"]>*[carousel-item]>.this.carousel-left, .carousel[lay-anim="fade"]>*[carousel-item]>.this.carousel-right{opacity: 0} /** fixbar **/ .fixbar{position: fixed; right: 16px; bottom: 16px; z-index: 999999;} .fixbar li{width: 50px; height: 50px; line-height: 50px; margin-bottom: 1px; text-align:center; cursor: pointer; font-size:30px; background-color: #9F9F9F; color:#fff; border-radius: 2px; opacity: 0.95;} .fixbar li:hover{opacity: 0.85;} .fixbar li:active{opacity: 1;} .fixbar .fixbar-top{display: none; font-size: 40px;} /** 表情面板 **/ body .util-face{border: none; background: none;} body .util-face .layer-content{padding:0; background-color:#fff; color:#5F5F5F; box-shadow:none} .util-face .layer-TipsG{display:none;} .util-face ul{position:relative; width:372px; padding:10px; border:1px solid #D9D9D9; background-color:#fff; box-shadow: 0 0 20px rgba(0,0,0,.2);} .util-face ul li{cursor: pointer; float: left; border: 1px solid #e8e8e8; height: 22px; width: 26px; overflow: hidden; margin: -1px 0 0 -1px; padding: 4px 2px; text-align: center;} .util-face ul li:hover{position: relative; z-index: 2; border: 1px solid #eb7350; background: #fff9ec;} /** 代码文本修饰 **/ .code{display: block; position: relative; padding: 15px; line-height: 20px; border: 1px solid #eee; border-left-width: 6px; background-color: #fff; color: #333; font-family: "Courier New",Consolas,"Lucida Console"; font-size: 12px;} /** 穿梭框 **/ .transfer-box, .transfer-header, .transfer-search{border-width: 0; border-style: solid; border-color: #eee} .transfer-box{position: relative; display: inline-block; vertical-align: middle; border-width: 1px; width: 200px; height: 360px; border-radius: 2px; background-color:#fff;} .transfer-box .form-checkbox{width: 100%; margin: 0 !important;} .transfer-header{height: 38px; line-height: 38px; padding: 0 11px; border-bottom-width: 1px;} .transfer-search{position:relative; padding: 11px; border-bottom-width: 1px;} .transfer-search .input{height: 32px; padding-left: 30px; font-size: 12px;} .transfer-search .icon-search{position: absolute; left: 20px; top: 50%; line-height: normal; margin-top: -8px; color: #5F5F5F;} .transfer-active{margin: 0 15px; display: inline-block; vertical-align: middle;} .transfer-active .btn{display: block; margin: 0; padding: 0 15px; background-color: #16b777; border-color: #16b777; color: #fff;} .transfer-active .btn-disabled{background-color: #FBFBFB; border-color: #eee; color: #d2d2d2;} .transfer-active .btn:first-child{margin-bottom: 15px;} .transfer-active .btn .icon{margin: 0; font-size: 14px !important;} .transfer-data{padding: 5px 0; overflow: auto;} .transfer-data li{height: 32px; line-height: 32px; margin-top: 0 !important; padding: 0 11px;list-style-type: none !important;} .transfer-data li:hover{background-color: #f8f8f8; transition: .5s all;} .transfer-data .none{padding: 15px 11px; text-align: center; color: #999;} /** 评分组件 **/ .rate, .rate *{display: inline-block; vertical-align: middle;} .rate{padding: 11px 6px 11px 0; font-size: 0;} .rate li{margin-top: 0 !important;} .rate li i.icon{ font-size: 20px; color: #ffb800;} .rate li i.icon{margin-right: 5px; transition: all .3s; -webkit-transition: all .3s;} .rate li i:hover{cursor: pointer; transform: scale(1.12); -webkit-transform: scale(1.12);} .rate[readonly] li i:hover{cursor: default; transform: scale(1);} /** 颜色选择器 **/ .colorpicker{width: 38px; height: 38px; border: 1px solid #eee; padding: 5px; border-radius: 2px; line-height: 24px; display: inline-block; cursor: pointer; transition: all .3s; -webkit-transition: all .3s; box-sizing: border-box;} .colorpicker:hover{border-color: #d2d2d2;} .colorpicker.colorpicker-lg{width: 44px; height: 44px; line-height: 30px;} .colorpicker.colorpicker-sm{width: 30px; height: 30px; line-height: 20px; padding: 3px;} .colorpicker.colorpicker-xs{width: 22px; height: 22px; line-height: 16px; padding: 1px;} .colorpicker-trigger-bgcolor{display: block; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==); border-radius: 2px;} .colorpicker-trigger-span{display: block; height: 100%; box-sizing: border-box; border: 1px solid rgba(0,0,0,.15); border-radius: 2px; text-align: center;} .colorpicker-trigger-i{display: inline-block; color: #FFF; font-size: 12px;} .colorpicker-trigger-i.icon-close{color: #999;} .colorpicker-main{position: absolute; left: -999999px; top: -999999px; z-index: 77777777; width: 280px; margin: 5px 0; padding: 7px; background: #FFF; border: 1px solid #d2d2d2; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.12);} .colorpicker-main-wrapper{height: 180px; position: relative;} .colorpicker-basis{width: 260px; height: 100%; position: relative;} .colorpicker-basis-white{width: 100%; height: 100%; position: absolute; top: 0; left: 0; background: linear-gradient(90deg, #FFF, hsla(0,0%,100%,0));} .colorpicker-basis-black{width: 100%; height: 100%; position: absolute; top: 0; left: 0; background: linear-gradient(0deg, #000, transparent);} .colorpicker-basis-cursor{width: 10px; height: 10px; border: 1px solid #FFF; border-radius: 50%; position: absolute; top: -3px; right: -3px; cursor: pointer;} .colorpicker-side{position: absolute; top: 0; right: 0; width: 12px; height: 100%; background: linear-gradient(#F00, #FF0, #0F0, #0FF, #00F, #F0F, #F00);} .colorpicker-side-slider{width: 100%; height: 5px; box-shadow: 0 0 1px #888888; box-sizing: border-box; background: #FFF; border-radius: 1px; border: 1px solid #f0f0f0; cursor: pointer; position: absolute; left: 0;} .colorpicker-main-alpha{display: none; height: 12px; margin-top: 7px; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)} .colorpicker-alpha-bgcolor{height: 100%; position: relative;} .colorpicker-alpha-slider{width: 5px; height: 100%; box-shadow: 0 0 1px #888888; box-sizing: border-box; background: #FFF; border-radius: 1px; border: 1px solid #f0f0f0; cursor: pointer; position: absolute; top: 0;} .colorpicker-main-pre{padding-top: 7px; font-size: 0;} .colorpicker-pre{width: 20px; height: 20px; border-radius: 2px; display: inline-block; margin-left: 6px; margin-bottom: 7px; cursor: pointer;} .colorpicker-pre:nth-child(11n+1){margin-left: 0;} .colorpicker-pre-isalpha{background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)} .colorpicker-pre.this{box-shadow: 0 0 3px 2px rgba(0,0,0,.15);} .colorpicker-pre > div{height: 100%; border-radius: 2px;} .colorpicker-main-input{text-align: right; padding-top: 7px;} .colorpicker-main-input .btn-container .btn{margin: 0 0 0 10px;} .colorpicker-main-input div.inline{float: left; margin-right: 10px; font-size: 14px;} .colorpicker-main-input input.input{width: 150px; height: 30px; color: #5F5F5F;} /** 滑块 **/ .slider{height: 4px; background: #eee; border-radius: 3px; position: relative; cursor: pointer;} .slider-bar{border-radius: 3px; position: absolute; height: 100%;} .slider-step{position: absolute; top: 0; width: 4px; height: 4px; border-radius: 50%; background: #FFF; -webkit-transform: translateX(-50%); transform: translateX(-50%);} .slider-wrap{width: 36px; height: 36px; position: absolute; top: -16px; -webkit-transform: translateX(-50%); transform: translateX(-50%); z-index: 10; text-align: center;} .slider-wrap-btn{width: 12px; height: 12px; border-radius: 50%; background: #FFF; display: inline-block; vertical-align: middle; cursor: pointer; transition: 0.3s;} .slider-wrap:after{content: ""; height: 100%; display: inline-block; vertical-align: middle;} .slider-wrap-btn:hover, .slider-wrap-btn.slider-hover{transform: scale(1.2);} .slider-wrap-btn.disabled:hover{transform: scale(1) !important;} .slider-tips{position: absolute; top: -42px; z-index: 77777777; white-space:nowrap; display: none; -webkit-transform: translateX(-50%); transform: translateX(-50%); color: #FFF; background: #000; border-radius: 3px; height: 25px; line-height: 25px; padding: 0 10px;} .slider-tips:after{content: ""; position: absolute; bottom: -12px; left: 50%; margin-left: -6px; width: 0; height: 0; border-width: 6px; border-style: solid; border-color: #000 transparent transparent transparent;} .slider-input{width: 70px; height: 32px; border: 1px solid #eee; border-radius: 3px; font-size: 16px; line-height: 32px; position: absolute; right: 0; top: -14px; box-sizing: border-box;} .slider-input-btn{position: absolute; top: 0; right: 0; width: 20px; height: 100%; border-left: 1px solid #eee;} .slider-input-btn i{cursor: pointer; position: absolute; right: 0; bottom: 0; width: 20px; height: 50%; font-size: 12px; line-height: 16px; text-align: center; color: #999;} .slider-input-btn i:first-child{top: 0; border-bottom: 1px solid #eee;} .slider-input-txt{height: 100%; font-size: 14px;} .slider-input-txt input{height: 100%; border: none; padding-right: 21px;} .slider-input-btn i:hover{color: #16baaa;} /*垂直滑块*/ .slider-vertical{width: 4px; margin-left: 33px;} .slider-vertical .slider-bar{width: 4px;} .slider-vertical .slider-step{top: auto; left: 0px; -webkit-transform: translateY(50%); transform: translateY(50%);} .slider-vertical .slider-wrap{top: auto; left: -16px; -webkit-transform: translateY(50%); transform: translateY(50%);} .slider-vertical .slider-tips{top: auto; left: 2px;} @media \0screen{ .slider-wrap-btn{margin-left: -20px;} .slider-vertical .slider-wrap-btn{margin-left: 0; margin-bottom: -20px;} .slider-vertical .slider-tips{margin-left: -8px;} .slider > span{margin-left: 8px;} } /** 树组件 **/ .tree{line-height: 22px;} .tree .form-checkbox{margin: 0 !important;} .tree-set{width: 100%; position: relative;} .tree-pack{display: none; padding-left: 20px; position: relative;} .tree-line .tree-pack{padding-left: 27px;} .tree-line .tree-set .tree-set:after{content: ""; position: absolute; top: 14px; left: -9px; width: 17px; height: 0; border-top: 1px dotted #c0c4cc;} .tree-entry{position: relative; padding: 3px 0; height: 26px; white-space: nowrap;} .tree-entry:hover{background-color: #eee;} .tree-line .tree-entry:hover{background-color: rgba(0,0,0,0);} .tree-line .tree-entry:hover .tree-txt{color: #999; text-decoration: underline; transition: 0.3s;} .tree-main{display: inline-block; vertical-align: middle; cursor: pointer; padding-right: 10px;} .tree-line .tree-set:before{content: ""; position: absolute; top: 0; left: -9px; width: 0; height: 100%; border-left: 1px dotted #c0c4cc;} .tree-line .tree-set.tree-setLineShort:before{height: 13px;} .tree-line .tree-set.tree-setHide:before{height: 0;} .tree-iconClick{display: inline-block; vertical-align: middle; position: relative; height: 20px; line-height: 20px; margin: 0 10px; color: #c0c4cc;} .tree-icon{height: 14px; line-height: 12px; width: 14px; text-align: center; border: 1px solid #c0c4cc;} .tree-iconClick .icon{font-size: 18px;} .tree-icon .icon{font-size: 12px; color: #5F5F5F;} .tree-iconArrow{padding: 0 5px;} .tree-iconArrow:after{content: ""; position: absolute; left: 4px; top: 3px; z-index: 100; width: 0; height: 0; border-width: 5px; border-style: solid; border-color: transparent transparent transparent #c0c4cc; transition: 0.5s;} .tree-spread>.tree-entry .tree-iconClick>.tree-iconArrow:after{transform: rotate(90deg) translate(3px, 4px);} .tree-txt{display: inline-block; vertical-align: middle; color: #555;} .tree-search{margin-bottom: 15px; color: #5F5F5F;} .tree-btnGroup{visibility: hidden; display: inline-block; vertical-align: middle; position: relative;} .tree-btnGroup .icon{display: inline-block; vertical-align: middle; padding: 0 2px; cursor: pointer;} .tree-btnGroup .icon:hover{color: #999; transition: 0.3s;} .tree-entry:hover .tree-btnGroup{visibility: visible;} .tree-editInput{position: relative; display: inline-block; vertical-align: middle; height: 20px; line-height: 20px; padding: 0; border: none; background-color: rgba(0,0,0,0.05);} .tree-emptyText{text-align: center; color: #999;} /** 动画 **/ .anim{-webkit-animation-duration: 0.3s; -webkit-animation-fill-mode: both; animation-duration: 0.3s; animation-fill-mode: both;} .anim.icon{display: inline-block;} .anim-loop{-webkit-animation-iteration-count: infinite; animation-iteration-count: infinite;} .trans, .trans a{transition: all .2s; -webkit-transition: all .2s;} /* 过度变换 */ /* 循环旋转 */ @-webkit-keyframes rotate{ from {-webkit-transform: rotate(0deg);} to {-webkit-transform: rotate(360deg);} } @keyframes rotate{ from {transform: rotate(0deg);} to {transform: rotate(360deg);} } .anim-rotate{-webkit-animation-name: rotate; animation-name: rotate; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: linear; animation-timing-function: linear;} /* 从最底部往上滑入 */ @-webkit-keyframes up{ from {-webkit-transform: translate3d(0, 100%, 0); opacity: 0.3;} to {-webkit-transform: translate3d(0, 0, 0); opacity: 1;} } @keyframes up{ from {transform: translate3d(0, 100%, 0); opacity: 0.3;} to {transform: translate3d(0, 0, 0); opacity: 1;} } .anim-up{-webkit-animation-name: up; animation-name: up;} /* 微微往上滑入 */ @-webkit-keyframes upbit{ from {-webkit-transform: translate3d(0, 15px, 0); opacity: 0.3;} to {-webkit-transform: translate3d(0, 0, 0); opacity: 1;} } @keyframes upbit{ from {transform: translate3d(0, 15px, 0); opacity: 0.3;} to {transform: translate3d(0, 0, 0); opacity: 1;} } .anim-upbit{-webkit-animation-name: upbit; animation-name: upbit;} /* 从最顶部往下滑入 */ @keyframes down { 0% {opacity: 0.3; transform: translate3d(0, -100%, 0);} 100% {opacity: 1; transform: translate3d(0, 0, 0);} } .anim-down{animation-name: down;} /* 微微往下滑入 */ @keyframes downbit { 0% {opacity: 0.3; transform: translate3d(0, -5px, 0);} 100% {opacity: 1; transform: translate3d(0, 0, 0);} } .anim-downbit{animation-name: downbit;} /* 放大 */ @-webkit-keyframes scale { 0% {opacity: 0.3; -webkit-transform: scale(.5);} 100% {opacity: 1; -webkit-transform: scale(1);} } @keyframes scale { 0% {opacity: 0.3; -ms-transform: scale(.5); transform: scale(.5);} 100% {opacity: 1; -ms-transform: scale(1); transform: scale(1);} } .anim-scale{-webkit-animation-name: scale; animation-name: scale} /* 弹簧式放大 */ @-webkit-keyframes scale-spring { 0% {opacity: 0.5; -webkit-transform: scale(.5);} 80% {opacity: 0.8; -webkit-transform: scale(1.1);} 100% {opacity: 1; -webkit-transform: scale(1);} } @keyframes scale-spring { 0% {opacity: 0.5; transform: scale(.5);} 80% {opacity: 0.8; transform: scale(1.1);} 100% {opacity: 1; transform: scale(1);} } .anim-scaleSpring{-webkit-animation-name: scale-spring; animation-name: scale-spring} /* 放小 */ @keyframes scalesmall { 0% {opacity: 0.3; transform: scale(1.5);} 100% {opacity: 1; transform: scale(1);} } .anim-scalesmall{animation-name: scalesmall} /* 弹簧式放小 */ @keyframes scalesmall-spring { 0% {opacity: 0.3; transform: scale(1.5);} 80% {opacity: 0.8; transform: scale(0.9);} 100% {opacity: 1; transform: scale(1);} } .anim-scalesmall-spring{animation-name: scalesmall-spring} /* 渐显 */ @-webkit-keyframes fadein { 0% {opacity: 0;} 100% {opacity: 1;} } @keyframes fadein { 0% {opacity: 0;} 100% {opacity: 1;} } .anim-fadein{-webkit-animation-name: fadein; animation-name: fadein;} /* 渐隐 */ @-webkit-keyframes fadeout { 0% {opacity: 1;} 100% {opacity: 0;} } @keyframes fadeout { 0% {opacity: 1;} 100% {opacity: 0;} } .anim-fadeout{-webkit-animation-name: fadeout; animation-name: fadeout}
目录WIN系统公共插件目录：C:\Program Files (x86)\Common Files\Adobe\CEP\extensions WIN系统私有插件目录：你的PS文件夹\Plug-ins\ MAC系统公共插件目录：资源库/Application Support/Adobe/CEP/extensionsremove.bg token4pBEz5EFthxUmrVTHxV4vNjW kPFsVb8ajqaeegnLRwHQg5wg pxvvF152FPs2G47reAjdSQFv dMvFs2L8PWTjcMjbDo6jiQDb ggY6xY9yGE2frQAGst7M7FtS KhJUHr65KhauFvkRrUvXEUYm Ue1rcGF6pG1Fbnuq83a8jX6U YJBUt3pTq9A1G22553Kpcm95 3Jh2rJSFNHk4Fg31zYAaYHnY cn5C3F8xb628aKKX2DEQJs5q FCcqMzi9w95p499DNifnyqtc k6niQBfpxXsD1EfyQ8AagPRx eSt8w3vwT41B1KSMcAZ88dbp FPRKfddyw6QtX2GAzQHfGXzY EQrFePowinNS5Q7TeDnRFLse LKvvZDGYwcakJkFR6HHkf2J7 8jSsx7iWVvwy4M49CMTYNwfX LiM4rfc1rr8FdWqikronMbdm W2Vz6osKSR4z2o7V7qVHFJzg 6oQcwGozeFyPS7NZPiRAKdw2 1psMbURiL3nCBrnsWMhHmkNJ