Merge pull request 'fix : 修复项目实施附件查询功能及上传附件页面初始' (#260) from dj into master
Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/260
This commit is contained in:
@@ -82,3 +82,11 @@ export const deleteDemand = (id) => {
|
|||||||
method: "delete"
|
method: "delete"
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
//需求征集附件列表(归档)
|
||||||
|
export const getRequirementAttachment = (params) => {
|
||||||
|
return request({
|
||||||
|
url: '/workflow/mosr/requirement/attachments',
|
||||||
|
method: "get",
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|||||||
@@ -27,6 +27,13 @@ export const resubmitApply = (data) => {
|
|||||||
data: data
|
data: data
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
export const getInitiationAttachment = (params) => {
|
||||||
|
return request({
|
||||||
|
url: '/workflow/mosr/project/approval/attachments',
|
||||||
|
method: "get",
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
};
|
||||||
//项目实施
|
//项目实施
|
||||||
export const getCheckDetail = (projectId) => {
|
export const getCheckDetail = (projectId) => {
|
||||||
return request({
|
return request({
|
||||||
@@ -112,3 +119,10 @@ export const getProjectConclusionProcess = () => {
|
|||||||
method: "get"
|
method: "get"
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
export const getFilingAttachment = (params) => {
|
||||||
|
return request({
|
||||||
|
url: '/workflow/mosr/project/filing/attachments',
|
||||||
|
method: "get",
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
<script setup lang="jsx">
|
<script setup lang="jsx">
|
||||||
import FileUpload from '@/components/FileUpload.vue'
|
import FileUpload from '@/components/FileUpload.vue'
|
||||||
import {deleteFile, downloadFile} from "../api/project-demand";
|
import {deleteFile, downloadFile} from "@/api/project-demand";
|
||||||
import {ElMessage, ElMessageBox, ElNotification} from "element-plus";
|
import {ElMessage, ElMessageBox, ElNotification} from "element-plus";
|
||||||
|
|
||||||
const emit = defineEmits(["getAttachment", "getOtherFile"])
|
const emit = defineEmits(["getAttachment", "getOtherFile"])
|
||||||
|
|||||||
148
src/components/SearchFilesByTag.vue
Normal file
148
src/components/SearchFilesByTag.vue
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
<template>
|
||||||
|
<el-form :model="attachment" inline>
|
||||||
|
<el-form-item label="关键词" prop="name">
|
||||||
|
<el-input v-model="attachment.name" placeholder="请输入" clearable filterable style="width: 300px"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="标签" prop="tag" v-if="type==='3'">
|
||||||
|
<el-select v-model="attachment.tag" placeholder="请选择标签" clearable filterable style="width: 300px">
|
||||||
|
<el-option
|
||||||
|
v-for="item in tagsOption"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button @click="handleSearch" color="#DED0B2">搜索</el-button>
|
||||||
|
<el-button color="#DED0B2" @click="handleUpload">上传附件</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<el-card style="width: 100%">
|
||||||
|
<fvTable style="width: 100%;max-height: 250px" v-if="showTable" :tableConfig="tableConfig"
|
||||||
|
:data="otherFileList" :isSettingCol="false" :pagination="false">
|
||||||
|
<template #empty>
|
||||||
|
<el-empty :image-size="90" description="暂无数据" style="padding: 0"/>
|
||||||
|
</template>
|
||||||
|
</fvTable>
|
||||||
|
</el-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="jsx">
|
||||||
|
import {downloadFile} from "@/api/project-demand";
|
||||||
|
import {ElNotification} from "element-plus";
|
||||||
|
import {getTags} from "@/api/project-manage";
|
||||||
|
|
||||||
|
const route = useRoute()
|
||||||
|
const router = useRouter()
|
||||||
|
const attachment = reactive({
|
||||||
|
name: '',
|
||||||
|
tag: ''
|
||||||
|
})
|
||||||
|
const emit = defineEmits(['search'])
|
||||||
|
const props = defineProps({
|
||||||
|
otherFileList: {
|
||||||
|
type: Array,
|
||||||
|
default: []
|
||||||
|
}, type: {
|
||||||
|
type: String,
|
||||||
|
default: '0'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const tagsOption = ref([])
|
||||||
|
const tableConfig = reactive({
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
prop: 'originalFileName',
|
||||||
|
label: '附件名称',
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'tag',
|
||||||
|
label: '自定义标签',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'processNodeTag',
|
||||||
|
label: '内置标签',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'size',
|
||||||
|
label: '上传时间',
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'oper',
|
||||||
|
label: '操作',
|
||||||
|
align: 'center',
|
||||||
|
showOverflowTooltip: false,
|
||||||
|
currentRender: ({row, index}) => {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<el-button type="primary" link onClick={() => handleDownload(row)}>下载</el-button>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
const showTable = ref(true)
|
||||||
|
const getTagsOption = () => {
|
||||||
|
if (!route.query.id) return
|
||||||
|
let params = {
|
||||||
|
projectId: route.query.id
|
||||||
|
}
|
||||||
|
getTags(params).then(res => {
|
||||||
|
|
||||||
|
if (res.code === 1000) {
|
||||||
|
tagsOption.value = res.data
|
||||||
|
} else {
|
||||||
|
ElNotification({
|
||||||
|
title: '提示',
|
||||||
|
message: res.msg,
|
||||||
|
type: 'error'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const handleSearch = () => {
|
||||||
|
emit('search', attachment)
|
||||||
|
}
|
||||||
|
const handleUpload = () => {
|
||||||
|
emit('upload')
|
||||||
|
}
|
||||||
|
const handleDownload = (row) => {
|
||||||
|
downloadFile(row.fileId).then(res => {
|
||||||
|
const blob = new Blob([res])
|
||||||
|
let a = document.createElement('a')
|
||||||
|
a.href = URL.createObjectURL(blob)
|
||||||
|
a.download = row.originalFileName
|
||||||
|
a.click()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
watch(() => props.type, (val) => {
|
||||||
|
console.log('va四川省l',val)
|
||||||
|
props.type = val
|
||||||
|
if (val === '3') {
|
||||||
|
getTagsOption()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
watch(() => props.otherFileList, (val) => {
|
||||||
|
showTable.value = false
|
||||||
|
nextTick(() => {
|
||||||
|
showTable.value = true
|
||||||
|
})
|
||||||
|
props.otherFileList = val
|
||||||
|
})
|
||||||
|
if (props.type === '3') {
|
||||||
|
getTagsOption()
|
||||||
|
}
|
||||||
|
defineExpose({
|
||||||
|
tagsOption
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
<baseTitle title="标签名称"></baseTitle>
|
<baseTitle title="标签名称"></baseTitle>
|
||||||
<el-form :model="formData" ref="tagForm" label-width="auto" :rules="rules">
|
<el-form :model="formData" ref="tagForm" label-width="auto" :rules="rules">
|
||||||
<el-form-item label="标签名称" prop="tagName">
|
<el-form-item label="标签名称" prop="tagName">
|
||||||
<el-input v-model="formData.tagName" placeholder="请输入标签名称" style="width: 400px" v-if="showInput"/>
|
<el-input v-model="formData.tagName" placeholder="请输入标签名称" style="width: 300px" v-if="showInput"/>
|
||||||
<el-select v-model="formData.tagName" placeholder="请选择标签" clearable filterable style="width: 200px" v-else>
|
<el-select v-model="formData.tagName" placeholder="请选择标签" clearable filterable style="width: 300px" v-else>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in tagsOption"
|
v-for="item in tagsOption"
|
||||||
:key="item.label"
|
:key="item.label"
|
||||||
@@ -38,7 +38,7 @@ const props = defineProps({
|
|||||||
default: []
|
default: []
|
||||||
}, showInput: {
|
}, showInput: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: true
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
|
|||||||
@@ -115,9 +115,9 @@ const tableConfig = reactive({
|
|||||||
// if (buttons.has("delete")) {
|
// if (buttons.has("delete")) {
|
||||||
// btn.push({label: '删除',prem: ['mosr:requirement:del'], func: () => handleDelete(row), type: 'primary'})
|
// btn.push({label: '删除',prem: ['mosr:requirement:del'], func: () => handleDelete(row), type: 'primary'})
|
||||||
// }
|
// }
|
||||||
// if (buttons.has("report")) {
|
if (buttons.has("report")) {
|
||||||
btn.push({label: '需求上报', prem: ['mosr:requirement:info'], func: () => handleReport(row), type: 'primary'})
|
btn.push({label: '需求上报', prem: ['mosr:requirement:info'], func: () => handleReport(row), type: 'primary'})
|
||||||
// }
|
}
|
||||||
return (
|
return (
|
||||||
<div style={{width: '100%'}}>
|
<div style={{width: '100%'}}>
|
||||||
{
|
{
|
||||||
|
|||||||
11
src/views/project-demand/requirement/upload.vue
Normal file
11
src/views/project-demand/requirement/upload.vue
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<template>
|
||||||
|
<tag-and-file-upload />
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="jsx">
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -38,3 +38,11 @@ export const resubmitReported = (data) => {
|
|||||||
data: data
|
data: data
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const getCollectAttachment = (params) => {
|
||||||
|
return request({
|
||||||
|
url: '/workflow/mosr/requirement/collect/attachments',
|
||||||
|
method: "get",
|
||||||
|
params:params
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|||||||
11
src/views/project-demand/summary/upload.vue
Normal file
11
src/views/project-demand/summary/upload.vue
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<template>
|
||||||
|
<tag-and-file-upload />
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="jsx">
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -1,111 +1,204 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
|
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
|
||||||
<el-tab-pane label="需求征集" name="first">
|
<el-tab-pane label="需求征集" name="0">
|
||||||
<el-form :model="attachment" inline class="query-form">
|
<search-files-by-tag @search="searchRequirement" @upload="upload"
|
||||||
<el-form-item label="关键词" prop="tag">
|
:otherFileList="otherFileList"/>
|
||||||
<el-input v-model="attachment.tag" placeholder="请输入" clearable filterable style="width: 200px"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item>
|
|
||||||
<el-button @click="handleSearch" color="#DED0B2">搜索</el-button>
|
|
||||||
<el-button color="#DED0B2" @click="handleUpload">上传附件</el-button>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
<!-- <fvSearchForm :searchConfig="searchConfig" @search="search"></fvSearchForm>-->
|
|
||||||
<el-card style="width: 100%">
|
|
||||||
<file-upload @getFile="getOtherFile" :showFileList="true"/>
|
|
||||||
<fvTable style="width: 100%;max-height: 250px" v-if="showTable" :tableConfig="tableConfig"
|
|
||||||
:data="otherFileList" :isSettingCol="false" :pagination="false">
|
|
||||||
<template #empty>
|
|
||||||
<el-empty :image-size="90" description="暂无数据" style="padding: 0"/>
|
|
||||||
</template>
|
|
||||||
</fvTable>
|
|
||||||
</el-card>
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="分摊汇总" name="second">
|
<el-tab-pane label="需求上报" name="1">
|
||||||
|
<search-files-by-tag @search="searchReport" @upload="upload"
|
||||||
|
:otherFileList="otherFileList"/>
|
||||||
|
</el-tab-pane>
|
||||||
|
<el-tab-pane label="项目立项" name="2">
|
||||||
|
<search-files-by-tag @search="searchInitiation" @upload="upload"
|
||||||
|
:otherFileList="otherFileList"/>
|
||||||
|
</el-tab-pane>
|
||||||
|
<el-tab-pane label="项目实施" name="3">
|
||||||
|
<search-files-by-tag type="3" @search="searchImplementation" @upload="upload" ref="implementation"
|
||||||
|
:otherFileList="otherFileList"/>
|
||||||
|
</el-tab-pane>
|
||||||
|
<el-tab-pane label="项目归档" name="4">
|
||||||
|
<search-files-by-tag @search="searchFiling" @upload="upload"
|
||||||
|
:otherFileList="otherFileList"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="jsx">
|
<script setup lang="jsx">
|
||||||
import {downloadFile} from "@/api/project-demand";
|
import {ElNotification} from "element-plus";
|
||||||
|
import {getImplementationAttachment} from "@/api/project-manage";
|
||||||
|
import {getRequirementAttachment} from "@/api/project-demand";
|
||||||
|
import {getCollectAttachment} from "@/views/project-demand/summary/api";
|
||||||
|
import {getFilingAttachment, getInitiationAttachment} from "@/api/project-manage";
|
||||||
|
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const activeName = ref('first')
|
const activeName = ref('3')
|
||||||
const attachment = reactive({
|
const attachment = ref({})
|
||||||
tag: ''
|
const showTable = ref(true)
|
||||||
})
|
const implementation = ref()
|
||||||
const searchConfig = reactive([
|
const otherFileList = ref([])
|
||||||
{
|
const handleClick = (tab) => {
|
||||||
label: '关键词',
|
let name = {}
|
||||||
prop: 'collectType',
|
switchSearch(name, tab.index)
|
||||||
component: 'el-input',
|
}
|
||||||
props: {
|
const getParams = (param, type) => {
|
||||||
placeholder: '请输入',
|
let targetId
|
||||||
clearable: true,
|
let params
|
||||||
filterable: true,
|
if (type === 1) {
|
||||||
|
targetId = route.query.requirementId
|
||||||
|
params = {
|
||||||
|
targetId: targetId,
|
||||||
|
...param
|
||||||
}
|
}
|
||||||
}
|
} else if (type === 2){
|
||||||
])
|
targetId = route.query.id
|
||||||
const tableConfig = reactive({
|
if(JSON.stringify(param) !== '{}'){
|
||||||
columns: [
|
if (param.tag &&!param.name) {
|
||||||
{
|
implementation.value.tagsOption?.forEach(item => {
|
||||||
prop: 'originalFileName',
|
if (item.value === param.tag) {
|
||||||
label: '附件名称',
|
param.tag = item.label
|
||||||
align: 'center',
|
}
|
||||||
},
|
})
|
||||||
{
|
params = {
|
||||||
prop: 'tag',
|
targetId: targetId,
|
||||||
label: '自定义标签',
|
tag:param.tag
|
||||||
align: 'center'
|
}
|
||||||
},
|
}else if(!param.tag &¶m.name){
|
||||||
{
|
params = {
|
||||||
prop: 'tag',
|
targetId: targetId,
|
||||||
label: '内置标签',
|
...param
|
||||||
align: 'center'
|
}
|
||||||
},
|
} else if (!param.tag &&!param.name) {
|
||||||
{
|
params = {
|
||||||
prop: 'tag',
|
targetId: targetId,
|
||||||
label: '上传时间',
|
}
|
||||||
align: 'center'
|
}
|
||||||
},
|
}else {
|
||||||
{
|
params = {
|
||||||
prop: 'oper',
|
targetId: targetId
|
||||||
label: '操作',
|
|
||||||
align: 'center',
|
|
||||||
currentRender: ({row, index}) => {
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
<el-button type="primary" link onClick={() => handleDownload(row)}>下载</el-button>
|
|
||||||
</div>
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
}else {
|
||||||
})
|
targetId = route.query.id
|
||||||
const showTable = ref(true)
|
params = {
|
||||||
const otherFileList = ref([])
|
targetId: targetId,
|
||||||
const handleUpload = () => {
|
...param
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return params;
|
||||||
|
}
|
||||||
|
|
||||||
|
const searchRequirement = async (param) => {
|
||||||
|
await search(param)
|
||||||
|
}
|
||||||
|
const search = async (param, type) => {
|
||||||
|
const res = await getRequirementAttachment(getParams(param, type))
|
||||||
|
changeFileList(res)
|
||||||
|
}
|
||||||
|
const searchReport = async (param) => {
|
||||||
|
const res = await getCollectAttachment(getParams(param))
|
||||||
|
changeFileList(res)
|
||||||
|
}
|
||||||
|
const searchInitiation = async (param) => {
|
||||||
|
const res = await getInitiationAttachment(getParams(param))
|
||||||
|
changeFileList(res)
|
||||||
|
}
|
||||||
|
const searchImplementation = async (param) => {
|
||||||
|
const res = await getImplementationAttachment(getParams(param,2))
|
||||||
|
changeFileList(res)
|
||||||
|
}
|
||||||
|
const searchFiling = async (param) => {
|
||||||
|
const res = await getFilingAttachment(getParams(param))
|
||||||
|
changeFileList(res)
|
||||||
|
}
|
||||||
|
const changeFileList = (res) => {
|
||||||
|
showTable.value = false
|
||||||
|
if (res.code === 1000) {
|
||||||
|
otherFileList.value = res.data
|
||||||
|
nextTick(() => {
|
||||||
|
showTable.value = true
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
ElNotification({
|
||||||
|
title: '提示',
|
||||||
|
message: res.msg,
|
||||||
|
type: 'error'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const upload = () => {
|
||||||
router.push({
|
router.push({
|
||||||
name: 'Filing/upload',
|
name: switchUpload(activeName.value),
|
||||||
query: {
|
query: {
|
||||||
id: route.query.id
|
id: route.query.id
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const switchUpload=(index)=>{
|
||||||
const handleDownload = (row) => {
|
switch (index) {
|
||||||
downloadFile(row.fileId).then(res => {
|
case '0':
|
||||||
const blob = new Blob([res])
|
return 'Requirement/upload';
|
||||||
let a = document.createElement('a')
|
case '1':
|
||||||
a.href = URL.createObjectURL(blob)
|
return 'Summary/upload';
|
||||||
a.download = row.originalFileName
|
case '2':
|
||||||
a.click()
|
return 'Initiation/upload';
|
||||||
})
|
case '3':
|
||||||
|
return 'Implementation/upload';
|
||||||
|
case '4':
|
||||||
|
return 'Filing/upload';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
const switchSearch = (name, index) => {
|
||||||
|
switch (index) {
|
||||||
|
case '0':
|
||||||
|
search(name, 1)
|
||||||
|
break
|
||||||
|
case '1':
|
||||||
|
searchReport(name)
|
||||||
|
break
|
||||||
|
case '2':
|
||||||
|
searchInitiation(name)
|
||||||
|
break
|
||||||
|
case '3':
|
||||||
|
searchImplementation(name)
|
||||||
|
break
|
||||||
|
case '4':
|
||||||
|
searchFiling(name)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onMounted(() => {
|
||||||
|
if (activeName.value === '4') {
|
||||||
|
let name = {
|
||||||
|
name: ''
|
||||||
|
}
|
||||||
|
searchFiling(name)
|
||||||
|
}
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped lang="scss">
|
||||||
|
:deep(.el-tabs__header) {
|
||||||
|
margin: 15px 0 30px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.el-tabs__nav-scroll) {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.el-tabs__nav {
|
||||||
|
display: flex;
|
||||||
|
flex: 1;
|
||||||
|
|
||||||
|
.el-tabs__item {
|
||||||
|
flex: 1;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.is-active {
|
||||||
|
color: black;
|
||||||
|
//background-color: #DED0B2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -207,9 +207,9 @@ const tableConfig = reactive({
|
|||||||
if (buttons.has("details")) {
|
if (buttons.has("details")) {
|
||||||
btn.push({label: '详情', prem: ['mosr:requirement:info'], func: () => handleDetail(row), type: 'primary'})
|
btn.push({label: '详情', prem: ['mosr:requirement:info'], func: () => handleDetail(row), type: 'primary'})
|
||||||
}
|
}
|
||||||
if (buttons.has("attachments")) {
|
// if (buttons.has("attachments")) {
|
||||||
btn.push({label: '附件', prem: ['mosr:requirement:resubmit'], func: () => handleAttachment(row), type: 'primary'})
|
btn.push({label: '附件', prem: ['mosr:requirement:resubmit'], func: () => handleAttachment(row), type: 'primary'})
|
||||||
}
|
// }
|
||||||
if (buttons.has("entry")) {
|
if (buttons.has("entry")) {
|
||||||
btn.push({label: '结项', prem: ['mosr:requirement:del'], func: () => handleConclusion(row), type: 'primary'})
|
btn.push({label: '结项', prem: ['mosr:requirement:del'], func: () => handleConclusion(row), type: 'primary'})
|
||||||
}
|
}
|
||||||
@@ -265,8 +265,8 @@ const handleAttachment = (row) => {
|
|||||||
router.push({
|
router.push({
|
||||||
name: 'Filing/attachment',
|
name: 'Filing/attachment',
|
||||||
query: {
|
query: {
|
||||||
id: row.requirementId,
|
id: row.projectId,
|
||||||
projectId: row.projectId
|
requirementId:row.requirementId
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
11
src/views/project-management/filing/upload.vue
Normal file
11
src/views/project-management/filing/upload.vue
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<template>
|
||||||
|
<tag-and-file-upload />
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="jsx">
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-form :model="attachment" inline class="query-form">
|
<el-form :model="attachment" inline style="margin-top: 15px">
|
||||||
<el-form-item label="标签" prop="tag">
|
<el-form-item label="标签" prop="tag">
|
||||||
<el-select v-model="attachment.tag" placeholder="请选择标签" clearable filterable style="width: 200px">
|
<el-select v-model="attachment.tag" placeholder="请选择标签" clearable filterable style="width: 300px">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in tagsOption"
|
v-for="item in tagsOption"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@@ -119,7 +119,6 @@ const handleSearch = () => {
|
|||||||
})
|
})
|
||||||
showTable.value = false
|
showTable.value = false
|
||||||
if (res.code === 1000) {
|
if (res.code === 1000) {
|
||||||
// tagsOption.value = res.data
|
|
||||||
otherFileList.value = res.data
|
otherFileList.value = res.data
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
showTable.value = true
|
showTable.value = true
|
||||||
@@ -145,7 +144,7 @@ const handleDownload = (row) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
getTagsOption()
|
getTagsOption()
|
||||||
// handleSearch()
|
handleSearch()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<tag-and-file-upload :showInput="true"/>
|
<tag-and-file-upload />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="jsx">
|
<script setup lang="jsx">
|
||||||
|
|||||||
Reference in New Issue
Block a user