Просмотр исходного кода

Merge branch 'dev' of licailing/wenlvju into master

licailing 5 лет назад
Родитель
Сommit
e8185bc74f

+ 0 - 23
src/main/java/com/izouma/wenlvju/domain/GradeRule.java

@@ -1,23 +0,0 @@
-package com.izouma.wenlvju.domain;
-
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-
-@Data
-@Builder
-@Entity
-@AllArgsConstructor
-@NoArgsConstructor
-public class GradeRule extends BaseEntity {
-    private String name;
-    @Column(columnDefinition = "TEXT")
-    private String content;
-    private int    score;
-    private String parentName;
-    private int    parentScore;
-}

+ 0 - 16
src/main/java/com/izouma/wenlvju/repo/GradeRuleRepo.java

@@ -1,16 +0,0 @@
-package com.izouma.wenlvju.repo;
-
-import com.izouma.wenlvju.domain.GradeRule;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-
-import javax.transaction.Transactional;
-
-public interface GradeRuleRepo extends JpaRepository<GradeRule, Long>, JpaSpecificationExecutor<GradeRule> {
-    @Query("update GradeRule t set t.del = true where t.id = ?1")
-    @Modifying
-    @Transactional
-    void softDelete(Long id);
-}

+ 0 - 20
src/main/java/com/izouma/wenlvju/service/GradeRuleService.java

@@ -1,20 +0,0 @@
-package com.izouma.wenlvju.service;
-
-import com.izouma.wenlvju.domain.GradeRule;
-import com.izouma.wenlvju.dto.PageQuery;
-import com.izouma.wenlvju.repo.GradeRuleRepo;
-import com.izouma.wenlvju.utils.JpaUtils;
-import lombok.AllArgsConstructor;
-import org.springframework.data.domain.Page;
-import org.springframework.stereotype.Service;
-
-@Service
-@AllArgsConstructor
-public class GradeRuleService {
-
-    private GradeRuleRepo gradeRuleRepo;
-
-    public Page<GradeRule> all(PageQuery pageQuery) {
-        return gradeRuleRepo.findAll(JpaUtils.toSpecification(pageQuery, GradeRule.class), JpaUtils.toPageRequest(pageQuery));
-    }
-}

+ 0 - 1
src/main/java/com/izouma/wenlvju/service/RateExpertAuditService.java

@@ -1,7 +1,6 @@
 package com.izouma.wenlvju.service;
 
 import cn.hutool.core.util.ObjectUtil;
-import com.izouma.wenlvju.domain.GradeRule;
 import com.izouma.wenlvju.domain.Rate;
 import com.izouma.wenlvju.domain.RateAudit;
 import com.izouma.wenlvju.domain.RateExpertAudit;

+ 0 - 60
src/main/java/com/izouma/wenlvju/web/GradeRuleController.java

@@ -1,60 +0,0 @@
-package com.izouma.wenlvju.web;
-import com.izouma.wenlvju.domain.GradeRule;
-import com.izouma.wenlvju.service.GradeRuleService;
-import com.izouma.wenlvju.dto.PageQuery;
-import com.izouma.wenlvju.exception.BusinessException;
-import com.izouma.wenlvju.repo.GradeRuleRepo;
-import com.izouma.wenlvju.utils.ObjUtils;
-import com.izouma.wenlvju.utils.excel.ExcelUtils;
-import lombok.AllArgsConstructor;
-import org.springframework.data.domain.Page;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.List;
-
-@RestController
-@RequestMapping("/gradeRule")
-@AllArgsConstructor
-public class GradeRuleController extends BaseController {
-    private GradeRuleService gradeRuleService;
-    private GradeRuleRepo gradeRuleRepo;
-
-    //@PreAuthorize("hasRole('ADMIN')")
-    @PostMapping("/save")
-    public GradeRule save(@RequestBody GradeRule record) {
-        if (record.getId() != null) {
-            GradeRule orig = gradeRuleRepo.findById(record.getId()).orElseThrow(new BusinessException("无记录"));
-            ObjUtils.merge(orig, record);
-            return gradeRuleRepo.save(orig);
-        }
-        return gradeRuleRepo.save(record);
-    }
-
-
-    //@PreAuthorize("hasRole('ADMIN')")
-    @PostMapping("/all")
-    public Page<GradeRule> all(@RequestBody PageQuery pageQuery) {
-        return gradeRuleService.all(pageQuery);
-    }
-
-    @GetMapping("/get/{id}")
-    public GradeRule get(@PathVariable Long id) {
-        return gradeRuleRepo.findById(id).orElseThrow(new BusinessException("无记录"));
-    }
-
-    @PostMapping("/del/{id}")
-    public void del(@PathVariable Long id) {
-        gradeRuleRepo.softDelete(id);
-    }
-
-    @GetMapping("/excel")
-    @ResponseBody
-    public void excel(HttpServletResponse response, PageQuery pageQuery) throws IOException {
-        List<GradeRule> data = all(pageQuery).getContent();
-        ExcelUtils.export(response, data);
-    }
-}
-

+ 13 - 2
src/main/vue/src/components/SysMenu.vue

@@ -4,8 +4,10 @@
     </el-menu-item>
     <el-submenu v-else :index="'' + menu.id">
         <template slot="title">
-            <i class="fa-fw" :class="menu.icon" v-if="menu.icon"></i>
-            <span slot="title">{{ menu.name }}</span>
+            <div @click="goPath(menu.path, '' + menu.id, menu.children)">
+                <i class="fa-fw" :class="menu.icon" v-if="menu.icon"></i>
+                <span slot="title">{{ menu.name }}</span>
+            </div>
         </template>
         <sys-menu v-for="item in menu.children" :menu="item" :key="item.id"></sys-menu>
     </el-submenu>
@@ -25,6 +27,15 @@ export default {
     methods: {
         click(e) {
             console.log(e);
+        },
+        goPath(path, index, children) {
+            let child = children.find(item => {
+                return this.$route.path === item.path && this.$route;
+            });
+            if (path && this.$route && this.$route.path !== path && !child) {
+                this.$router.push(path);
+                this.$emit('open', index);
+            }
         }
     },
     computed: {

+ 0 - 16
src/main/vue/src/router.js

@@ -426,22 +426,6 @@ const router = new Router({
                         title: '艺术分类'
                     }
                 },
-                {
-                    path: '/gradeRuleEdit',
-                    name: 'GradeRuleEdit',
-                    component: () => import(/* webpackChunkName: "gradeRuleEdit" */ '@/views/GradeRuleEdit.vue'),
-                    meta: {
-                        title: '评分细则编辑'
-                    }
-                },
-                {
-                    path: '/gradeRuleList',
-                    name: 'GradeRuleList',
-                    component: () => import(/* webpackChunkName: "gradeRuleList" */ '@/views/GradeRuleList.vue'),
-                    meta: {
-                        title: '评分细则'
-                    }
-                },
                 {
                     path: '/gradingOrganizationEdit',
                     name: 'GradingOrganizationEdit',

+ 18 - 1
src/main/vue/src/views/Admin.vue

@@ -13,8 +13,9 @@
                 :default-active="activeMenu"
                 style="border-right: 1px solid #545c64;"
                 class="el-menu-vertical-demo"
+                ref="menu"
             >
-                <sys-menu v-for="item in menus" :menu="item" :key="item.id"> </sys-menu>
+                <sys-menu v-for="item in menus" @open="open" :menu="item" :key="item.id"> </sys-menu>
             </el-menu>
         </el-aside>
         <el-container>
@@ -191,6 +192,15 @@ export default {
                         parents_copy.push(i);
                         this.menuPath = parents_copy.map(i => i.name);
                         this.activeMenu = '' + i.id;
+                        if (i.children) {
+                            let child = i.children.find(_child => {
+                                return _child.path === path;
+                            });
+                            if (!!child) {
+                                parents_copy.push(i);
+                                findActiveMenu(parents_copy, i.children);
+                            }
+                        }
                     } else {
                         if (i.children) {
                             parents_copy.push(i);
@@ -280,6 +290,13 @@ export default {
                 this.captcha = res.image;
                 this.pwdForm.key = res.key;
             });
+        },
+        open(index) {
+            this.$nextTick(() => {
+                setTimeout(() => {
+                    this.$refs.menu.open(index);
+                }, 100);
+            });
         }
     },
     watch: {

+ 0 - 104
src/main/vue/src/views/GradeRuleEdit.vue

@@ -1,104 +0,0 @@
-<template>
-    <div class="edit-view">
-        <el-form
-            :model="formData"
-            :rules="rules"
-            ref="form"
-            label-width="122px"
-            label-position="right"
-            size="small"
-            style="max-width: 500px;"
-        >
-            <el-form-item prop="parentName" label="一级指标">
-                <el-input v-model="formData.parentName"></el-input>
-            </el-form-item>
-            <el-form-item prop="parentScore" label="一级指标分数">
-                <el-input-number type="number" v-model="formData.parentScore"></el-input-number>
-            </el-form-item>
-            <el-form-item prop="name" label="二级指标">
-                <el-input v-model="formData.name"></el-input>
-            </el-form-item>
-            <el-form-item prop="content" label="评定项目和要求">
-                <el-input type="textarea" v-model="formData.content"></el-input>
-            </el-form-item>
-            <el-form-item prop="score" label="分值">
-                <el-input-number type="number" v-model="formData.score"></el-input-number>
-            </el-form-item>
-            <el-form-item>
-                <el-button @click="onSave" :loading="saving" type="primary">保存</el-button>
-                <el-button @click="onDelete" :loading="saving" type="danger" v-if="formData.id">删除 </el-button>
-                <el-button @click="$router.go(-1)">取消</el-button>
-            </el-form-item>
-        </el-form>
-    </div>
-</template>
-<script>
-export default {
-    name: 'GradeRuleEdit',
-    created() {
-        if (this.$route.query.id) {
-            this.$http
-                .get('gradeRule/get/' + this.$route.query.id)
-                .then(res => {
-                    this.formData = res;
-                })
-                .catch(e => {
-                    console.log(e);
-                    this.$message.error(e.error);
-                });
-        }
-    },
-    data() {
-        return {
-            saving: false,
-            formData: {},
-            rules: {}
-        };
-    },
-    methods: {
-        onSave() {
-            this.$refs.form.validate(valid => {
-                if (valid) {
-                    this.submit();
-                } else {
-                    return false;
-                }
-            });
-        },
-        submit() {
-            let data = { ...this.formData };
-
-            this.saving = true;
-            this.$http
-                .post('/gradeRule/save', data, { body: 'json' })
-                .then(res => {
-                    this.saving = false;
-                    this.$message.success('成功');
-                    this.$router.go(-1);
-                })
-                .catch(e => {
-                    console.log(e);
-                    this.saving = false;
-                    this.$message.error(e.error);
-                });
-        },
-        onDelete() {
-            this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' })
-                .then(() => {
-                    return this.$http.post(`/gradeRule/del/${this.formData.id}`);
-                })
-                .then(() => {
-                    this.$message.success('删除成功');
-                    this.$router.go(-1);
-                })
-                .catch(e => {
-                    if (e !== 'cancel') {
-                        console.log(e);
-                        this.$message.error((e || {}).error || '删除失败');
-                    }
-                });
-        }
-    }
-};
-</script>
-<style lang="less" scoped></style>

+ 0 - 183
src/main/vue/src/views/GradeRuleList.vue

@@ -1,183 +0,0 @@
-<template>
-    <div class="list-view">
-        <div class="filters-container">
-            <el-input placeholder="输入关键字" v-model="search" clearable class="filter-item"></el-input>
-            <el-button @click="getData" type="primary" icon="el-icon-search" class="filter-item">搜索 </el-button>
-            <el-button @click="addRow" type="primary" icon="el-icon-plus" class="filter-item">添加 </el-button>
-            <el-button
-                @click="download"
-                type="primary"
-                icon="el-icon-download"
-                :loading="downloading"
-                class="filter-item"
-                >导出EXCEL
-            </el-button>
-        </div>
-        <el-table
-            :data="tableData"
-            row-key="id"
-            ref="table"
-            header-row-class-name="table-header-row"
-            header-cell-class-name="table-header-cell"
-            row-class-name="table-row"
-            cell-class-name="table-cell"
-            :height="tableHeight"
-            :span-method="objectSpanMethod"
-        >
-            <el-table-column v-if="multipleMode" align="center" type="selection" width="50"> </el-table-column>
-            <!-- <el-table-column prop="id" label="ID" width="100"> </el-table-column> -->
-            <el-table-column prop="parentName" label="一级指标">
-                <template slot-scope="{ row }">
-                    <span>{{ row.parentName }}</span>
-                    <div>
-                        <span>{{ row.parentScore }}分</span>
-                    </div>
-                </template>
-            </el-table-column>
-            <!-- <el-table-column prop="parentScore" label="一级指标分数"> </el-table-column> -->
-            <el-table-column prop="name" label="二级指标"> </el-table-column>
-            <el-table-column prop="content" label="评定项目和要求" min-width="130"> </el-table-column>
-            <el-table-column prop="score" label="分值"> </el-table-column>
-            <el-table-column label="操作" align="center" fixed="right" min-width="100">
-                <template slot-scope="{ row }">
-                    <el-button @click="editRow(row)" type="primary" size="mini" plain>编辑</el-button>
-                    <el-button @click="deleteRow(row)" type="danger" size="mini" plain>删除</el-button>
-                </template>
-            </el-table-column>
-        </el-table>
-        <div class="pagination-wrapper">
-            <!-- <div class="multiple-mode-wrapper">
-                <el-button v-if="!multipleMode" @click="toggleMultipleMode(true)">批量编辑</el-button>
-                <el-button-group v-else>
-                    <el-button @click="operation1">批量操作1</el-button>
-                    <el-button @click="operation2">批量操作2</el-button>
-                    <el-button @click="toggleMultipleMode(false)">取消</el-button>
-                </el-button-group>
-            </div> -->
-            <el-pagination
-                background
-                @size-change="onSizeChange"
-                @current-change="onCurrentChange"
-                :current-page="page"
-                :page-sizes="[10, 20, 30, 40, 50]"
-                :page-size="pageSize"
-                layout="total, sizes, prev, pager, next, jumper"
-                :total="totalElements"
-            >
-            </el-pagination>
-        </div>
-    </div>
-</template>
-<script>
-import { mapState } from 'vuex';
-import pageableTable from '@/mixins/pageableTable';
-
-export default {
-    name: 'GradeRuleList',
-    mixins: [pageableTable],
-    data() {
-        return {
-            multipleMode: false,
-            search: '',
-            url: '/gradeRule/all',
-            downloading: false
-        };
-    },
-    computed: {
-        selection() {
-            return this.$refs.table.selection.map(i => i.id);
-        }
-    },
-    methods: {
-        beforeGetData() {
-            return { search: this.search };
-        },
-        toggleMultipleMode(multipleMode) {
-            this.multipleMode = multipleMode;
-            if (!multipleMode) {
-                this.$refs.table.clearSelection();
-            }
-        },
-        addRow() {
-            this.$router.push({
-                path: '/gradeRuleEdit',
-                query: {
-                    ...this.$route.query
-                }
-            });
-        },
-        editRow(row) {
-            this.$router.push({
-                path: '/gradeRuleEdit',
-                query: {
-                    id: row.id
-                }
-            });
-        },
-        download() {
-            this.downloading = true;
-            this.$axios
-                .get('/gradeRule/excel', {
-                    responseType: 'blob',
-                    params: { size: 10000 }
-                })
-                .then(res => {
-                    console.log(res);
-                    this.downloading = false;
-                    const downloadUrl = window.URL.createObjectURL(new Blob([res.data]));
-                    const link = document.createElement('a');
-                    link.href = downloadUrl;
-                    link.setAttribute('download', res.headers['content-disposition'].split('filename=')[1]);
-                    document.body.appendChild(link);
-                    link.click();
-                    link.remove();
-                })
-                .catch(e => {
-                    console.log(e);
-                    this.downloading = false;
-                    this.$message.error(e.error);
-                });
-        },
-        operation1() {
-            this.$notify({
-                title: '提示',
-                message: this.selection
-            });
-        },
-        operation2() {
-            this.$message('操作2');
-        },
-        deleteRow(row) {
-            this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' })
-                .then(() => {
-                    return this.$http.post(`/gradeRule/del/${row.id}`);
-                })
-                .then(() => {
-                    this.$message.success('删除成功');
-                    this.getData();
-                })
-                .catch(e => {
-                    if (e !== 'cancel') {
-                        this.$message.error(e.error);
-                    }
-                });
-        },
-        objectSpanMethod({ row, column, rowIndex, columnIndex }) {
-            if (columnIndex === 0) {
-                if (rowIndex % 2 === 0) {
-                    return {
-                        rowspan: 2,
-                        colspan: 1
-                    };
-                } else {
-                    return {
-                        rowspan: 0,
-                        colspan: 0
-                    };
-                }
-            }
-        }
-    }
-};
-</script>
-<style lang="less" scoped></style>