Compare commits
No commits in common. "d6ce975a175bcb9b1552a36e7b4695a3f1b4f34a" and "100e60262b7a435f83c5cf5b9ebd301a2e1dabec" have entirely different histories.
d6ce975a17
...
100e60262b
|
@ -4,20 +4,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import com.ruoyi.common.core.text.Convert;
|
import com.ruoyi.common.core.text.Convert;
|
||||||
import com.ruoyi.common.utils.SecurityUtils;
|
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
|
||||||
import com.ruoyi.flowable.common.constant.ProcessConstants;
|
import com.ruoyi.flowable.common.constant.ProcessConstants;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.flowable.common.enums.FlowComment;
|
import com.ruoyi.flowable.common.enums.FlowComment;
|
||||||
import com.ruoyi.flowable.domain.vo.ProcKeyRole;
|
import com.ruoyi.flowable.domain.vo.ProcKeyRole;
|
||||||
import com.ruoyi.flowable.service.IFlowBusinessKeyService;
|
|
||||||
import com.ruoyi.system.domain.FlowProcDefDto;
|
import com.ruoyi.system.domain.FlowProcDefDto;
|
||||||
import com.ruoyi.flowable.factory.FlowServiceFactory;
|
import com.ruoyi.flowable.factory.FlowServiceFactory;
|
||||||
import com.ruoyi.flowable.service.IFlowDefinitionService;
|
import com.ruoyi.flowable.service.IFlowDefinitionService;
|
||||||
import com.ruoyi.flowable.service.ISysDeployFormService;
|
import com.ruoyi.flowable.service.ISysDeployFormService;
|
||||||
import com.ruoyi.system.domain.FlowTaskEntity;
|
|
||||||
import com.ruoyi.system.domain.SysForm;
|
import com.ruoyi.system.domain.SysForm;
|
||||||
import com.ruoyi.system.mapper.FlowBusinessKeyMapper;
|
|
||||||
import com.ruoyi.system.mapper.FlowDeployMapper;
|
import com.ruoyi.system.mapper.FlowDeployMapper;
|
||||||
import com.ruoyi.system.service.ISysDeptService;
|
import com.ruoyi.system.service.ISysDeptService;
|
||||||
import com.ruoyi.system.service.ISysPostService;
|
import com.ruoyi.system.service.ISysPostService;
|
||||||
|
@ -33,7 +28,6 @@ import org.flowable.engine.repository.ProcessDefinitionQuery;
|
||||||
import org.flowable.engine.runtime.ProcessInstance;
|
import org.flowable.engine.runtime.ProcessInstance;
|
||||||
import org.flowable.image.impl.DefaultProcessDiagramGenerator;
|
import org.flowable.image.impl.DefaultProcessDiagramGenerator;
|
||||||
import org.flowable.task.api.Task;
|
import org.flowable.task.api.Task;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
@ -68,9 +62,6 @@ public class FlowDefinitionServiceImpl extends FlowServiceFactory implements IFl
|
||||||
@Resource
|
@Resource
|
||||||
private FlowDeployMapper flowDeployMapper;
|
private FlowDeployMapper flowDeployMapper;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private FlowBusinessKeyMapper flowBusinessKeyMapper;
|
|
||||||
|
|
||||||
private static final String BPMN_FILE_SUFFIX = ".bpmn";
|
private static final String BPMN_FILE_SUFFIX = ".bpmn";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -247,21 +238,6 @@ public class FlowDefinitionServiceImpl extends FlowServiceFactory implements IFl
|
||||||
if (Objects.nonNull(processDefinition) && processDefinition.isSuspended()) {
|
if (Objects.nonNull(processDefinition) && processDefinition.isSuspended()) {
|
||||||
return AjaxResult.error("流程已被挂起,请联系管理员先激活流程");
|
return AjaxResult.error("流程已被挂起,请联系管理员先激活流程");
|
||||||
}
|
}
|
||||||
/*try {
|
|
||||||
//分包单位资质审批需要验证是否已经提交过相关审批
|
|
||||||
if(Objects.equals("9",processDefinition.getCategory())){
|
|
||||||
FlowTaskEntity flowTaskEntity = new FlowTaskEntity();
|
|
||||||
flowTaskEntity.setBusinessKey(Convert.toStr(variables.get("businessKey")));
|
|
||||||
flowTaskEntity.setProcDefKey(processDefinition.getKey());
|
|
||||||
flowTaskEntity.setStartDeptName(SecurityUtils.getLoginUser().getUser().getDept().getDeptName());
|
|
||||||
List<FlowTaskEntity> list = flowBusinessKeyMapper.selectAllFlowTaskByParams(flowTaskEntity);
|
|
||||||
if(StringUtils.isNotEmpty(list)){
|
|
||||||
return AjaxResult.error("当前单位已提交过分包单位资质审批,请勿重复提交");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}catch (Exception e){
|
|
||||||
e.printStackTrace();
|
|
||||||
}*/
|
|
||||||
// 设置流程发起人Id到流程中
|
// 设置流程发起人Id到流程中
|
||||||
identityService.setAuthenticatedUserId(userId);
|
identityService.setAuthenticatedUserId(userId);
|
||||||
variables.put(ProcessConstants.PROCESS_INITIATOR, userId);
|
variables.put(ProcessConstants.PROCESS_INITIATOR, userId);
|
||||||
|
|
|
@ -30,7 +30,6 @@
|
||||||
<where>
|
<where>
|
||||||
<if test="taskName != null and taskName != ''"> and fa.taskName like concat('%', #{taskName}, '%')</if>
|
<if test="taskName != null and taskName != ''"> and fa.taskName like concat('%', #{taskName}, '%')</if>
|
||||||
<if test="procDefName != null and procDefName != ''"> and fa.procDefName like concat('%', #{procDefName}, '%')</if>
|
<if test="procDefName != null and procDefName != ''"> and fa.procDefName like concat('%', #{procDefName}, '%')</if>
|
||||||
<if test="procDefKey != null and procDefKey != ''"> and fa.procDefKey = #{procDefKey}</if>
|
|
||||||
<if test="businessKey != null and businessKey != ''"> and fa.businessKey = #{businessKey}</if>
|
<if test="businessKey != null and businessKey != ''"> and fa.businessKey = #{businessKey}</if>
|
||||||
<if test="startDeptName != null and startDeptName != ''"> and fa.startDeptName like concat('%', #{startDeptName}, '%')</if>
|
<if test="startDeptName != null and startDeptName != ''"> and fa.startDeptName like concat('%', #{startDeptName}, '%')</if>
|
||||||
<if test="startUserName != null and startUserName != ''"> and fa.startUserName like concat('%', #{startUserName}, '%')</if>
|
<if test="startUserName != null and startUserName != ''"> and fa.startUserName like concat('%', #{startUserName}, '%')</if>
|
||||||
|
|
|
@ -171,11 +171,6 @@
|
||||||
<dict-tag :options="dict.type.sys_common_isdel" :value="scope.row.isDel" />
|
<dict-tag :options="dict.type.sys_common_isdel" :value="scope.row.isDel" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="投诉时间" align="center" prop="createTime">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<span>{{ parseTime(scope.row.checkTime, "{y}-{m}-{d} {h}:{i}") }}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="操作"
|
label="操作"
|
||||||
align="center"
|
align="center"
|
||||||
|
|
|
@ -109,42 +109,8 @@
|
||||||
<el-form-item label="审批事项">
|
<el-form-item label="审批事项">
|
||||||
{{ title }}
|
{{ title }}
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="initData.subDeptType" label="分包类型">
|
|
||||||
<dict-tag
|
|
||||||
:options="dict.type.flow_sub_dept_type"
|
|
||||||
:value="initData.subDeptType"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="initData.subDeptScope" label="分包范围">
|
|
||||||
<dict-tag
|
|
||||||
v-for="scope in initData.subDeptScope.split(',')"
|
|
||||||
:options="dict.type.flow_sub_dept_scope"
|
|
||||||
:value="scope"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="initData.subDeptName" label="分包名称">
|
|
||||||
{{ initData.subDeptName }}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="initData.subDeptAptitude" label="分包资质">
|
|
||||||
{{ initData.subDeptAptitude }}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="initData.subDeptChairman" label="法人代表">
|
|
||||||
{{ initData.subDeptChairman }}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="initData.subDeptSafetyCertificate" label="安全证书">
|
|
||||||
{{ initData.subDeptSafetyCertificate }}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="initData.subDeptCustodian" label="项目负责人">
|
|
||||||
{{ initData.subDeptCustodian }}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="initData.subDeptCustodianCardId" label="负责人身份证">
|
|
||||||
{{ initData.subDeptCustodianCardId }}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="initData.subDeptApproachDate" label="进场时间">
|
|
||||||
{{ initData.subDeptApproachDate }}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="审批内容">
|
<el-form-item label="审批内容">
|
||||||
<div class="el-link_div" v-for="(file, index) in initData.files" :key="index">
|
<div v-for="(file, index) in initData.files" :key="index">
|
||||||
<el-link
|
<el-link
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-paperclip"
|
icon="el-icon-paperclip"
|
||||||
|
@ -153,7 +119,7 @@
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="initData.remark" label="申请说明">
|
<el-form-item label="申请说明">
|
||||||
{{ initData.remark }}
|
{{ initData.remark }}
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<div style="text-align: center">
|
<div style="text-align: center">
|
||||||
|
@ -176,7 +142,6 @@ import {
|
||||||
export default {
|
export default {
|
||||||
components: {},
|
components: {},
|
||||||
props: {},
|
props: {},
|
||||||
dicts: ["flow_sub_dept_type", "flow_sub_dept_scope"],
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// 抽屉层
|
// 抽屉层
|
||||||
|
@ -197,7 +162,7 @@ export default {
|
||||||
//label样式
|
//label样式
|
||||||
labelStyle: { width: "180px" },
|
labelStyle: { width: "180px" },
|
||||||
initData: {},
|
initData: {},
|
||||||
fileTypes: ["pdf", "png", "jpg", "jpeg"],
|
fileTypes:['pdf','png','jpg','jpeg'],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {},
|
computed: {},
|
||||||
|
@ -458,9 +423,7 @@ export default {
|
||||||
},
|
},
|
||||||
handledownload(url) {
|
handledownload(url) {
|
||||||
let fileType = url.split(".");
|
let fileType = url.split(".");
|
||||||
if (
|
if (this.fileTypes.indexOf(fileType[fileType.length-1].toLocaleLowerCase())>-1) {
|
||||||
this.fileTypes.indexOf(fileType[fileType.length - 1].toLocaleLowerCase()) > -1
|
|
||||||
) {
|
|
||||||
window.open(process.env.VUE_APP_BASE_API + url);
|
window.open(process.env.VUE_APP_BASE_API + url);
|
||||||
} else {
|
} else {
|
||||||
this.$download.resource(url);
|
this.$download.resource(url);
|
||||||
|
@ -512,9 +475,8 @@ export default {
|
||||||
float: left;
|
float: left;
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
|
|
||||||
.el-link_div {
|
.el-link .el-link--inner{
|
||||||
width: 100%;
|
word-break: break-all !important;
|
||||||
overflow: hidden;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,7 +112,7 @@
|
||||||
/>
|
/>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
<div style="text-align: center;margin-top: 20px;margin-bottom: 20px;">
|
<div style="text-align: center;margin-top: 30px;">
|
||||||
<el-button type="primary" @click="submitForm">提交申请</el-button>
|
<el-button type="primary" @click="submitForm">提交申请</el-button>
|
||||||
<el-button @click="doCanel">取 消</el-button>
|
<el-button @click="doCanel">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -50,77 +50,6 @@
|
||||||
<el-form-item label="审批事项">
|
<el-form-item label="审批事项">
|
||||||
{{ title }}
|
{{ title }}
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="fbAptitude" label="分包类型" prop="subDeptType">
|
|
||||||
<el-select
|
|
||||||
filterable
|
|
||||||
v-model="form.subDeptType"
|
|
||||||
placeholder="请选择送检类型"
|
|
||||||
style="width: 100%"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="dict in dict.type.flow_sub_dept_type"
|
|
||||||
:key="dict.value"
|
|
||||||
:label="dict.label"
|
|
||||||
:value="dict.value"
|
|
||||||
></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="fbAptitude" label="分包范围" prop="subDeptScope">
|
|
||||||
<el-select
|
|
||||||
filterable
|
|
||||||
multiple
|
|
||||||
v-model="form.subDeptScope"
|
|
||||||
placeholder="请选择送检类型"
|
|
||||||
style="width: 100%"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="dict in dict.type.flow_sub_dept_scope"
|
|
||||||
:key="dict.value"
|
|
||||||
:label="dict.label"
|
|
||||||
:value="dict.value"
|
|
||||||
></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="fbAptitude" label="分包名称" prop="subDeptName">
|
|
||||||
<el-input v-model="form.subDeptName" placeholder="请输入分包单位名称" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="fbAptitude" label="分包资质" prop="subDeptAptitude">
|
|
||||||
<el-input v-model="form.subDeptAptitude" placeholder="请输入分包单位资质" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="fbAptitude" label="法人代表" prop="subDeptChairman">
|
|
||||||
<el-input v-model="form.subDeptChairman" placeholder="请输入分包单位法人代表" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="fbAptitude" label="安全证书" prop="subDeptSafetyCertificate">
|
|
||||||
<el-input
|
|
||||||
v-model="form.subDeptSafetyCertificate"
|
|
||||||
placeholder="请输入分包单位安全生产许可证"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="fbAptitude" label="项目负责人" prop="subDeptCustodian">
|
|
||||||
<el-input
|
|
||||||
v-model="form.subDeptCustodian"
|
|
||||||
placeholder="请输入分包单位项目负责人"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item
|
|
||||||
v-if="fbAptitude"
|
|
||||||
label="负责人身份证"
|
|
||||||
prop="subDeptCustodianCardId"
|
|
||||||
>
|
|
||||||
<el-input
|
|
||||||
v-model="form.subDeptCustodianCardId"
|
|
||||||
placeholder="请输入分包单位负责人身份证号"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="fbAptitude" label="进场时间" prop="subDeptApproachDate">
|
|
||||||
<el-date-picker
|
|
||||||
v-model="form.subDeptApproachDate"
|
|
||||||
type="date"
|
|
||||||
placeholder="请选择进场日期"
|
|
||||||
style="width: 100%"
|
|
||||||
>
|
|
||||||
</el-date-picker>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="审批内容" prop="files">
|
<el-form-item label="审批内容" prop="files">
|
||||||
<FileUpload
|
<FileUpload
|
||||||
@input="fileInput"
|
@input="fileInput"
|
||||||
|
@ -137,7 +66,7 @@
|
||||||
rows="5"
|
rows="5"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<div style="text-align: center;margin-bottom: 20px;">
|
<div style="text-align: center">
|
||||||
<el-button type="primary" @click="submitForm">提交流程</el-button>
|
<el-button type="primary" @click="submitForm">提交流程</el-button>
|
||||||
<el-button @click="doCanel">取 消</el-button>
|
<el-button @click="doCanel">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -160,7 +89,6 @@ export default {
|
||||||
type: Function,
|
type: Function,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
dicts: ["flow_sub_dept_type", "flow_sub_dept_scope"],
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// 抽屉层
|
// 抽屉层
|
||||||
|
@ -179,59 +107,6 @@ export default {
|
||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {
|
rules: {
|
||||||
businessKey: [{ required: true, message: "请选择所属项目", trigger: "blur" }],
|
businessKey: [{ required: true, message: "请选择所属项目", trigger: "blur" }],
|
||||||
subDeptType: [{ required: true, message: "请选择分包类型", trigger: "blur" }],
|
|
||||||
subDeptScope: [{ required: true, message: "请选择分包范围", trigger: "blur" }],
|
|
||||||
subDeptName: [
|
|
||||||
{ required: true, message: "请输入分包单位名称", trigger: "blur" },
|
|
||||||
{
|
|
||||||
max: 50,
|
|
||||||
message: "分包单位名称最多50字",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
subDeptAptitude: [
|
|
||||||
{ required: true, message: "请选择分包单位资质", trigger: "blur" },
|
|
||||||
{
|
|
||||||
max: 50,
|
|
||||||
message: "分包单位资质最多50字",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
subDeptChairman: [
|
|
||||||
{ required: true, message: "请输入分包单位法人代表", trigger: "blur" },
|
|
||||||
{
|
|
||||||
max: 20,
|
|
||||||
message: "分包单位法人代表最多20字",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
subDeptSafetyCertificate: [
|
|
||||||
{ required: true, message: "请输入分包单位安全生产许可证", trigger: "blur" },
|
|
||||||
{
|
|
||||||
max: 50,
|
|
||||||
message: "分包单位安全生产许可证最多50字",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
subDeptCustodian: [
|
|
||||||
{ required: true, message: "请输入分包单位项目负责人", trigger: "blur" },
|
|
||||||
{
|
|
||||||
max: 20,
|
|
||||||
message: "分包单位项目负责人最多20字",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
subDeptCustodianCardId: [
|
|
||||||
{ required: true, message: "请输入分包单位负责人身份证号", trigger: "blur" },
|
|
||||||
{
|
|
||||||
pattern: /^[1-9]\d{5}(18|19|20|21|22)?\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|[Xx])$/,
|
|
||||||
message: "请输入正确的身份证号",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
subDeptApproachDate: [
|
|
||||||
{ required: true, message: "请选择分包单位进场时间", trigger: "blur" },
|
|
||||||
],
|
|
||||||
files: [{ required: true, message: "请上传申请内容", trigger: "blur" }],
|
files: [{ required: true, message: "请上传申请内容", trigger: "blur" }],
|
||||||
remark: [
|
remark: [
|
||||||
{ required: false, message: "请输入申请说明", trigger: "blur" },
|
{ required: false, message: "请输入申请说明", trigger: "blur" },
|
||||||
|
@ -251,7 +126,6 @@ export default {
|
||||||
taskTitle: null,
|
taskTitle: null,
|
||||||
taskOpen: false,
|
taskOpen: false,
|
||||||
daterangeMarksTime: [],
|
daterangeMarksTime: [],
|
||||||
fbAptitude: false,
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {},
|
computed: {},
|
||||||
|
@ -278,10 +152,6 @@ export default {
|
||||||
this.options = options;
|
this.options = options;
|
||||||
this.onOpen = true;
|
this.onOpen = true;
|
||||||
this.title = options.procDefName;
|
this.title = options.procDefName;
|
||||||
//初始化流程类型
|
|
||||||
if (options.category == "9") {
|
|
||||||
this.fbAptitude = true;
|
|
||||||
}
|
|
||||||
this.initFormDate(options.procInsId);
|
this.initFormDate(options.procInsId);
|
||||||
flowXmlAndNode({ procInsId: options.procInsId, deployId: options.deployId }).then(
|
flowXmlAndNode({ procInsId: options.procInsId, deployId: options.deployId }).then(
|
||||||
(res) => {
|
(res) => {
|
||||||
|
|
|
@ -134,7 +134,7 @@
|
||||||
<el-button v-if="getActivate(scope.row)" @click="handleActivate(scope.row)" type="text" size="small" icon="el-icon-edit-outline">处理</el-button>
|
<el-button v-if="getActivate(scope.row)" @click="handleActivate(scope.row)" type="text" size="small" icon="el-icon-edit-outline">处理</el-button>
|
||||||
<el-button @click="handleFlowRecord(scope.row)" type="text" size="small" icon="el-icon-finished">详情</el-button>
|
<el-button @click="handleFlowRecord(scope.row)" type="text" size="small" icon="el-icon-finished">详情</el-button>
|
||||||
<el-button v-if="scope.row.finishTime == null" @click="handleStop(scope.row)" type="text" size="small" icon="el-icon-switch-button">终止</el-button>
|
<el-button v-if="scope.row.finishTime == null" @click="handleStop(scope.row)" type="text" size="small" icon="el-icon-switch-button">终止</el-button>
|
||||||
<el-button v-if="scope.row.finishTime == null || superAdmin" @click="handleDelete(scope.row)" type="text" size="small" icon="el-icon-delete" v-hasPermi="['system:deployment:remove']">删除</el-button>
|
<el-button v-if="scope.row.finishTime == null" @click="handleDelete(scope.row)" type="text" size="small" icon="el-icon-delete" v-hasPermi="['system:deployment:remove']">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -344,13 +344,9 @@ export default {
|
||||||
activeName:"await",
|
activeName:"await",
|
||||||
showPro:false,
|
showPro:false,
|
||||||
projectOptions: null,
|
projectOptions: null,
|
||||||
superAdmin:false,
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
if(this.$store.getters.userId==1){
|
|
||||||
this.superAdmin=true;
|
|
||||||
}
|
|
||||||
this.queryParams.activeName = this.activeName;
|
this.queryParams.activeName = this.activeName;
|
||||||
this.getList();
|
this.getList();
|
||||||
this.initMyProject();
|
this.initMyProject();
|
||||||
|
|
|
@ -112,7 +112,7 @@
|
||||||
/>
|
/>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
<div style="text-align: center;margin-top: 20px;margin-bottom: 20px;">
|
<div style="text-align: center;margin-top: 30px;">
|
||||||
<el-button type="primary" @click="submitForm">提交申请</el-button>
|
<el-button type="primary" @click="submitForm">提交申请</el-button>
|
||||||
<el-button @click="doCanel">取 消</el-button>
|
<el-button @click="doCanel">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -0,0 +1,250 @@
|
||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-drawer
|
||||||
|
v-if="onOpen"
|
||||||
|
:visible.sync="onOpen"
|
||||||
|
ref="drawer"
|
||||||
|
direction="rtl"
|
||||||
|
size="60%"
|
||||||
|
@close="closeCallBack"
|
||||||
|
style="padding-left: 20px; padding-right: 20px"
|
||||||
|
>
|
||||||
|
<template slot="title">
|
||||||
|
<div>工程管理 【{{ title }}】</div>
|
||||||
|
</template>
|
||||||
|
<el-form
|
||||||
|
ref="form"
|
||||||
|
:model="form"
|
||||||
|
:rules="rules"
|
||||||
|
v-loading="loading"
|
||||||
|
label-width="120px"
|
||||||
|
style="padding-right: 35px"
|
||||||
|
>
|
||||||
|
<div class="canvas" ref="flowCanvas"></div>
|
||||||
|
<div class="maskLayer" />
|
||||||
|
<el-form-item label="所属项目" prop="businessKey">
|
||||||
|
<el-select
|
||||||
|
v-model="form.businessKey"
|
||||||
|
placeholder="请选择所属项目"
|
||||||
|
style="width: 100%"
|
||||||
|
filterable
|
||||||
|
:disabled="disPro"
|
||||||
|
@change="projectChage"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="(item, index) in projectOptions"
|
||||||
|
:key="index"
|
||||||
|
:label="item.projectName"
|
||||||
|
:value="item.id"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="发起单位">
|
||||||
|
{{ deptName }}
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="发起人">
|
||||||
|
{{ nickName }}
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="审批事项">
|
||||||
|
{{ title }}
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
label="审批内容"
|
||||||
|
prop="files"
|
||||||
|
v-if="
|
||||||
|
options.flowKey != 'flow_xmglzdl_qjsp' && options.flowKey != 'flow_aql_sxkj'
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<FileUpload
|
||||||
|
@input="fileInput"
|
||||||
|
:limit="9"
|
||||||
|
:fileType="['pdf', 'png', 'jpg', 'jpeg']"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
label="申请说明"
|
||||||
|
prop="remark"
|
||||||
|
v-if="
|
||||||
|
options.flowKey != 'flow_xmglzdl_qjsp' && options.flowKey != 'flow_aql_sxkj'
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
type="textarea"
|
||||||
|
v-model="form.remark"
|
||||||
|
placeholder="请输入申请说明"
|
||||||
|
rows="5"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div style="text-align: center">
|
||||||
|
<el-button type="primary" @click="submitForm">提交流程</el-button>
|
||||||
|
<el-button @click="doCanel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-drawer>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import store from "@/store";
|
||||||
|
import { definitionStart, flowXmlAndNode } from "@/api/flowable/definition";
|
||||||
|
import { CustomViewer as BpmnViewer } from "@/components/customBpmn";
|
||||||
|
import { getNextFlowNodeByStart } from "@/api/flowable/todo";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {},
|
||||||
|
props: {
|
||||||
|
closeCallBack: {
|
||||||
|
type: Function,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 抽屉层
|
||||||
|
onOpen: false,
|
||||||
|
// 遮罩层
|
||||||
|
loading: false,
|
||||||
|
// 标题
|
||||||
|
title: "",
|
||||||
|
// 表单参数
|
||||||
|
form: {
|
||||||
|
businessKey: "",
|
||||||
|
projectName: "",
|
||||||
|
files: "",
|
||||||
|
remark: "",
|
||||||
|
},
|
||||||
|
// 表单校验
|
||||||
|
rules: {
|
||||||
|
businessKey: [{ required: true, message: "请选择所属项目", trigger: "blur" }],
|
||||||
|
files: [{ required: true, message: "请上传申请内容", trigger: "blur" }],
|
||||||
|
remark: [
|
||||||
|
{ required: false, message: "请输入申请说明", trigger: "blur" },
|
||||||
|
{
|
||||||
|
max: 500,
|
||||||
|
message: "申请说明最多输入500字",
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
projectOptions: null,
|
||||||
|
deptName: null,
|
||||||
|
nickName: null,
|
||||||
|
disPro: false,
|
||||||
|
bpmnViewer: null,
|
||||||
|
options: {},
|
||||||
|
taskTitle: null,
|
||||||
|
taskOpen: false,
|
||||||
|
daterangeMarksTime: [],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
watch: {},
|
||||||
|
created() {},
|
||||||
|
mounted() {},
|
||||||
|
beforeDestroy() {},
|
||||||
|
methods: {
|
||||||
|
// 查询和我相关的项目信息
|
||||||
|
initMyProject() {
|
||||||
|
// 获取项目列表的接口
|
||||||
|
this.$api.publics.getMyProjectList({}).then((response) => {
|
||||||
|
this.projectOptions = response.rows;
|
||||||
|
if (response.rows.length == 0) {
|
||||||
|
this.$message.error("未查询到和您关联项目,请联系子公司或管理员...");
|
||||||
|
} else if (response.rows.length == 1) {
|
||||||
|
// 这里只有一个项目,默认选中并只读
|
||||||
|
this.form.businessKey = response.rows[0].id;
|
||||||
|
this.form.projectName = response.rows[0].projectName;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 项目选择
|
||||||
|
projectChage(val) {
|
||||||
|
let projectName = "";
|
||||||
|
this.projectOptions.forEach((item) => {
|
||||||
|
if ((item.id = val)) {
|
||||||
|
projectName = item.projectName;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.form.projectName = projectName;
|
||||||
|
},
|
||||||
|
doCanel() {
|
||||||
|
this.onOpen = false;
|
||||||
|
},
|
||||||
|
show(options) {
|
||||||
|
this.options = options;
|
||||||
|
this.initMyProject();
|
||||||
|
this.title = options.name;
|
||||||
|
this.deptName = store.getters.dept.deptName;
|
||||||
|
this.nickName = store.getters.name;
|
||||||
|
const self = this;
|
||||||
|
this.onOpen = true;
|
||||||
|
flowXmlAndNode({ deployId: options.deploymentId }).then((res) => {
|
||||||
|
this.initFlowImage(res.data.xmlData);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
async initFlowImage(data) {
|
||||||
|
try {
|
||||||
|
self.bpmnViewer = new BpmnViewer({
|
||||||
|
container: this.$refs.flowCanvas,
|
||||||
|
height: "150px",
|
||||||
|
});
|
||||||
|
await self.bpmnViewer.importXML(data);
|
||||||
|
// 自适应
|
||||||
|
self.bpmnViewer.get("canvas").zoom("fit-viewport", "auto");
|
||||||
|
} catch (err) {
|
||||||
|
console.error(err.message, err.warnings);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fileInput(files) {
|
||||||
|
let fileUrls = "";
|
||||||
|
if (files.length > 0) {
|
||||||
|
fileUrls = "";
|
||||||
|
files.forEach((item) => {
|
||||||
|
fileUrls += "," + item.url;
|
||||||
|
});
|
||||||
|
fileUrls = fileUrls.substring(1);
|
||||||
|
}
|
||||||
|
this.form.files = fileUrls;
|
||||||
|
},
|
||||||
|
submitForm() {
|
||||||
|
this.$refs["form"].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.loading = true;
|
||||||
|
// 根据当前任务或者流程设计配置的下一步节点 todo 暂时未涉及到考虑网关、表达式和多节点情况
|
||||||
|
// getNextFlowNodeByStart({
|
||||||
|
// deploymentId: this.options.deploymentId,
|
||||||
|
// variables: this.form,
|
||||||
|
// }).then((res) => {
|
||||||
|
// const data = res.data;
|
||||||
|
// if (data) {
|
||||||
|
// console.log(data);
|
||||||
|
// this.loading = false;
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// 启动流程并将表单数据加入流程变量
|
||||||
|
|
||||||
|
definitionStart(this.options.id, JSON.stringify(this.form)).then((res) => {
|
||||||
|
this.$modal.msgSuccess(res.msg);
|
||||||
|
this.loading = false;
|
||||||
|
//关闭并刷新列表
|
||||||
|
this.$refs.drawer.closeDrawer();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.bjs-powered-by {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
.maskLayer {
|
||||||
|
width: 100%;
|
||||||
|
height: 150px;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 9999;
|
||||||
|
top: 66px;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -50,77 +50,6 @@
|
||||||
<el-form-item label="审批事项">
|
<el-form-item label="审批事项">
|
||||||
{{ title }}
|
{{ title }}
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="fbAptitude" label="分包类型" prop="subDeptType">
|
|
||||||
<el-select
|
|
||||||
filterable
|
|
||||||
v-model="form.subDeptType"
|
|
||||||
placeholder="请选择送检类型"
|
|
||||||
style="width: 100%"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="dict in dict.type.flow_sub_dept_type"
|
|
||||||
:key="dict.value"
|
|
||||||
:label="dict.label"
|
|
||||||
:value="dict.value"
|
|
||||||
></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="fbAptitude" label="分包范围" prop="subDeptScope">
|
|
||||||
<el-select
|
|
||||||
filterable
|
|
||||||
multiple
|
|
||||||
v-model="form.subDeptScope"
|
|
||||||
placeholder="请选择送检类型"
|
|
||||||
style="width: 100%"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="dict in dict.type.flow_sub_dept_scope"
|
|
||||||
:key="dict.value"
|
|
||||||
:label="dict.label"
|
|
||||||
:value="dict.value"
|
|
||||||
></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="fbAptitude" label="分包名称" prop="subDeptName">
|
|
||||||
<el-input v-model="form.subDeptName" placeholder="请输入分包单位名称" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="fbAptitude" label="分包资质" prop="subDeptAptitude">
|
|
||||||
<el-input v-model="form.subDeptAptitude" placeholder="请输入分包单位资质" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="fbAptitude" label="法人代表" prop="subDeptChairman">
|
|
||||||
<el-input v-model="form.subDeptChairman" placeholder="请输入分包单位法人代表" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="fbAptitude" label="安全证书" prop="subDeptSafetyCertificate">
|
|
||||||
<el-input
|
|
||||||
v-model="form.subDeptSafetyCertificate"
|
|
||||||
placeholder="请输入分包单位安全生产许可证"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="fbAptitude" label="项目负责人" prop="subDeptCustodian">
|
|
||||||
<el-input
|
|
||||||
v-model="form.subDeptCustodian"
|
|
||||||
placeholder="请输入分包单位项目负责人"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item
|
|
||||||
v-if="fbAptitude"
|
|
||||||
label="负责人身份证"
|
|
||||||
prop="subDeptCustodianCardId"
|
|
||||||
>
|
|
||||||
<el-input
|
|
||||||
v-model="form.subDeptCustodianCardId"
|
|
||||||
placeholder="请输入分包单位负责人身份证号"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="fbAptitude" label="进场时间" prop="subDeptApproachDate">
|
|
||||||
<el-date-picker
|
|
||||||
v-model="form.subDeptApproachDate"
|
|
||||||
type="date"
|
|
||||||
placeholder="请选择进场日期"
|
|
||||||
style="width: 100%"
|
|
||||||
>
|
|
||||||
</el-date-picker>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="审批内容" prop="files">
|
<el-form-item label="审批内容" prop="files">
|
||||||
<FileUpload
|
<FileUpload
|
||||||
@input="fileInput"
|
@input="fileInput"
|
||||||
|
@ -136,7 +65,7 @@
|
||||||
rows="5"
|
rows="5"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<div style="text-align: center;margin-bottom: 20px;">
|
<div style="text-align: center">
|
||||||
<el-button type="primary" @click="submitForm">提交流程</el-button>
|
<el-button type="primary" @click="submitForm">提交流程</el-button>
|
||||||
<el-button @click="doCanel">取 消</el-button>
|
<el-button @click="doCanel">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -158,7 +87,6 @@ export default {
|
||||||
type: Function,
|
type: Function,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
dicts: ["flow_sub_dept_type", "flow_sub_dept_scope"],
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// 抽屉层
|
// 抽屉层
|
||||||
|
@ -177,59 +105,6 @@ export default {
|
||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {
|
rules: {
|
||||||
businessKey: [{ required: true, message: "请选择所属项目", trigger: "blur" }],
|
businessKey: [{ required: true, message: "请选择所属项目", trigger: "blur" }],
|
||||||
subDeptType: [{ required: true, message: "请选择分包类型", trigger: "blur" }],
|
|
||||||
subDeptScope: [{ required: true, message: "请选择分包范围", trigger: "blur" }],
|
|
||||||
subDeptName: [
|
|
||||||
{ required: true, message: "请输入分包单位名称", trigger: "blur" },
|
|
||||||
{
|
|
||||||
max: 50,
|
|
||||||
message: "分包单位名称最多50字",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
subDeptAptitude: [
|
|
||||||
{ required: true, message: "请选择分包单位资质", trigger: "blur" },
|
|
||||||
{
|
|
||||||
max: 50,
|
|
||||||
message: "分包单位资质最多50字",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
subDeptChairman: [
|
|
||||||
{ required: true, message: "请输入分包单位法人代表", trigger: "blur" },
|
|
||||||
{
|
|
||||||
max: 20,
|
|
||||||
message: "分包单位法人代表最多20字",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
subDeptSafetyCertificate: [
|
|
||||||
{ required: true, message: "请输入分包单位安全生产许可证", trigger: "blur" },
|
|
||||||
{
|
|
||||||
max: 50,
|
|
||||||
message: "分包单位安全生产许可证最多50字",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
subDeptCustodian: [
|
|
||||||
{ required: true, message: "请输入分包单位项目负责人", trigger: "blur" },
|
|
||||||
{
|
|
||||||
max: 20,
|
|
||||||
message: "分包单位项目负责人最多20字",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
subDeptCustodianCardId: [
|
|
||||||
{ required: true, message: "请输入分包单位负责人身份证号", trigger: "blur" },
|
|
||||||
{
|
|
||||||
pattern: /^[1-9]\d{5}(18|19|20|21|22)?\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|[Xx])$/,
|
|
||||||
message: "请输入正确的身份证号",
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
subDeptApproachDate: [
|
|
||||||
{ required: true, message: "请选择分包单位进场时间", trigger: "blur" },
|
|
||||||
],
|
|
||||||
files: [{ required: true, message: "请上传申请内容", trigger: "blur" }],
|
files: [{ required: true, message: "请上传申请内容", trigger: "blur" }],
|
||||||
remark: [
|
remark: [
|
||||||
{ required: false, message: "请输入申请说明", trigger: "blur" },
|
{ required: false, message: "请输入申请说明", trigger: "blur" },
|
||||||
|
@ -249,8 +124,6 @@ export default {
|
||||||
taskTitle: null,
|
taskTitle: null,
|
||||||
taskOpen: false,
|
taskOpen: false,
|
||||||
daterangeMarksTime: [],
|
daterangeMarksTime: [],
|
||||||
//分包资质审批
|
|
||||||
fbAptitude: false,
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {},
|
computed: {},
|
||||||
|
@ -293,10 +166,6 @@ export default {
|
||||||
this.title = options.name;
|
this.title = options.name;
|
||||||
this.deptName = store.getters.dept.deptName;
|
this.deptName = store.getters.dept.deptName;
|
||||||
this.nickName = store.getters.name;
|
this.nickName = store.getters.name;
|
||||||
//初始化流程类型
|
|
||||||
if (options.category == "9") {
|
|
||||||
this.fbAptitude = true;
|
|
||||||
}
|
|
||||||
const self = this;
|
const self = this;
|
||||||
this.onOpen = true;
|
this.onOpen = true;
|
||||||
flowXmlAndNode({ deployId: options.deploymentId }).then((res) => {
|
flowXmlAndNode({ deployId: options.deploymentId }).then((res) => {
|
||||||
|
|
|
@ -114,42 +114,8 @@
|
||||||
<el-form-item label="审批事项">
|
<el-form-item label="审批事项">
|
||||||
{{ title }}
|
{{ title }}
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="initData.subDeptType" label="分包类型">
|
|
||||||
<dict-tag
|
|
||||||
:options="dict.type.flow_sub_dept_type"
|
|
||||||
:value="initData.subDeptType"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="initData.subDeptScope" label="分包范围">
|
|
||||||
<dict-tag
|
|
||||||
v-for="scope in initData.subDeptScope.split(',')"
|
|
||||||
:options="dict.type.flow_sub_dept_scope"
|
|
||||||
:value="scope"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="initData.subDeptName" label="分包名称">
|
|
||||||
{{ initData.subDeptName }}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="initData.subDeptAptitude" label="分包资质">
|
|
||||||
{{ initData.subDeptAptitude }}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="initData.subDeptChairman" label="法人代表">
|
|
||||||
{{ initData.subDeptChairman }}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="initData.subDeptSafetyCertificate" label="安全证书">
|
|
||||||
{{ initData.subDeptSafetyCertificate }}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="initData.subDeptCustodian" label="项目负责人">
|
|
||||||
{{ initData.subDeptCustodian }}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="initData.subDeptCustodianCardId" label="负责人身份证">
|
|
||||||
{{ initData.subDeptCustodianCardId }}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="initData.subDeptApproachDate" label="进场时间">
|
|
||||||
{{ initData.subDeptApproachDate }}
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="审批内容">
|
<el-form-item label="审批内容">
|
||||||
<div class="el-link_div" v-for="(file, index) in initData.files" :key="index">
|
<div v-for="(file, index) in initData.files" :key="index">
|
||||||
<el-link
|
<el-link
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-paperclip"
|
icon="el-icon-paperclip"
|
||||||
|
@ -158,7 +124,7 @@
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="initData.remark" label="申请说明">
|
<el-form-item label="申请说明">
|
||||||
{{ initData.remark }}
|
{{ initData.remark }}
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="审批意见" prop="comment">
|
<el-form-item label="审批意见" prop="comment">
|
||||||
|
@ -252,7 +218,6 @@ export default {
|
||||||
type: Function,
|
type: Function,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
dicts: ["flow_sub_dept_type", "flow_sub_dept_scope"],
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// 抽屉层
|
// 抽屉层
|
||||||
|
@ -708,9 +673,8 @@ export default {
|
||||||
float: left;
|
float: left;
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
|
|
||||||
.el-link_div {
|
.el-link .el-link--inner{
|
||||||
width: 100%;
|
word-break: break-all !important;
|
||||||
overflow: hidden;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
(select count(1) from vw_flow_all a where a.businessKey = sp.id and a.startDeptName = pui.unitName and a.finishTime is not null)as gcsp,
|
(select count(1) from vw_flow_all a where a.businessKey = sp.id and a.startDeptName = pui.unitName and a.finishTime is not null)as gcsp,
|
||||||
(select count(1) from sur_project_standard a where a.project_id = sp.id and a.dept_id = pui.unitId and a.is_del=0)as bzh,
|
(select count(1) from sur_project_standard a where a.project_id = sp.id and a.dept_id = pui.unitId and a.is_del=0)as bzh,
|
||||||
(select count(1) from sur_project_photography a where a.project_id = sp.id and a.is_del=0)as yssys,
|
(select count(1) from sur_project_photography a where a.project_id = sp.id and a.is_del=0)as yssys,
|
||||||
(select count(1) from flow_labour_info a where a.project_id = sp.id and a.dept_id=pui.unitId and a.is_del=0) as lzyjs,
|
(select count(1) from flow_labour_info a where a.project_id = sp.id and a.deptId=pui.unitId and a.is_del=0) as lzyjs,
|
||||||
'0' as hjyjs,
|
'0' as hjyjs,
|
||||||
(select count(1) from smz_ssp_problemmodify a where a.projectId=sp.id and a.infoType=1 and a.isDel=0 and a.checkState!=4 and date(NOW())<![CDATA[ > ]]> date(a.nickedTime)) as zlyjs,
|
(select count(1) from smz_ssp_problemmodify a where a.projectId=sp.id and a.infoType=1 and a.isDel=0 and a.checkState!=4 and date(NOW())<![CDATA[ > ]]> date(a.nickedTime)) as zlyjs,
|
||||||
(select count(1) from smz_ssp_problemmodify a where a.projectId=sp.id and a.infoType=0 and a.isDel=0 and a.checkState!=4 and date(NOW())<![CDATA[ > ]]> date(a.nickedTime)) as aqyjs,
|
(select count(1) from smz_ssp_problemmodify a where a.projectId=sp.id and a.infoType=0 and a.isDel=0 and a.checkState!=4 and date(NOW())<![CDATA[ > ]]> date(a.nickedTime)) as aqyjs,
|
||||||
|
|
Loading…
Reference in New Issue