【新增】机构管理增加导出与批量删除

This commit is contained in:
小诺 2021-06-01 00:18:23 +08:00 committed by 15099670051
parent 07048c5fe4
commit b7783fe2cb
7 changed files with 83 additions and 13 deletions

View File

@ -83,3 +83,18 @@ export function sysOrgDelete (parameter) {
data: parameter data: parameter
}) })
} }
/**
* 导出系统机构
*
* @author yubaoshan
* @date 2021/5/30 12:58
*/
export function sysOrgExport (parameter) {
return axios({
url: '/sysOrg/export',
method: 'get',
params: parameter,
responseType: 'blob'
})
}

View File

@ -31,8 +31,6 @@
<a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button> <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
<a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button> <a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button>
</a-col> </a-col>
<a-col :md="8" :sm="24">
</a-col>
</a-row> </a-row>
</a-form> </a-form>
</div> </div>
@ -46,13 +44,19 @@
:rowKey="(record) => record.id" :rowKey="(record) => record.id"
:rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
> >
<template slot="operator" v-if="hasPerm('sysOrg:add')"> <template slot="operator">
<a-button @click="$refs.addForm.add()" icon="plus" type="primary" v-if="hasPerm('sysOrg:add')">新增机构</a-button> <a-button @click="$refs.addForm.add()" icon="plus" type="primary" v-if="hasPerm('sysOrg:add')">新增机构</a-button>
<a-button type="danger" :disabled="selectedRowKeys.length < 1" v-if="hasPerm('sysPos:delete')" @click="batchDelete"><a-icon type="delete"/>批量删除</a-button>
<x-down
v-if="hasPerm('sysOrg:export')"
ref="batchExport"
@batchExport="batchExport"
/>
</template> </template>
<span slot="action" slot-scope="text, record"> <span slot="action" slot-scope="text, record">
<a v-if="hasPerm('sysOrg:edit')" @click="$refs.editForm.edit(record)">编辑</a> <a v-if="hasPerm('sysOrg:edit')" @click="$refs.editForm.edit(record)">编辑</a>
<a-divider type="vertical" v-if="hasPerm('sysOrg:edit') & hasPerm('sysOrg:delete')"/> <a-divider type="vertical" v-if="hasPerm('sysOrg:edit') & hasPerm('sysOrg:delete')"/>
<a-popconfirm v-if="hasPerm('sysOrg:delete')" placement="topRight" title="确认删除?" @confirm="() => sysOrgDelete(record)"> <a-popconfirm v-if="hasPerm('sysOrg:delete')" placement="topRight" title="确认删除?" @confirm="() => singleDelete(record)">
<a>删除</a> <a>删除</a>
</a-popconfirm> </a-popconfirm>
</span> </span>
@ -64,13 +68,14 @@
</a-row> </a-row>
</template> </template>
<script> <script>
import { STable, XCard } from '@/components' import { STable, XCard, XDown } from '@/components'
import { Empty } from 'ant-design-vue' import { Empty } from 'ant-design-vue'
import { getOrgPage, sysOrgDelete, getOrgTree } from '@/api/modular/system/orgManage' import { getOrgPage, sysOrgDelete, getOrgTree, sysOrgExport } from '@/api/modular/system/orgManage'
import addForm from './addForm' import addForm from './addForm'
import editForm from './editForm' import editForm from './editForm'
export default { export default {
components: { components: {
XDown,
XCard, XCard,
STable, STable,
addForm, addForm,
@ -78,8 +83,6 @@
}, },
data () { data () {
return { return {
// /
advanced: false,
// //
queryParam: {}, queryParam: {},
// //
@ -155,16 +158,39 @@
this.$refs.table.refresh() this.$refs.table.refresh()
}) })
}, },
/**
* 单个删除
*/
singleDelete (record) {
const param = [{ 'id': record.id }]
this.sysOrgDelete(param)
},
/**
* 批量删除
*/
batchDelete () {
const paramIds = this.selectedRowKeys.map((d) => {
return { 'id': d }
})
this.sysOrgDelete(paramIds)
},
/**
* 批量导出
*/
batchExport () {
sysOrgExport().then((res) => {
this.$refs.batchExport.downloadfile(res)
})
},
/** /**
* 删除 * 删除
* @param record
*/ */
sysOrgDelete (record) { sysOrgDelete (record) {
sysOrgDelete(record).then((res) => { sysOrgDelete(record).then((res) => {
if (res.success) { if (res.success) {
this.$message.success('删除成功') this.$message.success('删除成功')
this.getOrgTree() this.getOrgTree()
this.$refs.table.refresh() this.$refs.table.clearRefreshSelected()
} else { } else {
this.$message.error('删除失败:' + res.message) this.$message.error('删除失败:' + res.message)
} }
@ -178,9 +204,6 @@
} }
this.$refs.table.refresh(true) this.$refs.table.refresh(true)
}, },
toggleAdvanced () {
this.advanced = !this.advanced
},
handleOk () { handleOk () {
this.getOrgTree() this.getOrgTree()
this.$refs.table.refresh() this.$refs.table.refresh()

View File

@ -24,6 +24,7 @@ Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意
*/ */
package vip.xiaonuo.core.pojo.base.entity; package vip.xiaonuo.core.pojo.base.entity;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data; import lombok.Data;
@ -46,6 +47,7 @@ public class BaseEntity implements Serializable {
* 创建时间 * 创建时间
*/ */
@TableField(fill = FieldFill.INSERT) @TableField(fill = FieldFill.INSERT)
@Excel(name = "创建时间", databaseFormat = "yyyy-MM-dd HH:mm:ss", format = "yyyy-MM-dd", width = 20)
private Date createTime; private Date createTime;
/** /**
@ -58,6 +60,7 @@ public class BaseEntity implements Serializable {
* 更新时间 * 更新时间
*/ */
@TableField(fill = FieldFill.UPDATE) @TableField(fill = FieldFill.UPDATE)
@Excel(name = "更新时间", databaseFormat = "yyyy-MM-dd HH:mm:ss", format = "yyyy-MM-dd", width = 20)
private Date updateTime; private Date updateTime;
/** /**

View File

@ -38,6 +38,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import vip.xiaonuo.sys.modular.user.param.SysUserParam;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -152,4 +153,17 @@ public class SysOrgController {
public ResponseData tree(SysOrgParam sysOrgParam) { public ResponseData tree(SysOrgParam sysOrgParam) {
return new SuccessResponseData(sysOrgService.tree(sysOrgParam)); return new SuccessResponseData(sysOrgService.tree(sysOrgParam));
} }
/**
* 导出系统组织机构
*
* @author yubaoshan
* @date 2021/5/30 12:48
*/
@Permission
@GetMapping("/sysOrg/export")
@BusinessLog(title = "系统组织机构_导出", opType = LogAnnotionOpTypeEnum.EXPORT)
public void export(SysOrgParam sysOrgParam) {
sysOrgService.export(sysOrgParam);
}
} }

View File

@ -24,6 +24,7 @@ Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意
*/ */
package vip.xiaonuo.sys.modular.org.entity; package vip.xiaonuo.sys.modular.org.entity;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import vip.xiaonuo.core.pojo.base.entity.BaseEntity; import vip.xiaonuo.core.pojo.base.entity.BaseEntity;
import lombok.Data; import lombok.Data;
@ -59,26 +60,31 @@ public class SysOrg extends BaseEntity {
/** /**
* 名称 * 名称
*/ */
@Excel(name = "名称", width = 20)
private String name; private String name;
/** /**
* 编码 * 编码
*/ */
@Excel(name = "编码", width = 20)
private String code; private String code;
/** /**
* 排序 * 排序
*/ */
@Excel(name = "排序", width = 20)
private Integer sort; private Integer sort;
/** /**
* 备注 * 备注
*/ */
@Excel(name = "备注", width = 20)
@TableField(insertStrategy = FieldStrategy.IGNORED) @TableField(insertStrategy = FieldStrategy.IGNORED)
private String remark; private String remark;
/** /**
* 状态字典 0正常 1停用 2删除 * 状态字典 0正常 1停用 2删除
*/ */
@Excel(name = "状态", replace = {"正常_0", "停用_1", "删除_2"}, width = 20)
private Integer status; private Integer status;
} }

View File

@ -117,4 +117,12 @@ public interface SysOrgService extends IService<SysOrg> {
* @date 2020/4/5 18:29 * @date 2020/4/5 18:29
*/ */
List<Long> getDataScopeListByDataScopeType(Integer dataScopeType, Long orgId); List<Long> getDataScopeListByDataScopeType(Integer dataScopeType, Long orgId);
/**
* 导出机构数据
*
* @author yubaoshan
* @date 2021/5/30 12:48
*/
void export(SysOrgParam sysOrgParam);
} }

View File

@ -43,6 +43,7 @@ import vip.xiaonuo.core.factory.PageFactory;
import vip.xiaonuo.core.factory.TreeBuildFactory; import vip.xiaonuo.core.factory.TreeBuildFactory;
import vip.xiaonuo.core.pojo.node.AntdBaseTreeNode; import vip.xiaonuo.core.pojo.node.AntdBaseTreeNode;
import vip.xiaonuo.core.pojo.page.PageResult; import vip.xiaonuo.core.pojo.page.PageResult;
import vip.xiaonuo.core.util.PoiUtil;
import vip.xiaonuo.sys.core.enums.DataScopeTypeEnum; import vip.xiaonuo.sys.core.enums.DataScopeTypeEnum;
import vip.xiaonuo.sys.modular.emp.service.SysEmpExtOrgPosService; import vip.xiaonuo.sys.modular.emp.service.SysEmpExtOrgPosService;
import vip.xiaonuo.sys.modular.emp.service.SysEmpService; import vip.xiaonuo.sys.modular.emp.service.SysEmpService;