| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960 |
- <style>
- .layui-upload-list {
- width: auto;
- height: auto;
- margin-bottom: 0;
- }
- .layui-elem-quote {
- padding-bottom: 5px;
- }
- .layui-upload-img {
- /*width: 92px;*/
- height: 92px;
- }
- hr {
- margin: 15px 0;
- }
- .uk-alert-danger {
- background: #fff1f0;
- color: #d85030;
- margin-bottom: 15px;
- padding: 10px;
- border: 1px solid rgba(216, 80, 48, .3);
- border-radius: 4px;
- text-shadow: 0 1px 0 #fff;
- }
- .imgItem {
- display: inline-block;
- position: relative;
- margin: 0 10px 10px 0;
- }
- .imgItem .layui-close {
- position: absolute;
- top: 0;
- right: 0;
- height: 16px;
- line-height: 16px;
- text-align: center;
- color: #000;
- width: 16px;
- border: 1px solid #000;
- background-color: #fff;
- }
- iframe.fr-iframe {
- padding: 0 20px;
- }
- .fr-wrapper.show-placeholder .fr-placeholder {
- padding-left: 30px !important;
- }
- .layui-form-label {
- width: {{ $colWidth }}px;
- }
- .layui-input-block {
- margin-left: {{ $colWidth + 30 }}px;
- }
- .weadmin-body {
- overflow: initial;
- }
- </style>
- <script src="/js/admin/xm-select.js"></script>
- <script src="/laydate/laydate.js"></script>
- <form class="layui-form" id="form-unify" method="post" action="{{ $path ?? '' }}" style="padding:20px;">
- @csrf
- <h2 class="uk-modal-title">{{ $fromTitle }}</h2>
- @if(isset($item[$primaryKey]))
- <input type="hidden" name="{{ $primaryKey }}" value="{{ $item[$primaryKey] }}">
- @endif
- <hr>
- @if ($errors->any())
- <div class="uk-alert-danger" uk-alert>
- <p>{{ $errors->first() }}</p>
- </div>
- @endif
- @foreach($columns as $key => $column)
- @switch($column['type'])
- @case('text')
- <div class="layui-form-item">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block" style="line-height: 36px;">
- @if(isset($column['default']) && !empty($column['default']))
- @if($column['default'] instanceof Closure)
- {!! $column['default']($item) !!}
- @else
- {!! $column['default'] !!}
- @endif
- @else
- {!! $item[$key] ?? '' !!}
- @endif
- </div>
- </div>
- @break
- @case('input')
- <div class="layui-form-item">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <input class="layui-input" type="text"
- placeholder="{{ $column['placeholder'] ?? '请输入'.$column['label'] }}"
- name="{{ $key }}"
- value="{{ $item[$key] ?? (old($key) ?? ($column['default'] ?? '')) }}"/>
- </div>
- </div>
- @break
- @case('password')
- <div class="layui-form-item">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <input class="layui-input" type="password"
- placeholder="{{ $column['placeholder'] ?? '请输入'.$column['label'] }}"
- name="{{ $key }}"
- value="{{ $item[$key] ?? (old($key) ?? ($column['default'] ?? '')) }}"/>
- </div>
- </div>
- @break
- @case('radio')
- <div class="layui-form-item">
- <div class="layui-form-label">{{ $column['label'] }}</div>
- <div class="layui-input-block">
- @foreach($column['options'] as $k => $col)
- <label><input type="radio" name="{{ $key }}" value="{{ $k }}"
- @if((isset($item[$key]) && $item[$key] == $k) ||
- old($key) === $k ||
- (isset($column['default']) && $column['default'] === $k)) checked
- @endif title="{{ $col }}"/>
- </label>
- @endforeach
- </div>
- </div>
- @break
- @case('checkbox')
- <div class="layui-form-item">
- <div class="layui-form-label">{{ $column['label'] }}</div>
- <div class="layui-input-block">
- @foreach($column['options'] as $k => $col)
- <input type="checkbox" name="{{ $key.'['.$k.']' }}" value="{{ $k }}"
- @if((isset($item[$key]) && in_array($k, $item[$key])) ||
- (old($key) !== null && in_array($k, old($key))) ||
- (isset($column['default']) && !empty($column['default']) && in_array($k, $column['default']))) checked
- @endif title="{{ $col }}" lay-filter="demo{{ $k }}"/>
- @endforeach
- </div>
- </div>
- @break
- @case('textarea')
- <div class="layui-form-item">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <textarea class="layui-textarea" name="{{ $key }}" cols="30" rows="3"
- placeholder="{{ $column['placeholder'] ?? '请输入'.$column['label'] }}">{{ $item[$key] ?? (old($key) ?? ($column['default'] ?? '')) }}</textarea>
- </div>
- </div>
- @break
- @case('select')
- <div class="layui-form-item">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <select name="{{ $key }}">
- <option value="0" @if(!isset($item)) selected @endif>无</option>
- @if(count($column['options']) > 0)
- @foreach($column['options'] as $k => $col)
- <option value="{{ $k }}"
- @if($column['default'] == $k || (isset($item[$key]) && $item[$key] == $k)) selected @endif>
- {{ $col }}
- </option>
- @endforeach
- @endif
- </select>
- </div>
- </div>
- @break
- {{--联动选择--}}
- @case('xselect')
- <div class="layui-form-item">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <select name="{{ $key }}" xm-select="{{ $key }}" xm-select-radio="">
- <option value="">无</option>
- </select>
- </div>
- </div>
- <script>
- layui.use(['form', 'layer', 'formSelects'], function () {
- var form = layui.form, layer = layui.layer, formSelects = layui.formSelects;
- formSelects.config('{{ $key }}', {
- keyName: 'title', //自定义返回数据中name的key, 默认 name
- keyVal: 'id', //自定义返回数据中value的key, 默认 value
- keyChildren: 'child',
- }, true);
- formSelects.data('{{ $key }}', 'local', {
- arr: {!! json_encode($column['options'], JSON_UNESCAPED_UNICODE) !!},
- linkage: true,
- linkageWidth: 160
- });
- //如果有需要默认值的小伙伴请使用formSelects.value
- @if(isset($item[$key]))
- formSelects.value('{{ $key }}', ['{{ $item[$key] }}']);
- @endif
- });
- </script>
- @break
- {{--单选--}}
- @case('sselect')
- <div class="layui-form-item">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <select name="{{ $key }}" xm-select="{{ $key }}" xm-select-radio="" xm-select-search=""
- xm-select-search-type="dl">
- <option value="">无</option>
- </select>
- </div>
- </div>
- <script>
- layui.use(['form', 'layer', 'formSelects'], function () {
- var form = layui.form, layer = layui.layer, formSelects = layui.formSelects;
- formSelects.config('{{ $key }}', {
- keyName: 'title', //自定义返回数据中name的key, 默认 name
- keyVal: 'id', //自定义返回数据中value的key, 默认 value
- keyChildren: 'child',
- }, true);
- formSelects.data('{{ $key }}', 'local', {
- arr: {!! json_encode($column['options'], JSON_UNESCAPED_UNICODE) !!}
- });
- //如果有需要默认值的小伙伴请使用formSelects.value
- @if(isset($item[$key]))
- formSelects.value('{{ $key }}', ['{{ $item[$key] }}']);
- @endif
- });
- </script>
- @break
- {{--多选--}}
- @case('mselect')
- <div class="layui-form-item">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <select name="{{ $key }}" xm-select="{{ $key }}" xm-select-search=""
- xm-select-search-type="dl">
- <option value="">无</option>
- </select>
- </div>
- </div>
- <script>
- layui.use(['form', 'layer', 'formSelects'], function () {
- var form = layui.form, layer = layui.layer, formSelects = layui.formSelects;
- formSelects.config('{{ $key }}', {
- keyName: 'title', //自定义返回数据中name的key, 默认 name
- keyVal: 'id', //自定义返回数据中value的key, 默认 value
- keyChildren: 'child',
- }, true);
- formSelects.data('{{ $key }}', 'local', {
- arr: {!! json_encode($column['options'], JSON_UNESCAPED_UNICODE) !!}
- });
- //如果有需要默认值的小伙伴请使用formSelects.value
- @if(isset($item[$key]))
- formSelects.value('{{ $key }}', {!! json_encode($column['default'],JSON_UNESCAPED_UNICODE) !!});
- @endif
- });
- </script>
- @break
- @case('tselect')
- <div class="layui-form-item" id="section_{{ $key }}">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <div id="{{ $key }}"></div>
- </div>
- </div>
- <script>
- xmSelect.render({
- el: '#{{ $key }}',
- name: '{{ $key }}',
- @if(isset($column['default']) && !empty($column['default']) && is_array($column['default']) && count($column['default']) > 0)
- initValue: {!! json_encode($column['default']) !!},
- @endif
- autoRow: true,
- filterable: true,
- tree: {
- show: true,
- showFolderIcon: true,
- showLine: true,
- indent: 20,
- },
- data() {
- return {!! json_encode($column['options']) !!};
- }
- });
- </script>
- @break
- @case('trselect')
- <div class="layui-form-item" id="section_{{ $key }}">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <div id="{{ $key }}"></div>
- </div>
- </div>
- <script>
- xmSelect.render({
- el: '#{{ $key }}',
- name: '{{ $key }}',
- //单选
- radio: true,
- //选中关闭
- clickClose: true,
- @if(isset($column['default']) && !empty($column['default']) && is_array($column['default']) && count($column['default']) > 0)
- initValue: {!! json_encode($column['default']) !!},
- @endif
- autoRow: true,
- filterable: true,
- tree: {
- show: true,
- showFolderIcon: true,
- showLine: true,
- indent: 20,
- },
- data() {
- return {!! json_encode($column['options']) !!};
- }
- });
- </script>
- @break
- @case('trmselect')
- <div class="layui-form-item" id="section_{{ $key }}">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <div id="{{ $key }}"></div>
- </div>
- </div>
- <script>
- xmSelect.render({
- el: '#{{ $key }}',
- name: '{{ $key }}',
- @if(isset($column['default']) && !empty($column['default']) && is_array($column['default']) && count($column['default']) > 0)
- initValue: {!! json_encode($column['default']) !!},
- @endif
- autoRow: true,
- filterable: true,
- tree: {
- show: true,
- showFolderIcon: true,
- showLine: true,
- indent: 20,
- },
- data() {
- return {!! json_encode($column['options']) !!};
- }
- });
- </script>
- @break
- @case('date')
- <div class="layui-form-item">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <input class="layui-input date-input" type="text"
- placeholder="{{ $column['placeholder'] ?? '请输入'.$column['label'] }}"
- name="{{ $key }}" autocomplete="off" readonly
- disableautocomplete value="{{ $item[$key] ?? (old($key) ?? ($column['default'] ?? '')) }}">
- </div>
- </div>
- @break
- @case('dateMonth')
- <div class="layui-form-item">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <input class="layui-input dateMonth-input" type="text"
- placeholder="{{ $column['placeholder'] ?? '请输入'.$column['label'] }}"
- name="{{ $key }}" autocomplete="off" readonly
- disableautocomplete value="{{ $item[$key] ?? (old($key) ?? ($column['default'] ?? '')) }}">
- </div>
- </div>
- @break
- @case('dateYear')
- <div class="layui-form-item">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <input class="layui-input dateYear-input" type="text"
- placeholder="{{ $column['placeholder'] ?? '请输入'.$column['label'] }}"
- name="{{ $key }}" autocomplete="off" readonly
- disableautocomplete value="{{ $item[$key] ?? (old($key) ?? ($column['default'] ?? '')) }}">
- </div>
- </div>
- @break
- @case('dateTime')
- <div class="layui-form-item">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <input class="layui-input" type="text"
- id="{{ $key }}"
- placeholder="{{ $column['placeholder'] ?? '请输入'.$column['label'] }}"
- lay-key="{{ rand(10000,99999) }}"
- name="{{ $key }}" autocomplete="off" readonly
- disableautocomplete value="{{ $item[$key] ?? (old($key) ?? ($column['default'] ?? '')) }}">
- </div>
- </div>
- <script>
- layui.use('laydate', function () {
- var laydate = layui.laydate;
- //执行一个laydate实例
- laydate.render({
- elem: '#{{ $key }}'
- , type: 'datetime'
- });
- });
- </script>
- @break
- @case('time')
- <div class="layui-form-item">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <input class="layui-input time-input" type="text"
- placeholder="{{ $column['placeholder'] ?? '请输入'.$column['label'] }}"
- name="{{ $key }}"
- value="{{ $item[$key] ?? (old($key) ?? ($column['default'] ?? '')) }}">
- </div>
- </div>
- @break
- @case('tree_select')
- <div class="layui-form-item">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- {{-- {!! json_encode($column) !!} --}}
- <select name="{{ $key }}">
- @if($column['isShowNull'] == true)
- <option value="0" @if(!isset($item)) selected @endif>无</option>
- @endif
- @if(count($column['options']) > 0)
- @include('admin::component.multi_select_option', ['selects' => $column['options'], 'selectPid' => $item[$key] ?? ($column['default'] ?? '')])
- @endif
- </select>
- </div>
- </div>
- @break
- @case('icon')
- <div class="layui-form-item" style="position:relative;">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <div id="iconShow" class="layui-form-mid">
- <i class="layui-icon layui-icon-{{ ($item[$key] ?? old($key)) ?? 'app' }}"></i>
- </div>
- <div class="layui-input-inline" id="iconInput">
- <input class="layui-input" type="text" placeholder="选择图标" id="iconInput"
- name="{{ $key }}" autocomplete="off"
- disableautocomplete value="{{ $item[$key] ?? old($key) }}">
- </div>
- </div>
- <div id="iconBox">
- @include('admin::component/icon_list')
- </div>
- </div>
- <script>
- $(function () {
- $('#iconInput').on('click', function () {
- $('#iconBox').toggle();
- })
- $('#iconBox li i').on('click', function () {
- var self = $(this);
- $('#iconInput input').val(self.data('icon'));
- $('#iconShow').html('<i class="layui-icon layui-icon-' + self.data('icon') + '"></i>');
- $('#iconBox').hide();
- })
- })
- </script>
- @break
- @case('uploadImg')
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-upload">
- <img id="pre" class="layui-upload-img none">
- @if (strlen($column['default']) > 0)
- <script>
- $('#pre').attr('src', '{{ $column['default'] }}');
- </script>
- @endif
- <span style="display: inline-table;">
- <button type="button" class="layui-btn" id="selectImgBtn">上传图片</button>
- <p id="uploadTips">
- <input type="hidden" name="{{ $key }}" value="{{ $column['default'] ?? '' }}"/>
- </p>
- </span>
- </div>
- <style>
- .layui-upload-img {
- /*width: 92px;*/
- height: 92px;
- margin: 10px 10px 10px 10px;
- }
- #uploadTips {
- line-height: 30px;
- }
- </style>
- <script>
- layui.use('upload', function () {
- var $ = layui.jquery
- , upload = layui.upload;
- var uploadInst = upload.render({
- elem: '#selectImgBtn'
- , url: "{{ $column['uploadURLPath'] }}"
- , acceptMime: 'image/jpg, image/png, image/jpeg'
- , number: 1
- , before: function (obj) {
- //预读本地文件示例,不支持ie8
- obj.preview(function (index, file, result) {
- $('#pre').attr('src', result); //图片链接(base64)
- });
- }
- , done: function (res) {
- //如果上传失败
- if (res.code > 0) {
- return layer.msg('上传失败');
- }
- //上传成功
- $("input[name='{{ $key }}']").val(res.data.image_path);
- }
- , error: function () {
- //演示失败状态,并实现重传
- var uploadTips = $('#uploadTips');
- uploadTips.html('<span style="color: #FF5722; text-align:center">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
- uploadTips.find('.demo-reload').on('click', function () {
- uploadInst.upload();
- });
- }
- });
- });
- </script>
- @break
- @case('uploadImgs')
- <div class="layui-form-item">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <div class="layui-upload">
- <blockquote class="layui-elem-quote layui-quote-nm">
- 预览图:
- <div class="layui-upload-list" id="{{ $key }}_list">
- @if(isset($column['default']) && !empty($column['default']))
- @foreach($column['default'] as $imgKey => $image)
- <span id="img{{ $imgKey }}" class="imgItem">
- <img src="{{ $image['path'] }}" alt="{{ $image['imageName'] }}"
- class="layui-upload-img"/>
- <a href="javascript:void(0);" class="layui-close">X</a>
- <input type="hidden" name="{{ $key }}[{{ $imgKey }}][path]"
- value="{{ $image['path'] }}">
- <input type="hidden" name="{{ $key }}[{{ $imgKey }}][imageName]"
- value="{{ $image['imageName'] }}">
- </span>
- @endforeach
- @endif
- </div>
- </blockquote>
- <button type="button" class="layui-btn" id="{{ $key }}_btn">多图片上传</button>
- </div>
- </div>
- </div>
- <script>
- layui.use('upload', function () {
- var upload = layui.upload;
- //多图片上传
- upload.render({
- elem: '#{{ $key }}_btn'
- , url: '{{ $column['uploadURLPath'] }}'
- , multiple: true
- , accept: 'images'
- , field: 'image'
- , before: function (obj) {
- //预读本地文件示例,不支持ie8
- obj.preview(function (index, file, result) {
- $('#{{ $key }}_list').append('<span id="img' + index + '" class="imgItem"><img src="' + result + '" alt="' + file.name + '" class="layui-upload-img"><a href="javascript:void(0);" class="layui-close">X</a></span>')
- });
- }
- , done: function (res, index) {
- if (res.code === 0) {
- $('#img' + index).append('<input type="hidden" name="{{ $key }}[' + index + '][path]" value="' + res.data.image_path + '"/>')
- $('#img' + index).append('<input type="hidden" name="{{ $key }}[' + index + '][imageName]" value="' + res.data.image_name + '"/>')
- }
- //上传完毕
- }
- });
- });
- </script>
- @break
- @case('uploadFiles')
- <div class="layui-form-item">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <div class="layui-upload">
- <div class="layui-upload-list">
- <table class="layui-table">
- <thead>
- <tr>
- <th>文件名</th>
- <th>状态</th>
- <th>操作</th>
- </tr>
- </thead>
- <tbody id="{{ $key }}_list">
- @if(isset($column['default']) && !empty($column['default']))
- @foreach($column['default'] as $fileKey => $file)
- <tr>
- <td>
- <a href="/admin/file/download?name={{ $file['fileName'] }}&path={{ $file['path'] }}"
- target="_blank"></a>{{ $file['fileName'] }}</td>
- <td></td>
- <td>
- <button class="layui-btn layui-btn-xs layui-btn-danger file-delete">删除
- </button>
- <input type="hidden" name="{{ $key }}[{{ $fileKey }}][path]"
- value="{{ $file['path'] }}"/>
- <input type="hidden" name="{{ $key }}[{{ $fileKey }}][fileName]"
- value="{{ $file['fileName'] }}"/>
- <input type="hidden" name="{{ $key }}[{{ $fileKey }}][fileSize]"
- value="{{ $file['fileSize'] ?? 0 }}"/>
- </td>
- </tr>
- @endforeach
- @endif
- </tbody>
- </table>
- </div>
- <button type="button" class="layui-btn" id="{{ $key }}_btn">选择上传文件</button>
- </div>
- </div>
- </div>
- <script>
- layui.use('upload', function () {
- var upload = layui.upload;
- //多文件列表示例
- var fileListView = $('#{{ $key }}_list')
- , uploadListIns = upload.render({
- elem: '#{{ $key }}_btn'
- , url: '{{ $column['uploadURLPath'] }}'
- , accept: 'file'
- , multiple: true
- // , auto: false
- // , bindAction: '#testListAction'
- , choose: function (obj) {
- // var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列
- //读取本地文件
- obj.preview(function (index, file, result) {
- var tr = $(['<tr id="upload-{{ $key }}-' + index + '">'
- , '<td>' + file.name + '</td>'
- // , '<td>' + (file.size / 1014).toFixed(1) + 'kb</td>'
- , '<td>正在上传,请等待……</td>'
- , '<td>'
- , '<button class="layui-btn layui-btn-xs file-reload layui-hide">重传</button>'
- , '<button class="layui-btn layui-btn-xs layui-btn-danger file-delete">删除</button>'
- , '</td>'
- , '</tr>'].join(''));
- //单个重传
- tr.find('.file-reload').on('click', function () {
- obj.upload(index, file);
- });
- //删除
- tr.find('.file-delete').on('click', function () {
- // delete files[index]; //删除对应的文件
- tr.remove();
- uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选
- });
- fileListView.append(tr);
- });
- }
- , done: function (res, index, upload) {
- if (res.code === 0) { //上传成功
- var tr = fileListView.find('tr#upload-{{ $key }}-' + index)
- , tds = tr.children();
- tds.eq(0).html('<a href="/admin/file/download?name=' + res.data.file_name + '&path=' + res.data.file_path + '" target="_blank">' + res.data.file_name + '</a>');
- tds.eq(1).html('<span style="color: #5FB878;">上传成功</span>');
- // tds.eq(3).html(''); //清空操作
- tds.eq(2).append('<input type="hidden" name="{{ $key }}[' + index + '][path]" value="' + res.data.file_path + '"/>');
- tds.eq(2).append('<input type="hidden" name="{{ $key }}[' + index + '][fileName]" value="' + res.data.file_name + '"/>');
- tds.eq(2).append('<input type="hidden" name="{{ $key }}[' + index + '][fileSize]" value="' + (res.data.file_size == undefined ? 0 : res.data.file_size) + '"/>');
- return;
- // return delete this.files[index]; //删除文件队列已经上传成功的文件
- }
- this.error(index, upload);
- }
- , error: function (index, upload) {
- var tr = fileListView.find('tr#upload-{{ $key }}-' + index)
- , tds = tr.children();
- tds.eq(2).html('<span style="color: #FF5722;">上传失败</span>');
- tds.eq(3).find('.file-reload').removeClass('layui-hide'); //显示重传
- }
- });
- });
- </script>
- @break
- @case('hidden')
- <input type="hidden" name="{{ $key }}" value="{{ $column['label'] }}"/>
- @break
- @case('includeBlock')
- <div class="layui-form-item">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- @includeIf($column['path'], $column['itemValue'])
- </div>
- </div>
- @break
- @case('editor')
- <div class="layui-form-item">
- <label class="layui-form-label">{{ $column['label'] }}</label>
- <div class="layui-input-block">
- <div class="fr-view">
- <textarea id="editor_{{ $key }}"
- name="{{ $key }}">{!! $item[$key] ?? $column['default'] !!}</textarea>
- {{--<div id="editor_{{ $key }}">{!! $item[$key] ?? $column['default'] !!}</div>--}}
- </div>
- </div>
- </div>
- <script>
- var editor_{{ $key }} = new FroalaEditor('#editor_{{ $key }}', {
- language: 'zh_cn',
- iframe: true,
- quickInsertTags: [],
- events: {
- contentChanged: function () {
- $('#editor_{{ $key }}').val(this.html.get());
- }
- },
- // upload image
- imageUploadParam: 'file',
- imageUploadURL: '{{ $column['uploadURLPath'] }}',
- imageUploadMethod: 'POST',
- imageInsertButtons: ['imageBack', '|', 'imageUpload', 'imageByURL'],
- imageDefaultWidth: 500,
- // toolbar buttons
- toolbarButtons: ['bold', 'italic', 'underline', 'strikeThrough', '|',
- 'paragraphFormat', 'fontFamily', 'fontSize', 'textColor', 'backgroundColor', 'clearFormatting', '|',
- 'align', 'formatOLSimple', 'formatUL', 'outdent', 'indent', 'quote', '|',
- 'insertLink', 'insertImage', 'insertTable', 'insertHR', '|',
- 'selectAll', 'clearFormatting', '|',
- 'undo', 'redo'],
- requestWithCORS: true,
- requestHeaders: {
- 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
- }
- });
- /**
- tinymce.init({
- selector: '#editor_{{ $key }}',
- menubar: false,
- height: 600,
- plugins: [
- 'advlist autolink link image imagetools lists charmap print preview hr anchor pagebreak spellchecker',
- 'searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking',
- 'save table contextmenu directionality emoticons template paste textcolor'
- ],
- toolbar: 'insertfile undo redo | bold italic underline strikethrough removeformat formats forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image table tabledelete',
- images_upload_handler: function (blobInfo, success, failure) {
- var xhr, formData;
- xhr = new XMLHttpRequest();
- xhr.withCredentials = false;
- xhr.open('POST', '{{ $column['uploadURLPath'] }}');
- var token = '{{ csrf_token() }}';
- xhr.setRequestHeader("X-CSRF-TOKEN", token);
- xhr.onload = function () {
- var json;
- if (xhr.status != 200) {
- failure('HTTP Error: ' + xhr.status);
- return;
- }
- json = JSON.parse(xhr.responseText);
- if (!json || typeof json.location != 'string') {
- failure('Invalid JSON: ' + xhr.responseText);
- return;
- }
- success(json.location);
- };
- formData = new FormData();
- formData.append('file', blobInfo.blob(), blobInfo.filename());
- xhr.send(formData);
- },
- language: 'zh_CN'
- });
- **/
- {{--layui.use('layedit', function () {--}}
- {{--var layedit = layui.layedit;--}}
- {{--layedit.set({--}}
- {{--uploadImage: {--}}
- {{--url: '{{ $column['uploadURLPath'] }}'--}}
- {{--, acceptMime: 'image/jpg, image/png, image/jpeg'--}}
- {{--, number: 1--}}
- {{--, type: 'post' //默认post--}}
- {{--, headers: {--}}
- {{--'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')--}}
- {{--}--}}
- {{--}--}}
- {{--, tool: [--}}
- {{--'undo', 'redo', 'strong', 'italic', 'underline', 'del', 'addhr'--}}
- {{--, '|', 'fontfamily', 'fontSize', 'fontBackColor', 'colorpicker', 'face'--}}
- {{--, '|', 'left', 'center', 'right'--}}
- {{--, '|', 'link', 'unlink', 'image_alt', 'images'--}}
- {{--, '|', 'table'--}}
- {{--]--}}
- {{--});--}}
- {{--var index = layedit.build('editor_{{ $key }}'); //建立编辑器--}}
- {{--});--}}
- </script>
- @break
- @default
- 暂无数据
- @endswitch
- @if($hasHr)
- <hr>
- @endif
- @endforeach
- @if(!is_null($footBtns))
- <hr>
- <div style="text-align: right">
- @if(in_array('goback',$footBtns))
- @if($isAjax)
- <button class="layui-btn layui-btn-primary layui-layer-close" style="position:relative;"
- type="button">
- 取消
- </button>
- @else
- <button class="layui-btn layui-btn-primary layui-layer-close" style="position:relative;"
- type="button"
- onclick="javascript:history.go(-1);">返回
- </button>
- @endif
- @endif
- @if(in_array('save',$footBtns))
- <button class="layui-btn" type="submit" lay-submit lay-filter="formBox">保存</button>
- @endif
- </div>
- @endif
- </form>
- <script>
- layui.use(['form', 'laydate', 'table'], function () {
- var form = layui.form, table = layui.table;
- form.render();
- form.on('checkbox', function (data) {
- $(data.othis).toggleClass('layui-form-checked');
- });
- @if($isAjax)
- form.on('submit(formBox)', function (data) {
- var urlPost = $('#form-unify').attr('action');
- var submitBtn = $(data.elem);
- submitBtn.addClass('layui-btn-disabled').prop('disabled', true).text('提交中……');
- $.ajax({
- url: urlPost,
- type: 'POST',
- dataType: 'json',
- data: data.field
- })
- .done(function (res) {
- if (res.code === 0) {
- submitBtn.text('完成');
- layer.msg('完成!', {anim: 0}, function () {
- if (res.data.table === '') {
- location.reload();
- } else {
- layer.closeAll();
- if (res.data.table !== undefined) {
- table.reload(res.data.table);
- }
- if (res.url !== undefined) {
- location.href = res.url;
- }
- }
- });
- } else {
- layer.msg(res.message, {anim: 0}, function () {
- submitBtn.removeClass('layui-btn-disabled').prop('disabled', false).text('重新保存');
- });
- }
- })
- .fail(function (res) {
- layer.msg(res.message, {anim: 0}, function () {
- submitBtn.removeClass('layui-btn-disabled').prop('disabled', false).text('重新保存');
- });
- });
- return false;
- });
- @endif
- });
- $('.layui-form').on('click', '.layui-close', function () {
- var self = $(this);
- self.closest('.imgItem').remove();
- });
- $('.layui-form').on('click', '.file-delete', function () {
- var self = $(this);
- self.closest('tr').remove();
- });
- $('.date-input').datepicker({
- language: 'zh-CN',
- format: 'yyyy-mm-dd',
- zIndex: 19999999,
- autoHide: true
- });
- $('.dateMonth-input').datepicker({
- language: 'zh-CN',
- format: 'yyyy-mm',
- zIndex: 19999999,
- autoHide: true
- });
- $('.dateYear-input').datepicker({
- language: 'zh-CN',
- format: 'yyyy',
- zIndex: 19999999,
- autoHide: true
- });
- </script>
|