Commit eae9d0f4 by 孙香冬

no message

parent dfc09a31
This source diff could not be displayed because it is too large. You can view the blob instead.
{ {
"name": "gameserver", "name": "gaoqiao",
"version": "1.0.0", "version": "1.0.0",
"description": "", "description": "",
"main": "main.ts", "main": "main.ts",
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
"@alicloud/sms-sdk": "^1.1.6", "@alicloud/sms-sdk": "^1.1.6",
"@types/node": "^10.12.18", "@types/node": "^10.12.18",
"compression": "^1.7.4", "compression": "^1.7.4",
"express": "^4.17.1", "express": "^4.18.2",
"express-async-handler": "^1.1.4", "express-async-handler": "^1.1.4",
"express-history-api-fallback": "^2.2.1", "express-history-api-fallback": "^2.2.1",
"formidable": "^1.2.1", "formidable": "^1.2.1",
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
"mongoose": "^6.2.3", "mongoose": "^6.2.3",
"node-xlsx": "^0.16.1", "node-xlsx": "^0.16.1",
"nodemailer": "^6.1.1", "nodemailer": "^6.1.1",
"pkg": "^5.8.0",
"pyfl": "^1.1.4", "pyfl": "^1.1.4",
"request": "^2.88.0", "request": "^2.88.0",
"svg-captcha": "^1.3.12", "svg-captcha": "^1.3.12",
...@@ -27,5 +28,15 @@ ...@@ -27,5 +28,15 @@
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },
"author": "", "author": "",
"license": "ISC" "license": "ISC",
"bin": "./out/main.js",
"pkg": {
"scripts": "out/**/*.js",
"assets": [
"public/**/*",
"res/**/*",
"images/**/*"
],
"outputPath": "dist"
}
} }
~'pv`wIlvq'?^~'ijblkLa'?'dahlk')'ura'?'dahlk')'qjn`k'?'<5=`dd<32==2<c13465422g1g=57=g33'x)~'ijblkLa'?'p4')'ura'?'476')'qjn`k'?'=1<`a652=3647f`70737a77gf2`c`03d'xXx
\ No newline at end of file
<config> <config>
<port>9097</port> <port>9098</port>
</config> </config>
\ No newline at end of file
import { getUserConfig, updateUserConfFile } from "../config/users";
import crypto = require('crypto');
import fs = require('fs');
import path = require('path');
//登录
export async function login(req, res) {
let {loginId, pwd} = req.body;
let userConf = getUserConfig(loginId);
if (!userConf || userConf.pwd != pwd) {
res.send({msg:"账号或密码错误"});
return;
}
userConf.token = createToken(loginId, pwd);
updateUserConfFile();
res.send({token:userConf.token});
}
function createToken(loginId, pwd) {
return crypto.createHash('md5').update(loginId+pwd+Math.random()+Date.now()).digest("hex")
}
import { get村居委弹窗 } from "../data/table/jcsjData"; import { cjwPopTableData, cjwTableData } from "../data/table/jcsjData";
import { keyValuePackage, tablePackage } from "../dataPackage/inFrontOut"; import { cjwExcelData, popExcelData } from "../main";
import { getKeyValueOut, getStringOut, getTableOut } from "../dataPackage/out";
// 村居委
export function getData(req, res) { export function getData(req, res) {
// let popExcelData = cjwPopTableData();
// let cjwExcelData = cjwTableData();
let name = req.query.name; let name = req.query.name;
let excelData = get村居委弹窗(name);
let ret:any = {};
let fcsjPackageData = keyValuePackage(excelData['浮窗数据'].dataList); let ret:any = {};
ret['fcsj'] = getKeyValueOut('浮窗数据', fcsjPackageData);
let jbxxDataList = keyValuePackage(excelData['基本信息'].dataList); let cjwPopBodyList = popExcelData['村居委详细数据'].bodyList;
let imgPackageData = []; let cjwPopHeaderList = popExcelData['村居委详细数据'].headerList[0];
let jbxxPackageData = [];
jbxxDataList.forEach (info => {
let {key, value, unit} = info;
if (key == "图片") imgPackageData.push(info);
else jbxxPackageData.push(info);
})
ret['tp'] = getStringOut('图片', imgPackageData); let cjwPopDataList = [];
ret['jbxx'] = getKeyValueOut('基本信息', jbxxPackageData); for (let i = 0; i < cjwPopBodyList.length; i++) {
let a = {};
for (let x = 0; x < cjwPopBodyList[i].length; x++) {
a[cjwPopHeaderList[x]] = cjwPopBodyList[i][x];
}
cjwPopDataList.push(a);
}
let fwzyPackageData = keyValuePackage(excelData['服务资源'].dataList); for (let i = 0; i < cjwPopDataList.length; i++) {
ret['fwzy'] = getKeyValueOut('服务资源', fwzyPackageData); let cjwInfo = cjwPopDataList[i];
//浮窗数据
let fcsjPackageData = [];
//基本信息
let jbxxPackageData = [];
//图片
let imgPackageData = [];
//服务资源
let fwzyPackageData = [];
let dldxlTableData = tablePackage(excelData['大龄低学历人员'].headerList[0], excelData['大龄低学历人员'].bodyList); for (let key in cjwInfo) {
ret['dldxlry'] = getTableOut('大龄低学历人员', dldxlTableData); if (name == cjwInfo.名称) {
switch (key) {
case "就业年龄段户籍人口":
case "无业人员":
case "失业人员":
fcsjPackageData.push({name: key, value: cjwInfo[key], unit: ""});
break;
case "实有人口":
case "户籍人口":
case "外来人口":
case "失业人员":
case "无业人员":
jbxxPackageData.push({name: key, value: cjwInfo[key], unit: ""});
break;
case "图片":
imgPackageData.push({name: key, value: cjwInfo[key], unit: ""});
break;
case "家门口服务站":
case "就业保障员":
case "移动终端":
fwzyPackageData.push({name: key, value: cjwInfo[key], unit: ""});
break;
}
// let fcsjPackageData = {name: key, value: cjwDataList[key], unit: ""};
ret['fcsj'] = {title: '浮窗数据', dataList: fcsjPackageData};
ret['tp'] = {title: '图片', dataList: imgPackageData};
ret['jbxx'] = {title: '基本信息', dataList: jbxxPackageData};
ret['fwzy'] = {title: '服务资源', dataList: fwzyPackageData};
}
}
}
let jyknryTableData = tablePackage(excelData['就业困难人员'].headerList[0], excelData['就业困难人员'].bodyList); let cjwBodyList = cjwExcelData['村居委表格详细信息'].bodyList;
ret['jyknry'] = getTableOut('就业困难人员', jyknryTableData); let cjwHeaderList = cjwExcelData['村居委表格详细信息'].headerList[0];
let cjwDataList = [];
let tysbTableData = tablePackage(excelData['退役士兵'].headerList[0], excelData['退役士兵'].bodyList); for (let i = 0; i < cjwBodyList.length; i++) {
ret['tysb'] = getTableOut('退役士兵', tysbTableData); let a = {};
for (let x = 0; x < cjwBodyList[i].length; x++) {
let yjbysTableData = tablePackage(excelData['应届毕业生'].headerList[0], excelData['应届毕业生'].bodyList); a[cjwHeaderList[x]] = cjwBodyList[i][x];
ret['yjbys'] = getTableOut('应届毕业生', yjbysTableData); }
cjwDataList.push(a);
let cqsyryTableData = tablePackage(excelData['长期失业人员'].headerList[0], excelData['长期失业人员'].bodyList); }
ret['cqsyry'] = getTableOut('长期失业人员', cqsyryTableData);
let titleList = [];
let zdryTableData = tablePackage(excelData['征地人员'].headerList[0], excelData['征地人员'].bodyList); //大龄低学历人员
ret['zdry'] = getTableOut('征地人员', zdryTableData); let dldxlTableData = [];
//就业困难人员
let jyknryTableData = [];
//退役士兵
let tysbTableData = [];
//应届毕业生
let yjbysTableData = [];
//长期失业人员
let cqsyryTableData = [];
//征地人员
let zdryTableData = [];
let dldxl = 1;
let jykn = 1;
let tysb = 1;
let yjbys = 1;
let cqsyry = 1;
let zdry = 1;
for(let i = 0; i < cjwDataList.length; i++) {
let cjwInfo = cjwDataList[i];
let card = cjwInfo.身份证号.slice(0, 14) + "****";
let type = cjwInfo.类型;
if (name == cjwInfo.名称) {
switch (type) {
case "大龄低学历人员":
titleList = ["序号", "姓名", "性别", "身份证号", "年龄", "学历", "户籍", "目前情况", "服务次数"];
dldxlTableData.push([dldxl, cjwInfo.姓名, cjwInfo.性别, card, cjwInfo.年龄, cjwInfo.学历, cjwInfo.户籍, cjwInfo.目前情况, cjwInfo.服务次数]);
dldxl ++;
break;
case "就业困难人员":
titleList = ["序号", "姓名", "性别", "身份证号", "年龄", "学历", "户籍", "目前情况", "服务次数"];
jyknryTableData.push([jykn, cjwInfo.姓名, cjwInfo.性别, card, cjwInfo.年龄, cjwInfo.学历, cjwInfo.户籍, cjwInfo.目前情况, cjwInfo.服务次数]);
jykn ++;
break;
case "退役士兵":
titleList = ["序号", "姓名", "性别", "身份证号", "年龄", "学历", "户籍", "目前情况", "服务次数"];
tysbTableData.push([tysb, cjwInfo.姓名, cjwInfo.性别, card, cjwInfo.年龄, cjwInfo.学历, cjwInfo.户籍, cjwInfo.目前情况, cjwInfo.服务次数]);
tysb ++;
break;
case "应届毕业生":
titleList = ["序号", "姓名", "性别", "身份证号", "年龄", "学历", "户籍", "目前情况", "服务次数"];
yjbysTableData.push([yjbys, cjwInfo.姓名, cjwInfo.性别, card, cjwInfo.年龄, cjwInfo.学历, cjwInfo.户籍, cjwInfo.目前情况, cjwInfo.服务次数]);
yjbys ++;
break;
case "启航人员":
titleList = ["序号", "姓名", "性别", "身份证号", "年龄", "学历", "户籍", "目前情况", "服务次数"];
cqsyryTableData.push([cqsyry, cjwInfo.姓名, cjwInfo.性别, card, cjwInfo.年龄, cjwInfo.学历, cjwInfo.户籍, cjwInfo.目前情况, cjwInfo.服务次数]);
cqsyry ++;
break;
case "领金人员":
titleList = ["序号", "姓名", "性别", "身份证号", "年龄", "学历", "户籍", "目前情况", "服务次数"];
zdryTableData.push([zdry, cjwInfo.姓名, cjwInfo.性别, card, cjwInfo.年龄, cjwInfo.学历, cjwInfo.户籍, cjwInfo.目前情况, cjwInfo.服务次数]);
zdry ++;
break;
}
}
}
let cjwxxTableData = [];
if (JSON.stringify(dldxlTableData) != '[]') {
cjwxxTableData.push({name: '大龄低学历人员', titleList, dataList: dldxlTableData});
}
if (JSON.stringify(jyknryTableData) != '[]') {
cjwxxTableData.push({name: '就业困难人员', titleList, dataList: jyknryTableData});
}
if (JSON.stringify(tysbTableData) != '[]') {
cjwxxTableData.push({name: '退役士兵', titleList, dataList: tysbTableData});
}
if (JSON.stringify(yjbysTableData) != '[]') {
cjwxxTableData.push({name: '应届毕业生', titleList, dataList: yjbysTableData});
}
if (JSON.stringify(cqsyryTableData) != '[]') {
cjwxxTableData.push({name: '启航人员', titleList, dataList: cqsyryTableData});
}
if (JSON.stringify(zdryTableData) != '[]') {
cjwxxTableData.push({name: '领金人员', titleList, dataList: zdryTableData});
}
ret['xxsj'] = {title: '表格详细数据', valueList: cjwxxTableData};
console.log("村居委");
res.send(ret); res.send(ret);
} }
\ No newline at end of file
import path = require('path');
import fs = require("fs");
import xlsx = require('node-xlsx');
import formidable = require('formidable');
import { BizError } from '../util/bizError';
//基础数据上传
export async function jcsjExcelUp(req, res) {
upExcel(req, '基础数据.xlsx');
res.send({success: true});
}
// 整体数据上传
export async function ztsjExcelUp(req, res) {
upExcel(req, '整体数据.xlsx');
res.send({success: true});
}
function upExcel(req, name) {
// let data = req.body;
let form = new formidable.IncomingForm();
let fileUrl = path.join(__dirname, `../../res/`);
form.uploadDir = fileUrl;
form.keepExtensions = true;
form.on('end', () => {
console.log(name + " up end");
})
return new Promise((resolve, reject) => {
form.parse(req, async (err, fields, files) => {
if (err) reject(err);
let newPath = path.join(fileUrl, name);
fs.rename(files.file.path, newPath, (err) => {
if (err) throw new BizError("改名失败" + err);
else resolve(files);
})
})
})
}
//下载excel
export async function downloadFile(req, res) {
let {fileName} = req.query;
let filePath = path.join(__dirname, "../../res/"+fileName+'.xlsx');
let stats = fs.existsSync(filePath);
if (!stats) throw new Error("文件不存在");
console.log(filePath)
res.sendfile(filePath);
}
import { jcsjTableData } from '../data/table/jcsjData'; import { gqTableData, jcsjTableData } from '../data/table/jcsjData';
import { doubleYBarCharPackage, keyValuePackage, onceYBarChartPackage, rankPackage, tablePackage } from '../dataPackage/inFrontOut'; import { keyValuePackage, onceYBarChartPackage, tablePackage, stringListPackage } from '../dataPackage/inFrontOut';
import { getDoubleYBarChartOut, getKeyValueOut, getOnceYBarChartOut, getTableOut } from '../dataPackage/out'; import { getKeyValueOut, getOnceYBarChartOut, getStringOut, getTableOut } from '../dataPackage/out';
import { separateDataAndUint } from '../dataPackage/tool'; import { separateDataAndUint } from '../dataPackage/tool';
import { excelData, jcsjExcelData } from '../main';
/* 基础数据 */ /*基础数据*/
export function getData(req, res) { export function getData(req, res) {
let excelData = jcsjTableData(); // let jcsjExcelData = jcsjTableData();
// let excelData = gqTableData();
let ret:any = {}; let ret:any = {};
let zssjPackageData = keyValuePackage(excelData['左上数据'].dataList); let zssjPackageData = keyValuePackage(excelData['左上数据'].dataList);
...@@ -20,12 +21,6 @@ export function getData(req, res) { ...@@ -20,12 +21,6 @@ export function getData(req, res) {
let nnblPackageData = keyValuePackage(excelData['男女比例'].dataList); let nnblPackageData = keyValuePackage(excelData['男女比例'].dataList);
ret['nnbl'] = getKeyValueOut('男女比例', nnblPackageData); ret['nnbl'] = getKeyValueOut('男女比例', nnblPackageData);
let swylxblPackageData = keyValuePackage(excelData['失无业类型比例'].dataList);
ret['swylxbl'] = getKeyValueOut('失无业类型比例', swylxblPackageData);
let swyryfxPackageData = keyValuePackage(excelData['失无业人员分析'].dataList);
ret['swyryfx'] = getKeyValueOut('失无业人员分析', swyryfxPackageData);
let zdrynnblsjPackageData = onceYBarChartPackage( excelData['重点人员男女比例数据'], '',''); let zdrynnblsjPackageData = onceYBarChartPackage( excelData['重点人员男女比例数据'], '','');
ret['zdrynnblsj'] = getOnceYBarChartOut('重点人员男女比例数据', zdrynnblsjPackageData); ret['zdrynnblsj'] = getOnceYBarChartOut('重点人员男女比例数据', zdrynnblsjPackageData);
...@@ -35,18 +30,21 @@ export function getData(req, res) { ...@@ -35,18 +30,21 @@ export function getData(req, res) {
let sqztjylPackageData = keyValuePackage(excelData['社区总体就业率'].dataList); let sqztjylPackageData = keyValuePackage(excelData['社区总体就业率'].dataList);
ret['sqztjyl'] = getKeyValueOut('社区总体就业率', sqztjylPackageData); ret['sqztjyl'] = getKeyValueOut('社区总体就业率', sqztjylPackageData);
let sqztjylxqTableData = tablePackage(excelData['社区总体就业率详情'].headerList[0], excelData['社区总体就业率详情'].bodyList); let sqztjylxqTableData = tablePackage(jcsjExcelData['社区总体就业率详情'].headerList[0], jcsjExcelData['社区总体就业率详情'].bodyList);
let sqztjylxqDataList = sqztjylxqTableData.dataList; let sqztjylxqDataList = sqztjylxqTableData.dataList;
sqztjylxqTableData.titleList.push('是否红色') sqztjylxqTableData.titleList.push('是否红色')
let 失业人员;
sqztjylxqDataList.forEach(info => { sqztjylxqDataList.forEach(info => {
if (info.A == "城镇登记失业人数") 失业人员 = info.C;
let checkStr = info.B; let checkStr = info.B;
let str = checkStr.substring(0, 1); let str = checkStr.substring(0, 1);
let {dataNum, dataUnit} = separateDataAndUint(checkStr.substring(1, checkStr.length)); let {dataNum} = separateDataAndUint(checkStr.substring(1, checkStr.length));
let type = ``; let type = ``;
if ( str == ">" ) type = `${info.C}>${dataNum}`; let infoNum = info.C;
else if (str == "<") type = `${info.C}<${dataNum}`; if ( str == ">" ) type = `${infoNum}>${dataNum}`;
else if (str == "<") type = `${infoNum}<${dataNum}`;
else if (str == "=") { else if (str == "=") {
type = `${separateDataAndUint(info.C).dataNum}==${dataNum}`; type = `${separateDataAndUint(infoNum).dataNum}==${dataNum}`;
} }
else { else {
type = ''; type = '';
...@@ -54,7 +52,33 @@ export function getData(req, res) { ...@@ -54,7 +52,33 @@ export function getData(req, res) {
info.isRed = !eval(type); info.isRed = !eval(type);
}) })
ret['sqztjylxq'] = getTableOut('社区总体就业率详情', sqztjylxqTableData); ret['sqztjylxq'] = getTableOut('社区总体就业率详情', sqztjylxqTableData);
let 无业人员;
let swylxbl = keyValuePackage(excelData['失无业类型比例'].dataList);
swylxbl.push({key: '失业人员', value: 失业人员, unit: '人'})
let 失无业类型详细 = ["无业人员", "失业人员", "当前积极求职"];
let swylxblPackageData = [];
失无业类型详细.forEach( name => {
swylxbl.forEach( info => {
if (info.key == "无业人员") 无业人员 = info.value;
if (info.key == name) swylxblPackageData.push(info);
})
})
ret['swylxbl'] = getKeyValueOut('失无业类型比例', swylxblPackageData);
let swyryfx = keyValuePackage(excelData['失无业人员分析'].dataList);
let 失无业总人口数 = parseInt(失业人员) + parseInt(无业人员);
swyryfx.push({key: "失无业总人口数", value: 失无业总人口数, unit: "人"});
let 失无业人员分析 = ["失无业总人口数", "近期失业新增", "近期就业新增"];
let swyryfxPackageData = [];
失无业人员分析.forEach( name => {
swyryfx.forEach ( info => {
if (info.key == name) swyryfxPackageData.push(info);
})
})
ret['swyryfx'] = getKeyValueOut('失无业人员分析', swyryfxPackageData);
let cyfwPackageData = keyValuePackage(excelData['创业服务'].dataList); let cyfwPackageData = keyValuePackage(excelData['创业服务'].dataList);
ret['cyfw'] = getKeyValueOut('创业服务', cyfwPackageData); ret['cyfw'] = getKeyValueOut('创业服务', cyfwPackageData);
...@@ -64,23 +88,27 @@ export function getData(req, res) { ...@@ -64,23 +88,27 @@ export function getData(req, res) {
let jpfwTableData = tablePackage(excelData['技培服务'].headerList[0], excelData['技培服务'].bodyList); let jpfwTableData = tablePackage(excelData['技培服务'].headerList[0], excelData['技培服务'].bodyList);
ret['jpfw'] = getTableOut('技培服务', jpfwTableData); ret['jpfw'] = getTableOut('技培服务', jpfwTableData);
let cjyjsPackageData = keyValuePackage(excelData['创就业集市'].dataList); let tsfwPackageData = keyValuePackage(excelData['特色服务'].dataList);
ret['cjyjs'] = getKeyValueOut('创就业集市', cjyjsPackageData); ret['tsfw'] = getKeyValueOut('特色服务', tsfwPackageData);
let cjyjsPackageData = stringListPackage(excelData['创就业集市'].dataList);
ret['cjyjs'] = getStringOut('创就业集市', cjyjsPackageData);
let cyxtPackageData = keyValuePackage(excelData['创业学堂'].dataList); let cyxtPackageData = stringListPackage(excelData['创业学堂'].dataList);
ret['cyxt'] = getKeyValueOut('创业学堂', cyxtPackageData); ret['cyxt'] = getStringOut('创业学堂', cyxtPackageData);
let hzfhqPackageData = keyValuePackage(excelData['合作孵化器'].dataList); let fhxmTableData = tablePackage(excelData['孵化项目'].headerList[0], excelData['孵化项目'].bodyList);
ret['hzfhq'] = getKeyValueOut('合作孵化器', hzfhqPackageData); ret['fhxm'] = getTableOut('孵化项目', fhxmTableData);
let cyfyPackageData = keyValuePackage(excelData['创业法苑'].dataList); let cyfyPackageData = stringListPackage(excelData['乐业法苑'].dataList);
ret['cyfy'] = getKeyValueOut('创业法苑', cyfyPackageData); ret['cyfy'] = getStringOut('乐业法苑', cyfyPackageData);
let HRjylmPackageData = keyValuePackage(excelData['HR就业联盟'].dataList); let HRjylmPackageData = stringListPackage(excelData['HR就业联盟'].dataList);
ret['HRjylm'] = getKeyValueOut('HR就业联盟', HRjylmPackageData); ret['HRjylm'] = getStringOut('HR就业联盟', HRjylmPackageData);
let cyzjlbPackageData = keyValuePackage(excelData['创业者俱乐部'].dataList); let cyzjlbPackageData = stringListPackage(excelData['创业者俱乐部'].dataList);
ret['cyzjlb'] = getKeyValueOut('创业者俱乐部', cyzjlbPackageData); ret['cyzjlb'] = getStringOut('创业者俱乐部', cyzjlbPackageData);
console.log("基础数据");
res.send(ret); res.send(ret);
} }
\ No newline at end of file
import { cjwTableData, zdqyTableData } from "../data/table/jcsjData"; import { cjwPopTableData, mapTableData } from "../data/table/jcsjData";
import { onceYBarChartPackage, tablePackage } from "../dataPackage/inFrontOut"; import { keyValuePackage, tablePackage } from "../dataPackage/inFrontOut";
import { getOnceYBarChartOut, getTableOut } from "../dataPackage/out"; import { getKeyValueOut } from "../dataPackage/out";
import { mapExcelData, cjwPopExcelData } from "../main";
// 地图
export function getData(req, res) { export function getData(req, res) {
let cjwExcelData = cjwTableData(); //村居委地图数据 // let mapExcelData = mapTableData();
let zdqyExcelData = zdqyTableData(); //重点企业地图数据 // let cjwPopExcelData = cjwPopTableData();
let ret:any = {}; let ret:any = {};
let cjwDataList = cjwExcelData['村居委数据'].dataList; let cjwPopBodyList = cjwPopExcelData['村居委详细数据'].bodyList;
let cjwMap = {title: "村居委地图", dataList: cjwDataList}; let cjwPopHeaderList = cjwPopExcelData['村居委详细数据'].headerList[0];
ret["cjw"] = cjwMap; let cjwPopDataList = [];
for (let i = 0; i < cjwPopBodyList.length; i++) {
let a = {};
for (let x = 0; x < cjwPopBodyList[i].length; x++) {
a[cjwPopHeaderList[x]] = cjwPopBodyList[i][x];
}
cjwPopDataList.push(a);
}
let zdqyDataList = zdqyExcelData['重点合作企业数据'].dataList; let fcsjDataList = [];
let zdqyMap = {title: "重点企业地图", dataList: zdqyDataList}; for (let i = 0; i < cjwPopDataList.length; i++) {
let cjwInfo = cjwPopDataList[i];
ret["zdqy"] = zdqyMap; //浮窗数据
let fcsjPackageData = [];
let cjwName;
for (let key in cjwInfo) {
cjwName = cjwInfo.名称;
switch (key) {
case "就业年龄段户籍人口":
case "无业人员":
case "失业人员":
fcsjPackageData.push({name: key, value: cjwInfo[key], unit: ""});
break;
}
}
fcsjDataList.push({cjwName, dataList: fcsjPackageData});
}
let mapData = tablePackage(mapExcelData['地图'].headerList[0], mapExcelData['地图'].bodyList);
let mapDataList = mapData.dataList;
let dtDataList = [];
mapDataList.forEach(info => {
let {A, B, C, D} = info;
if (D == "村居委") {
fcsjDataList.forEach ( fcsjInfo => {
let {cjwName, dataList} = fcsjInfo;
if (cjwName == A) dtDataList.push({name: A, x: B, y: C, type: D, fcsj: dataList});
})
}
else {
dtDataList.push({name: A, x: B, y: C, type: D, fcsj: A});
}
})
let dtPackageData = {title: "地图", dataList: dtDataList};
ret["dt"] = dtPackageData;
let gglPackageData = keyValuePackage(mapExcelData["公告栏"].dataList);
ret['ggl'] = getKeyValueOut('公告栏', gglPackageData);
console.log("地图");
res.send(ret); res.send(ret);
} }
\ No newline at end of file
// 政策文件
\ No newline at end of file
import { get重点企业弹窗 } from "../data/table/jcsjData"; import { zdhzqyPopTableData, zdhzqyTableData } from "../data/table/jcsjData";
import { keyValuePackage, tablePackage } from "../dataPackage/inFrontOut"; import { tablePackage } from "../dataPackage/inFrontOut";
import { getKeyValueOut, getStringOut, getTableOut } from "../dataPackage/out"; import { getTableOut } from "../dataPackage/out";
import { zdqyExcelData, zdqyPopExcelData } from "../main";
// 重点企业
export function getData(req, res) { export function getData(req, res) {
// let zdqyPopExcelData = zdhzqyPopTableData();
// let zdqyExcelData = zdhzqyTableData();
let name = req.query.name; let name = req.query.name;
let excelData = get重点企业弹窗(name);
let ret:any = {}; let ret:any = {};
let jbxxDataList = keyValuePackage(excelData['基础数据'].dataList); let zdqyTableData = tablePackage(zdqyPopExcelData['重点合作企业详细数据'].headerList[0], zdqyPopExcelData['重点合作企业详细数据'].bodyList);
let zdqyDataList = zdqyTableData.dataList;
let imgPackageData = []; let imgPackageData = [];
let jbxxPackageData = []; let jbxxPackageData = [];
jbxxDataList.forEach (info => { zdqyDataList.forEach( info => {
let {key, value, unit} = info; let {A, B, C} = info;
if (key == "图片") imgPackageData.push(info); if (name == A) {
else jbxxPackageData.push(info); imgPackageData.push({key: "图片", value: C});
jbxxPackageData.push({name: "企业简介", value: B});
}
}) })
ret['tp'] = getStringOut('图片', imgPackageData); ret['tp'] = {title: '图片', dataList: imgPackageData};
ret['jcsj'] = getKeyValueOut('基础数据', jbxxPackageData); ret['jcsj'] = {title: '基础数据', dataList: jbxxPackageData};
let zpxxTableData = tablePackage(zdqyExcelData['招聘信息'].headerList[0], zdqyExcelData['招聘信息'].bodyList);
let zpxxDataList = zpxxTableData.dataList;
let zpxxPackageData = [];
let titleList = [];
zpxxDataList.forEach( info => {
let {A, B, C, D, E} = info;
if (name == A) {
titleList = ['招聘职位', '办公地点', '工作经验', '学历要求']
zpxxPackageData.push({job: B, site: C, experience: D, education: E});
}
})
let zpxxTableData = tablePackage(excelData['招聘信息'].headerList[0], excelData['招聘信息'].bodyList); ret['zpxx'] = getTableOut('招聘信息', {titleList, dataList: zpxxPackageData});
ret['zpxx'] = getTableOut('招聘信息', zpxxTableData);
console.log(name + "重点企业");
res.send(ret); res.send(ret);
} }
\ No newline at end of file
import path = require('path');
import fs = require('fs');
let userMap = {};
let filePath = path.join(__dirname, "../../res/users");
let userList = [];
export function initUserConfig() {
let stats = fs.existsSync(filePath);
if (!stats) fs.writeFileSync(filePath, encode(JSON.stringify({userList:[{loginId:"admin", pwd:"admin"}]})));
let str = fs.readFileSync(filePath).toString();
userList = JSON.parse(decode(str)).userList;
for (let user of userList) {
userMap[user.loginId] = user;
}
}
export function getUserConfig(loginId) {
return userMap[loginId];
}
export function getUserMap() {
return userMap;
}
export function setUserMap(userList) {
let map = {admin:userMap["admin"]};
for (let user of userList) {
map[user.loginId] = user;
}
userMap = map;
}
function encode(str) {
let encodeStr = "";
for (let i = 0; i < str.length; i++) {
encodeStr += String.fromCharCode(str.charCodeAt(i) ^ 5)
}
return encodeStr;
}
function decode(str) {
let decodeStr = "";
for (let i = 0; i < str.length; i++) {
decodeStr += String.fromCharCode(str.charCodeAt(i) ^ 5)
}
return decodeStr;
}
export function updateUserConfFile() {
fs.writeFileSync(filePath, encode(JSON.stringify({userList:Object.values(userMap)})))
}
\ No newline at end of file
...@@ -23,68 +23,93 @@ function packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, ...@@ -23,68 +23,93 @@ function packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList,
export function jcsjTableData() { export function jcsjTableData() {
let blockDataList = onceSheetBecomeOfblockData('高桥.xlsx', '基础数据'); let blockDataList = onceSheetBecomeOfblockData('基础数据.xlsx', '基础数据');
let keyValueOrTitleList = ["左上数据","劳动年龄段人口概况","男女比例","失无业类型比例","失无业人员分析","服务资源","社区总体就业率","创业服务","就业服务", "创就业集市", "创业学堂", "合作孵化器", "创业法苑", "HR就业联盟", "创业者俱乐部"];//适配 饼图 键值以及需要多个key的 let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["社区总体就业率详情"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
export function gqTableData() {
let blockDataList = onceSheetBecomeOfblockData('整体数据.xlsx', '基础数据');
let keyValueOrTitleList = ["左上数据","劳动年龄段人口概况","男女比例","失无业类型比例","失无业人员分析","服务资源","社区总体就业率","创业服务","就业服务", "特色服务", "创就业集市", "创业学堂", "乐业法苑", "HR就业联盟", "创业者俱乐部"];//适配 饼图 键值以及需要多个key的
let barChartList = ["重点人员男女比例数据"]; //适配 柱状图 折线图 let barChartList = ["重点人员男女比例数据"]; //适配 柱状图 折线图
let stringList = []; let stringList = [];
let decollatePlanarList =["社区总体就业率详情","技培服务"];//适配 表格 let decollatePlanarList =["技培服务", "孵化项目"];//适配 表格
let titltListConfig = {}; let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList); let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result; return result;
} }
export function mapTableData() {
let blockDataList = onceSheetBecomeOfblockData('整体数据.xlsx', '地图数据');
let keyValueOrTitleList = ["公告栏"];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图
let stringList = [];
let decollatePlanarList =["地图"];//适配 表格
let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
export function cjwTableData() { export function cjwTableData() {
let blockDataList = onceSheetBecomeOfblockData('高桥.xlsx', '地图村居委数据'); let blockDataList = onceSheetBecomeOfblockData('整体数据.xlsx', '村居委表格数据');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的 let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图 let barChartList = []; //适配 柱状图 折线图
let stringList = ["村居委数据"]; let stringList = [];
let decollatePlanarList =[];//适配 表格 let decollatePlanarList =["村居委表格详细信息"];//适配 表格
let titltListConfig = {}; let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList); let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result; return result;
} }
export function zdqyTableData() { export function cjwPopTableData() {
let blockDataList = onceSheetBecomeOfblockData('高桥.xlsx', '地图重点合作企业数据'); let blockDataList = onceSheetBecomeOfblockData('整体数据.xlsx', '村居委弹窗数据');
let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的 let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图 let barChartList = []; //适配 柱状图 折线图
let stringList = ["重点合作企业数据"]; let stringList = [];
let decollatePlanarList =[];//适配 表格 let decollatePlanarList =["村居委详细数据"];//适配 表格
let titltListConfig = {}; let titltListConfig = {};
let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList); let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result; return result;
} }
export function get村居委弹窗(name) { export function zdhzqyTableData() {
let 村居委弹窗数据 = excelBecomeOfBlockData("村居委弹窗.xlsx"); let blockDataList = onceSheetBecomeOfblockData('整体数据.xlsx', '重点合作企业表格数据');
let dataList = 村居委弹窗数据[name];
let keyValueOrTitleList = ["浮窗数据", "基本信息", "服务资源"];//适配 饼图 键值以及需要多个key的 let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图 let barChartList = []; //适配 柱状图 折线图
let stringList = []; let stringList = [];
let decollatePlanarList =["大龄低学历人员", "就业困难人员", "退役士兵", "应届毕业生", "长期失业人员", "征地人员"];//适配 表格 let decollatePlanarList =["招聘信息"];//适配 表格
let titltListConfig = {}; let titltListConfig = {};
let result = packageDataProcess(dataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList); let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result; return result;
} }
export function get重点企业弹窗(name) { export function zdhzqyPopTableData() {
let 重点企业弹窗数据 = excelBecomeOfBlockData("重点企业弹窗.xlsx"); let blockDataList = onceSheetBecomeOfblockData('整体数据.xlsx', '重点合作企业弹窗数据');
let dataList = 重点企业弹窗数据[name];
let keyValueOrTitleList = ["基础数据"];//适配 饼图 键值以及需要多个key的 let keyValueOrTitleList = [];//适配 饼图 键值以及需要多个key的
let barChartList = []; //适配 柱状图 折线图 let barChartList = []; //适配 柱状图 折线图
let stringList = []; let stringList = [];
let decollatePlanarList =["招聘信息"];//适配 表格 let decollatePlanarList =["重点合作企业详细数据"];//适配 表格
let titltListConfig = {}; let titltListConfig = {};
let result = packageDataProcess(dataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList); let result = packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result; return result;
} }
\ No newline at end of file
...@@ -2,18 +2,25 @@ ...@@ -2,18 +2,25 @@
import { initInterfaceData } from "./data/interface/cronJob"; import { initInterfaceData } from "./data/interface/cronJob";
import { httpServer } from "./net/http_server"; import { httpServer } from "./net/http_server";
import { initConfig, port } from "./config/serverConfig"; import { initConfig, port } from "./config/serverConfig";
import { initUserConfig } from "./config/users";
import { cjwPopTableData, cjwTableData, gqTableData, jcsjTableData, mapTableData, zdhzqyPopTableData, zdhzqyTableData } from "./data/table/jcsjData";
export let zdqyPopExcelData = zdhzqyPopTableData();
export let zdqyExcelData = zdhzqyTableData();
export let mapExcelData = mapTableData();
export let cjwPopExcelData = cjwPopTableData();
export let jcsjExcelData = jcsjTableData();
export let excelData = gqTableData();
export let popExcelData = cjwPopTableData();
export let cjwExcelData = cjwTableData();
async function lanuch() { async function lanuch() {
test(); initUserConfig();
await initConfig(); await initConfig();
// initInterfaceData();
httpServer.createServer( port ); httpServer.createServer( port );
console.log('This indicates that the server is started successfully.'); console.log('This indicates that the server is started successfully.');
} }
function test() {
}
lanuch(); lanuch();
...@@ -26,6 +26,7 @@ export class httpServer { ...@@ -26,6 +26,7 @@ export class httpServer {
} }
}); });
httpServer.use(express.static('img') );
httpServer.use(express.static('public') ); httpServer.use(express.static('public') );
httpServer.use(bodyParser.json({limit:"10kb"})); httpServer.use(bodyParser.json({limit:"10kb"}));
......
import * as asyncHandler from 'express-async-handler' import * as asyncHandler from 'express-async-handler'
import * as jcsjBiz from '../biz/jcsj'; import * as jcsjBiz from '../biz/jcsj';
import * as mapBiz from '../biz/map'; import * as mapBiz from '../biz/map';
import * as cjwBiz from '../biz/cjw'; import * as cjwBiz from '../biz/cjw';
import * as zdqyBiz from '../biz/zdqy'; import * as zdqyBiz from '../biz/zdqy';
import * as excelBiz from '../biz/excel';
import * as loginBiz from '../biz/admin';
export function setRouter(httpServer){ export function setRouter(httpServer){
httpServer.post('/jcsj', asyncHandler(jcsjBiz.getData)); httpServer.post('/jcsj', asyncHandler(jcsjBiz.getData));
httpServer.get('/jcsj', asyncHandler(jcsjBiz.getData)); httpServer.get('/jcsj', asyncHandler(jcsjBiz.getData));
httpServer.post('/map', asyncHandler(mapBiz.getData)); httpServer.post('/map', asyncHandler(mapBiz.getData));
httpServer.get('/map', asyncHandler(mapBiz.getData)); httpServer.get('/map', asyncHandler(mapBiz.getData));
httpServer.post('/cjw', asyncHandler(cjwBiz.getData)); httpServer.post('/cjw', asyncHandler(cjwBiz.getData));
httpServer.get('/cjw', asyncHandler(cjwBiz.getData)); httpServer.get('/cjw', asyncHandler(cjwBiz.getData));
httpServer.post('/zdqy', asyncHandler(zdqyBiz.getData)); httpServer.post('/zdqy', asyncHandler(zdqyBiz.getData));
httpServer.get('/zdqy', asyncHandler(zdqyBiz.getData)); httpServer.get('/zdqy', asyncHandler(zdqyBiz.getData));
httpServer.post('/api/login', asyncHandler(loginBiz.login));
httpServer.post('/api/jcsjup', asyncHandler(excelBiz.jcsjExcelUp));
httpServer.post('/api/ztsjup', asyncHandler(excelBiz.ztsjExcelUp));
httpServer.post('/api/download', asyncHandler(excelBiz.downloadFile));
httpServer.get('/api/download', asyncHandler(excelBiz.downloadFile));
} }
\ No newline at end of file
No preview for this file type
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