1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849 |
- @extends('admin/layout')
- @section('header')
- <link href="{{asset('css/plugins/chosen/chosen.css')}}" rel="stylesheet">
- <link href="{{asset('css/plugins/switchery/switchery.css')}}" rel="stylesheet">
- <link rel="stylesheet"
- href="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.9/dist/css/bootstrap-select.min.css">
- <link rel="stylesheet" href="{{asset('js/plugins/zTree_v3-master/css/zTreeStyle/zTreeStyle.css')}}">
- <style>
- .ztree {
- margin: 0;
- padding: 5px;
- color: #555;
- position: relative;
- z-index: 100;
- }
- .ztree li span.button.add {
- margin-left: 2px;
- margin-right: -1px;
- background-position: -144px 0;
- vertical-align: top;
- *vertical-align: middle
- }
- .li_ys {
- margin: -10px;
- clear: both;
- padding-left: 20px;
- }
- .li_ys li {
- display: inline-block;
- float: left;
- text-align: center;
- font-size: 1em;
- color: #333;
- width: 100px;
- overflow: hidden;
- margin-right: 5px;
- padding: 8px;
- border-radius: 4px;
- cursor: pointer;
- }
- .li_ys .selected {
- background: #333;
- color: #fff;
- }
- .tab_box div {
- border: 1px solid red;
- height: 150px;
- width: 500px;
- }
- .form-horizontal .form-boxs {
- display: none;
- }
- .form-horizontal .form-boxs:first-child {
- display: block;
- }
- .hide {
- display: none;
- }
- .ibox-content {
- padding: 5px 0;
- border: none;
- }
- .ibox {
- overflow: hidden;
- }
- .ibox-title {
- /* border: dotted 1px #ddd; */
- border: none;
- }
- .help-block {
- display: block;
- margin-top: 5px;
- margin-bottom: 0px;
- color: #737373;
- }
- .checkbox input[type=checkbox], .checkbox-inline input[type=checkbox], .radio input[type=radio], .radio-inline input[type=radio] {
- margin: 4px 0 0 !important;
- margin-left: -20px !important;
- }
- .checkbox .control-label {
- padding-top: 0 !important;
- }
- .checkbox label {
- margin-bottom: 1px !important;
- /* padding-top:0 !important; */
- margin-right: 6px;
- }
- .radio label {
- margin-bottom: 1px !important;
- /* padding-top:0 !important; */
- margin-right: 6px;
- }
- .form-control-select {
- vertical-align: middle;
- padding: 6px 8px;
- font-size: 13px;
- font-weight: normal;
- border-radius: 3px;
- -webkit-appearance: none;
- appearance: none;
- background-color: #f8f8f8;
- background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='28' viewBox='0 0 16 28' fill='%23777'%3E%3Cpath d='M16 17q0 .406-.297.703l-7 7Q8.406 25 8 25t-.703-.297l-7-7Q0 17.406 0 17t.297-.703T1 16h14q.406 0 .703.297T16 17zm0-6q0 .406-.297.703T15 12H1q-.406 0-.703-.297T0 11t.297-.703l7-7Q7.594 3 8 3t.703.297l7 7Q16 10.594 16 11z'/%3E%3C/svg%3E");
- background-position: right 8px center;
- background-repeat: no-repeat;
- -webkit-background-size: 8px 16px;
- background-size: 8px 16px;
- padding-right: 25px;
- }
- input[type="checkbox"]:before, input[type="radio"]:before {
- visibility: visible;
- content: "\f096";
- float: left;
- font-family: FontAwesome;
- width: 13px;
- height: 13px;
- line-height: 13px;
- font-size: 16px;
- border-radius: 5px;
- margin-right: 8px;
- text-align: left;
- font-weight: normal;
- color: #888;
- }
- input[type="checkbox"]:checked:before, input[type="radio"]:checked:before {
- content: "\f046";
- color: #666;
- }
- input[type="checkbox"], input[type="radio"] {
- visibility: hidden;
- cursor: pointer;
- }
- input[type="radio"]:before {
- content: "\f10c";
- }
- input[type="checkbox"]:checked:before, input[type="radio"]:checked:before {
- content: "\f046";
- color: #666;
- }
- input[type="radio"]:checked:before {
- content: "\f192";
- color: #1fb5ad;
- }
- .ztree li span.button.ico_docu:before {
- content: "\f0f6";
- }
- </style>
- <style>
- .wrapper-content {
- width: 100%;
- height: 100%;
- position: relative;
- }
- .sep-wrap {
- position: absolute;
- width: 100%;
- height: 100%;
- left: 0;
- top: 0;
- display: flex;
- display: -webkit-flex;
- display: -moz-flex;
- display: -ms-flex;
- display: -o-flex;
- /* padding: 15px; */
- }
- .sep-sidebar {
- width: 400px;
- flex-shrink: 0;
- /* margin-right: 16px; */
- overflow-x: auto;
- overflow-y: auto;
- background: #f2f4f6;
- border-right: solid 1px #d5dbe0;
- box-shadow: 0 2px 2px #ddd;
- z-index: 10;
- padding-top: 15px;
- }
- .sep-sidebar::-webkit-scrollbar {
- width: 6px;
- }
- .sep-sidebar::-webkit-scrollbar:horizontal {
- height: 6px;
- }
- .sep-sidebar::-webkit-scrollbar-track:horizontal {
- border-left: none;
- border-top: solid 1px #ddd;
- }
- .sep-sidebar::-webkit-scrollbar-track {
- background: rgba(255, 255, 255, 0.4);
- -webkit-border-radius: 0;
- border-radius: 0;
- border-left: solid 1px #ddd;
- }
- .sep-sidebar::-webkit-scrollbar-thumb {
- -webkit-border-radius: 10px;
- border-radius: 10px;
- background: rgba(0, 0, 0, 0.5);
- }
- .sep-sidebar .ibox-content {
- background: transparent;
- }
- .sep-sidebar .ibox {
- overflow: unset;
- }
- .sep-primary {
- flex: auto;
- overflow-y: auto;
- padding: 15px;
- }
- .control-sidebar {
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- width: 250px;
- z-index: 8;
- }
- .ui-resizable-handle {
- width: 5px;
- background: #ddd;
- position: absolute;
- top: 0;
- bottom: 0;
- right: -5px;
- cursor: col-resize;
- opacity: 0;
- }
- .ui-resizable-handle:hover {
- opacity: 1;
- }
- .ui-resizable-handle:before {
- position: absolute;
- top: 50%;
- right: -10px;
- width: 20px;
- height: 60px;
- line-height: 60px;
- font-family: FontAwesome;
- content: "\f039";
- color: #888;
- background: #ddd;
- margin-top: -30px;
- margin-left: -1px;
- border-radius: 0 3px 3px 0;
- display: block;
- font-size: 12px;
- -webkit-transform: scale(.6);
- text-transform: rotate(-90deg);
- text-align: center;
- }
- .edui-default .edui-editor {
- max-width: 100% !important;
- width: 100% !important;
- }
- .form-action-fixed {
- position: fixed;
- right: 40px;
- top: 16px;
- margin: 0;
- padding: 12px;
- text-indent: 0;
- border-radius: 0 0 4px 4px;
- background: rgba(200, 200, 200, 0.5);
- }
- .sui-resource-selector {
- height: auto;
- padding: 5px;
- background: #fff;
- overflow: hidden;
- }
- .sui-resource-selector .sui-selector-value {
- display: none;
- }
- .sui-resource-selector .sui-selector-box {
- position: relative;
- background: #fff;
- border-radius: 4px 4px 0 0;
- }
- .sui-resource-selector .sui-selector-btns {
- padding: 7px 10px;
- position: relative;
- overflow: hidden;
- min-height: 30px;
- background: #f9f9f9;
- margin: -5px;
- width: 100%;
- }
- .sui-resource-selector .sui-selector-box .img-item {
- position: relative;
- float: left;
- width: 33.33%;
- margin: 0;
- background: none;
- }
- .sui-resource-selector .sui-selector-box .img-item .box {
- position: relative;
- background: #f0f0f0;
- box-shadow: 0 0 3px #ddd;
- border: solid 1px #ddd;
- padding-left: 100px;
- margin: 5px;
- height: 102px;
- border-radius: 4px;
- overflow: hidden;
- }
- .sui-resource-selector .sui-selector-box .img-item .box .thumb {
- position: absolute;
- left: 0;
- top: 0;
- display: block;
- width: 100px;
- height: 100px;
- line-height: 96px;
- text-align: center;
- background: #f8f8f8;
- }
- .sui-resource-selector .sui-selector-box img, .sui-resource-selector .sui-selector-box .img-item img {
- max-width: 100%;
- max-height: 100%;
- }
- .cutstr {
- display: block;
- height: 1.5em;
- line-height: 1.5em;
- width: 100%;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- }
- .sui-resource-selector .sui-selector-box .img-item .box .title {
- margin: 5px 10px;
- font-weight: bold;
- }
- .sui-resource-selector .sui-selector-box .img-item .box .summary {
- margin: 5px 10px;
- line-height: 1.4em;
- height: 4.2em;
- overflow: hidden;
- color: #777;
- }
- .sui-resource-selector .sui-selector-box .img-item .operate {
- position: absolute;
- top: 1px;
- right: 1px;
- background-color: rgba(0, 0, 0, 0.75);
- line-height: 1em;
- padding: 3px 5px;
- }
- .sui-resource-selector .sui-selector-box .img-item .operate a {
- color: #fff;
- }
- .sui-resource-selector .sui-selector-btns .btn {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- border-radius: 0;
- font-size: 14px;
- color: #333;
- }
- .float-e-margins .btn {
- margin-bottom: 0px;
- }
- .modal {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1050;
- display: none;
- overflow: hidden;
- -webkit-overflow-scrolling: touch;
- outline: 0;
- }
- .sui-resource-explorer {
- padding: 20px 0;
- margin: -10px;
- }
- .sui-resource-explorer.pop {
- margin-top: 10px;
- }
- .sui-resource-explorer dl {
- background: #f0f0f0;
- box-shadow: 0 0 3px #ddd;
- border: solid 1px #ddd;
- border-radius: 3px;
- padding: 8px;
- cursor: pointer;
- }
- .sui-resource-explorer.pop dl {
- padding: 2px;
- position: relative;
- overflow: hidden;
- }
- .sui-resource-explorer.pop dl {
- padding-left: 110px;
- min-height: 100px;
- }
- .sui-resource-explorer dl .thumb {
- display: block;
- height: 160px;
- width: 100%;
- text-align: center;
- line-height: 156px;
- overflow: hidden;
- background: #fff;
- }
- .sui-resource-explorer.pop dl .thumb {
- height: 100px;
- width: 100%;
- text-align: center;
- line-height: 96px;
- }
- .sui-resource-explorer.pop dl .thumb {
- position: absolute;
- left: 0;
- top: 0;
- width: 100px;
- overflow: hidden;
- }
- .sui-resource-explorer.pop dl .fa {
- position: absolute;
- right: 6px;
- top: 6px;
- color: #1fb5ad;
- font-size: 14px;
- display: none;
- }
- .cutstr {
- display: block;
- height: 1.5em;
- line-height: 1.5em;
- width: 100%;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- }
- .sui-resource-explorer dl .filename, .sui-resource-explorer dl .title, .sui-resource-explorer dl .summary {
- margin: 3px;
- }
- .sui-resource-explorer.pop dl .title {
- font-weight: bold;
- }
- .sui-resource-explorer.pop dl.selected {
- border-color: #1fb5ad;
- background: #1fb5ad;
- }
- .sui-resource-explorer.pop dl.selected .filename, .sui-resource-explorer.pop dl.selected .title, .sui-resource-explorer.pop dl.selected .summary {
- color: #fff;
- }
- .sui-resource-explorer.pop dl.selected .filename, .sui-resource-explorer.pop dl.selected .title, .sui-resource-explorer.pop dl.selected .summary {
- color: #fff;
- }
- .pagination {
- vertical-align: middle;
- }
- .pagination.pagination-sm {
- margin: 0;
- }
- .pagination > li {
- display: inline;
- }
- .pagination li a {
- color: #333;
- }
- .pagination.pagination-sm li a {
- height: 28px;
- padding: 4px 10px;
- vertical-align: middle;
- }
- .pagination li.active a, .pagination li.active a:hover {
- background: #f0f0f0;
- border-color: #ddd;
- color: #333;
- }
- .form-control-select {
- max-width: 100%;
- }
- div#rMenu {
- position: absolute;
- visibility: hidden;
- top: 0;
- background-color: #555;
- text-align: left;
- padding: 2px 4px;
- z-index: 999;
- }
- div#rMenu ul li {
- margin: 1px 0;
- cursor: pointer;
- list-style: none outside none;
- background-color: #DFDFDF;
- padding: 4px;
- }
- div#rMenu ul {
- padding-left: 0;
- margin: 0;
- width: 100%;
- }
- .image-li img {
- width: 100%;
- max-height: 100%;
- }
- .imageDiv {
- border: 2px solid #F0F0F0;
- border-radius: 5px;
- }
- .image-li {
- list-style-type: none;
- cursor: pointer;
- float: left;
- width: 200px;
- padding: 5px 5px;
- text-align: center;
- }
- </style>
- @endsection
- @section('content')
- <body class="gray-bg">
- <div class="wrapper wrapper-content animated fadeInRight">
- <div class="sep-wrap">
- <div class="sep-sidebar">
- <div class="ibox float-e-margins">
- <div class="ibox float-e-margins">
- <div class="ibox-content">
- <ul id="treeDemo" class="ztree"></ul>
- </div>
- </div>
- </div>
- </div>
- <div class="sep-primary">
- <div style="background: #fff;padding-top: 10px;border: dotted 1px #ddd; position: relative;">
- <div class="ibox-title">
- <ul class="li_ys clearfix" id="clearfix">
- <li class="selected">基本设置</li>
- <li>更多设置</li>
- <li>SEO设置</li>
- <li>模版变量</li>
- </ul>
- </div>
- <div class="ibox float-e-margins">
- <div class="ibox-content">
- <form method="post" class="form-horizontal" id="form">
- <div class="form-boxs">
- <div class="row">
- <div class="col-md-8">
- <div class="form-group">
- <label class="control-label" for="title"><span class="red">* </span>主标题</label>
- <input type="text" class="form-control" id="title" name="title"
- autocomplete="off">
- <input type="hidden" id="index_id" name="index_id">
- </div>
- <div class="form-group">
- <label class="control-label" for="subtitle">副标题</label>
- <input type="text" class="form-control" id="subtitle" name="subtitle"
- autocomplete="off">
- </div>
- <div class="form-group">
- <label class="control-label" for="summary">内容摘要</label>
- <textarea class="form-control" rows="5" placeholder="" id="summary"
- name="summary"></textarea>
- <div class="help-block">此项为空使,系统会自动截取正文前200个字符</div>
- </div>
- </div>
- <div class="col-md-4">
- <div class="form-group">
- <label class="control-label" for="tpl_id">选择模版</label>
- <select class="form-control form-control-select"
- id="tpl_id" name="tpl_id">
- <option value="0">请选择模版</option>
- @foreach ($templateList as $key => $value)
- @if(!$value->alias)
- <option value="{{$value->id}}">{{$value->name}}</option>
- @else
- <option value="{{$value->id}}">{{$value->name}}
- -{{$value->alias}}</option>
- @endif
- @endforeach
- </select>
- </div>
- <div class="form-group">
- <label class="control-label" for="css_id">请选择样式</label>
- <select class="form-control form-control-select"
- id="css_id" name="css_id">
- <option value="0">请选择样式</option>
- </select>
- </div>
- <div class="form-group">
- <label class="control-label" for="alias">URL别名(自动生成)</label>
- <input type="text" placeholder="" class="form-control" id="alias"
- name="alias">
- </div>
- <div class="form-group">
- <label class="control-label" for="menu_text">导航标题</label>
- <input type="text" placeholder="" class="form-control" id="menu_text"
- name="menu_text">
- </div>
- <div class="form-group">
- <div class="checkbox">
- <label class="control-label" for="deny_spider">
- <input type="checkbox" id="deny_spider" name="deny_spider"
- class="js-switch-case1">禁止搜索引擎抓取
- </label>
- <label class="control-label" for="is_hidemenu">
- <input type="checkbox" id="is_hidemenu" name="is_hidemenu"
- class="js-switch-case2">
- 在导航中隐藏
- </label>
- <label class="control-label" for="is_enabled">
- <input type="checkbox" id="is_enabled" name="is_enabled"
- class="js-switch-case3">立即发布
- </label>
- </div>
- </div>
- </div>
- </div>
- <div class="form-group">
- <label class="control-label" for="translate_content">内容正文</label>
- <div id="div1" class="text"></div>
- </div>
- </div>
- <div class="form-boxs">
- <div class="row">
- <div class="col-md-8">
- <div class="form-group">
- <label class="control-label" for="content_type">
- 内容类型
- </label>
- <select class="form-control form-control-select" id="content_type"
- name="content_type">
- <option value="html">HTML</option>
- <option value="js">JSON</option>
- <option value="pdf">PDF</option>
- <option value="txt">TEXT</option>
- <option value="xml">XML</option>
- </select>
- </div>
- <div class="form-group">
- <label class=" control-label" for="redirect">重定向</label>
- <input type="text" placeholder="" class="form-control" id="redirect"
- name="redirect">
- <div class="checkbox">
- <label class=" control-label" for="is_301">
- <input type="checkbox" id="is_301" name="is_301">开启301跳转
- </label>
- </div>
- </div>
- <div class="row">
- <div class="col-md-8" style="padding-right:0;">
- <div class="form-group">
- <label class="control-label" for="img">
- 缩略图:</label>
- <button type="button" class="btn btn-primary"
- onclick="addImages('alone')">
- 图片上传
- </button>
- </div>
- <div id="images">
- </div>
- </div>
- </div>
- </div>
- <div class="col-md-4">
- <div class="form-group">
- <label class=" control-label" for="publish_time">发布时间</label>
- <div class="input-group">
- <input type="text" class="form-control lay-datetime deadline"
- id="publish_time" name="publish_time">
- <span class="input-group-addon"><i
- class="fa fa-calendar"></i></span>
- </div>
- </div>
- <div class="form-group">
- <label class=" control-label" for="expired_time">截止时间</label>
- <div class="input-group">
- <input type="text" class="form-control lay-datetime deadline"
- id="expired_time" name="expired_time">
- <span class="input-group-addon"><i
- class="fa fa-calendar"></i></span>
- </div>
- </div>
- <div class="form-group" style="display: flex">
- <div style="margin-right: 20px">
- <label class=" control-label" for="rank">排序编号</label>
- <input type="text" placeholder="" class="form-control" id="rank"
- name="rank" style="width:120px">
- </div>
- <div>
- <label class=" control-label" for="parent_id">父级id</label>
- <input type="text" placeholder="" class="form-control"
- id="parent_id" name="parent_id" style="width:120px">
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="form-boxs">
- <div class="form-group">
- <label class="control-label" for="seo_title">SEO标题</label>
- <input type="text" placeholder="" class="form-control" id="seo_title"
- name="seo_title">
- </div>
- <div class="form-group">
- <label class="control-label" for="seo_keywords">SEO关键词</label>
- <textarea class="form-control" rows="5" placeholder="" id="seo_keywords"
- name="seo_keywords"></textarea>
- </div>
- <div class="form-group">
- <label class="control-label" for="seo_description">SEO描述</label>
- <textarea class="form-control" rows="5" placeholder="" id="seo_description"
- name="seo_description"></textarea>
- </div>
- <div class="form-group">
- <div class="checkbox">
- <label class="control-label" for="is_freeze_url">
- <input type="checkbox" id="is_freeze_url" name="is_freeze_url">绑定URI
- </label>
- </div>
- </div>
- <div class="form-group uri">
- <label class="control-label" for="uri">URI 地址(自动生成)</label>
- <input type="text" placeholder="" class="form-control" id="uri" name="uri">
- </div>
- </div>
- <div class="form-boxs" id="tpl">
- </div>
- </form>
- </div>
- </div>
- <div class="form-action-fixed" style="text-align:right;">
- <button class="btn btn-primary" type="button" id="indexSave">
- 保存
- </button>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="modal fade" id="default-dialog" tabindex="-1" role="dialog" aria-hidden="false"></div>
- <div id="rMenu">
- <ul>
- <li id="m_add" onclick="addTreeNode();">增加子节点</li>
- <li id="m_add_father" onclick="addParentMenu();">增加顶级节点</li>
- <li id="m_del" onclick="removeTreeNode();">删除</li>
- <li id="m_recovery" onclick="recoveryTreeNode();">恢复</li>
- <li id="m_preview" onclick="preview();">预览</li>
- <li id="m_copy" onclick="copyTreeNode();">复制节点</li>
- </ul>
- </div>
- <input type="hidden" id="new_pid">
- <input type="hidden" id="new_title">
- </body>
- @endsection
- @section('footer')
- <script src="{{asset('js/plugins/chosen/chosen.jquery.js')}}"></script>
- <script src="{{asset('js/plugins/switchery/switchery.js')}}"></script>
- <script src="{{asset('js/plugins/zTree_v3-master/js/jquery.ztree.core.min.js')}}"></script>
- <script src="{{asset('js/plugins/zTree_v3-master/js/jquery.ztree.all.min.js')}}"></script>
- <script src="{{asset('js/plugins/zTree_v3-master/js/jquery.ztree.excheck.min.js')}}"></script>
- <script src="{{asset('js/plugins/layDate-v5.0.9/laydate/laydate.js')}}"></script>
- <script src="{{asset('js/plugins/js-base64-main/base64.js')}}"></script>
- <script src="{{asset('js/plugins/jquery-cookie/jquery.cookie.js')}}"></script>
- <script src="{{asset('js/plugins/sortable/Sortable.js')}}"></script>
- <!-- 引入 wangEditor.min.js -->
- <script src="{{asset('js/plugins/wangEditor/wangEditor.min.js')}}"></script>
- <script>
- //富文本
- var E = window.wangEditor;
- var editor = new E('#div1');
- // 配置 server 接口地址
- editor.config.uploadImgServer = '/admin/stencil/editorUpload/{{$siteId}}';
- editor.config.uploadFileName = 'editorFile';
- editor.config.uploadImgMaxLength = 5;// 一次最多上传 5 个图片
- editor.config.uploadImgAccept = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp'];
- editor.config.uploadImgMaxSize = 5 * 1024 * 1024;// 5M
- editor.create();
- //富文本变量列表
- var editorList = [];
- //复选框变量列表
- var checkboxList = [];
- //资源变量列表
- var resourceList = [];
- //图片变量列表
- var imageList = [];
- //文件变量列表
- var fileList = [];
- //时间插件
- lay('.deadline').each(function () {
- laydate.render({
- elem: this
- , trigger: 'click'
- });
- });
- $('ul li:first-child').addClass('selected');
- $('ul li').click(function () {
- $(this).addClass('selected').siblings().removeClass('selected');
- $('.form-horizontal .form-boxs').eq($(this).index()).show().siblings().hide();
- });
- //左侧菜单树
- var setting = {
- view: {
- fontCss: getFont,
- dblClickExpand: false
- },
- edit: {
- enable: true,
- showRemoveBtn: false,
- showRenameBtn: false
- },
- data: {
- simpleData: {
- enable: true
- }
- },
- callback: {
- beforeDrag: beforeDrag,
- beforeDrop: beforeDrop,
- onExpand: onExpand,
- onCollapse: onCollapse,
- onRightClick: OnRightClick,
- onClick: function (event, treeId, treeNode) {
- //重新设置编辑器内容
- editor.txt.html('');
- if (treeNode.content) {
- editor.txt.html(treeNode.content);
- }
- //模版联动样式
- changeCss(treeNode.tpl_id, treeNode.css_id);
- //模版联动变量
- changeTemplateVariableList(treeNode.tpl_id, treeNode.id);
- var object = $('#images');
- object.empty();
- if (treeNode.thumb) {
- var thumb =
- '<li class="image-li">' +
- '<div class="imageDiv">' +
- '<div style="justify-content: center;align-items: center;flex-direction: column;overflow: hidden;margin: auto;">' +
- '<img src="' + treeNode.thumb + '" alt="' + treeNode.thumb + '">' +
- '</div>' +
- '<div style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;padding: 10px;">' + treeNode.thumb + '</div>' +
- '<a href="javascript:;" class="js-del-item-alone">' +
- '<i class="fa fa-remove"></i>移除' +
- '</a>' +
- '</div>' +
- '</li>';
- object.append(thumb);
- }
- $("#index_id").val(treeNode.id);
- $("#title").val(treeNode.title);
- $('#parent_id').val(treeNode.parent_id);
- if (!treeNode.content_type) {
- treeNode.content_type = 'html';
- }
- $("#content_type").val(treeNode.content_type);
- if (!treeNode.tpl_id) {
- treeNode.tpl_id = 0;
- }
- $("#tpl_id").val(treeNode.tpl_id);
- $("#subtitle").val(treeNode.subtitle);
- $("#alias").val(treeNode.alias);
- $('#summary').val(treeNode.summary);
- $("#uri").val(treeNode.uri);
- $("#menu_text").val(treeNode.menu_text);
- $('#redirect').val(treeNode.redirect);
- if (treeNode.publish_time) {
- $('#publish_time').val(treeNode.publish_time);
- }
- if (treeNode.expired_time) {
- $('#expired_time').val(treeNode.expired_time);
- }
- $('#rank').val(treeNode.rank);
- $('#seo_title').val(treeNode.seo_title);
- $('#seo_keywords').val(treeNode.seo_keywords);
- $('#seo_description').val(treeNode.seo_description);
- var denySpider = $('#deny_spider');
- denySpider.prop('checked', false);
- if (treeNode.deny_spider === 1) {
- denySpider.prop('checked', true);
- }
- var isHidemenu = $('#is_hidemenu');
- isHidemenu.prop('checked', false);
- if (treeNode.is_hidemenu === 1) {
- isHidemenu.prop('checked', true);
- }
- var isEnabled = $('#is_enabled');
- isEnabled.prop('checked', false);
- if (treeNode.is_enabled === 1) {
- isEnabled.prop('checked', true);
- }
- var is301 = $('#is_301');
- is301.prop('checked', false);
- if (treeNode.is_301 === 1) {
- is301.prop('checked', true);
- }
- var isFreezeUrl = $('#is_freeze_url');
- isFreezeUrl.prop('checked', false);
- if (treeNode.is_freeze_url === 1) {
- isFreezeUrl.prop('checked', true);
- }
- }
- }
- };
- function beforeDrag(treeId, treeNodes) {
- for (var i = 0, l = treeNodes.length; i < l; i++) {
- if (treeNodes[i].drag === false) {
- return false;
- }
- }
- return true;
- }
- function beforeDrop(treeId, treeNodes, targetNode, moveType) {
- var pid;
- if (targetNode === null) {
- pid = 0;
- } else {
- pid = targetNode.id;
- }
- var url = '/admin/stencil/indexMoveNode/{{$siteId}}';
- var ajaxConfig = {
- url: url,
- type: 'post',
- data: {id: treeNodes[0].id, pid: pid, type: moveType},
- success: function () {
- }
- };
- tips.ajax(ajaxConfig);
- return targetNode ? targetNode.drop !== false : true;
- }
- function onExpand(event, treeId, treeNode) {
- var cookie = $.cookie("z_tree1");
- var z_tree = null;
- if (cookie) {
- z_tree = JSON.parse(cookie);
- }
- if (!z_tree) {
- z_tree = [];
- }
- if (jQuery.inArray(treeNode.id, z_tree) < 0) {
- z_tree.push(treeNode.id);
- }
- $.cookie("z_tree1", JSON.stringify(z_tree))
- }
- function onCollapse(event, treeId, treeNode) {
- var cookie = $.cookie("z_tree1");
- var z_tree = null;
- if (cookie) {
- z_tree = JSON.parse(cookie);
- }
- if (!z_tree) {
- z_tree = []
- }
- var index = jQuery.inArray(treeNode.id, z_tree);
- z_tree.splice(index, 1);
- $.cookie("z_tree1", JSON.stringify(z_tree))
- }
- function OnRightClick(event, treeId, treeNode) {
- if (!treeNode && event.target.tagName.toLowerCase() !== "button" && $(event.target).parents("a").length === 0) {
- zTree.cancelSelectedNode();
- showRMenu("root", event.clientX, event.clientY);
- } else if (treeNode && !treeNode.noR) {
- zTree.selectNode(treeNode);
- showRMenu("node", event.clientX, event.clientY);
- }
- }
- function showRMenu(type, x, y) {
- $("#rMenu ul").show();
- if (type !== "root") {
- $("#m_add").show();
- $("#m_add_father").show();
- $("#m_del").show();
- $("#m_recovery").show();
- $("#m_preview").show();
- $("#m_copy").show();
- y += document.body.scrollTop;
- x += document.body.scrollLeft;
- rMenu.css({"top": y + "px", "left": x + "px", "visibility": "visible"});
- $("body").bind("mousedown", onBodyMouseDown);
- }
- }
- function hideRMenu() {
- if (rMenu) rMenu.css({"visibility": "hidden"});
- $("body").unbind("mousedown", onBodyMouseDown);
- }
- function onBodyMouseDown(event) {
- if (!(event.target.id === "rMenu" || $(event.target).parents("#rMenu").length > 0)) {
- rMenu.css({"visibility": "hidden"});
- }
- }
- var addCount = 1;
- function addTreeNode() {
- hideRMenu();
- var name = "NewFile";
- var newNode = {name: name};
- if (zTree.getSelectedNodes()[0]) {
- zTree.addNodes(zTree.getSelectedNodes()[0], newNode);
- $('#new_pid').val(zTree.getSelectedNodes()[0].id);
- } else {
- zTree.addNodes(null, newNode);
- }
- }
- function removeTreeNode() {
- hideRMenu();
- layer.confirm('确定要删除这个节点(如果是父节点子节点也会被删除)吗?', {icon: 3, title: '确认'}, function () {
- //异步删除
- var nodes = zTree.getSelectedNodes();
- if (!nodes[0]) {
- layer.msg('请选择节点', {icon: 2});
- return;
- }
- var url = '/admin/stencil/indexDelNode/{{$siteId}}';
- var ajaxConfig = {
- url: url,
- type: 'post',
- data: {id: nodes[0].id, type: 2},
- success: function (result) {
- layer.msg(result.message, {icon: 1});
- window.location.reload();
- }
- };
- tips.ajax(ajaxConfig);
- });
- }
- function recoveryTreeNode() {
- hideRMenu();
- layer.confirm('确定要恢复这个节点(如果是父节点子节点也会被恢复)吗?', {icon: 3, title: '确认'}, function () {
- var nodes = zTree.getSelectedNodes();
- if (!nodes[0]) {
- layer.msg('请选择节点', {icon: 2});
- return;
- }
- var url = '/admin/stencil/indexDelNode/{{$siteId}}';
- var ajaxConfig = {
- url: url,
- type: 'post',
- data: {id: nodes[0].id, type: 1},
- success: function (result) {
- layer.msg(result.message, {icon: 1});
- window.location.reload();
- }
- };
- tips.ajax(ajaxConfig);
- });
- }
- function copyTreeNode() {
- layer.confirm('确定拷贝这个文件(目录)吗?', {icon: 3, title: '确认'}, function () {
- var nodes = zTree.getSelectedNodes();
- //异步复制
- var url = '/admin/stencil/indexCopyNode/{{$siteId}}';
- var ajaxConfig = {
- url: url,
- type: 'post',
- data: {id: nodes[0].id, pid: nodes[0].pid},
- success: function (result) {
- layer.msg(result.message, {icon: 1});
- window.location.reload();
- }
- };
- tips.ajax(ajaxConfig);
- });
- }
- function preview() {
- var nodes = zTree.getSelectedNodes();
- window.open('http://{{$site->domain??''}}/' + nodes[0].uri);
- }
- function addParentMenu() {
- layer.confirm('确定创建顶级节点吗?', {icon: 3, title: '确认'}, function () {
- //异步添加顶级菜单
- var url = '/admin/stencil/addParentMenu/{{$siteId}}';
- var ajaxConfig = {
- url: url,
- type: 'post',
- data: {name: 'NewFile'},
- success: function (result) {
- layer.msg(result.message, {icon: 1}, function () {
- window.location.reload();
- });
- }
- };
- tips.ajax(ajaxConfig);
- });
- }
- function getFont(treeId, node) {
- var status = node.status;
- if (status === 2) {
- return {"text-decoration": "line-through", "font-weight": "bold"};
- } else {
- return {"font-weight": "bold"};
- }
- }
- //单行文本
- function text(item) {
- return '<div class="form-group">' +
- '<label class="control-label" for="' + item.name + '" >' + item.caption + '</label>' +
- '<div >' +
- '<input type="text" class="form-control" id="' + item.name + '" name="' + item.name + '" value="' + item.value + '">' +
- '</div>' +
- '</div>';
- }
- //多行文本
- function textarea(item) {
- return '<div class="form-group">' +
- '<label class="control-label" for="' + item.name + '" >' + item.caption + '</label>' +
- '<div >' +
- '<textarea class="form-control" rows="6" id="' + item.name + '" name="' + item.name + '">' + item.value + '</textarea>' +
- '</div>' +
- '</div>';
- }
- //富文本
- function richtext(item) {
- return '<div class="form-group">' +
- '<label class="control-label" for="' + item.name + '" >' + item.caption + '</label>' +
- '<div id="' + item.name + '" class="editor" ></div>' +
- '</div>';
- }
- //tag 文本框
- function taginput(item) {
- return '<div class="form-group">' +
- '<label class="control-label" for="' + item.name + '" >' + item.caption + '</label>' +
- '<div >' +
- '<textarea class="form-control" rows="6" id="' + item.name + '" name="' + item.name + '">' + item.value + '</textarea>' +
- '</div>' +
- '</div>';
- }
- //下拉列表
- function select(item) {
- var str =
- '<div class="form-group">' +
- '<label class="control-label" for="' + item.name + '" >' + item.caption + '</label>' +
- '<select class="form-control" id="' + item.name + '" name="' + item.name + '">';
- if (item.input_opts && item.input_opts.length > 0) {
- $.each(item.input_opts, function (index, value) {
- if (value === item.value) {
- str += '<option value="' + value + '" selected="selected">' + value;
- } else {
- str += '<option value="' + value + '">' + value;
- }
- });
- }
- str +=
- '</select>' +
- '</div>';
- return str;
- }
- //复选框
- function checkbox(item) {
- var str =
- '<div class="form-group">' +
- '<label class="control-label" for="' + item.name + '" >' + item.caption + '</label>' +
- '<div class="checkbox checkbox-list">';
- if (item.input_opts && item.input_opts.length > 0) {
- $.each(item.input_opts, function (index, value) {
- if (item.value && item.value.indexOf(value) !== -1) {
- str += '<label class="sui-custom-radio" ><input type="checkbox" name="' + item.name + '" value="' + value + '" checked>' + value + '</label>';
- } else {
- str += '<label class="sui-custom-radio" ><input type="checkbox" name="' + item.name + '" value="' + value + '">' + value + '</label>';
- }
- });
- }
- str +=
- '</div>' +
- '</div>';
- return str;
- }
- //单选框
- function radio(item) {
- var str =
- '<div class="form-group">' +
- '<label class="control-label" for="' + item.name + '" >' + item.caption + '</label>' +
- '<div class="radio">';
- if (item.input_opts && item.input_opts.length > 0) {
- $.each(item.input_opts, function (index, value) {
- if (value === item.value) {
- str += '<label class="sui-custom-radio" ><input type="radio" name="' + item.name + '" value="' + value + '" checked>' + value + '</label>';
- } else {
- str += '<label class="sui-custom-radio" ><input type="radio" name="' + item.name + '" value="' + value + '">' + value + '</label>';
- }
- });
- }
- str +=
- '</div>' +
- '</div>';
- return str;
- }
- //时间框
- function date(item) {
- var str =
- '<div class="form-group">' +
- '<label class="control-label" for="' + item.name + '" >' + item.caption + '</label>' +
- '<input type="text" class="form-control deadline" id="' + item.name + '" name="' + item.name + '" value="' + item.value + '">' +
- '</div>' +
- '<script>';
- str += '' +
- ' lay(\'.deadline\').each(function () {' +
- ' laydate.render({' +
- ' elem: this' +
- ' , trigger: \'click\'' +
- ' });' +
- ' });';
- str += '<\/script>';
- return str;
- }
- //资源选择
- function resource(item) {
- var str =
- '<div class="form-group">' +
- '<label class="control-label" for="' + item.name + '" >' + item.caption + '</label>' +
- '<div class="sui-resource-selector form-control">' +
- '<div class="sui-selector-box clearfix resource" id="' + item.name + '" data-listidx="0">';
- if (item.value && item.value.length > 0) {
- $.each(item.value, function (index, value) {
- str +=
- '<div class="js-item img-item resource-list ' + item.name + '" style="cursor: pointer;" >' +
- '<div class="box">' +
- '<a class="thumb">' +
- '<img class="image-result" src="' + value.thumb + '" alt="' + value.title + '" data-id="' + value.id + '">' +
- '</a>' +
- '<div class="title cutstr resource-sub-title">' + value.title + '</div>' +
- '<div class="summary resource-summary">' + value.summary + '</div>' +
- '<div class="operate"><a href="javascript:;" class="js-del-item"><i class="fa fa-remove"></i>移除</a></div>' +
- '</div>' +
- '</div>';
- });
- }
- str +=
- '</div>' +
- '<div class="sui-selector-btns"><button type="button" class="btn" onclick="addContent(\'' + item.name + '\')">选择内容</button></div>' +
- '</div>' +
- '</div>';
- return str;
- }
- //图片上传
- function image(item) {
- var str =
- '<div class="form-group">' +
- '<label class="control-label" for="' + item.name + '" >' + item.caption + '</label>' +
- '<div class="sui-resource-selector form-control">' +
- '<div class="sui-selector-box clearfix images-result" id="' + item.name + '" data-listidx="0">';
- if (item.value && item.value.length > 0) {
- $.each(item.value, function (index, value) {
- str +=
- '<div class="js-item img-item images-list ' + item.name + '" style="cursor:pointer" id="images-info">' +
- '<div class="box">' +
- '<a class="thumb">' +
- '<img class="image-result" src="' + value.src + '" alt="" style="width: 500px">' +
- '</a>' +
- '<div class="title cutstr">' + value.src + '</div>' +
- '<div class="summary" data-id="' + value.id + '">alt<input type="text" class="form-control image-alt" value="' + value.alt + '"></div>' +
- '<div class="operate">' +
- '<a href="javascript:;" class="js-del-item"><i class="fa fa-remove"></i>移除</a>' +
- '</div>' +
- '</div>' +
- '</div>';
- });
- }
- str +=
- '</div>' +
- '<div class="sui-selector-btns">' +
- '<button type="button" class="btn" onclick="addImages(\'' + item.name + '\')">选择图片</button>' +
- '</div>' +
- '</div>' +
- '</div>';
- return str;
- }
- //文件上传
- function file(item) {
- var str =
- '<div class="form-group">' +
- '<label class="control-label" for="' + item.name + '" >' + item.caption + '</label>' +
- '<div class="sui-resource-selector form-control">' +
- '<div class="sui-selector-box clearfix" id="' + item.name + '" data-listidx="0">';
- if (item.value && item.value.length > 0) {
- $.each(item.value, function (index, value) {
- str +=
- '<div class="js-item img-item file-result-list ' + item.name + '" style="cursor:pointer">' +
- '<div>' +
- '<input type="text" class="form-control file-value" name="' + item.name + '" value="' + value.file + '" data-file-size="' + value.file_size + '">' +
- '<div class="operate">' +
- '<a href="javascript:;" class="js-del-item"><i class="fa fa-remove"></i>移除</a>' +
- '</div>' +
- '</div>' +
- '</div>';
- });
- }
- str +=
- '</div>' +
- '<div class="sui-selector-btns">' +
- '<button type="button" class="btn" id="file_upload" name="file_upload">文件上传</button>' +
- '<input type="file" value="" style="display: none" id="uploadFile" name="uploadFile" multiple data-info="' + item.name + '">' +
- '</div>' +
- '</div>' +
- '</div>';
- return str;
- }
- var trees = JSON.parse('{!! addslashes(json_encode($trees)) !!}');
- $(document).ready(function () {
- zTreeObj = $.fn.zTree.init($("#treeDemo"), setting, trees);
- zTree = $.fn.zTree.getZTreeObj("treeDemo");
- rMenu = $("#rMenu");
- var cookie = $.cookie("z_tree1");
- if (cookie) {
- z_tree = JSON.parse(cookie);
- for (var i = 0; i < z_tree.length; i++) {
- var node = zTree.getNodeByParam('id', z_tree[i]);
- zTree.expandNode(node, true)
- }
- }
- });
- function addContent(type) {
- layer.open({
- type: 2,
- content: ['/admin/stencil/resources/{{$siteId}}/' + type],
- area: ['60%', '60%'],
- title: '编辑'
- });
- }
- function addImages(type) {
- layer.open({
- type: 2,
- content: ['/admin/stencil/images/{{$siteId}}/' + type],
- area: ['60%', '60%'],
- title: '编辑'
- });
- }
- //ctrl+s 保存
- window.addEventListener("keydown", function (e) {
- //可以判断是不是mac,如果是mac,ctrl变为花键
- //event.preventDefault() 方法阻止元素发生默认的行为。
- if (e.keyCode === 83 && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) {
- e.preventDefault();
- // Process event...
- save();
- }
- }, false);
- function save() {
- var data = tips.getFormValues('#form');
- data.subtitle = $('#subtitle').val();//副标题
- data.new_pid = $('#new_pid').val();//新建页面父id
- data.deny_spider = 0;
- if ($('#deny_spider').is(':checked')) {
- data.deny_spider = 1;
- }
- data.is_hidemenu = 0;
- if ($('#is_hidemenu').is(':checked')) {
- data.is_hidemenu = 1;
- }
- data.is_enabled = 0;
- if ($('#is_enabled').is(':checked')) {
- data.is_enabled = 1;
- }
- data.is_301 = 0;
- if ($('#is_301').is(':checked')) {
- data.is_301 = 1;
- }
- data.is_freeze_url = 0;
- if ($('#is_freeze_url').is(':checked')) {
- data.is_freeze_url = 1;
- }
- //图片
- data.thumb = $('#images').find("img").attr('src');
- //富文本内容
- data.content = editor.txt.html();
- //复选框
- $(checkboxList).each(function (key, value) {
- var checkbox = [];
- var jqObject = '.checkbox-list input[name=' + value + ']:checked';
- $(jqObject).each(function () {
- checkbox.push($(this).val());
- });
- data[value] = checkbox;
- });
- //富文本
- $(editorList).each(function (key, value) {
- data[value.name] = value.editorObject.txt.html();
- });
- //资源
- $(resourceList).each(function (key, value) {
- var resourceInfo = [];
- var jqObject = '.' + value;
- $(jqObject).each(function (kk, vv) {
- var resource = {};
- resource.id = $(vv).find(".image-result").attr('data-id');
- resource.title = $(vv).find(".resource-sub-title").text();
- resource.thumb = $(vv).find(".image-result").attr('src');
- resource.summary = $(vv).find(".resource-summary").text();
- resourceInfo.push(resource);
- });
- data[value] = resourceInfo;
- });
- //图片
- $(imageList).each(function (key, value) {
- var image = [];
- var jqObject = '.' + value;
- $(jqObject).each(function (kk, vv) {
- var images = {};
- images.src = $(vv).find(".image-result").attr('src');
- images.alt = $(vv).find(".image-alt").val();
- images.id = $(vv).find(".summary").attr('data-id');
- image.push(images);
- });
- data[value] = image;
- });
- //文件
- $(fileList).each(function (key, value) {
- var file = [];
- var jqObject = '.' + value;
- $(jqObject).each(function (kk, vv) {
- var files = {};
- files.file = $(vv).find(".file-value").val();
- files.file_size = $(vv).find(".file-value").attr('data-file-size');
- file.push(files);
- });
- data[value] = file;
- });
- var url = '/admin/stencil/indexSave/{{$siteId}}';
- var type = 'post';
- var ajaxConfig = {
- url: url,
- type: type,
- data: data,
- success: function (result) {
- layer.msg(result.message, {icon: 1});
- window.location.reload();
- }
- };
- tips.ajax(ajaxConfig);
- }
- //删除图片
- $(document).on('click', '.js-del-item', function () {
- $(this).parent().parent().parent().remove();
- });
- //删除图片
- $(document).on('click', '.js-del-item-alone', function () {
- $(this).parent().parent().remove();
- });
- //模版联动样式和变量
- $(document).on('change', '#tpl_id', function () {
- var tid = $('#tpl_id').val();
- var indexId = $('#index_id').val();
- changeCss(tid);
- changeTemplateVariableList(tid, indexId);
- });
- //保存
- $(document).on('click', '#indexSave', function () {
- save();
- });
- //上传
- $(document).on('click', '[name=file_upload]', function () {
- $(this).next().trigger('click');
- });
- //多文件上传
- $(document).on('change', '[name=uploadFile]', function () {
- var _this = $(this).attr('data-info');
- var formData = new FormData();
- if ($(this)[0].files.length > 10) {
- layer.alert("最多只能选择10个文件哦", {icon: 5});
- return;
- }
- var maxSize = 20480;//文件上传大小限制
- for (var i = 0; i < $(this)[0].files.length; i++) {
- var size = $(this)[0].files[i].size;
- var fileSize = (size / 1024).toFixed(2);
- if (fileSize > maxSize) {
- layer.alert("上传文件不许超过20MB", {icon: 5});
- return;
- }
- formData.append('files[]', $(this)[0].files[i]);
- }
- formData.append('siteId', "{{$siteId}}");
- var ln;
- $.ajax({
- url: '/admin/stencil/bulkUpload',
- type: 'POST',
- cache: false,
- data: formData,
- processData: false,
- contentType: false,
- beforeSend: function () {
- ln = layer.load();
- },
- complete: function () {
- layer.close(ln);
- },
- success: function (result) {
- var str = '';
- $.each(result.data, function (key, value) {
- str += '' +
- '<div class="js-item img-item file-result-list ' + _this + '" style="cursor:pointer">' +
- '<div>' +
- '<input type="text" class="form-control file-value" name="' + _this + '" value="' + value.file_url + '" data-file-size="' + value.file_size + '">' +
- '<div class="operate">' +
- '<a href="javascript:;" class="js-del-item"><i class="fa fa-remove"></i>移除</a>' +
- '</div>' +
- '</div>' +
- '</div>';
- });
- var object = '#' + _this;
- $(object).append(str);
- },
- error: function (XMLHttpRequest) {
- if (XMLHttpRequest.status === 500) {
- layer.alert("异步请求失败", {icon: 5});
- return;
- }
- layer.alert(JSON.parse(XMLHttpRequest.responseText).message, {icon: 0});
- }
- });
- });
- //异步加载模版关联的样式列表
- function changeCss(tplId, cssId) {
- var url = '/admin/stencil/getCssList?siteId={{$siteId}}&tpl_id=' + tplId;
- var type = 'get';
- var ajaxConfig = {
- url: url,
- type: type,
- data: {},
- success: function (result) {
- var object = $("#css_id");
- object.empty();
- object.append('<option value="0">请选择样式</option>');
- if (result.data.length > 0) {
- $(result.data).each(function (key, value) {
- var option = '<option value="' + value.id + '">' + value.name + '</option>';
- object.append(option);
- });
- if (cssId > 0) {
- $('#css_id').val(cssId);
- }
- }
- }
- };
- tips.ajax(ajaxConfig);
- }
- //异步加载模版关联的变量列表
- function changeTemplateVariableList(tplId, indexId) {
- var url = '/admin/stencil/getTemplateVariableByTplId?siteId={{$siteId}}&tpl_id=' + tplId + '&content_id=' + indexId;
- var type = 'get';
- var ajaxConfig = {
- url: url,
- type: type,
- data: {},
- success: function (result) {
- var str = '';
- var tpl = $('#tpl');
- tpl.empty();
- editorList = [];
- checkboxList = [];
- resourceList = [];
- imageList = [];
- fileList = [];
- if (result.data.length > 0) {
- var richTextList1 = [];
- $.each(result.data, function (index, item) {
- if (item.input_type === 'text') {
- str += text(item);
- }
- if (item.input_type === 'textarea') {
- str += textarea(item);
- }
- if (item.input_type === 'richtext') {
- str += richtext(item);
- richTextList1.push(item.name + ':' + Base64.encode(item.value));
- }
- if (item.input_type === 'taginput') {
- str += taginput(item);
- }
- if (item.input_type === 'select') {
- str += select(item);
- }
- if (item.input_type === 'checkbox') {
- str += checkbox(item);
- checkboxList.push(item.name);
- }
- if (item.input_type === 'radio') {
- str += radio(item);
- }
- if (item.input_type === 'date') {
- str += date(item);
- }
- if (item.input_type === 'resource') {
- str += resource(item);
- resourceList.push(item.name);
- }
- if (item.input_type === 'image') {
- str += image(item);
- imageList.push(item.name);
- }
- if (item.input_type === 'file') {
- str += file(item);
- fileList.push(item.name);
- }
- });
- tpl.append(str);
- if (richTextList1.length > 0) {
- $(richTextList1).each(function (key, value) {
- var result = value.split(':');
- var editor = new E("#" + result[0]);
- editor.config.uploadImgServer = '/admin/stencil/editorUpload/{{$siteId}}';
- editor.config.uploadFileName = 'editorFile';
- editor.config.uploadImgMaxLength = 5;// 一次最多上传 5 个图片
- editor.config.uploadImgAccept = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp'];
- editor.config.uploadImgMaxSize = 5 * 1024 * 1024;// 5M
- editor.create();
- var data = {};
- data.editorObject = editor;
- data.name = result[0];
- editorList.push(data);
- if (Base64.decode(result[1])) {
- editor.txt.html(Base64.decode(result[1])); // 重新设置编辑器内容
- }
- });
- }
- //图片拖拽
- if (imageList.length > 0) {
- $(imageList).each(function (key, value) {
- //获取对象
- var el = document.getElementById(value);
- //设置配置
- var ops = {
- animation: 1000,
- //拖动结束
- onEnd: function (evt) {
- //console.log(evt);
- //获取拖动后的排序
- //var arr = sortable.toArray();
- //alert(JSON.stringify(arr));
- }
- };
- //初始化
- Sortable.create(el, ops);
- });
- }
- //资源拖拽
- if (resourceList.length > 0) {
- $(resourceList).each(function (key, value) {
- //获取对象
- var el = document.getElementById(value);
- //设置配置
- var ops = {
- animation: 1000,
- //拖动结束
- onEnd: function (evt) {
- //console.log(evt);
- //获取拖动后的排序
- //var arr = sortable.toArray();
- //alert(JSON.stringify(arr));
- }
- };
- //初始化
- Sortable.create(el, ops);
- });
- }
- }
- }
- };
- tips.ajax(ajaxConfig);
- }
- </script>
- @endsection
|