Commit 72bc4b39458d95a76565a9ccde17cfaf76bfe466

Authored by yiming
1 parent 530498f4

档案上架

ruoyi-archives/src/main/java/com/ruoyi/controller/ArchivesBoxController.java
@@ -100,11 +100,11 @@ public class ArchivesBoxController extends BaseController @@ -100,11 +100,11 @@ public class ArchivesBoxController extends BaseController
100 * 查询【请填写功能名称】列表 100 * 查询【请填写功能名称】列表
101 */ 101 */
102 @PreAuthorize("@ss.hasPermi('archives:box:list')") 102 @PreAuthorize("@ss.hasPermi('archives:box:list')")
103 - @PostMapping("/listByIds/{ids}")  
104 - public TableDataInfo listByIds(@PathVariable Long[] ids) 103 + @PostMapping(value = {"/listByIds/{ids}","/listByIds"})
  104 + public TableDataInfo listByIds(@RequestBody ArchivesBox archivesBox,@PathVariable(value="ids",required = false) Long[] ids)
105 { 105 {
106 startPage(); 106 startPage();
107 - List<ArchivesBox> list = archivesBoxService.selectArchivesBoxListByIds(ids); 107 + List<ArchivesBox> list = archivesBoxService.selectArchivesBoxListByIds(archivesBox,ids);
108 return getDataTable(list); 108 return getDataTable(list);
109 } 109 }
110 110
ruoyi-archives/src/main/java/com/ruoyi/mapper/ArchivesBoxMapper.java
1 package com.ruoyi.mapper; 1 package com.ruoyi.mapper;
2 2
3 import com.ruoyi.domain.ArchivesBox; 3 import com.ruoyi.domain.ArchivesBox;
  4 +import org.apache.ibatis.annotations.Param;
4 5
5 import java.util.List; 6 import java.util.List;
6 7
@@ -34,7 +35,7 @@ public interface ArchivesBoxMapper @@ -34,7 +35,7 @@ public interface ArchivesBoxMapper
34 * @param ids 【请填写功能名称】 35 * @param ids 【请填写功能名称】
35 * @return 【请填写功能名称】集合 36 * @return 【请填写功能名称】集合
36 */ 37 */
37 - public List<ArchivesBox> selectArchivesBoxListByIds(Long[] ids); 38 + public List<ArchivesBox> selectArchivesBoxListByIds(@Param("archivesBox") ArchivesBox archivesBox,@Param("ids") Long[] ids);
38 39
39 /** 40 /**
40 * 新增【请填写功能名称】 41 * 新增【请填写功能名称】
ruoyi-archives/src/main/java/com/ruoyi/service/IArchivesBoxService.java
@@ -34,7 +34,7 @@ public interface IArchivesBoxService @@ -34,7 +34,7 @@ public interface IArchivesBoxService
34 * @param ids 【请填写功能名称】 34 * @param ids 【请填写功能名称】
35 * @return 【请填写功能名称】集合 35 * @return 【请填写功能名称】集合
36 */ 36 */
37 - public List<ArchivesBox> selectArchivesBoxListByIds(Long[] ids); 37 + public List<ArchivesBox> selectArchivesBoxListByIds(ArchivesBox archivesBox,Long[] ids);
38 38
39 /** 39 /**
40 * 新增【请填写功能名称】 40 * 新增【请填写功能名称】
ruoyi-archives/src/main/java/com/ruoyi/service/impl/ArchivesBoxServiceImpl.java
@@ -52,9 +52,9 @@ public class ArchivesBoxServiceImpl implements IArchivesBoxService @@ -52,9 +52,9 @@ public class ArchivesBoxServiceImpl implements IArchivesBoxService
52 * @return 【请填写功能名称】 52 * @return 【请填写功能名称】
53 */ 53 */
54 @Override 54 @Override
55 - public List<ArchivesBox> selectArchivesBoxListByIds(Long[] ids) 55 + public List<ArchivesBox> selectArchivesBoxListByIds(ArchivesBox archivesBox,Long[] ids)
56 { 56 {
57 - return archivesBoxMapper.selectArchivesBoxListByIds(ids); 57 + return archivesBoxMapper.selectArchivesBoxListByIds(archivesBox,ids);
58 } 58 }
59 59
60 /** 60 /**
ruoyi-archives/src/main/resources/mapper/archives/ArchivesBoxMapper.xml
@@ -34,12 +34,17 @@ @@ -34,12 +34,17 @@
34 </where> 34 </where>
35 </select> 35 </select>
36 36
37 - <select id="selectArchivesBoxListByIds" parameterType="String" resultMap="ArchivesBoxResult"> 37 + <select id="selectArchivesBoxListByIds" parameterType="ArchivesBox" resultMap="ArchivesBoxResult">
38 <include refid="selectArchivesBoxVo"/> 38 <include refid="selectArchivesBoxVo"/>
39 - where id in  
40 - <foreach item="id" collection="array" open="(" separator="," close=")">  
41 - #{id}  
42 - </foreach> 39 + where apprvoal='4'
  40 + <if test="archivesBox.deportNodeId =='isNull'"> and deport_node_id is null</if>
  41 + <if test="archivesBox.deportNodeId =='isNotNull'"> and deport_node_id is not null</if>
  42 + <if test="ids !=null and ids.length>0">
  43 + and id in
  44 + <foreach item="id" collection="ids" open="(" separator="," close=")">
  45 + #{id}
  46 + </foreach>
  47 + </if>
43 </select> 48 </select>
44 49
45 <select id="selectArchivesBoxById" parameterType="Long" resultMap="ArchivesBoxResult"> 50 <select id="selectArchivesBoxById" parameterType="Long" resultMap="ArchivesBoxResult">
@@ -81,13 +86,14 @@ @@ -81,13 +86,14 @@
81 <if test="year != null">year = #{year},</if> 86 <if test="year != null">year = #{year},</if>
82 <if test="boxRule != null">box_rule = #{boxRule},</if> 87 <if test="boxRule != null">box_rule = #{boxRule},</if>
83 <if test="boxMark != null">box_mark = #{boxMark},</if> 88 <if test="boxMark != null">box_mark = #{boxMark},</if>
84 - <if test="deportNodeId != null">deport_node_id = #{deportNodeId},</if> 89 + <if test="deportNodeId != null and deportNodeId != 'isNull'">deport_node_id = #{deportNodeId},</if>
85 <if test="describes != null">describes = #{describes},</if> 90 <if test="describes != null">describes = #{describes},</if>
86 <if test="createBy != null">create_by = #{createBy},</if> 91 <if test="createBy != null">create_by = #{createBy},</if>
87 <if test="createTime != null">create_time = #{createTime},</if> 92 <if test="createTime != null">create_time = #{createTime},</if>
88 <if test="updateBy != null">update_by = #{updateBy},</if> 93 <if test="updateBy != null">update_by = #{updateBy},</if>
89 <if test="updateTime != null">update_time = #{updateTime},</if> 94 <if test="updateTime != null">update_time = #{updateTime},</if>
90 <if test="apprvoal != null">apprvoal = #{apprvoal},</if> 95 <if test="apprvoal != null">apprvoal = #{apprvoal},</if>
  96 + <if test="deportNodeId =='isNull'">deport_node_id = null,</if>
91 </trim> 97 </trim>
92 where id = #{id} 98 where id = #{id}
93 </update> 99 </update>
ruoyi-service/src/main/java/com/ruoyi/service/controller/ArchivesDepotController.java 0 → 100644
  1 +package com.ruoyi.service.controller;
  2 +
  3 +
  4 +import com.ruoyi.common.annotation.Log;
  5 +import com.ruoyi.common.core.controller.BaseController;
  6 +import com.ruoyi.common.core.domain.AjaxResult;
  7 +import com.ruoyi.common.enums.BusinessType;
  8 +import com.ruoyi.service.domain.ArchivesDepot;
  9 +import com.ruoyi.service.service.ArchivesDepotService;
  10 +import org.springframework.security.access.prepost.PreAuthorize;
  11 +import org.springframework.validation.annotation.Validated;
  12 +import org.springframework.web.bind.annotation.*;
  13 +import javax.annotation.Resource;
  14 +
  15 +
  16 +/**
  17 + * 上架
  18 + *
  19 + * @author ym
  20 + */
  21 +@RestController
  22 +@RequestMapping("/service/archivesDepot")
  23 +public class ArchivesDepotController extends BaseController
  24 +{
  25 +
  26 + @Resource
  27 + private ArchivesDepotService archivesDepotService;
  28 +
  29 +
  30 + @PreAuthorize("@ss.hasPermi('service:archivesDepot:shelve')")
  31 + @Log(title = "上架", businessType = BusinessType.UPDATE)
  32 + @PostMapping("/shelve")
  33 + public AjaxResult shelve(@Validated @RequestBody ArchivesDepot archivesDepot)
  34 + {
  35 + archivesDepotService.shelve(archivesDepot);
  36 + return AjaxResult.success();
  37 + }
  38 +
  39 + @PreAuthorize("@ss.hasPermi('service:archivesDepot:shelveDown')")
  40 + @Log(title = "下架", businessType = BusinessType.UPDATE)
  41 + @PostMapping("/shelveDown")
  42 + public AjaxResult shelveDown(@Validated @RequestBody ArchivesDepot archivesDepot)
  43 + {
  44 + archivesDepotService.shelveDown(archivesDepot);
  45 + return AjaxResult.success();
  46 + }
  47 +
  48 +}
ruoyi-service/src/main/java/com/ruoyi/service/domain/ArchivesDepot.java 0 → 100644
  1 +package com.ruoyi.service.domain;
  2 +
  3 +
  4 +import com.fasterxml.jackson.annotation.JsonFormat;
  5 +import com.ruoyi.common.core.domain.BaseEntity;
  6 +
  7 +import java.util.Arrays;
  8 +import java.util.Date;
  9 +
  10 +
  11 +/**
  12 + * 上架 work
  13 + *
  14 + * @author ym
  15 + */
  16 +public class ArchivesDepot extends BaseEntity
  17 +{
  18 + private static final long serialVersionUID = 1L;
  19 +
  20 + private Long id;
  21 +
  22 + private Long archivesId;
  23 +
  24 + private Long depotNodeId;
  25 +
  26 + private String status;
  27 +
  28 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  29 + private Date createTime;
  30 +
  31 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  32 + private Date updateTime;
  33 +
  34 + private Long[] ids;
  35 +
  36 + private String depotCode;
  37 +
  38 + public Long getId() {
  39 + return id;
  40 + }
  41 +
  42 + public void setId(Long id) {
  43 + this.id = id;
  44 + }
  45 +
  46 + public Long getArchivesId() {
  47 + return archivesId;
  48 + }
  49 +
  50 + public void setArchivesId(Long archivesId) {
  51 + this.archivesId = archivesId;
  52 + }
  53 +
  54 + public Long getDepotNodeId() {
  55 + return depotNodeId;
  56 + }
  57 +
  58 + public void setDepotNodeId(Long depotNodeId) {
  59 + this.depotNodeId = depotNodeId;
  60 + }
  61 +
  62 + public String getStatus() {
  63 + return status;
  64 + }
  65 +
  66 + public void setStatus(String status) {
  67 + this.status = status;
  68 + }
  69 +
  70 + @Override
  71 + public Date getCreateTime() {
  72 + return createTime;
  73 + }
  74 +
  75 + @Override
  76 + public void setCreateTime(Date createTime) {
  77 + this.createTime = createTime;
  78 + }
  79 +
  80 + @Override
  81 + public Date getUpdateTime() {
  82 + return updateTime;
  83 + }
  84 +
  85 + @Override
  86 + public void setUpdateTime(Date updateTime) {
  87 + this.updateTime = updateTime;
  88 + }
  89 +
  90 + public Long[] getIds() {
  91 + return ids;
  92 + }
  93 +
  94 + public void setIds(Long[] ids) {
  95 + this.ids = ids;
  96 + }
  97 +
  98 + public String getDepotCode() {
  99 + return depotCode;
  100 + }
  101 +
  102 + public void setDepotCode(String depotCode) {
  103 + this.depotCode = depotCode;
  104 + }
  105 +
  106 + @Override
  107 + public String toString() {
  108 + return "ArchivesDepot{" +
  109 + "id=" + id +
  110 + ", archivesId=" + archivesId +
  111 + ", depotNodeId=" + depotNodeId +
  112 + ", status='" + status + '\'' +
  113 + ", createTime=" + createTime +
  114 + ", updateTime=" + updateTime +
  115 + ", ids=" + Arrays.toString(ids) +
  116 + ", depotCode='" + depotCode + '\'' +
  117 + '}';
  118 + }
  119 +}
ruoyi-service/src/main/java/com/ruoyi/service/mapper/ArchivesDepotMapper.java 0 → 100644
  1 +package com.ruoyi.service.mapper;
  2 +
  3 +
  4 +
  5 +
  6 +import com.ruoyi.service.domain.ArchivesDepot;
  7 +
  8 +/**
  9 + * 上架 数据层
  10 + *
  11 + * @author ym
  12 + */
  13 +public interface ArchivesDepotMapper
  14 +{
  15 + int insert(ArchivesDepot archivesDepot);
  16 +
  17 + int shelveDown(Long[] ids);
  18 +}
ruoyi-service/src/main/java/com/ruoyi/service/service/ArchivesDepotService.java 0 → 100644
  1 +package com.ruoyi.service.service;
  2 +
  3 +
  4 +import com.ruoyi.service.domain.ArchivesDepot;
  5 +
  6 +/**
  7 + * 上架 服务层
  8 + *
  9 + * @author ym
  10 + */
  11 +public interface ArchivesDepotService
  12 +{
  13 + int insert(ArchivesDepot archivesDepot);
  14 +
  15 + int shelve(ArchivesDepot archivesDepot);
  16 +
  17 + int shelveDown(ArchivesDepot archivesDepot);
  18 +}
ruoyi-service/src/main/java/com/ruoyi/service/service/impl/ArchivesDepotImpl.java 0 → 100644
  1 +package com.ruoyi.service.service.impl;
  2 +
  3 +
  4 +import com.ruoyi.domain.ArchivesBox;
  5 +import com.ruoyi.mapper.ArchivesBoxMapper;
  6 +import com.ruoyi.service.domain.ArchivesDepot;
  7 +import com.ruoyi.service.mapper.ArchivesDepotMapper;
  8 +import com.ruoyi.service.service.ArchivesDepotService;
  9 +import org.springframework.stereotype.Service;
  10 +import org.springframework.transaction.annotation.Transactional;
  11 +
  12 +import javax.annotation.Resource;
  13 +import java.util.List;
  14 +
  15 +
  16 +/**
  17 + * 上架 服务实现
  18 + *
  19 + * @author ym
  20 + */
  21 +@Service
  22 +public class ArchivesDepotImpl implements ArchivesDepotService
  23 +{
  24 + @Resource
  25 + private ArchivesDepotMapper archivesDepotMapper;
  26 +
  27 + @Resource
  28 + private ArchivesBoxMapper archivesBoxMapper;
  29 +
  30 +
  31 + @Override
  32 + public int insert(ArchivesDepot archivesDepot) {
  33 + return archivesDepotMapper.insert(archivesDepot);
  34 + }
  35 +
  36 + @Override
  37 + @Transactional
  38 + public int shelve(ArchivesDepot archivesDepot) {
  39 + Long[] ids=archivesDepot.getIds();
  40 + ArchivesBox archivesBox;
  41 + for (long id : ids) {
  42 + archivesDepot.setArchivesId(id);
  43 + archivesDepot.setStatus("1");
  44 + archivesDepotMapper.insert(archivesDepot);
  45 + archivesBox=new ArchivesBox();
  46 + archivesBox.setId(id);
  47 + archivesBox.setDeportNodeId(archivesDepot.getDepotCode());
  48 + archivesBoxMapper.updateArchivesBox(archivesBox);
  49 + }
  50 + return ids.length;
  51 + }
  52 +
  53 +
  54 + @Override
  55 + @Transactional
  56 + public int shelveDown(ArchivesDepot archivesDepot) {
  57 + Long[] ids=archivesDepot.getIds();
  58 + archivesDepotMapper.shelveDown(ids);
  59 + ArchivesBox archivesBox;
  60 + for (long id : ids) {
  61 + archivesBox=new ArchivesBox();
  62 + archivesBox.setId(id);
  63 + archivesBox.setDeportNodeId("isNull");
  64 + archivesBoxMapper.updateArchivesBox(archivesBox);
  65 + }
  66 + return ids.length;
  67 + }
  68 +
  69 +}
ruoyi-service/src/main/resources/mapper/sevice/ArchivesDepotMapper.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8" ?>
  2 +<!DOCTYPE mapper
  3 +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4 +"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5 +<mapper namespace="com.ruoyi.service.mapper.ArchivesDepotMapper">
  6 +
  7 + <insert id="insert" parameterType="com.ruoyi.service.domain.ArchivesDepot">
  8 + insert into archives_depot(
  9 + <if test="archivesId != null and archivesId != ''">archivesId,</if>
  10 + <if test="depotNodeId != null and depotNodeId != ''">depotNodeId,</if>
  11 + <if test="status != null and status != ''">status,</if>
  12 + createTime
  13 + )values(
  14 + <if test="archivesId != null and archivesId != ''">#{archivesId},</if>
  15 + <if test="depotNodeId != null and depotNodeId != ''">#{depotNodeId},</if>
  16 + <if test="status != null and status != ''">#{status},</if>
  17 + sysdate()
  18 + )
  19 + </insert>
  20 +
  21 + <update id="shelveDown" parameterType="String">
  22 + update archives_depot set
  23 + status = '2',
  24 + updateTime = sysdate()
  25 + where status ='1' and archivesId in
  26 + <foreach item="id" collection="array" open="(" separator="," close=")">
  27 + #{id}
  28 + </foreach>
  29 + </update>
  30 +
  31 +</mapper>
0 \ No newline at end of file 32 \ No newline at end of file
ruoyi-ui/src/api/archives/box.js
@@ -43,9 +43,26 @@ export function delBox(id) { @@ -43,9 +43,26 @@ export function delBox(id) {
43 }) 43 })
44 } 44 }
45 45
46 -export function listByIds(id) { 46 +export function listByIds(params,id) {
47 return request({ 47 return request({
48 url: '/archives/box/listByIds/' + id, 48 url: '/archives/box/listByIds/' + id,
49 - method: 'post' 49 + method: 'post',
  50 + data: params
  51 + })
  52 +}
  53 +
  54 +export function shelve(data) {
  55 + return request({
  56 + url: '/service/archivesDepot/shelve',
  57 + method: 'post',
  58 + data: data
  59 + })
  60 +}
  61 +
  62 +export function shelveDown(data) {
  63 + return request({
  64 + url: '/service/archivesDepot/shelveDown',
  65 + method: 'post',
  66 + data: data
50 }) 67 })
51 } 68 }
ruoyi-ui/src/views/archives/box/filingindex.vue
@@ -89,7 +89,6 @@ @@ -89,7 +89,6 @@
89 plain 89 plain
90 icon="el-icon-download" 90 icon="el-icon-download"
91 size="mini" 91 size="mini"
92 - :disabled="single"  
93 @click="handleupdateyreturn2" 92 @click="handleupdateyreturn2"
94 v-hasPermi="['archives:collerctbox:inserBox']" 93 v-hasPermi="['archives:collerctbox:inserBox']"
95 >下架</el-button> 94 >下架</el-button>
@@ -170,9 +169,10 @@ @@ -170,9 +169,10 @@
170 </el-dialog> 169 </el-dialog>
171 170
172 <el-dialog :title="title" :visible.sync="shelveOpen" width="80%" append-to-body> 171 <el-dialog :title="title" :visible.sync="shelveOpen" width="80%" append-to-body>
173 - <shelve :ids=ids ref="shelve" /> 172 + <shelve :ids=ids ref="shelve" :shelveType=shelveType />
174 <div slot="footer" class="dialog-footer"> 173 <div slot="footer" class="dialog-footer">
175 - <el-button type="primary" @click="handleCheckShelve">确 定</el-button> 174 + <el-button type="primary" @click="handleCheckShelve" v-if="shelveType==1">上 架</el-button>
  175 + <el-button type="primary" @click="handleCheckShelveDown" v-if="shelveType==2">下 架</el-button>
176 <el-button >取 消</el-button> 176 <el-button >取 消</el-button>
177 </div> 177 </div>
178 </el-dialog> 178 </el-dialog>
@@ -227,7 +227,8 @@ export default { @@ -227,7 +227,8 @@ export default {
227 updateyfiling :true, //预归档 227 updateyfiling :true, //预归档
228 updatefiling: true,//归档 228 updatefiling: true,//归档
229 apprvoal: 4, //归档 229 apprvoal: 4, //归档
230 - shelveOpen : false 230 + shelveOpen : false,
  231 + shelveType:undefined,
231 }; 232 };
232 }, 233 },
233 created() { 234 created() {
@@ -330,13 +331,25 @@ export default { @@ -330,13 +331,25 @@ export default {
330 }, 331 },
331 handleupdateyreturn1(row){ 332 handleupdateyreturn1(row){
332 this.title="上架"; 333 this.title="上架";
  334 + this.shelveType=1;
333 this.shelveOpen = true; 335 this.shelveOpen = true;
  336 + this.$nextTick(()=>{
  337 + this.$refs.shelve.getList();
  338 + })
334 }, 339 },
335 handleupdateyreturn2(row){ 340 handleupdateyreturn2(row){
336 - 341 + this.title="下架";
  342 + this.shelveType=2;
  343 + this.shelveOpen = true;
  344 + this.$nextTick(()=>{
  345 + this.$refs.shelve.getList();
  346 + })
337 },handleCheckShelve(){ 347 },handleCheckShelve(){
338 - this.$refs.shelve.handleCheck(); 348 + this.$refs.shelve.shelve();
  349 + },handleCheckShelveDown(){
  350 + this.$refs.shelve.shelveDown();
339 } 351 }
  352 +
340 } 353 }
341 }; 354 };
342 </script> 355 </script>
ruoyi-ui/src/views/archives/box/shelveindex.vue 0 → 100644
  1 +<template>
  2 + <div class="app-container">
  3 + <el-row :gutter="20">
  4 + <el-col :span="5" :xs="24">
  5 + <div class="head-container">
  6 + <el-tree
  7 + :data="options"
  8 + :props="defaultProps"
  9 + :expand-on-click-node="false"
  10 + :filter-node-method="filterNode"
  11 + :default-expand-all=true
  12 + node-key="id"
  13 + ref="tree"
  14 + highlight-current
  15 + @node-click="handleNodeClick"
  16 + />
  17 + </div>
  18 + </el-col>
  19 + <el-col :span="19" :xs="24" >
  20 + <el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange">
  21 + <el-table-column type="selection" width="50" align="center" />
  22 + <el-table-column label="年度" align="center" prop="year" />
  23 + <el-table-column label="卷盒规格" align="center" prop="boxRule" />
  24 + <el-table-column label="盒号" align="center" prop="boxMark" />
  25 + <el-table-column label="库位码" align="center" prop="deportNodeId" />
  26 + <el-table-column label="描述" align="center" prop="describes" />
  27 + </el-table>
  28 + </el-col>
  29 + </el-row>
  30 + </div>
  31 +</template>
  32 +
  33 +<script>
  34 +
  35 +import {treeselect} from "@/api/service/depot";
  36 +import {listByIds, shelve, shelveDown, updateBox} from "@/api/archives/box";
  37 +
  38 +export default {
  39 + name: "shelveBox",
  40 + props: {
  41 + ids: {
  42 + type: Array,// 这里你接收的值是什么类型就写什么类型
  43 + },
  44 + shelveType: {
  45 + type: Number,// 这里你接收的值是什么类型就写什么类型
  46 + }
  47 + },
  48 + data() {
  49 + return {
  50 + options: undefined,
  51 + defaultProps: {
  52 + children: "children",
  53 + label: "label"
  54 + },
  55 + multiple: true,
  56 + single:true,
  57 + loading: true,
  58 + list: [],
  59 + level:undefined,
  60 + queryParams:{
  61 + depotNodeId:undefined
  62 + },
  63 + params:{
  64 + depotNodeId:undefined,
  65 + ids:undefined,
  66 + depotCode:undefined
  67 + }
  68 + };
  69 + },
  70 + created() {
  71 + this.getTreeselect();
  72 + },
  73 + methods: {
  74 + getTreeselect() {
  75 + treeselect().then(response => {
  76 + this.options = response.data;
  77 + let id=response.data[0].id;
  78 + });
  79 + },
  80 + // 筛选节点
  81 + filterNode(value, data) {
  82 + if (!value) return true;
  83 + return data.label.indexOf(value) !== -1;
  84 + },
  85 + // 节点单击事件
  86 + handleNodeClick(data) {
  87 + this.level=data.level;
  88 + this.params.depotNodeId=data.dbId;
  89 + this.params.depotCode=data.label;
  90 + },
  91 + getList() {
  92 + this.loading = true;
  93 + if(this.shelveType==1){
  94 + this.queryParams.deportNodeId='isNull'
  95 + }
  96 + else if(this.shelveType==2){
  97 + this.queryParams.deportNodeId='isNotNull'
  98 + }
  99 + listByIds(this.queryParams,this.ids).then(response => {
  100 + this.list = response.rows;
  101 + this.loading = false;
  102 + });
  103 + },
  104 + // 多选框选中数据
  105 + handleSelectionChange(selection) {
  106 + this.params.ids= selection.map(item => item.id)
  107 + this.single = selection.length!==1
  108 + this.multiple = !selection.length
  109 + },
  110 + shelve(){
  111 + if(this.level!=6){
  112 + this.$message.error('只能上架节点')
  113 + return;
  114 + }
  115 + shelve(this.params).then(response => {
  116 + this.$modal.msgSuccess("修改成功");
  117 + this.getList();
  118 + });
  119 + },
  120 + shelveDown(){
  121 + shelveDown(this.params).then(response => {
  122 + this.$modal.msgSuccess("修改成功");
  123 + this.getList();
  124 + });
  125 + }
  126 + }
  127 +}
  128 +</script>
ruoyi-ui/src/views/service/secretReduce/index.vue 0 → 100644
  1 +<!--档案到期鉴定-->
  2 +<template>
  3 + <div class="app-container">
  4 + <el-row :gutter="20">
  5 + <el-col :span="3" :xs="24">
  6 + <div class="head-container">
  7 + <el-tree
  8 + :data="options"
  9 + :props="defaultProps"
  10 + :expand-on-click-node="false"
  11 + :filter-node-method="filterNode"
  12 + :default-expand-all=true
  13 + node-key="id"
  14 + ref="tree"
  15 + highlight-current
  16 + @node-click="handleNodeClick"
  17 + />
  18 + </div>
  19 + </el-col>
  20 + <el-col :span="20" :xs="24" >
  21 + <el-tabs type="border-card" value="0" @tab-click="clickTab">
  22 + <el-tab-pane label="到期档案" name="0" ></el-tab-pane>
  23 + <el-tab-pane label="审批结果" name="1" ></el-tab-pane>
  24 + <el-row :gutter="10" class="mb8" v-if="examineState==0">
  25 + <el-col :span="1.5">
  26 + <el-button
  27 + type="primary"
  28 + plain
  29 + size="mini"
  30 + :disabled="multiple"
  31 + @click="apply"
  32 + v-hasPermi="['server:expiration:add']"
  33 + >提交审批</el-button>
  34 + </el-col>
  35 + </el-row>
  36 + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" v-if="examineState==1">
  37 + <el-form-item label="选择类型" prop="workType">
  38 + <el-select v-model="queryParams.expirationType" placeholder="请选择" clearable >
  39 + <el-option
  40 + v-for="dict in dict.type.expirationType"
  41 + :key="dict.value"
  42 + :label="dict.label"
  43 + :value="dict.value"
  44 + />
  45 + </el-select>
  46 + </el-form-item>
  47 + <el-form-item label="审批单号" prop="expirationNo">
  48 + <el-input v-model="queryParams.expirationNo" />
  49 + </el-form-item>
  50 + <el-form-item>
  51 + <el-button type="primary" size="mini" @click="handleQuery">搜索</el-button>
  52 + <el-button type="primary" size="mini" @click="resetQuery">重置</el-button>
  53 + <el-button type="primary" size="mini" @click="yb">延保</el-button>
  54 + <el-button type="primary" size="mini" @click="xh">销毁</el-button>
  55 + <el-button type="primary" size="mini" @click="yj">移交</el-button>
  56 + </el-form-item>
  57 + </el-form>
  58 +
  59 + <el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange">
  60 + <el-table-column type="selection" width="50" align="center" />
  61 + <el-table-column label="审批号" align="center" prop="expirationNo" show-overflow-tooltip v-if="examineState==1"/>
  62 + <el-table-column label="申请人" align="center" prop="applicant" v-if="examineState==1"/>
  63 + <el-table-column label="全宗号" align="center" prop="general" />
  64 + <el-table-column label="年度" align="center" prop="year" />
  65 + <el-table-column label="题名" align="center" prop="title" />
  66 + <el-table-column label="分类号" align="center" prop="sort" />
  67 + <el-table-column label="保管期限" align="center" prop="safekeepingDate" show-overflow-tooltip />
  68 + <el-table-column label="密级" align="center" prop="secretLevel" />
  69 + <el-table-column label="页数" align="center" prop="pages" />
  70 + <el-table-column label="归档份数" align="center" prop="filingNumber" />
  71 + <el-table-column label="在库份数" align="center" prop="zkNumber" />
  72 + <el-table-column label="库位码" align="center" prop="locationCode" />
  73 + <el-table-column label="归档部门" align="center" prop="filingDept" />
  74 + <el-table-column label="档号" align="center" prop="archivalCode" />
  75 + <el-table-column label="责任者" align="center" prop="responsibilityName" />
  76 +<!-- <el-table-column label="审批号" align="center" prop="expirationNo" show-overflow-tooltip v-if="examineState==1"/>
  77 + <el-table-column label="申请人" align="center" prop="applicant" v-if="examineState==1"/>
  78 + <el-table-column label="全宗号" align="center" prop="general" />
  79 + <el-table-column label="年度" align="center" prop="year" />
  80 + <el-table-column label="案卷号" align="center" prop="volumeMark" />
  81 + <el-table-column label="题名" align="center" prop="title" />
  82 + <el-table-column label="保管期限" align="center" prop="safekeepingDate" show-overflow-tooltip />
  83 + <el-table-column label="立卷人" align="center" prop="vlimeName" />
  84 + <el-table-column label="立卷单位" align="center" prop="vlimeDept" />
  85 + <el-table-column label="立卷时间" align="center" prop="vlimDate" />
  86 + <el-table-column label="到期时间" align="center" prop="expireDate" />
  87 + <el-table-column label="库位码" align="center" prop="locationCode" />
  88 + <el-table-column label="密级" align="center" prop="secretLevel" />
  89 + <el-table-column label="归档部门" align="center" prop="filingDept" />-->
  90 + </el-table>
  91 + <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
  92 + </el-tabs>
  93 + </el-col>
  94 + </el-row>
  95 +
  96 + <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
  97 + <el-form ref="form" :model="form" :rules="rules" label-width="90px">
  98 + <el-form-item label="处理方式" prop="expirationType">
  99 + <el-select v-model="form.expirationType" placeholder="处理方式" >
  100 + <el-option
  101 + v-for="dict in dict.type.expirationType"
  102 + :key="dict.value"
  103 + :label="dict.label"
  104 + :value="dict.value"
  105 + />
  106 + </el-select>
  107 + </el-form-item>
  108 + </el-form>
  109 + <div slot="footer" class="dialog-footer">
  110 + <el-button type="primary" @click="submitForm">确 定</el-button>
  111 + <el-button @click="cancel">取 消</el-button>
  112 + </div>
  113 + </el-dialog>
  114 +
  115 + </div>
  116 +</template>
  117 +<script>
  118 +
  119 +import {getDepots} from "@/api/service/depot";
  120 +import {treeselect} from "@/api/archives/dept";
  121 +import {listPost, apply, yb, xh, yj} from "@/api/service/expiration";
  122 +import Treeselect from "@riophae/vue-treeselect";
  123 +import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  124 +import {delPost} from "@/api/service/inventory";
  125 +
  126 +export default {
  127 + dicts: ['expirationType'],
  128 + components: { Treeselect },
  129 + data() {
  130 + return {
  131 + postList: null,
  132 + form: {},
  133 + // 遮罩层
  134 + loading: true,
  135 + // 选中数组
  136 + ids: [],
  137 + // 非单个禁用
  138 + single: true,
  139 + // 非多个禁用
  140 + multiple: true,
  141 + // 显示搜索条件
  142 + showSearch: true,
  143 + // 总条数
  144 + total: 0,
  145 + // 弹出层标题
  146 + title: "",
  147 + // 部门树选项
  148 + options: undefined,
  149 + // 是否显示弹出层
  150 + open: false,
  151 + // 表单参数
  152 + defaultProps: {
  153 + children: "children",
  154 + label: "label"
  155 + },
  156 + // 查询参数
  157 + queryParams: {
  158 + pageNum: 1,
  159 + pageSize: 10,
  160 + filingDept:undefined,
  161 + examineState:0,
  162 + expirationType:undefined,
  163 + expirationNo:undefined
  164 + },
  165 + // 表单校验
  166 + rules: {
  167 + },
  168 + depotList:[],
  169 + examineState:0
  170 + };
  171 + },
  172 + watch: {
  173 + // 根据名称筛选部门树
  174 + deptName(val) {
  175 + this.$refs.tree.filter(val);
  176 + }
  177 + },
  178 + created() {
  179 + this.getList();
  180 + this.getTreeselect();
  181 + this.getDepots();
  182 + },
  183 + methods: {
  184 + /** 树形结构 */
  185 + getTreeselect() {
  186 + treeselect().then(response => {
  187 + this.options = response.data;
  188 + });
  189 + },
  190 + // 筛选节点
  191 + filterNode(value, data) {
  192 + if (!value) return true;
  193 + return data.label.indexOf(value) !== -1;
  194 + },
  195 + // 节点单击事件
  196 + handleNodeClick(data) {
  197 + console.log(data.id)
  198 + this.queryParams.filingDept=data.id;
  199 + this.handleQuery();
  200 + },/** 搜索按钮操作 */
  201 + handleQuery() {
  202 + this.queryParams.pageNum = 1;
  203 + this.getList();
  204 + },/** 重置按钮操作 */
  205 + resetQuery() {
  206 + this.resetForm("queryForm");
  207 + this.handleQuery();
  208 + },
  209 + // 多选框选中数据
  210 + handleSelectionChange(selection) {
  211 + this.ids = selection.map(item => item.id);
  212 + this.single = selection.length != 1;
  213 + this.multiple = !selection.length;
  214 + },
  215 + /** 分页 */
  216 + getList() {
  217 + this.queryParams.examineState=this.examineState;
  218 + this.loading = true;
  219 + listPost(this.queryParams).then(response => {
  220 + this.postList = response.rows;
  221 + this.total = response.total;
  222 + this.loading = false;
  223 + });
  224 + },
  225 + // 取消按钮
  226 + cancel() {
  227 + this.open = false;
  228 + this.reset();
  229 + },
  230 + // 表单重置
  231 + reset() {
  232 + this.form = {
  233 + expirationType: undefined,
  234 + ids: undefined
  235 + };
  236 + this.resetForm("form");
  237 + },
  238 + /** 提交申请 */
  239 + apply(row) {
  240 + const ids =row.id || this.ids;
  241 + this.$modal.confirm('是否确认提交数据?').then(function() {
  242 + return apply(ids);
  243 + }).then(() => {
  244 + this.getList();
  245 + this.$modal.msgSuccess("提交成功");
  246 + }).catch(() => {});
  247 + },
  248 + /** 延保 */
  249 + yb(row) {
  250 + const ids =row.id || this.ids;
  251 + this.$modal.confirm('是否确认延保数据?').then(function() {
  252 + return yb(ids);
  253 + }).then(() => {
  254 + this.getList();
  255 + this.$modal.msgSuccess("提交成功");
  256 + }).catch(() => {});
  257 + },
  258 + /** 销毁 */
  259 + xh(row) {
  260 + const ids =row.id || this.ids;
  261 + this.$modal.confirm('是否确认销毁数据?').then(function() {
  262 + return xh(ids);
  263 + }).then(() => {
  264 + this.getList();
  265 + this.$modal.msgSuccess("提交成功");
  266 + }).catch(() => {});
  267 + },
  268 + /** 移交 */
  269 + yj(row) {
  270 + const ids =row.id || this.ids;
  271 + this.$modal.confirm('是否确认移交数据?').then(function() {
  272 + return yj(ids);
  273 + }).then(() => {
  274 + this.getList();
  275 + this.$modal.msgSuccess("提交成功");
  276 + }).catch(() => {});
  277 + },
  278 + submitForm: function() {
  279 + this.$refs["form"].validate(valid => {
  280 + if (valid) {
  281 + updatePost(this.form).then(response => {
  282 + this.$modal.msgSuccess("提交成功");
  283 + this.open = false;
  284 + this.getList();
  285 + });
  286 + }
  287 + });
  288 + },
  289 + /*以下为初始化数据及以下工具类--------------------------------------------------*/
  290 + /** 获取档案库列表 */
  291 + getDepots(){
  292 + getDepots().then(response=>{
  293 + this.depotList=response.depotList;
  294 + })
  295 + },
  296 + expirationTypeFormat(row, column) {
  297 + return this.selectDictLabel(this.dict.type.expirationType, row.expirationType);
  298 + },
  299 + /** 简单Tab */
  300 + clickTab(tab, event) {
  301 + this.examineState=tab.name;
  302 + this.handleQuery();
  303 + }
  304 + }
  305 +};
  306 +</script>