Commit 218a2be2 authored by wangxl's avatar wangxl

3333

parent e63f2230
......@@ -20,7 +20,7 @@
</a-col>
<a-col :span="4" class="bg-gray">
<div class="special-middle">
<div class="required">单位国别</div>
<div class="required">单位地址</div>
</div>
</a-col>
<a-col :span="4" class="bg-gray">
......@@ -53,7 +53,7 @@
<div class="special-middle">
<div>
<a-form-model-item :prop="'cooperativeUnits.' + index + '.unitCountry'" :rules="{ required: true,message: '*',trigger: 'blur',}">
<a-input v-model="item.unitCountry" :maxLength="20" placeholder="单位名称" style="width: 80%" />
<a-input v-model="item.unitCountry" :maxLength="20" placeholder="单位国别" style="width: 80%" />
</a-form-model-item>
</div>
</div>
......@@ -62,7 +62,7 @@
<div class="special-middle">
<div>
<a-form-model-item :prop="'cooperativeUnits.' + index + '.unitAddress'" :rules="{ required: true,message: '*',trigger: 'blur',}">
<a-input v-model="item.unitAddress" :maxLength="100" placeholder="单位国别" style="width: 80%" />
<a-input v-model="item.unitAddress" :maxLength="100" placeholder="单位地址" style="width: 80%" />
</a-form-model-item>
</div>
</div>
......@@ -111,7 +111,7 @@
const Model = { id: null, unitName: null, unitCountry: null, unitAddress: null, organizationCode: null, projectWork: null }
export default {
name: 'cooperativeUnits',
name: 'cooperativeUnitsEdit',
data () {
return {
......
<template>
<div>
<a-row>
<a-col :span="24">
<div class="tb-title">
<span>项目主要参与单位及分工</span>
</div>
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div>序号</div>
</div>
</a-col>
<a-col :span="5" class="bg-gray">
<div class="special-middle">
<div class="required">单位名称</div>
</div>
</a-col>
<a-col :span="4" class="bg-gray">
<div class="special-middle">
<div class="required">单位国别</div>
</div>
</a-col>
<a-col :span="6" class="bg-gray">
<div class="special-middle">
<div class="required">单位地址</div>
</div>
</a-col>
<a-col :span="4" class="bg-gray">
<div class="special-middle">
<div class="required">组织机构代码/统社会信用代码</div>
</div>
</a-col>
<a-col :span="4" class="bg-gray">
<div class="special-middle">
<div class="required">分 工</div>
</div>
</a-col>
</a-row>
<a-row v-for="(item, index) in dataList" :key="'cooperativeUnits'+index" type="flex" class="row_center">
<a-col :span="1">
<div class="special-middle">
<div>
{{ index + 1 }}
</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
{{ item.unitName }}
</div>
</div>
</a-col>
<a-col :span="4">
<div class="special-middle">
<div>
{{ item.unitCountry }}
</div>
</div>
</a-col>
<a-col :span="6">
<div class="special-middle">
<div>
{{ item.unitAddress }}
</div>
</div>
</a-col>
<a-col :span="4">
<div class="special-middle">
<div>
{{ item.organizationCode }}
</div>
</div>
</a-col>
<a-col :span="4">
<div class="special-middle">
<div>
{{ item.projectWork }}
</div>
</div>
</a-col>
</a-row>
</div>
</template>
<script>
export default {
name: 'cooperativeUnitsInfo',
data () {
return {
}
},
props: {
dataList: {
type: Array,
default: () => {
return []
}
},
},
components: {
},
created () {
},
methods: {
}
}
</script>
<template>
<div>
<a-row>
<a-col :span="24">
<div class="tb-title">
<span>附件上传</span>
</div>
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<a-col :span="2" class="bg-gray" style="text-align: center;">
<div class="special-middle">
<div>序号</div>
</div>
</a-col>
<a-col :span="10" class="bg-gray" style="text-align: center;">
<div class="special-middle">
<div>文件名</div>
</div>
</a-col>
<a-col :span="10" class="bg-gray" style="text-align: center;">
<div class="special-middle">
<div>附件说明</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray" style="text-align: center;">
<div class="special-middle">
<div>操作</div>
</div>
</a-col>
</a-row>
<a-row v-for="(item, index) in fileList" :key="'appendix' + index" type="flex" class="row_center">
<a-col :span="2" style="text-align: center;">
<div class="special-middle">
<div>{{index + 1}}</div>
</div>
</a-col>
<a-col :span="10" style="text-align: center;">
<div class="special-middle">
<div v-if="item.fileName" style="text-align: left;">
<!-- {{item.fileName}} -->
<document-view :fileUrl="item.downloadUrl" :fileName="item.fileName" :imageArray="[item.downloadUrl]"></document-view>
</div>
<div v-else></div>
</div>
</a-col>
<a-col :span="10" style="text-align: center;">
<div class="special-middle">
<div>{{item.fileExplain}}<span v-if="item.required" style="color:red;">*</span></div>
</div>
</a-col>
<a-col :span="2" style="text-align: center;">
<div class="special-middle">
<div v-if="item.downloadUrl"><a :href="item.downloadUrl" :download="item.fileName">下载</a></div>
</div>
</a-col>
</a-row>
</div>
</template>
<script>
import documentView from '@/views/components/common/documentView'
const File = { fileName: "", downloadUrl: "", fileExplain: "", downloadId: "" };
export default {
name: "FileInfo",
components: {
documentView
},
props: {
fileList: {
type: Array,
default: () => {
return [{ ...File }];
},
},
},
data() {
return {};
},
methods: {},
};
</script>
\ No newline at end of file
<template>
<div>
<a-row>
<a-col :span="24">
<div class="tb-title">
<span>单位科研项目及资金管理制度</span>
</div>
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>序号</div>
</div>
</a-col>
<a-col :span="4" class="bg-gray">
<div class="special-middle">
<div >单位政策名称</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div >出台日期</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div >文号</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div >有效期</div>
</div>
</a-col>
<a-col :span="4" class="bg-gray">
<div class="special-middle">
<div >主要内容</div>
</div>
</a-col>
<a-col :span="8" class="bg-gray">
<div class="special-middle">
<div>附件</div>
</div>
</a-col>
</a-row>
<a-row v-for="(item, index) in dataList" :key="'managementRuleList'+index" type="flex" class="row_center">
<a-col :span="2">
<div class="special-middle">
<div>
{{ index + 1 }}
</div>
</div>
</a-col>
<a-col :span="4">
<div class="special-middle">
<div>
{{ item.policyName }}
</div>
</div>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
{{ item.releaseDate }}
</div>
</div>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
{{ item.documentNumber }}
</div>
</div>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
{{ item.validityPeriod }}
</div>
</div>
</a-col>
<a-col :span="4">
<div class="special-middle">
<div>
{{ item.mainContent }}
</div>
</div>
</a-col>
<a-col :span="8">
<div class="special-middle">
<div v-if="item.fileName" style="text-align: left;">
<document-view :fileUrl="item.downloadUrl" :fileName="item.fileName" :imageArray="[item.downloadUrl]"></document-view>
</div>
<div v-else></div>
</div>
</a-col>
</a-row>
</div>
</template>
<script>
import documentView from '@/views/components/common/documentView'
export default {
name: "managementRuleInfo",
components: {
documentView
},
props: {
dataList: {
type: Array,
default: () => {
return [{ ...ManagementRule }]
}
},
},
data () {
return {
};
},
created () {
},
computed: {
},
methods: {
},
};
</script>
<style scoped lang="less">
.file-description {
display: block;
width: 100%;
line-height: 22px;
padding: 3px 3px 3px 3px;
color: red;
white-space: normal;
word-wrap: break-word;
// text-indent: 1em;
}
.inner_from {
.ant-row-flex:last-child .ant-col {
border-bottom: 0;
}
.ant-row-flex .ant-col:first-child {
border-left: 0;
}
.ant-row-flex {
border-right: 0;
}
}
.special-middle {
.font_s {
margin: 0 6px;
}
}
</style>
......@@ -473,7 +473,7 @@
</a-row>
<!-- 项目合作单位 -->
<cooperative-units :cooperativeUnits.sync="formData.cooperativeUnits" />
<cooperative-units-edit :cooperativeUnits.sync="formData.cooperativeUnits" />
<!-- 项目组成员 -->
<project-member-edit :dataList.sync="formData.members" />
......@@ -623,7 +623,7 @@ import paraMultiSelect from '@/views/components/common/paraMultiSelect'
import paraSelect from '@/views/components/common/paraSelect'
import baseSelect from '@/views/components/common/baseSelect'
import projectMemberEdit from '@/views/report/project/components/projectMemberEdit'
import cooperativeUnits from '@/views/report/project/components/cooperativeUnits'
import cooperativeUnitsEdit from '@/views/report/project/components/cooperativeUnitsEdit'
import budgetEdit from '@/views/report/project/components/budgetEdit'
import fundPlanEdit from '@/views/report/project/components/fundPlanEdit'
import equipmentsEdit from '@/views/report/project/components/equipmentsEdit.vue'
......@@ -644,7 +644,7 @@ const File = { fileName: '', downloadUrl: '', fileExplain: '', downloadId: '' }
export default {
name: 'projectEdit',
components: {
paraMultiSelect, paraSelect, baseSelect, projectMemberEdit, cooperativeUnits, budgetEdit, fundPlanEdit, equipmentsEdit, unitPaymentEdit, projectSubEdit, managementRuleEdit, fileEdit
paraMultiSelect, paraSelect, baseSelect, projectMemberEdit, cooperativeUnitsEdit, budgetEdit, fundPlanEdit, equipmentsEdit, unitPaymentEdit, projectSubEdit, managementRuleEdit, fileEdit
},
props: {
value: {
......
......@@ -416,10 +416,10 @@
</a-row>
<!-- 项目合作单位 -->
<!-- <cooperative-units :cooperativeUnits.sync="value.cooperativeUnits" /> -->
<cooperative-units-info :dataList.sync="value.cooperativeUnits" />
<!-- 项目组成员 -->
<!-- <proj-group-member :members.sync="value.members" /> -->
<project-member-info :dataList.sync="value.members" />
<a-row>
<a-col :span="24" style="border-top: 0px">
......@@ -522,19 +522,31 @@
<div v-html="toTextarea(value.otherTarget)"></div>
</a-col>
</a-row>
<!-- 项目课题设置 -->
<project-sub-info :dataList.sync="value.projectSubList" />
<!-- 单位科研项目及资金管理制度表 -->
<management-rule-info :dataList.sync="value.managementRuleList" />
<!-- 附件 -->
<file-info :fileList.sync="value.fileList" />
</div>
</template>
<script>
import moment from 'moment'
import projectMemberInfo from '@/views/report/project/components/projectMemberInfo'
import cooperativeUnitsInfo from '@/views/report/project/components/cooperativeUnitsInfo'
import projectSubInfo from '@/views/report/project/components/projectSubInfo'
import managementRuleInfo from '@/views/report/project/components/managementRuleInfo'
import fileInfo from "@/views/report/project/components/keyProject/fileInfo";
import documentView from '@/views/components/common/documentView'
import AuditList from '@/views/audit/components/auditInfo'
import { toTextarea } from '@/views/utils/common'
export default {
components: {
AuditList, documentView
projectMemberInfo, cooperativeUnitsInfo, projectSubInfo, managementRuleInfo, fileInfo, AuditList, documentView
},
name: "ProjectInfo",
data () {
......
......@@ -308,16 +308,12 @@ export default {
this.memObject = {}
this.visibleEdit = false
this.dataList.push(value)
// this.addArrey(value)
console.log(this.dataList)
},
addMember () {//添加成员
this.memObject = { ...Member }
this.visibleEdit = true
},
addArrey (value) {//添加成员
this.dataList.push(value)
},
removeMembers (item) {//移除成员
let index = this.dataList.indexOf(item)
if (index !== -1) {
......@@ -343,64 +339,5 @@ export default {
}
</script>
<style scoped lang="less">
::v-deep .table_list {
.ant-col {
padding: 0px 0px;
text-align: left;
}
.ant-form-item-control {
line-height: 4px;
}
.ant-select {
font-size: 12px;
}
.ant-select .ant-select-selection--single {
height: 24px !important;
}
.ant-select .ant-select-selection__rendered {
line-height: 22px !important;
margin-right: 6px !important;
margin-left: 6px !important;
}
.ant-select .ant-select-selection__rendered .ant-form-item-control {
line-height: 26px !important;
}
.ant-col .ant-form-item .ant-col {
padding: 0px;
}
.from-table .row_center .ant-col {
text-align: left !important;
}
.special-pum-select .ant-form-item-control-wrapper {
display: flex;
justify-content: center;
align-content: center;
}
.special-pum-select .ant-form-item-children {
display: block;
}
.special-pum-select .ant-form-item-control {
line-height: 26px;
}
input[type="text"],
input[type="password"],
input[type="number"],
textarea {
box-sizing: border-box;
margin: 0;
padding: 0;
width: 100%;
height: 24px;
padding: 2px 6px;
color: rgba(0, 0, 0, 0.65);
font-size: 12px;
border-radius: 2px;
}
.ant-input {
height: 24px !important;
}
.ant-input-number-input {
height: 24px !important;
}
}
</style>
......@@ -8,407 +8,256 @@
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<!-- <a-col :span="1" class="bg-gray">
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div>序号</div>
</div>
</a-col> -->
</a-col>
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div class="required">姓名</div>
<div>姓名</div>
</div>
</a-col>
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div class="required">性别</div>
<div>性别</div>
</div>
</a-col>
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div class="required">出生年月</div>
<div>出生年月</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div class="required">证件类型</div>
<div>证件类型</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div class="required">证件号码</div>
<div>证件号码</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div class="required">民族</div>
<div>民族</div>
</div>
</a-col>
<a-col :span="1" class="bg-gray">
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div class="required">国别或地区</div>
<div>国别或地区</div>
</div>
</a-col>
<a-col :span="1" class="bg-gray">
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div class="required">工作单位</div>
<div>工作单位</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div class="required">职称</div>
<div>职称</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div class="required">最高学位</div>
<div>最高学位</div>
</div>
</a-col>
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div class="required">电子邮箱</div>
<div>电子邮箱</div>
</div>
</a-col>
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div class="required">手机</div>
<div>手机</div>
</div>
</a-col>
<!-- <a-col :span="1" class="bg-gray">
<div class="special-middle">
<div class="required">电话</div>
<div >电话</div>
</div>
</a-col>
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div class="required">传真</div>
<div >传真</div>
</div>
</a-col> -->
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div class="required">项目分工</div>
</div>
</a-col>
<a-col :span="1" class="bg-gray">
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div class="required">每年工作(月)</div>
<div>项目分工</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div class="required">从事专业</div>
<div>每年工作(月)</div>
</div>
</a-col>
<a-col :span="1" class="bg-gray">
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>操作</div>
<div>从事专业</div>
</div>
</a-col>
</a-row>
<a-row v-for="(member, index) in members" :key="index" type="flex" class="row_center table_list">
<!-- <a-col :span="1">
<div class="special-middle">
<div>
{{ index + 1 }}
<div>
<a-row v-for="(item, index) in dataList" :key="'memberEdit'+index" type="flex" class="row_center">
<a-col :span="1">
<div class="special-middle">
<div>
{{ index + 1 }}
</div>
</div>
</div>
</a-col> -->
<a-col :span="1">
<div class="special-middle">
<div>
<a-form-model-item :prop="'members.' + index + '.name'" :rules="{required: true,message: '*',trigger: 'blur',}">
<a-input v-model="member.name" :maxLength="20" placeholder="姓名" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>
{{ item.name }}
</div>
</div>
</div>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>
<a-form-model-item :prop="'members.' + index + '.sex'" :rules="{required: true,message: '*',trigger: 'change',}">
<base-select v-model="member.sex" :type="16" :isAll="true" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>
{{ item.sex }}
</div>
</div>
</div>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>
<a-form-model-item :prop="'members.' + index + '.birthday'" :rules="{required: true,message: '*',trigger: 'change',}">
<a-date-picker format="YYYY-MM-DD" valueFormat="YYYY-MM-DD HH:mm:ss" v-model="member.birthday" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>
{{ item.birthday }}
</div>
</div>
</div>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
<a-form-model-item :prop="'members.' + index + '.certificateType'" :rules="{required: true,message: '*',trigger: 'blur',}">
<para-select v-model="member.certificateType" :typeId="49" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>
{{ item.certificateTypeName }}
</div>
</div>
</div>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
<a-form-model-item :prop="'members.' + index + '.certId'" :rules="{required: true,message: '*',trigger: 'blur',}">
<a-input v-model="member.certId" :maxLength="20" placeholder="证件号" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="3">
<div class="special-middle">
<div>
{{ item.certId }}
</div>
</div>
</div>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
<a-form-model-item :prop="'members.' + index + '.nation'" :rules="{required: true,message: '*',trigger: 'change',}">
<para-select v-model="member.nation" :typeId="11" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>
{{ item.nationName }}
</div>
</div>
</div>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>
<a-form-model-item :prop="'members.' + index + '.country'" :rules="{required: true,message: '*',trigger: 'blur',}">
<a-input v-model="member.country" :maxLength="50" placeholder="国别或地区" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
{{ item.country }}
</div>
</div>
</div>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>
<a-form-model-item :prop="'members.' + index + '.workUnit'" :rules="{required: true,message: '*',trigger: 'blur',}">
<a-input v-model="member.workUnit" :maxLength="50" placeholder="工作单位" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
{{ item.workUnit }}
</div>
</div>
</div>
</a-col>
<a-col :span="3">
<div class="special-middle">
<div>
<a-form-model-item :prop="'members.' + index + '.title'" :rules="{required: true,message: '*',trigger: 'change',}">
<para-multi-select v-model="member.title" :width="105" :typeId="7" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>
{{ item.titleName }}
</div>
</div>
</div>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
<a-form-model-item :prop="'members.' + index + '.degree'" :rules="{required: true,message: '*',trigger: 'change',}">
<para-select v-model="member.degree" :typeId="9" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>
{{ item.degreeName }}
</div>
</div>
</div>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>
<a-form-model-item :prop="'members.' + index + '.email'" :rules="{required: true,message: '*',trigger: 'blur',}">
<a-input v-model="member.email" :maxLength="50" placeholder="电子邮箱" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>
{{ item.email }}
</div>
</div>
</div>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>
<a-form-model-item :prop="'members.' + index + '.mobile'" :rules="{required: true,message: '*',trigger: 'blur',}">
<a-input v-model="member.mobile" :maxLength="20" placeholder="手机" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>
{{ item.mobile }}
</div>
</div>
</div>
</a-col>
<!-- <a-col :span="1">
</a-col>
<!-- <a-col :span="1">
<div class="special-middle">
<div>
<a-form-model-item :prop="'members.' + index + '.telephone'" :rules="{required: true,message: '*',trigger: 'blur',}">
<a-input v-model="member.telephone" :maxLength="20" placeholder="电话号码" style="width: 80%" />
</a-form-model-item>
{{ item.telephone }}
</div>
</div>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>
<a-form-model-item :prop="'members.' + index + '.fax'" :rules="{required: true,message: '*',trigger: 'blur',}">
<a-input v-model="member.fax" :maxLength="20" placeholder="传真" style="width: 80%" />
</a-form-model-item>
{{ item.fax }}
</div>
</div>
</a-col> -->
<a-col :span="1">
<div class="special-middle">
<div>
<a-form-model-item :prop="'members.' + index + '.projWork'" :rules="{required: true,message: '*',trigger: 'blur',}">
<a-input v-model="member.projWork" :maxLength="20" placeholder="项目分工" style="width: 100%" />
</a-form-model-item>
<a-col :span="3">
<div class="special-middle">
<div>
{{ item.projWork }}
</div>
</div>
</div>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>
<a-form-model-item :prop="'members.' + index + '.forMonths'" :rules="{required: true,message: '*',trigger: 'blur',}">
<a-input-number v-model="member.forMonths" :min="0" :step="0.1" style="width: 100%" />
</a-form-model-item>
</div>
</div>
</a-col>
<a-col :span="3">
<div class="special-middle">
<div>
<a-form-model-item :prop="'members.' + index + '.spec'" :rules="{required: true,message: '*',trigger: 'change',}">
<para-multi-select v-model="member.spec" :width="105" :typeId="42" style="width: 100%" />
</a-form-model-item>
</div>
</div>
</a-col>
<a-col :span="1">
<div class="special-middle">
<div>
<!-- <a-button icon="arrow-up" type="primary" shape="circle" size="small" :disabled="index == 0" @click="memberUp(index)"></a-button>
<a-button icon="arrow-down" type="primary" shape="circle" size="small" style="margin-left:5px;" :disabled="members.length == index + 1" @click="menberDown(index)"></a-button> -->
<a-popconfirm title="确定要删除吗?" ok-text="确定" cancel-text="取消" @confirm="removeMembers(member)">
<a-button type="link" size="small">删除</a-button>
</a-popconfirm>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
{{ item.forMonths }}
</div>
</div>
</div>
</a-col>
</a-row>
<a-row v-if="members && members.length < 10" type="flex">
<a-col :span="24" style="text-align: center;">
<div class="special-middle">
<div>
<a-button type="dashed" style="width: 50%" @click="addMembers">
<a-icon type="plus" /> 添加
</a-button>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
{{ item.specName }}
</div>
</div>
</div>
</a-col>
</a-row>
</a-col>
</a-row>
</div>
</div>
</template>
<script>
//用法 <proj-group-member :members.sync="formData.members" />
import paraMultiSelect from '@/views/components/common/paraMultiSelect'
import paraSelect from '@/views/components/common/paraSelect'
import baseSelect from '@/views/components/common/baseSelect'
const Member = { name: null, sex: null, birthday: null, certificateType: null, certId: null, nation: null, country: null, workUnit: null, title: null, degree: null, email: null, mobile: null, telephone: null, fax: null, projWork: null, forMonths: null, spec: null }
export default {
name: 'ProjGroupMember',
name: 'projectMemberInfo',
data () {
return {
}
},
props: {
members: {
dataList: {
type: Array,
default: () => {
return [{ ...Member }]
return []
}
},
},
components: {
paraMultiSelect, paraSelect, baseSelect
},
created () {
},
methods: {
removeMembers (item) {//移除成员
let index = this.members.indexOf(item)
if (index !== -1) {
this.members.splice(index, 1)
}
},
memberToTop (item) {//成员置顶
let index = this.members.indexOf(item)
if (index !== -1) {
this.members.splice(index, 1)
this.members.unshift({ ...item })
}
},
addMembers () {//添加成员
Member.showIndex = this.members.length + 1
this.members.push({ ...Member })
},
memberUp (index) {
let arr = this.members
arr.splice(index - 1, 1, ...arr.splice(index, 1, arr[index - 1]))
},
menberDown (index) {
let arr = this.members
arr.splice(index, 1, ...arr.splice(index + 1, 1, arr[index]))
}
}
}
</script>
<style scoped lang="less">
::v-deep .table_list {
.ant-col {
padding: 0px 0px;
text-align: left;
}
.ant-form-item-control {
line-height: 4px;
}
.ant-select {
font-size: 12px;
}
.ant-select .ant-select-selection--single {
height: 24px !important;
}
.ant-select .ant-select-selection__rendered {
line-height: 22px !important;
margin-right: 6px !important;
margin-left: 6px !important;
}
.ant-select .ant-select-selection__rendered .ant-form-item-control {
line-height: 26px !important;
}
.ant-col .ant-form-item .ant-col {
padding: 0px;
}
.from-table .row_center .ant-col {
text-align: left !important;
}
.special-pum-select .ant-form-item-control-wrapper {
display: flex;
justify-content: center;
align-content: center;
}
.special-pum-select .ant-form-item-children {
display: block;
}
.special-pum-select .ant-form-item-control {
line-height: 26px;
}
input[type="text"],
input[type="password"],
input[type="number"],
textarea {
box-sizing: border-box;
margin: 0;
padding: 0;
width: 100%;
height: 24px;
padding: 2px 6px;
color: rgba(0, 0, 0, 0.65);
font-size: 12px;
border-radius: 2px;
}
.ant-input {
height: 24px !important;
}
.ant-input-number-input {
height: 24px !important;
}
}
</style>
<template>
<div>
<a-row>
<a-col :span="24">
<div class="tb-title">
<span>项目课颖设置</span>
</div>
</a-col>
</a-row>
<a-row type="flex" class="row_center">
<a-col :span="1" class="bg-gray">
<div class="special-middle">
<div>序号</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div >课题名称</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div >课题承担单位</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div >所在地</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div >课颖负责人</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div >课题预算总经费</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div >其中:省科技经费</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>自筹经费</div>
</div>
</a-col>
<a-col :span="2" class="bg-gray">
<div class="special-middle">
<div>合作单位</div>
</div>
</a-col>
<a-col :span="7" class="bg-gray">
<div class="special-middle">
<div>附件</div>
</div>
</a-col>
</a-row>
<a-row v-for="(item, index) in dataList" :key="'projectSubList'+index" type="flex" class="row_center">
<a-col :span="1">
<div class="special-middle">
<div>
{{ index + 1 }}
</div>
</div>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
{{ item.projName }}
</div>
</div>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
{{ item.undertakingUnit }}
</div>
</div>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
{{ item.address }}
</div>
</div>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
{{ item.director }}
</div>
</div>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
{{ item.totalBudget }}
</div>
</div>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
{{ item.govBudget }}
</div>
</div>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
{{ item.selfBudget }}
</div>
</div>
</a-col>
<a-col :span="2">
<div class="special-middle">
<div>
{{ item.cooperativeUnits }}
</div>
</div>
</a-col>
<a-col :span="7">
<div class="special-middle">
<div v-if="item.fileName" style="text-align: left;">
<document-view :fileUrl="item.downloadUrl" :fileName="item.fileName" :imageArray="[item.downloadUrl]"></document-view>
</div>
<div v-else></div>
</div>
</a-col>
</a-row>
</div>
</template>
<script>
import documentView from '@/views/components/common/documentView'
export default {
name: "projectSubInfo",
components: {
documentView
},
props: {
dataList: {
type: Array,
default: () => {
return [{ ...ProjectSub }]
}
},
},
data () {
return {
};
},
created () {
},
computed: {
},
methods: {
},
};
</script>
<style scoped lang="less">
.file-description {
display: block;
width: 100%;
line-height: 22px;
padding: 3px 3px 3px 3px;
color: red;
white-space: normal;
word-wrap: break-word;
// text-indent: 1em;
}
.inner_from {
.ant-row-flex:last-child .ant-col {
border-bottom: 0;
}
.ant-row-flex .ant-col:first-child {
border-left: 0;
}
.ant-row-flex {
border-right: 0;
}
}
.special-middle {
.font_s {
margin: 0 6px;
}
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment