1
0

casedetail.html 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194
  1. {extend name="public/layout" /} {block name="title"}素材案例修改{/block} {block name="body"}
  2. <script src="/static/js/jquery.min.js"></script>
  3. <style type="text/css">
  4. html,
  5. body {
  6. display: block;
  7. width: 100%;
  8. background-color: #fff;
  9. }
  10. .layui-fluid {
  11. display: block;
  12. border-radius: 5px;
  13. background-color: #ffffff;
  14. padding: 15px 30px;
  15. }
  16. .layui-icon{font-size:20px !important;line-height: 38px;}
  17. .layui-input-inline{line-height: 38px;}
  18. .layui-input-inline input{margin-right: 10px;}
  19. .layui-form-item .layui-input-inline{}
  20. .input-indent-box-small{margin-left:10px;}
  21. .layui-tab {
  22. padding: 15px;
  23. height: 100%;
  24. }
  25. .layui-table-view .layui-table th,
  26. .layui-table-view .layui-table td {
  27. text-align: center;
  28. border-color: #B6CADE;
  29. }
  30. .layui-table thead tr,
  31. .layui-table-header {
  32. background-color: #D8E6F1;
  33. }
  34. .input-indent-box {
  35. display: inline;
  36. width: 80%;
  37. }
  38. .input-indent-box-small {
  39. display: inline;
  40. width: 20%;
  41. }
  42. .adding {
  43. cursor: pointer;
  44. }
  45. .upload-img .area i {
  46. font-size: 50px;
  47. color: #009688;
  48. }
  49. .evi-block {
  50. float: left;
  51. margin-right: 10px;
  52. }
  53. /*///*/
  54. .imageDiv {
  55. display: inline-block;
  56. width: 140px;
  57. height: 125px;
  58. -webkit-box-sizing: border-box;
  59. -moz-box-sizing: border-box;
  60. box-sizing: border-box;
  61. border: 1px dashed darkgray;
  62. background: #f8f8f8;
  63. position: relative;
  64. overflow: hidden;
  65. }
  66. .addImages {
  67. display: inline-block;
  68. width: 140px;
  69. height: 125px;
  70. -webkit-box-sizing: border-box;
  71. -moz-box-sizing: border-box;
  72. box-sizing: border-box;
  73. border: 1px dashed darkgray;
  74. background: #f8f8f8;
  75. position: relative;
  76. overflow: hidden;
  77. }
  78. .text-detail {
  79. margin-top: 40px;
  80. text-align: center;
  81. }
  82. .text-detail>span {
  83. font-size: 40px;
  84. }
  85. .imageDiv div {
  86. width: 100%;
  87. height: 100%;
  88. position: absolute;
  89. top: 0px;
  90. background-color: #e6e6e600;
  91. }
  92. .imageDiv div i {
  93. display: none;
  94. font-size: 31px;
  95. position: absolute;
  96. top: 37%;
  97. left: 40%;
  98. }
  99. .imageDiv div:hover {
  100. background-color: #e6e6e680;
  101. }
  102. .imageDiv div:hover i {
  103. display: block;
  104. cursor: pointer;
  105. }
  106. .rotate180 {
  107. -webkit-transform: rotate(180deg);
  108. transform: rotate(180deg);
  109. }
  110. .layui-edge.rotate180 {
  111. margin-top: -9px;
  112. }
  113. .layui-input-inline.input-longer-inline {
  114. width: 290px;
  115. }
  116. .goback {
  117. float: right;
  118. }
  119. .goback a {
  120. color: #269efb;
  121. }
  122. .goback i {
  123. position: relative !important;
  124. }
  125. .layui-btn-primary {
  126. color: #249EFB;
  127. /* border: 1px solid #249EFB; */
  128. }
  129. .layui-btn-primary:hover {
  130. background-color: #E3F7FF;
  131. color: #249EFB;
  132. }
  133. .layui-form-itme-left{
  134. float:left;
  135. clear: none;
  136. width:330px;
  137. position: relative;
  138. }
  139. .layui-form{overflow:hidden;}
  140. .layui-mj-t{position:absolute;right: 8%;top:6%;}
  141. .relative {
  142. position: relative;
  143. }
  144. .wordlist {
  145. width: 20px;
  146. position: absolute;
  147. top: 44px;
  148. right: 1px;
  149. display: flex;
  150. flex-direction: column;
  151. z-index: 99999;
  152. height: auto;
  153. justify-content: flex-start;
  154. align-items: center;
  155. box-sizing: border-box;
  156. padding: 3px 0px;
  157. overflow: hidden;
  158. max-height: 295px;
  159. -ms-overflow-style: none;
  160. /* IE 10+ */
  161. scrollbar-width: none;
  162. /* Firefox */
  163. overflow-y: scroll;
  164. background-color: #f5f5f5;
  165. }
  166. .wordlist::-webkit-scrollbar {
  167. display: none;
  168. /* Chrome Safari */
  169. }
  170. .wordlist>li {
  171. width: 20px;
  172. height: 37px;
  173. cursor: pointer;
  174. display: flex;
  175. justify-content: center;
  176. align-items: center;
  177. margin-bottom: 0px;
  178. line-height: 37px;
  179. }
  180. .li_active {
  181. font-weight: 700;
  182. background-color: #249EFB;
  183. color: #fff;
  184. }
  185. .noneClass {
  186. display: none !important;
  187. }
  188. .c_wordlist {
  189. width: 20px;
  190. position: absolute;
  191. top: 43px;
  192. right: 30px;
  193. display: flex;
  194. flex-direction: column;
  195. z-index: 99999;
  196. height: auto;
  197. justify-content: flex-start;
  198. align-items: center;
  199. box-sizing: border-box;
  200. padding: 4px 0px;
  201. overflow: hidden;
  202. max-height: 298px;
  203. -ms-overflow-style: none;
  204. /* IE 10+ */
  205. scrollbar-width: none;
  206. /* Firefox */
  207. overflow-y: scroll;
  208. background-color: #f5f5f5;
  209. }
  210. .c_wordlist::-webkit-scrollbar {
  211. display: none;
  212. /* Chrome Safari */
  213. }
  214. .c_wordlist>li {
  215. width: 20px;
  216. height: 37px;
  217. cursor: pointer;
  218. display: flex;
  219. justify-content: center;
  220. align-items: center;
  221. margin-bottom: 0px;
  222. line-height: 37px;
  223. }
  224. dd {
  225. border-bottom: 1px solid #EFEFEF;
  226. }
  227. .layui-anim-upbit {
  228. -ms-overflow-style: none;
  229. /* IE 10+ */
  230. scrollbar-width: none;
  231. /* Firefox */
  232. overflow-y: scroll;
  233. background-color: #fff;
  234. }
  235. .layui-anim-upbit::-webkit-scrollbar {
  236. display: none;
  237. /* Chrome Safari */
  238. }
  239. .layui-form-xxkbg{background:#ECECEC;overflow: hidden;padding-top: 10px;}
  240. .layui-form-xxk-ul{float:left;overflow: hidden;width:36%;}
  241. .layui-form-xxk-ul li{float:left;width:25%;height:36px;line-height: 36px;text-align: center;cursor: pointer;font-size: 14px;}
  242. .layui-zhu{color:#BF0505;line-height: 23px;float:right;font-size: 14px;}
  243. .addxxkli{background: #fff;border-radius: 6px 6px 0 0;}
  244. .width94_{width:96%;}
  245. .wauto{margin:0 auto;}
  246. .layui-xxk-body-box{clear:both;}
  247. .layui-xxk-bodys{margin-top:20px;}
  248. .layui-xxk-bodys dd{display: none;border: 0;}
  249. .layui-form-select dl {
  250. width: 100% !important;
  251. }
  252. .center {
  253. text-align: center;
  254. }
  255. .vrlishow{display: none;}
  256. .housetype>i{
  257. font-size: 12px !important;
  258. line-height: 38px;
  259. color: #4e8bfd;
  260. float: right;
  261. }
  262. .flexBox {
  263. display: flex !important;
  264. }
  265. .vrBtnSelect {
  266. max-width: 100px;
  267. white-space: nowrap;
  268. padding: 0px 10px;
  269. height: 38px;
  270. background-color: #249EFB;
  271. color: #ffffff;
  272. text-align: center;
  273. line-height: 38px;
  274. border-radius: 4px;
  275. margin-left: 5px;
  276. cursor: pointer;
  277. }
  278. </style>
  279. <body>
  280. <div class="layui-fluid">
  281. <div class="layui-card">
  282. <!-- <div class="layui-card-header ">
  283. <div class="layui-form-item">
  284. <div class="layui-inline">
  285. <strong>装修案例</strong>
  286. </div>
  287. </div>
  288. </div> -->
  289. <div class="layui-card-body">
  290. <form class="layui-form" enctype="multipart/form-data" lay-filter="anli-form">
  291. <div class="layui-form-item layui-form-itme-left">
  292. <label class="layui-form-label"><i style="color:red;">*</i>标题</label>
  293. <div class="layui-input-inline" style="width: 200px;">
  294. <input class="layui-input inputBox" name="title" type="text" value="" placeholder="请输入标题" autocomplete="off">
  295. </div>
  296. </div>
  297. <div class="layui-form-item layui-form-itme-left relative">
  298. <label class="layui-form-label"><i style="color:red;">*</i>小区</label>
  299. <div class="layui-input-inline" id="box212">
  300. <select name="community_id" id="label" lay-verify="required" lay-search lay-filter="type">
  301. <option value="">请选择小区</option>
  302. {notempty name="communities"}
  303. {volist name="communities.arr" id="vo"}
  304. <option data-py="{$vo.s}" value="{$vo.id}" >{$vo.name}</option>
  305. {/volist}
  306. {/notempty}
  307. </select>
  308. </div>
  309. <ul class="c_wordlist noneClass">
  310. {notempty name="communities"}
  311. {volist name="communities.sort" id="vo"}
  312. <li data-py="{$vo}">{$vo}</li>
  313. {/volist}
  314. {/notempty}
  315. </ul>
  316. <i class="layui-icon layui-icon-add-circle adding" style="font-size: 32px" id="community-add"></i>
  317. </div>
  318. <div class="layui-form-item layui-form-itme-left">
  319. <label class="layui-form-label">设计师</label>
  320. <div class="layui-input-inline">
  321. <div class="layui-unselect layui-form-select">
  322. <div class="layui-select-title designer-ele-group box121 select_designer_input">
  323. <input type="text" id="select_designer" class="layui-input layui-unselect designer-ele-group" value="" readonly="readonly" data-selectedid="" placeholder="--设计师--" autocomplete="off" />
  324. <i class="layui-edge designer-ele-group" id="designer_arrow"></i>
  325. </div>
  326. <dl class="layui-anim layui-anim-upbit designer-ele-group box121" id="dropdown_designer">
  327. {notempty name="designers.arr"}
  328. {volist name="designers.arr" id="vo"}
  329. <dd class="designer_option designer-ele-group designerlist" data-py="{$vo.s}" data-id="{$vo.id}"> {$vo.name}</dd>
  330. {/volist}
  331. {else/}
  332. <dd class="center">暂无数据</dd>
  333. {/notempty}
  334. </dl>
  335. <ul class="wordlist noneClass">
  336. {notempty name="designers"}
  337. {volist name="designers.sort" id="vo"}
  338. <li data-word="{$vo}">{$vo}</li>
  339. {/volist}
  340. {/notempty}
  341. </ul>
  342. </div>
  343. </div>
  344. </div>
  345. <div class="layui-form-item layui-form-itme-left">
  346. <label class="layui-form-label"><i style="color:red;">*</i>风格</label>
  347. <div class="layui-input-inline">
  348. <div class="layui-unselect layui-form-select">
  349. <div class="layui-select-title decostyle-ele-group select_decostyle_input">
  350. <input type="text" id="select_decostyle" class="layui-input layui-unselect decostyle-ele-group" readonly="readonly" value="" data-selectedid="" placeholder="--风格--" autocomplete="off" />
  351. <i class="layui-edge decostyle-ele-group" id="decostyle_arrow"></i>
  352. </div>
  353. <dl class="layui-anim layui-anim-upbit decostyle-ele-group" id="dropdown_decostyle">
  354. {volist name="decostyles" id="vo"}
  355. <dd class="decostyle_option decostyle-ele-group" data-id="{$vo.id}"> {$vo.name}</dd>
  356. {/volist}
  357. </dl>
  358. </div>
  359. </div>
  360. <i class="layui-icon layui-icon-add-circle adding" style="font-size: 32px" id="decostyle-add"></i>
  361. </div>
  362. <div class="layui-form-item layui-form-itme-left">
  363. <label class="layui-form-label"><i style="color:red;">*</i>房屋类型</label>
  364. <div class="layui-input-inline">
  365. <div class="layui-unselect layui-form-select">
  366. <div class="layui-select-title housetype-ele-group select_housetype_input">
  367. <input type="text" readonly="readonly" id="select_housetype" class="layui-input layui-unselect housetype-ele-group" value="" data-selectedid="" placeholder="--户型--" autocomplete="off" />
  368. <input type="hidden" id="housetype" name="housetype_type" value="{$data.housetype_type}"/>
  369. <i class="layui-edge housetype-ele-group" id="housetype_arrow"></i>
  370. </div>
  371. <dl class="layui-anim layui-anim-upbit housetype-ele-group" id="dropdown_housetype">
  372. <dd class="topselectbtn housetype-ele-group" data-ref="adddehousetype"> + 添加户型 + </dd>
  373. {volist name="housetype" id="vo"}
  374. <dd class="housetype_option housetype-ele-group" data-id="{$vo.id}"> {$vo.name}</dd>
  375. {/volist}
  376. </dl>
  377. </div>
  378. </div>
  379. <i class="layui-icon layui-icon-add-circle adding" style="font-size: 32px" id="housetype-add"></i>
  380. </div>
  381. <div class="layui-form-item layui-form-itme-left">
  382. <label class="layui-form-label"><i style="color:red;">*</i>面积</label>
  383. <div class="layui-input-inline" style="width:200px;">
  384. <input class="layui-input input-indent-box" onkeyup="RegularInt(this)" style="width:100%;" name="square" type="text" placeholder="请输入面积" value="" lay-verify="subject_add"/>
  385. <span class="layui-mj-t">平米</span>
  386. </div>
  387. </div>
  388. <div class="layui-form-item layui-form-itme-left">
  389. <label class="layui-form-label">价格</label>
  390. <div class="layui-input-inline" style="width: 200px;">
  391. <input class="layui-input input-indent-box" onkeyup="RegularNum(this)" style="width:100%;" name="money" type="text" value="" placeholder="请输入价格" />
  392. <span class="layui-mj-t">万元</span>
  393. </div>
  394. </div>
  395. <!-- <div class="layui-form-item">
  396. <label class="layui-form-label"><i style="color:red;">*</i>户型</label>
  397. <div class="layui-input-inline" style="width:400px;">
  398. <input class="layui-input input-indent-box-small" style="margin-left: 0;" name="room" type="number" value="" placeholder="几" min="0" oninput="validity.valid||(value='');" />房
  399. <input class="layui-input input-indent-box-small" name="hall" type="number" value="" placeholder="几" min="0" oninput="validity.valid||(value='');" />厅
  400. <input class="layui-input input-indent-box-small" name="toilet" type="number" value="" placeholder="几" min="0" oninput="validity.valid||(value='');" />卫
  401. </div>
  402. </div> -->
  403. <div class="layui-form-item " style="clear: both;">
  404. <label class="layui-form-label"><i style="color:red;">*</i>封面图</label>
  405. <div style="margin: 20px 20px 0px;">
  406. <!-- -->
  407. <div class="addImages" id="anlicoverimg">
  408. <div class="text-detail">
  409. <span>+</span>
  410. <p>选择替换封面图</p>
  411. </div>
  412. <img src="{:$data['cover_img']}?x-oss-process=image/resize,l_125" class="layui-upload-img" width="100%" height="100%">
  413. </div>
  414. </div>
  415. </div>
  416. <div class="layui-form-item">
  417. <label class="layui-form-label"></label>
  418. <div><i style="color: red;margin-right:5px;">*</i>建议上传封面图宽高比例5:3,图片大小不超过1M</div>
  419. </div>
  420. <div class="layui-form-item " style="clear:both;width: 100%;">
  421. <label class="layui-form-label">分享封面</label>
  422. <div style="margin: 20px 20px 0px;">
  423. <div class="addImages" id="cover">
  424. <div class="text-detail">
  425. <span>+</span>
  426. <p>选择分享封面</p>
  427. </div>
  428. <img src="{:$data['cover_share_img']}?x-oss-process=image/resize,l_125" class="layui-share-upload-img" id="cover_share_img" width="100%" height="100%">
  429. </div>
  430. </div>
  431. </div>
  432. <div class="layui-form-item" style="width: 100%;">
  433. <label class="layui-form-label"></label>
  434. <div><i style="color: red;margin-right:5px;">*</i>上传分享封面图宽高比例5:4,图片大小不超过1M</div>
  435. </div>
  436. <div class="layui-xxk-body-box">
  437. <div class="layui-form-xxkbg">
  438. <div class="width94_ wauto">
  439. <ul class="layui-form-xxk-ul">
  440. <li class="addxxkli">效果案例</li>
  441. <li>实景案例</li>
  442. <li>视频案例</li>
  443. <li>VR案例</li>
  444. </ul>
  445. <p class="layui-zhu">注:四种案例形式可同时展现</p>
  446. </div>
  447. </div>
  448. <dl class="layui-xxk-bodys">
  449. <dd style="display:block;">
  450. <div class="layui-form-item" style="clear:both;width:100%;">
  451. <label class="layui-form-label">描述</label>
  452. <div class="layui-input-block">
  453. <!-- <textarea id="anli_content1" name="anli_desc" placeholder="描述" autocomplete="off" class="layui-textarea">{:$data["desc"]}</textarea> -->
  454. <script id="anli_content1" name="anli_desc" type="text/plain" style="height: 350px;">{:$data["desc"]}</script>
  455. </div>
  456. </div>
  457. </dd>
  458. <dd>
  459. <div class="layui-form-item" style="clear:both;width:100%;">
  460. <label class="layui-form-label">描述</label>
  461. <div class="layui-input-block">
  462. <!-- <textarea id="anli_content2" name="real_case" placeholder="描述" autocomplete="off" class="layui-textarea">{:$data["real_case"]}</textarea> -->
  463. <script id="anli_content2" name="real_case" type="text/plain" style="height: 350px;">{:$data["real_case"]}</script>
  464. </div>
  465. </div>
  466. </dd>
  467. <dd>
  468. <div class="layui-form-item layui-hide" >
  469. <div class="layui-input-inline" style="width: 290px;">
  470. <input type="radio" name="myradio" value="random_name" checked=true/> 上传文件名字是随机文件名, 后缀保留
  471. </div>
  472. </div>
  473. <div class="layui-form-item" style="clear:both;width:100%;">
  474. <label class="layui-form-label">选择视频</label>
  475. <div class="layui-input-block">
  476. <div class="layui-input-inline" style="width: 290px;display: block;" id="container">
  477. <a class="layui-btn btn layui-border-btn" id="selectfiles" href="javascript:void(0);" >选择视频</a>
  478. <a class="layui-btn btn layui-border-btn" id="postfiles" href="javascript:void(0);">开始上传</a>
  479. <div id="ossfile"></div>
  480. <div id="symbshowed">{$data.video_case}</div>
  481. <!--报错信息返回展示-->
  482. <pre id="console"></pre>
  483. <input type="hidden" value="" id="fileuri">
  484. <!--上传到OSS哪个文件下,在这里定义-->
  485. <input type="hidden" value="Video" id="category_name">
  486. </div>
  487. </div>
  488. </div>
  489. <div class="layui-form-item" style="clear:both;width:100%;">
  490. <label class="layui-form-label"><i style="color:red;">*</i> 视频格式:</label>
  491. <div class="layui-input-block lh45 mdl20" style="max-width: 300px !important;">
  492. <input type="radio" id="1" class="radio_input" lay-filter="video_type"
  493. name="video_type" value="0" title="全屏" {if $data.video_type == 0} checked {/if}>
  494. <input type="radio" id="2" class="radio_input" lay-filter="video_type"
  495. name="video_type" value="1" title="横屏" {if $data.video_type == 1} checked {/if}>
  496. </div>
  497. </div>
  498. <div class="layui-form-item videolimit">
  499. <label class="layui-form-label"></label>
  500. <div><i style="color:red;margin-right:5px;">*</i><span id="limitVA">上传视频大小不超过280M</span></div>
  501. </div>
  502. </dd>
  503. <dd>
  504. <div class="layui-form-item" style="clear:both;width:100%;">
  505. <div class="vrlishow" style="display: block;">
  506. <label class="layui-form-label">VR链接:</label>
  507. <div class="layui-input-block flexBox">
  508. <input type="text" id="vrlink1" name="vr_link" value="{$data.vr_case}" placeholder="请输入VR链接" autocomplete="off" class="layui-input">
  509. <div class="vrBtnSelect">选择vr作品</div>
  510. </div>
  511. </div>
  512. </div>
  513. </dd>
  514. </dl>
  515. </div>
  516. <div class="layui-form-item" style="clear:both;">
  517. <label class="layui-form-label">推荐</label>
  518. <div class="layui-input-block">
  519. <input type="checkbox" name="recommend" title="" lay-skin="primary" {if $data.recommend}checked{/if}>
  520. </div>
  521. </div>
  522. <input type="hidden" name="id" id="id" value="" />
  523. <div class="layui-form-item submit-btn">
  524. <input class="layui-btn layui-btn-primary " style="margin-left:110px;" type="button" lay-submit lay-filter="layuiadmin-anli-submit" id="layuiadmin-anli-submit" value="确认提交">
  525. </div>
  526. </form>
  527. </div>
  528. </div>
  529. </div>
  530. <script type="text/javascript">
  531. function RegularNum(obj) {
  532. obj.value = obj.value.replace(/[^\d.]/g, ""); //清除"数字"和"."以外的字符
  533. obj.value = obj.value.replace(/^\./g, ""); //验证第一个字符是数字
  534. obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个, 清除多余的
  535. obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
  536. obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两位小数
  537. }
  538. function RegularInt(obj) {
  539. obj.value = obj.value.replace(/[^\d]/g, ""); //清除"数字以外的字符
  540. obj.value = obj.value.replace(/^\./g, ""); //验证第一个字符是数字
  541. }
  542. </script>
  543. </body>
  544. {/block} {block name="js"}
  545. <!-- 配置文件 -->
  546. <script type="text/javascript" src="__STATIC__/ueditor/dist/utf8-php/ueditor.config.js"></script>
  547. <!-- 编辑器源码文件 -->
  548. <script type="text/javascript" src="__STATIC__/ueditor/dist/utf8-php/ueditor.all.js"></script>
  549. <!-- 实例化编辑器 -->
  550. <script type="text/javascript">
  551. var ue = UE.getEditor('anli_content1');
  552. var ues = UE.getEditor('anli_content2');
  553. </script>
  554. <script type="text/javascript" src="__STATIC__/js/plupload/js/plupload.full.min.js"></script>
  555. <script type="text/javascript" src="__STATIC__/js/plupload/ossupload.js"></script>
  556. <script>
  557. layui.config({
  558. base: '__LAYUI__/' //静态资源所在路径
  559. ,urlbase: '/sys'
  560. }).extend({
  561. index: 'lib/index' //主入口模块
  562. }).use(['index', 'form', 'upload','layedit'], function() {
  563. var form = layui.form,
  564. upload = layui.upload,
  565. layedit = layui.layedit,
  566. files = [],
  567. $ = layui.jquery;
  568. var cover_img='';
  569. form.render();
  570. layedit.set({
  571. uploadImage: {
  572. url: '{:url("material/fileupload")}'
  573. }
  574. });
  575. //vr作品
  576. $('.vrBtnSelect').click(function(){
  577. let vrStr = $('input[name="vr_link"]').val();
  578. let vrSid = "";
  579. if (vrStr && ((vrStr.indexOf("saastest.zhuangqixiaoguan.com") > -1)||(vrStr.indexOf("h5.zqxg.cc") > -1))) {
  580. vrSid = vrStr.split("/#/")[1];
  581. }
  582. layer.open({
  583. type: 2,
  584. title: ['选择VR作品', 'color:#333333;background-color:#D8E6F1;'],
  585. content: '{:url("building/group")}?id=' + vrSid,
  586. area: ['80%', '80%'],
  587. btn: ['确定', '取消'],
  588. yes: function (index, layero) {
  589. let data = layero.find('iframe').contents().find("#hiddentext").val();
  590. if (data) {
  591. let vrObject = JSON.parse(data);
  592. $('input[name="vr_link"]').val(vrObject.show_url);
  593. }
  594. layer.close(index);
  595. //点击确认触发 iframe 内容中的按钮提交
  596. }
  597. });
  598. })
  599. if('{:$data["cover_img"]}'){
  600. $('#anlicoverimg>.text-detail').hide();
  601. $('.layui-upload-img').show();
  602. }else{
  603. $('#anlicoverimg>.text-detail').show();
  604. $('.layui-upload-img').hide();
  605. }
  606. if('{:$data["cover_share_img"]}'){
  607. $('#cover>.text-detail').hide();
  608. $('.layui-share-upload-img').show();
  609. }else{
  610. $('#cover>.text-detail').show();
  611. $('.layui-share-upload-img').hide();
  612. }
  613. //var anliediterindex = layedit.build('anli_content1');
  614. //var anliediterindex2 = layedit.build('anli_content2');
  615. $('.layui-form-xxk-ul li').click(function(){
  616. var n=$(this).index();
  617. $(this).addClass('addxxkli').siblings().removeClass('addxxkli');
  618. $('.layui-xxk-bodys dd').eq(n).show().siblings().hide();
  619. })
  620. //自定义验证规则
  621. form.verify({
  622. subject_add: function(value) {
  623. if (value > 5000) {
  624. return '面积最大值5000';
  625. }
  626. },
  627. });
  628. /////////
  629. var obj = {
  630. title : "{:$data['title']}",
  631. community_id: "{:$data['community_id']}",
  632. designer_id: "{:$data['designer_id']}",
  633. style_id : "{:$data['style_id']}",
  634. housetype_id : "{:$data['housetype_id']}",
  635. housetype_type:"{:$data['housetype_type']}",
  636. square: "{:$data['square']}",
  637. money: "{$data->getData('money')|floatval}" != 0 ? "{$data->getData('money')|floatval}":'',
  638. //money: "{:$data['new_money']}"!='暂无报价'? "{:$data['new_money']}":'',
  639. room: "{:$data['room']}",
  640. hall: "{:$data['hall']}",
  641. toilet: "{:$data['toilet']}",
  642. id: "{:$data['id']}"
  643. };
  644. // 给表单初始赋值,但是无法实现对复选框赋值
  645. form.val("anli-form", obj);
  646. var select_community = $('#select_community');
  647. select_community.data('selectedid', "{:$data['community_id']}");
  648. select_community.val("{:isset($data['community']['name'])?$data['community']['name']:''}");
  649. var select_designer = $('#select_designer');
  650. select_designer.data('selectedid', "{:$data['designer_id']}");
  651. select_designer.val("{:isset($data['designer']['name'])?$data['designer']['name']:''}");
  652. var select_decostyle = $('#select_decostyle');
  653. // select_decostyle.data('selectedid', "{:$data['decostyle_id']}");
  654. select_decostyle.data('selectedid', "{:$data['style_id']}");
  655. select_decostyle.val("{:isset($data['decostyle']['name'])?$data['decostyle']['name']:''}");
  656. var select_housetype = $('#select_housetype');
  657. select_housetype.data('selectedid', "{:$data['housetype_id']}");
  658. select_housetype.val("{:isset($data['housetype']['name'])?$data['housetype']['name']:''}");
  659. // ue.ready(function() {
  660. // ue.setContent('{:$data["desc"]}'); //注意单双引号的位置
  661. // });
  662. /////
  663. form.on('submit(layuiadmin-anli-submit)', function(data){
  664. var index = parent.layer.getFrameIndex(window.name);
  665. // layer.msg(JSON.stringify(data.field)+ layedit.getContent(editerindex));
  666. var formData = new FormData(data.form);
  667. // formData.append('desc',layedit.getContent(anliediterindex));
  668. // formData.append('real_case',layedit.getContent(anliediterindex2));
  669. formData.append('video_case',$('#fileuri').val());
  670. formData.append('cover_img',$('.layui-upload-img').attr('src'));
  671. formData.append('cover_share_img',$('.layui-share-upload-img').attr('src'));
  672. ue.ready(function () {
  673. formData.append('desc', ue.getContent('anli_content1'));
  674. });
  675. ue.ready(function () {
  676. formData.append('real_case', ues.getContent('anli_content2'));
  677. });
  678. formData.append('community_id', $('#label').val());
  679. formData.append('designer_id', $('#select_designer').data('selectedid'));
  680. formData.append('style_id', $('#select_decostyle').data('selectedid'));
  681. formData.append('housetype_id', $('#select_housetype').data('selectedid'));
  682. formData.append('vr_case',$('[name=vr_link]').val());
  683. $.ajax({
  684. url: '{:url("material/apicaseupdate")}',
  685. type: 'post',
  686. data: formData,
  687. dataType: 'json',
  688. processData: false,
  689. contentType: false,
  690. success: function(res) {
  691. if(res.code === 0) {
  692. layer.msg(res.msg, {
  693. anim: 0,time: 1000,icon: 6,
  694. }, function() {
  695. parent.layui.table.reload('anli-table');
  696. parent.layer.close(index);
  697. });
  698. } else {
  699. layer.msg(res.msg, {anim: 0,time: 1000,icon: 5});
  700. }
  701. }
  702. });
  703. return false;
  704. });
  705. /*---------------------------------------------------------*/
  706. $(document).click((e) => {
  707. let displayState = $('#dropdown_designer').attr('style');
  708. if (displayState === 'display: none;') {
  709. $('.wordlist').addClass('noneClass');
  710. }
  711. let c_element = $('#label').next();
  712. if (c_element[0].className.indexOf('layui-form-selected') < 0) {
  713. $('.c_wordlist').addClass('noneClass');
  714. }
  715. })
  716. $('dd').click(() => {
  717. $('.c_wordlist').addClass('noneClass');
  718. })
  719. $('.box121').click(() => {
  720. $('.wordlist').toggleClass('noneClass')
  721. })
  722. $('.wordlist').click((e) => {
  723. if (e.target.localName != 'li') {
  724. e.stopPropagation();
  725. return;
  726. }
  727. let index = 0;
  728. let curWord = e.target.dataset.word;
  729. let lilist = $('.wordlist').children();
  730. for (let i = 0; i < lilist.length; i++) {
  731. lilist[i].className = '';
  732. }
  733. let options = $('.designerlist');
  734. for (let j = 0; j < options.length; j++) {
  735. if (options[j].dataset.py.toUpperCase() == curWord) {
  736. index = j;
  737. setTimeout(() => {
  738. e.target.className = 'li_active';
  739. let num = j * 37;
  740. $('.box121').scrollTop(num);
  741. }, 50)
  742. e.stopPropagation();
  743. return;
  744. }
  745. }
  746. })
  747. $('#box212').click(() => {
  748. $('.c_wordlist').toggleClass('noneClass');
  749. })
  750. let xqElement = $('.layui-anim-upbit')[0];
  751. xqElement.classList.add('xqElement');
  752. let options = [];
  753. let xqDatalist = $('#label').children();
  754. for (let i = 0; i < xqDatalist.length; i++) {
  755. if (xqDatalist[i].dataset.py) {
  756. options.push(xqDatalist[i].dataset.py)
  757. }
  758. }
  759. $('.c_wordlist').click((e) => {
  760. if (e.target.localName != 'li') {
  761. e.stopPropagation();
  762. return;
  763. }
  764. let index = 0;
  765. let curWord = e.target.dataset.py;
  766. let lilist = $('.c_wordlist').children();
  767. for (let i = 0; i < lilist.length; i++) {
  768. lilist[i].className = '';
  769. }
  770. if (parseInt(curWord) != NaN) {
  771. let word1 = curWord.toLowerCase();
  772. index = options.indexOf(word1)
  773. } else {
  774. index = options.indexOf(curWord)
  775. }
  776. setTimeout(() => {
  777. e.target.className = 'li_active';
  778. let num = index * 37 + 37;
  779. $('.xqElement').scrollTop(num);
  780. }, 50)
  781. e.stopPropagation();
  782. })
  783. $('.layui-select-title input').on('input',function(e) {
  784. if (e.target.placeholder == '请选择小区') {
  785. let val = $(this).val();
  786. if (!val) {
  787. $('.c_wordlist').removeClass('noneClass');
  788. return;
  789. }
  790. $('.c_wordlist').addClass('noneClass');
  791. }
  792. })
  793. /*--------------------------------------------*/
  794. $('.layui-fluid').on('click', function(e) {
  795. if(!$(e.target).hasClass('commu-ele-group')) {
  796. $('#dropdown_community').hide();
  797. $('#commu_arrow').removeClass('rotate180');
  798. }
  799. if(!$(e.target).hasClass('designer-ele-group')) {
  800. $('#dropdown_designer').hide();
  801. $('#designer_arrow').removeClass('rotate180');
  802. }
  803. if(!$(e.target).hasClass('decostyle-ele-group')) {
  804. $('#dropdown_decostyle').hide();
  805. $('#decostyle_arrow').removeClass('rotate180');
  806. }
  807. if(!$(e.target).hasClass('housetype-ele-group')) {
  808. $('#dropdown_housetype').hide();
  809. $('#housetype_arrow').removeClass('rotate180');
  810. }
  811. });
  812. ///////
  813. $('.select_community_input').on('click', function() {
  814. $('#dropdown_community').toggle();
  815. $('#commu_arrow').toggleClass('rotate180');
  816. });
  817. $('.select_designer_input').on('click', function() {
  818. $('#dropdown_designer').toggle();
  819. $('#designer_arrow').toggleClass('rotate180');
  820. });
  821. $('.select_decostyle_input').on('click', function() {
  822. $('#dropdown_decostyle').toggle();
  823. $('#decostyle_arrow').toggleClass('rotate180');
  824. });
  825. $('.select_housetype_input').on('click', function() {
  826. $('#dropdown_housetype').toggle();
  827. $('#housetype_arrow').toggleClass('rotate180');
  828. });
  829. ////////
  830. $(".commu_option").on('click', function() {
  831. var commu_name = $(this).text();
  832. var commu_id = $(this).data('id');
  833. var select_community = $("#select_community");
  834. select_community.val(commu_name);
  835. select_community.data('selectedid', commu_id);
  836. select_community.click();
  837. });
  838. $(".designer_option").on('click', function() {
  839. var designer_name = $(this).text();
  840. var designer_id = $(this).data('id');
  841. var select_designer = $("#select_designer");
  842. select_designer.val(designer_name);
  843. select_designer.data('selectedid', designer_id);
  844. select_designer.click();
  845. });
  846. $(".decostyle_option").on('click', function() {
  847. var decostyle_name = $(this).text();
  848. var decostyle_id = $(this).data('id');
  849. var select_decostyle = $("#select_decostyle");
  850. select_decostyle.val(decostyle_name);
  851. select_decostyle.data('selectedid', decostyle_id);
  852. select_decostyle.click();
  853. });
  854. $('#dropdown_housetype').on('click', ".housetype_option", function() {
  855. var housetype_name = $(this).text();
  856. var housetype_id = $(this).data('id');
  857. var select_housetype = $("#select_housetype");
  858. select_housetype.val(housetype_name);
  859. select_housetype.data('selectedid', housetype_id);
  860. select_housetype.click();
  861. if($(this).hasClass('housetype')){
  862. $('#housetype').val('building_housetype');
  863. }else{
  864. $('#housetype').val('housetype');
  865. }
  866. });
  867. ///
  868. $('.topselectbtn').on('click', function() {
  869. var gonnado = $(this).data('ref');
  870. if(gonnado == 'addcommu') {
  871. addcommunity();
  872. $('#select_community').click();
  873. }
  874. if(gonnado == 'adddesigner') {
  875. adddesigner();
  876. $('#select_designer').click();
  877. }
  878. if(gonnado == 'adddecostyle') {
  879. adddecostyle();
  880. $('#select_decostyle').click();
  881. }
  882. if(gonnado == 'adddehousetype'){
  883. adddehousetype();
  884. $('#select_housetype').click();
  885. }
  886. });
  887. //小区添加
  888. $('#community-add').on('click', function() {
  889. addcommunity();
  890. });
  891. var addcommunity = function() {
  892. layer.prompt({
  893. title: ['小区添加', 'color:#333333;background-color:#D8E6F1;'],
  894. }, function(value, index, elem) {
  895. var value = $.trim(value);
  896. if(value == '') {
  897. layer.msg('请输入小区名称', {anim: 6});
  898. return false;
  899. }
  900. if(value.length > 6) {
  901. layer.msg('小区名称超长', {anim: 6});
  902. return false;
  903. }
  904. $.post('{:url("material/apicommunityadding")}', {
  905. community: value
  906. }, function(res) {
  907. if(res.code == 0) {
  908. $('#label').append("<option selected value='"+res.data.id+"'>"+res.data.name+"</option>")
  909. // $("#select_community").val(res.data.name);
  910. // $("#select_community").attr('data-selectedid',res.data.id);
  911. form.render('select');
  912. layer.msg(res.msg, {
  913. anim: 0
  914. }, function() {
  915. layer.close(index); //再执行关闭
  916. });
  917. } else {
  918. layer.msg(res.msg, {
  919. anim: 6
  920. });
  921. }
  922. });
  923. });
  924. }
  925. //设计师添加
  926. $('#designer-add').on('click', function() {
  927. adddesigner();
  928. });
  929. var adddesigner = function() {
  930. layer.open({
  931. type: 2,
  932. title: ['设计师添加', 'color:#333333;background-color:#D8E6F1;'],
  933. content: '{:url("material/choiceadding")}?type=' + 'designer',
  934. resize: false,
  935. area: ['400px', '350px'],
  936. btn: ['确认提交', '取消'],
  937. yes: function(index, layero) {
  938. //点击确认触发 iframe 内容中的按钮提交
  939. var submit = layero.find('iframe').contents().find("#layuiadmin-designer-submit");
  940. submit.click();
  941. }
  942. });
  943. }
  944. //风格添加
  945. $('#decostyle-add').on('click', function() {
  946. adddecostyle();
  947. });
  948. var adddecostyle = function() {
  949. layer.open({
  950. type: 2,
  951. title: ['风格添加', 'color:#333333;background-color:#D8E6F1;'],
  952. content: '{:url("material/choiceadding")}?type=' + 'decostyle',
  953. resize: false,
  954. area: ['400px', '200px'],
  955. btn: ['确认提交', '取消'],
  956. yes: function(index, layero) {
  957. //点击确认触发 iframe 内容中的按钮提交
  958. var submit = layero.find('iframe').contents().find("#layuiadmin-decostyle-submit");
  959. submit.click();
  960. }
  961. });
  962. }
  963. //户型添加
  964. $('#housetype-add').on('click', function() {
  965. adddehousetype();
  966. });
  967. var adddehousetype = function() {
  968. layer.open({
  969. type: 2,
  970. title: ['户型添加', 'color:#333333;background-color:#D8E6F1;'],
  971. content: '{:url("material/choiceadding")}?type=' + 'housetype',
  972. resize: false,
  973. area: ['400px', '200px'],
  974. btn: ['确认提交', '取消'],
  975. yes: function(index, layero) {
  976. //点击确认触发 iframe 内容中的按钮提交
  977. var submit = layero.find('iframe').contents().find("#layuiadmin-housetype-submit");
  978. submit.click();
  979. }
  980. });
  981. }
  982. $('.upload-img-btn').on('click', function() {
  983. layer.open({
  984. title: ['图文添加', 'color:#333333;background-color:#D8E6F1;'],
  985. type: 2,
  986. content: '{:url("material/evidenceadd")}',
  987. resize: false,
  988. area: ['80%', '80%']
  989. });
  990. });
  991. var uploading = function(){
  992. upload.render({
  993. elem: '#anlicoverimg',
  994. accept: 'images',
  995. url: '{:url("fileupload")}',
  996. exts: 'jpg|png|bmp|jpeg|JPG|PNG|BMP|JPEG',
  997. field: 'file',
  998. size: 5 * 1024,
  999. auto: true,
  1000. choose: function(obj) {
  1001. files = obj.pushFile();
  1002. length = $('.imageDiv').length;
  1003. obj.preview(function(index, file, result) {
  1004. length++;
  1005. if (length > 1) {
  1006. if (length == 10) layer.msg('限制1张图片以下', {time: 2000});
  1007. delete files[index];
  1008. } else {
  1009. $('#anlicoverimg>.text-detail').hide();
  1010. $('.layui-upload-img').show();
  1011. // $('.y_img').remove();
  1012. // $('#anlicoverimg').html('<div class="imageDiv" data-id="' + index + '"><img src="' + result + '" alt="' + file.name + '" class="layui-upload-img" width="100%" height="100%"><div><i class="layui-icon layui-icon-delete" onclick="deleting"></i></div></div>');
  1013. // $('#anlicoverimg').html('<div class="imageDiv" data-id="' + index + '"><img src="' + result + '" alt="' + file.name + '" class="layui-upload-img" width="100%" height="100%"><div class="iconwrapper"></div></div>');
  1014. // var idom = document.createElement('i');
  1015. // idom.classList.add("layui-icon", "layui-icon-delete");
  1016. // idom.addEventListener("click", function(e){
  1017. // e.stopPropagation();
  1018. // var that = this;
  1019. // layer.confirm('确定删除该图片么?', function(index) {
  1020. // var imgDiv = $(that).closest('.imageDiv');
  1021. // if(id = imgDiv.data('id')) {
  1022. // delete files[id];
  1023. // }
  1024. // imgDiv.remove();
  1025. // $('#anlicoverimg').html('<div class="text-detail"><span>+</span><p>选择替换封面图</p></div>');
  1026. // uploading();
  1027. // layer.close(index);
  1028. // });
  1029. // });
  1030. // $('.iconwrapper').append(idom);
  1031. }
  1032. });
  1033. },
  1034. done:function(res){
  1035. $('.layui-upload-img').attr('src',res.data.src)
  1036. }
  1037. });
  1038. }
  1039. uploading();
  1040. // upload.render({
  1041. // elem: '#anlicoverimg',
  1042. // accept: 'images',
  1043. // url: '/upload/',
  1044. // exts: 'jpg|png|bmp|jpeg|JPG|PNG|BMP|JPEG',
  1045. // field: 'cover_img',
  1046. // size: 5 * 1024,
  1047. // auto: false,
  1048. // choose: function(obj) {
  1049. // files = obj.pushFile();
  1050. // length = $('.imageDiv').length;
  1051. // obj.preview(function(index, file, result) {
  1052. // length++;
  1053. // if (length > 9) {
  1054. // if (length == 10) layer.msg('限制九张图片以下', {time: 2000});
  1055. // delete files[index];
  1056. // } else {
  1057. // // $('#anlicoverimg').html('<div class="imageDiv" data-id="' + index + '"><img src="' + result + '" alt="' + file.name + '" class="layui-upload-img" width="100%" height="100%"><div><i class="layui-icon layui-icon-delete" onclick="deleting"></i></div></div>');
  1058. // $('#anlicoverimg').html('<div class="imageDiv" data-id="' + index + '"><img src="' + result + '" alt="' + file.name + '" class="layui-upload-img" width="100%" height="100%"><div class="iconwrapper"></div></div>');
  1059. // var idom = document.createElement('i');
  1060. // idom.classList.add("layui-icon", "layui-icon-delete");
  1061. // idom.addEventListener("click", function(e){
  1062. // e.stopPropagation();
  1063. // var that = this;
  1064. // layer.confirm('确定删除该图片么?', function(index) {
  1065. // var imgDiv = $(that).closest('.imageDiv');
  1066. // if(id = imgDiv.data('id')) {
  1067. // delete files[id];
  1068. // }
  1069. // // imgDiv.remove();
  1070. // imgDiv.html('<div class="text-detail"><span>+</span><p>选择替换封面图</p></div>');
  1071. // layer.close(index);
  1072. // });
  1073. // });
  1074. // $('.iconwrapper').append(idom);
  1075. // }
  1076. // });
  1077. // }
  1078. // });
  1079. upload.render({
  1080. elem: '#cover',
  1081. accept: 'images',
  1082. url: '{:url("fileupload")}',
  1083. exts: 'jpg|png|bmp|jpeg|JPG|PNG|BMP|JPEG',
  1084. field: 'file',
  1085. size: 5 * 1024,
  1086. auto: true,
  1087. choose: function(obj) {
  1088. files = obj.pushFile();
  1089. length = $('.imageDiv').length;
  1090. obj.preview(function(index, file, result) {
  1091. length++;
  1092. if (length > 1) {
  1093. if (length == 10) layer.msg('限制1张图片以下', {time: 2000});
  1094. delete files[index];
  1095. } else {
  1096. $('#cover>.text-detail').hide();
  1097. $('.layui-share-upload-img').show();
  1098. }
  1099. });
  1100. },
  1101. done:function(res){
  1102. $('.layui-share-upload-img').attr('src',res.data.src)
  1103. }
  1104. });
  1105. form.on('select(type)', function (data) {
  1106. getHousetype(data.value);
  1107. })
  1108. function getHousetype(community_id){
  1109. $.post('{:url("building/housetype")}', {community_id}, function(res){
  1110. if(res.code == 1) return;
  1111. let btn = $('#dropdown_housetype').find('.topselectbtn');
  1112. $('#dropdown_housetype').find('.housetype').remove();
  1113. $.each(res.data, function(i,item){
  1114. btn.after('<dd class="housetype_option housetype-ele-group housetype" data-id="'+item.id+'">'+item.housetype+'<i class="layui-icon layui-icon-link"></i></dd>');
  1115. });
  1116. })
  1117. }
  1118. getHousetype(obj.community_id);
  1119. });
  1120. </script>
  1121. {/block}