<template>
|
<div class="system-add-menu-container">
|
<el-dialog :title="title" :visible.sync="approveLevelDialog" :close-on-click-modal="false">
|
<el-form :model="approveLevelForm" label-width="150px" ref="approveLevelFormRef" :rules="approveLevelFormRule">
|
<el-col :span="24">
|
<el-form-item label="层级名称" prop="stepName">
|
<el-input v-model="approveLevelForm.stepName" class="input-add" placeholder="请填写层级名称"> </el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="24">
|
<el-form-item label="审批层级" prop="type">
|
<el-select v-model="approveLevelForm.type" placeholder="请选择审批层级" class="input-add">
|
<el-option v-for="item in typeList" :key="item.id" :value="item.id" :label="item.name"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="24" v-if="approveLevelForm.type === 2">
|
<el-form-item label="审批类型" prop="auditType">
|
<el-select v-model="approveLevelForm.auditType" placeholder="请选择审批类型" class="input-add">
|
<el-option v-for="item in auditTypeList" :key="item.id" :value="item.id" :label="item.name"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="24">
|
<el-form-item label="审批人" prop="unitList">
|
<el-select v-model="approveLevelForm.unitList" multiple placeholder="请选择审批人" class="input-add" clearable filterable>
|
<el-option v-for="item in userList" :key="item.id" :value="item.id" :label="item.realname + '(' + item.username.toString().replace(/^(\d{3})\d{4}(\d{4})$/,'$1****$2') + ')'"></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="24">
|
<el-form-item label="审批有效时间" prop="continueTime">
|
<el-input type="number" v-model="approveLevelForm.continueTime" placeholder="请输入审批有效时间" class="input-add">
|
<template slot="prepend">
|
<el-select v-model="approveLevelForm.continueTimeUnit" placeholder="选择单位" style="width: 115px">
|
<el-option v-for="item in timeList" :key="item.id" :value="item.id" :label="item.name"></el-option>
|
</el-select>
|
</template>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
<div class="checkUnit-point">
|
<div class="filter-container">
|
<el-button size="default" type="primary" @click="openApproveActionDialog('新增', '', 0)">
|
<el-icon>
|
<ele-FolderAdd />
|
</el-icon>
|
新增审批项
|
</el-button>
|
</div>
|
|
<el-table border fit highlight-current-row :data="approveLevelForm.itemList" style="width: 100%">
|
<el-table-column property="itemName" label="审批项名称" show-overflow-tooltip> </el-table-column>
|
<el-table-column property="type" label="审批项类型" show-overflow-tooltip>
|
<template slot-scope="scope">
|
<div v-for="item in approveTypeList">
|
<div v-if="scope.row.type === item.id">
|
<span>{{item.name}}</span>
|
</div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column property="measureId" label="措施名称" show-overflow-tooltip>
|
<template slot-scope="scope">
|
<div v-for="item in actionList">
|
<div v-if="scope.row.measureId === item.id">
|
<span>{{item.context}}</span>
|
</div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column property="standId" label="标准名称" show-overflow-tooltip>
|
<template slot-scope="scope">
|
<div v-for="item in standardList">
|
<div v-if="scope.row.standId === item.ruleStandId">
|
<span>{{item.ruleStandTypeDesc}}</span>
|
</div>
|
</div>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作" width="150" align="center">
|
<template slot-scope="scope">
|
<el-button type="text" size="small" @click="openApproveActionDialog('修改', scope.row, scope.$index)">修改</el-button>
|
<el-button type="text" size="small" style="color: red" @click="deleteApproveItem(scope.$index)">删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
|
<div align="right" style="padding-top: 10px">
|
<el-button type="warning" @click="approveLevelDialog = false" size="default" plain>取消</el-button>
|
<el-button type="primary" @click="submitApproveLevel()" size="default">确认</el-button>
|
</div>
|
</el-form>
|
</el-dialog>
|
<approve-item-dialog ref="approveItemDialogRef" @addApprovalItem="achieveApprovalItem"></approve-item-dialog>
|
</div>
|
</template>
|
|
<script>
|
|
import approveItemDialog from './approveItemDialog.vue';
|
import {safetyActionApi} from "../../../../../api/safetyAction";
|
import {approveBasicApi} from "../../../../../api/approveBasic";
|
|
export default {
|
name: 'approveLevelDialog',
|
components: { approveItemDialog },
|
data(){
|
return{
|
title: '',
|
tableKey:'',
|
activeName: 'ApproveAction',
|
approveLevelDialog: false,
|
approveLevelForm: {
|
id: null,
|
stepName: null,
|
stepSerial: null,
|
type: null,
|
auditType: null,
|
continueTime: null,
|
continueTimeUnit: null,
|
unitList: [],
|
itemList: []
|
},
|
approveLevelFormRule: {
|
stepName: [{ required: true, message: '请填写层次名称', trigger: 'blur' }],
|
type: [{ required: true, message: '请选择审批层级', trigger: 'change' }],
|
auditType: [{ required: true, message: '请选择审批类型', trigger: 'change' }],
|
unitList: [{ required: true, message: '请选择审批人', trigger: 'change' }],
|
continueTime: [{ required: true, message: '请填写有效时间', trigger: 'blur' }]
|
},
|
departmentList: [],
|
userList: [],
|
timeList: [
|
{ id: 1, name: '日' },
|
{ id: 2, name: '时' },
|
{ id: 3, name: '分' }
|
],
|
typeList: [
|
{ id: 1, name: '单人' },
|
{ id: 2, name: '多人' },
|
{ id: 3, name: '分析人' }
|
],
|
auditTypeList: [
|
{ id: 0, name: '单审' },
|
{ id: 1, name: '会审' },
|
],
|
approveTypeList: [
|
{ id: 1, name: '数值' },
|
{ id: 2, name: '选项' },
|
{ id: 3, name: '填空' }
|
],
|
workLevelList: [],
|
actionList: [],
|
standardList: []
|
}
|
},
|
created() {
|
this.getActionData()
|
this.getStandardData()
|
},
|
methods:{
|
showApproveLevelDialog(type, value, userList) {
|
this.approveLevelDialog = true;
|
this.userList = userList;
|
this.$nextTick(() => {
|
this.$refs["approveLevelFormRef"].clearValidate()
|
})
|
if (type === '新增') {
|
this.title = '新增审批层级';
|
this.approveLevelForm = {
|
id: null,
|
stepName: null,
|
stepSerial: null,
|
type: null,
|
auditType: null,
|
continueTime: null,
|
continueTimeUnit: null,
|
unitList: [],
|
itemList: []
|
};
|
} else {
|
this.title = '修改审批层级';
|
this.approveLevelForm = JSON.parse(JSON.stringify(value));
|
this.approveLevelForm.unitList = this.approveLevelForm.unitList.map((item) => {
|
return item.bindUid;
|
});
|
}
|
},
|
|
openApproveActionDialog(type, value, index) {
|
this.$refs["approveLevelFormRef"].validate((valid) => {
|
if (valid) {
|
this.$refs.approveItemDialogRef.showApproveItemDialog(type, value, index, this.approveLevelForm, this.standardList, this.actionList);
|
} else {
|
this.$message({
|
type: 'warning',
|
message: '请先完善审批层级信息,才能选择审批项'
|
});
|
}
|
});
|
},
|
|
submitApproveLevel() {
|
this.$refs["approveLevelFormRef"].validate((valid) => {
|
if (valid) {
|
this.approveLevelForm.unitList = this.approveLevelForm.unitList.map((item) => {
|
return { bindUid: item };
|
});
|
this.$emit('addApprovalLevel', this.approveLevelForm, this.title);
|
this.approveLevelDialog = false;
|
} else {
|
this.$message({
|
type: 'warning',
|
message: '请完善审批层级基本信息'
|
});
|
}
|
});
|
},
|
|
achieveApprovalItem(value, title, index) {
|
if (title === '新增审批项') {
|
this.approveLevelForm.itemList.push(value);
|
} else {
|
// this.approveLevelForm.itemList[index] = JSON.parse(JSON.stringify(value));
|
this.$set(this.approveLevelForm.itemList,index,value)
|
}
|
},
|
|
deleteApproveItem(index) {
|
this.approveLevelForm.itemList.splice(index, 1);
|
},
|
|
async getActionData() {
|
let res = await safetyActionApi().getAllSafetyActionList({ workType: null, type: null, context: null });
|
if (res.data.code === '200') {
|
this.actionList = res.data.data;
|
} else {
|
this.$message({
|
type: 'warning',
|
message: res.data.message
|
});
|
}
|
},
|
|
async getStandardData() {
|
let res = await approveBasicApi().getAllApproveBasicList({ ruleStandType: null, title: null });
|
if (res.data.code === '200') {
|
this.standardList = res.data.data;
|
} else {
|
this.$message({
|
type: 'warning',
|
message: res.data.message
|
});
|
}
|
},
|
|
},
|
};
|
</script>
|
|
<style scoped></style>
|