正在显示
36 个修改的文件
包含
2341 行增加
和
37 行删除
addons/summernote/.addonrc
0 → 100644
| 1 | +{"files":["public\\assets\\addons\\summernote\\css\\summernote.css","public\\assets\\addons\\summernote\\css\\summernote.min.css","public\\assets\\addons\\summernote\\font\\summernote.eot","public\\assets\\addons\\summernote\\font\\summernote.ttf","public\\assets\\addons\\summernote\\font\\summernote.woff","public\\assets\\addons\\summernote\\font\\summernote.woff2","public\\assets\\addons\\summernote\\js\\summernote.js","public\\assets\\addons\\summernote\\js\\summernote.min.js","public\\assets\\addons\\summernote\\lang\\summernote-zh-CN.js","public\\assets\\addons\\summernote\\lang\\summernote-zh-CN.min.js","public\\assets\\addons\\summernote\\lang\\summernote-zh-TW.js","public\\assets\\addons\\summernote\\lang\\summernote-zh-TW.min.js"],"license":"regular","licenseto":"15629","licensekey":"NLIO6tYrKG5hiusp kghh0S6zlU76Hs9rIMiuQd3tjV8bSiqblDYiCf\/c5Bc=","domains":["netcar.com"],"licensecodes":[],"validations":["9c3b042fdd8c2e4e21e4da30dcc79ba1"]} |
addons/summernote/Summernote.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace addons\summernote; | ||
| 4 | + | ||
| 5 | +use think\Addons; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * Summernote富文本编辑器 | ||
| 9 | + */ | ||
| 10 | +class Summernote extends Addons | ||
| 11 | +{ | ||
| 12 | + | ||
| 13 | + /** | ||
| 14 | + * 插件安装方法 | ||
| 15 | + * @return bool | ||
| 16 | + */ | ||
| 17 | + public function install() | ||
| 18 | + { | ||
| 19 | + return true; | ||
| 20 | + } | ||
| 21 | + | ||
| 22 | + /** | ||
| 23 | + * 插件卸载方法 | ||
| 24 | + * @return bool | ||
| 25 | + */ | ||
| 26 | + public function uninstall() | ||
| 27 | + { | ||
| 28 | + return true; | ||
| 29 | + } | ||
| 30 | + | ||
| 31 | + /** | ||
| 32 | + * @param $params | ||
| 33 | + */ | ||
| 34 | + public function configInit(&$params) | ||
| 35 | + { | ||
| 36 | + $config = $this->getConfig(); | ||
| 37 | + $params['summernote'] = ['classname' => $config['classname'] ?? '.editor']; | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | +} |
addons/summernote/bootstrap.js
0 → 100644
| 1 | +require.config({ | ||
| 2 | + paths: { | ||
| 3 | + 'summernote': '../addons/summernote/lang/summernote-zh-CN.min' | ||
| 4 | + }, | ||
| 5 | + shim: { | ||
| 6 | + 'summernote': ['../addons/summernote/js/summernote.min', 'css!../addons/summernote/css/summernote.min.css'], | ||
| 7 | + } | ||
| 8 | +}); | ||
| 9 | +require(['form', 'upload'], function (Form, Upload) { | ||
| 10 | + var _bindevent = Form.events.bindevent; | ||
| 11 | + Form.events.bindevent = function (form) { | ||
| 12 | + _bindevent.apply(this, [form]); | ||
| 13 | + try { | ||
| 14 | + //绑定summernote事件 | ||
| 15 | + if ($(Config.summernote.classname || '.editor', form).length > 0) { | ||
| 16 | + var selectUrl = typeof Config !== 'undefined' && Config.modulename === 'index' ? 'user/attachment' : 'general/attachment/select'; | ||
| 17 | + require(['summernote'], function () { | ||
| 18 | + var imageButton = function (context) { | ||
| 19 | + var ui = $.summernote.ui; | ||
| 20 | + var button = ui.button({ | ||
| 21 | + contents: '<i class="fa fa-file-image-o"/>', | ||
| 22 | + tooltip: __('Choose'), | ||
| 23 | + click: function () { | ||
| 24 | + parent.Fast.api.open(selectUrl + "?element_id=&multiple=true&mimetype=image/", __('Choose'), { | ||
| 25 | + callback: function (data) { | ||
| 26 | + var urlArr = data.url.split(/\,/); | ||
| 27 | + $.each(urlArr, function () { | ||
| 28 | + var url = Fast.api.cdnurl(this, true); | ||
| 29 | + context.invoke('editor.insertImage', url); | ||
| 30 | + }); | ||
| 31 | + } | ||
| 32 | + }); | ||
| 33 | + return false; | ||
| 34 | + } | ||
| 35 | + }); | ||
| 36 | + return button.render(); | ||
| 37 | + }; | ||
| 38 | + var attachmentButton = function (context) { | ||
| 39 | + var ui = $.summernote.ui; | ||
| 40 | + var button = ui.button({ | ||
| 41 | + contents: '<i class="fa fa-file"/>', | ||
| 42 | + tooltip: __('Choose'), | ||
| 43 | + click: function () { | ||
| 44 | + parent.Fast.api.open(selectUrl + "?element_id=&multiple=true&mimetype=*", __('Choose'), { | ||
| 45 | + callback: function (data) { | ||
| 46 | + var urlArr = data.url.split(/\,/); | ||
| 47 | + $.each(urlArr, function () { | ||
| 48 | + var url = Fast.api.cdnurl(this, true); | ||
| 49 | + var node = $("<a href='" + url + "'>" + url + "</a>"); | ||
| 50 | + context.invoke('insertNode', node[0]); | ||
| 51 | + }); | ||
| 52 | + } | ||
| 53 | + }); | ||
| 54 | + return false; | ||
| 55 | + } | ||
| 56 | + }); | ||
| 57 | + return button.render(); | ||
| 58 | + }; | ||
| 59 | + | ||
| 60 | + $(Config.summernote.classname || '.editor', form).each(function () { | ||
| 61 | + $(this).summernote($.extend(true, {}, { | ||
| 62 | + // height: 250, | ||
| 63 | + minHeight: 250, | ||
| 64 | + lang: 'zh-CN', | ||
| 65 | + fontNames: [ | ||
| 66 | + 'Arial', 'Arial Black', 'Serif', 'Sans', 'Courier', | ||
| 67 | + 'Courier New', 'Comic Sans MS', 'Helvetica', 'Impact', 'Lucida Grande', | ||
| 68 | + "Open Sans", "Hiragino Sans GB", "Microsoft YaHei", | ||
| 69 | + '微软雅黑', '宋体', '黑体', '仿宋', '楷体', '幼圆', | ||
| 70 | + ], | ||
| 71 | + fontNamesIgnoreCheck: [ | ||
| 72 | + "Open Sans", "Microsoft YaHei", | ||
| 73 | + '微软雅黑', '宋体', '黑体', '仿宋', '楷体', '幼圆' | ||
| 74 | + ], | ||
| 75 | + toolbar: [ | ||
| 76 | + ['style', ['style', 'undo', 'redo']], | ||
| 77 | + ['font', ['bold', 'underline', 'strikethrough', 'clear']], | ||
| 78 | + ['fontname', ['color', 'fontname', 'fontsize']], | ||
| 79 | + ['para', ['ul', 'ol', 'paragraph', 'height']], | ||
| 80 | + ['table', ['table', 'hr']], | ||
| 81 | + ['insert', ['link', 'picture', 'video']], | ||
| 82 | + ['select', ['image', 'attachment']], | ||
| 83 | + ['view', ['fullscreen', 'codeview', 'help']], | ||
| 84 | + ], | ||
| 85 | + buttons: { | ||
| 86 | + image: imageButton, | ||
| 87 | + attachment: attachmentButton, | ||
| 88 | + }, | ||
| 89 | + dialogsInBody: true, | ||
| 90 | + followingToolbar: false, | ||
| 91 | + callbacks: { | ||
| 92 | + onChange: function (contents) { | ||
| 93 | + $(this).val(contents); | ||
| 94 | + $(this).trigger('change'); | ||
| 95 | + }, | ||
| 96 | + onInit: function () { | ||
| 97 | + }, | ||
| 98 | + onImageUpload: function (files) { | ||
| 99 | + var that = this; | ||
| 100 | + //依次上传图片 | ||
| 101 | + for (var i = 0; i < files.length; i++) { | ||
| 102 | + Upload.api.send(files[i], function (data) { | ||
| 103 | + var url = Fast.api.cdnurl(data.url, true); | ||
| 104 | + $(that).summernote("insertImage", url, 'filename'); | ||
| 105 | + }); | ||
| 106 | + } | ||
| 107 | + } | ||
| 108 | + } | ||
| 109 | + }, $(this).data("summernote-options") || {})); | ||
| 110 | + }); | ||
| 111 | + }); | ||
| 112 | + } | ||
| 113 | + } catch (e) { | ||
| 114 | + | ||
| 115 | + } | ||
| 116 | + | ||
| 117 | + }; | ||
| 118 | +}); |
addons/summernote/config.php
0 → 100644
addons/summernote/controller/Index.php
0 → 100644
addons/summernote/info.ini
0 → 100644
| @@ -51,17 +51,19 @@ class Car extends Backend | @@ -51,17 +51,19 @@ class Car extends Backend | ||
| 51 | list($where, $sort, $order, $offset, $limit) = $this->buildparams(); | 51 | list($where, $sort, $order, $offset, $limit) = $this->buildparams(); |
| 52 | 52 | ||
| 53 | $list = $this->model | 53 | $list = $this->model |
| 54 | - ->with(['driver','route']) | 54 | + ->with(['route','driver','seat']) |
| 55 | ->where($where) | 55 | ->where($where) |
| 56 | ->order($sort, $order) | 56 | ->order($sort, $order) |
| 57 | ->paginate($limit); | 57 | ->paginate($limit); |
| 58 | 58 | ||
| 59 | foreach ($list as $row) { | 59 | foreach ($list as $row) { |
| 60 | - $row->visible(['id','car_model','license_plate','seat','colour','driver_license_img','driving_license_img','reservation_time','start_time','create_time']); | ||
| 61 | - $row->visible(['driver']); | ||
| 62 | - $row->getRelation('driver')->visible(['name']); | 60 | + $row->visible(['id','car_model','license_plate','colour','reservation_time','start_time','create_time']); |
| 63 | $row->visible(['route']); | 61 | $row->visible(['route']); |
| 64 | $row->getRelation('route')->visible(['name']); | 62 | $row->getRelation('route')->visible(['name']); |
| 63 | + $row->visible(['driver']); | ||
| 64 | + $row->getRelation('driver')->visible(['name']); | ||
| 65 | + $row->visible(['seat']); | ||
| 66 | + $row->getRelation('seat')->visible(['name']); | ||
| 65 | } | 67 | } |
| 66 | 68 | ||
| 67 | $result = array("total" => $list->total(), "rows" => $list->items()); | 69 | $result = array("total" => $list->total(), "rows" => $list->items()); |
application/admin/controller/Seat.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace app\admin\controller; | ||
| 4 | + | ||
| 5 | +use app\common\controller\Backend; | ||
| 6 | +use think\Db; | ||
| 7 | +use think\exception\DbException; | ||
| 8 | +use think\exception\PDOException; | ||
| 9 | +use think\exception\ValidateException; | ||
| 10 | + | ||
| 11 | +/** | ||
| 12 | + * 座位管理 | ||
| 13 | + * | ||
| 14 | + * @icon fa fa-circle-o | ||
| 15 | + */ | ||
| 16 | +class Seat extends Backend | ||
| 17 | +{ | ||
| 18 | + | ||
| 19 | + /** | ||
| 20 | + * Seat模型对象 | ||
| 21 | + * @var \app\admin\model\Seat | ||
| 22 | + */ | ||
| 23 | + protected $model = null; | ||
| 24 | + | ||
| 25 | + public function _initialize() | ||
| 26 | + { | ||
| 27 | + parent::_initialize(); | ||
| 28 | + $this->model = new \app\admin\model\Seat; | ||
| 29 | + $this->view->assign("seatNumberList", $this->model->getSeatNumberList()); | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + | ||
| 33 | + | ||
| 34 | + /** | ||
| 35 | + * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法 | ||
| 36 | + * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑 | ||
| 37 | + * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改 | ||
| 38 | + */ | ||
| 39 | + /** | ||
| 40 | + * 添加 | ||
| 41 | + * | ||
| 42 | + * @return string | ||
| 43 | + * @throws \think\Exception | ||
| 44 | + */ | ||
| 45 | + public function add() | ||
| 46 | + { | ||
| 47 | + if (false === $this->request->isPost()) { | ||
| 48 | + return $this->view->fetch(); | ||
| 49 | + } | ||
| 50 | + $params = $this->request->post('row/a'); | ||
| 51 | + $params['seat_name'] = array_filter($params['seat_name'], function($value) { | ||
| 52 | + return !is_null($value) && $value !== ''; | ||
| 53 | + }); | ||
| 54 | + $params['seat_price'] = array_filter($params['seat_price'], function($value) { | ||
| 55 | + return !is_null($value) && $value !== ''; | ||
| 56 | + }); | ||
| 57 | + | ||
| 58 | + if(count($params['seat_name'])!=count($params['seat_price'])){ | ||
| 59 | + $this->error("请填写完成"); | ||
| 60 | + | ||
| 61 | + } | ||
| 62 | + $params['seat']=[]; | ||
| 63 | + foreach ($params['seat_name'] as $k=>$v){ | ||
| 64 | + $params['seat'][$k]=["seat_no"=>$params['seat_no'][$k],"seat_name"=>$params['seat_name'][$k],"seat_price"=>$params['seat_price'][$k]]; | ||
| 65 | + } | ||
| 66 | + unset($params['seat_no']); | ||
| 67 | + unset($params['seat_price']); | ||
| 68 | + unset($params['seat_name']); | ||
| 69 | + $params["seat"]=json_encode($params["seat"]); | ||
| 70 | + if (empty($params)) { | ||
| 71 | + $this->error(__('Parameter %s can not be empty', '')); | ||
| 72 | + } | ||
| 73 | + $params = $this->preExcludeFields($params); | ||
| 74 | + | ||
| 75 | + if ($this->dataLimit && $this->dataLimitFieldAutoFill) { | ||
| 76 | + $params[$this->dataLimitField] = $this->auth->id; | ||
| 77 | + } | ||
| 78 | + $result = false; | ||
| 79 | + Db::startTrans(); | ||
| 80 | + try { | ||
| 81 | + //是否采用模型验证 | ||
| 82 | + if ($this->modelValidate) { | ||
| 83 | + $name = str_replace("\\model\\", "\\validate\\", get_class($this->model)); | ||
| 84 | + $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : $name) : $this->modelValidate; | ||
| 85 | + $this->model->validateFailException()->validate($validate); | ||
| 86 | + } | ||
| 87 | + $result = $this->model->allowField(true)->save($params); | ||
| 88 | + Db::commit(); | ||
| 89 | + } catch (ValidateException|PDOException|Exception $e) { | ||
| 90 | + Db::rollback(); | ||
| 91 | + $this->error($e->getMessage()); | ||
| 92 | + } | ||
| 93 | + if ($result === false) { | ||
| 94 | + $this->error(__('No rows were inserted')); | ||
| 95 | + } | ||
| 96 | + $this->success(); | ||
| 97 | + } | ||
| 98 | + /** | ||
| 99 | + * 编辑 | ||
| 100 | + * | ||
| 101 | + * @param $ids | ||
| 102 | + * @return string | ||
| 103 | + * @throws DbException | ||
| 104 | + * @throws \think\Exception | ||
| 105 | + */ | ||
| 106 | + public function edit($ids = null) | ||
| 107 | + { | ||
| 108 | + $row = $this->model->get($ids); | ||
| 109 | + if (!$row) { | ||
| 110 | + $this->error(__('No Results were found')); | ||
| 111 | + } | ||
| 112 | + $adminIds = $this->getDataLimitAdminIds(); | ||
| 113 | + if (is_array($adminIds) && !in_array($row[$this->dataLimitField], $adminIds)) { | ||
| 114 | + $this->error(__('You have no permission')); | ||
| 115 | + } | ||
| 116 | + if (false === $this->request->isPost()) { | ||
| 117 | + $res=$row->toArray(); | ||
| 118 | + $seat=$res['seat']; | ||
| 119 | + $seat=json_decode($seat,true); | ||
| 120 | + $this->view->assign('row', $row); | ||
| 121 | + $this->view->assign('seat', $seat); | ||
| 122 | + return $this->view->fetch(); | ||
| 123 | + } | ||
| 124 | + $params = $this->request->post('row/a'); | ||
| 125 | + print_r($params);return; | ||
| 126 | + if (empty($params)) { | ||
| 127 | + $this->error(__('Parameter %s can not be empty', '')); | ||
| 128 | + } | ||
| 129 | + $params = $this->preExcludeFields($params); | ||
| 130 | + $result = false; | ||
| 131 | + Db::startTrans(); | ||
| 132 | + try { | ||
| 133 | + //是否采用模型验证 | ||
| 134 | + if ($this->modelValidate) { | ||
| 135 | + $name = str_replace("\\model\\", "\\validate\\", get_class($this->model)); | ||
| 136 | + $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.edit' : $name) : $this->modelValidate; | ||
| 137 | + $row->validateFailException()->validate($validate); | ||
| 138 | + } | ||
| 139 | + $result = $row->allowField(true)->save($params); | ||
| 140 | + Db::commit(); | ||
| 141 | + } catch (ValidateException|PDOException|Exception $e) { | ||
| 142 | + Db::rollback(); | ||
| 143 | + $this->error($e->getMessage()); | ||
| 144 | + } | ||
| 145 | + if (false === $result) { | ||
| 146 | + $this->error(__('No rows were updated')); | ||
| 147 | + } | ||
| 148 | + $this->success(); | ||
| 149 | + } | ||
| 150 | +} |
| @@ -8,11 +8,11 @@ return [ | @@ -8,11 +8,11 @@ return [ | ||
| 8 | 'Driver_id' => '司机', | 8 | 'Driver_id' => '司机', |
| 9 | 'Seat' => '座位数', | 9 | 'Seat' => '座位数', |
| 10 | 'Colour' => '车辆颜色', | 10 | 'Colour' => '车辆颜色', |
| 11 | - 'Driver_license_img' => '驾照', | ||
| 12 | - 'Driving_license_img' => '行驶证', | 11 | + 'Seat_id' => '座位价格', |
| 13 | 'Reservation_time' => '预约时间', | 12 | 'Reservation_time' => '预约时间', |
| 14 | 'Start_time' => '发车时间', | 13 | 'Start_time' => '发车时间', |
| 15 | 'Create_time' => '创建时间', | 14 | 'Create_time' => '创建时间', |
| 15 | + 'Route.name' => '线路名称', | ||
| 16 | 'Driver.name' => '司机名称', | 16 | 'Driver.name' => '司机名称', |
| 17 | - 'Route.name' => '线路名称' | 17 | + 'Seat.name' => '座位名称' |
| 18 | ]; | 18 | ]; |
application/admin/lang/zh-cn/seat.php
0 → 100644
| @@ -71,14 +71,20 @@ class Car extends Model | @@ -71,14 +71,20 @@ class Car extends Model | ||
| 71 | } | 71 | } |
| 72 | 72 | ||
| 73 | 73 | ||
| 74 | + public function route() | ||
| 75 | + { | ||
| 76 | + return $this->belongsTo('Route', 'route_id', 'id', [], 'LEFT')->setEagerlyType(0); | ||
| 77 | + } | ||
| 78 | + | ||
| 79 | + | ||
| 74 | public function driver() | 80 | public function driver() |
| 75 | { | 81 | { |
| 76 | return $this->belongsTo('Driver', 'driver_id', 'id', [], 'LEFT')->setEagerlyType(0); | 82 | return $this->belongsTo('Driver', 'driver_id', 'id', [], 'LEFT')->setEagerlyType(0); |
| 77 | } | 83 | } |
| 78 | 84 | ||
| 79 | 85 | ||
| 80 | - public function route() | 86 | + public function seat() |
| 81 | { | 87 | { |
| 82 | - return $this->belongsTo('Route', 'route_id', 'id', [], 'LEFT')->setEagerlyType(0); | 88 | + return $this->belongsTo('Seat', 'seat_id', 'id', [], 'LEFT')->setEagerlyType(0); |
| 83 | } | 89 | } |
| 84 | } | 90 | } |
application/admin/model/Seat.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace app\admin\model; | ||
| 4 | + | ||
| 5 | +use think\Model; | ||
| 6 | + | ||
| 7 | + | ||
| 8 | +class Seat extends Model | ||
| 9 | +{ | ||
| 10 | + | ||
| 11 | + | ||
| 12 | + | ||
| 13 | + | ||
| 14 | + | ||
| 15 | + // 表名 | ||
| 16 | + protected $name = 'seat'; | ||
| 17 | + | ||
| 18 | + // 自动写入时间戳字段 | ||
| 19 | + protected $autoWriteTimestamp = false; | ||
| 20 | + | ||
| 21 | + // 定义时间戳字段名 | ||
| 22 | + protected $createTime = false; | ||
| 23 | + protected $updateTime = false; | ||
| 24 | + protected $deleteTime = false; | ||
| 25 | + | ||
| 26 | + // 追加属性 | ||
| 27 | + protected $append = [ | ||
| 28 | + 'seat_number_text' | ||
| 29 | + ]; | ||
| 30 | + | ||
| 31 | + | ||
| 32 | + | ||
| 33 | + public function getSeatNumberList() | ||
| 34 | + { | ||
| 35 | + return ['0' => __('Seat_number 0'), '1' => __('Seat_number 1')]; | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + | ||
| 39 | + public function getSeatNumberTextAttr($value, $data) | ||
| 40 | + { | ||
| 41 | + $value = $value ? $value : (isset($data['seat_number']) ? $data['seat_number'] : ''); | ||
| 42 | + $list = $this->getSeatNumberList(); | ||
| 43 | + return isset($list[$value]) ? $list[$value] : ''; | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + | ||
| 47 | + | ||
| 48 | + | ||
| 49 | +} |
application/admin/validate/Seat.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace app\admin\validate; | ||
| 4 | + | ||
| 5 | +use think\Validate; | ||
| 6 | + | ||
| 7 | +class Seat extends Validate | ||
| 8 | +{ | ||
| 9 | + /** | ||
| 10 | + * 验证规则 | ||
| 11 | + */ | ||
| 12 | + protected $rule = [ | ||
| 13 | + ]; | ||
| 14 | + /** | ||
| 15 | + * 提示消息 | ||
| 16 | + */ | ||
| 17 | + protected $message = [ | ||
| 18 | + ]; | ||
| 19 | + /** | ||
| 20 | + * 验证场景 | ||
| 21 | + */ | ||
| 22 | + protected $scene = [ | ||
| 23 | + 'add' => [], | ||
| 24 | + 'edit' => [], | ||
| 25 | + ]; | ||
| 26 | + | ||
| 27 | +} |
| @@ -37,27 +37,21 @@ | @@ -37,27 +37,21 @@ | ||
| 37 | </div> | 37 | </div> |
| 38 | </div> | 38 | </div> |
| 39 | <div class="form-group"> | 39 | <div class="form-group"> |
| 40 | - <label class="control-label col-xs-12 col-sm-2">{:__('Driver_license_img')}:</label> | 40 | + <label class="control-label col-xs-12 col-sm-2">{:__('Seat_id')}:</label> |
| 41 | <div class="col-xs-12 col-sm-8"> | 41 | <div class="col-xs-12 col-sm-8"> |
| 42 | - <input id="c-driver_license_img" class="form-control" name="row[driver_license_img]" type="text"> | ||
| 43 | - </div> | ||
| 44 | - </div> | ||
| 45 | - <div class="form-group"> | ||
| 46 | - <label class="control-label col-xs-12 col-sm-2">{:__('Driving_license_img')}:</label> | ||
| 47 | - <div class="col-xs-12 col-sm-8"> | ||
| 48 | - <input id="c-driving_license_img" class="form-control" name="row[driving_license_img]" type="text"> | 42 | + <input id="c-seat_id" data-rule="required" data-source="seat/index" class="form-control selectpage" name="row[seat_id]" type="text" value=""> |
| 49 | </div> | 43 | </div> |
| 50 | </div> | 44 | </div> |
| 51 | <div class="form-group"> | 45 | <div class="form-group"> |
| 52 | <label class="control-label col-xs-12 col-sm-2">{:__('Reservation_time')}:</label> | 46 | <label class="control-label col-xs-12 col-sm-2">{:__('Reservation_time')}:</label> |
| 53 | <div class="col-xs-12 col-sm-8"> | 47 | <div class="col-xs-12 col-sm-8"> |
| 54 | - <input id="c-reservation_time" class="form-control datetimepicker" data-date-format=" HH:mm" data-use-current="true" name="row[reservation_time]" type="text" value="{:date('H:i')}"> | 48 | + <input id="c-reservation_time" class="form-control datetimepicker" data-date-format="HH:mm" data-use-current="true" name="row[reservation_time]" type="text" value="{:date('Y-m-d H:i:s')}"> |
| 55 | </div> | 49 | </div> |
| 56 | </div> | 50 | </div> |
| 57 | <div class="form-group"> | 51 | <div class="form-group"> |
| 58 | <label class="control-label col-xs-12 col-sm-2">{:__('Start_time')}:</label> | 52 | <label class="control-label col-xs-12 col-sm-2">{:__('Start_time')}:</label> |
| 59 | <div class="col-xs-12 col-sm-8"> | 53 | <div class="col-xs-12 col-sm-8"> |
| 60 | - <input id="c-start_time" class="form-control datetimepicker" data-date-format=" HH:mm" data-use-current="true" name="row[start_time]" type="text" value="{:date('H:i')}"> | 54 | + <input id="c-start_time" class="form-control datetimepicker" data-date-format="HH:mm" data-use-current="true" name="row[start_time]" type="text" value="{:date('Y-m-d H:i:s')}"> |
| 61 | </div> | 55 | </div> |
| 62 | </div> | 56 | </div> |
| 63 | <div class="form-group"> | 57 | <div class="form-group"> |
| @@ -37,27 +37,21 @@ | @@ -37,27 +37,21 @@ | ||
| 37 | </div> | 37 | </div> |
| 38 | </div> | 38 | </div> |
| 39 | <div class="form-group"> | 39 | <div class="form-group"> |
| 40 | - <label class="control-label col-xs-12 col-sm-2">{:__('Driver_license_img')}:</label> | 40 | + <label class="control-label col-xs-12 col-sm-2">{:__('Seat_id')}:</label> |
| 41 | <div class="col-xs-12 col-sm-8"> | 41 | <div class="col-xs-12 col-sm-8"> |
| 42 | - <input id="c-driver_license_img" class="form-control" name="row[driver_license_img]" type="text" value="{$row.driver_license_img|htmlentities}"> | ||
| 43 | - </div> | ||
| 44 | - </div> | ||
| 45 | - <div class="form-group"> | ||
| 46 | - <label class="control-label col-xs-12 col-sm-2">{:__('Driving_license_img')}:</label> | ||
| 47 | - <div class="col-xs-12 col-sm-8"> | ||
| 48 | - <input id="c-driving_license_img" class="form-control" name="row[driving_license_img]" type="text" value="{$row.driving_license_img|htmlentities}"> | 42 | + <input id="c-seat_id" data-rule="required" data-source="seat/index" class="form-control selectpage" name="row[seat_id]" type="text" value="{$row.seat_id|htmlentities}"> |
| 49 | </div> | 43 | </div> |
| 50 | </div> | 44 | </div> |
| 51 | <div class="form-group"> | 45 | <div class="form-group"> |
| 52 | <label class="control-label col-xs-12 col-sm-2">{:__('Reservation_time')}:</label> | 46 | <label class="control-label col-xs-12 col-sm-2">{:__('Reservation_time')}:</label> |
| 53 | <div class="col-xs-12 col-sm-8"> | 47 | <div class="col-xs-12 col-sm-8"> |
| 54 | - <input id="c-reservation_time" class="form-control datetimepicker" data-date-format=" HH:mm" data-use-current="true" name="row[reservation_time]" type="text" value="{:$row.reservation_time?datetime($row.reservation_time):''}"> | 48 | + <input id="c-reservation_time" class="form-control datetimepicker" data-date-format="HH:mm" data-use-current="true" name="row[reservation_time]" type="text" value="{:$row.reservation_time?datetime($row.reservation_time):''}"> |
| 55 | </div> | 49 | </div> |
| 56 | </div> | 50 | </div> |
| 57 | <div class="form-group"> | 51 | <div class="form-group"> |
| 58 | <label class="control-label col-xs-12 col-sm-2">{:__('Start_time')}:</label> | 52 | <label class="control-label col-xs-12 col-sm-2">{:__('Start_time')}:</label> |
| 59 | <div class="col-xs-12 col-sm-8"> | 53 | <div class="col-xs-12 col-sm-8"> |
| 60 | - <input id="c-start_time" class="form-control datetimepicker" data-date-format=" HH:mm" data-use-current="true" name="row[start_time]" type="text" value="{:$row.start_time?datetime($row.start_time):''}"> | 54 | + <input id="c-start_time" class="form-control datetimepicker" data-date-format="HH:mm" data-use-current="true" name="row[start_time]" type="text" value="{:$row.start_time?datetime($row.start_time):''}"> |
| 61 | </div> | 55 | </div> |
| 62 | </div> | 56 | </div> |
| 63 | <div class="form-group"> | 57 | <div class="form-group"> |
application/admin/view/seat/add.html
0 → 100644
| 1 | +<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action=""> | ||
| 2 | + | ||
| 3 | + <div class="form-group"> | ||
| 4 | + <label class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label> | ||
| 5 | + <div class="col-xs-12 col-sm-8"> | ||
| 6 | + <input id="c-name" class="form-control" name="row[name]" type="text"> | ||
| 7 | + </div> | ||
| 8 | + </div> | ||
| 9 | + | ||
| 10 | + <div class="form-group" id="seat_number"> | ||
| 11 | + <label class="control-label col-xs-12 col-sm-2">{:__('Seat_number')}:</label> | ||
| 12 | + <div class="col-xs-12 col-sm-8"> | ||
| 13 | + {:build_radios("row[seat_number]",["0"=>"五座","1"=>"七座"])} | ||
| 14 | + </div> | ||
| 15 | + </div> | ||
| 16 | + | ||
| 17 | + <div class="form-group"> | ||
| 18 | + <label class="control-label col-xs-12 col-sm-2">{:__('Seat')}:</label> | ||
| 19 | + </div> | ||
| 20 | + <div class="form-group"> | ||
| 21 | + <div class="col-xs-3 col-sm-12"> | ||
| 22 | + <label class="control-label col-xs-4 col-sm-2">座位名称:</label> | ||
| 23 | + <div class="col-xs-3 col-sm-4"> | ||
| 24 | + <input id="c-seat_name" class="form-control" name="row[seat_name][]" type="text"> | ||
| 25 | + <input id="c-seat_no" style="display: none;" class="form-control" value="1" name="row[seat_no][]" type="text"> | ||
| 26 | + </div> | ||
| 27 | + <label class="control-label col-xs-4 col-sm-1">价格:</label> | ||
| 28 | + <div class="col-xs-3 col-sm-4"> | ||
| 29 | + <input id="c-seat_price" class="form-control" name="row[seat_price][]" type="text"> | ||
| 30 | + </div> | ||
| 31 | + </div> | ||
| 32 | + <div class="col-xs-3 col-sm-12"> | ||
| 33 | + <label class="control-label col-xs-4 col-sm-2">座位名称:</label> | ||
| 34 | + <div class="col-xs-3 col-sm-4"> | ||
| 35 | + <input id="c-seat_name" class="form-control" name="row[seat_name][]" type="text"> | ||
| 36 | + <input id="c-seat_no" style="display: none;" class="form-control" value="2" name="row[seat_no][]" type="text"> | ||
| 37 | + | ||
| 38 | + </div> | ||
| 39 | + <label class="control-label col-xs-4 col-sm-1">价格:</label> | ||
| 40 | + <div class="col-xs-3 col-sm-4"> | ||
| 41 | + <input id="c-seat_price" class="form-control" name="row[seat_price][]" type="text"> | ||
| 42 | + </div> | ||
| 43 | + </div> | ||
| 44 | + <div class="col-xs-3 col-sm-12"> | ||
| 45 | + <label class="control-label col-xs-4 col-sm-2">座位名称:</label> | ||
| 46 | + <div class="col-xs-3 col-sm-4"> | ||
| 47 | + <input id="c-seat_name" class="form-control" name="row[seat_name][]" type="text"> | ||
| 48 | + <input id="c-seat_no" style="display: none;" class="form-control" value="3" name="row[seat_no][]" type="text"> | ||
| 49 | + | ||
| 50 | + </div> | ||
| 51 | + <label class="control-label col-xs-4 col-sm-1">价格:</label> | ||
| 52 | + <div class="col-xs-3 col-sm-4"> | ||
| 53 | + <input id="c-seat_price" class="form-control" name="row[seat_price][]" type="text"> | ||
| 54 | + </div> | ||
| 55 | + </div> | ||
| 56 | + <div class="col-xs-3 col-sm-12"> | ||
| 57 | + <label class="control-label col-xs-4 col-sm-2">座位名称:</label> | ||
| 58 | + <div class="col-xs-3 col-sm-4"> | ||
| 59 | + <input id="c-seat_name" class="form-control" name="row[seat_name][]" type="text"> | ||
| 60 | + <input id="c-seat_no" style="display: none;" class="form-control" value="4" name="row[seat_no][]" type="text"> | ||
| 61 | + | ||
| 62 | + </div> | ||
| 63 | + <label class="control-label col-xs-4 col-sm-1">价格:</label> | ||
| 64 | + <div class="col-xs-3 col-sm-4"> | ||
| 65 | + <input id="c-seat_price" class="form-control" name="row[seat_price][]" type="text"> | ||
| 66 | + </div> | ||
| 67 | + </div> | ||
| 68 | + | ||
| 69 | + <div class="col-xs-3 col-sm-12" hidden id="seat5"> | ||
| 70 | + <label class="control-label col-xs-4 col-sm-2">座位名称:</label> | ||
| 71 | + <div class="col-xs-3 col-sm-4"> | ||
| 72 | + <input id="c-seat_name5" class="form-control" name="row[seat_name][]" type="text"> | ||
| 73 | + <input id="c-seat_no" style="display: none;" class="form-control" value="5" name="row[seat_no][]" type="text"> | ||
| 74 | + | ||
| 75 | + </div> | ||
| 76 | + <label class="control-label col-xs-4 col-sm-1">价格:</label> | ||
| 77 | + <div class="col-xs-3 col-sm-4"> | ||
| 78 | + <input id="c-seat_price5" class="form-control" name="row[seat_price][]" type="text"> | ||
| 79 | + </div> | ||
| 80 | + </div> | ||
| 81 | + <div class="col-xs-3 col-sm-12" hidden id="seat6"> | ||
| 82 | + <label class="control-label col-xs-4 col-sm-2">座位名称:</label> | ||
| 83 | + <div class="col-xs-3 col-sm-4"> | ||
| 84 | + <input id="c-seat_name6" class="form-control" name="row[seat_name][]" type="text"> | ||
| 85 | + <input id="c-seat_no" style="display: none;" class="form-control" value="6" name="row[seat_no][]" type="text"> | ||
| 86 | + | ||
| 87 | + </div> | ||
| 88 | + <label class="control-label col-xs-4 col-sm-1">价格:</label> | ||
| 89 | + <div class="col-xs-3 col-sm-4"> | ||
| 90 | + <input id="c-seat_price6" class="form-control" name="row[seat_price][]" type="text"> | ||
| 91 | + </div> | ||
| 92 | + </div> | ||
| 93 | + | ||
| 94 | + | ||
| 95 | + | ||
| 96 | + | ||
| 97 | + | ||
| 98 | + | ||
| 99 | + </div> | ||
| 100 | + <div class="form-group layer-footer"> | ||
| 101 | + <label class="control-label col-xs-12 col-sm-2"></label> | ||
| 102 | + <div class="col-xs-12 col-sm-8"> | ||
| 103 | + <button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button> | ||
| 104 | + </div> | ||
| 105 | + </div> | ||
| 106 | +</form> |
application/admin/view/seat/edit.html
0 → 100644
| 1 | +<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action=""> | ||
| 2 | + | ||
| 3 | + <div class="form-group"> | ||
| 4 | + <label class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label> | ||
| 5 | + <div class="col-xs-12 col-sm-8"> | ||
| 6 | + <input id="c-name" class="form-control" name="row[name]" type="text" value="{$row.name|htmlentities}"> | ||
| 7 | + </div> | ||
| 8 | + </div> | ||
| 9 | + <div class="form-group" id="seat_number"> | ||
| 10 | + <label class="control-label col-xs-12 col-sm-2">{:__('Seat_number')}:</label> | ||
| 11 | + <div class="col-xs-12 col-sm-8"> | ||
| 12 | + {:build_radios("row[seat_number]",["0"=>"五座","1"=>"七座"],$row['seat_number'])} | ||
| 13 | + </div> | ||
| 14 | + </div> | ||
| 15 | + <div class="form-group"> | ||
| 16 | + <label class="control-label col-xs-12 col-sm-2">{:__('Seat')}:</label> | ||
| 17 | + | ||
| 18 | + </div> | ||
| 19 | + <div class="form-group"> | ||
| 20 | + {volist name="seat" id="vo" } | ||
| 21 | + <div class="col-xs-3 col-sm-12" id="seat{$vo.seat_no}"> | ||
| 22 | + <label class="control-label col-xs-4 col-sm-2">座位名称:</label> | ||
| 23 | + <div class="col-xs-3 col-sm-4"> | ||
| 24 | + <input id="c-seat_name" class="form-control" value="{$vo.seat_name}" name="row[seat_name][]" type="text"> | ||
| 25 | + <input id="c-seat_no" style="display: none;" class="form-control" value="6" name="row[seat_no][]" type="text"> | ||
| 26 | + | ||
| 27 | + </div> | ||
| 28 | + <label class="control-label col-xs-4 col-sm-1">价格:</label> | ||
| 29 | + <div class="col-xs-3 col-sm-4"> | ||
| 30 | + <input id="c-seat_price" class="form-control" value="{$vo.seat_price}" name="row[seat_price][]" type="text"> | ||
| 31 | + </div> | ||
| 32 | + </div> | ||
| 33 | + {/volist} | ||
| 34 | + | ||
| 35 | + | ||
| 36 | + </div> | ||
| 37 | + <div class="form-group layer-footer"> | ||
| 38 | + <label class="control-label col-xs-12 col-sm-2"></label> | ||
| 39 | + <div class="col-xs-12 col-sm-8"> | ||
| 40 | + <button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button> | ||
| 41 | + </div> | ||
| 42 | + </div> | ||
| 43 | +</form> |
application/admin/view/seat/index.html
0 → 100644
| 1 | +<div class="panel panel-default panel-intro"> | ||
| 2 | + {:build_heading()} | ||
| 3 | + | ||
| 4 | + <div class="panel-body"> | ||
| 5 | + <div id="myTabContent" class="tab-content"> | ||
| 6 | + <div class="tab-pane fade active in" id="one"> | ||
| 7 | + <div class="widget-body no-padding"> | ||
| 8 | + <div id="toolbar" class="toolbar"> | ||
| 9 | + <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a> | ||
| 10 | + <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('seat/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a> | ||
| 11 | + <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('seat/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a> | ||
| 12 | + <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('seat/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a> | ||
| 13 | + | ||
| 14 | + | ||
| 15 | + | ||
| 16 | + | ||
| 17 | + | ||
| 18 | + </div> | ||
| 19 | + <table id="table" class="table table-striped table-bordered table-hover table-nowrap" | ||
| 20 | + data-operate-edit="{:$auth->check('seat/edit')}" | ||
| 21 | + data-operate-del="{:$auth->check('seat/del')}" | ||
| 22 | + width="100%"> | ||
| 23 | + </table> | ||
| 24 | + </div> | ||
| 25 | + </div> | ||
| 26 | + | ||
| 27 | + </div> | ||
| 28 | + </div> | ||
| 29 | +</div> |
| @@ -576,4 +576,39 @@ class Car extends Base | @@ -576,4 +576,39 @@ class Car extends Base | ||
| 576 | } | 576 | } |
| 577 | return $this->success("请求成功",$res); | 577 | return $this->success("请求成功",$res); |
| 578 | } | 578 | } |
| 579 | + | ||
| 580 | + /** | ||
| 581 | + * 获取座位详情 | ||
| 582 | + * @return void | ||
| 583 | + */ | ||
| 584 | + public function car_seat(){ | ||
| 585 | + $car_id=$this->request->param("car_id"); | ||
| 586 | + //查询车辆信息 | ||
| 587 | + $car=Db::name("car")->where("id",$car_id)->find(); | ||
| 588 | + $seat=Db::name("seat")->where("id",$car['seat_id'])->find(); | ||
| 589 | + $seat['seat']=json_decode($seat['seat'],true); | ||
| 590 | + //查询当日订单 | ||
| 591 | + $statr_time=strtotime(date("Y-m-d",time())); | ||
| 592 | + $end_time=$statr_time+86400; | ||
| 593 | + $order=Db::name("order") | ||
| 594 | + ->where("create_time",">",$statr_time) | ||
| 595 | + ->where("create_time","<",$end_time) | ||
| 596 | + ->where('car_id',$car_id) | ||
| 597 | + ->field("seat_no") | ||
| 598 | + ->select(); | ||
| 599 | + foreach ($order as $k=>$v){ | ||
| 600 | + $seat_no[$k]=$order[$k]["seat_no"]; | ||
| 601 | + } | ||
| 602 | + | ||
| 603 | + foreach ($seat['seat'] as $k=>$v){ | ||
| 604 | + if(in_array($seat['seat'][$k]['seat_no'],$seat_no)){ | ||
| 605 | + $seat['seat'][$k]['is_sale']=1; | ||
| 606 | + }else{ | ||
| 607 | + $seat['seat'][$k]['is_sale']=0; | ||
| 608 | + | ||
| 609 | + | ||
| 610 | + } | ||
| 611 | + } | ||
| 612 | + return $this->success("请求成功",$seat); | ||
| 613 | + } | ||
| 579 | } | 614 | } |
| @@ -12,6 +12,21 @@ return [ | @@ -12,6 +12,21 @@ return [ | ||
| 12 | 'action_begin' => [ | 12 | 'action_begin' => [ |
| 13 | 'epay', | 13 | 'epay', |
| 14 | ], | 14 | ], |
| 15 | + 'upload_config_init' => [ | ||
| 16 | + 'qiniu', | ||
| 17 | + ], | ||
| 18 | + 'upload_delete' => [ | ||
| 19 | + 'qiniu', | ||
| 20 | + ], | ||
| 21 | + 'upload_token' => [ | ||
| 22 | + 'qiniu', | ||
| 23 | + ], | ||
| 24 | + 'app_init' => [ | ||
| 25 | + 'qiniu', | ||
| 26 | + ], | ||
| 27 | + 'config_init' => [ | ||
| 28 | + 'summernote', | ||
| 29 | + ], | ||
| 15 | ], | 30 | ], |
| 16 | 'route' => [], | 31 | 'route' => [], |
| 17 | 'priority' => [], | 32 | 'priority' => [], |
| @@ -28,7 +28,6 @@ return array ( | @@ -28,7 +28,6 @@ return array ( | ||
| 28 | 'user' => '会员配置', | 28 | 'user' => '会员配置', |
| 29 | 'example' => '示例分组', | 29 | 'example' => '示例分组', |
| 30 | 'wxxcx' => '小程序配置', | 30 | 'wxxcx' => '小程序配置', |
| 31 | - 'authentication_statement' => '车主认证声明', | ||
| 32 | ), | 31 | ), |
| 33 | 'mail_type' => '1', | 32 | 'mail_type' => '1', |
| 34 | 'mail_smtp_host' => 'smtp.qq.com', | 33 | 'mail_smtp_host' => 'smtp.qq.com', |
| @@ -47,4 +46,5 @@ return array ( | @@ -47,4 +46,5 @@ return array ( | ||
| 47 | 'wxxcx_AppSecret' => 'baf744d21875280a5e98611f66adaf91', | 46 | 'wxxcx_AppSecret' => 'baf744d21875280a5e98611f66adaf91', |
| 48 | 'content' => '111111111111111111111222222222', | 47 | 'content' => '111111111111111111111222222222', |
| 49 | 'alarm_phone' => '13528348347', | 48 | 'alarm_phone' => '13528348347', |
| 49 | + 'riding_instructions' => '', | ||
| 50 | ); | 50 | ); |
| 1 | +/*! | ||
| 2 | + * | ||
| 3 | + * Super simple WYSIWYG editor v0.8.20 | ||
| 4 | + * https://summernote.org | ||
| 5 | + * | ||
| 6 | + * | ||
| 7 | + * Copyright 2013- Alan Hong and contributors | ||
| 8 | + * Summernote may be freely distributed under the MIT license. | ||
| 9 | + * | ||
| 10 | + * Date: 2021-10-14T21:15Z | ||
| 11 | + * | ||
| 12 | + */ | ||
| 13 | +@font-face { | ||
| 14 | + font-family: "summernote"; | ||
| 15 | + font-style: normal; | ||
| 16 | + font-weight: 400; | ||
| 17 | + font-display: auto; | ||
| 18 | + src: url("../font/summernote.eot?#iefix") format("embedded-opentype"), url("../font/summernote.woff2") format("woff2"), url("../font/summernote.woff") format("woff"), url("../font/summernote.ttf") format("truetype"); | ||
| 19 | +} | ||
| 20 | + | ||
| 21 | +[class^=note-icon]:before, | ||
| 22 | +[class*=" note-icon"]:before { | ||
| 23 | + display: inline-block; | ||
| 24 | + font-family: "summernote"; | ||
| 25 | + font-style: normal; | ||
| 26 | + font-size: inherit; | ||
| 27 | + text-decoration: inherit; | ||
| 28 | + text-rendering: auto; | ||
| 29 | + text-transform: none; | ||
| 30 | + vertical-align: middle; | ||
| 31 | + -moz-osx-font-smoothing: grayscale; | ||
| 32 | + -webkit-font-smoothing: antialiased; | ||
| 33 | + speak: none; | ||
| 34 | +} | ||
| 35 | + | ||
| 36 | +.note-icon-fw { | ||
| 37 | + text-align: center; | ||
| 38 | + width: 1.25em; | ||
| 39 | +} | ||
| 40 | + | ||
| 41 | +.note-icon-border { | ||
| 42 | + border: solid 0.08em #eee; | ||
| 43 | + border-radius: 0.1em; | ||
| 44 | + padding: 0.2em 0.25em 0.15em; | ||
| 45 | +} | ||
| 46 | + | ||
| 47 | +.note-icon-pull-left { | ||
| 48 | + float: left; | ||
| 49 | +} | ||
| 50 | + | ||
| 51 | +.note-icon-pull-right { | ||
| 52 | + float: right; | ||
| 53 | +} | ||
| 54 | + | ||
| 55 | +.note-icon.note-icon-pull-left { | ||
| 56 | + margin-right: 0.3em; | ||
| 57 | +} | ||
| 58 | + | ||
| 59 | +.note-icon.note-icon-pull-right { | ||
| 60 | + margin-left: 0.3em; | ||
| 61 | +} | ||
| 62 | + | ||
| 63 | +.note-icon-align::before { | ||
| 64 | + content: "\ea01"; | ||
| 65 | +} | ||
| 66 | + | ||
| 67 | +.note-icon-align-center::before { | ||
| 68 | + content: "\ea02"; | ||
| 69 | +} | ||
| 70 | + | ||
| 71 | +.note-icon-align-indent::before { | ||
| 72 | + content: "\ea03"; | ||
| 73 | +} | ||
| 74 | + | ||
| 75 | +.note-icon-align-justify::before { | ||
| 76 | + content: "\ea04"; | ||
| 77 | +} | ||
| 78 | + | ||
| 79 | +.note-icon-align-left::before { | ||
| 80 | + content: "\ea05"; | ||
| 81 | +} | ||
| 82 | + | ||
| 83 | +.note-icon-align-outdent::before { | ||
| 84 | + content: "\ea06"; | ||
| 85 | +} | ||
| 86 | + | ||
| 87 | +.note-icon-align-right::before { | ||
| 88 | + content: "\ea07"; | ||
| 89 | +} | ||
| 90 | + | ||
| 91 | +.note-icon-arrow-circle-down::before { | ||
| 92 | + content: "\ea08"; | ||
| 93 | +} | ||
| 94 | + | ||
| 95 | +.note-icon-arrow-circle-left::before { | ||
| 96 | + content: "\ea09"; | ||
| 97 | +} | ||
| 98 | + | ||
| 99 | +.note-icon-arrow-circle-right::before { | ||
| 100 | + content: "\ea0a"; | ||
| 101 | +} | ||
| 102 | + | ||
| 103 | +.note-icon-arrow-circle-up::before { | ||
| 104 | + content: "\ea0b"; | ||
| 105 | +} | ||
| 106 | + | ||
| 107 | +.note-icon-arrows-alt::before { | ||
| 108 | + content: "\ea0c"; | ||
| 109 | +} | ||
| 110 | + | ||
| 111 | +.note-icon-arrows-h::before { | ||
| 112 | + content: "\ea0d"; | ||
| 113 | +} | ||
| 114 | + | ||
| 115 | +.note-icon-arrows-v::before { | ||
| 116 | + content: "\ea0e"; | ||
| 117 | +} | ||
| 118 | + | ||
| 119 | +.note-icon-bold::before { | ||
| 120 | + content: "\ea0f"; | ||
| 121 | +} | ||
| 122 | + | ||
| 123 | +.note-icon-caret::before { | ||
| 124 | + content: "\ea10"; | ||
| 125 | +} | ||
| 126 | + | ||
| 127 | +.note-icon-chain-broken::before { | ||
| 128 | + content: "\ea11"; | ||
| 129 | +} | ||
| 130 | + | ||
| 131 | +.note-icon-circle::before { | ||
| 132 | + content: "\ea12"; | ||
| 133 | +} | ||
| 134 | + | ||
| 135 | +.note-icon-close::before { | ||
| 136 | + content: "\ea13"; | ||
| 137 | +} | ||
| 138 | + | ||
| 139 | +.note-icon-code::before { | ||
| 140 | + content: "\ea14"; | ||
| 141 | +} | ||
| 142 | + | ||
| 143 | +.note-icon-col-after::before { | ||
| 144 | + content: "\ea15"; | ||
| 145 | +} | ||
| 146 | + | ||
| 147 | +.note-icon-col-before::before { | ||
| 148 | + content: "\ea16"; | ||
| 149 | +} | ||
| 150 | + | ||
| 151 | +.note-icon-col-remove::before { | ||
| 152 | + content: "\ea17"; | ||
| 153 | +} | ||
| 154 | + | ||
| 155 | +.note-icon-eraser::before { | ||
| 156 | + content: "\ea18"; | ||
| 157 | +} | ||
| 158 | + | ||
| 159 | +.note-icon-float-left::before { | ||
| 160 | + content: "\ea19"; | ||
| 161 | +} | ||
| 162 | + | ||
| 163 | +.note-icon-float-none::before { | ||
| 164 | + content: "\ea1a"; | ||
| 165 | +} | ||
| 166 | + | ||
| 167 | +.note-icon-float-right::before { | ||
| 168 | + content: "\ea1b"; | ||
| 169 | +} | ||
| 170 | + | ||
| 171 | +.note-icon-font::before { | ||
| 172 | + content: "\ea1c"; | ||
| 173 | +} | ||
| 174 | + | ||
| 175 | +.note-icon-frame::before { | ||
| 176 | + content: "\ea1d"; | ||
| 177 | +} | ||
| 178 | + | ||
| 179 | +.note-icon-italic::before { | ||
| 180 | + content: "\ea1e"; | ||
| 181 | +} | ||
| 182 | + | ||
| 183 | +.note-icon-link::before { | ||
| 184 | + content: "\ea1f"; | ||
| 185 | +} | ||
| 186 | + | ||
| 187 | +.note-icon-magic::before { | ||
| 188 | + content: "\ea20"; | ||
| 189 | +} | ||
| 190 | + | ||
| 191 | +.note-icon-menu-check::before { | ||
| 192 | + content: "\ea21"; | ||
| 193 | +} | ||
| 194 | + | ||
| 195 | +.note-icon-minus::before { | ||
| 196 | + content: "\ea22"; | ||
| 197 | +} | ||
| 198 | + | ||
| 199 | +.note-icon-orderedlist::before { | ||
| 200 | + content: "\ea23"; | ||
| 201 | +} | ||
| 202 | + | ||
| 203 | +.note-icon-pencil::before { | ||
| 204 | + content: "\ea24"; | ||
| 205 | +} | ||
| 206 | + | ||
| 207 | +.note-icon-picture::before { | ||
| 208 | + content: "\ea25"; | ||
| 209 | +} | ||
| 210 | + | ||
| 211 | +.note-icon-question::before { | ||
| 212 | + content: "\ea26"; | ||
| 213 | +} | ||
| 214 | + | ||
| 215 | +.note-icon-redo::before { | ||
| 216 | + content: "\ea27"; | ||
| 217 | +} | ||
| 218 | + | ||
| 219 | +.note-icon-rollback::before { | ||
| 220 | + content: "\ea28"; | ||
| 221 | +} | ||
| 222 | + | ||
| 223 | +.note-icon-row-above::before { | ||
| 224 | + content: "\ea29"; | ||
| 225 | +} | ||
| 226 | + | ||
| 227 | +.note-icon-row-below::before { | ||
| 228 | + content: "\ea2a"; | ||
| 229 | +} | ||
| 230 | + | ||
| 231 | +.note-icon-row-remove::before { | ||
| 232 | + content: "\ea2b"; | ||
| 233 | +} | ||
| 234 | + | ||
| 235 | +.note-icon-special-character::before { | ||
| 236 | + content: "\ea2c"; | ||
| 237 | +} | ||
| 238 | + | ||
| 239 | +.note-icon-square::before { | ||
| 240 | + content: "\ea2d"; | ||
| 241 | +} | ||
| 242 | + | ||
| 243 | +.note-icon-strikethrough::before { | ||
| 244 | + content: "\ea2e"; | ||
| 245 | +} | ||
| 246 | + | ||
| 247 | +.note-icon-subscript::before { | ||
| 248 | + content: "\ea2f"; | ||
| 249 | +} | ||
| 250 | + | ||
| 251 | +.note-icon-summernote::before { | ||
| 252 | + content: "\ea30"; | ||
| 253 | +} | ||
| 254 | + | ||
| 255 | +.note-icon-superscript::before { | ||
| 256 | + content: "\ea31"; | ||
| 257 | +} | ||
| 258 | + | ||
| 259 | +.note-icon-table::before { | ||
| 260 | + content: "\ea32"; | ||
| 261 | +} | ||
| 262 | + | ||
| 263 | +.note-icon-text-height::before { | ||
| 264 | + content: "\ea33"; | ||
| 265 | +} | ||
| 266 | + | ||
| 267 | +.note-icon-trash::before { | ||
| 268 | + content: "\ea34"; | ||
| 269 | +} | ||
| 270 | + | ||
| 271 | +.note-icon-underline::before { | ||
| 272 | + content: "\ea35"; | ||
| 273 | +} | ||
| 274 | + | ||
| 275 | +.note-icon-undo::before { | ||
| 276 | + content: "\ea36"; | ||
| 277 | +} | ||
| 278 | + | ||
| 279 | +.note-icon-unorderedlist::before { | ||
| 280 | + content: "\ea37"; | ||
| 281 | +} | ||
| 282 | + | ||
| 283 | +.note-icon-video::before { | ||
| 284 | + content: "\ea38"; | ||
| 285 | +} | ||
| 286 | + | ||
| 287 | +/* Theme Variables | ||
| 288 | + ------------------------------------------ */ | ||
| 289 | +/* Layout | ||
| 290 | + ------------------------------------------ */ | ||
| 291 | +.note-editor { | ||
| 292 | + position: relative; | ||
| 293 | +} | ||
| 294 | + | ||
| 295 | +.note-editor .note-dropzone { | ||
| 296 | + position: absolute; | ||
| 297 | + display: none; | ||
| 298 | + z-index: 100; | ||
| 299 | + color: lightskyblue; | ||
| 300 | + background-color: #fff; | ||
| 301 | + opacity: 0.95; | ||
| 302 | +} | ||
| 303 | + | ||
| 304 | +.note-editor .note-dropzone .note-dropzone-message { | ||
| 305 | + display: table-cell; | ||
| 306 | + vertical-align: middle; | ||
| 307 | + text-align: center; | ||
| 308 | + font-size: 28px; | ||
| 309 | + font-weight: 700; | ||
| 310 | +} | ||
| 311 | + | ||
| 312 | +.note-editor .note-dropzone.hover { | ||
| 313 | + color: #098ddf; | ||
| 314 | +} | ||
| 315 | + | ||
| 316 | +.note-editor.dragover .note-dropzone { | ||
| 317 | + display: table; | ||
| 318 | +} | ||
| 319 | + | ||
| 320 | +.note-editor .note-editing-area { | ||
| 321 | + position: relative; | ||
| 322 | +} | ||
| 323 | + | ||
| 324 | +.note-editor .note-editing-area .note-editable { | ||
| 325 | + outline: none; | ||
| 326 | +} | ||
| 327 | + | ||
| 328 | +.note-editor .note-editing-area .note-editable sup { | ||
| 329 | + vertical-align: super; | ||
| 330 | +} | ||
| 331 | + | ||
| 332 | +.note-editor .note-editing-area .note-editable sub { | ||
| 333 | + vertical-align: sub; | ||
| 334 | +} | ||
| 335 | + | ||
| 336 | +.note-editor .note-editing-area .note-editable img.note-float-left { | ||
| 337 | + margin-right: 10px; | ||
| 338 | +} | ||
| 339 | + | ||
| 340 | +.note-editor .note-editing-area .note-editable img.note-float-right { | ||
| 341 | + margin-left: 10px; | ||
| 342 | +} | ||
| 343 | + | ||
| 344 | +/* Frame mode layout | ||
| 345 | + ------------------------------------------ */ | ||
| 346 | +.note-editor.note-frame, | ||
| 347 | +.note-editor.note-airframe { | ||
| 348 | + border: 1px solid #00000032; | ||
| 349 | +} | ||
| 350 | + | ||
| 351 | +.note-editor.note-frame.codeview .note-editing-area .note-editable, | ||
| 352 | +.note-editor.note-airframe.codeview .note-editing-area .note-editable { | ||
| 353 | + display: none; | ||
| 354 | +} | ||
| 355 | + | ||
| 356 | +.note-editor.note-frame.codeview .note-editing-area .note-codable, | ||
| 357 | +.note-editor.note-airframe.codeview .note-editing-area .note-codable { | ||
| 358 | + display: block; | ||
| 359 | +} | ||
| 360 | + | ||
| 361 | +.note-editor.note-frame .note-editing-area, | ||
| 362 | +.note-editor.note-airframe .note-editing-area { | ||
| 363 | + overflow: hidden; | ||
| 364 | +} | ||
| 365 | + | ||
| 366 | +.note-editor.note-frame .note-editing-area .note-editable, | ||
| 367 | +.note-editor.note-airframe .note-editing-area .note-editable { | ||
| 368 | + padding: 10px; | ||
| 369 | + overflow: auto; | ||
| 370 | + word-wrap: break-word; | ||
| 371 | +} | ||
| 372 | + | ||
| 373 | +.note-editor.note-frame .note-editing-area .note-editable[contenteditable=false], | ||
| 374 | +.note-editor.note-airframe .note-editing-area .note-editable[contenteditable=false] { | ||
| 375 | + background-color: #8080801d; | ||
| 376 | +} | ||
| 377 | + | ||
| 378 | +.note-editor.note-frame .note-editing-area .note-codable, | ||
| 379 | +.note-editor.note-airframe .note-editing-area .note-codable { | ||
| 380 | + display: none; | ||
| 381 | + width: 100%; | ||
| 382 | + padding: 10px; | ||
| 383 | + border: none; | ||
| 384 | + box-shadow: none; | ||
| 385 | + font-family: Menlo, Monaco, monospace, sans-serif; | ||
| 386 | + font-size: 14px; | ||
| 387 | + color: #ccc; | ||
| 388 | + background-color: #222; | ||
| 389 | + resize: none; | ||
| 390 | + outline: none; | ||
| 391 | + -ms-box-sizing: border-box; | ||
| 392 | + box-sizing: border-box; | ||
| 393 | + border-radius: 0; | ||
| 394 | + margin-bottom: 0; | ||
| 395 | +} | ||
| 396 | + | ||
| 397 | +.note-editor.note-frame.fullscreen, | ||
| 398 | +.note-editor.note-airframe.fullscreen { | ||
| 399 | + position: fixed; | ||
| 400 | + top: 0; | ||
| 401 | + left: 0; | ||
| 402 | + width: 100% !important; | ||
| 403 | + z-index: 1050; | ||
| 404 | +} | ||
| 405 | + | ||
| 406 | +.note-editor.note-frame.fullscreen .note-resizebar, | ||
| 407 | +.note-editor.note-airframe.fullscreen .note-resizebar { | ||
| 408 | + display: none; | ||
| 409 | +} | ||
| 410 | + | ||
| 411 | +.note-editor.note-frame .note-status-output, | ||
| 412 | +.note-editor.note-airframe .note-status-output { | ||
| 413 | + display: block; | ||
| 414 | + width: 100%; | ||
| 415 | + font-size: 14px; | ||
| 416 | + line-height: 1.42857143; | ||
| 417 | + height: 20px; | ||
| 418 | + margin-bottom: 0; | ||
| 419 | + color: #000; | ||
| 420 | + border: 0; | ||
| 421 | + border-top: 1px solid #e2e2e2; | ||
| 422 | +} | ||
| 423 | + | ||
| 424 | +.note-editor.note-frame .note-status-output:empty, | ||
| 425 | +.note-editor.note-airframe .note-status-output:empty { | ||
| 426 | + height: 0; | ||
| 427 | + border-top: 0 solid transparent; | ||
| 428 | +} | ||
| 429 | + | ||
| 430 | +.note-editor.note-frame .note-status-output .pull-right, | ||
| 431 | +.note-editor.note-airframe .note-status-output .pull-right { | ||
| 432 | + float: right !important; | ||
| 433 | +} | ||
| 434 | + | ||
| 435 | +.note-editor.note-frame .note-status-output .text-muted, | ||
| 436 | +.note-editor.note-airframe .note-status-output .text-muted { | ||
| 437 | + color: #777; | ||
| 438 | +} | ||
| 439 | + | ||
| 440 | +.note-editor.note-frame .note-status-output .text-primary, | ||
| 441 | +.note-editor.note-airframe .note-status-output .text-primary { | ||
| 442 | + color: #286090; | ||
| 443 | +} | ||
| 444 | + | ||
| 445 | +.note-editor.note-frame .note-status-output .text-success, | ||
| 446 | +.note-editor.note-airframe .note-status-output .text-success { | ||
| 447 | + color: #3c763d; | ||
| 448 | +} | ||
| 449 | + | ||
| 450 | +.note-editor.note-frame .note-status-output .text-info, | ||
| 451 | +.note-editor.note-airframe .note-status-output .text-info { | ||
| 452 | + color: #31708f; | ||
| 453 | +} | ||
| 454 | + | ||
| 455 | +.note-editor.note-frame .note-status-output .text-warning, | ||
| 456 | +.note-editor.note-airframe .note-status-output .text-warning { | ||
| 457 | + color: #8a6d3b; | ||
| 458 | +} | ||
| 459 | + | ||
| 460 | +.note-editor.note-frame .note-status-output .text-danger, | ||
| 461 | +.note-editor.note-airframe .note-status-output .text-danger { | ||
| 462 | + color: #a94442; | ||
| 463 | +} | ||
| 464 | + | ||
| 465 | +.note-editor.note-frame .note-status-output .alert, | ||
| 466 | +.note-editor.note-airframe .note-status-output .alert { | ||
| 467 | + margin: -7px 0 0 0; | ||
| 468 | + padding: 7px 10px 2px 10px; | ||
| 469 | + border-radius: 0; | ||
| 470 | + color: #000; | ||
| 471 | + background-color: #f5f5f5; | ||
| 472 | +} | ||
| 473 | + | ||
| 474 | +.note-editor.note-frame .note-status-output .alert .note-icon, | ||
| 475 | +.note-editor.note-airframe .note-status-output .alert .note-icon { | ||
| 476 | + margin-right: 5px; | ||
| 477 | +} | ||
| 478 | + | ||
| 479 | +.note-editor.note-frame .note-status-output .alert-success, | ||
| 480 | +.note-editor.note-airframe .note-status-output .alert-success { | ||
| 481 | + color: #3c763d !important; | ||
| 482 | + background-color: #dff0d8 !important; | ||
| 483 | +} | ||
| 484 | + | ||
| 485 | +.note-editor.note-frame .note-status-output .alert-info, | ||
| 486 | +.note-editor.note-airframe .note-status-output .alert-info { | ||
| 487 | + color: #31708f !important; | ||
| 488 | + background-color: #d9edf7 !important; | ||
| 489 | +} | ||
| 490 | + | ||
| 491 | +.note-editor.note-frame .note-status-output .alert-warning, | ||
| 492 | +.note-editor.note-airframe .note-status-output .alert-warning { | ||
| 493 | + color: #8a6d3b !important; | ||
| 494 | + background-color: #fcf8e3 !important; | ||
| 495 | +} | ||
| 496 | + | ||
| 497 | +.note-editor.note-frame .note-status-output .alert-danger, | ||
| 498 | +.note-editor.note-airframe .note-status-output .alert-danger { | ||
| 499 | + color: #a94442 !important; | ||
| 500 | + background-color: #f2dede !important; | ||
| 501 | +} | ||
| 502 | + | ||
| 503 | +.note-editor.note-frame .note-statusbar, | ||
| 504 | +.note-editor.note-airframe .note-statusbar { | ||
| 505 | + background-color: #8080801d; | ||
| 506 | + border-bottom-left-radius: 4px; | ||
| 507 | + border-bottom-right-radius: 4px; | ||
| 508 | + border-top: 1px solid #00000032; | ||
| 509 | +} | ||
| 510 | + | ||
| 511 | +.note-editor.note-frame .note-statusbar .note-resizebar, | ||
| 512 | +.note-editor.note-airframe .note-statusbar .note-resizebar { | ||
| 513 | + padding-top: 1px; | ||
| 514 | + height: 9px; | ||
| 515 | + width: 100%; | ||
| 516 | + cursor: ns-resize; | ||
| 517 | +} | ||
| 518 | + | ||
| 519 | +.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar, | ||
| 520 | +.note-editor.note-airframe .note-statusbar .note-resizebar .note-icon-bar { | ||
| 521 | + width: 20px; | ||
| 522 | + margin: 1px auto; | ||
| 523 | + border-top: 1px solid #00000032; | ||
| 524 | +} | ||
| 525 | + | ||
| 526 | +.note-editor.note-frame .note-statusbar.locked .note-resizebar, | ||
| 527 | +.note-editor.note-airframe .note-statusbar.locked .note-resizebar { | ||
| 528 | + cursor: default; | ||
| 529 | +} | ||
| 530 | + | ||
| 531 | +.note-editor.note-frame .note-statusbar.locked .note-resizebar .note-icon-bar, | ||
| 532 | +.note-editor.note-airframe .note-statusbar.locked .note-resizebar .note-icon-bar { | ||
| 533 | + display: none; | ||
| 534 | +} | ||
| 535 | + | ||
| 536 | +.note-editor.note-frame .note-placeholder, | ||
| 537 | +.note-editor.note-airframe .note-placeholder { | ||
| 538 | + padding: 10px; | ||
| 539 | +} | ||
| 540 | + | ||
| 541 | +.note-editor.note-airframe { | ||
| 542 | + border: 0; | ||
| 543 | +} | ||
| 544 | + | ||
| 545 | +.note-editor.note-airframe .note-editing-area .note-editable { | ||
| 546 | + padding: 0; | ||
| 547 | +} | ||
| 548 | + | ||
| 549 | +/* Popover | ||
| 550 | + ------------------------------------------ */ | ||
| 551 | +.note-popover.popover { | ||
| 552 | + display: none; | ||
| 553 | + max-width: none; | ||
| 554 | +} | ||
| 555 | + | ||
| 556 | +.note-popover.popover .popover-content a { | ||
| 557 | + display: inline-block; | ||
| 558 | + max-width: 200px; | ||
| 559 | + overflow: hidden; | ||
| 560 | + text-overflow: ellipsis; | ||
| 561 | + white-space: nowrap; | ||
| 562 | + vertical-align: middle; | ||
| 563 | +} | ||
| 564 | + | ||
| 565 | +.note-popover.popover .arrow { | ||
| 566 | + left: 20px !important; | ||
| 567 | +} | ||
| 568 | + | ||
| 569 | +/* Popover and Toolbar (Button container) | ||
| 570 | + ------------------------------------------ */ | ||
| 571 | +.note-toolbar { | ||
| 572 | + position: relative; | ||
| 573 | +} | ||
| 574 | + | ||
| 575 | +.note-popover .popover-content, .note-editor .note-toolbar { | ||
| 576 | + margin: 0; | ||
| 577 | + padding: 0 0 5px 5px; | ||
| 578 | +} | ||
| 579 | + | ||
| 580 | +.note-popover .popover-content > .note-btn-group, .note-editor .note-toolbar > .note-btn-group { | ||
| 581 | + margin-top: 5px; | ||
| 582 | + margin-left: 0; | ||
| 583 | + margin-right: 5px; | ||
| 584 | +} | ||
| 585 | + | ||
| 586 | +.note-popover .popover-content > .note-btn-group, .note-editor .note-toolbar > .note-btn-group .note-btn { | ||
| 587 | + background-color: #fff; | ||
| 588 | +} | ||
| 589 | + | ||
| 590 | +.note-popover .popover-content .note-btn-group .note-table, .note-editor .note-toolbar .note-btn-group .note-table { | ||
| 591 | + min-width: 0; | ||
| 592 | + padding: 5px; | ||
| 593 | +} | ||
| 594 | + | ||
| 595 | +.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker, .note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker { | ||
| 596 | + font-size: 18px; | ||
| 597 | +} | ||
| 598 | + | ||
| 599 | +.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher, .note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher { | ||
| 600 | + position: absolute !important; | ||
| 601 | + z-index: 3; | ||
| 602 | + width: 10em; | ||
| 603 | + height: 10em; | ||
| 604 | + cursor: pointer; | ||
| 605 | +} | ||
| 606 | + | ||
| 607 | +.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted, .note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted { | ||
| 608 | + position: relative !important; | ||
| 609 | + z-index: 1; | ||
| 610 | + width: 5em; | ||
| 611 | + height: 5em; | ||
| 612 | + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat; | ||
| 613 | +} | ||
| 614 | + | ||
| 615 | +.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted, .note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted { | ||
| 616 | + position: absolute !important; | ||
| 617 | + z-index: 2; | ||
| 618 | + width: 1em; | ||
| 619 | + height: 1em; | ||
| 620 | + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat; | ||
| 621 | +} | ||
| 622 | + | ||
| 623 | +.note-popover .popover-content .note-style .dropdown-style blockquote, .note-popover .popover-content .note-style .dropdown-style pre, .note-editor .note-toolbar .note-style .dropdown-style blockquote, .note-editor .note-toolbar .note-style .dropdown-style pre { | ||
| 624 | + margin: 0; | ||
| 625 | + padding: 5px 10px; | ||
| 626 | +} | ||
| 627 | + | ||
| 628 | +.note-popover .popover-content .note-style .dropdown-style h1, .note-popover .popover-content .note-style .dropdown-style h2, .note-popover .popover-content .note-style .dropdown-style h3, .note-popover .popover-content .note-style .dropdown-style h4, .note-popover .popover-content .note-style .dropdown-style h5, .note-popover .popover-content .note-style .dropdown-style h6, .note-popover .popover-content .note-style .dropdown-style p, .note-editor .note-toolbar .note-style .dropdown-style h1, .note-editor .note-toolbar .note-style .dropdown-style h2, .note-editor .note-toolbar .note-style .dropdown-style h3, .note-editor .note-toolbar .note-style .dropdown-style h4, .note-editor .note-toolbar .note-style .dropdown-style h5, .note-editor .note-toolbar .note-style .dropdown-style h6, .note-editor .note-toolbar .note-style .dropdown-style p { | ||
| 629 | + margin: 0; | ||
| 630 | + padding: 0; | ||
| 631 | +} | ||
| 632 | + | ||
| 633 | +.note-popover .popover-content .note-color-all .note-dropdown-menu, .note-editor .note-toolbar .note-color-all .note-dropdown-menu { | ||
| 634 | + min-width: 337px; | ||
| 635 | +} | ||
| 636 | + | ||
| 637 | +.note-popover .popover-content .note-color .dropdown-toggle, .note-editor .note-toolbar .note-color .dropdown-toggle { | ||
| 638 | + width: 20px; | ||
| 639 | + padding-left: 5px; | ||
| 640 | +} | ||
| 641 | + | ||
| 642 | +.note-popover .popover-content .note-color .note-dropdown-menu .note-palette, .note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette { | ||
| 643 | + display: inline-block; | ||
| 644 | + margin: 0; | ||
| 645 | + width: 160px; | ||
| 646 | +} | ||
| 647 | + | ||
| 648 | +.note-popover .popover-content .note-color .note-dropdown-menu .note-palette:first-child, .note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette:first-child { | ||
| 649 | + margin: 0 5px; | ||
| 650 | +} | ||
| 651 | + | ||
| 652 | +.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-palette-title, .note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-palette-title { | ||
| 653 | + font-size: 12px; | ||
| 654 | + margin: 2px 7px; | ||
| 655 | + text-align: center; | ||
| 656 | + border-bottom: 1px solid #eee; | ||
| 657 | +} | ||
| 658 | + | ||
| 659 | +.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset, | ||
| 660 | +.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select, .note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset, | ||
| 661 | +.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select { | ||
| 662 | + font-size: 11px; | ||
| 663 | + margin: 3px; | ||
| 664 | + padding: 0 3px; | ||
| 665 | + cursor: pointer; | ||
| 666 | + width: 100%; | ||
| 667 | + border-radius: 5px; | ||
| 668 | +} | ||
| 669 | + | ||
| 670 | +.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset:hover, | ||
| 671 | +.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select:hover, .note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset:hover, | ||
| 672 | +.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select:hover { | ||
| 673 | + background: #eee; | ||
| 674 | +} | ||
| 675 | + | ||
| 676 | +.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-row, .note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-row { | ||
| 677 | + height: 20px; | ||
| 678 | +} | ||
| 679 | + | ||
| 680 | +.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select-btn, .note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select-btn { | ||
| 681 | + display: none; | ||
| 682 | +} | ||
| 683 | + | ||
| 684 | +.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-holder-custom .note-color-btn, .note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-holder-custom .note-color-btn { | ||
| 685 | + border: 1px solid #eee; | ||
| 686 | +} | ||
| 687 | + | ||
| 688 | +.note-popover .popover-content .note-para .note-dropdown-menu, .note-editor .note-toolbar .note-para .note-dropdown-menu { | ||
| 689 | + min-width: 228px; | ||
| 690 | + padding: 5px; | ||
| 691 | +} | ||
| 692 | + | ||
| 693 | +.note-popover .popover-content .note-para .note-dropdown-menu > div + div, .note-editor .note-toolbar .note-para .note-dropdown-menu > div + div { | ||
| 694 | + margin-left: 5px; | ||
| 695 | +} | ||
| 696 | + | ||
| 697 | +.note-popover .popover-content .note-dropdown-menu, .note-editor .note-toolbar .note-dropdown-menu { | ||
| 698 | + min-width: 160px; | ||
| 699 | +} | ||
| 700 | + | ||
| 701 | +.note-popover .popover-content .note-dropdown-menu.right, .note-editor .note-toolbar .note-dropdown-menu.right { | ||
| 702 | + right: 0; | ||
| 703 | + left: auto; | ||
| 704 | +} | ||
| 705 | + | ||
| 706 | +.note-popover .popover-content .note-dropdown-menu.right::before, .note-editor .note-toolbar .note-dropdown-menu.right::before { | ||
| 707 | + right: 9px; | ||
| 708 | + left: auto !important; | ||
| 709 | +} | ||
| 710 | + | ||
| 711 | +.note-popover .popover-content .note-dropdown-menu.right::after, .note-editor .note-toolbar .note-dropdown-menu.right::after { | ||
| 712 | + right: 10px; | ||
| 713 | + left: auto !important; | ||
| 714 | +} | ||
| 715 | + | ||
| 716 | +.note-popover .popover-content .note-dropdown-menu.note-check a i, .note-editor .note-toolbar .note-dropdown-menu.note-check a i { | ||
| 717 | + color: deepskyblue; | ||
| 718 | + visibility: hidden; | ||
| 719 | +} | ||
| 720 | + | ||
| 721 | +.note-popover .popover-content .note-dropdown-menu.note-check a.checked i, .note-editor .note-toolbar .note-dropdown-menu.note-check a.checked i { | ||
| 722 | + visibility: visible; | ||
| 723 | +} | ||
| 724 | + | ||
| 725 | +.note-popover .popover-content .note-fontsize-10, .note-editor .note-toolbar .note-fontsize-10 { | ||
| 726 | + font-size: 10px; | ||
| 727 | +} | ||
| 728 | + | ||
| 729 | +.note-popover .popover-content .note-color-palette, .note-editor .note-toolbar .note-color-palette { | ||
| 730 | + line-height: 1; | ||
| 731 | +} | ||
| 732 | + | ||
| 733 | +.note-popover .popover-content .note-color-palette div .note-color-btn, .note-editor .note-toolbar .note-color-palette div .note-color-btn { | ||
| 734 | + width: 20px; | ||
| 735 | + height: 20px; | ||
| 736 | + padding: 0; | ||
| 737 | + margin: 0; | ||
| 738 | + border: 0; | ||
| 739 | + border-radius: 0; | ||
| 740 | +} | ||
| 741 | + | ||
| 742 | +.note-popover .popover-content .note-color-palette div .note-color-btn:hover, .note-editor .note-toolbar .note-color-palette div .note-color-btn:hover { | ||
| 743 | + transform: scale(1.2); | ||
| 744 | + transition: all 0.2s; | ||
| 745 | +} | ||
| 746 | + | ||
| 747 | +/* Dialog | ||
| 748 | + ------------------------------------------ */ | ||
| 749 | +.note-modal .modal-dialog { | ||
| 750 | + outline: 0; | ||
| 751 | + border-radius: 5px; | ||
| 752 | + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); | ||
| 753 | +} | ||
| 754 | + | ||
| 755 | +.note-modal .form-group { | ||
| 756 | + margin-left: 0; | ||
| 757 | + margin-right: 0; | ||
| 758 | +} | ||
| 759 | + | ||
| 760 | +.note-modal .note-modal-form { | ||
| 761 | + margin: 0; | ||
| 762 | +} | ||
| 763 | + | ||
| 764 | +.note-modal .note-image-dialog .note-dropzone { | ||
| 765 | + min-height: 100px; | ||
| 766 | + font-size: 30px; | ||
| 767 | + line-height: 4; | ||
| 768 | + color: lightgray; | ||
| 769 | + text-align: center; | ||
| 770 | + border: 4px dashed lightgray; | ||
| 771 | + margin-bottom: 10px; | ||
| 772 | +} | ||
| 773 | + | ||
| 774 | +@-moz-document url-prefix() { | ||
| 775 | + .note-modal .note-image-input { | ||
| 776 | + height: auto; | ||
| 777 | + } | ||
| 778 | +} | ||
| 779 | + | ||
| 780 | +/* Placeholder | ||
| 781 | + ------------------------------------------ */ | ||
| 782 | +.note-placeholder { | ||
| 783 | + position: absolute; | ||
| 784 | + display: none; | ||
| 785 | + color: gray; | ||
| 786 | +} | ||
| 787 | + | ||
| 788 | +/* Handle | ||
| 789 | + ------------------------------------------ */ | ||
| 790 | +.note-handle .note-control-selection { | ||
| 791 | + position: absolute; | ||
| 792 | + display: none; | ||
| 793 | + border: 1px solid #000; | ||
| 794 | +} | ||
| 795 | + | ||
| 796 | +.note-handle .note-control-selection > div { | ||
| 797 | + position: absolute; | ||
| 798 | +} | ||
| 799 | + | ||
| 800 | +.note-handle .note-control-selection .note-control-selection-bg { | ||
| 801 | + width: 100%; | ||
| 802 | + height: 100%; | ||
| 803 | + background-color: #000; | ||
| 804 | + -webkit-opacity: 0.3; | ||
| 805 | + -khtml-opacity: 0.3; | ||
| 806 | + -moz-opacity: 0.3; | ||
| 807 | + opacity: 0.3; | ||
| 808 | + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=30); | ||
| 809 | + filter: alpha(opacity=30); | ||
| 810 | +} | ||
| 811 | + | ||
| 812 | +.note-handle .note-control-selection .note-control-handle, .note-handle .note-control-selection .note-control-sizing, .note-handle .note-control-selection .note-control-holder { | ||
| 813 | + width: 7px; | ||
| 814 | + height: 7px; | ||
| 815 | + border: 1px solid #000; | ||
| 816 | +} | ||
| 817 | + | ||
| 818 | +.note-handle .note-control-selection .note-control-sizing { | ||
| 819 | + background-color: #000; | ||
| 820 | +} | ||
| 821 | + | ||
| 822 | +.note-handle .note-control-selection .note-control-nw { | ||
| 823 | + top: -5px; | ||
| 824 | + left: -5px; | ||
| 825 | + border-right: none; | ||
| 826 | + border-bottom: none; | ||
| 827 | +} | ||
| 828 | + | ||
| 829 | +.note-handle .note-control-selection .note-control-ne { | ||
| 830 | + top: -5px; | ||
| 831 | + right: -5px; | ||
| 832 | + border-bottom: none; | ||
| 833 | + border-left: none; | ||
| 834 | +} | ||
| 835 | + | ||
| 836 | +.note-handle .note-control-selection .note-control-sw { | ||
| 837 | + bottom: -5px; | ||
| 838 | + left: -5px; | ||
| 839 | + border-top: none; | ||
| 840 | + border-right: none; | ||
| 841 | +} | ||
| 842 | + | ||
| 843 | +.note-handle .note-control-selection .note-control-se { | ||
| 844 | + right: -5px; | ||
| 845 | + bottom: -5px; | ||
| 846 | + cursor: se-resize; | ||
| 847 | +} | ||
| 848 | + | ||
| 849 | +.note-handle .note-control-selection .note-control-se.note-control-holder { | ||
| 850 | + cursor: default; | ||
| 851 | + border-top: none; | ||
| 852 | + border-left: none; | ||
| 853 | +} | ||
| 854 | + | ||
| 855 | +.note-handle .note-control-selection .note-control-selection-info { | ||
| 856 | + right: 0; | ||
| 857 | + bottom: 0; | ||
| 858 | + padding: 5px; | ||
| 859 | + margin: 5px; | ||
| 860 | + color: #fff; | ||
| 861 | + background-color: #000; | ||
| 862 | + font-size: 12px; | ||
| 863 | + border-radius: 5px; | ||
| 864 | + -webkit-opacity: 0.7; | ||
| 865 | + -khtml-opacity: 0.7; | ||
| 866 | + -moz-opacity: 0.7; | ||
| 867 | + opacity: 0.7; | ||
| 868 | + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70); | ||
| 869 | + filter: alpha(opacity=70); | ||
| 870 | +} | ||
| 871 | + | ||
| 872 | +.note-hint-popover { | ||
| 873 | + min-width: 100px; | ||
| 874 | + padding: 2px; | ||
| 875 | +} | ||
| 876 | + | ||
| 877 | +.note-hint-popover .popover-content { | ||
| 878 | + padding: 3px; | ||
| 879 | + max-height: 150px; | ||
| 880 | + overflow: auto; | ||
| 881 | +} | ||
| 882 | + | ||
| 883 | +.note-hint-popover .popover-content .note-hint-group .note-hint-item { | ||
| 884 | + display: block !important; | ||
| 885 | + padding: 3px; | ||
| 886 | +} | ||
| 887 | + | ||
| 888 | +.note-hint-popover .popover-content .note-hint-group .note-hint-item.active, .note-hint-popover .popover-content .note-hint-group .note-hint-item:hover { | ||
| 889 | + display: block; | ||
| 890 | + clear: both; | ||
| 891 | + font-weight: 400; | ||
| 892 | + line-height: 1.4; | ||
| 893 | + color: white; | ||
| 894 | + white-space: nowrap; | ||
| 895 | + text-decoration: none; | ||
| 896 | + background-color: #428bca; | ||
| 897 | + outline: 0; | ||
| 898 | + cursor: pointer; | ||
| 899 | +} | ||
| 900 | + | ||
| 901 | +/* Handle | ||
| 902 | + ------------------------------------------ */ | ||
| 903 | +html .note-fullscreen-body, body .note-fullscreen-body { | ||
| 904 | + overflow: hidden !important; | ||
| 905 | +} | ||
| 906 | + | ||
| 907 | +body.darktheme .note-popover .popover-content > .note-btn-group, body.darktheme .note-editor .note-toolbar > .note-btn-group .note-btn { | ||
| 908 | + background: #262626; | ||
| 909 | + color: #ccc; | ||
| 910 | +} |
| 1 | +/*! | ||
| 2 | + * | ||
| 3 | + * Super simple WYSIWYG editor v0.8.20 | ||
| 4 | + * https://summernote.org | ||
| 5 | + * | ||
| 6 | + * | ||
| 7 | + * Copyright 2013- Alan Hong and contributors | ||
| 8 | + * Summernote may be freely distributed under the MIT license. | ||
| 9 | + * | ||
| 10 | + * Date: 2021-10-14T21:15Z | ||
| 11 | + * | ||
| 12 | + */@font-face{font-family:"summernote";font-style:normal;font-weight:400;font-display:auto;src:url("../font/summernote.eot?#iefix") format("embedded-opentype"),url("../font/summernote.woff2") format("woff2"),url("../font/summernote.woff") format("woff"),url("../font/summernote.ttf") format("truetype")}[class^=note-icon]:before,[class*=" note-icon"]:before{display:inline-block;font-family:"summernote";font-style:normal;font-size:inherit;text-decoration:inherit;text-rendering:auto;text-transform:none;vertical-align:middle;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;speak:none}.note-icon-fw{text-align:center;width:1.25em}.note-icon-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.note-icon-pull-left{float:left}.note-icon-pull-right{float:right}.note-icon.note-icon-pull-left{margin-right:.3em}.note-icon.note-icon-pull-right{margin-left:.3em}.note-icon-align::before{content:"\ea01"}.note-icon-align-center::before{content:"\ea02"}.note-icon-align-indent::before{content:"\ea03"}.note-icon-align-justify::before{content:"\ea04"}.note-icon-align-left::before{content:"\ea05"}.note-icon-align-outdent::before{content:"\ea06"}.note-icon-align-right::before{content:"\ea07"}.note-icon-arrow-circle-down::before{content:"\ea08"}.note-icon-arrow-circle-left::before{content:"\ea09"}.note-icon-arrow-circle-right::before{content:"\ea0a"}.note-icon-arrow-circle-up::before{content:"\ea0b"}.note-icon-arrows-alt::before{content:"\ea0c"}.note-icon-arrows-h::before{content:"\ea0d"}.note-icon-arrows-v::before{content:"\ea0e"}.note-icon-bold::before{content:"\ea0f"}.note-icon-caret::before{content:"\ea10"}.note-icon-chain-broken::before{content:"\ea11"}.note-icon-circle::before{content:"\ea12"}.note-icon-close::before{content:"\ea13"}.note-icon-code::before{content:"\ea14"}.note-icon-col-after::before{content:"\ea15"}.note-icon-col-before::before{content:"\ea16"}.note-icon-col-remove::before{content:"\ea17"}.note-icon-eraser::before{content:"\ea18"}.note-icon-float-left::before{content:"\ea19"}.note-icon-float-none::before{content:"\ea1a"}.note-icon-float-right::before{content:"\ea1b"}.note-icon-font::before{content:"\ea1c"}.note-icon-frame::before{content:"\ea1d"}.note-icon-italic::before{content:"\ea1e"}.note-icon-link::before{content:"\ea1f"}.note-icon-magic::before{content:"\ea20"}.note-icon-menu-check::before{content:"\ea21"}.note-icon-minus::before{content:"\ea22"}.note-icon-orderedlist::before{content:"\ea23"}.note-icon-pencil::before{content:"\ea24"}.note-icon-picture::before{content:"\ea25"}.note-icon-question::before{content:"\ea26"}.note-icon-redo::before{content:"\ea27"}.note-icon-rollback::before{content:"\ea28"}.note-icon-row-above::before{content:"\ea29"}.note-icon-row-below::before{content:"\ea2a"}.note-icon-row-remove::before{content:"\ea2b"}.note-icon-special-character::before{content:"\ea2c"}.note-icon-square::before{content:"\ea2d"}.note-icon-strikethrough::before{content:"\ea2e"}.note-icon-subscript::before{content:"\ea2f"}.note-icon-summernote::before{content:"\ea30"}.note-icon-superscript::before{content:"\ea31"}.note-icon-table::before{content:"\ea32"}.note-icon-text-height::before{content:"\ea33"}.note-icon-trash::before{content:"\ea34"}.note-icon-underline::before{content:"\ea35"}.note-icon-undo::before{content:"\ea36"}.note-icon-unorderedlist::before{content:"\ea37"}.note-icon-video::before{content:"\ea38"}.note-editor{position:relative}.note-editor .note-dropzone{position:absolute;display:none;z-index:100;color:lightskyblue;background-color:#fff;opacity:.95}.note-editor .note-dropzone .note-dropzone-message{display:table-cell;vertical-align:middle;text-align:center;font-size:28px;font-weight:700}.note-editor .note-dropzone.hover{color:#098ddf}.note-editor.dragover .note-dropzone{display:table}.note-editor .note-editing-area{position:relative}.note-editor .note-editing-area .note-editable{outline:0}.note-editor .note-editing-area .note-editable sup{vertical-align:super}.note-editor .note-editing-area .note-editable sub{vertical-align:sub}.note-editor .note-editing-area .note-editable img.note-float-left{margin-right:10px}.note-editor .note-editing-area .note-editable img.note-float-right{margin-left:10px}.note-editor.note-frame,.note-editor.note-airframe{border:1px solid #00000032}.note-editor.note-frame.codeview .note-editing-area .note-editable,.note-editor.note-airframe.codeview .note-editing-area .note-editable{display:none}.note-editor.note-frame.codeview .note-editing-area .note-codable,.note-editor.note-airframe.codeview .note-editing-area .note-codable{display:block}.note-editor.note-frame .note-editing-area,.note-editor.note-airframe .note-editing-area{overflow:hidden}.note-editor.note-frame .note-editing-area .note-editable,.note-editor.note-airframe .note-editing-area .note-editable{padding:10px;overflow:auto;word-wrap:break-word}.note-editor.note-frame .note-editing-area .note-editable[contenteditable=false],.note-editor.note-airframe .note-editing-area .note-editable[contenteditable=false]{background-color:#8080801d}.note-editor.note-frame .note-editing-area .note-codable,.note-editor.note-airframe .note-editing-area .note-codable{display:none;width:100%;padding:10px;border:0;box-shadow:none;font-family:Menlo,Monaco,monospace,sans-serif;font-size:14px;color:#ccc;background-color:#222;resize:none;outline:0;-ms-box-sizing:border-box;box-sizing:border-box;border-radius:0;margin-bottom:0}.note-editor.note-frame.fullscreen,.note-editor.note-airframe.fullscreen{position:fixed;top:0;left:0;width:100% !important;z-index:1050}.note-editor.note-frame.fullscreen .note-resizebar,.note-editor.note-airframe.fullscreen .note-resizebar{display:none}.note-editor.note-frame .note-status-output,.note-editor.note-airframe .note-status-output{display:block;width:100%;font-size:14px;line-height:1.42857143;height:20px;margin-bottom:0;color:#000;border:0;border-top:1px solid #e2e2e2}.note-editor.note-frame .note-status-output:empty,.note-editor.note-airframe .note-status-output:empty{height:0;border-top:0 solid transparent}.note-editor.note-frame .note-status-output .pull-right,.note-editor.note-airframe .note-status-output .pull-right{float:right !important}.note-editor.note-frame .note-status-output .text-muted,.note-editor.note-airframe .note-status-output .text-muted{color:#777}.note-editor.note-frame .note-status-output .text-primary,.note-editor.note-airframe .note-status-output .text-primary{color:#286090}.note-editor.note-frame .note-status-output .text-success,.note-editor.note-airframe .note-status-output .text-success{color:#3c763d}.note-editor.note-frame .note-status-output .text-info,.note-editor.note-airframe .note-status-output .text-info{color:#31708f}.note-editor.note-frame .note-status-output .text-warning,.note-editor.note-airframe .note-status-output .text-warning{color:#8a6d3b}.note-editor.note-frame .note-status-output .text-danger,.note-editor.note-airframe .note-status-output .text-danger{color:#a94442}.note-editor.note-frame .note-status-output .alert,.note-editor.note-airframe .note-status-output .alert{margin:-7px 0 0 0;padding:7px 10px 2px 10px;border-radius:0;color:#000;background-color:#f5f5f5}.note-editor.note-frame .note-status-output .alert .note-icon,.note-editor.note-airframe .note-status-output .alert .note-icon{margin-right:5px}.note-editor.note-frame .note-status-output .alert-success,.note-editor.note-airframe .note-status-output .alert-success{color:#3c763d !important;background-color:#dff0d8 !important}.note-editor.note-frame .note-status-output .alert-info,.note-editor.note-airframe .note-status-output .alert-info{color:#31708f !important;background-color:#d9edf7 !important}.note-editor.note-frame .note-status-output .alert-warning,.note-editor.note-airframe .note-status-output .alert-warning{color:#8a6d3b !important;background-color:#fcf8e3 !important}.note-editor.note-frame .note-status-output .alert-danger,.note-editor.note-airframe .note-status-output .alert-danger{color:#a94442 !important;background-color:#f2dede !important}.note-editor.note-frame .note-statusbar,.note-editor.note-airframe .note-statusbar{background-color:#8080801d;border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-top:1px solid #00000032}.note-editor.note-frame .note-statusbar .note-resizebar,.note-editor.note-airframe .note-statusbar .note-resizebar{padding-top:1px;height:9px;width:100%;cursor:ns-resize}.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar,.note-editor.note-airframe .note-statusbar .note-resizebar .note-icon-bar{width:20px;margin:1px auto;border-top:1px solid #00000032}.note-editor.note-frame .note-statusbar.locked .note-resizebar,.note-editor.note-airframe .note-statusbar.locked .note-resizebar{cursor:default}.note-editor.note-frame .note-statusbar.locked .note-resizebar .note-icon-bar,.note-editor.note-airframe .note-statusbar.locked .note-resizebar .note-icon-bar{display:none}.note-editor.note-frame .note-placeholder,.note-editor.note-airframe .note-placeholder{padding:10px}.note-editor.note-airframe{border:0}.note-editor.note-airframe .note-editing-area .note-editable{padding:0}.note-popover.popover{display:none;max-width:none}.note-popover.popover .popover-content a{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.note-popover.popover .arrow{left:20px !important}.note-toolbar{position:relative}.note-popover .popover-content,.note-editor .note-toolbar{margin:0;padding:0 0 5px 5px}.note-popover .popover-content>.note-btn-group,.note-editor .note-toolbar>.note-btn-group{margin-top:5px;margin-left:0;margin-right:5px}.note-popover .popover-content>.note-btn-group,.note-editor .note-toolbar>.note-btn-group .note-btn{background-color:#fff}.note-popover .popover-content .note-btn-group .note-table,.note-editor .note-toolbar .note-btn-group .note-table{min-width:0;padding:5px}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker{font-size:18px}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher{position:absolute !important;z-index:3;width:10em;height:10em;cursor:pointer}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted{position:relative !important;z-index:1;width:5em;height:5em;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat}.note-popover .popover-content .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted,.note-editor .note-toolbar .note-btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted{position:absolute !important;z-index:2;width:1em;height:1em;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat}.note-popover .popover-content .note-style .dropdown-style blockquote,.note-popover .popover-content .note-style .dropdown-style pre,.note-editor .note-toolbar .note-style .dropdown-style blockquote,.note-editor .note-toolbar .note-style .dropdown-style pre{margin:0;padding:5px 10px}.note-popover .popover-content .note-style .dropdown-style h1,.note-popover .popover-content .note-style .dropdown-style h2,.note-popover .popover-content .note-style .dropdown-style h3,.note-popover .popover-content .note-style .dropdown-style h4,.note-popover .popover-content .note-style .dropdown-style h5,.note-popover .popover-content .note-style .dropdown-style h6,.note-popover .popover-content .note-style .dropdown-style p,.note-editor .note-toolbar .note-style .dropdown-style h1,.note-editor .note-toolbar .note-style .dropdown-style h2,.note-editor .note-toolbar .note-style .dropdown-style h3,.note-editor .note-toolbar .note-style .dropdown-style h4,.note-editor .note-toolbar .note-style .dropdown-style h5,.note-editor .note-toolbar .note-style .dropdown-style h6,.note-editor .note-toolbar .note-style .dropdown-style p{margin:0;padding:0}.note-popover .popover-content .note-color-all .note-dropdown-menu,.note-editor .note-toolbar .note-color-all .note-dropdown-menu{min-width:337px}.note-popover .popover-content .note-color .dropdown-toggle,.note-editor .note-toolbar .note-color .dropdown-toggle{width:20px;padding-left:5px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette{display:inline-block;margin:0;width:160px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette:first-child,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette:first-child{margin:0 5px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-palette-title,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-palette-title{font-size:12px;margin:2px 7px;text-align:center;border-bottom:1px solid #eee}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset,.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select{font-size:11px;margin:3px;padding:0 3px;cursor:pointer;width:100%;border-radius:5px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-reset:hover,.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select:hover,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-reset:hover,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select:hover{background:#eee}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-row,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-row{height:20px}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-color-select-btn,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-color-select-btn{display:none}.note-popover .popover-content .note-color .note-dropdown-menu .note-palette .note-holder-custom .note-color-btn,.note-editor .note-toolbar .note-color .note-dropdown-menu .note-palette .note-holder-custom .note-color-btn{border:1px solid #eee}.note-popover .popover-content .note-para .note-dropdown-menu,.note-editor .note-toolbar .note-para .note-dropdown-menu{min-width:228px;padding:5px}.note-popover .popover-content .note-para .note-dropdown-menu>div+div,.note-editor .note-toolbar .note-para .note-dropdown-menu>div+div{margin-left:5px}.note-popover .popover-content .note-dropdown-menu,.note-editor .note-toolbar .note-dropdown-menu{min-width:160px}.note-popover .popover-content .note-dropdown-menu.right,.note-editor .note-toolbar .note-dropdown-menu.right{right:0;left:auto}.note-popover .popover-content .note-dropdown-menu.right::before,.note-editor .note-toolbar .note-dropdown-menu.right::before{right:9px;left:auto !important}.note-popover .popover-content .note-dropdown-menu.right::after,.note-editor .note-toolbar .note-dropdown-menu.right::after{right:10px;left:auto !important}.note-popover .popover-content .note-dropdown-menu.note-check a i,.note-editor .note-toolbar .note-dropdown-menu.note-check a i{color:deepskyblue;visibility:hidden}.note-popover .popover-content .note-dropdown-menu.note-check a.checked i,.note-editor .note-toolbar .note-dropdown-menu.note-check a.checked i{visibility:visible}.note-popover .popover-content .note-fontsize-10,.note-editor .note-toolbar .note-fontsize-10{font-size:10px}.note-popover .popover-content .note-color-palette,.note-editor .note-toolbar .note-color-palette{line-height:1}.note-popover .popover-content .note-color-palette div .note-color-btn,.note-editor .note-toolbar .note-color-palette div .note-color-btn{width:20px;height:20px;padding:0;margin:0;border:0;border-radius:0}.note-popover .popover-content .note-color-palette div .note-color-btn:hover,.note-editor .note-toolbar .note-color-palette div .note-color-btn:hover{transform:scale(1.2);transition:all .2s}.note-modal .modal-dialog{outline:0;border-radius:5px;box-shadow:0 3px 9px rgba(0,0,0,0.5)}.note-modal .form-group{margin-left:0;margin-right:0}.note-modal .note-modal-form{margin:0}.note-modal .note-image-dialog .note-dropzone{min-height:100px;font-size:30px;line-height:4;color:lightgray;text-align:center;border:4px dashed lightgray;margin-bottom:10px}@-moz-document url-prefix(){.note-modal .note-image-input{height:auto}}.note-placeholder{position:absolute;display:none;color:gray}.note-handle .note-control-selection{position:absolute;display:none;border:1px solid #000}.note-handle .note-control-selection>div{position:absolute}.note-handle .note-control-selection .note-control-selection-bg{width:100%;height:100%;background-color:#000;-webkit-opacity:.3;-khtml-opacity:.3;-moz-opacity:.3;opacity:.3;-ms-filter:alpha(opacity=30);filter:alpha(opacity=30)}.note-handle .note-control-selection .note-control-handle,.note-handle .note-control-selection .note-control-sizing,.note-handle .note-control-selection .note-control-holder{width:7px;height:7px;border:1px solid #000}.note-handle .note-control-selection .note-control-sizing{background-color:#000}.note-handle .note-control-selection .note-control-nw{top:-5px;left:-5px;border-right:0;border-bottom:0}.note-handle .note-control-selection .note-control-ne{top:-5px;right:-5px;border-bottom:0;border-left:0}.note-handle .note-control-selection .note-control-sw{bottom:-5px;left:-5px;border-top:0;border-right:0}.note-handle .note-control-selection .note-control-se{right:-5px;bottom:-5px;cursor:se-resize}.note-handle .note-control-selection .note-control-se.note-control-holder{cursor:default;border-top:0;border-left:0}.note-handle .note-control-selection .note-control-selection-info{right:0;bottom:0;padding:5px;margin:5px;color:#fff;background-color:#000;font-size:12px;border-radius:5px;-webkit-opacity:.7;-khtml-opacity:.7;-moz-opacity:.7;opacity:.7;-ms-filter:alpha(opacity=70);filter:alpha(opacity=70)}.note-hint-popover{min-width:100px;padding:2px}.note-hint-popover .popover-content{padding:3px;max-height:150px;overflow:auto}.note-hint-popover .popover-content .note-hint-group .note-hint-item{display:block !important;padding:3px}.note-hint-popover .popover-content .note-hint-group .note-hint-item.active,.note-hint-popover .popover-content .note-hint-group .note-hint-item:hover{display:block;clear:both;font-weight:400;line-height:1.4;color:white;white-space:nowrap;text-decoration:none;background-color:#428bca;outline:0;cursor:pointer}html .note-fullscreen-body,body .note-fullscreen-body{overflow:hidden !important}body.darktheme .note-popover .popover-content>.note-btn-group,body.darktheme .note-editor .note-toolbar>.note-btn-group .note-btn{background:#262626;color:#ccc} |
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
此 diff 太大无法显示。
此 diff 太大无法显示。
| 1 | +/*! | ||
| 2 | + * | ||
| 3 | + * Super simple WYSIWYG editor v0.8.20 | ||
| 4 | + * https://summernote.org | ||
| 5 | + * | ||
| 6 | + * | ||
| 7 | + * Copyright 2013- Alan Hong and contributors | ||
| 8 | + * Summernote may be freely distributed under the MIT license. | ||
| 9 | + * | ||
| 10 | + * Date: 2021-10-14T21:15Z | ||
| 11 | + * | ||
| 12 | + */ | ||
| 13 | +(function webpackUniversalModuleDefinition(root, factory) { | ||
| 14 | + if(typeof exports === 'object' && typeof module === 'object') | ||
| 15 | + module.exports = factory(); | ||
| 16 | + else if(typeof define === 'function' && define.amd) | ||
| 17 | + define([], factory); | ||
| 18 | + else { | ||
| 19 | + var a = factory(); | ||
| 20 | + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; | ||
| 21 | + } | ||
| 22 | +})(self, function() { | ||
| 23 | +return /******/ (() => { // webpackBootstrap | ||
| 24 | +var __webpack_exports__ = {}; | ||
| 25 | +(function ($) { | ||
| 26 | + $.extend($.summernote.lang, { | ||
| 27 | + 'zh-CN': { | ||
| 28 | + font: { | ||
| 29 | + bold: '粗体', | ||
| 30 | + italic: '斜体', | ||
| 31 | + underline: '下划线', | ||
| 32 | + clear: '清除格式', | ||
| 33 | + height: '行高', | ||
| 34 | + name: '字体', | ||
| 35 | + strikethrough: '删除线', | ||
| 36 | + subscript: '下标', | ||
| 37 | + superscript: '上标', | ||
| 38 | + size: '字号' | ||
| 39 | + }, | ||
| 40 | + image: { | ||
| 41 | + image: '图片', | ||
| 42 | + insert: '插入图片', | ||
| 43 | + resizeFull: '缩放至 100%', | ||
| 44 | + resizeHalf: '缩放至 50%', | ||
| 45 | + resizeQuarter: '缩放至 25%', | ||
| 46 | + floatLeft: '靠左浮动', | ||
| 47 | + floatRight: '靠右浮动', | ||
| 48 | + floatNone: '取消浮动', | ||
| 49 | + shapeRounded: '形状: 圆角', | ||
| 50 | + shapeCircle: '形状: 圆', | ||
| 51 | + shapeThumbnail: '形状: 缩略图', | ||
| 52 | + shapeNone: '形状: 无', | ||
| 53 | + dragImageHere: '将图片拖拽至此处', | ||
| 54 | + dropImage: '拖拽图片或文本', | ||
| 55 | + selectFromFiles: '从本地上传', | ||
| 56 | + maximumFileSize: '文件大小最大值', | ||
| 57 | + maximumFileSizeError: '文件大小超出最大值。', | ||
| 58 | + url: '图片地址', | ||
| 59 | + remove: '移除图片', | ||
| 60 | + original: '原始图片' | ||
| 61 | + }, | ||
| 62 | + video: { | ||
| 63 | + video: '视频', | ||
| 64 | + videoLink: '视频链接', | ||
| 65 | + insert: '插入视频', | ||
| 66 | + url: '视频地址', | ||
| 67 | + providers: '(视频地址)' | ||
| 68 | + }, | ||
| 69 | + link: { | ||
| 70 | + link: '链接', | ||
| 71 | + insert: '插入链接', | ||
| 72 | + unlink: '去除链接', | ||
| 73 | + edit: '编辑链接', | ||
| 74 | + textToDisplay: '显示文本', | ||
| 75 | + url: '链接地址', | ||
| 76 | + openInNewWindow: '在新窗口打开' | ||
| 77 | + }, | ||
| 78 | + table: { | ||
| 79 | + table: '表格', | ||
| 80 | + addRowAbove: '在上方插入行', | ||
| 81 | + addRowBelow: '在下方插入行', | ||
| 82 | + addColLeft: '在左侧插入列', | ||
| 83 | + addColRight: '在右侧插入列', | ||
| 84 | + delRow: '删除行', | ||
| 85 | + delCol: '删除列', | ||
| 86 | + delTable: '删除表格' | ||
| 87 | + }, | ||
| 88 | + hr: { | ||
| 89 | + insert: '水平线' | ||
| 90 | + }, | ||
| 91 | + style: { | ||
| 92 | + style: '样式', | ||
| 93 | + p: '普通', | ||
| 94 | + blockquote: '引用', | ||
| 95 | + pre: '代码', | ||
| 96 | + h1: '标题 1', | ||
| 97 | + h2: '标题 2', | ||
| 98 | + h3: '标题 3', | ||
| 99 | + h4: '标题 4', | ||
| 100 | + h5: '标题 5', | ||
| 101 | + h6: '标题 6' | ||
| 102 | + }, | ||
| 103 | + lists: { | ||
| 104 | + unordered: '无序列表', | ||
| 105 | + ordered: '有序列表' | ||
| 106 | + }, | ||
| 107 | + options: { | ||
| 108 | + help: '帮助', | ||
| 109 | + fullscreen: '全屏', | ||
| 110 | + codeview: '源代码' | ||
| 111 | + }, | ||
| 112 | + paragraph: { | ||
| 113 | + paragraph: '段落', | ||
| 114 | + outdent: '减少缩进', | ||
| 115 | + indent: '增加缩进', | ||
| 116 | + left: '左对齐', | ||
| 117 | + center: '居中对齐', | ||
| 118 | + right: '右对齐', | ||
| 119 | + justify: '两端对齐' | ||
| 120 | + }, | ||
| 121 | + color: { | ||
| 122 | + recent: '最近使用', | ||
| 123 | + more: '更多', | ||
| 124 | + background: '背景', | ||
| 125 | + foreground: '前景', | ||
| 126 | + transparent: '透明', | ||
| 127 | + setTransparent: '透明', | ||
| 128 | + reset: '重置', | ||
| 129 | + resetToDefault: '默认' | ||
| 130 | + }, | ||
| 131 | + shortcut: { | ||
| 132 | + shortcuts: '快捷键', | ||
| 133 | + close: '关闭', | ||
| 134 | + textFormatting: '文本格式', | ||
| 135 | + action: '动作', | ||
| 136 | + paragraphFormatting: '段落格式', | ||
| 137 | + documentStyle: '文档样式', | ||
| 138 | + extraKeys: '额外按键' | ||
| 139 | + }, | ||
| 140 | + help: { | ||
| 141 | + insertParagraph: '插入段落', | ||
| 142 | + undo: '撤销', | ||
| 143 | + redo: '重做', | ||
| 144 | + tab: '增加缩进', | ||
| 145 | + untab: '减少缩进', | ||
| 146 | + bold: '粗体', | ||
| 147 | + italic: '斜体', | ||
| 148 | + underline: '下划线', | ||
| 149 | + strikethrough: '删除线', | ||
| 150 | + removeFormat: '清除格式', | ||
| 151 | + justifyLeft: '左对齐', | ||
| 152 | + justifyCenter: '居中对齐', | ||
| 153 | + justifyRight: '右对齐', | ||
| 154 | + justifyFull: '两端对齐', | ||
| 155 | + insertUnorderedList: '无序列表', | ||
| 156 | + insertOrderedList: '有序列表', | ||
| 157 | + outdent: '减少缩进', | ||
| 158 | + indent: '增加缩进', | ||
| 159 | + formatPara: '设置选中内容样式为 普通', | ||
| 160 | + formatH1: '设置选中内容样式为 标题1', | ||
| 161 | + formatH2: '设置选中内容样式为 标题2', | ||
| 162 | + formatH3: '设置选中内容样式为 标题3', | ||
| 163 | + formatH4: '设置选中内容样式为 标题4', | ||
| 164 | + formatH5: '设置选中内容样式为 标题5', | ||
| 165 | + formatH6: '设置选中内容样式为 标题6', | ||
| 166 | + insertHorizontalRule: '插入水平线', | ||
| 167 | + 'linkDialog.show': '显示链接对话框' | ||
| 168 | + }, | ||
| 169 | + history: { | ||
| 170 | + undo: '撤销', | ||
| 171 | + redo: '重做' | ||
| 172 | + }, | ||
| 173 | + specialChar: { | ||
| 174 | + specialChar: '特殊字符', | ||
| 175 | + select: '选取特殊字符' | ||
| 176 | + } | ||
| 177 | + } | ||
| 178 | + }); | ||
| 179 | +})(jQuery); | ||
| 180 | +/******/ return __webpack_exports__; | ||
| 181 | +/******/ })() | ||
| 182 | +; | ||
| 183 | +}); | ||
| 184 | +//# sourceMappingURL=summernote-zh-CN.js.map |
| 1 | +/*! Summernote v0.8.20 | (c) 2013- Alan Hong and contributors | MIT license */ | ||
| 2 | +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(self,(function(){return(e=jQuery).extend(e.summernote.lang,{"zh-CN":{font:{bold:"粗体",italic:"斜体",underline:"下划线",clear:"清除格式",height:"行高",name:"字体",strikethrough:"删除线",subscript:"下标",superscript:"上标",size:"字号"},image:{image:"图片",insert:"插入图片",resizeFull:"缩放至 100%",resizeHalf:"缩放至 50%",resizeQuarter:"缩放至 25%",floatLeft:"靠左浮动",floatRight:"靠右浮动",floatNone:"取消浮动",shapeRounded:"形状: 圆角",shapeCircle:"形状: 圆",shapeThumbnail:"形状: 缩略图",shapeNone:"形状: 无",dragImageHere:"将图片拖拽至此处",dropImage:"拖拽图片或文本",selectFromFiles:"从本地上传",maximumFileSize:"文件大小最大值",maximumFileSizeError:"文件大小超出最大值。",url:"图片地址",remove:"移除图片",original:"原始图片"},video:{video:"视频",videoLink:"视频链接",insert:"插入视频",url:"视频地址",providers:"(视频地址)"},link:{link:"链接",insert:"插入链接",unlink:"去除链接",edit:"编辑链接",textToDisplay:"显示文本",url:"链接地址",openInNewWindow:"在新窗口打开"},table:{table:"表格",addRowAbove:"在上方插入行",addRowBelow:"在下方插入行",addColLeft:"在左侧插入列",addColRight:"在右侧插入列",delRow:"删除行",delCol:"删除列",delTable:"删除表格"},hr:{insert:"水平线"},style:{style:"样式",p:"普通",blockquote:"引用",pre:"代码",h1:"标题 1",h2:"标题 2",h3:"标题 3",h4:"标题 4",h5:"标题 5",h6:"标题 6"},lists:{unordered:"无序列表",ordered:"有序列表"},options:{help:"帮助",fullscreen:"全屏",codeview:"源代码"},paragraph:{paragraph:"段落",outdent:"减少缩进",indent:"增加缩进",left:"左对齐",center:"居中对齐",right:"右对齐",justify:"两端对齐"},color:{recent:"最近使用",more:"更多",background:"背景",foreground:"前景",transparent:"透明",setTransparent:"透明",reset:"重置",resetToDefault:"默认"},shortcut:{shortcuts:"快捷键",close:"关闭",textFormatting:"文本格式",action:"动作",paragraphFormatting:"段落格式",documentStyle:"文档样式",extraKeys:"额外按键"},help:{insertParagraph:"插入段落",undo:"撤销",redo:"重做",tab:"增加缩进",untab:"减少缩进",bold:"粗体",italic:"斜体",underline:"下划线",strikethrough:"删除线",removeFormat:"清除格式",justifyLeft:"左对齐",justifyCenter:"居中对齐",justifyRight:"右对齐",justifyFull:"两端对齐",insertUnorderedList:"无序列表",insertOrderedList:"有序列表",outdent:"减少缩进",indent:"增加缩进",formatPara:"设置选中内容样式为 普通",formatH1:"设置选中内容样式为 标题1",formatH2:"设置选中内容样式为 标题2",formatH3:"设置选中内容样式为 标题3",formatH4:"设置选中内容样式为 标题4",formatH5:"设置选中内容样式为 标题5",formatH6:"设置选中内容样式为 标题6",insertHorizontalRule:"插入水平线","linkDialog.show":"显示链接对话框"},history:{undo:"撤销",redo:"重做"},specialChar:{specialChar:"特殊字符",select:"选取特殊字符"}}}),{};var e})); |
| 1 | +/*! | ||
| 2 | + * | ||
| 3 | + * Super simple WYSIWYG editor v0.8.20 | ||
| 4 | + * https://summernote.org | ||
| 5 | + * | ||
| 6 | + * | ||
| 7 | + * Copyright 2013- Alan Hong and contributors | ||
| 8 | + * Summernote may be freely distributed under the MIT license. | ||
| 9 | + * | ||
| 10 | + * Date: 2021-10-14T21:15Z | ||
| 11 | + * | ||
| 12 | + */ | ||
| 13 | +(function webpackUniversalModuleDefinition(root, factory) { | ||
| 14 | + if(typeof exports === 'object' && typeof module === 'object') | ||
| 15 | + module.exports = factory(); | ||
| 16 | + else if(typeof define === 'function' && define.amd) | ||
| 17 | + define([], factory); | ||
| 18 | + else { | ||
| 19 | + var a = factory(); | ||
| 20 | + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; | ||
| 21 | + } | ||
| 22 | +})(self, function() { | ||
| 23 | +return /******/ (() => { // webpackBootstrap | ||
| 24 | +var __webpack_exports__ = {}; | ||
| 25 | +(function ($) { | ||
| 26 | + $.extend($.summernote.lang, { | ||
| 27 | + 'zh-TW': { | ||
| 28 | + font: { | ||
| 29 | + bold: '粗體', | ||
| 30 | + italic: '斜體', | ||
| 31 | + underline: '底線', | ||
| 32 | + clear: '清除格式', | ||
| 33 | + height: '行高', | ||
| 34 | + name: '字體', | ||
| 35 | + strikethrough: '刪除線', | ||
| 36 | + subscript: '下標', | ||
| 37 | + superscript: '上標', | ||
| 38 | + size: '字號' | ||
| 39 | + }, | ||
| 40 | + image: { | ||
| 41 | + image: '圖片', | ||
| 42 | + insert: '插入圖片', | ||
| 43 | + resizeFull: '縮放至100%', | ||
| 44 | + resizeHalf: '縮放至 50%', | ||
| 45 | + resizeQuarter: '縮放至 25%', | ||
| 46 | + floatLeft: '靠左浮動', | ||
| 47 | + floatRight: '靠右浮動', | ||
| 48 | + floatNone: '取消浮動', | ||
| 49 | + shapeRounded: '形狀: 圓角', | ||
| 50 | + shapeCircle: '形狀: 圓', | ||
| 51 | + shapeThumbnail: '形狀: 縮略圖', | ||
| 52 | + shapeNone: '形狀: 無', | ||
| 53 | + dragImageHere: '將圖片拖曳至此處', | ||
| 54 | + dropImage: 'Drop image or Text', | ||
| 55 | + selectFromFiles: '從本機上傳', | ||
| 56 | + maximumFileSize: '文件大小最大值', | ||
| 57 | + maximumFileSizeError: '文件大小超出最大值。', | ||
| 58 | + url: '圖片網址', | ||
| 59 | + remove: '移除圖片', | ||
| 60 | + original: 'Original' | ||
| 61 | + }, | ||
| 62 | + video: { | ||
| 63 | + video: '影片', | ||
| 64 | + videoLink: '影片連結', | ||
| 65 | + insert: '插入影片', | ||
| 66 | + url: '影片網址', | ||
| 67 | + providers: '(影片網址)' | ||
| 68 | + }, | ||
| 69 | + link: { | ||
| 70 | + link: '連結', | ||
| 71 | + insert: '插入連結', | ||
| 72 | + unlink: '取消連結', | ||
| 73 | + edit: '編輯連結', | ||
| 74 | + textToDisplay: '顯示文字', | ||
| 75 | + url: '連結網址', | ||
| 76 | + openInNewWindow: '在新視窗開啟' | ||
| 77 | + }, | ||
| 78 | + table: { | ||
| 79 | + table: '表格', | ||
| 80 | + addRowAbove: '上方插入列', | ||
| 81 | + addRowBelow: '下方插入列', | ||
| 82 | + addColLeft: '左方插入欄', | ||
| 83 | + addColRight: '右方插入欄', | ||
| 84 | + delRow: '刪除列', | ||
| 85 | + delCol: '刪除欄', | ||
| 86 | + delTable: '刪除表格' | ||
| 87 | + }, | ||
| 88 | + hr: { | ||
| 89 | + insert: '水平線' | ||
| 90 | + }, | ||
| 91 | + style: { | ||
| 92 | + style: '樣式', | ||
| 93 | + p: '一般', | ||
| 94 | + blockquote: '引用區塊', | ||
| 95 | + pre: '程式碼區塊', | ||
| 96 | + h1: '標題 1', | ||
| 97 | + h2: '標題 2', | ||
| 98 | + h3: '標題 3', | ||
| 99 | + h4: '標題 4', | ||
| 100 | + h5: '標題 5', | ||
| 101 | + h6: '標題 6' | ||
| 102 | + }, | ||
| 103 | + lists: { | ||
| 104 | + unordered: '項目清單', | ||
| 105 | + ordered: '編號清單' | ||
| 106 | + }, | ||
| 107 | + options: { | ||
| 108 | + help: '幫助', | ||
| 109 | + fullscreen: '全螢幕', | ||
| 110 | + codeview: '原始碼' | ||
| 111 | + }, | ||
| 112 | + paragraph: { | ||
| 113 | + paragraph: '段落', | ||
| 114 | + outdent: '取消縮排', | ||
| 115 | + indent: '增加縮排', | ||
| 116 | + left: '靠右對齊', | ||
| 117 | + center: '靠中對齊', | ||
| 118 | + right: '靠右對齊', | ||
| 119 | + justify: '左右對齊' | ||
| 120 | + }, | ||
| 121 | + color: { | ||
| 122 | + recent: '字型顏色', | ||
| 123 | + more: '更多', | ||
| 124 | + background: '背景', | ||
| 125 | + foreground: '字體', | ||
| 126 | + transparent: '透明', | ||
| 127 | + setTransparent: '透明', | ||
| 128 | + reset: '重設', | ||
| 129 | + resetToDefault: '預設' | ||
| 130 | + }, | ||
| 131 | + shortcut: { | ||
| 132 | + shortcuts: '快捷鍵', | ||
| 133 | + close: '關閉', | ||
| 134 | + textFormatting: '文字格式', | ||
| 135 | + action: '動作', | ||
| 136 | + paragraphFormatting: '段落格式', | ||
| 137 | + documentStyle: '文件格式', | ||
| 138 | + extraKeys: '額外按鍵' | ||
| 139 | + }, | ||
| 140 | + help: { | ||
| 141 | + 'insertParagraph': 'Insert Paragraph', | ||
| 142 | + 'undo': 'Undoes the last command', | ||
| 143 | + 'redo': 'Redoes the last command', | ||
| 144 | + 'tab': 'Tab', | ||
| 145 | + 'untab': 'Untab', | ||
| 146 | + 'bold': 'Set a bold style', | ||
| 147 | + 'italic': 'Set a italic style', | ||
| 148 | + 'underline': 'Set a underline style', | ||
| 149 | + 'strikethrough': 'Set a strikethrough style', | ||
| 150 | + 'removeFormat': 'Clean a style', | ||
| 151 | + 'justifyLeft': 'Set left align', | ||
| 152 | + 'justifyCenter': 'Set center align', | ||
| 153 | + 'justifyRight': 'Set right align', | ||
| 154 | + 'justifyFull': 'Set full align', | ||
| 155 | + 'insertUnorderedList': 'Toggle unordered list', | ||
| 156 | + 'insertOrderedList': 'Toggle ordered list', | ||
| 157 | + 'outdent': 'Outdent on current paragraph', | ||
| 158 | + 'indent': 'Indent on current paragraph', | ||
| 159 | + 'formatPara': 'Change current block\'s format as a paragraph(P tag)', | ||
| 160 | + 'formatH1': 'Change current block\'s format as H1', | ||
| 161 | + 'formatH2': 'Change current block\'s format as H2', | ||
| 162 | + 'formatH3': 'Change current block\'s format as H3', | ||
| 163 | + 'formatH4': 'Change current block\'s format as H4', | ||
| 164 | + 'formatH5': 'Change current block\'s format as H5', | ||
| 165 | + 'formatH6': 'Change current block\'s format as H6', | ||
| 166 | + 'insertHorizontalRule': 'Insert horizontal rule', | ||
| 167 | + 'linkDialog.show': 'Show Link Dialog' | ||
| 168 | + }, | ||
| 169 | + history: { | ||
| 170 | + undo: '復原', | ||
| 171 | + redo: '取消復原' | ||
| 172 | + }, | ||
| 173 | + specialChar: { | ||
| 174 | + specialChar: 'SPECIAL CHARACTERS', | ||
| 175 | + select: 'Select Special characters' | ||
| 176 | + } | ||
| 177 | + } | ||
| 178 | + }); | ||
| 179 | +})(jQuery); | ||
| 180 | +/******/ return __webpack_exports__; | ||
| 181 | +/******/ })() | ||
| 182 | +; | ||
| 183 | +}); | ||
| 184 | +//# sourceMappingURL=summernote-zh-TW.js.map |
| 1 | +/*! Summernote v0.8.20 | (c) 2013- Alan Hong and contributors | MIT license */ | ||
| 2 | +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var a in r)("object"==typeof exports?exports:e)[a]=r[a]}}(self,(function(){return(e=jQuery).extend(e.summernote.lang,{"zh-TW":{font:{bold:"粗體",italic:"斜體",underline:"底線",clear:"清除格式",height:"行高",name:"字體",strikethrough:"刪除線",subscript:"下標",superscript:"上標",size:"字號"},image:{image:"圖片",insert:"插入圖片",resizeFull:"縮放至100%",resizeHalf:"縮放至 50%",resizeQuarter:"縮放至 25%",floatLeft:"靠左浮動",floatRight:"靠右浮動",floatNone:"取消浮動",shapeRounded:"形狀: 圓角",shapeCircle:"形狀: 圓",shapeThumbnail:"形狀: 縮略圖",shapeNone:"形狀: 無",dragImageHere:"將圖片拖曳至此處",dropImage:"Drop image or Text",selectFromFiles:"從本機上傳",maximumFileSize:"文件大小最大值",maximumFileSizeError:"文件大小超出最大值。",url:"圖片網址",remove:"移除圖片",original:"Original"},video:{video:"影片",videoLink:"影片連結",insert:"插入影片",url:"影片網址",providers:"(影片網址)"},link:{link:"連結",insert:"插入連結",unlink:"取消連結",edit:"編輯連結",textToDisplay:"顯示文字",url:"連結網址",openInNewWindow:"在新視窗開啟"},table:{table:"表格",addRowAbove:"上方插入列",addRowBelow:"下方插入列",addColLeft:"左方插入欄",addColRight:"右方插入欄",delRow:"刪除列",delCol:"刪除欄",delTable:"刪除表格"},hr:{insert:"水平線"},style:{style:"樣式",p:"一般",blockquote:"引用區塊",pre:"程式碼區塊",h1:"標題 1",h2:"標題 2",h3:"標題 3",h4:"標題 4",h5:"標題 5",h6:"標題 6"},lists:{unordered:"項目清單",ordered:"編號清單"},options:{help:"幫助",fullscreen:"全螢幕",codeview:"原始碼"},paragraph:{paragraph:"段落",outdent:"取消縮排",indent:"增加縮排",left:"靠右對齊",center:"靠中對齊",right:"靠右對齊",justify:"左右對齊"},color:{recent:"字型顏色",more:"更多",background:"背景",foreground:"字體",transparent:"透明",setTransparent:"透明",reset:"重設",resetToDefault:"預設"},shortcut:{shortcuts:"快捷鍵",close:"關閉",textFormatting:"文字格式",action:"動作",paragraphFormatting:"段落格式",documentStyle:"文件格式",extraKeys:"額外按鍵"},help:{insertParagraph:"Insert Paragraph",undo:"Undoes the last command",redo:"Redoes the last command",tab:"Tab",untab:"Untab",bold:"Set a bold style",italic:"Set a italic style",underline:"Set a underline style",strikethrough:"Set a strikethrough style",removeFormat:"Clean a style",justifyLeft:"Set left align",justifyCenter:"Set center align",justifyRight:"Set right align",justifyFull:"Set full align",insertUnorderedList:"Toggle unordered list",insertOrderedList:"Toggle ordered list",outdent:"Outdent on current paragraph",indent:"Indent on current paragraph",formatPara:"Change current block's format as a paragraph(P tag)",formatH1:"Change current block's format as H1",formatH2:"Change current block's format as H2",formatH3:"Change current block's format as H3",formatH4:"Change current block's format as H4",formatH5:"Change current block's format as H5",formatH6:"Change current block's format as H6",insertHorizontalRule:"Insert horizontal rule","linkDialog.show":"Show Link Dialog"},history:{undo:"復原",redo:"取消復原"},specialChar:{specialChar:"SPECIAL CHARACTERS",select:"Select Special characters"}}}),{};var e})); |
| 1 | define([], function () { | 1 | define([], function () { |
| 2 | + //修改上传的接口调用 | ||
| 3 | +require(['upload'], function (Upload) { | ||
| 4 | + | ||
| 5 | + //初始化中完成判断 | ||
| 6 | + Upload.events.onInit = function () { | ||
| 7 | + //如果上传接口不是七牛云,则不处理 | ||
| 8 | + if (this.options.url !== Config.upload.uploadurl) { | ||
| 9 | + return; | ||
| 10 | + } | ||
| 11 | + var _success = this.options.success; | ||
| 12 | + | ||
| 13 | + $.extend(this.options, { | ||
| 14 | + chunkSuccess: function (chunk, file, response) { | ||
| 15 | + this.contexts = this.contexts ? this.contexts : []; | ||
| 16 | + this.contexts.push(typeof response.ctx !== 'undefined' ? response.ctx : response.data.ctx); | ||
| 17 | + }, | ||
| 18 | + chunksUploaded: function (file, done) { | ||
| 19 | + var that = this; | ||
| 20 | + var params = $(that.element).data("params") || {}; | ||
| 21 | + var category = typeof params.category !== 'undefined' ? params.category : ($(that.element).data("category") || ''); | ||
| 22 | + Fast.api.ajax({ | ||
| 23 | + url: "/addons/qiniu/index/upload", | ||
| 24 | + data: { | ||
| 25 | + action: 'merge', | ||
| 26 | + filesize: file.size, | ||
| 27 | + filename: file.name, | ||
| 28 | + chunkid: file.upload.uuid, | ||
| 29 | + chunkcount: file.upload.totalChunkCount, | ||
| 30 | + width: file.width || 0, | ||
| 31 | + height: file.height || 0, | ||
| 32 | + type: file.type, | ||
| 33 | + category: category, | ||
| 34 | + qiniutoken: Config.upload.multipart.qiniutoken, | ||
| 35 | + contexts: this.contexts | ||
| 36 | + }, | ||
| 37 | + }, function (data, ret) { | ||
| 38 | + done(JSON.stringify(ret)); | ||
| 39 | + return false; | ||
| 40 | + }, function (data, ret) { | ||
| 41 | + file.accepted = false; | ||
| 42 | + that._errorProcessing([file], ret.msg); | ||
| 43 | + return false; | ||
| 44 | + }); | ||
| 45 | + | ||
| 46 | + }, | ||
| 47 | + }); | ||
| 48 | + | ||
| 49 | + //先移除已有的事件 | ||
| 50 | + this.off("success", _success).on("success", function (file, response) { | ||
| 51 | + var that = this; | ||
| 52 | + var ret = {code: 0, msg: response}; | ||
| 53 | + try { | ||
| 54 | + ret = typeof response === 'string' ? JSON.parse(response) : response; | ||
| 55 | + if (file.xhr.status === 200) { | ||
| 56 | + if (typeof ret.key !== 'undefined') { | ||
| 57 | + ret = {code: 1, msg: "", data: {url: '/' + ret.key, hash: ret.hash}}; | ||
| 58 | + } | ||
| 59 | + console.log(ret); | ||
| 60 | + var params = $(that.element).data("params") || {}; | ||
| 61 | + var category = typeof params.category !== 'undefined' ? params.category : ($(that.element).data("category") || ''); | ||
| 62 | + Fast.api.ajax({ | ||
| 63 | + url: "/addons/qiniu/index/notify", | ||
| 64 | + data: {name: file.name, url: ret.data.url, hash: ret.data.hash, size: file.size, width: file.width || 0, height: file.height || 0, type: file.type, category: category, qiniutoken: Config.upload.multipart.qiniutoken} | ||
| 65 | + }, function () { | ||
| 66 | + return false; | ||
| 67 | + }, function () { | ||
| 68 | + return false; | ||
| 69 | + }); | ||
| 70 | + } | ||
| 71 | + } catch (e) { | ||
| 72 | + console.error(e); | ||
| 73 | + } | ||
| 74 | + _success.call(this, file, ret); | ||
| 75 | + }); | ||
| 76 | + | ||
| 77 | + //如果是直传模式 | ||
| 78 | + if (Config.upload.uploadmode === 'client') { | ||
| 79 | + var _url = this.options.url; | ||
| 80 | + | ||
| 81 | + //分片上传时URL链接不同 | ||
| 82 | + this.options.url = function (files) { | ||
| 83 | + this.options.headers = {"Authorization": "UpToken " + Config.upload.multipart.qiniutoken}; | ||
| 84 | + if (files[0].upload.chunked) { | ||
| 85 | + var chunk = null; | ||
| 86 | + files[0].upload.chunks.forEach(function (item) { | ||
| 87 | + if (item.status === 'uploading') { | ||
| 88 | + chunk = item; | ||
| 89 | + } | ||
| 90 | + }); | ||
| 91 | + if (!chunk) { | ||
| 92 | + return Config.upload.uploadurl + '/mkfile/' + files[0].size; | ||
| 93 | + } else { | ||
| 94 | + return Config.upload.uploadurl + '/mkblk/' + chunk.dataBlock.data.size; | ||
| 95 | + } | ||
| 96 | + } | ||
| 97 | + return _url; | ||
| 98 | + }; | ||
| 99 | + | ||
| 100 | + this.options.params = function (files, xhr, chunk) { | ||
| 101 | + var params = Config.upload.multipart; | ||
| 102 | + if (chunk) { | ||
| 103 | + return $.extend({}, params, { | ||
| 104 | + filesize: chunk.file.size, | ||
| 105 | + filename: chunk.file.name, | ||
| 106 | + chunkid: chunk.file.upload.uuid, | ||
| 107 | + chunkindex: chunk.index, | ||
| 108 | + chunkcount: chunk.file.upload.totalChunkCount, | ||
| 109 | + chunkfilesize: chunk.dataBlock.data.size, | ||
| 110 | + width: chunk.file.width || 0, | ||
| 111 | + height: chunk.file.height || 0, | ||
| 112 | + type: chunk.file.type, | ||
| 113 | + }); | ||
| 114 | + } else { | ||
| 115 | + var retParams = $.extend({}, params); | ||
| 116 | + //七牛云直传使用的是token参数 | ||
| 117 | + retParams.token = retParams.qiniutoken; | ||
| 118 | + delete retParams.qiniutoken; | ||
| 119 | + return retParams; | ||
| 120 | + } | ||
| 121 | + }; | ||
| 122 | + | ||
| 123 | + //分片上传时需要变更提交的内容 | ||
| 124 | + this.on("sending", function (file, xhr, formData) { | ||
| 125 | + if (file.upload.chunked) { | ||
| 126 | + var _send = xhr.send; | ||
| 127 | + xhr.send = function () { | ||
| 128 | + var chunk = null; | ||
| 129 | + file.upload.chunks.forEach(function (item) { | ||
| 130 | + if (item.status == 'uploading') { | ||
| 131 | + chunk = item; | ||
| 132 | + } | ||
| 133 | + }); | ||
| 134 | + if (chunk) { | ||
| 135 | + _send.call(xhr, chunk.dataBlock.data); | ||
| 136 | + } | ||
| 137 | + }; | ||
| 138 | + } | ||
| 139 | + }); | ||
| 140 | + } | ||
| 141 | + }; | ||
| 142 | + | ||
| 143 | +}); | ||
| 144 | + | ||
| 145 | +require.config({ | ||
| 146 | + paths: { | ||
| 147 | + 'summernote': '../addons/summernote/lang/summernote-zh-CN.min' | ||
| 148 | + }, | ||
| 149 | + shim: { | ||
| 150 | + 'summernote': ['../addons/summernote/js/summernote.min', 'css!../addons/summernote/css/summernote.min.css'], | ||
| 151 | + } | ||
| 152 | +}); | ||
| 153 | +require(['form', 'upload'], function (Form, Upload) { | ||
| 154 | + var _bindevent = Form.events.bindevent; | ||
| 155 | + Form.events.bindevent = function (form) { | ||
| 156 | + _bindevent.apply(this, [form]); | ||
| 157 | + try { | ||
| 158 | + //绑定summernote事件 | ||
| 159 | + if ($(Config.summernote.classname || '.editor', form).length > 0) { | ||
| 160 | + var selectUrl = typeof Config !== 'undefined' && Config.modulename === 'index' ? 'user/attachment' : 'general/attachment/select'; | ||
| 161 | + require(['summernote'], function () { | ||
| 162 | + var imageButton = function (context) { | ||
| 163 | + var ui = $.summernote.ui; | ||
| 164 | + var button = ui.button({ | ||
| 165 | + contents: '<i class="fa fa-file-image-o"/>', | ||
| 166 | + tooltip: __('Choose'), | ||
| 167 | + click: function () { | ||
| 168 | + parent.Fast.api.open(selectUrl + "?element_id=&multiple=true&mimetype=image/", __('Choose'), { | ||
| 169 | + callback: function (data) { | ||
| 170 | + var urlArr = data.url.split(/\,/); | ||
| 171 | + $.each(urlArr, function () { | ||
| 172 | + var url = Fast.api.cdnurl(this, true); | ||
| 173 | + context.invoke('editor.insertImage', url); | ||
| 174 | + }); | ||
| 175 | + } | ||
| 176 | + }); | ||
| 177 | + return false; | ||
| 178 | + } | ||
| 179 | + }); | ||
| 180 | + return button.render(); | ||
| 181 | + }; | ||
| 182 | + var attachmentButton = function (context) { | ||
| 183 | + var ui = $.summernote.ui; | ||
| 184 | + var button = ui.button({ | ||
| 185 | + contents: '<i class="fa fa-file"/>', | ||
| 186 | + tooltip: __('Choose'), | ||
| 187 | + click: function () { | ||
| 188 | + parent.Fast.api.open(selectUrl + "?element_id=&multiple=true&mimetype=*", __('Choose'), { | ||
| 189 | + callback: function (data) { | ||
| 190 | + var urlArr = data.url.split(/\,/); | ||
| 191 | + $.each(urlArr, function () { | ||
| 192 | + var url = Fast.api.cdnurl(this, true); | ||
| 193 | + var node = $("<a href='" + url + "'>" + url + "</a>"); | ||
| 194 | + context.invoke('insertNode', node[0]); | ||
| 195 | + }); | ||
| 196 | + } | ||
| 197 | + }); | ||
| 198 | + return false; | ||
| 199 | + } | ||
| 200 | + }); | ||
| 201 | + return button.render(); | ||
| 202 | + }; | ||
| 203 | + | ||
| 204 | + $(Config.summernote.classname || '.editor', form).each(function () { | ||
| 205 | + $(this).summernote($.extend(true, {}, { | ||
| 206 | + // height: 250, | ||
| 207 | + minHeight: 250, | ||
| 208 | + lang: 'zh-CN', | ||
| 209 | + fontNames: [ | ||
| 210 | + 'Arial', 'Arial Black', 'Serif', 'Sans', 'Courier', | ||
| 211 | + 'Courier New', 'Comic Sans MS', 'Helvetica', 'Impact', 'Lucida Grande', | ||
| 212 | + "Open Sans", "Hiragino Sans GB", "Microsoft YaHei", | ||
| 213 | + '微软雅黑', '宋体', '黑体', '仿宋', '楷体', '幼圆', | ||
| 214 | + ], | ||
| 215 | + fontNamesIgnoreCheck: [ | ||
| 216 | + "Open Sans", "Microsoft YaHei", | ||
| 217 | + '微软雅黑', '宋体', '黑体', '仿宋', '楷体', '幼圆' | ||
| 218 | + ], | ||
| 219 | + toolbar: [ | ||
| 220 | + ['style', ['style', 'undo', 'redo']], | ||
| 221 | + ['font', ['bold', 'underline', 'strikethrough', 'clear']], | ||
| 222 | + ['fontname', ['color', 'fontname', 'fontsize']], | ||
| 223 | + ['para', ['ul', 'ol', 'paragraph', 'height']], | ||
| 224 | + ['table', ['table', 'hr']], | ||
| 225 | + ['insert', ['link', 'picture', 'video']], | ||
| 226 | + ['select', ['image', 'attachment']], | ||
| 227 | + ['view', ['fullscreen', 'codeview', 'help']], | ||
| 228 | + ], | ||
| 229 | + buttons: { | ||
| 230 | + image: imageButton, | ||
| 231 | + attachment: attachmentButton, | ||
| 232 | + }, | ||
| 233 | + dialogsInBody: true, | ||
| 234 | + followingToolbar: false, | ||
| 235 | + callbacks: { | ||
| 236 | + onChange: function (contents) { | ||
| 237 | + $(this).val(contents); | ||
| 238 | + $(this).trigger('change'); | ||
| 239 | + }, | ||
| 240 | + onInit: function () { | ||
| 241 | + }, | ||
| 242 | + onImageUpload: function (files) { | ||
| 243 | + var that = this; | ||
| 244 | + //依次上传图片 | ||
| 245 | + for (var i = 0; i < files.length; i++) { | ||
| 246 | + Upload.api.send(files[i], function (data) { | ||
| 247 | + var url = Fast.api.cdnurl(data.url, true); | ||
| 248 | + $(that).summernote("insertImage", url, 'filename'); | ||
| 249 | + }); | ||
| 250 | + } | ||
| 251 | + } | ||
| 252 | + } | ||
| 253 | + }, $(this).data("summernote-options") || {})); | ||
| 254 | + }); | ||
| 255 | + }); | ||
| 256 | + } | ||
| 257 | + } catch (e) { | ||
| 258 | + | ||
| 259 | + } | ||
| 260 | + | ||
| 261 | + }; | ||
| 262 | +}); | ||
| 2 | 263 | ||
| 3 | }); | 264 | }); |
| @@ -30,16 +30,14 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin | @@ -30,16 +30,14 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin | ||
| 30 | {field: 'id', title: __('Id')}, | 30 | {field: 'id', title: __('Id')}, |
| 31 | {field: 'car_model', title: __('Car_model'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | 31 | {field: 'car_model', title: __('Car_model'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, |
| 32 | {field: 'license_plate', title: __('License_plate'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | 32 | {field: 'license_plate', title: __('License_plate'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, |
| 33 | - {field: 'seat', title: __('Seat')}, | ||
| 34 | {field: 'colour', title: __('Colour'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | 33 | {field: 'colour', title: __('Colour'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, |
| 35 | - {field: 'driver_license_img', title: __('Driver_license_img'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images}, | ||
| 36 | - {field: 'driving_license_img', title: __('Driving_license_img'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images}, | ||
| 37 | - {field: 'reservation_time', title: __('Reservation_time'),operate:'RANGE', addclass:'datetimerange',datetimeFormat:"HH:mm", autocomplete:false, formatter: Table.api.formatter.datetime}, | ||
| 38 | - {field: 'start_time', title: __('Start_time'),operate:'RANGE', addclass:'datetimerange',datetimeFormat:"HH:mm", autocomplete:false, formatter: Table.api.formatter.datetime}, | ||
| 39 | - {field: 'create_time', title: __('Create_time'),operate:'RANGE', addclass:'datetimerange',datetimeFormat:"HH:mm", autocomplete:false, formatter: Table.api.formatter.datetime}, | ||
| 40 | - {field: 'driver.name', title: __('Driver.name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | ||
| 41 | {field: 'route.name', title: __('Route.name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | 34 | {field: 'route.name', title: __('Route.name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, |
| 35 | + {field: 'driver.name', title: __('Driver.name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | ||
| 36 | + {field: 'seat.name', title: __('Seat.name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | ||
| 37 | + {field: 'reservation_time', title: __('Reservation_time'), datetimeFormat:"HH:mm",operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, | ||
| 38 | + {field: 'start_time', title: __('Start_time'), datetimeFormat:"HH:mm", operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, | ||
| 42 | {field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, | 39 | {field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime}, |
| 40 | + | ||
| 43 | {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate} | 41 | {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate} |
| 44 | ] | 42 | ] |
| 45 | ] | 43 | ] |
public/assets/js/backend/seat.js
0 → 100644
| 1 | +define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) { | ||
| 2 | + | ||
| 3 | + var Controller = { | ||
| 4 | + index: function () { | ||
| 5 | + // 初始化表格参数配置 | ||
| 6 | + Table.api.init({ | ||
| 7 | + extend: { | ||
| 8 | + index_url: 'seat/index' + location.search, | ||
| 9 | + add_url: 'seat/add', | ||
| 10 | + edit_url: 'seat/edit', | ||
| 11 | + del_url: 'seat/del', | ||
| 12 | + multi_url: 'seat/multi', | ||
| 13 | + import_url: 'seat/import', | ||
| 14 | + table: 'seat', | ||
| 15 | + } | ||
| 16 | + }); | ||
| 17 | + | ||
| 18 | + var table = $("#table"); | ||
| 19 | + | ||
| 20 | + // 初始化表格 | ||
| 21 | + table.bootstrapTable({ | ||
| 22 | + url: $.fn.bootstrapTable.defaults.extend.index_url, | ||
| 23 | + pk: 'id', | ||
| 24 | + sortName: 'id', | ||
| 25 | + columns: [ | ||
| 26 | + [ | ||
| 27 | + {checkbox: true}, | ||
| 28 | + {field: 'id', title: __('Id')}, | ||
| 29 | + {field: 'name', title: __('Name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, | ||
| 30 | + {field: 'seat_number', title: __('Seat_number'), searchList: {"0":__('Seat_number 0'),"1":__('Seat_number 1')}, formatter: Table.api.formatter.normal}, | ||
| 31 | + {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate} | ||
| 32 | + ] | ||
| 33 | + ] | ||
| 34 | + }); | ||
| 35 | + | ||
| 36 | + // 为表格绑定事件 | ||
| 37 | + Table.api.bindevent(table); | ||
| 38 | + }, | ||
| 39 | + add: function () { | ||
| 40 | + $(document).on("change", "#seat_number input", function(){ | ||
| 41 | + var seat_number = $("input[name='row[seat_number]']:checked").val(); | ||
| 42 | + console.log(seat_number); | ||
| 43 | + if(seat_number==1){ | ||
| 44 | + //否则隐藏 | ||
| 45 | + $("#seat6").show(); | ||
| 46 | + $("#seat7").show(); | ||
| 47 | + }else if(seat_number==0){ | ||
| 48 | + //匠星隐藏千寻数据key | ||
| 49 | + $('#c-seat_name7').val(""); | ||
| 50 | + $('#c-seat_price7').val(""); | ||
| 51 | + $("#seat7").hide(); | ||
| 52 | + | ||
| 53 | + $('#c-seat_name6').val(""); | ||
| 54 | + $('#c-seat_price6').val(""); | ||
| 55 | + $("#seat6").hide(); | ||
| 56 | + } | ||
| 57 | + }); | ||
| 58 | + | ||
| 59 | + Controller.api.bindevent(); | ||
| 60 | + }, | ||
| 61 | + edit: function () { | ||
| 62 | + $(document).on("change", "#seat_number input", function(){ | ||
| 63 | + var seat_number = $("input[name='row[seat_number]']:checked").val(); | ||
| 64 | + console.log(seat_number); | ||
| 65 | + if(seat_number==1){ | ||
| 66 | + //否则隐藏 | ||
| 67 | + $("#seat6").show(); | ||
| 68 | + $("#seat5").show(); | ||
| 69 | + }else if(seat_number==0){ | ||
| 70 | + //匠星隐藏千寻数据key | ||
| 71 | + $('#c-seat_name5').val(""); | ||
| 72 | + $('#c-seat_price5').val(""); | ||
| 73 | + $("#seat5").hide(); | ||
| 74 | + | ||
| 75 | + $('#c-seat_name6').val(""); | ||
| 76 | + $('#c-seat_price6').val(""); | ||
| 77 | + $("#seat6").hide(); | ||
| 78 | + } | ||
| 79 | + }); | ||
| 80 | + | ||
| 81 | + Controller.api.bindevent(); | ||
| 82 | + }, | ||
| 83 | + api: { | ||
| 84 | + bindevent: function () { | ||
| 85 | + Form.api.bindevent($("form[role=form]")); | ||
| 86 | + } | ||
| 87 | + } | ||
| 88 | + }; | ||
| 89 | + return Controller; | ||
| 90 | +}); |
-
请 注册 或 登录 后发表评论