喻忠伟 1 week ago
commit 1365f582ad
  1. 2
      jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
  2. 20
      jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/innovationvoucher/controller/InnovationVoucherController.java
  3. 17
      jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDepartController.java
  4. 16
      jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/vo/QuXianDepartVo.java
  5. 17
      jeecgboot-vue3/src/api/sys/user.ts
  6. 37
      jeecgboot-vue3/src/views/declarant/declarantList.vue
  7. 5
      jeecgboot-vue3/src/views/declarantUnit/declarantUnitList.vue
  8. 2
      jeecgboot-vue3/src/views/declarantUnit/depart.user.data.ts
  9. 6
      jeecgboot-vue3/src/views/innovationvoucher/InnovationVoucherList1.vue
  10. 6
      jeecgboot-vue3/src/views/innovationvoucher/InnovationVoucherList5.vue
  11. 29
      jeecgboot-vue3/src/views/system/loginmini/MiniRegister4faren.vue

@ -86,6 +86,7 @@ public class ShiroConfig {
// 配置不会被拦截的链接 顺序判断
filterChainDefinitionMap.put("/innovationvoucher/innovationVoucher/listcms", "anon"); //创新券
filterChainDefinitionMap.put("/innovationvoucher/innovationVoucher/queryByIdCms", "anon"); //创新券
filterChainDefinitionMap.put("/innovationvoucher/innovationVoucher/listcmssy", "anon"); //创新券
filterChainDefinitionMap.put("/sys/cas/client/validateLogin", "anon"); //cas验证登录
filterChainDefinitionMap.put("/sys/randomImage/**", "anon"); //登录验证码接口排除
filterChainDefinitionMap.put("/sys/checkCaptcha", "anon"); //登录验证码接口排除
@ -181,6 +182,7 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/sys/sysDepart/queryDepartTreeSync", "anon");//申报人注册时,选择部门列表
filterChainDefinitionMap.put("/sys/sysDepart/queryDepartTreeSync4FaRen", "anon");//法人注册时,选择部门列表
filterChainDefinitionMap.put("/sys/sysDepart/getDepartList4Quxian", "anon");//法人注册时,获取区县级别部门列表

@ -100,6 +100,23 @@ public class InnovationVoucherController extends JeecgController<InnovationVouch
return Result.OK(pageList);
}
@ApiOperation(value="创新券表-分页列表查询", notes="创新券表-分页列表查询")
@GetMapping(value = "/listcmssy")
public Result<IPage<InnovationVoucher>> listcmssy(InnovationVoucher innovationVoucher,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<InnovationVoucher> queryWrapper = QueryGenerator.initQueryWrapper(innovationVoucher, req.getParameterMap());
queryWrapper.eq("state","3");
queryWrapper.eq("use_state","1");
queryWrapper.eq("sf_state","0");
queryWrapper.orderByDesc("create_time");
Page<InnovationVoucher> page = new Page<InnovationVoucher>(pageNo, pageSize);
IPage<InnovationVoucher> pageList = innovationVoucherService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 通过id查询
*
@ -564,8 +581,7 @@ public class InnovationVoucherController extends JeecgController<InnovationVouch
if(innovationVoucher.getDxshFlag().equals("1")){
innovationVoucher.setDxshSta("2");
innovationVoucher.setDxshFlag("2");
}
if(innovationVoucher.getDxshFlag().equals("2")&&innovationVoucher.getDxshSta().equals("2")){
}else if(innovationVoucher.getDxshFlag().equals("2")&&innovationVoucher.getDxshSta().equals("2")){
innovationVoucher.setDxshSta("3");
}
//instrument.setFlag("2");

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
@ -25,6 +26,7 @@ import org.jeecg.modules.system.model.SysDepartTreeModel;
import org.jeecg.modules.system.service.ISysDepartService;
import org.jeecg.modules.system.service.ISysUserDepartService;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.system.vo.QuXianDepartVo;
import org.jeecg.modules.system.vo.SysDepartExportVo;
import org.jeecg.modules.system.vo.lowapp.ExportDepartVo;
import org.jeecgframework.poi.excel.ExcelImportUtil;
@ -198,6 +200,21 @@ public class SysDepartController {
return result;
}
@ApiOperation(value = "法人注册时,获取区县级别部门", notes = "法人注册时,获取区县级别部门")
@GetMapping(value = "/getDepartList4Quxian")
public Result<List<QuXianDepartVo>> getDepartList4Quxian() {
SysDepart sysDepart = sysDepartService.getOne(new LambdaQueryWrapper<SysDepart>().eq(SysDepart::getDelFlag, "0").eq(SysDepart::getParentId, ""));
List<SysDepart> departList4Quxian = sysDepartService.list(new LambdaQueryWrapper<SysDepart>().eq(SysDepart::getParentId, sysDepart.getId()).eq(SysDepart::getDelFlag, "0"));
List<QuXianDepartVo> quXianDepartVos = new ArrayList<>();
Optional.ofNullable(departList4Quxian).orElse(new LinkedList<>()).stream().forEach(depart -> {
QuXianDepartVo vo = new QuXianDepartVo();
vo.setDepName(depart.getDepartName());
vo.setDepId(depart.getId());
quXianDepartVos.add(vo);
});
return Result.OK(quXianDepartVos);
}
/**
* 获取某个部门的所有父级部门的ID
*

@ -0,0 +1,16 @@
package org.jeecg.modules.system.vo;
import lombok.Data;
/**
* @Description: TODO
* @Author: Z.H.C
* @CreateTime: 2024-11-12 11:20
* @Version: 1.0
*/
@Data
public class QuXianDepartVo {
private String depId;
private String depName;
}

@ -31,6 +31,8 @@ enum Api {
userRegister4Shenbaoren = '/sys/user/userRegister4Shenbaoren',
//
userRegister4Faren = '/sys/user/userRegister4Faren',
//
userRegisterexp = '/expert/expert/userRegisterexp',
//
checkOnlyUser = '/sys/user/checkOnlyUser',
//SSO
@ -47,6 +49,8 @@ enum Api {
getLoginQrcode = '/sys/getLoginQrcode',
//
getQrcodeToken = '/sys/getQrcodeToken',
getdepdataapi= '/expert/expert/getdepdata',
getDepartList4Quxian = '/sys/sysDepart/getDepartList4Quxian',
}
/**
@ -127,6 +131,10 @@ export function registerFaren(params) {
return defHttp.post({url: Api.userRegister4Faren, params}, {isReturnNativeResponse: true});
}
export function registerexp(params) {
return defHttp.post({url: Api.userRegisterexp, params}, {isReturnNativeResponse: true});
}
/**
* @description: 获取短信验证码
*/
@ -233,3 +241,12 @@ export async function validateCasLogin(params) {
let url = Api.validateCasLogin;
return defHttp.get({ url: url, params });
}
export async function getdepdata(params) {
let url = Api.getdepdataapi;
return defHttp.get({ url: url, params });
}export async function departList4Quxian(params) {
return defHttp.get({ url: Api.getDepartList4Quxian, params });
}

@ -33,7 +33,7 @@
</template>
<!--操作栏-->
<template #action="{ record }">
<TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)" />
<TableAction :actions="getTableAction(record)"/>
</template>
</BasicTable>
<!--用户抽屉-->
@ -69,7 +69,9 @@
import { columns, searchFormSchema } from './user.data';
import { listNoCareTenant, deleteUser, batchDeleteUser, getImportUrl, getExportUrl, frozenBatch} from './user.api';
import {usePermission} from "/@/hooks/web/usePermission";
import {useUserStore} from "@/store/modules/user";
const userStore = useUserStore();
console.log("the current user role:",userStore.getUserInfo.roleCode);
const { createMessage, createConfirm } = useMessage();
const { isDisabledAuth } = usePermission();
//drawer
@ -84,7 +86,6 @@
const [registerQuitAgentModal, { openModal: openQuitAgentModal }] = useModal();
//model
const [registerQuitModal, { openModal: openQuitModal }] = useModal();
//
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
designScope: 'user-list',
@ -233,7 +234,7 @@
/**
* 操作栏
*/
function getTableAction(record): ActionItem[] {
/*function getTableAction(record): ActionItem[] {
return [
{
label: '编辑',
@ -241,31 +242,25 @@
// ifShow: () => hasPermission('system:user:edit'),
},
];
}
}*/
/**
* 下拉操作栏
*/
function getDropDownAction(record): ActionItem[] {
// function getDropDownAction(record): ActionItem[] {
function getTableAction(record): ActionItem[] {
return [
{
label: '详情',
onClick: handleDetail.bind(null, record),
},
{
/*{
label: '密码',
//auth: 'user:changepwd',
onClick: handleChangePassword.bind(null, record.username),
},
{
label: '删除',
popConfirm: {
title: '是否确认删除',
confirm: handleDelete.bind(null, record),
},
},
},*/
{
label: '驳回',
ifShow: record.status == 1,
ifShow: userStore.getUserInfo.roleCode =='faren_admin' && record.status == 1,
popConfirm: {
title: '确定驳回吗?',
confirm: handleFrozen.bind(null, record, 2),
@ -273,12 +268,20 @@
},
{
label: '通过',
ifShow: record.status == 2,
ifShow: userStore.getUserInfo.roleCode =='faren_admin' && record.status == 2,
popConfirm: {
title: '确定通过吗?',
confirm: handleFrozen.bind(null, record, 1),
},
},
{
label: '删除',
ifShow: userStore.getUserInfo.roleCode != 'shenbaoren_role',
popConfirm: {
title: '是否确认删除',
confirm: handleDelete.bind(null, record),
},
},
// {
// label: '',
// onClick: handleAgentSettings.bind(null, record.username),

@ -196,6 +196,11 @@
confirm: handleFrozen.bind(null, record, 1),
},
},
{
ifShow: userStore.getUserInfo.roleCode =='faren_admin',
label: '编辑',
onClick: handleEdit.bind(null, record),
},
{
label: '删除',
ifShow: userStore.getUserInfo.roleCode !='faren_admin',

@ -92,6 +92,7 @@ export const formSchema: FormSchema[] = [
componentProps:{
dictCode:"depart_status"
},
dynamicDisabled: true,
},
{
label: '名称',
@ -107,6 +108,7 @@ export const formSchema: FormSchema[] = [
label: '编码',
field: 'orgCode',
component: 'Input',
dynamicDisabled: true,
},
{
label: '手机号',

@ -220,7 +220,7 @@
*/
function getTableAction(record) {
//console.log(userStore.loginInfo.departs[0].orgCategory, 'userStore');
const oct = userStore.loginInfo.departs[0].orgCategory;
const oct = userStore.getUserInfo.roleCode;
const actions = [
{
label: '详情',
@ -228,7 +228,7 @@
}
];
if((oct==="3"&&record.state==="1")||(record.state==="2"&&oct!=="3")){
if((oct==="quxian_admin"&&record.state==="1")||(record.state==="2"&&oct!=="quxian_admin")){
actions.unshift({
label: '通过',
popConfirm: {
@ -237,7 +237,7 @@
}
});
}
if((oct==="3"&&record.state==="1")||(record.state==="2"&&oct!=="3")){
if((oct==="quxian_admin"&&record.state==="1")||(record.state==="2"&&oct!=="quxian_admin")){
actions.unshift({
label: '驳回',
popConfirm: {

@ -235,7 +235,7 @@
* 操作栏
*/
function getTableAction(record) {
const oct = userStore.loginInfo.departs[0].orgCategory;
const oct = userStore.getUserInfo.roleCode;
const actions = [
{
label: '详情',
@ -243,7 +243,7 @@
}
];
if((oct==="3"&&record.dxshSta==="1")||(record.dxshSta==="2"&&oct!=="3")){
if((oct==="quxian_admin"&&record.dxshSta==="1")||(record.dxshSta==="2"&&oct!=="quxian_admin")){
actions.unshift({
label: '通过',
popConfirm: {
@ -252,7 +252,7 @@
}
});
}
if((oct==="3"&&record.dxshSta==="1")||(record.dxshSta==="2"&&oct!=="3")){
if((oct==="quxian_admin"&&record.dxshSta==="1")||(record.dxshSta==="2"&&oct!=="quxian_admin")){
actions.unshift({
label: '驳回',
popConfirm: {

@ -39,10 +39,16 @@
<a-input class="fix-auto-fill" type="text" :placeholder="t('请输法人身份证号')" v-model:value="formData.idNo" />
</div>
</a-form-item>
<a-form-item>
<!-- <a-form-item>
<div class="aui-input-line">
<JSelectDept4FaRen :placeholder="t('sys.login.selectorgPlaceholder4Kejiju')" v-model:value="formData.department" :multiple="false" />
</div>
</a-form-item>-->
<a-form-item>
<div class="aui-input-line">
<j-search-select :placeholder="t('sys.login.selectorgPlaceholder4Kejiju')" v-model:value="formData.department" :dictOptions="dictOptions" />
{{ selectValue }}
</div>
</a-form-item>
<a-form-item>
<div class="aui-input-line">
@ -118,7 +124,7 @@
<script lang="ts" setup name="mini-register">
import { ref, reactive, unref, toRaw,onMounted } from 'vue';
import { getCaptcha, registerFaren, getCodeInfo } from '/@/api/sys/user';
import {getCaptcha, registerFaren, getCodeInfo, departList4Quxian} from '/@/api/sys/user';
import { SmsEnum } from '/@/views/sys/login/useLogin';
import { useMessage } from '/@/hooks/web/useMessage';
import logoImg from '/@/assets/loginmini/icon/jeecg_logo.png';
@ -129,7 +135,7 @@
import JSelectDept4FaRen from '/@/components/Form/src/jeecg/components/JSelectDept4FaRen.vue';
import { useI18n } from '/@/hooks/web/useI18n';
import codeImg from '/@/assets/images/checkcode.png';
import JSearchSelect from '/@/components/Form/src/jeecg/components/JSearchSelect.vue';
const { t } = useI18n();
const { notification, createErrorModal, createMessage } = useMessage();
const emit = defineEmits(['go-back', 'success', 'register']);
@ -157,6 +163,21 @@
const pwdIndex = ref<string>('close');
//
const confirmPwdIndex = ref<string>('close');
const selectValue=ref('');
const dictOptions=ref([]);
//
function getDepartList4Quxian(){
departList4Quxian().then(res => {
console.log(res,"res")
dictOptions.value = res.map(item => {
return {text:item.depName,value:item.depId}
})
console.log(dictOptions.value,"dictOptions")
})}
getDepartList4Quxian();
/**
* 返回
@ -246,7 +267,7 @@
return;
}
// 8
const passwordRegex = /^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[._~!@#$^&*])[A-Za-z0-9._~!@#$^&*]{8,20}$/;
const passwordRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?])[A-Za-z\d!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]{8,20}$/;
if (!passwordRegex.test(formData.password)) {
createMessage.warn(t('sys.login.passwordPlaceholderNotReg'));
return;

Loading…
Cancel
Save