暫無描述
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

attribute_index.htm 22KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. {include file="public/layout" /}
  2. <body style="background-color: rgb(255, 255, 255); overflow: auto; cursor: default; -moz-user-select: inherit;">
  3. <div id="append_parent"></div>
  4. <div id="ajaxwaitid"></div>
  5. <div class="page" style="box-shadow:none;">
  6. <!-- <div class="fixed-bar">
  7. <div class="item-title">
  8. <a class="back_xin" href="javascript:history.back();" title="返回"><i class="iconfont e-fanhui"></i></a>
  9. <ul class="tab-base nc-row">
  10. <li><a href="{:url('Arctype/edit', ['id'=>$Request.param.typeid, 'tab'=>1])}" data-index='1' class="tab"><span>常规选项</span></a></li>
  11. <li><a href="{:url('Arctype/edit', ['id'=>$Request.param.typeid, 'tab'=>2])}" data-index='2' class="tab"><span>高级选项</span></a></li>
  12. <li><a href="{:url('Guestbook/attribute_index', array('typeid'=>$Request.param.typeid, 'tab'=>$tab))}" data-index='3' class="tab {eq name='$tab' value='3'}current{/eq}"><span>字段列表</span></a></li>
  13. </ul>
  14. </div>
  15. </div> -->
  16. <div class="flexigrid">
  17. <div class="mDiv">
  18. <div class="ftitle">
  19. {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
  20. {eq name="$Think.const.CONTROLLER_NAME.'@attribute_add'|is_check_access" value="1"}
  21. <div class="fbutton">
  22. <a href="javascript:void(0);" data-href="{:url('Guestbook/attribute_add', array('typeid'=>$Request.param.typeid))}" onclick="openFullframe(this, '新增留言字段', '80%', '80%');">
  23. <div class="add">
  24. <span><i class="layui-icon layui-icon-addition"></i>新增字段</span>
  25. </div>
  26. </a>
  27. </div>
  28. {/eq}
  29. {/if}
  30. </div>
  31. <form id="searchForm" class="navbar-form form-inline" action="{:url('Guestbook/attribute_index')}" method="get" onsubmit="layer_loading('正在处理');">
  32. {$searchform.hidden|default=''}
  33. <div class="sDiv">
  34. <div class="sDiv2">
  35. {gt name='$typeidNum' value='1'}
  36. <select name="typeid" class="select" style="margin:0px 5px;">
  37. <option value="">--全部栏目--</option>
  38. {$select_html|default=''}
  39. </select>
  40. {/gt}
  41. </div>
  42. <div class="sDiv2">
  43. <input type="text" size="30" name="keywords" value="{$Request.param.keywords}" class="qsbox" placeholder="名称搜索...">
  44. <input type="submit" class="btn" value="搜索">
  45. <i class="iconfont e-sousuo"></i>
  46. </div>
  47. </div>
  48. </form>
  49. </div>
  50. <div class="hDiv">
  51. <div class="hDivBox">
  52. <table cellspacing="0" cellpadding="0" style="width: 100%">
  53. <thead>
  54. <tr>
  55. {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
  56. <th class="sign w40" axis="col0">
  57. <div class="tc"><input type="checkbox" autocomplete="off" class="checkAll"></div>
  58. </th>
  59. {/if}
  60. <th abbr="article_title" axis="col3" class="w40">
  61. <div class="tc">ID</div>
  62. </th>
  63. <th abbr="article_title" axis="col3" class="">
  64. <div style="text-align: left; padding-left: 10px;" class="">字段标题</div>
  65. </th>
  66. <th abbr="article_time" axis="col6" class="w100">
  67. <div class="tc">字段类型</div>
  68. </th>
  69. <th abbr="article_time" axis="col6" class="w100">
  70. <div class="tc">所属栏目</div>
  71. </th>
  72. <th abbr="article_title" axis="col3" class="w100">
  73. <div class="tc">后台列表显示</div>
  74. </th>
  75. <th axis="col1" class="w180">
  76. <div class="tc">操作</div>
  77. </th>
  78. </tr>
  79. </thead>
  80. </table>
  81. </div>
  82. </div>
  83. <div class="bDiv" style="height: auto;">
  84. <div id="flexigrid" cellpadding="0" cellspacing="0" border="0">
  85. <table>
  86. <tbody>
  87. {empty name="list"}
  88. <tr>
  89. <td class="no-data" align="center" axis="col0" colspan="50">
  90. <div class="no_row">
  91. <div class="no_pic"><img src="__SKIN__/images/null-data.png"></div>
  92. </div>
  93. </td>
  94. </tr>
  95. {else/}
  96. {volist name="list" id="vo" key="k"}
  97. <tr>
  98. {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
  99. <td class="sign">
  100. <div class="tc w40">
  101. <input type="checkbox" autocomplete="off" name="ids[]" value="{$vo.attr_id}">
  102. </div>
  103. </td>
  104. {/if}
  105. <td class="sort">
  106. <div class="tc w40">
  107. {$vo.attr_id}
  108. </div>
  109. </td>
  110. <td style="width: 100%">
  111. <div style="text-align: left; padding-left: 10px;">
  112. {eq name="$Think.const.CONTROLLER_NAME.'@attribute_edit'|is_check_access" value="1"}
  113. <a href="{:url('Guestbook/attribute_edit',array('id'=>$vo['orgin_attr_id']))}">{$vo.attr_name}</a>
  114. {else /}
  115. {$vo.attr_name}
  116. {/eq}
  117. </div>
  118. </td>
  119. <td align="center" class="">
  120. <div class="w100 tc">
  121. {$attrInputTypeArr[$vo['attr_input_type']]|default=''}
  122. </div>
  123. </td>
  124. <td class="">
  125. <div class="w100 tc">{$vo.typename|default='<i class="red">数据出错!</i>'}</div>
  126. </td>
  127. <td>
  128. <div class="tc w100">
  129. {if condition="$vo['is_showlist'] eq 1"}
  130. <span class="yes" {eq name="$Think.const.CONTROLLER_NAME.'@edit'|is_check_access" value="1"}onClick="changeTableVal('guestbook_attribute','attr_id','{$vo.orgin_attr_id}','is_showlist',this);"{/eq} ><i class="fa fa-check-circle"></i>是</span>
  131. {else /}
  132. <span class="no" {eq name="$Think.const.CONTROLLER_NAME.'@edit'|is_check_access" value="1"}onClick="changeTableVal('guestbook_attribute','attr_id','{$vo.orgin_attr_id}','is_showlist',this);"{/eq} ><i class="fa fa-ban"></i>否</span>
  133. {/if}
  134. </div>
  135. </td>
  136. <td class="operation">
  137. <div class="w180 tc">
  138. {eq name="$Think.const.CONTROLLER_NAME.'@attribute_edit'|is_check_access" value="1"}
  139. <a href="javascript:void(0);" data-href="{:url('Guestbook/attribute_edit',array('id'=>$vo['attr_id']))}" class="btn blue" onclick="openFullframe(this, '编辑留言字段 ', '80%', '80%');">编辑</a>
  140. <i></i>
  141. {/eq}
  142. {eq name="$Think.const.CONTROLLER_NAME.'@attribute_del'|is_check_access" value="1"}
  143. {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
  144. <a class="btn red" href="javascript:void(0);" data-url="{:url('Guestbook/attribute_del')}" data-id="{$vo.attr_id}" {eq name="$global['web_recycle_switch']" value='1'} data-deltype="del" {else /} data-deltype="pseudo" {/eq} onClick="delfun(this);">删除</a>
  145. <i></i>
  146. {/if}
  147. {/eq}
  148. <a class="btn blue" href="javascript:void(0);" onclick="copyToClipBoard('{$vo.fieldname}', '{$vo.attr_id}', {$vo.attr_input_type|default='0'})">标签调用</a>
  149. </div>
  150. </td>
  151. </tr>
  152. {/volist}
  153. {/empty}
  154. </tbody>
  155. </table>
  156. </div>
  157. <div class="iDiv" style="display: none;"></div>
  158. </div>
  159. <div class="tDiv">
  160. <div class="tDiv2">
  161. {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
  162. <div class="fbutton checkboxall">
  163. <input type="checkbox" autocomplete="off" class="checkAll">
  164. </div>
  165. {eq name="$Think.const.CONTROLLER_NAME.'@attribute_del'|is_check_access" value="1"}
  166. <div class="fbutton">
  167. <a onclick="batch_del(this, 'ids');" data-url="{:url('Guestbook/attribute_del')}" {eq name="$global['web_recycle_switch']" value='1'} data-deltype="del" {else /} data-deltype="pseudo" {/eq} class="layui-btn layui-btn-primary">
  168. <span>批量删除</span>
  169. </a>
  170. </div>
  171. {/eq}
  172. {/if}
  173. {include file="public/page" /}
  174. </div>
  175. <div style="clear:both"></div>
  176. </div>
  177. </div>
  178. </div>
  179. <script type="text/javascript">
  180. $(function(){
  181. $('input[name*=ids]').click(function(){
  182. if ($('input[name*=ids]').length == $('input[name*=ids]:checked').length) {
  183. $('.checkAll').prop('checked','checked');
  184. } else {
  185. $('.checkAll').prop('checked', false);
  186. }
  187. });
  188. $('input[type=checkbox].checkAll').click(function(){
  189. $('input[type=checkbox]').prop('checked',this.checked);
  190. });
  191. });
  192. $(document).ready(function(){
  193. // 表格行点击选中切换
  194. $('#flexigrid > table>tbody >tr').click(function(){
  195. $(this).toggleClass('trSelected');
  196. });
  197. // 点击刷新数据
  198. $('.fa-refresh').click(function(){
  199. location.href = location.href;
  200. });
  201. $('#searchForm select[name=typeid]').change(function(){
  202. $('#searchForm').submit();
  203. });
  204. });
  205. /**
  206. * 代码调用js
  207. * @param id id
  208. * @param limit 条数
  209. */
  210. function copyToClipBoard(fieldname, attr_id, attr_input_type) {
  211. if ($.inArray(attr_input_type, [0,6,7]) > -1) { // 单行文本\Email邮箱\手机号码
  212. var liststr = "<input type='text' id='"+fieldname+"' name='{$"+"field."+fieldname+"}'>";
  213. var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px;"><dd>字段名称:</dd>';
  214. contentdiv += '<dd><input type="text" style=" width:400px;margin-bottom:10px;" value="{$'+'field.itemname_'+attr_id+'}"></dd>';
  215. contentdiv += '<dd>表单调用代码:</dd>';
  216. contentdiv += '<dd><input type="text" style="width:400px;" value="' + liststr + '" /></dd>';
  217. height = '250px';
  218. }
  219. else if (1 == attr_input_type) { // 下拉框
  220. var liststr = "<select name='{$"+"field."+fieldname+"}' id='"+fieldname+"'>\r\n <option value='无'>无</option>\r\n {eyou:volist name='$"+"field.options_"+attr_id+"' id='vo'}\r\n <option value='{$"+"vo.value}'>{$"+"vo.value}</option>\r\n {/eyou:volist"+"}\r\n</select>";
  221. var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px;"><dd>字段名称:</dd>';
  222. contentdiv += '<dd><input type="text" style=" width:400px;margin-bottom:10px;" value="{$'+'field.itemname_'+attr_id+'}"></dd>';
  223. contentdiv += '<dd>表单调用代码:</dd>';
  224. contentdiv += '<dd><textarea rows="4" cols="60" style="width:400px;height:110px;">' + liststr + '</textarea></dd>';
  225. height = '330px';
  226. }
  227. else if (2 == attr_input_type) { // 多行文本
  228. var liststr = "<textarea id='"+fieldname+"' name='{$"+"field."+fieldname+"}'></textarea>";
  229. var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px;"><dd>字段名称:</dd>';
  230. contentdiv += '<dd><input type="text" style=" width:400px;margin-bottom:10px;" value="{$'+'field.itemname_'+attr_id+'}"></dd>';
  231. contentdiv += '<dd>表单调用代码:</dd>';
  232. contentdiv += '<dd><input type="text" style="width:400px;" value="' + liststr + '" /></dd>';
  233. height = '300px';
  234. }
  235. else if (3 == attr_input_type) { // 单选框
  236. var liststr = "{eyou:volist name='$"+"field.options_"+attr_id+"' id='vo'}\r\n <label><input type='radio' id='"+fieldname+"' name='{$"+"field."+fieldname+"}' value='{$"+"vo.value}'>{$"+"vo.value}</label>\r\n{/eyou:volist"+"}";
  237. var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px;"><dd>字段名称:</dd>';
  238. contentdiv += '<dd><input type="text" style=" width:400px;margin-bottom:10px;" value="{$'+'field.itemname_'+attr_id+'}"></dd>';
  239. contentdiv += '<dd>表单调用代码:</dd>';
  240. contentdiv += '<dd><textarea rows="4" cols="60" style="width:400px;height:80px;">' + liststr + '</textarea></dd>';
  241. height = '300px';
  242. }
  243. else if (4 == attr_input_type) { // 多选框
  244. var liststr = "{eyou:volist name='$"+"field.options_"+attr_id+"' id='vo'}\r\n <label><input type='checkbox' name='{$"+"field."+fieldname+"}' value='{$"+"vo.value}'>{$"+"vo.value}</label>\r\n{/eyou:volist"+"}";
  245. var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px;"><dd>字段名称:</dd>';
  246. contentdiv += '<dd><input type="text" style=" width:400px;margin-bottom:10px;" value="{$'+'field.itemname_'+attr_id+'}"></dd>';
  247. contentdiv += '<dd>表单调用代码:</dd>';
  248. contentdiv += '<dd><textarea rows="4" cols="60" style="width:400px;height:80px;">' + liststr + '</textarea></dd>';
  249. height = '300px';
  250. }
  251. else if (5 == attr_input_type) { // 上传图片
  252. var liststr = "<input type='file' name='{$"+"field."+fieldname+"}' value='' accept='image/*'>";
  253. var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px;"><dd>字段名称:</dd>';
  254. contentdiv += '<dd><input type="text" style=" width:400px;margin-bottom:10px;" value="{$'+'field.itemname_'+attr_id+'}"></dd>';
  255. contentdiv += '<dd>表单调用代码:</dd>';
  256. contentdiv += '<dd><input type="text" style="width:400px;" value="' + liststr + '" /></dd>';
  257. contentdiv += '<dd style="border-top: dotted 1px #E7E7E7; color:red; ">特别注意:请在前台模板的留言标签里追加 {$'+'field.formhidden} 到 &lt;form &gt;表单里,<a href="JavaScript:void(0);" onclick="click_to_eyou_1575506523('+"'https://www.eyoucms.com/plus/view.php?aid=8378&origin_eycms=1','单张图教程说明'"+')">详细说明</a>。</dd>'
  258. height = '300px';
  259. }
  260. else if (8 == attr_input_type) { // 上传附件
  261. var liststr = "<input type='file' name='{$"+"field."+fieldname+"}' value=''>";
  262. var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px;"><dd>字段名称:</dd>';
  263. contentdiv += '<dd><input type="text" style=" width:400px;margin-bottom:10px;" value="{$'+'field.itemname_'+attr_id+'}"></dd>';
  264. contentdiv += '<dd>表单调用代码:</dd>';
  265. contentdiv += '<dd><input type="text" style="width:400px;" value="' + liststr + '" /></dd>';
  266. contentdiv += '<dd style="border-top: dotted 1px #E7E7E7; color:red; ">特别注意:请在前台模板的留言标签里追加 {$'+'field.formhidden} 到 &lt;form &gt;表单里。</dd>'
  267. height = '300px';
  268. }else if(11 == attr_input_type){ //多张图
  269. var liststr = "<input type='file' name='{$"+"field."+fieldname+"}' multiple accept='image/*' value=''>";
  270. var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px;"><dd>字段名称:</dd>';
  271. contentdiv += '<dd><input type="text" style=" width:400px;margin-bottom:10px;" value="{$'+'field.itemname_'+attr_id+'}"></dd>';
  272. contentdiv += '<dd>表单调用代码:</dd>';
  273. contentdiv += '<dd><input type="text" style="width:400px;" value="' + liststr + '" /></dd>';
  274. contentdiv += '<dd style="border-top: dotted 1px #E7E7E7; color:red; ">特别注意:请在前台模板的留言标签里追加 {$'+'field.formhidden} 到 &lt;form &gt;表单里。</dd>'
  275. height = '300px';
  276. }else if (9 == attr_input_type) { // 区域联动
  277. var liststr = "<!--一级-->\n<select {$"+"field.first_id_"+attr_id+"}>\r\n <option value=''>请选择</option>\r\n {eyou:volist name='$"+"field.options_"+attr_id+"' id='vo'}\r\n <option value='{$"+"vo.id}'>{$"+"vo.name}</option>\r\n {/eyou:volist"+"}\r\n</select>\n"+
  278. "<!--二级-->\n<select {$"+"field.second_id_"+attr_id+"}></select>\n" +
  279. "<!--三级-->\n<select {$"+"field.third_id_"+attr_id+"}></select>\n" +
  280. "{$"+"field.hidden_"+attr_id+"}";
  281. var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px;"><dd>字段名称:</dd>';
  282. contentdiv += '<dd><input type="text" style=" width:400px;margin-bottom:10px;" value="{$'+'field.itemname_'+attr_id+'}"></dd>';
  283. contentdiv += '<dd>表单调用代码:</dd>';
  284. contentdiv += '<dd><textarea rows="4" cols="60" style="width:400px;height:180px;">' + liststr + '</textarea></dd>';
  285. contentdiv += '<dd style="border-top: dotted 1px #E7E7E7; color:red; ">特别注意:请在前台模板的留言标签里追加 {$'+'field.hidden_'+attr_id+'} 到 &lt;form&gt;表单里。</dd>';
  286. height = '460px';
  287. }else if (10 == attr_input_type) { // 时间
  288. var liststr = "<input type=\"text\" name='{$"+"field."+fieldname+"}' id='{$"+"field."+fieldname+"}' placeholder='{$"+"field.itemname_"+attr_id+"}' autocomplete=\"off\">\n\n" +
  289. "{"+"eyou:static file='/public/plugins/laydate-v5.3.1/laydate.js' /}\n" +
  290. "<script type='text/javascript'>\n" +
  291. " laydate.render({\n" +
  292. " elem: '#{$"+"field."+fieldname+"}'\n" +
  293. " ,type: 'datetime'\n" +
  294. " });\n" +
  295. "<"+"/script>";
  296. var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px;"><dd>字段名称:</dd>';
  297. contentdiv += '<dd><input type="text" style=" width:400px;margin-bottom:10px;" value="{$'+'field.itemname_'+attr_id+'}"></dd>';
  298. contentdiv += '<dd>表单调用代码:</dd>';
  299. contentdiv += '<dd><textarea rows="4" cols="60" style="width:400px;height:180px;">' + liststr + '</textarea></dd>';
  300. contentdiv += '<dd style="border-top: dotted 1px #E7E7E7; color:red; ">特别注意:在弹窗表单里,可能遇到日期插件无法使用,请自行更换其他日期插件处理,谢谢。</dd>';
  301. height = '470px';
  302. }else {
  303. var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px;"><dd>字段名称:</dd>'
  304. contentdiv += '<dd><input type="text" style=" width:400px;margin-bottom:10px;" value="{$'+'field.itemname_'+attr_id+'}"></dd>'
  305. contentdiv += '<dd>字段名称:</dd>'
  306. contentdiv += '<dd><input type="text" style=" width:400px;margin-bottom:10px;" value="{$'+'field.'+fieldname+'}"></dd>'
  307. height = '250px';
  308. }
  309. contentdiv += '<dd style="border-top: dotted 1px #E7E7E7; color: #F60;">请将相应标签复制并粘贴到对应模板文件中!</dd></dl></div>'
  310. layer.open({
  311. shade: layer_shade,
  312. title: '标签调用',
  313. type: 1,
  314. skin: 'layui-layer-demo',
  315. area: ['480px', height], //宽高
  316. content: contentdiv
  317. });
  318. }
  319. </script>
  320. {include file="public/footer" /}