This commit is contained in:
文永达 2023-03-23 01:04:11 +08:00
parent 4e057065f8
commit ccb08b1004

View File

@ -867,6 +867,369 @@ export default {
</style>
```
# Pug.js
Pug之前称为Jade是一种简洁而灵活的模板引擎用于构建HTML。Pug使用缩进和标记替代了常见的HTML标记这使得它更易于阅读和编写。它也提供了一些功能如变量、循环和条件语句等可以帮助开发人员更轻松地构建动态的网页。
## 特性
### 属性
如果一个标签有多个属性,可使用 分行 或 逗号
```less
// 1
el-button(v-if="ifShow" type="size" size="small" @click="doClidk") 点击
// 2
el-button(v-if="ifShow",type="size",size="small",@click="doClidk") 点击
// 3
el-button(v-if="ifShow"
type="size"
size="small"
@click="doClick") 点击
```
### 注释
- 单行
```xml
// 一些内容
p foo
p bar
<!-- 一些内容 -->
<p>foo</p>
<p>bar</p>
```
- 不输出注释
```less
//- 这行不会出现在结果中
p foo
p bar
<p>foo</p>
<p>bar</p>
```
- 块注释
```xml
body
//
一堆
文字
进行中
<body>
<!-- 一堆
文字
进行中 -->
</body>
```
## Vue 2集成Pug.js
Vue CLI安装Pug.js
```shell
npm i -D pug pug-html-loader pug-plain-loader
```
vue.config.js配置
```javascript
// vue.config.js
module.exports = {
chainWebpack: config => {
config.module.rule('pug')
.test(/\.pug$/)
.use('pug-html-loader')
.loader('pug-html-loader')
.end()
}
}
```
使用前
```vue
<template>
<div class="app-container">
<!-- 搜索栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
<el-form-item label="昵称">
<el-input
v-model="queryParams.nickName"
placeholder="请输入用户昵称"
clearable
style="..."
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="请选择状态"
clearable
style="..."
>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- 工具栏按钮 -->
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出</el-button>
</el-col>
</el-row>
<!-- 表格 -->
<el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column prop="userId" v-if="false"></el-table-column>
<el-table-column label="用户昵称" align="center" prop="nickName" />
<el-table-column label="用户头像" align="center" prop="pic" />
<el-table-column label="状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="注册时间" align="center" prop="userRegtime"></el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:dict:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:dict:remove']"
>删除</el-button>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="用户头像" prop="pic">
<!-- <el-input v-model="form.pic" placeholder="请输入" /> -->
</el-form-item>
<el-form-item label="用户昵称" prop="nickName">
<el-input v-model="form.nickName" placeholder="请输入用户昵称" />
</el-form-item>
<el-form-item label="状态" size="mini" prop="status">
<el-radio
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.value"
>{{ dict.label }}</el-radio>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
```
使用后
```less
<template lang="pug">
.app-container
// 搜索栏
el-form(:model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch")
el-form-item(label="昵称")
el-input(
v-model="queryParams.nickName"
placeholder="请输入用户昵称"
clearable
style="..."
@keyup.enter.native="handleQuery"
)
el-form-item(label="状态" prop="status")
el-select(
v-model="queryParams.status"
placeholder="请选择状态"
clearable
style="..."
)
el-option(
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
)
el-form-item
el-button(type="primary" icon="el-icon-search" size="mini" @click="handleQuery") 搜索
el-button(icon="el-icon-refresh" size="mini" @click="resetQuery") 重置
// 工具栏按钮
el-row.mb8(:gutter="10")
el-col(:span="1.5")
el-button(
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
) 新增
el-col(:span="1.5")
el-button(
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
) 修改
el-col(:span="1.5")
el-button(
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
) 删除
el-col(:span="1.5")
el-button(
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
) 导出
// 表格
el-table(v-loading="loading" :data="list" @selection-change="handleSelectionChange")
el-table-column(type="selection" width="55" align="center")
el-table-column(prop="userId" v-if="false")
el-table-column(label="用户昵称" align="center" prop="nickName")
el-table-column(label="用户头像" align="center" prop="pic")
el-table-column(label="状态" align="center" prop="status")
template(slot-scope="scope")
dict-tag(:options="dict.type.sys_normal_disable" :value="scope.row.status")
el-table-column(label="注册时间" align="center" prop="userRegtime")
el-table-column(label="操作" align="center" class-name="small-padding fixed-width")
el-button(
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:dict:edit']"
) 修改
el-button(
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:dict:remove']"
) 删除
pagination(
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
)
el-dialog(
:title="title"
:visible.sync="open"
width="500px"
append-to-body
)
el-form(
ref="form"
:model="form"
:rules="rules"
label-width="80px"
)
el-form-item(label="用户头像" prop="pic")
// el-input(v-model="form.pic" placeholder="请输入")
el-form-item(label="用户昵称" prop="nickName")
el-input(v-model="form.nickName" placeholder="请输入用户昵称")
el-form-item(label="状态" size="mini" prop="status")
el-radio(
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.value"
) {{ dict.label }}
.dialog-footer(slot="footer")
el-button(type="primary" @click="submitForm") 确 定
el-button(@click="cancel") 取 消
</template>
```
# Vben Admin