ruoyi-demo/src/main/java/com/ruoyi/demo/bo/TestDemoAddBo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,43 @@ package com.ruoyi.demo.bo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; /** * æµè¯å表添å 对象 test_demo * * @author Lion Li * @date 2021-05-30 */ @Data @ApiModel("æµè¯å表添å 对象") public class TestDemoAddBo { /** é¨é¨id */ @ApiModelProperty("é¨é¨id") private Long deptId; /** ç¨æ·id */ @ApiModelProperty("ç¨æ·id") private Long userId; /** æåºå· */ @ApiModelProperty("æåºå·") private Long orderNum; /** keyé® */ @ApiModelProperty("keyé®") @NotBlank(message = "keyé®ä¸è½ä¸ºç©º") private String testKey; /** å¼ */ @ApiModelProperty("å¼") @NotBlank(message = "å¼ä¸è½ä¸ºç©º") private String value; } ruoyi-demo/src/main/java/com/ruoyi/demo/bo/TestDemoEditBo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,52 @@ package com.ruoyi.demo.bo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; /** * æµè¯å表ç¼è¾å¯¹è±¡ test_demo * * @author Lion Li * @date 2021-05-30 */ @Data @ApiModel("æµè¯å表ç¼è¾å¯¹è±¡") public class TestDemoEditBo { /** ä¸»é® */ @ApiModelProperty("主é®") private Long id; /** é¨é¨id */ @ApiModelProperty("é¨é¨id") private Long deptId; /** ç¨æ·id */ @ApiModelProperty("ç¨æ·id") private Long userId; /** æåºå· */ @ApiModelProperty("æåºå·") private Long orderNum; /** keyé® */ @ApiModelProperty("keyé®") @NotBlank(message = "keyé®ä¸è½ä¸ºç©º") private String testKey; /** å¼ */ @ApiModelProperty("å¼") @NotBlank(message = "å¼ä¸è½ä¸ºç©º") private String value; } ruoyi-demo/src/main/java/com/ruoyi/demo/bo/TestDemoQueryBo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,42 @@ package com.ruoyi.demo.bo; import com.ruoyi.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; /** * æµè¯å表å页æ¥è¯¢å¯¹è±¡ test_demo * * @author Lion Li * @date 2021-05-30 */ @Data @EqualsAndHashCode(callSuper = true) @ApiModel("æµè¯å表å页æ¥è¯¢å¯¹è±¡") public class TestDemoQueryBo extends BaseEntity { /** åé¡µå¤§å° */ @ApiModelProperty("å页大å°") private Integer pageSize; /** å½åé¡µæ° */ @ApiModelProperty("å½å页æ°") private Integer pageNum; /** æåºå */ @ApiModelProperty("æåºå") private String orderByColumn; /** æåºçæ¹ådescæè asc */ @ApiModelProperty(value = "æåºçæ¹å", example = "asc,desc") private String isAsc; /** keyé® */ @ApiModelProperty("keyé®") private String testKey; /** å¼ */ @ApiModelProperty("å¼") private String value; } ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestDemoController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,108 @@ package com.ruoyi.demo.controller; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.demo.bo.TestDemoAddBo; import com.ruoyi.demo.bo.TestDemoEditBo; import com.ruoyi.demo.bo.TestDemoQueryBo; import com.ruoyi.demo.service.ITestDemoService; import com.ruoyi.demo.vo.TestDemoVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.Arrays; import java.util.List; /** * æµè¯å表Controller * * @author Lion Li * @date 2021-05-30 */ @Api(value = "æµè¯å表æ§å¶å¨", tags = {"æµè¯å表管ç"}) @RequiredArgsConstructor(onConstructor_ = @Autowired) @RestController @RequestMapping("/demo/demo") public class TestDemoController extends BaseController { private final ITestDemoService iTestDemoService; /** * æ¥è¯¢æµè¯å表å表 */ @ApiOperation("æ¥è¯¢æµè¯å表å表") @PreAuthorize("@ss.hasPermi('demo:demo:list')") @GetMapping("/list") public TableDataInfo<TestDemoVo> list(@Validated TestDemoQueryBo bo) { return iTestDemoService.queryPageList(bo); } /** * å¯¼åºæµè¯å表å表 */ @ApiOperation("å¯¼åºæµè¯å表å表") @PreAuthorize("@ss.hasPermi('demo:demo:export')") @Log(title = "æµè¯å表", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult<TestDemoVo> export(@Validated TestDemoQueryBo bo) { List<TestDemoVo> list = iTestDemoService.queryList(bo); ExcelUtil<TestDemoVo> util = new ExcelUtil<TestDemoVo>(TestDemoVo.class); return util.exportExcel(list, "æµè¯å表"); } /** * è·åæµè¯å表详ç»ä¿¡æ¯ */ @ApiOperation("è·åæµè¯å表详ç»ä¿¡æ¯") @PreAuthorize("@ss.hasPermi('demo:demo:query')") @GetMapping("/{id}") public AjaxResult<TestDemoVo> getInfo(@NotNull(message = "主é®ä¸è½ä¸ºç©º") @PathVariable("id") Long id) { return AjaxResult.success(iTestDemoService.queryById(id)); } /** * æ°å¢æµè¯å表 */ @ApiOperation("æ°å¢æµè¯å表") @PreAuthorize("@ss.hasPermi('demo:demo:add')") @Log(title = "æµè¯å表", businessType = BusinessType.INSERT) @PostMapping() public AjaxResult<Void> add(@Validated @RequestBody TestDemoAddBo bo) { return toAjax(iTestDemoService.insertByAddBo(bo) ? 1 : 0); } /** * ä¿®æ¹æµè¯å表 */ @ApiOperation("ä¿®æ¹æµè¯å表") @PreAuthorize("@ss.hasPermi('demo:demo:edit')") @Log(title = "æµè¯å表", businessType = BusinessType.UPDATE) @PutMapping() public AjaxResult<Void> edit(@Validated @RequestBody TestDemoEditBo bo) { return toAjax(iTestDemoService.updateByEditBo(bo) ? 1 : 0); } /** * å 餿µè¯å表 */ @ApiOperation("å 餿µè¯å表") @PreAuthorize("@ss.hasPermi('demo:demo:remove')") @Log(title = "æµè¯å表" , businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult<Void> remove(@NotEmpty(message = "主é®ä¸è½ä¸ºç©º") @PathVariable Long[] ids) { return toAjax(iTestDemoService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0); } } ruoyi-demo/src/main/java/com/ruoyi/demo/domain/TestDemo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,70 @@ package com.ruoyi.demo.domain; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; /** * æµè¯å表对象 test_demo * * @author Lion Li * @date 2021-05-30 */ @Data @NoArgsConstructor @Accessors(chain = true) @TableName("test_demo") public class TestDemo implements Serializable { private static final long serialVersionUID=1L; /** ä¸»é® */ @TableId(value = "id") private Long id; /** é¨é¨id */ private Long deptId; /** ç¨æ·id */ private Long userId; /** æåºå· */ @OrderBy(isDesc = false, sort = 1) private Long orderNum; /** keyé® */ private String testKey; /** å¼ */ private String value; /** çæ¬ */ @Version private Long version; /** å建æ¶é´ */ @TableField(fill = FieldFill.INSERT) private Date createTime; /** å建人 */ @TableField(fill = FieldFill.INSERT) private String createBy; /** æ´æ°æ¶é´ */ @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; /** æ´æ°äºº */ @TableField(fill = FieldFill.INSERT_UPDATE) private String updateBy; /** å 餿 å¿ */ @TableLogic private Long delFlag; } ruoyi-demo/src/main/java/com/ruoyi/demo/mapper/TestDemoMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,14 @@ package com.ruoyi.demo.mapper; import com.ruoyi.demo.domain.TestDemo; import com.ruoyi.common.core.page.BaseMapperPlus; /** * æµè¯å表Mapperæ¥å£ * * @author Lion Li * @date 2021-05-30 */ public interface TestDemoMapper extends BaseMapperPlus<TestDemo> { } ruoyi-demo/src/main/java/com/ruoyi/demo/service/ITestDemoService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,57 @@ package com.ruoyi.demo.service; import com.ruoyi.demo.domain.TestDemo; import com.ruoyi.demo.vo.TestDemoVo; import com.ruoyi.demo.bo.TestDemoQueryBo; import com.ruoyi.demo.bo.TestDemoAddBo; import com.ruoyi.demo.bo.TestDemoEditBo; import com.ruoyi.common.core.page.IServicePlus; import com.ruoyi.common.core.page.TableDataInfo; import java.util.Collection; import java.util.List; /** * æµè¯å表Serviceæ¥å£ * * @author Lion Li * @date 2021-05-30 */ public interface ITestDemoService extends IServicePlus<TestDemo> { /** * æ¥è¯¢å个 * @return */ TestDemoVo queryById(Long id); /** * æ¥è¯¢å表 */ TableDataInfo<TestDemoVo> queryPageList(TestDemoQueryBo bo); /** * æ¥è¯¢å表 */ List<TestDemoVo> queryList(TestDemoQueryBo bo); /** * æ ¹æ®æ°å¢ä¸å¡å¯¹è±¡æå ¥æµè¯å表 * @param bo æµè¯å表æ°å¢ä¸å¡å¯¹è±¡ * @return */ Boolean insertByAddBo(TestDemoAddBo bo); /** * æ ¹æ®ç¼è¾ä¸å¡å¯¹è±¡ä¿®æ¹æµè¯å表 * @param bo æµè¯å表ç¼è¾ä¸å¡å¯¹è±¡ * @return */ Boolean updateByEditBo(TestDemoEditBo bo); /** * æ ¡éªå¹¶å 餿°æ® * @param ids 主é®éå * @param isValid æ¯å¦æ ¡éª,true-å é¤åæ ¡éª,false-䏿 ¡éª * @return */ Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); } ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestDemoServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,95 @@ package com.ruoyi.demo.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.core.page.PagePlus; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.demo.bo.TestDemoAddBo; import com.ruoyi.demo.bo.TestDemoEditBo; import com.ruoyi.demo.bo.TestDemoQueryBo; import com.ruoyi.demo.domain.TestDemo; import com.ruoyi.demo.mapper.TestDemoMapper; import com.ruoyi.demo.service.ITestDemoService; import com.ruoyi.demo.vo.TestDemoVo; import org.springframework.stereotype.Service; import java.util.Collection; import java.util.List; import java.util.Map; /** * æµè¯å表Serviceä¸å¡å±å¤ç * * @author Lion Li * @date 2021-05-30 */ @Service public class TestDemoServiceImpl extends ServiceImpl<TestDemoMapper, TestDemo> implements ITestDemoService { @Override public TestDemoVo queryById(Long id) { return getVoById(id, TestDemoVo.class); } @DataScope(isUser = true) @Override public TableDataInfo<TestDemoVo> queryPageList(TestDemoQueryBo bo) { PagePlus<TestDemo, TestDemoVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo), TestDemoVo.class); return PageUtils.buildDataInfo(result); } @DataScope(isUser = true) @Override public List<TestDemoVo> queryList(TestDemoQueryBo bo) { return listVo(buildQueryWrapper(bo), TestDemoVo.class); } private LambdaQueryWrapper<TestDemo> buildQueryWrapper(TestDemoQueryBo bo) { Map<String, Object> params = bo.getParams(); Object dataScope = params.get("dataScope"); LambdaQueryWrapper<TestDemo> lqw = Wrappers.lambdaQuery(); lqw.like(StrUtil.isNotBlank(bo.getTestKey()), TestDemo::getTestKey, bo.getTestKey()); lqw.eq(StrUtil.isNotBlank(bo.getValue()), TestDemo::getValue, bo.getValue()); lqw.between(params.get("beginCreateTime") != null && params.get("endCreateTime") != null, TestDemo::getCreateTime, params.get("beginCreateTime"), params.get("endCreateTime")); lqw.apply(dataScope != null && StrUtil.isNotBlank(dataScope.toString()), dataScope != null ? dataScope.toString() : null); return lqw; } @Override public Boolean insertByAddBo(TestDemoAddBo bo) { TestDemo add = BeanUtil.toBean(bo, TestDemo.class); validEntityBeforeSave(add); return save(add); } @Override public Boolean updateByEditBo(TestDemoEditBo bo) { TestDemo update = BeanUtil.toBean(bo, TestDemo.class); validEntityBeforeSave(update); return updateById(update); } /** * ä¿ååçæ°æ®æ ¡éª * * @param entity å®ä½ç±»æ°æ® */ private void validEntityBeforeSave(TestDemo entity) { //TODO åä¸äºæ°æ®æ ¡éª,å¦å¯ä¸çº¦æ } @Override public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { if (isValid) { //TODO åä¸äºä¸å¡ä¸çæ ¡éª,夿æ¯å¦éè¦æ ¡éª } return removeByIds(ids); } } ruoyi-demo/src/main/java/com/ruoyi/demo/vo/TestDemoVo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,76 @@ package com.ruoyi.demo.vo; import com.ruoyi.common.annotation.Excel; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * æµè¯å表è§å¾å¯¹è±¡ test_demo * * @author Lion Li * @date 2021-05-30 */ @Data @ApiModel("æµè¯å表è§å¾å¯¹è±¡") public class TestDemoVo { private static final long serialVersionUID = 1L; /** ä¸»é® */ @ApiModelProperty("主é®") private Long id; /** é¨é¨id */ @Excel(name = "é¨é¨id") @ApiModelProperty("é¨é¨id") private Long deptId; /** ç¨æ·id */ @Excel(name = "ç¨æ·id") @ApiModelProperty("ç¨æ·id") private Long userId; /** æåºå· */ @Excel(name = "æåºå·") @ApiModelProperty("æåºå·") private Long orderNum; /** keyé® */ @Excel(name = "keyé®") @ApiModelProperty("keyé®") private String testKey; /** å¼ */ @Excel(name = "å¼") @ApiModelProperty("å¼") private String value; /** å建æ¶é´ */ @Excel(name = "å建æ¶é´" , width = 30, dateFormat = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("å建æ¶é´") private Date createTime; /** å建人 */ @Excel(name = "å建人") @ApiModelProperty("å建人") private String createBy; /** æ´æ°æ¶é´ */ @Excel(name = "æ´æ°æ¶é´" , width = 30, dateFormat = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("æ´æ°æ¶é´") private Date updateTime; /** æ´æ°äºº */ @Excel(name = "æ´æ°äºº") @ApiModelProperty("æ´æ°äºº") private String updateBy; } ruoyi-demo/src/main/resources/mapper/demo/TestDemoMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.demo.mapper.TestDemoMapper"> <resultMap type="com.ruoyi.demo.domain.TestDemo" id="TestDemoResult"> <result property="id" column="id"/> <result property="deptId" column="dept_id"/> <result property="userId" column="user_id"/> <result property="orderNum" column="order_num"/> <result property="testKey" column="test_key"/> <result property="value" column="value"/> <result property="version" column="version"/> <result property="createTime" column="create_time"/> <result property="createBy" column="create_by"/> <result property="updateTime" column="update_time"/> <result property="updateBy" column="update_by"/> <result property="delFlag" column="del_flag"/> </resultMap> </mapper> ruoyi-ui/src/api/demo/demo.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,53 @@ import request from '@/utils/request' // æ¥è¯¢æµè¯å表å表 export function listDemo(query) { return request({ url: '/demo/demo/list', method: 'get', params: query }) } // æ¥è¯¢æµè¯åè¡¨è¯¦ç» export function getDemo(id) { return request({ url: '/demo/demo/' + id, method: 'get' }) } // æ°å¢æµè¯å表 export function addDemo(data) { return request({ url: '/demo/demo', method: 'post', data: data }) } // ä¿®æ¹æµè¯å表 export function updateDemo(data) { return request({ url: '/demo/demo', method: 'put', data: data }) } // å 餿µè¯å表 export function delDemo(id) { return request({ url: '/demo/demo/' + id, method: 'delete' }) } // å¯¼åºæµè¯å表 export function exportDemo(query) { return request({ url: '/demo/demo/export', method: 'get', params: query }) } ruoyi-ui/src/views/demo/demo/index.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,339 @@ <template> <div class="app-container"> <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> <el-form-item label="keyé®" prop="testKey"> <el-input v-model="queryParams.testKey" placeholder="请è¾å ¥keyé®" clearable size="small" @keyup.enter.native="handleQuery" /> </el-form-item> <el-form-item label="å¼" prop="value"> <el-input v-model="queryParams.value" placeholder="请è¾å ¥å¼" clearable size="small" @keyup.enter.native="handleQuery" /> </el-form-item> <el-form-item label="å建æ¶é´"> <el-date-picker v-model="daterangeCreateTime" size="small" style="width: 240px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="å¼å§æ¥æ" end-placeholder="ç»ææ¥æ" ></el-date-picker> </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" v-hasPermi="['demo:demo:add']" >æ°å¢</el-button> </el-col> <el-col :span="1.5"> <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['demo:demo:edit']" >ä¿®æ¹</el-button> </el-col> <el-col :span="1.5"> <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" v-hasPermi="['demo:demo:remove']" >å é¤</el-button> </el-col> <el-col :span="1.5"> <el-button type="warning" plain icon="el-icon-download" size="mini" :loading="exportLoading" @click="handleExport" v-hasPermi="['demo:demo:export']" >导åº</el-button> </el-col> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> </el-row> <el-table v-loading="loading" :data="demoList" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55" align="center" /> <el-table-column label="主é®" align="center" prop="id" v-if="false"/> <el-table-column label="é¨é¨id" align="center" prop="deptId" /> <el-table-column label="ç¨æ·id" align="center" prop="userId" /> <el-table-column label="æåºå·" align="center" prop="orderNum" /> <el-table-column label="keyé®" align="center" prop="testKey" /> <el-table-column label="å¼" align="center" prop="value" /> <el-table-column label="å建æ¶é´" align="center" prop="createTime" width="180"> <template slot-scope="scope"> <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> </template> </el-table-column> <el-table-column label="å建人" align="center" prop="createBy" /> <el-table-column label="æ´æ°æ¶é´" align="center" prop="updateTime" width="180"> <template slot-scope="scope"> <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span> </template> </el-table-column> <el-table-column label="æ´æ°äºº" align="center" prop="updateBy" /> <el-table-column label="æä½" align="center" class-name="small-padding fixed-width"> <template slot-scope="scope"> <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['demo:demo:edit']" >ä¿®æ¹</el-button> <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['demo:demo:remove']" >å é¤</el-button> </template> </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="é¨é¨id" prop="deptId"> <el-input v-model="form.deptId" placeholder="请è¾å ¥é¨é¨id" /> </el-form-item> <el-form-item label="ç¨æ·id" prop="userId"> <el-input v-model="form.userId" placeholder="请è¾å ¥ç¨æ·id" /> </el-form-item> <el-form-item label="æåºå·" prop="orderNum"> <el-input v-model="form.orderNum" placeholder="请è¾å ¥æåºå·" /> </el-form-item> <el-form-item label="keyé®" prop="testKey"> <el-input v-model="form.testKey" placeholder="请è¾å ¥keyé®" /> </el-form-item> <el-form-item label="å¼" prop="value"> <el-input v-model="form.value" placeholder="请è¾å ¥å¼" /> </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> <script> import { listDemo, getDemo, delDemo, addDemo, updateDemo, exportDemo } from "@/api/demo/demo"; export default { name: "Demo", components: { }, data() { return { // é®ç½©å± loading: true, // 导åºé®ç½©å± exportLoading: false, // é䏿°ç» ids: [], // éå个ç¦ç¨ single: true, // éå¤ä¸ªç¦ç¨ multiple: true, // æ¾ç¤ºæç´¢æ¡ä»¶ showSearch: true, // æ»æ¡æ° total: 0, // æµè¯åè¡¨è¡¨æ ¼æ°æ® demoList: [], // å¼¹åºå±æ é¢ title: "", // æ¯å¦æ¾ç¤ºå¼¹åºå± open: false, // å建æ¶é´æ¶é´èå´ daterangeCreateTime: [], // æ¥è¯¢åæ° queryParams: { pageNum: 1, pageSize: 10, testKey: undefined, value: undefined, createTime: undefined, }, // 表ååæ° form: {}, // è¡¨åæ ¡éª rules: { testKey: [ { required: true, message: "keyé®ä¸è½ä¸ºç©º", trigger: "blur" } ], value: [ { required: true, message: "å¼ä¸è½ä¸ºç©º", trigger: "blur" } ], } }; }, created() { this.getList(); }, methods: { /** æ¥è¯¢æµè¯å表å表 */ getList() { this.loading = true; this.queryParams.params = {}; if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) { this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0]; this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1]; } listDemo(this.queryParams).then(response => { this.demoList = response.rows; this.total = response.total; this.loading = false; }); }, // åæ¶æé® cancel() { this.open = false; this.reset(); }, // 表åéç½® reset() { this.form = { id: undefined, deptId: undefined, userId: undefined, orderNum: undefined, testKey: undefined, value: undefined, version: undefined, createTime: undefined, createBy: undefined, updateTime: undefined, updateBy: undefined, delFlag: undefined }; this.resetForm("form"); }, /** æç´¢æé®æä½ */ handleQuery() { this.queryParams.pageNum = 1; this.getList(); }, /** éç½®æé®æä½ */ resetQuery() { this.daterangeCreateTime = []; this.resetForm("queryForm"); this.handleQuery(); }, // å¤éæ¡é䏿°æ® handleSelectionChange(selection) { this.ids = selection.map(item => item.id) this.single = selection.length!==1 this.multiple = !selection.length }, /** æ°å¢æé®æä½ */ handleAdd() { this.reset(); this.open = true; this.title = "æ·»å æµè¯å表"; }, /** ä¿®æ¹æé®æä½ */ handleUpdate(row) { this.reset(); const id = row.id || this.ids getDemo(id).then(response => { this.form = response.data; this.open = true; this.title = "ä¿®æ¹æµè¯å表"; }); }, /** æäº¤æé® */ submitForm() { this.$refs["form"].validate(valid => { if (valid) { if (this.form.id != null) { updateDemo(this.form).then(response => { this.msgSuccess("ä¿®æ¹æå"); this.open = false; this.getList(); }); } else { addDemo(this.form).then(response => { this.msgSuccess("æ°å¢æå"); this.open = false; this.getList(); }); } } }); }, /** å é¤æé®æä½ */ handleDelete(row) { const ids = row.id || this.ids; this.$confirm('æ¯å¦ç¡®è®¤å 餿µè¯å表ç¼å·ä¸º"' + ids + '"çæ°æ®é¡¹?', "è¦å", { confirmButtonText: "ç¡®å®", cancelButtonText: "åæ¶", type: "warning" }).then(function() { return delDemo(ids); }).then(() => { this.getList(); this.msgSuccess("å 餿å"); }) }, /** å¯¼åºæé®æä½ */ handleExport() { const queryParams = this.queryParams; this.$confirm('æ¯å¦ç¡®è®¤å¯¼åºæææµè¯åè¡¨æ°æ®é¡¹?', "è¦å", { confirmButtonText: "ç¡®å®", cancelButtonText: "åæ¶", type: "warning" }).then(() => { this.exportLoading = true; return exportDemo(queryParams); }).then(response => { this.download(response.msg); this.exportLoading = false; }) } } }; </script>