update 标准法规入库/变更流程-流程详情
This commit is contained in:
@@ -807,7 +807,7 @@
|
||||
top: 2px;
|
||||
}
|
||||
|
||||
.process-part-title:first-child{
|
||||
.process-part-title:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
@@ -820,6 +820,7 @@
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
/* 按钮中发那个自定义图标的样式 end */
|
||||
|
||||
.detail-page-bottom-operate-box {
|
||||
|
||||
@@ -82,5 +82,15 @@ module.exports = {
|
||||
editFlowchart: '编辑流程图',
|
||||
editFlowNode: '编辑流程节点',
|
||||
deploy: '部署'
|
||||
},
|
||||
processDetail: {
|
||||
urgeHandle: '催办',
|
||||
flowChart: '流程图',
|
||||
taskNode: '任务节点',
|
||||
taskHandler: '任务受理人',
|
||||
completionTime: '完成时间',
|
||||
timeConsuming: '耗时',
|
||||
approvalOpinion: '审批意见',
|
||||
opinionContent: '意见内容'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,5 +86,15 @@ module.exports = {
|
||||
editFlowchart: '编辑流程图',
|
||||
editFlowNode: '编辑流程节点',
|
||||
deploy: '部署'
|
||||
},
|
||||
processDetail: {
|
||||
urgeHandle: '催办',
|
||||
flowChart: '流程图',
|
||||
taskNode: '任务节点',
|
||||
taskHandler: '任务受理人',
|
||||
completionTime: '完成时间',
|
||||
timeConsuming: '耗时',
|
||||
approvalOpinion: '审批意见',
|
||||
opinionContent: '意见内容'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,8 @@ import { downloadFile, getFileAccessHttpUrl } from '../api/manage.js'
|
||||
import { previewPdf } from '../utils/previewPdf.js'
|
||||
import { Base64 } from 'js-base64'
|
||||
|
||||
// 支持预览的文件后缀
|
||||
const CAN_PREVIEW_FILE_SUFFIX = ['jpg', 'jpeg', 'png', 'raw', 'pdf', 'docx', 'doc']
|
||||
const FILE_TYPE_IMGS = ['jpg', 'jpeg', 'png', 'raw']
|
||||
const FILE_TYPE_PDF = 'pdf'
|
||||
|
||||
@@ -80,7 +82,7 @@ export default {
|
||||
}
|
||||
// 截取文件后缀名
|
||||
const fileSuffix = file.fileName ? file.fileName.split('.')[file.fileName.split('.').length - 1] : ''
|
||||
const canPreview = FILE_TYPE_IMGS.some(tt => fileSuffix.toLowerCase() === tt) || fileSuffix.toLowerCase() === FILE_TYPE_PDF
|
||||
const canPreview = CAN_PREVIEW_FILE_SUFFIX.some(tt => fileSuffix.toLowerCase() === tt)
|
||||
// 判断是否为可预览格式的文件
|
||||
if (!canPreview) {
|
||||
this.$message.loading('该文件类型不支持预览,正在为您准备下载...').then(() => {
|
||||
|
||||
@@ -67,7 +67,7 @@ const Base64 = require('js-base64').Base64
|
||||
// 支持预览的文件类型
|
||||
const CAN_PREVIEW_FILE_TYPE = ['pdf', 'image']
|
||||
// 支持预览的文件后缀
|
||||
const CAN_PREVIEW_FILE_SUFFIX = ['jpg', 'jpeg', 'png', 'raw', 'pdf']
|
||||
const CAN_PREVIEW_FILE_SUFFIX = ['jpg', 'jpeg', 'png', 'raw', 'pdf', 'docx', 'doc']
|
||||
const uidGenerator = () => {
|
||||
return '-' + parseInt(Math.random() * 10000 + 1, 10)
|
||||
}
|
||||
|
||||
@@ -705,6 +705,14 @@ body {
|
||||
display: block;
|
||||
margin-bottom: 24px;
|
||||
white-space: nowrap;
|
||||
|
||||
.ant-btn {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.ant-btn:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -116,6 +116,8 @@ import { getQuizById, answerQuiz, setOrCancelTop, deleteAnswer } from '@/api/bus
|
||||
import { getFileInfo } from '@/api/api'
|
||||
import { previewPdf } from '@/utils/previewPdf'
|
||||
|
||||
// 支持预览的文件后缀
|
||||
const CAN_PREVIEW_FILE_SUFFIX = ['jpg', 'jpeg', 'png', 'raw', 'pdf', 'docx', 'doc']
|
||||
const FILE_TYPE_IMGS = ['jpg', 'jpeg', 'png', 'raw']
|
||||
const FILE_TYPE_PDF = 'pdf'
|
||||
const Base64 = require('js-base64').Base64
|
||||
@@ -189,7 +191,7 @@ export default {
|
||||
}
|
||||
// 截取文件后缀名
|
||||
const fileSuffix = file.fileName ? file.fileName.split('.')[file.fileName.split('.').length - 1] : ''
|
||||
const canPreview = FILE_TYPE_IMGS.some(tt => fileSuffix.toLowerCase() === tt) || fileSuffix.toLowerCase() === FILE_TYPE_PDF
|
||||
const canPreview = CAN_PREVIEW_FILE_SUFFIX.some(tt => fileSuffix.toLowerCase() === tt)
|
||||
// 判断是否为可预览格式的文件
|
||||
if (!canPreview) {
|
||||
this.$message.loading('该文件类型不支持预览,正在为您准备下载...').then(() => {
|
||||
|
||||
@@ -160,6 +160,8 @@ import { previewPdf } from '@/utils/previewPdf'
|
||||
import { getFileAccessHttpUrl } from '@/api/manage'
|
||||
import { getFileInfo } from '../../../../api/api'
|
||||
|
||||
// 支持预览的文件后缀
|
||||
const CAN_PREVIEW_FILE_SUFFIX = ['jpg', 'jpeg', 'png', 'raw', 'pdf', 'docx', 'doc']
|
||||
const FILE_TYPE_IMGS = ['jpg', 'jpeg', 'png', 'raw']
|
||||
const FILE_TYPE_PDF = 'pdf'
|
||||
const Base64 = require('js-base64').Base64
|
||||
@@ -212,7 +214,7 @@ export default {
|
||||
}
|
||||
// 截取文件后缀名
|
||||
const fileSuffix = file.fileName ? file.fileName.split('.')[file.fileName.split('.').length - 1] : ''
|
||||
const canPreview = FILE_TYPE_IMGS.some(tt => fileSuffix.toLowerCase() === tt) || fileSuffix.toLowerCase() === FILE_TYPE_PDF
|
||||
const canPreview = CAN_PREVIEW_FILE_SUFFIX.some(tt => fileSuffix.toLowerCase() === tt)
|
||||
// 判断是否为可预览格式的文件
|
||||
if (!canPreview) {
|
||||
this.$message.loading('该文件类型不支持预览,正在为您准备下载...').then(() => {
|
||||
|
||||
@@ -57,7 +57,9 @@
|
||||
<div class="detail-page-process-manuscript-item" v-for="(formItem, formIndex) in form[part]" :key="formItem.id">
|
||||
<div class="detail-page-process-manuscript-title">
|
||||
<span>{{ formItem.dbFieldTxt }}</span>
|
||||
<a-button v-if="formIndex === 0" type="primary" ghost icon="file-text">{{ $t('enterpriseStandardLibrary.standard.standardResolutionSheet') }}</a-button>
|
||||
<a-button v-if="formIndex === 0" type="primary" ghost icon="file-text">{{ $t('enterpriseStandardLibrary.standard.standardResolutionSheet')
|
||||
}}
|
||||
</a-button>
|
||||
</div>
|
||||
<template v-if="detailData[formItem.dbFieldName]">
|
||||
<div class="detail-page-process-manuscript-file" v-for="file in detailData[formItem.dbFieldName + 'List']" :key="file.id">
|
||||
@@ -130,6 +132,8 @@ import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
import { previewPdf } from '@/utils/previewPdf'
|
||||
import { getFileInfo } from '../../../../api/api'
|
||||
|
||||
// 支持预览的文件后缀
|
||||
const CAN_PREVIEW_FILE_SUFFIX = ['jpg', 'jpeg', 'png', 'raw', 'pdf', 'docx', 'doc']
|
||||
const FILE_TYPE_IMGS = ['jpg', 'jpeg', 'png', 'raw']
|
||||
const FILE_TYPE_PDF = 'pdf'
|
||||
const Base64 = require('js-base64').Base64
|
||||
@@ -240,7 +244,7 @@ export default {
|
||||
}
|
||||
// 截取文件后缀名
|
||||
const fileSuffix = file.fileName ? file.fileName.split('.')[file.fileName.split('.').length - 1] : ''
|
||||
const canPreview = FILE_TYPE_IMGS.some(tt => fileSuffix.toLowerCase() === tt) || fileSuffix.toLowerCase() === FILE_TYPE_PDF
|
||||
const canPreview = CAN_PREVIEW_FILE_SUFFIX.some(tt => fileSuffix.toLowerCase() === tt)
|
||||
// 判断是否为可预览格式的文件
|
||||
if (!canPreview) {
|
||||
this.$message.loading('该文件类型不支持预览,正在为您准备下载...').then(() => {
|
||||
@@ -296,13 +300,14 @@ export default {
|
||||
|
||||
<style scoped lang="less">
|
||||
// 单独设置此页面一行三个的label
|
||||
.detail-page-part-form-item label {
|
||||
.detail-page-part-form-item label {
|
||||
width: 8.5em;
|
||||
}
|
||||
|
||||
.detail-page-part-table {
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
.file-box {
|
||||
flex: 1;
|
||||
width: 0;
|
||||
|
||||
@@ -163,7 +163,8 @@ const OverseasApi = {
|
||||
share: shareOverseasStandard // 分享
|
||||
}
|
||||
|
||||
const FILE_TYPE_IMGS = ['jpg', 'jpeg', 'png', 'raw']
|
||||
// 支持预览的文件后缀
|
||||
const CAN_PREVIEW_FILE_SUFFIX = ['jpg', 'jpeg', 'png', 'raw', 'pdf', 'docx', 'doc']
|
||||
const FILE_TYPE_PDF = 'pdf'
|
||||
|
||||
export default {
|
||||
@@ -356,7 +357,7 @@ export default {
|
||||
}
|
||||
// 截取文件后缀名
|
||||
const fileSuffix = file.fileName ? file.fileName.split('.')[file.fileName.split('.').length - 1] : ''
|
||||
const canPreview = FILE_TYPE_IMGS.some(tt => fileSuffix.toLowerCase() === tt) || fileSuffix.toLowerCase() === FILE_TYPE_PDF
|
||||
const canPreview = CAN_PREVIEW_FILE_SUFFIX.some(tt => fileSuffix.toLowerCase() === tt)
|
||||
// 判断是否为可预览格式的文件
|
||||
if (!canPreview) {
|
||||
this.$message.loading('该文件类型不支持预览,正在为您准备下载...').then(() => {
|
||||
|
||||
@@ -22,7 +22,6 @@ import { getFlowNodeList, deleteFlowNode } from '../../../api/workCenter.js'
|
||||
import insertCss from 'insert-css'
|
||||
import FlowNodeModal from './modules/FlowNodeModal.vue'
|
||||
import DeleteIcon from '../../../assets/image/iconDelete.svg'
|
||||
import { postAction } from '../../../api/manage.js'
|
||||
|
||||
// 流程图用到的属性
|
||||
const ChartAttrs = {
|
||||
|
||||
+88
-10
@@ -1,22 +1,36 @@
|
||||
<template>
|
||||
<internal-detail-page :title="pageTitle" :content-padding="0">
|
||||
<div class="scroll-content">
|
||||
<!--流程信息-->
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<div class="table-operator-tab">
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@click="switchChange('base')">基础信息
|
||||
</a>
|
||||
<a class="switch-item" :class="switchValue === 'user' ? 'table-operator-tab-active' : ''"
|
||||
@click="switchChange('user')">人员信息
|
||||
</a>
|
||||
</div>
|
||||
</template>
|
||||
<!--基本信息-->
|
||||
<div class="scroll-content" v-show="switchValue === 'base'">
|
||||
<div class="process-part-title">流程信息</div>
|
||||
<a-form :form="processInfoForm">
|
||||
<a-row>
|
||||
<a-col :span="12">
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('standardRegulationLibrary.nodeName')">
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('standardRegulationLibrary.nodeName')"
|
||||
<!--流程名称-->
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('processName')">
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processName')"
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
:maxLength="50"
|
||||
disabled
|
||||
v-decorator="['nodeName']" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('standardRegulationLibrary.nodeName')">
|
||||
<!--截止日期-->
|
||||
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('expirationDate')">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('pleaseSelect')"
|
||||
:placeholder="$t('pleaseSelect') + $t('expirationDate')"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
@@ -24,8 +38,9 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('standardRegulationLibrary.nodeName')">
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('standardRegulationLibrary.nodeName')"
|
||||
<!--流程说明-->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('processExplain')">
|
||||
<a-input :placeholder="$t('pleaseEnter') + $t('processExplain')"
|
||||
@change="event => event.target.value = event.target.value.trim()"
|
||||
:maxLength="500"
|
||||
type="textarea"
|
||||
@@ -245,6 +260,14 @@
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
<!--人员信息-->
|
||||
<div class="scroll-content p-0" v-show="switchValue === 'user'">
|
||||
<process-detail-list>
|
||||
<template #personnelInfo>
|
||||
<personnel-info :data="personalInfoData" />
|
||||
</template>
|
||||
</process-detail-list>
|
||||
</div>
|
||||
<div class="bottom-operate-box">
|
||||
<!--保存-->
|
||||
<a-button type="primary" :loading="loading" @click="handleSave">{{ $t('preservation') }}</a-button>
|
||||
@@ -266,10 +289,12 @@ import JMultipleDatePicker from '../../../components/JMultipleDatePicker.vue'
|
||||
import UserSelection from '../../../components/selection/UserSelection.vue'
|
||||
import StandardSelection from '../../../components/selection/StandardSelection.vue'
|
||||
import UploadFile from '../../../components/UploadFile.vue'
|
||||
import PersonnelInfo from '../../../components/PersonnelInfo.vue'
|
||||
import ProcessDetailList from '../../../components/ProcessDetailList.vue'
|
||||
|
||||
export default {
|
||||
name: 'StandardEntryOrChangeProcess',
|
||||
components: { UploadFile, StandardSelection, UserSelection, JMultipleDatePicker, InternalDetailPage },
|
||||
components: { PersonnelInfo, UploadFile, StandardSelection, UserSelection, JMultipleDatePicker, InternalDetailPage, ProcessDetailList },
|
||||
data () {
|
||||
return {
|
||||
FieldType,
|
||||
@@ -318,7 +343,53 @@ export default {
|
||||
uploadName: '',
|
||||
sourceOptions: [],
|
||||
approvalInfoForm: this.$form.createForm(this),
|
||||
loading: false
|
||||
loading: false,
|
||||
switchValue: 'user',
|
||||
personalInfoData: [ // 人员信息的数据
|
||||
{
|
||||
id: 1,
|
||||
nodeName: '主起草人发起',
|
||||
nodeRoleName: '发起人',
|
||||
canChoose: false
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
nodeName: '部所联络人校对',
|
||||
nodeRoleName: '部所联络人',
|
||||
canChoose: true,
|
||||
chooseType: 'radio',
|
||||
chooseSource: 'contactManage'
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
nodeName: '专家审批',
|
||||
nodeRoleName: '专家',
|
||||
canChoose: true,
|
||||
chooseType: 'checkbox',
|
||||
chooseSource: 'workGroup'
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
nodeName: '发起人主管级领导审批',
|
||||
nodeRoleName: '发起人主管级领导',
|
||||
canChoose: true,
|
||||
chooseType: 'radio'
|
||||
},
|
||||
// {
|
||||
// id: 5,
|
||||
// nodeName: '发起人主管级上级领导审批',
|
||||
// nodeRoleName: '发起人主管级上级领导',
|
||||
// canChoose: true,
|
||||
// chooseType: 'radio'
|
||||
// },
|
||||
// {
|
||||
// id: 6,
|
||||
// nodeName: '标准化审批',
|
||||
// nodeRoleName: '标准化',
|
||||
// canChoose: true,
|
||||
// chooseType: 'radio'
|
||||
// }
|
||||
]
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -518,6 +589,9 @@ export default {
|
||||
handleOperationTypeChange () {
|
||||
console.log(this.basicFormInfo.operationType)
|
||||
},
|
||||
switchChange (value) {
|
||||
this.switchValue = value
|
||||
},
|
||||
handleSave () {
|
||||
|
||||
},
|
||||
@@ -608,4 +682,8 @@ export default {
|
||||
overflow: auto;
|
||||
padding: 32px;
|
||||
}
|
||||
|
||||
.p-0 {
|
||||
padding: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user