Merge pull request 'master' (#319) from master into prod
Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/319
This commit is contained in:
@@ -549,3 +549,30 @@ html, body, #app, .el-container, .el-aside, .el-main {
|
||||
right: 15px;
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
.approval-record {
|
||||
padding-bottom: 30px;
|
||||
position: relative;
|
||||
.approval-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
.diagram {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.base-title {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
//.el-switch {
|
||||
// margin-left: 15px;
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
.process {
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
<el-button type="primary" link @click="handleDownload(singleFile)" style="font-size: 16px">
|
||||
{{ singleFile ? singleFile?.originalFileName : formData.singleFile?.originalFileName }}
|
||||
</el-button>
|
||||
<el-button type="danger" link @click="deleteSingleFile(singleFile,1)">删除</el-button>
|
||||
<el-button type="danger" link @click="deleteSingleFile(singleFile?singleFile:formData.singleFile,1)">删除</el-button>
|
||||
</template>
|
||||
<template v-else-if="!preview||JSON.stringify(singleFile) == '{}'||singleFile==null">
|
||||
<template v-else-if="!preview||JSON.stringify(singleFile) == '{}'||singleFile==null||formData.singleFile==null">
|
||||
<file-upload @getFile="getAttachment" :showFileList="showFileList" :multiple="false" :maxSize="1"
|
||||
:disabled="isSingleFile" @delete="deleteAttachment"/>
|
||||
</template>
|
||||
@@ -130,7 +130,7 @@ const rules = reactive({
|
||||
attachment: [{required: true, message: '请上传附件', trigger: ['blur', 'change']}],
|
||||
})
|
||||
const applyForm = ref()
|
||||
const singleFile = ref()
|
||||
const singleFile = ref(props.formData.singleFile)
|
||||
const isSingleFile = ref(false)
|
||||
const allFileList = ref([])
|
||||
watch(() => props.showTable, (newVal) => {
|
||||
|
||||
@@ -18,11 +18,20 @@
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="approval-record">
|
||||
<baseTitle title="审批记录"></baseTitle>
|
||||
<div class="approval-title">
|
||||
<baseTitle title="审批记录"></baseTitle>
|
||||
<div class="diagram">
|
||||
<div class="base-title">流程图</div>
|
||||
<el-switch
|
||||
v-model="changeDiagram"
|
||||
style="--el-switch-on-color: #13ce66; --el-switch-off-color:#BEA266"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="process">
|
||||
<operation-render v-if="processViewer && data.operationList && data.operationList.length > 0" :operation-list="data.operationList"
|
||||
<operation-render v-if="processViewer && data.operationList && data.operationList.length > 0&&!changeDiagram" :operation-list="data.operationList"
|
||||
:state="data.state"/>
|
||||
<process-diagram-viewer v-if="processViewer" :id-name="idName?idName:type"/>
|
||||
<process-diagram-viewer v-if="processViewer&&changeDiagram" :id-name="idName?idName:type"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -34,6 +43,7 @@ import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.v
|
||||
import {ElLoading} from 'element-plus';
|
||||
import {downloadFile} from "@/api/project-demand";
|
||||
|
||||
const changeDiagram = ref(false)
|
||||
const props = defineProps({
|
||||
formData: {
|
||||
type: Object,
|
||||
@@ -83,7 +93,16 @@ const schema = computed(() => {
|
||||
prop: 'preProcess',
|
||||
colProps: {
|
||||
span: 24
|
||||
}
|
||||
},
|
||||
component: () => (
|
||||
<div>
|
||||
{
|
||||
props.formData.preProcess?
|
||||
<span><a target="_blank" style={{color: '#409EFF', cursor: 'pointer'}} href={props.formData.preProcessBaseUrl + props.formData.preProcess.requestId}>{props.formData.preProcess.requestName}</a> </span> :
|
||||
<span>{'--'}</span>
|
||||
}
|
||||
</div>
|
||||
)
|
||||
},
|
||||
{
|
||||
label: '项目立项附件',
|
||||
@@ -115,7 +134,16 @@ const schema = computed(() => {
|
||||
prop: 'preProcess',
|
||||
colProps: {
|
||||
span: 24
|
||||
}
|
||||
},
|
||||
component: () => (
|
||||
<div>
|
||||
{
|
||||
props.formData.preProcess?
|
||||
<span><a target="_blank" style={{color: '#409EFF', cursor: 'pointer'}} href={props.formData.preProcessBaseUrl + props.formData.preProcess.requestId}>{props.formData.preProcess.requestName}</a> </span> :
|
||||
<span>{'--'}</span>
|
||||
}
|
||||
</div>
|
||||
)
|
||||
},
|
||||
{
|
||||
label: '项目验收附件',
|
||||
|
||||
@@ -57,11 +57,21 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div class="approval-record">
|
||||
<baseTitle title="审批记录"></baseTitle>
|
||||
<div class="approval-title">
|
||||
<baseTitle title="审批记录"></baseTitle>
|
||||
<div class="diagram">
|
||||
<div class="base-title">流程图</div>
|
||||
<el-switch
|
||||
v-model="changeDiagram"
|
||||
style="--el-switch-on-color: #13ce66; --el-switch-off-color:#BEA266"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="process">
|
||||
<operation-render v-if="processViewer && data.operationList && data.operationList.length > 0" :operation-list="data.operationList"
|
||||
<operation-render v-if="processViewer && data.operationList && data.operationList.length > 0&&!changeDiagram"
|
||||
:operation-list="data.operationList"
|
||||
:state="data.state"/>
|
||||
<process-diagram-viewer v-if="processViewer" id-name="collectionProcess"/>
|
||||
<process-diagram-viewer v-if="processViewer&&changeDiagram" id-name="collectionProcess"/>
|
||||
</div>
|
||||
</div>
|
||||
</el-form>
|
||||
@@ -108,7 +118,7 @@ const props = defineProps({
|
||||
default: ''
|
||||
}
|
||||
})
|
||||
|
||||
const changeDiagram = ref(false)
|
||||
const _value = computed({
|
||||
get() {
|
||||
return props.value;
|
||||
@@ -142,12 +152,4 @@ watch(() => props.processViewer, (newVal) => {
|
||||
:deep(.el-empty__description) {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.approval-record {
|
||||
padding-bottom: 30px;
|
||||
|
||||
.process {
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
<el-form :model="localFormData" ref="formRef" label-width="auto" :rules="rules" v-if="step!=='50'">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="前置流程">
|
||||
<div @click="handleShowPreTable">点击</div>
|
||||
<!-- <el-select v-model="localFormData.preProcess" placeholder="请选择前置流程" clearable filterable>-->
|
||||
<!-- <el-option v-for="item in preProcessList" :key="item.id" :label="item.label" :value="item.value">-->
|
||||
<!-- </el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<el-form-item label="前置流程" :required="true" prop="requestName">
|
||||
<a :href="localFormData.preProcess?.baseUrl" target="_blank"
|
||||
style="color: #2a99ff;margin-right: 10px;cursor: pointer">{{ localFormData.preProcess?.requestName }}</a>
|
||||
<el-button color="#DED0B2" @click="handleShowPreTable">
|
||||
{{ localFormData.preProcess?.requestName ? '更改' : '请选择' }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -18,15 +18,24 @@
|
||||
@getAttachment="getAttachment"
|
||||
@getOtherFile="getOtherFile" :showFileList="true" :formData="localFormData"
|
||||
:preview="mode == 'resubmit'"/>
|
||||
<div v-if="mode === 'resubmit'">
|
||||
<baseTitle title="审批记录"></baseTitle>
|
||||
<div v-if="mode === 'resubmit'&&!changeDiagram">
|
||||
<div class="approval-title">
|
||||
<baseTitle title="审批记录"></baseTitle>
|
||||
<div class="diagram">
|
||||
<div class="base-title">流程图</div>
|
||||
<el-switch
|
||||
v-model="changeDiagram"
|
||||
style="--el-switch-on-color: #13ce66; --el-switch-off-color:#BEA266"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="process">
|
||||
<operation-render :operation-list="data.operationList" :state="data.state"/>
|
||||
</div>
|
||||
</div>
|
||||
<baseTitle title="流程"></baseTitle>
|
||||
<div class="approval-record">
|
||||
<process-diagram-viewer mode="view" :idName="title" v-if="processDiagramViewer"/>
|
||||
<process-diagram-viewer mode="view" :idName="title" v-if="processDiagramViewer&&changeDiagram"/>
|
||||
</div>
|
||||
<div class="oper-page-btn">
|
||||
<el-button color="#DED0B2" v-if="mode === 'submit'" @click="handleSubmit">提交</el-button>
|
||||
@@ -34,13 +43,17 @@
|
||||
<el-button @click="handleBack">返回</el-button>
|
||||
</div>
|
||||
<el-dialog title="前置流程" v-model="showPreTable" width="80%">
|
||||
<el-form :model="searchPreProcess" label-width="auto">
|
||||
<el-form :model="preProcessForm" inline>
|
||||
<el-form-item label="请求名称">
|
||||
<el-input v-model="searchPreProcess.requestName" placeholder="请输入请求名称" clearable>
|
||||
<el-input v-model="preProcessForm.requestName" placeholder="请输入请求名称" clearable>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button color="#DED0B2" @click="searchPreProcess">搜索</el-button>
|
||||
<el-button @click="handleReset">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table :data="preProcessList" stripe v-loading="loading">
|
||||
<el-table :data="preProcessList" stripe v-loading="loading">
|
||||
<el-table-column prop="requestId" label="请求id"></el-table-column>
|
||||
<el-table-column prop="requestName" label="请求名称"></el-table-column>
|
||||
<el-table-column prop="lastOperatorName" label="最后操作人名称"></el-table-column>
|
||||
@@ -50,12 +63,13 @@
|
||||
<el-table-column prop="createTime" label="创建时间"></el-table-column>
|
||||
<el-table-column label="操作" align="center">
|
||||
<template #default="scope">
|
||||
<a :href="scope.row.baseUrl" target="_blank" style="color: #2a99ff">查看详情</a>
|
||||
<el-button @click="chooseProProcess(scope.row)">选择</el-button>
|
||||
<a :href="scope.row.baseUrl" target="_blank" style="color: #2a99ff">查看详情</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!-- <paging :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :page-sizes="[10, 20, 30, 40,50]"-->
|
||||
<!-- :total="total" @changeSize="handleSizeChange" @goPage="handleCurrentChange"/>-->
|
||||
<paging :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :page-sizes="[10, 20, 30, 40,50]"
|
||||
:total="total" @changeSize="handleSizeChange" @goPage="handleCurrentChange"/>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
@@ -66,21 +80,23 @@ import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.v
|
||||
import {ElNotification} from "element-plus";
|
||||
import {
|
||||
getApplyProcess,
|
||||
projectApply,
|
||||
resubmitApply,
|
||||
getPreProcess,
|
||||
getProjectCheckProcess,
|
||||
getProjectConclusionProcess,
|
||||
projectApply,
|
||||
projectCheck,
|
||||
resubmitCheck,
|
||||
projectConclusion,
|
||||
resubmitConclusion,
|
||||
getProjectConclusionProcess
|
||||
resubmitApply,
|
||||
resubmitCheck,
|
||||
resubmitConclusion
|
||||
} from "@/api/project-manage";
|
||||
import {useProcessStore} from '@/stores/processStore.js';
|
||||
import {useTagsView} from '@/stores/tagsview.js'
|
||||
import {getPreProcess} from "@/api/project-manage";
|
||||
import Paging from "@/components/pagination/index.vue";
|
||||
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
const changeDiagram = ref(false)
|
||||
const emit = defineEmits(["getAttachment", "getOtherFile"])
|
||||
const props = defineProps({
|
||||
title: {
|
||||
@@ -110,21 +126,28 @@ const props = defineProps({
|
||||
})
|
||||
const preProcessList = ref([])
|
||||
//暂存数据
|
||||
const currentList=ref([])
|
||||
const searchPreProcess = ref({
|
||||
requestName:''
|
||||
const currentList = ref([])
|
||||
const total = ref(0)
|
||||
const preProcessForm = reactive({
|
||||
requestName: ''
|
||||
})
|
||||
const pageInfo = reactive({
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
})
|
||||
const rules = reactive({
|
||||
// requirementName: [{required: true, message: '请选择前置流程', trigger: 'blur'}],
|
||||
requestName: [{required: true, message: '请选择前置流程', trigger: 'blur'}],
|
||||
})
|
||||
const tagsViewStore = useTagsView()
|
||||
const processStore = useProcessStore()
|
||||
const otherFileList = ref([])
|
||||
const localFormData = ref({})
|
||||
const localFormData = ref({
|
||||
preProcess: {
|
||||
requestId: null,
|
||||
requestName: '',
|
||||
baseUrl: ''
|
||||
}
|
||||
})
|
||||
const attachment = ref()
|
||||
const showPreTable = ref(false)
|
||||
const showTable = ref(true)
|
||||
@@ -133,19 +156,55 @@ const processDiagramViewer = ref(false)
|
||||
const name = ref(router.currentRoute.value.name)
|
||||
const deploymentId = ref()
|
||||
const projectId = ref(route.query.projectId)
|
||||
const searchPreProcess = () => {
|
||||
getPreProcessList()
|
||||
|
||||
}
|
||||
const handleReset = () => {
|
||||
preProcessForm.requestName = ''
|
||||
getPreProcessList()
|
||||
}
|
||||
const handleShowPreTable = () => {
|
||||
showPreTable.value = true
|
||||
getPreProcessList()
|
||||
}
|
||||
const getPreProcessList = () => {
|
||||
// loading.value=true
|
||||
loading.value = true
|
||||
getPreProcess().then(res => {
|
||||
console.log('浅灰的', res)
|
||||
// loading.value=false
|
||||
// baseUrl.value=res.data.baseUrl
|
||||
// currentList.value=res.data
|
||||
preProcessList.value = res.data.slice(0,10)
|
||||
loading.value = false
|
||||
let searchArray = []
|
||||
let regexPattern = ("%" + preProcessForm.requestName + "%").replace(/%/g, '.*').replace(/_/g, '.');
|
||||
let regex = new RegExp('^' + regexPattern + '$');
|
||||
res.data.filter((item) => {
|
||||
if (regex.test(item.requestName)) {
|
||||
searchArray.push(item)
|
||||
}
|
||||
})
|
||||
total.value = searchArray.length
|
||||
currentList.value = searchArray
|
||||
preProcessList.value = currentList.value.slice(0, 10)
|
||||
})
|
||||
}
|
||||
const chooseProProcess = (item) => {
|
||||
localFormData.value.preProcess = {
|
||||
requestId: item.requestId,
|
||||
requestName: item.requestName,
|
||||
baseUrl: item.baseUrl
|
||||
}
|
||||
showPreTable.value = false
|
||||
}
|
||||
|
||||
//切换每页显示条数
|
||||
const handleSizeChange = (val) => {
|
||||
pageInfo.pageSize = val;
|
||||
preProcessList.value = currentList.value.slice((pageInfo.pageNum - 1) * val, pageInfo.pageNum * val)
|
||||
};
|
||||
|
||||
//点击页码进行分页功能
|
||||
const handleCurrentChange = (val) => {
|
||||
pageInfo.pageNum = val;
|
||||
preProcessList.value = currentList.value.slice((val - 1) * pageInfo.pageSize, val * pageInfo.pageSize)
|
||||
};
|
||||
const getTitleName = (type) => {
|
||||
switch (type) {
|
||||
case 'apply':
|
||||
@@ -190,9 +249,13 @@ const getFileParam = (item) => {
|
||||
}
|
||||
}
|
||||
const handleSubmit = async () => {
|
||||
// if (!formRef.value) return
|
||||
// formRef.value.validate(async (valid) => {
|
||||
// if (!valid) return
|
||||
if (localFormData.value.preProcess === undefined) {
|
||||
ElNotification({
|
||||
title: '提示',
|
||||
message: '请选择前置流程',
|
||||
type: 'error'
|
||||
})
|
||||
}
|
||||
let files = []
|
||||
if (props.mode === 'resubmit') {
|
||||
attachment.value.allFileList.forEach(item => {
|
||||
@@ -207,9 +270,9 @@ const handleSubmit = async () => {
|
||||
// localFormData.value.singleFile = getFileParam(localFormData.value.singleFile)
|
||||
// }
|
||||
console.log('attachment.value.singleFile', attachment.value, attachment.value.singleFile)
|
||||
if (localFormData.value.singleFile) {
|
||||
|
||||
} else {
|
||||
// if (localFormData.value.singleFile) {
|
||||
//
|
||||
// } else {
|
||||
if (attachment.value.singleFile == null) {
|
||||
attachment.value.validate()
|
||||
ElNotification({
|
||||
@@ -221,14 +284,15 @@ const handleSubmit = async () => {
|
||||
} else {
|
||||
attachment.value.clearValidate()
|
||||
}
|
||||
}
|
||||
// }
|
||||
|
||||
let params = {
|
||||
deploymentId: deploymentId.value,
|
||||
requirementId: route.query.id,
|
||||
fileList: files,
|
||||
singleFile: localFormData.value.singleFile,
|
||||
singleFile: attachment.value.singleFile,
|
||||
projectId: projectId.value,
|
||||
preProcess: JSON.stringify(localFormData.value.preProcess)
|
||||
}
|
||||
console.log('params', params)
|
||||
let res
|
||||
@@ -272,7 +336,6 @@ const handleSubmit = async () => {
|
||||
})
|
||||
}
|
||||
}
|
||||
// })
|
||||
}
|
||||
const init = async () => {
|
||||
let id = projectId.value
|
||||
@@ -311,7 +374,6 @@ watchEffect(() => {
|
||||
return Object.keys(props.formData).length && (localFormData.value = props.formData)
|
||||
})
|
||||
|
||||
getPreProcessList()
|
||||
onMounted(async () => {
|
||||
await init()
|
||||
})
|
||||
|
||||
@@ -64,11 +64,21 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div class="approval-record">
|
||||
<baseTitle title="审批记录"></baseTitle>
|
||||
<div class="approval-title">
|
||||
<baseTitle title="审批记录"></baseTitle>
|
||||
<div class="diagram">
|
||||
<div class="base-title">流程图</div>
|
||||
<el-switch
|
||||
v-model="changeDiagram"
|
||||
style="--el-switch-on-color: #13ce66; --el-switch-off-color:#BEA266"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="process">
|
||||
<operation-render v-if="processViewer" :operation-list="data.operationList"
|
||||
<operation-render v-if="processViewer && data.operationList && data.operationList.length > 0&&!changeDiagram"
|
||||
:operation-list="data.operationList"
|
||||
:state="data.state"/>
|
||||
<process-diagram-viewer v-if="processViewer" id-name="fundProcess"/>
|
||||
<process-diagram-viewer v-if="processViewer&&changeDiagram" id-name="fundProcess"/>
|
||||
</div>
|
||||
</div>
|
||||
</el-form>
|
||||
@@ -83,6 +93,7 @@ import OperationRender from '@/views/workflow/common/OperationRender.vue'
|
||||
import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.vue'
|
||||
import {downloadFile} from "@/api/project-demand";
|
||||
|
||||
const changeDiagram = ref(false)
|
||||
const emit = defineEmits(['getInfo', "update:formData"])
|
||||
const form = ref()
|
||||
|
||||
|
||||
@@ -151,11 +151,20 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div class="approval-record">
|
||||
<baseTitle title="审批记录"></baseTitle>
|
||||
<div class="approval-title">
|
||||
<baseTitle title="审批记录"></baseTitle>
|
||||
<div class="diagram">
|
||||
<div class="base-title">流程图</div>
|
||||
<el-switch
|
||||
v-model="changeDiagram"
|
||||
style="--el-switch-on-color: #13ce66; --el-switch-off-color:#BEA266"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="process">
|
||||
<operation-render v-if="processViewer && data.operationList && data.operationList.length > 0" :operation-list="data.operationList"
|
||||
<operation-render v-if="processViewer && data.operationList && data.operationList.length > 0&&!changeDiagram" :operation-list="data.operationList"
|
||||
:state="data.state"/>
|
||||
<process-diagram-viewer v-if="processViewer" id-name="summaryProcess"/>
|
||||
<process-diagram-viewer v-if="processViewer&&changeDiagram" id-name="summaryProcess"/>
|
||||
</div>
|
||||
</div>
|
||||
</el-form>
|
||||
@@ -202,6 +211,7 @@ const props = defineProps({
|
||||
default: ''
|
||||
}
|
||||
})
|
||||
const changeDiagram = ref(false)
|
||||
const localFormData = ref({})
|
||||
const router = useRouter()
|
||||
const fundOption = ref([])
|
||||
|
||||
@@ -45,11 +45,11 @@ const searchConfig = reactive([
|
||||
cacheKey: 'project_cost',
|
||||
}
|
||||
}, {
|
||||
label: '研发阶段',
|
||||
label: '项目阶段',
|
||||
prop: 'researchStage',
|
||||
component: shallowRef(fvSelect),
|
||||
props: {
|
||||
placeholder: '请选择研发阶段查询',
|
||||
placeholder: '请选择项目阶段查询',
|
||||
clearable: true,
|
||||
filterable: true,
|
||||
checkStrictly: true,
|
||||
@@ -102,6 +102,7 @@ const tableConfig = reactive({
|
||||
prop: 'projectCost',
|
||||
label: '项目费用',
|
||||
align: 'center',
|
||||
showOverflowTooltip: false,
|
||||
currentRender: ({row, index}) => {
|
||||
if (row.projectCost !== null) {
|
||||
return (<Tag dictType={'project_cost'} value={row.projectCost}/>)
|
||||
@@ -112,8 +113,9 @@ const tableConfig = reactive({
|
||||
},
|
||||
{
|
||||
prop: 'researchStage',
|
||||
label: '研发阶段',
|
||||
label: '项目阶段',
|
||||
align: 'center',
|
||||
showOverflowTooltip: false,
|
||||
currentRender: ({row, index}) => {
|
||||
if (row.researchStage&&row.researchStage !== null&&row.researchStage!==undefined) {
|
||||
return (<Tag dictType={'research_stage'} value={row.researchStage}/>)
|
||||
@@ -134,6 +136,7 @@ const tableConfig = reactive({
|
||||
prop: 'source',
|
||||
label: '来源',
|
||||
align: 'center',
|
||||
showOverflowTooltip: false,
|
||||
currentRender: ({row, index}) => {
|
||||
if (row.source&&row.source !== null&&row.source!==undefined) {
|
||||
return (<Tag dictType={'ledger_source'} value={row.source}/>)
|
||||
|
||||
@@ -37,11 +37,20 @@
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="approval-record">
|
||||
<baseTitle title="审批记录"></baseTitle>
|
||||
<div class="approval-title">
|
||||
<baseTitle title="审批记录"></baseTitle>
|
||||
<div class="diagram">
|
||||
<div class="base-title">流程图</div>
|
||||
<el-switch
|
||||
v-model="changeDiagram"
|
||||
style="--el-switch-on-color: #13ce66; --el-switch-off-color:#BEA266"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="process">
|
||||
<operation-render v-if="shareProcessViewer" :operation-list="shareData.operationList"
|
||||
<operation-render v-if="shareProcessViewer&& shareData.operationList && shareData.operationList.length > 0&&!changeDiagram" :operation-list="shareData.operationList"
|
||||
:state="shareData.state"/>
|
||||
<process-diagram-viewer v-if="shareProcessViewer" id-name="shareProcess"/>
|
||||
<process-diagram-viewer v-if="shareProcessViewer&&changeDiagram" id-name="shareProcess"/>
|
||||
</div>
|
||||
</div>
|
||||
<opinion v-if="shareData.taskId" :formData="shareData.formData" :taskId="shareData.taskId" v-model:value="auditOpinion"></opinion>
|
||||
@@ -55,6 +64,7 @@ import {ElNotification} from "element-plus";
|
||||
import {useProcessStore} from '@/stores/processStore.js';
|
||||
import {getAllocationDetail} from "@/api/expense-manage";
|
||||
|
||||
const changeDiagram = ref(false)
|
||||
const processStore = useProcessStore()
|
||||
const route = useRoute()
|
||||
const shareData = ref({})
|
||||
|
||||
@@ -91,6 +91,7 @@ const tableConfig = reactive({
|
||||
prop: 'oper',
|
||||
label: '操作',
|
||||
align: 'center',
|
||||
fixed:'right',
|
||||
showOverflowTooltip: false,
|
||||
currentRender: ({row, index}) => {
|
||||
let btn = []
|
||||
|
||||
@@ -69,11 +69,11 @@ const searchConfig = reactive([
|
||||
cacheKey: 'project_cost',
|
||||
}
|
||||
}, {
|
||||
label: '研发阶段',
|
||||
label: '项目阶段',
|
||||
prop: 'researchStage',
|
||||
component: shallowRef(fvSelect),
|
||||
props: {
|
||||
placeholder: '请选择研发阶段查询',
|
||||
placeholder: '请选择项目阶段查询',
|
||||
clearable: true,
|
||||
filterable: true,
|
||||
checkStrictly: true,
|
||||
@@ -131,7 +131,7 @@ const tableConfig = reactive({
|
||||
},
|
||||
{
|
||||
prop: 'researchStage',
|
||||
label: '研发阶段',
|
||||
label: '项目阶段',
|
||||
align: 'center',
|
||||
currentRender: ({row, index}) => {
|
||||
if (row.researchStage&&row.researchStage !== null&&row.researchStage!==undefined) {
|
||||
|
||||
@@ -82,6 +82,7 @@ const getAllInfo = async (state) => {
|
||||
commonProvessViewer.value = false
|
||||
const {data, code, msg} = await getMapProjectStateInfo(route.query.projectId, state)
|
||||
if (code === 1000) {
|
||||
data.formData.preProcess = data.formData.preProcess ? JSON.parse(data.formData.preProcess) : undefined
|
||||
detailData.value = data
|
||||
mode.value = data.formData.mode
|
||||
processStore.setDesign(data)
|
||||
|
||||
@@ -183,7 +183,7 @@ const tableConfig = reactive({
|
||||
},
|
||||
{
|
||||
prop: 'researchStage',
|
||||
label: '研发阶段',
|
||||
label: '项目阶段',
|
||||
align: 'center',
|
||||
showOverflowTooltip: false,
|
||||
currentRender: ({row, index}) => {
|
||||
|
||||
@@ -31,10 +31,10 @@
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="researchStage" label="研发阶段">
|
||||
<el-table-column prop="researchStage" label="项目阶段">
|
||||
<template #default="scope">
|
||||
<el-form-item prop="researchStage" :rules="scope.row.researchStage?'1':rules.researchStage">
|
||||
<el-select v-model="scope.row.researchStage" placeholder="请选择研发阶段" clearable filterable>
|
||||
<el-select v-model="scope.row.researchStage" placeholder="请选择项目阶段" clearable filterable>
|
||||
<el-option
|
||||
v-for="item in cacheStore.getDict('fee_stage')"
|
||||
:key="item.value"
|
||||
@@ -115,7 +115,7 @@ const baseForm = ref()
|
||||
const rules = reactive({
|
||||
time: [{required: true, message: '请选择时间', trigger: 'blur'}],
|
||||
projectCost: [{required: true, message: '请输入项目费用', trigger: 'blur'}],
|
||||
researchStage: [{required: true, message: '请输入研发阶段', trigger: 'blur'}],
|
||||
researchStage: [{required: true, message: '请输入项目阶段', trigger: 'blur'}],
|
||||
digest: [{required: true, message: '请输入摘要', trigger: 'blur'}],
|
||||
afterTax: [{required: true, message: '请输入税后余额', trigger: 'blur'}]
|
||||
})
|
||||
|
||||
@@ -269,13 +269,13 @@ const handleSelect = async (selection, row) => {
|
||||
|
||||
//切换每页显示条数
|
||||
const handleSizeChange = async (val) => {
|
||||
pageInfo.value.pageSize = val
|
||||
pageInfo.pageSize = val
|
||||
await getList()
|
||||
}
|
||||
|
||||
//点击页码进行分页功能
|
||||
const handleCurrentChange = async (val) => {
|
||||
pageInfo.value.pageNum = val
|
||||
pageInfo.pageNum = val
|
||||
await getList()
|
||||
}
|
||||
const handleMoreDelete=(regularId,regularNameList)=>{
|
||||
|
||||
@@ -339,13 +339,13 @@ const handleSelect = async (selection) => {
|
||||
|
||||
//切换每页显示条数
|
||||
const handleSizeChange = async (val) => {
|
||||
pageInfo.value.pageSize = val
|
||||
pageInfo.pageSize = val
|
||||
await getList()
|
||||
}
|
||||
|
||||
//点击页码进行分页功能
|
||||
const handleCurrentChange = async (val) => {
|
||||
pageInfo.value.pageNum = val
|
||||
pageInfo.pageNum = val
|
||||
await getList()
|
||||
}
|
||||
const handleMoreDelete = (dsId, sourceNameList) => {
|
||||
|
||||
@@ -115,6 +115,7 @@ const tableConfig = reactive({
|
||||
prop: 'oper',
|
||||
label: '操作',
|
||||
align: 'center',
|
||||
fixed:'right',
|
||||
showOverflowTooltip: false,
|
||||
currentRender: ({row, index}) => {
|
||||
let btn = []
|
||||
|
||||
@@ -271,13 +271,13 @@ const handleSelect = async (selection) => {
|
||||
|
||||
//切换每页显示条数
|
||||
const handleSizeChange = async (val) => {
|
||||
pageInfo.value.pageSize = val
|
||||
pageInfo.pageSize = val
|
||||
await getList()
|
||||
}
|
||||
|
||||
//点击页码进行分页功能
|
||||
const handleCurrentChange = async (val) => {
|
||||
pageInfo.value.pageNum = val
|
||||
pageInfo.pageNum = val
|
||||
await getList()
|
||||
}
|
||||
const handleMoreDelete = (configId, configName) => {
|
||||
|
||||
@@ -129,13 +129,13 @@ const getList = async () => {
|
||||
|
||||
//切换每页显示条数
|
||||
const handleSizeChange = async (val) => {
|
||||
pageInfo.value.pageSize = val
|
||||
pageInfo.pageSize = val
|
||||
await getList()
|
||||
}
|
||||
|
||||
//点击页码进行分页功能
|
||||
const handleCurrentChange = async (val) => {
|
||||
pageInfo.value.pageNum = val
|
||||
pageInfo.pageNum = val
|
||||
await getList()
|
||||
}
|
||||
|
||||
|
||||
@@ -151,13 +151,13 @@ const getList = async () => {
|
||||
}
|
||||
//切换每页显示条数
|
||||
const handleSizeChange = async (val) => {
|
||||
pageInfo.value.pageSize = val
|
||||
pageInfo.pageSize = val
|
||||
await getList()
|
||||
}
|
||||
|
||||
//点击页码进行分页功能
|
||||
const handleCurrentChange = async (val) => {
|
||||
pageInfo.value.pageNum = val
|
||||
pageInfo.pageNum = val
|
||||
await getList()
|
||||
}
|
||||
|
||||
|
||||
@@ -131,13 +131,13 @@ const getList = async () => {
|
||||
|
||||
//切换每页显示条数
|
||||
const handleSizeChange = async (val) => {
|
||||
pageInfo.value.pageSize = val
|
||||
pageInfo.pageSize = val
|
||||
await getList()
|
||||
}
|
||||
|
||||
//点击页码进行分页功能
|
||||
const handleCurrentChange = async (val) => {
|
||||
pageInfo.value.pageNum = val
|
||||
pageInfo.pageNum = val
|
||||
await getList()
|
||||
}
|
||||
|
||||
|
||||
@@ -308,13 +308,13 @@ const handleSelect = async (selection) => {
|
||||
|
||||
//切换每页显示条数
|
||||
const handleSizeChange = async (val) => {
|
||||
pageInfo.value.pageSize = val
|
||||
pageInfo.pageSize = val
|
||||
await getList()
|
||||
}
|
||||
|
||||
//点击页码进行分页功能
|
||||
const handleCurrentChange = async (val) => {
|
||||
pageInfo.value.pageNum = val
|
||||
pageInfo.pageNum = val
|
||||
await getList()
|
||||
}
|
||||
const handleMoreDelete=(listenId,listenNameList)=>{
|
||||
|
||||
@@ -77,7 +77,7 @@ const timer = ref(null)
|
||||
const validComponents = ref(['processSetting', 'processDesign'])
|
||||
// const activeSelect = ref('formDesign')
|
||||
// const activeSelect = ref('processSetting')
|
||||
const activeSelect = ref('processDesign')
|
||||
const activeSelect = ref('processSetting')
|
||||
const validVisible = ref(false)
|
||||
const validStep = ref(0)
|
||||
const validResult = ref({})
|
||||
@@ -88,7 +88,7 @@ const validOptions = ref([
|
||||
// {title: '扩展设置', description: '', icon: '', status: ''}
|
||||
])
|
||||
onActivated(()=>{
|
||||
activeSelect.value = 'processDesign'
|
||||
activeSelect.value = 'processSetting'
|
||||
init()
|
||||
})
|
||||
|
||||
|
||||
@@ -255,13 +255,13 @@ const handleSelect = async (selection, row) => {
|
||||
|
||||
//切换每页显示条数
|
||||
const handleSizeChange = async (val) => {
|
||||
pageInfo.value.pageSize = val
|
||||
pageInfo.pageSize = val
|
||||
await getList()
|
||||
}
|
||||
|
||||
//点击页码进行分页功能
|
||||
const handleCurrentChange = async (val) => {
|
||||
pageInfo.value.pageNum = val
|
||||
pageInfo.pageNum = val
|
||||
await getList()
|
||||
}
|
||||
|
||||
|
||||
@@ -115,13 +115,13 @@ const getList = async () => {
|
||||
|
||||
//切换每页显示条数
|
||||
const handleSizeChange = async (val) => {
|
||||
pageInfo.value.pageSize = val
|
||||
pageInfo.pageSize = val
|
||||
await getList()
|
||||
}
|
||||
|
||||
//点击页码进行分页功能
|
||||
const handleCurrentChange = async (val) => {
|
||||
pageInfo.value.pageNum = val
|
||||
pageInfo.pageNum = val
|
||||
await getList()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user