该示例仅用于公司原生项目
    vue、react、flutter之后逐步更新

    1. <!--
    2. * @Author: 付光源
    3. * @Date: 2021-11-09 09:43:27
    4. * @LastEditTime: 2021-12-15 10:25:44
    5. * @LastEditors: Please set LastEditors
    6. * @Description: 模版页面
    7. * @FilePath: /gschool/source/html/web_template.html
    8. -->
    9. <!DOCTYPE html>
    10. <html lang="en">
    11. <head>
    12. <meta charset="UTF-8">
    13. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    14. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    15. <title>Template</title>
    16. <!-- 开发时将此注释打开-删掉layui样式引入 -->
    17. <!-- <include file="Public/_css" /> -->
    18. <!-- 公共基础样式 -->
    19. <link rel="stylesheet" href="/Public/ysdx-new/css/theme.css">
    20. <!-- 图标库 -->
    21. <link rel="stylesheet" href="/Public/ysdx-new/fonts/ant-design-font.css">
    22. <!-- layui样式 -->
    23. <link rel="stylesheet" type="text/css" href="/public/layui/css/layui.css?_={$STATIC_VERSION|default=0}">
    24. <style>
    25. .bg {
    26. position: absolute;
    27. top: 0;
    28. left: 0;
    29. right: 0;
    30. z-index: -1;
    31. width: 100%;
    32. height: auto;
    33. }
    34. .icon {
    35. width: 1em;
    36. height: 1em;
    37. vertical-align: -0.15em;
    38. fill: currentColor;
    39. overflow: hidden;
    40. }
    41. .logo {
    42. width: 80px;
    43. height: 80px;
    44. object-fit: contain;
    45. }
    46. .top-item {
    47. position: relative;
    48. flex: 1;
    49. padding: 20px;
    50. }
    51. .sized-box {
    52. width: 20px;
    53. height: 20px;
    54. }
    55. /* 两个及以上相同样式抽离 */
    56. .tab-content {
    57. margin: 10px;
    58. }
    59. </style>
    60. </head>
    61. <body>
    62. <div style="padding: 10px 5%; min-width: 1080px; position: relative;">
    63. <!-- 背景 -->
    64. <img class="bg" src="/Public/ysdx-new/images/bg-icon.png" alt="">
    65. <!-- 头部 -->
    66. <div class="c-row" style="margin: 20px 0;">
    67. <img class="logo" src="/Public/ysdx-new/images/logo-icon.png" alt="">
    68. <span class="c-title-3 c-bold c-gold" style="margin-right: auto;">演示党校</span>
    69. <span class="c-title-2 c-white c-pointer" onclick="window.close()">返回</span>
    70. </div>
    71. <!-- 头部end -->
    72. <div class="c-radius c-shadow c-card" style="overflow: hidden;">
    73. <div class="layui-tab layui-tab-brief">
    74. <ul class="layui-tab-title">
    75. </ul>
    76. <div class="layui-tab-content">
    77. <div class="layui-tab-item layui-show">
    78. <div class="tab-content">
    79. <div class="c-column">
    80. <div class="c-title">一级标题</div>
    81. <div class="c-title-2">二级标题</div>
    82. <div class="c-title-3">三级标题</div>
    83. <div class="c-title-4">四级标题</div>
    84. <div class="c-title-5">五级标题</div>
    85. <div class="c-title-6">六级标题</div>
    86. <div class="c-title-7">七级标题</div>
    87. <div class="c-title-8">八级标题</div>
    88. <div class="c-title-9">九级标题</div>
    89. <div class="c-title-10">十级标题</div>
    90. <div class="c-info">这是一个描述</div>
    91. <div class="c-info c-bold">这是一个加粗的描述</div>
    92. <div class="c-info c-ellipsis" style="width: 200px;">这是一个带省略的描述长长长长长长长长长长长长长长长</div>
    93. <div class="c-row" style="margin: 10px 0;">
    94. <button class="layui-btn" onclick="popMessage()">消息</button>
    95. <button class="layui-btn" onclick="popDialog()">弹窗</button>
    96. <button class="layui-btn" onclick="jumpIcon()">
    97. <span class="iconfont icon-antdesign"></span>
    98. 图标库
    99. </button>
    100. <button class="layui-btn" onclick="jumpDoc()">
    101. 开发规范
    102. </button>
    103. <button class="layui-btn" onclick="jumpLayui()">
    104. layui文档
    105. </button>
    106. </div>
    107. <div class="c-row c-around">
    108. <div class="c-card c-shadow">
    109. 阴影卡片
    110. </div>
    111. <div class="c-card c-shadow c-pointer">
    112. 阴影手势卡片
    113. </div>
    114. <div class="c-card c-shadow c-radius">
    115. 阴影圆角卡片
    116. </div>
    117. <div class="c-card c-blue-bg">
    118. 蓝色背景黑色字体卡片
    119. </div>
    120. <div class="c-card c-orange-bg c-white">
    121. 橘色背景白色字体卡片
    122. </div>
    123. </div>
    124. <div class="c-row c-between" style="margin-top: 10px;">
    125. <div class="c-card c-blue-bg c-white" style="flex:1">
    126. 居两侧
    127. </div>
    128. <div class="c-card c-orange-bg c-white" style="flex:1">
    129. 居两侧
    130. </div>
    131. </div>
    132. </div>
    133. </div>
    134. </div>
    135. <div class="layui-tab-item">
    136. <div class="tab-content">
    137. 内容2
    138. </div>
    139. </div>
    140. <div class="layui-tab-item">
    141. <div class="tab-content">
    142. 内容3
    143. </div>
    144. </div>
    145. </div>
    146. </div>
    147. </div>
    148. </div>
    149. </body>
    150. <!-- 开发时将此注释打开-删掉layuijquery引入 -->
    151. <!-- <include file="Public/_js" /> -->
    152. <script src="/Public/Team/static/js/jquery-2.0.3.min.js?_={$STATIC_VERSION|default=0}"></script>
    153. <script src="/public/layui/layui.js?_={$STATIC_VERSION|default=0}"></script>
    154. <!-- promise兼容IE -->
    155. <script src="/Public/ysdx-new/js/bluebird.js"></script>
    156. <!-- moment时间类库 -->
    157. <script src="__PUBLIC__/ysdx-new/js/moment.min.js"></script>
    158. <!-- api -->
    159. <script src="/Public/ysdx-new/api/api.js?_={$STATIC_VERSION|default=0}"></script>
    160. <!-- 在线图标库 -->
    161. <script id="online-icon" src="//at.alicdn.com/t/font_2947624_r77r864mtrr.js"></script>
    162. <!-- 工具类库 -->
    163. <script src="__PUBLIC__/ysdx-new/js/messagebox.js?_={$STATIC_VERSION|default=0}"></script>
    164. <script>
    165. /**
    166. * -----------------------------
    167. * 全局变量
    168. * -----------------------------
    169. */
    170. var type = '栏目一' // 选中菜单
    171. var menuList = [] // 菜单列表
    172. /**
    173. * @description: 页面初始化方法
    174. * @param {*}
    175. * @return {*}
    176. */
    177. initPage()
    178. function initPage() {
    179. getList()
    180. }
    181. /**
    182. * -----------------------------
    183. * 渲染方法
    184. * -----------------------------
    185. */
    186. /**
    187. * @description: 初始化栏目一
    188. * @param {*}
    189. * @return {*}
    190. */
    191. function initTab1() {}
    192. /**
    193. * @description: 初始化栏目二
    194. * @param {*}
    195. * @return {*}
    196. */
    197. function initTab2() {}
    198. /**
    199. * @description: 初始化栏目三
    200. * @param {*}
    201. * @return {*}
    202. */
    203. function initTab3() {}
    204. /**
    205. * @description: 渲染tab栏
    206. * @param {*}
    207. * @return {*}
    208. */
    209. function initTabList() {
    210. layui.use('element', function () {
    211. var element = layui.element;
    212. var titleHtml = ''
    213. var contentHtml = ''
    214. menuList.forEach(function (item) {
    215. titleHtml += '<li class="' + item.titleClass + '" onclick="changeTab(this)">' + item
    216. .label + '</li>'
    217. });
    218. $('.layui-tab-title').html(titleHtml)
    219. });
    220. }
    221. /**
    222. * -----------------------------
    223. * 逻辑方法
    224. * -----------------------------
    225. */
    226. /**
    227. * @description: tab栏数据处理
    228. * @param {*}
    229. * @return {*}
    230. */
    231. function formatTabList() {
    232. menuList[0].titleClass = 'layui-this'
    233. menuList.forEach(function (item) {
    234. item.label = item.title
    235. });
    236. initTabList()
    237. }
    238. /**
    239. * -----------------------------
    240. * 事件方法
    241. * -----------------------------
    242. */
    243. /**
    244. * @description: tab栏切换
    245. * @param {*} evt
    246. * @return {*}
    247. */
    248. function changeTab(evt) {
    249. type = $(evt).text()
    250. checkTab()
    251. }
    252. /**
    253. * @description: tab栏数据渲染
    254. * @param {*}
    255. * @return {*}
    256. */
    257. function checkTab() {
    258. switch (type) {
    259. case '栏目一':
    260. initTab1()
    261. break;
    262. case '栏目二':
    263. initTab2()
    264. break;
    265. case '栏目三':
    266. initTab3()
    267. break;
    268. default:
    269. break;
    270. }
    271. }
    272. /**
    273. * @description: 消息提示
    274. * @param {*}
    275. * @return {*}
    276. */
    277. function popMessage() {
    278. layer.msg('这是消息')
    279. }
    280. /**
    281. * @description: 需要确定的弹窗
    282. * @param {*}
    283. * @return {*}
    284. */
    285. function popDialog() {
    286. var html = '<div>这是正文</div>'
    287. layer.open({
    288. title: '这是弹窗',
    289. content: html,
    290. area: ['400px', '200px'], // 宽 高
    291. btn: ['确定', '取消'],
    292. success: function (layero, index) {
    293. console.log('加载完成回调')
    294. },
    295. yes: function (index, layero) {
    296. console.log('这是确定')
    297. layer.close(index) // 关闭弹窗
    298. },
    299. btn2: function (index, layero) {
    300. console.log('这是取消')
    301. }
    302. });
    303. }
    304. /**
    305. * @description: 图标库查看
    306. * @param {*}
    307. * @return {*}
    308. */
    309. function jumpIcon() {
    310. window.open(
    311. 'https://at.alicdn.com/t/project/2429575/d51dfce8-1748-4ce8-b073-b4fcb5b904de.html?spm=a313x.7781069.1998910419.36'
    312. )
    313. }
    314. /**
    315. * @description: 前端开发规范查看
    316. * @param {*}
    317. * @return {*}
    318. */
    319. function jumpDoc() {
    320. window.open('https://www.yuque.com/chanow/web')
    321. }
    322. /**
    323. * @description: layui文档查看
    324. * @param {*}
    325. * @return {*}
    326. */
    327. function jumpLayui() {
    328. window.open('https://layui.org.cn/doc/modules/element.html')
    329. }
    330. /**
    331. * -----------------------------
    332. * 请求方法
    333. * -----------------------------
    334. */
    335. /**
    336. * @description: 请求tab栏数据
    337. * @param {*}
    338. * @return {*}
    339. */
    340. function getList() {
    341. // 接口测试-所有接口写在api.js文件里
    342. getTest().then(function (res) {
    343. console.log(res)
    344. }).catch(function (err) {
    345. console.log(err)
    346. })
    347. // 模拟数据获取
    348. setTimeout(function () {
    349. menuList = [{
    350. id: 1,
    351. title: '栏目一',
    352. },
    353. {
    354. id: 2,
    355. title: '栏目二',
    356. },
    357. {
    358. id: 3,
    359. title: '栏目三',
    360. },
    361. ]
    362. formatTabList()
    363. }, 1000);
    364. }
    365. </script>
    366. </html>