layui升级到2.8.2版本,客户模块支持导入自己的客户。

This commit is contained in:
hdm 2023-05-05 01:08:26 +08:00
parent 88658e2fa4
commit 92934482ba
10 changed files with 208 additions and 58 deletions

View File

@ -40,6 +40,15 @@ class Index extends BaseController
if (!empty($param['type'])) { if (!empty($param['type'])) {
$where[] = ['a.intent_status', '=', $param['type']]; $where[] = ['a.intent_status', '=', $param['type']];
} }
if (!empty($param['follow_time'])) {
$follow_time =explode('~', $param['follow_time']);
$where[] = ['ct.follow_time', 'between', [strtotime(urldecode($follow_time[0])),strtotime(urldecode($follow_time[1]))]];
}
if (!empty($param['next_time'])) {
$next_time =explode('~', $param['next_time']);
$where[] = ['ct.next_time', 'between', [strtotime(urldecode($next_time[0])),strtotime(urldecode($next_time[1]))]];
}
$where[] = ['a.delete_time', '=', 0]; $where[] = ['a.delete_time', '=', 0];
$uid = $this->uid; $uid = $this->uid;
@ -95,18 +104,25 @@ class Index extends BaseController
} }
} }
$ct_sql= Db::name('CustomerTrace')->order('id desc')->buildSql();
$orderby = 'a.create_time desc';
if(isset($param['orderby'])){
$orderby = 'ct.'.$param['orderby'];
}
$rows = empty($param['limit']) ? get_config('app.page_size') : $param['limit']; $rows = empty($param['limit']) ? get_config('app.page_size') : $param['limit'];
$content = CustomerList::where($where) $content = CustomerList::where($where)
->where(function ($query) use($whereOr) { ->where(function ($query) use($whereOr) {
$query->whereOr($whereOr); $query->whereOr($whereOr);
}) })
->field('a.*,d.title as belong_department,g.title as grade,s.title as source,i.title as industry') ->field('a.*,d.title as belong_department,g.title as grade,s.title as source,i.title as industry,ct.follow_time,ct.next_time')
->alias('a') ->alias('a')
->join('customer_source s', 'a.source_id = s.id') ->join('customer_source s', 'a.source_id = s.id')
->join('customer_grade g', 'a.grade_id = g.id') ->join('customer_grade g', 'a.grade_id = g.id')
->join('industry i', 'a.industry_id = i.id') ->join('industry i', 'a.industry_id = i.id')
->join('department d', 'a.belong_did = d.id','LEFT') ->join('department d', 'a.belong_did = d.id','LEFT')
->order('a.create_time desc') ->join($ct_sql.' ct', 'ct.cid = a.id','LEFT')
->order($orderby)
->group('ct.follow_time') //去重
->paginate($rows, false, ['query' => $param]) ->paginate($rows, false, ['query' => $param])
->each(function ($item, $key) { ->each(function ($item, $key) {
$item->belong_name = Db::name('Admin')->where(['id' => $item->belong_uid])->value('name'); $item->belong_name = Db::name('Admin')->where(['id' => $item->belong_uid])->value('name');
@ -133,6 +149,19 @@ class Index extends BaseController
else{ else{
$item->services_name = Db::name('Services')->where(['id' => $item->services_id])->value('title'); $item->services_name = Db::name('Services')->where(['id' => $item->services_id])->value('title');
} }
if(empty($item->follow_time)){
$item->follow_time = '-';
}
else{
$item->follow_time = date('Y-m-d H:i:s', $item->follow_time);
}
if(empty($item->next_time)){
$item->next_time = '-';
}
else{
$item->next_time = date('Y-m-d H:i:s', $item->next_time);
}
}); });
return table_assign(0, '', $content); return table_assign(0, '', $content);
} else { } else {

View File

@ -1,4 +1,13 @@
{extend name="../../base/view/common/base" /} {extend name="../../base/view/common/base" /}
{block name="style"}
<style>
.gougu-upload-files{background-color: #ffffff; border:1px solid #e4e7ed;color: #c0c4cc;cursor: not-allowed; padding:0 12px; width:180px; box-sizing: border-box; display: inline-block; font-size: inherit; height: 38px; line-height: 35px; margin-right:8px; border-radius:2px;}
.gougu-upload-tips{color:#969696}
.layui-form-item{margin-bottom:8px;}
.layui-input-block{min-height:24px;}
.layui-input-inline{padding-bottom:12px;}
</style>
{/block}
<!-- 主体 --> <!-- 主体 -->
{block name="body"} {block name="body"}
<div class="p-3"> <div class="p-3">
@ -13,53 +22,61 @@
</div> </div>
</div> </div>
<form class="layui-form gg-form-bar border-x" lay-filter="barsearchform" id="barsearchform"> <form class="layui-form gg-form-bar border-x" lay-filter="barsearchform" id="barsearchform">
<div class="layui-input-inline" style="width:150px;"> {eq name="$auth" value="1"}
<div class="layui-input-inline" style="width:108px;">
<input type="text" name="username" placeholder="选择所属员工" class="layui-input" readonly data-event="select"/>
<input type="text" name="uid" value="" style="display:none" />
</div>
{/eq}
<div class="layui-input-inline" style="width:128px;">
<select name="grade_id"> <select name="grade_id">
<option value="">请选择客户等级</option> <option value="">选择客户等级</option>
{volist name=":customer_grade()" id="v"} {volist name=":customer_grade()" id="v"}
<option value="{$v.id}">{$v.title}</option> <option value="{$v.id}">{$v.title}</option>
{/volist} {/volist}
</select> </select>
</div> </div>
<div class="layui-input-inline" style="width:150px;"> <div class="layui-input-inline" style="width:128px;">
<select name="source_id"> <select name="source_id">
<option value="">选择渠道来源</option> <option value="">选择渠道来源</option>
{volist name=":customer_source()" id="v"} {volist name=":customer_source()" id="v"}
<option value="{$v.id}">{$v.title}</option> <option value="{$v.id}">{$v.title}</option>
{/volist} {/volist}
</select> </select>
</div> </div>
<div class="layui-input-inline" style="width:150px;"> <div class="layui-input-inline" style="width:128px;">
<select name="type"> <select name="type">
<option value="">选择客户意向</option> <option value="">选择客户意向</option>
<option value="1">意向不明</option> <option value="1">意向不明</option>
<option value="2">意向模糊</option> <option value="2">意向模糊</option>
<option value="3">意向一般</option> <option value="3">意向一般</option>
<option value="4">意向强烈</option> <option value="4">意向强烈</option>
</select> </select>
</div> </div>
<div class="layui-input-inline" style="width:150px;"> <div class="layui-input-inline" style="width:128px;">
<select name="status"> <select name="status">
<option value="">选择客户状态</option> <option value="">选择客户状态</option>
<option value="1">新进客户</option> <option value="1">新进客户</option>
<option value="2">跟进客户</option> <option value="2">跟进客户</option>
<option value="3">正式客户</option> <option value="3">正式客户</option>
<option value="4">流失客户</option> <option value="4">流失客户</option>
<option value="5">已成交客户</option> <option value="5">已成交客户</option>
</select> </select>
</div>
<div class="layui-input-inline" style="width:300px;">
<input type="text" class="layui-input" id="follow_time" placeholder="最近跟进日期" readonly name="follow_time">
</div> </div>
{eq name="$auth" value="1"} <div class="layui-input-inline" style="width:300px;">
<div class="layui-input-inline" style="width:120px;"> <input type="text" class="layui-input" id="next_time" placeholder="下次跟进日期" readonly name="next_time">
<input type="text" name="username" placeholder="选择所属员工" class="layui-input" readonly data-event="select"/>
<input type="text" name="uid" value="" style="display:none" />
</div> </div>
{/eq}
<div class="layui-input-inline" style="width:240px;"> <div class="layui-input-inline" style="width:240px;">
<input type="hidden" name="tab" value="0" /> <input type="hidden" name="tab" value="0" />
<input type="text" name="keywords" placeholder="输入关键字" class="layui-input" autocomplete="off" /> <input type="text" name="keywords" placeholder="输入关键字" class="layui-input" autocomplete="off" />
</div> </div>
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button> <div class="layui-input-inline">
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="clear">清空</button> <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="clear">清空</button>
</div>
</form> </form>
<table class="layui-hide" id="test" lay-filter="test"></table> <table class="layui-hide" id="test" lay-filter="test"></table>
</div> </div>
@ -67,6 +84,7 @@
<script type="text/html" id="toolbarDemo"> <script type="text/html" id="toolbarDemo">
<div class="layui-btn-container"> <div class="layui-btn-container">
<span class="layui-btn layui-btn-sm" title="添加客户" lay-event="add">+ 添加客户</span> <span class="layui-btn layui-btn-sm" title="添加客户" lay-event="add">+ 添加客户</span>
<button class="layui-btn layui-btn-normal layui-btn-sm" lay-event="import"><i class="layui-icon">&#xe66f;</i>批量导入</button>
</div> </div>
</script> </script>
{/block} {/block}
@ -75,9 +93,12 @@
<!-- 脚本 --> <!-- 脚本 -->
{block name="script"} {block name="script"}
<script> <script>
const moduleInit = ['tool','employeepicker','tablePlus']; const moduleInit = ['tool','employeepicker','tablePlus','laydatePlus'];
function gouguInit() { function gouguInit() {
var table = layui.tablePlus, tool = layui.tool ,form = layui.form, element = layui.element, employeepicker = layui.employeepicker; var table = layui.tablePlus, tool = layui.tool ,form = layui.form, element = layui.element,upload = layui.upload,laydate = layui.laydate, employeepicker = layui.employeepicker,laydatePlus = layui.laydatePlus;
var follow_time = new laydatePlus({'target':'follow_time'});
var next_time = new laydatePlus({'target':'next_time'});
layui.pageTable = table.render({ layui.pageTable = table.render({
elem: '#test', elem: '#test',
@ -89,13 +110,14 @@
cellMinWidth: 80, cellMinWidth: 80,
page: true, //开启分页 page: true, //开启分页
limit: 20, limit: 20,
sort:true,
cols: [ cols: [
[ //表头 [ //表头
{ {
field: 'id',title: '编号',align: 'center',width: 80,templet: function (d) { field: 'id',title: '编号',align: 'center',width: 80,templet: function (d) {
return'C' + d.id; return'C' + d.id;
} }
},{ field: 'status', title: '状态', align: 'center', width: 80, templet: function (d) { },{ field: 'status', title: '状态', align: 'center', width: 90, templet: function (d) {
var html = '<span class="layui-btn layui-btn-xs layui-bg-' + d.status + '">' + d.status_name + '</span>'; var html = '<span class="layui-btn layui-btn-xs layui-bg-' + d.status + '">' + d.status_name + '</span>';
return html; return html;
} }
@ -124,25 +146,17 @@
align: 'center', align: 'center',
width: 100 width: 100
},{ },{
field: 'qq', field: 'follow_time',
title: 'QQ号码', title: '最近跟进时间',
align: 'center', align: 'center',
width: 100 sort: true,
width: 150
},{ },{
field: 'wechat', field: 'next_time',
title: '微信号', title: '下次跟进时间',
align: 'center', align: 'center',
width: 90 sort: true,
},{ width: 150
field: 'create_time',
title: '创建时间',
align: 'center',
width: 136
},{
field: 'update_time',
title: '最后编辑时间',
align: 'center',
width: 136
},{ },{
field: 'source', field: 'source',
title: '来源渠道', title: '来源渠道',
@ -163,7 +177,12 @@
title: '所属部门', title: '所属部门',
align: 'center', align: 'center',
width: 90 width: 90
}, { },{
field: 'create_time',
title: '创建时间',
align: 'center',
width: 136
},{
field: 'right', field: 'right',
fixed:'right', fixed:'right',
title: '操作', title: '操作',
@ -185,6 +204,20 @@
] ]
}); });
table.on('sort(test)', function(obj){ //注tool是工具条事件名test是table原始容器的属性 lay-filter="对应的值"
console.log(obj.field); //当前排序的字段名
console.log(obj.type); //当前排序类型desc降序、asc升序、null空对象默认排序
//尽管我们的 table 自带排序功能,但并没有请求服务端。
//有些时候,你可能需要根据当前排序的字段,重新向服务端发送请求,从而实现服务端排序,如:
let where = form.val("barsearchform");
console.log(where);
//where['field'] = obj.field;
where['orderby'] = obj.field +' '+obj.type;
layui.pageTable.reload({
where: where
});
});
element.on('tab(tab)', function(data){ element.on('tab(tab)', function(data){
$('[name="tab"]').val(data.index); $('[name="tab"]').val(data.index);
$("#barsearchform")[0].reset(); $("#barsearchform")[0].reset();
@ -192,13 +225,6 @@
return false; return false;
}); });
//表头工具栏事件
table.on('toolbar(test)', function(obj){
if (obj.event === 'add') {
tool.side("/customer/index/add");
return;
}
});
//监听行工具事件 //监听行工具事件
table.on('tool(test)', function(obj) { table.on('tool(test)', function(obj) {
var data = obj.data; var data = obj.data;
@ -243,24 +269,119 @@
}) })
}); });
//表头工具栏事件
table.on('toolbar(test)', function(obj){
if (obj.event === 'add') {
tool.side("/customer/index/add");
return;
}
if (obj.event === 'import') {
uploadImport();
return;
}
});
let uploadFiles;
function clearFile() {
for (let x in uploadFiles) {
delete uploadFiles[x];
}
$('#gougu-upload-choosed').html('');
}
function uploadImport(){
layer.open({
'title':'批量导入客户',
'type':1,
'area': ['640px', '320px'],
'content':'<div class="layui-form p-3">\
<div id="uploadType1">\
<div class="layui-form-item">\
<label class="layui-form-label">文件:</label>\
<div class="layui-input-block">\
<span class="gougu-upload-files">.xls,.xlsx</span><button type="button" class="layui-btn layui-btn-normal" id="uploadSelect">选择文件</button><a href="/static/home/file/勾股OA客户导入模板.xlsx" class="layui-btn ml-4">Execl表格模板下载</a>\
</div>\
</div>\
<div class="layui-form-item">\
<label class="layui-form-label"></label>\
<div class="layui-input-block">\
<span class="gougu-upload-tips">1、这里导入的客户是当前登录人员的客户如果是公海客户请到公海列表操作<br>2、只能上传 .xls、.xlsx文件<br>3、数据请勿放在合并的单元格中<br>4、文件大小请勿超过2MB导入数据不能超过3000条</span>\
</div>\
</div>\
<div class="layui-form-item">\
<label class="layui-form-label"></label>\
<div class="layui-input-block green" id="gougu-upload-choosed"></div>\
</div>\
<div class="layui-form-item">\
<label class="layui-form-label"></label>\
<div class="layui-input-block red" id="gougu-upload-note"></div>\
</div>\
<div class="layui-form-item layui-form-item-sm">\
<label class="layui-form-label"></label>\
<div class="layui-input-block">\
<button type="button" class="layui-btn" id="uploadAjax">上传并导入</button>\
</div>\
</div>\
</div> \
</div>',
success: function(layero, idx){
form.render();
//选文件
let uploadImport = upload.render({
elem: '#uploadSelect'
,url: '/api/import/import_customer/type/my'
,auto: false
,accept: 'file' //普通文件
,acceptMime: 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' // 此处设置上传的文件格式
,exts: 'xls|xlsx' //只允许上传文件格式
,bindAction: '#uploadAjax'
,choose: function(obj){
uploadFiles = obj.pushFile();
// 清空,防止多次上传
clearFile();
obj.preview(function(index, file, result){
obj.pushFile();// 再添加
$('#gougu-upload-choosed').html('已选择:'+file.name);
});
}
,before: function(obj){
}
,progress: function(n, elem, e){
$('#gougu-upload-note').html('文件上转中...');
if(n==100){
$('#gougu-upload-note').html('数据导入中...');
}
}
,error: function(index, upload){
clearFile();
$('#gougu-upload-note').html('数据导入失败,请关闭重试');
}
,done: function(res, index, upload){
clearFile();
layer.msg(res.msg);
$('#gougu-upload-note').html(res.msg);
if(res.code==0){
layer.close(idx);
layui.pageTable.reload();
}
}
});
}
});
}
$('[lay-filter="clear"]').on('click',function(){ $('[lay-filter="clear"]').on('click',function(){
//$('.layui-table-sort').attr('lay-sort','');
//console.log($('.layui-table-sort').attr('lay-sort'));
setTimeout(function(){ setTimeout(function(){
$('[lay-filter="webform"]').click(); $('[lay-filter="webform"]').click();
},10) },10)
}) })
//监听搜索提交 //监听搜索提交
form.on('submit(webform)', function(data) { form.on('submit(webform)', function(data) {
layui.pageTable.reload({ layui.pageTable.reload({
where: { where: data.field,
tab: data.field.tab,
keywords: data.field.keywords,
grade_id: data.field.grade_id,
source_id: data.field.source_id,
type: data.field.type,
status: data.field.status,
uid: data.field.uid
},
page: { page: {
curr: 1 curr: 1
} }

View File

@ -18,7 +18,7 @@ require __DIR__ . '/../vendor/autoload.php';
define('CMS_VERSION','4.50.05'); define('CMS_VERSION','4.50.05');
// 定义Layui版本号 // 定义Layui版本号
define('LAYUI_VERSION','2.8.1'); define('LAYUI_VERSION','2.8.2');
// 定义项目目录 // 定义项目目录
define('CMS_ROOT', __DIR__ . '/../'); define('CMS_ROOT', __DIR__ . '/../');

File diff suppressed because one or more lines are too long

View File

@ -14,6 +14,8 @@
/> />
<missing-glyph /> <missing-glyph />
<glyph glyph-name="edge" unicode="&#59019;" d="M240.185509 821.062741C322.180562 871.479699 415.37494 897.48813 509.969233 895.934224 845.948962 895.934224 1023.938224 648.353161 1023.938224 456.964708c-0.199988-65.396055-25.998431-127.79229-71.795669-174.389479-45.797237-46.397201-107.993485-72.995596-173.389539-73.995536-150.390927 0-182.98896 46.197213-182.98896 63.996139 0 7.599542 2.399855 12.399252 9.599421 18.798866l1.99988 2.399855 0.799951 3.199807c20.998733 22.998612 31.798082 52.396839 31.798082 83.194981 0 157.390504-164.390082 285.382782-367.977799 285.382782-75.075471 0.599964-149.071006-17.798926-215.027027-53.796754 53.996742 115.03306 165.430019 195.188224 182.628981 207.627473 1.599903 1.099934 0.599964 1.679899 0.599964 1.679899z m31.198118-636.081624c-2.799831-59.99638 9.199445-119.992761 32.798021-174.389479 27.198359-52.796815 65.396055-101.993847 112.993183-138.591638-118.992821 22.998612-222.966548 87.794703-298.781974 178.589225C42.237452 143.383627 0 259.176641 0 380.169341c0 102.393822 124.792471 188.78861 271.983591 188.78861 73.195584 1.199928 144.791264-21.798685 203.587717-65.396054l-7.199566-2.399856c-102.993786-35.197876-196.988115-181.389056-196.988115-316.180924zM939.543315 95.986486l-1.399915-0.199987c-23.598576-37.597732-51.796875-70.195765-84.394908-98.994028-61.596284-55.996622-136.191783-90.99451-217.586873-99.793979-37.197756-0.599964-73.59556 6.399614-107.593509 22.798624-51.196911 20.598757-94.194317 59.99638-123.192567 105.993605-28.798263 47.797116-42.197454 103.393762-37.997708 159.190396-1.199928 40.197575 10.799348 80.595138 29.99819 116.392978 27.798323-66.196006 74.995475-122.592604 135.191844-161.590251 60.196368-38.997647 130.992097-58.996441 202.787766-57.196549 61.99626-0.599964 124.192507 13.399192 180.389116 40.997526l3.799771 1.799892c7.799529 4.599722 15.399071 7.799529 23.1986 0 8.999457-9.799409 3.599783-18.39889-2.399855-27.998311-0.399976-0.399976-0.599964-0.99994-0.799952-1.399916z" horiz-adv-x="1024" />
<glyph glyph-name="leaf" unicode="&#59137;" d="M1017.948269 886.876437c-4.863707 5.785251-12.031275 9.113051-19.557222 9.113051l-26.110427 0c-258.032454 0.102394-461.847374 0.153591-611.905533-35.735447-80.635142-19.301237-142.992985-48.432282-190.606116-89.031436-51.401703-43.82456-86.420393-101.216302-107.155144-175.554223-13.77197-49.353826-20.222782-138.487656 6.96278-227.160714 10.034595-32.766026 25.700852-63.688963 46.589193-92.103251-62.255449-97.530124-116.063407-225.983185-116.063407-378.805977 0-14.130349 11.468109-25.598458 25.598458-25.598458s25.598458 11.468109 25.598458 25.598458c0 235.761795 139.665185 410.650458 222.91137 493.845446 59.7468 59.7468 127.275532 110.175762 195.367429 145.808815 63.381781 33.175601 123.947732 51.4529 170.536925 51.4529 14.130349 0 25.598458 11.468109 25.598458 25.598458s-11.468109 25.598458-25.598458 25.598458c-55.497456 0-122.667809-19.813206-194.241097-57.340545-72.597226-38.039308-144.477695-91.591282-207.80828-154.973063-26.72479-26.72479-58.876453-62.357843-90.823328-105.977615-12.389654 19.506025-22.014674 40.189579-28.619076 61.794677-25.598458 83.553366-16.178225 164.034917-6.604402 198.388047 73.211589 262.384191 351.313233 263.049751 855.858835 262.896161-60.156376-321.926204-172.328817-530.29765-333.599101-619.533873-149.597387-82.785412-297.966048-37.629733-354.845821-14.335136-11.980078 4.914904-24.06255 10.95614-35.786644 17.91892-12.133669 7.218765-27.851122 3.225406-35.069887-8.908263s-3.225406-27.851122 8.908263-35.069887c13.925561-8.2939 28.260697-15.461468 42.595834-21.349114 31.844481-13.004017 83.143791-29.694211 146.679163-35.172281 14.027955-1.228726 27.902319-1.791892 41.674289-1.791892 75.208269 0 145.860012 18.072511 210.675307 53.910352 82.375837 45.565255 153.641943 119.749585 211.904033 220.351524 68.296685 118.00889 119.698388 274.51786 152.720399 465.175173 1.279923 7.423553-0.767954 15.051893-5.631661 20.837145z" horiz-adv-x="1025" /> <glyph glyph-name="leaf" unicode="&#59137;" d="M1017.948269 886.876437c-4.863707 5.785251-12.031275 9.113051-19.557222 9.113051l-26.110427 0c-258.032454 0.102394-461.847374 0.153591-611.905533-35.735447-80.635142-19.301237-142.992985-48.432282-190.606116-89.031436-51.401703-43.82456-86.420393-101.216302-107.155144-175.554223-13.77197-49.353826-20.222782-138.487656 6.96278-227.160714 10.034595-32.766026 25.700852-63.688963 46.589193-92.103251-62.255449-97.530124-116.063407-225.983185-116.063407-378.805977 0-14.130349 11.468109-25.598458 25.598458-25.598458s25.598458 11.468109 25.598458 25.598458c0 235.761795 139.665185 410.650458 222.91137 493.845446 59.7468 59.7468 127.275532 110.175762 195.367429 145.808815 63.381781 33.175601 123.947732 51.4529 170.536925 51.4529 14.130349 0 25.598458 11.468109 25.598458 25.598458s-11.468109 25.598458-25.598458 25.598458c-55.497456 0-122.667809-19.813206-194.241097-57.340545-72.597226-38.039308-144.477695-91.591282-207.80828-154.973063-26.72479-26.72479-58.876453-62.357843-90.823328-105.977615-12.389654 19.506025-22.014674 40.189579-28.619076 61.794677-25.598458 83.553366-16.178225 164.034917-6.604402 198.388047 73.211589 262.384191 351.313233 263.049751 855.858835 262.896161-60.156376-321.926204-172.328817-530.29765-333.599101-619.533873-149.597387-82.785412-297.966048-37.629733-354.845821-14.335136-11.980078 4.914904-24.06255 10.95614-35.786644 17.91892-12.133669 7.218765-27.851122 3.225406-35.069887-8.908263s-3.225406-27.851122 8.908263-35.069887c13.925561-8.2939 28.260697-15.461468 42.595834-21.349114 31.844481-13.004017 83.143791-29.694211 146.679163-35.172281 14.027955-1.228726 27.902319-1.791892 41.674289-1.791892 75.208269 0 145.860012 18.072511 210.675307 53.910352 82.375837 45.565255 153.641943 119.749585 211.904033 220.351524 68.296685 118.00889 119.698388 274.51786 152.720399 465.175173 1.279923 7.423553-0.767954 15.051893-5.631661 20.837145z" horiz-adv-x="1025" />
<glyph glyph-name="folder" unicode="&#60094;" d="M970.666667 682.666667H542.173333L429.793333 795.046667A52.986667 52.986667 0 0 1 392.08 810.666667H96a53.393333 53.393333 0 0 1-53.333333-53.333334v-704a53.393333 53.393333 0 0 1 53.333333-53.333333h874.666667a53.393333 53.393333 0 0 1 53.333333 53.333333V629.333333a53.393333 53.393333 0 0 1-53.333333 53.333334zM96 768h296.08a10.573333 10.573333 0 0 0 7.54-3.126667L481.826667 682.666667H96a53.546667 53.546667 0 0 1-10.666667-1.073334V757.333333a10.666667 10.666667 0 0 0 10.666667 10.666667z m885.333333-714.666667a10.666667 10.666667 0 0 0-10.666666-10.666666H96a10.666667 10.666667 0 0 0-10.666667 10.666666V629.333333a10.666667 10.666667 0 0 0 10.666667 10.666667h874.666667a10.666667 10.666667 0 0 0 10.666666-10.666667z" horiz-adv-x="1024" /> <glyph glyph-name="folder" unicode="&#60094;" d="M970.666667 682.666667H542.173333L429.793333 795.046667A52.986667 52.986667 0 0 1 392.08 810.666667H96a53.393333 53.393333 0 0 1-53.333333-53.333334v-704a53.393333 53.393333 0 0 1 53.333333-53.333333h874.666667a53.393333 53.393333 0 0 1 53.333333 53.333333V629.333333a53.393333 53.393333 0 0 1-53.333333 53.333334zM96 768h296.08a10.573333 10.573333 0 0 0 7.54-3.126667L481.826667 682.666667H96a53.546667 53.546667 0 0 1-10.666667-1.073334V757.333333a10.666667 10.666667 0 0 0 10.666667 10.666667z m885.333333-714.666667a10.666667 10.666667 0 0 0-10.666666-10.666666H96a10.666667 10.666667 0 0 0-10.666667 10.666666V629.333333a10.666667 10.666667 0 0 0 10.666667 10.666667h874.666667a10.666667 10.666667 0 0 0 10.666666-10.666667z" horiz-adv-x="1024" />
@ -66,8 +68,6 @@
<glyph glyph-name="chrome" unicode="&#59018;" d="M515.436 583.685H914.285C840.842 730.955 688.748 832.132 513 832.132c-141.284 0-267.274-65.395-349.42-167.546l151.66-262.682c8.535 102.325 95.704 181.781 200.196 181.781zM514.218 550.803c-91.476 0-165.631-74.155-165.631-165.631s74.155-165.631 165.631-165.631c52.7 0 99.615 24.642 129.95 62.999l1.428 2.474 0.355-0.205c21.252 27.852 33.898 62.624 33.898 100.363 0 84.774-63.702 154.626-145.841 164.413l-6.393 0.632c-4.424 0.354-8.882 0.586-13.397 0.586zM929.561 549.585H627.443c52.209-36.066 86.506-96.297 86.506-164.413 0-45.547-18.268-81.598-41.12-121.192L483.898-63.257c9.624-0.617 19.322-0.966 29.102-0.966 247.521 0 448.177 200.656 448.177 448.177 0 58.508-11.225 114.391-31.616 165.631zM514.218 185.441c-83.583 0-144.927 54.804-185.034 124.651l-0.235-0.136-187.482 324.727C93.081 563.124 64.823 476.84 64.823 383.954c0-225.02 165.839-411.288 381.958-443.298l152.278 263.752c-25.769-12.143-54.518-18.967-84.841-18.967z" horiz-adv-x="1024" /> <glyph glyph-name="chrome" unicode="&#59018;" d="M515.436 583.685H914.285C840.842 730.955 688.748 832.132 513 832.132c-141.284 0-267.274-65.395-349.42-167.546l151.66-262.682c8.535 102.325 95.704 181.781 200.196 181.781zM514.218 550.803c-91.476 0-165.631-74.155-165.631-165.631s74.155-165.631 165.631-165.631c52.7 0 99.615 24.642 129.95 62.999l1.428 2.474 0.355-0.205c21.252 27.852 33.898 62.624 33.898 100.363 0 84.774-63.702 154.626-145.841 164.413l-6.393 0.632c-4.424 0.354-8.882 0.586-13.397 0.586zM929.561 549.585H627.443c52.209-36.066 86.506-96.297 86.506-164.413 0-45.547-18.268-81.598-41.12-121.192L483.898-63.257c9.624-0.617 19.322-0.966 29.102-0.966 247.521 0 448.177 200.656 448.177 448.177 0 58.508-11.225 114.391-31.616 165.631zM514.218 185.441c-83.583 0-144.927 54.804-185.034 124.651l-0.235-0.136-187.482 324.727C93.081 563.124 64.823 476.84 64.823 383.954c0-225.02 165.839-411.288 381.958-443.298l152.278 263.752c-25.769-12.143-54.518-18.967-84.841-18.967z" horiz-adv-x="1024" />
<glyph glyph-name="edge" unicode="&#59019;" d="M854.794 669.297C797.923 743.783 683.626 823.59 548.62 830.822 136.707 852.889 85.742 435.448 85.742 435.448c55.449 53.038 58.01 97.116 163.936 154.293C673.983 818.768 676.394 476.432 676.394 476.432H346.111c-7.232 65.092 62.681 137.417 62.681 137.417-202.509-98.844-216.974-284.477-216.974-284.477s-28.93-279.655 219.385-364.034 452.029 42.189 452.029 42.189V193.16c-59.065-32.546-102.292-54.405-153.087-63.887-361.623-67.503-364.034 188.044-364.034 188.044h585.83c0 0.001 39.075 199.761-77.147 351.98z" horiz-adv-x="1024" />
<glyph glyph-name="heart" unicode="&#59020;" d="M512 4.100000000000023c-108.9 0-447.3 277.5-447.3 522.2 0 131 106.6 237.6 237.6 237.6 94.9 0 174.8-50.2 209.7-76.1 34.9 25.9 114.8 76.1 209.7 76.1 131 0 237.6-106.6 237.6-237.6 0-244.7-338.4-522.2-447.3-522.2zM302.3 708c-100.2 0-181.7-81.5-181.7-181.7 0-221 326.8-466.3 391.4-466.3s391.4 245.3 391.4 466.3c0 100.2-81.5 181.7-181.7 181.7-103.9 0-190.2-76-191.1-76.8-10.6-9.5-26.7-9.5-37.3 0-0.8 0.8-87.7 76.8-191 76.8z" horiz-adv-x="1024" /> <glyph glyph-name="heart" unicode="&#59020;" d="M512 4.100000000000023c-108.9 0-447.3 277.5-447.3 522.2 0 131 106.6 237.6 237.6 237.6 94.9 0 174.8-50.2 209.7-76.1 34.9 25.9 114.8 76.1 209.7 76.1 131 0 237.6-106.6 237.6-237.6 0-244.7-338.4-522.2-447.3-522.2zM302.3 708c-100.2 0-181.7-81.5-181.7-181.7 0-221 326.8-466.3 391.4-466.3s391.4 245.3 391.4 466.3c0 100.2-81.5 181.7-181.7 181.7-103.9 0-190.2-76-191.1-76.8-10.6-9.5-26.7-9.5-37.3 0-0.8 0.8-87.7 76.8-191 76.8z" horiz-adv-x="1024" />
<glyph glyph-name="key" unicode="&#59011;" d="M819.2 588.8c0-172.8-140.8-307.2-307.2-307.2-172.8 0-307.2 140.8-307.2 307.2C204.8 755.2 339.2 896 512 896S819.2 755.2 819.2 588.8L819.2 588.8zM512 838.4c-140.8 0-249.6-115.2-249.6-249.6 0-134.4 108.8-256 249.6-256s256 115.2 256 249.6S652.8 838.4 512 838.4L512 838.4zM480 300.79999999999995l64 0L544-128l-64 0L480 300.79999999999995 480 300.79999999999995zM512 192l192 0 0-64L512 128 512 192 512 192zM512 64l192 0 0-64L512 0 512 64 512 64z" horiz-adv-x="1024" /> <glyph glyph-name="key" unicode="&#59011;" d="M819.2 588.8c0-172.8-140.8-307.2-307.2-307.2-172.8 0-307.2 140.8-307.2 307.2C204.8 755.2 339.2 896 512 896S819.2 755.2 819.2 588.8L819.2 588.8zM512 838.4c-140.8 0-249.6-115.2-249.6-249.6 0-134.4 108.8-256 249.6-256s256 115.2 256 249.6S652.8 838.4 512 838.4L512 838.4zM480 300.79999999999995l64 0L544-128l-64 0L480 300.79999999999995 480 300.79999999999995zM512 192l192 0 0-64L512 128 512 192 512 192zM512 64l192 0 0-64L512 0 512 64 512 64z" horiz-adv-x="1024" />

Before

Width:  |  Height:  |  Size: 321 KiB

After

Width:  |  Height:  |  Size: 322 KiB

File diff suppressed because one or more lines are too long