项目书-预算书 功能添加 10.25

master
zhc077 4 weeks ago
parent a00e380d83
commit e4caa20059
  1. 17
      jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/project/controller/ProjectController.java
  2. 4
      jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/project/dto/ProjectShenBaoDto.java
  3. 4
      jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/project/entity/Project.java
  4. 23
      jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/project/service/impl/ProjectServiceImpl.java
  5. 4
      jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/userext/entity/UserExt.java
  6. 100
      jeecgboot-vue3/src/views/projectApplication/kejigongguan/yusuanshu/FengMian.api.ts
  7. 95
      jeecgboot-vue3/src/views/projectApplication/kejigongguan/yusuanshu/FengMianDemo.vue
  8. 91
      jeecgboot-vue3/src/views/projectApplication/kejigongguan/yusuanshu/index.vue
  9. 865
      jeecgboot-vue3/src/views/projectApplication/kejigongguan/yusuanshu/jeecgComponents.data.ts
  10. 2
      jeecgboot-vue3/src/views/projectApplication/project/ProjectList.vue

@ -108,6 +108,22 @@ public class ProjectController extends JeecgController<Project, IProjectService>
return Result.OK(project);
}
@ApiOperation(value = "预算书-获取预算书封面", notes = "预算书-获取预算书封面")
@GetMapping(value = "/getFengMian")
public Result<Project> getFengMian(Project param, HttpServletRequest req) {
Project project = projectService.getById(param.getId());
ProjectType projectType = iProjectTypeService.getById(project.getProjectTypeid());
project.setAnnualName(projectType.getAnnualName());
project.setProjectTypeName(projectType.getTypeName());
project.setAnnualName(projectType.getAnnualName());
project.setProjectTypeName(projectType.getTypeName());
SysDepart sysDepart = iSysDepartService.getById(project.getSysOrgCode());
project.setDepartName(sysDepart.getDepartName());
SysUser sysUser = iSysUserService.getById(project.getProjectCharger());
project.setProjectCharger(sysUser.getRealname());
return Result.OK(project);
}
@ApiOperation(value = "获取项目负责人信息", notes = "获取项目负责人信息")
@GetMapping(value = "/getUserInfo")
public Result<UserExt> getUserInfo(Project para, HttpServletRequest req) {
@ -120,6 +136,7 @@ public class ProjectController extends JeecgController<Project, IProjectService>
);
userExt.setIdNO(sysUser.getId());
userExt.setPhone(sysUser.getPhone());
userExt.setEmail(sysUser.getEmail());
return Result.OK(userExt);
}

@ -1,5 +1,6 @@
package org.jeecg.modules.demo.project.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -366,4 +367,7 @@ public class ProjectShenBaoDto implements Serializable {
@Excel(name = "用户表身份证号", width = 15)
@ApiModelProperty(value = "用户表身份证号")
private String idNO;
@ApiModelProperty(value = "用户表负责人email")
private String email;
}

@ -242,6 +242,10 @@ public class Project implements Serializable {
@TableField(exist = false)
private String annualName;
@TableField(exist = false)
private String departName;
/**
* 批次
*/

@ -1,7 +1,6 @@
package org.jeecg.modules.demo.project.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
@ -13,7 +12,6 @@ import org.jeecg.modules.demo.project.dto.ProjectShenBaoDto;
import org.jeecg.modules.demo.project.entity.Project;
import org.jeecg.modules.demo.project.mapper.ProjectMapper;
import org.jeecg.modules.demo.project.service.IProjectService;
import org.jeecg.modules.demo.projectType.entity.ProjectType;
import org.jeecg.modules.demo.projectType.service.IProjectTypeService;
import org.jeecg.modules.demo.userext.entity.UserExt;
import org.jeecg.modules.demo.userext.service.IUserExtService;
@ -74,9 +72,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
// 预算书不存在
project.setBudgetStatus("10");
// ProjectType projectType = iProjectTypeService.getById(project.getProjectTypeid());
// project.setAnnualName(projectType.getAnnualName());
// project.setProjectTypeName(projectType.getTypeName());
this.save(project);
userExt.setUserId(loginUser.getId());
userExt.setProjectId(project.getId());
@ -89,43 +84,43 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
updateDepart4ShenBao(sysDepart);
}
void updateDepart4ShenBao(SysDepart depart){
void updateDepart4ShenBao(SysDepart depart) {
this.iSysDepartService.updateById(depart);
}
@Override
public void update4shenbao(ProjectShenBaoDto dto) {
log.info(">>> the 修改项目书-文 reqParams:{}", JSON.toJSONString(dto));
log.info(">>> the 修改项目书-文 reqParams:{}", JSON.toJSONString(dto));
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
iUserExtService.remove(new LambdaQueryWrapper<UserExt>().eq(UserExt::getProjectId,dto.getId()));
iDepartExtService.remove(new LambdaQueryWrapper<DepartExt>().eq(DepartExt::getProjectId,dto.getId()));
iUserExtService.remove(new LambdaQueryWrapper<UserExt>().eq(UserExt::getProjectId, dto.getId()));
iDepartExtService.remove(new LambdaQueryWrapper<DepartExt>().eq(DepartExt::getProjectId, dto.getId()));
SysDepart sysDepart = new SysDepart();
DepartExt departExt = new DepartExt();
// SysUser sysUser = new SysUser();
SysUser sysUser = new SysUser();
UserExt userExt = new UserExt();
Project project = new Project();
BeanUtils.copyProperties(dto, departExt);
BeanUtils.copyProperties(dto, sysDepart);
// BeanUtils.copyProperties(dto, sysUser);
BeanUtils.copyProperties(dto, userExt);
BeanUtils.copyProperties(dto, project);
project.setSysOrgCode(loginUser.getOrgId());
//负责人
// project.setProjectCharger(loginUser.getId());
this.updateById(project);
userExt.setUserId(loginUser.getId());
userExt.setProjectId(project.getId());
this.iUserExtService.save(userExt);
sysUser.setId(loginUser.getId());
sysUser.setEmail(dto.getEmail());
this.iSysUserService.updateById(sysUser);
departExt.setDepartId(loginUser.getOrgId());
departExt.setProjectId(project.getId());
this.iDepartExtService.save(departExt);
sysDepart.setId(loginUser.getOrgId());
updateDepart4ShenBao(sysDepart);
}

@ -122,5 +122,9 @@ public class UserExt implements Serializable {
@ApiModelProperty(value = "用户表负责人手机号")
private String phone;
@TableField(exist = false)
@ApiModelProperty(value = "用户表负责人email")
private String email;
}

@ -0,0 +1,100 @@
import {defHttp} from '/@/utils/http/axios';
import {useMessage} from "/@/hooks/web/useMessage";
const {createConfirm} = useMessage();
enum Api {
list = '/project/project/list',
fengMian = '/project/project/getFengMian',
userInfo = '/project/project/getUserInfo',
departInfo = '/project/project/getDepartInfo',
saveshenbao = '/project/project/save4shenbao',
updateshenbao = '/project/project/update4shenbao',
edit = '/project/project/edit',
deleteOne = '/project/project/delete',
deleteBatch = '/project/project/deleteBatch',
importExcel = '/project/project/importExcel',
exportXls = '/project/project/exportXls',
save = '/project/project/add',
}
/**
* 导出api
* @param params
*/
export const getExportUrl = Api.exportXls;
/**
* 导入api
*/
export const getImportUrl = Api.importExcel;
/**
* 列表接口
* @param params
*/
export const list = (params) =>
defHttp.get({url: Api.list, params});
export const getFengMian = (params) =>
defHttp.get({url: Api.fengMian, params});
export const getUserByProjectId = (params) =>
defHttp.get({url: Api.userInfo, params});
export const getDepartByProjectId = (params) =>
defHttp.get({url: Api.departInfo, params});
/**
* 删除单个
*/
export const deleteOne = (params, handleSuccess) => {
return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
handleSuccess();
});
}
/**
* 批量删除
* @param params
*/
export const batchDelete = (params, handleSuccess) => {
createConfirm({
iconType: 'warning',
title: '确认删除',
content: '是否删除选中数据',
okText: '确认',
cancelText: '取消',
onOk: () => {
return defHttp.delete({
url: Api.deleteBatch,
data: params
}, {joinParamsToUrl: true}).then(() => {
handleSuccess();
});
}
});
}
/**
* 保存或者更新
* @param params
*/
export const saveOrUpdate = (params, isUpdate) => {
// let url = isUpdate ? Api.edit : Api.save;
return defHttp.post({url: url, params});
}
/**
* 保存
* @param params
*/
export const save4shenbao = (params) => {
return defHttp.post({url: Api.saveshenbao, params});
};
/**
* 更新
* @param params
*/
export const update4shenbao = (params) => {
return defHttp.post({url: Api.updateshenbao, params});
};

@ -0,0 +1,95 @@
<template>
<div class="container">
<table border="1">
<thead>
<tr>
<th colspan="2" style="font-size: 20px">驻马店财政科研项目预算申报书</th>
</tr>
</thead>
<tbody>
<tr>
<td>预算年度</td>
<td>{{ data.annualName }}</td>
</tr>
<tr>
<td>项目类别</td>
<td>{{ data.projectTypeName }}</td>
</tr>
<tr>
<td>经费类别</td>
<td>{{ data.projectTypeName }}</td>
</tr>
<tr>
<td>项目名称</td>
<td>{{ data.projectName }}</td>
</tr>
<tr>
<td>申报单位</td>
<td>{{ data.projectName }}</td>
</tr>
<tr>
<td>科研团队名称</td>
<td></td>
</tr>
<tr>
<td>项目负责人</td>
<td>{{ data.projectCharger }}</td>
</tr>
<tr>
<td>申请预算额度(万元)</td>
<td>{{ data.applyFund }}</td>
</tr>
<!-- <tr>
<td>市县/省直部门</td>
<td>行1列2</td>
</tr>-->
<tr>
<td>填报日期</td>
<td>{{ data.createTime }}</td>
</tr>
</tbody>
</table>
</div>
</template>
<script setup lang="ts">
import {useRoute} from "vue-router";
import {getFengMian} from './FengMian.api';
import {onMounted, ref} from "vue";
const route = useRoute();
const data = ref({})
async function getData() {
let params = {
id: route.query.id,
};
let obj = await getFengMian(params);
console.log('data', JSON.stringify(obj))
data.value = obj
}
onMounted(() => {
getData()
});
</script>
<style scoped lang="less">
.container {
display: flex;
align-content: center;
justify-content: center;
}
th, td {
width: 500px;
height: 40px;
text-align: center;
line-height: 40px;
border: 1px solid #000;
}
</style>

@ -0,0 +1,91 @@
<template>
<div class="p-4">
<a-card :bordered="false" style="height: 100%">
<a-tabs v-model:activeKey="activeKey" @change="tabChange">
<a-tab-pane key="FengMianDemo" tab="封面" force-render></a-tab-pane>
<a-tab-pane key="TianBaoShuMingDemo" tab="填报说明" force-render></a-tab-pane>
<a-tab-pane key="JiBenXinXiDemo" tab="基本信息"></a-tab-pane>
<a-tab-pane key="ZhengWenDemo" tab="正文"></a-tab-pane>
<a-tab-pane key="XiangMuHeZuoKaiFaDemo" tab="项目合作开发情况"></a-tab-pane>
<a-tab-pane key="HeZuoDanWeiDemo" tab="合作单位"></a-tab-pane>
<a-tab-pane key="ZhuYaoRenYuanDemo" tab="项目主要参加人员"></a-tab-pane>
<!-- <a-tab-pane key="JeecgPdfView" tab="PDF预览"></a-tab-pane>-->
<a-tab-pane key="XiangMuJiXiaoMuBiaoDemo" tab="项目绩效目标"></a-tab-pane>
<a-tab-pane key="YiJianDemo" tab="意见"></a-tab-pane>
<a-tab-pane key="FuJianDemo" tab="文件上传"></a-tab-pane>
</a-tabs>
<component :is="currentComponent"></component>
</a-card>
</div>
<!-- <div type="primary" class="button-container">
<a-button type="primary" @click="goBack"> 获取路由 </a-button>
</div>-->
</template>
<script lang="ts">
import { defineComponent, ref, computed } from 'vue';
import FengMianDemo from './FengMianDemo.vue';
import TianBaoShuMingDemo from '../xiangmushu/TianBaoShuMingDemo.vue';
import JiBenXinXiDemo from '../xiangmushu/JiBenXinXiDemo.vue';
import XiangMuJiXiaoMuBiaoDemo from '../xiangmushu/XiangMuJiXiaoMuBiaoDemo.vue';
import YiJianDemo from '../xiangmushu/YiJianDemo.vue';
import HeZuoDanWeiDemo from '../xiangmushu/HeZuoDanWeiDemo.vue';
import ZhuYaoRenYuanDemo from '../xiangmushu/ZhuYaoRenYuanDemo.vue';
import ZhengWenDemo from '../xiangmushu/ZhengWenDemo.vue';
import XiangMuHeZuoKaiFaDemo from '../xiangmushu/XiangMuHeZuoKaiFaDemo.vue';
import JeecgPdfView from '../xiangmushu/JeecgPdfView.vue';
import FuJianDemo from '../xiangmushu/FuJianDemo.vue';
import { useRouter } from 'vue-router';
export default defineComponent({
name: 'comp-jeecg-basic',
setup() {
const route = useRouter();
const projectId = ref(route.currentRoute.value.query);
const activeKey = ref('TianBaoShuMingDemo');
const currentComponent = computed(() => {
const componentType = {
FengMianDemo: FengMianDemo,
TianBaoShuMingDemo: TianBaoShuMingDemo,
JiBenXinXiDemo: JiBenXinXiDemo,
ZhengWenDemo: ZhengWenDemo,
XiangMuHeZuoKaiFaDemo: XiangMuHeZuoKaiFaDemo,
XiangMuJiXiaoMuBiaoDemo: XiangMuJiXiaoMuBiaoDemo,
YiJianDemo: YiJianDemo,
HeZuoDanWeiDemo: HeZuoDanWeiDemo,
ZhuYaoRenYuanDemo: ZhuYaoRenYuanDemo,
JeecgPdfView: JeecgPdfView,
FuJianDemo: FuJianDemo,
};
return componentType[activeKey.value];
});
//使componenttab
function tabChange(key) {
activeKey.value = key;
// alert("activeKey.value-"+activeKey.value)
}
/*function goBack() {
// back();
alert("获取路由:"+JSON.stringify(projectId));
// console.log(":"+JSON.stringify(route.currentRoute.value.query));
// route.back();
}*/
return {
activeKey,
currentComponent,
tabChange,
// goBack,
};
},
});
</script>
<style scoped>
.button-container {
text-align: center;
}
</style>

@ -0,0 +1,865 @@
import { FormSchema, JCronValidator } from '/@/components/Form';
import { usePermission } from '/@/hooks/web/usePermission';
const { isDisabledAuth } = usePermission();
export const schemas: FormSchema[] = [
{
field: 'jdst',
component: 'JDictSelectTag',
label: '性别下拉',
helpMessage: ['component模式'],
componentProps: {
dictCode: 'sex',
},
colProps: {
span: 12,
},
},
{
field: 'jdst',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'jdst1',
component: 'JDictSelectTag',
label: '性别选择',
helpMessage: ['component模式'],
componentProps: {
dictCode: 'sex',
type: 'radioButton',
},
colProps: {
span: 12,
},
},
{
field: 'jdst1',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'jdst2',
component: 'JDictSelectTag',
label: '字典表下拉',
helpMessage: ['component模式'],
componentProps: {
dictCode: 'sys_user,realname,id',
},
colProps: {
span: 12,
},
},
{
field: 'jdst2',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'jdst3',
component: 'JDictSelectTag',
label: '字典表下拉(带条件)',
helpMessage: ['component模式'],
componentProps: {
dictCode: "sys_user,realname,id,username!='admin' order by create_time",
},
colProps: {
span: 12,
},
},
{
field: 'jdst3',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'jsst',
component: 'JSearchSelect',
label: '字典搜索(同步)',
colProps: { span: 12 },
componentProps: {
//dict: "sys_depart,depart_name,id",
dictOptions: [
{
text: '选项一',
value: '1',
},
{
text: '选项二',
value: '2',
},
{
text: '选项三',
value: '3',
},
],
},
},
{
field: 'jsst',
component: 'JEllipsis',
label: '选择值',
colProps: { span: 12 },
},
{
field: 'jsst2',
component: 'JSearchSelect',
label: '字典搜索(异步)',
colProps: { span: 12 },
componentProps: {
dict: 'sys_depart,depart_name,id',
pageSize: 6,
async: true,
},
},
{
field: 'jsst2',
component: 'JEllipsis',
label: '选择值',
colProps: { span: 12 },
},
{
field: 'xldx',
component: 'JDictSelectTag',
label: '字典下拉多选',
colProps: { span: 12 },
componentProps: {
dictCode: 'sex',
mode: 'multiple',
},
},
{
field: 'xldx',
component: 'JEllipsis',
label: '选择值',
colProps: { span: 12 },
},
{
field: 'xldx2',
component: 'JSelectMultiple',
label: '字典下拉多选2',
colProps: { span: 12 },
componentProps: {
dictCode: 'sex',
},
},
{
field: 'xldx2',
component: 'JEllipsis',
label: '选择值',
colProps: { span: 12 },
},
{
field: 'dxxlk',
component: 'JDictSelectTag',
label: '字典下拉单选',
colProps: { span: 12 },
componentProps: {
dictCode: 'sex',
},
},
{
field: 'dxxlk',
component: 'JEllipsis',
label: '选择值',
colProps: { span: 12 },
},
{
label: '可输入下拉',
field: 'selectInput',
component: 'JSelectInput',
componentProps: {
options: [
{ label: '选项一', value: '1' },
{ label: '选项二', value: '2' },
{ label: '选项三', value: '3' },
],
},
colProps: { span: 12 },
},
{
field: 'selectInput',
component: 'JEllipsis',
label: '选择值',
colProps: { span: 12 },
},
{
field: 'depart3',
component: 'JSelectDept',
label: '选择部门—自定义值',
helpMessage: ['component模式'],
componentProps: { showButton: false, rowKey: 'orgCode', primaryKey: 'orgCode' },
colProps: {
span: 12,
},
},
{
field: 'depart3',
component: 'JEllipsis',
label: '选中部门',
colProps: { span: 12 },
},
{
field: 'depart2',
component: 'JSelectDept',
label: '选择部门',
helpMessage: ['component模式'],
componentProps: { showButton: false },
colProps: {
span: 12,
},
},
{
field: 'depart2',
component: 'JEllipsis',
label: '选中部门',
colProps: { span: 12 },
},
{
field: 'user2',
component: 'JSelectUser',
label: '用户选择组件',
helpMessage: ['component模式'],
componentProps: {
labelKey: 'realname',
rowKey: 'id',
showSelected: true,
},
colProps: {
span: 12,
},
},
{
field: 'user2',
component: 'JEllipsis',
label: '选中用户',
colProps: { span: 12 },
},
{
field: 'user3',
component: 'JSelectUserByDept',
label: '部门选择用户',
helpMessage: ['component模式'],
componentProps: {
labelKey: 'realname',
rowKey: 'username',
},
colProps: {
span: 12,
},
},
{
field: 'user3',
component: 'JEllipsis',
label: '选中用户',
colProps: { span: 12 },
},
{
field: 'role2',
component: 'JSelectRole',
label: '角色选择组件',
helpMessage: ['component模式'],
colProps: {
span: 12,
},
},
{
field: 'role2',
component: 'JEllipsis',
label: '选中角色',
colProps: { span: 12 },
},
{
field: 'position2',
component: 'JSelectPosition',
label: '职务选择组件',
helpMessage: ['component模式'],
colProps: { span: 12 },
componentProps: { async: true, showSelectTable: true },
},
{
field: 'position2',
component: 'JEllipsis',
label: '选中职务',
colProps: { span: 12 },
},
{
field: 'checkbox1',
component: 'JCheckbox',
label: 'JCheckbox组件1',
helpMessage: ['component模式'],
defaultValue: '1,2',
componentProps: {
options: [
{ label: '男', value: '1' },
{ label: '女', value: '2' },
],
},
colProps: {
span: 12,
},
},
{
field: 'checkbox1',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'checkbox2',
component: 'Input',
label: 'JCheckbox组件2',
defaultValue: '1',
helpMessage: ['插槽模式'],
slot: 'JCheckbox',
colProps: {
span: 12,
},
},
{
field: 'checkbox2',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'data1',
label: '日期选择',
component: 'DatePicker',
componentProps: {
showTime: true,
valueFormat: 'YYYY-MM-DD HH:mm:ss',
},
colProps: {
span: 12,
},
},
{
field: 'data1',
component: 'JEllipsis',
label: '选中值',
colProps: {
span: 12,
},
},
{
field: 'data2',
label: '年份范围选择',
component: 'RangePicker',
componentProps: {
picker: 'year',
valueFormat: 'YYYY',
},
colProps: {
span: 12,
},
},
{
field: 'data2',
component: 'JEllipsis',
label: '选中值',
colProps: {
span: 12,
},
},
{
field: 'hk',
component: 'Input',
label: '滑块验证码',
helpMessage: ['插槽模式'],
slot: 'dargVerify',
colProps: {
span: 12,
},
},
{
field: 'hk',
component: 'JEllipsis',
label: '选中值',
colProps: {
span: 12,
},
},
{
field: 'JTreeDict',
component: 'JTreeDict',
label: '树字典',
helpMessage: ['component模式'],
colProps: { span: 12 },
},
{
field: 'JTreeDict',
component: 'JEllipsis',
label: '选中值',
colProps: {
span: 12,
},
},
{
field: 'ts',
component: 'JTreeSelect',
label: '下拉树选择',
helpMessage: ['component模式'],
componentProps: {
dict: 'sys_permission,name,id',
pidField: 'parent_id',
hasChildField: 'is_leaf',
converIsLeafVal: 0,
},
colProps: {
span: 12,
},
},
{
field: 'ts',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'ts1',
component: 'JTreeSelect',
label: '下拉树多选',
helpMessage: ['component模式'],
componentProps: {
dict: 'sys_permission,name,id',
pidField: 'parent_id',
hasChildField: 'is_leaf',
converIsLeafVal: 0,
multiple: true,
},
colProps: {
span: 12,
},
},
{
field: 'ts1',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'category',
component: 'JCategorySelect',
label: '分类字典树',
helpMessage: ['component模式'],
defaultValue: '',
componentProps: {
pcode: 'B01',
multiple: true,
},
colProps: {
span: 12,
},
},
{
field: 'category',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'JEasyCron',
component: 'JEasyCron',
label: 'JEasyCron',
helpMessage: ['component模式'],
colProps: { span: 12 },
defaultValue: '* * * * * ? *',
rules: [{ validator: JCronValidator }],
},
{
field: 'JEasyCron',
component: 'JEllipsis',
label: '选择值',
colProps: { span: 12 },
},
{
field: 'JInput',
component: 'JInput',
label: '特殊查询组件',
helpMessage: ['插槽模式'],
slot: 'JInput',
colProps: {
span: 12,
},
},
{
field: 'jinputtype',
component: 'Select',
label: '查询类型',
componentProps: {
options: [
{ value: 'like', label: '模糊(like)' },
{ value: 'ne', label: '不等于(ne)' },
{ value: 'ge', label: '大于等于(ge)' },
{ value: 'le', label: '小于等于(le)' },
],
},
colProps: {
span: 6,
},
},
{
field: 'JInput',
component: 'JEllipsis',
label: '输入值',
colProps: { span: 6 },
},
{
field: 'field1',
component: 'Select',
label: '省市区选择',
helpMessage: ['插槽模式'],
slot: 'jAreaLinkage',
colProps: {
span: 12,
},
defaultValue: ['130000', '130200'],
},
{
field: 'field1',
component: 'JEllipsis',
label: '选中值',
colProps: {
span: 12,
},
},
{
field: 'field0',
component: 'Select',
label: '禁用组件(方式一)',
helpMessage: ['插槽模式'],
slot: 'jAreaLinkage1',
colProps: {
span: 12,
},
defaultValue: ['130000', '130200'],
},
{
field: 'field0',
component: 'JEllipsis',
label: '选中值',
colProps: {
span: 12,
},
},
{
field: 'field2',
component: 'JAreaLinkage',
label: '禁用组件(方式二)',
helpMessage: ['component模式'],
colProps: {
span: 12,
},
dynamicDisabled: ({ values }) => {
console.log(values);
return isDisabledAuth(['demo.dbarray']);
},
defaultValue: ['140000', '140300', '140302'],
},
{
field: 'field2',
component: 'JEllipsis',
label: '选中值',
colProps: {
span: 12,
},
},
{
field: 'pca1',
component: 'JAreaSelect',
label: '省市区级联',
helpMessage: ['component模式'],
defaultValue: '140302',
colProps: {
span: 12,
},
},
{
field: 'pca1',
component: 'JEllipsis',
label: '选中值',
colProps: {
span: 12,
},
},
{
field: 'pop1',
component: 'Input',
label: 'JPopup示例',
helpMessage: ['插槽模式'],
slot: 'JPopup',
colProps: {
span: 12,
},
},
{
field: 'pop1',
component: 'JEllipsis',
label: '选中值',
colProps: {
span: 12,
},
},
{
field: 'JInputPop',
component: 'JInputPop',
label: 'JInputPop',
helpMessage: ['component模式'],
colProps: { span: 12 },
},
{
field: 'JInputPop',
component: 'JEllipsis',
label: '输入值',
colProps: { span: 12 },
},
{
field: 'JTreeDictAsync',
component: 'JTreeDict',
label: '异步JTreeDict',
helpMessage: ['component模式'],
colProps: { span: 12 },
componentProps: { async: true },
},
{
field: 'JTreeDictAsync',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'JSwitch',
component: 'JSwitch',
label: 'JSwitch',
helpMessage: ['component模式'],
colProps: { span: 12 },
},
{
field: 'JSwitch',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'JSwitchSelect',
component: 'JSwitch',
label: 'JSwitchSelect',
helpMessage: ['component模式'],
colProps: { span: 12 },
componentProps: { query: true },
},
{
field: 'JSwitchSelect',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'userSelect2',
component: 'UserSelect',
label: '高级用户选择',
helpMessage: ['component模式'],
colProps: { span: 12 },
},
{
field: 'userSelect2',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'superQuery',
component: 'Input',
label: '高级查询',
helpMessage: ['插槽模式'],
slot: 'superQuery',
colProps: { span: 12 },
},
{
field: 'superQuery',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'superQuery1',
component: 'Input',
label: '高级查询',
helpMessage: ['插槽模式-自己保存查询条件'],
slot: 'superQuery1',
colProps: { span: 12 },
},
{
field: 'superQuery1',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'pop2',
component: 'JPopupDict',
label: 'JPopupDict示例',
colProps: {
span: 12,
},
componentProps:{
placeholder: '请选择',
dictCode: 'report_user,username,id',
multi: true,
},
},
{
field: 'pop2',
component: 'JEllipsis',
label: '选中值',
colProps: {
span: 12,
},
},
{
field: 'sex',
component: 'JDictSelectTag',
label: '性别(控制下方课程options)',
helpMessage: ['component模式','性别不同,下方课程展示选项不同'],
componentProps: {
dictCode: 'sex',
type: 'radioButton',
onChange: (value) => {
console.log(value);
},
},
colProps: {
span: 12,
},
},
{
field: 'sex',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'course',
component: 'Select',
label: '课程',
dynamicPropskey: 'options',
dynamicPropsVal: ({ model }) => {
let options;
if (model.sex == 1) {
return [
{ value: '0', label: 'java - 男' },
{ value: '1', label: 'vue - 男' },
];
} else if (model.sex == 2) {
return [
{ value: '2', label: '瑜伽 - 女' },
{ value: '3', label: '美甲 - 女' },
];
} else {
return [];
}
},
componentProps: {
disabled: false,
},
colProps: {
span: 12,
},
},
{
field: 'course',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'field100',
component: 'JInputSelect',
label: 'JInputSelect',
helpMessage: ['component模式'],
componentProps: {
selectPlaceholder: '可选择系统变量',
inputPlaceholder: '请输入',
selectWidth:'200px',
options: [
{
label: '登录用户账号',
value: '#{sys_user_code}',
},
{
label: '登录用户名称',
value: '#{sys_user_name}',
},
{
label: '当前日期',
value: '#{sys_date}',
},
{
label: '当前时间',
value: '#{sys_time}',
},
{
label: '登录用户部门',
value: '#{sys_org_code}',
},
{
label: '用户拥有部门',
value: '#{sys_multi_org_code}',
},
{
label: '登录用户租户',
value: '#{tenant_id}',
},
],
},
colProps: {
span: 12,
},
},
{
field: 'field100',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'JAreaLinkage',
component: 'JAreaLinkage',
label: '省市区选择',
colProps: {
span: 12,
},
},
{
field: 'JAreaLinkage',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
{
field: 'orderAuth',
component: 'Input',
label: '指令权限',
helpMessage: ['有权限右侧的"选中值"可见,否则不可见'],
colProps: {
span: 12,
},
},
{
field: 'orderAuth',
auth: 'demo:order:auth',
component: 'JEllipsis',
label: '选中值',
colProps: { span: 12 },
},
];

@ -170,7 +170,7 @@ function go_xiangmushu(record) {
//
function go_yusuanshu(record) {
// go('/comp/jeecg/basic?id=' +'666');
go('/projectApplication/kejigongguan/xiangmushu?id='+record.id);
go('/projectApplication/kejigongguan/yusuanshu?id='+record.id);
}

Loading…
Cancel
Save