Conflicts:
	jeecgboot-vue3/.env.production
master
喻忠伟 2 weeks ago
commit c5ca2ac63d
  1. 1
      jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
  2. 43
      jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/expert/controller/ExpertController.java
  3. 9
      jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/expert/entity/ExpDepVos.java
  4. 9
      jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/expproject/controller/ExpprojectController.java
  5. 9
      jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDepartController.java
  6. 25
      jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java
  7. 3
      jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java
  8. 2
      jeecgboot-vue3/.env.production
  9. 6
      jeecgboot-vue3/src/api/sys/user.ts
  10. 4
      jeecgboot-vue3/src/views/declarantUnit/declarantUnitList.vue
  11. 4
      jeecgboot-vue3/src/views/declarantUnit/depart.user.data.ts
  12. 6
      jeecgboot-vue3/src/views/demo/main-home/components/NewsList/index.vue
  13. 15
      jeecgboot-vue3/src/views/demo/main-home/components/articleManagement/index.vue
  14. 20
      jeecgboot-vue3/src/views/demo/main-home/components/columnManagement/index.vue
  15. 21
      jeecgboot-vue3/src/views/demo/main-home/components/homePage/index.vue
  16. 4
      jeecgboot-vue3/src/views/demo/main-home/components/instrumentInfo/index.vue
  17. 10
      jeecgboot-vue3/src/views/demo/main-home/components/newsInfo/index.vue
  18. 2
      jeecgboot-vue3/src/views/demo/main-home/components/projectDeclaration/index.vue
  19. 5
      jeecgboot-vue3/src/views/expert/selfback/Expert.data.ts
  20. 6
      jeecgboot-vue3/src/views/expproject/admin/ExpprojectList.vue
  21. 6
      jeecgboot-vue3/src/views/projectApplication/project/ProjectList.vue
  22. 13
      jeecgboot-vue3/src/views/system/depart/components/DepartLeftTree.vue
  23. 2
      jeecgboot-vue3/src/views/system/loginmini/MiniRegister4shenbaoren.vue
  24. 43
      jeecgboot-vue3/src/views/system/loginmini/MiniRegisterexp.vue

@ -84,6 +84,7 @@ public class ShiroConfig {
} }
// 配置不会被拦截的链接 顺序判断 // 配置不会被拦截的链接 顺序判断
filterChainDefinitionMap.put("/expert/expert/getdepdata", "anon"); //注册的时候查询部门
filterChainDefinitionMap.put("/instrument/instrument/listcms", "anon"); //cms仪器资源接口 filterChainDefinitionMap.put("/instrument/instrument/listcms", "anon"); //cms仪器资源接口
filterChainDefinitionMap.put("/instrument/instrument/queryByIdCms", "anon"); //cms仪器资源接口 filterChainDefinitionMap.put("/instrument/instrument/queryByIdCms", "anon"); //cms仪器资源接口
filterChainDefinitionMap.put("/disciplinefieid/disciplineFieid/listcms", "anon"); //cms学科领域接口 filterChainDefinitionMap.put("/disciplinefieid/disciplineFieid/listcms", "anon"); //cms学科领域接口

@ -2,9 +2,6 @@ package org.jeecg.modules.demo.expert.controller;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -13,13 +10,13 @@ import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.query.QueryRuleEnum;
import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.PasswordUtil; import org.jeecg.common.util.PasswordUtil;
import org.jeecg.common.util.oConvertUtils; import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.demo.disciplinefieid.entity.DisciplineFieid; import org.jeecg.modules.demo.disciplinefieid.entity.DisciplineFieid;
import org.jeecg.modules.demo.disciplinefieid.service.IDisciplineFieidService; import org.jeecg.modules.demo.disciplinefieid.service.IDisciplineFieidService;
import org.jeecg.modules.demo.expert.entity.ExpCmsVo; import org.jeecg.modules.demo.expert.entity.ExpCmsVo;
import org.jeecg.modules.demo.expert.entity.ExpDepVos;
import org.jeecg.modules.demo.expert.entity.ExpdefVo; import org.jeecg.modules.demo.expert.entity.ExpdefVo;
import org.jeecg.modules.demo.expert.entity.Expert; import org.jeecg.modules.demo.expert.entity.Expert;
import org.jeecg.modules.demo.expert.service.IExpertService; import org.jeecg.modules.demo.expert.service.IExpertService;
@ -38,24 +35,15 @@ import org.jeecg.modules.system.entity.SysDepart;
import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysDepartService; import org.jeecg.modules.system.service.ISysDepartService;
import org.jeecg.modules.system.service.ISysUserService; import org.jeecg.modules.system.service.ISysUserService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/** /**
* @Description: 专家管理 * @Description: 专家管理
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2024-09-29 * @Date: 2024-09-29
@ -632,7 +620,7 @@ public class ExpertController extends JeecgController<Expert, IExpertService> {
if (expert.getCompopen().equals("1")) { if (expert.getCompopen().equals("1")) {
//修改提交审核状态 //修改提交审核状态
expertService.handlebackbackfirm(id); expertService.handlebackbackfirm(id);
str ="驳回审核!请到编辑页面确定问题数据并填写驳回原因"; str ="驳回审核!";
} else if (expert.getCompopen().equals("3") || expert.getCompopen().equals("2") ) { } else if (expert.getCompopen().equals("3") || expert.getCompopen().equals("2") ) {
str ="已驳回或者是已通过审核"; str ="已驳回或者是已通过审核";
} }
@ -928,14 +916,23 @@ public class ExpertController extends JeecgController<Expert, IExpertService> {
expertService.updateById(expert); expertService.updateById(expert);
return Result.OK("驳回成功,已责令专家重新编辑!"); return Result.OK("驳回成功,已责令专家重新编辑!");
} }
@AutoLog(value = "专家管理-公司驳回") @AutoLog(value = "查找法人部门")
@ApiOperation(value="专家管理-公司驳回", notes="专家管理-公司驳回") @ApiOperation(value="查找法人部门", notes="查找法人部门")
@RequestMapping(value = "/saveOrUpdatefimebh", method = {RequestMethod.PUT,RequestMethod.POST}) @GetMapping(value = "/getdepdata")
public Result<String> saveOrUpdatefimebh(@RequestBody Expert expert) { public Result< List<ExpDepVos>> getdepdata() {
expert.setCompopen("3"); List<SysDepart> departs = sysDepartService.list();
List<SysDepart> departstemp = departs.stream()
expertService.updateById(expert); .filter(depart -> depart.getDepartNameAbbr() != null && !depart.getDepartNameAbbr().isEmpty())
return Result.OK("编辑成功!"); .collect(Collectors.toList());
List<ExpDepVos> expDepVos =new ArrayList<>();
for (SysDepart depart : departstemp) {
ExpDepVos expDepVo =new ExpDepVos();
expDepVo.setDepid(depart.getId());
expDepVo.setDepname(depart.getDepartName());
expDepVos.add(expDepVo);
}
return Result.OK(expDepVos);
} }
} }

@ -0,0 +1,9 @@
package org.jeecg.modules.demo.expert.entity;
import lombok.Data;
@Data
public class ExpDepVos {
private String depid;
private String depname;
}

@ -172,7 +172,14 @@ public class ExpprojectController {
if(expprojectEntity==null) { if(expprojectEntity==null) {
return Result.error("未找到对应数据"); return Result.error("未找到对应数据");
} }
if (expproject.getNeedexp()>=expprojectPage.getExpandproList().size()) { int a=0;
if ( expprojectPage.getExpandproList() != null && !expprojectPage.getExpandproList().isEmpty()) {
a=expprojectPage.getExpandproList().size();
}else {
a=0;
}
if (expproject.getNeedexp()>=a) {
expprojectService.updateMain(expproject, expprojectPage.getExpandproList()); expprojectService.updateMain(expproject, expprojectPage.getExpandproList());
return Result.OK("编辑成功!"); return Result.OK("编辑成功!");
}else { }else {

@ -151,7 +151,7 @@ public class SysDepartController {
/** /**
* @description: 根据当前登录角色查询 下级部门数据 * @description: 根据当前登录角色查询 下级部门数据
* @param: [parentId, ids, primaryKey] * @param: [parentId, ids, primaryKey]
* @return: org.jeecg.common.api.vo.Result<java.util.List<org.jeecg.modules.system.model.SysDepartTreeModel>> * @return: org.jeecg.common.api.vo.Result<java.util.List < org.jeecg.modules.system.model.SysDepartTreeModel>>
* @author: z.h.c * @author: z.h.c
* @date: 24/11/9 16:07 * @date: 24/11/9 16:07
*/ */
@ -174,7 +174,7 @@ public class SysDepartController {
/** /**
* @description: 法人注册时只显示市和县区科技局不显示下属单位 * @description: 法人注册时只显示市和县区科技局不显示下属单位
* @param: [parentId, ids, primaryKey] * @param: [parentId, ids, primaryKey]
* @return: org.jeecg.common.api.vo.Result<java.util.List<org.jeecg.modules.system.model.SysDepartTreeModel>> * @return: org.jeecg.common.api.vo.Result<java.util.List < org.jeecg.modules.system.model.SysDepartTreeModel>>
* @author: z.h.c * @author: z.h.c
* @date: 24/11/9 16:07 * @date: 24/11/9 16:07
*/ */
@ -244,8 +244,11 @@ public class SysDepartController {
//单位法人角色时,只查询自己部门 //单位法人角色时,只查询自己部门
if ("faren_admin".equals(user.getRoleCode())) { if ("faren_admin".equals(user.getRoleCode())) {
queryWrapper.eq("id", user.getOrgId()); queryWrapper.eq("id", user.getOrgId());
} else { // 查询下级部门 } else if ("quxian_admin".equals(user.getRoleCode())) {
queryWrapper.eq("parent_id", user.getOrgId()); queryWrapper.eq("parent_id", user.getOrgId());
} else if ("kejiju_admin".equals(user.getRoleCode())) {// 查询所有法人级部门
queryWrapper.ne("depart_name_abbr","null");
queryWrapper.ne("depart_name_abbr","");
} }
return sysDepartService.queryPageList(req, queryWrapper, pageSize, pageNo); return sysDepartService.queryPageList(req, queryWrapper, pageSize, pageNo);

@ -8,7 +8,6 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -166,14 +165,14 @@ public class SysUserController {
/** /**
* @description: 根据用户角色查询下属用户 * @description: 根据用户角色查询下属用户
* @param: [user, pageNo, pageSize, req] * @param: [user, pageNo, pageSize, req]
* @return: org.jeecg.common.api.vo.Result<com.baomidou.mybatisplus.core.metadata.IPage<org.jeecg.modules.system.entity.SysUser>> * @return: org.jeecg.common.api.vo.Result<com.baomidou.mybatisplus.core.metadata.IPage < org.jeecg.modules.system.entity.SysUser>>
* @author: z.h.c * @author: z.h.c
* @date: 24/11/8 15:19 * @date: 24/11/8 15:19
*/ */
// @RequiresPermissions("system:user:listAll") // @RequiresPermissions("system:user:listAll")
@RequestMapping(value = "/listByRollCode", method = RequestMethod.GET) @RequestMapping(value = "/listByRollCode", method = RequestMethod.GET)
public Result<IPage<SysUser>> listByRollCode(SysUser user, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, public Result<IPage<SysUser>> listByRollCode(SysUser user, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap()); QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap());
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@ -192,21 +191,17 @@ public class SysUserController {
*/ */
@RequestMapping(value = "/getDeclarantList", method = RequestMethod.GET) @RequestMapping(value = "/getDeclarantList", method = RequestMethod.GET)
public Result<IPage<SysUser>> getDeclarantList(SysUser user, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, public Result<IPage<SysUser>> getDeclarantList(SysUser user, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
user.setUserType("shenbaoren");
String roleCode = loginUser.getRoleCode(); String roleCode = loginUser.getRoleCode();
List<String> userIds = new LinkedList<>(); // List<String> userIds = new LinkedList<>();
//申报人是只查询自己 //申报人是只查询自己
if (StringUtils.equals(roleCode, "shenbaoren_role")) {
userIds.add(loginUser.getId());
} else if (StringUtils.equals(roleCode, "faren_admin")) {
List<SysUserDepart> departList = sysUserDepartService.list(new LambdaQueryWrapper<SysUserDepart>().eq(SysUserDepart::getDepId, loginUser.getOrgId()));
userIds = Optional.ofNullable(departList).orElse(new LinkedList<>()).stream().map(u -> u.getUserId()).collect(Collectors.toList());
}
user.setUserType("shenbaoren");
QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap()); QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap());
if (ObjectUtil.isNotEmpty(userIds)) { if (StringUtils.equals(roleCode, "shenbaoren_role")) {
queryWrapper.in("id", userIds); queryWrapper.eq("org_code", loginUser.getOrgCode());
} else {
queryWrapper.likeRight("org_code", loginUser.getOrgCode());
} }
return sysUserService.queryPageList(req, queryWrapper, pageSize, pageNo); return sysUserService.queryPageList(req, queryWrapper, pageSize, pageNo);
} }
@ -1967,7 +1962,7 @@ public class SysUserController {
SysDepart depart = sysDepartService.getById(departmentid); SysDepart depart = sysDepartService.getById(departmentid);
//所先部门状态为0时,说明该部门注册后未通过审核,申报人此时不能选择该部门注册 //所先部门状态为0时,说明该部门注册后未通过审核,申报人此时不能选择该部门注册
if(StringUtils.equals(depart.getStatus(),"0")){ if (StringUtils.equals(depart.getStatus(), "0")) {
throw new JeecgBootException("该单位未通过审核,暂时不能注册为该单位申报人"); throw new JeecgBootException("该单位未通过审核,暂时不能注册为该单位申报人");
} }

@ -211,7 +211,8 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
if (oConvertUtils.isEmpty(sysDepart.getParentId())) { if (oConvertUtils.isEmpty(sysDepart.getParentId())) {
sysDepart.setOrgCategory("1"); sysDepart.setOrgCategory("1");
} else { } else {
sysDepart.setOrgCategory("2"); //sysDepart.setOrgCategory("2");原来设置为2,暂时设置3
sysDepart.setOrgCategory("3");
} }
} }
this.save(sysDepart); this.save(sysDepart);

@ -14,6 +14,8 @@ VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false
#后台接口父地址(必填) #后台接口父地址(必填)
VITE_GLOB_API_URL=/kejiju VITE_GLOB_API_URL=/kejiju
VITE_GLOB_API_URL=/kjj
VITE_GLOB_API_URL_CXQ=http://localhost:18088/jeecg-boot
#后台接口全路径地址(必填) #后台接口全路径地址(必填)
VITE_GLOB_DOMAIN_URL=http://182.92.169.222:18090/jeecg-boot VITE_GLOB_DOMAIN_URL=http://182.92.169.222:18090/jeecg-boot

@ -49,6 +49,7 @@ enum Api {
getLoginQrcode = '/sys/getLoginQrcode', getLoginQrcode = '/sys/getLoginQrcode',
// //
getQrcodeToken = '/sys/getQrcodeToken', getQrcodeToken = '/sys/getQrcodeToken',
getdepdataapi= '/expert/expert/getdepdata',
} }
/** /**
@ -239,3 +240,8 @@ export async function validateCasLogin(params) {
let url = Api.validateCasLogin; let url = Api.validateCasLogin;
return defHttp.get({ url: url, params }); return defHttp.get({ url: url, params });
} }
export async function getdepdata(params) {
let url = Api.getdepdataapi;
return defHttp.get({ url: url, params });
}

@ -182,7 +182,7 @@ function getTableAction(record) {
// }, // },
{ {
label: '驳回', label: '驳回',
ifShow: userStore.getUserInfo.roleCode !='faren_admin' && record.status == 1, ifShow: userStore.getUserInfo.roleCode =='quxian_admin' && record.status == 1,
popConfirm: { popConfirm: {
title: '确定驳回吗?', title: '确定驳回吗?',
confirm: handleFrozen.bind(null, record, 0), confirm: handleFrozen.bind(null, record, 0),
@ -190,7 +190,7 @@ function getTableAction(record) {
}, },
{ {
label: '通过', label: '通过',
ifShow: userStore.getUserInfo.roleCode !='faren_admin' && record.status == 0, ifShow: userStore.getUserInfo.roleCode =='quxian_admin' && record.status == 0,
popConfirm: { popConfirm: {
title: '确定通过吗?', title: '确定通过吗?',
confirm: handleFrozen.bind(null, record, 1), confirm: handleFrozen.bind(null, record, 1),

@ -15,11 +15,11 @@ export const columns: BasicColumn[] = [
align:"center", align:"center",
dataIndex: 'departNameAbbr', dataIndex: 'departNameAbbr',
}, },
{ /* {
title: '编码', title: '编码',
align:"center", align:"center",
dataIndex: 'orgCode' dataIndex: 'orgCode'
}, },*/
{ {
title: '手机号', title: '手机号',
align:"center", align:"center",

@ -20,7 +20,7 @@
<div class="column-list"> <div class="column-list">
<div class="title">栏目列表</div> <div class="title">栏目列表</div>
<div class="list"> <div class="list">
<div class="item" @click="getindexallarticleEvent">全部</div> <div :class="columnId === '0' ? 'item active' : 'item'" @click="getindexallarticleEvent">全部</div>
<div :class="columnId === i.id ? 'item active' : 'item'" v-for="i in newColumnList" :key="i.id" @click="getMyNewsList(i)">{{ i.name }}</div> <div :class="columnId === i.id ? 'item active' : 'item'" v-for="i in newColumnList" :key="i.id" @click="getMyNewsList(i)">{{ i.name }}</div>
<!-- <div class="item">项目申报</div> <!-- <div class="item">项目申报</div>
<div class="item">新闻列表</div> --> <div class="item">新闻列表</div> -->
@ -84,6 +84,9 @@
} }
}; };
const getindexallarticleEvent = async () => { const getindexallarticleEvent = async () => {
columnId.value = '0';
console.log( columnId.value);
const res = await getindexallarticle(); const res = await getindexallarticle();
console.log(res); console.log(res);
newList.value = res.records; newList.value = res.records;
@ -97,6 +100,7 @@
path: '/main-home/newsInfo', path: '/main-home/newsInfo',
query: { query: {
id: item.id, id: item.id,
type:1
}, },
}); });
}; };

@ -20,8 +20,8 @@
<div class="column-list"> <div class="column-list">
<div class="title">栏目列表</div> <div class="title">栏目列表</div>
<div class="list"> <div class="list">
<div class="item" @click="getindexallarticleEvent">全部</div> <div :class="columnId === '0' ? 'item active' : 'item'" @click="getindexallarticleEvent">全部</div>
<div class="item" v-for="i in newColumnList" :key="i.id" @click="getMyNewsList(i)">{{ i.name }}</div> <div :class="columnId === i.id ? 'item active' : 'item'" v-for="i in newColumnList" :key="i.id" @click="getMyNewsList(i)">{{ i.name }}</div>
<!-- <div class="item">项目申报</div> <!-- <div class="item">项目申报</div>
<div class="item">新闻列表</div> --> <div class="item">新闻列表</div> -->
</div> </div>
@ -43,6 +43,8 @@
pageSize: 10, pageSize: 10,
pageNo: 1, pageNo: 1,
}); });
const columnId = ref('');
const newColumnList = ref([]); const newColumnList = ref([]);
const getindexcolumnEvent = async () => { const getindexcolumnEvent = async () => {
const res = await getindexcolumn(); const res = await getindexcolumn();
@ -63,7 +65,6 @@
newList.value = res.records; newList.value = res.records;
total.value = res.total; total.value = res.total;
}; };
const columnId = ref('');
const onChange = (page) => { const onChange = (page) => {
console.log(page); console.log(page);
page.pageNo = page; page.pageNo = page;
@ -74,6 +75,7 @@
} }
}; };
const getindexallarticleEvent = async () => { const getindexallarticleEvent = async () => {
columnId.value = '0';
const res = await getindexgzdt(); const res = await getindexgzdt();
console.log(res); console.log(res);
newList.value = res.records; newList.value = res.records;
@ -88,6 +90,7 @@
path: '/main-home/newsInfo', path: '/main-home/newsInfo',
query: { query: {
id: item.id, id: item.id,
type:3
}, },
}) })
} }
@ -192,9 +195,9 @@
border-bottom: 1px solid #d9d9d9; border-bottom: 1px solid #d9d9d9;
cursor: pointer; cursor: pointer;
} }
.item:hover { .active{
color: #002e97; color: #002e97 !important;
} }
} }
} }
} }

@ -20,8 +20,9 @@
<div class="column-list"> <div class="column-list">
<div class="title">栏目列表</div> <div class="title">栏目列表</div>
<div class="list"> <div class="list">
<div class="item" @click="getindexallarticleEvent">全部</div>
<div class="item" v-for="i in newColumnList" :key="i.id" @click="getMyNewsList(i)">{{ i.name }}</div> <div :class="columnId === '0' ? 'item active' : 'item'" @click="getindexallarticleEvent">全部</div>
<div :class="columnId === i.id ? 'item active' : 'item'" v-for="i in newColumnList" :key="i.id" @click="getMyNewsList(i)">{{ i.name }}</div>
<!-- <div class="item">项目申报</div> <!-- <div class="item">项目申报</div>
<div class="item">新闻列表</div> --> <div class="item">新闻列表</div> -->
</div> </div>
@ -43,6 +44,8 @@
pageSize: 10, pageSize: 10,
pageNo: 1, pageNo: 1,
}); });
const columnId = ref('');
const newColumnList = ref([]); const newColumnList = ref([]);
const getindexcolumnEvent = async () => { const getindexcolumnEvent = async () => {
const res = await getindexcolumn(); const res = await getindexcolumn();
@ -63,7 +66,6 @@
newList.value = res.records; newList.value = res.records;
total.value = res.total; total.value = res.total;
}; };
const columnId = ref('');
const onChange = (page) => { const onChange = (page) => {
console.log(page); console.log(page);
page.pageNo = page; page.pageNo = page;
@ -74,6 +76,7 @@
} }
}; };
const getindexallarticleEvent = async () => { const getindexallarticleEvent = async () => {
columnId.value = '0'
const res = await getindexnotice(); const res = await getindexnotice();
console.log(res); console.log(res);
newList.value = res.records; newList.value = res.records;
@ -88,6 +91,7 @@
path: '/main-home/newsInfo', path: '/main-home/newsInfo',
query: { query: {
id: item.id, id: item.id,
type:2
}, },
}) })
} }
@ -112,6 +116,7 @@
border-bottom: 2px solid #ccc; border-bottom: 2px solid #ccc;
padding-bottom: 45px; padding-bottom: 45px;
margin-top: 40px; margin-top: 40px;
.left { .left {
width: 100px; width: 100px;
height: 100px; height: 100px;
@ -192,9 +197,9 @@
border-bottom: 1px solid #d9d9d9; border-bottom: 1px solid #d9d9d9;
cursor: pointer; cursor: pointer;
} }
.item:hover { // .item:hover {
color: #002e97; // color: #002e97;
} // }
} }
} }
} }
@ -209,4 +214,7 @@
display: flex; display: flex;
justify-content: center; justify-content: center;
} }
.active{
color: #002e97 !important;
}
</style> </style>

@ -41,7 +41,7 @@
</div> </div>
<div class="inner"> <div class="inner">
<ul> <ul>
<li v-for="item in noticeList" :key="item.id" @click="goToNewInfo(item)">{{ item.title }}</li> <li v-for="item in noticeList" :key="item.id" @click="goToNewInfo(item,2)">{{ item.title }}</li>
</ul> </ul>
</div> </div>
</div> </div>
@ -57,7 +57,7 @@
</div> </div>
<div class="inner"> <div class="inner">
<ul> <ul>
<li v-for="item in newList" :key="item.id" @click="goToNewInfo(item)">{{ item.title }}</li> <li v-for="item in newList" :key="item.id" @click="goToNewInfo(item,1)">{{ item.title }}</li>
</ul> </ul>
</div> </div>
</div> </div>
@ -68,7 +68,7 @@
</div> </div>
<div class="inner"> <div class="inner">
<ul> <ul>
<li v-for="item in gzdtList" :key="item.id" @click="goToNewInfo(item)">{{ item.title }}</li> <li v-for="item in gzdtList" :key="item.id" @click="goToNewInfo(item,3)">{{ item.title }}</li>
</ul> </ul>
</div> </div>
</div> </div>
@ -150,11 +150,12 @@
const goToNewList = () => { const goToNewList = () => {
router.push('/main-home/newsList'); router.push('/main-home/newsList');
}; };
const goToNewInfo = (item) => { const goToNewInfo = (item,type=1) => {
router.push({ router.push({
path: '/main-home/newsInfo', path: '/main-home/newsInfo',
query: { query: {
id: item.id, id: item.id,
type:type
}, },
}); });
}; };
@ -525,13 +526,13 @@
color: #fff; color: #fff;
} }
:deep(:where(.css-dev-only-do-not-override-1hajlzy).ant-carousel .slick-dots) { :deep(:where(.css-dev-only-do-not-override-1hajlzy).ant-carousel .slick-dots) {
justify-content: end; justify-content: end !important;
bottom: 4px; bottom: 4px !important;
right: 5px; right: 5px !important;
} }
:deep(:where(.css-dev-only-do-not-override-1hajlzy).ant-carousel .slick-dots li button) { :deep(:where(.css-dev-only-do-not-override-1hajlzy).ant-carousel .slick-dots li button) {
width: 8px; width: 8px !important;
height: 8px; height: 8px !important;
border-radius: 50%; border-radius: 50% !important;
} }
</style> </style>

@ -1,13 +1,13 @@
<template> <template>
<div class="container"> <div class="container">
<div class="small"> <div class="small">
<ul> <!-- <ul>
<li>首页</li> <li>首页</li>
<li>|</li> <li>|</li>
<li>仪器共享</li> <li>仪器共享</li>
<li>|</li> <li>|</li>
<li>科研校园</li> <li>科研校园</li>
</ul> </ul> -->
</div> </div>
<div class="header"> <div class="header">
<div class="headerLeft"> <div class="headerLeft">

@ -28,6 +28,8 @@
import {getindexarticleitem} from '@/api/mainHome' import {getindexarticleitem} from '@/api/mainHome'
import { useRoute,useRouter } from 'vue-router'; import { useRoute,useRouter } from 'vue-router';
import { ref } from 'vue'; import { ref } from 'vue';
import { useSettingStore } from '/@/store/modules/setting';
const settingStore = useSettingStore();
const route = useRoute() const route = useRoute()
const router = useRouter() const router = useRouter()
const id = route.query.id const id = route.query.id
@ -43,6 +45,14 @@ const getInfo = async () => {
info.value = res[0] info.value = res[0]
} }
getInfo() getInfo()
if(Object.keys(route.query).length > 1 && route.query.type == 2) {
console.log('设置');
settingStore.serIndex(5)
}else if(Object.keys(route.query).length > 1 && route.query.type == 3) {
settingStore.serIndex(6)
}
</script> </script>
<style scoped lang="less"> <style scoped lang="less">

@ -5,7 +5,7 @@
<div class="resultShow"> <div class="resultShow">
<div class="top"> <div class="top">
<div class="a">项目咨询</div> <div class="a">项目咨询</div>
<div class="aa">更多</div> <div style="cursor: pointer;"class="aa" @click="router.push('/main-home/newsList')">更多</div>
</div> </div>
<div class="buttom"> <div class="buttom">
<ul> <ul>

@ -66,6 +66,11 @@ export const columns: BasicColumn[] = [
return render.renderSwitch(text, [{text:'正常',value:'N'},{text:'异常',value:'Y'}]); return render.renderSwitch(text, [{text:'正常',value:'N'},{text:'异常',value:'Y'}]);
}, },
}, },
{
title: '异常原因',
align: "center",
dataIndex: 'errinfo_dictText'
},
]; ];
// //

@ -100,7 +100,7 @@
canResize:false, canResize:false,
useSearchForm: false, useSearchForm: false,
actionColumn: { actionColumn: {
width: 120, width: 320,
fixed:'right' fixed:'right'
}, },
beforeFetch: async (params) => { beforeFetch: async (params) => {
@ -294,12 +294,12 @@
} }
:deep(.ant-table-wrapper .ant-table-tbody >tr >td){ /* :deep(.ant-table-wrapper .ant-table-tbody >tr >td){
height: 140px; height: 140px;
} }
:deep(.jeecg-basic-table-action){ :deep(.jeecg-basic-table-action){
height: 140px; height: 140px;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: center; justify-content: center;
} }*/
</style> </style>

@ -5,7 +5,7 @@
<!--插槽:table标题--> <!--插槽:table标题-->
<template #tableTitle> <template #tableTitle>
<!-- <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>--> <!-- <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>-->
<!-- <a-button type="primary" @click="go_xinjianshenbao" preIcon="ant-design:plus-outlined"> 新建报书</a-button>--> <!-- <a-button type="primary" @click="go_xinjianshenbao" preIcon="ant-design:plus-outlined"> 新建报书</a-button>-->
<a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button> <a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
<!-- <j-upload-button type="primary" v-auth="'project:project:importExcel'" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>--> <!-- <j-upload-button type="primary" v-auth="'project:project:importExcel'" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>-->
<a-dropdown> <a-dropdown>
@ -24,7 +24,7 @@
</a-menu-item>--> </a-menu-item>-->
</a-menu> </a-menu>
</template> </template>
<a-button type="primary">新建 <a-button type="primary">新建
<Icon icon="mdi:chevron-down"></Icon> <Icon icon="mdi:chevron-down"></Icon>
</a-button> </a-button>
</a-dropdown> </a-dropdown>
@ -91,7 +91,7 @@ const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
], ],
}, },
actionColumn: { actionColumn: {
width: 320, width: 380,
fixed:'right' fixed:'right'
}, },
beforeFetch: (params) => { beforeFetch: (params) => {

@ -92,11 +92,10 @@
import { useModal } from '/@/components/Modal'; import { useModal } from '/@/components/Modal';
import { useMessage } from '/@/hooks/web/useMessage'; import { useMessage } from '/@/hooks/web/useMessage';
import { useMethods } from '/@/hooks/system/useMethods'; import { useMethods } from '/@/hooks/system/useMethods';
import { Api, deleteBatchDepart, queryDepartTreeSync4ZhuGuanBuMen } from '../depart.api'; import { Api, deleteBatchDepart, queryDepartTreeSync } from '../depart.api';
import { searchByKeywords } from '/@/views/system/departUser/depart.user.api'; import { searchByKeywords } from '/@/views/system/departUser/depart.user.api';
import DepartFormModal from '/@/views/system/depart/components/DepartFormModal.vue'; import DepartFormModal from '/@/views/system/depart/components/DepartFormModal.vue';
import { Popconfirm } from 'ant-design-vue'; import { Popconfirm } from 'ant-design-vue';
import {useUserStore} from "@/store/modules/user";
const prefixCls = inject('prefixCls'); const prefixCls = inject('prefixCls');
const emit = defineEmits(['select', 'rootTreeData']); const emit = defineEmits(['select', 'rootTreeData']);
@ -125,16 +124,13 @@
// modal // modal
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const userStore = useUserStore();
// //
async function loadRootTreeData() { async function loadRootTreeData() {
try { try {
loading.value = true; loading.value = true;
treeData.value = []; treeData.value = [];
const result = await queryDepartTreeSync4ZhuGuanBuMen({ const result = await queryDepartTreeSync();
parentOrgCode: userStore.getUserInfo.orgCode,
});
if (Array.isArray(result)) { if (Array.isArray(result)) {
treeData.value = result; treeData.value = result;
} }
@ -162,9 +158,8 @@
// //
async function loadChildrenTreeData(treeNode) { async function loadChildrenTreeData(treeNode) {
try { try {
const result = await queryDepartTreeSync4ZhuGuanBuMen({ const result = await queryDepartTreeSync({
// pid: treeNode.dataRef.id, pid: treeNode.dataRef.id,
parentOrgCode: treeNode.dataRef.orgCode,
}); });
if (result.length == 0) { if (result.length == 0) {
treeNode.dataRef.isLeaf = true; treeNode.dataRef.isLeaf = true;

@ -246,7 +246,7 @@
return; return;
} }
// 8 // 8
const passwordRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@#$%^&+=!])(?=.{8,})$/; const passwordRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?])[A-Za-z\d!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]{8,}$/;
if (!passwordRegex.test(formData.password)) { if (!passwordRegex.test(formData.password)) {
createMessage.warn(t('sys.login.passwordPlaceholderNotReg')); createMessage.warn(t('sys.login.passwordPlaceholderNotReg'));
return; return;

@ -66,8 +66,28 @@
<a-form-item> <a-form-item>
<div class="aui-input-line"> <div class="aui-input-line">
<JSelectDept :placeholder="t('sys.login.selectorgPlaceholder')" v-model:value="formData.ssdep" :multiple="false" />
<!-- <JSelectDept :placeholder="t('sys.login.selectorgPlaceholder')" v-model:value="formData.ssdep" :multiple="false" />-->
<j-search-select
placeholder="选择所属单位"
v-model:value="formData.ssdep"
:dictOptions="dictOptions">
</j-search-select>
{{ selectValue }}
</div> </div>
</a-form-item> </a-form-item>
<a-form-item> <a-form-item>
<div class="aui-input-line"> <div class="aui-input-line">
@ -115,7 +135,7 @@
<script lang="ts" setup name="mini-register"> <script lang="ts" setup name="mini-register">
import { ref, reactive, unref, toRaw,onMounted } from 'vue'; import { ref, reactive, unref, toRaw,onMounted } from 'vue';
import { getCaptcha, registerFaren, registerexp,getCodeInfo } from '/@/api/sys/user'; import { getCaptcha, registerFaren, registerexp,getCodeInfo,getdepdata } from '/@/api/sys/user';
import { SmsEnum } from '/@/views/sys/login/useLogin'; import { SmsEnum } from '/@/views/sys/login/useLogin';
import { useMessage } from '/@/hooks/web/useMessage'; import { useMessage } from '/@/hooks/web/useMessage';
import logoImg from '/@/assets/loginmini/icon/jeecg_logo.png'; import logoImg from '/@/assets/loginmini/icon/jeecg_logo.png';
@ -125,7 +145,12 @@
import JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue'; import JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue';
import { useI18n } from '/@/hooks/web/useI18n'; import { useI18n } from '/@/hooks/web/useI18n';
import codeImg from '/@/assets/images/checkcode.png'; import codeImg from '/@/assets/images/checkcode.png';
import {findprojectandnumber} from "@/views/dashboard/workbench/components/api";
import JSearchSelect from '/@/components/Form/src/jeecg/components/JSearchSelect.vue';
const selectValue=ref('');
const dictOptions=ref([]);
const { t } = useI18n(); const { t } = useI18n();
const { notification, createErrorModal, createMessage } = useMessage(); const { notification, createErrorModal, createMessage } = useMessage();
const emit = defineEmits(['go-back', 'success', 'register']); const emit = defineEmits(['go-back', 'success', 'register']);
@ -164,6 +189,20 @@
// //
const confirmPwdIndex = ref<string>('close'); const confirmPwdIndex = ref<string>('close');
function item03(){
getdepdata().then(res => {
console.log(res,"res")
dictOptions.value = res.map(item => {
return {text:item.depname,value:item.depid}
})
// res.forEach(item => {
// dictOptions.value.push(item);
// });
console.log(dictOptions.value,"dictOptions")
})}
item03();
/** /**
* 返回 * 返回
*/ */

Loading…
Cancel
Save