diff --git a/src/components/DetailComponent/ApprovalDetail.vue b/src/components/DetailComponent/ApprovalDetail.vue
index 71eebe7..07b5b2d 100644
--- a/src/components/DetailComponent/ApprovalDetail.vue
+++ b/src/components/DetailComponent/ApprovalDetail.vue
@@ -1,32 +1,5 @@
-
-
-
-
-
-
-
-
-
-
-
- 搜索
-
-
-
-
-
-
-
-
form = e" style="margin-left: 15px">
@@ -77,58 +50,6 @@ import {downloadFile} from "@/api/project-demand";
import {searchImplementationFileList} from "@/api/project-manage/attachment";
import {getTags} from "@/api/project-manage";
-const attachmentParam = reactive({
- tag: ''
-})
-const tagsOption = ref([])
-const uploadState = ref(false)
-const showAttachmentTable = ref(true)
-const otherAttachmentList = ref([])
-
-const executeTableConfig = reactive({
- columns: [
- {
- prop: 'index',
- type: 'index',
- label: '序号',
- align: 'center',
- },
- {
- prop: 'originalFileName',
- label: '文件名',
- align: 'center',
- // width: 700,
- currentRender: ({row, index}) => (
- clickToPreview(row)}>{row.originalFileName}
)
- },
- {
- prop: 'tag',
- label: '标签',
- align: 'center',
- // width: 200,
- },
- {
- prop: 'size',
- label: '文件大小',
- align: 'center',
- // width: 450,
- currentRender: ({row, index}) => (parseInt(row.size / 1024) + 'KB')
- },
- {
- prop: 'oper',
- label: '操作',
- align: 'center',
- showOverflowTooltip: false,
- currentRender: ({row, index}) => {
- return (
-
- handleDownload(row)}>下载
-
- )
- }
- }
- ]
-})
const changeDiagram = ref(false)
const props = defineProps({
formData: {
@@ -477,50 +398,6 @@ const clickToPreview = (row) => {
filePreviewShow.value = true
})
}
-const getTagsOption = () => {
- if (!route.query.projectId) return
- getTags(route.query.projectId).then(res => {
- if (res.code === 1000) {
- tagsOption.value = res.data
- } else {
- ElNotification({
- title: '提示',
- message: res.msg,
- type: 'error'
- })
- }
- })
-}
-const handleSearchImplementationFileList = () => {
- let params = {
- targetId: route.query.projectId,
- targetState: "40"
- }
- if (attachmentParam.tag) {
- tagsOption.value.forEach(item => {
- if (item.value === attachmentParam.tag) {
- attachmentParam.tag = item.label
- }
- })
- params.tag = attachmentParam.tag
- }
- searchImplementationFileList(params).then(res => {
- showAttachmentTable.value = false
- if (res.code === 1000) {
- otherAttachmentList.value = res.data.fileList
- uploadState.value = res.data.upload
- nextTick(() => {
- showAttachmentTable.value = true
- })
- } else {
- ElNotification({
- title: '提示',
- message: res.msg,
- type: 'error'
- })
- }
- })
-}
const getTitleInfo = (taskId) => {
if (taskId) {
@@ -556,11 +433,6 @@ watchEffect(() => {
Object.keys(props.formData).length && (form.value?.setValues(props.formData))
})
-
-if (props.formData.mode == 'view' && props.type == 'execute') {
- handleSearchImplementationFileList()
- getTagsOption()
-}
watch(() => props.loading, (newVal) => {
props.loading = newVal
}, {deep: true})
diff --git a/src/components/DetailComponent/ProjectApply.vue b/src/components/DetailComponent/ProjectApply.vue
index 61aad09..971c509 100644
--- a/src/components/DetailComponent/ProjectApply.vue
+++ b/src/components/DetailComponent/ProjectApply.vue
@@ -1,40 +1,11 @@
-
-
-
-
-
-
-
-
-
-
-
- 搜索
- 上传附件
-
-
-
-
-
-
-
-
-
+
{{ projectChargePersonUserList?.length !== 0 ? '更改' : '请选择' }}
@@ -170,7 +141,6 @@
import OperationRender from '@/views/workflow/common/OperationRender.vue'
import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.vue';
import {ElNotification} from "element-plus";
-import {getTags} from "@/api/project-manage";
import {
getApplyProcess,
getPreProcess,
@@ -188,70 +158,16 @@ import {useTagsView} from '@/stores/tagsview.js'
import Paging from "@/components/pagination/index.vue";
import UserPicker from "@/views/workflow/process/common/UserPicker.vue";
-import {searchImplementationFileList} from "@/api/project-manage/attachment";
-
const router = useRouter()
const route = useRoute()
const changeDiagram = ref(false)
-const formRef = ref()
const showSingleTable = ref(false)
const projectChargePersonUserList = ref([])
const projectChargePersonUserPicker = ref()
const projectPersonUserList = ref([])
const projectPersonUserPicker = ref()
const singleList = ref([])
-const tagsOption = ref([])
-const uploadState = ref(false)
-const showAttachmentTable = ref(true)
-const otherAttachmentList = ref([])
-const attachmentParam = reactive({
- tag: ''
-})
-const executeTableConfig = reactive({
- columns: [
- {
- prop: 'index',
- type: 'index',
- label: '序号',
- align: 'center',
- width: '80',
- },
- {
- prop: 'originalFileName',
- label: '文件名',
- align: 'center',
- width: 620,
- currentRender: ({row, index}) => (
- clickToPreview(row)}>{row.originalFileName}
)
- },
- {
- prop: 'tag',
- label: '标签',
- align: 'center',
- width: 160,
- },
- {
- prop: 'size',
- label: '文件大小',
- align: 'center',
- width: 600,
- currentRender: ({row, index}) => (parseInt(row.size / 1024) + 'KB')
- },
- {
- prop: 'oper',
- label: '操作',
- align: 'center',
- showOverflowTooltip: false,
- currentRender: ({row, index}) => {
- return (
-
- handleDownload(row)}>下载
-
- )
- }
- }
- ]
-})
+
const emit = defineEmits(["getAttachment", "getOtherFile"])
const props = defineProps({
title: {
@@ -393,61 +309,6 @@ const getRequestName = (list) => {
return list
}
}
-const getTagsOption = () => {
- if (!route.query.projectId) return
- getTags(route.query.projectId).then(res => {
- if (res.code === 1000) {
- tagsOption.value = res.data
- } else {
- ElNotification({
- title: '提示',
- message: res.msg,
- type: 'error'
- })
- }
- })
-}
-const handleSearch = () => {
- let params = {
- targetId: route.query.projectId,
- targetState: "40"
- }
- if (attachmentParam.tag) {
- tagsOption.value.forEach(item => {
- if (item.value === attachmentParam.tag) {
- attachmentParam.tag = item.label
- }
- })
- params.tag = attachmentParam.tag
- }
- searchImplementationFileList(params).then(res => {
- showAttachmentTable.value = false
- if (res.code === 1000) {
- otherAttachmentList.value = res.data.fileList
- uploadState.value = res.data.upload
- nextTick(() => {
- showAttachmentTable.value = true
- })
- } else {
- ElNotification({
- title: '提示',
- message: res.msg,
- type: 'error'
- })
- }
- })
-}
-const handleUpload = () => {
- router.push({
- name: 'Implementation/upload',
- query: {
- id: route.query.id,
- projectId: route.query.projectId,
- state: route.query.state,
- step: '40'
- }
- })
-}
const getProjectChargePersonUser = () => {
if (projectChargePersonUserList.value.length !== 0) {
return projectChargePersonUserList.value.map(item => item.name).join()
@@ -720,10 +581,6 @@ const handleSubmit = async () => {
}
}
const init = async () => {
- if (props.title && props.title === 'check') {
- handleSearch()
- getTagsOption()
- }
let id = projectId.value
if (!id) return;
processDiagramViewer.value = false
diff --git a/src/components/DetailComponent/ProjectAttachment.vue b/src/components/DetailComponent/ProjectAttachment.vue
new file mode 100644
index 0000000..53fd57f
--- /dev/null
+++ b/src/components/DetailComponent/ProjectAttachment.vue
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+
+ 上传附件
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/steps/index.vue b/src/components/steps/index.vue
index 65efaca..033d16d 100644
--- a/src/components/steps/index.vue
+++ b/src/components/steps/index.vue
@@ -4,35 +4,35 @@
打印
- baseForm = e" label-position="left" label-width="left" style="margin-left: 15px">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ baseForm = e" label-position="left" label-width="left" style="margin-left: 15px">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -113,6 +113,10 @@ const localSteps = ref([
title: '项目立项',
key: 'approve',
},
+ {
+ title: '项目实施',
+ key: 'implement',
+ },
{
title: '项目验收',
key: 'execute',
@@ -126,10 +130,8 @@ const localSteps = ref([
// key: 'end',
// },
])
-
const baseForm = ref()
const baseFormData = ref([])
-
const schema = computed(() => {
return [
// {
@@ -363,6 +365,7 @@ const handlePrint=(print)=>{
}
// 格式化详情步骤条
const formatProcedure = (data) => {
+ console.info("🚀 ~method:formatProcedure -----", data)
let arr = []
if (data instanceof Array) {
data.forEach(item => {
@@ -374,12 +377,15 @@ const formatProcedure = (data) => {
case '20':
arr.push(1)
break
- case '40':
+ case '30':
arr.push(2)
break
- case '50':
+ case '40':
arr.push(3)
break
+ case '50':
+ arr.push(4)
+ break
}
} else {
switch (item) {
@@ -392,12 +398,15 @@ const formatProcedure = (data) => {
case '20':
arr.push(2)
break
- case '40':
+ case '30':
arr.push(3)
break
- case '50':
+ case '40':
arr.push(4)
break
+ case '50':
+ arr.push(5)
+ break
}
}
@@ -445,12 +454,13 @@ const formatReProcedure = (data) => {
case 2:
arr.push('20')
break
- // case 3: arr.push('30')
- // break
case 3:
- arr.push('40')
+ arr.push('30')
break
case 4:
+ arr.push('40')
+ break
+ case 5:
arr.push('50')
break
}
@@ -469,9 +479,9 @@ const formatActive = (val) => {
newVal == 0 && (active = '00')
newVal == 1 && (active = '10')
newVal == 2 && (active = '20')
- // val == 3 && (active = '30')
- newVal == 3 && (active = '40')
- newVal == 4 && (active = '50')
+ newVal == 3 && (active = '30')
+ newVal == 4 && (active = '40')
+ newVal == 5 && (active = '50')
return active
}
@@ -495,9 +505,12 @@ const handleStep = (key, index) => {
active = '20'
break
case 2:
- active = '40'
+ active = '30'
break
case 3:
+ active = '40'
+ break
+ case 4:
active = '50'
break
}
@@ -513,9 +526,12 @@ const handleStep = (key, index) => {
active = '20'
break
case 3:
- active = '40'
+ active = '30'
break
case 4:
+ active = '40'
+ break
+ case 5:
active = '50'
break
}
@@ -536,11 +552,18 @@ const getBaseInfo = async () => {
try {
const {code, data} = await getBaseInfoApi(route.query.projectId)
// console.log('data.procedure', data.procedure, route.query.step)
- if (route.query.step === '40') {
- if (data.procedure.indexOf('40') == -1) {
+ if (route.query.step === '30'||route.query.step === '40') {
+ if (data.procedure.indexOf('30') == -1||data.procedure.indexOf('40') == -1) {
+ data.procedure.push('30')
data.procedure.push('40')
}
- } else if (route.query.step === '50') {
+ }
+ // else if (route.query.step === '40') {
+ // if (data.procedure.indexOf('40') == -1) {
+ // data.procedure.push('40')
+ // }
+ // }
+ else if (route.query.step === '50') {
if (data.procedure.indexOf('50') == -1) {
data.procedure.push('50')
}
diff --git a/src/views/project-management/implementation/detail.vue b/src/views/project-management/implementation/detail.vue
index 9f6939f..ec474c5 100644
--- a/src/views/project-management/implementation/detail.vue
+++ b/src/views/project-management/implementation/detail.vue
@@ -23,6 +23,9 @@
:fileListShow="fileListShow"
:preProcessShow="preProcessShow"
v-model:value="auditOpinion"/>
+
-
@@ -75,8 +79,9 @@ const auditOpinion = ref('')
// const step = ref(route.query.step)
route.query.step == '10' && (currentStep.value = 1)
route.query.step == '20' && (currentStep.value = 2)
-route.query.step == '40' && (currentStep.value = 3)
-route.query.step == '50' && (currentStep.value = 4)
+route.query.step == '30' && (currentStep.value = 3)
+route.query.step == '40' && (currentStep.value = 4)
+route.query.step == '50' && (currentStep.value = 5)
const showActive = ref()
const detailShow = ref(false)
const detailData = ref({})
@@ -88,6 +93,8 @@ localStorage.removeItem('projectChargePersonUserList')
localStorage.removeItem('projectPersonUserList')
localStorage.removeItem('optionalChargeLeadershipList')
localStorage.removeItem('originallySelectedList')
+
+
const getAllInfo = async (state) => {
const loading = ElLoading.service({fullscreen: true})
detailData.value = {
@@ -148,18 +155,28 @@ const changeModel = (active, mode) => {
applyTitle.value = 'apply'
} else if (active === '40') {
applyTitle.value = 'check'
- }else if ( active === '50') {
+ } else if (active === '50') {
applyTitle.value = 'filing'
}
})
}
const setDetail = (active) => {
showActive.value = active
+ if (active == '30') {
+ changeModel(30, 'view')
+ detailShow.value = true
+ return;
+ }
getAllInfo(active)
}
const stepChange = (data) => {
showActive.value = data.active
+ if (data.active == '30') {
+ changeModel(30, 'view')
+ detailShow.value = true
+ return;
+ }
getAllInfo(data.active)
}
diff --git a/src/views/project-management/implementation/index.vue b/src/views/project-management/implementation/index.vue
index c6c43e1..6883efa 100644
--- a/src/views/project-management/implementation/index.vue
+++ b/src/views/project-management/implementation/index.vue
@@ -297,14 +297,14 @@ const tableConfig = reactive({
btn.push({label: '验收', prem: ['mosr:implementation:check'], func: () => handleCheck(row), type: 'primary'})
}
if (buttons.has("edit")) {
- btn.push({label: '编辑', prem: ['mosr:implementation:resubmit'], func: () => handleEdit(row), type: 'primary'})
+ btn.push({label: '编辑', prem: ['mosr:implementation:resubmit'], func: () => handleEdit(row), type: 'primary'})
}
if (buttons.has("standing")) {
btn.push({label: '台账', prem: ['project:management:implementation:account'], func: () => handleStandingBook(row), type: 'primary'})
}
- if (buttons.has("attachments")) {
- btn.push({label: '附件', prem: ['project:management:implementation:attachment'], func: () => handleAttachment(row), type: 'primary'})
- }
+ // if (buttons.has("attachments")) {
+ // btn.push({label: '附件', prem: ['project:management:implementation:attachment'], func: () => handleAttachment(row), type: 'primary'})
+ // }
if (buttons.has("viewAllocation")) {
btn.push({label: '查看分摊', prem: ['project:management:implementation:share'], func: () => handleShare(row), type: 'primary'})
}
@@ -355,13 +355,19 @@ const search = (val) => {
}
const handleDetail = (row) => {
+ let step=''
+ if(row.state==0){
+ step='30'
+ }else {
+ step='40'
+ }
router.push({
name: 'Implementation/detail',
query: {
id: row.requirementId,
projectId: row.projectId,
state: row.state,
- step: '40'
+ step: step
}
})
}
diff --git a/src/views/project-management/implementation/upload.vue b/src/views/project-management/implementation/upload.vue
index a54afe4..5b4d81f 100644
--- a/src/views/project-management/implementation/upload.vue
+++ b/src/views/project-management/implementation/upload.vue
@@ -483,7 +483,7 @@ const handleSubmit = async (instance) => {
id: route.query.id,
projectId: route.query.projectId,
state: route.query.state,
- step: '40'
+ step: '30'
}
})
}