Merge pull request 'fix : 修复权限按钮细节' (#227) from dj into master
Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/227
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
import request from '@/utils/request.js'
|
import request from '@/utils/request.js'
|
||||||
//项目立项
|
//项目立项
|
||||||
export const getApplyProcess = () => {
|
export const getApplyProcess = (projectId) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/workflow/mosr/project/approval/initiation/process',
|
url: `/workflow/mosr/project/approval/initiation/process/${projectId}`,
|
||||||
method: "post"
|
method: "get"
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
export const projectApply = (data) => {
|
export const projectApply = (data) => {
|
||||||
@@ -49,11 +49,10 @@ export const projectCheck = (data) => {
|
|||||||
data: data
|
data: data
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
export const getProjectCheckProcess = (data) => {
|
export const getProjectCheckProcess = (projectId) => {
|
||||||
return request({
|
return request({
|
||||||
url: '/workflow/mosr/project/implementation/process',
|
url: `/workflow/mosr/project/implementation/process/${projectId}`,
|
||||||
method: "post",
|
method: "get"
|
||||||
data: data
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -79,10 +78,9 @@ export const projectConclusion = (data) => {
|
|||||||
data: data
|
data: data
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
export const getProjectConclusionProcess = (data) => {
|
export const getProjectConclusionProcess = () => {
|
||||||
return request({
|
return request({
|
||||||
url: '/workflow/mosr/project/filing/process',
|
url: '/workflow/mosr/project/filing/process',
|
||||||
method: "post",
|
method: "get"
|
||||||
data: data
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div v-loading="loading">
|
||||||
<fvForm :schema="schema" @getInstance="(e)=>form = e"></fvForm>
|
<fvForm :schema="schema" @getInstance="(e)=>form = e"></fvForm>
|
||||||
<!-- <AttachmentUpload></AttachmentUpload> -->
|
<!-- <AttachmentUpload></AttachmentUpload> -->
|
||||||
<el-form :model="formData" label-width="auto">
|
<el-form :model="formData" label-width="auto">
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
<process-diagram-viewer v-if="processViewer" :id-name="type"/>
|
<process-diagram-viewer v-if="processViewer" :id-name="type"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<Opinion: v-if="data.taskId" :formData="formData" :taskId="formData.taskId"></Opinion:>
|
<!-- <Opinion: v-if="data.taskId" :formData="formData" :taskId="formData.taskId"></Opinion:>-->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -60,9 +60,14 @@ const props = defineProps({
|
|||||||
type: {
|
type: {
|
||||||
type: String,
|
type: String,
|
||||||
default: 'approval'
|
default: 'approval'
|
||||||
|
}, loading: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
watch(() => props.loading, (newVal) => {
|
||||||
|
props.loading = newVal
|
||||||
|
}, {deep: true})
|
||||||
const form = ref()
|
const form = ref()
|
||||||
|
|
||||||
const localData = reactive({
|
const localData = reactive({
|
||||||
@@ -119,7 +124,22 @@ const schema = computed(()=>{
|
|||||||
prop: 'singleFile',
|
prop: 'singleFile',
|
||||||
colProps: {
|
colProps: {
|
||||||
span: 24
|
span: 24
|
||||||
}
|
},
|
||||||
|
component: ()=>(
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.singleFile?.originalFileName ?
|
||||||
|
<span
|
||||||
|
style={{color: '#409EFF', cursor: 'pointer'}}
|
||||||
|
onClick={()=>handleDownload(props.formData.singleFile)}
|
||||||
|
>
|
||||||
|
{props.formData.singleFile?.originalFileName}
|
||||||
|
</span> :
|
||||||
|
<span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
)
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
} else {
|
} else {
|
||||||
@@ -129,7 +149,22 @@ const schema = computed(()=>{
|
|||||||
prop: 'singleFile',
|
prop: 'singleFile',
|
||||||
colProps: {
|
colProps: {
|
||||||
span: 24
|
span: 24
|
||||||
}
|
},
|
||||||
|
component: ()=>(
|
||||||
|
<div>
|
||||||
|
{
|
||||||
|
props.formData.singleFile?.originalFileName ?
|
||||||
|
<span
|
||||||
|
style={{color: '#409EFF', cursor: 'pointer'}}
|
||||||
|
onClick={()=>handleDownload(props.formData.singleFile)}
|
||||||
|
>
|
||||||
|
{props.formData.singleFile?.originalFileName}
|
||||||
|
</span> :
|
||||||
|
<span>{'--'}</span>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
)
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<baseTitle title="审核意见"></baseTitle>
|
||||||
<fvForm :schema="schema" @getInstance="(e)=>form = e"></fvForm>
|
<fvForm :schema="schema" @getInstance="(e)=>form = e"></fvForm>
|
||||||
<div class="oper">
|
<div class="oper-page-btn">
|
||||||
<el-button type="danger" @click="handleReject">驳回</el-button>
|
<el-button type="danger" @click="handleReject">驳回</el-button>
|
||||||
<el-button type="primary" @click="handleAgree">同意</el-button>
|
<el-button color="#DED0B2" @click="handleAgree">同意</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="jsx">
|
<script setup lang="jsx">
|
||||||
import { ElLoading, ElNotification } from 'element-plus';
|
import {ElNotification} from 'element-plus';
|
||||||
import { agreeTask, rejectTask} from "@/api/project-demand/index.js";
|
import {agreeTask, rejectTask} from "@/api/project-demand/index.js";
|
||||||
|
|
||||||
|
const route = useRoute()
|
||||||
|
const router = useRouter()
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
taskId: {
|
taskId: {
|
||||||
type: String,
|
type: String,
|
||||||
@@ -22,10 +25,10 @@ const props = defineProps({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const form = ref()
|
const form = ref()
|
||||||
const schema = computed(()=>{
|
const schema = computed(() => {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
label: '审核意见',
|
label: '',
|
||||||
prop: 'auditOpinion',
|
prop: 'auditOpinion',
|
||||||
component: 'el-input',
|
component: 'el-input',
|
||||||
colProps: {
|
colProps: {
|
||||||
@@ -39,16 +42,29 @@ const schema = computed(()=>{
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
const back = () => {
|
||||||
// {
|
switch (route.name) {
|
||||||
// "auditOpinion": "统一",
|
case 'Initiation/detail':
|
||||||
// "formData": {"formData":""},
|
router.push({name: 'Initiation'})
|
||||||
// "taskId": "156e69b7-15eb-11ef-a152-f268fc747b04"
|
break;
|
||||||
// }
|
case 'Filing/detail':
|
||||||
|
router.push({name: 'Filing'})
|
||||||
|
break;
|
||||||
|
case 'Implementation/detail':
|
||||||
|
router.push({name: 'Implementation'})
|
||||||
|
break;
|
||||||
|
case 'Summary/detail':
|
||||||
|
router.push({name: 'Summary'})
|
||||||
|
break;
|
||||||
|
case 'Requirement/detail':
|
||||||
|
router.push({name: 'Requirement'})
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
// 驳回
|
// 驳回
|
||||||
const handleReject = async () => {
|
const handleReject = async () => {
|
||||||
const values = form.value.getValues()
|
const values = form.value.getValues()
|
||||||
if(!values.auditOpinion) {
|
if (!values.auditOpinion) {
|
||||||
ElNotification({
|
ElNotification({
|
||||||
title: '提示',
|
title: '提示',
|
||||||
message: '请填写审核意见',
|
message: '请填写审核意见',
|
||||||
@@ -56,12 +72,18 @@ const handleReject = async () => {
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
console.log('values', values)
|
||||||
const params = {
|
const params = {
|
||||||
// taskId: props.taskId,
|
taskId: props.taskId,
|
||||||
// formData: props.formData,
|
...values
|
||||||
// ...values
|
|
||||||
}
|
}
|
||||||
const res = await rejectTask(params)
|
const res = await rejectTask(params)
|
||||||
|
ElNotification({
|
||||||
|
title: '提示',
|
||||||
|
message: res.msg,
|
||||||
|
type: res.code === 1000 ? 'success' : 'error'
|
||||||
|
})
|
||||||
|
back()
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleAgree = async () => {
|
const handleAgree = async () => {
|
||||||
@@ -72,9 +94,15 @@ const handleAgree = async () => {
|
|||||||
...values
|
...values
|
||||||
}
|
}
|
||||||
const res = await agreeTask(params)
|
const res = await agreeTask(params)
|
||||||
|
ElNotification({
|
||||||
|
title: '提示',
|
||||||
|
message: res.msg,
|
||||||
|
type: res.code === 1000 ? 'success' : 'error'
|
||||||
|
})
|
||||||
|
back()
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -161,10 +161,10 @@
|
|||||||
<process-diagram-viewer v-if="processViewer" id-name="summaryProcess"/>
|
<process-diagram-viewer v-if="processViewer" id-name="summaryProcess"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="oper-page-btn" v-if="data.state === '1' && data.taskId">
|
<!-- <div class="oper-page-btn" v-if="data.state === '1' && data.taskId">-->
|
||||||
<el-button @click="handleReject(summaryForm)">驳回</el-button>
|
<!-- <el-button @click="handleReject(summaryForm)">驳回</el-button>-->
|
||||||
<el-button color="#DED0B2" @click="handleAgree">同意</el-button>
|
<!-- <el-button color="#DED0B2" @click="handleAgree">同意</el-button>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -294,7 +294,6 @@ const handleDownload = (row) => {
|
|||||||
watch(
|
watch(
|
||||||
() => props.formData,
|
() => props.formData,
|
||||||
(val) => {
|
(val) => {
|
||||||
console.log(val, 'ssss');
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
watch(() => props.processViewer, (newVal) => {
|
watch(() => props.processViewer, (newVal) => {
|
||||||
|
|||||||
@@ -449,11 +449,11 @@ const init = async () => {
|
|||||||
const res = await getSubCompOpt()
|
const res = await getSubCompOpt()
|
||||||
companyOption.value = res.data
|
companyOption.value = res.data
|
||||||
getProcessInfo().then(res => {
|
getProcessInfo().then(res => {
|
||||||
// ElNotification({
|
ElNotification({
|
||||||
// title: '提示',
|
title: '提示',
|
||||||
// message: res.msg,
|
message: res.msg,
|
||||||
// type: res.code === 1000 ? 'success' : 'error'
|
type: res.code === 1000 ? 'success' : 'error'
|
||||||
// })
|
})
|
||||||
if (res.code === 1000) {
|
if (res.code === 1000) {
|
||||||
let data = res.data
|
let data = res.data
|
||||||
deploymentId.value = data.deploymentId
|
deploymentId.value = data.deploymentId
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ export const requirementReported = (data) => {
|
|||||||
export const getProcessInfo = () => {
|
export const getProcessInfo = () => {
|
||||||
return request({
|
return request({
|
||||||
url: '/workflow/mosr/requirement/collect/process',
|
url: '/workflow/mosr/requirement/collect/process',
|
||||||
method: "post"
|
method: "get"
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
export const getDetail = (projectId) => {
|
export const getDetail = (projectId) => {
|
||||||
|
|||||||
@@ -5,11 +5,11 @@
|
|||||||
:processViewer="summaryProcessViewer" :companyOption="companyOption" :loading="loading"/>
|
:processViewer="summaryProcessViewer" :companyOption="companyOption" :loading="loading"/>
|
||||||
<summary-detail v-show="showActive == '10'" :formData="summaryData.formData" :data="summaryData"
|
<summary-detail v-show="showActive == '10'" :formData="summaryData.formData" :data="summaryData"
|
||||||
:processViewer="summaryProcessViewer" :loading="loading"/>
|
:processViewer="summaryProcessViewer" :loading="loading"/>
|
||||||
<ApprovalDetail v-show="showActive == '20'" :formData="summaryData.formData" :data="summaryData" :processViewer="summaryProcessViewer"></ApprovalDetail>
|
<ApprovalDetail v-show="showActive == '20'" :formData="summaryData.formData" :data="summaryData" :processViewer="summaryProcessViewer" :loading="loading"></ApprovalDetail>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</steps>
|
</steps>
|
||||||
<opinion v-if="commonForm.taskId" :formData="formData" :taskId="formData.taskId"></opinion>
|
<opinion v-if="summaryData.taskId" :formData="summaryData.formData" :taskId="summaryData.taskId"></opinion>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="jsx">
|
<script setup lang="jsx">
|
||||||
@@ -22,7 +22,6 @@ import {ElNotification} from "element-plus";
|
|||||||
|
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const companyOption = ref([])
|
const companyOption = ref([])
|
||||||
const commonForm = ref({})
|
|
||||||
const summaryData = ref({})
|
const summaryData = ref({})
|
||||||
const summaryProcessViewer = ref(true)
|
const summaryProcessViewer = ref(true)
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
@@ -49,7 +48,6 @@ const getInfo = async (state) => {
|
|||||||
if(code===1000){
|
if(code===1000){
|
||||||
summaryData.value = data;
|
summaryData.value = data;
|
||||||
loading.value = false
|
loading.value = false
|
||||||
console.log('data-====================',data)
|
|
||||||
processStore.setDesign(data)
|
processStore.setDesign(data)
|
||||||
processStore.runningList.value = data.runningList;
|
processStore.runningList.value = data.runningList;
|
||||||
processStore.endList.value = data.endList;
|
processStore.endList.value = data.endList;
|
||||||
|
|||||||
@@ -229,6 +229,11 @@ const getDetailInfo = async () => {
|
|||||||
}
|
}
|
||||||
const init = () => {
|
const init = () => {
|
||||||
getProjectConclusionProcess().then(res => {
|
getProjectConclusionProcess().then(res => {
|
||||||
|
ElNotification({
|
||||||
|
title: '提示',
|
||||||
|
message: res.msg,
|
||||||
|
type: res.code === 1000 ? 'success' : 'error'
|
||||||
|
})
|
||||||
processDiagramViewer.value = false
|
processDiagramViewer.value = false
|
||||||
if (res.code === 1000) {
|
if (res.code === 1000) {
|
||||||
let data = res.data
|
let data = res.data
|
||||||
|
|||||||
@@ -1,21 +1,26 @@
|
|||||||
<template>
|
<template>
|
||||||
<steps :active="'0'" @setDetail="setDetail" @stepChange="stepChange">
|
<steps :active="'0'" @setDetail="setDetail" @stepChange="stepChange">
|
||||||
<template #content>
|
<template #content>
|
||||||
<collection-detail
|
<collection-detail
|
||||||
:formData="collectionData.formData"
|
:formData="commonForm.formData"
|
||||||
:data="collectionData"
|
:data="commonForm"
|
||||||
:processViewer="commonProvessViewer"
|
:processViewer="commonProvessViewer"
|
||||||
:companyOption="companyOption"
|
:companyOption="companyOption"
|
||||||
@getInfo="getDemandCollectionInfo"
|
v-show="showActive == '00'"
|
||||||
v-show="showActive == '00'"
|
:loading="loading"
|
||||||
/>
|
/>
|
||||||
<summary-detail v-show="showActive == '10'" :formData="summaryData.formData" :data="summaryData" :processViewer="commonProvessViewer"/>
|
<summary-detail v-show="showActive == '10'" :formData="commonForm.formData" :data="commonForm"
|
||||||
<ApprovalDetail type="approval" v-show="showActive == '20'" :formData="commonForm.formData" :data="commonForm" :processViewer="commonProvessViewer"></ApprovalDetail>
|
:processViewer="commonProvessViewer" :loading="loading"/>
|
||||||
<ApprovalDetail type="execute" v-show="showActive == '40'" :formData="commonForm.formData" :data="commonForm" :processViewer="commonProvessViewer"></ApprovalDetail>
|
<ApprovalDetail type="approval" v-show="showActive == '20'" :formData="commonForm.formData" :data="commonForm"
|
||||||
<ApprovalDetail type="archivist" v-show="showActive == '50'" :formData="commonForm.formData" :data="commonForm" :processViewer="commonProvessViewer"></ApprovalDetail>
|
:processViewer="commonProvessViewer" :loading="loading"></ApprovalDetail>
|
||||||
|
<ApprovalDetail type="execute" v-show="showActive == '40'" :formData="commonForm.formData" :data="commonForm"
|
||||||
|
:processViewer="commonProvessViewer" :loading="loading"></ApprovalDetail>
|
||||||
|
<ApprovalDetail type="archivist" v-show="showActive == '50'" :formData="commonForm.formData" :data="commonForm"
|
||||||
|
:processViewer="commonProvessViewer" :loading="loading"></ApprovalDetail>
|
||||||
</template>
|
</template>
|
||||||
</steps>
|
</steps>
|
||||||
|
<opinion v-if="commonForm.taskId" :formData="commonForm.formData" :taskId="commonForm.taskId"/>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="jsx">
|
<script setup lang="jsx">
|
||||||
@@ -25,19 +30,23 @@ import {useProcessStore} from '@/stores/processStore.js';
|
|||||||
import CollectionDetail from "@/components/DetailComponent/CollectionDetail.vue";
|
import CollectionDetail from "@/components/DetailComponent/CollectionDetail.vue";
|
||||||
import SummaryDetail from "@/components/DetailComponent/SummaryDetail.vue";
|
import SummaryDetail from "@/components/DetailComponent/SummaryDetail.vue";
|
||||||
import ApprovalDetail from "@/components/DetailComponent/ApprovalDetail.vue";
|
import ApprovalDetail from "@/components/DetailComponent/ApprovalDetail.vue";
|
||||||
import { getMapProjectStateInfo } from '@/components/steps/api';
|
import {getMapProjectStateInfo} from '@/components/steps/api';
|
||||||
import { ElLoading } from "element-plus";
|
import {ElLoading} from "element-plus";
|
||||||
|
|
||||||
|
const route = useRoute()
|
||||||
|
const companyOption = ref([])
|
||||||
|
const loading = ref(false)
|
||||||
|
|
||||||
|
const processStore = useProcessStore()
|
||||||
const activeName = ref('first')
|
const activeName = ref('first')
|
||||||
const handleClick = (tab, event) => {
|
const handleClick = (tab, event) => {
|
||||||
console.log(tab, event)
|
console.log(tab, event)
|
||||||
if(tab.index.value === 0){
|
if (tab.index.value === 0) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const getCompanyOption = async () => {
|
const getCompanyOption = async () => {
|
||||||
const res = await getSubCompOpt()
|
const res = await getSubCompOpt()
|
||||||
companyOption.value = res.data
|
companyOption.value = res.data
|
||||||
@@ -50,13 +59,17 @@ const commonProvessViewer = ref(true)
|
|||||||
const getAllInfo = async (state) => {
|
const getAllInfo = async (state) => {
|
||||||
const loading = ElLoading.service({fullscreen: true})
|
const loading = ElLoading.service({fullscreen: true})
|
||||||
try {
|
try {
|
||||||
state == '00' && ( await getCompanyOption() )
|
state == '00' && (await getCompanyOption())
|
||||||
commonProvessViewer.value = false
|
commonProvessViewer.value = false
|
||||||
const { data, code } = await getMapProjectStateInfo(route.query.projectId, state)
|
loading.value = true
|
||||||
if(state == '00') {
|
const {data, code} = await getMapProjectStateInfo(route.query.projectId, state)
|
||||||
collectionData.value = data;
|
// if(state == '00') {
|
||||||
} else if(state == '10') {
|
// collectionData.value = data;
|
||||||
summaryData.value = data;
|
// } else if(state == '10') {
|
||||||
|
// summaryData.value = data;
|
||||||
|
// }
|
||||||
|
if(code===1000){
|
||||||
|
loading.value = false
|
||||||
}
|
}
|
||||||
commonForm.value = data
|
commonForm.value = data
|
||||||
processStore.setDesign(data)
|
processStore.setDesign(data)
|
||||||
@@ -73,7 +86,7 @@ const getAllInfo = async (state) => {
|
|||||||
} catch {
|
} catch {
|
||||||
loading.close()
|
loading.close()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const showActive = ref()
|
const showActive = ref()
|
||||||
@@ -90,19 +103,23 @@ const stepChange = (data) => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.detail-block{
|
.detail-block {
|
||||||
padding-top: 15px;
|
padding-top: 15px;
|
||||||
:deep(.el-tabs__nav-scroll){
|
|
||||||
|
:deep(.el-tabs__nav-scroll) {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
.el-tabs__nav{
|
|
||||||
|
.el-tabs__nav {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
.el-tabs__item{
|
|
||||||
|
.el-tabs__item {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
.is-active{
|
|
||||||
|
.is-active {
|
||||||
color: black;
|
color: black;
|
||||||
background-color: #DED0B2;
|
background-color: #DED0B2;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,6 +102,11 @@ const tableConfig = reactive({
|
|||||||
label: '所属公司',
|
label: '所属公司',
|
||||||
align: 'center'
|
align: 'center'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
prop: 'approveName',
|
||||||
|
label: '审批人',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
prop: 'projectType',
|
prop: 'projectType',
|
||||||
label: '项目类型',
|
label: '项目类型',
|
||||||
@@ -127,6 +132,11 @@ const tableConfig = reactive({
|
|||||||
label: '起止时间',
|
label: '起止时间',
|
||||||
align: 'center'
|
align: 'center'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
prop: 'taskNode',
|
||||||
|
label: '当前节点',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
prop: 'state',
|
prop: 'state',
|
||||||
label: '状态',
|
label: '状态',
|
||||||
@@ -146,20 +156,27 @@ const tableConfig = reactive({
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
showOverflowTooltip: false,
|
showOverflowTooltip: false,
|
||||||
currentRender: ({row, index}) => {
|
currentRender: ({row, index}) => {
|
||||||
let btn = [{label: '详情', func: () => handleDetail(row), type: 'primary'}]
|
let btn = []
|
||||||
// if (row.state === '3') {
|
let buttons = new Set(Array.from(row.buttons))
|
||||||
btn.push({label: '附件', func: () => handleAttachment(row), type: 'primary'})
|
if (buttons.has("details")) {
|
||||||
// } else if (row.state === '4') {
|
btn.push({label: '详情', prem: ['mosr:requirement:info'], func: () => handleDetail(row), type: 'primary'})
|
||||||
btn.push({label: '结项', func: () => handleConclusion(row), type: 'primary'})
|
}
|
||||||
btn.push({label: '编辑', func: () => handleEdit(row), type: 'primary'})
|
if (buttons.has("attachments")) {
|
||||||
// }
|
btn.push({label: '附件',prem: ['mosr:requirement:resubmit'], func: () => handleAttachment(row), type: 'primary'})
|
||||||
|
}
|
||||||
|
if (buttons.has("entry")) {
|
||||||
|
btn.push({label: '结项',prem: ['mosr:requirement:del'], func: () => handleConclusion(row), type: 'primary'})
|
||||||
|
}
|
||||||
|
if (buttons.has("edit")) {
|
||||||
|
btn.push({label: '编辑',prem: ['mosr:requirement:info'], func: () => handleEdit(row), type: 'primary'})
|
||||||
|
}
|
||||||
return (
|
return (
|
||||||
<div style={{width: '100%'}}>
|
<div style={{width: '100%'}}>
|
||||||
{
|
{
|
||||||
btn.map(item => (
|
btn.map(item => (
|
||||||
<el-button
|
<el-button
|
||||||
type={item.type}
|
type={item.type}
|
||||||
// v-perm={item.auth}
|
v-perm={item.prem}
|
||||||
onClick={() => item.func()}
|
onClick={() => item.func()}
|
||||||
link
|
link
|
||||||
>
|
>
|
||||||
@@ -185,7 +202,8 @@ const handleDetail = (row) => {
|
|||||||
router.push({
|
router.push({
|
||||||
name:'Filing/detail',
|
name:'Filing/detail',
|
||||||
query: {
|
query: {
|
||||||
id: row.requirementId
|
id: row.requirementId,
|
||||||
|
projectId: row.projectId
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -195,7 +195,12 @@ const getDetailInfo = async () => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const init = () => {
|
const init = () => {
|
||||||
getProjectCheckProcess().then(res => {
|
getProjectCheckProcess(route.query.projectId).then(res => {
|
||||||
|
ElNotification({
|
||||||
|
title: '提示',
|
||||||
|
message: res.msg,
|
||||||
|
type: res.code === 1000 ? 'success' : 'error'
|
||||||
|
})
|
||||||
processDiagramViewer.value = false
|
processDiagramViewer.value = false
|
||||||
if (res.code === 1000) {
|
if (res.code === 1000) {
|
||||||
let data = res.data
|
let data = res.data
|
||||||
|
|||||||
@@ -2,20 +2,20 @@
|
|||||||
<steps :active="'0'" @setDetail="setDetail" @stepChange="stepChange">
|
<steps :active="'0'" @setDetail="setDetail" @stepChange="stepChange">
|
||||||
<template #content>
|
<template #content>
|
||||||
<collection-detail
|
<collection-detail
|
||||||
:formData="collectionData.formData"
|
:formData="commonForm.formData"
|
||||||
:data="collectionData"
|
:data="commonForm"
|
||||||
:processViewer="commonProvessViewer"
|
:processViewer="commonProvessViewer"
|
||||||
:companyOption="companyOption"
|
:companyOption="companyOption"
|
||||||
@getInfo="getDemandCollectionInfo"
|
|
||||||
v-show="showActive == '00'"
|
v-show="showActive == '00'"
|
||||||
|
:loading="loading"
|
||||||
/>
|
/>
|
||||||
<summary-detail v-show="showActive == '10'" :formData="summaryData.formData" :data="summaryData" :processViewer="commonProvessViewer"/>
|
<summary-detail v-show="showActive == '10'" :formData="commonForm.formData" :data="commonForm" :processViewer="commonProvessViewer" :loading="loading"/>
|
||||||
<ApprovalDetail type="approval" v-show="showActive == '20'" :formData="commonForm.formData" :data="commonForm" :processViewer="commonProvessViewer"></ApprovalDetail>
|
<ApprovalDetail type="approval" v-show="showActive == '20'" :formData="commonForm.formData" :data="commonForm" :processViewer="commonProvessViewer" :loading="loading"></ApprovalDetail>
|
||||||
<ApprovalDetail type="execute" v-show="showActive == '40'" :formData="commonForm.formData" :data="commonForm" :processViewer="commonProvessViewer"></ApprovalDetail>
|
<ApprovalDetail type="execute" v-show="showActive == '40'" :formData="commonForm.formData" :data="commonForm" :processViewer="commonProvessViewer" :loading="loading"></ApprovalDetail>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</steps>
|
</steps>
|
||||||
<opinion v-if="commonForm.taskId" :formData="formData" :taskId="formData.taskId"/>
|
<opinion v-if="commonForm.taskId" :formData="commonForm.formData" :taskId="commonForm.taskId"/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="jsx">
|
<script setup lang="jsx">
|
||||||
@@ -42,6 +42,7 @@ const route = useRoute()
|
|||||||
const activeName = ref('first')
|
const activeName = ref('first')
|
||||||
const collectionData = ref({})
|
const collectionData = ref({})
|
||||||
const summaryData = ref({})
|
const summaryData = ref({})
|
||||||
|
const loading = ref(false)
|
||||||
const collectionProcessViewer = ref(true)
|
const collectionProcessViewer = ref(true)
|
||||||
const summaryProcessViewer = ref(true)
|
const summaryProcessViewer = ref(true)
|
||||||
const processStore = useProcessStore()
|
const processStore = useProcessStore()
|
||||||
@@ -63,12 +64,16 @@ const getAllInfo = async (state) => {
|
|||||||
try {
|
try {
|
||||||
state == '00' && ( await getCompanyOption() )
|
state == '00' && ( await getCompanyOption() )
|
||||||
commonProvessViewer.value = false
|
commonProvessViewer.value = false
|
||||||
|
loading.value = true
|
||||||
const { data, code } = await getMapProjectStateInfo(route.query.projectId, state)
|
const { data, code } = await getMapProjectStateInfo(route.query.projectId, state)
|
||||||
if(state == '00') {
|
if(state == '00') {
|
||||||
collectionData.value = data;
|
collectionData.value = data;
|
||||||
} else if(state == '10') {
|
} else if(state == '10') {
|
||||||
summaryData.value = data;
|
summaryData.value = data;
|
||||||
}
|
}
|
||||||
|
if(code===1000){
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
commonForm.value = data
|
commonForm.value = data
|
||||||
processStore.setDesign(data)
|
processStore.setDesign(data)
|
||||||
processStore.runningList.value = data.runningList;
|
processStore.runningList.value = data.runningList;
|
||||||
|
|||||||
@@ -106,6 +106,11 @@ const tableConfig = reactive({
|
|||||||
label: '所属公司',
|
label: '所属公司',
|
||||||
align: 'center'
|
align: 'center'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
prop: 'approveName',
|
||||||
|
label: '审批人',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
prop: 'projectType',
|
prop: 'projectType',
|
||||||
label: '项目类型',
|
label: '项目类型',
|
||||||
@@ -131,6 +136,11 @@ const tableConfig = reactive({
|
|||||||
label: '起止时间',
|
label: '起止时间',
|
||||||
align: 'center'
|
align: 'center'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
prop: 'taskNode',
|
||||||
|
label: '当前节点',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
prop: 'state',
|
prop: 'state',
|
||||||
label: '状态',
|
label: '状态',
|
||||||
@@ -150,23 +160,36 @@ const tableConfig = reactive({
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
showOverflowTooltip: false,
|
showOverflowTooltip: false,
|
||||||
currentRender: ({row, index}) => {
|
currentRender: ({row, index}) => {
|
||||||
let btn = [{label: '详情', func: () => handleDetail(row), type: 'primary'}]
|
let btn = []
|
||||||
// if (row.state === '3') {
|
let buttons = new Set(Array.from(row.buttons))
|
||||||
btn.push(
|
if (buttons.has("details")) {
|
||||||
{label: '验收', func: () => handleCheck(row), type: 'primary'},
|
btn.push({label: '详情', prem: ['mosr:requirement:info'], func: () => handleDetail(row), type: 'primary'})
|
||||||
{label: '编辑', func: () => handleEdit(row), type: 'primary'},
|
}
|
||||||
{label: '台账', func: () => handleStandingBook(row), type: 'primary'},
|
if (buttons.has("check")) {
|
||||||
{label: '附件', func: () => handleAttachment(row), type: 'primary'},
|
btn.push({label: '验收',prem: ['mosr:requirement:resubmit'], func: () => handleCheck(row), type: 'primary'})
|
||||||
{label: '查看分摊', func: () => handleShare(row), type: 'primary'}
|
}
|
||||||
)
|
if (buttons.has("edit")) {
|
||||||
// }
|
btn.push({label: '编辑',prem: ['mosr:requirement:del'], func: () => handleEdit(row), type: 'primary'})
|
||||||
|
}
|
||||||
|
if (buttons.has("standing")) {
|
||||||
|
btn.push({label: '台账',prem: ['mosr:requirement:info'], func: () => handleStandingBook(row), type: 'primary'})
|
||||||
|
}
|
||||||
|
if (buttons.has("attachments")) {
|
||||||
|
btn.push({label: '附件',prem: ['mosr:requirement:info'], func: () => handleAttachment(row), type: 'primary'})
|
||||||
|
}
|
||||||
|
if (buttons.has("viewAllocation")) {
|
||||||
|
btn.push({label: '查看分摊',prem: ['mosr:requirement:info'], func: () => handleShare(row), type: 'primary'})
|
||||||
|
}
|
||||||
|
if (buttons.has("phaseChange")) {
|
||||||
|
btn.push({label: '阶段变更',prem: ['mosr:requirement:info'], func: () => handleChange(row), type: 'primary'})
|
||||||
|
}
|
||||||
return (
|
return (
|
||||||
<div style={{width: '100%'}}>
|
<div style={{width: '100%'}}>
|
||||||
{
|
{
|
||||||
btn.map(item => (
|
btn.map(item => (
|
||||||
<el-button
|
<el-button
|
||||||
type={item.type}
|
type={item.type}
|
||||||
// v-perm={item.auth}
|
v-perm={item.prem}
|
||||||
onClick={() => item.func()}
|
onClick={() => item.func()}
|
||||||
link
|
link
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -222,7 +222,12 @@ const getDetailInfo = async () => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const init = () => {
|
const init = () => {
|
||||||
getApplyProcess().then(res => {
|
getApplyProcess(route.query.projectId).then(res => {
|
||||||
|
ElNotification({
|
||||||
|
title: '提示',
|
||||||
|
message: res.msg,
|
||||||
|
type: res.code === 1000 ? 'success' : 'error'
|
||||||
|
})
|
||||||
processDiagramViewer.value = false
|
processDiagramViewer.value = false
|
||||||
if (res.code === 1000) {
|
if (res.code === 1000) {
|
||||||
let data = res.data
|
let data = res.data
|
||||||
|
|||||||
@@ -2,19 +2,19 @@
|
|||||||
<steps :active="'0'" @setDetail="setDetail" @stepChange="stepChange">
|
<steps :active="'0'" @setDetail="setDetail" @stepChange="stepChange">
|
||||||
<template #content>
|
<template #content>
|
||||||
<collection-detail
|
<collection-detail
|
||||||
:formData="collectionData.formData"
|
:formData="commonForm.formData"
|
||||||
:data="collectionData"
|
:data="commonForm"
|
||||||
:processViewer="commonProvessViewer"
|
:processViewer="commonProvessViewer"
|
||||||
:companyOption="companyOption"
|
:companyOption="companyOption"
|
||||||
@getInfo="getDemandCollectionInfo"
|
|
||||||
v-show="showActive == '00'"
|
v-show="showActive == '00'"
|
||||||
|
:loading="loading"
|
||||||
/>
|
/>
|
||||||
<summary-detail v-show="showActive == '10'" :formData="summaryData.formData" :data="summaryData" :processViewer="commonProvessViewer"/>
|
<summary-detail v-show="showActive == '10'" :formData="commonForm.formData" :data="commonForm" :processViewer="commonProvessViewer" :loading="loading"/>
|
||||||
<ApprovalDetail v-show="showActive == '20'" :formData="commonForm.formData" :data="commonForm" :processViewer="commonProvessViewer"></ApprovalDetail>
|
<ApprovalDetail v-show="showActive == '20'" :formData="commonForm.formData" :data="commonForm" :processViewer="commonProvessViewer" :loading="loading"></ApprovalDetail>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</steps>
|
</steps>
|
||||||
<opinion v-if="commonForm.taskId" :formData="formData" :taskId="formData.taskId"/>
|
<opinion v-if="commonForm.taskId" :formData="commonForm.formData" :taskId="commonForm.taskId"/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="jsx">
|
<script setup lang="jsx">
|
||||||
@@ -34,6 +34,7 @@ const activeName = ref('first')
|
|||||||
const collectionData = ref({})
|
const collectionData = ref({})
|
||||||
const summaryData = ref({})
|
const summaryData = ref({})
|
||||||
const collectionProcessViewer = ref(true)
|
const collectionProcessViewer = ref(true)
|
||||||
|
const loading = ref(false)
|
||||||
const summaryProcessViewer = ref(true)
|
const summaryProcessViewer = ref(true)
|
||||||
const processStore = useProcessStore()
|
const processStore = useProcessStore()
|
||||||
const companyOption = ref([])
|
const companyOption = ref([])
|
||||||
@@ -100,12 +101,16 @@ const getAllInfo = async (state) => {
|
|||||||
try {
|
try {
|
||||||
state == '00' && ( await getCompanyOption() )
|
state == '00' && ( await getCompanyOption() )
|
||||||
commonProvessViewer.value = false
|
commonProvessViewer.value = false
|
||||||
|
loading.value = true
|
||||||
const { data, code } = await getMapProjectStateInfo(route.query.projectId, state)
|
const { data, code } = await getMapProjectStateInfo(route.query.projectId, state)
|
||||||
if(state == '00') {
|
if(state == '00') {
|
||||||
collectionData.value = data;
|
collectionData.value = data;
|
||||||
} else if(state == '10') {
|
} else if(state == '10') {
|
||||||
summaryData.value = data;
|
summaryData.value = data;
|
||||||
}
|
}
|
||||||
|
if(code===1000){
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
console.log(data, 'data--22');
|
console.log(data, 'data--22');
|
||||||
commonForm.value = data
|
commonForm.value = data
|
||||||
processStore.setDesign(data)
|
processStore.setDesign(data)
|
||||||
|
|||||||
@@ -98,10 +98,15 @@ const tableConfig = reactive({
|
|||||||
align: 'center'
|
align: 'center'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'affiliatedCompanyId',
|
prop: 'affiliatedCompany',
|
||||||
label: '所属公司',
|
label: '所属公司',
|
||||||
align: 'center'
|
align: 'center'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
prop: 'approveName',
|
||||||
|
label: '审批人',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
prop: 'projectType',
|
prop: 'projectType',
|
||||||
label: '项目类型',
|
label: '项目类型',
|
||||||
@@ -127,6 +132,11 @@ const tableConfig = reactive({
|
|||||||
label: '起止时间',
|
label: '起止时间',
|
||||||
align: 'center'
|
align: 'center'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
prop: 'taskNode',
|
||||||
|
label: '当前节点',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
prop: 'state',
|
prop: 'state',
|
||||||
label: '状态',
|
label: '状态',
|
||||||
@@ -146,11 +156,19 @@ const tableConfig = reactive({
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
showOverflowTooltip: false,
|
showOverflowTooltip: false,
|
||||||
currentRender: ({row, index}) => {
|
currentRender: ({row, index}) => {
|
||||||
let btn = [{label: '详情', func: () => handleDetail(row), type: 'primary'}]
|
let btn = []
|
||||||
if (row.state === '3') {
|
let buttons = new Set(Array.from(row.buttons))
|
||||||
btn.push({label: '编辑', func: () => handleEdit(row), type: 'primary'})
|
if (buttons.has("details")) {
|
||||||
} else if (row.state === '0') {
|
btn.push({label: '详情', prem: ['mosr:requirement:info'], func: () => handleDetail(row), type: 'primary'})
|
||||||
btn.push({label: '申请', func: () => handleApply(row), type: 'primary'})
|
}
|
||||||
|
if (buttons.has("edit")) {
|
||||||
|
btn.push({label: '编辑',prem: ['mosr:requirement:resubmit'], func: () => handleEdit(row), type: 'primary'})
|
||||||
|
}
|
||||||
|
// if (buttons.has("delete")) {
|
||||||
|
// btn.push({label: '删除',prem: ['mosr:requirement:del'], func: () => handleDelete(row), type: 'primary'})
|
||||||
|
// }
|
||||||
|
if (buttons.has("apply")) {
|
||||||
|
btn.push({label: '申请',prem: ['mosr:requirement:info'], func: () => handleApply(row), type: 'primary'})
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<div style={{width: '100%'}}>
|
<div style={{width: '100%'}}>
|
||||||
@@ -158,7 +176,7 @@ const tableConfig = reactive({
|
|||||||
btn.map(item => (
|
btn.map(item => (
|
||||||
<el-button
|
<el-button
|
||||||
type={item.type}
|
type={item.type}
|
||||||
// v-perm={item.auth}
|
v-perm={item.prem}
|
||||||
onClick={() => item.func()}
|
onClick={() => item.func()}
|
||||||
link
|
link
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -46,7 +46,6 @@ const props = defineProps({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const init = () => {
|
const init = () => {
|
||||||
console.log('props.userInfo',props.userInfo)
|
|
||||||
for (let user of props.userInfo) {
|
for (let user of props.userInfo) {
|
||||||
initUser(user)
|
initUser(user)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user