Merge pull request 'master' (#235) from master into prod
Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/235
This commit is contained in:
@@ -39,7 +39,7 @@ const props = defineProps({
|
|||||||
// 当前显示步骤
|
// 当前显示步骤
|
||||||
active: {
|
active: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: '0'
|
default:0
|
||||||
},
|
},
|
||||||
// 已完成的工作流步骤
|
// 已完成的工作流步骤
|
||||||
stepSuccess: {
|
stepSuccess: {
|
||||||
@@ -236,7 +236,6 @@ const getBaseInfo = async () => {
|
|||||||
getBaseInfo()
|
getBaseInfo()
|
||||||
|
|
||||||
watchEffect(() => {
|
watchEffect(() => {
|
||||||
console.log(props.active, 'props.active');
|
|
||||||
localActive.value = props.active
|
localActive.value = props.active
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { defineStore } from "pinia";
|
import { defineStore } from "pinia";
|
||||||
import { defineAsyncComponent, ref } from "vue";
|
import { defineAsyncComponent, ref, toRaw } from "vue";
|
||||||
import { getRouters } from "@/api/system/menu";
|
import { getRouters } from "@/api/system/menu";
|
||||||
import Layout from '@/layout/index.vue'
|
import Layout from '@/layout/index.vue'
|
||||||
import ParentView from '@/components/ParentView.vue'
|
import ParentView from '@/components/ParentView.vue'
|
||||||
@@ -21,6 +21,8 @@ export const usePermisstionStroe = defineStore('permisstion', () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
// 二级页面路由list
|
||||||
|
const slRouters = ref([])
|
||||||
|
|
||||||
const setIsLoadRoutes = (status) => {
|
const setIsLoadRoutes = (status) => {
|
||||||
return isLoadRoutes.value = status
|
return isLoadRoutes.value = status
|
||||||
@@ -30,7 +32,9 @@ export const usePermisstionStroe = defineStore('permisstion', () => {
|
|||||||
if (res.code === 1000) {
|
if (res.code === 1000) {
|
||||||
const sRouter = JSON.parse(JSON.stringify(res.data))
|
const sRouter = JSON.parse(JSON.stringify(res.data))
|
||||||
const mData = JSON.parse(JSON.stringify(res.data))
|
const mData = JSON.parse(JSON.stringify(res.data))
|
||||||
asyncRouters.value = formatAsyncRouters(sRouter)
|
console.log(JSON.parse(JSON.stringify(sRouter)), 'sRouter');
|
||||||
|
const firstFormat = setRouterLevel(JSON.parse(JSON.stringify(sRouter)))
|
||||||
|
asyncRouters.value = formatAsyncRouters(JSON.parse(JSON.stringify(firstFormat)))
|
||||||
menuList.value = [...menuList.value, ...generateMenu(mData)]
|
menuList.value = [...menuList.value, ...generateMenu(mData)]
|
||||||
addAsyncRouters(asyncRouters.value)
|
addAsyncRouters(asyncRouters.value)
|
||||||
isLoadRoutes.value = false
|
isLoadRoutes.value = false
|
||||||
@@ -41,6 +45,23 @@ export const usePermisstionStroe = defineStore('permisstion', () => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const setRouterLevel = (routers) => {
|
||||||
|
return routers.filter(item=>{
|
||||||
|
if(item.component === 'Layout') {
|
||||||
|
if(item.children) {
|
||||||
|
item.children.forEach(v=>{
|
||||||
|
if(v.children) {
|
||||||
|
slRouters.value = [...toRaw(slRouters.value), ...v.children]
|
||||||
|
delete v.children
|
||||||
|
}
|
||||||
|
})
|
||||||
|
item.children = [...item.children, ...toRaw(slRouters.value)]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
const formatAsyncRouters = (routers) => {
|
const formatAsyncRouters = (routers) => {
|
||||||
return routers.filter(route => {
|
return routers.filter(route => {
|
||||||
if (route.component) {
|
if (route.component) {
|
||||||
@@ -48,8 +69,7 @@ export const usePermisstionStroe = defineStore('permisstion', () => {
|
|||||||
route.component = Layout
|
route.component = Layout
|
||||||
} else if (route.component === 'ParentView') {
|
} else if (route.component === 'ParentView') {
|
||||||
route.component = ParentView
|
route.component = ParentView
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
route.component = loadView(route.component)
|
route.component = loadView(route.component)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ const tableConfig = reactive({
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
showOverflowTooltip: false,
|
showOverflowTooltip: false,
|
||||||
currentRender: ({row, index}) => {
|
currentRender: ({row, index}) => {
|
||||||
if(row.targetState!==null){
|
if(row.targetState!==null||row.targetState!==undefined){
|
||||||
return (<Tag dictType={'todo_type'} value={row.targetState}/>)
|
return (<Tag dictType={'todo_type'} value={row.targetState}/>)
|
||||||
}else {
|
}else {
|
||||||
return '--'
|
return '--'
|
||||||
@@ -153,15 +153,51 @@ const tableConfig = reactive({
|
|||||||
params: {},
|
params: {},
|
||||||
})
|
})
|
||||||
const handleView = (row) => {
|
const handleView = (row) => {
|
||||||
console.log('row', row)
|
if (row.targetState == '00' && row.targetId) {
|
||||||
if(row.targetState=='00'&&row.targetId){
|
|
||||||
router.push({
|
router.push({
|
||||||
name: 'Collection/detail',
|
name: 'Requirement/detail',
|
||||||
query: {
|
query: {
|
||||||
id: row.targetId
|
id: row.targetId
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
else if(row.targetState=='10'&&row.targetId){
|
||||||
|
router.push({
|
||||||
|
name: 'Summary/detail',
|
||||||
|
query: {
|
||||||
|
id: row.targetId,
|
||||||
|
projectId: row.projectId,
|
||||||
|
state: row.state
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}else if(row.targetState=='20'&&row.targetId){
|
||||||
|
router.push({
|
||||||
|
name: 'Initiation/detail',
|
||||||
|
query: {
|
||||||
|
id: row.targetId,
|
||||||
|
projectId: row.projectId,
|
||||||
|
state: row.state
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}else if(row.targetState=='40'&&row.targetId){
|
||||||
|
router.push({
|
||||||
|
name: 'Implementation/detail',
|
||||||
|
query: {
|
||||||
|
id: row.targetId,
|
||||||
|
projectId: row.projectId,
|
||||||
|
state: row.state
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}else if(row.targetState=='50'&&row.targetId){
|
||||||
|
router.push({
|
||||||
|
name: 'Filing/detail',
|
||||||
|
query: {
|
||||||
|
id: row.targetId,
|
||||||
|
projectId: row.projectId,
|
||||||
|
state: row.state
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -3,14 +3,14 @@
|
|||||||
<baseTitle title="需求征集信息录入"></baseTitle>
|
<baseTitle title="需求征集信息录入"></baseTitle>
|
||||||
<el-form :model="formData" inline class="query-form" ref="demandForm" :rules="rules">
|
<el-form :model="formData" inline class="query-form" ref="demandForm" :rules="rules">
|
||||||
<div class="left-info">
|
<div class="left-info">
|
||||||
<el-form-item label="名称" prop="requirementName">
|
<el-form-item v-if="checkFormPrem('requirementName')" label="名称" prop="requirementName">
|
||||||
<el-input v-model="formData.requirementName" placeholder="请输入名称" clearable></el-input>
|
<el-input v-model="formData.requirementName" placeholder="请输入名称" clearable></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="所属公司" prop="companyIds">
|
<el-form-item v-if="checkFormPrem('companyIds')" label="所属公司" prop="companyIds">
|
||||||
<el-tree-select v-model="formData.companyIds" :data="companyOption" style="width: 100%;"
|
<el-tree-select v-model="formData.companyIds" :data="companyOption" style="width: 100%;"
|
||||||
filterable clearable :check-strictly="true" multiple/>
|
filterable clearable :check-strictly="true" multiple/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="征集类型" prop="collectType">
|
<el-form-item v-if="checkFormPrem('collectType')" label="征集类型" prop="collectType">
|
||||||
<el-select v-model="formData.collectType" placeholder="征集类型" clearable filterable>
|
<el-select v-model="formData.collectType" placeholder="征集类型" clearable filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in typeOption"
|
v-for="item in typeOption"
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="截止时间" prop="deadline">
|
<el-form-item v-if="checkFormPrem('deadline')" label="截止时间" prop="deadline">
|
||||||
<el-config-provider>
|
<el-config-provider>
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="formData.deadline"
|
v-model="formData.deadline"
|
||||||
@@ -33,11 +33,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
<baseTitle title="征集说明"></baseTitle>
|
<baseTitle title="征集说明"></baseTitle>
|
||||||
<Tinymce image-url="/notice/file" file-url="/notice/file" v-model:value="formData.collectExplain" height="300"
|
<Tinymce v-if="checkFormPrem('collectExplain') && showTinymce" image-url="/notice/file" file-url="/notice/file"
|
||||||
v-if="showTinymce"/>
|
v-model:value="formData.collectExplain" height="300" />
|
||||||
<baseTitle title="申请文件"></baseTitle>
|
<baseTitle title="申请文件"></baseTitle>
|
||||||
<file-upload @getFile="getFile"/>
|
<file-upload v-if="checkFormPrem('fileList')" @getFile="getFile"/>
|
||||||
<fvTable style="width: 100%;max-height: 200px" v-if="showTable" :tableConfig="tableConfig" :data="formData.fileList"
|
<fvTable style="width: 100%;max-height: 200px" v-if="showTable"
|
||||||
|
:tableConfig="tableConfig" :data="formData.fileList"
|
||||||
:isSettingCol="false" :pagination="false">
|
:isSettingCol="false" :pagination="false">
|
||||||
<template #empty>
|
<template #empty>
|
||||||
<el-empty :image-size="90" description="暂无数据" style="padding: 0"/>
|
<el-empty :image-size="90" description="暂无数据" style="padding: 0"/>
|
||||||
@@ -105,6 +106,7 @@ const loading = ref(false)
|
|||||||
const showTable = ref(true)
|
const showTable = ref(true)
|
||||||
const processStore = useProcessStore()
|
const processStore = useProcessStore()
|
||||||
const processInstanceData = ref()
|
const processInstanceData = ref()
|
||||||
|
const formPermMap = ref(new Map());
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
requirementName: [{required: true, message: '请输入名称', trigger: 'blur'}],
|
requirementName: [{required: true, message: '请输入名称', trigger: 'blur'}],
|
||||||
companyIds: [{required: true, message: '请选择所属公司', trigger: 'blur'}],
|
companyIds: [{required: true, message: '请选择所属公司', trigger: 'blur'}],
|
||||||
@@ -154,6 +156,16 @@ const tableConfig = reactive({
|
|||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const checkFormPrem = (formKey) => {
|
||||||
|
if (formPermMap.value.hasOwnProperty(formKey)) {
|
||||||
|
let formItem = formPermMap.value[formKey];
|
||||||
|
return formItem.perm === 'EDIT'
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
const handleDownload = (row) => {
|
const handleDownload = (row) => {
|
||||||
downloadFile(row.fileId).then(res => {
|
downloadFile(row.fileId).then(res => {
|
||||||
const blob = new Blob([res])
|
const blob = new Blob([res])
|
||||||
@@ -164,10 +176,11 @@ const handleDownload = (row) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const compositeParam = (item) => {
|
const compositeParam = (item) => {
|
||||||
|
console.log('router.currentRoute.value.path',router.currentRoute.value.path)
|
||||||
let tag = ''
|
let tag = ''
|
||||||
if (!formData.value.collectType && router.currentRoute.value.name === 'Collection/add') {
|
// if (!formData.value.collectType && router.currentRoute.value.path === 'Requirement/add') {
|
||||||
tag = '需求征集'
|
// tag = '需求征集'
|
||||||
}
|
// }
|
||||||
return {
|
return {
|
||||||
fileId: item.id,
|
fileId: item.id,
|
||||||
size: item.size,
|
size: item.size,
|
||||||
@@ -207,6 +220,9 @@ const init = async () => {
|
|||||||
processStore.noTakeList.value = data.noTakeList;
|
processStore.noTakeList.value = data.noTakeList;
|
||||||
processStore.refuseList.value = data.refuseList;
|
processStore.refuseList.value = data.refuseList;
|
||||||
processStore.passList.value = data.passList;
|
processStore.passList.value = data.passList;
|
||||||
|
formPermMap.value = data.formPermMap
|
||||||
|
// const entriesArray = Object.entries(data.formPermMap);// 使用Map构造函数将键值对数组转换为Map对象
|
||||||
|
// formPermMap.value = new Map(entriesArray);
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
processDiagramViewer.value = true
|
processDiagramViewer.value = true
|
||||||
})
|
})
|
||||||
@@ -242,7 +258,7 @@ const handleSubmit = async (instance) => {
|
|||||||
ElMessage.success(res.msg)
|
ElMessage.success(res.msg)
|
||||||
tagsViewStore.delVisitedViews(router.currentRoute.value.path)
|
tagsViewStore.delVisitedViews(router.currentRoute.value.path)
|
||||||
await router.push({
|
await router.push({
|
||||||
name: 'Collection'
|
name: 'Requirement'
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.msg)
|
ElMessage.error(res.msg)
|
||||||
@@ -255,7 +271,7 @@ const handleResubmit = () => {
|
|||||||
ElMessage.success(res.msg)
|
ElMessage.success(res.msg)
|
||||||
tagsViewStore.delVisitedViews(router.currentRoute.value.path)
|
tagsViewStore.delVisitedViews(router.currentRoute.value.path)
|
||||||
router.push({
|
router.push({
|
||||||
name: 'Collection'
|
name: 'Requirement'
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.msg)
|
ElMessage.error(res.msg)
|
||||||
@@ -3,28 +3,28 @@
|
|||||||
<el-form :model="formData" ref="demandForm" label-width="auto" :rules="rules">
|
<el-form :model="formData" ref="demandForm" label-width="auto" :rules="rules">
|
||||||
<baseTitle title="需求征集详情"></baseTitle>
|
<baseTitle title="需求征集详情"></baseTitle>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12" v-if="checkFormPrem('requirementName')">
|
||||||
<el-form-item label="名称">
|
<el-form-item label="名称">
|
||||||
<span>{{ formData.requirementName }}</span>
|
<span>{{ formData.requirementName }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12" v-if="checkFormPrem('companyIds')">
|
||||||
<el-form-item label="所属公司">
|
<el-form-item label="所属公司">
|
||||||
<span>{{ formData.companyIds }}</span>
|
<span>{{ formData.companyIds }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12" v-if="checkFormPrem('collectType')">
|
||||||
<el-form-item label="征集类型">
|
<el-form-item label="征集类型">
|
||||||
<span>{{ formData.collectType }}</span>
|
<span>{{ formData.collectType }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12" v-if="checkFormPrem('deadline')">
|
||||||
<el-form-item label="截止时间">
|
<el-form-item label="截止时间">
|
||||||
<span>{{ formData.deadline }}</span>
|
<span>{{ formData.deadline }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<baseTitle title="征集说明"></baseTitle>
|
<baseTitle title="征集说明"></baseTitle>
|
||||||
<el-col :span="24">
|
<el-col :span="24" v-if="checkFormPrem('collectExplain')">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-card style="width: 100%">
|
<el-card style="width: 100%">
|
||||||
<div v-html="formData.collectExplain">
|
<div v-html="formData.collectExplain">
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<baseTitle title="附件列表"></baseTitle>
|
<baseTitle title="附件列表"></baseTitle>
|
||||||
<el-col :span="24">
|
<el-col :span="24" v-if="checkFormPrem('collectExplain')">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<fvTable style="width: 100%;max-height: 200px" v-if="showTable" :tableConfig="tableConfig"
|
<fvTable style="width: 100%;max-height: 200px" v-if="showTable" :tableConfig="tableConfig"
|
||||||
:data="formData.fileList" :isSettingCol="false" :pagination="false">
|
:data="formData.fileList" :isSettingCol="false" :pagination="false">
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
import OperationRender from '@/views/workflow/common/OperationRender.vue'
|
import OperationRender from '@/views/workflow/common/OperationRender.vue'
|
||||||
import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.vue'
|
import ProcessDiagramViewer from '@/views/workflow/common/ProcessDiagramViewer.vue'
|
||||||
import {useProcessStore} from '@/stores/processStore.js';
|
import {useProcessStore} from '@/stores/processStore.js';
|
||||||
import {getInfo, agreeTask, rejectTask,downloadFile} from "@/api/project-demand/index.js";
|
import {getInfo, agreeTask, rejectTask, downloadFile} from "@/api/project-demand/index.js";
|
||||||
import {getSubCompOpt} from '@/api/user/user.js'
|
import {getSubCompOpt} from '@/api/user/user.js'
|
||||||
import {ElMessage} from "element-plus";
|
import {ElMessage} from "element-plus";
|
||||||
import {useTagsView} from '@/stores/tagsview.js'
|
import {useTagsView} from '@/stores/tagsview.js'
|
||||||
@@ -91,6 +91,7 @@ const loading = ref(false)
|
|||||||
const demandForm = ref()
|
const demandForm = ref()
|
||||||
const processStore = useProcessStore()
|
const processStore = useProcessStore()
|
||||||
const companyOption = ref([])
|
const companyOption = ref([])
|
||||||
|
const formPermMap = ref(new Map());
|
||||||
const processInstanceData = ref({})
|
const processInstanceData = ref({})
|
||||||
const showTable = ref(false)
|
const showTable = ref(false)
|
||||||
const processDiagramViewer = ref(false)
|
const processDiagramViewer = ref(false)
|
||||||
@@ -137,6 +138,22 @@ const tableConfig = reactive({
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const checkFormPrem = (formKey) => {
|
||||||
|
if (formPermMap.value.hasOwnProperty(formKey)) {
|
||||||
|
let formItem = formPermMap.value[formKey];
|
||||||
|
return formItem.perm === 'READ'
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const fromPrem = (formKey) => {
|
||||||
|
let formItem = formPermMap.value[formKey];
|
||||||
|
return formItem.perm
|
||||||
|
}
|
||||||
|
|
||||||
const handleSubmit = () => {
|
const handleSubmit = () => {
|
||||||
let approve = {
|
let approve = {
|
||||||
taskId: processInstanceData.value.taskId,
|
taskId: processInstanceData.value.taskId,
|
||||||
@@ -148,7 +165,7 @@ const handleSubmit = () => {
|
|||||||
ElMessage.success(res.msg)
|
ElMessage.success(res.msg)
|
||||||
tagsViewStore.delVisitedViews(router.currentRoute.value.path)
|
tagsViewStore.delVisitedViews(router.currentRoute.value.path)
|
||||||
router.push({
|
router.push({
|
||||||
name: 'Collection'
|
name: 'Requirement'
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.msg)
|
ElMessage.error(res.msg)
|
||||||
@@ -168,7 +185,7 @@ const handleReject = (instance) => {
|
|||||||
ElMessage.success(res.msg)
|
ElMessage.success(res.msg)
|
||||||
tagsViewStore.delVisitedViews(router.currentRoute.value.path)
|
tagsViewStore.delVisitedViews(router.currentRoute.value.path)
|
||||||
router.push({
|
router.push({
|
||||||
name: 'Collection'
|
name: 'Requirement'
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error(res.msg)
|
ElMessage.error(res.msg)
|
||||||
@@ -184,7 +201,7 @@ const getCompanyOption = async () => {
|
|||||||
const getDataSourceOptionItem = (val) => {
|
const getDataSourceOptionItem = (val) => {
|
||||||
if (val !== undefined) {
|
if (val !== undefined) {
|
||||||
val.forEach(item => {
|
val.forEach(item => {
|
||||||
matterTree(companyNameArray.value,companyOption.value, item)
|
matterTree(companyNameArray.value, companyOption.value, item)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return companyNameArray.value.join(',');
|
return companyNameArray.value.join(',');
|
||||||
@@ -194,7 +211,7 @@ const handleDownload = (row) => {
|
|||||||
downloadFile(row.fileId).then(res => {
|
downloadFile(row.fileId).then(res => {
|
||||||
const blob = new Blob([res])
|
const blob = new Blob([res])
|
||||||
let a = document.createElement('a')
|
let a = document.createElement('a')
|
||||||
a.href=URL.createObjectURL(blob)
|
a.href = URL.createObjectURL(blob)
|
||||||
a.download = row.originalFileName
|
a.download = row.originalFileName
|
||||||
a.click()
|
a.click()
|
||||||
})
|
})
|
||||||
@@ -203,7 +220,7 @@ const init = async () => {
|
|||||||
if (!route.query.id) return;
|
if (!route.query.id) return;
|
||||||
await getCompanyOption()
|
await getCompanyOption()
|
||||||
getInfo(route.query.id).then(res => {
|
getInfo(route.query.id).then(res => {
|
||||||
loading.value=false
|
loading.value = false
|
||||||
let data = res.data
|
let data = res.data
|
||||||
formData.value = data.formData;
|
formData.value = data.formData;
|
||||||
data.formData.companyIds = getDataSourceOptionItem(data.formData.companyIds)
|
data.formData.companyIds = getDataSourceOptionItem(data.formData.companyIds)
|
||||||
@@ -221,7 +238,7 @@ const init = async () => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
loading.value=true
|
loading.value = true
|
||||||
await init()
|
await init()
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
@@ -100,7 +100,7 @@ const tableConfig = reactive({
|
|||||||
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("edit")) {
|
if (buttons.has("edit")) {
|
||||||
btn.push({label: '编辑',prem: ['mosr:requirement:resubmit'], func: () => handleEdit(row), type: 'primary'})
|
btn.push({label: '编辑', prem: ['mosr:requirement:resubmit'], func: () => handleEdit(row), type: 'primary'})
|
||||||
}
|
}
|
||||||
// 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'})
|
||||||
@@ -149,7 +149,7 @@ const search = (val) => {
|
|||||||
const handleAdd = () => {
|
const handleAdd = () => {
|
||||||
//新增
|
//新增
|
||||||
router.push({
|
router.push({
|
||||||
name: 'Requirement/add',
|
name:'Requirement/add',
|
||||||
query: {
|
query: {
|
||||||
isAdd: 1
|
isAdd: 1
|
||||||
}
|
}
|
||||||
@@ -157,7 +157,7 @@ const handleAdd = () => {
|
|||||||
}
|
}
|
||||||
const handleEdit = (row) => {
|
const handleEdit = (row) => {
|
||||||
router.push({
|
router.push({
|
||||||
name: 'Requirement/edit',
|
name:'Requirement/edit',
|
||||||
query: {
|
query: {
|
||||||
id: row.requirementId
|
id: row.requirementId
|
||||||
}
|
}
|
||||||
@@ -175,7 +175,7 @@ const handleDelete = (row) => {
|
|||||||
}
|
}
|
||||||
const handleDetail = (row) => {
|
const handleDetail = (row) => {
|
||||||
router.push({
|
router.push({
|
||||||
name: 'Requirement/detail',
|
name:'Requirement/detail',
|
||||||
query: {
|
query: {
|
||||||
id: row.requirementId
|
id: row.requirementId
|
||||||
}
|
}
|
||||||
@@ -183,7 +183,7 @@ const handleDetail = (row) => {
|
|||||||
}
|
}
|
||||||
const handleReport = (row) => {
|
const handleReport = (row) => {
|
||||||
router.push({
|
router.push({
|
||||||
name: 'Summary/add',
|
name:'Summary/add',
|
||||||
query: {
|
query: {
|
||||||
id:row.requirementId
|
id:row.requirementId
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<steps :active="'1'" @setDetail="setDetail" @stepChange="stepChange">
|
<steps :active="1" @setDetail="setDetail" @stepChange="stepChange">
|
||||||
<template #content>
|
<template #content>
|
||||||
<collection-detail v-show="showActive == '00'" :formData="summaryData.formData" :data="summaryData"
|
<collection-detail v-show="showActive == '00'" :formData="summaryData.formData" :data="summaryData"
|
||||||
:processViewer="summaryProcessViewer" :companyOption="companyOption" :loading="loading"/>
|
:processViewer="summaryProcessViewer" :companyOption="companyOption" :loading="loading"/>
|
||||||
@@ -49,6 +49,7 @@ const getInfo = async (state) => {
|
|||||||
message: msg,
|
message: msg,
|
||||||
type: code === 1000 ? 'success' : 'error'
|
type: code === 1000 ? 'success' : 'error'
|
||||||
})
|
})
|
||||||
|
if(data===undefined)return;
|
||||||
if(code===1000){
|
if(code===1000){
|
||||||
summaryData.value = data;
|
summaryData.value = data;
|
||||||
loading.value = false
|
loading.value = false
|
||||||
|
|||||||
@@ -175,7 +175,7 @@ const search = (val) => {
|
|||||||
|
|
||||||
const handleAdd = (row) => {
|
const handleAdd = (row) => {
|
||||||
router.push({
|
router.push({
|
||||||
name: 'Summary/add',
|
name:'Summary/add',
|
||||||
query: {
|
query: {
|
||||||
id:row.requirementId
|
id:row.requirementId
|
||||||
}
|
}
|
||||||
@@ -183,7 +183,7 @@ const handleAdd = (row) => {
|
|||||||
}
|
}
|
||||||
const handleEdit = (row) => {
|
const handleEdit = (row) => {
|
||||||
router.push({
|
router.push({
|
||||||
name: 'Summary/edit',
|
name:'Summary/edit',
|
||||||
query: {
|
query: {
|
||||||
id:row.requirementId,
|
id:row.requirementId,
|
||||||
projectId:row.projectId
|
projectId:row.projectId
|
||||||
@@ -192,7 +192,7 @@ const handleEdit = (row) => {
|
|||||||
}
|
}
|
||||||
const handleDetail = (row) => {
|
const handleDetail = (row) => {
|
||||||
router.push({
|
router.push({
|
||||||
name: 'Summary/detail',
|
name:'Summary/detail',
|
||||||
query: {
|
query: {
|
||||||
id:row.requirementId,
|
id:row.requirementId,
|
||||||
projectId: row.projectId,
|
projectId: row.projectId,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<steps :active="'4'" @setDetail="setDetail" @stepChange="stepChange">
|
<steps :active="4" @setDetail="setDetail" @stepChange="stepChange">
|
||||||
<template #content>
|
<template #content>
|
||||||
<collection-detail
|
<collection-detail
|
||||||
:formData="commonForm.formData"
|
:formData="commonForm.formData"
|
||||||
@@ -71,6 +71,7 @@ const getAllInfo = async (state) => {
|
|||||||
if(code===1000){
|
if(code===1000){
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
if(data===undefined)return;
|
||||||
commonForm.value = data
|
commonForm.value = data
|
||||||
processStore.setDesign(data)
|
processStore.setDesign(data)
|
||||||
processStore.runningList.value = data.runningList;
|
processStore.runningList.value = data.runningList;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<steps :active="'3'" @setDetail="setDetail" @stepChange="stepChange">
|
<steps :active="3" @setDetail="setDetail" @stepChange="stepChange">
|
||||||
<template #content>
|
<template #content>
|
||||||
<collection-detail
|
<collection-detail
|
||||||
:formData="commonForm.formData"
|
:formData="commonForm.formData"
|
||||||
@@ -76,6 +76,7 @@ const getAllInfo = async (state) => {
|
|||||||
if(code===1000){
|
if(code===1000){
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
if(data===undefined)return;
|
||||||
commonForm.value = data
|
commonForm.value = data
|
||||||
processStore.setDesign(data)
|
processStore.setDesign(data)
|
||||||
processStore.runningList.value = data.runningList;
|
processStore.runningList.value = data.runningList;
|
||||||
|
|||||||
@@ -216,7 +216,7 @@ const search = (val) => {
|
|||||||
|
|
||||||
const handleDetail = (row) => {
|
const handleDetail = (row) => {
|
||||||
router.push({
|
router.push({
|
||||||
name: 'Implementation/detail',
|
name:'Implementation/detail',
|
||||||
query: {
|
query: {
|
||||||
id: row.requirementId,
|
id: row.requirementId,
|
||||||
projectId: row.projectId,
|
projectId: row.projectId,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<steps :active="'2'" @setDetail="setDetail" @stepChange="stepChange">
|
<steps :active="2" @setDetail="setDetail" @stepChange="stepChange">
|
||||||
<template #content>
|
<template #content>
|
||||||
<collection-detail
|
<collection-detail
|
||||||
:formData="commonForm.formData"
|
:formData="commonForm.formData"
|
||||||
@@ -117,6 +117,7 @@ const getAllInfo = async (state) => {
|
|||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
console.log(data, 'data--22');
|
console.log(data, 'data--22');
|
||||||
|
if(data===undefined)return;
|
||||||
commonForm.value = data
|
commonForm.value = data
|
||||||
processStore.setDesign(data)
|
processStore.setDesign(data)
|
||||||
processStore.runningList.value = data.runningList;
|
processStore.runningList.value = data.runningList;
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ export default defineConfig({
|
|||||||
resolvers: [
|
resolvers: [
|
||||||
// 自动注册图标组件
|
// 自动注册图标组件
|
||||||
IconsResolver({
|
IconsResolver({
|
||||||
enabledCollections: ['ep'],
|
enabledRequirements: ['ep'],
|
||||||
}),
|
}),
|
||||||
//自动导入组件
|
//自动导入组件
|
||||||
ElementPlusResolver()
|
ElementPlusResolver()
|
||||||
@@ -68,20 +68,20 @@ export default defineConfig({
|
|||||||
strictPort: false,
|
strictPort: false,
|
||||||
open: true,
|
open: true,
|
||||||
proxy: {
|
proxy: {
|
||||||
'/api/workflow': {
|
// '/api/workflow': {
|
||||||
// target: 'http://frp.feashow.cn:31800/',
|
// // target: 'http://frp.feashow.cn:31800/',
|
||||||
target: 'http://clay.frp.feashow.cn/',
|
// target: 'http://clay.frp.feashow.cn/',
|
||||||
// target: 'http://192.168.31.175:8000',
|
// // target: 'http://192.168.31.175:8000',
|
||||||
changeOrigin: true,
|
// changeOrigin: true,
|
||||||
rewrite: (path) => path.replace(/^\/api/, '')
|
// rewrite: (path) => path.replace(/^\/api/, '')
|
||||||
},
|
// },
|
||||||
'/api/admin': {
|
// '/api/admin': {
|
||||||
// target: 'http://frp.feashow.cn:31800/',
|
// // target: 'http://frp.feashow.cn:31800/',
|
||||||
target: 'http://clay.frp.feashow.cn/',
|
// target: 'http://clay.frp.feashow.cn/',
|
||||||
// target: 'http://192.168.31.175:8000',
|
// // target: 'http://192.168.31.175:8000',
|
||||||
changeOrigin: true,
|
// changeOrigin: true,
|
||||||
rewrite: (path) => path.replace(/^\/api/, '')
|
// rewrite: (path) => path.replace(/^\/api/, '')
|
||||||
},
|
// },
|
||||||
'/api': {
|
'/api': {
|
||||||
target: 'http://mosr.feashow.cn',
|
target: 'http://mosr.feashow.cn',
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
|
|||||||
Reference in New Issue
Block a user