company.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393
  1. {extend name="public/layout" /}
  2. {block name="title"}企业设置{/block}
  3. {block name="body"}
  4. <style>
  5. html,body{min-width: 700px !important;}
  6. .layui-fluid {
  7. display: block;
  8. box-shadow: 0 0 4px 0 #B6CADE;
  9. border-radius: 5px;
  10. margin: 15px;
  11. background-color: #ffffff;
  12. }
  13. .layui-btn-primary {
  14. color: #249EFB;
  15. border: 1px solid #249EFB;
  16. }
  17. .layui-btn-primary:hover {
  18. background-color: #E3F7FF;
  19. color: #249EFB;
  20. }
  21. .layui-form-label{width:100px !important;}
  22. .grant-name{width:516px !important;}
  23. input::-webkit-outer-spin-button,
  24. input::-webkit-inner-spin-button {
  25. -webkit-appearance: none !important;
  26. margin: 0;
  27. }
  28. .layui-form-switch {
  29. margin-top: 0px;
  30. }
  31. .vrBtnSelect {
  32. white-space: nowrap;
  33. padding: 0px 10px;
  34. height: 38px;
  35. background-color: #249EFB;
  36. color: #ffffff;
  37. text-align: center;
  38. line-height: 38px;
  39. border-radius: 4px;
  40. margin-left: 5px;
  41. cursor: pointer;
  42. }
  43. </style>
  44. <body>
  45. <div class="layui-fluid">
  46. <div class="layui-card">
  47. <div class="layui-card-body">
  48. <form class="layui-form" enctype="multipart/form-data">
  49. <div class="layui-form-item">
  50. <label class="layui-form-label"><i style="color:red;">*&nbsp;</i> 企业名:</label>
  51. <div class="layui-input-inline grant-name">
  52. <input class="layui-input" lay-verify="required" name="company_name" type="text" value="{$data.company_name}"
  53. placeholder="请输入企业名">
  54. </div>
  55. </div>
  56. <div class="layui-form-item">
  57. <label class="layui-form-label">LOGO:</label>
  58. <div class="layui-input-inline" id="upload-drag">
  59. <div class="layui-upload-drag">
  60. {notempty name="data.logo"}
  61. <img src="{$data.logo}" style="height: 100%;width:100%;">
  62. {else/}
  63. <i class="layui-icon">&#xe681;</i>
  64. <p>上传LOGO</p>
  65. {/notempty}
  66. </div>
  67. </div>
  68. </div>
  69. <div class="layui-form-item">
  70. <label class="layui-form-label"><i style="color:red;">*&nbsp;</i>企业电话:</label>
  71. <div class="layui-input-inline grant-name">
  72. <input class="layui-input" name="tel" type="text" onkeyup="RegularInt(this)" value="{$data.tel}" placeholder="请输入企业电话/座机号码">
  73. </div>
  74. </div>
  75. <div class="layui-form-item">
  76. <label class="layui-form-label"><i style="color:red;">*&nbsp;</i>公司介绍:</label>
  77. <div class="layui-input-inline" style="width: 516px;">
  78. <textarea name="company_introduction" id="content" style="width: 100%; height: 200px;"
  79. autocomplete="off" >{$data.company_introduction}</textarea>
  80. </div>
  81. </div>
  82. <div class="layui-form-item">
  83. <label class="layui-form-label"><i style="color:red;">*&nbsp;</i>地址信息:</label>
  84. <div class="layui-input-inline" style="width: 516px;">
  85. <textarea name="company_address" style="width: 100%; height: 100px;" autocomplete="off"
  86. class="layui-textarea">{$data.company_address}</textarea>
  87. </div>
  88. </div>
  89. <div class="layui-form-item">
  90. <label class="layui-form-label">VR寻址链接:</label>
  91. <div class="layui-input-inline grant-name">
  92. <input class="layui-input" name="vr_address" id="vrAddressElement" type="text" placeholder="请输入VR寻址链接"
  93. value="{$data.vr_address}">
  94. <div class="vrBtnSelect">选择vr作品</div>
  95. </div>
  96. </div>
  97. <div class="layui-form-item" style="position: relative;">
  98. <div class="vrzturls">
  99. </div>
  100. </div>
  101. <div class="layui-form-item">
  102. <label class="layui-form-label">程序准入设置:</label>
  103. <div class="layui-input-inline grant-name" style="padding:7px 0;">
  104. 五天未登录禁止使用 &nbsp;&nbsp;&nbsp;<input type="checkbox" name="disable_day" {if $disable_day}checked{/if} value="1" lay-skin="switch" lay-text="开启|关闭">
  105. </div>
  106. </div>
  107. <div class="layui-form-item">
  108. <label class="layui-form-label">(程序准入)不受限制人员:</label>
  109. <div class="layui-input-inline grant-name" style="padding:7px 0;">
  110. <div class="layui-btn setunlimitEle" style="position: relative;top: 3px;">设置人员</div>
  111. </div>
  112. </div>
  113. <div class="layui-form-item">
  114. <div class="layui-input-block" style="margin-left:130px !important;">
  115. <input type="hidden" value="{$logo}" name="logo">
  116. {auth:check name="org/setting"}
  117. <input type="button" class="layui-btn btn layui-btn-primary" lay-submit lay-filter="submit"
  118. id="submit" value="确认保存">
  119. {/auth:check}
  120. </div>
  121. </div>
  122. </form>
  123. </div>
  124. </div>
  125. </div>
  126. </body>
  127. {/block} {block name="js"}
  128. <!-- 配置文件 -->
  129. <script type="text/javascript" src="__STATIC__/ueditor/dist/utf8-php/ueditor.config.js"></script>
  130. <!-- 编辑器源码文件 -->
  131. <script type="text/javascript" src="__STATIC__/ueditor/dist/utf8-php/ueditor.all.js"></script>
  132. <!-- 实例化编辑器 -->
  133. <script type="text/javascript">
  134. var ue = UE.getEditor('content');
  135. </script>
  136. <script type="text/javascript">
  137. function RegularNum(obj) {
  138. obj.value = obj.value.replace(/[^\d.]/g, ""); //清除"数字"和"."以外的字符
  139. obj.value = obj.value.replace(/^\./g, ""); //验证第一个字符是数字
  140. obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个, 清除多余的
  141. obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
  142. obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入三个小数
  143. }
  144. function RegularInt(obj) {
  145. obj.value = obj.value.replace(/[^\d-]/g, ""); //清除"数字以外的字符
  146. obj.value = obj.value.replace(/^\./g, ""); //验证第一个字符是数字
  147. }
  148. </script>
  149. <script>
  150. layui.config({
  151. base: '__LAYUI__/' //静态资源所在路径
  152. ,
  153. urlbase: '/sys'
  154. }).extend({
  155. index: 'lib/index' //主入口模块
  156. }).use(['index', 'table', 'layedit', 'element', 'upload'], function () {
  157. var $ = layui.$,
  158. upload = layui.upload,
  159. layedit = layui.layedit,
  160. form = layui.form;
  161. var set_List = [];
  162. $.ajax({
  163. url: '{:url("org/company_vrlist")}',
  164. type: 'post',
  165. success: function (res) {
  166. if (res.code == 0) {
  167. set_List = res.data;
  168. set_step_Html(set_List);
  169. } else {
  170. layer.msg(res.msg, {
  171. anim: 6
  172. , time: 2000
  173. });
  174. }
  175. }
  176. });
  177. //vr作品
  178. $('.vrBtnSelect').click(function(){
  179. let vrStr = $(`#vrAddressElement`).val();
  180. let vrSid = "";
  181. if (vrStr && ((vrStr.indexOf("saastest.zhuangqixiaoguan.com") > -1)||(vrStr.indexOf("h5.zqxg.cc") > -1))) {
  182. vrSid = vrStr.split("/#/")[1];
  183. }
  184. layer.open({
  185. type: 2,
  186. title: ['选择VR作品', 'color:#333333;background-color:#D8E6F1;'],
  187. content: '{:url("building/group")}?id='+vrSid,
  188. area: ['80%', '80%'],
  189. btn: ['确定', '取消'],
  190. yes: function (index, layero) {
  191. let data = layero.find('iframe').contents().find("#hiddentext").val();
  192. if (data) {
  193. let vrObject = JSON.parse(data);
  194. $("#vrAddressElement").val(vrObject.show_url);
  195. }
  196. layer.close(index);
  197. //点击确认触发 iframe 内容中的按钮提交
  198. }
  199. });
  200. })
  201. $(".setunlimitEle").click(function() {
  202. layer.open({
  203. type: 2,
  204. title: ['设置不受限制人员', 'color:#333333;background-color:#D8E6F1;'],
  205. content: '{:url("org/set_unlimited_employee")}',
  206. area: ['80%', '80%'],
  207. btn: ['确定', '取消'],
  208. yes: function (index, layero) {
  209. layer.close(index);
  210. //点击确认触发 iframe 内容中的按钮提交
  211. },
  212. end: function () {}
  213. });
  214. })
  215. function set_step_Html(set_List){
  216. $('.vrzturls')[0].innerHTML = $.map(set_List,(v, i) => {
  217. return `<div style="margin-bottom:15px;"><label class="layui-form-label">VR展厅链接:</label>
  218. <div class="layui-input-inline grant-name">
  219. <input style="width:40%;" class="layui-input" data-type="name" data-index="${i}" type="text" placeholder="展厅名称" value="${v.name}">
  220. <span style="margin: 0 5px;line-height: 38px">-</span>
  221. <input id="vrShowElement${v.id}" class="layui-input" data-type="url" data-index="${i}" type="text" placeholder="VR展厅链接" value="${v.url}">
  222. <div class="vrBtnSelect vrChooseElement" data-index="${i}" data-id="${v.id}">选择vr作品</div>
  223. </div>
  224. <i class="layui-icon layui-icon-add-circle org_vradd" style="font-size: 24px;line-height: 38px;cursor: pointer;" data-index="${set_List.length+1}"></i>
  225. <i class="layui-icon layui-icon-reduce-circle org_delete" style="font-size: 24px;line-height: 38px;cursor: pointer;margin-left:10px;" data-id="${v.id}" data-index="${i}"></i>
  226. </div>`
  227. }).join('');
  228. setTimeout(() => {
  229. $('.org_vradd').click((e) => {
  230. let index = parseInt(e.target.dataset.index);
  231. set_List.push({
  232. id:'',
  233. name:'',
  234. url:''
  235. });
  236. set_step_Html(set_List)
  237. })
  238. $(".vrChooseElement").click(function() {
  239. let id = $(this).prop("dataset").id;
  240. let idx = parseInt($(this).prop("dataset").index||0);
  241. let vrStr = $(`#vrShowElement${id}`).val();
  242. let vrSid = "";
  243. if (vrStr && ((vrStr.indexOf("saastest.zhuangqixiaoguan.com") > -1)||(vrStr.indexOf("h5.zqxg.cc") > -1))) {
  244. vrSid = vrStr.split("/#/")[1];
  245. }
  246. layer.open({
  247. type: 2,
  248. title: ['选择VR作品', 'color:#333333;background-color:#D8E6F1;'],
  249. content: '{:url("building/group")}?id=' + vrSid,
  250. area: ['80%', '80%'],
  251. btn: ['确定', '取消'],
  252. yes: function (index, layero) {
  253. let data = layero.find('iframe').contents().find("#hiddentext").val();
  254. if (data) {
  255. let vrObject = JSON.parse(data);
  256. $(`#vrShowElement${id}`).val(vrObject.show_url);
  257. set_List[idx]['url'] = vrObject.show_url;
  258. }
  259. layer.close(index);
  260. //点击确认触发 iframe 内容中的按钮提交
  261. }
  262. });
  263. })
  264. $('.org_delete').click(function(){
  265. console.log($(this).prop("dataset"));
  266. let dataobj = $(this).prop("dataset");
  267. if(set_List.length<=1){
  268. layer.msg('VR展厅链接最少要保留1个');
  269. }else{
  270. if(dataobj.id){
  271. $.ajax({
  272. url: '{:url("org/del_companyvr")}',
  273. data: {id:dataobj.id},
  274. type: 'post',
  275. success: function (res) {
  276. if (res.code == 0) {
  277. layer.msg(res.msg)
  278. let index = parseInt(dataobj.index);
  279. set_List.splice(index, 1);
  280. set_step_Html(set_List)
  281. } else {
  282. layer.msg(res.msg, {
  283. anim: 6
  284. , time: 2000
  285. });
  286. }
  287. }
  288. });
  289. }else{
  290. let index = parseInt(dataobj.index);
  291. set_List.splice(index, 1);
  292. set_step_Html(set_List)
  293. }
  294. }
  295. })
  296. $('input').change((e) => {
  297. let type = e.target.dataset.type;
  298. let val = e.target.value;
  299. if (type && type != undefined) {
  300. let index = parseInt(e.target.dataset.index);
  301. set_List[index][type] = val;
  302. }
  303. })
  304. },500)
  305. }
  306. $('input[type="number"]').bind('mousewheel', function(event, delta) {return false;});
  307. upload.render({
  308. elem: '#upload-drag',
  309. accept: 'image',
  310. exts: 'png|jpg',
  311. auto: false,
  312. field: 'logo_file',
  313. size: 1 * 1024,
  314. choose: function (obj) {
  315. obj.preview(function (index, file, result) {
  316. $('#upload-drag').html('<img src="' + result + '" style="height: 100%;width:100%;">');
  317. });
  318. }
  319. });
  320. //自定义验证规则
  321. form.verify({
  322. mobile: function (value) {
  323. if (value.length != 11) {
  324. return '新手机号必须为11位合法数字';
  325. }
  326. var reg = /^1(2|3|4|5|6|7|8|9)\d{9}$/;
  327. if (reg.test(value)) {
  328. // return '手机号码格式正确';
  329. } else {
  330. return '非法手机号';
  331. }
  332. }
  333. });
  334. form.on('submit(submit)', function (data) {
  335. //let companyIntroduction = layedit.getContent(textarea);
  336. let companyIntroduction = ue.getContent();
  337. if (!companyIntroduction) {
  338. layer.msg('请填写公司介绍');
  339. return;
  340. } else if (!data.field.company_address) {
  341. layer.msg('请填写地址信息');
  342. return;
  343. }
  344. // } else if (!data.field.vr_address) {
  345. // layer.msg('请填写VR寻址链接');
  346. // return;
  347. // } else if (!data.field.vr_show) {
  348. // layer.msg('请填写VR展厅链接');
  349. // return;
  350. // }
  351. var formData = new FormData(data.form);
  352. let vrArray = set_List.filter(item => item.url);
  353. set_List2 = JSON.stringify(vrArray)
  354. formData.append('vr_show',set_List2);
  355. formData.set('company_introduction', companyIntroduction);
  356. $.ajax({
  357. url: '{:url("org/setting")}',
  358. type: 'post',
  359. data: formData,
  360. dataType: 'json',
  361. processData: false,
  362. contentType: false,
  363. success: function (res) {
  364. if (res.code === 0) {
  365. layer.msg(res.msg, {
  366. anim: 0
  367. , time: 2000
  368. });
  369. } else {
  370. layer.msg(res.msg, {
  371. anim: 6
  372. , time: 2000
  373. });
  374. }
  375. }
  376. });
  377. });
  378. });
  379. </script>
  380. {/block}