Commit ae0078a3 authored by xinzhedeai's avatar xinzhedeai

公司基本信息 列表 增改

parent 21df03ec
...@@ -624,19 +624,22 @@ var reqApis = function(){ ...@@ -624,19 +624,22 @@ var reqApis = function(){
return reqPublic('api/incubatorRevenue', type, param) return reqPublic('api/incubatorRevenue', type, param)
}, },
}, },
basicInfo: { // 企业基本信息 basicInfo: { // 企业基本信息 mode:7(默认元素隐藏,通过其他元素改变主动触发显示)
name: '企业基本信息', name: '企业基本信息',
Dict: { Dict: {
baseInfo: { baseInfo: {
"companyName": {name:"企业名称", must:true }, "companyName": {name:"企业名称", must:true },
"incubatorId": {name:"所属孵化器", must:true, 'type':'select', key:'name', }, "incubatorId": {name:"所属孵化器", must:true, table:0, 'type':'select', key:'name', },
"technicalField": {name:"所属技术领域", must:true, 'type':'select', key:'name', },
"entryDate": { "entryDate": {
name:"时间", must:true, table:0, 'type':'date', 'format':'yyyy-MM-dd', name:"时间", must:true, table:0, 'type':'date', 'format':'yyyy-MM-dd',
}, },
"founderCharacteristics": {name:"主要负责人创业特征", must:true, table:0, 'type':'select', key:'name', }, "founderCharacteristics": {name:"主要负责人创业特征", must:true, table:0, 'type':'select', key:'name', },
"companyType": {name:"企业类型", must:true, 'type':'select', key:'name', }, "companyType": {name:"企业类型", must:true, 'type':'select', key:'name', },
"address":{ "address":{
name:"地址",/* must:true, */disabled: true, type:'map', style:"display:flex", name:"地址",/* must:true, disabled: true,type:'map',style:"display:flex",*/ table:0,
mapConfig: { mapConfig: {
options: { options: {
zoom: 12, zoom: 12,
...@@ -707,17 +710,40 @@ var reqApis = function(){ ...@@ -707,17 +710,40 @@ var reqApis = function(){
"contactPhone": {name:"联系方式", must:true }, "contactPhone": {name:"联系方式", must:true },
"intellectualProperty": {name:"知识产权", table:0, 'type':'select', key:'name',}, "intellectualProperty": {name:"知识产权", table:0, 'type':'select', key:'name',},
"totalFunding": {name:"累计获得融资总额(万元)", table:0}, "totalFunding": {name:"累计获得融资总额(万元)", table:0},
"incubationStatus": {name:"企业孵化状态", table:0, 'type':'select', "incubationStatus": {name:"企业孵化状态", 'type':'select',
change: function (val){ change: function (val){
var Dict = this.Dict, slist = Dict.selectList, fitem = this.form.item; var Dict = this.Dict, slist = Dict.selectList, fitem = this.form.item;
Dict.baseInfo.graduationDate.form = ~~(val === 2); Dict.baseInfo.graduationDate.form = ~~(val === 2);
} }
}, },
"graduationDate": {name:"毕业日期", type:"date", table:0, form:0}, "graduationDate": {name:"毕业日期", type:"date", table:0, form:0},
"isHighTech": {name:"是否是高新技术企业", table:0, 'type':'select'}, // 新增字段
"isTechSme": {name:"是否是科技型中小企业", table:0, 'type':'select'}, "companyLevel": { 'type': 'select', 'name': '企业级别', table:0 },
"isHighGrowthInnovative": {name:"是否高成长创新型企业", table:0, 'type':'select'}, "technicalField": { 'type': 'select', 'name': '所属技术领域', table:0, },
"isAdvancedTechService": {name:"是否是技术先进型服务企业", table:0, 'type':'select'}, "registeredCapital": { 'type': '', 'name': '注册资金(万元)', table:0, },
"inventionPatentsNumber": { 'type': '', 'name': '发明专利数(件)', table:0, },
"inventionApplicationsNumber": { 'type': '', 'name': '发明申请数(件)', table:0, },
"utilityModelsNumber": { 'type': '', 'name': '实用新型数(件)', table:0, },
"softwareCopyrightNumber": { 'type': '', 'name': '软件著作权数(件)', table:0, },
"isHighGrowthInnovative": { 'type': 'select', 'name': '是否高成长创新型企业', table:0, },
"highGrowthInnovativeDate": { 'type': 'date', 'name': '最新评选日期', table:0, mode:7,},
"isHighTech": { 'type': 'select', 'name': '是否高新技术企业', table:0, },
"highTechDate": { 'type': 'date', 'name': '最新评选日期', table:0, mode:7, },
"isAdvancedTechService": { 'type': 'select', 'name': '是否技术先进型服务企业', table:0, },
"advancedTechServiceDate": { 'type': 'date', 'name': '最新评选日期', table:0, mode:7, },
"isSpecializedSpecialEnterprises": { 'type': 'select', 'name': '是否专精特新企业', table:0, },
"specializedSpecialEnterprisesDate": { 'type': 'date', 'name': '最新评选日期', table:0, mode:7, },
"isTechSme": { 'type': 'select', 'name': '是否科技型中小企业', table:0, },
"techSmeDate": { 'type': 'date', 'name': '最新评选日期', table:0, mode:7, },
"isLittleGiant": { 'type': 'select', 'name': '是否小巨人企业', table:0, },
"littleGiantDate": { 'type': 'date', 'name': '最新评选日期', table:0, mode:7, },
"isGazelle": { 'type': 'select', 'name': '是否瞪羚企业', table:0, },
"gazelleDate": { 'type': 'date', 'name': '最新评选日期', table:0, mode:7, },
// "isHighTech": {name:"是否是高新技术企业", table:0, 'type':'select'},
// "isTechSme": {name:"是否是科技型中小企业", table:0, 'type':'select'},
// "isHighGrowthInnovative": {name:"是否高成长创新型企业", table:0, 'type':'select'},
// "isAdvancedTechService": {name:"是否是技术先进型服务企业", table:0, 'type':'select'},
"introduction": { "introduction": {
name:"企业介绍", table:0, style:"display:block", 'type':'editor', name:"企业介绍", table:0, style:"display:block", 'type':'editor',
'change': function (file, pathBack) { 'change': function (file, pathBack) {
...@@ -727,6 +753,12 @@ var reqApis = function(){ ...@@ -727,6 +753,12 @@ var reqApis = function(){
}); });
} }
}, },
//"createBy": {name:"创建人ID", table:0}, //"createBy": {name:"创建人ID", table:0},
//"createTime": {name:"创建时间", }, //"createTime": {name:"创建时间", },
}, },
...@@ -745,6 +777,13 @@ var reqApis = function(){ ...@@ -745,6 +777,13 @@ var reqApis = function(){
isTechSme: [{ name: '', value: true, }, { name: '', value: false, },], isTechSme: [{ name: '', value: true, }, { name: '', value: false, },],
isHighGrowthInnovative: [{ name: '', value: true, }, { name: '', value: false, },], isHighGrowthInnovative: [{ name: '', value: true, }, { name: '', value: false, },],
isAdvancedTechService: [{ name: '', value: true, }, { name: '', value: false, },], isAdvancedTechService: [{ name: '', value: true, }, { name: '', value: false, },],
isGazelle: [{ name: '', value: true, }, { name: '', value: false, },],
isLittleGiant: [{ name: '', value: true, }, { name: '', value: false, },],
isSpecializedSpecialEnterprises: [{ name: '', value: true, }, { name: '', value: false, },],
companyType:[{"name":"服务企业","value":2},{"name":"中介机构","value":1}], companyType:[{"name":"服务企业","value":2},{"name":"中介机构","value":1}],
incubationStatus:[{"name":"在孵化企业","value":1},{"name":"毕业企业","value":2}], incubationStatus:[{"name":"在孵化企业","value":1},{"name":"毕业企业","value":2}],
}, },
...@@ -807,6 +846,9 @@ var reqApis = function(){ ...@@ -807,6 +846,9 @@ var reqApis = function(){
}, },
{ 'type': 'select', 'name': '在孵状态', 'word': 'incubationStatus', 'mode': 1, 'width': '140px' }, { 'type': 'select', 'name': '在孵状态', 'word': 'incubationStatus', 'mode': 1, 'width': '140px' },
{ 'type': 'select', 'name': '企业类型', 'word': 'companyType', 'mode': 1, 'width': '140px' }, { 'type': 'select', 'name': '企业类型', 'word': 'companyType', 'mode': 1, 'width': '140px' },
{ 'type': 'select', 'name': '企业级别', 'word': 'companyLevel', 'mode': 1, 'width': '140px' },
{ 'type': 'select', 'name': '所属技术领域', 'word': 'technicalField', 'mode': 9, 'width': '140px' },
{ 'type': 'select', 'name': '创新创业类型', 'word': 'innovationEntrepreneurship', 'mode': 1, 'width': '140px' },
{ 'type': 'daterange', 'defaultTime': ['00:00:00', '23:59:59'], 'name': '日期范围', 'word': 'daterange', 'mode': 0, 'width': '300px', format: 'yyyy-MM-dd' }, { 'type': 'daterange', 'defaultTime': ['00:00:00', '23:59:59'], 'name': '日期范围', 'word': 'daterange', 'mode': 0, 'width': '300px', format: 'yyyy-MM-dd' },
{ {
'type': 'button', 'label': '查询', 'width': '140px', 'icon': 'el-icon-search', 'click': function (e) { 'type': 'button', 'label': '查询', 'width': '140px', 'icon': 'el-icon-search', 'click': function (e) {
......
<!--
/**
* 表单通用组件
* @example1:
1, 引入
import cuTable from '@/components/cuTable';
2, 注册
export default {
components: {
cuTable
},
data() {
return {
Dict:{selectList:[]},
table:{
page: 1,
size: 10,
total: 0,
loading: false,
dataList:[],
},
rules: {},
}
},
mounted(){
// 获取基本信息
this.pageApi = Config.getModuleInfo(this);
this.Dict = this.pageApi.Dict;
this.form.config = this.pageApi.config;
this.rules = reqApi.getRules(this.Dict.baseInfo) || (this.Dict.rules || {});
},
methods: {
loadData(searchItem) {
var that = this;
//reqApi.common.getRequst.call(this, searchItem);
},
}
}
3, 创建
<cu-table
ref="cuTable"
:table="table"
:Dict="Dict"
:config="form.config"
/>
#4, 使用
* @author: Kimber
* @createtime: 2022/4/22(周五)
*/
-->
<template>
<!--工具栏-->
<div class="head-container" v-if="form.config.search && form.config.search[0]">
<!-- 搜索 -->
<template v-for="(item, index) in form.config.search">
<!-- <label v-if="item.name" class="el-form-item-label">{{item.name}}</label> -->
<template v-if="item.type==='string'">
<el-input v-model="form.query[item.word]" clearable :placeholder="item.name" :style="'width:'+item.width" @clear="item.clear && item.clear.call(_self.$parent)"/>
</template>
<template v-if="item.type==='select'">
<el-select v-model="form.query[item.word]" :placeholder="item.name" size="small" :style="'width:'+(item.width || 'auto')" :disabled="item.disabled" :multiple="(item.mode===9)" clearable @change="onEventInfos(item.change)" @clear="item.clear && item.clear.call(_self.$parent)">
<el-option v-for="obj in Dict.selectList[item.word]" :label="obj[item.key] || obj.name" :value="obj[item.val] || obj.value" ></el-option>
</el-select>
</template>
<template v-else-if="item.type === 'checkbox'">
<el-checkbox v-model="form.query[item.word]" :label="item.label"></el-checkbox>
</template>
<template v-else-if="item.type.indexOf('date') > -1">
<el-date-picker
v-model="form.query[item.word]"
:style="'width:'+item.width"
:type="item.datetype || item.type"
:value-format="item.format || 'yyyy-MM-dd'"
:default-time="item.defaultTime"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
clearable
@change="item.change && item.change.call(_self.$parent, $event)"
:placeholder="'请选择'+item.name"
>
</el-date-picker>
</template>
<el-button v-else-if="item.type==='button'" size="mini" :type="item.btntype || 'success'" :icon="item.icon" @click="item.click && item.click.call(_self.$parent, $event)">{{item.label}}</el-button>
</template>
</div>
</template>
<script>
export default {
data() {
return {
}
},
props:{
form: {
type: Object,
default: {},
},
Dict: {
type: Object,
default: {},
},
},
beforeCreate(){
},
created(){
},
mounted() {
},
methods: {
onEventInfos:qf.Vue.onEventInfos,
},
}
</script>
<style lang="scss" scope>
.head-container{
.el-form-item-label{
font-weight:500;margin-left:15px;line-height:normal;
&:first-child{margin-left:0;}
}
.el-button{margin-left:20px;}
.el-checkbox{margin-right:5px;}
}
</style>
<!--
/**
* 表单通用组件
* @example1:
1, 引入
import cuForm from '@/components/cuForm';
2, 注册
export default {
components: {
cuForm
},
data() {
return {
Dict:{selectList:[]},
rules: {},
form: {
title:'', visible:false, reqType:'add', historyDialog:false,
status:{cu:0},
query:{},
search:{},
item:{},
file:0,
config:{},
},
}
},
mounted(){
// 获取基本信息
this.pageApi = Config.getModuleInfo(this);
this.Dict = this.pageApi.Dict;
this.form.search = this.Dict.search;
this.form.config = this.pageApi.config;
this.rules = reqApi.getRules(this.Dict.baseInfo) || (this.Dict.rules || {});
},
methods: {
upload(e, key){
},
submitForm(form, item){
},
}
}
3, 创建
<cu-form
ref="cuForm"
:form="form"
:Dict="Dict"
:rules="rules"
:submit="submitForm"
:upload="upload"
/>
#4, 使用
* @author: Kimber
* @updatetime: 2022/5/19(周四)
* @createtime: 2021/12/09
*/
-->
<template>
<el-dialog id="printJS-form" class="qyzz-dialog" append-to-body :close-on-click-modal="false" :before-close="cancelForm" :visible.sync="form.visible" :title="form.title" :width="form.config.formWidth || '50%'">
<el-form :model="form.item" :rules="rules" :ref="ref" :inline="true" size="small" :label-width="(form.config.labelWidth || 80) + 'px'">
<el-form-item v-for="(item, key) in Dict.baseInfo" :prop="item.rule || key" :label="item.name" v-if="item.form !== 0" :style="item.style" :class="{'isHide': item.mode===7, [key]: item.mode===7}" :ref="key">
<template v-if="item.type === 'img'">
<div class="img-upload">
<label class="upload-area" for="imgUpload">
<div class="img-box" v-show="form.item[key]">
<img :src="item.src ? item.src.call(_self, form.item, key) : form.item[key]" v-model="form.item[key]">
</div>
<div class="upload-layer el-icon-plus" :class="{'show':!form.item[key]}">
<input type="file" style="display:none" id="imgUpload" @change="item.change && item.change.call(_self.$parent, $event, key)">
</div>
</label>
</div>
</template>
<template v-else-if="new String(item.type).indexOf('date') === 0">
<el-date-picker
v-model="form.item[key]"
:type="item.datetype || item.type"
:value-format="item.format || 'yyyy-MM-dd'"
:disabled="item.disabled"
placeholder="选择日期时间">
</el-date-picker>
</template>
<template v-else-if="item.type === 'select'">
<el-select v-model="form.item[key]" :placeholder="item.name" size="small" :style="'width:'+(item.width || 'auto')" :disabled="item.disabled" :multiple="item.multiple || false" @change="eventTransmit(item.change)">
<el-option v-for="obj in Dict.selectList[key]" :label="obj[item.key||'name']" :value="obj[item.val] || obj.value" ></el-option>
</el-select>
</template>
<template v-else-if="item.type === 'filename'">
<div class="file-box">
<div v-if="!!form.item[key]" style="width:260px;">
{{form.item[key]}} <label class="el-icon-edit btn2" for="cufilename"></label>
</div>
<label v-else class="upload-area el-icon-folder-add" for="cufilename" style="width:260px;font-size:30px"></label>
<input type="file" style="display:none" id="cufilename" @change="item.change && item.change.call(_self.$parent, $event, key)">
</div>
</template>
<template v-else-if="item.type === 'textarea'">
<el-input v-model="form.item[key]" :style="'width:'+(item.width || 380)+'px;'" type="textarea" :rows="item.rows" :disabled="item.disabled"/>
</template>
<template v-else-if="item.type === 'number'">
<el-input-number v-model.number="form.item[key]" :min="0" controls-position="right" />
</template>
<template v-else-if="item.type === 'text'">
<div class="form-text">{{form.item[key]}}</div>
</template>
<template v-else-if="item.type === 'radio'">
<el-radio-group v-model="form.item[key]" @change="eventTransmit(item.change)">
<el-radio v-for="obj in Dict.selectList[key]" :label="obj[item.val]" >{{obj[item.key]}}</el-radio>
</el-radio-group>
</template>
<template v-else-if="item.type === 'checkbox'">
<el-checkbox-group v-model="form.item[key]" @change="eventTransmit(item.change)">
<el-checkbox v-for="obj in Dict.selectList[key]" :label="obj[item.val]" >{{obj[item.key]}}</el-checkbox>
</el-checkbox-group>
</template>
<template v-else-if="item.type === 'map'">
<el-input v-model="form.item[key]" :style="'width:'+(item.width || 260)+'px;'" :placeholder="item.placeholder || ('请输入' + item.name)" :disabled="item.disabled"/>
<div class="map-ctn" :style="'width:'+(item.width || '80%')+';'+'height:'+(item.mapHeight || '180px')+';'">
<cu-amap
ref="amap"
:options="item.mapConfig.options"
:parent="_self"
/>
</div>
</template>
<!-- 富文本 -->
<template v-else-if="item.type === 'editor'">
<wang-editor
style="height:500px; overflow-y:hidden;"
:item="form.item"
:name="key"
:Dict="Dict"
:upload="item.change"
:formvue="_self.$parent"
/>
</template>
<template v-else>
<el-input v-if="item.ruleType==='number'" v-model.number="form.item[key]" :style="'width:'+(item.width || 260)+'px;'" :placeholder="item.placeholder || ('请输入' + item.name)" :disabled="item.disabled" @input="item.input && item.input.call(_self, $event)"/>
<el-input v-else v-model="form.item[key]" :style="'width:'+(item.width || 260)+'px;'" :placeholder="item.placeholder || ('请输入' + item.name)" :disabled="item.disabled" @input="item.input && item.input.call(_self, $event)"/>
</template>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="cancelForm">取消</el-button>
<el-button :loading="form.status.cu === 2" type="primary" @click="submit($refs[ref], form.item)">确认</el-button>
<!-- <el-button v-for="(item, i) in form.config.formBtn" :type="item.type" @click="item.callback && item.callback.call(_self, $refs[ref], form.item)">{{item.name}}</el-button> -->
</div>
</el-dialog>
</template>
<script>
import cuAmap from '@/components/AMap';
import WangEditor from '@/components/WangEditor/index'
export default {
data() {
return {
ref:'form1',
}
},
components: {cuAmap, WangEditor},
props:{
form: {
type: Object,
default: {},
},
rules: {
type: Object,
default: {},
},
Dict: {
type: Object,
default: {},
},
submit: {
type: Function,
default: () => {}
},
},
beforeCreate(){
},
created(){
},
mounted() {
},
methods: {
eventTransmit:qf.Vue.onEventInfos,
cancelForm(){this.$parent.form.visible = false;},
},
}
</script>
<style lang="scss" scope>
.qyzz-dialog{
display:flex;justify-content:center;align-items:center;
.el-form .block{display:block;}
.el-form .flex{display:flex;}
.img-upload{
position:relative;
.img-box{width:300px;height:200px;}
img{display:block;border:0;height:100%;width:100%;}
.upload-layer{
width:250px;height:100px;display:none;justify-content:center;align-items:center;
background-color:#fff;
border:1px dashed rgba(0, 0, 0, 0.1);background-color:rgba(0, 0, 0, 0.05);cursor:pointer;color:#999;
flex-direction:column;justify-content:center;align-items:center;
&:before{display:block;font-size:34px;}
&:after{display:block;content:"上传图片,支持小于2MB的图片";line-height:18px;}
}
.upload-area{
height:100%;width:100%;
}
.upload-layer.show{display:flex;}
}
.el-dialog{
margin-top:0 !important;
.el-dialog__body{
overflow-y:auto;max-height:78vh;
.el-form-item{
display:inline-flex;align-items:center;
.el-form-item__content{flex:1;}
}
.form-text{line-height:20px;}
.el-form-item__label{line-height:1.5;}
}
}
.file-box{
.btn2{font-size:23px;margin-left:10px;color:#48A2FF;cursor:pointer;}
}
.isHide{
display: none !important;
}
.isShow{
display: inline-flex !important;
}
}
</style>
\ No newline at end of file
This diff is collapsed.
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