Commit 3058730a by lixinming
parents ab4de35c cd9c50ab
<config>
<port>9098</port>
<sign>xxx90909082fsdahfjosadjfpoiwausjorip2hjklrhn1ioud0u124rx0qwejfokasjfolksaujfoas</sign>
<dbServer>http://192.168.0.72:9096</dbServer>
<imgUrl>http://192.168.0.72:9098</imgUrl>
<imgFileUrl>http://192.168.0.72:9097</imgFileUrl>
<dbServer>http://192.168.0.71:9096</dbServer>
<imgUrl>http://192.168.0.71:9098</imgUrl>
<imgFileUrl>http://192.168.0.71:9097</imgFileUrl>
<fileUrl>/yuyi/files/1/</fileUrl>
<qcc>
<key>2b14555ce89346e8b96684e2e2a1c7c2</key>
......
......@@ -427,7 +427,7 @@ async function 工商信息(uscc) {
// isNaturalPersonHolding: 工商信息., //是否自然人控股
// industry: 工商信息., //领域
// moreMail: 工商信息., //更多邮箱
logonAddress: 工商信息.Address, //注册地址
// logonAddress: 工商信息.Address, //注册地址
// tongXinDiZhi: 工商信息., //通信地址
// liaison: 工商信息., //联系人
// liaisonPhone: 工商信息., //联系电话
......
......@@ -14,6 +14,7 @@ import moment = require("moment");
import { changeAdd, extractData } from "../util/piecemeal";
import { EnterpriseApplyForConfig } from "../config/splitResult/enterprise";
import { changeEnumValue } from "../util/verificationEnum";
import { systemSendMail } from "./mail";
......@@ -80,7 +81,7 @@ export async function enterpriseServiceOption(esId:string, fangKui:string) {
*/
export async function enterpriseServiceEnd(esId:string, outcome:number, desc:string) {
let selectParam:any = {esId};
let filesList = ["esId"];
let filesList = ["esId", "eId"];
let resInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业服务表, selectParam, filesList);
if ( !resInfo || !resInfo.esId) {
throw new BizError(ERRORENUM.数据不存在);
......@@ -89,7 +90,13 @@ export async function enterpriseServiceEnd(esId:string, outcome:number, desc:str
let updateInfo = {outcome, followUpStatus:enumConfig.FOLLOWUPSTATUS.已完成, desc, resolveTime:getMySqlMs()};
await operationalData(OPERATIONALDATATYPE.修改, TABLENAME.企业服务表,updateInfo, {esId});
return {
isSuccess:true
};
}
\ No newline at end of file
//发送邮件
let mailStr = "";
mailStr +=`<p>您的服务处理结果为:${changeEnumValue(enumConfig.OUTCOME, outcome)}</p>`;
mailStr +=`<p>${desc}</p>`;
await systemSendMail(resInfo.eId, enumConfig.MAILTYPE.结束企业服务, mailStr );
return { isSuccess:true };
}
......@@ -32,7 +32,7 @@ export async function getBaseData() {
"在孵企业":0,
"迁出企业":0,
"毕业企业":0,
"出租率": "", // 添加出租率字段
// "出租率": "", // 添加出租率字段
// "园区面积":0,//新增
// "产业规模": 0,
// "总资产投入金额": 0,
......@@ -42,7 +42,7 @@ export async function getBaseData() {
fuhuaPinfen:0, //孵化器评分 没有该字段
fuhuaInfo:{ //孵化器信息
},
entryInfo: {}, // 孵化器入驻信息
entryInfo: [], // 孵化器入驻信息
promotionInfo: {} // 运营推广信息
};
......@@ -93,7 +93,7 @@ export async function getBaseData() {
// baseData.fuhuaData["总资产投入金额"] = yuyiList.totalAssetInvestmentAmount;
// baseData.fuhuaData["引入机构数量"] = yuyiList.numberOfInstitutionsIntroduced;
// baseData.fuhuaData["引入机构投资"] = yuyiList.introduceInstitutionalInvestment;
baseData.fuhuaData["出租率"] = yuyiList.rentRate;//出租率
// baseData.fuhuaData["出租率"] = yuyiList.rentRate;//出租率
baseData.fuhuaInfo = {
"运营名称":yuyiList.operateName,
......@@ -116,38 +116,55 @@ export async function getBaseData() {
* 孵化器入驻信息
*/
let entryList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.入驻信息表, {}, [`info_enterId`, `building`, `occupancyRate`, `enteredEnterprises`]);
baseData.entryInfo = {"1":{"入驻率":"", "入驻企业":""}, "3":{"入驻率":"", "入驻企业":""}, "4":{"入驻率":"", "入驻企业":""}};
let entryInfo = {"1":{"入驻率":"", "入驻企业":""}, "3":{"入驻率":"", "入驻企业":""}, "4":{"入驻率":"", "入驻企业":""}};
if (entryList.length) {
entryList.forEach( info => {
// let building = changeEnumValue(BUILDING, info.building);
let building = info.building;
if (!baseData.entryInfo[building]) {
baseData.entryInfo[building] = { "入驻率": "", "入驻企业": "" };
if (!entryInfo[building]) {
entryInfo[building] = { "入驻率": "", "入驻企业": "" };
}
baseData.entryInfo[building].入驻率 = info.occupancyRate;
baseData.entryInfo[building].入驻企业 = info.enteredEnterprises;
entryInfo[building].入驻率 = info.occupancyRate;
entryInfo[building].入驻企业 = info.enteredEnterprises;
})
}
baseData.entryInfo = [];
for (let key in entryInfo) {
let dataList = [];
for (let name in entryInfo[key]) {
dataList.push({key:name, value:entryInfo[key][name]});
}
baseData.entryInfo.push({name:changeEnumValue(BUILDING, parseInt(key)), dataList});
}
/**
* 运营推广(次数)
*/
let promotionList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.运营推广信息表,{}, ["opId","promotionType", "promotionApp", "promotionNum"]);
baseData.promotionInfo = {"线上推广": {}, "线下推广": {}};
let promotionInfo = {"线上推广": {}, "线下推广": {}};
if (promotionList.length) {
promotionList.forEach( info => {
let appStr = "";
if (info.promotionType == PROMOTIONTYPE.线上推广) {
appStr = changeEnumValue(ONLINEPROMOTION, info.promotionApp);
baseData.promotionInfo["线上推广"][appStr] = info.promotionNum;
promotionInfo["线上推广"][appStr] = info.promotionNum;
} else if (info.promotionType == PROMOTIONTYPE.线下推广) {
appStr = changeEnumValue(OFFLINEPROMOTION, info.promotionApp);
baseData.promotionInfo["线下推广"][appStr] = info.promotionNum;
promotionInfo["线下推广"][appStr] = info.promotionNum;
}
})
}
baseData.promotionInfo = {"线上推广": [], "线下推广": []};
for (let key in promotionInfo) {
let infoData = promotionInfo[key];
for (let name in infoData) {
baseData.promotionInfo[key].push({key:name, value:infoData[name]});
}
}
return {baseData};
}
......@@ -269,20 +286,31 @@ export async function getOperateData(year) {
}
export function getYearList() {
// 获取当前年份
const currentTime = moment();
const sixMonthsAgo = currentTime.clone().subtract(6, 'year');
/**
* 根据传入的年份生成当前年份与目标年份之间的所有年份列表
* @param targetYear 传入的年份
* @returns
*/
export function getYearList(targetYear) {
const currentYear = new Date().getFullYear();
// 初始化一个空数组来存储年份
const years = [];
// 使用一个循环来添加当前年份到6年后的每一个年份到数组中
for (let i = 0; i <= 6; i++) {
years.push(currentYear - i);
// 生成目标年份与当前年份之间的年份列表
const startYear = Math.min(targetYear, currentYear);
const endYear = Math.max(targetYear, currentYear);
let years = [];
for (let year = startYear; year <= endYear; year++) {
years.push(year);
}
// 如果结果不足5年,返回近5年列表
if (years.length < 5) {
years = [];
for (let year = currentYear - 4; year <= currentYear; year++) {
years.push(year);
}
}
// 确保输出顺序始终为时间正序
years.sort((a, b) => {
return a - b;
})
......@@ -350,16 +378,22 @@ export async function getWorthDate() {
/**纳税趋势 */
let nashuiList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业经营信息, {}, {});
let nashuiData = {};
nashuiList.forEach( info => {
let year = moment(info.annual).format("YYYY");
if (!nashuiData[year]) nashuiData[year] = 0;
nashuiData[year] += parseFloat(info.TXP);
})
for (let key in nashuiData) {
worthData.TXP.push({key, value:nashuiData[key].toString()});
let minNaShuiYear = Math.min( ...nashuiList.map(item => new Date(item.investmentDate).getFullYear()) );
if (!nashuiList.length) minNaShuiYear = new Date().getFullYear();
let nashuiYear = getYearList(minNaShuiYear);
for(let i = 0; i < nashuiYear.length; i++) {
let nashui = 0;
nashuiList.forEach( info => {
let parsedStartTime = moment(info.annual);
if (parsedStartTime.isValid() && parsedStartTime.year() === nashuiYear[i]) {
nashui += parseFloat(info.TXP);
}
})
worthData.TXP.push({key:nashuiYear[i], value:nashui.toString()});
}
//X轴排序
worthData.TXP.sort( (a, b) => {
return a.key - b.key;
......@@ -368,7 +402,9 @@ export async function getWorthDate() {
/**融资额趋势分析 */
let 融资情况 = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.企业融资, {}, []);
let year = getYearList();
let minYear = Math.min( ...融资情况.map(item => new Date(item.investmentDate).getFullYear()) );
if (!融资情况.length) minYear = new Date().getFullYear();
let year = getYearList(minYear);
for(let i = 0; i < year.length; i++) {
let 融资金额 = 0;
融资情况.forEach(info => {
......@@ -381,33 +417,38 @@ export async function getWorthDate() {
}
/**就业人数趋势 */
let jiuyeList = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, {}, {});
let jiuyeInfo = {};
jiuyeList.forEach( info => {
let year = moment(info.annual).format("YYYY");
if (!jiuyeInfo[year]) jiuyeInfo[year] = 0;
if (info.zhuanKe) {
jiuyeInfo[year] += parseInt(info.zhuanKe);
}
if (info.benKe) {
jiuyeInfo[year] += parseInt(info.benKe);
}
if (info.shuoshi) {
jiuyeInfo[year] += parseInt(info.shuoshi);
}
if (info.boShi) {
jiuyeInfo[year] += parseInt(info.boShi);
}
if (info.boshiyishang) {
jiuyeInfo[year] += parseInt(info.boshiyishang);
}
if (info.qiTa) {
jiuyeInfo[year] += parseInt(info.qiTa);
}
})
for(let key in jiuyeInfo) {
worthData.jiuye.push({key, value:jiuyeInfo[key].toString()});
let 参保记录 = await selectData(OPERATIONALDATATYPE.查询多个, TABLENAME.参保记录, {}, {});
let minJiuyeYear = Math.min( ...参保记录.map(item => new Date(item.investmentDate).getFullYear()) );
if (!参保记录.length) minJiuyeYear = new Date().getFullYear();
let jiuyeyear = getYearList(minJiuyeYear);
for(let i = 0; i < jiuyeyear.length; i++) {
let 就业人数 = 0;
参保记录.forEach(info => {
let 参保日期 = moment(info.annual);
if (参保日期.isValid() && 参保日期.year() === jiuyeyear[i]) {
if (info.zhuanKe) {
就业人数 += parseInt(info.zhuanKe);
}
if (info.benKe) {
就业人数 += parseInt(info.benKe);
}
if (info.shuoshi) {
就业人数 += parseInt(info.shuoshi);
}
if (info.boShi) {
就业人数 += parseInt(info.boShi);
}
if (info.boshiyishang) {
就业人数 += parseInt(info.boshiyishang);
}
if (info.qiTa) {
就业人数 += parseInt(info.qiTa);
}
}
});
worthData.jiuye.push({key:jiuyeyear[i], value:就业人数.toString()});
}
//X轴排序
worthData.jiuye.sort( (a, b) => {
return a.key - b.key;
......
......@@ -18,8 +18,8 @@ let transporter = nodemailer.createTransport({
}
});
async function send(toMail, name, type, code?) {
let {title, mailStr} = getModel(name, type, code);
async function send(toMail, name, type, otherStr?, code?) {
let {title, mailStr} = getModel(name, type, otherStr, code);
// 设置邮件选项
let mailOptions = {
from: '羽翼 <1685675085@qq.com>', // 发送者地址
......@@ -41,7 +41,7 @@ async function send(toMail, name, type, code?) {
}
function getModel(name, type, code?) {
function getModel(name, type, otherStr?, code?) {
let str = "";
let title = "";
switch (type) {
......@@ -49,6 +49,10 @@ function getModel(name, type, code?) {
str = "您提交的企业材料审核成功,欢迎入驻羽翼孵化器。";
title = "审核通过";
break;
case MAILTYPE.结束企业服务:
str = otherStr;
title = "企业服务受理结果";
break;
}
let mailStr = ""
......@@ -65,14 +69,14 @@ function getModel(name, type, code?) {
* @param userId
* @param type
*/
export async function systemSendMail(eId, type) {
export async function systemSendMail(eId, type, otherStr?) {
let userInfo = await selectData(OPERATIONALDATATYPE.查询单个, TABLENAME.企业基础信息表, {eId}, ["eId", "enterpriseName", "uscc", "mail"]);
if (!userInfo || !userInfo.eId) throw new BizError(ERRORENUM.企业不存在);
if (!userInfo.mail) {
new BizError(ERRORENUM.该用户邮箱为空, eId, eId.enterpriseName);
} else {
let result = await send(userInfo.mail, userInfo.enterpriseName, type);
let result = await send(userInfo.mail, userInfo.enterpriseName, type, otherStr);
}
return successResult();
......
......@@ -111,7 +111,7 @@ export const YuYiBaseDataUpdateConfig = {
synopsis:{type:"String"},//简介
totalArea:{type:"String"},//孵化器总面积
zaifuArea:{type:"String"},//在孵面积
rentRate:{type:"String"},//出租率
// rentRate:{type:"String"},//出租率
// uscc:{type:"String"},//统一信用代码
entryInfo:{type:"object"}, //孵化器入驻信息
......
......@@ -29,9 +29,9 @@ export enum TABLENAME {
企业资质 ='enterprise_qualification',
参保记录 ='enterprise_canbao',
创业团队 ='enterprise_team',
知识产权 ='enterprise_ipr',
// 知识产权 ='enterprise_ipr',
法人信息表 ='enterprise_legal_person',
企业专利表 ='enterprise_patent',
// 企业专利表 ='enterprise_patent',
园区通知表 ='garden_notice',
园区活动表 ='garden_activity',
企业服务表 ='enterprise_service',
......@@ -55,6 +55,10 @@ export enum TABLENAME {
入孵申请审批表 ='approval_history',
入驻信息表 = "info_enter",
运营推广信息表 = "info_operation_promotion",
商标 = "trade_mark",
作品著作权 = "copy_right",
软件著作权 = "software_copyright",
专利 = "patent",
}
......@@ -69,9 +73,9 @@ export enum TABLEID {
企业资质 ='qu',
参保记录 ='cb',
创业团队 ='te',
知识产权 ='ipr',
// 知识产权 ='ipr',
法人信息表 ='ps',
企业专利表 ='pe',
// 企业专利表 ='pe',
园区通知表 ='nt',
园区活动表 ='ac',
企业服务表 ='es',
......
......@@ -263,15 +263,33 @@ export enum QUARTER {
* 知识产权 全类型
*/
export enum IPRALLTYPE {
软件著作权 = 1,
专利 = 100,
发明专利 = 101,
海外专利 = 102,
其他 = 200,
植物新品种 = 201,
集成电路布图 =202
商标信息 = 1,
作品著作权,
软件著作权,
外观设计专利,
实用新型专利,
发明专利
// 软件著作权 = 1,
// 专利 = 100,
// 发明专利 = 101,
// 海外专利 = 102,
// 其他 = 200,
// 植物新品种 = 201,
// 集成电路布图 =202
}
/**
* 专利表属于知识产权类型中的详细分类
*/
export enum KUNDCODE {
发明公布 = 1,
发明授权,
实用新型,
外观设计
}
export enum IPRTYPE {
软件著作权 = 1,
专利 = 100,
......@@ -377,6 +395,7 @@ export enum RISKTYPE {
*/
export enum MAILTYPE {
通过入孵材料审核 = 1,
结束企业服务,
}
......
......@@ -33,7 +33,7 @@ export const YuYiBaseDataConfig = {
synopsis:{key:"简介"},
totalArea:{key:"孵化器总面积"},
zaifuArea:{key:"在孵面积"},
rentRate:{key:"出租率"},
// rentRate:{key:"出租率"},
// ziyonArea:{key:"自用面积"},
// parkArea:{key:"园区面积"},//新增
// enterpriseNum:{key:"企业数量"},
......
......@@ -98,4 +98,38 @@ export async function selectManyTableData(url, tableName, param, column, includ
if (result.code != 200) throw new BizError(ERRORENUM.数据联合查询失败, result.code);
if (!result.data || !result.data.data) throw new BizError(ERRORENUM.数据联合查询失败, JSON.stringify(result.data));
return result.data.data;
}
\ No newline at end of file
}
/**
* 数组分页函数
* @param {Array} data - 原始数组
* @param {Number} page - 当前页码(从1开始)
* @param {Number} pageSize - 每页数据量
* @returns {Object} 包含分页数据和元信息的对象
*/
export async function paginateArray(data, page = 1, pageSize = 10) {
// 校验参数合法性
page = Math.max(1, page) || 1;
pageSize = Math.max(1, pageSize) || 10;
// 计算分页索引
const startIndex = (page - 1) * pageSize;
const endIndex = startIndex + pageSize;
// 切割数据并生成结果
const paginatedData = data.slice(startIndex, endIndex);
return {
data: paginatedData,
meta: {
currentPage: page, //当前页码
pageSize: pageSize, //每页数据量
totalItems: data.length, //总条数
totalPages: Math.ceil(data.length / pageSize), //总页数
hasNextPage: endIndex < data.length, // 是否有下一页
hasPrevPage: startIndex > 0 // 是否有上一页
}
};
}
......@@ -337,8 +337,8 @@ async function outPutTalentList(req, res) {
*/
async function enterpriseList(req, res) {
const UserInfo = req.userInfo;
let {enterpriseName, page, logonStartTime, logonEndTime, building } = req.body
let result = await zaiFuBiz.enterpriseList(enterpriseName, page, logonStartTime, logonEndTime, building);
let {enterpriseName, page, logonStartTime, logonEndTime, startTime, endTime, building } = req.body
let result = await zaiFuBiz.enterpriseList(enterpriseName, page, logonStartTime, logonEndTime, startTime, endTime, building);
res.success(result);
}
......@@ -430,8 +430,8 @@ async function enterpriseDetails(req, res) {
* @param res
*/
async function dwEnterpriseList(req, res) {
let {enterpriseName, type, logonStartTime, logonEndTime, building } = req.body
let result = await zaiFuBiz.dwEnterpriseTable(enterpriseName, type, logonStartTime, logonEndTime, building );
let {enterpriseName, type, logonStartTime, logonEndTime, startTime, endTime, building } = req.body
let result = await zaiFuBiz.dwEnterpriseTable(enterpriseName, type, logonStartTime, logonEndTime, startTime, endTime, building );
// let {enterpriseName, type, files} = req.body
// let result = await zaiFuBiz.dwEnterpriseTable(enterpriseName, type, files);
......
......@@ -243,76 +243,76 @@ export async function data1210(req, res) {
if (subList[31]) {
for(let i = 0; i < parseInt(subList[31]); i++) {
let enterprise_2022iprInfo = {
iprId:randomId(TABLEID.知识产权),
eId,
year:getMySqlMs("2022-01-01 00:00:00"),
number:1,
iprType:IPRALLTYPE.软件著作权,
selectedValue:null,
iprName:null,
iprUrl:null,
// softwareCopyrightCount:null,
// inventionPatentCount:null,
// overseasPatentCount:null,
// plantVarietyCount:null,
// icLayoutCount:null,
// for(let i = 0; i < parseInt(subList[31]); i++) {
// let enterprise_2022iprInfo = {
// iprId:randomId(TABLEID.知识产权),
// eId,
// year:getMySqlMs("2022-01-01 00:00:00"),
// number:1,
// iprType:IPRALLTYPE.软件著作权,
// selectedValue:null,
// iprName:null,
// iprUrl:null,
// // softwareCopyrightCount:null,
// // inventionPatentCount:null,
// // overseasPatentCount:null,
// // plantVarietyCount:null,
// // icLayoutCount:null,
}
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.知识产权, enterprise_2022iprInfo, {});
}
// }
// await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.知识产权, enterprise_2022iprInfo, {});
// }
}
if (subList[32]) {
for(let i = 0; i < parseInt(subList[32]); i++) {
let enterprise_2023iprInfo = {
iprId:randomId(TABLEID.知识产权),
eId,
year:getMySqlMs("2023-01-01 00:00:00"),
number:1,
iprType:IPRALLTYPE.软件著作权,
selectedValue:null,
iprName:null,
iprUrl:null,
// softwareCopyrightCount:null,
// inventionPatentCount:null,
// overseasPatentCount:null,
// plantVarietyCount:null,
// icLayoutCount:null,
}
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.知识产权, enterprise_2023iprInfo, {});
}
// for(let i = 0; i < parseInt(subList[32]); i++) {
// let enterprise_2023iprInfo = {
// iprId:randomId(TABLEID.知识产权),
// eId,
// year:getMySqlMs("2023-01-01 00:00:00"),
// number:1,
// iprType:IPRALLTYPE.软件著作权,
// selectedValue:null,
// iprName:null,
// iprUrl:null,
// // softwareCopyrightCount:null,
// // inventionPatentCount:null,
// // overseasPatentCount:null,
// // plantVarietyCount:null,
// // icLayoutCount:null,
// }
// await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.知识产权, enterprise_2023iprInfo, {});
// }
}
if (subList[33]) {
for(let i = 0; i < parseInt(subList[33]); i++) {
let enterprise_2022patent = {
iprId:randomId(TABLEID.知识产权),
eId,
year:getMySqlMs("2022-01-01 00:00:00"),
number:1,
iprType:IPRALLTYPE.发明专利,
selectedValue:null,
iprName:null,
iprUrl:null,
}
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.知识产权, enterprise_2022patent, {});
}
// for(let i = 0; i < parseInt(subList[33]); i++) {
// let enterprise_2022patent = {
// iprId:randomId(TABLEID.知识产权),
// eId,
// year:getMySqlMs("2022-01-01 00:00:00"),
// number:1,
// iprType:IPRALLTYPE.发明专利,
// selectedValue:null,
// iprName:null,
// iprUrl:null,
// }
// await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.知识产权, enterprise_2022patent, {});
// }
}
if (subList[34]) {
for(let i = 0; i < parseInt(subList[34]); i++) {
let enterprise_2022patent = {
iprId:randomId(TABLEID.知识产权),
eId,
year:getMySqlMs("2023-01-01 00:00:00"),
number:1,
iprType:IPRALLTYPE.发明专利,
selectedValue:null,
iprName:null,
iprUrl:null,
}
await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.知识产权, enterprise_2022patent, {});
}
// for(let i = 0; i < parseInt(subList[34]); i++) {
// let enterprise_2022patent = {
// iprId:randomId(TABLEID.知识产权),
// eId,
// year:getMySqlMs("2023-01-01 00:00:00"),
// number:1,
// iprType:IPRALLTYPE.发明专利,
// selectedValue:null,
// iprName:null,
// iprUrl:null,
// }
// await operationalData(OPERATIONALDATATYPE.增加, TABLENAME.知识产权, enterprise_2022patent, {});
// }
}
if (subList[35] || subList[36] || subList[37] || subList[38]) {
......
......@@ -28,9 +28,7 @@ const config = {
"/public/policytype":enumConfig.POLICYTYPE,// 政策文件类型
"/public/clientpolicytype":enumConfig.CLIENTPOLICYTYPE,// 政策文件类型-前端用
"/public/building":enumConfig.BUILDING,// 园区楼号
"/public/ipralltype":enumConfig.IPRALLTYPE, //企查查知识产权类型
// "/public/output/basedata":outputEnumConfig.BASEDATA,
// "/public/output/opreatdata":outputEnumConfig.OPERATIONDATA,
// "/public/output/financingdata":outputEnumConfig.FINANCINGDATA,
......
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