Appearance
前端示例-开发-列表
1. 模板结构规范
- 使用 通用布局类html
<template> <div class="JNPF-common-layout"> <div class="JNPF-common-layout-center"> <div class="JNPF-common-layout-main JNPF-flex-main"> <el-row class="JNPF-common-search-box" :gutter="16"> <el-form @submit.native.prevent> <el-col :span="6"> <el-form-item label="名称"> <el-input v-model="query.$LK$NAME" placeholder="请输入名称" clearable /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="相关部门"> <el-input v-model="query.$LK$DEPTNAME" placeholder="请输入相关部门" clearable /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="专业"> <el-input v-model="query.$LK$MAJOR" placeholder="请输入专业" clearable /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item> <el-button type="primary" icon="el-icon-search" @click="search()" > {{ $t("common.search") }} </el-button> <el-button icon="el-icon-refresh-right" @click="reset()"> {{ $t("common.reset") }} </el-button> </el-form-item> </el-col> </el-form> </el-row> <div class="JNPF-common-head"> <el-button type="primary" icon="el-icon-plus" @click="openPage"> 新增 </el-button> <div class="JNPF-common-head-right"> <el-input v-model="quickQuery.value" :placeholder="'请输入名称或地址'" clearable style="width: 300px" > <i class="el-icon-search el-input__icon" slot="suffix" @click="search" ></i> </el-input> <el-tooltip effect="dark" :content="$t('common.refresh')" placement="top" > <el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false" @click="initData()" /> </el-tooltip> </div> </div> <JNPF-table :data="list" row-key="ID"> <el-table-column prop="NAME" label="名称" min-width="150" :show-overflow-tooltip="true" ></el-table-column> <el-table-column prop="DEPTNAME" label="相关部门" min-width="150" width="150" align="center" :show-overflow-tooltip="true" ></el-table-column> <el-table-column prop="STARTDATE" label="启动日期" align="center" width="120" :dateFormat="'yyyy-MM-dd'" :formatter="formatter" ></el-table-column> <el-table-column prop="MAJOR" label="专业" align="center" width="120" :formatter="formatter" :enumFormat="'Major'" ></el-table-column> <el-table-column label="操作" width="120" align="center" fixed="right" > <template slot-scope="scope"> <el-button type="text" @click="openPage({ defVal: { ID: scope.row.ID } })" > 编辑 </el-button> <el-button type="text" @click="deleteRow(scope.row.ID)" class="JNPF-table-delBtn" > 删除 </el-button> </template> </el-table-column> </JNPF-table> <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="InitPage" /> </div> </div> <form v-if="formVisible" ref="Form" @refresh="refresh" /> </div> </template>
2. 数据管理规范
data 中定义数据结构:
jsimport listMixin from "@/mixins/basics/list.js"; // 引入列表混入 import Form from "./form.vue"; // 引入表单组件 import ExportBox from "@/components/JPW-excelExport"; //导出Excel组件 import { getPageList, getPageListQuery } from "@/api/basic"; // 引入列表获取数据接口 export default { mixins: [listMixin], components: { Form, ExportBox }, // 引入表单组件和导出Excel组件 data() { return { list: [], // 表格数据 enumCode: "MAJOR", // 枚举code,逗号分隔,和enumFormat配合使用 apiUrl: "", // 接口地址,指向后端接口地址,举例officeAuto/infoRelease/FriendLink query: { // 详细查询条件 $LK$NAME: "", $LK$DEPTNAME: "", $LK$MAJOR: "", }, listQuery: { // 分页参数 currentPage: 1, pageSize: 20, sort: "desc", sidx: "SORTCODE", }, quickQuery: { // 快速查询条件 field: "NAME,DEPTNAME", value: "", }, loadListMethod: getPageList, // 列表获取数据方法(getPageList,getPageListQuery) }; }, };