|
@@ -1,62 +1,62 @@
|
|
|
<template>
|
|
|
<div class="check-flow-container">
|
|
|
<!--发起工作流-->
|
|
|
- <el-dialog title="发起审批" v-model="startWfOpen" width="500px" append-to-body :close-on-click-modal="false" destroy-on-close>
|
|
|
+ <el-dialog :title="t('message.flowComponent.startApproval')" v-model="startWfOpen" width="500px" append-to-body :close-on-click-modal="false" destroy-on-close>
|
|
|
<el-form ref="wfStartFormRef" :model="wfStartForm" :rules="wfStartRules" label-width="120px">
|
|
|
- <el-form-item label="项目名称" prop="title">
|
|
|
+ <el-form-item :label="t('message.flowComponent.projectName')" prop="title">
|
|
|
<el-input v-model="startWfTitle" disabled />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="选择工作流" prop="wfId">
|
|
|
+ <el-form-item :label="t('message.flowComponent.selectWorkflow')" prop="wfId">
|
|
|
<el-select v-model="wfStartForm.wfId" @change="setSelectedFlow" clearable>
|
|
|
<el-option v-for="item in wfOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="流程图" v-if="wfStartForm.wfId && wfStartForm.wfId !== '0'">
|
|
|
+ <el-form-item :label="t('message.flowComponent.flowChart')" v-if="wfStartForm.wfId && wfStartForm.wfId !== '0'">
|
|
|
<el-link type="primary" :underline="false" @click="showFlowDesign(wfStartForm.wfId, 0, 'start')"
|
|
|
- >点击查看 {{ selectedFlow }} 的流程图</el-link
|
|
|
+ >{{ t('message.flowComponent.clickToViewFlowChart', { name: selectedFlow }) }}</el-link
|
|
|
>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="紧急程度" prop="newType">
|
|
|
+ <el-form-item :label="t('message.flowComponent.urgency')" prop="newType">
|
|
|
<el-select v-model="wfStartForm.newType">
|
|
|
<el-option v-for="item in flow_level" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="审核意见" prop="checkCon">
|
|
|
+ <el-form-item :label="t('message.flowComponent.reviewOpinion')" prop="checkCon">
|
|
|
<el-input v-model="wfStartForm.checkCon" />
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
- <el-button type="primary" @click="submitWfStart">确 定</el-button>
|
|
|
- <el-button @click="cancelWfStart">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="submitWfStart">{{ t('message.flowComponent.confirm') }}</el-button>
|
|
|
+ <el-button @click="cancelWfStart">{{ t('message.flowComponent.cancel') }}</el-button>
|
|
|
</div>
|
|
|
- <el-dialog title="流程图" v-model="isShowFlowDesignStart" @opened="showFlowDesignOpen" width="90%" append-to-body destroy-on-close>
|
|
|
+ <el-dialog :title="t('message.flowComponent.flowChart')" v-model="isShowFlowDesignStart" @opened="showFlowDesignOpen" width="90%" append-to-body destroy-on-close>
|
|
|
<ShowFlowDesign ref="showFlowDesignRef" />
|
|
|
</el-dialog>
|
|
|
</el-dialog>
|
|
|
<!--流程审批-->
|
|
|
- <el-dialog title="流程审批" v-model="checkWfOpen" width="900px" append-to-body :close-on-click-modal="false" destroy-on-close>
|
|
|
+ <el-dialog :title="t('message.flowComponent.processApproval')" v-model="checkWfOpen" width="900px" append-to-body :close-on-click-modal="false" destroy-on-close>
|
|
|
<el-form ref="wfCheckFormRef" :model="wfCheckForm" :rules="wfCheckRules" label-width="120px">
|
|
|
- <el-form-item label="项目名称" prop="title">
|
|
|
+ <el-form-item :label="t('message.flowComponent.projectName')" prop="title">
|
|
|
<el-input v-model="checkWfTitle" disabled />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="审批意见" prop="checkCon">
|
|
|
+ <el-form-item :label="t('message.flowComponent.approvalOpinion')" prop="checkCon">
|
|
|
<el-input v-model="wfCheckForm.checkCon" type="textarea" :rows="3" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="流程图">
|
|
|
- <el-button @click="showFlowDesign(flowId, processId, 'check')" type="success" plain>点击查看流程图</el-button>
|
|
|
+ <el-form-item :label="t('message.flowComponent.flowChart')">
|
|
|
+ <el-button @click="showFlowDesign(flowId, processId, 'check')" type="success" plain>{{ t('message.flowComponent.clickToViewFlowChartBtn') }}</el-button>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="下一步骤" prop="nextStep" v-show="nextProcess && !backProcess">
|
|
|
+ <el-form-item :label="t('message.flowComponent.nextStep')" prop="nextStep" v-show="nextProcess && !backProcess">
|
|
|
<template v-if="checkFlowInfo.nodeInfo && checkFlowInfo.nodeInfo.nextNode.length > 0">
|
|
|
<el-tag v-for="(item, index) in checkFlowInfo.nodeInfo.nextNode" :key="'nextStep_' + index"
|
|
|
>{{ item.nodeText.value }}【{{ item.todo.join(',') }}】</el-tag
|
|
|
>
|
|
|
</template>
|
|
|
<template v-else>
|
|
|
- <el-tag>审批完成</el-tag>
|
|
|
+ <el-tag>{{ t('message.flowComponent.approvalCompleted') }}</el-tag>
|
|
|
</template>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="回退步骤" v-if="backProcess" prop="wfBackFlow">
|
|
|
- <el-select placeholder="请选择回退步骤" v-model="wfCheckForm.wfBackFlow">
|
|
|
+ <el-form-item :label="t('message.flowComponent.rollbackStep')" v-if="backProcess" prop="wfBackFlow">
|
|
|
+ <el-select :placeholder="t('message.flowComponent.selectRollbackStep')" v-model="wfCheckForm.wfBackFlow">
|
|
|
<template v-if="checkFlowInfo">
|
|
|
<el-option
|
|
|
v-for="item of checkFlowInfo.preprocess"
|
|
@@ -67,20 +67,20 @@
|
|
|
</template>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="附件">
|
|
|
+ <el-form-item :label="t('message.flowComponent.attachment')">
|
|
|
<upload-file :action="baseURL + 'api/v1/system/upload/singleFile'" v-model="upFileInfo" @upFileData="upFile" :limit="1"></upload-file>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
- <el-button v-show="doCheck && !doBack" type="primary" @click="submitWfCheck('ok')">提交审批</el-button>
|
|
|
- <el-button type="danger" v-if="checkFlowInfo?.nodeInfo?.rollback === 1" @click="submitWfCheck('back')">回 退</el-button>
|
|
|
- <el-button type="info" @click="checkLogs">审批记录</el-button>
|
|
|
+ <el-button v-show="doCheck && !doBack" type="primary" @click="submitWfCheck('ok')">{{ t('message.flowComponent.submitApproval') }}</el-button>
|
|
|
+ <el-button type="danger" v-if="checkFlowInfo?.nodeInfo?.rollback === 1" @click="submitWfCheck('back')">{{ t('message.flowComponent.rollback') }}</el-button>
|
|
|
+ <el-button type="info" @click="checkLogs">{{ t('message.flowComponent.approvalRecords') }}</el-button>
|
|
|
</div>
|
|
|
- <el-dialog title="流程图" v-model="isShowFlowDesignCheck" @opened="showFlowCheckingOpen" width="90%" append-to-body destroy-on-close>
|
|
|
+ <el-dialog :title="t('message.flowComponent.flowChart')" v-model="isShowFlowDesignCheck" @opened="showFlowCheckingOpen" width="90%" append-to-body destroy-on-close>
|
|
|
<ShowFlowDesign ref="showFlowCheckRef" />
|
|
|
</el-dialog>
|
|
|
</el-dialog>
|
|
|
- <el-drawer v-model="showLog" title="审批记录" direction="rtl" @opened="showLogs" destroy-on-close>
|
|
|
+ <el-drawer v-model="showLog" :title="t('message.flowComponent.approvalRecords')" direction="rtl" @opened="showLogs" destroy-on-close>
|
|
|
<FlowLog ref="flowLogRef" :form-id="runInfo?.formId" :form-table="runInfo?.formTable" />
|
|
|
</el-drawer>
|
|
|
</div>
|
|
@@ -94,6 +94,7 @@ import { getCheckData, saveCheckWf, saveStartWf, wfStart } from '/@/api/flow/flo
|
|
|
import ShowFlowDesign from '/@/components/gFlow/showDesign.vue'
|
|
|
import UploadFile from '/@/components/upload/uploadFile.vue'
|
|
|
import FlowLog from '/@/components/gFlow/flowLog.vue'
|
|
|
+import { useI18n } from 'vue-i18n'
|
|
|
const props = defineProps({
|
|
|
saveCheckWfAttr: {
|
|
|
type: Function,
|
|
@@ -107,9 +108,10 @@ const startWfTitle = ref('')
|
|
|
const wfStartForm = ref<wfStartFormData>({} as wfStartFormData)
|
|
|
const showFlowDesignRef = ref()
|
|
|
const showFlowCheckRef = ref()
|
|
|
+const { t } = useI18n()
|
|
|
const wfStartRules = ref({
|
|
|
- wfId: [{ required: true, message: '请选择工作流', trigger: 'change' }],
|
|
|
- newType: [{ required: true, message: '请选择紧急程度', trigger: 'change' }],
|
|
|
+ wfId: [{ required: true, message: t('message.flowComponent.plsSelectWorkflow'), trigger: 'change' }],
|
|
|
+ newType: [{ required: true, message: t('message.flowComponent.plsSelectUrgency'), trigger: 'change' }],
|
|
|
})
|
|
|
const wfStartFormRef = ref<FormInstance>()
|
|
|
const wfOptions = ref<Array<WfOptionsData>>([])
|
|
@@ -118,8 +120,8 @@ const isShowFlowDesignCheck = ref(false)
|
|
|
const wfCheckForm = ref<WfCheckFormData>({} as WfCheckFormData)
|
|
|
const checkWfOpen = ref(false)
|
|
|
const wfCheckRules = ref({
|
|
|
- checkCon: [{ required: true, message: '请填写审批意见', trigger: 'input' }],
|
|
|
- wfBackFlow: [{ required: true, message: '请选择回退步骤', trigger: 'change' }],
|
|
|
+ checkCon: [{ required: true, message: t('message.flowComponent.plsFillApprovalOpinion'), trigger: 'input' }],
|
|
|
+ wfBackFlow: [{ required: true, message: t('message.flowComponent.selectRollbackStep'), trigger: 'change' }],
|
|
|
})
|
|
|
const wfCheckFormRef = ref()
|
|
|
const designInfo = ref({})
|
|
@@ -167,7 +169,7 @@ const submitWfStart = () => {
|
|
|
if (valid) {
|
|
|
console.log(wfStartForm.value)
|
|
|
saveStartWf(wfStartForm.value).then((res: any) => {
|
|
|
- ElMessage.success('发起成功')
|
|
|
+ ElMessage.success(t('message.flowComponent.startSuccess'))
|
|
|
startWfOpen.value = false
|
|
|
emit('getList')
|
|
|
})
|
|
@@ -180,7 +182,7 @@ const cancelWfStart = () => {
|
|
|
const handleStartFlow = (row: FlowDemoTableColumns | null) => {
|
|
|
const btn = row?.actionBtn
|
|
|
if (btn.title.indexOf('无审批权限') > -1) {
|
|
|
- ElMessage.error('您没有审批权限')
|
|
|
+ ElMessage.error(t('message.flowComponent.noPermission'))
|
|
|
return
|
|
|
}
|
|
|
switch (btn.type) {
|
|
@@ -286,7 +288,7 @@ const submitWfCheck = (type: string) => {
|
|
|
switch (type) {
|
|
|
case 'ok':
|
|
|
props.saveCheckWfAttr(wfCheckForm.value).then((response: any) => {
|
|
|
- ElMessage.success('审批成功')
|
|
|
+ ElMessage.success(t('message.flowComponent.approvalSuccess'))
|
|
|
checkWfOpen.value = false
|
|
|
emit('getList')
|
|
|
})
|
|
@@ -295,11 +297,11 @@ const submitWfCheck = (type: string) => {
|
|
|
doBack.value = true
|
|
|
backProcess.value = true
|
|
|
if (!wfCheckForm.value.wfBackFlow) {
|
|
|
- ElMessage.error('请选择回退步骤')
|
|
|
+ ElMessage.error(t('message.flowComponent.selectRollbackStep'))
|
|
|
return
|
|
|
}
|
|
|
props.saveCheckWfAttr(wfCheckForm.value).then((response: any) => {
|
|
|
- ElMessage.success('回退成功')
|
|
|
+ ElMessage.success(t('message.flowComponent.rollbackSuccess'))
|
|
|
checkWfOpen.value = false
|
|
|
emit('getList')
|
|
|
})
|