近一年营销收入的计算

This commit is contained in:
熊丽君
2021-11-01 17:39:25 +08:00
parent 1e691dec8c
commit fa0d53f3cf

View File

@ -4,6 +4,127 @@
<img src="@/assets/image/banner-2.png" alt="" />
</div>
<div class="content start_box">
<!-- 基本信息 -->
<el-form
ref="formA"
:model="formA"
:rules="rulesA"
:show-message="false"
label-width="100px"
>
<section class="padding-left">
<p>企业基本情况</p>
<el-form-item label="企业全称" prop="companyName" class="mb10">
<el-input
v-model.trim="formA.companyName"
size="mini"
style="width:50%"
></el-input>
</el-form-item>
<el-row :gutter="20">
<el-col :span="7">
<el-form-item label="成立时间" prop="regTime" class="mb10">
<el-date-picker
size="mini"
v-model="formA.regTime"
value-format="yyyy-MM-dd HH:mm:ss"
type="date"
placeholder="选择日期时间"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item
label="计划申报时间"
label-width="110px"
class="mb10"
prop="plan"
>
<el-select
size="mini"
v-model="formA.plan"
placeholder="请选择"
@change="handlePlan"
>
<el-option
v-if="i.isShow"
v-for="i in planOption"
:key="i.value"
:label="i.label"
:value="i.value"
></el-option>
</el-select>
<span style="margin-left:20px;color:red" v-if="strShow">
<i class="el-icon-warning"></i>
<span style="margin-left:5px">{{ str }}</span>
</span>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="所属领域">
<el-row :gutter="10">
<el-col :span="4">
<el-form-item class="mb10">
<el-select
size="mini"
v-model="formA.one"
placeholder="请选择"
@change="handleOne"
>
<el-option
v-for="i in oneMenuList"
:key="i.id"
:label="i.name"
:value="i.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item prop="territoryId" class="mb10">
<el-select
size="mini"
v-model="formA.territoryId"
placeholder="请选择"
>
<el-option
v-for="i in twoMenuList"
:key="i.id"
:label="i.name"
:value="i.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item
class="mb10"
label="拥有所属领域发挥核心作用的知识产权?"
label-width="300px"
>
<el-select
size="mini"
v-model="formA.hasIntellectualProperty"
placeholder="请选择"
>
<el-option
v-for="item in propertyOption"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form-item>
</section>
</el-form>
<!-- 财务数据 -->
<p>二、企业基本数据</p>
<el-table :data="tableData" size="small" border>
<el-table-column
type="index"
@ -11,12 +132,12 @@
label="序号"
width="60"
></el-table-column>
<el-table-column
prop="years"
align="center"
label="年限"
width="80"
></el-table-column>
<el-table-column prop="years" align="center" label="年限" width="100">
<template slot="header" slot-scope="scope">
<div>年限</div>
<div>(从前往后)</div>
</template>
</el-table-column>
<el-table-column
align="center"
@ -29,14 +150,14 @@
type="text"
v-model="row.total_income"
v-else
placeholder="请输入总收入"
placeholder="请输入"
></el-input>
</template>
</el-table-column>
<el-table-column
align="center"
header-align="center"
label="产品收入(万元)"
label="高新技术产品收入(万元)"
>
<template slot-scope="{ row, $index }">
<span v-if="!showEdit[$index]">{{ row.skill_income }}</span>
@ -44,7 +165,7 @@
type="text"
v-model="row.skill_income"
v-else
placeholder="请输入高新技术产品收入"
placeholder="请输入"
></el-input>
</template>
</el-table-column>
@ -60,7 +181,7 @@
type="text"
v-model="row.sale_income"
v-else
placeholder="请输入销售收入"
placeholder="请输入"
></el-input>
</template>
</el-table-column>
@ -76,7 +197,7 @@
type="text"
v-model="row.r_d_expenses"
v-else
placeholder="请输入研发费用"
placeholder="请输入"
></el-input>
</template>
</el-table-column>
@ -92,7 +213,7 @@
type="text"
v-model="row.net_assets"
v-else
placeholder="请输入净资产"
placeholder="请输入"
></el-input>
</template>
</el-table-column>
@ -108,12 +229,12 @@
type="text"
v-model="row.achievements"
v-else
placeholder="请输入成果"
placeholder="请输入"
></el-input>
</template>
</el-table-column>
<el-table-column
<!-- <el-table-column
header-align="center"
align="center"
label="操作"
@ -143,88 +264,480 @@
>取消</el-button
>
</template>
</el-table-column>
</el-table-column> -->
</el-table>
<!-- 人力资源 -->
<p>三、人力资源</p>
<el-form :model="formA" :rules="rulesB" ref="formB">
<el-row :gutter="20">
<el-col :span="5">
<el-form-item
label="当年年均员工数"
label-width="120px"
class="mb0"
>
<el-input-number
v-model="formA.totalEmployee"
size="small"
></el-input-number>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item
label="技术创新科技人员入职满183天"
label-width="280px"
class="mb0"
>
<el-input-number
v-model="formA.scienceEmployee"
size="small"
></el-input-number>
</el-form-item>
</el-col>
</el-row>
<p>四、其他</p>
<el-form-item
class="mb0"
label="企业近一年内未发生重大安全、重大质量事故或严重环境违法行为。 "
>
<el-select size="mini" v-model="formA.hasBad" placeholder="请选择">
<el-option
v-for="item in propertyOption"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<p>五、知识产权</p>
<!-- <el-form-item class="mb0" label="技术的先进程度:" prop="advancedLevel">
<el-select
v-model="formA.advancedLevel"
placeholder="请选择"
size="mini"
>
<el-option
v-for="item in advancedOption"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
class="mb0"
label="对主要产品(服务)在技术上发挥核心支持作用:"
prop="supportLevel"
>
<el-select
v-model="formA.supportLevel"
placeholder="请选择"
size="mini"
>
<el-option
v-for="item in supportOption"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item> -->
<el-form-item
class="mb0"
label="自主研发的Ⅰ类(发明专利、植物新品种、国家新药、集成电路布图等)数量:"
>
<el-input-number
v-model="formA.propertyNumI"
size="small"
></el-input-number>
</el-form-item>
<el-form-item
class="mb0"
label="自主研发的Ⅱ类(实用新型专利、外观设计专利、软件著作权等(不含商标))数量:"
>
<el-input-number
v-model="formA.propertyNumII"
size="small"
></el-input-number>
</el-form-item>
<el-form-item
class="mb0"
label="企业参与过编制国家标准、行业标准、检测方法、技术规范?"
>
<el-select
v-model="formA.hasStandard"
placeholder="请选择"
size="mini"
>
<el-option
v-for="item in propertyOption"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<p>六、组织管理水平(多选)</p>
<el-form-item prop="management">
<el-checkbox-group v-model="formA.management" @change="changeBox">
<el-checkbox label="1">
制定了企业研究开发的组织管理制度,建立了研发投入核算体系,编制了研发费用辅助账。
</el-checkbox>
<el-checkbox label="2">
设立了内部科学技术研究开发机构并具备相应的科研条件,与国内外研究开发机构开展多种形式产学研合作
</el-checkbox>
<el-checkbox label="3">
建立了科技成果转化的组织实施与激励奖励制度,建立开放式的创新创业平台。
</el-checkbox>
<br />
<el-checkbox label="4">
建立了科技人员的培养进修、职工技能培训、优秀人才引进,以及人才绩效评价奖励制度。
</el-checkbox>
<br />
<el-checkbox label="5">
以上选项都不匹配。
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<!-- (单位:万元) -->
<!-- <p>七、企业成长性</p>
<el-form-item
class="mb0"
label="净资产增长率赋值其中合肥市高新区企业政策兑现要求上一年度净资产达40万元以上"
>
<el-input-number v-model="formA.assetGrowth"></el-input-number>
</el-form-item>
<el-form-item label="销售收入增长率赋值">
<el-input-number v-model="formA.sellGrowth"></el-input-number>
</el-form-item> -->
</el-form>
<!-- 提交 -->
<el-button type="warning" @click="submitFormA('formA')">提 交</el-button>
</div>
<el-dialog title="提示" :visible.sync="dialogVisible" width="30%">
<span>{{ formA.score }}</span>
<p style="font-weight: bold">平台建议:</p>
<p v-for="(item, index) in formA.badSeason" :key="index">
{{ index + 1 }}{{ item }}
</p>
<span slot="footer" class="dialog-footer">
<el-button
@click="
(dialogVisible = false), (formA.score = 0), (formA.badSeason = [])
"
> </el-button
>
<el-button type="primary" @click="dialogVisible = false"
> </el-button
>
</span>
</el-dialog>
</div>
</template>
<script>
import {
getTerritoryOneMenu,
getTerritoryTwoMenu,
firstAssess,
secondAssess
} from '@/api/startEvaluation';
const dataList = [
{
id: 1,
years: '第一年',
total_income: '1',
skill_income: '1',
sale_income: '1',
r_d_expenses: '1',
net_assets: '1',
achievements: '1'
total_income: '',
skill_income: '',
sale_income: '',
r_d_expenses: '',
net_assets: '',
achievements: ''
},
{
id: 2,
years: '第二年',
total_income: '2',
skill_income: '2',
sale_income: '2',
r_d_expenses: '2',
net_assets: '2',
achievements: '2'
total_income: '',
skill_income: '',
sale_income: '',
r_d_expenses: '',
net_assets: '',
achievements: ''
},
{
id: 3,
years: '第三年',
total_income: '3',
skill_income: '3',
sale_income: '3',
r_d_expenses: '3',
net_assets: '3',
achievements: '3'
total_income: '',
skill_income: '',
sale_income: '',
r_d_expenses: '',
net_assets: '',
achievements: ''
}
];
export default {
data() {
return {
dialogVisible: false,
myYear: new Date().getFullYear(), // 当前年份
strShow: false,
str: '',
propertyOption: [
{
value: 0,
label: '否'
},
{
value: 1,
label: '是'
}
], // 核心领域发挥作用知识产权 0->否 1->是 和 四、其他
planOption: [
{
value: 0,
label: '4月',
labelCopy: '4月',
time: '-04-01 00:00:00',
isShow: true
},
{
value: 1,
label: '7月',
labelCopy: '7月',
time: '-07-01 00:00:00',
isShow: true
}
],
advancedOption: [
{
value: 4,
label: '高'
},
{
value: 3,
label: '较高'
},
{
value: 2,
label: '一般'
},
{
value: 1,
label: '较低'
},
{
value: 0,
label: '无'
}
],
supportOption: [
{
value: 4,
label: '强'
},
{
value: 3,
label: '较强'
},
{
value: 2,
label: '一般'
},
{
value: 1,
label: '较弱'
},
{
value: 0,
label: '无'
}
],
oneMenuList: [], // 所属领域一级菜单
twoMenuList: [], // 所属领域二级菜单
formA: {
companyName: '',
regTime: '',
territoryId: '',
hasIntellectualProperty: 0,
totalEmployee: 0,
scienceEmployee: 0,
hasBad: 0,
advancedLevel: '',
supportLevel: '',
propertyNumI: 0,
propertyNumII: 0,
hasStandard: 0,
management: [],
score: 0,
badSeason: []
// assetGrowth: '',
// sellGrowth: ''
}, // 高企认定门槛
array: [],
//控制修改显示隐藏
showEdit: [],
showEdit: [true, true, true],
showName: [], //显示姓名
showAge: [], //显示年龄
total_income: '',
skill_income: '',
tableData: JSON.parse(JSON.stringify(dataList))
// total_income: '',
// skill_income: '',
tableData: [],
rulesA: {
companyName: [
{ required: true, message: '请输入企业全称', trigger: 'blur' }
],
territoryId: [
{ required: true, message: '请选择所属领域', trigger: 'change' }
],
regTime: [
{
required: true,
message: '请选择成立时间',
trigger: 'change'
}
],
plan: [
{
required: true,
trigger: 'change'
}
]
},
rulesB: {
advancedLevel: [
{ required: true, message: '请选择', trigger: 'change' }
],
supportLevel: [
{ required: true, message: '请选择', trigger: 'change' }
],
management: [
{
type: 'array',
required: true,
message: '请至少选择一项组织管理水平',
trigger: 'change'
}
]
}
};
},
watch: {
'formA.regTime'(newVal, oldVal) {
delete this.formA.plan;
this.strShow = false;
this.tableData = [];
if (newVal) {
const myDate = new Date();
const year = myDate.getFullYear(); // 当前年份
const month = myDate.getMonth() + 1; // 当前月份
if (month >= 4 && month <= 7) {
this.planOption[0].isShow = false;
} else if (month > 7) {
if (year == this.myYear) {
this.myYear += 1;
}
}
this.planOption.forEach(item => {
item.newTime = this.myYear + item.time;
item.label = this.myYear + '年' + item.labelCopy;
});
const thu = new Date(`${this.myYear}-04-01 00:00:00`).getTime(); // 当前年份的四月时间戳
const jul = new Date(`${this.myYear}-07-01 00:00:00`).getTime(); // 当前年份的七月时间戳
// const now = new Date(this.parseTime(new Date(), '{y}-{m}')).getTime();
const past = new Date(newVal).getTime();
const difference = thu - past;
// console.log(difference);
const oneYear = 1000 * 60 * 60 * 24 * 365; // 一年时间戳
const twoYear = 1000 * 60 * 60 * 24 * 365 * 2; // 两年时间戳
// if (difference < oneYear) {
// console.log('时间不到一年');
// } else if (difference >= oneYear && difference < twoYear) {
// console.log('满一年不到2年');
// }
} else {
this.planOption.forEach(item => {
item.isShow = true;
});
}
}
},
methods: {
changeBox(e) {
e.forEach(item => {
if (item == 5) {
this.formA.management = ['5'];
}
});
},
handlePlan(e) {
if (!this.formA.regTime) return;
const thu = new Date(this.planOption[e].newTime).getTime(); // 当前年份时间戳
const past = new Date(this.formA.regTime).getTime();
const difference = thu - past;
const oneYear = 1000 * 60 * 60 * 24 * 365; // 一年时间戳
const twoYear = 1000 * 60 * 60 * 24 * 365 * 2; // 两年时间戳
const threeYear = 1000 * 60 * 60 * 24 * 365 * 3; // 三年时间戳
this.strShow = true;
if (difference < oneYear) {
this.str = '时间不到1年';
this.tableData = [];
} else if (difference >= oneYear && difference < twoYear) {
this.str = '满1年不到2年';
this.tableData = [JSON.parse(JSON.stringify(dataList[0]))];
} else if (difference >= twoYear && difference < threeYear) {
this.str = '满2年不到3年';
this.tableData = JSON.parse(JSON.stringify(dataList));
this.tableData.pop();
} else {
this.str = '满3年及以上';
this.tableData = JSON.parse(JSON.stringify(dataList));
}
},
// 切换一级领域
handleOne(e) {
this.formA.territoryId = '';
getTerritoryTwoMenu({ id: e }).then(({ data }) => {
this.twoMenuList = data;
});
},
//点击修改
showUpdate(index, row) {
this.array[index] = Object.assign({}, row);
this.showEdit[index] = true;
this.$set(this.showEdit, index, true); //这里要用$set方法否则页面状态不更新
},
//取消修改
cancelUpdate(index) {
this.$confirm('取消修改?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
this.$set(this.tableData, index, this.array[index]);
this.$set(this.showEdit, index, false);
this.$set(this.showName, index, '');
this.$set(this.showAge, index, '');
})
.catch(() => {});
},
// //取消修改
// cancelUpdate(index) {
// this.$confirm('取消修改?', '提示', {
// confirmButtonText: '确定',
// cancelButtonText: '取消',
// type: 'warning'
// })
// .then(() => {
// this.$set(this.tableData, index, this.array[index]);
// this.$set(this.showEdit, index, false);
// this.$set(this.showName, index, '');
// this.$set(this.showAge, index, '');
// })
// .catch(() => {});
// },
//提交修改
submit(index, row) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1000
});
this.$set(this.showEdit, index, false);
// this.$message({
// message: '操作成功',
// type: 'success',
// duration: 1000
// });
// console.log(row);
// for (let key in row) {
// if (row[key] === '') {
// return this.msgError('请输入每一项');
// }
// }
// this.$set(this.showEdit, index, false);
//发送请求,隐藏输入框
// this.axios({
// url: 'XXXXXXX',
@ -248,7 +761,197 @@ export default {
// this.$message.error(data.msg);
// }
// });
},
// 提交
submitFormA(formName) {
if (!this.formA.hasIntellectualProperty) {
this.formA.badSeason.push('没有知识产权;');
}
let yearAch = 0;
this.tableData.map((item, index) => {
yearAch += parseInt(item.achievements);
if ((item.skill_income / item.total_income) * 100 > 60) {
item.isA = true;
} else {
item.isA = false;
}
if (item.sale_income <= 5000) {
if ((item.r_d_expenses / item.sale_income) * 100 >= 5) {
item.isB = true;
} else {
item.isB = false;
}
} else if (item.sale_income <= 200000000) {
if ((item.r_d_expenses / item.sale_income) * 100 >= 4) {
item.isC = true;
} else {
item.isC = false;
}
} else if (item.sale_income > 200000000) {
if ((item.r_d_expenses / item.sale_income) * 100 >= 3) {
item.isD = true;
} else {
item.isD = false;
}
}
});
if (!this.tableData[this.tableData.length - 1].isA) {
this.formA.badSeason.push(
'近一年收入占企业同期总收入的比例不得低于 60%;'
);
}
// 最近一年销售收入<=5000 研发费用/销售收入*100
if (this.tableData[this.tableData.length - 1].sale_income <= 5000) {
if (!this.tableData[this.tableData.length - 1].isB) {
this.formA.badSeason.push(
'近一年研究开发费用总额占同期销售收入总额的比例不得低于 5%;'
);
}
} else if (
this.tableData[this.tableData.length - 1].sale_income <= 200000000
) {
if (!this.tableData[this.tableData.length - 1].isC) {
this.formA.badSeason.push(
'近一年研究开发费用总额占同期销售收入总额的比例不得低于 4%;'
);
}
} else if (
this.tableData[this.tableData.length - 1].sale_income > 200000000
) {
if (!this.tableData[this.tableData.length - 1].isD) {
this.formA.badSeason.push(
'近一年研究开发费用总额占同期销售收入总额的比例不得低于 3%;'
);
}
}
if (!this.formA.hasBad) {
this.formA.badSeason.push('发生重大安全事故;');
}
console.log(this.formA.badSeason);
// 1.1 技术的先进程度得分
if (this.formA.advancedLevel >= 4) {
this.formA.score += 8;
} else if (this.formA.advancedLevel >= 3) {
this.formA.score += 6;
} else if (this.formA.advancedLevel >= 2) {
this.formA.score += 4;
} else if (this.formA.advancedLevel >= 1) {
this.formA.score += 2;
}
// 1.2 在技术上发挥核心支持作用得分
if (this.formA.supportLevel >= 4) {
this.formA.score += 8;
} else if (this.formA.supportLevel >= 3) {
this.formA.score += 6;
} else if (this.formA.supportLevel >= 2) {
this.formA.score += 4;
} else if (this.formA.supportLevel >= 1) {
this.formA.score += 2;
}
// 1.3 知识产权数量
if (this.formA.propertyNumI >= 1) {
this.formA.score += 8;
} else {
if (this.formA.propertyNumII >= 5) {
this.formA.score += 6;
} else if (this.formA.propertyNumII >= 3) {
this.formA.score += 4;
} else if (this.formA.propertyNumII >= 1) {
this.formA.score += 2;
}
}
// 1.5 企业参与***的情况得分
if (this.formA.hasStandard) {
this.formA.score += 2;
}
yearAch = (yearAch / this.tableData.length).toFixed(1) - 0;
// 2 年均成果转换得分
if (yearAch >= 5) {
this.formA.score += 30;
} else if (yearAch >= 4) {
this.formA.score += 24;
} else if (yearAch >= 3) {
this.formA.score += 18;
} else if (yearAch >= 2) {
this.formA.score += 12;
} else if (yearAch >= 1) {
this.formA.score += 6;
}
// 3 研发组织管理水平
this.formA.management.map(item => {
if (item == 1 || item == 2) {
this.formA.score += 6;
}
if (item == 3 || item == 4) {
this.formA.score += 4;
}
});
// 4.1 净资产增长率
const assetsRate =
((this.tableData[1].net_assets / this.tableData[0].net_assets +
this.tableData[2].net_assets / this.tableData[1].net_assets) /
2 -
1) *
100;
console.log(assetsRate);
// if (this.tableData[0].net_assets == 0) {
// const assetsRate2 =
// this.tableData[2].net_assets / this.tableData[1].net_assets - 1;
// }
// 4.2 销售收入增长率
const assetsRate3 =
((this.tableData[1].sale_income / this.tableData[0].sale_income +
this.tableData[2].sale_income / this.tableData[1].sale_income) /
2 -
1) *
100;
console.log(assetsRate3);
// if (this.tableData[0].sale_income == 0) {
// const assetsRate4 =
// this.tableData[2].sale_income / this.tableData[1].sale_income - 1;
// }
this.dialogVisible = true;
this.$refs[formName].validate(valid => {
if (valid) {
this.$refs['formB'].validate(flag => {
if (flag) {
console.log(this.formA);
console.log(this.tableData);
this.dialogVisible = true;
}
});
// this.formA.territoryIName = this.oneMenuList.find(item => {
// return item.id == this.formA.one;
// }).name;
// this.formA.territoryIIName = this.twoMenuList.find(item => {
// return item.id == this.formA.territoryId;
// }).name;
// firstAssess(this.formA).then(({ data }) => {
// if (!data.badSeason.length) {
// // 通过
// this.status = 2;
// this.formAData = data;
// } else {
// // 没通过
// this.badSeason = data.badSeason;
// this.status = -2;
// }
// this.index++;
// });
} else {
console.log('error submit!!');
return false;
}
});
}
},
created() {
getTerritoryOneMenu().then(({ data }) => {
this.oneMenuList = data;
});
}
};
</script>
@ -269,6 +972,31 @@ export default {
background-color: #fff;
border-radius: 15px;
min-height: 350px;
p {
margin: 10px 0;
}
.mb0 {
margin-bottom: 0;
}
.mb10 {
margin-bottom: 10px;
}
.el-checkbox-group {
line-height: 20px;
.el-checkbox {
// margin: 5px 0;
}
}
// /deep/.el-form-item__label {
// font-size: 16px;
// color: #606266;
// font-weight: 700;
// }
/deep/.el-checkbox__label {
font-size: 14px;
color: #606266;
font-weight: 700;
}
}
}
</style>