| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308 |
- <style type="text/css">
- .xm-label-block {
- background-color: #287bd2
- }
- </style>
- <!-- 正文开始 -->
- <div class="layui-fluid">
- <div class="layui-card">
- <div class="layui-card-body">
- <div class="layui-tab layui-tab-brief">
- <table id="dataTable" lay-filter="dataTable"></table>
- </div>
- </div>
- </div>
- </div>
- <script type="text/html" id="toolBarTpl">
- <div class="layui-btn-group fl">
- <a class="layui-btn layui-btn-sm layui-icon layui-icon-add-circle-fine skill-add-btn"> 添加</a>
- <a table-data="{'url':'store/stores/plectron','action':'put',param:{'status': 1}}" class="layui-btn layui-btn-sm layui-icon layui-icon-play table-toolbar-btn"> 启用</a >
- <a table-data="{'url':'store/stores/plectron','action':'put',param:{'status': 0}}" confirm class="layui-btn layui-btn-sm layui-icon layui-icon-pause table-toolbar-btn"> 禁用</a>
- <a table-data="{'url':'store/stores/plectron','action':'delete'}" confirm class="layui-btn layui-btn-sm layui-icon layui-icon-close table-toolbar-btn"> 删除</a>
- </div>
- </script>
- <!-- 表格操作列 -->
- <script type="text/html" id="tableBarUser">
- <a class="layui-btn layui-btn-xs" lay-event="edit">修改</a>
- <a class="layui-btn layui-btn-danger layui-btn-xs" perm-show="delete:/store/stores/<id>" lay-event="del">删除</a>
- </script>
- <!-- 表格状态列 -->
- <script type="text/html" id="tableStateUser">
- <input type="checkbox" value="{{ d.status }}" switch-data="{'url':'store/stores/{{ d.id }}','action':'put'}" lay-skin="switch" lay-filter="ckDataTableState"
- lay-text="正常|锁定" {{d.status==1?'checked':''}}/>
- </script>
- <!-- 表单弹窗 -->
- <script type="text/html" id="modelStore">
- <form id="modelStoreForm" lay-filter="modelStoreForm" class="layui-form model-form">
- <input name="id" type="hidden"/>
- <input name="type" type="hidden" value="1"/>
- <div class="layui-form-item">
- <label class="layui-form-label layui-form-required">门店名称</label>
- <div class="layui-input-block">
- <input name="name" placeholder="请输门店名称" type="text" class="layui-input" maxlength="80"
- lay-verType="tips" lay-verify="required" required/>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label layui-form-required">联系电话</label>
- <div class="layui-input-block">
- <input name="phone" placeholder="请输门店联系电话" type="text" class="layui-input" maxlength="80"
- lay-verType="tips" lay-verify="required" required/>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label layui-form-required">门头LOGO图片</label>
- <div class="layui-input-block">
- <input type="text" name="logo" value="" class="layui-input layui-disabled" style="padding-right: 80px;" disabled="">
- <button class="layui-btn icon-btn dialog-file-choose" data-input="logo" data-count="3" type="button" style="position: absolute;top: 0;right: 0px;cursor: pointer;"><i class="layui-icon"></i>上传图片</button>
- <div class="img-preview-box logo" style="display: flex;flex-wrap: wrap;align-content: space-between;background: #f7f7f7;">
- <img class="input-img-preview" src="../../assets/images/placeholder-refund.png" style="height: 100px;margin: 8px;">
- </div>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label layui-form-required">介绍内容</label>
- <div class="layui-input-block">
- <textarea id="contentCkEditor" name="intro"></textarea>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label layui-form-required">位置</label>
- <div class="layui-input-block">
- <input id="coordinate" type="hidden" name="coordinate" value="">
- <input id="location" type="text" name="location" value="" class="layui-input layui-disabled" style="padding-right: 80px;" disabled="">
- <button class="layui-btn icon-btn dialog-location-choose" data-input="location" data-count="3" type="button" style="position: absolute;top: 0;right: 0px;cursor: pointer;"><i class="layui-icon"></i>位置选择</button>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label layui-form-required">服务时间</label>
- <div class="layui-input-block">
- <input name="time_slot" placeholder="请输入服务时间" type="text" class="layui-input"
- lay-verType="tips" lay-verify="required" required/>
- </div>
- </div>
- <div class="layui-form-item text-right">
- <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
- <button class="layui-btn" perm-show="put:/store/stores/<id>" lay-filter="modelSubmitSkill" lay-submit>保存</button>
- </div>
- </form>
- </script>
- <!-- js部分 -->
- <script>
- window.qq = window.qq || {};
- qq.maps = qq.maps || {};
- window.soso || (window.soso = qq);
- soso.maps || (soso.maps = qq.maps);
- (function () {
- qq.maps.__load = function (apiLoad) {
- delete qq.maps.__load;
- apiLoad([["2.4.136","CJVBZ-PHKCJ-C4AFL-FQEPT-WRTH3-Q2BXD",0],["https://mapapi.qq.com/","jsapi_v2/2/4/136/mods/","https://mapapi.qq.com/jsapi_v2/2/4/136/theme/",true],[1,18,34.519469,104.461761,4],[1606288580732,"https://pr.map.qq.com/pingd","https://pr.map.qq.com/pingd"],["https://apis.map.qq.com/jsapi","https://apikey.map.qq.com/mkey/index.php/mkey/check","https://sv.map.qq.com/xf","https://sv.map.qq.com/boundinfo","https://sv.map.qq.com/rarp","https://apis.map.qq.com/api/proxy/search","https://apis.map.qq.com/api/proxy/routes/","https://confinfo.map.qq.com/confinfo","https://overseactrl.map.qq.com"],[[null,["https://rt0.map.gtimg.com/tile","https://rt1.map.gtimg.com/tile","https://rt2.map.gtimg.com/tile","https://rt3.map.gtimg.com/tile"],"png",[256,256],3,19,"114",true,false],[null,["https://m0.map.gtimg.com/hwap","https://m1.map.gtimg.com/hwap","https://m2.map.gtimg.com/hwap","https://m3.map.gtimg.com/hwap"],"png",[128,128],3,18,"110",false,false],[null,["https://p0.map.gtimg.com/sateTiles","https://p1.map.gtimg.com/sateTiles","https://p2.map.gtimg.com/sateTiles","https://p3.map.gtimg.com/sateTiles"],"jpg",[256,256],1,19,"101",false,false],[null,["https://rt0.map.gtimg.com/tile","https://rt1.map.gtimg.com/tile","https://rt2.map.gtimg.com/tile","https://rt3.map.gtimg.com/tile"],"png",[256,256],1,19,"",false,false],[null,["https://sv0.map.qq.com/hlrender/","https://sv1.map.qq.com/hlrender/","https://sv2.map.qq.com/hlrender/","https://sv3.map.qq.com/hlrender/"],"png",[256,256],1,19,"",false,false],[null,["https://rtt2.map.qq.com/rtt/","https://rtt2a.map.qq.com/rtt/","https://rtt2b.map.qq.com/rtt/","https://rtt2c.map.qq.com/rtt/"],"png",[256,256],1,19,"",false,false],null,[["https://rt0.map.gtimg.com/vector/","https://rt1.map.gtimg.com/vector/","https://rt2.map.gtimg.com/vector/","https://rt3.map.gtimg.com/vector/"],[256,256],3,18,"114",["https://rt0.map.gtimg.com/icons/","https://rt1.map.gtimg.com/icons/","https://rt2.map.gtimg.com/icons/","https://rt3.map.gtimg.com/icons/"],[]],null],["https://s.map.qq.com/TPano/v1.1.2/TPano.js","map.qq.com/",""]],loadScriptTime);
- };
- var loadScriptTime = (new Date).getTime();
- })();
- </script>
- <script src="//mapapi.qq.com/jsapi_v2/2/4/136/main.js"></script>
- <script>
- layui.use(['layer', 'form', 'table', 'util', 'notice','md5', 'admin', 'setter', 'CKEDITOR', 'xmSelect','TMap'], function () {
- var $ = layui.jquery;
- var layer = layui.layer;
- var form = layui.form;
- var table = layui.table;
- var util = layui.util;
- var admin = layui.admin;
- var notice = layui.notice;
- var setter = layui.setter;
- var md5 = layui.md5;
- var CKEDITOR = layui.CKEDITOR;
- var xmSelect = layui.xmSelect;
- var TMap = layui.TMap;
-
- form.render('select');
- // 渲染表格
- var insTb = table.render({
- elem: '#dataTable',
- url: setter.baseServer + 'store/store?type=1',
- page: true,
- // toolbar: true,
- toolbar: '#toolBarTpl',
- cellMinWidth: 100,
- cols: [[
- {type: 'checkbox'},
- {field: 'name', title: '门店名称', width: 200},
- {field: 'phone', title: '联系电话', width: 100},
- {field: 'logo', title: '门头图片', templet: function (d) {
- var cover = JSON.parse(d.logo),
- html = "";
- $.each(cover,(i,item) => {
- html += '<img src="' + (item || '../../assets/images/placeholder-refund.png') + '" style="height: 100%;margin-right:2px" class="input-img-preview"/>'
- })
- return html;
- }, width: 200},
- {field: 'intro', title: '介绍内容'},
- {field: 'location', title: '位置'},
- {field: 'time_slot', title: '服务时间', width: 200},
- {
- field: 'created_at', sort: true, templet: function (d) {
- return util.toDateString(d.created_at * 1e3);
- }, title: '创建时间', width: 180
- },
- {field: 'status', templet: '#tableStateUser', title: '状态', width: 120},
- {fixed:'right', align: 'center', toolbar: '#tableBarUser', title: '操作', minWidth: 200}
- ]],
- done:function () {
- admin.renderPerm()
- }
- });
- // 添加
- $(document).on('click','.skill-add-btn', function () {
- showEditModel();
- });
- // 搜索
- form.on('submit(formSubSearchUser)', function (data) {
- insTb.reload({where: data.field}, 'data');
- });
- // 工具条点击事件
- table.on('tool(dataTable)', function (obj) {
- var data = obj.data;
- var layEvent = obj.event;
-
- if (layEvent === 'edit') { // 修改
- showEditModel(data);
- } else if (layEvent === 'del') { // 删除
- layer.confirm('确定要删除“' + data.name + '”吗?', {
- skin: 'layui-layer-admin',
- shade: .1
- }, function (i) {
- layer.close(i);
- layer.load(2);
- admin.req('store/store/' + data.id, function (r) {
- layer.closeAll('loading');
- if (r.code === 10000) {
- notice.msg(r.message, {icon: 1});
- insTb.reload({}, 'data');
- } else {
- notice.msg(r.message, {icon: 2});
- }
- }, 'DELETE');
- });
- }
- });
- // 显示表单弹窗
- function showEditModel(data) {
- admin.open({
- id: 'LAY_StoreModel',
- type: 1,
- area: '620px', //宽高
- title: (data ? '修改' : '添加') + '门店',
- content: $('#modelStore').html(),
- success: function (layero, dIndex) {
- $(layero).children('.layui-layer-content').css('overflow', 'visible');
- // 多图
- if(data && data.logo.length > 0){
- $(".img-preview-box.logo").empty();
- $.each(JSON.parse(data.logo),(i,t) => {
- $(".img-preview-box.logo").append('<img class="input-img-preview" src="' + t + '" style="height: 100px;margin: 8px;"/>');
- })
- }
-
- $('.dialog-location-choose').off('click.fcdlc').on('click.fcdlc', function(){
- console.log(this)
- // 位置选择
- TMap.open({
- key: "X5IBZ-XFY36-UGFSZ-MP2XB-VCS35-ZNBKZ",
- // key: "CJVBZ-PHKCJ-C4AFL-FQEPT-WRTH3-Q2BXD",
- dialog: {title: '坐标选取'},
- onChoose: function (point, adress, index) {
- console.log(adress)
- layer.close(index);
- if(point != '' && adress != ''){
- if(typeof data == 'undefined'){
- var data = {};
- }
- data.location = adress;
- data.coordinate = point;
- console.log(data)
- console.log(adress)
- form.val('modelStoreForm', data);
- $(this).prev('input').val(adress)
- }
- }
- });
- })
- // 渲染富文本编辑器
- var contentEdt = CKEDITOR.replace('contentCkEditor', {
- height: 300,
- language: 'zh-cn', //简体中文
- toolbar: [
- //加粗 斜体, 下划线 穿过线 下标字 上标字
- ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript'],
- // 数字列表 实体列表 减小缩进 增大缩进
- ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent'],
- //左对 齐 居中对齐 右对齐 两端对齐
- ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'],
- //超链接 取消超链接 锚点
- ['Link', 'Unlink', 'Anchor'],
- //图片 flash 表格 水平线 表情 特殊字符 分页符
- ['Image', 'Flash', 'Table', 'HorizontalRule', 'Smiley', 'SpecialChar', 'PageBreak'],
- '/',
- // 样式 格式 字体 字体大小
- ['Styles', 'Format', 'Font', 'FontSize'],
- //文本颜色 背景颜色
- ['TextColor', 'BGColor'],
- //全屏 显示区块
- ['Maximize', 'ShowBlocks', '-']
- ]
- });
- contentEdt.on('fileUploadRequest', function (evt) {
- let xhr = evt.data.fileLoader.xhr;
- xhr.setRequestHeader('Authorization', setter.getToken());
- });
- CKEDITOR.instances.pageCkEditor;
-
- form.render('radio');
- form.render('select');
- // 回显数据
- form.val('modelStoreForm', data);
- // 表单提交事件
- form.on('submit(modelSubmitStore)', function (form) {
- console.log(form.field)
- if(form.field.coordinate == "" || form.field.location == ''){
- notice.msg("位置信息不能为空", {icon: 2});
- return false;
- }
- if (content === '') {
- layer.tips('门店介绍内容不能为空', $('#contentCkEditor'), {tips: [3, '#ff4c4c']});
- return false;
- }
- form.field.content = contentEdt.getData();
- layer.load(2);
- admin.req('store/store' + (data ? '/' + form.field.id : ''), form.field, function (res) {
- layer.closeAll('loading');
- if (res.code === 10000) {
- layer.close(dIndex);
- notice.msg(res.message, {icon: 1});
- insTb.reload({}, 'data');
- } else {
- notice.msg(res.message, {icon: 2});
- }
- }, data ? 'PUT' : 'POST');
- return false;
- });
- }
- });
- }
- });
- </script>
|