草稿功能修改
Some checks are pending
Java CI with Maven / build (11) (push) Waiting to run
Java CI with Maven / build (17) (push) Waiting to run
Java CI with Maven / build (8) (push) Waiting to run
yudao-ui-admin CI / build (14.x) (push) Waiting to run
yudao-ui-admin CI / build (16.x) (push) Waiting to run
Some checks are pending
Java CI with Maven / build (11) (push) Waiting to run
Java CI with Maven / build (17) (push) Waiting to run
Java CI with Maven / build (8) (push) Waiting to run
yudao-ui-admin CI / build (14.x) (push) Waiting to run
yudao-ui-admin CI / build (16.x) (push) Waiting to run
This commit is contained in:
parent
9af85471e3
commit
ff0b59d248
@ -57,6 +57,13 @@ public class QjglController {
|
||||
LocalDateTime endTime = LocalDateTime.parse(createReqVO.getEndTime(), formatter);
|
||||
return success(qjglService.createQjgl2(getLoginUserId(),createReqVO,startTime,endTime));
|
||||
}
|
||||
|
||||
@PostMapping("/saveDraft")
|
||||
@Operation(summary = "创建请假为草稿")
|
||||
@PreAuthorize("@ss.hasPermission('home:qjgl:create')")
|
||||
public CommonResult<Long> saveDraft(@Valid @RequestBody QjglSaveReqVO createReqVO) {
|
||||
return success(qjglService.saveDraft(getLoginUserId(),createReqVO));
|
||||
}
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新请假管理")
|
||||
@PreAuthorize("@ss.hasPermission('home:qjgl:update')")
|
||||
@ -100,7 +107,13 @@ public class QjglController {
|
||||
// // 转换并返回结果
|
||||
// return success(new PageResult<>(QjglConvert.INSTANCE.convertList(pageResult.getList(), deptMap), pageResult.getTotal()));
|
||||
}
|
||||
|
||||
@GetMapping("/draft")
|
||||
@Operation(summary = "获得请假草稿分页")
|
||||
@PreAuthorize("@ss.hasPermission('home:qjgl:query')")
|
||||
public CommonResult<PageResult<QjglRespVO>> getQjglDraft(@Valid QjglPageReqVO pageReqVO) {
|
||||
PageResult<QjglDO> pageResult = qjglService.getQjglDraft(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, QjglRespVO.class));
|
||||
}
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出请假管理 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('home:qjgl:export')")
|
||||
|
@ -31,6 +31,25 @@ public interface QjglMapper extends BaseMapperX<QjglDO> {
|
||||
.eqIfPresent(QjglDO::getUserId, reqVO.getUserId())
|
||||
.betweenIfPresent(QjglDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(QjglDO::getStatus, reqVO.getStatus())
|
||||
.ne(QjglDO::getStatus, 100) // 排除 status = 100 的记录
|
||||
.orderByDesc(QjglDO::getId));
|
||||
}
|
||||
default PageResult<QjglDO> selectDraft(QjglPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<QjglDO>()
|
||||
.eqIfPresent(QjglDO::getTitle, reqVO.getTitle())
|
||||
.eqIfPresent(QjglDO::getReason, reqVO.getReason())
|
||||
.eqIfPresent(QjglDO::getType, reqVO.getType())
|
||||
.betweenIfPresent(QjglDO::getStartTime, reqVO.getStartTime())
|
||||
.betweenIfPresent(QjglDO::getEndTime, reqVO.getEndTime())
|
||||
.eqIfPresent(QjglDO::getDay, reqVO.getDay())
|
||||
.eqIfPresent(QjglDO::getFilePath, reqVO.getFilePath())
|
||||
.likeIfPresent(QjglDO::getUserName, reqVO.getUserName())
|
||||
.eqIfPresent(QjglDO::getDeptId, reqVO.getDeptId())
|
||||
.eqIfPresent(QjglDO::getDeptName, reqVO.getDeptName())
|
||||
.eqIfPresent(QjglDO::getUserId, reqVO.getUserId())
|
||||
.betweenIfPresent(QjglDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(QjglDO::getStatus, reqVO.getStatus())
|
||||
.eq(QjglDO::getStatus, 100) // 强制过滤 status = 100
|
||||
.orderByDesc(QjglDO::getId));
|
||||
}
|
||||
//
|
||||
|
@ -51,7 +51,9 @@ public interface QjglService {
|
||||
* @return 请假管理分页
|
||||
*/
|
||||
PageResult<QjglDO> getQjglPage(QjglPageReqVO pageReqVO);
|
||||
PageResult<QjglDO> getQjglDraft(QjglPageReqVO pageReqVO);
|
||||
PageResult<QjglDO> getQjglPage(Long userid,QjglPageReqVO pageReqVO);
|
||||
public Long saveDraft(Long userId,QjglSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 改变请假管理数据状态
|
||||
|
@ -55,7 +55,12 @@ public class QjglServiceImpl implements QjglService {
|
||||
// 插入
|
||||
QjglDO qjgl = BeanUtils.toBean(createReqVO, QjglDO.class)
|
||||
.setUserId(userId).setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
|
||||
qjglMapper.insert(qjgl);
|
||||
if (createReqVO.getCurfullpath().contains("?") ) {
|
||||
qjglMapper.updateById(qjgl);
|
||||
} else {
|
||||
qjglMapper.insert(qjgl);
|
||||
}
|
||||
|
||||
|
||||
// 发起 BPM 流程
|
||||
Map<String, Object> processInstanceVariables = new HashMap<>();
|
||||
@ -103,6 +108,15 @@ public class QjglServiceImpl implements QjglService {
|
||||
// 返回
|
||||
return qjgl.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long saveDraft(Long userId,QjglSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
QjglDO qjgl = BeanUtils.toBean(createReqVO, QjglDO.class).setUserId(userId).setStatus(100);
|
||||
qjglMapper.insert(qjgl);
|
||||
// 返回
|
||||
return qjgl.getId();
|
||||
}
|
||||
@Override
|
||||
public void updateQjgl(QjglSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
@ -139,7 +153,12 @@ public class QjglServiceImpl implements QjglService {
|
||||
@Override
|
||||
public PageResult<QjglDO> getQjglPage(QjglPageReqVO pageReqVO) {
|
||||
return qjglMapper.selectPage(pageReqVO);
|
||||
} @Override
|
||||
}
|
||||
@Override
|
||||
public PageResult<QjglDO> getQjglDraft(QjglPageReqVO pageReqVO) {
|
||||
return qjglMapper.selectDraft(pageReqVO);
|
||||
}
|
||||
@Override
|
||||
public PageResult<QjglDO> getQjglPage(Long userId,QjglPageReqVO pageReqVO) {
|
||||
return qjglMapper.selectPage(userId,pageReqVO);
|
||||
}
|
||||
|
@ -207,6 +207,8 @@ public class CodegenEngine {
|
||||
// Vue3 标准模版
|
||||
.put(CodegenFrontTypeEnum.VUE3.getType(), vue3TemplatePath("views/flowindex.vue"),
|
||||
vue3FilePath("views/${table.moduleName}/${table.businessName}/index.vue"))
|
||||
.put(CodegenFrontTypeEnum.VUE3.getType(), vue3TemplatePath("views/flowindexDraft.vue"),
|
||||
vue3FilePath("views/${table.moduleName}/${table.businessName}/indexDraft.vue"))
|
||||
.put(CodegenFrontTypeEnum.VUE3.getType(), vue3TemplatePath("views/flowform.vue"),
|
||||
vue3FilePath("views/${table.moduleName}/${table.businessName}/${simpleClassName}Form.vue"))
|
||||
.put(CodegenFrontTypeEnum.VUE3.getType(), vue3TemplatePath("views/flowdetail.vue"),
|
||||
|
@ -54,6 +54,16 @@ public class ${sceneEnum.prefixClass}${table.className}Controller {
|
||||
return success(${classNameVar}Service.create${simpleClassName}(getLoginUserId(),createReqVO));
|
||||
}
|
||||
|
||||
@PostMapping("/saveDraft")
|
||||
@Operation(summary = "创建${table.classComment}为草稿")
|
||||
#if ($sceneEnum.scene == 1)
|
||||
@PreAuthorize("@ss.hasPermission('${permissionPrefix}:create')")
|
||||
#end
|
||||
public CommonResult<${primaryColumn.javaType}> saveDraft${simpleClassName}(@Valid @RequestBody ${sceneEnum.prefixClass}${table.className}SaveReqVO createReqVO) {
|
||||
return success(${classNameVar}Service.saveDraft(getLoginUserId(),createReqVO));
|
||||
}
|
||||
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新${table.classComment}")
|
||||
#if ($sceneEnum.scene == 1)
|
||||
@ -86,6 +96,7 @@ public class ${sceneEnum.prefixClass}${table.className}Controller {
|
||||
return success(BeanUtils.toBean(${classNameVar}, ${sceneEnum.prefixClass}${table.className}RespVO.class));
|
||||
}
|
||||
|
||||
|
||||
#if ( $table.templateType != 2 )
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得${table.classComment}分页")
|
||||
@ -96,7 +107,6 @@ public class ${sceneEnum.prefixClass}${table.className}Controller {
|
||||
PageResult<${table.className}DO> pageResult = ${classNameVar}Service.get${simpleClassName}Page(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, ${sceneEnum.prefixClass}${table.className}RespVO.class));
|
||||
}
|
||||
|
||||
## 特殊:树表专属逻辑(树不需要分页接口)
|
||||
#else
|
||||
@GetMapping("/list")
|
||||
@ -110,6 +120,17 @@ public class ${sceneEnum.prefixClass}${table.className}Controller {
|
||||
}
|
||||
|
||||
#end
|
||||
|
||||
@GetMapping("/draft")
|
||||
@Operation(summary = "获得${table.classComment}草稿分页")
|
||||
#if ($sceneEnum.scene == 1)
|
||||
@PreAuthorize("@ss.hasPermission('${permissionPrefix}:query')")
|
||||
#end
|
||||
public CommonResult<PageResult<${sceneEnum.prefixClass}${table.className}RespVO>> get${simpleClassName}Draft(@Valid ${sceneEnum.prefixClass}${table.className}PageReqVO pageReqVO) {
|
||||
PageResult<${table.className}DO> pageResult = ${classNameVar}Service.get${simpleClassName}Draft(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, ${sceneEnum.prefixClass}${table.className}RespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出${table.classComment} Excel")
|
||||
#if ($sceneEnum.scene == 1)
|
||||
|
@ -54,13 +54,22 @@ public interface ${table.className}Mapper extends BaseMapperX<${table.className}
|
||||
default PageResult<${table.className}DO> selectPage(${sceneEnum.prefixClass}${table.className}PageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<${table.className}DO>()
|
||||
#listCondition()
|
||||
.ne(QjglDO::getStatus, 100) // 排除 status = 100 的记录
|
||||
.orderByDesc(${table.className}DO::getId));## 大多数情况下,id 倒序
|
||||
|
||||
}
|
||||
|
||||
default PageResult<${table.className}DO> selectDraft(${sceneEnum.prefixClass}${table.className}PageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<${table.className}DO>()
|
||||
#listCondition()
|
||||
.eq(QjglDO::getStatus, 100) // 排除 status = 100 的记录
|
||||
.orderByDesc(${table.className}DO::getId));## 大多数情况下,id 倒序
|
||||
}
|
||||
|
||||
//由于传入参数userId,因此替换掉这一行:.eqIfPresent(${table.className}DO::getUserId, userId)
|
||||
default PageResult<${table.className}DO> selectPage(long userId,${sceneEnum.prefixClass}${table.className}PageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<${table.className}DO>()
|
||||
#listCondition()
|
||||
.ne(QjglDO::getStatus, 100) // 排除 status = 100 的记录
|
||||
.orderByDesc(${table.className}DO::getId));## 大多数情况下,id 倒序
|
||||
|
||||
}
|
||||
|
@ -25,6 +25,10 @@ public interface ${table.className}Service {
|
||||
* @return 编号
|
||||
*/
|
||||
${primaryColumn.javaType} create${simpleClassName}(Long userId,@Valid ${sceneEnum.prefixClass}${table.className}SaveReqVO createReqVO);
|
||||
|
||||
/* 存为草稿 */
|
||||
${primaryColumn.javaType} saveDraft(Long userId,@Valid ${sceneEnum.prefixClass}${table.className}SaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新${table.classComment}
|
||||
*
|
||||
@ -61,6 +65,8 @@ public interface ${table.className}Service {
|
||||
* @return ${table.classComment}分页
|
||||
*/
|
||||
PageResult<${table.className}DO> get${simpleClassName}Page(${sceneEnum.prefixClass}${table.className}PageReqVO pageReqVO);
|
||||
|
||||
PageResult<${table.className}DO> get${simpleClassName}Draft(${sceneEnum.prefixClass}${table.className}PageReqVO pageReqVO);
|
||||
#else
|
||||
/**
|
||||
* 获得${table.classComment}列表
|
||||
@ -124,6 +130,7 @@ public interface ${table.className}Service {
|
||||
*/
|
||||
${subPrimaryColumn.javaType} create${subSimpleClassName}(@Valid ${subTable.className}DO ${subClassNameVar});
|
||||
|
||||
|
||||
/**
|
||||
* 更新${subTable.classComment}
|
||||
*
|
||||
|
@ -57,6 +57,15 @@ public class ${table.className}ServiceImpl implements ${table.className}Service
|
||||
private ${subTable.className}Mapper ${subClassNameVars.get($index)}Mapper;
|
||||
#end
|
||||
|
||||
@Override
|
||||
public ${primaryColumn.javaType} saveDraft(Long userId,${sceneEnum.prefixClass}${table.className}SaveReqVO createReqVO) {
|
||||
// 插入
|
||||
${table.className}DO ${classNameVar} = BeanUtils.toBean(createReqVO, ${table.className}DO.class).setUserId(userId).setStatus(100);
|
||||
${classNameVar}Mapper.insert(${classNameVar});
|
||||
// 返回
|
||||
return qjgl.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
## 特殊:主子表专属逻辑(非 ERP 模式)
|
||||
#if ( $subTables && $subTables.size() > 0 && $table.templateType != 11 )
|
||||
@ -261,6 +270,11 @@ public class ${table.className}ServiceImpl implements ${table.className}Service
|
||||
public PageResult<${table.className}DO> get${simpleClassName}Page(${sceneEnum.prefixClass}${table.className}PageReqVO pageReqVO) {
|
||||
return ${classNameVar}Mapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<${table.className}DO> get${simpleClassName}Draft(${sceneEnum.prefixClass}${table.className}PageReqVO pageReqVO) {
|
||||
return ${classNameVar}Mapper.selectDraft(pageReqVO);
|
||||
}
|
||||
#else
|
||||
@Override
|
||||
public List<${table.className}DO> get${simpleClassName}List(${sceneEnum.prefixClass}${table.className}ListReqVO listReqVO) {
|
||||
|
@ -42,6 +42,15 @@ export const ${simpleClassName}Api = {
|
||||
create${simpleClassName}: async (data: ${simpleClassName}VO) => {
|
||||
return await request.post({ url: `${baseURL}/create`, data })
|
||||
},
|
||||
// 保存为草稿
|
||||
saveDraft: async (data: ${simpleClassName}VO) => {
|
||||
return await request.post({ url: `${baseURL}/saveDraft`, data })
|
||||
},
|
||||
|
||||
// 查询${table.classComment}草稿
|
||||
get${simpleClassName}Draft: async (params: any) => {
|
||||
return await request.get({ url: `${baseURL}/draft`, params })
|
||||
},
|
||||
|
||||
// 修改${table.classComment}
|
||||
update${simpleClassName}: async (data: ${simpleClassName}VO) => {
|
||||
|
@ -38,23 +38,23 @@
|
||||
</el-form-item>
|
||||
#elseif ($column.htmlType == "input" && !$column.primaryKey)## 忽略主键,不用在表单里
|
||||
<el-form-item label="${comment}" prop="${javaField}">
|
||||
<el-input v-model="formData.${javaField}" placeholder="请输入${comment}" disabled />
|
||||
<el-input v-model="formData.${javaField}" placeholder="请输入${comment}" :disabled="!isEditable('${javaField}')" />
|
||||
</el-form-item>
|
||||
#elseif($column.htmlType == "imageUpload")## 图片上传
|
||||
<el-form-item label="${comment}" prop="${javaField}">
|
||||
<UploadImg v-model="formData.${javaField}" disabled />
|
||||
<UploadImg v-model="formData.${javaField}" :disabled="!isEditable('${javaField}')" />
|
||||
</el-form-item>
|
||||
#elseif($column.htmlType == "fileUpload")## 文件上传
|
||||
<el-form-item label="${comment}" prop="${javaField}">
|
||||
<UploadFile v-model="formData.${javaField}" disabled />
|
||||
<UploadFile v-model="formData.${javaField}" :disabled="!isEditable('${javaField}')" />
|
||||
</el-form-item>
|
||||
#elseif($column.htmlType == "editor")## 文本编辑器
|
||||
<el-form-item label="${comment}" prop="${javaField}">
|
||||
<Editor v-model="formData.${javaField}" height="150px" disabled />
|
||||
<Editor v-model="formData.${javaField}" height="150px" :disabled="!isEditable('${javaField}')" />
|
||||
</el-form-item>
|
||||
#elseif($column.htmlType == "select")## 下拉框
|
||||
<el-form-item label="${comment}" prop="${javaField}">
|
||||
<el-select v-model="formData.${javaField}" placeholder="请选择${comment}" disabled>
|
||||
<el-select v-model="formData.${javaField}" placeholder="请选择${comment}" :disabled="!isEditable('${javaField}')" >
|
||||
#if ("" != $dictType)## 有数据字典
|
||||
<el-option
|
||||
v-for="dict in $dictMethod(DICT_TYPE.$dictType.toUpperCase())"
|
||||
@ -69,12 +69,13 @@
|
||||
</el-form-item>
|
||||
#elseif($column.htmlType == "checkbox")## 多选框
|
||||
<el-form-item label="${comment}" prop="${javaField}">
|
||||
<el-checkbox-group v-model="formData.${javaField}">
|
||||
<el-checkbox-group v-model="formData.${javaField}" :disabled="!isEditable('${javaField}')" >
|
||||
#if ("" != $dictType)## 有数据字典
|
||||
<el-checkbox
|
||||
v-for="dict in $dictMethod(DICT_TYPE.$dictType.toUpperCase())"
|
||||
:key="dict.value"
|
||||
:label="dict.value"
|
||||
:disabled="!isEditable('${javaField}')"
|
||||
>
|
||||
{{ dict.label }}
|
||||
</el-checkbox>
|
||||
@ -84,8 +85,8 @@
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
#elseif($column.htmlType == "radio")## 单选框
|
||||
<el-form-item label="${comment}" prop="${javaField}">
|
||||
<el-radio-group v-model="formData.${javaField}">
|
||||
<el-form-item label="${comment}" prop="${javaField}" >
|
||||
<el-radio-group v-model="formData.${javaField}" :disabled="!isEditable('${javaField}')" >
|
||||
#if ("" != $dictType)## 有数据字典
|
||||
<el-radio
|
||||
v-for="dict in $dictMethod(DICT_TYPE.$dictType.toUpperCase())"
|
||||
@ -100,17 +101,18 @@
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
#elseif($column.htmlType == "datetime")## 时间框
|
||||
<el-form-item label="${comment}" prop="${javaField}">
|
||||
<el-form-item label="${comment}" prop="${javaField}" >
|
||||
<el-date-picker
|
||||
v-model="formData.${javaField}"
|
||||
type="date"
|
||||
value-format="x"
|
||||
placeholder="选择${comment}"
|
||||
:disabled="!isEditable('${javaField}')"
|
||||
/>
|
||||
</el-form-item>
|
||||
#elseif($column.htmlType == "textarea")## 文本框
|
||||
<el-form-item label="${comment}" prop="${javaField}">
|
||||
<el-input v-model="formData.${javaField}" type="textarea" placeholder="请输入${comment}" disabled />
|
||||
<el-input v-model="formData.${javaField}" type="textarea" placeholder="请输入${comment}" :disabled="!isEditable('${javaField}')" />
|
||||
</el-form-item>
|
||||
#end
|
||||
#end
|
||||
@ -202,31 +204,24 @@ const ${subClassNameVar}FormRef = ref()
|
||||
#end
|
||||
#end
|
||||
|
||||
/** 打开弹窗 */
|
||||
## const open = async (type: string, id?: number) => {
|
||||
## dialogVisible.value = true
|
||||
## dialogTitle.value = t('action.' + type)
|
||||
## formType.value = type
|
||||
## resetForm()
|
||||
## // 修改时,设置数据
|
||||
## if (id) {
|
||||
## formLoading.value = true
|
||||
## try {
|
||||
## formData.value = await ${simpleClassName}Api.get${simpleClassName}(id)
|
||||
## } finally {
|
||||
## formLoading.value = false
|
||||
## }
|
||||
## }
|
||||
## ## 特殊:树表专属逻辑
|
||||
## #if ( $table.templateType == 2 )
|
||||
## await get${simpleClassName}Tree()
|
||||
## #end
|
||||
## }
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
||||
|
||||
const editableFields = ref([])
|
||||
const isEditable = (field) => {
|
||||
return editableFields.value.includes(field); // 如果字段在 editableFields 中,则返回 true
|
||||
}
|
||||
/** 提交表单 */
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
||||
|
||||
const updatetForm = async () => {
|
||||
// 校验表单
|
||||
await formRef.value.validate()
|
||||
// 提交请求
|
||||
formLoading.value = true
|
||||
try {
|
||||
const data = formData.value as unknown as ${simpleClassName}VO
|
||||
await ${simpleClassName}Api.update${simpleClassName}(data)
|
||||
} finally {
|
||||
formLoading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
/** 重置表单 */
|
||||
const resetForm = () => {
|
||||
@ -255,12 +250,47 @@ const get${simpleClassName}Tree = async () => {
|
||||
${classNameVar}Tree.value.push(root)
|
||||
}
|
||||
#end
|
||||
const itemControl = async () => {
|
||||
// console.log(userId,"userId")
|
||||
// console.log(queryId,"queryId")
|
||||
let flag = false
|
||||
let itemType = ""
|
||||
let itemContent = ""
|
||||
if (queryId.length > 33 ) { //流程中打开表单
|
||||
const taskids = await TaskApi.getTaskIdsForProcessInstance( queryId ) //通过流程实例id得到待办任务列表
|
||||
for (const taskid of taskids) {
|
||||
// 在 for...of 中可以使用 await
|
||||
const assignee = await TaskApi.getTaskAssignee(taskid); //通过待办任务id得到审批人
|
||||
//console.log(assignee, "assignee");
|
||||
if ( assignee == userId ) {
|
||||
flag = true
|
||||
itemType = await TaskApi.getTaskConfigFromBpmn( taskid ,"itemType")
|
||||
//console.log(itemType,"itemType")
|
||||
if ( itemType == "1") {
|
||||
itemContent = await TaskApi.getTaskConfigFromBpmn( taskid ,"itemContent")
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( flag ) { //当然用户是审批人
|
||||
if ( itemType == "1") { //表单字段0:禁用,1:允许
|
||||
//editableFields.value.push("userName")
|
||||
const parsedObject = JSON.parse(itemContent);
|
||||
Object.entries(parsedObject).forEach(([key, value]) => {
|
||||
editableFields.value.push( key )
|
||||
//console.log(key);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
onMounted(async () => {
|
||||
const id = props.id || queryId
|
||||
//console.log("id",id)
|
||||
if (id) {
|
||||
try {
|
||||
formData.value = await ${simpleClassName}Api.get${simpleClassName}(id)
|
||||
await itemControl()
|
||||
} finally {
|
||||
}
|
||||
}
|
||||
|
@ -137,7 +137,8 @@
|
||||
#end
|
||||
<template #footer>
|
||||
<el-row justify="end">
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
|
||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">提交审批</el-button>
|
||||
<el-button @click="saveDraft" type="warning" :disabled="draftButton">存为草稿</el-button>
|
||||
</el-row>
|
||||
</template>
|
||||
</el-card>
|
||||
@ -171,6 +172,7 @@ const { push, currentRoute } = useRouter() // 路由
|
||||
// const dialogVisible = ref(false) // 弹窗的是否展示
|
||||
// const dialogTitle = ref('') // 弹窗的标题
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||
const draftButton = ref(false)
|
||||
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
||||
const formData = ref({
|
||||
#foreach ($column in $columns)
|
||||
@ -231,6 +233,27 @@ const startUserSelectAssigneesFormRules = ref({}) // 发起人选择审批人的
|
||||
//const userList = ref<any[]>([]) // 用户列表
|
||||
/** 提交表单 */
|
||||
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
||||
|
||||
|
||||
const saveDraft = async () => {
|
||||
// 校验表单
|
||||
await formRef.value.validate()
|
||||
// 提交请求
|
||||
formLoading.value = true
|
||||
try {
|
||||
const data = formData.value as unknown as ${simpleClassName}VO
|
||||
|
||||
await ${simpleClassName}Api.saveDraft(data)
|
||||
message.success(t('common.saveDraft'))
|
||||
// 关闭当前 Tab
|
||||
delView(unref(currentRoute))
|
||||
await push({ name: '${simpleClassName}' })
|
||||
|
||||
} finally {
|
||||
formLoading.value = false
|
||||
}
|
||||
|
||||
}
|
||||
const submitForm = async () => {
|
||||
// 校验表单
|
||||
await formRef.value.validate()
|
||||
@ -275,10 +298,13 @@ const submitForm = async () => {
|
||||
data.startUserSelectAssignees = startUserSelectAssignees.value
|
||||
}
|
||||
|
||||
const curFullPath = currentRoute.value.fullPath
|
||||
let curFullPath = currentRoute.value.fullPath
|
||||
if( curFullPath ) {
|
||||
data.curfullpath = curFullPath
|
||||
}
|
||||
if (curFullPath.includes("?")) {
|
||||
curFullPath = curFullPath.split("?")[0];
|
||||
}
|
||||
const processKey = await FormProcessMappingApi.selectProcessKey( curFullPath )
|
||||
if ( processKey) {
|
||||
data.processDefinitionKey = processKey
|
||||
@ -325,7 +351,21 @@ const get${simpleClassName}Tree = async () => {
|
||||
/** 打开弹窗 */
|
||||
onMounted(async () => {
|
||||
await getUserInfo()
|
||||
const curFullPath = currentRoute.value.fullPath
|
||||
let curFullPath = currentRoute.value.fullPath
|
||||
if (curFullPath.includes("?")) {
|
||||
// 使用 URLSearchParams 提取查询参数
|
||||
const params = new URLSearchParams(curFullPath.split("?")[1]);
|
||||
const id = params.get("id") ;
|
||||
// 获取路径部分
|
||||
curFullPath = curFullPath.split("?")[0];
|
||||
// console.log("Path:", curFullPath);
|
||||
// console.log("id:", id);
|
||||
if ( id != "") {
|
||||
formData.value = await ${simpleClassName}Api.get${simpleClassName}(Number( id) )
|
||||
draftButton.value= true
|
||||
}
|
||||
}
|
||||
|
||||
const processKey = await FormProcessMappingApi.selectProcessKey( curFullPath )
|
||||
|
||||
if ( !processKey ) {
|
||||
|
@ -137,6 +137,7 @@
|
||||
#else
|
||||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
|
||||
#end
|
||||
<el-table-column label="序号" align="center" type="index" width="55" />
|
||||
## 特殊:主子表专属逻辑
|
||||
#if ( $table.templateType == 12 && $subTables && $subTables.size() > 0 )
|
||||
<!-- 子表的列表 -->
|
||||
|
Loading…
Reference in New Issue
Block a user