Merge branch 'dev' of http://62.234.3.186:3000/sxyanzhu/jhprjv2 into dev
commit
a9f5df0eb5
|
@ -49,7 +49,7 @@ spring:
|
|||
druid:
|
||||
# 主库数据源
|
||||
master:
|
||||
url: jdbc:mysql://cd-cynosdbmysql-grp-9rqrhxsm.sql.tencentcdb.com:27981/yanzhu_jh_test_2024?useSSL=false&characterEncoding=UTF-8&serverTimezone=GMT%2B8
|
||||
url: jdbc:mysql://cd-cynosdbmysql-grp-9rqrhxsm.sql.tencentcdb.com:27981/yanzhu_jh_test?useSSL=false&characterEncoding=UTF-8&serverTimezone=GMT%2B8
|
||||
username: root
|
||||
password: Sxyanzhu@cf
|
||||
# 从库数据源
|
||||
|
|
|
@ -42,3 +42,13 @@ export function delProjectCommittee(id) {
|
|||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 删除工委会管理
|
||||
export function addProjectCommitteeList(list) {
|
||||
return request({
|
||||
url: '/project/projectCommittee/addList',
|
||||
method: 'post',
|
||||
data:list
|
||||
})
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="期刊" prop="magid">
|
||||
|
||||
<el-button type="text">管理</el-button>
|
||||
<el-button type="text">管理</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item label="栏目" prop="topic">
|
||||
<el-select v-model="queryParams.type" placeholder="请选择栏目" clearable>
|
||||
|
@ -30,7 +30,7 @@
|
|||
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
|
||||
v-hasPermi="['base:magDetail:remove']">删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5" v-if="1==2">
|
||||
<el-col :span="1.5" v-if="1 == 2">
|
||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
|
||||
v-hasPermi="['base:magDetail:export']">导出</el-button>
|
||||
</el-col>
|
||||
|
@ -38,19 +38,24 @@
|
|||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="magDetailList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="期刊" align="center" prop="name" />
|
||||
<el-table-column label="栏目" align="center" prop="topicName" />
|
||||
<el-table-column label="单位" align="center" prop="deptName" />
|
||||
<el-table-column label="作者" align="center" prop="authorName" />
|
||||
<el-table-column label="期刊主图" align="center" prop="imageUrl">
|
||||
<template slot-scope="{row}">
|
||||
<el-image v-if="row.imageUrl" class="row-image" :src="$basepath + row.imageUrl + '.min.jpg'" :preview-src-list="[$basepath + row.imageUrl]"></el-image>
|
||||
<el-image v-if="row.imageUrl" class="row-image" :src="$basepath + row.imageUrl + '.min.jpg'"
|
||||
:preview-src-list="[$basepath + row.imageUrl]"></el-image>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="标题" align="center" prop="title">
|
||||
<template slot-scope="{row}">
|
||||
<div class="div-txt-3">{{ row.title}}</div>
|
||||
<el-popover placement="bottom-start" width="400" trigger="hover">
|
||||
{{ row.title }}
|
||||
<div slot="reference" class="div-txt-3" style="text-align: left;">{{ row.title }}</div>
|
||||
</el-popover>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="排序号" align="center" prop="ord" />
|
||||
|
@ -119,7 +124,7 @@ import magDetailDrawer from './magDetailDrawer.vue'
|
|||
export default {
|
||||
dicts: ['base_mag_topic'],
|
||||
name: "MagDetail",
|
||||
components:{
|
||||
components: {
|
||||
magDetailDrawer,
|
||||
},
|
||||
data() {
|
||||
|
@ -172,12 +177,12 @@ export default {
|
|||
getList() {
|
||||
this.loading = true;
|
||||
listMagDetail(this.queryParams).then(response => {
|
||||
this.magDetailList = (response.rows||[]).map(it=>{
|
||||
let tmps=it.images;
|
||||
if(tmps && tmps.length>0){
|
||||
tmps=this.$tryToJson(tmps,[]);
|
||||
if(tmps.length>0){
|
||||
it.imageUrl=tmps[0];
|
||||
this.magDetailList = (response.rows || []).map(it => {
|
||||
let tmps = it.images;
|
||||
if (tmps && tmps.length > 0) {
|
||||
tmps = this.$tryToJson(tmps, []);
|
||||
if (tmps.length > 0) {
|
||||
it.imageUrl = tmps[0];
|
||||
}
|
||||
}
|
||||
return it;
|
||||
|
@ -231,11 +236,11 @@ export default {
|
|||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.$refs.drawer.show(null,this.total+1);
|
||||
this.$refs.drawer.show(null, this.total + 1);
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.$refs.drawer.show(row,this.total+1);
|
||||
this.$refs.drawer.show(row, this.total + 1);
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
|
@ -277,9 +282,9 @@ export default {
|
|||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.mag-detail-index{
|
||||
.row-image{
|
||||
height:100px;
|
||||
.mag-detail-index {
|
||||
.row-image {
|
||||
height: 100px;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -60,8 +60,8 @@
|
|||
<FileUpload @input="doImageInput" v-model="form.imageUrl" :fileSize="5" :limit="1"
|
||||
:fileType="['png', 'jpg', 'jpeg']" />
|
||||
</el-form-item>
|
||||
<el-form-item label="" prop="content">
|
||||
<editor v-model="form.content" :min-height="192" />
|
||||
<el-form-item label="" prop="content" class="fi-editor">
|
||||
<editor v-model="form.content"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="dialog-footer" style="text-align: center;">
|
||||
|
@ -261,5 +261,10 @@ export default {
|
|||
}
|
||||
}
|
||||
}
|
||||
.fi-editor{
|
||||
.editor.ql-container{
|
||||
height: 52vh !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -1,22 +1,29 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="项目ID" prop="projectId">
|
||||
<el-input v-model="queryParams.projectId" placeholder="请输入项目ID" clearable @keyup.enter.native="handleQuery" />
|
||||
<el-form-item label="项目名称" prop="projectName">
|
||||
<el-input v-model="queryParams.projectName" placeholder="请输入项目名称" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="期名" prop="committeeName">
|
||||
<el-input v-model="queryParams.committeeName" placeholder="请输入期名" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="成本名称" prop="costName">
|
||||
<el-input v-model="queryParams.costName" placeholder="请输入成本名称" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="金额(万元)" prop="money">
|
||||
<el-input v-model="queryParams.money" placeholder="请输入金额(万元)" clearable @keyup.enter.native="handleQuery" />
|
||||
<el-form-item label="分类" prop="workingType">
|
||||
<el-select v-model="queryParams.workingType" placeholder="分类" clearable>
|
||||
<el-option v-for="dict in dict.type.project_working_type" :key="dict.value" :label="dict.label"
|
||||
:value="dict.value" />
|
||||
</el-select>
|
||||
</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-row :gutter="10" class="mb8" v-if="1 == 2">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
|
||||
v-hasPermi="['project:projectCommittee:add']">新增</el-button>
|
||||
|
@ -37,14 +44,13 @@
|
|||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="projectCommitteeList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="${comment}" align="center" prop="id" />
|
||||
<el-table-column label="项目ID" align="center" prop="projectId" />
|
||||
<el-table-column label="分类字典project_working_type" align="center" prop="workingType" />
|
||||
<el-table-column type="selection" width="55" align="center" v-if="1 == 2" />
|
||||
<el-table-column label="期名" align="center" prop="committeeName" />
|
||||
<el-table-column label="项目" align="center" prop="projectName" />
|
||||
<el-table-column label="分类" align="center" prop="typeName" />
|
||||
<el-table-column label="成本名称" align="center" prop="costName" />
|
||||
<el-table-column label="金额(万元)" align="center" prop="money" />
|
||||
<el-table-column label="${comment}" align="center" prop="remark" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" v-if="1 == 2">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['project:projectCommittee:edit']">修改</el-button>
|
||||
|
@ -85,6 +91,7 @@
|
|||
import { listProjectCommittee, getProjectCommittee, delProjectCommittee, addProjectCommittee, updateProjectCommittee } from "@/api/project/projectCommittee";
|
||||
|
||||
export default {
|
||||
dicts: ['project_working_type'],
|
||||
name: "ProjectCommittee",
|
||||
data() {
|
||||
return {
|
||||
|
@ -110,7 +117,8 @@ export default {
|
|||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
projectId: null,
|
||||
projectName: null,
|
||||
committeeName: null,
|
||||
workingType: null,
|
||||
costName: null,
|
||||
money: null,
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<el-form ref="form" label-width="120px">
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||
<el-tab-pane v-for="(dict, idx) in dict.type.project_working_type" :key="dict.value"
|
||||
:label="dict.label" :name="'type' + dict.value">
|
||||
:label="dict.label" :name="'' + dict.value">
|
||||
<el-row v-for="(dataItem, index) in datas[idx]" :key="idx + '-' + index">
|
||||
<el-col :span="4">
|
||||
<el-form-item :label="dataItem.committeeName"></el-form-item>
|
||||
|
@ -38,7 +38,7 @@
|
|||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { listProjectCommittee, getProjectCommittee, delProjectCommittee, addProjectCommittee, updateProjectCommittee } from "@/api/project/projectCommittee";
|
||||
import { listProjectCommittee, getProjectCommittee, delProjectCommittee, addProjectCommittee, updateProjectCommittee,addProjectCommitteeList } from "@/api/project/projectCommittee";
|
||||
import { listCommittee, getCommittee, delCommittee, addCommittee, updateCommittee } from "@/api/base/committee";
|
||||
import axios from 'axios'
|
||||
export default {
|
||||
|
@ -49,7 +49,7 @@ export default {
|
|||
isOpen: false,
|
||||
projectId: 0,
|
||||
prjInfo: null,
|
||||
activeName: 'type1',
|
||||
activeName: '1',
|
||||
datas: [],
|
||||
}
|
||||
},
|
||||
|
@ -61,7 +61,53 @@ export default {
|
|||
return (tmp.length>0 && (costName.length==0 || money.length==0) && (type==1?costName.length==0:money.length==0)) ?"is-error":"";
|
||||
},
|
||||
submitForm(){
|
||||
|
||||
let dicts=this.dict.type.project_working_type
|
||||
let tmps=dicts.filter(d=>d.value==this.activeName);
|
||||
if(tmps.length==0){ return;}
|
||||
let tmp=tmps[0];
|
||||
let idx=dicts.indexOf(tmp);
|
||||
if(idx==-1){return;}
|
||||
if(!this.checkDatas(idx)){
|
||||
this.$modal.msgError("请输入数据!");
|
||||
return;
|
||||
}
|
||||
for(let i=0;i<dicts.length;i++){
|
||||
if(i!=idx){
|
||||
if(!this.checkDatas(i)){
|
||||
this.activeName=dicts[i].value;
|
||||
this.$modal.msgError("请输入数据!");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
let postData=[];
|
||||
this.datas.forEach(it=>{
|
||||
it.forEach(item=>{
|
||||
item.money*=1;
|
||||
postData.push(item);
|
||||
})
|
||||
});
|
||||
addProjectCommitteeList(postData).then(d=>{
|
||||
if(d.code==200){
|
||||
this.$modal.msgSuccess("保存成功!");
|
||||
this.loadData();
|
||||
}else{
|
||||
this.$modal.msgError("保存失败!!");
|
||||
}
|
||||
});
|
||||
},
|
||||
checkDatas(idx){
|
||||
let tmps=this.datas[idx];
|
||||
let isPass=true;
|
||||
tmps.forEach(d=>{
|
||||
let data1=d.costName||"";
|
||||
let data2=d.money||""+"";
|
||||
let data3=data1+data2;
|
||||
if(data3.length>0 && (data1.length==0 || data2.length==0)){
|
||||
isPass=false;
|
||||
}
|
||||
});
|
||||
return isPass;
|
||||
},
|
||||
doCancel(){
|
||||
this.isOpen=false;
|
||||
|
@ -84,6 +130,7 @@ export default {
|
|||
show(row) {
|
||||
this.prjInfo = row;
|
||||
this.isOpen = true;
|
||||
this.activeName=this.dict.type.project_working_type.length>0?this.dict.type.project_working_type[0].value:"";
|
||||
this.loadData();
|
||||
},
|
||||
loadData() {
|
||||
|
@ -133,9 +180,10 @@ export default {
|
|||
.el-drawer__body {
|
||||
padding: 12px 24px;
|
||||
.el-row{
|
||||
.el-input.is-error{
|
||||
.el-input.is-error{
|
||||
.el-input__inner{
|
||||
border:solid 1px red;
|
||||
border-radius: 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -170,7 +170,7 @@
|
|||
v-hasPermi="['project:assess:list']">季度考核管理</el-dropdown-item>
|
||||
<el-dropdown-item command="handleBuildNode" icon="el-icon-data-analysis"
|
||||
v-hasPermi="['project:build_node_data:list']">计划节点管理</el-dropdown-item>
|
||||
<el-dropdown-item command="handleCommittee" icon="el-icon-s-order" v-if="1==2"
|
||||
<el-dropdown-item command="handleCommittee" icon="el-icon-s-order" v-if="1==1"
|
||||
v-hasPermi="['project:projectCommittee:list']">工委会管理</el-dropdown-item>
|
||||
<el-dropdown-item v-if="1 == 2" command="handleDesign" icon="el-icon-orange"
|
||||
v-hasPermi="['project:projectDesign:list']">设计管理</el-dropdown-item>
|
||||
|
|
|
@ -80,6 +80,16 @@ public class SurProjectWorkingCommitteeController extends BaseController
|
|||
return toAjax(surProjectWorkingCommitteeService.insertSurProjectWorkingCommittee(surProjectWorkingCommittee));
|
||||
}
|
||||
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('project:projectCommittee:add')")
|
||||
@Log(title = "工委会管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/addList")
|
||||
public AjaxResult addList(@RequestBody List<SurProjectWorkingCommittee> list)
|
||||
{
|
||||
return toAjax(surProjectWorkingCommitteeService.insertSurProjectWorkingCommitteeList(list));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改工委会管理
|
||||
*/
|
||||
|
|
|
@ -15,6 +15,34 @@ public class SurProjectWorkingCommittee extends BaseEntity
|
|||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String committeeName;
|
||||
private String projectName;
|
||||
private String typeName;
|
||||
|
||||
public String getCommitteeName() {
|
||||
return committeeName;
|
||||
}
|
||||
|
||||
public void setCommitteeName(String committeeName) {
|
||||
this.committeeName = committeeName;
|
||||
}
|
||||
|
||||
public String getProjectName() {
|
||||
return projectName;
|
||||
}
|
||||
|
||||
public void setProjectName(String projectName) {
|
||||
this.projectName = projectName;
|
||||
}
|
||||
|
||||
public String getTypeName() {
|
||||
return typeName;
|
||||
}
|
||||
|
||||
public void setTypeName(String typeName) {
|
||||
this.typeName = typeName;
|
||||
}
|
||||
|
||||
/** */
|
||||
private Long id;
|
||||
|
||||
|
@ -36,7 +64,7 @@ public class SurProjectWorkingCommittee extends BaseEntity
|
|||
|
||||
/** 金额(万元) */
|
||||
@Excel(name = "金额(万元)")
|
||||
private Long money;
|
||||
private Double money;
|
||||
|
||||
public void setId(Long id)
|
||||
{
|
||||
|
@ -83,12 +111,12 @@ public class SurProjectWorkingCommittee extends BaseEntity
|
|||
{
|
||||
return costName;
|
||||
}
|
||||
public void setMoney(Long money)
|
||||
public void setMoney(Double money)
|
||||
{
|
||||
this.money = money;
|
||||
}
|
||||
|
||||
public Long getMoney()
|
||||
public Double getMoney()
|
||||
{
|
||||
return money;
|
||||
}
|
||||
|
|
|
@ -58,4 +58,11 @@ public interface ISurProjectWorkingCommitteeService
|
|||
* @return 结果
|
||||
*/
|
||||
public int deleteSurProjectWorkingCommitteeById(Long id);
|
||||
|
||||
/**
|
||||
* 批量处理
|
||||
* @param list
|
||||
* @return
|
||||
*/
|
||||
public int insertSurProjectWorkingCommitteeList(List<SurProjectWorkingCommittee> list);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package com.yanzhu.jh.project.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@ -95,4 +97,34 @@ public class SurProjectWorkingCommitteeServiceImpl implements ISurProjectWorking
|
|||
{
|
||||
return surProjectWorkingCommitteeMapper.deleteSurProjectWorkingCommitteeById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量处理
|
||||
* @param list
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int insertSurProjectWorkingCommitteeList(List<SurProjectWorkingCommittee> list) {
|
||||
//有id 无costName和money的删除
|
||||
//无id 有costName和money的增加
|
||||
//有id 有costName和money的修改
|
||||
int cnt=0;
|
||||
for(SurProjectWorkingCommittee it:list){
|
||||
if(it.getId()!=null && it.getId()>0){
|
||||
if(StrUtil.isEmpty(it.getCostName()) && (it.getMoney()==null || it.getMoney()==0)){
|
||||
deleteSurProjectWorkingCommitteeById(it.getId());
|
||||
cnt++;
|
||||
}else{
|
||||
updateSurProjectWorkingCommittee(it);
|
||||
cnt++;
|
||||
}
|
||||
}else{
|
||||
if(StrUtil.isNotEmpty(it.getCostName()) && it.getMoney()!=null && it.getMoney()>0){
|
||||
insertSurProjectWorkingCommittee(it);
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return cnt;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,21 +16,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="committeeName" column="committeeName" />
|
||||
<result property="projectName" column="projectName" />
|
||||
<result property="typeName" column="typeName" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectSurProjectWorkingCommitteeVo">
|
||||
select id, committeeId, projectId, workingType, costName, money, remark, create_by, create_time, update_by, update_time from sur_project_working_committee
|
||||
select id, committeeId, projectId, workingType, costName, money, remark, create_by, create_time, update_by, update_time
|
||||
from sur_project_working_committee
|
||||
</sql>
|
||||
|
||||
<select id="selectSurProjectWorkingCommitteeList" parameterType="SurProjectWorkingCommittee" resultMap="SurProjectWorkingCommitteeResult">
|
||||
<include refid="selectSurProjectWorkingCommitteeVo"/>
|
||||
select * from (
|
||||
select a.*,b.name as committeeName,c.projectName,d.dict_label as typeName,b.ord,b.create_time ctime
|
||||
from sur_project_working_committee a, base_working_committee b,sur_project c,sys_dict_data d
|
||||
where a.committeeId=b.id and a.projectId=c.id and a.workingType=d.dict_value and d.dict_type='project_working_type'
|
||||
) sur_project_working_committee
|
||||
<where>
|
||||
<if test="committeeId != null "> and committeeId = #{committeeId}</if>
|
||||
<if test="projectId != null "> and projectId = #{projectId}</if>
|
||||
<if test="workingType != null "> and workingType = #{workingType}</if>
|
||||
<if test="committeeName != null and committeeName!=''"> and committeeName like concat('%',#{committeeName,jdbcType=VARCHAR},'%')</if>
|
||||
<if test="projectName != null and projectName !=''"> and projectName like concat('%',#{projectName,jdbcType=VARCHAR},'%')</if>
|
||||
<if test="costName != null and costName != ''"> and costName like concat('%', #{costName}, '%')</if>
|
||||
<if test="money != null "> and money = #{money}</if>
|
||||
</where>
|
||||
ORDER BY ORD DESC,ctime DESC
|
||||
</select>
|
||||
|
||||
<select id="selectSurProjectWorkingCommitteeById" parameterType="Long" resultMap="SurProjectWorkingCommitteeResult">
|
||||
|
|
Loading…
Reference in New Issue