【商城后台管理系统】基于TP6开发友情链接增删改查以及网站基础设置页面功能

一、友情链接列表

数据库结构如下:

  1. CREATE TABLE `friend_link` (
  2. `link_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '友链id',
  3. `link_name` varchar(255) NOT NULL COMMENT '友链名称',
  4. `link_url` varchar(255) NOT NULL COMMENT '友链URL地址',
  5. `link_img` varchar(255) DEFAULT NULL COMMENT '友链头像',
  6. `link_des` varchar(255) DEFAULT NULL COMMENT '友链描述',
  7. `link_target` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '是否在新页面打开',
  8. `link_visible` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'Y' COMMENT '是否显示',
  9. `link_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '更新时间',
  10. PRIMARY KEY (`link_id`)
  11. ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

效果预览:

admin/controller/Setting.php控制器

  1. // 友链列表
  2. public function link(){
  3. if(Request::isAjax()){
  4. // 当前第几页
  5. $page = input('get.page');
  6. // 每页条数
  7. $limit = input('get.limit');
  8. // 总条数
  9. $count = Db::table('friend_link')->count();
  10. // 友链列表
  11. $links = Db::table('friend_link')->page($page,$limit)->select();
  12. if($links){
  13. exit(json_encode(['code'=>0,'msg'=>'查询成功','count'=>$count,'data'=>$links]));
  14. }
  15. }
  16. return View::fetch('/setting/link');
  17. }

view/Settting/link.php 友链列表视图

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title></title>
  5. <link rel="stylesheet" type="text/css" href="/static/layui/css/layui.css">
  6. <link rel="stylesheet" type="text/css" href="/static/layui/css/public.css">
  7. <script type="text/javascript" src="/static/layui/layui.js"></script>
  8. <style>
  9. .layui-form-item .layui-input-company {width: auto;padding-right: 10px;line-height: 38px;}
  10. </style>
  11. </head>
  12. <body style="padding: 20px;">
  13. <div class="layui-card">
  14. <div class="layui-card-header"><h3>友情链接</h3></div>
  15. <div class="layui-card-body">
  16. <span class="layui-breadcrumb">
  17. <a>网站设置</a>
  18. <a href="/admin/setting/basesetting"><cite>友情链接</cite></a>
  19. </span>
  20. <hr class="layui-border-blue">
  21. <div class="layuimini-main">
  22. <script type="text/html" id="toolbarDemo">
  23. <div class="layui-btn-container">
  24. <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加 </button>
  25. <button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除 </button>
  26. </div>
  27. </script>
  28. <table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
  29. <script type="text/html" id="currentTableBar">
  30. <a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">编辑</a>
  31. <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
  32. </script>
  33. </div>
  34. </div>
  35. </div>
  36. </body>
  37. </html>
  38. <script>
  39. layui.use(['form', 'table'], function () {
  40. var $ = layui.jquery,
  41. form = layui.form,
  42. table = layui.table;
  43. table.render({
  44. elem: '#currentTableId',
  45. url: '/admin/setting/link',
  46. toolbar: '#toolbarDemo',
  47. defaultToolbar: ['filter', 'exports', 'print', {
  48. title: '提示',
  49. layEvent: 'LAYTABLE_TIPS',
  50. icon: 'layui-icon-tips'
  51. }],
  52. cols: [[
  53. {type: "checkbox", width: 50},
  54. {field: 'link_id', width: 80, title: 'ID', sort: true},
  55. {field: 'link_name', width: 120, title: '友链名称'},
  56. {field: 'link_url', width: 120, title: '友链地址'},
  57. {field: 'link_img', width: 100, title: '友链头像',templet:function(res){
  58. return '<img style="width:30px;height:30px;border-radius: 50%;" src="'+res.link_img+'">';
  59. }},
  60. {field: 'link_des', title: '友链描述', minWidth: 130},
  61. {field: 'link_target', width: 100, title: '打开方式',templet:function(res){
  62. return `<a href="${res.link_url}" target="${res.link_target}"><button style="float: right;" type="button" class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs">
  63. <i class="layui-icon layui-icon-link"></i>
  64. 点击预览
  65. </button></a>`;
  66. }},
  67. {field: 'link_visible', width: 100, title: '是否显示',templet:function(res){
  68. if(res.link_visible == 'Y'){
  69. return '<span style="color:green;">显示</span>';
  70. }else{
  71. return '<span style="color:grey;">隐藏</span>';
  72. }
  73. }},
  74. {field: 'link_updated', title: '加入时间', sort: true},
  75. {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"}
  76. ]],
  77. limits: [10, 15, 20, 25, 50, 100],
  78. limit: 8,
  79. page: true,
  80. skin: 'line',
  81. height: 'full-100'
  82. });
  83. /**
  84. * toolbar监听事件
  85. */
  86. table.on('toolbar(currentTableFilter)', function (obj) {
  87. if (obj.event === 'add') { // 监听添加操作
  88. var index = layer.open({
  89. title: '添加友链',
  90. type: 2,
  91. shade: 0.5,
  92. maxmin:true,
  93. shadeClose: true,
  94. area: ['60%', '80%'],
  95. content: '/admin/setting/link_add',
  96. });
  97. $(window).on("resize", function () {
  98. layer.full(index);
  99. });
  100. }
  101. if (obj.event === 'delete') { // 监听删除操作
  102. var checkStatus = table.checkStatus('currentTableId')
  103. var data = checkStatus.data;
  104. if(data==''){
  105. layer.msg('请选择要删除的行');
  106. }else{
  107. layer.confirm('亲,真的删除么!', function (index) {
  108. $.post('/admin/setting/link_del',{link:data},function(res){
  109. if(res.code>0){
  110. return parent.layer.alert(res.msg,{icon:2});
  111. }
  112. parent.layer.alert(res.msg, {icon:1});
  113. setTimeout(()=>{window.location.reload();},1000);
  114. },'json');
  115. layer.close(index);
  116. });
  117. }
  118. }
  119. });
  120. //监听表格复选框选择
  121. table.on('checkbox(currentTableFilter)', function (obj) {
  122. console.log(obj)
  123. });
  124. table.on('tool(currentTableFilter)', function (obj) {
  125. var data = obj.data;
  126. if (obj.event === 'edit') {
  127. var index = layer.open({
  128. title: '编辑友链',
  129. type: 2,
  130. shade: 0.5,
  131. maxmin:true,
  132. shadeClose: true,
  133. area: ['60%', '80%'],
  134. content: '/admin/setting/link_edit?link_id='+obj.data.link_id,
  135. });
  136. $(window).on("resize", function () {
  137. layer.full(index);
  138. });
  139. return false;
  140. } else if (obj.event === 'delete') {
  141. layer.confirm('亲,真的删除么!', function (index) {
  142. $.post('/admin/setting/link_del',{link:[obj.data]},function(res){
  143. if(res.code>0){
  144. return parent.layer.alert(res.msg,{icon:2});
  145. }
  146. obj.del();
  147. parent.layer.alert(res.msg, {icon:1});
  148. setTimeout(()=>{window.location.reload();},1000);
  149. },'json');
  150. layer.close(index);
  151. });
  152. }
  153. });
  154. });
  155. </script>

二、友情链接添加

添加控制器方法

  1. // 添加友链
  2. public function link_add(){
  3. if(Request::isPost()){
  4. $data = Request::post();
  5. Db::table('friend_link')->save($data);
  6. exit(json_encode(['code'=>0,'msg'=>'友链添加成功']));
  7. }else{
  8. return View::fetch('/setting/link_add');
  9. }
  10. }

添加页面视图

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>layui</title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  9. <link rel="stylesheet" type="text/css" href="/static/layui/css/layui.css">
  10. <link rel="stylesheet" type="text/css" href="/static/layui/css/public.css">
  11. <script type="text/javascript" src="/static/layui/layui.js"></script>
  12. <style>
  13. body {
  14. background-color: #ffffff;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <div class="layui-form layuimini-form">
  20. <div class="layui-form-item">
  21. <label class="layui-form-label required">友链名称</label>
  22. <div class="layui-input-block">
  23. <input type="text" name="link_name" lay-verify="required" lay-reqtext="友链名称不能为空" placeholder="请输入友链名称" value="" class="layui-input">
  24. </div>
  25. </div>
  26. <div class="layui-form-item">
  27. <label class="layui-form-label required">友链地址</label>
  28. <div class="layui-input-block">
  29. <input type="text" name="link_url" lay-verify="url" autocomplete="off" lay-reqtext="友链地址不能为空" placeholder="请输入友链地址" value="" class="layui-input">
  30. </div>
  31. </div>
  32. <div class="layui-form-item">
  33. <label class="layui-form-label required">友链头像</label>
  34. <div class="layui-input-block">
  35. <input type="text" name="link_img" lay-verify="url" autocomplete="off" lay-reqtext="友链头像不能为空" placeholder="请输入网站头像的URL地址" value="" class="layui-input">
  36. <tip>请确保头像链接可以正常访问,以免无法显示!</tip>
  37. </div>
  38. </div>
  39. <div class="layui-form-item">
  40. <label class="layui-form-label required">是否显示</label>
  41. <div class="layui-input-block">
  42. <input type="radio" name="link_visible" value="Y" title="显示" checked="">
  43. <input type="radio" name="link_visible" value="N" title="隐藏">
  44. </div>
  45. </div>
  46. <div class="layui-form-item">
  47. <label class="layui-form-label required">打开方式</label>
  48. <div class="layui-input-block">
  49. <input type="radio" name="link_target" value="_blank" title="在新窗口中打开" checked="">
  50. <input type="radio" name="link_target" value="_self" title="在当前页面打开">
  51. </div>
  52. </div>
  53. <div class="layui-form-item layui-form-text">
  54. <label class="layui-form-label">友链描述</label>
  55. <div class="layui-input-block">
  56. <textarea name="link_des" class="layui-textarea" placeholder="请输入友链描述"></textarea>
  57. </div>
  58. </div>
  59. <div class="layui-form-item">
  60. <div class="layui-input-block">
  61. <button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button>
  62. </div>
  63. </div>
  64. </div>
  65. <script>
  66. layui.use(['form'], function () {
  67. var form = layui.form,
  68. layer = layui.layer,
  69. $ = layui.$;
  70. //监听提交
  71. form.on('submit(saveBtn)', function (data) {
  72. $.post('/admin/setting/link_add',data.field,function(res){
  73. if(res.code>0){
  74. return parent.layer.alert(res.msg,{icon:2});
  75. }
  76. parent.layer.alert(res.msg, {icon:1});
  77. setTimeout(()=>{parent.window.location.reload();},1000);
  78. },'json');
  79. });
  80. });
  81. </script>
  82. </body>
  83. </html>

三、友情链接修改

修改控制器方法

  1. // 修改友链
  2. public function link_edit(){
  3. if(Request::isPost()){
  4. $data = Request::post();
  5. Db::table('friend_link')->save($data);
  6. exit(json_encode(['code'=>0,'msg'=>'友链修改成功']));
  7. }else{
  8. $link_id = input('get.link_id');
  9. $link = Db::table('friend_link')->where('link_id',$link_id)->find();
  10. return view('/setting/link_edit',$link);
  11. }
  12. }

修改页面视图

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>layui</title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  9. <link rel="stylesheet" type="text/css" href="/static/layui/css/layui.css">
  10. <link rel="stylesheet" type="text/css" href="/static/layui/css/public.css">
  11. <script type="text/javascript" src="/static/layui/layui.js"></script>
  12. <style>
  13. body {background-color: #ffffff;}
  14. </style>
  15. </head>
  16. <body>
  17. <div class="layui-form layuimini-form">
  18. <input type="text" name="link_id" value="{$link_id}" hidden="">
  19. <div class="layui-form-item">
  20. <label class="layui-form-label required">友链名称</label>
  21. <div class="layui-input-block">
  22. <input type="text" name="link_name" lay-verify="required" lay-reqtext="友链名称不能为空" placeholder="请输入友链名称" value="{$link_name}" class="layui-input">
  23. </div>
  24. </div>
  25. <div class="layui-form-item">
  26. <label class="layui-form-label required">友链地址</label>
  27. <div class="layui-input-block">
  28. <input type="text" name="link_url" lay-verify="url" autocomplete="off" lay-reqtext="友链地址不能为空" placeholder="请输入友链地址" value="{$link_url}" class="layui-input">
  29. </div>
  30. </div>
  31. <div class="layui-form-item">
  32. <label class="layui-form-label required">友链头像</label>
  33. <div class="layui-input-block">
  34. <input type="text" name="link_img" lay-verify="url" autocomplete="off" lay-reqtext="友链头像不能为空" placeholder="请输入网站头像的URL地址" value="{$link_img}" class="layui-input">
  35. <tip>请确保头像链接可以正常访问,以免无法显示!</tip>
  36. </div>
  37. </div>
  38. <div class="layui-form-item">
  39. <div class="layui-input-block">
  40. <img style="width:50px;" src="{$link_img}">
  41. </div>
  42. </div>
  43. <div class="layui-form-item">
  44. <label class="layui-form-label required">是否显示</label>
  45. <div class="layui-input-block">
  46. <input type="radio" name="link_visible" value="Y" title="显示" {if $link_visible=='Y'}checked{/if}>
  47. <input type="radio" name="link_visible" value="N" title="隐藏" {if $link_visible=='N'}checked{/if}>
  48. </div>
  49. </div>
  50. <div class="layui-form-item">
  51. <label class="layui-form-label required">打开方式</label>
  52. <div class="layui-input-block">
  53. <input type="radio" name="link_target" value="_blank" title="在新窗口中打开" {if $link_target=='_blank'}checked{/if}>
  54. <input type="radio" name="link_target" value="_self" title="在当前页面打开" {if $link_target=='_self'}checked{/if}>
  55. </div>
  56. </div>
  57. <div class="layui-form-item layui-form-text">
  58. <label class="layui-form-label">友链描述</label>
  59. <div class="layui-input-block">
  60. <textarea name="link_des" class="layui-textarea" placeholder="请输入友链描述">{$link_des}</textarea>
  61. </div>
  62. </div>
  63. <div class="layui-form-item">
  64. <div class="layui-input-block">
  65. <button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button>
  66. </div>
  67. </div>
  68. </div>
  69. <script>
  70. layui.use(['form'], function () {
  71. var form = layui.form,
  72. layer = layui.layer,
  73. $ = layui.$;
  74. //监听提交
  75. form.on('submit(saveBtn)', function (data) {
  76. $.post('/admin/setting/link_edit',data.field,function(res){
  77. if(res.code>0){
  78. return parent.layer.alert(res.msg,{icon:2});
  79. }
  80. parent.layer.alert(res.msg, {icon:1});
  81. setTimeout(()=>{parent.window.location.reload();},1000);
  82. },'json');
  83. });
  84. });
  85. </script>
  86. </body>
  87. </html>

四、友情链接删除

删除控制器方法

这里可以删除一个也可以同时删除多个,所以传递过来的友链id是一个数组形式的

  1. // 删除友链
  2. public function link_del(){
  3. $data = Request::post();
  4. $link_id = [];
  5. foreach ($data['link'] as $key => $value) {
  6. $link_id[] = $value['link_id'];
  7. }
  8. $res = Db::table('friend_link')->delete($link_id);
  9. if($res){
  10. exit(json_encode(['code'=>0,'msg'=>'删除成功']));
  11. }else{
  12. exit(json_encode(['code'=>1,'msg'=>'删除失败,请重试……']));
  13. }
  14. }

五、网站基础设置

网站基础设置效果

后端采用thinkphp6.0,首先是网站基础设置,网站基础在数据库中可以建立一个单独的表,但是这个单独的表存放的信息很特殊,表里可以存商品规格,或者别的数据,因为这个网站设置就是设置网站的tdk,表字段的名称是这样的,names,values,就只有这两个字段,names的字段可以存tdk,或者商品名称,第二个values,可以存放tdk的信息,还有商品规格信息,我们将这些数据转换成json存入表中,需要的时候再json_decode取出渲染到前端页面。


这种存储方式和商品的SUK很相似,因为同一个商品,很能有很多规格,我们不可能给每个商品在创建一个对应的规格表,这里的网站设置也是,我们如果给例如网站名称关键字描述备案号创建一个表的话,那么网站的轮播图也要单独创建一个表,后续接入第三方接口有一些配置参数,我们又要新建一个表来存储,这样过于浪费,里面新建了几个字段,可能就一行记录。


我们采用JSON形式存储到记录中,将对象转换为JSON字符串存储到一条记录中,起一个name名称。对象的描述能力是很强的,我们将需要存储的信息放到对象中,然后转换为json字符串放到表中,下一次取出来json字符串在将其转换为对象。这样就可以一张表存储很多数据配置了,我们将文章设置的一些信息存储为name叫tdk,vals为对应的配置信息json字符串。


控制器Setting.php

这里我们先查询name名叫tdk的记录是否存在,如果第一次设置配置信息,不存在该条记录则插入配置信息记录,如果查询到了该条配置信息,这更新网站配置信息。注意:我们接受的是一个对象,存储数据库的时候,要将其转换为json字符串才可以,存储渲染的时候也要转回数组对象。

  1. <?php
  2. namespace app\admin\controller;
  3. use app\BaseController;
  4. use think\facade\Session;
  5. use think\facade\Db;
  6. use think\facade\View;
  7. use think\facade\Cache;
  8. use think\facade\Request;
  9. /**
  10. * 后台设置
  11. */
  12. class Setting extends BaseController
  13. {
  14. public function basesetting(){
  15. if(Request::isPost()){
  16. $data = Request::post();
  17. // 设置保存配置文件的names字段名称
  18. $names = 'tdk';
  19. // 查询表中names等于tdk的记录是否已存在,存在则更新配置,否则新增一条配置
  20. $item = Db::table('setting')->where('names',$names)->find();
  21. // 查询出来有该条记录不为空则更新配置记录
  22. if(!empty($item)){
  23. $res = Db::table('setting')->where('names',$names)->update(['vals'=>json_encode($data)]);
  24. }else{
  25. // 如果第一次不存在该条配置文件,则新增一条
  26. $res = Db::table('setting')->insert(['names'=>$names,'vals'=>json_encode($data)]);
  27. }
  28. if($res){
  29. exit(json_encode(['code'=>0,'msg'=>'设置成功']));
  30. }else{
  31. exit(json_encode(['code'=>1,'msg'=>'设置失败,请重试……']));
  32. }
  33. }else{
  34. $data['item'] = Db::table('setting')->where('names','tdk')->find();
  35. $data['item']['vals'] = json_decode($data['item']['vals'],true);
  36. return View::fetch('/setting/basesetting',$data);
  37. }
  38. }
  39. }

展示视图 Setting/basesetting.php

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title></title>
  5. <link rel="stylesheet" type="text/css" href="/static/layui/css/layui.css">
  6. <link rel="stylesheet" type="text/css" href="/static/layui/css/public.css">
  7. <script type="text/javascript" src="/static/layui/layui.js"></script>
  8. <style>
  9. .layui-form-item .layui-input-company {width: auto;padding-right: 10px;line-height: 38px;}
  10. </style>
  11. </head>
  12. <body style="padding: 20px;">
  13. <div class="layui-card">
  14. <div class="layui-card-header"><h3>基础设置</h3></div>
  15. <div class="layui-card-body">
  16. <span class="layui-breadcrumb">
  17. <a>网站设置</a>
  18. <a href="/admin/setting/basesetting"><cite>基础设置</cite></a>
  19. </span>
  20. <hr class="layui-border-blue">
  21. <div class="layuimini-main">
  22. <div class="layui-form layuimini-form">
  23. <div class="layui-form-item">
  24. <label class="layui-form-label required">网站名称</label>
  25. <div class="layui-input-block">
  26. <input type="text" name="sitename" lay-verify="required" lay-reqtext="网站名称不能为空" placeholder="请输入网站名称" value="{$item['vals']['sitename']}" class="layui-input">
  27. <tip>填写自己部署网站的名称。</tip>
  28. </div>
  29. </div>
  30. <div class="layui-form-item">
  31. <label class="layui-form-label required">网站域名</label>
  32. <div class="layui-input-block">
  33. <input type="text" name="domain" lay-verify="required" lay-reqtext="网站域名不能为空" placeholder="请输入网站域名" value="{$item['vals']['domain']}" class="layui-input">
  34. </div>
  35. </div>
  36. <div class="layui-form-item">
  37. <label class="layui-form-label">客服QQ</label>
  38. <div class="layui-input-block">
  39. <input type="text" name="qq" placeholder="请输入网站客服QQ" value="{$item['vals']['qq']}" class="layui-input">
  40. </div>
  41. </div>
  42. <div class="layui-form-item">
  43. <label class="layui-form-label">客服电话</label>
  44. <div class="layui-input-block">
  45. <input type="text" name="phone" placeholder="请输入网站客服电话" value="{$item['vals']['phone']}" class="layui-input">
  46. <tip>客服电话默认与微信同步</tip>
  47. </div>
  48. </div>
  49. <div class="layui-form-item">
  50. <label class="layui-form-label">最大文件上传</label>
  51. <div class="layui-input-inline" style="width: 80px;">
  52. <input type="text" name="cache" lay-verify="number" value="{$item['vals']['cache']}" class="layui-input">
  53. </div>
  54. <div class="layui-input-inline layui-input-company">KB</div>
  55. <div class="layui-form-mid layui-word-aux">提示:1 M = 1024 KB</div>
  56. </div>
  57. <div class="layui-form-item">
  58. <label class="layui-form-label">上传文件类型</label>
  59. <div class="layui-input-block">
  60. <input type="text" name="type" value="{$item['vals']['type']}" class="layui-input">
  61. </div>
  62. </div>
  63. <div class="layui-form-item layui-form-text">
  64. <label class="layui-form-label required">title首页标题</label>
  65. <div class="layui-input-block">
  66. <textarea name="title" class="layui-textarea">{$item['vals']['title']}</textarea>
  67. </div>
  68. </div>
  69. <div class="layui-form-item layui-form-text">
  70. <label class="layui-form-label">keywords关键词</label>
  71. <div class="layui-input-block">
  72. <textarea name="keywords" class="layui-textarea" placeholder="多个关键词用英文状态 , 号分割">{$item['vals']['keywords']}</textarea>
  73. </div>
  74. </div>
  75. <div class="layui-form-item layui-form-text">
  76. <label class="layui-form-label">description描述</label>
  77. <div class="layui-input-block">
  78. <textarea name="description" class="layui-textarea">{$item['vals']['description']}</textarea>
  79. </div>
  80. </div>
  81. <div class="layui-form-item layui-form-text">
  82. <label class="layui-form-label required">版权信息</label>
  83. <div class="layui-input-block">
  84. <textarea name="copyright" class="layui-textarea">{$item['vals']['copyright']}</textarea>
  85. </div>
  86. </div>
  87. <div class="layui-form-item">
  88. <label class="layui-form-label ">网站备案号</label>
  89. <div class="layui-input-block">
  90. <input type="text" name="record" placeholder="请输入备案号" value="{$item['vals']['record']}" class="layui-input">
  91. <tip>填写自己的网站备案号</tip>
  92. </div>
  93. </div>
  94. <div class="layui-form-item">
  95. <div class="layui-input-block">
  96. <button class="layui-btn layui-btn-normal" lay-submit lay-filter="setting">确认保存</button>
  97. </div>
  98. </div>
  99. </div>
  100. </div>
  101. </div>
  102. </div>
  103. </body>
  104. </html>
  105. <script>
  106. layui.use(['form'], function () {
  107. var form = layui.form
  108. var layer = layui.layer;
  109. var $ = layui.jquery;
  110. //监听提交
  111. form.on('submit(setting)', function (data) {
  112. $.post('/admin/setting/basesetting',data.field,function(res){
  113. if(res.code>0){
  114. return parent.layer.alert(res.msg,{icon:2});
  115. }
  116. parent.layer.alert(res.msg, {icon:1});
  117. setTimeout(()=>{parent.window.location.reload();},1000);
  118. },'json');
  119. });
  120. });
  121. </script>

1.【商城后台管理系统】基于TP6开发后台管理员登陆页面渲染部署

2.【商城后台管理系统】基于TP6开发后台管理界面渲染与无限级菜单查询

3.【商城后台管理系统】基于TP6开发登陆授权重定向拦截操作及管理员列表操作

4.【商城后台管理系统】基于TP6开发后台无限极菜单的管理显示与增删改查操作

5.【商城后台管理系统】基于TP6开发RBAC角色权限管理权限分配等技术点详解

6.【商城后台管理系统】基于TP6开发角色的权限分配递归生成无限极权限菜单树

更多相关文章

  1. PHP:【商城后台管理系统】部署友情链接,网站基础设置
  2. 微信抽奖小程序如何制作?
  3. TP6之多数据库,路由设置与多应用模式
  4. 18.【TP6学习笔记】Cookie的设置保存删除读取的使用
  5. 19.【TP6学习笔记】Cache缓存的设置和清除等使用操作
  6. PHP:文件上传上传限制,文件大小不超过5M,文件后缀设置,检查图片合
  7. 网站安全响应头缺失和php配置漏洞
  8. Unity3D实现模型体积拖拽变化
  9. 名词解释:外贸推广人员口中的谷歌SEO是什么

随机推荐

  1. 使用超类中的构造函数
  2. execl中设置的格式无法实现
  3. Java ThreadPoolExecutor 线程池调度器
  4. C/C++比java效率高的原因?
  5. 新手求教RandomAccessFile读写文件到底写
  6. Java中double型数组的HashCode产生
  7. 【java工具类】网站安全---将特殊字符编
  8. mvn依赖的jar,在项目中无法引用,求大神指点
  9. javascript(六)js事件绑定浏览器兼容解决方
  10. java httpclient访问某些网页报403错误