Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/views/project-demand/requirement/add.vue
This commit is contained in:
clay
2024-05-30 22:32:41 +08:00
21 changed files with 963 additions and 502 deletions

View File

@@ -50,8 +50,8 @@
<!-- </div>-->
</div>
<div class="oper-page-btn">
<el-button color="#DED0B2" @click="handleSubmit(demandForm)">提交</el-button>
<el-button color="#DED0B2" @click="handleResubmit">重新提交</el-button>
<el-button color="#DED0B2" v-if="routerName==='Requirement/add'" @click="handleSubmit(demandForm)">提交</el-button>
<el-button color="#DED0B2" v-else @click="handleResubmit">重新提交</el-button>
<el-button @click="handleBack">返回</el-button>
</div>
</div>
@@ -90,6 +90,7 @@ const formData = ref({
fileList: []
})
const showTinymce = ref(true)
const routerName = ref(router.currentRoute.value.name)
const processDiagramViewer = ref(false)
const typeOption = ref([
{
@@ -106,7 +107,7 @@ const processStore = useProcessStore()
const processInstanceData = ref()
const formPermMap = ref(new Map());
const rules = reactive({
requirementName: [{required: true, message: '请输入名称', trigger: 'blur'}],
requirementName: [{required: true, message: '请输入需求名称', trigger: 'blur'}],
companyIds: [{required: true, message: '请选择所属公司', trigger: 'blur'}],
collectType: [{required: true, message: '请选择征集类型', trigger: 'blur'}],
deadline: [{required: true, message: '请选择截止时间', trigger: 'blur'}],
@@ -174,11 +175,10 @@ const handleDownload = (row) => {
})
}
const compositeParam = (item) => {
let name=router.currentRoute.value.name
let tag = ''
if (!formData.value.collectType && name === 'Requirement/add') {
if (!formData.value.collectType && routerName.value === 'Requirement/add') {
tag = '需求征集'
}else if(name === 'Requirement/edit'){
}else if(routerName.value === 'Requirement/edit'){
tag = '需求征集'
}
return {

View File

@@ -22,7 +22,7 @@ const searchConfig = reactive([
prop: 'requirementName',
component: 'el-input',
props: {
placeholder: '请输入名称查询',
placeholder: '请输入需求名称查询',
clearable: true,
filterable: true,
checkStrictly: true
@@ -38,7 +38,17 @@ const searchConfig = reactive([
filterable: true,
cacheKey: 'todo_type'
}
}
},
{
label: '状态',
prop: 'state',
component: shallowRef(fvSelect),
props: {
placeholder: '请选择状态',
clearable: true,
cacheKey: 'demand_collection'
}
},
])
const tableIns = ref()
const userInfo = ref(authStore.userinfo)

View File

@@ -4,8 +4,8 @@
<el-form :model="formData" ref="summaryForm" :rules="rules">
<el-row gutter="50">
<el-col :span="12">
<el-form-item label="名称" prop="projectName">
<el-input v-model="formData.projectName" placeholder="请输入名称" clearable></el-input>
<el-form-item label="项目名称" prop="projectName">
<el-input v-model="formData.projectName" placeholder="请输入项目名称" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
@@ -139,16 +139,18 @@
<el-col :span="12">
<el-form-item label="产学研联合" prop="industryUniversityResearch">
<el-radio-group v-model="formData.industryUniversityResearch">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
<el-radio v-for="item in cacheStore.getDict('industry_university')"
:key="item.value"
:label="item.value">{{item.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="开展政府申报" prop="governmentDeclaration">
<el-radio-group v-model="formData.governmentDeclaration">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
<el-radio v-for="item in cacheStore.getDict('government_declaration')"
:key="item.value"
:label="item.value">{{item.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
@@ -227,9 +229,9 @@
<!-- </div>-->
</div>
<div class="oper-page-btn">
<el-button type="primary" @click="staging">存为草稿</el-button>
<el-button type="primary" @click="handleSubmit(summaryForm)">发布</el-button>
<el-button color="#DED0B2" @click="handleResubmit">重新发布</el-button>
<el-button type="info" @click="staging">存为草稿</el-button>
<el-button color="#DED0B2" v-if="name==='Summary/add'" @click="handleSubmit(summaryForm)">发布</el-button>
<el-button color="#DED0B2" v-else @click="handleResubmit">重新发布</el-button>
</div>
</div>
</template>
@@ -259,11 +261,11 @@ const showTable = ref(true)
const otherFileList = ref([])
const file = ref({})
const formData = ref({
industryUniversityResearch:0,
governmentDeclaration:0,
industryUniversityResearch:'0',
governmentDeclaration:'0',
})
const rules = reactive({
projectName: [{required: true, message: '请输入名称', trigger: 'blur'}],
projectName: [{required: true, message: '请输入项目名称', trigger: 'blur'}],
specialFund: [{required: true, message: '请选择专项资金', trigger: 'blur'}],
startTime: [{required: true, message: '请选择开始时间', trigger: 'blur'}],
rdSubject: [{required: true, message: '请输入研发主体', trigger: 'blur'}],

View File

@@ -7,7 +7,6 @@
import {reactive, ref, shallowRef} from 'vue';
import fvSelect from '@/fvcomponents/fvSelect/index.vue'
import {useRouter} from 'vue-router';
const localData = reactive({})
const tableIns = ref()
@@ -16,10 +15,12 @@ const router = useRouter()
const searchConfig = reactive([
{
label: '名称',
label: '需求名称',
prop: 'requirementName',
props: {
placeholder: '请输入'
placeholder: '请输入需求名称',
clearable: true,
checkStrictly: true
},
component: 'el-input',
colProps: {}
@@ -28,42 +29,52 @@ const searchConfig = reactive([
label: '项目类型',
prop: 'projectType',
component: shallowRef(fvSelect),
props: {},
props: {
placeholder: '请选择项目类型',
cacheKey: 'project_type',
clearable: true,
filterable: true,
},
colProps: {}
},
{
label: '研发主体',
prop: 'productMainBody',
component: shallowRef(fvSelect),
props: {},
colProps: {}
},
{
label: '项目影响',
prop: 'projectEffect',
component: shallowRef(fvSelect),
props: {},
colProps: {}
},
{
label: '起止时间',
prop: 'startTime',
component: 'el-date-picker',
props: {},
colProps: {}
},
{
label: '最小金额',
prop: 'minMoney',
component: 'el-input',
colProps: {}
},
{
label: '最大金额',
prop: 'maxMoney',
component: 'el-input',
props: {
placeholder: '请选择研发主体',
cacheKey: 'rd_subject',
clearable: true,
filterable: true
},
colProps: {}
},
// {
// label: '项目影响',
// prop: 'projectEffect',
// component: shallowRef(fvSelect),
// props: {},
// colProps: {}
// },
// {
// label: '起止时间',
// prop: 'startTime',
// component: 'el-date-picker',
// props: {},
// colProps: {}
// },
// {
// label: '最小金额',
// prop: 'minMoney',
// component: 'el-input',
// colProps: {}
// },
// {
// label: '最大金额',
// prop: 'maxMoney',
// component: 'el-input',
// colProps: {}
// },
])
const tableConfig = reactive({
@@ -100,7 +111,10 @@ const tableConfig = reactive({
{
prop: 'startTime',
label: '起止时间',
align: 'center'
align: 'center',
currentRender: ({row}) => {
return row.startTime + ' 至 ' + row.endTime
}
},
{
prop: 'state',
@@ -108,7 +122,7 @@ const tableConfig = reactive({
align: 'center',
showOverflowTooltip: false,
currentRender: ({row, index}) => {
if (row.state !== null&&row.state != 0) {
if (row.state !== null && row.state != 0) {
return (<Tag dictType={'demand_summary'} value={row.state}/>)
} else {
return '--'
@@ -127,13 +141,13 @@ const tableConfig = reactive({
btn.push({label: '详情', prem: ['mosr:collect:info'], func: () => handleDetail(row), type: 'primary'})
}
if (buttons.has("edit")) {
btn.push({label: '编辑',prem: ['mosr:collect:resubmit'], func: () => handleEdit(row), type: 'primary'})
btn.push({label: '编辑', prem: ['mosr:collect:resubmit'], func: () => handleEdit(row), type: 'primary'})
}
// if (buttons.has("delete")) {
// btn.push({label: '删除',prem: ['mosr:requirement:del'], func: () => handleEdit(row), type: 'primary'})
// }
if (buttons.has("report")) {
btn.push({label: '上报',prem: ['mosr:collect:reported'], func: () => handleAdd(row), type: 'primary'})
btn.push({label: '上报', prem: ['mosr:collect:reported'], func: () => handleAdd(row), type: 'primary'})
}
return (
<div style={{width: '100%'}}>
@@ -175,26 +189,26 @@ const search = (val) => {
const handleAdd = (row) => {
router.push({
name:'Summary/add',
name: 'Summary/add',
query: {
id:row.requirementId
id: row.requirementId
}
})
}
const handleEdit = (row) => {
router.push({
name:'Summary/edit',
name: 'Summary/edit',
query: {
id:row.requirementId,
projectId:row.projectId
id: row.requirementId,
projectId: row.projectId
}
})
}
const handleDetail = (row) => {
router.push({
name:'Summary/detail',
name: 'Summary/detail',
query: {
id:row.requirementId,
id: row.requirementId,
projectId: row.projectId,
state: row.state
}